{"version":3,"file":"aprimanow.min.js","sources":["../../modules/app/app.js","../../modules/app/app.approutes.js","../../modules/app/app.templates.js","../../modules/app/components/apPatientPortal.js","../../modules/app/components/apPrintablePracticeInfo.js","../../modules/app/controllers/AboutSettingsCtrl.js","../../modules/app/controllers/ApiDocumentationGatekeeperModalCtrl.js","../../modules/app/controllers/AppointmentListSettingsCtrl.js","../../modules/app/controllers/LandingCtrl.js","../../modules/app/controllers/LoginCtrl.js","../../modules/app/controllers/LoginSettingsCtrl.js","../../modules/app/controllers/MessageListSettingsCtrl.js","../../modules/app/controllers/MfaLoginCtrl.js","../../modules/app/controllers/StatementsLoginCtrl.js","../../modules/app/controllers/TokenLoginCtrl.js","../../modules/app/controllers/UserSettingsCtrl.js","../../modules/app/controllers/ViewApiDocumentModalCtrl.js","../../modules/app/controllers/ViewDocumentModalCtrl.js","../../modules/app/controllers/modals/PracticeTermsModalCtrl.js","../../modules/app/controllers/modals/PrivacyPolicyModalCtrl.js","../../modules/app/controllers/navigation/NavigationAppointmentsCtrl.js","../../modules/app/controllers/navigation/NavigationBillingCtrl.js","../../modules/app/controllers/navigation/NavigationDoctorsCtrl.js","../../modules/app/controllers/navigation/NavigationFormsCtrl.js","../../modules/app/controllers/navigation/NavigationMessagesCtrl.js","../../modules/app/controllers/navigation/NavigationPrescriptionsCtrl.js","../../modules/app/directives/apDatePicker.js","../../modules/app/directives/apFormAttachment.js","../../modules/app/directives/apLoginBackground.js","../../modules/app/directives/apMessageAttachment.js","../../modules/app/directives/apSavePdfToFile.js","../../modules/app/directives/apSaveStringToFile.js","../../modules/app/directives/apSelectFile.js","../../modules/app/directives/apSelectImage.js","../../modules/app/directives/inputfileOnchange.js","../../modules/app/filters/apPatientPortalThumbnailSrc.js","../../modules/app/notifications/NotificationRepository.js","../../modules/app/notifications/NotificationService.js","../../modules/app/partials/desktopRuler/directives/apDesktopRuler.js","../../modules/app/partials/footer/directives/apFooter.js","../../modules/app/partials/header/directives/apHeader.js","../../modules/app/partials/mobileNav/directives/apMobileNav.js","../../modules/app/partials/toolbar/directives/apToolbar.js","../../modules/app/services/ContentAttributeRepository.js","../../modules/app/services/ContentAttributeService.js","../../modules/app/services/GatewayFactory.js","../../modules/app/services/LoginAssistanceRepository.js","../../modules/app/services/LoginFactory.js","../../modules/app/services/MimeTypeRepository.js","../../modules/app/services/PatientPortalStorageRepository.js","../../modules/app/services/SessionService.js","../../modules/account/app.js","../../modules/account/app.approutes.js","../../modules/account/app.templates.js","../../modules/account/controllers/AccountActivationCtrl.js","../../modules/account/controllers/AccountActivationRequestCtrl.js","../../modules/account/controllers/AccountDetailsCtrl.js","../../modules/account/controllers/AccountSetupCtrl.js","../../modules/account/controllers/AccountValidationCtrl.js","../../modules/account/controllers/AprimaConditionsCtrl.js","../../modules/account/controllers/ChangePasswordCtrl.js","../../modules/account/controllers/CreateAccountCtrl.js","../../modules/account/controllers/EmailOptOutCtrl.js","../../modules/account/controllers/EmailOptOutLayoutCtrl.js","../../modules/account/controllers/ForgotPasswordCtrl.js","../../modules/account/controllers/LoginConsentCtrl.js","../../modules/account/services/AccountRepository.js","../../modules/account/services/ConsentService.js","../../modules/rxrefills/app.js","../../modules/rxrefills/app.approutes.js","../../modules/rxrefills/app.templates.js","../../modules/rxrefills/controllers/RxRefillCtrl.js","../../modules/rxrefills/services/PrescriptionsService.js","../../modules/rxrefills/services/RxRefillRepository.js","../../modules/mychart/app.js","../../modules/mychart/app.approutes.js","../../modules/mychart/app.templates.js","../../modules/mychart/components/apPrintablePatientInfo.js","../../modules/mychart/contollers/ChartConsentCtrl.js","../../modules/mychart/contollers/ImmunizationsCtrl.js","../../modules/mychart/contollers/LabResultsCtrl.js","../../modules/mychart/contollers/MedicationAllergiesCtrl.js","../../modules/mychart/contollers/MyChartCtrl.js","../../modules/mychart/contollers/PatientDocumentsCtrl.js","../../modules/mychart/contollers/PersonalDetailsCtrl.js","../../modules/mychart/contollers/ProblemsCtrl.js","../../modules/mychart/contollers/ProceduresCtrl.js","../../modules/mychart/contollers/ReferenceMaterialCtrl.js","../../modules/mychart/contollers/ShareCCDCtrl.js","../../modules/mychart/contollers/VisitSummaryCtrl.js","../../modules/mychart/contollers/modals/CcdAccessLogModalCtrl.js","../../modules/mychart/contollers/modals/CcdTransmitModalCtrl.js","../../modules/mychart/contollers/modals/CompleteChartModalCtrl.js","../../modules/mychart/contollers/modals/GenericModalCtrl.js","../../modules/mychart/contollers/modals/ImmunizationModalCtrl.js","../../modules/mychart/contollers/modals/LabResultPrintDownloadModalCtrl.js","../../modules/mychart/contollers/modals/ObservationOrderPrintDownloadModalCtrl.js","../../modules/mychart/contollers/modals/PharmacyModalCtrl.js","../../modules/mychart/contollers/modals/ReferenceMaterialPrintDownloadModalCtrl.js","../../modules/mychart/directives/apImmunizationCard.js","../../modules/mychart/services/ChartRepository.js","../../modules/mychart/services/MyChartService.js","../../modules/mychart/services/PatientAttachmentRepository.js","../../modules/mychart/services/PersonRepository.js","../../modules/mymessages/app.js","../../modules/mymessages/app.approutes.js","../../modules/mymessages/app.templates.js","../../modules/mymessages/controllers/DisplayMessageThreadCtrl.js","../../modules/mymessages/controllers/DisplayMessagesCtrl.js","../../modules/mymessages/controllers/MyMessagesCtrl.js","../../modules/mymessages/controllers/NewMessageCtrl.js","../../modules/mymessages/services/MyMessagesService.js","../../modules/mymessages/services/myMessagesRepository.js","../../modules/myappointments/app.js","../../modules/myappointments/app.approutes.js","../../modules/myappointments/app.templates.js","../../modules/myappointments/controllers/ConfirmAppointmentCtrl.js","../../modules/myappointments/controllers/MyAppointmentsCtrl.js","../../modules/myappointments/controllers/ScheduleAppointmentCtrl.js","../../modules/myappointments/services/MyAppointmentsRepository.js","../../modules/myappointments/services/MyAppointmentsService.js","../../modules/dashboard/app.js","../../modules/dashboard/app.approutes.js","../../modules/dashboard/app.templates.js","../../modules/dashboard/controllers/AlertsDashboardCtrl.js","../../modules/dashboard/controllers/AppointmentsDashboardCtrl.js","../../modules/dashboard/controllers/BillingDashboardCtrl.js","../../modules/dashboard/controllers/ChartDashboardCtrl.js","../../modules/dashboard/controllers/DashboardCtrl.js","../../modules/dashboard/controllers/FormsDashboardCtrl.js","../../modules/dashboard/controllers/MessagesDashboardCtrl.js","../../modules/dashboard/controllers/PrescriptionsDashboardCtrl.js","../../modules/dashboard/services/DashboardRepository.js","../../modules/dashboard/services/DashboardService.js","../../modules/forms/app.js","../../modules/forms/app.approutes.js","../../modules/forms/app.templates.js","../../modules/forms/controllers/CompleteFormCtrl.js","../../modules/forms/controllers/ConfirmCtrl.js","../../modules/forms/controllers/FormsCtrl.js","../../modules/forms/controllers/PatientQuestionnaireCtrl.js","../../modules/forms/controllers/UpdateFamilyHistoryModalCtrl.js","../../modules/forms/directive/apFormAnswerCheckbox.js","../../modules/forms/directive/apFormAnswerDate.js","../../modules/forms/directive/apFormAnswerNumeric.js","../../modules/forms/directive/apFormAnswerRadiobutton.js","../../modules/forms/directive/apFormAnswerText.js","../../modules/forms/directive/apFormAnswerTimeframe.js","../../modules/forms/directive/apFormQuestion.js","../../modules/forms/directive/apFormQuestionFamilyHistory.js","../../modules/forms/directive/apFormQuestionImmunizationHistory.js","../../modules/forms/directive/apFormQuestionPatientProblemHistory.js","../../modules/forms/directive/apSetFocusEvent.js","../../modules/forms/directive/apTimeFrame.js","../../modules/forms/services/FormsRepository.js","../../modules/forms/services/FormsService.js","../../modules/billing/app.js","../../modules/billing/app.approutes.js","../../modules/billing/app.templates.js","../../modules/billing/controllers/BillingCtrl.js","../../modules/billing/controllers/PaymentFromConsentCtrl.js","../../modules/billing/controllers/PaymentFromNewCardCtrl.js","../../modules/billing/controllers/PaymentOptionsCtrl.js","../../modules/billing/controllers/PaymentSummaryCtrl.js","../../modules/billing/controllers/TransactionCompleteCtrl.js","../../modules/billing/controllers/modals/ConfirmPaymentModalCtrl.js","../../modules/billing/controllers/modals/LedgerModalCtrl.js","../../modules/billing/controllers/modals/ReceiptModalCtrl.js","../../modules/billing/controllers/modals/StatementModalCtrl.js","../../modules/billing/services/BillingRepository.js","../../modules/billing/services/BillingService.js","../../modules/common/init.js","../../modules/common/routeDefs.js"],"names":["angular","module","constant","MessageSubHeader","PracticeName","PracticeTagline","config","IdleProvider","interrupt","autoResume","keepalive","idle","timeout","AppRoutesProvider","$stateProvider","appRoutes","login","state","route","portalSettings","hideToolbar","toolbarItem","signout","tokenLogin","hideHeader","statementslogin","landing","loginsettings","navigationDoctors","setupAppRoutes","url","templateUrl","controller","description","resolve","$title","gettextCatalog","getString","alternativeLoginRoute","run","$templateCache","put","ApPatientPortalDirective","restrict","ApPatientPortalCtrl","$rootScope","$scope","$state","CustomModuleRunService","isLoginView","loginView","onAngularInitialized","current","name","transitionTo","params","reload","inherit","notify","location","vm","loadedAngular","shouldHideFooter","hideFooter","shouldHideToolbar","directive","window","ApPrintablePracticeInfo","ContentAttributeService","activate","getPracticeName","then","data","practiceName","this","component","controllerAs","configuration","LocalStorageRepository","AprimaAnalytics","ServerInfoRepository","sendPageView","clientID","getClientID","versionNumber","CLIENT_VERSION","gitCommitHash","GIT_COMMIT_HASH","gitCommitHashShort","substring","deviceId","getDeviceId","serverVersion","getMobileAssemblyVersion","prmVersion","getPrmAssemblyVersion","databaseVersion","getPrmDatabaseVersion","databaseBuild","getPrmDatabaseBuild","$modalInstance","modalConfig","ok","close","cancel","dismiss","downloadingDocument","model","Title","SettingService","ListService","loadingOption","Description","appointmentDashboardSettings","getAppointmentsListSettings","findById","list","id","_","find","Id","loadSettings","apptOptions","calendars","settings","getList","currentCalendarId","calendarId","appointmentsCalendar","displayEndTime","badgeSettings","getAppointmentsBadgeSettings","hideDischarged","mode","saveAppointmentsTileSettings","setAppointmentsListSettings","updateNativeSettings","saveHideDischargedOption","sendEvent","setAppointmentsBadgeSettings","LoginFactory","TransitionManager","LogOffService","currentUserID","getUserID","logoff","transition","appRoute","$location","$log","gettext","Bridge","ConsentService","GatewayFactory","LoginAssistanceRepository","PatientPortalStorageRepository","SessionService","AccountRepository","toaster","loadPracticeInfo","getPracticeInfo","practiceInfo","practiceTagline","onLoad","getLoginAssistanceInfo","loginProcess","loading","loginForm","$invalid","submitted","userName","password","gateway","prefix","userId","$broadcast","setPatientAuthenticated","getNewPasswordRequired","setDisplayDashboardToolbar","setShowHeaderNavigationMenu","getPracticeConsentAccepted","err","errorMessage","message","createModalAlert","title","buttons","completeAccount","forgotPassword","setUserName","getSecurityQuestions","pop","getLoginAssistanceInformation","loginAssistanceInfo","assistanceInfoLoaded","info","resetSessionParams","removeActivePatient","gateways","map","cloneDeep","GATEWAYS","g","display","getUserName","DEV_HOSTED","getClientConfig","oldClientId","clientId","clearAll","setClientURL","hostUrl","setClientID","$timeout","LanguageFactory","NotificationService","clearClientId","clientid","updateActionMessage","backButton","go","changeLanguage","setLang","values","language","changeClientId","changeNotificationTimeout","interval","notificationTimeout","setNotificationTimeout","stopNotificationTimer","status","actionMessage","getLang","code","getNotificationTimeout","isLanguageOpen","isApplicationInformationOpen","isOtherOpen","languages","getLangOptions","showDebugSettings","options","selectedGroup","messageOptions","messageFilters","currentMessageFilterId","messagesDashboardSettings","messageFilterId","messagesFilter","getMessagesListSettings","saveMessagesTileSettings","setMessagesListSettings","$window","$cookies","routeUsername","routeUsernameForm","routerModel","userRegistrationResult","IsFailure","UsernameRegistrationState","username","splash","callPARRedirectUrl","RegisterNewMFA","clear","mfaRegister","registerModel","mfaLogin","loginModel","register","registerForm","UserData","mfaConfirm","confirmModel","emailAddress","EmailAddress","DateOfBirth","Date","dateOfBirth","personId","PersonUid","ErrorCode","errorRegister","errorLogin","confirm","confirmationForm","dob","email","oldUserName","IdentityResponseDto","mfaRouter","personIdentityServiceErrorCodes","AlreadyRegistered","instructions","VerificationMessage","mfaNextSteps","verficationLink","VerificationUrl","errorConfirm","NotFound","MissingFirstName","MissingLastName","MissingFullName","MissingEmail","MissingDOB","setModels","practiceModel","CustomPortalFooter","replace","callIdentityLogoutRedirectUrl","idhint","getIdentityHint","href","error","$$url","$$search","identityTokenLogin","registrationIssue","$stateParams","PatientSettingsService","phoneNumberScrubbed","phoneNumber","loginStatementsOnly","birthDate","zipCode","accessCode","toUpperCase","getPatientFeatures","birthDateRegex","phoneRegEx","zipCodeRegex","statementId","token","lodash","usersettings","getUserFullName","currentLanguage","filter","getStaticUrl","documentId","GetStaticUrl","loadDocument","requestSettings","loadingDocument","DocumentLoad","downloadDocument","DocumentDownload","EnableDownload","DownloadFileName","DocumentId","HasStaticUrl","DisableInlinePdf","DocumentHelper","ClientID","ClientURL","$sce","loadPracticeTerms","removeHttpError","loginUserId","getPracticeConsent","practiceConsent","ConsentForm","response","addHttpError","loadPrivacyPolicy","getPrivacyPolicyUrl","privacyPolicyUrl","fullName","userID","CurrentUser","FullName","calendar","selectedDate","calendarOptions","disableWeekends","disablePastDates","disabledDates","year","month","days","selectDate","date","setDisabledDates","weekends","day","getDay","isValidDay","enableDay","getMonth","getFullYear","indexOf","getDate","calendarShow","input","inst","selectedDay","d","monthChange","link","elm","datepicker","changeYear","minDate","onChangeMonthYear","beforeShow","beforeShowDay","onSelect","$on","scope","attachmentDto","practiceForm","sending","Data","FileName","MimeType","Extension","selectDocumentModel","selectedFileName","selectedFileContents","selectedMimeType","validationMessage","$watch","newval","oldval","split","$emit","element","css","attachmentDtoList","featureList","maxNumberFiles","PatientMessageAttachment","FileAttachmentConfig","NumberOfFilesThatCanBeAttached","newAttachment","$","each","i","obj","length","push","remove","attachment","splice","BrowserService","_savePdfAsFile","fileNameToSaveAs","base64String","contentType","isBlobCompatible","byteCharacters","atob","byteArray","Array","charCodeAt","byteArrayInt","Uint8Array","textFileAsBlob","Blob","type","saveBlob","document","_onClick","fileName","on","off","_saveTextAsFile","textToWrite","loadText","MimeTypeRepository","maxSizeKb","fileType","loadMaxFileSize","isNaN","messageAttachmentConfig","MaxFileSizeKb","selectFileModel","loadAllowableFileTypes","allowableFileExtensions","AllowableFileExtensions","extensions","forEach","ext","mimeTypes","Types","FileExtension","trim","getMimeTypeFromFileExtension","loadView","isSelectedFileMimeType","selectedFile","isValid","isSelectedFileSizeValid","size","isSelectedFileExtensionValid","extension","inputFileOnchangeCallback","myEventArg","target","files","myInputFileElement","value","$apply","reader","FileReader","onload","e","result","readAsDataURL","selectImageModel","clearSelectedFile","callBack","event","patientId","height","width","factory","AprimaRestangular","getNotifications","uid","restangular","get","one","$interval","updateNotifications","log","moment","format","startNotificationTimer","isDefined","notificationPromise","timeoutInterval","undefined","transclude","$modal","ConsentRepository","contactUs","viewPracticeTerms","modalInstance","open","windowClass","viewPrivacyPolicy","isModalDisplayed","getPrivacyPolicy","downloadPrivacyPolicy","supportsInlinePdf","viewApiDocumentation","getApiDocumentation","downloadApiDocumentation","getClientURL","viewApiDocumentationGatekeeper","DisplayAPIDocumentationModal","PatientAuthenticated","apFooter","downloadAgreementPrivacyPolicy","getPatientAuthenticated","patientAuthenticatedListener","apHeader","openmenu","loginUser","getLoginUser","activePatient","getActivePatient","loginUserFullName","activePatientId","activePatientFullName","patientAuthenticated","showHeaderNavigationMenu","getShowHeaderNavigationMenu","responsibleParties","getActiveResponsibleParties",{"end":{"file":"../../modules/app/partials/header/directives/apHeader.js","comments_before":[],"nlb":false,"endpos":1768,"endcol":49,"endline":31,"pos":1747,"col":28,"line":31,"value":"hasResponsibleParties","type":"name"},"start":{"file":"../../modules/app/partials/header/directives/apHeader.js","comments_before":[],"nlb":false,"endpos":1768,"endcol":49,"endline":31,"pos":1747,"col":28,"line":31,"value":"hasResponsibleParties","type":"name"},"name":"hasResponsibleParties"},"hasResponsibleParties","signOff","toggleMobileNav","setShowMobileNav","getShowMobileNav","setActivePatient","patient","FirstName","LastName","IsPatient","LoginUserFullName","showHeaderMenuListener","ShowHeaderNavigationMenu","headerDataListener","requestor","headerData","responsiblePartyListener","$transitions","AppRoutes","NotificationRepository","GuidList","notifications","Chart","BadgeCount","NotificationType","Count","Messages","IsActive","SendReceiveMessages","Forms","ViewEducationMaterial","Prescriptions","RequestRxRefills","Appointments","ViewAppointments","Billing","ViewPatientStatement","ViewPatientLedger","MakeAPayment","Doctors","loadMobileNav","Welcome","showMobileNav","transitionAndCloseNav","responsiblePartyDataListener","notificationListener","stateChangeListener","onSuccess","toState","targetState","toStateName","findByStateName","showMobileNavListener","loadToolbar","resetToolbarState","blankToolbar","BackToHome","backToHome","navigateToChart","targetAppRoute","opts","ViewClinicalSummary","ViewMedicalHistory","ViewMedications","ViewProcedures","ViewLabTestResults","ViewImmunizations","ViewMedicationAllergies","toolbarButton","getContentAttributes","ClientId","ContentAttributeRepository","$q","AppId","UrlParsingService","getAttributeValue","contentAttributes","attributeValue","attribute","toLowerCase","Value","loadContentAttributes","clientURL","when","forceRefresh","createPracticeInfo","promise","getMessageSubHeading","parsePortalUrl","getPaymentRedirectUrl","absPath","absUrl","partial","path","newPartial","redirectUrl","Restangular","$qHelpers","getServerUrl","gatewayPrefix","clientUrl","deferred","defer","filteredGateways","some","reject","Error","gatewayRequests","whenFirstSuccess","serverInfo","AppServerUrl","loginWithUrl","updateLocalStorage","postLogin","CLIENT_FEATURES","postIdentityTokenLogin","postTokenLogin","loginStatementsOnlyWithUrl","setAccessCode","postStatementsLogin","routeWithUrl","postRouteUsername","registerWithUrl","postRegister","confirmWithUrl","postConfirm","withConfig","setBaseUrl","setDefaultHeaders","ApiKey","API_KEY","NgxLoginAssistanceRepository","toPromise","VersionService","DashboardService","AprimaCache","updateVersionInfo","userLoginInfo","ProductVersions","PrmAssemblyVersion","setPrmAssemblyVersion","PrmDatabaseVersion","setPrmDatabaseVersion","PrmDatabaseBuild","setPrmDatabaseBuild","AppServiceVersion","setMobileAssemblyVersion","SupportedFeatures","setSupportedFeatures","loginErrorCodes","UnknownError","InvalidRequest","UnknownClientId","LoginFailed","NotMobileUser","InactiveUser","NotAllowedToLogin","PrmVersionUnsupported","MultipleUserAccounts","_clientId","_birthdate","_zipcode","_accessCode","_phoneNumber","clientFeatures","customPOST","BirthDate","ZipCode","DeviceId","AccessCode","PhoneNumber","ClientFeatures","msg","authToken","JsonWebToken","checkVersions","validationSuccesful","warn","trackException","Lists","removeAll","clearKeysOfType","setDeviceId","setJsonWebToken","setBirthDate","setUserFullName","setUserID","setIsPatient","setResponsibleParties","ResponsibleParties","setPracticeConsentAccepted","IsPracticeConcentAccepted","setNewPasswordRequired","IsNewPasswordRequired","featuresPromise","loadPatientFeatures","dashboardPromise","loadPatientDashboardFeatures","all","loginSuccess","Username","setIdentityHint","IdentityHint","setIsAccountResponsiblePartyForPatient","IsAccountResponsiblePartyForPatient","responsiblePartyPatient","getActiveResponsibleParty","loginFailure","errorCode","isNumber","_username","_password","Password","UserId","Token","console","requestedMimeTypes","types","JSON","stringify","FileExtensions","customGET","storage","firstName","lastName","isPatient","set","getResponsibleParties","activeResponsibleParty","IsActivePerson","activeResponsibleParties","removeResponsibleParties","removeFeatureList","getJsonWebToken","permissions","getUserPermissions","getIsPatient","getIsAccountResponsiblePartyForPatient","sessionParams","NewPasswordRequired","sessionStorage","getItem","PracticeConsentAccepted","DisplayDashboardToolbar","ShowMobileNav","setItem","getDisplayDashboardToolbar","createaccountlayout","emailoptoutlayout","changepassword","emailoptout","forgotpassword","accountActivationRequest","accountActivation","accountvalidation","accountsetup","aprimaconditions","loginconsent","debounce","activateAccount","accountActivationForm","UserNameInUse","userNameLoading","submitLoading","postAccountActivation","accountActivationDto","activateAccountValidation","postAccountActivationIdValidation","WebRegistrationId","activateAccountUserNameValidation","postUserNameValidation","UserName","IsSuccess","getActivatePatientPortalMetadata","back","webRegistrationId","ConfirmPassword","activateAccountRequest","accountRequestValidationForm","Birthdate","question","SelectedAnswerText","postAccountActivationRequest","getActivatePatientPortalRequestMetadata","SurveySectionId","SurveyQuestionId","SectionOptional","QuestionOptional","MyChartService","getMyChartDetails","getDetails","getAccountDetails","accountDetailsDto","LoginUserId","Questions","myChartPromise","getAccountDetailsPromise","updateCredentialsScope","setAnswerToEmptyString","updateSecurityQuestionsAnswersScope","editCredentials","isEditingQuestionAnswers","cancelQuestionAnswers","getCredentialsMetadata","isEditingCredentials","cancelCredentials","loginCredentialsForm","$setPristine","saveCredentials","isSavingCredentials","$valid","putAccountCredentials","securityAccountCredentialsDto","editQuestionAnswers","getSecurityQuestionsAnswersMetadata","securityQuestionAnswersForm","saveQuestionAnswers","isSavingQuestionAnswers","putSecurityQuestionsAnswers","securityAccountQuestionsAnswersDto","selectedQuestionChanged","selectedSecurityQuestion","lstProdParamSecurityQuestion","securityQuestions","Text","OldPassword","NewPassword","initializeAnswer","questionAnswer","DisplayOrder","Answer","$filter","viewSecondaryInsurance","createAccountDto","DriversLicenseNumber","DriversLicenseState","PrimaryInsurance","InsuranceProvider","InsurancePlan","AccountFirstName","AccountLastName","PolicyNumber","GroupNumber","SecondaryInsurance","SecurityQuestions","Question","insurancePlanList","primaryInsuranceImageModel","secondaryInsuranceImageModel","updatePrimaryInsuranceList","primaryInsurancePlansModified","InsuranceCarrierId","InsuranceCarrier","updateSecondaryInsuranceList","secondaryInsurancePlansModified","toggleViewSecondaryInsurance","skip","next","accountValidationDto","PDFPath","finish","submit","changePasswordForm","postChangePassword","confirmNewPassword","getOptOutOfEmaiDetails","Result","invalidAccessCode","postOptOutEmail","processed","IsOptOutPatientMarketing","IsOptOutStatement","loadSecurityQuestions","plain","requestDto","Answers","Question1","Question2","Question3","postForgotPassword","loginConsent","IsAccepted","PracticeConsentText","loadPage","practiceConsentPromise","getPrivacyPolicyPromise","disagreeToConsent","submitForm","loginConsentForm","postUserAgreedToPracticeConsent","AgreeToConsentChecked","AprimaConsent","ConsentWarningMessage","AgreeCheckboxText","MetadataRepository","changePasswordDto","emailOptOutDto","activatePatientPortalAccountRequestDto","activatePatientPortalAccountDto","activationId","getMetadata","customPUT","replaceLineBreaksWithHtmlLineBreak","text","returnText","re","RegExp","getAgreementPrivacyPolicyPath","baseurl","SERVER_API_VERSION","Path","apiKey","pdfUrl","trustAsResourceUrl","currentPracticeConsent","trustAsHtml","getChartConsent","currentPatientConsent","PatientId","clearChartConsent","Version","AlwaysDisplayConsent","consentHtml","postChartConsent","setOncePerLoginChartConsent","isChartConsentAccepted","myPatientConsent","getOncePerLoginChartConsent","rxrefill","prescriptions","prescriptionsMobile","isMobile","RxRefillBaseCtrl","autoInit","changePharmacyRoute","changePharmacyRouteOpts","PrescriptionService","updateFilteredPrescriptions","activeFilter","filteredPrescriptions","Medications","item","dateFilter","EndDate","Days","RefillRequestPending","pharmacyFormat","pharmacy","str","Name","Address","Address1","City","State","Zip","changePharmacy","extendPrescriptionList","medications","extendedList","assignIn","SelectedForRefillRequest","getSelectedMedId","RelPatientMedicationId","initialize","pharmaciesPromise","getPharmacies","Pharmacies","selectedPharmacy","IsPreferredPharmacy","toggleMapDisplay","rxRefillsPromise","getRxRefills","splitPrescriptions","partition","medFilters","currentPrescriptions","previousPrescriptions","orderedPrescriptions","concat","auditMedications","reportRequestDto","auditMedicationsLogging","medCheck","med","medSelect","setSelectedMedId","bool","mapDisplay","rxRefillRequest","requestLoading","rxRefills","CreatedById","RequestedPharmacyId","Reason","DrugName","Instructions","ProviderId","putRxRefills","clearSelectedMedId","Phone","LoginUserName","tileState","isCollapsed","toggleState","RxRefillCtrl","RxRefillMobileChartCtrl","openPD","call","viewModal","patientMedicationId","canPrint","modalContent","patientMedication","StartDate","toLocaleDateString","RxRefillMobileCtrl","RxRefillRepository","getDateDiff","startOf","utc1","diff","validDays","saveRxRefills","rxRefillsToSave","expiring","prescriptionsServiceUserId","resetService","pharmacies","selectedMed","setPrescriptionServiceUserId","requestReportDto","postMedicationsAudit","rxRefilRequest","tel","country","city","number","toString","slice","myChart","myChartProblems","myChartPrescriptions","myChartVisitSummary","myChartDocuments","myChartProcedures","myChartLabResults","myChartImmunizations","myChartReferenceMaterial","myChartMedicationAllergies","myChartPersonalDetails","shareCCD","chartConsent","myChartMobile","chartMobileConsent","ApPrintablePatientInfo","details","age","Age","requestedChartRoute","redirectRoute","PatientChartConsent","chartConsentForm","ImmunizationsBaseCtrl","DateUtilities","loadingStartup","getDetailsPromise","getMyChartConfigPromise","getMyChartConfig","results","VaccineCardList","Adult","Config","Pediatric","Misc","patientAge","getPersonAge","vaccineCardType","loadVaccineCard","auditImmunization","loadingVaccineCard","SelectedVaccineCard","getImmunizations","PatientImmunizations","Results","vaccineTypeList","Immunizations","AdministeredDate","Details","ImmunizationsExist","auditImmunizationLogging","modalPrint","patientImmunizations","auditImmunzation","ImmunizationsCtrl","ImmunizationsMobileCtrl","LabResultsBaseCtrl","PersonRepository","PatientAttachmentRepository","getLabResults","labResults","entry","AttachmentInfos","attachmentInfo","assign","Downloading","auditLabResults","viewLabResultAttachment","AttachmentUid","getLabResultAttachment","downloadLabResultAttachmentOriginalFormat","getAttachment","getAttachmentRetainOriginalFormat","downloadLabResultAttachment","viewLabResultObservation","resultId","getObservationOrderPdf","downloadLabResultObservation","labResult","auditLabResultsLogging","LabResultsCtrl","LabResultsMobileCtrl","MedicationAllergiesBaseCtrl","auditMedicationAllergies","auditMedicationAllergiesLogging","getMedicationAllergies","MedicationAllergies","MedicationAllergiesCtrl","MedicationAllergiesMobileCtrl","MyChartBaseCtrl","destinationRoutePrefix","chartConsentRoute","loadMyChart","User","getPatientChartAccepted","isPatientChartAccepted","ShowSidebar","loadController","loadMyChartPromise","getPatientChartAcceptedPromise","currentName","destinationRoute","displayCompleteChart","auditChartResults","viewCompleteChartImage","getCompleteChartImage","downloadCompleteChart","usageMetricSubTypeName","getCompleteChart","updateUsageMetric","auditChartLogging","metricSubTypeName","updateUsageMetricDto","MetricSubTypeName","usageMetricLogging","collapseMedicalHistory","collapsePersonalDetails","MetricTypeName","IncrementFactor","expandPersonalDetails","expandMedicalDetails","showChartSidebarListener","MyChartCtrl","MyChartMobileCtrl","openPersonalDetails","PatientDocumentsCtrl","context","PersonalDetailsBaseCtrl","cancelEdit","updateDetailsRequestDto","edit","plusPhone","editPatientDetailsForm","phoneNumberFormat","addNumbers","editDetails","dto","patientDetail","genderList","Gender","languageList","Language","raceList","Race","maritalStatusList","MaritalStatus","phoneTypeList","PhoneNumber1Type","PhoneNumber2Type","PhoneNumber3Type","PhoneNumber4Type","saveUpdateDetailsRequest","theForm","saving","PhoneNumber1","PhoneNumber2","PhoneNumber3","PhoneNumber4","updateDetails","updateScope","hasPhoneNumber","EmailAddress1","EmailAddress2","hasEmailAddress","removePharmacy","index","$setDirty","auditDemographics","auditDemographicsLogging","getPatientDetailsMetadata","updateDemographicsRequestDto","ssnRegEx","PersonalDetailsCtrl","PersonalDetailsMobileCtrl","ProblemsBaseCtrl","getProblems","problems","Show","update","problem","active","activeName","activeFilters","hidden","prob","Notes","newFilterId","activeProblems","Number","filteredProblems","numprobs","ProblemsCtrl","ProblemsMobileCtrl","ProceduresBaseCtrl","getProcedures","procedures","Long","auditProcedures","auditProceduresLogging","proc","ProceduresCtrl","ProceduresMobileCtrl","procId","procedure","VisitDate","ReferenceMaterialBaseCtrl","getReferenceMaterial","auditEducationMaterials","EducationalMaterial","LanguageOptions","Languages","activeLanguage","ActiveLanguage","viewReferenceMaterial","eduForms","selectedEduForm","form","AttachmentId","downloadReferenceMaterial","updateActiveLanguage","mobile","auditEducationMaterialLogging","downloadFormFromModal","getReferenceMaterialAttachment","downloadForm","formGroup","getActiveLanguage","ActivatePatient","ReferenceMaterialCtrl","ReferenceMaterialMobileCtrl","ChartRepository","downloadCDA","loadingXml","startDate","endDate","fullHistory","hour","minute","second","toDate","getCDAXml","StringResult","downloadHtml","loadingHtml","postCCDHtmlDownloaded","ccdHtml","viewAccessLog","transmitModal","getCcdHtml","loadingCcd","getCCDHtml","chartHtml","loadingUrl","xmlFileName","ccdFileName","WebDocumentHelper","getVisitSummaries","visits","numVisits","auditMedicalHistory","viewVisitSummary","visitId","visitDate","auditClinicalSummary","getVisitSummary","downloadVisitSummary","getVisitSummaryUrl","downloadVisitSummaryByVisit","visit","selectedVisit","VisitId","auditMedicalHistoryLogging","auditClinicalSummaryLogging","AccessLog","getAccessLog","SendType","SendTypeList","getTransferCcdMetadata","getTransmitCcdConfig","DirectMailConfig","DirectMailAddress","DirectMailUser","Enabled","EmailEnabled","isConfigured","submitTransferRequest","transmitCcdForm","transmitting","transferRequestDto","DocumentType","Type","Subject","Message","DirectMailAddressFrom","ToName","DirectMailAddressTo","Email","postTransmitRequest","canSendDirectMail","DocumentTypeList","MyMessagesService","loadCompleteChart","loadingCompleteChart","completeChartUrl","PatientChart","CompleteChartData","isCompleteChartError","CompleteChartErrorMessageHtml","print","displayPrintButton","completeChartErrorMessage","loadResult","loadingLabResult","isImage","includes","imageFormats","isHtml","htmlFormats","isText","textFormats","getAttachmentPdf","ActivePatient","labResultUrl","ContentType","ByteArray","LabResultData","PdfFileName","resultInfo","ResultId","observationOrderUrl","ObservationOrderData","searchPharmacies","zip","searchPharmaciesParams","pharmacyResults","noResults","addPharmacy","PharmacyId","unshift","submitZip","submitPhoneNumber","tempPhoneNumber","getRoutineDoses","routineDoses","rowSpanCal","vaccineCount","getDirectMailUsers","transferDto","createUpdateDetailsDto","patientDetails","myChartConfigList","PatientDocuments","LabelName","Route","Uid","FeatureList","ViewDocuments","ViewProblems","ImmunizationsConfig","ViewLabResults","UpdateDemographics","UpdateInsurance","ViewCompleteChart","AllowGenerateCCD","forceUpdate","mychartServiceUserId","resetMyChart","vaccineCardTypeId","immunizations","VaccineCardTypeId","getNewLabResults","newLabResults","visitSummaries","getAppointments","appointments","referenceMaterial","medicationAllergies","getBilling","getFemaleThumbnailSrc","getMaleThumbnailSrc","userFullName","documents","setBillingServiceUserId","postImmunizationAudit","postClinicalSummaryAudit","postDemographicsAudit","postLabResultAudit","postMedicalHistoryAudit","postMedicationAllergiesAudit","postProcedureAudit","postEducationalMaterialAudit","postChartAudit","postUsageMetricUpdate","aprimaRestangular","attachmentId","applicationComponent","disableInLinePdf","timing","startTiming","inlinePDF","queryString","page","stop","getAttachmentStaticUrl","getRemarks","getRecentVisits","getOrders","getHealthMaintenanceReminders","getObservationOrderPdfImage","getVisitSummaryImage","request","getPatient","typeUid","immunizationType","myMessages","myMessagesNewMessage","myMessagesDisplayMessages","myMessagesDisplayMessageThread","myMessagesMobile","myMessagesMobileNewMessage","myMessagesMobileDisplayMessageThread","folder","DisplayMessageThreadBaseCtrl","returnRoute","returnOpts","$anchorScroll","MyMessagesRepository","messageThread","DisplayMode","getMessageThreadMessages","MessageHeaderText","cleanMessageHeader","MessageBodyTextNoLineBreaks","removeLineBreaks","MessageBodyText","IsCollapsed","NumberOfMessages","getMessageSettings","msgSetting","MessageSubTypes","MessageSubTypeId","allowReply","CanBeSentByPatient","SystemMessage","hash","replying","thumbnailSrc","displayMode","panelHeadingText","updateNotification","portalMessage","replyToMessage","isSubmitted","newMessage","MessageBody","ParentMessageId","DisplayMessageThreadCtrl","DisplayMessageThreadMobileCtrl","MessageDisplayBaseCtrl","msgSubTypes","defaultSettings","displayReceiveMessages","CanBeReceivedByPatient","messageSubTypes","selectedMessageSubTypeName","messageFilter","SearchSendReceivedMessages","displaySentMessages","panelHeadingTest","getMessages","displayMessages","displayMessageThreadRoute","SortDirection","SearchNewOldMessages","LastReadByPortalDate","NewMessage","filterMessages","selectedItem","displayMessageThread","MessageId","DisplayMessagesCtrl","MyMessagesMobileCtrl","isInSubstate","is","folders","Key","Filter","selectedFolder","mobileModel","subMessageText","changeFolder","folderKey","composeNewMessage","inSubState","displayMessageThreadMobile","goBackToMessages","messageLinkSelected","linkId","NewMessageBaseCtrl","MessageRepository","getUrgencyList","urgencyList","urgencies","defaultUrgency","IsDefault","isUndefined","UrgencyId","messageSettings","getAttachmentConfig","isAttachmentAllowed","urgencyListPromise","messageSettingsPromise","getPortalMessageMetadata","RouteType","routeTypeString","defaultSettingsItem","DefaultRoutingItem","ProviderOrServiceSiteId","defaultItem","SubTypeId","patientAttachmentSubtype","MessageSubType","PatientAttachment","Header","AttachmentList","selectedProviderOrServiceSiteChanged","selectedMessageSettingsItem","sendMessage","selectedMessageSubType","Status","AttachmentDto","createMessage","NewMessageCtrl","NewMessageMobileCtrl","setMessageSettingsStorage","getMessageSettingsStorage","indexAppointmentsQuestion","indexBillingQuestion","indexDemographicsQuestion","indexGeneralQuestion","indexLoginAssistanceQuestion","indexPrescriptionRxQuestion","indexAllMessages","getMessageSubTypes","Index","getNewMessages","messages","messageId","myAppointments","editRequestedAppointment","addRequestedAppointment","confirmRequestedAppointment","MyAppointmentsService","calendarList","serviceSiteList","appointmentTypeList","requestedAppointment","getRequestedAppointment","appointmentType","AppointmentType","appointment","AppointmentTypeDescription","AppointmentTypeName","RequestDateTime","CalendarDescription","Calendar","selectedCalendar","serviceSite","serviceSites","DefaultServiceSiteId","selectAppointmentLocation","clearRequestedAppointment","appointmentLocation","Address2","appointmentLocationDefined","AppointmentName","GoogleMapsUrl","MyAppointmentsRepository","isUpcomingAppointment","appointmentDateTime","minUpcomingAppointmentDateTime","createAppointmentLists","subtract","appointmentLists","StartDateTime","AppointmentStatus","IsCanceledStatus","upcomingAppointments","property","mapLoaded","fullAppointmentDescription","sortBy","CanReschedule","CanCheckIn","CanCancel","isCheckIn","isDischarged","isBetween","add","IsAppointmentToday","isAppointmentToday","previousAppointments","getPatientAppointments","searchFilter","createPendingAppointments","pendingAppts","pendingAppointment","getPendingAppointments","getPendingAppointmentRequest","canViewAppointments","pendingAppointmentsPromise","bookedAppointmentsPromise","limitTo","FetchLimit","canRequestAppointments","RequestAppointments","canCheckInFeature","CheckIn","toggleFullAppointmentDescriptionPending","fullAppointmentDescriptionPending","toggleFullAppointmentDescription","appt","requestNewAppointment","rescheduleRequestedAppointment","cacheRequestedAppointment","appointmentCheckIn","changeAppointmentStatus","AppointmentId","loadMap","AppointmentRepository","loadTimeZonePromise","loadTimeZone","patientCalendars","AllowPatientRequest","patientAppointmentTypes","isNewRequestedAppointment","selectedAppointmentTypeDescription","datePicker","assignTimeZone","populateOpenAppointmentSlots","getAppointmentRequestMetadata","getTimeZone","myTimeZone","TimeZone","StandardName","clearAppointmentLocation","selectedTime","loadingAppointmentSlots","AppointmentTypeId","getAppointmentsOpenTimeSlots","openAppointmentSlots","Selected","isSame","validateRequestDate","RequestDate","$dirty","validateSelectedTimeSlot","selectedTimeSlotInvalid","validateAppointmentReason","AppointmentReason","isFormValid","datepickerOptions","maxDate","showWeeks","minMode","maxMode","selectedCalendarChanged","selectedAppointmentTypeChanged","selectedApptType","datePickerChanged","SelectedTimeSlotClick","requestAppointment","apptRequest","CalendarId","appointmentId","statusId","updateAppointment","Patient","getAppointment","newRequestedAppointment","appointmentStatusId","dashboard","PatientSettingsRepository","labs","messagesPromise","labsPromise","chartConfigPromise","displayLabResults","getFeatureList","load","tile","updateCollapseState","setPatientDashboardTileState","displayAlertMessageThread","displayAlertMyChartLabs","BillingService","LoginUserPatientId","RemoteSessionId","getBillingAccount","billingAccountDto","PersonBalanceAll","owesUsMoney","ConsentAnnual","DepositByFinancialCenterEnabled","MerchantIdByFinancialCenterEnabled","DefaultMerchantId","FinancialCenterBalances","ShowMultipleFinancialCenters","makeAPaymentButtonEnabled","getViewMakeAPaymentFeatureFlag","makeSpecificOnlinePayment","balance","CardType","statementsOnly","amount","Balance","merchantId","MerchantId","financialCenterUid","FinancialCenterUid","makeGenericOnlinePayment","displayMyChartLabs","ApPersonalHealthAppsModalService","isPatientRegisteredForFHIR","activeTiles","getPatientDashboardFeatures","providerName","PrimaryProviderName","PrimaryProviderServiceSite","serviceSitePhoneNumber","PrimaryProviderServiceSitePhoneNumber","serviceSiteAddress1","PrimaryProviderServiceSiteAddress1","serviceSiteAddress2","PrimaryProviderServiceSiteAddress2","serviceSiteLocation","PrimaryProviderServiceSiteLocation","showPersonalHealthAppModal","openModal","baseId","isSuccess","resultValue","showLinkPersonalHealthApp","today","FormsRepository","getAssignedQuestionnaires","assignedForms","incompleteFormsList","IsComplete","getAssignedPracticeForms","searchCriteria","IncludeOnlyUnviewedForms","practiceFormsList","assignedQuestionnairesPromise","assignedPracticeFormsPromise","displayForms","openPatientQuestionnaire","relSurveyPatientId","RelSurveyPatientId","questionnaireId","QuestionnaireId","medicationsExist","patientDashboardFeatures","setDashboardFeatureList","getDashboardFeatureList","DashboardRepository","repositorySettings","localSettings","updatedRepositorySettings","repositoryItem","localSettingsItem","dashboardTile","setPatientDashboardFeatures","dashboardSettings","TimeFrameId","Clear","DaysAgo","WeeksAgo","MonthsAgo","YearsAgo","Childhood","Teenager","Birth","HistoryGroupId","ProblemDiagnosis","Family","Immunization","ModalInstanceReturnId","Accept","Cancel","forms","completeForm","confirmForm","patientQuestionnaire","FormsService","getQuestionnaireDetails","questionnaire","questionnaireDetails","questionnaireName","SurveyName","sectionNumber","questionnaireSections","sections","groupBy","surveySectionQuestions","surveySection","SectionNumber","SurveySectionName","SectionDisplayOrder","Visible","maxNavigationItems","createQuestionList","currentSectionNumber","currentSectionId","currentSectionName","firstSectionNumber","lastSectionNumber","nextSectionName","getNextSectionName","getPatientQuestionnaire","sectionQuestions","questionNumber","questions","sectionQuestionAnswers","sectionQuestionAnswer","QuestionNumber","SurveyQuestionLabel","SurveyControlTypeId","SurveyControlTypeName","SelectedAnswerId","getSelectedAnswerId","QuestionEnabled","isQuestionEnabled","createAnswerList","AnswersThatTriggerThisQuestion","getAnswersThatTriggerThisQuestion","HasAnswersThatTriggerThisQuestion","answers","QuestionIdToTrigger","answer","SurveyAnswerId","SelectedAnswer","head","surveySectionId","surveyQuestionId","surveyControlTypeId","selectedAnswer","myAnswers","SurveyAnswerLabel","SurveyResponseAnswerText","QuestionsToTrigger","QuestionId","submitQuestionnaire","completedForm","Form","cacheCompletedForm","getCurrentSectionName","navMoveNext","completeQuestionnaireForm","curSectionNumber","numOfSections","section","navMovePrevious","displaySection","getCompletedForm","clearCompletedForm","filterPracticeForm","activeList","selectedFilterForm","completeList","viewPracticeFormAttachment","selectedPracticeForm","PracticeFormName","PersonId","getPracticeFormAttachmentImage","getPracticeFormImage","RelPracticeFormPatientId","updatePracticeFormDownloadDate","updateDto","downloadPracticeFormAttachment","Downloaded","Uploaded","getPracticeFormAttachment","incompleteForms","completedForms","masterList","Uploading","isPending","isComplete","createLists","Approved","LastUploadedByPortalDate","Rejected","assignUploadForm","uploadForm","filterForm","MessageTypeId","AttachmentTypeName","PracticeFormId","AttachmentGroupId","AttachmentTypeId","createApprovalMessage","uploadDto","updatePracticeFormUploadDate","FormsId","loadingSection","removeLocalStorageKeys","Questionnaire","Sections","initializeSectionNavigation","containsPatientHxQuestion","navigationSectionParams","ContainsPatientHxQuestion","RequiredFieldsPopulated","validateCheckboxQuestions","curQuestions","curCheckboxQuestions","checkboxQuestionsHaveAnswers","checkboxQuestion","QuestionRequireAnswer","patientQuestionnaireForm","hxQuestion","isPatientHxQuestion","isPatientProblemDiagnosisHxQuestion","isFamilyProblemHxQuestion","isImmunizationHxQuestion","savingQuestionnaire","finishLater","patientHistorySections","unselectedItems","historySection","ProblemHistoryAnswers","removeObj","pull","FamilyHistoryAnswers","familyHxAnswer","ImmunizationHistoryAnswers","ImmunizationAdultAnswers","ImmunizationAnswers","ImmunizationPediatricAnswers","Completed","putPatientQuestionnaire","FamilyHxRelationshipId","FamilyHistoryAnswer","HistoryRelationshipList","loadModal","IsRelationshipMaternal","Model","RelationshipQualifier","isMaternal","IsRelationshipPaternal","isPaternal","IsRelationshipUnknown","isUnknown","none","familyHxRelationshipList","loadingModal","TimeFrameIdBirthdate","TimeFrameIdDeathdate","relationshipSelect","selectedRelationship","ItemId","RelationshipId","RelationshipName","timeFrameSelectedCallback","timeFrameId","onsetTimeFrameId","problemHistoryAnswer","ProblemHistoryAnswerId","accept","familyHistoryForm","lastQuestion","enableQuestionsForSelectedAnswer","enableQuestion","questionToEnable","EnableQuestion","explanationPlaceHolder","answerChanged","SurveyRequiresExplanation","explanationTextChanged","datePopup","Opened","openDatePicker","$event","preventDefault","updateEnteredAnswer","answerText","String","fireEvent","selectedButtonCallback","disableTriggeredQuestions","questionsToDisable","curAnswer","questionToDisable","questionId","SurveyExplanation","selectedUid","formAnswerChanged","eventData","formAnswerChangedListener","timeframeText","TextPlaceHolder","TextPlaceHolderRequired","selectedId","formAnswerExplanationTextChanged","isRequiredExplanationTextPopulated","formAnswerExplanationTextChangedListener","unselectedAnswers","isTextPopulated","selectedAnswers","questionnaireSectionId","questionnaireSection","getFamilyHxProblemList","familyHxProblemId","familyHxProblemList","getHistoryRelationshipList","historyRelationshipList","getFamilyHxRelationshipList","subFindTableId","IsVisible","setAllfamilyHxRelationshipListItemsToVisible","setFamilyHxRelationshipListBasedOnMultipleUsage","patientFamilyHistoryId","fhAnswer","PatientFamilyHistoryId","hxRelationshipItem","AllowMultipleUsage","familyHxRelationshipItem","setupDirectiveScope","familyHxProblemListPromise","FamilyHxProblemSubFindTableId","historyRelationshipListPromise","familyHxRelationshipListPromise","FamilyHxRelationshipSubFindTableId","familyHistoryAnswer","relationshipToAdd","newItem","SubFindTableId","SubFindTableItemId","getNewProblemHistoryAnswers","problemHistoryAnswers","findTableItem","getNewProblemHistoryAnswer","addFamilyHistoryInformation","getNewFamilyHistoryAnswer","EditFamilyHistoryAnswer","DeleteFamilyHistoryAnswer","getAdultVaccineList","adultVaccineList","vaccineCard","getNewImmunizationHistoryAnswer","getPediatricVaccineList","pediatricVaccineList","adultVaccineListPromise","AdultVaccineAdminSubFindTableId","pediatricVaccineListPromise","PediatricVaccineAdminSubFindTableId","adultTimeFrameSelectedCallback","ids","vaccineAdminId","vaccineAdminItemId","immunizationCard","VaccineAdminId","immunizationItem","VaccineAdminItemId","pediatricTimeFrameSelectedCallback","getFindTableItemsProblemHx","findTableItemsProblemHx","findTableItemsProblemHxPromise","ProblemHxSubFindTableId","attrs","setFocus","getElementById","focus","apSetFocusEvent","apSetFocusId","timeFrameAnswer","disabled","require","formCtrl","formRef","timeFramesPromise","timeFrameTypes","timeFrameEntryClear","DefaultValue","UseBirthDate","AddToDate","TimespanUnitType","TimespanUnitTypeName","tfInputCtrlId","calInputCtrlId","tfSelCtrlId","OnsetTimeFrameId","OnsetTimeFrameValue","parseInt","timeFrameInputIsVisible","calendarInputIsVisible","datePickerModel","showDatePicker","timeFrameTypeChanged","OnsetTimeFrameDate","OnsetTimeFrameAnswer","timeFrameItem","isTimeFrameInputVisible","patientQuestionnaireDto","searchCriteriaDto","relPracticeFormPatientId","cacheForm","problemHistoryAnswerId","historyGroupId","diseaseId","CameFromPatientChart","DiseaseId","DiseaseName","CauseOfDeath","Denies","OnsetTimeFrame","BirthDateTimeFrame","DeathDateTimeFrame","NoKnownDiseases","isAdultCard","isPediatricCard","IsAdultCard","IsPediatricCard","VaccineAdminName","Inactive","PatientImmunizationCardItems","vaccineItem","VaccineId","VaccineName","PatientImmunization","VaccineInactive","TypeofVaccineId","VaccineAdminIdVaccineAdminItemId","startsWith","len","getKeys","key","billing","paymentOptions","paymentFromConsent","paymentFromNewCard","transactionComplete","paymentSummary","paymentStatementsOnly","paymentFromNewCardStatementsOnly","paymentOptionsStatementsOnly","paymentFromConsentStatementsOnly","paymentSummaryStatementsOnly","BillingRepository","viewMakeAPaymentFeature","viewLedgerFeature","getViewLedgerFeatureFlag","viewStatementFeature","getViewStatementFeatureFlag","ledgerAvailable","promises","loadStatementHistory","loadBillingAccount","loadPaymentHistory","loadingBillingAccount","loadingPaymentHistory","getPaymentHistory","paymentHistoryArray","PaymentHistory","loadingStatementHistory","getStatementHistory","StatementHistory","viewReceipt","txId","viewStatement","viewLedger","downloadLedger","getLedgerUrl","viewLedgerPdf","getLedgerPdf","getStatementHistoryItemPdf","downloadStatementHistoryItem","historyItem","viewStatementHistoryItem","statementHistoryItem","logOff","loadingReceipt","Mask","ExpDate","ConsentId","RemainingInConsent","PerChargeLimit","ReceiptHtml","ActiveTxId","getState","payment","parseFloat","maxPaymentAmount","HasCardOnFile","paymentFromConsentForm","consentAnnual","chargeAmount","ChargeAmount","postPayment","submitPaymentLoading","consentAnnualRequestDto","ConsentAnnualId","consentId","PaymentAmount","ApplicationSubmittingPayment","FinancialCenter","postConsentAnnualPayment","TxId","responsiblePartyBilling","chargeRegEx","loadOneTimePayment","absPathSplit","oneTimePaymentRequestDto","Amount","RedirectUrl","FinancialCenterGuid","getOneTimePaymentUrl","OneTimePaymentUrl","redirectUrlPostBack","applyPaymentRequestDto","PaymentResponseString","postApplyPayment","IsCanceled","PaymentMethodList","PaymentMethodSelect","paymentMethodSelected","paymentMethodSelect","loadPaymentResult","receiptRequestDto","RecipientEnumText","getReceiptHtml","done","parent","postMessage","eventName","origin","loadLedger","ledgerPdf","LedgerData","loadingLedger","Base64","loadReceipt","loadStatement","getStatementUrl","statementPdf","StatementData","loadingStatement","billingRequestDto","oneTimePaymentUrlRequestDto","getReceipt","consentAnnualPaymentRequestDto","getAccountBalance","getStatementImage","getLedgerImage","getStatementHistoryItemImage","statementBatchDetailUid","billingServiceUserId","resetBillingService","accountBalance","billingAccount","statementHistory","receiptHtml","Idle","$modalStack","closeOpenModals","dismissAll","removeClass","modal","onStart","injector","running","unwatch","watch","$urlRouterProvider","$urlServiceProvider","getAppRoutes","deferIntercept"],"mappings":"AAAAA,QAAQC,OAAO,OAGX,sBACA,UACA,SACA,YACA,UACA,cACA,UACA,eACA,YACA,oBACA,SAGA,UACA,iBAEA,cACA,gBACA,gBACA,uBACA,sBACA,uBACDC,SAAS,SACJC,iBAAkB,uCAClBC,aAAc,uCACdC,gBAAiB,yCACtBC,QAAQ,eAAgB,SAASC,cAChC,YAwBAA,cAAaC,UAAU,gCAEvBD,aAAaE,YAAW,GACxBF,aAAaG,WAAU,GAKvBH,aAAaI,KAAK,KAIlBJ,aAAaK,QAAQ,MClEzBZ,QAAQC,OAAO,OAAOK,QAAQ,oBAAqB,iBAC/C,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIC,YACAC,OACIC,MAAO,QACPC,MAAO,SACPC,gBACIC,aAAa,EACbC,YAAa,UAGrBC,SACIL,MAAO,UACPC,MAAO,WACPC,gBACIC,aAAa,EACbC,YAAa,YAGrBE,YACIN,MAAO,aACPC,MAAO,gBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBK,iBACIR,MAAO,kBACPC,MAAO,mBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBM,SACIT,MAAO,UACPC,MAAO,WACPC,gBAAkBE,YAAa,YAEnCM,eACIV,MAAO,gBACPC,MAAO,iBACPC,gBACIC,aAAa,EACbC,YAAa,aAGrBO,mBACIX,MAAO,oBACPC,MAAO,qBACPC,gBAAkBE,YAAa,YAIvCR,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAUC,MAAMC,OACnBa,IAAKf,UAAUC,MAAME,MACrBa,YAAa,4BACbC,WAAY,eACZC,YAAa,SACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,aAG3EpB,MAAMF,UAAUO,QAAQL,OACrBa,IAAKf,UAAUO,QAAQJ,MACvBa,YAAa,4BACbC,WAAY,eACZC,YAAa,SACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,aAG3EpB,MAAMF,UAAUQ,WAAWN,OACxBa,IAAKf,UAAUQ,WAAWL,MAC1Bc,WAAY,iBACZC,YAAa,0BACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,kBAG3EpB,MAAMF,UAAUY,cAAcV,OAC3Ba,IAAKf,UAAUY,cAAcT,MAC7Ba,YAAa,gCACbC,WAAY,oBACZC,YAAa,iBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,gBAG3EpB,MAAMF,UAAUU,gBAAgBR,OAC7Ba,IAAKf,UAAUU,gBAAgBP,MAC/Ba,YAAa,kCACbC,WAAY,sBACZC,YAAa,mBACbK,sBAAwBvB,UAAUU,gBAAgBP,MAClDgB,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,aAG3EpB,MAAMF,UAAUW,QAAQT,OACrBa,IAAKf,UAAUW,QAAQR,MACvBa,YAAa,0BACbC,WAAY,cACZC,YAAa,aAEhBhB,MAAMF,UAAUa,kBAAkBX,OAC/Ba,IAAKf,UAAUa,kBAAkBV,MACjCa,YAAa,+CACbC,WAAY,wBACZC,YAAa,gBCnH7BjC,QAAQC,OAAO,OAAOsC,KAAK,iBAAkB,SAASC,gBACpD,YAEAA,gBAAeC,IAAI,gCACjB,4gEA2FFD,eAAeC,IAAI,0CACjB,mtDAuEFD,eAAeC,IAAI,6CACjB,o1BAwCFD,eAAeC,IAAI,qDACjB,4EAQFD,eAAeC,IAAI,4CACjB,sOAmBFD,eAAeC,IAAI,8CACjB,i8BAqCFD,eAAeC,IAAI,iDACjB,swCA+DFD,eAAeC,IAAI,0CACjB,u4CA8DFD,eAAeC,IAAI,2CACjB,k5EAgGFD,eAAeC,IAAI,0BACjB,ghBA2BFD,eAAeC,IAAI,wBACjB,ymUA2RFD,eAAeC,IAAI,gCACjB,i0KAgKFD,eAAeC,IAAI,4BACjB;AA+bFD,eAAeC,IAAI,yDACjB,+yEAsFFD,eAAeC,IAAI,4CACjB,q1CAgEFD,eAAeC,IAAI,4CACjB,k4CAgEFD,eAAeC,IAAI,+CACjB,89CAsEFD,eAAeC,IAAI,iCACjB,2yJAiLFD,eAAeC,IAAI,kCACjB,kzIA6JFD,eAAeC,IAAI,kCACjB,4rUA+QFD,eAAeC,IAAI,oDACjB,ioBA8BFD,eAAeC,IAAI,+BACjB,60CA+DFD,eAAeC,IAAI,uCACjB,2uCAsDFD,eAAeC,IAAI,oCACjB,skCAkDFD,eAAeC,IAAI,uDACjB;AAwGFD,eAAeC,IAAI,2CACjB,qsDAsEFD,eAAeC,IAAI,2CACjB,8hHAwHFD,eAAeC,IAAI,iDACjB,q+NA+NFD,eAAeC,IAAI,6CACjB,iwTC/9FJ,SAAUzC,SACN,YAIA,SAAS0C,4BACL,OACIC,SAAU,IACVX,YACI,aACA,SACA,SACA,yBACAY,qBAEJb,YAAa,8CAIrB,QAASa,qBACLC,WACAC,OACAC,OACAC,wBAaA,QAASC,eACL,MAAOJ,YAAWK,UAGtB,QAASC,wBACLH,uBAAuBT,MAEnBQ,OAAOK,SAAWL,OAAOK,QAAQC,MAkBjCN,OAAOO,aAAaP,OAAOK,QAASL,OAAOQ,QACvCC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,UAAU,IAIlBC,GAAGC,eAAgB,EAGvB,QAASC,oBACL,MAAOjB,YAAWkB,WAGtB,QAASC,qBACL,MAAOnB,YAAWzB,YApDtB,GAAIwC,KACAC,eAAe,EAEfZ,YAAaA,YACbE,qBAAsBA,qBACtBW,iBAAkBA,iBAClBE,kBAAmBA,kBAGvBlB,QAAOc,GAAKA,GA/BhB5D,QAAQC,OAAO,OAAOgE,UAAU,kBAAmBvB,2BA6EpDwB,OAAOlE,SChFV,SAAUA,SACN,YAWA,SAASmE,yBACLC,yBAOA,QAASC,YACLD,wBACKE,iBAAgB,GAChBC,KAAK,SAASC,MACXZ,GAAGa,aAAeD,OAT9B,GAAIZ,IAAKc,IAGTL,YAfJrE,QAAQC,OAAO,OAAO0E,UAAU,2BAC5B5C,YAAa,qDACb6C,aAAc,KACd5C,YACI,0BACAmC,4BAqBTD,OAAOlE,SC7BVA,QAAQC,OAAO,OAAO+B,WAAW,qBAC5B,SAAU,gBAAiB,yBAA0B,kBAAmB,uBACrE,SAAUc,OAAQ+B,cAAeC,uBAAwBC,gBAAiBC,sBACtE,YAEAD,iBAAgBE,aAAa,mBAE7BnC,OAAOoC,SAAWJ,uBAAuBK,cACzCrC,OAAOsC,cAAgBP,cAAcQ,eACrCvC,OAAOwC,cAAgBT,cAAcU,gBACrCzC,OAAO0C,mBAAqBX,cAAcU,gBAAgBE,UAAU,EAAE,GACtE3C,OAAO4C,SAAWZ,uBAAuBa,cACzC7C,OAAO8C,cAAgBZ,qBAAqBa,2BAC5C/C,OAAOgD,WAAad,qBAAqBe,wBACzCjD,OAAOkD,gBAAkBhB,qBAAqBiB,wBAC9CnD,OAAOoD,cAAgBlB,qBAAqBmB,yBCfxDnG,QAAQC,OAAO,OAAO+B,WAAW,uCAC5B,SAAU,oBAAqB,cAC5B,SAAUc,OAAQsD,eAAgBC,aAC9B,YAOA,SAASC,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAV3B3D,OAAO4D,qBAAsB,EAC7B5D,OAAO6D,OACHC,MAAOP,YAAYO,OAWvB9D,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,UCnB5BxG,QAAQC,OAAO,OAAO+B,WAAW,+BAC5B,SAAU,iBAAkB,cAAe,kBACxC,SAAUc,OAAQ+D,eAAgBC,YAAa/B,iBAC3C,YAEAA,iBAAgBE,aAAa,qBAE7B,IAAI8B,gBACIC,YAAa,cAEjBC,6BAA+BJ,eAAeK,8BAE9CC,SAAW,SAAUC,KAAMC,IAC3B,OAAQA,IAAMC,EAAEC,KAAKH,MAAOI,GAAMH,MAGlCI,aAAe,WACf3E,OAAO4E,aACHC,WAAYZ,gBAGhBjE,OAAO8E,YAGPd,YAAYe,QAAQ,YAAYtD,KAAK,SAAU6C,MAC3C,GAAIU,mBAAoBb,8BAAgCA,6BAA6Bc,UACrFjF,QAAO4E,YAAYC,UAAYP,KAC/BtE,OAAO8E,SAASI,qBAAuBb,SAASrE,OAAO4E,YAAYC,UAAWG,qBAGlFhF,OAAO8E,SAASK,eAAiBhB,8BAAgCA,6BAA6BgB,cAE9F,IAAIC,eAAgBrB,eAAesB,8BACnCrF,QAAO8E,SAASQ,eAAiBF,eAAiBA,cAAcE,eAGpEtF,QAAOuF,KAAO,WAEdvF,OAAOwF,6BAA+B,WAClCzB,eAAe0B,6BACXR,WAAYjF,QAAUA,OAAO8E,UAAY9E,OAAO8E,SAASI,sBAAwBlF,OAAO8E,SAASI,qBAAqBR,GACtHS,eAAiBnF,QAAUA,OAAO8E,UAAY9E,OAAO8E,SAASK,iBAGlEpB,eAAe2B,wBAGnB1F,OAAO2F,yBAA2B,WAC9B1D,gBAAgB2D,UAAU,OAAQ,QAAS,kBAC3C7B,eAAe8B,8BACXP,eAAgBtF,QAAUA,OAAO8E,UAAY9E,OAAO8E,SAASQ,iBAGjEvB,eAAe2B,wBAGnBf,kBCxDZzH,QAAQC,OAAO,OAAO+B,WAAW,eAC5B,SAAU,eAAgB,oBAAqB,gBAAiB,yBAC7D,SAAUc,OAAQ8F,aAAcC,kBAAmBC,cAAehE,wBAC9D,YAEAhC,QAAOiG,cAAgBjE,uBAAuBkE,YAE9ClG,OAAOmG,OAAS,WACZH,cAAcG,SAAS1E,KAAK,WACxBsE,kBAAkBK,YAAYC,SAAU,gBCT5DnJ,QAAQC,OAAO,OAAO+B,WAAY,aAAe,YAAa,OAAQ,aAAc,SAAU,SAC1F,aAAc,kBAAmB,SAAU,gBAAiB,iBAAkB,0BAA2B,iBACzG,yBAA0B,gBAAiB,4BAA6B,iCAAkC,iBAAkB,oBAC5H,oBAAqB,UACjB,SAAUoH,UAAWC,KAAMxG,WAAYC,OAAQC,OAC3CuG,QAASvE,gBAAiBwE,OAAQ1E,cAAe2E,eAAgBpF,wBAAyBqF,eAC1F3E,uBAAwBgE,cAAeY,0BAA2BC,+BAAgCC,eAAgBf,kBAClHgB,kBAAmBC,SACnB,YAuDA,SAASC,oBACL3F,wBAAwB4F,iBAAgB,GACnCzF,KAAK,SAAU0F,cACZnH,OAAO6D,MAAMlC,aAAewF,aAAaxF,aACzC3B,OAAO6D,MAAMuD,gBAAkBD,aAAaC,kBAHpD9F,SAKW,WACHtB,OAAO6D,MAAMlC,aAAe,GAC5B3B,OAAO6D,MAAMuD,gBAAkB,KAI3C,QAASC,UACLJ,mBACAK,yBAGJ,QAASC,gBAEL,IAAIvH,OAAOwH,QAAX,CAIA,GAAIxH,OAAOyH,UAAUC,SAEjB,YADA1H,OAAO2H,WAAY,EAIvB3H,QAAOwH,SAAU,EAEjBb,eAAezI,MAAM8D,uBAAuBK,cAAerC,OAAO6D,MAAM+D,SAAU5H,OAAO6D,MAAMgE,SAAU7H,OAAO6D,MAAMiE,QAAU9H,OAAO6D,MAAMiE,QAAQC,OAAS,KAAM/H,OAAO6D,MAAMmE,QAC5KvG,KAAK,WAGF1B,WAAWkI,WAAW,kBAEtBnB,eAAeoB,yBAAwB,GACnCpB,eAAeqB,4BAA6B,GAC5CrB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,oBAEnCS,eAAewB,gCAAiC,GACrDxB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,gBAGxCS,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,mBAE7C,SAAUkC,KACTvI,OAAOwI,aAAeD,IAAIE,QAE1BhC,OAAOiC,kBACHC,MAAOnC,QAAQ,eACfiC,QAASF,IAAIE,QACbG,SAAUpC,QAAQ,aA5B9BG,WA+Ba,WACL3G,OAAOwH,SAAU,KAI7B,QAASqB,mBACL/B,eAAesB,4BAA2B,GAC1CrC,kBAAkBK,YAAYC,SAAU,6BAG5C,QAASvB,YACLiB,kBAAkBK,YAAYC,SAAU,kBAG5C,QAASyC,kBACL,MAAK9I,QAAO6D,MAAM+D,UAKlB5F,uBAAuB+G,YAAY/I,OAAO6D,MAAM+D,cAGhDb,mBAAkBiC,qBAAqBhJ,OAAO6D,MAAM+D,SAAU5F,uBAAuBK,eAChFZ,KAAK,SAAUC,MACRA,KACAqE,kBAAkBK,YAAYC,SAAU,mBAExCW,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,kFAL/CO,SAOa,WACLC,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,kFAR3CO,WASe,WACP/G,OAAOwH,SAAU,SAjBrBR,SAAQiC,IAAI,UAAW,GAAIzC,QAAQ,2CAqB3C,QAASc,0BACLV,0BAA0BsC,8BAA8BlH,uBAAuBK,eAC1EZ,KAAK,SAAUC,MACZ1B,OAAOmJ,oBAAsBzH,KAC7B1B,OAAOoJ,sBAAuB,IAHtCxC,SAKW,WACH5G,OAAOwI,aAAehC,QAAQ,wCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,uCACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aAlKlCD,KAAK8C,KAAK,yBAEVpH,gBAAgBE,aAAa,UAC7B6D,cAAcG,SACdW,eAAewC,qBACfzC,+BAA+B0C,sBAE/BvJ,OAAOwI,aAAe,GACtBxI,OAAO2H,WAAY,EACnB3H,OAAOwH,SAAU,EACjBxH,OAAOwJ,SAAWhF,EAAEiF,IAAIjF,EAAEkF,UAAU3H,cAAc4H,UAAW,SAAUC,GAEnE,MADAA,GAAEC,QAAUD,EAAE7B,OAAS,MAAQ6B,EAAE5K,IAC1B4K,IAGX5J,OAAOmJ,oBAAsB,KAE7BnJ,OAAO6D,OACHzB,SAAUJ,uBAAuBK,eAAiB,IAClDuF,SAAU5F,uBAAuB8H,eAAiB,GAClD9B,OAAQhG,uBAAuBkE,aAAe,KAC9C2B,SAAU,GACVC,QAAS,KACTnG,aAAc,GACdyF,gBAAiB,IAGjBrF,cAAcgI,WAuBd1C,SAtBA/F,wBAAwB0I,kBACnBvI,KAAK,SAAUC,MACZ,GAAIuI,aAAcjI,uBAAuBK,aAEtC4H,eAAgBvI,KAAKwI,UACpBlI,uBAAuBmI,WAG3BnI,uBAAuBoI,aAAa1I,KAAK2I,SACzCrI,uBAAuBsI,YAAY5I,KAAKwI,UAExClK,OAAO6D,MAAMzB,SAAWJ,uBAAuBK,cAC/CgF,WAZR/F,SAaa,WACLtB,OAAOwI,aAAehC,QAAQ;AAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aAyHlCxG,OAAOuH,aAAeA,aACtBvH,OAAO6I,gBAAkBA,gBACzB7I,OAAO8E,SAAWA,SAClB9E,OAAO8I,eAAiBA,eACxB9I,OAAOsH,uBAAyBA,0BCrL5CpK,QAAQC,OAAO,OAAO+B,WAAW,qBAC5B,SAAU,WAAY,SAAU,kBAAmB,yBAA0B,kBAAmB,sBAAuB,gBACpH,SAAUc,OAAQuK,SAAUtK,OAAQuK,gBAAiBxI,uBAAwBC,gBAAiBwI,oBAAqB1I,eAC/G,YAkBA,SAASkB,yBACL,MAAOjB,wBAAuBiB,wBAGlC,QAASyH,iBACLzI,gBAAgB2D,UAAU,OAAQ,QAAS,iBAAkB,GAE7D5D,uBAAuBmI,UAEvB,IAAIQ,UAAW3I,uBAAuBK,aAKlCuI,qBAHCD,SAGmB,SAFA,SAM5B,QAASE,cACL5I,gBAAgB2D,UAAU,OAAQ,QAAS,cAAe,GAC1D3F,OAAO6K,GAAG,SAGd,QAASC,kBACL9I,gBAAgB2D,UAAU,OAAQ,QAAS,kBAAmB,GAC9D4E,gBAAgBQ,QAAQhL,OAAOiL,OAAOC,UACtCN,oBAAoB5K,OAAOiL,OAAOC,UAGvC,QAASC,kBACJnJ,uBAAuBsI,YAAYtK,OAAOkK,UAC1CU,oBAAoB5K,OAAOkK,UAG/B,QAASkB,6BACL,GAAIC,UAAWrL,OAAOsL,mBAClBD,WAAY,GAAiB,IAAZA,WAIjBrJ,uBAAuBuJ,uBAAuBvL,OAAOsL,qBACrDV,oBAAoB5K,OAAOsL,sBAG/Bb,oBAAoBe,wBAGxB,QAASZ,qBAAoBa,QACzBzL,OAAO0L,cAAgBD,OAEvBlB,SAAS,WACLvK,OAAO0L,cAAgB,IACxB,MApEPzJ,gBAAgBE,aAAa,kBAE7BnC,OAAOiL,QACHC,SAAUV,gBAAgBmB,UAAUC,MAGxC5L,OAAOkK,SAAWlI,uBAAuBK,cACzCrC,OAAOsL,oBAAsBtJ,uBAAuB6J,yBACpD7L,OAAO8L,gBAAiB,EACxB9L,OAAO+L,8BAA+B,EACtC/L,OAAOgM,aAAc,EAErBhM,OAAOiM,UAAYzB,gBAAgB0B,eACnClM,OAAOmM,kBAAoBpK,cAAcgI,WA0DzC/J,OAAOoM,SACHC,cAAe,YAGnBrM,OAAO6K,WAAaA,WACpB7K,OAAO+K,eAAiBA,eACxB/K,OAAO0K,cAAgBA,cACvB1K,OAAOiD,sBAAwBA,sBAE3BjD,OAAOmM,oBACPnM,OAAOoL,0BAA4BA,0BACnCpL,OAAOmL,eAAiBA,mBCvFxCjO,QAAQC,OAAO,OAAO+B,WAAW,2BAC5B,SAAU,iBAAkB,cAAe,kBACxC,SAAUc,OAAQ+D,eAAgBC,YAAa/B,iBAC3C,YAUA,SAASoC,UAASC,KAAMC,IACpB,OAAQA,IAAMC,EAAEC,KAAKH,MAAOI,GAAMH,KAKtC,QAASI,gBACL3E,OAAOsM,gBACHC,gBAAiBtI,gBAGrBjE,OAAO8E,YAEPd,YAAYe,QAAQ,kBAAkBtD,KAAK,SAAU6C,MACjD,GAAIkI,wBAAyBC,2BAA6BA,0BAA0BC,eACpF1M,QAAOsM,eAAeC,eAAiBjI,KACvCtE,OAAO8E,SAAS6H,eAAiBtI,SAASrE,OAAOsM,eAAeC,eAAgBC,0BAxBxFvK,gBAAgBE,aAAa,oBAG7B,IAAI8B,gBACIC,YAAa,cAEjBuI,0BAA4B1I,eAAe6I,yBAM/C5M,QAAOuF,KAAO,SAgBdvF,OAAO6M,yBAA2B,WAC9B9I,eAAe+I,yBACXJ,gBAAiB1M,QAAUA,OAAO8E,UAAY9E,OAAO8E,SAAS6H,gBAAkB3M,OAAO8E,SAAS6H,eAAejI,KAGnHX,eAAe2B,wBAGnBf,kBCzCZzH,QAAQC,OAAO,OAAO+B,WAClB,gBAEI,UACA,YACA,OACA,aACA,SACA,WACA,aACA,kBACA,SACA,gBACA,iBACA,0BACA,iBACA,yBACA,gBACA,4BACA,iCACA,iBACA,oBACA,SACI6N,QACAzG,UACAC,KACAxG,WACAC,OACAgN,SACAxG,QACAvE,gBACAwE,OACA1E,cACA2E,eACApF,wBACAqF,eACA3E,uBACAgE,cACAY,0BACAC,+BACAC,eACAf,mBAEA,YAiEA,SAASkH,iBAEL,IAAIjN,OAAOwH,QAAX,CAIA,GAAIxH,OAAOkN,kBAAkBxF,SAEzB,YADA1H,OAAO2H,WAAY,EAIvB3H,QAAOwH,SAAU,EAEjBb,eAAesG,cAAejN,OAAOmN,YAAYjD,SAAUlK,OAAOmN,YAAYvF,SAAU5H,OAAOmN,YAAYrF,QAAU9H,OAAOmN,YAAYrF,QAAQC,OAAS,MACpJtG,KAAK,SAAU2L,wBACZ,GAAGA,wBAA0BA,uBAAuBC,aAAY,GAASD,uBAAuBE,0BAA2B,CACvH,GAAIC,UAAWvN,OAAOmN,YAAYvF,QACsB,gBAArDwF,uBAAuBE,2BACtBtN,OAAOwN,QAAS,EAChBC,mBAAmBzN,OAAOmN,YAAYvF,WAEmB,kBAArDwF,uBAAuBE,2BAAiDF,uBAAuBM,gBACnGC,QACA3N,OAAO4N,aAAc,EACrB5N,OAAO6N,cAAcjG,SAAW2F,UAEyB,kBAArDH,uBAAuBE,2BAAkDF,uBAAuBM,eAOpG1N,OAAOwI,aAAe,0CANtBmF,QACA3N,OAAO8N,UAAW,EAClB9N,OAAO+N,WAAWnG,SAAW2F,cASjCvN,QAAOwI,aAAe,0CAE3B,SAAUD,KACTvI,OAAOwI,aAAeD,IAAIE,UA5BlC9B,WA8Ba,WACL3G,OAAOwH,SAAU,KAI7B,QAASwG,YAEL,IAAIhO,OAAOwH,QAAX,CAIA,GAAIxH,OAAOiO,aAAavG,SAEpB,YADA1H,OAAO2H,WAAY,EAIvB3H,QAAOwH,SAAU,EAEjBb,eAAeqH,SAAUhO,OAAO6N,cAAc3D,SAAUlK,OAAO6N,cAAcjG,SAAU5H,OAAO6N,cAAchG,SAAU7H,OAAO6N,cAAc/F,QAAU9H,OAAO6N,cAAc/F,QAAQC,OAAS,MACtLtG,KAAK,SAAU2L,wBACZ,GAAGA,wBAA0BA,uBAAuBC,aAAY,GAASD,uBAAuBc,SAAU,CACtG,GAAIX,UAAWvN,OAAO6N,cAAcjG,QACpC+F,SACA3N,OAAOmO,YAAa,EACpBnO,OAAOoO,aAAaC,aAAejB,uBAAuBc,SAASI,aAChElB,uBAAuBc,SAASK,aAAenB,uBAAuBc,SAASK,cAAgB,GAAIC,MAAK,0BAEvGxO,OAAOoO,aAAaK,YAAc,GAAID,MAAKpB,uBAAuBc,SAASK,cAE/EvO,OAAOoO,aAAaM,SAAWtB,uBAAuBc,SAASS,UAC/D3O,OAAOoO,aAAaxG,SAAW2F,aAEU,OAArCH,uBAAuBwB,UAE3B5O,OAAOwI,aAAe,iBAItBqG,cAAc7O,OAAO6N,cAAcjG,SAAU,kDAElD,SAAUW,KACTsG,cAAc7O,OAAO6N,cAAcjG,SAAUW,IAAIE,WAvBzD9B,WAyBa,WACL3G,OAAOwH,SAAU,KAI7B,QAASqH,eAActB,SAAU9E,SAE7BkF,QACA3N,OAAO6N,cAAcjG,SAAW2F,SAChCvN,OAAO4N,aAAc,EACrB5N,OAAOwI,aAAeC,QAG1B,QAASvK,SAEL,IAAI8B,OAAOwH,QAAX,CAIA,GAAIxH,OAAOyH,UAAUC,SAEjB,YADA1H,OAAO2H,WAAY,EAIvB3H,QAAOwH,SAAU,EAEjBb,eAAezI,MAAO8B,OAAO+N,WAAW7D,SAAUlK,OAAO+N,WAAWnG,SAAU5H,OAAO+N,WAAWlG,SAAU7H,OAAO+N,WAAWjG,QAAU9H,OAAO+N,WAAWjG,QAAQC,OAAS,MACpKtG,KAAK,WAGF1B,WAAWkI,WAAW,kBAEtBnB,eAAeoB,yBAAwB,GACnCpB,eAAeqB,4BAA6B,GAC5CrB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,oBAEnCS,eAAewB,gCAAiC,GACrDxB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,gBAGxCS,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,mBAE7C,SAAUkC,KACTuG,WAAW9O,OAAO+N,WAAWnG,SAAUW,IAAIE,WAvBnD9B,WAyBa,WACL3G,OAAOwH,SAAU,KAI7B,QAASsH,YAAWvB,SAAU9E,SAE1BkF,QACA3N,OAAO+N,WAAWnG,SAAW2F,SAC7BvN,OAAO8N,UAAW,EAClB9N,OAAOwI,aAAeC,QAG1B,QAASsG,WAEL,IAAI/O,OAAOwH,QAAX,CAIA,GAAIxH,OAAOgP,iBAAiBtH,SAExB,YADA1H,OAAO2H,WAAY,EAIvB3H,QAAOwH,SAAU,CACjB,IAAIkH,UAAW1O,OAAOoO,aAAaM,SAC/BO,IAAMjP,OAAOoO,aAAaK,YAC1BS,MAAQlP,OAAOoO,aAAaC,aAC5Bc,YAAcnP,OAAOoO,aAAaxG,QACtCjB,gBAAeoI,QAAQ/O,OAAOoO,aAAalE,SAAUlK,OAAOoO,aAAaM,SAAU1O,OAAOoO,aAAaK,YAAazO,OAAOoO,aAAaC,aAAcrO,OAAOoO,aAAaxG,SAAU5H,OAAO6N,cAAc/F,QAAU9H,OAAO6N,cAAc/F,QAAQC,OAAS,MACpPtG,KAAK,SAAU2L,wBACZ,GAAGA,wBAA0BA,uBAAuBC,aAAY,GAASD,uBAAuBgC,oBAChG,CACI,GAAI7B,UAAWvN,OAAOoO,aAAaC,YAInC,IAHAV,QACA3N,OAAOqP,WAAY,EACnBrP,OAAOmN,YAAYvF,SAAW2F,SAC3BH,uBAAuBwB,YAAc5O,OAAOsP,gCAAgCC,kBAE3EvP,OAAOwI,aAAe,+DAG1B,CACI,GAAIgH,cAAepC,uBAAuBgC,oBAAoBK,mBAC9DzP,QAAO0P,aAAeF,aACtBxP,OAAO2P,gBAAkBvC,uBAAuBgC,oBAAoBQ,qBAKxEC,cAAanB,SAAUO,IAAKC,MAAOC,YAAa,kDAErD,SAAU5G,KAETsH,aAAanB,SAAUO,IAAKC,MAAOC,YAAa5G,IAAIE,WAzB5D9B,WA2Ba,WACL3G,OAAOwH,SAAU,KAI7B,QAASqI,cAAanB,SAAUO,IAAKC,MAAO3B,SAAU/E,cAElDmF,QACA3N,OAAOoO,aAAaM,SAAWA,SAC/B1O,OAAOoO,aAAaK,YAAcQ,IAClCjP,OAAOoO,aAAaC,aAAea,MACnClP,OAAOoO,aAAaxG,SAAW2F,SAC/BvN,OAAOmO,YAAa,EACpBnO,OAAOwI,aAAeA,aAG1B,QAAS9E,UAELiK,QACA3N,OAAOqP,WAAY,EAGvB,QAAShI,UACLsG,QACA3N,OAAOqP,WAAY,EACnBrP,OAAOwI,aAAe,GACtBxI,OAAO2H,WAAY,EACnB3H,OAAOwH,SAAU,EACjBxH,OAAOwJ,SAAWhF,EAAEiF,IAAIjF,EAAEkF,UAAU3H,cAAc4H,UAAW,SAAUC,GAEnE,MADAA,GAAEC,QAAUD,EAAE7B,OAAS,MAAQ6B,EAAE5K,IAC1B4K,IAGX5J,OAAOmJ,oBAAsB,KAC7BnJ,OAAOsP,iCACHQ,SAAY,IACZC,iBAAoB,IACpBC,gBAAmB,IACnBC,gBAAmB,IACnBC,aAAgB,IAChBC,WAAc,IACdZ,kBAAqB,KAEzBtI,mBACAK,yBAGJ,QAASqG,SAEL3N,OAAOqP,WAAY,EACnBrP,OAAO4N,aAAc,EACrB5N,OAAO8N,UAAW,EAClB9N,OAAOmO,YAAa,EACpBnO,OAAOwI,aAAe,GACtB4H,YAGJ,QAASA,aAELpQ,OAAOmN,aACHjD,SAAUlI,uBAAuBK,eAAiB,IAClDuF,SAAU5F,uBAAuB8H,eAAiB,GAClDhC,QAAS,MAEb9H,OAAO6N,eACH3D,SAAUlI,uBAAuBK,eAAiB,IAClDuF,SAAU,GACVC,SAAU,GACVC,QAAS,MAEb9H,OAAO+N,YACH7D,SAAUlI,uBAAuBK,eAAiB,IAClDuF,SAAU,GACVC,SAAU,GACVC,QAAS,MAEb9H,OAAOoO,cACHlE,SAAUlI,uBAAuBK,eAAiB,IAClDqM,SAAU,GACVD,YAAa,GACbJ,aAAc,GACdzG,SAAU,GACVE,QAAS,MAEb9H,OAAOqQ,eACH1O,aAAc,GACdyF,gBAAiB,IAIzB,QAASH,oBACL3F,wBAAwB4F,iBAAgB,GACnCzF,KAAK,SAAU0F,cACZnH,OAAOqQ,cAAc1O,aAAewF,aAAaxF,aACjD3B,OAAOqQ,cAAcjJ,gBAAkBD,aAAaC,kBAH5D9F,SAKW,WACHtB,OAAOqQ,cAAc1O,aAAe,GACpC3B,OAAOqQ,cAAcjJ,gBAAkB,KAInD,QAASE,0BACLV,0BAA0BsC,8BAA8BlH,uBAAuBK,eAC1EZ,KAAK,SAAUC,MACZ1B,OAAOmJ,oBAAsBzH,KAC1BA,KAAK4O,qBAEJ5O,KAAK4O,mBAAqB5O,KAAK4O,mBAAmBC,QAAQ,gBAAiB,SAE/EvQ,OAAOoJ,sBAAuB,IAPtCxC,SASW,WACH5G,OAAOwI,aAAehC,QAAQ,0CAI1C,QAASgK,iCACL7J,eAAe6J,gCAAgC/O,KAAK,SAASzC,KACzD,GAAIyR,QAASzO,uBAAuB0O,iBACpC3D,SAAQlM,SAAS8P,KAAO3R,IAAM,kBAAoByR,SAFtD9J,SAGS,SAASiK,OACd5Q,OAAO4Q,MAAQA,QAIvB,QAASnD,oBAAmBF,UACxBvN,OAAOwH,SAAU,EACjBb,eAAe8G,mBAAmBF,UAAU9L,KAAK,SAASzC,KACtD+N,QAAQlM,SAAS8P,KAAO3R,MAD5B2H,SAES,SAASiK,OACd5Q,OAAO4Q,MAAQA,QAHnBjK,WAIW,WACP3G,OAAOwH,SAAU,IArYF,aAApBlB,UAAUuK,MAETL,gCAEMlK,UAAUwK,UAAYxK,UAAUwK,SAASlF,OAE/C5L,OAAOwN,QAAS,GAGpBG,QAEApH,KAAK8C,KAAK,4BAEVpH,gBAAgBE,aAAa,UAC7B6D,cAAcG,SACdW,eAAewC,qBACfzC,+BAA+B0C,sBAE3BxH,cAAcgI,WAYd1C,SAXA/F,wBAAwB0I,kBACnBvI,KAAK,SAAUC,MAEZM,uBAAuBoI,aAAa1I,KAAK2I,SACzCrI,uBAAuBsI,YAAY5I,KAAKwI,UAExC7C,WANR/F,SAOa,WACLtB,OAAOwI,aAAehC,QAAQ,2CAMvCF,UAAUwK,UAAYxK,UAAUwK,SAASlF,MAExCjF,eAAeoK,mBAAmB/O,uBAAuBK,cAAeiE,UAAUwK,SAASlF,KAAM,MAC5FnK,KAAK,WAKF1B,WAAWkI,WAAW,kBAEtBnB,eAAeoB,yBAAwB,GACnCpB,eAAewB,gCAAiC,GAChDxB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,gBAGxCS,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,mBAE7C,SAAUkC,KACTvI,OAAOwN,QAAS,EAChBxN,OAAOgR,kBAAoBzI,IAAIE,UArBvC9B,WAuBa,WACL3G,OAAOwH,SAAU,IA6U7BxH,OAAOwQ,8BAAgCA,8BACvCxQ,OAAOyN,mBAAqBA,mBAC5BzN,OAAOsH,uBAAyBA,uBAChCtH,OAAOiN,cAAgBA,cACvBjN,OAAOgO,SAAWA,SAClBhO,OAAO+O,QAAUA,QACjB/O,OAAO0D,OAASA,OAChB1D,OAAO9B,MAAQA,SC5b3BhB,QAAQC,OAAO,OAAO+B,WAAW,uBAC5B,SAAS,aAAa,oBAAqB,yBAAyB,0BAA0B,iBAAiB,SAAU,aAAa,eAAe,gBAAgB,OAAO,kBAAkB,gBAAgB,yBAC3M,SAAUc,OAAOD,WAAYgG,kBAAmB/D,uBAAuBV,wBAAwBqF,eAAgBF,OAAQD,QAASyK,aAAcjL,cAAeO,KAAMtE,gBAAiBF,cAAemP,wBAC/L,YA+BA,SAASjK,oBACL3F,wBAAwB4F,iBAAgB,GACnCzF,KAAK,SAAU0F,cACZnH,OAAO6D,MAAMlC,aAAewF,aAAaxF,aACzC3B,OAAO6D,MAAMuD,gBAAkBD,aAAaC,kBAHpD9F,SAKW,WACHtB,OAAO6D,MAAMlC,aAAe,GAC5B3B,OAAO6D,MAAMuD,gBAAkB,KAmC3C,QAASC,UACLJ,mBAKJ,QAASM,gBAEL,IAAIvH,OAAOwH,QAAX,CAIA,GAAIxH,OAAOyH,UAAUC,SAEjB,YADA1H,OAAO2H,WAAY,EAIvB3H,QAAOwH,SAAU,CACjB,IAAI2J,qBAAsBnR,OAAO6D,MAAMuN,aAAepR,OAAO6D,MAAMuN,YAAYb,QAAQ,MAAM,GAE7F5J,gBAAe0K,oBAAoBrP,uBAAuBK,cAAerC,OAAO6D,MAAMyN,UAAWtR,OAAO6D,MAAM0N,QAASvR,OAAO6D,MAAM2N,WAAWC,cAAeN,oBAAqBnR,OAAO6D,MAAMiE,QAAU9H,OAAO6D,MAAMiE,QAAQC,OAAS,MACnOtG,KAAK,WAGF1B,WAAWkI,WAAW,kBACtBiJ,uBAAuBQ,qBACvB3L,kBAAkBK,YAAYC,SAAU,2BAEzC,SAAUkC,KACTvI,OAAOwI,aAAe,mEAEtB/B,OAAOiC,kBACHC,MAAOnC,QAAQ,gBACfiC,QAASF,IAAIE,QACbG,SAAUpC,QAAQ,aAd9BG,WAiBa,WACL3G,OAAOwH,SAAU,KA9G7BjB,KAAK8C,KAAK,yBAEVrJ,OAAO2R,eAAiB,yBACxB3R,OAAO4R,WAAa,kCACpB5R,OAAO6R,aAAe,WACtB7R,OAAO2B,aAAe,KACtB3B,OAAO8R,YAAcb,aAAaa,YAClC9R,OAAOwJ,SAAWhF,EAAEiF,IAAIjF,EAAEkF,UAAU3H,cAAc4H,UAAW,SAAUC,GAEnE,MADAA,GAAEC,QAAUD,EAAE7B,OAAS,MAAQ6B,EAAE5K,IAC1B4K,IAGX5J,OAAO6D,OAEHzB,SAAUJ,uBAAuBK,eAAiB,IAClDiP,UAAW,GACXC,QAAS,GACTC,WAAW,GACX1J,QAAS,KACTnG,aAAc,GACdyF,gBAAiB,GACjBY,OAAS,IAKb/F,gBAAgBE,aAAa,oBAC7B6D,cAAcG,SAcTpE,cAAcgI,YACfzI,wBAAwB0I,kBACnBvI,KAAK,SAAUC,MACZ,GAAIA,KAAM,CACN,GAAIuI,aAAcjI,uBAAuBK,aAErC4H,eAAgBvI,KAAKwI,UACrBlI,uBAAuBmI,WAG3BnI,uBAAuBoI,aAAa1I,KAAK2I,SACzCrI,uBAAuBsI,YAAY5I,KAAKwI,cAGxClK,QAAOwI,aAAehC,QAAQ,yCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aAjBlClF,SAoBa,WACTtB,OAAOwI,aAAehC,QAAQ,yCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aAS9Ba,SAsCArH,OAAOuH,aAAeA,gBCvHlCrK,QAAQC,OAAO,OAAO+B,WAAY,kBAAoB,YAAa,OAAQ,aAAc,SAAU,SAAU,eACzG,aAAc,kBAAmB,SAAU,gBAAiB,iBAAkB,0BAA2B,iBACzG,yBAA0B,gBAAiB,4BAA6B,iCAAkC,iBAAkB,oBAC5H,SAAUoH,UAAWC,KAAMxG,WAAYC,OAAQC,OAAQgR,aAC7CzK,QAASvE,gBAAiBwE,OAAQ1E,cAAe2E,eAAgBpF,wBAAyBqF,eAC1F3E,uBAAwBgE,cAAeY,0BAA2BC,+BAAgCC,eAAgBf,mBACxH,YAuDA,SAAS7H,SACL8B,OAAOwH,SAAU,EAEjBb,eAAelI,WAAWuD,uBAAuBK,cAAerC,OAAO6D,MAAMiE,QAAU9H,OAAO6D,MAAMiE,QAAQC,OAAS,KAAMkJ,aAAac,OACnItQ,KAAK,WAGF1B,WAAWkI,WAAW,kBAEtBnB,eAAeoB,yBAAwB,GACnCpB,eAAeqB,4BAA6B,GAC5CrB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,oBAEnCS,eAAewB,gCAAiC,GACrDxB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,gBAGxCS,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,mBAE7C,SAAUkC,KACTvI,OAAOwI,aAAeD,IAAIE,QAE1BhC,OAAOiC,kBACHC,MAAOnC,QAAQ,eACfiC,QAASF,IAAIE,QACbG,SAAUpC,QAAQ,aA5B9BG,WA+Ba,WACL3G,OAAOwH,SAAU,IAxF7BjB,KAAK8C,KAAK,8BAEVpH,gBAAgBE,aAAa,UAC7B6D,cAAcG,SACdW,eAAewC,qBACfzC,+BAA+B0C,sBAE/BvJ,OAAOwI,aAAe,GACtBxI,OAAO2H,WAAY,EACnB3H,OAAOwH,SAAU,EACjBxH,OAAOwJ,SAAWhF,EAAEiF,IAAIjF,EAAEkF,UAAU3H,cAAc4H,UAAW,SAAUC,GAEnE,MADAA,GAAEC,QAAUD,EAAE7B,OAAS,MAAQ6B,EAAE5K,IAC1B4K,IAGX5J,OAAOmJ,oBAAsB,KAE7BnJ,OAAO6D,OACHzB,SAAUJ,uBAAuBK,eAAiB,IAClDuF,SAAU5F,uBAAuB8H,eAAiB,GAClD9B,OAAQhG,uBAAuBkE,aAAe,KAC9C2B,SAAU,GACVC,QAAS,KACTnG,aAAc,GACdyF,gBAAiB,IAGhBrF,cAAcgI,WAuBf7L,QAtBAoD,wBAAwB0I,kBACnBvI,KAAK,SAAUC,MACZ,GAAIuI,aAAcjI,uBAAuBK,aAErC4H,eAAgBvI,KAAKwI,UACrBlI,uBAAuBmI,WAG3BnI,uBAAuBoI,aAAa1I,KAAK2I,SACzCrI,uBAAuBsI,YAAY5I,KAAKwI,UAExClK,OAAO6D,MAAMzB,SAAWJ,uBAAuBK,cAC/CnE,UAZRoD,SAaa,WACTtB,OAAOwI,aAAehC,QAAQ,yCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,gBCtDtCtJ,QAAQC,OAAO,OAAO+B,WAAW,oBAC5B,SAAU,IAAK,SAAU,kBAAmB,yBAA0B,kBACnE,SAAUc,OAAQgS,OAAQ/R,OAAQuK,gBAAiBxI,uBAAwBC,iBACvE,YAEAjC,QAAOuF,KAAO,SACdvF,OAAOiS,cACH1E,SAAUvL,uBAAuBkQ,kBACjChI,SAAUlI,uBAAuBK,eAErCrC,OAAOiS,aAAahG,YAEZ1L,KAAM,UACNgE,GAAI,UAGJhE,KAAM,UACNgE,GAAI,SAIZ,IAAI4N,iBAAkB3N,EAAExE,OAAOiS,aAAahG,WAAWmG,QAAQ7N,GAAIiG,gBAAgBmB,UAAUC,OAAO3C,KAEpGjJ,QAAOiS,aAAa/G,SAAWiH,gBAAkBA,gBAAgB5N,GAAK,KAEtEvE,OAAO+K,eAAiB,WACpBP,gBAAgBQ,QAAQhL,OAAOiS,aAAa/G,UAC5CjJ,gBAAgB2D,UAAU,MAAO,eAAgB,kBAAmB,OC3BpF1I,QAAQC,OAAO,OAAO+B,WAAW,4BAC5B,SAAU,oBAAqB,cAC5B,SAAUc,OAAQsD,eAAgBC,aAC9B,YAeA,SAAS8O,cAAaC,YAClB,MAAO/O,aAAYgP,aAAaD,YAGpC,QAASE,cAAaF,WAAYG,iBAE9B,MADAzS,QAAO0S,iBAAkB,EAClBnP,YAAYoP,aAAaL,WAAYG,iBAArClP,WACM,WACLvD,OAAO0S,iBAAkB,IAIrC,QAASE,kBAAiBN,YAEtB,MADAtS,QAAO4D,qBAAsB,EACtBL,YAAYsP,iBAAiBP,YAA7B/O,WACM,WACLvD,OAAO4D,qBAAsB,IAIzC,QAASJ,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAtC3B3D,OAAO4D,qBAAsB,EAC7B5D,OAAO6D,OACHC,MAAOP,YAAYO,MACnBgP,iBAAkBvP,YAAYsP,iBAC9BE,iBAAkBxP,YAAYwP,iBAC9BC,WAAYzP,YAAYyP,WACxBC,aAAc1P,YAAY0P,aAC1BC,iBAAkB3P,YAAY2P,iBAC9BC,eAAgB5P,YAAY4P,eAC5BC,SAAU7P,YAAY6P,SACtBC,UAAW9P,YAAY8P,WA+B3BrT,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAChB1D,OAAOqS,aAAeA,aACtBrS,OAAOwS,aAAeA,aACtBxS,OAAO4S,iBAAmBA,oBClDtC1V,QAAQC,OAAO,OAAO+B,WAAW,yBAC5B,SAAU,oBAAqB,cAC5B,SAAUc,OAAQsD,eAAgBC,aAC9B,YAaA,SAAS8O,cAAaC,YAClB,MAAO/O,aAAYgP,aAAaD,YAGpC,QAASE,cAAaF,WAAYG,iBAE9B,MADAzS,QAAO0S,iBAAkB,EAClBnP,YAAYoP,aAAaL,WAAYG,iBAArClP,WACM,WACLvD,OAAO0S,iBAAkB,IAIrC,QAASE,kBAAiBN,YAEtB,MADAtS,QAAO4D,qBAAsB,EACtBL,YAAYsP,iBAAiBP,YAA7B/O,WACM,WACLvD,OAAO4D,qBAAsB,IAIzC,QAASJ,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UApC3B3D,OAAO4D,qBAAsB,EAC7B5D,OAAO6D,OACHC,MAAOP,YAAYO,MACnBgP,iBAAkBvP,YAAYsP,iBAC9BE,iBAAkBxP,YAAYwP,iBAC9BC,WAAYzP,YAAYyP,WACxBC,aAAc1P,YAAY0P,aAC1BC,iBAAkB3P,YAAY2P,iBAC9BC,eAAgB5P,YAAY4P,gBA+BhCnT,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAChB1D,OAAOqS,aAAeA,aACtBrS,OAAOwS,aAAeA,aACtBxS,OAAO4S,iBAAmBA,oBChDtC1V,QAAQC,OAAO,OAAO+B,WAAW,0BAC5B,SAAU,oBAAqB,OAAQ,iBAAkB,yBACtD,SAAUc,OAAQsD,eAAgBgQ,KAAM5M,eAAgB1E,wBACpD,YAKA,SAASuR,qBACLvT,OAAOwH,SAAU,EACjBxH,OAAOwT,kBAEHC,YACA/M,eAAegN,qBACVjS,KAAK,SAAUC,MACZ1B,OAAO2T,gBAAkBjS,KAAKkS,cAFtClN,SAIW,SAAUmN,UACb7T,OAAO8T,aAAaD,YAL5BnN,WAOa,WACL1G,OAAOwH,SAAU,IAGzBxH,OAAOwH,SAAU,EAIzB,QAAShE,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UA5B3B3D,OAAOwH,SAAU,CACjB,IAAIiM,aAAczR,uBAAuBkE,WA8BzClG,QAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAEhB6P,uBCvCZrW,QAAQC,OAAO,OAAO+B,WAAW,0BAC5B,SAAU,oBAAqB,OAAQ,iBAAkB,yBACtD,SAAUc,OAAQsD,eAAgBgQ,KAAM5M,eAAgB1E,wBACpD,YAKA,SAAS+R,qBACL/T,OAAOwH,SAAU,EACjBxH,OAAOwT,kBAEHC,YACA/M,eACKsN,sBACAvS,KAAK,SAAUwS,kBACZjU,OAAOiU,iBAAmBA,mBAHlCvN,SAKW,SAAUmN,UACb7T,OAAO8T,aAAaD,YAN5BnN,WAQa,WACL1G,OAAOwH,SAAU,IAGzBxH,OAAOwH,SAAU,EAIzB,QAAShE,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UA7B3B3D,OAAOwH,SAAU,CACjB,IAAIiM,aAAczR,uBAAuBkE,WA+BzClG,QAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAEhBqQ,uBCxCZ7W,QAAQC,OAAO,OAAO+B,WAAW,8BAC5B,SAAU,yBAA0B,eACjC,SAAUc,OAAQgC,wBACd,YAEA,IAAIkS,UAAWlS,uBAAuBkQ,kBAClCiC,OAASnS,uBAAuBkE,WAEpClG,QAAOoU,aACHC,SAAUH,SAAW,gBACrBxP,GAAIyP,WCVpBjX,QAAQC,OAAO,OAAO+B,WAAW,yBAC5B,SAAU,yBAA0B,eACjC,SAAUc,OAAQgC,wBACd,YAEA,IAAIkS,UAAWlS,uBAAuBkQ,kBAClCiC,OAASnS,uBAAuBkE,WAEpClG,QAAOoU,aACHC,SAAUH,SACVxP,GAAIyP,WCVpBjX,QAAQC,OAAO,OAAO+B,WAAW,yBAC5B,SAAU,yBAA0B,eACjC,SAAUc,OAAQgC,wBACd,YAEA,IAAIkS,UAAWlS,uBAAuBkQ,kBAClCiC,OAASnS,uBAAuBkE,WAEpClG,QAAOoU,aACHC,SAAUH,SACVxP,GAAIyP,WCVpBjX,QAAQC,OAAO,OAAO+B,WAAW,uBAC5B,SAAU,yBAA0B,eACjC,SAAUc,OAAQgC,wBACd,YAEA,IAAIkS,UAAWlS,uBAAuBkQ,kBAClCiC,OAASnS,uBAAuBkE,WAEpClG,QAAOoU,aACHC,SAAUH,SACVxP,GAAIyP,WCVpBjX,QAAQC,OAAO,OAAO+B,WAAW,0BAC5B,SAAU,yBAA0B,eACjC,SAAUc,OAAQgC,wBACd,YAEA,IAAIkS,UAAWlS,uBAAuBkQ,kBAClCiC,OAASnS,uBAAuBkE,WAEpClG,QAAOoU,aACHC,SAAUH,SACVxP,GAAIyP,WCVpBjX,QAAQC,OAAO,OAAO+B,WAAW,+BAC5B,SAAU,yBAA0B,eACjC,SAAUc,OAAQgC,wBACd,YAEA,IAAIkS,UAAWlS,uBAAuBkQ,kBAClCiC,OAASnS,uBAAuBkE,WAEpClG,QAAOoU,aACHC,SAAUH,SACVxP,GAAIyP,WCVpBjX,QAAQC,OAAO,OAAOgE,UAAU,gBAC3B,IAAK,UACF,SAAUqD,EAAGuI,SACT,YAaAA,SAAQA,OAER,IAAIuH,WACAC,aAAc,MAGdC,iBACAC,iBAAiB,EACjBC,kBAAkB,GAGlBC,eACAC,KAAM,KACNC,MAAO,EACPC,MAAO,GAAG,GAAG,GAAG,KAGhBC,WAAa,SAAUC,MACvBV,SAASC,aAAaS,MAItBC,iBAAmB,SAAUL,KAAMC,MAAOC,MAC1CH,cAAcC,KAAKA,KACnBD,cAAcE,MAAMA,MACpBF,cAAcG,KAAKA,MAGnBI,SAAW,SAAUF,MACrB,GAAIG,KAAMH,KAAKI,QACf,OAAQD,KAAM,GAAW,EAANA,KAGnBE,WAAa,SAAUL,MACvB,GAAIM,YAAY,CAOhB,OANGN,MAAKO,aAAeZ,cAAcE,OAASG,KAAKQ,gBAAkBb,cAAcC,OAC/EU,UAA2D,KAA/CX,cAAcG,KAAKW,QAAQT,KAAKU,YAE7CJ,WAAad,gBAAgBC,kBAC5Ba,UAAYJ,SAASF,QAEjBM,UAAW,KAInBK,aAAe,SAAUC,MAAOC,MAGhC,GAAwB,IAArBA,KAAKC,YAAmB,CACvB,GAAIC,GAAI,GAAIvH,KACZuH,GAAEA,EACFd,iBAAiBN,cAAcC,KAAMD,cAAcE,MAAOF,cAAcG,QAU5EkB,YAAc,SAAUpB,KAAMC,MAAOgB,MACrCA,KAAKA,KAKT,QACIhW,SAAU,IACVoW,KAAM,SAAUjW,OAAQkW,KACpBA,IAAIC,YACAC,YAAY,EACZC,QAAS7B,gBAAgBE,iBAAmB,KAAO,GACnD4B,kBAAmBN,YACnBO,WAAYZ,aACZa,cAAenB,WACfoB,SAAU1B,aAEd/U,OAAO0W,IAAI,UAAW,WAClBR,IAAIC,WAAW,kBC/FvCjZ,QAAQC,OAAO,OAAOgE,UAAU,mBACxB,WACI,YAEA,QACItB,SAAU,IACVZ,YAAa,8CACb0X,OAIIC,cAAgB,iBAChBC,aAAe,gBACfC,QAAU,YAGd5X,WAAY,SAASc,QAEjBA,OAAO4W,eACHG,KAAM,KACNC,SAAU,KACVC,SAAW,KACXC,UAAY,MAGhBlX,OAAOmX,qBACHC,iBAAkBpX,OAAOoX,iBACzBC,qBAAsBrX,OAAOqX,qBAC7BC,iBAAkBtX,OAAOsX,iBACzBC,kBAAmBvX,OAAOuX,mBAG9BvX,OAAOwX,OAAO,2CAA4C,SAASC,OAAQC,QAEnED,SAGIA,SAAWC,SACH1X,OAAO4W,cAAcG,KAAO/W,OAAOmX,oBAAoBE,qBAAqBM,MAAM,KAAK,GACvF3X,OAAO4W,cAAcI,SAAWhX,OAAOmX,oBAAoBC,iBAC3DpX,OAAO4W,cAAcK,SAAWjX,OAAOmX,oBAAoBG,iBAC3DtX,OAAO4W,cAAcM,UAAYlX,OAAOmX,oBAAoBC,iBAAiBO,MAAM,KAAK,IAE5F3X,OAAO4X,MAAM,oBAE1B,OC7CvB1a,QAAQC,OAAO,OAAOgE,UAAU,qBAExB,WACI,YACJ,SAAS8U,MAAKU,MAAOkB,SACjBA,QAAQC,IAAI,mBAAoB,wCAA0CnB,MAAMzM,SAAW,2CAG/F,OACIrK,SAAU,KACV8W,OACIzM,SAAU,aAEd+L,KAAMA,SCblB/Y,QAAQC,OAAO,OAAOgE,UAAU,uBAAwB,aAAa,yBACjE,SAASqF,QAAQ0K,wBACb,YAEA,QACIrR,SAAU,IACVZ,YAAa,iDACb0X,OAIIoB,kBAAmB,sBAIvB7Y,WAAY,SAASc,QAEjB,GAAIgY,aAAc9G,uBAAuBQ,oBACzC1R,QAAOiY,eAAiBD,YAAYE,yBAAyBC,qBAAqBC,+BAElFpY,OAAO+X,qBAEP/X,OAAOmX,qBACHC,iBAAkBpX,OAAOoX,iBACzBC,qBAAsBrX,OAAOqX,qBAC7BC,iBAAkBtX,OAAOsX,iBACzBC,kBAAmBvX,OAAOuX,mBAGlCvX,OAAOwX,OAAO,2CAA4C,SAASC,OAAQC,QAEvE,GAAID,QAEIA,SAAWC,OAAQ,CAEnB,GAAIW,gBAAgB,CACpBC,GAAEC,KAAKvY,OAAO+X,kBAAmB,SAASS,EAAGC,KACzC,MAAIA,KAAI1B,OAASU,QACbY,eAAgB,GACT,GAFX,SAOJA,gBACGrY,OAAO+X,kBAAkBW,OAAS1Y,OAAOiY,eAC5CjY,OAAO+X,kBAAkBY,MACrB5B,KAAM/W,OAAOmX,oBAAoBE,qBAAqBM,MAAM,KAAK,GACjEX,SAAUhX,OAAOmX,oBAAoBC,iBACrCH,SAAUjX,OAAOmX,oBAAoBG,iBACrCJ,UAAWlX,OAAOmX,oBAAoBC,iBAAiBO,MAAM,KAAK,KAIlE3X,OAAOmX,oBAAoBI,kBAAoB/Q,QAAQ,eAAiBxG,OAAOiY,eAAiBzR,QAAQ,2HAOrH,GAGHxG,OAAO4Y,OAAS,SAAgBC,YAC5BP,EAAEC,KAAKvY,OAAO+X,kBAAmB,SAASS,GACtC,MAAIxY,QAAO+X,kBAAkBS,GAAGzB,OAAS8B,WAAW9B,MAChD/W,OAAO+X,kBAAkBe,OAAON,EAAG,GACnCxY,OAAOmX,oBAAoBE,qBAAuB,GAClDrX,OAAOmX,oBAAoBC,iBAAmB,GAC9CpX,OAAOmX,oBAAoBE,qBAAuB,GAClDrX,OAAOmX,oBAAoBE,qBAAuB,GAClDrX,OAAOmX,oBAAoBG,iBAAmB,IACvC,GAPX,eClEpBpa,QAAQC,OAAO,OAAOgE,UAAU,mBAC3B,iBACG,SAAU4X,gBACN,YAEA,SAAS9C,MAAKjW,OAAQ6X,SAClB,QAASmB,gBAAeC,iBAAkBC,aAAcC,aAEpD,GAAKJ,eAAeK,iBAApB,CAOA,IAAK,GAHDC,gBAAiBC,KAAKJ,cACtBK,UAAY,GAAIC,OAAMH,eAAeX,QAEhCF,EAAI,EAAGA,EAAIa,eAAeX,OAAQF,IACvCe,UAAUf,GAAKa,eAAeI,WAAWjB,EAE7C,IAAIkB,cAAe,GAAIC,YAAWJ,WAG9BK,eAAiB,GAAIC,OAAMH,eAC3BI,KAAMX,aAGVJ,gBAAegB,SAASC,SAAUJ,eAAgBX,mBAItD,QAASgB,YACLjB,eAAehZ,OAAOka,SAAUla,OAAOkZ,aAAclZ,OAAOmZ,aAGhEtB,QAAQsC,GAAG,QAASF,UACpBja,OAAO0W,IAAI,WAAY,WACnBmB,QAAQuC,IAAI,WAIpB,OACIva,SAAU,IACV8W,OACIuC,aAAc,mBACdC,YAAa,IACbe,SAAU,KAEdjE,KAAMA,SC9CtB/Y,QAAQC,OAAO,OAAOgE,UAAU,sBAC3B,iBACG,SAAU4X,gBACN,YAEA,SAAS9C,MAAKjW,OAAQ6X,SAClB,QAASwC,iBAAgBpB,iBAAkBqB,aAEvC,GAAKvB,eAAeK,iBAApB,CAIA,GAAIQ,gBAAiB,GAAIC,OAAMS,cAC3BR,KAAM,4BAGVf,gBAAegB,SAASC,SAAUJ,eAAgBX,mBAGtD,QAASgB,YACLja,OAAOua,WACF9Y,KAAK,SAAUC,MACRA,MACA2Y,gBAAgBra,OAAOka,SAAUxY,QAKjDmW,QAAQsC,GAAG,QAASF,UACpBja,OAAO0W,IAAI,WAAY,WACnBmB,QAAQuC,IAAI,WAIpB;AACIva,SAAU,IACV8W,OACI4D,SAAU,sBACVL,SAAU,KAEdjE,KAAMA,SCxCtB/Y,QAAQC,OAAO,OAAOgE,UAAU,gBAC3B,aAAc,qBAAsB,yBACjC,SAAUqF,QAASgU,mBAAoBtJ,wBACnC,YAEA,QACIrR,SAAU,IACVZ,YAAa,0CACb0X,OAII8D,UAAW,aACXC,SAAU,YACVtD,iBAAkB,oBAClBC,qBAAsB,wBACtBC,iBAAkB,oBAClBC,kBAAmB,qBACnBV,aAAa,gBACbC,QAAS,YAGb5X,WAAY,SAASc,QAsIjB,QAAS2a,mBACD3a,OAAOya,YAAcG,MAAM5a,OAAOya,YAAcza,OAAOya,WAAaI,wBAAwB1C,qBAAqB2C,cACjH9a,OAAO+a,gBAAgBN,UAAYza,OAAOya,UAG1Cza,OAAO+a,gBAAgBN,UAAYI,wBAAwB1C,qBAAqB2C,cAKxF,QAASE,0BAQL,GAPIhb,OAAO0a,SACP1a,OAAO+a,gBAAgBE,wBAA0Bjb,OAAO0a,SAGxD1a,OAAO+a,gBAAgBE,wBAA0BJ,wBAAwB1C,qBAAqB+C,wBAG9Flb,OAAO+a,gBAAgBE,wBAAyB,CAChD,GAAIE,YAAanb,OAAO+a,gBAAgBE,wBAAwBtD,MAAM,IAEtEnT,GAAE4W,QAAQD,WAAY,SAAUE,KAC5Brb,OAAO+a,gBAAgBO,UAAUC,MAAM5C,MAE/B6C,cAAeH,IAAII,OACnBxE,SAAU,OAItBuD,mBAAmBkB,6BAA6B1b,OAAO+a,gBAAgBO,WAClE7Z,KAAK,SAAUC,MACZ1B,OAAO+a,gBAAgBO,UAAY5Z,OAF3C8Y,SAIW,WACHxa,OAAOuX,kBAAoB/Q,QAAQ,kDAL3CgU,WAOa,WACLxa,OAAOwH,SAAU,QAIzBxH,QAAOuX,kBAAoB/Q,QAAQ,uCAO3C,QAASmV,YACL3b,OAAOwH,SAAU,EACjBmT,kBACAK,yBAtLJ,GAAIhD,aAAc9G,uBAAuBQ,qBACrCmJ,wBAA0B7C,YAAYE,wBAE1ClY,QAAO+a,iBACHN,UAAW,EACXa,WAAaC,UACbN,wBAAyB,IAG7Bjb,OAAO4b,uBAAyB,SAAgCC,cAC5D,GAAIC,UAAU,CAad,OAXAtX,GAAE4W,QAAQpb,OAAO+a,gBAAgBO,UAAW,SAASxB,MACjD,MAAIA,MAAK7C,SAASxF,gBAAkBoK,aAAa/B,KAAKrI,eAClDqK,SAAU,GACH,GAFX,SAMCA,UACD9b,OAAOuX,kBAAoB/Q,QAAQ,uCAAyC,IAAMxG,OAAO+a,gBAAgBE,wBAA0B,IAAMzU,QAAQ,2BAG9IsV,SAIX9b,OAAO+b,wBAA0B,SAAiCF,cAC9D,GAAIC,UAAU,CAOd,OALID,cAAaG,KAA2C,KAAnChc,OAAO+a,gBAAgBN,YAC5Cza,OAAOuX,kBAAoB/Q,QAAQ,sFAAwF,KAAOxG,OAAO+a,gBAAgBN,UAAY,OACrKqB,SAAU,GAGPA,SAGX9b,OAAOic,6BAA+B,SAAsCJ,cACxE,GAAIC,UAAU,EACVI,UAAYL,aAAatb,KAAKkR,cAAckG,MAAM,IAStD,OARAuE,WAAY,IAAMA,UAAU,GAC5B1X,EAAE4W,QAAQpb,OAAO+a,gBAAgBO,UAAW,SAASxB,MACjD,MAAIoC,aAAcpC,KAAK0B,cAAc/J,eACjCqK,SAAU,GACH,GAFX,SAMGA,SAMX9b,OAAOmc,0BAA4B,SAAmCC,YAMlE,GALApc,OAAOuX,kBAAoB,GAC3BvX,OAAOoX,iBAAmB,GAC1BpX,OAAOqX,qBAAuB,GAC9BrX,OAAOsX,iBAAmB,IAErB8E,aAAeA,WAAWC,OAE3B,YADArc,OAAOuX,kBAAoB/Q,QAAQ,iCAIvC,IAAI8V,OAAQF,WAAWC,OAAOC,KAC9B,IAAKA,SAASA,MAAM5D,QAAU,GAA9B,CAKA,GAAImD,cAAeS,MAAM,GACrBC,mBAAqBH,WAAWC,MAEpC,KAAKrc,OAAOic,6BAA6BJ,cASrC,MARIU,sBACAA,mBAAmBC,MAAQ,MAI/Bxc,OAAOuX,kBAAoB/Q,QAAQ,uCAAyC,IAAMxG,OAAO+a,gBAAgBE,wBAA0B,IAAMzU,QAAQ,8BAEjJxG,QAAOyc,QAIX,KAAKzc,OAAO4b,uBAAuBC,cAK/B,MAJIU,sBACAA,mBAAmBC,MAAQ,UAE/Bxc,QAAOyc,QAIX,KAAKzc,OAAO+b,wBAAwBF,cAShC,MARIU,sBACAA,mBAAmBC,MAAQ,MAI/Bxc,OAAOuX,kBAAoB/Q,QAAQ,sFAAwF,KAAOxG,OAAO+a,gBAAgBN,UAAY,WAErKza,QAAOyc,QAMXzc,QAAOoX,iBAAmByE,aAAatb,KACvCP,OAAOsX,iBAAmBuE,aAAa/B,KACvC9Z,OAAOqX,qBAAuB,EAG9B,IAAIqF,QAAS,GAAIC,WACjBD,QAAOE,OAAS,SAAUC,GACb,MAALA,IACA7c,OAAOqX,qBAAuBwF,EAAER,OAAOS,OACvC9c,OAAOyc,WAIfC,OAAOK,cAAclB,cAErB7b,OAAOyc,WA4DXd,gBCjNpBze,QAAQC,OAAO,OAAOgE,UAAU,iBAExB,WACI,YAEA,QACItB,SAAU,IACVZ,YAAa,2CACb0X,OAII8D,UAAW,aACXrD,iBAAkB,oBAClBE,iBAAkB,oBAClBD,qBAAsB,yBAG1BnY,WAAY,SAASc,QAEjBA,OAAOgd,kBAGH5F,iBAAkBpX,OAAOoX,iBACzBC,qBAAsBrX,OAAOqX,qBAC7BC,iBAAkBtX,OAAOsX,iBACzBC,kBAAoB,IAGxBvX,OAAOid,kBAAoB,WACvBjd,OAAOgd,iBAAiB5F,iBAAmB,GAC3CpX,OAAOgd,iBAAiB3F,qBAAuB,GAC/CrX,OAAOgd,iBAAiB1F,iBAAmB,GAC3CtX,OAAOgd,iBAAiBzF,kBAAoB,SCjCpEra,QAAQC,OAAO,OAAOgE,UAAU,qBAAsB,WAClD,YACA,QACIwV,OACIuG,SAAU,sBAEdjH,KAAM,SAASU,MAAOkB,SAClBA,QAAQsC,GAAG,SAAU,SAASgD,OAC1BxG,MAAMuG,UAAUd,WAAYe,UAGhCxG,MAAMD,IAAI,WAAY,WAClBmB,QAAQuC,IAAI,iBCZ5Bld,QAAQC,OAAO,OAAOiV,OAAO,+BAAgC,WACzD,YACA,OAAO,UAAUgL,UAAWC,OAAQC,OAChC,GAAIF,UAAJ,CAMGC,SAAWC,QACVA,MAAQD,OAGZ,IAAIre,KAAM,UAAYoe,UAAY,YAMlC,OAJGC,UACCre,KAAO,WAAaqe,OAAS,UAAYC,OAGtCte,SCnBf9B,QAAQC,OAAO,OAAOogB,QAAQ,0BACzB,oBAAqB,SAAUC,mBAC5B,YAEA,SAASC,kBAAkBC,KACvB,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,+BAAiCH,KAAKE,MAGjE,OACIH,iBAAkBA,qBCV9BvgB,QAAQC,OAAO,OAAOogB,QAAQ,uBACzB,aAAc,YAAa,OAAQ,yBAChC,SAASxd,WAAY+d,UAAWvX,KAAMvE,wBAClC,YAIA,SAAS+b,uBACLxX,KAAKyX,IAAI,8DAAgEC,SAASC,OAAO,QAGzFne,WAAWkI,WAAW,wBAG1B,QAASkW,0BAGL,GAFA5X,KAAKyX,IAAI,uCAAyCC,SAASC,OAAO,QAE7DhhB,QAAQkhB,UAAUC,qBAqBnB9X,KAAKyX,IAAI,uEArBgC,CACzCzX,KAAKyX,IAAI,2DAET,IAAIM,iBAAkBtc,uBAAuB6J,wBACd,iBAApByS,kBACHA,gBAAkB,IAAM,GACpBA,gBAAkB,GAAuB,IAAlBA,kBACvBA,gBAAoC,IAAlBA,gBAClBD,oBAAsBP,UAAUC,oBAAqBO,gBAAiB,GAAG,IAKjFphB,QAAQkhB,UAAUC,qBAClB9X,KAAKyX,IAAI,0FAA4FM,gBAAkB,kBAGvH/X,KAAKyX,IAAI,yFAA2FM,gBAAkB,MAO9H/X,KAAKyX,IAAI,mCAGb,QAASxS,yBACLjF,KAAKyX,IAAI,sCAAwCC,SAASC,OAAO,QAE7DhhB,QAAQkhB,UAAUC,uBAClBP,UAAUpa,OAAO2a,qBACjBA,oBAAsBE,OACtBhY,KAAKyX,IAAI,0CAGbzX,KAAKyX,IAAI,kCAhDb,GAAIK,oBAwDJ,OALAte,YAAW2W,IAAI,WAAY,WACvBlL,2BAKAuS,oBAAqBA,oBACrBI,uBAAwBA,uBACxB3S,sBAAuBA,0BChEvCtO,QAAQC,OAAO,OAAOgE,UAAU,kBAC5B,WACI,YACA,QACItB,SAAU,IACVZ,YAAa,uDACb0X,OAAO,EACP6H,YAAY,EACZvI,KAAM,WAEF,QAAS5O,WAGTA,cCbhBnK,QAAQC,OAAO,OAAOgE,UAAU,YAExB,iBACA,yBACA,YACA,oBACA,aACA,oBACA,iBACA,SACI2F,eACA9E,uBACAyc,OACAC,kBACAlY,QACAT,kBACAgT,gBAEA,YACA,QACIlZ,SAAU,IACVZ,YAAa,2CACb0X,OAAO,EACP6H,YAAY,EACZvI,KAAM,SAAUU,OAMZ,QAASgI,aACL5Y,kBAAkBK,YAAYC,SAAU,cAG5C,QAASuY,qBAEL,GAAIC,eAAgBJ,OAAOK,MACvB7f,YAAa,4CACbC,WAAY,yBACZ6f,YAAa,aACb3f,YAGJyf,eAAc/B,OAAOrb,KAAK,cAI9B,QAASud,qBACLrI,MAAMsI,kBAAmB,CAEzB,IAAI1b,cACAO,MAAO0C,QAAQ,kBACfwM,WAAY,gBACZL,aAAcuM,iBACdrM,iBAAkBsM,sBAClBjM,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBkV,MAAMsI,kBAAmB,IAIjC,QAASI,wBACL1I,MAAMsI,kBAAmB,CAEzB,IAAI1b,cACAO,MAAO0C,QAAQ,qBACfwM,WAAY,mBACZL,aAAc2M,oBACdzM,iBAAkB0M,yBAClBrM,kBAAmB6F,eAAeqG,oBAClChM,SAAUpR,uBAAuBK,eAAiB,GAClDgR,UAAWrR,uBAAuBwd,gBAAkB,IAGpDX,cAAgBJ,OAAOK,MACvB7f,YAAa,uCACbC,WAAY,2BACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBkV,MAAMsI,kBAAmB,IAIjC,QAASQ,kCACL9I,MAAMsI,kBAAmB,CAEzB,IAAI1b,cACAO,MAAO0C,QAAQ,gCACfkZ,6BAA8BL,qBAC9BM,qBAAsBhJ,MAAMiJ,SAASD,sBAGrCd,cAAgBJ,OAAOK,MACvB7f,YAAa,yDACbC,WAAY,sCACZ6f,YAAa,WACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,SAAUC,MAChCiV,MAAMsI,kBAAmB,EACZ,OAATvd,MACA2d,yBAKZ,QAASH,oBACL,MAAOR,mBAAkBmB,iCAG7B,QAASV,yBACL,MAAOT,mBAAkBmB,iCACpBpe,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMC,SAAU,gBAAiBE,UAAW,SAI3E,QAASoI,uBACL,MAAOZ,mBAAkBa,2BAG7B,QAASA,4BACL,MAAOb,mBAAkBa,2BACpB9d,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMC,SAAU,0BAA2BE,UAAW,SA3HrFP,MAAMiJ,UACFD,qBAAsB7Y,eAAegZ,0BA8HzC,IAAIC,8BAA+BpJ,MAAMD,IAAI,+BAAgC,SAAUyG,MAAOzb,MAC1FiV,MAAMiJ,SAASD,qBAAuBje,MAG1CiV,OAAMD,IAAI,WAAY,WAClBqJ,iCAGJpJ,MAAMgI,UAAYA,UAClBhI,MAAMqI,kBAAoBA,kBAC1BrI,MAAMiI,kBAAoBA,kBAC1BjI,MAAM8I,+BAAiCA,oCCpK3DviB,QAAQC,OAAO,OAAOgE,UAAU,YAAa,aAAc,gBAAiB,oBAAqB,iBAAkB,iCAAkC,sBAAuB,aAAc,OAAQ,0BAC9L,SAAUqF,QAASR,cAAeD,kBAAmBe,eAAgBD,+BAAgC4D,oBAAqB1K,WAAYwG,KAAMjF,yBACxI,YACA,QACIzB,SAAU,IACVZ,YAAa,2CACb0X,OAAO,EACP6H,YAAY,EACZvI,KAAM,SAAUU,OAEZ,QAASnV,mBACLF,wBAAwBE,iBAAgB,GACnCC,KAAK,SAASC,MACXiV,MAAMqJ,SAASre,aAAeD,OAI1C,QAAS2F,UACLsP,MAAMsJ,UAAW,CAEjB,IAAIC,WAAYrZ,+BAA+BsZ,eAC3CC,cAAgBvZ,+BAA+BwZ,kBAEnD1J,OAAMqJ,UACFM,kBAAmBJ,UAAUhM,SAC7BqM,gBAAiBH,cAAc7b,GAC/Bic,sBAAuBJ,cAAclM,SACrCuM,qBAAsB3Z,eAAegZ,0BACrCY,yBAA0B5Z,eAAe6Z,8BACzCC,mBAAoB/Z,+BAA+Bga,8BACnDC,GAAIC,yBACA,MAA2C,gBAA5Bnf,MAAKgf,oBAAqChf,KAAKgf,mBAAmBlI,OAAS,GAE9F/W,aAAc,IAGlBH,kBAEAzB,WAAWkI,WAAW,wBAG1B,QAAS+Y,WACLza,KAAK8C,KAAK,yEAEVrD,cAAcG,SAAS1E,KAAK,WACxBqF,eAAeoB,yBAAwB,GACvCnC,kBAAkBK,YAAYC,SAAU,cAIhD,QAAS4a,mBACLna,eAAeoa,kBAAkBpa,eAAeqa,oBAGpD,QAASC,kBAAiBC,SACtBxa,+BAA+Bua,iBAAiBC,QAAQ3c,GAAI2c,QAAQC,UAAWD,QAAQE,SAAUF,QAAQG,WACzG/W,oBAAoBsT,sBACpB1W,SAEAtB,kBAAkBK,YAAYC,SAAU,cAG5CsQ,MAAMoH,oBAAsB,WACxBtT,oBAAoBsT,sBAYxB,IAAIgC,8BAA+BpJ,MAAMD,IAAI,+BAAgC,SAAUyG,MAAOzb,MAC1FiV,MAAMqJ,SAASL,qBAAuBje,KACtCiV,MAAMqJ,SAASyB,kBAAoB5a,+BAA+BsZ,eAAejM,WAGjFwN,uBAAyB/K,MAAMD,IAAI,mCAAoC,SAAUyG,MAAOzb,MACxFiV,MAAMqJ,SAAS2B,yBAA2BjgB,OAG1CkgB,mBAAqB7hB,WAAW2W,IAAI,uBAAwB,SAASyG,MAAO0E,WAC5E,GAAIC,aACAxB,kBAAmB3J,MAAMqJ,SAASM,kBAClCC,gBAAiB5J,MAAMqJ,SAASO,gBAChCC,sBAAuB7J,MAAMqJ,SAASQ,sBACtCI,mBAAoBjK,MAAMqJ,SAASY,mBACnCG,sBAAuBpK,MAAMqJ,SAASe,sBACtCc,UAAWA,UAEf9hB,YAAWkI,WAAW,qBAAsB6Z,cAG5CC,yBAA2BhiB,WAAW2W,IAAI,2BAA4B,SAASyG,MAAOC,WACtF,GAAIiE,SAAU7c,EAAEC,KAAKkS,MAAMqJ,SAASY,oBAAsBlc,GAAI0Y,WAC3DiE,UACCD,iBAAiBC,UAGzB1K,OAAMD,IAAI,WAAY,WAClBqJ,+BACA2B,yBACAE,qBACAG,6BAGJ1a,SAEAsP,MAAMqK,QAAUA,QAChBrK,MAAMyK,iBAAmBA,iBACzBzK,MAAMsK,gBAAkBA,qBCjHxC/jB,QAAQC,OAAO,OAAOgE,UAAU,eAAgB,aAAa,eAAgB,YAAa,yBAA0B,yBAA0B,iBAAkB,WAAY,yBAA0B,sBAAuB,oBAAqB,gBAC9O,SAAUpB,WAAYiiB,aAAcC,UAAWC,uBAAwBlgB,uBAAwB8E,eAAgBqb,SAAUjR,uBAAwBzG,oBAAqB1E,kBAAmBC,eACrL,YAEA,QACInG,SAAU,IACVZ,YAAa,iDACb0X,OAAO,EACP6H,YAAY,EACZvI,KAAM,SAAUU,OAmCZ,QAAS8G,oBACLyE,uBACKzE,iBAAiBzb,uBAAuBkE,aACxCzE,KAAK,SAAU2gB,eACZ,GAAIpK,aAAc9G,uBAAuBQ,oBAEzCiF,OAAMyL,cAAcC,MAAMC,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,UAAUC,MAE1F7L,MAAMyL,cAAcK,SAASH,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,aAAaC,MAChG7L,MAAMyL,cAAcK,SAASC,SAAW1K,YAAY2K,oBAAoBD,SAExE/L,MAAMyL,cAAcQ,MAAMN,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,UAAUC,MAC1F7L,MAAMyL,cAAcQ,MAAMF,SAAW1K,YAAY6K,sBAAsBH,SAEvE/L,MAAMyL,cAAcU,cAAcR,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,kBAAkBC,MAC1G7L,MAAMyL,cAAcU,cAAcJ,SAAW1K,YAAY+K,iBAAiBL,SAE1E/L,MAAMyL,cAAcY,aAAaV,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,iBAAiBC,MACxG7L,MAAMyL,cAAcY,aAAaN,SAAW1K,YAAYiL,iBAAiBP,SAEzE/L,MAAMyL,cAAcc,QAAQZ,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,YAAYC,MAC9F7L,MAAMyL,cAAcc,QAAQR,SAAY1K,YAAYmL,qBAAqBT,UAAa1K,YAAYoL,kBAAkBV,UAAY1K,YAAYqL,aAAaX,SAEzJ/L,MAAMyL,cAAckB,QAAQhB,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,YAAYC,QAU1G,QAASe,iBACLxjB,WAAWkI,WAAW,uBAAwB,eAC9CwC,oBAAoB0T,yBArExBxH,MAAMyL,eACFoB,SAAWlB,WAAY,EAAGI,UAAU,GACpCL,OAASC,WAAY,EAAGI,UAAU,GAClCD,UAAYH,WAAY,EAAGI,UAAU,GACrCE,OAASN,WAAY,EAAGI,UAAU,GAClCI,eAAiBR,WAAY,EAAGI,UAAU,GAC1CM,cAAgBV,WAAY,EAAGI,UAAU,GACzCQ,SAAWZ,WAAY,EAAGI,UAAU,GACpCY,SAAWhB,WAAY,EAAGI,UAAU,IAGxC/L,MAAM8M,cAAgB3c,eAAeqa,mBAErCxK,MAAMmL,cAGNnL,MAAM+M,sBAAwB,SAAStd,YACrCL,kBAAkBK,WAAWA,YAC7BU,eAAeoa,kBAAiB,IAGlCvK,MAAMqK,QAAU,WACZhb,cAAcG,SAAS1E,KAAK,WACxBsE,kBAAkBK,YAAYC,SAAU,UACxCS,eAAeoB,yBAAwB,GACvCpB,eAAeoa,kBAAiB,MAIxCvK,MAAMyK,iBAAmB,SAAShE,WAC9Brd,WAAWkI,WAAW,2BAA4BmV,WAClDtW,eAAeoa,kBAAiB,IA6BpCzD,kBAEA,IAAIkG,8BAA+B5jB,WAAW2W,IAAI,qBAAsB,SAASyG,MAAOzb,MAC/EA,MAA8C,iBAArCA,KAAKmgB,WAAa,iBAC5BlL,MAAMmL,WAAapgB,OAO3B6hB,gBAGA,IAAIK,sBAAuBjN,MAAMD,IAAI,uBAAwB,WACzD+G,qBAGAoG,oBAAsB7B,aAAa8B,aAAc,SAA6B1d,YAC9E,GAAI2d,SAAU3d,WAAW4d,kBACrBC,YAAcF,SAAWA,QAAQxjB,QAAU,GAC3C8F,SAAW4b,UAAUiC,gBAAgBD,YACzCtN,OAAMpY,YAAe8H,UAAYA,SAAShI,gBAAkBgI,SAAShI,eAAeE,cAGpF4lB,sBAAwBxN,MAAMD,IAAI,wBAAyB,SAASyG,MAAOzb,MAC7EiV,MAAM8M,cAAgB/hB,MAGxBiV,OAAMD,IAAI,WAAY,WAClBkN,uBACAC,sBACAM,wBACAR,+BACAlZ,oBAAoBe,+BCxGxCtO,QAAQC,OAAO,OAAOgE,UAAU,aAAc,aAAc,eAAgB,YAAa,yBAA0B,WAAY,yBAA0B,sBAAuB,iCAAkC,oBAC9M,SAAUpB,WAAYiiB,aAAcC,UAAWC,uBAAwBC,SAAUjR,uBAAwBzG,oBAAqB5D,+BAAgCd,mBAC1J,YAEA,QACIlG,SAAU,IACVZ,YAAa,6CACb0X,OAAO,EACP6H,YAAY,EACZvI,KAAM,SAAUU,OAkBZ,QAAS8G,oBACL,IAAM1d,WAAWzB,YAAjB,CAIA,GAAIiiB,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,EACpEgc,kBACA2B,uBACKzE,iBAAiB8C,iBACjB9e,KAAK,SAAU2gB,eACZpK,YAAc9G,uBAAuBQ,qBAErCiF,MAAMyL,cAAcC,MAAMC,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,UAAUC,MAE1F7L,MAAMyL,cAAcK,SAASH,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,aAAaC,MAChG7L,MAAMyL,cAAcK,SAASC,SAAW1K,YAAY2K,oBAAoBD,SAExE/L,MAAMyL,cAAcQ,MAAMN,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,UAAUC,MAC1F7L,MAAMyL,cAAcQ,MAAMF,UAAW,EAErC/L,MAAMyL,cAAcU,cAAcR,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,kBAAkBC,MAC1G7L,MAAMyL,cAAcU,cAAcJ,SAAW1K,YAAY+K,iBAAiBL,SAE1E/L,MAAMyL,cAAcY,aAAaV,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,iBAAiBC,MACxG7L,MAAMyL,cAAcY,aAAaN,SAAW1K,YAAYiL,iBAAiBP,SAEzE/L,MAAMyL,cAAcc,QAAQZ,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,YAAYC,MAC9F7L,MAAMyL,cAAcc,QAAQR,SAAY1K,YAAYmL,qBAAqBT,UAAY1K,YAAYoL,kBAAkBV,UAAY1K,YAAYqL,aAAaX,SAExJ/L,MAAMyL,cAAckB,QAAQhB,WAAa9d,EAAEC,KAAK2d,eAAgBG,iBAAkB,YAAYC,SAO9G,QAAS4B,eACCrkB,WAAWzB,aAGjBmM,oBAAoB0T,yBAsCxB,QAASkG,qBACL1N,MAAM2N,aAAa5B,UAAW,EAC9B/L,MAAM2N,aAAaC,WAAW7B,UAAW,EAEzC/L,MAAMyL,cAAcoB,QAAQd,UAAW,EACvC/L,MAAMyL,cAAcC,MAAMK,UAAW,EACrC/L,MAAMyL,cAAckB,QAAQZ,UAAW,CAEvC,IAAI1K,aAAc9G,uBAAuBQ,oBACzCiF,OAAMyL,cAAcK,SAASC,SAAW1K,YAAY2K,oBAAoBD,SACxE/L,MAAMyL,cAAcQ,MAAMF,UAAW,EACrC/L,MAAMyL,cAAcU,cAAcJ,SAAW1K,YAAY+K,iBAAiBL,SAC1E/L,MAAMyL,cAAcY,aAAaN,SAAW1K,YAAYiL,iBAAiBP,SACzE/L,MAAMyL,cAAcc,QAAQR,SAAY1K,YAAYmL,qBAAqBT,UAAY1K,YAAYoL,kBAAkBV,UAAY1K,YAAYqL,aAI/I,QAASmB,cAELH,oBACAte,kBAAkBK,YAAYC,SAAU,cAG5C,QAASoe,mBACL,GACIC,gBADAnE,gBAAkB1Z,+BAA+BwZ,mBAAmB9b,GAEpEogB,MACApgB,GAAIgc,gBAGJmE,gBADA1M,YAAY4M,oBAAoBlC,SACf,sBACV1K,YAAY6M,mBAAmBnC,SACrB,kBACV1K,YAAY8M,gBAAgBpC,SAClB,uBACV1K,YAAY+M,eAAerC,SACjB,oBACV1K,YAAYgN,mBAAmBtC,SACrB,oBACV1K,YAAYiN,kBAAkBvC,SACpB,uBACV1K,YAAY6K,sBAAsBH,SACxB,2BACV1K,YAAYkN,wBAAwBxC,SAC1B,6BAEA,yBAGrB3c,kBAAkBK,YACdC,SAAUqe,eACVC,KAAMA,OAjJdhO,MAAM2N,cACF5B,UAAU,EACV6B,YAAc7B,UAAU,GAE5B,IAAI1K,aAAc9G,uBAAuBQ,oBACzCiF,OAAMyL,eACFoB,SAAWlB,WAAY,EAAGI,UAAU,GACpCL,OAASC,WAAY,EAAGI,UAAU,GAClCD,UAAYH,WAAY,EAAGI,SAAU1K,YAAY2K,oBAAoBD,UACrEE,OAASN,WAAY,EAAGI,UAAU,GAClCI,eAAiBR,WAAY,EAAGI,SAAU1K,YAAY+K,iBAAiBL,UACvEM,cAAgBV,WAAY,EAAGI,SAAU1K,YAAYiL,iBAAiBP,UACtEQ,SAAWZ,WAAY,EAAGI,SAAW1K,YAAYmL,qBAAqBT,UAAY1K,YAAYoL,kBAAkBV,UAAY1K,YAAYqL,cACxIC,SAAWhB,WAAY,EAAGI,UAAU,IAqCxCjF,mBASA2G,aAGA,IAAIR,sBAAuBjN,MAAMD,IAAI,uBAAwB,WACzD+G,qBAGAoG,oBAAsB7B,aAAa8B,aAAc,SAA6B1d,YAC9E,GAAI2d,SAAU3d,WAAW4d,kBACrBC,YAAcF,SAAWA,QAAQxjB,QAAU,GAC3C8F,SAAW4b,UAAUiC,gBAAgBD,YACzCtN,OAAMpY,YAAe8H,UAAYA,SAAShI,gBAAkBgI,SAAShI,eAAeE,YAE1D,UAAtBoY,MAAMpY,aACNiG,EAAE4W,QAAQzE,MAAMyL,cAAe,SAAU+C,eACrCA,cAAczC,UAAW,IAG7B/L,MAAM2N,aAAa5B,UAAW,EAC9B/L,MAAM2N,aAAaC,WAAW7B,UAAW,GAGrC/L,MAAM2N,aAAa5B,UACnB2B,qBAKZ1N,OAAMD,IAAI,WAAY,WAClBkN,uBACAC,sBACApZ,oBAAoBe,0BA2DxBmL,MAAM6N,WAAaA,WACnB7N,MAAM8N,gBAAkBA,qBCjKxCvnB,QAAQC,OAAO,OAAOogB,QAAQ,8BACzB,oBACG,SAASC,mBACL,YAEA,SAAS4H,sBAAqBlb,UAC1B,GAAIzJ,SACA4kB,SAAUnb,UAGVyT,YAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,6BAA6BD,IAAInd,QAG5D,OACI2kB,qBAAsBA,yBCftCloB,QAAQC,OAAO,OAAOogB,QAAQ,2BACzB,6BAA+B,yBAA0B,KAAM,QAAS,oBAAqB,YAC1F,SAAS+H,2BAA4BtjB,uBAAwBujB,GAAIC,MAAOC,kBAAmBnf,WACvF,YAIA,SAASof,mBAAkBnhB,IACvB,IAAKohB,kBACD,MAAO,EAGX,IAAIC,gBAAiBphB,EAAE4N,OAAOuT,kBAAmB,SAASE,WACtD,MAAOA,WAAUnhB,GAAGohB,gBAAkBvhB,GAAGuhB,eAE7C,OAAOF,gBAAe,GAAGG,MAG7B,QAASC,yBACL,GAAI9b,UAAWlI,uBAAuBK,cAClC4jB,UAAYjkB,uBAAuBwd,cAEvC,OAAKtV,WAAa+b,UAIXX,2BACFF,qBAAqBlb,UACrBzI,KAAK,SAAUC,MACZikB,kBAAoBjkB,OANjB6jB,GAAGW,OAWlB,QAAShf,iBAAgBif,cAWrB,QAASC,sBACL,OACIzkB,aAAc+jB,kBAAkBF,MAAMloB,cACtC8J,gBAAiBse,kBAAkBF,MAAMjoB,kBAbjD,IAAKooB,mBAAqBQ,aAAc,CACpC,GAAIE,SAAUL,wBACTvkB,KAAK,WACF,MAAO2kB,uBAEf,OAAOC,SAGX,MAAOd,IAAGW,KAAKE,sBAUnB,QAAS5kB,iBAAgB2kB,cACrB,MAAOjf,iBAAgBif,cAAc1kB,KAAK,SAAS0F,cAC/C,MAAOA,cAAaxF,eAI5B,QAAS2kB,sBAAqBH,cAC1B,IAAKR,mBAAqBQ,aAAc,CACpC,GAAIE,SAAUL,wBACTvkB,KAAK,WACF,MAAOikB,mBAAkBF,MAAMnoB,mBAEvC,OAAOgpB,SAGX,MAAOd,IAAGW,KAAKR,kBAAkBF,MAAMnoB,mBAG3C,QAAS2M,mBACL,MAAOyb,mBAAkBc,eAAe,YAG5C,QAASC,yBACL,GAAIC,SAAUngB,UAAUogB,SACpBC,QAAUrgB,UAAUsgB,OACpBC,WAAa,wBACbC,YAAcL,QAAQlW,QAAQoW,QAASE,WAC3C,OAAOC,aA3EX,GAAInB,mBAAoB,IA8ExB,QACIK,sBAAuBA,sBACvB9e,gBAAiBA,gBACjB1F,gBAAiBA,gBACjB8kB,qBAAsBA,qBACtBtc,gBAAiBA,gBACjBwc,sBAAuBA,0BCzFvCtpB,QAAQC,OAAO,OAAOogB,QAAQ,kBACzB,cAAe,eAAgB,yBAA0B,gBAAiB,KAAM,YAAa,aAC1F,SAAUwJ,YAAajhB,aAAc9D,uBAAwBD,cAAewjB,GAAIyB,UAAWxgB,SACvF,YAiBA,SAASygB,cAAa/c,SAAUgd,eAC5B,GAAIC,WAAYnlB,uBAAuBwd,cAIvC,IAAI2H,UAAW,CACX,GAAIC,UAAW7B,GAAG8B,OAElB,OADAD,UAAShoB,QAAQ+nB,WACVC,SAASf,QAGhB,GAAIiB,kBAAmB9d,QAEvB,IAAI0d,gBACAI,iBAAmBA,iBAAiBlV,OAAO,SAAUtK,SACjD,MAAOA,SAAQC,SAAWmf,iBAGzBI,iBAAiBC,QAClB,MAAOhC,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,sCAI3C,IAAIkhB,iBAAkBJ,iBAAiB7d,IAAI,SAAU3B,SACjD,MAAOA,SAAQ6V,YAAYE,IAAI,OAAQ3T,UAAU0T,QAClDnU,IAAI,SAAU4c,SACb,MAAOW,WAAUlpB,QAAQuoB,QAAS,OACnC7J,OAEH,OAAOwK,WACFW,iBAAiBD,iBACjBjmB,KAAK,SAAUmmB,YAEZ,MADA5lB,wBAAuBoI,aAAawd,WAAWC,cACxCD,WAAWC,cACnB,SAAUhU,UACT,MAAO0R,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,4BAA8B,KAAOqN,SAASpI,OAAS,QAK1G,QAASvN,OAAMgM,SAAUqD,SAAU1F,SAAUqf,cAAelf,QASxD,QAAS8f,cAAa9oB,KAElB,MADA+oB,oBAAmB7d,SAAUlL,KACtB8G,aAAakiB,UAAUhpB,IAAKkL,SAAUqD,SAAU1F,SAAUG,OAAQjG,cAAckmB,iBAV3F,IAAKlmB,cAAcgI,WAAY,CAC3B,GAAI/K,KAAMgD,uBAAuBwd,cACjC,OAAOsI,cAAa9oB,KAGxB,MAAOioB,cAAa/c,SAAUgd,eACzBzlB,KAAKqmB,cAQd,QAAS/W,oBAAmB7G,SAAU6H,MAAOmV,eASzC,QAASY,cAAa9oB,KAElB,MADA+oB,oBAAmB7d,SAAUlL,KACtB8G,aAAaoiB,uBAAuBlpB,IAAKkL,SAAU6H,MAAOhQ,cAAckmB,iBAVnF,IAAKlmB,cAAcgI,WAAY,CAC3B,GAAI/K,KAAMgD,uBAAuBwd,cACjC,OAAOsI,cAAa9oB,KAGxB,MAAOioB,cAAa/c,SAAUgd,eACzBzlB,KAAKqmB,cAQd,QAASrpB,YAAWyL,SAAUgd,cAAenV,OASzC,QAAS+V,cAAa9oB,KAElB,MADA+oB,oBAAmB7d,SAAUlL,KACtB8G,aAAaqiB,eAAenpB,IAAKkL,SAAU6H,OAVtD,IAAKhQ,cAAcgI,WAAY,CAC3B,GAAI/K,KAAMgD,uBAAuBwd,cACjC,OAAOsI,cAAa9oB,KAGxB,MAAOioB,cAAa/c,SAAUgd,eACzBzlB,KAAKqmB,cAQd,QAASzW,qBAAoBnH,SAAUoH,UAAWC,QAASC,WAAYJ,YAAa8V,eAShF,QAASkB,4BAA2BppB,KAGhC,MAFA+oB,oBAAmB7d,SAAUlL,KAC7BgD,uBAAuBqmB,cAAc7W,YAC9B1L,aAAawiB,oBAAoBtpB,IAAKkL,SAAUoH,UAAWC,QAASC,WAAYJ,YAAarP,cAAckmB,iBAXtH,IAAKlmB,cAAcgI,WAAY,CAC3B,GAAI/K,KAAMgD,uBAAuBwd,cACjC,OAAO4I,4BAA2BppB,KAGtC,MAAOioB,cAAa/c,SAAUgd,eACzBzlB,KAAK2mB,4BASd,QAASL,oBAAmB7d,SAAUlL,KAClCgD,uBAAuBmI,WACvBnI,uBAAuBoI,aAAapL,KACpCgD,uBAAuBsI,YAAYJ,UAGvC,QAASuD,oBAAmBF,UACxB,MAAOzH,cAAa2H,mBAAmBF,UAG3C,QAASiD,iCACL,MAAO1K,cAAa0K,gCAGxB,QAASvD,eAAc/C,SAAUqD,SAAU2Z,eASvC,QAASqB,cAAavpB,KAElB,MADA+oB,oBAAmB7d,SAAUlL,KACtB8G,aAAa0iB,kBAAkBte,SAAUqD,UAVpD,IAAKxL,cAAcgI,WAAY,CAC3B,GAAI/K,KAAMgD,uBAAuBwd,cACjC,OAAO+I,cAAavpB,KAGxB,MAAOioB,cAAa/c,SAAUgd,eACzBzlB,KAAK8mB,cAQd,QAASva,UAAS9D,SAAUqD,SAAU1F,SAAUqf,eAS5C,QAASuB,iBAAgBzpB,KAErB,MADA+oB,oBAAmB7d,SAAUlL,KACtB8G,aAAa4iB,aAAaxe,SAAUqD,SAAU1F,SAAU9F,cAAckmB,iBAVjF,IAAKlmB,cAAcgI,WAAY,CAC3B,GAAI/K,KAAMgD,uBAAuBwd,cACjC,OAAOiJ,iBAAgBzpB,KAG3B,MAAOioB,cAAa/c,SAAUgd,eACzBzlB,KAAKgnB,iBAQd,QAAS1Z,SAAQ7E,SAAUwE,SAAUD,YAAaJ,aAAcd,SAAU2Z,eAStE,QAASyB,gBAAe3pB,KAEpB,MADA+oB,oBAAmB7d,SAAUlL,KACtB8G,aAAa8iB,YAAY1e,SAAUwE,SAAUD,YAAaJ,aAAcd,UAVnF,IAAKxL,cAAcgI,WAAY,CAC3B,GAAI/K,KAAMgD,uBAAuBwd,cACjC,OAAOmJ,gBAAe3pB,KAG1B,MAAOioB,cAAa/c,SAAUgd,eACzBzlB,KAAKknB,gBAvKd,GAAInf,UAAWhF,EAAEzC,cAAc4H,UAAUF,IAAI,SAAU3B,SACnD,GAAI6V,aAAcoJ,YAAY8B,WAAW,aAQzC,OALAlL,aAAYmL,WAAWhhB,QAAQ9I,KAC/B2e,YAAYoL,mBACRC,OAAUjnB,cAAcknB,WAIxBlhB,OAAQD,QAAQC,OAChB4V,YAAaA,cAoKrB,QACIzf,MAAOA,MACPO,WAAYA,WACZsS,mBAAoBA,mBACpBM,oBAAsBA,oBACtB5D,mBAAoBA,mBACpB+C,8BAA+BA,8BAC/BvD,cAAeA,cACfe,SAAUA,SACVe,QAASA,YC7LzB7R,QAAQC,OAAO,OAAOogB,QAAQ,6BACzB,+BAAgC,SAAU2L,8BACvC,YAEA,SAAShgB,+BAA+BgB,UACpC,MAAOgf,8BAA6BhgB,+BAAgCmc,SAAUnb,WAAYif,YAG9F,OACIjgB,8BAA+BA,kCCT3ChM,QAAQC,OAAO,OAAOogB,QAAQ,gBACzB,oBAAqB,KAAM,SAAU,yBAA0B,iBAAkB,OAAQ,uBAAwB,aAAa,yBAA0B,iBAAiB,mBAAoB,iCAAkC,cAC5N,SAAUC,kBAAmB+H,GAAI9e,OAAQzE,uBAAwBonB,eAAgB7iB,KAAMrE,qBAAsBsE,QAAS0K,uBAAwBpK,eAAgBuiB,iBAAkBxiB,+BAAgCyiB,aAC5M,YAcA,SAASC,mBAAkBC,eACnBA,eAAiBA,cAAcC,kBAC3BD,cAAcC,gBAAgBC,oBAC9BxnB,qBAAqBynB,sBAAsBH,cAAcC,gBAAgBC,oBAEzEF,cAAcC,gBAAgBG,oBAC9B1nB,qBAAqB2nB,sBAAsBL,cAAcC,gBAAgBG;AAEzEJ,cAAcC,gBAAgBK,kBAC9B5nB,qBAAqB6nB,oBAAoBP,cAAcC,gBAAgBK,kBAEvEN,cAAcC,gBAAgBO,mBAC9B9nB,qBAAqB+nB,yBAAyBT,cAAcC,gBAAgBO,mBAE7ER,cAAcU,mBACbhoB,qBAAqBioB,qBAAqBX,cAAcU,oBA3BpE,GAAIE,kBACAC,aAAc,EACdC,eAAgB,EAChBC,gBAAiB,EACjBC,YAAa,EACbC,cAAe,GACfC,aAAc,GACdC,kBAAmB,GACnBC,sBAAuB,IACvBC,qBAAsB,KAuBtBvC,oBAAsB,SAAUrC,UAAW6E,UAAWC,WAAYC,SAAUC,YAAaC,aAAcC,gBAEvG,GAAIxN,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,oBAAoBuN,YACvCC,UAAWN,WACXO,QAASN,SACT3F,SAAUyF,UACVS,SAAUvpB,uBAAuBa,cACjC2oB,WAAYP,YACZQ,YAAaP,aACbQ,eAAiBP,iBAEhB1pB,KAAK,SAAU+nB,eACZ,GACImC,KADAC,UAAYpC,cAAcqC,YAG9B,OAAOzC,gBAAe0C,cAActC,eAAe/nB,KAAK,SAAUsqB,qBAC9D,GAAIA,uBAAwB,EACxB,MAAOxG,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,2EAGvC,IAAKgjB,eAGA,IAAKA,cAAc+B,SACpB,MAAOhG,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,gFAHnCmlB,KAAMnlB,QAAQ,8CAMdmlB,OACAplB,KAAKylB,KAAKL,KACVllB,OAAOwlB,eAAeN,MAG1BrC,YAAY4C,MAAMC,YAClBnqB,uBAAuBoqB,gBAAgB,YAEvCpqB,uBAAuBqqB,YAAY7C,cAAc+B,UACjDvpB,uBAAuBsqB,gBAAgBV,WACvC5pB,uBAAuBuqB,aAAaxB,YACpC/oB,uBAAuBwqB,gBAAgBhD,cAAclI,UAAY,IAAMkI,cAAcjI,UACrFvf,uBAAuByqB,UAAUjD,cAAc9kB,IAC/C1C,uBAAuB0qB,aAAalD,cAAchI,WAClDxf,uBAAuBqmB,cAAc4C,aAErC1B,kBAAkBC,eAElB3iB,+BAA+B8lB,sBAAsBnD,cAAcoD,oBAEnE9lB,eAAe+lB,2BAA2BrD,cAAcsD,2BACxDhmB,eAAeimB,uBAAuBvD,cAAcwD,sBAEpD,IAAIC,iBAAkB/b,uBAAuBgc,sBACzCC,iBAAmB9D,iBAAiB+D,8BACxC,OAAO7H,IAAG8H,KAAKJ,gBAAiBE,oBACjC,WACC,MAAO5H,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,+EAExC,SAAUqN,UACT0V,kBAAkB1V,SAASnS,KAE3B,IAAIiqB,KAAMnlB,QAAQ,cAElB,OAAQ+e,IAAGiC,OAAO,GAAIC,OAAMkE,SAKpC2B,aAAe,SAAS9D,eACxB,GACImC,KADAC,UAAYpC,cAAcqC,YAG9B,OAAOzC,gBAAe0C,cAActC,eAAe/nB,KAAK,SAAUsqB,qBAC9D,GAAIA,uBAAwB,EACxB,MAAOxG,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,2EAGvC,IAAKgjB,eAGA,IAAKA,cAAc+B,SACpB,MAAOhG,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,gFAHnCmlB,KAAMnlB,QAAQ,8CA2BlB,IArBImlB,MACAplB,KAAKylB,KAAKL,KACVllB,OAAOwlB,eAAeN,MAG1BrC,YAAY4C,MAAMC,YAClBnqB,uBAAuBoqB,gBAAgB,YAEvCpqB,uBAAuBqqB,YAAY7C,cAAc+B,UACjDvpB,uBAAuBsqB,gBAAgBV,WACvC5pB,uBAAuB+G,YAAYygB,cAAc+D,UACjDvrB,uBAAuBwqB,gBAAgBhD,cAAclI,UAAY,IAAMkI,cAAcjI,UACrFvf,uBAAuByqB,UAAUjD,cAAc9kB,IAC/C1C,uBAAuB0qB,aAAalD,cAAchI,WAClDxf,uBAAuBwrB,gBAAgBhE,cAAciE,cAErDlE,kBAAkBC,eAElB3iB,+BAA+B8lB,sBAAsBnD,cAAcoD,oBACnE/lB,+BAA+B6mB,uCAAuClE,cAAcmE,qCAEhFnE,cAAchI,UACd3a,+BAA+Bua,iBAAiBoI,cAAc9kB,GAAI8kB,cAAclI,UAAWkI,cAAcjI,SAAUiI,cAAchI,eAC9H,CACH,GAAIoM,yBAA0B/mB,+BAA+BgnB,2BAC7D,KAAID,wBAGA,MAAOrI,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,+CAFnCK,gCAA+Bua,iBAAiBwM,wBAAwBlpB,GAAIkpB,wBAAwBtM,UAAWsM,wBAAwBrM,SAAUqM,wBAAwBpM,WAMjL1a,eAAe+lB,2BAA2BrD,cAAcsD,2BACxDhmB,eAAeimB,uBAAuBvD,cAAcwD,sBAEpD,IAAIC,iBAAkB/b,uBAAuBgc,sBACzCC,iBAAmB9D,iBAAiB+D,8BACxC,OAAO7H,IAAG8H,KAAKJ,gBAAiBE,oBACjC,WACC,MAAO5H,IAAGiC,OAAO,GAAIC,OAAMjhB,QAAQ,+EAIvCsnB,aAAe,SAASja,SAAUiX,WAClCvB,kBAAkB1V,SAASnS,KAE3B,IAAIiqB,KAAMnlB,QAAQ,eACdunB,UAAY,IAiBhB,OAhBwB,OAApBla,SAASpI,SACTkgB,IAAMnlB,QAAQ,gCAEdunB,UAAY7wB,QAAQ8wB,SAASna,SAASnS,KAAKkN,WAAaiF,SAASnS,KAAKkN,UAAY,EAE9Emf,UAAY3D,gBAAgBG,gBAC5BoB,IAAMnlB,QAAQ,qBAAuBskB,UAAY,MAC1CiD,UAAY3D,gBAAgBI,YACnCmB,IAAMnlB,QAAQ,gCACPunB,UAAY3D,gBAAgBM,aACnCiB,IAAMnlB,QAAQ,qDACPunB,UAAY3D,gBAAgBQ,wBACnCe,IAAMnlB,QAAQ,gFAIf+e,GAAGiC,OAAO,GAAIC,OAAMkE,OAG3B3D,UAAY,SAAU/B,UAAW6E,UAAWmD,UAAWC,UAAWlmB,OAAQmjB,gBAE1E,GAAIxN,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,SAASuN,YAC5BmC,SAAUU,UACVE,SAAUD,UACV7I,SAAUyF,UACVS,SAAUvpB,uBAAuBa,cACjCurB,OAASpmB,OACT0jB,eAAiBP,iBAEhB1pB,KAAK,SAAU+nB,eACZ,MAAO8D,cAAa9D,cAAevD,YACpC,SAAUpS,UACT,MAAOia,cAAaja,SAAUiX,cAKtC3C,eAAiB,SAAUlC,UAAW6E,UAAW/Y,OACjD,GAAI4L,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,eAAeuN,cAAe,IAAMrZ,MAAOA,WAC7DtQ,KAAK,SAAU+nB,eACZ,MAAO8D,cAAa9D,cAAevD,YACpC,SAAUpS,UACT,MAAOia,cAAaja,SAAUiX,cAMtC5C,uBAAyB,SAAUjC,UAAW6E,UAAW/Y,MAAOoZ,gBAChE,GAAIxN,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,sBAAsBuN,YAErCiD,MAAOtc,MACPsT,SAAUyF,UACVS,SAAUvpB,uBAAuBa,cACjC6oB,eAAgBP,iBAEnB1pB,KAAK,SAAU+nB,eACZ,MAAO8D,cAAa9D,cAAevD,YACpC,SAAUpS,UACT,MAAOia,cAAaja,SAAUiX,cAItCrd,mBAAqB,SAASF,UAC9B,GAAIoQ,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,gBAAgBtQ,UAAU6d,eAAe3pB,KAC5D,SAASoS,UAEL,MADAya,SAAQtQ,IAAI,gBAAiBnK,UACtBA,UAEX,SAASjD,OAEL,KADA0d,SAAQ1d,MAAM,kBAAmBA,OAC3BA,SAKd4X,kBAAoB,SAAUte,SAAUqD,UAExC,GAAIoQ,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,kBAAkBuN,YACrCmC,SAAUhgB,SACV8X,SAAUnb,YAIdwe,aAAe,SAAUxe,SAAUqD,SAAU1F,SAAUsjB,gBAEvD,GAAIxN,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,YAAYuN,YAC/BmC,SAAUhgB,SACV4gB,SAAUtmB,SACVwd,SAAUnb,SACVqhB,SAAUvpB,uBAAuBa,cACjC6oB,eAAiBP,kBAIrBvC,YAAc,SAAU1e,SAAUwE,SAAUD,YAAaJ,aAAcd,UAEvE,GAAIoQ,aAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,oBAAsB3T,UAAUkhB,YACnDzc,UAAWD,SACXH,YAAaE,YACbH,aAAcD,aACdkf,SAAUhgB,YAIdiD,8BAAgC,WAChC,GAAImN,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,mBAAmBuN,eAAe3pB,KACrD,SAASoS,UAEL,MADAya,SAAQtQ,IAAI,qCAAsCnK,UAC3CA,UAEX,SAASjD,OAEL,KADA0d,SAAQ1d,MAAM,kCAAmCA,OAC3CA,QAKlB,QACIoX,UAAWA,UACXG,eAAgBA,eAChBG,oBAAqBA,oBACrBJ,uBAAwBA,uBACxBM,kBAAmBA,kBACnB/a,mBAAoBA,mBACpB+C,8BAA+BA,8BAC/BkY,aAAcA,aACdE,YAAaA,gBCvT7B1rB,QAAQC,OAAO,OAAOogB,QAAQ,sBACzB,oBAAqB,SAAUC,mBAC5B,YAEA,SAAS9B,8BAA6B6S,oBAClC,GAAIC,OAAQC,KAAKC,UAAUH,oBAEvB9tB,QACAkuB,eAAiBH,OAGjB7Q,YAAcH,kBAAkBI,IAAI,UAExC,OAAOD,aAAYE,IAAI,aAAa+Q,UAAU,+BAAgCnuB,QAGlF,OACIib,6BAA8BA,iCCjB1Cxe,QAAQC,OAAO,OAAOogB,QAAQ,kCACzB,UAAW,WAAY,yBACpB,SAAUsR,QAAStkB,SAAUvI,wBACzB,YAEA,SAASuH,uBACLslB,QAAQjW,OAAO,iBAGnB,QAASyH,oBACL,GAAID,eAAgByO,QAAQjR,IAAI,gBAChC,QACIrZ,GAAI6b,eAAiBA,cAAc7b,GACnCuqB,UAAW1O,eAAiBA,cAAc0O,UAC1CC,SAAU3O,eAAiBA,cAAc2O,SACzC7a,SAAUkM,eAAiBA,cAAclM,SACzC8a,UAAW5O,eAAiBA,cAAc4O,WAIlD,QAAS5N,kBAAiB7c,GAAIuqB,UAAWC,SAAUC,WAC/C,GAAI5O,gBACA7b,GAAIA,GACJ2P,SAAU4a,UAAY,IAAMC,SAC5BD,UAAWA,UACXC,SAAUA,SACVC,UAAWA,UAGfH,SAAQI,IAAI,gBAAiB7O,eAGjC,QAAS8O,yBACL,MAAOL,SAAQjR,IAAI,sBAGvB,QAAS+O,uBAAsBnQ,OAa3BqS,QAAQI,IAAI,qBAAsBzS,OAGtC,QAASqR,6BAEL,GAAIjN,oBAAqBiO,QAAQjR,IAAI,sBACjCuR,uBAAyB3qB,EAAEC,KAAKmc,oBAAsBY,WAAW,EAAM4N,gBAAgB,GAC3F,OAAOD,wBAGX,QAAStO,+BACL,GAAID,oBAAqBiO,QAAQjR,IAAI,sBACjCyR,yBAA2B7qB,EAAE4N,OAAOwO,oBAAsBY,WAAW,EAAM4N,gBAAgB,GAC/F,OAAOC,0BAIX,QAASC,4BACLT,QAAQjW,OAAO,sBAGnB,QAAS2W,qBACLV,QAAQjW,OAAO,eAGnB,QAASuH,gBACL,OACI5f,KAAMyB,uBAAuB8H,cAC7BoK,SAAUlS,uBAAuBkQ,kBACjC3N,GAAIvC,uBAAuBkE,YAC3B6L,MAAO/P,uBAAuBwtB,kBAC9BtlB,SAAUlI,uBAAuBK,cACjC4jB,UAAWjkB,uBAAuBwd,eAClC5c,SAAUZ,uBAAuBa,cACjC4sB,YAAaztB,uBAAuB0tB,qBACpCV,UAAWhtB,uBAAuB2tB,gBAI1C,QAASC,0CACL,MAAOf,SAAQjR,IAAI,uCAGvB,QAAS8P,wCAAuClR,OAC5CqS,QAAQI,IAAI,sCAAuCzS,OAGvD,OACI6D,iBAAkBA,iBAClBe,iBAAkBA,iBAClB7X,oBAAqBA,oBACrB2lB,sBAAuBA,sBACvBvC,sBAAuBA,sBACvB2C,yBAA0BA,yBAC1BnP,aAAcA,aACd0N,0BAA2BA,0BAC3BhN,4BAA6BA,4BAC7B0O,kBAAoBA,kBACpBK,uCAAwCA,uCACxClC,uCAAwCA,2CC5GxDxwB,QAAQC,OAAO,OAAOogB,QAAQ,kBACzB,aACG,SAASxd,YACL,YAWA,SAASgtB,wBAAwBvQ,OAC7BqT,cAAcC,oBAAsBtT,MAGxC,QAASrU,0BACL,MAAO0nB,eAAcC,oBAdzB,GAAID,gBACAlQ,qBAAsBoQ,eAAeC,QAAQ,0BAA2B,EACxEC,yBAAyB,EACzBC,yBAAyB,EACzBvO,0BAA0B,EAC1BmO,qBAAqB,EACrBK,eAAe,GAUfjoB,wBAA0B,SAAUsU,OACpCqT,cAAclQ,qBAAuBnD,MACrCuT,eAAeK,QAAQ,uBAAuB5T,OAC9Czc,WAAWkI,WAAW,+BAAgC4nB,cAAclQ,uBAEpEG,wBAA0B,WAC1B,MAAO+P,eAAclQ,sBAGrBkN,2BAA6B,SAAUrQ,OACvCqT,cAAcI,wBAA0BzT,OAExClU,2BAA6B,WAC7B,MAAOunB,eAAcI,yBAGrB7nB,2BAA6B,SAAUoU,OACvCqT,cAAcK,wBAA0B1T,OAExC6T,2BAA6B,WAC7B,MAAOR,eAAcK,yBAGrB7nB,4BAA8B,SAAUmU,OACxCqT,cAAclO,yBAA2BnF,MACzCzc,WAAWkI,WAAW,mCAAoC4nB,cAAclO,2BAExEhB,4BAA8B,WAC9B,MAAOkP,eAAclO,0BAErBT,iBAAmB,SAAU1E,OAC/BqT,cAAcM,cAAgB3T,MAC9Bzc,WAAWkI,WAAW,wBAAyB4nB,cAAcM,gBAE3DhP,iBAAmB,WACrB,MAAO0O,eAAcM,eAGnB7mB,mBAAqB,WACrBpB,yBAAwB,GACxB2kB,4BAA2B,GAC3BzkB,4BAA2B,GAC3BC,6BAA4B,GAIhC,QACIiB,mBAAoBA,mBACpBpB,wBAAyBA,wBACzB4X,wBAAyBA,wBACzB+M,2BAA4BA,2BAC5BvkB,2BAA4BA,2BAC5BF,2BAA4BA,2BAC5BioB,2BAA4BA,2BAC5BhoB,4BAA6BA,4BAC7BsY,4BAA6BA,4BAC7BxY,uBAAwBA,uBACxB4kB,uBAAwBA,uBACxB7L,iBAAkBA,iBAClBC,iBAAkBA,qBChFlCjkB,QAAQC,OAAO,WACX,MACA,UAGA,sBACA,UACA,SACA,YACA,UACA,cACA,UACA,eACA,YAIA,iBAEA,cACA,gBACA,gBACA,uBACA,sBACA,qBACA,iBCzBJD,QAAQC,OAAO,WAAWK,QAAQ,oBAAqB,iBACnD,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIC,YACAqyB,qBACInyB,MAAO,sBACPC,MAAO,uBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBiyB,mBACIpyB,MAAO,oBACPC,MAAO,qBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBkyB,gBACIryB,MAAO,qCACPC,MAAO,mBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBmyB,aACItyB,MAAO,gCACPC,MAAO,2BACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBoyB,gBACIvyB,MAAO,qCACPC,MAAO,mBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBqyB,0BACIxyB,MAAO,+CACPC,MAAO,4BACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBsyB,mBACIzyB,MAAO,wCACPC,MAAO,wCACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBuyB,mBACI1yB,MAAO,wCACPC,MAAO,qBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrBwyB,cACI3yB,MAAO,mCACPC,MAAO,gBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrByyB,kBACI5yB,MAAO,uCACPC,MAAO,oBACPC,gBACIK,YAAY,EACZJ,aAAa,IAGrB0yB,cACI7yB,MAAO,mCACPC,MAAO,gBACPC,gBACIC,aAAa,EACbC,YAAa,YAKzBR,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAUqyB,oBAAoBnyB,OACjCa,IAAKf,UAAUqyB,oBAAoBlyB,MACnCa,YAAa,0CACbC,WAAY,oBACZC,YAAa,iBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,6BAG3EpB,MAAMF,UAAUsyB,kBAAkBpyB,OAC/Ba,IAAKf,UAAUsyB,kBAAkBnyB,MACjCa,YAAa,wCACbC,WAAY,wBACZC,YAAa,qBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,qBAG3EpB,MAAMF,UAAUuyB,eAAeryB,OAC5Ba,IAAKf,UAAUuyB,eAAepyB,MAC9Ba,YAAa,qCACbC,WAAY,qBACZC,YAAa,oBAEhBhB,MAAMF,UAAUwyB,YAAYtyB,OACzBa,IAAKf,UAAUwyB,YAAYryB,MAC3Ba,YAAa,kCACbC,WAAY,kBACZC,YAAa,iBAEhBhB,MAAMF,UAAUyyB,eAAevyB,OAC5Ba,IAAKf,UAAUyyB,eAAetyB,MAC9Ba,YAAa,qCACbC,WAAY,qBACZC,YAAa,kBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,uBAG3EpB,MAAMF,UAAU0yB,yBAAyBxyB,OACtCa,IAAKf,UAAU0yB,yBAAyBvyB,MACxCa,YAAa,+CACbC,WAAY,+BACZC,YAAa,8BAEhBhB,MAAMF,UAAU2yB,kBAAkBzyB,OAC/Ba,IAAKf,UAAU2yB,kBAAkBxyB,MACjCa,YAAa,wCACbC,WAAY,wBACZC,YAAa,uBAEhBhB,MAAMF,UAAU4yB,kBAAkB1yB,OAC/Ba,IAAKf,UAAU4yB,kBAAkBzyB,MACjCa,YAAa,wCACbC,WAAY,wBACZC,YAAa,uBAEhBhB,MAAMF,UAAU6yB,aAAa3yB,OAC1Ba,IAAKf,UAAU6yB,aAAa1yB,MAC5Ba,YAAa,mCACbC,WAAY,mBACZC,YAAa,kBAEhBhB,MAAMF,UAAU8yB,iBAAiB5yB,OAClCa,IAAKf,UAAU8yB,iBAAiB3yB,MAC5Ba,YAAa,uCACbC,WAAY,uBACZC,YAAa,sBAEhBhB,MAAMF,UAAU+yB,aAAa7yB,OAC1Ba,IAAKf,UAAU+yB,aAAa5yB,MAC5Ba,YAAa,mCACbE,YAAa,gBACbD,WAAY,mBACZE,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,yBC7KxFrC,QAAQC,OAAO,WAAWsC,KAAK,iBAAkB,SAASC,gBACxD,YAEAA,gBAAeC,IAAI,wCACjB,o+IAgLFD,eAAeC,IAAI,+CACjB,8gFAgHFD,eAAeC,IAAI,qCACjB;AAsbFD,eAAeC,IAAI,mCACjB,m5YA0lBFD,eAAeC,IAAI,wCACjB,i9EAgHFD,eAAeC,IAAI,uCACjB,i3CA2EFD,eAAeC,IAAI,qCACjB,ssKA8MFD,eAAeC,IAAI,0CACjB,ogBA8BFD,eAAeC,IAAI,kCACjB,g0EAwGFD,eAAeC,IAAI,wCACjB,4fA8BFD,eAAeC,IAAI,qCACjB;AAwQFD,eAAeC,IAAI,mCACjB,+0KCpnEJzC,QAAQC,OAAO,WAAW+B,WAAW,yBAChC,SAAU,UAAW,aAAc,oBAAqB,iBAAkB,oBAAqB,yBAA0B,eAAgB,WAAY,gBAAiB,0BAA2B,SAC9L,SAAUc,OAAQgH,QAASR,QAAST,kBAAmBe,eAAgBC,kBAAmB/E,uBAAwBiP,aAAcggB,SAAUlvB,cAAeT,wBAAyBmF,QAC9K,YAeA,SAASyqB,mBACDlxB,OAAOmxB,sBAAsBzpB,UAAY1H,OAAO6D,MAAMutB,eAAiBpxB,OAAOqxB,kBAKlFrxB,OAAOsxB,eAAgB,EACvBvqB,kBAAkBwqB,sBAAsBvxB,OAAOwxB,sBAC1C/vB,KAAK,WACFuF,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,kDACnCT,kBAAkBK,YAAYC,SAAU,YAHhDU,SAKW,WACHC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,8DANzCO,WAQa,WACL/G,OAAOsxB,eAAgB,KAInC,QAASG,6BACL1qB,kBAAkB2qB,kCAAkC1xB,OAAOwxB,qBAAqBnM,SAAUrlB,OAAOwxB,qBAAqBG,mBAAtH5qB,SACW,WACHC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,6BACjCT,kBAAkBK,YAAYC,SAAU,YAHhDU,WAKa,WACL/G,OAAOwH,SAAU,IAI7B,QAASoqB,qCACL5xB,OAAOqxB,iBAAkB,EACzBtqB,kBAAkB8qB,uBAAuB7xB,OAAOwxB,qBAAqBnM,SAAUrlB,OAAOwxB,qBAAqBM,UACtGrwB,KAAK,SAAUC,MACPA,KAAKqwB,UAIN/xB,OAAO6D,MAAMutB,eAAgB,GAH7BpxB,OAAO6D,MAAMutB,eAAgB,EAC7BpxB,OAAOmxB,sBAAsBW,SAASpqB,UAAW,KAJ7DX,SASW,cATXA,WAYa,WACL/G,OAAOqxB,iBAAkB,IAIrC,QAAShqB,UACLN,kBAAkBirB,iCAAiChyB,QAE9C+B,cAAcgI,YACfzI,wBAAwB0I,kBACnBvI,KAAK,SAAUC,MACZ,GAAIA,KAAM,CACN,GAAIuI,aAAcjI,uBAAuBK,aAErC4H,eAAgBvI,KAAKwI,UACrBlI,uBAAuBmI,WAG3BnI,uBAAuBoI,aAAa1I,KAAK2I,SACzCrI,uBAAuBsI,YAAY5I,KAAKwI,cAGxClK,QAAOwI,aAAehC,QAAQ,yCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aAjBlClF,SAoBa,WACLtB,OAAOwI,aAAehC,QAAQ,yCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aAIlCirB,4BAGJ,QAASQ,QAELnrB,eAAesB,4BAA2B,GAC1CrC,kBAAkBK,YAAYC,SAAU,UAtG5CrG,OAAOwH,SAAU,CACjB,IAAI0qB,mBAAoBjhB,aAAaihB,iBACrClyB,QAAOwxB,sBACHnM,SAAUrjB,uBAAuBK,cACjCsvB,kBAAmBO,kBACnBJ,SAAU,GACV3D,SAAU,IAEdnuB,OAAO6D,OACHsuB,gBAAiB,GACjBf,eAAe,GA+FnB/pB,SAEArH,OAAOiyB,KAAOA,KACdjyB,OAAOkxB,gBAAkBA,gBACzBlxB,OAAO4xB,kCAAoCX,SAAS,IAAKW,sCClHrE10B,QAAQC,OAAO,WAAW+B,WAAW,gCAChC,SAAU,UAAW,aAAc,oBAAqB,iBAAkB,oBAAqB,yBAC5F,SAAUc,OAAQgH,QAASR,QAAST,kBAAmBe,eAAgBC,kBAAmB/E,wBACtF,YAkBA,SAASowB,0BACDpyB,OAAOqyB,6BAA6B3qB,WAGxC1H,OAAOsxB,eAAgB,EACvBtxB,OAAOwxB,qBAAqBc,UAAYtyB,OAAOuyB,SAASC,oBAAsB,GAAIhkB,MAAKxO,OAAOuyB,SAASC,oBACvGzrB,kBAAkB0rB,6BAA6BzyB,OAAOwxB,sBACjD/vB,KAAK,WACFuF,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,mCACnCT,kBAAkBK,YAAYC,SAAU,YAHhDU,SAKW,WACHC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0FANzCO,WAQa,WACL/G,OAAOsxB,eAAgB,KAInC,QAASW,QACLnrB,eAAesB,4BAA2B,GAC1CrC,kBAAkBK,YAAYC,SAAU,UAG5C,QAASgB,UACLN,kBAAkB2rB,wCAAwC1yB,QAzC9DA,OAAOwH,SAAU,EAGjBxH,OAAOuyB,UACHI,gBAAiB,EACjBC,iBAAkB,EAClBJ,mBAAoB,GACpBK,iBAAiB,EACjBC,kBAAkB,GAEtB9yB,OAAOwxB,sBACHnM,SAAUrjB,uBAAuBK,cACjCiM,aAAc,GACdgkB,UAAW,IA+BfjrB,SAEArH,OAAOiyB,KAAOA,KACdjyB,OAAOoyB,uBAAyBA,0BCpD5Cl1B,QAAQC,OAAO,WAAW+B,WAAW,sBAC7B,KACA,SACA,oBACA,aACA,cACA,iBACA,iCACA,UACA,SACIqmB,GACAvlB,OACA+G,kBACAP,QACAxC,YACA+uB,eACAlsB,+BACAG,SAEA,YAsDA,SAASgsB,qBACL,MAAI9S,WAAU8O,UACH+D,eAAeE,WAAW/S,UAAU3b,IACtC9C,KAAK,SAAUC,MACZ1B,OAAOqhB,SACH5N,YAAayM,UAAU3b,GACvBhE,KAAM2f,UAAUhM,SAChB5C,UAAW5P,KAAK6M,YAChBygB,WAAW,MAKvBhvB,OAAOqhB,SACH5N,YAAayM,UAAU3b,GACvBhE,KAAM2f,UAAUhM,SAChB5C,UAAW,KACX0d,WAAW,GAERzJ,GAAGW,QAIlB,QAASgN,qBACL,MAAOnsB,mBAAkBmsB,kBAAkBhT,UAAU3b,IAChD9C,KAAK,SAAUC,MACZyxB,kBAAkBC,YAAc1xB,KAAK0xB,YACrCD,kBAAkBrB,SAAWpwB,KAAKowB,SAClCqB,kBAAkBE,UAAY3xB,KAAK2xB,YAK/C,QAAS1X,YACL3b,OAAOwH,SAAU,EACjBxH,OAAOwT,iBAEP,IAAI8f,gBAAiBN,oBACjBO,yBAA2BL,mBAE/B3N,IAAG8H,KAAKiG,eAAgBC,2BAA2B9xB,KAAK,WACpD+xB,wBAEA,IAAIC,yBAAyB,CAC7BC,qCAAoCD,0BAJxClO,SAKS,SAAU1R,UACf7T,OAAO8T,aAAaD,YANxB0R,WAOW,WACPvlB,OAAOwH,SAAU,IAMzB,QAASmsB,mBACD3zB,OAAO4zB,0BACPC,wBAGJ9sB,kBAAkB+sB,uBAAuB9zB,QACpCyB,KAAK,cADVsF,WAEa,WACL/G,OAAO+zB,sBAAuB,IAI1C,QAASC,mBAAkBC,sBACvBT,yBACAS,qBAAqBC,eACrBl0B,OAAO+zB,sBAAuB,EAGlC,QAASI,iBAAgBF,sBACrBj0B,OAAOo0B,qBAAsB,EAEzBH,qBAAqBI,OACrBttB,kBAAkButB,sBAAsBt0B,OAAOu0B,+BAC1C9yB,KAAK,SAAUC,MACZyxB,kBAAkBC,YAAc1xB,KAAK0xB,YACrCD,kBAAkBrB,SAAWpwB,KAAKowB,SAClC0B,yBAEAxzB,OAAO+zB,sBAAwB/zB,OAAO+zB,qBACtCE,qBAAqBC,eACrBltB,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,8CAR3CO,SAUW,WACH/G,OAAOuX,kBAAoB/Q,QAAQ,kDACnCQ,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,qDAZzCO,WAca,WACL/G,OAAOo0B,qBAAsB,IAIrCp0B,OAAOo0B,qBAAsB,EAKrC,QAASI,uBACDx0B,OAAO+zB,sBACPC,oBAGJjtB,kBAAkB0tB,oCAAoCz0B,QACjDyB,KAAK,cADVsF,WAEa,WACL/G,OAAO4zB,0BAA2B,IAI9C,QAASC,uBAAsBa,6BAC3BhB,qCAAoC,GACpCgB,4BAA4BR,eAC5Bl0B,OAAO4zB,0BAA2B,EAGtC,QAASe,qBAAoBD,6BACzB10B,OAAO40B,yBAA0B,EAE7BF,4BAA4BL,OAC5BttB,kBAAkB8tB,4BAA4B70B,OAAO80B,oCAChDrzB,KAAK,SAAUC,MACZyxB,kBAAkBE,UAAY3xB,KAAK2xB,UACnCK,qCAAoC,GAEpC1zB,OAAO4zB,0BAA4B5zB,OAAO4zB,yBAE1Cc,4BAA4BR,eAC5BltB,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,gEAR3CO,SAUW,WACH/G,OAAOuX,kBAAoB/Q,QAAQ,uDACnCQ,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,2DAZzCO,WAca,WACL/G,OAAO40B,yBAA0B,IAIzC50B,OAAO40B,yBAA0B,EAKzC,QAASG,yBAAwBC,0BAC7B,GAAoC,OAAhCA,yBAAyBtwB,GAAa,CACtC,GAAIuwB,8BAA+BzwB,EAAEC,KAAKzE,OAAOk1B,mBAAoBxwB,GAAIswB,yBAAyBtwB,IAClGswB,0BAAyBG,KAAOF,6BAA6BE,SAG7DH,0BAAyBG,KAAO,GAKxC,QAAS3B,0BACLxzB,OAAOuX,kBAAoB,GAE3BvX,OAAOu0B,8BAA8BnB,YAAcD,kBAAkBC,YACrEpzB,OAAOu0B,8BAA8BzC,SAAWqB,kBAAkBrB,SAClE9xB,OAAOu0B,8BAA8Ba,YAAc,GACnDp1B,OAAOu0B,8BAA8Bc,YAAc,GAGvD,QAAS3B,qCAAoC4B,kBACzCt1B,OAAOuX,kBAAoB,GAE3BvX,OAAO80B,mCAAmC1B,YAAcD,kBAAkBC,WAE1E,IAAImC,gBAAiB/wB,EAAEC,KAAKzE,OAAOk1B,mBAAoBxwB,GAAIyuB,kBAAkBE,UAAU,IAAMF,kBAAkBE,UAAU,GAAG3uB,IACtG,OAAlB6wB,iBACAv1B,OAAO80B,mCAAmCzB,UAAU,GAAG3uB,GAAK6wB,eAAe7wB,GAC3E1E,OAAO80B,mCAAmCzB,UAAU,GAAG8B,KAAOI,eAAeJ,KAC7En1B,OAAO80B,mCAAmCzB,UAAU,GAAGmC,aAAeD,eAAeC,aACjFF,mBACAt1B,OAAO80B,mCAAmCzB,UAAU,GAAGoC,OAAS,KAIxEF,eAAiB/wB,EAAEC,KAAKzE,OAAOk1B,mBAAoBxwB,GAAIyuB,kBAAkBE,UAAU,IAAMF,kBAAkBE,UAAU,GAAG3uB,KAClG,MAAlB6wB,iBACAv1B,OAAO80B,mCAAmCzB,UAAU,GAAG3uB,GAAK6wB,eAAe7wB,GAC3E1E,OAAO80B,mCAAmCzB,UAAU,GAAG8B,KAAOI,eAAeJ,KAC7En1B,OAAO80B,mCAAmCzB,UAAU,GAAGmC,aAAeD,eAAeC,aACjFF,mBACAt1B,OAAO80B,mCAAmCzB,UAAU,GAAGoC,OAAS,KAIxEF,eAAiB/wB,EAAEC,KAAKzE,OAAOk1B,mBAAoBxwB,GAAIyuB,kBAAkBE,UAAU,IAAMF,kBAAkBE,UAAU,GAAG3uB,KAClG,MAAlB6wB,iBACAv1B,OAAO80B,mCAAmCzB,UAAU,GAAG3uB,GAAK6wB,eAAe7wB,GAC3E1E,OAAO80B,mCAAmCzB,UAAU,GAAG8B,KAAOI,eAAeJ,KAC7En1B,OAAO80B,mCAAmCzB,UAAU,GAAGmC,aAAeD,eAAeC,aACjFF,mBACAt1B,OAAO80B,mCAAmCzB,UAAU,GAAGoC,OAAS,KAzP5Ez1B,OAAOwH,SAAU,EAEjBxH,OAAO+zB,sBAAuB,EAC9B/zB,OAAOo0B,qBAAsB,EAE7Bp0B,OAAO4zB,0BAA2B,EAClC5zB,OAAO40B,yBAA0B,EAEjC50B,OAAOuX,kBAAoB,GAE3BvX,OAAOu0B,+BACHnB,YAAa,GACbtB,SAAU,GACVsD,YAAa,GACbC,YAAa,IAGjBr1B,OAAO80B,oCACH1B,YAAa,GACbC,YAEQ3uB,GAAI,KACJywB,KAAM,GACNK,aAAc,EACdC,OAAQ,KAGR/wB,GAAI,KACJywB,KAAM,GACNK,aAAc,EACdC,OAAQ,KAGR/wB,GAAI,KACJywB,KAAM,GACNK,aAAc,EACdC,OAAQ,KAKpB,IAAItC,oBACIC,YAAa,GACbtB,SAAU,GACVuB,UAAW,MAIfnT,UAAYrZ,+BAA+BsZ,cAC/Cnc,aAAYe,QAAQ,oBAAqB/E,OAAQ,qBAsDjD2b,WAwJA3b,OAAOm0B,gBAAkBA,gBACzBn0B,OAAO2zB,gBAAkBA,gBACzB3zB,OAAOg0B,kBAAoBA,kBAC3Bh0B,OAAO20B,oBAAsBA,oBAC7B30B,OAAOw0B,oBAAsBA,oBAC7Bx0B,OAAO6zB,sBAAwBA,sBAC/B7zB,OAAO+0B,wBAA0BA,2BC1R7C73B,QAAQC,OAAO,WAAW+B,WAAW,oBAChC,SAAU,eAAgB,YAAa,UAAW,iBAAkB,cAAe,UAAW,aAAc,OAAQ,oBACjH,SAAUc,OAAQiR,aAAcwN,OAAQiX,QAAS3C,eAAgB/uB,YAAagD,QAASR,QAASD,KAAMR,mBAClG,YAEA/F,QAAOwH,SAAU,EACjBxH,OAAO21B,wBAAyB,EAChC31B,OAAO41B,kBACHC,qBAAsB,GACtBC,oBAAqB,GACrBC,kBACIC,kBAAmB,GACnBC,cAAe,GACfC,iBAAkB,GAClBC,gBAAiB,GACjBC,aAAc,GACdC,YAAa,IAEjBC,oBACIN,kBAAmB,GACnBC,cAAe,GACfC,iBAAkB,GAClBC,gBAAiB,GACjBC,aAAc,GACdC,YAAa,IAEjBE,oBACKC,UAAW9xB,GAAI,GAAIywB,KAAM,GAAIK,aAAc,IAAKC,OAAQ,KACxDe,UAAW9xB,GAAI,GAAIywB,KAAM,GAAIK,aAAc,IAAKC,OAAQ,KACxDe,UAAW9xB,GAAI,GAAIywB,KAAM,GAAIK,aAAc,IAAKC,OAAQ,MAIjEzxB,YAAYe,QAAQ,oBAAqB/E,OAAQ,sBACjDgE,YAAYe,QAAQ,oBAAqB/E,OAAQ,qBACjDgE,YAAYe,QAAQ,oBAAqB/E,OAAQ,oBAEjD,IAAIy2B,mBAAoBzyB,YAAYe,QAAQ,iBAAkB/E,OAAQ,iBAEtEA,QAAO02B,4BACHjc,UAAY,IACZrD,iBAAmB,GACnBE,iBAAmB,GACnBD,qBAAuB,IAG3BrX,OAAO22B,8BACHlc,UAAY,IACZrD,iBAAmB,GACnBE,iBAAmB,GACnBD,qBAAuB,IAI3BrX,OAAO42B,2BAA6B,WAChCH,kBAAkBh1B,KAAK,SAAUC,MAC7B1B,OAAO62B,8BAAgCryB,EAAE4N,OAAO1Q,MAAOo1B,mBAAoB92B,OAAO41B,iBAAiBG,iBAAiBgB,iBAAiBryB,QAG7I1E,OAAOg3B,6BAA+B,WAClCP,kBAAkBh1B,KAAK,SAAUC,MAC7B1B,OAAOi3B,gCAAkCzyB,EAAE4N,OAAO1Q,MAAOo1B,mBAAoB92B,OAAO41B,iBAAiBU,mBAAmBS,iBAAiBryB,QAIjJ1E,OAAOk3B,6BAA+B,WAClCl3B,OAAO21B,wBAA0B31B,OAAO21B,wBAG5C31B,OAAOiyB,KAAO,WACVlsB,kBAAkBK,YAAYC,SAAU,uBAE5CrG,OAAOm3B,KAAO,WACVpxB,kBAAkBK,YAAYC,SAAU,sBAE5CrG,OAAOo3B,KAAO,WACVrxB,kBAAkBK,YAAYC,SAAU,yBC5ExDnJ,QAAQC,OAAO,WAAW+B,WAAW,yBAChC,SAAU,eAAgB,cAAe,UAAW,aAAc,oBAAqB,iBACpF,SAAUc,OAAQiR,aAAcjN,YAAagD,QAASR,QAAST,kBAAmBe,gBAC9E,YAEA9G,QAAOwH,SAAU,EACjBxH,OAAOq3B,sBACHxB,qBAAsB,GACtBC,oBAAqB,IAGzB91B,OAAOiyB,KAAO,WAEVnrB,eAAesB,4BAA2B,GAC1CrC,kBAAkBK,YAAYC,SAAU,WAE5CrG,OAAOo3B,KAAO,WACVrxB,kBAAkBK,YAAYC,SAAU,qBCjBxDnJ,QAAQC,OAAO,WAAW+B,WAAW,wBAChC,SAAU,eAAgB,UAAW,aAAc,oBAAqB,iBACrE,SAAUc,OAAQiR,aAAcjK,QAASR,QAAST,kBAAmBW,gBACjE,YAEA1G,QAAOwH,SAAU,EAEjBd,eACKsN,sBACAvS,KAAK,SAAUwS,kBACZjU,OAAOwT,kBACPxT,OAAOs3B,QAAUrjB,mBAJzBvN,SAMW,SAAUmN,UACb7T,OAAO8T,aAAaD,YAP5BnN,WASa,WACL1G,OAAOwH,SAAU,IAGzBxH,OAAOu3B,OAAS,WACZxxB,kBAAkBK,YAAYC,SAAU,eAG5CrG,OAAOiyB,KAAO,WACVlsB,kBAAkBK,YAAYC,SAAU,kBAG5CrG,OAAOu3B,OAAS,WACZxxB,kBAAkBK,YAAYC,SAAU,cC7BxDnJ,QAAQC,OAAO,WAAW+B,WAAW,sBAChC,SAAU,UAAW,aAAc,oBAAqB,iBAAkB,oBAAqB,yBAC5F,SAAUc,OAAQgH,QAASR,QAAST,kBAAmBe,eAAgBC,kBAAmB/E,wBACtF,YAcA,SAASiwB,QACLnrB,eAAesB,4BAA2B,GAC1CrC,kBAAkBK,YAAYC,SAAU,UAG5C,QAASmxB,UAEDx3B,OAAOy3B,mBAAmB/vB,WAI9B1H,OAAOwH,SAAU,EAEjBT,kBAAkB2wB,mBAAmB13B,OAAO6D,OACvCpC,KAAK,WACFuF,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,4EACnCT,kBAAkBK,YAAYC,SAAU,YAHhDU,SAKW,WACHC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,4GANzCO,WAQa,WACL/G,OAAOwH,SAAU,KAlC7BxH,OAAOwH,SAAU,EACjBxH,OAAO6D,OACHa,GAAI1C,uBAAuBkE,YAC3BkvB,YAAa,GACbC,YAAa,IAEjBr1B,OAAO23B,mBAAqB,GAE5B33B,OAAOiyB,KAAOA,KAEdjyB,OAAOw3B,OAASA,UCf5Bt6B,QAAQC,OAAO,WAAW+B,WAAW,qBAChC,SAAU,SACP,WACI,gBCHZhC,QAAQC,OAAO,WAAW+B,WAAW,mBAChC,SAAU,UAAW,aAAc,oBAAqB,0BAA2B,SAAU,gBAAiB,iBAAkB,oBAAqB,yBAA0B,eAC5K,SAAUc,OAAQgH,QAASR,QAAST,kBAAmBzE,wBAAyBmF,OAAQ1E,cAAe+E,eAAgBC,kBAAmB/E,uBAAwBiP,cAC9J,YAqDA,SAASghB,QACLnrB,eAAesB,4BAA2B,GAC1CrC,kBAAkBK,YAAYC,SAAU,UAG5C,QAASgB,QAAOmK,WAAYtH,UAExBlK,OAAOwH,SAAU,CACjB,IAAI/G,SACA+Q,WAAYA,WACZtH,SAAUA,SAGdnD,mBAAkB6wB,uBAAuBn3B,QACpCgB,KAAK,SAAUC,MACZ1B,OAAO6D,MAAMyK,aAAe5M,KAAKm2B,OAAOvpB,aACxCtO,OAAO83B,mBAAoB,IAHnC/wB,SAKW,WACHC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,mGACjCxG,OAAO83B,mBAAoB,IAPnC/wB,WASa,WACL/G,OAAOwH,SAAU,IAI7B,QAASgwB,UAELx3B,OAAOwH,SAAU,EAEjBT,kBAAkBgxB,gBAAgB/3B,OAAO6D,OACpCpC,KAAK,WACFuF,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,0CACnCxG,OAAOg4B,WAAY,IAH3BjxB,SAKW,WACHC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,uFANzCO,WAQa,WACL/G,OAAOwH,SAAU,IA3F7BxH,OAAOwH,SAAU,EACjBxH,OAAOg4B,WAAY,EACnBh4B,OAAO83B,mBAAoB,EAC3B93B,OAAO6D,OACH2nB,WAAYva,aAAaO,WACzB6T,SAAUrjB,uBAAuBK,cACjCiM,aAAc,GACd2pB,0BAA0B,EAC1BC,mBAAmB,GAGvBl4B,OAAOqH,OAASA,OAEXtF,cAAcgI,YACfzI,wBAAwB0I,kBACnBvI,KAAK,SAAUC,MACZ,GAAIA,KAAM,CACN,GAAIuI,aAAcjI,uBAAuBK,aAErC4H,eAAgBvI,KAAKwI,UACrBlI,uBAAuBmI,WAG3BnI,uBAAuBoI,aAAa1I,KAAK2I,SACzCrI,uBAAuBsI,YAAY5I,KAAKwI,UACxClK,OAAO6D,MAAMwhB,SAAWrjB,uBAAuBK,cAE/CrC,OAAOqH,OAAOrH,OAAO6D,MAAM2nB,WAAYxrB,OAAO6D,MAAMwhB,cAGpDrlB,QAAOwI,aAAehC,QAAQ,yCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aApBlClF,SAuBa,WACTtB,OAAOwI,aAAehC,QAAQ,yCAC9BC,OAAOiC,kBACHC,MAAOnC,QAAQ,iBACfiC,QAASzI,OAAOwI,aAChBI,SAAUpC,QAAQ,aAK9BxG,OAAOiyB,KAAOA,KAEdjyB,OAAOw3B,OAASA,UCtD5Bt6B,QAAQC,OAAO,WAAW+B,WAAW,yBAChC,SAAU,SACP,WACI,gBCHZhC,QAAQC,OAAO,WAAW+B,WAAW,sBAChC,SAAU,eAAgB,UAAW,aAAc,oBAAqB,iBAAkB,oBAAqB,yBAC5G,SAAUc,OAAQiR,aAAcjK,QAASR,QAAST,kBAAmBe,eAAgBC,kBAAmB/E,wBACpG,YAoBA,SAASm2B,yBACLn4B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBAEPzM,kBAAkBiC,qBAAqBhJ,OAAO6D,MAAMiuB,SAAU9xB,OAAO6D,MAAMwhB,UACtE5jB,KAAK,SAAUC,MACZ,GAAIA,KAAM,CACN,GAAIwzB,mBAAoBxzB,KAAK02B,OAC7Bp4B,QAAO6D,MAAMwvB,UAAY6B,kBAAkB7B,cAE3CrsB,SAAQiC,IAAI,UAAW,GAAIzC,QAAQ,gFACnCyrB,SAPZlrB,SASa,SAAU8M,UACf7M,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,gFACnCxG,OAAO8T,aAAaD,YAX5B9M,WAYe,WACP/G,OAAOwH,SAAU,IAI7B,QAASyqB,QACLnrB,eAAesB,4BAA2B,GAC1CrC,kBAAkBK,YAAYC,SAAU,UAG5C,QAASmxB,UAEL,IAAIx3B,OAAOy3B,mBAAmB/vB,SAA9B,CAIA1H,OAAOwH,SAAU,CACjB,IAAI6wB,aACAvG,SAAU9xB,OAAO6D,MAAMiuB,SACvBzM,SAAUrlB,OAAO6D,MAAMwhB,SACvBgQ,YAAar1B,OAAO6D,MAAMwxB,YAC1BhC,UAAW7uB,EAAExE,OAAO6D,MAAMwvB,WACrB5pB,IAAI,SAAU8oB,UACX,OACI7tB,GAAI6tB,SAAS7tB,GACbywB,KAAM5C,SAAS4C,KACfM,OAAQ,GACRD,aAAcjD,SAASiD,gBAE5BhZ,QAGyB,KAAhC6b,WAAWhF,UAAU3a,SACrB2f,WAAWhF,UAAU,GAAGoC,OAASz1B,OAAOs4B,QAAQC,UAChDF,WAAWhF,UAAU,GAAGoC,OAASz1B,OAAOs4B,QAAQE,UAChDH,WAAWhF,UAAU,GAAGoC,OAASz1B,OAAOs4B,QAAQG,WAGpD1xB,kBAAkB2xB,mBAAmBL,YAChC52B,KAAK,SAAUC,MACZ4sB,QAAQtQ,IAAItc,MACZsF,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,4EACnCT,kBAAkBK,YAAYC,SAAU,YAJhDU,SAMW,WACHC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,4GAPzCO,WASa,WACL/G,OAAOwH,SAAU,KAlF7BxH,OAAOwH,SAAU,EACjBxH,OAAO6D,OACHiuB,SAAU9vB,uBAAuB8H,cACjCub,SAAUrjB,uBAAuBK,cACjCgzB,YAAa,GACbhC,cAEJrzB,OAAOs4B,SACHC,UAAW,GACXC,UAAW,GACXC,UAAW,IAEfz4B,OAAO23B,mBAAqB,GAE5B33B,OAAOiyB,KAAOA,KACdjyB,OAAOw3B,OAASA,OAEhBW,2BCtBZj7B,QAAQC,OAAO,WAAW+B,WAAW,oBAE7B,SACA,iBACA,KACA,iBACA,yBACA,oBACA,oBACA,gBACA,aACA,iBACA,SACIc,OACA8G,eACAye,GACA7e,eACA1E,uBACA+D,kBACA2Y,kBACA1Y,cACAQ,QACAuS,gBAEA,YAqBA,SAAS/E,uBACL,MAAOtN,gBACFsN,sBACAvS,KAAK,SAAUwS,kBACZjU,OAAO24B,aAAarB,QAAUrjB,mBAI1C,QAASP,sBACL,MAAOhN,gBACFgN,qBACAjS,KAAK,SAAUC,MACZ1B,OAAO24B,aAAa1I,wBAA0BvuB,KAAKk3B,WACnD54B,OAAO24B,aAAaE,oBAAsBn3B,KAAKkS,cAI3D,QAASsL,oBACL,MAAOR,mBAAkBmB,iCAG7B,QAASV,yBACL,MAAOT,mBAAkBmB,iCACpBpe,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMC,SAAU,gBAAiBE,UAAW,SAI3E,QAAS4hB,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,iBAEP,IAAIulB,wBAAyBrlB,qBACzBslB,wBAA0BhlB,qBAE9BuR,IAAG8H,KAAK0L,uBAAwBC,0BAC3Bv3B,KAAK,WACEzB,OAAO24B,aAAa1I,2BAA4B,IAChDnpB,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,iBALpDkf,SAQW,SAAU1R,UACb7T,OAAO8T,aAAaD,YAT5B0R,WAWa,WACLvlB,OAAOwH,SAAU,IAM7B,QAASyxB,qBACLjzB,cAAcG,SAAS1E,KAAK,WACxBsE,kBAAkBK,YAAYC,SAAU,YAIhD,QAAS6yB,cACDl5B,OAAOm5B,iBAAiBzxB,WAI5B1H,OAAO2H,WAAY,EACnB+W,kBACK0a,gCAAgCp3B,uBAAuBkE,aACvDzE,KAAK,WACFzB,OAAOwT,kBACP1M,eAAesB,4BAA2B,GAC1CtB,eAAeuB,6BAA4B,GAC3CtC,kBAAkBK,YAAYC,SAAU,gBANhDqY,SAQW,SAAU7K,UACb7T,OAAO8T,aAAaD,YAE5B7T,OAAO2H,WAAY,GA/FvB3H,OAAOwH,SAAU,EACjBxH,OAAO2H,WAAY,EAEnB3H,OAAO24B,cACHE,oBAAqB,GACrBvB,QAAS,GACT+B,uBAAuB,EACvBpJ,yBAAyB,EACzBqJ,cAAe9yB,QAAQ,gKACvB+yB,sBAAuB/yB,QAAQ,mGAC/BgzB,kBAAmBhzB,QAAQ,uFAG/BxG,OAAO6D,OAEHqP,kBAAmB6F,eAAeqG,oBAClCpM,WAAY,iBAsDhB8lB,WA4BA94B,OAAOmf,sBAAwBA,sBAC/Bnf,OAAOkf,iBAAmBA,iBAC1Blf,OAAOk5B,WAAaA,WACpBl5B,OAAOi5B,kBAAoBA,qBC/HvC/7B,QAAQC,OAAO,WAAWogB,QAAQ,qBAC7B,oBAAqB,qBAAsB,SAAUC,kBAAmBic,oBACrE,YAEA,SAAS/B,oBAAmBgC,mBACxB,GAAI/b,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAa6b,kBAAkBh1B,GAAI,oBAAoB0mB,WAAWsO,mBAG7F,QAAS9B,wBAAuBn3B,QAC5B,GAAIkd,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,yCAAyCD,IAAInd,QAGxE,QAASs3B,iBAAgB4B,gBACrB,GAAIhc,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,+BAA+BuN,WAAWuO,gBAGrE,QAASjB,oBAAmBgB,mBACxB,GAAI/b,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,4BAA4BuN,WAAWsO,mBAGlE,QAASjH,8BAA6BmH,wCAClC,GAAIjc,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,sCAAsCuN,WAAWwO,wCAG5E,QAASrI,uBAAsBsI,iCAC3B,GAAIlc,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,8BAA8BuN,WAAWyO,iCAGpE,QAASnI,mCAAkCxnB,SAAU4vB,cACjD,GAAInc,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,gDAAkDic,cAAc1O,WAAWlhB,UAGtG,QAAS2nB,wBAAuB3nB,SAAUtC,UACtC,GAAI+V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,gCAAkCjW,UAAUwjB,WAAWlhB,UAGlF,QAASlB,sBAAqBpB,SAAUsC,UACpC,GAAIyT,aAAcH,kBAAkBI,IAAI,WACpCnd,QACAmH,SAAUA,SACVsC,SAAUA,SAEd,OAAOyT,aAAYE,IAAI,+BAA+BD,IAAInd,QAG9D,QAASqzB,wBAAuB9zB,QAC5B,MAAOy5B,oBAAmBM,YAAY,8BAA+B/5B,QAGzE,QAASy0B,qCAAoCz0B,QACzC,MAAOy5B,oBAAmBM,YAAY,6CAA8C/5B,QAGxF,QAAS0yB,yCAAwC1yB,QAC7C,MAAOy5B,oBAAmBM,YAAY,kDAAmD/5B,QAG7F,QAASgyB,kCAAiChyB,QACtC,MAAOy5B,oBAAmBM,YAAY,0CAA2C/5B,QAGrF,QAASkzB,mBAAkBzf,aACvB,GAAIkK,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAapK,YAAa,qBAAqBmK;CAG1E,QAAS0W,uBAAsBC,+BAC3B,GAAI5W,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAa0W,8BAA8BnB,YAAa,gBAAgB4G,UAAUzF,+BAG7G,QAASM,6BAA4BC,oCACjC,GAAInX,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAaiX,mCAAmC1B,YAAa,sBAAsB4G,UAAUlF,oCAIxH,OACI4C,mBAAoBA,mBACpBK,gBAAiBA,gBACjBH,uBAAwBA,uBACxBc,mBAAoBA,mBACpB1vB,qBAAsBA,qBACtBkqB,kBAAmBA,kBACnBoB,sBAAuBA,sBACvBO,4BAA6BA,4BAC7Bf,uBAAwBA,uBACxBW,oCAAqCA,oCACrChC,6BAA8BA,6BAC9BlB,sBAAuBA,sBACvBG,kCAAmCA,kCACnCG,uBAAwBA,uBACxBa,wCAAyCA,wCACzCV,iCAAkCA,qCCrG9C90B,QAAQC,OAAO,WAAWogB,QAAQ,kBAC7B,OAAQ,KAAM,oBAAqB,yBAA0B,gBAC1D,SAAUjK,KAAMiS,GAAI7G,kBAAmB1c,uBAAwBD,eAC3D,YAUA,SAASk4B,oCAAmCC,MACxC,GAAIC,YAAaD,KAEbE,GAAK,GAAIC,QAAO,OAAQ,IAM5B,OALAF,YAAaA,WAAW5pB,QAAQ6pB,GAAI,SAEpCA,GAAK,GAAIC,QAAO,KAAM,KACtBF,WAAaA,WAAW5pB,QAAQ6pB,GAAI,SAKxC,QAASpmB,uBACL,MAAO0K,mBACF4b,8BAA8Bt4B,uBAAuBkE,aACrDzE,KAAK,SAAUC,MACZ,GAAI64B,SAAUv4B,uBAAuBwd,eAAiB,gBAAkBzd,cAAcy4B,mBAAqB,IACvG5T,KAAO,YAAcllB,KAAK+4B,KAC1BC,OAAS34B,cAAcknB,QACvB0R,OAASJ,QAAU3T,KAAO,WAAa8T,OAEvCzmB,iBAAmBX,KAAKsnB,mBAAmBD,OAC/C,OAAO1mB,oBAInB,QAASP,sBACL,MAAOgL,mBACFhL,mBAAmB1R,uBAAuBkE,aAC1CzE,KAAK,SAAUC,MACZ,GAAIm5B,yBACAjC,WAAYl3B,KAAKk3B,WACjBhlB,YAAaN,KAAKwnB,YAAYb,mCAAmCv4B,KAAKkS,cAE1E,OAAOinB,0BAInB,QAASE,iBAAgB3d,WAKrB,MAJI4d,uBAAsBC,YAAc7d,WACpC8d,oBAGCF,sBAAsBC,UAiBhB1V,GAAGW,KAAK8U,uBAhBRtc,kBACFqc,gBAAgB3d,WAChB3b,KAAK,SAAUC,MACZs5B,uBACIC,UAAW7d,UACX+d,QAASz5B,KAAKy5B,QACdvC,WAAYl3B,KAAKk3B,WACjBwC,qBAAsB15B,KAAK05B,qBAC3BxnB,YAAalS,KAAKkS,YAGtB,IAAIynB,aAAc/nB,KAAKwnB,YAAYb,mCAAmCe,sBAAsBpnB,aAE5F,OADAonB,uBAAsBpnB,YAAcynB,YAC7BL,wBAOvB,QAASM,kBAAiBle,WAQtB,MAPI4d,uBAAsBC,YAAc7d,WACpC4d,sBAAsBpC,YAAa,EACnC52B,uBAAuBu5B,6BAA4B,IAEnDL,oBAGGxc,kBACF4c,iBAAiBle,WACjB3b,KAAK,cAKd,QAASy5B,qBACLF,uBACIC,UAAW,KACXE,QAAS,EACTvC,YAAY,EACZwC,sBAAsB,EACtBxnB,YAAa,MAIrB,QAAS4nB,wBAAuBpe,WAC5B,MAAO2d,iBAAgB3d,WAClB3b,KAAK,SAAUC,MACZ,GAAI+5B,kBAAmB/5B,IACvB,UAAU+5B,kBAAoBA,iBAAiBR,WAAaQ,iBAAiBR,YAAc7d,YAAepb,uBAAuB05B,+BAAkCD,iBAAiB7C,aAAe6C,iBAAiBL,yBArGhO,GAAIJ,wBACAC,UAAW,KACXE,QAAS,EACTvC,YAAY,EACZwC,sBAAsB,EACtBxnB,YAAa,KAoGjB,QACII,oBAAqBA,oBACrBN,mBAAoBA,mBACpBqnB,gBAAiBA,gBACjBO,iBAAkBA,iBAClBE,uBAAwBA,uBACxBN,kBAAmBA,sBCpHnCh+B,QAAQC,OAAO,aAEX,sBACA,UACA,WACA,SACA,YACA,UACA,cACA,UACA,eACA,YAIA,iBAEA,cACA,gBACA,gBACA,uBACA,sBACA,iBCtBJD,QAAQC,OAAO,aAAaK,QAAQ,oBAAqB,iBACrD,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIK,iBAAmBE,YAAa,iBAEhCN,WACA09B,UACIx9B,MAAO,WACPC,MAAO,aACPC,eAAgBA,gBAEpBu9B,eACIz9B,MAAO,gBACPC,MAAO,iBACPC,eAAgBA,gBAEpBw9B,qBACI19B,MAAO,sBACPC,MAAO,uBACPC,eAAgBA,gBAIxBN,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAU09B,SAASx9B,OACtBa,IAAKf,UAAU09B,SAASv9B,MACxBa,YAAa,kCACbC,WAAY,eACZC,YAAa,YACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,iBAG3EpB,MAAMF,UAAU29B,cAAcz9B,OAC3Ba,IAAKf,UAAU29B,cAAcx9B,MAC7Ba,YAAa,sCACbC,WAAY,eACZC,YAAa,iBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,iBAG3EpB,MAAMF,UAAU49B,oBAAoB19B,OACjCa,IAAKf,UAAU49B,oBAAoBz9B,MACnCa,YAAa,sCACbG,SACI08B,SAAU,WAAa,OAAO,GAC9Bz8B,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,eAExEL,WAAY,qBACZC,YAAalB,UAAU49B,oBAAoBz9B,WCrD3DlB,QAAQC,OAAO,aAAasC,KAAK,iBAAkB,SAASC,gBAC1D,YAEAA,gBAAeC,IAAI,sCACjB,uyVA+WFD,eAAeC,IAAI,kCACjB,s0RCpXJ,WACI,YACA,IAAIo8B,kBAAmB,SAAUC,SAAUC,oBAAqBC,yBAC5D,MAAO,UAAU3W,GAAIvlB,OAAQiR,aAAcjK,QAASR,QAAShC,EAAGqC,+BAAgCs1B,oBAAqBp2B,kBAAmBmL,wBA+BpI,QAASkrB,6BAA4BhqB,QACjCpS,OAAOq8B,aAAejqB,OAEtBpS,OAAOs8B,sBAAwB93B,EAAE4N,OAAOpS,OAAOqhB,QAAQkb,YAAa,SAAUC,MAC1E,MAAOL,qBAAoBM,WAAWD,KAAKE,QAAS18B,OAAOq8B,aAAaM,SAAWH,KAAKI,uBAIhG,QAASC,gBAAeC,UACpB,GAAIC,KAAM,EAEV,OADAA,MAAOD,SAASE,KAAO,IAAMF,SAASG,QAAQC,SAAW,IAAMJ,SAASG,QAAQE,KAAO,IAAML,SAASG,QAAQG,MAAQ,IAAMN,SAASG,QAAQI,IAIjJ,QAASC,kBACLv3B,kBAAkBK,YAAYC,SAAU41B,oBAAqBtX,KAAOuX,0BAA4B33B,GAAI6b,cAAc7b,MAGtH,QAASg5B,wBAAuBC,aAC5B,GAAIC,cAAej5B,EAAEiF,IAAI+zB,YAAa,SAAU3lB,SAC5C,MAAOrT,GAAEk5B,SAAS7lB,SACb8lB,yBACIxB,oBAAoByB,qBAAuB/lB,QAAQgmB,0BAA4BhmB,QAAQ+kB,wBAEpG,OAAOa,cAGX,QAASK,cACL99B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACP3M,+BAA+BwZ,kBAC/B,IAAI0d,mBAAoB5B,oBAAoB6B,cAAc5d,cAAc7b,IACnE9C,KAAK,SAAUC,MACZ1B,OAAOqhB,QAAQ4c,WAAav8B,KAAK02B,QAC7Bp4B,OAAOqhB,QAAQ4c,YAAcj+B,OAAOqhB,QAAQ4c,WAAWvlB,SACvD1Y,OAAOk+B,iBAAiBpB,SAAWt4B,EAAExE,OAAOqhB,QAAQ4c,YAC/C7rB,QAAQ+rB,qBAAuB,IAC/B3hB,QACLxc,OAAOk+B,iBAAiBpB,SAAW98B,OAAOk+B,iBAAiBpB,SAASpkB,OAAS1Y,OAAOk+B,iBAAiBpB,SAAS,GAAK98B,OAAOqhB,QAAQ4c,WAAW,GAC7IG,kBAAiB,MAGzBC,iBAAmBlC,oBAAoBmC,aAAale,cAAc7b,IACjE9C,KAAK,SAAUC,MACZ1B,OAAOqhB,QAAQkb,YAAc76B,KAAK66B,WAGlC,IAAIgC,oBAAqB/5B,EAAEg6B,UAAUx+B,OAAOqhB,QAAQkb,YAAa,SAAUC,MACvE,MAAOL,qBAAoBM,WAAWD,KAAKE,QAASP,oBAAoBsC,WAAW,GAAG9B,OAE1F38B,QAAO0+B,qBAAuBH,mBAAmB,GACjDv+B,OAAO2+B,sBAAwBJ,mBAAmB,GAGlDnC,4BAA4Bp8B,OAAOq8B,cAG/Br8B,OAAOqhB,QAAQkb,aAAev8B,OAAOqhB,QAAQkb,YAAY7jB,SACzD1Y,OAAO4+B,qBAAuB5+B,OAAO0+B,qBAAqBG,OAAO7+B,OAAO2+B,uBACxE3+B,OAAO4+B,qBAAwBrB,uBAAuBv9B,OAAO4+B,wBAIzEE,kBAAiBC,kBAEjBxZ,GAAG8H,KAAK0Q,kBAAmBM,mBAA3B9Y,SAAoD,SAAU1R,UAC1D7T,OAAO8T,aAAaD,YADxB0R,WAEW,WACPvlB,OAAOwH,SAAU,IAGzB,QAASs3B,kBAAiBC,kBACtB5C,oBAAoB6C,wBAAwBD,kBAGhD,QAASE,UAASC,KACdA,IAAIvB,0BAA4BuB,IAAIvB,yBAGxC,QAASwB,WAAUD,KACf/C,oBAAoBiD,iBAAiBF,IAAIrB,wBAG7C,QAASO,kBAAiBiB,MACtBr/B,OAAOs/B,WAAaD,KAGxB,QAASE,mBACLv/B,OAAOw/B,gBAAiB,CACxB,IAAIC,YACAxE,UAAW7a,cAAc7b,GACzBm7B,YAAaxf,UAAU3b,GACvBo7B,oBAAqB3/B,OAAOk+B,iBAAiBpB,SAASp4B,GACtDk7B,OAAQ5/B,OAAO4/B,OACfrD,YAAa/3B,EAAExE,OAAOqhB,QAAQkb,aACzBnqB,QAAQurB,0BAA4B,IACpCl0B,IAAI,SAAUy1B,KACX,OACIrB,uBAAwBqB,IAAIrB,uBAC5BgC,SAAUX,IAAIW,SACdC,aAAcZ,IAAIY,aAClBC,WAAYb,IAAIa,cAGvBvjB,QAG4B,KAAjCijB,UAAUlD,YAAY7jB,QACtB1R,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,6BACnCxG,OAAOw/B,gBAAiB,GAExBrD,oBACK6D,aAAaP,WACbh+B,KAAK,SAAUC,MACZy6B,oBAAoB8D,qBACpBjgC,OAAOqhB,QAAQkb,YAAc76B,KAAK66B,YAClCv1B,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,sCACnCT,kBAAkBK,YAAYC,SAAU,oBANhD81B,SAQW,WACHn1B,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,yDATzC21B,WAWa,WACLn8B,OAAOw/B,gBAAiB,IAzJxCx/B,OAAOO,KAAO,WACdP,OAAOs/B,YAAa,EACpBt/B,OAAOwH,SAAU,EACjBxH,OAAOw/B,gBAAiB,EACxBx/B,OAAOk+B,kBACHpB,UACIE,KAAM,GACNC,SACIC,SAAU,GACVC,KAAM,GACNC,MAAO,GACPC,IAAK,IAET6C,OACIzU,YAAa,MAGzBzrB,OAAOqhB,SAAWkb,eAAiB0B,eACnCj+B,OAAOy+B,WAAatC,oBAAoBsC,WACxCz+B,OAAOq8B,aAAeF,oBAAoBsC,WAAW,EAErD,IAAIre,eAAiBvZ,+BAA+BwZ,mBAChDH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,KAEjCP,QAAOgY,YAAc9G,uBAAuBQ,qBAkI5C1R,OAAOogC,WACHC,YAAa9hB,QAEjBve,OAAOsgC,YAAc,WACmB/hB,SAAjCve,OAAOogC,UAAUC,aAEhBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC,aAGtDrE,UACC8B,aAGJ99B,OAAO8+B,iBAAmBA,iBAC1B9+B,OAAOo8B,4BAA8BA,4BACrCp8B,OAAO68B,eAAiBA,eACxB78B,OAAOi/B,SAAWA,SAClBj/B,OAAOm/B,UAAYA,UACnBn/B,OAAOu/B,gBAAkBA,gBACzBv/B,OAAOs9B,eAAiBA,iBAI5BiD,aAAe,GAAIxE,mBAAiB,EAAM,0BAC1CyE,wBAA0B,SAAUjb,GAAIvlB,OAAQiR,aAAcjK,QAASR,QAAShC,EAAGqC,+BAAgCs1B,oBAAqBp2B,kBAAmBmL,uBAAwBuN,QACnL,GAAIsd,mBAAiB,EAAO,iBAAmB0E,QAAQ,IAAQC,KAAK9+B,KAAM2jB,GAAIvlB,OAAQiR,aAAcjK,QAASR,QAAShC,EAAGqC,+BAAgCs1B,oBAAqBp2B,kBAAmBmL,wBACjMlR,OAAO2gC,UAAY,SAASC,qBACxB,GAAI/hB,eAAgBJ,OAAOK,MACvB7f,YAAa,0CACbC,WAAY,mBACZyX,MAAO3W,OACPZ,SACIyhC,SAAU,WACN,OAAO,GAEXC,aAAc,WACV,GAAIC,mBAAoBv8B,EAAEC,KAAKzE,OAAOs8B,uBAAyBuB,uBAAwB+C,sBACnFE,aACI,QAAU,GAAItyB,MAAKuyB,kBAAkBC,WAAWC,qBAAuB,MAAQ,GAAIzyB,MAAKuyB,kBAAkBrE,SAASuE,qBAAuB,cAChIF,kBAAkBlB,SAAW,cAC7BkB,kBAAkBjB,aAAe;AACnD,MAAOgB,iBAInBjiB,eAAc/B,OAAOrb,KAAK,gBAI9By/B,mBAAqB,SAAU3b,GAAIvlB,OAAQiR,aAAcjK,QAASR,QAAShC,EAAGqC,+BAAgCs1B,oBAAqBp2B,kBAAmBmL,wBACtJ,GAAI6qB,mBAAiB,EAAM,iBAAmB0E,QAAQ,IAAQC,KAAK9+B,KAAM2jB,GAAIvlB,OAAQiR,aAAcjK,QAASR,QAAShC,EAAGqC,+BAAgCs1B,oBAAqBp2B,kBAAmBmL,wBAGpMhU,SAAQC,OAAO,aAAa+B,WAAW,gBACtC,KAAM,SAAU,eAAgB,UAAW,aAAc,IAAK,iCAAkC,sBAAuB,oBAAqB,yBACzIqhC,eACJrjC,QAAQC,OAAO,aAAa+B,WAAW,sBACtC,KAAM,SAAU,eAAgB,UAAW,aAAc,IAAK,iCAAkC,sBAAuB,oBAAqB,yBACzIgiC,qBACJhkC,QAAQC,OAAO,aAAa+B,WAAW,2BACtC,KAAM,SAAU,eAAgB,UAAW,aAAc,IAAK,iCAAkC,sBAAuB,oBAAqB,yBAA0B,YACnKshC,6BCnORtjC,QAAQC,OAAO,aAAaogB,QAAQ,uBAC/B,yBAA0B,qBAAsB,KAC7C,SAAUrM,uBAAwBiwB,mBAAoB5b,IAClD,YAaA,SAAS6b,aAAYpsB,MACjBA,KAAOiJ,OAAOjJ,MAAMqsB,QAAQ,IAC5B,IAAIC,MAAOrjB,SAASojB,QAAQ,IAE5B,OAAOrsB,MAAKusB,KAAKD,KAAM,KAG3B,QAAS7E,YAAWznB,KAAMwsB,WAGtB,GAAIxsB,MAAQwsB,WAAa,EAAG,CACxB,GAAID,MAAOH,YAAYpsB,KACvB,OAAOusB,OAAQ,GAAKC,UAExB,OAAO,EAGX,QAASC,eAAcC,iBAEnB,MADAjC,WAAYiC,gBAIhB,QAASpD,cAAalhB,UAAWukB,UAK7B,MAJAA,UAAWA,WAAY,EACnBvkB,YAAcwkB,4BACdC,aAAazkB,WAEZqiB,UAOMla,GAAGW,KAAKuZ,WANR0B,mBAAmB7C,aAAalhB,UAAWukB,UAC7ClgC,KAAK,SAAUC,MAEZ,MADA+9B,WAAY/9B,OAQ5B,QAASs+B,cAAaT,iBAClB,MAAO4B,oBAAmBnB,aAAaT,gBAAgBtE,UAAWsE,iBAC7D99B,KAAK,SAAUC,MAEZ,MADA+9B,WAAY/9B,OAKxB,QAASs8B,eAAc5gB,WAInB,MAHIA,aAAcwkB,4BACdC,aAAazkB,WAEZ0kB,WAOMvc,GAAGW,KAAK4b,YANRX,mBAAmBnD,cAAc5gB,WACnC3b,KAAK,SAAUC,MAEZ,MADAogC,YAAapgC,OAQ7B,QAAS09B,kBAAiBF,KACtB6C,YAAc7C,IAGlB,QAASe,sBACL8B,YAAc,KAGlB,QAASnE,oBACL,MAAOmE,aAGX,QAASF,cAAazkB,WAClBjT,WACA63B,6BAA6B5kB,WAGjC,QAASjT,YACLs1B,UAAY,KACZqC,WAAa,KACbC,YAAc,KAGlB,QAASC,8BAA6B5kB,WAClCwkB,2BAA6BxkB,UAGjC,QAAS4hB,yBAAwBiD,kBAC7B,MAAOd,oBAAmBe,qBAAqBD,kBApGnD,GAAIxC,WACAqC,WACAC,YACAH,2BAGAnD,aACE/5B,GAAI,EAAGi4B,KAAM,GAAIK,KAAM,QACvBt4B,GAAI,EAAGi4B,KAAM,GAAIK,KAAM,WA8F7B,QACIyB,WAAYA,WACZgD,cAAeA,cACfnD,aAAcA,aACd7B,WAAaA,WACbuD,aAAcA,aACdhC,cAAeA,cACfoB,iBAAkBA,iBAClBxB,iBAAkBA,iBAClBqC,mBAAoBA,mBACpBjB,wBAA0BA,4BCrH1C9hC,QAAQC,OAAO,aAAaogB,QAAQ,sBAC/B,oBAAqB,SAAUC,mBAC5B,YAeA,SAASwgB,eAActgB,KACnB,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,eAAeE,MAG5D,QAASskB,sBAAqBnD,kBAC1B,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,gBAAgB7P,WAAW2T,kBApB9G,GAAIT,cAAe,SAAU5gB,IAAKikB,UAC9BA,WAAaA,QACb,IAAIhkB,aAAcH,kBAAkBI,IAAI,UAGxC,OAAOD,aAAYE,IAAI,YAAaH,KAAKE,KAAK+jB,SAAUA,YAGxD3B,aAAe,SAAUtiB,IAAKykB,gBAC9B,GAAIxkB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAaH,KAAKsc,UAAUmI,gBAavD,QACI7D,aAAcA,aACdN,cAAeA,cACfgC,aAAcA,aACdkC,qBAAuBA,yBC/BnChlC,QAAQC,OAAO,WAEX,sBACA,UACA,WACA,SACA,YACA,UACA,cACA,UACA,eACA,YAIA,iBACA,UACA,MACA,aAEA,cACA,gBACA,gBACA,uBACA,sBACA,uBAKJD,QAAQC,OAAO,WAAWiV,OAAO,MAAO,WACpC,YACA,OAAO,UAAUgwB,KACb,IAAKA,IACD,MAAO,EAGX,IAMIC,SAASC,KAAMC,OANf/lB,MAAQ4lB,IAAII,WAAW/mB,OAAOlL,QAAQ,MAAO,GAQjD,QAAQiM,MAAM9D,QACV,IAAK,IACD2pB,QAAU,EACVC,KAAO9lB,MAAMimB,MAAM,EAAG,GACtBF,OAAS/lB,MAAMimB,MAAM,EACrB,MAEJ,KAAK,IACDJ,QAAU7lB,MAAM,GAChB8lB,KAAO9lB,MAAMimB,MAAM,EAAG,GACtBF,OAAS/lB,MAAMimB,MAAM,EACrB,MAEJ,KAAK,IACDJ,QAAU7lB,MAAMimB,MAAM,EAAG,GACzBH,KAAO9lB,MAAMimB,MAAM,EAAG,GACtBF,OAAS/lB,MAAMimB,MAAM,EACrB,MAEJ,KAAK,IACD,MAAOjmB,OAAMimB,MAAM,EAAG,GAAK,IAAMjmB,MAAMimB,MAAM,EAEjD,SACI,MAAOL,KASf,MANgB,KAAZC,UACAA,QAAU,IAGdE,OAASA,OAAOE,MAAM,EAAG,GAAK,IAAMF,OAAOE,MAAM,IAEzCJ,QAAU,KAAOC,KAAO,KAAOC,QAAQ9mB,UC7EvDve,QAAQC,OAAO,WAAWK,QAAQ,oBAAqB,iBAAkB,qBACrE,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIK,iBAAmBE,YAAa,SAEhCN,WACAykC,SACIvkC,MAAO,UACPC,MAAO,WACPC,eAAgBA,gBAEpBskC,iBACIxkC,MAAO,0BACPC,MAAO,gBACPC,eAAgBA,gBAEpBukC,sBACIzkC,MAAO,+BACPC,MAAO,gBACPC,eAAgBA,gBAEpBwkC,qBACI1kC,MAAO,8BACPC,MAAO,oBACPC,eAAgBA,gBAEpBykC,kBACI3kC,MAAO,2BACPC,MAAO,iBACPC,eAAgBA,gBAEpB0kC,mBACI5kC,MAAO,4BACPC,MAAO,kBACPC,eAAgBA,gBAEpB2kC,mBACI7kC,MAAO,4BACPC,MAAO,kBACPC,eAAgBA,gBAEpB4kC,sBACI9kC,MAAO,+BACPC,MAAO,qBACPC,eAAgBA,gBAEpB6kC,0BACI/kC,MAAO,mCACPC,MAAO,yBACPC,eAAgBA,gBAEpB8kC,4BACIhlC,MAAO,qCACPC,MAAO,2BACPC,eAAgBA,gBAEpB+kC,wBACIjlC,MAAO,iCACPC,MAAO,uBACPC,eAAgBA,gBAEpBglC,UACIllC,MAAO,WACPC,MAAO,aACPC,eAAgBA,gBAEpBqU,iBACIvU,MAAO,kBACPC,MAAO,oBACPC,gBACIK,YAAY,EACZJ,aAAa,EACb2C,YAAY,IAGpBqiC,cACInlC,MAAO,uBACPC,MAAO,+BACPC,gBACIE,YAAa,UAGrBglC,eACIplC,MAAO,gBACPC,MAAO,yBACPC,eAAgBA,gBAEpBmlC,oBACIrlC,MAAO,6BACPC,MAAO,+BACPC,eAAgBA,gBAIxBN,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAUykC,QAAQvkC,OACrBa,IAAKf,UAAUykC,QAAQtkC,MACvBa,YAAa,8BACbC,WAAY,cACZC,YAAa,aAEhBhB,MAAMF,UAAU4kC,oBAAoB1kC,OACjCa,IAAKf,UAAU4kC,oBAAoBzkC,MACnCa,YAAa,mCACbC,WAAY,mBACZC,YAAa,gBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,qBAG3EpB,MAAMF,UAAU0kC,gBAAgBxkC,OAC7Ba,IAAKf,UAAU0kC,gBAAgBvkC,MAC/Ba,YAAa,+BACbC,WAAY,eACZC,YAAa,WACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,gBAG3EpB,MAAMF,UAAU8kC,kBAAkB5kC,OAC/Ba,IAAKf,UAAU8kC,kBAAkB3kC,MACjCa,YAAa,iCACbC,WAAY,iBACZC,YAAa,cACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,kBAG3EpB,MAAMF,UAAU+kC,kBAAkB7kC,OAC/Ba,IAAKf,UAAU+kC,kBAAkB5kC,MACjCa,YAAa,iCACbC,WAAY,iBACZC,YAAa,cACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,oBAG3EpB,MAAMF,UAAUglC,qBAAqB9kC,OAClCa,IAAKf,UAAUglC,qBAAqB7kC,MACpCa,YAAa,oCACbC,WAAY,oBACZC,YAAa,iBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,qBAG3EpB,MAAMF,UAAU2kC,qBAAqBzkC,OAClCa,IAAKf,UAAU2kC,qBAAqBxkC,MACpCa,YAAa,wCACbC,WAAY,eACZC,YAAa,iBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,qBAG3EpB,MAAMF,UAAUilC,yBAAyB/kC,OACtCa,IAAKf,UAAUilC,yBAAyB9kC,MACxCa,YAAa,wCACbC,WAAY,wBACZC,YAAa,qBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,4BAG3EpB,MAAMF,UAAUklC,2BAA2BhlC,OACxCa,IAAKf,UAAUklC,2BAA2B/kC,MAC1Ca,YAAa,0CACbC,WAAY,0BACZC,YAAa,qBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,4BAG3EpB,MAAMF,UAAU6kC,iBAAiB3kC,OAC9Ba,IAAKf,UAAU6kC,iBAAiB1kC,MAChCa,YAAa,uCACbC,WAAY,uBACZC,YAAa,oBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,iBAG3EpB,MAAMF,UAAUmlC,uBAAuBjlC,OACpCa,IAAKf,UAAUmlC,uBAAuBhlC,MACtCa,YAAa,sCACbC,WAAY,sBACZC,YAAa,mBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,wBAG3EpB,MAAMF,UAAUolC,SAASllC,OACtBa,IAAKf,UAAUolC,SAASjlC,MACxBa,YAAa,+BACbC,WAAY,eACZC,YAAa,mBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,gCAG3EpB,MAAMF,UAAUyU,gBAAgBvU,OAC7Ba,IAAKf,UAAUyU,gBAAgBtU,MAC/Ba,YAAa,sCACbC,WAAY,GACZC,YAAa,aAEhBhB,MAAMF,UAAUqlC,aAAanlC,OAC1Ba,IAAKf,UAAUqlC,aAAallC,MAC5Ba,YAAa,mCACbC,WAAY,mBACZC,YAAa,gBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,6BAG3EpB,MAAMF,UAAUslC,cAAcplC,OAC3Ba,IAAKf,UAAUslC,cAAcnlC,MAC7Ba,YAAa,oCACbC,WAAY,oBACZC,YAAa,mBAEhBhB,MAAMF,UAAUulC,mBAAmBrlC,OAChCa,IAAKf,UAAUulC,mBAAmBplC,MAClCa,YAAa,mCACbC,WAAY,mBACZC,YAAa,sBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,gCCtOxFrC,QAAQC,OAAO,WAAWsC,KAAK,iBAAkB,SAASC,gBACxD,YAEAA,gBAAeC,IAAI,mCACjB,45JAwLFD,eAAeC,IAAI,wDACjB,yNAYFD,eAAeC,IAAI,qDACjB,ksDAyFFD,eAAeC,IAAI,oCACjB,2/EA6FFD,eAAeC,IAAI,iCACjB,szLAgNFD,eAAeC,IAAI,sCACjB,wXAwBFD,eAAeC,IAAI,0CACjB,85EAuGFD,eAAeC,IAAI,0CACjB,6xBAsCFD,eAAeC,IAAI,2CACjB;AA2LFD,eAAeC,IAAI,wCACjB,80KA2KFD,eAAeC,IAAI,iDACjB,unKA+KFD,eAAeC,IAAI,6CACjB,qnFAqFFD,eAAeC,IAAI,+CACjB,slNA+MFD,eAAeC,IAAI,sCACjB,ykLAuLFD,eAAeC,IAAI,wCACjB,09HA+IFD,eAAeC,IAAI,+CACjB;AAqKFD,eAAeC,IAAI,0CACjB,+lJA2JFD,eAAeC,IAAI,0CACjB,u3DAgGFD,eAAeC,IAAI,yCACjB,mrPA0RFD,eAAeC,IAAI,gDACjB,gxFA0HFD,eAAeC,IAAI,+CACjB,glCA4DFD,eAAeC,IAAI,yDACjB,gvFAkHFD,eAAeC,IAAI,gEACjB,krEAwGFD,eAAeC,IAAI,4CACjB,ojJAgMFD,eAAeC,IAAI,8BACjB;AA2RFD,eAAeC,IAAI,oCACjB,o4KAwMFD,eAAeC,IAAI,uCACjB,iDAIFD,eAAeC,IAAI,sCACjB,kjGAuHFD,eAAeC,IAAI,4CACjB;AAg7BFD,eAAeC,IAAI,wCACjB,4iLAiMFD,eAAeC,IAAI,+BACjB,qiIA+KFD,eAAeC,IAAI,iCACjB,olHAyJFD,eAAeC,IAAI,wCACjB,smJA8KFD,eAAeC,IAAI,+BACjB,whKAkNFD,eAAeC,IAAI,mCACjB,+xGCrjLJ,SAAUzC,SACN,YAYA,SAASumC,wBACL1Q,eACAlsB,gCASA,QAAStF,YACL,GAAI8f,SAAUxa,+BAA+BwZ,kBAC7C0S,gBAAeE,WAAW5R,QAAQ9c,IAAI9C,KAAK,SAASiiC,SAC7CA,UACC5iC,GAAGoT,SAAWwvB,QAAQpiB,UAAY,IAAMoiB,QAAQniB,SAChDzgB,GAAG6iC,IAAMD,QAAQE,IACjB9iC,GAAGwQ,UAAYoyB,QAAQn1B,eAbnC,GAAIzN,IAAKc,IACTd,IAAGoT,SAAW,KACdpT,GAAG6iC,IAAM,KACT7iC,GAAGwQ,UAAY,KAEf/P,WAnBJrE,QAAQC,OAAO,WAAW0E,UAAU,0BAChC5C,YAAa,wDACb6C,aAAc,KACd5C,YACI,iBACA,iCACAukC,2BA2BTriC,OAAOlE,SCpCVA,QAAQC,OAAO,WAAW+B,WAAW,oBAChC,IAAK,SAAU,oBAAqB,eAAgB,iCAAkC,iBAAkB,aAAc,UACnH,SAAUsF,EAAGxE,OAAQ+F,kBAAmBkL,aAAcpK,+BAAgCH,eAAgBF,QAASQ,SAC3G,YAEAhH,QAAOwH,SAAU,CAEjB,IAAI+Y,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,GACpEs/B,oBAAsB5yB,aAAa6yB,aAEvC9jC,QAAO6D,OACHkgC,oBAAqB,GACrBvK,kBAAmBhzB,QAAQ,uFAC3B+yB,sBAAuB/yB,QAAQ,iGAGnCE,eACKq0B,gBAAgBxa,iBAChB9e,KAAK,SAAUC,MACZ1B,OAAOwT,kBACPxT,OAAO6D,MAAMkgC,oBAAsBriC,OAJ3CgF,SAMW,SAAUmN,UACb7T,OAAO8T,aAAaD,YAP5BnN,WASa,WACL1G,OAAOwH,SAAU,IAGzBxH,OAAOi5B,kBAAoB,WACvBlzB,kBAAkBK,YAAYC,SAAU,cAAc,IAI1DrG,OAAOk5B,WAAa,WACZl5B,OAAOgkC,iBAAiBt8B,WAK5B1H,OAAO2H,WAAY,EAEnBjB,eACK40B,iBAAiB/a,iBACjB9e,KAAK,WACFzB,OAAO4X,MAAM,4BAA4B,EACzC,IAAIxR,aACAC,SAAUw9B,oBACVlf,MACIpgB,GAAIgc,iBAGZxa,mBAAkBK,WAAWA,YAAY,KAVjDM,SAYW,WACHM,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,sCAGzCxG,OAAO2H,WAAY,OC1DnC,WACI,YACA,IAAIs8B,uBAAwB,SAAUjI,UAClC,MAAO,UAAUzW,GAAIvlB,OAAQiR,aAAc8hB,eAAgBmR,cAAezlB,OAAQ5X,gCAsB9E,QAASi3B,cACL99B,OAAOmkC,gBAAiB,EACxBnkC,OAAOwT,iBACP,IAAI+M,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,GAEpE6/B,kBAAoBrR,eAAeE,WAAW1S,iBAC9C8jB,wBAA0BtR,eAAeuR,kBAE7C/e,IAAG8H,KAAK+W,kBAAmBC,0BAA0B5iC,KAAK,SAAU8iC,SAChE,GAAIb,SAAUa,QAAQ,GAClB7iC,KAAO6iC,QAAQ,EAEnBvkC,QAAO6D,MAAM2gC,gBAAgBC,OACzBzH,KAAM,QACNt4B,GAAIhD,KAAKujB,kBAAkByf,OAAOD,OAEtCzkC,OAAO6D,MAAM2gC,gBAAgBG,WACzB3H,KAAM,YACNt4B,GAAIhD,KAAKujB,kBAAkByf,OAAOC,WAElCjjC,KAAKujB,kBAAkByf,OAAOE,OAC9B5kC,OAAO6D,MAAM2gC,gBAAgBG,WACzB3H,KAAM,OACNt4B,GAAIhD,KAAKujB,kBAAkByf,OAAOE,MAG1C,IAAIC,YAAaX,cAAcY,aAAa,GAAIt2B,MAAKk1B,QAAQn1B,aAAa0yB,sBAAsB0C,IAC5FoB,gBAAmBF,WAAa,GAAM7kC,OAAO6D,MAAM2gC,gBAAgBC,MAAQzkC,OAAO6D,MAAM2gC,gBAAgBG,SAC5GK,iBAAgBD,iBAChBE,kBAAkBlG,oBArBtBxZ,SAuBO,SAAU1R,UACb7T,OAAO8T,aAAaD,YAxBxB0R,WA0BS,WACLvlB,OAAOmkC,gBAAiB,IAIhC,QAASa,iBAAgBD,iBACrB/kC,OAAOklC,oBAAqB,EAC5BllC,OAAOwT,kBACPxT,OAAO6D,MAAMshC,oBAAsBJ,gBACnChS,eAAeqS,iBAAiBhlB,cAAc7b,GAAIwgC,gBAAgBrgC,IAC7DjD,KAAK,SAAUC,MACZ1B,OAAO6D,MAAMwhC,qBAAuB7gC,EAAE4W,QAAQ1Z,KAAK4jC,QAAS,SAAUC,iBACrB,IAAzCA,gBAAgBC,cAAc9sB,OAC9B6sB,gBAAgBC,cAAc7sB,MAC1BqkB,KAAM,GACNyI,iBAAkB,KAClBC,QAAS,KAGb1lC,OAAO6D,MAAM8hC,oBAAqB,MAVlD5S,SAcW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAf5Bkf,WAiBa,WACL/yB,OAAOklC,oBAAqB,IAIxC,QAASD,mBAAkBlG,kBACvBhM,eAAe6S,yBAAyB7G,kBAG5C,QAAS4B,aACL3gC,OAAO6lC,YAAa,CACpB,IAAIhnB,eAAgBJ,OAAOK,MACvB7f,YAAa,+CACbC,WAAY,wBACZyX,MAAO3W,OACPZ,SACI0mC,qBAAsB,WAClB,MAAO9lC,QAAO6D,MAAMwhC,wBAKhCxmB,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAO6lC,YAAa,IAxG5B7lC,OAAOmkC,gBAAiB,EACxBnkC,OAAOklC,oBAAqB,EAC5BllC,OAAO6D,OACHwhC,qBAAsB,KACtBM,mBAAoB,GACpBR,oBAAqB,GACrBX,iBACIC,MAAO,GACPE,UAAW,GACXC,KAAM,IAId,IAAIxkB,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,KA0FjCP,QAAOogC,WACHC,YAAa9hB,QAEjBve,OAAOsgC,YAAc,WACoB/hB,SAAjCve,OAAOogC,UAAUC,aACjBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC;EAGzDrgC,OAAO+lC,iBAAmBd,kBAC1BjlC,OAAOglC,gBAAkBA,gBACzBhlC,OAAO2gC,UAAYA,UAEf3E,UACA8B,eAKRkI,kBAAoB,GAAI/B,wBAAsB,GAC9CgC,wBAA0B,GAAIhC,wBAAsB,EACxD/mC,SAAQC,OAAO,WAAW+B,WAAW,qBAChC,KAAM,SAAU,eAAgB,iBAAkB,gBAAiB,YAAa,iCAC7E8mC,oBACR9oC,QAAQC,OAAO,WAAW+B,WAAW,2BAChC,KAAM,SAAU,eAAgB,iBAAkB,gBAAiB,YAAa,iCAC7E+mC,6BC7IZ,WACI,YACA,IAAIC,oBAAqB,SAAUlK,UAC/B,MAAO,UAAUh8B,OAAQiR,aAAc8hB,eAAgBlsB,+BAAgC4X,OAAQ0nB,iBAAkBC,4BAA6B5/B,QAASQ,QAAS+R,gBAY5J,QAAS+kB,cACL99B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACPuf,eACKsT,cAAcjmB,cAAc7b,IAC5B9C,KAAK,SAAUC,MACZ1B,OAAOsmC,WAAa9hC,EAAE9C,KAAK02B,SAAS3uB,IAAI,SAAU88B,OAC9C,MAAIA,OAAMC,gBAAgB9tB,QACtB6tB,MAAMC,gBAAkBhiC,EAAE+hC,MAAMC,iBAAiB/8B,IAAI,SAAUg9B,gBAC3D,MAAOjiC,GAAEkiC,OAAOD,gBAAiBE,aAAa,MAC/CnqB,QACI+pB,QAEPA,MAAM1O,OAASrzB,EAAEkiC,OAAOH,MAAM1O,QAAS8O,aAAa,IAC7CJ,SAEZ/pB,QACHoqB,oBAdR7T,SAgBW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAjB5Bkf,WAmBa,WACL/yB,OAAOwH,SAAU,IAI7B,QAASq/B,yBAAwB1nC,YAAasnC,gBAC1CzmC,OAAOif,kBAAmB,CAE1B,IAAI1b,cACAO,MAAO3E,YACP87B,UAAW7a,cAAc7b,GACzByO,WAAYyzB,eAAeK,cAC3Bn0B,aAAco0B,uBACdl0B,iBAAkBm0B,0CAClB9zB,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAOif,kBAAmB,IAIlC,QAAS8nB,wBAAuBz0B,WAAYG,iBACxC,MAAO2zB,6BAA4Ba,cAAc30B,WAAY8N,cAAc7b,GAAIkO,iBAC1EhR,KAAK,SAAUC,MAEZ,MADAklC,mBACOllC,OAInB,QAASslC,2CAA0C10B,YAC/C,MAAO8zB,6BAA4Bc,kCAAkC50B,WAAY8N,cAAc7b,IAC1F9C,KAAK,SAAUC,MAEZ,MADAklC,mBACOllC,OAInB,QAASylC,6BAA4BhoC,YAAasnC,gBAE9C,MADAA,gBAAeE,aAAc,EACtBR,iBAAiBc,cAAc7mB,cAAc7b,GAAIkiC,eAAeK,eAClErlC,KAAK,SAAUC,MAEZ,MADAklC,oBACQ7vB,KAAMrV,KAAKqV,KAAMG,UAAWxV,KAAKwV,UAAWF,SAAU7X,YAAc,IAAMihB,cAAc0O,UAAY1O,cAAc2O,YAH3HoX,SAKI,WACHn/B,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0CANlC2/B,WAQM,WACLM,eAAeE,aAAc,IAIzC,QAASS,0BAAyBjoC,YAAakoC,UAC3CrnC,OAAOif,kBAAmB,CAE1B,IAAI1b,cACAO,MAAO3E,YACP4T,iBAAkB,GAClBkoB,UAAW7a,cAAc7b,GACzByO,WAAYq0B,SACZ10B,aAAc20B,uBACdz0B,iBAAkBy0B,uBAClBp0B,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAOif,kBAAmB,IAIlC,QAASqoB,wBAAuBh1B,YAC5B,MAAO6zB,kBAAiBmB,uBAAuBlnB,cAAc7b,GAAI+N,YAC5D7Q,KAAK,SAAUC,MAEZ,MADAklC,mBACOllC,OAInB,QAAS6lC,8BAA6BC,WAElC,MADAA,WAAUb,aAAc,EACjBR,iBAAiBmB,uBAAuBlnB,cAAc7b,GAAIijC,UAAU9iC,IACtEjD,KAAK,SAAUC,MAEZ,MADAklC,oBACQ7vB,KAAMrV,KAAKqV,KAAMG,UAAW,MAAOF,SAAUwwB,UAAUtjC,YAAc,IAAMkc,cAAc0O,UAAY1O,cAAc2O,YAH5HoX,SAKI,WACHn/B,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0CANlC2/B,WAQM,WACLqB,UAAUb,aAAc,IAIpC,QAASC,mBACL7T,eAAe0U,uBAAuB1I,kBAO1C,QAASuB,eACgC/hB,SAAjCve,OAAOogC,UAAUC,aACjBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC,YAnKzDrgC,OAAOwH,SAAU,EACjBxH,OAAOif,kBAAmB,CAE1B,IAAImB,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,KAiJjCP,QAAOogC,WACHC,YAAa9hB,QAYdyd,UACC8B,aAGJ99B,OAAO6mC,wBAA0BA,wBACjC7mC,OAAO+mC,uBAAyBA,uBAChC/mC,OAAOunC,6BAA+BA,6BACtCvnC,OAAOonC,yBAA2BA,yBAClCpnC,OAAOmnC,4BAA8BA,4BACrCnnC,OAAOsnC,uBAAyBA,uBAChCtnC,OAAOsgC,YAAcA,cAGzBoH,eAAiB,GAAIxB,qBAAmB,GACxCyB,qBAAuB,GAAIzB,qBAAmB,EAElDhpC,SAAQC,OAAO,WAAW+B,WAAW,kBAChC,SAAU,eAAgB,iBAAkB,iCAAkC,YAAa,mBAAoB,8BAA+B,aAAc,UAC7J,iBACIwoC,iBACRxqC,QAAQC,OAAO,WAAW+B,WAAW,wBAChC,SAAU,eAAgB,iBAAkB,iCAAkC,YAAa,mBAAoB,8BAA+B,aAAc,UAC7J,iBACIyoC,0BCjMZ,WACI,YACA,IAAIC,6BAA8B,SAAU5L,UACxC,MAAO,UAAUx3B,EAAGxE,OAAQiR,aAAc8hB,eAAgBlsB,gCAetD,QAASghC,0BAAyB9I,kBAC9BhM,eAAe+U,gCAAgC/I,kBAGnD,QAASjB,cACL99B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACPuf,eACKgV,uBAAuB3nB,cAAc7b,IACrC9C,KAAK,SAAUC,MACZ1B,OAAO6D,MAAMmkC,oBAAsBtmC,KAAK02B,UAHhDrF,SAKW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAN5Bkf,WAQa,WACL/yB,OAAOwH,SAAU,IAEzBqgC,yBAAyB9I,kBAO7B,QAASuB,eACgC/hB,SAAjCve,OAAOogC,UAAUC,aACjBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC,YA5CzD,GAAIjgB,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,KAGjCP,QAAO6D,OACHmkC,oBAAqB,MAyBzBhoC,OAAOogC,WACHC,YAAa9hB,QAYbyd,UACA8B,aAGJ99B,OAAO6nC,yBAA2BA,yBAClC7nC,OAAOsgC,YAAcA,cAIzB2H,wBAA0B,GAAIL,8BAA4B,GAC1DM,8BAAgC,GAAIN,8BAA4B,EAEpE1qC,SAAQC,OAAO,WAAW+B,WAAW,2BAChC,IAAK,SAAU,eAAgB,iBAAkB,iCAC9C+oC,0BACR/qC,QAAQC,OAAO,WAAW+B,WAAW,iCAChC,IAAK,SAAU,eAAgB,iBAAkB,iCAC9CgpC,mCCrEX,WACG,YACA,IAAIC,iBAAkB,SAAUC,uBAAwBC,mBACpD,MAAO,UAASroC,OAAQulB,GAAIwN,eAAgBlsB,+BAAgC4X,OAAQ/X,eAAgBX,kBAAmB9F,OAAQkmC,iBAAkB3/B,QAASQ,QAAS+R,gBAmC/J,QAASuvB,eACL,MAAOvV,gBAAeuV,YAAYloB,cAAc7b,IAC3C9C,KAAK,SAAUC,MACZ,GAAIgiC,SAAUhiC,KAAK,GACflE,OAASkE,KAAK,EAElB1B,QAAO0iC,QAAQ6F,KAAKl0B,SAAWqvB,QAAQpiB,UAAY,IAAMoiB,QAAQniB,SACjEvhB,OAAO0iC,QAAQ6F,KAAK7jC,GAAKg/B,QAAQh/B,GACjC1E,OAAO0iC,QAAQ6F,KAAK3E,IAAMF,QAAQE,IAClC5jC,OAAOwO,KAAOk1B,QAAQn1B,YACtBvO,OAAOshB,UAAYoiB,QAAQpiB,UAC3BthB,OAAOuhB,SAAWmiB,QAAQniB,SAE1BvhB,OAAO0iC,QAAQgC,OAASlnC,SAIpC,QAASgrC,2BACL,MAAO9hC,gBAAe80B,uBAAuBpb,cAAc7b,IACtD9C,KAAK,SAAUC,MACZ+mC,uBAAyB/mC,KACzB1B,OAAO0oC,YAAcD,yBAMjC,QAASE,kBACL3oC,OAAOwH,SAAU,EACjBxH,OAAOwT,iBAEP,IAAIo1B,oBAAqBN,cACrBO,+BAAiCL,yBAErCjjB,IAAG8H,KAAKwb,+BAAgCD,qBAAqBnnC,KAAK,WAC9D,IAAKgnC,uBAAwB,CACzB,GAAIK,aAAc7oC,OAAOK,QAAQC,KAC7BwoC,iBAAmBD,YAAYv4B,QAAQ63B,uBAAwB,GACnEriC,mBAAkBK,YAAYC,SAAUgiC,kBAAmB1jB,MAAOmf,cAAeiF,uBAJzFxjB,SAMS,SAAU1R,UACf7T,OAAO8T,aAAaD,YAPxB0R,WAQW,WACPvlB,OAAOwH,SAAU,IAMzB,QAASwhC,wBAELhpC,OAAOif,kBAAmB,EAC1BgqB,mBAEA,IAAIpqB,eAAgBJ,OAAOK,MACvB7f,YAAa,gDACbC,WAAY,yBACZ8c,KAAM,KACN5c,SACIghB,cAAe,WACX,MAAOvZ,gCAA+BwZ,sBAKlDxB,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAOif,kBAAmB,IAIlC,QAASiqB,0BACLlpC,OAAOif,kBAAmB,EAC1BgqB,mBAEA,IAAI1lC,cACAO,MAAO0C,QAAQ,kBACfuM,iBAAkBqN,cAAc0O,UAAY1O,cAAc2O,SAAW,qBACrE/b,WAAYoN,cAAc7b,GAC1BoO,aAAcw2B,sBACdt2B,iBAAkBu2B,sBAClBl2B,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAOif,kBAAmB,IAMlC,QAASkqB,uBAAsB72B,WAAYG,iBACvC,GAAI2K,WAAYgD,cAAc7b,EAC9B,OAAO4hC,kBAAiBgD,sBAAsB/rB,UAAW3K,iBAK7D,QAAS22B,yBACL,GAAIhsB,WAAYgD,cAAc7b,GAC1B8kC,uBAAyB,SAE7B,OADAJ,qBACO9C,iBAAiBmD,iBAAiBlsB,WACpC3b,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMG,UAAW,MAAOF,SAAU,iBAAwBoJ,cAAclM,YAF5FiyB,SAII,WACHkD,uBAAyB,UACzBriC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0CANlC2/B,WAQM,WACLoD,kBAAkBF,0BAY9B,QAASJ,qBACLlW,eAAeyW,kBAAkBzK,kBAGrC,QAASwK,mBAAkBE,mBACvBC,qBAAqBC,kBAAoBF,kBACzC1W,eAAe6W,mBAAmBF,sBA5KtC1pC,OAAOwH,SAAU,EACjBxH,OAAO0oC,aAAc,EACrB1oC,OAAO6pC,wBAAyB,EAChC7pC,OAAO8pC,yBAA0B,EACjC9pC,OAAO0iC,SACH6F,MAASl0B,SAAU,GAAI3P,GAAI,GAAIk/B,IAAK,IACpCc,OAAU,GAGd,IAAItkB,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,MAE7BkoC,wBAAyB,EAEzBiB,sBACAK,eAAgB,4DAChBJ,kBAAmB,UACnBK,gBAAiB,EAGrBhqC,QAAOiqC,sBAAwB,WAC3BjqC,OAAO6pC,wBAAyB,EAChC7pC,OAAO8pC,yBAA0B,GAErC9pC,OAAOkqC,qBAAuB,WAC1BlqC,OAAO6pC,wBAAyB,EAChC7pC,OAAO8pC,yBAA0B,GAiDrCnB,gBA+EA,IAAIwB,0BAA2BnqC,OAAO0W,IAAI,2BAA4B,SAAUyG,MAAOzb,MACnF1B,OAAO0oC,YAAchnC,MAGzB1B,QAAO0W,IAAI,WAAY,WACnByzB,6BAYJnqC,OAAOgpC,qBAAuBA,qBAC9BhpC,OAAOkpC,uBAAyBA,yBAGpCkB,YAAc,GAAIjC,iBAAgB,WAAY,gBAC9CkC,kBAAoB,SAAUrqC,OAAQulB,GAAIwN,eAAgBlsB,+BAAgC4X,OAAQ/X,eAAgBX,kBAAmB9F,OAAQkmC,iBAAkB3/B,QAASQ,SACxK,GAAImhC,iBAAgB,iBAAkB,sBAAsBzH,KAAK9+B,KAAM5B,OAAQulB,GAAIwN,eAAgBlsB,+BAAgC4X,OAAQ/X,eAAgBX,kBAAmB9F,OAAQkmC,iBAAkB3/B,QAASQ,SACjNhH,OAAOsqC,oBAA+C,SAAzBrqC,OAAOQ,OAAOggC,OAE/CvjC,SAAQC,OAAO,WAAW+B,WAAW,eAChC,SAAU,KAAM,iBAAkB,iCAAkC,YAAa,iBAAkB,oBAAqB,SAAU,mBAAoB,aAAc,UACrK,iBACIkrC,cACRltC,QAAQC,OAAO,WAAW+B,WAAW,qBAChC,SAAU,KAAM,iBAAkB,iCAAkC,YAAa,iBAAkB,oBAAqB,SAAU,mBAAoB,aAAc,UACrK,iBACImrC,uBCpMZ,WACI,YAMA,SAASE,wBAELjc,QAAQtQ,IAAI,UAEZ,IAAIld,IAAKc,IAETd,IAAG0G,SAAU,EACb1G,GAAG0pC,QAAU,KAXjBttC,QAAQC,OAAO,WAAW+B,WAAW,wBACjCqrC,0BCJR,WACI,YACA,IAAIE,yBAA0B,SAAUzO,UACpC,MAAO,UAAUh8B,OAAQiR,aAAcwN,OAAQiX,QAAS3C,eAAgB/uB,YAAagD,QAASR,QAASD,KAAMM,gCAyBzG,QAAS6jC,cACL1qC,OAAO2qC,wBAA0B,KACjC3qC,OAAO4qC,MAAQ5qC,OAAO4qC,KACtB5qC,OAAO6qC,WAAY,EACnB7qC,OAAO8qC,uBAAuB5W,eAGlC,QAAS6W,mBAAkBn1B,OACvB,MAAO8f,SAAQ,OAAO9f,OAG1B,QAASo1B,cACLhrC,OAAO6qC,WAAa7qC,OAAO6qC,UAG/B,QAASI,eACLjrC,OAAO4qC,MAAQ5qC,OAAO4qC,IAEtB,IAAIM,KAAMlrC,OAAO2qC,wBAA0BnmC,EAAEkF,UAAU1J,OAAOmrC,cAE9DC,YAAW3pC,KAAK,SAAUC,MACtBwpC,IAAIG,OAAS7mC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIG,QAAUH,IAAIG,OAAO3mC,OAE5D4mC,aAAa7pC,KAAK,SAAUC,MACxBwpC,IAAIK,SAAW/mC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIK,UAAYL,IAAIK,SAAS7mC,OAElE8mC,SAAS/pC,KAAK,SAAUC,MACpBwpC,IAAIO,KAAOjnC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIO,MAAQP,IAAIO,KAAK/mC,OAEtDgnC,kBAAkBjqC,KAAK,SAAUC,MAC7BwpC,IAAIS,cAAgBnnC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIS,eAAiBT,IAAIS,cAAcjnC,OAEjFknC,cAAcnqC,KAAK,SAAUC,MACzBwpC,IAAIW,iBAAmBrnC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIW,kBAAoBX,IAAIW,iBAAiBnnC,KACtFwmC,IAAIY,iBAAmBtnC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIY,kBAAoBZ,IAAIY,iBAAiBpnC,KACtFwmC,IAAIa,iBAAmBvnC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIa,kBAAoBb,IAAIa,iBAAiBrnC,KACtFwmC,IAAIc,iBAAmBxnC,EAAEC,KAAK/C,MAAOgD,GAAIwmC,IAAIc,kBAAoBd,IAAIc,iBAAiBtnC,OAI9F,QAASunC,0BAAyBC,UACzBA,SAAWlsC,OAAO8qC,wBAAwBzW,QAC3Cr0B,OAAOmsC,QAAS,EAChBnsC,OAAO2qC,wBAAwByB,aAAerB,kBAAkB/qC,OAAO2qC,wBAAwByB,cAC/FpsC,OAAO2qC,wBAAwB0B,aAAetB,kBAAkB/qC,OAAO2qC,wBAAwB0B,cAC/FrsC,OAAO2qC,wBAAwB2B,aAAevB,kBAAkB/qC,OAAO2qC,wBAAwB2B,cAC/FtsC,OAAO2qC,wBAAwB4B,aAAexB,kBAAkB/qC,OAAO2qC,wBAAwB4B,cAE/FxZ,eAAeyZ,cAAcpsB,cAAc7b,GAAIvE,OAAO2qC,yBACjDlpC,KAAK,SAAUC,MACZ+qC,YAAY/qC,KAAK02B,SACjBp4B,OAAO4qC,MAAQ5qC,OAAO4qC,MACrBsB,SAAWlsC,OAAO8qC,wBAAwB5W,eAC3CltB,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,wCAL3CusB,SAOW,SAAUlf,UACbtN,KAAKqK,MAAMiD,UACX7M,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,2DATzCusB,WAWa,WACL/yB,OAAOmsC,QAAS,KAIxBnlC,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,mGAGvCxG,OAAO8qC,uBAAuB5W,eAGlC,QAASuY,aAAY/qC,MACjB1B,OAAOmrC,cAAgBzpC,MACnBA,KAAK0qC,cAAgB1qC,KAAK2qC,cAC1B3qC,KAAK4qC,cAAgB5qC,KAAK6qC,gBAC1BvsC,OAAO0sC,gBAAiB,IAExBhrC,KAAKirC,eAAiBjrC,KAAKkrC,iBAC3B5sC,OAAO6sC,iBAAkB,GAIjC,QAASC,gBAAeC,OACpB/sC,OAAO2qC,wBAAwB1M,WAAWnlB,OAAOi0B,MAAO,GACxD/sC,OAAO8qC,uBAAuBkC,YAGlC,QAASluB,QAEL,GAAID,eAAgBJ,OAAOK,MACvB7f,YAAa,4CACbC,WAAY,oBACZ8c,KAAM,KACN5c,SACI0iC,WAAY,WACR,MAAO9hC,QAAO2qC,wBAAwB1M,cAKlDpf,eAAc/B,OAAOrb,KAAK,SAAUqgC,YAChC9hC,OAAO2qC,wBAAwB1M,WAAa6D,WAC5C9hC,OAAO8qC,uBAAuBkC,cAItC,QAASC,mBAAkBlO,kBACvBhM,eAAema,yBAAyBnO,kBAG5C,QAASjB,cACL99B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACPuf,eAAeoa,0BAA0BntC,QACzC+yB,eAAeuV,YAAYloB,cAAc7b,IACpC9C,KAAK,SAAUC,MACZ+qC,YAAY/qC,KAAK,IACjB1B,OAAOxC,OAASkE,KAAK,KAH7BqxB,SAKW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAN5Bkf,WAQa,WACL/yB,OAAOwH,SAAU,IAEzBylC,kBAAkBlO,kBApJtB/+B,OAAOwH,SAAU,EACjBxH,OAAO4qC,MAAO,EACd5qC,OAAO6qC,WAAY,EACnB7qC,OAAO0sC,gBAAiB,EACxB1sC,OAAO6sC,iBAAkB,EACzB7sC,OAAOotC,6BAA+B,KACtCptC,OAAO4R,WAAa,kCACpB5R,OAAOqtC,SAAW,uBAElB,IAAIjtB,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,MAG7B6qC,WAAapnC,YAAYe,QAAQ,UAAW/E,OAAQ,eACpDsrC,aAAetnC,YAAYe,QAAQ,eAAgB/E,OAAQ,iBAC3DwrC,SAAWxnC,YAAYe,QAAQ,WAAY/E,OAAQ,aACnD0rC,kBAAoB1nC,YAAYe,QAAQ,oBAAqB/E,OAAQ,sBACrE4rC,cAAgB5nC,YAAYe,QAAQ,YAAa/E,OAAQ,aAC7DgE,aAAYe,QAAQ,gBAAiB/E,OAAQ,kBAiI7CA,OAAOogC,WACHC,YAAa9hB,QAEjBve,OAAOsgC,YAAc,WACmB/hB,SAAjCve,OAAOogC,UAAUC,aAEhBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC,aAGzDrgC,OAAOgrC,WAAaA,WACpBhrC,OAAOitC,kBAAoBA,kBAC3BjtC,OAAO0qC,WAAaA,WACpB1qC,OAAOirC,YAAcA,YACrBjrC,OAAO8e,KAAOA,KACd9e,OAAO8sC,eAAiBA,eACxB9sC,OAAOisC,yBAA2BA,yBAE/BjQ,UACC8B,eAKRwP,oBAAsB,GAAI7C,0BAAwB,GAClD8C,0BAA4B,GAAI9C,0BAAwB,EAE5DvtC,SAAQC,OAAO,WAAW+B,WAAW,uBAChC,SAAU,eAAgB,YAAa,UAAW,iBAAkB,cAAe,UAAW,aAAc,OAAQ,iCACjHouC,sBACRpwC,QAAQC,OAAO,WAAW+B,WAAW,6BAChC,SAAU,eAAgB,YAAa,UAAW,iBAAkB,cAAe,UAAW,aAAc,OAAQ,iCACjHquC,+BC9LZ,WACI,YACA,IAAIC,kBAAmB,SAAUxR,UAC7B,MAAO,UAAUx3B,EAAGxE,OAAQiR,aAAc8hB,eAAgBlsB,gCAoCtD,QAASi3B,cACL99B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACPuf,eACK0a,YAAYltB,iBACZ9e,KAAK,SAAUC,MACZ1B,OAAO0tC,SAAWlpC,EAAEiF,IAAI/H,KAAM,SAAUmW,SACpC,MAAOrT,GAAEk5B,SAAS7lB,SAAU81B,MAAM,MAEtC3tC,OAAO4tC,OAAO5tC,OAAO6tC,QAAQC,UANrC/a,SAQW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAT5Bkf,WAWa,WACL/yB,OAAOwH,SAAU,IAlD7BxH,OAAOO,KAAO,WACdP,OAAOwH,SAAU,EACjBxH,OAAO6tC,SAAWC,OAAQ,EAAGC,WAAY,UACzC/tC,OAAOguC,gBACHtpC,GAAI,EAAGs4B,KAAM,QACbt4B,GAAI,EAAGs4B,KAAM,WACbt4B,GAAI,EAAGs4B,KAAM,cAGjB,IAAIzc,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,EAExEvE,QAAOiuC,OAAS,SAAgBC,MACxBA,KAAKC,QACLD,KAAKP,MAAQO,KAAKP,OAI1B3tC,OAAO4tC,OAAS,SAAgBQ,aAC5BpuC,OAAO6tC,QAAQC,OAASM,YACxBpuC,OAAO6tC,QAAQE,WAAavpC,EAAEC,KAAKzE,OAAOguC,eAAiBtpC,GAAI0pC,cAAepR,IAC9E,IAAIqR,gBAAiB7pC,EAAE4N,OAAOpS,OAAO0tC,SAAU,SAAUlR,MACrD,MAAsC,KAAlC8R,OAAOtuC,OAAO6tC,QAAQC,SACf,EAEgC,IAAlCQ,OAAOtuC,OAAO6tC,QAAQC,UAClBtR,KAAK9Z,SAEyB,IAAlC4rB,OAAOtuC,OAAO6tC,QAAQC,SACnBtR,KAAK9Z,SADZ,QAIT1iB,QAAOuuC,iBAAmBF,eAC1BruC,OAAOwuC,SAAWH,eAAe31B,QAsBrC1Y,OAAOogC,WACHC,YAAa9hB,QAEjBve,OAAOsgC,YAAc,WACmB/hB,SAAjCve,OAAOogC,UAAUC,aAEhBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC,aAGtDrE,UACC8B,eAKR2Q,aAAe,GAAIjB,mBAAiB,GACpCkB,mBAAqB,GAAIlB,mBAAiB,EAE9CtwC,SAAQC,OAAO,WAAW+B,WAAW,gBAChC,IAAK,SAAU,eAAgB,iBAAkB,iCAClDuvC,eACJvxC,QAAQC,OAAO,WAAW+B,WAAW,sBAChC,IAAK,SAAU,eAAgB,iBAAkB,iCAClDwvC,wBCrFR,WACI,YACA,IAAIC,oBAAqB,SAAU3S,UAC/B,MAAO,UAAUx3B,EAAGxE,OAAQiR,aAAc8hB,eAAgBlsB,gCAkBtD,QAASi3B,cACL99B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACPuf,eACK6b,cAAcxuB,cAAc7b,IAC5B9C,KAAK,SAAUC,MACZ1B,OAAO6uC,WAAarqC,EAAEiF,IAAI/H,KAAM,SAAUmW,QAASk1B,OAC/C,MAAOvoC,GAAEk5B,SAAS7lB,SACdnT,GAAIqoC,MACJY,MAAM,EAENmB,KAAMj3B,QAAQ3T,YAAc2T,QAAQ3T,YAAYwU,OAAS,IAAK,QAR9Eqa,SAYW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAb5Bkf,WAea,WACL/yB,OAAOwH,SAAU,IAEzBunC,gBAAgBhQ,kBAGpB,QAASgQ,iBAAgBhQ,kBACrBhM,eAAeic,uBAAuBjQ,kBA1C1C/+B,OAAOO,KAAO,aACdP,OAAOwH,SAAU,CAEjB,IAAI4Y,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,KAGjCP,QAAOiuC,OAAS,SAAgBgB,OACxBA,KAAKd,OAASc,KAAKH,QACnBG,KAAKtB,MAAQsB,KAAKtB,OAgC1B3tC,OAAOogC,WACHC,YAAa9hB,QAEjBve,OAAOsgC,YAAc,WACmB/hB,SAAjCve,OAAOogC,UAAUC,aAEhBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC,aAGzDrgC,OAAO+uC,gBAAkBA,gBAEtB/S,UACC8B,eAKRoR,eAAiB,GAAIP,qBAAmB,GACxCQ,qBAAuB,SAAU3qC,EAAGxE,OAAQiR,aAAc8hB,eAAgBlsB,+BAAgC4X,QAC1G,GAAIkwB,qBAAmB,GAAOjO,KAAK9+B,KAAM4C,EAAGxE,OAAQiR,aAAc8hB,eAAgBlsB,gCAClF7G,OAAO2gC,UAAY,SAASyO,QACxB,GAAIvwB,eAAgBJ,OAAOK,MACvB7f,YAAa,0CACbC,WAAY,mBACZyX,MAAO3W,OACPZ,SACIyhC,SAAU,WACN,OAAO,GAEXC,aAAc,WACV,GAAIuO,WAAY7qC,EAAEC,KAAKzE,OAAO6uC,YAAcnqC,GAAI0qC,SAC5CtO,aACI,QAAU,GAAItyB,MAAK6gC,UAAUC,WAAWrO,qBAAuB,cACrDoO,UAAUrS,KAAO,cACjBqS,UAAUnrC,YAAc,QAC1C,OAAO48B,iBAInBjiB,eAAc/B,OAAOrb,KAAK,eAKlCvE,SAAQC,OAAO,WAAW+B,WAAW,kBAChC,IAAK,SAAU,eAAgB,iBAAkB,iCAC9CgwC,iBACRhyC,QAAQC,OAAO,WAAW+B,WAAW,wBAChC,IAAK,SAAU,eAAgB,iBAAkB,iCAAkC,YAChFiwC,0BCtGZ,WACI,YACA,IAAII,2BAA4B,SAAUvT,UACtC,MAAO,UAAUh8B,OAAQiR,aAAc8hB,eAAgBlsB,+BAAgC4X,OAAQjU,gBAAiB27B,iBAAkBC,4BAA6Bp/B,QAASR,QAASuS,gBAuB7K,QAAS+kB,cACL99B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACPuf,eACKyc,qBAAqBzQ,kBACrBt9B,KAAK,SAAUC,MACZ+tC,wBAAwB1Q,kBACxB/+B,OAAO6D,MAAM6rC,oBAAsBlrC,EAAE9C,KAAKguC,qBAAqBjmC,IAAI,SAAU88B,OACzE,MAAO/hC,GAAEkiC,OAAOH,OAAQI,aAAa,MACtCnqB,QAEHxc,OAAO6D,MAAM8rC,gBAAkBjuC,KAAKkuC,UAChCluC,KAAKkuC,WAAaluC,KAAKkuC,UAAUl3B,QAAUm3B,iBAC3C7vC,OAAO6D,MAAMisC,eAAiBtrC,EAAEC,KAAK/C,KAAKkuC,WAAY1rC,YAAa2rC,eAAetvC,QAAUmB,KAAKkuC,UAAU,MAVvH7c,SAaW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAd5Bkf,WAgBa,WACL/yB,OAAOwH,SAAU,IAI7B,QAASuoC,uBAAsB5wC,YAAa6wC,UACxChwC,OAAOif,kBAAmB,CAC1B,IAAIgxB,iBAAkBzrC,EAAEC,KAAKurC,SAAU,SAAUE,MAC7C,MAAOA,MAAK3E,SAAS7mC,KAAO1E,OAAO6D,MAAMisC,eAAeprC,IAE5DurC,iBAAkBA,iBAAmBD,SAAS,EAE9C,IAAIzsC,cACAO,MAAO3E,YACP4T,iBAAkB5T,YAClB87B,UAAW7a,cAAc7b,GACzByO,WAAYi9B,gBAAgBE,aAC5Bx9B,aAAc68B,qBACd38B,iBAAkBu9B,0BAClBl9B,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAOif,kBAAmB,IAIlC,QAASuwB,sBAAqBl9B,WAAYG,iBACtC,MAAO2zB,6BAA4Ba,cAAc30B,WAAY8N,cAAc7b,GAAIkO,iBAC1EhR,KAAK,SAAUC,MAEZ,MADA+tC,yBAAwB1Q,kBACjBr9B,OAInB,QAAS0uC,2BAA0B99B,YAC/B,MAAO8zB,6BAA4Bc,kCAAkC50B,WAAY8N,cAAc7b,IAC1F9C,KAAK,SAAUC,MAEZ,MADA+tC,yBAAwB1Q,kBACjBr9B,OAInB,QAAS2uC,sBAAqBnlC,SAAUolC,QACpCtwC,OAAO6D,MAAMisC,eAAiB5kC,SAC1BolC,SACAtwC,OAAOqgC,aAAc,GAI7B,QAASoP,2BACL1c,eAAewd,8BAA8BxR,kBAGjD,QAASyR,uBAAsBl+B,YAC3B,MAAO6zB,kBAAiBsK,+BAA+BrwB,cAAc7b,GAAI+N,YACpE7Q,KAAK,SAAUC,MAEZ,MADA+tC,yBAAwB1Q,kBACjBr9B,OAInB,QAASgvC,cAAaC,WAClBA,UAAUhK,aAAc,CACxB,IAAIsJ,iBAAkBzrC,EAAEC,KAAKksC,UAAU/tB,MAAO,SAAUstB,MACpD,MAAOA,MAAK3E,SAAS7mC,KAAO1E,OAAO6D,MAAMisC,eAAeprC,IAG5D,OADAurC,iBAAkBA,iBAAmBU,UAAU/tB,MAAM,GAC9CujB,iBAAiBsK,+BAA+BrwB,cAAc7b,GAAI0rC,gBAAgBE,cACpF1uC,KAAK,SAAUC,MAEZ,MADAqxB,gBAAewd,8BAA8BxR,kBACtCr9B,OAHRykC,SAKI,WACHn/B,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0CANlC2/B,WAQM,WACLwK,UAAUhK,aAAc,IAjIpC3mC,OAAOwH,SAAU,EACjBxH,OAAOif,kBAAmB,CAE1B,IAAImB,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C0vB,eAAiBrlC,gBAAgBomC,oBACjC7R,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,KAGjCP,QAAO6D,OACH6rC,oBAAqB,KACrBC,gBAAiB,KACjBG,gBACIprC,GAAI,GACJR,YAAa,IAEjB2sC,gBAAiBzwB,eAkHrBpgB,OAAO+vC,sBAAwBA,sBAC/B/vC,OAAOqwC,qBAAuBA,qBAC9BrwC,OAAOwwC,sBAAwBA,sBAC/BxwC,OAAOwvC,qBAAuBA,qBAC9BxvC,OAAO0wC,aAAeA,aAEtB1wC,OAAOogC,WACHC,YAAa9hB,QAEjBve,OAAOsgC,YAAc,WACoB/hB,SAAjCve,OAAOogC,UAAUC,aACjBvC,aACA99B,OAAOogC,UAAUC,aAAc,GAG/BrgC,OAAOogC,UAAUC,aAAergC,OAAOogC,UAAUC,aAGrDrE,UACA8B,eAKRgT,sBAAwB,GAAIvB,4BAA0B,GACtDwB,4BAA8B,GAAIxB,4BAA0B,EAEhEryC,SAAQC,OAAO,WAAW+B,WAAW,yBAChC,SAAU,eAAgB,iBAAkB,iCAAkC,YAAa,kBAAmB,mBAAoB,8BAA+B,UAAW,aAC7K,iBACI4xC,wBACR5zC,QAAQC,OAAO,WAAW+B,WAAW,+BAChC,SAAU,eAAgB,iBAAkB,iCAAkC,YAAa,kBAAmB,mBAAoB,8BAA+B,UAAW,aAC7K,iBACI6xC,iCC3KZ7zC,QAAQC,OAAO,WAAW+B,WAAW,gBAChC,SAAU,iCAAkC,kBAAmB,OAAQ,YAAa,UAAW,aAAc,OAAQ,YAClH,SAAUc,OAAQ6G,+BAAgCmqC,gBAAiB19B,KAAMhN,UAAWU,QAASR,QAASD,KAAMkY,QACxG,YA4BA,SAASwyB,eACLjxC,OAAOkxC,YAAa,CAEpB,IAAIC,WAAY,KACZC,QAAU,IAETpxC,QAAOc,GAAGuwC,cACXF,UAAanxC,OAAOc,GAAY,UAAImd,OAAOje,OAAOc,GAAGqwC,WAAWG,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,SAAW,KACvGL,QAAWpxC,OAAOc,GAAU,QAAImd,OAAOje,OAAOc,GAAGswC,SAASE,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,SAAW,KAErG,IAAIhV,aACA0U,UAAWA,UACXC,QAASA,QAGb,OAAOJ,iBAAgBU,UAAU3S,iBAAiB9D,UAAWwB,YACxDh7B,KAAK,SAAUC,MACZ,MAAIA,MACOA,KAAKiwC,aADhB,SAFDX,SAMI,SAAUn9B,UACbtN,KAAKqK,MAAMiD,UACX7M,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,qDARlCwqC,WAUM,WACLhxC,OAAOkxC,YAAa,IAIhC,QAASU,gBAEL,MADA5xC,QAAO6xC,aAAc,EACdb,gBAAgBc,sBAAsB/S,kBACxCt9B,KAAK,WACF,MAAOswC,WAFRf,SAII,SAAUn9B,UACbtN,KAAKqK,MAAMiD,UACX7M,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,sDANlCwqC,WAQM,WACLhxC,OAAO6xC,aAAc,IAIjC,QAASG,iBACLvzB,OAAOK,MACH7f,YAAa,0CACbC,WAAY,wBACZ8c,KAAM,KACN5c,SACIge,UAAW,WACP,MAAOgD,eAAc7b,OAMrC,QAAS0tC,iBACL,GAAId,WAAY,KACZC,QAAU,IAETpxC,QAAOc,GAAGuwC,cACXF,UAAanxC,OAAOc,GAAY,UAAImd,OAAOje,OAAOc,GAAGqwC,WAAWG,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,SAAW,KACvGL,QAAWpxC,OAAOc,GAAU,QAAImd,OAAOje,OAAOc,GAAGswC,SAASE,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,SAAW,MAErG1S,iBAAiBoS,UAAYA,UAC7BpS,iBAAiBqS,QAAUA,OAC3B,IAAIvyB,eAAgBJ,OAAOK,MACvB7f,YAAa,yCACbC,WAAY,uBACZ8c,KAAM,KACN5c,SACIi5B,WAAY,WACR,MAAO0G,qBAKnBlgB,eAAc/B,OAAOrb,KAAK,cAK9B,QAASywC,cACLlyC,OAAOmyC,YAAa,CACpB,IAAIhB,WAAY,KACZC,QAAU,IAETpxC,QAAOc,GAAGuwC,cACXF,UAAanxC,OAAOc,GAAY,UAAImd,OAAOje,OAAOc,GAAGqwC,WAAWG,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,SAAW,KACvGL,QAAWpxC,OAAOc,GAAU,QAAImd,OAAOje,OAAOc,GAAGswC,SAASE,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,SAAW,KAErG,IAAIhV,aACA0U,UAAWA,UACXC,QAASA,QAEbJ,iBAAgBoB,WAAWrT,iBAAiB9D,UAAWwB,YACtDh7B,KAAK,SAAUC,MAEZ,GADA1B,OAAOwT,kBACH9R,KAAM,CACNqwC,QAAUrwC,KAAKiwC,aACf3xC,OAAO6D,MAAMwuC,UAAY/+B,KAAKwnB,YAAYiX,QAC1C,IAAItrB,SAAUngB,UAAUogB,SACpBC,QAAUrgB,UAAUsgB,OACpBC,WAAa,mBACjB7mB,QAAO6D,MAAMyuC,WAAa7rB,QAAQlW,QAAQoW,QAASE,eAT3DmqB,SAYO,SAAUn9B,UACb7T,OAAO8T,aAAaD,YAbxBm9B,WAeS,WACLhxC,OAAOmyC,YAAa,EACpBnyC,OAAOwH,SAAU,IA5IzBxH,OAAOwH,SAAU,EACjBxH,OAAO6xC,aAAc,EACrB7xC,OAAOkxC,YAAa,EACpBlxC,OAAOc,IACHqwC,UAAW,GACXC,QAAS,GACTC,aAAa,EAGjB,IASIU,SATAnrB,KAAOtgB,UAAUsgB,OAEjBxG,cAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,KAGjCP,QAAO6D,OACHwuC,UAAW,GACXC,WAAY,GACZC,YAAanyB,cAAc0O,UAAY1O,cAAc2O,SAAW,WAChEyjB,YAAapyB,cAAc0O,UAAY1O,cAAc2O,SAAW,aAwHpEmjB,aAEAlyC,OAAOkyC,WAAaA,WACpBlyC,OAAOixC,YAAcA,YACrBjxC,OAAO4xC,aAAeA,aACtB5xC,OAAOgyC,cAAgBA,cACvBhyC,OAAOiyC,cAAgBA,cACvBjyC,OAAO4mB,KAAOA,QC3J1B1pB,QAAQC,OAAO,WAAW+B,WAAW,oBAE7B,IACA,SACA,iBACA,iCACA,YACA,mBACA,SACA,aACA,UACA,iBACA,oBACA,SACIsF,EACAxE,OACA+yB,eACAlsB,+BACA4X,OACA0nB,iBACAloB,OACAzX,QACAQ,QACA+R,eACA05B,mBAEA,YAwBA,SAASprC,UACLrH,OAAOwH,SAAU,EACjBxH,OAAOwT,iBAEP,IAAI61B,wBAAyB,SAC7BtW,gBACK2f,kBAAkBtyB,cAAc7b,IAChC9C,KAAK,SAAUC,MACZ1B,OAAO2yC,OAASnuC,EAAE9C,KAAK02B,SAAS3uB,IAAI,SAAU88B,OAC1C,MAAO/hC,GAAEkiC,OAAOH,OAAQI,aAAc,MACvCnqB,QACHxc,OAAO4yC,UAAYlxC,KAAKgX,SANhCqa,SAQW,SAAUlf,UACbw1B,uBAAyB,UACzBrpC,OAAO8T,aAAaD,YAV5Bkf,WAYa,WACLwW,kBAAkBF,wBAClBrpC,OAAOwH,SAAU,IAEzBqrC,oBAAoB9T,kBAGxB,QAAS+T,kBAAiBC,QAASC;AAC/BC,qBAAqBlU,kBACrB/+B,OAAOif,kBAAmB,CAE1B,IAAI1b,cACAO,MAAO0C,QAAQ,mBAAqByX,OAAO+0B,WAAW90B,OAAO,MAC7DnL,iBAAkBqN,cAAc0O,UAAY1O,cAAc2O,SAAW,gBACrEkM,UAAW7a,cAAc7b,GACzByO,WAAY+/B,QACZpgC,aAAcugC,gBACdrgC,iBAAkBsgC,qBAClB5gC,aAAc6gC,mBACdngC,cAAc,EACdC,kBAAmB6F,eAAeqG,oBAClCjM,eAAgBs/B,mBAGhB5zB,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAOif,kBAAmB,IAIlC,QAASi0B,iBAAgB5gC,YACrB,MAAO6zB,kBAAiB+M,gBAAgB9yB,cAAc7b,GAAI+N,YAG9D,QAAS8gC,oBAAmB9gC,YACxB,MAAO6zB,kBAAiBiN,mBAAmBhzB,cAAc7b,GAAI+N,YAGjE,QAAS6gC,sBAAqB7gC,YAC1B2gC,qBAAqBlU,iBACrB,IAAIsK,wBAAyB,SAC7B,OAAOlD,kBAAiB+M,gBAAgB9yB,cAAc7b,GAAI+N,YACrD7Q,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMG,UAAW,SAFrCivB,SAII,WACHkD,uBAAyB,UACzBriC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0CANlC2/B,WAQM,WACLoD,kBAAkBF,0BAI9B,QAASgK,6BAA4BC,MAAON,WACxCC,qBAAqBlU,kBACrBuU,MAAM3M,aAAc,EACpB3mC,OAAOuzC,cAAcv8B,UAAYiH,OAAO+0B,WAAW90B,OAAO,KAC1Dle,OAAOuzC,cAAc7uC,GAAK4uC,MAAME,OAEhC,IAAInK,wBAAyB,SAC7B,OAAOlD,kBAAiB+M,gBAAgB9yB,cAAc7b,GAAI+uC,MAAME,SAC3D/xC,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMC,SAAUhX,OAAOuzC,cAAcv8B,SAAUE,UAAW,SAF9EivB,SAII,WACHkD,uBAAyB,UACzBriC,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0CANlC2/B,WAQM,WACLoD,kBAAkBF,wBAClBiK,MAAM3M,aAAc,IAIhC,QAASkM,qBAAoB9T,kBACzBhM,eAAe0gB,2BAA2B1U,kBAG9C,QAASkU,sBAAqBlU,kBAC1BhM,eAAe2gB,4BAA4B3U,kBAG/C,QAASwK,mBAAkBE,mBACvBC,qBAAqBC,kBAAoBF,kBACzC1W,eAAe6W,mBAAmBF,sBAtItC1pC,OAAOO,KAAO,eACdP,OAAO4yC,UAAY,EACnB5yC,OAAOwH,SAAU,EACjBxH,OAAOuzC,eACH7uC,GAAI,KACJsS,SAAU,eAGd,IAAIoJ,eAAgBvZ,+BAA+BwZ,mBAC/CH,UAAYrZ,+BAA+BsZ,eAC3C4e,kBACI9D,UAAW7a,cAAc7b,GACzB6uB,YAAalT,UAAU3b,GACvB47B,cAAejgB,UAAU3f,MAG7BmpC,sBACAK,eAAgB,4DAChBJ,kBAAmB,UACnBK,gBAAiB,EAsHrB3iC,UACArH,OAAOizC,qBAAuBA,qBAC9BjzC,OAAO6yC,oBAAsBA,oBAC7B7yC,OAAO8yC,iBAAmBA,iBAC1B9yC,OAAOmzC,qBAAuBA,qBAC9BnzC,OAAOqzC,4BAA8BA,+BC1KjDn2C,QAAQC,OAAO,WAAW+B,WAAW,yBAChC,SAAU,oBAAqB,kBAAmB,YAC/C,SAAUc,OAAQsD,eAAgB0tC,gBAAiB5zB,WAC/C,YAmBA,SAAS5Z,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAtB3B3D,OAAOwH,SAAU,EACjBxH,OAAO6D,OACH8vC,UAAW,IAGf3C,gBAAgB4C,aAAax2B,WACxB3b,KAAK,SAAUC,MACZ1B,OAAOwT,kBACPxT,OAAO6D,MAAM8vC,UAAYjyC,OAHjCsvC,SAKW,SAAUn9B,UACb7T,OAAO8T,aAAaD,YAN5Bm9B,WAQa,WACLhxC,OAAOwH,SAAU,IAWzBxH,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,UC/B5BxG,QAAQC,OAAO,WAAW+B,WAAW,wBAChC,SAAU,oBAAqB,kBAAmB,aAAc,UAAW,aAAc,OACtF,SAAUc,OAAQsD,eAAgB0tC,gBAAiB3Y,WAAYrxB,QAASR,QAASD,MAC7E,YA+BA,SAASu3B,cACL99B,OAAOwT,kBACPxT,OAAO6D,MAAMgwC,SAAW7zC,OAAO6D,MAAMiwC,aAAa,GAClD9C,gBAAgB+C,uBAAuB/zC,QACvCgxC,gBAAgBgD,qBAAqB3b,WAAW4C,WAC3Cx5B,KAAK,SAAUC,MACRA,MAAQA,KAAKuyC,kBAAoBvyC,KAAKuyC,iBAAiBC,oBACvDl0C,OAAO6D,MAAMswC,eAAiBzyC,KAAKuyC,iBACnCj0C,OAAO6D,MAAMiwC,aAAa,GAAGM,SAAU,EACvCp0C,OAAO6D,MAAMgwC,SAAW7zC,OAAO6D,MAAMiwC,aAAa,IAEtD9zC,OAAO6D,MAAMiwC,aAAa,GAAGM,QAAU1yC,KAAK2yC,cACxCr0C,OAAO6D,MAAMiwC,aAAa,GAAGM,SAAWp0C,OAAO6D,MAAMiwC,aAAa,GAAGM,WACrEp0C,OAAOs0C,cAAe,KATlCtD,SAYW,SAAUn9B,UACb7T,OAAO8T,aAAaD,YAb5Bm9B,WAea,WACLhxC,OAAOwH,SAAU,IAK7B,QAAS+sC,yBACL,GAAIv0C,OAAOw0C,gBAAgBngB,OAAQ,CAC/Br0B,OAAOy0C,cAAe,CACtB,IAAIC,qBACAzZ,UAAW5C,WAAW4C,UACtB7H,YAAaiF,WAAWjF,YACxB+M,cAAe9H,WAAW8H,cAC1BwU,aAAc30C,OAAO6D,MAAM8wC,cAAgB30C,OAAO6D,MAAM8wC,aAAaC,KACrEC,QAAS70C,OAAO6D,MAAMgxC,QACtBC,QAAS90C,OAAO6D,MAAMixC,QACtBC,sBAAuB/0C,OAAO6D,MAAMswC,eAAeD,kBACnDc,OAAQh1C,OAAO6D,MAAMmxC,OACrBjV,WAAY//B,OAAO6D,MAAMswC,eAAepU,WACxCkV,oBAAqD,gBAA/Bj1C,OAAO6D,MAAMgwC,SAASe,KAA0B50C,OAAO6D,MAAMoxC,oBAAsB,KACzGC,MAAuC,UAA/Bl1C,OAAO6D,MAAMgwC,SAASe,KAAoB50C,OAAO6D,MAAMqxC,MAAQ,KACvElU,UAAW3I,WAAW8Y,UACtBzU,QAASrE,WAAW+Y,QAGxBJ,iBAAgBmE,oBAAoBT,oBAC/BjzC,KAAK,SAAUC,MACZ1B,OAAO6D,MAAM8vC,UAAYjyC,KACzBsF,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,+BACnChD,OAJRwtC,SAMW,SAAUn9B,UACbtN,KAAKqK,MAAMiD,UACX7M,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,+CARzCwqC,WAUa,WACLhxC,OAAOy0C,cAAe,KAKtC,QAASjxC,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UA9F3B3D,OAAOwH,SAAU,EACjBxH,OAAOo1C,mBAAoB,EAC3Bp1C,OAAOy0C,cAAe,EACtBz0C,OAAOs0C,cAAe,EACtBt0C,OAAO6D,OACHswC,eAAgB,GAChBkB,mBACKT,KAAM,SACNA,KAAM,QAEXd,eAEQc,KAAM,cACNR,SAAS,IAGTQ,KAAM,QACNR,SAAS,IAGjBO,aAAc,GACd5U,WAAY,GACZkV,oBAAqB,GACrBC,MAAM,GACNrB,SAAU,GACVgB,QAAS,GACTC,QAAS,IA0BbhX,aA6CA99B,OAAOu0C,sBAAwBA,sBAC/Bv0C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,UCxG5BxG,QAAQC,OAAO,WAAW+B,WAAW,0BAChC,SAAU,oBAAqB,OAAQ,UAAW,mBAAoB,oBAAqB,gBACxF,SAAUc,OAAQsD,eAAgBgQ,KAAMvG,QAASo5B,iBAAkBmP,kBAAmBl1B,eAClF,YAgBA,SAASm1B,qBACLv1C,OAAOw1C,sBAAuB,EAC9Bx1C,OAAOwT,kBAEP2yB,iBAAiBmD,iBAAiBtpC,OAAOogB,cAAc7b,IAClD9C,KAAK,SAAUC,MACZ,GAAI+zC,kBAAmB,+BAAiC/zC,KAAKg0C,YAE7D11C,QAAO6D,MAAM8xC,kBAAoBriC,KAAKsnB,mBAAmB6a,kBACzDz1C,OAAO6D,MAAMo3B,UAAYv5B,KAAKu5B,YALtCkL,SAOW,SAAUtyB,UACb7T,OAAO8T,aAAaD,UACpB7T,OAAO41C,sBAAuB,EAC9B51C,OAAO6D,MAAMgyC,8BAAgCviC,KAAKwnB,YAAYwa,kBAAkBrb,mCAAmCpmB,SAASnS,SAVpIykC,WAYa,WACLnmC,OAAOw1C,sBAAuB,IAI1C,QAAShyC,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAG3B,QAASmyC,SACL/oC,QAAQ+oC,QA5CZ91C,OAAOogB,cAAgBA,cAEvBpgB,OAAOw1C,sBAAuB,EAC9Bx1C,OAAO+1C,oBAAqB,EAE5B/1C,OAAO41C,sBAAuB,EAC9B51C,OAAOg2C,0BAA4B,GAEnCh2C,OAAO6D,OACH8xC,kBAAmB,GACnB1a,UAAW,GACX5mB,SAAU+L,cAAclM,UAqC5BlU,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAChB1D,OAAO81C,MAAQA,MAEfP,uBCzDZr4C,QAAQC,OAAO,WAAW+B,WAAW,oBAChC,SAAU,oBAAqB,UAAW,OAAQ,eAAgB,WAC/D,SAAUc,OAAQsD,eAAgByJ,QAASuG,KAAMwtB,aAAcD,UAC3D,YAKA,SAASr9B,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAG3B,QAASmyC,SACL/oC,QAAQ+oC,QAZZ91C,OAAO8gC,aAAextB,KAAKwnB,YAAYgG,cACvC9gC,OAAO6gC,SAAWA,SAclB7gC,OAAO81C,MAAQA,MACf91C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,UCtB5BxG,QAAQC,OAAO,WAAW+B,WAAW,yBAChC,SAAU,oBAAqB,UAAW,uBACvC,SAAUc,OAAQsD,eAAgByJ,QAAS+4B,sBACvC,YAMA,SAAStiC,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAG3B,QAASmyC,SACL/oC,QAAQ+oC,QAbZ91C,OAAO6D,OACHwhC,qBAAsBS,sBAe1B9lC,OAAO81C,MAAQA,MACf91C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,UCvB5BxG,QAAQC,OAAO,WAAW+B,WAAW,mCAChC,SAAU,oBAAqB,OAAQ,UAAW,mBAAoB,iBACnE,SAAUc,OAAQsD,eAAgBgQ,KAAMvG,QAASo5B,iBAAkBM,gBAC/D,YAkBA,SAASwP,cAQL,MAPAj2C,QAAOk2C,kBAAmB,EAC1Bl2C,OAAOwT,kBAEPxT,OAAOm2C,QAAU3xC,EAAE4xC,SAASC,aAAc5P,eAAevvB,UAAU4O,eACnE9lB,OAAOs2C,OAAS9xC,EAAE4xC,SAASG,YAAa9P,eAAevvB,UAAU4O,eACjE9lB,OAAOw2C,OAAShyC,EAAE4xC,SAASK,YAAahQ,eAAevvB,UAAU4O,eAE5D9lB,OAAOm2C,SAAYn2C,OAAOs2C,QAAWt2C,OAAOw2C,WAMjDrQ,kBAAiBuQ,iBAAiBjQ,eAAekQ,cAAcpyC,GAAKkiC,eAAeK,eAC9ErlC,KAAK,SAAUC,MACZ,GAAIk1C,cAAe,QAAUl1C,KAAKm1C,YAAc,WAAan1C,KAAKo1C,SAClE92C,QAAO6D,MAAMkzC,cAAgBzjC,KAAKsnB,mBAAmBgc,cACrD52C,OAAO6D,MAAMizC,UAAYp1C,KAAKo1C,UAC9B92C,OAAO6D,MAAMgzC,YAAcn1C,KAAKm1C,cALxC1Q,SAOW,SAAUtyB,UACb7T,OAAO8T,aAAaD,YAR5BsyB,WAUa,WACLnmC,OAAOk2C,kBAAmB,SAf9Bl2C,OAAOk2C,kBAAmB,GAmBlC,QAAS1yC,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAG3B,QAASmyC,SACL/oC,QAAQ+oC,QAtDZ,GAAIO,eAAgB,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,QACxFE,aAAe,OAAQ,OACvBE,aAAe,MAEnBz2C,QAAOymC,eAAiBA,eAExBzmC,OAAOk2C,kBAAmB,EAC1Bl2C,OAAO+1C,oBAAqB,EAE5B/1C,OAAO6D,OACHkzC,cAAe,GACfC,YAAavQ,eAAekQ,cAAc7nB,UAAY2X,eAAekQ,cAAc5nB,SAAW,kBAC9F+nB,UAAW,GACXD,YAAa,IA6CjB72C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAChB1D,OAAO81C,MAAQA,MAEfG,gBCnEZ/4C,QAAQC,OAAO,WAAW+B,WAAW,0CAChC,SAAU,oBAAqB,OAAQ,UAAW,mBAAoB,aACnE,SAAUc,OAAQsD,eAAgBgQ,KAAMvG,QAASo5B,iBAAkB8Q,YAC/D,YAcA,SAAShB,cACLj2C,OAAOk2C,kBAAmB,EAC1Bl2C,OAAOwT,kBACP2yB,iBAAiBmB,uBAAuB2P,WAAWN,cAAcpyC,GAAK0yC,WAAWC,UAC5Ez1C,KAAK,SAAUC,MACZ,GAAIy1C,qBAAsB,QAAUz1C,KAAKm1C,YAAc,WAAan1C,KAAKo1C,SACzE92C,QAAO6D,MAAMuzC,qBAAuB9jC,KAAKsnB,mBAAmBuc,qBAC5Dn3C,OAAO6D,MAAMizC,UAAYp1C,KAAKo1C,UAC9B92C,OAAO6D,MAAMgzC,YAAcn1C,KAAKm1C,cALxC1Q,SAOW,SAAUtyB,UACb7T,OAAO8T,aAAaD,YAR5BsyB,WAUa,WACLnmC,OAAOk2C,kBAAmB,IAItC,QAAS1yC,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAG3B,QAASmyC,SACL/oC,QAAQ+oC,QAvCZ91C,OAAOi3C,WAAaA,WAEpBj3C,OAAOk2C,kBAAmB,EAC1Bl2C,OAAO+1C,oBAAqB,EAE5B/1C,OAAO6D,OACHuzC,qBAAsB,GACtBJ,YAAaC,WAAWN,cAAc7nB,UAAYmoB,WAAWN,cAAc5nB,SAAW,wBACtF+nB,UAAW,GACXD,YAAa,IAkCjB72C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAChB1D,OAAO81C,MAAQA,MAEfG,gBCpDZ/4C,QAAQC,OAAO,WAAW+B,WAAW,qBAChC,IAAK,SAAU,eAAgB,oBAAqB,iBAAkB,UAAW,aAAc,aAAc,WAC1G,SAAUsF,EAAGxE,OAAQiR,aAAc3N,eAAgByvB,eAAgB/rB,QAASR,QAASs7B,WAAY7Q,UAC7F,YAWA,SAASztB,MACLF,eAAeG,MAAMzD,OAAO8hC,YAGhC,QAASp+B,UACLJ,eAAeK,QAAQ,UAG5B,QAAS0zC,kBAAiBC,IAAKlmC,aACrBkmC,MACDA,IAAMt3C,OAAOu3C,uBAAuBla,KAEnCjsB,cACDA,YAAcpR,OAAOu3C,uBAAuB9rB,aAGhDsH,eAAeskB,iBAAiBC,IAAKlmC,aAChC3P,KAAK,SAAUC,MACZ1B,OAAOw3C,gBAAkB91C,KAAK02B,QAC9Bp4B,OAAOy3C,UAA4B,IAAhB/1C,KAAKgX,SAIpC,QAASg/B,aAAY3K,MAAOjQ,UACpBt4B,EAAEC,KAAKzE,OAAO8hC,YAAa6V,WAAY7a,SAAS6a,aAChD3wC,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,2CAEnCxG,OAAO8hC,WAAWnpB,KAAKmkB,UACvB98B,OAAOw3C,gBAAgB1+B,OAAOi0B,MAAO,IAI7C,QAASD,gBAAeC,MAAOjQ,UAC3B98B,OAAO8hC,WAAWhpB,OAAOi0B,MAAO,GAChC/sC,OAAOw3C,gBAAgBI,QAAQ9a,UAC/B98B,OAAOy3C,WAAY,EAGvB,QAASI,aACL5mB,SAAS,IAAK,WACNjxB,OAAOu3C,uBAAuBla,IAAI3kB,OAAS,GAC3C1Y,OAAOq3C,qBAKnB,QAASS,qBACL7mB,SAAS,IAAK,WACV,GAAI8mB,iBAAkB/3C,OAAOu3C,uBAAuB9rB,YAChDjP,MAAQu7B,gBAAgBvV,WAAW/mB,OAAOlL,QAAQ,UAAW,GAE7DiM,OAAM9D,OAAS,GACf1Y,OAAOq3C,iBAAiB,KAAM76B,SA7D1Cxc,OAAO8hC,WAAat9B,EAAEkF,UAAUo4B,gBAChC9hC,OAAOu3C,wBACHla,IAAK,GACL5R,YAAa,IAGjBzrB,OAAOw3C,mBACPx3C,OAAOy3C,WAAY,EA2DnBz3C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAChB1D,OAAOq3C,iBAAmBA,iBAC1Br3C,OAAO03C,YAAcA,YACrB13C,OAAO63C,UAAYA,UACnB73C,OAAO8sC,eAAiBA,eACxB9sC,OAAO83C,kBAAoBA,qBC7EvC56C,QAAQC,OAAO,WAAW+B,WAAW,2CAChC,SAAU,oBAAqB,iBAC5B,SAAUc,OAAQsD,eAAgBmjC,gBAC9B,YAKA,SAASjjC,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAR3B3D,OAAOymC,eAAiBA,eACxBzmC,OAAOk2C,kBAAmB,EAU1Bl2C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,UCjB5BxG,QAAQC,OAAO,WAAWgE,UAAU,uBAE5B,WACI,YAEA,SAAS8U,MAAKjW,QACV,QAASg4C,iBAAgBC,aAAcv/B,QACnC,MAAIu/B,cAAev/B,OACR,GAAIc,OAAMy+B,aAAev/B,WAMxC,QAASw/B,YAAWD,aAAcE,cAC9B,MAAQF,cAAeE,aAAgBF,aAAeE,aAG1Dn4C,OAAOg4C,gBAAkBA,gBACzBh4C,OAAOk4C,WAAaA,WAGxB,OACIr4C,SAAU,KACVZ,YAAa,qDACb0X,OACImvB,qBAAsB,yBAE1B7vB,KAAMA,SC5BtB/Y,QAAQC,OAAO,WAAWogB,QAAQ,mBAC7B,oBAAqB,qBAAsB,SAAUC,kBAAmBic,oBACrE,YAiBA,SAAS2Y,YAAWh1B,UAAWqf,YAC3B,GAAI9e,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAWT,UAAY,aAAawR,UAAU,OAAQ6N,YAGjF,QAASqV,uBAAsB/S,kBAC3B,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAWkhB,iBAAiB9D,UAAY,aAAa7P,WAAW2T,kBAG3F,QAAS2S,WAAUt0B,UAAWqf,YAC1B,GAAI9e,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAWT,UAAY,aAAawR,UAAU,MAAO6N,YAGhF,QAASsX,wBAAuB/zC,QAC5B,MAAOy5B,oBAAmBM,YAAY,eAAgB/5B,QAG1D,QAASg0C,sBAAqB52B,WAC1B,GAAIO,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAWT,UAAY,wBAAwBQ,MApC1E,GAAIg2B,cAAe,SAAsBl2B,KACrC,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAWH,IAAM,mBAAmBE,OAG3Dw6B,mBAAqB,SAA4B16B,KACjD,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAWH,IAAM,sBAAsBE,OAG9Du3B,oBAAsB,SAA6BkD,aACnD,GAAI16B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAWw6B,YAAYpd,UAAY,sBAAsB7P,WAAWitB,aA8B/F,QACIzE,aAAcA,aACdwE,mBAAoBA,mBACpBjD,oBAAqBA,oBACrB/C,WAAYA,WACZN,sBAAuBA,sBACvBJ,UAAWA,UACXqC,uBAAwBA,uBACxBC,qBAAsBA,yBCtDlC92C,QAAQC,OAAO,WAAWogB,QAAQ,kBAC7B,WAAY,yBAA0B,mBAAoB,KAAM,aAAc,iBAC3E,SAAwB4E,SAAUjR,uBAAwBi1B,iBAAkB5gB,GAAI/e,QAASE,gBACrF,YAqBA,SAAS4xC,0BACL,MAAO9zC,GAAEkF,UAAU6uC,gBAAgB/7B,QAGvC,QAAS8nB,oBACL,IAAKkU,kBAAmB,CACpB,GAAIxgC,aAAc9G,uBAAuBQ,oBACzC8mC,oBACIC,kBAAqBzb,KAAQ,yBAA0Bt4B,GAAI,oBAAqBg0C,UAAWlyC,QAAQ,YAAamyC,MAAO,0BAA2Bj2B,SAAU1K,YAAY6M,mBAAmBnC,UAC3LkC,qBAAwBoY,KAAQ,wBAAyB4b,IAAOz2B,SAAS02B,YAAYj0B,oBACjFlgB,GAAI,yBAA0Bg0C,UAAWlyC,QAAQ,mBAAoBmyC,MAAO,sBAC5Ej2B,SAAY1K,YAAY4M,oBAAoBlC,UAChDo2B,eAAkB9b,KAAQ,iBAAkB4b,IAAOz2B,SAAS02B,YAAYC,cACpEp0C,GAAI,oBAAqBg0C,UAAWlyC,QAAQ,aAAcmyC,MAAO,mBACjEj2B,SAAY1K,YAAY8gC,cAAcp2B,UAC1Cq2B,cAAiBr0C,GAAI,mBAAoBg0C,UAAWlyC,QAAQ,YAAamyC,MAAO,kBAAmBj2B,SAAU1K,YAAY6M,mBAAmBnC,UAC5IoC,iBAAoBkY,KAAQ,mBAAoB4b,IAAOz2B,SAAS02B,YAAY/zB,gBACxEpgB,GAAI,wBAAyBg0C,UAAWlyC,QAAQ,iBAAkBmyC,MAAO,uBACzEj2B,SAAY1K,YAAY8M,gBAAgBpC,UAC5CqC,gBAAmBiY,KAAQ,kBAAmB4b,IAAOz2B,SAAS02B,YAAY9zB,eACtErgB,GAAI,qBAAsBg0C,UAAWlyC,QAAQ,cAAemyC,MAAO,oBACnEj2B,SAAY1K,YAAY+M,eAAerC,UAC3CuC,mBACI+X,KAAM,qBACN4b,IAAKz2B,SAAS02B,YAAY5zB,kBAC1BvgB,GAAI,wBACJg0C,UAAWlyC,QAAQ,iBACnBmyC,MAAO,uBACPj2B,SAAU1K,YAAYiN,kBAAkBvC,SACxCgiB,QACIC,UAAW3sB,YAAYiN,kBAAkB+zB,qBAAuBhhC,YAAYiN,kBAAkB+zB,oBAAoBrU,UAClHF,MAAOzsB,YAAYiN,kBAAkB+zB,qBAAuBhhC,YAAYiN,kBAAkB+zB,oBAAoBvU,MAC9GG,KAAM5sB,YAAYiN,kBAAkB+zB,qBAAsBhhC,YAAYiN,kBAAkB+zB,oBAAoBpU,OAGpHqU,gBAAmBjc,KAAQ,oBAAqB4b,IAAOz2B,SAAS02B,YAAY7zB,mBACxEtgB,GAAI,qBAAsBg0C,UAAWlyC,QAAQ,gBAAiBmyC,MAAO,oBACrEj2B,SAAY1K,YAAYgN,mBAAmBtC,UAC/CG,uBAA0Bma,KAAQ,0BAA2B4b,IAAOz2B,SAAS02B,YAAYh2B,sBACrFne,GAAI,4BAA6Bg0C,UAAWlyC,QAAQ,wBAAyBmyC,MAAO,2BACpFj2B,SAAY1K,YAAY6K,sBAAsBH,UAClDw2B,oBAAuBlc,KAAQ,sBAAuB4b,IAAOz2B,SAAS02B,YAAYK,mBAC9Ex0C,GAAI,0BAA2Bg0C,UAAWlyC,QAAQ,oBAAqBmyC,MAAO,yBAC9Ej2B,SAAY1K,YAAYkhC,mBAAmBx2B,UAC/Cy2B,gBAAmBnhC,YAAYmhC,gBAC/Bj0B,yBAA4B8X,KAAQ,4BAA6B4b,IAAOz2B,SAAS02B,YAAY3zB,wBACzFxgB,GAAI,8BAA+Bg0C,UAAWlyC,QAAQ,wBAAyBmyC,MAAO,6BACtFj2B,SAAY1K,YAAYkN,wBAAwBxC,UACpDK,iBAAoB/K,YAAY+K,iBAChCq2B,kBAAqBphC,YAAYohC,kBACjCC,iBAAqBrhC,YAAYqhC,kBAGzC,MAAO9zB,IAAGW,KAAKsyB,mBAGnB,QAASvlB,YAAW7V,UAAWk8B,aAI3B,MAHIl8B,aAAcm8B,sBACdC,aAAap8B,YAEZm7B,gBAAkBe,YACZnT,iBAAiBlT,WAAW7V,WAC9B3b,KAAK,SAAUC,MAEZ,MADA62C,gBAAiB72C,OAIlB6jB,GAAGW,KAAKqyB,gBAIvB,QAASpL,2BAA0BntC,QAC/B,MAAOmmC,kBAAiBgH,0BAA0BntC,QAGtD,QAASwsC,eAAcxkC,OAAQkjC,KAC3B,MAAO/E,kBAAiBqG,cAAcxkC,OAAQkjC,KACzCzpC,KAAK,SAAUC,MAEZ,MADA62C,gBAAiB72C,OAK7B,QAAS21C,kBAAiBC,IAAKlmC,aAC3B,MAAO+0B,kBAAiBkR,iBAAiBkC,qBAAsBjC,IAAKlmC,aAGxE,QAASk3B,aAAYlrB,WACjB,MAAOmI,IAAG8H,KAAK4F,WAAW7V,WAAYknB,qBAG1C,QAASc,kBAAiBhoB,UAAWq8B,kBAAmBtzB,cAKpD,MAJI/I,aAAcm8B,sBACdC,aAAap8B,YAGZs8B,eAAiBA,cAAcC,oBAAsBF,mBAAqBtzB,aACpEggB,iBAAiBf,iBAAiBhoB,UAAWq8B,mBAC/Ch4C,KAAK,SAAUC,MAGZ,MAFAg4C,eAAcpU,QAAU5jC,KACxBg4C,cAAcC,kBAAoBF,kBAC3BC,gBAIZn0B,GAAGW,KAAKwzB,eAGnB,QAASjM,aAAYrwB,WAIjB,MAHIA,aAAcm8B,sBACdC,aAAap8B,WAEZswB,SAOMnoB,GAAGW,KAAKwnB,UANRvH,iBAAiBsH,YAAYrwB,WAC/B3b,KAAK,SAAUC,MAEZ,MADAgsC,UAAWhsC,OAQ3B,QAASktC,eAAcxxB,WAInB,MAHIA,aAAcm8B,sBACdC,aAAap8B,WAEZyxB,WAOMtpB,GAAGW,KAAK2oB,YANR1I,iBAAiByI,cAAcxxB,WACjC3b,KAAK,SAAUC,MAEZ,MADAmtC,YAAantC,OAQ7B,QAASk4C,kBAAiBx8B,WAItB,MAHIA,aAAcm8B,sBACdC,aAAap8B,WAEV+oB,iBAAiByT,iBAAiBx8B,WACpC3b,KAAK,SAAUC,MAEZ,MADAm4C,eAAgBn4C,OAK5B,QAAS2kC,eAAcjpB,WAInB,MAHIA,aAAcm8B,sBACdC,aAAap8B,WAEZkpB,WAOM/gB,GAAGW,KAAKogB,YANRH,iBAAiBE,cAAcjpB,WACjC3b,KAAK,SAAUC,MAEZ,MADA4kC,YAAa5kC,OAQ7B,QAASgxC,mBAAkBt1B,WAIvB,MAHIA,aAAcm8B,sBACdC,aAAap8B,WAEZ08B,eAOMv0B,GAAGW,KAAK4zB,gBANR3T,iBAAiBuM,kBAAkBt1B,WACrC3b,KAAK,SAAUC,MAEZ,MADAo4C,gBAAiBp4C,OAQjC,QAASq4C,iBAAgB38B,WAIrB,MAHIA,aAAcm8B,sBACdC,aAAap8B,WAEZ48B,aAOMz0B,GAAGW,KAAK8zB,cANR7T,iBAAiB4T,gBAAgB38B,WACnC3b,KAAK,SAAUC,MAEZ,MADAs4C,cAAet4C,OAQ/B,QAAS8tC,sBAAqBzQ,kBAI1B,MAHIA,kBAAiB9D,YAAcse,sBAC/BC,aAAaza,iBAAiB9D,WAE7Bgf,kBAOM10B,GAAGW,KAAK+zB,mBANR9T,iBAAiBqJ,qBAAqBzQ,kBACxCt9B,KAAK,SAAUC,MAEZ,MADAu4C,mBAAoBv4C,OAQpC,QAASqmC,wBAAuB3qB,WAI5B,MAHIA,aAAcm8B,sBACdC,aAAap8B,WAEZ88B,oBAOM30B,GAAGW,KAAKg0B,qBANR/T,iBAAiB4B,uBAAuB3qB,WAC1C3b,KAAK,SAAUC,MAEZ,MADAw4C,qBAAsBx4C,OAQtC,QAASy4C,YAAW/8B,WAChB,MAAO+oB,kBAAiBgU,WAAW/8B,WAC9B3b,KAAK,SAAUC,MACZ,MAAOA,QAInB,QAAS04C,uBAAsB/8B,OAAQC,OAC/BD,SAAWC,QACXA,MAAQD,OAGZ,IAAIre,KAAM,+BAMV,OAJIqe,UACAre,KAAO,WAAaqe,OAAS,UAAYC,OAGtCte,IAGX,QAASq7C,qBAAoBh9B,OAAQC,OAC7BD,SAAWC,QACXA,MAAQD,OAGZ,IAAIre,KAAM,6BAMV,OAJIqe,UACAre,KAAO,WAAaqe,OAAS,UAAYC,OAGtCte,IAGX,QAASmL,YACLnC,OAAS,KACTuwC,eAAiB,KACjB+B,aAAe,KACfZ,eACIpU,QAAS,GACTqU,kBAAmB,IAEvBY,UAAY,KACZ7M,SAAW,KACXmB,WAAa,KACbvI,WAAa,KACbuT,cAAgB,KAChBC,eAAiB,KACjBE,aAAe,KACfC,kBAAoB,KACpBC,oBAAsB,KAEtBxzC,eAAew0B,oBAGnB,QAASsf,yBAAwBp9B,WAC7Bm8B,qBAAuBn8B,UAG3B,QAASo8B,cAAap8B,WAClBjT,WACAqwC,wBAAwBp9B,WAG5B,QAASwoB,0BAAyB3D,kBAC9B,MAAOkE,kBAAiBsU,sBAAsBxY,kBAGlD,QAASyR,6BAA4BzR,kBACjC,MAAOkE,kBAAiBuU,yBAAyBzY,kBAGrD,QAASiL,0BAAyBjL,kBAC9B,MAAOkE,kBAAiBwU,sBAAsB1Y,kBAGlD,QAASwF,wBAAuBxF,kBAC5B,MAAOkE,kBAAiByU,mBAAmB3Y,kBAG/C,QAASwR,4BAA2BxR,kBAChC,MAAOkE,kBAAiB0U,wBAAwB5Y,kBAGpD,QAAS6F,iCAAgC7F,kBACrC,MAAOkE,kBAAiB2U,6BAA6B7Y,kBAGzD,QAAS+M,wBAAuB/M,kBAC5B,MAAOkE,kBAAiB4U,mBAAmB9Y,kBAG/C,QAASsO,+BAA8BtO,kBACnC,MAAOkE,kBAAiB6U,6BAA6B/Y,kBAGzD,QAASuH,mBAAkBvH,kBACvB,MAAOkE,kBAAiB8U,eAAehZ,kBAG3C,QAAS2H,oBAAmBF,sBACxB,MAAOvD,kBAAiB+U,sBAAsBxR,sBAzVlD,GAAI8O,mBACAxwC,OACAuwC,eACA+B,aAKAC,UACA7M,SACAmB,WACAvI,WACAuT,cACAC,eACAE,aACAC,kBACAC,oBACAX,qBAbAG,eACIpU,QAAS,GACTqU,kBAAmB,GAsV3B,QACIrR,YAAaA,YACbhE,iBAAkBA,iBAClBrR,WAAYA,WACZka,0BAA2BA,0BAC3BX,cAAeA,cACf8L,uBAAwBA,uBACxBlT,iBAAkBA,iBAClBqI,YAAaA,YACbmB,cAAeA,cACfgL,iBAAkBA,iBAClBvT,cAAeA,cACfqM,kBAAmBA,kBACnBqH,gBAAiBA,gBACjB1C,iBAAkBA,iBAClB8C,WAAYA,WACZ3K,qBAAsBA,qBACtBzH,uBAAwBA,uBACxBqS,sBAAuBA,sBACvBC,oBAAqBA,oBACrBlwC,SAAUA,SACVy7B,yBAA0BA,yBAC1B8N,4BAA8BA,4BAC9BxG,yBAA2BA,yBAC3BzF,uBAAyBA,uBACzBgM,2BAA8BA,2BAC9B3L,gCAAkCA,gCAClCkH,uBAAyBA,uBACzBuB,8BAAgCA,8BAChC/G,kBAAoBA,kBACpBI,mBAAoBA,uBC/XpC1sC,QAAQC,OAAO,WACVogB,QAAQ,+BAAgC,oBAAqB,kBAAmB,SAAU49B,kBAAmBl5C,iBAC1G,YAEA,IAAIglC,eAAgB,SAAUmU,aAAch+B,UAAW3K,gBAAiB4oC,qBAAsBC,kBAC1F,GAAIC,QAASt5C,gBAAgBu5C,YAAYH,sBAAwB,uBAAwB,MAAO,iBAC5FI,UAAY,kBAAqB,GAAQ,EAC5CC,YAAc,SAAWjpC,gBAAgBkpC,KAAO,WAAalpC,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,MAAQ,cAAgBm+B,SAE3I,OAAON,mBAAkBv9B,IAAI,WAAWC,IAAI,YAAcT,UAAW,gBAAkBg+B,aAAeM,aAAa99B,MAA5Gu9B,WAA0HI,OAAOK,OAGxIC,uBAAyB,SAAUT,aAAch+B,UAAWi+B,sBAC5D,GAAIE,QAASt5C,gBAAgBu5C,YAAYH,sBAAwB,uBAAwB,MAAO,yBAEhG,OAAOF,mBAAkBv9B,IAAI,WAAWC,IAAI,YAAcT,UAAW,oBAAsBg+B,cAAcx9B,MAAlGu9B,WAAgHI,OAAOK,OAG9H1U,kCAAoC,SAAUkU,aAAch+B,UAAWi+B,sBACvE,GAAIE,QAASt5C,gBAAgBu5C,YAAYH,sBAAwB,uBAAwB,MAAO,qCAC5FK,YAAc,4BAClB,OAAOP,mBAAkBv9B,IAAI,WAAWC,IAAI,YAAcT,UAAW,gBAAkBg+B,aAAeM,aAAa99B,MAA5Gu9B,WAA0HI,OAAOK,MAG5I,QACI3U,cAAeA,cACf4U,uBAAwBA,uBACxB3U,kCAAmCA,sCC3B/ChqC,QAAQC,OAAO,WAAWogB,QAAQ,oBAC7B,oBAAqB,qBAAsB,SAAUC,kBAAmBic,oBACrE,YA0CA,SAAS4M,eAAc3oB,KACvB,GAAIC,aAAcH,kBAAkBI,IAAI,UACpC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,eAAeE,MAG5D,QAASg8B,kBAAiBl8B,KACtB,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,4BAA4BE,MAGzE,QAASk+B,YAAWp+B,KAChB,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,YAAYE,MAGzD,QAASm+B,iBAAgBr+B,KACrB,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,iBAAiBE,MAQ9D,QAASo+B,WAAUt+B,KACf,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,WAAWE,MAGxD,QAASq+B,+BAA8Bv+B,KACnC,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,+BAA+BE,MAG5E,QAASu8B,YAAWz8B,KAChB,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,YAAYE,MAGzD,QAAS4xB,sBAAqBzQ,kBAC1B,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYkhB,iBAAiB9D,WAAWrM,UAAU,qBAAsBmQ,kBAGnG,QAASgJ,wBAAuB3qB,WAC5B,GAAIO,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYT,UAAY,yBAAyBQ,MAG5E,QAAS84B,kBAAiB1uC,OAAQozC,cAC9B,GAAIz9B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAY7V,OAAS,mBAAqBozC,cAAcx9B,MAGnF,QAAS6yB,gCAA+BzoC,OAAQozC,cAC5C,GAAIz9B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAY7V,OAAS,kCAAoCozC,cAAcx9B,MAGlG,QAASqpB,eAAcj/B,OAAQozC,cAC3B,GAAIz9B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAY7V,OAAS,eAAiBozC,cAAcx9B,MAG/E,QAAS0pB,wBAAuBt/B,OAAQq/B,UACpC,GAAI1pB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAY7V,OAAS,0BAA4Bq/B,UAAUzpB,MAGtF,QAASs+B,6BAA4Bl0C,OAAQq/B,SAAU50B,iBACnD,GAAIkL,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,SAAWjpC,gBAAgBkpC,KAAO,WAAalpC,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,KAEtH,OAAOK,aAAYE,IAAI,UAAY7V,OAAS,0BAA4Bq/B,SAAWqU,aAAa99B,MAGpG,QAASw0B,YAAWrT,kBAChB,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYkhB,iBAAiB9D,UAAY,QAAQrM,UAAU,OAAQmQ,kBAG9F,QAAS+S,uBAAsB/S,kBAC3B,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYkhB,iBAAiB9D,UAAY,aAAa7P,WAAW2T,kBAG5F,QAAS2S,WAAU3S,kBACf,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYkhB,iBAAiB9D,UAAY,QAAQrM,UAAU,MAAOmQ,kBAG7F,QAASuK,kBAAiBthC,QACtB,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAY7V,OAAS,mBAAmB4V,MAGnE,QAASurB,uBAAsBnhC,OAAQyK,iBACnC,GAAIkL,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,SAAWjpC,gBAAgBkpC,KAAO,WAAalpC,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,KACtH,OAAOK,aAAYE,IAAI,UAAY7V,OAAS,mBAAqB0zC,aAAa99B,MAGlF,QAASs1B,iBAAgBlrC,OAAQ+qC,SAC7B,GAAIp1B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAY7V,OAAS,kBAAoB+qC,SAASn1B,MAG7E,QAASu+B,sBAAsBn0C,OAAQ+qC,QAAStgC,iBAC5C,GAAIkL,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,SAAWjpC,gBAAgBkpC,KAAO,WAAalpC,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,KAEtH,OAAOK,aAAYE,IAAI,UAAY7V,OAAS,kBAAoB+qC,QAAU2I,aAAa99B,MAG3F,QAASw1B,oBAAmBh2B,UAAW21B,SACnC,GAAIp1B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYT,UAAY,sBAAwB21B,SAASn1B,MAGpF,QAAS80B,mBAAmB1qC,QACxB,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAY7V,OAAS,oBAAoB4V,MAGpE,QAAS68B,uBAAsB1b,kBAC3B,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,kBAAkB7P,WAAW2T,kBAGhH,QAAS2b,0BAAyB3b,kBAC9B,GAAIphB,aAAcH,kBAAkBI,IAAI;AACxC,MAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,qBAAqB7P,WAAW2T,kBAGnH,QAAS4b,uBAAsB5b,kBAC3B,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,iBAAiB7P,WAAW2T,kBAG/G,QAAS6b,oBAAmB7b,kBACxB,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,gBAAgB7P,WAAW2T,kBAG9G,QAAS8b,yBAAwB9b,kBAC7B,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,oBAAoB7P,WAAW2T,kBAGlH,QAAS+b,8BAA6B/b,kBAClC,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,yBAAyB7P,WAAW2T,kBAGvH,QAASgc,oBAAmBhc,kBACxB,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,eAAe7P,WAAW2T,kBAG7G,QAASic,8BAA6Bjc,kBAClC,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,yBAAyB7P,WAAW2T,kBAGvH,QAASkc,gBAAelc,kBACpB,GAAIphB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,wBAA0BkhB,iBAAiB9D,UAAY,mBAAmB7P,WAAW2T,kBAGjH,QAASmc,uBAAsBxR,sBAC3B,GAAI/rB,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAK,8BAA8BuN,WAAWse,sBApNrE,GAAIzW,YAAa,SAAoBvV,KACjC,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,YAAYE,OAGrD4uB,cAAgB,SAAuB9uB,IAAK0+B,SAC5C,GAAIz+B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,YAAYsc,UAAUoiB,UAG/DjP,0BAA4B,SAAmCntC,QAC/D,MAAOy5B,oBAAmBM,YAAY,iBAAkB/5B,SAGxDq8C,WAAa,SAAoB3+B,KACjC,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAUH,KAAKE,OAGtCy5B,iBAAmB,SAA0B35B,IAAK45B,IAAKlmC,aACvD,GAAIuM,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,SAAUH,KAAKkR,UAAW,YAAa0oB,IAAIA,IAAKlmC,YAAYA,eAInFg0B,iBAAmB,SAA0B1nB,IAAK4+B,SAClD,GAAI3+B,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,kBAAkBE,KAAK2+B,iBAAkBD,WAGlF7O,YAAc,SAAqB/vB,KACnC,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,aAAaE,OAGtDgxB,cAAgB,SAAuBlxB,KACvC,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,eAAeE,OAuBxDm8B,gBAAkB,SAAyBr8B,KAC3C,GAAIC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,UAAYH,IAAM,iBAAiBE,MAyJ9D,QACIqV,WAAYA,WACZka,0BAA2BA,0BAC3BX,cAAeA,cACfpH,iBAAkBA,iBAClBiX,WAAYA,WACZhF,iBAAkBA,iBAClB0C,gBAAiBA,gBACjBtM,YAAaA,YACbmB,cAAeA,cACfvI,cAAeA,cACfuT,iBAAkBA,iBAClBkC,WAAYA,WACZC,gBAAiBA,gBACjBC,UAAWA,UACXtJ,kBAAmBA,kBACnBuJ,8BAA+BA,8BAC/B9B,WAAYA,WACZ3K,qBAAsBA,qBACtBzH,uBAAwBA,uBACxB2O,iBAAkBA,iBAClBzP,cAAeA,cACfK,uBAAwBA,uBACxB4U,4BAA6BA,4BAC7B5S,iBAAkBA,iBAClBH,sBAAuBA,sBACvBiJ,WAAYA,WACZN,sBAAuBA,sBACvBJ,UAAWA,UACXwB,gBAAiBA,gBACjBiJ,qBAAsBA,qBACtB/I,mBAAoBA,mBACpB3C,+BAAgCA,+BAChCgK,sBAAwBA,sBACxBC,yBAA2BA,yBAC3BC,sBAAwBA,sBACxBC,mBAAqBA,mBACrBC,wBAA0BA,wBAC1BC,6BAA+BA,6BAC/BC,mBAAqBA,mBACrBC,6BAA+BA,6BAC/BC,eAAiBA,eACjBC,sBAAuBA,0BCrQnCh+C,QAAQC,OAAO,cAEX,sBACA,UACA,WACA,SACA,YACA,UACA,cACA,UACA,eACA,YACA,iBAEA,MACA,UAEA,cACA,gBACA,gBACA,uBACA,sBACA,uBCtBJD,QAAQC,OAAO,cAAcK,QAAQ,oBAAqB,iBAAkB,qBACxE,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIK,iBAAmBE,YAAa,YAEhCN,WACAu+C,YACIr+C,MAAO,aACPC,MAAO,eACPC,eAAgBA,gBAEpBo+C,sBACIt+C,MAAO,kCACPC,MAAO,eACPC,eAAgBA,gBAEpBq+C,2BACIv+C,MAAO,uCACPC,MAAO,iCACPC,eAAgBA,gBAEpBs+C,gCACIx+C,MAAO,4CACPC,MAAO,6DACPC,eAAgBA,gBAEpBu+C,kBACIz+C,MAAO,mBACPC,MAAO,mCACPC,eAAgBA,gBAEpBw+C,4BACI1+C,MAAO,wCACPC,MAAO,eACPC,eAAgBA,gBAEpBy+C,sCACI3+C,MAAO,kDACPC,MAAO,6DACPC,eAAgBA,gBAIxBN,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAUu+C,WAAWr+C,OACxBa,IAAKf,UAAUu+C,WAAWp+C,MAC1Ba,YAAa,oCACbC,WAAY,iBACZC,YAAa,cACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,gBAG3EpB,MAAMF,UAAUw+C,qBAAqBt+C,OAClCa,IAAKf,UAAUw+C,qBAAqBr+C,MACpCa,YAAa,oCACbC,WAAY,iBACZC,YAAa,iBAEhBhB,MAAMF,UAAUy+C,0BAA0Bv+C,OACvCa,IAAKf,UAAUy+C,0BAA0Bt+C,MACzCa,YAAa,yCACbC,WAAY,sBACZC,YAAa,qBAEhBhB,MAAMF,UAAU0+C,+BAA+Bx+C,OAC5Ca,IAAKf,UAAU0+C,+BAA+Bv+C,MAC9Ca,YAAa,8CACbC,WAAY,2BACZC,YAAa,0BAEhBhB,MAAMF,UAAU2+C,iBAAiBz+C,OAC9Ba,IAAKf,UAAU2+C,iBAAiBx+C,MAChCa,YAAa,0CACbwB,QAAUs8C,OAAQ,SAClB79C,WAAY,uBACZC,YAAa,sBAEhBhB,MAAMF,UAAU4+C,2BAA2B1+C,OACxCa,IAAKf,UAAU4+C,2BAA2Bz+C,MAC1Ca,YAAa,oCACbC,WAAY,uBACZC,YAAa,iBAEhBhB,MAAMF,UAAU6+C,qCAAqC3+C,OAClDa,IAAKf,UAAU6+C,qCAAqC1+C,MACpDa,YAAa,8CACbC,WAAY,iCACZC,YAAa,6BC3F7BjC,QAAQC,OAAO,cAAcsC,KAAK,iBAAkB,SAASC,gBAC3D,YAEAA,gBAAeC,IAAI,8CACjB,i7LAwNFD,eAAeC,IAAI,yCACjB,ulKAgLFD,eAAeC,IAAI,oCACjB,05FAsHFD,eAAeC,IAAI,0CACjB,6wQAyPFD,eAAeC,IAAI,oCACjB;IC/vBJ,WACI,YACA,IAAIq9C,8BAA+B,SAAUC,YAAaC,YACtD,MAAO,UAAUl9C,OAAQiR,aAAcqC,KAAM6pC,cAAe72C,UAAWO,+BAAgCu2C,qBAAsB9H,kBAAmB/uC,KAAMR,kBAAmBiB,QAASR,QAASizB,mBAAoBhvB,oBAAqBsoB,gBAuChO,QAASpX,YACkD,YAAnD3b,OAAOq9C,cAAcC,YAAY7rC,gBACjCzR,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACP4pC,qBACKG,yBAAyBn9B,cAAc7b,GAAI0M,aAAa1M,IACxD9C,KAAK,SAAUC,MAWZ,MAVA1B,QAAOq9C,cAAc56B,SAAWje,EAAE9C,MAC7B0Z,QAAQ,SAAUuQ,KACfA,IAAI6xB,kBAAoBlI,kBAAkBmI,mBAAmB9xB,IAAI6xB,mBACjE7xB,IAAI+xB,4BAA8BpqC,KAAKwnB,YAAYwa,kBAAkBqI,iBAAiBhyB,IAAIiyB,kBAC1FjyB,IAAIiyB,gBAAkBtqC,KAAKwnB,YAAYnP,IAAIiyB,iBAC3CjyB,IAAIkyB,aAAc,IAG1B79C,OAAOq9C,cAAcS,iBAAmB99C,OAAOq9C,cAAc56B,SAAS/J,OAElE1Y,OAAOq9C,cAAcS,iBAAmB,GACxC99C,OAAOq9C,cAAc56B,SAASziB,OAAOq9C,cAAcS,iBAAmB,GAAGD,aAAc,EAEhFvI,kBAAkByI,mBAAmB39B,cAAc7b,IACrD9C,KAAK,SAAUC,MACZ,GAAIs8C,YAAax5C,EAAEC,KAAK/C,KAAK,GAAGu8C,iBAAmBv5C,GAAI1E,OAAOq9C,cAAc56B,SAAS,GAAGy7B,kBACpFF,cACAh+C,OAAOm+C,WAAcH,WAAWI,qBAAuBJ,WAAWK,mBAK9Er+C,OAAOm+C,YAAa,OAGpBpgC,sBACAA,qBAAsB,EACtBtT,oBAAoBsT,2BA9BhCq/B,SAiCW,SAAUvpC,UACb7T,OAAO8T,aAAaD,YAlC5BupC,WAoCa,WACLp9C,OAAOwH,SAAU,EACjBlB,UAAUg4C,KAAK,2BACfnB,mBAIZ1jB,mBAAmBM,YAAY,sBAAuB/5B,QArF1DA,OAAOwH,SAAU,EACjBxH,OAAOu+C,UAAW,EAElBv+C,OAAOw+C,aAAezrB,eAAesnB,oBAAoB,GAAG,IAE5Dr6C,OAAOq9C,eACH56B,SAAU,KACVq7B,iBAAkB,EAClBR,YAAa,GAEjB,IAAIl9B,eAAgBvZ,+BAA+BwZ,mBAE/CtC,qBAAsB,CAEqB,cAA3C9M,aAAawtC,YAAYhtC,eACzBzR,OAAO0+C,iBAAmBl4C,QAAQ,qBAClCxG,OAAOm+C,YAAa,EACpBn+C,OAAOq9C,cAAcC,YAAc,WAE/BrsC,aAAa0tC,oBAAwE,SAAlD1tC,aAAa0tC,mBAAmBltC,gBAC/DsM,qBAAsB,IAGkB,SAA3C9M,aAAawtC,YAAYhtC,eAC9BzR,OAAO0+C,iBAAmBl4C,QAAQ,iBAClCxG,OAAOm+C,YAAa,EACpBn+C,OAAOq9C,cAAcC,YAAc,SAGnCt9C,OAAO0+C,iBAAmBl4C,QAAQ,2BAA6ByK,aAAawtC,YAC5Ez+C,OAAOm+C,YAAa,EACpBn+C,OAAOq9C,cAAcC,YAAc,WAGvCt9C,OAAO4+C,eACH9J,QAAS,IAqDb90C,OAAO6+C,eAAiB,SAAwB3O,MAC5C,GAAMlwC,OAAOm+C,aAIbjO,KAAK4O,aAAc,EAEf5O,KAAK7b,QAAQ,CACbr0B,OAAOu+C,UAAW,CAElB,IAAIQ,aACAC,YAAa1J,kBAAkBrb,mCAAmCj6B,OAAO4+C,cAAc9J,SACvFmK,gBAAiBhuC,aAAa1M,GAC9B02B,UAAW7a,cAAc7b,GAG7B64C,sBACKyB,eAAez+B,cAAc7b,GAAIw6C,YACjCt9C,KAAK,WACFsE,kBAAkBK,YAAYC,SAAU42C,YAAat4B,KAAMu4B,aAC3Dl2C,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,iCAJ3C42C,SAMW,WACHp2C,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0DAPzC42C,WASa,WACLp9C,OAAOu+C,UAAW,MAKlC5iC,aAGJujC,yBAA2B,GAAIlC,8BAA6B,6BAA+ByB,YAAa,aACxGU,+BAAiC,GAAInC,8BAA6B,oBAAsBD,OAAQ,SACpG7/C,SAAQC,OAAO,cAAc+B,WAAW,4BACvC,SAAU,eAAgB,OAAQ,gBAAiB,YAAa,iCAAkC,uBAAwB,oBAAqB,OAAQ,oBAAqB,UAAW,aAAc,qBAAsB,sBAAuB,iBAC/OggD,2BACJhiD,QAAQC,OAAO,cAAc+B,WAAW,kCACvC,SAAU,eAAgB,OAAQ,gBAAiB,YAAa,iCAAkC,uBAAwB,oBAAqB,OAAQ,oBAAqB,UAAW,aAAc,qBAAsB,sBAAuB,iBAC/OigD,oCCrIR,WACI,YACA,IAAIC,wBAAyB,SAAgCpjB,UACzD,MAAO,UAA4Bh8B,OAAQsT,KAAMrC,aAAcpK,+BAAgCd,kBAAmBq3C,qBAAsB9H,kBAAmBviB,eAAgBvsB,SAyBvK,QAASu3C,sBACL,MAAOzI,mBAAkByI,mBAAmB39B,cAAc7b,IACrD9C,KAAK,SAAUC,MACZ,GAAI29C,aACAC,gBAAkB59C,KAAK,EAGvB29C,aADAE,uBACc/6C,EAAE86C,gBAAgBrB,iBAC3B7rC,QAASgiC,SAAY,EAAMoL,wBAA2B,IACtDhjC,QAEShY,EAAE86C,gBAAgBrB,iBAC3B7rC,QAASgiC,SAAY,EAAMgK,oBAAuB,EAAMC,eAAiB,IACzE7hC,QAGT6iC,YAAY1mC,MAEJy7B,SAAS,EACT1vC,GAAI,uCACJs4B,KAAMx2B,QAAQ,gBACd63C,eAAe,IAGvBr+C,OAAOy/C,gBAAkBJ,YACzBr/C,OAAO0/C,2BAA6B,iBAxBrCpK,SA0BI,SAAUzhC,UACb7T,OAAO8T,aAAaD,SAAU,GAAI,cAsC9C,QAASiqB,cAC0C,aAA3C7sB,aAAawtC,YAAYhtC,eACzBzR,OAAO0+C,iBAAmBl4C,QAAQ,SAClCxG,OAAO2/C,cAAcC,2BAA6B,WAClD5/C,OAAO6/C,qBAAsB,GAEmB,SAA3C5uC,aAAawtC,YAAYhtC,eAC9BzR,OAAO0+C,iBAAmBl4C,QAAQ,iBAClCxG,OAAO2/C,cAAcC,2BAA6B,OAClD5/C,OAAO6/C,qBAAsB,IAG7B7/C,OAAO8/C,iBAAmB,0BAA4B7uC,aAAawtC,YACnEz+C,OAAO2/C,cAAcC,2BAA6B,UAClD5/C,OAAO6/C,qBAAsB,GAEjC7/C,OAAO+/C,YAAY//C,OAAO2/C,eA1G9B3/C,OAAOwH,SAAU,CAEjB,IAAI+3C,wBAAoE,aAA3CtuC,aAAawtC,YAAYhtC,aAEtDzR,QAAO6/C,qBAAsB,EAC7B7/C,OAAOw+C,aAAezrB,eAAesnB,oBAAoB,GAAG,IAE5Dr6C,OAAOggD,iBACHv9B,SAAU,KACVq7B,iBAAkB,GAGtB99C,OAAOigD,0BAA4B,iCAEnCjgD,OAAO2/C,eACHzB,iBAAkB,uCAClB0B,2BAA4B,GAC5BM,cAAe,OACfpC,iBAAkB,IAClBqC,qBAAsB,OAG1B,IAAI//B,eAAgBvZ,+BAA+BwZ,kBAkCnDrgB,QAAO+/C,YAAc,SAASJ,eAC4C,YAAlE3/C,OAAO2/C,cAAcC,2BAA2BnuC,gBAIpDzR,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACP4pC,qBACK2C,YAAY3/B,cAAc7b,GAAIo7C,eAC9Bl+C,KAAK,SAAUC,MACZ1B,OAAOggD,gBAAgBv9B,SAAWje,EAAE9C,MAC/B0Z,QAAQ,SAAUuQ,KACfA,IAAI6xB,kBAAoBlI,kBAAkBmI,mBAAmB9xB,IAAI6xB,mBACjE7xB,IAAIiyB,gBAAkBtqC,KAAKwnB,YAAYwa,kBAAkBqI,iBAAiBhyB,IAAIiyB,kBAER,aAAlE59C,OAAO2/C,cAAcC,2BAA2BnuC,gBAChB,MAA5Bka,IAAIy0B,qBACJz0B,IAAI00B,YAAa,EAGjB10B,IAAI00B,YAAa,KAIjCrgD,OAAOggD,gBAAgBlC,iBAAmB99C,OAAOggD,gBAAgBv9B,SAAS/J,SAjBlF0kC,SAmBW,SAAUvpC,UACb7T,OAAO8T,aAAaD,YApB5BupC,WAsBa,WACLp9C,OAAOwH,SAAU,MAuB7BxH,OAAOsgD,eAAiB,SAAwB/7C,IAC5CvE,OAAOwH,SAAU,CAEjB,IAAI+4C,cAAe/7C,EAAEC,KAAKzE,OAAOy/C,iBAAkB/6C,GAAIH,IACvDvE,QAAO0/C,2BAA6Ba,aAAavjB,KACjDh9B,OAAO2/C,cAAczB,iBAAmBqC,aAAa77C,GACrD1E,OAAO2/C,cAAcO,cAAgB,OAErClgD,OAAO+/C,YAAY//C,OAAO2/C,gBAG9B3/C,OAAOwgD,qBAAuB,SAA8B/3C,SACc,aAAlEzI,OAAO2/C,cAAcC,2BAA2BnuC,cAChD1L,kBAAkBK,YAAYC,SAAUrG,OAAOigD,0BAA2Bt7B,MAAO85B,YAAa,WAAYl6C,GAAIkE,QAAQg4C,UAAW9B,mBAAoBl2C,QAAQ43C,cAG7Jt6C,kBAAkBK,YAAYC,SAAUrG,OAAOigD,0BAA2Bt7B,MAAO85B,YAAa,OAAQl6C,GAAIkE,QAAQg4C,cAI1HzgD,OAAOqH,OAAS,WACZ02C,qBAEG/hB,UACC8B,cAGR99B,OAAOqH,WAGXq5C,oBAAsB,GAAItB,yBAAuB,GACjDuB,qBAAuB,SAAU3gD,OAAQsT,KAAMrC,aAAcpK,+BAAgCd,kBAAmBq3C,qBAAsB9H,kBAAmBviB,eAAgBvsB,QAAShC,EAAGvE,OAAQqB,yBAC7L,GAAI89C,yBAAuB,GAAO1e,KAAK9+B,KAAM5B,OAAQsT,KAAMrC,aAAcpK,+BAAgCd,kBAAmBq3C,qBAAsB9H,kBAAmBviB,eAAgBvsB,SACrLxG,OAAO4gD,aAAe,WAClB,OAAQ3gD,OAAO4gD,GAAG,qBAEtB7gD,OAAOigD,0BAA4B,uCACnCjgD,OAAO8gD,UAEGC,IAAK,QACL/jB,KAAM,QACNgkB,OAAQ,aAGRD,IAAK,SACL/jB,KAAM,OACNgkB,OAAQ,SAGlBhhD,OAAOihD,eAAiB1iC,OAExBve,OAAOkhD,aACHC,eAAgB,IAGpB7/C,wBAAwBglB,sBAAqB,GACxC7kB,KAAK,SAASC,MACX1B,OAAOkhD,YAAYC,eAAiBz/C,OAF5CJ,SAIW,WACHtB,OAAOkhD,YAAYC,eAAiB,KAG5CnhD,OAAOohD,aAAe,SAAsBC,WACxCrhD,OAAOihD,eAAiBz8C,EAAEC,KAAKzE,OAAO8gD,SAAWC,IAAKM,WAAapwC,aAAa8rC,UAAa/8C,OAAOihD,gBAAkBjhD,OAAO8gD,QAAQ,GACrI9gD,OAAO2/C,cAAcC,2BAA6B5/C,OAAOihD,eAAeD,OACxEhhD,OAAO+/C,YAAY//C,OAAO2/C,gBAE9B3/C,OAAOshD,kBAAoB,WACvBthD,OAAOuhD,YAAa,EACpBx7C,kBAAkBK,YAAaC,SAAU,gCAG7CrG,OAAOwhD,2BAA6B,SAAoC/4C,SACpEzI,OAAOuhD,YAAa,EACpBvhD,OAAOwgD,qBAAqB/3C,UAGhCzI,OAAOyhD,iBAAmB,WACtBzhD,OAAOuhD,YAAa,EACpBx7C,kBAAkBK,YAAaC,SAAU,sBAGjDnJ,SAAQC,OAAO,cAAc+B,WAAW,uBACnC,SAAU,OAAQ,eAAgB,iCAAkC,oBAAqB,uBAAwB,oBAAqB,iBAAkB,aACrJwhD,sBACRxjD,QAAQC,OAAO,cAAc+B,WAAW,wBACnC,SAAU,OAAQ,eAAgB,iCAAkC,oBAAqB,uBAAwB,oBAAqB,iBAAkB,aAAc,IAAK,SAAU,0BAClLyhD,0BCzMZzjD,QAAQC,OAAO,cAAc+B,WAAW,kBACnC,SAAU,YAAa,SAAU,0BAC9B,SAAUc,OAAQsG,UAAWrG,OAAQqB,yBACjC,YAkBA,SAASglB,wBACLhlB,wBAAwBglB,sBAAqB,GACxC7kB,KAAK,SAASC,MACX1B,OAAO6D,MAAMs9C,eAAiBz/C,OAFtCJ,SAIW,WACHtB,OAAO6D,MAAMs9C,eAAiB,KAI1C,QAAS95C,UACLif,uBA3BJtmB,OAAOwH,SAAU,EAEjBxH,OAAO6D,OACHs9C,eAAgB,IAGpBnhD,OAAO0hD,oBAAsB,SAASC,QACnB,uBAAXA,QACyB,2CAArBr7C,UAAUsgB,QACV3mB,OAAOS,UAoBnB2G,SAEArH,OAAOwH,SAAU,KCpC7B,WACI,YACA,IAAIo6C,oBAAqB,SAAU3E,YAAaC,YAC5C,MAAO,UAAUl9C,OAAQulB,GAAI1e,+BAAgCg7C,kBAAmB79C,YAAawC,QAAST,kBAAmBiB,QAASsuC,kBAAmB8H,qBAAsBj7B,UA8BvK,QAAS2/B,kBACL,MAAO99C,aAAYe,QAAQ,aACtBtD,KAAK,SAAUsgD,aACZ/hD,OAAOgiD,UAAYD,WACnB,IAAIE,gBAAiBz9C,EAAEC,KAAKs9C,aAAcG,WAAW,GAChD19C,GAAE29C,YAAYF,kBACfjiD,OAAO4+C,cAAcwD,UAAYH,eAAev9C,MAMhE,QAASq5C,sBACL,MAAOzI,mBAAkByI,mBAAmB39B,cAAc7b,IACrD9C,KAAK,SAAUC,MACZ1B,OAAOqiD,gBAAkB3gD,OAIrC,QAAS4gD,uBAEN,MAAOhN,mBAAkBiN,sBAG5B,QAAS5mC,YACL3b,OAAOwH,SAAU,EACjBxH,OAAOwT,iBACP,IAAIgvC,oBAAqBV,iBACrBW,uBAAyB1E,oBAE7Bx4B,IAAG8H,KAAKm1B,mBAAoBC,yBAAyBhhD,KAAK,WAGtD,GAFAogD,kBAAkBa,yBAAyB1iD,QAEvCA,OAAOqiD,iBAAmBriD,OAAOqiD,gBAAgB3pC,OAAS,EAAG,CAC7D1Y,OAAO4+C,cAAc+D,UAAY3iD,OAAOqiD,gBAAgB,GAAGM,UACD,aAAtD3iD,OAAOqiD,gBAAgB,GAAGM,UAAU78B,cACpC9lB,OAAO4iD,gBAAkBp8C,QAAQ,YAC4B,gBAAtDxG,OAAOqiD,gBAAgB,GAAGM,UAAU78B,cAC3C9lB,OAAO4iD,gBAAkBp8C,QAAQ,gBAC4B,aAAtDxG,OAAOqiD,gBAAgB,GAAGM,UAAU78B,cAC3C9lB,OAAO4iD,gBAAkBp8C,QAAQ,YAEjCxG,OAAO4iD,gBAAkBp8C,QAAQ,UAGrC,IAAIq8C,qBAAsBr+C,EAAExE,OAAOqiD,iBAC9BjwC,QAAQ0wC,oBAAsB,IAC9BtmC,OAeL,IAZIqmC,oBADAA,qBAAuBA,oBAAoBnqC,OAAS,EAC9BmqC,oBAAoB,GAGpB7iD,OAAOqiD,gBAAgB,GAGjDriD,OAAO4+C,cAAcmE,wBAA0BF,oBAAoBE,wBAEnE/iD,OAAOy/C,gBAAkBj7C,EAAEq+C,oBAAoB5E,iBAC1C7rC,QAAQisC,eAAiB,EAAOjK,SAAW,IAC3C53B,QAEDxc,OAAOy/C,iBAAmBz/C,OAAOy/C,gBAAgB/mC,OAAS,EAAG,CAC7D,GAAIsqC,aAAcx+C,EAAEC,KAAKzE,OAAOy/C,iBAAkB/6C,GAAI,wCACtD1E,QAAO4+C,cAAcqE,UAAY,YAAgBD,YAAYt+C,GAAK1E,OAAOy/C,gBAAgB,GAAG/6C,GAExF49C,uBACAhqC,EAAEC,KAAKvY,OAAOy/C,gBAAiB,SAAUjnC,GACrC,MAAqC,yCAAjCxY,OAAOy/C,gBAAgBjnC,GAAG9T,IAC1B1E,OAAOy/C,gBAAgB3mC,OAAON,EAAG,IAC1B,GAFX,aAtCpB+M,SA8CS,SAAU1R,UACf7T,OAAO8T,aAAaD,SAAU,GAAI,cA/CtC0R,WAgDW,WACPvlB,OAAOwH,SAAU,IA5GzBxH,OAAOwH,SAAU,EACjBxH,OAAO8W,SAAU,EACjB9W,OAAOkjD,yBAA2B/gC,SAASghC,eAAeC,kBAE1DpjD,OAAOqiD,gBAAkB,KACzBriD,OAAOy/C,gBAAkB,KAEzBz/C,OAAO4iD,gBAAkB,KAEzB5iD,OAAO4+C,eACHwD,UAAW,KACXO,UAAW,eACXI,wBAAyB,KACzBE,UAAW,KACXI,OAAQ,GACRvO,QAAS,IAGb90C,OAAOsjD,gBAEJvrC,kBAAoB/X,OAAO+X,kBAC1BR,kBAAoB,IAGxBvX,OAAOi9C,YAAcA,YACrBj9C,OAAOk9C,WAAaA,UAEpB,IAAI98B,eAAgBvZ,+BAA+BwZ,kBAqFnDrgB,QAAOujD,qCAAuC,WAC1C,GAAIC,6BAA8Bh/C,EAAExE,OAAOqiD,iBACtCjwC,QAAQ2wC,wBAA2B/iD,OAAO4+C,cAAcmE,0BACxDvmC,OAEDgnC,8BAA+BA,4BAA4B9qC,SAC3D1Y,OAAOy/C,gBAAkBj7C,EAAEg/C,4BAA4B,GAAGvF,iBACrD7rC,QAAQisC,eAAiB,EAAOjK,SAAW,IAC3C53B,QAEDxc,OAAOy/C,iBAAmBz/C,OAAOy/C,gBAAgB/mC,OAAS,IAC1D1Y,OAAO4+C,cAAcqE,UAAYjjD,OAAOy/C,gBAAgB,GAAG/6C,MAMvE1E,OAAOyjD,YAAc,SAAqBvT,MAQtC,GAPAA,KAAK4O,aAAc,EAEmB,yCAAnC9+C,OAAO4+C,cAAcqE,WAA2G,IAAnDjjD,OAAOsjD,eAAevrC,kBAAkBW,SAEpH1Y,OAAOsjD,eAAe/rC,kBAAoB,0CAC1C24B,KAAK7b,QAAS,GAEd6b,KAAK7b,OAAQ,CACbr0B,OAAO8W,SAAU,CAEjB,IAAI4sC,wBAAyBl/C,EAAEC,KAAKzE,OAAOy/C,iBAAkB/6C,GAAI1E,OAAO4+C,cAAcqE,YAElFlE,YACA9jB,UAAW7a,cAAc7b,GACzB69C,UAAWpiD,OAAO4+C,cAAcwD,UAChCW,wBAAyB/iD,OAAO4+C,cAAcmE,wBAC9CJ,UAAW3iD,OAAO4+C,cAAc+D,UAChCM,UAAWjjD,OAAO4+C,cAAcqE,UAChCI,OAAQK,uBAAuB1mB,KAAO,MAAQh9B,OAAO4+C,cAAcyE,OACnEvO,QAASQ,kBAAkBrb,mCAAmCj6B,OAAO4+C,cAAc9J,SACnF6O,OAAQ,aACRC,cAAgB5jD,OAAOsjD,eAAevrC,kBAG1CqlC,sBACKyG,cAAczjC,cAAc7b,GAAIw6C,YAChCt9C,KAAK,WACFsE,kBAAkBK,YAAYC,SAAU42C,YAAat4B,KAAMu4B,aAC3Dl2C,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,iCAJ3C42C,SAMW,WACHp2C,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0DAPzC42C,WASa,WACLp9C,OAAO8W,SAAU,MAKjC6E,aAIJmoC,eAAiB,GAAIlC,oBAAmB,6BAA+BnD,YAAa,aACpFsF,qBAAuB,GAAInC,oBAAmB,oBAAsB7E,OAAQ,SAChF7/C,SAAQC,OAAO,cAAc+B,WAAW,kBACnC,SAAU,KAAM,iCAAkC,oBAAqB,cAAe,aAAc,oBAAqB,UAAW,oBAAqB,uBAAwB,WAC9K4kD,iBACR5mD,QAAQC,OAAO,cAAc+B,WAAW,wBACnC,SAAU,KAAM,iCAAkC,oBAAqB,cAAe,aAAc,oBAAqB,UAAW,oBAAqB,uBAAwB,WAC9K6kD,0BCxLZ7mD,QAAQC,OAAO,cAAcogB,QAAQ,qBAChC,OAAQ,KAAM,aAAc,iCAAkC,uBAAwB,UAAU,yBAC7F,SAAUjK,KAAMiS,GAAI/e,QAASK,+BAAgCu2C,qBAAsBvuB,QAAS3d,wBAExF,YAEA,SAAS8yC,2BAA0Bl/C,SAAUsY,WACzCyR,QAAQI,IAAI,kBAAoB7R,UAAWtY,UAG/C,QAASm/C,2BAA0B7mC,WAC/B,MAAOyR,SAAQjR,IAAI,kBAAoBR,WAG3C,QAAUmlC,uBAEN,GAAIvqC,aAAc9G,uBAAuBQ,oBACzC,OAAOsG,aAAYE,yBAAyBwK,SAKhD,QAASwhC,6BAA8B,MAAO,GAC9C,QAASC,wBAAyB,MAAO,GACzC,QAASC,6BAA8B,MAAO,GAC9C,QAASC,wBAAyB,MAAO,GACzC,QAASC,gCAAiC,MAAO,GACjD,QAASC,+BAAgC,MAAO,GAChD,QAASC,oBAAqB,MAAO,GAErC,QAASC,sBACL,GAAIhF,mBACC/6C,GAAI,uCAAwCggD,MAAOR,4BAA6BlnB,KAAMx2B,QAAQ,2BAC9F9B,GAAI,uCAAwCggD,MAAOP,uBAAwBnnB,KAAMx2B,QAAQ,sBACzF9B,GAAI,uCAAwCggD,MAAON,4BAA6BpnB,KAAMx2B,QAAQ,2BAC9F9B,GAAI,uCAAwCggD,MAAOL,uBAAwBrnB,KAAMx2B,QAAQ,sBACzF9B,GAAI,uCAAwCggD,MAAOJ,+BAAgCtnB,KAAMx2B,QAAQ,+BACjG9B,GAAI,uCAAwCggD,MAAOH,8BAA+BvnB,KAAMx2B,QAAQ,8BAChG9B,GAAI,uCAAwCggD,MAAOF,mBAAoBxnB,KAAMx2B,QAAQ,iBAG1F,OAAOi5C,iBAIX,QAAShC,oBAAmBvjB,MACxB,GAAIC,YAAaD,KAAK3pB,QAAQ,qBAAsB,GACpD4pB,YAAaA,WAAW5pB,QAAQ,oBAAqB,GAErD,IAAI6pB,IAAK,GAAIC,QAAO,OAAQ,IAI5B,OAHAF,YAAaA,WAAW5pB,QAAQ6pB,GAAI,QAEpCD,WAAaA,WAAW1e,OAK5B,QAASkiC,kBAAiBzjB,MACtB,GAAIC,YAAaD,KAEbE,GAAK,GAAIC,QAAO,KAAM,IAkB1B,OAjBAF,YAAaA,WAAW5pB,QAAQ6pB,GAAI,IAEpCA,GAAK,GAAIC,QAAO,KAAM,KACtBF,WAAaA,WAAW5pB,QAAQ6pB,GAAI,IAEpCA,GAAK,GAAIC,QAAO,OAAQ,KACxBF,WAAaA,WAAW5pB,QAAQ6pB,GAAI,KAEpCA,GAAK,GAAIC,QAAO,QAAS,KACzBF,WAAaA,WAAW5pB,QAAQ6pB,GAAI,KAEpCA,GAAK,GAAIC,QAAO,MAAO,KACvBF,WAAaA,WAAW5pB,QAAQ6pB,GAAI,IAEpCA,GAAK,GAAIC,QAAO,OAAQ,KACxBF,WAAaA,WAAW5pB,QAAQ6pB,GAAI,KAMxC,QAASH,oCAAmCC,MACxC,GAAIC,YAAaD,KAEbE,GAAK,GAAIC,QAAO,OAAQ,IAM5B,OALAF,YAAaA,WAAW5pB,QAAQ6pB,GAAI,SAEpCA,GAAK,GAAIC,QAAO,KAAM,KACtBF,WAAaA,WAAW5pB,QAAQ6pB,GAAI,SAKxC,QAASuqB,kBACL,GAAIvkC,eAAgBvZ,+BAA+BwZ,mBAC/Cs/B,eACAzB,iBAAkB,uCAClB0B,2BAA4B,WAC5BM,cAAe,OACfpC,iBAAkB,IAClBqC,qBAAsB,MAG1B,OAAO/C,sBACF2C,YAAY3/B,cAAc7b,GAAIo7C,eAC9Bl+C,KAAK,SAAUC,MACZ,GAAIkjD,UAAWpgD,EAAE9C,MACZ0Z,QAAQ,SAAUuQ,KACfA,IAAI6xB,kBAAoBC,mBAAmB9xB,IAAI6xB,mBAC/C7xB,IAAIiyB,gBAAkBtqC,KAAKwnB,YAAY6iB,iBAAiBhyB,IAAIiyB,kBAE5B,MAA5BjyB,IAAIy0B,qBACJz0B,IAAI00B,YAAa,EAGjB10B,IAAI00B,YAAa,GAG7B,OAAOuE,YAInB,QAAS7G,oBAAmB/1C,QACxB,GAAIq6C,iBAAkB4B,0BAA0Bj8C,OAEhD,OAAuB,OAAnBq6C,gBACO98B,GAAGW,KAAKm8B,iBAERjF,qBACFW,mBAAmB/1C,QACnBvG,KAAK,SAAUC,MAEZ,MADAsiD,2BAA0BtiD,KAAMsG,QACzBtG,OAMvB,OACI+7C,mBAAoBA,mBACpBE,iBAAkBA,iBAClB1jB,mCAAoCA,mCACpCwqB,mBAAoBA,mBACpBD,iBAAkBA,iBAClBH,qBAAsBA,qBACtBM,eAAgBA,eAChB5G,mBAAoBA,mBACpBwE,oBAAsBA,wBCpJtCrlD,QAAQC,OAAO,cAAcogB,QAAQ,wBAChC,oBAAqB,SAAUC,mBACxB,YAIJ,SAAS+/B,0BAAyBv1C,OAAQ68C,WACtC,GAAIlnC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,aAAe68C,UAAY,aAAajnC,MAK1F,QAASmiC,aAAY/3C,OAAQ23C,eACzB,GAAIhiC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,QAAQ4mB,UAAU,WAAY+wB,eAIvE,QAAS5B,oBAAmB/1C,QACxB,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,qBAAqB4V,MAGvE,QAASimC,eAAc77C,OAAQS,SAC3B,GAAIkV,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,WAAWojB,WAAW3iB,SAGxE,QAASo2C,gBAAe72C,OAAQS,SAC5B,GAAIkV,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,UAAUgyB,UAAUvxB,SAGtE,OACIs3C,YAAaA,YACbxC,yBAA0BA,yBAC1BQ,mBAAoBA,mBACpB8F,cAAeA,cACfhF,eAAgBA,mBCvC5B3hD,QAAQC,OAAO,kBAEX,sBACA,UACA,WACA,SACA,YACA,UACA,cACA,UACA,eACA,YACA,iBAEA,MAEA,cACA,gBACA,gBACA,uBACA,sBACA,qBACA,iBCtBJD,QAAQC,OAAO,kBAAkBK,QAAQ,oBAAqB,iBAAkB,qBAC5E,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIK,iBAAmBE,YAAa,gBAEhCN,WACA6mD,gBACI3mD,MAAO,iBACPC,MAAO,mBACPC,eAAgBA,gBAEpB0mD,0BACI5mD,MAAO,2BACPC,MAAO,8BACPC,eAAgBA,gBAEpB2mD,yBACI7mD,MAAO,0BACPC,MAAO,6BACPC,eAAgBA,gBAEpB4mD,6BACI9mD,MAAO,8BACPC,MAAO,iCACPC,eAAgBA,gBAIxBN,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAU6mD,eAAe3mD,OAC5Ba,IAAKf,UAAU6mD,eAAe1mD,MAC9Ba,YAAa,4CACbC,WAAY,qBACZC,YAAa,kBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,oBAG3EpB,MAAMF,UAAU8mD,yBAAyB5mD,OACtCa,IAAKf,UAAU8mD,yBAAyB3mD,MACxCa,YAAa,iDACbC,WAAY,0BACZE,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,+BAG3EpB,MAAMF,UAAU+mD,wBAAwB7mD,OACrCa,IAAKf,UAAU+mD,wBAAwB5mD,MACvCa,YAAa,iDACbC,WAAY,0BACZE,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,+BAG3EpB,MAAMF,UAAUgnD,4BAA4B9mD,OACzCa,IAAKf,UAAUgnD,4BAA4B7mD,MAC3Ca,YAAa,gDACbC,WAAY,yBACZE,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,uBC9DxFrC,QAAQC,OAAO,kBAAkBsC,KAAK,iBAAkB,SAASC,gBAC/D,YAEAA,gBAAeC,IAAI,gDACjB,8yJAoLFD,eAAeC,IAAI,4CACjB;AAgiBFD,eAAeC,IAAI,iDACjB,yucC1tBJzC,QAAQC,OAAO,kBAAkB+B,WAAW,0BACvC,SAAU,KAAM,cAAe,wBAC5B,SAAUc,OAAQulB,GAAIvhB,YAAakhD,uBAC/B,YA0BA,SAASpsB,YACL,GAAIqsB,cAAenhD,YAAYe,QAAQ,WAAY/E,OAAQ,aACvDolD,gBAAkBphD,YAAYe,QAAQ,cAAe/E,OAAQ,gBAC7DqlD,oBAAsBrhD,YAAYe,QAAQ,kBAAmB/E,OAAQ,kBAEzEulB,IAAG8H,KAAK83B,aAAcC,gBAAiBC,sBAAsB5jD,KAAK,WAC9D,GAAI6jD,sBAAuBJ,sBAAsBK,0BAE7CC,gBAAkBhhD,EAAEC,KAAKzE,OAAOwlD,iBAAkB9gD,GAAI4gD,qBAAqBG,gBAAgB/gD,IAC/F1E,QAAO0lD,YAAYC,2BAA6BH,gBAAgBthD,YAChElE,OAAO0lD,YAAYE,oBAAsBJ,gBAAgBxoB,KACzDh9B,OAAO0lD,YAAYG,gBAAkBP,qBAAqBO,gBAC1D7lD,OAAO0lD,YAAY9lB,OAAS0lB,qBAAqB1lB,OACjD5/B,OAAO0lD,YAAYI,oBAAsBR,qBAAqBS,SAAS7hD,WAEvE,IAAI8hD,kBAAmBxhD,EAAEC,KAAKzE,OAAO6E,WAAYH,GAAI4gD,qBAAqBS,SAASrhD,KAC/EuhD,YAAczhD,EAAEC,KAAKzE,OAAOkmD,cAAexhD,GAAIshD,iBAAiBG,sBACpEC,2BAA0BH,aAE1Bf,sBAAsBmB,4BACtBrmD,OAAOwH,SAAU,IAOzB,QAAS4+C,2BAA0BH,aAC3BA,cACAjmD,OAAOsmD,oBAAoB5hD,GAAKuhD,YAAYvhD,GAC5C1E,OAAOsmD,oBAAoBtpB,KAAOipB,YAAY/hD,YAC9ClE,OAAOsmD,oBAAoBppB,SAAW+oB,YAAYhpB,QAAQC,SAC1Dl9B,OAAOsmD,oBAAoBC,SAAWN,YAAYhpB,QAAQspB,SAC1DvmD,OAAOsmD,oBAAoBnpB,KAAO8oB,YAAYhpB,QAAQE,KACtDn9B,OAAOsmD,oBAAoBlpB,MAAQ6oB,YAAYhpB,QAAQG,MACvDp9B,OAAOsmD,oBAAoBjpB,IAAM4oB,YAAYhpB,QAAQI,IACrDr9B,OAAOsmD,oBAAoB76B,YAAcw6B,YAAYx6B,YAAYA,YACjEzrB,OAAOwmD,4BAA6B,GA7D5CxmD,OAAOwH,SAAU,EAEjBxH,OAAO0lD,aACHI,oBAAqB,GACrBH,2BAA4B,GAC5Bc,gBAAiB,GACjBZ,gBAAiB,KACjBjmB,OAAQ,GACR6lB,iBAAmB/gD,GAAI,KAG3B1E,OAAOsmD,qBACH5hD,GAAI,GACJs4B,KAAM,GACN0pB,cAAe,GACfxpB,SAAU,GACVqpB,SAAU,GACVppB,KAAM,GACNC,MAAO,GACPC,IAAK,GACL5R,YAAa,IA4BjBqN,cCrDZ57B,QAAQC,OAAO,kBAAkB+B,WAAW,sBACvC,SAAU,KAAM,OAAQ,OAAQ,oBAAqB,iCAAkC,2BAA4B,wBAAyB,sBAAuB,UAAW,aAAc,yBACzL,SAAUc,OAAQulB,GAAIjS,KAAM/M,KAAMR,kBAAmBc,+BAAgC8/C,yBAA0BzB,sBAAuBz6C,oBAAqBzD,QAASR,QAAS0K,wBACzK,YAwBA,SAAS01C,uBAAsBC,oBAAqBC,gCAChD,IAAKD,oBACD,OAAO,CAGX,IAAItlB,MAAOtjB,OAAO4oC,qBAAqBtlB,KAAKtjB,OAAO6oC,gCAAiC,OACpF,OAAQvlB,OAAQ,EAGpB,QAASwlB,wBAAuB/M,cAC5B,GAAI8M,gCAAiC7oC,SAAS+oC,SAAS,EAAG,SACtDC,iBAAmBziD,EAAEg6B,UAAUwb,aAAc,SAAUxd,MACvD,MAAOoqB,uBAAsBpqB,KAAK0qB,cAAeJ,kCAC5CtqB,KAAK2qB,kBAAkBC,kBAGhCpnD,QAAOqnD,qBAAuB7iD,EAAEyiD,iBAAiB,IAC5Cx9C,IAAI,SAAS69C,UACV,MAAO9iD,GAAEk5B,SAAS4pB,UAAaC,WAAW,EAAOC,4BAA4B,MAEhFC,OAAO,iBACPrsC,QAAQ,SAAUohB,MACfA,KAAKkrB,eAAgB,EAIrBlrB,KAAKmrB,YAAa,EAClBnrB,KAAKorB,YAAc1C,sBAAsB2C,UAAUrrB,KAAK2qB,kBAAkBziD,KAAO83B,KAAK2qB,kBAAkBC,kBAAoBlC,sBAAsB4C,aAAatrB,KAAK2qB,kBAAkBziD,KAClLuZ,OAAOue,KAAK0qB,eAAea,UAAU9pC,SAAS+oC,SAAS,EAAG,SAAU/oC,SAAS+pC,IAAI,EAAG,WAChFxrB,KAAKorB,YACLprB,KAAKmrB,YAAa,GAI1BnrB,KAAKyrB,oBAAqB,EACtB/C,sBAAsBgD,mBAAmB1rB,KAAK0qB,iBAC9C1qB,KAAKyrB,oBAAqB,KAKtCjoD,OAAOmoD,qBAAuBlB,iBAAiB,GAGnD,QAASmB,wBAAuBC,cAE5B,MADAroD,QAAOwH,SAAU,EACVm/C,yBACF5M,gBAAgB35B,cAAc7b,GAAI8jD,cAClC5mD,KAAK,SAAUC,MACZqlD,uBAAuBrlD,QAHxBilD,WAKM,WACL3mD,OAAOwH,SAAU,IAI7B,QAAS8gD,2BAA0BC,cAC3BA,cACA/jD,EAAEk5B,SAAS6qB,cAAgBhB,WAAW,IACtCvnD,OAAOwoD,mBAAqBD,aAC5BvoD,OAAOwoD,mBAAmBd,eAAgB,GAK1C1nD,OAAOwoD,mBAAqB,KAIpC,QAASC,0BACL,MAAO9B,0BACF+B,6BAA6BtoC,cAAc7b,IAC3C9C,KAAK,SAAU8mD,cACZD,0BAA0BC,gBAItC,QAASzvB,YAIL,GAHA94B,OAAOwH,SAAU,EACjBxH,OAAOwT,mBAEFxT,OAAO2oD,oBAGR,MAFA3hD,SAAQiC,IAAI,UAAW,GAAIzC,QAAQ,sDACnCT,mBAAkBK,YAAYC,SAAU,aAI5C+Z,eAAgBvZ,+BAA+BwZ,kBAE/C,IAAIuoC,4BAA6BH,yBAC7BI,0BAA4BT,uBAAuBpoD,OAAOqoD,aAC9D9iC,IAAG8H,KAAKu7B,2BAA4BC,4BAApCtjC,SAAsE,SAAU1R,UAC5E7T,OAAO8T,aAAaD,YADxB0R,WAEW,WACPvlB,OAAOwH,SAAU,IApHzBxH,OAAOwH,SAAU,EACjBxH,OAAOqnD,wBACPrnD,OAAOmoD,wBACPnoD,OAAOwoD,mBAAqB,KAC5BxoD,OAAOwnD,4BAA6B,EACpCxnD,OAAO8oD,QAAU,IAEjB9oD,OAAOqoD,cACHrnB,UAAW,WACXtE,QAAS,aACTwjB,cAAe,OACf6I,WAAY,IAGhB,IAAI/wC,aAAc9G,uBAAuBQ,oBACzC1R,QAAOgpD,uBAAyBhxC,YAAYixC,oBAAoBvmC,SAChE1iB,OAAO2oD,oBAAsB3wC,YAAYiL,iBAAiBP,SAC1D1iB,OAAOkpD,kBAAoBlxC,YAAYmxC,QAAQzmC,SAC/C1K,YAAc,IAEd,IAAIoI,eAAgBvZ,+BAA+BwZ,kBAmGnDyY,YAEA94B,OAAOopD,wCAA0C,WAE7CppD,OAAOqpD,mCAAqCrpD,OAAOqpD,mCAGvDrpD,OAAOspD,iCAAmC,SAA0CC,MAEhFA,KAAK/B,4BAA8B+B,KAAK/B,2BACxCl5B,QAAQtQ,IAAIurC,KAAK/B,6BAGrBxnD,OAAOwpD,sBAAwB,WAC3BtE,sBAAsBmB,4BACtBtgD,kBAAkBK,YAAYC,SAAU,6BAG5CrG,OAAOypD,+BAAiC,WACpC,GAAInE,uBACAxQ,SAAWpwC,GAAI1E,OAAOwoD,mBAAmB/H,WACzCsF,UAAYrhD,GAAI1E,OAAOwoD,mBAAmBzC,SAASrhD,GAAIR,YAAa,IACpEuhD,iBAAmB/gD,GAAI1E,OAAOwoD,mBAAmB/C,gBAAgB/gD,IACjEmhD,gBAAiB7lD,OAAOwoD,mBAAmBtB,cAC3CtnB,OAAQ5/B,OAAOwoD,mBAAmB5oB,OAEtCslB,uBAAsBwE,0BAA0BpE,sBAChDv/C,kBAAkBK,YAAYC,SAAU,8BAG5CrG,OAAO2pD,mBAAqB,SAA4BjE,aACpDiB,yBACKiD,wBAAwBlE,YAAYzqB,UAAWyqB,YAAYmE,cAAe,wCAC1EpoD,KAAK,WACF2mD,uBAAuBpoD,OAAOqoD,cAC9BrhD,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,wCACnCiE,oBAAoBsT,wBAL5B4oC,SAOW,WACH3/C,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,mDAQ7CxG,OAAO8pD,QAAU,SAAoBP,MAClCA,KAAKhC,WAAY,MC5KhCrqD,QAAQC,OAAO,kBAAkB+B,WAAW,2BACvC,SAAU,KAAM,OAAQ,cAAe,2BAA4B,wBAAyB,iCAAkC,wBAAyB,UAAU,aAAc,oBAC5K,SAAUc,OAAQulB,GAAIhf,KAAMvC,YAAa2iD,yBAA0BzB,sBAAuBr+C,+BAAgCkjD,sBAAuB/iD,QAASR,QAAST,mBAC/J,YAwCA,SAAS+yB,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACP4M,cAAgBvZ,+BAA+BwZ,kBAC/C,IAAI8kC,cAAenhD,YAAYe,QAAQ,WAAY/E,OAAQ,aACvDolD,gBAAkBphD,YAAYe,QAAQ,cAAe/E,OAAQ,gBAC7DqlD,oBAAsBrhD,YAAYe,QAAQ,kBAAmB/E,OAAQ,mBACrEgqD,oBAAsBC,cAE1B1kC,IAAG8H,KAAK83B,aAAcC,gBAAiBC,oBAAqB2E,sBAAsBvoD,KAAK,WAanF,GAZIzB,OAAO6E,YACP7E,OAAOkqD,iBAAmB1lD,EAAExE,OAAO6E,WAC9BuN,QAAQ+3C,qBAAuB,IAC/B3tC,SAGLxc,OAAOwlD,kBACPxlD,OAAOoqD,wBAA0B5lD,EAAExE,OAAOwlD,iBACrCpzC,QAAQ+3C,qBAAuB,IAC/B3tC,SAGL0oC,sBAAsBmF,4BAClBrqD,OAAOkqD,mBACPlqD,OAAO0lD,YAAYK,SAASrhD,GAAK1E,OAAOkqD,iBAAiB,GAAGxlD,IAE5D1E,OAAOoqD,0BACPpqD,OAAO0lD,YAAYD,gBAAgB/gD,GAAK1E,OAAOoqD,wBAAwB,GAAG1lD,GAC1E1E,OAAOsqD,mCAAqCtqD,OAAOoqD,wBAAwB,GAAGlmD,aAElFlE,OAAOuqD,WAAWh2C,aAAe,GAAI/F,UAEpC,CACD,GAAI82C,sBAAuBJ,sBAAsBK,0BAC7CC,gBAAkBhhD,EAAEC,KAAKzE,OAAOwlD,iBAAkB9gD,GAAI4gD,qBAAqBG,gBAAgB/gD,IAE/F1E,QAAO0lD,YAAYK,SAASrhD,GAAK4gD,qBAAqBS,SAASrhD,GAC/D1E,OAAO0lD,YAAYD,gBAAgB/gD,GAAK4gD,qBAAqBG,gBAAgB/gD,GAC7E1E,OAAOsqD,mCAAqC9E,gBAAgBthD,YAC5DlE,OAAO0lD,YAAY9lB,OAAS0lB,qBAAqB1lB,OACjD5/B,OAAO0lD,YAAYG,gBAAkBP,qBAAqBO,gBAC1D7lD,OAAOuqD,WAAWh2C,aAAe+wC,qBAAqBO,gBAEtDX,sBAAsBmB,4BAG1BmE,iBACApE,4BACAqE,6BAA6BzqD,OAAOuqD,WAAWh2C,aAAcvU,OAAO0lD,YAAYG,iBAEhFc,yBAAyB+D,8BAA8B1qD,UAzC3DulB,SA0CS,SAAU1R,UACf7T,OAAO8T,aAAaD,YA3CxB0R,WA4CW,WACPvlB,OAAOwH,SAAU,IAKzB,QAASyiD,gBACL,MAAOtD,0BACFgE,cACAlpD,KAAK,SAAUC,MACZkpD,WAAalpD,OAIzB,QAAS8oD,kBACLhmD,EAAE4W,QAAQpb,OAAOkqD,iBAAkB,SAAS51C,UACf,OAAtBA,SAASu2C,WACRv2C,SAASu2C,SAAWD,WAAWE,gBAK3C,QAASC,4BACL/qD,OAAOwmD,4BAA6B,EACpCxmD,OAAOsmD,oBAAoB5hD,GAAK,GAChC1E,OAAOsmD,oBAAoBtpB,KAAO,GAClCh9B,OAAOsmD,oBAAoBI,cAAgB,GAC3C1mD,OAAOsmD,oBAAoBppB,SAAW,GACtCl9B,OAAOsmD,oBAAoBC,SAAW,GACtCvmD,OAAOsmD,oBAAoBnpB,KAAO,GAClCn9B,OAAOsmD,oBAAoBlpB,MAAQ,GACnCp9B,OAAOsmD,oBAAoBjpB,IAAM,GACjCr9B,OAAOsmD,oBAAoB76B,YAAc,GAE7C,QAAS26B,6BACL2E,0BACA,IAAI/E,kBAAmBxhD,EAAEC,KAAKzE,OAAOkqD,kBAAmBxlD,GAAI1E,OAAO0lD,YAAYK,SAASrhD,IACxF,IAAIshD,kBAAoBA,iBAAiBG,qBAAsB,CAC3D,GAAIF,aAAczhD,EAAEC,KAAKzE,OAAOkmD,cAAexhD,GAAIshD,iBAAiBG,sBAChEF,eACAjmD,OAAOsmD,oBAAoB5hD,GAAMuhD,YAAc,GAAIA,YAAYvhD,GAAK,GACpE1E,OAAOsmD,oBAAoBtpB,KAAQipB,YAAuB,YAAIA,YAAY/hD,YAAc,GACrF+hD,YAAYhpB,UAERgpB,YAAYhpB,QAAQC,WACnBl9B,OAAOsmD,oBAAoBppB,SAAW+oB,YAAYhpB,QAAQC,SAC1Dl9B,OAAOwmD,4BAA6B,GAExCxmD,OAAOsmD,oBAAoBC,SAAYN,YAAYhpB,QAAgB,SAAIgpB,YAAYhpB,QAAQspB,SAAW,GACtGvmD,OAAOsmD,oBAAoBnpB,KAAQ8oB,YAAYhpB,QAAY,KAAIgpB,YAAYhpB,QAAQE,KAAO,GAC1Fn9B,OAAOsmD,oBAAoBlpB,MAAS6oB,YAAYhpB,QAAa,MAAIgpB,YAAYhpB,QAAQG,MAAQ,GAC7Fp9B,OAAOsmD,oBAAoBjpB,IAAO4oB,YAAYhpB,QAAW,IAAIgpB,YAAYhpB,QAAQI,IAAM,IAExF4oB,YAAYx6B,cAEXzrB,OAAOsmD,oBAAoB76B,YAAew6B,YAAYx6B,YAAuB,YAAIw6B,YAAYx6B,YAAYA,YAAc,MAOvI,QAASg/B,8BAA6Bl2C,aAAcy2C,cAChDhrD,OAAOirD,yBAA0B,EACjCjrD,OAAOwT,iBACP,IAAI29B,WAAYlzB,OAAO1J,cAAc+8B,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,SAC7DL,QAAUnzB,OAAOkzB,WAAW6W,IAAI,EAAG,QAAQ1W,KAAK,GAAGC,OAAO,GAAGC,OAAO,GAAGC,QAG3E,IAAIzxC,OAAO0lD,YAAYD,gBAAgB/gD,GAAI,CACvC,GAAIshD,kBAAmBxhD,EAAEC,KAAKzE,OAAOkqD,kBAAmBxlD,GAAI1E,OAAO0lD,YAAYK,SAASrhD,IACxF,IAAIshD,iBAAkB,CAClBhmD,OAAO0lD,YAAYK,SAAS7hD,YAAe8hD,iBAA4B,YAAIA,iBAAiB9hD,YAAc,GAC1GlE,OAAO0lD,YAAYK,SAAS8E,SAAY7E,iBAAyB,SAAIA,iBAAiB6E,SAAW,EACjG,IAAIxC,eACArnB,UAAWmQ,UACXzU,QAAS0U,QACT8Z,kBAAmBlrD,OAAO0lD,YAAYD,gBAAgB/gD,GAG1DiiD,0BACKwE,6BAA6B/qC,cAAc7b,GAAIyhD,iBAAiBthD,GAAI2jD,cACpE5mD,KAAK,SAAUC,MACZ1B,OAAOorD,qBAAuB5mD,EAAE9C,MAC3B0Z,QAAQ,SAAUohB,MACfA,KAAK6uB,UAAW,EACZL,cACI/sC,OAAO+sC,cAAcM,OAAO9uB,KAAKwE,aACjCxE,KAAK6uB,UAAW,OARxC1E,SAaW,SAAU9yC,UACb7T,OAAO8T,aAAaD,YAd5B8yC,WAgBa,WACL3mD,OAAOirD,yBAA0B,MAmCrD,QAASM,qBAAoBrb,MACpBlwC,OAAOuqD,WAAWh2C,aAKnB27B,KAAKsb,YAAY9jD,UAAW,GAJ5BwoC,KAAKsb,YAAY9jD,UAAW,EAC5BwoC,KAAKsb,YAAYC,QAAS,GAOlC,QAASC,4BACL1rD,OAAO2rD,yBAA2B3rD,OAAO0lD,YAAYG,gBAWzD,QAAS+F,2BAA0B1b,MAC1BlwC,OAAO0lD,YAAY9lB,OAKpBsQ,KAAK2b,kBAAkBnkD,UAAW,GAJlCwoC,KAAK2b,kBAAkBnkD,UAAW,EAClCwoC,KAAK2b,kBAAkBJ,QAAS,GAOxC,QAASK,aAAY5b,MACblwC,OAAO2rD,yBAA4Bzb,KAAKsb,YAAY9jD,UAAYwoC,KAAK2b,kBAAkBnkD,SACvFwoC,KAAK7b,QAAS,EAGd6b,KAAK7b,QAAS,EApQtBr0B,OAAOwH,SAAU,EAEjBxH,OAAOkqD,oBACPlqD,OAAOoqD,2BACPpqD,OAAOorD,wBACPprD,OAAO2rD,yBAA0B,EAEjC3rD,OAAO+rD,mBACH11C,QAAS4H,SAASwzB,SAClBua,QAAS/tC,SAAS+pC,IAAI,EAAG,SAASvW,SAClCwa,WAAW,EACXC,QAAS,MACTC,QAAS,OAGbnsD,OAAO0lD,aACHK,UAAYrhD,GAAI,GAAIR,YAAa,IACjCuhD,iBAAmB/gD,GAAI,IACvBmhD,gBAAiB,KACjBjmB,OAAQ,IAEZ5/B,OAAOuqD,YAAeh2C,aAAc,IAEpCvU,OAAOsmD,qBACH5hD,GAAI,GACJs4B,KAAM,GACN0pB,cAAe,GACfxpB,SAAU,GACVqpB,SAAU,GACVppB,KAAM,GACNC,MAAO,GACPC,IAAK,GACL5R,YAAa,IAEjBzrB,OAAOwmD,4BAA6B,CACpC,IACIoE,YADAxqC,cAAgBvZ,+BAA+BwZ,kBA4DnDyY,YAoGA94B,OAAOosD,wBAA0B,WAC7BhG,4BACAqE,6BAA6BzqD,OAAOuqD,WAAWh2C,cAC/CvU,OAAO0lD,YAAYG,gBAAkB,KACrC7lD,OAAO2rD,yBAA0B,GAIrC3rD,OAAOqsD,+BAAiC,WACpC5B,6BAA6BzqD,OAAOuqD,WAAWh2C,cAC/CvU,OAAO0lD,YAAYG,gBAAkB,KACrC7lD,OAAO2rD,yBAA0B,CACjC,IAAIW,kBAAmB9nD,EAAEC,KAAMzE,OAA8B,yBACxD0E,GAAM1E,OAAO0lD,YAAYD,gBAAgB/gD,IAC9C1E,QAAOsqD,mCAAqC,iBAAqBgC,iBAAiBpoD,YAAc,IAIpGlE,OAAOusD,kBAAoB,WACvB9B,6BAA6BzqD,OAAOuqD,WAAWh2C,cAC/CvU,OAAO0lD,YAAYG,gBAAkB,KACrC7lD,OAAO2rD,yBAA0B,GAGrC3rD,OAAOwsD,sBAAwB,WAC3BxsD,OAAO2rD,yBAA2B3rD,OAAO0lD,YAAYG,iBA4CzD7lD,OAAOysD,mBAAqB,SAA4Bvc,MAQpD,GAPAA,KAAK4O,aAAc,EAEnByM,oBAAoBrb,MACpBwb,2BACAE,0BAA0B1b,MAC1B4b,YAAY5b,MAERA,KAAK7b,OAAQ,CACbr0B,OAAO8W,SAAU,CAEjB,IAAI41C,cACAxB,kBAAmBlrD,OAAO0lD,YAAYD,gBAAgB/gD,GACtDioD,WAAY3sD,OAAO0lD,YAAYK,SAASrhD,GACxCk7B,OAAQ5/B,OAAO0lD,YAAY9lB,OAC3BimB,gBAAiB7lD,OAAO0lD,YAAYG,gBAGxCc,0BACK8F,mBAAmBrsC,cAAc7b,GAAImoD,aACrCjrD,KAAK,WACFyjD,sBAAsBmB,2BACtB,IAAIf,uBACAxQ,SAAUpwC,GAAI,IACdqhD,UACIrhD,GAAI1E,OAAO0lD,YAAYK,SAASrhD,GAChCR,YAAalE,OAAO0lD,YAAYK,SAAS7hD,aAE7CuhD,iBAAkB/gD,GAAI1E,OAAO0lD,YAAYD,gBAAgB/gD,IACzDmhD,gBAAiB7lD,OAAO0lD,YAAYG,gBACpCjmB,OAAQ5/B,OAAO0lD,YAAY9lB,OAE/BslB,uBAAsBwE,0BAA0BpE,sBAEhDv/C,kBAAkBK,YAAYC,SAAU,kCAhBhDsgD,SAmBW,WACH3/C,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,sEApBzCmgD,WAsBa,WACL3mD,OAAO8W,SAAU,QAIrB9W,QAAO2rD,wBACP3kD,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,6EAE9B0pC,KAAKsb,YAAY9jD,SACtBV,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,6EAE9B0pC,KAAK2b,kBAAkBnkD,UAC5BV,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,kFCjU3DtJ,QAAQC,OAAO,kBAAkBogB,QAAQ,4BACpC,oBAAqB,qBAAsB,SAAUC,kBAAmBic,oBACrE,YAEA,SAASmwB,yBAAwBxsC,UAAWwvC,cAAeC,UACvD,GAAIlvC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAcT,UAAY,wBAA0BwvC,cAAgB,IAAMC,UAAU7yB,YAG/G,QAAS8yB,mBAAkBvD,MACvB,GAAInsC,WAAYmsC,KAAKwD,QAAQroD,GACzBkoD,cAAgBrD,KAAK7kD,GAErBiZ,YAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAcT,UAAY,iBAAmBwvC,eAAe5yB,UAAUuvB,MAGjG,QAASyD,gBAAe5vC,UAAWwvC,eAC/B,GAAIjvC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAcT,UAAY,iBAAmBwvC,eAAehvC,MAGvF,QAASm8B,iBAAgB/xC,OAAQqgD,cAC7B,GAAI1qC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,QAAQ4mB,UAAU,eAAgBy5B,cAG3E,QAASI,wBAAuBzgD,QAC5B,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,wBAAwB4V;CAI1E,QAAS8qC,8BAA6B1gD,QAClC,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,8BAA8B4V,MAGhF,QAASutC,8BAA6BnjD,OAAQ/C,WAAYojD,cACtD,GAAI1qC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,cAAgB/C,YAAY2pB,UAAU,oBAAqBy5B,cAG7G,QAASoE,oBAAmBzkD,OAAQuhD,MAChC,GAAI5rC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,uBAAuBgyB,UAAUuvB,MAGnF,QAASmB,+BAA8B1qD,QACnC,MAAOy5B,oBAAmBM,YAAY,4BAA6B/5B,QAGvE,QAAS2qD,eACL,GAAIhtC,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,qBAAqBD,MAGhD,OACIgsC,wBAAyBA,wBACzB7P,gBAAiBA,gBACjB0O,uBAAwBA,uBACxBC,6BAA8BA,6BAC9ByC,6BAA8BA,6BAC9BsB,mBAAoBA,mBACpBO,eAAgBA,eAChBF,kBAAmBA,kBACnBpC,8BAA+BA,8BAC/BC,YAAcA,gBCnE1BztD,QAAQC,OAAO,kBAAkBogB,QAAQ,yBACnC,WACE,YAYA,SAASmsC,2BAA0BhE,aAC/BJ,qBAAqBxQ,QAAQpwC,GAAKghD,YAAY5Q,QAAQpwC,GACtD4gD,qBAAqBS,SAASrhD,GAAKghD,YAAYK,SAASrhD,GACxD4gD,qBAAqBS,SAAS7hD,YAAcwhD,YAAYK,SAAS7hD,YACjEohD,qBAAqBG,gBAAgB/gD,GAAKghD,YAAYD,gBAAgB/gD,GACtE4gD,qBAAqBO,gBAAkBH,YAAYG,gBACnDP,qBAAqB1lB,OAAS8lB,YAAY9lB,OAC1CqtB,yBAA0B,EAG9B,QAAS1H,2BACL,MAAOD,sBAGX,QAASe,6BACLf,qBAAqBxQ,QAAQpwC,GAAK,GAClC4gD,qBAAqBS,SAASrhD,GAAK,GACnC4gD,qBAAqBS,SAAS7hD,YAAc,GAC5CohD,qBAAqBG,gBAAgB/gD,GAAK,GAC1C4gD,qBAAqBO,gBAAkB,GACvCP,qBAAqB1lB,OAAS,GAC9BqtB,yBAA0B,EAI9B,QAAS5C,6BACL,MAAO4C,yBAIX,QAASpF,WAAUqF,qBACf,MAA6C,yCAAtCA,oBAAoBz7C,cAG/B,QAASq2C,cAAaoF,qBAClB,MAA6C,yCAAtCA,oBAAoBz7C,cAG/B,QAASy2C,oBAAmBrB,qBACxB,IAAKA,oBACD,OAAO,CAGX,IAAItlB,MAAOtjB,OAAO4oC,qBAAqBtlB,KAAKtjB,SAAU,OACtD,OAAiB,KAATsjB,KAtDZ,GAAI+jB,uBACAxQ,SAAWpwC,GAAI,IACfqhD,UAAYrhD,GAAI,GAAIR,YAAa,IACjCuhD,iBAAmB/gD,GAAI,IACvBmhD,gBAAiB,GACjBjmB,OAAQ,IAGRqtB,yBAA0B,CAkD9B,QACIvD,0BAA2BA,0BAC3BnE,wBAAyBA,wBACzBc,0BAA2BA,0BAC3BgE,0BAA2BA,0BAC3BxC,UAAWA,UACXC,aAAcA,aACdI,mBAAoBA,uBCrEhChrD,QAAQC,OAAO,aAEX,sBACA,UACA,WACA,SACA,YACA,UACA,cACA,UACA,eACA,YACA,iBAEA,cACA,gBACA,gBACA,uBACA,sBACA,qBACA,iBCpBJD,QAAQC,OAAO,aAAaK,QAAQ,oBAAqB,iBACrD,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIK,iBAAmBE,YAAa,WAEhCN,WACAkvD,WACIhvD,MAAO,YACPC,MAAO,aACPC,eAAgBA,gBAIxBN,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAUkvD,UAAUhvD,OACvBa,IAAKf,UAAUkvD,UAAU/uD,MACzBa,YAAa,kCACbC,WAAY,gBACZC,YAAa,aACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,kBCvBxFrC,QAAQC,OAAO,aAAasC,KAAK,iBAAkB,SAASC,gBAC1D,YAEAA,gBAAeC,IAAI,+BACjB,s+LAoNFD,eAAeC,IAAI,qCACjB,4rRAkTFD,eAAeC,IAAI,gCACjB,6wJAgLFD,eAAeC,IAAI,8BACjB,27IA4KFD,eAAeC,IAAI,kCACjB;AAgRFD,eAAeC,IAAI,8BACjB,qtOAsPFD,eAAeC,IAAI,iCACjB,wxJAkLFD,eAAeC,IAAI,sCACjB,kjNCriDJzC,QAAQC,OAAO,aAAa+B,WAAW,uBAClC,SAAU,KAAM,oBAAqB,oBAAqB,iBAAkB,mBAAoB,iCAAkC,4BAC/H,SAAUc,OAAQulB,GAAIxf,kBAAmBuvC,kBAAmBviB,eAAgB1J,iBAAkBxiB,+BAAgCumD,2BAE1H,YAaA,SAASxT,oBACL,MAAO7mB,gBACF6mB,iBAAiBr5B,iBACjB9e,KAAK,SAAUC,MACZ1B,OAAOqtD,KAAO3rD,OAHfqxB,SAKI,SAAUlf,UACb7T,OAAO8T,aAAaD,YAIhC,QAASywB,oBACL,MAAOvR,gBACFuR,mBACA7iC,KAAK,SAAUjE,QACZwC,OAAO0iC,QAAQgC,OAASlnC,SAIpC,QAASmnD,kBACL,MAAOrP,mBACFqP,iBACAljD,KAAK,SAAUC,MACZ1B,OAAO4kD,SAAWljD,OAHnB4zC,SAKI,SAAUzhC,UACb7T,OAAO8T,aAAaD,YAWhC,QAASilB,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACP+M,gBAAkB1Z,+BAA+BwZ,mBAAmB9b,EAEpE,IAAI+oD,iBAAkB3I,iBAClB4I,YAAc3T,mBACd4T,mBAAqBlpB,kBAEzB/e,IAAG8H,KAAKigC,gBAAiBC,YAAaC,qBAAqB/rD,KAAK,WAC5DzB,OAAOwH,SAAU,IA1DzBxH,OAAOwH,SAAU,EAEjBxH,OAAOw+C,aAAezrB,eAAesnB,oBAAoB,GAAG,IAC5Dr6C,OAAOqtD,KAAO,KACdrtD,OAAO4kD,SAAW,KAClB5kD,OAAO0iC,SAAWgC,OAAU,IAC5B1kC,OAAOytD,kBAAoBL,0BAA0BM,iBAAiB1oC,mBAAmBtC,SACzF1iB,OAAOggD,gBAAkBoN,0BAA0BM,iBAAiB/qC,oBAAoBD,QAExF,IAAInC,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,EAiCxEvE,QAAO2tD,KAAO,SAASC,MACnB5tD,OAAO4tD,KAAOA,KAEd90B,YAiBJ94B,OAAO6tD,oBAAsB,WAEzB7tD,OAAO4tD,KAAK/P,aAAe79C,OAAO4tD,KAAK/P,YACvCx0B,iBAAiBykC,6BAA6B9tD,OAAO4tD,OAGzD5tD,OAAO+tD,0BAA4B,SAAmCtlD,SAClE1C,kBAAkBK,YAAYC,SAAU,iCAAkCse,MAAO85B,YAAa,WAAYl6C,GAAIkE,QAAQg4C,UAAW9B,mBAAoBl2C,QAAQ43C,eAGjKrgD,OAAOguD,wBAA0B,WAC7BjoD,kBAAkBK,YAAYC,SAAUrG,OAAO0iC,QAAQgC,OAAOuU,eAAeN,MAAOh0B,MAAOpgB,GAAIgc,uBC/E/GrjB,QAAQC,OAAO,aAAa+B,WAAW,6BAClC,SAAU,2BAA4B,wBAAyB,mBAAoB,sBAAuB,UAAW,aAAc,iCAAkC,yBAClK,SAAUc,OAAQ2mD,yBAA0BzB,sBAAuB77B,iBAAkB5e,oBAAqBzD,QAASR,QAASK,+BAAgCqK,wBAExJ,YAWA,SAAS61C,wBAAuB/M,cAC5Bh6C,OAAOg6C,aAAex1C,EAAEw1C,cACnB5+B,QAAQ,SAAUohB,MACfA,KAAKkrB,eAAgB,EAIrBlrB,KAAKmrB,YAAa,EAClBnrB,KAAKorB,YAAc1C,sBAAsB2C,UAAUrrB,KAAK2qB,kBAAkBziD,KAAO83B,KAAK2qB,kBAAkBC,kBAAoBlC,sBAAsB4C,aAAatrB,KAAK2qB,kBAAkBziD,KAClLuZ,OAAOue,KAAK0qB,eAAea,UAAU9pC,SAAS+oC,SAAS,EAAG,SAAU/oC,SAAS+pC,IAAI,EAAG,WAChFxrB,KAAKorB,YACLprB,KAAKmrB,YAAa,GAI1BnrB,KAAKyrB,oBAAqB,EACtB/C,sBAAsBgD,mBAAmB1rB,KAAK0qB,iBAC9C1qB,KAAKyrB,oBAAqB,KAW1C,QAASnvB,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,iBAEP,IAAI60C,eACArnB,UAAW/iB,SAASC,OAAO,cAC3Bwe,QAAS,aACTwjB,cAAe,MACf6I,WAAY,IAGhBpC,0BACK5M,gBAAgBx5B,gBAAiB8nC,cACjC5mD,KAAK,SAAUC,MACZqlD,uBAAuBrlD,QAH/BilD,SAKW,SAAU9yC,UACb7T,OAAO8T,aAAaD,YAN5B8yC,WAQa,WACL3mD,OAAOwH,SAAU,IAzD7BxH,OAAOwH,SAAU,EACjBxH,OAAOg6C,eACP,IAAIz5B,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,EACxEvE,QAAO8oD,QAAU,GAEjB,IAAI9wC,aAAc9G,uBAAuBQ,oBACzC1R,QAAOkpD,kBAAoBlxC,YAAYmxC,QAAQzmC,SA0B/C1iB,OAAO2tD,KAAO,SAAcC,MACxB5tD,OAAO4tD,KAAOA,KACd90B,YA4BJ94B,OAAO2pD,mBAAqB,SAA4BjE,aACpD1lD,OAAOwH,SAAU,EACjBxH,OAAOwT,kBAEPmzC,yBACKiD,wBAAwBlE,YAAYzqB,UAAWyqB,YAAYmE,cAAe,wCAC1EpoD,KAAK,WACFuF,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,wCACnCiE,oBAAoBsT,sBACpB+a,aALR6tB,SAOW,WACH3/C,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,kDARzCmgD,WAUa,WACL3mD,OAAOwH,SAAU,KAK7BxH,OAAO6tD,oBAAsB,WAEzB7tD,OAAO4tD,KAAK/P,aAAe79C,OAAO4tD,KAAK/P,YACvCx0B,iBAAiBykC,6BAA6B9tD,OAAO4tD,UC3FrE1wD,QAAQC,OAAO,aAAa+B,WAAW,wBACtB,SAAU,iBAAkB,mBAAoB,oBAAqB,iCAC9E,SAAUc,OAAUiuD,eAAkB5kC,iBAAoBtjB,kBAAqBc,gCAE3E,YAqBA,SAASiyB,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACPC,YAAc5M,+BAA+BsZ,eAAe5b,EAE5D,IAAI8zB,aACA61B,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAG9CgtB,gBAAeG,kBAAkB/1B,YAC5B52B,KAAK,SAAU4sD,mBACZruD,OAAO6D,MAAMyqD,iBAAmBD,kBAAkBC,iBAClDtuD,OAAO6D,MAAM0qD,YAAcvuD,OAAO6D,MAAMyqD,iBAAmB,EAC3DtuD,OAAO6D,MAAM2K,KAAO6/C,kBAAkB7/C,KACtCxO,OAAO6D,MAAM2qD,cAAgBH,kBAAkBG,cAC/CxuD,OAAO6D,MAAM4qD,gCAAkCJ,kBAAkBI,gCACjEzuD,OAAO6D,MAAM6qD,mCAAqCL,kBAAkBK,mCACpE1uD,OAAO6D,MAAM8qD,kBAAoBN,kBAAkBM,kBACnD3uD,OAAO6D,MAAM+qD,wBAA0BP,kBAAkBO,wBACzD5uD,OAAO6D,MAAMgrD,+BAAkC7uD,OAAO6D,MAAM+qD,yBAA2B5uD,OAAO6D,MAAM+qD,wBAAwBl2C,OAAS,IAV7Iu1C,SAYW,SAAUp6C,UACb7T,OAAO8T,aAAaD,YAb5Bo6C,WAea,WACLjuD,OAAO8uD,0BAA4Bb,eAAec,iCAClD/uD,OAAOwH,SAAU,IAI7B,QAASwnD,2BAA0BC,SAC3BjvD,OAAO6D,MAAM2qD,eAAiBxuD,OAAO6D,MAAM2qD,cAAcU,SACtDlvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,+BACpCse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAEhG1pD,kBAAkBK,YAAYC,SAAU,iBACpCse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAGjGzvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,mCACpCse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAEhG1pD,kBAAkBK,YACdC,SAAU,qBACVse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAM5G,QAASC,4BACD1vD,OAAO6D,MAAM2qD,eAAiBxuD,OAAO6D,MAAM2qD,cAAcU,SACtDlvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,+BAAgCse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAEnM1pD,kBAAkBK,YAAYC,SAAU,iBAAkBse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAGtLzvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,mCAAoCse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAEvM1pD,kBAAkBK,YAAYC,SAAU,qBAAsBse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAnFrMzvD,OAAOwH,SAAU,EAEjBxH,OAAO8uD,2BAA4B,EACnC9uD,OAAO6D,OACH2K,KAAM,GACN8/C,iBAAkB,GAClBE,cAAe,GACfD,aAAa,EAGjB,IAAI96C,aAAc5M,+BAA+BsZ,eAAe5b,EAEhEvE,QAAO2tD,KAAO,SAAUC,MACpB5tD,OAAOwH,SAAU,EACjBxH,OAAO4tD,KAAOA,KAEd90B,YAwEJ94B,OAAO6tD,oBAAsB,WACzB7tD,OAAO4tD,KAAK/P,aAAe79C,OAAO4tD,KAAK/P,YACvCx0B,iBAAiBykC,6BAA6B9tD,OAAO4tD,OAEzD5tD,OAAOgvD,0BAA4BA,0BACnChvD,OAAO0vD,yBAA2BA,4BCnG9CxyD,QAAQC,OAAO,aAAa+B,WAAW,sBAClC,SAAU,KAAM,oBAAqB,iBAAkB,mBAAoB,iCACxE,SAAUc,OAAQulB,GAAIxf,kBAAmBgtB,eAAgB1J,iBAAkBxiB,gCAEvE,YASA,SAAS+yC,oBACL,MAAO7mB,gBACF6mB,iBAAiBr5B,iBACjB9e,KAAK,SAAUC,MACZ1B,OAAOqtD,KAAO3rD,OAHfqxB,SAKI,SAAUlf,UACb7T,OAAO8T,aAAaD,YAIhC,QAASywB,oBACL,MAAOvR,gBACFuR,mBACA7iC,KAAK,SAAUjE,QACZwC,OAAO0iC,QAAQgC,OAASlnC,SAUpC,QAASs7B,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBAEP+M,gBAAkB1Z,+BAA+BwZ,mBAAmB9b,EACpE,IAAIgpD,aAAc3T,mBACd4T,mBAAqBlpB,kBAEzB/e,IAAG8H,KAAKkgC,YAAaC,qBAAqB/rD,KAAK,WAC3CzB,OAAOwH,SAAU,IAzCzBxH,OAAOwH,SAAU,EAEjBxH,OAAOqtD,KAAO,KACdrtD,OAAO0iC,SAAWgC,OAAU,GAE5B,IAAInkB,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,EAqBxEvE,QAAO2tD,KAAO,SAASC,MACnB5tD,OAAO4tD,KAAOA,KAEd90B,YAgBJ94B,OAAO6tD,oBAAsB,WAEzB7tD,OAAO4tD,KAAK/P,aAAe79C,OAAO4tD,KAAK/P,YACvCx0B,iBAAiBykC,6BAA6B9tD,OAAO4tD,OAGzD5tD,OAAO2vD,mBAAqB,WACxB5pD,kBAAkBK,YAAYC,SAAUrG,OAAO0iC,QAAQgC,OAAOuU,eAAeN,MAAOh0B,MAAOpgB,GAAIgc,uBC1D/GrjB,QAAQC,OAAO,aAAa+B,WAAW,iBAClC,SAAU,YAAa,mBAAoB,iBAAkB,iCAAkC,mCAC5F,SAAUc,OAAQye,OAAQ4K,iBAAkB0J,eAAgBlsB,+BAAgC+oD,kCACxF,YAWA,SAAS92B,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,iBACP,IAAI4M,eAAgBvZ,+BAA+BwZ,kBACnDjD,WAAYgD,cAAc7b,GAC1BsrD,4BAA6B,EAE7B7vD,OAAO8vD,YAActrD,EAAE6kB,iBAAiB0mC,+BACnC39C,OAAO,YACPq1C,OAAO,gBACPjrC,QAELuW,eAAeE,WAAW7S,cAAc7b,IACnC9C,KAAK,SAAUC,MACZ1B,OAAOqhB,SACHrZ,OAAQoY,cAAc7b,GACtBhE,KAAM6f,cAAclM,SACpB5C,UAAW5P,KAAK6M,YAChByhD,aAActuD,KAAKuuD,oBACnBhK,YAAavkD,KAAKwuD,2BAClBC,uBAAwBzuD,KAAK0uD,sCAC7BC,oBAAqB3uD,KAAK4uD,mCAC1BC,oBAAqB7uD,KAAK8uD,mCAC1BC,oBAAqB/uD,KAAKgvD,sCAXtC39B,SAcW,SAAUlf,UACb7T,OAAO8T,aAAaD,YAf5Bkf,WAiBa,WACL/yB,OAAOwH,SAAU,IAc7B,QAASmpD,8BACLf,iCAAiCgB,UAAUC,OAAQzzC,UAAWyyC,4BACzDpuD,KAAK,SAASqb,QACPA,OAAOg0C,YACPjB,2BAA6B/yC,OAAOi0C,eAzDpD/wD,OAAOwH,SAAU,EACjBxH,OAAOgxD,2BAA4B,EAEnChxD,OAAOixD,MAAQ,GAAIziD,KAEnB,IAAIqiD,QAAS,YACThB,4BAA6B,EAC7BzyC,UAAY,EAmChB0b,YACA94B,OAAO2wD,2BAA6BA,0BAEpC,IAAI/sC,sBAAuB5jB,OAAO0W,IAAI,uBAAwB,WAC1DoiB,YAGJ94B,QAAO0W,IAAI,WAAY,WACnBkN,4BCvDhB1mB,QAAQC,OAAO,aAAa+B,WAAW,sBAClC,SAAU,KAAM,oBAAqB,kBAAmB,mBAAoB,iCACzE,SAAUc,OAAQulB,GAAIxf,kBAAmBmrD,gBAAiB7nC,iBAAkBxiB,gCAExE,YASA,SAASsqD,6BACL,MAAOD,iBACFC,0BAA0B5wC,iBAC1B9e,KAAK,SAAUC,MACZ,GAAI0vD,eAAgB1vD,IAEpB1B,QAAOqxD,oBAAsB7sD,EAAE4sD,eAC1Bh/C,QAAQk/C,YAAe,IACvB7J,OAAO,mBACPjrC,UAIjB,QAAS+0C,4BACL,GAAIC,iBACAC,0BAA2B,EAG/B,OAAOP,iBACFK,yBAAyBhxC,gBAAiBixC,gBAC1C/vD,KAAK,SAAUC,MACZ1B,OAAO0xD,kBAAoBhwD,OAUvC,QAASo3B,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBACP+M,gBAAkB1Z,+BAA+BwZ,mBAAmB9b,EAEpE,IAAIotD,+BAAgCR,4BAChCS,6BAA+BL,0BAEnChsC,IAAG8H,KAAKskC,8BAA+BC,+BAA+BnwD,KAAK,WACvEzB,OAAOwH,SAAU,IADrB+d,SAGO,SAAU1R,UACb7T,OAAO8T,aAAaD,YAI5B,QAASg+C,gBACL9rD,kBAAkBK,YAAYC,SAAU,UAG5C,QAASwnD,uBAEL7tD,OAAO4tD,KAAK/P,aAAe79C,OAAO4tD,KAAK/P,YACvCx0B,iBAAiBykC,6BAA6B9tD,OAAO4tD,MAGzD,QAASkE,0BAAyB5hB;AAC9BnqC,kBAAkBK,YAAYC,SAAU,uBAAwBse,MAAOotC,mBAAoB7hB,KAAK8hB,mBAAoB50C,UAAW8yB,KAAKjV,UAAWg3B,gBAAiB/hB,KAAKgiB,mBAjEzKlyD,OAAOwH,SAAU,EAEjBxH,OAAOqxD,oBAAsB,KAC7BrxD,OAAO0xD,kBAAoB,IAE3B,IAAInxC,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,EA2BxEvE,QAAO2tD,KAAO,SAASC,MACnB5tD,OAAO4tD,KAAOA,KAEd90B,YAkCJ94B,OAAO6tD,oBAAsBA,oBAC7B7tD,OAAO6xD,aAAeA,aACtB7xD,OAAO8xD,yBAA2BA,4BC7E9C50D,QAAQC,OAAO,aAAa+B,WAAW,yBAClC,SAAU,KAAM,oBAAqB,oBAAqB,iBAAkB,mBACzE,SAAUc,OAAQulB,GAAIxf,kBAAmBuvC,kBAAmBviB,eAAgB1J,kBAExE,YASA,SAASib,oBACL,MAAOvR,gBACFuR,mBACA7iC,KAAK,SAAUjE,QACZwC,OAAO0iC,QAAQgC,OAASlnC,SAIpC,QAASmnD,kBACL,MAAOrP,mBACFqP,iBACAljD,KAAK,SAAUC,MACZ1B,OAAO4kD,SAAWljD,OAU9B,QAASo3B,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,iBACP,IAAI85C,iBAAkB3I,iBAClB6I,mBAAqBlpB,kBAEzB/e,IAAG8H,KAAKigC,gBAAiBE,qBAAzBjoC,SAAoD,SAAU1R,UAC1D7T,OAAO8T,aAAaD,YADxB0R,WAEW,WACPvlB,OAAOwH,SAAU,IAtCzBxH,OAAOwH,SAAU,EAEjBxH,OAAOw+C,aAAezrB,eAAesnB,oBAAoB,GAAG,IAC5Dr6C,OAAO4kD,SAAW,KAClB5kD,OAAO0iC,SAAWgC,OAAU,IAmB5B1kC,OAAO2tD,KAAO,SAASC,MACnB5tD,OAAO4tD,KAAOA,KAEd90B,YAgBJ94B,OAAO6tD,oBAAsB,WAEzB7tD,OAAO4tD,KAAK/P,aAAe79C,OAAO4tD,KAAK/P,YACvCx0B,iBAAiBykC,6BAA6B9tD,OAAO4tD,OAGzD5tD,OAAOwgD,qBAAuB,SAA8B/3C,SACxD1C,kBAAkBK,YAAYC,SAAU,iCAAkCse,MAAO85B,YAAa,WAAYl6C,GAAIkE,QAAQg4C,UAAW9B,mBAAoBl2C,QAAQ43C,kBCvD7KnjD,QAAQC,OAAO,aAAa+B,WAAW,8BAClC,SAAU,qBAAsB,iCAAkC,sBAAuB,mBACtF,SAAUc,OAAQmhC,mBAAoBt6B,+BAAgCs1B,oBAAqB9S,kBAEvF,YAUA,SAASyP,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,iBACP,IAAI+M,iBAAkB1Z,+BAA+BwZ,mBAAmB9b,EAExE48B,oBACK7C,aAAa/d,iBAAiB,GAC9B9e,KAAK,SAAUC,MAEZ,GAAI68B,oBAAqB/5B,EAAEg6B,UAAU98B,KAAK66B,YAAa,SAAUC,MAC7D,MAAOL,qBAAoBM,WAAWD,KAAKE,QAASP,oBAAoBsC,WAAW,GAAG9B,OAE1F38B,QAAO0+B,qBAAuBH,mBAAmB,GACjDv+B,OAAO2+B,sBAAwBJ,mBAAmB,GAElDv+B,OAAOmyD,iBAAmBnyD,OAAO0+B,uBAAyB1+B,OAAO0+B,qBAAqBhmB,QAAS,IAVvGyoB,SAYW,SAAUttB,UACb7T,OAAO8T,aAAaD,YAb5BstB,WAea,WACLnhC,OAAOwH,SAAU,IA7B7BxH,OAAOwH,SAAU,EAEjBxH,OAAO2tD,KAAO,SAASC,MACnB5tD,OAAO4tD,KAAOA,KAEd90B,YA4BJ94B,OAAOm/B,UAAY,SAAmBD,KAClC/C,oBAAoBiD,iBAAiBF,IAAIrB,yBAG7C79B,OAAO6tD,oBAAsB,WACzB7tD,OAAO4tD,KAAK/P,aAAe79C,OAAO4tD,KAAK/P,YACvCx0B,iBAAiBykC,6BAA6B9tD,OAAO4tD,UC7CrE1wD,QAAQC,OAAO,aAAaogB,QAAQ,uBAC/B,oBAAqB,UAClB,SAAUC,kBAAmBqR,SACzB,YAEA,IAAIujC,0BAA2B,WAC3B,MAAO50C,mBAAkBI,IAAI,WAAWC,IAAI,+BAA+BD,OAE3Ey0C,wBAA0B,SAAU71C,OACpC,MAAOqS,SAAQI,IAAI,uBAAwBzS,QAE3C81C,wBAA0B,WAC1B,MAAOzjC,SAAQjR,IAAI,wBAGvB,QACIw0C,yBAA0BA,yBAC1BC,wBAAyBA,wBACzBC,wBAAyBA,4BClBzCp1D,QAAQC,OAAO,aAAaogB,QAAQ,oBAC/B,sBACG,SAASg1C,qBACL,YAEA,IAAInlC,8BAA+B,WAC/B,MAAOmlC,qBACFH,2BACA3wD,KAAK,SAAU+wD,oBACZ,GAAIC,eAAgBF,oBAAoBD,yBACxC,IAAKG,cAGA,CACD,GAAIC,2BAA4BluD,EAAEguD,oBAC7Bp3C,QAAQ,SAAUu3C,gBACf,GAAIC,mBAAoBpuD,EAAEC,KAAKguD,eAAgB/tD,GAAIiuD,eAAejuD,IAC9DkuD,qBACAD,eAAe9U,YAAc+U,kBAAkB/U,cAI3D0U,qBAAoBF,wBAAwBK,+BAX5CH,qBAAoBF,wBAAwBG,uBAgBxD1E,6BAA+B,SAAU+E,eACzC,GAAIA,cAAe,CACf,GAAIJ,eAAgBF,oBAAoBD,yBAExC,IAAIG,cAAe,CACf,GAAIG,mBAAoBpuD,EAAEC,KAAKguD,eAAgB/tD,GAAImuD,cAAcnuD,IAE7DkuD,qBACAA,kBAAkB/U,YAAcgV,cAAchV,YAC9C0U,oBAAoBF,wBAAwBI,mBAMxD1C,4BAA8B,WAC9B,MAAOwC,qBAAoBD,2BAG3BQ,4BAA8B,SAAUC,mBACxCR,oBAAoBF,wBAAwBU,mBAGhD,QACI3lC,6BAA8BA,6BAC9B2iC,4BAA6BA,4BAC7B+C,4BAA6BA,4BAC7BhF,6BAA8BA,iCCtD9C5wD,QAAQC,OAAO,SAEX,sBACA,UACA,WACA,SACA,YACA,UACA,cACA,UACA,eACA,YACA,iBACA,aAEA,MAEA,cACA,gBACA,gBACA,uBACA,sBACA,qBACA,iBAECC,SAAS,WACN41D,aACIC,MAAO,uCACPlN,SAAU,uCACVmN,QAAS,uCACTC,SAAU,uCACVC,UAAW,uCACXC,SAAU,uCACVC,UAAW,uCACXC,SAAU,uCACVC,MAAO,wCAEXC,gBACIC,iBAAkB,uCAClBC,OAAQ,uCACRC,aAAc,wCAElBC,uBACIC,OAAQ,SACRC,OAAQ,YC5CpB72D,QAAQC,OAAO,kBAAkBK,QAAQ,oBAAqB,iBAAkB,qBAC5E,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIK,iBAAmBE,YAAa,SAEhCN,WACA+1D,OACI71D,MAAO,QACPC,MAAO,SACPC,eAAgBA,gBAEpB41D,cACI91D,MAAO,gBACPC,MAAO,+DACPC,eAAgBA,gBAEpB61D,aACI/1D,MAAO,eACPC,MAAO,iBACPC,eAAgBA,gBAEpB81D,sBACIh2D,MAAO,uBACPC,MAAO,uEACPC,eAAgBA,gBAIxBN,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAU+1D,MAAM71D,OACnBa,IAAKf,UAAU+1D,MAAM51D,MACrBa,YAAa,0BACbC,WAAY,YACZC,YAAa,SACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,aAG3EpB,MAAMF,UAAUg2D,aAAa91D,OAC1Ba,IAAKf,UAAUg2D,aAAa71D,MAC5Ba,YAAa,iCACbC,WAAY,mBACZC,YAAa,gBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,aAG3EpB,MAAMF,UAAUi2D,YAAY/1D,OACzBa,IAAKf,UAAUi2D,YAAY91D,MAC3Ba,YAAa,gCACbC,WAAY,kBACZC,YAAa,eACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,aAG3EpB,MAAMF,UAAUk2D,qBAAqBh2D,OAClCa,IAAKf,UAAUk2D,qBAAqB/1D,MACpCa,YAAa,yCACbC,WAAY,2BACZC,YAAa,wBACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,gBCjExFrC,QAAQC,OAAO,SAASsC,KAAK,iBAAkB,SAASC,gBACtD,YAEAA,gBAAeC,IAAI,iCACjB,qqNAwPFD,eAAeC,IAAI,gCACjB,kkDAkFFD,eAAeC,IAAI,oDACjB,owEAsFFD,eAAeC,IAAI,gDACjB,uoCAkDFD,eAAeC,IAAI,mDACjB,krBA0BFD,eAAeC,IAAI,uDACjB,0oFAiGFD,eAAeC,IAAI,gDACjB,qqBA8BFD,eAAeC,IAAI,qDACjB,m+CAmDFD,eAAeC,IAAI,8CACjB,koDAgDFD,eAAeC,IAAI,2DACjB,04EA2HFD,eAAeC,IAAI,iEACjB;AA4RFD,eAAeC,IAAI,mEACjB,mrIAuJFD,eAAeC,IAAI,2CACjB,g+GAoKFD,eAAeC,IAAI,0BACjB,y4UAsXFD,eAAeC,IAAI,yCACjB;AAseFD,eAAeC,IAAI,6CACjB,o6aC/wEJzC,QAAQC,OAAO,SAAS+B,WAAW,oBAC9B,SAAU,eAAgB,UAAW,aAAc,yBAA0B,kBAAmB,eAAgB,oBAC7G,SAAUc,OAAQiR,aAAcjK,QAASR,QAASxE,uBAAwBkvD,gBAAiBkD,aAAcruD,mBACrG,YAmCA,SAAS+yB,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,kBAEP09C,gBACKmD,wBAAwBryD,uBAAuBkE,YAAalG,OAAOs0D,cAAcvC,oBACjFtwD,KAAK,SAAUC,MACZ1B,OAAOs0D,cAAcC,qBAAuB7yD,KAC5C1B,OAAOs0D,cAAcE,kBAAoB9yD,KAAK,GAAG+yD,UAEjD,IAAIC,eAAgB,CACpB10D,QAAO20D,sBAAsBC,SAAWpwD,EAAExE,OAAOs0D,cAAcC,sBAC1D9M,OAAO,sBAAuB,uBAAwB,6CACtDoN,QAAQ,mBACRprD,IAAI,SAAUqrD,wBACX,GAAIC,eAAgBD,uBAAuB,EAC3C,QACIniC,gBAAiBoiC,cAAcpiC,gBAC/BqiC,gBAAiBN,cACjBO,kBAAmBF,cAAcE,kBACjCz/B,aAAcu/B,cAAcG,oBAC5BC,QAAUT,eAAiB10D,OAAO20D,sBAAsBS,oBAAsB,GAAO,EACrF/hC,UAAWgiC,mBAAmBP,2BAGrCt4C,QAGDxc,OAAO20D,sBAAsBC,UAAY50D,OAAO20D,sBAAsBC,SAASl8C,SAC/E1Y,OAAO20D,sBAAsBW,qBAAuB,EACpDt1D,OAAO20D,sBAAsBY,iBAAmBv1D,OAAO20D,sBAAsBC,SAAS,GAAGjiC,gBACzF3yB,OAAO20D,sBAAsBa,mBAAqBx1D,OAAO20D,sBAAsBC,SAAS,GAAGK,kBAC3Fj1D,OAAO20D,sBAAsBc,mBAAqB,EAElDz1D,OAAO20D,sBAAsBe,kBACzB11D,OAAO20D,sBAAsBC,SAASl8C,OAAS1Y,OAAO20D,sBAAsBS,mBAAqBp1D,OAAO20D,sBAAsBS,mBACxHp1D,OAAO20D,sBAAsBC,SAASl8C,OAEhD1Y,OAAO20D,sBAAsBgB,gBAAkBC,wBAlC3D1E,SAqCW,SAAUr9C,UACb7T,OAAO8T,aAAaD,YAtC5Bq9C,WAwCa,WAGLA,gBACK2E,wBAAwB7zD,uBAAuBkE,YAAalG,OAAOs0D,cAAcvC,oBACjFtwD,KAAK,SAAUC,MACZ1B,OAAOm0D,qBAAuBzyD,OAHtCwvD,WAKa,WACL5iC,QAAQtQ,IAAIhe,OAAO20D,uBACnBrmC,QAAQtQ,IAAIhe,OAAOm0D,sBACnB7lC,QAAQtQ,IAAI,WAIpBhe,OAAOwH,SAAU,IAM7B,QAAS6tD,oBAAmBS,kBACxB,GAAIC,gBAAiB,EAEjBC,UAAYxxD,EAAEsxD,kBACbjB,QAAQ,oBACRprD,IAAI,SAAUwsD,wBACX,GAAIC,uBAAwBD,uBAAuB,GAE/C1jC,UACA4jC,iBAAkBJ,eAClBpjC,gBAAiBujC,sBAAsBvjC,gBACvCC,iBAAkBsjC,sBAAsBtjC,iBACxCwjC,oBAAqBF,sBAAsBE,oBAC3CvjC,gBAAiBqjC,sBAAsBrjC,gBACvCC,iBAAkBojC,sBAAsBpjC,iBACxCujC,oBAAqBH,sBAAsBG,oBAC3CC,sBAAuBJ,sBAAsBI,sBAC7CC,iBAAkBC,oBAAoBN,sBAAsBvjC,gBAAiBujC,sBAAsBtjC,iBAAkBsjC,sBAAsBG,qBAC3II,gBAAiBC,kBAAkBR,uBACnC59B,QAASq+B,iBAAiBV,wBAC1BW,+BAAgCC,kCAAkCX,uBAYtE,OATA3jC,UAASukC,mCAAoC,EACG,OAA5CvkC,SAASqkC,gCACLrkC,SAASqkC,+BAA+Bl+C,OAAS,GACE,yCAA/C6Z,SAASqkC,+BAA+B,KACxCrkC,SAASukC,mCAAoC,GAKlDvkC,WAEV/V,OAEL,OAAOw5C,WAIX,QAASa,mCAAkCtkC,UAOvC,GAAIwkC,SAAUvyD,EAAExE,OAAOs0D,cAAcC,sBAChCniD,QACGugB,gBAAiBJ,SAASI,gBAC1BqkC,oBAAqBzkC,SAASK,mBAEjCnpB,IAAI,SAAUwtD,QACX,OACItkC,gBAAiBskC,OAAOtkC,gBACxBC,iBAAkBqkC,OAAOrkC,iBACzBskC,eAAgBD,OAAOC,kBAG9B16C,OAEL,OAAOu6C,SAIX,QAASL,mBAAkBnkC,UACvB,IAAKA,SAASO,iBAEV,OAAO,CAGX,IAAImkC,QAASzyD,EAAExE,OAAOs0D,cAAcC,sBAC/BniD,QACGugB,gBAAiBJ,SAASI,gBAC1BqkC,oBAAqBzkC,SAASK,iBAC9BukC,gBAAiB,IAClBC,MAEP,OAAkB74C,UAAX04C,QAAuB,EAAQA,OAAOE,eAIjD,QAASX,qBAAoBa,gBAAiBC,iBAAkBC,qBAC5D,GAAIC,gBAAiB,IAYrB,OAVID,sBAA6D,yCAAtCA,oBAAoB9lD,gBAE3C+lD,eAAiBhzD,EAAExE,OAAOs0D,cAAcC,sBACnCniD,QACGugB,gBAAiB0kC,gBACjBzkC,iBAAkB0kC,iBAClBH,gBAAiB,IAClBC,QAGJI,gBAAkBA,eAAeN,eAI5C,QAASP,kBAAiBV,wBACtB,GAAIwB,WAAYjzD,EAAEyxD,wBACbpB,QAAQ,kBACRprD,IAAI,SAAUstD,SACX,GAAIE,QAASF,QAAQ,EACrB,QACIpkC,gBAAiBskC,OAAOtkC,gBACxBC,iBAAkBqkC,OAAOrkC,iBACzBE,iBAAkBmkC,OAAOnkC,iBACzBokC,eAAgBD,OAAOC,eACvBb,oBAAqBY,OAAOZ,oBAC5BqB,kBAAmBT,OAAOS,kBAC1BP,eAAgBF,OAAOE,eACvBQ,yBAA0BV,OAAOU,yBACjCC,mBAAoBpzD,EAAEuyD,SAASttD,IAAI,SAAUwtD,QACrC,OAASY,WAAYZ,OAAOD,uBAElCx6C,WAGTA,OAEL,OAAOi7C,WAIX,QAASK,uBAGL,GAAIC,gBACAC,MAAQtzD,GAAI1E,OAAOs0D,cAAcvC,mBAAoB/0B,KAAMh9B,OAAOs0D,cAAcE,mBAChFzH,SAAWroD,GAAI1E,OAAOs0D,cAAcl3C,WAExCg3C,cAAa6D,mBAAmBF,eAChChyD,kBAAkBK,YAAYC,SAAU,gBAI5C,QAAS6xD,yBAEL,MAAIl4D,QAAO20D,sBAAsBW,qBAAuB,EAC7Ct1D,OAAO20D,sBAAsBC,SAAS50D,OAAO20D,sBAAsBW,qBAAuB,GAAGL,kBADxG,OAMJ,QAASW,sBAEL,MAAI51D,QAAO20D,sBAAsBW,qBAAuBt1D,OAAO20D,sBAAsBC,SAASl8C,OACnF1Y,OAAO20D,sBAAsBC,SAAS50D,OAAO20D,sBAAsBW,sBAAsBL,kBAGzF,cAzPfj1D,OAAOwH,SAAU,EAEjBxH,OAAOs0D,eACHvC,mBAAoB,KACpB30C,UAAW,KACX60C,gBAAiB,KACjBuC,kBAAmB,GACnBD,qBAAsB,MAI1Bv0D,OAAO20D,uBACHC,SAAU,KACVU,qBAAsB,EACtBC,iBAAkB,KAClBC,mBAAoB,GACpBG,gBAAiB,GACjBF,mBAAoB,EACpBC,kBAAmB,EACnBN,mBAAoB,GAIpBnkD,aAAa8gD,qBACb/xD,OAAOs0D,cAAcvC,mBAAqB9gD,aAAa8gD,oBAEvD9gD,aAAamM,YACbpd,OAAOs0D,cAAcl3C,UAAYnM,aAAamM,WAE9CnM,aAAaghD,kBACbjyD,OAAOs0D,cAAcrC,gBAAkBhhD,aAAaghD,iBAiExDn5B,WA+JA94B,OAAOm4D,YAAc,WAEjB,GADAn4D,OAAOo4D,0BAA0BtZ,aAAc,EAC1C9+C,OAAOo4D,0BAA0B/jC,OAAtC,CAKA,GADAr0B,OAAOo4D,0BAA0BtZ,aAAc,EAC3C9+C,OAAO20D,sBAAsBW,uBAAyBt1D,OAAO20D,sBAAsBC,SAASl8C,OAC5F,MAAOo/C,sBAGX,IAAIO,kBAAmBr4D,OAAO20D,sBAAsBW,qBAChDgD,cAAgBt4D,OAAO20D,sBAAsBC,SAASl8C,MAEtD2/C,kBAAmB,GAAwBC,cAAnBD,mBACxBr4D,OAAO20D,sBAAsBW,uBAAyB+C,iBACtDr4D,OAAO20D,sBAAsBa,mBAAqB0C,wBAE9CG,iBAAmBr4D,OAAO20D,sBAAsBe,oBAEhD11D,OAAO20D,sBAAsBc,qBAC7Bz1D,OAAO20D,sBAAsBe,oBAC7BlxD,EAAE4W,QAAQpb,OAAO20D,sBAAsBC,SAAU,SAAU2D,SAClDA,QAAQvD,eAAiBh1D,OAAO20D,sBAAsBc,oBACtD8C,QAAQvD,eAAiBh1D,OAAO20D,sBAAsBe,kBACvD6C,QAAQpD,SAAU,EAGlBoD,QAAQpD,SAAU,KAK9Bn1D,OAAO20D,sBAAsBgB,gBAAkBC,wBAKvD51D,OAAOw4D,gBAAkB,WACrBx4D,OAAOo4D,0BAA0BtZ,aAAc,CAE/C,IAAIuZ,kBAAmBr4D,OAAO20D,sBAAsBW,oBAEhD+C,kBAAmB,IACnBr4D,OAAO20D,sBAAsBW,uBAAyB+C,iBACtDr4D,OAAO20D,sBAAsBa,mBAAqB0C,wBAE9CG,iBAAmBr4D,OAAO20D,sBAAsBc,qBAChDz1D,OAAO20D,sBAAsBc,qBAC7Bz1D,OAAO20D,sBAAsBe,oBAC7BlxD,EAAE4W,QAAQpb,OAAO20D,sBAAsBC,SAAU,SAAU2D,SAClDA,QAAQvD,eAAiBh1D,OAAO20D,sBAAsBc,oBACtD8C,QAAQvD,eAAiBh1D,OAAO20D,sBAAsBe,kBACvD6C,QAAQpD,SAAU,EAGlBoD,QAAQpD,SAAU,KAK9Bn1D,OAAO20D,sBAAsBgB,gBAAkBC,uBAKvD51D,OAAOy4D,eAAiB,SAAwBF,SAC5C,MAAIA,SAAQvD,gBAAkBh1D,OAAO20D,sBAAsBW,0BAEvDt1D,OAAOo4D,0BAA0BtZ,aAAc,GAG1CyZ,QAAQvD,cAAgBh1D,OAAO20D,sBAAsBW,sBAE1Dt1D,OAAOo4D,0BAA0BtZ,aAAc,EAC/C9+C,OAAO20D,sBAAsBW,qBAAuBiD,QAAQvD,cAC5Dh1D,OAAO20D,sBAAsBa,mBAAqB0C,6BAClDl4D,OAAO20D,sBAAsBgB,gBAAkBC,uBAK9C51D,OAAOo4D,0BAA0B/jC,QAOlCr0B,OAAOo4D,0BAA0BtZ,aAAc,EAC/C9+C,OAAO20D,sBAAsBW,qBAAuBiD,QAAQvD,cAC5Dh1D,OAAO20D,sBAAsBa,mBAAqB0C,6BAClDl4D,OAAO20D,sBAAsBgB,gBAAkBC,4BAR/C51D,OAAOo4D,0BAA0BtZ,aAAc,OCvVnE5hD,QAAQC,OAAO,SAAS+B,WAAW,mBAC9B,SAAU,eACP,SAAUc,OAAQo0D,cACd,YAUA,SAASt7B,YACL94B,OAAOwH,SAAU,CAEjB,IAAIuwD,eAAgB3D,aAAasE,kBAEjC14D,QAAOs0D,cAAcvC,mBAAqBgG,cAAcC,KAAKtzD,GAC7D1E,OAAOs0D,cAAcE,kBAAoBuD,cAAcC,KAAKh7B,KAC5Dh9B,OAAOs0D,cAAcl3C,UAAY26C,cAAchL,QAAQroD,GAEvD0vD,aAAauE,qBACb34D,OAAOwH,SAAU,EAlBrBxH,OAAOwH,SAAU,EAEjBxH,OAAOs0D,eACHvC,mBAAoB,KACpB30C,UAAW,KACXo3C,kBAAmB,IAevB17B,cCzBZ57B,QAAQC,OAAO,SAAS+B,WAAW,aAE3B,SACA,KACA,YACA,oBACA,yBACA,sBACA,kBACA,iCACA,UACA,aACA,iBACA,SACIc,OACAulB,GACA9G,OACA1Y,kBACA/D,uBACAyI,oBACAymD,gBACArqD,+BACAG,QACAR,QACAuS,gBAGA,YAqBA,SAAS6/C,oBAAmBxmD,QAEP,IAAdA,OAAO1N,KAEN1E,OAAO0xD,kBAAoB1xD,OAAO64D,WAClC74D,OAAO84D,mBAAqB1mD,OAAO4qB,MAEtB,IAAd5qB,OAAO1N,KAEN1E,OAAO0xD,kBAAoB1xD,OAAO+4D,aAClC/4D,OAAO84D,mBAAqB1mD,OAAO4qB,MAI3C,QAAS80B,0BAAyB5hB,MAC9BnqC,kBAAkBK,YAAYC,SAAU,uBAAwBse,MAAOotC,mBAAoB7hB,KAAK8hB,mBAAoB50C,UAAW8yB,KAAKjV,UAAWg3B,gBAAiB/hB,KAAKgiB,mBAGzK,QAAS8G,4BAA2BniD,cAChC7W,OAAOif,kBAAmB,EAC1Bg6C,qBAAuBpiD,YAEvB,IAAItT,cACAO,MAAO+S,aAAaqiD,iBACpBj+B,UAAWpkB,aAAasiD,SACxBnmD,WAAY6D,aAAas5B,aACzBx9B,aAAcymD,+BACdlmD,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAOif,kBAAmB,EAC1Bg6C,qBAAuB,OAI/B,QAASG,gCAA+B9mD,WAAYG,iBAChD,MAAOy+C,iBAAgBmI,qBAAqBJ,qBAAqBE,SAAU7mD,WAAY2mD,qBAAqBK,yBAA0B7mD,iBACjIhR,KAAK,SAAUC,MACZ,MAAOA,QAInB,QAAS63D,gCAA+B1iD,cACpC,GAAI2iD,YACAF,yBAA2BziD,aAAayiD,yBAG5C,OAAOpI,iBAAgBqI,+BAA+B1iD,aAAasiD,SAAUtiD,aAAas5B,aAAcqpB,WAAjGtI,SACI,WACHlqD,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,0DAI7C,QAASizD,gCAA+B5iD,cAKpC,MAJAA,cAAa8vB,aAAc,EAC3B9vB,aAAa6iD,YAAa,EAC1B7iD,aAAa8iD,UAAW,EACxBJ,+BAA+B1iD,cACxBq6C,gBAAgB0I,0BAA0B/iD,aAAasiD,SAAUtiD,aAAas5B,aAAct5B,aAAayiD,0BAC3G73D,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMG,UAAWxV,KAAKwV,UAAWF,SAAUH,aAAaqiD,iBAAmB,IAAM94C,cAAc0O,UAAY1O,cAAc2O,YAF7ImiC,SAII,WACHlqD,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,4DALlC0qD,WAOM,WACLr6C,aAAa8vB,aAAc,IAIvC,QAASwqB,6BACL,MAAOD,iBACFC,0BAA0BtqD,+BAA+BwZ,mBAAmB9b,IAC5E9C,KAAK,SAAUC,MACZ1B,OAAO65D,gBAAkBr1D,EAAE9C,MACtB0Q,QAAQk/C,YAAe,IACvB7J,OAAO,mBACPjrC,QAELxc,OAAO85D,eAAiBt1D,EAAE9C,MACrB0Q,QAAQk/C,YAAe,IACvB7J,OAAO,mBACPjrC,UAXN00C,SAaI,SAAUr9C,UACb7T,OAAO8T,aAAaD,YAIhC,QAAS09C,4BACL,GAAIC,iBACAC,0BAA2B,EAG/B,OAAOP,iBACFK,yBAAyB1qD,+BAA+BwZ,mBAAmB9b,GAAIitD,gBAC/E/vD,KAAK,SAAUC,MACZ1B,OAAO+5D,WAAav1D,EAAEiF,IAAI/H,KAAM,SAAU6kC,OACtC,MAAO/hC,GAAEk5B,SAAS6I,OAASI,aAAc,EAAO+yB,YAAY,EAAOM,WAAW,EAAOL,UAAU,EAAOM,WAAY,EAAOC,YAAY,QAJ1IhJ,SAOI,SAAUr9C,UACb7T,OAAO8T,aAAaD,YAKhC,QAASsmD,eAEFn6D,OAAO+5D,WAAWrhD,SAEjB1Y,OAAO+4D,aAAgBv0D,EAAExE,OAAO+5D,YAC3B3nD,QAAQgoD,UAAa,IACrB3S,OAAO,cACPjrC,QAELxc,OAAO64D,WAAar0D,EAAExE,OAAO+5D,YACxB3nD,QAAQgoD,UAAa,IACrB3S,OAAO,cACPjrC,QAGFxc,OAAO64D,YAELr0D,EAAE4W,QAAQpb,OAAO64D,WAAW,SAAU3oB,MACM,OAAlCA,KAAKmqB,0BAAsCnqB,KAAKoqB,WAE/CpqB,KAAKwpB,YAAa,EAClBxpB,KAAK+pB,WAAY,EACjB/pB,KAAKypB,UAAW,KAKE,mBAAxB35D,QAAO+4D,cAERv0D,EAAE4W,QAAQpb,OAAO+4D,aAAa,SAAU7oB,MACpCA,KAAKgqB,YAAa,IAInCl6D,OAAO0xD,kBAAoB1xD,OAAO64D,YAGlC,QAAS0B,kBAAiB1jD,cACtB7W,OAAOw6D,WAAa3jD,aAgD5B,QAASiiB,YACL94B,OAAOwH,SAAU,EACjBxH,OAAOwT,iBAEP,IAAIm+C,+BAAgCR,4BAChCS,6BAA+BL,0BAEnChsC,IAAG8H,KAAKskC,8BAA+BC,+BAA+BnwD,KAAK,WACvE04D,gBADJ50C,WAEW,WACPvlB,OAAOwH,SAAU,IA1OzBxH,OAAOwH,SAAU,EACjBxH,OAAOif,kBAAmB,EAE1Bjf,OAAO0xD,kBAAoB,KAC3B1xD,OAAO6W,aAAe,KACtB7W,OAAO64D,cACP74D,OAAO+4D,gBACP/4D,OAAO+5D,cACP/5D,OAAO84D,mBAAqB,SAC5B94D,OAAOy6D,aAAiBz9B,KAAM,SAAUt4B,GAAI,IAAMs4B,KAAM,WAAYt4B,GAAI,GAExE,IAAIu0D,sBAAuB,KACvB74C,cAAgBvZ,+BAA+BwZ,kBAEnDrgB,QAAOsjD,gBAEH1sC,cAAgB5W,OAAO4W,eAmK3B5W,OAAO0W,IAAI,gBAAiB,WAC5B1W,OAAOw6D,WAAWR,WAAY,CAG1B,IAAIn2D,QACAo3B,UAAW7a,cAAc7b,GACzB69C,UAAW,uCACXa,UAAW,uCACXyX,cAAe,uCACfrX,OAAQrjD,OAAOw6D,WAAWG,mBAAqB,uBAAyBv6C,cAAclM,SAAW,kBACjG4gC,QAAS,KACT6O,OAAQ,aACRxV,MAAO,GACPyV,cAAkB5jD,OAAOsjD,eAAe1sC,cACxCgkD,eAAgB56D,OAAOw6D,WAAWI,eAClCtB,yBAA2Bt5D,OAAOw6D,WAAWlB,yBAC7CuB,kBAAoB76D,OAAOw6D,WAAWK,kBACtCC,iBAAmB96D,OAAOw6D,WAAWM,iBAGzC5J,iBACC6J,sBAAsB36C,cAAc7b,GAAIV,OACxCpC,KAAK,WACFzB,OAAOw6D,WAAWP,WAAY,EAC9BjzD,QAAQiC,IAAI,UAAW,GAAIzC,QAAQ,6BACnC,IAAIw0D,YAAc1B,yBAA2Bt5D,OAAOw6D,WAAWlB,yBAC/DpI,iBAAgB+J,6BAA6B76C,cAAc7b,GAAIvE,OAAOw6D,WAAWrqB,aAAc6qB,WAC/FvwD,oBAAoBsT,wBAPxBmzC,SASW,WACHlqD,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,2DAVzC0qD,WAYa,WAENlxD,OAAOw6D,WAAWR,WAAY,MAIzCh6D,OAAO2tD,KAAO,SAASC,MACnB5tD,OAAO4tD,KAAOA,KAEd90B,YAiBJA,WAGA94B,OAAO8xD,yBAA2BA,yBAClC9xD,OAAOg5D,2BAA6BA,2BACpCh5D,OAAOo5D,+BAAiCA,+BACxCp5D,OAAOy5D,+BAAiCA,+BACxCz5D,OAAOu5D,+BAAiCA,+BACxCv5D,OAAOu6D,iBAAmBA,iBAC1Bv6D,OAAO44D,mBAAqBA,sBCnRxC17D,QAAQC,OAAO,SAAS+B,WAAW,4BAC9B,SAAU,WAAY,eAAgB,UAAW,aAAc,iCAAkC,kBAAmB,eAAgB,oBAAqB,UACtJ,SAAUc,OAAQuK,SAAU0G,aAAcjK,QAASR,QAASK,+BAAgCqqD,gBAAiBkD,aAAcruD,kBAAmBm1D,SAC1I,YAwBA,SAASpiC,YACL94B,OAAOm7D,eAAe3zD,SAAU,EAChCxH,OAAOwT,kBAEP4gD,aAAagH,uBAAuB,qBAGpClK,gBACC2E,wBAAwBhvD,+BAA+BwZ,mBAAmB9b,GAAI0M,aAAa8gD,oBAC3FtwD,KAAK,SAAUC,MAIZ,GAHA1B,OAAOm0D,qBAAuBzyD,KAG1B1B,OAAOm0D,sBAAwBn0D,OAAOm0D,qBAAqBkH,eAAiBr7D,OAAOm0D,qBAAqBkH,cAAcC,SAAU,CAChIC,6BACA,IAAIC,2BAA4Bx7D,OAAOm0D,qBAAqBkH,cAAcC,SAASt7D,OAAOy7D,wBAAwBnG,qBAAuB,GAAGoG,yBAC5I17D,QAAOm7D,eAAe3zD,SAAWg0D,8BAEjCx7D,QAAOm7D,eAAe3zD,SAAU,IAXxC0pD,SAcO,SAAUr9C,UACb7T,OAAO8T,aAAaD,UACpB7T,OAAOm7D,eAAe3zD,SAAU,IAMxC,QAAS+zD,+BACL/2D,EAAE4W,QAAQpb,OAAOm0D,qBAAqBkH,cAAcC,SAAU,SAAS/C,SACnEA,QAAQpD,QAAUoD,QAAQvD,eAAiBh1D,OAAOy7D,wBAAwBrG;AAE1E5wD,EAAE4W,QAAQm9C,QAAQllC,UAAW,SAASd,UAClCA,SAASopC,yBAA0B,MAI3C37D,OAAOy7D,wBAAwBnG,qBAAuB,EACtDt1D,OAAOy7D,wBAAwBjG,mBAAqBx1D,OAAOm0D,qBAAqBkH,cAAcC,SAAS,GAAGrG,kBAC1Gj1D,OAAOy7D,wBAAwBhG,mBAAqB,EAEhDz1D,OAAOm0D,qBAAqBkH,cAAcC,SAAS5iD,OAAS1Y,OAAOy7D,wBAAwBrG,mBAC3Fp1D,OAAOy7D,wBAAwB/F,kBAAoB11D,OAAOy7D,wBAAwBrG,mBAElFp1D,OAAOy7D,wBAAwB/F,kBAAoB11D,OAAOm0D,qBAAqBkH,cAAcC,SAAS5iD,OAG1G1Y,OAAOy7D,wBAAwB9F,gBAAkBC,qBAIrD,QAASA,sBAEL,MAAI51D,QAAOy7D,wBAAwBnG,qBAAuBt1D,OAAOm0D,qBAAqBkH,cAAcC,SAAS5iD,OAClG1Y,OAAOm0D,qBAAqBkH,cAAcC,SAASt7D,OAAOy7D,wBAAwBnG,sBAAsBL,kBAGxG,cAKf,QAASiD,yBAEL,MAAIl4D,QAAOy7D,wBAAwBnG,qBAAuB,EAC/Ct1D,OAAOm0D,qBAAqBkH,cAAcC,SAASt7D,OAAOy7D,wBAAwBnG,qBAAuB,GAAGL,kBADvH,OAMJ,QAAS2G,6BACL,GAAIC,cAAe77D,OAAOm0D,qBAAqBkH,cAAcC,SAASt7D,OAAOy7D,wBAAwBnG,qBAAuB,GAAGjiC,UAC3HyoC,qBAAuBt3D,EAAE4N,OAAOypD,aAAc,SAAStpC,UACvD,MAAOA,UAASkkC,mBAAoB,GAAyD,aAAjDlkC,SAAS+jC,sBAAsB7kD,eAE/E,IAAIqqD,sBAAwBA,qBAAqBpjD,OAAS,EAAG,CACzD,GAAIqjD,+BAA+B,CAcnC,IAZAv3D,EAAE4W,QAAQ0gD,qBAAsB,SAASE,kBACrC,GAAIA,iBAAiBvF,iBAAmBuF,iBAAiBC,sBAAuB,CAC5E,GAAIzE,gBAAiBhzD,EAAEC,KAAKu3D,iBAAiB1jC,QAAS,SAAS2+B,QAC3D,MAAOA,QAAOE,kBAAmB,GAEhCK,kBACDwE,iBAAiBL,yBAA0B,EAC3CI,8BAA+B,OAKtCA,6BAGD,MAFA/7D,QAAOk8D,yBAAyB7nC,QAAS,OACzCr0B,OAAOk8D,yBAAyBx0D,UAAW,IAnHvD1H,OAAOm8D,YACHC,qBAAqB,EACrBC,qCAAqC,EACrCC,2BAA2B,EAC3BC,0BAA0B,GAG9Bv8D,OAAOw8D,qBAAsB,EAC7Bx8D,OAAOm7D,gBAAmB3zD,SAAS,GACnCxH,OAAOm0D,qBAAuB,KAG9Bn0D,OAAOy7D,yBACHnG,qBAAsB,EACtBE,mBAAoB,GACpBG,gBAAiB,GACjBF,mBAAoB,EACpBC,kBAAmB,EACnBN,mBAAoB,GA8BxBt8B,WA0EA94B,OAAO83D,oBAAsB,SAA6B2E,aACtDz8D,OAAOw8D,qBAAsB,CAI7B,IAAIE,wBAAyBl4D,EAAE4N,OAAOpS,OAAOm0D,qBAAqBkH,cAAcC,UAAWI,2BAA2B,GACtH,IAAIgB,uBAAwB,CACxB,GAAIC,mBAEJn4D,GAAE4W,QAAQshD,uBAAwB,SAASE,gBACpCA,eAAenJ,eAAehiD,gBAAkBypD,QAAQzH,eAAeC,kBACvEiJ,gBAAkBn4D,EAAE4N,OAAOwqD,eAAeC,uBAAwBxR,UAAU,IAC5E7mD,EAAE4W,QAAQuhD,gBAAiB,SAASG,WAChCt4D,EAAEu4D,KAAKH,eAAeC,sBAAuBC,cAE1CF,eAAenJ,eAAehiD,gBAAkBypD,QAAQzH,eAAeE,OAC9EnvD,EAAE4W,QAAQwhD,eAAeI,qBAAsB,SAASC,gBACpDN,gBAAkBn4D,EAAE4N,OAAO6qD,eAAeJ,uBAAwBxR,UAAU,IAC5E7mD,EAAE4W,QAAQuhD,gBAAiB,SAASG,WAChCt4D,EAAEu4D,KAAKE,eAAeJ,sBAAuBC,eAG9CF,eAAenJ,eAAehiD,gBAAkBypD,QAAQzH,eAAeG,eAC1EgJ,eAAeM,2BAA2BC,0BAA4BP,eAAeM,2BAA2BC,yBAAyBzkD,OAAS,IAClJikD,gBAAkBn4D,EAAE4N,OAAOwqD,eAAeM,2BAA2BC,yBAAyB,GAAGC,qBAAsB/R,UAAU,IACjI7mD,EAAE4W,QAAQuhD,gBAAiB,SAASG,WAChCt4D,EAAEu4D,KAAKH,eAAeM,2BAA2BC,yBAAyB,GAAGC,oBAAqBN,cAItGF,eAAeM,2BAA2BG,8BAAgCT,eAAeM,2BAA2BG,6BAA6B3kD,OAAS,IAC1JikD,gBAAkBn4D,EAAE4N,OAAOwqD,eAAeM,2BAA2BG,6BAA6B,GAAGD,qBAAsB/R,UAAU,IACrI7mD,EAAE4W,QAAQuhD,gBAAiB,SAASG,WAChCt4D,EAAEu4D,KAAKH,eAAeM,2BAA2BG,6BAA6B,GAAGD,oBAAqBN,iBAOrG,iBAAhBL,YACAz8D,OAAOm0D,qBAAqBmJ,WAAY,EAExCt9D,OAAOm0D,qBAAqBmJ,WAAY,EAG5CpM,gBAAgBqM,wBAAwBv9D,OAAOm0D,sBAC1C1yD,KAAK,WACF,GAAIzB,OAAOm0D,qBAAqBmJ,UAAY,CACxC,GAAIvF,gBACAC,MAAQtzD,GAAI1E,OAAOm0D,qBAAqBnC,mBAAoBh1B,KAAMh9B,OAAOm0D,qBAAqBkH,cAAc5G,YAC5G1H,SAAWroD,GAAI1E,OAAOm0D,qBAAqBl5B,WAG/Cm5B,cAAa6D,mBAAmBF,eAChChyD,kBAAkBK,YAAYC,SAAU,oBAExCW,SAAQiC,IAAI,UAAW,GAAIzC,QAAQ,2EACnCT,kBAAkBK,YAAYC,SAAU,YAZpD6qD,SAeW,WACHlqD,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,yGAhBzC0qD,WAkBa,WACLlxD,OAAOw8D,qBAAsB,KAKzCx8D,OAAOm4D,YAAc,WAIjB,GAHAn4D,OAAOk8D,yBAAyBpd,aAAc,EAC9C8c,4BAEK57D,OAAOk8D,yBAAyB7nC,OAArC,CAIAr0B,OAAOk8D,yBAAyBpd,aAAc,CAE9C,IAAIuZ,kBAAmBr4D,OAAOy7D,wBAAwBnG,qBAClDgD,cAAgBt4D,OAAOm0D,qBAAqBkH,cAAcC,SAAS5iD,MAEvE,OAAI2/C,oBAAsBC,cACft4D,OAAO83D,2BAGbO,iBAAmB,GAA0BC,cAAnBD,mBAC3Br4D,OAAOm7D,eAAe3zD,SAAU,EAEhC+C,SAAS,WACLvK,OAAOy7D,wBAAwBnG,uBAAyB+C,iBACxDr4D,OAAOy7D,wBAAwBjG,mBAAqB0C,wBAEhDG,iBAAmBr4D,OAAOy7D,wBAAwB/F,oBAElD11D,OAAOy7D,wBAAwBhG,qBAC/Bz1D,OAAOy7D,wBAAwB/F,oBAC/BlxD,EAAE4W,QAAQpb,OAAOm0D,qBAAqBkH,cAAcC,SAAU,SAAU/C,SAC/DA,QAAQvD,eAAiBh1D,OAAOy7D,wBAAwBhG,oBACxD8C,QAAQvD,eAAiBh1D,OAAOy7D,wBAAwB/F,kBACzD6C,QAAQpD,SAAU,EAGlBoD,QAAQpD,SAAU,KAK9Bn1D,OAAOy7D,wBAAwB9F,gBAAkBC,sBAClD,GAAG,OAKd51D,OAAOw4D,gBAAkB,WASrBx4D,OAAOk8D,yBAAyBpd,aAAc,CAE9C,IAAIuZ,kBAAmBr4D,OAAOy7D,wBAAwBnG,oBAElD+C,kBAAmB,IACnBr4D,OAAOm7D,eAAe3zD,SAAU,EAEhC+C,SAAS,WACLvK,OAAOy7D,wBAAwBnG,uBAAyB+C,iBACxDr4D,OAAOy7D,wBAAwBjG,mBAAqB0C,wBAEhDG,iBAAmBr4D,OAAOy7D,wBAAwBhG,qBAClDz1D,OAAOy7D,wBAAwBhG,qBAC/Bz1D,OAAOy7D,wBAAwB/F,oBAC/BlxD,EAAE4W,QAAQpb,OAAOm0D,qBAAqBkH,cAAcC,SAAU,SAAU/C,SAC/DA,QAAQvD,eAAiBh1D,OAAOy7D,wBAAwBhG,oBACxD8C,QAAQvD,eAAiBh1D,OAAOy7D,wBAAwB/F,kBACzD6C,QAAQpD,SAAU,EAGlBoD,QAAQpD,SAAU,KAK9Bn1D,OAAOy7D,wBAAwB9F,gBAAkBC,sBAClD,GAAG,KAKd51D,OAAOy4D,eAAiB,SAAwBF,SAC5C,GAAIF,kBAAmBr4D,OAAOy7D,wBAAwBnG,oBAEtD,OAAIiD,SAAQvD,gBAAkBqD,sBAE1Br4D,OAAOk8D,yBAAyBpd,aAAc,IAWlD8c,4BAEKrD,QAAQvD,cAAgBqD,kBAAsBr4D,OAAOk8D,yBAA+B,QAErFl8D,OAAOk8D,yBAAyBpd,aAAc,EAC9C9+C,OAAOm7D,eAAe3zD,SAAU,MAEhC+C,UAAS,WACLvK,OAAOy7D,wBAAwBnG,qBAAuBiD,QAAQvD,cAC9Dh1D,OAAOy7D,wBAAwBjG,mBAAqB0C,wBACpDl4D,OAAOy7D,wBAAwB9F,gBAAkBC,sBAClD,GAAG,SAKV51D,OAAOk8D,yBAAyBpd,aAAc,QC1T9D5hD,QAAQC,OAAO,SAAS+B,WAAW,gCAC9B,KAAM,SAAU,oBAAqB,cAAe,yBAA0B,sBAAuB,0BAA2B,UAC7H,SAAUqmB,GAAIvlB,OAAQsD,eAAgBU,YAAaw5D,uBAAwBC,oBAAqBC,wBAAyBxC,SACrH,YAsBA,SAASyC,aACD39D,OAAOy9D,oBAAoBG,0BAA2B,EACtD59D,OAAO69D,MAAMC,sBAAwB99D,OAAO89D,sBAAsBC,WAC3D/9D,OAAOy9D,oBAAoBO,0BAA2B,EAC7Dh+D,OAAO69D,MAAMC,sBAAwB99D,OAAO89D,sBAAsBG,WAC3Dj+D,OAAOy9D,oBAAoBS,yBAA0B,EAC5Dl+D,OAAO69D,MAAMC,sBAAwB99D,OAAO89D,sBAAsBK,UAElEn+D,OAAO69D,MAAMC,sBAAwB99D,OAAO89D,sBAAsBM,KAGtEp+D,OAAOq+D,yBAA2BX,wBAClC19D,OAAOs+D,cAAe,EAhC1Bt+D,OAAOs+D,cAAe,EAEtBt+D,OAAOy9D,oBAAsBA,oBAE7Bz9D,OAAOq+D,yBAA2B,GAClCr+D,OAAO69D,OACHU,qBAAsB,YACtBC,qBAAsB,YACtBV,sBAAuB,GAG3B99D,OAAO89D,uBACHC,WAAY,EACZE,WAAY,EACZE,UAAW,EACXC,KAAM,GAEVp+D,OAAO69D,MAAMC,sBAAwB99D,OAAO89D,sBAAsBM,KAiBlET,YAGA39D,OAAOy+D,mBAAqB,WACxB,GAAIC,sBAAuBl6D,EAAEC,KAAKzE,OAAOq+D,0BAA2BM,OAAQlB,oBAAoBmB,gBAC5FF,wBACAjB,oBAAoBoB,iBAAmBH,qBAAqB1hC,OAKpEh9B,OAAO8+D,0BAA4B,SAAmCC,YAAaC,kBAC/E,GAAIC,sBAAuBz6D,EAAEC,KAAKzE,OAAOy9D,oBAAoBZ,uBAAwBqC,uBAAwBH,aACzGE,wBACKD,iBAAiBvtD,gBAAkBypD,QAAQlI,YAAYC,OAAgC,KAArB+L,kBACnEC,qBAAqB5T,UAAW,EAChC4T,qBAAqB9wB,MAAQ,IAE7B8wB,qBAAqB5T,UAAW,IAM5CrrD,OAAOm/D,OAAS,WACZn/D,OAAOo/D,kBAAkBtgB,aAAc,EAClC9+C,OAAOo/D,kBAAkB/qC,SAI9Br0B,OAAOy9D,oBAAoBG,wBAAyB,EACpD59D,OAAOy9D,oBAAoBO,wBAAyB,EACpDh+D,OAAOy9D,oBAAoBS,uBAAyB,EAEhDl+D,OAAO69D,MAAMC,wBAA0B99D,OAAO89D,sBAAsBC,WACpE/9D,OAAOy9D,oBAAoBG,wBAAyB,EAC7C59D,OAAO69D,MAAMC,wBAA0B99D,OAAO89D,sBAAsBG,WAC3Ej+D,OAAOy9D,oBAAoBO,wBAAyB,EAC7Ch+D,OAAO69D,MAAMC,wBAA0B99D,OAAO89D,sBAAsBK,YAC3En+D,OAAOy9D,oBAAoBS,uBAAyB,GAGxDl+D,OAAOo/D,kBAAkBtgB,aAAc,EACvCx7C,eAAeG,MAAMy3D,QAAQrH,sBAAsBC,UAIvD9zD,OAAO0D,OAAS,WACZJ,eAAeK,QAAQu3D,QAAQrH,sBAAsBE,YCvFrE72D,QAAQC,OAAO,SAASgE,UAAU,wBAC7B,aAAc,aACX,SAAUpB,WAAYyG,SAClB,YAEA,QACI3G,SAAU,IACVZ,YAAa,oDACb0X,OAIIu5B,KAAM,QACN3d,SAAU,YACV0kC,OAAQ,UACRoI,aAAc,iBAElBngE,WAAY,SAASc,QAMjB,QAASs/D,kCAAiCC,gBACtC,GAAItI,QAASj3D,OAAOi3D,MAGpBzyD,GAAE4W,QAAQ67C,OAAOW,mBAAoB,SAAS4H,kBACjB,yCAArBA,kBACAz/D,WAAWkI,WAAW,qBAEdw3D,eAAgBF,eAChBvI,oBAAqBwI,qBAgCzC,QAAS7jD,aA7CT3b,OAAO0/D,wBACHvqC,KAAO,IAmBXn1B,OAAO2/D,cAAgB,WACnBL,iCAAiCt/D,OAAOi3D,OAAOE,gBAE3Cn3D,OAAOi3D,OAAOE,kBAAmB,EACjCn3D,OAAO0/D,uBAAuBvqC,KAAO3uB,QAAQ,6BAE7CxG,OAAO0/D,uBAAuBvqC,KAAO,GAGrCn1B,OAAOi3D,OAAO2I,6BAA8B,GAC5C5/D,OAAO6/D,0BAKf7/D,OAAO6/D,uBAAyB,WAC5B9/D,WAAWkI,WAAW,0BAEdivD,eAAgBl3D,OAAOi3D,OAAOC,eAC9BtkC,iBAAkB5yB,OAAOi3D,OAAOrkC,oBAQ5CjX,gBClEpBze,QAAQC,OAAO,SAASgE,UAAU,oBAC7B,aACG,WACI,YAEA,QACItB,SAAU,IACVZ,YAAa,gDACb0X,OAII4b,SAAU,YACV0kC,OAAQ,UACRoI,aAAc,iBAElBngE,WAAY,SAASc,QAcjB,QAAS2b,YACL3b,OAAOuyB,SAASgkC,iBAAmBv2D,OAAOi3D,OAAOC,eAbrDl3D,OAAO8/D,WACHC,QAAQ,GAGZ//D,OAAOqW,QAAU4H,SAAS+oC,SAAS,IAAK,QACxChnD,OAAOgsD,QAAU/tC,SAAS+pC,IAAI,EAAG,QAEjChoD,OAAOggE,eAAiB,SAAwBC,QAC5CA,OAAOC,iBACPlgE,OAAO8/D,UAAUC,QAAS,GAM9BpkD,gBCjCpBze,QAAQC,OAAO,SAASgE,UAAU,uBAC7B,aACG,SAAUpB,YACN,YAEA,QACIF,SAAU,IACVZ,YAAa,mDACb0X,OAII4b,SAAU,YACVwkC,QAAS,WACTsI,aAAc,iBAElBngE,WAAY,SAASc,QAEjB,QAASmgE,uBACL,GAAIC,YAAaC,OAAOrgE,OAAOuyB,SAASC,mBACrB,eAAf4tC,aACAA,WAAa,GACbpgE,OAAOuyB,SAASC,mBAAqB,IAEzCxyB,OAAOuyB,SAASgkC,iBAAmB,uCAE/B6J,WAAW1nD,OAAS,IACpBlU,EAAE4W,QAAQpb,OAAO+2D,QAAS,SAASE,QAC3BA,OAAOS,oBAAsB0I,aAC7BpgE,OAAOuyB,SAASgkC,iBAAmBU,OAAOC,kBAIlDl3D,OAAOuyB,SAASC,mBAAqB8b,OAAOtuC,OAAOuyB,SAASC,qBAKpE,QAAS8sC,kCAAiCC,eAAgBa,YACtD57D,EAAE4W,QAAQpb,OAAO+2D,QAAS,SAASE,QAC/BzyD,EAAE4W,QAAQ67C,OAAOW,mBAAoB,SAAS4H,kBAC1C,GAAIc,YAAY,CAES,0CAArBd,mBACID,eACItI,OAAOS,oBAAsB0I,aAC7BE,WAAY,GAGhBA,WAAY,GAIhBA,aAAc,GACdvgE,WAAWkI,WAAW,qBAEdw3D,eAAgBF,eAChBvI,oBAAqBwI,uBAoB7C,QAAS7jD,YACLwkD,sBAbJngE,OAAO2/D,cAAgB,WACnBQ,qBAEA,IAAIZ,iBAAiB,CACjBv/D,QAAOuyB,SAASC,mBAAqB,IACrC+sC,gBAAiB,GAGrBD,iCAAiCC,eAAgBv/D,OAAOuyB,SAASC,qBAOrE7W,gBChFpBze,QAAQC,OAAO,SAASgE,UAAU,2BAC7B,aACG,SAAUpB,YACN,YAEA,QACIF,SAAU,IACVZ,YAAa,uDACb0X,OAIIu5B,KAAM,QACN3d,SAAU,YACV0kC,OAAQ,UACRoI,aAAc,gBACdkB,uBAAwB,2BAE5BrhE,WAAY,SAASc,QAEjB,QAASwgE,6BACL,GAAIvJ,QAASj3D,OAAOi3D,OAChB1kC,SAAWvyB,OAAOuyB,SAClBkuC,qBAEJj8D,GAAE4W,QAAQmX,SAAS+F,QAAS,SAASooC,WAC7BA,UAAUxJ,iBAAmBD,OAAOC,gBAEpC1yD,EAAE4W,QAAQslD,UAAU9I,mBAAoB,SAAS+I,mBACnB,yCAAtBA,mBACsD,KAAlDF,mBAAmBhrD,QAAQkrD,oBAC3BF,mBAAmB9nD,KAAKgoD,uBAQxCF,mBAAmB/nD,QAAU,GAKjClU,EAAE4W,QAAQqlD,mBAAoB,SAASG,YACnC7gE,WAAWkI,WAAW,qBAEdw3D,gBAAgB,EAChBzI,oBAAqB4J,eAMrC,QAAStB,oCACL,GAAIrI,QAASj3D,OAAOi3D,MAGpBzyD,GAAE4W,QAAQ67C,OAAOW,mBAAoB,SAAS4H,kBACjB,yCAArBA,kBACAz/D,WAAWkI,WAAW,qBAEdw3D,gBAAgB,EAChBzI,oBAAqBwI,qBAuCzC,QAAS7jD,aAhCT3b,OAAO2/D,cAAgB,WACnBa,4BACAlB,mCAEIt/D,OAAOi3D,OAAOC,iBAAmBl3D,OAAOuyB,SAASgkC,mBAC7Cv2D,OAAOi3D,OAAO2I,6BAA8B,IACtC5/D,OAAOi3D,OAAO4J,mBAAqB7gE,OAAOi3D,OAAO4J,kBAAkBnoD,QAAU,IAAM1Y,OAAOuyB,SAASopC,2BAA4B,IACjI37D,OAAOuyB,SAASopC,yBAA0B,GAI1C37D,OAAOuyB,SAASopC,2BAA4B,IAC5C37D,OAAOuyB,SAASopC,yBAA0B,GAKtD,IAAImF,aAAc9gE,OAAOuyB,SAASgkC,gBAClCv2D,QAAOugE,uBAAuBO,cAIlC9gE,OAAO6/D,uBAAyB,WAC5B9/D,WAAWkI,WAAW,0BAEdivD,eAAgBl3D,OAAOi3D,OAAOC,eAC9BtkC,iBAAkB5yB,OAAOi3D,OAAOrkC,oBAQ5CjX,gBCxGpBze,QAAQC,OAAO,SAASgE,UAAU,oBAC7B,aACG,SAAUpB,YACN,YAEA,QACIF,SAAU,IACVZ,YAAa,gDACb0X,OAII4b,SAAU,YACV0kC,OAAQ,UACRoI,aAAc,iBAElBngE,WAAY,SAASc,QAEjB,QAASs/D,kCAAiCC,gBACtC,GAAItI,QAASj3D,OAAOi3D,MAGpBzyD,GAAE4W,QAAQ67C,OAAOW,mBAAoB,SAAS4H,kBACjB,yCAArBA,kBACAz/D,WAAWkI,WAAW,qBAEdw3D,eAAgBF,eAChBvI,oBAAqBwI,qBAgBzC,QAAS7jD,YACL3b,OAAOuyB,SAASgkC,iBAAmBv2D,OAAOi3D,OAAOC,eAVrDl3D,OAAO2/D,cAAgB,WACnB,GAAIJ,iBAAiB,CACjBv/D,QAAOuyB,SAASC,mBAAqB,IACrC+sC,gBAAiB,GAErBD,iCAAiCC,iBAOrC5jD,gBC9CpBze,QAAQC,OAAO,SAASgE,UAAU,yBAC7B,aACG,SAAUqF,SACN,YAEA,QACI3G,SAAU,IACVZ,YAAa,qDACb0X,OAIIu5B,KAAM,QACN3d,SAAU,YACV8sC,aAAc,iBAElBngE,WAAY,SAASc,QASjB,QAAS+gE,mBAAkBC,WACnBhhE,OAAOuyB,SAASK,mBAAqBouC,UAAUhK,qBAG3CgK,UAAUvB,kBAAmB,GAAQz/D,OAAOuyB,SAAS0pC,yBAA0B,EA8B3F,QAAStgD,YACD3b,OAAOuyB,SAASukC,qCAAsC,IACtDmK,0BAA4BjhE,OAAO0W,IAAI,oBAAqB,SAASyG,MAAOzb,MACxEq/D,kBAAkBr/D,SA7C9B,GAAIu/D,2BAA4B,IAEhCjhE,QAAOkhE,eACHC,gBAAkB36D,QAAQ,0BAC1B46D,wBAA0B56D,QAAQ,oCAoBtCxG,OAAO0W,IAAI,WAAY,WACe,OAA9BuqD,2BACAA,8BAIRjhE,OAAO2/D,cAAgB,aAIvB3/D,OAAOugE,uBAAyB,SAAgCc,cAehE1lD,gBClEpBze,QAAQC,OAAO,SAASgE,UAAU,kBAE1B,WACI,YAEA,QACItB,SAAU,IACVZ,YAAa,8CACb0X,OAII4b,SAAU,YACV2d,KAAM,SAEVhxC,WAAY,SAASc,QAKjB,QAAS+gE,mBAAkBC,WACnBhhE,OAAOuyB,SAASK,mBAAqBouC,UAAUhK,sBAE/Ch3D,OAAOuyB,SAASkkC,gBAAkBuK,UAAUvB,eAC5Cz/D,OAAOuyB,SAAS0pC,sBAAwB+E,UAAUvB,eAE9Cz/D,OAAOuyB,SAASkkC,mBAAoB,IACpCz2D,OAAOuyB,SAASgkC,iBAAmB,KACnCv2D,OAAOuyB,SAASC,mBAAqB,GAErChuB,EAAE4W,QAAQpb,OAAOuyB,SAAS+F,QAAS,SAAS2+B,QACxCA,OAAOE,gBAAiB,EACxBF,OAAOU,yBAA2B,OAOlD,QAAS2J,kCAAiCN,WAClCA,UAAUpuC,mBAAqB5yB,OAAOuyB,SAASK,kBAI/C5yB,OAAOuyB,SAASkkC,mBAAoB,IAIxCz2D,OAAOuyB,SAASopC,wBAA0B4F,sCAc9C,QAAS5lD,YAED3b,OAAOuyB,SAASukC,qCAAsC,IAEtDmK,0BAA4BjhE,OAAO0W,IAAI,oBAAqB,SAASyG,MAAOzb,MACxEq/D,kBAAkBr/D,SAI1B8/D,yCAA2CxhE,OAAO0W,IAAI,yBAA0B,SAASyG,MAAOzb,MAC5F4/D,iCAAiC5/D,QAMzC,QAAS6/D,sCACL,GACIE,mBADAC,iBAAkB,CAGtB,IAA4D,gBAAxD1hE,OAAOuyB,SAAS+jC,sBAAsB7kD,cAAiC,CACvE,GAAyC,OAArCzR,OAAOuyB,SAASgkC,iBAA2B,OAAO,CAEtDkL,mBAAoBj9D,EAAE4N,OAAOpS,OAAOuyB,SAAS+F,QAAS,SAAS2+B,QAC3D,MAAOA,QAAOC,iBAAmBl3D,OAAOuyB,SAASgkC,mBAEjDkL,mBACAj9D,EAAE4W,QAAQqmD,kBAAmB,SAAUxK,QACnCA,OAAO4J,kBAAoB,IAInC,IAAIrJ,gBAAiBhzD,EAAEC,KAAKzE,OAAOuyB,SAAS+F,QAAS,SAAS2+B,QAC1D,MAAQA,QAAOC,iBAAmBl3D,OAAOuyB,SAASgkC,kBAAoBU,OAAO2I,6BAA8B,KAAU3I,OAAO4J,mBAAqB5J,OAAO4J,kBAAkBnoD,OAAS,GAEnL8+C,kBACAkK,iBAAkB,OAGrB,IAA4D,aAAxD1hE,OAAOuyB,SAAS+jC,sBAAsB7kD,cAA8B,CACzEgwD,kBAAoBj9D,EAAE4N,OAAOpS,OAAOuyB,SAAS+F,QAAS,SAAS2+B,QAC3D,MAAOA,QAAOE,kBAAmB,IAEjCsK,mBACAj9D,EAAE4W,QAAQqmD,kBAAmB,SAAUxK,QACnCA,OAAO4J,kBAAoB,IAInC,IAAIc,iBAAkBn9D,EAAE4N,OAAOpS,OAAOuyB,SAAS+F,QAAS,SAAS2+B,QAC7D,MAAQA,QAAOE,kBAAmB,GAAQF,OAAO2I,6BAA8B,KAAU3I,OAAO4J,mBAAqB5J,OAAO4J,kBAAkBnoD,QAAU,IAGxJgpD,iBADAC,iBAAmBA,gBAAgBjpD,OAAS,GAC1B,GAEA,EAI1B,MAAOgpD,iBAzGX,GAAIT,2BAA4B,KAC5BO,yCAA2C,IAmC/CxhE,QAAO0W,IAAI,WAAY,WACe,OAA9BuqD,2BACAA,4BAE6C,OAA7CO,0CACAA,6CAkBR7lD,gBC3EpBze,QAAQC,OAAO,SAASgE,UAAU,+BAC1B,KACA,aACA,YACA,UACA,eACA,cACA,SACIokB,GACAxlB,WACA0e,OACAy8C,QACA9G,aACApwD,aAEA,YAEA,QACInE,SAAU,IACVZ,YAAa,2DACb0X,OAIIirD,uBAAwB,0BACxBC,qBAAsB,wBACtBr6D,QAAS,YAEbtI,WAAY,SAAyCc,QAkBjD,QAAS8hE,wBAAuBC,mBAC5B,MAAO/9D,aAAYe,QAAQ,4CAA8Cg9D,mBACpEtgE,KAAK,SAAUC,MACZ1B,OAAOgiE,oBAAsBtgE,OAKzC,QAASugE,8BACL,MAAOj+D,aAAYe,QAAQ,wBACtBtD,KAAK,SAAUC,MACZwgE,wBAA0BxgE,OAKtC,QAASygE,6BAA4BC,gBACjC,MAAOp+D,aAAYe,QAAQ,iDAAmDq9D,gBACzE3gE,KAAK,SAAUC,MACZ28D,yBAA2B75D,EAAE9C,MACxB0Z,QAAQ,SAAUohB,MACfA,KAAK6lC,WAAY,MAMrC,QAASC,gDACL99D,EAAE4W,QAAQijD,yBAA0B,SAAS7hC,MACzCA,KAAK6lC,WAAY,IAKzB,QAASE,iDAAgDC,wBACrDh+D,EAAE4W,QAAQpb,OAAO6hE,qBAAqB7E,qBAAsB,SAASyF,UACjE,GAAIA,SAASC,yBAA2BF,uBAAwB,CAC5D,GAAIG,oBAAsBn+D,EAAEC,KAAKy9D,yBAA0Bx9D,GAAI+9D,SAAS7D,gBACxE,IAAI+D,oBAAsBA,mBAAmBC,sBAAuB,EAAO,CACvE,GAAIC,0BAA2Br+D,EAAEC,KAAK45D,0BAA2BM,OAAQgE,mBAAmBj+D,IACxFm+D,4BACAA,yBAAyBR,WAAY,OAQzD,QAAS1mD,YACL5b,WAAW+iE,oBAAoB9iE,QAC/BA,OAAOwT,iBACP,IAAIuvD,4BAA6BjB,uBAAuB9hE,OAAO6hE,qBAAqBmB,+BAChFC,+BAAiChB,6BACjCiB,gCAAkCf,4BAA4BniE,OAAO6hE,qBAAqBsB,mCAE9F59C,IAAG8H,KAAK01C,2BAA4BE,+BAAgCC,kCAAkCzhE,KAAK,WACvGzB,OAAOu1D,iBAAmBv1D,OAAO4hE,uBAEjCp9D,EAAE4W,QAAQpb,OAAO6hE,qBAAqB7E,qBAAsB,SAASoG,qBACjE,GAAI1E,sBAAuBl6D,EAAEC,KAAK45D,0BAA2BM,OAAQyE,oBAAoBxE,gBACzF,IAA6BrgD,SAAzBmgD,qBAAoC,CACpC,GAAI2E,mBAAoB7+D,EAAEC,KAAKy9D,yBAA0Bx9D,GAAI0+D,oBAAoBxE,gBACjF,IAAIyE,kBAAmB,CACnB,GAAIC,UACA3E,OAAQ0E,kBAAkB3+D,GAC1Bs4B,KAAMqmC,kBAAkBrmC,KACxBumC,eAAgB,uCAChBC,mBAAoB,uCACpBnB,WAAW,EAEfhE,0BAAyB1lD,KAAK2qD,eAf9C/9C,SAmBS,SAAU1R,UACf7T,OAAO8T,aAAaD,SAAU,GAAI,cApBtC0R,WAqBW,WACPvlB,OAAOwH,SAAU,IAMzB,QAASi8D,6BAA4BC,uBACjCl/D,EAAE4W,QAAQpb,OAAOgiE,oBAAqB,SAAS2B,eAC3CD,sBACK/qD,KAAKy7C,aAAawP,2BACfD,cAAcH,mBACdxjE,OAAO6hE,qBAAqBpO,eAC5BkQ,cAAchF,OACdgF,cAAc3mC,SA5G9Bh9B,OAAOu1D,iBAAmB,EAE1B,IAAI2M,yBAA0B,GAC1B7D,yBAA2B,EAG/Br+D,QAAOwX,OAAO,yBAA0B,WACJ,KAA5BxX,OAAOu1D,kBAIPv1D,OAAOu1D,mBAAqBv1D,OAAO4hE,wBACnCjmD,aAsFRA,WAeA3b,OAAO6jE,4BAA8B,WACjCvB,+CACAC,gDAAgD,IAEhD,IAAIa,qBAAsBhP,aAAa0P,2BACvCL,6BAA4BL,oBAAoBvG,sBAEhD,IAAIh+C,eAAgBJ,OAAOK,MACvB7f,YAAa,6CACbC,WAAa,+BACbyX,MAAO3W,OAEP+e,YAAa,aACb3f,SACIo+D,uBAAwB,WACpB,MAAOx9D,QAAO6hE,qBAAqBsB,oCAEvC1F,oBAAqB,WACjB,MAAO2F,sBAEX1F,wBAAyB,WACrB,MAAOW,6BAKnBx/C,eAAc/B,OAAOrb,KAAK,SAAUqb,QAC5BA,SAAWo+C,QAAQrH,sBAAsBC,QACzC9zD,OAAO6hE,qBAAqB7E,qBAAqBrkD,KAAKyqD,wBAMlEpjE,OAAO+jE,wBAA0B,SAAiCX,qBAC9Dd,+CACAC,gDAAgDa,oBAAoBV,wBAEpEjkD,OAAOK,MACH7f,YAAa,6CACbC,WAAa,+BACbyX,MAAO3W,OAEP+e,YAAa,aACb3f,SACIo+D,uBAAwB,WACpB,MAAOx9D,QAAO6hE,qBAAqBsB,oCAEvC1F,oBAAqB,WACjB,MAAO2F,sBAEX1F,wBAAyB,WACrB,MAAOW,+BAOvBr+D,OAAOgkE,0BAA4B,SAAmCZ,qBAClE5+D,EAAEu4D,KAAK/8D,OAAO6hE,qBAAqB7E,qBAAsBoG,2BC1MjFlmE,QAAQC,OAAO,SAASgE,UAAU,qCAC1B,KACA,aACA,UACA,eACA,cACA,SACIokB,GACAxlB,WACAm7D,QACA9G,aACApwD,aAEA,YAEA,QACInE,SAAU,IACVZ,YAAa,iEACb0X,OAIIirD,uBAAwB,0BACxBC,qBAAsB,wBACtBr6D,QAAS,YAEbtI,WAAY,SAASc,QAgBjB,QAASikE,qBAAoB7B,gBACzB,MAAOp+D,aAAYe,QAAQ,mDAAqDq9D,gBAC3E3gE,KAAK,SAAUC,MACZ1B,OAAOkkE,iBAAmBxiE,KAEtB1B,OAAO6hE,qBAAqB3E,2BAA2BC,yBAAyBzkD,QAAU,GAC1FlU,EAAE4W,QAAQpb,OAAOkkE,iBAAkB,SAASC,aACxCnkE,OAAO6hE,qBAAqB3E,2BAA2BC,yBAClDxkD,KAAKy7C,aAAagQ,iCACf,GACA,EACAD,kBAO5B,QAASE,yBAAwBjC,gBAC7B,MAAOp+D,aAAYe,QAAQ,uDAAyDq9D,gBAC/E3gE,KAAK,SAAUC,MACZ1B,OAAOskE,qBAAuB5iE,KAE1B1B,OAAO6hE,qBAAqB3E,2BAA2BG,6BAA6B3kD,QAAU,GAC9FlU,EAAE4W,QAAQpb,OAAOskE,qBAAsB,SAASH,aAC5CnkE,OAAO6hE,qBAAqB3E,2BAA2BG,6BAClD1kD,KAAKy7C,aAAagQ,iCACf,GACA,EACAD,kBAO5B,QAASxoD,YACL5b,WAAW+iE,oBAAoB9iE,QAC/BA,OAAOwT,iBACP,IAAI+wD,yBAA0BN,oBAAoBjkE,OAAO6hE,qBAAqB2C,iCAC1EC,4BAA8BJ,wBAAwBrkE,OAAO6hE,qBAAqB6C,oCAEtFn/C,IAAG8H,KAAKk3C,wBAAyBE,8BAA8BhjE,KAAK,WAChEzB,OAAOu1D,iBAAmBv1D,OAAO4hE,yBADrCr8C,SAES,SAAU1R,UACf7T,OAAO8T,aAAaD,SAAU,GAAI,cAHtC0R,WAIW,WACPvlB,OAAOwH,SAAU,IA9DzBxH,OAAOu1D,iBAAmB,GAC1Bv1D,OAAOkkE,iBAAmB,GAC1BlkE,OAAOskE,qBAAuB,GAE9BtkE,OAAOwX,OAAO,yBAA0B,WACJ,KAA5BxX,OAAOu1D,kBAIPv1D,OAAOu1D,mBAAqBv1D,OAAO4hE,wBACnCjmD,aAuDRA,WAGA3b,OAAO2kE,+BAAiC,SAAwC5F,YAAaC,kBACzF,GAAI4F,KAAM7F,YAAYpnD,MAAM,IAC5B,IAAmB,IAAfitD,IAAIlsD,OAAc,CAClB,GAAImsD,gBAAiBD,IAAI,GACrBE,mBAAqBF,IAAI,GAEzBG,iBAAmBvgE,EAAEC,KAAKzE,OAAO6hE,qBAAqB3E,2BAA2BC,0BAA2B6H,eAAgBH,gBAChI,IAAIE,iBAAkB,CAClB,GAAIE,kBAAmBzgE,EAAEC,KAAKsgE,iBAAiB3H,qBAAsB8H,mBAAoBJ,oBACrFG,oBACKjG,iBAAiBvtD,gBAAkBypD,QAAQlI,YAAYC,OAAgC,KAArB+L,kBACnEiG,iBAAiB5Z,UAAW,EAC5B4Z,iBAAiB92B,MAAQ,IAEzB82B,iBAAiB5Z,UAAW,MAQhDrrD,OAAOmlE,mCAAqC,SAA4CpG,YAAaC,kBACjG,GAAI4F,KAAM7F,YAAYpnD,MAAM,IAC5B,IAAmB,IAAfitD,IAAIlsD,OAAc,CAClB,GAAImsD,gBAAiBD,IAAI,GACrBE,mBAAqBF,IAAI,GAEzBG,iBAAmBvgE,EAAEC,KAAKzE,OAAO6hE,qBAAqB3E,2BAA2BG,8BAA+B2H,eAAgBH,gBACpI,IAAIE,iBAAkB,CAClB,GAAIE,kBAAmBzgE,EAAEC,KAAKsgE,iBAAiB3H,qBAAsB8H,mBAAoBJ,oBACrFG,oBACKjG,iBAAiBvtD,gBAAkBypD,QAAQlI,YAAYC,OAAgC,KAArB+L,kBACnEiG,iBAAiB5Z,UAAW,EAC5B4Z,iBAAiB92B,MAAQ,IAEzB82B,iBAAiB5Z,UAAW,WCnIpEnuD,QAAQC,OAAO,SAASgE,UAAU,uCAC1B,KACA,aACA,UACA,eACA,cACA,SACIokB,GACAxlB,WACAm7D,QACA9G,aACApwD,aAEA,YAEA,QACInE,SAAU,IACVZ,YAAa,mEACb0X,OAIIirD,uBAAwB,0BACxBC,qBAAsB,wBACtBr6D,QAAS,YAEbtI,WAAY,SAASc,QAejB,QAASolE,4BAA2BhD,gBAChC,MAAOp+D,aAAYe,QAAQ,6CAA+Cq9D,gBACrE3gE,KAAK,SAAUC,MACZ1B,OAAOqlE,wBAA0B3jE,KAE7B1B,OAAO6hE,qBAAqBhF,sBAAsBnkD,QAAU,GAC5DlU,EAAE4W,QAAQpb,OAAOqlE,wBAAyB,SAAS1B,eAC/C3jE,OAAO6hE,qBAAqBhF,sBACvBlkD,KAAKy7C,aAAawP,2BACfD,cAAcH,mBACdxjE,OAAO6hE,qBAAqBpO,eAC5BkQ,cAAchF,OACdgF,cAAc3mC,WAO1C,QAASrhB,YACL5b,WAAW+iE,oBAAoB9iE,QAC/BA,OAAOwT,iBACP,IAAI8xD,gCAAiCF,2BAA2BplE,OAAO6hE,qBAAqB0D,wBAE5FhgD,IAAG8H,KAAKi4C,iCAAiC7jE,KAAK,WAC1CzB,OAAOu1D,iBAAmBv1D,OAAO4hE,yBADrCr8C,SAES,SAAU1R,UACf7T,OAAO8T,aAAaD,SAAU,GAAI,cAHtC0R,WAIW,WACPvlB,OAAOwH,SAAU,IA3CzBxH,OAAOqlE,wBAA0B,GACjCrlE,OAAOu1D,iBAAmB,GAE1Bv1D,OAAOwX,OAAO,yBAA0B,WACJ,KAA5BxX,OAAOu1D,kBAIPv1D,OAAOu1D,mBAAqBv1D,OAAO4hE,wBACnCjmD,aAqCRA,WAGA3b,OAAO8+D,0BAA4B,SAAmCC,YAAaC,kBAC/E,GAAIC,sBAAuBz6D,EAAEC,KAAKzE,OAAO6hE,qBAAqBhF,uBAAwBqC,uBAAwBH,aAC1GE,wBACKD,iBAAiBvtD,gBAAkBypD,QAAQlI,YAAYC,OAAgC,KAArB+L,kBACnEC,qBAAqB5T,UAAW,EAChC4T,qBAAqB9wB,MAAQ,IAE7B8wB,qBAAqB5T,UAAW,SCnFhEnuD,QAAQC,OAAO,SAASgE,UAAU,mBAC7B,WAAY,UACT,SAAUoJ,SAAUwC,SAChB,YAEA,QACIlN,SAAU,IACVoW,KAAM,SAAUU,MAAOkB,QAAS2tD,OAS5B,QAASC,UAASlhE,IACdgG,SAAS,WACL,GAAIsN,SAAU9K,QAAQiN,SAAS0rD,eAAenhE,GAC1CsT,UACAA,QAAQ8tD,UAZpB9tD,QAAQsC,GAAGqrD,MAAMI,gBAAiB,WAC9BH,SAASD,MAAMK,gBAGnBlvD,MAAMD,IAAI,WAAY,WAClBmB,QAAQuC,IAAIorD,MAAMI,wBCb1C1oE,QAAQC,OAAO,SAASgE,UAAU,eAC7B,KAAM,cAAe,eAAgB,UAClC,SAAUokB,GAAIvhB,YAAaowD,aAAc8G;AACrC,YAEA,QACIr7D,SAAU,IACVZ,YAAa,2CACb0X,OAIIooD,YAAa,eACb+G,gBAAiB,mBACjBhH,0BAA2B,6BAC3BiH,SAAU,MAIdC,QAAS,QACT/vD,KAAM,SAASU,MAAOkB,QAAS2tD,MAAOS,UAClCtvD,MAAMuvD,QAAUD,UAEpB/mE,WAAY,SAASc,QAuBjB,QAAS2b,YACL,GAAIwqD,mBAAoBniE,YAAYe,QAAQ,aAAc/E,OAAQ,iBAElEulB,IAAG8H,KAAK84C,oBAAoB1kE,KAAK,WAC7B+C,EAAEoU,OAAO5Y,OAAOomE,gBAAiBppC,KAAM,MACvCx4B,EAAEoU,OAAO5Y,OAAOomE,gBAAiBppC,KAAM,SAEvC,IAAIqpC,sBACArT,YAAckI,QAAQlI,YAAYC,MAClCj2B,KAAM,0BACNmR,MAAO,GACPm4B,aAAc,GACdC,cAAc,EACdC,WAAW,EACXC,iBAAkB,EAClBC,qBAAsB,GACtBlxC,aAAc,GAElBx1B,QAAOomE,eAAexuB,QAAQyuB,uBAxCtCrmE,OAAO2mE,cAAiB,WAAc3mE,OAAO++D,YAC7C/+D,OAAO4mE,eAAiB,YAAc5mE,OAAO++D,YAC7C/+D,OAAO6mE,YAAiB,SAAc7mE,OAAO++D,YAEzC/+D,OAAO8lE,gBAAgBgB,mBAAqB5L,QAAQlI,YAAYC,QAChEjzD,OAAO8lE,gBAAgBgB,iBAAmB,IAEK,KAA/C9mE,OAAO8lE,gBAAgBiB,sBACvB/mE,OAAO8lE,gBAAgBiB,oBAAsBC,SAAShnE,OAAO8lE,gBAAgBiB,sBAGjF/mE,OAAOinE,wBAA0B7S,aAAa6S,wBAAwBjnE,OAAO8lE,gBAAgBgB,kBAC7F9mE,OAAOknE,uBAA0B9S,aAAa8S,uBAAuBlnE,OAAO8lE,gBAAgBgB,kBAE5F9mE,OAAOmnE,iBACHC,gBAAgB,GAGpBpnE,OAAOqW,QAAU4H,SAAS+oC,SAAS,IAAK,QACxChnD,OAAOgsD,QAAU/tC,SAwBjBtC,WAGA3b,OAAOusD,kBAAoB,WACvBvsD,OAAOmnE,gBAAgBC,gBAAiB,GAI5CpnE,OAAOqnE,qBAAuB,WAC1B,GAAIrnE,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYC,MAe9E,MAbAjzD,QAAO8lE,gBAAgBgB,iBAAmB,GAC1C9mE,OAAO8lE,gBAAgBiB,oBAAsB,GAC7C/mE,OAAO8lE,gBAAgBwB,mBAAqB,GAC5CtnE,OAAO8lE,gBAAgByB,qBAAuB,GAC9CvnE,OAAOinE,yBAA0B,EACjCjnE,OAAOknE,wBAAyB,EAChClnE,OAAOmnE,gBAAgBC,gBAAiB,MAExCpnE,QAAO8+D,2BACHC,YAAa/+D,OAAO++D,YACpBC,iBAAkBh/D,OAAO8lE,gBAAgBgB,kBAMjD9mE,QAAO8lE,gBAAgByB,qBAAuB,EAC9C,IAAIC,eAAgBhjE,EAAEC,KAAKzE,OAAOomE,gBAAiBpT,YAAahzD,OAAO8lE,gBAAgBgB,kBAKvF,IAJIU,gBACAxnE,OAAO8lE,gBAAgByB,qBAAuBC,cAAcxqC,MAG5Dh9B,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYjN,SAY9E,MAXA/lD,QAAO8lE,gBAAgBiB,oBAAsB,GAC7C/mE,OAAO8lE,gBAAgBwB,mBAAqB,GAC5CtnE,OAAOinE,yBAA0B,EACjCjnE,OAAOknE,wBAAyB,EAChClnE,OAAOmnE,gBAAgBC,gBAAiB,MAExCpnE,QAAO8+D,2BACHC,YAAa/+D,OAAO++D,YACpBC,iBAAkBh/D,OAAO8lE,gBAAgBgB,kBAMjD9mE,QAAOknE,wBAAyB,EAChClnE,OAAOmnE,gBAAgBC,gBAAiB,CAExC,IAAIK,0BAA0B,CAE1BznE,QAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYE,QAC9EuU,yBAA0B,EAErBznE,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYG,SACnFsU,yBAA0B,EAErBznE,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYI,UACnFqU,yBAA0B,EAErBznE,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYK,SACnFoU,yBAA0B,EAErBznE,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYM,UACnFmU,yBAA0B,EAErBznE,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYO,SACnFkU,yBAA0B,EAErBznE,OAAO8lE,gBAAgBgB,iBAAiBr1D,gBAAkBypD,QAAQlI,YAAYQ,QACnFiU,yBAA0B,GAG9BznE,OAAO8lE,gBAAgBiB,oBAAsB,GAC7C/mE,OAAO8lE,gBAAgBwB,mBAAqB,GAC5CtnE,OAAOinE,wBAA0BQ,wBAEjCznE,OAAO8+D,2BACHC,YAAa/+D,OAAO++D,YACpBC,iBAAkBh/D,OAAO8lE,gBAAgBgB,yBCpJrE5pE,QAAQC,OAAO,SAASogB,QAAQ,mBAC3B,oBAAqB,SAAUC,mBAC5B,YAEA,SAAS2zC,2BAA0BnpD,QAC/B,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,4BAA4B4V,MAG9E,QAASy2C,yBAAwBrsD,OAAQ+pD,oBACrC,GAAIp0C,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,+BAAiC+pD,oBAAoBn0C,MAGvG,QAASi4C,yBAAwB7tD,OAAQ+pD,oBACrC,GAAIp0C,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,OAAS,kBAAoB+pD,oBAAoBn0C,MAG1F,QAAS2/C,yBAAwBmK,yBAC7B,GAAI/pD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aACFE,IAAI,YAAc6pD,wBAAwBzsC,UAAY,kBAAoBysC,wBAAwB1V,oBAClGh4B,UAAU0tC,yBAGnB,QAASnW,0BAAyBvpD,OAAQ2/D,mBACtC,GAAIhqD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,YAAc7V,QAAQ4mB,UAAU,QAAS+4C,mBAIpE,QAAS/N,2BAA0Bx8C,UAAWg+B,aAAcwsB,0BACxD,GAAIjqD,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,6BAA+BksB,wBACjD,OAAOjqD,aAAYE,IAAI,YAAcT,UAAY,qBAAuBg+B,aAAeM,aAAa99B,MAIxG,QAASy7C,sBAAqBj8C,UAAWg+B,aAAcwsB,yBAA0Bn1D,iBAC7E,GAAIkL,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,6BAA+BksB,yBAA2B,WAAan1D,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,MAAQ,SAAW7K,gBAAgBkpC,IACjL,OAAOh+B,aAAYE,IAAI,YAAcT,UAAY,qBAAuBg+B,aAAeM,aAAa99B,MAIxG,QAAS27C,gCAA+Bn8C,UAAWg+B,aAAcoe,WAC7D,GAAI77C,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aACFE,IAAI,YAAcT,UAAY,qBAAuBg+B,aAAe,yBACpEphB,UAAUw/B,WAInB,QAASyB,8BAA6B79C,UAAWg+B,aAAcoe,WAC3D,GAAI77C,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aACFE,IAAI,YAAcT,UAAY,qBAAuBg+B,aAAe,uBACpEphB,UAAUw/B,WAKnB,QAASuB,uBAAsB39C,UAAWvZ,OACtC,GAAI8Z,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aACFE,IAAI,YAAcT,UAAY,qCAC9BgO,WAAWvnB,OAIpB,OACIstD,0BAA2BA,0BAC3B0E,wBAAyBA,wBACzBxB,wBAAyBA,wBACzBkJ,wBAAyBA,wBACzBhM,yBAA0BA,yBAC1BqI,0BAA2BA,0BAC3BL,+BAAgCA,+BAChC0B,6BAA8BA,6BAC9B5B,qBAAsBA,qBACtB0B,sBAAwBA,0BCjFpC79D,QAAQC,OAAO,SAASogB,QAAQ,gBAC3B,UAAW,UACR,SAAU29C,QAASrsC,SACf,YAOA,SAASo4C,yBAAwBlI,aAC7B,MAAIA,cAAeA,YAAYttD,gBAAkBypD,QAAQlI,YAAYE,SAC1D,EAEP6L,aAAeA,YAAYttD,gBAAkBypD,QAAQlI,YAAYG,UAC1D,EAEP4L,aAAeA,YAAYttD,gBAAkBypD,QAAQlI,YAAYI,WAC1D,EAEP2L,aAAeA,YAAYttD,gBAAkBypD,QAAQlI,YAAYK,UAC1D,GAEJ,EAGX,QAAS6T,wBAAuBnI,aAC5B,MAAIA,aAAYttD,gBAAkBypD,QAAQlI,YAAYjN,UAC3C,GAEA,EAIf,QAASkS,oBAAmB4P,WACxB9P,cAAcC,KAAKtzD,GAAKmjE,UAAU7P,KAAKtzD,GACvCqzD,cAAcC,KAAKh7B,KAAO6qC,UAAU7P,KAAKh7B,KACzC+6B,cAAchL,QAAQroD,GAAKmjE,UAAU9a,QAAQroD,GAGjD,QAASi0D,sBACLZ,cAAcC,KAAKtzD,GAAK,GACxBqzD,cAAcC,KAAKh7B,KAAO,GAC1B+6B,cAAchL,QAAQroD,GAAK,GAG/B,QAASg0D,oBACL,MAAOX,eAGX,QAAS6L,4BAA2BkE,uBAAwBC,eAAgBC,UAAWznE,MACnF,GAAI0+D,uBACAgJ,sBAAsB,EACtB/I,uBAAwB4I,uBACxBrU,eAAgBsU,eAChBG,UAAWF,UACXG,YAAa5nE,KACb8qD,UAAU,EACV+c,cAAc,EACdC,QAAQ,EACRC,gBACIxB,iBAAkB,GAClBC,oBAAqB,GACrBO,mBAAoB,GACpBC,qBAAsB,IAI9B,OAAOtI,sBAGX,QAAS6E,6BACL,GAAIV,sBACA6E,sBAAsB,EACtBrJ,eAAgB,GAChBC,iBAAkB,GAClBjB,uBAAwB,GACxBI,uBAAwB,GACxBE,sBAAuB,GACvB58C,UAAW,GACXC,SAAU,GACVgnD,oBACIzB,iBAAkB,GAClBC,oBAAqB,GACrBO,mBAAoB,IAExBkB,oBACI1B,iBAAkB,GAClBC,oBAAqB,GACrBO,mBAAoB,IAExBmB,iBAAiB,EACjB5L,yBAGJ,OAAOuG,qBAGX,QAASgB,iCAAgCsE,YAAaC,gBAAiBxE,aACnE,GAAIY,mBACA6D,YAAaF,YACbG,gBAAiBF,gBACjBvL,uBA+BJ,OA5BI+G,eACAY,iBAAiBC,eAAiBb,YAAYa,eAC9CD,iBAAiB+D,iBAAmB3E,YAAYnnC,KAChD+nC,iBAAiBgE,SAAW5E,YAAY4E,SAEpC5E,YAAY6E,8BACZxkE,EAAE4W,QAAQ+oD,YAAY6E,6BAA8B,SAAUC,aAC1D,GAAIzsC,OACA0oC,mBAAoB+D,YAAY/D,mBAChCgE,UAAWD,YAAYC,UACvBC,YAAaF,YAAYG,oBAAoBpsC,KAC7CqsC,gBAAiBJ,YAAYG,oBAAoBL,SACjDO,gBAAiBL,YAAYK,gBAC7B9zC,aAAcyzC,YAAYzzC,aAC1BuzC,SAAUE,YAAYF,SACtB1d,UAAU,EACVid,gBACIxB,iBAAkB,GAClBC,oBAAqB,GACrBO,mBAAoB,IAExBiC,iCAAkCpF,YAAYa,eAAiB,IAAMiE,YAAY/D,mBAErFH,kBAAiB3H,oBAAoBzkD,KAAK6jB,SAK/CuoC,iBAGX,QAAS3J,wBAAuBoO,YAC5B,GAA0B,IAAtBA,WAAW9wD,OAAf,CAIA,GAAI+wD,KAAMD,WAAW9wD,MACrBlU,GAAE4W,QAAQyT,QAAQ66C,UAAW,SAASC,KAC9BA,IAAIhnE,UAAU,EAAG8mE,OAASD,YAC1B36C,QAAQjW,OAAO+wD,QA3I3B,GAAI5R,gBACAC,MAAOtzD,GAAI,GAAIs4B,KAAM,IACrB+vB,SAAUroD,GAAI,IA8IlB,QACIg0D,iBAAkBA,iBAClBT,mBAAoBA,mBACpBU,mBAAoBA,mBACpBsO,wBAAyBA,wBACzBC,uBAAwBA,uBACxBtD,2BAA4BA,2BAC5BE,0BAA2BA,0BAC3BM,gCAAiCA,gCACjChJ,uBAAwBA,2BC9JxCl+D,QAAQC,OAAO,WAEX,sBACA,UACA,WACA,SACA,YACA,UACA,aACA,cACA,UACA,eACA,YACA,iBAEA,cACA,gBACA,gBACA,uBACA,sBACA,qBACA,iBCrBJD,QAAQC,OAAO,WAAWK,QAAQ,oBAAqB,iBACnD,SAAUO,kBAAmBC,gBACzB,YAEA,IAAIK,iBAAmBE,YAAa,WAEhCN,WACA2rE,SACIzrE,MAAO,oBACPC,MAAO,qBACPC,eAAgBA,gBAEpBwrE,gBACI1rE,MAAO,iBACPC,MAAO,yDACPC,eAAgBA,gBAEpByrE,oBACI3rE,MAAO,oCACPC,MAAO,iCACPC,eAAgBA,gBAEpB0rE,oBACI5rE,MAAO,oCACPC,MAAO,sBACPC,eAAgBA,gBAEpB2rE,qBACI7rE,MAAO,sBACPC,MAAO,wBACPC,gBACIK,YAAY,EACZJ,aAAa,EACb2C,YAAY,IAGpBgpE,gBACI9rE,MAAO,iBACPC,MAAO,wBACPC,eAAgBA,gBAGpB6rE,uBACI/rE,MAAO,wBACPC,MAAO,yBACPC,gBACIK,YAAY,EACZJ,aAAa,EACb2C,YAAY,IAGpBkpE,kCACIhsE,MAAO,gEACPC,MAAO,oCACPC,gBACIK,YAAY,EACZJ,aAAa,EACb2C,YAAY,IAGpBmpE,8BACIjsE,MAAO,+BACPC,MAAO,uEACPC,gBACIK,YAAY,EACZJ,aAAa,EACb2C,YAAY,IAGpBopE,kCACIlsE,MAAO,gEACPC,MAAO,+CACPC,gBACIK,YAAY,EACZJ,aAAa,EACb2C,YAAY,IAGpBqpE,8BACInsE,MAAO,+BACPC,MAAO,sCACPC,gBACIK,YAAY,EACZJ,aAAa,EACb2C,YAAY,IAKxBlD,mBAAkBgB,eAAed,WAEjCD,eACKG,MAAMF,UAAU2rE,QAAQzrE,OACrBa,IAAKf,UAAU2rE,QAAQxrE,MACvBa,YAAa,8BACbC,WAAY,cACZC,YAAa,WACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,eAG3EpB,MAAMF,UAAU4rE,eAAe1rE,OAC5Ba,IAAKf,UAAU4rE,eAAezrE,MAC9Ba,YAAa,qCACbC,WAAY,qBACZC,YAAa,WACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,sBAG3EpB,MAAMF,UAAU6rE,mBAAmB3rE,OAChCa,IAAKf,UAAU6rE,mBAAmB1rE,MAClCa,YAAa,kDACbC,WAAY,yBACZC,YAAa,aAEhBhB,MAAMF,UAAU8rE,mBAAmB5rE,OAChCa,IAAKf,UAAU8rE,mBAAmB3rE,MAClCa,YAAa,kDACbC,WAAY,yBACZC,YAAa,aAEhBhB,MAAMF,UAAU+rE,oBAAoB7rE,OACjCa,IAAKf,UAAU+rE,oBAAoB5rE,MACnCa,YAAa,0CACbC,WAAY,0BACZC,YAAa,aAEhBhB,MAAMF,UAAUgsE,eAAe9rE,OAC5Ba,IAAKf,UAAUgsE,eAAe7rE,MAC9Ba,YAAa,qCACbC,WAAY,qBACZC,YAAa,WACbC,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,sBAI3EpB,MAAMF,UAAUqsE,6BAA6BnsE,OAC1Ca,IAAKf,UAAUqsE,6BAA6BlsE,MAC5Ca,YAAa,qCACbC,WAAY,qBACZC,YAAa,WACbK,uBAAwB,EACxBJ,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,sBAG3EpB,MAAMF,UAAUisE,sBAAsB/rE,OACnCa,IAAKf,UAAUisE,sBAAsB9rE,MACrCa,YAAa,4CACbC,WAAY,cACZC,YAAa,WACbK,uBAAwB,IAE3BrB,MAAMF,UAAUksE,iCAAiChsE,OAC9Ca,IAAKf,UAAUksE,iCAAiC/rE,MAChDa,YAAa,kDACbC,WAAY,yBACZC,YAAa,WACbK,uBAAwB,IAE3BrB,MAAMF,UAAUmsE,6BAA6BjsE,OAC1Ca,IAAKf,UAAUmsE,6BAA6BhsE,MAC5Ca,YAAa,qCACbC,WAAY,qBACZC,YAAa,WACbK,uBAAwB,EACxBJ,SACIC,OAAQ,SAAUC,gBAAkB,MAAOA,gBAAeC,UAAU,sBAG3EpB,MAAMF,UAAUosE,iCAAiClsE,OAC9Ca,IAAKf,UAAUosE,iCAAiCjsE,MAChDa,YAAa,kDACbC,WAAY,yBACZC,YAAa,WACbK,uBAAwB,OCjLxCtC,QAAQC,OAAO,WAAWsC,KAAK,iBAAkB,SAASC,gBACxD,YAEAA,gBAAeC,IAAI,8BACjB,2zaAwcFD,eAAeC,IAAI,iDACjB,omEAgHFD,eAAeC,IAAI,yCACjB;AA0DFD,eAAeC,IAAI,0CACjB,wrCAuDFD,eAAeC,IAAI,4CACjB,2qCA0DFD,eAAeC,IAAI,kDACjB,qoGA4IFD,eAAeC,IAAI,kDACjB,myCAwDFD,eAAeC,IAAI,qCACjB,66GAoLFD,eAAeC,IAAI,4CACjB,o7XAkXFD,eAAeC,IAAI,qCACjB,gsEAkHFD,eAAeC,IAAI,0CACjB,0YC7kDJzC,QAAQC,OAAO,WAAW+B,WAAW,eACtB,SAAU,oBAAqB,iCAAkC,iBAAkB,oBAAqB,YAAa,aAAc,SAAU,yBAA0B,gBAAiB,YAAc,UAAW,KAAM,iBAClO,SAAWc,OAAWuqE,kBAAqB1jE,+BAAkConD,eAAkBloD,kBAAqB0Y,OAAajY,QAAcvG,OAAU+B,uBAA0BgE,cAAiBic,UAAcjb,QAAWue,GAAMxM,gBAE3N,YAiCA,SAAS+f,YACL94B,OAAOkgB,UAAYrZ,+BAA+BsZ,eAClDngB,OAAOwqE,wBAA0Bvc,eAAec,iCAChD/uD,OAAOyqE,kBAAoBxc,eAAeyc,2BAC1C1qE,OAAO2qE,qBAAuB1c,eAAe2c,8BAC7C5qE,OAAO6qE,gBAAkBhkE,+BAA+B+oB,yCAGxD5vB,OAAOmvD,eAAkBlvD,OAAOK,QAAQd,sBAExCQ,OAAOwT,iBACP,IAAIs3D,YACA9qE,QAAO2qE,sBACPG,SAASnyD,KAAKoyD,wBAGd/qE,OAAOwqE,0BACPM,SAASnyD,KAAKqyD,sBACdF,SAASnyD,KAAKsyD,uBAGbH,SAASpyD,QAId6M,GAAG8H,IAAIy9C,UAAPvlD,SAAuB,SAAU1R,UAC7B7T,OAAO8T,aAAaD,YAI5B,QAASm3D,sBACLhrE,OAAOkrE,uBAAwB,CAC/B,IAAI7yC,aACA61B,mBAAoBluD,OAAOkgB,UAAU3b,GACrC4pD,gBAAiBnuD,OAAOkgB,UAAU3b,IAAK,GAAIiK,OAAOyyB,qBAetD,OAAOgtB,gBACFG,kBAAkB/1B,YAClB52B,KAAK,SAAU4sD,mBACZruD,OAAO6D,MAAMyqD,iBAAmBD,kBAAkBC,iBAClDtuD,OAAO6D,MAAM2K,KAAO6/C,kBAAkB7/C,KACtCxO,OAAO6D,MAAM2qD,cAAgBH,kBAAkBG,cAC/CxuD,OAAO6D,MAAM4qD,gCAAkCJ,kBAAkBI,gCACjEzuD,OAAO6D,MAAM6qD,mCAAqCL,kBAAkBK,mCACpE1uD,OAAO6D,MAAM8qD,kBAAoBN,kBAAkBM,kBACnD3uD,OAAO6D,MAAM+qD,wBAA0BP,kBAAkBO,wBACzD5uD,OAAO6D,MAAMgrD,+BAAkC7uD,OAAO6D,MAAM+qD,yBAA2B5uD,OAAO6D,MAAM+qD,wBAAwBl2C,OAAS,IAVtIu1C,WAYM,WACLjuD,OAAOkrE,uBAAwB,IAI3C,QAASD,sBACLjrE,OAAOmrE,uBAAwB,CAC/B,IAAI9yC,aACA61B,mBAAoBluD,OAAOkgB,UAAU3b,GACrC4pD,gBAAiBnuD,OAAOkgB,UAAU3b,IAAK,GAAIiK,OAAOyyB,qBAGtD,OAAOspC,mBACFa,kBAAkB/yC,YAClB52B,KAAK,SAAU4pE,qBACRA,sBACArrE,OAAO6D,MAAMynE,eAAiB9mE,EAAE6mE,oBAAoBjzC,SAAS3uB,IAAI,SAAU88B,OACvE,MAAO/hC,GAAEkiC,OAAOH,OAAQI,aAAc,MACvCnqB,WANR+tD,WASM,WACLvqE,OAAOmrE,uBAAwB,IAI3C,QAASJ,wBAGL,MAFA/qE,QAAOurE,yBAA0B,EAE1Btd,eAAeud,oBAAoBxrE,OAAOkgB,UAAU3b,IACtD9C,KAAK,SAAUC,MACZ1B,OAAO6D,MAAM4nE,iBAAmB/pE,OAFjCusD,WAIM,WACLjuD,OAAOurE,yBAA0B,IAK7C,QAASvc,2BAA0BC,SAC3BjvD,OAAO6D,MAAM2qD,eAAiBxuD,OAAO6D,MAAM2qD,cAAcU,SACtDlvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,+BACpCse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAEhG1pD,kBAAkBK,YAAYC,SAAU,iBACpCse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAGjGzvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,mCACpCse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAEhG1pD,kBAAkBK,YACdC,SAAU,qBACVse,MAAOyqC,OAAQH,QAAQI,QAASC,WAAYL,QAAQM,WAAYC,mBAAoBP,QAAQQ,sBAK5G,QAASC,4BACD1vD,OAAO6D,MAAM2qD,eAAiBxuD,OAAO6D,MAAM2qD,cAAcU,SACtDlvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,+BAAgCse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAEnM1pD,kBAAkBK,YAAYC,SAAU,iBAAkBse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAGtLzvD,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,mCAAoCse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAEvM1pD,kBAAkBK,YAAYC,SAAU,qBAAsBse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,iBAAkBgB,WAAYtvD,OAAO6D,MAAM8qD,kBAAmBa,mBAAoBxvD,OAAO6D,MAAM4rD,sBAKrM,QAASic,aAAYC,MACjB3rE,OAAO6lC,YAAa,CACpB,IAAIhnB,eAAgBJ,OAAOK,MACvB7f,YAAa,0CACbC,WAAY,mBACZE,SACIqU,YAAa,WACT,MAAOzT,QAAOkgB,UAAU3b,IAE5BonE,KAAM,WACF,MAAOA,SAKnB9sD,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAO6lC,YAAa,IAI5B,QAAS+lC,iBAEL5rE,OAAO6lC,YAAa,CACpB,IAAIhnB,eAAgBJ,OAAOK,MACvB7f,YAAa,4CACbC,WAAY,qBACZ8c,KAAM,KACN5c,SACI8gB,UAAW,WACP,MAAOlgB,QAAOkgB,aAK1BrB,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAO6lC,YAAa,IAI5B,QAASgmC,cAEL7rE,OAAO6lC,YAAa,CACpB,IAAIhnB,eAAgBJ,OAAOK,MACvB7f,YAAa,yCACbC,WAAY,kBACZ8c,KAAM,KACN5c,SACI8gB,UAAW,WACP,MAAOlgB,QAAOkgB,aAK1BrB,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAO6lC,YAAa,IAI5B,QAASimC,gBAAex5D,YAEpB,MADAA,YAAatS,OAAOkgB,UAAU3b,GACvBgmE,kBAAkBwB,aAAaz5D,YACjC7Q,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMG,UAAW,MAAOF,SAAU,UAAiBhX,OAAOkgB,UAAUhM,YAInG,QAAS83D,iBACLhsE,OAAO6lC,YAAa,CAEpB,IAAItiC,cACAO,MAAO0C,QAAQ,UACfuM,iBAAkB,GAClBkoB,UAAWj7B,OAAOkgB,UAAU3b,GAC5ByO,WAAYhT,OAAOkgB,UAAU3b,GAC7BoO,aAAcs5D,aACdp5D,iBAAkBi5D,eAClB54D,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY;AACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAO6lC,YAAa,IAI5B,QAASomC,cAAa35D,YAElB,MADAA,YAAatS,OAAOkgB,UAAU3b,GACvBgmE,kBAAkBwB,aAAaz5D,YAG1C,QAAS45D,4BAA2B55D,YAChC,MAAOi4D,mBAAkB2B,2BAA2BlsE,OAAOkgB,UAAU3b,GAAI+N,YAG7E,QAAS65D,8BAA6BC,aAElC,MADAA,aAAYzlC,aAAc,EACnB4jC,kBAAkB2B,2BAA2BlsE,OAAOkgB,UAAU3b,GAAI6nE,YAAY1nE,IAChFjD,KAAK,SAAUC,MACZ,OAAQqV,KAAMrV,KAAKqV,KAAMG,UAAW,MAAOF,SAAU,aAAoBhX,OAAOkgB,UAAUhM,YAF3Fq2D,SAII,WACHvjE,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,wDALlC+jE,WAOM,WACL6B,YAAYzlC,aAAc,IAItC,QAAS0lC,0BAAyBC,sBAC9BtsE,OAAO6lC,YAAa,CAEpB,IAAItiC,cACAO,MAAO0C,QAAQ,eAAiByX,OAAOquD,qBAAqB99D,MAAM0P,OAAO,MACzEnL,iBAAkB,GAClBkoB,UAAWj7B,OAAOkgB,UAAU3b,GAC5ByO,WAAYs5D,qBAAqB5nE,GACjCiO,aAAcu5D,2BACdr5D,iBAAkBq5D,2BAClBh5D,kBAAmB6F,eAAeqG,qBAGlCP,cAAgBJ,OAAOK,MACvB7f,YAAa,oCACbC,WAAY,wBACZ6f,YAAa,aACb3f,SACImE,YAAa,WACT,MAAOA,gBAKnBsb,eAAc/B,OAAOrb,KAAK,WACtBzB,OAAO6lC,YAAa,IAI5B,QAAS0mC,UAEL1lE,+BAA+B0oB,oBAC/BvpB,cAAcG,SAAS1E,KAAK,WACxBsE,kBAAkBK,YAAaC,SAAU4b,UAAUtjB,gBAAgBR,UA/T3E6B,OAAOkgB,UAAYrZ,+BAA+BsZ,eAClDngB,OAAOmrE,uBAAwB,EAC/BnrE,OAAOkrE,uBAAwB,EAC/BlrE,OAAOwsE,gBAAiB,EACxBxsE,OAAOurE,yBAA0B,EACjCvrE,OAAOwqE,yBAA0B,EACjCxqE,OAAOyqE,mBAAoB,EAC3BzqE,OAAO2qE,sBAAuB,EAC9B3qE,OAAO6lC,YAAa,EACpB7lC,OAAO6D,OACH2K,KAAM,GACN8/C,iBAAkB,GAClBG,iCAAiC,EACjCC,oCAAoC,EACpCC,kBAAmB,GACnBC,2BACAC,8BAA8B,EAC9BL,eACIie,KAAM,GACNvd,SAAU,GACVwd,QAAS,GACTC,UAAW,GACXC,mBAAoB,GACpBC,eAAgB,IAEpBvB,kBACAG,oBACAqB,YAAa,GACbC,WAAY,IAuShB/sE,OAAO4rE,cAAgBA,cACvB5rE,OAAO6rE,WAAaA,WACpB7rE,OAAOgsE,cAAgBA,cACvBhsE,OAAO0rE,YAAcA,YACrB1rE,OAAOgvD,0BAA4BA,0BACnChvD,OAAO0vD,yBAA2BA,yBAClC1vD,OAAOqsE,yBAA2BA,yBAClCrsE,OAAOmsE,6BAA+BA,6BACtCnsE,OAAOusE,OAASA,OAChBzzC,cClVZ57B,QAAQC,OAAO,WAAW+B,WAAW,0BACpB,SAAU,SAAS,eAAgB,oBAAqB,iCAAkC,iBAAkB,UAAW,aAAc,oBAAqB,YACnK,SAAUc,OAAUC,OAASgR,aAAgBs5D,kBAAqB1jE,+BAAkConD,eAAkBjnD,QAAWR,QAAcT,kBAAqB0Y,QAEhK,YAiBA,SAASuuD,YAEL,MAAO/sE,QAAOK,QAAQd,sBAG1B,QAASs5B,YACLrlB,YAAc5M,+BAA+BsZ,eAAe5b,GAC5DymE,qBAGJ,QAASA,sBACLhrE,OAAOkrE,uBAAwB,EAC/BlrE,OAAOwT,iBACP,IAAI6kB,aACA61B,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAG9CgtB,gBACKG,kBAAkB/1B,YAClB52B,KAAK,SAAU4sD,mBACZruD,OAAOitE,QAAQ3e,iBAAmBD,kBAAkBC,iBAChDD,kBAAkBG,gBAClBxuD,OAAOitE,QAAQze,cAAgBH,kBAAkBG,cAC7C0e,WAAWltE,OAAOitE,QAAQze,cAAcqe,gBAAkBK,WAAWltE,OAAOitE,QAAQze,cAAcoe,oBAClG5sE,OAAOmtE,iBAAmBntE,OAAOitE,QAAQze,cAAcqe,eAEvD7sE,OAAOmtE,iBAAmBntE,OAAOitE,QAAQze,cAAcoe,mBAE3D5sE,OAAOitE,QAAQG,eAAgB,KAX3Cnf,SAcW,SAAUp6C,UACb7T,OAAO8T,aAAaD,YAf5Bo6C,WAiBa,WACLjuD,OAAOkrE,uBAAwB,IAI3C,QAAS1zC,UACL,IAAIx3B,OAAOqtE,uBAAuB3lE,SAAlC,CAIA1H,OAAO6lC,YAAa,CACpB,IAAIhnB,eAAgBJ,OAAOK,MACvB7f,YAAa,iDACbC,WAAY,0BACZE,SACIkuE,cAAe,WACX,MAAOttE,QAAOitE,QAAQze,eAE1B+e,aAAc,WACV,MAAOvtE,QAAOitE,QAAQO,gBAKlC3uD,eAAc/B,OAAOrb,KAAK,SAAUqb,QACjB,WAAXA,QACA2wD,iBAKZ,QAASA,eACLztE,OAAO0tE,sBAAuB,CAC9B,IAAIC,0BACAC,gBAAiB38D,aAAa48D,UAC9BC,cAAe9tE,OAAOitE,QAAQO,aAC9BO,6BAA8B,IAC9B7f,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAC1C+sC,gBAAiB/8D,aAAau+C,mBAGlC+a,mBAAkB0D,yBAAyBN,yBACtClsE,KAAK,SAAUC,MACZ1B,OAAOmvD,eAAiB6d,WACrBhtE,OAAOmvD,eACVppD,kBAAkBK,YAAYC,SAAU,+BAAgCse,MAAOgnD,KAAMjqE,KAAKwsE,QAGtFnoE,kBAAkBK,YAAYC,SAAU,iBAAkBse,MAAOgnD,KAAMjqE,KAAKwsE,UAPxF3D,SAUW,SAAU12D,UACb7M,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,mDACjCxG,OAAO8T,aAAaD,YAZ5B02D,WAca,WACLvqE,OAAO0tE,sBAAuB,IA3G1C,GAAIj6D,aAAc5M,+BAA+BsZ,eAAe5b,EAChEvE,QAAOmrE,uBAAwB,EAC/BnrE,OAAOkrE,uBAAwB,EAC/BlrE,OAAO0tE,sBAAuB,EAC9B1tE,OAAOmuE,2BACPnuE,OAAOouE,YAAc,sBACrBpuE,OAAOitE,SACHG,eAAe,EACfI,aAAc,GACdlf,iBAAkB,GAClBE,cAAe,MAGnBxuD,OAAOmvD,eAAiB6d,WAkGxBhtE,OAAOytE,YAAcA,YACrBztE,OAAOw3B,OAASA,OAChBsB,cCvHZ57B,QAAQC,OAAO,WAAW+B,WAAW,0BACpB,SAAS,SAAU,eAAgB,YAAa,oBAAqB,iCAAkC,iBAAkB,OAAQ,oBAAqB,UAAW,aAC1K,SAAUc,OAASC,OAAUgR,aAAgB3K,UAAaikE,kBAAqB1jE,+BAAkConD,eAAkB36C,KAAQvN,kBAAqBiB,QAAWR,SAEvK,YAuBA,SAASwmE,YAEL,MAAQ/sE,QAAOK,QAAQd,sBAE3B,QAASs5B,YACLrlB,YAAc5M,+BAA+BsZ,eAAe5b,GAC5DymE,qBAGJ,QAASA,sBACLhrE,OAAOkrE,uBAAwB,EAC/BlrE,OAAOwT,iBACP,IAAI6kB,aACA61B,mBAAoBz6C,YACpB06C,gBAAiB,GAGrBF,gBACKG,kBAAkB/1B,YAClB52B,KAAK,SAAU4sD,mBACRA,kBAAkBG,gBAClBxuD,OAAO6D,MAAM2qD,cAAgBH,kBAAkBG,cAC/CxuD,OAAO6D,MAAMupE,eAAgB,GAEjCiB,uBAPRpgB,SASW,SAAUp6C,UACb7T,OAAO8T,aAAaD,YAV5Bo6C,WAYa,WACLjuD,OAAOkrE,uBAAwB,IAI3C,QAASmD,sBACLruE,OAAOsyC,YAAa,CAEpB,IAAI7rB,SAAUngB,UAAUogB,SACpBC,QAAUrgB,UAAUsgB,OACpBC,WAAa,wBACbynD,aAAe7nD,QAAQ9O,MAAM,KAAK,GAClCmP,YAAcwnD,aAAa/9D,QAAQoW,QAASE,YAC5C0nD,0BACAC,OAAQxuE,OAAO6D,MAAMyqD,iBACrBmgB,YAAa3nD,YACbonC,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAC1CytC,oBAAqB1uE,OAAO6D,MAAM6qE,oBAClCnf,WAAYvvD,OAAO6D,MAAM0rD,WAG7Bgb,mBACKoE,qBAAqBJ,0BACrB9sE,KAAK,SAAUzC,KACRA,MACAgB,OAAO6D,MAAM+qE,kBAAoBt7D,KAAKsnB,mBAAmB57B,QAJrEurE,SAOW,SAAU12D,UACb7T,OAAO8T,aAAaD,YAR5B02D,WAUa,WACLvqE,OAAOsyC,YAAa,IAIhC,QAASu8B,qBAAoB7vE,KAEzB,GAAI8vE,yBACAC,sBAAuB/vE,IACvBkvD,mBAAoBz6C,YACpBs6D,6BAA8B,IAC9B5f,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAC1CytC,oBAAqB1uE,OAAO6D,MAAM6qE,oBAEtCnE,mBACKyE,iBAAiBF,wBACjBrtE,KAAK,SAAUC,MACZ1B,OAAOmvD,eAAiB6d,WACpBtrE,KAAKutE,YACLjoE,QAAQiC,IAAI,OAAQ,GAAIzC,QAAQ,+BAC7BxG,OAAOmvD,eAENppD,kBAAkBK,YAAYC,SAAU,0BAG5CN,kBAAkBK,YAAYC,SAAU,aAGrCrG,OAAOmvD,eACNppD,kBAAkBK,YAAYC,SAAU,+BAAgCse,MAAOgnD,KAAMjqE,KAAKwsE,QAG1FnoE,kBAAkBK,YAAYC,SAAU,iBAAkBse,MAAOgnD,KAAMjqE,KAAKwsE,UAlB5F3D,SAuBW,SAAU12D,UACb7M,QAAQiC,IAAI,QAAS,GAAIzC,QAAQ,mDACjCxG,OAAO8T,aAAaD,YAzHhC,GAAIJ,aAAc5M,+BAA+BsZ,eAAe5b,EAChEvE,QAAOkrE,uBAAwB,EAC/BlrE,OAAO6D,OACHupE,eAAe,EACf9e,iBAAkBr9C,aAAam+C,OAC/Bsf,oBAAqBz9D,aAAau+C,mBAClCD,WAAYt+C,aAAaq+C,WACzBsf,kBAAmB,GACnBH,YAAa,GACbjgB,eACIie,KAAM,GACNvd,SAAU,GACVwd,QAAS,GACTC,UAAW,GACXC,mBAAoB,GACpBC,eAAgB,KAIxB7sE,OAAOmvD,eAAiB6d,WA0GxBhtE,OAAO6uE,oBAAsBA,oBAC7B/1C,cCpIX57B,QAAQC,OAAO,WAAW+B,WAAW,sBACrB,SAAS,SAAU,eAAgB,iCAAkC,oBAAqB,iBAAkB,oBAAqB,aAC1I,SAAUc,OAASC,OAAUgR,aAAgBpK,+BAAkC0jE,kBAAqBtc,eAAkBloD,kBAAqBS,SAEvI,YAuBA,SAASwmE,YAEH,MAAO/sE,QAAOK,QAAQd,sBAI5B,QAASs5B,YACLrlB,YAAc5M,+BAA+BsZ,eAAe5b,GAC5DymE,qBACAC,qBAGJ,QAASA,sBACLjrE,OAAOmrE,uBAAwB,CAC/B,IAAI9yC,aACA61B,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAG9C,OAAOspC,mBACFa,kBAAkB/yC,YAClB52B,KAAK,SAAU4pE,qBACRA,sBACArrE,OAAO6D,MAAMynE,eAAiB9mE,EAAE6mE,oBAAoBjzC,SAAS3uB,IAAI,SAAU88B,OACvE,MAAO/hC,GAAEkiC,OAAOH,OAAQI,aAAc,MACvCnqB,WANR+tD,WASM,WACLvqE,OAAOmrE,uBAAwB,IAI3C,QAASH,sBACLhrE,OAAOkrE,uBAAwB,EAC/BlrE,OAAOwT,iBAEP,IAAI6kB,aACA61B,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAG9CgtB,gBACKG,kBAAkB/1B,YAClB52B,KAAK,SAAU4sD,mBACZruD,OAAO6D,MAAMyqD,iBAAmBr9C,aAAam+C,OACzCf,kBAAkBG,eAAiBH,kBAAkBG,cAAcU,WACnElvD,OAAO6D,MAAM2qD,cAAgBH,kBAAkBG,cAC/CxuD,OAAOkvE,oBAEClyC,KAAMh9B,OAAO6D,MAAM2qD,cAAcU,SAAW,IAAMlvD,OAAO6D,MAAM2qD,cAAcie,KAAO,IAAMzsE,OAAO6D,MAAM2qD,cAAcke,QACrHC,UAAW3sE,OAAO6D,MAAM2qD,cAAcme,YAGtC3vC,KAAMx2B,QAAQ,wBACdmmE,UAAW,MAGnB3sE,OAAO6D,MAAMsrE,oBAAsB,KACnCnvE,OAAO6D,MAAMupE,eAAgB,EAC7BptE,OAAO6D,MAAM2K,KAAO6/C,kBAAkB7/C,QAlBlDy/C,SAqBW,SAAUp6C,UACb7T,OAAO8T,aAAaD,YAtB5Bo6C,WAwBa,WACLjuD,OAAOkrE,uBAAwB,IAI3C,QAASkE,yBACLpvE,OAAOmvD,eAAiB6d,WAEpBhtE,OAAO6D,MAAMsrE,oBAAoBxC,WAA4D,MAA/C3sE,OAAO6D,MAAMsrE,oBAAoBxC,UAC5E3sE,OAAOmvD,eACNppD,kBAAkBK,YACdC,SAAU,mCACVse,MAAOyqC,OAAQpvD,OAAO6D,MAAMyqD,oBAIhCvoD,kBAAkBK,YAAYC,SAAU,uBAGvCrG,OAAO6D,MAAM2qD,gBACfxuD,OAAOmvD,eACNppD,kBAAkBK,YACdC,SAAU,mCACVse,MAAOkpD,UAAW7tE,OAAO6D,MAAM2qD,cAAcme,aAI7C5mE,kBAAkBK,YACdC,SAAU,qBACVse,MAAOkpD,UAAW7tE,OAAO6D,MAAM2qD,cAAcme,cApHjE,GAAIl5D,aAAc5M,+BAA+BsZ,eAAe5b,EAChEvE,QAAOkrE,uBAAwB,EAC/BlrE,OAAOqvE,oBAAsB,KAC7BrvE,OAAOwqE,yBAA0B,EACjCxqE,OAAO6D,OACH2K,KAAM,GACN4+D,eAAe,EACf+B,oBAAqB,GACrB7gB,iBAAkB,GAClBE,cAAe,KACf8c,mBAEJtrE,OAAOkvE,oBAEClyC,KAAMx2B,QAAQ,wBACdmmE,UAAW,MAGnB3sE,OAAO6D,MAAMsrE,oBAAsBnvE,OAAOkvE,kBAAkB,GAC5DlvE,OAAOmvD,eAAiB6d,WAuGxBhtE,OAAOovE,sBAAwBA,sBAC/BpvE,OAAOirE,mBAAqBA,mBAC5BnyC,cClIZ57B,QAAQC,OAAO,WAAW+B,WAAW,sBAChC,SAAS,SAAS,UAAW,eAAgB,OAAQ,oBAAqB,iCAAkC,iBACzG,SAAUc,OAAOC,OAAQ8M,QAASkE,aAAcqC,KAAMvN,kBAAmBc,+BAAgConD,gBACrG,YAWA,SAAS+e,YAEL,MAAO/sE,QAAOK,QAAQd,sBAG1B,QAAS8vE,qBACLtvE,OAAOwH,SAAU,EACjBxH,OAAOwT,kBAEPC,YAAc5M,+BAA+BsZ,eAAe5b,EAC5D,IAAIgrE,oBACArB,KAAMvC,KACN6D,kBAAmB,OACnBthB,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAG9CgtB,gBAAewhB,eAAeF,mBACzB9tE,KAAK,SAAUC,MACRA,KAAKorE,YACL9sE,OAAO6D,MAAMipE,YAAcx5D,KAAKwnB,YAAYp5B,KAAKorE,aAEjD9sE,OAAO8T,aAAa,sBALhCm6C,SAQW,SAAUp6C,UACb7T,OAAO8T,aAAaD,YAT5Bo6C,WAWa,WACLjuD,OAAOwH,SAAU,IAI7B,QAASkoE,QACF1vE,OAAOmvD,eAENppD,kBAAkBK,YAAYC,SAAU,0BAGxCN,kBAAkBK,YAAYC,SAAU,YAIhD,QAASyvC,SACL/oC,QAAQ+oC,QArDZ,GAAI61B,MAAO16D,aAAa06D,KACpBl4D,YAAc5M,+BAA+BsZ,eAAe5b,EAChEvE,QAAOwH,SAAU,EACjBxH,OAAO6D,OACHipE,YAAa,IAGjB9sE,OAAOmvD,eAAiB6d,WAiDxBhtE,OAAO0vE,KAAOA,KACd1vE,OAAO81C,MAAQA,MACfw5B,uBC/DZpyE,QAAQC,OAAO,WAAW+B,WAAW,2BAChC,UACG,SAAU6N,SACN,YAGAA,SAAQ4iE,OAAOC,aACXC,UAAW,iBACXnuE,KAAMqL,QAAQlM,SAAS8P,MACxB5D,QAAQlM,SAASivE,WCThC5yE,QAAQC,OAAO,WAAW+B,WAAW,2BAChC,SAAU,oBAAqB,gBAAiB,eAC7C,SAAUc,OAAQsD,eAAgBgqE,cAAeC,cAC7C,YAIA,SAASpO,UACL77D,eAAeG,MAAM,UAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAP3B3D,OAAOstE,cAAgBA,cACvBttE,OAAOutE,aAAeA,aAStBvtE,OAAOm/D,OAASA,OAChBn/D,OAAO0D,OAASA,UChB5BxG,QAAQC,OAAO,WAAW+B,WAAW,mBAChC,SAAU,oBAAqB,OAAQ,UAAW,oBAAqB,YACpE,SAAUc,OAAQsD,eAAgBgQ,KAAMvG,QAASw9D,kBAAmBrqD,WAChE,YAUA,SAAS6vD,cACLxF,kBAAkBwB,aAAa7rD,UAAU3b,IACpC9C,KAAK,SAAUC,MACZ,GAAIA,KAAM,CACN,GAAIsuE,WAAY,QAAUtuE,KAAKm1C,YAAc,WAAan1C,KAAKo1C,SAC/D92C,QAAO6D,MAAMosE,WAAa38D,KAAKsnB,mBAAmBo1C,WAClDhwE,OAAO6D,MAAMizC,UAAYp1C,KAAKo1C,UAC9B92C,OAAO6D,MAAMgzC,YAAcn1C,KAAKm1C,eAN5C0zB,WASa,WACLvqE,OAAOkwE,eAAgB,IAInC,QAAS1sE,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAG3B,QAASmyC,SACL/oC,QAAQ+oC,QAhCZ91C,OAAOkwE,eAAgB,EACvBlwE,OAAO6D,OACHosE,WAAY,GACZj5B,YAAa92B,UAAUhM,SAAW,cAClCi8D,OAAQ,GACRt5B,YAAa,IA8BjB72C,OAAO81C,MAAQA,MACf91C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAEhBqsE,gBC5CZ7yE,QAAQC,OAAO,WAAW+B,WAAW,oBAChC,SAAU,oBAAqB,UAAW,iBAAkB,OAAQ,cAAe,OAChF,SAAUc,OAAQsD,eAAgByJ,QAASkhD,eAAgB36C,KAAMG,YAAak4D,MAC1E,YAOA,SAASyE,eACL,GAAIb,oBACArB,KAAMvC,KACN6D,kBAAmB,OACnBthB,mBAAoBz6C,YACpB06C,gBAAiB16C,aAAc,GAAIjF,OAAOyyB,qBAG9CgtB,gBAAewhB,eAAeF,mBACzB9tE,KAAK,SAAUC,MACRA,OACA1B,OAAO6D,MAAMipE,YAAcx5D,KAAKwnB,YAAYp5B,KAAKorE,gBAH7D7e,WAMa,WACLjuD,OAAOwsE,gBAAiB,IAIpC,QAAShpE,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UAG3B,QAASmyC,SACL/oC,QAAQ+oC,QAjCZ91C,OAAOwsE,gBAAiB,EACxBxsE,OAAO6D,OACHipE,YAAa,IAkCjB9sE,OAAO81C,MAAQA,MACf91C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAEhB0sE,iBC7CZlzE,QAAQC,OAAO,WAAW+B,WAAW,sBAChC,SAAU,oBAAqB,OAAQ,UAAW,oBAAqB,YACpE,SAAUc,OAAQsD,eAAgBgQ,KAAMvG,QAASw9D,kBAAmBrqD,WAChE,YAUA,SAASmwD,iBACL9F,kBAAkB+F,gBAAgBpwD,UAAU3b,IACvC9C,KAAK,SAAUC,MACZ,GAAIA,KAAM,CACN,GAAI6uE,cAAe,QAAU7uE,KAAKm1C,YAAc,WAAan1C,KAAKo1C,SAClE92C,QAAO6D,MAAM2sE,cAAgBl9D,KAAKsnB,mBAAmB21C,cACrDvwE,OAAO6D,MAAMizC,UAAYp1C,KAAKo1C,UAC9B92C,OAAO6D,MAAMgzC,YAAcn1C,KAAKm1C,eAN5C0zB,WASa,WACLvqE,OAAOywE,kBAAmB,IAItC,QAASjtE,MACLF,eAAeG,MAAM,MAGzB,QAASC,UACLJ,eAAeK,QAAQ,UA5B3B3D,OAAOywE,kBAAmB,EAC1BzwE,OAAO6D,OACH2sE,cAAe,GACfx5B,YAAa92B,UAAUhM,SAAW,iBAClCi8D,OAAQ,GACRt5B,YAAa,IA0BjB72C,OAAOwD,GAAKA,GACZxD,OAAO0D,OAASA,OAEhB2sE,mBCvCZnzE,QAAQC,OAAO,WAAWogB,QAAQ,qBAC7B,oBAAqB,SAAUC,mBAC5B,YAEA,SAAS4wC,mBAAkBsiB,mBACvB,GAAI/yD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAa6yD,kBAAkBxiB,mBAAqB,YAAYtwC,IAAI8yD,mBAG/F,QAAS/B,sBAAqBgC,6BAC1B,GAAIhzD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,gCAAgCD,IAAI+yD,6BAG/D,QAASvF,mBAAkBsF,mBACvB,GAAI/yD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAa6yD,kBAAkBxiB,mBAAqB,oBAAoBtwC,IAAI8yD,mBAGvG,QAASE,YAAWrB,mBAChB,GAAI5xD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAa0xD,kBAAkBrhB,mBAAqB,YAAYtwC,IAAI2xD,mBAG/F,QAAStB,0BAAyB4C,gCAC9B,GAAIlzD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAagzD,+BAA+B3iB,mBAAqB,4BAA4B9iC,WAAWylD,gCAGnI,QAAS7B,kBAAiBF,wBACtB,GAAInxD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAaixD,uBAAuB5gB,mBAAqB,0BAA0B9iC,WAAW0jD,wBAGzH,QAASwB,iBAAgBtoE,QACrB,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAa7V,OAAS,cAAc4V,MAU/D,QAASmuD,cAAa/jE,QAClB,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAa7V,OAAS,WAAW4V,MAU5D,QAASkzD,mBAAkB9oE,QACvB,GAAI2V,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAa7V,OAAS,YAAY4V,MAG7D,QAAS4tD,qBAAoB/3D,aACzB,GAAIkK,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAapK,YAAc,sBAAsBmK,MA1B5E,GAAImzD,mBAAoB,SAAUt9D,YAAahB,iBAC3C,GAAIkL,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,SAAWjpC,gBAAgBkpC,KAAO,WAAalpC,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,KAEtH,OAAOK,aAAYE,IAAI,WAAapK,YAAc,aAAeioC,aAAa99B,OAQ9EozD,eAAiB,SAAUv9D,YAAahB,iBACxC,GAAIkL,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,SAAWjpC,gBAAgBkpC,KAAO,WAAalpC,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,KAEtH,OAAOK,aAAYE,IAAI,WAAapK,YAAc,UAAYioC,aAAa99B,OAa3EqzD,6BAA+B,SAAUx9D,YAAay9D,wBAAyBz+D,iBAC/E,GAAIkL,aAAcH,kBAAkBI,IAAI,WACpC89B,YAAc,SAAWjpC,gBAAgBkpC,KAAO,WAAalpC,gBAAgB4K,OAAS,UAAY5K,gBAAgB6K,KAEtH,OAAOK,aAAYE,IAAI,WAAapK,YAAc,sBAAwBy9D,wBAA0B,IAAMx1B,aAAa99B,OAGvHsuD,2BAA6B,SAAUz4D,YAAay9D,yBACpD,GAAIvzD,aAAcH,kBAAkBI,IAAI,UACxC,OAAOD,aAAYE,IAAI,WAAapK,YAAc,sBAAwBy9D,yBAAyBtzD,MAGvG,QACIwwC,kBAAmBA,kBACnBgd,kBAAmBA,kBACnBwF,WAAYA,WACZ3C,yBAA0BA,yBAC1Be,iBAAkBA,iBAClBL,qBAAsBA,qBACtB2B,gBAAiBA,gBACjBS,kBAAmBA,kBACnBhF,aAAcA,aACdiF,eAAgBA,eAChBF,kBAAmBA,kBACnBtF,oBAAqBA,oBACrByF,6BAA8BA,6BAC9B/E,2BAA4BA,+BC9FxChvE,QAAQC,OAAO,WAAWogB,QAAQ,kBAC7B,aAAc,oBAAqB,KAAM,yBACtC,SAAUxd,WAAYwqE,kBAAmBhlD,GAAIrU,wBACzC,YAmBA,SAAS69C,kCACL,MAAOyb,yBAGX,QAASE,4BACL,MAAOD,mBAGX,QAASG,+BACL,MAAOD,sBAGX,QAASmG,mBAAkB9oE,QAOvB,MALIA,UAAWmpE,uBACXC,sBACA52B,wBAAwBxyC,SAGvBqpE,eAOM9rD,GAAGW,KAAKmrD,gBANR9G,kBAAkBuG,kBAAkB9oE,QACtCvG,KAAK,SAAUC,MAEZ,MADA2vE,gBAAiB3vE,OAQjC,QAAS0sD,mBAAkB/1B,YAMvB,MALIA,YAAW61B,qBAAuBijB,uBAClCC,sBACA52B,wBAAwBniB,WAAW61B,qBAGlCojB,eAOM/rD,GAAGW,KAAKorD,gBANR/G,kBAAkBnc,kBAAkB/1B,YACtC52B,KAAK,SAAUC,MAEZ,MADA4vE,gBAAiB5vE,OAQjC,QAAS8pE,qBAAoB/3D,aAMzB,MALIA,eAAgB09D,uBAChBC,sBACA52B,wBAAwB/mC,cAGvB89D,iBAOMhsD,GAAGW,KAAKqrD,kBANRhH,kBAAkBiB,oBAAoB/3D,aACxChS,KAAK,SAAUC,MAEZ,MADA6vE,kBAAmB7vE,OAQnC,QAAS84C,yBAAwBp9B,WAC7B+zD,qBAAuB/zD,UAG3B,QAASg0D,uBACLD,qBAAuB,KACvBG,eAAiB,KACjBD,eAAiB,KACjBE,iBAAmB,KAGvB,QAAS9B,gBAAeF,mBACpB,MAAKiC,cAAejC,kBAAkBrB,OAASsD,YAAYtD,KAQhD3oD,GAAGW,KAAKsrD,YAAY35C,QAPpB0yC,kBAAkBqG,WAAWrB,mBAC/B9tE,KAAK,SAAUC,MAGZ,MAFA8vE,aAAYtD,KAAOqB,kBAAkBrB,KACrCsD,YAAY35C,OAASn2B,KACd8vE,YAAY35C,SAlGnC,GAAIs5C,sBACAE,eACAC,eACAC,iBACA/G,wBACAC,kBACAE,qBACA6G,aACItD,KAAM,GACNr2C,OAAQ,IAGZ7f,YAAc9G,uBAAuBQ,oBA6FzC,OA5FA84D,yBAA0BxyD,YAAYqL,aAAaX,SACnD+nD,kBAAoBzyD,YAAYoL,kBAAkBV,SAClDioD,qBAAuB3yD,YAAYmL,qBAAqBT,UA2FpDouD,kBAAmBA,kBACnB1iB,kBAAmBA,kBACnBod,oBAAqBA,oBACrBiE,eAAgBA,eAChB1gB,+BAAgCA,+BAChC2b,yBAA0BA,yBAC1BE,4BAA6BA,gCCrH7C1tE,QAAQC,OAAO,OAAQ,kBAAmB,uBAAwB,MAAO,YAAa,UAAW,aAAc,sBAAuB,iBAAkB,qBAAsB,eAAgB,iBAAkB,YAAa,QAAS,UAAW,YAEjPD,QAAQC,OAAO,OAAOsC,KAAM,yBAA0B,SAASS,wBAC3D,YACAA,wBAAuB8nD,KACrB,aAAc,YAAa,IAAK,gBAAiB,oBAAqB,OAAQ,iBAAkB,OAAO,SAAU,eACnH,SAAUjoD,WAAYkiB,UAAWzd,EAAGwB,cAAeD,kBAAmB0rE,KAAMC,YAAanrE,KAAMtG,OAAQ+hB,cAiDnG,QAAS2vD,mBAELD,YAAYE,aAGZ10E,QAAQ2a,QAAQ,4BAA4Bg6D,YAAY,QAAQC,MAAM,QApD1E/xE,WAAWzB,aAAc,EAEzB0jB,aAAa+vD,WAAY,SAA2B3rE,YAChD,GAAI2d,SAAU3d,WAAW4d,kBACrBC,YAAcF,SAAWA,QAAQxjB,QAAU,GAC3C8F,SAAW4b,UAAUiC,gBAAgBD,YACzClkB,YAAWzB,eAAiB+H,UAAYA,SAAShI,gBAAkBgI,SAAShI,eAAeC,aAC3FyB,WAAWkB,cAAgBoF,UAAYA,SAAShI,gBAAkBgI,SAAShI,eAAe4C,YAC1FlB,WAAWK,aAAeiG,WAAYA,SAASlI,OAA6B,UAAnBkI,SAASlI,OAAwC,oBAAnBkI,SAASlI,OAC3F4B,WAAWK,WACZL,WAAWkI,WAAW,oBAI9B+Z,aAAa8B,aAAc,SAAqB1d,YAC5C,GAAIuC,OAAQvC,WAAW4rE,WAAWp0D,IAAI,WAAa,gBACnD5D,UAASrR,MAAQA,QAOrB5I,WAAW2W,IAAI,cAAe,WAC1BnQ,KAAK8C,KAAK,mFAAqF4U,SAASC,OAAO,QAG3GuzD,KAAKQ,WACLR,KAAKS,UAGTP,kBAEG1xE,OAAOK,QAAQd,sBAEdwG,cAAcG,SAAS1E,KAAK,WACxBsE,kBAAkBK,YAAYC,SAAU4b,UAAUtjB,gBAAgBR,UAKtE6H,cAAcG,SAAS1E,KAAK,WACxBsE,kBAAkBK,YAAYC,SAAU,gBAcpDtG,WAAW2W,IAAI,iBAAkB,WAC7B+6D,KAAKU,gBCjEjBj1E,QAAQC,OAAO,OAAOK,QAAQ,qBAAsB,sBAAuB,oBACvE,SAAU40E,mBAAoBC,oBAAqBt0E,mBAE/C,YAEA,IAAIE,WAAYF,kBAAkBu0E,cAElCF,oBACKlsD,KAAK,GAAIjoB,UAAUC,MAAME,OACzB8nB,KAAK,IAAKjoB,UAAUC,MAAME,OAE/Bi0E,oBAAoBE","sourcesContent":["angular.module('app', [\r\n\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n 'ui.router.upgrade',\r\n 'ngIdle',\r\n\r\n //aprima\r\n 'account',\r\n 'apEasyScroller',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api'\r\n]).constant('AppId', {\r\n MessageSubHeader: 'B348F800-1FCB-4397-9E1A-2226AFD836E4',\r\n PracticeName: '2AD081A3-A195-4093-9C7F-1563BD3179A3',\r\n PracticeTagline: '72AF95CE-12F5-450A-8C0A-3941A3256AC7',\r\n}).config(['IdleProvider', function(IdleProvider) {\r\n 'use strict';\r\n\r\n\r\n // Application timeout logic is in the following locations :\r\n // =======================================================\r\n // 1 - modules\\app\\app.js\r\n // ng-idle configuration and links to documentation are located here.\r\n //\r\n // 2 - modules\\app\\controllers\\LoginCtrl.js\r\n // After user logs in, IdleStartWatch is broadcast to start application timeout.\r\n // Listener is located in modules\\common\\init.js\r\n //\r\n // 3 - modules\\common\\init.js\r\n // IdleStartWatch listener. Event is broadcast from LoginCtrl.js once user is logged in. Idle.watch() is called here.\r\n // IdleTimeout listener. fires when IdleProvider.idle() + IdleProvider.timeout() expire. Log out logic is located here.\r\n //\r\n // 4 - ng-idle documentation can be found at the following locations\r\n // http://hackedbychinese.github.io/ng-idle/\r\n // https://github.com/HackedByChinese/ng-idle/wiki/Idle-and-Idleprovider\r\n // https://github.com/HackedByChinese/ng-idle/wiki\r\n\r\n\r\n // List of DOM events the Idle service will watch to reset the idle timeout\r\n // IdleProvider.interrupt('mousemove keydown DOMMouseScroll mousewheel mousedown')\r\n IdleProvider.interrupt('keydown mousedown mousewheel'); // Exclude mousemove DOM event. ng-idle has bug with mousemove.\r\n\r\n IdleProvider.autoResume(true); // FALSE - you will need to manually call watch() to start watching for idleness\r\n IdleProvider.keepalive(false); // FALSE - turn off keepalive\r\n\r\n // The idle timeout duration in seconds. After this amount of time passes without the user\r\n // performing an action that triggers one of the watched DOM events, the user is considered\r\n // idle. Default is 20 minutes.\r\n IdleProvider.idle(600); // Set timeout to 10 minutes (60*10)\r\n\r\n // The amount of time the user has to respond (in seconds) before they have been considered timed out.\r\n // Set to 0 or false to disable this feature. Default is 30 seconds.\r\n IdleProvider.timeout(1);\r\n}]);\r\n","angular.module('app').config(['AppRoutesProvider', '$stateProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var appRoutes = {\r\n 'login': {\r\n state: 'login',\r\n route: '/login',\r\n portalSettings: {\r\n hideToolbar: true,\r\n toolbarItem: 'login'\r\n }\r\n },\r\n 'signout': {\r\n state: 'signout',\r\n route: '/signout',\r\n portalSettings: {\r\n hideToolbar: true,\r\n toolbarItem: 'signout'\r\n }\r\n },\r\n 'tokenLogin': {\r\n state: 'tokenLogin',\r\n route: '/login/:token',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true\r\n }\r\n },\r\n 'statementslogin': {\r\n state: 'statementslogin',\r\n route: '/statementslogin',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'landing': {\r\n state: 'landing',\r\n route: '/landing',\r\n portalSettings: { toolbarItem: 'landing' }\r\n },\r\n 'loginsettings': {\r\n state: 'loginsettings',\r\n route: '/loginsettings',\r\n portalSettings: {\r\n hideToolbar: true,\r\n toolbarItem: 'settings'\r\n }\r\n },\r\n 'navigationDoctors': {\r\n state: 'navigationDoctors',\r\n route: '/navigationDoctors',\r\n portalSettings: { toolbarItem: 'doctors' }\r\n },\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.login.state, {\r\n url: appRoutes.login.route,\r\n templateUrl: '/app/views/mfa-login.html',\r\n controller: 'MfaLoginCtrl',\r\n description: '/Login',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Login'); }\r\n }\r\n })\r\n .state(appRoutes.signout.state, {\r\n url: appRoutes.signout.route,\r\n templateUrl: '/app/views/mfa-login.html',\r\n controller: 'MfaLoginCtrl',\r\n description: '/Login',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Login'); }\r\n }\r\n })\r\n .state(appRoutes.tokenLogin.state, {\r\n url: appRoutes.tokenLogin.route,\r\n controller: 'TokenLoginCtrl',\r\n description: 'Login with a auth-token',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('TokenLogin'); }\r\n }\r\n })\r\n .state(appRoutes.loginsettings.state, {\r\n url: appRoutes.loginsettings.route,\r\n templateUrl: '/app/views/loginsettings.html',\r\n controller: 'LoginSettingsCtrl',\r\n description: '/LoginSettings',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Settings'); }\r\n }\r\n })\r\n .state(appRoutes.statementslogin.state, {\r\n url: appRoutes.statementslogin.route,\r\n templateUrl: '/app/views/statementslogin.html',\r\n controller: 'StatementsLoginCtrl',\r\n description: '/StatementsLogin',\r\n alternativeLoginRoute : appRoutes.statementslogin.route,\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Login'); }\r\n }\r\n })\r\n .state(appRoutes.landing.state, {\r\n url: appRoutes.landing.route,\r\n templateUrl: '/app/views/landing.html',\r\n controller: 'LandingCtrl',\r\n description: '/Landing'\r\n })\r\n .state(appRoutes.navigationDoctors.state, {\r\n url: appRoutes.navigationDoctors.route,\r\n templateUrl: '/app/views/navigation/navigationDoctors.html',\r\n controller: 'NavigationDoctorsCtrl',\r\n description: '/Doctors'\r\n });\r\n }]);\r\n","angular.module('app').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/app/views/aboutsettings.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" About Aprima NOW\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'Client ID' | translate }}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::clientID}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'Version' | translate }}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::versionNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'Version Code' | translate}}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::gitCommitHashShort}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'Device Id' | translate}}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::deviceId}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'Server Version' | translate}}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::serverVersion}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'PRM Server Version' | translate}}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::prmVersion}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'PRM Database Version' | translate}}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::databaseVersion}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::'PRM Database Build' | translate}}:
    \\r\" +\r\n \"\\n\" +\r\n \" {{::databaseBuild}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/appointmentlistsettings.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" Schedule Settings\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/components/apPatientPortal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/components/apPrintablePracticeInfo.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::vm.practiceName}}\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/directives/apDynamicFrame.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/directives/apFormAttachment.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
0\\\">\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ selectDocumentModel.validationMessage }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/directives/apMessageAttachment.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"attachment\\\"\\r\" +\r\n \"\\n\" +\r\n \"
{{ attachment.FileName | limitTo: 15 }} 15\\\">...
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
0\\\">\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ selectDocumentModel.validationMessage }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/directives/apSelectFile.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/directives/apSelectImage.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" 0\\\">\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
0\\\">\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ selectImageModel.validationMessage }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/landing.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/login.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
 
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"login-image\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.practiceName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.practiceTagline}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Enter your password' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Login could not be completed.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{errorMessage | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Trouble logging in?' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{::'Please contact our office if you need assistance.' | translate }}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

{{::loginAssistanceInfo.PracticeName}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.Address1}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.Address2}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.City}}, {{::loginAssistanceInfo.State}} {{::loginAssistanceInfo.Zip}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.PhoneNumber}}
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

{{::loginAssistanceInfo.CustomPortalFooter}}
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/loginsettings.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{'Settings' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Timeout must be a number between 0 and 99.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" Client ID Successfully Reset.\\r\" +\r\n \"\\n\" +\r\n \" Failed, please try again.\\r\" +\r\n \"\\n\" +\r\n \" Language Set to English.\\r\" +\r\n \"\\n\" +\r\n \" Language Set to Spanish.\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/mfa-login.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
 
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"login-image\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{practiceModel.practiceName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{practiceModel.practiceTagline}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{errorMessage | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"

{{registrationIssue | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"

{{mfaNextSteps | translate}} Use this to continue your multi-factor credential setup. After you finish the registration steps, you may continue to login here.

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

For your account’s continued security, CGM Aprima Patient Portal now requires multi-factor authentication for account access.

\\r\" +\r\n \"\\n\" +\r\n \"

To access your account, you must first complete the CGM Identity account registration and then setup and enable two-factor authentication with an Authenticator app on your smartphone.

\\r\" +\r\n \"\\n\" +\r\n \"

After entering your username, and then your passcode, we will walk you through the steps for setup. Once you have completed these steps, you will be redirected to a different login page, after you enter your username, using the new, more secure process.

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Enter your password' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Enter your password' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

Our security policies require both an email address, and a date of birth, on record for you to register a multi-factor account.

\\r\" +\r\n \"\\n\" +\r\n \"

Please verify that this data is correct, or enter. Note: Your email address will be your new username.

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

{{::'Please contact our office if you need assistance.' | translate }}

\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.PracticeName}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.Address1}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.Address2}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.City}}, {{::loginAssistanceInfo.State}} {{::loginAssistanceInfo.Zip}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::loginAssistanceInfo.PhoneNumber}}
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/modals/apidocumentationgatekeepermodal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{'API Documentation Disclaimer' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

As a patient, you have the right to access information in your health record via an app of your choice, \\r\" +\r\n \"\\n\" +\r\n \" provided it meets the technical specifications required by law.\\r\" +\r\n \"\\n\" +\r\n \" Examples of apps you may use include Health (Apple), CommonHealth (Android), or iBlueButton (Medicare and Veterans). \\r\" +\r\n \"\\n\" +\r\n \" While not required, you may want to check the security and privacy standards of your app to ensure that your health \\r\" +\r\n \"\\n\" +\r\n \" information will be protected and secure. A connection can be made from your provider’s database to the app of your \\r\" +\r\n \"\\n\" +\r\n \" choice using the information provided here. Please contact the office for further details.

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Error loading privacy policy.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Error loading privacy policy.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/modals/practicetermsmodal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{'Patient Portal Practice Terms' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{'You must login to view terms' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Error loading practice terms.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Error loading practice terms.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/modals/privacypolicymodal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{'Patient Portal Privacy Policy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'You must login to view policy.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Error loading privacy policy.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Error loading privacy policy.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/navigation/navigationDoctors.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/settings-phone.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Schedule Settings' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Messages Settings' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'User Settings' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'About' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Log off' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/settings-tablet.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"Schedule Settings\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"Messages Settings\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"User Settings\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"About\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"Log off\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/statementslogin.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
 
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"login-image\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.practiceName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.practiceTagline}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

View And Pay Statements

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid format.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::'12345' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid format.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::'12345' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Provide one of the following:' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid format.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::'yyyy-mm-dd' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid format.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::'(XXX)XXX-XXXX' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{errorMessage | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/templates/settings-group-template.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{heading | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/usersettings.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'User Settings' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::usersettings.username}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::usersettings.clientId}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/viewApiDocumentModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{model.Title}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

Client ID: {{:: model.ClientID }}
\\r\" +\r\n \"\\n\" +\r\n \" Base URL: {{:: model.ClientURL }}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/views/viewDocumentModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{model.Title}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/partials/desktopRuler/views/apDesktopRuler.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
P-L
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
01
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
02
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
03
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
04
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
05
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
06
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
07
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
08
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
09
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
10
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
11
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
12
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
13
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
14
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
15
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
16
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
P-R
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/partials/footer/views/apFooter.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/partials/header/views/apHeader.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"header-logo\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{apHeader.practiceName}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/partials/mobileNav/views/apMobileNav.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Welcome' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Chart' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Chart.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Messages' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Messages.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Prescriptions.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Forms' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Forms.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Appointments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Appointments.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Billing' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Billing.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Welcome' | translate}}, {{ ::headerData.loginUserFullName }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Switch to' | translate }} {{ ::party.FirstName }} {{ ::party.LastName }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Sign out' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/app/partials/toolbar/views/apToolbar.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"  {{:: 'Back to Home' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"home-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"home\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Welcome' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"chart-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"chart\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Chart' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Chart.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"messages-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"messages\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Messages' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Messages.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"forms-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"forms\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Forms' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Forms.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"prescriptions-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"prescriptions\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Prescriptions' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Prescriptions.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"appointments-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"appointments\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Appointments' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Appointments.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"billing-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"billing\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Billing' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Billing.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\\"doctors-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"doctors\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Doctors' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" 0\\\">{{notifications.Doctors.BadgeCount}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\n}]);\n","(function(angular){\r\n 'use strict';\r\n\r\n angular.module('app').directive('apPatientPortal', ApPatientPortalDirective);\r\n\r\n function ApPatientPortalDirective() {\r\n return {\r\n restrict: 'E',\r\n controller: [\r\n '$rootScope',\r\n '$scope',\r\n '$state',\r\n 'CustomModuleRunService',\r\n ApPatientPortalCtrl,\r\n ],\r\n templateUrl: '/app/views/components/apPatientPortal.html',\r\n };\r\n }\r\n\r\n function ApPatientPortalCtrl(\r\n $rootScope,\r\n $scope,\r\n $state,\r\n CustomModuleRunService\r\n ) {\r\n var vm = {\r\n loadedAngular: false,\r\n \r\n isLoginView: isLoginView,\r\n onAngularInitialized: onAngularInitialized,\r\n shouldHideFooter: shouldHideFooter,\r\n shouldHideToolbar: shouldHideToolbar,\r\n };\r\n\r\n $scope.vm = vm;\r\n\r\n function isLoginView() {\r\n return $rootScope.loginView;\r\n }\r\n\r\n function onAngularInitialized() {\r\n CustomModuleRunService.run();\r\n\r\n if ($state.current && $state.current.name) {\r\n // Reload the state since none of the listeners were setup before the initial state change.\r\n // For instance, listeners like onStart, or onSuccess in source/web/www/modules/common/init.js.\r\n // This call essentially does the same thing as $state.reload(),\r\n // except it also uses location:false to not update the url.\r\n // This would have an effect when you have an initial url that corresponds to a route\r\n // that doesn't completely match the query string.\r\n //\r\n // Example to show the difference:\r\n // initial url: http://localhost:4200/#/transactionComplete?m=55&i=55\r\n // (Option 1)\r\n // $state.reload() would transition to transactionComplete state, and then change the url\r\n // to http://localhost:4200/#/transactionComplete,\r\n // because there are currently no query parameters defined in the route for the state,\r\n // so the ones from the initial url are not kept\r\n // (Option 2)\r\n // This call below with location:false would transition to transactionComplete state, and then NOT change the url\r\n // According to the docs: If false, it will not update the url in the location bar.\r\n $state.transitionTo($state.current, $state.params, {\r\n reload: true,\r\n inherit: false,\r\n notify: false,\r\n location: false,\r\n });\r\n }\r\n\r\n vm.loadedAngular = true;\r\n }\r\n\r\n function shouldHideFooter() {\r\n return $rootScope.hideFooter;\r\n }\r\n\r\n function shouldHideToolbar() {\r\n return $rootScope.hideToolbar;\r\n }\r\n }\r\n})(window.angular);\r\n","(function(angular){\r\n 'use strict';\r\n\r\n angular.module('app').component('apPrintablePracticeInfo', {\r\n templateUrl: '/app/views/components/apPrintablePracticeInfo.html',\r\n controllerAs: 'vm',\r\n controller: [\r\n 'ContentAttributeService',\r\n ApPrintablePracticeInfo,\r\n ],\r\n });\r\n\r\n function ApPrintablePracticeInfo(\r\n ContentAttributeService\r\n ) {\r\n var vm = this;\r\n\r\n\r\n activate();\r\n\r\n function activate() {\r\n ContentAttributeService\r\n .getPracticeName(false)\r\n .then(function(data) {\r\n vm.practiceName = data;\r\n });\r\n }\r\n }\r\n\r\n})(window.angular);","angular.module('app').controller('AboutSettingsCtrl',\r\n ['$scope', 'configuration', 'LocalStorageRepository', 'AprimaAnalytics', 'ServerInfoRepository',\r\n function ($scope, configuration, LocalStorageRepository, AprimaAnalytics, ServerInfoRepository) {\r\n 'use strict';\r\n\r\n AprimaAnalytics.sendPageView('/Settings/About');\r\n\r\n $scope.clientID = LocalStorageRepository.getClientID();\r\n $scope.versionNumber = configuration.CLIENT_VERSION;\r\n $scope.gitCommitHash = configuration.GIT_COMMIT_HASH;\r\n $scope.gitCommitHashShort = configuration.GIT_COMMIT_HASH.substring(0,7);\r\n $scope.deviceId = LocalStorageRepository.getDeviceId();\r\n $scope.serverVersion = ServerInfoRepository.getMobileAssemblyVersion();\r\n $scope.prmVersion = ServerInfoRepository.getPrmAssemblyVersion();\r\n $scope.databaseVersion = ServerInfoRepository.getPrmDatabaseVersion();\r\n $scope.databaseBuild = ServerInfoRepository.getPrmDatabaseBuild();\r\n }]);\r\n","angular.module('app').controller('ApiDocumentationGatekeeperModalCtrl',\r\n ['$scope', '$uibModalInstance', 'modalConfig',\r\n function ($scope, $modalInstance, modalConfig) {\r\n 'use strict';\r\n\r\n $scope.downloadingDocument = false;\r\n $scope.model = {\r\n Title: modalConfig.Title,\r\n };\r\n \r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n }]);\r\n","angular.module('app').controller('AppointmentListSettingsCtrl',\r\n ['$scope', 'SettingService', 'ListService', 'AprimaAnalytics',\r\n function ($scope, SettingService, ListService, AprimaAnalytics) {\r\n 'use strict';\r\n\r\n AprimaAnalytics.sendPageView('/Settings/Schedule');\r\n\r\n var loadingOption = {\r\n Description: 'Loading...'\r\n },\r\n appointmentDashboardSettings = SettingService.getAppointmentsListSettings();\r\n\r\n var findById = function (list, id) {\r\n return !id || _.find(list, {'Id': id});\r\n };\r\n\r\n var loadSettings = function () {\r\n $scope.apptOptions = {\r\n calendars: [loadingOption]\r\n };\r\n\r\n $scope.settings = {\r\n };\r\n\r\n ListService.getList('calendar').then(function (list) {\r\n var currentCalendarId = appointmentDashboardSettings && appointmentDashboardSettings.calendarId;\r\n $scope.apptOptions.calendars = list;\r\n $scope.settings.appointmentsCalendar = findById($scope.apptOptions.calendars, currentCalendarId);\r\n });\r\n\r\n $scope.settings.displayEndTime = appointmentDashboardSettings && appointmentDashboardSettings.displayEndTime;\r\n\r\n var badgeSettings = SettingService.getAppointmentsBadgeSettings();\r\n $scope.settings.hideDischarged = badgeSettings && badgeSettings.hideDischarged;\r\n };\r\n\r\n $scope.mode = 'unlocked';\r\n\r\n $scope.saveAppointmentsTileSettings = function () {\r\n SettingService.setAppointmentsListSettings({\r\n calendarId: $scope && $scope.settings && $scope.settings.appointmentsCalendar && $scope.settings.appointmentsCalendar.Id,\r\n displayEndTime : $scope && $scope.settings && $scope.settings.displayEndTime\r\n });\r\n\r\n SettingService.updateNativeSettings();\r\n };\r\n\r\n $scope.saveHideDischargedOption = function () {\r\n AprimaAnalytics.sendEvent('user', 'click', 'hide discharge');\r\n SettingService.setAppointmentsBadgeSettings({\r\n hideDischarged: $scope && $scope.settings && $scope.settings.hideDischarged\r\n });\r\n\r\n SettingService.updateNativeSettings();\r\n };\r\n\r\n loadSettings();\r\n\r\n }]);\r\n","angular.module('app').controller('LandingCtrl',\r\n ['$scope', 'LoginFactory', 'TransitionManager', 'LogOffService', 'LocalStorageRepository',\r\n function ($scope, LoginFactory, TransitionManager, LogOffService, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n $scope.currentUserID = LocalStorageRepository.getUserID();\r\n\r\n $scope.logoff = function () {\r\n LogOffService.logoff().then(function () {\r\n TransitionManager.transition({appRoute: 'login'});\r\n });\r\n };\r\n }]\r\n);\r\n","angular.module('app').controller( 'LoginCtrl', [ '$location', '$log', '$rootScope', '$scope', '$state',\r\n 'aprgettext', 'AprimaAnalytics', 'Bridge', 'configuration', 'ConsentService', 'ContentAttributeService', 'GatewayFactory',\r\n 'LocalStorageRepository', 'LogOffService', 'LoginAssistanceRepository', 'PatientPortalStorageRepository', 'SessionService', 'TransitionManager', \r\n 'AccountRepository', 'toaster',\r\n function ($location, $log, $rootScope, $scope, $state,\r\n gettext, AprimaAnalytics, Bridge, configuration, ConsentService, ContentAttributeService, GatewayFactory,\r\n LocalStorageRepository, LogOffService, LoginAssistanceRepository, PatientPortalStorageRepository, SessionService, TransitionManager,\r\n AccountRepository, toaster) {\r\n 'use strict';\r\n\r\n $log.info('LoginCtrl starting up');\r\n\r\n AprimaAnalytics.sendPageView('/Logon');\r\n LogOffService.logoff();\r\n SessionService.resetSessionParams();\r\n PatientPortalStorageRepository.removeActivePatient();\r\n\r\n $scope.errorMessage = '';\r\n $scope.submitted = false;\r\n $scope.loading = false;\r\n $scope.gateways = _.map(_.cloneDeep(configuration.GATEWAYS), function (g) {\r\n g.display = g.prefix + ' - ' + g.url;\r\n return g;\r\n });\r\n\r\n $scope.loginAssistanceInfo = null;\r\n\r\n $scope.model = {\r\n clientID: LocalStorageRepository.getClientID() || '0',\r\n userName: LocalStorageRepository.getUserName() || '',\r\n userId: LocalStorageRepository.getUserID() || null,\r\n password: '',\r\n gateway: null,\r\n practiceName: '',\r\n practiceTagline: '',\r\n };\r\n\r\n if(!configuration.DEV_HOSTED) {\r\n ContentAttributeService.getClientConfig()\r\n .then(function (data) {\r\n var oldClientId = LocalStorageRepository.getClientID();\r\n\r\n if(oldClientId !== data.clientId) {\r\n LocalStorageRepository.clearAll();\r\n }\r\n\r\n LocalStorageRepository.setClientURL(data.hostUrl);\r\n LocalStorageRepository.setClientID(data.clientId);\r\n \r\n $scope.model.clientID = LocalStorageRepository.getClientID();\r\n onLoad();\r\n }).catch(function () {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n });\r\n } else {\r\n onLoad();\r\n }\r\n\r\n function loadPracticeInfo() {\r\n ContentAttributeService.getPracticeInfo(true)\r\n .then(function (practiceInfo) {\r\n $scope.model.practiceName = practiceInfo.practiceName;\r\n $scope.model.practiceTagline = practiceInfo.practiceTagline;\r\n })\r\n .catch(function () {\r\n $scope.model.practiceName = '';\r\n $scope.model.practiceTagline = '';\r\n });\r\n }\r\n\r\n function onLoad() {\r\n loadPracticeInfo();\r\n getLoginAssistanceInfo();\r\n }\r\n\r\n function loginProcess() {\r\n //do not try logging in while trying to login.\r\n if ($scope.loading) {\r\n return;\r\n }\r\n\r\n if ($scope.loginForm.$invalid) {\r\n $scope.submitted = true;\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n\r\n GatewayFactory.login(LocalStorageRepository.getClientID(), $scope.model.userName, $scope.model.password, $scope.model.gateway ? $scope.model.gateway.prefix : null, $scope.model.userId)\r\n .then(function () {\r\n // Broadcast event to start application timeout logic.\r\n // Please see 'modules\\app\\app.js' for application timeout configuration and documentation.\r\n $rootScope.$broadcast('IdleStartWatch');\r\n\r\n SessionService.setPatientAuthenticated(true);\r\n if (SessionService.getNewPasswordRequired() === true) {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n SessionService.setShowHeaderNavigationMenu(false);\r\n TransitionManager.transition({appRoute: 'changepassword'});\r\n }\r\n else if (SessionService.getPracticeConsentAccepted() === true) {\r\n SessionService.setDisplayDashboardToolbar(true);\r\n SessionService.setShowHeaderNavigationMenu(true);\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n }\r\n else {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n SessionService.setShowHeaderNavigationMenu(false);\r\n TransitionManager.transition({appRoute: 'loginconsent'});\r\n }\r\n }, function (err) {\r\n $scope.errorMessage = err.message;\r\n\r\n Bridge.createModalAlert({\r\n title: gettext('Login Error'),\r\n message: err.message,\r\n buttons: [gettext('Okay')]\r\n });\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function completeAccount() {\r\n SessionService.setDisplayDashboardToolbar(true);\r\n TransitionManager.transition({appRoute: 'accountActivationRequest'});\r\n }\r\n\r\n function settings() {\r\n TransitionManager.transition({appRoute: 'loginsettings'});\r\n }\r\n\r\n function forgotPassword() {\r\n if (!$scope.model.userName) {\r\n toaster.pop('warning', '', gettext('Please provide username and try again.'));\r\n return;\r\n }\r\n\r\n LocalStorageRepository.setUserName($scope.model.userName);\r\n\r\n // see if the user has security questions available before switching to new screen\r\n AccountRepository.getSecurityQuestions($scope.model.userName, LocalStorageRepository.getClientID())\r\n .then(function (data) {\r\n if (data) {\r\n TransitionManager.transition({appRoute: 'forgotpassword'});\r\n } else {\r\n toaster.pop('warning', '', gettext('You do not have Security Questions configured. Please contact the practice.'));\r\n }\r\n }).catch(function () {\r\n toaster.pop('warning', '', gettext('You do not have Security Questions configured. Please contact the practice.'));\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function getLoginAssistanceInfo() {\r\n LoginAssistanceRepository.getLoginAssistanceInformation(LocalStorageRepository.getClientID())\r\n .then(function (data) {\r\n $scope.loginAssistanceInfo = data;\r\n $scope.assistanceInfoLoaded = true;\r\n })\r\n .catch(function () {\r\n $scope.errorMessage = gettext('Unable to retrieve Login Assistance.');\r\n Bridge.createModalAlert({\r\n title: gettext('Unable to retrieve Login Assistance'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n });\r\n }\r\n\r\n $scope.loginProcess = loginProcess;\r\n $scope.completeAccount = completeAccount;\r\n $scope.settings = settings;\r\n $scope.forgotPassword = forgotPassword;\r\n $scope.getLoginAssistanceInfo = getLoginAssistanceInfo;\r\n }\r\n ]\r\n);\r\n\r\n","angular.module('app').controller('LoginSettingsCtrl',\r\n ['$scope', '$timeout', '$state', 'LanguageFactory', 'LocalStorageRepository', 'AprimaAnalytics', 'NotificationService', 'configuration',\r\n function ($scope, $timeout, $state, LanguageFactory, LocalStorageRepository, AprimaAnalytics, NotificationService, configuration) {\r\n 'use strict';\r\n\r\n AprimaAnalytics.sendPageView('/Settings/User');\r\n\r\n $scope.values = {\r\n language: LanguageFactory.getLang().code\r\n };\r\n\r\n $scope.clientId = LocalStorageRepository.getClientID();\r\n $scope.notificationTimeout = LocalStorageRepository.getNotificationTimeout();\r\n $scope.isLanguageOpen = true;\r\n $scope.isApplicationInformationOpen = false;\r\n $scope.isOtherOpen = false;\r\n\r\n $scope.languages = LanguageFactory.getLangOptions;\r\n $scope.showDebugSettings = configuration.DEV_HOSTED;\r\n\r\n\r\n function getPrmAssemblyVersion() {\r\n return LocalStorageRepository.getPrmAssemblyVersion();\r\n }\r\n\r\n function clearClientId() {\r\n AprimaAnalytics.sendEvent('user', 'click', 'clear settings', 0);\r\n\r\n LocalStorageRepository.clearAll();\r\n\r\n var clientid = LocalStorageRepository.getClientID();\r\n\r\n if (!clientid) {\r\n updateActionMessage('reset');\r\n } else {\r\n updateActionMessage('failed');\r\n }\r\n }\r\n\r\n function backButton() {\r\n AprimaAnalytics.sendEvent('user', 'click', 'back button', 0);\r\n $state.go('login');\r\n }\r\n\r\n function changeLanguage() {\r\n AprimaAnalytics.sendEvent('user', 'click', 'change language', 0);\r\n LanguageFactory.setLang($scope.values.language);\r\n updateActionMessage($scope.values.language);\r\n }\r\n\r\n function changeClientId() {\r\n LocalStorageRepository.setClientID($scope.clientId);\r\n updateActionMessage($scope.clientId);\r\n }\r\n\r\n function changeNotificationTimeout() {\r\n var interval = $scope.notificationTimeout;\r\n if (interval >= 0 && interval <= 99) {\r\n //if (interval == null) {\r\n // $scope.notificationTimeout = 0;\r\n //}\r\n LocalStorageRepository.setNotificationTimeout($scope.notificationTimeout);\r\n updateActionMessage($scope.notificationTimeout);\r\n }\r\n\r\n NotificationService.stopNotificationTimer();\r\n }\r\n\r\n function updateActionMessage(status) {\r\n $scope.actionMessage = status;\r\n\r\n $timeout(function () {\r\n $scope.actionMessage = '';\r\n }, 2500);\r\n }\r\n\r\n $scope.options = {\r\n selectedGroup: 'language'\r\n };\r\n\r\n $scope.backButton = backButton;\r\n $scope.changeLanguage = changeLanguage;\r\n $scope.clearClientId = clearClientId;\r\n $scope.getPrmAssemblyVersion = getPrmAssemblyVersion;\r\n\r\n if ($scope.showDebugSettings){\r\n $scope.changeNotificationTimeout = changeNotificationTimeout;\r\n $scope.changeClientId = changeClientId;\r\n }\r\n }]\r\n);\r\n\r\n","angular.module('app').controller('MessageListSettingsCtrl',\r\n ['$scope', 'SettingService', 'ListService', 'AprimaAnalytics',\r\n function ($scope, SettingService, ListService, AprimaAnalytics) {\r\n 'use strict';\r\n\r\n AprimaAnalytics.sendPageView('/Settings/Message');\r\n\r\n\r\n var loadingOption = {\r\n Description: 'Loading...'\r\n },\r\n messagesDashboardSettings = SettingService.getMessagesListSettings();\r\n\r\n function findById(list, id) {\r\n return !id || _.find(list, {'Id': id});\r\n }\r\n\r\n $scope.mode = 'locked';\r\n\r\n function loadSettings() {\r\n $scope.messageOptions = {\r\n messageFilters: [loadingOption]\r\n };\r\n\r\n $scope.settings = {};\r\n\r\n ListService.getList('messageFilters').then(function (list) {\r\n var currentMessageFilterId = messagesDashboardSettings && messagesDashboardSettings.messageFilterId;\r\n $scope.messageOptions.messageFilters = list;\r\n $scope.settings.messagesFilter = findById($scope.messageOptions.messageFilters, currentMessageFilterId);\r\n });\r\n }\r\n\r\n $scope.saveMessagesTileSettings = function () {\r\n SettingService.setMessagesListSettings({\r\n messageFilterId: $scope && $scope.settings && $scope.settings.messagesFilter && $scope.settings.messagesFilter.Id\r\n });\r\n\r\n SettingService.updateNativeSettings();\r\n };\r\n\r\n loadSettings();\r\n }]);\r\n","angular.module('app').controller( \r\n 'MfaLoginCtrl', \r\n [ \r\n '$window',\r\n '$location', \r\n '$log', \r\n '$rootScope', \r\n '$scope', \r\n '$cookies',\r\n 'aprgettext', \r\n 'AprimaAnalytics', \r\n 'Bridge', \r\n 'configuration', \r\n 'ConsentService', \r\n 'ContentAttributeService', \r\n 'GatewayFactory',\r\n 'LocalStorageRepository', \r\n 'LogOffService', \r\n 'LoginAssistanceRepository', \r\n 'PatientPortalStorageRepository', \r\n 'SessionService', \r\n 'TransitionManager', \r\n function (\r\n $window,\r\n $location, \r\n $log, \r\n $rootScope, \r\n $scope, \r\n $cookies,\r\n gettext, \r\n AprimaAnalytics, \r\n Bridge, \r\n configuration, \r\n ConsentService, \r\n ContentAttributeService, \r\n GatewayFactory,\r\n LocalStorageRepository, \r\n LogOffService, \r\n LoginAssistanceRepository, \r\n PatientPortalStorageRepository, \r\n SessionService, \r\n TransitionManager\r\n ) {\r\n 'use strict';\r\n\r\n if($location.$$url === '/signout')\r\n {\r\n callIdentityLogoutRedirectUrl();\r\n }\r\n else if(!($location.$$search && $location.$$search.code))\r\n {\r\n $scope.splash = true;\r\n }\r\n\r\n clear();\r\n \r\n $log.info('MfaLoginCtrl starting up');\r\n\r\n AprimaAnalytics.sendPageView('/Logon');\r\n LogOffService.logoff();\r\n SessionService.resetSessionParams();\r\n PatientPortalStorageRepository.removeActivePatient();\r\n\r\n if(!configuration.DEV_HOSTED) {\r\n ContentAttributeService.getClientConfig()\r\n .then(function (data) {\r\n \r\n LocalStorageRepository.setClientURL(data.hostUrl);\r\n LocalStorageRepository.setClientID(data.clientId);\r\n \r\n onLoad();\r\n }).catch(function () {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n });\r\n } else {\r\n onLoad();\r\n }\r\n\r\n if($location.$$search && $location.$$search.code)\r\n {\r\n GatewayFactory.identityTokenLogin(LocalStorageRepository.getClientID(), $location.$$search.code, null)\r\n .then(function () {\r\n // Broadcast event to start application timeout logic.\r\n // Please see 'modules\\app\\app.js' for application timeout configuration and documentation.\r\n \r\n //set cookie for auto login for a day\r\n $rootScope.$broadcast('IdleStartWatch');\r\n \r\n SessionService.setPatientAuthenticated(true);\r\n if (SessionService.getPracticeConsentAccepted() === true) {\r\n SessionService.setDisplayDashboardToolbar(true);\r\n SessionService.setShowHeaderNavigationMenu(true);\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n }\r\n else {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n SessionService.setShowHeaderNavigationMenu(false);\r\n TransitionManager.transition({appRoute: 'loginconsent'});\r\n }\r\n }, function (err) {\r\n $scope.splash = true;\r\n $scope.registrationIssue = err.message;\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n \r\n function routeUsername()\r\n {\r\n if ($scope.loading) {\r\n return;\r\n }\r\n\r\n if ($scope.routeUsernameForm.$invalid) {\r\n $scope.submitted = true;\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n\r\n GatewayFactory.routeUsername( $scope.routerModel.clientId, $scope.routerModel.userName, $scope.routerModel.gateway ? $scope.routerModel.gateway.prefix : null)\r\n .then(function (userRegistrationResult) {\r\n if(userRegistrationResult && userRegistrationResult.IsFailure===false && userRegistrationResult.UsernameRegistrationState) {\r\n var username = $scope.routerModel.userName;\r\n if(userRegistrationResult.UsernameRegistrationState === 'Registered'){\r\n $scope.splash = false;\r\n callPARRedirectUrl($scope.routerModel.userName);\r\n }\r\n else if(userRegistrationResult.UsernameRegistrationState === 'NotRegistered' && userRegistrationResult.RegisterNewMFA){\r\n clear();\r\n $scope.mfaRegister = true;\r\n $scope.registerModel.userName = username;\r\n }\r\n else if(userRegistrationResult.UsernameRegistrationState === 'NotRegistered' && !userRegistrationResult.RegisterNewMFA){\r\n clear();\r\n $scope.mfaLogin = true;\r\n $scope.loginModel.userName = username;\r\n }\r\n else\r\n {\r\n $scope.errorMessage = 'Login Failed. Please Contact Support.';\r\n }\r\n }\r\n else\r\n {\r\n $scope.errorMessage = 'Login Failed. Please Contact Support.';\r\n }\r\n }, function (err) {\r\n $scope.errorMessage = err.message;\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function register()\r\n {\r\n if ($scope.loading) {\r\n return;\r\n }\r\n\r\n if ($scope.registerForm.$invalid) {\r\n $scope.submitted = true;\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n\r\n GatewayFactory.register( $scope.registerModel.clientId, $scope.registerModel.userName, $scope.registerModel.password, $scope.registerModel.gateway ? $scope.registerModel.gateway.prefix : null)\r\n .then(function (userRegistrationResult) {\r\n if(userRegistrationResult && userRegistrationResult.IsFailure===false && userRegistrationResult.UserData) {\r\n var username = $scope.registerModel.userName;\r\n clear();\r\n $scope.mfaConfirm = true;\r\n $scope.confirmModel.emailAddress = userRegistrationResult.UserData.EmailAddress;\r\n if(userRegistrationResult.UserData.DateOfBirth && userRegistrationResult.UserData.DateOfBirth !== new Date('0001-01-01T00:00:00Z'))\r\n {\r\n $scope.confirmModel.dateOfBirth = new Date(userRegistrationResult.UserData.DateOfBirth);\r\n }\r\n $scope.confirmModel.personId = userRegistrationResult.UserData.PersonUid;\r\n $scope.confirmModel.userName = username;\r\n }\r\n else if(userRegistrationResult.ErrorCode === 401)\r\n {\r\n $scope.errorMessage = 'Invalid Login.';\r\n }\r\n else\r\n {\r\n errorRegister($scope.registerModel.userName, 'Registration Failed. Please contact support.');\r\n }\r\n }, function (err) {\r\n errorRegister($scope.registerModel.userName, err.message);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function errorRegister(username, message)\r\n {\r\n clear();\r\n $scope.registerModel.userName = username;\r\n $scope.mfaRegister = true;\r\n $scope.errorMessage = message;\r\n }\r\n\r\n function login() {\r\n //do not try logging in while trying to login.\r\n if ($scope.loading) {\r\n return;\r\n }\r\n\r\n if ($scope.loginForm.$invalid) {\r\n $scope.submitted = true;\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n\r\n GatewayFactory.login( $scope.loginModel.clientId, $scope.loginModel.userName, $scope.loginModel.password, $scope.loginModel.gateway ? $scope.loginModel.gateway.prefix : null)\r\n .then(function () {\r\n // Broadcast event to start application timeout logic.\r\n // Please see 'modules\\app\\app.js' for application timeout configuration and documentation.\r\n $rootScope.$broadcast('IdleStartWatch');\r\n\r\n SessionService.setPatientAuthenticated(true);\r\n if (SessionService.getNewPasswordRequired() === true) {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n SessionService.setShowHeaderNavigationMenu(false);\r\n TransitionManager.transition({appRoute: 'changepassword'});\r\n }\r\n else if (SessionService.getPracticeConsentAccepted() === true) {\r\n SessionService.setDisplayDashboardToolbar(true);\r\n SessionService.setShowHeaderNavigationMenu(true);\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n }\r\n else {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n SessionService.setShowHeaderNavigationMenu(false);\r\n TransitionManager.transition({appRoute: 'loginconsent'});\r\n }\r\n }, function (err) {\r\n errorLogin($scope.loginModel.userName, err.message);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function errorLogin(username, message)\r\n {\r\n clear();\r\n $scope.loginModel.userName = username;\r\n $scope.mfaLogin = true;\r\n $scope.errorMessage = message;\r\n }\r\n\r\n function confirm()\r\n {\r\n if ($scope.loading) {\r\n return;\r\n }\r\n\r\n if ($scope.confirmationForm.$invalid) {\r\n $scope.submitted = true;\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n var personId = $scope.confirmModel.personId; \r\n var dob = $scope.confirmModel.dateOfBirth;\r\n var email = $scope.confirmModel.emailAddress;\r\n var oldUserName = $scope.confirmModel.userName;\r\n GatewayFactory.confirm($scope.confirmModel.clientId, $scope.confirmModel.personId, $scope.confirmModel.dateOfBirth, $scope.confirmModel.emailAddress, $scope.confirmModel.userName, $scope.registerModel.gateway ? $scope.registerModel.gateway.prefix : null)\r\n .then(function (userRegistrationResult) {\r\n if(userRegistrationResult && userRegistrationResult.IsFailure===false && userRegistrationResult.IdentityResponseDto)\r\n {\r\n var username = $scope.confirmModel.emailAddress;\r\n clear();\r\n $scope.mfaRouter = true;\r\n $scope.routerModel.userName = username;\r\n if(userRegistrationResult.ErrorCode === $scope.personIdentityServiceErrorCodes.AlreadyRegistered)\r\n {\r\n $scope.errorMessage = 'You are already registered with multifactor credentials.';\r\n }\r\n else\r\n {\r\n var instructions = userRegistrationResult.IdentityResponseDto.VerificationMessage;\r\n $scope.mfaNextSteps = instructions;\r\n $scope.verficationLink = userRegistrationResult.IdentityResponseDto.VerificationUrl; \r\n }\r\n //$scope.registerForm = false;\r\n }\r\n else{\r\n errorConfirm(personId, dob, email, oldUserName, 'Confirmation Failed. Please contact support.');\r\n }\r\n }, function (err) {\r\n \r\n errorConfirm(personId, dob, email, oldUserName, err.message);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function errorConfirm(personId, dob, email, username, errorMessage)\r\n {\r\n clear();\r\n $scope.confirmModel.personId = personId; \r\n $scope.confirmModel.dateOfBirth = dob;\r\n $scope.confirmModel.emailAddress = email;\r\n $scope.confirmModel.userName = username;\r\n $scope.mfaConfirm = true;\r\n $scope.errorMessage = errorMessage;\r\n }\r\n\r\n function cancel()\r\n {\r\n clear();\r\n $scope.mfaRouter = true;\r\n }\r\n\r\n function onLoad() {\r\n clear();\r\n $scope.mfaRouter = true;\r\n $scope.errorMessage = '';\r\n $scope.submitted = false;\r\n $scope.loading = false;\r\n $scope.gateways = _.map(_.cloneDeep(configuration.GATEWAYS), function (g) {\r\n g.display = g.prefix + ' - ' + g.url;\r\n return g;\r\n });\r\n\r\n $scope.loginAssistanceInfo = null;\r\n $scope.personIdentityServiceErrorCodes = {\r\n 'NotFound': 420,\r\n 'MissingFirstName': 421,\r\n 'MissingLastName': 422,\r\n 'MissingFullName': 423,\r\n 'MissingEmail': 424,\r\n 'MissingDOB': 425,\r\n 'AlreadyRegistered': 426\r\n };\r\n loadPracticeInfo();\r\n getLoginAssistanceInfo();\r\n }\r\n\r\n function clear()\r\n {\r\n $scope.mfaRouter = false;\r\n $scope.mfaRegister = false;\r\n $scope.mfaLogin = false;\r\n $scope.mfaConfirm = false;\r\n $scope.errorMessage = '';\r\n setModels();\r\n }\r\n\r\n function setModels()\r\n {\r\n $scope.routerModel = {\r\n clientId: LocalStorageRepository.getClientID() || '0',\r\n userName: LocalStorageRepository.getUserName() || '',\r\n gateway: null,\r\n };\r\n $scope.registerModel = {\r\n clientId: LocalStorageRepository.getClientID() || '0',\r\n userName: '',\r\n password: '',\r\n gateway: null,\r\n };\r\n $scope.loginModel = {\r\n clientId: LocalStorageRepository.getClientID() || '0',\r\n userName: '',\r\n password: '',\r\n gateway: null,\r\n };\r\n $scope.confirmModel = {\r\n clientId: LocalStorageRepository.getClientID() || '0',\r\n personId: '',\r\n dateOfBirth: '',\r\n emailAddress: '',\r\n userName: '',\r\n gateway: null,\r\n };\r\n $scope.practiceModel = {\r\n practiceName: '',\r\n practiceTagline: '',\r\n };\r\n }\r\n\r\n function loadPracticeInfo() {\r\n ContentAttributeService.getPracticeInfo(true)\r\n .then(function (practiceInfo) {\r\n $scope.practiceModel.practiceName = practiceInfo.practiceName;\r\n $scope.practiceModel.practiceTagline = practiceInfo.practiceTagline;\r\n })\r\n .catch(function () {\r\n $scope.practiceModel.practiceName = '';\r\n $scope.practiceModel.practiceTagline = '';\r\n });\r\n }\r\n\r\n function getLoginAssistanceInfo() {\r\n LoginAssistanceRepository.getLoginAssistanceInformation(LocalStorageRepository.getClientID())\r\n .then(function (data) {\r\n $scope.loginAssistanceInfo = data;\r\n if(data.CustomPortalFooter)\r\n {\r\n data.CustomPortalFooter = data.CustomPortalFooter.replace(/(\\r\\n|\\n|\\r)/g, '
');\r\n }\r\n $scope.assistanceInfoLoaded = true;\r\n })\r\n .catch(function () {\r\n $scope.errorMessage = gettext('Unable to retrieve Login Assistance.');\r\n });\r\n }\r\n\r\n function callIdentityLogoutRedirectUrl() {\r\n GatewayFactory.callIdentityLogoutRedirectUrl().then(function(url) {\r\n var idhint = LocalStorageRepository.getIdentityHint();\r\n $window.location.href = url + '&id_token_hint=' + idhint;\r\n }).catch(function(error) {\r\n $scope.error = error;\r\n });\r\n }\r\n\r\n function callPARRedirectUrl(username) {\r\n $scope.loading = true;\r\n GatewayFactory.callPARRedirectUrl(username).then(function(url) {\r\n $window.location.href = url;\r\n }).catch(function(error) {\r\n $scope.error = error;\r\n }).finally(function() {\r\n $scope.loading = false;\r\n });\r\n } \r\n $scope.callIdentityLogoutRedirectUrl = callIdentityLogoutRedirectUrl;\r\n $scope.callPARRedirectUrl = callPARRedirectUrl;\r\n $scope.getLoginAssistanceInfo = getLoginAssistanceInfo;\r\n $scope.routeUsername = routeUsername;\r\n $scope.register = register;\r\n $scope.confirm = confirm;\r\n $scope.cancel = cancel;\r\n $scope.login = login; \r\n }\r\n ]\r\n);\r\n\r\n\r\n","angular.module('app').controller('StatementsLoginCtrl',\r\n ['$scope','$rootScope','TransitionManager', 'LocalStorageRepository','ContentAttributeService','GatewayFactory','Bridge', 'aprgettext','$stateParams','LogOffService','$log','AprimaAnalytics','configuration','PatientSettingsService',\r\n function ($scope,$rootScope, TransitionManager, LocalStorageRepository,ContentAttributeService,GatewayFactory, Bridge, gettext, $stateParams, LogOffService, $log, AprimaAnalytics, configuration, PatientSettingsService) {\r\n 'use strict';\r\n\r\n $log.info('LoginCtrl starting up');\r\n\r\n $scope.birthDateRegex = /^$|\\d{4}\\-\\d{2}\\-\\d{2}/ ;\r\n $scope.phoneRegEx = /\\(?\\d{3}(-|\\))?\\s?\\d{3}-?\\d{4}$/;\r\n $scope.zipCodeRegex = /^$|\\d{5}/ ;\r\n $scope.practiceName = null;\r\n $scope.statementId = $stateParams.statementId;\r\n $scope.gateways = _.map(_.cloneDeep(configuration.GATEWAYS), function (g) {\r\n g.display = g.prefix + ' - ' + g.url;\r\n return g;\r\n });\r\n\r\n $scope.model =\r\n {\r\n clientID: LocalStorageRepository.getClientID() || '0',\r\n birthDate: '',\r\n zipCode: '',\r\n accessCode:'',\r\n gateway: null,\r\n practiceName: '',\r\n practiceTagline: '',\r\n userId: ''\r\n };\r\n\r\n\r\n\r\n AprimaAnalytics.sendPageView('/StatementsLogin');\r\n LogOffService.logoff();\r\n\r\n function loadPracticeInfo() {\r\n ContentAttributeService.getPracticeInfo(true)\r\n .then(function (practiceInfo) {\r\n $scope.model.practiceName = practiceInfo.practiceName;\r\n $scope.model.practiceTagline = practiceInfo.practiceTagline;\r\n })\r\n .catch(function () {\r\n $scope.model.practiceName = '';\r\n $scope.model.practiceTagline = '';\r\n });\r\n }\r\n\r\n if (!configuration.DEV_HOSTED) {\r\n ContentAttributeService.getClientConfig()\r\n .then(function (data) {\r\n if (data) {\r\n var oldClientId = LocalStorageRepository.getClientID();\r\n\r\n if (oldClientId !== data.clientId) {\r\n LocalStorageRepository.clearAll();\r\n }\r\n\r\n LocalStorageRepository.setClientURL(data.hostUrl);\r\n LocalStorageRepository.setClientID(data.clientId);\r\n\r\n } else {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n }\r\n }).catch(function () {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n });\r\n }\r\n\r\n function onLoad() {\r\n loadPracticeInfo();\r\n }\r\n\r\n onLoad();\r\n\r\n function loginProcess()\r\n {\r\n if ($scope.loading) {\r\n return;\r\n }\r\n\r\n if ($scope.loginForm.$invalid) {\r\n $scope.submitted = true;\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n var phoneNumberScrubbed = $scope.model.phoneNumber && $scope.model.phoneNumber.replace(/\\D/g,'');\r\n\r\n GatewayFactory.loginStatementsOnly(LocalStorageRepository.getClientID(), $scope.model.birthDate, $scope.model.zipCode, $scope.model.accessCode.toUpperCase(), phoneNumberScrubbed, $scope.model.gateway ? $scope.model.gateway.prefix : null)\r\n .then(function () {\r\n // Broadcast event to start application timeout logic.\r\n // Please see 'modules\\app\\app.js' for application timeout configuration and documentation.\r\n $rootScope.$broadcast('IdleStartWatch');\r\n PatientSettingsService.getPatientFeatures();\r\n TransitionManager.transition({appRoute: 'paymentStatementsOnly'});\r\n\r\n }, function (err) {\r\n $scope.errorMessage = '\\nLogin failure.\\nYou have entered incorrect login information\\n';\r\n\r\n Bridge.createModalAlert({\r\n title: gettext('Login Error.'),\r\n message: err.message,\r\n buttons: [gettext('Okay')]\r\n });\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n $scope.loginProcess = loginProcess;\r\n }\r\n ]\r\n);\r\n\r\n","angular.module('app').controller( 'TokenLoginCtrl', [ '$location', '$log', '$rootScope', '$scope', '$state', '$stateParams',\r\n 'aprgettext', 'AprimaAnalytics', 'Bridge', 'configuration', 'ConsentService', 'ContentAttributeService', 'GatewayFactory',\r\n 'LocalStorageRepository', 'LogOffService', 'LoginAssistanceRepository', 'PatientPortalStorageRepository', 'SessionService', 'TransitionManager',\r\n function ($location, $log, $rootScope, $scope, $state, $stateParams,\r\n gettext, AprimaAnalytics, Bridge, configuration, ConsentService, ContentAttributeService, GatewayFactory,\r\n LocalStorageRepository, LogOffService, LoginAssistanceRepository, PatientPortalStorageRepository, SessionService, TransitionManager) {\r\n 'use strict';\r\n\r\n $log.info('TokenLoginCtrl starting up');\r\n\r\n AprimaAnalytics.sendPageView('/Logon');\r\n LogOffService.logoff();\r\n SessionService.resetSessionParams();\r\n PatientPortalStorageRepository.removeActivePatient();\r\n\r\n $scope.errorMessage = '';\r\n $scope.submitted = false;\r\n $scope.loading = false;\r\n $scope.gateways = _.map(_.cloneDeep(configuration.GATEWAYS), function (g) {\r\n g.display = g.prefix + ' - ' + g.url;\r\n return g;\r\n });\r\n\r\n $scope.loginAssistanceInfo = null;\r\n\r\n $scope.model = {\r\n clientID: LocalStorageRepository.getClientID() || '0',\r\n userName: LocalStorageRepository.getUserName() || '',\r\n userId: LocalStorageRepository.getUserID() || null,\r\n password: '',\r\n gateway: null,\r\n practiceName: '',\r\n practiceTagline: '',\r\n };\r\n\r\n if (!configuration.DEV_HOSTED) {\r\n ContentAttributeService.getClientConfig()\r\n .then(function (data) {\r\n var oldClientId = LocalStorageRepository.getClientID();\r\n\r\n if (oldClientId !== data.clientId) {\r\n LocalStorageRepository.clearAll();\r\n }\r\n\r\n LocalStorageRepository.setClientURL(data.hostUrl);\r\n LocalStorageRepository.setClientID(data.clientId);\r\n\r\n $scope.model.clientID = LocalStorageRepository.getClientID();\r\n login();\r\n }).catch(function () {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n });\r\n } else {\r\n login();\r\n }\r\n\r\n function login() {\r\n $scope.loading = true;\r\n\r\n GatewayFactory.tokenLogin(LocalStorageRepository.getClientID(), $scope.model.gateway ? $scope.model.gateway.prefix : null, $stateParams.token)\r\n .then(function () {\r\n // Broadcast event to start application timeout logic.\r\n // Please see 'modules\\app\\app.js' for application timeout configuration and documentation.\r\n $rootScope.$broadcast('IdleStartWatch');\r\n\r\n SessionService.setPatientAuthenticated(true);\r\n if (SessionService.getNewPasswordRequired() === true) {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n SessionService.setShowHeaderNavigationMenu(false);\r\n TransitionManager.transition({appRoute: 'changepassword'});\r\n }\r\n else if (SessionService.getPracticeConsentAccepted() === true) {\r\n SessionService.setDisplayDashboardToolbar(true);\r\n SessionService.setShowHeaderNavigationMenu(true);\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n }\r\n else {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n SessionService.setShowHeaderNavigationMenu(false);\r\n TransitionManager.transition({appRoute: 'loginconsent'});\r\n }\r\n }, function (err) {\r\n $scope.errorMessage = err.message;\r\n\r\n Bridge.createModalAlert({\r\n title: gettext('Login Error'),\r\n message: err.message,\r\n buttons: [gettext('Okay')]\r\n });\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n }\r\n]);\r\n","angular.module('app').controller('UserSettingsCtrl',\r\n ['$scope', '_', '$state', 'LanguageFactory', 'LocalStorageRepository', 'AprimaAnalytics',\r\n function ($scope, lodash, $state, LanguageFactory, LocalStorageRepository, AprimaAnalytics) {\r\n 'use strict';\r\n\r\n $scope.mode = 'locked';\r\n $scope.usersettings = {\r\n username: LocalStorageRepository.getUserFullName(),\r\n clientId: LocalStorageRepository.getClientID()\r\n };\r\n $scope.usersettings.languages = [\r\n {\r\n name: 'English',\r\n id: 'en_US'\r\n },\r\n {\r\n name: 'Spanish',\r\n id: 'es_MX'\r\n }\r\n ];\r\n\r\n var currentLanguage = _($scope.usersettings.languages).filter({id: LanguageFactory.getLang().code}).pop();\r\n\r\n $scope.usersettings.language = currentLanguage ? currentLanguage.id : null;\r\n\r\n $scope.changeLanguage = function () {\r\n LanguageFactory.setLang($scope.usersettings.language);\r\n AprimaAnalytics.sendEvent('api', 'usersettings', 'change language', 0);\r\n };\r\n }]);\r\n","angular.module('app').controller('ViewApiDocumentModalCtrl',\r\n ['$scope', '$uibModalInstance', 'modalConfig',\r\n function ($scope, $modalInstance, modalConfig) {\r\n 'use strict';\r\n\r\n $scope.downloadingDocument = false;\r\n $scope.model = {\r\n Title: modalConfig.Title,\r\n EnableDownload: !!modalConfig.DocumentDownload,\r\n DownloadFileName: modalConfig.DownloadFileName,\r\n DocumentId: modalConfig.DocumentId,\r\n HasStaticUrl: modalConfig.HasStaticUrl,\r\n DisableInlinePdf: modalConfig.DisableInlinePdf,\r\n DocumentHelper: modalConfig.DocumentHelper,\r\n ClientID: modalConfig.ClientID,\r\n ClientURL: modalConfig.ClientURL,\r\n };\r\n\r\n function getStaticUrl(documentId) {\r\n return modalConfig.GetStaticUrl(documentId);\r\n }\r\n\r\n function loadDocument(documentId, requestSettings) {\r\n $scope.loadingDocument = true;\r\n return modalConfig.DocumentLoad(documentId, requestSettings)\r\n .finally(function () {\r\n $scope.loadingDocument = false;\r\n });\r\n }\r\n\r\n function downloadDocument(documentId) {\r\n $scope.downloadingDocument = true;\r\n return modalConfig.DocumentDownload(documentId)\r\n .finally(function () {\r\n $scope.downloadingDocument = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n $scope.getStaticUrl = getStaticUrl;\r\n $scope.loadDocument = loadDocument;\r\n $scope.downloadDocument = downloadDocument;\r\n }]);\r\n","angular.module('app').controller('ViewDocumentModalCtrl',\r\n ['$scope', '$uibModalInstance', 'modalConfig',\r\n function ($scope, $modalInstance, modalConfig) {\r\n 'use strict';\r\n\r\n $scope.downloadingDocument = false;\r\n $scope.model = {\r\n Title: modalConfig.Title,\r\n EnableDownload: !!modalConfig.DocumentDownload,\r\n DownloadFileName: modalConfig.DownloadFileName,\r\n DocumentId: modalConfig.DocumentId,\r\n HasStaticUrl: modalConfig.HasStaticUrl,\r\n DisableInlinePdf: modalConfig.DisableInlinePdf,\r\n DocumentHelper: modalConfig.DocumentHelper,\r\n };\r\n\r\n function getStaticUrl(documentId) {\r\n return modalConfig.GetStaticUrl(documentId);\r\n }\r\n\r\n function loadDocument(documentId, requestSettings) {\r\n $scope.loadingDocument = true;\r\n return modalConfig.DocumentLoad(documentId, requestSettings)\r\n .finally(function () {\r\n $scope.loadingDocument = false;\r\n });\r\n }\r\n\r\n function downloadDocument(documentId) {\r\n $scope.downloadingDocument = true;\r\n return modalConfig.DocumentDownload(documentId)\r\n .finally(function () {\r\n $scope.downloadingDocument = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n $scope.getStaticUrl = getStaticUrl;\r\n $scope.loadDocument = loadDocument;\r\n $scope.downloadDocument = downloadDocument;\r\n }]);\r\n","angular.module('app').controller('PracticeTermsModalCtrl',\r\n ['$scope', '$uibModalInstance', '$sce', 'ConsentService', 'LocalStorageRepository',\r\n function ($scope, $modalInstance, $sce, ConsentService, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n var loginUserId = LocalStorageRepository.getUserID();\r\n\r\n function loadPracticeTerms() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n if (loginUserId) {\r\n ConsentService.getPracticeConsent()\r\n .then(function (data) {\r\n $scope.practiceConsent = data.ConsentForm;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n } else {\r\n $scope.loading = false;\r\n }\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n\r\n loadPracticeTerms();\r\n }]);","angular.module('app').controller('PrivacyPolicyModalCtrl',\r\n ['$scope', '$uibModalInstance', '$sce', 'ConsentService', 'LocalStorageRepository',\r\n function ($scope, $modalInstance, $sce, ConsentService, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n var loginUserId = LocalStorageRepository.getUserID();\r\n\r\n function loadPrivacyPolicy() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n if (loginUserId){\r\n ConsentService\r\n .getPrivacyPolicyUrl()\r\n .then(function (privacyPolicyUrl) {\r\n $scope.privacyPolicyUrl = privacyPolicyUrl;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function() {\r\n $scope.loading = false;\r\n });\r\n } else {\r\n $scope.loading = false;\r\n }\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n\r\n loadPrivacyPolicy();\r\n }]);","angular.module('app').controller('NavigationAppointmentsCtrl',\r\n ['$scope', 'LocalStorageRepository', '$stateParams',\r\n function ($scope, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n var fullName = LocalStorageRepository.getUserFullName(),\r\n userID = LocalStorageRepository.getUserID();\r\n\r\n $scope.CurrentUser = {\r\n FullName: fullName + ' hello world',\r\n Id: userID\r\n };\r\n\r\n }]);","angular.module('app').controller('NavigationBillingCtrl',\r\n ['$scope', 'LocalStorageRepository', '$stateParams',\r\n function ($scope, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n var fullName = LocalStorageRepository.getUserFullName(),\r\n userID = LocalStorageRepository.getUserID();\r\n\r\n $scope.CurrentUser = {\r\n FullName: fullName,\r\n Id: userID\r\n };\r\n\r\n }]);","angular.module('app').controller('NavigationDoctorsCtrl',\r\n ['$scope', 'LocalStorageRepository', '$stateParams',\r\n function ($scope, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n var fullName = LocalStorageRepository.getUserFullName(),\r\n userID = LocalStorageRepository.getUserID();\r\n\r\n $scope.CurrentUser = {\r\n FullName: fullName,\r\n Id: userID\r\n };\r\n\r\n }]);","angular.module('app').controller('NavigationFormsCtrl',\r\n ['$scope', 'LocalStorageRepository', '$stateParams',\r\n function ($scope, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n var fullName = LocalStorageRepository.getUserFullName(),\r\n userID = LocalStorageRepository.getUserID();\r\n\r\n $scope.CurrentUser = {\r\n FullName: fullName,\r\n Id: userID\r\n };\r\n\r\n }]);","angular.module('app').controller('NavigationMessagesCtrl',\r\n ['$scope', 'LocalStorageRepository', '$stateParams',\r\n function ($scope, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n var fullName = LocalStorageRepository.getUserFullName(),\r\n userID = LocalStorageRepository.getUserID();\r\n\r\n $scope.CurrentUser = {\r\n FullName: fullName,\r\n Id: userID\r\n };\r\n\r\n }]);","angular.module('app').controller('NavigationPrescriptionsCtrl',\r\n ['$scope', 'LocalStorageRepository', '$stateParams',\r\n function ($scope, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n var fullName = LocalStorageRepository.getUserFullName(),\r\n userID = LocalStorageRepository.getUserID();\r\n\r\n $scope.CurrentUser = {\r\n FullName: fullName,\r\n Id: userID\r\n };\r\n\r\n }]);","angular.module('app').directive('apDatePicker',\r\n ['_', '$window',\r\n function (_, $window) {\r\n 'use strict';\r\n\r\n //API: https://api.jqueryui.com/datepicker/ 25 March 2015\r\n\r\n //uses:\r\n // (appears after clicking in box)\r\n //
static calendar\r\n\r\n //getDay() --> returns the day of the week (0-6) sunday-saturday\r\n //getDate() --> July 21 returns 21\r\n //getFullYear() --> July 21 2015 returns 2015\r\n //getMonth() --> July 21 returns 6 (starts from 0)\r\n\r\n $window=$window;\r\n\r\n var calendar = {\r\n selectedDate: null\r\n };\r\n\r\n var calendarOptions = {\r\n disableWeekends: true,\r\n disablePastDates: true\r\n };\r\n\r\n var disabledDates = {\r\n year: 2015,\r\n month: 3,\r\n days: [13,15,17,21]\r\n };\r\n\r\n var selectDate = function (date) {\r\n calendar.selectedDate=date;\r\n //$window.alert(calendar.selectedDate);\r\n };\r\n\r\n var setDisabledDates = function (year, month, days) {\r\n disabledDates.year=year;\r\n disabledDates.month=month;\r\n disabledDates.days=days;\r\n };\r\n\r\n var weekends = function (date) {\r\n var day = date.getDay();\r\n return (day > 0 && day < 6);\r\n };\r\n\r\n var isValidDay = function (date) {\r\n var enableDay = true;\r\n if(date.getMonth() === disabledDates.month && date.getFullYear() === disabledDates.year) {\r\n enableDay = disabledDates.days.indexOf(date.getDate()) === -1;\r\n }\r\n if(enableDay && calendarOptions.disableWeekends) {\r\n enableDay = weekends(date);\r\n }\r\n return [enableDay, ''];\r\n };\r\n\r\n //inst.selectedMonth (month) goes from 0-11\r\n var calendarShow = function (input, inst) {\r\n //query server and set disabled dates\r\n //the calendar is first opened (no month set)\r\n if(inst.selectedDay === 0) {\r\n var d = new Date();\r\n d=d;\r\n setDisabledDates(disabledDates.year, disabledDates.month, disabledDates.days);\r\n //$window.alert(d.getDate());\r\n }\r\n else{\r\n //$window.alert(month);\r\n }\r\n };\r\n\r\n //month goes from 1-12\r\n //inst.selectedMonth will be 0-11\r\n var monthChange = function (year ,month ,inst){\r\n inst=inst;\r\n //query server and set disabled dates\r\n //$window.alert(month);\r\n };\r\n\r\n return {\r\n restrict: 'A',\r\n link: function ($scope, elm) {\r\n elm.datepicker({\r\n changeYear: false,\r\n minDate: calendarOptions.disablePastDates ? '0d' : '',\r\n onChangeMonthYear: monthChange,\r\n beforeShow: calendarShow,\r\n beforeShowDay: isValidDay,\r\n onSelect: selectDate\r\n });\r\n $scope.$on('destroy', function() {\r\n elm.datepicker('destroy');\r\n });\r\n }\r\n };\r\n }]);","angular.module('app').directive('apFormAttachment',\r\n function() {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/views/directives/apFormAttachment.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n attachmentDto : '=attachmentDto',\r\n practiceForm : '=practiceForm',\r\n sending : '=sending'\r\n },\r\n\r\n controller: function($scope) {\r\n\r\n $scope.attachmentDto = {\r\n Data: null,\r\n FileName: null,\r\n MimeType : null,\r\n Extension : null\r\n };\r\n\r\n $scope.selectDocumentModel = {\r\n selectedFileName: $scope.selectedFileName,\r\n selectedFileContents: $scope.selectedFileContents,\r\n selectedMimeType: $scope.selectedMimeType,\r\n validationMessage: $scope.validationMessage\r\n };\r\n\r\n $scope.$watch('selectDocumentModel.selectedFileContents', function(newval, oldval) {\r\n\r\n if (newval) {\r\n\r\n\r\n if (newval !== oldval) {\r\n $scope.attachmentDto.Data = $scope.selectDocumentModel.selectedFileContents.split(',')[1];\r\n $scope.attachmentDto.FileName = $scope.selectDocumentModel.selectedFileName;\r\n $scope.attachmentDto.MimeType = $scope.selectDocumentModel.selectedMimeType;\r\n $scope.attachmentDto.Extension = $scope.selectDocumentModel.selectedFileName.split('.')[1];\r\n }\r\n $scope.$emit('createMessage');\r\n }\r\n }, true);\r\n\r\n\r\n\r\n\r\n\r\n }\r\n };\r\n }\r\n);","angular.module('app').directive('apLoginBackground',\r\n [\r\n function () {\r\n 'use strict';\r\n function link(scope, element) {\r\n element.css('background-image', 'url(images/login-background-clientId-' + scope.clientId + '.jpg), url(images/login-background.jpg)');\r\n }\r\n\r\n return {\r\n restrict: 'EA',\r\n scope: {\r\n clientId: '=clientId'\r\n },\r\n link: link\r\n\r\n };\r\n }]);","angular.module('app').directive('apMessageAttachment', ['aprgettext','PatientSettingsService',\r\n function(gettext,PatientSettingsService) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/views/directives/apMessageAttachment.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n attachmentDtoList: '=attachmentDtoList'\r\n\r\n },\r\n\r\n controller: function($scope) {\r\n\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n $scope.maxNumberFiles = featureList.PatientMessageAttachment.FileAttachmentConfig.NumberOfFilesThatCanBeAttached;\r\n\r\n $scope.attachmentDtoList = [];\r\n\r\n $scope.selectDocumentModel = {\r\n selectedFileName: $scope.selectedFileName,\r\n selectedFileContents: $scope.selectedFileContents,\r\n selectedMimeType: $scope.selectedMimeType,\r\n validationMessage: $scope.validationMessage\r\n };\r\n\r\n $scope.$watch('selectDocumentModel.selectedFileContents', function(newval, oldval) {\r\n\r\n if (newval) {\r\n\r\n if (newval !== oldval) {\r\n\r\n var newAttachment = true;\r\n $.each($scope.attachmentDtoList, function(i, obj) {\r\n if (obj.Data === newval) {\r\n newAttachment = false;\r\n return false;\r\n }\r\n });\r\n\r\n\r\n if (newAttachment) {\r\n if($scope.attachmentDtoList.length < $scope.maxNumberFiles){\r\n $scope.attachmentDtoList.push({\r\n Data: $scope.selectDocumentModel.selectedFileContents.split(',')[1],\r\n FileName: $scope.selectDocumentModel.selectedFileName,\r\n MimeType: $scope.selectDocumentModel.selectedMimeType,\r\n Extension: $scope.selectDocumentModel.selectedFileName.split('.')[1]\r\n });\r\n }\r\n else{\r\n $scope.selectDocumentModel.validationMessage = gettext('Maximum of ') + $scope.maxNumberFiles + gettext(' attachments can be selected per message. ' + 'Please send this message and create another one to send additional files.');\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n }, true);\r\n\r\n\r\n $scope.remove = function remove(attachment) {\r\n $.each($scope.attachmentDtoList, function(i) {\r\n if ($scope.attachmentDtoList[i].Data === attachment.Data) {\r\n $scope.attachmentDtoList.splice(i, 1);\r\n $scope.selectDocumentModel.selectedFileContents = '';\r\n $scope.selectDocumentModel.selectedFileName = '';\r\n $scope.selectDocumentModel.selectedFileContents = '';\r\n $scope.selectDocumentModel.selectedFileContents = '';\r\n $scope.selectDocumentModel.selectedMimeType = '';\r\n return false;\r\n }\r\n });\r\n };\r\n\r\n }\r\n };\r\n }\r\n]\r\n);","angular.module('app').directive('apSavePdfToFile',\r\n ['BrowserService',\r\n function (BrowserService) {\r\n 'use strict';\r\n\r\n function link($scope, element) {\r\n function _savePdfAsFile(fileNameToSaveAs, base64String, contentType) {\r\n\r\n if (!BrowserService.isBlobCompatible) {\r\n return;\r\n }\r\n\r\n var byteCharacters = atob(base64String);\r\n var byteArray = new Array(byteCharacters.length);\r\n\r\n for (var i = 0; i < byteCharacters.length; i++) {\r\n byteArray[i] = byteCharacters.charCodeAt(i);\r\n }\r\n var byteArrayInt = new Uint8Array(byteArray);\r\n\r\n\r\n var textFileAsBlob = new Blob([byteArrayInt], {\r\n type: contentType\r\n });\r\n\r\n BrowserService.saveBlob(document, textFileAsBlob, fileNameToSaveAs);\r\n\r\n }\r\n\r\n function _onClick() {\r\n _savePdfAsFile($scope.fileName, $scope.base64String, $scope.contentType);\r\n }\r\n\r\n element.on('click', _onClick);\r\n $scope.$on('$destroy', function () {\r\n element.off('click');\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n base64String: '@apSavePdfToFile',\r\n contentType: '@',\r\n fileName: '@'\r\n },\r\n link: link\r\n };\r\n }]);","angular.module('app').directive('apSaveStringToFile',\r\n ['BrowserService',\r\n function (BrowserService) {\r\n 'use strict';\r\n\r\n function link($scope, element) {\r\n function _saveTextAsFile(fileNameToSaveAs, textToWrite) {\r\n\r\n if (!BrowserService.isBlobCompatible) {\r\n return;\r\n }\r\n\r\n var textFileAsBlob = new Blob([textToWrite], {\r\n type: 'text/html; charset=utf-8'\r\n });\r\n\r\n BrowserService.saveBlob(document, textFileAsBlob, fileNameToSaveAs);\r\n }\r\n\r\n function _onClick() {\r\n $scope.loadText()\r\n .then(function (data) {\r\n if (data) {\r\n _saveTextAsFile($scope.fileName, data);\r\n }\r\n });\r\n }\r\n\r\n element.on('click', _onClick);\r\n $scope.$on('$destroy', function () {\r\n element.off('click');\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n loadText: '&apSaveStringToFile',\r\n fileName: '@'\r\n },\r\n link: link\r\n };\r\n }]);","angular.module('app').directive('apSelectFile',\r\n ['aprgettext', 'MimeTypeRepository', 'PatientSettingsService',\r\n function (gettext, MimeTypeRepository, PatientSettingsService) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/views/directives/apSelectFile.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n maxSizeKb: '=maxSizeKb',\r\n fileType: '=fileType',\r\n selectedFileName: '=selectedFileName',\r\n selectedFileContents: '=selectedFileContents',\r\n selectedMimeType: '=selectedMimeType',\r\n validationMessage: '=validationMessage',\r\n practiceForm:'=practiceForm',\r\n sending: '=sending'\r\n },\r\n\r\n controller: function($scope) {\r\n //var myInputElement = angular.element(element.find('#inputFile'));\r\n\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n var messageAttachmentConfig = featureList.PatientMessageAttachment;\r\n\r\n $scope.selectFileModel = {\r\n maxSizeKb: 0,\r\n mimeTypes: { Types: [] },\r\n allowableFileExtensions: ''\r\n };\r\n\r\n $scope.isSelectedFileMimeType = function isSelectedFileMimeType(selectedFile) {\r\n var isValid = false;\r\n\r\n _.forEach($scope.selectFileModel.mimeTypes, function(type) {\r\n if (type.MimeType.toUpperCase() === selectedFile.type.toUpperCase()) {\r\n isValid = true;\r\n return false; //break the loop\r\n }\r\n });\r\n\r\n if (!isValid) {\r\n $scope.validationMessage = gettext('An invalid file was selected. Only') + ' ' + $scope.selectFileModel.allowableFileExtensions + ' ' + gettext('files can be selected.');\r\n }\r\n\r\n return isValid;\r\n };\r\n\r\n\r\n $scope.isSelectedFileSizeValid = function isSelectedFileSizeValid(selectedFile) {\r\n var isValid = true;\r\n\r\n if (selectedFile.size > ($scope.selectFileModel.maxSizeKb * 1024)) {\r\n $scope.validationMessage = gettext('The selected file exceeds the maximum allowable size. Please select another file.') + ' (' + $scope.selectFileModel.maxSizeKb + ' KB)';\r\n isValid = false;\r\n }\r\n\r\n return isValid;\r\n };\r\n\r\n $scope.isSelectedFileExtensionValid = function isSelectedFileExtensionValid(selectedFile) {\r\n var isValid = false;\r\n var extension = selectedFile.name.toUpperCase().split('.');\r\n extension = '.' + extension[1];\r\n _.forEach($scope.selectFileModel.mimeTypes, function(type) {\r\n if (extension === type.FileExtension.toUpperCase()){\r\n isValid = true;\r\n return false; //break the loop\r\n }\r\n });\r\n\r\n return isValid;\r\n };\r\n\r\n\r\n\r\n\r\n $scope.inputFileOnchangeCallback = function inputFileOnchangeCallback(myEventArg) {\r\n $scope.validationMessage = '';\r\n $scope.selectedFileName = '';\r\n $scope.selectedFileContents = '';\r\n $scope.selectedMimeType = '';\r\n\r\n if (!myEventArg || !myEventArg.target) {\r\n $scope.validationMessage = gettext('Input element is not defined.');\r\n return;\r\n }\r\n\r\n var files = myEventArg.target.files;\r\n if (!files || files.length <= 0) {\r\n // User pressed the cancel button\r\n return;\r\n }\r\n\r\n var selectedFile = files[0];\r\n var myInputFileElement = myEventArg.target;\r\n\r\n if (!$scope.isSelectedFileExtensionValid(selectedFile)) {\r\n if (myInputFileElement) {\r\n myInputFileElement.value = null;\r\n }\r\n \r\n // IE11 FIX: Note, this line was moved here: it once resided in isSelectedFileExtensionValid, but IE11 would skip over the error message.\r\n $scope.validationMessage = gettext('An invalid file was selected. Only') + ' ' + $scope.selectFileModel.allowableFileExtensions + ' ' + gettext('files can be selected.');\r\n\r\n $scope.$apply();\r\n return;\r\n }\r\n\r\n if (!$scope.isSelectedFileMimeType(selectedFile)) {\r\n if (myInputFileElement) {\r\n myInputFileElement.value = null;\r\n }\r\n $scope.$apply();\r\n return;\r\n }\r\n\r\n if (!$scope.isSelectedFileSizeValid(selectedFile)) {\r\n if (myInputFileElement) {\r\n myInputFileElement.value = null;\r\n }\r\n\r\n // IE11 FIX: Note, this line was moved here: it once resided in isSelectedFileSizeValid, but IE11 would skip over the error message.\r\n $scope.validationMessage = gettext('The selected file exceeds the maximum allowable size. Please select another file.') + ' (' + $scope.selectFileModel.maxSizeKb + ' KB)';\r\n\r\n $scope.$apply();\r\n return;\r\n }\r\n\r\n\r\n\r\n $scope.selectedFileName = selectedFile.name;\r\n $scope.selectedMimeType = selectedFile.type;\r\n $scope.selectedFileContents = '';\r\n\r\n\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n if (e != null) {\r\n $scope.selectedFileContents = e.target.result;\r\n $scope.$apply();\r\n }\r\n };\r\n\r\n reader.readAsDataURL(selectedFile);\r\n\r\n $scope.$apply();\r\n\r\n\r\n\r\n };\r\n\r\n\r\n function loadMaxFileSize() {\r\n if ($scope.maxSizeKb && !isNaN($scope.maxSizeKb) && $scope.maxSizeKb <= messageAttachmentConfig.FileAttachmentConfig.MaxFileSizeKb) {\r\n $scope.selectFileModel.maxSizeKb = $scope.maxSizeKb;\r\n }\r\n else {\r\n $scope.selectFileModel.maxSizeKb = messageAttachmentConfig.FileAttachmentConfig.MaxFileSizeKb;\r\n }\r\n }\r\n\r\n\r\n function loadAllowableFileTypes() {\r\n if ($scope.fileType) {\r\n $scope.selectFileModel.allowableFileExtensions = $scope.fileType;\r\n }\r\n else {\r\n $scope.selectFileModel.allowableFileExtensions = messageAttachmentConfig.FileAttachmentConfig.AllowableFileExtensions;\r\n }\r\n\r\n if ($scope.selectFileModel.allowableFileExtensions) {\r\n var extensions = $scope.selectFileModel.allowableFileExtensions.split(',');\r\n\r\n _.forEach(extensions, function (ext) {\r\n $scope.selectFileModel.mimeTypes.Types.push(\r\n {\r\n FileExtension: ext.trim(),\r\n MimeType: ''\r\n });\r\n });\r\n\r\n MimeTypeRepository.getMimeTypeFromFileExtension($scope.selectFileModel.mimeTypes)\r\n .then(function (data) {\r\n $scope.selectFileModel.mimeTypes = data;\r\n })\r\n .catch(function () {\r\n $scope.validationMessage = gettext('Was not able to retrieve MIME type mappings.');\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n else {\r\n $scope.validationMessage = gettext('No file type criteria was supplied.');\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n function loadView() {\r\n $scope.loading = true;\r\n loadMaxFileSize();\r\n loadAllowableFileTypes();\r\n }\r\n loadView();\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('app').directive('apSelectImage',\r\n [\r\n function () {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/views/directives/apSelectImage.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n maxSizeKb: '=maxSizeKb',\r\n selectedFileName: '=selectedFileName',\r\n selectedMimeType: '=selectedMimeType',\r\n selectedFileContents: '=selectedFileContents'\r\n },\r\n\r\n controller: function($scope) {\r\n\r\n $scope.selectImageModel = {\r\n //maxSizeKb: $scope.maxSizeKb,\r\n //fileType : '', //'.bmp,.jpeg,.gif',\r\n selectedFileName: $scope.selectedFileName,\r\n selectedFileContents: $scope.selectedFileContents,\r\n selectedMimeType: $scope.selectedMimeType,\r\n validationMessage : ''\r\n };\r\n\r\n $scope.clearSelectedFile = function clearSelectedFile() {\r\n $scope.selectImageModel.selectedFileName = '';\r\n $scope.selectImageModel.selectedFileContents = '';\r\n $scope.selectImageModel.selectedMimeType = '';\r\n $scope.selectImageModel.validationMessage = '';\r\n };\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('app').directive('inputfileOnchange', [function(){\r\n 'use strict';\r\n return {\r\n scope: {\r\n callBack: '&inputfileOnchange'\r\n },\r\n link: function(scope, element){\r\n element.on('change', function(event){\r\n scope.callBack({myEventArg: event});\r\n });\r\n\r\n scope.$on('$destroy', function () {\r\n element.off('change');\r\n });\r\n }\r\n };\r\n}]);","angular.module('app').filter('apPatientPortalThumbnailSrc', [function () {\r\n 'use strict';\r\n return function (patientId, height, width) {\r\n if(!patientId) {\r\n // if the patientId is null or undefined, return undefined because a valid url can't be formed\r\n // and undefined can be handled accordingly\r\n return;\r\n }\r\n\r\n if(height && !width) {\r\n width = height;\r\n }\r\n\r\n var url = 'person/' + patientId + '/thumbnail';\r\n\r\n if(height) {\r\n url += '?height=' + height + '&width=' + width;\r\n }\r\n\r\n return url;\r\n };\r\n}]);\r\n","angular.module('app').factory('NotificationRepository',\r\n ['AprimaRestangular', function (AprimaRestangular) {\r\n 'use strict';\r\n\r\n function getNotifications (uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('notifications/patientportal/' + uid).get();\r\n }\r\n\r\n return{\r\n getNotifications: getNotifications\r\n };\r\n }]);","angular.module('app').factory('NotificationService',\r\n ['$rootScope', '$interval', '$log', 'LocalStorageRepository',\r\n function($rootScope, $interval, $log, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n var notificationPromise;\r\n\r\n function updateNotifications () {\r\n $log.log('updateNotifications - raising Notification:updated event - ' + moment().format('lll'));\r\n\r\n //$rootScope.$broadcast('Notification:updated', 'Notification event fired : ' + new Date());\r\n $rootScope.$broadcast('Notification:updated');\r\n }\r\n\r\n function startNotificationTimer() {\r\n $log.log('setupNotificationTimer - starting - ' + moment().format('lll'));\r\n\r\n if (!angular.isDefined(notificationPromise)) {\r\n $log.log('setupNotificationTimer - initializing notification timer');\r\n\r\n var timeoutInterval = LocalStorageRepository.getNotificationTimeout();\r\n if (typeof timeoutInterval === 'number') {\r\n if (timeoutInterval % 1 === 0) {\r\n if (timeoutInterval > 0 && timeoutInterval < 100) {\r\n timeoutInterval = timeoutInterval * 60000;\r\n notificationPromise = $interval(updateNotifications, timeoutInterval, 0, false);\r\n }\r\n }\r\n }\r\n\r\n if (angular.isDefined(notificationPromise)) {\r\n $log.log('setupNotificationTimer - notification timer started successfully. Timeout Interval is ' + timeoutInterval + ' milliseconds.');\r\n }\r\n else {\r\n $log.log('setupNotificationTimer - not able to start notification timer. Timeout Interval is >>' + timeoutInterval + '<<');\r\n }\r\n }\r\n else {\r\n $log.log('setupNotificationTimer - notification timer already initialized');\r\n }\r\n\r\n $log.log('setupNotificationTimer - ending');\r\n }\r\n\r\n function stopNotificationTimer() {\r\n $log.log('stopNotificationTimer - starting - ' + moment().format('lll'));\r\n\r\n if (angular.isDefined(notificationPromise)) {\r\n $interval.cancel(notificationPromise);\r\n notificationPromise = undefined;\r\n $log.log('stopNotificationTimer - timer stopped');\r\n }\r\n\r\n $log.log('stopNotificationTimer - ending');\r\n }\r\n\r\n $rootScope.$on('$destroy', function() {\r\n stopNotificationTimer();\r\n });\r\n\r\n\r\n return {\r\n updateNotifications: updateNotifications,\r\n startNotificationTimer: startNotificationTimer,\r\n stopNotificationTimer: stopNotificationTimer\r\n };\r\n }\r\n ]);","angular.module('app').directive('apDesktopRuler', [\r\n function () {\r\n 'use strict';\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/partials/desktopRuler/views/apDesktopRuler.html',\r\n scope: true,\r\n transclude: false,\r\n link: function () {\r\n\r\n function onLoad() {\r\n }\r\n\r\n onLoad();\r\n }\r\n };\r\n }]);","angular.module('app').directive('apFooter',\r\n [\r\n 'SessionService',\r\n 'LocalStorageRepository', \r\n '$uibModal', \r\n 'ConsentRepository', \r\n 'aprgettext', \r\n 'TransitionManager',\r\n 'BrowserService',\r\n function (\r\n SessionService, \r\n LocalStorageRepository, \r\n $modal, \r\n ConsentRepository, \r\n gettext, \r\n TransitionManager,\r\n BrowserService\r\n ) {\r\n 'use strict';\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/partials/footer/views/apFooter.html',\r\n scope: true,\r\n transclude: false,\r\n link: function (scope) {\r\n\r\n scope.apFooter = {\r\n PatientAuthenticated: SessionService.getPatientAuthenticated()\r\n };\r\n\r\n function contactUs() {\r\n TransitionManager.transition({appRoute: 'contactus'});\r\n }\r\n\r\n function viewPracticeTerms() {\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/modals/practicetermsmodal.html',\r\n controller: 'PracticeTermsModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {}\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n });\r\n }\r\n\r\n function viewPrivacyPolicy() {\r\n scope.isModalDisplayed = true;\r\n\r\n var modalConfig = {\r\n Title: gettext('Privacy Policy'),\r\n DocumentId: 'privacypolicy',\r\n DocumentLoad: getPrivacyPolicy,\r\n DocumentDownload: downloadPrivacyPolicy,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n scope.isModalDisplayed = false;\r\n });\r\n }\r\n\r\n function viewApiDocumentation() {\r\n scope.isModalDisplayed = true;\r\n\r\n var modalConfig = {\r\n Title: gettext('API Documentation'),\r\n DocumentId: 'apidocumentation',\r\n DocumentLoad: getApiDocumentation,\r\n DocumentDownload: downloadApiDocumentation,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n ClientID: LocalStorageRepository.getClientID() || '',\r\n ClientURL: LocalStorageRepository.getClientURL() || '',\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewApiDocumentModal.html',\r\n controller: 'ViewApiDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n scope.isModalDisplayed = false;\r\n });\r\n }\r\n\r\n function viewApiDocumentationGatekeeper() {\r\n scope.isModalDisplayed = true;\r\n\r\n var modalConfig = {\r\n Title: gettext('API Documentation Disclaimer'),\r\n DisplayAPIDocumentationModal: viewApiDocumentation,\r\n PatientAuthenticated: scope.apFooter.PatientAuthenticated,\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/modals/apidocumentationgatekeepermodal.html',\r\n controller: 'ApiDocumentationGatekeeperModalCtrl',\r\n windowClass: 'modal-lg',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (data) {\r\n scope.isModalDisplayed = false;\r\n if (data === 'ok') {\r\n viewApiDocumentation();\r\n }\r\n });\r\n }\r\n\r\n function getPrivacyPolicy() {\r\n return ConsentRepository.downloadAgreementPrivacyPolicy();\r\n }\r\n\r\n function downloadPrivacyPolicy(){\r\n return ConsentRepository.downloadAgreementPrivacyPolicy()\r\n .then(function (data) {\r\n return {Data: data.Data, FileName: 'PrivacyPolicy', Extension: 'pdf'};\r\n });\r\n }\r\n\r\n function getApiDocumentation() {\r\n return ConsentRepository.downloadApiDocumentation();\r\n }\r\n\r\n function downloadApiDocumentation() {\r\n return ConsentRepository.downloadApiDocumentation()\r\n .then(function (data) {\r\n return {Data: data.Data, FileName: 'APIPatientDocumentation', Extension: 'pdf'};\r\n });\r\n }\r\n\r\n var patientAuthenticatedListener = scope.$on('PatientAuthenticated:updated', function (event, data) {\r\n scope.apFooter.PatientAuthenticated = data;\r\n });\r\n\r\n scope.$on('$destroy', function () {\r\n patientAuthenticatedListener();\r\n });\r\n\r\n scope.contactUs = contactUs;\r\n scope.viewPrivacyPolicy = viewPrivacyPolicy;\r\n scope.viewPracticeTerms = viewPracticeTerms;\r\n scope.viewApiDocumentationGatekeeper = viewApiDocumentationGatekeeper;\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('app').directive('apHeader', ['aprgettext', 'LogOffService', 'TransitionManager', 'SessionService', 'PatientPortalStorageRepository', 'NotificationService', '$rootScope', '$log', 'ContentAttributeService',\r\n function (gettext, LogOffService, TransitionManager, SessionService, PatientPortalStorageRepository, NotificationService, $rootScope, $log, ContentAttributeService) {\r\n 'use strict';\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/partials/header/views/apHeader.html',\r\n scope: true,\r\n transclude: false,\r\n link: function (scope) {\r\n\r\n function getPracticeName() {\r\n ContentAttributeService.getPracticeName(false)\r\n .then(function(data) {\r\n scope.apHeader.practiceName = data;\r\n });\r\n }\r\n\r\n function onLoad() {\r\n scope.openmenu = false;\r\n \r\n var loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n activePatient = PatientPortalStorageRepository.getActivePatient();\r\n\r\n scope.apHeader = {\r\n loginUserFullName: loginUser.fullName,\r\n activePatientId: activePatient.id,\r\n activePatientFullName: activePatient.fullName,\r\n patientAuthenticated: SessionService.getPatientAuthenticated(),\r\n showHeaderNavigationMenu: SessionService.getShowHeaderNavigationMenu(),\r\n responsibleParties: PatientPortalStorageRepository.getActiveResponsibleParties(),\r\n get hasResponsibleParties() {\r\n return (typeof this.responsibleParties === 'object') && (this.responsibleParties.length > 0);\r\n },\r\n practiceName: ''\r\n };\r\n\r\n getPracticeName();\r\n\r\n $rootScope.$broadcast('HeaderData:requested');\r\n }\r\n\r\n function signOff() {\r\n $log.info('User has selected the Sign Out option from the header drop down menu.');\r\n\r\n LogOffService.logoff().then(function () {\r\n SessionService.setPatientAuthenticated(false);\r\n TransitionManager.transition({appRoute: 'signout'});\r\n });\r\n }\r\n\r\n function toggleMobileNav() {\r\n SessionService.setShowMobileNav(!SessionService.getShowMobileNav());\r\n }\r\n\r\n function setActivePatient(patient) {\r\n PatientPortalStorageRepository.setActivePatient(patient.Id, patient.FirstName, patient.LastName, patient.IsPatient);\r\n NotificationService.updateNotifications();\r\n onLoad();\r\n\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n }\r\n\r\n scope.updateNotifications = function() {\r\n NotificationService.updateNotifications();\r\n };\r\n\r\n //\r\n //scope.startNotificationTimer = function() {\r\n // NotificationService.startNotificationTimer();\r\n //};\r\n //\r\n //scope.stopNotificationTimer = function() {\r\n // NotificationService.stopNotificationTimer();\r\n //};\r\n\r\n var patientAuthenticatedListener = scope.$on('PatientAuthenticated:updated', function (event, data) {\r\n scope.apHeader.PatientAuthenticated = data;\r\n scope.apHeader.LoginUserFullName = PatientPortalStorageRepository.getLoginUser().fullName;\r\n });\r\n\r\n var showHeaderMenuListener = scope.$on('ShowHeaderNavigationMenu:updated', function (event, data) {\r\n scope.apHeader.ShowHeaderNavigationMenu = data;\r\n });\r\n \r\n var headerDataListener = $rootScope.$on('HeaderData:requested', function(event, requestor) {\r\n var headerData = {\r\n loginUserFullName: scope.apHeader.loginUserFullName,\r\n activePatientId: scope.apHeader.activePatientId,\r\n activePatientFullName: scope.apHeader.activePatientFullName,\r\n responsibleParties: scope.apHeader.responsibleParties,\r\n hasResponsibleParties: scope.apHeader.hasResponsibleParties,\r\n requestor: requestor\r\n };\r\n $rootScope.$broadcast('HeaderData:updated', headerData);\r\n });\r\n \r\n var responsiblePartyListener = $rootScope.$on('ResponsibleParty:updated', function(event, patientId) {\r\n var patient = _.find(scope.apHeader.responsibleParties, { Id: patientId });\r\n if(patient)\r\n setActivePatient(patient); \r\n });\r\n\r\n scope.$on('$destroy', function () {\r\n patientAuthenticatedListener();\r\n showHeaderMenuListener();\r\n headerDataListener();\r\n responsiblePartyListener();\r\n });\r\n\r\n onLoad();\r\n\r\n scope.signOff = signOff;\r\n scope.setActivePatient = setActivePatient;\r\n scope.toggleMobileNav = toggleMobileNav;\r\n }\r\n };\r\n }]);","angular.module('app').directive('apMobileNav', ['$rootScope','$transitions', 'AppRoutes', 'NotificationRepository', 'LocalStorageRepository', 'SessionService', 'GuidList', 'PatientSettingsService', 'NotificationService', 'TransitionManager', 'LogOffService',\r\n function ($rootScope, $transitions, AppRoutes, NotificationRepository, LocalStorageRepository, SessionService, GuidList, PatientSettingsService, NotificationService, TransitionManager, LogOffService) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/partials/mobileNav/views/apMobileNav.html',\r\n scope: true,\r\n transclude: false,\r\n link: function (scope) {\r\n scope.notifications = {\r\n Welcome: { BadgeCount: 0, IsActive: true},\r\n Chart: { BadgeCount: 0, IsActive: true},\r\n Messages: { BadgeCount: 0, IsActive: true},\r\n Forms: { BadgeCount: 0, IsActive: true},\r\n Prescriptions: { BadgeCount: 0, IsActive: true},\r\n Appointments: { BadgeCount: 0, IsActive: true},\r\n Billing: { BadgeCount: 0, IsActive: true},\r\n Doctors: { BadgeCount: 0, IsActive: true}\r\n };\r\n\r\n scope.showMobileNav = SessionService.getShowMobileNav();\r\n \r\n scope.headerData = {\r\n };\r\n\r\n scope.transitionAndCloseNav = function(transition) {\r\n TransitionManager.transition(transition);\r\n SessionService.setShowMobileNav(false);\r\n };\r\n\r\n scope.signOff = function() {\r\n LogOffService.logoff().then(function() {\r\n TransitionManager.transition({appRoute: 'login'});\r\n SessionService.setPatientAuthenticated(false);\r\n SessionService.setShowMobileNav(false);\r\n });\r\n };\r\n \r\n scope.setActivePatient = function(patientId) {\r\n $rootScope.$broadcast('ResponsibleParty:updated', patientId); \r\n SessionService.setShowMobileNav(false);\r\n };\r\n\r\n function getNotifications() {\r\n NotificationRepository\r\n .getNotifications(LocalStorageRepository.getUserID())\r\n .then(function (notifications) {\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n\r\n scope.notifications.Chart.BadgeCount = _.find(notifications, {NotificationType: 'Chart'}).Count;\r\n\r\n scope.notifications.Messages.BadgeCount = _.find(notifications, {NotificationType: 'Messages'}).Count;\r\n scope.notifications.Messages.IsActive = featureList.SendReceiveMessages.IsActive;\r\n\r\n scope.notifications.Forms.BadgeCount = _.find(notifications, {NotificationType: 'Forms'}).Count;\r\n scope.notifications.Forms.IsActive = featureList.ViewEducationMaterial.IsActive;\r\n\r\n scope.notifications.Prescriptions.BadgeCount = _.find(notifications, {NotificationType: 'Prescriptions'}).Count;\r\n scope.notifications.Prescriptions.IsActive = featureList.RequestRxRefills.IsActive;\r\n\r\n scope.notifications.Appointments.BadgeCount = _.find(notifications, {NotificationType: 'Appointments'}).Count;\r\n scope.notifications.Appointments.IsActive = featureList.ViewAppointments.IsActive;\r\n\r\n scope.notifications.Billing.BadgeCount = _.find(notifications, {NotificationType: 'Billing'}).Count;\r\n scope.notifications.Billing.IsActive = (featureList.ViewPatientStatement.IsActive || featureList.ViewPatientLedger.IsActive || featureList.MakeAPayment.IsActive);\r\n\r\n scope.notifications.Doctors.BadgeCount = _.find(notifications, {NotificationType: 'Doctors'}).Count;\r\n });\r\n }\r\n getNotifications();\r\n\r\n var responsiblePartyDataListener = $rootScope.$on('HeaderData:updated', function(event, data) {\r\n if(!(data && (data.requestor || 'apMobileNav') !== 'apMobileNav'))\r\n scope.headerData = data;\r\n });\r\n\r\n function loadMobileNav() {\r\n $rootScope.$broadcast('HeaderData:requested', 'apMobileNav');\r\n NotificationService.startNotificationTimer();\r\n }\r\n loadMobileNav();\r\n\r\n //var notificationListener = scope.$on('Notification:updated', function (event, data) {\r\n var notificationListener = scope.$on('Notification:updated', function () {\r\n getNotifications();\r\n });\r\n\r\n var stateChangeListener = $transitions.onSuccess({}, function onTransitionSuccess(transition) {\r\n var toState = transition.targetState() || {};\r\n var toStateName = toState && toState.name() || '';\r\n var appRoute = AppRoutes.findByStateName(toStateName);\r\n scope.toolbarItem = (appRoute && appRoute.portalSettings && appRoute.portalSettings.toolbarItem);\r\n });\r\n\r\n var showMobileNavListener = scope.$on('ShowMobileNav:updated', function(event, data) {\r\n scope.showMobileNav = data;\r\n });\r\n\r\n scope.$on('$destroy', function () {\r\n notificationListener();\r\n stateChangeListener();\r\n showMobileNavListener();\r\n responsiblePartyDataListener();\r\n NotificationService.stopNotificationTimer();\r\n });\r\n }\r\n };\r\n}]);\r\n","angular.module('app').directive('apToolbar', ['$rootScope', '$transitions', 'AppRoutes', 'NotificationRepository', 'GuidList', 'PatientSettingsService', 'NotificationService', 'PatientPortalStorageRepository', 'TransitionManager',\r\n function ($rootScope, $transitions, AppRoutes, NotificationRepository, GuidList, PatientSettingsService, NotificationService, PatientPortalStorageRepository, TransitionManager) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/app/partials/toolbar/views/apToolbar.html',\r\n scope: true,\r\n transclude: false,\r\n link: function (scope) {\r\n\r\n scope.blankToolbar = {\r\n IsActive: false,\r\n BackToHome: { IsActive: false}\r\n };\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n scope.notifications = {\r\n Welcome: { BadgeCount: 0, IsActive: true},\r\n Chart: { BadgeCount: 0, IsActive: true},\r\n Messages: { BadgeCount: 0, IsActive: featureList.SendReceiveMessages.IsActive},\r\n Forms: { BadgeCount: 0, IsActive: true},\r\n Prescriptions: { BadgeCount: 0, IsActive: featureList.RequestRxRefills.IsActive},\r\n Appointments: { BadgeCount: 0, IsActive: featureList.ViewAppointments.IsActive},\r\n Billing: { BadgeCount: 0, IsActive: (featureList.ViewPatientStatement.IsActive || featureList.ViewPatientLedger.IsActive || featureList.MakeAPayment)},\r\n Doctors: { BadgeCount: 0, IsActive: false} // TODO - Implement Doctor pages\r\n };\r\n\r\n function getNotifications() {\r\n if (!!$rootScope.hideToolbar) {\r\n return;\r\n }\r\n\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n if (activePatientId) {\r\n NotificationRepository\r\n .getNotifications(activePatientId)\r\n .then(function (notifications) {\r\n featureList = PatientSettingsService.getPatientFeatures();\r\n\r\n scope.notifications.Chart.BadgeCount = _.find(notifications, {NotificationType: 'Chart'}).Count;\r\n\r\n scope.notifications.Messages.BadgeCount = _.find(notifications, {NotificationType: 'Messages'}).Count;\r\n scope.notifications.Messages.IsActive = featureList.SendReceiveMessages.IsActive;\r\n\r\n scope.notifications.Forms.BadgeCount = _.find(notifications, {NotificationType: 'Forms'}).Count; \r\n scope.notifications.Forms.IsActive = true;\r\n\r\n scope.notifications.Prescriptions.BadgeCount = _.find(notifications, {NotificationType: 'Prescriptions'}).Count;\r\n scope.notifications.Prescriptions.IsActive = featureList.RequestRxRefills.IsActive;\r\n\r\n scope.notifications.Appointments.BadgeCount = _.find(notifications, {NotificationType: 'Appointments'}).Count;\r\n scope.notifications.Appointments.IsActive = featureList.ViewAppointments.IsActive;\r\n\r\n scope.notifications.Billing.BadgeCount = _.find(notifications, {NotificationType: 'Billing'}).Count;\r\n scope.notifications.Billing.IsActive = (featureList.ViewPatientStatement.IsActive || featureList.ViewPatientLedger.IsActive || featureList.MakeAPayment.IsActive);\r\n\r\n scope.notifications.Doctors.BadgeCount = _.find(notifications, {NotificationType: 'Doctors'}).Count;\r\n });\r\n }\r\n }\r\n\r\n getNotifications();\r\n\r\n function loadToolbar() {\r\n if (!!$rootScope.hideToolbar) {\r\n return;\r\n }\r\n NotificationService.startNotificationTimer();\r\n }\r\n\r\n loadToolbar();\r\n\r\n //var notificationListener = scope.$on('Notification:updated', function (event, data) {\r\n var notificationListener = scope.$on('Notification:updated', function () {\r\n getNotifications();\r\n });\r\n\r\n var stateChangeListener = $transitions.onSuccess({}, function onTransitionSuccess(transition) {\r\n var toState = transition.targetState() || {};\r\n var toStateName = toState && toState.name() || '';\r\n var appRoute = AppRoutes.findByStateName(toStateName);\r\n scope.toolbarItem = (appRoute && appRoute.portalSettings && appRoute.portalSettings.toolbarItem);\r\n\r\n if (scope.toolbarItem === 'blank') {\r\n _.forEach(scope.notifications, function (toolbarButton) {\r\n toolbarButton.IsActive = false;\r\n });\r\n\r\n scope.blankToolbar.IsActive = true;\r\n scope.blankToolbar.BackToHome.IsActive = true;\r\n }\r\n else {\r\n if (scope.blankToolbar.IsActive) {\r\n resetToolbarState();\r\n }\r\n }\r\n });\r\n\r\n scope.$on('$destroy', function () {\r\n notificationListener();\r\n stateChangeListener();\r\n NotificationService.stopNotificationTimer();\r\n });\r\n\r\n\r\n function resetToolbarState() {\r\n scope.blankToolbar.IsActive = false;\r\n scope.blankToolbar.BackToHome.IsActive = false;\r\n\r\n scope.notifications.Welcome.IsActive = true;\r\n scope.notifications.Chart.IsActive = true;\r\n scope.notifications.Doctors.IsActive = false;\r\n\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n scope.notifications.Messages.IsActive = featureList.SendReceiveMessages.IsActive;\r\n scope.notifications.Forms.IsActive = true;\r\n scope.notifications.Prescriptions.IsActive = featureList.RequestRxRefills.IsActive;\r\n scope.notifications.Appointments.IsActive = featureList.ViewAppointments.IsActive;\r\n scope.notifications.Billing.IsActive = (featureList.ViewPatientStatement.IsActive || featureList.ViewPatientLedger.IsActive || featureList.MakeAPayment);\r\n }\r\n\r\n\r\n function backToHome() {\r\n //getNotifications();\r\n resetToolbarState();\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n }\r\n\r\n function navigateToChart() {\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n var targetAppRoute;\r\n var opts = {\r\n id: activePatientId,\r\n };\r\n if (featureList.ViewClinicalSummary.IsActive) {\r\n targetAppRoute = 'myChartVisitSummary';\r\n } else if (featureList.ViewMedicalHistory.IsActive) {\r\n targetAppRoute = 'myChartProblems';\r\n } else if (featureList.ViewMedications.IsActive) {\r\n targetAppRoute = 'myChartPrescriptions';\r\n } else if (featureList.ViewProcedures.IsActive) {\r\n targetAppRoute = 'myChartProcedures';\r\n } else if (featureList.ViewLabTestResults.IsActive) {\r\n targetAppRoute = 'myChartLabResults';\r\n } else if (featureList.ViewImmunizations.IsActive) {\r\n targetAppRoute = 'myChartImmunizations';\r\n } else if (featureList.ViewEducationMaterial.IsActive) {\r\n targetAppRoute = 'myChartReferenceMaterial';\r\n } else if (featureList.ViewMedicationAllergies.IsActive) {\r\n targetAppRoute = 'myChartMedicationAllergies';\r\n } else {\r\n targetAppRoute = 'myChartPersonalDetails';\r\n }\r\n\r\n TransitionManager.transition({\r\n appRoute: targetAppRoute,\r\n opts: opts,\r\n });\r\n }\r\n\r\n scope.backToHome = backToHome;\r\n scope.navigateToChart = navigateToChart;\r\n\r\n }\r\n };\r\n }]);","angular.module('app').factory('ContentAttributeRepository',\r\n ['AprimaRestangular',\r\n function(AprimaRestangular) {\r\n 'use strict';\r\n\r\n function getContentAttributes(clientId) {\r\n var params = {\r\n ClientId: clientId\r\n };\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('login/Content-Attributes/').get(params);\r\n }\r\n\r\n return {\r\n getContentAttributes: getContentAttributes\r\n };\r\n }]);","angular.module('app').factory('ContentAttributeService',\r\n ['ContentAttributeRepository', 'LocalStorageRepository', '$q', 'AppId', 'UrlParsingService', '$location',\r\n function(ContentAttributeRepository, LocalStorageRepository, $q, AppId, UrlParsingService, $location) {\r\n 'use strict';\r\n\r\n var contentAttributes = null;\r\n\r\n function getAttributeValue(id) {\r\n if (!contentAttributes) {\r\n return '';\r\n }\r\n\r\n var attributeValue = _.filter(contentAttributes, function(attribute) {\r\n return attribute.Id.toLowerCase() === id.toLowerCase();\r\n });\r\n return attributeValue[0].Value;\r\n }\r\n\r\n function loadContentAttributes() {\r\n var clientId = LocalStorageRepository.getClientID();\r\n var clientURL = LocalStorageRepository.getClientURL();\r\n\r\n if (!clientId || !clientURL) {\r\n return $q.when();\r\n }\r\n\r\n return ContentAttributeRepository\r\n .getContentAttributes(clientId)\r\n .then(function (data) {\r\n contentAttributes = data;\r\n return;\r\n });\r\n }\r\n\r\n function getPracticeInfo(forceRefresh) {\r\n if (!contentAttributes || forceRefresh) {\r\n var promise = loadContentAttributes()\r\n .then(function() {\r\n return createPracticeInfo();\r\n });\r\n return promise;\r\n }\r\n\r\n return $q.when(createPracticeInfo());\r\n\r\n function createPracticeInfo() {\r\n return {\r\n practiceName: getAttributeValue(AppId.PracticeName),\r\n practiceTagline: getAttributeValue(AppId.PracticeTagline),\r\n };\r\n }\r\n }\r\n\r\n function getPracticeName(forceRefresh) {\r\n return getPracticeInfo(forceRefresh).then(function(practiceInfo) {\r\n return practiceInfo.practiceName;\r\n });\r\n }\r\n\r\n function getMessageSubHeading(forceRefresh) {\r\n if (!contentAttributes || forceRefresh) {\r\n var promise = loadContentAttributes()\r\n .then(function() {\r\n return getAttributeValue(AppId.MessageSubHeader);\r\n });\r\n return promise;\r\n }\r\n\r\n return $q.when(getAttributeValue(AppId.MessageSubHeader));\r\n }\r\n\r\n function getClientConfig() {\r\n return UrlParsingService.parsePortalUrl('/portal/');\r\n }\r\n\r\n function getPaymentRedirectUrl() {\r\n var absPath = $location.absUrl(),\r\n partial = $location.path(),\r\n newPartial = '/transactionComplete/';\r\n var redirectUrl = absPath.replace(partial, newPartial);\r\n return redirectUrl;\r\n }\r\n\r\n return {\r\n loadContentAttributes: loadContentAttributes,\r\n getPracticeInfo: getPracticeInfo,\r\n getPracticeName: getPracticeName,\r\n getMessageSubHeading: getMessageSubHeading,\r\n getClientConfig: getClientConfig,\r\n getPaymentRedirectUrl: getPaymentRedirectUrl,\r\n };\r\n\r\n }]);","angular.module('app').factory('GatewayFactory',\r\n ['Restangular', 'LoginFactory', 'LocalStorageRepository', 'configuration', '$q', '$qHelpers', 'aprgettext',\r\n function (Restangular, LoginFactory, LocalStorageRepository, configuration, $q, $qHelpers, gettext) {\r\n 'use strict';\r\n\r\n var gateways = _(configuration.GATEWAYS).map(function (gateway) {\r\n var restangular = Restangular.withConfig(function () {\r\n });\r\n\r\n restangular.setBaseUrl(gateway.url);\r\n restangular.setDefaultHeaders({\r\n 'ApiKey': configuration.API_KEY\r\n });\r\n\r\n return {\r\n prefix: gateway.prefix,\r\n restangular: restangular\r\n };\r\n });\r\n\r\n function getServerUrl(clientId, gatewayPrefix) {\r\n var clientUrl = LocalStorageRepository.getClientURL();\r\n// var clientUrl = 'http://MobileAppService:8000';\r\n// LocalStorageRepository.setClientURL(clientUrl);\r\n\r\n if (clientUrl) {\r\n var deferred = $q.defer();\r\n deferred.resolve(clientUrl);\r\n return deferred.promise;\r\n }\r\n else {\r\n var filteredGateways = gateways;\r\n\r\n if (gatewayPrefix) {\r\n filteredGateways = filteredGateways.filter(function (gateway) {\r\n return gateway.prefix === gatewayPrefix;\r\n });\r\n\r\n if (!filteredGateways.some()) {\r\n return $q.reject(new Error(gettext('Gateway prefix is not recognized.')));\r\n }\r\n }\r\n\r\n var gatewayRequests = filteredGateways.map(function (gateway) {\r\n return gateway.restangular.one('home', clientId).get();\r\n }).map(function (promise) {\r\n return $qHelpers.timeout(promise, 5000);\r\n }).value();\r\n\r\n return $qHelpers\r\n .whenFirstSuccess(gatewayRequests)\r\n .then(function (serverInfo) {\r\n LocalStorageRepository.setClientURL(serverInfo.AppServerUrl);\r\n return serverInfo.AppServerUrl;\r\n }, function (response) {\r\n return $q.reject(new Error(gettext('Gateway connection error') + ' (' + response.status + ')'));\r\n });\r\n }\r\n }\r\n\r\n function login(clientId, username, password, gatewayPrefix, userId) {\r\n if (!configuration.DEV_HOSTED) {\r\n var url = LocalStorageRepository.getClientURL();\r\n return loginWithUrl(url);\r\n }\r\n\r\n return getServerUrl(clientId, gatewayPrefix)\r\n .then(loginWithUrl);\r\n\r\n function loginWithUrl(url) {\r\n updateLocalStorage(clientId, url);\r\n return LoginFactory.postLogin(url, clientId, username, password, userId, configuration.CLIENT_FEATURES);\r\n }\r\n }\r\n\r\n function identityTokenLogin(clientId, token, gatewayPrefix) {\r\n if (!configuration.DEV_HOSTED) {\r\n var url = LocalStorageRepository.getClientURL();\r\n return loginWithUrl(url);\r\n }\r\n\r\n return getServerUrl(clientId, gatewayPrefix)\r\n .then(loginWithUrl);\r\n\r\n function loginWithUrl(url) {\r\n updateLocalStorage(clientId, url);\r\n return LoginFactory.postIdentityTokenLogin(url, clientId, token, configuration.CLIENT_FEATURES);\r\n }\r\n }\r\n\r\n function tokenLogin(clientId, gatewayPrefix, token) {\r\n if (!configuration.DEV_HOSTED) {\r\n var url = LocalStorageRepository.getClientURL();\r\n return loginWithUrl(url);\r\n }\r\n\r\n return getServerUrl(clientId, gatewayPrefix)\r\n .then(loginWithUrl);\r\n\r\n function loginWithUrl(url) {\r\n updateLocalStorage(clientId, url);\r\n return LoginFactory.postTokenLogin(url, clientId, token);\r\n }\r\n }\r\n\r\n function loginStatementsOnly(clientId, birthDate, zipCode, accessCode, phoneNumber, gatewayPrefix ) {\r\n if (!configuration.DEV_HOSTED) {\r\n var url = LocalStorageRepository.getClientURL();\r\n return loginStatementsOnlyWithUrl(url);\r\n }\r\n\r\n return getServerUrl(clientId, gatewayPrefix)\r\n .then(loginStatementsOnlyWithUrl);\r\n\r\n function loginStatementsOnlyWithUrl(url) {\r\n updateLocalStorage(clientId, url);\r\n LocalStorageRepository.setAccessCode(accessCode);\r\n return LoginFactory.postStatementsLogin(url, clientId, birthDate, zipCode, accessCode, phoneNumber, configuration.CLIENT_FEATURES);\r\n }\r\n }\r\n\r\n function updateLocalStorage(clientId, url) {\r\n LocalStorageRepository.clearAll();\r\n LocalStorageRepository.setClientURL(url);\r\n LocalStorageRepository.setClientID(clientId);\r\n }\r\n\r\n function callPARRedirectUrl(username) {\r\n return LoginFactory.callPARRedirectUrl(username);\r\n }\r\n\r\n function callIdentityLogoutRedirectUrl() {\r\n return LoginFactory.callIdentityLogoutRedirectUrl();\r\n }\r\n\r\n function routeUsername(clientId, username, gatewayPrefix) {\r\n if (!configuration.DEV_HOSTED) {\r\n var url = LocalStorageRepository.getClientURL();\r\n return routeWithUrl(url);\r\n }\r\n\r\n return getServerUrl(clientId, gatewayPrefix)\r\n .then(routeWithUrl);\r\n\r\n function routeWithUrl(url) {\r\n updateLocalStorage(clientId, url);\r\n return LoginFactory.postRouteUsername(clientId, username);\r\n }\r\n }\r\n\r\n function register(clientId, username, password, gatewayPrefix) {\r\n if (!configuration.DEV_HOSTED) {\r\n var url = LocalStorageRepository.getClientURL();\r\n return registerWithUrl(url);\r\n }\r\n\r\n return getServerUrl(clientId, gatewayPrefix)\r\n .then(registerWithUrl);\r\n\r\n function registerWithUrl(url) {\r\n updateLocalStorage(clientId, url);\r\n return LoginFactory.postRegister(clientId, username, password, configuration.CLIENT_FEATURES);\r\n }\r\n }\r\n\r\n function confirm(clientId, personId, dateOfBirth, emailAddress, username, gatewayPrefix) {\r\n if (!configuration.DEV_HOSTED) {\r\n var url = LocalStorageRepository.getClientURL();\r\n return confirmWithUrl(url);\r\n }\r\n\r\n return getServerUrl(clientId, gatewayPrefix)\r\n .then(confirmWithUrl);\r\n\r\n function confirmWithUrl(url) {\r\n updateLocalStorage(clientId, url);\r\n return LoginFactory.postConfirm(clientId, personId, dateOfBirth, emailAddress, username);\r\n }\r\n }\r\n\r\n return {\r\n login: login,\r\n tokenLogin: tokenLogin,\r\n identityTokenLogin: identityTokenLogin,\r\n loginStatementsOnly : loginStatementsOnly,\r\n callPARRedirectUrl: callPARRedirectUrl,\r\n callIdentityLogoutRedirectUrl: callIdentityLogoutRedirectUrl,\r\n routeUsername: routeUsername,\r\n register: register,\r\n confirm: confirm\r\n };\r\n }]);\r\n\r\n","angular.module('app').factory('LoginAssistanceRepository',\r\n ['NgxLoginAssistanceRepository', function (NgxLoginAssistanceRepository) {\r\n 'use strict';\r\n\r\n function getLoginAssistanceInformation (clientId) {\r\n return NgxLoginAssistanceRepository.getLoginAssistanceInformation({ ClientId: clientId }).toPromise();\r\n }\r\n\r\n return{\r\n getLoginAssistanceInformation: getLoginAssistanceInformation\r\n };\r\n }]);","angular.module('app').factory('LoginFactory',\r\n ['AprimaRestangular', '$q', 'Bridge', 'LocalStorageRepository', 'VersionService', '$log', 'ServerInfoRepository', 'aprgettext','PatientSettingsService', 'SessionService','DashboardService', 'PatientPortalStorageRepository', 'AprimaCache',\r\n function (AprimaRestangular, $q, Bridge, LocalStorageRepository, VersionService, $log, ServerInfoRepository, gettext, PatientSettingsService, SessionService, DashboardService, PatientPortalStorageRepository, AprimaCache) {\r\n 'use strict';\r\n\r\n var loginErrorCodes = {\r\n UnknownError: 1,\r\n InvalidRequest: 2,\r\n UnknownClientId: 4,\r\n LoginFailed: 8,\r\n NotMobileUser: 16,\r\n InactiveUser: 32,\r\n NotAllowedToLogin: 64,\r\n PrmVersionUnsupported: 128,\r\n MultipleUserAccounts: 256,\r\n };\r\n\r\n function updateVersionInfo(userLoginInfo) {\r\n if (userLoginInfo && userLoginInfo.ProductVersions) {\r\n if (userLoginInfo.ProductVersions.PrmAssemblyVersion) {\r\n ServerInfoRepository.setPrmAssemblyVersion(userLoginInfo.ProductVersions.PrmAssemblyVersion);\r\n }\r\n if (userLoginInfo.ProductVersions.PrmDatabaseVersion) {\r\n ServerInfoRepository.setPrmDatabaseVersion(userLoginInfo.ProductVersions.PrmDatabaseVersion);\r\n }\r\n if (userLoginInfo.ProductVersions.PrmDatabaseBuild) {\r\n ServerInfoRepository.setPrmDatabaseBuild(userLoginInfo.ProductVersions.PrmDatabaseBuild);\r\n }\r\n if (userLoginInfo.ProductVersions.AppServiceVersion) {\r\n ServerInfoRepository.setMobileAssemblyVersion(userLoginInfo.ProductVersions.AppServiceVersion);\r\n }\r\n if(userLoginInfo.SupportedFeatures) {\r\n ServerInfoRepository.setSupportedFeatures(userLoginInfo.SupportedFeatures);\r\n }\r\n }\r\n }\r\n\r\n var postStatementsLogin = function (clientURL, _clientId, _birthdate, _zipcode, _accessCode, _phoneNumber, clientFeatures) {\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('statements-login').customPOST({\r\n BirthDate: _birthdate,\r\n ZipCode: _zipcode,\r\n ClientId: _clientId,\r\n DeviceId: LocalStorageRepository.getDeviceId(),\r\n AccessCode: _accessCode,\r\n PhoneNumber: _phoneNumber,\r\n ClientFeatures : clientFeatures\r\n })\r\n .then(function (userLoginInfo) {\r\n var authToken = userLoginInfo.JsonWebToken,\r\n msg;\r\n\r\n return VersionService.checkVersions(userLoginInfo).then(function (validationSuccesful) {\r\n if (validationSuccesful === false) {\r\n return $q.reject(new Error(gettext('Client Version not compatible with api server. Please update your app.')));\r\n }\r\n\r\n if (!userLoginInfo) {\r\n msg = gettext('Unexpected null result from server in Login');\r\n }\r\n else if (!userLoginInfo.DeviceId) {\r\n return $q.reject(new Error(gettext('Client Version not compatible with api server. Please update your app.')));\r\n }\r\n\r\n if (msg) {\r\n $log.warn(msg);\r\n Bridge.trackException(msg);\r\n }\r\n\r\n AprimaCache.Lists.removeAll();\r\n LocalStorageRepository.clearKeysOfType('metadata');\r\n\r\n LocalStorageRepository.setDeviceId(userLoginInfo.DeviceId);\r\n LocalStorageRepository.setJsonWebToken(authToken);\r\n LocalStorageRepository.setBirthDate(_birthdate);\r\n LocalStorageRepository.setUserFullName(userLoginInfo.FirstName + ' ' + userLoginInfo.LastName);\r\n LocalStorageRepository.setUserID(userLoginInfo.Id);\r\n LocalStorageRepository.setIsPatient(userLoginInfo.IsPatient);\r\n LocalStorageRepository.setAccessCode(_accessCode);\r\n\r\n updateVersionInfo(userLoginInfo);\r\n\r\n PatientPortalStorageRepository.setResponsibleParties(userLoginInfo.ResponsibleParties);\r\n\r\n SessionService.setPracticeConsentAccepted(userLoginInfo.IsPracticeConcentAccepted);\r\n SessionService.setNewPasswordRequired(userLoginInfo.IsNewPasswordRequired);\r\n\r\n var featuresPromise = PatientSettingsService.loadPatientFeatures();\r\n var dashboardPromise = DashboardService.loadPatientDashboardFeatures();\r\n return $q.all([featuresPromise, dashboardPromise]);\r\n }, function () {\r\n return $q.reject(new Error(gettext('Client Version not compatible with api server. Please update your app.')));\r\n });\r\n }, function (response) {\r\n updateVersionInfo(response.data);\r\n\r\n var msg = gettext('login error');\r\n\r\n return $q.reject(new Error(msg));\r\n\r\n });\r\n };\r\n\r\n var loginSuccess = function(userLoginInfo) {\r\n var authToken = userLoginInfo.JsonWebToken,\r\n msg;\r\n\r\n return VersionService.checkVersions(userLoginInfo).then(function (validationSuccesful) {\r\n if (validationSuccesful === false) {\r\n return $q.reject(new Error(gettext('Client Version not compatible with api server. Please update your app.')));\r\n }\r\n\r\n if (!userLoginInfo) {\r\n msg = gettext('Unexpected null result from server in Login');\r\n }\r\n else if (!userLoginInfo.DeviceId) {\r\n return $q.reject(new Error(gettext('Client Version not compatible with api server. Please update your app.')));\r\n }\r\n\r\n if (msg) {\r\n $log.warn(msg);\r\n Bridge.trackException(msg);\r\n }\r\n\r\n AprimaCache.Lists.removeAll();\r\n LocalStorageRepository.clearKeysOfType('metadata');\r\n\r\n LocalStorageRepository.setDeviceId(userLoginInfo.DeviceId);\r\n LocalStorageRepository.setJsonWebToken(authToken);\r\n LocalStorageRepository.setUserName(userLoginInfo.Username);\r\n LocalStorageRepository.setUserFullName(userLoginInfo.FirstName + ' ' + userLoginInfo.LastName);\r\n LocalStorageRepository.setUserID(userLoginInfo.Id);\r\n LocalStorageRepository.setIsPatient(userLoginInfo.IsPatient);\r\n LocalStorageRepository.setIdentityHint(userLoginInfo.IdentityHint);\r\n\r\n updateVersionInfo(userLoginInfo);\r\n\r\n PatientPortalStorageRepository.setResponsibleParties(userLoginInfo.ResponsibleParties);\r\n PatientPortalStorageRepository.setIsAccountResponsiblePartyForPatient(userLoginInfo.IsAccountResponsiblePartyForPatient);\r\n\r\n if (userLoginInfo.IsPatient) {\r\n PatientPortalStorageRepository.setActivePatient(userLoginInfo.Id, userLoginInfo.FirstName, userLoginInfo.LastName, userLoginInfo.IsPatient);\r\n } else {\r\n var responsiblePartyPatient = PatientPortalStorageRepository.getActiveResponsibleParty();\r\n if (responsiblePartyPatient) {\r\n PatientPortalStorageRepository.setActivePatient(responsiblePartyPatient.Id, responsiblePartyPatient.FirstName, responsiblePartyPatient.LastName, responsiblePartyPatient.IsPatient);\r\n } else {\r\n return $q.reject(new Error(gettext('Username is not associated with a patient.')));\r\n }\r\n }\r\n\r\n SessionService.setPracticeConsentAccepted(userLoginInfo.IsPracticeConcentAccepted);\r\n SessionService.setNewPasswordRequired(userLoginInfo.IsNewPasswordRequired);\r\n\r\n var featuresPromise = PatientSettingsService.loadPatientFeatures();\r\n var dashboardPromise = DashboardService.loadPatientDashboardFeatures();\r\n return $q.all([featuresPromise, dashboardPromise]);\r\n }, function () {\r\n return $q.reject(new Error(gettext('Client Version not compatible with api server. Please update your app.')));\r\n });\r\n };\r\n\r\n var loginFailure = function(response, _clientId) {\r\n updateVersionInfo(response.data);\r\n\r\n var msg = gettext('login error'),\r\n errorCode = null;\r\n if (response.status === 401) {\r\n msg = gettext('Invalid username or password');\r\n\r\n errorCode = angular.isNumber(response.data.ErrorCode) ? response.data.ErrorCode : 0;\r\n\r\n if (errorCode & loginErrorCodes.UnknownClientId) {\r\n msg = gettext('Unknown clientId (' + _clientId + ').');\r\n } else if (errorCode & loginErrorCodes.LoginFailed) {\r\n msg = gettext('Invalid username or password');\r\n } else if (errorCode & loginErrorCodes.InactiveUser) {\r\n msg = gettext('This user account is not active and cannot login.');\r\n } else if (errorCode & loginErrorCodes.PrmVersionUnsupported) {\r\n msg = gettext('PRM version out of date. Please contact customer support about upgrading.');\r\n }\r\n }\r\n\r\n return $q.reject(new Error(msg));\r\n };\r\n\r\n var postLogin = function (clientURL, _clientId, _username, _password, userId, clientFeatures) {\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('login').customPOST({\r\n Username: _username,\r\n Password: _password,\r\n ClientId: _clientId,\r\n DeviceId: LocalStorageRepository.getDeviceId(),\r\n UserId : userId,\r\n ClientFeatures : clientFeatures\r\n })\r\n .then(function (userLoginInfo) {\r\n return loginSuccess(userLoginInfo, clientURL);\r\n }, function (response) {\r\n return loginFailure(response, _clientId);\r\n });\r\n };\r\n\r\n \r\n var postTokenLogin = function (clientURL, _clientId, token) {\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('token-login').customPOST({}, '', { token: token }, {})\r\n .then(function (userLoginInfo) {\r\n return loginSuccess(userLoginInfo, clientURL);\r\n }, function (response) {\r\n return loginFailure(response, _clientId);\r\n });\r\n };\r\n\r\n\r\n\r\n var postIdentityTokenLogin = function (clientURL, _clientId, token, clientFeatures) {\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('identity-authorize').customPOST(\r\n {\r\n Token: token, \r\n ClientId: _clientId, \r\n DeviceId: LocalStorageRepository.getDeviceId(), \r\n ClientFeatures: clientFeatures\r\n })\r\n .then(function (userLoginInfo) {\r\n return loginSuccess(userLoginInfo, clientURL);\r\n }, function (response) {\r\n return loginFailure(response, _clientId);\r\n });\r\n };\r\n\r\n var callPARRedirectUrl = function(username) {\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('par?username='+username).customPOST({}).then(\r\n function(response) {\r\n console.log('PAR Response:', response);\r\n return response;\r\n },\r\n function(error) {\r\n console.error('PAR Call Error:', error);\r\n throw error;\r\n }\r\n );\r\n };\r\n\r\n var postRouteUsername = function (clientId, username) {\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('route-username').customPOST({\r\n Username: username,\r\n ClientId: clientId,\r\n });\r\n };\r\n\r\n var postRegister = function (clientId, username, password, clientFeatures) {\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('register').customPOST({\r\n Username: username,\r\n Password: password,\r\n ClientId: clientId,\r\n DeviceId: LocalStorageRepository.getDeviceId(),\r\n ClientFeatures : clientFeatures\r\n });\r\n };\r\n\r\n var postConfirm = function (clientId, personId, dateOfBirth, emailAddress, username) {\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('confirm?clientId=' + clientId).customPOST({\r\n PersonUid: personId,\r\n DateOfBirth: dateOfBirth,\r\n EmailAddress: emailAddress,\r\n Username: username\r\n });\r\n };\r\n\r\n var callIdentityLogoutRedirectUrl = function(){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('identity-logout').customPOST({}).then(\r\n function(response) {\r\n console.log('Identity Logout Url Call Response:', response);\r\n return response;\r\n },\r\n function(error) {\r\n console.error('Identity Logout Url Call Error:', error);\r\n throw error;\r\n }\r\n );\r\n };\r\n\r\n return {\r\n postLogin: postLogin,\r\n postTokenLogin: postTokenLogin,\r\n postStatementsLogin: postStatementsLogin,\r\n postIdentityTokenLogin: postIdentityTokenLogin,\r\n postRouteUsername: postRouteUsername,\r\n callPARRedirectUrl: callPARRedirectUrl,\r\n callIdentityLogoutRedirectUrl: callIdentityLogoutRedirectUrl,\r\n postRegister: postRegister,\r\n postConfirm: postConfirm\r\n };\r\n\r\n \r\n }]);\r\n","angular.module('app').factory('MimeTypeRepository',\r\n ['AprimaRestangular', function (AprimaRestangular) {\r\n 'use strict';\r\n\r\n function getMimeTypeFromFileExtension(requestedMimeTypes) {\r\n var types = JSON.stringify(requestedMimeTypes);\r\n\r\n var params = {\r\n FileExtensions : types\r\n };\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n\r\n return restangular.one('patients/').customGET('mimetype/from-file-extension', params);\r\n }\r\n\r\n return {\r\n getMimeTypeFromFileExtension: getMimeTypeFromFileExtension\r\n };\r\n\r\n }]);","angular.module('app').factory('PatientPortalStorageRepository',\r\n ['storage', '$timeout', 'LocalStorageRepository',\r\n function (storage, $timeout, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n function removeActivePatient() {\r\n storage.remove('activePatient');\r\n }\r\n\r\n function getActivePatient() {\r\n var activePatient = storage.get('activePatient');\r\n return {\r\n id: activePatient && activePatient.id,\r\n firstName: activePatient && activePatient.firstName,\r\n lastName: activePatient && activePatient.lastName,\r\n fullName: activePatient && activePatient.fullName,\r\n isPatient: activePatient && activePatient.isPatient\r\n };\r\n }\r\n\r\n function setActivePatient(id, firstName, lastName, isPatient) {\r\n var activePatient = {\r\n id: id,\r\n fullName: firstName + ' ' + lastName,\r\n firstName: firstName,\r\n lastName: lastName,\r\n isPatient: isPatient\r\n };\r\n\r\n storage.set('activePatient', activePatient);\r\n }\r\n\r\n function getResponsibleParties() {\r\n return storage.get('responsibleParties');\r\n }\r\n\r\n function setResponsibleParties(value) {\r\n// Array of AccountResponsiblePartyDto\r\n// [\r\n// {\"Id\": \"2ab0d13c-2bbe-46f5-990d-533067be2eb3\",\r\n// \"Relationship\": {\r\n// \"Id\": \"7b4c63c7-fe13-48ef-81e5-3afc963f3fee\",\r\n// \"Name\": \"Self\",\r\n// \"ExternalId\": \"18\",\r\n// \"AnsiCode\": \"18\"},\r\n// \"FirstName\": \"George\",\r\n// \"LastName\": \"Cassidy\",\r\n// \"FullName\": \"George Cassidy\"}\r\n// ]\r\n storage.set('responsibleParties', value);\r\n }\r\n\r\n function getActiveResponsibleParty() {\r\n // _.find(responsibleParties, { IsPatient: true, IsActivePerson: true, IsActivePersonWeb: true });\r\n var responsibleParties = storage.get('responsibleParties');\r\n var activeResponsibleParty = _.find(responsibleParties, { IsPatient: true, IsActivePerson: true });\r\n return activeResponsibleParty;\r\n }\r\n\r\n function getActiveResponsibleParties() {\r\n var responsibleParties = storage.get('responsibleParties');\r\n var activeResponsibleParties = _.filter(responsibleParties, { IsPatient: true, IsActivePerson: true });\r\n return activeResponsibleParties;\r\n }\r\n\r\n\r\n function removeResponsibleParties() {\r\n storage.remove('responsibleParties');\r\n }\r\n\r\n function removeFeatureList(){\r\n storage.remove('featureList');\r\n }\r\n\r\n function getLoginUser() {\r\n return {\r\n name: LocalStorageRepository.getUserName(),\r\n fullName: LocalStorageRepository.getUserFullName(),\r\n id: LocalStorageRepository.getUserID(),\r\n token: LocalStorageRepository.getJsonWebToken(),\r\n clientId: LocalStorageRepository.getClientID(),\r\n clientURL: LocalStorageRepository.getClientURL(),\r\n deviceId: LocalStorageRepository.getDeviceId(),\r\n permissions: LocalStorageRepository.getUserPermissions(),\r\n isPatient: LocalStorageRepository.getIsPatient()\r\n };\r\n }\r\n\r\n function getIsAccountResponsiblePartyForPatient() {\r\n return storage.get('isAccountResponsiblePartyForPatient');\r\n }\r\n\r\n function setIsAccountResponsiblePartyForPatient(value) {\r\n storage.set('isAccountResponsiblePartyForPatient', value);\r\n }\r\n\r\n return {\r\n getActivePatient: getActivePatient,\r\n setActivePatient: setActivePatient,\r\n removeActivePatient: removeActivePatient,\r\n getResponsibleParties: getResponsibleParties,\r\n setResponsibleParties: setResponsibleParties,\r\n removeResponsibleParties: removeResponsibleParties,\r\n getLoginUser: getLoginUser,\r\n getActiveResponsibleParty: getActiveResponsibleParty,\r\n getActiveResponsibleParties: getActiveResponsibleParties,\r\n removeFeatureList : removeFeatureList,\r\n getIsAccountResponsiblePartyForPatient: getIsAccountResponsiblePartyForPatient,\r\n setIsAccountResponsiblePartyForPatient: setIsAccountResponsiblePartyForPatient\r\n };\r\n }\r\n ]);\r\n","angular.module('app').factory('SessionService',\r\n ['$rootScope',\r\n function($rootScope) {\r\n 'use strict';\r\n\r\n var sessionParams = {\r\n PatientAuthenticated: sessionStorage.getItem('PatientAuthenticated') || false, \r\n PracticeConsentAccepted: false,\r\n DisplayDashboardToolbar: false,\r\n ShowHeaderNavigationMenu: false,\r\n NewPasswordRequired: false,\r\n ShowMobileNav: false\r\n };\r\n\r\n function setNewPasswordRequired (value){\r\n sessionParams.NewPasswordRequired = value;\r\n }\r\n\r\n function getNewPasswordRequired() {\r\n return sessionParams.NewPasswordRequired;\r\n }\r\n var setPatientAuthenticated = function (value) {\r\n sessionParams.PatientAuthenticated = value;\r\n sessionStorage.setItem('PatientAuthenticated',value);\r\n $rootScope.$broadcast('PatientAuthenticated:updated', sessionParams.PatientAuthenticated);\r\n };\r\n var getPatientAuthenticated = function() {\r\n return sessionParams.PatientAuthenticated;\r\n };\r\n\r\n var setPracticeConsentAccepted = function (value) {\r\n sessionParams.PracticeConsentAccepted = value;\r\n };\r\n var getPracticeConsentAccepted = function() {\r\n return sessionParams.PracticeConsentAccepted;\r\n };\r\n\r\n var setDisplayDashboardToolbar = function (value) {\r\n sessionParams.DisplayDashboardToolbar = value;\r\n };\r\n var getDisplayDashboardToolbar = function () {\r\n return sessionParams.DisplayDashboardToolbar;\r\n };\r\n\r\n var setShowHeaderNavigationMenu = function (value) {\r\n sessionParams.ShowHeaderNavigationMenu = value;\r\n $rootScope.$broadcast('ShowHeaderNavigationMenu:updated', sessionParams.ShowHeaderNavigationMenu);\r\n };\r\n var getShowHeaderNavigationMenu = function () {\r\n return sessionParams.ShowHeaderNavigationMenu;\r\n };\r\n var setShowMobileNav = function (value){\r\n sessionParams.ShowMobileNav = value;\r\n $rootScope.$broadcast('ShowMobileNav:updated', sessionParams.ShowMobileNav);\r\n };\r\n var getShowMobileNav = function (){\r\n return sessionParams.ShowMobileNav;\r\n };\r\n\r\n var resetSessionParams = function () {\r\n setPatientAuthenticated(false);\r\n setPracticeConsentAccepted(false);\r\n setDisplayDashboardToolbar(false);\r\n setShowHeaderNavigationMenu(false);\r\n };\r\n\r\n\r\n return {\r\n resetSessionParams: resetSessionParams,\r\n setPatientAuthenticated: setPatientAuthenticated,\r\n getPatientAuthenticated: getPatientAuthenticated,\r\n setPracticeConsentAccepted: setPracticeConsentAccepted,\r\n getPracticeConsentAccepted: getPracticeConsentAccepted,\r\n setDisplayDashboardToolbar: setDisplayDashboardToolbar,\r\n getDisplayDashboardToolbar: getDisplayDashboardToolbar,\r\n setShowHeaderNavigationMenu: setShowHeaderNavigationMenu,\r\n getShowHeaderNavigationMenu: getShowHeaderNavigationMenu,\r\n getNewPasswordRequired: getNewPasswordRequired,\r\n setNewPasswordRequired: setNewPasswordRequired,\r\n setShowMobileNav: setShowMobileNav,\r\n getShowMobileNav: getShowMobileNav\r\n };\r\n }\r\n ]);","angular.module('account', [\r\n 'app',\r\n 'mychart',\r\n\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n\r\n\r\n //aprima\r\n 'apEasyScroller',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api',\r\n 'aprima-utils'\r\n]);\r\n\r\n","angular.module('account').config(['AppRoutesProvider', '$stateProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var appRoutes = {\r\n 'createaccountlayout': {\r\n state: 'createaccountlayout',\r\n route: '/createaccountlayout',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'emailoptoutlayout': {\r\n state: 'emailoptoutlayout',\r\n route: '/emailoptoutlayout',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'changepassword': {\r\n state: 'createaccountlayout.changepassword',\r\n route: '/changepassword/',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'emailoptout': {\r\n state: 'emailoptoutlayout.emailoptout',\r\n route: '/emailoptout/:accessCode',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'forgotpassword': {\r\n state: 'createaccountlayout.forgotpassword',\r\n route: '/forgotpassword/',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'accountActivationRequest': {\r\n state: 'createaccountlayout.accountActivationRequest',\r\n route: '/accountActivationRequest',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'accountActivation': {\r\n state: 'createaccountlayout.accountActivation',\r\n route: '/accountActivation/:webRegistrationId',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'accountvalidation': {\r\n state: 'createaccountlayout.accountvalidation',\r\n route: '/accountvalidation',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'accountsetup': {\r\n state: 'createaccountlayout.accountsetup',\r\n route: '/accountsetup',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'aprimaconditions': {\r\n state: 'createaccountlayout.aprimaconditions',\r\n route: '/aprimaconditions',\r\n portalSettings: {\r\n hideHeader: false,\r\n hideToolbar: true\r\n }\r\n },\r\n 'loginconsent': {\r\n state: 'createaccountlayout.loginconsent',\r\n route: '/loginconsent',\r\n portalSettings: {\r\n hideToolbar: true,\r\n toolbarItem: 'consent'\r\n }\r\n },\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.createaccountlayout.state, {\r\n url: appRoutes.createaccountlayout.route,\r\n templateUrl: '/account/views/createaccountlayout.html',\r\n controller: 'CreateAccountCtrl',\r\n description: '/CreateAccount',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Complete your account'); }\r\n }\r\n })\r\n .state(appRoutes.emailoptoutlayout.state, { // email opt out layout\r\n url: appRoutes.emailoptoutlayout.route,\r\n templateUrl: '/account/views/emailoptoutlayout.html',\r\n controller: 'EmailOptOutLayoutCtrl',\r\n description: '/EmailOptOutLayout',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Email Opt Out'); }\r\n }\r\n })\r\n .state(appRoutes.changepassword.state, {\r\n url: appRoutes.changepassword.route,\r\n templateUrl: '/account/views/changepassword.html',\r\n controller: 'ChangePasswordCtrl',\r\n description: '/ChangePassword'\r\n })\r\n .state(appRoutes.emailoptout.state, { // emailoptout\r\n url: appRoutes.emailoptout.route,\r\n templateUrl: '/account/views/emailoptout.html',\r\n controller: 'EmailOptOutCtrl',\r\n description: '/EmailOptOut'\r\n })\r\n .state(appRoutes.forgotpassword.state, {\r\n url: appRoutes.forgotpassword.route,\r\n templateUrl: '/account/views/forgotpassword.html',\r\n controller: 'ForgotPasswordCtrl',\r\n description: '/ChangePassword',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Forgot Password'); }\r\n }\r\n })\r\n .state(appRoutes.accountActivationRequest.state, {\r\n url: appRoutes.accountActivationRequest.route,\r\n templateUrl: '/account/views/accountActivationRequest.html',\r\n controller: 'AccountActivationRequestCtrl',\r\n description: '/AccountActivationRequest'\r\n })\r\n .state(appRoutes.accountActivation.state, {\r\n url: appRoutes.accountActivation.route,\r\n templateUrl: '/account/views/accountActivation.html',\r\n controller: 'AccountActivationCtrl',\r\n description: '/AccountActivation'\r\n })\r\n .state(appRoutes.accountvalidation.state, {\r\n url: appRoutes.accountvalidation.route,\r\n templateUrl: '/account/views/accountvalidation.html',\r\n controller: 'AccountValidationCtrl',\r\n description: '/AccountValidation'\r\n })\r\n .state(appRoutes.accountsetup.state, {\r\n url: appRoutes.accountsetup.route,\r\n templateUrl: '/account/views/accountsetup.html',\r\n controller: 'AccountSetupCtrl',\r\n description: '/AccountSetup'\r\n })\r\n .state(appRoutes.aprimaconditions.state, {\r\n url: appRoutes.aprimaconditions.route,\r\n templateUrl: '/account/views/aprimaconditions.html',\r\n controller: 'AprimaConditionsCtrl',\r\n description: '/AprimaConditions'\r\n })\r\n .state(appRoutes.loginconsent.state, {\r\n url: appRoutes.loginconsent.route,\r\n templateUrl: '/account/views/loginconsent.html',\r\n description: '/LoginConsent',\r\n controller: 'LoginConsentCtrl',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Aprima Consent'); }\r\n }\r\n });\r\n \r\n }]);","angular.module('account').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/account/views/accountActivation.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Account Information' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'User Name is not available.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'User Name must be at least 5 characters.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Password must be at least 5 characters.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Passwords do not match.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/accountActivationRequest.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Personal Information' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the page could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/accountdetails.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"patient-image\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Patient'|translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Responsible Party'|translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::patient.name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Account Details' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Login Credentials' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{securityAccountCredentialsDto.UserName}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'********'}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{securityAccountCredentialsDto.NewPassword}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Password must be at least 5 characters.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ validationMessage }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Security Questions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientSecurityQuestion.Text}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'****************'}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{patientSecurityQuestion.Answer}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Answer must be at least 4 characters.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ validationMessage }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and Account Details could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to Account Details.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/accountsetup.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Insurance Details' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Upload a photo of your primary insurance card' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" ---------------------- {{::'OR'|translate}} ---------------------\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Upload a photo of your secondary insurance card' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" ---------------------- {{::'OR'|translate}} ---------------------\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Security Information' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the page could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/accountvalidation.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Personal Information' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the page could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/aprimaconditions.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Aprima Terms & Conditions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"An error has occurred and the consent info could not be loaded.\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"You do not have access to this info.\\\"| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/changepassword.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Please create a new password:' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Password must be at least 5 characters.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Passwords do not match.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"An error has occurred and the page could not be loaded.\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"You do not have access to this info.\\\"| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/createaccountlayout.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Complete your account' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/emailoptout.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Opt Out Email: ' | translate}} {{model.EmailAddress}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"Access Code is invalid in URL.\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"An error has occurred and the page could not be loaded.\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"You do not have access to this info.\\\"| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/emailoptoutlayout.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Email Opt Out' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/forgotpassword.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Please create a new password:' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Not valid.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Password must be at least 5 characters.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Passwords do not match.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the page could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/account/views/loginconsent.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\"\r\n );\r\n\n}]);\n","angular.module('account').controller('AccountActivationCtrl',\r\n ['$scope', 'toaster', 'aprgettext', 'TransitionManager', 'SessionService', 'AccountRepository', 'LocalStorageRepository', '$stateParams', 'debounce', 'configuration', 'ContentAttributeService', 'Bridge',\r\n function ($scope, toaster, gettext, TransitionManager, SessionService, AccountRepository, LocalStorageRepository, $stateParams, debounce, configuration, ContentAttributeService, Bridge) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n var webRegistrationId = $stateParams.webRegistrationId;\r\n $scope.accountActivationDto = {\r\n ClientId: LocalStorageRepository.getClientID(),\r\n WebRegistrationId: webRegistrationId,\r\n UserName: '',\r\n Password: ''\r\n };\r\n $scope.model = {\r\n ConfirmPassword: '',\r\n UserNameInUse: false\r\n };\r\n\r\n function activateAccount() {\r\n if ($scope.accountActivationForm.$invalid || $scope.model.UserNameInUse || $scope.userNameLoading) {\r\n return;\r\n }\r\n\r\n\r\n $scope.submitLoading = true;\r\n AccountRepository.postAccountActivation($scope.accountActivationDto)\r\n .then(function () {\r\n toaster.pop('success', '', gettext('Portal account has been successfully created.'));\r\n TransitionManager.transition({appRoute: 'login'});\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error has occurred. Unable to create portal account.'));\r\n })\r\n .finally(function () {\r\n $scope.submitLoading = false;\r\n });\r\n }\r\n\r\n function activateAccountValidation() {\r\n AccountRepository.postAccountActivationIdValidation($scope.accountActivationDto.ClientId, $scope.accountActivationDto.WebRegistrationId)\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('Invalid link, timed out.'));\r\n TransitionManager.transition({appRoute: 'login'});\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function activateAccountUserNameValidation() {\r\n $scope.userNameLoading = true;\r\n AccountRepository.postUserNameValidation($scope.accountActivationDto.ClientId, $scope.accountActivationDto.UserName)\r\n .then(function (data) {\r\n if (!data.IsSuccess) {\r\n $scope.model.UserNameInUse = true;\r\n $scope.accountActivationForm.UserName.$invalid = true;\r\n } else {\r\n $scope.model.UserNameInUse = false;\r\n }\r\n })\r\n .catch(function () {\r\n\r\n })\r\n .finally(function () {\r\n $scope.userNameLoading = false;\r\n });\r\n }\r\n\r\n function onLoad() {\r\n AccountRepository.getActivatePatientPortalMetadata($scope);\r\n\r\n if (!configuration.DEV_HOSTED) {\r\n ContentAttributeService.getClientConfig()\r\n .then(function (data) {\r\n if (data) {\r\n var oldClientId = LocalStorageRepository.getClientID();\r\n\r\n if (oldClientId !== data.clientId) {\r\n LocalStorageRepository.clearAll();\r\n }\r\n\r\n LocalStorageRepository.setClientURL(data.hostUrl);\r\n LocalStorageRepository.setClientID(data.clientId);\r\n\r\n } else {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n }\r\n }).catch(function () {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n });\r\n }\r\n activateAccountValidation();\r\n }\r\n\r\n function back() {\r\n\r\n SessionService.setDisplayDashboardToolbar(false);\r\n TransitionManager.transition({appRoute: 'login'});\r\n }\r\n\r\n onLoad();\r\n\r\n $scope.back = back;\r\n $scope.activateAccount = activateAccount;\r\n $scope.activateAccountUserNameValidation = debounce(100, activateAccountUserNameValidation);\r\n }]);\r\n\r\n\r\n","angular.module('account').controller('AccountActivationRequestCtrl',\r\n ['$scope', 'toaster', 'aprgettext', 'TransitionManager', 'SessionService', 'AccountRepository', 'LocalStorageRepository',\r\n function ($scope, toaster, gettext, TransitionManager, SessionService, AccountRepository, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n $scope.loading = false;\r\n\r\n //todo use Ryan's date picker\r\n $scope.question = {\r\n SurveySectionId: 1,\r\n SurveyQuestionId: 2,\r\n SelectedAnswerText: '',\r\n SectionOptional: true,\r\n QuestionOptional: true\r\n };\r\n $scope.accountActivationDto = {\r\n ClientId: LocalStorageRepository.getClientID(),\r\n EmailAddress: '',\r\n Birthdate: ''\r\n };\r\n\r\n function activateAccountRequest() {\r\n if ($scope.accountRequestValidationForm.$invalid){\r\n return;\r\n }\r\n $scope.submitLoading = true;\r\n $scope.accountActivationDto.Birthdate = $scope.question.SelectedAnswerText && new Date($scope.question.SelectedAnswerText);\r\n AccountRepository.postAccountActivationRequest($scope.accountActivationDto)\r\n .then(function () {\r\n toaster.pop('success', '', gettext('Account activation email sent.'));\r\n TransitionManager.transition({appRoute: 'login'});\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error has occurred. Email failed to send or we were unable to find your account.'));\r\n })\r\n .finally(function () {\r\n $scope.submitLoading = false;\r\n });\r\n }\r\n\r\n function back() {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n TransitionManager.transition({appRoute: 'login'});\r\n }\r\n\r\n function onLoad() {\r\n AccountRepository.getActivatePatientPortalRequestMetadata($scope);\r\n }\r\n\r\n onLoad();\r\n\r\n $scope.back = back;\r\n $scope.activateAccountRequest = activateAccountRequest;\r\n\r\n }]);\r\n\r\n\r\n","angular.module('account').controller('AccountDetailsCtrl', [\r\n '$q',\r\n '$scope',\r\n 'AccountRepository',\r\n 'aprgettext',\r\n 'ListService',\r\n 'MyChartService',\r\n 'PatientPortalStorageRepository',\r\n 'toaster',\r\n function (\r\n $q,\r\n $scope,\r\n AccountRepository,\r\n gettext,\r\n ListService,\r\n MyChartService,\r\n PatientPortalStorageRepository,\r\n toaster\r\n ) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.isEditingCredentials = false;\r\n $scope.isSavingCredentials = false;\r\n\r\n $scope.isEditingQuestionAnswers = false;\r\n $scope.isSavingQuestionAnswers = false;\r\n\r\n $scope.validationMessage = '';\r\n\r\n $scope.securityAccountCredentialsDto = {\r\n LoginUserId: '',\r\n UserName: '',\r\n OldPassword: '',\r\n NewPassword: ''\r\n };\r\n\r\n $scope.securityAccountQuestionsAnswersDto = {\r\n LoginUserId: '',\r\n Questions: [\r\n {\r\n Id: null,\r\n Text: '',\r\n DisplayOrder: 0,\r\n Answer: ''\r\n },\r\n {\r\n Id: null,\r\n Text: '',\r\n DisplayOrder: 1,\r\n Answer: ''\r\n },\r\n {\r\n Id: null,\r\n Text: '',\r\n DisplayOrder: 2,\r\n Answer: ''\r\n }\r\n ]\r\n };\r\n\r\n var accountDetailsDto = {\r\n LoginUserId: '',\r\n UserName: '',\r\n Questions: null\r\n };\r\n\r\n\r\n var loginUser = PatientPortalStorageRepository.getLoginUser();\r\n ListService.getList('securityquestions', $scope, 'securityQuestions');\r\n\r\n\r\n function getMyChartDetails() {\r\n if (loginUser.isPatient) {\r\n return MyChartService.getDetails(loginUser.id)\r\n .then(function (data) {\r\n $scope.patient = {\r\n loginUserId: loginUser.id,\r\n name: loginUser.fullName,\r\n birthDate: data.DateOfBirth,\r\n isPatient: true\r\n };\r\n });\r\n }\r\n else {\r\n $scope.patient = {\r\n loginUserId: loginUser.id,\r\n name: loginUser.fullName,\r\n birthDate: null,\r\n isPatient: false\r\n };\r\n return $q.when();\r\n }\r\n }\r\n\r\n function getAccountDetails() {\r\n return AccountRepository.getAccountDetails(loginUser.id)\r\n .then(function (data) {\r\n accountDetailsDto.LoginUserId = data.LoginUserId;\r\n accountDetailsDto.UserName = data.UserName;\r\n accountDetailsDto.Questions = data.Questions;\r\n });\r\n }\r\n\r\n\r\n function loadView() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n var myChartPromise = getMyChartDetails();\r\n var getAccountDetailsPromise = getAccountDetails();\r\n\r\n $q.all([myChartPromise, getAccountDetailsPromise]).then(function () {\r\n updateCredentialsScope();\r\n\r\n var setAnswerToEmptyString = true;\r\n updateSecurityQuestionsAnswersScope(setAnswerToEmptyString);\r\n }).catch(function (response) {\r\n $scope.addHttpError(response);\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadView();\r\n\r\n\r\n function editCredentials() {\r\n if ($scope.isEditingQuestionAnswers) {\r\n cancelQuestionAnswers();\r\n }\r\n\r\n AccountRepository.getCredentialsMetadata($scope)\r\n .then(function() { })\r\n .finally(function () {\r\n $scope.isEditingCredentials = true;\r\n });\r\n }\r\n\r\n function cancelCredentials(loginCredentialsForm) {\r\n updateCredentialsScope();\r\n loginCredentialsForm.$setPristine();\r\n $scope.isEditingCredentials = false;\r\n }\r\n\r\n function saveCredentials(loginCredentialsForm) {\r\n $scope.isSavingCredentials = true;\r\n\r\n if (loginCredentialsForm.$valid) {\r\n AccountRepository.putAccountCredentials($scope.securityAccountCredentialsDto)\r\n .then(function (data) {\r\n accountDetailsDto.LoginUserId = data.LoginUserId;\r\n accountDetailsDto.UserName = data.UserName;\r\n updateCredentialsScope();\r\n\r\n $scope.isEditingCredentials = !$scope.isEditingCredentials;\r\n loginCredentialsForm.$setPristine();\r\n toaster.pop('success', '', gettext('Your password was successfully updated.'));\r\n })\r\n .catch(function () {\r\n $scope.validationMessage = gettext('Please make sure your old password is correct.');\r\n toaster.pop('error', '', gettext('Please make sure your old password is correct.'));\r\n })\r\n .finally(function () {\r\n $scope.isSavingCredentials = false;\r\n });\r\n }\r\n else {\r\n $scope.isSavingCredentials = false;\r\n }\r\n }\r\n\r\n\r\n function editQuestionAnswers() {\r\n if ($scope.isEditingCredentials) {\r\n cancelCredentials();\r\n }\r\n\r\n AccountRepository.getSecurityQuestionsAnswersMetadata($scope)\r\n .then(function () { })\r\n .finally(function () {\r\n $scope.isEditingQuestionAnswers = true;\r\n });\r\n }\r\n\r\n function cancelQuestionAnswers(securityQuestionAnswersForm) {\r\n updateSecurityQuestionsAnswersScope(true);\r\n securityQuestionAnswersForm.$setPristine();\r\n $scope.isEditingQuestionAnswers = false;\r\n }\r\n\r\n function saveQuestionAnswers(securityQuestionAnswersForm) {\r\n $scope.isSavingQuestionAnswers = true;\r\n\r\n if (securityQuestionAnswersForm.$valid) {\r\n AccountRepository.putSecurityQuestionsAnswers($scope.securityAccountQuestionsAnswersDto)\r\n .then(function (data) {\r\n accountDetailsDto.Questions = data.Questions;\r\n updateSecurityQuestionsAnswersScope(false);\r\n\r\n $scope.isEditingQuestionAnswers = !$scope.isEditingQuestionAnswers;\r\n\r\n securityQuestionAnswersForm.$setPristine();\r\n toaster.pop('success', '', gettext('Security Questions and Answers were successfully updated.'));\r\n })\r\n .catch(function () {\r\n $scope.validationMessage = gettext('Security Question and Answers could not be updated.');\r\n toaster.pop('error', '', gettext('Security Questions and Answers could not be updated.'));\r\n })\r\n .finally(function () {\r\n $scope.isSavingQuestionAnswers = false;\r\n });\r\n }\r\n else {\r\n $scope.isSavingQuestionAnswers = false;\r\n }\r\n }\r\n\r\n\r\n function selectedQuestionChanged(selectedSecurityQuestion) {\r\n if (selectedSecurityQuestion.Id !== null) {\r\n var lstProdParamSecurityQuestion = _.find($scope.securityQuestions, {Id: selectedSecurityQuestion.Id});\r\n selectedSecurityQuestion.Text = lstProdParamSecurityQuestion.Text;\r\n }\r\n else {\r\n selectedSecurityQuestion.Text = '';\r\n }\r\n }\r\n\r\n\r\n function updateCredentialsScope() {\r\n $scope.validationMessage = '';\r\n\r\n $scope.securityAccountCredentialsDto.LoginUserId = accountDetailsDto.LoginUserId;\r\n $scope.securityAccountCredentialsDto.UserName = accountDetailsDto.UserName;\r\n $scope.securityAccountCredentialsDto.OldPassword = '';\r\n $scope.securityAccountCredentialsDto.NewPassword = '';\r\n }\r\n\r\n function updateSecurityQuestionsAnswersScope(initializeAnswer) {\r\n $scope.validationMessage = '';\r\n\r\n $scope.securityAccountQuestionsAnswersDto.LoginUserId = accountDetailsDto.LoginUserId;\r\n\r\n var questionAnswer = _.find($scope.securityQuestions, {Id: accountDetailsDto.Questions[0] && accountDetailsDto.Questions[0].Id});\r\n if (questionAnswer != null) {\r\n $scope.securityAccountQuestionsAnswersDto.Questions[0].Id = questionAnswer.Id;\r\n $scope.securityAccountQuestionsAnswersDto.Questions[0].Text = questionAnswer.Text;\r\n $scope.securityAccountQuestionsAnswersDto.Questions[0].DisplayOrder = questionAnswer.DisplayOrder;\r\n if (initializeAnswer) {\r\n $scope.securityAccountQuestionsAnswersDto.Questions[0].Answer = '';\r\n }\r\n }\r\n\r\n questionAnswer = _.find($scope.securityQuestions, {Id: accountDetailsDto.Questions[1] && accountDetailsDto.Questions[1].Id});\r\n if (questionAnswer != null) {\r\n $scope.securityAccountQuestionsAnswersDto.Questions[1].Id = questionAnswer.Id;\r\n $scope.securityAccountQuestionsAnswersDto.Questions[1].Text = questionAnswer.Text;\r\n $scope.securityAccountQuestionsAnswersDto.Questions[1].DisplayOrder = questionAnswer.DisplayOrder;\r\n if (initializeAnswer) {\r\n $scope.securityAccountQuestionsAnswersDto.Questions[1].Answer = '';\r\n }\r\n }\r\n\r\n questionAnswer = _.find($scope.securityQuestions, {Id: accountDetailsDto.Questions[2] && accountDetailsDto.Questions[2].Id});\r\n if (questionAnswer != null) {\r\n $scope.securityAccountQuestionsAnswersDto.Questions[2].Id = questionAnswer.Id;\r\n $scope.securityAccountQuestionsAnswersDto.Questions[2].Text = questionAnswer.Text;\r\n $scope.securityAccountQuestionsAnswersDto.Questions[2].DisplayOrder = questionAnswer.DisplayOrder;\r\n if (initializeAnswer) {\r\n $scope.securityAccountQuestionsAnswersDto.Questions[2].Answer = '';\r\n }\r\n }\r\n }\r\n\r\n\r\n $scope.saveCredentials = saveCredentials;\r\n $scope.editCredentials = editCredentials;\r\n $scope.cancelCredentials = cancelCredentials;\r\n $scope.saveQuestionAnswers = saveQuestionAnswers;\r\n $scope.editQuestionAnswers = editQuestionAnswers;\r\n $scope.cancelQuestionAnswers = cancelQuestionAnswers;\r\n $scope.selectedQuestionChanged = selectedQuestionChanged;\r\n }\r\n ]\r\n);","angular.module('account').controller('AccountSetupCtrl',\r\n ['$scope', '$stateParams', '$uibModal', '$filter', 'MyChartService', 'ListService', 'toaster', 'aprgettext', '$log', 'TransitionManager',\r\n function ($scope, $stateParams, $modal, $filter, MyChartService, ListService, toaster, gettext, $log, TransitionManager) {\r\n 'use strict';\r\n\r\n $scope.loading = false;\r\n $scope.viewSecondaryInsurance = false;\r\n $scope.createAccountDto = {\r\n DriversLicenseNumber: '',\r\n DriversLicenseState: '',\r\n PrimaryInsurance: {\r\n InsuranceProvider: '',\r\n InsurancePlan: '',\r\n AccountFirstName: '',\r\n AccountLastName: '',\r\n PolicyNumber: '',\r\n GroupNumber: ''\r\n },\r\n SecondaryInsurance: {\r\n InsuranceProvider: '',\r\n InsurancePlan: '',\r\n AccountFirstName: '',\r\n AccountLastName: '',\r\n PolicyNumber: '',\r\n GroupNumber: ''\r\n },\r\n SecurityQuestions: [\r\n {Question: {Id: '', Text: '', DisplayOrder: ''}, Answer: ''},\r\n {Question: {Id: '', Text: '', DisplayOrder: ''}, Answer: ''},\r\n {Question: {Id: '', Text: '', DisplayOrder: ''}, Answer: ''}\r\n ]\r\n };\r\n\r\n ListService.getList('maritalstatuslist', $scope, 'maritalStatusTypes');\r\n ListService.getList('insurancecarriers', $scope, 'insuranceCarriers');\r\n ListService.getList('securityquestions', $scope, 'securityQuestions');\r\n\r\n var insurancePlanList = ListService.getList('insuranceplans', $scope, 'insurancePlans');\r\n\r\n $scope.primaryInsuranceImageModel = {\r\n maxSizeKb : 200,\r\n selectedFileName : '',\r\n selectedMimeType : '',\r\n selectedFileContents : ''\r\n };\r\n\r\n $scope.secondaryInsuranceImageModel = {\r\n maxSizeKb : 200,\r\n selectedFileName : '',\r\n selectedMimeType : '',\r\n selectedFileContents : ''\r\n };\r\n\r\n\r\n $scope.updatePrimaryInsuranceList = function updatePrimaryInsuranceList() {\r\n insurancePlanList.then(function (data) {\r\n $scope.primaryInsurancePlansModified = _.filter(data, {InsuranceCarrierId: $scope.createAccountDto.PrimaryInsurance.InsuranceCarrier.Id});\r\n });\r\n };\r\n $scope.updateSecondaryInsuranceList = function updateSecondaryInsuranceList() {\r\n insurancePlanList.then(function (data) {\r\n $scope.secondaryInsurancePlansModified = _.filter(data, {InsuranceCarrierId: $scope.createAccountDto.SecondaryInsurance.InsuranceCarrier.Id});\r\n });\r\n };\r\n\r\n $scope.toggleViewSecondaryInsurance = function toggleViewSecondaryInsurance() {\r\n $scope.viewSecondaryInsurance = !$scope.viewSecondaryInsurance;\r\n };\r\n\r\n $scope.back = function back() {\r\n TransitionManager.transition({appRoute: 'accountvalidation'});\r\n };\r\n $scope.skip = function skip() {\r\n TransitionManager.transition({appRoute: 'aprimaconditions'});\r\n };\r\n $scope.next = function next() {\r\n TransitionManager.transition({appRoute: 'aprimaconditions'});\r\n };\r\n }]);\r\n\r\n\r\n","angular.module('account').controller('AccountValidationCtrl',\r\n ['$scope', '$stateParams', 'ListService', 'toaster', 'aprgettext', 'TransitionManager', 'SessionService',\r\n function ($scope, $stateParams, ListService, toaster, gettext, TransitionManager, SessionService) {\r\n 'use strict';\r\n\r\n $scope.loading = false;\r\n $scope.accountValidationDto = {\r\n DriversLicenseNumber: '',\r\n DriversLicenseState: ''\r\n };\r\n\r\n $scope.back = function back(){\r\n\r\n SessionService.setDisplayDashboardToolbar(false);\r\n TransitionManager.transition({appRoute: 'login'});\r\n };\r\n $scope.next = function next(){\r\n TransitionManager.transition({appRoute: 'accountsetup'});\r\n };\r\n\r\n }]);\r\n\r\n\r\n","angular.module('account').controller('AprimaConditionsCtrl',\r\n ['$scope', '$stateParams', 'toaster', 'aprgettext', 'TransitionManager', 'ConsentService',\r\n function ($scope, $stateParams, toaster, gettext, TransitionManager, ConsentService) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n ConsentService\r\n .getPrivacyPolicyUrl()\r\n .then(function (privacyPolicyUrl) {\r\n $scope.removeHttpError();\r\n $scope.PDFPath = privacyPolicyUrl;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n\r\n $scope.finish = function finish() {\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n };\r\n\r\n $scope.back = function back() {\r\n TransitionManager.transition({appRoute: 'accountsetup'});\r\n };\r\n\r\n $scope.finish = function finish() {\r\n TransitionManager.transition({appRoute: 'login'});\r\n };\r\n }]);\r\n","angular.module('account').controller('ChangePasswordCtrl',\r\n ['$scope', 'toaster', 'aprgettext', 'TransitionManager', 'SessionService', 'AccountRepository', 'LocalStorageRepository',\r\n function ($scope, toaster, gettext, TransitionManager, SessionService, AccountRepository, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n $scope.loading = false;\r\n $scope.model = {\r\n Id: LocalStorageRepository.getUserID(),\r\n OldPassword: '',\r\n NewPassword: ''\r\n };\r\n $scope.confirmNewPassword = '';\r\n\r\n $scope.back = back;\r\n\r\n $scope.submit = submit;\r\n\r\n function back() {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n TransitionManager.transition({appRoute: 'login'});\r\n }\r\n\r\n function submit() {\r\n\r\n if ($scope.changePasswordForm.$invalid) {\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n\r\n AccountRepository.postChangePassword($scope.model)\r\n .then(function () {\r\n toaster.pop('success', '', gettext('Password has been changed successfully. Please login with new password.'));\r\n TransitionManager.transition({appRoute: 'login'});\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('One or more answers were incorrect. Please try again or contact your practice for further assistance.'));\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n }]);","angular.module('account').controller('CreateAccountCtrl',\r\n ['$scope', '$state',\r\n function () {\r\n 'use strict';\r\n }]);\r\n\r\n\r\n","angular.module('account').controller('EmailOptOutCtrl',\r\n ['$scope', 'toaster', 'aprgettext', 'TransitionManager', 'ContentAttributeService', 'Bridge', 'configuration', 'SessionService', 'AccountRepository', 'LocalStorageRepository', '$stateParams',\r\n function ($scope, toaster, gettext, TransitionManager, ContentAttributeService, Bridge, configuration, SessionService, AccountRepository, LocalStorageRepository, $stateParams) {\r\n 'use strict';\r\n\r\n $scope.loading = false;\r\n $scope.processed = false;\r\n $scope.invalidAccessCode = false; // assume initially that all is good\r\n $scope.model = { // setup and initialize dto\r\n AccessCode: $stateParams.accessCode,\r\n ClientId: LocalStorageRepository.getClientID(),\r\n EmailAddress: '',\r\n IsOptOutPatientMarketing: false,\r\n IsOptOutStatement: true,\r\n };\r\n\r\n $scope.onLoad = onLoad;\r\n\r\n if (!configuration.DEV_HOSTED) {\r\n ContentAttributeService.getClientConfig()\r\n .then(function (data) {\r\n if (data) {\r\n var oldClientId = LocalStorageRepository.getClientID();\r\n\r\n if (oldClientId !== data.clientId) {\r\n LocalStorageRepository.clearAll();\r\n }\r\n \r\n LocalStorageRepository.setClientURL(data.hostUrl);\r\n LocalStorageRepository.setClientID(data.clientId);\r\n $scope.model.ClientId = LocalStorageRepository.getClientID();\r\n\r\n $scope.onLoad($scope.model.AccessCode, $scope.model.ClientId); \r\n\r\n } else {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n }\r\n }).catch(function () {\r\n $scope.errorMessage = gettext('Error loading page. Unknown Client Id');\r\n Bridge.createModalAlert({\r\n title: gettext('Loading Error'),\r\n message: $scope.errorMessage,\r\n buttons: [gettext('Okay')]\r\n });\r\n });\r\n }\r\n\r\n $scope.back = back;\r\n\r\n $scope.submit = submit;\r\n\r\n function back() {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n TransitionManager.transition({appRoute: 'login'});\r\n }\r\n\r\n function onLoad(accessCode, clientId) {\r\n \r\n $scope.loading = true;\r\n var params = {\r\n accessCode: accessCode,\r\n clientId: clientId,\r\n };\r\n \r\n AccountRepository.getOptOutOfEmaiDetails(params)\r\n .then(function (data) {\r\n $scope.model.EmailAddress = data.Result.EmailAddress;\r\n $scope.invalidAccessCode = false;\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('EmailOptOutInfo Load Failed. Please try again or contact your practice for further assistance.'));\r\n $scope.invalidAccessCode = true;\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function submit() {\r\n\r\n $scope.loading = true;\r\n\r\n AccountRepository.postOptOutEmail($scope.model)\r\n .then(function () {\r\n toaster.pop('success', '', gettext('OptOut has been changed successfully.'));\r\n $scope.processed = true;\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('OptOut Failed. Please try again or contact your practice for further assistance.'));\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n }]);","angular.module('account').controller('EmailOptOutLayoutCtrl',\r\n ['$scope', '$state',\r\n function () {\r\n 'use strict';\r\n }]);\r\n\r\n\r\n","angular.module('account').controller('ForgotPasswordCtrl',\r\n ['$scope', '$stateParams', 'toaster', 'aprgettext', 'TransitionManager', 'SessionService', 'AccountRepository', 'LocalStorageRepository',\r\n function ($scope, $stateParams, toaster, gettext, TransitionManager, SessionService, AccountRepository, LocalStorageRepository) {\r\n 'use strict';\r\n\r\n $scope.loading = false;\r\n $scope.model = {\r\n UserName: LocalStorageRepository.getUserName(),\r\n ClientId: LocalStorageRepository.getClientID(),\r\n NewPassword: '',\r\n Questions: []\r\n };\r\n $scope.Answers = {\r\n Question1: '',\r\n Question2: '',\r\n Question3: ''\r\n };\r\n $scope.confirmNewPassword = '';\r\n\r\n $scope.back = back;\r\n $scope.submit = submit;\r\n\r\n loadSecurityQuestions();\r\n function loadSecurityQuestions() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n AccountRepository.getSecurityQuestions($scope.model.UserName, $scope.model.ClientId)\r\n .then(function (data) {\r\n if (data) {\r\n var securityQuestions = data.plain();\r\n $scope.model.Questions = securityQuestions.Questions;\r\n }else{\r\n toaster.pop('warning', '', gettext('You do not have Security Questions configured. Please contact the practice.'));\r\n back();\r\n }\r\n }).catch(function (response) {\r\n toaster.pop('warning', '', gettext('You do not have Security Questions configured. Please contact the practice.'));\r\n $scope.addHttpError(response);\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function back() {\r\n SessionService.setDisplayDashboardToolbar(false);\r\n TransitionManager.transition({appRoute: 'login'});\r\n }\r\n\r\n function submit() {\r\n\r\n if ($scope.changePasswordForm.$invalid) {\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n var requestDto = {\r\n UserName: $scope.model.UserName,\r\n ClientId: $scope.model.ClientId,\r\n NewPassword: $scope.model.NewPassword,\r\n Questions: _($scope.model.Questions)\r\n .map(function (question) {\r\n return {\r\n Id: question.Id,\r\n Text: question.Text,\r\n Answer: '',\r\n DisplayOrder: question.DisplayOrder\r\n };\r\n }).value()\r\n };\r\n\r\n if (requestDto.Questions.length === 3) {\r\n requestDto.Questions[0].Answer = $scope.Answers.Question1;\r\n requestDto.Questions[1].Answer = $scope.Answers.Question2;\r\n requestDto.Questions[2].Answer = $scope.Answers.Question3;\r\n }\r\n\r\n AccountRepository.postForgotPassword(requestDto)\r\n .then(function (data) {\r\n console.log(data);\r\n toaster.pop('success', '', gettext('Password has been changed successfully. Please login with new password.'));\r\n TransitionManager.transition({appRoute: 'login'});\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('One or more answers were incorrect. Please try again or contact your practice for further assistance.'));\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n }]);\r\n\r\n\r\n","angular.module('account').controller('LoginConsentCtrl',\r\n [\r\n '$scope', \r\n 'SessionService', \r\n '$q', \r\n 'ConsentService', \r\n 'LocalStorageRepository', \r\n 'TransitionManager', \r\n 'ConsentRepository', \r\n 'LogOffService', \r\n 'aprgettext',\r\n 'BrowserService',\r\n function (\r\n $scope, \r\n SessionService, \r\n $q, \r\n ConsentService, \r\n LocalStorageRepository, \r\n TransitionManager, \r\n ConsentRepository, \r\n LogOffService, \r\n gettext,\r\n BrowserService\r\n ) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n $scope.submitted = false;\r\n\r\n $scope.loginConsent = {\r\n PracticeConsentText: '',\r\n PDFPath: '',\r\n AgreeToConsentChecked: false,\r\n PracticeConsentAccepted: false,\r\n AprimaConsent: gettext('Clicking on Agree denotes that you are authorized to view the above patient records and agree to be bound by the terms and conditions of the Patient Portal.'),\r\n ConsentWarningMessage: gettext('Please indicate that you agree with this consent form and select the Agree checkbox to proceed.'),\r\n AgreeCheckboxText: gettext('I have read the consent form and the above information and I accept the conditions')\r\n };\r\n\r\n $scope.model =\r\n {\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n DocumentId: 'privacypolicy',\r\n };\r\n\r\n function getPrivacyPolicyUrl() {\r\n return ConsentService\r\n .getPrivacyPolicyUrl()\r\n .then(function (privacyPolicyUrl) {\r\n $scope.loginConsent.PDFPath = privacyPolicyUrl;\r\n });\r\n }\r\n\r\n function getPracticeConsent() {\r\n return ConsentService\r\n .getPracticeConsent()\r\n .then(function (data) {\r\n $scope.loginConsent.PracticeConsentAccepted = data.IsAccepted;\r\n $scope.loginConsent.PracticeConsentText = data.ConsentForm;\r\n });\r\n }\r\n\r\n function getPrivacyPolicy() {\r\n return ConsentRepository.downloadAgreementPrivacyPolicy();\r\n }\r\n\r\n function downloadPrivacyPolicy(){\r\n return ConsentRepository.downloadAgreementPrivacyPolicy()\r\n .then(function (data) {\r\n return {Data: data.Data, FileName: 'PrivacyPolicy', Extension: 'pdf'};\r\n });\r\n }\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n var practiceConsentPromise = getPracticeConsent();\r\n var getPrivacyPolicyPromise = getPrivacyPolicyUrl();\r\n\r\n $q.all([practiceConsentPromise, getPrivacyPolicyPromise])\r\n .then(function () {\r\n if ($scope.loginConsent.PracticeConsentAccepted === true) {\r\n SessionService.setDisplayDashboardToolbar(true);\r\n SessionService.setShowHeaderNavigationMenu(true);\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n loadPage();\r\n\r\n function disagreeToConsent() {\r\n LogOffService.logoff().then(function () {\r\n TransitionManager.transition({appRoute: 'login'});\r\n });\r\n }\r\n\r\n function submitForm() {\r\n if ($scope.loginConsentForm.$invalid) {\r\n return;\r\n }\r\n\r\n $scope.submitted = true;\r\n ConsentRepository\r\n .postUserAgreedToPracticeConsent(LocalStorageRepository.getUserID())\r\n .then(function () {\r\n $scope.removeHttpError();\r\n SessionService.setDisplayDashboardToolbar(true);\r\n SessionService.setShowHeaderNavigationMenu(true);\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n $scope.submitted = false;\r\n }\r\n\r\n $scope.downloadPrivacyPolicy = downloadPrivacyPolicy;\r\n $scope.getPrivacyPolicy = getPrivacyPolicy;\r\n $scope.submitForm = submitForm;\r\n $scope.disagreeToConsent = disagreeToConsent;\r\n\r\n }\r\n ]\r\n);","angular.module('account').factory('AccountRepository',\r\n ['AprimaRestangular', 'MetadataRepository', function (AprimaRestangular, MetadataRepository) {\r\n 'use strict';\r\n\r\n function postChangePassword(changePasswordDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/'+ changePasswordDto.Id +'/changepassword/').customPOST(changePasswordDto);\r\n }\r\n\r\n function getOptOutOfEmaiDetails(params) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('optout/email/getoptoutofemaildetails/').get(params);\r\n }\r\n\r\n function postOptOutEmail(emailOptOutDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('optout/email/optoutofemail/').customPOST(emailOptOutDto);\r\n }\r\n\r\n function postForgotPassword(changePasswordDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/changepassword/').customPOST(changePasswordDto);\r\n }\r\n\r\n function postAccountActivationRequest(activatePatientPortalAccountRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/activate-account-request/').customPOST(activatePatientPortalAccountRequestDto);\r\n }\r\n\r\n function postAccountActivation(activatePatientPortalAccountDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/activate-account/').customPOST(activatePatientPortalAccountDto);\r\n }\r\n\r\n function postAccountActivationIdValidation(clientId, activationId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/activate-account-request-validation/' + activationId).customPOST(clientId);\r\n }\r\n\r\n function postUserNameValidation(clientId, userName) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/username-validation/' + userName).customPOST(clientId);\r\n }\r\n\r\n function getSecurityQuestions(userName, clientId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var params = {\r\n userName: userName,\r\n clientId: clientId\r\n };\r\n return restangular.one('security/securityquestions/').get(params);\r\n }\r\n\r\n function getCredentialsMetadata($scope) {\r\n return MetadataRepository.getMetadata('account-details/credentials', $scope);\r\n }\r\n\r\n function getSecurityQuestionsAnswersMetadata($scope) {\r\n return MetadataRepository.getMetadata('account-details/security-questions-answers', $scope);\r\n }\r\n\r\n function getActivatePatientPortalRequestMetadata($scope) {\r\n return MetadataRepository.getMetadata('account-details/activate-patient-portal-request', $scope);\r\n }\r\n\r\n function getActivatePatientPortalMetadata($scope) {\r\n return MetadataRepository.getMetadata('account-details/activate-patient-portal', $scope);\r\n }\r\n\r\n function getAccountDetails(loginUserId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/'+ loginUserId +'/account-details/').get();\r\n }\r\n\r\n function putAccountCredentials(securityAccountCredentialsDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/'+ securityAccountCredentialsDto.LoginUserId +'/credentials').customPUT(securityAccountCredentialsDto);\r\n }\r\n\r\n function putSecurityQuestionsAnswers(securityAccountQuestionsAnswersDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('security/'+ securityAccountQuestionsAnswersDto.LoginUserId +'/questions-answers').customPUT(securityAccountQuestionsAnswersDto);\r\n }\r\n\r\n\r\n return{\r\n postChangePassword: postChangePassword,\r\n postOptOutEmail: postOptOutEmail,\r\n getOptOutOfEmaiDetails: getOptOutOfEmaiDetails,\r\n postForgotPassword: postForgotPassword,\r\n getSecurityQuestions: getSecurityQuestions,\r\n getAccountDetails: getAccountDetails,\r\n putAccountCredentials: putAccountCredentials,\r\n putSecurityQuestionsAnswers: putSecurityQuestionsAnswers,\r\n getCredentialsMetadata: getCredentialsMetadata,\r\n getSecurityQuestionsAnswersMetadata: getSecurityQuestionsAnswersMetadata,\r\n postAccountActivationRequest: postAccountActivationRequest,\r\n postAccountActivation: postAccountActivation,\r\n postAccountActivationIdValidation: postAccountActivationIdValidation,\r\n postUserNameValidation: postUserNameValidation,\r\n getActivatePatientPortalRequestMetadata: getActivatePatientPortalRequestMetadata,\r\n getActivatePatientPortalMetadata: getActivatePatientPortalMetadata\r\n };\r\n }]);","angular.module('account').factory('ConsentService',\r\n ['$sce', '$q', 'ConsentRepository', 'LocalStorageRepository', 'configuration',\r\n function ($sce, $q, ConsentRepository, LocalStorageRepository, configuration) {\r\n 'use strict';\r\n\r\n var currentPatientConsent = {\r\n PatientId: null,\r\n Version: 0,\r\n IsAccepted: false,\r\n AlwaysDisplayConsent: false,\r\n ConsentForm: null,\r\n };\r\n\r\n function replaceLineBreaksWithHtmlLineBreak(text) {\r\n var returnText = text;\r\n\r\n var re = new RegExp('\\r\\n', 'g');\r\n returnText = returnText.replace(re, '
');\r\n\r\n re = new RegExp('\\n', 'g');\r\n returnText = returnText.replace(re, '
');\r\n\r\n return returnText;\r\n }\r\n\r\n function getPrivacyPolicyUrl() {\r\n return ConsentRepository\r\n .getAgreementPrivacyPolicyPath(LocalStorageRepository.getUserID())\r\n .then(function (data) {\r\n var baseurl = LocalStorageRepository.getClientURL() + '/api/patient/' + configuration.SERVER_API_VERSION + '/',\r\n path = 'consents/' + data.Path,\r\n apiKey = configuration.API_KEY,\r\n pdfUrl = baseurl + path + '?apikey=' + apiKey;\r\n\r\n var privacyPolicyUrl = $sce.trustAsResourceUrl(pdfUrl);\r\n return privacyPolicyUrl;\r\n });\r\n }\r\n\r\n function getPracticeConsent() {\r\n return ConsentRepository\r\n .getPracticeConsent(LocalStorageRepository.getUserID())\r\n .then(function (data) {\r\n var currentPracticeConsent = {\r\n IsAccepted: data.IsAccepted,\r\n ConsentForm: $sce.trustAsHtml(replaceLineBreaksWithHtmlLineBreak(data.ConsentForm))\r\n };\r\n return currentPracticeConsent;\r\n });\r\n }\r\n\r\n function getChartConsent(patientId) {\r\n if (currentPatientConsent.PatientId !== patientId) {\r\n clearChartConsent();\r\n }\r\n\r\n if (!currentPatientConsent.PatientId) {\r\n return ConsentRepository\r\n .getChartConsent(patientId)\r\n .then(function (data) {\r\n currentPatientConsent = {\r\n PatientId: patientId,\r\n Version: data.Version,\r\n IsAccepted: data.IsAccepted,\r\n AlwaysDisplayConsent: data.AlwaysDisplayConsent,\r\n ConsentForm: data.ConsentForm,\r\n };\r\n\r\n var consentHtml = $sce.trustAsHtml(replaceLineBreaksWithHtmlLineBreak(currentPatientConsent.ConsentForm));\r\n currentPatientConsent.ConsentForm = consentHtml;\r\n return currentPatientConsent;\r\n });\r\n } else {\r\n return $q.when(currentPatientConsent);\r\n }\r\n }\r\n\r\n function postChartConsent(patientId) {\r\n if (currentPatientConsent.PatientId === patientId) {\r\n currentPatientConsent.IsAccepted = true;\r\n LocalStorageRepository.setOncePerLoginChartConsent(true);\r\n } else {\r\n clearChartConsent();\r\n }\r\n\r\n return ConsentRepository\r\n .postChartConsent(patientId)\r\n .then(function () {\r\n return;\r\n });\r\n }\r\n\r\n function clearChartConsent() {\r\n currentPatientConsent = {\r\n PatientId: null,\r\n Version: 0,\r\n IsAccepted: false,\r\n AlwaysDisplayConsent: false,\r\n ConsentForm: null,\r\n };\r\n }\r\n\r\n function isChartConsentAccepted(patientId) {\r\n return getChartConsent(patientId)\r\n .then(function (data) {\r\n var myPatientConsent = data;\r\n return !!(myPatientConsent && myPatientConsent.PatientId && myPatientConsent.PatientId === patientId && ( LocalStorageRepository.getOncePerLoginChartConsent() || (myPatientConsent.IsAccepted && !myPatientConsent.AlwaysDisplayConsent)));\r\n });\r\n }\r\n\r\n return{\r\n getPrivacyPolicyUrl: getPrivacyPolicyUrl,\r\n getPracticeConsent: getPracticeConsent,\r\n getChartConsent: getChartConsent,\r\n postChartConsent: postChartConsent,\r\n isChartConsentAccepted: isChartConsentAccepted,\r\n clearChartConsent: clearChartConsent\r\n };\r\n }\r\n ]\r\n);","angular.module('rxrefills', [\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'headroom',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n\r\n\r\n //aprima\r\n 'apEasyScroller',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-utils'\r\n\r\n]);","angular.module('rxrefills').config(['AppRoutesProvider', '$stateProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var portalSettings = { toolbarItem: 'prescriptions' };\r\n\r\n var appRoutes = {\r\n 'rxrefill': {\r\n state: 'rxrefill',\r\n route: '/rxrefill/',\r\n portalSettings: portalSettings\r\n },\r\n 'prescriptions': {\r\n state: 'prescriptions',\r\n route: '/prescriptions',\r\n portalSettings: portalSettings\r\n },\r\n 'prescriptionsMobile': {\r\n state: 'prescriptionsMobile',\r\n route: '/prescriptionsMobile',\r\n portalSettings: portalSettings\r\n }\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.rxrefill.state, {\r\n url: appRoutes.rxrefill.route,\r\n templateUrl: '/rxrefills/views/rxrefills.html',\r\n controller: 'RxRefillCtrl',\r\n description: '/RxRefill',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('RxRefills'); }\r\n }\r\n })\r\n .state(appRoutes.prescriptions.state, {\r\n url: appRoutes.prescriptions.route,\r\n templateUrl: '/rxrefills/views/prescriptions.html',\r\n controller: 'RxRefillCtrl',\r\n description: '/prescriptions',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('RxRefills'); }\r\n }\r\n })\r\n .state(appRoutes.prescriptionsMobile.state, {\r\n url: appRoutes.prescriptionsMobile.route,\r\n templateUrl: '/rxrefills/views/prescriptions.html',\r\n resolve: {\r\n isMobile: function() { return true; },\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('RxRefills'); }\r\n },\r\n controller: 'RxRefillMobileCtrl',\r\n description: appRoutes.prescriptionsMobile.route\r\n });\r\n\r\n }]);","angular.module('rxrefills').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/rxrefills/views/prescriptions.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'My Pharmacy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

{{::selectedPharmacy.pharmacy.Name}}

\\r\" +\r\n \"\\n\" +\r\n \" {{::selectedPharmacy.pharmacy.Address.Address1}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::selectedPharmacy.pharmacy.Address.City}}, {{::selectedPharmacy.pharmacy.Address.State}} {{::selectedPharmacy.pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" p. {{::selectedPharmacy.pharmacy.Phone.PhoneNumber | apPhoneNumberFilter}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Change my Pharmacy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Add a Pharmacy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Current Prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No Current Prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.DrugName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.Instructions}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Start' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'End' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.IsActive ? dateDiff(med.EndDate) : ''}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Discontinued' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{'Pending Review' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Please contact office to process.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Previous Prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No Previous Prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.DrugName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.Instructions}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Start' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'End' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Discontinued' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{'Pending Review' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Please contact office to process.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient medications could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s medications.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/rxrefills/views/rxrefills.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Selected Pharmacy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

{{selectedPharmacy.pharmacy.Name}}

\\r\" +\r\n \"\\n\" +\r\n \" {{selectedPharmacy.pharmacy.Address.Address1}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{selectedPharmacy.pharmacy.Address.City}}, {{selectedPharmacy.pharmacy.Address.State}} {{selectedPharmacy.pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" p. {{selectedPharmacy.pharmacy.Phone.PhoneNumber | apPhoneNumberFilter}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Change my Pharmacy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Add a Pharmacy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

No pharmacy is selected. Please select a pharmacy to continue.

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Request Refills' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Which prescriptions would you like refilled?' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.DrugName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.Instructions}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Start' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'End' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient medications could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s medications.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\n}]);\n","(function() {\r\n 'use strict';\r\n var RxRefillBaseCtrl = function (autoInit, changePharmacyRoute, changePharmacyRouteOpts) {\r\n return function ($q, $scope, $stateParams, toaster, gettext, _, PatientPortalStorageRepository, PrescriptionService, TransitionManager, PatientSettingsService) {\r\n $scope.name = 'RxRefill';\r\n $scope.mapDisplay = false;\r\n $scope.loading = false;\r\n $scope.requestLoading = false;\r\n $scope.selectedPharmacy = {\r\n pharmacy: {\r\n Name: '',\r\n Address: {\r\n Address1: '',\r\n City: '',\r\n State: '',\r\n Zip: ''\r\n },\r\n Phone: {\r\n PhoneNumber: ''\r\n }\r\n }};\r\n $scope.patient = {Medications: [], Pharmacies: []};\r\n $scope.medFilters = PrescriptionService.medFilters;\r\n $scope.activeFilter = PrescriptionService.medFilters[1];\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n $scope.featureList = PatientSettingsService.getPatientFeatures();\r\n\r\n function updateFilteredPrescriptions(filter) {\r\n $scope.activeFilter = filter;\r\n\r\n $scope.filteredPrescriptions = _.filter($scope.patient.Medications, function (item) {\r\n return PrescriptionService.dateFilter(item.EndDate, $scope.activeFilter.Days) || !!item.RefillRequestPending;\r\n });\r\n }\r\n\r\n function pharmacyFormat(pharmacy) {\r\n var str = '';\r\n str += pharmacy.Name + ' ' + pharmacy.Address.Address1 + ' ' + pharmacy.Address.City + ' ' + pharmacy.Address.State + ' ' + pharmacy.Address.Zip;\r\n return str;\r\n }\r\n\r\n function changePharmacy(){\r\n TransitionManager.transition({appRoute: changePharmacyRoute, opts : changePharmacyRouteOpts || {id: activePatient.id}});\r\n }\r\n\r\n function extendPrescriptionList(medications) {\r\n var extendedList = _.map(medications, function (element) {\r\n return _.assignIn(element,\r\n {SelectedForRefillRequest:\r\n (PrescriptionService.getSelectedMedId() === element.RelPatientMedicationId || !!element.RefillRequestPending)});\r\n });\r\n return extendedList;\r\n }\r\n\r\n function initialize() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n PatientPortalStorageRepository.getActivePatient();\r\n var pharmaciesPromise = PrescriptionService.getPharmacies(activePatient.id)\r\n .then(function (data) {\r\n $scope.patient.Pharmacies = data.plain();\r\n if ($scope.patient.Pharmacies && $scope.patient.Pharmacies.length) {\r\n $scope.selectedPharmacy.pharmacy = _($scope.patient.Pharmacies)\r\n .filter({'IsPreferredPharmacy': true})\r\n .value();\r\n $scope.selectedPharmacy.pharmacy = $scope.selectedPharmacy.pharmacy.length ? $scope.selectedPharmacy.pharmacy[0] : $scope.patient.Pharmacies[0];\r\n toggleMapDisplay(true);\r\n }\r\n });\r\n var rxRefillsPromise = PrescriptionService.getRxRefills(activePatient.id)\r\n .then(function (data) {\r\n $scope.patient.Medications = data.Medications;\r\n\r\n //prescriptions.html\r\n var splitPrescriptions = _.partition($scope.patient.Medications, function (item) {\r\n return PrescriptionService.dateFilter(item.EndDate, PrescriptionService.medFilters[1].Days);\r\n });\r\n $scope.currentPrescriptions = splitPrescriptions[0];\r\n $scope.previousPrescriptions = splitPrescriptions[1];\r\n\r\n //prescriptionsList.html\r\n updateFilteredPrescriptions($scope.activeFilter);\r\n\r\n //rxRefills.html\r\n if ($scope.patient.Medications && $scope.patient.Medications.length) {\r\n $scope.orderedPrescriptions = $scope.currentPrescriptions.concat($scope.previousPrescriptions);\r\n $scope.orderedPrescriptions = extendPrescriptionList($scope.orderedPrescriptions);\r\n }\r\n });\r\n\r\n auditMedications(reportRequestDto);\r\n\r\n $q.all([pharmaciesPromise, rxRefillsPromise]).catch(function (response) {\r\n $scope.addHttpError(response);\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n function auditMedications(reportRequestDto) {\r\n PrescriptionService.auditMedicationsLogging(reportRequestDto);\r\n }\r\n\r\n function medCheck(med) {\r\n med.SelectedForRefillRequest = !med.SelectedForRefillRequest;\r\n }\r\n\r\n function medSelect(med) {\r\n PrescriptionService.setSelectedMedId(med.RelPatientMedicationId);\r\n }\r\n\r\n function toggleMapDisplay(bool) {\r\n $scope.mapDisplay = bool;\r\n }\r\n\r\n function rxRefillRequest() {\r\n $scope.requestLoading = true;\r\n var rxRefills = {\r\n PatientId: activePatient.id,\r\n CreatedById: loginUser.id,\r\n RequestedPharmacyId: $scope.selectedPharmacy.pharmacy.Id,\r\n Reason: $scope.Reason,\r\n Medications: _($scope.patient.Medications)\r\n .filter({'SelectedForRefillRequest': true})\r\n .map(function (med) {\r\n return {\r\n RelPatientMedicationId: med.RelPatientMedicationId,\r\n DrugName: med.DrugName,\r\n Instructions: med.Instructions,\r\n ProviderId: med.ProviderId\r\n };\r\n })\r\n .value()\r\n };\r\n\r\n if (rxRefills.Medications.length === 0) {\r\n toaster.pop('warning', '', gettext('No medications selected.'));\r\n $scope.requestLoading = false;\r\n } else {\r\n PrescriptionService\r\n .putRxRefills(rxRefills)\r\n .then(function (data) {\r\n PrescriptionService.clearSelectedMedId();\r\n $scope.patient.Medications = data.Medications;\r\n toaster.pop('success', '', gettext('Refill request sent successfully.'));\r\n TransitionManager.transition({appRoute: 'prescriptions'});\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred while sending the refill request'));\r\n })\r\n .finally(function () {\r\n $scope.requestLoading = false;\r\n });\r\n }\r\n }\r\n\r\n $scope.tileState = {\r\n isCollapsed: undefined\r\n };\r\n $scope.toggleState = function() {\r\n if($scope.tileState.isCollapsed === undefined)\r\n {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n };\r\n\r\n if(autoInit) {\r\n initialize();\r\n }\r\n\r\n $scope.auditMedications = auditMedications;\r\n $scope.updateFilteredPrescriptions = updateFilteredPrescriptions;\r\n $scope.pharmacyFormat = pharmacyFormat;\r\n $scope.medCheck = medCheck;\r\n $scope.medSelect = medSelect;\r\n $scope.rxRefillRequest = rxRefillRequest;\r\n $scope.changePharmacy = changePharmacy;\r\n };\r\n };\r\n \r\n var RxRefillCtrl = new RxRefillBaseCtrl(true, 'myChartPersonalDetails');\r\n var RxRefillMobileChartCtrl = function ($q, $scope, $stateParams, toaster, gettext, _, PatientPortalStorageRepository, PrescriptionService, TransitionManager, PatientSettingsService, $modal) {\r\n new RxRefillBaseCtrl(false, 'myChartMobile', { openPD: true }).call(this, $q, $scope, $stateParams, toaster, gettext, _, PatientPortalStorageRepository, PrescriptionService, TransitionManager, PatientSettingsService);\r\n $scope.viewModal = function(patientMedicationId) {\r\n var modalInstance = $modal.open({\r\n templateUrl: '/mychart/views/mobile/genericModal.html',\r\n controller: 'GenericModalCtrl',\r\n scope: $scope,\r\n resolve: {\r\n canPrint: function() {\r\n return false;\r\n },\r\n modalContent: function () {\r\n var patientMedication = _.find($scope.filteredPrescriptions, { RelPatientMedicationId: patientMedicationId });\r\n var modalContent =\r\n '
' + new Date(patientMedication.StartDate).toLocaleDateString() + ' - ' + new Date(patientMedication.EndDate).toLocaleDateString() + '
' +\r\n '
' + patientMedication.DrugName + '
' +\r\n '
' + patientMedication.Instructions + '
';\r\n return modalContent;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {\r\n });\r\n };\r\n };\r\n var RxRefillMobileCtrl = function ($q, $scope, $stateParams, toaster, gettext, _, PatientPortalStorageRepository, PrescriptionService, TransitionManager, PatientSettingsService) {\r\n new RxRefillBaseCtrl(true, 'myChartMobile', { openPD: true }).call(this, $q, $scope, $stateParams, toaster, gettext, _, PatientPortalStorageRepository, PrescriptionService, TransitionManager, PatientSettingsService);\r\n };\r\n \r\n angular.module('rxrefills').controller('RxRefillCtrl',\r\n ['$q', '$scope', '$stateParams', 'toaster', 'aprgettext', '_', 'PatientPortalStorageRepository', 'PrescriptionService', 'TransitionManager', 'PatientSettingsService',\r\n RxRefillCtrl]);\r\n angular.module('rxrefills').controller('RxRefillMobileCtrl',\r\n ['$q', '$scope', '$stateParams', 'toaster', 'aprgettext', '_', 'PatientPortalStorageRepository', 'PrescriptionService', 'TransitionManager', 'PatientSettingsService',\r\n RxRefillMobileCtrl]);\r\n angular.module('rxrefills').controller('RxRefillMobileChartCtrl',\r\n ['$q', '$scope', '$stateParams', 'toaster', 'aprgettext', '_', 'PatientPortalStorageRepository', 'PrescriptionService', 'TransitionManager', 'PatientSettingsService', '$uibModal',\r\n RxRefillMobileChartCtrl]);\r\n})();\r\n","angular.module('rxrefills').factory('PrescriptionService',\r\n ['PatientSettingsService', 'RxRefillRepository', '$q',\r\n function (PatientSettingsService, RxRefillRepository, $q) {\r\n 'use strict';\r\n\r\n var rxRefills,\r\n pharmacies,\r\n selectedMed,\r\n prescriptionsServiceUserId;\r\n\r\n \r\n var medFilters = [\r\n { Id: 1, Days: -1, Name: 'All' },\r\n { Id: 2, Days: 30, Name: 'Current' }\r\n ];\r\n\r\n function getDateDiff(date) {\r\n date = moment(date).startOf('d');\r\n var utc1 = moment().startOf('d');\r\n\r\n return date.diff(utc1, 'd');\r\n }\r\n\r\n function dateFilter(date, validDays) {\r\n //return true if there is no date since it's assumed the medication is ongoing\r\n //active < 0 means they are showing all Prescriptions\r\n if (date && validDays >= 0) {\r\n var diff = getDateDiff(date);\r\n return diff >= -1 * validDays;\r\n }\r\n return true;\r\n } \r\n \r\n function saveRxRefills(rxRefillsToSave) {\r\n rxRefills = rxRefillsToSave;\r\n return rxRefills;\r\n }\r\n\r\n function getRxRefills(patientId, expiring) {\r\n expiring = expiring || false;\r\n if (patientId !== prescriptionsServiceUserId) {\r\n resetService(patientId);\r\n }\r\n if (!rxRefills) {\r\n return RxRefillRepository.getRxRefills(patientId, expiring)\r\n .then(function (data) {\r\n rxRefills = data;\r\n return rxRefills;\r\n });\r\n } else {\r\n return $q.when(rxRefills);\r\n }\r\n }\r\n\r\n function putRxRefills(rxRefillRequest) {\r\n return RxRefillRepository.putRxRefills(rxRefillRequest.PatientId, rxRefillRequest)\r\n .then(function (data) {\r\n rxRefills = data;\r\n return rxRefills;\r\n });\r\n }\r\n\r\n function getPharmacies(patientId) {\r\n if (patientId !== prescriptionsServiceUserId) {\r\n resetService(patientId);\r\n }\r\n if (!pharmacies) {\r\n return RxRefillRepository.getPharmacies(patientId)\r\n .then(function (data) {\r\n pharmacies = data;\r\n return pharmacies;\r\n });\r\n } else {\r\n return $q.when(pharmacies);\r\n }\r\n }\r\n\r\n function setSelectedMedId(med) {\r\n selectedMed = med;\r\n }\r\n\r\n function clearSelectedMedId() {\r\n selectedMed = null;\r\n }\r\n\r\n function getSelectedMedId() {\r\n return selectedMed;\r\n }\r\n\r\n function resetService(patientId) {\r\n clearAll();\r\n setPrescriptionServiceUserId(patientId);\r\n }\r\n\r\n function clearAll(){\r\n rxRefills = null;\r\n pharmacies = null;\r\n selectedMed = null;\r\n }\r\n\r\n function setPrescriptionServiceUserId(patientId){\r\n prescriptionsServiceUserId = patientId;\r\n }\r\n\r\n function auditMedicationsLogging(requestReportDto) {\r\n return RxRefillRepository.postMedicationsAudit(requestReportDto);\r\n }\r\n return {\r\n medFilters: medFilters,\r\n saveRxRefills: saveRxRefills,\r\n getRxRefills: getRxRefills,\r\n dateFilter : dateFilter,\r\n putRxRefills: putRxRefills,\r\n getPharmacies: getPharmacies,\r\n setSelectedMedId: setSelectedMedId,\r\n getSelectedMedId: getSelectedMedId,\r\n clearSelectedMedId: clearSelectedMedId,\r\n auditMedicationsLogging : auditMedicationsLogging\r\n };\r\n }]);\r\n","angular.module('rxrefills').factory('RxRefillRepository',\r\n ['AprimaRestangular', function (AprimaRestangular) {\r\n 'use strict';\r\n\r\n var getRxRefills = function (uid, expiring) {\r\n expiring = !!expiring; //|| false;\r\n var restangular = AprimaRestangular.get('patient');\r\n //todo: need to get serperate pharmacy list, should controller care about how the calls to the endpoints work?\r\n //return restangular.one('rxrefills', uid).customGET(expiring);//get();\r\n return restangular.one('rxrefills', uid).get({expiring: expiring});\r\n };\r\n\r\n var putRxRefills = function (uid, rxRefilRequest) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('rxrefills', uid).customPUT(rxRefilRequest);\r\n };\r\n\r\n function getPharmacies(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/pharmacies').get();\r\n }\r\n\r\n function postMedicationsAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/medications').customPOST(reportRequestDto);\r\n }\r\n\r\n return{\r\n getRxRefills: getRxRefills,\r\n getPharmacies: getPharmacies,\r\n putRxRefills: putRxRefills,\r\n postMedicationsAudit : postMedicationsAudit\r\n };\r\n }]);\r\n\r\n","angular.module('mychart', [\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'headroom',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n\r\n\r\n //aprima\r\n 'apEasyScroller',\r\n 'account',\r\n 'app',\r\n 'mymessages',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api'\r\n\r\n]);\r\n\r\n//todo move to WebCommon\r\nangular.module('mychart').filter('tel', function () {\r\n 'use strict';\r\n return function (tel) {\r\n if (!tel) {\r\n return '';\r\n }\r\n\r\n var value = tel.toString().trim().replace(/\\D/g, '');\r\n\r\n// if (value.match(/[^0-9]/)) {\r\n// return tel;\r\n// }\r\n\r\n var country, city, number;\r\n\r\n switch (value.length) {\r\n case 10: // +1PPP####### -> C (PPP) ###-####\r\n country = 1;\r\n city = value.slice(0, 3);\r\n number = value.slice(3);\r\n break;\r\n\r\n case 11: // +CPPP####### -> CCC (PP) ###-####\r\n country = value[0];\r\n city = value.slice(1, 4);\r\n number = value.slice(4);\r\n break;\r\n\r\n case 12: // +CCCPP####### -> CCC (PP) ###-####\r\n country = value.slice(0, 3);\r\n city = value.slice(3, 5);\r\n number = value.slice(5);\r\n break;\r\n\r\n case 13: // (CCC)###-#### -> (PPP) ###-####\r\n return value.slice(0, 5) + ' ' + value.slice(5);\r\n\r\n default:\r\n return tel;\r\n }\r\n\r\n if (country === 1) {\r\n country = '';\r\n }\r\n\r\n number = number.slice(0, 3) + '-' + number.slice(3);\r\n\r\n return (country + ' (' + city + ') ' + number).trim();\r\n };\r\n});","angular.module('mychart').config(['AppRoutesProvider', '$stateProvider', '$urlRouterProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var portalSettings = { toolbarItem: 'chart' };\r\n\r\n var appRoutes = {\r\n 'myChart': {\r\n state: 'myChart',\r\n route: '/myChart',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartProblems': {\r\n state: 'myChart.myChartProblems',\r\n route: '/problems/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartPrescriptions': {\r\n state: 'myChart.myChartPrescriptions',\r\n route: '/rxrefill/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartVisitSummary': {\r\n state: 'myChart.myChartVisitSummary',\r\n route: '/visitSummary/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartDocuments': {\r\n state: 'myChart.myChartDocuments',\r\n route: '/documents/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartProcedures': {\r\n state: 'myChart.myChartProcedures',\r\n route: '/procedures/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartLabResults': {\r\n state: 'myChart.myChartLabResults',\r\n route: '/labResults/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartImmunizations': {\r\n state: 'myChart.myChartImmunizations',\r\n route: '/immunizations/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartReferenceMaterial': {\r\n state: 'myChart.myChartReferenceMaterial',\r\n route: '/referenceMaterial/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartMedicationAllergies': {\r\n state: 'myChart.myChartMedicationAllergies',\r\n route: '/medicationAllergies/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'myChartPersonalDetails': {\r\n state: 'myChart.myChartPersonalDetails',\r\n route: '/personalDetails/:id',\r\n portalSettings: portalSettings\r\n },\r\n 'shareCCD': {\r\n state: 'shareCCD',\r\n route: '/shareCCD/',\r\n portalSettings: portalSettings\r\n },\r\n 'loadingDocument': {\r\n state: 'loadingDocument',\r\n route: '/loadingDocument/',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true,\r\n hideFooter: true\r\n }\r\n },\r\n 'chartConsent': {\r\n state: 'myChart.chartConsent',\r\n route: '/chartConsent/:redirectRoute',\r\n portalSettings: {\r\n toolbarItem: 'blank'\r\n }\r\n },\r\n 'myChartMobile': {\r\n state: 'myChartMobile',\r\n route: '/myChartMobile/:openPD',\r\n portalSettings: portalSettings \r\n },\r\n 'chartMobileConsent': {\r\n state: 'myChartMobile.chartConsent',\r\n route: '/chartConsent/:redirectRoute',\r\n portalSettings: portalSettings\r\n }\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.myChart.state, {\r\n url: appRoutes.myChart.route,\r\n templateUrl: '/mychart/views/myChart.html',\r\n controller: 'MyChartCtrl',\r\n description: '/myChart'\r\n })\r\n .state(appRoutes.myChartVisitSummary.state, {\r\n url: appRoutes.myChartVisitSummary.route,\r\n templateUrl: '/mychart/views/visitSummary.html',\r\n controller: 'VisitSummaryCtrl',\r\n description: '/VisitSummary',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Visit Summary'); }\r\n }\r\n })\r\n .state(appRoutes.myChartProblems.state, {\r\n url: appRoutes.myChartProblems.route,\r\n templateUrl: '/mychart/views/problems.html',\r\n controller: 'ProblemsCtrl',\r\n description: 'Problems',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Problems'); }\r\n }\r\n })\r\n .state(appRoutes.myChartProcedures.state, {\r\n url: appRoutes.myChartProcedures.route,\r\n templateUrl: '/mychart/views/procedures.html',\r\n controller: 'ProceduresCtrl',\r\n description: '/Procedures',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Procedures'); }\r\n }\r\n })\r\n .state(appRoutes.myChartLabResults.state, {\r\n url: appRoutes.myChartLabResults.route,\r\n templateUrl: '/mychart/views/labResults.html',\r\n controller: 'LabResultsCtrl',\r\n description: '/LabResults',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Test Results'); }\r\n }\r\n })\r\n .state(appRoutes.myChartImmunizations.state, {\r\n url: appRoutes.myChartImmunizations.route,\r\n templateUrl: '/mychart/views/immunizations.html',\r\n controller: 'ImmunizationsCtrl',\r\n description: '/Immunizations',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Immunizations'); }\r\n }\r\n })\r\n .state(appRoutes.myChartPrescriptions.state, {\r\n url: appRoutes.myChartPrescriptions.route,\r\n templateUrl: '/mychart/views/prescriptionsList.html',\r\n controller: 'RxRefillCtrl',\r\n description: '/Prescriptions',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Prescriptions'); }\r\n }\r\n })\r\n .state(appRoutes.myChartReferenceMaterial.state, {\r\n url: appRoutes.myChartReferenceMaterial.route,\r\n templateUrl: '/mychart/views/referenceMaterial.html',\r\n controller: 'ReferenceMaterialCtrl',\r\n description: '/ReferenceMaterial',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Educational Material'); }\r\n }\r\n })\r\n .state(appRoutes.myChartMedicationAllergies.state, {\r\n url: appRoutes.myChartMedicationAllergies.route,\r\n templateUrl: '/mychart/views/medicationAllergies.html',\r\n controller: 'MedicationAllergiesCtrl',\r\n description: '/ReferenceMaterial',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Medication Allergies'); }\r\n }\r\n })\r\n .state(appRoutes.myChartDocuments.state, {\r\n url: appRoutes.myChartDocuments.route,\r\n templateUrl: '/mychart/views/patientDocuments.html',\r\n controller: 'PatientDocumentsCtrl',\r\n description: '/PatientDocuments',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Documents'); }\r\n }\r\n })\r\n .state(appRoutes.myChartPersonalDetails.state, {\r\n url: appRoutes.myChartPersonalDetails.route,\r\n templateUrl: '/mychart/views/personalDetails.html',\r\n controller: 'PersonalDetailsCtrl',\r\n description: '/PersonalDetails',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Patient Overview'); }\r\n }\r\n })\r\n .state(appRoutes.shareCCD.state, {\r\n url: appRoutes.shareCCD.route,\r\n templateUrl: '/mychart/views/shareCCD.html',\r\n controller: 'ShareCCDCtrl',\r\n description: '/PersonalDetails',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Continuity Care Document'); }\r\n }\r\n })\r\n .state(appRoutes.loadingDocument.state, {\r\n url: appRoutes.loadingDocument.route,\r\n templateUrl: '/mychart/views/loadingDocument.html',\r\n controller: '',\r\n description: '/MyChart'\r\n })\r\n .state(appRoutes.chartConsent.state, {\r\n url: appRoutes.chartConsent.route,\r\n templateUrl: '/mychart/views/chartConsent.html',\r\n controller: 'ChartConsentCtrl',\r\n description: '/ChartConsent',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Patient Chart Consent'); }\r\n }\r\n })\r\n .state(appRoutes.myChartMobile.state, {\r\n url: appRoutes.myChartMobile.route,\r\n templateUrl: '/mychart/views/myChartMobile.html',\r\n controller: 'MyChartMobileCtrl',\r\n description: '/MyChartMobile'\r\n })\r\n .state(appRoutes.chartMobileConsent.state, {\r\n url: appRoutes.chartMobileConsent.route,\r\n templateUrl: '/mychart/views/chartConsent.html',\r\n controller: 'ChartConsentCtrl',\r\n description: '/ChartMobileConsent',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Patient Chart Consent'); }\r\n }\r\n });\r\n }]);","angular.module('mychart').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/mychart/views/chartConsent.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Patient Chart Consent' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/components/apPrintablePatientInfo.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::vm.fullName}}
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" ({{::vm.age}})\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/directives/apImmunizationsCard.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::'Vaccine' | translate}}{{::'Vaccine Type' | translate}}{{::'Date' | translate}}{{::'Details' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::vaccine.Name}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::immunization.Name}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::immunization.Details}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/immunizations.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Immunizations' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and immunizations could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/labResults.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Test Results' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No Test Results' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::\\\"Order Date\\\" | translate}}{{::\\\"Description\\\" | translate}}{{::\\\"Result Date\\\" | translate}}{{::\\\"Results\\\" | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::labResult.Result.Description}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::labResult.Result.AttachmentType}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'View Results' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::attachmentInfo.Extension | uppercase}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::labResult.Result.Description}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::labResult.Result.AttachmentType}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'View Results' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ 'PDF' | uppercase}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/loadingDocument.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Loading Document' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{::'You will be redirected shortly...'| translate}}

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/medicationAllergies.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Medication Allergies' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no Medication Allergies' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::'Record Date' | translate}}{{::'Allergen' | translate}}{{::'Reaction' | translate}}{{::'Notes' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::group.Allergen}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::item.Reaction}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::item.Notes}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and medication allergies could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/genericModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/immunizations.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Immunizations' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no Immunizations' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Date' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Immunization Name' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Vaccine Name' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Details' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::patientImmunization.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::immunization.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::immunization.Details}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and immunizations could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/labResults.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Test Results' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'No Test Results' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Download' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Order' | translate }}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Date' | translate }}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Result' | translate }}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Date' | translate }}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Description' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::labResult.Result.Description}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::labResult.Result.AttachmentType}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/medicationAllergies.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Medication Allergies' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no Medication Allergies' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Notes' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Record' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Date' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Disease' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Reaction' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::item.Notes}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::group.Allergen}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::item.Reaction}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and medication allergies could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/personalDetails.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Personal Details' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/prescriptionsList.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'No prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Refill' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Status' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Duration' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Drug + Directions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::med.IsActive ? dateDiff(med.EndDate) : ''}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    -
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Pending Review' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Discontinued' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::med.DrugName}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::med.Instructions}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient medications could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s medications.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/problems.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Problems' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'No problems have been entered' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Status' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Duration' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Disease' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Notes' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{prob.IsActive ? ('Active' | translate) : ('Not Active' | translate)}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    -
    \\r\" +\r\n \"\\n\" +\r\n \"
    -----
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::prob.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::prob.Notes}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/procedures.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Procedures' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no procedures' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Date' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Procedure' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Description' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::proc.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::proc.Description}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/referenceMaterial.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Educational Material' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'No Reference Material found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'View Form' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Description' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::'Available Languages' | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    {{::formGroup.GroupName | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::refForm.Language.Description | translate}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/mobile/visitSummary.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Visit Summary' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'No completed Visit Summaries were found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Download' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Date' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Clinical Note Type' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Diagnoses' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'Provider' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::visit.ClinicalNoteTypeName}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    {{::diagnosisName}}
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::visit.Provider}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/modals/ccdAccessLog.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{'Access Log' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No logs found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::'Disclosure Date' | translate}}{{::'Patient' | translate}}{{::'Portal Login Name' | translate}}{{::'Disclosure Purpose' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::log.DisclosedByName}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::log.PortalLoginName}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::log.DisclosurePurpose}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/modals/ccdTransmit.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{'Transmit CCD' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Transmit feature is disabled. The transmit feature has not been configured.'}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Email over the internet is not secure. Information in an email, including attachments, can be intercepted and read by parties other than the person to whom it is addressed.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/modals/completeChartModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Downloading patient chart for ' | translate}} {{model.FullName}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Patient chart for ' | translate }} {{model.FullName}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred generating the patient chart and could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to download the patient chart.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/modals/immunizationModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no Immunizations' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/modals/labResultPrintDownloadModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{attachmentInfo.Description}} : {{attachmentInfo.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Unable to view? Download ' | translate}}{{'here.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Attachment type is not supported' | translate}} ({{attachmentInfo.Extension}}).\\r\" +\r\n \"\\n\" +\r\n \" {{::'Attachment type is not known and cannot be displayed.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/modals/observationOrderPrintDownloadModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{resultInfo.Description}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Unable to view? Download ' | translate}}{{'here.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/modals/pharmacySearch.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Preferred Pharmacy' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address1}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address2}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Address.State}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Phone.PhoneNumber | tel}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"  {{::'Remove' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::'No Results Found' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address1}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address2}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Address.State}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Phone.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"  {{::'Add' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/myChart.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"patient-image\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::myChart.User.FullName}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" ({{myChart.User.Age}})\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Visit Summaries' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Documents' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Problems' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Medications' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Procedures' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Test Results' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Immunizations' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Educational Material' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Medication Allergies' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Personal Details' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Patient Overview' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and My Chart could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to My Chart.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/myChartMobile.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::\\\"Chart\\\" | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"patient-image\\\"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{::myChart.User.FullName}}

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" ({{myChart.User.Age}})\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and My Chart could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to My Chart.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/patientDocuments.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/personalDetails.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Patient Overview' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Medication Allergies' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Family Medication History' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Social History' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/personalDetailsCommon.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Personal Details' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.SocialSecurityNumber | apSsnFilter}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.PhoneNumber1Type.Description}}: {{patientDetail.PhoneNumber1 | tel}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.PhoneNumber2Type.Description}}: {{patientDetail.PhoneNumber2 | tel}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.PhoneNumber3Type.Description}}: {{patientDetail.PhoneNumber3 | tel}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.PhoneNumber4Type.Description}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

:

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.PhoneNumber4 | tel}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

{{patientDetail.EmailAddress1}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{patientDetail.EmailAddress2}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Address1.Address1}},\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Address1.Address2}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Address1.City}}, {{patientDetail.Address1.State}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Address1.Country}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Address1.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

No special characters

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Gender.Name}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.MaritalStatus.Description}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Race.Description}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::ethnicity.Description}},\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Language.Description}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Driver\\\\'s License'| translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.DriversLicenseNumber}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

No special characters

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Emergency Contact' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::contact.FirstName}} {{::contact.LastName}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{::contact.PhoneNumber1.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'Unknown' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{::contact.PhoneNumber2.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Pharmacies' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Name}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address1}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Address.Address2}}, {{pharmacy.Address.State}} {{pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Address.State}} {{pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'p.' | translate}} {{pharmacy.Phone.PhoneNumber | tel}}{{::'None' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Name}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address1}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Address.Address2}}, {{pharmacy.Address.State}} {{pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'p.' | translate}} {{pharmacy.Phone.PhoneNumber | tel}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pharmacy.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"   {{::'Remove' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address1}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.Address2}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Address.State}} , {{pharmacy.Address.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{pharmacy.Phone.PhoneNumber | tel}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Insurance Details' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Insurance.InsuranceCarrier.Name}} {{patientDetail.Insurance.InsurancePlan.Name}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'None' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Insurance.PrimaryAccountHolderFirstName}} {{patientDetail.Insurance.PrimaryAccountHolderLastName}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Insurance.PlanMemberId}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{patientDetail.Insurance.PlanGroupId}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/prescriptionsList.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Prescriptions' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No prescriptions were found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::'Drug + Directions' | translate}}{{::'Status' | translate}}{{::'Duration' | translate}}{{::'Request Refill' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.DrugName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.Instructions}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.IsActive ? dateDiff(med.EndDate) : ''}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Discontinued' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{'Pending Review' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Please contact office to process.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient medications could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s medications.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/problems.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Problems' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No problems were found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::'Disease' | translate}}{{::'Date' | translate}}{{::'Status' | translate}}{{::'Duration' | translate}}{{::'Notes' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{prob.Name}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{prob.IsActive ? ('Active' | translate) : ('Not Active' | translate)}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{prob.Duration ? prob.Duration : '-----'}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" -----\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Hide' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'View' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{prob.Notes}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/procedures.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Procedures' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No procedures were found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::'Procedure' | translate}}{{::'Date' | translate}}{{::'Description' | translate}}{{::'Notes' | translate}}
{{::proc.Name}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::proc.Description}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" -----\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Hide' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'View' | translate}} \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" Viewing {{procedures.length}} Diagnosis\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" < >\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/referenceMaterial.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Educational Material' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{ ::language.Description }}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No Educational Material found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::\\\"Description\\\" | translate}}{{::\\\"Available Languages\\\" | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::formGroup.GroupName}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::refForm.Language.Description}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'View Form' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::attachmentInfo.Extension | uppercase}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/shareCCD.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'Continuity Care Document' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Document Preview' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mychart/views/visitSummary.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Visit Summary' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No completed Visit Summaries were found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{::\\\"Date\\\" | translate}}{{::\\\"Clinical Note Type\\\" | translate}}{{::\\\"Diagnoses\\\" | translate}}{{::\\\"Provider\\\" | translate}}{{::\\\"Summary\\\" | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::visit.ClinicalNoteTypeName}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::diagnoses.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::visit.Provider}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'View Summary' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient info could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s info.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\n}]);\n","(function(angular){\r\n 'use strict';\r\n\r\n angular.module('mychart').component('apPrintablePatientInfo', {\r\n templateUrl: '/mychart/views/components/apPrintablePatientInfo.html',\r\n controllerAs: 'vm',\r\n controller: [\r\n 'MyChartService',\r\n 'PatientPortalStorageRepository',\r\n ApPrintablePatientInfo,\r\n ],\r\n });\r\n\r\n function ApPrintablePatientInfo(\r\n MyChartService,\r\n PatientPortalStorageRepository\r\n ) {\r\n var vm = this;\r\n vm.fullName = null;\r\n vm.age = null;\r\n vm.birthDate = null;\r\n\r\n activate();\r\n\r\n function activate() {\r\n var patient = PatientPortalStorageRepository.getActivePatient();\r\n MyChartService.getDetails(patient.id).then(function(details) {\r\n if(details) {\r\n vm.fullName = details.FirstName + ' ' + details.LastName;\r\n vm.age = details.Age;\r\n vm.birthDate = details.DateOfBirth;\r\n }\r\n });\r\n }\r\n }\r\n\r\n})(window.angular);","angular.module('mychart').controller('ChartConsentCtrl',\r\n ['_', '$scope', 'TransitionManager', '$stateParams', 'PatientPortalStorageRepository', 'ConsentService', 'aprgettext', 'toaster',\r\n function (_, $scope, TransitionManager, $stateParams, PatientPortalStorageRepository, ConsentService, gettext, toaster) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n var requestedChartRoute = $stateParams.redirectRoute;\r\n\r\n $scope.model = {\r\n PatientChartConsent: '',\r\n AgreeCheckboxText: gettext('I have read the consent form and the above information and I accept the conditions.'),\r\n ConsentWarningMessage: gettext('Please indicate that you agree with this consent form and press the Agree button to proceed.')\r\n };\r\n\r\n ConsentService\r\n .getChartConsent(activePatientId)\r\n .then(function (data) {\r\n $scope.removeHttpError();\r\n $scope.model.PatientChartConsent = data;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n\r\n $scope.disagreeToConsent = function () {\r\n TransitionManager.transition({appRoute: 'dashboard'}, true);\r\n };\r\n\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.chartConsentForm.$invalid) {\r\n return;\r\n }\r\n\r\n // $submitted flag\r\n $scope.submitted = true;\r\n\r\n ConsentService\r\n .postChartConsent(activePatientId)\r\n .then(function () {\r\n $scope.$emit('ShowChartSidebar:updated', true); // fire event up to MyChartCtrl to show the side bar\r\n var transition = {\r\n appRoute: requestedChartRoute,\r\n opts: {\r\n id: activePatientId,\r\n },\r\n };\r\n TransitionManager.transition(transition, true);\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred during saving'));\r\n });\r\n\r\n $scope.submitted = false;\r\n };\r\n\r\n }]);","(function () {\r\n 'use strict';\r\n var ImmunizationsBaseCtrl = function (autoInit) {\r\n return function ($q, $scope, $stateParams, MyChartService, DateUtilities, $modal, PatientPortalStorageRepository) {\r\n $scope.loadingStartup = true;\r\n $scope.loadingVaccineCard = false; // starts as false due to mobile view\r\n $scope.model = {\r\n PatientImmunizations: null,\r\n ImmunizationsExist: '',\r\n SelectedVaccineCard: '',\r\n VaccineCardList: {\r\n Adult: '',\r\n Pediatric: '',\r\n Misc: ''\r\n }\r\n };\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n\r\n function initialize() {\r\n $scope.loadingStartup = true;\r\n $scope.removeHttpError();\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n var getDetailsPromise = MyChartService.getDetails(activePatientId);\r\n var getMyChartConfigPromise = MyChartService.getMyChartConfig();\r\n\r\n $q.all([getDetailsPromise, getMyChartConfigPromise]).then(function (results) {\r\n var details = results[0];\r\n var data = results[1];\r\n\r\n $scope.model.VaccineCardList.Adult = {\r\n Name: 'Adult',\r\n Id: data.ViewImmunizations.Config.Adult,\r\n };\r\n $scope.model.VaccineCardList.Pediatric = {\r\n Name: 'Pediatric',\r\n Id: data.ViewImmunizations.Config.Pediatric,\r\n };\r\n if (data.ViewImmunizations.Config.Misc) {\r\n $scope.model.VaccineCardList.Pediatric = {\r\n Name: 'Misc',\r\n Id: data.ViewImmunizations.Config.Misc,\r\n };\r\n }\r\n var patientAge = DateUtilities.getPersonAge(new Date(details.DateOfBirth).toLocaleDateString()).age;\r\n var vaccineCardType = (patientAge > 18) ? $scope.model.VaccineCardList.Adult : $scope.model.VaccineCardList.Pediatric;\r\n loadVaccineCard(vaccineCardType);\r\n auditImmunization(reportRequestDto);\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingStartup = false;\r\n });\r\n }\r\n\r\n function loadVaccineCard(vaccineCardType) {\r\n $scope.loadingVaccineCard = true;\r\n $scope.removeHttpError();\r\n $scope.model.SelectedVaccineCard = vaccineCardType;\r\n MyChartService.getImmunizations(activePatient.id, vaccineCardType.Id)\r\n .then(function (data) {\r\n $scope.model.PatientImmunizations = _.forEach(data.Results, function (vaccineTypeList) {\r\n if (vaccineTypeList.Immunizations.length === 0) {\r\n vaccineTypeList.Immunizations.push({\r\n Name: '',\r\n AdministeredDate: null,\r\n Details: ''\r\n });\r\n } else {\r\n $scope.model.ImmunizationsExist = true;\r\n }\r\n });\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingVaccineCard = false;\r\n });\r\n }\r\n\r\n function auditImmunization(reportRequestDto) {\r\n MyChartService.auditImmunizationLogging(reportRequestDto);\r\n }\r\n\r\n function viewModal() {\r\n $scope.modalPrint = true;\r\n var modalInstance = $modal.open({\r\n templateUrl: '/mychart/views/modals/immunizationModal.html',\r\n controller: 'ImmunizationModalCtrl',\r\n scope: $scope,\r\n resolve: {\r\n patientImmunizations: function () {\r\n return $scope.model.PatientImmunizations;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.modalPrint = false;\r\n });\r\n }\r\n\r\n $scope.tileState = {\r\n isCollapsed: undefined\r\n };\r\n $scope.toggleState = function toggleState() {\r\n if ($scope.tileState.isCollapsed === undefined) {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n };\r\n\r\n $scope.auditImmunzation = auditImmunization;\r\n $scope.loadVaccineCard = loadVaccineCard;\r\n $scope.viewModal = viewModal;\r\n\r\n if (autoInit) {\r\n initialize();\r\n }\r\n };\r\n };\r\n //The desktop controller automatically loads the data; the mobile one waits until the user expands that section\r\n var ImmunizationsCtrl = new ImmunizationsBaseCtrl(true);\r\n var ImmunizationsMobileCtrl = new ImmunizationsBaseCtrl(false);\r\n angular.module('mychart').controller('ImmunizationsCtrl',\r\n ['$q', '$scope', '$stateParams', 'MyChartService', 'DateUtilities', '$uibModal', 'PatientPortalStorageRepository',\r\n ImmunizationsCtrl]);\r\n angular.module('mychart').controller('ImmunizationsMobileCtrl',\r\n ['$q', '$scope', '$stateParams', 'MyChartService', 'DateUtilities', '$uibModal', 'PatientPortalStorageRepository',\r\n ImmunizationsMobileCtrl]);\r\n})();","(function () {\r\n 'use strict';\r\n var LabResultsBaseCtrl = function (autoInit) {\r\n return function ($scope, $stateParams, MyChartService, PatientPortalStorageRepository, $modal, PersonRepository, PatientAttachmentRepository, gettext, toaster, BrowserService) {\r\n $scope.loading = false;\r\n $scope.isModalDisplayed = false;\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient(),\r\n loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n\r\n function initialize() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyChartService\r\n .getLabResults(activePatient.id)\r\n .then(function (data) {\r\n $scope.labResults = _(data.plain()).map(function (entry) {\r\n if (entry.AttachmentInfos.length) {\r\n entry.AttachmentInfos = _(entry.AttachmentInfos).map(function (attachmentInfo) {\r\n return _.assign(attachmentInfo, {Downloading: false});\r\n }).value();\r\n return entry;\r\n } else {\r\n entry.Result = _.assign(entry.Result, {Downloading: false});\r\n return entry;\r\n }\r\n }).value();\r\n auditLabResults();\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function viewLabResultAttachment(description, attachmentInfo) {\r\n $scope.isModalDisplayed = true;\r\n\r\n var modalConfig = {\r\n Title: description,\r\n PatientId: activePatient.id,\r\n DocumentId: attachmentInfo.AttachmentUid,\r\n DocumentLoad: getLabResultAttachment,\r\n DocumentDownload: downloadLabResultAttachmentOriginalFormat,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.isModalDisplayed = false;\r\n });\r\n }\r\n \r\n function getLabResultAttachment(documentId, requestSettings) {\r\n return PatientAttachmentRepository.getAttachment(documentId, activePatient.id, requestSettings)\r\n .then(function (data) {\r\n auditLabResults();\r\n return data;\r\n });\r\n }\r\n\r\n function downloadLabResultAttachmentOriginalFormat(documentId) {\r\n return PatientAttachmentRepository.getAttachmentRetainOriginalFormat(documentId, activePatient.id)\r\n .then(function (data) {\r\n auditLabResults();\r\n return data;\r\n });\r\n }\r\n\r\n function downloadLabResultAttachment(description, attachmentInfo) {\r\n attachmentInfo.Downloading = true;\r\n return PersonRepository.getAttachment(activePatient.id, attachmentInfo.AttachmentUid)\r\n .then(function (data) {\r\n auditLabResults();\r\n return {Data: data.Data, Extension: data.Extension, FileName: description + '_' + activePatient.firstName + activePatient.lastName};\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred while downloading'));\r\n })\r\n .finally(function () {\r\n attachmentInfo.Downloading = false;\r\n });\r\n }\r\n\r\n function viewLabResultObservation(description, resultId) {\r\n $scope.isModalDisplayed = true;\r\n\r\n var modalConfig = {\r\n Title: description,\r\n DownloadFileName: '',\r\n PatientId: activePatient.id,\r\n DocumentId: resultId,\r\n DocumentLoad: getObservationOrderPdf,\r\n DocumentDownload: getObservationOrderPdf,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.isModalDisplayed = false;\r\n });\r\n }\r\n\r\n function getObservationOrderPdf(documentId) {\r\n return PersonRepository.getObservationOrderPdf(activePatient.id, documentId)\r\n .then(function (data) {\r\n auditLabResults();\r\n return data;\r\n });\r\n }\r\n\r\n function downloadLabResultObservation(labResult) {\r\n labResult.Downloading = true;\r\n return PersonRepository.getObservationOrderPdf(activePatient.id, labResult.Id)\r\n .then(function (data) {\r\n auditLabResults();\r\n return {Data: data.Data, Extension: 'pdf', FileName: labResult.Description + '_' + activePatient.firstName + activePatient.lastName};\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred while downloading'));\r\n })\r\n .finally(function () {\r\n labResult.Downloading = false;\r\n });\r\n }\r\n\r\n function auditLabResults() {\r\n MyChartService.auditLabResultsLogging(reportRequestDto);\r\n }\r\n\r\n $scope.tileState = {\r\n isCollapsed: undefined\r\n };\r\n\r\n function toggleState() {\r\n if ($scope.tileState.isCollapsed === undefined) {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n }\r\n\r\n if(autoInit) {\r\n initialize();\r\n }\r\n\r\n $scope.viewLabResultAttachment = viewLabResultAttachment;\r\n $scope.getLabResultAttachment = getLabResultAttachment;\r\n $scope.downloadLabResultObservation = downloadLabResultObservation;\r\n $scope.viewLabResultObservation = viewLabResultObservation;\r\n $scope.downloadLabResultAttachment = downloadLabResultAttachment;\r\n $scope.getObservationOrderPdf = getObservationOrderPdf;\r\n $scope.toggleState = toggleState;\r\n };\r\n };\r\n var LabResultsCtrl = new LabResultsBaseCtrl(true);\r\n var LabResultsMobileCtrl = new LabResultsBaseCtrl(false);\r\n\r\n angular.module('mychart').controller('LabResultsCtrl',\r\n ['$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository', '$uibModal', 'PersonRepository', 'PatientAttachmentRepository', 'aprgettext', 'toaster',\r\n 'BrowserService',\r\n LabResultsCtrl]);\r\n angular.module('mychart').controller('LabResultsMobileCtrl',\r\n ['$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository', '$uibModal', 'PersonRepository', 'PatientAttachmentRepository', 'aprgettext', 'toaster',\r\n 'BrowserService',\r\n LabResultsMobileCtrl]);\r\n})();","(function () {\r\n 'use strict';\r\n var MedicationAllergiesBaseCtrl = function (autoInit) {\r\n return function (_, $scope, $stateParams, MyChartService, PatientPortalStorageRepository) {\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n\r\n $scope.model = {\r\n MedicationAllergies: null\r\n\r\n };\r\n\r\n function auditMedicationAllergies(reportRequestDto) {\r\n MyChartService.auditMedicationAllergiesLogging(reportRequestDto);\r\n }\r\n\r\n function initialize() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyChartService\r\n .getMedicationAllergies(activePatient.id)\r\n .then(function (data) {\r\n $scope.model.MedicationAllergies = data.plain();\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n auditMedicationAllergies(reportRequestDto);\r\n }\r\n\r\n $scope.tileState = {\r\n isCollapsed: undefined\r\n };\r\n\r\n function toggleState() {\r\n if ($scope.tileState.isCollapsed === undefined) {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n }\r\n\r\n if (autoInit) {\r\n initialize();\r\n }\r\n\r\n $scope.auditMedicationAllergies = auditMedicationAllergies;\r\n $scope.toggleState = toggleState;\r\n };\r\n };\r\n\r\n var MedicationAllergiesCtrl = new MedicationAllergiesBaseCtrl(true);\r\n var MedicationAllergiesMobileCtrl = new MedicationAllergiesBaseCtrl(false);\r\n\r\n angular.module('mychart').controller('MedicationAllergiesCtrl',\r\n ['_', '$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository',\r\n MedicationAllergiesCtrl]);\r\n angular.module('mychart').controller('MedicationAllergiesMobileCtrl',\r\n ['_', '$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository',\r\n MedicationAllergiesMobileCtrl]);\r\n})();"," (function() {\r\n 'use strict';\r\n var MyChartBaseCtrl = function (destinationRoutePrefix, chartConsentRoute) {\r\n return function($scope, $q, MyChartService, PatientPortalStorageRepository, $modal, ConsentService, TransitionManager, $state, PersonRepository, gettext, toaster, BrowserService)\r\n {\r\n $scope.loading = false;\r\n $scope.ShowSidebar = false;\r\n $scope.collapseMedicalHistory = false;\r\n $scope.collapsePersonalDetails = true;\r\n $scope.myChart = {\r\n 'User': {FullName: '', Id: '', Age: ''},\r\n 'Config': ''\r\n };\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient(),\r\n loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n var isPatientChartAccepted = false;\r\n\r\n var updateUsageMetricDto = {\r\n MetricTypeName: '170.315(e)(1) - View, Download, and Transmit to 3rd Party',\r\n MetricSubTypeName: 'Success',\r\n IncrementFactor: 1,\r\n };\r\n\r\n $scope.expandPersonalDetails = function () {\r\n $scope.collapseMedicalHistory = true;\r\n $scope.collapsePersonalDetails = false;\r\n };\r\n $scope.expandMedicalDetails = function () {\r\n $scope.collapseMedicalHistory = false;\r\n $scope.collapsePersonalDetails = true;\r\n };\r\n\r\n function loadMyChart() {\r\n return MyChartService.loadMyChart(activePatient.id)\r\n .then(function (data) {\r\n var details = data[0],\r\n config = data[1];\r\n\r\n $scope.myChart.User.FullName = details.FirstName + ' ' + details.LastName;\r\n $scope.myChart.User.Id = details.Id;\r\n $scope.myChart.User.Age = details.Age;\r\n $scope.Date = details.DateOfBirth;\r\n $scope.FirstName = details.FirstName;\r\n $scope.LastName = details.LastName;\r\n\r\n $scope.myChart.Config = config;\r\n });\r\n }\r\n\r\n function getPatientChartAccepted() {\r\n return ConsentService.isChartConsentAccepted(activePatient.id)\r\n .then(function (data) {\r\n isPatientChartAccepted = data;\r\n $scope.ShowSidebar = isPatientChartAccepted;\r\n });\r\n }\r\n\r\n\r\n\r\n function loadController() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n var loadMyChartPromise = loadMyChart();\r\n var getPatientChartAcceptedPromise = getPatientChartAccepted();\r\n\r\n $q.all([getPatientChartAcceptedPromise, loadMyChartPromise]).then(function() {\r\n if (!isPatientChartAccepted) {\r\n var currentName = $state.current.name;\r\n var destinationRoute = currentName.replace(destinationRoutePrefix, '');\r\n TransitionManager.transition({appRoute: chartConsentRoute, opts: {redirectRoute: destinationRoute}});\r\n }\r\n }).catch(function (response) {\r\n $scope.addHttpError(response);\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadController();\r\n\r\n\r\n function displayCompleteChart() {\r\n //use with pdf viewer\r\n $scope.isModalDisplayed = true;\r\n auditChartResults();\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/mychart/views/modals/completeChartModal.html',\r\n controller: 'CompleteChartModalCtrl',\r\n size: 'lg',\r\n resolve: {\r\n activePatient: function() {\r\n return PatientPortalStorageRepository.getActivePatient();\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.isModalDisplayed = false;\r\n });\r\n }\r\n\r\n function viewCompleteChartImage() {\r\n $scope.isModalDisplayed = true;\r\n auditChartResults();\r\n\r\n var modalConfig = {\r\n Title: gettext('Complete Chart'),\r\n DownloadFileName: activePatient.firstName + activePatient.lastName + '_CompleteChart.pdf',\r\n DocumentId: activePatient.id,\r\n DocumentLoad: getCompleteChartImage,\r\n DocumentDownload: downloadCompleteChart,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.isModalDisplayed = false;\r\n });\r\n }\r\n\r\n // this function is called with a documentId, but it's not being used here,\r\n // since the repository call below only needs the patient id\r\n function getCompleteChartImage(documentId, requestSettings) {\r\n var patientId = activePatient.id;\r\n return PersonRepository.getCompleteChartImage(patientId, requestSettings);\r\n }\r\n\r\n // this function is called with a documentId, but it's not necessary here,\r\n // since the repository call below only needs the patient id\r\n function downloadCompleteChart() {\r\n var patientId = activePatient.id;\r\n var usageMetricSubTypeName = 'Success';\r\n auditChartResults();\r\n return PersonRepository.getCompleteChart(patientId)\r\n .then(function (data) {\r\n return {Data: data.Data, Extension: 'pdf', FileName: 'CompleteChart' + '_' + activePatient.fullName};\r\n })\r\n .catch(function () {\r\n usageMetricSubTypeName = 'Failure';\r\n toaster.pop('error', '', gettext('An error occurred while downloading'));\r\n })\r\n .finally(function () {\r\n updateUsageMetric(usageMetricSubTypeName);\r\n });\r\n }\r\n\r\n var showChartSidebarListener = $scope.$on('ShowChartSidebar:updated', function (event, data) {\r\n $scope.ShowSidebar = data;\r\n });\r\n\r\n $scope.$on('$destroy', function() {\r\n showChartSidebarListener(); // un-subscribed listener event\r\n });\r\n\r\n function auditChartResults() {\r\n MyChartService.auditChartLogging(reportRequestDto);\r\n }\r\n\r\n function updateUsageMetric(metricSubTypeName) {\r\n updateUsageMetricDto.MetricSubTypeName = metricSubTypeName;\r\n MyChartService.usageMetricLogging(updateUsageMetricDto);\r\n }\r\n\r\n $scope.displayCompleteChart = displayCompleteChart;\r\n $scope.viewCompleteChartImage = viewCompleteChartImage;\r\n };\r\n };\r\n var MyChartCtrl = new MyChartBaseCtrl('myChart.', 'chartConsent');\r\n var MyChartMobileCtrl = function ($scope, $q, MyChartService, PatientPortalStorageRepository, $modal, ConsentService, TransitionManager, $state, PersonRepository, gettext, toaster) {\r\n new MyChartBaseCtrl('myChartMobile.', 'chartMobileConsent').call(this, $scope, $q, MyChartService, PatientPortalStorageRepository, $modal, ConsentService, TransitionManager, $state, PersonRepository, gettext, toaster);\r\n $scope.openPersonalDetails = $state.params.openPD === 'true';\r\n };\r\n angular.module('mychart').controller('MyChartCtrl',\r\n ['$scope', '$q', 'MyChartService', 'PatientPortalStorageRepository', '$uibModal', 'ConsentService', 'TransitionManager', '$state', 'PersonRepository', 'aprgettext', 'toaster',\r\n 'BrowserService',\r\n MyChartCtrl]);\r\n angular.module('mychart').controller('MyChartMobileCtrl',\r\n ['$scope', '$q', 'MyChartService', 'PatientPortalStorageRepository', '$uibModal', 'ConsentService', 'TransitionManager', '$state', 'PersonRepository', 'aprgettext', 'toaster',\r\n 'BrowserService',\r\n MyChartMobileCtrl]);\r\n })();\r\n","(function() {\r\n 'use strict';\r\n\r\n angular.module('mychart').controller('PatientDocumentsCtrl', [\r\n PatientDocumentsCtrl\r\n ]);\r\n\r\n function PatientDocumentsCtrl(\r\n ) {\r\n console.log('WORKING');\r\n\r\n var vm = this;\r\n\r\n vm.loading = false;\r\n vm.context = null;\r\n }\r\n\r\n})();","(function() {\r\n 'use strict';\r\n var PersonalDetailsBaseCtrl = function (autoInit) {\r\n return function ($scope, $stateParams, $modal, $filter, MyChartService, ListService, toaster, gettext, $log, PatientPortalStorageRepository) {\r\n $scope.loading = false;\r\n $scope.edit = false;\r\n $scope.plusPhone = false;\r\n $scope.hasPhoneNumber = false;\r\n $scope.hasEmailAddress = false;\r\n $scope.updateDemographicsRequestDto = null;\r\n $scope.phoneRegEx = /\\(?\\d{3}(-|\\))?\\s?\\d{3}-?\\d{4}$/;\r\n $scope.ssnRegEx = /^\\d{3}-?\\d{2}-?\\d{4}$/;\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n\r\n var genderList = ListService.getList('genders', $scope, 'genderTypes'),\r\n languageList = ListService.getList('languagelist', $scope, 'languageTypes'),\r\n raceList = ListService.getList('racelist', $scope, 'raceTypes'),\r\n maritalStatusList = ListService.getList('maritalstatuslist', $scope, 'maritalStatusTypes'),\r\n phoneTypeList = ListService.getList('phonetype', $scope, 'phoneTypes');\r\n ListService.getList('ethnicitylist', $scope, 'ethnicityTypes');\r\n\r\n function cancelEdit() {\r\n $scope.updateDetailsRequestDto = null;\r\n $scope.edit = !$scope.edit;\r\n $scope.plusPhone = false;\r\n $scope.editPatientDetailsForm.$setPristine();\r\n }\r\n\r\n function phoneNumberFormat(input) {\r\n return $filter('tel')(input);\r\n }\r\n\r\n function addNumbers(){\r\n $scope.plusPhone = !$scope.plusPhone;\r\n }\r\n\r\n function editDetails() {\r\n $scope.edit = !$scope.edit;\r\n\r\n var dto = $scope.updateDetailsRequestDto = _.cloneDeep($scope.patientDetail);\r\n\r\n genderList.then(function (data) {\r\n dto.Gender = _.find(data, {Id: dto.Gender && dto.Gender.Id});\r\n });\r\n languageList.then(function (data) {\r\n dto.Language = _.find(data, {Id: dto.Language && dto.Language.Id});\r\n });\r\n raceList.then(function (data) {\r\n dto.Race = _.find(data, {Id: dto.Race && dto.Race.Id});\r\n });\r\n maritalStatusList.then(function (data) {\r\n dto.MaritalStatus = _.find(data, {Id: dto.MaritalStatus && dto.MaritalStatus.Id});\r\n });\r\n phoneTypeList.then(function (data) {\r\n dto.PhoneNumber1Type = _.find(data, {Id: dto.PhoneNumber1Type && dto.PhoneNumber1Type.Id});\r\n dto.PhoneNumber2Type = _.find(data, {Id: dto.PhoneNumber2Type && dto.PhoneNumber2Type.Id});\r\n dto.PhoneNumber3Type = _.find(data, {Id: dto.PhoneNumber3Type && dto.PhoneNumber3Type.Id});\r\n dto.PhoneNumber4Type = _.find(data, {Id: dto.PhoneNumber4Type && dto.PhoneNumber4Type.Id});\r\n });\r\n }\r\n\r\n function saveUpdateDetailsRequest(theForm) {\r\n if ((theForm || $scope.editPatientDetailsForm).$valid) {\r\n $scope.saving = true;\r\n $scope.updateDetailsRequestDto.PhoneNumber1 = phoneNumberFormat($scope.updateDetailsRequestDto.PhoneNumber1);\r\n $scope.updateDetailsRequestDto.PhoneNumber2 = phoneNumberFormat($scope.updateDetailsRequestDto.PhoneNumber2);\r\n $scope.updateDetailsRequestDto.PhoneNumber3 = phoneNumberFormat($scope.updateDetailsRequestDto.PhoneNumber3);\r\n $scope.updateDetailsRequestDto.PhoneNumber4 = phoneNumberFormat($scope.updateDetailsRequestDto.PhoneNumber4);\r\n\r\n MyChartService.updateDetails(activePatient.id, $scope.updateDetailsRequestDto)\r\n .then(function (data) {\r\n updateScope(data.plain());\r\n $scope.edit = !$scope.edit;\r\n (theForm || $scope.editPatientDetailsForm).$setPristine();\r\n toaster.pop('success', '', gettext('Update request sent successfully.'));\r\n })\r\n .catch(function (response) {\r\n $log.error(response);\r\n toaster.pop('error', '', gettext('An error has occurred. Update request was not saved.'));\r\n })\r\n .finally(function () {\r\n $scope.saving = false;\r\n });\r\n }\r\n else {\r\n toaster.pop('warning', '', gettext('Patient is not valid and cannot be saved. Please correct all issues before saving the request.'));\r\n }\r\n\r\n $scope.editPatientDetailsForm.$setPristine();\r\n }\r\n\r\n function updateScope(data) {\r\n $scope.patientDetail = data;\r\n if (data.PhoneNumber1 || data.PhoneNumber2 ||\r\n data.PhoneNumber3 || data.PhoneNumber4) {\r\n $scope.hasPhoneNumber = true;\r\n }\r\n if (data.EmailAddress1 || data.EmailAddress2) {\r\n $scope.hasEmailAddress = true;\r\n }\r\n }\r\n\r\n function removePharmacy(index) {\r\n $scope.updateDetailsRequestDto.Pharmacies.splice(index, 1);\r\n $scope.editPatientDetailsForm.$setDirty();\r\n }\r\n\r\n function open() {\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/mychart/views/modals/pharmacySearch.html',\r\n controller: 'PharmacyModalCtrl',\r\n size: 'lg',\r\n resolve: {\r\n pharmacies: function () {\r\n return $scope.updateDetailsRequestDto.Pharmacies;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (pharmacies) {\r\n $scope.updateDetailsRequestDto.Pharmacies = pharmacies;\r\n $scope.editPatientDetailsForm.$setDirty();\r\n });\r\n }\r\n\r\n function auditDemographics(reportRequestDto) {\r\n MyChartService.auditDemographicsLogging(reportRequestDto);\r\n }\r\n\r\n function initialize() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyChartService.getPatientDetailsMetadata($scope);\r\n MyChartService.loadMyChart(activePatient.id)\r\n .then(function (data) {\r\n updateScope(data[0]);\r\n $scope.config = data[1];\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n auditDemographics(reportRequestDto);\r\n }\r\n \r\n $scope.tileState = {\r\n isCollapsed: undefined \r\n };\r\n $scope.toggleState = function() {\r\n if($scope.tileState.isCollapsed === undefined)\r\n {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n };\r\n\r\n $scope.addNumbers = addNumbers;\r\n $scope.auditDemographics = auditDemographics;\r\n $scope.cancelEdit = cancelEdit;\r\n $scope.editDetails = editDetails;\r\n $scope.open = open;\r\n $scope.removePharmacy = removePharmacy;\r\n $scope.saveUpdateDetailsRequest = saveUpdateDetailsRequest;\r\n\r\n if(autoInit) {\r\n initialize();\r\n }\r\n };\r\n };\r\n\r\n var PersonalDetailsCtrl = new PersonalDetailsBaseCtrl(true);\r\n var PersonalDetailsMobileCtrl = new PersonalDetailsBaseCtrl(false);\r\n \r\n angular.module('mychart').controller('PersonalDetailsCtrl',\r\n ['$scope', '$stateParams', '$uibModal', '$filter', 'MyChartService', 'ListService', 'toaster', 'aprgettext', '$log', 'PatientPortalStorageRepository',\r\n PersonalDetailsCtrl]);\r\n angular.module('mychart').controller('PersonalDetailsMobileCtrl',\r\n ['$scope', '$stateParams', '$uibModal', '$filter', 'MyChartService', 'ListService', 'toaster', 'aprgettext', '$log', 'PatientPortalStorageRepository',\r\n PersonalDetailsMobileCtrl]);\r\n})();\r\n\r\n\r\n","(function() {\r\n 'use strict';\r\n var ProblemsBaseCtrl = function (autoInit) {\r\n return function (_, $scope, $stateParams, MyChartService, PatientPortalStorageRepository) {\r\n $scope.name = 'Problems';\r\n $scope.loading = false;\r\n $scope.problem = {active: 1, activeName: 'Active'};\r\n $scope.activeFilters = [\r\n { Id: 0, Name: 'All' },\r\n { Id: 1, Name: 'Active' },\r\n { Id: 2, Name: 'Not Active' } \r\n ];\r\n\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n $scope.hidden = function hidden(prob) {\r\n if (prob.Notes) {\r\n prob.Show = !prob.Show;\r\n }\r\n };\r\n\r\n $scope.update = function update(newFilterId) {\r\n $scope.problem.active = newFilterId;\r\n $scope.problem.activeName = _.find($scope.activeFilters, { Id: newFilterId }).Name;\r\n var activeProblems = _.filter($scope.problems, function (item) {\r\n if (Number($scope.problem.active) === 0) {\r\n return true;\r\n }\r\n else if (Number($scope.problem.active) === 1) {\r\n return !!item.IsActive;\r\n }\r\n else if (Number($scope.problem.active) === 2) {\r\n return !item.IsActive;\r\n }\r\n });\r\n $scope.filteredProblems = activeProblems;\r\n $scope.numprobs = activeProblems.length;\r\n };\r\n\r\n function initialize() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyChartService\r\n .getProblems(activePatientId)\r\n .then(function (data) {\r\n $scope.problems = _.map(data, function (element) {\r\n return _.assignIn(element, {Show: false});\r\n });\r\n $scope.update($scope.problem.active);\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n \r\n $scope.tileState = {\r\n isCollapsed: undefined \r\n };\r\n $scope.toggleState = function() {\r\n if($scope.tileState.isCollapsed === undefined)\r\n {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n };\r\n\r\n if(autoInit) {\r\n initialize();\r\n }\r\n };\r\n };\r\n\r\n var ProblemsCtrl = new ProblemsBaseCtrl(true);\r\n var ProblemsMobileCtrl = new ProblemsBaseCtrl(false);\r\n \r\n angular.module('mychart').controller('ProblemsCtrl',\r\n ['_', '$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository',\r\n ProblemsCtrl]);\r\n angular.module('mychart').controller('ProblemsMobileCtrl',\r\n ['_', '$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository',\r\n ProblemsMobileCtrl]);\r\n})();","(function() {\r\n 'use strict';\r\n var ProceduresBaseCtrl = function (autoInit) {\r\n return function (_, $scope, $stateParams, MyChartService, PatientPortalStorageRepository) {\r\n $scope.name = 'Procedures';\r\n $scope.loading = false;\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n\r\n $scope.hidden = function hidden(proc) {\r\n if (proc.Notes || proc.Long) {\r\n proc.Show = !proc.Show;\r\n }\r\n };\r\n\r\n function initialize() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyChartService\r\n .getProcedures(activePatient.id)\r\n .then(function (data) {\r\n $scope.procedures = _.map(data, function (element, index) {\r\n return _.assignIn(element, {\r\n Id: index, // since the getProcedures call does not return a uniquely identifying property ...\r\n Show: false,\r\n //todo: find different solution than hard coding 55 as the length of the description\r\n Long: element.Description ? element.Description.length > 55 : false\r\n });\r\n });\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n auditProcedures(reportRequestDto);\r\n }\r\n\r\n function auditProcedures(reportRequestDto) {\r\n MyChartService.auditProceduresLogging(reportRequestDto);\r\n }\r\n\r\n $scope.tileState = {\r\n isCollapsed: undefined \r\n };\r\n $scope.toggleState = function() {\r\n if($scope.tileState.isCollapsed === undefined)\r\n {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n };\r\n\r\n $scope.auditProcedures = auditProcedures;\r\n\r\n if(autoInit) {\r\n initialize(); \r\n }\r\n };\r\n };\r\n\r\n var ProceduresCtrl = new ProceduresBaseCtrl(true);\r\n var ProceduresMobileCtrl = function (_, $scope, $stateParams, MyChartService, PatientPortalStorageRepository, $modal) {\r\n new ProceduresBaseCtrl(false).call(this, _, $scope, $stateParams, MyChartService, PatientPortalStorageRepository);\r\n $scope.viewModal = function(procId) {\r\n var modalInstance = $modal.open({\r\n templateUrl: '/mychart/views/mobile/genericModal.html',\r\n controller: 'GenericModalCtrl',\r\n scope: $scope,\r\n resolve: {\r\n canPrint: function() {\r\n return false;\r\n },\r\n modalContent: function () {\r\n var procedure = _.find($scope.procedures, { Id: procId });\r\n var modalContent =\r\n '
' + new Date(procedure.VisitDate).toLocaleDateString() + '
' +\r\n '
' + procedure.Name + '
' +\r\n '
' + procedure.Description + '
';\r\n return modalContent;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {\r\n });\r\n };\r\n };\r\n \r\n angular.module('mychart').controller('ProceduresCtrl',\r\n ['_', '$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository',\r\n ProceduresCtrl]);\r\n angular.module('mychart').controller('ProceduresMobileCtrl',\r\n ['_', '$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository', '$uibModal',\r\n ProceduresMobileCtrl]);\r\n})();\r\n","(function () {\r\n 'use strict';\r\n var ReferenceMaterialBaseCtrl = function (autoInit) {\r\n return function ($scope, $stateParams, MyChartService, PatientPortalStorageRepository, $modal, LanguageFactory, PersonRepository, PatientAttachmentRepository, toaster, gettext, BrowserService) {\r\n $scope.loading = false;\r\n $scope.isModalDisplayed = false;\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient(),\r\n loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n activeLanguage = LanguageFactory.getActiveLanguage(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n\r\n $scope.model = {\r\n EducationalMaterial: null,\r\n LanguageOptions: null,\r\n ActiveLanguage: {\r\n Id: '',\r\n Description: ''\r\n },\r\n ActivatePatient: activePatient\r\n };\r\n\r\n function initialize() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyChartService\r\n .getReferenceMaterial(reportRequestDto)\r\n .then(function (data) {\r\n auditEducationMaterials(reportRequestDto);\r\n $scope.model.EducationalMaterial = _(data.EducationalMaterial).map(function (entry) {\r\n return _.assign(entry, {Downloading: false});\r\n }).value();\r\n\r\n $scope.model.LanguageOptions = data.Languages;\r\n if (data.Languages && data.Languages.length && activeLanguage) {\r\n $scope.model.ActiveLanguage = _.find(data.Languages, {Description: activeLanguage.name}) || data.Languages[0];\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function viewReferenceMaterial(description, eduForms) {\r\n $scope.isModalDisplayed = true;\r\n var selectedEduForm = _.find(eduForms, function (form) {\r\n return form.Language.Id === $scope.model.ActiveLanguage.Id;\r\n });\r\n selectedEduForm = selectedEduForm || eduForms[0];\r\n\r\n var modalConfig = {\r\n Title: description,\r\n DownloadFileName: description,\r\n PatientId: activePatient.id,\r\n DocumentId: selectedEduForm.AttachmentId,\r\n DocumentLoad: getReferenceMaterial,\r\n DocumentDownload: downloadReferenceMaterial,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.isModalDisplayed = false;\r\n });\r\n }\r\n\r\n function getReferenceMaterial(documentId, requestSettings) {\r\n return PatientAttachmentRepository.getAttachment(documentId, activePatient.id, requestSettings)\r\n .then(function (data) {\r\n auditEducationMaterials(reportRequestDto);\r\n return data;\r\n });\r\n }\r\n\r\n function downloadReferenceMaterial(documentId) {\r\n return PatientAttachmentRepository.getAttachmentRetainOriginalFormat(documentId, activePatient.id)\r\n .then(function (data) {\r\n auditEducationMaterials(reportRequestDto);\r\n return data;\r\n });\r\n }\r\n\r\n function updateActiveLanguage(language, mobile) {\r\n $scope.model.ActiveLanguage = language;\r\n if (mobile) {\r\n $scope.isCollapsed = false;\r\n }\r\n }\r\n\r\n function auditEducationMaterials() {\r\n MyChartService.auditEducationMaterialLogging(reportRequestDto);\r\n }\r\n\r\n function downloadFormFromModal(documentId) {\r\n return PersonRepository.getReferenceMaterialAttachment(activePatient.id, documentId)\r\n .then(function (data) {\r\n auditEducationMaterials(reportRequestDto);\r\n return data;\r\n });\r\n }\r\n\r\n function downloadForm(formGroup) {\r\n formGroup.Downloading = true;\r\n var selectedEduForm = _.find(formGroup.Forms, function (form) {\r\n return form.Language.Id === $scope.model.ActiveLanguage.Id;\r\n });\r\n selectedEduForm = selectedEduForm || formGroup.Forms[0];\r\n return PersonRepository.getReferenceMaterialAttachment(activePatient.id, selectedEduForm.AttachmentId)\r\n .then(function (data) {\r\n MyChartService.auditEducationMaterialLogging(reportRequestDto);\r\n return data;\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred while downloading'));\r\n })\r\n .finally(function () {\r\n formGroup.Downloading = false;\r\n });\r\n }\r\n\r\n $scope.viewReferenceMaterial = viewReferenceMaterial;\r\n $scope.updateActiveLanguage = updateActiveLanguage;\r\n $scope.downloadFormFromModal = downloadFormFromModal;\r\n $scope.getReferenceMaterial = getReferenceMaterial;\r\n $scope.downloadForm = downloadForm;\r\n\r\n $scope.tileState = {\r\n isCollapsed: undefined\r\n };\r\n $scope.toggleState = function () {\r\n if ($scope.tileState.isCollapsed === undefined) {\r\n initialize();\r\n $scope.tileState.isCollapsed = false;\r\n }\r\n else\r\n $scope.tileState.isCollapsed = !$scope.tileState.isCollapsed;\r\n };\r\n\r\n if (autoInit) {\r\n initialize();\r\n }\r\n };\r\n };\r\n\r\n var ReferenceMaterialCtrl = new ReferenceMaterialBaseCtrl(true);\r\n var ReferenceMaterialMobileCtrl = new ReferenceMaterialBaseCtrl(false);\r\n\r\n angular.module('mychart').controller('ReferenceMaterialCtrl',\r\n ['$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository', '$uibModal', 'LanguageFactory', 'PersonRepository', 'PatientAttachmentRepository', 'toaster', 'aprgettext',\r\n 'BrowserService',\r\n ReferenceMaterialCtrl]);\r\n angular.module('mychart').controller('ReferenceMaterialMobileCtrl',\r\n ['$scope', '$stateParams', 'MyChartService', 'PatientPortalStorageRepository', '$uibModal', 'LanguageFactory', 'PersonRepository', 'PatientAttachmentRepository', 'toaster', 'aprgettext',\r\n 'BrowserService',\r\n ReferenceMaterialMobileCtrl]);\r\n})();","angular.module('mychart').controller('ShareCCDCtrl',\r\n ['$scope', 'PatientPortalStorageRepository', 'ChartRepository', '$sce', '$location', 'toaster', 'aprgettext', '$log', '$uibModal',\r\n function ($scope, PatientPortalStorageRepository, ChartRepository, $sce, $location, toaster, gettext, $log, $modal) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n $scope.loadingHtml = false;\r\n $scope.loadingXml = false;\r\n $scope.vm = {\r\n startDate: '',\r\n endDate: '',\r\n fullHistory: true\r\n }; \r\n\r\n var path = $location.path();\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient(),\r\n loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n },\r\n ccdHtml;\r\n $scope.model = {\r\n chartHtml: '',\r\n loadingUrl: '',\r\n xmlFileName: activePatient.firstName + activePatient.lastName + '_CDA.xml',\r\n ccdFileName: activePatient.firstName + activePatient.lastName + '_CCD.html'\r\n };\r\n\r\n function downloadCDA() {\r\n $scope.loadingXml = true;\r\n\r\n var startDate = null;\r\n var endDate = null;\r\n \r\n if (!$scope.vm.fullHistory){\r\n startDate = ($scope.vm.startDate) ? moment($scope.vm.startDate).hour(0).minute(0).second(0).toDate() : null;\r\n endDate = ($scope.vm.endDate) ? moment($scope.vm.endDate).hour(0).minute(0).second(0).toDate() : null;\r\n }\r\n var dateFilter = {\r\n startDate: startDate,\r\n endDate: endDate\r\n };\r\n\r\n return ChartRepository.getCDAXml(reportRequestDto.PatientId, dateFilter)\r\n .then(function (data) {\r\n if (data) {\r\n return data.StringResult;\r\n }\r\n })\r\n .catch(function (response) {\r\n $log.error(response);\r\n toaster.pop('error', '', gettext('An error has occurred. Unable to download CDA.'));\r\n })\r\n .finally(function () {\r\n $scope.loadingXml = false;\r\n });\r\n }\r\n\r\n function downloadHtml() {\r\n $scope.loadingHtml = true;\r\n return ChartRepository.postCCDHtmlDownloaded(reportRequestDto)\r\n .then(function () {\r\n return ccdHtml;\r\n })\r\n .catch(function (response) {\r\n $log.error(response);\r\n toaster.pop('error', '', gettext('An error has occurred. Unable to download Html.'));\r\n })\r\n .finally(function () {\r\n $scope.loadingHtml = false;\r\n });\r\n }\r\n\r\n function viewAccessLog() {\r\n $modal.open({\r\n templateUrl: '/mychart/views/modals/ccdAccessLog.html',\r\n controller: 'CcdAccessLogModalCtrl',\r\n size: 'lg',\r\n resolve: {\r\n patientId: function () {\r\n return activePatient.id;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function transmitModal() {\r\n var startDate = null;\r\n var endDate = null;\r\n \r\n if (!$scope.vm.fullHistory){\r\n startDate = ($scope.vm.startDate) ? moment($scope.vm.startDate).hour(0).minute(0).second(0).toDate() : null;\r\n endDate = ($scope.vm.endDate) ? moment($scope.vm.endDate).hour(0).minute(0).second(0).toDate() : null;\r\n }\r\n reportRequestDto.startDate = startDate;\r\n reportRequestDto.endDate = endDate;\r\n var modalInstance = $modal.open({\r\n templateUrl: '/mychart/views/modals/ccdTransmit.html',\r\n controller: 'CcdTransmitModalCtrl',\r\n size: 'lg',\r\n resolve: {\r\n requestDto: function () {\r\n return reportRequestDto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n //todo open a success toaster\r\n });\r\n }\r\n\r\n function getCcdHtml() { \r\n $scope.loadingCcd = true;\r\n var startDate = null;\r\n var endDate = null;\r\n \r\n if (!$scope.vm.fullHistory){\r\n startDate = ($scope.vm.startDate) ? moment($scope.vm.startDate).hour(0).minute(0).second(0).toDate() : null;\r\n endDate = ($scope.vm.endDate) ? moment($scope.vm.endDate).hour(0).minute(0).second(0).toDate() : null;\r\n }\r\n var dateFilter = {\r\n startDate: startDate,\r\n endDate: endDate\r\n };\r\n ChartRepository.getCCDHtml(reportRequestDto.PatientId, dateFilter)\r\n .then(function (data) {\r\n $scope.removeHttpError();\r\n if (data) {\r\n ccdHtml = data.StringResult;\r\n $scope.model.chartHtml = $sce.trustAsHtml(ccdHtml);\r\n var absPath = $location.absUrl(),\r\n partial = $location.path(),\r\n newPartial = '/loadingDocument/';\r\n $scope.model.loadingUrl = absPath.replace(partial, newPartial);\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingCcd = false;\r\n $scope.loading = false;\r\n });\r\n }\r\n getCcdHtml();\r\n\r\n $scope.getCcdHtml = getCcdHtml;\r\n $scope.downloadCDA = downloadCDA;\r\n $scope.downloadHtml = downloadHtml;\r\n $scope.viewAccessLog = viewAccessLog;\r\n $scope.transmitModal = transmitModal;\r\n $scope.path = path;\r\n }]);","angular.module('mychart').controller('VisitSummaryCtrl',\r\n [\r\n '_', \r\n '$scope', \r\n 'MyChartService', \r\n 'PatientPortalStorageRepository', \r\n '$uibModal', \r\n 'PersonRepository', \r\n 'moment', \r\n 'aprgettext', \r\n 'toaster',\r\n 'BrowserService',\r\n 'WebDocumentHelper',\r\n function (\r\n _, \r\n $scope, \r\n MyChartService, \r\n PatientPortalStorageRepository, \r\n $modal, \r\n PersonRepository, \r\n moment, \r\n gettext, \r\n toaster,\r\n BrowserService,\r\n WebDocumentHelper\r\n ) {\r\n 'use strict';\r\n\r\n $scope.name = 'VisitSummary';\r\n $scope.numVisits = 0;\r\n $scope.loading = true;\r\n $scope.selectedVisit = {\r\n Id: null,\r\n FileName: 'VisitSummary'\r\n };\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var loginUser = PatientPortalStorageRepository.getLoginUser(),\r\n reportRequestDto = {\r\n PatientId: activePatient.id,\r\n LoginUserId: loginUser.id,\r\n LoginUserName: loginUser.name\r\n };\r\n\r\n var updateUsageMetricDto = {\r\n MetricTypeName: '170.315(e)(1) - View, Download, and Transmit to 3rd Party',\r\n MetricSubTypeName: 'Success',\r\n IncrementFactor: 1,\r\n };\r\n\r\n function onLoad() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n var usageMetricSubTypeName = 'Success';\r\n MyChartService\r\n .getVisitSummaries(activePatient.id)\r\n .then(function (data) {\r\n $scope.visits = _(data.plain()).map(function (entry) {\r\n return _.assign(entry, {Downloading : false});\r\n }).value();\r\n $scope.numVisits = data.length;\r\n })\r\n .catch(function (response) {\r\n usageMetricSubTypeName = 'Failure';\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n updateUsageMetric(usageMetricSubTypeName);\r\n $scope.loading = false;\r\n });\r\n auditMedicalHistory(reportRequestDto);\r\n }\r\n\r\n function viewVisitSummary(visitId, visitDate) {\r\n auditClinicalSummary(reportRequestDto);\r\n $scope.isModalDisplayed = true;\r\n\r\n var modalConfig = {\r\n Title: gettext('Visit Summary: ') + moment(visitDate).format('LL'),\r\n DownloadFileName: activePatient.firstName + activePatient.lastName + '_VisitSummary',\r\n PatientId: activePatient.id,\r\n DocumentId: visitId,\r\n DocumentLoad: getVisitSummary,\r\n DocumentDownload: downloadVisitSummary,\r\n GetStaticUrl: getVisitSummaryUrl,\r\n HasStaticUrl: true,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n DocumentHelper: WebDocumentHelper\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.isModalDisplayed = false;\r\n });\r\n }\r\n\r\n function getVisitSummary(documentId){\r\n return PersonRepository.getVisitSummary(activePatient.id, documentId);\r\n }\r\n\r\n function getVisitSummaryUrl(documentId) {\r\n return PersonRepository.getVisitSummaryUrl(activePatient.id, documentId);\r\n }\r\n\r\n function downloadVisitSummary(documentId){\r\n auditClinicalSummary(reportRequestDto);\r\n var usageMetricSubTypeName = 'Success';\r\n return PersonRepository.getVisitSummary(activePatient.id, documentId)\r\n .then(function (data) {\r\n return {Data: data.Data, Extension: 'pdf'};\r\n })\r\n .catch(function () {\r\n usageMetricSubTypeName = 'Failure';\r\n toaster.pop('error', '', gettext('An error occurred while downloading'));\r\n })\r\n .finally(function () {\r\n updateUsageMetric(usageMetricSubTypeName);\r\n });\r\n }\r\n\r\n function downloadVisitSummaryByVisit(visit, visitDate){\r\n auditClinicalSummary(reportRequestDto);\r\n visit.Downloading = true;\r\n $scope.selectedVisit.FileName += moment(visitDate).format('l');\r\n $scope.selectedVisit.Id = visit.VisitId;\r\n\r\n var usageMetricSubTypeName = 'Success';\r\n return PersonRepository.getVisitSummary(activePatient.id, visit.VisitId)\r\n .then(function (data) {\r\n return {Data: data.Data, FileName: $scope.selectedVisit.FileName, Extension: 'pdf'};\r\n })\r\n .catch(function () {\r\n usageMetricSubTypeName = 'Failure';\r\n toaster.pop('error', '', gettext('An error occurred while downloading'));\r\n })\r\n .finally(function() {\r\n updateUsageMetric(usageMetricSubTypeName);\r\n visit.Downloading = false;\r\n });\r\n }\r\n\r\n function auditMedicalHistory(reportRequestDto) {\r\n MyChartService.auditMedicalHistoryLogging(reportRequestDto);\r\n }\r\n\r\n function auditClinicalSummary(reportRequestDto) {\r\n MyChartService.auditClinicalSummaryLogging(reportRequestDto);\r\n }\r\n\r\n function updateUsageMetric(metricSubTypeName) {\r\n updateUsageMetricDto.MetricSubTypeName = metricSubTypeName;\r\n MyChartService.usageMetricLogging(updateUsageMetricDto);\r\n }\r\n\r\n onLoad();\r\n $scope.auditClinicalSummary = auditClinicalSummary;\r\n $scope.auditMedicalHistory = auditMedicalHistory;\r\n $scope.viewVisitSummary = viewVisitSummary;\r\n $scope.downloadVisitSummary = downloadVisitSummary;\r\n $scope.downloadVisitSummaryByVisit = downloadVisitSummaryByVisit;\r\n }]);","angular.module('mychart').controller('CcdAccessLogModalCtrl',\r\n ['$scope', '$uibModalInstance', 'ChartRepository', 'patientId',\r\n function ($scope, $modalInstance, ChartRepository, patientId) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n $scope.model = {\r\n AccessLog: ''\r\n };\r\n\r\n ChartRepository.getAccessLog(patientId)\r\n .then(function (data) {\r\n $scope.removeHttpError();\r\n $scope.model.AccessLog = data;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n }]);\r\n","angular.module('mychart').controller('CcdTransmitModalCtrl',\r\n ['$scope', '$uibModalInstance', 'ChartRepository', 'requestDto', 'toaster', 'aprgettext', '$log',\r\n function ($scope, $modalInstance, ChartRepository, requestDto, toaster, gettext, $log) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n $scope.canSendDirectMail = false;\r\n $scope.transmitting = false;\r\n $scope.isConfigured = false;\r\n $scope.model = {\r\n DirectMailUser: '',\r\n DocumentTypeList: [\r\n {Type: 'HTML'},\r\n {Type: 'XML'}\r\n ],\r\n SendTypeList: [\r\n {\r\n Type: 'Direct Mail',\r\n Enabled: false\r\n },\r\n {\r\n Type: 'Email',\r\n Enabled: false\r\n }\r\n ],\r\n DocumentType: '',\r\n ProviderId: '',\r\n DirectMailAddressTo: '',\r\n Email:'',\r\n SendType: '',\r\n Subject: '',\r\n Message: ''\r\n };\r\n\r\n function initialize() {\r\n $scope.removeHttpError();\r\n $scope.model.SendType = $scope.model.SendTypeList[1];\r\n ChartRepository.getTransferCcdMetadata($scope);\r\n ChartRepository.getTransmitCcdConfig(requestDto.PatientId)\r\n .then(function (data) {\r\n if (data && data.DirectMailConfig && data.DirectMailConfig.DirectMailAddress) {\r\n $scope.model.DirectMailUser = data.DirectMailConfig;\r\n $scope.model.SendTypeList[0].Enabled = true;\r\n $scope.model.SendType = $scope.model.SendTypeList[0];\r\n }\r\n $scope.model.SendTypeList[1].Enabled = data.EmailEnabled;\r\n if ($scope.model.SendTypeList[0].Enabled || $scope.model.SendTypeList[1].Enabled) {\r\n $scope.isConfigured = true;\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n initialize();\r\n\r\n function submitTransferRequest() {\r\n if ($scope.transmitCcdForm.$valid) {\r\n $scope.transmitting = true;\r\n var transferRequestDto = {\r\n PatientId: requestDto.PatientId,\r\n LoginUserId: requestDto.LoginUserId,\r\n LoginUserName: requestDto.LoginUserName,\r\n DocumentType: $scope.model.DocumentType && $scope.model.DocumentType.Type,\r\n Subject: $scope.model.Subject,\r\n Message: $scope.model.Message,\r\n DirectMailAddressFrom: $scope.model.DirectMailUser.DirectMailAddress,\r\n ToName: $scope.model.ToName,\r\n ProviderId: $scope.model.DirectMailUser.ProviderId,\r\n DirectMailAddressTo: ($scope.model.SendType.Type === 'Direct Mail') ? $scope.model.DirectMailAddressTo : null,\r\n Email: ($scope.model.SendType.Type === 'Email') ? $scope.model.Email : null,\r\n StartDate: requestDto.startDate,\r\n EndDate: requestDto.endDate\r\n };\r\n\r\n ChartRepository.postTransmitRequest(transferRequestDto)\r\n .then(function (data) {\r\n $scope.model.AccessLog = data;\r\n toaster.pop('success', '', gettext('CCD was sent successfully.'));\r\n ok();\r\n })\r\n .catch(function (response) {\r\n $log.error(response);\r\n toaster.pop('error', '', gettext('An error has occurred. CCD was not sent.'));\r\n })\r\n .finally(function () {\r\n $scope.transmitting = false;\r\n });\r\n }\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.submitTransferRequest = submitTransferRequest;\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n }]);\r\n","angular.module('mychart').controller('CompleteChartModalCtrl',\r\n ['$scope', '$uibModalInstance', '$sce', '$window', 'PersonRepository', 'MyMessagesService', 'activePatient',\r\n function ($scope, $modalInstance, $sce, $window, PersonRepository, MyMessagesService, activePatient) {\r\n 'use strict';\r\n\r\n $scope.activePatient = activePatient;\r\n\r\n $scope.loadingCompleteChart = true;\r\n $scope.displayPrintButton = false;\r\n\r\n $scope.isCompleteChartError = false;\r\n $scope.completeChartErrorMessage = '';\r\n\r\n $scope.model = {\r\n CompleteChartData: '',\r\n PatientId: '',\r\n FullName: activePatient.fullName\r\n };\r\n\r\n function loadCompleteChart() {\r\n $scope.loadingCompleteChart = true;\r\n $scope.removeHttpError();\r\n\r\n PersonRepository.getCompleteChart($scope.activePatient.id)\r\n .then(function (data) {\r\n var completeChartUrl = 'data:application/pdf;base64,' + data.PatientChart;\r\n //var completeChartUrl = 'data:application/pdf,' + data.PatientChart;\r\n $scope.model.CompleteChartData = $sce.trustAsResourceUrl(completeChartUrl);\r\n $scope.model.PatientId = data.PatientId;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n $scope.isCompleteChartError = true;\r\n $scope.model.CompleteChartErrorMessageHtml = $sce.trustAsHtml(MyMessagesService.replaceLineBreaksWithHtmlLineBreak(response.data));\r\n })\r\n .finally(function() {\r\n $scope.loadingCompleteChart = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n $scope.print = print;\r\n\r\n loadCompleteChart();\r\n }]);","angular.module('mychart').controller('GenericModalCtrl',\r\n ['$scope', '$uibModalInstance', '$window', '$sce', 'modalContent', 'canPrint',\r\n function ($scope, $modalInstance, $window, $sce, modalContent, canPrint) {\r\n 'use strict';\r\n \r\n $scope.modalContent = $sce.trustAsHtml(modalContent);\r\n $scope.canPrint = canPrint;\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n $scope.print = print;\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n }]);\r\n","angular.module('mychart').controller('ImmunizationModalCtrl',\r\n ['$scope', '$uibModalInstance', '$window', 'patientImmunizations',\r\n function ($scope, $modalInstance, $window, patientImmunizations) {\r\n 'use strict';\r\n\r\n $scope.model = {\r\n PatientImmunizations: patientImmunizations\r\n };\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n $scope.print = print;\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n }]);\r\n","angular.module('mychart').controller('LabResultPrintDownloadModalCtrl',\r\n ['$scope', '$uibModalInstance', '$sce', '$window', 'PersonRepository', 'attachmentInfo',\r\n function ($scope, $modalInstance, $sce, $window, PersonRepository, attachmentInfo) {\r\n 'use strict';\r\n\r\n var imageFormats = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'pdf', 'rtf', 'doc', 'docx', 'tif', 'tiff'];\r\n var htmlFormats = ['html', 'htm'];\r\n var textFormats = ['txt'];\r\n\r\n $scope.attachmentInfo = attachmentInfo;\r\n\r\n $scope.loadingLabResult = true;\r\n $scope.displayPrintButton = false;\r\n\r\n $scope.model = {\r\n LabResultData: '',\r\n PdfFileName: attachmentInfo.ActivePatient.firstName + attachmentInfo.ActivePatient.lastName + '_TestResult.pdf',\r\n ByteArray: '',\r\n ContentType: ''\r\n };\r\n\r\n function loadResult() {\r\n $scope.loadingLabResult = true;\r\n $scope.removeHttpError();\r\n\r\n $scope.isImage = _.includes(imageFormats, attachmentInfo.Extension.toLowerCase());\r\n $scope.isHtml = _.includes(htmlFormats, attachmentInfo.Extension.toLowerCase());\r\n $scope.isText = _.includes(textFormats, attachmentInfo.Extension.toLowerCase());\r\n\r\n if (!$scope.isImage && !$scope.isHtml && !$scope.isText)\r\n {\r\n $scope.loadingLabResult = false;\r\n return;\r\n }\r\n\r\n PersonRepository.getAttachmentPdf(attachmentInfo.ActivePatient.id, attachmentInfo.AttachmentUid)\r\n .then(function (data) {\r\n var labResultUrl = 'data:' + data.ContentType + ';base64,' + data.ByteArray;\r\n $scope.model.LabResultData = $sce.trustAsResourceUrl(labResultUrl);\r\n $scope.model.ByteArray = data.ByteArray;\r\n $scope.model.ContentType = data.ContentType;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function() {\r\n $scope.loadingLabResult = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n $scope.print = print;\r\n\r\n loadResult();\r\n }]);","angular.module('mychart').controller('ObservationOrderPrintDownloadModalCtrl',\r\n ['$scope', '$uibModalInstance', '$sce', '$window', 'PersonRepository', 'resultInfo',\r\n function ($scope, $modalInstance, $sce, $window, PersonRepository, resultInfo) {\r\n 'use strict';\r\n\r\n $scope.resultInfo = resultInfo;\r\n\r\n $scope.loadingLabResult = true;\r\n $scope.displayPrintButton = false;\r\n\r\n $scope.model = {\r\n ObservationOrderData: '',\r\n PdfFileName: resultInfo.ActivePatient.firstName + resultInfo.ActivePatient.lastName + '_ObservationOrder.pdf',\r\n ByteArray: '',\r\n ContentType: ''\r\n };\r\n\r\n function loadResult() {\r\n $scope.loadingLabResult = true;\r\n $scope.removeHttpError();\r\n PersonRepository.getObservationOrderPdf(resultInfo.ActivePatient.id, resultInfo.ResultId)\r\n .then(function (data) {\r\n var observationOrderUrl = 'data:' + data.ContentType + ';base64,' + data.ByteArray;\r\n $scope.model.ObservationOrderData = $sce.trustAsResourceUrl(observationOrderUrl);\r\n $scope.model.ByteArray = data.ByteArray;\r\n $scope.model.ContentType = data.ContentType;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function() {\r\n $scope.loadingLabResult = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n $scope.print = print;\r\n\r\n loadResult();\r\n }]);","angular.module('mychart').controller('PharmacyModalCtrl',\r\n ['_', '$scope', '$stateParams', '$uibModalInstance', 'MyChartService', 'toaster', 'aprgettext', 'pharmacies', 'debounce',\r\n function (_, $scope, $stateParams, $modalInstance, MyChartService, toaster, gettext, pharmacies, debounce) {\r\n 'use strict';\r\n\r\n $scope.pharmacies = _.cloneDeep(pharmacies) || [];\r\n $scope.searchPharmaciesParams = {\r\n Zip: '',\r\n PhoneNumber: ''\r\n };\r\n\r\n $scope.pharmacyResults = [];\r\n $scope.noResults = false;\r\n \r\n function ok() {\r\n $modalInstance.close($scope.pharmacies);\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n \r\n function searchPharmacies(zip, phoneNumber) {\r\n if (!zip) {\r\n zip = $scope.searchPharmaciesParams.Zip;\r\n }\r\n if (!phoneNumber) {\r\n phoneNumber = $scope.searchPharmaciesParams.PhoneNumber;\r\n }\r\n \r\n MyChartService.searchPharmacies(zip, phoneNumber)\r\n .then(function (data) {\r\n $scope.pharmacyResults = data.plain();\r\n $scope.noResults = data.length === 0;\r\n });\r\n }\r\n\r\n function addPharmacy(index, pharmacy) {\r\n if (_.find($scope.pharmacies, {PharmacyId: pharmacy.PharmacyId})) {\r\n toaster.pop('warning', '', gettext('This is already a preferred pharmacy.'));\r\n } else {\r\n $scope.pharmacies.push(pharmacy);\r\n $scope.pharmacyResults.splice(index, 1);\r\n }\r\n }\r\n\r\n function removePharmacy(index, pharmacy) {\r\n $scope.pharmacies.splice(index, 1);\r\n $scope.pharmacyResults.unshift(pharmacy);\r\n $scope.noResults = false;\r\n }\r\n\r\n function submitZip() {\r\n debounce(750, function submitZip() {\r\n if ($scope.searchPharmaciesParams.Zip.length > 4) {\r\n $scope.searchPharmacies();\r\n }\r\n });\r\n }\r\n\r\n function submitPhoneNumber (){\r\n debounce(750, function submitZip() {\r\n var tempPhoneNumber = $scope.searchPharmaciesParams.PhoneNumber,\r\n value = tempPhoneNumber.toString().trim().replace(/[^0-9]/g, '');\r\n\r\n if (value.length > 9) {\r\n $scope.searchPharmacies(null, value);\r\n }\r\n });\r\n } \r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n $scope.searchPharmacies = searchPharmacies;\r\n $scope.addPharmacy = addPharmacy;\r\n $scope.submitZip = submitZip;\r\n $scope.removePharmacy = removePharmacy;\r\n $scope.submitPhoneNumber = submitPhoneNumber;\r\n }]);\r\n","angular.module('mychart').controller('ReferenceMaterialPrintDownloadModalCtrl',\r\n ['$scope', '$uibModalInstance', 'attachmentInfo',\r\n function ($scope, $modalInstance, attachmentInfo) {\r\n 'use strict';\r\n\r\n $scope.attachmentInfo = attachmentInfo;\r\n $scope.loadingLabResult = false;\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n }]);","angular.module('mychart').directive('apImmunizationsCard',\r\n [\r\n function () {\r\n 'use strict';\r\n\r\n function link($scope) {\r\n function getRoutineDoses(routineDoses, length) {\r\n if (routineDoses > length)\r\n return new Array(routineDoses - length);\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n function rowSpanCal(routineDoses, vaccineCount) {\r\n return (routineDoses > vaccineCount) ? routineDoses : vaccineCount;\r\n }\r\n\r\n $scope.getRoutineDoses = getRoutineDoses;\r\n $scope.rowSpanCal = rowSpanCal;\r\n }\r\n\r\n return {\r\n restrict: 'EA',\r\n templateUrl: '/mychart/views/directives/apImmunizationsCard.html',\r\n scope: {\r\n patientImmunizations: '=patientImmunizations'\r\n },\r\n link: link\r\n };\r\n }]);","angular.module('mychart').factory('ChartRepository',\r\n ['AprimaRestangular', 'MetadataRepository', function (AprimaRestangular, MetadataRepository) {\r\n 'use strict';\r\n\r\n var getAccessLog = function getAccessLog(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('chart/' + uid + '/ccd/access-log').get();\r\n };\r\n\r\n var getDirectMailUsers = function getDirectMailUsers(uid){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('chart/' + uid + '/ccd/provider-list').get();\r\n };\r\n\r\n var postTransmitRequest = function postTransmitRequest(transferDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('chart/' + transferDto.PatientId + '/uscdiccd/transfer').customPOST(transferDto);\r\n };\r\n\r\n function getCCDHtml(patientId, dateFilter) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('chart/' + patientId + '/uscdiccd').customGET('html', dateFilter);\r\n }\r\n\r\n function postCCDHtmlDownloaded(reportRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('chart/' + reportRequestDto.PatientId + '/ccd/html').customPOST(reportRequestDto);\r\n }\r\n\r\n function getCDAXml(patientId, dateFilter) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('chart/' + patientId + '/uscdiccd').customGET('xml', dateFilter);\r\n }\r\n\r\n function getTransferCcdMetadata($scope) {\r\n return MetadataRepository.getMetadata('transfer-ccd', $scope);\r\n }\r\n\r\n function getTransmitCcdConfig(patientId){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('chart/' + patientId + '/ccd/transfer-config').get();\r\n }\r\n\r\n\r\n\r\n\r\n return {\r\n getAccessLog: getAccessLog,\r\n getDirectMailUsers: getDirectMailUsers,\r\n postTransmitRequest: postTransmitRequest,\r\n getCCDHtml: getCCDHtml,\r\n postCCDHtmlDownloaded: postCCDHtmlDownloaded,\r\n getCDAXml: getCDAXml,\r\n getTransferCcdMetadata: getTransferCcdMetadata,\r\n getTransmitCcdConfig: getTransmitCcdConfig,\r\n\r\n };\r\n }]);\r\n\r\n","angular.module('mychart').factory('MyChartService',\r\n ['GuidList', 'PatientSettingsService', 'PersonRepository', '$q', 'aprgettext', 'ConsentService',\r\n function MyChartService(GuidList, PatientSettingsService, PersonRepository, $q, gettext, ConsentService) {\r\n 'use strict';\r\n\r\n var myChartConfigList,\r\n userId,\r\n patientDetails,\r\n userFullName,\r\n immunizations = {\r\n Results: '',\r\n VaccineCardTypeId: ''\r\n },\r\n documents,\r\n problems,\r\n procedures,\r\n labResults,\r\n newLabResults,\r\n visitSummaries,\r\n appointments,\r\n referenceMaterial,\r\n medicationAllergies,\r\n mychartServiceUserId;\r\n\r\n function createUpdateDetailsDto() {\r\n return _.cloneDeep(patientDetails).value();\r\n }\r\n\r\n function getMyChartConfig() {\r\n if (!myChartConfigList) {\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n myChartConfigList = {\r\n 'PatientDocuments': {'Name': 'View Patient Documents', Id: 'mychart_documents', LabelName: gettext('Problems'), Route: 'myChartPatientDocuments', IsActive: featureList.ViewMedicalHistory.IsActive},\r\n 'ViewClinicalSummary': {'Name': 'View Clinical Summary', 'Uid': GuidList.FeatureList.ViewClinicalSummary,\r\n Id: 'mychart_visitsummaries', LabelName: gettext('Visit Summaries'), Route: 'myChartVisitSummary',\r\n 'IsActive': featureList.ViewClinicalSummary.IsActive},\r\n 'ViewDocuments': {'Name': 'View Documents', 'Uid': GuidList.FeatureList.ViewDocuments,\r\n Id: 'mychart_documents', LabelName: gettext('Documents'), Route: 'myChartDocuments',\r\n 'IsActive': featureList.ViewDocuments.IsActive},\r\n 'ViewProblems': {Id: 'mychart_problems', LabelName: gettext('Problems'), Route: 'myChartProblems', IsActive: featureList.ViewMedicalHistory.IsActive},\r\n 'ViewMedications': {'Name': 'View Medications', 'Uid': GuidList.FeatureList.ViewMedications,\r\n Id: 'mychart_prescriptions', LabelName: gettext('Prescriptions'), Route: 'myChartPrescriptions',\r\n 'IsActive': featureList.ViewMedications.IsActive},\r\n 'ViewProcedures': {'Name': 'View Procedures', 'Uid': GuidList.FeatureList.ViewProcedures,\r\n Id: 'mychart_procedures', LabelName: gettext('Procedures'), Route: 'myChartProcedures',\r\n 'IsActive': featureList.ViewProcedures.IsActive},\r\n 'ViewImmunizations': {\r\n Name: 'View Immunizations',\r\n Uid: GuidList.FeatureList.ViewImmunizations,\r\n Id: 'mychart_immunizations',\r\n LabelName: gettext('Immunizations'),\r\n Route: 'myChartImmunizations',\r\n IsActive: featureList.ViewImmunizations.IsActive,\r\n Config: {\r\n Pediatric: featureList.ViewImmunizations.ImmunizationsConfig && featureList.ViewImmunizations.ImmunizationsConfig.Pediatric,\r\n Adult: featureList.ViewImmunizations.ImmunizationsConfig && featureList.ViewImmunizations.ImmunizationsConfig.Adult,\r\n Misc: featureList.ViewImmunizations.ImmunizationsConfig &&featureList.ViewImmunizations.ImmunizationsConfig.Misc\r\n }\r\n },\r\n 'ViewLabResults': {'Name': 'View Test Results', 'Uid': GuidList.FeatureList.ViewLabTestResults,\r\n Id: 'mychart_labresults', LabelName: gettext('Test Results'), Route: 'myChartLabResults',\r\n 'IsActive': featureList.ViewLabTestResults.IsActive},\r\n 'ViewEducationMaterial': {'Name': 'View Education Material', 'Uid': GuidList.FeatureList.ViewEducationMaterial,\r\n Id: 'mychart_referencematerial', LabelName: gettext('Educational Material'), Route: 'myChartReferenceMaterial',\r\n 'IsActive': featureList.ViewEducationMaterial.IsActive},\r\n 'UpdateDemographics': {'Name': 'Update Demographics', 'Uid': GuidList.FeatureList.UpdateDemographics,\r\n Id: 'mychart_personaldetails', LabelName: gettext('Personal Details'), Route: 'myChartPersonalDetails',\r\n 'IsActive': featureList.UpdateDemographics.IsActive},\r\n 'UpdateInsurance': featureList.UpdateInsurance,\r\n 'ViewMedicationAllergies': {'Name': 'View Medication Allergies', 'Uid': GuidList.FeatureList.ViewMedicationAllergies,\r\n Id: 'mychart_medicationallergies', LabelName: gettext('Medication Allergies'), Route: 'myChartMedicationAllergies',\r\n 'IsActive': featureList.ViewMedicationAllergies.IsActive},\r\n 'RequestRxRefills': featureList.RequestRxRefills,\r\n 'ViewCompleteChart': featureList.ViewCompleteChart,\r\n 'AllowGenerateCCD' : featureList.AllowGenerateCCD\r\n };\r\n }\r\n return $q.when(myChartConfigList);\r\n }\r\n\r\n function getDetails(patientId, forceUpdate) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n if (!patientDetails || forceUpdate) {\r\n return PersonRepository.getDetails(patientId)\r\n .then(function (data) {\r\n patientDetails = data;\r\n return patientDetails;\r\n });\r\n } else {\r\n return $q.when(patientDetails);\r\n }\r\n }\r\n\r\n function getPatientDetailsMetadata($scope) {\r\n return PersonRepository.getPatientDetailsMetadata($scope);\r\n }\r\n\r\n function updateDetails(userId, dto) {\r\n return PersonRepository.updateDetails(userId, dto)\r\n .then(function (data) {\r\n patientDetails = data;\r\n return patientDetails;\r\n });\r\n }\r\n\r\n function searchPharmacies(zip, phoneNumber) {\r\n return PersonRepository.searchPharmacies(mychartServiceUserId, zip, phoneNumber);\r\n }\r\n\r\n function loadMyChart(patientId) {\r\n return $q.all([getDetails(patientId), getMyChartConfig()]);\r\n } \r\n\r\n function getImmunizations(patientId, vaccineCardTypeId, forceRefresh) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n\r\n if (!immunizations || immunizations.VaccineCardTypeId !== vaccineCardTypeId || forceRefresh) {\r\n return PersonRepository.getImmunizations(patientId, vaccineCardTypeId)\r\n .then(function (data) {\r\n immunizations.Results = data;\r\n immunizations.VaccineCardTypeId = vaccineCardTypeId;\r\n return immunizations;\r\n });\r\n }\r\n\r\n return $q.when(immunizations);\r\n }\r\n\r\n function getProblems(patientId) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n if (!problems) {\r\n return PersonRepository.getProblems(patientId)\r\n .then(function (data) {\r\n problems = data;\r\n return problems;\r\n });\r\n } else {\r\n return $q.when(problems);\r\n }\r\n }\r\n\r\n function getProcedures(patientId) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n if (!procedures) {\r\n return PersonRepository.getProcedures(patientId)\r\n .then(function (data) {\r\n procedures = data;\r\n return procedures;\r\n });\r\n } else {\r\n return $q.when(procedures);\r\n }\r\n }\r\n\r\n function getNewLabResults(patientId) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n return PersonRepository.getNewLabResults(patientId)\r\n .then(function (data) {\r\n newLabResults = data;\r\n return newLabResults;\r\n });\r\n }\r\n\r\n function getLabResults(patientId) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n if (!labResults) {\r\n return PersonRepository.getLabResults(patientId)\r\n .then(function (data) {\r\n labResults = data;\r\n return labResults;\r\n });\r\n } else {\r\n return $q.when(labResults);\r\n }\r\n }\r\n\r\n function getVisitSummaries(patientId) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n if (!visitSummaries) {\r\n return PersonRepository.getVisitSummaries(patientId)\r\n .then(function (data) {\r\n visitSummaries = data;\r\n return visitSummaries;\r\n });\r\n } else {\r\n return $q.when(visitSummaries);\r\n }\r\n }\r\n\r\n function getAppointments(patientId) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n if (!appointments) {\r\n return PersonRepository.getAppointments(patientId)\r\n .then(function (data) {\r\n appointments = data;\r\n return appointments;\r\n });\r\n } else {\r\n return $q.when(appointments);\r\n }\r\n }\r\n\r\n function getReferenceMaterial(reportRequestDto) {\r\n if (reportRequestDto.PatientId !== mychartServiceUserId) {\r\n resetMyChart(reportRequestDto.PatientId);\r\n }\r\n if (!referenceMaterial) {\r\n return PersonRepository.getReferenceMaterial(reportRequestDto)\r\n .then(function (data) {\r\n referenceMaterial = data;\r\n return referenceMaterial;\r\n });\r\n } else {\r\n return $q.when(referenceMaterial);\r\n }\r\n }\r\n\r\n function getMedicationAllergies(patientId) {\r\n if (patientId !== mychartServiceUserId) {\r\n resetMyChart(patientId);\r\n }\r\n if (!medicationAllergies) {\r\n return PersonRepository.getMedicationAllergies(patientId)\r\n .then(function (data) {\r\n medicationAllergies = data;\r\n return medicationAllergies;\r\n });\r\n } else {\r\n return $q.when(medicationAllergies);\r\n }\r\n }\r\n\r\n function getBilling(patientId) {\r\n return PersonRepository.getBilling(patientId)\r\n .then(function (data) {\r\n return data;\r\n });\r\n }\r\n\r\n function getFemaleThumbnailSrc(height, width) {\r\n if (height && !width) {\r\n width = height;\r\n }\r\n\r\n var url = 'person/thumbnail/?type=female';\r\n\r\n if (height) {\r\n url += '&height=' + height + '&width=' + width;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n function getMaleThumbnailSrc(height, width) {\r\n if (height && !width) {\r\n width = height;\r\n }\r\n\r\n var url = 'person/thumbnail/?type=male';\r\n\r\n if (height) {\r\n url += '&height=' + height + '&width=' + width;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n function clearAll() {\r\n userId = null;\r\n patientDetails = null;\r\n userFullName = null;\r\n immunizations = {\r\n Results: '',\r\n VaccineCardTypeId: ''\r\n };\r\n documents = null;\r\n problems = null;\r\n procedures = null;\r\n labResults = null;\r\n newLabResults = null;\r\n visitSummaries = null;\r\n appointments = null;\r\n referenceMaterial = null;\r\n medicationAllergies = null;\r\n\r\n ConsentService.clearChartConsent();\r\n }\r\n\r\n function setBillingServiceUserId(patientId){\r\n mychartServiceUserId = patientId;\r\n }\r\n\r\n function resetMyChart(patientId){\r\n clearAll();\r\n setBillingServiceUserId(patientId);\r\n }\r\n\r\n function auditImmunizationLogging(requestReportDto) {\r\n return PersonRepository.postImmunizationAudit(requestReportDto);\r\n }\r\n\r\n function auditClinicalSummaryLogging(requestReportDto) {\r\n return PersonRepository.postClinicalSummaryAudit(requestReportDto);\r\n }\r\n\r\n function auditDemographicsLogging(requestReportDto) {\r\n return PersonRepository.postDemographicsAudit(requestReportDto);\r\n }\r\n\r\n function auditLabResultsLogging(requestReportDto) {\r\n return PersonRepository.postLabResultAudit(requestReportDto);\r\n }\r\n\r\n function auditMedicalHistoryLogging(requestReportDto) {\r\n return PersonRepository.postMedicalHistoryAudit(requestReportDto);\r\n }\r\n\r\n function auditMedicationAllergiesLogging(requestReportDto) {\r\n return PersonRepository.postMedicationAllergiesAudit(requestReportDto);\r\n }\r\n\r\n function auditProceduresLogging(requestReportDto) {\r\n return PersonRepository.postProcedureAudit(requestReportDto);\r\n }\r\n\r\n function auditEducationMaterialLogging(requestReportDto) {\r\n return PersonRepository.postEducationalMaterialAudit(requestReportDto);\r\n }\r\n\r\n function auditChartLogging(requestReportDto) {\r\n return PersonRepository.postChartAudit(requestReportDto);\r\n }\r\n\r\n function usageMetricLogging(updateUsageMetricDto) {\r\n return PersonRepository.postUsageMetricUpdate(updateUsageMetricDto);\r\n }\r\n\r\n return {\r\n loadMyChart: loadMyChart,\r\n getMyChartConfig: getMyChartConfig,\r\n getDetails: getDetails,\r\n getPatientDetailsMetadata: getPatientDetailsMetadata,\r\n updateDetails: updateDetails,\r\n createUpdateDetailsDto: createUpdateDetailsDto,\r\n getImmunizations: getImmunizations,\r\n getProblems: getProblems,\r\n getProcedures: getProcedures,\r\n getNewLabResults: getNewLabResults,\r\n getLabResults: getLabResults,\r\n getVisitSummaries: getVisitSummaries,\r\n getAppointments: getAppointments,\r\n searchPharmacies: searchPharmacies,\r\n getBilling: getBilling,\r\n getReferenceMaterial: getReferenceMaterial,\r\n getMedicationAllergies: getMedicationAllergies,\r\n getFemaleThumbnailSrc: getFemaleThumbnailSrc,\r\n getMaleThumbnailSrc: getMaleThumbnailSrc,\r\n clearAll: clearAll,\r\n auditImmunizationLogging: auditImmunizationLogging,\r\n auditClinicalSummaryLogging : auditClinicalSummaryLogging,\r\n auditDemographicsLogging : auditDemographicsLogging,\r\n auditLabResultsLogging : auditLabResultsLogging,\r\n auditMedicalHistoryLogging : auditMedicalHistoryLogging,\r\n auditMedicationAllergiesLogging : auditMedicationAllergiesLogging,\r\n auditProceduresLogging : auditProceduresLogging,\r\n auditEducationMaterialLogging : auditEducationMaterialLogging,\r\n auditChartLogging : auditChartLogging,\r\n usageMetricLogging: usageMetricLogging\r\n };\r\n }]);\r\n","angular.module('mychart')\r\n .factory('PatientAttachmentRepository', ['AprimaRestangular', 'AprimaAnalytics', function (aprimaRestangular, AprimaAnalytics) {\r\n 'use strict';\r\n\r\n var getAttachment = function (attachmentId, patientId, requestSettings, applicationComponent, disableInLinePdf) {\r\n var timing = AprimaAnalytics.startTiming(applicationComponent || 'AttachmentRepository', 'api', 'getAttachment');\r\n var inlinePDF = (disableInLinePdf) ? false : true;\r\n \tvar queryString = '?page=' + requestSettings.page + '&height=' + requestSettings.height + '&width=' + requestSettings.width + '&inLinePDF=' + inlinePDF;\r\n\r\n return aprimaRestangular.get('patient').one('patients/' + patientId +'/attachments/' + attachmentId + queryString).get().finally(timing.stop);\r\n };\r\n\r\n var getAttachmentStaticUrl = function (attachmentId, patientId, applicationComponent) {\r\n var timing = AprimaAnalytics.startTiming(applicationComponent || 'AttachmentRepository', 'api', 'getAttachmentStaticUrl');\r\n\r\n return aprimaRestangular.get('patient').one('patients/' + patientId +'/attachments-url/' + attachmentId).get().finally(timing.stop);\r\n };\r\n\r\n var getAttachmentRetainOriginalFormat = function (attachmentId, patientId, applicationComponent) {\r\n var timing = AprimaAnalytics.startTiming(applicationComponent || 'AttachmentRepository', 'api', 'getAttachmentRetainOriginalFormat');\r\n var queryString = '?retainoriginalformat=true';\r\n return aprimaRestangular.get('patient').one('patients/' + patientId +'/attachments/' + attachmentId + queryString).get().finally(timing.stop);\r\n };\r\n\r\n return {\r\n getAttachment: getAttachment,\r\n getAttachmentStaticUrl: getAttachmentStaticUrl,\r\n getAttachmentRetainOriginalFormat: getAttachmentRetainOriginalFormat\r\n };\r\n\r\n }]);\r\n","angular.module('mychart').factory('PersonRepository',\r\n ['AprimaRestangular', 'MetadataRepository', function (AprimaRestangular, MetadataRepository) {\r\n 'use strict';\r\n\r\n var getDetails = function getDetails(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/details').get();\r\n };\r\n\r\n var updateDetails = function updateDetails(uid, request) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/details').customPUT(request);\r\n };\r\n\r\n var getPatientDetailsMetadata = function getPatientDetailsMetadata($scope) {\r\n return MetadataRepository.getMetadata('patientdetails', $scope);\r\n };\r\n\r\n var getPatient = function getPatient(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person', uid).get();\r\n };\r\n\r\n var searchPharmacies = function searchPharmacies(uid, zip, phoneNumber){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person', uid).customGET( 'pharmacy', {zip:zip, phoneNumber:phoneNumber});\r\n };\r\n\r\n\r\n var getImmunizations = function getImmunizations(uid, typeUid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/immunizations').get({immunizationType: typeUid});\r\n };\r\n\r\n var getProblems = function getProblems(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/problems').get();\r\n };\r\n\r\n var getProcedures = function getProcedures(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/procedures').get();\r\n };\r\n\r\n function getLabResults(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/labresults').get();\r\n }\r\n\r\n function getNewLabResults(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/labresults?newlabs=true').get();\r\n }\r\n\r\n function getRemarks(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/remarks').get();\r\n }\r\n\r\n function getRecentVisits(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/recentvisits').get();\r\n }\r\n\r\n var getAppointments = function getRecentVisits(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/appointments').get();\r\n };\r\n\r\n function getOrders(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/orders').get();\r\n }\r\n\r\n function getHealthMaintenanceReminders(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/healthmaintenancereminders').get();\r\n }\r\n\r\n function getBilling(uid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + uid + '/billing').get();\r\n }\r\n\r\n function getReferenceMaterial(reportRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + reportRequestDto.PatientId).customGET('reference-material', reportRequestDto);\r\n }\r\n\r\n function getMedicationAllergies(patientId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + patientId + '/medication-allergies').get();\r\n }\r\n\r\n function getAttachmentPdf(userId, attachmentId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + userId + '/attachment-pdf/' + attachmentId).get();\r\n }\r\n\r\n function getReferenceMaterialAttachment(userId, attachmentId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + userId + '/reference-material-attachment/' + attachmentId).get();\r\n }\r\n\r\n function getAttachment(userId, attachmentId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + userId + '/attachment/' + attachmentId).get();\r\n }\r\n\r\n function getObservationOrderPdf(userId, resultId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + userId + '/observation-order-pdf/' + resultId).get();\r\n }\r\n\r\n function getObservationOrderPdfImage(userId, resultId, requestSettings) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?page=' + requestSettings.page + '&height=' + requestSettings.height + '&width=' + requestSettings.width;\r\n\r\n return restangular.one('person/' + userId + '/observation-order-pdf/' + resultId + queryString).get();\r\n }\r\n\r\n function getCCDHtml(reportRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + reportRequestDto.PatientId + '/ccd').customGET('html', reportRequestDto);\r\n }\r\n\r\n function postCCDHtmlDownloaded(reportRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + reportRequestDto.PatientId + '/ccd/html').customPOST(reportRequestDto);\r\n }\r\n\r\n function getCDAXml(reportRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + reportRequestDto.PatientId + '/ccd').customGET('xml', reportRequestDto);\r\n }\r\n\r\n function getCompleteChart(userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + userId + '/complete-chart').get();\r\n }\r\n\r\n function getCompleteChartImage(userId, requestSettings) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?page=' + requestSettings.page + '&height=' + requestSettings.height + '&width=' + requestSettings.width;\r\n return restangular.one('person/' + userId + '/complete-chart/' + queryString).get();\r\n }\r\n\r\n function getVisitSummary(userId, visitId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + userId + '/visit-summary/' + visitId).get();\r\n }\r\n\r\n function getVisitSummaryImage (userId, visitId, requestSettings) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?page=' + requestSettings.page + '&height=' + requestSettings.height + '&width=' + requestSettings.width;\r\n\r\n return restangular.one('person/' + userId + '/visit-summary/' + visitId + queryString).get();\r\n }\r\n\r\n function getVisitSummaryUrl(patientId, visitId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + patientId + '/visit-summary-url/' + visitId).get();\r\n }\r\n\r\n function getVisitSummaries (userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('person/' + userId + '/visit-summaries').get();\r\n }\r\n\r\n function postImmunizationAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/immunizations').customPOST(reportRequestDto);\r\n }\r\n\r\n function postClinicalSummaryAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/clinical-summary').customPOST(reportRequestDto);\r\n }\r\n\r\n function postDemographicsAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/demographics').customPOST(reportRequestDto);\r\n }\r\n\r\n function postLabResultAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/lab-results').customPOST(reportRequestDto);\r\n }\r\n\r\n function postMedicalHistoryAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/medical-history').customPOST(reportRequestDto);\r\n }\r\n\r\n function postMedicationAllergiesAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/medication-allergies').customPOST(reportRequestDto);\r\n }\r\n\r\n function postProcedureAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/procedures').customPOST(reportRequestDto);\r\n }\r\n\r\n function postEducationalMaterialAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/educational-material').customPOST(reportRequestDto);\r\n }\r\n\r\n function postChartAudit(reportRequestDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'audit-patient-access/' + reportRequestDto.PatientId + '/complete-chart').customPOST(reportRequestDto);\r\n }\r\n\r\n function postUsageMetricUpdate(updateUsageMetricDto){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one( 'usage-metric/metric-update').customPOST(updateUsageMetricDto);\r\n }\r\n\r\n return {\r\n getDetails: getDetails,\r\n getPatientDetailsMetadata: getPatientDetailsMetadata,\r\n updateDetails: updateDetails,\r\n getImmunizations: getImmunizations,\r\n getPatient: getPatient,\r\n searchPharmacies: searchPharmacies,\r\n getAppointments: getAppointments,\r\n getProblems: getProblems,\r\n getProcedures: getProcedures,\r\n getLabResults: getLabResults,\r\n getNewLabResults: getNewLabResults,\r\n getRemarks: getRemarks,\r\n getRecentVisits: getRecentVisits,\r\n getOrders: getOrders,\r\n getVisitSummaries: getVisitSummaries,\r\n getHealthMaintenanceReminders: getHealthMaintenanceReminders,\r\n getBilling: getBilling,\r\n getReferenceMaterial: getReferenceMaterial,\r\n getMedicationAllergies: getMedicationAllergies,\r\n getAttachmentPdf: getAttachmentPdf,\r\n getAttachment: getAttachment,\r\n getObservationOrderPdf: getObservationOrderPdf,\r\n getObservationOrderPdfImage: getObservationOrderPdfImage,\r\n getCompleteChart: getCompleteChart,\r\n getCompleteChartImage: getCompleteChartImage,\r\n getCCDHtml: getCCDHtml,\r\n postCCDHtmlDownloaded: postCCDHtmlDownloaded,\r\n getCDAXml: getCDAXml,\r\n getVisitSummary: getVisitSummary,\r\n getVisitSummaryImage: getVisitSummaryImage,\r\n getVisitSummaryUrl: getVisitSummaryUrl,\r\n getReferenceMaterialAttachment: getReferenceMaterialAttachment,\r\n postImmunizationAudit : postImmunizationAudit,\r\n postClinicalSummaryAudit : postClinicalSummaryAudit,\r\n postDemographicsAudit : postDemographicsAudit,\r\n postLabResultAudit : postLabResultAudit,\r\n postMedicalHistoryAudit : postMedicalHistoryAudit,\r\n postMedicationAllergiesAudit : postMedicationAllergiesAudit,\r\n postProcedureAudit : postProcedureAudit,\r\n postEducationalMaterialAudit : postEducationalMaterialAudit,\r\n postChartAudit : postChartAudit,\r\n postUsageMetricUpdate: postUsageMetricUpdate\r\n };\r\n }]);\r\n\r\n","angular.module('mymessages', [\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'headroom',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n 'apEasyScroller',\r\n\r\n 'app',\r\n 'mychart',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api'\r\n\r\n]);","angular.module('mymessages').config(['AppRoutesProvider', '$stateProvider', '$urlRouterProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var portalSettings = { toolbarItem: 'messages' };\r\n\r\n var appRoutes = {\r\n 'myMessages': {\r\n state: 'myMessages',\r\n route: '/my-messages',\r\n portalSettings: portalSettings\r\n },\r\n 'myMessagesNewMessage': {\r\n state: 'myMessages.myMessagesNewMessage',\r\n route: '/new-message',\r\n portalSettings: portalSettings\r\n },\r\n 'myMessagesDisplayMessages': {\r\n state: 'myMessages.myMessagesDisplayMessages',\r\n route: '/display-messages/:displayMode',\r\n portalSettings: portalSettings\r\n },\r\n 'myMessagesDisplayMessageThread': {\r\n state: 'myMessages.myMessagesDisplayMessageThread',\r\n route: '/display-message-thread/:displayMode?id?updateNotification',\r\n portalSettings: portalSettings\r\n },\r\n 'myMessagesMobile': {\r\n state: 'myMessagesMobile',\r\n route: '/my-messages-mobile/:displayMode',\r\n portalSettings: portalSettings\r\n },\r\n 'myMessagesMobileNewMessage': {\r\n state: 'myMessagesMobile.myMessagesNewMessage',\r\n route: '/new-message',\r\n portalSettings: portalSettings\r\n },\r\n 'myMessagesMobileDisplayMessageThread': {\r\n state: 'myMessagesMobile.myMessagesDisplayMessageThread',\r\n route: '/display-message-thread/:displayMode?id?updateNotification',\r\n portalSettings: portalSettings\r\n }\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.myMessages.state, {\r\n url: appRoutes.myMessages.route,\r\n templateUrl: '/mymessages/views/myMessages.html',\r\n controller: 'MyMessagesCtrl',\r\n description: '/myMessages',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Messages'); }\r\n }\r\n })\r\n .state(appRoutes.myMessagesNewMessage.state, {\r\n url: appRoutes.myMessagesNewMessage.route,\r\n templateUrl: '/mymessages/views/newMessage.html',\r\n controller: 'NewMessageCtrl',\r\n description: '/NewMessages'\r\n })\r\n .state(appRoutes.myMessagesDisplayMessages.state, {\r\n url: appRoutes.myMessagesDisplayMessages.route,\r\n templateUrl: '/mymessages/views/displayMessages.html',\r\n controller: 'DisplayMessagesCtrl',\r\n description: '/DisplayMessages'\r\n })\r\n .state(appRoutes.myMessagesDisplayMessageThread.state, {\r\n url: appRoutes.myMessagesDisplayMessageThread.route,\r\n templateUrl: '/mymessages/views/displayMessageThread.html',\r\n controller: 'DisplayMessageThreadCtrl',\r\n description: '/DisplayMessageThread'\r\n })\r\n .state(appRoutes.myMessagesMobile.state, {\r\n url: appRoutes.myMessagesMobile.route,\r\n templateUrl: '/mymessages/views/myMessagesMobile.html',\r\n params: { folder: 'inbox' },\r\n controller: 'MyMessagesMobileCtrl',\r\n description: '/myMessagesMobile'\r\n })\r\n .state(appRoutes.myMessagesMobileNewMessage.state, {\r\n url: appRoutes.myMessagesMobileNewMessage.route,\r\n templateUrl: '/mymessages/views/newMessage.html',\r\n controller: 'NewMessageMobileCtrl',\r\n description: '/NewMessages'\r\n })\r\n .state(appRoutes.myMessagesMobileDisplayMessageThread.state, {\r\n url: appRoutes.myMessagesMobileDisplayMessageThread.route,\r\n templateUrl: '/mymessages/views/displayMessageThread.html',\r\n controller: 'DisplayMessageThreadMobileCtrl',\r\n description: '/DisplayMessageThread'\r\n });\r\n }]);","angular.module('mymessages').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/mymessages/views/displayMessageThread.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
0\\\">\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::messageThread.Messages[0].MessageHeaderText }} \\r\" +\r\n \"\\n\" +\r\n \" 1\\\">({{ ::messageThread.NumberOfMessages }})\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'From' | translate}} : {{::msg.FromName}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No messages found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and messages could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'You do not have access to view patient Messages.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mymessages/views/displayMessages.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::panelHeadingText }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{ ::messageSubType.Name }}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No messages found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'From' | translate}}  :  {{msg.FromName}}  |  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{msg.MessageHeaderText}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'From' | translate}}  :  {{msg.FromName}}  |  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{msg.MessageHeaderText}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and messages could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'You do not have access to view patient Messages.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mymessages/views/myMessages.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.subMessageText}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'If this is an emergency, call 911. Messages are for non-urgent correspondence.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Inbox' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Sent' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient messages could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'You do not have access to view patient Messages.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/mymessages/views/myMessagesMobile.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::\\\"Messages\\\" | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::\\\"If this is an emergency, call 911.\\\" | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::\\\"Messages are for non-urgent correspondence.\\\" | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{mobileModel.subMessageText}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{::folder.Name | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::'No messages found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::message.FromName}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::message.MessageHeaderText}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \" {{::message.MessageBodyText}}\\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'An error has occurred and Messages could not be loaded.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'You do not have access to Messages.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/mymessages/views/newMessage.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'Compose New Message' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
0 && AttachmentList.attachmentDtoList.length === 0\\\">\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ AttachmentList.validationMessage }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and messages could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'You do not have access to view patient Messages.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\n}]);\n","(function() {\r\n 'use strict';\r\n var DisplayMessageThreadBaseCtrl = function (returnRoute, returnOpts) {\r\n return function ($scope, $stateParams, $sce, $anchorScroll, $location, PatientPortalStorageRepository, MyMessagesRepository, MyMessagesService, $log, TransitionManager, toaster, gettext, MetadataRepository, NotificationService, MyChartService) {\r\n $scope.loading = false;\r\n $scope.replying = false;\r\n\r\n $scope.thumbnailSrc = MyChartService.getMaleThumbnailSrc(50,50);\r\n\r\n $scope.messageThread = {\r\n Messages: null,\r\n NumberOfMessages: 0,\r\n DisplayMode: ''\r\n };\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n\r\n var updateNotifications = false;\r\n\r\n if ($stateParams.displayMode.toUpperCase() === 'RECEIVED') {\r\n $scope.panelHeadingText = gettext('Received Messages');\r\n $scope.allowReply = true;\r\n $scope.messageThread.DisplayMode = 'Received';\r\n\r\n if ($stateParams.updateNotification && $stateParams.updateNotification.toUpperCase() === 'TRUE') {\r\n updateNotifications = true;\r\n }\r\n }\r\n else if ($stateParams.displayMode.toUpperCase() === 'SEND') {\r\n $scope.panelHeadingText = gettext('Sent Messages');\r\n $scope.allowReply = false;\r\n $scope.messageThread.DisplayMode = 'Send';\r\n }\r\n else {\r\n $scope.panelHeadingText = gettext('Unknown display mode - ') + $stateParams.displayMode;\r\n $scope.allowReply = false;\r\n $scope.messageThread.DisplayMode = 'Unknown';\r\n }\r\n\r\n $scope.portalMessage = {\r\n Message: ''\r\n };\r\n\r\n function loadView() {\r\n if ($scope.messageThread.DisplayMode.toUpperCase() !== 'UNKNOWN') {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyMessagesRepository\r\n .getMessageThreadMessages(activePatient.id, $stateParams.id)\r\n .then(function (data) {\r\n $scope.messageThread.Messages = _(data)\r\n .forEach(function (msg) {\r\n msg.MessageHeaderText = MyMessagesService.cleanMessageHeader(msg.MessageHeaderText);\r\n msg.MessageBodyTextNoLineBreaks = $sce.trustAsHtml(MyMessagesService.removeLineBreaks(msg.MessageBodyText));\r\n msg.MessageBodyText = $sce.trustAsHtml(msg.MessageBodyText);\r\n msg.IsCollapsed = true;\r\n });\r\n\r\n $scope.messageThread.NumberOfMessages = $scope.messageThread.Messages.length;\r\n\r\n if ($scope.messageThread.NumberOfMessages > 0) {\r\n $scope.messageThread.Messages[$scope.messageThread.NumberOfMessages - 1].IsCollapsed = false;\r\n\r\n return MyMessagesService.getMessageSettings(activePatient.id)\r\n .then(function (data) {\r\n var msgSetting = _.find(data[0].MessageSubTypes, { Id: $scope.messageThread.Messages[0].MessageSubTypeId });\r\n if (msgSetting) {\r\n $scope.allowReply = (msgSetting.CanBeSentByPatient && !msgSetting.SystemMessage);\r\n }\r\n });\r\n }\r\n else {\r\n $scope.allowReply = false;\r\n }\r\n\r\n if (updateNotifications) {\r\n updateNotifications = false;\r\n NotificationService.updateNotifications();\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n $location.hash('display-messages-bottom');\r\n $anchorScroll();\r\n });\r\n }\r\n\r\n MetadataRepository.getMetadata('createportalmessage', $scope);\r\n }\r\n\r\n $scope.replyToMessage = function replyToMessage(form) {\r\n if (! $scope.allowReply) {\r\n return;\r\n }\r\n\r\n form.isSubmitted = true;\r\n\r\n if (form.$valid) {\r\n $scope.replying = true;\r\n\r\n var newMessage = {\r\n MessageBody: MyMessagesService.replaceLineBreaksWithHtmlLineBreak($scope.portalMessage.Message),\r\n ParentMessageId: $stateParams.id,\r\n PatientId: activePatient.id\r\n };\r\n\r\n MyMessagesRepository\r\n .replyToMessage(activePatient.id, newMessage)\r\n .then(function () {\r\n TransitionManager.transition({appRoute: returnRoute, opts: returnOpts });\r\n toaster.pop('success', '', gettext('Message sent successfully.'));\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error has occurred and the Message was not sent.'));\r\n })\r\n .finally(function () {\r\n $scope.replying = false;\r\n });\r\n }\r\n };\r\n\r\n loadView();\r\n };\r\n };\r\n var DisplayMessageThreadCtrl = new DisplayMessageThreadBaseCtrl('myMessagesDisplayMessages', { displayMode: 'received' });\r\n var DisplayMessageThreadMobileCtrl = new DisplayMessageThreadBaseCtrl('myMessagesMobile', { folder: 'inbox' });\r\n angular.module('mymessages').controller('DisplayMessageThreadCtrl',\r\n ['$scope', '$stateParams', '$sce', '$anchorScroll', '$location', 'PatientPortalStorageRepository', 'MyMessagesRepository', 'MyMessagesService', '$log', 'TransitionManager', 'toaster', 'aprgettext', 'MetadataRepository', 'NotificationService', 'MyChartService',\r\n DisplayMessageThreadCtrl]);\r\n angular.module('mymessages').controller('DisplayMessageThreadMobileCtrl',\r\n ['$scope', '$stateParams', '$sce', '$anchorScroll', '$location', 'PatientPortalStorageRepository', 'MyMessagesRepository', 'MyMessagesService', '$log', 'TransitionManager', 'toaster', 'aprgettext', 'MetadataRepository', 'NotificationService', 'MyChartService',\r\n DisplayMessageThreadMobileCtrl]);\r\n})();","(function() {\r\n 'use strict';\r\n var MessageDisplayBaseCtrl = function MessageDisplayBaseCtrl(autoInit) {\r\n return function MessageDisplayBase($scope, $sce, $stateParams, PatientPortalStorageRepository, TransitionManager, MyMessagesRepository, MyMessagesService, MyChartService, gettext) {\r\n $scope.loading = false;\r\n\r\n var displayReceiveMessages = $stateParams.displayMode.toUpperCase() === 'RECEIVED';\r\n\r\n $scope.displaySentMessages = false;\r\n $scope.thumbnailSrc = MyChartService.getMaleThumbnailSrc(50,50);\r\n\r\n $scope.displayMessages = {\r\n Messages: null,\r\n NumberOfMessages: 0\r\n };\r\n \r\n $scope.displayMessageThreadRoute = 'myMessagesDisplayMessageThread';\r\n\r\n $scope.messageFilter = {\r\n MessageSubTypeId: '00000000-0000-0000-0000-000000000000',\r\n SearchSendReceivedMessages: '',\r\n SortDirection: 'desc',\r\n NumberOfMessages: 250,\r\n SearchNewOldMessages: 'Both'\r\n };\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n\r\n function getMessageSettings() {\r\n return MyMessagesService.getMessageSettings(activePatient.id)\r\n .then(function (data) {\r\n var msgSubTypes;\r\n var defaultSettings = data[0];\r\n\r\n if (displayReceiveMessages) {\r\n msgSubTypes = _(defaultSettings.MessageSubTypes)\r\n .filter({ 'Enabled' : true, 'CanBeReceivedByPatient' : true })\r\n .value();\r\n } else {\r\n msgSubTypes = _(defaultSettings.MessageSubTypes)\r\n .filter({ 'Enabled' : true, 'CanBeSentByPatient' : true, 'SystemMessage': false })\r\n .value();\r\n }\r\n\r\n msgSubTypes.push(\r\n {\r\n Enabled: true,\r\n Id: '00000000-0000-0000-0000-000000000000',\r\n Name: gettext('All Messages'),\r\n SystemMessage: false\r\n });\r\n\r\n $scope.messageSubTypes = msgSubTypes;\r\n $scope.selectedMessageSubTypeName = 'All Messages';\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response, '', 'listData');\r\n });\r\n }\r\n\r\n $scope.getMessages = function(messageFilter) {\r\n if ($scope.messageFilter.SearchSendReceivedMessages.toUpperCase() === 'UNKNOWN') {\r\n return;\r\n }\r\n\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n MyMessagesRepository\r\n .getMessages(activePatient.id, messageFilter)\r\n .then(function (data) {\r\n $scope.displayMessages.Messages = _(data)\r\n .forEach(function (msg) {\r\n msg.MessageHeaderText = MyMessagesService.cleanMessageHeader(msg.MessageHeaderText);\r\n msg.MessageBodyText = $sce.trustAsHtml(MyMessagesService.removeLineBreaks(msg.MessageBodyText));\r\n\r\n if ($scope.messageFilter.SearchSendReceivedMessages.toUpperCase() === 'RECEIVED') {\r\n if (msg.LastReadByPortalDate == null) {\r\n msg.NewMessage = true;\r\n }\r\n else {\r\n msg.NewMessage = false;\r\n }\r\n }\r\n });\r\n $scope.displayMessages.NumberOfMessages = $scope.displayMessages.Messages.length;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n };\r\n \r\n function initialize() {\r\n if ($stateParams.displayMode.toUpperCase() === 'RECEIVED') {\r\n $scope.panelHeadingText = gettext('Inbox'); //gettext('Received Messages');\r\n $scope.messageFilter.SearchSendReceivedMessages = 'Received';\r\n $scope.displaySentMessages = false;\r\n }\r\n else if ($stateParams.displayMode.toUpperCase() === 'SEND') {\r\n $scope.panelHeadingText = gettext('Sent Messages');\r\n $scope.messageFilter.SearchSendReceivedMessages = 'Send';\r\n $scope.displaySentMessages = true;\r\n }\r\n else {\r\n $scope.panelHeadingTest = 'Unknown display mode - ' + $stateParams.displayMode;\r\n $scope.messageFilter.SearchSendReceivedMessages = 'Unknown';\r\n $scope.displaySentMessages = false;\r\n }\r\n $scope.getMessages($scope.messageFilter);\r\n }\r\n\r\n $scope.filterMessages = function filterMessages(id) {\r\n $scope.loading = true;\r\n\r\n var selectedItem = _.find($scope.messageSubTypes, {Id: id});\r\n $scope.selectedMessageSubTypeName = selectedItem.Name; //$scope.messageSubTypes[Index].Name;\r\n $scope.messageFilter.MessageSubTypeId = selectedItem.Id; //$scope.messageSubTypes[Index].Id;\r\n $scope.messageFilter.SortDirection = 'desc';\r\n\r\n $scope.getMessages($scope.messageFilter);\r\n };\r\n\r\n $scope.displayMessageThread = function displayMessageThread(message) {\r\n if ($scope.messageFilter.SearchSendReceivedMessages.toUpperCase() === 'RECEIVED') {\r\n TransitionManager.transition({appRoute: $scope.displayMessageThreadRoute, opts: {displayMode: 'received', id: message.MessageId, updateNotification: message.NewMessage}});\r\n }\r\n else {\r\n TransitionManager.transition({appRoute: $scope.displayMessageThreadRoute, opts: {displayMode: 'send', id: message.MessageId}});\r\n }\r\n };\r\n\r\n $scope.onLoad = function() {\r\n getMessageSettings();\r\n\r\n if(autoInit)\r\n initialize();\r\n };\r\n \r\n $scope.onLoad();\r\n };\r\n };\r\n var DisplayMessagesCtrl = new MessageDisplayBaseCtrl(true);\r\n var MyMessagesMobileCtrl = function ($scope, $sce, $stateParams, PatientPortalStorageRepository, TransitionManager, MyMessagesRepository, MyMessagesService, MyChartService, gettext, _, $state, ContentAttributeService) {\r\n new MessageDisplayBaseCtrl(false).call(this, $scope, $sce, $stateParams, PatientPortalStorageRepository, TransitionManager, MyMessagesRepository, MyMessagesService, MyChartService, gettext);\r\n $scope.isInSubstate = function isInSubState() {\r\n return !$state.is('myMessagesMobile');\r\n };\r\n $scope.displayMessageThreadRoute = 'myMessagesMobileDisplayMessageThread';\r\n $scope.folders = [\r\n {\r\n Key: 'inbox',\r\n Name: 'Inbox',\r\n Filter: 'Received'\r\n },\r\n {\r\n Key: 'outbox',\r\n Name: 'Sent',\r\n Filter: 'Send'\r\n }\r\n ];\r\n $scope.selectedFolder = undefined;\r\n\r\n $scope.mobileModel = {\r\n subMessageText: ''\r\n };\r\n\r\n ContentAttributeService.getMessageSubHeading(false)\r\n .then(function(data) {\r\n $scope.mobileModel.subMessageText = data;\r\n })\r\n .catch(function () {\r\n $scope.mobileModel.subMessageText = '';\r\n });\r\n\r\n $scope.changeFolder = function changeFolder(folderKey) {\r\n $scope.selectedFolder = _.find($scope.folders, { Key: folderKey || $stateParams.folder }) || $scope.selectedFolder || $scope.folders[0];\r\n $scope.messageFilter.SearchSendReceivedMessages = $scope.selectedFolder.Filter;\r\n $scope.getMessages($scope.messageFilter);\r\n };\r\n $scope.composeNewMessage = function composeNewMessage() {\r\n $scope.inSubState = true;\r\n TransitionManager.transition({ appRoute: 'myMessagesMobileNewMessage' }); \r\n };\r\n \r\n $scope.displayMessageThreadMobile = function displayMessageThreadMobile(message) {\r\n $scope.inSubState = true;\r\n $scope.displayMessageThread(message); \r\n };\r\n \r\n $scope.goBackToMessages = function goBackToMessages() {\r\n $scope.inSubState = false;\r\n TransitionManager.transition({ appRoute: 'myMessagesMobile' }); \r\n };\r\n };\r\n angular.module('mymessages').controller('DisplayMessagesCtrl',\r\n ['$scope', '$sce', '$stateParams', 'PatientPortalStorageRepository', 'TransitionManager', 'MyMessagesRepository', 'MyMessagesService', 'MyChartService', 'aprgettext',\r\n DisplayMessagesCtrl]);\r\n angular.module('mymessages').controller('MyMessagesMobileCtrl',\r\n ['$scope', '$sce', '$stateParams', 'PatientPortalStorageRepository', 'TransitionManager', 'MyMessagesRepository', 'MyMessagesService', 'MyChartService', 'aprgettext', '_', '$state', 'ContentAttributeService',\r\n MyMessagesMobileCtrl]);\r\n})();","angular.module('mymessages').controller('MyMessagesCtrl',\r\n ['$scope', '$location', '$state', 'ContentAttributeService',\r\n function ($scope, $location, $state, ContentAttributeService) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.model = {\r\n subMessageText: ''\r\n };\r\n\r\n $scope.messageLinkSelected = function(linkId) {\r\n if (linkId === 'messages-inbox-btn') {\r\n if ($location.path() === '/my-messages/display-messages/received') {\r\n $state.reload();\r\n }\r\n } else if (linkId === 'messages-sent-btn') {\r\n //$scope.myMessages.DisplayCriteriaMenu = false;\r\n }\r\n };\r\n\r\n function getMessageSubHeading() {\r\n ContentAttributeService.getMessageSubHeading(false)\r\n .then(function(data) {\r\n $scope.model.subMessageText = data;\r\n })\r\n .catch(function () {\r\n $scope.model.subMessageText = '';\r\n });\r\n }\r\n\r\n function onLoad() {\r\n getMessageSubHeading();\r\n }\r\n onLoad();\r\n\r\n $scope.loading = false;\r\n }]);","(function () {\r\n 'use strict';\r\n var NewMessageBaseCtrl = function (returnRoute, returnOpts) {\r\n return function ($scope, $q, PatientPortalStorageRepository, MessageRepository, ListService, gettext, TransitionManager, toaster, MyMessagesService, MyMessagesRepository, GuidList) {\r\n $scope.loading = false;\r\n $scope.sending = false;\r\n $scope.patientAttachmentSubtype = GuidList.MessageSubType.PatientAttachment;\r\n\r\n $scope.messageSettings = null;\r\n $scope.messageSubTypes = null;\r\n\r\n $scope.routeTypeString = null;\r\n\r\n $scope.portalMessage = {\r\n UrgencyId: null,\r\n RouteType: 'Service Site',\r\n ProviderOrServiceSiteId: null,\r\n SubTypeId: null,\r\n Header: '',\r\n Message: ''\r\n };\r\n\r\n $scope.AttachmentList=\r\n {\r\n attachmentDtoList : $scope.attachmentDtoList,\r\n validationMessage : ''\r\n };\r\n\r\n $scope.returnRoute = returnRoute;\r\n $scope.returnOpts = returnOpts;\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n\r\n function getUrgencyList() {\r\n return ListService.getList('urgencies')\r\n .then(function (urgencyList) {\r\n $scope.urgencies = urgencyList;\r\n var defaultUrgency = _.find(urgencyList, {IsDefault: true});\r\n if (!_.isUndefined(defaultUrgency)) {\r\n $scope.portalMessage.UrgencyId = defaultUrgency.Id;\r\n }\r\n });\r\n }\r\n\r\n\r\n function getMessageSettings() {\r\n return MyMessagesService.getMessageSettings(activePatient.id)\r\n .then(function (data) {\r\n $scope.messageSettings = data;\r\n });\r\n }\r\n\r\n function getAttachmentConfig()\r\n {\r\n return MyMessagesService.isAttachmentAllowed();\r\n }\r\n\r\n function loadView() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n var urgencyListPromise = getUrgencyList();\r\n var messageSettingsPromise = getMessageSettings();\r\n\r\n $q.all([urgencyListPromise, messageSettingsPromise]).then(function () {\r\n MessageRepository.getPortalMessageMetadata($scope);\r\n\r\n if ($scope.messageSettings && $scope.messageSettings.length > 0) {\r\n $scope.portalMessage.RouteType = $scope.messageSettings[0].RouteType;\r\n if ($scope.messageSettings[0].RouteType.toLowerCase() === 'practice') {\r\n $scope.routeTypeString = gettext('Practice');\r\n } else if ($scope.messageSettings[0].RouteType.toLowerCase() === 'servicesite') {\r\n $scope.routeTypeString = gettext('Service Site');\r\n } else if ($scope.messageSettings[0].RouteType.toLowerCase() === 'provider'){\r\n $scope.routeTypeString = gettext('Provider');\r\n } else {\r\n $scope.routeTypeString = gettext('Unknown');\r\n }\r\n\r\n var defaultSettingsItem = _($scope.messageSettings)\r\n .filter({'DefaultRoutingItem': true})\r\n .value();\r\n\r\n if (defaultSettingsItem && defaultSettingsItem.length > 0) {\r\n defaultSettingsItem = defaultSettingsItem[0];\r\n }\r\n else {\r\n defaultSettingsItem = $scope.messageSettings[0];\r\n }\r\n\r\n $scope.portalMessage.ProviderOrServiceSiteId = defaultSettingsItem.ProviderOrServiceSiteId;\r\n\r\n $scope.messageSubTypes = _(defaultSettingsItem.MessageSubTypes)\r\n .filter({'SystemMessage': false, 'Enabled': true})\r\n .value();\r\n\r\n if ($scope.messageSubTypes && $scope.messageSubTypes.length > 0) {\r\n var defaultItem = _.find($scope.messageSubTypes, {Id: '9af1089b-e98b-4758-80f8-0435b143426d'});\r\n $scope.portalMessage.SubTypeId = (defaultItem) ? defaultItem.Id : $scope.messageSubTypes[0].Id;\r\n\r\n if(!getAttachmentConfig()) {\r\n $.each($scope.messageSubTypes, function (i) {\r\n if ($scope.messageSubTypes[i].Id === '584c539b-2874-44c9-9f86-6f0902044f5e'){\r\n $scope.messageSubTypes.splice(i, 1);\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }).catch(function (response) {\r\n $scope.addHttpError(response, '', 'listData');\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n $scope.selectedProviderOrServiceSiteChanged = function selectedProviderOrServiceSiteChanged() {\r\n var selectedMessageSettingsItem = _($scope.messageSettings)\r\n .filter({'ProviderOrServiceSiteId': $scope.portalMessage.ProviderOrServiceSiteId})\r\n .value();\r\n\r\n if (selectedMessageSettingsItem && selectedMessageSettingsItem.length) {\r\n $scope.messageSubTypes = _(selectedMessageSettingsItem[0].MessageSubTypes)\r\n .filter({'SystemMessage': false, 'Enabled': true})\r\n .value();\r\n\r\n if ($scope.messageSubTypes && $scope.messageSubTypes.length > 0) {\r\n $scope.portalMessage.SubTypeId = $scope.messageSubTypes[0].Id;\r\n }\r\n }\r\n };\r\n\r\n\r\n $scope.sendMessage = function sendMessage(form) {\r\n form.isSubmitted = true;\r\n\r\n if($scope.portalMessage.SubTypeId === '584c539b-2874-44c9-9f86-6f0902044f5e' && $scope.AttachmentList.attachmentDtoList.length === 0)\r\n {\r\n $scope.AttachmentList.validationMessage = '* Please select an attachment to send. ';\r\n form.$valid = false;\r\n }\r\n if (form.$valid) {\r\n $scope.sending = true;\r\n\r\n var selectedMessageSubType = _.find($scope.messageSubTypes, {Id: $scope.portalMessage.SubTypeId});\r\n\r\n var newMessage = {\r\n PatientId: activePatient.id,\r\n UrgencyId: $scope.portalMessage.UrgencyId,\r\n ProviderOrServiceSiteId: $scope.portalMessage.ProviderOrServiceSiteId,\r\n RouteType: $scope.portalMessage.RouteType,\r\n SubTypeId: $scope.portalMessage.SubTypeId,\r\n Header: selectedMessageSubType.Name + ' - ' + $scope.portalMessage.Header,\r\n Message: MyMessagesService.replaceLineBreaksWithHtmlLineBreak($scope.portalMessage.Message),\r\n Status: 'Incomplete',\r\n AttachmentDto : $scope.AttachmentList.attachmentDtoList\r\n };\r\n\r\n MyMessagesRepository\r\n .createMessage(activePatient.id, newMessage)\r\n .then(function () {\r\n TransitionManager.transition({appRoute: returnRoute, opts: returnOpts });\r\n toaster.pop('success', '', gettext('Message sent successfully.'));\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error has occurred and the Message was not sent.'));\r\n })\r\n .finally(function () {\r\n $scope.sending = false;\r\n });\r\n }\r\n };\r\n\r\n loadView();\r\n };\r\n };\r\n\r\n var NewMessageCtrl = new NewMessageBaseCtrl('myMessagesDisplayMessages', { displayMode: 'received' });\r\n var NewMessageMobileCtrl = new NewMessageBaseCtrl('myMessagesMobile', { folder: 'inbox' });\r\n angular.module('mymessages').controller('NewMessageCtrl',\r\n ['$scope', '$q', 'PatientPortalStorageRepository', 'MessageRepository', 'ListService', 'aprgettext', 'TransitionManager', 'toaster', 'MyMessagesService', 'MyMessagesRepository', 'GuidList',\r\n NewMessageCtrl]);\r\n angular.module('mymessages').controller('NewMessageMobileCtrl',\r\n ['$scope', '$q', 'PatientPortalStorageRepository', 'MessageRepository', 'ListService', 'aprgettext', 'TransitionManager', 'toaster', 'MyMessagesService', 'MyMessagesRepository', 'GuidList',\r\n NewMessageMobileCtrl]);\r\n})();","angular.module('mymessages').factory('MyMessagesService',\r\n ['$sce', '$q', 'aprgettext', 'PatientPortalStorageRepository', 'MyMessagesRepository', 'storage','PatientSettingsService',\r\n function ($sce, $q, gettext, PatientPortalStorageRepository, MyMessagesRepository, storage, PatientSettingsService) {\r\n\r\n 'use strict';\r\n\r\n function setMessageSettingsStorage(settings, patientId) {\r\n storage.set('messageSettings' + patientId, settings);\r\n }\r\n\r\n function getMessageSettingsStorage(patientId) {\r\n return storage.get('messageSettings' + patientId);\r\n }\r\n\r\n function isAttachmentAllowed()\r\n {\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n return featureList.PatientMessageAttachment.IsActive;\r\n }\r\n\r\n\r\n\r\n function indexAppointmentsQuestion() { return 0; }\r\n function indexBillingQuestion() { return 1; }\r\n function indexDemographicsQuestion() { return 2; }\r\n function indexGeneralQuestion() { return 3; }\r\n function indexLoginAssistanceQuestion() { return 4; }\r\n function indexPrescriptionRxQuestion() { return 5; }\r\n function indexAllMessages() { return 6; }\r\n\r\n function getMessageSubTypes() {\r\n var messageSubTypes = [\r\n {Id: 'FD4E2C5D-29C6-4A51-BD20-551D6ED90843', Index: indexAppointmentsQuestion(), Name: gettext('Appointments Question')},\r\n {Id: '73366BA8-0149-47E0-875B-CB12BB4CB250', Index: indexBillingQuestion(), Name: gettext('Billing Question')},\r\n {Id: 'DFFB40D0-2318-41A9-8EEF-94C58BABB9B9', Index: indexDemographicsQuestion(), Name: gettext('Demographics Question')},\r\n {Id: '9AF1089B-E98B-4758-80F8-0435B143426D', Index: indexGeneralQuestion(), Name: gettext('General Question')},\r\n {Id: 'ECA5B8A3-8371-4C08-BF43-386BAC737D3F', Index: indexLoginAssistanceQuestion(), Name: gettext('Login Assistance Question')},\r\n {Id: 'E94B7146-407D-4F92-A393-DE8429B7BFBF', Index: indexPrescriptionRxQuestion(), Name: gettext('Prescription Rx Question')},\r\n {Id: '00000000-0000-0000-0000-000000000000', Index: indexAllMessages(), Name: gettext('All Messages')}\r\n ];\r\n\r\n return messageSubTypes;\r\n }\r\n\r\n\r\n function cleanMessageHeader(text) {\r\n var returnText = text.replace('Patient Question -', '');\r\n returnText = returnText.replace('Patient Message -', '');\r\n\r\n var re = new RegExp('RE :', 'g');\r\n returnText = returnText.replace(re, 're :');\r\n\r\n returnText = returnText.trim();\r\n return returnText;\r\n }\r\n\r\n\r\n function removeLineBreaks(text) {\r\n var returnText = text;\r\n\r\n var re = new RegExp('\\r', 'g');\r\n returnText = returnText.replace(re, '');\r\n\r\n re = new RegExp('\\n', 'g');\r\n returnText = returnText.replace(re, '');\r\n\r\n re = new RegExp('
', 'g');\r\n returnText = returnText.replace(re, ' ');\r\n\r\n re = new RegExp('
', 'g');\r\n returnText = returnText.replace(re, ' ');\r\n\r\n re = new RegExp('

', 'g');\r\n returnText = returnText.replace(re, '');\r\n\r\n re = new RegExp('

', 'g');\r\n returnText = returnText.replace(re, ' ');\r\n\r\n return returnText;\r\n }\r\n\r\n\r\n function replaceLineBreaksWithHtmlLineBreak(text) {\r\n var returnText = text;\r\n\r\n var re = new RegExp('\\r\\n', 'g');\r\n returnText = returnText.replace(re, '
');\r\n\r\n re = new RegExp('\\n', 'g');\r\n returnText = returnText.replace(re, '
');\r\n\r\n return returnText;\r\n }\r\n\r\n function getNewMessages() {\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var messageFilter = {\r\n MessageSubTypeId: '00000000-0000-0000-0000-000000000000', // pass null\r\n SearchSendReceivedMessages: 'Received',\r\n SortDirection: 'desc',\r\n NumberOfMessages: 250,\r\n SearchNewOldMessages: 'New'\r\n };\r\n\r\n return MyMessagesRepository\r\n .getMessages(activePatient.id, messageFilter)\r\n .then(function (data) {\r\n var messages = _(data)\r\n .forEach(function (msg) {\r\n msg.MessageHeaderText = cleanMessageHeader(msg.MessageHeaderText);\r\n msg.MessageBodyText = $sce.trustAsHtml(removeLineBreaks(msg.MessageBodyText));\r\n\r\n if (msg.LastReadByPortalDate == null) {\r\n msg.NewMessage = true;\r\n }\r\n else {\r\n msg.NewMessage = false;\r\n }\r\n });\r\n return messages;\r\n });\r\n }\r\n\r\n function getMessageSettings(userId) {\r\n var messageSettings = getMessageSettingsStorage(userId);\r\n\r\n if (messageSettings != null) {\r\n return $q.when(messageSettings);\r\n } else {\r\n return MyMessagesRepository\r\n .getMessageSettings(userId)\r\n .then(function (data) {\r\n setMessageSettingsStorage(data, userId);\r\n return data;\r\n });\r\n }\r\n }\r\n\r\n\r\n return {\r\n cleanMessageHeader: cleanMessageHeader,\r\n removeLineBreaks: removeLineBreaks,\r\n replaceLineBreaksWithHtmlLineBreak: replaceLineBreaksWithHtmlLineBreak,\r\n getMessageSubTypes: getMessageSubTypes,\r\n indexAllMessages: indexAllMessages,\r\n indexGeneralQuestion: indexGeneralQuestion,\r\n getNewMessages: getNewMessages,\r\n getMessageSettings: getMessageSettings,\r\n isAttachmentAllowed : isAttachmentAllowed\r\n };\r\n\r\n }]);","angular.module('mymessages').factory('MyMessagesRepository',\r\n ['AprimaRestangular', function (AprimaRestangular) {\r\n 'use strict';\r\n\r\n\r\n //[Route(\"api/patient/v1/patients/{patientId:Guid}/messages/{messageId:Guid}/messages\")]\r\n function getMessageThreadMessages(userId, messageId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/messages/' + messageId + '/messages').get();\r\n }\r\n\r\n\r\n //[Route(\"api/patient/v1/patients/{userId:Guid}/messages\")]\r\n function getMessages(userId, messageFilter) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId).customGET('messages', messageFilter);\r\n }\r\n\r\n // [Route(\"api/patient/v1/settings/{userId:guid}/message-settings\")]\r\n function getMessageSettings(userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('settings/' + userId + '/message-settings').get();\r\n }\r\n\r\n function createMessage(userId, message) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('messages/' + userId + '/create').customPOST(message);\r\n }\r\n\r\n function replyToMessage(userId, message) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('messages/' + userId + '/reply').customPUT(message);\r\n }\r\n\r\n return {\r\n getMessages: getMessages,\r\n getMessageThreadMessages: getMessageThreadMessages,\r\n getMessageSettings: getMessageSettings,\r\n createMessage: createMessage,\r\n replyToMessage: replyToMessage\r\n };\r\n\r\n }]);","angular.module('myappointments', [\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'headroom',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n 'apEasyScroller',\r\n\r\n 'app',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api',\r\n 'aprima-utils'\r\n]);","angular.module('myappointments').config(['AppRoutesProvider', '$stateProvider', '$urlRouterProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var portalSettings = { toolbarItem: 'appointments' };\r\n\r\n var appRoutes = {\r\n 'myAppointments': {\r\n state: 'myAppointments',\r\n route: '/my-appointments',\r\n portalSettings: portalSettings\r\n },\r\n 'editRequestedAppointment': {\r\n state: 'editRequestedAppointment',\r\n route: '/requested-appointment-edit',\r\n portalSettings: portalSettings\r\n },\r\n 'addRequestedAppointment': {\r\n state: 'addRequestedAppointment',\r\n route: '/requested-appointment-add',\r\n portalSettings: portalSettings\r\n },\r\n 'confirmRequestedAppointment': {\r\n state: 'confirmRequestedAppointment',\r\n route: '/requested-appointment-confirm',\r\n portalSettings: portalSettings\r\n }\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.myAppointments.state, {\r\n url: appRoutes.myAppointments.route,\r\n templateUrl: '/myappointments/views/myAppointments.html',\r\n controller: 'MyAppointmentsCtrl',\r\n description: '/myAppointments',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Appointments'); }\r\n }\r\n })\r\n .state(appRoutes.editRequestedAppointment.state, {\r\n url: appRoutes.editRequestedAppointment.route,\r\n templateUrl: '/myappointments/views/scheduleAppointment.html',\r\n controller: 'ScheduleAppointmentCtrl',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Schedule An Appointment'); }\r\n }\r\n })\r\n .state(appRoutes.addRequestedAppointment.state, {\r\n url: appRoutes.addRequestedAppointment.route,\r\n templateUrl: '/myappointments/views/scheduleAppointment.html',\r\n controller: 'ScheduleAppointmentCtrl',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Schedule An Appointment'); }\r\n }\r\n })\r\n .state(appRoutes.confirmRequestedAppointment.state, {\r\n url: appRoutes.confirmRequestedAppointment.route,\r\n templateUrl: '/myappointments/views/confirmAppointment.html',\r\n controller: 'ConfirmAppointmentCtrl',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Appointments'); }\r\n }\r\n });\r\n }]);","angular.module('myappointments').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/myappointments/views/confirmAppointment.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Your appointment has been requested.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Your request has been sent to the staff for review. You will receive a message once the status of the request has been updated.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" @ \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::appointment.AppointmentTypeName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::appointment.AppointmentTypeDescription}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::appointment.CalendarDescription }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::appointment.Reason}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::appointmentLocation.Name}} {{::appointmentLocation.Address1}} | {{::appointmentLocation.City}}, {{::appointmentLocation.State}} {{::appointmentLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Done' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the confirmation page could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s appointments.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/myappointments/views/myAppointments.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Request a new appointment?' | translate}}  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Pending Appointments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Display Map' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.AppointmentType.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ pendingAppointment.AppointmentType.Description | limitTo: limitTo}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ pendingAppointment.AppointmentType.Description }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.Provider.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.VisitLocation.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.VisitLocation.Address1}} | {{pendingAppointment.VisitLocation.City}}, {{pendingAppointment.VisitLocation.State}} {{pendingAppointment.VisitLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'p.' | translate }} {{pendingAppointment.VisitLocation.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

{{::'Patient Visit Map' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.Provider.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.VisitLocation.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.VisitLocation.Address1}} | {{pendingAppointment.VisitLocation.City}}, {{pendingAppointment.VisitLocation.State}} {{pendingAppointment.VisitLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{pendingAppointment.VisitLocation.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Upcoming Appointments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No upcoming appointments scheduled.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Display Map' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.AppointmentType.Name}}\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" ({{appt.AppointmentStatus.Description}})\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ appt.AppointmentType.Description | limitTo: limitTo}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ appt.AppointmentType.Description }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.Provider.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Address1}} | {{appt.VisitLocation.City}}, {{appt.VisitLocation.State}} {{appt.VisitLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'p.' | translate }} {{appt.VisitLocation.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

{{::'Patient Visit Map' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.Provider.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Address1}} | {{appt.VisitLocation.City}}, {{appt.VisitLocation.State}} {{appt.VisitLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Previously Scheduled Appointments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No previously scheduled appointments found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" ({{appt.AppointmentStatus.Description}})\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.AppointmentType.Description}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.Provider.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Address1}} | {{appt.VisitLocation.City}}, {{appt.VisitLocation.State}}  {{appt.VisitLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient appointments could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s appointments.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/myappointments/views/scheduleAppointment.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Schedule An Appointment' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Fill out the appointment request below to request a new appointment and we will send it over to the practice for review and confirmation.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Details' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appointmentLocation.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appointmentLocation.Address1}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appointmentLocation.Address2}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appointmentLocation.City}}, {{appointmentLocation.State}}  {{appointmentLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'p.' | translate }} {{appointmentLocation.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{selectedAppointmentTypeDescription}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Timing' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'None Available.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Selected Appointment Time: ' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{appointment.Calendar.TimeZone}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Please select an appointment time.'}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Cancel' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Request Appointment' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient appointments could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s appointments.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\n}]);\n","angular.module('myappointments').controller('ConfirmAppointmentCtrl',\r\n ['$scope', '$q', 'ListService', 'MyAppointmentsService',\r\n function ($scope, $q, ListService, MyAppointmentsService) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.appointment = {\r\n CalendarDescription: '',\r\n AppointmentTypeDescription: '',\r\n AppointmentName: '',\r\n RequestDateTime: null,\r\n Reason: '',\r\n AppointmentType: { Id: ''}\r\n };\r\n\r\n $scope.appointmentLocation = {\r\n Id: '',\r\n Name: '',\r\n GoogleMapsUrl: '',\r\n Address1: '',\r\n Address2: '',\r\n City: '',\r\n State: '',\r\n Zip: '',\r\n PhoneNumber: ''\r\n };\r\n\r\n\r\n function loadPage() {\r\n var calendarList = ListService.getList('calendar', $scope, 'calendars');\r\n var serviceSiteList = ListService.getList('servicesite', $scope, 'serviceSites');\r\n var appointmentTypeList = ListService.getList('appointmenttype', $scope, 'appointmentType');\r\n\r\n $q.all([calendarList, serviceSiteList, appointmentTypeList]).then(function () {\r\n var requestedAppointment = MyAppointmentsService.getRequestedAppointment();\r\n\r\n var appointmentType = _.find($scope.appointmentType, {Id: requestedAppointment.AppointmentType.Id});\r\n $scope.appointment.AppointmentTypeDescription = appointmentType.Description;\r\n $scope.appointment.AppointmentTypeName = appointmentType.Name;\r\n $scope.appointment.RequestDateTime = requestedAppointment.RequestDateTime;\r\n $scope.appointment.Reason = requestedAppointment.Reason;\r\n $scope.appointment.CalendarDescription = requestedAppointment.Calendar.Description;\r\n\r\n var selectedCalendar = _.find($scope.calendars, {Id: requestedAppointment.Calendar.Id});\r\n var serviceSite = _.find($scope.serviceSites, {Id: selectedCalendar.DefaultServiceSiteId});\r\n selectAppointmentLocation(serviceSite);\r\n\r\n MyAppointmentsService.clearRequestedAppointment();\r\n $scope.loading = false;\r\n });\r\n\r\n }\r\n loadPage();\r\n\r\n\r\n function selectAppointmentLocation(serviceSite) {\r\n if (serviceSite) {\r\n $scope.appointmentLocation.Id = serviceSite.Id;\r\n $scope.appointmentLocation.Name = serviceSite.Description;\r\n $scope.appointmentLocation.Address1 = serviceSite.Address.Address1;\r\n $scope.appointmentLocation.Address2 = serviceSite.Address.Address2;\r\n $scope.appointmentLocation.City = serviceSite.Address.City;\r\n $scope.appointmentLocation.State = serviceSite.Address.State;\r\n $scope.appointmentLocation.Zip = serviceSite.Address.Zip;\r\n $scope.appointmentLocation.PhoneNumber = serviceSite.PhoneNumber.PhoneNumber;\r\n $scope.appointmentLocationDefined = true;\r\n }\r\n }\r\n\r\n }]);","angular.module('myappointments').controller('MyAppointmentsCtrl',\r\n ['$scope', '$q', '$sce', '$log', 'TransitionManager', 'PatientPortalStorageRepository', 'MyAppointmentsRepository', 'MyAppointmentsService', 'NotificationService', 'toaster', 'aprgettext', 'PatientSettingsService',\r\n function ($scope, $q, $sce, $log, TransitionManager, PatientPortalStorageRepository, MyAppointmentsRepository, MyAppointmentsService, NotificationService, toaster, gettext, PatientSettingsService) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n $scope.upcomingAppointments = [];\r\n $scope.previousAppointments = [];\r\n $scope.pendingAppointment = null;\r\n $scope.fullAppointmentDescription = false;\r\n $scope.limitTo = 120;\r\n\r\n $scope.searchFilter = {\r\n StartDate: '1/1/1800',\r\n EndDate: '12/31/9999',\r\n SortDirection: 'desc',\r\n FetchLimit: 250\r\n };\r\n\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n $scope.canRequestAppointments = featureList.RequestAppointments.IsActive;\r\n $scope.canViewAppointments = featureList.ViewAppointments.IsActive;\r\n $scope.canCheckInFeature = featureList.CheckIn.IsActive;\r\n featureList = null;\r\n\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n\r\n function isUpcomingAppointment(appointmentDateTime, minUpcomingAppointmentDateTime) {\r\n if (!appointmentDateTime) {\r\n return false;\r\n }\r\n\r\n var diff = moment(appointmentDateTime).diff(moment(minUpcomingAppointmentDateTime), 'days');\r\n return (diff >= 0);\r\n }\r\n\r\n function createAppointmentLists(appointments) {\r\n var minUpcomingAppointmentDateTime = moment().subtract(1, 'hours');\r\n var appointmentLists = _.partition(appointments, function (item) {\r\n return isUpcomingAppointment(item.StartDateTime, minUpcomingAppointmentDateTime) && \r\n !item.AppointmentStatus.IsCanceledStatus;\r\n });\r\n\r\n $scope.upcomingAppointments = _(appointmentLists[0])\r\n .map(function(property){\r\n return _.assignIn(property , { mapLoaded: false, fullAppointmentDescription: false });\r\n })\r\n .sortBy('StartDateTime')\r\n .forEach(function (item) {\r\n item.CanReschedule = false;\r\n\r\n // Can check in 1 hour early to 1 hour late\r\n // Appointment Status cannot be Canceled, Discharged or Checked In\r\n item.CanCheckIn = false;\r\n item.CanCancel = !(MyAppointmentsService.isCheckIn(item.AppointmentStatus.Id) || item.AppointmentStatus.IsCanceledStatus || MyAppointmentsService.isDischarged(item.AppointmentStatus.Id));\r\n if (moment(item.StartDateTime).isBetween(moment().subtract(1, 'hours'), moment().add(1, 'hours'))) {\r\n if (item.CanCancel) {\r\n item.CanCheckIn = true;\r\n }\r\n }\r\n\r\n item.IsAppointmentToday = false;\r\n if (MyAppointmentsService.isAppointmentToday(item.StartDateTime)) {\r\n item.IsAppointmentToday = true;\r\n }\r\n\r\n });\r\n \r\n $scope.previousAppointments = appointmentLists[1];\r\n }\r\n\r\n function getPatientAppointments(searchFilter) {\r\n $scope.loading = true;\r\n return MyAppointmentsRepository\r\n .getAppointments(activePatient.id, searchFilter)\r\n .then(function (data) {\r\n createAppointmentLists(data);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function createPendingAppointments(pendingAppts) {\r\n if (pendingAppts) {\r\n _.assignIn(pendingAppts, { mapLoaded: false });\r\n $scope.pendingAppointment = pendingAppts;\r\n $scope.pendingAppointment.CanReschedule = true;\r\n //$log.log('pending appointment requests:');\r\n //$log.log($scope.pendingAppointment);\r\n }\r\n else {\r\n $scope.pendingAppointment = null;\r\n }\r\n }\r\n\r\n function getPendingAppointments() {\r\n return MyAppointmentsRepository\r\n .getPendingAppointmentRequest(activePatient.id)\r\n .then(function (pendingAppts) {\r\n createPendingAppointments(pendingAppts);\r\n });\r\n }\r\n \r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n if (!$scope.canViewAppointments) {\r\n toaster.pop('warning', '', gettext('The View Appointments feature is not enabled.'));\r\n TransitionManager.transition({appRoute: 'dashboard'});\r\n return;\r\n }\r\n\r\n activePatient = PatientPortalStorageRepository.getActivePatient();\r\n\r\n var pendingAppointmentsPromise = getPendingAppointments();\r\n var bookedAppointmentsPromise = getPatientAppointments($scope.searchFilter);\r\n $q.all([pendingAppointmentsPromise, bookedAppointmentsPromise]).catch(function (response) {\r\n $scope.addHttpError(response);\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadPage();\r\n\r\n $scope.toggleFullAppointmentDescriptionPending = function toggleFullAppointmentDescriptionPending()\r\n {\r\n $scope.fullAppointmentDescriptionPending = !$scope.fullAppointmentDescriptionPending;\r\n };\r\n\r\n $scope.toggleFullAppointmentDescription = function toggleFullAppointmentDescription(appt)\r\n {\r\n appt.fullAppointmentDescription = !appt.fullAppointmentDescription;\r\n console.log(appt.fullAppointmentDescription);\r\n };\r\n\r\n $scope.requestNewAppointment = function requestNewAppointment() {\r\n MyAppointmentsService.clearRequestedAppointment();\r\n TransitionManager.transition({appRoute: 'addRequestedAppointment'});\r\n };\r\n\r\n $scope.rescheduleRequestedAppointment = function rescheduleRequestedAppointment() {\r\n var requestedAppointment = {\r\n Message: { Id: $scope.pendingAppointment.MessageId},\r\n Calendar: { Id: $scope.pendingAppointment.Calendar.Id, Description: ''},\r\n AppointmentType: { Id: $scope.pendingAppointment.AppointmentType.Id},\r\n RequestDateTime: $scope.pendingAppointment.StartDateTime,\r\n Reason: $scope.pendingAppointment.Reason\r\n };\r\n MyAppointmentsService.cacheRequestedAppointment(requestedAppointment);\r\n TransitionManager.transition({appRoute: 'editRequestedAppointment'});\r\n };\r\n\r\n $scope.appointmentCheckIn = function appointmentCheckIn(appointment) {\r\n MyAppointmentsRepository\r\n .changeAppointmentStatus(appointment.PatientId, appointment.AppointmentId, 'CD2A0578-0C89-4151-B4E9-66ED9D5B4995')\r\n .then(function () {\r\n getPatientAppointments($scope.searchFilter);\r\n toaster.pop('success', '', gettext('Appointment check in is successful.'));\r\n NotificationService.updateNotifications();\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred updating the appointment.'));\r\n });\r\n };\r\n\r\n //$scope.appointmentCancel = function appointmentCancel(appointment) {\r\n // alert('Cancel appointment not implemented, yet. ' + appointment);\r\n //};\r\n\r\n $scope.loadMap = function toggleShow(appt){\r\n appt.mapLoaded = true;\r\n };\r\n\r\n }]);","angular.module('myappointments').controller('ScheduleAppointmentCtrl',\r\n ['$scope', '$q', '$log', 'ListService', 'MyAppointmentsRepository', 'MyAppointmentsService', 'PatientPortalStorageRepository', 'AppointmentRepository', 'toaster','aprgettext', 'TransitionManager',\r\n function ($scope, $q, $log, ListService, MyAppointmentsRepository, MyAppointmentsService, PatientPortalStorageRepository, AppointmentRepository, toaster, gettext, TransitionManager) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.patientCalendars = [];\r\n $scope.patientAppointmentTypes = [];\r\n $scope.openAppointmentSlots = [];\r\n $scope.selectedTimeSlotInvalid = false;\r\n\r\n $scope.datepickerOptions = {\r\n minDate: moment().toDate(),\r\n maxDate: moment().add(1, 'years').toDate(),\r\n showWeeks: false,\r\n minMode: 'day',\r\n maxMode: 'day'\r\n };\r\n\r\n $scope.appointment = {\r\n Calendar: { Id: '', Description: ''},\r\n AppointmentType: { Id: ''},\r\n RequestDateTime: null,\r\n Reason: ''\r\n };\r\n $scope.datePicker = { selectedDate: ''};\r\n\r\n $scope.appointmentLocation = {\r\n Id: '',\r\n Name: '',\r\n GoogleMapsUrl: '',\r\n Address1: '',\r\n Address2: '',\r\n City: '',\r\n State: '',\r\n Zip: '',\r\n PhoneNumber: ''\r\n };\r\n $scope.appointmentLocationDefined = false;\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var myTimeZone;\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n activePatient = PatientPortalStorageRepository.getActivePatient();\r\n var calendarList = ListService.getList('calendar', $scope, 'calendars');\r\n var serviceSiteList = ListService.getList('servicesite', $scope, 'serviceSites');\r\n var appointmentTypeList = ListService.getList('appointmenttype', $scope, 'appointmentType');\r\n var loadTimeZonePromise = loadTimeZone();\r\n\r\n $q.all([calendarList, serviceSiteList, appointmentTypeList, loadTimeZonePromise]).then(function () {\r\n if ($scope.calendars) {\r\n $scope.patientCalendars = _($scope.calendars)\r\n .filter({'AllowPatientRequest': true})\r\n .value();\r\n }\r\n\r\n if ($scope.appointmentType) {\r\n $scope.patientAppointmentTypes = _($scope.appointmentType)\r\n .filter({'AllowPatientRequest': true})\r\n .value();\r\n }\r\n\r\n if (MyAppointmentsService.isNewRequestedAppointment()) {\r\n if ($scope.patientCalendars) {\r\n $scope.appointment.Calendar.Id = $scope.patientCalendars[0].Id;\r\n }\r\n if ($scope.patientAppointmentTypes) {\r\n $scope.appointment.AppointmentType.Id = $scope.patientAppointmentTypes[0].Id;\r\n $scope.selectedAppointmentTypeDescription = $scope.patientAppointmentTypes[0].Description;\r\n }\r\n $scope.datePicker.selectedDate = new Date();\r\n }\r\n else {\r\n var requestedAppointment = MyAppointmentsService.getRequestedAppointment();\r\n var appointmentType = _.find($scope.appointmentType, {Id: requestedAppointment.AppointmentType.Id});\r\n\r\n $scope.appointment.Calendar.Id = requestedAppointment.Calendar.Id;\r\n $scope.appointment.AppointmentType.Id = requestedAppointment.AppointmentType.Id;\r\n $scope.selectedAppointmentTypeDescription = appointmentType.Description;\r\n $scope.appointment.Reason = requestedAppointment.Reason;\r\n $scope.appointment.RequestDateTime = requestedAppointment.RequestDateTime; // bound to appointment slot in view\r\n $scope.datePicker.selectedDate = requestedAppointment.RequestDateTime; // bound to selected datepicker date in view\r\n\r\n MyAppointmentsService.clearRequestedAppointment();\r\n }\r\n\r\n assignTimeZone();\r\n selectAppointmentLocation();\r\n populateOpenAppointmentSlots($scope.datePicker.selectedDate, $scope.appointment.RequestDateTime);\r\n\r\n MyAppointmentsRepository.getAppointmentRequestMetadata($scope);\r\n }).catch(function (response) {\r\n $scope.addHttpError(response);\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadPage();\r\n\r\n function loadTimeZone() {\r\n return MyAppointmentsRepository\r\n .getTimeZone()\r\n .then(function (data) {\r\n myTimeZone = data;\r\n });\r\n }\r\n\r\n function assignTimeZone() {\r\n _.forEach($scope.patientCalendars, function(calendar) {\r\n if(calendar.TimeZone === null) {\r\n calendar.TimeZone = myTimeZone.StandardName;\r\n }\r\n });\r\n }\r\n\r\n function clearAppointmentLocation() {\r\n $scope.appointmentLocationDefined = false;\r\n $scope.appointmentLocation.Id = '';\r\n $scope.appointmentLocation.Name = '';\r\n $scope.appointmentLocation.GoogleMapsUrl = '';\r\n $scope.appointmentLocation.Address1 = '';\r\n $scope.appointmentLocation.Address2 = '';\r\n $scope.appointmentLocation.City = '';\r\n $scope.appointmentLocation.State = '';\r\n $scope.appointmentLocation.Zip = '';\r\n $scope.appointmentLocation.PhoneNumber = '';\r\n }\r\n function selectAppointmentLocation() {\r\n clearAppointmentLocation();\r\n var selectedCalendar = _.find($scope.patientCalendars, {Id: $scope.appointment.Calendar.Id});\r\n if (selectedCalendar && selectedCalendar.DefaultServiceSiteId) {\r\n var serviceSite = _.find($scope.serviceSites, {Id: selectedCalendar.DefaultServiceSiteId});\r\n if (serviceSite) {\r\n $scope.appointmentLocation.Id = (serviceSite.Id) ? serviceSite.Id : '';\r\n $scope.appointmentLocation.Name = (serviceSite.Description) ? serviceSite.Description : '';\r\n if(serviceSite.Address)\r\n {\r\n if(serviceSite.Address.Address1) {\r\n $scope.appointmentLocation.Address1 = serviceSite.Address.Address1;\r\n $scope.appointmentLocationDefined = true;\r\n }\r\n $scope.appointmentLocation.Address2 = (serviceSite.Address.Address2) ? serviceSite.Address.Address2 : '';\r\n $scope.appointmentLocation.City = (serviceSite.Address.City) ? serviceSite.Address.City : '';\r\n $scope.appointmentLocation.State = (serviceSite.Address.State) ? serviceSite.Address.State : '';\r\n $scope.appointmentLocation.Zip = (serviceSite.Address.Zip) ? serviceSite.Address.Zip : '';\r\n }\r\n if(serviceSite.PhoneNumber)\r\n {\r\n $scope.appointmentLocation.PhoneNumber = (serviceSite.PhoneNumber.PhoneNumber) ? serviceSite.PhoneNumber.PhoneNumber : '';\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n function populateOpenAppointmentSlots(selectedDate, selectedTime) {\r\n $scope.loadingAppointmentSlots = true;\r\n $scope.removeHttpError();\r\n var startDate = moment(selectedDate).hour(0).minute(0).second(0).toDate();\r\n var endDate = moment(startDate).add(1, 'days').hour(0).minute(0).second(0).toDate();\r\n\r\n\r\n if ($scope.appointment.AppointmentType.Id) {\r\n var selectedCalendar = _.find($scope.patientCalendars, {Id: $scope.appointment.Calendar.Id});\r\n if (selectedCalendar) {\r\n $scope.appointment.Calendar.Description = (selectedCalendar.Description) ? selectedCalendar.Description : '';\r\n $scope.appointment.Calendar.TimeZone = (selectedCalendar.TimeZone) ? selectedCalendar.TimeZone : '';\r\n var searchFilter = {\r\n StartDate: startDate,\r\n EndDate: endDate,\r\n AppointmentTypeId: $scope.appointment.AppointmentType.Id\r\n };\r\n\r\n MyAppointmentsRepository\r\n .getAppointmentsOpenTimeSlots(activePatient.id, selectedCalendar.Id, searchFilter)\r\n .then(function (data) {\r\n $scope.openAppointmentSlots = _(data)\r\n .forEach(function (item) {\r\n item.Selected = false;\r\n if (selectedTime) {\r\n if (moment(selectedTime).isSame(item.StartDate)) {\r\n item.Selected = true;\r\n }\r\n }\r\n });\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingAppointmentSlots = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n $scope.selectedCalendarChanged = function selectedCalendarChanged() {\r\n selectAppointmentLocation();\r\n populateOpenAppointmentSlots($scope.datePicker.selectedDate);\r\n $scope.appointment.RequestDateTime = null;\r\n $scope.selectedTimeSlotInvalid = false;\r\n };\r\n\r\n\r\n $scope.selectedAppointmentTypeChanged = function selectedAppointmentTypeChanged() {\r\n populateOpenAppointmentSlots($scope.datePicker.selectedDate);\r\n $scope.appointment.RequestDateTime = null;\r\n $scope.selectedTimeSlotInvalid = false;\r\n var selectedApptType = _.find(($scope.patientAppointmentTypes),\r\n {'Id': $scope.appointment.AppointmentType.Id});\r\n $scope.selectedAppointmentTypeDescription = (selectedApptType) ? selectedApptType.Description : '';\r\n };\r\n\r\n\r\n $scope.datePickerChanged = function datePickerChanged() {\r\n populateOpenAppointmentSlots($scope.datePicker.selectedDate);\r\n $scope.appointment.RequestDateTime = null;\r\n $scope.selectedTimeSlotInvalid = false;\r\n };\r\n\r\n $scope.SelectedTimeSlotClick = function SelectedTimeSlotClick() {\r\n $scope.selectedTimeSlotInvalid = !$scope.appointment.RequestDateTime;\r\n };\r\n\r\n function validateRequestDate(form) {\r\n if (!$scope.datePicker.selectedDate) {\r\n form.RequestDate.$invalid = true;\r\n form.RequestDate.$dirty = true;\r\n }\r\n else {\r\n form.RequestDate.$invalid = false;\r\n }\r\n }\r\n\r\n function validateSelectedTimeSlot() {\r\n $scope.selectedTimeSlotInvalid = !$scope.appointment.RequestDateTime;\r\n\r\n //if (!$scope.appointment.RequestDateTime) {\r\n // form.SelectedTimeSlot.$invalid = true;\r\n // form.SelectedTimeSlot.$dirty = true;\r\n //}\r\n //else {\r\n // form.SelectedTimeSlot.$invalid = false;\r\n //}\r\n }\r\n\r\n function validateAppointmentReason(form) {\r\n if (!$scope.appointment.Reason) {\r\n form.AppointmentReason.$invalid = true;\r\n form.AppointmentReason.$dirty = true;\r\n }\r\n else {\r\n form.AppointmentReason.$invalid = false;\r\n }\r\n }\r\n\r\n function isFormValid(form) {\r\n if ($scope.selectedTimeSlotInvalid || form.RequestDate.$invalid || form.AppointmentReason.$invalid) {\r\n form.$valid = false;\r\n }\r\n else {\r\n form.$valid = true;\r\n }\r\n }\r\n\r\n $scope.requestAppointment = function requestAppointment(form) {\r\n form.isSubmitted = true;\r\n\r\n validateRequestDate(form);\r\n validateSelectedTimeSlot();\r\n validateAppointmentReason(form);\r\n isFormValid(form);\r\n\r\n if (form.$valid) {\r\n $scope.sending = true;\r\n\r\n var apptRequest = {\r\n AppointmentTypeId: $scope.appointment.AppointmentType.Id,\r\n CalendarId: $scope.appointment.Calendar.Id,\r\n Reason: $scope.appointment.Reason,\r\n RequestDateTime: $scope.appointment.RequestDateTime\r\n };\r\n\r\n MyAppointmentsRepository\r\n .requestAppointment(activePatient.id, apptRequest)\r\n .then(function () {\r\n MyAppointmentsService.clearRequestedAppointment();\r\n var requestedAppointment = {\r\n Message: {Id: ''},\r\n Calendar: {\r\n Id: $scope.appointment.Calendar.Id,\r\n Description: $scope.appointment.Calendar.Description\r\n },\r\n AppointmentType: {Id: $scope.appointment.AppointmentType.Id},\r\n RequestDateTime: $scope.appointment.RequestDateTime,\r\n Reason: $scope.appointment.Reason\r\n };\r\n MyAppointmentsService.cacheRequestedAppointment(requestedAppointment);\r\n\r\n TransitionManager.transition({appRoute: 'confirmRequestedAppointment'});\r\n //toaster.pop('success', '', gettext('Appointment request sent successfully.'));\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error has occurred and the appointment request was not sent.'));\r\n })\r\n .finally(function () {\r\n $scope.sending = false;\r\n });\r\n }\r\n else {\r\n if ($scope.selectedTimeSlotInvalid) {\r\n toaster.pop('warning', '', gettext('An appointment time must be selected in order to request an Appointment.'));\r\n }\r\n else if (form.RequestDate.$invalid) {\r\n toaster.pop('warning', '', gettext('An appointment date must be selected in order to request an Appointment.'));\r\n }\r\n else if (form.AppointmentReason.$invalid) {\r\n toaster.pop('warning', '', gettext('An appointment reason must be entered in order to request an Appointment.'));\r\n }\r\n }\r\n };\r\n }]);","angular.module('myappointments').factory('MyAppointmentsRepository',\r\n ['AprimaRestangular', 'MetadataRepository', function (AprimaRestangular, MetadataRepository) {\r\n 'use strict';\r\n \r\n function changeAppointmentStatus(patientId, appointmentId, statusId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + patientId + '/appointments/status/' + appointmentId + '/' + statusId).customPUT();\r\n }\r\n\r\n function updateAppointment(appt) {\r\n var patientId = appt.Patient.Id;\r\n var appointmentId = appt.Id;\r\n\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + patientId + '/appointments/' + appointmentId).customPUT(appt);\r\n }\r\n\r\n function getAppointment(patientId, appointmentId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + patientId + '/appointments/' + appointmentId).get();\r\n }\r\n\r\n function getAppointments(userId, searchFilter) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId).customGET('appointments', searchFilter);\r\n }\r\n\r\n function getPendingAppointments(userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/pendingappointments').get();\r\n }\r\n\r\n //[Route(\"api/patient/v1/patients/{userId:Guid}/pendingappointmentrequest\")]\r\n function getPendingAppointmentRequest(userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/pendingappointmentrequest').get();\r\n }\r\n\r\n function getAppointmentsOpenTimeSlots(userId, calendarId, searchFilter) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/calendars/' + calendarId).customGET('opentemplateslots', searchFilter);\r\n }\r\n\r\n function requestAppointment(userId, appt) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/appointmentrequest').customPUT(appt);\r\n }\r\n\r\n function getAppointmentRequestMetadata($scope) {\r\n return MetadataRepository.getMetadata('patientappointmentrequest', $scope);\r\n }\r\n\r\n function getTimeZone() {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/timezone').get();\r\n }\r\n\r\n return {\r\n changeAppointmentStatus: changeAppointmentStatus,\r\n getAppointments: getAppointments,\r\n getPendingAppointments: getPendingAppointments,\r\n getPendingAppointmentRequest: getPendingAppointmentRequest,\r\n getAppointmentsOpenTimeSlots: getAppointmentsOpenTimeSlots,\r\n requestAppointment: requestAppointment,\r\n getAppointment: getAppointment,\r\n updateAppointment: updateAppointment,\r\n getAppointmentRequestMetadata: getAppointmentRequestMetadata,\r\n getTimeZone : getTimeZone\r\n };\r\n\r\n }]);","angular.module('myappointments').factory('MyAppointmentsService',\r\n [ function () {\r\n 'use strict';\r\n\r\n var requestedAppointment = {\r\n Message: { Id: ''},\r\n Calendar: { Id: '', Description: ''},\r\n AppointmentType: { Id: ''},\r\n RequestDateTime: '',\r\n Reason: ''\r\n };\r\n\r\n var newRequestedAppointment = true;\r\n\r\n function cacheRequestedAppointment(appointment) {\r\n requestedAppointment.Message.Id = appointment.Message.Id;\r\n requestedAppointment.Calendar.Id = appointment.Calendar.Id;\r\n requestedAppointment.Calendar.Description = appointment.Calendar.Description;\r\n requestedAppointment.AppointmentType.Id = appointment.AppointmentType.Id;\r\n requestedAppointment.RequestDateTime = appointment.RequestDateTime;\r\n requestedAppointment.Reason = appointment.Reason;\r\n newRequestedAppointment = false;\r\n }\r\n\r\n function getRequestedAppointment() {\r\n return requestedAppointment;\r\n }\r\n\r\n function clearRequestedAppointment() {\r\n requestedAppointment.Message.Id = '';\r\n requestedAppointment.Calendar.Id = '';\r\n requestedAppointment.Calendar.Description = '';\r\n requestedAppointment.AppointmentType.Id = '';\r\n requestedAppointment.RequestDateTime = '';\r\n requestedAppointment.Reason = '';\r\n newRequestedAppointment = true;\r\n //providerName = ''; // get rid of providerName\r\n }\r\n\r\n function isNewRequestedAppointment() {\r\n return newRequestedAppointment;\r\n }\r\n\r\n\r\n function isCheckIn(appointmentStatusId) {\r\n return appointmentStatusId.toUpperCase() === 'CD2A0578-0C89-4151-B4E9-66ED9D5B4995';\r\n }\r\n\r\n function isDischarged(appointmentStatusId) {\r\n return appointmentStatusId.toUpperCase() === '31886389-631F-4D03-BC28-B4DB87E9B172';\r\n }\r\n\r\n function isAppointmentToday(appointmentDateTime) {\r\n if (!appointmentDateTime) {\r\n return false;\r\n }\r\n\r\n var diff = moment(appointmentDateTime).diff(moment(), 'days');\r\n return (diff === 0);\r\n }\r\n\r\n\r\n return {\r\n cacheRequestedAppointment: cacheRequestedAppointment,\r\n getRequestedAppointment: getRequestedAppointment,\r\n clearRequestedAppointment: clearRequestedAppointment,\r\n isNewRequestedAppointment: isNewRequestedAppointment,\r\n isCheckIn: isCheckIn,\r\n isDischarged: isDischarged,\r\n isAppointmentToday: isAppointmentToday\r\n };\r\n\r\n }]);","angular.module('dashboard', [\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'headroom',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n 'apEasyScroller',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api',\r\n 'aprima-utils'\r\n]);","angular.module('dashboard').config(['AppRoutesProvider', '$stateProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var portalSettings = { toolbarItem: 'welcome' };\r\n\r\n var appRoutes = {\r\n 'dashboard': {\r\n state: 'dashboard',\r\n route: '/dashboard',\r\n portalSettings: portalSettings\r\n }\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.dashboard.state, {\r\n url: appRoutes.dashboard.route,\r\n templateUrl: '/dashboard/views/dashboard.html',\r\n controller: 'DashboardCtrl',\r\n description: '/Dashboard',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Welcome'); }\r\n }\r\n });\r\n }]);","angular.module('dashboard').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/dashboard/views/alerts.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"arrow-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"arrow-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"alert\\\"\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'ALERTS' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'New Messages' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{msg.FromName}}  |  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{msg.MessageHeaderText}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'New Test Results' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{lab.Result.Description}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::lab.Result.AttachmentType}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the Alerts dashboard tile could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the Alerts dashboard tile.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/dashboard/views/appointments.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"arrow-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"arrow-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"appointments-tile\\\"\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'UPCOMING APPOINTMENTS' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'No upcoming appointments are scheduled.' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" @\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.AppointmentType.Name}}\\r\" +\r\n \"\\n\" +\r\n \"   ({{appt.AppointmentStatus.Description}})\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ appt.AppointmentType.Description | limitTo: limitTo}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.Provider.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

{{::'Patient Visit Map' |\\r\" +\r\n \"\\n\" +\r\n \" translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.Provider.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Name}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.Address1}} | {{appt.VisitLocation.City}},\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.State}} {{appt.VisitLocation.Zip}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{appt.VisitLocation.PhoneNumber}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the Upcoming Appointments dashboard tile could not be loaded.' |\\r\" +\r\n \"\\n\" +\r\n \" translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the Upcoming Appointments dashboard tile.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/dashboard/views/billing.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-billing\\\"\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'TOTAL RESPONSIBLE PARTY BALANCE' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::model.PersonBalanceAll | currency }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{balance.FinancialCenterName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{balance.Balance | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the Patient Billing dashboard tile could not be loaded.' |\\r\" +\r\n \"\\n\" +\r\n \" translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the Patient Billing dashboard tile.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/dashboard/views/chart.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"chart-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'CHART UPDATES' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No new test results were found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'New Test Results' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{lab.Result.Description}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::lab.Result.AttachmentType}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the Chart Updates dashboard tile could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the Chart Updates dashboard tile.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/dashboard/views/dashboard.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"patient-image\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Patient'|translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::patient.name}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Provider'|translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::patient.providerName}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Service Site'|translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::patient.serviceSite}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::patient.serviceSiteAddress1}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::patient.serviceSiteAddress2}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::patient.serviceSiteLocation}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{::patient.serviceSitePhoneNumber}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Link a Personal Health App'|translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient dashboard could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the patient dashboard.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Your dashboard does not have any tiles configured.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/dashboard/views/forms.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"forms-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'FORM UPDATES' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'Incomplete Questionnaires' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{ incompleteForm.QuestionnaireName }}
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Assigned' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'New' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'In Progress' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Last Edited' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Complete Form' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'New Practice Forms' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{practiceForm.PracticeFormName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{practiceForm.AttachmentTypeName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the Forms dashboard tile could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the Forms dashboard tile.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/dashboard/views/messages.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"messages-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'NEW MESSAGES' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No new messages were found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{msg.FromName}}  |  \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{msg.MessageHeaderText}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the New Messages dashboard tile could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the New Messages dashboard tile.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/dashboard/views/prescriptions.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-expand\\\"\\r\" +\r\n \"\\n\" +\r\n \" \\\"tile-collapse\\\"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\\"prescriptions-selected\\\"\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'RECENT PRESCRIPTIONS' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No recent prescriptions were found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.DrugName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::med.Instructions}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Start' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'End' | translate}} \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Discontinued' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
{{'Pending Review' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Please contact office to process.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the Recent Prescriptions dashboard tile could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to the Recent Prescriptions dashboard tile.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\n}]);\n","angular.module('dashboard').controller('AlertsDashboardCtrl',\r\n ['$scope', '$q', 'TransitionManager', 'MyMessagesService', 'MyChartService', 'DashboardService', 'PatientPortalStorageRepository', 'PatientSettingsRepository',\r\n function ($scope, $q, TransitionManager, MyMessagesService, MyChartService, DashboardService, PatientPortalStorageRepository, PatientSettingsRepository) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.thumbnailSrc = MyChartService.getMaleThumbnailSrc(50,50);\r\n $scope.labs = null;\r\n $scope.messages = null;\r\n $scope.myChart = {'Config': ''};\r\n $scope.displayLabResults = PatientSettingsRepository.getFeatureList().ViewLabTestResults.IsActive;\r\n $scope.displayMessages = PatientSettingsRepository.getFeatureList().SendReceiveMessages.IsActive;\r\n\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n function getNewLabResults() {\r\n return MyChartService\r\n .getNewLabResults(activePatientId)\r\n .then(function (data) {\r\n $scope.labs = data;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n }\r\n\r\n function getMyChartConfig() {\r\n return MyChartService\r\n .getMyChartConfig()\r\n .then(function (config) {\r\n $scope.myChart.Config = config;\r\n });\r\n }\r\n\r\n function getNewMessages() {\r\n return MyMessagesService\r\n .getNewMessages()\r\n .then(function (data) {\r\n $scope.messages = data;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n }\r\n\r\n\r\n $scope.load = function(tile) {\r\n $scope.tile = tile;\r\n\r\n loadPage();\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n var messagesPromise = getNewMessages();\r\n var labsPromise = getNewLabResults();\r\n var chartConfigPromise = getMyChartConfig();\r\n\r\n $q.all([messagesPromise, labsPromise, chartConfigPromise]).then(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n $scope.updateCollapseState = function updateCollapseState()\r\n {\r\n $scope.tile.IsCollapsed = !$scope.tile.IsCollapsed;\r\n DashboardService.setPatientDashboardTileState($scope.tile);\r\n };\r\n\r\n $scope.displayAlertMessageThread = function displayAlertMessageThread(message) {\r\n TransitionManager.transition({appRoute: 'myMessagesDisplayMessageThread', opts: {displayMode: 'received', id: message.MessageId, updateNotification: message.NewMessage}});\r\n };\r\n\r\n $scope.displayAlertMyChartLabs = function displayAlertMyChartLabs() {\r\n TransitionManager.transition({appRoute: $scope.myChart.Config.ViewLabResults.Route, opts: {id: activePatientId}});\r\n };\r\n\r\n }\r\n ]\r\n);","angular.module('dashboard').controller('AppointmentsDashboardCtrl',\r\n ['$scope', 'MyAppointmentsRepository', 'MyAppointmentsService', 'DashboardService', 'NotificationService', 'toaster', 'aprgettext', 'PatientPortalStorageRepository', 'PatientSettingsService',\r\n function ($scope, MyAppointmentsRepository, MyAppointmentsService, DashboardService, NotificationService, toaster, gettext, PatientPortalStorageRepository, PatientSettingsService) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n $scope.appointments = [];\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n $scope.limitTo = 100;\r\n\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n $scope.canCheckInFeature = featureList.CheckIn.IsActive;\r\n\r\n\r\n function createAppointmentLists(appointments) {\r\n $scope.appointments = _(appointments)\r\n .forEach(function (item) {\r\n item.CanReschedule = false;\r\n\r\n // Can check in 1 hour early to 1 hour late\r\n // Appointment Status cannot be Canceled, Discharged or Checked In\r\n item.CanCheckIn = false;\r\n item.CanCancel = !(MyAppointmentsService.isCheckIn(item.AppointmentStatus.Id) || item.AppointmentStatus.IsCanceledStatus || MyAppointmentsService.isDischarged(item.AppointmentStatus.Id));\r\n if (moment(item.StartDateTime).isBetween(moment().subtract(1, 'hours'), moment().add(1, 'hours'))) {\r\n if (item.CanCancel) {\r\n item.CanCheckIn = true;\r\n }\r\n }\r\n\r\n item.IsAppointmentToday = false;\r\n if (MyAppointmentsService.isAppointmentToday(item.StartDateTime)) {\r\n item.IsAppointmentToday = true;\r\n }\r\n\r\n });\r\n }\r\n\r\n $scope.load = function load(tile) {\r\n $scope.tile = tile;\r\n loadPage();\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n var searchFilter = {\r\n StartDate: moment().format('MM/DD/YYYY'),\r\n EndDate: '12/31/9999',\r\n SortDirection: 'asc',\r\n FetchLimit: 250\r\n };\r\n\r\n MyAppointmentsRepository\r\n .getAppointments(activePatientId, searchFilter)\r\n .then(function (data) {\r\n createAppointmentLists(data);\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n\r\n $scope.appointmentCheckIn = function appointmentCheckIn(appointment) {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n MyAppointmentsRepository\r\n .changeAppointmentStatus(appointment.PatientId, appointment.AppointmentId, 'CD2A0578-0C89-4151-B4E9-66ED9D5B4995')\r\n .then(function () {\r\n toaster.pop('success', '', gettext('Appointment check in is successful.'));\r\n NotificationService.updateNotifications();\r\n loadPage();\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred updating the appointment.'));\r\n })\r\n .finally(function() {\r\n $scope.loading = false;\r\n });\r\n };\r\n\r\n\r\n $scope.updateCollapseState = function updateCollapseState()\r\n {\r\n $scope.tile.IsCollapsed = !$scope.tile.IsCollapsed;\r\n DashboardService.setPatientDashboardTileState($scope.tile);\r\n };\r\n\r\n\r\n //$scope.appointmentCancel = function appointmentCancel(appointment) {\r\n // alert('Cancel appointment not implemented, yet. ' + appointment);\r\n //};\r\n\r\n }\r\n ]\r\n);","angular.module('dashboard').controller('BillingDashboardCtrl',\r\n ['$scope', 'BillingService', 'DashboardService', 'TransitionManager', 'PatientPortalStorageRepository',\r\n function ($scope, BillingService, DashboardService, TransitionManager, PatientPortalStorageRepository) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.makeAPaymentButtonEnabled = false;\r\n $scope.model = {\r\n Date: '',\r\n PersonBalanceAll: '',\r\n ConsentAnnual: '',\r\n owesUsMoney: false\r\n };\r\n\r\n var loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n\r\n $scope.load = function (tile) {\r\n $scope.loading = true;\r\n $scope.tile = tile;\r\n\r\n loadPage();\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n\r\n var requestDto = {\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString()\r\n };\r\n\r\n BillingService.getBillingAccount(requestDto)\r\n .then(function (billingAccountDto) {\r\n $scope.model.PersonBalanceAll = billingAccountDto.PersonBalanceAll;\r\n $scope.model.owesUsMoney = $scope.model.PersonBalanceAll > 0;\r\n $scope.model.Date = billingAccountDto.Date;\r\n $scope.model.ConsentAnnual = billingAccountDto.ConsentAnnual;\r\n $scope.model.DepositByFinancialCenterEnabled = billingAccountDto.DepositByFinancialCenterEnabled;\r\n $scope.model.MerchantIdByFinancialCenterEnabled = billingAccountDto.MerchantIdByFinancialCenterEnabled;\r\n $scope.model.DefaultMerchantId = billingAccountDto.DefaultMerchantId;\r\n $scope.model.FinancialCenterBalances = billingAccountDto.FinancialCenterBalances;\r\n $scope.model.ShowMultipleFinancialCenters = (!!$scope.model.FinancialCenterBalances && $scope.model.FinancialCenterBalances.length > 1);\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.makeAPaymentButtonEnabled = BillingService.getViewMakeAPaymentFeatureFlag();\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function makeSpecificOnlinePayment(balance) {\r\n if ($scope.model.ConsentAnnual && $scope.model.ConsentAnnual.CardType) {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentOptionsStatementsOnly',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({appRoute: 'paymentOptions',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }});\r\n }\r\n } else {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentFromNewCardStatementsOnly',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({\r\n appRoute: 'paymentFromNewCard',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }\r\n });\r\n }\r\n }\r\n }\r\n\r\n function makeGenericOnlinePayment() {\r\n if ($scope.model.ConsentAnnual && $scope.model.ConsentAnnual.CardType) {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentOptionsStatementsOnly', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({appRoute: 'paymentOptions', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n }\r\n } else {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentFromNewCardStatementsOnly', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({appRoute: 'paymentFromNewCard', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n }\r\n }\r\n }\r\n\r\n $scope.updateCollapseState = function updateCollapseState() {\r\n $scope.tile.IsCollapsed = !$scope.tile.IsCollapsed;\r\n DashboardService.setPatientDashboardTileState($scope.tile);\r\n };\r\n $scope.makeSpecificOnlinePayment = makeSpecificOnlinePayment;\r\n $scope.makeGenericOnlinePayment = makeGenericOnlinePayment;\r\n }\r\n ]\r\n);","angular.module('dashboard').controller('ChartDashboardCtrl',\r\n ['$scope', '$q', 'TransitionManager', 'MyChartService', 'DashboardService', 'PatientPortalStorageRepository',\r\n function ($scope, $q, TransitionManager, MyChartService, DashboardService, PatientPortalStorageRepository) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.labs = null;\r\n $scope.myChart = {'Config': ''};\r\n\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n function getNewLabResults() {\r\n return MyChartService\r\n .getNewLabResults(activePatientId)\r\n .then(function (data) {\r\n $scope.labs = data;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n }\r\n\r\n function getMyChartConfig() {\r\n return MyChartService\r\n .getMyChartConfig()\r\n .then(function (config) {\r\n $scope.myChart.Config = config;\r\n });\r\n }\r\n\r\n $scope.load = function(tile) {\r\n $scope.tile = tile;\r\n\r\n loadPage();\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n var labsPromise = getNewLabResults();\r\n var chartConfigPromise = getMyChartConfig();\r\n\r\n $q.all([labsPromise, chartConfigPromise]).then(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n $scope.updateCollapseState = function updateCollapseState()\r\n {\r\n $scope.tile.IsCollapsed = !$scope.tile.IsCollapsed;\r\n DashboardService.setPatientDashboardTileState($scope.tile);\r\n };\r\n\r\n $scope.displayMyChartLabs = function displayMyChartLabs() {\r\n TransitionManager.transition({appRoute: $scope.myChart.Config.ViewLabResults.Route, opts: {id: activePatientId}});\r\n };\r\n }\r\n ]\r\n);","angular.module('dashboard').controller('DashboardCtrl',\r\n ['$scope', '$uibModal', 'DashboardService', 'MyChartService', 'PatientPortalStorageRepository', 'ApPersonalHealthAppsModalService',\r\n function ($scope, $modal, DashboardService, MyChartService, PatientPortalStorageRepository, ApPersonalHealthAppsModalService) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n $scope.showLinkPersonalHealthApp = true;\r\n\r\n $scope.today = new Date();\r\n\r\n var baseId = 'dashboard';\r\n var isPatientRegisteredForFHIR = false;\r\n var patientId = '';\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n patientId = activePatient.id;\r\n isPatientRegisteredForFHIR = false;\r\n\r\n $scope.activeTiles = _(DashboardService.getPatientDashboardFeatures())\r\n .filter('IsActive')\r\n .sortBy('DisplayOrder')\r\n .value();\r\n\r\n MyChartService.getDetails(activePatient.id)\r\n .then(function (data) {\r\n $scope.patient = {\r\n userId: activePatient.id,\r\n name: activePatient.fullName,\r\n birthDate: data.DateOfBirth,\r\n providerName: data.PrimaryProviderName,\r\n serviceSite: data.PrimaryProviderServiceSite,\r\n serviceSitePhoneNumber: data.PrimaryProviderServiceSitePhoneNumber,\r\n serviceSiteAddress1: data.PrimaryProviderServiceSiteAddress1,\r\n serviceSiteAddress2: data.PrimaryProviderServiceSiteAddress2,\r\n serviceSiteLocation: data.PrimaryProviderServiceSiteLocation\r\n };\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadPage();\r\n $scope.showPersonalHealthAppModal = showPersonalHealthAppModal;\r\n\r\n var notificationListener = $scope.$on('Notification:updated', function () {\r\n loadPage();\r\n });\r\n\r\n $scope.$on('$destroy', function () {\r\n notificationListener();\r\n });\r\n\r\n function showPersonalHealthAppModal() {\r\n ApPersonalHealthAppsModalService.openModal(baseId, patientId, isPatientRegisteredForFHIR)\r\n .then(function(result) {\r\n if (result.isSuccess) {\r\n isPatientRegisteredForFHIR = result.resultValue;\r\n }\r\n });\r\n }\r\n }\r\n ]\r\n);","angular.module('dashboard').controller('FormsDashboardCtrl',\r\n ['$scope', '$q', 'TransitionManager', 'FormsRepository', 'DashboardService', 'PatientPortalStorageRepository',\r\n function ($scope, $q, TransitionManager, FormsRepository, DashboardService, PatientPortalStorageRepository) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.incompleteFormsList = null;\r\n $scope.practiceFormsList = null;\r\n\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n function getAssignedQuestionnaires() {\r\n return FormsRepository\r\n .getAssignedQuestionnaires(activePatientId)\r\n .then(function (data) {\r\n var assignedForms = data;\r\n\r\n $scope.incompleteFormsList = _(assignedForms)\r\n .filter({'IsComplete' : false})\r\n .sortBy('PercentComplete')\r\n .value();\r\n });\r\n }\r\n\r\n function getAssignedPracticeForms() {\r\n var searchCriteria = {\r\n IncludeOnlyUnviewedForms : true\r\n };\r\n\r\n return FormsRepository\r\n .getAssignedPracticeForms(activePatientId, searchCriteria)\r\n .then(function (data) {\r\n $scope.practiceFormsList = data;\r\n });\r\n }\r\n\r\n $scope.load = function(tile) {\r\n $scope.tile = tile;\r\n\r\n loadPage();\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n var assignedQuestionnairesPromise = getAssignedQuestionnaires();\r\n var assignedPracticeFormsPromise = getAssignedPracticeForms();\r\n\r\n $q.all([assignedQuestionnairesPromise, assignedPracticeFormsPromise]).then(function() {\r\n $scope.loading = false;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n }\r\n\r\n function displayForms() {\r\n TransitionManager.transition({appRoute: 'forms'});\r\n }\r\n\r\n function updateCollapseState()\r\n {\r\n $scope.tile.IsCollapsed = !$scope.tile.IsCollapsed;\r\n DashboardService.setPatientDashboardTileState($scope.tile);\r\n }\r\n\r\n function openPatientQuestionnaire(form) {\r\n TransitionManager.transition({appRoute: 'patientQuestionnaire', opts: {relSurveyPatientId: form.RelSurveyPatientId, patientId: form.PatientId, questionnaireId: form.QuestionnaireId}});\r\n }\r\n\r\n\r\n $scope.updateCollapseState = updateCollapseState;\r\n $scope.displayForms = displayForms;\r\n $scope.openPatientQuestionnaire = openPatientQuestionnaire;\r\n }\r\n ]\r\n);","angular.module('dashboard').controller('MessagesDashboardCtrl',\r\n ['$scope', '$q', 'TransitionManager', 'MyMessagesService', 'MyChartService', 'DashboardService',\r\n function ($scope, $q, TransitionManager, MyMessagesService, MyChartService, DashboardService) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.thumbnailSrc = MyChartService.getMaleThumbnailSrc(50,50);\r\n $scope.messages = null;\r\n $scope.myChart = {'Config': ''};\r\n\r\n\r\n function getMyChartConfig() {\r\n return MyChartService\r\n .getMyChartConfig()\r\n .then(function (config) {\r\n $scope.myChart.Config = config;\r\n });\r\n }\r\n\r\n function getNewMessages() {\r\n return MyMessagesService\r\n .getNewMessages()\r\n .then(function (data) {\r\n $scope.messages = data;\r\n });\r\n }\r\n\r\n $scope.load = function(tile) {\r\n $scope.tile = tile;\r\n\r\n loadPage();\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n var messagesPromise = getNewMessages();\r\n var chartConfigPromise = getMyChartConfig();\r\n\r\n $q.all([messagesPromise, chartConfigPromise]).catch(function (response) {\r\n $scope.addHttpError(response);\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n $scope.updateCollapseState = function updateCollapseState()\r\n {\r\n $scope.tile.IsCollapsed = !$scope.tile.IsCollapsed;\r\n DashboardService.setPatientDashboardTileState($scope.tile);\r\n };\r\n\r\n $scope.displayMessageThread = function displayMessageThread(message) {\r\n TransitionManager.transition({appRoute: 'myMessagesDisplayMessageThread', opts: {displayMode: 'received', id: message.MessageId, updateNotification: message.NewMessage}});\r\n };\r\n\r\n }\r\n ]\r\n);","angular.module('dashboard').controller('PrescriptionsDashboardCtrl',\r\n ['$scope', 'RxRefillRepository', 'PatientPortalStorageRepository', 'PrescriptionService', 'DashboardService',\r\n function ($scope, RxRefillRepository, PatientPortalStorageRepository, PrescriptionService, DashboardService) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n \r\n $scope.load = function(tile) {\r\n $scope.tile = tile;\r\n\r\n loadPage();\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n var activePatientId = PatientPortalStorageRepository.getActivePatient().id;\r\n\r\n RxRefillRepository\r\n .getRxRefills(activePatientId, true)\r\n .then(function (data) {\r\n //prescriptions.html\r\n var splitPrescriptions = _.partition(data.Medications, function (item) {\r\n return PrescriptionService.dateFilter(item.EndDate, PrescriptionService.medFilters[1].Days);\r\n });\r\n $scope.currentPrescriptions = splitPrescriptions[0];\r\n $scope.previousPrescriptions = splitPrescriptions[1];\r\n \r\n $scope.medicationsExist = $scope.currentPrescriptions ? !!$scope.currentPrescriptions.length : false;\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n $scope.medSelect = function medSelect(med) {\r\n PrescriptionService.setSelectedMedId(med.RelPatientMedicationId);\r\n };\r\n\r\n $scope.updateCollapseState = function updateCollapseState() {\r\n $scope.tile.IsCollapsed = !$scope.tile.IsCollapsed;\r\n DashboardService.setPatientDashboardTileState($scope.tile);\r\n };\r\n\r\n }\r\n ]\r\n);","angular.module('dashboard').factory('DashboardRepository',\r\n ['AprimaRestangular', 'storage',\r\n function (AprimaRestangular, storage) {\r\n 'use strict';\r\n\r\n var patientDashboardFeatures = function() {\r\n return AprimaRestangular.get('patient').one('settings/dashboardsettings/').get();\r\n };\r\n var setDashboardFeatureList = function (value){\r\n return storage.set('dashboardFeatureList', value);\r\n };\r\n var getDashboardFeatureList = function () {\r\n return storage.get('dashboardFeatureList');\r\n };\r\n\r\n return{\r\n patientDashboardFeatures: patientDashboardFeatures,\r\n setDashboardFeatureList: setDashboardFeatureList,\r\n getDashboardFeatureList: getDashboardFeatureList\r\n };\r\n }]);","angular.module('dashboard').factory('DashboardService',\r\n ['DashboardRepository',\r\n function(DashboardRepository) {\r\n 'use strict';\r\n\r\n var loadPatientDashboardFeatures = function () {\r\n return DashboardRepository\r\n .patientDashboardFeatures()\r\n .then(function (repositorySettings) {\r\n var localSettings = DashboardRepository.getDashboardFeatureList();\r\n if (!localSettings) {\r\n DashboardRepository.setDashboardFeatureList(repositorySettings);\r\n }\r\n else {\r\n var updatedRepositorySettings = _(repositorySettings)\r\n .forEach(function (repositoryItem) {\r\n var localSettingsItem = _.find(localSettings, {Id: repositoryItem.Id});\r\n if (localSettingsItem) {\r\n repositoryItem.IsCollapsed = localSettingsItem.IsCollapsed;\r\n }\r\n });\r\n\r\n DashboardRepository.setDashboardFeatureList(updatedRepositorySettings);\r\n }\r\n });\r\n };\r\n\r\n var setPatientDashboardTileState = function (dashboardTile) {\r\n if (dashboardTile) {\r\n var localSettings = DashboardRepository.getDashboardFeatureList();\r\n\r\n if (localSettings) {\r\n var localSettingsItem = _.find(localSettings, {Id: dashboardTile.Id});\r\n\r\n if (localSettingsItem) {\r\n localSettingsItem.IsCollapsed = dashboardTile.IsCollapsed;\r\n DashboardRepository.setDashboardFeatureList(localSettings);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var getPatientDashboardFeatures = function (){\r\n return DashboardRepository.getDashboardFeatureList();\r\n };\r\n\r\n var setPatientDashboardFeatures = function (dashboardSettings) {\r\n DashboardRepository.setDashboardFeatureList(dashboardSettings);\r\n };\r\n\r\n return {\r\n loadPatientDashboardFeatures: loadPatientDashboardFeatures,\r\n getPatientDashboardFeatures: getPatientDashboardFeatures,\r\n setPatientDashboardFeatures: setPatientDashboardFeatures,\r\n setPatientDashboardTileState: setPatientDashboardTileState\r\n };\r\n\r\n }\r\n ]);","angular.module('forms', [\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'headroom',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n 'apEasyScroller',\r\n 'ngMessages',\r\n\r\n 'app',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api',\r\n 'aprima-utils'\r\n])\r\n .constant('FormsId', {\r\n TimeFrameId: {\r\n Clear: '00000000-0000-0000-0000-000000000000',\r\n Calendar: '2A65CC34-B700-4BE1-BC0C-BC3947ABDBB4',\r\n DaysAgo: 'E21ED176-0B54-401C-9FD9-F4376AA1B8B6',\r\n WeeksAgo: 'C887168A-B5E3-4547-B8C7-190555956062',\r\n MonthsAgo: '10051306-DC98-45A3-B9BB-9C1C1FD06FC2',\r\n YearsAgo: 'D903B3D9-796E-45F2-BE6F-EC676863C0B5',\r\n Childhood: '4CE23CF0-C9BB-4016-900F-76A567A3C82C',\r\n Teenager: '3FF31D6D-0706-429D-9ACF-C54E081ECD29',\r\n Birth: '86317D78-C519-4FE3-8F02-B794FFB00357'\r\n },\r\n HistoryGroupId: {\r\n ProblemDiagnosis: '0238A133-904E-4E49-BDBA-4EB3CB3B39A7',\r\n Family: 'A3FAF896-B328-4364-9621-012F8C6643BB',\r\n Immunization: '00000000-0000-0000-0000-000000000111'\r\n },\r\n ModalInstanceReturnId: {\r\n Accept: 'accept',\r\n Cancel: 'cancel'\r\n }\r\n });","angular.module('myappointments').config(['AppRoutesProvider', '$stateProvider', '$urlRouterProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var portalSettings = { toolbarItem: 'forms' };\r\n\r\n var appRoutes = {\r\n 'forms': {\r\n state: 'forms',\r\n route: '/forms',\r\n portalSettings: portalSettings\r\n },\r\n 'completeForm': {\r\n state: 'completeforms',\r\n route: '/complete-form/:relSurveyPatientId?patientId?questionnaireId',\r\n portalSettings: portalSettings\r\n },\r\n 'confirmForm': {\r\n state: 'confirmforms',\r\n route: '/confirm-form/',\r\n portalSettings: portalSettings\r\n },\r\n 'patientQuestionnaire': {\r\n state: 'patientquestionnaire',\r\n route: '/patient-questionnaire/:relSurveyPatientId?patientId?questionnaireId',\r\n portalSettings: portalSettings\r\n }\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.forms.state, {\r\n url: appRoutes.forms.route,\r\n templateUrl: '/forms/views/forms.html',\r\n controller: 'FormsCtrl',\r\n description: '/forms',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Forms'); }\r\n }\r\n })\r\n .state(appRoutes.completeForm.state, {\r\n url: appRoutes.completeForm.route,\r\n templateUrl: '/forms/views/completeForm.html',\r\n controller: 'CompleteFormCtrl',\r\n description: '/CompleteForm',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Forms'); }\r\n }\r\n })\r\n .state(appRoutes.confirmForm.state, {\r\n url: appRoutes.confirmForm.route,\r\n templateUrl: '/forms/views/confirmForm.html',\r\n controller: 'ConfirmFormCtrl',\r\n description: '/ConfirmForm',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Forms'); }\r\n }\r\n })\r\n .state(appRoutes.patientQuestionnaire.state, {\r\n url: appRoutes.patientQuestionnaire.route,\r\n templateUrl: '/forms/views/patientQuestionnaire.html',\r\n controller: 'PatientQuestionnaireCtrl',\r\n description: '/PatientQuestionnaire',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Forms'); }\r\n }\r\n });\r\n }]);","angular.module('forms').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/forms/views/completeForm.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::questionnaire.questionnaireName }}  completeForm.hgml\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'Section' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" {{ questionnaireSections.currentSectionNumber }}\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'of' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" {{ questionnaireSections.sections.length }}\\r\" +\r\n \"\\n\" +\r\n \" 1\\\">\\r\" +\r\n \"\\n\" +\r\n \" {{::'Prev' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ section.SectionNumber }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Next' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ questionnaireSections.currentSectionNumber }}.\\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \" {{ questionnaireSections.currentSectionName }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Questionnaire was not found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient questionnaire could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to view patient questionnaires.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/confirmForm.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Your form has been submitted.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Thank you for filling out your ' | translate}} {{::questionnaire.questionnaireName}} {{::' form. These details'}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'have been added to your account and will help us provide you' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'more tailored care.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient questionnaire could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to view patient questionnaires.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormAnswerCheckbox.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormAnswerDate.html',\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormAnswerNumeric.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
{{'Please enter a number' | translate}}
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormAnswerRadiobutton.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormAnswerText.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormAnswerTimeframe.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ :: 'Time Frame:' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"   \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ :: 'Please select the time format for your answer.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormQuestion.html',\r\n \"\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormQuestionFamilyHistory.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Relationship' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Name' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Disease' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Please enter family history.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{familyHistoryAnswer.RelationshipName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{familyHistoryAnswer.FirstName}} {{familyHistoryAnswer.LastName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{problemHistoryAnswer.DiseaseName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormQuestionImmunizationHistory.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no adult immunizations associated with Patient Immunization History section.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no pediatric immunizations associated with Patient Immunization History section.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apFormQuestionPatientProblemHistory.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no diseases associated with Patient Problem History section.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"  {{'(Already On Chart)' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/directives/apTimeFrame.html',\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{:: 'Please enter a number less than 100.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{:: 'Please enter a number greater than 0.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{:: 'Number of cannot exceed 2 characters.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{:: 'Please enter a value.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{:: 'Please enter a date.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/forms.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Incomplete Forms' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No incomplete forms found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{incompleteForm.QuestionnaireName}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Assigned' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'New' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'In Progress' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Last Edited' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Completed Forms' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No completed forms found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{completedForm.QuestionnaireName}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Assigned' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Submitted' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Practice Forms' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
    \\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \" {{ ::filter.Name }}\\r\" +\r\n \"\\n\" +\r\n \"
  • \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'No practice forms found.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{practiceForm.PracticeFormName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{practiceForm.AttachmentTypeName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Please download and complete this form.'| translate }}\\r\" +\r\n \"\\n\" +\r\n \"
{{::'Then upload your completed form.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Upload successful.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \"
{{:: 'If you make changes to the form, you may upload it again.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Please complete the form.'| translate }}\\r\" +\r\n \"\\n\" +\r\n \"
{{::'Then upload your completed form.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient questionnaire could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to view patient questionnaires.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/patientQuestionnaire.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'Loading Questionnaire Section' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'Saving Patient Questionnaire' | translate }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::patientQuestionnaire.Questionnaire.SurveyName }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ ::'Section' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" {{ navigationSectionParams.currentSectionNumber }}\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'of' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" {{ patientQuestionnaire.Questionnaire.Sections.length }}\\r\" +\r\n \"\\n\" +\r\n \" 1\\\">\\r\" +\r\n \"\\n\" +\r\n \" {{::'Prev' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{ section.SectionNumber }}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Next' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'Please correct form.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ navigationSectionParams.currentSectionNumber }}.\\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \" {{ navigationSectionParams.currentSectionName }}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient questionnaire could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to view patient questionnaires.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/forms/views/updateFamilyHistoryModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

{{::'Patient Family History' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{:: 'Please select family relationship.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{:: 'Please select all that apply.' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'There are no diseases associated with the Patient Family History section.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"  {{'(Already On Chart)' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{ ::'Please correct form.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\n}]);\n","angular.module('forms').controller('CompleteFormCtrl',\r\n ['$scope', '$stateParams', 'toaster', 'aprgettext', 'LocalStorageRepository', 'FormsRepository', 'FormsService', 'TransitionManager',\r\n function ($scope, $stateParams, toaster, gettext, LocalStorageRepository, FormsRepository, FormsService, TransitionManager) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.questionnaire = {\r\n relSurveyPatientId: null,\r\n patientId: null,\r\n questionnaireId: null,\r\n questionnaireName: '',\r\n questionnaireDetails: null\r\n };\r\n\r\n // Unique SurveySectionUid + SurveyQuestionUid + SurveyAnswerUid\r\n $scope.questionnaireSections = {\r\n sections: null,\r\n currentSectionNumber: 0,\r\n currentSectionId: null,\r\n currentSectionName: '',\r\n nextSectionName: '',\r\n firstSectionNumber: 0,\r\n lastSectionNumber: 0,\r\n maxNavigationItems: 5\r\n };\r\n\r\n\r\n if ($stateParams.relSurveyPatientId) {\r\n $scope.questionnaire.relSurveyPatientId = $stateParams.relSurveyPatientId;\r\n }\r\n if ($stateParams.patientId) {\r\n $scope.questionnaire.patientId = $stateParams.patientId;\r\n }\r\n if ($stateParams.questionnaireId) {\r\n $scope.questionnaire.questionnaireId = $stateParams.questionnaireId;\r\n }\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n FormsRepository\r\n .getQuestionnaireDetails(LocalStorageRepository.getUserID(), $scope.questionnaire.relSurveyPatientId)\r\n .then(function (data) {\r\n $scope.questionnaire.questionnaireDetails = data;\r\n $scope.questionnaire.questionnaireName = data[0].SurveyName;\r\n\r\n var sectionNumber = 0;\r\n $scope.questionnaireSections.sections = _($scope.questionnaire.questionnaireDetails)\r\n .sortBy('SectionDisplayOrder', 'QuestionDisplayOrder', 'SurveyAnswerGroupSurveyAnswerDisplayOrder')\r\n .groupBy('SurveySectionId')\r\n .map(function (surveySectionQuestions) {\r\n var surveySection = surveySectionQuestions[0];\r\n return {\r\n SurveySectionId: surveySection.SurveySectionId,\r\n SectionNumber: ++sectionNumber,\r\n SurveySectionName: surveySection.SurveySectionName,\r\n DisplayOrder: surveySection.SectionDisplayOrder,\r\n Visible: (sectionNumber <= $scope.questionnaireSections.maxNavigationItems) ? true : false,\r\n Questions: createQuestionList(surveySectionQuestions)\r\n };\r\n })\r\n .value();\r\n\r\n\r\n if ($scope.questionnaireSections.sections && $scope.questionnaireSections.sections.length) {\r\n $scope.questionnaireSections.currentSectionNumber = 1;\r\n $scope.questionnaireSections.currentSectionId = $scope.questionnaireSections.sections[0].SurveySectionId;\r\n $scope.questionnaireSections.currentSectionName = $scope.questionnaireSections.sections[0].SurveySectionName;\r\n $scope.questionnaireSections.firstSectionNumber = 1;\r\n\r\n $scope.questionnaireSections.lastSectionNumber =\r\n $scope.questionnaireSections.sections.length > $scope.questionnaireSections.maxNavigationItems ? $scope.questionnaireSections.maxNavigationItems\r\n : $scope.questionnaireSections.sections.length;\r\n\r\n $scope.questionnaireSections.nextSectionName = getNextSectionName();\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n\r\n\r\n FormsRepository\r\n .getPatientQuestionnaire(LocalStorageRepository.getUserID(), $scope.questionnaire.relSurveyPatientId)\r\n .then(function (data) {\r\n $scope.patientQuestionnaire = data;\r\n })\r\n .finally(function() {\r\n console.log($scope.questionnaireSections);\r\n console.log($scope.patientQuestionnaire);\r\n console.log('pause');\r\n });\r\n\r\n\r\n $scope.loading = false;\r\n });\r\n }\r\n loadPage();\r\n\r\n\r\n function createQuestionList(sectionQuestions) {\r\n var questionNumber = 0;\r\n\r\n var questions = _(sectionQuestions)\r\n .groupBy('SurveyQuestionId')\r\n .map(function (sectionQuestionAnswers) {\r\n var sectionQuestionAnswer = sectionQuestionAnswers[0];\r\n\r\n var question = {\r\n QuestionNumber: ++questionNumber,\r\n SurveySectionId: sectionQuestionAnswer.SurveySectionId,\r\n SurveyQuestionId: sectionQuestionAnswer.SurveyQuestionId,\r\n SurveyQuestionLabel: sectionQuestionAnswer.SurveyQuestionLabel,\r\n SectionOptional: sectionQuestionAnswer.SectionOptional,\r\n QuestionOptional: sectionQuestionAnswer.QuestionOptional,\r\n SurveyControlTypeId: sectionQuestionAnswer.SurveyControlTypeId,\r\n SurveyControlTypeName: sectionQuestionAnswer.SurveyControlTypeName,\r\n SelectedAnswerId: getSelectedAnswerId(sectionQuestionAnswer.SurveySectionId, sectionQuestionAnswer.SurveyQuestionId, sectionQuestionAnswer.SurveyControlTypeId),\r\n QuestionEnabled: isQuestionEnabled(sectionQuestionAnswer),\r\n Answers: createAnswerList(sectionQuestionAnswers),\r\n AnswersThatTriggerThisQuestion: getAnswersThatTriggerThisQuestion(sectionQuestionAnswer)\r\n };\r\n\r\n question.HasAnswersThatTriggerThisQuestion = false;\r\n if (question.AnswersThatTriggerThisQuestion !== null) {\r\n if (question.AnswersThatTriggerThisQuestion.length > 0) {\r\n if (question.AnswersThatTriggerThisQuestion[0] !== '00000000-0000-0000-0000-000000000000') {\r\n question.HasAnswersThatTriggerThisQuestion = true;\r\n }\r\n }\r\n }\r\n\r\n return question;\r\n })\r\n .value();\r\n\r\n return questions;\r\n }\r\n\r\n\r\n function getAnswersThatTriggerThisQuestion(question) {\r\n /*\r\n select SurveySectionUid, SurveyQuestionUid, SurveyAnswerUid\r\n from details\r\n where TriggeringSurveyQuestionUid\r\n SurveySectionUid\r\n */\r\n var answers = _($scope.questionnaire.questionnaireDetails)\r\n .filter({\r\n SurveySectionId: question.SurveySectionId,\r\n QuestionIdToTrigger: question.SurveyQuestionId\r\n })\r\n .map(function (answer) {\r\n return {\r\n SurveySectionId: answer.SurveySectionId,\r\n SurveyQuestionId: answer.SurveyQuestionId,\r\n SurveyAnswerId: answer.SurveyAnswerId\r\n };\r\n })\r\n .value();\r\n\r\n return answers;\r\n }\r\n\r\n\r\n function isQuestionEnabled(question) {\r\n if (!question.QuestionOptional) {\r\n // QuestionOptional means the question is dependent on another questions answer to be selected in order to be enabled.\r\n return true;\r\n }\r\n\r\n var answer = _($scope.questionnaire.questionnaireDetails)\r\n .filter({\r\n SurveySectionId: question.SurveySectionId,\r\n QuestionIdToTrigger: question.SurveyQuestionId,\r\n SelectedAnswer : true\r\n }).head();\r\n\r\n return answer === undefined ? false : answer.SelectedAnswer;\r\n }\r\n\r\n\r\n function getSelectedAnswerId(surveySectionId, surveyQuestionId, surveyControlTypeId) {\r\n var selectedAnswer = null;\r\n\r\n if (surveyControlTypeId && surveyControlTypeId.toUpperCase() === 'EC316E58-2265-4C2A-8E93-EA1D15143B0D') {\r\n // radio button\r\n selectedAnswer = _($scope.questionnaire.questionnaireDetails)\r\n .filter({\r\n SurveySectionId: surveySectionId,\r\n SurveyQuestionId: surveyQuestionId,\r\n SelectedAnswer : true\r\n }).head();\r\n }\r\n\r\n return selectedAnswer && selectedAnswer.SurveyAnswerId;\r\n }\r\n\r\n\r\n function createAnswerList(sectionQuestionAnswers) {\r\n var myAnswers = _(sectionQuestionAnswers)\r\n .groupBy('SurveyAnswerId')\r\n .map(function (answers) {\r\n var answer = answers[0];\r\n return {\r\n SurveySectionId: answer.SurveySectionId,\r\n SurveyQuestionId: answer.SurveyQuestionId,\r\n QuestionOptional: answer.QuestionOptional,\r\n SurveyAnswerId: answer.SurveyAnswerId,\r\n SurveyControlTypeId: answer.SurveyControlTypeId,\r\n SurveyAnswerLabel: answer.SurveyAnswerLabel,\r\n SelectedAnswer: answer.SelectedAnswer,\r\n SurveyResponseAnswerText: answer.SurveyResponseAnswerText,\r\n QuestionsToTrigger: _(answers).map(function (answer) {\r\n return { QuestionId: answer.QuestionIdToTrigger };\r\n }\r\n ).value()\r\n };\r\n })\r\n .value();\r\n\r\n return myAnswers;\r\n }\r\n\r\n\r\n function submitQuestionnaire() {\r\n //var questionnaire = $scope.questionnaire.questionnaireDetails;\r\n // TODO - call forms repository to complete form\r\n var completedForm = {\r\n Form: { Id: $scope.questionnaire.relSurveyPatientId, Name: $scope.questionnaire.questionnaireName},\r\n Patient: { Id: $scope.questionnaire.patientId}\r\n };\r\n FormsService.cacheCompletedForm(completedForm);\r\n TransitionManager.transition({appRoute: 'confirmForm'});\r\n }\r\n\r\n\r\n function getCurrentSectionName() {\r\n // Sections collection is zero based. Section Number is 1 based.\r\n if ($scope.questionnaireSections.currentSectionNumber > 0) {\r\n return $scope.questionnaireSections.sections[$scope.questionnaireSections.currentSectionNumber - 1].SurveySectionName;\r\n }\r\n }\r\n\r\n\r\n function getNextSectionName() {\r\n // Sections collection is zero based. Section Number is 1 based.\r\n if ($scope.questionnaireSections.currentSectionNumber < $scope.questionnaireSections.sections.length) {\r\n return $scope.questionnaireSections.sections[$scope.questionnaireSections.currentSectionNumber].SurveySectionName;\r\n }\r\n else {\r\n return 'Submit Form';\r\n }\r\n }\r\n\r\n\r\n $scope.navMoveNext = function navMoveNext() {\r\n $scope.completeQuestionnaireForm.isSubmitted = true;\r\n if (!$scope.completeQuestionnaireForm.$valid) {\r\n return;\r\n }\r\n\r\n $scope.completeQuestionnaireForm.isSubmitted = false;\r\n if ($scope.questionnaireSections.currentSectionNumber === $scope.questionnaireSections.sections.length) {\r\n return submitQuestionnaire();\r\n }\r\n\r\n var curSectionNumber = $scope.questionnaireSections.currentSectionNumber;\r\n var numOfSections = $scope.questionnaireSections.sections.length;\r\n\r\n if (curSectionNumber > 0 && curSectionNumber < numOfSections) {\r\n $scope.questionnaireSections.currentSectionNumber = ++curSectionNumber;\r\n $scope.questionnaireSections.currentSectionName = getCurrentSectionName();\r\n\r\n if (curSectionNumber > $scope.questionnaireSections.lastSectionNumber)\r\n {\r\n $scope.questionnaireSections.firstSectionNumber++;\r\n $scope.questionnaireSections.lastSectionNumber++;\r\n _.forEach($scope.questionnaireSections.sections, function (section) {\r\n if ((section.SectionNumber >= $scope.questionnaireSections.firstSectionNumber) &&\r\n (section.SectionNumber <= $scope.questionnaireSections.lastSectionNumber)) {\r\n section.Visible = true;\r\n }\r\n else {\r\n section.Visible = false;\r\n }\r\n });\r\n }\r\n\r\n $scope.questionnaireSections.nextSectionName = getNextSectionName();\r\n }\r\n };\r\n\r\n\r\n $scope.navMovePrevious = function navMovePrevious() {\r\n $scope.completeQuestionnaireForm.isSubmitted = false;\r\n\r\n var curSectionNumber = $scope.questionnaireSections.currentSectionNumber;\r\n\r\n if (curSectionNumber > 1) {\r\n $scope.questionnaireSections.currentSectionNumber = --curSectionNumber;\r\n $scope.questionnaireSections.currentSectionName = getCurrentSectionName();\r\n\r\n if (curSectionNumber < $scope.questionnaireSections.firstSectionNumber) {\r\n $scope.questionnaireSections.firstSectionNumber--;\r\n $scope.questionnaireSections.lastSectionNumber--;\r\n _.forEach($scope.questionnaireSections.sections, function (section) {\r\n if ((section.SectionNumber >= $scope.questionnaireSections.firstSectionNumber) &&\r\n (section.SectionNumber <= $scope.questionnaireSections.lastSectionNumber)) {\r\n section.Visible = true;\r\n }\r\n else {\r\n section.Visible = false;\r\n }\r\n });\r\n }\r\n\r\n $scope.questionnaireSections.nextSectionName = getNextSectionName();\r\n }\r\n };\r\n\r\n\r\n $scope.displaySection = function displaySection(section) {\r\n if (section.SectionNumber === $scope.questionnaireSections.currentSectionNumber) {\r\n // User is wanting to page to current section\r\n $scope.completeQuestionnaireForm.isSubmitted = false;\r\n return;\r\n }\r\n else if (section.SectionNumber < $scope.questionnaireSections.currentSectionNumber) {\r\n // User is wanting to page to a previous section. Don't have to fill out section is moving to a previous one,\r\n $scope.completeQuestionnaireForm.isSubmitted = false;\r\n $scope.questionnaireSections.currentSectionNumber = section.SectionNumber;\r\n $scope.questionnaireSections.currentSectionName = getCurrentSectionName();\r\n $scope.questionnaireSections.nextSectionName = getNextSectionName();\r\n return;\r\n }\r\n\r\n // User is wanting to page to next section\r\n if (!$scope.completeQuestionnaireForm.$valid) {\r\n // View is not valid.\r\n $scope.completeQuestionnaireForm.isSubmitted = true;\r\n return;\r\n }\r\n else {\r\n // View is valid.\r\n $scope.completeQuestionnaireForm.isSubmitted = false;\r\n $scope.questionnaireSections.currentSectionNumber = section.SectionNumber;\r\n $scope.questionnaireSections.currentSectionName = getCurrentSectionName();\r\n $scope.questionnaireSections.nextSectionName = getNextSectionName();\r\n return;\r\n }\r\n };\r\n\r\n }]);","angular.module('forms').controller('ConfirmFormCtrl',\r\n ['$scope', 'FormsService',\r\n function ($scope, FormsService) {\r\n 'use strict';\r\n\r\n $scope.loading = true;\r\n\r\n $scope.questionnaire = {\r\n relSurveyPatientId: null,\r\n patientId: null,\r\n questionnaireName: ''\r\n };\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n\r\n var completedForm = FormsService.getCompletedForm();\r\n\r\n $scope.questionnaire.relSurveyPatientId = completedForm.Form.Id;\r\n $scope.questionnaire.questionnaireName = completedForm.Form.Name;\r\n $scope.questionnaire.patientId = completedForm.Patient.Id;\r\n\r\n FormsService.clearCompletedForm();\r\n $scope.loading = false;\r\n }\r\n loadPage();\r\n\r\n }]);","angular.module('forms').controller('FormsCtrl',\r\n [\r\n '$scope', \r\n '$q', \r\n '$uibModal', \r\n 'TransitionManager', \r\n 'LocalStorageRepository', \r\n 'NotificationService', \r\n 'FormsRepository',\r\n 'PatientPortalStorageRepository',\r\n 'toaster', \r\n 'aprgettext',\r\n 'BrowserService',\r\n function (\r\n $scope, \r\n $q, \r\n $modal, \r\n TransitionManager, \r\n LocalStorageRepository, \r\n NotificationService, \r\n FormsRepository, \r\n PatientPortalStorageRepository, \r\n toaster, \r\n gettext,\r\n BrowserService\r\n ) {\r\n\r\n 'use strict';\r\n\r\n $scope.loading = false;\r\n $scope.isModalDisplayed = false;\r\n\r\n $scope.practiceFormsList = null;\r\n $scope.practiceForm = null;\r\n $scope.activeList = [];\r\n $scope.completeList = [];\r\n $scope.masterList = [];\r\n $scope.selectedFilterForm = 'Active';\r\n $scope.filterForm = [ { Name: 'Active', Id: 0 }, {Name: 'Complete', Id: 1 }];\r\n\r\n var selectedPracticeForm = null;\r\n var activePatient = PatientPortalStorageRepository.getActivePatient();\r\n\r\n $scope.AttachmentList=\r\n {\r\n attachmentDto : $scope.attachmentDto\r\n };\r\n\r\n function filterPracticeForm(filter)\r\n {\r\n if(filter.Id === 0)\r\n {\r\n $scope.practiceFormsList = $scope.activeList;\r\n $scope.selectedFilterForm = filter.Name;\r\n }\r\n if(filter.Id === 1)\r\n {\r\n $scope.practiceFormsList = $scope.completeList;\r\n $scope.selectedFilterForm = filter.Name;\r\n }\r\n }\r\n\r\n function openPatientQuestionnaire(form) {\r\n TransitionManager.transition({appRoute: 'patientQuestionnaire', opts: {relSurveyPatientId: form.RelSurveyPatientId, patientId: form.PatientId, questionnaireId: form.QuestionnaireId}});\r\n }\r\n\r\n function viewPracticeFormAttachment(practiceForm) {\r\n $scope.isModalDisplayed = true;\r\n selectedPracticeForm = practiceForm;\r\n\r\n var modalConfig = {\r\n Title: practiceForm.PracticeFormName,\r\n PatientId: practiceForm.PersonId,\r\n DocumentId: practiceForm.AttachmentId,\r\n DocumentLoad: getPracticeFormAttachmentImage,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.isModalDisplayed = false;\r\n selectedPracticeForm = null;\r\n });\r\n }\r\n\r\n function getPracticeFormAttachmentImage(documentId, requestSettings) {\r\n return FormsRepository.getPracticeFormImage(selectedPracticeForm.PersonId, documentId, selectedPracticeForm.RelPracticeFormPatientId, requestSettings)\r\n .then(function (data) {\r\n return data;\r\n });\r\n }\r\n\r\n function updatePracticeFormDownloadDate(practiceForm) {\r\n var updateDto = {\r\n RelPracticeFormPatientId : practiceForm.RelPracticeFormPatientId\r\n };\r\n\r\n return FormsRepository.updatePracticeFormDownloadDate(practiceForm.PersonId, practiceForm.AttachmentId, updateDto)\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred while uploading the practice form'));\r\n });\r\n }\r\n\r\n function downloadPracticeFormAttachment(practiceForm) {\r\n practiceForm.Downloading = true;\r\n practiceForm.Downloaded = true;\r\n practiceForm.Uploaded = false;\r\n updatePracticeFormDownloadDate(practiceForm);\r\n return FormsRepository.getPracticeFormAttachment(practiceForm.PersonId, practiceForm.AttachmentId, practiceForm.RelPracticeFormPatientId)\r\n .then(function (data) {\r\n return {Data: data.Data, Extension: data.Extension, FileName: practiceForm.PracticeFormName + '_' + activePatient.firstName + activePatient.lastName};\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred while downloading the practice form'));\r\n })\r\n .finally(function () {\r\n practiceForm.Downloading = false;\r\n });\r\n }\r\n\r\n function getAssignedQuestionnaires() {\r\n return FormsRepository\r\n .getAssignedQuestionnaires(PatientPortalStorageRepository.getActivePatient().id)\r\n .then(function (data) {\r\n $scope.incompleteForms = _(data)\r\n .filter({'IsComplete' : false})\r\n .sortBy('PercentComplete')\r\n .value();\r\n\r\n $scope.completedForms = _(data)\r\n .filter({'IsComplete' : true})\r\n .sortBy('PercentComplete')\r\n .value();\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n }\r\n\r\n function getAssignedPracticeForms() {\r\n var searchCriteria = {\r\n IncludeOnlyUnviewedForms : false\r\n };\r\n\r\n return FormsRepository\r\n .getAssignedPracticeForms(PatientPortalStorageRepository.getActivePatient().id, searchCriteria)\r\n .then(function (data) {\r\n $scope.masterList = _.map(data, function (entry) {\r\n return _.assignIn(entry, { Downloading : false, Downloaded: false, Uploading: false, Uploaded: false, isPending : false, isComplete: false});\r\n });\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n\r\n }\r\n\r\n function createLists()\r\n {\r\n if($scope.masterList.length)\r\n {\r\n $scope.completeList = _($scope.masterList)\r\n .filter({'Approved' : true})\r\n .sortBy('EffectDate')\r\n .value();\r\n\r\n $scope.activeList = _($scope.masterList)\r\n .filter({'Approved' : false})\r\n .sortBy('EffectDate')\r\n .value();\r\n\r\n\r\n if($scope.activeList)\r\n {\r\n _.forEach($scope.activeList,function (form) {\r\n if(form.LastUploadedByPortalDate !== null && !form.Rejected)\r\n {\r\n form.Downloaded = true;\r\n form.isPending = true;\r\n form.Uploaded = true;\r\n }\r\n });\r\n }\r\n\r\n if(typeof $scope.completeList !== 'undefined')\r\n {\r\n _.forEach($scope.completeList,function (form) {\r\n form.isComplete = true;\r\n });\r\n }\r\n\r\n $scope.practiceFormsList = $scope.activeList;\r\n }\r\n }\r\n function assignUploadForm(practiceForm) {\r\n $scope.uploadForm = practiceForm;\r\n }\r\n\r\n $scope.$on('createMessage', function () {\r\n $scope.uploadForm.Uploading = true;\r\n // $scope.sending = true;\r\n\r\n var model = {\r\n PatientId: activePatient.id,\r\n UrgencyId: 'C2A64D38-3BE1-4F8A-8947-EF9E9AD861A4',\r\n SubTypeId: 'E6B12F40-A396-41A8-B1FD-F4A2567141C0',\r\n MessageTypeId: 'D8799AE1-D76C-4DEF-B7CD-1D89955A7446',\r\n Header: $scope.uploadForm.AttachmentTypeName + ' uploaded form from ' + activePatient.fullName + ' needs approval',\r\n Message: null,\r\n Status: 'Incomplete',\r\n Notes: '',\r\n AttachmentDto : $scope.AttachmentList.attachmentDto,\r\n PracticeFormId: $scope.uploadForm.PracticeFormId,\r\n RelPracticeFormPatientId : $scope.uploadForm.RelPracticeFormPatientId,\r\n AttachmentGroupId : $scope.uploadForm.AttachmentGroupId,\r\n AttachmentTypeId : $scope.uploadForm.AttachmentTypeId\r\n };\r\n\r\n FormsRepository\r\n .createApprovalMessage(activePatient.id, model)\r\n .then(function () {\r\n $scope.uploadForm.isPending = true;\r\n toaster.pop('success', '', gettext('Upload sent successfully.'));\r\n var uploadDto = { RelPracticeFormPatientId : $scope.uploadForm.RelPracticeFormPatientId};\r\n FormsRepository.updatePracticeFormUploadDate(activePatient.id, $scope.uploadForm.AttachmentId, uploadDto);\r\n NotificationService.updateNotifications();\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error has occurred and the Form was not uploaded.'));\r\n })\r\n .finally(function () {\r\n // $scope.sending = false;\r\n $scope.uploadForm.Uploading = false;\r\n });\r\n });\r\n\r\n $scope.load = function(tile) {\r\n $scope.tile = tile;\r\n\r\n loadPage();\r\n };\r\n\r\n\r\n function loadPage() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n var assignedQuestionnairesPromise = getAssignedQuestionnaires();\r\n var assignedPracticeFormsPromise = getAssignedPracticeForms();\r\n\r\n $q.all([assignedQuestionnairesPromise, assignedPracticeFormsPromise]).then(function() {\r\n createLists();\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadPage();\r\n\r\n\r\n $scope.openPatientQuestionnaire = openPatientQuestionnaire;\r\n $scope.viewPracticeFormAttachment = viewPracticeFormAttachment;\r\n $scope.getPracticeFormAttachmentImage = getPracticeFormAttachmentImage;\r\n $scope.downloadPracticeFormAttachment = downloadPracticeFormAttachment;\r\n $scope.updatePracticeFormDownloadDate = updatePracticeFormDownloadDate;\r\n $scope.assignUploadForm = assignUploadForm;\r\n $scope.filterPracticeForm = filterPracticeForm;\r\n }\r\n ]\r\n);","angular.module('forms').controller('PatientQuestionnaireCtrl',\r\n ['$scope', '$timeout', '$stateParams', 'toaster', 'aprgettext', 'PatientPortalStorageRepository', 'FormsRepository', 'FormsService', 'TransitionManager', 'FormsId',\r\n function ($scope, $timeout, $stateParams, toaster, gettext, PatientPortalStorageRepository, FormsRepository, FormsService, TransitionManager, FormsId) {\r\n 'use strict';\r\n\r\n $scope.hxQuestion = {\r\n isPatientHxQuestion: false,\r\n isPatientProblemDiagnosisHxQuestion: false,\r\n isFamilyProblemHxQuestion: false,\r\n isImmunizationHxQuestion: false\r\n };\r\n\r\n $scope.savingQuestionnaire = false;\r\n $scope.loadingSection = { loading: false};\r\n $scope.patientQuestionnaire = null;\r\n\r\n // TODO : Move section navigation into a custom directive ???\r\n $scope.navigationSectionParams = {\r\n currentSectionNumber: 0,\r\n currentSectionName: '',\r\n nextSectionName: '',\r\n firstSectionNumber: 0,\r\n lastSectionNumber: 0,\r\n maxNavigationItems: 5\r\n };\r\n\r\n\r\n function loadPage() {\r\n $scope.loadingSection.loading = true;\r\n $scope.removeHttpError();\r\n\r\n FormsService.removeLocalStorageKeys('subfindtableitems');\r\n\r\n\r\n FormsRepository\r\n .getPatientQuestionnaire(PatientPortalStorageRepository.getActivePatient().id, $stateParams.relSurveyPatientId)\r\n .then(function (data) {\r\n $scope.patientQuestionnaire = data;\r\n //console.log($scope.patientQuestionnaire);\r\n\r\n if ($scope.patientQuestionnaire && $scope.patientQuestionnaire.Questionnaire && $scope.patientQuestionnaire.Questionnaire.Sections) {\r\n initializeSectionNavigation();\r\n var containsPatientHxQuestion = $scope.patientQuestionnaire.Questionnaire.Sections[$scope.navigationSectionParams.currentSectionNumber - 1].ContainsPatientHxQuestion;\r\n $scope.loadingSection.loading = !containsPatientHxQuestion;\r\n } else {\r\n $scope.loadingSection.loading = false;\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n $scope.loadingSection.loading = false;\r\n });\r\n }\r\n loadPage();\r\n\r\n\r\n function initializeSectionNavigation() {\r\n _.forEach($scope.patientQuestionnaire.Questionnaire.Sections, function(section) {\r\n section.Visible = section.SectionNumber <= $scope.navigationSectionParams.maxNavigationItems;\r\n\r\n _.forEach(section.Questions, function(question) {\r\n question.RequiredFieldsPopulated = true;\r\n });\r\n });\r\n\r\n $scope.navigationSectionParams.currentSectionNumber = 1;\r\n $scope.navigationSectionParams.currentSectionName = $scope.patientQuestionnaire.Questionnaire.Sections[0].SurveySectionName;\r\n $scope.navigationSectionParams.firstSectionNumber = 1;\r\n\r\n if ($scope.patientQuestionnaire.Questionnaire.Sections.length > $scope.navigationSectionParams.maxNavigationItems) {\r\n $scope.navigationSectionParams.lastSectionNumber = $scope.navigationSectionParams.maxNavigationItems;\r\n } else {\r\n $scope.navigationSectionParams.lastSectionNumber = $scope.patientQuestionnaire.Questionnaire.Sections.length;\r\n }\r\n\r\n $scope.navigationSectionParams.nextSectionName = getNextSectionName();\r\n }\r\n\r\n\r\n function getNextSectionName() {\r\n // Sections collection is zero based. Section Number is 1 based.\r\n if ($scope.navigationSectionParams.currentSectionNumber < $scope.patientQuestionnaire.Questionnaire.Sections.length) {\r\n return $scope.patientQuestionnaire.Questionnaire.Sections[$scope.navigationSectionParams.currentSectionNumber].SurveySectionName;\r\n }\r\n else {\r\n return 'Submit Form';\r\n }\r\n }\r\n\r\n\r\n function getCurrentSectionName() {\r\n // Sections collection is zero based. Section Number is 1 based.\r\n if ($scope.navigationSectionParams.currentSectionNumber > 0) {\r\n return $scope.patientQuestionnaire.Questionnaire.Sections[$scope.navigationSectionParams.currentSectionNumber - 1].SurveySectionName;\r\n }\r\n }\r\n\r\n\r\n function validateCheckboxQuestions() {\r\n var curQuestions = $scope.patientQuestionnaire.Questionnaire.Sections[$scope.navigationSectionParams.currentSectionNumber - 1].Questions;\r\n var curCheckboxQuestions = _.filter(curQuestions, function(question) {\r\n return question.QuestionEnabled === true && question.SurveyControlTypeName.toUpperCase() === 'CHECKBOX';\r\n });\r\n if (curCheckboxQuestions && curCheckboxQuestions.length > 0) {\r\n var checkboxQuestionsHaveAnswers = true;\r\n\r\n _.forEach(curCheckboxQuestions, function(checkboxQuestion) {\r\n if (checkboxQuestion.QuestionEnabled && checkboxQuestion.QuestionRequireAnswer) {\r\n var selectedAnswer = _.find(checkboxQuestion.Answers, function(answer) {\r\n return answer.SelectedAnswer === true;\r\n });\r\n if (!selectedAnswer) {\r\n checkboxQuestion.RequiredFieldsPopulated = false;\r\n checkboxQuestionsHaveAnswers = false;\r\n }\r\n }\r\n });\r\n\r\n if (!checkboxQuestionsHaveAnswers) {\r\n $scope.patientQuestionnaireForm.$valid = false;\r\n $scope.patientQuestionnaireForm.$invalid = true;\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n $scope.submitQuestionnaire = function submitQuestionnaire(finishLater) {\r\n $scope.savingQuestionnaire = true;\r\n\r\n // For each History Section, remove Problem History Answer items that are not selected.\r\n // This is will eliminate unneeded items from the respective collections.\r\n var patientHistorySections = _.filter($scope.patientQuestionnaire.Questionnaire.Sections, {ContainsPatientHxQuestion: true});\r\n if (patientHistorySections) {\r\n var unselectedItems = [];\r\n\r\n _.forEach(patientHistorySections, function(historySection) {\r\n if (historySection.HistoryGroupId.toUpperCase() === FormsId.HistoryGroupId.ProblemDiagnosis) {\r\n unselectedItems = _.filter(historySection.ProblemHistoryAnswers, {Selected: false});\r\n _.forEach(unselectedItems, function(removeObj) {\r\n _.pull(historySection.ProblemHistoryAnswers, removeObj);\r\n });\r\n } else if (historySection.HistoryGroupId.toUpperCase() === FormsId.HistoryGroupId.Family) {\r\n _.forEach(historySection.FamilyHistoryAnswers, function(familyHxAnswer) {\r\n unselectedItems = _.filter(familyHxAnswer.ProblemHistoryAnswers, {Selected: false});\r\n _.forEach(unselectedItems, function(removeObj) {\r\n _.pull(familyHxAnswer.ProblemHistoryAnswers, removeObj);\r\n });\r\n });\r\n } else if (historySection.HistoryGroupId.toUpperCase() === FormsId.HistoryGroupId.Immunization) {\r\n if (historySection.ImmunizationHistoryAnswers.ImmunizationAdultAnswers && historySection.ImmunizationHistoryAnswers.ImmunizationAdultAnswers.length > 0) {\r\n unselectedItems = _.filter(historySection.ImmunizationHistoryAnswers.ImmunizationAdultAnswers[0].ImmunizationAnswers, {Selected: false});\r\n _.forEach(unselectedItems, function(removeObj) {\r\n _.pull(historySection.ImmunizationHistoryAnswers.ImmunizationAdultAnswers[0].ImmunizationAnswers, removeObj);\r\n });\r\n }\r\n\r\n if (historySection.ImmunizationHistoryAnswers.ImmunizationPediatricAnswers && historySection.ImmunizationHistoryAnswers.ImmunizationPediatricAnswers.length > 0) {\r\n unselectedItems = _.filter(historySection.ImmunizationHistoryAnswers.ImmunizationPediatricAnswers[0].ImmunizationAnswers, {Selected: false});\r\n _.forEach(unselectedItems, function(removeObj) {\r\n _.pull(historySection.ImmunizationHistoryAnswers.ImmunizationPediatricAnswers[0].ImmunizationAnswers, removeObj);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (finishLater === 'FINISH-LATER') {\r\n $scope.patientQuestionnaire.Completed = false;\r\n } else {\r\n $scope.patientQuestionnaire.Completed = true;\r\n }\r\n\r\n FormsRepository.putPatientQuestionnaire($scope.patientQuestionnaire)\r\n .then(function () {\r\n if ($scope.patientQuestionnaire.Completed) {\r\n var completedForm = {\r\n Form: { Id: $scope.patientQuestionnaire.RelSurveyPatientId, Name: $scope.patientQuestionnaire.Questionnaire.SurveyName},\r\n Patient: { Id: $scope.patientQuestionnaire.PatientId}\r\n };\r\n\r\n FormsService.cacheCompletedForm(completedForm);\r\n TransitionManager.transition({appRoute: 'confirmForm'});\r\n } else {\r\n toaster.pop('success', '', gettext('Your questionnaire answers have been saved and can be completed later.'));\r\n TransitionManager.transition({appRoute: 'forms'});\r\n }\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('The patient form was not saved. Please try again or contact your practice for further assistance.'));\r\n })\r\n .finally(function () {\r\n $scope.savingQuestionnaire = false;\r\n });\r\n };\r\n\r\n\r\n $scope.navMoveNext = function navMoveNext() {\r\n $scope.patientQuestionnaireForm.isSubmitted = true;\r\n validateCheckboxQuestions();\r\n\r\n if (!$scope.patientQuestionnaireForm.$valid) {\r\n return;\r\n }\r\n\r\n $scope.patientQuestionnaireForm.isSubmitted = false;\r\n\r\n var curSectionNumber = $scope.navigationSectionParams.currentSectionNumber;\r\n var numOfSections = $scope.patientQuestionnaire.Questionnaire.Sections.length;\r\n\r\n if (curSectionNumber === numOfSections) {\r\n return $scope.submitQuestionnaire();\r\n }\r\n\r\n if ((curSectionNumber > 0) && (curSectionNumber < numOfSections)) {\r\n $scope.loadingSection.loading = true;\r\n\r\n $timeout(function() {\r\n $scope.navigationSectionParams.currentSectionNumber = ++curSectionNumber;\r\n $scope.navigationSectionParams.currentSectionName = getCurrentSectionName();\r\n\r\n if (curSectionNumber > $scope.navigationSectionParams.lastSectionNumber)\r\n {\r\n $scope.navigationSectionParams.firstSectionNumber++;\r\n $scope.navigationSectionParams.lastSectionNumber++;\r\n _.forEach($scope.patientQuestionnaire.Questionnaire.Sections, function (section) {\r\n if ((section.SectionNumber >= $scope.navigationSectionParams.firstSectionNumber) &&\r\n (section.SectionNumber <= $scope.navigationSectionParams.lastSectionNumber)) {\r\n section.Visible = true;\r\n }\r\n else {\r\n section.Visible = false;\r\n }\r\n });\r\n }\r\n\r\n $scope.navigationSectionParams.nextSectionName = getNextSectionName();\r\n }, 0, true);\r\n }\r\n };\r\n\r\n\r\n $scope.navMovePrevious = function navMovePrevious() {\r\n // Should always be able to move back to the previous section, even if current section is not valid.\r\n/*\r\n $scope.patientQuestionnaireForm.isSubmitted = true;\r\n if (!$scope.patientQuestionnaireForm.$valid) {\r\n return;\r\n }\r\n*/\r\n\r\n $scope.patientQuestionnaireForm.isSubmitted = false;\r\n\r\n var curSectionNumber = $scope.navigationSectionParams.currentSectionNumber;\r\n\r\n if (curSectionNumber > 1) {\r\n $scope.loadingSection.loading = true;\r\n\r\n $timeout(function() {\r\n $scope.navigationSectionParams.currentSectionNumber = --curSectionNumber;\r\n $scope.navigationSectionParams.currentSectionName = getCurrentSectionName();\r\n\r\n if (curSectionNumber < $scope.navigationSectionParams.firstSectionNumber) {\r\n $scope.navigationSectionParams.firstSectionNumber--;\r\n $scope.navigationSectionParams.lastSectionNumber--;\r\n _.forEach($scope.patientQuestionnaire.Questionnaire.Sections, function (section) {\r\n if ((section.SectionNumber >= $scope.navigationSectionParams.firstSectionNumber) &&\r\n (section.SectionNumber <= $scope.navigationSectionParams.lastSectionNumber)) {\r\n section.Visible = true;\r\n }\r\n else {\r\n section.Visible = false;\r\n }\r\n });\r\n }\r\n\r\n $scope.navigationSectionParams.nextSectionName = getNextSectionName();\r\n }, 0, true);\r\n }\r\n };\r\n\r\n\r\n $scope.displaySection = function displaySection(section) {\r\n var curSectionNumber = $scope.navigationSectionParams.currentSectionNumber;\r\n\r\n if (section.SectionNumber === curSectionNumber) {\r\n // User is wanting to page to current section\r\n $scope.patientQuestionnaireForm.isSubmitted = false;\r\n return;\r\n }\r\n\r\n/*\r\n if (section.SectionNumber > curSectionNumber) {\r\n // Cannot skip ahead\r\n return;\r\n }\r\n*/\r\n\r\n validateCheckboxQuestions();\r\n\r\n if ((section.SectionNumber < curSectionNumber) || ($scope.patientQuestionnaireForm.$valid)) {\r\n // User is wanting to page to a previous section or form is valid. Page to respective section.\r\n $scope.patientQuestionnaireForm.isSubmitted = false;\r\n $scope.loadingSection.loading = true;\r\n\r\n $timeout(function() {\r\n $scope.navigationSectionParams.currentSectionNumber = section.SectionNumber;\r\n $scope.navigationSectionParams.currentSectionName = getCurrentSectionName();\r\n $scope.navigationSectionParams.nextSectionName = getNextSectionName();\r\n }, 0, true);\r\n return;\r\n }\r\n\r\n // User is wanting to page to next section and view is not valid\r\n $scope.patientQuestionnaireForm.isSubmitted = true;\r\n };\r\n\r\n }]);","angular.module('forms').controller('UpdateFamilyHistoryModalCtrl',\r\n ['$q', '$scope', '$uibModalInstance', 'ListService', 'FamilyHxRelationshipId', 'FamilyHistoryAnswer', 'HistoryRelationshipList', 'FormsId',\r\n function ($q, $scope, $modalInstance, ListService, FamilyHxRelationshipId, FamilyHistoryAnswer, HistoryRelationshipList, FormsId) {\r\n 'use strict';\r\n\r\n $scope.loadingModal = true;\r\n\r\n $scope.FamilyHistoryAnswer = FamilyHistoryAnswer;\r\n\r\n $scope.familyHxRelationshipList = '';\r\n $scope.Model = {\r\n TimeFrameIdBirthdate: 'birthdate',\r\n TimeFrameIdDeathdate: 'deathdate',\r\n RelationshipQualifier: 4\r\n };\r\n\r\n $scope.RelationshipQualifier = {\r\n isMaternal: 1,\r\n isPaternal: 2,\r\n isUnknown: 3,\r\n none: 4\r\n };\r\n $scope.Model.RelationshipQualifier = $scope.RelationshipQualifier.none;\r\n\r\n\r\n function loadModal() {\r\n if ($scope.FamilyHistoryAnswer.IsRelationshipMaternal === true) {\r\n $scope.Model.RelationshipQualifier = $scope.RelationshipQualifier.isMaternal;\r\n } else if ($scope.FamilyHistoryAnswer.IsRelationshipPaternal === true) {\r\n $scope.Model.RelationshipQualifier = $scope.RelationshipQualifier.isPaternal;\r\n } else if ($scope.FamilyHistoryAnswer.IsRelationshipUnknown === true) {\r\n $scope.Model.RelationshipQualifier = $scope.RelationshipQualifier.isUnknown;\r\n } else {\r\n $scope.Model.RelationshipQualifier = $scope.RelationshipQualifier.none;\r\n }\r\n\r\n $scope.familyHxRelationshipList = HistoryRelationshipList;\r\n $scope.loadingModal = false;\r\n }\r\n loadModal();\r\n\r\n\r\n $scope.relationshipSelect = function relationshipSelect() {\r\n var selectedRelationship = _.find($scope.familyHxRelationshipList, {ItemId: FamilyHistoryAnswer.RelationshipId});\r\n if (selectedRelationship) {\r\n FamilyHistoryAnswer.RelationshipName = selectedRelationship.Name;\r\n }\r\n };\r\n\r\n\r\n $scope.timeFrameSelectedCallback = function timeFrameSelectedCallback(timeFrameId, onsetTimeFrameId) {\r\n var problemHistoryAnswer = _.find($scope.FamilyHistoryAnswer.ProblemHistoryAnswers, {ProblemHistoryAnswerId: timeFrameId});\r\n if (problemHistoryAnswer) {\r\n if ((onsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Clear) || (onsetTimeFrameId === '')) {\r\n problemHistoryAnswer.Selected = false;\r\n problemHistoryAnswer.Notes = '';\r\n } else {\r\n problemHistoryAnswer.Selected = true;\r\n }\r\n }\r\n };\r\n\r\n\r\n $scope.accept = function accept() {\r\n $scope.familyHistoryForm.isSubmitted = true;\r\n if (!$scope.familyHistoryForm.$valid) {\r\n return;\r\n }\r\n\r\n $scope.FamilyHistoryAnswer.IsRelationshipMaternal = false;\r\n $scope.FamilyHistoryAnswer.IsRelationshipPaternal = false;\r\n $scope.FamilyHistoryAnswer.IsRelationshipUnknown = false;\r\n\r\n if ($scope.Model.RelationshipQualifier === $scope.RelationshipQualifier.isMaternal) {\r\n $scope.FamilyHistoryAnswer.IsRelationshipMaternal = true;\r\n } else if ($scope.Model.RelationshipQualifier === $scope.RelationshipQualifier.isPaternal) {\r\n $scope.FamilyHistoryAnswer.IsRelationshipPaternal = true;\r\n } else if ($scope.Model.RelationshipQualifier === $scope.RelationshipQualifier.isUnknown) {\r\n $scope.FamilyHistoryAnswer.IsRelationshipUnknown = true;\r\n }\r\n\r\n $scope.familyHistoryForm.isSubmitted = false;\r\n $modalInstance.close(FormsId.ModalInstanceReturnId.Accept);\r\n };\r\n\r\n\r\n $scope.cancel = function cancel() {\r\n $modalInstance.dismiss(FormsId.ModalInstanceReturnId.Cancel);\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormAnswerCheckbox',\r\n ['$rootScope', 'aprgettext',\r\n function ($rootScope, gettext) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormAnswerCheckbox.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n form: '=form',\r\n question: '=question',\r\n answer: '=answer',\r\n lastQuestion: '@lastQuestion'\r\n },\r\n controller: function($scope) {\r\n\r\n $scope.explanationPlaceHolder = {\r\n Text : ''\r\n };\r\n\r\n function enableQuestionsForSelectedAnswer(enableQuestion) {\r\n var answer = $scope.answer;\r\n\r\n // if answer.QuestionsToTrigger collection is empty, do not fire enable event\r\n _.forEach(answer.QuestionsToTrigger, function(questionToEnable) {\r\n if (questionToEnable !== '00000000-0000-0000-0000-000000000000') {\r\n $rootScope.$broadcast('FormAnswerChanged',\r\n {\r\n EnableQuestion: enableQuestion,\r\n QuestionIdToTrigger: questionToEnable\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n $scope.answerChanged = function answerChanged() {\r\n enableQuestionsForSelectedAnswer($scope.answer.SelectedAnswer);\r\n\r\n if ($scope.answer.SelectedAnswer === true ) {\r\n $scope.explanationPlaceHolder.Text = gettext('Required Explanation here');\r\n } else {\r\n $scope.explanationPlaceHolder.Text = '';\r\n }\r\n\r\n if ($scope.answer.SurveyRequiresExplanation === false) {\r\n $scope.explanationTextChanged();\r\n }\r\n };\r\n\r\n\r\n $scope.explanationTextChanged = function explanationTextChanged() {\r\n $rootScope.$broadcast('ExplanationTextChanged',\r\n {\r\n SurveyAnswerId: $scope.answer.SurveyAnswerId,\r\n SurveyQuestionId: $scope.answer.SurveyQuestionId\r\n }\r\n );\r\n };\r\n\r\n\r\n function loadView() {\r\n }\r\n loadView();\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormAnswerDate',\r\n ['$rootScope',\r\n function () {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormAnswerDate.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n question: '=question',\r\n answer: '=answer',\r\n lastQuestion: '@lastQuestion'\r\n },\r\n controller: function($scope) {\r\n\r\n $scope.datePopup = {\r\n Opened: false\r\n };\r\n\r\n $scope.minDate = moment().subtract(100, 'year');\r\n $scope.maxDate = moment().add(5, 'year');\r\n\r\n $scope.openDatePicker = function openDatePicker($event) {\r\n $event.preventDefault();\r\n $scope.datePopup.Opened = true;\r\n };\r\n\r\n function loadView() {\r\n $scope.question.SelectedAnswerId = $scope.answer.SurveyAnswerId;\r\n }\r\n loadView();\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormAnswerNumeric',\r\n ['$rootScope',\r\n function ($rootScope) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormAnswerNumeric.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n question: '=question',\r\n answers: '=answers',\r\n lastQuestion: '@lastQuestion'\r\n },\r\n controller: function($scope) {\r\n\r\n function updateEnteredAnswer() {\r\n var answerText = String($scope.question.SelectedAnswerText);\r\n if (answerText === 'undefined') {\r\n answerText = '';\r\n $scope.question.SelectedAnswerText = '';\r\n }\r\n $scope.question.SelectedAnswerId = '00000000-0000-0000-0000-000000000000';\r\n\r\n if (answerText.length > 0) {\r\n _.forEach($scope.answers, function(answer) {\r\n if (answer.SurveyAnswerLabel === answerText) {\r\n $scope.question.SelectedAnswerId = answer.SurveyAnswerId;\r\n }\r\n });\r\n\r\n $scope.question.SelectedAnswerText = Number($scope.question.SelectedAnswerText);\r\n }\r\n }\r\n\r\n\r\n function enableQuestionsForSelectedAnswer(enableQuestion, answerText) {\r\n _.forEach($scope.answers, function(answer) {\r\n _.forEach(answer.QuestionsToTrigger, function(questionToEnable) {\r\n var fireEvent = false;\r\n\r\n if (questionToEnable !== '00000000-0000-0000-0000-000000000000') {\r\n if (enableQuestion) {\r\n if (answer.SurveyAnswerLabel === answerText) {\r\n fireEvent = true;\r\n }\r\n } else {\r\n fireEvent = true;\r\n }\r\n }\r\n\r\n if (fireEvent === true) {\r\n $rootScope.$broadcast('FormAnswerChanged',\r\n {\r\n EnableQuestion: enableQuestion,\r\n QuestionIdToTrigger: questionToEnable\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n $scope.answerChanged = function answerChanged() {\r\n updateEnteredAnswer();\r\n\r\n var enableQuestion = false;\r\n if ($scope.question.SelectedAnswerText > 0) {\r\n enableQuestion = true;\r\n }\r\n\r\n enableQuestionsForSelectedAnswer(enableQuestion, $scope.question.SelectedAnswerText);\r\n };\r\n\r\n\r\n function loadView() {\r\n updateEnteredAnswer();\r\n }\r\n loadView();\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormAnswerRadiobutton',\r\n ['$rootScope',\r\n function ($rootScope) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormAnswerRadiobutton.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n form: '=form',\r\n question: '=question',\r\n answer: '=answer',\r\n lastQuestion: '@lastQuestion',\r\n selectedButtonCallback: '&selectedButtonCallback'\r\n },\r\n controller: function($scope) {\r\n\r\n function disableTriggeredQuestions() {\r\n var answer = $scope.answer;\r\n var question = $scope.question;\r\n var questionsToDisable = [];\r\n\r\n _.forEach(question.Answers, function(curAnswer) {\r\n if (curAnswer.SurveyAnswerId !== answer.SurveyAnswerId) {\r\n // if answer.QuestionsToTrigger collection is empty, do not add questionId to array\r\n _.forEach(curAnswer.QuestionsToTrigger, function(questionToDisable) {\r\n if (questionToDisable !== '00000000-0000-0000-0000-000000000000') {\r\n if (questionsToDisable.indexOf(questionToDisable) === -1) {\r\n questionsToDisable.push(questionToDisable);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n //console.log('Questions to disable : ' + questionsToDisable);\r\n if (questionsToDisable.length <= 0) {\r\n // No questions to enable or disable. Therefore, do not fire disable question event.\r\n return;\r\n }\r\n\r\n _.forEach(questionsToDisable, function(questionId) {\r\n $rootScope.$broadcast('FormAnswerChanged',\r\n {\r\n EnableQuestion: false,\r\n QuestionIdToTrigger: questionId\r\n });\r\n });\r\n }\r\n\r\n\r\n function enableQuestionsForSelectedAnswer() {\r\n var answer = $scope.answer;\r\n\r\n // if answer.QuestionsToTrigger collection is empty, do not fire enable event\r\n _.forEach(answer.QuestionsToTrigger, function(questionToEnable) {\r\n if (questionToEnable !== '00000000-0000-0000-0000-000000000000') {\r\n $rootScope.$broadcast('FormAnswerChanged',\r\n {\r\n EnableQuestion: true,\r\n QuestionIdToTrigger: questionToEnable\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n $scope.answerChanged = function answerChanged() {\r\n disableTriggeredQuestions();\r\n enableQuestionsForSelectedAnswer();\r\n\r\n if ($scope.answer.SurveyAnswerId === $scope.question.SelectedAnswerId) {\r\n if ($scope.answer.SurveyRequiresExplanation === true) {\r\n if ((!$scope.answer.SurveyExplanation || $scope.answer.SurveyExplanation.length <= 0) && $scope.question.RequiredFieldsPopulated === true ) {\r\n $scope.question.RequiredFieldsPopulated = false;\r\n }\r\n }\r\n else {\r\n if ($scope.question.RequiredFieldsPopulated === false) {\r\n $scope.question.RequiredFieldsPopulated = true;\r\n }\r\n }\r\n }\r\n\r\n var selectedUid = $scope.question.SelectedAnswerId;\r\n $scope.selectedButtonCallback(selectedUid);\r\n };\r\n\r\n\r\n $scope.explanationTextChanged = function explanationTextChanged() {\r\n $rootScope.$broadcast('ExplanationTextChanged',\r\n {\r\n SurveyAnswerId: $scope.answer.SurveyAnswerId,\r\n SurveyQuestionId: $scope.answer.SurveyQuestionId\r\n }\r\n );\r\n };\r\n\r\n\r\n function loadView() {\r\n }\r\n loadView();\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormAnswerText',\r\n ['$rootScope',\r\n function ($rootScope) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormAnswerText.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n question: '=question',\r\n answer: '=answer',\r\n lastQuestion: '@lastQuestion'\r\n },\r\n controller: function($scope) {\r\n\r\n function enableQuestionsForSelectedAnswer(enableQuestion) {\r\n var answer = $scope.answer;\r\n\r\n // if answer.QuestionsToTrigger collection is empty, do not fire enable event\r\n _.forEach(answer.QuestionsToTrigger, function(questionToEnable) {\r\n if (questionToEnable !== '00000000-0000-0000-0000-000000000000') {\r\n $rootScope.$broadcast('FormAnswerChanged',\r\n {\r\n EnableQuestion: enableQuestion,\r\n QuestionIdToTrigger: questionToEnable\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n $scope.answerChanged = function answerChanged() {\r\n var enableQuestion = false;\r\n if ($scope.question.SelectedAnswerText > 0) {\r\n enableQuestion = true;\r\n }\r\n enableQuestionsForSelectedAnswer(enableQuestion);\r\n };\r\n\r\n\r\n function loadView() {\r\n $scope.question.SelectedAnswerId = $scope.answer.SurveyAnswerId;\r\n }\r\n loadView();\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormAnswerTimeframe',\r\n ['aprgettext',\r\n function (gettext) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormAnswerTimeframe.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n form: '=form',\r\n question: '=question',\r\n lastQuestion: '@lastQuestion'\r\n },\r\n controller: function($scope) {\r\n var formAnswerChangedListener = null;\r\n\r\n $scope.timeframeText = {\r\n TextPlaceHolder : gettext('Time frame answer here'),\r\n TextPlaceHolderRequired : gettext('Required Time Frame answer here')\r\n };\r\n\r\n\r\n function formAnswerChanged(eventData) {\r\n if ($scope.question.SurveyQuestionId === eventData.QuestionIdToTrigger) {\r\n //var formElement = angular.element(document.getElementById($scope.form['SurveyQuestionId_' + $scope.question.SurveyQuestionId]));\r\n\r\n if (eventData.EnableQuestion === true && $scope.question.QuestionRequireAnswer === true) {\r\n //$scope.timeframeText.TextPlaceHolder = gettext('Required Time Frame answer here');\r\n //$scope.timeframeText.IsRequired = true;\r\n //formElement.$invalid = true;\r\n } else {\r\n //$scope.timeframeText.TextPlaceHolder = gettext('Time frame answer here');\r\n //$scope.timeframeText.IsRequired = false;\r\n //formElement.$invalid = false;\r\n }\r\n }\r\n }\r\n\r\n $scope.$on('$destroy', function() {\r\n if (formAnswerChangedListener !== null) {\r\n formAnswerChangedListener();\r\n }\r\n });\r\n\r\n $scope.answerChanged = function answerChanged() {\r\n // Selecting time format radio button handles enabling QuestionsToTrigger\r\n };\r\n\r\n $scope.selectedButtonCallback = function selectedButtonCallback(selectedId) {\r\n if (selectedId !== null && selectedId !== undefined) {\r\n\r\n }\r\n //$scope.timeframeText.TextPlaceHolder = gettext('Required Time Frame answer here');\r\n //$scope.timeframeText.IsRequired = true;\r\n };\r\n\r\n function loadView() {\r\n if ($scope.question.HasAnswersThatTriggerThisQuestion === true) {\r\n formAnswerChangedListener = $scope.$on('FormAnswerChanged', function(event, data) {\r\n formAnswerChanged(data);\r\n });\r\n }\r\n }\r\n loadView();\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormQuestion',\r\n [\r\n function () {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormQuestion.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n question: '=question',\r\n form: '=form'\r\n },\r\n controller: function($scope) {\r\n var formAnswerChangedListener = null;\r\n var formAnswerExplanationTextChangedListener = null;\r\n\r\n\r\n function formAnswerChanged(eventData) {\r\n if ($scope.question.SurveyQuestionId === eventData.QuestionIdToTrigger) {\r\n //console.log((eventData.EnableQuestion ? 'Enable ' : 'Disable ') + 'question ' + $scope.question.QuestionNumber);\r\n $scope.question.QuestionEnabled = eventData.EnableQuestion; // $scope.question.QuestionEnabled is bound to ng-disabled on the answer templete.\r\n $scope.question.QuestionRequireAnswer = eventData.EnableQuestion;\r\n\r\n if ($scope.question.QuestionEnabled === false) {\r\n $scope.question.SelectedAnswerId = null;\r\n $scope.question.SelectedAnswerText = '';\r\n\r\n _.forEach($scope.question.Answers, function(answer) {\r\n answer.SelectedAnswer = false;\r\n answer.SurveyResponseAnswerText = '';\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n function formAnswerExplanationTextChanged(eventData) {\r\n if (eventData.SurveyQuestionId !== $scope.question.SurveyQuestionId) {\r\n return;\r\n }\r\n\r\n if ($scope.question.QuestionEnabled !== true) {\r\n return;\r\n }\r\n\r\n $scope.question.RequiredFieldsPopulated = isRequiredExplanationTextPopulated();\r\n }\r\n\r\n\r\n $scope.$on('$destroy', function() {\r\n if (formAnswerChangedListener !== null) {\r\n formAnswerChangedListener();\r\n }\r\n if (formAnswerExplanationTextChangedListener !== null) {\r\n formAnswerExplanationTextChangedListener();\r\n }\r\n });\r\n\r\n\r\n function loadView() {\r\n // TODO : Remove boolean flag. Check if collection is empty or not.\r\n if ($scope.question.HasAnswersThatTriggerThisQuestion === true) {\r\n //console.log('Has Listener : ' + $scope.question.QuestionNumber);\r\n formAnswerChangedListener = $scope.$on('FormAnswerChanged', function(event, data) {\r\n formAnswerChanged(data);\r\n });\r\n }\r\n\r\n formAnswerExplanationTextChangedListener = $scope.$on('ExplanationTextChanged', function(event, data) {\r\n formAnswerExplanationTextChanged(data);\r\n });\r\n }\r\n loadView();\r\n\r\n\r\n function isRequiredExplanationTextPopulated() {\r\n var isTextPopulated = false;\r\n var unselectedAnswers;\r\n\r\n if ($scope.question.SurveyControlTypeName.toUpperCase() === 'RADIOBUTTON') {\r\n if ($scope.question.SelectedAnswerId === null) return false;\r\n\r\n unselectedAnswers = _.filter($scope.question.Answers, function(answer) {\r\n return answer.SurveyAnswerId !== $scope.question.SelectedAnswerId;\r\n });\r\n if (unselectedAnswers) {\r\n _.forEach(unselectedAnswers, function (answer) {\r\n answer.SurveyExplanation = '';\r\n });\r\n }\r\n\r\n var selectedAnswer = _.find($scope.question.Answers, function(answer) {\r\n return (answer.SurveyAnswerId === $scope.question.SelectedAnswerId && answer.SurveyRequiresExplanation === true && !!answer.SurveyExplanation && answer.SurveyExplanation.length > 0);\r\n });\r\n if (selectedAnswer) {\r\n isTextPopulated = true;\r\n }\r\n }\r\n else if ($scope.question.SurveyControlTypeName.toUpperCase() === 'CHECKBOX') {\r\n unselectedAnswers = _.filter($scope.question.Answers, function(answer) {\r\n return answer.SelectedAnswer === false;\r\n });\r\n if (unselectedAnswers) {\r\n _.forEach(unselectedAnswers, function (answer) {\r\n answer.SurveyExplanation = '';\r\n });\r\n }\r\n\r\n var selectedAnswers = _.filter($scope.question.Answers, function(answer) {\r\n return (answer.SelectedAnswer === true && answer.SurveyRequiresExplanation === true && (!answer.SurveyExplanation || answer.SurveyExplanation.length <= 0));\r\n });\r\n if (selectedAnswers && selectedAnswers.length > 0) {\r\n isTextPopulated = false;\r\n } else {\r\n isTextPopulated = true;\r\n }\r\n }\r\n\r\n return isTextPopulated;\r\n }\r\n\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormQuestionFamilyHistory',[\r\n '$q',\r\n '$rootScope',\r\n '$uibModal',\r\n 'FormsId',\r\n 'FormsService',\r\n 'ListService',\r\n function (\r\n $q,\r\n $rootScope,\r\n $modal,\r\n FormsId,\r\n FormsService,\r\n ListService\r\n ) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormQuestionFamilyHistory.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n questionnaireSectionId: '=questionnaireSectionId',\r\n questionnaireSection: '=questionnaireSection',\r\n loading: '=loading'\r\n },\r\n controller: function apFormQuestionFamilyHistoryCtrl($scope) {\r\n $scope.currentSectionId = '';\r\n\r\n var historyRelationshipList = '';\r\n var familyHxRelationshipList = '';\r\n\r\n\r\n $scope.$watch('questionnaireSectionId', function() {\r\n if ($scope.currentSectionId === '') {\r\n return;\r\n }\r\n\r\n if ($scope.currentSectionId !== $scope.questionnaireSectionId) {\r\n loadView();\r\n }\r\n });\r\n\r\n\r\n function getFamilyHxProblemList(familyHxProblemId) {\r\n return ListService.getList('subfindtableitems/family-history-problem/' + familyHxProblemId)\r\n .then(function (data) {\r\n $scope.familyHxProblemList = data;\r\n });\r\n }\r\n\r\n\r\n function getHistoryRelationshipList() {\r\n return ListService.getList('history-relationship')\r\n .then(function (data) {\r\n historyRelationshipList = data;\r\n });\r\n }\r\n\r\n\r\n function getFamilyHxRelationshipList(subFindTableId) {\r\n return ListService.getList('subfindtableitems/family-history-relationship/' + subFindTableId)\r\n .then(function (data) {\r\n familyHxRelationshipList = _(data)\r\n .forEach(function (item) {\r\n item.IsVisible = true;\r\n });\r\n });\r\n }\r\n\r\n\r\n function setAllfamilyHxRelationshipListItemsToVisible() {\r\n _.forEach(familyHxRelationshipList, function(item) {\r\n item.IsVisible = true;\r\n });\r\n }\r\n\r\n\r\n function setFamilyHxRelationshipListBasedOnMultipleUsage(patientFamilyHistoryId) {\r\n _.forEach($scope.questionnaireSection.FamilyHistoryAnswers, function(fhAnswer) {\r\n if (fhAnswer.PatientFamilyHistoryId !== patientFamilyHistoryId) {\r\n var hxRelationshipItem = _.find(historyRelationshipList, {Id: fhAnswer.RelationshipId});\r\n if (hxRelationshipItem && hxRelationshipItem.AllowMultipleUsage === false) {\r\n var familyHxRelationshipItem = _.find(familyHxRelationshipList, {ItemId: hxRelationshipItem.Id});\r\n if (familyHxRelationshipItem) {\r\n familyHxRelationshipItem.IsVisible = false;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n function loadView() {\r\n $rootScope.setupDirectiveScope($scope);\r\n $scope.removeHttpError();\r\n var familyHxProblemListPromise = getFamilyHxProblemList($scope.questionnaireSection.FamilyHxProblemSubFindTableId);\r\n var historyRelationshipListPromise = getHistoryRelationshipList();\r\n var familyHxRelationshipListPromise = getFamilyHxRelationshipList($scope.questionnaireSection.FamilyHxRelationshipSubFindTableId);\r\n\r\n $q.all([familyHxProblemListPromise, historyRelationshipListPromise, familyHxRelationshipListPromise]).then(function () {\r\n $scope.currentSectionId = $scope.questionnaireSectionId;\r\n\r\n _.forEach($scope.questionnaireSection.FamilyHistoryAnswers, function(familyHistoryAnswer) {\r\n var selectedRelationship = _.find(familyHxRelationshipList, {ItemId: familyHistoryAnswer.RelationshipId});\r\n if (selectedRelationship === undefined) {\r\n var relationshipToAdd = _.find(historyRelationshipList, {Id: familyHistoryAnswer.RelationshipId});\r\n if (relationshipToAdd) {\r\n var newItem = {\r\n ItemId: relationshipToAdd.Id,\r\n Name: relationshipToAdd.Name,\r\n SubFindTableId: '00000000-0000-0000-0000-000000000000',\r\n SubFindTableItemId: '00000000-0000-0000-0000-000000000000',\r\n IsVisible: true\r\n };\r\n familyHxRelationshipList.push(newItem);\r\n }\r\n }\r\n });\r\n }).catch(function (response) {\r\n $scope.addHttpError(response, '', 'listData');\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadView();\r\n\r\n\r\n function getNewProblemHistoryAnswers(problemHistoryAnswers) {\r\n _.forEach($scope.familyHxProblemList, function(findTableItem) {\r\n problemHistoryAnswers\r\n .push(FormsService.getNewProblemHistoryAnswer(\r\n findTableItem.SubFindTableItemId, // PK for SubFindTableTime table\r\n $scope.questionnaireSection.HistoryGroupId,\r\n findTableItem.ItemId, // disease Id\r\n findTableItem.Name)); // disease name\r\n });\r\n }\r\n\r\n\r\n $scope.addFamilyHistoryInformation = function addFamilyHistoryInformation() {\r\n setAllfamilyHxRelationshipListItemsToVisible();\r\n setFamilyHxRelationshipListBasedOnMultipleUsage('0');\r\n\r\n var familyHistoryAnswer = FormsService.getNewFamilyHistoryAnswer();\r\n getNewProblemHistoryAnswers(familyHistoryAnswer.ProblemHistoryAnswers);\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/forms/views/updateFamilyHistoryModal.html',\r\n controller: 'UpdateFamilyHistoryModalCtrl',\r\n scope: $scope,\r\n //size: 'lg',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n FamilyHxRelationshipId: function() {\r\n return $scope.questionnaireSection.FamilyHxRelationshipSubFindTableId;\r\n },\r\n FamilyHistoryAnswer: function() {\r\n return familyHistoryAnswer;\r\n },\r\n HistoryRelationshipList: function() {\r\n return familyHxRelationshipList;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (result) {\r\n if (result === FormsId.ModalInstanceReturnId.Accept) {\r\n $scope.questionnaireSection.FamilyHistoryAnswers.push(familyHistoryAnswer);\r\n }\r\n });\r\n };\r\n\r\n\r\n $scope.EditFamilyHistoryAnswer = function EditFamilyHistoryAnswer(familyHistoryAnswer) {\r\n setAllfamilyHxRelationshipListItemsToVisible();\r\n setFamilyHxRelationshipListBasedOnMultipleUsage(familyHistoryAnswer.PatientFamilyHistoryId);\r\n\r\n $modal.open({\r\n templateUrl: '/forms/views/updateFamilyHistoryModal.html',\r\n controller: 'UpdateFamilyHistoryModalCtrl',\r\n scope: $scope,\r\n //size: 'lg',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n FamilyHxRelationshipId: function() {\r\n return $scope.questionnaireSection.FamilyHxRelationshipSubFindTableId;\r\n },\r\n FamilyHistoryAnswer: function() {\r\n return familyHistoryAnswer;\r\n },\r\n HistoryRelationshipList: function() {\r\n return familyHxRelationshipList;\r\n }\r\n }\r\n });\r\n };\r\n\r\n\r\n $scope.DeleteFamilyHistoryAnswer = function DeleteFamilyHistoryAnswer(familyHistoryAnswer) {\r\n _.pull($scope.questionnaireSection.FamilyHistoryAnswers, familyHistoryAnswer);\r\n };\r\n\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormQuestionImmunizationHistory',[\r\n '$q',\r\n '$rootScope',\r\n 'FormsId',\r\n 'FormsService',\r\n 'ListService',\r\n function (\r\n $q,\r\n $rootScope,\r\n FormsId,\r\n FormsService,\r\n ListService\r\n ) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormQuestionImmunizationHistory.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n questionnaireSectionId: '=questionnaireSectionId',\r\n questionnaireSection: '=questionnaireSection',\r\n loading: '=loading'\r\n },\r\n controller: function($scope) {\r\n $scope.currentSectionId = '';\r\n $scope.adultVaccineList = '';\r\n $scope.pediatricVaccineList = '';\r\n\r\n $scope.$watch('questionnaireSectionId', function() {\r\n if ($scope.currentSectionId === '') {\r\n return;\r\n }\r\n\r\n if ($scope.currentSectionId !== $scope.questionnaireSectionId) {\r\n loadView();\r\n }\r\n });\r\n\r\n\r\n function getAdultVaccineList(subFindTableId) {\r\n return ListService.getList('subfindtableitems/patient-history-vaccine-adult/' + subFindTableId)\r\n .then(function (data) {\r\n $scope.adultVaccineList = data;\r\n\r\n if ($scope.questionnaireSection.ImmunizationHistoryAnswers.ImmunizationAdultAnswers.length <= 0) {\r\n _.forEach($scope.adultVaccineList, function(vaccineCard) {\r\n $scope.questionnaireSection.ImmunizationHistoryAnswers.ImmunizationAdultAnswers\r\n .push(FormsService.getNewImmunizationHistoryAnswer(\r\n true,\r\n false,\r\n vaccineCard));\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n function getPediatricVaccineList(subFindTableId) {\r\n return ListService.getList('subfindtableitems/patient-history-vaccine-pediatric/' + subFindTableId)\r\n .then(function (data) {\r\n $scope.pediatricVaccineList = data;\r\n\r\n if ($scope.questionnaireSection.ImmunizationHistoryAnswers.ImmunizationPediatricAnswers.length <= 0) {\r\n _.forEach($scope.pediatricVaccineList, function(vaccineCard) {\r\n $scope.questionnaireSection.ImmunizationHistoryAnswers.ImmunizationPediatricAnswers\r\n .push(FormsService.getNewImmunizationHistoryAnswer(\r\n false, // IsAdultCard\r\n true, // IsPediatricCard\r\n vaccineCard));\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n function loadView() {\r\n $rootScope.setupDirectiveScope($scope);\r\n $scope.removeHttpError();\r\n var adultVaccineListPromise = getAdultVaccineList($scope.questionnaireSection.AdultVaccineAdminSubFindTableId);\r\n var pediatricVaccineListPromise = getPediatricVaccineList($scope.questionnaireSection.PediatricVaccineAdminSubFindTableId);\r\n\r\n $q.all([adultVaccineListPromise, pediatricVaccineListPromise]).then(function () {\r\n $scope.currentSectionId = $scope.questionnaireSectionId;\r\n }).catch(function (response) {\r\n $scope.addHttpError(response, '', 'listData');\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadView();\r\n\r\n\r\n $scope.adultTimeFrameSelectedCallback = function adultTimeFrameSelectedCallback(timeFrameId, onsetTimeFrameId) {\r\n var ids = timeFrameId.split('_');\r\n if (ids.length === 2) {\r\n var vaccineAdminId = ids[0];\r\n var vaccineAdminItemId = ids[1];\r\n\r\n var immunizationCard = _.find($scope.questionnaireSection.ImmunizationHistoryAnswers.ImmunizationAdultAnswers, {VaccineAdminId: vaccineAdminId});\r\n if (immunizationCard) {\r\n var immunizationItem = _.find(immunizationCard.ImmunizationAnswers, {VaccineAdminItemId: vaccineAdminItemId});\r\n if (immunizationItem) {\r\n if ((onsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Clear) || (onsetTimeFrameId === '')) {\r\n immunizationItem.Selected = false;\r\n immunizationItem.Notes = '';\r\n } else {\r\n immunizationItem.Selected = true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n\r\n $scope.pediatricTimeFrameSelectedCallback = function pediatricTimeFrameSelectedCallback(timeFrameId, onsetTimeFrameId) {\r\n var ids = timeFrameId.split('_');\r\n if (ids.length === 2) {\r\n var vaccineAdminId = ids[0];\r\n var vaccineAdminItemId = ids[1];\r\n\r\n var immunizationCard = _.find($scope.questionnaireSection.ImmunizationHistoryAnswers.ImmunizationPediatricAnswers, {VaccineAdminId: vaccineAdminId});\r\n if (immunizationCard) {\r\n var immunizationItem = _.find(immunizationCard.ImmunizationAnswers, {VaccineAdminItemId: vaccineAdminItemId});\r\n if (immunizationItem) {\r\n if ((onsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Clear) || (onsetTimeFrameId === '')) {\r\n immunizationItem.Selected = false;\r\n immunizationItem.Notes = '';\r\n } else {\r\n immunizationItem.Selected = true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apFormQuestionPatientProblemHistory',[\r\n '$q',\r\n '$rootScope',\r\n 'FormsId',\r\n 'FormsService',\r\n 'ListService',\r\n function (\r\n $q,\r\n $rootScope,\r\n FormsId,\r\n FormsService,\r\n ListService\r\n ) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apFormQuestionPatientProblemHistory.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n questionnaireSectionId: '=questionnaireSectionId',\r\n questionnaireSection: '=questionnaireSection',\r\n loading: '=loading'\r\n },\r\n controller: function($scope) {\r\n $scope.findTableItemsProblemHx = '';\r\n $scope.currentSectionId = '';\r\n\r\n $scope.$watch('questionnaireSectionId', function() {\r\n if ($scope.currentSectionId === '') {\r\n return;\r\n }\r\n\r\n if ($scope.currentSectionId !== $scope.questionnaireSectionId) {\r\n loadView();\r\n }\r\n });\r\n\r\n\r\n function getFindTableItemsProblemHx(subFindTableId) {\r\n return ListService.getList('subfindtableitems/patient-history-problem/' + subFindTableId)\r\n .then(function (data) {\r\n $scope.findTableItemsProblemHx = data;\r\n\r\n if ($scope.questionnaireSection.ProblemHistoryAnswers.length <= 0) {\r\n _.forEach($scope.findTableItemsProblemHx, function(findTableItem) {\r\n $scope.questionnaireSection.ProblemHistoryAnswers\r\n .push(FormsService.getNewProblemHistoryAnswer(\r\n findTableItem.SubFindTableItemId, // PK for SubFindTableItem table\r\n $scope.questionnaireSection.HistoryGroupId,\r\n findTableItem.ItemId, // diseaseId\r\n findTableItem.Name)); // disease name\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n function loadView() {\r\n $rootScope.setupDirectiveScope($scope);\r\n $scope.removeHttpError();\r\n var findTableItemsProblemHxPromise = getFindTableItemsProblemHx($scope.questionnaireSection.ProblemHxSubFindTableId);\r\n\r\n $q.all([findTableItemsProblemHxPromise]).then(function () {\r\n $scope.currentSectionId = $scope.questionnaireSectionId;\r\n }).catch(function (response) {\r\n $scope.addHttpError(response, '', 'listData');\r\n }).finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n loadView();\r\n\r\n\r\n $scope.timeFrameSelectedCallback = function timeFrameSelectedCallback(timeFrameId, onsetTimeFrameId) {\r\n var problemHistoryAnswer = _.find($scope.questionnaireSection.ProblemHistoryAnswers, {ProblemHistoryAnswerId: timeFrameId});\r\n if (problemHistoryAnswer) {\r\n if ((onsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Clear) || (onsetTimeFrameId === '')) {\r\n problemHistoryAnswer.Selected = false;\r\n problemHistoryAnswer.Notes = '';\r\n } else {\r\n problemHistoryAnswer.Selected = true;\r\n }\r\n }\r\n };\r\n\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apSetFocusEvent',\r\n ['$timeout', '$window',\r\n function ($timeout, $window) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n element.on(attrs.apSetFocusEvent, function () {\r\n setFocus(attrs.apSetFocusId);\r\n });\r\n\r\n scope.$on('$destroy', function () {\r\n element.off(attrs.apSetFocusEvent);\r\n });\r\n\r\n function setFocus(id) {\r\n $timeout(function () {\r\n var element = $window.document.getElementById(id);\r\n if (element) {\r\n element.focus();\r\n /*\r\n if (element.setSelectionRange) {\r\n element.setSelectionRange(0, 0);\r\n } else if (element.createTextRange) {\r\n var range = element.createTextRange();\r\n range.moveStart('character', 0);\r\n range.select();\r\n }\r\n */\r\n }\r\n });\r\n }\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').directive('apTimeFrame',\r\n ['$q', 'ListService', 'FormsService', 'FormsId',\r\n function ($q, ListService, FormsService, FormsId) {\r\n 'use strict';\r\n\r\n return {\r\n restrict: 'E',\r\n templateUrl: '/forms/views/directives/apTimeFrame.html',\r\n scope: {\r\n // Use '@' for one way binding. String value is returned.\r\n // Use '=' for two way binding. An object is returned.\r\n // Use '&' for a method.\r\n timeFrameId: '=timeFrameId',\r\n timeFrameAnswer: '=timeFrameAnswer',\r\n timeFrameSelectedCallback: '&timeFrameSelectedCallback',\r\n disabled: '=?'\r\n },\r\n // use link - use jquery to get a reference to the parent form tag. then, save reference to $scope.\r\n // link 4th param $error\r\n require: '^form',\r\n link: function(scope, element, attrs, formCtrl) {\r\n scope.formRef = formCtrl;\r\n },\r\n controller: function($scope) {\r\n $scope.tfInputCtrlId = 'tfInput_' + $scope.timeFrameId;\r\n $scope.calInputCtrlId = 'calInput_' + $scope.timeFrameId;\r\n $scope.tfSelCtrlId = 'tfSel_' + $scope.timeFrameId;\r\n\r\n if ($scope.timeFrameAnswer.OnsetTimeFrameId === FormsId.TimeFrameId.Clear) {\r\n $scope.timeFrameAnswer.OnsetTimeFrameId = '';\r\n }\r\n if ($scope.timeFrameAnswer.OnsetTimeFrameValue !== '') {\r\n $scope.timeFrameAnswer.OnsetTimeFrameValue = parseInt($scope.timeFrameAnswer.OnsetTimeFrameValue);\r\n }\r\n\r\n $scope.timeFrameInputIsVisible = FormsService.timeFrameInputIsVisible($scope.timeFrameAnswer.OnsetTimeFrameId);\r\n $scope.calendarInputIsVisible = FormsService.calendarInputIsVisible($scope.timeFrameAnswer.OnsetTimeFrameId);\r\n\r\n $scope.datePickerModel = {\r\n showDatePicker: false\r\n };\r\n\r\n $scope.minDate = moment().subtract(100, 'year');\r\n $scope.maxDate = moment();\r\n\r\n\r\n function loadView() {\r\n var timeFramesPromise = ListService.getList('timeframes', $scope, 'timeFrameTypes');\r\n\r\n $q.all([timeFramesPromise]).then(function () {\r\n _.remove($scope.timeFrameTypes, {Name: '_'});\r\n _.remove($scope.timeFrameTypes, {Name: 'Clear'});\r\n\r\n var timeFrameEntryClear = {\r\n TimeFrameId : FormsId.TimeFrameId.Clear,\r\n Name: '--- Clear Selection ---',\r\n Notes: '',\r\n DefaultValue: '',\r\n UseBirthDate: false,\r\n AddToDate: false,\r\n TimespanUnitType: 0,\r\n TimespanUnitTypeName: '',\r\n DisplayOrder: -1\r\n };\r\n $scope.timeFrameTypes.unshift(timeFrameEntryClear);\r\n });\r\n }\r\n loadView();\r\n\r\n\r\n $scope.datePickerChanged = function datePickerChanged() {\r\n $scope.datePickerModel.showDatePicker = false;\r\n };\r\n\r\n\r\n $scope.timeFrameTypeChanged = function timeFrameTypeChanged() {\r\n if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Clear) {\r\n // --- Clear Selection ---\r\n $scope.timeFrameAnswer.OnsetTimeFrameId = '';\r\n $scope.timeFrameAnswer.OnsetTimeFrameValue = '';\r\n $scope.timeFrameAnswer.OnsetTimeFrameDate = '';\r\n $scope.timeFrameAnswer.OnsetTimeFrameAnswer = '';\r\n $scope.timeFrameInputIsVisible = false;\r\n $scope.calendarInputIsVisible = false;\r\n $scope.datePickerModel.showDatePicker = false;\r\n\r\n $scope.timeFrameSelectedCallback({\r\n timeFrameId: $scope.timeFrameId,\r\n onsetTimeFrameId: $scope.timeFrameAnswer.OnsetTimeFrameId\r\n });\r\n\r\n return;\r\n }\r\n\r\n $scope.timeFrameAnswer.OnsetTimeFrameAnswer = '';\r\n var timeFrameItem = _.find($scope.timeFrameTypes, {TimeFrameId: $scope.timeFrameAnswer.OnsetTimeFrameId});\r\n if (timeFrameItem) {\r\n $scope.timeFrameAnswer.OnsetTimeFrameAnswer = timeFrameItem.Name;\r\n }\r\n\r\n if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Calendar) {\r\n $scope.timeFrameAnswer.OnsetTimeFrameValue = '';\r\n $scope.timeFrameAnswer.OnsetTimeFrameDate = '';\r\n $scope.timeFrameInputIsVisible = false;\r\n $scope.calendarInputIsVisible = true;\r\n $scope.datePickerModel.showDatePicker = true;\r\n\r\n $scope.timeFrameSelectedCallback({\r\n timeFrameId: $scope.timeFrameId,\r\n onsetTimeFrameId: $scope.timeFrameAnswer.OnsetTimeFrameId\r\n });\r\n\r\n return;\r\n }\r\n\r\n $scope.calendarInputIsVisible = false;\r\n $scope.datePickerModel.showDatePicker = false;\r\n\r\n var isTimeFrameInputVisible = true;\r\n\r\n if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.DaysAgo) {\r\n isTimeFrameInputVisible = true;\r\n }\r\n else if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.WeeksAgo) {\r\n isTimeFrameInputVisible = true;\r\n }\r\n else if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.MonthsAgo) {\r\n isTimeFrameInputVisible = true;\r\n }\r\n else if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.YearsAgo) {\r\n isTimeFrameInputVisible = true;\r\n }\r\n else if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Childhood) {\r\n isTimeFrameInputVisible = false;\r\n }\r\n else if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Teenager) {\r\n isTimeFrameInputVisible = false;\r\n }\r\n else if ($scope.timeFrameAnswer.OnsetTimeFrameId.toUpperCase() === FormsId.TimeFrameId.Birth) {\r\n isTimeFrameInputVisible = false;\r\n }\r\n\r\n $scope.timeFrameAnswer.OnsetTimeFrameValue = '';\r\n $scope.timeFrameAnswer.OnsetTimeFrameDate = '';\r\n $scope.timeFrameInputIsVisible = isTimeFrameInputVisible;\r\n\r\n $scope.timeFrameSelectedCallback({\r\n timeFrameId: $scope.timeFrameId,\r\n onsetTimeFrameId: $scope.timeFrameAnswer.OnsetTimeFrameId\r\n });\r\n };\r\n\r\n }\r\n };\r\n }\r\n ]\r\n);","angular.module('forms').factory('FormsRepository',\r\n ['AprimaRestangular', function (AprimaRestangular) {\r\n 'use strict';\r\n\r\n function getAssignedQuestionnaires(userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/questionnaires-assigned').get();\r\n }\r\n\r\n function getQuestionnaireDetails(userId, relSurveyPatientId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/questionnaire-view-details/' + relSurveyPatientId).get();\r\n }\r\n\r\n function getPatientQuestionnaire(userId, relSurveyPatientId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId + '/questionnaire/' + relSurveyPatientId).get();\r\n }\r\n\r\n function putPatientQuestionnaire(patientQuestionnaireDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular\r\n .one('patients/' + patientQuestionnaireDto.PatientId + '/questionnaire/' + patientQuestionnaireDto.RelSurveyPatientId)\r\n .customPUT(patientQuestionnaireDto);\r\n }\r\n\r\n function getAssignedPracticeForms(userId, searchCriteriaDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('patients/' + userId).customGET('forms', searchCriteriaDto);\r\n }\r\n\r\n\r\n function getPracticeFormAttachment(patientId, attachmentId, relPracticeFormPatientId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?relPracticeFormPatientId=' + relPracticeFormPatientId;\r\n return restangular.one('patients/' + patientId + '/forms-attachment/' + attachmentId + queryString).get();\r\n }\r\n\r\n\r\n function getPracticeFormImage(patientId, attachmentId, relPracticeFormPatientId, requestSettings) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?relPracticeFormPatientId=' + relPracticeFormPatientId + '&height=' + requestSettings.height + '&width=' + requestSettings.width + '&page=' + requestSettings.page;\r\n return restangular.one('patients/' + patientId + '/forms-attachment/' + attachmentId + queryString).get();\r\n }\r\n\r\n // [Route(\"api/patient/v1/patients/{patientId:guid}/forms-attachment/{attachmentId:guid}/update-download-date\"/)]\r\n function updatePracticeFormDownloadDate(patientId, attachmentId, updateDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular\r\n .one('patients/' + patientId + '/forms-attachment/' + attachmentId + '/update-download-date')\r\n .customPUT(updateDto);\r\n }\r\n\r\n //[Route(\"api/patient/v1/patients/{patientId:guid}/forms-attachment/{attachmentId:guid}/update-upload-date\")]\r\n function updatePracticeFormUploadDate(patientId, attachmentId, updateDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular\r\n .one('patients/' + patientId + '/forms-attachment/' + attachmentId + '/update-upload-date')\r\n .customPUT(updateDto);\r\n }\r\n\r\n\r\n //[Route(\"api/patient/v1/patients/{patientId:guid}/forms-attachment/{attachmentId:guid}/create-approval\")]\r\n function createApprovalMessage(patientId, model) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular\r\n .one('patients/' + patientId + '/forms-attachment/create-approval')\r\n .customPOST(model);\r\n }\r\n\r\n\r\n return {\r\n getAssignedQuestionnaires: getAssignedQuestionnaires,\r\n getPatientQuestionnaire: getPatientQuestionnaire,\r\n getQuestionnaireDetails: getQuestionnaireDetails,\r\n putPatientQuestionnaire: putPatientQuestionnaire,\r\n getAssignedPracticeForms: getAssignedPracticeForms,\r\n getPracticeFormAttachment: getPracticeFormAttachment,\r\n updatePracticeFormDownloadDate: updatePracticeFormDownloadDate,\r\n updatePracticeFormUploadDate: updatePracticeFormUploadDate,\r\n getPracticeFormImage: getPracticeFormImage,\r\n createApprovalMessage : createApprovalMessage\r\n };\r\n\r\n }]);","angular.module('forms').factory('FormsService',\r\n ['FormsId', 'storage',\r\n function (FormsId, storage) {\r\n 'use strict';\r\n\r\n var completedForm = {\r\n Form: {Id: '', Name: ''},\r\n Patient: {Id: ''}\r\n };\r\n\r\n function timeFrameInputIsVisible(timeFrameId) {\r\n if (timeFrameId && timeFrameId.toUpperCase() === FormsId.TimeFrameId.DaysAgo) {\r\n return true;\r\n }\r\n if (timeFrameId && timeFrameId.toUpperCase() === FormsId.TimeFrameId.WeeksAgo) {\r\n return true;\r\n }\r\n if (timeFrameId && timeFrameId.toUpperCase() === FormsId.TimeFrameId.MonthsAgo) {\r\n return true;\r\n }\r\n if (timeFrameId && timeFrameId.toUpperCase() === FormsId.TimeFrameId.YearsAgo) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function calendarInputIsVisible(timeFrameId) {\r\n if (timeFrameId.toUpperCase() === FormsId.TimeFrameId.Calendar) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n function cacheCompletedForm(cacheForm) {\r\n completedForm.Form.Id = cacheForm.Form.Id;\r\n completedForm.Form.Name = cacheForm.Form.Name;\r\n completedForm.Patient.Id = cacheForm.Patient.Id;\r\n }\r\n\r\n function clearCompletedForm() {\r\n completedForm.Form.Id = '';\r\n completedForm.Form.Name = '';\r\n completedForm.Patient.Id = '';\r\n }\r\n\r\n function getCompletedForm() {\r\n return completedForm;\r\n }\r\n\r\n function getNewProblemHistoryAnswer(problemHistoryAnswerId, historyGroupId, diseaseId, name) {\r\n var problemHistoryAnswer = {\r\n CameFromPatientChart: false,\r\n ProblemHistoryAnswerId: problemHistoryAnswerId,\r\n HistoryGroupId: historyGroupId,\r\n DiseaseId: diseaseId,\r\n DiseaseName: name,\r\n Selected: false,\r\n CauseOfDeath: false,\r\n Denies: false,\r\n OnsetTimeFrame: {\r\n OnsetTimeFrameId: '',\r\n OnsetTimeFrameValue: '',\r\n OnsetTimeFrameDate: '',\r\n OnsetTimeFrameAnswer: ''\r\n }\r\n };\r\n\r\n return problemHistoryAnswer;\r\n }\r\n\r\n function getNewFamilyHistoryAnswer() {\r\n var familyHistoryAnswer = {\r\n CameFromPatientChart: false,\r\n RelationshipId: '',\r\n RelationshipName: '',\r\n IsRelationshipMaternal: '',\r\n IsRelationshipPaternal: '',\r\n IsRelationshipUnknown: '',\r\n FirstName: '',\r\n LastName: '',\r\n BirthDateTimeFrame: {\r\n OnsetTimeFrameId: '',\r\n OnsetTimeFrameValue: '',\r\n OnsetTimeFrameDate: ''\r\n },\r\n DeathDateTimeFrame: {\r\n OnsetTimeFrameId: '',\r\n OnsetTimeFrameValue: '',\r\n OnsetTimeFrameDate: ''\r\n },\r\n NoKnownDiseases: false,\r\n ProblemHistoryAnswers: []\r\n };\r\n\r\n return familyHistoryAnswer;\r\n }\r\n\r\n function getNewImmunizationHistoryAnswer(isAdultCard, isPediatricCard, vaccineCard) {\r\n var immunizationCard = {\r\n IsAdultCard: isAdultCard,\r\n IsPediatricCard: isPediatricCard,\r\n ImmunizationAnswers: []\r\n };\r\n\r\n if (vaccineCard) {\r\n immunizationCard.VaccineAdminId = vaccineCard.VaccineAdminId;\r\n immunizationCard.VaccineAdminName = vaccineCard.Name;\r\n immunizationCard.Inactive = vaccineCard.Inactive;\r\n\r\n if (vaccineCard.PatientImmunizationCardItems) {\r\n _.forEach(vaccineCard.PatientImmunizationCardItems, function (vaccineItem) {\r\n var item = {\r\n VaccineAdminItemId: vaccineItem.VaccineAdminItemId,\r\n VaccineId: vaccineItem.VaccineId,\r\n VaccineName: vaccineItem.PatientImmunization.Name,\r\n VaccineInactive: vaccineItem.PatientImmunization.Inactive,\r\n TypeofVaccineId: vaccineItem.TypeofVaccineId,\r\n DisplayOrder: vaccineItem.DisplayOrder,\r\n Inactive: vaccineItem.Inactive,\r\n Selected: false,\r\n OnsetTimeFrame: {\r\n OnsetTimeFrameId: '',\r\n OnsetTimeFrameValue: '',\r\n OnsetTimeFrameDate: ''\r\n },\r\n VaccineAdminIdVaccineAdminItemId: vaccineCard.VaccineAdminId + '_' + vaccineItem.VaccineAdminItemId\r\n };\r\n immunizationCard.ImmunizationAnswers.push(item);\r\n });\r\n }\r\n }\r\n\r\n return immunizationCard;\r\n }\r\n\r\n function removeLocalStorageKeys(startsWith) {\r\n if (startsWith.length === 0) {\r\n return;\r\n }\r\n\r\n var len = startsWith.length;\r\n _.forEach(storage.getKeys(), function(key) {\r\n if (key.substring(0, len) === startsWith) {\r\n storage.remove(key);\r\n }\r\n });\r\n }\r\n\r\n return {\r\n getCompletedForm: getCompletedForm,\r\n cacheCompletedForm: cacheCompletedForm,\r\n clearCompletedForm: clearCompletedForm,\r\n timeFrameInputIsVisible: timeFrameInputIsVisible,\r\n calendarInputIsVisible: calendarInputIsVisible,\r\n getNewProblemHistoryAnswer: getNewProblemHistoryAnswer,\r\n getNewFamilyHistoryAnswer: getNewFamilyHistoryAnswer,\r\n getNewImmunizationHistoryAnswer: getNewImmunizationHistoryAnswer,\r\n removeLocalStorageKeys: removeLocalStorageKeys\r\n };\r\n\r\n }]);","angular.module('billing', [\r\n //third party\r\n 'angularLocalStorage',\r\n 'gettext',\r\n 'headroom',\r\n 'lodash',\r\n 'ngAnimate',\r\n 'ngTouch',\r\n 'ngMessages',\r\n 'restangular',\r\n 'toaster',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n 'apEasyScroller',\r\n\r\n 'aprima-core',\r\n 'aprima-bridge',\r\n 'aprima-config',\r\n 'aprima-legacy-common',\r\n 'aprima-provider-api',\r\n 'aprima-patient-api',\r\n 'aprima-utils'\r\n]);","angular.module('billing').config(['AppRoutesProvider', '$stateProvider',\r\n function (AppRoutesProvider, $stateProvider) {\r\n 'use strict';\r\n\r\n var portalSettings = { toolbarItem: 'billing' };\r\n\r\n var appRoutes = {\r\n 'billing': {\r\n state: 'navigationBilling',\r\n route: '/navigationBilling',\r\n portalSettings: portalSettings\r\n },\r\n 'paymentOptions': {\r\n state: 'paymentOptions',\r\n route: '/paymentOptions/:amount/:merchantId?financialCenterUid',\r\n portalSettings: portalSettings\r\n },\r\n 'paymentFromConsent': {\r\n state: 'paymentOptions.paymentFromConsent',\r\n route: '/paymentFromConsent/:consentId',\r\n portalSettings: portalSettings\r\n },\r\n 'paymentFromNewCard': {\r\n state: 'paymentOptions.paymentFromNewCard',\r\n route: '/paymentFromNewCard',\r\n portalSettings: portalSettings\r\n },\r\n 'transactionComplete': {\r\n state: 'transactionComplete',\r\n route: '/transactionComplete/',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true,\r\n hideFooter: true\r\n }\r\n },\r\n 'paymentSummary': {\r\n state: 'paymentSummary',\r\n route: '/paymentSummary/:txId',\r\n portalSettings: portalSettings\r\n },\r\n //statements only routes//\r\n 'paymentStatementsOnly': {\r\n state: 'paymentStatementsOnly',\r\n route: '/paymentStatementsOnly',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true,\r\n hideFooter: false\r\n }\r\n },\r\n 'paymentFromNewCardStatementsOnly': {\r\n state: 'paymentOptionsStatementsOnly.paymentFromNewCardStatementsOnly',\r\n route: '/paymentFromNewCardStatementsOnly',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true,\r\n hideFooter: false\r\n }\r\n },\r\n 'paymentOptionsStatementsOnly': {\r\n state: 'paymentOptionsStatementsOnly',\r\n route: '/paymentOptionsStatementsOnly/:amount/:merchantId?financialCenterUid',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true,\r\n hideFooter: false\r\n }\r\n },\r\n 'paymentFromConsentStatementsOnly': {\r\n state: 'paymentOptionsStatementsOnly.paymentFromConsentStatementsOnly',\r\n route: '/paymentFromConsentStatementsOnly/:consentId',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true,\r\n hideFooter: false\r\n }\r\n },\r\n 'paymentSummaryStatementsOnly': {\r\n state: 'paymentSummaryStatementsOnly',\r\n route: '/paymentSummaryStatementsOnly/:txId',\r\n portalSettings: {\r\n hideHeader: true,\r\n hideToolbar: true,\r\n hideFooter: false\r\n }\r\n }\r\n };\r\n\r\n AppRoutesProvider.setupAppRoutes(appRoutes);\r\n\r\n $stateProvider\r\n .state(appRoutes.billing.state, {\r\n url: appRoutes.billing.route,\r\n templateUrl: '/billing/views/billing.html',\r\n controller: 'BillingCtrl',\r\n description: '/Billing',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Billing'); }\r\n }\r\n })\r\n .state(appRoutes.paymentOptions.state, {\r\n url: appRoutes.paymentOptions.route,\r\n templateUrl: '/billing/views/paymentOptions.html',\r\n controller: 'PaymentOptionsCtrl',\r\n description: '/Billing',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Make A Payment'); }\r\n }\r\n })\r\n .state(appRoutes.paymentFromConsent.state, {\r\n url: appRoutes.paymentFromConsent.route,\r\n templateUrl: '/billing/views/partials/paymentFromConsent.html',\r\n controller: 'PaymentFromConsentCtrl',\r\n description: '/Billing'\r\n })\r\n .state(appRoutes.paymentFromNewCard.state, {\r\n url: appRoutes.paymentFromNewCard.route,\r\n templateUrl: '/billing/views/partials/paymentFromNewCard.html',\r\n controller: 'PaymentFromNewCardCtrl',\r\n description: '/Billing'\r\n })\r\n .state(appRoutes.transactionComplete.state, {\r\n url: appRoutes.transactionComplete.route,\r\n templateUrl: '/billing/views/transactionComplete.html',\r\n controller: 'TransactionCompleteCtrl',\r\n description: '/Billing'\r\n })\r\n .state(appRoutes.paymentSummary.state, {\r\n url: appRoutes.paymentSummary.route,\r\n templateUrl: '/billing/views/paymentSummary.html',\r\n controller: 'PaymentSummaryCtrl',\r\n description: '/Billing',\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Make A Payment'); }\r\n }\r\n })\r\n ///statements only routes///\r\n .state(appRoutes.paymentSummaryStatementsOnly.state, {\r\n url: appRoutes.paymentSummaryStatementsOnly.route,\r\n templateUrl: '/billing/views/paymentSummary.html',\r\n controller: 'PaymentSummaryCtrl',\r\n description: '/Billing',\r\n alternativeLoginRoute : true,\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Make A Payment'); }\r\n }\r\n })\r\n .state(appRoutes.paymentStatementsOnly.state, {\r\n url: appRoutes.paymentStatementsOnly.route,\r\n templateUrl: '/billing/views/paymentStatementsOnly.html',\r\n controller: 'BillingCtrl',\r\n description: '/Billing',\r\n alternativeLoginRoute : true\r\n })\r\n .state(appRoutes.paymentFromNewCardStatementsOnly.state, {\r\n url: appRoutes.paymentFromNewCardStatementsOnly.route,\r\n templateUrl: '/billing/views/partials/paymentFromNewCard.html',\r\n controller: 'PaymentFromNewCardCtrl',\r\n description: '/Billing',\r\n alternativeLoginRoute : true\r\n })\r\n .state(appRoutes.paymentOptionsStatementsOnly.state, {\r\n url: appRoutes.paymentOptionsStatementsOnly.route,\r\n templateUrl: '/billing/views/paymentOptions.html',\r\n controller: 'PaymentOptionsCtrl',\r\n description: '/Billing',\r\n alternativeLoginRoute : true,\r\n resolve: {\r\n $title: function (gettextCatalog) { return gettextCatalog.getString('Make A Payment'); }\r\n }\r\n })\r\n .state(appRoutes.paymentFromConsentStatementsOnly.state, {\r\n url: appRoutes.paymentFromConsentStatementsOnly.route,\r\n templateUrl: '/billing/views/partials/paymentFromConsent.html',\r\n controller: 'PaymentFromConsentCtrl',\r\n description: '/Billing',\r\n alternativeLoginRoute : true\r\n })\r\n ;\r\n }]);","angular.module('billing').run(['$templateCache', function($templateCache) {\n 'use strict';\r\n\r\n $templateCache.put('/billing/views/billing.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'This information is associated to you (' + loginUser.fullName + ') as a responsible party.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Total Responsible Party Balance' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Total Responsible Party Balance' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::model.PersonBalanceAll | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'You have a card on file:' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.ConsentAnnual.CardType}} {{model.ConsentAnnual.ExpDate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" Financial Centers\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" Statement Balances\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{balance.FinancialCenterName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{balance.Balance | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'You have a card on file:' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.ConsentAnnual.CardType}} {{model.ConsentAnnual.ExpDate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Pending Payments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'No pending payments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::payment.LastName}}, {{::payment.FirstName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::payment.SourceOfPayment}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::payment.Amount | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Reports' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'No ledger found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Statement History' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'No statements found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::statement.FinancialCenterName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::statement.Balance | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"  \\r\" +\r\n \"\\n\" +\r\n \" {{::'View Statement' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Unavailable' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the patient billing could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s billing.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/modals/confirmPaymentModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"

{{::'Payment Summary' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{consentAnnual.CardType}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{consentAnnual.Mask}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{consentAnnual.ExpDate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{chargeAmount | currency}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Submit Payment' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/modals/ledgerModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{'Ledger' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Unable to view? Download ' | translate}}{{'here.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/modals/receiptModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Error generating receipt.' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/modals/statementModal.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{'Statement' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Unable to view? Download ' | translate}}{{'here.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/partials/paymentFromConsent.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Invalid amount' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{'Amount exceeds remaining amount or per charge limit' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Cancel' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"An error has occurred and make a payment could not be loaded.\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"You do not have access to make a payment online.\\\"| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/partials/paymentFromNewCard.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"An error has occurred and the page could not be loaded.\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{\\\"You do not have access to this page.\\\"| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/paymentOptions.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Make A Payment' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Statement' | translate}} : \\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t

{{::model.PersonBalanceAll | currency}}

\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t{{::'Pending Payments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t{{'No pending payments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::payment.LastName}}, {{::payment.FirstName}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::payment.SourceOfPayment}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::payment.Amount | currency}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \" {{\\\"An error has occurred and billing could not be loaded.\\\" | translate}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \" {{\\\"You do not have access to billing.\\\"| translate}}\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t\\t\\r\" +\r\n \"\\n\" +\r\n \"\\t\\t
\\r\" +\r\n \"\\n\" +\r\n \"\\t
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/paymentStatementsOnly.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{::'Statements' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'You have a card on file:' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{model.ConsentAnnual.CardType}} {{model.ConsentAnnual.ExpDate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \" {{::'Balances' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" {{::'Total Balance' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::model.PersonBalanceAll | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{balance.FinancialCenterName}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{balance.Balance | currency}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
{{::'You have a card on file:' | translate}}
\\r\" +\r\n \"\\n\" +\r\n \"
{{model.ConsentAnnual.CardType}} {{model.ConsentAnnual.ExpDate}}
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{::'Pending Payments' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'No pending payments' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::payment.LastName}}, {{::payment.FirstName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::payment.SourceOfPayment}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::payment.Amount | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{::'Statement History' | translate}}

\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'No statements found' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::statement.FinancialCenterName}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{'Unavailable' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::statement.Balance | currency}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/paymentSummary.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Your payment has been submitted.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{:: 'Your pending payments can be viewed from the main Billing page.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Done' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'Print' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'An error has occurred and the confirmation page could not be loaded.' | translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \" {{::'You do not have access to this patient\\\\'s appointments.'| translate}}\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\r\n\r\n $templateCache.put('/billing/views/transactionComplete.html',\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \" {{::'Transaction Complete' | translate}}\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"

{{'You will be redirected shortly...'| translate}}

\\r\" +\r\n \"\\n\" +\r\n \" \\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\\r\" +\r\n \"\\n\" +\r\n \"
\"\r\n );\r\n\n}]);\n","angular.module('billing').controller('BillingCtrl',\r\n [ '$scope', 'BillingRepository', 'PatientPortalStorageRepository', 'BillingService', 'TransitionManager', '$uibModal', 'aprgettext', '$state', 'LocalStorageRepository', 'LogOffService', 'AppRoutes', 'toaster', '$q', 'BrowserService',\r\n function ( $scope, BillingRepository, PatientPortalStorageRepository, BillingService, TransitionManager, $modal, gettext, $state, LocalStorageRepository, LogOffService, AppRoutes, toaster, $q, BrowserService)\r\n {\r\n 'use strict';\r\n\r\n $scope.loginUser = PatientPortalStorageRepository.getLoginUser();\r\n $scope.loadingPaymentHistory = true;\r\n $scope.loadingBillingAccount = true;\r\n $scope.loadingReceipt = true;\r\n $scope.loadingStatementHistory = true;\r\n $scope.viewMakeAPaymentFeature = true;\r\n $scope.viewLedgerFeature = true;\r\n $scope.viewStatementFeature = true;\r\n $scope.modalPrint = false;\r\n $scope.model = {\r\n Date: '',\r\n PersonBalanceAll: '',\r\n DepositByFinancialCenterEnabled: false,\r\n MerchantIdByFinancialCenterEnabled: false,\r\n DefaultMerchantId: '',\r\n FinancialCenterBalances: [],\r\n ShowMultipleFinancialCenters: false,\r\n ConsentAnnual: {\r\n Mask: '',\r\n CardType: '',\r\n ExpDate: '',\r\n ConsentId: '',\r\n RemainingInConsent: '',\r\n PerChargeLimit: ''\r\n },\r\n PaymentHistory: [],\r\n StatementHistory: [],\r\n ReceiptHtml: '',\r\n ActiveTxId: '',\r\n };\r\n\r\n function loadPage() {\r\n $scope.loginUser = PatientPortalStorageRepository.getLoginUser();\r\n $scope.viewMakeAPaymentFeature = BillingService.getViewMakeAPaymentFeatureFlag();\r\n $scope.viewLedgerFeature = BillingService.getViewLedgerFeatureFlag();\r\n $scope.viewStatementFeature = BillingService.getViewStatementFeatureFlag();\r\n $scope.ledgerAvailable = PatientPortalStorageRepository.getIsAccountResponsiblePartyForPatient();\r\n\r\n //determine whether this is statement only\r\n $scope.statementsOnly = $state.current.alternativeLoginRoute;\r\n\r\n $scope.removeHttpError();\r\n var promises = [];\r\n if ($scope.viewStatementFeature) {\r\n promises.push(loadStatementHistory());\r\n }\r\n\r\n if ($scope.viewMakeAPaymentFeature) {\r\n promises.push(loadBillingAccount());\r\n promises.push(loadPaymentHistory());\r\n }\r\n\r\n if (!promises.length) {\r\n return;\r\n }\r\n\r\n $q.all(promises).catch(function (response) {\r\n $scope.addHttpError(response);\r\n });\r\n }\r\n\r\n function loadBillingAccount() {\r\n $scope.loadingBillingAccount = true;\r\n var requestDto = {\r\n LoginUserPatientId: $scope.loginUser.id,\r\n RemoteSessionId: $scope.loginUser.id + new Date().toLocaleDateString()\r\n };\r\n\r\n // AccountBalanceDto\r\n // decimal: PersonBalanceAll\r\n // DateTime: Date\r\n // Boolean: DepositByFinancialCenterEnabled\r\n // Boolean: MerchantIdByFinancialCenterEnabled\r\n // Int32: DefaultMerchantId\r\n // IEnumerable: FinancialCenterBalances\r\n // FinancialCenterBalanceDto\r\n // decimal: Balance\r\n // Guid: FinancialCenterUid\r\n // String: FinancialCenterName\r\n // Int32: MerchantId\r\n return BillingService\r\n .getBillingAccount(requestDto)\r\n .then(function (billingAccountDto) {\r\n $scope.model.PersonBalanceAll = billingAccountDto.PersonBalanceAll;\r\n $scope.model.Date = billingAccountDto.Date;\r\n $scope.model.ConsentAnnual = billingAccountDto.ConsentAnnual;\r\n $scope.model.DepositByFinancialCenterEnabled = billingAccountDto.DepositByFinancialCenterEnabled;\r\n $scope.model.MerchantIdByFinancialCenterEnabled = billingAccountDto.MerchantIdByFinancialCenterEnabled;\r\n $scope.model.DefaultMerchantId = billingAccountDto.DefaultMerchantId;\r\n $scope.model.FinancialCenterBalances = billingAccountDto.FinancialCenterBalances;\r\n $scope.model.ShowMultipleFinancialCenters = (!!$scope.model.FinancialCenterBalances && $scope.model.FinancialCenterBalances.length > 1);\r\n })\r\n .finally(function () {\r\n $scope.loadingBillingAccount = false;\r\n });\r\n }\r\n\r\n function loadPaymentHistory() {\r\n $scope.loadingPaymentHistory = true;\r\n var requestDto = {\r\n LoginUserPatientId: $scope.loginUser.id,\r\n RemoteSessionId: $scope.loginUser.id + new Date().toLocaleDateString()\r\n };\r\n\r\n return BillingRepository\r\n .getPaymentHistory(requestDto)\r\n .then(function (paymentHistoryArray) {\r\n if (paymentHistoryArray) {\r\n $scope.model.PaymentHistory = _(paymentHistoryArray.plain()).map(function (entry) {\r\n return _.assign(entry, {Downloading : false});\r\n }).value();\r\n }\r\n })\r\n .finally(function () {\r\n $scope.loadingPaymentHistory = false;\r\n });\r\n }\r\n\r\n function loadStatementHistory() {\r\n $scope.loadingStatementHistory = true;\r\n\r\n return BillingService.getStatementHistory($scope.loginUser.id)\r\n .then(function (data) {\r\n $scope.model.StatementHistory = data;\r\n })\r\n .finally(function () {\r\n $scope.loadingStatementHistory = false;\r\n });\r\n }\r\n // , opts: {txId: data.TxId}\r\n // :amount/:merchantId/:financialCenterUid\r\n function makeSpecificOnlinePayment(balance) {\r\n if ($scope.model.ConsentAnnual && $scope.model.ConsentAnnual.CardType) {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentOptionsStatementsOnly',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({appRoute: 'paymentOptions',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }});\r\n }\r\n } else {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentFromNewCardStatementsOnly',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({\r\n appRoute: 'paymentFromNewCard',\r\n opts: {amount: balance.Balance, merchantId: balance.MerchantId, financialCenterUid: balance.FinancialCenterUid }\r\n });\r\n }\r\n }\r\n }\r\n function makeGenericOnlinePayment() {\r\n if ($scope.model.ConsentAnnual && $scope.model.ConsentAnnual.CardType) {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentOptionsStatementsOnly', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({appRoute: 'paymentOptions', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n }\r\n } else {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentFromNewCardStatementsOnly', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n } else {\r\n TransitionManager.transition({appRoute: 'paymentFromNewCard', opts: {amount: $scope.model.PersonBalanceAll, merchantId: $scope.model.DefaultMerchantId, financialCenterUid: $scope.model.FinancialCenterUid }});\r\n }\r\n }\r\n }\r\n\r\n function viewReceipt(txId) {\r\n $scope.modalPrint = true;\r\n var modalInstance = $modal.open({\r\n templateUrl: '/billing/views/modals/receiptModal.html',\r\n controller: 'ReceiptModalCtrl',\r\n resolve: {\r\n loginUserId: function () {\r\n return $scope.loginUser.id;\r\n },\r\n txId: function () {\r\n return txId;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.modalPrint = false;\r\n });\r\n }\r\n\r\n function viewStatement() {\r\n //use with pdf viewer\r\n $scope.modalPrint = true;\r\n var modalInstance = $modal.open({\r\n templateUrl: '/billing/views/modals/statementModal.html',\r\n controller: 'StatementModalCtrl',\r\n size: 'lg',\r\n resolve: {\r\n loginUser: function () {\r\n return $scope.loginUser;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.modalPrint = false;\r\n });\r\n }\r\n\r\n function viewLedger() {\r\n //use with pdf viewer\r\n $scope.modalPrint = true;\r\n var modalInstance = $modal.open({\r\n templateUrl: '/billing/views/modals/ledgerModal.html',\r\n controller: 'LedgerModalCtrl',\r\n size: 'lg',\r\n resolve: {\r\n loginUser: function () {\r\n return $scope.loginUser;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.modalPrint = false;\r\n });\r\n }\r\n\r\n function downloadLedger(documentId) {\r\n documentId = $scope.loginUser.id;\r\n return BillingRepository.getLedgerUrl(documentId)\r\n .then(function (data) {\r\n return {Data: data.Data, Extension: 'pdf', FileName: 'Ledger' + '_' + $scope.loginUser.fullName};\r\n });\r\n }\r\n\r\n function viewLedgerPdf() {\r\n $scope.modalPrint = true;\r\n\r\n var modalConfig = {\r\n Title: gettext('Ledger'),\r\n DownloadFileName: '',\r\n PatientId: $scope.loginUser.id,\r\n DocumentId: $scope.loginUser.id,\r\n DocumentLoad: getLedgerPdf,\r\n DocumentDownload: downloadLedger,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.modalPrint = false;\r\n });\r\n }\r\n\r\n function getLedgerPdf(documentId) { \r\n documentId = $scope.loginUser.id; \r\n return BillingRepository.getLedgerUrl(documentId); \r\n }\r\n\r\n function getStatementHistoryItemPdf(documentId) {\r\n return BillingRepository.getStatementHistoryItemPdf($scope.loginUser.id, documentId);\r\n }\r\n\r\n function downloadStatementHistoryItem(historyItem) {\r\n historyItem.Downloading = true;\r\n return BillingRepository.getStatementHistoryItemPdf($scope.loginUser.id, historyItem.Id)\r\n .then(function (data) {\r\n return {Data: data.Data, Extension: 'pdf', FileName: 'Statement' + '_' + $scope.loginUser.fullName};\r\n })\r\n .catch(function () {\r\n toaster.pop('error', '', gettext('An error occurred while downloading the statement'));\r\n })\r\n .finally(function () {\r\n historyItem.Downloading = false;\r\n });\r\n }\r\n\r\n function viewStatementHistoryItem(statementHistoryItem) {\r\n $scope.modalPrint = true;\r\n\r\n var modalConfig = {\r\n Title: gettext('Statement: ') + moment(statementHistoryItem.Date).format('LL'),\r\n DownloadFileName: '',\r\n PatientId: $scope.loginUser.id,\r\n DocumentId: statementHistoryItem.Id,\r\n DocumentLoad: getStatementHistoryItemPdf,\r\n DocumentDownload: getStatementHistoryItemPdf,\r\n DisableInlinePdf: !BrowserService.supportsInlinePdf(),\r\n };\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: '/app/views/viewDocumentModal.html',\r\n controller: 'ViewDocumentModalCtrl',\r\n windowClass: 'modal-full',\r\n resolve: {\r\n modalConfig: function () {\r\n return modalConfig;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n $scope.modalPrint = false;\r\n });\r\n }\r\n\r\n function logOff() {\r\n // var statementId = LocalStorageRepository.getStatementId();\r\n PatientPortalStorageRepository.removeFeatureList();\r\n LogOffService.logoff().then(function () {\r\n TransitionManager.transition({ appRoute: AppRoutes.statementslogin.state});\r\n });\r\n }\r\n\r\n $scope.viewStatement = viewStatement;\r\n $scope.viewLedger = viewLedger;\r\n $scope.viewLedgerPdf = viewLedgerPdf;\r\n $scope.viewReceipt = viewReceipt;\r\n $scope.makeSpecificOnlinePayment = makeSpecificOnlinePayment;\r\n $scope.makeGenericOnlinePayment = makeGenericOnlinePayment;\r\n $scope.viewStatementHistoryItem = viewStatementHistoryItem;\r\n $scope.downloadStatementHistoryItem = downloadStatementHistoryItem;\r\n $scope.logOff = logOff;\r\n loadPage();\r\n }\r\n ]\r\n);\r\n\r\n","angular.module('billing').controller('PaymentFromConsentCtrl',\r\n ['$scope', '$state','$stateParams', 'BillingRepository', 'PatientPortalStorageRepository', 'BillingService', 'toaster', 'aprgettext', 'TransitionManager', '$uibModal',\r\n function ($scope, $state, $stateParams, BillingRepository, PatientPortalStorageRepository, BillingService, toaster, gettext, TransitionManager, $modal) {\r\n\r\n 'use strict';\r\n\r\n var loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n $scope.loadingPaymentHistory = true;\r\n $scope.loadingBillingAccount = true;\r\n $scope.submitPaymentLoading = false;\r\n $scope.responsiblePartyBilling = [];\r\n $scope.chargeRegEx = /^\\d*[.]?(\\d{0,2})?$/;\r\n $scope.payment = {\r\n HasCardOnFile: false,\r\n ChargeAmount: '',\r\n PersonBalanceAll: '',\r\n ConsentAnnual: null\r\n };\r\n\r\n $scope.statementsOnly = getState();\r\n\r\n function getState()\r\n {\r\n return $state.current.alternativeLoginRoute;\r\n }\r\n\r\n function loadPage() {\r\n loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n loadBillingAccount();\r\n }\r\n\r\n function loadBillingAccount() {\r\n $scope.loadingBillingAccount = true;\r\n $scope.removeHttpError();\r\n var requestDto = {\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString()\r\n };\r\n\r\n BillingService\r\n .getBillingAccount(requestDto)\r\n .then(function (billingAccountDto) {\r\n $scope.payment.PersonBalanceAll = billingAccountDto.PersonBalanceAll;\r\n if (billingAccountDto.ConsentAnnual) {\r\n $scope.payment.ConsentAnnual = billingAccountDto.ConsentAnnual;\r\n if (parseFloat($scope.payment.ConsentAnnual.PerChargeLimit) < parseFloat($scope.payment.ConsentAnnual.RemainingInConsent)) {\r\n $scope.maxPaymentAmount = $scope.payment.ConsentAnnual.PerChargeLimit;\r\n } else {\r\n $scope.maxPaymentAmount = $scope.payment.ConsentAnnual.RemainingInConsent;\r\n }\r\n $scope.payment.HasCardOnFile = true;\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingBillingAccount = false;\r\n });\r\n }\r\n\r\n function submit() {\r\n if ($scope.paymentFromConsentForm.$invalid) {\r\n return;\r\n }\r\n\r\n $scope.modalPrint = true;\r\n var modalInstance = $modal.open({\r\n templateUrl: '/billing/views/modals/confirmPaymentModal.html',\r\n controller: 'ConfirmPaymentModalCtrl',\r\n resolve: {\r\n consentAnnual: function () {\r\n return $scope.payment.ConsentAnnual;\r\n },\r\n chargeAmount: function () {\r\n return $scope.payment.ChargeAmount;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (result) {\r\n if (result === 'accept') {\r\n postPayment();\r\n }\r\n });\r\n }\r\n\r\n function postPayment() {\r\n $scope.submitPaymentLoading = true;\r\n var consentAnnualRequestDto = {\r\n ConsentAnnualId: $stateParams.consentId,\r\n PaymentAmount: $scope.payment.ChargeAmount,\r\n ApplicationSubmittingPayment: '1', //enum SourceOfPayments.PatientPortal\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString(),\r\n FinancialCenter: $stateParams.financialCenterUid,\r\n };\r\n\r\n BillingRepository.postConsentAnnualPayment(consentAnnualRequestDto)\r\n .then(function (data) {\r\n $scope.statementsOnly = getState();\r\n if($scope.statementsOnly){\r\n TransitionManager.transition({appRoute: 'paymentSummaryStatementsOnly', opts: {txId: data.TxId}});\r\n }\r\n else {\r\n TransitionManager.transition({appRoute: 'paymentSummary', opts: {txId: data.TxId}});\r\n }\r\n })\r\n .catch(function (response) {\r\n toaster.pop('error', '', gettext('An error occurred while submitting the payment'));\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.submitPaymentLoading = false;\r\n });\r\n }\r\n\r\n $scope.postPayment = postPayment;\r\n $scope.submit = submit;\r\n loadPage();\r\n }\r\n ]);","angular.module('billing').controller('PaymentFromNewCardCtrl',\r\n ['$scope','$state', '$stateParams', '$location', 'BillingRepository', 'PatientPortalStorageRepository', 'BillingService', '$sce', 'TransitionManager', 'toaster', 'aprgettext',\r\n function ($scope, $state, $stateParams, $location, BillingRepository, PatientPortalStorageRepository, BillingService, $sce, TransitionManager, toaster, gettext) {\r\n\r\n 'use strict';\r\n\r\n var loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n $scope.loadingBillingAccount = true;\r\n $scope.model = {\r\n HasCardOnFile: false,\r\n PersonBalanceAll: $stateParams.amount,\r\n FinancialCenterGuid: $stateParams.financialCenterUid,\r\n MerchantId: $stateParams.merchantId,\r\n OneTimePaymentUrl: '',\r\n RedirectUrl: '',\r\n ConsentAnnual: {\r\n Mask: '',\r\n CardType: '',\r\n ExpDate: '',\r\n ConsentId: '',\r\n RemainingInConsent: '',\r\n PerChargeLimit: ''\r\n }\r\n };\r\n\r\n $scope.statementsOnly = getState();\r\n\r\n function getState()\r\n {\r\n return $state.current.alternativeLoginRoute;\r\n }\r\n function loadPage() {\r\n loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n loadBillingAccount();\r\n }\r\n\r\n function loadBillingAccount() {\r\n $scope.loadingBillingAccount = true;\r\n $scope.removeHttpError();\r\n var requestDto = {\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: ''\r\n };\r\n\r\n BillingService\r\n .getBillingAccount(requestDto)\r\n .then(function (billingAccountDto) {\r\n if (billingAccountDto.ConsentAnnual) {\r\n $scope.model.ConsentAnnual = billingAccountDto.ConsentAnnual;\r\n $scope.model.HasCardOnFile = true;\r\n }\r\n loadOneTimePayment();\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingBillingAccount = false;\r\n });\r\n }\r\n\r\n function loadOneTimePayment() {\r\n $scope.loadingUrl = true;\r\n\r\n var absPath = $location.absUrl(),\r\n partial = $location.path(),\r\n newPartial = '/transactionComplete/';\r\n var absPathSplit = absPath.split('?')[0];\r\n var redirectUrl = absPathSplit.replace(partial, newPartial);\r\n var oneTimePaymentRequestDto = {\r\n Amount: $scope.model.PersonBalanceAll,\r\n RedirectUrl: redirectUrl,\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString(),\r\n FinancialCenterGuid: $scope.model.FinancialCenterGuid,\r\n MerchantId: $scope.model.MerchantId\r\n };\r\n\r\n BillingRepository\r\n .getOneTimePaymentUrl(oneTimePaymentRequestDto)\r\n .then(function (url) {\r\n if (url) {\r\n $scope.model.OneTimePaymentUrl = $sce.trustAsResourceUrl(url);\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingUrl = false;\r\n });\r\n }\r\n\r\n function redirectUrlPostBack(url) {\r\n\r\n var applyPaymentRequestDto = {\r\n PaymentResponseString: url,\r\n LoginUserPatientId: loginUserId,\r\n ApplicationSubmittingPayment: '1', //enum SourceOfPayments.PatientPortal\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString(),\r\n FinancialCenterGuid: $scope.model.FinancialCenterGuid\r\n };\r\n BillingRepository\r\n .postApplyPayment(applyPaymentRequestDto)\r\n .then(function (data) {\r\n $scope.statementsOnly = getState();\r\n if (data.IsCanceled) {\r\n toaster.pop('warn', '', gettext('Payment has been canceled.'));\r\n if($scope.statementsOnly)\r\n {\r\n TransitionManager.transition({appRoute: 'paymentStatementsOnly'});\r\n }\r\n else{\r\n TransitionManager.transition({appRoute: 'billing'});\r\n }\r\n } else {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({appRoute: 'paymentSummaryStatementsOnly', opts: {txId: data.TxId}});\r\n }\r\n else{\r\n TransitionManager.transition({appRoute: 'paymentSummary', opts: {txId: data.TxId}});\r\n }\r\n }\r\n\r\n })\r\n .catch(function (response) {\r\n toaster.pop('error', '', gettext('An error occurred while submitting the payment'));\r\n $scope.addHttpError(response);\r\n });\r\n }\r\n\r\n $scope.redirectUrlPostBack = redirectUrlPostBack;\r\n loadPage();\r\n }\r\n ]\r\n);"," angular.module('billing').controller('PaymentOptionsCtrl',\r\n ['$scope','$state', '$stateParams', 'PatientPortalStorageRepository', 'BillingRepository', 'BillingService', 'TransitionManager', 'aprgettext',\r\n function ($scope, $state, $stateParams, PatientPortalStorageRepository, BillingRepository, BillingService, TransitionManager, gettext) {\r\n\r\n 'use strict';\r\n\r\n var loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n $scope.loadingBillingAccount = true;\r\n $scope.paymentMethodSelect = null;\r\n $scope.viewMakeAPaymentFeature = true;\r\n $scope.model = {\r\n Date: '',\r\n HasCardOnFile: false,\r\n PaymentMethodSelect: '',\r\n PersonBalanceAll: '',\r\n ConsentAnnual: null,\r\n PaymentHistory: [],\r\n };\r\n $scope.PaymentMethodList = [\r\n {\r\n Name: gettext('Use A Different Card'),\r\n ConsentId: '0'\r\n }\r\n ];\r\n $scope.model.PaymentMethodSelect = $scope.PaymentMethodList[0];\r\n $scope.statementsOnly = getState();\r\n\r\n function getState()\r\n {\r\n return $state.current.alternativeLoginRoute;\r\n }\r\n\r\n\r\n function loadPage() {\r\n loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n loadBillingAccount();\r\n loadPaymentHistory();\r\n }\r\n\r\n function loadPaymentHistory() {\r\n $scope.loadingPaymentHistory = true;\r\n var requestDto = {\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString()\r\n };\r\n\r\n return BillingRepository\r\n .getPaymentHistory(requestDto)\r\n .then(function (paymentHistoryArray) {\r\n if (paymentHistoryArray) {\r\n $scope.model.PaymentHistory = _(paymentHistoryArray.plain()).map(function (entry) {\r\n return _.assign(entry, {Downloading : false});\r\n }).value();\r\n }\r\n })\r\n .finally(function () {\r\n $scope.loadingPaymentHistory = false;\r\n });\r\n }\r\n\r\n function loadBillingAccount() {\r\n $scope.loadingBillingAccount = true;\r\n $scope.removeHttpError();\r\n\r\n var requestDto = {\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString()\r\n };\r\n\r\n BillingService\r\n .getBillingAccount(requestDto)\r\n .then(function (billingAccountDto) {\r\n $scope.model.PersonBalanceAll = $stateParams.amount;\r\n if (billingAccountDto.ConsentAnnual && billingAccountDto.ConsentAnnual.CardType) {\r\n $scope.model.ConsentAnnual = billingAccountDto.ConsentAnnual;\r\n $scope.PaymentMethodList = [\r\n {\r\n Name: $scope.model.ConsentAnnual.CardType + ' ' + $scope.model.ConsentAnnual.Mask + ' ' + $scope.model.ConsentAnnual.ExpDate,\r\n ConsentId: $scope.model.ConsentAnnual.ConsentId\r\n },\r\n {\r\n Name: gettext('Use A Different Card'),\r\n ConsentId: '0'\r\n }\r\n ];\r\n $scope.model.PaymentMethodSelect = null;\r\n $scope.model.HasCardOnFile = true;\r\n $scope.model.Date = billingAccountDto.Date;\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loadingBillingAccount = false;\r\n });\r\n }\r\n\r\n function paymentMethodSelected() {\r\n $scope.statementsOnly = getState();\r\n\r\n if ($scope.model.PaymentMethodSelect.ConsentId && $scope.model.PaymentMethodSelect.ConsentId === '0') {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({\r\n appRoute: 'paymentFromNewCardStatementsOnly',\r\n opts: {amount: $scope.model.PersonBalanceAll}\r\n });\r\n }\r\n else{\r\n TransitionManager.transition({appRoute: 'paymentFromNewCard'});\r\n }\r\n }\r\n else if ($scope.model.ConsentAnnual) {\r\n if($scope.statementsOnly) {\r\n TransitionManager.transition({\r\n appRoute: 'paymentFromConsentStatementsOnly',\r\n opts: {consentId: $scope.model.ConsentAnnual.ConsentId}\r\n });\r\n }\r\n else {\r\n TransitionManager.transition({\r\n appRoute: 'paymentFromConsent',\r\n opts: {consentId: $scope.model.ConsentAnnual.ConsentId}\r\n });\r\n }\r\n }\r\n }\r\n\r\n $scope.paymentMethodSelected = paymentMethodSelected;\r\n $scope.loadPaymentHistory = loadPaymentHistory;\r\n loadPage();\r\n }\r\n ]\r\n);","angular.module('billing').controller('PaymentSummaryCtrl',\r\n ['$scope','$state','$window', '$stateParams', '$sce', 'TransitionManager', 'PatientPortalStorageRepository', 'BillingService',\r\n function ($scope,$state, $window, $stateParams, $sce, TransitionManager, PatientPortalStorageRepository, BillingService) {\r\n 'use strict';\r\n\r\n var txId = $stateParams.txId;\r\n var loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n $scope.loading = true;\r\n $scope.model = {\r\n ReceiptHtml: ''\r\n };\r\n\r\n $scope.statementsOnly = getState();\r\n\r\n function getState()\r\n {\r\n return $state.current.alternativeLoginRoute;\r\n }\r\n\r\n function loadPaymentResult() {\r\n $scope.loading = true;\r\n $scope.removeHttpError();\r\n\r\n loginUserId = PatientPortalStorageRepository.getLoginUser().id;\r\n var receiptRequestDto = {\r\n TxId: txId,\r\n RecipientEnumText: 'CUST',\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString()\r\n };\r\n\r\n BillingService.getReceiptHtml(receiptRequestDto)\r\n .then(function (data) {\r\n if (data.ReceiptHtml) {\r\n $scope.model.ReceiptHtml = $sce.trustAsHtml(data.ReceiptHtml);\r\n } else {\r\n $scope.addHttpError('Receipt is null.');\r\n }\r\n })\r\n .catch(function (response) {\r\n $scope.addHttpError(response);\r\n })\r\n .finally(function () {\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n function done() {\r\n if($scope.statementsOnly)\r\n {\r\n TransitionManager.transition({appRoute: 'paymentStatementsOnly'});\r\n }\r\n else{\r\n TransitionManager.transition({appRoute: 'billing'});\r\n }\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n $scope.done = done;\r\n $scope.print = print;\r\n loadPaymentResult();\r\n }]);","angular.module('billing').controller('TransactionCompleteCtrl',\r\n ['$window',\r\n function ($window) {\r\n 'use strict';\r\n\r\n // right now this is just sent to a target of the same origin as this window\r\n $window.parent.postMessage({\r\n eventName: 'tc-redirectUrl',\r\n data: $window.location.href,\r\n }, $window.location.origin);\r\n\r\n }]);","angular.module('billing').controller('ConfirmPaymentModalCtrl',\r\n ['$scope', '$uibModalInstance', 'consentAnnual', 'chargeAmount',\r\n function ($scope, $modalInstance, consentAnnual, chargeAmount) {\r\n 'use strict';\r\n\r\n $scope.consentAnnual = consentAnnual;\r\n $scope.chargeAmount = chargeAmount;\r\n function accept() {\r\n $modalInstance.close('accept');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.accept = accept;\r\n $scope.cancel = cancel;\r\n }]);\r\n","angular.module('billing').controller('LedgerModalCtrl',\r\n ['$scope', '$uibModalInstance', '$sce', '$window', 'BillingRepository', 'loginUser',\r\n function ($scope, $modalInstance, $sce, $window, BillingRepository, loginUser) {\r\n 'use strict';\r\n\r\n $scope.loadingLedger = true;\r\n $scope.model = {\r\n LedgerData: '',\r\n PdfFileName: loginUser.fullName + '_Ledger.pdf',\r\n Base64: '',\r\n ContentType: ''\r\n };\r\n\r\n function loadLedger() {\r\n BillingRepository.getLedgerUrl(loginUser.id)\r\n .then(function (data) {\r\n if (data) {\r\n var ledgerPdf = 'data:' + data.ContentType + ';base64,' + data.ByteArray;\r\n $scope.model.LedgerData = $sce.trustAsResourceUrl(ledgerPdf);\r\n $scope.model.ByteArray = data.ByteArray;\r\n $scope.model.ContentType = data.ContentType;\r\n }\r\n })\r\n .finally(function () {\r\n $scope.loadingLedger = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n $scope.print = print;\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n\r\n loadLedger();\r\n }]);\r\n","angular.module('billing').controller('ReceiptModalCtrl',\r\n ['$scope', '$uibModalInstance', '$window', 'BillingService', '$sce', 'loginUserId', 'txId',\r\n function ($scope, $modalInstance, $window, BillingService, $sce, loginUserId, txId) {\r\n 'use strict';\r\n\r\n $scope.loadingReceipt = true;\r\n $scope.model = {\r\n ReceiptHtml: ''\r\n };\r\n\r\n function loadReceipt() {\r\n var receiptRequestDto = {\r\n TxId: txId,\r\n RecipientEnumText: 'CUST',\r\n LoginUserPatientId: loginUserId,\r\n RemoteSessionId: loginUserId + new Date().toLocaleDateString()\r\n };\r\n\r\n BillingService.getReceiptHtml(receiptRequestDto)\r\n .then(function (data) {\r\n if (data) {\r\n $scope.model.ReceiptHtml = $sce.trustAsHtml(data.ReceiptHtml);\r\n }\r\n })\r\n .finally(function () {\r\n $scope.loadingReceipt = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n function print() {\r\n $window.print();\r\n }\r\n\r\n $scope.print = print;\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n\r\n loadReceipt();\r\n }]);\r\n","angular.module('billing').controller('StatementModalCtrl',\r\n ['$scope', '$uibModalInstance', '$sce', '$window', 'BillingRepository', 'loginUser',\r\n function ($scope, $modalInstance, $sce, $window, BillingRepository, loginUser) {\r\n 'use strict';\r\n\r\n $scope.loadingStatement = true;\r\n $scope.model = {\r\n StatementData: '',\r\n PdfFileName: loginUser.fullName + '_Statement.pdf',\r\n Base64: '',\r\n ContentType: ''\r\n };\r\n\r\n function loadStatement() {\r\n BillingRepository.getStatementUrl(loginUser.id)\r\n .then(function (data) {\r\n if (data) {\r\n var statementPdf = 'data:' + data.ContentType + ';base64,' + data.ByteArray;\r\n $scope.model.StatementData = $sce.trustAsResourceUrl(statementPdf);\r\n $scope.model.ByteArray = data.ByteArray;\r\n $scope.model.ContentType = data.ContentType;\r\n }\r\n })\r\n .finally(function () {\r\n $scope.loadingStatement = false;\r\n });\r\n }\r\n\r\n function ok() {\r\n $modalInstance.close('ok');\r\n }\r\n\r\n function cancel() {\r\n $modalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.ok = ok;\r\n $scope.cancel = cancel;\r\n\r\n loadStatement();\r\n }]);\r\n","angular.module('billing').factory('BillingRepository',\r\n ['AprimaRestangular', function (AprimaRestangular) {\r\n 'use strict';\r\n\r\n function getBillingAccount(billingRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + billingRequestDto.LoginUserPatientId + '/account').get(billingRequestDto);\r\n }\r\n\r\n function getOneTimePaymentUrl(oneTimePaymentUrlRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/one-time-payment-url').get(oneTimePaymentUrlRequestDto);\r\n }\r\n\r\n function getPaymentHistory(billingRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + billingRequestDto.LoginUserPatientId + '/payment-history').get(billingRequestDto);\r\n }\r\n\r\n function getReceipt(receiptRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + receiptRequestDto.LoginUserPatientId + '/receipt').get(receiptRequestDto);\r\n }\r\n\r\n function postConsentAnnualPayment(consentAnnualPaymentRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + consentAnnualPaymentRequestDto.LoginUserPatientId + '/consent-annual-payment/').customPOST(consentAnnualPaymentRequestDto);\r\n }\r\n\r\n function postApplyPayment(applyPaymentRequestDto) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + applyPaymentRequestDto.LoginUserPatientId + '/apply-aprima-payment/').customPOST(applyPaymentRequestDto);\r\n }\r\n\r\n function getStatementUrl(userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + userId + '/statement').get();\r\n }\r\n\r\n var getStatementImage = function (loginUserId, requestSettings) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?page=' + requestSettings.page + '&height=' + requestSettings.height + '&width=' + requestSettings.width;\r\n\r\n return restangular.one('billing/' + loginUserId + '/statement' + queryString).get();\r\n };\r\n\r\n function getLedgerUrl(userId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + userId + '/ledger').get();\r\n }\r\n\r\n var getLedgerImage = function (loginUserId, requestSettings) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?page=' + requestSettings.page + '&height=' + requestSettings.height + '&width=' + requestSettings.width;\r\n\r\n return restangular.one('billing/' + loginUserId + '/ledger' + queryString).get();\r\n };\r\n\r\n function getAccountBalance(userId){\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + userId + '/balance').get();\r\n }\r\n\r\n function getStatementHistory(loginUserId) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + loginUserId + '/statement-history').get();\r\n }\r\n\r\n var getStatementHistoryItemImage = function (loginUserId, statementBatchDetailUid, requestSettings) {\r\n var restangular = AprimaRestangular.get('patient');\r\n var queryString = '?page=' + requestSettings.page + '&height=' + requestSettings.height + '&width=' + requestSettings.width;\r\n\r\n return restangular.one('billing/' + loginUserId + '/statement-history/' + statementBatchDetailUid + '/' + queryString).get();\r\n };\r\n\r\n var getStatementHistoryItemPdf = function (loginUserId, statementBatchDetailUid) {\r\n var restangular = AprimaRestangular.get('patient');\r\n return restangular.one('billing/' + loginUserId + '/statement-history/' + statementBatchDetailUid).get();\r\n };\r\n\r\n return{\r\n getBillingAccount: getBillingAccount,\r\n getPaymentHistory: getPaymentHistory,\r\n getReceipt: getReceipt,\r\n postConsentAnnualPayment: postConsentAnnualPayment,\r\n postApplyPayment: postApplyPayment,\r\n getOneTimePaymentUrl: getOneTimePaymentUrl,\r\n getStatementUrl: getStatementUrl,\r\n getStatementImage: getStatementImage,\r\n getLedgerUrl: getLedgerUrl,\r\n getLedgerImage: getLedgerImage,\r\n getAccountBalance: getAccountBalance,\r\n getStatementHistory: getStatementHistory,\r\n getStatementHistoryItemImage: getStatementHistoryItemImage,\r\n getStatementHistoryItemPdf: getStatementHistoryItemPdf\r\n };\r\n }]);\r\n\r\n","angular.module('billing').factory('BillingService',\r\n ['$rootScope', 'BillingRepository', '$q', 'PatientSettingsService',\r\n function ($rootScope, BillingRepository, $q, PatientSettingsService) {\r\n 'use strict';\r\n\r\n var billingServiceUserId,\r\n accountBalance,\r\n billingAccount,\r\n statementHistory,\r\n viewMakeAPaymentFeature,\r\n viewLedgerFeature,\r\n viewStatementFeature,\r\n receiptHtml = {\r\n TxId: '',\r\n Result: ''\r\n };\r\n\r\n var featureList = PatientSettingsService.getPatientFeatures();\r\n viewMakeAPaymentFeature = featureList.MakeAPayment.IsActive;\r\n viewLedgerFeature = featureList.ViewPatientLedger.IsActive;\r\n viewStatementFeature = featureList.ViewPatientStatement.IsActive;\r\n\r\n function getViewMakeAPaymentFeatureFlag() {\r\n return viewMakeAPaymentFeature;\r\n }\r\n\r\n function getViewLedgerFeatureFlag() {\r\n return viewLedgerFeature;\r\n }\r\n\r\n function getViewStatementFeatureFlag() {\r\n return viewStatementFeature;\r\n }\r\n\r\n function getAccountBalance(userId) {\r\n //only used when MakeAPaymentFeatureFlag is disabled\r\n if (userId !== billingServiceUserId) {\r\n resetBillingService();\r\n setBillingServiceUserId(userId);\r\n }\r\n\r\n if (!accountBalance) {\r\n return BillingRepository.getAccountBalance(userId)\r\n .then(function (data) {\r\n accountBalance = data;\r\n return accountBalance;\r\n });\r\n } else {\r\n return $q.when(accountBalance);\r\n }\r\n }\r\n\r\n function getBillingAccount(requestDto) {\r\n if (requestDto.LoginUserPatientId !== billingServiceUserId) {\r\n resetBillingService();\r\n setBillingServiceUserId(requestDto.LoginUserPatientId);\r\n }\r\n\r\n if (!billingAccount) {\r\n return BillingRepository.getBillingAccount(requestDto)\r\n .then(function (data) {\r\n billingAccount = data;\r\n return billingAccount;\r\n });\r\n } else {\r\n return $q.when(billingAccount);\r\n }\r\n }\r\n\r\n function getStatementHistory(loginUserId) {\r\n if (loginUserId !== billingServiceUserId) {\r\n resetBillingService();\r\n setBillingServiceUserId(loginUserId);\r\n }\r\n\r\n if (!statementHistory) {\r\n return BillingRepository.getStatementHistory(loginUserId)\r\n .then(function (data) {\r\n statementHistory = data;\r\n return statementHistory;\r\n });\r\n } else {\r\n return $q.when(statementHistory);\r\n }\r\n }\r\n\r\n function setBillingServiceUserId(patientId) {\r\n billingServiceUserId = patientId;\r\n }\r\n\r\n function resetBillingService() {\r\n billingServiceUserId = null;\r\n billingAccount = null;\r\n accountBalance = null;\r\n statementHistory = null;\r\n }\r\n\r\n function getReceiptHtml(receiptRequestDto) {\r\n if (!receiptHtml || receiptRequestDto.TxId !== receiptHtml.TxId) {\r\n return BillingRepository.getReceipt(receiptRequestDto)\r\n .then(function (data) {\r\n receiptHtml.TxId = receiptRequestDto.TxId;\r\n receiptHtml.Result = data;\r\n return receiptHtml.Result;\r\n });\r\n } else {\r\n return $q.when(receiptHtml.Result);\r\n }\r\n }\r\n\r\n return {\r\n getAccountBalance: getAccountBalance,\r\n getBillingAccount: getBillingAccount,\r\n getStatementHistory: getStatementHistory,\r\n getReceiptHtml: getReceiptHtml,\r\n getViewMakeAPaymentFeatureFlag: getViewMakeAPaymentFeatureFlag,\r\n getViewLedgerFeatureFlag: getViewLedgerFeatureFlag,\r\n getViewStatementFeatureFlag: getViewStatementFeatureFlag\r\n };\r\n }]);","angular.module('all', ['ngPatientPortal', 'aprima-legacy-common', 'app', 'rxrefills', 'mychart', 'mymessages', 'aprima-provider-api', 'aprima-core-ui', 'aprima-patient-api', 'aprima-utils', 'myappointments', 'dashboard', 'forms', 'billing', 'account']);\r\n\r\nangular.module('all').run([ 'CustomModuleRunService', function(CustomModuleRunService) {\r\n 'use strict';\r\n CustomModuleRunService.add(\r\n [ '$rootScope', 'AppRoutes', '_', 'LogOffService', 'TransitionManager', 'Idle', '$uibModalStack', '$log','$state', '$transitions',\r\n function ($rootScope, AppRoutes, _, LogOffService, TransitionManager, Idle, $modalStack, $log, $state, $transitions) {\r\n\r\n $rootScope.hideToolbar = true;\r\n\r\n $transitions.onStart({}, function onTransitionStart(transition) {\r\n var toState = transition.targetState() || {};\r\n var toStateName = toState && toState.name() || '';\r\n var appRoute = AppRoutes.findByStateName(toStateName);\r\n $rootScope.hideToolbar = !!(appRoute && appRoute.portalSettings && appRoute.portalSettings.hideToolbar);\r\n $rootScope.hideFooter = !!(appRoute && appRoute.portalSettings && appRoute.portalSettings.hideFooter);\r\n $rootScope.loginView = !!(appRoute && appRoute.state && (appRoute.state === 'login' || appRoute.state === 'statementslogin'));\r\n if (!$rootScope.loginView){\r\n $rootScope.$broadcast('IdleStartWatch');\r\n }\r\n });\r\n \r\n $transitions.onSuccess({}, function updateTitle(transition) {\r\n var title = transition.injector().get('$title') || 'Patient Portal';\r\n document.title = title;\r\n });\r\n\r\n // ng-idle event listeners\r\n // Please see 'modules\\app\\app.js' for application timeout configuration and documentation.\r\n //\r\n // IdleTimeout - logout logic is implemented here\r\n $rootScope.$on('IdleTimeout', function() {\r\n $log.info('Idle timeout has expired. Logging client out and transitioning to login view. ' + moment().format('lll'));\r\n\r\n // Has watch() been called and is watching for idleness\r\n if (Idle.running()) {\r\n Idle.unwatch(); // stop watching for idleness\r\n }\r\n\r\n closeOpenModals();\r\n\r\n if($state.current.alternativeLoginRoute){\r\n // Call log off service and go back to login view\r\n LogOffService.logoff().then(function () {\r\n TransitionManager.transition({appRoute: AppRoutes.statementslogin.state});\r\n });\r\n }\r\n else {\r\n // Call log off service and go back to login view\r\n LogOffService.logoff().then(function () {\r\n TransitionManager.transition({appRoute: 'signout'});\r\n });\r\n }\r\n });\r\n\r\n function closeOpenModals() {\r\n // make sure any ui bootstrap modals are closed\r\n $modalStack.dismissAll();\r\n\r\n // make sure plain bootstrap modals are closed\r\n angular.element('div.modal.in[role=dialog').removeClass('fade').modal('hide');\r\n }\r\n\r\n // IdleStartWatch - startup logic is implemented here\r\n $rootScope.$on('IdleStartWatch', function() {\r\n Idle.watch(); // start watching for idleness. $broadcast() is located in LoginCtrl.js\r\n });\r\n }]);\r\n}]);\r\n","angular.module('all').config(['$urlRouterProvider', '$urlServiceProvider', 'AppRoutesProvider',\r\n function ($urlRouterProvider, $urlServiceProvider, AppRoutesProvider) {\r\n\r\n 'use strict';\r\n\r\n var appRoutes = AppRoutesProvider.getAppRoutes();\r\n\r\n $urlRouterProvider\r\n .when('', appRoutes.login.route)\r\n .when('/', appRoutes.login.route);\r\n\r\n $urlServiceProvider.deferIntercept();\r\n }\r\n]\r\n);\r\n"]}