{"version":3,"sources":["app/components/CreateContractAttorney/AddLawFirms/AddLawFirms.module.scss","app/components/ContractPage/ContractPage.module.scss","app/components/ResetPassword/ResetPassword.module.scss","app/components/InterestRatesList/InterestRatesList.module.scss","app/components/CreateContractAttorney/FinancialInformation/FinancialInformation.module.scss","app/components/EditUser/UserInfo/UserInfo.module.scss","app/components/EditContract/EditContractInfo/AddPaymentSection/AddPaymentSection.module.scss","app/components/CreateContractAttorney/CreateContractNotes/CreateContractNotes.module.scss","app/components/EditUser/CasesAndClients/CasesAndClients.module.scss","app/components/ContractHistory/ContractHistory.module.scss","app/components/UpdateInterestRate/UpdateInterestRate.module.scss","app/components/EditUser/Comments/Comments.module.scss","app/components/EditUser/EditUser.module.scss","app/components/PaymentCalc/PaymentCalc.module.scss","app/components/RatingController/RatingControllerItem/RatingControllerItem.module.scss","app/components/RatingController/RatingController.module.scss","app/components/RatingController/RatingControllerItem/EditRatingWindow/AddNewRatingPoint/AddNewRatingPoint.module.scss","app/components/UserProfile/UserProfile.module.scss","app/components/shared/AddBtn/AddBtn.module.scss","app/components/shared/DownloadBtn/DownloadBtn.module.scss","app/components/FindUser/FindUserTable/ActionMenu/ActionMenu.module.scss","app/components/PrivacyPolicy/PrivacyPolicy.module.scss","app/components/TermsAndConditions/TermsAndConditions.module.scss","app/components/EditContract/EditContractInfo/EditContractInfo.module.scss","app/components/CreateUser/CreateUser.module.scss","app/components/CreateNewInterestRate/CreateNewInterestRate.module.scss","app/actions/actions.ts","app/constants/constants.ts","app/scripts/getCookie.ts","app/customHooks/actionsWithApi.js","app/components/CreateContractAttorney/AttorneyInformation/AttorneyInformation.tsx","app/components/CreateContractAttorney/CaseInformation/CaseInformation.tsx","app/components/CreateContractAttorney/FinancialInformation/FinancialInformation.tsx","app/scripts/dateFormatting.ts","app/components/CreateContractAttorney/Plaintiff/Plaintiff.tsx","app/components/CreateContractAttorney/AddLawFirms/AddLawFirms.tsx","app/scripts/registrationValidate.ts","app/components/CreateContractAttorney/CreateContractNotes/CreateContractNotes.tsx","app/components/shared/Preloader/Preloader.tsx","app/components/CreateContractAttorney/CreateContractAttorney.tsx","app/components/shared/AddBtn/AddBtn.tsx","app/components/EditUser/CasesAndClients/CasesAndClients.tsx","app/components/EditUser/Comments/Comments.tsx","app/components/EditUser/LawFirms/EditLawFirmInfo/EditLawFirmInfo.tsx","app/components/EditUser/LawFirms/LawFirms.tsx","app/components/EditUser/UserInfo/UserInfo.tsx","app/components/EditUser/EditUser.tsx","app/scripts/deleteCookie.ts","app/components/Login/Login.tsx","app/components/Registration/Registration.tsx","app/components/shared/Header/AdaptiveMenu/AdaptiveMenu.tsx","images/main-logo.png","app/components/shared/Header/HeaderLogo/HeaderLogo.tsx","app/components/shared/Header/HeaderMenu/HeaderMenu.tsx","app/components/shared/Header/UserProfileMenu/UserProfileMenu.tsx","app/components/shared/Header/Header.tsx","app/components/ContractPage/PreSettlement/RequestAdditionalFundingWindow/RequestAdditionalFundingWindow.tsx","app/components/ContractPage/PreSettlement/PreSettlement.tsx","app/components/ContractPage/ContractInfo/ChildContractsList/ChildContractsList.tsx","app/components/ContractPage/ContractInfo/ContractInfo.tsx","app/components/shared/Statistics/Statistics.tsx","app/components/ContractPage/StatisticsInfo/StatisticsInfo.tsx","app/components/ContractPage/GeneralInfo/GeneralInfo.tsx","app/components/shared/RatingTable/RatingTable.tsx","app/components/ContractPage/Ratings/Ratings.tsx","app/scripts/dataURLToFile.js","app/scripts/downloadBase64File.ts","app/components/shared/DownloadBtn/DownloadBtn.tsx","app/components/ContractPage/ResponsibleUsers/ResponsibleUsers.tsx","app/scripts/toBase64.ts","app/components/ContractPage/ContractComments/ContractComments.tsx","app/components/ContractPage/ContractPage.tsx","app/components/UserProfile/UserProfileLawFirms/UserProfileLawFirms.tsx","app/components/UserProfile/UserContracts/UserContracts.tsx","app/components/UserProfile/UserProfile.tsx","app/components/shared/CasesTable/CasesTable.tsx","app/components/ContractHistory/ContractHistory.tsx","app/components/FindUser/FindUserTable/ActionMenu/ActionMenu.tsx","app/components/FindUser/FindUserTable/FindUserTable.tsx","app/components/FindUser/FindUser.tsx","app/components/ResetPassword/ResetPassword.tsx","app/scripts/getTokenAndEmailFromLink.ts","app/components/ResetPasswordSuccess/ResetPasswordSuccess.tsx","app/components/shared/Footer/Footer.tsx","app/components/Error404Page/Error404Page.tsx","app/scripts/dateToString.ts","app/components/Reports/ExportReport/ExportReport.tsx","app/components/Reports/ExportRawData/RawDataSelect/RawDataSelect.tsx","app/components/Reports/ExportRawData/ExportRawData.tsx","app/components/Reports/Reports.tsx","app/components/shared/InformationPage/InformationPage.tsx","app/components/UsersAdminPage/UsersAdminTable/UsersAdminTable.tsx","app/components/UsersAdminPage/UsersAdminPage.tsx","app/components/EditContract/EditContractInfo/AmountConfirmationWindow.tsx","app/components/EditContract/EditContractInfo/AddFundingSection/AddFundingSection.tsx","app/components/EditContract/EditContractInfo/AddPaymentSection/AddPaymentSection.tsx","app/components/EditContract/EditContractInfo/ReducedAmount/ReducedAmount.tsx","app/components/EditContract/EditContractInfo/AddApprovedAmount/AddApprovedAmount.tsx","app/components/EditContract/EditContractInfo/RequestedAmounts/RequestedAmounts.tsx","app/components/EditContract/EditContractInfo/EditContractInfo.tsx","app/components/EditContract/StatusHistory/StatusHistory.tsx","app/components/EditContract/AssociatedAttorneys/AddAssociatedAttorney/AddAssociatedAttorney.tsx","app/scripts/uploadDocument.ts","app/components/EditContract/AssociatedAttorneys/DownloadAttorneyAgreement/DownloadAttorneyAgreement.tsx","app/components/EditContract/AssociatedAttorneys/UploadAttorneyAgreement/UploadAttorneyAgreement.tsx","app/components/EditContract/AssociatedAttorneys/AssociatedAttorneys.tsx","app/components/EditContract/AssociatedClient/DownloadClientContract/DownloadClientContract.tsx","app/components/EditContract/AssociatedClient/UploadClientContract/UploadClientContract.tsx","app/components/EditContract/AssociatedClient/AssociatedClient.tsx","app/components/EditContract/AssociatedLawFirm/AssociatedLawFirm.tsx","app/components/EditContract/EditContractCaseInfo/EditContractCaseInfo.tsx","app/components/EditContract/EditContract.tsx","app/components/CreateUser/CreateUserData/CreateUserData.tsx","app/components/CreateUser/CreateUserAddFirm/CreateUserAddFirm.tsx","app/components/CreateUser/CreateUserClients/CreateUserClients.tsx","app/components/CreateUser/CreateUserAddComment/CreateUserAddComment.tsx","app/components/CreateUser/CreateUser.tsx","app/components/AdminPage/AdminPage.tsx","app/components/PaymentCalc/PaymentCalcResult/PaymentCalcResult.tsx","app/components/PaymentCalc/PaymentCalc.tsx","app/components/InterestRatesList/InterestRatesList.tsx","app/components/CreateNewInterestRate/PreSettlementRates/PreSettlementRates.tsx","app/components/CreateNewInterestRate/PostSettlementRates/PostSettlementRates.tsx","app/customHooks/getStates.ts","app/components/CreateNewInterestRate/CreateNewInterestRate.tsx","app/components/shared/PrivateRoute/PrivateRoute.tsx","app/components/AllContracts/AllContracts.tsx","app/components/UpdateInterestRate/UpdateSettlementDataWindow/UpdateSettlementDataWindow.tsx","app/components/UpdateInterestRate/UpdateInterestRate.tsx","app/components/shared/GeneralNotification/GeneralNotification.tsx","app/components/SecurityConfirm/SecurityConfirm.tsx","app/components/RatingController/RatingControllerItem/RatingItemTableHead/RatingItemTableHead.tsx","app/components/RatingController/RatingControllerItem/RatingControllerItem.tsx","app/components/RatingController/RatingControllerItem/EditRatingWindow/AddNewRatingPoint/AddNewRatingPoint.tsx","app/components/RatingController/RatingControllerItem/EditRatingWindow/EditRatingWindow.tsx","app/components/RatingController/RatingController.tsx","app/components/PrivacyPolicy/PrivacyPolicy.tsx","app/components/TermsAndConditions/TermsAndConditions.tsx","app/components/Home/Home.tsx","app/components/MyLawFirmsContracts/MyLawFirmsContracts.tsx","App.tsx","app/reducers/createContractAttorneyReducer.ts","app/reducers/registrationReducer.ts","app/reducers/loginReducer.ts","app/reducers/editUserReducer.ts","app/reducers/editContractReducer.ts","app/reducers/generalNotificationReducer.ts","app/reducers/informationPageReducer.ts","app/reducers/createUserReducer.ts","app/reducers/createPlaintiffReducer.ts","app/reducers/createAttorneyReducer.ts","app/reducers/statesReducer.ts","app/reducers/rootReducers.ts","app/store.ts","serviceWorker.ts","index.tsx","app/components/Reports/Reports.module.scss","app/components/shared/Statistics/Statistics.module.scss","app/components/shared/Header/Header.module.scss","app/components/ContractPage/ContractInfo/ContractInfo.module.scss","app/components/EditContract/AssociatedAttorneys/AssociatedAttorneys.module.scss","app/components/ContractPage/ContractComments/ContractComments.module.scss","app/components/EditUser/LawFirms/LawFirms.module.scss","app/components/Registration/Registration.module.scss","app/components/EditContract/AssociatedClient/AssociatedClient.module.scss","app/components/ContractPage/StatisticsInfo/StatisticsInfo.module.scss","app/components/AdminPage/AdminPage.module.scss","app/components/FindUser/FindUser.module.scss","app/components/CreateContractAttorney/CaseInformation/CaseInformation.module.scss","app/components/CreateContractAttorney/AttorneyInformation/AttorneyInformation.module.scss","app/components/shared/Header/AdaptiveMenu/AdaptiveMenu.module.scss","app/components/ContractPage/ResponsibleUsers/ResponsibleUsers.module.scss","app/components/EditContract/AssociatedLawFirm/AssociatedLawFirm.module.scss","app/components/MyLawFirmsContracts/MyLawFirmsContracts.module.scss","app/components/CreateContractAttorney/Plaintiff/Plaintiff.module.scss","app/components/Login/Login.module.scss","app/components/ContractPage/PreSettlement/PreSettlement.module.scss","app/components/ContractPage/Ratings/Ratings.module.scss","app/components/shared/Footer/Footer.module.scss","app/components/shared/InformationPage/InformationPage.module.scss","app/components/EditContract/StatusHistory/StatusHistory.module.scss","app/components/CreateContractAttorney/CreateContractAttorney.module.scss","app/components/ContractPage/GeneralInfo/GeneralInfo.module.scss","app/components/ResetPasswordSuccess/ResetPasswordSuccess.module.scss","app/components/EditContract/EditContractCaseInfo/EditContractCaseInfo.module.scss","app/components/AllContracts/AllContracts.module.scss"],"names":["module","exports","setAllStatesToStore","states","type","payload","handlerForRegistrationInputs","formData","handlerForCreateContractAttorneyInputs","setDataForEditUser","userInfoData","toggleNotification","isOpen","setNotificationInfo","info","setContentToInfoPage","setDataForCreateUser","addExistingUserCreateContractPage","userId","addExistingAttorneyCreateContractPage","attorneyId","addExistingLawFirmForCreateContractPage","lawFirmId","createUserCreateContractPage","user","addStatusForEditContract","contractsStatus","dateChange","statusValue","URL_FOR_API","SUPPORT_EMAIL","getCookie","name","matches","document","cookie","match","RegExp","replace","decodeURIComponent","undefined","actionsWithApi","method","url","data","a","token","axios","JSON","stringify","headers","withCredentials","response","Error","Message","message","useStyles","makeStyles","theme","createStyles","formControl","width","marginBottom","marginRight","breakpoints","down","lawFirmNameInput","textarea","marginTop","minHeight","borderRadius","padding","autocomplete","chooseLawFirmBtn","marginLeft","AttorneyInformation","props","currentUserType","classes","dispatch","useDispatch","useSelector","state","useState","showAttorneyInfoSection","setShowAttorneyInfoSection","attorneys","setAttorneys","searchQuery","setSearchQuery","loaderIsActive","setLoaderIsActive","searchTimerRef","useRef","getAttorneys","length","severity","console","log","useEffect","setLawFrimIdSelectedAttorney","handleChange","e","value","target","selectedAttorney","setSelectedAttorney","setIdSelectedAttorney","selectAttorney","isNaN","lawFirms","lawFirmUserId","createdAttorneySection","setCreatedAttorneySection","handleAutocomplete","current","clearTimeout","setTimeout","className","s","Autocomplete","options","loading","getOptionLabel","option","firstName","toString","lastName","renderInput","params","TextField","label","variant","onChange","fullWidth","required","reason","parseInt","id","Button","color","onClick","setStateForCreateAttorneySection","email","size","phoneNumber","createdAttorneyEmailIsValid","userWithCurrentEmailIsAlreadyExist","style","FormControl","InputLabel","Select","labelId","map","MenuItem","key","lawFrimIdSelectedAttorney","mediumInput","fontSize","alert","maxWidth","longInputLabel","invalidEmailLabel","CaseInformation","Date","toISOString","estimatedDuration","setEstimatedDuration","dateAccident","setDateAccident","handlerForInputs","InputLabelProps","utils","DateFnsUtils","disableToolbar","format","margin","date","error","handleEstimatedDuration","contractType","Alert","icon","handleDateAccident","caseManagerEmailIsValid","rows","placeholder","multiline","formControl2Type","longSelectLabel","FinancialInformation","createContractAttorney","fundingRecipientEmailIsValid","dateFormatting","srcDate","cutDate","split","splice","join","year","slice","display","formControlCreateUser","Plaintiff","showPlaintiffInfoSection","setShowPlaintiffInfoSection","clients","setClients","getClients","selectedClient","setSelectedClient","setIdSelectedClient","selectClient","clientId","createdPlaintiffSection","setCreatedPlaintiffSection","href","setStateForCreatePlaintiffSection","dateOfBirth","streetAddress","city","zipCode","createdPlaintiffEmailIsValid","lawFirmNameField","AddLawFirms","createdLawFirmSection","setCreatedLawFirmSection","idSelectedLawFirm","setIdSelectedLawFirm","setLawFirms","getLawFirms","searchValue","setStateForCreateLawFirmSection","setNameCreatedLawFirm","setStateCreatedLawFirm","validatePassword","password","confirmPassword","passwordsMatch","hasNum","hasUpperCase","hasLowerCase","hasNumbers","test","i","toUpperCase","validateEmail","String","toLowerCase","validateZipCode","c","tempZipCode","CreateContractNotes","Preloader","textAlign","CircularProgress","Scroll","require","resize","mainTopAlert","CreateContractAttorney","scroller","fundingRecipientEmail","recipientCheck","caseManagerEmail","caseManager","createdPlaintiffEmail","createdPlaintiffData","createdAttorneyEmail","createdAttorneyfData","contractData","createdPlaintiffId","contractClientDTO","createdAttorneyData","createdAttorneyId","contractAttorneyDTO","setFundingRecipientEmailIsValid","setCreatedPlaintiffEmailIsValid","setCreatedAttorneyEmailIsValid","setCaseManagerEmailIsValid","createPlaintiffSectionIsOpen","createAttorneySectionIsOpen","createLawFirmSectionIsOpen","nameCreatedLawFirm","stateCreatedLawFirm","plaintiffWithCurrentEmailIsAlreadyExist","setPlaintiffWithCurrentEmailIsAlreadyExist","attorneyWithCurrentEmailIsAlreadyExist","setAttorneyWithCurrentEmailIsAlreadyExist","currentUserId","actionsIfPropIsNotValid","setPropIsNotValid","anchor","scrollTo","duration","delay","smooth","handlerInputChange","commentText","amount","addAmountRequestedCreateContractPage","validateEmails","checkPlaintiffEmailForRegistrationInSystem","checkAttorneyEmailForRegistrationInSystem","currentNewPlaintiffEmail","Promise","resolve","reject","checkEmailForRegistrationInSystem","currentNewAttorneyEmail","emailIsAlreadyRegistered","handleSubmit","preventDefault","push","contractLawFirmDTO","history","window","top","behavior","Container","AlertTitle","onSubmit","RadioGroup","row","defaultValue","FormControlLabel","control","Radio","labelPlacement","Divider","disabled","position","AddBtn","text","CasesAndClients","userData","setUserData","associatedContracts","item","caseID","client","input","dateInput","Comments","addCommentSection","setAddCommnetSection","currentDate","setCurrentDate","userNames","KeyboardButtonProps","form","flexDirection","alignItems","btnsBox","justifyContent","btn","modalWindow","left","transform","backgroundColor","palette","background","paper","changeDateFormat","sourceDate","defaultDateOfJoined","currentYear","getFullYear","currentMonth","getMonth","getDate","EditLawFirmInfo","editableLawFirmInfo","startDate","dateOfJoined","setDateOfJoined","present","isPresentLawFirm","setIsPresentLawFirm","endDate","setEndDate","fixedDateOfJoined","setHours","fixedEndDate","updatedLawFirm","editableUserId","editableLawFirmId","newDataOfLawFirm","handleCloseEditLawFirmWindow","Modal","open","openEditLawFirmWindow","onClose","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","timeout","Fade","in","Box","Typography","component","LawFirms","editingUser","editUserPage","addFirmSection","showAddFirmSection","location","useLocation","search","dateJoined","setDateJoined","handleAddFirm","selectedLawFirm","setSelectedLawFirm","selectedLawFirmName","setSelectedLawFirmName","selectedLawFirmIsPresent","setSelectedLawFirmIsPresent","addNewLawFirm","addedLawFirm","seteEditableLawFirmInfo","setOpenEditLawFirmWindow","textLawFirm","lawFirm","index","indexOfEditableLawFirm","onKeyUp","UserInfo","statusChanged","setStatusChanged","currentUsername","setCurrentUsername","userStatusChanged","setDateOfBirth","createDate","dateLogin","handler","handleDateOfBirdth","editStateHandle","website","loanLimit","banned","additionalFee","userStatus","userStatusesValue","status","editUserStatus","userType","approvedByUserId","EditUser","changedData","setDataFetched","getUserData","changeUserData","deleteCookie","cookies","eqPos","indexOf","substr","Login","postData","login","setNessecceryCookies","responseAfterLogin","loginedUserStatus","accessToken","role","userFirtsName","userLastName","reset","setUserIsLogined","userIsLogined","setUserIsLogout","userIsLogout","title","textDescription","hasInput","additionalBtn","contractSupportBtn","autoComplete","to","Registration","registration","newUserData","setConfirmPassword","setPasswordsMatch","passwordsValidate","setPasswordsValidate","emailValidate","setEmailValidate","zipCodeIsValid","setZipCodeIsValid","resultValidation","passwordsIsMatch","resultZipCodeValidation","React","birthDate","setBirthDate","handleBirthDateChange","AdaptiveMenu","anchorElNav","setAnchorElNav","handleCloseNavMenu","IconButton","event","currentTarget","Menu","anchorEl","keepMounted","Boolean","outline","userRole","currentUserStatus","HeaderLogo","src","Logo","alt","HeaderMenu","menuButton","spacing","accountBtn","border","cursor","accountLink","UserProfileMenu","setOpen","anchorRef","handleClose","contains","logout","handleListKeyDown","prevOpen","focus","ref","aria-controls","aria-haspopup","fill","Popper","transition","TransitionProps","placement","Grow","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","onKeyDown","data-name","Header","RequestAdditionalFundingWindow","setAmount","additionalFundingRequestData","contractId","handleCloseRequestAdditionalFundingWindow","setAdditionalFundingHasBeenAdded","additionalFundingHasBeenAdded","openRequestAdditionalFundingWindow","PreSettlement","setOpenRequestAdditionalFundingWindow","caseId","contractStatus","daysBeforePriceIncrease","ChildContractsList","childContracts","childContract","amountRequested","ContractInfo","finalAmount","setFinalAmount","totalDueIsVisible","setTotalDueIsVisible","getFinalAmount","totalAmountOwed","calcTotalDueVisible","additionalFundingRequestsDto","request","amountSettlement","estimatedSettlement","estimatedAdditional","amountApproved","owedAfterClosing","amountPayments","totalDue","Statistics","userStatistics","setUserStatistics","statisticsIsReady","setStatisticsIsReady","setLoanLimit","getUserStatistic","statistics","userInfo","updateStatisticsToggle","Math","round","lifeTimeRequested","openContractsCount","openContractAmount","openAmountAverage","openDurationAverage","closedContractsCount","lifetimeProjectedAmountClosed","closedProjectedAmountAverage","closedRealAmountAverage","closedDurationAverage","lifeTimeReceivedAverage","lifeTimePayments","lifeTimePaidAverage","lifeTimeLost","roi","toFixed","StatisticsInfo","clientStatisticsIsVisble","setClientStatisticsIsVisble","attorneyStatisticsIsVisble","setAttorneyStatisticsIsVisble","lawFirmStatisticsIsVisble","setLawFirmStatisticsIsVisble","updateStatisticsForClientToggle","setUpdateStatisticsForClientToggle","updateStatisticsForAttorneyToggle","setUpdateStatisticsForAttorneyToggle","updateStatisticsForLawFirmToggle","setUpdateStatisticsForLawFirmToggle","contractClientId","setContractClientId","contractResponsibleAttorneyId","setContractResponsibleAttorneyId","contractResponsibleLawFirmId","setContractResponsibleLawFirmId","GeneralInfo","attorney","responsible","opposingInsurance","insuranceAdjuster","adjusterPhone","claimNumber","liability","propertyDamage","injuryLevel","accidentDescription","StyledTableCell","withStyles","table","head","common","black","white","body","fontWeight","TableCell","StyledTableRow","root","action","hover","TableRow","RatingTable","userRating","setUserRating","updateRatingsToggle","TableContainer","Table","TableHead","TableBody","align","avgDaysClose","avgDaysCloseRating","totalLostCases","totalLostCasesRating","pctCasesLost","pctCasesLostRating","lifetimeReceivedAverage","avgFundedPerClient","totalReducedCases","totalReducedCasesRating","pctCasesReduced","pctCasesReducedRating","pctReductionPerCase","pctReductionPerCaseRating","avgRating","Ratings","responsibleAttorneyUserId","setResponsibleAttorneyUserId","responsibleLawFirmUserId","setResponsibleLawFirmUserId","attorneyRatingIsVisble","setAttorneyRatingIsVisble","updateRatingsForAttorneyToggle","setUpdateRatingsForAttorneyToggle","lawFirmRatingIsVisble","setLawFirmRatingIsVisble","updateRatingsForLawFirmToggle","setUpdateRatingsForLawFirmToggle","downloadBase64File","mimeType","base64Content","fileName","blob","dataurl","filename","arr","mime","bstr","atob","n","u8arr","Uint8Array","charCodeAt","File","dataURLtoFile","link","createElement","appendChild","download","URL","createObjectURL","click","removeChild","DownloadBtn","ResponsibleUsers","clientName","setClientName","setClientId","responsibleAttorneyUserName","setResponsibleAttorneyUserName","responsibleLawFirmUserName","setResponsibleLawFirmUserName","userName","setUserNames","attachments","setAttachments","clientContractIndex","setClientContractIndex","attourneyAgreementIndex","setAttourneyAgreementIndex","calcFilesIndex","base64","toBase64","file","reader","FileReader","readAsDataURL","onload","result","onerror","convertFileToBase64","catch","ContractCommentsPropsType","currentUserRole","comments","setComments","setCommentText","visibleComment","setVisibleComment","attachmentInBase64","setAttachmentInBase64","attachmentMimeType","setAttachmentMimeType","attachmentFileName","setAttachmentFileName","attachmentHandle","files","addComment","newCommentData","visible","dateComment","contractComments","uploadAttachment","commentId","updatedComments","commentAttachment","documentBase64String","updatedCommentsWithAttachment","commentAttachments","clearAttachment","filter","comment","attachment","Checkbox","checked","ContractPage","preloaderForUploadPayoffStatementIsActive","setPreloaderForUploadPayoffStatementIsActive","setContractData","getContractData","downloadPayoffStatement","UserProfileLawFirms","sortedLawFirmArr","_","sort","item1","item2","startDate1","UserContracts","openLink","contracts","caseItem","scope","paidOff","UserProfile","userRatingIsVisible","setUserRatingIsVisible","userStatisticIsVisible","setUserStatisticIsVisible","lettersForProfilePicture","setLettersForProfilePicture","userContracts","setUserContracts","getUserContracts","userAvgRating","setUserAvgRating","getUserAvgRating","then","userIsActive","setUserIsActive","dateOfFirstContract","setDateOfFirstContract","j","dateOfChangeToCheckSentStatus","amountDaysWhenStatusChange","ceil","calcUserActiveProp","uploadedAvatar","setUploadedAvatar","avatarIsLoading","setAvatarIsLoading","uploadAvatar","fileInBase64","uploadAvatarData","setAvatarHasBeenDeleted","avatarHasBeenDeleted","deleteAvatar","pathname","avatar","animation","height","webSite","CasesTable","userIdFromLink","initialLoaderIsActive","setInitialLoaderIsActive","viewMoreLoaderIsActive","setViewMoreLoaderIsActive","casesArr","setCasesArr","pageNumber","setPageNumber","viewMoreBtnIsVisible","setViewMoreBtnIsVisible","getCases","trueUserId","newContractsArr","updatedContractsArr","concat","ContractHistory","handleSearchInput","menuWrapper","right","bottom","ActionMenu","userStatusArr","handleUpdateStatus","newStatus","editableUser","finalSortedData","find","updateStatusUserId","setMoreMenuIsOpen","overflowX","menuIcon","FindUserTable","setUpdateStatusUserId","moreMenuIsOpen","setAnchorEl","setFinalSortedData","getUsers","newUsersArr","updatedUsersArr","openFundTotal","totalContract","handleOpenMenu","searchField","FindUser","setUserType","registerStatus","setRegisterStatus","setName","ResetPassword","setEmail","getTokenAndEmailFromURL","searchQueryStr","searchQueriesArr","ResetPasswordSuccess","setPassword","tokenAndEmailDataFromURL","setTokenAndEmailDataFromURL","resultValidationPasswords","setResultValidationPasswords","setPasswordsIsMatch","validationIsSuccessfull","passwordsIsIdentical","buttonText","btnLink","helperText","Footer","scrollToTop","Error404Page","textDecoration","dateToString","formatNumber","num","contractTypes","contractStatuses","periodicities","select","ExportReport","period","setPeriod","setContractStatus","setContractType","fromDate","setFromDate","toDate","setToDate","createReport","reportOptions","from","reportPriority","multiple","transformOrigin","RawDataSelect","setRawData","rawData","Reports","exportRawData","exportRawDataOptions","exportPropertiesList","values","InformationPage","infoPage","inputPlaceholder","inputLabel","UsersAdminTable","UsersAdminPage","AmountConfirmationWindow","onClickApproveBtn","approveAmount","closeConfirmationWindow","button","AddFundingSection","parentContractInfo","editContract","addFundingSection","setAddFundingSection","addedAdditionalAmount","setAdedAdditionalAmount","openConfirmationWindow","setOpenConfirmationWindow","addFunding","parentContractId","setChildContractHasBeenAdded","childContractHasBeenAdded","insertRate","identifier","userDTO","AddPaymentSection","showAddPaymentSection","setShowAddPaymentSection","addedPaymentAmount","setAddedPaymentAmount","addPaymentHandle","ReducedAmount","amountReduced","addReducedAmountSection","setAddReducedAmountSection","addedReducedAmount","setAddedReducedAmount","addReducedAmount","newReducedAmount","inputProps","min","AddApprovedAmount","checkNumber","showAddApprovedAmountSection","setShowAddApprovedAmountSection","addedAmprovedAmount","setAdedAmprovedAmount","addApprovedAmount","RequestedAmounts","contractInfo","addAmountRequestedEditContractPage","additionalRequest","selectMedium","selectLarge","largeSelectLabel","EditContractInfo","finalAmountOwed","StatusHistory","showAddStatusSection","setShowAddStatusSection","addingStatus","setAddingStatus","setStatusValue","statusDate","setStatusDate","AddAssociatedAttorney","addExistingAttorney","uploadDocument","documentType","uploadDocumentData","inputStyles","zIndex","opacity","DownloadAttorneyAgreement","uploadClientContract","setContractAttachmentHasBeenUploaded","contractAttachmentHasBeenUploaded","Tooltip","arrow","base64String","textInput","uploadContractInput","UploadAttorneyAgreement","uplooadDocumentHandler","AssociatedAttorneys","addAttorneyToggle","setAddAttorneyToggle","setUserHasBeenAdded","userHasBeenAdded","calcAttourneyAgreementIndex","DownloadClientContract","uploadFileInput","UploadClientContract","AssociatedClient","calcClientContractIndex","contractCreatedDate","AssociatedLawFirm","addFirm","setAddFirm","addExistingLawFirm","caseIdFormControl","labelForDate","validateDate","month","dt","EditContractCaseInfo","TextareaAutosize","maxRows","EditContract","setContractInfo","handleInputChange","standartFormControl","minWidth","userTypeControl","formControl3","CreateUserData","dateBirdth","setDateBirdth","handleBirdthDateChange","CreateUserAddFirm","addedLawFirms","createUser","firmId","setFirmId","lawFirmName","setLawFirmName","firm","CreateUserClients","CreateUserAddComment","CreateUser","AdminPage","PaymentCalcResult","dayValuePairsParseArr","Object","entries","dayValuePairs","sleep","ms","PaymentCalc","stateIsSelected","setStateIsSelected","selectedState","setSelectedState","setAmountRequested","paymentCalcResult","setPaymentCalcResult","paymentCalcResultIsReady","setPaymentCalcResultIsReady","showResultTable","setShowResultTable","requestOptions","stateId","InterestRatesList","interestRates","setInterestRates","getInterestRates","interestRate","smallInput","PreSettlementRates","addDataRangePreSettlementSection","setAddDataRangePreSettlementSection","daysFrom","setDaysFrom","daysTo","setDaysTo","rate","setRate","updatedPreSettlementRatesArr","preSettlementRatesArr","newRate","setPreSettlementRatesArr","interestRateId","setSettlementDataHasBeenAddedToggle","settlementDataHasBeenAddedToggle","rateItem","handleOpenEditLawFirmWindow","updatePreSettlementInfo","InputProps","PostSettlementRates","addDataRangePostSettlementSection","setAddDataRangePostSettlementSection","updatedPostSettlementRatesArr","postSettlementRatesArr","setPostSettlementRatesArr","updatePostSettlementInfo","getStates","submitBtn","InterestRate","availableStatesArr","setAvailableStatesArr","selectedStateKey","setSelectedStateKey","selectedStateName","setSelectedStateName","getAllInterestRates","getAllUniqueStatesFromAllInterestRatesArr","availableStatesArrFinalResult","statesInInterestRateArr","uniqueStatesInInterestRateArr","pos","some","updatedAvailableStatesArr","setAvailableStatesArrIsReady","createNewInterestRate","newInterestRate","preSettlements","postSettlements","stateKey","stateName","choiseState","PrivateRoute","itIsAdministrator","path","render","children","AllContracts","setSearchValue","setCassesArr","aria-label","currentContractRiskRatePercent","UpdateSettlementDataWindow","settlementId","setSettlementId","editableSettlementInfo","setDefaultValues","updatedSettlementData","editableSettlementType","handleCloseUpdateSettlementDataWindow","setSettlementDataIsUpdatedToggle","settlementDataIsUpdatedToggle","openUpdateSettlementDataWindow","UpdateInterestRate","setStateName","setStateKey","getInterestRate","setEditableSettlementInfo","setEditableSettlementType","setOpenUpdateSettlementDataWindow","indexOfEditableSettlement","settlementType","elevation","GeneralNotification","notification","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","SecurityConfirm","confirmEmail","securityDataFromLink","RatingItemTableHead","ratingData","star","whiteSpace","RatingControllerItem","ratingValueInTable","setCurrentEditingRatingTitle","setCurrentEditingRatingExplainer","explainer","setCurrentEditingRatingData","setRatingType","ratingType","setEditRatingWindowIsOpen","AddNewRatingPoint","setFrom","setTo","setStar","addNewPoint","currentEditingRatingData","ratingItem","editRatingPointData","userRatingType","editingRatingType","tempEditingRatingData","step","parseFloat","modalWindowWrapp","overflowY","boxShadow","subtitle","numberOfItem","nav","EditRatingWindow","visibleEditRatingItemSectionArr","setVisibleEditRatingItemSectionArr","temp","setVisibleEditRatingItemSectionArrFunc","currentEditingRatingItemFromValue","setCurrentEditingRatingItemFromValue","currentEditingRatingItemToValue","setCurrentEditingRatingItemToValue","currentEditingRatingItemStarValue","setCurrentEditingRatingItemStarValue","currentEditingRatingItemId","setCurrentEditingRatingItemId","editRatingItemPoint","newRatingItemData","indexOfUpdatedRatingItem","findIndex","parse","setRatingUpdated","deleteRatingItemPont","ratingItemPointId","windowIsOpen","setWindowIsOpen","Grid","container","xs","lg","tempArr","handleEditRating","RatingController","currentEditingRatingTitle","currentEditingRatingExplainer","editRatingWindowIsOpen","ratingUpdated","avgTimetoClose","setAvgTimetoClose","setTotalLostCases","avgCasesLost","setAvgCasesLost","setTotalReducedCases","percentCaseWithReduction","setPercentCaseWithReduction","percentReductionPerReducedCase","setPercentReductionPerReducedCase","getRatingControllerData","PrivacyPolicy","aria-level","TermsAndConditions","Home","MyLawFirmsContracts","userLawFirmId","setUserLawFirmId","errorOccurred","setErrorOccurred","errorMessage","setErrorMessage","isQueryForFiltering","createHistory","App","setStatesToStore","exact","initialState","roleName","User","addFirmFirstName","addFirmDateOfJoined","addFirmDateEnd","amountRequestedId","amountApprovedId","amountReducedId","rootReducer","combineReducers","stateToJson","newLawFirm","newRequestedAmount","keys","editableLawFirmIndex","newApprovedAmmount","newPaymentAmmount","newComment","store","createStore","composeWithDevTools","applyMiddleware","hostname","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","unregister"],"mappings":"+FACAA,EAAOC,QAAU,CAAC,eAAe,kCAAkC,gBAAgB,mCAAmC,mBAAmB,sCAAsC,gBAAgB,mCAAmC,uBAAuB,0CAA0C,4BAA4B,+CAA+C,gCAAgC,mDAAmD,uBAAuB,4C,oBCAxdD,EAAOC,QAAU,CAAC,aAAe,mCAAmC,qBAAqB,yCAAyC,uBAAuB,2CAA2C,2BAA2B,+CAA+C,qCAAqC,yDAAyD,uBAAuB,6C,oBCAnYD,EAAOC,QAAU,CAAC,cAAgB,qCAAqC,sBAAsB,2CAA2C,yBAAyB,8CAA8C,qBAAqB,0CAA0C,sBAAsB,2CAA2C,oBAAoB,yCAAyC,qBAAqB,4C,oBCAjaD,EAAOC,QAAU,CAAC,kBAAoB,6CAA6C,0BAA0B,mDAAmD,yBAAyB,kDAAkD,yBAAyB,kDAAkD,2BAA2B,sD,oBCAjVD,EAAOC,QAAU,CAAC,4BAA4B,wDAAwD,6BAA6B,2D,oBCAnID,EAAOC,QAAU,CAAC,SAAW,2BAA2B,kBAAkB,oC,oBCA1ED,EAAOC,QAAU,CAAC,mBAAmB,4CAA4C,qBAAqB,8CAA8C,mBAAmB,8C,oBCAvKD,EAAOC,QAAU,CAAC,4BAA4B,uDAAuD,wCAAwC,mEAAmE,gCAAgC,2DAA2D,8CAA8C,2E,oBCAzVD,EAAOC,QAAU,CAAC,gBAAkB,yCAAyC,uBAAuB,8CAA8C,uBAAuB,gD,oBCAzKD,EAAOC,QAAU,CAAC,gBAAkB,yCAAyC,wBAAwB,+CAA+C,yBAAyB,gDAAgD,mCAAmC,4D,oBCAhQD,EAAOC,QAAU,CAAC,mBAAqB,+CAA+C,+BAA+B,yDAAyD,0BAA0B,sD,oBCAxMD,EAAOC,QAAU,CAAC,SAAW,2BAA2B,iBAAiB,iCAAiC,uBAAuB,yC,oBCAjID,EAAOC,QAAU,CAAC,gBAAgB,gCAAgC,qBAAqB,uC,oBCAvFD,EAAOC,QAAU,CAAC,YAAc,iCAAiC,oBAAoB,uCAAuC,mBAAmB,sCAAsC,wBAAwB,6C,oBCA7MD,EAAOC,QAAU,CAAC,qBAAuB,mDAAmD,6BAA6B,yDAAyD,2BAA2B,yD,oBCA7MD,EAAOC,QAAU,CAAC,gBAAkB,0CAA0C,wBAAwB,kD,oBCAtGD,EAAOC,QAAU,CAAC,kBAAoB,6CAA6C,0BAA0B,qD,mBCA7GD,EAAOC,QAAU,CAAC,YAAc,iCAAiC,mBAAmB,sCAAsC,mBAAmB,sCAAsC,mBAAmB,sCAAsC,uBAAuB,0CAA0C,uBAAuB,0CAA0C,qBAAqB,wCAAwC,6BAA6B,gDAAgD,wBAAwB,2CAA2C,wBAAwB,2CAA2C,8BAA8B,iDAAiD,0BAA0B,6CAA6C,0BAA0B,6CAA6C,sBAAsB,yCAAyC,0BAA0B,6CAA6C,qBAAqB,wCAAwC,yBAAyB,4CAA4C,oBAAoB,uCAAuC,2BAA2B,8CAA8C,gCAAgC,mDAAmD,wBAAwB,6C,oBCAl1CD,EAAOC,QAAU,CAAC,OAAS,yB,oBCA3BD,EAAOC,QAAU,CAAC,YAAc,mC,oBCAhCD,EAAOC,QAAU,CAAC,kBAAkB,sC,oBCApCD,EAAOC,QAAU,CAAC,cAAgB,uC,oBCAlCD,EAAOC,QAAU,CAAC,mBAAqB,iD,mBCAvCD,EAAOC,QAAU,CAAC,iBAAmB,2CAA2C,wBAAwB,gDAAgD,iCAAiC,yDAAyD,yBAAyB,iDAAiD,sBAAsB,8CAA8C,yBAAyB,iDAAiD,qBAAqB,6CAA6C,wBAAwB,gDAAgD,uBAAuB,+CAA+C,0BAA0B,kDAAkD,2BAA2B,mDAAmD,8BAA8B,sDAAsD,mCAAmC,2DAA2D,sCAAsC,8DAA8D,sBAAsB,8CAA8C,wBAAwB,gDAAgD,gCAAgC,0D,mBCAtvCD,EAAOC,QAAU,CAAC,sBAAsB,wCAAwC,oBAAoB,sCAAsC,wBAAwB,0CAA0C,oBAAoB,sCAAsC,+BAA+B,iDAAiD,0BAA0B,4CAA4C,eAAiB,mCAAmC,6BAA6B,+CAA+C,wBAAwB,0CAA0C,kBAAoB,sCAAsC,0BAA0B,4CAA4C,qBAAuB,yCAAyC,6BAA6B,+CAA+C,eAAiB,mCAAmC,sBAAsB,wCAAwC,8BAA8B,kD,yCCA1/BD,EAAOC,QAAU,CAAC,aAAe,4CAA4C,qBAAqB,kDAAkD,wBAAwB,qDAAqD,oBAAoB,iDAAiD,0BAA0B,uDAAuD,qBAAqB,kDAAkD,oBAAoB,iDAAiD,wBAAwB,qDAAqD,4BAA4B,yDAAyD,sCAAsC,mEAAmE,uCAAuC,oEAAoE,qCAAqC,kEAAkE,sCAAsC,mEAAmE,gCAAgC,+D,6OCK5lCC,EAAsB,SAACC,GAAD,MAAgC,CAC/DC,KAAM,0BACNC,QAASF,IAQAG,EAA+B,SAACC,GAAD,MAAkD,CAC1FH,KAAM,kCACNC,QAASE,IAkBAC,EAAyC,SAACD,GAAD,MAAgE,CAClHH,KAAM,8CACNC,QAASE,IAQAE,EAAqB,SAACC,GAAD,MAAgD,CAC9EN,KAAM,yBACNC,QAASK,IA2BAC,EAAqB,SAACC,GAAD,MAA8C,CAC5ER,KAAM,sBACNC,QAASO,IAQAC,EAAsB,SAACC,GAAD,MAA0D,CACzFV,KAAM,wBACNC,QAASS,IAQAC,EAAuB,SAACD,GAAD,MAA0D,CAC1FV,KAAM,2BACNC,QAASS,IAsCAE,EAAuB,SAACN,GAAD,MAAkD,CAClFN,KAAM,2BACNC,QAASK,IA0DAO,EAAoC,SAACC,GAAD,MAAmE,CAChHd,KAAM,yCACNC,QAAS,CAAEa,YAQFC,EAAwC,SAACC,GAAD,MAA2E,CAC5HhB,KAAM,6CACNC,QAAS,CAAEe,gBAQFC,EAA0C,SAACC,GAAD,MAA4E,CAC/HlB,KAAM,gDACNC,QAAS,CAAEiB,eAQFC,EAA+B,SAACC,GAAD,MAAkD,CAC1FpB,KAAM,mCACNC,QAASmB,IA0DAC,EAA2B,SAACC,EAAyBC,EAAoBT,EAAgBU,GAA9D,MAAqH,CACzJxB,KAAM,gCACNC,QAAS,CAAEqB,kBAAiBC,aAAYT,SAAQU,iBC/RvCC,EAAc,8BAIdC,EAAgB,0B,kBCJd,SAASC,EAAUC,GAC9B,IAAIC,EAAUC,SAASC,OAAOC,MAAM,IAAIC,OACpC,WAAaL,EAAKM,QAAQ,+BAAgC,QAAU,aAExE,OAAOL,EAAUM,mBAAmBN,EAAQ,SAAMO,ECDtD,IAsBeC,EAtBK,uCAAG,WAAOC,EAAQC,EAAKC,GAApB,iBAAAC,EAAA,6DACfC,EAAQf,EAAU,SADH,kBAGMgB,IAAM,CACvBL,OAAQA,EACRC,IAAKA,EACLC,KAAMA,GAAQI,KAAKC,UAAUL,GAC7BM,QAASJ,EAAQ,CACb,cAAiB,UAAYA,EAC7B,8BAA+B,IAC/B,eAAgB,mCAChB,CAAE,eAAgB,mBAAoB,OAAU,OAAQ,8BAA+B,KAC3FK,iBAAiB,IAZN,cAGXC,EAHW,yBAeRA,GAfQ,sCAiBT,IAAIC,MAAM,KAAMD,SAASR,KAAKU,SAAW,KAAMC,SAjBtC,yDAAH,0D,6ECUdC,EAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,GACdC,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfK,iBAAiB,aACbL,MAAO,IACPE,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfM,SAAU,CACNN,MAAO,OACPO,UAAW,GACXN,aAAc,GACdO,UAAW,GACXC,aAAc,GACdC,QAAS,IAEbC,aAAa,aACTX,MAAO,IACPE,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,IAGrBU,iBAAkB,CACdC,WAAY,GACZb,MAAO,UAcJ,SAASc,GAAoBC,GACxC,IAAMC,EAAkB9C,EAAU,mBAC5B+C,EAAUtB,IACVuB,EAAWC,cACb7E,EAA4B8E,aAAY,SAACC,GAAD,OAAsBA,EAAM/E,UAJA,EAKVgF,oBAAkB,GALR,mBAKjEC,EALiE,KAKxCC,EALwC,OAMtCF,mBAAc,IANwB,mBAMjEG,EANiE,KAMtDC,EANsD,OAOlCJ,mBAAiB,IAPiB,mBAOjEK,EAPiE,KAOpDC,EAPoD,OAQ5BN,oBAAkB,GARU,mBAQjEO,EARiE,KAQjDC,EARiD,KASlEC,EAAiBC,iBAA8B,MAC/CC,EAAY,uCAAG,WAAON,GAAP,eAAA3C,EAAA,2DACb2C,EAAYO,OAAS,GADR,iCAGTJ,GAAkB,GAHT,SAIYlD,EAAe,MAAOZ,EAAW,iDAA6C2D,IAJ1F,OAILpC,EAJK,OAKTmC,EAAanC,EAASR,MACtB+C,GAAkB,GANT,kDASTZ,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAClBoC,GAAkB,GAZT,gCAgBbJ,EAAa,IAhBA,0DAAH,sDAoBlBY,qBAAU,WACiB,IAAvBX,EAAYO,QAAgBnB,EAAMwB,6BAA6B,MAC/DN,EAAaN,KACd,CAACA,IAEJ,IAAMa,EAAe,SAACC,GAClB,IAAMC,EAAQD,EAAEE,OAAOD,MACjBvE,EAAOsE,EAAEE,OAAOxE,KACtB+C,EJ6MuF,CAC3F3E,KAAM,qCACNC,QI/MyC,eAAG2B,EAAOuE,MAtCqB,EAyCxBpB,qBAzCwB,mBAyCjEsB,EAzCiE,KAyC/CC,EAzC+C,OA0CpBvB,qBA1CoB,mBA0C7CwB,GA1C6C,WA2ClEC,GAAc,uCAAG,WAAOxF,GAAP,eAAAyB,EAAA,yDACdgE,MAAMzF,GADQ,wBAEfuF,EAAsBvF,GACtB2D,EAAS5D,EAAsCC,IAC/CiE,GAA2B,GAC3BN,EJ8NiE,CACzE3E,KAAM,gCIpOiB,kBAQUqC,EAAe,MAAOZ,EAAW,uBAAmBT,IAR9D,OAQPgC,EARO,OASXsD,EAAoBtD,EAASR,MAC7BQ,EAASR,KAAKkE,SAAS1D,EAASR,KAAKkE,SAASf,OAAS,GAAGgB,eACtDnC,EAAMwB,6BAA6BhD,EAASR,KAAKkE,SAAS1D,EAASR,KAAKkE,SAASf,OAAS,GAAGgB,eAXtF,kDAcXnC,EAAMwB,6BAA6B,MACnCH,QAAQC,IAAI,KAAM3C,SAfP,gCAmBfoD,EAAsB,MACtB5B,EAAS5D,EAAsC,OAC/CkE,GAA2B,GArBZ,0DAAH,sDA3CoD,GAoEZF,oBAAkB,GApEN,qBAoEjE6B,GApEiE,MAoEzCC,GApEyC,MAsElEC,GAAkB,uCAAG,WAAOX,GAAP,SAAA1D,EAAA,sDACnB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChC5B,EAAec,KAChB,KAPoB,2CAAH,sDAUxB,OACI,qCACI,0BAASe,UAAWC,IAAC,oBAArB,UACI,oBAAID,UAAWC,IAAE,6BAAjB,kCAEA,oBAAGD,UAAWC,IAAE,gCAAhB,iGAEI,uBAEwB,kBAApB1C,EACM,mJACA,MAId,sBAAKyC,UAAWC,IAAE,0CAAlB,UACI,cAACC,EAAA,EAAD,CACIC,QAASnC,GAAa,GACtBoC,QAAShC,EACTiC,eAAgB,SAACC,GAAD,OACXA,EAAOC,UAAaD,EAAOC,UAAUC,WAAa,IAAO,KACzDF,EAAOG,SAAWH,EAAOG,SAASD,WAAa,GAAK,KAEzDR,UAAWxC,EAAQN,aACnBwD,YAAa,SAACC,GAAD,OACT,cAACC,EAAA,EAAD,2BACQD,GADR,IAEIE,MAAM,YACNC,QAAQ,WACRC,SAAU,SAAA/B,GAAC,OAAIY,GAAmBZ,EAAEE,OAAOD,OAAS,KACpD+B,WAAS,EAACC,UAAWvB,OAG7BqB,SAAU,SAAC/B,EAAGC,EAAOiC,GAEb5B,GAAe6B,SAASlC,EAAQA,EAAMmC,GAAK,GAAK,KACrC,UAAXF,GAAsB5D,EAAMwB,6BAA6B,SAKhD,kBAApBvB,EAAsC,qBAAKyC,UAAWC,IAAE,oCAAlB,gBAAkE,GAEpF,kBAApB1C,EACG,cAAC8D,EAAA,EAAD,CACIP,QAAQ,YACRQ,MAAM,UACNC,QAAS,WACqB5B,GAA1B7B,EAAoD4B,IAAqDA,IACzGpC,EAAMkE,kCAAkC9B,KALhD,6BASY,MAInB5B,GAA2BqB,GACxB,sBAAKa,UAAWC,IAAE,4BAAlB,UACKd,EAAiBsC,OAAS,cAACb,EAAA,EAAD,CAAWlG,KAAK,gBAAgBsF,UAAWxC,EAAQlB,YAAa2C,MAAOE,EAAiBsC,MAAOX,QAAQ,WAAWY,KAAK,QAAQb,MAAM,UAE/J1B,EAAiBwC,aAAe,cAACf,EAAA,EAAD,CAAWlG,KAAK,gBAAgBsF,UAAWxC,EAAQlB,YAAa2C,MAAOE,EAAiBwC,YAAab,QAAQ,WAAWY,KAAK,QAAQb,MAAM,oBAInLnB,KAA2B5B,GACxB,sBAAKkC,UAAWC,IAAE,8CAAlB,UACI,cAACW,EAAA,EAAD,CAAWlG,KAAK,YAAYsF,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,aAAaE,SAAU,SAAC/B,GAAQD,EAAaC,IAAMiC,WAAUvB,KAC/J,cAACkB,EAAA,EAAD,CAAWlG,KAAK,WAAWsF,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,YAAYE,SAAU,SAAC/B,GAAQD,EAAaC,IAAMiC,WAAUvB,KAC7J,cAACkB,EAAA,EAAD,CAAWlG,KAAK,QAAQsF,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,QAAQE,SAAU,SAAC/B,GAAQD,EAAaC,IAAMiC,WAAUvB,MACnJpC,EAAMsE,8BAAgCtE,EAAMuE,oCAAuC,sBAAMC,MAAO,CAAER,MAAO,MAAOxE,UAAW,QAASN,aAAc,QAA/D,0CACrFc,EAAMuE,oCAAsC,sBAAMC,MAAO,CAAER,MAAO,MAAOxE,UAAW,QAASN,aAAc,QAA/D,+HAE7C,cAACoE,EAAA,EAAD,CAAWlG,KAAK,cAAcsF,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,eAAeE,SAAU,SAAC/B,GAAQD,EAAaC,IAAMiC,WAAUvB,KACnK,eAACqC,EAAA,EAAD,CAAajB,QAAQ,WAArB,UACI,cAACkB,EAAA,EAAD,CAAYZ,GAAG,cAAf,mBACA,cAACa,EAAA,EAAD,CAAQC,QAAQ,cAAcxH,KAAK,QAAQqG,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,IAAIgB,UAAWxC,EAAQlB,YAAa2E,WAAUvB,GAAvH,SACK7G,EAAO4F,OAAS,GAAK5F,EAAOsJ,KAAI,SAACvE,GAC9B,OACI,cAACwE,EAAA,EAAD,CAA0BnD,MAAOrB,EAAMyE,IAAvC,SAA6CzE,EAAMlD,MAApCkD,EAAMyE,mBAShD/E,EAAMgF,2BACH,0BAAStC,UAAWC,IAAE,sCAAtB,UACI,oBAAID,UAAWC,IAAE,2CAAjB,sBACA,sBAAKD,UAAWC,IAAE,kCAAlB,UACKd,EAAiBK,SAASf,OAAS,GAChC,cAACmC,EAAA,EAAD,CAAWlG,KAAK,kBAAkBsF,UAAWxC,EAAQZ,iBACjDqC,MAAOE,EAAiBK,SAASL,EAAiBK,SAASf,OAAS,GAAG8B,UACvEO,QAAQ,WAAWY,KAAK,QAAQb,MAAM,aAI9C,qBAAKb,UAAWC,IAAE,oCAAlB,gBAEA,cAACoB,EAAA,EAAD,CAAQrB,UAAWxC,EAAQL,iBAAkB2D,QAAQ,YAAYQ,MAAM,UACnEC,QAAS,WAAQjE,EAAMwB,6BAA6B,OADxD,mD,8DC1OlB5C,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfM,SAAU,CACNC,UAAW,GACXN,aAAc,IAElB+F,YAAY,aACRhG,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPiG,SAAU,KAGlBC,MAAM,aACFC,SAAU,IACVlG,aAAc,GACd8E,MAAO,UACPkB,SAAU,IACTpG,EAAMM,YAAYC,KAAK,MAAQ,CAC5B+F,SAAU,OACVF,SAAU,KAGlBG,eAAe,eACVvG,EAAMM,YAAYC,KAAK,MAAQ,CAC5B6F,SAAU,KAGlBI,kBAAmB,CACftB,MAAO,MACPxE,UAAW,QACXN,aAAc,aAWX,SAASqG,GAAgBvF,GACpC,IAAME,EAAUtB,KACVuB,EAAWC,cAF+C,EAIdG,oBAAiB,IAAIiF,MAAOC,eAJd,mBAIzDC,EAJyD,KAItCC,EAJsC,OAexBpF,oBAAiB,IAAIiF,MAAOC,eAfJ,mBAezDG,EAfyD,KAe3CC,EAf2C,KA0BhE,OACI,0BAASnD,UAAWC,KAAC,gBAArB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,8BAEA,sBAAKD,UAAWC,KAAE,wBAAlB,UACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQ+E,YACnB7H,KAAK,SAASoG,QAAQ,WAAWY,KAAK,QACtCX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxC6B,MAAM,8CACNwC,gBAAiB,CAAErD,UAAWxC,EAAQmF,gBACtC1B,UAAQ,IAGZ,wBAAOjB,UAAWC,KAAE,yBAA2B,IAAMA,KAAE,+BAAvD,UACI,8FACA,cAAC,KAAD,CAAyBqD,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoB7I,KAAK,oBAAoBsF,UAAWC,KAAE,6BAA8BuD,gBAAc,EAAC1C,QAAQ,SAC3G2C,OAAO,aAAaC,OAAO,SAASzE,MAAO+D,EAC3CjC,SAAU,SAAC4C,GAAD,OAxCF,SAACA,GAC7B,IACIlG,EAASvE,EAAuC,CAAE,kBAAqB,IAAI4J,KAAKa,GAAMZ,cAAgB,MACtGE,EAAqBU,GAEzB,MAAOC,GACHjF,QAAQC,IAAIgF,IAkCwBC,CAAwBF,IAAO1C,UAAQ,SAK/C,kBAAvB3D,EAAMwG,cACH,cAACC,GAAA,EAAD,CAAO/D,UAAWxC,EAAQiF,MAAOuB,MAAM,EAAOtF,SAAS,UAAUoC,QAAQ,WAAzE,SACI,+GAC+E,uBAD/E,8LAOR,cAACF,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAC1B5B,KAAK,oBAAoBoG,QAAQ,WAAWY,KAAK,QACjDX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxC6B,MAAM,qBACNI,UAAQ,IAGZ,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAC1B5B,KAAK,oBAAoBoG,QAAQ,WAAWY,KAAK,QACjDX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxC6B,MAAM,uBAGV,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAC1B5B,KAAK,gBAAgBoG,QAAQ,WAAWY,KAAK,QAC7CX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxC6B,MAAM,6BAGV,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAC1B5B,KAAK,cAAcoG,QAAQ,WAAWY,KAAK,QAC3CX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxC6B,MAAM,oBAGV,eAACkB,EAAA,EAAD,CAAa/B,UAAWC,KAAE,yBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,qBAAqBH,UAAQ,EAA5C,gCACA,eAACgB,EAAA,EAAD,CACIC,QAAQ,qBACRlC,UAAWxC,EAAQlB,YACnB5B,KAAK,YACLqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxCiC,UAAQ,EALZ,UAOI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,KAAhB,sBAIR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWC,KAAE,yBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,kBAAkBH,UAAQ,EAAzC,6BACA,eAACgB,EAAA,EAAD,CACIC,QAAQ,kBACRlC,UAAWxC,EAAQlB,YACnB5B,KAAK,iBACLqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxCiC,UAAQ,EALZ,UAOI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,OAAhB,wBAIR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWC,KAAE,yBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,qBAAqBH,UAAQ,EAA5C,0BACA,eAACgB,EAAA,EAAD,CAAQC,QAAQ,qBACZlC,UAAWxC,EAAQlB,YACnB5B,KAAK,cACLqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxCiC,UAAQ,EAJZ,UAMI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,OAAhB,wBAIR,wBAAOe,UAAWC,KAAE,yBAA2B,IAAMA,KAAE,+BAAvD,UACI,gEACA,cAAC,KAAD,CAAyBqD,MAAOC,KAAhC,SACI,cAAC,KAAD,CACI7I,KAAK,eACLsF,UAAWC,KAAE,6BACbuD,gBAAc,EAAC1C,QAAQ,SACvB2C,OAAO,aAAaC,OAAO,SAC3BzE,MAAOiE,EACPnC,SAAU,SAAC4C,GAAD,OA1HP,SAACA,GACxB,IACIlG,EAASvE,EAAuC,CAAE,aAAgB,IAAI4J,KAAKa,GAAMZ,cAAgB,MACjGI,EAAgBQ,GAEpB,MAAOC,GACHjF,QAAQC,IAAIgF,IAoHwBK,CAAmBN,IACvC1C,UAAQ,SAKpB,uBAAOjB,UAAWC,KAAE,yBAApB,SACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAC1B5B,KAAK,cACLoG,QAAQ,WAAWY,KAAK,QACxBX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxC6B,MAAM,4BAGZvD,EAAM4G,yBAA2B,sBAAMlE,UAAWxC,EAAQoF,kBAAzB,0CAEnC,iEACA,cAAChC,EAAA,EAAD,CACIlG,KAAK,sBAAsBsF,UAAWxC,EAAQX,SAC9CiE,QAAQ,WAAWqD,KAAM,EACzBpD,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IACxCoF,YAAY,uBACZC,WAAS,EAACpD,UAAQ,U,6CCrNhC/E,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGf+H,iBAAiB,aACb/H,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPiG,SAAU,SAGlBD,YAAY,aACRhG,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfgI,gBAAgB,eACXnI,EAAMM,YAAYC,KAAK,MAAQ,CAC5B6F,SAAU,UAWX,SAASgC,GAAqBlH,GACzC,IAAME,EAAUtB,KACZ4H,EAAenG,aAAY,SAACC,GAAD,OAAsBA,EAAM6G,uBAAuBX,gBAElF,OACI,0BAAS9D,UAAWC,KAAC,qBAArB,UACI,oBAAID,UAAWC,KAAE,8BAAjB,mCAEA,sBAAKD,UAAWC,KAAE,6BAAlB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAa7H,KAAK,kBAAkBoG,QAAQ,WAAWhI,KAAK,SAAS4I,KAAK,QACpGb,MAAM,2BAA2BE,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAIiC,UAAQ,IAEvE,mBAAjB6C,GACG,cAAClD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAa7H,KAAK,mBAAmBoG,QAAQ,WAAWhI,KAAK,SAAS4I,KAAK,QACrGX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,oBAAoBI,SAA2B,mBAAjB6C,IAGtE,kBAAjBA,GACG,eAAC/B,EAAA,EAAD,CAAa/B,UAAWC,KAAE,8BAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,8BAAf,2CACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,8BAA8BlC,UAAWxC,EAAQlB,YAC7D5B,KAAK,sBAAsBqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAIiC,SAA2B,kBAAjB6C,EADrF,UAEI,cAAC1B,EAAA,EAAD,CAAUnD,MAAM,QAAhB,mBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,qBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,6BAKZ,eAAC8C,EAAA,EAAD,CAAa/B,UAAWC,KAAE,8BAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,0BAA0BpB,UAAWxC,EAAQ+G,gBAA5D,4DACA,eAACtC,EAAA,EAAD,CAAQpB,MAAM,2BAA2Bb,UAAWxC,EAAQ8G,iBACxD5J,KAAK,sBAAsBqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IADvE,UAEI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,OAAhB,kBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,6BAIR,cAAC2B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAa7H,KAAK,iBAAiBoG,QAAQ,WAAWY,KAAK,QACrFX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,0BAA0BI,UAAQ,KACtF3D,EAAMoH,8BAAgC,sBAAM5C,MAAO,CAAER,MAAO,MAAOxE,UAAW,SAAxC,gDCxFzC,SAAS6H,GAAeC,GAInC,IADAA,GAAoB,IACTnG,OAAS,IAAMmG,EACtB,MAAO,GAIX,IAAIC,GADJD,GAAoB,IACEE,MAAM,IAAIC,OAAO,EAAG,IAAIC,KAAK,IAAM,GACrDC,EAAOJ,EAAQK,MAAM,EAAG,GAG5B,OAFYL,EAAQK,MAAM,EAAG,GAVb,IAWPL,EAAQK,MAAM,EAAG,IAXV,IAYwBD,E,wBCAtC/I,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,GACd,SAAU,CACN2I,QAAS,QACT3I,aAAc,IAEjBJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfW,aAAa,aACTX,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGf6I,sBAAuB,CACnB3I,YAAa,SAaV,SAAS4I,GAAU/H,GAC9B,IAAME,EAAUtB,KACVuB,EAAWC,cACb7E,EAA4B8E,aAAY,SAACC,GAAD,OAAsBA,EAAM/E,UAClEyF,EAAiBC,iBAA8B,MAJD,EAKYV,oBAAkB,GAL9B,mBAK7CyH,EAL6C,KAKnBC,EALmB,OAOtB1H,mBAAc,IAPQ,mBAO7C2H,EAP6C,KAOpCC,EAPoC,OAQd5H,mBAAiB,IARH,mBAQ7CK,EAR6C,KAQhCC,EARgC,OASRN,oBAAkB,GATV,mBAS7CO,EAT6C,KAS7BC,EAT6B,KAU9CqH,EAAU,uCAAG,4BAAAnK,EAAA,2DACX2C,EAAYO,OAAS,GADV,iCAGPJ,GAAkB,GAHX,SAIclD,EAAe,MAAOZ,EAAW,+CAA2C2D,IAJ1F,OAIHpC,EAJG,OAKP2J,EAAW3J,EAASR,MACpB+C,GAAkB,GANX,kDASPZ,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAClBoC,GAAkB,GAZX,gCAgBXoH,EAAW,IAhBA,0DAAH,qDAoBhB5G,qBAAU,WACN6G,MACD,CAACxH,IAhCgD,MAkCRL,qBAlCQ,mBAkC7C8H,EAlC6C,KAkC7BC,EAlC6B,OAmCJ/H,oBAAyB,GAnCrB,mBAmC3BgI,GAnC2B,WAoC9CC,EAAY,uCAAG,WAAOC,GAAP,eAAAxK,EAAA,yDACZgE,MAAMwG,GADM,wBAEbtI,EAASxD,EAA6B,OACtC4L,EAAoBE,GACpBtI,EAAS9D,EAAkCoM,IAC3CR,GAA4B,GAC5B9H,ER4OmE,CAC3E3E,KAAM,iCQnPe,kBAQYqC,EAAe,MAAOZ,EAAW,uBAAmBwL,IARhE,OAQLjK,EARK,OAST8J,EAAkB9J,EAASR,MATlB,kDAYTmC,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAdT,gCAkBb4J,EAAoB,MACpBpI,EAAS9D,EAAkC,OAC3C4L,GAA4B,GApBf,0DAAH,sDApCkC,EA4DU1H,oBAAkB,GA5D5B,mBA4D7CmI,GA5D6C,KA4DpBC,GA5DoB,KA8D9ClH,GAAe,SAACC,GAClB,IAAIC,EAAQD,EAAEE,OAAOD,MACfvE,EAAOsE,EAAEE,OAAOxE,KAET,gBAATA,IACAuE,EAAQ,IAAI6D,KAAK7D,GAAO8D,eAG5BtF,ERmLyF,CAC7F3E,KAAM,sCACNC,QQrL0C,eAAG2B,EAAOuE,MAG9CW,GAAkB,uCAAG,WAAOX,GAAP,SAAA1D,EAAA,sDACnB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChC5B,EAAec,KAChB,KAPoB,2CAAH,sDAUxB,OACI,0BAASe,UAAWC,KAAC,UAArB,UACI,oBAAID,UAAWC,KAAE,mBAAjB,kCAEA,oBAAGD,UAAWC,KAAE,sBAAhB,mGAC0F,uBAD1F,0HAKwB,mBAAvB3C,EAAMwG,aACD,eAACC,GAAA,EAAD,CACEC,MAAM,EACNtF,SAAS,UACToC,QAAQ,WACRd,UAAWC,KAAE,mBAJf,UAME,2JACA,yHAAsF,mBAAGiG,KAAI,iBAAY1L,GAAiBwF,UAAWC,KAAE,eAAjD,SAAkEzF,UAE1J,GAGN,sBAAKwF,UAAWC,KAAE,iCAAlB,UACI,cAACC,EAAA,EAAD,CACIC,QAASqF,GAAW,GACpBpF,QAAShC,EACTiC,eAAgB,SAACC,GAAD,OACXA,EAAOC,UAAaD,EAAOC,UAAUC,WAAa,IAAO,KACzDF,EAAOG,SAAWH,EAAOG,SAASD,WAAa,GAAK,KAEzDR,UAAWxC,EAAQN,aACnBwD,YAAa,SAACC,GAAD,OACT,cAACC,EAAA,EAAD,2BACQD,GADR,IAEIE,MAAM,aACNC,QAAQ,WACRC,SAAU,SAAA/B,GAAC,OAAIY,GAAmBZ,EAAEE,OAAOD,OAAS,KACpD+B,WAAS,EACTC,UAAW+E,OAGnBjF,SAAU,SAAC/B,EAAGC,GAAJ,OAAc6G,EAAa3E,SAASlC,EAAQA,EAAMmC,GAAK,GAAK,QAG1E,qBAAKpB,UAAWC,KAAE,yBAAlB,gBAEA,cAACoB,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,UAC9BC,QAAS,WACL0E,IAA4BD,IAC5B1I,EAAM6I,mCAAmCH,KAHjD,qCAUAV,GAA4BK,GAC5B,sBAAK3F,UAAWC,KAAE,kBAAlB,UACK0F,EAAeS,aAAe,cAACxF,EAAA,EAAD,CAAW9H,KAAK,OAAOgI,QAAQ,WAAW7B,MAAO0F,GAAegB,EAAeS,aAAcpG,UAAWxC,EAAQlB,YAAaoF,KAAK,QAAQb,MAAM,kBAC9K8E,EAAeU,eAAiB,cAACzF,EAAA,EAAD,CAAWE,QAAQ,WAAW7B,MAAO0G,EAAeU,cAAerG,UAAWxC,EAAQlB,YAAaoF,KAAK,QAAQb,MAAM,mBACtJ8E,EAAeW,MAAQ,cAAC1F,EAAA,EAAD,CAAWE,QAAQ,WAAW7B,MAAO0G,EAAeW,KAAMtG,UAAWxC,EAAQlB,YAAaoF,KAAK,QAAQb,MAAM,SACpI8E,EAAeY,SAAW,cAAC3F,EAAA,EAAD,CAAWE,QAAQ,WAAW7B,MAAO0G,EAAeY,QAASvG,UAAWxC,EAAQlB,YAAaoF,KAAK,QAAQb,MAAM,YAC1I8E,EAAe/H,OAAS,cAACgD,EAAA,EAAD,CAAWE,QAAQ,WAAW7B,MAAO0G,EAAe/H,MAAMlD,KAAMsF,UAAWxC,EAAQlB,YAAaoF,KAAK,QAAQb,MAAM,UAC3I8E,EAAelE,OAAS,cAACb,EAAA,EAAD,CAAW9H,KAAK,QAAQmG,MAAO0G,EAAelE,MAAOzB,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,oBACnJ8E,EAAehE,aAAe,cAACf,EAAA,EAAD,CAAW9H,KAAK,OAAOmG,MAAO0G,EAAehE,YAAa3B,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,oBAKnKmF,KAA4BV,GAC5B,sBAAKtF,UAAWC,KAAE,qCAAlB,UACI,cAACW,EAAA,EAAD,CAAWlG,KAAK,YAAYsF,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,aAAaE,SAAU,SAAC/B,GAAQD,GAAaC,IAAMiC,WAAU+E,KAC/J,cAACpF,EAAA,EAAD,CAAWlG,KAAK,WAAWsF,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAAQb,MAAM,YAAYE,SAAU,SAAC/B,GAAQD,GAAaC,IAAMiC,WAAU+E,KAC7J,wBAAOhG,UAAWC,KAAE,+BAApB,UACI,mDACA,cAACW,EAAA,EAAD,CAAW9H,KAAK,OAAOgI,QAAQ,WAAWd,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQ4H,sBAAuB1K,KAAK,cAAcqG,SAAU,SAAC/B,GAAD,OAAOD,GAAaC,IAAI0C,KAAK,QAAQT,WAAU+E,QAEhM,cAACpF,EAAA,EAAD,CAAWE,QAAQ,WAAWd,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQ4H,sBAAuB1K,KAAK,gBAAgBqG,SAAU,SAAC/B,GAAD,OAAOD,GAAaC,IAAI0C,KAAK,QAAQb,MAAM,iBAAiBI,WAAU+E,KACzM,cAACpF,EAAA,EAAD,CAAWE,QAAQ,WAAWd,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQ4H,sBAAuB1K,KAAK,OAAOqG,SAAU,SAAC/B,GAAD,OAAOD,GAAaC,IAAI0C,KAAK,QAAQb,MAAM,OAAOI,WAAU+E,KACtL,cAACpF,EAAA,EAAD,CAAWE,QAAQ,WAAWd,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQ4H,sBAAuB1K,KAAK,UAAUqG,SAAU,SAAC/B,GAAD,OAAOD,GAAaC,IAAI0C,KAAK,QAAQb,MAAM,UAAUI,WAAU+E,KAC5L,eAACjE,EAAA,EAAD,CAAajB,QAAQ,WAArB,UACI,cAACkB,EAAA,EAAD,CAAYZ,GAAG,cAAcH,WAAU+E,GAAvC,mBACA,cAAC/D,EAAA,EAAD,CAAQC,QAAQ,cAAcxH,KAAK,QAAQqG,SAAU,SAAC/B,GAAD,OAAOD,GAAaC,IAAIgB,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQ4H,sBAAuBnE,WAAU+E,GAA7J,SACKnN,EAAO4F,OAAS,GAAK5F,EAAOsJ,KAAI,SAACvE,GAC9B,OACI,cAACwE,EAAA,EAAD,CAA0BnD,MAAOrB,EAAMyE,IAAvC,SAA6CzE,EAAMlD,MAApCkD,EAAMyE,aAKrC,cAACzB,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQ4H,sBAAuB1K,KAAK,QAAQqG,SAAU,SAAC/B,GAAD,OAAOD,GAAaC,IAAI8B,QAAQ,WAAWY,KAAK,QAAQb,MAAM,kBAAkBI,WAAU+E,MAE/L1I,EAAMkJ,+BAAiClJ,EAAMuE,oCAAuC,sBAAMC,MAAO,CAAER,MAAO,MAAOxE,UAAW,QAASN,aAAc,QAA/D,0CACtFc,EAAMuE,oCAAsC,sBAAMC,MAAO,CAAER,MAAO,MAAOxE,UAAW,QAASN,aAAc,QAA/D,+HAC7C,cAACoE,EAAA,EAAD,CAAW9H,KAAK,OAAOkH,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQ4H,sBAAuB1K,KAAK,cAAcqG,SAAU,SAAC/B,GAAD,OAAOD,GAAaC,IAAI8B,QAAQ,WAAWY,KAAK,QAAQb,MAAM,eAAeI,WAAU+E,W,yBClN/N9J,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPE,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,IAGrBgK,iBAAiB,aACbjK,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,cAYR,SAASmK,GAAYpJ,GAChC,IAAMC,EAAkB9C,EAAU,mBAC5B+C,EAAUtB,KACVuB,EAAWC,cACXY,EAAiBC,iBAA8B,MACjD1F,EAA4B8E,aAAY,SAACC,GAAD,OAAsBA,EAAM/E,UALhB,EAMEgF,oBAAkB,GANpB,mBAMjD8I,EANiD,KAM1BC,EAN0B,OAON/I,qBAPM,mBAOjDgJ,EAPiD,KAO9BC,EAP8B,OAQZjJ,oBAAkB,GARN,mBAQjDO,EARiD,KAQjCC,EARiC,OASxBR,mBAAc,IATU,mBASjD2B,EATiD,KASvCuH,EATuC,KAUlDC,EAAW,uCAAG,0CAAAzL,EAAA,4DAAO0L,EAAP,+BAA6B,IAC7BxI,OAAS,GADT,iEAMZJ,GAAkB,GANN,SAOSlD,EAAe,MAAOZ,EAAW,gDAA4C0M,IAPtF,OAORnL,EAPQ,OAQZiL,EAAYjL,EAASR,MACrB+C,GAAkB,GATN,kDAYZZ,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAClBoC,GAAkB,GAClB0I,EAAY,IAhBA,0DAAH,qDAoBXnH,EAAkB,uCAAG,WAAOX,GAAP,SAAA1D,EAAA,sDACnB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChCiH,EAAY/H,KACb,KAPoB,2CAAH,sDAUxB,OACI,0BAASe,UAAWC,KAAC,QAArB,UACI,oBAAID,UAAWC,KAAE,iBAAjB,uBAEA,oBAAGD,UAAWC,KAAE,oBAAhB,0QAG4B,kBAApB1C,EACM,mJACA,MAId,sBAAKyC,UAAWC,KAAE,6BAAlB,UACI,cAACC,EAAA,EAAD,CACIC,QAASX,GAAY,GACrBY,QAAShC,EACTiC,eAAgB,SAACC,GAAD,OACXA,EAAOC,UAAaD,EAAOC,UAAUC,WAAa,IAAO,KACzDF,EAAOG,SAAWH,EAAOG,SAASD,WAAa,GAAK,KAEzDR,UAAWxC,EAAQlB,YACnBoE,YAAa,SAACC,GAAD,OACT,cAACC,EAAA,EAAD,2BACQD,GADR,IAEIE,MAAM,YACNC,QAAQ,WACRC,SAAU,SAAA/B,GAAC,OAAIY,EAAmBZ,EAAEE,OAAOD,OAAS,KACpD+B,WAAS,EAACC,UAAW0F,MAG7B5F,SAAU,SAAC/B,EAAGC,GACV6H,EAAqB7H,EAAQA,EAAMmC,GAAK,MACxC3D,EAAS1D,EAAwCkF,EAAQA,EAAMmC,GAAK,OACpEwF,GAAyB,GACzBtJ,EAAM4J,iCAAgC,GACtCzJ,ETyM4E,CAChG3E,KAAM,kCACNC,QS3MyDoI,SAAQ,OAAClC,QAAD,IAACA,OAAD,EAACA,EAAOmC,SAGxC,kBAApB7D,EAAsC,qBAAKyC,UAAWC,KAAE,wBAAlB,gBAAsD,GAExE,kBAApB1C,EACG,cAAC8D,EAAA,EAAD,CACIP,QAAQ,YACRQ,MAAM,UACNC,QAAS,WACLqF,GAA0BD,GAC1BrJ,EAAM4J,iCAAiCP,IAL/C,6BASY,MAGnBA,IAA0BE,GACvB,sBAAK7G,UAAWC,KAAE,iCAAlB,UACI,cAACW,EAAA,EAAD,CACIlG,KAAK,cACLsF,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQiJ,iBAC/C3F,QAAQ,WACRY,KAAK,QACLb,MAAM,gBACNE,SAAU,SAAC/B,GAAQ1B,EAAM6J,sBAAsBnI,EAAEE,OAAOD,QACxDgC,SAAU0F,IAGd,eAAC5E,EAAA,EAAD,CAAajB,QAAQ,WAArB,UACI,cAACkB,EAAA,EAAD,CAAYZ,GAAG,cAAf,mBAEA,cAACa,EAAA,EAAD,CAAQC,QAAQ,cAAcnB,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8J,uBAAuBpI,EAAEE,OAAOD,MAAQ,KAAKe,UAAWxC,EAAQlB,YACjH2E,SAAU0F,EADd,SAEK9N,EAAO4F,OAAS,GAAK5F,EAAOsJ,KAAI,SAACvE,GAC9B,OACI,cAACwE,EAAA,EAAD,CAA0BnD,MAAOrB,EAAMyE,IAAvC,SAA6CzE,EAAMlD,MAApCkD,EAAMyE,mB,cCvJ5CgF,GAAmB,SAACC,EAAkBC,GAC/C,IAAIC,EACAC,EACAC,GAAe,EACfC,GAAe,EAInB,SAASC,EAAWN,GAEhB,MADY,MACCO,KAAKP,GAJtBE,EAAiBF,IAAaC,EAM9BE,EAASG,EAAWN,GAEpB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,EAAS7I,OAAQqJ,IAC7BF,EAAWN,EAASQ,MAGpBR,EAASQ,KAAOR,EAASQ,GAAGC,cAAgBL,GAAe,EAAOC,GAAe,GAMzF,MAAO,CAFMF,GAAUC,GAAgBC,GAAgBL,EAAS7I,QAAU,EAE1D+I,IAGPQ,GAAgB,SAACvG,GAE1B,MADW,wJACDoG,KAAKI,OAAOxG,GAAOyG,gBAGpBC,GAAkB,SAAC5B,GAA8B,IAAD,EAErD6B,EADAC,EAA+B,UAAG9B,EAAQzL,MAAM,qBAAjB,aAAG,EAA6BkK,KAAK,IAExE,QAAIqD,IACAD,EAAKC,EAAY5J,OAAS,EAAK,EAAI,EAC1B,IAAI1D,OAAO,QAAUqN,EAAI,MACxBP,KAAKI,OAAOI,M,+BC/Bf,SAASC,GAAoBhL,GACxC,OACI,qBAAK0C,UAAWC,KAAC,oBAAjB,SAC4B,mBAAvB3C,EAAMwG,cACH,cAACC,GAAA,EAAD,CAAOC,MAAM,EAAOtF,SAAS,UAAUoC,QAAQ,WAAWd,UAAWC,KAAE,yCAA2C,IAAMA,KAAE,+CAA1H,SACI,sBAAMD,UAAWC,KAAE,iCAAnB,ymB,cCLL,SAASsI,GAAUjL,GAC9B,OACI,qBAAKwE,MAAO,CAAE0G,UAAW,SAAUvL,QAAS,IAA5C,SACI,cAACwL,GAAA,EAAD,CAAkB/G,KAAMpE,EAAMoE,KAAO,SCUjD,IAAIgH,GAASC,EAAQ,KAEfzM,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTQ,SAAU,CACNN,MAAO,OACPO,UAAW,GACXN,aAAc,GACdO,UAAW,GACXC,aAAc,GACd4L,OAAQ,QAEZC,aAAa,aACTrM,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5B6F,SAAU,OACVhG,aAAc,UAOf,SAASsM,KACpB,IAAIC,EAAWL,GAAOK,SAChBvL,EAAUtB,KACVuB,EAAWC,cAGbsL,EAAwBrL,aAAY,SAACC,GAAD,OAAsBA,EAAM6G,uBAAuBwE,kBACvFC,EAAmBvL,aAAY,SAACC,GAAD,OAAsBA,EAAM6G,uBAAuB0E,eAClFC,EAAwBzL,aAAY,SAACC,GAAD,OAAsBA,EAAMyL,qBAAqB5H,SACrF6H,EAAuB3L,aAAY,SAACC,GAAD,OAAsBA,EAAM2L,qBAAqB9H,SACpF+H,EAAe7L,aAAY,SAACC,GAAD,OAAsBA,EAAM6G,0BAEvD4E,EAAuB1L,aAAY,SAACC,GAAD,OAAsBA,EAAMyL,wBAC/DI,EAAqB9L,aAAY,SAACC,GAAD,OAAsBA,EAAM6G,uBAAuBiF,kBAClF9L,EAAM6G,uBAAuBiF,kBAAkB9P,OAAS,QAE1D+P,EAAsBhM,aAAY,SAACC,GAAD,OAAsBA,EAAM2L,wBAC9DK,EAAoBjM,aAAY,SAACC,GAAD,OAAsBA,EAAM6G,uBAAuBoF,qBAChFjM,EAAM6G,uBAAuBoF,oBAAoBpL,OAAS,EAAIb,EAAM6G,uBAAuBoF,oBAAoB,GAAGjQ,OACnH,QACFkK,EAAenG,aAAY,SAACC,GAAD,OAAsBA,EAAM6G,uBAAuBX,gBApBrC,EAuB2BjG,oBAAkB,GAvB7C,mBAuBtC6G,EAvBsC,KAuBRoF,EAvBQ,OAwB2BjM,oBAAkB,GAxB7C,mBAwBtC2I,EAxBsC,KAwBRuD,EAxBQ,OAyByBlM,oBAAkB,GAzB3C,mBAyBtC+D,EAzBsC,KAyBToI,EAzBS,OA0BiBnM,oBAAkB,GA1BnC,mBA0BtCqG,EA1BsC,KA0Bb+F,EA1Ba,OA4B6BpM,oBAAkB,GA5B/C,oBA4BtCqM,GA5BsC,MA4BR/D,GA5BQ,SA6B2BtI,oBAAkB,GA7B7C,qBA6BtCsM,GA7BsC,MA6BT3I,GA7BS,SA8ByB3D,oBAAkB,GA9B3C,qBA8BtCuM,GA9BsC,MA8BVlD,GA9BU,SAgCOrJ,mBAAiB,IAhCxB,qBAgCtCwM,GAhCsC,MAgClBlD,GAhCkB,SAiCStJ,mBAAiB,IAjC1B,qBAiCtCyM,GAjCsC,MAiCjBlD,GAjCiB,SAmCqBvJ,mBAAwB,MAnC7C,qBAmCtCyE,GAnCsC,MAmCXxD,GAnCW,SAoCDjB,oBAAkB,GApCjB,qBAoCtCO,GApCsC,MAoCtBC,GApCsB,SAsCiDR,oBAAkB,GAtCnE,qBAsCtC0M,GAtCsC,MAsCGC,GAtCH,SAuC+C3M,oBAAkB,GAvCjE,qBAuCtC4M,GAvCsC,MAuCEC,GAvCF,MAyCvCC,GAAgBxJ,SAAS1G,EAAU,iBAAmB,IACtD8C,GAAkB9C,EAAU,mBAE5BmQ,GAA0B,SAACC,EAAsD5O,EAAiB6O,GACpGD,GAAkB,GAClBpN,EAASlE,EAAoB,CAAE0C,QAASA,EAASyC,SAAU,WAC3DjB,EAASpE,GAAmB,IAC5B0P,EAASgC,SAASD,EAAQ,CAAEE,SAAU,IAAKC,MAAO,EAAGC,OAAQ,oBAG3DC,GAAqB,SAACnM,GACxB,IAAIC,EAAQD,EAAEE,OAAOD,MACfvE,EAAOsE,EAAEE,OAAOxE,KAET,cAATA,GACkBuE,EAAR,QAAVA,EACAxB,EAASvE,EAAuC,eAAGwB,EAAOuE,MAG1DxB,EADc,YAAT/C,EbmKsG,CACnH5B,KAAM,kCACNC,QAAS,CAAEqS,YapKkCnM,EboKrBrF,OapK4B+Q,KAE9B,oBAATjQ,EbgFmC,SAAC2Q,EAAgB1H,EAAc/J,GAA/B,MAA6F,CAC7Id,KAAM,4CACNC,QAAS,CAAEsS,SAAQ1H,OAAM/J,WajFR0R,CAAqCnK,SAASlC,IAAQ,IAAI6D,MAAOC,cAAgB,GAAI5B,SAASwJ,GAAgB,KAG9GzR,EAAuC,eAAGwB,EAAOuE,MAkF5DsM,GAAc,uCAAG,sBAAAhQ,EAAA,yDAEdyM,GAAcgB,MAA0BA,EAAsBvK,OAAS,GAFzD,uBAGfmM,GAAwBd,EAAiC,iDAAkD,iCAH5F,mBAIR,GAJQ,OAOfA,GAAgC,GAPjB,UASd9B,GAAcoB,KAA0Bc,GAT1B,wBAUfU,GAAwBb,EAAiC,uCAAwC,6BAVlF,mBAWR,GAXQ,QAcfA,GAAgC,GAdjB,WAgBd/B,GAAcsB,KAAyBa,GAhBzB,wBAiBfS,GAAwBZ,EAAgC,sCAAuC,gCAjBhF,mBAkBR,GAlBQ,QAqBfA,GAA+B,GArBhB,WAuBdhC,GAAckB,MAAqBA,EAAiBzK,OAAS,GAvB/C,wBAwBfmM,GAAwBX,EAA4B,wCAAyC,4BAxB9E,mBAyBR,GAzBQ,QA4BfA,GAA2B,GA5BZ,YA+BfC,GA/Be,kCAgCwBsB,GAA2CpC,GAhCnE,8DAkCwB,GAlCxB,YAqCfe,GArCe,kCAsCwBsB,GAA0CnC,GAtClE,8DAwCwB,GAxCxB,kCA2CZ,GA3CY,4CAAH,qDA+CdkC,GAA0C,uCAAG,WAAOE,GAAP,SAAAnQ,EAAA,+EACxC,IAAIoQ,QAAJ,uCAAa,WAAOC,EAASC,GAAhB,SAAAtQ,EAAA,+EAE2BuQ,GAAkCJ,GAF7D,eAKRd,GAAwBb,EAAiC,+CAAgD,6BACzGS,IAA2C,GAC3CoB,GAAQ,KAER7B,GAAgC,GAChCS,IAA2C,GAC3CoB,GAAQ,IAXA,gDAeZC,IAfY,yDAAb,0DADwC,2CAAH,sDAqB1CJ,GAAyC,uCAAG,WAAOM,GAAP,SAAAxQ,EAAA,+EACvC,IAAIoQ,QAAJ,uCAAa,WAAOC,EAASC,GAAhB,SAAAtQ,EAAA,+EAE2BuQ,GAAkCC,GAF7D,eAKRnB,GAAwBZ,EAAgC,+CAAgD,gCACxGU,IAA0C,GAC1CkB,GAAQ,KAER5B,GAA+B,GAC/BU,IAA0C,GAC1CkB,GAAQ,IAXA,gDAeZC,IAfY,yDAAb,0DADuC,2CAAH,sDAqBzCC,GAAiC,uCAAG,WAAOrK,GAAP,SAAAlG,EAAA,+EAC/B,IAAIoQ,QAAJ,uCAAa,WAAOC,EAASC,GAAhB,iBAAAtQ,EAAA,+EAESJ,EAAe,MAAOZ,EAAW,6BAAyBkH,IAFnE,OAER3F,EAFQ,OAGNkQ,EAA2BlQ,EAASR,KAAKmD,OAAS,EACxDmN,EAAQI,GAJI,gDAOZH,IAPY,yDAAb,0DAD+B,2CAAH,sDAajCI,GAAY,uCAAG,WAAOjN,GAAP,uBAAAzD,EAAA,6DACjByD,EAAEkN,iBACF7N,IAAkB,GAFD,SAKPkN,KALO,oDAjLZ9B,GAAsBS,IACvBzM,EAASxD,EAA6BoP,IACtCG,EAAaE,kBAAoBF,EAAaE,kBAAkBxP,KAAOmP,EAAuBG,EAAaE,kBAAoB,CAAExP,KAAMmP,EAAsBzP,OAAQ,OAE/J6P,IACND,EAAaE,kBAAoBF,EAAaE,kBAAkB9P,OAAS+Q,GAAgBnB,EAAaE,kBAAoB,CAAExP,KAAM,KAAMN,OAAQ+Q,MAO/If,GAAqBO,KACtB1M,Eb0GgG,CACxG3E,KAAM,2CACNC,Qa5GqD4Q,IACzCH,EAAaK,sBAEmC,IAA5CL,EAAaK,oBAAoBpL,OACjC+K,EAAaK,oBAAoBsC,KAC7B,CACIjS,KAAMyP,EACN/P,OAAQ,KACR+J,MAAM,IAAIb,MAAOC,iBAKzByG,EAAaK,oBAAoB,GAAG3P,KAAOyP,EAC3CH,EAAaK,oBAAoB,GAAGjQ,OAAS,KAC7C4P,EAAaK,oBAAoB,GAAGlG,MAAO,IAAIb,MAAOC,iBAQ9DqH,GACIZ,EAAa4C,qBACkC,IAA3C5C,EAAa4C,mBAAmB3N,OAChC+K,EAAa4C,mBAAmBD,KAC5B,CACIjS,KAAM,CAAEqG,UAAW8J,GAAoBzM,MAAO,CAAEyE,IAAKiI,KACrD1Q,OAAQ,KACR+J,MAAM,IAAIb,MAAOC,iBAKzByG,EAAa4C,mBAAmB,GAAGlS,KAAO,CAAEqG,UAAW8J,GAAoBzM,MAAO,CAAEyE,IAAKiI,KACzFd,EAAa4C,mBAAmB,GAAGxS,OAAS,KAC5C4P,EAAa4C,mBAAmB,GAAGzI,MAAO,IAAIb,MAAOC,gBAMzDyG,GAAgBA,EAAa4C,oBAAsB9J,KACJ,IAA3CkH,EAAa4C,mBAAmB3N,OAChC+K,EAAa4C,mBAAmBD,KAC5B,CACIjS,KAAM,KACNN,OAAQ0I,GACRqB,MAAM,IAAIb,MAAOC,iBAKzByG,EAAa4C,mBAAmB,GAAGlS,KAAO,KAC1CsP,EAAa4C,mBAAmB,GAAGxS,OAAS0I,GAC5CkH,EAAa4C,mBAAmB,GAAGzI,MAAO,IAAIb,MAAOC,gBA4GhD,mBAagB5H,EAAe,OAAQZ,EAAc,mBAAoBiP,GAbzE,QAaD1N,EAbC,OAeL2B,EAAS9D,EAAkC,OAC3C8D,EAAS5D,EAAsC,OAC/C4D,EAAS1D,EAAwC,OAGjD0D,EbmByD,CACzE3E,KAAM,gCanBU2E,EbU2D,CAC3E3E,KAAM,iCaRU2E,EbuB6D,CAC7E3E,KAAM,mCatBU2E,EAASlE,EAAoB,CAAE0C,QAAS,gCAAiCyC,SAAU,aACnFjB,EAASpE,GAAmB,IAC5BgT,GAAQF,KAAR,yBAA+BrQ,EAASR,KAAK8F,KAC7CkL,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,WA7B/B,kDAgCL/O,EAASlE,EAAoB,CAAE0C,QAAS,sBAAwB,KAAMA,QAASyC,SAAU,WACzFjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAlCb,0DAsCTwB,EAASlE,EAAoB,CAAE0C,QAAS,6CAA8CyC,SAAU,WAChGjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAxCT,yBA4CLuN,EAAaK,qBAAqE,QAA9C,UAAAL,EAAaK,oBAAoB,UAAjC,eAAqC3P,OAAiE,QAAhD,UAAAsP,EAAaK,oBAAoB,UAAjC,eAAqCjQ,UAC/H4P,EAAaK,oBAAsB,MAEnCL,EAAa4C,oBAAmE,QAA7C,UAAA5C,EAAa4C,mBAAmB,UAAhC,eAAoClS,OAAgE,QAA/C,UAAAsP,EAAa4C,mBAAmB,UAAhC,eAAoCxS,UAC5H4P,EAAa4C,mBAAqB,MAEtC/N,IAAkB,GAlDT,qBAqDjBA,IAAkB,GArDD,uEAAH,sDAwDlB,OACI,mCACI,eAACoO,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,uBAArC,UACI,eAAC8D,GAAA,EAAD,CAAOrF,SAAS,UAAUoC,QAAQ,WAAWd,UAAWxC,EAAQqL,aAAhE,UACI,cAAC6D,GAAA,EAAD,UAAY,sBAAM1M,UAAWC,KAAE,oCAAnB,uBACZ,sBAAMD,UAAWC,KAAE,oCAAnB,qQAEJ,uBAAM0M,SAAU,SAAC3N,GAAD,OAAOiN,GAAajN,IAApC,UACI,oBAAIgB,UAAWC,KAAE,gCAAjB,sCAEA,eAAC2M,EAAA,EAAD,CAAY5M,UAAWC,KAAE,oCAAqC4M,KAAG,EAACnS,KAAK,eAAeoS,aAAa,gBAAgB/L,SAAU,SAAC/B,GAAD,OAAOmM,GAAmBnM,IAAvJ,UACI,cAAC+N,EAAA,EAAD,CAAkB9N,MAAM,gBAAgB+N,QAAS,cAACC,EAAA,EAAD,CAAO3L,MAAM,YAAcT,MAAM,iBAAiBqM,eAAe,QAClH,cAACH,EAAA,EAAD,CAAkB9N,MAAM,iBAAiB+N,QAAS,cAACC,EAAA,EAAD,CAAO3L,MAAM,YAAcT,MAAM,kBAAkBqM,eAAe,WAGxH,eAAC,WAAD,CAASxS,KAAK,gCAAd,UAA8C,cAAC8J,GAAD,CAAsBpB,iBAAkB+H,GAClFzG,6BAA8BA,IAC9B,cAACyI,EAAA,EAAD,OAEiB,WAApB5P,IACG,eAAC,WAAD,CAAS7C,KAAK,4BAAd,UACI,cAAC2K,GAAD,CACIjC,iBAAkB+H,GAClBhF,kCAAmCA,GACnCK,6BAA8BA,EAC9B1C,aAAcA,EACdjC,mCAAoC0I,KACtC,cAAC4C,EAAA,EAAD,OAGV,eAAC,WAAD,CAASzS,KAAK,2BAAd,UACI,cAACmI,GAAD,CAAiBO,iBAAkB+H,GAAoBjH,wBAAyBA,EAAyBJ,aAAcA,IACvH,cAACqJ,EAAA,EAAD,OAEJ,eAAC,WAAD,CAASzS,KAAK,+BAAd,UACI,cAAC2C,GAAD,CACI+F,iBAAkB+H,GAClB3J,iCAAkCA,GAClCI,4BAA6BA,EAC7B9C,6BAA8BA,GAC9BwD,0BAA2BA,GAC3BT,mCAAoC4I,KACtC,cAAC0C,EAAA,EAAD,QAEJ7K,IACE,cAACoE,GAAD,CAAaQ,gCAAiCA,GAAiCC,sBAAuBA,GAClGC,uBAAwBA,KAIhC,sBAAKpH,UAAWC,KAAE,kCAAlB,UACI,8CACA,cAACW,EAAA,EAAD,CAAWlG,KAAK,UAAUoG,QAAQ,WAAWqD,KAAM,EAAGnE,UAAWxC,EAAQX,SAAUkE,SAAU,SAAC/B,GAAD,OAAOmM,GAAmBnM,IACnHoF,YAAY,mBAAmBC,WAAS,OAGhD,cAACiE,GAAD,CAAqBxE,aAAcA,IAEnC,sBAAK9D,UAAWC,KAAE,+BAAlB,UACI,+BACI,cAACoB,EAAA,EAAD,CACIvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UACxC8L,SAAUhP,GAFd,sBAOHA,IAAkB,cAACmK,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,sB,8CCxZ1D,SAASC,GAAT,GAAqC,IAApBC,EAAmB,EAAnBA,KAC5B,OACI,sBAAKvN,UAAWC,KAAC,OAAjB,UACI,cAAC,KAAD,CAAeD,UAAU,gBACzB,iCAASuN,O,yBCPN,SAASC,GAAgBlQ,GAAa,IAY5C,IAZ2C,EAChBO,mBAASP,EAAMhC,MADC,mBACzCmS,EADyC,KAC/BC,EAD+B,KAMhD,OAJA7O,qBAAU,WACN6O,EAAYpQ,EAAMhC,QACnB,CAACgC,IAECA,EAQG,0BAAS0C,UAAWC,KAAC,gBAArB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,0CAC2C,KAAlC,OAARwN,QAAQ,IAARA,GAAA,UAAAA,EAAUE,2BAAV,eAA+BlP,SAC5B,oBAAIqD,MAAO,CAAE7E,QAAS,UAAtB,6BAEHwQ,EAASE,oBAAoBlP,OAAS,GACnC,oBAAIuB,UAAWC,KAAE,wBAAjB,gBACKwN,QADL,IACKA,GADL,UACKA,EAAUE,2BADf,aACK,EAA+BxL,KAAI,SAACyL,GACjC,OACI,qBAAI5N,UAAWC,KAAE,wBAAjB,UACI,6CAAe,mBAAGiG,KAAK,IAAR,SAAa0H,EAAKC,YACjC,4CAAc,mBAAG3H,KAAK,IAAR,SAAa0H,EAAKE,cAFWF,EAAKxM,SAQpE,cAACkM,GAAD,CAAQC,KAAK,4BAvBjB,cAAChF,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,yBCLrCnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAa,CACTC,MAAO,IACPC,aAAc,GACdC,YAAa,IAEjBsR,MAAO,CACHxR,MAAO,OACPC,aAAc,IAElBwR,UAAW,CACPzR,MAAO,IACPC,aAAc,SAKX,SAASyR,GAAS3Q,GAC7B,IAAME,EAAUtB,KADyB,EAES2B,oBAAS,GAFlB,mBAElCqQ,EAFkC,KAEfC,EAFe,OAIHtQ,mBAClC,IAAIiF,KAAK,wBAL4B,mBAIlCsL,EAJkC,KAIrBC,EAJqB,OAYTxQ,mBAASP,EAAMhC,MAZN,mBAYlCmS,EAZkC,KAYxBC,EAZwB,KAiBzC,OAJA7O,qBAAU,WACN6O,EAAYpQ,EAAMhC,QACnB,CAACgC,IAECA,EAQG,0BAAS0C,UAAWC,KAAC,SAArB,UACI,4CACC,OAAEwN,QAAF,IAAEA,OAAF,EAAEA,EAAUa,YACT,oBAAIxM,MAAO,CAAE7E,QAAS,UAAtB,gCAGJ,qBAAKsE,QAAS,kBAAM4M,GAAsBD,IAA1C,SACI,cAACZ,GAAD,CAAQC,KAAK,kBAGhBW,GACG,sBAAKlO,UAAWC,KAAE,8BAAlB,UACI,sBAAKD,UAAWC,KAAE,wBAAlB,UACI,eAAC8B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,8BAAf,6BACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,8BAAhB,UACI,cAACE,EAAA,EAAD,CAAUnD,MAAM,UAAhB,qBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,2BAIR,cAAC,KAAD,CAAyBqE,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWxC,EAAQwQ,UAAW/O,MAAOmP,EAAa5K,gBAAc,EAAC1C,QAAQ,SAAS2C,OAAO,aAAa5C,MAAM,eAC5HE,SAAU,SAACzF,GAvCvC+S,EAuCiE/S,IACrCiT,oBAAqB,CACjB,aAAc,sBAM9B,cAAC3N,EAAA,EAAD,CAAWC,MAAM,UAAUC,QAAQ,WAAWd,UAAWxC,EAAQuQ,MAAOrM,KAAK,gBArCzF,cAAC6G,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,+FCpCrCnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTmS,KAAM,CACFrJ,QAAS,OACTsJ,cAAe,SACfC,WAAY,UAEhBpS,YAAa,CACTC,MAAO,IACPC,aAAc,GACd,eAAgB,CACZA,aAAc,IAGtBmS,QAAQ,aACJpS,MAAO,IACP4I,QAAS,OACTyJ,eAAgB,gBAChB9R,UAAW,IACVV,EAAMM,YAAYC,KAAK,MAAQ,CAC5BG,UAAW,KAGnB+R,IAAK,CACDtS,MAAO,KAEXuS,YAAY,aACRzB,SAAU,WACVd,IAAK,MACLwC,KAAM,MACNC,UAAW,wBACXzS,MAAO,IACP0S,gBAAiB7S,EAAM8S,QAAQC,WAAWC,MAC1CnS,QAAS,IACRb,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPU,QAAS,UAMnBoS,GAAmB,SAACC,GACtB,IACIC,EAAqC,IAAIzM,KAAKwM,GAC9CE,EAA+BD,EAAoBE,cACnDC,EAAgCH,EAAoBI,WAAa,EACjEvB,EAA+BmB,EAAoBK,UAQvD,OANIxB,EAAc,KACdA,EAAc,IAAMA,GAEpBsB,EAAe,KACfA,EAAe,IAAMA,GAElBF,EAZS,IAYiBE,EAZjB,IAY4CtB,GAUjD,SAASyB,GAAgBvS,GACpC,IAAME,EAAUtB,KACVuB,EAAWC,cAFoD,EAI7BG,mBAAcwR,GAAiB/R,EAAMwS,oBAAoBC,YAJ5B,mBAI9DC,EAJ8D,KAIhDC,EAJgD,OAKrBpS,mBAAkBP,EAAMwS,oBAAoBI,SALvB,mBAK9DC,EAL8D,KAK5CC,EAL4C,OAMvCvS,mBAAcP,EAAMwS,oBAAoBO,SAND,mBAM9DA,EAN8D,KAMrDC,EANqD,KAgBrEzR,qBAAU,WAPNuR,EAAoB9S,EAAMwS,oBAAoBI,SAC9CD,EAAgBZ,GAAiB/R,EAAMwS,oBAAoBC,YACtDzS,EAAMwS,oBAAoBI,SAC3BI,EAAWjB,GAAiB/R,EAAMwS,oBAAoBO,YAM3D,CAAC/S,IAEJ,IAAM2O,EAAY,uCAAG,WAAOjN,GAAP,mBAAAzD,EAAA,6DACjByD,EAAEkN,iBACEqE,EAAoB,IAAIzN,KAAK,IAAIA,KAAKkN,GAAcQ,SAAS,KAAKzN,cAClE0N,EAAe,IAAI3N,KAAK,IAAIA,KAAKuN,GAASG,SAAS,KAAKzN,cAH3C,SAMT2N,EAAiB,CACjBtP,GAAI9D,EAAMwS,oBAAoB1O,GAC9B3B,cAAenC,EAAMwS,oBAAoBrQ,cACzCc,UAAWjD,EAAMwS,oBAAoBvP,UACrCwP,UAAWQ,EACXL,QAASC,EACTE,QAASI,EACT7W,OAAQ0D,EAAMqT,gBAElBlT,EjBgPiG,CACzG3E,KAAM,qBACNC,QAAS,CAAE6X,kBiBlPuBtT,EAAMwS,oBAAoB1O,GjBkP9ByP,iBiBlPkCH,KAf3C,SAiBPvV,EAAe,OAAQZ,EAAW,yBAAqB+C,EAAMwS,oBAAoB1O,IAAMsP,GAjBhF,OAkBbjT,EAASlE,EAAoB,CAAE0C,QAAS,6BAA8ByC,SAAU,aAChFjB,EAASpE,GAAmB,IAC5BiE,EAAMwT,8BAA6B,GApBtB,kDAuBbnS,QAAQC,IAAI,KAAM3C,SAvBL,0DAAH,sDA2BlB,OACI,mCACI,cAAC8U,GAAA,EAAD,CACIC,KAAM1T,EAAM2T,sBACZC,QAAS5T,EAAMwT,6BACfK,sBAAoB,EACpBC,kBAAmBC,KACnBC,cAAe,CACXC,QAAS,KANjB,SASI,cAACC,GAAA,EAAD,CAAMC,GAAInU,EAAM2T,sBAAhB,SACI,cAACS,GAAA,EAAD,CAAK1R,UAAWxC,EAAQsR,YAAxB,SACI,cAAC6C,GAAA,EAAD,CAAY7Q,QAAQ,KAAK8Q,UAAU,KAAnC,SACI,uBAAM5R,UAAWxC,EAAQgR,KAAM7B,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAA7D,UACI,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAauE,MAAM,WAAW5B,MAAO3B,EAAMwS,oBAAoBvP,UAAWO,QAAQ,WAAWY,KAAK,UAChI,cAAC,KAAD,CAAyB4B,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWxC,EAAQlB,YAAayE,SAAU,SAAC4C,GAAD,OAAUsM,EAAgBtM,IAAO1E,MAAO+Q,EAClGxM,gBAAc,EAAC1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,cAC1E0N,oBAAqB,CACjB,aAAc,eACftN,UAAQ,MAGnB,eAACc,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,yBAAf,gCACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,yBAAyB4K,aAAcqD,EAAmB,MAAQ,KAAMpP,SAAU,kBAAMqP,GAAqBD,IAAmBlP,UAAQ,EAAxJ,UACI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,KAAhB,uBAGNkR,GACE,cAAC,KAAD,CAAyB7M,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWxC,EAAQlB,YAAayE,SAAU,SAAC4C,GAAD,OAAU2M,EAAW3M,IAAO1E,MAAOoR,EAC7F7M,gBAAc,EAAC1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,WAC1E0N,oBAAqB,CACjB,aAAc,eACftN,UAAWkP,MAI1B,sBAAKnQ,UAAWxC,EAAQmR,QAAxB,UACI,cAACtN,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAK/N,QAAQ,YAAYQ,MAAM,YAAYC,QAAS,kBAAMjE,EAAMwT,8BAA6B,IAAxH,oBACA,cAACzP,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAK/V,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAxE,kCChJrB,SAASuQ,GAASvU,GAC7B,IAAMG,EAAWC,cACXoU,EAAcnU,aAAY,SAACC,GAAD,OAAsBA,EAAMmU,gBAFnB,EAGIlU,oBAAkB,GAHtB,mBAGlCmU,EAHkC,KAGlBC,EAHkB,KAIrCC,EAAWC,cACXxB,EAAiBuB,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IACzF1G,EAAiBC,iBAA8B,MANZ,EAQTV,mBAASP,EAAMhC,MARN,mBAQlCmS,EARkC,KAQxBC,EARwB,KASzC7O,qBAAU,WACN6O,EAAYpQ,EAAMhC,QACnB,CAACgC,IAXqC,IAiHpC,EAjHoC,EAaLO,mBAAsB,IAAIiF,KAAK,wBAb1B,mBAalCuP,EAbkC,KAatBC,EAbsB,OAcXzU,mBAAsB,IAAIiF,KAAK,wBAdpB,mBAclCuN,EAdkC,KAczBC,EAdyB,KAuBnCiC,EAAgB,SAACvT,GACnB,IAAIC,EAAQD,EAAEE,OAAOD,MACfvE,EAAOsE,EAAEE,OAAOxE,KACtB+C,ElB2D8F,CAClG3E,KAAM,gCACNC,QkB7DgD,eAAG2B,EAAOuE,MA1BjB,EA6BKpB,oBAAkB,GA7BvB,mBA6BlC2U,EA7BkC,KA6BjBC,EA7BiB,OA8Ba5U,mBAAiB,IA9B9B,mBA8BlC6U,EA9BkC,KA8BbC,EA9Ba,OA+BuB9U,mBAAiB,MA/BxC,mBA+BlC+U,GA/BkC,KA+BRC,GA/BQ,KAgCnCC,GAAa,uCAAG,WAAO9T,GAAP,iBAAAzD,EAAA,yDAClByD,EAAEkN,kBACuB,IAArBsG,EAFc,0CAIWrX,EAAe,OAAQZ,EAAW,uBAAmBoW,EAAnB,gBACnD,CACIlR,cAAe+S,EACfzC,UAAWsC,EACXhC,QAAsC,OAA7BuC,GAAoCvC,GAAU,IAAIvN,MAAOC,cAAgB,GAClFmN,QAAsC,QAA7B0C,GACThZ,OAAQ+W,EACRpQ,UAAWmS,IAXT,OAIN5W,EAJM,OAeNiX,EAAejX,EAASR,KAAKkE,SAAS1D,EAASR,KAAKkE,SAASf,OAAS,GAC1EhB,ElB+C8E,CAC1F3E,KAAM,mBACNC,QkBhDgB,CACI0G,cAAesT,EAAatT,cAC5BsQ,UAAWgD,EAAahD,UACxBM,QAAS0C,EAAa1C,QACtBH,QAAS6C,EAAa7C,QACtBtW,OAAQmZ,EAAanZ,OACrB2G,UAAWwS,EAAaxS,aAvBtB,kDA4BV9C,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SA9BR,0DAAH,sDAhCsB,GAmEG4B,oBAAkB,GAnErB,qBAmElCO,GAnEkC,MAmElBC,GAnEkB,SAoETR,mBAAc,IApEL,qBAoElC2B,GApEkC,MAoExBuH,GApEwB,MAqEnCC,GAAW,uCAAG,0CAAAzL,EAAA,4DAAO0L,EAAP,+BAA6B,IAC7BxI,OAAS,GADT,iEAMZJ,IAAkB,GANN,SAOSlD,EAAe,MAAOZ,EAAW,gDAA4C0M,IAPtF,OAORnL,EAPQ,OAQZiL,GAAYjL,EAASR,MACrB+C,IAAkB,GATN,kDAYZZ,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAClBoC,IAAkB,GAClB0I,GAAY,IAhBA,0DAAH,qDArEwB,GAyFclJ,mBAAc,IAzF5B,qBAyFlCiS,GAzFkC,MAyFbkD,GAzFa,SA0FiBnV,oBAAkB,GA1FnC,qBA0FlCoT,GA1FkC,MA0FXgC,GA1FW,MAiGnCrT,GAAkB,uCAAG,WAAOX,GAAP,SAAA1D,EAAA,sDACnB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChCiH,GAAY/H,KACb,KAPoB,2CAAH,sDAUxB,OAAK3B,EAQG,0BAAS0C,UAAWC,KAAC,SAArB,UACoC,KAAvB,OAARwN,QAAQ,IAARA,GAAA,UAAAA,EAAUjO,gBAAV,eAAoBf,SACjB,oBAAIuB,UAAWC,KAAE,qBAAjB,8BAGK,OAARwN,QAAQ,IAARA,OAAA,EAAAA,EAAUyF,cACP,sBAAKlT,UAAWC,KAAE,qBAAlB,gEAEI,sBAAMD,UAAWC,KAAE,4BAAnB,gBAAiDwN,QAAjD,IAAiDA,OAAjD,EAAiDA,EAAUyF,iBAIlEpB,EAAYtS,SAASf,OAAS,GAAKqT,EAAYtS,SAC3C2C,KAAI,SAACgR,EAASC,GACX,OACI,sBAAKpT,UAAWC,KAAE,iBAAlB,UACI,cAACW,EAAA,EAAD,CAAWC,MAAM,WAAWb,UAAWC,KAAE,wBAAyBhB,MAAOkU,EAAQ5S,UAAWO,QAAQ,WAAWY,KAAK,UACpH,cAACd,EAAA,EAAD,CAAWC,MAAM,cAAcb,UAAWC,KAAE,wBAAyBnH,KAAK,OAAOmG,MAAOkU,EAAQpD,UAAYpL,GAAewO,EAAQpD,WAAa,GAAIjP,QAAQ,WAAWY,KAAK,WAE1KyR,EAAQjD,SACN,cAACtP,EAAA,EAAD,CAAWC,MAAM,WAAWb,UAAWC,KAAE,wBAAyBnH,KAAK,OAAOmG,MAAOkU,EAAQ9C,QAAU1L,GAAewO,EAAQ9C,SAAW,GAAIvP,QAAQ,WAAWY,KAAK,UAGxKyR,EAAQjD,SACL,cAACtP,EAAA,EAAD,CAAWC,MAAM,WAAWb,UAAWC,KAAE,wBAAyBnH,KAAK,OAAOmG,MAAM,qBAAqB6B,QAAQ,WAAWY,KAAK,UAGrI,qBAAKN,GAAIgS,EAAQ,GAAI7R,QAAS,SAACvC,GAAD,OAnDrBqU,EAmDwDD,EAlDzFH,IAAyB,QACzBD,GAAwBlB,EAAYtS,SAAS6T,IAFb,IAACA,GAmDT,SAAyE,cAAChS,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,sBAZpC6R,EAAQ/R,OAiB7D,qBAAKG,QAAS,kBAAM0Q,GAAoBD,IAAxC,SACI,cAAC1E,GAAD,CAAQC,KAAK,mBAGhByE,GACG,uBAAMhS,UAAWC,KAAE,2BAA6B,IAAMA,KAAC,eAAoB0M,SAAU,SAAC3N,GAAD,OAAO8T,GAAc9T,IAA1G,UACI,cAACkB,EAAA,EAAD,CACIF,UAAWC,KAAE,wBACbE,QAASX,IAAY,GACrBY,QAAShC,GACTiC,eAAgB,SAACC,GAAD,OACXA,EAAOC,UAAaD,EAAOC,UAAUC,WAAa,IAAO,KACzDF,EAAOG,SAAWH,EAAOG,SAASD,WAAa,GAAK,KAEzDE,YAAa,SAACC,GAAD,OACT,cAACC,EAAA,EAAD,2BACQD,GADR,IAEIE,MAAM,WACNC,QAAQ,WACRE,WAAS,EACTC,UAAQ,EACRF,SAAU,SAAA/B,GAAC,OAAIY,GAAmBZ,EAAEE,OAAOD,OAAS,SAG5D8B,SAAU,SAAC/B,EAAGC,GACV0T,EAAuB1T,GAASA,EAAMsB,UAAYtB,EAAMsB,UAAY,IACpEkS,EAAmBxT,GAASA,EAAMmC,GAAKnC,EAAMmC,IAAM,MAI3D,cAAC,KAAD,CAAyBkC,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWC,KAAE,wBAAyBvF,KAAK,sBAAsBuE,MAAOoT,EAAY7O,gBAAc,EAAC1C,QAAQ,SAC3H2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,cAC1CE,SAAU,SAACzF,GAnKnCgX,EAmKmEhX,IAAOgY,QAAS,SAACtU,GAAD,OAAOuT,EAAcvT,IAAIuP,oBAAqB,CACrG,aAAc,eACftN,UAAQ,MAInB,eAACc,EAAA,EAAD,CAAa/B,UAAWC,KAAE,wBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,sBAAf,gCACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,sBAAsB4K,aAAa,KAAK/L,SAAU,SAAC/B,GAAD,OAAO6T,GAA4B7T,EAAEE,OAAOD,MAAQ,KAAKgC,UAAQ,EAAnI,UACI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,KAAhB,sBAIsB,OAA7B2T,IACG,cAAC,KAAD,CAAyBtP,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWC,KAAE,wBAAyBvF,KAAK,iBAAiBuE,MAAOoR,EAAS7M,gBAAc,EAAC1C,QAAQ,SACnH2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,WAC1CE,SAAU,SAACzF,GAlLvCgV,EAkLoEhV,IAAOgY,QAAS,SAACtU,GAAD,OAAOuT,EAAcvT,IAAIuP,oBAAqB,CAClG,aAAc,eACftN,SAAuC,OAA7B2R,OAKzB,cAACvR,EAAA,EAAD,CAAQrB,UAAWC,KAAE,gBAAiBnH,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAA9E,yBAGR,cAACuO,GAAD,CACIoB,sBAAuBA,GACvBH,6BAnHqB,kBAAMmC,IAAyB,IAoHpDnD,oBAAqBA,GACrBa,eAAgBA,OAvGxB,cAACpI,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,yBCjHrCnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,cAMR,SAASgX,GAASjW,GAC7B,IAAMG,EAAWC,cACXF,EAAUtB,KACZrD,EAA4B8E,aAAY,SAACC,GAAD,OAAsBA,EAAM/E,UAH/B,EAITgF,mBAASP,EAAMhC,MAJN,mBAIlCmS,EAJkC,KAIxBC,EAJwB,KAKzC7O,qBAAU,WACN6O,EAAYpQ,EAAMhC,QACnB,CAACgC,IAEJ,IATyC,EA4BCO,oBAAkB,GA5BnB,mBA4BlC2V,EA5BkC,KA4BnBC,EA5BmB,OA6BK5V,mBAAiB,IA7BtB,mBA6BlC6V,EA7BkC,KA6BjBC,EA7BiB,KA8BrChJ,EAAgBlQ,EAAU,iBACxBmZ,EAAiB,uCAAG,4BAAArY,EAAA,6DACtBkY,GAAiB,GADK,kBAGGtY,EAAe,MAAOZ,EAAW,uBAAmBoQ,IAHvD,OAGd7O,EAHc,OAIlB6X,EAAmB7X,EAASR,KAAKiF,UAAY,IAAMzE,EAASR,KAAKmF,UAJ/C,gDAOlBhD,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SATA,yDAAH,qDA/BkB,EA4CH4B,mBAAyC4P,EAASrH,YAAczB,GAAe8I,EAASrH,aAAe,IA5CpG,mBA4ClCA,EA5CkC,KA4CrByN,EA5CqB,KA6CzChV,qBAAU,WACNgV,EAAevW,EAAMhC,KAAK8K,eAC3B,CAAC9I,EAAMhC,KAAK8K,cAMf,OAAK9I,EAMImQ,EAASrM,GAEV,0BAASpB,UAAWC,KAAC,SAArB,UACI,sBAAKD,UAAWC,KAAE,mBAAlB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,aAAa5B,KAAK,OAAOmG,MAAO0F,IAAuB,OAAR8I,QAAQ,IAARA,OAAA,EAAAA,EAAUqG,YAAa,IAAKhT,QAAQ,WAAWY,KAAK,QAAQb,MAAM,iBACjK,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,YAAY5B,KAAK,OAAO+H,MAAM,cAAc5B,MAAO0F,GAAe8I,EAASsG,WAAYjT,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MACtM,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAauE,MAAM,UAAU5B,MAAOwO,EAASrM,GAAItI,KAAK,SAASgI,QAAQ,WAAWY,KAAK,UACrH,cAACd,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,QAAQmG,MAAM,QAAQiM,aAAcW,EAAShM,MAAOX,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MACnK,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,YAAYmG,MAAM,aAAaiM,aAAcW,EAASlN,UAAWO,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MAChL,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,WAAWmG,MAAM,YAAYiM,aAAcW,EAAShN,SAAUK,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MAC7K,cAAC,KAAD,CAAyBsE,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWxC,EAAQlB,YAAa5B,KAAK,cAAc8I,gBAAc,EAAC1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAASzE,MAAOmH,EAAavF,MAAM,gBAAgBE,SAAU,SAAC4C,GAAD,OAtBxL,SAACA,GACxBlG,EAAStE,EAAmB,CAAE,YAAewK,KAC7CkQ,EAAelQ,GAoB0MsQ,CAAmBtQ,QAEhO,cAAC/C,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,gBAAgBmG,MAAM,gBAAgBiM,aAAcW,EAASpH,cAAevF,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MAC3L,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,OAAOmG,MAAM,OAAOiM,aAAcW,EAASnH,KAAMxF,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MAChK,eAAC+C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,cAAf,mBACA,cAACa,EAAA,EAAD,CAAQC,QAAQ,cAAcxH,KAAK,QAAQoS,aAAcW,EAAS7P,MAAQ6P,EAAS7P,MAAMyE,IAAM,IAAMoL,EAAS7P,MAAMlD,KAAO,WAAYqG,SAAU,SAAC/B,GAAD,OA9D7I,SAACA,GACrB,IAAIC,EAAQD,EAAEE,OAAOD,MACfvE,EAAOsE,EAAEE,OAAOxE,KAEtBuE,EAAQA,EAAM6F,MAAM,KACpBrH,EAAStE,EAAmB,eACvBuB,EACD,CACI2H,IAAKpD,EAAM,GACXvE,KAAMuE,EAAM,OAqDoJiV,CAAgBlV,IAAxK,SACKnG,EAAO4F,OAAS,GAAK5F,EAAOsJ,KAAI,SAACvE,GAC9B,OACI,cAACwE,EAAA,EAAD,CAA0BnD,MAAOrB,EAAMyE,IAAM,IAAMzE,EAAMlD,KAAzD,SAAgEkD,EAAMlD,MAAvDkD,EAAMyE,aAKrC,cAACzB,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,UAAUmG,MAAM,UAAUiM,aAAcW,EAASlH,QAASzF,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MACzK,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,cAAcmG,MAAM,eAAeiM,aAAcW,EAAS9L,YAAab,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MACtL,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,UAAUmG,MAAM,mBAAmBiM,aAAcW,EAAS0G,QAASrT,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MAClL,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,YAAY5B,KAAK,SAAS+H,MAAM,aAAaiM,aAAcW,EAAS2G,UAAY3G,EAAS2G,UAAY,GAAItT,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,MACxN,eAAC+C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,YAAf,kCACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,YAAYxH,KAAK,SAASoS,aAAcW,EAAS4G,OAAS,MAAQ,KAAMtT,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,IAAvH,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,KAAhB,sBAGR,cAAC2B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa5B,KAAK,gBAAgB5B,KAAK,SAAS+H,MAAM,2BAA2BiM,aAAcW,EAAS6G,cAAgB7G,EAAS6G,cAAgB,GAAIxT,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,SAGtP,sBAAKgB,UAAWC,KAAE,mBAAlB,UACI,eAAC8B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,yBAAf,yBACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,wBAAwBxH,KAAK,eAAeoS,aAAcW,EAAS8G,WAAWC,kBAAmBzT,SAAU,SAAC/B,GAAD,OA5FxHyV,EA4F6IzV,EAAEE,OAAOD,MA3FzKxB,EnBuFsB,SAACgX,GAAD,MAAyC,CACnE3b,KAAM,mBACNC,QAAS0b,GmBzFIC,CAAeD,EAAS,UACjCb,IAFkB,IAACa,GA4FH,UACI,cAACrS,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,4BAGR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,kBAAf,uBACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,kBAAkBxH,KAAK,WAAWoS,aAAcW,EAASkH,SAAU5T,SAAU,SAAC/B,GAAD,OAAO1B,EAAM0W,QAAQhV,IAAlH,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,qBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,gBAAhB,yBAIJuU,GACA,sBAAKxT,UAAWC,KAAE,mBAAlB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,SAASmG,MAAO0F,IAAe,IAAI7B,MAAOC,eAAgBjC,QAAQ,WAAWY,KAAK,QAAQb,MAAM,gBAChJ,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOmG,MAAOyU,EAAiB5S,QAAQ,WAAWY,KAAK,QAAQb,MAAM,kBAIhF,OAAzC4M,EAAS8G,WAAWC,oBAA+BhB,GACnD,sBAAKxT,UAAWC,KAAE,mBAAlB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,SAASmG,MAAO0F,GAAe8I,EAAS8G,WAAW5Q,MAAO7C,QAAQ,WAAWY,KAAK,QAAQb,MAAM,gBAChJ,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOmG,MAAOwO,EAAS8G,WAAWK,iBAAkB9T,QAAQ,WAAWY,KAAK,QAAQb,MAAM,iCAS1J,oFAjFA,cAAC0H,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WCjE5B,SAASwH,KACpB,IAAMpX,EAAWC,cACXlC,EAAQf,EAAU,SAClBqa,EAAcnX,aAAY,SAACC,GAAD,OAAsBA,EAAMmU,gBACxDG,EAAWC,cACXvY,EAASsY,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IALxD,EAMOnH,oBAAS,GANhB,mBAMXkX,GANW,aAQClX,mBAAS,MARV,mBAQxB4P,EARwB,KAQdC,EARc,KASzBsH,EAAW,uCAAG,4BAAAzZ,EAAA,+EAESJ,EAAe,MAAOZ,EAAW,4BAAwBX,GAAU,MAF5E,OAERkC,EAFQ,OAGZiZ,GAAe,GACfrH,EAAY5R,EAASR,MACrBmC,EAAStE,EAAmB2C,EAASR,OALzB,gDAQZqD,QAAQC,IAAI,KAAM3C,SARN,yDAAH,qDAWjB4C,qBAAU,WACNmW,MACD,IAEH,IAAMjW,EAAe,SAACC,GAClB,IAAIC,EAAQD,EAAEE,OAAOD,MACfvE,EAAOsE,EAAEE,OAAOxE,KAET,OAATA,GAA0B,kBAATA,IACjBuE,EAAQkC,SAASlC,IAER,WAATvE,IACkBuE,EAAR,QAAVA,GAEJxB,EAAStE,EAAmB,eAAGuB,EAAOuE,MAGpCgW,EAAc,uCAAG,sBAAA1Z,EAAA,+EAETJ,EAAe,OAAQZ,EAAW,4BAAwBX,GAAUkb,GAF3D,OAGfrX,EAASlE,EAAoB,CAAE0C,QAAS,4BAA6ByC,SAAU,aAC/EjB,EAASpE,GAAmB,IAC5BgT,GAAQF,KAAR,wBAA8BvS,IAC9B0S,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,WANrB,gDASf7N,QAAQC,IAAI,KAAM3C,SATH,yDAAH,qDAapB,OAAKT,EAGKiS,EAKF,mCACKA,GACG,eAAChB,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,SAArC,UACI,cAACsT,GAAD,CAAUjY,KAAMmS,EAAUuG,QAASjV,IACnC,cAACoO,EAAA,EAAD,IACA,cAAC0E,GAAD,CAAUvW,KAAMmS,IAChB,cAACN,EAAA,EAAD,IACA,cAACK,GAAD,CAAiBlS,KAAMmS,EAAUuG,QAASjV,IAC1C,cAACoO,EAAA,EAAD,IACA,cAACc,GAAD,CAAU3S,KAAMmS,EAAUuG,QAASjV,IACnC,cAACoO,EAAA,EAAD,IACA,sBAAKnN,UAAWC,KAAE,iBAAlB,UACI,cAACoB,EAAA,EAAD,CAAQrB,UAAWC,KAAE,sBAAuBa,QAAQ,YAAYQ,MAAM,YAAtE,wBACA,cAACD,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAM0T,KAA3D,0BAjBZ,cAAC1M,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WAH/B,oBAAIvL,MAAO,CAAE7E,QAAS,SAAUuL,UAAW,UAA3C,4B,aCrED,SAAS0M,KAGpB,IAFA,IAAIC,EAAUva,SAASC,OAAOiK,MAAM,KAE3BgD,EAAI,EAAGA,EAAIqN,EAAQ1W,OAAQqJ,IAAK,CACrC,IAAIjN,EAASsa,EAAQrN,GACjBsN,EAAQva,EAAOwa,QAAQ,KACvB3a,EAAO0a,GAAS,EAAIva,EAAOya,OAAO,EAAGF,GAASva,EAClDD,SAASC,OAASH,EAAO,2C,wBCalB,SAAS6a,GAAMjY,GAC1B,IAAMG,EAAWC,cACX8X,EAAW7X,aAAY,SAACC,GAAD,OAAsBA,EAAM6X,SAEnDtK,EAAqB,SAACnM,GACxB,IAAMC,EAAQD,EAAEE,OAAOD,MACjBvE,EAAOsE,EAAEE,OAAOxE,KAEtB+C,EtBFwE,CAC5E3E,KAAM,2BACNC,QsBAmC,eAAG2B,EAAOuE,MAGvCyW,EAAuB,SAACC,EAAwCC,GAClEhb,SAASC,OAAT,4BAAuC+a,EAAvC,sBACAhb,SAASC,OAAT,gBAA2B8a,EAAmBra,KAAKua,YAAnD,sBACAjb,SAASC,OAAT,wBAAmC8a,EAAmBra,KAAK1B,OAA3D,sBACAgB,SAASC,OAAT,0BAAqC8a,EAAmBra,KAAKwa,KAA7D,sBACAlb,SAASC,OAAT,0BAAqC8a,EAAmBra,KAAKya,cAAgB,IAAMJ,EAAmBra,KAAK0a,aAA3G,uBAGE/J,EAAY,uCAAG,WAAOjN,GAAP,iBAAAzD,EAAA,6DACjByD,EAAEkN,iBADe,kBAGQ/Q,EAAe,OAAQZ,EAAc,wBAAyBib,GAHtE,UAGT1Z,EAHS,OAMa,SAFtB8Z,EAA4B9Z,EAASR,KAAKiZ,WAAWC,oBAEA,WAAtBoB,EANtB,iBAOTF,EAAqB5Z,EAAU8Z,GAC/B5W,EAAEE,OAAO+W,QACTxY,EAASlE,EAAoB,CAAE0C,QAAS,gBAAiByC,SAAU,aACnEjB,EAASpE,GAAmB,IAC5BiE,EAAM4Y,kBAAkB5Y,EAAM6Y,eAC9B9J,GAAQF,KAAR,wBAA8BrQ,EAASR,KAAK1B,SAZnC,yCAeHuB,EAAe,OAAQZ,EAAc,yBAA0B,MAf5D,QAgBT2a,KACA5X,EAAM8Y,iBAAiB9Y,EAAM+Y,cAC7B5Y,EAAShE,EAAqB,CAC1B6c,MAAO,iBACPC,gBAAiB,yJACjBC,UAAU,EACVC,eAAe,EACfC,oBAAoB,KAExBrK,GAAQF,KAAK,qBAzBJ,0DA6BiB,MAA1B,KAAMrQ,SAAS2Y,QACfhX,EAASlE,EAAoB,CAAE0C,QAAS,iBAAkByC,SAAU,WACpEjB,EAASpE,GAAmB,KACK,MAA1B,KAAMyC,SAAS2Y,QACtBhX,EAASlE,EAAoB,CAAE0C,QAAS,uCAAwCyC,SAAU,WAC1FjB,EAASpE,GAAmB,MAE5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,KAEhCsF,QAAQC,IAAI,KAAM3C,SAvCL,0DAAH,sDA2ClB,OACI,sBAAK+D,UAAWC,KAAC,MAAjB,UAEI,uBAAMD,UAAWC,KAAE,cAAe0M,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAAhE,UACI,uBAAOgB,UAAWC,KAAE,eAApB,SACI,cAACW,EAAA,EAAD,CAAWZ,UAAWC,KAAE,eAAgBa,QAAQ,WAAWY,KAAK,QAAQT,UAAQ,EAACG,GAAG,QAChF1G,KAAK,QAAQqG,SAAU,SAAC/B,GAAD,OAAOmM,EAAmBnM,IAAIoF,YAAY,YAEzE,uBAAOpE,UAAWC,KAAE,eAApB,SACI,cAACW,EAAA,EAAD,CAAWZ,UAAWC,KAAE,eAAgBa,QAAQ,WAAWY,KAAK,QAAQT,UAAQ,EAACG,GAAG,WAAW1G,KAAK,WAChGic,aAAa,mBAAmB7d,KAAK,WAAWiI,SAAU,SAAC/B,GAAD,OAAOmM,EAAmBnM,IAAIoF,YAAY,eAE5G,cAAC/C,EAAA,EAAD,CAAQvI,KAAK,SAASkH,UAAWC,KAAE,aAAca,QAAQ,YAAYQ,MAAM,UAA3E,uBAGJ,sBAAKtB,UAAWC,KAAE,gBAAlB,UACI,cAAC,KAAD,CAASD,UAAWC,KAAE,cAAe2W,GAAG,kBAAxC,8BACA,cAAC,KAAD,CAAS5W,UAAWC,KAAE,cAAe2W,GAAG,gBAAxC,4B,wBCnFD,SAASC,KACpB,IAAMpZ,EAAWC,cACb7E,EAA4B8E,aAAY,SAACC,GAAD,OAAsBA,EAAM/E,UACpEyO,EAAW3J,aAAY,SAACC,GAAD,OAAsBA,EAAMkZ,aAAN,YAC7CrV,EAAQ9D,aAAY,SAACC,GAAD,OAAsBA,EAAMkZ,aAAN,SAC1CC,EAAcpZ,aAAY,SAACC,GAAD,OAAsBA,EAAMkZ,gBACtDvQ,EAAU5I,aAAY,SAACC,GAAD,OAAsBA,EAAMkZ,aAAN,WANb,EAQWjZ,mBAAS,IARpB,mBAQ5B0J,EAR4B,KAQXyP,EARW,OASSnZ,oBAAkB,GAT3B,mBAS5B2J,EAT4B,KASZyP,EATY,OAUepZ,oBAAkB,GAVjC,mBAU5BqZ,EAV4B,KAUTC,EAVS,OAWOtZ,oBAAkB,GAXzB,mBAW5BuZ,EAX4B,KAWbC,EAXa,OAYSxZ,oBAAkB,GAZ3B,mBAY5ByZ,EAZ4B,KAYZC,EAZY,KAc7BpM,EAAqB,SAACnM,GACxB,IAAIC,EAAQD,EAAEE,OAAOD,MACfvE,EAAOsE,EAAEE,OAAOxE,KAET,UAATA,GACAuE,EAAQA,EAAM6F,MAAM,KACpBrH,EAASzE,EAA6B,eACjC0B,EACD,CACI2H,IAAKpD,EAAM,GACXvE,KAAMuE,EAAM,QAKpBxB,EAASzE,EAA6B,eAAG0B,EAAOuE,MAIlD2L,EAA0B,SAACC,EAAsD5O,GACnF4O,GAAkB,GAClBpN,EAASlE,EAAoB,CAAE0C,QAASA,EAASyC,SAAU,WAC3DjB,EAASpE,GAAmB,IAC5BiT,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAGlCP,EAAY,uCAAG,WAAOjN,GAAP,uBAAAzD,EAAA,yDACjByD,EAAEkN,iBADe,EAE0B7E,GAAiBC,EAAUC,GAFrD,mBAEZiQ,EAFY,KAEMC,EAFN,KAGbC,EAA0BvP,GAAgB5B,GAEzCyB,GAAcvG,GALF,gBAMbmJ,EAAwByM,EAAkB,gCAN7B,0BAQPG,EARO,iBASb5M,EAAwBuM,EAAsB,qFATjC,2BAWPM,EAXO,iBAYb7M,EAAwBqM,EAAmB,0BAZ9B,2BAcPS,EAdO,iBAeb9M,EAAwB2M,EAAmB,sBAf9B,+BAkBbN,GAAkB,GAClBE,GAAqB,GACrBE,GAAiB,GACjBE,GAAkB,GArBL,oBAwBHpc,EAAe,OAAQZ,EAAc,2BAA4Bwc,GAxB9D,QAyBTtZ,EAAShE,EAAqB,CAC1B6c,MAAO,+BACPC,gBAAiB,4SACjBC,UAAU,EACVC,eAAe,EACfC,oBAAoB,KAExB1X,EAAEE,OAAO+W,QACT3J,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,WACpCH,GAAQF,KAAK,qBAlCJ,mDAqCqB,MAA1B,KAAMrQ,SAAS2Y,QACfhX,EAASlE,EAAoB,CAAE0C,QAAS,oCAAqCyC,SAAU,WACvFjB,EAASpE,GAAmB,MAE5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,KAEhCsF,QAAQC,IAAI,KAAM3C,SA5CT,2DAAH,sDAxCiB,EA0FD0b,IAAM9Z,SACpC,IAAIiF,KAAK,wBA3FsB,mBA0F5B8U,EA1F4B,KA0FjBC,EA1FiB,OA6FDha,mBAAc,IAAIiF,KAAK,wBA7FtB,gCA+GnC,OACI,qBAAK9C,UAAWC,KAAC,aAAjB,SAEI,uBAAMD,UAAWC,KAAE,qBAAsB0M,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAAvE,UACI,cAAC4B,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWG,UAAQ,EAACvG,KAAK,QAAQmG,MAAM,QAAQE,SAAUoK,KAC3HiM,GAAiB,sBAAMtV,MAAO,CAAER,MAAO,MAAOxE,UAAW,SAAxC,0CACnB,cAAC8D,EAAA,EAAD,CAAW9H,KAAK,WAAWkH,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWG,UAAQ,EAACvG,KAAK,WAAWmG,MAAM,WAAWE,SAAUoK,IACnJ,cAACvK,EAAA,EAAD,CAAW9H,KAAK,WAAWkH,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWG,UAAQ,EAACvG,KAAK,kBAAkBmG,MAAM,mBAAmBE,SAAU,SAAC/B,GAAD,OAAOgY,EAAmBhY,EAAEE,OAAOD,WACnMuI,GAAkB,sBAAM1F,MAAO,CAAER,MAAO,MAAOxE,UAAW,SAAxC,qCAClBoa,GAAqB,sBAAMpV,MAAO,CAAER,MAAO,MAAO9E,aAAc,QAA3C,+FACvB,cAACoE,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWG,UAAQ,EAACvG,KAAK,YAAYmG,MAAM,aAAaE,SAAUoK,IACtI,cAACvK,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWG,UAAQ,EAACvG,KAAK,WAAWmG,MAAM,YAAYE,SAAUoK,IAEpI,cAAC,KAAD,CAAyB7H,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoB7I,KAAK,cAAcsF,UAAWC,KAAE,0BAA2BhB,MAAO2Y,EAAWpU,gBAAc,EAAC1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,kBACvKE,SAAU,SAACzF,GAAD,OA/BA,SAACqI,GAC3BkU,EAAalU,GACb,IACQA,IACAA,EAAO,IAAIb,KAAK,IAAIA,KAAKa,GAAM6M,SAAS,GAAI,GAAI,KAAKzN,cACrDtF,EAASzE,EAA6B,CAAE,YAAe2K,MAE7D,MAAO3E,GACLL,QAAQC,IAAI,iBAuBoBkZ,CAAsBxc,IAAOiT,oBAAqB,CAClE,aAAc,mBAK1B,cAAC3N,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWpG,KAAK,gBAAgBmG,MAAM,iBAAiBE,SAAUoK,IACrI,cAACvK,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWpG,KAAK,OAAOmG,MAAM,OAAOE,SAAUoK,IAElH,eAACpJ,EAAA,EAAD,CAAa/B,UAAWC,KAAE,uBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,cAAcH,UAAQ,EAArC,mBACA,cAACgB,EAAA,EAAD,CAAQC,QAAQ,cAAcxH,KAAK,QAAQqG,SAAU,SAAC/B,GAAD,OAAOmM,EAAmBnM,IAAIiC,UAAQ,EAA3F,SACKpI,EAAO4F,OAAS,GAAK5F,EAAOsJ,KAAI,SAACvE,GAC9B,OACI,cAACwE,EAAA,EAAD,CAA0BnD,MAAOrB,EAAMyE,IAAM,IAAMzE,EAAMlD,KAAzD,SAAgEkD,EAAMlD,MAAvDkD,EAAMyE,aAMrC,cAACzB,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWG,UAAQ,EAACvG,KAAK,UAAUmG,MAAM,UAAUE,SAAUoK,KAC/HmM,GAAkB,sBAAMxV,MAAO,CAAER,MAAO,MAAOxE,UAAW,QAAxC,gCACpB,cAAC8D,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWG,UAAQ,EAACvG,KAAK,cAAcmG,MAAM,eAAeE,SAAUoK,IAC1I,cAACvK,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWM,GAAG,UAAUP,MAAM,mBAAmBnG,KAAK,UAAUqG,SAAUoK,IAC9I,cAACvK,EAAA,EAAD,CAAWZ,UAAWC,KAAE,sBAAuByB,KAAK,QAAQZ,QAAQ,WAAWD,MAAM,WAAWnG,KAAK,cAAcqG,SAAUoK,IAU7H,cAAC9J,EAAA,EAAD,CAAQvI,KAAK,SAASkH,UAAWC,KAAE,oBAAqBa,QAAQ,YAAYQ,MAAM,UAAlF,2B,qFCnKD,SAASyW,GAAaza,GAA+B,IAAD,EACzBqa,IAAM9Z,SAA6B,MADV,mBACxDma,EADwD,KAC3CC,EAD2C,KAOzDC,EAAqB,WACvBD,EAAe,OAGnB,OACI,sBAAKjY,UAAWC,KAAC,aAAjB,UACI,cAACkY,GAAA,EAAD,CAAYnY,UAAWC,KAAE,0BAA2ByB,KAAK,SAASH,QAVhD,SAAC6W,GACvBH,EAAeG,EAAMC,gBAS6E/W,MAAM,UAApG,SACI,cAAC,KAAD,CAAUtB,UAAWC,KAAE,yBAG3B,cAACqY,GAAA,EAAD,CAAMC,SAAUP,EACZQ,aAAW,EACXxH,KAAMyH,QAAQT,GACd9G,QAASgH,EACT3W,QAAS2W,EACTpW,MAAO,CAAEyK,IAAK,GAAImM,QAAS,GAL/B,SAOI,sBAAK1Y,UAAWC,KAAE,qBAAlB,UAEI,cAAC,KAAD,CAAS2W,GAAE,wBAAmBtZ,EAAMqN,eAAiB3K,UAAWC,KAAE,qBAAlE,kBAIoB,kBAAnB3C,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACzC,cAAC,KAAD,CAAShC,GAAG,kBAAkB5W,UAAWC,KAAE,qBAA3C,qBAKgB,kBAAnB3C,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACzC,cAAC,KAAD,CAAShC,GAAG,iBAAiB5W,UAAWC,KAAE,qBAA1C,2BAKH3C,EAAM9B,OACH,cAAC,KAAD,CAASob,GAAG,oBAAoB5W,UAAWC,KAAE,qBAA7C,0BAKgB,kBAAnB3C,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACzC,cAAC,KAAD,CAAShC,GAAG,aAAa5W,UAAWC,KAAE,qBAAtC,uBAKJ,cAAC,KAAD,CAAS2W,GAAG,sBAAsB5W,UAAWC,KAAE,qBAA/C,gCAIC3C,EAAM9B,OACH,cAAC,KAAD,CAASob,GAAG,0BAA0B5W,UAAWC,KAAE,qBAAnD,4CCxET,WAA0B,sCCI1B,SAAS4Y,KACpB,OACI,mBAAG3S,KAAK,2BAA2BhH,OAAO,SAA1C,SACI,qBAAKc,UAAWC,KAAE,eAAgB6Y,IAAKC,GAAMC,IAAI,WCI9C,SAASC,GAAW3b,GAC/B,OACI,sBAAK0C,UAAWC,KAAE,cAAgB,IAAMA,KAAC,WAAzC,UACwB,kBAAnB3C,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACzC,cAAC,KAAD,CAAShC,GAAG,kBAAkB5W,UAAWC,KAAE,eAA3C,qBAKgB,kBAAnB3C,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACzC,cAAC,KAAD,CAAShC,GAAG,iBAAiB5W,UAAWC,KAAE,eAA1C,2BAKH3C,EAAM9B,OACH,cAAC,KAAD,CAASob,GAAG,oBAAoB5W,UAAWC,KAAE,eAA7C,0BAKgB,kBAAnB3C,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACzC,cAAC,KAAD,CAAShC,GAAG,aAAa5W,UAAWC,KAAE,eAAtC,uBAIJ,cAAC,KAAD,CAAS2W,GAAG,sBAAsB5W,UAAWC,KAAE,eAA/C,gCAIC3C,EAAM9B,OACH,cAAC,KAAD,CAASob,GAAG,0BAA0B5W,UAAWC,KAAE,eAAnD,uC,2EClCV/D,GAAYC,aAAW,SAACC,GAAD,MAAY,CACrC8c,WAAY,CACRzc,YAAaL,EAAM+c,QAAQ,IAE/B/J,MAAO,CACH3S,YAAaL,EAAM+c,QAAQ,IAE/BC,WAAY,CACRnK,gBAAiB,cACjBoK,OAAQ,OACRC,OAAQ,UACRhY,MAAO,sBAEXiY,YAAa,CACTtc,QAAS,OAYF,SAASuc,GAAgBlc,GACpC,IAAME,EAAUtB,KADqD,EAE7C2B,oBAAkB,GAF2B,mBAE9DmT,EAF8D,KAExDyI,EAFwD,KAG/DC,EAAYnb,iBAA0B,MAMtCob,EAAc,SAACvB,EAAY1d,GACzBgf,EAAU7Z,SAAW6Z,EAAU7Z,QAAQ+Z,SAASxB,EAAMlZ,UAG1Dua,GAAQ,GACK,WAAT/e,GACA4C,EAAMuc,WAIRC,EAAoB,SAAC1B,GACL,QAAdA,EAAM/V,MACN+V,EAAMlM,iBACNuN,GAAQ,KAKVM,EAAWxb,iBAAOyS,GASxB,OARAnS,qBAAU,YACmB,IAArBkb,EAASla,UAA6B,IAATmR,GAC7B0I,EAAU7Z,QAASma,QAGvBD,EAASla,QAAUmR,IACpB,CAACA,IAGA,sBAAKhR,UAAWC,KAAE,cAAlB,UACI,wBAAQD,UAAWxC,EAAQ4b,WAAYa,IAAKP,EAAWQ,gBAAelJ,EAAO,sBAAmB9V,EAAWif,gBAAc,OAAO5Y,QAjCnH,WACjBkY,GAAQ,SAACM,GAAD,OAAeA,MAgCnB,SACI,cAAC,KAAD,CAAmBvX,SAAS,QAAQV,MAAO,CAAEsY,KAAM,eAEvD,cAACC,GAAA,EAAD,CAAQrJ,KAAMA,EAAMuH,SAAUmB,EAAU7Z,QAASya,YAAU,EAA3D,SACK,gBAAGC,EAAH,EAAGA,gBAAH,EAAoBC,UAApB,OACG,cAACC,GAAA,EAAD,2BAAUF,GAAV,aACI,cAACG,GAAA,EAAD,UACI,cAACC,GAAA,EAAD,CAAmBC,YAAajB,EAAhC,SACI,eAACkB,GAAA,EAAD,CAAUC,cAAe9J,EAAM5P,GAAG,iBAAiB2Z,UAAWjB,EAA9D,UACKxc,EAAM9B,OAAS,cAAC4G,EAAA,EAAD,CAAUpC,UAAWxC,EAAQ+b,YAAahY,QAASoY,EAAnD,SACZ,cAAC,KAAD,CAAS/C,GAAE,wBAAmBtZ,EAAMqN,eAAiB3K,UAAWC,KAAE,wBAAlE,0BAKH3C,EAAM9B,OAA4B,kBAAnB8B,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACxD,cAACxW,EAAA,EAAD,CAAUpC,UAAWxC,EAAQ+b,YAAahY,QAASoY,EAAnD,SACI,cAAC,KAAD,CAAS/C,GAAG,eAAe5W,UAAWC,KAAE,wBAAxC,2BAKP3C,EAAM9B,OAA4B,kBAAnB8B,EAAMqb,UAA4D,aAA5Brb,EAAMsb,mBACxD,cAACxW,EAAA,EAAD,CAAUpC,UAAWxC,EAAQ+b,YAAahY,QAASoY,EAAnD,SACI,cAAC,KAAD,CAAS/C,GAAG,SAAS5W,UAAWC,KAAE,wBAAlC,qBAKP3C,EAAM9B,OAAS,cAAC4G,EAAA,EAAD,CAAU4Y,YAAU,SAAShb,UAAWxC,EAAQ+b,YAAahY,QAAS,SAACvC,GAAD,OAAO2a,EAAY3a,EAAG,WAA5F,SACZ,sBAAMgB,UAAWC,KAAE,wBAAnB,wBAKF3C,EAAM9B,OAAS,cAAC4G,EAAA,EAAD,CAAU4Y,YAAU,QAAQhb,UAAWxC,EAAQ+b,YAAahY,QAAS,SAACvC,GAAD,OAAO2a,EAAY3a,EAAG,UAA3F,SACb,cAAC,KAAD,CAAS4X,GAAG,SAAS5W,UAAWC,KAAE,wBAAlC,sBAKF3C,EAAM9B,OAAS,cAAC4G,EAAA,EAAD,CAAUpC,UAAWxC,EAAQ+b,YAAahY,QAASoY,EAAnD,SACb,cAAC,KAAD,CAAS/C,GAAG,gBAAgB5W,UAAWC,KAAE,wBAAzC,4CC5FzB,SAASgb,GAAO3d,GAC3B,IAAMG,EAAWC,cAEbib,EAA8Cle,EAAU,mBACxDe,EAA4Bf,EAAU,SACtCkQ,EAAoClQ,EAAU,iBAC9Cme,EAAyDne,EAAU,qBAQvEoE,qBAAU,WALN8Z,EAAWle,EAAU,mBACrBe,EAAQf,EAAU,SAClBkQ,EAAgBlQ,EAAU,mBAK3B,CAAC6C,EAAM6Y,cAAe7Y,EAAM+Y,eAE/B,IAAMwD,EAAM,uCAAG,sBAAAte,EAAA,+EAEDJ,EAAe,OAAQZ,EAAc,yBAA0B,MAF9D,OAGP2a,KACA5X,EAAM8Y,iBAAiB9Y,EAAM+Y,cAC7B5Y,EAASlE,EAAoB,CAAE0C,QAAS,kBAAmByC,SAAU,aACrEjB,EAASpE,GAAmB,IAC5BgT,GAAQF,KAAK,UAPN,kDAUP1O,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,WAAa,KAAM3C,SAZxB,0DAAH,qDAgBZ,OACI,sBAAK+D,UAAWC,KAAC,OAAjB,UAEI,qBAAKD,UAAWC,KAAE,uBAAlB,SACI,cAAC8X,GAAD,CACIY,SAAUA,EACVhO,cAAeA,EACfiO,kBAAmBA,EACnBpd,MAAOA,MAIf,cAACqd,GAAD,IAEA,cAACI,GAAD,CACIN,SAAUA,EACVC,kBAAmBA,EACnBpd,MAAOA,IAGX,cAACge,GAAD,CACIK,OAAQA,EACRlB,SAAUA,EACVC,kBAAmBA,EACnBpd,MAAOA,EACPmP,cAAeA,O,wBCzEzBzO,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTmS,KAAM,CACFrJ,QAAS,OACTsJ,cAAe,SACfC,WAAY,UAEhBpS,YAAa,CACTC,MAAO,IACPC,aAAc,GACd,eAAgB,CACZA,aAAc,IAGtBmS,QAAQ,aACJpS,MAAO,IACP4I,QAAS,OACTyJ,eAAgB,gBAChB9R,UAAW,IACVV,EAAMM,YAAYC,KAAK,MAAQ,CAC5BG,UAAW,KAGnB+R,IAAK,CACDtS,MAAO,KAEXuS,YAAY,aACRzB,SAAU,WACVd,IAAK,MACLwC,KAAM,MACNC,UAAW,wBACXzS,MAAO,IACPU,QAAS,GACTgS,gBAAiB7S,EAAM8S,QAAQC,WAAWC,OACzChT,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPU,QAAS,UAeV,SAASie,GAA+B5d,GACnD,IAAME,EAAUtB,KACVuB,EAAWC,cACXiN,EAAgBxJ,SAAS1G,EAAU,iBAAmB,IAHuC,EAKvEoD,qBALuE,mBAK5FwN,EAL4F,KAKpF8P,EALoF,KAO7FlP,EAAY,uCAAG,WAAOjN,GAAP,eAAAzD,EAAA,6DACjByD,EAAEkN,iBADe,SAITkP,EAA+B,CAC/B/P,SACA1H,MAAM,IAAIb,MAAOC,cACjBsY,WAAY/d,EAAM+d,WAClBzhB,OAAQ+Q,GARC,SAUPxP,EAAe,OAAQZ,EAAW,2BAAuB+C,EAAM+d,WAA7B,gCAAuED,GAVlG,OAYb9d,EAAMge,4CACNhe,EAAMie,kCAAkCje,EAAMke,+BAE9C/d,EAASlE,EAAoB,CAAE0C,QAAS,6BAA8ByC,SAAU,aAChFjB,EAASpE,GAAmB,IAhBf,kDAmBbsF,QAAQC,IAAI,KAAM3C,SAnBL,0DAAH,sDAuBlB,OACI,mCACI,cAAC8U,GAAA,EAAD,CACIC,KAAM1T,EAAMme,mCACZvK,QAAS5T,EAAMge,0CACfnK,sBAAoB,EACpBC,kBAAmBC,KACnBC,cAAe,CACXC,QAAS,KANjB,SASI,cAACC,GAAA,EAAD,CAAMC,GAAInU,EAAMme,mCAAhB,SACI,cAAC/J,GAAA,EAAD,CAAK1R,UAAWxC,EAAQsR,YAAxB,SACI,cAAC6C,GAAA,EAAD,UACI,uBAAM3R,UAAWxC,EAAQgR,KAAM7B,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAA7D,UAEI,cAAC4B,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnBuE,MAAM,SAAS/H,KAAK,SACpBmG,MAAOoM,EACPtK,SAAU,SAAC/B,GAAD,OAAOmc,EAAUha,SAASnC,EAAEE,OAAOD,MAAQ,MACrD6B,QAAQ,WAAWY,KAAK,UAG5B,sBAAK1B,UAAWxC,EAAQmR,QAAxB,UACI,cAACtN,EAAA,EAAD,CACIrB,UAAWxC,EAAQqR,IACnB/N,QAAQ,YACRQ,MAAM,YACNC,QAAS,kBAAMjE,EAAMge,6CAJzB,oBASA,cAACja,EAAA,EAAD,CACIrB,UAAWxC,EAAQqR,IACnB/V,KAAK,SACLgI,QAAQ,YAAYQ,MAAM,UAH9B,qCC/GrB,SAASoa,GAAT,GAA2H,IAAlGpgB,EAAiG,EAAjGA,KAAMkgB,EAA2F,EAA3FA,8BAA+BD,EAA4D,EAA5DA,iCAA4D,EACjD1d,oBAAkB,GAD+B,mBAC9H4d,EAD8H,KAC1FE,EAD0F,KASrI,OAAIrgB,EAEI,0BAAS0E,UAAWC,KAAC,cAArB,UACI,sBAAKD,UAAWC,KAAE,sBAAlB,UACI,oBAAID,UAAWC,KAAE,uBAAjB,SAA0C3E,EAAKwI,eAE/C,qBAAI9D,UAAWC,KAAE,sBAAjB,UACI,qBAAID,UAAWC,KAAE,sBAAjB,UACI,6CACA,+BAAO3E,EAAKsgB,YAEhB,qBAAI5b,UAAWC,KAAE,sBAAjB,UACI,iDACA,+BAAO3E,EAAK8F,QAEhB,qBAAIpB,UAAWC,KAAE,sBAAjB,UACI,4CACA,+BAAO3E,EAAKugB,eAAevgB,EAAKugB,eAAepd,OAAS,GAAGrE,sBAE1D,OAAJkB,QAAI,IAAJA,OAAA,EAAAA,EAAMwgB,yBAA0B,GAC7B,qBAAI9b,UAAWC,KAAE,sBAAwB,IAAMA,KAAE,8BAAjD,UACI,+DACA,+BAAO3E,EAAKwgB,wBAA0B,wBAKtD,qBAAK9b,UAAWC,KAAE,wBAAlB,SACI,cAACoB,EAAA,EAAD,CACIP,QAAQ,YAAYQ,MAAM,UAC1BC,QAAS,WApCzBoa,GAAsC,IAkC1B,wCAOJ,cAACT,GAAD,CACIO,mCAAoCA,EACpCH,0CAzCkC,WAC9CK,GAAsC,IAyC1BN,WAAY/f,EAAK8F,GACjBoa,8BAA+BA,EAC/BD,iCAAkCA,OAM9C,cAAChT,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,wBC5DxB,SAAS0O,GAAmBze,GAEvC,OACI,oBAAI0C,UAAWC,KAAE,qBAAjB,SACI,oBAAID,UAAWC,KAAE,qBAAuB,IAAMA,KAAE,wCAAhD,SAEQ3C,EAAM0e,eACD7Z,KAAI,SAAC8Z,EAAoB7I,GACtB,OACI,qBAAIpT,UAAWC,KAAE,qBAAjB,UACI,gCACI,+DAAkCmT,EAAQ,EAA1C,QACA,qCAAQ6I,EAAcC,gBAAgB7Q,aAE1C,qBAAKrL,UAAWC,KAAE,qBAAlB,SACK0E,GAAesX,EAAcC,gBAAgBvY,kBCbvE,SAASwY,GAAT,GAAsC,IAAd7gB,EAAa,EAAbA,KAAa,EACVuC,mBAAwB,MADd,mBACzCue,EADyC,KAC5BC,EAD4B,OAEExe,oBAAkB,GAFpB,mBAEzCye,EAFyC,KAEtBC,EAFsB,KAI1CC,EAAc,uCAAG,WAAOlhB,GAAP,eAAAC,EAAA,0DACfD,IAAQA,EAAK8F,GADE,0CAGUjG,EAAe,MAAOZ,EAAW,2BAAuBe,EAAK8F,GAA5B,eAH3C,OAGPtF,EAHO,OAIXugB,EAAevgB,EAASR,KAAKmhB,iBAJlB,gDAOX9d,QAAQC,IAAI,KAAM3C,SAPP,yDAAH,sDAyBpB,OALA4C,qBAAU,WACN2d,EAAelhB,GATS,SAACA,GACzB,GAAIA,GAAQA,EAAKugB,eAAepd,OAAS,EACrC,IAAK,IAAIqJ,EAAI,EAAGA,EAAIxM,EAAKugB,eAAepd,OAAQqJ,IACG,cAA3CxM,EAAKugB,eAAe/T,GAAG1N,iBAAiCmiB,GAAqB,GAOzFG,CAAoBphB,KACrB,QAACA,QAAD,IAACA,OAAD,EAACA,EAAM8F,KAEN9F,EAEI,0BAAS0E,UAAWC,KAAC,aAArB,UAEI,qBAAKD,UAAWC,KAAE,oBAAlB,SACI,qBAAID,UAAWC,KAAE,qBAAjB,UACI,qBAAID,UAAWC,KAAE,qBAAjB,UACI,qDACA,+BAAO3E,EAAK4gB,gBAAkB5gB,EAAK4gB,gBAAgB7Q,OAAS,QAE/D/P,EAAKqhB,8BAAgCrhB,EAAKqhB,6BAA6Ble,OAAS,GAC7EnD,EAAKqhB,6BACAxa,KAAI,SAACya,EAAwCxJ,GAC1C,OACI,qBAAIpT,UAAWC,KAAE,qBAAuB,IAAMA,KAAE,wCAAhD,UACI,uDAA0BmT,EAAQ,EAAlC,QACA,+BAAOwJ,EAAQvR,WAF2EuR,EAAQxb,OAOtH,qBAAIpB,UAAWC,KAAE,qBAAjB,UACI,sDACA,+BAAO3E,EAAKuhB,sBAEhB,qBAAI7c,UAAWC,KAAE,qBAAjB,UACI,gEACA,+BAAO3E,EAAKwhB,yBAEhB,qBAAI9c,UAAWC,KAAE,qBAAjB,UACI,wEACA,+BAAO3E,EAAKyhB,yBAEhB,qBAAI/c,UAAWC,KAAE,qBAAjB,UACI,oDACA,+BAAO3E,EAAK0hB,eAAiB1hB,EAAK0hB,eAAe3R,OAAS,QAG1D/P,EAAK0gB,gBAAkB1gB,EAAK0gB,eAAevd,OAAS,GACpD,cAACsd,GAAD,CAAoBC,eAAgB1gB,EAAK0gB,iBAG7C,qBAAIhc,UAAWC,KAAE,qBAAjB,UACI,uDACA,+BAAOmc,GAA4B,QAEvC,qBAAIpc,UAAWC,KAAE,qBAAjB,UACI,8DACA,+BAAO3E,EAAK2hB,iBAAmB3hB,EAAK2hB,iBAAmB,aAKnE,sBAAKjd,UAAWC,KAAE,oBAAlB,UACI,oBAAID,UAAWC,KAAE,qBAAjB,SACK3E,GAAQA,EAAK4hB,gBAAkB5hB,EAAK4hB,eAAe/a,KAAI,SAACyL,EAAWwF,GAChE,OACI,qBAAIpT,UAAWC,KAAE,qBAAjB,UACI,gCACI,4CAAemT,EAAQ,EAAvB,QACA,qCAAQxF,EAAKvC,aAEjB,8BACK1G,GAAeiJ,EAAKjK,UANeyP,QAYxB,IAA/B9X,EAAK4hB,eAAeze,QACjB,4CAEH6d,GACG,gCACI,4CACA,+BAAOhhB,EAAK6hB,oBAU5B,cAAC5U,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,wBC9G5B,SAAS+P,GAAW9f,GAA6B,IAAD,EACfO,qBADe,mBACpDwf,EADoD,KACpCC,EADoC,OAETzf,oBAAkB,GAFT,mBAEpD0f,EAFoD,KAEjCC,EAFiC,OAGzB3f,qBAHyB,mBAGpDuW,EAHoD,KAGzCqJ,EAHyC,KAIrDC,EAAgB,uCAAG,WAAOpgB,GAAP,iBAAA/B,EAAA,0DACjB+B,EAAM1D,OADW,0CAGUuB,EAAe,MAAOZ,EAAW,6BAAyB+C,EAAM1D,OAA/B,qBAA0D,MAHrG,cAGT+jB,EAHS,gBAIQxiB,EAAe,MAAOZ,EAAW,4BAAwB+C,EAAM1D,QAAU,MAJjF,OAITgkB,EAJS,OAKbN,EAAkBK,EAAWriB,MAC7BmiB,EAAaG,EAAStiB,KAAK8Y,WAC3BoJ,GAAqB,GAPR,kDAUb7e,QAAQC,IAAI,KAAM3C,SAVL,0DAAH,sDAmBtB,OALA4C,qBAAU,WACN2e,GAAqB,GACrBE,EAAiBpgB,KAClB,CAACA,EAAM1D,OAAQ0D,EAAMugB,yBAEpBN,EAKKF,EAED,yBAASrd,UAAWC,KAAC,WAArB,SACI,qBAAID,UAAWC,KAAE,mBAAjB,UACI,qBAAID,UAAWC,KAAE,mBAAjB,UACI,gDACA,+BAAOmU,EAAY,IAAMA,EAAY,WAEzC,qBAAIpU,UAAWC,KAAE,mBAAjB,UACI,8DACA,+BAAO6d,KAAKC,MAA0C,KAAtB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBW,oBAA2B,SAEjE,cAAC7Q,EAAA,EAAD,CAASnN,UAAWC,KAAE,wBAEtB,qBAAID,UAAWC,KAAE,mBAAjB,UACI,wDACA,+BAAO6d,KAAKC,MAA2C,KAAvB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBY,qBAA4B,SAElE,qBAAIje,UAAWC,KAAE,mBAAjB,UACI,yDACA,+BAAO6d,KAAKC,MAA2C,KAAvB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBa,qBAA4B,SAElE,qBAAIle,UAAWC,KAAE,mBAAjB,UACI,qDACA,+BAAO6d,KAAKC,MAA0C,KAAtB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBc,oBAA2B,SAEjE,qBAAIne,UAAWC,KAAE,mBAAjB,UACI,uDACA,+BAAO6d,KAAKC,MAA4C,KAAxB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBe,sBAA6B,SAEnE,cAACjR,EAAA,EAAD,CAASnN,UAAWC,KAAE,wBAEtB,qBAAID,UAAWC,KAAE,mBAAjB,UACI,wDACA,+BAAO6d,KAAKC,MAA6C,KAAzB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBgB,uBAA8B,SAEpE,qBAAIre,UAAWC,KAAE,mBAAjB,UACI,iEACA,+BAAO6d,KAAKC,MAAsD,KAAlC,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBiB,gCAAuC,SAE7E,qBAAIte,UAAWC,KAAE,mBAAjB,UACI,gEACA,+BAAO6d,KAAKC,MAAqD,KAAjC,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBkB,+BAAsC,SAE5E,qBAAIve,UAAWC,KAAE,mBAAjB,UACI,6DACA,+BAAO6d,KAAKC,MAAgD,KAA5B,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBmB,0BAAiC,SAEvE,qBAAIxe,UAAWC,KAAE,mBAAjB,UACI,yDACA,+BAAO6d,KAAKC,MAA8C,KAA1B,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBoB,wBAA+B,SAErE,cAACtR,EAAA,EAAD,CAASnN,UAAWC,KAAE,wBAEtB,qBAAID,UAAWC,KAAE,mBAAjB,UACI,uDACA,+BAAO6d,KAAKC,MAAgD,KAA5B,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBqB,0BAAiC,SAEvE,qBAAI1e,UAAWC,KAAE,mBAAjB,UACI,qDACA,+BAAO6d,KAAKC,MAAyC,KAArB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBsB,mBAA0B,SAEhE,qBAAI3e,UAAWC,KAAE,mBAAjB,UACI,kDACA,+BAAO6d,KAAKC,MAA4C,KAAxB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBuB,sBAA6B,SAEnE,qBAAI5e,UAAWC,KAAE,mBAAjB,UACI,+DACA,+BAAO6d,KAAKC,MAAqC,KAAjB,OAAdV,QAAc,IAAdA,OAAA,EAAAA,EAAgBwB,eAAsB,SAE5D,qBAAI7e,UAAWC,KAAE,mBAAjB,UACI,8DACA,sCAAOod,QAAP,IAAOA,OAAP,EAAOA,EAAgByB,IAAIC,QAAQ,aAQ/C,qBAAK/e,UAAWC,KAAE,uBAAlB,yCAnFA,cAACsI,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,wBC5B5B,SAAS2R,GAAe1hB,GAAiC,IAAD,EACHO,oBAAkB,GADf,mBAC5DohB,EAD4D,KAClCC,EADkC,OAECrhB,oBAAkB,GAFnB,mBAE5DshB,EAF4D,KAEhCC,EAFgC,OAGDvhB,oBAAkB,GAHjB,mBAG5DwhB,EAH4D,KAGjCC,EAHiC,OAKWzhB,oBAAkB,GAL7B,mBAK5D0hB,EAL4D,KAK3BC,EAL2B,OAMe3hB,oBAAkB,GANjC,mBAM5D4hB,EAN4D,KAMzBC,EANyB,OAOa7hB,oBAAkB,GAP/B,mBAO5D8hB,EAP4D,KAO1BC,EAP0B,OASnB/hB,qBATmB,mBAS5DgiB,EAT4D,KAS1CC,EAT0C,OAUOjiB,mBAAwB,MAV/B,mBAU5DkiB,EAV4D,KAU7BC,EAV6B,OAWKniB,mBAAwB,MAX7B,mBAW5DoiB,EAX4D,KAW9BC,EAX8B,KAqBnE,OARArhB,qBAAU,WACmB,IAAD,IAApBvB,EAAMkM,eACNsW,EAAoBxiB,EAAMkM,aAAaE,kBAAkBxP,KAAKkH,IAC9D4e,GAAiC,UAAA1iB,EAAMkM,aAAaK,oBAAoBvM,EAAMkM,aAAaK,oBAAoBpL,OAAS,UAAvF,eAA2F7E,SAAU,MACtIsmB,GAAgC,UAAA5iB,EAAMkM,aAAa4C,mBAAmB9O,EAAMkM,aAAa4C,mBAAmB3N,OAAS,UAArF,eAAyF7E,SAAU,SAExI,CAAC0D,IAEAA,EAAMkM,aAEF,0BAASxJ,UAAWC,KAAC,eAArB,UACI,oBAAID,UAAWC,KAAE,wBAAjB,wBACA,sBAAKD,UAAWC,KAAE,uBAAlB,UAEI,sBAAKD,UAAWC,KAAE,sBAAlB,UACK4f,IAAqBZ,GAClB,cAAC5d,EAAA,EAAD,CAAQrB,UAAWC,KAAE,sBAAuBa,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAM2d,GAA4B,IAA3H,6CAEHD,GACG,cAAC5d,EAAA,EAAD,CAAQrB,UAAWC,KAAE,sBAAuBa,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAMie,GAAoCD,IAAnI,0CAEHN,GAA4BY,GACzB,qBAAK7f,UAAWC,KAAE,sBAAlB,SACI,cAACmd,GAAD,CAAYxjB,OAAQimB,EAAkBhC,uBAAwB0B,SAM1E,sBAAKvf,UAAWC,KAAE,sBAAlB,UACK8f,IAAkCZ,GAC/B,cAAC9d,EAAA,EAAD,CAAQrB,UAAWC,KAAE,sBAAuBa,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAM6d,GAA8B,IAA7H,+CAEHD,GAA8BA,GAC3B,cAAC9d,EAAA,EAAD,CAAQrB,UAAWC,KAAE,sBAAuBa,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAMme,GAAsCD,IAArI,4CAEHN,GAA8BY,GAC3B,qBAAK/f,UAAWC,KAAE,sBAAlB,SACI,cAACmd,GAAD,CAAYxjB,OAAQmmB,EAA+BlC,uBAAwB4B,SAKvF,sBAAKzf,UAAWC,KAAE,sBAAlB,UACKggB,IAAiCZ,GAC9B,cAAChe,EAAA,EAAD,CAAQrB,UAAWC,KAAE,sBAAuBa,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAM+d,GAA6B,IAA5H,+CAEHD,GAA6BA,GAC1B,cAAChe,EAAA,EAAD,CAAQrB,UAAWC,KAAE,sBAAuBa,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAMqe,GAAqCD,IAApI,4CAEHN,GAA6BY,GAC1B,qBAAKjgB,UAAWC,KAAE,sBAAlB,SACI,cAACmd,GAAD,CAAYxjB,OAAQqmB,EAA8BpC,uBAAwB8B,eAW9F,cAACpX,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,wBChFrCnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACT0R,MAAM,aACFxR,MAAO,IACPC,aAAc,GACd,eAAgB,CACZA,aAAc,IAEjBJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,cAMR,SAAS4jB,GAAT,GAAqC,IAAd7kB,EAAa,EAAbA,KAC5BkC,EAAUtB,KAEhB,OAAIZ,EAEI,sBAAK0E,UAAWC,KAAC,YAAjB,UACI,oBAAID,UAAWC,KAAE,qBAAjB,iCACA,sBAAKD,UAAWC,KAAE,oBAAlB,UACI,qBAAKD,UAAWC,KAAE,6BAAlB,UACS,OAAJ3E,QAAI,IAAJA,OAAA,EAAAA,EAAMuO,oBAAoBpL,QAAS,IAAnC,OAAwCnD,QAAxC,IAAwCA,OAAxC,EAAwCA,EAAMuO,oBAC1C1H,KAAI,SAACie,GACF,IAAKA,EAASC,YACV,OACI,sBAAKrgB,UAAWC,KAAE,4BAAlB,UACI,oDACA,cAAC,KAAD,CACI2W,GAAE,uBAAkBwJ,EAASlmB,KAAKkH,IAClCG,QAAS,kBAAM+K,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAFvD,SAIK4T,EAASlmB,KAAKqG,UAAY,IAAM6f,EAASlmB,KAAKuG,aANH2f,EAASlmB,KAAKkH,UAetF,qBAAKpB,UAAWC,KAAE,4BAAlB,UACS,OAAJ3E,QAAI,IAAJA,OAAA,EAAAA,EAAM8Q,mBAAmB3N,QAAS,IAAlC,OAAuCnD,QAAvC,IAAuCA,OAAvC,EAAuCA,EAAM8Q,mBACzCjK,KAAI,SAACgR,GACF,IAAKA,EAAQkN,YACT,OACI,sBAAKrgB,UAAWC,KAAE,2BAAlB,UACI,oDACA,cAAC,KAAD,CAAS2W,GAAE,uBAAkBzD,EAAQjZ,KAAKkH,IACtCG,QAAS,kBAAM+K,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YADvD,SAGK2G,EAAQjZ,KAAKqG,cAL6B4S,EAAQjZ,KAAKkH,UAcpF,cAACR,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QACzDzC,MAAO3D,EAAK0H,kBAAoB2B,GAAerJ,EAAK0H,mBAAqB,GACzEnC,MAAM,yCACV,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAK2N,eAAgBpI,MAAM,oBACvG,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKglB,kBAAmBzf,MAAM,uBAC1G,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKilB,kBAAmB1f,MAAM,uBAC1G,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKklB,cAAe3f,MAAM,+BACtG,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKmlB,YAAa5f,MAAM,sBACpG,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKolB,UAAY,MAAQ,KAAM7f,MAAM,uBACjH,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKqlB,eAAgB9f,MAAM,oBACvG,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKslB,YAAa/f,MAAM,iBACpG,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO0F,GAAerJ,EAAK4H,cAAerC,MAAM,+BACrH,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAK6N,YAAatI,MAAM,iBACpG,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQuQ,MAAOjN,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3D,EAAKulB,oBAAqBhgB,MAAM,sCAOpH,cAAC0H,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,gLChFrCyT,GAAkBC,cAAW,SAAC3kB,GAAD,aAC/BC,YAAa,CACT2kB,MAAO,CACHte,SAAU,KAEdue,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,OAEhCC,MAAI,GACA7e,SAAU,IADV,cAECpG,EAAMM,YAAYC,KAAK,MAAQ,CAC5B6F,SAAU,KAHd,cAKA,gBALA,aAMIA,SAAU,GACV8e,WAAY,KACXllB,EAAMM,YAAYC,KAAK,MAAQ,CAC5B6F,SAAU,MATlB,OATYue,CAuBtBQ,MAEIC,GAAiBT,cAAW,SAAC3kB,GAAD,OAC9BC,YAAa,CACTolB,KAAM,CACF,sBAAuB,CACnBxS,gBAAiB7S,EAAM8S,QAAQwS,OAAOC,YAJ/BZ,CAQrBa,MAOa,SAASC,GAAYvkB,GAA8B,IAsB9C,MAtB6C,EACjBO,oBAAkB,GADD,mBACtDO,EADsD,KACtCC,EADsC,OAEzBR,mBAAgC,MAFP,mBAEtDikB,EAFsD,KAE1CC,EAF0C,KAIvD/M,EAAW,uCAAG,WAAOpb,GAAP,eAAA2B,EAAA,6DAChB8C,GAAkB,GADF,kBAGSlD,EAAe,MAAOZ,EAAW,6BAAyBX,EAAzB,kBAAiD,MAH3F,OAGRkC,EAHQ,OAIZimB,EAAcjmB,EAASR,MAJX,gDAOZqD,QAAQC,IAAI,KAAM3C,SAPN,yBAUZoC,GAAkB,GAVN,4EAAH,sDAkBjB,OAJAQ,qBAAU,WACNmW,EAAY1X,EAAM1D,UACnB,CAAC0D,EAAM0kB,sBAENF,EAEI,8BACI,eAACG,GAAA,EAAD,CAAgBrQ,UAAW8I,KAA3B,UACI,eAACwH,GAAA,EAAD,WACI,cAACC,GAAA,EAAD,UACI,eAACX,GAAD,WACI,cAACV,GAAD,0BACA,cAACA,GAAD,0BACA,cAACA,GAAD,0BAGR,eAACsB,GAAA,EAAD,WACI,eAACZ,GAAD,WACI,cAACV,GAAD,gCACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,mBACKP,EAAWQ,oBADhB,aACK,EAAyBvD,QAAQ,KAEtC,cAAC+B,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWQ,aAAeR,EAAWS,mBAAqB,QAGnE,eAACf,GAAD,WACI,cAACV,GAAD,+BACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,mBACKP,EAAWU,sBADhB,aACK,EAA2BzD,QAAQ,KAExC,cAAC+B,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWU,eAAiBV,EAAWW,qBAAuB,QAGvE,eAACjB,GAAD,WACI,cAACV,GAAD,2BACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWY,cACqB,IAA1BZ,EAAWY,cAAoB3D,QAAQ,GAAK,IAC7C,KAGV,cAAC+B,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWY,aAAeZ,EAAWa,mBAAqB,QAGnE,eAACnB,GAAD,WACI,cAACV,GAAD,sCACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWc,wBACNd,EAAWc,wBAAwB7D,QAAQ,GAC3C,KAGV,cAAC+B,GAAD,CAAiBuB,MAAM,cAE3B,eAACb,GAAD,WACI,cAACV,GAAD,wCACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWe,mBACNf,EAAWe,mBAAmB9D,QAAQ,GACtC,KAGV,cAAC+B,GAAD,CAAiBuB,MAAM,cAE3B,eAACb,GAAD,WACI,cAACV,GAAD,kCACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,mBACKP,EAAWgB,yBADhB,aACK,EAA8B/D,QAAQ,KAE3C,cAAC+B,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWgB,kBAAoBhB,EAAWiB,wBAA0B,QAG7E,eAACvB,GAAD,WACI,cAACV,GAAD,wCACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,SACmC,MAA9BP,EAAWkB,iBACwB,IAA7BlB,EAAWkB,iBAAuBjE,QAAQ,GAAK,IAChD,KAGV,cAAC+B,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWkB,gBAAkBlB,EAAWmB,sBAAwB,QAGzE,eAACzB,GAAD,WACI,cAACV,GAAD,2CACA,cAACA,GAAD,CAAiBuB,MAAM,SAAvB,SACuC,MAAlCP,EAAWoB,qBAC4B,IAAjCpB,EAAWoB,qBAA2BnE,QAAQ,GAAK,IACpD,KAGV,cAAC+B,GAAD,CAAiBuB,MAAM,SAAvB,SACKP,EAAWoB,oBAAsBpB,EAAWqB,0BAA4B,cAKzF,cAACjB,GAAA,EAAD,UACI,cAACE,GAAA,EAAD,UACI,cAACR,GAAA,EAAD,UACI,cAACL,GAAA,EAAD,CAAWc,MAAM,SAAjB,SAA0B,iDAAoBP,EAAWsB,UAAUrE,QAAQ,mBAQ7F3gB,GAAmB0jB,EAUrB,cAACvZ,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WAR/B,sBAAKvL,MAAO,CAAE0G,UAAW,UAAzB,UACI,cAAC,KAAD,CAAa1G,MAAO,CAAEsY,KAAM,aAAe,uBAD/C,yCC3KG,SAASiJ,GAAQ/lB,GAAa,IAAD,EAC0BO,mBAAwB,MADlD,mBACjCylB,EADiC,KACNC,EADM,OAEwB1lB,mBAAwB,MAFhD,mBAEjC2lB,EAFiC,KAEPC,EAFO,OAIoB5lB,oBAAkB,GAJtC,mBAIjC6lB,EAJiC,KAITC,EAJS,OAKoC9lB,oBAAkB,GALtD,mBAKjC+lB,EALiC,KAKDC,EALC,OAMkBhmB,oBAAkB,GANpC,mBAMjCimB,EANiC,KAMVC,EANU,OAOkClmB,oBAAkB,GAPpD,mBAOjCmmB,EAPiC,KAOFC,EAPE,KA0BxC,OARAplB,qBAAU,WAToB,IAAC2K,EAUvBlM,EAAMkM,gBAViBA,EAWDlM,EAAMkM,cAVfK,oBAAoBpL,OAAS,GAC1C8kB,EAA6B/Z,EAAaK,oBAAoBL,EAAaK,oBAAoBpL,OAAS,GAAG7E,QAAU,MAErH4P,EAAa4C,mBAAmB3N,OAAS,GACzCglB,EAA4Bja,EAAa4C,mBAAmB5C,EAAa4C,mBAAmB3N,OAAS,GAAG7E,QAAU,SAQvH,CAAC0D,IAIAA,EAAMkM,aAEF,0BAASxJ,UAAWC,KAAC,QAArB,UACI,oBAAID,UAAWC,KAAE,iBAAjB,qBACA,sBAAKD,UAAWC,KAAE,gBAAlB,UAEI,qBAAKD,UAAWC,KAAE,oBAEjBqjB,GACG,sBAAKtjB,UAAWC,KAAE,kBAAlB,WACMyjB,GACE,cAACriB,EAAA,EAAD,CAAQrB,UAAWC,KAAE,eAAgBa,QAAQ,YAAYQ,MAAM,UAC3DC,QAAS,kBAAMoiB,GAA0B,IAD7C,2CAKHD,GACG,cAACriB,EAAA,EAAD,CAAQrB,UAAWC,KAAE,eAAgBa,QAAQ,YAAYQ,MAAM,UAC3DC,QAAS,kBAAMsiB,GAAmCD,IADtD,wCAKHF,GACG,cAAC7B,GAAD,CAAajoB,OAAQ0pB,EAA2BtB,oBAAqB4B,OAKhFJ,GACG,sBAAKxjB,UAAWC,KAAE,kBAAlB,WACM6jB,GACE,cAACziB,EAAA,EAAD,CAAQrB,UAAWC,KAAE,eAAgBa,QAAQ,YAAYQ,MAAM,UAC3DC,QAAS,kBAAMwiB,GAAyB,IAD5C,2CAKHD,GACG,cAACziB,EAAA,EAAD,CAAQrB,UAAWC,KAAE,eAAgBa,QAAQ,YAAYQ,MAAM,UAC3DC,QAAS,kBAAM0iB,GAAkCD,IADrD,wCAKHF,GACG,cAACjC,GAAD,CAAajoB,OAAQ4pB,EAA0BxB,oBAAqBgC,aAWxF,cAACzb,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WC1FpC,ICEM6W,GAAqB,SAACC,EAAkBC,EAAuBC,GACxE,IACIC,EDJqB,SAACC,EAASC,GAOnC,IANA,IAAIC,EAAMF,EAAQzf,MAAM,KACpB4f,EAAOD,EAAI,GAAG3pB,MAAM,WAAW,GAC/B6pB,EAAOC,KAAKH,EAAI,IAChBI,EAAIF,EAAKlmB,OACTqmB,EAAQ,IAAIC,WAAWF,GAEpBA,KACHC,EAAMD,GAAKF,EAAKK,WAAWH,GAG/B,OAAO,IAAII,KAAK,CAACH,GAAQN,EAAU,CAAE1rB,KAAM4rB,ICRhCQ,CAAc,QAAD,OAASf,EAAT,mBAA4BC,GAAiBC,GAEjEc,EAAOvqB,SAASwqB,cAAc,KAClCxqB,SAASymB,KAAKgE,YAAYF,GAC1BA,EAAKG,SAAWjB,EAChBc,EAAKjf,KAAOoG,OAAOiZ,IAAIC,gBAAgBlB,GACvCa,EAAKM,QACL7qB,SAASymB,KAAKqE,YAAYP,I,qBCFf,SAASQ,GAAYroB,GAChC,OACI,sBAAK0C,UAAWC,KAAC,YAAjB,UACI,8BAAM3C,EAAMiQ,OACZ,cAAC,KAAD,O,wBCDG,SAASqY,GAAiBtoB,GAAmC,IAAD,EACnCO,mBAAiB,IADkB,mBAChEgoB,EADgE,KACpDC,EADoD,OAEvCjoB,mBAAwB,MAFe,mBAEhEkI,EAFgE,KAEtDggB,EAFsD,OAGDloB,mBAAiB,IAHhB,mBAGhEmoB,EAHgE,KAGnCC,EAHmC,OAILpoB,mBAAwB,MAJnB,mBAIhEylB,EAJgE,KAIrCC,EAJqC,OAKH1lB,mBAAiB,IALd,mBAKhEqoB,EALgE,KAKpCC,EALoC,OAMPtoB,mBAAwB,MANjB,mBAMhE2lB,EANgE,KAMtCC,EANsC,KAyBvE5kB,qBAAU,YAjBW,SAAC2K,GAC4B,IAAD,IAAzCA,EAAaK,oBAAoBpL,SACjCwnB,EACIzc,EAAaK,oBAAoBL,EAAaK,oBAAoBpL,OAAS,GAAG2nB,UAAY,IAE9F7C,GAA6B,UAAA/Z,EAAaK,oBAAoBL,EAAaK,oBAAoBpL,OAAS,UAA3E,mBAA+EvE,YAA/E,eAAqFkH,KAAM,OAGxHoI,EAAa4C,mBAAmB3N,OAAS,IACzC0nB,EAA8B3c,EAAa4C,mBAAmB5C,EAAa4C,mBAAmB3N,OAAS,GAAG2nB,UAAY,IACtH3C,EAA4Bja,EAAa4C,mBAAmB5C,EAAa4C,mBAAmB3N,OAAS,GAAG7E,QAAU,KAGtHksB,EAActc,EAAaE,kBAAkB0c,UAAY,IACzDL,EAAYvc,EAAaE,kBAAkB9P,QAAU,MAIrDysB,CAAa/oB,EAAMkM,gBACpB,IA3BoE,MA6BjC3L,mBAAgC,IA7BC,mBA6BhEyoB,EA7BgE,KA6BnDC,EA7BmD,OA8BjB1oB,oBAAkB,GA9BD,mBA8BhE2oB,EA9BgE,KA8B3CC,EA9B2C,OA+BT5oB,oBAAkB,GA/BT,mBA+BhE6oB,EA/BgE,KA+BvCC,EA/BuC,KAiCvE9nB,qBAAU,WACmB,IAAD,EAApBvB,EAAMkM,cACN+c,EAAc,OAACjpB,QAAD,IAACA,GAAD,UAACA,EAAOkM,oBAAR,aAAC,EAAqB8c,eAEzC,CAAChpB,IAoBJ,OAJAuB,qBAAU,WACNynB,GAAeA,EAAY7nB,OAAS,GAfjB,SAAC6nB,GACpB,IAAK,IAAIxe,EAAIwe,EAAY7nB,OAAQqJ,GAAK,EAAGA,IAAK,CAAC,IAAD,EAC1C,GAA6B,KAAzB,UAAAwe,EAAYxe,UAAZ,eAAgBhP,MAAY,CAC5B2tB,EAAuB3e,GACvB,OAGR,IAAK,IAAIA,EAAIwe,EAAY7nB,OAAQqJ,GAAK,EAAGA,IAAK,CAAC,IAAD,EAC1C,GAA6B,KAAzB,UAAAwe,EAAYxe,UAAZ,eAAgBhP,MAAY,CAC5B6tB,EAA2B7e,GAC3B,QAKiC8e,CAAeN,KACzD,CAACA,IAGA,0BAAStmB,UAAWC,KAAC,iBAArB,UACI,oBAAID,UAAWC,KAAE,0BAAjB,+BACA,sBAAKD,UAAWC,KAAE,yBAAlB,UACI,qBAAKD,UAAWC,KAAE,2BAAlB,SACK8F,GACG,gCACI,mBAAG/F,UAAWC,KAAE,0BAAhB,sBACA,cAAC,KAAD,CAAS2W,GAAE,uBAAkB7Q,GAAYxE,QAAS,kBAAM+K,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAA5F,SAA0GqZ,KAChF,IAAzBW,GACG,qBACIxmB,UAAWC,KAAE,oCACbsB,QAAS,kBAAM2iB,GAAmBoC,EAAYE,GAAqBrC,SAAUmC,EAAYE,GAAqBK,OAAQP,EAAYE,GAAqBnC,WAF3J,SAII,cAACsB,GAAD,CAAapY,KAAK,oCAMtC,qBAAKvN,UAAWC,KAAE,2BAAlB,SACKqjB,GACG,gCACI,mBAAGtjB,UAAWC,KAAE,0BAAhB,wBACA,cAAC,KAAD,CAAS2W,GAAE,uBAAkB0M,GAA6B/hB,QAAS,kBAAM+K,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAA7G,SAA2HwZ,KAC7F,IAA7BU,GACG,qBACI1mB,UAAWC,KAAE,oCACbsB,QAAS,kBAAM2iB,GAAmBoC,EAAYI,GAAyBvC,SAAUmC,EAAYI,GAAyBG,OAAQP,EAAYI,GAAyBrC,WAFvK,SAII,cAACsB,GAAD,CAAapY,KAAK,uCAMtC,qBAAKvN,UAAWC,KAAE,2BAAlB,SACKujB,GACG,iCACI,mBAAGxjB,UAAWC,KAAE,0BAAhB,wBACA,cAAC,KAAD,CAAS2W,GAAE,uBAAkB4M,GAA4BjiB,QAAS,kBAAM+K,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAA5G,SAA0H0Z,e,gEC5GhJY,GAAW,SAACC,GAAD,OAAe,IAAIpb,SAAQ,SAACC,EAASC,GACnD,IAAMmb,EAAS,IAAIC,WACnBD,EAAOE,cAAcH,GACrBC,EAAOG,OAAS,kBAAMvb,EAAQob,EAAOI,SACrCJ,EAAOK,QAAU,SAAAzjB,GAAK,OAAIiI,EAAOjI,QAG7B,SAAe0jB,GAAtB,mC,8CAAO,WAAmCP,GAAnC,eAAAxrB,EAAA,sEACsBurB,GAASC,GAAMQ,OAAM,SAAAvoB,GAAC,OAAIjD,MAAMiD,MADtD,aACEooB,EADF,kBAEiBrrB,OAFjB,uBAGD4C,QAAQC,IAAI,UAAWwoB,EAAOnrB,SAH7B,mDAMGmrB,EAAOpsB,QAAQ,eAAgB,KANlC,4C,oECcQ,SAASwsB,GAA0BlqB,GAC9C,IAAMG,EAAWC,cACXwU,EAAWC,cACXxH,EAAgBxJ,SAAS1G,EAAU,iBAAmB,IACtDgtB,EAAkBhtB,EAAU,mBAC5Bme,EAAoBne,EAAU,qBAC9B4gB,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IANb,EAQhDnH,mBAAqCP,EAAMoqB,UARK,mBAQzEA,EARyE,KAQ/DC,EAR+D,OAS1C9pB,mBAA2B,IATe,mBASzEuN,EATyE,KAS5Dwc,EAT4D,OAUpC/pB,oBAAkB,GAVkB,mBAUzEgqB,EAVyE,KAUzDC,EAVyD,OAY5BjqB,mBAAiB,IAZW,mBAYzEkqB,EAZyE,KAYrDC,EAZqD,OAa5BnqB,mBAAiB,IAbW,mBAazEoqB,EAbyE,KAarDC,EAbqD,OAc5BrqB,mBAAiB,IAdW,mBAczEsqB,EAdyE,KAcrDC,EAdqD,KAe1EC,EAAgB,uCAAG,WAAOC,GAAP,eAAA/sB,EAAA,2DACfwrB,EAAOuB,EAAM,IADE,4BAGjBN,EAHiB,SAGWV,GAAoBP,GAH/B,kCAIjBmB,EAAsBnB,EAAKjuB,MAC3BsvB,EAAsBrB,EAAKrsB,MALV,2CAAH,sDAShB6tB,EAAU,uCAAG,8BAAAhtB,EAAA,sEAEPitB,EAAiB,CACjBpd,cACAqd,QAASZ,EACTa,aAAa,IAAI5lB,MAAOC,cAAgB,GACxCnJ,OAAQ+Q,EACR0Q,cAPO,SASUlgB,EAAe,OAAQZ,EAAW,2BAAuB8gB,EAAvB,eAAgDmN,GAT5F,OASP1sB,EATO,OAUX6rB,EAAY,aAAI7rB,EAASR,KAAKqtB,mBAE9BZ,GAAsBa,EAClB9sB,EAASR,KAAKqtB,iBAAiB7sB,EAASR,KAAKqtB,iBAAiBlqB,OAAS,GAAG2C,GADxC,aAE9BtF,EAASR,KAAKqtB,mBAEtBlrB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,0BAA2ByC,SAAU,aAjBlE,kDAoBXC,QAAQC,IAAI,KAAM3C,SAClBwB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WAtBtD,0DAAH,qDA0BVkqB,EAAgB,uCAAG,WAAOC,EAAmBC,GAA1B,uBAAAvtB,EAAA,sEAEbwtB,EAAoB,CACpB5E,SAAU8D,EACVnvB,KAAM,EACNkwB,qBAAsBjB,EACtB1D,SAAU8D,GANG,SAQMhtB,EAAe,OAAQZ,EAAW,2BAAuBsuB,EAAvB,4BAA4DE,GARpG,OAQXjtB,EARW,OASbmtB,EATa,aASuBH,GACxC,UAAAG,GAA2D,OAA7BA,QAA6B,IAA7BA,OAAA,EAAAA,EAA+BxqB,QAAS,UAAtE,mBAA0EyqB,0BAA1E,SAA8F/c,KAAKrQ,EAASR,MAC5GqsB,EAAY,aAAIsB,IAChBE,IAZiB,kDAejB1rB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,2BAA4ByC,SAAU,WAhB7D,0DAAH,wDAoBhByqB,EAAkB,WACpBnB,EAAsB,IACtBE,EAAsB,IACtBE,EAAsB,KAO1B,OACI,0BAASpoB,UAAWC,KAAC,QAArB,UACI,oBAAID,UAAWC,KAAE,iBAAjB,sBAEA,qBAAKD,UAAWC,KAAE,6BAAlB,SACKynB,GAAYA,EAASjpB,OAAS,GAC3BipB,EACK0B,QAAO,SAACC,GAAD,OAAkCA,EAAQZ,WACjDtmB,KAAI,SAACknB,GAAkC,IAAD,EACnC,OACI,sBAAsBrpB,UAAWC,KAAE,gBAAnC,UACI,sBAAKD,UAAWC,KAAE,gBAAlB,UACI,+BAAOopB,EAAQjD,SAAWiD,EAAQjD,SAAW,YAC7C,+BAAOzhB,GAAe0kB,EAAQX,kBAElC,cAAC9nB,EAAA,EAAD,CAAWZ,UAAWC,KAAE,oBACpBvF,KAAK,UACLoG,QAAQ,WACRqD,KAAM,EACNlF,MAAOoqB,EAAQje,YACf/G,WAAS,IAEZglB,EAAQH,oBAAsBG,EAAQH,mBAAmBzqB,OAAS,GAC/D,sBACIuB,UAAWC,KAAE,uBACbsB,QAAS,WA7Bf,IAAC+nB,MA6BqD,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASH,oBAAT,OAA8BG,QAA9B,IAA8BA,OAA9B,EAA8BA,EAASH,mBAAmB,GAAK,OA5B9HhF,GAAmBoF,EAAWnF,SAAUmF,EAAWzC,OAAQyC,EAAWjF,WA0BpD,UAII,cAAC,KAAD,CAAWrkB,UAAWC,KAAE,kBACxB,sCAAOopB,QAAP,IAAOA,GAAP,UAAOA,EAASH,mBAAmB,UAAnC,aAAO,EAAgC7E,gBAlBzCgF,EAAQjoB,SA0BtC,cAAC+L,EAAA,EAAD,CAASnN,UAAWC,KAAE,qBAEtB,cAACW,EAAA,EAAD,CAAWZ,UAAWC,KAAE,iBACpBa,QAAQ,WACRY,KAAK,QACLzC,MAAOmM,EACPrK,SAAU,SAAC/B,GAAD,OAAO4oB,EAAe5oB,EAAEE,OAAOD,MAAQ,KACjD4B,MAAM,kBAEV,sBAAKb,UAAWC,KAAE,yBAAlB,UACI,cAACoB,EAAA,EAAD,CACIP,QAAQ,YACRQ,MAAM,UACNC,QAAS,kBAAMgnB,KAHnB,kBAOA,wBAAOvoB,UAAWC,KAAE,+BAApB,UACI,cAAC,KAAD,CAAgBD,UAAWC,KAAE,kBAC7B,uBAAOD,UAAWC,KAAE,+BAChBnH,KAAK,OACLiI,SAAU,SAAC/B,GAAD,OAAOqpB,EAAiBrpB,EAAEE,OAAOopB,QAC3CrpB,MAAM,KAET8oB,GACG,qBAAK/nB,UAAWC,KAAE,yBAAlB,SACI,+BAAOkoB,SAIlBA,GACG,cAAC,KAAD,CACInoB,UAAWC,KAAE,qBACbsB,QAAS,kBAAM4nB,UAI3B,uBAEqB,kBAApB1B,GAA6D,aAAtB7O,GACpC,uBAAO5Y,UAAWC,KAAE,iBAApB,SACI,cAAC8M,EAAA,EAAD,CAAkBC,QACd,cAACuc,GAAA,EAAD,CAAUjoB,MAAM,UACZkoB,QAAS3B,EACT9mB,SAAU,SAAC/B,GAAD,OAAO8oB,EAAkB9oB,EAAEE,OAAOsqB,YAEhD3oB,MAAM,8BCjKf,SAAS4oB,KACvB,IAAMhsB,EAAWC,cACXib,EAAWle,EAAU,mBACrBgtB,EAAkBhtB,EAAU,mBAC5Bme,EAAoBne,EAAU,qBAC9ByX,EAAWC,cACXkJ,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IANvD,EAOoCnH,oBAAkB,GAPtD,mBAO/B2d,EAP+B,KAOAD,EAPA,OAQ4D1d,oBAAkB,GAR9E,mBAQ/B6rB,EAR+B,KAQYC,EARZ,OASE9rB,qBATF,mBAS/B2L,EAT+B,KASjBogB,EATiB,KAUhCC,EAAe,uCAAG,4BAAAtuB,EAAA,+EAEDJ,EAAe,MAAOZ,EAAW,2BAAuB8gB,GAAc,MAFrE,OAElBvf,EAFkB,OAGtB8tB,EAAgB9tB,EAASR,MAHH,gDAMtBqD,QAAQC,IAAI,KAAM3C,SANI,yDAAH,qDASrB4C,qBAAU,WACTgrB,MACE,CAACrO,IAEJ,IAAMsO,EAAuB,uCAAG,WAAOzO,GAAP,eAAA9f,EAAA,0DAC5BmuB,EAD4B,iEAM9BC,GAA6C,GANf,SAOTxuB,EAAe,MAAOZ,EAAW,2BAAuB8gB,EAAvB,qBAPxB,OAO1Bvf,EAP0B,OAQ9BooB,GAAmBpoB,EAASR,KAAK6oB,SAAUroB,EAASR,KAAK8oB,cAAetoB,EAASR,KAAK+oB,UARxD,kDAW9B1lB,QAAQC,IAAI,KAAM3C,SAClBwB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WAbnC,yBAe9BirB,GAA6C,GAff,6EAAH,sDAmB7B,OAAKngB,EAOH,eAACiD,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,aAArC,UAEC,sBAAKD,UAAWC,KAAE,sBAAlB,UACsB,kBAApBwnB,GAA6D,aAAtB7O,GACvC,eAAC,KAAD,CAAShC,GAAE,wBAAmByE,GAAcrb,UAAWC,KAAE,wBAAzD,UACC,wCACA,cAAC,KAAD,CAAUD,UAAU,mBAItB,sBACCA,UAAYC,KAAE,4BAA8B,KAAOypB,EAA4CzpB,KAAE,sCAAwC,IACzIsB,QAAS,kBAAMuoB,EAAwBtgB,EAAapI,KAFrD,UAIC,oDACA,cAAC,KAAD,CAAYpB,UAAU,gBACrB0pB,GAA6C,cAACnhB,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,iBAI9E,cAACqO,GAAD,CACCpgB,KAAMkO,EACNgS,8BAA+BA,EAC/BD,iCAAkCA,IAEnC,cAACpO,EAAA,EAAD,IACA,cAACgP,GAAD,CAAc7gB,KAAMkO,IACpB,cAAC2D,EAAA,EAAD,IACA,cAACyY,GAAD,CAAkBpc,aAAcA,IAChC,cAAC2D,EAAA,EAAD,IAEc,kBAAbwL,GACA,gCACC,cAAC0K,GAAD,CAAS7Z,aAAcA,IACvB,cAAC2D,EAAA,EAAD,OAIY,kBAAbwL,GACA,gCACC,cAACqG,GAAD,CAAgBxV,aAAcA,IAC9B,cAAC2D,EAAA,EAAD,OAIF,cAACgT,GAAD,CAAa7kB,KAAMkO,IACnB,cAAC2D,EAAA,EAAD,CAASnN,UAAWC,KAAE,0BAEtB,cAAC,GAAD,CAAkBynB,SAAUle,EAAamf,sBArD1C,cAACpgB,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,6CCzDnB,SAAS0c,GAAoBzsB,GAExC,IAEI0sB,EAFc1sB,EAAMkC,SAAS2C,KAAI,SAAC8nB,GAAQ,OAAOA,KAElBC,MAAK,SAACC,EAAYC,GACjD,IAAIC,EAAkB,IAAIvnB,KAAKqnB,EAAMpa,WAErC,OADsB,IAAIjN,KAAKsnB,EAAMra,WACjBsa,KAGxB,OACI,qCACI,oBAAIrqB,UAAWC,KAAE,qBAAjB,uBACC+pB,EAAiBvrB,OAAS,GACvB,oBAAIuB,UAAWC,KAAE,oBAAjB,SAEQ+pB,EAAiB7nB,KAAI,SAACgR,GAClB,OACI,oBAAInT,UAAWC,KAAE,oBAAjB,SACI,gCACI,8BAAK,4BAAIkT,EAAQ5S,UAAY,OAC7B,8BAAMoE,GAAewO,EAAQpD,WAAa,OAASoD,EAAQjD,QAAU,UAAYvL,GAAewO,EAAQ9C,gBAHrE8C,EAAQ1T,oBAW1C,IAA5BuqB,EAAiBvrB,QACd,qBAAKuB,UAAWC,KAAE,oBAAlB,oC,8CClCV/D,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTwS,IAAK,CACD1J,QAAS,QACTzB,OAAQ,YACR,UAAW,CACP2V,OAAQ,2BAMlByH,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,OAEhCC,KAAM,CACF7e,SAAU,IAEdqM,IAAK,CACD1J,QAAS,QACTzB,OAAQ,iBAXIqd,CActBQ,MAEIC,GAAiBT,cAAW,SAAC3kB,GAAD,OAC9BC,YAAa,CACTolB,KAAM,CACF,qBAAsB,CAClBxS,gBAAiB7S,EAAM8S,QAAQwS,OAAOC,YAJ/BZ,CAQrBa,MAMa,SAAS0I,GAAchtB,GAClBpB,KAAhB,IAEMquB,EAAW,WACbje,OAAOvB,SAAS,CACZwB,IAAK,EACLC,SAAU,YAIlB,OAAIlP,EAAMktB,UAEF,cAACvI,GAAA,EAAD,CAAgBrQ,UAAW8I,KAA3B,SACI,eAACwH,GAAA,EAAD,WACI,cAACC,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,sBACA,cAAC,GAAD,CAAiBS,MAAM,SAAvB,0BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,wBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sCACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,2BAIR,cAACD,GAAA,EAAD,UACK9kB,EAAMktB,WAAaltB,EAAMktB,UAAUroB,KAAI,SAACsoB,GAAD,yCACpC,eAAC,GAAD,WACI,cAAC,GAAD,CAAiB7Y,UAAU,KAAK8Y,MAAM,MAAtC,SACI,cAAC,KAAD,CAAS9T,GAAE,wBAAmB6T,EAASrpB,IAAMG,QAASgpB,EAAtD,SAAiEE,EAAS7O,WAG9E,cAAC,GAAD,CAAiByG,MAAM,SAAvB,SAAiC1d,GAAc,OAAC8lB,QAAD,IAACA,OAAD,EAACA,EAAU5O,eAAe,GAAGxhB,cAE5E,eAAC,GAAD,CAAiBgoB,MAAM,SAAvB,iBACKoI,QADL,IACKA,OADL,EACKA,EAAU5O,gBAAuB,OAAR4O,QAAQ,IAARA,OAAA,EAAAA,EAAU5O,eAAepd,QAAS,GAAGrE,gBAAgB0K,MAAM,aAAa,GAClG,uBAFJ,OAGK2lB,QAHL,IAGKA,OAHL,EAGKA,EAAU5O,gBAAuB,OAAR4O,QAAQ,IAARA,OAAA,EAAAA,EAAU5O,eAAepd,QAAS,GAAGrE,gBAAgB0K,MAAM,aAAa,MAGtG,cAAC,GAAD,CAAiBud,MAAM,SAAvB,SACKoI,EAAStN,SAAW,EACf,MAA6B,EAArBsN,EAAStN,SACjBsN,EAAStN,WAInB,cAAC,GAAD,CAAiBkF,MAAM,SAAvB,SACKoI,EAAS3O,yBAAgE,IAArC2O,EAAS3O,yBAAiC2O,EAAS3O,wBAA0B,UAGtH,eAAC,GAAD,CAAiBuG,MAAM,SAAvB,cAAkCoI,EAASE,WAE3C,cAAC,GAAD,CAAiBtI,MAAM,SAAvB,SACKoI,EAAS/gB,mBACN,cAAC,KAAD,CAASkN,GAAE,uBAAkB6T,EAAS/gB,kBAAkB9P,QAAU2H,QAASgpB,EAA3E,UACK,UAAAE,EAAS/gB,kBAAkBxP,YAA3B,eAAiCqG,WAAY,KAA7C,UAAmDkqB,EAAS/gB,kBAAkBxP,YAA9E,aAAmD,EAAiCuG,cAKjG,eAAC,GAAD,CAAiB4hB,MAAM,SAAvB,UACKoI,EAAS5gB,oBAAoBpL,OAAS,GACnC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAAtF,aAAkB,EAAwE7E,QAAU2H,QAASgpB,EAAxH,UACK,UAAAE,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApE,mBAAwEvE,YAAxE,eAA8EqG,WAAY,KAA1F,UAAgGkqB,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApK,iBAAgG,EAAwEvE,YAAxK,aAAgG,EAA8EuG,YAG9I,IAAxCgqB,EAAS5gB,oBAAoBpL,QAC1B,8DAIR,eAAC,GAAD,CAAiB4jB,MAAM,SAAvB,UACKoI,EAASre,mBAAmB3N,OAAS,GAClC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UAApF,aAAkB,EAAsE7E,QAAU2H,QAASgpB,EAAtH,mBACKE,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UADvE,iBACK,EAAsEvE,YAD3E,aACK,EAA4EqG,YAI7C,IAAvCkqB,EAASre,mBAAmB3N,QACzB,gEArDSgsB,EAASrpB,cAiE9C,oBAAIU,MAAO,CAAE0G,UAAW,UAAxB,6BCtHG,SAASoiB,KACpB,IAAMntB,EAAWC,cACbwU,EAAWC,cACT3W,EAAQf,EAAU,SAClBgtB,EAAkBhtB,EAAU,mBAC5Bme,EAAoBne,EAAU,qBAC9BkQ,EAAgBxJ,SAAS1G,EAAU,iBAAmB,IACxDb,EAASuH,SAAS+Q,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IAAM,IAPpE,EASoBnH,oBAAkB,GATtC,mBAS3BgtB,EAT2B,KASNC,EATM,OAU0BjtB,oBAAkB,GAV5C,mBAU3BktB,EAV2B,KAUHC,EAVG,OAYFntB,qBAZE,mBAY3B4P,EAZ2B,KAYjBC,EAZiB,OAa8B7P,mBAAiB,IAb/C,mBAa3BotB,EAb2B,KAaDC,EAbC,KAc5BlW,EAAW,uCAAG,4BAAAzZ,EAAA,+EAESJ,EAAe,MAAOZ,EAAW,uBAAmBX,GAAU,MAFvE,cAERkC,EAFQ,OAGZ4R,EAAY5R,EAASR,MACrB4vB,GACKpvB,EAASR,KAAKiF,UAAYzE,EAASR,KAAKiF,UAAU,GAAK,IAAM,KAC7DzE,EAASR,KAAKmF,SAAW3E,EAASR,KAAKmF,SAAS,GAAK,KAN9C,kBAQL3E,EAASR,MARJ,gCAWZqD,QAAQC,IAAI,KAAM3C,SAXN,yDAAH,qDAdiB,EA6BQ4B,mBAAc,IA7BtB,mBA6B3BstB,EA7B2B,KA6BZC,EA7BY,KA8B5BC,EAAgB,uCAAG,4BAAA9vB,EAAA,+EAEIJ,EAAe,MAAOZ,EAAW,+BAA2BX,GAAU,MAF1E,OAEbkC,EAFa,OAGjBsvB,EAAiBtvB,EAASR,MAHT,gDAMjBqD,QAAQC,IAAI,KAAM3C,SAND,yDAAH,qDA9BY,EAwCQ4B,qBAxCR,mBAwC3BytB,EAxC2B,KAwCZC,EAxCY,KAyC5BC,EAAgB,uCAAG,4BAAAjwB,EAAA,+EAEIJ,EAAe,MAAOZ,EAAW,6BAAyBX,EAAzB,kBAFrC,OAEbkC,EAFa,OAGjByvB,EAAiBzvB,EAASR,MAHT,gDAMjBqD,QAAQC,IAAI,KAAM3C,SAND,yDAAH,qDAStB4C,qBAAU,WACNmW,IACKyW,MAAK,SAAChe,GACiB,kBAApBga,IAC8B,aAAtBha,EAASkH,UAAiD,YAAtBlH,EAASkH,WAC9C6W,OAEfH,MAED,CAACzxB,IA3D8B,MA6DMiE,oBAAkB,GA7DxB,mBA6D3B6tB,EA7D2B,KA6DbC,EA7Da,OA8DoB9tB,mBAAiB,IA9DrC,mBA8D3B+tB,GA9D2B,KA8DNC,GA9DM,KA0FlChtB,qBAAU,YA3BiB,SAACssB,GAKxB,IAJA,IAAI/c,EAAmB,IAAItL,KAIlBgF,EAAI,EAAGA,EAAIqjB,EAAc1sB,OAAQqJ,IAGtC,IAAK,IAAIgkB,EAAI,EAAGA,EAAIX,EAAcrjB,GAAG+T,eAAepd,OAAQqtB,IAGxD,GAA2D,cAAvDX,EAAcrjB,GAAG+T,eAAeiQ,GAAG1xB,gBAAiC,CAGpE,IAAI2xB,EAAqC,IAAIjpB,KAAKqoB,EAAcrjB,GAAG+T,eAAeiQ,GAAGzxB,YACjF2xB,EAA6BlO,KAAKmO,MAAM7d,EAAc2d,GAbzD,OAiBD,GAHAF,GAAuBlnB,GAAeonB,EAA8BhpB,gBAGhEipB,GAA8B,IAE9B,YADAL,GAAgB,IAQhCO,CAAmBf,KACpB,CAACA,IA5F8B,OA8FUttB,mBAAiB,IA9F3B,qBA8F3BsuB,GA9F2B,MA8FXC,GA9FW,SA+FYvuB,oBAAkB,GA/F9B,qBA+F3BwuB,GA/F2B,MA+FVC,GA/FU,MAgG5BC,GAAe,SAACjE,GAClB,GAAIA,EAAO,CACP,IAAMvB,EAAOuB,EAAM,GAED,cAAdvB,EAAKjuB,MAAsC,eAAdiuB,EAAKjuB,KAClCwuB,GAAoBP,GAAM0E,KAA1B,uCAA+B,WAAOe,GAAP,iBAAAjxB,EAAA,6DAC3B+wB,IAAmB,GACfG,EAAmB,CACnBtI,SAAU4C,EAAKjuB,KACfkwB,qBAAsBwD,GAJC,kBAQFrxB,EAAe,OAAQZ,EAAW,uBAAmBoQ,EAAnB,iBAAiD8hB,GARjF,OAQnB3wB,EARmB,OASvBswB,GAAkBtwB,EAASR,KAAK0tB,sBAChC0D,IAAwB,GACxBjvB,EAASlE,EAAoB,CAAE0C,QAAS,+BAAgCyC,SAAU,aAClFjB,EAASpE,GAAmB,IAZL,kDAevBoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAhBL,yBAmBvBizB,IAAmB,GAnBI,6EAA/B,wDAyBA7uB,EAASlE,EAAoB,CAAE0C,QAAS,8BAA+ByC,SAAU,WACjFjB,EAASpE,GAAmB,OA/HN,GAqIsBwE,oBAAkB,GArIxC,qBAqI3B8uB,GArI2B,MAqILD,GArIK,MAsI5BE,GAAY,uCAAG,sBAAArxB,EAAA,+EAEPJ,EAAe,OAAQZ,EAAW,uBAAmBoQ,EAAnB,kBAF3B,OAGblN,EAASlE,EAAoB,CAAE0C,QAAS,8BAA+ByC,SAAU,aACjFjB,EAASpE,GAAmB,IAC5BqzB,IAAwB,GACxBN,GAAkB,IANL,gDASb3uB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAVf,yDAAH,qDAclB,OAAKmC,EAKIiS,EAED,eAAChB,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,YAArC,UACKwN,GACG,sBAAKzN,UAAWC,KAAE,oBAAlB,UACyB,kBAApBwnB,GAA6D,aAAtB7O,GACpC,eAAC,KAAD,CAAM5Y,UAAWC,KAAE,wBACf2W,GAAI,CACAiW,SAAU,aACVza,OAAO,IAAD,OAAM3E,EAASrM,KAH7B,UAKI,wCACA,cAAC,KAAD,CAAUpB,UAAU,mBAG5B,sBAAKA,UAAWC,KAAE,mBAAlB,UACI,sBAAKD,UAAWC,KAAE,yBAAlB,WACMwN,EAASqf,QAAUX,MAAoBQ,KAAyBN,IAC9D,sBAAKrsB,UAAWC,KAAE,8BAAlB,UACI,qBAAK6Y,IAAG,6BAAwBqT,IAAkC1e,EAASqf,QAAU9sB,UAAWC,KAAE,2BAClG,sBAAKD,UAAWC,KAAE,yBAAlB,UACI,cAAC,KAAD,CACIsB,QAAS,kBAAMqrB,MACf5sB,UAAU,gBAEd,wBAAOA,UAAWC,KAAE,+BAApB,UACI,uBAAOnH,KAAK,OAAOkH,UAAWC,KAAE,2BAA4Bc,SAAU,SAAC/B,GAAD,OAAOutB,GAAavtB,EAAEE,OAAOopB,UACnG,cAAC,KAAD,CAAUtoB,UAAU,2BAKhCyN,EAASqf,SAAWX,IAAmBQ,MAA0BN,IACjE,wBAAOrsB,UAAWC,KAAE,2BAApB,UACK0K,IAAkB8C,EAASrM,IACxB,uBAAOtI,KAAK,OAAOkH,UAAWC,KAAE,2BAA4Bc,SAAU,SAAC/B,GAAD,OAAOutB,GAAavtB,EAAEE,OAAOopB,UAEvG,qBAAKtoB,UAAWC,KAAE,sBAAlB,SAEQ0K,IAAkB8C,EAASrM,GAAK,cAAC,KAAD,CAAYpB,UAAU,gBAAmBirB,OAKxFoB,IACG,cAAC,KAAD,CAAUvrB,QAAQ,OAAOisB,UAAU,OAAOxwB,MAAO,IAAKywB,OAAQ,MAE7C,kBAApBvF,GAA6D,aAAtB7O,GAAoCnL,EAAS4G,QACjF,sBAAMiC,MAAM,uCAAZ,SACI,cAAC,KAAD,CAAaxU,MAAO,CAAEwX,OAAQ,UAAWc,KAAM,kBAI3D,oBAAIpa,UAAWC,KAAE,qBAAjB,SAAwCwN,EAASlN,UAAY,KAAOkN,EAAShN,SAAWgN,EAAShN,SAAW,MACvF,kBAApBgnB,IAA8D,YAAtBha,EAASkH,UAAgD,aAAtBlH,EAASkH,WACjF,sBAAK3U,UAAWC,KAAE,uBAAlB,UACI,cAAC,KAAD,IADJ,gBACoC,mCAAIqrB,QAAJ,IAAIA,OAAJ,EAAIA,EAAevM,QAAQ,QAInE,qBAAI/e,UAAWC,KAAE,oBAAjB,UACI,oBAAID,UAAWC,KAAE,oBAAjB,SAAuCwN,EAASkH,WAChD,oBAAI3U,UAAWC,KAAE,oBAAjB,SAAuCwN,EAASpH,gBAChD,qBAAIrG,UAAWC,KAAE,oBAAjB,UAAuCwN,EAASnH,KAAOmH,EAASnH,KAAO,IAAM,GAA7E,IAAkFmH,EAAS7P,MAAQ6P,EAAS7P,MAAMlD,KAAO,IAAM,GAA/H,IAAoI+S,EAASlH,WAC7I,oBAAIvG,UAAWC,KAAE,oBAAjB,SAAuCwN,EAAS9L,cAChD,oBAAI3B,UAAWC,KAAE,oBAAjB,SAAsC,mBAAGiG,KAAMuH,EAASwf,QAAlB,SAA4Bxf,EAAS0G,eAG/E,qBAAInU,UAAWC,KAAE,oBAAjB,UACI,qBAAID,UAAWC,KAAE,oBAAjB,UACI,4DACA,+BAAO2rB,GAAoBntB,OAAS,EAAImtB,GAAsB,oBAElE,qBAAI5rB,UAAWC,KAAE,oBAAjB,UACI,4CACA,+BAAOyrB,EAAe,SAAW,mBAGlB,aAAtBje,EAASkH,UACN,cAACoV,GAAD,CAAqBvqB,SAAUiO,EAASjO,cAGhD,sBAAKQ,UAAWC,KAAE,mBAAlB,UAE4B,kBAApBwnB,GACsB,aAAtB7O,IACuB,aAAtBnL,EAASkH,UAAiD,YAAtBlH,EAASkH,WAC9C,iCACMkW,GACE,qBAAK7qB,UAAWC,KAAE,iCAAlB,SACI,cAACoB,EAAA,EAAD,CAAQrB,UAAWC,KAAE,4BAA6Ba,QAAQ,YAAYQ,MAAM,UACxEC,QAAS,kBAAMupB,GAAuB,IAD1C,gCAOPD,GACG,qBAAK7qB,UAAWC,KAAE,2BAAlB,SACI,cAAC4hB,GAAD,CAAajoB,OAAQ6T,EAASrM,UAKzB,kBAApBqmB,GAA6D,aAAtB7O,GACpC,iCACMmS,GACE,qBAAK/qB,UAAWC,KAAE,iCAAlB,SACI,cAACoB,EAAA,EAAD,CAAQrB,UAAWC,KAAE,4BAA6Ba,QAAQ,YAAYQ,MAAM,UACxEC,QAAS,kBAAMypB,GAA0B,IAD7C,oCAOPD,GACG,cAAC3N,GAAD,CAAYxjB,OAAQA,cASf,kBAApB6tB,GAA6D,aAAtB7O,GACxCjO,IAAkB/Q,IAEtB,0BAASoG,UAAWC,KAAE,6BAAtB,UACI,oBAAID,UAAWC,KAAE,0BAAjB,mBAEA,cAACqqB,GAAD,CAAeE,UAAWW,UAQtC,cAAC5iB,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WA9I/B,oBAAIrN,UAAWC,KAAE,sBAAjB,4B,6CClKN/D,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTwS,IAAK,CACD1J,QAAS,QACTzB,OAAQ,YACR,UAAW,CACP2V,OAAQ,2BAMlByH,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,OAEhCC,KAAM,CACF7e,SAAU,IAEdqM,IAAK,CACD1J,QAAS,QACTzB,OAAQ,iBAXIqd,CActBQ,MAEIC,GAAiBT,cAAW,SAAC3kB,GAAD,OAC9BC,YAAa,CACTolB,KAAM,CACF,qBAAsB,CAClBxS,gBAAiB7S,EAAM8S,QAAQwS,OAAOC,YAJ/BZ,CAQrBa,MAOa,SAASsL,GAAW5vB,GAC/B,IAAME,EAAUtB,KACVgW,EAAWC,cACX1U,EAAWC,cACXiN,EAAgBxJ,SAAS1G,EAAU,iBAAmB,IACtD0yB,EAAiBhsB,SAAS+Q,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,KALtC,EAMVnH,oBAAkB,GANR,mBAM7DuvB,EAN6D,KAMtCC,EANsC,OAORxvB,oBAAkB,GAPV,mBAO7DyvB,EAP6D,KAOrCC,EAPqC,OAQpC1vB,qBARoC,mBAQ7D2vB,EAR6D,KAQnDC,EARmD,OAShC5vB,mBAAiB,GATe,mBAS7D6vB,EAT6D,KASjDC,EATiD,OAUZ9vB,oBAAkB,GAVN,mBAU7D+vB,EAV6D,KAUvCC,EAVuC,KAY9DtD,EAAW,WACbje,OAAOvB,SAAS,CACZwB,IAAK,EACLC,SAAU,YAGZshB,EAAQ,uCAAG,WAAOJ,GAAP,qBAAAnyB,EAAA,6DACTwyB,EAAmC,sBAAtB7b,EAAS2a,UAClBM,IAAmBxiB,EAAiBwiB,EACtCxiB,EAEa,IAAf+iB,GAAkBL,GAAyB,GALlC,kBAQYlyB,EACjB,MACAZ,EAAW,+BAA2BwzB,EAA3B,uBAAoDL,EAApD,+CAAqGpwB,EAAMY,aAAe,IACrI,MAXK,OAQLpC,EARK,QAaLkyB,EAbK,aAaiBlyB,EAASR,OAGnBmD,OAAS,GACnBovB,GAAwB,GACxBA,GAAwB,GAGxBI,EADS,IAAfP,EAC4BM,EACAR,EAASU,OAAOF,GAE5CP,EAAYQ,GACZV,GAA0B,GAzBjB,kDA4BT5uB,QAAQiF,MAAM,KAAM3H,SACpBwB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IA9BnB,yBAiCU,IAAfq0B,GAAkBL,GAAyB,GAjCtC,6EAAH,sDA8Cd,OATAxuB,qBAAU,WACNivB,EAASJ,KACV,CAACxb,EAAUwb,IAEd7uB,qBAAU,WACN8uB,EAAc,GACdG,EAAS,KACV,CAACxwB,EAAMY,cAENsvB,GAAYA,EAAS/uB,OAAS,EAE1B,qCACI,cAACwjB,GAAA,EAAD,CAAgBrQ,UAAW8I,KAA3B,SACI,eAACwH,GAAA,EAAD,WACI,cAACC,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,sBACA,cAAC,GAAD,CAAiBS,MAAM,SAAvB,0BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,wBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sCACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,2BAIR,cAACD,GAAA,EAAD,UACKoL,GAAYA,EAASrrB,KAAI,SAACsoB,GAAD,yCACtB,eAAC,GAAD,WACI,cAAC,GAAD,CAAiB7Y,UAAU,KAAK8Y,MAAM,MAAtC,SACI,cAAC,KAAD,CAAS9T,GAAE,wBAAmB6T,EAASrpB,IAAMG,QAASgpB,EAAtD,SAAiEE,EAAS7O,WAG9E,cAAC,GAAD,CAAiByG,MAAM,SAAvB,SACK1d,GAAc,OAAC8lB,QAAD,IAACA,OAAD,EAACA,EAAU5O,eAAe,GAAGxhB,cAGhD,eAAC,GAAD,CAAiBgoB,MAAM,SAAvB,iBACKoI,QADL,IACKA,OADL,EACKA,EAAU5O,gBAAuB,OAAR4O,QAAQ,IAARA,OAAA,EAAAA,EAAU5O,eAAepd,QAAS,GAAGrE,gBAAgB0K,MAAM,aAAa,GAClG,uBAFJ,OAGK2lB,QAHL,IAGKA,OAHL,EAGKA,EAAU5O,gBAAuB,OAAR4O,QAAQ,IAARA,OAAA,EAAAA,EAAU5O,eAAepd,QAAS,GAAGrE,gBAAgB0K,MAAM,aAAa,MAGtG,cAAC,GAAD,CAAiBud,MAAM,SAAvB,SACKoI,EAAStN,SAAW,EACf,MAA6B,EAArBsN,EAAStN,SACjBsN,EAAStN,WAInB,cAAC,GAAD,CAAiBkF,MAAM,SAAvB,SAAiCoI,EAAS3O,yBAAgE,IAArC2O,EAAS3O,yBAAiC2O,EAAS3O,wBAA0B,UAElJ,eAAC,GAAD,CAAiBuG,MAAM,SAAvB,cAAkCoI,EAASE,WAE3C,cAAC,GAAD,CAAiBtI,MAAM,SAAvB,SACKoI,EAAS/gB,mBACN,cAAC,KAAD,CAASkN,GAAE,uBAAkB6T,EAAS/gB,kBAAkB9P,QAAU2H,QAASgpB,EAA3E,UACK,UAAAE,EAAS/gB,kBAAkBxP,YAA3B,eAAiCqG,WAAY,KAA7C,UAAmDkqB,EAAS/gB,kBAAkBxP,YAA9E,aAAmD,EAAiCuG,cAKjG,eAAC,GAAD,CAAiB4hB,MAAM,SAAvB,UACKoI,EAAS5gB,oBAAoBpL,OAAS,GACnC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAAtF,aAAkB,EAAwE7E,QAAU2H,QAASgpB,EAAxH,UACK,UAAAE,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApE,mBAAwEvE,YAAxE,eAA8EqG,WAAY,KAA1F,UAAgGkqB,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApK,iBAAgG,EAAwEvE,YAAxK,aAAgG,EAA8EuG,YAI9I,IAAxCgqB,EAAS5gB,oBAAoBpL,QAC1B,8DAIR,eAAC,GAAD,CAAiB4jB,MAAM,SAAvB,UACKoI,EAASre,mBAAmB3N,OAAS,GAClC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UAApF,aAAkB,EAAsE7E,QAAU2H,QAASgpB,EAAtH,mBACKE,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UADvE,iBACK,EAAsEvE,YAD3E,aACK,EAA4EqG,YAI7C,IAAvCkqB,EAASre,mBAAmB3N,QACzB,gEAtDSgsB,EAASrpB,cA+D7CksB,GACG,cAAC/kB,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,WAGjCugB,IAAyBN,GACtB,cAACjsB,EAAA,EAAD,CAAQC,MAAM,UAAUR,QAAQ,WAAWd,UAAWxC,EAAQqR,IAC1DtN,QAAS,WACLosB,EAAcD,EAAa,GAC3BH,GAA0B,IAHlC,2BAWNjwB,EAAMY,YAAc,IAAIO,OAAS,EAEnC,oBAAIqD,MAAO,CAAE0G,UAAW,UAAxB,6BAGC4kB,EAED,cAAC7kB,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WAK/B,oBAAIvL,MAAO,CAAE0G,UAAW,UAAxB,6BC5NG,SAAS2lB,KAAmB,IAAD,EACAtwB,mBAAiB,IADjB,mBAC/BK,EAD+B,KAClBC,EADkB,KAEhCspB,EAAkBhtB,EAAU,mBAC5B6D,EAAiBC,iBAA8B,MAE/C6vB,EAAiB,uCAAG,WAAOlwB,GAAP,SAAA3C,EAAA,sDAClB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChC5B,EAAeD,KAChB,KAPmB,2CAAH,sDAUvB,OACI,eAACuO,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,gBAArC,UACI,sBAAKD,UAAWC,KAAE,yBAAlB,UACI,wBAAOD,UAAWC,KAAE,0BAApB,UACI,cAAC,KAAD,CAAYD,UAAU,gBACtB,cAACY,EAAA,EAAD,CAAWC,MAAM,SAAS/H,KAAK,OAAOiI,SAAU,SAAC/B,GAAD,OAAOovB,EAAkBpvB,EAAEE,OAAOD,MAAQ,UAIrE,kBAApBwoB,GAA2D,aAApBA,EACpC,eAAC,KAAD,CAAS7Q,GAAG,4BAA4B5W,UAAWC,KAAE,oCAArD,UACI,cAAC,KAAD,CAAeD,UAAU,gBACzB,2DACS,MAIzB,cAACktB,GAAD,CAAYhvB,YAAaA,O,kECnC/BmwB,GAA6B,CAC/BhhB,SAAU,WACV0B,KAAM,EACNuf,MAAO,EACP/hB,IAAK,EACLgiB,OAAQ,EACRjV,OAAQ,WAWG,SAASkV,GAAWlxB,GAC/B,IAAMG,EAAWC,cACX+wB,EAAwD,CAAC,MAAO,WAAY,YAE5EC,EAAkB,uCAAG,WAAOC,GAAP,eAAApzB,EAAA,uEAEfqzB,EAAetxB,EAAMuxB,gBAAgBC,MAAK,SAAC50B,GAAD,OAAeA,EAAKkH,KAAO9D,EAAMyxB,uBAClExa,WAAWC,kBAAoBma,EAHzB,SAIbxzB,EAAe,OAAQZ,EAAW,4BAAwB+C,EAAMyxB,oBAAsBH,GAJzE,OAMnBnxB,EAASlE,EAAoB,CAAE0C,QAAS,4BAA6ByC,SAAU,aAC/EjB,EAASpE,GAAmB,IAPT,gDAUnBsF,QAAQC,IAAI,KAAM3C,SAVC,yDAAH,sDAcxB,OACI,qBAAKsF,QAAS,kBAAMjE,EAAM0xB,mBAAkB,IAAQltB,MAAOusB,GAA3D,SACI,cAAChU,GAAA,EAAD,CAAQrJ,KAAM1T,EAAM0T,KAAMuH,SAAUjb,EAAMib,SAAUiC,UAAW,SAAUF,YAAU,EAAnF,SACK,gBAAGC,EAAH,EAAGA,gBAAH,OACG,cAAC/I,GAAA,EAAD,2BAAU+I,GAAV,IAA2BhJ,QAAS,IAApC,SACI,cAACmJ,GAAA,EAAD,UACI,6BACK+T,GACGA,EAActsB,KAAI,SAACsS,GACf,OACI,oBAAIzU,UAAWC,KAAE,mBACbsB,QAAS,kBAAMmtB,EAAmBja,IADtC,SAGKA,mBC3CjD,IAAMqM,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,MAC5BnkB,QAAS,IAEbokB,KAAM,CACF7e,SAAU,GACVvF,QAAS,QATG8jB,CAYtBQ,MAEIC,GAAiBT,cAAW,SAAC3kB,GAAD,OAC9BC,YAAa,CACTolB,KAAM,CACF,qBAAsB,CAClBxS,gBAAiB7S,EAAM8S,QAAQwS,OAAOC,YAJ/BZ,CAQrBa,MAEI1lB,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACT2kB,MAAO,CACHiO,UAAW,QAEfpgB,IAAK,CACD1J,QAAS,QACTzB,OAAQ,YACR,UAAW,CACP2V,OAAQ,sBAGhB6V,SAAU,CACN5V,OAAQ,UACRrc,QAAS,QAWN,SAASkyB,GAAT,GAAuE,IAA9Cxa,EAA6C,EAA7CA,SAAUF,EAAmC,EAAnCA,OAAQ/Z,EAA2B,EAA3BA,KAChD8C,EAAUtB,KACVuB,EAAWC,cAFgE,EAG7BG,mBAAiB,GAHY,mBAG1EkxB,EAH0E,KAGtDK,EAHsD,OAIrCvxB,oBAAkB,GAJmB,mBAI1EwxB,EAJ0E,KAI1DL,EAJ0D,OAKjDnxB,mBAAS,MALwC,mBAK1E0a,EAL0E,KAKhE+W,EALgE,OAarBzxB,oBAAkB,GAbG,mBAa1EyvB,EAb0E,KAalDC,EAbkD,OAcnC1vB,mBAAc,MAdqB,mBAc1EgxB,EAd0E,KAczDU,EAdyD,OAe7C1xB,mBAAiB,GAf4B,mBAe1E6vB,EAf0E,KAe9DC,EAf8D,OAgBzB9vB,oBAAkB,GAhBO,mBAgB1E+vB,EAhB0E,KAgBpDC,EAhBoD,cAiBlE2B,EAjBkE,8EAiBjF,WAAwB9B,GAAxB,mBAAAnyB,EAAA,+EAE6BJ,EAAe,MAChCZ,EACA,sBACCoa,EAAQ,mBAAeA,EAAf,KAA6B,KACrCF,EAAM,qBAAiBA,EAAjB,KAA6B,KACnC/Z,GAAQA,EAAK+D,QAAU,EAAvB,eAAmC/D,EAAnC,KAA6C,IAJ9C,qBAKcgzB,EALd,iCAMA,MATZ,OAEY5xB,EAFZ,QAWY2zB,EAXZ,aAW8B3zB,EAASR,OACnBmD,OAAS,GAAKovB,GAAwB,GAASA,GAAwB,GAGhE6B,EAAJ,IAAfhC,EAAqC+B,EAAgCZ,EAAgBX,OAAOuB,GAC5FF,EAAmBG,GACnBnC,GAA0B,GAjBlC,kDAoBQ5uB,QAAQiF,MAAM,KAAM3H,SACpBwB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAtBpC,2DAjBiF,sBAoDjF,OATAwF,qBAAU,WACN8uB,EAAc,GACd6B,EAAS,KACV,CAAC7a,EAAUF,EAAQ/Z,IAEtBmE,qBAAU,WACS,IAAf6uB,GAAoB8B,EAAS9B,KAC9B,CAACA,IAECmB,EAOD,gCACI,cAAC5M,GAAA,EAAD,CAAgBrQ,UAAW8I,KAAO1a,UAAWxC,EAAQwjB,MAArD,SACI,eAACkB,GAAA,EAAD,WACI,cAACC,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,CAAiBS,MAAM,SAAvB,0BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,4BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,kBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,uBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,6BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,6BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,gBAG/B,cAACD,GAAA,EAAD,UACKyM,EAAgBpwB,OAAS,GAAKowB,EAAgB1sB,KAAI,SAACjI,GAAD,OAC/C,eAAC,GAAD,WACI,cAAC,GAAD,CAAiBmoB,MAAM,SAAvB,SAAiC1d,GAAezK,EAAK4Z,cACrD,cAAC,GAAD,CAAiBuO,MAAM,SAAvB,SAAiC1d,GAAezK,EAAK6Z,aACrD,cAAC,GAAD,CAAiBsO,MAAM,SAAvB,SACI,cAAC,KAAD,CACIzL,GAAI,CACAiW,SAAU,gBACVza,OAAO,IAAD,OAAMlY,EAAKkH,KAHzB,SAMKlH,EAAKqG,UAAY,KAAOrG,EAAKuG,SAAWvG,EAAKuG,SAAW,QAGjE,cAAC,GAAD,CAAiB4hB,MAAM,SAAvB,SAAiCnoB,EAAKya,WACtC,cAAC,GAAD,CAAiB0N,MAAM,SAAvB,SAAiCnoB,EAAKy1B,gBACtC,cAAC,GAAD,CAAiBtN,MAAM,SAAvB,SAAiCnoB,EAAK01B,gBACtC,cAAC,GAAD,CAAiBvN,MAAM,SAAvB,SAAiCnoB,EAAKma,OAAS,IAAM,MACrD,cAAC,GAAD,CAAiBgO,MAAM,SAAvB,SAAiCnoB,EAAKqa,WAAara,EAAKqa,WAAWC,kBAAoB,QACvF,eAAC,GAAD,CAAiB6N,MAAM,SAASriB,UAAWxC,EAAQ0xB,SAAnD,UACI,qBAAK3tB,QAAS,SAACvC,GAAD,OAzFvB,SAACA,EAAQpF,GAC5B01B,EAAYtwB,EAAEqZ,eACd+W,EAAsBx1B,GACtBo1B,GAAmBK,GAsF8BQ,CAAe7wB,EAAG9E,EAAKkH,KAA5C,SACI,cAAC,KAAD,MAGHiuB,GACG,cAACb,GAAD,CACIK,gBAAiBA,EACjBE,mBAAoBA,EACpB/d,KAAMqe,EACNL,kBAAmBA,EACnBzW,SAAUA,SA7BLre,EAAKkH,cAuCzCwsB,IAAyBN,GACtB,cAACjsB,EAAA,EAAD,CAAQC,MAAM,UAAUR,QAAQ,WAAWd,UAAWxC,EAAQqR,IAC1DtN,QAAS,WACLosB,EAAcD,EAAa,GAC3BH,GAA0B,IAHlC,uBASHD,GACG,cAAC/kB,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,cAzElC,cAAC9E,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WC5G3C,IAAMnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPE,YAAa,GACbD,aAAc,GACd,eAAgB,CACZC,YAAa,IAEhBL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,IAGrBqzB,YAAY,aACRvzB,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,SAMd,SAASszB,KACpB,IAAMvyB,EAAUtB,KADe,EAEC2B,mBAAS,IAFV,mBAExB8W,EAFwB,KAEdqb,EAFc,OAGanyB,mBAAS,IAHtB,mBAGxBoyB,EAHwB,KAGRC,EAHQ,OAIPryB,mBAAS,IAJF,mBAIxBnD,EAJwB,KAIlBy1B,EAJkB,KAKzB7xB,EAAiBC,iBAA8B,MAE/C6vB,EAAiB,uCAAG,WAAOlwB,GAAP,SAAA3C,EAAA,sDAClB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChCowB,EAAQjyB,KACT,KAPmB,2CAAH,sDAUvB,OACI,eAACuO,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,SAArC,UACI,sBAAKD,UAAWC,KAAE,mBAAlB,UACI,eAAC8B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,kBAAf,uBACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,kBAAkBxH,KAAK,WAAWuE,MAAO0V,EAAU5T,SAAU,SAAC/B,GAAD,OAAOgxB,EAAYhxB,EAAEE,OAAOD,MAAQ,KAAjH,UACI,cAACmD,EAAA,EAAD,CAAUnD,MAAM,GAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,gBAAhB,iCAIR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,0BAAf,+BACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,0BAA0BxH,KAAK,mBAAmBuE,MAAOgxB,EAAgBlvB,SAAU,SAAC/B,GAAD,OAAOkxB,EAAkBlxB,EAAEE,OAAOD,MAAQ,KAA7I,UACI,cAACmD,EAAA,EAAD,CAAUnD,MAAM,GAAhB,+BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,4BAIR,wBAAOe,UAAWC,KAAE,mBAApB,UACI,cAAC,KAAD,CAAYD,UAAU,gBACtB,cAACY,EAAA,EAAD,CAAWZ,UAAWxC,EAAQsyB,YAAajvB,MAAM,OAAO/H,KAAK,SAASiI,SAAU,SAAC/B,GAAD,OAAOovB,EAAkBpvB,EAAEE,OAAOD,MAAQ,UAG9H,qBAAKe,UAAWC,KAAE,0BAAlB,SACI,cAAC,KAAD,CAAS2W,GAAG,eAAe5W,UAAWC,KAAE,8BAAxC,SACI,cAACqN,GAAD,CAAQC,KAAK,2BAKzB,cAAC4hB,GAAD,CAAexa,SAAUA,EAAUF,OAAQwb,EAAgBv1B,KAAMA,O,yBC5E9D,SAAS01B,KACpB,IAAM3yB,EAAWC,cADmB,EAEVG,mBAAS,IAFC,mBAE7B4D,EAF6B,KAEtB4uB,EAFsB,KAI9BpkB,EAAY,uCAAG,WAAOjN,GAAP,SAAAzD,EAAA,6DACjByD,EAAEkN,iBADe,kBAIP/Q,EAAe,OAAQZ,EAAW,+CAA2CkH,IAJtE,OAKb4uB,EAAS,IACT5yB,EAAShE,EAAqB,CAC1B6c,MAAO,aACPC,gBAAiB,qIACjBC,UAAU,EACVC,eAAe,EACfC,oBAAoB,KAExBrK,GAAQF,KAAK,qBAbA,gDAgBiB,MAA1B,KAAMrQ,SAAS2Y,QACfhX,EAASlE,EAAoB,CAAE0C,QAAS,gCAAiCyC,SAAU,WACnFjB,EAASpE,GAAmB,MAG5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,KAtBnB,yDAAH,sDA2BlB,OACI,sBAAK2G,UAAWC,KAAC,cAAjB,UACI,oBAAID,UAAWC,KAAE,uBAAjB,mCACA,oBAAGD,UAAWC,KAAE,0BAAhB,oDAAkF,uBAAlF,mCACA,uBAAMD,UAAWC,KAAE,sBAAuB0M,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAAxE,UACI,cAAC4B,EAAA,EAAD,CACIZ,UAAWC,KAAE,uBACba,QAAQ,WACRY,KAAK,QACLT,UAAQ,EACRvG,KAAK,QACL5B,KAAK,QACLmG,MAAOwC,EACPV,SAAU,SAAC/B,GAAD,OAAOqxB,EAASrxB,EAAEE,OAAOD,QACnC4B,MAAM,UAGV,cAACQ,EAAA,EAAD,CACIvI,KAAK,SACLkH,UAAWC,KAAE,qBACba,QAAQ,YACRQ,MAAM,UACN8L,SAAoB,KAAV3L,EALd,6B,wBCpDT,SAAS6uB,GAAwBC,GACpC,IAKIC,EAAmBD,EAAerrB,MAAM,EAAGqrB,EAAe9xB,QAAQqG,MAAM,KAM5E,MALuB,CACnBtJ,MAAOg1B,EAAiB,GAAG1rB,MAAM,KAAK,GACtCrD,MAAO+uB,EAAiB,GAAG1rB,MAAM,KAAK,ICF/B,SAAS2rB,KACpB,IAAMhzB,EAAWC,cAD0B,EAGXG,mBAAiB,IAHN,mBAGpCyJ,EAHoC,KAG1BopB,EAH0B,OAIG7yB,mBAAiB,IAJpB,mBAIpC0J,EAJoC,KAInByP,EAJmB,KAMrC9E,EAAWC,cAN0B,EAOqBtU,mBAAmC,CAC/FrC,MAAO,GACPiG,MAAO,KATgC,mBAOpCkvB,EAPoC,KAOVC,EAPU,OAYuB/yB,oBAAkB,GAZzC,mBAYpCgzB,EAZoC,KAYTC,EAZS,OAaKjzB,oBAAkB,GAbvB,mBAapC4Z,EAboC,KAalBsZ,EAbkB,KAerC9kB,EAAY,uCAAG,WAAOjN,GAAP,qBAAAzD,EAAA,yDACjByD,EAAEkN,iBADe,EAGqC7E,GAAiBC,EAAUC,GAHhE,mBAGZypB,EAHY,KAGaC,EAHb,KAIjBH,EAA6BE,GAC7BD,EAAoBE,IAEhBD,IAA2BC,EAPd,0CASH91B,EACF,OACAZ,EAAc,wDAA0Do2B,EAAyBn1B,MACjG,CACI8L,WACA7F,MAAOkvB,EAAyBlvB,QAd/B,OAiBTivB,EAAY,IACZ1Z,EAAmB,IAEnBvZ,EAAShE,EAAqB,CAC1B6c,MAAO,iCACPC,gBAAiB,sDACjBC,UAAU,EACVE,oBAAoB,EACpBD,eAAe,EACfya,WAAY,cACZC,QAAS,YAEb9kB,GAAQF,KAAK,qBA7BJ,kDAgCT1O,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAjCnB,0DAAH,sDA0ClB,OAJAwF,qBAAU,WACN+xB,EAA4BN,GAAwBpe,EAASE,WAC9D,IAGC,sBAAKpS,UAAWC,KAAC,qBAAjB,UACI,oBAAID,UAAWC,KAAE,8BAAjB,0BACA,mBAAGD,UAAWC,KAAE,iCAAhB,yDAEA,uBAAMD,UAAWC,KAAE,6BAA8B0M,SAAU,SAAA3N,GAAC,OAAIiN,EAAajN,IAA7E,UACI,cAAC4B,EAAA,EAAD,CACIZ,UAAWC,KAAE,8BACbnH,KAAK,WAAWgI,QAAQ,WAAWY,KAAK,QACxCb,MAAM,eACNI,UAAQ,EACRvG,KAAK,WACLuE,MAAOqI,EACPvG,SAAU,SAAC/B,GAAD,OAAO0xB,EAAY1xB,EAAEE,OAAOD,UAG1C,cAAC2B,EAAA,EAAD,CACIZ,UAAWC,KAAE,8BACbnH,KAAK,WAAWgI,QAAQ,WAAWY,KAAK,QACxCb,MAAM,kBACNI,UAAQ,EACRvG,KAAK,kBACLuE,MAAOsI,EACPxG,SAAU,SAAC/B,GAAD,OAAOgY,EAAmBhY,EAAEE,OAAOD,QAC7C2E,OAAQitB,IAA8BpZ,EACtC2Z,aACMP,IAA8BpZ,KACzBA,EAAyC,oFAAtB,uBAKlC,cAACpW,EAAA,EAAD,CACI+L,SAAuB,KAAb9F,GAAuC,KAApBC,EAC7BzO,KAAK,SACLkH,UAAWC,KAAE,4BACba,QAAQ,YACRQ,MAAM,UALV,kC,wBC7FD,SAAS+vB,KACpB,IAAMC,EAAc,WAChBhlB,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAGxC,OACI,qBAAKxM,UAAWC,KAAC,OAAjB,SACI,cAACwM,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAE,eAAtC,SACI,qBAAID,UAAWC,KAAE,eAAjB,UACI,oBAAID,UAAWC,KAAE,eAAjB,SACI,mBAAGiG,KAAI,iBAAY1L,GAAiBwF,UAAWC,KAAE,eAAjD,0BAEJ,oBAAID,UAAWC,KAAE,eAAgBsB,QAAS,kBAAM+vB,KAAhD,SACI,cAAC,KAAD,CAAS1a,GAAG,wBAAwB5W,UAAWC,KAAE,eAAjD,kCAIJ,oBAAID,UAAWC,KAAE,eAAgBsB,QAAS,kBAAM+vB,KAAhD,SACI,cAAC,KAAD,CAAS1a,GAAG,kBAAkB5W,UAAWC,KAAE,eAA3C,qCCrBT,SAASsxB,KACpB,IAAI5mB,EAAoClQ,EAAU,iBAElD,OACI,eAACgS,EAAA,EAAD,CAAW/J,SAAS,KAAKZ,MAAO,CAAC0G,UAAW,SAAUvL,QAAS,UAA/D,UACI,cAAC,KAAD,CAAauF,SAAS,QAAQxC,UAAU,gBAExC,oBAAI8B,MAAO,CAAC0G,UAAW,SAAUhM,aAAc,QAA/C,kDAEA,cAAC,KAAD,CAASoa,GAAE,wBAAmBjM,GAAiB7I,MAAO,CAAC0vB,eAAgB,QAAvE,SACI,cAACnwB,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,UAAlC,iC,wBCfD,SAASmwB,GAAa9tB,GACjC,IAAKA,EACD,OAAO,KAGX,IAAM+tB,EAAe,SAACC,GAAD,OAAiBA,EAAM,GAAN,WAAeA,GAAQA,EAAInxB,YAEjE,MAAM,GAAN,OAAUkxB,EAAa/tB,EAAKiM,WAA5B,YAA0C8hB,EAAa/tB,EAAKgM,WAAa,GAAzE,YAA+EhM,EAAK8L,eCMxF,IAAMmiB,GAAgB,CAClB,CAAE3yB,MAAO,gBAAiBqX,MAAO,kBACjC,CAAErX,MAAO,iBAAkBqX,MAAO,oBAGhCub,GAAmB,CACrB,CAAE5yB,MAAO,YAAaqX,MAAO,cAC7B,CAAErX,MAAO,cAAeqX,MAAO,gBAC/B,CAAErX,MAAO,UAAWqX,MAAO,YAC3B,CAAErX,MAAO,mBAAoBqX,MAAO,2BACpC,CAAErX,MAAO,iBAAkBqX,MAAO,qBAGhCwb,GAAgB,CAClB,CAAE7yB,MAAO,UAAWqX,MAAO,WAC3B,CAAErX,MAAO,YAAaqX,MAAO,aAC7B,CAAErX,MAAO,SAAUqX,MAAO,WAGxBpa,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACT01B,OAAO,aACHx1B,MAAO,IACPC,aAAc,GACdkH,OAAQ,gBACR,SAAU,CACNjH,YAAa,KAEhBL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPmH,OAAQ,eAGhBmL,IAAI,aACAtS,MAAO,IACPmH,OAAQ,UACPtH,EAAMM,YAAYC,KAAK,MAAQ,CAC5B+G,OAAQ,mBAMT,SAASsuB,KACpB,IAAMx0B,EAAUtB,KACVuB,EAAWC,cAFkB,EAIPG,qBAJO,mBAI5Bo0B,EAJ4B,KAIpBC,EAJoB,OAKSr0B,mBAAwB,IALjC,mBAK5Bge,EAL4B,KAKZsW,EALY,OAMKt0B,mBAAwB,IAN7B,mBAM5BiG,EAN4B,KAMdsuB,EANc,OAQHv0B,mBAC5B,IAAIiF,MAT2B,mBAQ5BuvB,EAR4B,KAQlBC,EARkB,OAWPz0B,mBACxB,IAAIiF,MAZ2B,mBAW5ByvB,EAX4B,KAWpBC,EAXoB,OAcS30B,oBAAkB,GAd3B,mBAc5BO,EAd4B,KAcZC,EAdY,KAgB7Bo0B,EAAY,uCAAG,WAAOzzB,GAAP,iBAAAzD,EAAA,6DACjByD,EAAEkN,iBACF7N,GAAkB,GAFD,SAITq0B,EAAgB,CAChBC,KAAMlB,GAAaY,GACnBzb,GAAI6a,GAAac,GACjBK,eAAgBX,EAChBnuB,aAAcA,EACd+X,eAAgBA,GATP,SAWQ1gB,EAAe,OAAQZ,EAAc,qCAAsCm4B,GAXnF,OAWT52B,EAXS,OAYbooB,GACIpoB,EAASR,KAAK6oB,SACdroB,EAASR,KAAK8oB,cACdtoB,EAASR,KAAK+oB,UAfL,kDAmBb5mB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IApBf,yBAuBbgF,GAAkB,GAvBL,6EAAH,sDA2BlB,OACI,oCACI,oBAAI2B,UAAWC,KAAE,sBAAjB,2BAEA,uBAAMD,UAAWC,KAAE,qBAAsB0M,SAAU,SAAC3N,GAAD,OAAOyzB,EAAazzB,IAAvE,UAEI,sBAAKgB,UAAWC,KAAE,qBAAlB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,mEACA,gCACI,cAAC,KAAD,CAAyBqD,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWxC,EAAQu0B,OAAQ9yB,MAAOozB,EAAU7uB,gBAAc,EAC1E1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,OAC3DE,SAAU,SAACzF,GAAD,OAAUg3B,EAAYh3B,IAChC2F,UAAQ,MAGhB,cAAC,KAAD,CAAyBqC,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWxC,EAAQu0B,OAAQ9yB,MAAOszB,EAAQ/uB,gBAAc,EACxE1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,KAC3DE,SAAU,SAACzF,GAAD,OAAUk3B,EAAUl3B,IAC9B2F,UAAQ,YAMxB,sBAAKjB,UAAWC,KAAE,qBAAlB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,4DACA,eAAC8B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQu0B,OAAhC,UACI,cAAC/vB,EAAA,EAAD,CAAYf,UAAQ,EAApB,yBACA,cAACgB,EAAA,EAAD,CACIlB,SAAU,SAAC/B,GAAD,OAAOkzB,EAAUlzB,EAAEE,OAAOD,QACpCgC,UAAQ,EAFZ,SAIK6wB,GAAc3vB,KAAI,SAAC8vB,EAAQ7e,GAAT,OACf,cAAChR,EAAA,EAAD,CAEInD,MAAOgzB,EAAOhzB,MAFlB,SAIKgzB,EAAO3b,OAHHlD,cAUzB,sBAAKpT,UAAWC,KAAE,qBAAlB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,yDAEA,eAAC8B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQu0B,OAAS,IAAM9xB,KAAE,sBAAjD,UACI,cAAC+B,EAAA,EAAD,CAAYf,UAAQ,EAApB,4BACA,cAACgB,EAAA,EAAD,CACIhD,MAAO6E,EACP/C,SAAU,SAAC/B,GAAD,OAAOozB,EAAgBpzB,EAAEE,OAAOD,QAC1CnG,KAAK,kBACLmI,UAAQ,EACR4xB,UAAQ,EALZ,SAOKjB,GAAczvB,KAAI,SAAC2B,EAAcsP,GAAf,OACf,cAAChR,EAAA,EAAD,CAEInD,MAAO6E,EAAa7E,MAFxB,SAIK6E,EAAawS,OAHTlD,WASrB,eAACrR,EAAA,EAAD,CAAa/B,UAAWxC,EAAQu0B,OAAS,IAAM9xB,KAAE,sBAAjD,UACI,cAAC+B,EAAA,EAAD,CAAYf,UAAQ,EAApB,8BACA,cAACgB,EAAA,EAAD,CACIhD,MAAO4c,EACP9a,SAAU,SAAC/B,GAAD,OAAOmzB,EAAkBnzB,EAAEE,OAAOD,QAC5C6C,MAAO,CAAEgxB,gBAAiB,OAC1B7xB,UAAQ,EACR4xB,UAAQ,EALZ,SAOKhB,GAAiB1vB,KAAI,SAAC0Z,EAAgBzI,GAAjB,OAClB,cAAChR,EAAA,EAAD,CAEInD,MAAO4c,EAAe5c,MAF1B,SAIK4c,EAAevF,OAHXlD,WASrB,sBAAKpT,UAAWC,KAAE,6BAAlB,UACI,cAACoB,EAAA,EAAD,CACIrB,UAAWxC,EAAQqR,IACnB/N,QAAQ,YACRhI,KAAK,SACLwI,MAAM,UACN8L,SAAUhP,EALd,2BAUCA,GAAkB,cAACmK,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,uBCrMzE,IAAMnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACT01B,OAAO,aACHx1B,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,cAYR,SAASw2B,GAAcz1B,GAClC,IAAME,EAAUtB,KAEhB,OACI,eAAC6F,EAAA,EAAD,CAAa/B,UAAWxC,EAAQu0B,OAAhC,UACI,cAAC/vB,EAAA,EAAD,CAAYf,UAAQ,EAApB,uBACA,eAACgB,EAAA,EAAD,CACIlB,SAAU,SAAC/B,GAAD,OAAO1B,EAAM01B,WAAWh0B,EAAEE,OAAOD,QAC3CA,MAAO3B,EAAM21B,QACbJ,UAAQ,EACR5xB,UAAQ,EAJZ,UAMI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,kBAAhB,+BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,wBAAhB,qCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,eAAhB,2BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,sBAAhB,kCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,mBAAhB,+BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,qBAAhB,iCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,kBAAhB,+BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,6BAAhB,2CACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,uCAAhB,wDACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,wBAAhB,qCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,kBAAhB,8BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,+BAAhB,6CACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,+CAAhB,iEACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,iCAAhB,+CACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,kCAAhB,gDACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,gCAAhB,+CACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,cAAhB,0BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,6BAAhB,4CACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,8BCpChB,IAAM/C,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACT01B,OAAO,aACHx1B,MAAO,IACPC,aAAc,GACdkH,OAAQ,gBACR,SAAU,CACNjH,YAAa,KAEhBL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPmH,OAAQ,eAGhBmL,IAAI,aACAtS,MAAO,IACPmH,OAAQ,UACPtH,EAAMM,YAAYC,KAAK,MAAQ,CAC5B+G,OAAQ,mBAMT,SAASwvB,KACpB,IAAM11B,EAAUtB,KACVuB,EAAWC,cAFa,EAIAG,mBAAwB,IAJxB,mBAIvBo1B,EAJuB,KAIdD,EAJc,OAKEn1B,mBAC5B,IAAIiF,MANsB,mBAKvBuvB,EALuB,KAKbC,EALa,OAQFz0B,mBACxB,IAAIiF,MATsB,mBAQvByvB,EARuB,KAQfC,EARe,OAWc30B,oBAAkB,GAXhC,mBAWvBO,EAXuB,KAWPC,EAXO,KAaxB80B,EAAa,uCAAG,WAAOn0B,GAAP,iBAAAzD,EAAA,6DAClByD,EAAEkN,iBACF7N,GAAkB,GAFA,SAIV+0B,EAAuB,CACvBT,KAAMlB,GAAaY,GACnBzb,GAAI6a,GAAac,GACjBc,qBAAsBJ,GAPZ,SASO93B,EAAe,OAAQZ,EAAc,kCAAmC64B,GAT/E,OASVt3B,EATU,OAUdooB,GACIpoB,EAASR,KAAK6oB,SACdroB,EAASR,KAAK8oB,cACdtoB,EAASR,KAAK+oB,UAbJ,kDAiBd5mB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAlBd,yBAqBdgF,GAAkB,GArBJ,6EAAH,sDAyBnB,OACI,0BAAS2B,UAAWC,KAAE,yCAAtB,UACI,oBAAID,UAAWC,KAAE,sBAAjB,+BAEA,uBAAMD,UAAWC,KAAE,qBAAsB0M,SAAU,SAAC3N,GAAD,OAAOm0B,EAAcn0B,IAAxE,UACI,sBAAKgB,UAAWC,KAAE,qBAAlB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,mEACA,gCACI,cAAC,KAAD,CAAyBqD,MAAOC,KAAhC,SACI,cAAC,KAAD,CACIvD,UAAWxC,EAAQu0B,OACnB9yB,MAAOozB,EACP7uB,gBAAc,EACd1C,QAAQ,SACR2C,OAAO,aACPC,OAAO,SACP7C,MAAM,OACNE,SAAU,SAACzF,GAAD,OAAUg3B,EAAYh3B,IAChC2F,UAAQ,MAGhB,cAAC,KAAD,CAAyBqC,MAAOC,KAAhC,SACI,cAAC,KAAD,CACIvD,UAAWxC,EAAQu0B,OACnB9yB,MAAOszB,EACP/uB,gBAAc,EACd1C,QAAQ,SACR2C,OAAO,aACPC,OAAO,SACP7C,MAAM,KACNE,SAAU,SAACzF,GAAD,OAAUk3B,EAAUl3B,IAC9B2F,UAAQ,YAMxB,sBAAKjB,UAAWC,KAAE,qBAAlB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,qFACA,cAAC8yB,GAAD,CACIE,QAASA,EACTD,WAAYA,EACZM,OAAQL,IAGZ,sBAAKjzB,UAAWC,KAAE,6BAAlB,UACI,cAACoB,EAAA,EAAD,CACIrB,UAAWxC,EAAQqR,IACnB/N,QAAQ,YACRhI,KAAK,SACLwI,MAAM,UACN8L,SAAUhP,EALd,6BAUCA,GAAkB,cAACmK,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,uBC/H1D,SAAS6lB,KACpB,IAAMva,EAAWle,EAAU,mBACrBme,EAAoBne,EAAU,qBAGpC,MAAiB,kBAAbke,GAAsD,aAAtBC,EAE5B,eAACnM,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,aAArC,UACI,cAAC+xB,GAAD,IACA,cAAC7kB,EAAA,EAAD,IACA,cAAC,GAAD,OAMJ,oBAAInN,UAAWC,KAAE,iCAAjB,4C,wBCdG,SAASszB,KAAmB,IAAD,EAElC51B,aAAY,SAACC,GAAD,OAAsBA,EAAM41B,YADpCld,EAD8B,EAC9BA,MAAOC,EADuB,EACvBA,gBAAiBC,EADM,EACNA,SAAUid,EADJ,EACIA,iBAAkBC,EADtB,EACsBA,WAAYjd,EADlC,EACkCA,cAAeya,EADjD,EACiDA,WAAYC,EAD7D,EAC6DA,QAASza,EADtE,EACsEA,mBAG5G,OACI,qBAAK1W,UAAWC,KAAC,gBAAjB,SACI,eAACwM,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAE,wBAAtC,UACI,oBAAID,UAAWC,KAAE,yBAAjB,SAA4CqW,IAC5C,mBAAGtW,UAAWC,KAAE,+BAAhB,SAAiDsW,IAEhDC,GAAYid,GACT,cAAC7yB,EAAA,EAAD,CACIZ,UAAWC,KAAE,yBACbnH,KAAK,OAAOgI,QAAQ,WACpBY,KAAK,QACL0C,YAAaqvB,EACb5yB,MAAO6yB,IAIdjd,GAAiB0a,GAAWD,GACzB,cAAC,KAAD,CAASlxB,UAAWC,KAAE,wBAAyB2W,GAAIua,EAAnD,SACI,cAAC9vB,EAAA,EAAD,CACIrB,UAAWC,KAAE,uBACba,QAAQ,YAAYQ,MAAM,UAF9B,SAIK4vB,MAKZxa,GACG,mBACIxQ,KAAI,iBAAY1L,GAChBwF,UAAWC,KAAE,uCAFjB,SAII,cAACoB,EAAA,EAAD,CACIP,QAAQ,YACRQ,MAAM,UAFV,oCCnCxB,IAAMwf,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,OAEhCC,KAAM,CACF7e,SAAU,QAPEue,CAUtBQ,MAEIC,GAAiBT,cAAW,SAAC3kB,GAAD,OAC9BC,YAAa,CACTolB,KAAM,CACF,qBAAsB,CAClBxS,gBAAiB7S,EAAM8S,QAAQwS,OAAOC,YAJ/BZ,CAQrBa,MAGI1lB,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTwS,IAAK,CACD1J,QAAS,QACTzB,OAAQ,kBAWL,SAASiwB,GAAgBr2B,GACpC,IAAME,EAAUtB,KAD8C,EAEF2B,oBAAkB,GAFhB,mBAEvDyvB,EAFuD,KAE/BC,EAF+B,OAGhB1vB,mBAAc,MAHE,mBAGvDgxB,EAHuD,KAGtCU,EAHsC,OAI1B1xB,mBAAiB,GAJS,mBAIvD6vB,EAJuD,KAI3CC,EAJ2C,OAKN9vB,oBAAkB,GALZ,mBAKvD+vB,EALuD,KAKjCC,EALiC,cAM/C2B,EAN+C,oFAM9D,WAAwB9B,EAAqB/Y,EAA0BF,EAAwB/Z,GAA/F,mBAAAa,EAAA,+EAE6BJ,EAAe,MAAOZ,EACvC,sBACCoa,EAAQ,mBAAeA,EAAf,KAA6B,KACrCF,EAAM,qBAAiBA,EAAjB,KAA6B,KACnC/Z,GAAQA,EAAK+D,QAAU,EAAvB,eAAmC/D,EAAnC,KAA6C,IAJP,qBAKzBgzB,EALyB,iCAMvC,MARZ,OAEY5xB,EAFZ,QASY2zB,EATZ,aAS8B3zB,EAASR,OACnBmD,OAAS,GAAKovB,GAAwB,GAASA,GAAwB,GAGhE6B,EAAJ,IAAfhC,EAAqC+B,EAAgCZ,EAAgBX,OAAOuB,GAC5FF,EAAmBG,GACnBnC,GAA0B,GAflC,kDAkBQ5uB,QAAQC,IAAI,KAAM3C,SAlB1B,2DAN8D,sBAqC9D,OATA4C,qBAAU,WACN8uB,EAAc,GACd6B,EAAS,EAAGlyB,EAAMqX,SAAUrX,EAAMmX,OAAQnX,EAAM5C,QACjD,CAAC4C,EAAMqX,SAAUrX,EAAMmX,OAAQnX,EAAM5C,OAExCmE,qBAAU,WACS,IAAf6uB,GAAoB8B,EAAS9B,EAAYpwB,EAAMqX,SAAUrX,EAAMmX,OAAQnX,EAAM5C,QAC9E,CAACgzB,IAECmB,EAOD,qCACI,cAAC5M,GAAA,EAAD,CAAgBrQ,UAAW8I,KAA3B,SACI,eAACwH,GAAA,EAAD,WACI,cAACC,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,CAAiBS,MAAM,SAAvB,0BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,4BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,kBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,uBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,uBAGR,cAACD,GAAA,EAAD,UACKyM,EAAgBpwB,OAAS,GAAKowB,EAAgB1sB,KAAI,SAACyL,EAAWwF,GAAZ,OAC/C,eAAC,GAAD,WACI,cAAC,GAAD,CAAiBiP,MAAM,SAAvB,SAAiC1d,GAAeiJ,EAAKkG,cACrD,cAAC,GAAD,CAAiBuO,MAAM,SAAvB,SAAiC1d,GAAeiJ,EAAKmG,aACrD,cAAC,GAAD,CAAiBsO,MAAM,SAAvB,SACI,cAAC,KAAD,CAASzL,GAAE,wBAAmBhJ,EAAKxM,IAAMG,QAAS,kBAAM+K,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAA5F,SACKoB,EAAKrN,UAAY,KAAOqN,EAAKnN,SAAWmN,EAAKnN,SAAW,QAGjE,eAAC,GAAD,CAAiB4hB,MAAM,SAAvB,UACuB,aAAlBzU,EAAK+G,UAA2B,WACd,WAAlB/G,EAAK+G,UAAyB,SACZ,YAAlB/G,EAAK+G,UAA0B,UACb,kBAAlB/G,EAAK+G,UAAgC,mBAE1C,cAAC,GAAD,CAAiB0N,MAAM,SAAvB,SACKzU,EAAK2G,WAAa3G,EAAK2G,WAAWC,kBAAoB,QAE3D,cAAC,GAAD,CAAiB6N,MAAM,SAAvB,SACI,cAAC,KAAD,CACIzL,GAAI,CACAiW,SAAU,aACVza,OAAO,IAAD,OAAMxE,EAAKxM,KAHzB,sBAlBawM,EAAKxM,cA8BzCwsB,IAAyBN,GACtB,cAACjsB,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAKvN,MAAM,UAAUR,QAAQ,WACpDS,QAAS,WACLosB,EAAcD,EAAa,GAC3BH,GAA0B,IAHlC,uBAQHD,GACG,cAAC/kB,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,cA5DlC,cAAC9E,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WC5E3C,IAAMnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPE,YAAa,GACbD,aAAc,GACd,eAAgB,CACZC,YAAa,IAEhBL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,IAGrBqzB,YAAY,aACRvzB,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,SAMd,SAASm3B,KACpB,IAAMp2B,EAAUtB,KADqB,EAEL2B,mBAAS,IAFJ,mBAE9B8W,EAF8B,KAEpBqb,EAFoB,OAGOnyB,mBAAS,IAHhB,mBAG9BoyB,EAH8B,KAGdC,EAHc,OAIbryB,mBAAS,IAJI,mBAI9BnD,EAJ8B,KAIxBy1B,EAJwB,KAK/B30B,EAAQf,EAAU,SAClB6D,EAAiBC,iBAA8B,MAE/C6vB,EAAiB,uCAAG,WAAOlwB,GAAP,SAAA3C,EAAA,sDAClB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChCowB,EAAQjyB,KACT,KAPmB,2CAAH,sDAUvB,OAAK1C,EAOG,eAACiR,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,SAArC,UACI,sBAAKD,UAAWC,KAAE,mBAAlB,UACI,eAAC8B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAc,IAAM2D,KAAE,mBAAtD,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,kBAAf,uBACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,kBAAkBjD,MAAO0V,EAAU5T,SAAU,SAAC/B,GAAD,OAAOgxB,EAAYhxB,EAAEE,OAAOD,MAAQ,KAAjG,UACI,cAACmD,EAAA,EAAD,CAAUnD,MAAM,GAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,gBAAhB,iCAIR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAc,IAAM2D,KAAE,mBAAtD,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,0BAAf,+BACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,0BAA0BjD,MAAOgxB,EAAgBlvB,SAAU,SAAC/B,GAAD,OAAOkxB,EAAkBlxB,EAAEE,OAAOD,MAAQ,KAArH,UACI,cAACmD,EAAA,EAAD,CAAUnD,MAAM,GAAhB,0BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,4BAIR,wBAAOe,UAAWC,KAAE,mBAApB,UACI,cAAC,KAAD,IACA,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQsyB,YAAajvB,MAAM,OAAO/H,KAAK,SAASiI,SAAU,SAAC/B,GAAD,OAAOovB,EAAkBpvB,EAAEE,OAAOD,MAAQ,UAG9H,qBAAKe,UAAWC,KAAE,0BAAlB,SACI,cAAC,KAAD,CAAS2W,GAAG,eAAe5W,UAAWC,KAAE,8BAAxC,SACI,cAACqN,GAAD,CAAQC,KAAK,2BAKzB,cAAComB,GAAD,CAAiBhf,SAAUA,EAAUF,OAAQwb,EAAgBv1B,KAAMA,OAxCvE,oBAAIoH,MAAO,CAAE0G,UAAW,SAAUvL,QAAS,UAA3C,4B,wBClDNf,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTsS,QAAQ,aACJxJ,QAAS,OACTyJ,eAAgB,gBAChB9R,UAAW,IACVV,EAAMM,YAAYC,KAAK,MAAQ,CAC5BG,UAAW,KAGnB+R,IAAK,CACDtS,MAAO,KAEXuS,YAAY,aACRtG,UAAW,SACX6E,SAAU,WACVd,IAAK,MACLwC,KAAM,MACNC,UAAW,wBACXzS,MAAO,IACPU,QAAS,GACTgS,gBAAiB7S,EAAM8S,QAAQC,WAAWC,OACzChT,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPU,QAAS,UAaV,SAAS42B,GAAyBv2B,GAC7C,IAAME,EAAUtB,KADkF,EAEtD2B,oBAAkB,GAFoC,mBAE3FO,EAF2F,KAE3EC,EAF2E,KAI5Fy1B,EAAiB,uCAAG,sBAAAv4B,EAAA,6DACtB8C,GAAkB,GADI,SAEff,EAAMy2B,gBAFS,OAGtB11B,GAAkB,GAHI,2CAAH,qDAMvB,OACI,mCACI,cAAC0S,GAAA,EAAD,CACIC,KAAM1T,EAAM0T,KACZG,sBAAoB,EACpBC,kBAAmBC,KACnBC,cAAe,CACXC,QAAS,KALjB,SAQI,cAACC,GAAA,EAAD,CAAMC,GAAInU,EAAM0T,KAAhB,SACI,cAACU,GAAA,EAAD,CAAK1R,UAAWxC,EAAQsR,YAAxB,SACI,eAAC6C,GAAA,EAAD,WACI,4GAEEvT,GAAkB,cAACmK,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,WAElD,sBAAKrN,UAAWxC,EAAQmR,QAAxB,UACI,cAACtN,EAAA,EAAD,CACIrB,UAAWxC,EAAQqR,IACnBtN,QAAS,kBAAMjE,EAAM02B,2BACrBlzB,QAAQ,YACRQ,MAAM,YACN8L,SAAUhP,EALd,oBAUA,cAACiD,EAAA,EAAD,CACIrB,UAAWxC,EAAQqR,IACnBtN,QAAS,kBAAMuyB,KACfhzB,QAAQ,YACRQ,MAAM,UACN8L,SAAUhP,EALd,mCCjEhC,IAAMlC,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRG,YAAa,GACbD,aAAc,GACdD,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BF,YAAa,EACbF,MAAO,SAGf03B,OAAQ,CACJjH,OAAQ,SAUL,SAASkH,GAAkB52B,GACtC,IAAME,EAAUtB,KACVuB,EAAWC,cACXiN,EAAgBlQ,EAAU,iBAC1ByX,EAAWC,cACXkJ,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IACvFmvB,EAAqBx2B,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,gBAE7DpY,EAAiBre,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,aAAapY,kBARH,EASvBne,oBAAS,GATc,mBASlEw2B,EATkE,KAS/CC,EAT+C,OAUhBz2B,mBAAiB,IAVD,mBAUlE02B,EAVkE,KAU3CC,EAV2C,OAYb32B,oBAAkB,GAZL,mBAYlE42B,EAZkE,KAY1CC,EAZ0C,KAcnEC,EAAU,uCAAG,8BAAAp5B,EAAA,sEAEP6S,GAAc,IAAItL,MAAOC,cAAgB,GAFlC,SAGmB5H,EAC1B,OACAZ,EAAW,mBACX,CACIqhB,OAAQ,SACR9X,aAAcqwB,EAAmBrwB,aACjC8wB,iBAAkBzzB,SAASka,GAC3Ba,gBAAiB,CACb7Q,OAAQlK,SAASozB,GACjB5wB,KAAMyK,EACNxU,OAAQ+Q,GAGZjB,mBAAqC,OAAlByqB,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBzqB,mBACjC,CACExP,KAAM,KACNN,OAAM,OAAEu6B,QAAF,IAAEA,GAAF,UAAEA,EAAoBzqB,yBAAtB,aAAE,EAAuC9P,QAEjD,OArBH,cAwBX0D,EAAMu3B,8BAA8Bv3B,EAAMw3B,2BAC1Cr3B,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,2BAA4ByC,SAAU,aAC9Eg2B,GAA0B,GAC1BF,EAAwB,IA5Bb,kDA+BX71B,QAAQC,IAAI,KAAM3C,SAClBwB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WAjCtD,0DAAH,qDAyChB,OACI,0BAASsB,UAAWC,KAAE,sCAAwC,IAAMA,KAAC,kBAArE,UAEI,oBAAID,UAAWC,KAAE,2BAAjB,gCACA,qBAAKD,UAAWC,KAAE,0BAAlB,SACK+b,EAAevd,OAAS,GAAKud,EACzB7Z,KAAI,SAAC8Z,EAAe7I,GAAhB,qBACD,sBAAiBpT,UAAWC,KAAE,yBAA9B,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAC1B2C,MAAK,UAAEgd,EAAcC,uBAAhB,aAAE,EAA+B7Q,OACtCvS,KAAK,SACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,uBAEV,cAACD,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnB2C,MAAK,UAAEgd,EAAcC,uBAAhB,aAAE,EAA+B6Y,WACtCj8B,KAAK,OACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,kBAEV,cAACD,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnB2C,MAAOgd,EAAc+Y,WACrBl8B,KAAK,OACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,iBAEV,cAACD,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnB2C,OAAO,UAAAgd,EAAcgZ,eAAd,eAAuB10B,WAAY,KAAnC,UAAyC0b,EAAcgZ,eAAvD,aAAyC,EAAuBx0B,UACvE3H,KAAK,OACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,oBAEV,cAACD,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnB2C,MAAO0F,GAAc,UAACsX,EAAcC,uBAAf,aAAC,EAA+BvY,MACrD7K,KAAK,OACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,oBAtCJuS,QA6CtB,qBACIpT,UAAYq0B,EAAuDp0B,KAAE,uCAArCA,KAAE,+BAClCsB,QAAS,kBAAM+yB,GAAsBD,IAFzC,SAII,cAAC/mB,GAAD,CAAQC,KAAK,kBAGhB8mB,GACG,qBAAKr0B,UAAWC,KAAE,0BAAlB,SACI,sBAAKD,UAAWC,KAAE,yBAAlB,UACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnByE,SAAU,SAAC/B,GAAD,OAAOw1B,EAAwBx1B,EAAEE,OAAOD,QAClDnG,KAAK,OACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,qBACNI,UAAQ,IAEZ,cAACI,EAAA,EAAD,CACIrB,UAAWxC,EAAQy2B,OACnB1yB,QAAS,kBAAMmzB,GAA0B,IACzC5zB,QAAQ,YACRQ,MAAM,UAJV,8BAYZ,cAAC,GAAD,CACI0P,KAAMyjB,EACNV,cAAeY,EACfX,wBA1FoB,WAC5BU,GAA0B,S,yBC1E5Bx4B,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,GACdC,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,IAGrBw3B,OAAQ,CACJjH,OAAQ,SAKL,SAASkI,KACpB,IAAM13B,EAAUtB,KACVuB,EAAWC,cACXwU,EAAWC,cACXkJ,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IACvF2F,EAAgBlQ,EAAU,iBAC1ByiB,EAAiBvf,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,aAAalX,kBANpC,EAOkBrf,oBAAkB,GAPpC,mBAOjCs3B,EAPiC,KAOVC,EAPU,OASYv3B,mBAAiB,GAT7B,mBASjCw3B,EATiC,KASbC,EATa,KAWlCC,EAAgB,uCAAG,WAAOv2B,GAAP,eAAAzD,EAAA,yDACrByD,EAAEkN,mBACEmpB,EAAqB,GAFJ,wBAGbjnB,GAAc,IAAItL,MAAOC,cAAgB,GAH5B,kBAKP5H,EACF,OACAZ,EAAW,2BAAuB8gB,EAAvB,wBACX,CACIhQ,OAAQgqB,EACR1xB,KAAMyK,EACNxU,OAAQ+Q,IAXH,OAcblN,ErE6LiH,CAC7H3E,KAAM,wCACNC,QAAS,CAAEsS,QAFkC,EqE7LS,CAAEA,OAAQgqB,EAAoB1xB,KAAMyK,IrE6L3C/C,OAE5B1H,KAFyB,EAAWA,QqE5L3ClG,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,gBAAiByC,SAAU,aAhBtD,kDAmBbC,QAAQC,IAAI,KAAM3C,SAClBwB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WArBpD,gCAyBjBjB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,2BAA4ByC,SAAU,WA1B7D,kCrE2MmB,IAAC,IqE3MpB,qBAAH,sDA8BtB,OACI,0BAASsB,UAAWC,KAAC,WAArB,UACI,oBAAID,UAAWC,KAAE,oBAAjB,sBACCid,EAAeze,OAAS,GAAKye,EACzB/a,KAAI,SAACyL,EAAMwF,GAAP,OACD,sBAAiBpT,UAAWC,KAAE,oBAA9B,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAO2O,EAAKvC,OAAQvS,KAAK,SAASgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,WACnH,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAO0F,GAAeiJ,EAAKjK,MAAO7K,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,mBAFzHuS,MAMlB,qBAAKpT,UAAWC,KAAE,sBAAuBsB,QAAS,kBAAM6zB,GAA0BD,IAAlF,SACI,cAAC7nB,GAAD,CAAQC,KAAK,kBAEhB4nB,GACG,uBAAMn1B,UAAWC,KAAE,oBAAqB0M,SAAU,SAAC3N,GAAD,OAAOu2B,EAAiBv2B,IAA1E,UACI,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAayE,SAAU,SAAC/B,GAAQs2B,EAAsBn0B,SAASnC,EAAEE,OAAOD,MAAQ,MAAQnG,KAAK,SAASgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,SAASI,UAAQ,IAC3L,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,eAAe5B,MAAO0F,IAAe,IAAI7B,MAAOC,iBAC7I,cAAC1B,EAAA,EAAD,CAAQrB,UAAWxC,EAAQy2B,OAAQn7B,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAA3E,+BC9EpB,IAAMpF,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRG,YAAa,GACbD,aAAc,GACdD,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BF,YAAa,EACbF,MAAO,cAMR,SAASi5B,KACpB,IAAMh4B,EAAUtB,KACVuB,EAAWC,cACXwU,EAAWC,cACXkJ,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IACvFwE,EAAe7L,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,gBACvDqB,EAAgB93B,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,aAAaqB,iBANvC,EAO0B53B,oBAAkB,GAP5C,mBAO7B63B,EAP6B,KAOJC,EAPI,OASgB93B,mBAAiB,GATjC,mBAS7B+3B,EAT6B,KASTC,EATS,KAW9BC,EAAgB,uCAAG,WAAO92B,GAAP,eAAAzD,EAAA,6DACrByD,EAAEkN,iBAEE6pB,EAAmB,CACnB1qB,OAAQuqB,EACRjyB,MAAM,IAAIb,MAAOC,eAErByG,EAAaisB,cAAb,eAAkCM,GAPb,kBAUX56B,EAAe,OAAQZ,EAAW,2BAAuB8gB,EAAvB,WAA4C7R,GAVnE,OAWjB/L,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,wBAAyByC,SAAU,aAZ1D,kDAejBjB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WAhBhD,0DAAH,sDAoBtB,OACI,0BAASsB,UAAWC,KAAC,cAArB,UACI,oBAAID,UAAWC,KAAE,uBAAjB,wCAECw1B,GACG,gCACI,cAAC70B,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnBxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QACpCb,MAAM,yBACNiM,aAAc2oB,EAAcpqB,SAEhC,cAACzK,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnBxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QACpCb,MAAM,gBACNiM,aAAcnI,GAAe8wB,EAAc9xB,YAKrD8xB,GACE,qBACIz1B,UACK01B,EAEKz1B,KAAE,iCADFA,KAAE,yBAGZsB,QAAS,WAAQo0B,GAA4BD,IANjD,SAQI,cAACpoB,GAAD,CAAQC,KAAK,qCAIpBmoB,IAA4BD,GACzB,uBAAM9oB,SAAU,SAAC3N,GAAD,OAAO82B,EAAiB92B,IAAxC,UACI,cAAC4B,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnByE,SAAU,SAAC/B,GAAD,OAAO62B,EAAsB10B,SAASnC,EAAEE,OAAOD,MAAQ,MACjEnG,KAAK,SAASgI,QAAQ,WAAWY,KAAK,QACtCb,MAAM,yBACNI,UAAQ,EACR+0B,WAAY,CAAEC,IAAK,OAEvB,cAAC50B,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,8BCvFpB,IAAMpF,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPE,YAAa,GACbD,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BF,YAAa,EACbF,MAAO,SAGf03B,OAAQ,CACJjH,OAAQ,SAKL,SAASkJ,KAAqB,IAAD,QAClCz4B,EAAWC,cACXF,EAAUtB,KACVyO,EAAgBlQ,EAAU,iBAC1ByX,EAAWC,cACXkJ,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IACvFwE,EAAe7L,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,gBACvD+B,EAAsB3sB,EAAawrB,WAPD,EASgCn3B,oBAAkB,GATlD,mBASjCu4B,EATiC,KASHC,EATG,OAUax4B,mBAAwB,MAVrC,mBAUjCy4B,EAViC,KAUZC,EAVY,OAYoB14B,oBAAkB,GAZtC,mBAYjC42B,EAZiC,KAYTC,EAZS,KAclC8B,EAAiB,uCAAG,8BAAAj7B,EAAA,6DAClB6S,GAAc,IAAItL,MAAOC,cAAgB,GAC7CyG,EAAawT,eAAiB,CAAE3R,OAAQlK,SAASm1B,EAAsB,IAAKvB,WAAY,KAAMoB,YAAaA,EAAaxyB,KAAMyK,EAAaxU,OAAQuH,SAASwJ,EAAgB,KAFtJ,kBAIGxP,EAAe,OAAQZ,EAAW,2BAAuB8gB,EAAvB,WAA4C7R,GAJjF,OAId1N,EAJc,OAKlB2B,EvEmHsJ,CAC9J3E,KAAM,yCACNC,QAAS,CAAEsS,QAFmC,EuElHlC,CACIA,OAAQvP,EAASR,KAAK0hB,eAAe3R,OACrC0pB,WAAYj5B,EAASR,KAAK0hB,eAAe+X,WACzCoB,YAAar6B,EAASR,KAAK0hB,eAAemZ,YAC1CxyB,KAAM7H,EAASR,KAAK0hB,eAAerZ,KACnCzJ,KAAK,eAAM4B,EAASR,KAAK0hB,eAAe9iB,QvE6GRmR,OAE7B0pB,WAF0B,EAAWA,WAEzBoB,YAFc,EAAuBA,YAExBxyB,KAFC,EAAoCA,KAE/BzJ,KAFL,EAA0CA,QuE1G/EuD,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,kCAAmCyC,SAAU,aACrFg2B,GAA0B,GAhBR,kDAmBlB/1B,QAAQC,IAAI,KAAM3C,SAClBwB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WArB/C,kCvEwHmB,IAAC,IuExHpB,qBAAH,qDA6BvB,OACI,0BAASsB,UAAWC,KAAE,mCAAqC,IAAMA,KAAC,eAAlE,UAEI,oBAAID,UAAWC,KAAE,wBAAjB,6BACA,qBAAKD,UAAWC,KAAE,uBAAlB,SACKuJ,EAAawT,gBACV,sBAAKhd,UAAWC,KAAE,sBAAlB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,SAASgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,kBAAkB5B,MAAOuK,EAAawT,eAAe3R,SACpJ,cAACzK,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,gBAAgB5B,MAAOuK,EAAawT,eAAe+X,aAChJ,cAACn0B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,eAAe5B,MAAOk3B,IACnH,cAACv1B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,kBAAkB5B,OAAmB,OAAZuK,QAAY,IAAZA,GAAA,UAAAA,EAAcwT,sBAAd,mBAA8B9iB,YAA9B,eAAoCqG,WAAY,KAAhD,OAAsDiJ,QAAtD,IAAsDA,GAAtD,UAAsDA,EAAcwT,sBAApE,iBAAsD,EAA8B9iB,YAApF,aAAsD,EAAoCuG,YAChN,cAACG,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,gBAAgB5B,MAAO0F,GAAe6E,EAAawT,eAAerZ,cAKzK6F,EAAawT,gBACX,qBAAKzb,QAAS,kBAAM80B,GAAiCD,IAArD,SACI,cAAC9oB,GAAD,CAAQC,KAAK,0BAIpB6oB,IAAiC5sB,EAAawT,gBAC3C,qBAAKhd,UAAWC,KAAE,uBAAlB,SACI,sBAAKD,UAAWC,KAAE,sBAAlB,UACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnB2C,MAAOq3B,EACPv1B,SAAU,SAAC/B,GAAD,OAAOu3B,EAAsBp1B,SAASnC,EAAEE,OAAOD,MAAQ,MACjEnG,KAAK,OACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,kBACNI,UAAQ,IAEZ,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAOk3B,EAAar9B,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,iBACjH,cAACQ,EAAA,EAAD,CACIrB,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQy2B,OAC/C1yB,QAAS,kBAAMmzB,GAA0B,IACzC5zB,QAAQ,YACRQ,MAAM,UAJV,sCAYZ,cAAC,GAAD,CACI0P,KAAMyjB,EACNV,cAAeyC,EACfxC,wBAvDoB,WAC5BU,GAA0B,SC/DlC,IAAMx4B,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,GACdC,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BF,YAAa,EACbF,MAAO,cAUR,SAASk6B,GAAiBn5B,GACrC,IAAME,EAAUtB,KACVuB,EAAWC,cACXiN,EAAgBxJ,SAAS1G,EAAU,iBAAmB,IAM5D,OACI,0BAASuF,UAAWC,KAAC,iBAArB,UACI,oBAAID,UAAWC,KAAE,0BAAjB,8BAEA,qBAAKD,UAAWC,KAAE,oCAAlB,SACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,SAAS4B,KAAK,kBAAkBoG,QAAQ,WAAWY,KAAK,QACpGoL,aAAcxP,EAAMo5B,aAAaxa,gBAAkB5e,EAAMo5B,aAAaxa,gBAAgB7Q,OAAS,GAC/FxK,MAAM,mBAAmBE,SAAU,SAAC/B,GAAD,OAXvBqM,EAWiDlK,SAASnC,EAAEE,OAAOD,MAAQ,SAVnGxB,ExE+I0C,SAAC4N,EAAgB1H,EAAc0X,EAAoBzhB,GAAnD,MAA+G,CAC7Jd,KAAM,0CACNC,QAAS,CAAEsS,SAAQ1H,OAAM0X,aAAYzhB,WwEjJxB+8B,CAAmCtrB,GAAQ,IAAIvI,MAAOC,cAAezF,EAAMo5B,aAAat1B,GAAIuJ,IAD9E,IAACU,OAcnB/N,EAAMo5B,aAAa/Z,8BAAgCrf,EAAMo5B,aAAa/Z,6BAClExa,KAAI,SAACy0B,GAAsD,IAAD,IACvD,OACI,gCACI,cAACh2B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,SAASgI,QAAQ,WAAWY,KAAK,QAC7EzC,MAAO23B,EAAkBvrB,OACzBxK,MAAM,gCAEV,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAC/DzC,OAAO,UAAA23B,EAAkB18B,YAAlB,eAAwBqG,WAAY,KAApC,UAA0Cq2B,EAAkB18B,YAA5D,aAA0C,EAAwBuG,UACzEI,MAAM,cAEV,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAawE,QAAQ,WAAWY,KAAK,QAC/DzC,MAAO0F,GAAeiyB,EAAkBjzB,MACxC9C,MAAM,WAXJ+1B,EAAkBx1B,UCvCpD,IAAMlF,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTw6B,aAAa,aACTt6B,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfu6B,YAAY,aACRv6B,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfD,YAAY,aACRC,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfw6B,iBAAiB,eACZ36B,EAAMM,YAAYC,KAAK,MAAQ,CAC5B6F,SAAU,UAaX,SAASw0B,GAAiB15B,GACrC,IAAME,EAAUtB,KACVi6B,EAAsB74B,EAAMo5B,aAAa1B,WAE/C,OACI,sBAAKh1B,UAAWC,KAAC,iBAAjB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQzC,MAAO3B,EAAMo5B,aAAat1B,GAAIP,MAAM,gBAC3H,eAACkB,EAAA,EAAD,CAAa/B,UAAWxC,EAAQq5B,aAAhC,UACI,cAAC70B,EAAA,EAAD,CAAYZ,GAAG,sBAAf,2BACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,sBAAsBxH,KAAK,eAAeoS,aAAcxP,EAAMo5B,aAAa5yB,aAAc/C,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAjJ,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,gBAAhB,4BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,iBAAhB,mCAGR,qBAAKe,UAAWC,KAAE,kCAAlB,SAAqD,cAACkN,EAAA,EAAD,MACrD,cAACspB,GAAD,CAAkBC,aAAcp5B,EAAMo5B,eAEtC,qBAAK12B,UAAWC,KAAE,kCAAlB,SAAqD,cAACkN,EAAA,EAAD,MACrD,cAAC+oB,GAAD,IAEA,qBAAKl2B,UAAWC,KAAE,kCAAlB,SAAqD,cAACkN,EAAA,EAAD,MACrD,cAAC+mB,GAAD,CACIiC,YAAaA,EACbrB,0BAA2Bx3B,EAAMw3B,0BACjCD,6BAA8Bv3B,EAAMu3B,+BAGxC,qBAAK70B,UAAWC,KAAE,kCAAlB,SAAqD,cAACkN,EAAA,EAAD,MACrD,cAACqoB,GAAD,IAEA,qBAAKx1B,UAAWC,KAAE,kCAAlB,SAAqD,cAACkN,EAAA,EAAD,MACrD,cAACvM,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,SAAS4B,KAAK,kBAAkBoG,QAAQ,WAAWY,KAAK,QAAQoL,aAAcxP,EAAMo5B,aAAaO,gBAAiBp2B,MAAM,oBAAoBE,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,MACpO,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,SAAS4B,KAAK,mBAAmBoG,QAAQ,WAAWY,KAAK,QAAQoL,aAAcxP,EAAMo5B,aAAa7Z,iBAAkBhc,MAAM,oBAAoBE,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,MACtO,eAAC+C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQs5B,YAAhC,UACI,cAAC90B,EAAA,EAAD,CAAYZ,GAAG,oCAAf,0CACA,eAACa,EAAA,EAAD,CAAQvH,KAAK,sBAAsBoS,aAAcxP,EAAMo5B,aAAa5Z,oBAAqB5a,QAAQ,oCAAoCnB,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAA7K,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,QAAhB,mBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,qBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,6BAGR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQs5B,YAAhC,UACI,cAAC90B,EAAA,EAAD,CAAYZ,GAAG,yBAAyBpB,UAAWxC,EAAQu5B,iBAA3D,qDACA,eAAC90B,EAAA,EAAD,CAAQC,QAAQ,yBAAyBxH,KAAK,sBAAsBoS,aAAcxP,EAAMo5B,aAAa3Z,oBAAqBhc,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAlK,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,OAAhB,kBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,6BAGR,cAAC2B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAaxD,KAAK,OAAO4B,KAAK,iBAAiBoG,QAAQ,WAAWY,KAAK,QAAQoL,aAAcxP,EAAMo5B,aAAaztB,eAAgBlI,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,oBAChN,qBAAKb,UAAWC,KAAE,kCAAlB,SAAqD,cAACkN,EAAA,EAAD,MACrD,cAAC+nB,GAAD,O,wBCpFNh5B,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACT01B,OAAO,aACHx1B,MAAO,IACPC,aAAc,GACdkH,OAAQ,gBACR,SAAU,CACNjH,YAAa,KAEhBL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPmH,OAAQ,eAGhBpH,YAAY,aACRC,MAAO,IACPC,aAAc,GACdC,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BF,YAAa,EACbF,MAAO,SAGf03B,OAAQ,CACJ13B,MAAO,IACPywB,OAAQ,SASL,SAASkK,GAAc55B,GAClC,IAAMG,EAAWC,cACXwU,EAAWC,cACX3U,EAAUtB,KAH4C,EAIhB2B,oBAAkB,GAJF,mBAIrDO,EAJqD,KAIrCC,EAJqC,OAKJR,oBAAkB,GALd,mBAKrDs5B,EALqD,KAK/BC,EAL+B,KAMtD/b,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IACvF2F,EAAgBlQ,EAAU,iBAC1BohB,EAAiBle,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,aAAavY,kBARhB,EAUpBhe,mBAAiB,IAVG,mBAUrDw5B,EAVqD,KAUvCC,EAVuC,OAWtBz5B,mBAAiB,GAXK,mBAWrDvD,EAXqD,KAWxCi9B,EAXwC,OAYxB15B,mBAAsB,IAAIiF,MAZF,mBAYrD00B,EAZqD,KAYzCC,EAZyC,OAaJ55B,qBAbI,mBAetDoO,GAfsD,UAe1C,uCAAG,WAAOjN,GAAP,eAAAzD,EAAA,yDACjByD,EAAEkN,iBACF7N,GAAkB,GAEd+P,GAAc,IAAItL,MAAOC,cAAgB,GAJ5B,SAMO,aAAhBs0B,EANS,sBAOL/8B,GAAe,GAPV,sBAQC,IAAIyB,MAAM,+CARX,UAWS,MAAdy7B,EAXK,sBAYC,IAAIz7B,MAAM,oDAZX,OAeTqS,GAAwB,OAAVopB,QAAU,IAAVA,OAAA,EAAAA,EAAYz0B,eAAgB,GAfjC,yBAmBP5H,EACF,OACAZ,EAAW,2BAAuB8gB,EAAvB,iBACX,CACIjhB,gBAAiBi9B,EACjBh9B,WAAY+T,EACZxU,OAAQ+Q,EACRrQ,YAAaA,IA1BR,QA6BbmD,EAAStD,EAAyBk9B,EAAcjpB,EAAajN,SAASwJ,EAAgB,IAAKrQ,IAC3FmD,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,eAAgByC,SAAU,aA/BrD,kDAkCbC,QAAQC,IAAI,KAAM3C,SAClBwB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WApCpD,yBAuCbL,GAAkB,GAvCL,6EAAH,uDAiFlB,OACI,0BAAS2B,UAAWC,KAAC,cAArB,UACI,oBAAID,UAAWC,KAAE,uBAAjB,4BACC4b,EAAepd,QAAU,GACtB,sBAAMuB,UAAWC,KAAE,0BAAnB,qCAEJ,qBAAKD,UAAWC,KAAE,sBAAlB,SACK4b,EAAepd,OAAS,GAAKod,EACzB1Z,KAAI,SAACsS,EAA4BrB,GAA7B,OACD,sBAAiBpT,UAAWC,KAAE,qBAA9B,UACI,eAAC8B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,eAAf,oBACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,eAAejD,MAAOwV,EAAOra,gBAA7C,UACI,cAACgI,EAAA,EAAD,CAAUnD,MAAM,kBAAhB,8BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,oBAAhB,iCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,mBAAhB,+BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,iBAAhB,6BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,wBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,cAAhB,0BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,mBAAhB,iCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,iBAAhB,oCAGR,cAAC2B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAO,YAAcwV,EAAO7a,OAAQd,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,gBACjI,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAO0F,GAAe8P,EAAOpa,YAAavB,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,kBAC1G,cAA3B4T,EAAOra,iBACL,mCACI,cAACwG,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAOwV,EAAOna,YAAayG,SAAU,SAAC/B,GAAsByV,EAAOrT,IAAKtI,KAAK,SAASgI,QAAQ,WAAWY,KAAK,QAAQb,MAAM,aAM/K,yBA3BMuS,QAiCtB,qBAAKpT,UAAWC,KAAE,wBAAyBsB,QAAS,kBAAM61B,GAAyBD,IAAnF,SACI,cAAC7pB,GAAD,CAAQC,KAAK,iBAGhB4pB,GACG,uBAAMn3B,UAAWC,KAAC,UAAe0M,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAA/D,UACI,eAAC+C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAhC,UACI,cAAC0F,EAAA,EAAD,CAAYZ,GAAG,mBAAf,oBACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,mBAAmBxH,KAAK,YAAYuE,MAAOo4B,EAAct2B,SAAU,SAAC/B,GAAD,OAAOs4B,EAAgBt4B,EAAEE,OAAOD,MAAQ,KAAKgC,UAAQ,EAAxI,UACI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,kBAAhB,8BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,oBAAhB,iCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,mBAAhB,+BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,iBAAhB,6BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,wBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,cAAhB,0BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,mBAAhB,iCACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,iBAAhB,oCAGU,aAAhBo4B,GACE,qCACI,cAACz2B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAO3E,EAAaI,KAAK,iBAAiBmG,MAAM,SAAS/H,KAAK,SAASiI,SAAU,SAAC/B,GAAD,OAAOu4B,EAAep2B,SAASnC,EAAEE,OAAOD,WACpK,cAAC,KAAD,CAAyBqE,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWxC,EAAQu0B,OAAQ9yB,MAAOu4B,EAAYh0B,gBAAc,EAC5E1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,qBAC3DE,SAAU,SAACzF,GAAD,OAAUm8B,EAAcn8B,IAClC2F,UAAQ,SAKxB,cAACI,EAAA,EAAD,CACIrB,UAAWxC,EAAQlB,YAAc,IAAMkB,EAAQy2B,OAC/Cn7B,KAAK,SACLgI,QAAQ,YAAYQ,MAAM,UAC1B8L,SAAUhP,EAJd,wBAQCA,GACG,qBAAK4B,UAAWC,KAAE,oBAAlB,SACI,cAACsI,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,mB,wBCjOpDnR,GAAYC,aAAW,kBACzBE,YAAa,CACTa,aAAc,CACVX,MAAO,IACPE,YAAa,IAEjBoS,IAAK,CACDme,OAAQ,SAWL,SAAS0K,GAAsBp6B,GAC1C,IAAME,EAAUtB,KACVuB,EAAWC,cACXY,EAAiBC,iBAA8B,MAH4B,EAIrCV,oBAAkB,GAJmB,mBAI1EO,EAJ0E,KAI1DC,EAJ0D,OAK/CR,mBAAgB,IAL+B,mBAK1EG,EAL0E,KAK/DC,EAL+D,KAO3EO,EAAY,uCAAG,0CAAAjD,EAAA,4DAAO0L,EAAP,+BAA6B,IAC9BxI,OAAS,GADR,iEAMbJ,GAAkB,GANL,SAOQlD,EAAe,MAAOZ,EAAW,iDAA6C0M,IAPtF,OAOTnL,EAPS,OAQbmC,EAAanC,EAASR,MACtB+C,GAAkB,GATL,kDAYbZ,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAClBoC,GAAkB,GAClBJ,EAAa,IAhBA,0DAAH,qDAoBZ2B,EAAkB,uCAAG,WAAOX,GAAP,SAAA1D,EAAA,sDACnB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChCvB,EAAaS,KACd,KAPoB,2CAAH,sDAUxB,OACI,uBAAM0N,SAAU,SAAC3N,GAAD,OAAO1B,EAAMq6B,oBAAoB34B,IAAIgB,UAAWC,KAAE,wCAAlE,UACI,cAACC,EAAA,EAAD,CACIC,QAASnC,GAAa,GACtBoC,QAAShC,EACTiC,eAAgB,SAACC,GAAD,OACXA,EAAOC,UAAaD,EAAOC,UAAUC,WAAa,IAAO,KACzDF,EAAOG,SAAWH,EAAOG,SAASD,WAAa,GAAK,KAEzDR,UAAWxC,EAAQN,aACnBwD,YAAa,SAACC,GAAD,OACT,cAACC,EAAA,EAAD,2BACQD,GADR,IAEIE,MAAM,YACNC,QAAQ,WACRE,WAAS,EACTC,UAAQ,EACRF,SAAU,SAAA/B,GAAC,OAAIY,EAAmBZ,EAAEE,OAAOD,OAAS,SAG5D8B,SAAU,SAAC/B,EAAGC,GAAJ,OAAc3B,EAAM8B,oBAAoBH,EAAMmC,IAAM,SAGlE,cAACC,EAAA,EAAD,CACIvI,KAAK,SACLgI,QAAQ,YAAYQ,MAAM,UAC1BtB,UAAWxC,EAAQqR,IAHvB,6B,cCnFC+oB,GAAc,uCAAG,WAAOtP,EAAYjN,EAAoBwc,GAAvC,mBAAAt8B,EAAA,6DACpBwrB,EAAOuB,EAAM,GADO,SAGChB,GAAoBP,GAHrB,cAGpByF,EAHoB,OAItBsL,EAAqB,CACrBh/B,KAAM++B,EACN1T,SAAU4C,EAAKjuB,KACfurB,SAAU0C,EAAKrsB,KACfsuB,qBAAsBwD,GARA,kBAYDrxB,EAAe,OAAQZ,EAAW,2BAAuB8gB,EAAvB,mBAAoDyc,GAZrF,wCAaf,GAbe,yCAgBtBn5B,QAAQC,IAAI,KAAM3C,SAhBI,mBAiBf,GAjBe,0DAAH,0DCKrB87B,GAA6B,CAC/BC,OAAQ,EACRC,QAAS,EACT5qB,SAAU,WACVd,IAAK,IACLgiB,OAAQ,IACRxf,KAAM,IACNuf,MAAO,IACPhV,OAAQ,WAYG,SAAS4e,GAA0B56B,GAC9C,IAAMG,EAAWC,cADwE,EAE7CG,oBAAkB,GAF2B,mBAElFO,EAFkF,KAElEC,EAFkE,KAGnF85B,EAAoB,uCAAG,WAAO7P,GAAP,SAAA/sB,EAAA,yDACpB+sB,EADoB,wDAEzBjqB,GAAkB,GAFO,kBAKfu5B,GAAetP,EAAOhrB,EAAM+d,WAAY,GALzB,OAMrB5d,EAASlE,EAAoB,CAAE0C,QAAS,iCAAkCyC,SAAU,aAN/D,gDASrBjB,EAASlE,EAAoB,CAAE0C,QAAS,wBAAyByC,SAAU,WATtD,yBAYrBjB,EAASpE,GAAmB,IAC5BgF,GAAkB,GAClBf,EAAM86B,sCAAsC96B,EAAM+6B,mCAd7B,4EAAH,sDAkB1B,OACI,uBAAMr4B,UAAWC,KAAE,uCAAnB,UACI,uBAAMD,UAAWC,KAAE,4CAAnB,UACI,cAAC,KAAD,CAAYD,UAAU,gBACtB,cAACs4B,GAAA,EAAD,CAAShiB,MAAM,gBAAgBkE,UAAU,SAAS+d,OAAK,EAAvD,SACI,sBAAMv4B,UAAWC,KAAE,iDACfsB,QAAS,kBAAM2iB,GAAmB5mB,EAAM6mB,SAAU7mB,EAAMk7B,aAAcl7B,EAAM+mB,WADhF,SAGK/mB,EAAM+mB,gBAKnB,wBAAOrkB,UAAWC,KAAE,2CAApB,UACI,eAACoB,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,UAAlC,0CAGI,uBACIQ,MAAK,eAAOi2B,IACZj/B,KAAK,OACLiI,SAAU,SAAC/B,GAAD,OAAOm5B,EAAqBn5B,EAAEE,OAAOopB,aAGtDlqB,GACG,cAACqK,GAAA,EAAD,CAAkB/G,KAAM,OAAQ1B,UAAWC,KAAE,sC,yBCnE3D/D,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTo8B,UAAU,aACNl8B,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfm8B,oBAAqB,CACjBvzB,QAAS,aAWN,SAASwzB,GAAwBr7B,GAC5C,IAAME,EAAUtB,KACVuB,EAAWC,cAEXk7B,EAAsB,uCAAG,WAAOtQ,GAAP,SAAA/sB,EAAA,sEACWq8B,GAAetP,EAAOhrB,EAAM+d,WAAY,GADnD,eAIvB/d,EAAM86B,sCAAsC96B,EAAM+6B,mCAClD56B,EAASlE,EAAoB,CAAE0C,QAAS,iCAAkCyC,SAAU,aACpFjB,EAASpE,GAAmB,MAG5BoE,EAASlE,EAAoB,CAAE0C,QAAS,wBAAyByC,SAAU,WAC3EjB,EAASpE,GAAmB,KAVL,2CAAH,sDAc5B,OACI,kCACI,uBACI2G,UAAWxC,EAAQi7B,UAAY,IAAMj7B,EAAQk7B,oBAC7C5/B,KAAK,OACLiI,SAAU,SAAC/B,GAAD,OAAO45B,EAAuB55B,EAAEE,OAAOopB,UAErD,sBAAKtoB,UAAWC,KAAE,iCAAlB,UACI,cAAC,KAAD,CAAgBD,UAAWC,KAAE,oCAC7B,mECtChB,IAAM/D,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTo8B,UAAU,aACNl8B,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfm8B,oBAAqB,CACjBvzB,QAAS,aAeN,SAAS0zB,GAAoBv7B,GACxC,IAAMC,EAAkB9C,EAAU,mBAC5B+C,EAAUtB,KACVuB,EAAWC,cACXwU,EAAWC,cACXkJ,EAAqBla,SAAS+Q,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IAAM,IAL5C,EAMtBnH,oBAAkB,GANI,mBAMjEi7B,EANiE,KAM9CC,EAN8C,OAQxBl7B,mBAAwB,MARA,mBAQjEsB,EARiE,KAQ/CC,EAR+C,KAUlEu4B,EAAmB,uCAAG,WAAO34B,GAAP,SAAAzD,EAAA,yDACxByD,EAAEkN,kBAEC/M,EAHqB,0CAKVhE,EAAe,OAAQZ,EAAW,2BAAuB8gB,EAAvB,gBACpC,CACIzhB,OAAQuF,EACRwE,MAAM,IAAIb,MAAOC,cAAgB,KARzB,OAWhBzF,EAAM07B,qBAAqB17B,EAAM27B,kBACjCx7B,EAASlE,EAAoB,CAAE0C,QAAS,8BAA+ByC,SAAU,aACjFjB,EAASpE,GAAmB,IAbZ,kDAgBhBoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAlBF,0DAAH,sDAV+C,EAiClC4B,mBAAgCP,EAAMgpB,aAjCJ,mBAiCjEA,EAjCiE,KAiCpDC,EAjCoD,OAkCV1oB,oBAAkB,GAlCR,mBAkCjE6oB,EAlCiE,KAkCxCC,EAlCwC,KAmClEuS,EAA8B,SAAC5S,GACjC,IAAK,IAAIxe,EAAIwe,EAAY7nB,OAAQqJ,GAAK,EAAGA,IAAK,CAAC,IAAD,EAC1C,GAA6B,KAAzB,UAAAwe,EAAYxe,UAAZ,eAAgBhP,MAAY,CAC5B6tB,EAA2B7e,GAC3B,SAaZ,OATAjJ,qBAAU,YACK,OAAXynB,QAAW,IAAXA,OAAA,EAAAA,EAAa7nB,QAAS,GAAKy6B,EAA4B5S,KACxD,CAACA,IAEJznB,qBAAU,WACN0nB,EAAejpB,EAAMgpB,aACrB4S,EAA4B5S,KAC7B,CAAChpB,IAGA,0BAAS0C,UAAWC,KAAC,oBAArB,UACI,oBAAID,UAAWC,KAAE,6BAAjB,kCAEA,sBAAKD,UAAWC,KAAE,4BAAlB,UACK3C,EAAMuM,oBAAoBpL,OAAS,GAChCnB,EAAMuM,oBAAoB1H,KAAI,SAACie,EAAehN,GAAmB,IAAD,IAC5D,OACI,sBAAsCpT,UAAWC,KAAE,2BAAnD,UAEI,qBAAKD,UAAWC,KAAE,2BAAlB,SACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQi7B,UACnBx5B,OAAO,UAAAmhB,EAASlmB,YAAT,eAAeksB,WAAY,GAClCvlB,MAAM,gBACN/H,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,YAG5C,qBAAK1B,UAAWC,KAAE,2BAAlB,SACI,cAAC8M,EAAA,EAAD,CACIrS,KAAK,wBACLsS,QAAS,cAACuc,GAAA,EAAD,CAAUC,QAASpJ,EAASC,YAAa/e,MAAM,YACxDT,MAAM,2BAGd,qBAAKb,UAAWC,KAAE,2BAAlB,SACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQi7B,UACnB/9B,KAAK,uBAAuB5B,KAAK,OACjCmG,MAAO0F,GAAeyb,EAASzc,MAC/B7C,QAAQ,WAAWY,KAAK,QACxBb,MAAM,iBAId,sBAAKb,UAAWC,KAAE,2BAAlB,WACkC,IAA7BymB,GAAkCtG,EAASC,aACxC,cAACsY,GAAD,CACItd,WAAYA,EACZgd,kCAAmC/6B,EAAM+6B,kCACzCD,qCAAsC96B,EAAM86B,wCAItB,IAA7B1R,GAAkCtG,EAASC,aACxC,cAAC6X,GAAD,CACI/T,SAAUmC,EAAYI,GAAyBvC,SAC/CqU,aAAclS,EAAYI,GAAyBG,OACnDxC,SAAUiC,EAAYI,GAAyBrC,SAC/ChJ,WAAYA,EACZgd,kCAAmC/6B,EAAM+6B,kCACzCD,qCAAsC96B,EAAM86B,6CA3ClD,UAAAhY,EAASlmB,YAAT,eAAekH,KAAMgS,MAoDL,IAArC9V,EAAMuM,oBAAoBpL,QACvB,iFAIa,kBAApBlB,EACG,qBACIyC,UAAWC,KAAE,sCACbsB,QAAS,kBAAMw3B,GAAsBD,IAFzC,SAII,cAACxrB,GAAD,CAAQC,KAAK,mBACR,GAGZurB,GACG,cAACpB,GAAD,CACIC,oBAAqBA,EACrBv4B,oBAAqBA,EACrB05B,kBAAmBA,O,wBCpKjCf,GAA6B,CAC/BC,OAAQ,EACRC,QAAS,EACT5qB,SAAU,WACVd,IAAK,IACLgiB,OAAQ,IACRxf,KAAM,IACNuf,MAAO,IACPhV,OAAQ,WAUG,SAAS6f,GAAuB77B,GAAyC,IAAD,EAEvCO,oBAAkB,GAFqB,mBAE5EO,EAF4E,KAE5DC,EAF4D,KAG7E85B,EAAoB,uCAAG,WAAO7P,GAAP,SAAA/sB,EAAA,yDACpB+sB,EADoB,iEAIrBjqB,GAAkB,GAJG,SAKff,EAAMs7B,uBAAuBtQ,GALd,uBAQrBjqB,GAAkB,GARG,uEAAH,sDAY1B,OACI,sBAAK2B,UAAWC,KAAE,sCAAlB,UACI,sBACID,UAAWC,KAAE,oCACbsB,QAAS,kBAAM2iB,GACX5mB,EAAM6mB,SACN7mB,EAAMk7B,aACNl7B,EAAM+mB,WALd,UAQI,cAAC,KAAD,CAAYrkB,UAAU,gBACtB,cAACs4B,GAAA,EAAD,CAAShiB,MAAM,gBAAgBkE,UAAU,SAAS+d,OAAK,EAAvD,SACI,sBAAMv4B,UAAWC,KAAE,2CAAnB,SACK3C,EAAM+mB,gBAKnB,gCACI,eAAChjB,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,UAAlC,uCAGI,uBACIQ,MAAK,eAAOi2B,IACZj/B,KAAK,OACLiI,SAAU,SAAC/B,GAAD,OAAOm5B,EAAqBn5B,EAAEE,OAAOopB,eAK1DlqB,GACG,cAACqK,GAAA,EAAD,CAAkB/G,KAAM,OAAQ1B,UAAWC,KAAE,gCClE7D,IAAM/D,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTo8B,UAAU,aACNl8B,MAAO,IACPC,aAAc,GACdC,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BF,YAAa,EACbF,MAAO,SAGf68B,gBAAiB,CACbj0B,QAAS,aASN,SAASk0B,GAAqB/7B,GACzC,IAAME,EAAUtB,KAEhB,OACI,qBAAK8D,UAAWC,KAAE,wBAAlB,SACI,kCACI,uBACID,UAAWxC,EAAQi7B,UAAY,IAAMj7B,EAAQ47B,gBAC7CtgC,KAAK,OACLiI,SAAU,SAAC/B,GAAD,OAAO1B,EAAMs7B,uBAAuB55B,EAAEE,OAAOopB,UAG3D,uBAAMtoB,UAAWC,KAAE,sCAAnB,UACI,cAAC,KAAD,CAAgBD,UAAWC,KAAE,uCAAFA,oBAC3B,kEC5BpB,IAAM/D,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTo8B,UAAU,aACNl8B,MAAO,IACPC,aAAc,GACdC,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BF,YAAa,EACbF,MAAO,cAgBR,SAAS+8B,GAAiBh8B,GACrC,IAAME,EAAUtB,KACVuB,EAAWC,cAEXk7B,EAAsB,uCAAG,WAAOtQ,GAAP,SAAA/sB,EAAA,yDACtB+sB,EADsB,iEAGWsP,GAAetP,EAAOhrB,EAAM+d,WAAY,GAHnD,eAKvB/d,EAAM86B,sCAAsC96B,EAAM+6B,mCAClD56B,EAASlE,EAAoB,CAAE0C,QAAS,iCAAkCyC,SAAU,cAGpFjB,EAASlE,EAAoB,CAAE0C,QAAS,wBAAyByC,SAAU,WAE/EjB,EAASpE,GAAmB,IAXD,2CAAH,sDAJsC,EAkB5BwE,mBAAgCP,EAAMgpB,aAlBV,mBAkB3DA,EAlB2D,KAkB9CC,EAlB8C,OAmBZ1oB,oBAAkB,GAnBN,mBAmB3D2oB,EAnB2D,KAmBtCC,EAnBsC,KAoB5D8S,EAA0B,SAACjT,GAC7B,IAAK,IAAIxe,EAAIwe,EAAY7nB,OAAQqJ,GAAK,EAAGA,IAAK,CAAC,IAAD,EAC1C,GAA6B,KAAzB,UAAAwe,EAAYxe,UAAZ,eAAgBhP,MAAY,CAC5B2tB,EAAuB3e,GACvB,SAaZ,OATAjJ,qBAAU,WACNynB,GAAeA,EAAY7nB,OAAS,GAAK86B,EAAwBjT,KAClE,CAACA,IAEJznB,qBAAU,WACN0nB,EAAejpB,EAAMgpB,aACrBiT,EAAwBjT,KACzB,CAAChpB,IAGA,0BAAS0C,UAAWC,KAAC,iBAArB,UAEI,oBAAID,UAAWC,KAAE,0BAAjB,+BAEA,qBAAKD,UAAWC,KAAE,yBAAlB,SAEI,sBAAKD,UAAWC,KAAE,wBAAlB,UACI,qBAAKD,UAAWC,KAAE,wBAAlB,SACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQi7B,UACnBx5B,MAAO3B,EAAMoM,kBAAkBxP,KAAKqG,UAAY,IAAMjD,EAAMoM,kBAAkBxP,KAAKuG,SACnFI,MAAM,iBACN/H,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,YAI5C,qBAAK1B,UAAWC,KAAE,wBAAlB,SACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQi7B,UACnBx5B,MAAO0F,GAAerH,EAAMk8B,oBAAsB,IAClD34B,MAAM,aACN/H,KAAK,OAAOgI,QAAQ,WAAWY,KAAK,aAIlB,IAAzB8kB,GACG,cAAC6S,GAAD,CACIT,uBAAwBA,KAIN,IAAzBpS,GACG,8BACI,cAAC2S,GAAD,CACIhV,SAAUmC,EAAYE,GAAqBrC,SAC3CqU,aAAclS,EAAYE,GAAqBK,OAC/CxC,SAAUiC,EAAYE,GAAqBnC,SAC3CuU,uBAAwBA,c,wBCjGlD18B,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTw6B,aAAc,CACVt6B,MAAO,IACPC,aAAc,IAElBF,YAAY,aACRC,MAAO,IACPE,YAAa,IACZL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,IAGrBoS,IAAK,CACDme,OAAQ,SAYL,SAASyM,GAAkBn8B,GACtC,IAAMC,EAAkB9C,EAAU,mBAC5B+C,EAAUtB,KACVuB,EAAWC,cACXwU,EAAWC,cACX7T,EAAiBC,iBAA8B,MAC/C8c,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IANzB,EAOtCnH,oBAAS,GAP6B,mBAO7D67B,EAP6D,KAOpDC,EAPoD,OAQxB97B,oBAAkB,GARM,mBAQ7DO,EAR6D,KAQ7CC,EAR6C,OASpCR,mBAAc,IATsB,mBAS7D2B,EAT6D,KASnDuH,EATmD,KAU9DC,EAAW,uCAAG,0CAAAzL,EAAA,4DAAO0L,EAAP,+BAA6B,IAC7BxI,OAAS,GADT,iEAMZJ,GAAkB,GANN,SAOSlD,EAAe,MAAOZ,EAAW,gDAA4C0M,IAPtF,OAORnL,EAPQ,OAQZiL,EAAYjL,EAASR,MACrB+C,GAAkB,GATN,kDAYZZ,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAClBoC,GAAkB,GAClB0I,EAAY,IAhBA,0DAAH,qDAVmD,EA8BtBlJ,qBA9BsB,mBA8B7D2U,EA9B6D,KA8B5CC,EA9B4C,KA+B9DmnB,EAAkB,uCAAG,WAAO56B,GAAP,SAAAzD,EAAA,yDACvByD,EAAEkN,kBACCsG,EAFoB,0CAITrX,EAAe,OAAQZ,EAAW,2BAAuB8gB,EAAvB,eACpC,CACIzhB,OAAQ4Y,EACR7O,MAAM,IAAIb,MAAOC,cAAgB,KAP1B,OAUfzF,EAAM07B,qBAAqB17B,EAAM27B,kBACjCx7B,EAASlE,EAAoB,CAAE0C,QAAS,8BAA+ByC,SAAU,aACjFjB,EAASpE,GAAmB,IAZb,kDAefoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAjBH,0DAAH,sDAsBlB2D,EAAkB,uCAAG,WAAOX,GAAP,SAAA1D,EAAA,sDACnB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChCiH,EAAY/H,KACb,KAPoB,2CAAH,sDAUxB,OACI,0BAASe,UAAWC,KAAC,kBAArB,UACI,oBAAID,UAAWC,KAAE,2BAAjB,iCAEA,sBAAKD,UAAWC,KAAE,0BAAlB,UACK3C,EAAM8O,mBAAmB3N,OAAS,GAC/BnB,EAAM8O,mBAAmBjK,KAAI,SAACyL,EAAWwF,GAAmB,IAAD,IACvD,OACI,sBAAiBpT,UAAWC,KAAE,yBAA9B,UACI,qBAAKD,UAAWC,KAAE,yBAAlB,SACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnB5B,KAAK,sBACLuE,OAAO,UAAA2O,EAAK1T,YAAL,eAAWksB,UAAX,UAAsBxY,EAAK1T,YAA3B,aAAsB,EAAWksB,SAAW,GACnDttB,KAAK,OACLgI,QAAQ,WACRY,KAAK,QACLb,MAAM,oBAId,qBAAKb,UAAWC,KAAE,yBAAlB,SACI,cAAC8M,EAAA,EAAD,CACI/M,UAAWxC,EAAQlB,YACnB5B,KAAK,uBACLsS,QAAS,cAACuc,GAAA,EAAD,CAAUC,QAAS5b,EAAKyS,YAAa/e,MAAM,YACpDT,MAAM,2BAId,qBAAKb,UAAWC,KAAE,yBAAlB,SACI,cAACW,EAAA,EAAD,CACIZ,UAAWxC,EAAQlB,YACnB5B,KAAK,sBACLuE,MAAO0F,GAAeiJ,EAAKjK,MAAO7K,KAAK,OACvCgI,QAAQ,WACRY,KAAK,QACLb,MAAM,iBAId,qBAAKb,UAAWC,KAAE,6BAjCZmT,MAuCe,IAApC9V,EAAM8O,mBAAmB3N,QACtB,iFAIa,kBAApBlB,EACK,qBACEyC,UAAWC,KAAE,gCACbsB,QAAS,kBAAMo4B,GAAYD,IAF7B,SAIE,cAACpsB,GAAD,CAAQC,KAAK,uBAEf,GAGLmsB,GACG,uBAAM/sB,SAAU,SAAC3N,GAAD,OAAO46B,EAAmB56B,IAAIgB,UAAWC,KAAE,kCAAoC,IAAMA,KAAE,yBAAvG,UACI,cAACC,EAAA,EAAD,CACIC,QAASX,GAAY,GACrBY,QAAShC,EACTiC,eAAgB,SAACC,GAAD,OACXA,EAAOC,UAAaD,EAAOC,UAAUC,WAAa,IAAO,KACzDF,EAAOG,SAAWH,EAAOG,SAASD,WAAa,GAAK,KAEzDR,UAAWxC,EAAQlB,YACnBoE,YAAa,SAACC,GAAD,OACT,cAACC,EAAA,EAAD,2BACQD,GADR,IAEIE,MAAM,YAAYC,QAAQ,WAC1BE,WAAS,EACTC,UAAQ,EACRF,SAAU,SAAA/B,GAAC,OAAIY,EAAmBZ,EAAEE,OAAOD,OAAS,SAG5D8B,SAAU,SAAC/B,EAAGC,GAAJ,OAAcwT,GAAwB,OAALxT,QAAK,IAALA,OAAA,EAAAA,EAAOmC,KAAM,SAG5D,cAACC,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAUtB,UAAWxC,EAAQqR,IAA7E,+B,kCCpLd3S,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTC,YAAY,aACRC,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfs9B,kBAAkB,aACdt9B,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfM,SAAU,CACNC,UAAW,GACXN,aAAc,GACdO,UAAW,GACXC,aAAc,GACdC,QAAS,GACT2L,OAAQ,QAEZrG,YAAY,aACRhG,MAAO,IACPC,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,SAGfu9B,aAAc,CACV30B,QAAS,OACTsJ,cAAe,SACf,SAAU,CACNjS,aAAc,SAWxBu9B,GAAe,SAACzqB,GAClB,IAAIA,EACA,MAAO,GAGX,IAAIrK,GADJqK,EAAa,IAAIxM,KAAKwM,IACiBG,cACnCuqB,EAAyB1qB,EAAWK,WAAa,EACjDsqB,EAAsB3qB,EAAWM,UAQrC,OANIqqB,EAAK,KACLA,EAAK,IAAMA,GAEXD,EAAQ,KACRA,EAAQ,IAAMA,GAEX/0B,EAAO,IAAM+0B,EAAQ,IAAMC,GAGvB,SAASC,GAAqB58B,GACzC,IAAME,EAAUtB,KACV4H,EAAenG,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,aAAatwB,gBAE1E,OACI,0BAAS9D,UAAWC,KAAC,gBAArB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,8BACA,sBAAKD,UAAWC,KAAE,wBAAlB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQq8B,kBAAmB/sB,aAAcxP,EAAMo5B,aAAa9a,OAAQlhB,KAAK,SAASoG,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,gDAC1L,wBAAOb,UAAWxC,EAAQs8B,aAA1B,UACI,wEACA,cAACl5B,EAAA,EAAD,CAAW9H,KAAK,OAAOkH,UAAWxC,EAAQ+E,YAAauK,aAAcitB,GAAaz8B,EAAMo5B,aAAa1zB,mBAAoBtI,KAAK,oBAAoBoG,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,SAGzM,kBAAjB8E,EACM,sBAAM9D,UAAWC,KAAE,0BAAnB,8FACA,GAEV,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAauK,aAAcxP,EAAMo5B,aAAapW,kBAAmB5lB,KAAK,oBAAoBoG,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,uBAC1M,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAauK,aAAcxP,EAAMo5B,aAAanW,kBAAmB7lB,KAAK,oBAAoBoG,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,uBAC1M,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAauK,aAAcxP,EAAMo5B,aAAalW,cAAe9lB,KAAK,gBAAgBoG,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,6BAClM,cAACD,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAauK,aAAcxP,EAAMo5B,aAAajW,YAAa/lB,KAAK,cAAcoG,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,oBAC9L,eAACkB,EAAA,EAAD,CAAa/B,UAAWC,KAAE,yBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,qBAAf,gCACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,qBAAqBlC,UAAWxC,EAAQlB,YAAawQ,aAAcxP,EAAMo5B,aAAahW,UAAY,MAAQ,KAAMhmB,KAAK,YAAYqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAzL,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,KAAhB,sBAGR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWC,KAAE,yBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,kBAAf,6BACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,kBAAkBlC,UAAWxC,EAAQlB,YAAawQ,aAAcxP,EAAMo5B,aAAa/V,eAAgBjmB,KAAK,iBAAiBqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAjL,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,OAAhB,wBAGR,eAAC8C,EAAA,EAAD,CAAa/B,UAAWC,KAAE,yBAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,qBAAf,0BACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,qBAAqBlC,UAAWxC,EAAQlB,YAAawQ,aAAcxP,EAAMo5B,aAAa9V,YAAalmB,KAAK,cAAcqG,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAA9K,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,YAAhB,uBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,OAAhB,wBAGR,cAAC2B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAa7H,KAAK,eAAeoS,aAAcnI,GAAerH,EAAMo5B,aAAaxzB,cAAepK,KAAK,OAAO+H,MAAM,6BAA6BE,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,MACrN,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAa7H,KAAK,cAAcoS,aAAcxP,EAAMo5B,aAAavtB,YAAarI,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,IAAI6B,MAAM,yBAC9L,iEACA,cAACs5B,GAAA,EAAD,CAAkBz/B,KAAK,sBAAsB0/B,QAAS,EAAGh2B,YAAY,mBAAmBpE,UAAWxC,EAAQX,SAAUiQ,aAAcxP,EAAMo5B,aAAa7V,oBAAqB9f,SAAU,SAAC/B,GAAD,OAAO1B,EAAM8F,iBAAiBpE,YCtGpN,SAASq7B,KACpB,IAAM58B,EAAWC,cACXib,EAAWle,EAAU,mBACrByX,EAAWC,cACXkJ,EAAanJ,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IACvF8P,EAAcnX,aAAY,SAACC,GAAD,OAAsBA,EAAMw2B,gBALzB,EAMav2B,oBAAkB,GAN/B,mBAM5Bo7B,EAN4B,KAMVD,EANU,OAO+Cn7B,oBAAkB,GAPjE,mBAO5Bw6B,EAP4B,KAOOD,EAPP,OAQ+Bv6B,oBAAkB,GARjD,mBAQ5Bi3B,EAR4B,KAQDD,EARC,OAUKh3B,qBAVL,mBAU5B64B,EAV4B,KAUd4D,EAVc,KAW7BzQ,EAAe,uCAAG,4BAAAtuB,EAAA,+EAEKJ,EAAe,MAAOZ,EAAW,2BAAuB8gB,GAAc,MAF3E,OAEZvf,EAFY,OAGhBw+B,EAAgBx+B,EAASR,MACzBmC,ErF6NsF,CAC9F3E,KAAM,kCACNC,QqF/N4C+C,EAASR,OAJ7B,gDAOhBqD,QAAQC,IAAI,KAAM3C,SAPF,yDAAH,qDAUrB4C,qBAAU,WACNgrB,MACD,CAACoP,EAAkBZ,EAAmCvD,IAEzD,IAAMyF,EAAoB,SAACv7B,GACvB,IAAIC,EAAQD,EAAEE,OAAOD,MACfvE,EAAOsE,EAAEE,OAAOxE,KACT,cAATA,IACkBuE,EAAR,QAAVA,GAEJxB,ErFM8F,CAClG3E,KAAM,mCACNC,QqFR0C,eAAG2B,EAAOuE,MAG9CgN,EAAY,uCAAG,sBAAA1Q,EAAA,+EAEPJ,EAAe,OAAQZ,EAAW,2BAAuB8gB,EAAvB,WAA4CvG,GAFvE,OAGbrX,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,oBAAqByC,SAAU,aACvE2N,GAAQF,KAAR,yBAA+BkP,IAC/B/O,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,WANvB,gDASb7N,QAAQC,IAAI,KAAM3C,SAClBwB,EAASpE,GAAmB,IAC5BoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WAXpD,yDAAH,qDAkBlB,MAAiB,kBAAbia,EAEI,oDAGC+d,GAAgBA,EAAat1B,GAE9B,eAACqL,EAAA,EAAD,CAAW/J,SAAS,KAApB,UACI,cAACs0B,GAAD,CACI5zB,iBAAkBm3B,EAClB7D,aAAcA,EACd5B,0BAA2BA,EAC3BD,6BAA8BA,IAElC,cAAC1nB,EAAA,EAAD,IACA,cAAC+pB,GAAD,CACI9zB,iBAAkBm3B,IAEtB,cAACptB,EAAA,EAAD,IACA,cAACmsB,GAAD,CACIl2B,iBAAkBm3B,EAClB7wB,kBAAmBgtB,EAAahtB,kBAChC8vB,oBAAqB9C,EAAa7a,eAAe,GAAGxhB,WACpDghB,WAAYla,SAASka,EAAa,IAClCiL,YAAaoQ,EAAapQ,YAC1B+R,kCAAmCA,EACnCD,qCAAsCA,IAE1C,cAACjrB,EAAA,EAAD,IACA,cAAC0rB,GAAD,CACIz1B,iBAAkBm3B,EAClB1wB,oBAAqB6sB,EAAa7sB,oBAClCovB,iBAAkBA,EAClBD,oBAAqBA,EACrB1S,YAAaoQ,EAAapQ,YAC1B+R,kCAAmCA,EACnCD,qCAAsCA,IAE1C,cAACjrB,EAAA,EAAD,IACA,cAACssB,GAAD,CACIr2B,iBAAkBm3B,EAClBnuB,mBAAoBsqB,EAAatqB,mBACjC6sB,iBAAkBA,EAClBD,oBAAqBA,IAEzB,cAAC7rB,EAAA,EAAD,IACA,cAAC+sB,GAAD,CACI92B,iBAAkBm3B,EAClB7D,aAAcA,IAElB,cAAClP,GAAD,CACIE,SAAUgP,EAAa/N,mBAE3B,sBAAK7mB,MAAO,CAAEqD,QAAS,OAAQyJ,eAAgB,UAA/C,UACI,cAACvN,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,YAAYC,QAzDvC,WACnBkB,MAAM,yBAwD6EX,MAAO,CAAErF,YAAa,QAA7F,oBACA,cAAC4E,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,UAAUC,QAAS0K,EAArD,wBAOR,cAAC1D,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,W,wBC1HrCnR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTm+B,oBAAqB,CACjBC,SAAU,IACVj+B,aAAc,IAElBk+B,gBAAiB,CACbD,SAAU,IACVzrB,UAAW,qBAEf2rB,aAAc,CACVp+B,MAAO,UAKJ,SAASq+B,KACpB,IAAMp9B,EAAUtB,KACVuB,EAAWC,cACb7E,EAA4B8E,aAAY,SAACC,GAAD,OAAsBA,EAAM/E,UAHnC,EAKDgF,mBAAsB,IAAIiF,KAAK,wBAL9B,mBAK9B+3B,EAL8B,KAKlBC,EALkB,KAM/BC,EAAyB,SAACp3B,GACxBA,GAAQk3B,IACRC,EAAcn3B,GACdlG,EAAS/D,EAAqB,CAAE,YAAeiK,OAIjD5E,EAAe,SAACC,GAClB,IAAIC,EAAaD,EAAEE,OAAOD,MACpBvE,EAAOsE,EAAEE,OAAOxE,KAET,OAATA,IACAuE,EAAQkC,SAASlC,IAGR,WAATvE,IACkBuE,EAAR,QAAVA,GAGJxB,EAAS/D,EAAqB,eAAGgB,EAAO,GAAKuE,MAKjD,OAFA87B,EAAuBF,GAGnB,0BAAS76B,UAAWC,KAAE,uBAAtB,UACI,sBAAKD,UAAWC,KAAE,qBAAlB,UACI,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,QAAQmG,MAAM,QAAQC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MAC5I,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,YAAYmG,MAAM,aAAaC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MACrJ,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,WAAWmG,MAAM,YAAYC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MACnJ,cAAC,KAAD,CAAyBsE,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoB7I,KAAK,cAAcsF,UAAWxC,EAAQg9B,oBAAsB,IAAMh9B,EAAQm9B,aAAc17B,MAAO47B,EAC/Gr3B,gBAAc,EAAC1C,QAAQ,SAAS2C,OAAO,aAAaC,OAAO,SAAS7C,MAAM,gBAC1EE,SAAU,SAAC4C,GAAD,OAAUo3B,EAAuBp3B,IAAO1C,UAAQ,MAGlE,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,gBAAgBmG,MAAM,gBAAgBC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MAC5J,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,OAAOmG,MAAM,OAAOC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MAC1I,eAAC+C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQg9B,oBAAsB,IAAMh9B,EAAQm9B,aAApE,UACI,cAAC34B,EAAA,EAAD,CAAYZ,GAAG,cAAf,mBACA,cAACa,EAAA,EAAD,CAAQC,QAAQ,cAAcxH,KAAK,QAAQoS,aAAa,GAAG/L,SAAU,SAAC/B,GAAD,OAAOvB,EtFwEZ,CAChF3E,KAAM,4BACNC,QsF1E2HiG,EAAEE,OAAOD,MAAQ,MAA5H,SACKpG,EAAO4F,OAAS,GAAK5F,EAAOsJ,KAAI,SAACvE,GAC9B,OACI,cAACwE,EAAA,EAAD,CAA0BnD,MAAOrB,EAAMyE,IAAvC,SAA6CzE,EAAMlD,MAApCkD,EAAMyE,aAKrC,cAACzB,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,UAAUmG,MAAM,UAAUC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MAChJ,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,cAAcmG,MAAM,eAAeC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MACzJ,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,UAAUmG,MAAM,mBAAmBC,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MACzJ,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQg9B,oBAAqB9/B,KAAK,YAAYmG,MAAM,aAAa/H,KAAK,SAASgI,QAAQ,WAAWY,KAAK,QAAQX,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,MACnK,eAAC+C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQg9B,oBAAsB,IAAMh9B,EAAQm9B,aAApE,UACI,cAAC34B,EAAA,EAAD,CAAYZ,GAAG,YAAf,kCACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,YAAYxH,KAAK,SAASoS,aAAc,KAAM/L,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,IAA5F,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,MAAhB,iBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,KAAhB,yBAKZ,qBAAKe,UAAWC,KAAE,qBAAlB,SACI,eAAC8B,EAAA,EAAD,CAAa/B,UAAWC,KAAE,+BAAiC,IAAMzC,EAAQg9B,oBAAsB,IAAMh9B,EAAQk9B,gBAA7G,UACI,cAAC14B,EAAA,EAAD,CAAYZ,GAAG,kBAAf,uBACA,eAACa,EAAA,EAAD,CAAQC,QAAQ,kBAAkBxH,KAAK,WAAWqG,SAAU,SAAC/B,GAAD,OAAOD,EAAaC,IAAhF,UACI,cAACoD,EAAA,EAAD,CAAUnD,MAAM,SAAhB,oBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,WAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,UAAhB,sBACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,gBAAhB,8BCtFT,SAAS+7B,KACpB,IAAMv9B,EAAWC,cACXu9B,EAAgBt9B,aAAY,SAACC,GAAD,OAAsBA,EAAMs9B,WAAW17B,YAFjC,EAGK3B,oBAAS,GAHd,mBAGjCmU,EAHiC,KAGjBC,EAHiB,OAIZpU,mBAAiB,IAJL,mBAIjCs9B,EAJiC,KAIzBC,EAJyB,OAKFv9B,mBAAS,IALP,mBAKjCw9B,EALiC,KAKpBC,EALoB,OAMJz9B,mBAAsB,IAAIiF,KAAK,wBAN3B,mBAMjCuP,EANiC,KAMrBC,EANqB,OAOVzU,mBAAsB,IAAIiF,KAAK,wBAPrB,mBAOjCuN,EAPiC,KAOxBC,EAPwB,OAsBRzS,mBAA6B,IAtBrB,mBAsBjC2B,EAtBiC,KAsBvBuH,EAtBuB,KAuBlCC,EAAW,uCAAG,4BAAAzL,EAAA,+EAESJ,EAAe,MAAOZ,EAAc,sCAF7C,OAERuB,EAFQ,OAGZiL,EAAYjL,EAASR,MAHT,gDAMZmC,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SARN,yDAAH,qDAgBjB,OAJA4C,qBAAU,WACNmI,MACD,IAGC,0BAAShH,UAAWC,KAAC,kBAArB,UACI,oBAAID,UAAWC,KAAE,2BAAjB,uBAECg7B,GAAiBA,EACb94B,KAAI,SAACo5B,GACF,OACI,qBAA6Bv7B,UAAWC,KAAC,eAAzC,UACI,qBAAID,UAAWC,KAAE,uBAAjB,UACI,8CACA,+BAAOs7B,EAAKF,iBAEhB,qBAAIr7B,UAAWC,KAAE,uBAAjB,UACI,gDACA,+BAAO0E,GAAe42B,EAAKxrB,UAAY,SAE3C,qBAAI/P,UAAWC,KAAE,uBAAjB,UACI,6CACA,+BAAO0E,GAAe42B,EAAKlrB,QAAU,WAXpCkrB,EAAK97B,kBAmB1B,qBAAKO,UAAWC,KAAE,gCAAiCsB,QAAS,kBAAM0Q,GAAoBD,IAAtF,SACI,cAAC1E,GAAD,CAAQC,KAAK,mBAGhByE,GACG,uBAAMhS,UAAWC,KAAC,eAAoB0M,SAAU,SAAC3N,GAAD,OArDtC,SAACA,GvF2HY,IAAC,EuF1HhCA,EAAEkN,iBACFzO,EvFyHmH,CACvH3E,KAAM,8BACNC,QAAS,CAAEoiC,QAFyB,EuFzHC,CAAEA,OAAQA,EAAQprB,UAAWsC,EAAaA,EAAWtP,cAAgB,GAAIsN,QAASA,EAAUA,EAAQtN,cAAgB,GAAIs4B,YAAaA,IvFyHpIF,OAEnBprB,UAFgB,EAAWA,UAEhBM,QAFK,EAAsBA,QAElBgrB,YAFJ,EAA+BA,euFtECvoB,CAAc9T,IAArE,UACI,eAAC+C,EAAA,EAAD,CAAa/B,UAAWC,KAAE,8BAA1B,UACI,cAAC+B,EAAA,EAAD,CAAYZ,GAAG,iBAAf,sBACA,cAACa,EAAA,EAAD,CAAQC,QAAQ,iBAAiBxH,KAAK,mBAAmBqG,SAAU,SAAC/B,GAChEo8B,GAAWp8B,EAAEE,OAAOD,MAAQ,IAAI6F,MAAM,KAAK,GAAK,IAChDw2B,GAAgBt8B,EAAEE,OAAOD,MAAQ,IAAI6F,MAAM,KAAK,GAAK,KACtD7D,UAAQ,EAHX,SAIKzB,EAASf,OAAS,GAAKe,EAAS2C,KAAI,SAACgR,GAClC,OACI,cAAC/Q,EAAA,EAAD,CAA2BnD,MAAOkU,EAAQ/R,GAAK,IAAM+R,EAAQ5S,UAAWya,YAAW7H,EAAQ5S,UAA3F,SAAuG4S,EAAQ5S,WAAhG4S,EAAQ/R,YAKvC,cAAC,KAAD,CAAyBkC,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWC,KAAE,8BAA+BvF,KAAK,sBAAsBuE,MAAOoT,EAAY7O,gBAAc,EAAC1C,QAAQ,SACjI2C,OAAO,aAAa5C,MAAM,cAC1BE,SAAU,SAACzF,GA7E/BgX,EA6E+DhX,IAAO2F,UAAQ,MAGlE,cAAC,KAAD,CAAyBqC,MAAOC,KAAhC,SACI,cAAC,KAAD,CAAoBvD,UAAWC,KAAE,8BAA+BvF,KAAK,iBAAiBuE,MAAOoR,EAAS7M,gBAAc,EAAC1C,QAAQ,SACzH2C,OAAO,aAAa5C,MAAM,WAC1BE,SAAU,SAACzF,GA/E/BgV,EA+E4DhV,IAAO2F,UAAQ,MAG/D,qBAAKjB,UAAWC,KAAE,8BAAgC,IAAMA,KAAE,yBAA1D,SACI,cAACoB,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,8BC7GT,SAASk6B,KAEpB,OACI,0BAASx7B,UAAWC,KAAC,kBAArB,UACI,oBAAID,UAAWC,KAAE,2BAAjB,0CACA,cAACqN,GAAD,CAAQC,KAAK,4BCLV,SAASkuB,KAEpB,OACI,0BAASz7B,UAAWC,KAAC,qBAArB,UACI,oBAAID,UAAWC,KAAE,8BAAjB,sBACA,cAACqN,GAAD,CAAQC,KAAK,4BCKV,SAASmuB,KACpB,IAAMj+B,EAAWC,cACb+P,EAAW9P,aAAY,SAACC,GAAD,OAAsBA,EAAMs9B,cAEjDA,EAAU,uCAAG,4BAAA3/B,EAAA,+EAGUJ,EAAe,OAAQZ,EAAc,oBAAqBkT,GAHpE,OAGP3R,EAHO,OAIX2B,EAASlE,EAAoB,CAAE0C,QAAS,4BAA6ByC,SAAU,aAC/EjB,EAASpE,GAAmB,IACxByC,EAASR,KAAK8F,KACdiL,GAAQF,KAAR,wBAA8BrQ,EAASR,KAAK8F,KAC5CkL,OAAOvB,SAAS,CAAEwB,IAAK,EAAGC,SAAU,YAR7B,gDAYX/O,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAdP,yDAAH,qDAkBhB,OACI,eAACwQ,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,WAArC,UACI,cAAC26B,GAAD,IACA,cAACztB,EAAA,EAAD,IACA,cAAC6tB,GAAD,IACA,cAAC7tB,EAAA,EAAD,IACA,cAACquB,GAAD,IACA,cAACruB,EAAA,EAAD,IACA,cAACsuB,GAAD,IACA,qBAAKz7B,UAAWC,KAAE,qBAAlB,SACI,cAACoB,EAAA,EAAD,CAAQP,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAM25B,KAA3D,8B,4GCrCD,SAASS,KAEpB,OACI,eAAClvB,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,UAArC,UACI,oBAAID,UAAWC,KAAE,mBAAjB,wBAEA,qBAAID,UAAWC,KAAE,uBAAjB,UACI,oBAAID,UAAWC,KAAE,iBAAjB,SACI,eAAC,KAAD,CAAS2W,GAAG,oBAAoB5W,UAAWC,KAAE,kBAA7C,UACI,cAAC,KAAD,CAAWD,UAAWC,KAAE,qBAAsBuC,SAAS,UAD3D,aAKJ,oBAAIxC,UAAWC,KAAE,iBAAjB,SACI,eAAC,KAAD,CAAS2W,GAAG,iBAAiB5W,UAAWC,KAAE,kBAA1C,UACI,cAAC,KAAD,CAAgBD,UAAWC,KAAE,qBAAsBuC,SAAS,UADhE,iBAKJ,oBAAIxC,UAAWC,KAAE,iBAAjB,SACI,eAAC,KAAD,CAAS2W,GAAG,uBAAuB5W,UAAWC,KAAE,kBAAhD,UACI,cAAC,KAAD,CAAiBD,UAAWC,KAAE,qBAAsBuC,SAAS,UADjE,gCAKJ,oBAAIxC,UAAWC,KAAE,iBAAjB,SACI,eAAC,KAAD,CAAS2W,GAAG,qBAAqB5W,UAAWC,KAAE,kBAA9C,UACI,cAAC,KAAD,CAAcD,UAAWC,KAAE,qBAAsBuC,SAAS,UAD9D,oC,yBChCdse,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,OAEhCC,KAAM,CACF7e,SAAU,QAPEue,CAUtBQ,MAMa,SAASqa,GAAkBt+B,GACtC,IAAIu+B,EAAwBC,OAAOC,QAAQz+B,EAAM0+B,cAAgB1+B,EAAM0+B,cAAgB,IAEvF,OACI,8BACI,cAAC/Z,GAAA,EAAD,CAAgBrQ,UAAW8I,KAAO5Y,MAAO,CAAEY,SAAU,QAASgB,OAAQ,UAAtE,SACI,eAACwe,GAAA,EAAD,WAEI,cAACC,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,CAAiBS,MAAM,SAAvB,oCACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oCAIR,cAACD,GAAA,EAAD,UAEQyZ,GACGA,EAAsBp9B,OAAS,GAC/Bo9B,EACE15B,KAAI,SAAC0K,EAAUuG,GAAX,OACD,eAACwO,GAAA,EAAD,WAEI,cAAC,GAAD,CAAiBS,MAAM,SAAvB,SACKxV,EAAI,KAGT,cAAC,GAAD,CAAiBwV,MAAM,SAAvB,SACKxV,EAAI,OAPEuG,eC1BnD,IAAMlX,GAAYC,aAAW,kBACzBE,YAAa,CACTwS,IAAK,CACDtS,MAAO,IACPmH,OAAQ,oBAEZpH,YAAa,CACTC,MAAO,IACPmH,OAAQ,yBAKpB,SAASu4B,GAAMC,GACX,OAAO,IAAIvwB,SAAQ,SAAAC,GAAO,OAAI7L,WAAW6L,EAASswB,MAGvC,SAASC,KACpB,IAAM3+B,EAAUtB,KACVuB,EAAWC,cACX7E,EAA4B8E,aAAY,SAACC,GAAD,OAAsBA,EAAM/E,UAHxC,EAIYgF,oBAAkB,GAJ9B,mBAI3Bu+B,EAJ2B,KAIVC,EAJU,OAKQx+B,qBALR,mBAK3By+B,EAL2B,KAKZC,EALY,OAMM1+B,mBAA2B,iBANjC,mBAM3BiG,EAN2B,KAMbsuB,EANa,OAOYv0B,qBAPZ,mBAO3Bqe,EAP2B,KAOVsgB,EAPU,OASgB3+B,qBAThB,mBAS3B4+B,EAT2B,KASRC,EATQ,OAU8B7+B,oBAAkB,GAVhD,mBAU3B8+B,EAV2B,KAUDC,EAVC,OAWY/+B,oBAAkB,GAX9B,mBAW3Bg/B,EAX2B,KAWVC,EAXU,KAY5B7wB,EAAY,uCAAG,WAAOjN,GAAP,iBAAAzD,EAAA,6DACjByD,EAAEkN,iBADe,SAGb0wB,GAA4B,GACtBG,EAAiB,CACnBC,QAASV,EACTx4B,eACAoY,mBAPS,SASP+f,GAAM,KATC,uBAUU9gC,EAAe,OAAQZ,EAAc,sCAAuCwiC,GAVtF,OAUPjhC,EAVO,OAWb4gC,EAAqB5gC,EAASR,MAC9BwhC,GAAmB,GAZN,kDAebA,GAAmB,GACnBr/B,EAASlE,EAAoB,CAAE0C,QAAS,+DAAgEyC,SAAU,WAClHjB,EAASpE,GAAmB,IAjBf,yBAoBbujC,GAA4B,GApBf,6EAAH,sDA6BlB,OACI,eAACnwB,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,YAArC,UACI,qBAAID,UAAWC,KAAE,qBAAjB,gDAAqE,uBAArE,0CACA,uBAAMD,UAAWC,KAAE,oBAAqB0M,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAAtE,UAEI,eAAC+C,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAawE,QAAQ,WAArD,UACI,cAACkB,EAAA,EAAD,CAAYZ,GAAG,cAAf,0BACA,cAACa,EAAA,EAAD,CACIC,QAAQ,cACRnB,SAAU,SAAC/B,GAAD,OAdTC,EAc4BD,EAAEE,OAAOD,MAbtDo9B,GAAmB,QACnBE,EAAiBp7B,SAASlC,EAAQ,KAFlB,IAACA,GAeDgC,UAAQ,EAHZ,SAMQpI,EAAO4F,OAAS,GAAK5F,EAChBsJ,KAAI,SAACvE,GACF,OACI,cAACwE,EAAA,EAAD,CAEInD,MAAOrB,EAAMwD,GAFjB,SAIKxD,EAAMlD,MAHFkD,EAAMyE,aAWtC+5B,GACG,eAACr6B,EAAA,EAAD,CAAa/B,UAAWxC,EAAQlB,YAAawE,QAAQ,WAArD,UACI,cAACkB,EAAA,EAAD,CAAYZ,GAAG,cAAf,2BACA,eAACa,EAAA,EAAD,CACIC,QAAQ,cACR4K,aAAa,gBACb/L,SAAU,SAAC/B,GAAD,OAAOozB,EAAgBpzB,EAAEE,OAAOD,QAC1CgC,UAAQ,EAJZ,UAMI,cAACmB,EAAA,EAAD,CAAUnD,MAAM,gBAAhB,4BACA,cAACmD,EAAA,EAAD,CAAUnD,MAAM,iBAAhB,mCAKXm9B,GACG,cAACx7B,EAAA,EAAD,CACI9H,KAAK,SAAS4I,KAAK,QAAQZ,QAAQ,WACnCd,UAAWxC,EAAQlB,YACnBuE,MAAM,mBACNE,SAAU,SAAC/B,GAAD,OAAOw9B,EAAmBr7B,SAASnC,EAAEE,OAAOD,SACtD+2B,WAAY,CAAEC,IAAK,KACnBh1B,UAAQ,IAGfm7B,GACG,cAAC/6B,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAK/V,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAxE,0BAOJq7B,GAA4BE,GACzB,cAACjB,GAAD,CAAmBI,cAAa,OAAES,QAAF,IAAEA,OAAF,EAAEA,EAAmBT,iBAIvDW,GACD,cAACp0B,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,c,yBC9HhC,SAAS4vB,KACpB,IAAMx/B,EAAWC,cADuB,EAEEG,mBAAkC,IAFpC,mBAEjCq/B,EAFiC,KAElBC,EAFkB,OAGIt/B,oBAAkB,GAHtB,mBAGjCO,EAHiC,KAGjBC,EAHiB,KAKlC++B,EAAgB,uCAAG,4BAAA7hC,EAAA,sEAEjB8C,GAAkB,GAFD,SAGIlD,EAAe,MAAOZ,EAAc,wCAHxC,OAGbuB,EAHa,OAIjBqhC,EAAiBrhC,EAASR,MAC1B+C,GAAkB,GALD,gDAQjBZ,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAVD,yDAAH,qDAiBtB,OAJA4C,qBAAU,WACNu+B,MACD,IAGC,eAAC3wB,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,kBAArC,UACI,oBAAID,UAAWC,KAAE,2BAAjB,sCAEA,sBAAKD,UAAWC,KAAE,0BAAlB,UACI,qBAAID,UAAWC,KAAE,0BAAjB,UACK7B,GACG,cAACmK,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,SAElC6vB,EAAcz+B,OAAS,GAAKy+B,EAAc/6B,KAAI,SAACk7B,GAC5C,OACI,oBAA0Br9B,UAAWC,KAAE,0BAAvC,SACI,cAAC,KAAD,CAAS2W,GAAE,gCAA2BymB,EAAaj8B,IAAnD,SAA0Di8B,EAAaz/B,MAAMlD,QADxE2iC,EAAaj8B,UAMR,IAAzB87B,EAAcz+B,SAAiBL,GAC5B,0DAGJ,qBAAK4B,UAAWC,KAAE,4BAAlB,SACI,cAAC,KAAD,CAAS2W,GAAG,4BAAZ,SACI,cAACtJ,GAAD,CAAQC,KAAK,0C,wBC/C/BrR,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTihC,WAAW,aACP/gC,MAAO,GACPmH,OAAQ,UACPtH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPmH,OAAQ,eAGhBnB,YAAY,eACPnG,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPmH,OAAQ,eAGhBquB,OAAQ,CACJx1B,MAAO,UAcJ,SAASghC,GAAmBjgC,GACvC,IAAME,EAAUtB,KACVuB,EAAWC,cAF0D,EAIKG,oBAAkB,GAJvB,mBAIpE2/B,EAJoE,KAIlCC,EAJkC,OAM3C5/B,mBAAiB,GAN0B,mBAMpE6/B,EANoE,KAM1DC,EAN0D,OAO/C9/B,mBAAiB,GAP8B,mBAOpE+/B,EAPoE,KAO5DC,EAP4D,OAQnDhgC,mBAAiB,GARkC,mBAQpEigC,EARoE,KAQ9DC,EAR8D,KAUrE9xB,EAAY,uCAAG,WAAOjN,GAAP,iBAAAzD,EAAA,yDACjByD,EAAEkN,iBACE8xB,EAFa,aAEwC1gC,EAAM2gC,uBAC3DC,EAAU,CACVR,WACAE,SACAE,QAEJE,EAA6B7xB,KAAK+xB,GAClC5gC,EAAM6gC,yBAAyBH,IAE3B1gC,EAAM8gC,eAXO,0CAaHjjC,EAAe,OAAQZ,EAAW,kCAA8B+C,EAAM8gC,eAApC,kBAAoEF,GAbnG,OAcTzgC,EAASlE,EAAoB,CAAE0C,QAAS,iEAAkEyC,SAAU,aACpHjB,EAASpE,GAAmB,IAC5BiE,EAAM+gC,oCAAsC/gC,EAAM+gC,qCAAqC/gC,EAAMghC,kCAAoC3/B,QAAQC,IAAI,uDAhBpI,kDAmBTnB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SArBT,QAyBjB0hC,EAAY,GACZE,EAAU,GACVE,EAAQ,GA3BS,0DAAH,sDAkClB,OACI,sBAAK/9B,UAAWC,KAAE,qBAAlB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,4BAEA,oBAAID,UAAWC,KAAE,uCAAjB,SACK3C,EAAM2gC,sBAAsBx/B,OAAS,GAClCnB,EAAM2gC,sBAAsB97B,KAAI,SAACo8B,EAAqBnrB,GAClD,OACI,qBAAsBpT,UAAWC,KAAE,sCAAnC,UACI,gCACI,gCAAMmT,EAAQ,EAAd,4BAAyC,iCAAOmrB,EAASb,SAAhB,IAA2Ba,EAASX,aAC7E,yCAAW,iCAAOW,EAAST,KAAhB,aAEdxgC,EAAM8gC,gBACH,qBAAK78B,QAAS,kBAlBd,SAAC6R,GACzB9V,EAAMkhC,6BAA6BlhC,EAAMkhC,4BAA4BprB,EAAO,OAiBhCqrB,CAAwBrrB,IAA5C,SACI,cAAC/R,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,sBAPHi9B,EAASn9B,SAgBlC,qBAAKG,QAAS,kBAAMk8B,GAAqCD,IAAmCx9B,UAAWC,KAAE,uBAAzG,SACI,cAACqN,GAAD,CAAQC,KAAK,qBAEhBiwB,GACG,uBAAMx9B,UAAWC,KAAE,qBAAsB0M,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAAvE,UACI,sBAAKgB,UAAWC,KAAE,2BAAlB,UACI,sBAAKD,UAAWC,KAAE,iCAAlB,UACI,sBAAMD,UAAWC,KAAE,sBAAnB,oCACA,cAACW,EAAA,EAAD,CAAW9H,KAAK,SAAS4I,KAAK,QAAQZ,QAAQ,WAAWd,UAAWxC,EAAQ8/B,WAAYz8B,MAAM,OAAO5B,MAAOy+B,EACxG38B,SAAU,SAAC/B,GAAD,OAAO2+B,EAAYx8B,SAASnC,EAAEE,OAAOD,SAASy/B,WAAY,CAAE1I,WAAY,CAAEC,IAAK,IAAOh1B,UAAQ,IAC5G,cAACL,EAAA,EAAD,CAAW9H,KAAK,SAAS4I,KAAK,QAAQZ,QAAQ,WAAWd,UAAWxC,EAAQ8/B,WAAYz8B,MAAM,KAAK5B,MAAO2+B,EACtG78B,SAAU,SAAC/B,GAAD,OAAO6+B,EAAU18B,SAASnC,EAAEE,OAAOD,SAASy/B,WAAY,CAAE1I,WAAY,CAAEC,IAAK,IAAOh1B,UAAQ,OAE9G,8BACI,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAazJ,KAAK,SAAS4I,KAAK,QAAQZ,QAAQ,WAAWD,MAAM,OAAO5B,MAAO6+B,EACzG/8B,SAAU,SAAC/B,GAAD,OAAO++B,EAAQ58B,SAASnC,EAAEE,OAAOD,SAASy/B,WAAY,CAAE1I,WAAY,CAAEC,IAAK,IAAOh1B,UAAQ,SAGhH,qBAAKjB,UAAWC,KAAE,2BAAlB,SACI,cAACoB,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,gCCtHxB,IAAMpF,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTihC,WAAW,aACP/gC,MAAO,GACPmH,OAAQ,UACPtH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPmH,OAAQ,eAGhBquB,OAAQ,CACJx1B,MAAO,KAEXgG,YAAY,eACPnG,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPmH,OAAQ,oBAeT,SAASi7B,GAAoBrhC,GACxC,IAAME,EAAUtB,KACVuB,EAAWC,cAF4D,EAIKG,oBAAkB,GAJvB,mBAItE+gC,EAJsE,KAInCC,EAJmC,OAM7ChhC,mBAAiB,GAN4B,mBAMtE6/B,EANsE,KAM5DC,EAN4D,OAOjD9/B,mBAAiB,GAPgC,mBAOtE+/B,EAPsE,KAO9DC,EAP8D,OAQrDhgC,mBAAiB,GARoC,mBAQtEigC,EARsE,KAQhEC,EARgE,KAUvE9xB,EAAY,uCAAG,WAAOjN,GAAP,iBAAAzD,EAAA,yDACjByD,EAAEkN,iBACE4yB,EAFa,aAEyCxhC,EAAMyhC,wBAC5Db,EAAU,CACVR,WACAE,SACAE,QAEJgB,EAA8B3yB,KAAK+xB,GACnC5gC,EAAM0hC,0BAA0BF,IAE5BxhC,EAAM8gC,eAXO,0CAaHjjC,EAAe,OAAQZ,EAAW,kCAA8B+C,EAAM8gC,eAApC,mBAAqEF,GAbpG,OAcTzgC,EAASlE,EAAoB,CAAE0C,QAAS,kEAAmEyC,SAAU,aACrHjB,EAASpE,GAAmB,IAC5BiE,EAAM+gC,oCAAsC/gC,EAAM+gC,qCAAqC/gC,EAAMghC,kCAAoC3/B,QAAQC,IAAI,uDAhBpI,kDAmBTnB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SArBT,QAyBjB0hC,EAAY,GACZE,EAAU,GACVE,EAAQ,GA3BS,0DAAH,sDAkClB,OACI,sBAAK/9B,UAAWC,KAAE,qBAAlB,UACI,oBAAID,UAAWC,KAAE,yBAAjB,6BACA,oBAAID,UAAWC,KAAE,wCAAjB,SACK3C,EAAMyhC,wBAA0BzhC,EAAMyhC,uBAClC58B,KAAI,SAACo8B,EAAqBnrB,GACvB,OACI,qBAAsBpT,UAAWC,KAAE,uCAAnC,UACI,gCACI,gCAAMmT,EAAQ,EAAd,4BAAyC,iCAAOmrB,EAASb,SAAhB,IAA2Ba,EAASX,aAC7E,yCAAW,iCAAOW,EAAST,KAAhB,aAEdxgC,EAAM8gC,gBACH,qBAAK78B,QAAS,kBAjBb,SAAC6R,GAC1B9V,EAAMkhC,6BAA6BlhC,EAAMkhC,4BAA4BprB,EAAO,QAgBhC6rB,CAAyB7rB,IAA7C,SACI,cAAC/R,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,sBAPHi9B,EAASn9B,SAelC,qBAAKG,QAAS,kBAAMs9B,GAAsCD,IAAoC5+B,UAAWC,KAAE,uBAA3G,SACI,cAACqN,GAAD,CAAQC,KAAK,qBAEhBqxB,GACG,uBAAM5+B,UAAWC,KAAE,qBAAsB0M,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAAvE,UACI,sBAAKgB,UAAWC,KAAE,2BAAlB,UACI,sBAAKD,UAAWC,KAAE,iCAAlB,UACI,sBAAMD,UAAWC,KAAE,sBAAnB,oCACA,cAACW,EAAA,EAAD,CAAW9H,KAAK,SAAS4I,KAAK,QAAQZ,QAAQ,WAAWd,UAAWxC,EAAQ8/B,WAAYz8B,MAAM,OAAO5B,MAAOy+B,EACxG38B,SAAU,SAAC/B,GAAD,OAAO2+B,EAAYx8B,SAASnC,EAAEE,OAAOD,SAASy/B,WAAY,CAAE1I,WAAY,CAAEC,IAAK,IAAOh1B,UAAQ,IAC5G,cAACL,EAAA,EAAD,CAAW9H,KAAK,SAAS4I,KAAK,QAAQZ,QAAQ,WAAWd,UAAWxC,EAAQ8/B,WAAYz8B,MAAM,KAAK5B,MAAO2+B,EACtG78B,SAAU,SAAC/B,GAAD,OAAO6+B,EAAU18B,SAASnC,EAAEE,OAAOD,SAASy/B,WAAY,CAAE1I,WAAY,CAAEC,IAAK,IAAOh1B,UAAQ,OAE9G,8BACI,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQ+E,YAAazJ,KAAK,SAAS4I,KAAK,QAAQZ,QAAQ,WAAWD,MAAM,OAAO5B,MAAO6+B,EACzG/8B,SAAU,SAAC/B,GAAD,OAAO++B,EAAQ58B,SAASnC,EAAEE,OAAOD,SAASy/B,WAAY,CAAE1I,WAAY,CAAEC,IAAK,IAAOh1B,UAAQ,SAGhH,qBAAKjB,UAAWC,KAAE,2BAAlB,SACI,cAACoB,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,gCC3HT,SAAe49B,KAA9B,gC,8CAAe,4BAAA3jC,EAAA,+EAEcJ,EAAe,MAAOZ,EAAc,sBAFlD,cAEHuB,EAFG,yBAGAA,EAASR,MAHT,gCAMPqD,QAAQC,IAAI,KAAM3C,SANX,0D,sBCWf,IAAMC,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACT01B,OAAO,aACHx1B,MAAO,KACNH,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,MAGf4iC,UAAW,CACP,aAAc,CACVlH,QAAS,UAMV,SAASmH,KACpB,IAAM5hC,EAAUtB,KACVuB,EAAWC,cAFkB,EAIiBG,mBAA4B,IAJ7C,mBAI5BwhC,EAJ4B,KAIRC,EAJQ,OAKWzhC,oBAAkB,GAL7B,mBAK5Bu+B,EAL4B,KAKXC,EALW,OAOax+B,mBAAiB,IAP9B,mBAO5B0hC,EAP4B,KAOVC,EAPU,OAQe3hC,mBAAiB,IARhC,mBAQ5B4hC,EAR4B,KAQTC,EARS,OASuB7hC,mBAA2B,IATlD,mBAS5BogC,EAT4B,KASLE,EATK,OAUyBtgC,mBAA2B,IAVpD,mBAU5BkhC,EAV4B,KAUJC,EAVI,KAY7BW,EAAmB,uCAAG,4BAAApkC,EAAA,+EAECJ,EAAe,MAAOZ,EAAc,wBAFrC,cAEhBuB,EAFgB,yBAGbA,EAASR,MAHI,gCAMpBmC,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SARE,yDAAH,qDAYnB2jC,EAAyC,uCAAG,0CAAArkC,EAAA,6DAC1CskC,EAAmD,GADT,SAE3BX,KAF2B,cAE1CrmC,EAF0C,gBAGpB8mC,IAHoB,OAO9C,IAJIzC,EAH0C,OAM1C4C,EAA6C,GACxCh4B,EAAI,EAAGA,EAAIo1B,EAAcz+B,OAAQqJ,IACtCg4B,EAAwB3zB,KAAK+wB,EAAcp1B,GAAGlK,OAQlD,IALImiC,EAAgCD,EAAwB1W,QAAO,SAACxb,EAAkBoyB,GAClF,OAAOF,EAAwBzqB,QAAQzH,KAAUoyB,KAZP,WAgBrCl4B,GACL,IAAKi4B,EAA8BE,MAAK,SAACryB,GAAD,OAAsBA,EAAKvL,MAAQxJ,EAAOiP,GAAGzF,OAAM,CACvF,IAAI69B,EAA4Bb,EAChCa,EAA0B/zB,KAAKtT,EAAOiP,IACtC+3B,EAAgCK,IAJ/Bp4B,EAAI,EAAGA,EAAIjP,EAAO4F,OAAQqJ,IAAM,EAAhCA,GAhBqC,yBAuBvC+3B,GAvBuC,4CAAH,qDAxBZ,EAkD+BhiC,oBAAkB,GAlDjD,mBAkDDsiC,GAlDC,WAmDnCthC,qBAAU,WACN+gC,IAA4CnU,MAAK,SAACrE,GAC9CkY,EAAsBlY,GACtB+Y,GAA6B,QAElC,IAEH,IAQMC,EAAqB,uCAAG,4BAAA7kC,EAAA,6DACtB8kC,EAAkB,CAClBC,eAAgBrC,EAChBsC,gBAAiBxB,EACjBnhC,MAAO,CACHyE,IAAKk9B,EACL7kC,KAAM+kC,IANY,kBAWhBtkC,EAAe,OAAQZ,EAAc,mBAAoB8lC,GAXzC,OAYtB5iC,EAASlE,EAAoB,CAAE0C,QAAS,qCAAsCyC,SAAU,aACxFjB,EAASpE,GAAmB,IAC5BgT,GAAQF,KAAK,uBAdS,gDAiBtB1O,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAnBI,yDAAH,qDAuB3B,OACI,eAACwQ,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,aAArC,UACI,oBAAID,UAAWC,KAAE,sBAAjB,4BAEA,eAAC8B,EAAA,EAAD,WACI,cAACC,EAAA,EAAD,CAAYZ,GAAG,cAAf,0BACA,cAACa,EAAA,EAAD,CAAQC,QAAQ,cAAclC,UAAWxC,EAAQu0B,OAAQhxB,SAAU,SAAC/B,GAAD,OArC3D,SAACC,GACjB,IAAIuhC,EAAWvhC,EAAM6F,MAAM,KAAK,GAC5B27B,EAAYxhC,EAAM6F,MAAM,KAAK,GACjC06B,EAAoBgB,GACpBd,EAAqBe,GACrBpE,GAAmB,GAgC+DqE,CAAY1hC,EAAEE,OAAOD,MAAQ,KAAvG,SACKogC,EAAmBl9B,KAAI,SAACvE,GACrB,OACI,cAACwE,EAAA,EAAD,CAA0BnD,MAAOrB,EAAMyE,IAAM,IAAMzE,EAAMlD,KAAzD,SAAgEkD,EAAMlD,MAAvDkD,EAAMyE,aAMpC+5B,GACG,sBAAKp8B,UAAWC,KAAE,qBAAlB,UACI,cAACs9B,GAAD,CAAoBU,sBAAuBA,EAAuBE,yBAA0BA,IAC5F,cAACQ,GAAD,CAAqBI,uBAAwBA,EAAwBC,0BAA2BA,OAIxG,qBAAKh/B,UAAWC,KAAE,6BAAlB,SACI,cAACoB,EAAA,EAAD,CAAQrB,UAAWxC,EAAQ2hC,UAAWr+B,QAAQ,YAAYQ,MAAM,UAAUC,QAAS,kBAAM6+B,KAAyBhzB,UAAWgvB,EAA7H,uBClID,SAASuE,GAAarjC,GACjC,IAAMG,EAAWC,cACbib,EAAW,GACXioB,EAAqD,kBAAjCnmC,EAAU,mBAmBlC,OAbAoE,qBAAU,WAJN8Z,EAAWle,EAAU,mBAAqB,IAC1CmmC,EAAiC,kBAAbjoB,IAMhBlb,EAAShE,EAAqB,CAC1B6c,MAAO,kBACPC,gBAAiB,oIACjBC,UAAU,EACVC,eAAe,EACfC,oBAAoB,OAG7B,CAACpZ,EAAM6Y,gBAGN,cAAC,IAAD,CAAO0qB,KAAMvjC,EAAMujC,KACfC,OAAQ,gBAAG5uB,EAAH,EAAGA,SAAH,OACJ0uB,EACItjC,EAAMyjC,SAEN,cAAC,IAAD,CACInqB,GAAI,CACAiW,SAAU,oBACVjvB,MAAO,CAAE+0B,KAAMzgB,S,wBChCrC4O,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,OAEhCC,KAAM,CACF7e,SAAU,QAPEue,CAUtBQ,MAEIrlB,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTwS,IAAK,CACD1J,QAAS,QACTzB,OAAQ,YACR,UAAW,CACP2V,OAAQ,sBAGhB/c,YAAY,aACRC,MAAO,IACPE,YAAa,GACbD,aAAc,GACd,eAAgB,CACZC,YAAa,IAEhBL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,SAMvB+kB,GAAiBT,cAAW,SAAC3kB,GAAD,OAC9BC,YAAa,CACTolB,KAAM,CACF,qBAAsB,CAClBxS,gBAAiB7S,EAAM8S,QAAQwS,OAAOC,YAJ/BZ,CAQrBa,MAEa,SAASof,KACpB,IAAMxjC,EAAUtB,KAEVquB,EAAW,WACbje,OAAOvB,SAAS,CACZwB,IAAK,EACLC,SAAU,YANiB,EAUyB3O,oBAAkB,GAV3C,mBAU5ByvB,EAV4B,KAUJC,EAVI,OAWG1vB,mBAAiB,IAXpB,mBAW5BoJ,EAX4B,KAWfg6B,EAXe,OAYFpjC,qBAZE,mBAY5B2vB,EAZ4B,KAYlB0T,EAZkB,OAaCrjC,mBAAiB,GAblB,mBAa5B6vB,EAb4B,KAahBC,EAbgB,OAcqB9vB,oBAAkB,GAdvC,mBAc5B+vB,EAd4B,KAcNC,EAdM,KAe7BvvB,EAAiBC,iBAA8B,MAflB,SAgBpBuvB,EAhBoB,8EAgBnC,WAAwBJ,GAAxB,mBAAAnyB,EAAA,+EAE6BJ,EAAe,MAAOZ,EAAW,0CAAsCmzB,EAAtC,kDAA0FzmB,GAAe,MAFvK,OAEYnL,EAFZ,QAGYkyB,EAHZ,aAGkClyB,EAASR,OACnBmD,OAAS,GAAKovB,GAAwB,GAASA,GAAwB,GAGpEI,EAAJ,IAAfP,EAAyCM,EAAwCR,EAASU,OAAOF,GACjGkT,EAAajT,GACbV,GAA0B,GATlC,kDAYQ5uB,QAAQC,IAAI,KAAM3C,SAZ1B,2DAhBmC,sBAgCnC,IAAMmyB,EAAiB,uCAAG,WAAOlwB,GAAP,SAAA3C,EAAA,sDAClB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChCkhC,EAAe/iC,KAChB,KAPmB,2CAAH,sDAkBvB,OARAW,qBAAU,WACNivB,EAASJ,KACV,CAACA,IAEJ7uB,qBAAU,WACNivB,EAAS,KACV,CAAC7mB,IAGA,eAACwF,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,aAArC,UACI,sBAAKD,UAAWC,KAAE,oBAAlB,UACI,wBAAOD,UAAWC,KAAE,uBAApB,UACI,cAAC,KAAD,CAAYD,UAAWC,KAAE,6BACzB,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAauE,MAAM,SAAS/H,KAAK,OAAOiI,SAAU,SAAC/B,GAAD,OAAOovB,EAAkBpvB,EAAEE,OAAOD,MAAQ,UAG9H,eAAC,KAAD,CAAS2X,GAAG,4BAA4B5W,UAAWC,KAAE,iCAAmC,IAAMzC,EAAQlB,YAAtG,UACI,cAAC,KAAD,CAAe0D,UAAWC,KAAE,uCAC5B,wBAAQD,UAAWC,KAAE,oCAArB,uCAGNutB,GACE,cAACjlB,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,WAElCmgB,GACG,cAACvL,GAAA,EAAD,CAAgBrQ,UAAW8I,KAA3B,SACI,eAACwH,GAAA,EAAD,CAAOif,aAAW,mBAAlB,UACI,cAAChf,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,sBACA,cAAC,GAAD,CAAiBS,MAAM,SAAvB,0BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,wBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,mCACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sCACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,2BAIR,cAACD,GAAA,EAAD,UACKoL,GAAYA,EAASrrB,KAAI,SAACsoB,EAAerX,GAAhB,yCACtB,eAAC,GAAD,WACI,eAAC,GAAD,CAAiBxB,UAAU,KAAK8Y,MAAM,MAAtC,cAA6C,cAAC,KAAD,CAAS9T,GAAE,wBAAmB6T,EAASrpB,IAAMG,QAASgpB,EAAtD,SAAiEE,EAAS7O,SAAvH,OACA,cAAC,GAAD,CAAiByG,MAAM,SAAvB,SAAiC1d,GAAc,OAAC8lB,QAAD,IAACA,OAAD,EAACA,EAAU5O,eAAe,GAAGxhB,cAC5E,cAAC,GAAD,CAAiBgoB,MAAM,SAAvB,gBAAiCoI,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAU5O,gBAAuB,OAAR4O,QAAQ,IAARA,OAAA,EAAAA,EAAU5O,eAAepd,QAAS,GAAGrE,kBAC/F,cAAC,GAAD,CAAiBioB,MAAM,SAAvB,SAAiCoI,EAAStN,SAAW,IAAMsN,EAAStN,SAAW,KAC/E,cAAC,GAAD,CAAiBkF,MAAM,SAAvB,SACKvE,KAAKC,MAAiD,KAAnC,OAAR0M,QAAQ,IAARA,OAAA,EAAAA,EAAU2W,iCAAwC,MAElE,cAAC,GAAD,CAAiB/e,MAAM,SAAvB,SAAiCoI,EAAS3O,yBAAgE,IAArC2O,EAAS3O,yBAAiC2O,EAAS3O,wBAA0B,eAClJ,eAAC,GAAD,CAAiBuG,MAAM,SAAvB,cAAkCoI,EAASE,WAC3C,cAAC,GAAD,CAAiBtI,MAAM,SAAvB,SACI,cAAC,KAAD,CAASzL,GAAE,uBAAkB6T,EAAS/gB,kBAAkB9P,QAAU2H,QAASgpB,EAA3E,UACK,UAAAE,EAAS/gB,kBAAkBxP,YAA3B,eAAiCqG,WAAY,KAA7C,UAAmDkqB,EAAS/gB,kBAAkBxP,YAA9E,aAAmD,EAAiCuG,cAG7F,eAAC,GAAD,CAAiB4hB,MAAM,SAAvB,UACKoI,EAAS5gB,oBAAoBpL,OAAS,GACnC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAAtF,aAAkB,EAAwE7E,QAAU2H,QAASgpB,EAAxH,UACK,UAAAE,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApE,mBAAwEvE,YAAxE,eAA8EqG,WAAY,KAA1F,UAAgGkqB,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApK,iBAAgG,EAAwEvE,YAAxK,aAAgG,EAA8EuG,YAG9I,IAAxCgqB,EAAS5gB,oBAAoBpL,QAC1B,8DAGR,eAAC,GAAD,CAAiB4jB,MAAM,SAAvB,UACKoI,EAASre,mBAAmB3N,OAAS,GAClC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UAApF,aAAkB,EAAsE7E,QAAU2H,QAASgpB,EAAtH,mBACKE,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UADvE,iBACK,EAAsEvE,YAD3E,aACK,EAA4EqG,YAG7C,IAAvCkqB,EAASre,mBAAmB3N,QACzB,gEAhCSgsB,EAASrpB,cA0CjDksB,GACG,cAAC/kB,GAAD,CAAW7G,KAAK,KAAK2L,SAAS,WAGjCugB,IAAyBN,GACtB,cAACjsB,EAAA,EAAD,CAAQC,MAAM,UAAUR,QAAQ,WAAWd,UAAWxC,EAAQqR,IAC1DtN,QAAS,WACLosB,EAAcD,EAAa,GAC3BH,GAA0B,IAHlC,0B,yBCtLVrxB,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTmS,KAAM,CACFrJ,QAAS,OACTsJ,cAAe,SACfC,WAAY,UAEhBpS,YAAa,CACTC,MAAO,IACPC,aAAc,GACd,eAAgB,CACZA,aAAc,IAGtBmS,QAAQ,aACJpS,MAAO,IACP4I,QAAS,OACTyJ,eAAgB,gBAChB9R,UAAW,IACVV,EAAMM,YAAYC,KAAK,MAAQ,CAC5BG,UAAW,KAGnB+R,IAAK,CACDtS,MAAO,KAEXuS,YAAY,aACRzB,SAAU,WACVd,IAAK,MACLwC,KAAM,MACNC,UAAW,wBACXzS,MAAO,IACPU,QAAS,GACTgS,gBAAiB7S,EAAM8S,QAAQC,WAAWC,OACzChT,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,IACPU,QAAS,UAgBV,SAASokC,GAA2B/jC,GAC/C,IAAME,EAAUtB,KACVuB,EAAWC,cAF0E,EAI3DG,qBAJ2D,mBAIpF6/B,EAJoF,KAI1EC,EAJ0E,OAK/D9/B,qBAL+D,mBAKpF+/B,EALoF,KAK5EC,EAL4E,OAMnEhgC,qBANmE,mBAMpFigC,EANoF,KAM9EC,EAN8E,OAOnDlgC,qBAPmD,mBAOpFyjC,EAPoF,KAOtEC,EAPsE,KAgB3F1iC,qBAAU,YAPe,SAACvB,GAAgD,IAAD,QACrEqgC,EAAW,UAACrgC,EAAMkkC,8BAAP,aAAC,EAA8B9D,UAC1CG,EAAS,UAACvgC,EAAMkkC,8BAAP,aAAC,EAA8B5D,QACxCG,EAAO,UAACzgC,EAAMkkC,8BAAP,aAAC,EAA8B1D,MACtCyD,EAAe,UAACjkC,EAAMkkC,8BAAP,aAAC,EAA8BpgC,IAI9CqgC,CAAiBnkC,KAClB,CAACA,IAEJ,IAAM2O,EAAY,uCAAG,WAAOjN,GAAP,eAAAzD,EAAA,6DACjByD,EAAEkN,iBADe,SAITw1B,EAAwB,CACxBhE,WACAE,SACAE,OACA18B,GAAIkgC,GARK,SAUPnmC,EAAe,OAAQZ,EAAW,kCAA8B+C,EAAMqkC,uBAApC,sBAAwEL,GAAgBI,GAVnH,OAWbjkC,EAASlE,EAAoB,CAAE0C,QAAS,mCAAoCyC,SAAU,aACtFjB,EAASpE,GAAmB,IAC5BiE,EAAMskC,uCAAsC,GAC5CtkC,EAAMukC,kCAAkCvkC,EAAMwkC,+BAdjC,kDAiBbnjC,QAAQC,IAAI,KAAM3C,SAjBL,0DAAH,sDAqBlB,OACI,mCACI,cAAC8U,GAAA,EAAD,CACIC,KAAM1T,EAAMykC,+BACZ7wB,QAAS5T,EAAMskC,sCACfzwB,sBAAoB,EACpBC,kBAAmBC,KACnBC,cAAe,CACXC,QAAS,KANjB,SASI,cAACC,GAAA,EAAD,CAAMC,GAAInU,EAAMykC,+BAAhB,SACI,cAACrwB,GAAA,EAAD,CAAK1R,UAAWxC,EAAQsR,YAAxB,SACI,cAAC6C,GAAA,EAAD,UACI,uBAAM3R,UAAWxC,EAAQgR,KAAM7B,SAAU,SAAC3N,GAAD,OAAOiN,EAAajN,IAA7D,UACI,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAauE,MAAM,OAAO/H,KAAK,SAASmG,MAAOy+B,EACzE38B,SAAU,SAAC/B,GAAD,OAAO2+B,EAAYx8B,SAASnC,EAAEE,OAAOD,MAAQ,MAAM6B,QAAQ,WAAWY,KAAK,UACzF,cAACd,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAauE,MAAM,KAAK/H,KAAK,SAASmG,MAAO2+B,EACvE78B,SAAU,SAAC/B,GAAD,OAAO6+B,EAAU18B,SAASnC,EAAEE,OAAOD,MAAQ,MAAM6B,QAAQ,WAAWY,KAAK,UACvF,cAACd,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAauE,MAAM,OAAO/H,KAAK,SAASmG,MAAO6+B,EACzE/8B,SAAU,SAAC/B,GAAD,OAAO++B,EAAQ58B,SAASnC,EAAEE,OAAOD,MAAQ,MAAM6B,QAAQ,WAAWY,KAAK,UAErF,sBAAK1B,UAAWxC,EAAQmR,QAAxB,UACI,cAACtN,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAK/N,QAAQ,YAAYQ,MAAM,YACtDC,QAAS,kBAAMjE,EAAMskC,uCAAsC,IAD/D,oBAEA,cAACvgC,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAK/V,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAxE,kCCjHrB,SAAS0gC,KACpB,IAAMvkC,EAAWC,cACbwU,EAAWC,cACXisB,EAAiBj9B,SAAS+Q,EAASE,OAAOtN,MAAM,IAAII,MAAM,EAAGgN,EAASE,OAAOtN,MAAM,IAAIrG,QAAQuG,KAAK,IAAM,IAHrE,EAKPnH,mBAAiB,cALV,mBAKlC4iC,EALkC,KAKvBwB,EALuB,OAMTpkC,mBAAiB,aANR,mBAMlC2iC,EANkC,KAMxB0B,EANwB,OAOiBrkC,mBAA2B,IAP5C,mBAOlCogC,EAPkC,KAOXE,EAPW,OAQmBtgC,mBAA2B,IAR9C,mBAQlCkhC,EARkC,KAQVC,EARU,OASiCnhC,oBAAkB,GATnD,mBASlCikC,EATkC,KASHD,EATG,OAUuChkC,oBAAkB,GAVzD,mBAUlCygC,EAVkC,KAUAD,EAVA,KAWnC8D,EAAe,uCAAG,4BAAA5mC,EAAA,+EAEKJ,EAAe,MAAOZ,EAAW,2BAAuB6jC,IAF7D,OAEZtiC,EAFY,OAGhBqiC,EAAyBriC,EAASR,KAAKglC,gBACvCtB,EAA0BljC,EAASR,KAAKilC,iBACxC0B,EAAanmC,EAASR,KAAKsC,MAAMlD,MACjCwnC,EAAYpmC,EAASR,KAAKsC,MAAMyE,KANhB,kDAShB5E,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BsF,QAAQC,IAAI,KAAM3C,SAXF,0DAAH,qDAcrB4C,qBAAU,WACNsjC,MACD,CAACL,EAA+BxD,IA3BM,MA6BmBzgC,mBAA2B,MA7B9C,mBA6BlC2jC,EA7BkC,KA6BVY,EA7BU,OA8BmBvkC,mBAAgC,MA9BnD,mBA8BlC8jC,EA9BkC,KA8BVU,EA9BU,OA+BmCxkC,oBAAkB,GA/BrD,mBA+BlCkkC,EA/BkC,KA+BFO,EA/BE,KAgCnC9D,EAA8B,SAAC+D,EAAmCC,GACpEF,GAAkC,GAClCD,EAA0BG,GAEpBJ,EADa,QAAnBI,EACgCvE,EAAsBsE,GACtBxD,EAAuBwD,KAM3D,OACI,eAAC91B,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,mBAArC,UACI,oBAAID,UAAWC,KAAE,4BAAjB,4BACA,uBAAMD,UAAWC,KAAE,gCAAnB,UAAqDwgC,EAArD,KAAkED,EAAlE,OACA,cAACrzB,EAAA,EAAD,IAEA,sBAAKnN,UAAWC,KAAE,2BAAlB,UACI,cAACs9B,GAAD,CACIiB,4BAA6BA,EAC7BP,sBAAuBA,EACvBE,yBAA0BA,EAC1BC,eAAgBA,EAChBE,iCAAkCA,EAClCD,oCAAqCA,IAEzC,cAAClxB,EAAA,EAAD,IACA,cAACwxB,GAAD,CACIH,4BAA6BA,EAC7BO,uBAAwBA,EACxBC,0BAA2BA,EAC3BZ,eAAgBA,EAChBE,iCAAkCA,EAClCD,oCAAqCA,OAI7C,cAACgD,GAAD,CACIU,+BAAgCA,EAChCH,sCAhCkC,WAC1CU,GAAkC,IAgC1Bd,uBAAwBA,EACxBG,uBAAwBA,EACxBG,8BAA+BA,EAC/BD,iCAAkCA,O,cClFlD,SAAS99B,GAAMzG,GACX,OAAO,cAAC,KAAD,aAAUmlC,UAAW,EAAG3hC,QAAQ,UAAaxD,IAIzC,SAASolC,KACpB,IAAMjlC,EAAWC,cACbpE,EAASqE,aAAY,SAACC,GAAD,OAAsBA,EAAM+kC,aAAN,UAC3C1mC,EAAU0B,aAAY,SAACC,GAAD,OAAsBA,EAAM+kC,aAAN,WAC5CjkC,EAAWf,aAAY,SAACC,GAAD,OAAsBA,EAAM+kC,aAAN,YAEjD,OACI,8BACI,cAACC,GAAA,EAAD,CACIC,aAAc,CACVC,SAAU,MACVC,WAAY,SAEhB/xB,KAAM1X,EACN0pC,iBAAkB,IAClB9xB,QAAS,kBAAMzT,EAASpE,GAAmB,KAC3C4C,QAASA,EARb,SASQ,cAAC,GAAD,CAAOiV,QAAS,kBAAMzT,EAASpE,GAAmB,KAASqF,SAAUA,EAArE,SACKzC,QCnBV,SAASgnC,KACpB,IAAMxlC,EAAWC,cACXwU,EAAWC,cAEX+wB,EAAY,uCAAG,WAAOC,GAAP,SAAA5nC,EAAA,+EAEPJ,EACF,OACAZ,EAAW,mDAA+C4oC,EAAqB3nC,MAApE,kBAAmF2nC,EAAqB1hC,OACnH,MALS,OAQbhE,EAAShE,EAAqB,CAC1B6c,MAAO,mBACPC,gBAAiB,8HACjBC,UAAU,EACVC,eAAe,EACfya,WAAY,UACZC,QAAS,SACTza,oBAAoB,KAExBrK,GAAQF,KAAK,qBAjBA,gDAoBb1O,EAAShE,EAAqB,CAC1B6c,MAAO,SACPC,gBAAiB,iCACjBC,UAAU,EACVid,iBAAkB,GAClBhd,eAAe,EACfya,WAAY,kBACZC,QAAS,IACTza,oBAAoB,KAExBrK,GAAQF,KAAK,qBA9BA,yDAAH,sDAsClB,OAJAtN,qBAAU,WACNqkC,EAAa5S,GAAwBpe,EAASE,WAC/C,CAACF,IAGA,qBAAKpQ,MAAO,CAAE0G,UAAW,SAAUvL,QAAS,IAA5C,SACI,cAACwL,GAAA,EAAD,CAAkB/G,KAAM,Q,8CCnD9Bof,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,MAC5B5e,SAAU,QALEue,CAQtBQ,MAMa,SAAS6hB,GAAoB9lC,GACxC,OACI,cAAC6kB,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,0BACCtkB,EAAM+lC,YAAc/lC,EAAM+lC,WACtBnZ,MAAK,SAACC,EAAOC,GAAR,OAAkBA,EAAMkZ,KAAOnZ,EAAMmZ,QAC1CnhC,KAAI,SAACyL,GACF,OACI,cAAC,GAAD,CAAiByU,MAAM,SAAvB,SAAiCzU,EAAK01B,eCrBlE,IAAMxiB,GAAkBC,cAAW,kBAC/B1kB,YAAa,CACTglB,KAAM,CACF7e,SAAU,GACV+gC,WAAY,SACZ,gBAAiB,CACb/gC,SAAU,GACV8e,WAAY,UAPJP,CAWtBQ,MAea,SAASiiB,GAAqBlmC,GAUzC,OACI,0BAAS0C,UAAWC,KAAC,qBAArB,UACI,oBAAID,UAAWC,KAAE,8BAAjB,SAAiD3C,EAAMgZ,QAEvD,cAAC2L,GAAA,EAAD,CAAgBrQ,UAAW8I,KAA3B,SACI,eAACwH,GAAA,EAAD,WACI,cAACkhB,GAAD,CAAqBC,WAAY/lC,EAAM+lC,aACvC,cAACjhB,GAAA,EAAD,UACI,eAACR,GAAA,EAAD,WACI,cAAC,GAAD,UAAkBtkB,EAAMmmC,qBACvBnmC,EAAM+lC,YAAc/lC,EAAM+lC,WACtBnZ,MAAK,SAACC,EAAOC,GAAR,OAAkBA,EAAMkZ,KAAOnZ,EAAMmZ,QAC1CnhC,KAAI,SAACyL,GACF,OACI,cAAC,GAAD,CAAiByU,MAAM,SAAvB,SAAiCzU,EAAK+kB,KAAO,IAAM/kB,EAAKgJ,kBAQpF,cAACvV,EAAA,EAAD,CAAQrB,UAAWC,KAAE,4BAA6BsB,QAAS,kBA7B/DjE,EAAMomC,6BAA6BpmC,EAAMgZ,OACzChZ,EAAMqmC,iCAAiCrmC,EAAMsmC,WAC7CtmC,EAAMumC,4BAA4BvmC,EAAM+lC,YACxC/lC,EAAMwmC,cAAcxmC,EAAMymC,iBAC1BzmC,EAAM0mC,2BAA0B,IAyBmDljC,QAAQ,YAAYQ,MAAM,UAAzG,qB,mCCtDNpF,GAAYC,aAAW,SAACC,GAAD,aACzBC,YAAa,CACTC,aAAW,GACPoG,SAAU,IACVlG,aAAc,GACdC,YAAa,IAHN,cAINL,EAAMM,YAAYC,KAAK,MAAQ,CAC5B+F,SAAU,KALP,cAOP,eAAgB,CACZjG,YAAa,IARV,QAoBJ,SAASwnC,GAAkB3mC,GACtC,IAAME,EAAUtB,KACVuB,EAAWC,cAFwD,EAIjDG,mBAAiB,GAJgC,mBAIlE80B,EAJkE,KAI5DuR,EAJ4D,OAKrDrmC,mBAAiB,GALoC,mBAKlE+Y,EALkE,KAK9DutB,EAL8D,OAMjDtmC,mBAAiB,GANgC,mBAMlEylC,EANkE,KAM5Dc,EAN4D,KAQnEC,EAAW,uCAAG,WAAOrlC,GAAP,mBAAAzD,EAAA,yDAChByD,EAAEkN,mBACCo3B,EAAO,GAFM,uBAGZ7lC,EAASlE,EAAoB,CAAE0C,QAAS,mCAAoCyC,SAAU,WACtFjB,EAASpE,GAAmB,IAJhB,8BAQOiE,EAAMgnC,yBAAyBxV,MAAK,SAAAyV,GAAU,OAAIA,EAAWjB,OAASA,KAR7E,wBAUZ7lC,EAASlE,EAAoB,CAAE0C,QAAS,kCAAmCyC,SAAU,WACrFjB,EAASpE,GAAmB,IAXhB,4CAgBRmrC,EAAsB,CACtB7R,OACA/b,KACA0sB,OACAmB,eAAgBnnC,EAAMonC,mBApBd,UAsBSvpC,EAAe,OAAQZ,EAAW,qBAAyBiqC,GAtBpE,QAsBR1oC,EAtBQ,QAuBR6oC,EAvBQ,aAuBoBrnC,EAAMgnC,2BAChBn4B,KAAtB,2BAAgCq4B,GAAhC,IAAqDpjC,GAAItF,EAASR,KAAK8F,MACvE9D,EAAMumC,4BAA4Bc,GAElClnC,EAASlE,EAAoB,CAAE0C,QAAS,iCAAkCyC,SAAU,aACpFjB,EAASpE,GAAmB,IA5BhB,mDA+BZoE,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAhChB,2DAAH,sDAoCjB,OACI,sBAAK2G,UAAWC,KAAC,kBAAjB,UACI,oBAAID,UAAWC,KAAE,2BAAjB,4BACA,uBAAM0M,SAAU,SAAC3N,GAAD,OAAOqlC,EAAYrlC,IAAnC,UACI,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAawQ,aAAc,EACrDhM,QAAQ,WAAWY,KAAK,QAAQb,MAAM,OAAO/H,KAAK,SAASk9B,WAAY,CAAEC,IAAK,IAAK2O,KAAM,SACzF7jC,SAAU,SAAC/B,GAAD,OAAOklC,EAAQW,WAAW7lC,EAAEE,OAAOD,SAASgC,UAAQ,IAElE,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAawQ,aAAc,EACrDhM,QAAQ,WAAWY,KAAK,QAAQb,MAAM,KAAK/H,KAAK,SAASk9B,WAAY,CAAEC,IAAK,IAAK2O,KAAM,SACvF7jC,SAAU,SAAC/B,GAAD,OAAOmlC,EAAMU,WAAW7lC,EAAEE,OAAOD,SAASgC,UAAQ,IAEhE,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAawQ,aAAc,EACrDhM,QAAQ,WAAWY,KAAK,QAAQb,MAAM,OAAO/H,KAAK,SAASk9B,WAAY,CAAEC,IAAK,KAC9El1B,SAAU,SAAC/B,GAAD,OAAOolC,EAAQjjC,SAASnC,EAAEE,OAAOD,SAASgC,UAAQ,IAEhE,uBAEA,cAACI,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,uBClFhB,IAAMpF,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTyoC,iBAAkB,CACdC,UAAW,SACXjoC,UAAW,GACXN,aAAc,IAElBsS,YAAY,aACRzB,SAAU,WACVd,IAAK,GACLwC,KAAM,MACNC,UAAW,mBACXzS,MAAO,IACP0S,gBAAiB,UACjB+1B,UAAW,KACX/nC,QAAS,IACRb,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,QACPU,QAAS,KAGjBuR,KAAM,CACFhG,UAAW,SACXrD,QAAS,OACTsJ,cAAe,SACfC,WAAY,UAEhBu2B,SAAS,aACLzoC,aAAc,GACdkG,SAAU,OACTtG,EAAMM,YAAYC,KAAK,MAAQ,CAC5B+F,SAAU,OACVF,SAAU,KAGlBlG,YAAY,aACRoG,SAAU,IACVlG,aAAc,IACbJ,EAAMM,YAAYC,KAAK,MAAQ,CAC5B+F,SAAU,KAGlBwiC,aAAc,CACV1oC,aAAc,IAElBmS,QAAS,CACLpS,MAAO,IACP4I,QAAS,OACTyJ,eAAgB,gBAChB9R,UAAW,IAEf+R,IAAK,CACDtS,MAAO,KAEX4oC,IAAK,CACD3oC,aAAc,IAElBwH,KAAM,CACFN,OAAQ,QACR4V,OAAQ,gBAgBL,SAAS8rB,GAAiB9nC,GACrC,IAAME,EAAUtB,KACVuB,EAAWC,cAFsD,EAIOG,mBAAyB,IAJhC,mBAIhEwnC,EAJgE,KAI/BC,EAJ+B,KAYvEzmC,qBAAU,YAPqC,WAC3C,IAAK,IAAIiJ,EAAI,EAAGA,EAAIxK,EAAMgnC,yBAAyB7lC,OAAQqJ,IAAK,CAC5D,IAAIy9B,EAAI,aAAOF,GACfE,EAAKp5B,MAAK,GACVm5B,EAAmC,aAAIC,KAI3CC,KACD,IAdoE,MAgBW3nC,mBAAiB,GAhB5B,mBAgBhE4nC,EAhBgE,KAgB7BC,EAhB6B,OAiBO7nC,mBAAiB,GAjBxB,mBAiBhE8nC,EAjBgE,KAiB/BC,EAjB+B,OAkBW/nC,mBAAiB,GAlB5B,mBAkBhEgoC,EAlBgE,KAkB7BC,EAlB6B,OAmBHjoC,mBAAiB,GAnBd,mBAmBhEkoC,EAnBgE,KAmBpCC,EAnBoC,KAoBjEC,EAAmB,uCAAG,WAAOjnC,GAAP,qBAAAzD,EAAA,6DACxByD,EAAEkN,iBACEg6B,EAAoB,CACpBvT,KAAM8S,EACN7uB,GAAI+uB,EACJrC,KAAMuC,GALc,SAOH1qC,EAAe,OAAQZ,EAAW,oCAAgCwrC,GAA8BG,GAP7F,OAOpBpqC,EAPoB,OASpBqqC,EAA2B7oC,EAAMgnC,yBAAyB8B,WAAU,SAAA7B,GAAU,OAAIA,EAAWnjC,KAAO2kC,MACpGpB,EAAwBjpC,KAAK2qC,MAAM3qC,KAAKC,UAAU2B,EAAMgnC,4BACtC6B,GAAtB,eAAuDrqC,EAASR,MAChEgC,EAAMumC,4BAA4Bc,GAClClnC,EAASlE,EAAoB,CAAE0C,QAAS,uBAAwByC,SAAU,aAC1EjB,EAASpE,GAAmB,IAC5BiE,EAAMgpC,kBAAiB,GAfC,4CAAH,sDAkBnBC,EAAoB,uCAAG,WAAOC,GAAP,eAAAjrC,EAAA,0DACrBirC,EADqB,0CAGXrrC,EAAe,OAAQZ,EAAW,oCAAgCisC,IAHvD,OAIb7B,EAAwBrnC,EAAMgnC,yBAAyBlb,QAAO,SAAAmb,GAAU,OAAIA,EAAWnjC,IAAMolC,KACjGlpC,EAAMumC,4BAA4Bc,GAClClnC,EAASlE,EAAoB,CAAE0C,QAAS,uBAAwByC,SAAU,aAC1EjB,EAASpE,GAAmB,IAC5BiE,EAAMgpC,kBAAiB,GARN,kDAWjB7oC,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAZX,gCAgBrBoE,EAASlE,EAAoB,CAAE0C,QAAS,oCAAqCyC,SAAU,WACvFjB,EAASpE,GAAmB,IAjBP,0DAAH,sDA+B1B,OACI,cAAC0X,GAAA,EAAD,CACIC,KAAM1T,EAAMmpC,aACZv1B,QAAS,kBAAM5T,EAAMopC,iBAAgB,IACrCv1B,sBAAoB,EACpBC,kBAAmBC,KACnBC,cAAe,CACXC,QAAS,KAEbvR,UAAWxC,EAAQsnC,iBARvB,SAUI,cAACtzB,GAAA,EAAD,CAAMC,GAAInU,EAAMmpC,aAAhB,SACI,cAAC/0B,GAAA,EAAD,CAAK1R,UAAWxC,EAAQsR,YAAxB,SACI,cAAC6C,GAAA,EAAD,UACI,sBAAK3R,UAAWxC,EAAQgR,KAAxB,UACI,6BAAKlR,EAAMgZ,QACX,mBAAGtW,UAAWxC,EAAQynC,SAAtB,SAAiC3nC,EAAMsmC,YAEvC,cAAC+C,GAAA,EAAD,CAAMC,WAAS,EAACztB,QAAS,EAAzB,SACK7b,EAAMgnC,0BAA4BhnC,EAAMgnC,yBACpCpa,MAAK,SAACC,EAAOC,GAAR,OAAkBA,EAAMkZ,KAAOnZ,EAAMmZ,QAC1CnhC,KAAI,SAACoiC,EAAYnxB,GACd,OACI,eAACuzB,GAAA,EAAD,CAA0B/4B,MAAI,EAACi5B,GAAI,EAAGC,GAAI,EAA1C,UACI,qBAAK9mC,UAAWxC,EAAQ0nC,aAAxB,SAAuCX,EAAWjB,OAClD,cAAC1iC,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAOslC,EAAW5R,KACzD7xB,QAAQ,WAAWY,KAAK,QAAQb,MAAM,OAAO/H,KAAK,SAASk9B,WAAY,CAAEC,IAAK,OAElF,cAACr1B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAa2C,MAAOslC,EAAW3tB,GACzD9V,QAAQ,WAAWY,KAAK,QAAQb,MAAM,KAAK/H,KAAK,SAASk9B,WAAY,CAAEC,IAAK,OAEhF,sBAAKj2B,UAAWxC,EAAQ2nC,IAAxB,UACI,cAAC,KAAD,CAAUnlC,UAAWxC,EAAQwG,KACzBzC,QAAS,kBA3CpC,SAAC6R,EAAekwB,EAAcliC,EAAYuxB,EAAc/b,GAC7E,IAAImwB,EAAO,aAAO1B,GAClB0B,EAAQ3zB,IAAU2zB,EAAQ3zB,GAC1BkyB,EAAmC,aAAIyB,IACvCjB,EAAqCxC,GACrC0C,EAA8B5kC,GAC9BskC,EAAqC/S,GACrCiT,EAAmChvB,GAoC4BowB,CAAiB5zB,EAAOmxB,EAAWjB,KAAMiB,EAAWnjC,GAAImjC,EAAW5R,KAAM4R,EAAW3tB,OAEvG,cAAC,KAAD,CAAY5W,UAAWxC,EAAQwG,KAC3BzC,QAAS,kBAAMglC,EAAqBhC,EAAWnjC,UAGtDikC,EAAgCjyB,IAC7B,uBAAMzG,SAAU,SAAC3N,GAAD,OAAOinC,EAAoBjnC,IAA3C,UACI,cAAC4B,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAawQ,aAAc24B,EACrD3kC,QAAQ,WAAWY,KAAK,QAAQb,MAAM,OAAO/H,KAAK,SAClDiI,SAAU,SAAC/B,GAAD,OAAO0mC,EAAqCb,WAAW7lC,EAAEE,OAAOD,SAC1E+2B,WAAY,CAAEC,IAAK,IAAK2O,KAAM,SAAW3jC,UAAQ,IAErD,cAACL,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAawQ,aAAc64B,EACrD7kC,QAAQ,WAAWY,KAAK,QAAQb,MAAM,KAAK/H,KAAK,SAChDiI,SAAU,SAAC/B,GAAD,OAAO4mC,EAAmCf,WAAW7lC,EAAEE,OAAOD,SACxE+2B,WAAY,CAAEC,IAAK,IAAK2O,KAAM,SAAW3jC,UAAQ,IAErD,cAACI,EAAA,EAAD,CAAQvI,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAAhD,uBA5BDijC,EAAWnjC,SAqCrC9D,EAAMgnC,yBAAyB7lC,QAAU,GACtC,cAACwlC,GAAD,CACIS,kBAAmBpnC,EAAMymC,WACzBO,yBAA0BhnC,EAAMgnC,yBAChCT,4BAA6BvmC,EAAMumC,8BAI3C,sBAAK7jC,UAAWxC,EAAQmR,QAAxB,UACI,cAACtN,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAKtN,QAAS,kBAAMjE,EAAMopC,iBAAgB,IAAQ5lC,QAAQ,YAAYQ,MAAM,YAAvG,oBACA,cAACD,EAAA,EAAD,CAAQrB,UAAWxC,EAAQqR,IAAKtN,QAAS,kBAAMjE,EAAMopC,iBAAgB,IAAQ5tC,KAAK,SAASgI,QAAQ,YAAYQ,MAAM,UAArH,gCCtNjB,SAAS2lC,KACpB,IAAMxpC,EAAWC,cADsB,EAEyBG,mBAAuC,MAFhE,mBAEhCymC,EAFgC,KAENT,EAFM,OAG2BhmC,mBAAiB,IAH5C,mBAGhCqpC,EAHgC,KAGLxD,EAHK,OAImC7lC,mBAAiB,IAJpD,mBAIhCspC,EAJgC,KAIDxD,EAJC,OAKH9lC,mBAAiB,IALd,mBAKhCkmC,EALgC,KAKpBD,EALoB,OAOqBjmC,oBAAkB,GAPvC,mBAOhCupC,EAPgC,KAORpD,EAPQ,OAQGnmC,oBAAkB,GARrB,mBAQhCwpC,EARgC,KAQjBf,EARiB,OAUKzoC,qBAVL,mBAUhCypC,EAVgC,KAUhBC,EAVgB,OAWK1pC,qBAXL,mBAWhC2kB,EAXgC,KAWhBglB,EAXgB,OAYC3pC,qBAZD,mBAYhC4pC,EAZgC,KAYlBC,EAZkB,OAaW7pC,qBAbX,mBAahCilB,EAbgC,KAab6kB,EAba,OAcyB9pC,qBAdzB,oBAchC+pC,GAdgC,MAcNC,GAdM,SAeqChqC,qBAfrC,qBAehCiqC,GAfgC,MAeAC,GAfA,MAgBjCC,GAAuB,uCAAG,sBAAAzsC,EAAA,+EAElBJ,EAAe,MAAOZ,EAAc,0CACrCkxB,MAAK,SAAC3vB,GAAD,OAAcyrC,EAAkBzrC,EAASR,SAH3B,uBAIlBH,EAAe,MAAOZ,EAAc,4CACrCkxB,MAAK,SAAC3vB,GAAD,OAAc0rC,EAAkB1rC,EAASR,SAL3B,uBAMlBH,EAAe,MAAOZ,EAAc,0CACrCkxB,MAAK,SAAC3vB,GAAD,OAAc4rC,EAAgB5rC,EAASR,SAPzB,uBAQlBH,EAAe,MAAOZ,EAAc,+CACrCkxB,MAAK,SAAC3vB,GAAD,OAAc6rC,EAAqB7rC,EAASR,SAT9B,wBAUlBH,EAAe,MAAOZ,EAAc,sDACrCkxB,MAAK,SAAC3vB,GAAD,OAAc+rC,GAA4B/rC,EAASR,SAXrC,yBAYlBH,EAAe,MAAOZ,EAAc,4DACrCkxB,MAAK,SAAC3vB,GAAD,OAAcisC,GAAkCjsC,EAASR,SAb3C,0DAgBxBmC,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAjBJ,0DAAH,qDA2B7B,OAPAwF,qBAAU,WACNmpC,OACD,IACHnpC,qBAAU,YACLuoC,GAA0BC,GAAiBW,MAA6B1B,GAAiB,KAC3F,CAACc,IAGA,eAAC36B,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,gBAArC,UACI,oBAAID,UAAWC,KAAE,yBAAjB,oCAECqnC,GACG,cAAC9D,GAAD,CACIltB,MAAM,oBACNstB,UAAU,qFACVH,mBAAmB,iBACnBJ,WAAYiE,EACZ5D,6BAA8BA,EAC9BC,iCAAkCA,EAClCK,0BAA2BA,EAC3BH,4BAA6BA,EAC7BE,WAAW,eACXD,cAAeA,IAGvB,cAAC32B,EAAA,EAAD,IAECqV,GACG,cAACghB,GAAD,CACIltB,MAAM,mBACNstB,UAAU,wEACVH,mBAAmB,uBACnBJ,WAAY7gB,EACZkhB,6BAA8BA,EAC9BC,iCAAkCA,EAClCK,0BAA2BA,EAC3BH,4BAA6BA,EAC7BE,WAAW,iBACXD,cAAeA,IAGvB,cAAC32B,EAAA,EAAD,IAECs6B,GACG,cAACjE,GAAD,CACIltB,MAAM,eACNstB,UAAU,+CACVH,mBAAmB,uBACnBJ,WAAYoE,EACZ/D,6BAA8BA,EAC9BC,iCAAkCA,EAClCK,0BAA2BA,EAC3BH,4BAA6BA,EAC7BE,WAAW,eACXD,cAAeA,IAGvB,cAAC32B,EAAA,EAAD,IAEC2V,GACG,cAAC0gB,GAAD,CACIltB,MAAM,sBACNstB,UAAU,4CACVH,mBAAmB,kBACnBJ,WAAYvgB,EACZ4gB,6BAA8BA,EAC9BC,iCAAkCA,EAClCK,0BAA2BA,EAC3BH,4BAA6BA,EAC7BE,WAAW,oBACXD,cAAeA,IAGvB,cAAC32B,EAAA,EAAD,IAECy6B,IACG,cAACpE,GAAD,CACIltB,MAAM,4BACNstB,UAAU,wEACVH,mBAAmB,aACnBJ,WAAYuE,GACZlE,6BAA8BA,EAC9BC,iCAAkCA,EAClCK,0BAA2BA,EAC3BH,4BAA6BA,EAC7BE,WAAW,2BACXD,cAAeA,IAGvB,cAAC32B,EAAA,EAAD,IAEC26B,IACG,cAACtE,GAAD,CACIltB,MAAM,+BACNstB,UAAU,sGACVH,mBAAmB,aACnBJ,WAAYyE,GACZpE,6BAA8BA,EAC9BC,iCAAkCA,EAClCK,0BAA2BA,EAC3BH,4BAA6BA,EAC7BE,WAAW,iCACXD,cAAeA,IAKtBQ,GACG,cAACc,GAAD,CACI9uB,MAAO4wB,EACPtD,UAAWuD,EACX7C,yBAA0BA,EAC1BT,4BAA6BA,EAC7B4C,aAAcW,EACdV,gBAAiB1C,EACjBD,WAAYA,EACZuC,iBAAkBA,O,yBCjKvB,SAAS2B,KAEpB,OACI,eAACx7B,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,cAArC,UACI,6DACA,gEACA,kDACA,u5CAEA,wFACA,0FAEA,2JACA,+BACI,oBAAIioC,aAAY,EAAhB,6LACA,oBAAIA,aAAY,EAAhB,gEACA,oBAAIA,aAAY,EAAhB,8HAEJ,sEAEA,kmBACA,+BACI,oBAAIA,aAAY,EAAhB,8DACA,oBAAIA,aAAY,EAAhB,8BACA,oBAAIA,aAAY,EAAhB,yCACA,oBAAIA,aAAY,EAAhB,kDACA,oBAAIA,aAAY,EAAhB,oFACA,oBAAIA,aAAY,EAAhB,wKAEJ,qbACA,+BACI,oBAAIA,aAAY,EAAhB,oCACA,oBAAIA,aAAY,EAAhB,qDACA,oBAAIA,aAAY,EAAhB,sCACA,oBAAIA,aAAY,EAAhB,uFACA,oBAAIA,aAAY,EAAhB,+DACA,oBAAIA,aAAY,EAAhB,gGAEJ,gTAEA,22BAEA,wjBAEA,0DAEA,ycAEA,kEAEA,8kBAEA,0GAA4E,mBAAGhiC,KAAK,2CAAR,sDAA5E,o2BAGA,+TAAuR,mBAAGA,KAAK,gCAAR,0CAAvR,2EAAua,mBAAGA,KAAK,oDAAR,+DAAva,OAEA,mDAEA,6xBAEA,6EAEA,iQACA,+BACI,oBAAIgiC,aAAY,EAAhB,8JACA,oBAAIA,aAAY,EAAhB,8GACA,oBAAIA,aAAY,EAAhB,iEACA,oBAAIA,aAAY,EAAhB,wJACA,oBAAIA,aAAY,EAAhB,wIACA,oBAAIA,aAAY,EAAhB,yQAEJ,4dAEA,yDAEA,qIACA,+BACI,oBAAIA,aAAY,EAAhB,uKACA,oBAAIA,aAAY,EAAhB,6GACA,oBAAIA,aAAY,EAAhB,iTACA,oBAAIA,aAAY,EAAhB,6SACA,oBAAIA,aAAY,EAAhB,2SACA,oBAAIA,aAAY,EAAhB,0KACA,oBAAIA,aAAY,EAAhB,kGACA,oBAAIA,aAAY,EAAhB,kXACA,oBAAIA,aAAY,EAAhB,4aACA,oBAAIA,aAAY,EAAhB,4FACA,oBAAIA,aAAY,EAAhB,6TACA,oBAAIA,aAAY,EAAhB,+SACA,oBAAIA,aAAY,EAAhB,0JAEJ,6FACA,+BACI,oBAAIA,aAAY,EAAhB,oQACA,oBAAIA,aAAY,EAAhB,iDACA,oBAAIA,aAAY,EAAhB,6GACA,oBAAIA,aAAY,EAAhB,6FACA,oBAAIA,aAAY,EAAhB,0JAEJ,gXACA,kEACA,ixBAEA,wnBACA,6EACA,isBAEA,sDAEA,qtBAEA,wbAEA,yCAEA,8pBAEA,kDAEA,qUAEA,iEAEA,27BACA,6DACA,4HACA,+BACI,oBAAIA,aAAY,EAAhB,yNACA,oBAAIA,aAAY,EAAhB,gIACA,oBAAIA,aAAY,EAAhB,qmBACA,oBAAIA,aAAY,EAAhB,oFACA,oBAAIA,aAAY,EAAhB,itBACA,oBAAIA,aAAY,EAAhB,mRACA,oBAAIA,aAAY,EAAhB,6XACA,oBAAIA,aAAY,EAAhB,2QACA,oBAAIA,aAAY,EAAhB,qHACA,oBAAIA,aAAY,EAAhB,2KAEJ,2IAA6G,mBAAGhiC,KAAK,iDAAR,kCAA7G,iTAEA,0HAEA,mmBACA,+BACI,oBAAIgiC,aAAY,EAAhB,8QACA,oBAAIA,aAAY,EAAhB,6DAEJ,6uBAEA,iDAEA,i6BAEA,oDAEA,0VACA,+BACI,oBAAIA,aAAY,EAAhB,uUACA,oBAAIA,aAAY,EAAhB,2EACA,oBAAIA,aAAY,EAAhB,8WACA,oBAAIA,aAAY,EAAhB,mJACA,oBAAIA,aAAY,EAAhB,oHACA,oBAAIA,aAAY,EAAhB,oKACA,oBAAIA,aAAY,EAAhB,6HACA,oBAAIA,aAAY,EAAhB,oPACA,oBAAIA,aAAY,EAAhB,mOAEJ,wDACA,wyBAEA,uWACA,wDACA,wrCAEA,2DACA,6hCAGA,8DAEA,4mCAGA,uFAEA,8wBAEA,udAEA,uSAEA,yJACA,8BACI,kDAAwB,uBACxB,8CAAoB,uBACpB,qDAA2B,uBAC3B,oCAAU,uBACV,6DAGJ,gEAEA,mHACA,+BACI,oBAAIA,aAAY,EAAhB,4IACA,qBAAIA,aAAY,EAAhB,mJACI,+BACI,oBAAIA,aAAY,EAAhB,+FACA,oBAAIA,aAAY,EAAhB,yFACA,oBAAIA,aAAY,EAAhB,gGACA,oBAAIA,aAAY,EAAhB,iGACA,oBAAIA,aAAY,EAAhB,qGAGR,qBAAIA,aAAY,EAAhB,gLACI,+BACI,oBAAIA,aAAY,EAAhB,oGACA,oBAAIA,aAAY,EAAhB,mRACA,oBAAIA,aAAY,EAAhB,iIAGR,oBAAIA,aAAY,EAAhB,4JAEJ,kFAAoD,mBAAGhiC,KAAK,iDAAR,kCAApD,8PAEA,2IAEA,oI,yBCpOG,SAASiiC,KAEpB,OACI,eAAC17B,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,mBAArC,UACI,sDACA,iEACA,gEACA,ugBACA,+RACA,gXACA,unBACA,6DACA,oZACA,mSACA,4EACA,oZACA,yDACA,+BACI,oBAAIioC,aAAY,EAAhB,sFACA,oBAAIA,aAAY,EAAhB,wJAEJ,2mBACA,o3BACA,iSACA,8DACA,8dACA,uUACA,+BACI,oBAAIA,aAAY,EAAhB,2IACA,oBAAIA,aAAY,EAAhB,qHACA,oBAAIA,aAAY,EAAhB,wMACA,oBAAIA,aAAY,EAAhB,0RACA,oBAAIA,aAAY,EAAhB,oIAEJ,8CACA,+BACI,oBAAIA,aAAY,EAAhB,4DACA,oBAAIA,aAAY,EAAhB,iIACA,oBAAIA,aAAY,EAAhB,sIAEJ,2KACA,2oBACA,4CACA,yhBACA,iDACA,8JACA,+BACI,oBAAIA,aAAY,EAAhB,wOACA,oBAAIA,aAAY,EAAhB,+MACA,oBAAIA,aAAY,EAAhB,sKACA,oBAAIA,aAAY,EAAhB,qPACA,oBAAIA,aAAY,EAAhB,mOACA,oBAAIA,aAAY,EAAhB,kOAEJ,gEACA,+BACI,oBAAIA,aAAY,EAAhB,kPACA,oBAAIA,aAAY,EAAhB,0LACA,oBAAIA,aAAY,EAAhB,mKACA,oBAAIA,aAAY,EAAhB,yGACA,oBAAIA,aAAY,EAAhB,uIACA,oBAAIA,aAAY,EAAhB,0NACA,oBAAIA,aAAY,EAAhB,0GACA,oBAAIA,aAAY,EAAhB,uFAEJ,oDACA,2bACA,6HACA,kcACA,gEACA,+BACI,oBAAIA,aAAY,EAAhB,0PACA,oBAAIA,aAAY,EAAhB,2FAEJ,sRACA,4LACA,yEACA,sDACA,+BACI,oBAAIA,aAAY,EAAhB,0GACA,oBAAIA,aAAY,EAAhB,kbACA,oBAAIA,aAAY,EAAhB,4NACA,oBAAIA,aAAY,EAAhB,2JACA,oBAAIA,aAAY,EAAhB,wHAEJ,0mBACA,meACA,mDACA,iUACA,+BACI,oBAAIA,aAAY,EAAhB,oKACA,oBAAIA,aAAY,EAAhB,+KACA,oBAAIA,aAAY,EAAhB,yIACA,oBAAIA,aAAY,EAAhB,0SACA,oBAAIA,aAAY,EAAhB,8CACA,oBAAIA,aAAY,EAAhB,4FACA,oBAAIA,aAAY,EAAhB,mIACA,oBAAIA,aAAY,EAAhB,mHACA,oBAAIA,aAAY,EAAhB,sIACA,oBAAIA,aAAY,EAAhB,yIAEJ,wDACA,uPACA,gEACA,6eACA,+rBACA,wDACA,yRACA,sFACA,kPACA,kFACA,wSACA,4GACA,+BACI,oBAAIA,aAAY,EAAhB,oGACA,oBAAIA,aAAY,EAAhB,sHACA,oBAAIA,aAAY,EAAhB,yJAEJ,gTACA,+BACI,oBAAIA,aAAY,EAAhB,yEACA,oBAAIA,aAAY,EAAhB,0KACA,oBAAIA,aAAY,EAAhB,sEACA,oBAAIA,aAAY,EAAhB,6JAEJ,+MACA,wMACA,4IACA,wDACA,6mBACA,yDACA,ohBACA,0DACA,+3BACA,qjCACA,kQACA,uIACA,yDACA,o1BACA,sIACA,iDACA,uuBACA,gEACA,6bACA,6aACA,6CACA,kaACA,mEACA,mRACA,yDACA,2XACA,iWACA,kDACA,sUACA,4DACA,wGACA,wOC1JG,SAASE,KACpB,IAAIz9B,EAAoClQ,EAAU,iBAKlD,OAHAoE,qBAAU,WACNwN,GAAQF,KAAR,wBAA8BxB,MAC/B,IAEC,wB,wBCaFmW,GAAkBC,cAAW,SAAC3kB,GAAD,OAC/BC,YAAa,CACT4kB,KAAM,CACFhS,gBAAiB7S,EAAM8S,QAAQgS,OAAOC,MACtC7f,MAAOlF,EAAM8S,QAAQgS,OAAOE,OAEhCC,KAAM,CACF7e,SAAU,QAPEue,CAUtBQ,MAEIrlB,GAAYC,aAAW,SAACC,GAAD,OACzBC,YAAa,CACTwS,IAAK,CACD1J,QAAS,QACTzB,OAAQ,YACR,UAAW,CACP2V,OAAQ,sBAGhB/c,YAAY,aACRC,MAAO,IACPE,YAAa,GACbD,aAAc,GACd,eAAgB,CACZC,YAAa,IAEhBL,EAAMM,YAAYC,KAAK,MAAQ,CAC5BJ,MAAO,OACPE,YAAa,SAMvB+kB,GAAiBT,cAAW,SAAC3kB,GAAD,OAC9BC,YAAa,CACTolB,KAAM,CACF,qBAAsB,CAClBxS,gBAAiB7S,EAAM8S,QAAQwS,OAAOC,YAJ/BZ,CAQrBa,MACa,SAASymB,KACpB,IAAM7qC,EAAUtB,KAD0B,EAEV2B,qBAFU,mBAEnC2vB,EAFmC,KAEzBC,EAFyB,OAGN5vB,mBAAiB,GAHX,mBAGnC6vB,EAHmC,KAGvBC,EAHuB,OAIc9vB,oBAAkB,GAJhC,mBAInC+vB,EAJmC,KAIbC,EAJa,OAKAhwB,mBAAwB,MALxB,mBAKnCyqC,EALmC,KAKpBC,EALoB,OAME1qC,oBAAkB,GANpB,mBAMnCO,EANmC,KAMnBC,EANmB,OAOAR,oBAAkB,GAPlB,mBAOnC2qC,EAPmC,KAOpBC,EAPoB,OAQF5qC,mBAAiB,IARf,mBAQnC6qC,EARmC,KAQrBC,EARqB,KAUpCh+B,EAAgBlQ,EAAU,iBAC1BgD,EAAWC,cACXY,EAAiBC,iBAA8B,MAZX,SAc3BuvB,EAd2B,oFAc1C,WAAwBJ,EAAoB4a,EAA8BM,EAA8B1qC,GAAxG,mBAAA3C,EAAA,yDACS+sC,EADT,wDAGSM,GAAqBvqC,GAAkB,GAHhD,kBAM6BlD,EACjB,MACAZ,EAAW,+BAA2B+tC,EAA3B,uBAAuD5a,EAAvD,kDAA2GxvB,GACtH,MATZ,OAMYpC,EANZ,QAWYkyB,EAXZ,aAWkClyB,EAASR,OAGnBmD,OAAS,GAAKovB,GAAwB,GAASA,GAAwB,GACpEI,EAAJ,IAAfP,EAAyCM,EAAwCR,EAASU,OAAOF,GACjGP,EAAYQ,GAhBpB,kDAmBQtvB,QAAQiF,MAAM,KAAM3H,SACpBwB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BovC,GAAiB,GACjBE,EAAgB,KAAM1sC,SAvB9B,yBA0BQoC,GAAkB,GA1B1B,8EAd0C,kEA4C1C,gCAAA9C,EAAA,6DACI8C,GAAkB,GADtB,kBAI6BlD,EAAe,MAAOZ,EAAW,uBAAmBoQ,GAAiB,MAJlG,cAIY7O,EAJZ,OAKcwsC,EALd,UAK8BxsC,EAASR,KAAKkE,SAASsvB,MAAK,SAAC3b,GAAD,OAAmBA,EAAQjD,kBALrF,aAK8B,EAAkEzQ,cACxF8oC,EAAiBD,GANzB,kBAOeA,GAPf,kCAUQ3pC,QAAQiF,MAAM,KAAM3H,SACpBwB,EAASlE,EAAoB,CAAE0C,QAAS,KAAMA,QAASyC,SAAU,WACjEjB,EAASpE,GAAmB,IAC5BovC,GAAiB,GACjBE,EAAgB,KAAM1sC,SAd9B,yBAiBQoC,GAAkB,GAjB1B,8EA5C0C,sBAiE1C,IAAM+vB,EAAiB,uCAAG,WAAOlwB,GAAP,SAAA3C,EAAA,sDAClB+C,EAAeuB,SACfC,aAAaxB,EAAeuB,SAGhCvB,EAAeuB,QAAUE,YAAW,WAChC4tB,EAAc,GACdG,EAAS,EAAGwa,GAAe,EAAMpqC,KAClC,KARmB,2CAAH,sDAWjBqsB,EAAW,WACbje,OAAOvB,SAAS,CACZwB,IAAK,EACLC,SAAU,YAkBlB,OAdA3N,qBAAU,WACNivB,EAASJ,EAAY4a,GAAe,EAAM,MAC3C,CAAC5a,IAEJ7uB,qBAAU,YAvFgC,2CAwFtCmW,GACKyW,MAAK,SAAC6c,GACCA,GACAxa,EAASJ,EAAY4a,GAAe,EAAO,SAIxD,IAECE,EAEI,cAAC/7B,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,oBAArC,SACI,oBAAID,UAAWC,KAAE,6BAAjB,SAAiDyoC,GAA8B,gEAGhFtqC,EAEH,cAACqO,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,oBAArC,SACI,qBAAKD,UAAWC,KAAE,8BAAlB,SACI,cAACsI,GAAD,CAAW7G,KAAK,MAAM2L,SAAS,eAInCi7B,EAUJ,eAAC77B,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,oBAArC,UACI,qBAAKD,UAAWC,KAAE,2BAAlB,SACI,wBAAOD,UAAWC,KAAE,8BAApB,UACI,cAAC,KAAD,CAAYD,UAAWC,KAAE,oCACzB,cAACW,EAAA,EAAD,CAAWZ,UAAWxC,EAAQlB,YAAauE,MAAM,SAAS/H,KAAK,OAAOiI,SAAU,SAAC/B,GAAD,OAAOovB,EAAkBpvB,EAAEE,OAAOD,MAAQ,YAGjIuuB,GACG,cAACvL,GAAA,EAAD,CAAgBrQ,UAAW8I,KAA3B,SACI,eAACwH,GAAA,EAAD,CAAOif,aAAW,mBAAlB,UACI,cAAChf,GAAA,EAAD,UACI,eAACP,GAAA,EAAD,WACI,cAAC,GAAD,sBACA,cAAC,GAAD,CAAiBS,MAAM,SAAvB,0BACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,wBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sCACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,oBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,sBACA,cAAC,GAAD,CAAiBA,MAAM,SAAvB,2BAGR,cAACD,GAAA,EAAD,UACKoL,GAAYA,EAASrrB,KAAI,SAACsoB,EAAerX,GAAhB,yCACtB,eAAC,GAAD,WACI,eAAC,GAAD,CAAiBxB,UAAU,KAAK8Y,MAAM,MAAtC,cAA6C,cAAC,KAAD,CAAS9T,GAAE,wBAAmB6T,EAASrpB,IAAMG,QAASgpB,EAAtD,SAAiEE,EAAS7O,SAAvH,OACA,cAAC,GAAD,CAAiByG,MAAM,SAAvB,SAAiC1d,GAAc,OAAC8lB,QAAD,IAACA,OAAD,EAACA,EAAU5O,eAAe,GAAGxhB,cAC5E,cAAC,GAAD,CAAiBgoB,MAAM,SAAvB,gBAAiCoI,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAU5O,gBAAuB,OAAR4O,QAAQ,IAARA,OAAA,EAAAA,EAAU5O,eAAepd,QAAS,GAAGrE,kBAC/F,cAAC,GAAD,CAAiBioB,MAAM,SAAvB,SAAiCoI,EAAStN,SAAW,IAAMsN,EAAStN,SAAW,KAC/E,cAAC,GAAD,CAAiBkF,MAAM,SAAvB,SAAiCoI,EAAS3O,yBAAgE,IAArC2O,EAAS3O,yBAAiC2O,EAAS3O,wBAA0B,eAClJ,eAAC,GAAD,CAAiBuG,MAAM,SAAvB,cAAkCoI,EAASE,WAC3C,cAAC,GAAD,CAAiBtI,MAAM,SAAvB,SACI,cAAC,KAAD,CAASzL,GAAE,uBAAkB6T,EAAS/gB,kBAAkB9P,QAAU2H,QAASgpB,EAA3E,UACK,UAAAE,EAAS/gB,kBAAkBxP,YAA3B,eAAiCqG,WAAY,KAA7C,UAAmDkqB,EAAS/gB,kBAAkBxP,YAA9E,aAAmD,EAAiCuG,cAG7F,eAAC,GAAD,CAAiB4hB,MAAM,SAAvB,UACKoI,EAAS5gB,oBAAoBpL,OAAS,GACnC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAAtF,aAAkB,EAAwE7E,QAAU2H,QAASgpB,EAAxH,UACK,UAAAE,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApE,mBAAwEvE,YAAxE,eAA8EqG,WAAY,KAA1F,UAAgGkqB,EAAS5gB,qBAAoB,UAAA4gB,EAAS5gB,2BAAT,eAA8BpL,QAAS,UAApK,iBAAgG,EAAwEvE,YAAxK,aAAgG,EAA8EuG,YAG9I,IAAxCgqB,EAAS5gB,oBAAoBpL,QAC1B,8DAGR,eAAC,GAAD,CAAiB4jB,MAAM,SAAvB,UACKoI,EAASre,mBAAmB3N,OAAS,GAClC,cAAC,KAAD,CAASmY,GAAE,iCAAkB6T,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UAApF,aAAkB,EAAsE7E,QAAU2H,QAASgpB,EAAtH,mBACKE,EAASre,oBAAmB,UAAAqe,EAASre,0BAAT,eAA6B3N,QAAS,UADvE,iBACK,EAAsEvE,YAD3E,aACK,EAA4EqG,YAG7C,IAAvCkqB,EAASre,mBAAmB3N,QACzB,gEA7BSgsB,EAASrpB,cAuCjDwsB,GAAwBJ,GACrB,cAACnsB,EAAA,EAAD,CAAQC,MAAM,UAAUR,QAAQ,WAAWd,UAAWxC,EAAQqR,IACtDtN,QAAS,kBAAMosB,EAAcD,EAAa,IADlD,wBAMFF,GACE,oBAAIxtB,UAAWC,KAAE,6BAAjB,6DAhFR,cAACwM,EAAA,EAAD,CAAW/J,SAAS,KAAK1C,UAAWC,KAAC,oBAArC,SACI,oBAAID,UAAWC,KAAE,6BAAjB,qDC/IT,IAAMoM,GAAUw8B,MAER,SAASC,KACpB,IAAMrrC,EAAWC,cADS,EAEgBG,oBAAS,GAFzB,mBAEnBsY,EAFmB,KAEJD,EAFI,OAGcrY,oBAAkB,GAHhC,mBAGnBwY,EAHmB,KAGLD,EAHK,KAKpB2yB,EAAgB,uCAAG,4BAAAxtC,EAAA,sEACF2jC,KADE,OACjBrmC,EADiB,OAErB4E,EAAS7E,EAAoBC,IAFR,2CAAH,qDAQtB,OAJAgG,qBAAU,WACNkqC,MACD,IAGC,cAAC,IAAD,CAAQ18B,QAASA,GAAjB,SACI,gCAEI,cAAC4O,GAAD,CAAQ9E,cAAeA,EAAeE,aAAcA,EAAcD,gBAAiBA,IACnF,cAACssB,GAAD,IAEA,eAAC,IAAD,WACI,cAAC,IAAD,CAAO7B,KAAK,IAAImI,OAAK,EAArB,SACI,cAACZ,GAAD,MAEJ,cAAC,IAAD,CAAOvH,KAAK,gBAAZ,SACI,cAAChqB,GAAD,MAEJ,cAAC,IAAD,CAAOgqB,KAAK,SAAZ,SACI,cAACtrB,GAAD,CAAOW,iBAAkBA,EAAkBC,cAAeA,EAAeE,aAAcA,EAAcD,gBAAiBA,MAE1H,cAACuqB,GAAD,CAAcE,KAAK,aAAa1qB,cAAeA,EAA/C,SACI,cAACtB,GAAD,MAEJ,cAAC8rB,GAAD,CAAcE,KAAK,eAAe1qB,cAAeA,EAAjD,SACI,cAACulB,GAAD,MAEJ,cAAC,IAAD,CAAOmF,KAAM,CAAC,4BAA6B,kBAA3C,SACI,cAAC/3B,GAAD,MAEJ,cAAC,IAAD,CAAO+3B,KAAK,iBAAZ,SACI,cAACpX,GAAD,MAEJ,cAAC,IAAD,CAAOoX,KAAK,gBAAZ,SACI,cAACjW,GAAD,MAEJ,cAAC,IAAD,CAAOiW,KAAK,oBAAZ,SACI,cAAC1S,GAAD,MAEJ,cAACwS,GAAD,CAAcE,KAAK,aAAa1qB,cAAeA,EAA/C,SACI,cAAC4Z,GAAD,MAEJ,cAAC,IAAD,CAAO8Q,KAAK,kBAAZ,SACI,cAACzQ,GAAD,MAEJ,cAAC,IAAD,CAAOyQ,KAAK,0BAAZ,SACI,cAACpQ,GAAD,MAEJ,cAACkQ,GAAD,CAAcE,KAAK,kBAAkB1qB,cAAeA,EAApD,SACI,cAAC,GAAD,MAEJ,cAACwqB,GAAD,CAAcE,KAAK,iBAAiB1qB,cAAeA,EAAnD,SACI,cAACkkB,GAAD,MAEJ,cAAC,IAAD,CAAOwG,KAAK,oBAAZ,SACI,cAACtN,GAAD,MAEJ,cAACoN,GAAD,CAAcE,KAAK,oBAAoB1qB,cAAeA,EAAtD,SACI,cAACyd,GAAD,MAEJ,cAAC+M,GAAD,CAAcE,KAAK,SAAS1qB,cAAeA,EAA3C,SACI,cAACwlB,GAAD,MAEJ,cAACgF,GAAD,CAAcE,KAAK,uBAAuB1qB,cAAeA,EAAzD,SACI,cAAC8mB,GAAD,MAEJ,cAAC,IAAD,CAAO4D,KAAK,sBAAZ,SACI,cAAC1E,GAAD,MAEJ,cAACwE,GAAD,CAAcE,KAAK,4BAA4B1qB,cAAeA,EAA9D,SACI,cAAC,GAAD,MAEJ,cAACwqB,GAAD,CAAcE,KAAK,wBAAwB1qB,cAAeA,EAA1D,SACI,cAAC6rB,GAAD,MAEJ,cAACrB,GAAD,CAAcE,KAAK,iBAAiB1qB,cAAeA,EAAnD,SACI,cAAC6qB,GAAD,MAEJ,cAAC,IAAD,CAAOH,KAAK,0BAAZ,SACI,cAACwH,GAAD,MAEJ,cAAC1H,GAAD,CAAcE,KAAK,qBAAqB1qB,cAAeA,EAAvD,SACI,cAAC8wB,GAAD,MAEJ,cAAC,IAAD,CAAOpG,KAAK,iBAAZ,SACI,cAACoC,GAAD,MAEJ,cAAC,IAAD,CAAOpC,KAAK,kBAAZ,SACI,cAACoH,GAAD,MAEJ,cAAC,IAAD,CAAOpH,KAAK,wBAAZ,SACI,cAACsH,GAAD,MAEJ,cAAC,IAAD,CAAOtH,KAAK,IAAZ,SACI,cAACtP,GAAD,SAIR,cAACF,GAAD,S,cClJV4X,GAA2C,CAC7CnlC,aAAc,gBACd+Y,iBAAkB,EAClBC,oBAAqB,GACrBlB,OAAQ,GACR5Y,kBAAmB,KACnBsd,kBAAmB,GACnBC,kBAAmB,GACnBC,cAAe,GACfC,YAAa,GACbC,WAAW,EACXC,eAAgB,SAChBC,YAAa,SACb1d,cAAc,IAAIJ,MAAOC,cAAgB,GACzCoG,YAAa,GACb0X,oBAAqB,GACrB8H,iBAAkB,KAClB1f,eAAgB,GAChBiT,gBAAiB,KAEjBxS,kBAAmB,KACnBG,oBAAqB,GACrBuC,mBAAoB,ICGlB68B,GAAiC,CACnCxnC,MAAO,GACP6F,SAAU,GACV/G,UAAW,GACXE,SAAU,GACV2F,YAAa,IAAItD,KACjBuD,cAAe,GACfC,KAAM,GACN1I,MAAO,CACHyE,IAAK,KACL3H,KAAM,WAEV6L,QAAS,GACT4N,QAAS,GACTxS,YAAa,GACboS,UAAW,IAAIjR,KACfomC,SAAU,EACVv0B,SAAU,WACVnV,SAAU,GACV0T,YAAa,ICxCX+1B,GAA0B,CAC5BxnC,MAAO,GACP6F,SAAU,ICNR6hC,GAA8B,CAChCr1B,WAAY,IAAIhR,KAChB6R,SAAU,WACVpU,UAAW,GACXE,SAAU,GACV2F,YAAa,GACbC,cAAe,GACfC,KAAM,GACN1I,MAAO,CACHyE,IAAK,IAETkE,QAAS,GACT4N,QAAS,GACTE,QAAQ,EACRD,UAAW,EACXG,WAAY,CACRC,kBAAmB,OAEvBhV,SAAU,GACViC,MAAO,GACPE,YAAa,GAEbynC,iBAAkB,GAClBC,oBAAqB,GACrBC,eAAgB,ICxBdL,GAAiC,CACnC7nC,GAAI,EACJ4zB,WAAY,GACZlxB,aAAc,GACdylC,kBAAmB,EACnBC,iBAAkB,EAClBC,gBAAiB,EACjBxS,gBAAiB,EACjBpa,iBAAkB,EAClBC,oBAAqB,GACrBC,oBAAqB,GACrB9T,eAAgB,GAChB2S,OAAQ,GACR5Y,kBAAmB,GACnBsd,kBAAmB,GACnBC,kBAAmB,GACnBC,cAAe,GACfC,YAAa,GACbC,WAAW,EACXC,eAAgB,GAChBC,YAAa,GACb1d,aAAc,GACdiG,YAAa,GACb0X,oBAAqB,GACrB8H,iBAAkB,GAClB9M,eAAgB,GAChBmB,eAAgB,KAChByY,cAAe,KACfvY,eAAgB,GAChBhB,gBAAiB,KACjBS,6BAA8B,KAC9BjT,kBAAmB,KACnBG,oBAAqB,GACrBuC,mBAAoB,GACpB4P,eAAgB,GAChBiZ,QAAS,KACTF,WAAY,KACZjhB,WAAY,IC3BVm1B,GAAwC,CAC1C3vC,QAAQ,EACR2C,QAAS,GACTyC,SAAU,QCFRuqC,GAAoC,CACtC3yB,MAAO,gBACPC,gBAAiB,mBACjBC,UAAU,EACVid,iBAAkB,GAClBhd,eAAe,EACfya,WAAY,gBACZC,QAAS,IACTza,oBAAoB,GCnBlByyB,GAA8B,CAChCr1B,WAAY,IAAIhR,KAChB6R,SAAU,WACVpU,UAAW,GACXE,SAAU,GACV2F,YAAa,GACbC,cAAe,GACfC,KAAM,GACN1I,MAAO,CACHyE,IAAK,IAETkE,QAAS,GACT4N,QAAS,GACTE,QAAQ,EACRD,UAAW,EACXG,WAAY,CACRC,kBAAmB,OAEvBhV,SAAU,GACViC,MAAO,GACPE,YAAa,GAEbynC,iBAAkB,GAClBC,oBAAqB,GACrBC,eAAgB,ICXdL,GAAoC,CACtC1oC,UAAW,GACXE,SAAU,GACV2F,aAAa,IAAItD,MAAOC,cAAgB,GACxCsD,cAAe,GACfC,KAAM,GACNC,QAAS,GACT3I,MAAO,CACHyE,IAAK,IAETZ,MAAO,GACPE,YAAa,ICdXsnC,GAAmC,CACrC1oC,UAAW,GACXE,SAAU,GACVgB,MAAO,GACPE,YAAa,GACbnC,SAAU,GACV5B,MAAO,CACHyE,IAAK,KChBP4mC,GAAkC,GCS3BS,GAAcC,2BAAgB,CACvC7yB,aVoC+B,WAAmE,IAAlElZ,EAAiE,uDAAzDqrC,GAAcvnB,EAA2C,uCACjG,OAAQA,EAAO5oB,MACX,IAAK,kCACD,OAAO,2BAAK8E,GAAU8jB,EAAO3oB,SAEjC,QACI,OAAO6E,IUzCf6X,MTHwB,WAA4D,IAA3D7X,EAA0D,uDAAlDqrC,GAAcvnB,EAAoC,uCACnF,OAAQA,EAAO5oB,MACX,IAAK,2BACD,OAAO,2BAAK8E,GAAU8jB,EAAO3oB,SAEjC,QACI,OAAO6E,ISFfs9B,WJc6B,WAAgE,IAA/Dt9B,EAA8D,uDAAtDurC,GAAMznB,EAAgD,uCAC5F,OAAQA,EAAO5oB,MACX,IAAK,2BACD,OAAO,2BAAK8E,GAAU8jB,EAAO3oB,SAEjC,IAAK,4BACD,IAAI6wC,EAAcluC,KAAKC,UAAUiC,GAGjC,OAFAA,EAAQlC,KAAK2qC,MAAMuD,IACbhsC,MAAMyE,IAAMqf,EAAO3oB,QAClB6E,EAEX,IAAK,8BACDA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAClC,IAAIisC,EAAa,CACbpqC,cAAeiiB,EAAO3oB,QAAQoiC,OAC9BprB,UAAW2R,EAAO3oB,QAAQgX,UAC1BM,QAASqR,EAAO3oB,QAAQsX,QACxBgrB,YAAa3Z,EAAO3oB,QAAQsiC,aAGhC,OADAz9B,EAAM4B,SAAS2M,KAAK09B,GACbjsC,EAEX,QACI,OAAOA,IIpCf6G,uBXWyC,WAA6E,IAA5E7G,EAA2E,uDAAnEqrC,GAAcvnB,EAAqD,uCACrH,OAAQA,EAAO5oB,MACX,IAAK,8CACD,OAAO,2BAAK8E,GAAU8jB,EAAO3oB,SAEjC,IAAK,kCAkBD,OAjBA6E,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KAGH+qB,iBAC3B/qB,EAAM+qB,iBAAiB,GAAGvd,YAAcsW,EAAO3oB,QAAQqS,aAGvDxN,EAAM+qB,iBAAmB,GACzB/qB,EAAM+qB,iBAAiBxc,KACnB,CACIf,YAAasW,EAAO3oB,QAAQqS,YAC5Bqd,SAAS,EACTC,aAAa,IAAI5lB,MAAOC,cAAgB,GACxCnJ,OAAQ8nB,EAAO3oB,QAAQa,UAI5BgE,EAEX,IAAK,4CACDA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAClC,IAAIksC,EAAqB,CAAEz+B,OAAQqW,EAAO3oB,QAAQsS,OAAQ1H,KAAM+d,EAAO3oB,QAAQ4K,KAAM/J,OAAQ8nB,EAAO3oB,QAAQa,QAE5G,OADAgE,EAAMse,gBAAkB4tB,EACjBlsC,EAEX,IAAK,yCAMD,OALAA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KAER8L,kBACpB9L,EAAM8L,kBAAkB9P,OAAS8nB,EAAO3oB,QAAQa,OAChDgE,EAAM8L,kBAAoB,CAAE9P,OAAQ8nB,EAAO3oB,QAAQa,OAAQM,KAAM,MAChE0D,EAEX,IAAK,mCAOD,OANAA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KAER8L,kBAC1B9L,EAAM8L,kBACA9L,EAAM8L,kBAAkBxP,KAAOwnB,EAAO3oB,QACtC6E,EAAM8L,kBAAoB,CAAExP,KAAMwnB,EAAO3oB,QAASa,OAAQ,MACzDgE,EAEX,IAAK,6CAkBD,OAjBAA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KACxBiM,qBAAsBjM,EAAMiM,oBAAoB,GAClDjM,EAAMiM,sBACNjM,EAAMiM,oBAAoB,GAAGjQ,OAAS8nB,EAAO3oB,QAAQe,WACrD8D,EAAMiM,oBAAoB,GAAG3P,KAAO,KACpC0D,EAAMiM,oBAAoB,GAAGlG,MAAO,IAAIb,MAAOC,cAAgB,KAInEnF,EAAMiM,oBAAsB,GAC5BjM,EAAMiM,oBAAoBsC,KACtB,CACIvS,OAAQ8nB,EAAO3oB,QAAQe,WACvBI,KAAM,KACNyJ,MAAM,IAAIb,MAAOC,cAAgB,MAGtCnF,EAEX,IAAK,2CAmBD,OAlBAA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KACxBiM,qBAAsBjM,EAAMiM,oBAAoB,GAClDjM,EAAMiM,sBACNjM,EAAMiM,oBAAoB,GAAGjQ,OAAS,KACtCgE,EAAMiM,oBAAoB,GAAG3P,KAAOwnB,EAAO3oB,QAC3C6E,EAAMiM,oBAAoB,GAAGlG,MAAO,IAAIb,MAAOC,gBAInDnF,EAAMiM,oBAAsB,GAC5BjM,EAAMiM,oBAAoBsC,KACtB,CACIvS,OAAQ,KACRM,KAAMwnB,EAAO3oB,QACb4K,MAAM,IAAIb,MAAOC,iBAItBnF,EAEX,IAAK,gDAmBD,OAlBAA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KACxBwO,oBAAqBxO,EAAMwO,mBAAmB,GAChDxO,EAAMwO,qBACNxO,EAAMwO,mBAAmB,GAAGxS,OAAS8nB,EAAO3oB,QAAQiB,UACpD4D,EAAMwO,mBAAmB,GAAGlS,KAAO,KACnC0D,EAAMwO,mBAAmB,GAAGzI,MAAO,IAAIb,MAAOC,gBAIlDnF,EAAMwO,mBAAqB,GAC3BxO,EAAMwO,mBAAmBD,KACrB,CACIvS,OAAQ8nB,EAAO3oB,QAAQiB,UACvBE,KAAM,KACNyJ,MAAM,IAAIb,MAAOC,iBAItBnF,EAEX,IAAK,iCACD,OAAeqrC,GAEnB,QACI,OAAOrrC,IW5HfyL,qBHYkC,WAAsE,IAArEzL,EAAoE,uDAA5DqrC,GAAcvnB,EAA8C,uCACvG,OAAQA,EAAO5oB,MACX,IAAK,sCACD,MAAuC,UAAnCgjC,OAAOiO,KAAKroB,EAAO3oB,SAAS,KAC5B6E,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KAC5BA,MAAMyE,IAAMqf,EAAO3oB,QAAQ6E,MAC1BA,GAGA,2BAAKA,GAAU8jB,EAAO3oB,SAGrC,IAAK,+BAED,OADA6E,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IACnBqrC,GAEnB,QACI,OAAOrrC,IG5Bf2L,qBFKiC,WAAqE,IAApE3L,EAAmE,uDAA3DqrC,GAAcvnB,EAA6C,uCACrG,OAAQA,EAAO5oB,MACX,IAAK,qCACD,MAAuC,UAAnCgjC,OAAOiO,KAAKroB,EAAO3oB,SAAS,KAC5B6E,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KAC5BA,MAAMyE,IAAMqf,EAAO3oB,QAAQ6E,MAC1BA,GAGA,2BAAKA,GAAU8jB,EAAO3oB,SAGrC,IAAK,kCAED,OADA6E,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAC9B8jB,EAAO3oB,SACuB,IAA1B6E,EAAM4B,SAASf,OACfb,EAAM4B,SAAS2M,KAAK,CAAE1M,cAAeiiB,EAAO3oB,UAG5C6E,EAAM4B,SAAS,GAAGC,cAAgBiiB,EAAO3oB,QAEtC6E,IAGPA,EAAM4B,SAAW,GACV5B,GAEf,IAAK,8BAED,OADAA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IACnBqrC,GACnB,QACI,OAAOrrC,IEnCfmU,aRU2B,WAAgE,IAA/DnU,EAA8D,uDAAtDurC,GAAMznB,EAAgD,uCAC1F,OAAQA,EAAO5oB,MACX,IAAK,yBAGL,IAAK,gCACD,OAAO,2BAAK8E,GAAU8jB,EAAO3oB,SAEjC,IAAK,mBAGD,OAFA6E,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KAC5B4B,SAAS2M,KAAKuV,EAAO3oB,SACpB,eAAK6E,GAEhB,IAAK,mBAGD,OAFAA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KAC5B2W,WAAWC,kBAAoBkN,EAAO3oB,QAAU,GAC/C6E,EAEX,IAAK,qBAED,IAAIosC,GADJpsC,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,KACD4B,SAC5B4mC,WAAU,SAACjzB,GAAD,OAAauO,EAAO3oB,QAAQ6X,oBAAsBuC,EAAQ/R,MAGzE,OADAxD,EAAM4B,SAASwqC,GAAf,eAA4CtoB,EAAO3oB,QAAQ8X,kBACpDjT,EAEX,QACI,OAAOA,IQpCfw2B,aPsB+B,WAAmE,IAAlEx2B,EAAiE,uDAAzDqrC,GAAcvnB,EAA2C,uCACjG,OAAQA,EAAO5oB,MACX,IAAK,kCAED,OADA8E,EAAK,eAAQ8jB,EAAO3oB,SAGxB,IAAK,mCACD,OAAO,2BAAK6E,GAAU8jB,EAAO3oB,SAEjC,IAAK,yCACD6E,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAClC,IAAIqsC,EAAqB,CACrB5+B,OAAQqW,EAAO3oB,QAAQsS,OACvB0pB,WAAYrT,EAAO3oB,QAAQg8B,WAC3BoB,YAAazU,EAAO3oB,QAAQo9B,YAC5BxyB,KAAM+d,EAAO3oB,QAAQ4K,KACrBzJ,KAAMwnB,EAAO3oB,QAAQmB,MAGzB,OADA0D,EAAMof,eAAiBitB,EAChBrsC,EAEX,IAAK,0CACDA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAClC,IAAIksC,EAAqB,CACrBz+B,OAAQqW,EAAO3oB,QAAQsS,OACvB1H,KAAM+d,EAAO3oB,QAAQ4K,KACrB0X,WAAYqG,EAAO3oB,QAAQsiB,WAC3BzhB,OAAQ8nB,EAAO3oB,QAAQa,QAG3B,OADAgE,EAAMse,gBAAkB4tB,EACjBlsC,EAEX,IAAK,wCACDA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAClC,IAAIssC,EAAoB,CAAE7+B,OAAQqW,EAAO3oB,QAAQsS,OAAQ1H,KAAM+d,EAAO3oB,QAAQ4K,MAE9E,OADA/F,EAAMsf,eAAe/Q,KAAK+9B,GACnBtsC,EAEX,IAAK,iCACDA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAClC,IAAIusC,EAAa,CACb/+B,YAAasW,EAAO3oB,QAAQqS,YAC5Bqd,QAAS/G,EAAO3oB,QAAQ0vB,QACxBC,aAAa,IAAI5lB,MAAOC,cAAgB,GACxCnJ,OAAQ8nB,EAAO3oB,QAAQa,OACvBwsB,SAAU1E,EAAO3oB,QAAQqtB,UAG7B,OADAxoB,EAAM+qB,iBAAiBxc,KAAKg+B,GACrBvsC,EAEX,IAAK,gCACDA,EAAQlC,KAAK2qC,MAAM3qC,KAAKC,UAAUiC,IAClC,IAAI+wB,EAAY,CACZv0B,gBAAiBsnB,EAAO3oB,QAAQqB,gBAChCC,WAA8C,aAAlCqnB,EAAO3oB,QAAQqB,gBAAiCsnB,EAAO3oB,QAAQsB,YAAa,IAAIyI,MAAOC,cAAgB,GACnHnJ,OAAQ8nB,EAAO3oB,QAAQa,OACvBU,YAAaonB,EAAO3oB,QAAQuB,aAGhC,OADAsD,EAAMie,eAAe1P,KAAKwiB,GACnB/wB,EAEX,QACI,OAAOA,IOnFf+kC,aNHsC,WAA0E,IAAzE/kC,EAAwE,uDAAhEqrC,GAAcvnB,EAAkD,uCAC/G,OAAQA,EAAO5oB,MACX,IAAK,sBACD,OAAO,2BAAK8E,GAAZ,IAAmBtE,OAAQooB,EAAO3oB,UAEtC,IAAK,wBACD,OAAO,2BAAK6E,GAAU8jB,EAAO3oB,SAEjC,QACI,OAAO6E,IMLf41B,SLEkC,WAAsE,IAArE51B,EAAoE,uDAA5DqrC,GAAcvnB,EAA8C,uCACvG,OAAQA,EAAO5oB,MACX,IAAK,2BACD,OAAO,2BAAK8E,GAAU8jB,EAAO3oB,SAEjC,QACI,OAAO6E,IKPf/E,ODlByB,WAAoE,IAAnE+E,EAAkE,uDAA1DqrC,GAAcvnB,EAA4C,uCAC5F,OAAQA,EAAO5oB,MACX,IAAK,0BACD,MAAM,GAAN,OAAWmwC,GAAX,aAA4BvnB,EAAO3oB,UACvC,QACI,OAAO6E,M,UEPNwsC,GAAQC,uBACjBX,GACAY,+BACIC,+BCKY9xB,QACW,cAA7BnM,OAAO4F,SAASs4B,UAEe,UAA7Bl+B,OAAO4F,SAASs4B,UAEhBl+B,OAAO4F,SAASs4B,SAAS1vC,MACvB,2DCVN2vC,IAAS3J,OACL,cAAC,IAAM4J,WAAP,UACE,cAAC,IAAD,CAAUN,MAAOA,GAAjB,SACE,cAACtB,GAAD,QAGNluC,SAAS+vC,eAAe,SD0HpB,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrBrf,MAAK,SAAC3U,GACLA,EAAai0B,gBAEdxjB,OAAM,SAAC3jB,GACNjF,QAAQiF,MAAMA,EAAM3H,a,mBE7I5BvD,EAAOC,QAAU,CAAC,aAAe,8BAA8B,qBAAqB,oCAAoC,oBAAoB,mCAAmC,wBAAwB,uCAAuC,oBAAoB,mCAAmC,gCAAgC,+CAA+C,wCAAwC,uDAAuD,4BAA4B,2CAA2C,yBAAyB,0C,mBCAnjBD,EAAOC,QAAU,CAAC,WAAa,+BAA+B,kBAAkB,oCAAoC,kBAAkB,oCAAoC,qBAAqB,uCAAuC,sBAAsB,0C,mBCA5PD,EAAOC,QAAU,CAAC,OAAS,uBAAuB,cAAc,4BAA4B,uBAAuB,qCAAqC,aAAa,2BAA2B,cAAc,4BAA4B,sBAAsB,oCAAoC,iBAAiB,+BAA+B,qBAAqB,mCAAmC,WAAa,6B,mBCAzZD,EAAOC,QAAU,CAAC,aAAe,mCAAmC,mBAAmB,uCAAuC,oBAAoB,wCAAwC,uCAAuC,2DAA2D,oBAAoB,wCAAwC,uCAAuC,6D,mBCA/XD,EAAOC,QAAU,CAAC,oBAAsB,iDAAiD,4BAA4B,uDAAuD,0BAA0B,qDAAqD,0BAA0B,qDAAqD,gCAAgC,2DAA2D,qCAAqC,gEAAgE,uCAAuC,kEAAkE,sCAAsC,iEAAiE,gDAAgD,2EAA2E,gCAAgC,2DAA2D,iCAAiC,4DAA4D,0CAA0C,qEAAqE,2CAA2C,sEAAsE,6BAA6B,0D,mBCA1wCD,EAAOC,QAAU,CAAC,QAAU,kCAAkC,gBAAgB,wCAAwC,eAAe,uCAAuC,eAAe,uCAAuC,mBAAmB,2CAA2C,gBAAgB,wCAAwC,4BAA4B,oDAAoD,kBAAkB,0CAA0C,wBAAwB,gDAAgD,8BAA8B,sDAAsD,8BAA8B,sDAAsD,sBAAsB,8CAA8C,eAAe,uCAAuC,oBAAoB,4CAA4C,wBAAwB,kD,mBCAt6BD,EAAOC,QAAU,CAAC,SAAW,2BAA2B,gBAAgB,gCAAgC,uBAAuB,uCAAuC,eAAe,+BAA+B,oBAAoB,oCAAoC,2BAA2B,2CAA2C,eAAiB,iCAAiC,8BAA8B,gD,mBCAlaD,EAAOC,QAAU,CAAC,aAAe,mCAAmC,qBAAqB,yCAAyC,oBAAoB,wCAAwC,qBAAqB,yCAAyC,sBAAsB,0CAA0C,oBAAoB,wCAAwC,yBAAyB,6CAA6C,mBAAmB,uCAAuC,yBAAyB,+C,mBCAjhBD,EAAOC,QAAU,CAAC,iBAAmB,2CAA2C,yBAAyB,iDAAiD,uBAAuB,+CAA+C,uBAAuB,+CAA+C,6BAA6B,qDAAqD,qCAAqC,6DAA6D,mCAAmC,2DAA2D,0CAA0C,kEAAkE,qCAAqC,6DAA6D,sCAAsC,8DAA8D,0BAA0B,oD,mBCAp4BD,EAAOC,QAAU,CAAC,eAAiB,uCAAuC,uBAAuB,6CAA6C,sBAAsB,4CAA4C,qBAAqB,2CAA2C,qBAAqB,2CAA2C,qBAAqB,6C,mBCArWD,EAAOC,QAAU,CAAC,UAAY,6BAA6B,kBAAkB,mCAAmC,sBAAsB,uCAAuC,gBAAgB,iCAAiC,iBAAiB,kCAAkC,oBAAoB,uC,mBCArSD,EAAOC,QAAU,CAAC,SAAW,2BAA2B,kBAAkB,kCAAkC,kBAAkB,kCAAkC,yBAAyB,yCAAyC,6BAA6B,+C,mBCA/PD,EAAOC,QAAU,CAAC,wBAAwB,+CAA+C,uBAAuB,8CAA8C,wBAAwB,+CAA+C,8BAA8B,qDAAqD,4BAA4B,mDAAmD,yBAAyB,kD,mBCAhaD,EAAOC,QAAU,CAAC,2BAA2B,sDAAsD,4BAA4B,uDAAuD,4BAA4B,uDAAuD,+BAA+B,0DAA0D,yCAAyC,oEAAoE,6CAA6C,wEAAwE,qCAAqC,gEAAgE,iCAAiC,4DAA4D,0CAA0C,qEAAqE,mCAAmC,gE,mBCAx5BD,EAAOC,QAAU,CAAC,aAAe,mCAAmC,oBAAoB,wCAAwC,oBAAoB,wCAAwC,oBAAoB,0C,mBCAhND,EAAOC,QAAU,CAAC,iBAAmB,2CAA2C,yBAAyB,iDAAiD,wBAAwB,gDAAgD,0BAA0B,kDAAkD,yBAAyB,iDAAiD,mCAAmC,6D,mBCA3ZD,EAAOC,QAAU,CAAC,kBAAoB,6CAA6C,0BAA0B,mDAAmD,wBAAwB,iDAAiD,wBAAwB,iDAAiD,+BAA+B,wDAAwD,iCAAiC,4D,mBCA1aD,EAAOC,QAAU,CAAC,0BAA0B,qDAAqD,6BAA6B,wDAAwD,iCAAiC,4DAA4D,uCAAuC,kEAAkE,2CAA2C,sEAAsE,0CAA0C,qEAAqE,4BAA4B,uDAAuD,mBAAmB,8CAA8C,sBAAsB,mD,mBCAtwBD,EAAOC,QAAU,CAAC,iBAAiB,kCAAkC,kBAAkB,mCAAmC,qBAAqB,sCAAsC,gCAAgC,iDAAiD,oCAAoC,qDAAqD,8BAA8B,+CAA+C,kBAAkB,mCAAmC,wBAAwB,2C,mBCAzfD,EAAOC,QAAU,CAAC,MAAQ,qBAAqB,aAAa,0BAA0B,cAAc,2BAA2B,cAAc,2BAA2B,YAAY,yBAAyB,eAAe,4BAA4B,aAAa,4B,mBCArQD,EAAOC,QAAU,CAAC,cAAgB,qCAAqC,sBAAsB,2CAA2C,qBAAqB,0CAA0C,6BAA6B,kDAAkD,uBAAuB,4CAA4C,qBAAqB,4C,mBCA9WD,EAAOC,QAAU,CAAC,QAAU,yBAAyB,gBAAgB,+BAA+B,eAAe,8BAA8B,iBAAiB,gCAAgC,cAAc,6BAA6B,mBAAmB,oC,mBCAhQD,EAAOC,QAAU,CAAC,OAAS,uBAAuB,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,8B,mBCApJD,EAAOC,QAAU,CAAC,gBAAkB,yCAAyC,uBAAuB,8CAA8C,wBAAwB,+CAA+C,8BAA8B,qDAAqD,wBAAwB,+CAA+C,uBAAuB,8CAA8C,sCAAsC,+D,mBCA9dD,EAAOC,QAAU,CAAC,cAAgB,qCAAqC,sBAAsB,2CAA2C,yBAAyB,8CAA8C,uBAAuB,4CAA4C,oBAAoB,yCAAyC,qBAAqB,0CAA0C,sBAAsB,2CAA2C,UAAY,iCAAiC,kBAAkB,uCAAuC,mBAAmB,wCAAwC,cAAgB,uC,mBCAhoBD,EAAOC,QAAU,CAAC,uBAAyB,uDAAuD,+BAA+B,6DAA6D,mCAAmC,iEAAiE,iCAAiC,+DAA+D,8BAA8B,4DAA4D,mCAAmC,mE,mBCA/fD,EAAOC,QAAU,CAAC,YAAc,iCAAiC,oBAAoB,uCAAuC,2BAA2B,8CAA8C,0BAA0B,6CAA6C,mBAAmB,wC,mBCA/RD,EAAOC,QAAU,CAAC,qBAAuB,mDAAmD,6BAA6B,yDAAyD,gCAAgC,4DAA4D,4BAA4B,wDAAwD,6BAA6B,yDAAyD,2BAA2B,uDAAuD,4BAA4B,0D,mBCAtiBD,EAAOC,QAAU,CAAC,wBAAwB,oDAAoD,uBAAuB,mDAAmD,yBAAyB,uD,mBCAjMD,EAAOC,QAAU,CAAC,mBAAmB,uCAAuC,sBAAsB,0CAA0C,0BAA0B,8CAA8C,gCAAgC,oDAAoD,oCAAoC,wDAAwD,mCAAmC,0D","file":"static/js/main.88808c20.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"LawFirm-Body\":\"AddLawFirms_LawFirm-Body__3cLAF\",\"LawFirm-Title\":\"AddLawFirms_LawFirm-Title__3qj8N\",\"LawFirm-Subtitle\":\"AddLawFirms_LawFirm-Subtitle__2SfZe\",\"LawFirm-Label\":\"AddLawFirms_LawFirm-Label__1dTGi\",\"LawFirm-Label--Birth\":\"AddLawFirms_LawFirm-Label--Birth__2-p_i\",\"LawFirm-AddLawFirmSection\":\"AddLawFirms_LawFirm-AddLawFirmSection__2RpeW\",\"LawFirm-CreatedLawFirmSection\":\"AddLawFirms_LawFirm-CreatedLawFirmSection__3LjgX\",\"LawFirm-DiviiderText\":\"AddLawFirms_LawFirm-DiviiderText__242cR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ContractPage\":\"ContractPage_ContractPage__2l3Ds\",\"ContractPage-Icons\":\"ContractPage_ContractPage-Icons__eIAee\",\"ContractPage-EditBox\":\"ContractPage_ContractPage-EditBox__qclGs\",\"ContractPage-DownloadBox\":\"ContractPage_ContractPage-DownloadBox__sFy4z\",\"ContractPage-DownloadBox--Disabled\":\"ContractPage_ContractPage-DownloadBox--Disabled__3WhGn\",\"ContractPage-Divider\":\"ContractPage_ContractPage-Divider__27u1c\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ResetPassword\":\"ResetPassword_ResetPassword__2smrE\",\"ResetPassword-Title\":\"ResetPassword_ResetPassword-Title__2KIl8\",\"ResetPassword-Subtitle\":\"ResetPassword_ResetPassword-Subtitle__KEl4q\",\"ResetPassword-Form\":\"ResetPassword_ResetPassword-Form__14VqP\",\"ResetPassword-Input\":\"ResetPassword_ResetPassword-Input__225hK\",\"ResetPassword-Btn\":\"ResetPassword_ResetPassword-Btn__MeJRF\",\"ResetPassword-Link\":\"ResetPassword_ResetPassword-Link__3Q2n4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InterestRatesList\":\"InterestRatesList_InterestRatesList__3GNfI\",\"InterestRatesList-Title\":\"InterestRatesList_InterestRatesList-Title__1UETs\",\"InterestRatesList-Body\":\"InterestRatesList_InterestRatesList-Body__37dmb\",\"InterestRatesList-Item\":\"InterestRatesList_InterestRatesList-Item__3ygke\",\"InterestRatesList-AddBtn\":\"InterestRatesList_InterestRatesList-AddBtn__2KfOI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FinancialInformation-Body\":\"FinancialInformation_FinancialInformation-Body__2KAyF\",\"FinancialInformation-Title\":\"FinancialInformation_FinancialInformation-Title__3w3M8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"UserInfo\":\"UserInfo_UserInfo__3pOOa\",\"UserInfo-Column\":\"UserInfo_UserInfo-Column__19uzS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AddPayment-Panel\":\"AddPaymentSection_AddPayment-Panel__3p7jk\",\"AddPayment-ShowBtn\":\"AddPaymentSection_AddPayment-ShowBtn__1xe6d\",\"AddPayment-Title\":\"AddPaymentSection_AddPayment-Title__2vyW8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CreateContractNotes-Alert\":\"CreateContractNotes_CreateContractNotes-Alert__3Q--4\",\"CreateContractNotes-InterestRateAlert\":\"CreateContractNotes_CreateContractNotes-InterestRateAlert__ol3zy\",\"CreateContractNotes-AlertText\":\"CreateContractNotes_CreateContractNotes-AlertText__24j-3\",\"CreateContractNotes-InterestRateBottomAlert\":\"CreateContractNotes_CreateContractNotes-InterestRateBottomAlert__2G2D2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CasesAndClients\":\"CasesAndClients_CasesAndClients__17X_x\",\"CasesAndClients-List\":\"CasesAndClients_CasesAndClients-List__3ds6h\",\"CasesAndClients-Item\":\"CasesAndClients_CasesAndClients-Item__2wgNk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ContractHistory\":\"ContractHistory_ContractHistory__CKiNr\",\"ContractHistory-Panel\":\"ContractHistory_ContractHistory-Panel__QafZw\",\"ContractHistory-Search\":\"ContractHistory_ContractHistory-Search__1NnqG\",\"ContractHistory-CreateNewRequest\":\"ContractHistory_ContractHistory-CreateNewRequest__205D-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"UpdateInterestRate\":\"UpdateInterestRate_UpdateInterestRate__15W_E\",\"UpdateInterestRate-StateName\":\"UpdateInterestRate_UpdateInterestRate-StateName__FMb3-\",\"UpdateInterestRate-Body\":\"UpdateInterestRate_UpdateInterestRate-Body__1-N6B\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Comments\":\"Comments_Comments__2oRVF\",\"Comments-Label\":\"Comments_Comments-Label__3BrzB\",\"Comments-CommentInfo\":\"Comments_Comments-CommentInfo__2Celu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EditUser-Btns\":\"EditUser_EditUser-Btns__1DsTB\",\"EditUser-DeleteBtn\":\"EditUser_EditUser-DeleteBtn__fHz2E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PaymentCalc\":\"PaymentCalc_PaymentCalc__1sgc8\",\"PaymentCalc-Title\":\"PaymentCalc_PaymentCalc-Title__2OBbj\",\"PaymentCalc-Body\":\"PaymentCalc_PaymentCalc-Body__1zw0-\",\"PaymentCalc-LoaderBox\":\"PaymentCalc_PaymentCalc-LoaderBox__1nxTW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"RatingControllerItem\":\"RatingControllerItem_RatingControllerItem__3B9pP\",\"RatingControllerItem-Title\":\"RatingControllerItem_RatingControllerItem-Title__1XtI7\",\"RatingControllerItem-Btn\":\"RatingControllerItem_RatingControllerItem-Btn__3whBj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"RatingControler\":\"RatingController_RatingControler__38ybp\",\"RatingControler-Title\":\"RatingController_RatingControler-Title__ZIz3A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AddNewRatingPoint\":\"AddNewRatingPoint_AddNewRatingPoint__3ypeX\",\"AddNewRatingPoint-Title\":\"AddNewRatingPoint_AddNewRatingPoint-Title__2Vccr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"UserProfile\":\"UserProfile_UserProfile__44kOD\",\"UserProfile-Body\":\"UserProfile_UserProfile-Body__3zrma\",\"UserProfile-List\":\"UserProfile_UserProfile-List__2GQTq\",\"UserProfile-Item\":\"UserProfile_UserProfile-Item__29kZD\",\"UserProfile-InfoIcon\":\"UserProfile_UserProfile-InfoIcon__ua7gw\",\"UserProfile-EditIcon\":\"UserProfile_UserProfile-EditIcon__3Q6aM\",\"UserProfile-Avatar\":\"UserProfile_UserProfile-Avatar__1KDlS\",\"UserProfile-AvatarImgWrapp\":\"UserProfile_UserProfile-AvatarImgWrapp__25raC\",\"UserProfile-AvatarNav\":\"UserProfile_UserProfile-AvatarNav__im15N\",\"UserProfile-AvatarImg\":\"UserProfile_UserProfile-AvatarImg__2zqeK\",\"UserProfile-EditAvatarLabel\":\"UserProfile_UserProfile-EditAvatarLabel__3GNe_\",\"UserProfile-AvatarInput\":\"UserProfile_UserProfile-AvatarInput__15vue\",\"UserProfile-AvatarLabel\":\"UserProfile_UserProfile-AvatarLabel__2-jJ_\",\"UserProfile-Ratings\":\"UserProfile_UserProfile-Ratings__ZLkv7\",\"UserProfile-RatingTable\":\"UserProfile_UserProfile-RatingTable__2YT-n\",\"UserProfile--Login\":\"UserProfile_UserProfile--Login__2dGr-\",\"UserProfile-CasesTitle\":\"UserProfile_UserProfile-CasesTitle__3VVT9\",\"UserProfile-Title\":\"UserProfile_UserProfile-Title__3d3Cv\",\"UserProfile-CalculateBtn\":\"UserProfile_UserProfile-CalculateBtn__2KBLp\",\"UserProfile-CalculateBtnWrapp\":\"UserProfile_UserProfile-CalculateBtnWrapp__19S9T\",\"UserProfile-AvatarBox\":\"UserProfile_UserProfile-AvatarBox__TkIYG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AddBtn\":\"AddBtn_AddBtn__3mjdo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"DownloadBtn\":\"DownloadBtn_DownloadBtn__1AZxu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ActionMenu-Item\":\"ActionMenu_ActionMenu-Item__eHZXB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PrivacyPolicy\":\"PrivacyPolicy_PrivacyPolicy__3Nf-6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"TermsAndConditions\":\"TermsAndConditions_TermsAndConditions__2O_Kt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EditContractInfo\":\"EditContractInfo_EditContractInfo__3ZLCX\",\"EditContractInfo-Item\":\"EditContractInfo_EditContractInfo-Item__2UU9C\",\"EditContractInfo-MediumDivider\":\"EditContractInfo_EditContractInfo-MediumDivider__2KwzS\",\"EditContractInfo-Title\":\"EditContractInfo_EditContractInfo-Title__IFemD\",\"ApprovedAmount-Body\":\"EditContractInfo_ApprovedAmount-Body__2g0mq\",\"AddFundingSection-Body\":\"EditContractInfo_AddFundingSection-Body__P92ga\",\"ApprovedAmount-Row\":\"EditContractInfo_ApprovedAmount-Row__2WGYG\",\"AddFundingSection-Row\":\"EditContractInfo_AddFundingSection-Row__34yxS\",\"ApprovedAmount-Title\":\"EditContractInfo_ApprovedAmount-Title__2EHkJ\",\"AddFundingSection-Title\":\"EditContractInfo_AddFundingSection-Title__2_eAf\",\"ApprovedAmount-AddBtnBox\":\"EditContractInfo_ApprovedAmount-AddBtnBox__LwN4R\",\"AddFundingSection-AddBtnBox\":\"EditContractInfo_AddFundingSection-AddBtnBox__JravB\",\"ApprovedAmount-AddBtnBox__Active\":\"EditContractInfo_ApprovedAmount-AddBtnBox__Active__1nNRk\",\"AddFundingSection-AddBtnBox__Active\":\"EditContractInfo_AddFundingSection-AddBtnBox__Active__3xV2j\",\"ReducedAmount-Title\":\"EditContractInfo_ReducedAmount-Title__1-9wo\",\"ReducedAmount-ShowBtn\":\"EditContractInfo_ReducedAmount-ShowBtn__tma17\",\"ReducedAmount-ShowBtn__Active\":\"EditContractInfo_ReducedAmount-ShowBtn__Active__2ylgl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CreateUser-UserData\":\"CreateUser_CreateUser-UserData__2I-xi\",\"CreateUser-Column\":\"CreateUser_CreateUser-Column__1eszg\",\"CreateUser-AddFirmBtn\":\"CreateUser_CreateUser-AddFirmBtn__31p0u\",\"CreateUser-BtnBox\":\"CreateUser_CreateUser-BtnBox__sH2j2\",\"CreateUserAddFirm-AddFirmBtn\":\"CreateUser_CreateUserAddFirm-AddFirmBtn__3vUWM\",\"CreateUserAddFirm-Title\":\"CreateUser_CreateUserAddFirm-Title__-IxpY\",\"AddFirmSection\":\"CreateUser_AddFirmSection__OfsDY\",\"AddFirmSection-FormControl\":\"CreateUser_AddFirmSection-FormControl__tzzg1\",\"AddFirmSection-BtnBox\":\"CreateUser_AddFirmSection-BtnBox__21gsy\",\"CreateUserClients\":\"CreateUser_CreateUserClients__1zdJG\",\"CreateUserClients-Title\":\"CreateUser_CreateUserClients-Title__30vKt\",\"CreateUserAddComment\":\"CreateUser_CreateUserAddComment__1A_8K\",\"CreateUserAddComment-Title\":\"CreateUser_CreateUserAddComment-Title__24Dob\",\"AddedFirmsList\":\"CreateUser_AddedFirmsList__ZXBaF\",\"AddedFirmsList-Item\":\"CreateUser_AddedFirmsList-Item__31cKW\",\"CreateUser-UserTypeControll\":\"CreateUser_CreateUser-UserTypeControll__yojpj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InterestRate\":\"CreateNewInterestRate_InterestRate__2t9om\",\"InterestRate-Title\":\"CreateNewInterestRate_InterestRate-Title__3cZWg\",\"InterestRate-Subtitle\":\"CreateNewInterestRate_InterestRate-Subtitle__2cOrg\",\"InterestRate-Form\":\"CreateNewInterestRate_InterestRate-Form__MVxOr\",\"InterestRate-FormColumn\":\"CreateNewInterestRate_InterestRate-FormColumn__15-ot\",\"InterestRate-Label\":\"CreateNewInterestRate_InterestRate-Label__2pE1R\",\"InterestRate-List\":\"CreateNewInterestRate_InterestRate-List__30OWU\",\"InterestRate-ListItem\":\"CreateNewInterestRate_InterestRate-ListItem__bswS0\",\"InterestRate-SubmitBtnBox\":\"CreateNewInterestRate_InterestRate-SubmitBtnBox__3bcoF\",\"InterestRate-PreSettlementRatesList\":\"CreateNewInterestRate_InterestRate-PreSettlementRatesList__mzjAL\",\"InterestRate-PostSettlementRatesList\":\"CreateNewInterestRate_InterestRate-PostSettlementRatesList__3tZYf\",\"InterestRate-PreSettlementRateItem\":\"CreateNewInterestRate_InterestRate-PreSettlementRateItem__1bEY6\",\"InterestRate-PostSettlementRateItem\":\"CreateNewInterestRate_InterestRate-PostSettlementRateItem__2IiF5\",\"InterestRate-FormColumnHeader\":\"CreateNewInterestRate_InterestRate-FormColumnHeader__1J_K6\"};","import { NotificationInfoType } from \"../reducers/generalNotificationReducer\"\r\nimport { InformationPageType } from \"../reducers/informationPageReducer\"\r\nimport { AmountApprovedType, AmountPaymentsType } from \"../types/contractTypes\"\r\nimport { LawFirmType } from \"../types/lawFirmType\"\r\nimport { StatesType } from \"../types/stateType\"\r\n\r\nexport const setAllStatesToStore = (states: Array) => ({\r\n type: \"SET_ALL_STATES_TO_STORE\",\r\n payload: states\r\n})\r\n\r\nexport type HandlerForRegistrationInputs = {\r\n type: \"HANDLER_FOR_REGISTRATION_INPUTS\"\r\n payload: any\r\n}\r\n\r\nexport const handlerForRegistrationInputs = (formData: any): HandlerForRegistrationInputs => ({\r\n type: \"HANDLER_FOR_REGISTRATION_INPUTS\",\r\n payload: formData,\r\n})\r\n\r\nexport type HandlerForLoginInputs = {\r\n type: \"HANDLER_FOR_LOGIN_INPUTS\"\r\n payload: any\r\n}\r\n\r\nexport const handlerForLoginInputs = (formData: any): HandlerForLoginInputs => ({\r\n type: \"HANDLER_FOR_LOGIN_INPUTS\",\r\n payload: formData,\r\n})\r\n\r\nexport type HandlerForCreateContractAttorneyInputsType = {\r\n type: \"HANDLER_FOR_CREATE_CONTRACT_ATTORNEY_INPUTS\"\r\n payload: any\r\n}\r\n\r\nexport const handlerForCreateContractAttorneyInputs = (formData: any): HandlerForCreateContractAttorneyInputsType => ({\r\n type: \"HANDLER_FOR_CREATE_CONTRACT_ATTORNEY_INPUTS\",\r\n payload: formData,\r\n})\r\n\r\nexport type SetDataForEditUserType = {\r\n type: \"SET_DATA_FOR_EDIT_USER\"\r\n payload: any\r\n}\r\n\r\nexport const setDataForEditUser = (userInfoData: any): SetDataForEditUserType => ({\r\n type: \"SET_DATA_FOR_EDIT_USER\",\r\n payload: userInfoData,\r\n})\r\n\r\nexport type HandlerForEditContractInputsType = {\r\n type: \"HANDLER_FOR_EDIT_CONTRACT_INPUTS\"\r\n payload: any\r\n}\r\n\r\nexport const handlerForEditContractInputs = (userInfoData: any): HandlerForEditContractInputsType => ({\r\n type: \"HANDLER_FOR_EDIT_CONTRACT_INPUTS\",\r\n payload: userInfoData,\r\n})\r\nexport type HandlerForCreateReportType = {\r\n type: \"HANDLER_FOR_CREATE_REPORT_INPUTS\"\r\n payload: any\r\n}\r\n\r\nexport const handlerForCreateReport = (data: any): HandlerForCreateReportType => ({\r\n type: \"HANDLER_FOR_CREATE_REPORT_INPUTS\",\r\n payload: data,\r\n})\r\n\r\nexport type ToggleNotificationType = {\r\n type: \"TOGGLE_NOTIFICATION\"\r\n payload: any\r\n}\r\n\r\nexport const toggleNotification = (isOpen: boolean): ToggleNotificationType => ({\r\n type: \"TOGGLE_NOTIFICATION\",\r\n payload: isOpen,\r\n})\r\n\r\nexport type SetNotificationInfoType = {\r\n type: \"SET_NOTIFICATION_INFO\"\r\n payload: NotificationInfoType\r\n}\r\n\r\nexport const setNotificationInfo = (info: NotificationInfoType): SetNotificationInfoType => ({\r\n type: \"SET_NOTIFICATION_INFO\",\r\n payload: info,\r\n})\r\n\r\nexport type SetContentToInfoPageType = {\r\n type: \"SET_CONTENT_TO_INFO_PAGE\"\r\n payload: InformationPageType\r\n}\r\n\r\nexport const setContentToInfoPage = (info: InformationPageType): SetContentToInfoPageType => ({\r\n type: \"SET_CONTENT_TO_INFO_PAGE\",\r\n payload: info,\r\n})\r\n\r\nexport type SetDataToAddFirmSectionForEditUser = {\r\n type: \"SET_DATA_FOR_ADD_FIRM_SECTION\"\r\n payload: InformationPageType\r\n}\r\n\r\nexport const setDataToAddFirmSectionForEditUser = (info: any): SetDataToAddFirmSectionForEditUser => ({\r\n type: \"SET_DATA_FOR_ADD_FIRM_SECTION\",\r\n payload: info,\r\n})\r\n\r\nexport type AddNewLawFirmForEditUserType = {\r\n type: \"ADD_NEW_LAW_FIRM\"\r\n payload: any\r\n}\r\n\r\nexport const addNewLawFirmForEditUser = (info: LawFirmType): AddNewLawFirmForEditUserType => ({\r\n type: \"ADD_NEW_LAW_FIRM\",\r\n payload: info,\r\n})\r\n\r\nexport type EditUserStatusType = {\r\n type: \"EDIT_USER_STATUS\"\r\n payload: string\r\n}\r\n\r\nexport const editUserStatus = (status: string): EditUserStatusType => ({\r\n type: \"EDIT_USER_STATUS\",\r\n payload: status,\r\n})\r\n\r\nexport type SetDataForCreateUserType = {\r\n type: \"SET_DATA_FOR_CREATE_USER\"\r\n payload: any\r\n}\r\n\r\nexport const setDataForCreateUser = (userInfoData: any): SetDataForCreateUserType => ({\r\n type: \"SET_DATA_FOR_CREATE_USER\",\r\n payload: userInfoData,\r\n})\r\n\r\nexport type SetStateForCreateUserType = {\r\n type: \"SET_STATE_FOR_CREATE_USER\"\r\n payload: any\r\n}\r\n\r\nexport const setStateForCreateUser = (state: string): SetStateForCreateUserType => ({\r\n type: \"SET_STATE_FOR_CREATE_USER\",\r\n payload: state,\r\n})\r\n\r\nexport type AddLawFirmForCreateUserType = {\r\n type: \"ADD_LAWFIRM_FOR_CREATE_USER\"\r\n payload: any\r\n}\r\n\r\nexport const addLawFirmForCreateUser = ({ firmId, startDate, endDate, lawFirmName }: any): AddLawFirmForCreateUserType => ({\r\n type: \"ADD_LAWFIRM_FOR_CREATE_USER\",\r\n payload: { firmId, startDate, endDate, lawFirmName },\r\n})\r\n\r\nexport type AddAmountApprovedEditContractPageType = {\r\n type: \"ADD_AMOUNT_APPROVED_EDIT_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const addAmountApprovedEditContractPage = ({ amount, insertRate, checkNumber, date, user }: AmountApprovedType): AddAmountApprovedEditContractPageType => ({\r\n type: \"ADD_AMOUNT_APPROVED_EDIT_CONTRACT_PAGE\",\r\n payload: { amount, insertRate, checkNumber, date, user }\r\n})\r\n\r\nexport type AddAmountRequestedEditContractPageType = {\r\n type: \"ADD_AMOUNT_REQUESTED_EDIT_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const addAmountRequestedEditContractPage = (amount: number, date: string, contractId: number, userId: number): AddAmountRequestedEditContractPageType => ({\r\n type: \"ADD_AMOUNT_REQUESTED_EDIT_CONTRACT_PAGE\",\r\n payload: { amount, date, contractId, userId }\r\n})\r\n\r\nexport type AddAmountRequestedCreateContractPageType = {\r\n type: \"ADD_AMOUNT_REQUESTED_CREATE_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const addAmountRequestedCreateContractPage = (amount: number, date: string, userId: number): AddAmountRequestedCreateContractPageType => ({\r\n type: \"ADD_AMOUNT_REQUESTED_CREATE_CONTRACT_PAGE\",\r\n payload: { amount, date, userId }\r\n})\r\n\r\nexport type AddExistingUserCreateContractPageType = {\r\n type: \"ADD_EXISTING_USER_CREATE_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const addExistingUserCreateContractPage = (userId: number | null): AddExistingUserCreateContractPageType => ({\r\n type: \"ADD_EXISTING_USER_CREATE_CONTRACT_PAGE\",\r\n payload: { userId }\r\n})\r\n\r\nexport type AddExistingAttorneyCreateContractPageType = {\r\n type: \"ADD_EXISTING_ATTORNEY_CREATE_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const addExistingAttorneyCreateContractPage = (attorneyId: number | null): AddExistingAttorneyCreateContractPageType => ({\r\n type: \"ADD_EXISTING_ATTORNEY_CREATE_CONTRACT_PAGE\",\r\n payload: { attorneyId }\r\n})\r\n\r\nexport type AddExistingLawFirmForCreateContractPageType = {\r\n type: \"ADD_EXISTING_LAWFIRM_FOR_CREATE_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const addExistingLawFirmForCreateContractPage = (lawFirmId: number | null): AddExistingLawFirmForCreateContractPageType => ({\r\n type: \"ADD_EXISTING_LAWFIRM_FOR_CREATE_CONTRACT_PAGE\",\r\n payload: { lawFirmId }\r\n})\r\n\r\nexport type CreateUserCreateContractPageType = {\r\n type: \"CREATE_USER_CREATE_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const createUserCreateContractPage = (user: any): CreateUserCreateContractPageType => ({\r\n type: \"CREATE_USER_CREATE_CONTRACT_PAGE\",\r\n payload: user\r\n})\r\n\r\nexport type CreateAttorneyForCreateContractPageType = {\r\n type: \"CREATE_ATTORNEY_FOR_CREATE_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const createAttorneyForCreateContractPage = (user: any): CreateAttorneyForCreateContractPageType => ({\r\n type: \"CREATE_ATTORNEY_FOR_CREATE_CONTRACT_PAGE\",\r\n payload: user\r\n})\r\n\r\nexport type AddAmountPaymentEditContractPageType = {\r\n type: \"ADD_AMOUNT_PAYMENT_EDIT_CONTRACT_PAGE\",\r\n payload: any\r\n}\r\n\r\nexport const addAmountPaymentEditContractPage = ({ amount, date }: AmountPaymentsType): AddAmountPaymentEditContractPageType => ({\r\n type: \"ADD_AMOUNT_PAYMENT_EDIT_CONTRACT_PAGE\",\r\n payload: { amount, date }\r\n})\r\n\r\nexport type SetDataForEditContractPageType = {\r\n type: \"SET_DATA_FOR_EDIT_CONTRACT_PAGE\"\r\n payload: any\r\n}\r\n\r\nexport const setDataForEditContractPage = (contractData: any): SetDataForEditContractPageType => ({\r\n type: \"SET_DATA_FOR_EDIT_CONTRACT_PAGE\",\r\n payload: contractData,\r\n})\r\n\r\nexport type SetCommentForCreateContractType = {\r\n type: \"SET_COMMENT_FOR_CREATE_CONTRACT\"\r\n payload: any\r\n}\r\n\r\nexport const setCommentForCreateContract = (commentText: string, userId?: number): SetCommentForCreateContractType => ({\r\n type: \"SET_COMMENT_FOR_CREATE_CONTRACT\",\r\n payload: { commentText, userId },\r\n})\r\n\r\nexport type AddCommentForEditContractType = {\r\n type: \"ADD_COMMENT_EDIT_CONTRACT_PAGE\"\r\n payload: any\r\n}\r\n\r\nexport const addCommentForEditContract = (commentText: string, visible: boolean, userId: number, userName: string): AddCommentForEditContractType => ({\r\n type: \"ADD_COMMENT_EDIT_CONTRACT_PAGE\",\r\n payload: { commentText, visible, userId, userName }\r\n})\r\n\r\nexport type AddStatusForEditContractType = {\r\n type: \"ADD_STATUS_EDIT_CONTRACT_PAGE\"\r\n payload: any\r\n}\r\n\r\nexport const addStatusForEditContract = (contractsStatus: string, dateChange: string, userId: number, statusValue: number): AddStatusForEditContractType => ({\r\n type: \"ADD_STATUS_EDIT_CONTRACT_PAGE\",\r\n payload: { contractsStatus, dateChange, userId, statusValue }\r\n})\r\n\r\nexport type HandlerForCreatePlaintiffInputs = {\r\n type: \"HANDLER_FOR_CREATE_PLAINTIFF_INPUTS\"\r\n payload: any\r\n}\r\n\r\nexport const handlerCreatePlaintiffInputs = (formData: any): HandlerForCreatePlaintiffInputs => ({\r\n type: \"HANDLER_FOR_CREATE_PLAINTIFF_INPUTS\",\r\n payload: formData,\r\n})\r\n\r\nexport type HandlerForCreateAttorneyInputs = {\r\n type: \"HANDLER_FOR_CREATE_ATTORNEY_INPUTS\"\r\n payload: any\r\n}\r\n\r\nexport const handlerCreateAttorneyInputs = (formData: any): HandlerForCreateAttorneyInputs => ({\r\n type: \"HANDLER_FOR_CREATE_ATTORNEY_INPUTS\",\r\n payload: formData,\r\n})\r\n\r\nexport type SetLawFirmToCreatedAttorneyType = {\r\n type: \"SET_LAWFIRM_TO_CREATED_ATTORNEY\"\r\n payload: number\r\n}\r\n\r\nexport const setLawFirmToCreatedAttorney = (lawFirmId: number): SetLawFirmToCreatedAttorneyType => ({\r\n type: \"SET_LAWFIRM_TO_CREATED_ATTORNEY\",\r\n payload: lawFirmId,\r\n})\r\n\r\nexport type ResetCreatedPlaintiffDataType = {\r\n type: \"RESET_CREATED_PLAINTIFF_DATA\"\r\n}\r\n\r\nexport const resetCreatedPlaintiffData = (): ResetCreatedPlaintiffDataType => ({\r\n type: \"RESET_CREATED_PLAINTIFF_DATA\"\r\n})\r\n\r\nexport type ResetCreatedAttorneyDataType = {\r\n type: \"RESET_CREATED_ATTORNEY_DATA\"\r\n}\r\n\r\nexport const resetCreatedAttorneyData = (): ResetCreatedAttorneyDataType => ({\r\n type: \"RESET_CREATED_ATTORNEY_DATA\"\r\n})\r\n\r\nexport type ResetDataForCreateContractType = {\r\n type: \"RESET_DATA_FOR_CREATE_CONTRACT\"\r\n}\r\n\r\nexport const resetDataForCreateContract = (): ResetDataForCreateContractType => ({\r\n type: \"RESET_DATA_FOR_CREATE_CONTRACT\"\r\n})\r\n\r\nexport type EditUsersLawFirmType = {\r\n type: \"EDIT_USERS_LAWFIRM\",\r\n payload: any\r\n}\r\n\r\nexport const editUsersLawFirm = (editableLawFirmId: number, newDataOfLawFirm: any): EditUsersLawFirmType => ({\r\n type: \"EDIT_USERS_LAWFIRM\",\r\n payload: { editableLawFirmId, newDataOfLawFirm }\r\n})\r\n\r\nexport type ActionsTypes =\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType |\r\n ReturnType\r\n\r\n\r\n\r\n\r\n\r\n","export const URL_FOR_API = \"https://api.hopefunding.com\"\r\n//export const URL_FOR_API = \"https://hopefunding-api.42devstudio.com\"\r\n//export const URL_FOR_API = \"https://localhost:44397\"\r\n\r\nexport const SUPPORT_EMAIL = \"support@hopefunding.com\"","export default function getCookie(name: string) {\r\n let matches = document.cookie.match(new RegExp(\r\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\r\n ));\r\n return matches ? decodeURIComponent(matches[1]) : undefined;\r\n}\r\n","import axios from 'axios'\r\nimport getCookie from '../scripts/getCookie'\r\n\r\nconst actionsWithApi = async (method, url, data) => {\r\n let token = getCookie(\"token\");\r\n try {\r\n let response = await axios({\r\n method: method,\r\n url: url,\r\n data: data && JSON.stringify(data),\r\n headers: token ? {\r\n 'Authorization': 'Bearer ' + token,\r\n 'Access-Control-Allow-Origin': '*',\r\n 'content-type': 'application/json; charset=utf-8',\r\n } : { 'Content-Type': 'application/json', 'Accept': '*/* ', 'Access-Control-Allow-Origin': '*' },\r\n withCredentials: true,\r\n });\r\n\r\n return response;\r\n } catch (error) {\r\n throw new Error(error.response.data.Message || error.message);\r\n }\r\n};\r\n\r\n\r\nexport default actionsWithApi","\r\nimport { Button, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { Autocomplete } from '@material-ui/lab'\r\nimport {useState, useEffect, useRef} from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { addExistingAttorneyCreateContractPage, handlerCreateAttorneyInputs, resetCreatedAttorneyData, setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport { StatesType } from '../../../types/stateType'\r\nimport s from './AttorneyInformation.module.scss'\r\nimport getCookie from \"../../../scripts/getCookie\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 210,\r\n marginBottom: 20,\r\n marginRight: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n lawFirmNameInput: {\r\n width: 210,\r\n marginRight: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n textarea: {\r\n width: 100 + \"%\",\r\n marginTop: 10,\r\n marginBottom: 20,\r\n minHeight: 50,\r\n borderRadius: 10,\r\n padding: 10\r\n },\r\n autocomplete: {\r\n width: 210,\r\n marginRight: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n chooseLawFirmBtn: {\r\n marginLeft: 25,\r\n width: 250\r\n }\r\n }),\r\n);\r\n\r\ntype AttorneyInformationType = {\r\n handlerForInputs(e: any): void\r\n setStateForCreateAttorneySection(state: boolean): void\r\n createdAttorneyEmailIsValid: boolean\r\n setLawFrimIdSelectedAttorney(id: number | null): void\r\n lawFrimIdSelectedAttorney: number | null\r\n userWithCurrentEmailIsAlreadyExist: boolean\r\n}\r\n\r\nexport default function AttorneyInformation(props: AttorneyInformationType) {\r\n const currentUserType = getCookie(\"currentUserRole\")\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n let states: Array = useSelector((state: RootState) => state.states)\r\n const [showAttorneyInfoSection, setShowAttorneyInfoSection] = useState(false)\r\n const [attorneys, setAttorneys] = useState([])\r\n const [searchQuery, setSearchQuery] = useState(\"\")\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const searchTimerRef = useRef(null);\r\n const getAttorneys = async (searchQuery: string) => {\r\n if (searchQuery.length > 2) {\r\n try {\r\n setLoaderIsActive(true)\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Autocomplete/attorney?userName=${searchQuery}`)\r\n setAttorneys(response.data)\r\n setLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n else {\r\n setAttorneys([])\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n searchQuery.length === 0 && props.setLawFrimIdSelectedAttorney(null)\r\n getAttorneys(searchQuery)\r\n }, [searchQuery])\r\n\r\n const handleChange = (e: any) => {\r\n const value = e.target.value\r\n const name = e.target.name\r\n dispatch(handlerCreateAttorneyInputs({ [name]: value }))\r\n }\r\n\r\n const [selectedAttorney, setSelectedAttorney] = useState()\r\n const [idSelectedAttorney, setIdSelectedAttorney] = useState()\r\n const selectAttorney = async (attorneyId: number) => {\r\n if (!isNaN(attorneyId)) {\r\n setIdSelectedAttorney(attorneyId)\r\n dispatch(addExistingAttorneyCreateContractPage(attorneyId))\r\n setShowAttorneyInfoSection(true)\r\n dispatch(resetCreatedAttorneyData())\r\n\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/User/${attorneyId}`)\r\n setSelectedAttorney(response.data)\r\n response.data.lawFirms[response.data.lawFirms.length - 1].lawFirmUserId &&\r\n props.setLawFrimIdSelectedAttorney(response.data.lawFirms[response.data.lawFirms.length - 1].lawFirmUserId)\r\n }\r\n catch (error) {\r\n props.setLawFrimIdSelectedAttorney(null)\r\n console.log(error.message)\r\n }\r\n }\r\n else {\r\n setIdSelectedAttorney(null)\r\n dispatch(addExistingAttorneyCreateContractPage(null))\r\n setShowAttorneyInfoSection(false)\r\n }\r\n }\r\n\r\n const [createdAttorneySection, setCreatedAttorneySection] = useState(false)\r\n\r\n const handleAutocomplete = async (value: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n setSearchQuery(value)\r\n }, 500)\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n

Attorney Information

\r\n\r\n

\r\n Type in the name of your desired Attorney below to search and select the right user.\r\n

\r\n {\r\n currentUserType === \"Administrator\"\r\n ? If the person doesn't exist within the system, then click 'Create Attorney' and add their personal information.\r\n : ''\r\n }\r\n

\r\n\r\n
\r\n \r\n (option.firstName ? (option.firstName.toString() + \" \") : \"\") +\r\n (option.lastName ? option.lastName.toString() + \"\" : \"\")\r\n }\r\n className={classes.autocomplete}\r\n renderInput={(params) => (\r\n handleAutocomplete(e.target.value || \"\")}\r\n fullWidth required={!createdAttorneySection}\r\n />\r\n )}\r\n onChange={(e, value, reason) => {\r\n {\r\n selectAttorney(parseInt(value ? value.id + \"\" : \"\"))\r\n reason === \"clear\" && props.setLawFrimIdSelectedAttorney(null)\r\n }\r\n }}\r\n />\r\n\r\n {currentUserType === \"Administrator\" ?
Or
: \"\"}\r\n\r\n {currentUserType === \"Administrator\" ?\r\n {\r\n showAttorneyInfoSection ? setCreatedAttorneySection(createdAttorneySection) : setCreatedAttorneySection(!createdAttorneySection)\r\n props.setStateForCreateAttorneySection(!createdAttorneySection)\r\n }}\r\n >\r\n Create attorney\r\n : \"\"\r\n }\r\n
\r\n\r\n {showAttorneyInfoSection && selectedAttorney &&\r\n
\r\n {selectedAttorney.email && }\r\n\r\n {selectedAttorney.phoneNumber && }\r\n
\r\n }\r\n\r\n {createdAttorneySection && !showAttorneyInfoSection &&\r\n
\r\n { handleChange(e) }} required={createdAttorneySection ? true : false} />\r\n { handleChange(e) }} required={createdAttorneySection ? true : false} />\r\n { handleChange(e) }} required={createdAttorneySection ? true : false} />\r\n {(!props.createdAttorneyEmailIsValid && !props.userWithCurrentEmailIsAlreadyExist) && The email address is invalid}\r\n {props.userWithCurrentEmailIsAlreadyExist && A user with this email already exists. Please type in the name and select from the list to create a new Contract.}\r\n\r\n { handleChange(e) }} required={createdAttorneySection ? true : false} />\r\n \r\n State\r\n \r\n \r\n
\r\n }\r\n
\r\n\r\n {props.lawFrimIdSelectedAttorney &&\r\n
\r\n

Law Firm

\r\n
\r\n {selectedAttorney.lawFirms.length > 0 &&\r\n \r\n }\r\n\r\n
Or
\r\n\r\n \r\n
\r\n
\r\n }\r\n \r\n )\r\n}\r\n","import DateFnsUtils from '@date-io/date-fns';\r\nimport { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { Alert } from '@material-ui/lab';\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\r\nimport { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { handlerForCreateContractAttorneyInputs } from '../../../actions/actions';\r\nimport s from './CaseInformation.module.scss'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 210,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n textarea: {\r\n marginTop: 10,\r\n marginBottom: 20,\r\n },\r\n mediumInput: {\r\n width: 340,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n fontSize: 12\r\n }\r\n },\r\n alert: {\r\n maxWidth: 600,\r\n marginBottom: 20,\r\n color: \"#B03534\",\r\n fontSize: 16,\r\n [theme.breakpoints.down('xs')]: {\r\n maxWidth: \"100%\",\r\n fontSize: 12\r\n }\r\n },\r\n longInputLabel: {\r\n [theme.breakpoints.down('xs')]: {\r\n fontSize: 12\r\n }\r\n },\r\n invalidEmailLabel: {\r\n color: \"red\",\r\n marginTop: \"-35px\",\r\n marginBottom: \"20px\"\r\n }\r\n }),\r\n);\r\n\r\ntype CaseInformationType = {\r\n handlerForInputs(e: any): void\r\n caseManagerEmailIsValid: boolean\r\n contractType: \"PreSettlement\" | \"PostSettlement\"\r\n}\r\n\r\nexport default function CaseInformation(props: CaseInformationType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [estimatedDuration, setEstimatedDuration] = useState(new Date().toISOString())\r\n const handleEstimatedDuration = (date: any) => {\r\n try {\r\n dispatch(handlerForCreateContractAttorneyInputs({ \"estimatedDuration\": new Date(date).toISOString() + \"\" }))\r\n setEstimatedDuration(date)\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n const [dateAccident, setDateAccident] = useState(new Date().toISOString())\r\n const handleDateAccident = (date: any) => {\r\n try {\r\n dispatch(handlerForCreateContractAttorneyInputs({ \"dateAccident\": new Date(date).toISOString() + \"\" }))\r\n setDateAccident(date)\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n return (\r\n
\r\n

Case Information

\r\n\r\n
\r\n props.handlerForInputs(e)}\r\n label=\"Case ID (or short description if not known)\"\r\n InputLabelProps={{ className: classes.longInputLabel }}\r\n required\r\n />\r\n\r\n \r\n\r\n {props.contractType === \"PreSettlement\" &&\r\n \r\n \r\n Your estimated repayment amount is based on your estimated settlement date.

\r\n Note, this is just an estimate. When repayment is ready to be submitted, please use the payoff statement feature on your client's funding page for the actual amount due at that time.\r\n
\r\n
\r\n }\r\n\r\n props.handlerForInputs(e)}\r\n label=\"Opposing Insurance\"\r\n required\r\n />\r\n\r\n props.handlerForInputs(e)}\r\n label=\"Insurance Adjuster\"\r\n />\r\n\r\n props.handlerForInputs(e)}\r\n label=\"Insurance Adjuster Phone\"\r\n />\r\n\r\n props.handlerForInputs(e)}\r\n label=\"Insurance Claim\"\r\n />\r\n\r\n \r\n Accepted Liability\r\n props.handlerForInputs(e)}\r\n required\r\n >\r\n Yes\r\n No\r\n \r\n \r\n\r\n \r\n Property Damage\r\n props.handlerForInputs(e)}\r\n required\r\n >\r\n Slight\r\n Moderate\r\n Extensive\r\n None\r\n \r\n \r\n\r\n \r\n Injury Level\r\n \r\n \r\n\r\n \r\n\r\n \r\n {!props.caseManagerEmailIsValid && The email address is invalid}\r\n\r\n Injury/Accident Description *\r\n props.handlerForInputs(e)}\r\n placeholder=\"Write Description...\"\r\n multiline required\r\n />\r\n\r\n
\r\n
\r\n )\r\n}\r\n","import { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from '../../../reducers/rootReducers';\r\n\r\nimport s from './FinancialInformation.module.scss'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 260,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n formControl2Type: {\r\n width: 390,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n fontSize: \"11px\"\r\n }\r\n },\r\n mediumInput: {\r\n width: 240,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n longSelectLabel: {\r\n [theme.breakpoints.down('xs')]: {\r\n fontSize: 12\r\n }\r\n }\r\n }),\r\n);\r\n\r\ntype FinancialInformationType = {\r\n handlerForInputs(e: any): void\r\n fundingRecipientEmailIsValid: boolean\r\n}\r\n\r\nexport default function FinancialInformation(props: FinancialInformationType) {\r\n const classes = useStyles()\r\n let contractType = useSelector((state: RootState) => state.createContractAttorney.contractType)\r\n\r\n return (\r\n
\r\n

Financial Information

\r\n\r\n
\r\n props.handlerForInputs(e)} required />\r\n\r\n {contractType === \"PostSettlement\" &&\r\n props.handlerForInputs(e)} label=\"Settlement Amount\" required={contractType === \"PostSettlement\"} />\r\n }\r\n\r\n {contractType === \"PreSettlement\" &&\r\n \r\n Estimated Settlement Amount *\r\n \r\n \r\n }\r\n\r\n \r\n Estimated amount of funds needed in the future\r\n \r\n \r\n\r\n props.handlerForInputs(e)} label=\"Funding Recipient Email\" required />\r\n {!props.fundingRecipientEmailIsValid && The email address is invalid}\r\n
\r\n\r\n
\r\n )\r\n}\r\n","export default function dateFormatting(srcDate: any) {\r\n const divider = \"-\"\r\n\r\n srcDate = srcDate + \"\"\r\n if(srcDate.length < 1 || !srcDate) {\r\n return \"\"\r\n }\r\n\r\n srcDate = srcDate + \"\"\r\n let cutDate = srcDate.split(\"\").splice(0, 10).join(\"\") + \"\"\r\n let year = cutDate.slice(0, 4)\r\n let month = cutDate.slice(5, 7)\r\n let dt = cutDate.slice(8, 10)\r\n return month + divider + dt + divider + year\r\n}","\r\nimport { Button, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { Alert, Autocomplete } from '@material-ui/lab'\r\nimport {useEffect, useRef, useState} from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { addExistingUserCreateContractPage, createUserCreateContractPage, handlerCreatePlaintiffInputs, resetCreatedPlaintiffData, setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { SUPPORT_EMAIL, URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport { StatesType } from '../../../types/stateType'\r\nimport s from './Plaintiff.module.scss'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 210,\r\n marginBottom: 20,\r\n \"&>span\": {\r\n display: \"block\",\r\n marginBottom: 5\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n autocomplete: {\r\n width: 210,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n formControlCreateUser: {\r\n marginRight: 20\r\n }\r\n }),\r\n);\r\n\r\ntype PlaintiffType = {\r\n handlerForInputs(e: any): void\r\n setStateForCreatePlaintiffSection(state: boolean): void\r\n createdPlaintiffEmailIsValid: boolean\r\n contractType: \"PreSettlement\" | \"PostSettlement\"\r\n userWithCurrentEmailIsAlreadyExist: boolean\r\n}\r\n\r\nexport default function Plaintiff(props: PlaintiffType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n let states: Array = useSelector((state: RootState) => state.states)\r\n const searchTimerRef = useRef(null);\r\n const [showPlaintiffInfoSection, setShowPlaintiffInfoSection] = useState(false)\r\n\r\n const [clients, setClients] = useState([])\r\n const [searchQuery, setSearchQuery] = useState(\"\")\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const getClients = async () => {\r\n if (searchQuery.length > 2) {\r\n try {\r\n setLoaderIsActive(true)\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Autocomplete/client?userName=${searchQuery}`)\r\n setClients(response.data)\r\n setLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n else {\r\n setClients([])\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getClients()\r\n }, [searchQuery])\r\n\r\n const [selectedClient, setSelectedClient] = useState()\r\n const [idSelectedClient, setIdSelectedClient] = useState(-1)\r\n const selectClient = async (clientId: number) => {\r\n if (!isNaN(clientId)) {\r\n dispatch(createUserCreateContractPage(null))\r\n setIdSelectedClient(clientId)\r\n dispatch(addExistingUserCreateContractPage(clientId))\r\n setShowPlaintiffInfoSection(true)\r\n dispatch(resetCreatedPlaintiffData())\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/User/${clientId}`)\r\n setSelectedClient(response.data)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n else {\r\n setIdSelectedClient(null)\r\n dispatch(addExistingUserCreateContractPage(null))\r\n setShowPlaintiffInfoSection(false)\r\n }\r\n }\r\n\r\n const [createdPlaintiffSection, setCreatedPlaintiffSection] = useState(false)\r\n\r\n const handleChange = (e: any) => {\r\n let value = e.target.value\r\n const name = e.target.name\r\n\r\n if (name === \"dateOfBirth\") {\r\n value = new Date(value).toISOString()\r\n }\r\n\r\n dispatch(handlerCreatePlaintiffInputs({ [name]: value }))\r\n }\r\n\r\n const handleAutocomplete = async (value: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n setSearchQuery(value)\r\n }, 500)\r\n }\r\n\r\n return (\r\n
\r\n

Plaintiff Background

\r\n\r\n

\r\n Type in the name of your desired Plaintiff below to search and select the right user.

\r\n If the person doesn't exist within the system, then click 'Create New Plaintiff' and add their personal information.\r\n

\r\n\r\n {props.contractType === \"PostSettlement\"\r\n ? \r\n

You can only request Post Settlement funding for Plaintiffs who have already received funding in a Pre-Settlement request.

\r\n

If your client doesn’t not have an approved Pre-Settlement request, please contact {SUPPORT_EMAIL}

\r\n \r\n : \"\"\r\n }\r\n\r\n
\r\n \r\n (option.firstName ? (option.firstName.toString() + \" \") : \"\") +\r\n (option.lastName ? option.lastName.toString() + \"\" : \"\")\r\n }\r\n className={classes.autocomplete}\r\n renderInput={(params) => (\r\n handleAutocomplete(e.target.value || \"\")}\r\n fullWidth\r\n required={!createdPlaintiffSection}\r\n />\r\n )}\r\n onChange={(e, value) => selectClient(parseInt(value ? value.id + \"\" : \"\"))}\r\n />\r\n\r\n
Or
\r\n\r\n \r\n
\r\n\r\n {\r\n showPlaintiffInfoSection && selectedClient &&\r\n
\r\n {selectedClient.dateOfBirth && }\r\n {selectedClient.streetAddress && }\r\n {selectedClient.city && }\r\n {selectedClient.zipCode && }\r\n {selectedClient.state && }\r\n {selectedClient.email && }\r\n {selectedClient.phoneNumber && }\r\n
\r\n }\r\n\r\n {\r\n createdPlaintiffSection && !showPlaintiffInfoSection &&\r\n
\r\n { handleChange(e) }} required={createdPlaintiffSection ? true : false} />\r\n { handleChange(e) }} required={createdPlaintiffSection ? true : false} />\r\n \r\n handleChange(e)} size=\"small\" label=\"Street Address\" required={createdPlaintiffSection ? true : false} />\r\n handleChange(e)} size=\"small\" label=\"City\" required={createdPlaintiffSection ? true : false} />\r\n handleChange(e)} size=\"small\" label=\"Zipcode\" required={createdPlaintiffSection ? true : false} />\r\n \r\n State\r\n \r\n \r\n handleChange(e)} variant=\"outlined\" size=\"small\" label=\"Plaintiff Email\" required={createdPlaintiffSection ? true : false} />\r\n\r\n {(!props.createdPlaintiffEmailIsValid && !props.userWithCurrentEmailIsAlreadyExist) && The email address is invalid}\r\n {props.userWithCurrentEmailIsAlreadyExist && A user with this email already exists. Please type in the name and select from the list to create a new Contract.}\r\n handleChange(e)} variant=\"outlined\" size=\"small\" label=\"Phone Number\" required={createdPlaintiffSection ? true : false} />\r\n
\r\n }\r\n\r\n
\r\n )\r\n}\r\n","\r\nimport { Button, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { Autocomplete } from '@material-ui/lab'\r\nimport {useRef, useState} from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { addExistingLawFirmForCreateContractPage, setLawFirmToCreatedAttorney, setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport { StatesType } from '../../../types/stateType'\r\nimport s from './AddLawFirms.module.scss'\r\nimport getCookie from \"../../../scripts/getCookie\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 210,\r\n marginRight: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n lawFirmNameField: {\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n }\r\n }\r\n }),\r\n)\r\n\r\nexport type AddLAwFirmsType = {\r\n setStateForCreateLawFirmSection(state: boolean): void\r\n setNameCreatedLawFirm(state: string): void\r\n setStateCreatedLawFirm(state: string): void\r\n}\r\n\r\nexport default function AddLawFirms(props: AddLAwFirmsType) {\r\n const currentUserType = getCookie(\"currentUserRole\")\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const searchTimerRef = useRef(null);\r\n let states: Array = useSelector((state: RootState) => state.states)\r\n const [createdLawFirmSection, setCreatedLawFirmSection] = useState(false)\r\n const [idSelectedLawFirm, setIdSelectedLawFirm] = useState()\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const [lawFirms, setLawFirms] = useState([])\r\n const getLawFirms = async (searchValue: string = \"\") => {\r\n if (searchValue.length < 3) {\r\n return\r\n }\r\n\r\n try {\r\n setLoaderIsActive(true)\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Autocomplete/lawFirm?userName=${searchValue}`)\r\n setLawFirms(response.data)\r\n setLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n setLoaderIsActive(false)\r\n setLawFirms([])\r\n }\r\n }\r\n\r\n const handleAutocomplete = async (value: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n getLawFirms(value)\r\n }, 500)\r\n }\r\n\r\n return (\r\n
\r\n

Law Firms

\r\n\r\n

\r\n If your Law Firm doesn't immediately appear after indicating the Attorney, then you need to be sure to request the admin to connect a Law Firm to the Attorney's account.Type in the name of your desired Attorney below to search and select the right user.\r\n {\r\n currentUserType === \"Administrator\"\r\n ? If the person doesn't exist within the system, then click 'Create Attorney' and add their personal information.\r\n : ''\r\n }\r\n

\r\n\r\n
\r\n \r\n (option.firstName ? (option.firstName.toString() + \" \") : \"\") +\r\n (option.lastName ? option.lastName.toString() + \"\" : \"\")\r\n }\r\n className={classes.formControl}\r\n renderInput={(params) => (\r\n handleAutocomplete(e.target.value || \"\")}\r\n fullWidth required={!createdLawFirmSection}\r\n />\r\n )}\r\n onChange={(e, value) => {\r\n setIdSelectedLawFirm(value ? value.id : null)\r\n dispatch(addExistingLawFirmForCreateContractPage(value ? value.id : null))\r\n setCreatedLawFirmSection(false)\r\n props.setStateForCreateLawFirmSection(false)\r\n dispatch(setLawFirmToCreatedAttorney(parseInt(value?.id)))\r\n }}\r\n />\r\n {currentUserType === \"Administrator\" ?
Or
: \"\"}\r\n\r\n {currentUserType === \"Administrator\" ?\r\n {\r\n setCreatedLawFirmSection(!createdLawFirmSection)\r\n props.setStateForCreateLawFirmSection(!createdLawFirmSection)\r\n }}\r\n >\r\n Create Law Firm\r\n : \"\"}\r\n
\r\n\r\n {createdLawFirmSection && !idSelectedLawFirm &&\r\n
\r\n { props.setNameCreatedLawFirm(e.target.value) }}\r\n required={createdLawFirmSection}\r\n />\r\n\r\n \r\n State\r\n\r\n \r\n \r\n
\r\n }\r\n\r\n
\r\n )\r\n}\r\n","export const validatePassword = (password: string, confirmPassword: string) => {\r\n let passwordsMatch = true\r\n let hasNum = false\r\n let hasUpperCase = false\r\n let hasLowerCase = false\r\n\r\n passwordsMatch = password !== confirmPassword ? false : true\r\n\r\n function hasNumbers(password: string) {\r\n var regex = /\\d/g;\r\n return regex.test(password);\r\n }\r\n hasNum = hasNumbers(password)\r\n\r\n for (let i = 0; i < password.length; i++) {\r\n if (hasNumbers(password[i])) {\r\n continue\r\n } else {\r\n password[i] === password[i].toUpperCase() ? hasUpperCase = true : hasLowerCase = true\r\n }\r\n }\r\n\r\n let result = hasNum && hasUpperCase && hasLowerCase && password.length >= 8\r\n\r\n return [result, passwordsMatch]\r\n}\r\n\r\nexport const validateEmail = (email: string) => {\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(String(email).toLowerCase());\r\n}\r\n\r\nexport const validateZipCode = (zipCode: string): boolean => {\r\n let tempZipCode: string | undefined = zipCode.match(/[^\\s\\-]+?/g)?.join(\"\")\r\n var c\r\n if (tempZipCode) {\r\n c = (tempZipCode.length < 9) ? 5 : 9\r\n let re = new RegExp(\"^\\\\d{\" + c + \"}$\")\r\n return re.test(String(tempZipCode))\r\n }\r\n else {\r\n return false\r\n }\r\n}","import { Alert } from '@material-ui/lab'\r\nimport s from './CreateContractNotes.module.scss'\r\n\r\nexport type CreateContractNotesPropsType = {\r\n contractType: \"PreSettlement\" | \"PostSettlement\"\r\n}\r\n\r\nexport default function CreateContractNotes(props: CreateContractNotesPropsType) {\r\n return (\r\n
\r\n {props.contractType === \"PostSettlement\" &&\r\n \r\n NOTICE: As a reminder to your clients, all post-settlement funding rates are good for 60 days after funding. After that time, if repayment has not been received, the rates default to pre-settlement funding rates. In addition, because of the nature of the post-settlement rates and timing, by board policy, we are unable to offer reductions to the total, final amount due for a client if a post-settlement funding is issued. The committee that governs our rates and approvals require post settlement fundings be issued on cases that have settled with enough proceeds to pay back all fundings in full.\r\n \r\n }\r\n
\r\n )\r\n}","import { CircularProgress } from \"@material-ui/core\"\r\n\r\nexport type PreloaderPropsType = {\r\n size: string\r\n position: \"left\" | \"right\" | \"center\"\r\n}\r\n\r\nexport default function Preloader(props: PreloaderPropsType) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}","import { Button, Container, createStyles, Divider, FormControlLabel, makeStyles, Radio, RadioGroup, TextField, Theme } from '@material-ui/core'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { addAmountRequestedCreateContractPage, addExistingAttorneyCreateContractPage, addExistingLawFirmForCreateContractPage, addExistingUserCreateContractPage, createAttorneyForCreateContractPage, createUserCreateContractPage, handlerForCreateContractAttorneyInputs, resetCreatedAttorneyData, resetCreatedPlaintiffData, resetDataForCreateContract, setCommentForCreateContract, setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../reducers/rootReducers'\r\nimport AttorneyInformation from './AttorneyInformation/AttorneyInformation'\r\nimport CaseInformation from './CaseInformation/CaseInformation'\r\nimport s from './CreateContractAttorney.module.scss'\r\nimport FinancialInformation from './FinancialInformation/FinancialInformation'\r\nimport Plaintiff from './Plaintiff/Plaintiff'\r\nimport { history } from '../../../App'\r\nimport getCookie from '../../scripts/getCookie'\r\nimport AddLawFirms from './AddLawFirms/AddLawFirms'\r\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\r\nimport { Alert, AlertTitle } from '@material-ui/lab'\r\nimport { validateEmail } from '../../scripts/registrationValidate'\r\nimport { Element } from 'react-scroll'\r\nimport CreateContractNotes from './CreateContractNotes/CreateContractNotes'\r\nimport Preloader from '../shared/Preloader/Preloader'\r\nlet Scroll = require('react-scroll')\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n textarea: {\r\n width: 100 + \"%\",\r\n marginTop: 10,\r\n marginBottom: 20,\r\n minHeight: 50,\r\n borderRadius: 10,\r\n resize: 'none'\r\n },\r\n mainTopAlert: {\r\n marginBottom: 25,\r\n [theme.breakpoints.down('xs')]: {\r\n fontSize: \"12px\",\r\n marginBottom: 15\r\n }\r\n }\r\n }),\r\n);\r\n\r\n\r\nexport default function CreateContractAttorney() {\r\n let scroller = Scroll.scroller\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n // Selectors\r\n let fundingRecipientEmail = useSelector((state: RootState) => state.createContractAttorney.recipientCheck)\r\n let caseManagerEmail = useSelector((state: RootState) => state.createContractAttorney.caseManager)\r\n let createdPlaintiffEmail = useSelector((state: RootState) => state.createdPlaintiffData.email)\r\n let createdAttorneyEmail = useSelector((state: RootState) => state.createdAttorneyfData.email)\r\n let contractData = useSelector((state: RootState) => state.createContractAttorney)\r\n\r\n let createdPlaintiffData = useSelector((state: RootState) => state.createdPlaintiffData)\r\n let createdPlaintiffId = useSelector((state: RootState) => state.createContractAttorney.contractClientDTO\r\n ? state.createContractAttorney.contractClientDTO.userId : null)\r\n\r\n let createdAttorneyData = useSelector((state: RootState) => state.createdAttorneyfData)\r\n let createdAttorneyId = useSelector((state: RootState) => state.createContractAttorney.contractAttorneyDTO\r\n ? (state.createContractAttorney.contractAttorneyDTO.length > 0 ? state.createContractAttorney.contractAttorneyDTO[0].userId : null)\r\n : null)\r\n let contractType = useSelector((state: RootState) => state.createContractAttorney.contractType)\r\n\r\n // States\r\n const [fundingRecipientEmailIsValid, setFundingRecipientEmailIsValid] = useState(true)\r\n const [createdPlaintiffEmailIsValid, setCreatedPlaintiffEmailIsValid] = useState(true)\r\n const [createdAttorneyEmailIsValid, setCreatedAttorneyEmailIsValid] = useState(true)\r\n const [caseManagerEmailIsValid, setCaseManagerEmailIsValid] = useState(true)\r\n // check if the button \"create client\" || \"create attorney\" || \"create lawFirm\" was touched\r\n const [createPlaintiffSectionIsOpen, setStateForCreatePlaintiffSection] = useState(false)\r\n const [createAttorneySectionIsOpen, setStateForCreateAttorneySection] = useState(false)\r\n const [createLawFirmSectionIsOpen, setStateForCreateLawFirmSection] = useState(false)\r\n // data about created new lawFirm\r\n const [nameCreatedLawFirm, setNameCreatedLawFirm] = useState(\"\")\r\n const [stateCreatedLawFirm, setStateCreatedLawFirm] = useState(\"\")\r\n // ID of the last lawFirm for the selected(existing) atorney (we use it if we have not chosen and did not create any lawFirm)\r\n const [lawFrimIdSelectedAttorney, setLawFrimIdSelectedAttorney] = useState(null)\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n\r\n const [plaintiffWithCurrentEmailIsAlreadyExist, setPlaintiffWithCurrentEmailIsAlreadyExist] = useState(false)\r\n const [attorneyWithCurrentEmailIsAlreadyExist, setAttorneyWithCurrentEmailIsAlreadyExist] = useState(false)\r\n\r\n const currentUserId = parseInt(getCookie(\"currentUserId\") + \"\")\r\n const currentUserType = getCookie(\"currentUserRole\")\r\n\r\n const actionsIfPropIsNotValid = (setPropIsNotValid: Dispatch>, message: string, anchor: string) => {\r\n setPropIsNotValid(false)\r\n dispatch(setNotificationInfo({ message: message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n scroller.scrollTo(anchor, { duration: 800, delay: 0, smooth: 'easeInOutQuart' })\r\n }\r\n\r\n const handlerInputChange = (e: any) => {\r\n let value = e.target.value\r\n const name = e.target.name\r\n\r\n if (name === \"liability\") {\r\n value === \"Yes\" ? value = true : value = false\r\n dispatch(handlerForCreateContractAttorneyInputs({ [name]: value }))\r\n }\r\n else if (name === \"comment\") {\r\n dispatch(setCommentForCreateContract(value, currentUserId))\r\n }\r\n else if (name === \"amountRequested\") {\r\n dispatch(addAmountRequestedCreateContractPage(parseInt(value), new Date().toISOString() + \"\", parseInt(currentUserId + \"\")))\r\n }\r\n else {\r\n dispatch(handlerForCreateContractAttorneyInputs({ [name]: value }))\r\n }\r\n }\r\n\r\n const handlePlaintiff = () => {\r\n // If there is no id of an existing client, we create new one, if we do not create new one, we select the current logged client\r\n // + check if the client creation section is open, if the section is not open sending null for contractClientDTO\r\n if (!createdPlaintiffId && createPlaintiffSectionIsOpen) {\r\n dispatch(createUserCreateContractPage(createdPlaintiffData))\r\n contractData.contractClientDTO ? contractData.contractClientDTO.user = createdPlaintiffData : contractData.contractClientDTO = { user: createdPlaintiffData, userId: null }\r\n }\r\n else if (!createdPlaintiffId) {\r\n contractData.contractClientDTO ? contractData.contractClientDTO.userId = currentUserId : contractData.contractClientDTO = { user: null, userId: currentUserId }\r\n }\r\n }\r\n\r\n const handleAttorney = () => {\r\n // If there is no existing attorney id, create a new one + check if there is already a new attorney object in the attorneys array\r\n // + check if the attorney creation section is open, if the section is not open, send null for new attorney data obj in contractAttorneyDTO\r\n if (!createdAttorneyId && createAttorneySectionIsOpen) {\r\n dispatch(createAttorneyForCreateContractPage(createdAttorneyData))\r\n if (contractData.contractAttorneyDTO) {\r\n // if the array already exists then we update the data of the first element, if it does not exist, add 1 element to the array\r\n if (contractData.contractAttorneyDTO.length === 0) {\r\n contractData.contractAttorneyDTO.push(\r\n {\r\n user: createdAttorneyData,\r\n userId: null,\r\n date: new Date().toISOString()\r\n }\r\n )\r\n }\r\n else {\r\n contractData.contractAttorneyDTO[0].user = createdAttorneyData\r\n contractData.contractAttorneyDTO[0].userId = null\r\n contractData.contractAttorneyDTO[0].date = new Date().toISOString()\r\n }\r\n }\r\n }\r\n }\r\n\r\n const handleLawFirm = () => {\r\n // check if the lawFirm creation section is open then setData about new lawFirm\r\n if (createLawFirmSectionIsOpen) {\r\n if (contractData.contractLawFirmDTO) {\r\n if (contractData.contractLawFirmDTO.length === 0) {\r\n contractData.contractLawFirmDTO.push(\r\n {\r\n user: { firstName: nameCreatedLawFirm, state: { key: stateCreatedLawFirm } },\r\n userId: null,\r\n date: new Date().toISOString()\r\n }\r\n )\r\n }\r\n else {\r\n contractData.contractLawFirmDTO[0].user = { firstName: nameCreatedLawFirm, state: { key: stateCreatedLawFirm } }\r\n contractData.contractLawFirmDTO[0].userId = null\r\n contractData.contractLawFirmDTO[0].date = new Date().toISOString()\r\n }\r\n }\r\n }\r\n // if we have not created a new lawFirm we take the lawFirm of the selected(existing) attorney\r\n else {\r\n if (contractData && contractData.contractLawFirmDTO && lawFrimIdSelectedAttorney) {\r\n if (contractData.contractLawFirmDTO.length === 0) {\r\n contractData.contractLawFirmDTO.push(\r\n {\r\n user: null,\r\n userId: lawFrimIdSelectedAttorney,\r\n date: new Date().toISOString()\r\n }\r\n )\r\n }\r\n else {\r\n contractData.contractLawFirmDTO[0].user = null\r\n contractData.contractLawFirmDTO[0].userId = lawFrimIdSelectedAttorney\r\n contractData.contractLawFirmDTO[0].date = new Date().toISOString()\r\n }\r\n }\r\n }\r\n }\r\n\r\n const validateEmails = async () => {\r\n\r\n if (!validateEmail(fundingRecipientEmail) && fundingRecipientEmail.length > 0) {\r\n actionsIfPropIsNotValid(setFundingRecipientEmailIsValid, \"The Funding Recipient Email address is invalid\", 'financial-information-section')\r\n return false\r\n }\r\n else {\r\n setFundingRecipientEmailIsValid(true)\r\n }\r\n if (!validateEmail(createdPlaintiffEmail) && createPlaintiffSectionIsOpen) {\r\n actionsIfPropIsNotValid(setCreatedPlaintiffEmailIsValid, \"Plaintiff's email address is invalid\", 'created-plaintiff-section')\r\n return false\r\n }\r\n else {\r\n setCreatedPlaintiffEmailIsValid(true)\r\n }\r\n if (!validateEmail(createdAttorneyEmail) && createAttorneySectionIsOpen) {\r\n actionsIfPropIsNotValid(setCreatedAttorneyEmailIsValid, \"Attorney's email address is invalid\", 'attorney-information-section')\r\n return false\r\n }\r\n else {\r\n setCreatedAttorneyEmailIsValid(true)\r\n }\r\n if (!validateEmail(caseManagerEmail) && caseManagerEmail.length > 0) {\r\n actionsIfPropIsNotValid(setCaseManagerEmailIsValid, \"Case manager email address is invalid\", 'case-information-section')\r\n return false\r\n }\r\n else {\r\n setCaseManagerEmailIsValid(true)\r\n }\r\n\r\n if (createPlaintiffSectionIsOpen) {\r\n const emailIsAlreadyRegistered = await checkPlaintiffEmailForRegistrationInSystem(createdPlaintiffEmail)\r\n\r\n if (emailIsAlreadyRegistered) { return false }\r\n }\r\n\r\n if (createAttorneySectionIsOpen) {\r\n const emailIsAlreadyRegistered = await checkAttorneyEmailForRegistrationInSystem(createdAttorneyEmail)\r\n\r\n if (emailIsAlreadyRegistered) { return false }\r\n }\r\n\r\n return true\r\n\r\n }\r\n\r\n const checkPlaintiffEmailForRegistrationInSystem = async (currentNewPlaintiffEmail: string): Promise => {\r\n return new Promise (async (resolve, reject) => {\r\n try {\r\n const emailIsAlreadyRegistered = await checkEmailForRegistrationInSystem(currentNewPlaintiffEmail)\r\n\r\n if (emailIsAlreadyRegistered) {\r\n actionsIfPropIsNotValid(setCreatedPlaintiffEmailIsValid, \"A user with this email is already registered\", 'created-plaintiff-section')\r\n setPlaintiffWithCurrentEmailIsAlreadyExist(true)\r\n resolve(true)\r\n } else {\r\n setCreatedPlaintiffEmailIsValid(true)\r\n setPlaintiffWithCurrentEmailIsAlreadyExist(false)\r\n resolve(false)\r\n }\r\n }\r\n catch {\r\n reject()\r\n }\r\n })\r\n }\r\n\r\n const checkAttorneyEmailForRegistrationInSystem = async (currentNewAttorneyEmail: string): Promise => {\r\n return new Promise (async (resolve, reject) => {\r\n try {\r\n const emailIsAlreadyRegistered = await checkEmailForRegistrationInSystem(currentNewAttorneyEmail)\r\n\r\n if (emailIsAlreadyRegistered) {\r\n actionsIfPropIsNotValid(setCreatedAttorneyEmailIsValid, \"A user with this email is already registered\", 'attorney-information-section')\r\n setAttorneyWithCurrentEmailIsAlreadyExist(true)\r\n resolve(true)\r\n } else {\r\n setCreatedAttorneyEmailIsValid(true)\r\n setAttorneyWithCurrentEmailIsAlreadyExist(false)\r\n resolve(false)\r\n }\r\n }\r\n catch {\r\n reject()\r\n }\r\n })\r\n }\r\n\r\n const checkEmailForRegistrationInSystem = async (email: string): Promise => {\r\n return new Promise (async (resolve, reject) => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/User?Email=${email}`)\r\n const emailIsAlreadyRegistered = response.data.length > 0;\r\n resolve(emailIsAlreadyRegistered)\r\n }\r\n catch {\r\n reject()\r\n }\r\n })\r\n }\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n setLoaderIsActive(true)\r\n\r\n // validate form and if validation is successful...\r\n if (await validateEmails()) {\r\n try {\r\n handlePlaintiff()\r\n handleAttorney()\r\n handleLawFirm()\r\n\r\n // try to send query\r\n try {\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + \"/api/v1/Contract\", contractData)\r\n // if response is ok - reset all id in the store\r\n dispatch(addExistingUserCreateContractPage(null))\r\n dispatch(addExistingAttorneyCreateContractPage(null))\r\n dispatch(addExistingLawFirmForCreateContractPage(null))\r\n\r\n // reset attorney + plaintiff data\r\n dispatch(resetCreatedAttorneyData())\r\n dispatch(resetCreatedPlaintiffData())\r\n\r\n // reset store (Create Contract Page)\r\n dispatch(resetDataForCreateContract())\r\n\r\n dispatch(setNotificationInfo({ message: \"Contract created successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n history.push(`/contract-page?${response.data.id}`)\r\n window.scrollTo({ top: 0, behavior: \"smooth\" })\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: \"some error from BE \" + error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: \"some error from FE, please reload the page\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n finally {\r\n // if we decided not to create attorney/lawFirm or something went wrong\r\n if (contractData.contractAttorneyDTO && contractData.contractAttorneyDTO[0]?.user === null && contractData.contractAttorneyDTO[0]?.userId === null) {\r\n contractData.contractAttorneyDTO = null\r\n }\r\n if (contractData.contractLawFirmDTO && contractData.contractLawFirmDTO[0]?.user === null && contractData.contractLawFirmDTO[0]?.userId === null) {\r\n contractData.contractLawFirmDTO = null\r\n }\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n setLoaderIsActive(false)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Warning\r\n If you would like to request additional funds for an existing case, please do so by visiting the existing case page and clicking ‘Request Additional Funds’. Your cases can be found by clicking ‘Case History’ in the top menu.\r\n \r\n
handleSubmit(e)}>\r\n

Select the Contract Type

\r\n\r\n handlerInputChange(e)}>\r\n } label=\"Pre-Settlement\" labelPlacement=\"top\" />\r\n } label=\"Post-Settlement\" labelPlacement=\"top\" />\r\n \r\n\r\n \r\n \r\n \r\n {currentUserType !== \"Client\" &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!lawFrimIdSelectedAttorney &&\r\n \r\n }\r\n\r\n
\r\n Comments: \r\n handlerInputChange(e)}\r\n placeholder=\"Write comment...\" multiline />\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n Submit\r\n \r\n \r\n {loaderIsActive && }\r\n
\r\n\r\n \r\n
\r\n \r\n )\r\n}\r\n","import AddCircleIcon from '@material-ui/icons/AddCircle'\r\n\r\nimport s from './AddBtn.module.scss'\r\n\r\nexport type AddBtnType = {\r\n text: string\r\n}\r\n\r\nexport default function AddBtn({text}: AddBtnType) {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}","import { useEffect, useState } from 'react'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport Preloader from '../../shared/Preloader/Preloader';\r\nimport s from './CasesAndClients.module.scss'\r\n\r\nexport default function CasesAndClients(props: any) {\r\n const [userData, setUserData] = useState(props.data)\r\n useEffect(() => {\r\n setUserData(props.data)\r\n }, [props])\r\n\r\n if (!props) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n else {\r\n return (\r\n
\r\n

Associated Cases and Clients

\r\n {userData?.associatedContracts?.length === 0 &&\r\n

Cases not found

\r\n }\r\n {userData.associatedContracts.length > 0 && \r\n
    \r\n {userData?.associatedContracts?.map((item: any) => {\r\n return (\r\n
  • \r\n Case ID: {item.caseID}\r\n Client: {item.client}\r\n
  • \r\n )\r\n })}\r\n
\r\n }\r\n \r\n
\r\n )\r\n }\r\n}\r\n","import { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'\r\nimport DateFnsUtils from '@date-io/date-fns'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from './Comments.module.scss'\r\nimport { useEffect, useState } from 'react'\r\nimport Preloader from '../../shared/Preloader/Preloader'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 200,\r\n marginBottom: 20,\r\n marginRight: 30\r\n },\r\n input: {\r\n width: 100 + \"%\",\r\n marginBottom: 20,\r\n },\r\n dateInput: {\r\n width: 170,\r\n marginBottom: 10\r\n }\r\n }),\r\n);\r\n\r\nexport default function Comments(props: any) {\r\n const classes = useStyles()\r\n const [addCommentSection, setAddCommnetSection] = useState(false)\r\n\r\n const [currentDate, setCurrentDate] = useState(\r\n new Date('2014-08-18T21:11:54'),\r\n )\r\n\r\n const handleDateChange = (date: Date | null) => {\r\n setCurrentDate(date)\r\n }\r\n\r\n const [userData, setUserData] = useState(props.data)\r\n useEffect(() => {\r\n setUserData(props.data)\r\n }, [props])\r\n\r\n if (!props) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n else {\r\n return (\r\n
\r\n

Comments

\r\n {!(userData?.userNames) &&\r\n

Comments not found

\r\n }\r\n\r\n
setAddCommnetSection(!addCommentSection)}>\r\n \r\n
\r\n\r\n {addCommentSection &&\r\n
\r\n
\r\n \r\n Comment Creator\r\n \r\n \r\n\r\n \r\n handleDateChange(data)}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n","import DateFnsUtils from \"@date-io/date-fns\"\r\nimport { Button, Modal, Backdrop, Fade, Box, Typography, TextField, createStyles, makeStyles, Theme, FormControl, InputLabel, MenuItem, Select } from \"@material-ui/core\"\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { editUsersLawFirm, setNotificationInfo, toggleNotification } from \"../../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../../constants/constants\"\r\nimport actionsWithApi from \"../../../../customHooks/actionsWithApi\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n formControl: {\r\n width: 250,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginBottom: 0\r\n },\r\n },\r\n btnsBox: {\r\n width: 250,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: 50,\r\n [theme.breakpoints.down('xs')]: {\r\n marginTop: 20,\r\n }\r\n },\r\n btn: {\r\n width: 100,\r\n },\r\n modalWindow: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 400,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: 40,\r\n [theme.breakpoints.down('xs')]: {\r\n width: 250,\r\n padding: 20\r\n }\r\n }\r\n }),\r\n)\r\n\r\nconst changeDateFormat = (sourceDate: string) => {\r\n let separator = '/'\r\n let defaultDateOfJoined: Date | string = new Date(sourceDate)\r\n let currentYear: string | number = defaultDateOfJoined.getFullYear()\r\n let currentMonth: string | number = defaultDateOfJoined.getMonth() + 1\r\n let currentDate: string | number = defaultDateOfJoined.getDate()\r\n\r\n if (currentDate < 10) {\r\n currentDate = '0' + currentDate\r\n }\r\n if (currentMonth < 10) {\r\n currentMonth = '0' + currentMonth\r\n }\r\n return currentYear + separator + currentMonth + separator + currentDate\r\n}\r\n\r\ntype EditLawFirmInfoPropsType = {\r\n openEditLawFirmWindow: boolean\r\n handleCloseEditLawFirmWindow(e: boolean): void\r\n editableLawFirmInfo: any\r\n editableUserId: string\r\n}\r\n\r\nexport default function EditLawFirmInfo(props: EditLawFirmInfoPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [dateOfJoined, setDateOfJoined] = useState(changeDateFormat(props.editableLawFirmInfo.startDate))\r\n const [isPresentLawFirm, setIsPresentLawFirm] = useState(props.editableLawFirmInfo.present)\r\n const [endDate, setEndDate] = useState(props.editableLawFirmInfo.endDate)\r\n\r\n const setDefaultValues = () => {\r\n setIsPresentLawFirm(props.editableLawFirmInfo.present)\r\n setDateOfJoined(changeDateFormat(props.editableLawFirmInfo.startDate))\r\n if (!props.editableLawFirmInfo.present) {\r\n setEndDate(changeDateFormat(props.editableLawFirmInfo.endDate))\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setDefaultValues()\r\n }, [props])\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n let fixedDateOfJoined = new Date(new Date(dateOfJoined).setHours(12)).toISOString()\r\n let fixedEndDate = new Date(new Date(endDate).setHours(12)).toISOString()\r\n\r\n try {\r\n let updatedLawFirm = {\r\n id: props.editableLawFirmInfo.id,\r\n lawFirmUserId: props.editableLawFirmInfo.lawFirmUserId,\r\n firstName: props.editableLawFirmInfo.firstName,\r\n startDate: fixedDateOfJoined,\r\n present: isPresentLawFirm,\r\n endDate: fixedEndDate,\r\n userId: props.editableUserId\r\n }\r\n dispatch(editUsersLawFirm(props.editableLawFirmInfo.id, updatedLawFirm))\r\n\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/updateLawFirm/${props.editableLawFirmInfo.id}`, updatedLawFirm)\r\n dispatch(setNotificationInfo({ message: \"LawFirm successfuly edited\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n props.handleCloseEditLawFirmWindow(true)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
handleSubmit(e)}>\r\n \r\n \r\n setDateOfJoined(date)} value={dateOfJoined}\r\n disableToolbar variant=\"inline\" format=\"MM/dd/yyyy\" margin=\"normal\" label=\"Date Joined\"\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }} required\r\n />\r\n \r\n \r\n Still Working Here\r\n \r\n \r\n {!isPresentLawFirm &&\r\n \r\n setEndDate(date)} value={endDate}\r\n disableToolbar variant=\"inline\" format=\"MM/dd/yyyy\" margin=\"normal\" label=\"End Date\"\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }} required={!isPresentLawFirm}\r\n />\r\n \r\n }\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}","import { Button, FormControl, InputLabel, MenuItem, Select, TextField } from '@material-ui/core'\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'\r\nimport {useEffect, useRef, useState} from 'react'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from './LawFirms.module.scss'\r\nimport 'date-fns'\r\nimport DateFnsUtils from '@date-io/date-fns'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport { addNewLawFirmForEditUser, setDataToAddFirmSectionForEditUser, setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { Autocomplete } from '@material-ui/lab'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport { useLocation } from 'react-router-dom'\r\nimport EditLawFirmInfo from './EditLawFirmInfo/EditLawFirmInfo'\r\nimport { LawFirmType } from \"../../../types/lawFirmType\";\r\nimport Preloader from '../../shared/Preloader/Preloader'\r\n\r\n\r\nexport default function LawFirms(props: any) {\r\n const dispatch = useDispatch()\r\n const editingUser = useSelector((state: RootState) => state.editUserPage)\r\n const [addFirmSection, showAddFirmSection] = useState(false)\r\n let location = useLocation()\r\n let editableUserId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const searchTimerRef = useRef(null);\r\n\r\n const [userData, setUserData] = useState(props.data)\r\n useEffect(() => {\r\n setUserData(props.data)\r\n }, [props]);\r\n\r\n const [dateJoined, setDateJoined] = useState(new Date('2021-01-01T23:59:59'))\r\n const [endDate, setEndDate] = useState(new Date('2021-01-01T23:59:59'))\r\n\r\n const handleJoinedDateChange = (date: Date | null) => {\r\n setDateJoined(date)\r\n }\r\n const handleEndDateChange = (date: Date | null) => {\r\n setEndDate(date)\r\n }\r\n\r\n const handleAddFirm = (e: any) => {\r\n let value = e.target.value\r\n const name = e.target.name\r\n dispatch(setDataToAddFirmSectionForEditUser({ [name]: value }))\r\n }\r\n\r\n const [selectedLawFirm, setSelectedLawFirm] = useState(-1)\r\n const [selectedLawFirmName, setSelectedLawFirmName] = useState(\"\")\r\n const [selectedLawFirmIsPresent, setSelectedLawFirmIsPresent] = useState(\"No\")\r\n const addNewLawFirm = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n if (selectedLawFirm !== -1) {\r\n try {\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/User/${editableUserId}/addLawFirms`,\r\n {\r\n lawFirmUserId: selectedLawFirm,\r\n startDate: dateJoined,\r\n endDate: selectedLawFirmIsPresent === \"No\" ? endDate : new Date().toISOString() + \"\",\r\n present: selectedLawFirmIsPresent === \"Yes\" ? true : false,\r\n userId: editableUserId,\r\n firstName: selectedLawFirmName\r\n }\r\n )\r\n\r\n let addedLawFirm = response.data.lawFirms[response.data.lawFirms.length - 1]\r\n dispatch(addNewLawFirmForEditUser(\r\n {\r\n lawFirmUserId: addedLawFirm.lawFirmUserId,\r\n startDate: addedLawFirm.startDate,\r\n endDate: addedLawFirm.endDate,\r\n present: addedLawFirm.present,\r\n userId: addedLawFirm.userId,\r\n firstName: addedLawFirm.firstName\r\n }\r\n ))\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n }\r\n\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const [lawFirms, setLawFirms] = useState([])\r\n const getLawFirms = async (searchValue: string = \"\") => {\r\n if (searchValue.length < 3) {\r\n return\r\n }\r\n\r\n try {\r\n setLoaderIsActive(true)\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Autocomplete/lawFirm?userName=${searchValue}`)\r\n setLawFirms(response.data)\r\n setLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n setLoaderIsActive(false)\r\n setLawFirms([])\r\n }\r\n }\r\n\r\n const [editableLawFirmInfo, seteEditableLawFirmInfo] = useState({})\r\n const [openEditLawFirmWindow, setOpenEditLawFirmWindow] = useState(false)\r\n const handleOpenEditLawFirmWindow = (indexOfEditableLawFirm: number) => {\r\n setOpenEditLawFirmWindow(true)\r\n seteEditableLawFirmInfo(editingUser.lawFirms[indexOfEditableLawFirm])\r\n }\r\n const handleCloseEditLawFirmWindow = () => setOpenEditLawFirmWindow(false)\r\n\r\n const handleAutocomplete = async (value: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n getLawFirms(value)\r\n }, 500)\r\n }\r\n\r\n if (!props) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n else {\r\n return (\r\n
\r\n {userData?.lawFirms?.length === 0 &&\r\n

Firms not found

\r\n }\r\n\r\n {userData?.textLawFirm &&\r\n
\r\n Law Firm specified by the user during registration:\r\n {userData?.textLawFirm}\r\n
\r\n }\r\n\r\n {editingUser.lawFirms.length > 0 && editingUser.lawFirms\r\n .map((lawFirm, index: number) => {\r\n return (\r\n
\r\n \r\n \r\n\r\n {!lawFirm.present &&\r\n \r\n }\r\n\r\n {lawFirm.present &&\r\n \r\n }\r\n\r\n
handleOpenEditLawFirmWindow(index)}>
\r\n
\r\n )\r\n })\r\n }\r\n
showAddFirmSection(!addFirmSection)}>\r\n \r\n
\r\n\r\n {addFirmSection &&\r\n
addNewLawFirm(e)}>\r\n \r\n (option.firstName ? (option.firstName.toString() + \" \") : \"\") +\r\n (option.lastName ? option.lastName.toString() + \"\" : \"\")\r\n }\r\n renderInput={(params) => (\r\n handleAutocomplete(e.target.value || \"\")}\r\n />\r\n )}\r\n onChange={(e, value) => {\r\n setSelectedLawFirmName(value && value.firstName ? value.firstName : \"\")\r\n setSelectedLawFirm(value && value.id ? value.id : -1)\r\n }}\r\n />\r\n\r\n \r\n handleJoinedDateChange(data)} onKeyUp={(e) => handleAddFirm(e)} KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }} required\r\n />\r\n \r\n\r\n \r\n Still Working Here\r\n \r\n \r\n\r\n {selectedLawFirmIsPresent === \"No\" &&\r\n \r\n handleEndDateChange(data)} onKeyUp={(e) => handleAddFirm(e)} KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }} required={selectedLawFirmIsPresent === \"No\"}\r\n />\r\n \r\n }\r\n\r\n \r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n}","import DateFnsUtils from '@date-io/date-fns'\r\nimport { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers'\r\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date'\r\nimport { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { editUserStatus, setDataForEditUser, setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport getCookie from '../../../scripts/getCookie'\r\nimport { StatesType } from '../../../types/stateType'\r\nimport s from './UserInfo.module.scss'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport Preloader from '../../shared/Preloader/Preloader'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 220,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n }\r\n }),\r\n);\r\n\r\nexport default function UserInfo(props: any) {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n let states: Array = useSelector((state: RootState) => state.states)\r\n const [userData, setUserData] = useState(props.data)\r\n useEffect(() => {\r\n setUserData(props.data)\r\n }, [props]);\r\n\r\n const setUserStatus = (status: string | unknown) => {\r\n dispatch(editUserStatus(status + \"\"))\r\n userStatusChanged()\r\n }\r\n\r\n const editStateHandle = (e: any) => {\r\n let value = e.target.value\r\n const name = e.target.name\r\n\r\n value = value.split(\" \")\r\n dispatch(setDataForEditUser({\r\n [name]:\r\n {\r\n key: value[0],\r\n name: value[1],\r\n }\r\n }))\r\n }\r\n\r\n const [statusChanged, setStatusChanged] = useState(false)\r\n const [currentUsername, setCurrentUsername] = useState(\"\")\r\n let currentUserId = getCookie(\"currentUserId\")\r\n const userStatusChanged = async () => {\r\n setStatusChanged(true)\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/User/${currentUserId}`)\r\n setCurrentUsername(response.data.firstName + \" \" + response.data.lastName)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n const [dateOfBirth, setDateOfBirth] = useState(userData.dateOfBirth ? dateFormatting(userData.dateOfBirth) : \"\")\r\n useEffect(() => {\r\n setDateOfBirth(props.data.dateOfBirth)\r\n }, [props.data.dateOfBirth])\r\n const handleDateOfBirdth = (date: MaterialUiPickersDate) => {\r\n dispatch(setDataForEditUser({ \"dateOfBirth\": date }))\r\n setDateOfBirth(date)\r\n }\r\n\r\n if (!props) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n else if (userData.id) {\r\n return (\r\n
\r\n
\r\n \r\n props.handler(e)} />\r\n \r\n props.handler(e)} />\r\n props.handler(e)} />\r\n props.handler(e)} />\r\n \r\n handleDateOfBirdth(date)} />\r\n \r\n props.handler(e)} />\r\n props.handler(e)} />\r\n \r\n State\r\n \r\n \r\n props.handler(e)} />\r\n props.handler(e)} />\r\n props.handler(e)} />\r\n props.handler(e)} />\r\n \r\n Ban on New Contracts\r\n \r\n \r\n props.handler(e)} />\r\n
\r\n\r\n
\r\n \r\n User Status\r\n \r\n \r\n \r\n User Type\r\n \r\n \r\n {\r\n statusChanged &&\r\n
\r\n \r\n \r\n
\r\n }\r\n {\r\n userData.userStatus.userStatusesValue != \"New\" && !statusChanged &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n )\r\n }\r\n else {\r\n return (\r\n

No data has been received, please refresh the page

\r\n )\r\n }\r\n}\r\n","import { Button, Container, Divider } from '@material-ui/core'\r\nimport { useState } from 'react'\r\nimport { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { setDataForEditUser, setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../reducers/rootReducers'\r\nimport CasesAndClients from './CasesAndClients/CasesAndClients'\r\nimport Comments from './Comments/Comments'\r\nimport s from './EditUser.module.scss'\r\nimport LawFirms from './LawFirms/LawFirms'\r\nimport UserInfo from './UserInfo/UserInfo'\r\nimport getCookie from '../../scripts/getCookie'\r\nimport { history } from '../../../App'\r\nimport Preloader from '../shared/Preloader/Preloader'\r\n\r\nexport default function EditUser() {\r\n const dispatch = useDispatch()\r\n const token = getCookie(\"token\")\r\n const changedData = useSelector((state: RootState) => state.editUserPage)\r\n let location = useLocation()\r\n let userId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const [dataFetched, setDataFetched] = useState(false)\r\n\r\n const [userData, setUserData] = useState(null)\r\n const getUserData = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/AdminUser/${userId}`, null)\r\n setDataFetched(true)\r\n setUserData(response.data)\r\n dispatch(setDataForEditUser(response.data))\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n useEffect(() => {\r\n getUserData()\r\n }, [])\r\n\r\n const handleChange = (e: any) => {\r\n let value = e.target.value\r\n const name = e.target.name\r\n\r\n if (name === \"id\" || name === \"additionalFee\") {\r\n value = parseInt(value)\r\n }\r\n if (name === \"banned\") {\r\n value === \"Yes\" ? value = true : value = false\r\n }\r\n dispatch(setDataForEditUser({ [name]: value }))\r\n }\r\n\r\n const changeUserData = async () => {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/AdminUser/${userId}`, changedData)\r\n dispatch(setNotificationInfo({ message: \"Data changed successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n history.push(`/user-profile?${userId}`)\r\n window.scrollTo({ top: 0, behavior: \"smooth\" })\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n if (!token) {\r\n return (

Please, Login!

)\r\n }\r\n else if (!userData) {\r\n return ()\r\n }\r\n else {\r\n return (\r\n <>\r\n {userData &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n \r\n )\r\n }\r\n}","export default function deleteCookie() {\r\n var cookies = document.cookie.split(\";\");\r\n\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i];\r\n var eqPos = cookie.indexOf(\"=\");\r\n var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\r\n document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\r\n }\r\n}","import { TextField, Button } from '@material-ui/core'\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { handlerForLoginInputs, setContentToInfoPage, setNotificationInfo, toggleNotification } from \"../../actions/actions\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { RootState } from '../../reducers/rootReducers'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport { history } from '../../../App'\r\nimport deleteCookie from '../../scripts/deleteCookie'\r\nimport { ChangeEvent } from \"react\"\r\nimport s from './Login.module.scss'\r\nimport { AxiosResponse } from 'axios'\r\n\r\ntype LoginPropsType = {\r\n setUserIsLogined(e: boolean): void\r\n userIsLogined: boolean\r\n userIsLogout: boolean\r\n setUserIsLogout(e: boolean): void\r\n}\r\n\r\nexport default function Login(props: LoginPropsType) {\r\n const dispatch = useDispatch()\r\n const postData = useSelector((state: RootState) => state.login)\r\n\r\n const handlerInputChange = (e: ChangeEvent) => {\r\n const value = e.target.value\r\n const name = e.target.name\r\n\r\n dispatch(handlerForLoginInputs({ [name]: value }))\r\n }\r\n\r\n const setNessecceryCookies = (responseAfterLogin: AxiosResponse, loginedUserStatus: string) => {\r\n document.cookie = `currentUserStatus=${loginedUserStatus}; secure; samesite`\r\n document.cookie = `token=${responseAfterLogin.data.accessToken}; secure; samesite`\r\n document.cookie = `currentUserId=${responseAfterLogin.data.userId}; secure; samesite`\r\n document.cookie = `currentUserRole=${responseAfterLogin.data.role}; secure; samesite`\r\n document.cookie = `currentUserName=${responseAfterLogin.data.userFirtsName + \" \" + responseAfterLogin.data.userLastName}; secure; samesite`\r\n }\r\n\r\n const handleSubmit = async (e: any) => {\r\n e.preventDefault()\r\n try {\r\n let response = await actionsWithApi(\"post\", URL_FOR_API + \"/api/v1/Account/login\", postData)\r\n let loginedUserStatus: string = response.data.userStatus.userStatusesValue\r\n\r\n if (loginedUserStatus !== \"New\" && loginedUserStatus !== \"Denied\") {\r\n setNessecceryCookies(response, loginedUserStatus)\r\n e.target.reset()\r\n dispatch(setNotificationInfo({ message: \"Login success\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n props.setUserIsLogined(!props.userIsLogined)\r\n history.push(`/user-profile?${response.data.userId}`)\r\n }\r\n else {\r\n await actionsWithApi(\"post\", URL_FOR_API + \"/api/v1/Account/logOut\", null)\r\n deleteCookie()\r\n props.setUserIsLogout(!props.userIsLogout)\r\n dispatch(setContentToInfoPage({\r\n title: \"Limited Access\",\r\n textDescription: \"You are not approved by the Admin and do not have access to the platform. If you believe there is an error or need assistance, please contact support.\",\r\n hasInput: false,\r\n additionalBtn: false,\r\n contractSupportBtn: true\r\n }))\r\n history.push('/information-page')\r\n }\r\n }\r\n catch (error) {\r\n if (error.response.status === 403) {\r\n dispatch(setNotificationInfo({ message: \"Wrong password\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n } else if (error.response.status === 404) {\r\n dispatch(setNotificationInfo({ message: \"It looks like the user doesn't exist\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n } else {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n return (\r\n
\r\n\r\n
handleSubmit(e)}>\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Forgot Password?\r\n Register\r\n
\r\n
\r\n )\r\n}\r\n","import React, { Dispatch, SetStateAction } from \"react\"\r\nimport 'date-fns'\r\nimport { TextField, Select, MenuItem, InputLabel, FormControl, Button } from '@material-ui/core'\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'\r\nimport DateFnsUtils from '@date-io/date-fns'\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { handlerForRegistrationInputs, setContentToInfoPage, setNotificationInfo, toggleNotification } from \"../../actions/actions\"\r\nimport { RootState } from \"../../reducers/rootReducers\"\r\nimport { useState } from \"react\"\r\nimport { validateEmail, validatePassword, validateZipCode } from \"../../scripts/registrationValidate\"\r\nimport actionsWithApi from \"../../customHooks/actionsWithApi\"\r\nimport { URL_FOR_API } from \"../../constants/constants\"\r\nimport { history } from '../../../App'\r\nimport s from './Registration.module.scss'\r\nimport { StatesType } from \"../../types/stateType\"\r\n\r\nexport default function Registration() {\r\n const dispatch = useDispatch()\r\n let states: Array = useSelector((state: RootState) => state.states)\r\n let password = useSelector((state: RootState) => state.registration[\"password\"])\r\n let email = useSelector((state: RootState) => state.registration[\"email\"])\r\n let newUserData = useSelector((state: RootState) => state.registration)\r\n let zipCode = useSelector((state: RootState) => state.registration[\"zipCode\"])\r\n\r\n const [confirmPassword, setConfirmPassword] = useState(\"\")\r\n const [passwordsMatch, setPasswordsMatch] = useState(true)\r\n const [passwordsValidate, setPasswordsValidate] = useState(true)\r\n const [emailValidate, setEmailValidate] = useState(true)\r\n const [zipCodeIsValid, setZipCodeIsValid] = useState(true)\r\n\r\n const handlerInputChange = (e: any) => {\r\n let value = e.target.value\r\n const name = e.target.name\r\n\r\n if (name === \"state\") {\r\n value = value.split(\" \")\r\n dispatch(handlerForRegistrationInputs({\r\n [name]:\r\n {\r\n key: value[0],\r\n name: value[1],\r\n }\r\n }))\r\n }\r\n else {\r\n dispatch(handlerForRegistrationInputs({ [name]: value }))\r\n }\r\n }\r\n\r\n const actionsIfPropIsNotValid = (setPropIsNotValid: Dispatch>, message: string) => {\r\n setPropIsNotValid(false)\r\n dispatch(setNotificationInfo({ message: message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n window.scrollTo({ top: 0, behavior: \"smooth\" })\r\n }\r\n\r\n const handleSubmit = async (e: any) => {\r\n e.preventDefault()\r\n let [resultValidation, passwordsIsMatch] = validatePassword(password, confirmPassword)\r\n let resultZipCodeValidation = validateZipCode(zipCode)\r\n\r\n if (!validateEmail(email)) {\r\n actionsIfPropIsNotValid(setEmailValidate, \"The email address is invalid\")\r\n }\r\n else if (!resultValidation) {\r\n actionsIfPropIsNotValid(setPasswordsValidate, \"Password must be at least 8 characters, including 1 number and 1 uppercase letter\")\r\n }\r\n else if (!passwordsIsMatch) {\r\n actionsIfPropIsNotValid(setPasswordsMatch, \"Passwords do not match\")\r\n }\r\n else if (!resultZipCodeValidation) {\r\n actionsIfPropIsNotValid(setZipCodeIsValid, \"Zipcode is invalid\")\r\n }\r\n else {\r\n setPasswordsMatch(true)\r\n setPasswordsValidate(true)\r\n setEmailValidate(true)\r\n setZipCodeIsValid(true)\r\n\r\n try {\r\n await actionsWithApi(\"post\", URL_FOR_API + \"/api/v1/Account/register\", newUserData)\r\n dispatch(setContentToInfoPage({\r\n title: \"You successfully registered!\",\r\n textDescription: \"Your request to register has been processed and one of our admins will review it shortly. If your application is confirmed, then you will receive a confirmation email and have access to apply for funding. Until then, please confirm your email via the link that has been sent to your email address.\",\r\n hasInput: false,\r\n additionalBtn: false,\r\n contractSupportBtn: true\r\n }))\r\n e.target.reset()\r\n window.scrollTo({ top: 0, behavior: \"smooth\" })\r\n history.push('/information-page')\r\n }\r\n catch (error) {\r\n if (error.response.status === 400) {\r\n dispatch(setNotificationInfo({ message: \"User already exists, please login\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n } else {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n console.log(error.message)\r\n }\r\n\r\n }\r\n }\r\n\r\n const [birthDate, setBirthDate] = React.useState(\r\n new Date('2021-01-01T23:59:59'),\r\n )\r\n const [startDate, setStartDate] = useState(new Date('2021-01-01T23:59:59'))\r\n\r\n const handleBirthDateChange = (date: any) => {\r\n setBirthDate(date)\r\n try {\r\n if (date) {\r\n date = new Date(new Date(date).setHours(12, 12, 12)).toISOString()\r\n dispatch(handlerForRegistrationInputs({ \"dateOfBirth\": date }))\r\n }\r\n } catch (e) {\r\n console.log(\"invalid date\")\r\n }\r\n }\r\n\r\n // const handleStartDateChange = (date: Date | null) => {\r\n // setStartDate(date)\r\n // }\r\n\r\n return (\r\n
\r\n\r\n
handleSubmit(e)} >\r\n \r\n {!emailValidate && The email address is invalid}\r\n \r\n setConfirmPassword(e.target.value)} />\r\n {!passwordsMatch && Passwords do not match}\r\n {!passwordsValidate && Password must be at least 8 characters, including 1 number and 1 uppercase letter}\r\n \r\n \r\n\r\n \r\n handleBirthDateChange(data)} KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n\r\n \r\n State\r\n \r\n \r\n\r\n \r\n {!zipCodeIsValid && Zipcode is invalid}\r\n \r\n \r\n \r\n\r\n {/* \r\n handleStartDateChange(data)} KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n */}\r\n\r\n \r\n \r\n
\r\n )\r\n}\r\n","import { IconButton, Menu } from '@material-ui/core'\r\nimport React from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport MenuIcon from '@material-ui/icons/Menu'\r\nimport s from './AdaptiveMenu.module.scss'\r\n\r\ntype AdaptiveMenuPropsType = {\r\n userRole: string | undefined\r\n currentUserId: string | undefined\r\n currentUserStatus: string | undefined\r\n token: string | undefined\r\n}\r\n\r\nexport default function AdaptiveMenu(props: AdaptiveMenuPropsType) {\r\n const [anchorElNav, setAnchorElNav] = React.useState(null)\r\n\r\n const handleOpenNavMenu = (event: React.MouseEvent) => {\r\n setAnchorElNav(event.currentTarget)\r\n }\r\n\r\n const handleCloseNavMenu = () => {\r\n setAnchorElNav(null)\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n Home\r\n \r\n\r\n {props.userRole === \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n Reports\r\n \r\n }\r\n\r\n {props.userRole !== \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n Request funds\r\n \r\n }\r\n\r\n {props.token &&\r\n \r\n Case History\r\n \r\n }\r\n\r\n {props.userRole === \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n Find User\r\n \r\n }\r\n\r\n \r\n Payment Calculator\r\n \r\n\r\n {props.token &&\r\n \r\n My Law Firms Contracts\r\n \r\n }\r\n\r\n
\r\n
\r\n
\r\n )\r\n}","export default __webpack_public_path__ + \"static/media/main-logo.9e41edc6.png\";","import { NavLink } from 'react-router-dom'\r\nimport s from '../Header.module.scss'\r\nimport Logo from '../../../../../images/main-logo.png'\r\n\r\nexport default function HeaderLogo() {\r\n return (\r\n \r\n \"logo\"\r\n \r\n )\r\n}","import { NavLink } from 'react-router-dom'\r\nimport { UserRoleType } from '../../../../types/userRoleType'\r\nimport { UserStatusType } from '../../../../types/userStatusType'\r\nimport s from '../Header.module.scss'\r\n\r\ntype HeaderMenuPropsType = {\r\n userRole: UserRoleType | string | undefined\r\n currentUserStatus: UserStatusType | string | undefined\r\n token: string | undefined\r\n}\r\n\r\nexport default function HeaderMenu(props: HeaderMenuPropsType) {\r\n return (\r\n
\r\n {props.userRole === \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n Reports\r\n \r\n }\r\n\r\n {props.userRole !== \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n Request Funds\r\n \r\n }\r\n\r\n {props.token &&\r\n \r\n Case History\r\n \r\n }\r\n\r\n {props.userRole === \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n Find User\r\n \r\n }\r\n \r\n Payment Calculator\r\n \r\n\r\n {props.token &&\r\n \r\n My Law Firms Contracts\r\n \r\n }\r\n
\r\n )\r\n}","import { Popper, Grow, Paper, ClickAwayListener, MenuList, MenuItem, makeStyles } from '@material-ui/core'\r\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle'\r\nimport { useState, useRef, useEffect } from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport s from '../Header.module.scss'\r\nimport { UserRoleType } from '../../../../types/userRoleType'\r\nimport { UserStatusType } from '../../../../types/userStatusType'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n paper: {\r\n marginRight: theme.spacing(2),\r\n },\r\n accountBtn: {\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n color: \"#ffffff !important\"\r\n },\r\n accountLink: {\r\n padding: 0\r\n }\r\n}))\r\n\r\ntype UserProfileMenuPropsType = {\r\n logout(): void\r\n userRole: UserRoleType | string | undefined\r\n currentUserStatus: UserStatusType | string | undefined\r\n token: string | undefined\r\n currentUserId: string | undefined\r\n}\r\n\r\nexport default function UserProfileMenu(props: UserProfileMenuPropsType) {\r\n const classes = useStyles()\r\n const [open, setOpen] = useState(false)\r\n const anchorRef = useRef(null)\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen)\r\n }\r\n\r\n const handleClose = (event: any, name?: string) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target as HTMLElement)) {\r\n return;\r\n }\r\n setOpen(false)\r\n if (name === 'logout') {\r\n props.logout()\r\n }\r\n }\r\n\r\n const handleListKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.key === 'Tab') {\r\n event.preventDefault()\r\n setOpen(false)\r\n }\r\n }\r\n\r\n // return focus to the button when we transitioned from !open -> open\r\n const prevOpen = useRef(open)\r\n useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current!.focus()\r\n }\r\n\r\n prevOpen.current = open\r\n }, [open])\r\n\r\n return (\r\n
\r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n {props.token && \r\n \r\n My Profile\r\n \r\n }\r\n\r\n {props.token && props.userRole === \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n \r\n Create User\r\n \r\n }\r\n\r\n {props.token && props.userRole === \"Administrator\" && props.currentUserStatus === \"Approved\" &&\r\n \r\n \r\n Admin\r\n \r\n }\r\n\r\n {props.token && handleClose(e, \"logout\")}>\r\n \r\n Log Out\r\n \r\n }\r\n\r\n {!props.token && handleClose(e, \"login\")}>\r\n \r\n Login\r\n \r\n }\r\n\r\n {!props.token && \r\n \r\n Registration\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n )\r\n}","import { useEffect } from 'react'\r\nimport s from './Header.module.scss'\r\nimport { useDispatch } from 'react-redux'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport { setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { history } from '../../../../App'\r\nimport getCookie from '../../../scripts/getCookie'\r\nimport deleteCookie from '../../../scripts/deleteCookie'\r\nimport AdaptiveMenu from './AdaptiveMenu/AdaptiveMenu'\r\nimport HeaderLogo from './HeaderLogo/HeaderLogo'\r\nimport HeaderMenu from './HeaderMenu/HeaderMenu'\r\nimport { UserRoleType } from '../../../types/userRoleType'\r\nimport { UserStatusType } from '../../../types/userStatusType'\r\nimport UserProfileMenu from './UserProfileMenu/UserProfileMenu'\r\n\r\ntype HeaderPropsType = {\r\n userIsLogined: boolean\r\n userIsLogout: boolean\r\n setUserIsLogout(e: boolean): void\r\n}\r\n\r\nexport default function Header(props: HeaderPropsType) {\r\n const dispatch = useDispatch()\r\n\r\n let userRole: UserRoleType | string | undefined = getCookie(\"currentUserRole\")\r\n let token: string | undefined = getCookie(\"token\")\r\n let currentUserId: string | undefined = getCookie(\"currentUserId\")\r\n let currentUserStatus: UserStatusType | string | undefined = getCookie(\"currentUserStatus\")\r\n\r\n const getLoginedUserInfo = () => {\r\n userRole = getCookie(\"currentUserRole\")\r\n token = getCookie(\"token\")\r\n currentUserId = getCookie(\"currentUserId\")\r\n }\r\n\r\n useEffect(() => {\r\n getLoginedUserInfo()\r\n }, [props.userIsLogined, props.userIsLogout])\r\n\r\n const logout = async () => {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + \"/api/v1/Account/logOut\", null)\r\n deleteCookie()\r\n props.setUserIsLogout(!props.userIsLogout)\r\n dispatch(setNotificationInfo({ message: \"Log Out success\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n history.push('/login')\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(\"error - \" + error.message)\r\n }\r\n }\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n )\r\n}","import { makeStyles, Theme, createStyles, Modal, Backdrop, Fade, Box, Typography, TextField, Button } from \"@material-ui/core\"\r\nimport { useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setNotificationInfo, toggleNotification } from \"../../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../../constants/constants\"\r\nimport actionsWithApi from \"../../../../customHooks/actionsWithApi\"\r\nimport getCookie from \"../../../../scripts/getCookie\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n formControl: {\r\n width: 250,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginBottom: 0\r\n },\r\n },\r\n btnsBox: {\r\n width: 250,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: 50,\r\n [theme.breakpoints.down('xs')]: {\r\n marginTop: 20,\r\n }\r\n },\r\n btn: {\r\n width: 100,\r\n },\r\n modalWindow: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 400,\r\n padding: 40,\r\n backgroundColor: theme.palette.background.paper,\r\n [theme.breakpoints.down('xs')]: {\r\n width: 250,\r\n padding: 20\r\n }\r\n }\r\n }),\r\n)\r\n\r\n\r\ntype RequestAdditionalFundingWindowPropsType = {\r\n openRequestAdditionalFundingWindow: boolean\r\n handleCloseRequestAdditionalFundingWindow(): void\r\n contractId: number\r\n additionalFundingHasBeenAdded: boolean\r\n setAdditionalFundingHasBeenAdded(toggle: boolean): void\r\n}\r\n\r\nexport default function RequestAdditionalFundingWindow(props: RequestAdditionalFundingWindowPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const currentUserId = parseInt(getCookie(\"currentUserId\") + \"\")\r\n\r\n const [amount, setAmount] = useState()\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n\r\n try {\r\n let additionalFundingRequestData = {\r\n amount,\r\n date: new Date().toISOString(),\r\n contractId: props.contractId,\r\n userId: currentUserId\r\n }\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${props.contractId}/addAdditionalFundingRequest`, additionalFundingRequestData)\r\n \r\n props.handleCloseRequestAdditionalFundingWindow()\r\n props.setAdditionalFundingHasBeenAdded(!props.additionalFundingHasBeenAdded)\r\n\r\n dispatch(setNotificationInfo({ message: \"Your request has been sent\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
handleSubmit(e)}>\r\n\r\n setAmount(parseInt(e.target.value + \"\"))}\r\n variant=\"outlined\" size=\"small\"\r\n />\r\n\r\n
\r\n props.handleCloseRequestAdditionalFundingWindow()}\r\n >\r\n Cancel\r\n \r\n\r\n \r\n Request\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}","import { Button } from \"@material-ui/core\"\r\nimport { useState } from \"react\"\r\nimport Preloader from \"../../shared/Preloader/Preloader\"\r\nimport s from \"./PreSettlement.module.scss\"\r\nimport RequestAdditionalFundingWindow from \"./RequestAdditionalFundingWindow/RequestAdditionalFundingWindow\"\r\n\r\ntype PreSettlementPropsType = {\r\n data: any\r\n additionalFundingHasBeenAdded: boolean\r\n setAdditionalFundingHasBeenAdded(toggle: boolean): void\r\n}\r\n\r\nexport default function PreSettlement({ data, additionalFundingHasBeenAdded, setAdditionalFundingHasBeenAdded }: PreSettlementPropsType) {\r\n const [openRequestAdditionalFundingWindow, setOpenRequestAdditionalFundingWindow] = useState(false)\r\n const handleOpenRequestAdditionalFundingWindow = () => {\r\n setOpenRequestAdditionalFundingWindow(true)\r\n }\r\n const handleCloseRequestAdditionalFundingWindow = () => {\r\n setOpenRequestAdditionalFundingWindow(false)\r\n }\r\n\r\n if (data) {\r\n return (\r\n
\r\n
\r\n

{data.contractType}

\r\n\r\n
    \r\n
  • \r\n Case ID: \r\n {data.caseId}\r\n
  • \r\n
  • \r\n Contract ID: \r\n {data.id}\r\n
  • \r\n
  • \r\n Status: \r\n {data.contractStatus[data.contractStatus.length - 1].contractsStatus}\r\n
  • \r\n {data?.daysBeforePriceIncrease > 0 &&\r\n
  • \r\n Days Until Price Increase: \r\n {data.daysBeforePriceIncrease + \" days left\"}\r\n
  • \r\n }\r\n
\r\n
\r\n
\r\n handleOpenRequestAdditionalFundingWindow()}\r\n >\r\n Request Additional Funds\r\n \r\n
\r\n \r\n
\r\n )\r\n }\r\n else return (\r\n \r\n )\r\n}","import dateFormatting from \"../../../../scripts/dateFormatting\"\r\nimport s from \"../ContractInfo.module.scss\"\r\n\r\ntype ChildContractsListPropsType = {\r\n childContracts: Array\r\n}\r\n\r\nexport default function ChildContractsList(props: ChildContractsListPropsType) {\r\n\r\n return (\r\n
  • \r\n
      \r\n {\r\n props.childContracts\r\n .map((childContract: any, index: number) => {\r\n return (\r\n
    • \r\n
      \r\n Additional funding amount: {index + 1}: \r\n ${childContract.amountRequested.amount}\r\n
      \r\n
      \r\n {dateFormatting(childContract.amountRequested.date)}\r\n
      \r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n
  • \r\n )\r\n}","import { useEffect, useState } from \"react\"\r\nimport { URL_FOR_API } from \"../../../constants/constants\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport dateFormatting from \"../../../scripts/dateFormatting\"\r\nimport { additionalFundingRequestsType } from \"../../../types/contractTypes\"\r\nimport s from \"./ContractInfo.module.scss\"\r\nimport Preloader from '../../shared/Preloader/Preloader'\r\nimport ChildContractsList from \"./ChildContractsList/ChildContractsList\"\r\n\r\nexport default function ContractInfo({ data }: any) {\r\n const [finalAmount, setFinalAmount] = useState(null)\r\n const [totalDueIsVisible, setTotalDueIsVisible] = useState(false)\r\n\r\n const getFinalAmount = async (data: any) => {\r\n if (data && data.id) {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Contract/${data.id}/calculate`)\r\n setFinalAmount(response.data.totalAmountOwed)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n }\r\n\r\n const calcTotalDueVisible = (data: any) => {\r\n if (data && data.contractStatus.length > 0) {\r\n for (let i = 0; i < data.contractStatus.length; i++) {\r\n if (data.contractStatus[i].contractsStatus === \"CheckSent\") setTotalDueIsVisible(true)\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getFinalAmount(data)\r\n calcTotalDueVisible(data)\r\n }, [data?.id])\r\n\r\n if (data) {\r\n return (\r\n
    \r\n\r\n
    \r\n
      \r\n
    • \r\n Requested amount:\r\n {data.amountRequested ? data.amountRequested.amount : \"\"}\r\n
    • \r\n {data.additionalFundingRequestsDto && data.additionalFundingRequestsDto.length > 0 &&\r\n data.additionalFundingRequestsDto\r\n .map((request: additionalFundingRequestsType, index: number) => {\r\n return (\r\n
    • \r\n Additional Request {index + 1}: \r\n {request.amount}\r\n
    • \r\n )\r\n })\r\n }\r\n
    • \r\n Settlement amount:\r\n {data.amountSettlement}\r\n
    • \r\n
    • \r\n Estimated Settlement amount:\r\n {data.estimatedSettlement}\r\n
    • \r\n
    • \r\n Estimated Additional Funding Needed:\r\n {data.estimatedAdditional}\r\n
    • \r\n
    • \r\n Approved amount:\r\n {data.amountApproved ? data.amountApproved.amount : \"\"}\r\n
    • \r\n {\r\n data.childContracts && data.childContracts.length > 0 &&\r\n \r\n\r\n }\r\n
    • \r\n Current Amount Due:\r\n {finalAmount ? finalAmount : \"\"}\r\n
    • \r\n
    • \r\n Amount owed after closing:\r\n {data.owedAfterClosing ? data.owedAfterClosing : \"\"}\r\n
    • \r\n
    \r\n
    \r\n\r\n
    \r\n
      \r\n {data && data.amountPayments && data.amountPayments.map((item: any, index: number) => {\r\n return (\r\n
    • \r\n
      \r\n Payment {index + 1}: \r\n ${item.amount}\r\n
      \r\n
      \r\n {dateFormatting(item.date)}\r\n
      \r\n
    • \r\n )\r\n })}\r\n
    \r\n {data.amountPayments.length === 0 &&\r\n No payments\r\n }\r\n {totalDueIsVisible &&\r\n
    \r\n Total Due: \r\n {data.totalDue}\r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","import { Divider } from \"@material-ui/core\"\r\nimport { useState, useEffect } from \"react\"\r\nimport { URL_FOR_API } from \"../../../constants/constants\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport s from \"./Statistics.module.scss\"\r\nimport {StatisticType} from \"../../../types/statisticType\";\r\nimport Preloader from \"../Preloader/Preloader\"\r\n\r\ntype StatisticsPropsType = {\r\n userId: number | undefined\r\n updateStatisticsToggle?: boolean\r\n}\r\n\r\nexport default function Statistics(props: StatisticsPropsType) {\r\n const [userStatistics, setUserStatistics] = useState()\r\n const [statisticsIsReady, setStatisticsIsReady] = useState(false)\r\n const [loanLimit, setLoanLimit] = useState()\r\n const getUserStatistic = async (props: StatisticsPropsType) => {\r\n if (props.userId) {\r\n try {\r\n let statistics = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/statistics/${props.userId}/getFullStatistic`, null)\r\n let userInfo = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/AdminUser/${props.userId}`, null)\r\n setUserStatistics(statistics.data)\r\n setLoanLimit(userInfo.data.loanLimit)\r\n setStatisticsIsReady(true)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n setStatisticsIsReady(false)\r\n getUserStatistic(props)\r\n }, [props.userId, props.updateStatisticsToggle])\r\n\r\n if(!statisticsIsReady) {\r\n return (\r\n \r\n )\r\n }\r\n else if (userStatistics) {\r\n return (\r\n
    \r\n
      \r\n
    • \r\n Loan Limit: \r\n {loanLimit ? \"$\" + loanLimit : \"N/A\"}\r\n
    • \r\n
    • \r\n Lifetime total requested: \r\n {Math.round(userStatistics?.lifeTimeRequested * 100) / 100}\r\n
    • \r\n \r\n\r\n
    • \r\n Current Open Cases: \r\n {Math.round(userStatistics?.openContractsCount * 100) / 100}\r\n
    • \r\n
    • \r\n Current Amount Open: \r\n {Math.round(userStatistics?.openContractAmount * 100) / 100}\r\n
    • \r\n
    • \r\n Avg amount Open: \r\n {Math.round(userStatistics?.openAmountAverage * 100) / 100}\r\n
    • \r\n
    • \r\n Avg duration open: \r\n {Math.round(userStatistics?.openDurationAverage * 100) / 100}\r\n
    • \r\n \r\n\r\n
    • \r\n Total Closed Cases: \r\n {Math.round(userStatistics?.closedContractsCount * 100) / 100}\r\n
    • \r\n
    • \r\n Projected Closed Case Value: \r\n {Math.round(userStatistics?.lifetimeProjectedAmountClosed * 100) / 100}\r\n
    • \r\n
    • \r\n Avg Projected Closed Value: \r\n {Math.round(userStatistics?.closedProjectedAmountAverage * 100) / 100}\r\n
    • \r\n
    • \r\n Avg Actual Closed Value: \r\n {Math.round(userStatistics?.closedRealAmountAverage * 100) / 100}\r\n
    • \r\n
    • \r\n Avg duration closed: \r\n {Math.round(userStatistics?.closedDurationAverage * 100) / 100}\r\n
    • \r\n \r\n\r\n
    • \r\n Avg funded amount: \r\n {Math.round(userStatistics?.lifeTimeReceivedAverage * 100) / 100}\r\n
    • \r\n
    • \r\n Total paid back: \r\n {Math.round(userStatistics?.lifeTimePayments * 100) / 100}\r\n
    • \r\n
    • \r\n Returned avg: \r\n {Math.round(userStatistics?.lifeTimePaidAverage * 100) / 100}\r\n
    • \r\n
    • \r\n Total amt never paid back: \r\n {Math.round(userStatistics?.lifeTimeLost * 100) / 100}\r\n
    • \r\n
    • \r\n ROI Closed Profitability: \r\n {userStatistics?.roi.toFixed(5)}\r\n
    • \r\n
    \r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n
    This user has no statistics
    \r\n )\r\n }\r\n}","import Statistics from \"../../shared/Statistics/Statistics\"\r\nimport s from \"./StatisticsInfo.module.scss\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { Button } from \"@material-ui/core\"\r\nimport Preloader from \"../../shared/Preloader/Preloader\"\r\n\r\ntype StatisticsInfoPropsType = {\r\n contractData: any\r\n}\r\n\r\nexport default function StatisticsInfo(props: StatisticsInfoPropsType) {\r\n const [clientStatisticsIsVisble, setClientStatisticsIsVisble] = useState(false)\r\n const [attorneyStatisticsIsVisble, setAttorneyStatisticsIsVisble] = useState(false)\r\n const [lawFirmStatisticsIsVisble, setLawFirmStatisticsIsVisble] = useState(false)\r\n\r\n const [updateStatisticsForClientToggle, setUpdateStatisticsForClientToggle] = useState(false)\r\n const [updateStatisticsForAttorneyToggle, setUpdateStatisticsForAttorneyToggle] = useState(false)\r\n const [updateStatisticsForLawFirmToggle, setUpdateStatisticsForLawFirmToggle] = useState(false)\r\n\r\n const [contractClientId, setContractClientId] = useState()\r\n const [contractResponsibleAttorneyId, setContractResponsibleAttorneyId] = useState(null)\r\n const [contractResponsibleLawFirmId, setContractResponsibleLawFirmId] = useState(null)\r\n\r\n useEffect(() => {\r\n if (props.contractData) {\r\n setContractClientId(props.contractData.contractClientDTO.user.id)\r\n setContractResponsibleAttorneyId(props.contractData.contractAttorneyDTO[props.contractData.contractAttorneyDTO.length - 1]?.userId || null)\r\n setContractResponsibleLawFirmId(props.contractData.contractLawFirmDTO[props.contractData.contractLawFirmDTO.length - 1]?.userId || null)\r\n }\r\n }, [props])\r\n\r\n if (props.contractData) {\r\n return (\r\n
    \r\n

    Statistics

    \r\n
    \r\n\r\n
    \r\n {contractClientId && !clientStatisticsIsVisble &&\r\n \r\n }\r\n {clientStatisticsIsVisble &&\r\n \r\n }\r\n {clientStatisticsIsVisble && contractClientId &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n\r\n\r\n
    \r\n {contractResponsibleAttorneyId && !attorneyStatisticsIsVisble &&\r\n \r\n }\r\n {attorneyStatisticsIsVisble && attorneyStatisticsIsVisble &&\r\n \r\n }\r\n {attorneyStatisticsIsVisble && contractResponsibleAttorneyId &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n {contractResponsibleLawFirmId && !lawFirmStatisticsIsVisble &&\r\n \r\n }\r\n {lawFirmStatisticsIsVisble && lawFirmStatisticsIsVisble &&\r\n \r\n }\r\n {lawFirmStatisticsIsVisble && contractResponsibleLawFirmId &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","import { createStyles, makeStyles, TextField, Theme } from \"@material-ui/core\"\r\nimport { NavLink } from \"react-router-dom\";\r\nimport dateFormatting from \"../../../scripts/dateFormatting\";\r\nimport Preloader from \"../../shared/Preloader/Preloader\";\r\nimport s from \"./GeneralInfo.module.scss\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n input: {\r\n width: 280,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginBottom: 0\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: \"100%\",\r\n }\r\n }\r\n }),\r\n)\r\n\r\nexport default function GeneralInfo({ data }: any) {\r\n const classes = useStyles()\r\n\r\n if (data) {\r\n return (\r\n
    \r\n

    General Information

    \r\n
    \r\n
    \r\n {data?.contractAttorneyDTO.length > 0 && data?.contractAttorneyDTO\r\n .map((attorney: any) => {\r\n if (!attorney.responsible) {\r\n return (\r\n
    \r\n Previous Attorney: \r\n window.scrollTo({ top: 0, behavior: \"smooth\" })}\r\n >\r\n {attorney.user.firstName + \" \" + attorney.user.lastName}\r\n \r\n
    \r\n )\r\n }\r\n }\r\n )\r\n }\r\n
    \r\n
    \r\n {data?.contractLawFirmDTO.length > 0 && data?.contractLawFirmDTO\r\n .map((lawFirm: any) => {\r\n if (!lawFirm.responsible) {\r\n return (\r\n
    \r\n Previous Law Firm: \r\n window.scrollTo({ top: 0, behavior: \"smooth\" })}\r\n >\r\n {lawFirm.user.firstName}\r\n \r\n
    \r\n )\r\n }\r\n }\r\n )\r\n }\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","import { TableContainer, Paper, Table, TableHead, TableRow, TableCell, TableBody, createStyles, Theme, withStyles } from '@material-ui/core'\r\nimport { useEffect, useState } from 'react'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { userRatingType } from '../../../types/ratingType'\r\nimport Preloader from '../Preloader/Preloader'\r\nimport WarningIcon from '@material-ui/icons/Warning'\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n table: {\r\n maxWidth: 320\r\n },\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white\r\n },\r\n body: {\r\n fontSize: 16,\r\n [theme.breakpoints.down('xs')]: {\r\n fontSize: 12\r\n },\r\n \"&:first-child\": {\r\n fontSize: 14,\r\n fontWeight: 600,\r\n [theme.breakpoints.down('xs')]: {\r\n fontSize: 12\r\n },\r\n },\r\n }\r\n }),\r\n)(TableCell)\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(even)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n }),\r\n)(TableRow)\r\n\r\ntype RatingTablePropsType = {\r\n userId: number\r\n updateRatingsToggle?: boolean\r\n}\r\n\r\nexport default function RatingTable(props: RatingTablePropsType) {\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const [userRating, setUserRating] = useState(null)\r\n\r\n const getUserData = async (userId: number) => {\r\n setLoaderIsActive(true)\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Statistics/${userId}/getUserRating`, null)\r\n setUserRating(response.data)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n finally {\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getUserData(props.userId)\r\n }, [props.updateRatingsToggle])\r\n\r\n if (userRating) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n Rating name\r\n Calculation\r\n Rating\r\n \r\n \r\n \r\n \r\n Avg Days to Close\r\n \r\n {userRating.avgDaysClose?.toFixed(2)}\r\n \r\n \r\n {userRating.avgDaysClose ? userRating.avgDaysCloseRating : \"\"}\r\n \r\n \r\n \r\n Total Cases Lost\r\n \r\n {userRating.totalLostCases?.toFixed(2)}\r\n \r\n \r\n {userRating.totalLostCases ? userRating.totalLostCasesRating : \"\"}\r\n \r\n \r\n \r\n % Cases Lost\r\n \r\n {userRating.pctCasesLost\r\n ? (userRating.pctCasesLost * 100).toFixed(2) + \"%\"\r\n : \"\"\r\n }\r\n \r\n \r\n {userRating.pctCasesLost ? userRating.pctCasesLostRating : \"\"}\r\n \r\n \r\n \r\n Avg Amt Funded Per Case\r\n \r\n {userRating.lifetimeReceivedAverage\r\n ? userRating.lifetimeReceivedAverage.toFixed(2)\r\n : \"\"\r\n }\r\n \r\n \r\n \r\n \r\n Avg Amt Funded Per Client\r\n \r\n {userRating.avgFundedPerClient\r\n ? userRating.avgFundedPerClient.toFixed(2)\r\n : \"\"\r\n }\r\n \r\n \r\n \r\n \r\n Total Reduced Cases\r\n \r\n {userRating.totalReducedCases?.toFixed(2)}\r\n \r\n \r\n {userRating.totalReducedCases ? userRating.totalReducedCasesRating : \"\"}\r\n \r\n \r\n \r\n % of Cases with Reduction\r\n \r\n {userRating.pctCasesReduced != null\r\n ? (userRating.pctCasesReduced * 100).toFixed(2) + \"%\"\r\n : \"\"\r\n }\r\n \r\n \r\n {userRating.pctCasesReduced ? userRating.pctCasesReducedRating : \"\"}\r\n \r\n \r\n \r\n % Reduction Per Reduced Case\r\n \r\n {userRating.pctReductionPerCase != null\r\n ? (userRating.pctReductionPerCase * 100).toFixed(2) + \"%\"\r\n : \"\"\r\n }\r\n \r\n \r\n {userRating.pctReductionPerCase ? userRating.pctReductionPerCaseRating : \"\"}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Average Rating: {userRating.avgRating.toFixed(2)}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n else if (!loaderIsActive && !userRating) {\r\n return (\r\n
    \r\n

    \r\n An error has occurred on the server\r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","import s from \"./Ratings.module.scss\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { AttachmentType } from \"../../../types/attachmentsType\"\r\nimport Preloader from \"../../shared/Preloader/Preloader\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport RatingTable from \"../../shared/RatingTable/RatingTable\"\r\nimport DownloadBtn from \"../../shared/DownloadBtn/DownloadBtn\"\r\nimport { Button } from \"@material-ui/core\"\r\nimport { downloadBase64File } from \"../../../scripts/downloadBase64File\"\r\n\r\nexport default function Ratings(props: any) {\r\n const [responsibleAttorneyUserId, setResponsibleAttorneyUserId] = useState(null)\r\n const [responsibleLawFirmUserId, setResponsibleLawFirmUserId] = useState(null)\r\n\r\n const [attorneyRatingIsVisble, setAttorneyRatingIsVisble] = useState(false)\r\n const [updateRatingsForAttorneyToggle, setUpdateRatingsForAttorneyToggle] = useState(false)\r\n const [lawFirmRatingIsVisble, setLawFirmRatingIsVisble] = useState(false)\r\n const [updateRatingsForLawFirmToggle, setUpdateRatingsForLawFirmToggle] = useState(false)\r\n\r\n const setResponsibleUsersId = (contractData: any) => {\r\n if (contractData.contractAttorneyDTO.length > 0) {\r\n setResponsibleAttorneyUserId(contractData.contractAttorneyDTO[contractData.contractAttorneyDTO.length - 1].userId || null)\r\n }\r\n if (contractData.contractLawFirmDTO.length > 0) {\r\n setResponsibleLawFirmUserId(contractData.contractLawFirmDTO[contractData.contractLawFirmDTO.length - 1].userId || null)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (props.contractData) {\r\n setResponsibleUsersId(props.contractData)\r\n }\r\n }, [props])\r\n\r\n\r\n\r\n if (props.contractData) {\r\n return (\r\n
    \r\n

    Ratings

    \r\n
    \r\n\r\n
    \r\n\r\n {responsibleAttorneyUserId &&\r\n
    \r\n {!attorneyRatingIsVisble &&\r\n \r\n }\r\n {attorneyRatingIsVisble &&\r\n \r\n }\r\n {attorneyRatingIsVisble &&\r\n \r\n }\r\n
    \r\n }\r\n\r\n {responsibleLawFirmUserId &&\r\n
    \r\n {!lawFirmRatingIsVisble &&\r\n \r\n }\r\n {lawFirmRatingIsVisble &&\r\n \r\n }\r\n {lawFirmRatingIsVisble &&\r\n \r\n }\r\n
    \r\n }\r\n\r\n
    \r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","export const dataURLtoFile = (dataurl, filename) => {\r\n var arr = dataurl.split(','),\r\n mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]),\r\n n = bstr.length,\r\n u8arr = new Uint8Array(n);\r\n\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n\r\n return new File([u8arr], filename, { type: mime });\r\n}","import { dataURLtoFile } from \"./dataURLToFile\"\r\n\r\nexport const downloadBase64File = (mimeType: string, base64Content: string, fileName: string) => {\r\n let file = dataURLtoFile(`data:${mimeType};base64,${base64Content}`, fileName)\r\n let blob = file\r\n let link = document.createElement('a')\r\n document.body.appendChild(link)\r\n link.download = fileName\r\n link.href = window.URL.createObjectURL(blob)\r\n link.click()\r\n document.body.removeChild(link)\r\n}","import GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nimport s from './DownloadBtn.module.scss'\r\n\r\ntype DownloadBtnType = {\r\n text: string\r\n}\r\n\r\nexport default function DownloadBtn(props: DownloadBtnType) {\r\n return (\r\n
    \r\n
    {props.text}
    \r\n \r\n
    \r\n )\r\n}","import { useEffect, useState } from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { downloadBase64File } from \"../../../scripts/downloadBase64File\"\r\nimport { AttachmentType } from \"../../../types/attachmentsType\"\r\nimport DownloadBtn from \"../../shared/DownloadBtn/DownloadBtn\"\r\nimport s from \"./ResponsibleUsers.module.scss\"\r\n\r\ntype ResponsibleUsersPropsType = {\r\n contractData: any\r\n}\r\n\r\nexport default function ResponsibleUsers(props: ResponsibleUsersPropsType) {\r\n const [clientName, setClientName] = useState(\"\")\r\n const [clientId, setClientId] = useState(null)\r\n const [responsibleAttorneyUserName, setResponsibleAttorneyUserName] = useState(\"\")\r\n const [responsibleAttorneyUserId, setResponsibleAttorneyUserId] = useState(null)\r\n const [responsibleLawFirmUserName, setResponsibleLawFirmUserName] = useState(\"\")\r\n const [responsibleLawFirmUserId, setResponsibleLawFirmUserId] = useState(null)\r\n\r\n const setUserNames = (contractData: any) => {\r\n if (contractData.contractAttorneyDTO.length) {\r\n setResponsibleAttorneyUserName(\r\n contractData.contractAttorneyDTO[contractData.contractAttorneyDTO.length - 1].userName || \"\"\r\n )\r\n setResponsibleAttorneyUserId(contractData.contractAttorneyDTO[contractData.contractAttorneyDTO.length - 1]?.user?.id || null)\r\n }\r\n\r\n if (contractData.contractLawFirmDTO.length > 0) {\r\n setResponsibleLawFirmUserName(contractData.contractLawFirmDTO[contractData.contractLawFirmDTO.length - 1].userName || \"\")\r\n setResponsibleLawFirmUserId(contractData.contractLawFirmDTO[contractData.contractLawFirmDTO.length - 1].userId || \"\")\r\n }\r\n\r\n setClientName(contractData.contractClientDTO.userName || \"\")\r\n setClientId(contractData.contractClientDTO.userId || null)\r\n }\r\n\r\n useEffect(() => {\r\n setUserNames(props.contractData)\r\n }, [])\r\n\r\n const [attachments, setAttachments] = useState>([])\r\n const [clientContractIndex, setClientContractIndex] = useState(-1)\r\n const [attourneyAgreementIndex, setAttourneyAgreementIndex] = useState(-1)\r\n\r\n useEffect(() => {\r\n if (props.contractData) {\r\n setAttachments(props?.contractData?.attachments)\r\n }\r\n }, [props])\r\n\r\n const calcFilesIndex = (attachments: Array) => {\r\n for (let i = attachments.length; i >= 0; i--) {\r\n if (attachments[i]?.type === 2) {\r\n setClientContractIndex(i)\r\n break\r\n }\r\n }\r\n for (let i = attachments.length; i >= 0; i--) {\r\n if (attachments[i]?.type === 3) {\r\n setAttourneyAgreementIndex(i)\r\n break\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n attachments && attachments.length > 0 && calcFilesIndex(attachments)\r\n }, [attachments])\r\n\r\n return (\r\n
    \r\n

    Responsible Users

    \r\n
    \r\n
    \r\n {clientId &&\r\n
    \r\n Client: \r\n window.scrollTo({ top: 0, behavior: \"smooth\" })}>{clientName}\r\n {clientContractIndex !== -1 &&\r\n downloadBase64File(attachments[clientContractIndex].mimeType, attachments[clientContractIndex].base64, attachments[clientContractIndex].fileName)}\r\n >\r\n \r\n
    \r\n }\r\n
    \r\n }\r\n
    \r\n
    \r\n {responsibleAttorneyUserId &&\r\n
    \r\n Attorney: \r\n window.scrollTo({ top: 0, behavior: \"smooth\" })}>{responsibleAttorneyUserName}\r\n {attourneyAgreementIndex !== -1 &&\r\n downloadBase64File(attachments[attourneyAgreementIndex].mimeType, attachments[attourneyAgreementIndex].base64, attachments[attourneyAgreementIndex].fileName)}\r\n >\r\n \r\n
    \r\n }\r\n
    \r\n }\r\n \r\n
    \r\n {responsibleLawFirmUserId &&\r\n \r\n Law Firm: \r\n window.scrollTo({ top: 0, behavior: \"smooth\" })}>{responsibleLawFirmUserName}\r\n \r\n }\r\n
    \r\n \r\n
    \r\n )\r\n}","const toBase64 = (file: any) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n});\r\n\r\nexport async function convertFileToBase64(file: any) {\r\n const result: any = await toBase64(file).catch(e => Error(e));\r\n if(result instanceof Error) {\r\n console.log('Error: ', result.message);\r\n return;\r\n }\r\n return result.replace(/^data:(.*,)?/, '')\r\n}","import s from './ContractComments.module.scss'\r\nimport dateFormatting from \"../../../scripts/dateFormatting\"\r\nimport { TextField, FormControlLabel, Checkbox, Button, Divider } from '@material-ui/core'\r\nimport { useState } from 'react'\r\nimport { toggleNotification, setNotificationInfo } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport getCookie from '../../../scripts/getCookie'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom'\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile'\r\nimport { convertFileToBase64 } from '../../../scripts/toBase64'\r\nimport ImageIcon from '@material-ui/icons/Image'\r\nimport ClearIcon from '@material-ui/icons/Clear'\r\nimport { CommentAttachmentsType, ContractCommentType } from '../../../types/contractTypes'\r\nimport { downloadBase64File } from '../../../scripts/downloadBase64File'\r\n\r\nexport type ContractCommentsPropsType = {\r\n comments: Array\r\n}\r\n\r\nexport default function ContractCommentsPropsType(props: ContractCommentsPropsType) {\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n const currentUserId = parseInt(getCookie(\"currentUserId\") + \"\")\r\n const currentUserRole = getCookie(\"currentUserRole\")\r\n const currentUserStatus = getCookie(\"currentUserStatus\")\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n\r\n const [comments, setComments] = useState>(props.comments)\r\n const [commentText, setCommentText] = useState(\"\")\r\n const [visibleComment, setVisibleComment] = useState(true)\r\n\r\n const [attachmentInBase64, setAttachmentInBase64] = useState(\"\")\r\n const [attachmentMimeType, setAttachmentMimeType] = useState(\"\")\r\n const [attachmentFileName, setAttachmentFileName] = useState(\"\")\r\n const attachmentHandle = async (files: any) => {\r\n const file = files[0]\r\n if (file) {\r\n setAttachmentInBase64(await convertFileToBase64(file))\r\n setAttachmentMimeType(file.type)\r\n setAttachmentFileName(file.name)\r\n }\r\n }\r\n\r\n const addComment = async () => {\r\n try {\r\n let newCommentData = {\r\n commentText,\r\n visible: visibleComment,\r\n dateComment: new Date().toISOString() + \"\",\r\n userId: currentUserId,\r\n contractId\r\n }\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${contractId}/addComment`, newCommentData)\r\n setComments([...response.data.contractComments])\r\n\r\n attachmentInBase64 && uploadAttachment(\r\n response.data.contractComments[response.data.contractComments.length - 1].id,\r\n [...response.data.contractComments]\r\n )\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Comment has been added!\", severity: \"success\" }))\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n }\r\n }\r\n\r\n const uploadAttachment = async (commentId: number, updatedComments: Array) => {\r\n try {\r\n let commentAttachment = {\r\n mimeType: attachmentMimeType,\r\n type: 0,\r\n documentBase64String: attachmentInBase64,\r\n fileName: attachmentFileName\r\n }\r\n const response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${commentId}/uploadCommentAttachment`, commentAttachment)\r\n let updatedCommentsWithAttachment = [...updatedComments]\r\n updatedCommentsWithAttachment[updatedCommentsWithAttachment?.length - 1]?.commentAttachments?.push(response.data)\r\n setComments([...updatedCommentsWithAttachment])\r\n clearAttachment()\r\n }\r\n catch (error) {\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Attachment was not saved\", severity: \"error\" }))\r\n }\r\n }\r\n\r\n const clearAttachment = () => {\r\n setAttachmentInBase64(\"\")\r\n setAttachmentMimeType(\"\")\r\n setAttachmentFileName(\"\")\r\n }\r\n\r\n const downloadCommentAttachment = (attachment: CommentAttachmentsType | null) => {\r\n attachment && downloadBase64File(attachment.mimeType, attachment.base64, attachment.fileName)\r\n }\r\n\r\n return (\r\n
    \r\n

    Comments

    \r\n\r\n
    \r\n {comments && comments.length > 0 &&\r\n comments\r\n .filter((comment: ContractCommentType) => comment.visible)\r\n .map((comment: ContractCommentType) => {\r\n return (\r\n
    \r\n
    \r\n {comment.userName ? comment.userName : \"Unknown\"}\r\n {dateFormatting(comment.dateComment)}\r\n
    \r\n \r\n {comment.commentAttachments && comment.commentAttachments.length > 0 &&\r\n downloadCommentAttachment(comment?.commentAttachments ? comment?.commentAttachments[0] : null)}\r\n >\r\n \r\n {comment?.commentAttachments[0]?.fileName}\r\n
    \r\n }\r\n
    \r\n )\r\n })\r\n }\r\n \r\n \r\n\r\n setCommentText(e.target.value + \"\")}\r\n label=\"Write Comment\"\r\n />\r\n
    \r\n addComment()}\r\n >\r\n Send\r\n \r\n \r\n {attachmentFileName &&\r\n clearAttachment()}\r\n />\r\n }\r\n
    \r\n
    \r\n\r\n {currentUserRole === \"Administrator\" && currentUserStatus === \"Approved\" &&\r\n \r\n }\r\n
    \r\n )\r\n}","import PreSettlement from \"./PreSettlement/PreSettlement\"\r\nimport ContractInfo from \"./ContractInfo/ContractInfo\"\r\nimport StatisticsInfo from \"./StatisticsInfo/StatisticsInfo\"\r\nimport GeneralInfo from \"./GeneralInfo/GeneralInfo\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Container, Divider } from '@material-ui/core'\r\nimport EditIcon from '@material-ui/icons/Edit'\r\nimport GetAppIcon from '@material-ui/icons/GetApp'\r\nimport s from \"./ContractPage.module.scss\"\r\nimport getCookie from \"../../scripts/getCookie\"\r\nimport { URL_FOR_API } from \"../../constants/constants\"\r\nimport actionsWithApi from \"../../customHooks/actionsWithApi\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { useLocation } from \"react-router\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { toggleNotification, setNotificationInfo } from \"../../actions/actions\"\r\nimport Ratings from \"./Ratings/Ratings\"\r\nimport Preloader from \"../shared/Preloader/Preloader\"\r\nimport ResponsibleUsers from \"./ResponsibleUsers/ResponsibleUsers\"\r\nimport ContractComments from \"./ContractComments/ContractComments\"\r\nimport { downloadBase64File } from \"../../scripts/downloadBase64File\"\r\n\r\nexport default function ContractPage() {\r\n\tconst dispatch = useDispatch()\r\n\tconst userRole = getCookie(\"currentUserRole\")\r\n\tconst currentUserRole = getCookie(\"currentUserRole\")\r\n\tconst currentUserStatus = getCookie(\"currentUserStatus\")\r\n\tconst location = useLocation()\r\n\tconst contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n\tconst [additionalFundingHasBeenAdded, setAdditionalFundingHasBeenAdded] = useState(false)\r\n\tconst [preloaderForUploadPayoffStatementIsActive, setPreloaderForUploadPayoffStatementIsActive] = useState(false)\r\n\tconst [contractData, setContractData] = useState()\r\n\tconst getContractData = async () => {\r\n\t\ttry {\r\n\t\t\tlet response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Contract/${contractId}`, null)\r\n\t\t\tsetContractData(response.data)\r\n\t\t}\r\n\t\tcatch (error) {\r\n\t\t\tconsole.log(error.message)\r\n\t\t}\r\n\t}\r\n\tuseEffect(() => {\r\n\t\tgetContractData()\r\n\t}, [additionalFundingHasBeenAdded])\r\n\r\n\tconst downloadPayoffStatement = async (contractId: number) => {\r\n\t\tif(preloaderForUploadPayoffStatementIsActive) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tsetPreloaderForUploadPayoffStatementIsActive(true)\r\n\t\t\tlet response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Contract/${contractId}/payoffStatement`)\r\n\t\t\tdownloadBase64File(response.data.mimeType, response.data.base64Content, response.data.fileName)\r\n\t\t}\r\n\t\tcatch (error) {\r\n\t\t\tconsole.log(error.message)\r\n\t\t\tdispatch(toggleNotification(true))\r\n\t\t\tdispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n\t\t} finally {\r\n\t\t\tsetPreloaderForUploadPayoffStatementIsActive(false);\r\n\t\t}\r\n\t}\r\n\r\n\tif (!contractData) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\telse {\r\n\t\treturn (\r\n\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t{currentUserRole === \"Administrator\" && currentUserStatus === \"Approved\" &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tEdit\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t downloadPayoffStatement(contractData.id)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tPayoff Statement\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{preloaderForUploadPayoffStatementIsActive && }\r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{userRole === \"Administrator\" &&\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t}\r\n\r\n\t\t\t\t{userRole === \"Administrator\" &&\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}","import dateFormatting from '../../../scripts/dateFormatting'\r\nimport s from '../UserProfile.module.scss'\r\nimport InfoIcon from '@material-ui/icons/Info'\r\nimport { CustomTooltip } from '../../shared/CustomTooltip/CustomTooltip'\r\n\r\ntype UserProfileLawFirmsPropsType = {\r\n lawFirms: Array\r\n}\r\n\r\nexport default function UserProfileLawFirms(props: UserProfileLawFirmsPropsType) {\r\n\r\n let lawFirmsArr = props.lawFirms.map((_) => { return _; })\r\n\r\n let sortedLawFirmArr = lawFirmsArr.sort((item1: any, item2: any) => {\r\n let startDate1: any = new Date(item1.startDate)\r\n let startDate2: any = new Date(item2.startDate)\r\n return startDate2 - startDate1;\r\n })\r\n\r\n return (\r\n <>\r\n

    Law Firms

    \r\n {sortedLawFirmArr.length > 0 &&\r\n
      \r\n {\r\n sortedLawFirmArr.map((lawFirm: any) => {\r\n return (\r\n
    • \r\n
      \r\n
      {lawFirm.firstName + \"\"}
      \r\n
      {dateFormatting(lawFirm.startDate) + \" - \" + (lawFirm.present ? \"Present\" : dateFormatting(lawFirm.endDate))}
      \r\n
      \r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n }\r\n {sortedLawFirmArr.length === 0 &&\r\n
    Law Firms not found
    \r\n }\r\n \r\n )\r\n}","import { createStyles, makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Theme, withStyles } from \"@material-ui/core\"\r\nimport Paper from '@material-ui/core/Paper'\r\nimport { NavLink } from \"react-router-dom\"\r\nimport dateFormatting from \"../../../scripts/dateFormatting\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\",\r\n \"&:hover\": {\r\n border: \"1px solid #3062A0\"\r\n }\r\n }\r\n }),\r\n)\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\"\r\n }\r\n }),\r\n)(TableCell)\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n }),\r\n)(TableRow)\r\n\r\ntype UserContractsPropsType = {\r\n contracts?: any[]\r\n}\r\n\r\nexport default function UserContracts(props: UserContractsPropsType) {\r\n const classes = useStyles()\r\n\r\n const openLink = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n\r\n if (props.contracts) {\r\n return (\r\n \r\n \r\n \r\n \r\n Case ID\r\n Date Created\r\n Status\r\n Amount Due\r\n Days Until Rate Increase\r\n Paid Off\r\n Client\r\n Attorney\r\n Law Firm\r\n \r\n \r\n\r\n \r\n {props.contracts && props.contracts.map((caseItem: any) => (\r\n \r\n \r\n {caseItem.caseId}\r\n \r\n\r\n {dateFormatting(caseItem?.contractStatus[0].dateChange)}\r\n\r\n \r\n {caseItem?.contractStatus[caseItem?.contractStatus.length - 1].contractsStatus.split(/(?=[A-Z])/)[0]}\r\n

    \r\n {caseItem?.contractStatus[caseItem?.contractStatus.length - 1].contractsStatus.split(/(?=[A-Z])/)[1]}\r\n
    \r\n\r\n \r\n {caseItem.totalDue < 0\r\n ? \"-$\" + (caseItem.totalDue * -1)\r\n : caseItem.totalDue\r\n }\r\n \r\n\r\n \r\n {caseItem.daysBeforePriceIncrease && caseItem.daysBeforePriceIncrease !== 0 && caseItem.daysBeforePriceIncrease + \" days\"}\r\n \r\n\r\n ${caseItem.paidOff}\r\n\r\n \r\n {caseItem.contractClientDTO &&\r\n \r\n {caseItem.contractClientDTO.user?.firstName + \" \" + caseItem.contractClientDTO.user?.lastName}\r\n \r\n }\r\n \r\n\r\n \r\n {caseItem.contractAttorneyDTO.length > 0 &&\r\n \r\n {caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.firstName + \" \" + caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.lastName}\r\n \r\n }\r\n {caseItem.contractAttorneyDTO.length === 0 &&\r\n No Responsible Attorney\r\n }\r\n \r\n\r\n \r\n {caseItem.contractLawFirmDTO.length > 0 &&\r\n \r\n {caseItem.contractLawFirmDTO[caseItem.contractLawFirmDTO?.length - 1]?.user?.firstName}\r\n \r\n }\r\n\r\n {caseItem.contractLawFirmDTO.length === 0 &&\r\n No Responsible Law Firm\r\n }\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n

    Cases not found

    \r\n )\r\n }\r\n}\r\n","import { Button, Container } from '@material-ui/core'\r\nimport EditIcon from '@material-ui/icons/Edit'\r\nimport WarningIcon from '@material-ui/icons/Warning'\r\nimport StarOutlineIcon from '@material-ui/icons/StarOutline'\r\nimport { useDispatch } from 'react-redux'\r\nimport CasesTable from '../shared/CasesTable/CasesTable'\r\nimport Statistics from '../shared/Statistics/Statistics'\r\nimport RatingTable from '../shared/RatingTable/RatingTable'\r\nimport GetAppIcon from '@material-ui/icons/GetApp'\r\nimport { useEffect, useState } from 'react'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport { Link, useLocation } from 'react-router-dom'\r\nimport getCookie from '../../scripts/getCookie'\r\nimport UserProfileLawFirms from './UserProfileLawFirms/UserProfileLawFirms'\r\nimport dateFormatting from '../../scripts/dateFormatting'\r\nimport Preloader from '../shared/Preloader/Preloader'\r\nimport s from './UserProfile.module.scss'\r\nimport { convertFileToBase64 } from '../../scripts/toBase64'\r\nimport { setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport DeleteIcon from '@material-ui/icons/Delete'\r\nimport Skeleton from '@material-ui/lab/Skeleton/Skeleton'\r\nimport UserContracts from \"./UserContracts/UserContracts\";\r\n\r\nexport default function UserProfile() {\r\n const dispatch = useDispatch()\r\n let location = useLocation()\r\n const token = getCookie(\"token\")\r\n const currentUserRole = getCookie(\"currentUserRole\")\r\n const currentUserStatus = getCookie(\"currentUserStatus\")\r\n const currentUserId = parseInt(getCookie(\"currentUserId\") + \"\")\r\n let userId = parseInt(location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\") + \"\")\r\n\r\n const [userRatingIsVisible, setUserRatingIsVisible] = useState(false)\r\n const [userStatisticIsVisible, setUserStatisticIsVisible] = useState(false)\r\n\r\n const [userData, setUserData] = useState()\r\n const [lettersForProfilePicture, setLettersForProfilePicture] = useState(\"\")\r\n const getUserData = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/User/${userId}`, null)\r\n setUserData(response.data)\r\n setLettersForProfilePicture(\r\n (response.data.firstName ? response.data.firstName[0] : \"\") + \" \" +\r\n (response.data.lastName ? response.data.lastName[0] : \"\")\r\n )\r\n return response.data\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n const [userContracts, setUserContracts] = useState([])\r\n const getUserContracts = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Contract/all/${userId}`, null)\r\n setUserContracts(response.data)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n const [userAvgRating, setUserAvgRating] = useState()\r\n const getUserAvgRating = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Statistics/${userId}/getAvgRating`)\r\n setUserAvgRating(response.data)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n useEffect(() => {\r\n getUserData()\r\n .then((userData) => {\r\n currentUserRole === \"Administrator\"\r\n && (userData.userType === \"Attorney\" || userData.userType === \"LawFirm\")\r\n && getUserAvgRating()\r\n })\r\n getUserContracts()\r\n\r\n }, [userId])\r\n\r\n const [userIsActive, setUserIsActive] = useState(false)\r\n const [dateOfFirstContract, setDateOfFirstContract] = useState(\"\")\r\n const calcUserActiveProp = (userContracts: any) => {\r\n let currentDate: any = new Date()\r\n let oneDay = 1000 * 60 * 60 * 24 //Get 1 day in milliseconds\r\n\r\n // iterate over all contracts in a loop\r\n for (let i = 0; i < userContracts.length; i++) {\r\n\r\n // iterate over the contractStatus array in a loop\r\n for (let j = 0; j < userContracts[i].contractStatus.length; j++) {\r\n\r\n // if you have encountered the CheckSent status\r\n if (userContracts[i].contractStatus[j].contractsStatus === \"CheckSent\") {\r\n\r\n // from today's date we subtract the date when the status was changed to CheckSent\r\n let dateOfChangeToCheckSentStatus: any = new Date(userContracts[i].contractStatus[j].dateChange)\r\n let amountDaysWhenStatusChange = Math.ceil((currentDate - dateOfChangeToCheckSentStatus) / oneDay)\r\n setDateOfFirstContract(dateFormatting(dateOfChangeToCheckSentStatus.toISOString()))\r\n\r\n // we get the number of days and if the number is less than 180, then our user will have the active status\r\n if (amountDaysWhenStatusChange <= 180) {\r\n setUserIsActive(true)\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n calcUserActiveProp(userContracts)\r\n }, [userContracts])\r\n\r\n const [uploadedAvatar, setUploadedAvatar] = useState(\"\")\r\n const [avatarIsLoading, setAvatarIsLoading] = useState(false)\r\n const uploadAvatar = (files: FileList | null) => {\r\n if (files) {\r\n const file = files[0]\r\n\r\n if (file.type === \"image/png\" || file.type === \"image/jpeg\") {\r\n convertFileToBase64(file).then(async (fileInBase64: any) => {\r\n setAvatarIsLoading(true)\r\n let uploadAvatarData = {\r\n mimeType: file.type,\r\n documentBase64String: fileInBase64\r\n }\r\n\r\n try {\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/User/${currentUserId}/uploadAvatar`, uploadAvatarData)\r\n setUploadedAvatar(response.data.documentBase64String)\r\n setAvatarHasBeenDeleted(false)\r\n dispatch(setNotificationInfo({ message: \"Avatar uploaded successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n finally {\r\n setAvatarIsLoading(false)\r\n }\r\n })\r\n }\r\n\r\n else {\r\n dispatch(setNotificationInfo({ message: \"Available formats: png, jpg\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n\r\n }\r\n }\r\n\r\n const [avatarHasBeenDeleted, setAvatarHasBeenDeleted] = useState(false)\r\n const deleteAvatar = async () => {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/User/${currentUserId}/removeAvatar`)\r\n dispatch(setNotificationInfo({ message: \"Avatar deleted successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n setAvatarHasBeenDeleted(true)\r\n setUploadedAvatar(\"\")\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n\r\n if (!token) {\r\n return (\r\n

    Please, Login!

    \r\n )\r\n }\r\n else if (userData) {\r\n return (\r\n \r\n {userData &&\r\n
    \r\n {currentUserRole === \"Administrator\" && currentUserStatus === \"Approved\" &&\r\n \r\n Edit\r\n \r\n \r\n }\r\n
    \r\n
    \r\n {(userData.avatar || uploadedAvatar) && !avatarHasBeenDeleted && !avatarIsLoading &&\r\n
    \r\n \r\n
    \r\n deleteAvatar()}\r\n className=\"PrimaryIcon\"\r\n />\r\n \r\n
    \r\n
    \r\n }\r\n {((!userData.avatar && !uploadedAvatar) || avatarHasBeenDeleted) && !avatarIsLoading &&\r\n \r\n }\r\n {avatarIsLoading &&\r\n \r\n }\r\n {currentUserRole === \"Administrator\" && currentUserStatus === \"Approved\" && userData.banned &&\r\n \r\n \r\n \r\n }\r\n
    \r\n

    {userData.firstName + \" \" + (userData.lastName ? userData.lastName : \"\")}

    \r\n {currentUserRole === \"Administrator\" && (userData.userType === \"LawFirm\" || userData.userType === \"Attorney\") &&\r\n
    \r\n Avg Rating: {userAvgRating?.toFixed(2)}\r\n
    \r\n }\r\n\r\n
      \r\n
    • {userData.userType}
    • \r\n
    • {userData.streetAddress}
    • \r\n
    • {userData.city ? userData.city + \",\" : \"\"} {userData.state ? userData.state.name + \",\" : \"\"} {userData.zipCode}
    • \r\n
    • {userData.phoneNumber}
    • \r\n
    • {userData.website}
    • \r\n
    \r\n\r\n
      \r\n
    • \r\n Date of first Contract: \r\n {dateOfFirstContract.length > 0 ? dateOfFirstContract : \"No Contracts\"}\r\n
    • \r\n
    • \r\n Status: \r\n {userIsActive ? \"Active\" : \"Inactive\"}\r\n
    • \r\n
    \r\n {userData.userType === \"Attorney\" &&\r\n \r\n }\r\n
    \r\n
    \r\n {\r\n currentUserRole === \"Administrator\" &&\r\n currentUserStatus === \"Approved\" &&\r\n (userData.userType === \"Attorney\" || userData.userType === \"LawFirm\") &&\r\n
    \r\n {!userRatingIsVisible &&\r\n
    \r\n \r\n
    \r\n }\r\n {userRatingIsVisible &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n }\r\n {currentUserRole === \"Administrator\" && currentUserStatus === \"Approved\" &&\r\n
    \r\n {!userStatisticIsVisible &&\r\n
    \r\n \r\n
    \r\n }\r\n {userStatisticIsVisible &&\r\n \r\n }\r\n
    \r\n }\r\n
    \r\n
    \r\n }\r\n {\r\n (\r\n (currentUserRole === \"Administrator\" && currentUserStatus === \"Approved\") ||\r\n currentUserId === userId\r\n ) &&\r\n
    \r\n

    Cases

    \r\n\r\n \r\n
    \r\n }\r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","import { Button, createStyles, makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Theme, withStyles } from \"@material-ui/core\"\r\nimport Paper from '@material-ui/core/Paper'\r\nimport { useEffect, useState } from \"react\"\r\nimport { NavLink, useLocation } from \"react-router-dom\"\r\nimport { URL_FOR_API } from \"../../../constants/constants\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport getCookie from \"../../../scripts/getCookie\"\r\nimport dateFormatting from \"../../../scripts/dateFormatting\"\r\nimport Preloader from \"../Preloader/Preloader\"\r\nimport {setNotificationInfo, toggleNotification} from \"../../../actions/actions\";\r\nimport {useDispatch} from \"react-redux\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\",\r\n \"&:hover\": {\r\n border: \"1px solid #3062A0\"\r\n }\r\n }\r\n }),\r\n)\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\"\r\n }\r\n }),\r\n)(TableCell)\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n }),\r\n)(TableRow)\r\n\r\ntype CasesTableComponentPropsType = {\r\n searchQuery?: string\r\n contracts?: any[]\r\n}\r\n\r\nexport default function CasesTable(props: CasesTableComponentPropsType) {\r\n const classes = useStyles()\r\n const location = useLocation()\r\n const dispatch = useDispatch()\r\n const currentUserId = parseInt(getCookie(\"currentUserId\") + \"\")\r\n const userIdFromLink = parseInt(location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\"))\r\n const [initialLoaderIsActive, setInitialLoaderIsActive] = useState(false)\r\n const [viewMoreLoaderIsActive, setViewMoreLoaderIsActive] = useState(false)\r\n const [casesArr, setCasesArr] = useState()\r\n const [pageNumber, setPageNumber] = useState(1)\r\n const [viewMoreBtnIsVisible, setViewMoreBtnIsVisible] = useState(true)\r\n\r\n const openLink = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n const getCases = async (pageNumber: number) => {\r\n let trueUserId = location.pathname !== \"/contract-history\"\r\n ? ((userIdFromLink !== currentUserId) ? userIdFromLink : currentUserId)\r\n : currentUserId\r\n\r\n if (pageNumber === 1) setInitialLoaderIsActive(true)\r\n\r\n try {\r\n let response = await actionsWithApi(\r\n \"GET\",\r\n URL_FOR_API + `/api/v1/Contract/all/${trueUserId}?PageNumber=${pageNumber}&PageSize=10&sortingType=1&userName=${props.searchQuery || ''}`,\r\n null\r\n )\r\n let newContractsArr = [...response.data]\r\n let updatedContractsArr\r\n\r\n newContractsArr.length < 10\r\n ? setViewMoreBtnIsVisible(false)\r\n : setViewMoreBtnIsVisible(true);\r\n\r\n pageNumber === 1\r\n ? updatedContractsArr = newContractsArr\r\n : updatedContractsArr = casesArr.concat(newContractsArr);\r\n\r\n setCasesArr(updatedContractsArr)\r\n setViewMoreLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n console.error(error.message)\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n finally {\r\n if (pageNumber === 1) setInitialLoaderIsActive(false)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getCases(pageNumber)\r\n }, [location, pageNumber])\r\n\r\n useEffect(() => {\r\n setPageNumber(1)\r\n getCases(1)\r\n }, [props.searchQuery])\r\n\r\n if (casesArr && casesArr.length > 0) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n Case ID\r\n Date Created\r\n Status\r\n Amount Due\r\n Days Until Rate Increase\r\n Paid Off\r\n Client\r\n Attorney\r\n Law Firm\r\n \r\n \r\n\r\n \r\n {casesArr && casesArr.map((caseItem: any) => (\r\n \r\n \r\n {caseItem.caseId}\r\n \r\n\r\n \r\n {dateFormatting(caseItem?.contractStatus[0].dateChange)}\r\n \r\n\r\n \r\n {caseItem?.contractStatus[caseItem?.contractStatus.length - 1].contractsStatus.split(/(?=[A-Z])/)[0]}\r\n

    \r\n {caseItem?.contractStatus[caseItem?.contractStatus.length - 1].contractsStatus.split(/(?=[A-Z])/)[1]}\r\n
    \r\n\r\n \r\n {caseItem.totalDue < 0\r\n ? \"-$\" + (caseItem.totalDue * -1)\r\n : caseItem.totalDue\r\n }\r\n \r\n\r\n {caseItem.daysBeforePriceIncrease && caseItem.daysBeforePriceIncrease !== 0 && caseItem.daysBeforePriceIncrease + \" days\"}\r\n\r\n ${caseItem.paidOff}\r\n\r\n \r\n {caseItem.contractClientDTO &&\r\n \r\n {caseItem.contractClientDTO.user?.firstName + \" \" + caseItem.contractClientDTO.user?.lastName}\r\n \r\n }\r\n \r\n\r\n \r\n {caseItem.contractAttorneyDTO.length > 0 &&\r\n \r\n {caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.firstName + \" \" + caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.lastName}\r\n \r\n }\r\n\r\n {caseItem.contractAttorneyDTO.length === 0 &&\r\n No Responsible Attorney\r\n }\r\n \r\n\r\n \r\n {caseItem.contractLawFirmDTO.length > 0 &&\r\n \r\n {caseItem.contractLawFirmDTO[caseItem.contractLawFirmDTO?.length - 1]?.user?.firstName}\r\n \r\n }\r\n\r\n {caseItem.contractLawFirmDTO.length === 0 &&\r\n No Responsible Law Firm\r\n }\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n\r\n {viewMoreLoaderIsActive &&\r\n \r\n }\r\n\r\n {viewMoreBtnIsVisible && !viewMoreLoaderIsActive &&\r\n \r\n }\r\n \r\n )\r\n }\r\n else if ((props.searchQuery + \"\").length > 0) {\r\n return (\r\n

    Cases not found

    \r\n )\r\n }\r\n else if (initialLoaderIsActive) {\r\n return (\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n

    Cases not found

    \r\n )\r\n }\r\n}\r\n","import AddCircleIcon from '@material-ui/icons/AddCircle'\r\nimport SearchIcon from '@material-ui/icons/Search'\r\nimport { Container, TextField } from '@material-ui/core'\r\nimport s from './ContractHistory.module.scss'\r\n\r\nimport CasesTable from '../shared/CasesTable/CasesTable'\r\nimport { NavLink } from 'react-router-dom'\r\nimport {useRef, useState} from 'react'\r\nimport getCookie from \"../../scripts/getCookie\"\r\n\r\n\r\nexport default function ContractHistory() {\r\n const [searchQuery, setSearchQuery] = useState(\"\")\r\n const currentUserRole = getCookie(\"currentUserRole\")\r\n const searchTimerRef = useRef(null)\r\n\r\n const handleSearchInput = async (searchQuery: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n setSearchQuery(searchQuery)\r\n }, 500)\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n\r\n {\r\n (currentUserRole === \"Administrator\" || currentUserRole === \"Attorney\") ?\r\n \r\n \r\n \r\n : ''\r\n }\r\n
    \r\n\r\n \r\n
    \r\n );\r\n}","import { Popper, Fade, Paper } from \"@material-ui/core\"\r\nimport { CSSProperties } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setNotificationInfo, toggleNotification } from \"../../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../../constants/constants\"\r\nimport actionsWithApi from \"../../../../customHooks/actionsWithApi\"\r\nimport s from \"./ActionMenu.module.scss\"\r\n\r\nconst menuWrapper: CSSProperties = {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n cursor: \"default\"\r\n}\r\n\r\ntype ActionMenuPropsType = {\r\n finalSortedData: any\r\n updateStatusUserId: number\r\n open: boolean\r\n setMoreMenuIsOpen(toggle: boolean): any\r\n anchorEl: any\r\n}\r\n\r\nexport default function ActionMenu(props: ActionMenuPropsType) {\r\n const dispatch = useDispatch()\r\n const userStatusArr: Array<\"New\" | \"Approved\" | \"Rejected\"> = [\"New\", \"Approved\", \"Rejected\"]\r\n\r\n const handleUpdateStatus = async (newStatus: \"New\" | \"Approved\" | \"Rejected\") => {\r\n try {\r\n let editableUser = props.finalSortedData.find((user: any) => user.id === props.updateStatusUserId) // search editable user\r\n editableUser.userStatus.userStatusesValue = newStatus // change userStatusesValue for editable user\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/AdminUser/${props.updateStatusUserId}`, editableUser) // sending edited data to BE\r\n\r\n dispatch(setNotificationInfo({ message: \"Data changed successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n return (\r\n
    props.setMoreMenuIsOpen(false)} style={menuWrapper}>\r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n
      \r\n {userStatusArr &&\r\n userStatusArr.map((status) => {\r\n return (\r\n
    • handleUpdateStatus(status)}\r\n >\r\n {status}\r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n )}\r\n
    \r\n
    \r\n )\r\n}","import { Button, createStyles, makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Theme, withStyles } from \"@material-ui/core\"\r\nimport Paper from '@material-ui/core/Paper'\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { URL_FOR_API } from \"../../../constants/constants\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport dateFormatting from \"../../../scripts/dateFormatting\"\r\nimport Preloader from \"../../shared/Preloader/Preloader\"\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert'\r\nimport ActionMenu from './ActionMenu/ActionMenu'\r\nimport {setNotificationInfo, toggleNotification} from \"../../../actions/actions\";\r\nimport {useDispatch} from \"react-redux\";\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n padding: 20\r\n },\r\n body: {\r\n fontSize: 14,\r\n padding: 20\r\n },\r\n }),\r\n)(TableCell)\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n }),\r\n)(TableRow)\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n table: {\r\n overflowX: \"auto\"\r\n },\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\",\r\n \"&:hover\": {\r\n border: \"1px solid #3062A0\"\r\n }\r\n },\r\n menuIcon: {\r\n cursor: \"pointer\",\r\n padding: 0\r\n }\r\n }),\r\n);\r\n\r\nexport type FindUserPropsType = {\r\n userType: string | null\r\n status: string | null\r\n name: string | null\r\n}\r\n\r\nexport default function FindUserTable({ userType, status, name }: FindUserPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const [updateStatusUserId, setUpdateStatusUserId] = useState(0)\r\n const [moreMenuIsOpen, setMoreMenuIsOpen] = useState(false)\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const handleOpenMenu = (e: any, userId: number) => {\r\n setAnchorEl(e.currentTarget)\r\n setUpdateStatusUserId(userId)\r\n setMoreMenuIsOpen(!moreMenuIsOpen)\r\n }\r\n\r\n const [viewMoreLoaderIsActive, setViewMoreLoaderIsActive] = useState(false)\r\n const [finalSortedData, setFinalSortedData] = useState(null)\r\n const [pageNumber, setPageNumber] = useState(1)\r\n const [viewMoreBtnIsVisible, setViewMoreBtnIsVisible] = useState(true)\r\n async function getUsers(pageNumber: number) {\r\n try {\r\n let response = await actionsWithApi(\"get\",\r\n URL_FOR_API +\r\n \"/api/v1/AdminUser?\" +\r\n (userType ? `UserType=${userType}&` : \"\") +\r\n (status ? `UserStatus=${status}&` : \"\") +\r\n (name && name.length >= 3 ? `Name=${name}&` : \"\") +\r\n `PageNumber=${pageNumber}&PageSize=10&SortingType=desc`,\r\n null\r\n )\r\n let newUsersArr = [...response.data]\r\n newUsersArr.length < 10 ? setViewMoreBtnIsVisible(false) : setViewMoreBtnIsVisible(true)\r\n let updatedUsersArr\r\n\r\n pageNumber === 1 ? updatedUsersArr = newUsersArr : updatedUsersArr = finalSortedData.concat(newUsersArr)\r\n setFinalSortedData(updatedUsersArr)\r\n setViewMoreLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n console.error(error.message)\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setPageNumber(1)\r\n getUsers(1)\r\n }, [userType, status, name])\r\n\r\n useEffect(() => {\r\n pageNumber !== 1 && getUsers(pageNumber)\r\n }, [pageNumber])\r\n\r\n if (!finalSortedData) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n else return (\r\n
    \r\n \r\n \r\n \r\n \r\n Date Created\r\n Date Logged In\r\n Name\r\n User Type\r\n Open Fund Total\r\n Total Contracts\r\n Banned\r\n Status\r\n \r\n \r\n \r\n \r\n {finalSortedData.length > 0 && finalSortedData.map((user: any) => (\r\n \r\n {dateFormatting(user.createDate)}\r\n {dateFormatting(user.dateLogin)}\r\n \r\n \r\n {user.firstName + \" \" + (user.lastName ? user.lastName : \"\")}\r\n \r\n \r\n {user.userType}\r\n {user.openFundTotal}\r\n {user.totalContract}\r\n {user.banned ? \"+\" : \"-\"}\r\n {user.userStatus ? user.userStatus.userStatusesValue : \"New\"}\r\n \r\n
    handleOpenMenu(e, user.id)}>\r\n \r\n
    \r\n\r\n {moreMenuIsOpen &&\r\n \r\n }\r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n\r\n {viewMoreBtnIsVisible && !viewMoreLoaderIsActive &&\r\n \r\n }\r\n\r\n {viewMoreLoaderIsActive &&\r\n \r\n }\r\n\r\n
    \r\n )\r\n}","import { Container, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport s from './FindUser.module.scss'\r\nimport SearchIcon from '@material-ui/icons/Search'\r\nimport FindUserTable from './FindUserTable/FindUserTable'\r\nimport AddBtn from '../shared/AddBtn/AddBtn'\r\nimport { NavLink } from 'react-router-dom'\r\nimport {useRef, useState} from 'react'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 200,\r\n marginRight: 20,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginRight: 0\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n searchField: {\r\n width: 200,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n }\r\n }),\r\n);\r\n\r\nexport default function FindUser() {\r\n const classes = useStyles()\r\n const [userType, setUserType] = useState(\"\")\r\n const [registerStatus, setRegisterStatus] = useState(\"\")\r\n const [name, setName] = useState(\"\")\r\n const searchTimerRef = useRef(null)\r\n\r\n const handleSearchInput = async (searchQuery: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n setName(searchQuery)\r\n }, 500)\r\n }\r\n \r\n return (\r\n \r\n
    \r\n \r\n User Type\r\n \r\n \r\n\r\n \r\n Registered Status\r\n \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n )\r\n}\r\n","import { Button, TextField } from \"@material-ui/core\"\r\nimport { FormEvent, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setContentToInfoPage, setNotificationInfo, toggleNotification } from \"../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../constants/constants\"\r\nimport actionsWithApi from \"../../customHooks/actionsWithApi\"\r\nimport s from \"./ResetPassword.module.scss\"\r\nimport { history } from '../../../App'\r\n\r\nexport default function ResetPassword() {\r\n const dispatch = useDispatch()\r\n const [email, setEmail] = useState(\"\")\r\n \r\n const handleSubmit = async (e: FormEvent) => {\r\n e.preventDefault()\r\n\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Account/reset-password?email=${email}`)\r\n setEmail(\"\")\r\n dispatch(setContentToInfoPage({\r\n title: \"Email Sent\",\r\n textDescription: \"An email has been sent to the address you indicated with a link to reset your password. Click on the link to enter a new password.\",\r\n hasInput: false,\r\n additionalBtn: false,\r\n contractSupportBtn: false\r\n }))\r\n history.push('/information-page')\r\n }\r\n catch (error) {\r\n if (error.response.status === 404) {\r\n dispatch(setNotificationInfo({ message: \"No user found with this email\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n else {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n

    Forgot your password?

    \r\n

    Enter your email account and we'll send
    a link to reset the password

    \r\n
    handleSubmit(e)}>\r\n setEmail(e.target.value)}\r\n label=\"Email\"\r\n />\r\n\r\n \r\n Send Link\r\n \r\n \r\n
    \r\n );\r\n}","export type TokenAndEmailDataFromURL = {\r\n token: string\r\n email: string\r\n}\r\n\r\nexport function getTokenAndEmailFromURL(searchQueryStr: string): TokenAndEmailDataFromURL {\r\n let securityDataFromLink = {\r\n token: \"\",\r\n email: \"\"\r\n }\r\n\r\n let searchQueriesArr = searchQueryStr.slice(1, searchQueryStr.length).split('&')\r\n securityDataFromLink = {\r\n token: searchQueriesArr[0].split(\"=\")[1],\r\n email: searchQueriesArr[1].split(\"=\")[1]\r\n }\r\n\r\n return securityDataFromLink\r\n}","import { Button, TextField } from \"@material-ui/core\"\r\nimport { FormEvent, useEffect, useState } from \"react\"\r\nimport { setContentToInfoPage, setNotificationInfo, toggleNotification } from \"../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../constants/constants\"\r\nimport actionsWithApi from \"../../customHooks/actionsWithApi\"\r\nimport { validatePassword } from \"../../scripts/registrationValidate\"\r\nimport s from \"./ResetPasswordSuccess.module.scss\"\r\nimport { history } from '../../../App'\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useLocation } from \"react-router-dom\"\r\nimport { TokenAndEmailDataFromURL, getTokenAndEmailFromURL } from \"../../scripts/getTokenAndEmailFromLink\"\r\n\r\nexport default function ResetPasswordSuccess() {\r\n const dispatch = useDispatch()\r\n \r\n const [password, setPassword] = useState(\"\")\r\n const [confirmPassword, setConfirmPassword] = useState(\"\")\r\n\r\n const location = useLocation()\r\n const [tokenAndEmailDataFromURL, setTokenAndEmailDataFromURL] = useState({\r\n token: \"\",\r\n email: \"\"\r\n })\r\n\r\n const [resultValidationPasswords, setResultValidationPasswords] = useState(true)\r\n const [passwordsIsMatch, setPasswordsIsMatch] = useState(true)\r\n\r\n const handleSubmit = async (e: FormEvent) => {\r\n e.preventDefault()\r\n\r\n let [validationIsSuccessfull, passwordsIsIdentical] = validatePassword(password, confirmPassword)\r\n setResultValidationPasswords(validationIsSuccessfull)\r\n setPasswordsIsMatch(passwordsIsIdentical)\r\n\r\n if (validationIsSuccessfull && passwordsIsIdentical) {\r\n try {\r\n await actionsWithApi(\r\n \"POST\",\r\n URL_FOR_API + \"/api/v1/Account/reset-password-success?passwordToken=\" + tokenAndEmailDataFromURL.token,\r\n {\r\n password,\r\n email: tokenAndEmailDataFromURL.email\r\n }\r\n )\r\n setPassword(\"\")\r\n setConfirmPassword(\"\")\r\n\r\n dispatch(setContentToInfoPage({\r\n title: \"Password changed successfully!\",\r\n textDescription: \"Go to the login page to log in with a new password.\",\r\n hasInput: false,\r\n contractSupportBtn: false,\r\n additionalBtn: true,\r\n buttonText: \"Go to Login\",\r\n btnLink: \"/login\"\r\n }))\r\n history.push('/information-page')\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setTokenAndEmailDataFromURL(getTokenAndEmailFromURL(location.search))\r\n }, [])\r\n\r\n return (\r\n
    \r\n

    Welcome Back

    \r\n

    Enter a new password to acces your account.

    \r\n\r\n
    handleSubmit(e)}>\r\n setPassword(e.target.value)}\r\n />\r\n\r\n setConfirmPassword(e.target.value)}\r\n error={!resultValidationPasswords || !passwordsIsMatch}\r\n helperText={\r\n (!resultValidationPasswords || !passwordsIsMatch)\r\n ? !passwordsIsMatch ? \"Password mismatch\" : \"Password must be at least 8 characters, including 1 number and 1 uppercase letter\"\r\n : false\r\n }\r\n />\r\n\r\n \r\n Reset Password\r\n \r\n \r\n
    \r\n );\r\n}","\r\nimport { Container } from '@material-ui/core'\r\nimport { SUPPORT_EMAIL } from '../../../constants/constants'\r\n\r\nimport s from './Footer.module.scss'\r\nimport { NavLink } from 'react-router-dom'\r\n\r\n\r\nexport default function Footer() {\r\n const scrollToTop = (): void => {\r\n window.scrollTo({ top: 0, behavior: \"smooth\" })\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
      \r\n
    • \r\n Contact Us\r\n
    • \r\n
    • scrollToTop()}>\r\n \r\n Terms & Conditions\r\n \r\n
    • \r\n
    • scrollToTop()}>\r\n \r\n Privacy Policy\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { Button, Container } from '@material-ui/core'\r\nimport { NavLink } from 'react-router-dom'\r\nimport WarningIcon from '@material-ui/icons/Warning'\r\nimport getCookie from \"../../scripts/getCookie\";\r\n\r\nexport default function Error404Page() {\r\n let currentUserId: string | undefined = getCookie(\"currentUserId\")\r\n\r\n return (\r\n \r\n \r\n\r\n

    It looks like the page doesn't exist

    \r\n\r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n","export default function dateToString(date: Date | null) {\r\n if (!date) {\r\n return null;\r\n }\r\n\r\n const formatNumber = (num: number) => num < 10 ? `0${num}` : num.toString();\r\n\r\n return `${formatNumber(date.getDate())}/${formatNumber(date.getMonth() + 1)}/${date.getFullYear()}`;\r\n}","import DateFnsUtils from \"@date-io/date-fns\"\r\nimport { makeStyles, Theme, createStyles, FormControl, InputLabel, Select, MenuItem, Button } from \"@material-ui/core\"\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\"\r\nimport { FormEvent, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setNotificationInfo, toggleNotification } from \"../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../constants/constants\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport { downloadBase64File } from \"../../../scripts/downloadBase64File\"\r\nimport s from \"../Reports.module.scss\"\r\nimport Preloader from \"../../shared/Preloader/Preloader\";\r\nimport dateToString from \"../../../scripts/dateToString\"\r\n\r\nconst contractTypes = [\r\n { value: \"preSettlement\", title: \"Pre-settlement\" },\r\n { value: \"postSettlement\", title: \"Post-settlement\" }\r\n]\r\n\r\nconst contractStatuses = [\r\n { value: \"checkSent\", title: \"Check Sent\" },\r\n { value: \"checkCashed\", title: \"Check Cashed\" },\r\n { value: \"paidOff\", title: \"Paid Off\" },\r\n { value: \"closedNotPaidOff\", title: \"Closed But Not Paid Off\" },\r\n { value: \"closedCaseLost\", title: \"Closed Case Lost\" },\r\n]\r\n\r\nconst periodicities = [\r\n { value: \"monthly\", title: \"Monthly\" },\r\n { value: \"quarterly\", title: \"Quarterly\" },\r\n { value: \"yearly\", title: \"Yearly\" }\r\n]\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n select: {\r\n width: 250,\r\n marginBottom: 20,\r\n margin: \"0 30px 15px 0\",\r\n \"& span\": {\r\n marginRight: 10\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n margin: \"0 0 15px 0\",\r\n }\r\n },\r\n btn: {\r\n width: 200,\r\n margin: \"25px 0\",\r\n [theme.breakpoints.down('xs')]: {\r\n margin: \"20px auto\"\r\n }\r\n }\r\n }),\r\n);\r\n\r\nexport default function ExportReport() {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [period, setPeriod] = useState()\r\n const [contractStatus, setContractStatus] = useState>([])\r\n const [contractType, setContractType] = useState>([])\r\n\r\n const [fromDate, setFromDate] = useState(\r\n new Date(),\r\n )\r\n const [toDate, setToDate] = useState(\r\n new Date(),\r\n )\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n\r\n const createReport = async (e: FormEvent) => {\r\n e.preventDefault()\r\n setLoaderIsActive(true)\r\n try {\r\n let reportOptions = {\r\n from: dateToString(fromDate),\r\n to: dateToString(toDate),\r\n reportPriority: period,\r\n contractType: contractType,\r\n contractStatus: contractStatus\r\n }\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + \"/api/v1/Report/createReport/report\", reportOptions)\r\n downloadBase64File(\r\n response.data.mimeType,\r\n response.data.base64Content,\r\n response.data.fileName\r\n )\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n finally {\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n

    Export Report

    \r\n\r\n
    createReport(e)}>\r\n\r\n
    \r\n

    Step 1: Select Date Range, based upon Date Check Sent

    \r\n
    \r\n \r\n setFromDate(data)}\r\n required\r\n />\r\n \r\n \r\n setToDate(data)}\r\n required\r\n />\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n

    Step 2: Select the periodicity to present data

    \r\n \r\n Periodicity\r\n setPeriod(e.target.value)}\r\n required\r\n >\r\n {periodicities.map((period, index) => (\r\n \r\n {period.title}\r\n \r\n ))}\r\n \r\n \r\n
    \r\n\r\n
    \r\n

    Step 3: Select the types of data to include

    \r\n\r\n \r\n Contract Type:\r\n setContractType(e.target.value as string[])}\r\n type=\"select-multiple\"\r\n required\r\n multiple\r\n >\r\n {contractTypes.map((contractType, index) => (\r\n \r\n {contractType.title}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n Contract Status:\r\n setContractStatus(e.target.value as string[])}\r\n style={{ transformOrigin: \"0 0\" }}\r\n required\r\n multiple\r\n >\r\n {contractStatuses.map((contractStatus, index) => (\r\n \r\n {contractStatus.title}\r\n \r\n ))}\r\n \r\n \r\n\r\n
    \r\n \r\n Export Report\r\n \r\n\r\n {loaderIsActive && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, Theme } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n select: {\r\n width: 250,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n }),\r\n);\r\n\r\ntype RawDataSelectType = {\r\n rawData: Array\r\n setRawData(rawData: Array | unknown): void\r\n values: Array | unknown\r\n}\r\n\r\nexport default function RawDataSelect(props: RawDataSelectType) {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n Raw Data:\r\n props.setRawData(e.target.value)}\r\n value={props.rawData}\r\n multiple\r\n required\r\n >\r\n Date Of CheckSent\r\n Current Contract Status\r\n Last Modified\r\n Responsible Attorney\r\n Previous Attorney\r\n Responsible LawFirm\r\n Previous Law Firm\r\n Client\r\n Amount\r\n Interest Rate Amount Approved\r\n Date Of Next Interest Rate Amount Approved\r\n Expected Contract Value\r\n Additional Funds\r\n Date Amount Additional Approved\r\n Date Of Next Next Interest Rate Additional Approved\r\n Interest Rate Additional Approved\r\n Expected Additional Contract Value\r\n Date Next Interest Rate Increases\r\n Open Balance\r\n Amount Lost Owed After Closing\r\n Total Paid\r\n \r\n \r\n )\r\n}","import RawDataSelect from './RawDataSelect/RawDataSelect'\r\nimport { createStyles, makeStyles, Theme, Button } from '@material-ui/core'\r\nimport s from \"../Reports.module.scss\"\r\nimport { FormEvent, useState } from \"react\"\r\nimport DateFnsUtils from \"@date-io/date-fns\"\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\"\r\nimport { setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { useDispatch } from 'react-redux'\r\nimport { downloadBase64File } from '../../../scripts/downloadBase64File'\r\nimport Preloader from \"../../shared/Preloader/Preloader\";\r\nimport dateToString from '../../../scripts/dateToString'\r\n\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n select: {\r\n width: 250,\r\n marginBottom: 20,\r\n margin: \"0 30px 15px 0\",\r\n \"& span\": {\r\n marginRight: 10\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n margin: \"0 0 15px 0\",\r\n }\r\n },\r\n btn: {\r\n width: 200,\r\n margin: \"25px 0\",\r\n [theme.breakpoints.down('xs')]: {\r\n margin: \"20px auto\"\r\n }\r\n }\r\n }),\r\n)\r\n\r\nexport default function Reports() {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [rawData, setRawData] = useState>([])\r\n const [fromDate, setFromDate] = useState(\r\n new Date(),\r\n )\r\n const [toDate, setToDate] = useState(\r\n new Date(),\r\n )\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n\r\n const exportRawData = async (e: FormEvent) => {\r\n e.preventDefault()\r\n setLoaderIsActive(true)\r\n try {\r\n let exportRawDataOptions = {\r\n from: dateToString(fromDate),\r\n to: dateToString(toDate),\r\n exportPropertiesList: rawData\r\n }\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + \"/api/v1/Report/createReport/all\", exportRawDataOptions)\r\n downloadBase64File(\r\n response.data.mimeType,\r\n response.data.base64Content,\r\n response.data.fileName\r\n )\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n finally {\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n

    Download Raw Data

    \r\n\r\n
    exportRawData(e)}>\r\n
    \r\n

    Step 1: Select Date Range, based upon Date Check Sent

    \r\n
    \r\n \r\n setFromDate(data)}\r\n required\r\n />\r\n \r\n \r\n setToDate(data)}\r\n required\r\n />\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n

    Step 2: Select the types of Raw Data you want to see for the Date Range

    \r\n \r\n\r\n
    \r\n \r\n Export Raw Data\r\n \r\n\r\n {loaderIsActive && }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n}","import { Container, Divider } from '@material-ui/core'\r\nimport s from \"./Reports.module.scss\"\r\nimport getCookie from \"../../scripts/getCookie\"\r\nimport ExportReport from './ExportReport/ExportReport'\r\nimport ExportRawData from './ExportRawData/ExportRawData'\r\n\r\nexport default function Reports() {\r\n const userRole = getCookie(\"currentUserRole\")\r\n const currentUserStatus = getCookie(\"currentUserStatus\")\r\n\r\n\r\n if (userRole === \"Administrator\" && currentUserStatus === \"Approved\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n else {\r\n return (\r\n

    Please Login as Administrator!

    \r\n )\r\n }\r\n}","import { Button, Container, TextField } from '@material-ui/core'\r\nimport { useSelector } from 'react-redux'\r\nimport { NavLink } from 'react-router-dom'\r\nimport { SUPPORT_EMAIL } from '../../../constants/constants'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\n\r\nimport s from './InformationPage.module.scss'\r\n\r\nexport default function InformationPage() {\r\n const { title, textDescription, hasInput, inputPlaceholder, inputLabel, additionalBtn, buttonText, btnLink, contractSupportBtn } =\r\n useSelector((state: RootState) => state.infoPage)\r\n\r\n return (\r\n
    \r\n \r\n

    {title}

    \r\n

    {textDescription}

    \r\n\r\n {hasInput && inputPlaceholder &&\r\n \r\n }\r\n \r\n {additionalBtn && btnLink && buttonText &&\r\n \r\n \r\n {buttonText}\r\n \r\n \r\n }\r\n\r\n {contractSupportBtn &&\r\n \r\n \r\n Contact Support\r\n \r\n \r\n }\r\n
    \r\n
    \r\n )\r\n}","import { Button, createStyles, makeStyles, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Theme, withStyles } from \"@material-ui/core\"\r\nimport { useState } from \"react\"\r\nimport { Link, NavLink } from \"react-router-dom\"\r\nimport { URL_FOR_API } from \"../../../constants/constants\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport { useEffect } from \"react\"\r\nimport dateFormatting from \"../../../scripts/dateFormatting\"\r\nimport Preloader from \"../../shared/Preloader/Preloader\"\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n }\r\n }),\r\n)(TableCell)\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n }),\r\n)(TableRow)\r\n\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\",\r\n }\r\n }),\r\n)\r\n\r\nexport type UserAdminPageType = {\r\n userType: string | null\r\n status: string | null\r\n name: string | null\r\n}\r\n\r\nexport default function UsersAdminTable(props: UserAdminPageType) {\r\n const classes = useStyles()\r\n const [viewMoreLoaderIsActive, setViewMoreLoaderIsActive] = useState(false)\r\n const [finalSortedData, setFinalSortedData] = useState(null)\r\n const [pageNumber, setPageNumber] = useState(1)\r\n const [viewMoreBtnIsVisible, setViewMoreBtnIsVisible] = useState(true)\r\n async function getUsers(pageNumber?: number, userType?: string | null, status?: string | null, name?: string | null) {\r\n try {\r\n let response = await actionsWithApi(\"get\", URL_FOR_API +\r\n \"/api/v1/AdminUser?\" +\r\n (userType ? `UserType=${userType}&` : \"\") +\r\n (status ? `UserStatus=${status}&` : \"\") +\r\n (name && name.length >= 3 ? `Name=${name}&` : \"\") +\r\n `PageNumber=${pageNumber}&PageSize=10&SortingType=desc`,\r\n null)\r\n let newUsersArr = [...response.data]\r\n newUsersArr.length < 10 ? setViewMoreBtnIsVisible(false) : setViewMoreBtnIsVisible(true)\r\n let updatedUsersArr\r\n\r\n pageNumber === 1 ? updatedUsersArr = newUsersArr : updatedUsersArr = finalSortedData.concat(newUsersArr)\r\n setFinalSortedData(updatedUsersArr)\r\n setViewMoreLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setPageNumber(1)\r\n getUsers(1, props.userType, props.status, props.name)\r\n }, [props.userType, props.status, props.name])\r\n\r\n useEffect(() => {\r\n pageNumber !== 1 && getUsers(pageNumber, props.userType, props.status, props.name)\r\n }, [pageNumber])\r\n\r\n if (!finalSortedData) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n else return (\r\n <>\r\n \r\n \r\n \r\n \r\n Date Created\r\n Date Logged In\r\n Name\r\n User Type\r\n Status\r\n Edit\r\n \r\n \r\n \r\n {finalSortedData.length > 0 && finalSortedData.map((item: any, index: number) => (\r\n \r\n {dateFormatting(item.createDate)}\r\n {dateFormatting(item.dateLogin)}\r\n \r\n window.scrollTo({ top: 0, behavior: \"smooth\" })}>\r\n {item.firstName + \" \" + (item.lastName ? item.lastName : \"\")}\r\n \r\n \r\n \r\n {item.userType === \"Attorney\" && \"Attorney\"}\r\n {item.userType === \"Client\" && \"Client\"}\r\n {item.userType === \"LawFirm\" && \"LawFirm\"}\r\n {item.userType === \"Administrator\" && \"Administrator\"}\r\n \r\n \r\n {item.userStatus ? item.userStatus.userStatusesValue : \"New\"}\r\n \r\n \r\n Edit\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n {viewMoreBtnIsVisible && !viewMoreLoaderIsActive &&\r\n \r\n }\r\n {viewMoreLoaderIsActive &&\r\n \r\n }\r\n \r\n )\r\n}","import { Container, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from \"@material-ui/core\"\r\nimport SearchIcon from '@material-ui/icons/Search'\r\nimport UsersAdminTable from './UsersAdminTable/UsersAdminTable'\r\n\r\nimport s from '../FindUser/FindUser.module.scss'\r\nimport { useRef, useState } from \"react\"\r\nimport getCookie from \"../../scripts/getCookie\"\r\nimport AddBtn from \"../shared/AddBtn/AddBtn\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 200,\r\n marginRight: 20,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginRight: 0\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n searchField: {\r\n width: 200,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n }\r\n }),\r\n)\r\n\r\nexport default function UsersAdminPage() {\r\n const classes = useStyles()\r\n const [userType, setUserType] = useState(\"\")\r\n const [registerStatus, setRegisterStatus] = useState(\"\")\r\n const [name, setName] = useState(\"\")\r\n const token = getCookie(\"token\")\r\n const searchTimerRef = useRef(null)\r\n\r\n const handleSearchInput = async (searchQuery: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n setName(searchQuery)\r\n }, 500)\r\n }\r\n\r\n if (!token) {\r\n return (\r\n

    Please, login!

    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n
    \r\n \r\n User Type\r\n \r\n \r\n\r\n \r\n Registered Status\r\n \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n )\r\n }\r\n}","import { makeStyles, Theme, createStyles, Modal, Backdrop, Fade, Box, Typography, Button } from \"@material-ui/core\"\r\nimport { useState } from \"react\";\r\nimport Preloader from \"../../shared/Preloader/Preloader\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n btnsBox: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: 50,\r\n [theme.breakpoints.down('xs')]: {\r\n marginTop: 20,\r\n }\r\n },\r\n btn: {\r\n width: 100,\r\n },\r\n modalWindow: {\r\n textAlign: 'center',\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 400,\r\n padding: 40,\r\n backgroundColor: theme.palette.background.paper,\r\n [theme.breakpoints.down('xs')]: {\r\n width: 250,\r\n padding: 20\r\n }\r\n }\r\n }),\r\n)\r\n\r\n\r\ntype AddApprovedAmountConfirmationWindowPropsType = {\r\n open: boolean;\r\n approveAmount(): Promise;\r\n closeConfirmationWindow(): void;\r\n}\r\n\r\nexport default function AmountConfirmationWindow(props: AddApprovedAmountConfirmationWindowPropsType) {\r\n const classes = useStyles()\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n\r\n const onClickApproveBtn = async (): Promise => {\r\n setLoaderIsActive(true)\r\n await props.approveAmount()\r\n setLoaderIsActive(false)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n

    Are you sure you want to Approve the amount? This action cannot be undone.

    \r\n\r\n { loaderIsActive && }\r\n\r\n
    \r\n props.closeConfirmationWindow()}\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n disabled={loaderIsActive}\r\n >\r\n Cancel\r\n \r\n\r\n onClickApproveBtn()}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n disabled={loaderIsActive}\r\n >\r\n Approve\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n )\r\n}","import { Button, createStyles, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport React, { useState } from 'react'\r\nimport AddBtn from '../../../shared/AddBtn/AddBtn'\r\nimport s from '../EditContractInfo.module.scss'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { setNotificationInfo, toggleNotification } from '../../../../actions/actions'\r\nimport { RootState } from '../../../../reducers/rootReducers'\r\nimport { URL_FOR_API } from '../../../../constants/constants'\r\nimport actionsWithApi from '../../../../customHooks/actionsWithApi'\r\nimport getCookie from '../../../../scripts/getCookie'\r\nimport { useLocation } from 'react-router-dom'\r\nimport dateFormatting from '../../../../scripts/dateFormatting'\r\nimport AddApprovedAmountConfirmationWindow from \"../AmountConfirmationWindow\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n marginRight: 20,\r\n marginBottom: 20,\r\n width: 220,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n width: \"100%\",\r\n }\r\n },\r\n button: {\r\n height: 35\r\n }\r\n })\r\n)\r\ntype AddFundingSectionPropsType = {\r\n checkNumber: string\r\n childContractHasBeenAdded: boolean\r\n setChildContractHasBeenAdded(toggle: boolean): void\r\n}\r\n\r\nexport default function AddFundingSection(props: AddFundingSectionPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const currentUserId = getCookie(\"currentUserId\")\r\n const location = useLocation()\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const parentContractInfo = useSelector((state: RootState) => state.editContract)\r\n\r\n const childContracts = useSelector((state: RootState) => state.editContract.childContracts)\r\n const [addFundingSection, setAddFundingSection] = useState(false)\r\n const [addedAdditionalAmount, setAdedAdditionalAmount] = useState(\"\")\r\n\r\n const [openConfirmationWindow, setOpenConfirmationWindow] = useState(false)\r\n\r\n const addFunding = async (): Promise => {\r\n try {\r\n let currentDate = new Date().toISOString() + \"\"\r\n let childContractInfo = await actionsWithApi(\r\n \"POST\",\r\n URL_FOR_API + `/api/v1/Contract`,\r\n {\r\n caseId: \"caseId\",\r\n contractType: parentContractInfo.contractType,\r\n parentContractId: parseInt(contractId),\r\n amountRequested: {\r\n amount: parseInt(addedAdditionalAmount),\r\n date: currentDate,\r\n userId: currentUserId\r\n },\r\n\r\n contractClientDTO: parentContractInfo?.contractClientDTO\r\n ? {\r\n user: null,\r\n userId: parentContractInfo?.contractClientDTO?.userId\r\n }\r\n : null,\r\n }\r\n )\r\n props.setChildContractHasBeenAdded(!props.childContractHasBeenAdded)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Additional Funding added\", severity: \"success\" }))\r\n setOpenConfirmationWindow(false)\r\n setAdedAdditionalAmount(\"\")\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n }\r\n }\r\n\r\n const closeConfirmationWindow = (): void => {\r\n setOpenConfirmationWindow(false)\r\n }\r\n\r\n return (\r\n
    \r\n\r\n

    Additional Funding

    \r\n
    \r\n {childContracts.length > 0 && childContracts\r\n .map((childContract, index) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ))\r\n }\r\n
    \r\n\r\n setAddFundingSection(!addFundingSection)}\r\n >\r\n \r\n \r\n\r\n {addFundingSection &&\r\n
    \r\n
    \r\n setAdedAdditionalAmount(e.target.value)}\r\n type=\"text\"\r\n variant=\"outlined\"\r\n size=\"small\"\r\n label=\"Additional Funding\"\r\n required\r\n />\r\n setOpenConfirmationWindow(true)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n Add Funding\r\n \r\n
    \r\n
    \r\n }\r\n\r\n \r\n
    \r\n )\r\n}","import { Button, createStyles, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport { useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { addAmountPaymentEditContractPage, setNotificationInfo, toggleNotification } from '../../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../../constants/constants'\r\nimport actionsWithApi from '../../../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../../../reducers/rootReducers'\r\nimport dateFormatting from '../../../../scripts/dateFormatting'\r\nimport getCookie from '../../../../scripts/getCookie'\r\nimport AddBtn from '../../../shared/AddBtn/AddBtn'\r\n\r\nimport s from './AddPaymentSection.module.scss'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 200,\r\n marginBottom: 20,\r\n marginRight: 30,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n button: {\r\n height: 35\r\n }\r\n }),\r\n)\r\n\r\nexport default function AddPaymentSection() {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const currentUserId = getCookie(\"currentUserId\")\r\n const amountPayments = useSelector((state: RootState) => state.editContract.amountPayments)\r\n const [showAddPaymentSection, setShowAddPaymentSection] = useState(false)\r\n\r\n const [addedPaymentAmount, setAddedPaymentAmount] = useState(0)\r\n\r\n const addPaymentHandle = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n if (addedPaymentAmount > 0) {\r\n let currentDate = new Date().toISOString() + \"\"\r\n try {\r\n await actionsWithApi(\r\n \"POST\",\r\n URL_FOR_API + `/api/v1/Contract/${contractId}/updateAmountPayment`,\r\n {\r\n amount: addedPaymentAmount,\r\n date: currentDate,\r\n userId: currentUserId\r\n }\r\n )\r\n dispatch(addAmountPaymentEditContractPage({ amount: addedPaymentAmount, date: currentDate }))\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Payment added\", severity: \"success\" }))\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n }\r\n }\r\n else {\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Enter amount more than 0\", severity: \"error\" }))\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n

    Payments

    \r\n {amountPayments.length > 0 && amountPayments\r\n .map((item, index: number) => (\r\n
    \r\n \r\n \r\n
    \r\n ))\r\n }\r\n
    setShowAddPaymentSection(!showAddPaymentSection)}>\r\n \r\n
    \r\n {showAddPaymentSection &&\r\n
    addPaymentHandle(e)}>\r\n { setAddedPaymentAmount(parseInt(e.target.value + \"\")) }} type=\"number\" variant=\"outlined\" size=\"small\" label=\"Amount\" required />\r\n \r\n \r\n \r\n }\r\n
    \r\n )\r\n}","import { TextField, Button, createStyles, makeStyles, Theme } from \"@material-ui/core\"\r\nimport { useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useLocation } from \"react-router-dom\"\r\nimport { setNotificationInfo, toggleNotification } from \"../../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../../constants/constants\"\r\nimport actionsWithApi from \"../../../../customHooks/actionsWithApi\"\r\nimport { RootState } from \"../../../../reducers/rootReducers\"\r\nimport dateFormatting from \"../../../../scripts/dateFormatting\"\r\nimport AddBtn from \"../../../shared/AddBtn/AddBtn\"\r\nimport s from '../EditContractInfo.module.scss'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n marginRight: 20,\r\n marginBottom: 20,\r\n width: 220,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n width: \"100%\",\r\n }\r\n }\r\n })\r\n)\r\n\r\nexport default function ReducedAmount() {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const contractData = useSelector((state: RootState) => state.editContract)\r\n const amountReduced = useSelector((state: RootState) => state.editContract.amountReduced)\r\n const [addReducedAmountSection, setAddReducedAmountSection] = useState(false)\r\n\r\n const [addedReducedAmount, setAddedReducedAmount] = useState(0)\r\n\r\n const addReducedAmount = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n\r\n let newReducedAmount = {\r\n amount: addedReducedAmount,\r\n date: new Date().toISOString()\r\n }\r\n contractData.amountReduced = { ...newReducedAmount }\r\n\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${contractId}/update`, contractData)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Reduced Amount added!\", severity: \"success\" }))\r\n }\r\n catch (error) {\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n

    Amount Due After Reduction

    \r\n\r\n {amountReduced &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n\r\n {!amountReduced &&\r\n { setAddReducedAmountSection(!addReducedAmountSection) }}\r\n >\r\n \r\n \r\n }\r\n\r\n {addReducedAmountSection && !amountReduced &&\r\n
    addReducedAmount(e)}>\r\n setAddedReducedAmount(parseInt(e.target.value + \"\"))}\r\n type=\"number\" variant=\"outlined\" size=\"small\"\r\n label=\"Amount After Reduction\"\r\n required\r\n inputProps={{ min: \"0\" }}\r\n />\r\n \r\n \r\n }\r\n
    \r\n )\r\n}\r\n","import { Button, createStyles, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport React, { useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { addAmountApprovedEditContractPage, setNotificationInfo, toggleNotification } from '../../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../../constants/constants'\r\nimport actionsWithApi from '../../../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../../../reducers/rootReducers'\r\nimport dateFormatting from '../../../../scripts/dateFormatting'\r\nimport getCookie from '../../../../scripts/getCookie'\r\nimport AddBtn from '../../../shared/AddBtn/AddBtn'\r\nimport s from '../EditContractInfo.module.scss'\r\nimport AddApprovedAmountConfirmationWindow from \"../AmountConfirmationWindow\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 220,\r\n marginRight: 20,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n width: \"100%\",\r\n }\r\n },\r\n button: {\r\n height: 35\r\n }\r\n }),\r\n)\r\n\r\nexport default function AddApprovedAmount() {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n const currentUserId = getCookie(\"currentUserId\")\r\n const location = useLocation()\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const contractData = useSelector((state: RootState) => state.editContract)\r\n const checkNumber: string = contractData.identifier\r\n\r\n const [showAddApprovedAmountSection, setShowAddApprovedAmountSection] = useState(false)\r\n const [addedAmprovedAmount, setAdedAmprovedAmount] = useState(null)\r\n\r\n const [openConfirmationWindow, setOpenConfirmationWindow] = useState(false)\r\n\r\n const addApprovedAmount = async (): Promise => {\r\n let currentDate = new Date().toISOString() + \"\"\r\n contractData.amountApproved = { amount: parseInt(addedAmprovedAmount + \"\"), insertRate: null, checkNumber: checkNumber, date: currentDate, userId: parseInt(currentUserId + \"\") }\r\n try {\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${contractId}/update`, contractData)\r\n dispatch(addAmountApprovedEditContractPage(\r\n {\r\n amount: response.data.amountApproved.amount,\r\n insertRate: response.data.amountApproved.insertRate,\r\n checkNumber: response.data.amountApproved.checkNumber,\r\n date: response.data.amountApproved.date,\r\n user: { ...response.data.amountApproved.user }\r\n }\r\n ))\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Amproved Amount has been added!\", severity: \"success\" }))\r\n setOpenConfirmationWindow(false)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n }\r\n }\r\n\r\n const closeConfirmationWindow = (): void => {\r\n setOpenConfirmationWindow(false)\r\n }\r\n\r\n return (\r\n
    \r\n\r\n

    Amount Approved

    \r\n
    \r\n {contractData.amountApproved &&\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n\r\n {!contractData.amountApproved &&\r\n
    setShowAddApprovedAmountSection(!showAddApprovedAmountSection)} >\r\n \r\n
    \r\n }\r\n\r\n {showAddApprovedAmountSection && !contractData.amountApproved &&\r\n
    \r\n
    \r\n setAdedAmprovedAmount(parseInt(e.target.value + \"\"))}\r\n type=\"text\"\r\n variant=\"outlined\"\r\n size=\"small\"\r\n label=\"Approved Amount\"\r\n required\r\n />\r\n \r\n setOpenConfirmationWindow(true)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n Add Amount Approved\r\n \r\n
    \r\n
    \r\n }\r\n\r\n \r\n\r\n
    \r\n )\r\n}","import { makeStyles, Theme, createStyles, TextField } from \"@material-ui/core\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { addAmountRequestedEditContractPage } from \"../../../../actions/actions\"\r\nimport dateFormatting from \"../../../../scripts/dateFormatting\"\r\nimport getCookie from \"../../../../scripts/getCookie\"\r\nimport { additionalFundingRequestsType, EditContractType } from \"../../../../types/contractTypes\"\r\nimport s from '../EditContractInfo.module.scss'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 220,\r\n marginBottom: 20,\r\n marginRight: 30,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n width: \"100%\",\r\n }\r\n }\r\n }),\r\n)\r\n\r\ntype RequestedAmountsPropsType = {\r\n contractInfo: EditContractType\r\n}\r\n\r\nexport default function RequestedAmounts(props: RequestedAmountsPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const currentUserId = parseInt(getCookie(\"currentUserId\") + \"\")\r\n\r\n const addRequestedAmount = (amount: number) => {\r\n dispatch(addAmountRequestedEditContractPage(amount, new Date().toISOString(), props.contractInfo.id, currentUserId))\r\n }\r\n\r\n return (\r\n
    \r\n

    Requested Amount

    \r\n\r\n
    \r\n addRequestedAmount(parseInt(e.target.value + \"\"))}\r\n />\r\n
    \r\n {props.contractInfo.additionalFundingRequestsDto && props.contractInfo.additionalFundingRequestsDto\r\n .map((additionalRequest: additionalFundingRequestsType) => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n )\r\n}","import { createStyles, Divider, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport s from './EditContractInfo.module.scss'\r\nimport AddFundingSection from './AddFundingSection/AddFundingSection'\r\nimport AddPaymentSection from './AddPaymentSection/AddPaymentSection'\r\nimport ReducedAmount from './ReducedAmount/ReducedAmount'\r\nimport AddApprovedAmount from './AddApprovedAmount/AddApprovedAmount'\r\nimport RequestedAmounts from './RequestedAmounts/RequestedAmounts'\r\nimport { EditContractType } from '../../../types/contractTypes'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n selectMedium: {\r\n width: 200,\r\n marginBottom: 30,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n }\r\n },\r\n selectLarge: {\r\n width: 310,\r\n marginBottom: 30,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n }\r\n },\r\n formControl: {\r\n width: 220,\r\n marginBottom: 30,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n }\r\n },\r\n largeSelectLabel: {\r\n [theme.breakpoints.down('xs')]: {\r\n fontSize: 12\r\n }\r\n }\r\n }),\r\n)\r\n\r\ntype EditContractInfoType = {\r\n handlerForInputs(e: any): void\r\n contractInfo: EditContractType\r\n childContractHasBeenAdded: boolean\r\n setChildContractHasBeenAdded(toggle: boolean): void\r\n}\r\n\r\nexport default function EditContractInfo(props: EditContractInfoType) {\r\n const classes = useStyles()\r\n const checkNumber: string = props.contractInfo.identifier\r\n\r\n return (\r\n
    \r\n \r\n \r\n Contract Type\r\n \r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n props.handlerForInputs(e)} />\r\n props.handlerForInputs(e)} />\r\n \r\n Estimated Settlement Amount:\r\n \r\n \r\n \r\n Additional funds expected in the future\r\n \r\n \r\n props.handlerForInputs(e)} label=\"Check Recipient\" />\r\n
    \r\n \r\n
    \r\n )\r\n}","import { Button, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport { useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { toggleNotification, setNotificationInfo, addStatusForEditContract } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { ContractStatusType } from '../../../types/contractTypes'\r\nimport AddBtn from \"../../shared/AddBtn/AddBtn\"\r\nimport UpdateBtn from \"../../shared/UpdateBtn/UpdateBtn\"\r\nimport { useLocation } from 'react-router-dom'\r\nimport Preloader from '../../shared/Preloader/Preloader'\r\nimport s from './StatusHistory.module.scss'\r\nimport getCookie from '../../../scripts/getCookie'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'\r\nimport DateFnsUtils from '@date-io/date-fns'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n select: {\r\n width: 250,\r\n marginBottom: 20,\r\n margin: \"0 30px 15px 0\",\r\n \"& span\": {\r\n marginRight: 10\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n margin: \"0 0 15px 0\",\r\n }\r\n },\r\n formControl: {\r\n width: 200,\r\n marginBottom: 25,\r\n marginRight: 25,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n width: \"100%\",\r\n }\r\n },\r\n button: {\r\n width: 150,\r\n height: 35\r\n }\r\n }),\r\n)\r\n\r\ntype StatusHistoryType = {\r\n handlerForInputs(e: any): void\r\n}\r\n\r\nexport default function StatusHistory(props: StatusHistoryType) {\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n const classes = useStyles()\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const [showAddStatusSection, setShowAddStatusSection] = useState(false)\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const currentUserId = getCookie(\"currentUserId\")\r\n const contractStatus = useSelector((state: RootState) => state.editContract.contractStatus)\r\n\r\n const [addingStatus, setAddingStatus] = useState(\"\")\r\n const [statusValue, setStatusValue] = useState(0)\r\n const [statusDate, setStatusDate] = useState(new Date())\r\n const [existingStatusValues, setExistingStatusValues] = useState<{}>()\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n setLoaderIsActive(true)\r\n \r\n let currentDate = new Date().toISOString() + \"\"\r\n try {\r\n if (addingStatus == 'CheckSent') {\r\n if (statusValue <= 0) {\r\n throw new Error('You should specify the amount of the check!');\r\n }\r\n\r\n if (statusDate == null) {\r\n throw new Error('You should specify the date when check was sent!');\r\n }\r\n\r\n currentDate = statusDate?.toISOString() + \"\";\r\n }\r\n \r\n\r\n await actionsWithApi(\r\n \"POST\",\r\n URL_FOR_API + `/api/v1/Contract/${contractId}/statusUpdate`,\r\n {\r\n contractsStatus: addingStatus,\r\n dateChange: currentDate,\r\n userId: currentUserId,\r\n statusValue: statusValue\r\n }\r\n )\r\n dispatch(addStatusForEditContract(addingStatus, currentDate, parseInt(currentUserId + \"\"), statusValue))\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Status added\", severity: \"success\" }))\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n }\r\n finally {\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n\r\n const handleUpdateClick = (statusId?: number) => {\r\n let statusItem = contractStatus.find(_ => _.id == statusId);\r\n if (statusItem) {\r\n //alert(`${statusItem.contractsStatus}, ${statusItem.statusValue}`);\r\n }\r\n }\r\n\r\n const handleChange = (e: React.FormEvent, statusId?: number) => {\r\n \r\n }\r\n\r\n const handleCheckSentStatusAmountUpdate = async (statusId: number) => {\r\n // setLoaderIsActive(true)\r\n \r\n // try {\r\n // if (addingStatus == 'CheckSent' && statusValue <= 0) {\r\n // throw new Error('You should specify the amount of the check!');\r\n // }\r\n\r\n // await actionsWithApi(\r\n // \"POST\",\r\n // URL_FOR_API + `/api/v1/Contract/${contractId}/updateStatusValue/${statusId}`,\r\n // {\r\n // statusValue: statusValue\r\n // }\r\n // )\r\n\r\n // }\r\n // catch (error) {\r\n // console.log(error.message)\r\n // dispatch(toggleNotification(true))\r\n // dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n // }\r\n // finally {\r\n // setLoaderIsActive(false)\r\n // }\r\n }\r\n\r\n return (\r\n
    \r\n

    Status History

    \r\n {contractStatus.length <= 0 &&\r\n Status History is empty\r\n }\r\n
    \r\n {contractStatus.length > 0 && contractStatus\r\n .map((status: ContractStatusType, index: number) => (\r\n
    \r\n \r\n Status\r\n \r\n \r\n \r\n \r\n { status.contractsStatus === \"CheckSent\" &&\r\n <>\r\n handleChange(e, status.id)} type=\"number\" variant=\"outlined\" size=\"small\" label=\"Amount\" />\r\n {/*
    handleUpdateClick(status.id)}>\r\n \r\n
    */}\r\n \r\n }\r\n

    \r\n
    \r\n ))\r\n }\r\n
    \r\n\r\n
    setShowAddStatusSection(!showAddStatusSection)} >\r\n \r\n
    \r\n\r\n {showAddStatusSection &&\r\n
    handleSubmit(e)}>\r\n \r\n Status\r\n \r\n \r\n { addingStatus == \"CheckSent\" &&\r\n <>\r\n setStatusValue(parseInt(e.target.value))} /> \r\n \r\n setStatusDate(data)}\r\n required\r\n />\r\n \r\n \r\n }\r\n \r\n Add Status\r\n \r\n {loaderIsActive &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n }\r\n\r\n
    \r\n )\r\n}","import { Button, createStyles, makeStyles, TextField } from '@material-ui/core'\r\nimport { Autocomplete } from '@material-ui/lab'\r\nimport {useRef, useState} from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { setNotificationInfo, toggleNotification } from '../../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../../constants/constants'\r\nimport actionsWithApi from '../../../../customHooks/actionsWithApi'\r\nimport s from '../AssociatedAttorneys.module.scss'\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n autocomplete: {\r\n width: 220,\r\n marginRight: 20\r\n },\r\n btn: {\r\n height: 40\r\n }\r\n }),\r\n);\r\n\r\ntype AddAssociatedAttorneyPropsType = {\r\n addExistingAttorney(e: React.FormEvent): void\r\n setSelectedAttorney(attorneyId: number | null): void\r\n addAttorneyToggle: boolean\r\n}\r\n\r\nexport default function AddAssociatedAttorney(props: AddAssociatedAttorneyPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const searchTimerRef = useRef(null);\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const [attorneys, setAttorneys] = useState([])\r\n\r\n const getAttorneys = async (searchValue: string = \"\") => {\r\n if (searchValue.length < 3) {\r\n return\r\n }\r\n\r\n try {\r\n setLoaderIsActive(true)\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Autocomplete/attorney?userName=${searchValue}`)\r\n setAttorneys(response.data)\r\n setLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n setLoaderIsActive(false)\r\n setAttorneys([])\r\n }\r\n }\r\n\r\n const handleAutocomplete = async (value: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n getAttorneys(value)\r\n }, 500)\r\n }\r\n\r\n return (\r\n
    props.addExistingAttorney(e)} className={s[\"AssociatedAttorneys-AddAttorneyPanel\"]}>\r\n \r\n (option.firstName ? (option.firstName.toString() + \" \") : \"\") +\r\n (option.lastName ? option.lastName.toString() + \"\" : \"\")\r\n }\r\n className={classes.autocomplete}\r\n renderInput={(params) => (\r\n handleAutocomplete(e.target.value || \"\")}\r\n />\r\n )}\r\n onChange={(e, value) => props.setSelectedAttorney(value.id || null)}\r\n />\r\n\r\n \r\n Add Attorney\r\n \r\n \r\n )\r\n}","import { convertFileToBase64 } from './toBase64'\r\nimport actionsWithApi from '../customHooks/actionsWithApi'\r\nimport { URL_FOR_API } from \"../constants/constants\"\r\n\r\nexport const uploadDocument = async (files: any, contractId: number, documentType: number) => {\r\n const file = files[0]\r\n\r\n const fileInBase64 = await convertFileToBase64(file)\r\n let uploadDocumentData = {\r\n type: documentType,\r\n mimeType: file.type,\r\n fileName: file.name,\r\n documentBase64String: fileInBase64\r\n }\r\n\r\n try {\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${contractId}/uploadDocument`, uploadDocumentData)\r\n return true\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n return false\r\n }\r\n}","import { downloadBase64File } from '../../../../scripts/downloadBase64File'\r\nimport s from '../AssociatedAttorneys.module.scss'\r\nimport GetAppIcon from '@material-ui/icons/GetApp'\r\nimport { Button, CircularProgress, Tooltip } from '@material-ui/core'\r\nimport { CSSProperties, useState } from 'react'\r\nimport { uploadDocument } from '../../../../scripts/uploadDocument'\r\nimport { useDispatch } from 'react-redux'\r\nimport { setNotificationInfo, toggleNotification } from '../../../../actions/actions'\r\n\r\nconst inputStyles: CSSProperties = {\r\n zIndex: 2,\r\n opacity: 0,\r\n position: \"absolute\",\r\n top: \"0\",\r\n bottom: \"0\",\r\n left: \"0\",\r\n right: \"0\",\r\n cursor: \"pointer\"\r\n}\r\n\r\ntype DownloadAttorneyAgreementPropsType = {\r\n mimeType: string\r\n base64String: string\r\n fileName: string\r\n contractId: number\r\n contractAttachmentHasBeenUploaded: boolean\r\n setContractAttachmentHasBeenUploaded(toggle: boolean): void\r\n}\r\n\r\nexport default function DownloadAttorneyAgreement(props: DownloadAttorneyAgreementPropsType) {\r\n const dispatch = useDispatch()\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const uploadClientContract = async (files: FileList | null) => {\r\n if (!files) return\r\n setLoaderIsActive(true)\r\n\r\n try {\r\n await uploadDocument(files, props.contractId, 3)\r\n dispatch(setNotificationInfo({ message: \"Document uploaded successfully\", severity: \"success\" }))\r\n }\r\n catch {\r\n dispatch(setNotificationInfo({ message: \"Document not uploaded\", severity: \"error\" }))\r\n }\r\n finally {\r\n dispatch(toggleNotification(true))\r\n setLoaderIsActive(false)\r\n props.setContractAttachmentHasBeenUploaded(!props.contractAttachmentHasBeenUploaded)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n downloadBase64File(props.mimeType, props.base64String, props.fileName)}\r\n >\r\n {props.fileName}\r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}","import { useDispatch } from 'react-redux'\r\nimport { setNotificationInfo, toggleNotification } from '../../../../actions/actions'\r\nimport { uploadDocument } from '../../../../scripts/uploadDocument'\r\nimport s from '../AssociatedAttorneys.module.scss'\r\nimport FileUploadIcon from '@material-ui/icons/CloudUpload'\r\nimport { makeStyles, Theme, createStyles } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n textInput: {\r\n width: 220,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n }\r\n },\r\n uploadContractInput: {\r\n display: \"none\"\r\n }\r\n }),\r\n);\r\n\r\ntype UploadAttorneyAgreementPropsType = {\r\n contractId: number\r\n contractAttachmentHasBeenUploaded: boolean\r\n setContractAttachmentHasBeenUploaded(toggle: boolean): void\r\n}\r\n\r\nexport default function UploadAttorneyAgreement(props: UploadAttorneyAgreementPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const uplooadDocumentHandler = async (files: any) => {\r\n const documentHasBeenUploaded = await uploadDocument(files, props.contractId, 3)\r\n\r\n if (documentHasBeenUploaded) {\r\n props.setContractAttachmentHasBeenUploaded(!props.contractAttachmentHasBeenUploaded)\r\n dispatch(setNotificationInfo({ message: \"Document uploaded successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n else {\r\n dispatch(setNotificationInfo({ message: \"Document not uploaded\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n}","import { Checkbox, createStyles, FormControlLabel, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useLocation } from 'react-router'\r\nimport { setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport { AttachmentType } from '../../../types/attachmentsType'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from './AssociatedAttorneys.module.scss'\r\nimport AddAssociatedAttorney from './AddAssociatedAttorney/AddAssociatedAttorney'\r\nimport DownloadAttorneyAgreement from './DownloadAttorneyAgreement/DownloadAttorneyAgreement'\r\nimport UploadAttorneyAgreement from './UploadAttorneyAgreement/UploadAttorneyAgreement'\r\nimport getCookie from \"../../../scripts/getCookie\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n textInput: {\r\n width: 220,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n }\r\n },\r\n uploadContractInput: {\r\n display: \"none\"\r\n }\r\n }),\r\n)\r\n\r\ntype AssociatedAttorneysType = {\r\n handlerForInputs(e: any): void\r\n contractAttorneyDTO: any\r\n setUserHasBeenAdded(e: boolean): void\r\n userHasBeenAdded: boolean\r\n attachments: Array\r\n contractAttachmentHasBeenUploaded: boolean\r\n setContractAttachmentHasBeenUploaded(toggle: boolean): void\r\n}\r\n\r\nexport default function AssociatedAttorneys(props: AssociatedAttorneysType) {\r\n const currentUserType = getCookie(\"currentUserRole\")\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n const contractId: number = parseInt(location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\") + \"\")\r\n const [addAttorneyToggle, setAddAttorneyToggle] = useState(false)\r\n\r\n const [selectedAttorney, setSelectedAttorney] = useState(null)\r\n\r\n const addExistingAttorney = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n\r\n if(selectedAttorney) {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${contractId}/addAttorney`,\r\n {\r\n userId: selectedAttorney,\r\n date: new Date().toISOString() + \"\"\r\n }\r\n )\r\n props.setUserHasBeenAdded(!props.userHasBeenAdded)\r\n dispatch(setNotificationInfo({ message: \"New attorney has been added\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n }\r\n\r\n const [attachments, setAttachments] = useState>(props.attachments)\r\n const [attourneyAgreementIndex, setAttourneyAgreementIndex] = useState(-1)\r\n const calcAttourneyAgreementIndex = (attachments: Array) => {\r\n for (let i = attachments.length; i >= 0; i--) {\r\n if (attachments[i]?.type === 3) {\r\n setAttourneyAgreementIndex(i)\r\n break\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n attachments?.length > 0 && calcAttourneyAgreementIndex(attachments)\r\n }, [attachments])\r\n\r\n useEffect(() => {\r\n setAttachments(props.attachments)\r\n calcAttourneyAgreementIndex(attachments)\r\n }, [props])\r\n\r\n return (\r\n
    \r\n

    Associated Attorneys

    \r\n\r\n
    \r\n {props.contractAttorneyDTO.length > 0 &&\r\n props.contractAttorneyDTO.map((attorney: any, index: number) => {\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n label=\"Responsible Attorney\"\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {attourneyAgreementIndex === -1 && attorney.responsible &&\r\n \r\n }\r\n\r\n {attourneyAgreementIndex !== -1 && attorney.responsible &&\r\n \r\n }\r\n
    \r\n\r\n
    \r\n )\r\n })\r\n }\r\n {props.contractAttorneyDTO.length === 0 &&\r\n The contract does not have anyone attorney\r\n }\r\n
    \r\n\r\n {currentUserType === \"Administrator\" ?\r\n setAddAttorneyToggle(!addAttorneyToggle)}\r\n >\r\n \r\n : \"\"\r\n }\r\n\r\n {addAttorneyToggle &&\r\n \r\n }\r\n\r\n
    \r\n )\r\n}","import { downloadBase64File } from '../../../../scripts/downloadBase64File'\r\nimport s from '../AssociatedClient.module.scss'\r\nimport GetAppIcon from '@material-ui/icons/GetApp'\r\nimport { Button, CircularProgress, Tooltip } from '@material-ui/core'\r\nimport { CSSProperties, useState } from 'react'\r\n\r\nconst inputStyles: CSSProperties = {\r\n zIndex: 2,\r\n opacity: 0,\r\n position: \"absolute\",\r\n top: \"0\",\r\n bottom: \"0\",\r\n left: \"0\",\r\n right: \"0\",\r\n cursor: \"pointer\"\r\n}\r\n\r\ntype DownloadClientContractPropsType = {\r\n mimeType: string\r\n base64String: string\r\n fileName: string\r\n uplooadDocumentHandler(files: FileList | null): void\r\n}\r\n\r\nexport default function DownloadClientContract(props: DownloadClientContractPropsType) {\r\n\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const uploadClientContract = async (files: FileList | null) => {\r\n if (!files) return\r\n\r\n try {\r\n setLoaderIsActive(true)\r\n await props.uplooadDocumentHandler(files)\r\n }\r\n finally {\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n downloadBase64File(\r\n props.mimeType,\r\n props.base64String,\r\n props.fileName\r\n )}\r\n >\r\n \r\n \r\n \r\n {props.fileName}\r\n \r\n \r\n
    \r\n\r\n \r\n\r\n {loaderIsActive &&\r\n \r\n }\r\n\r\n \r\n )\r\n}","import { makeStyles, Theme, createStyles } from '@material-ui/core'\r\nimport s from '../AssociatedClient.module.scss'\r\nimport FileUploadIcon from '@material-ui/icons/CloudUpload'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n textInput: {\r\n width: 250,\r\n marginBottom: 20,\r\n marginRight: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n width: \"100%\",\r\n }\r\n },\r\n uploadFileInput: {\r\n display: \"none\"\r\n }\r\n }),\r\n)\r\n\r\ntype UploadClientContractPropsType = {\r\n uplooadDocumentHandler(files: FileList | null): void\r\n}\r\n\r\nexport default function UploadClientContract(props: UploadClientContractPropsType) {\r\n const classes = useStyles()\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}","import { createStyles, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport { useDispatch } from 'react-redux'\r\nimport { toggleNotification, setNotificationInfo } from '../../../actions/actions'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport s from './AssociatedClient.module.scss'\r\nimport { uploadDocument } from '../../../scripts/uploadDocument'\r\nimport { useState, useEffect } from 'react'\r\nimport { AttachmentType } from '../../../types/attachmentsType'\r\nimport DownloadClientContract from './DownloadClientContract/DownloadClientContract'\r\nimport UploadClientContract from './UploadClientContract/UploadClientContract'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n textInput: {\r\n width: 250,\r\n marginBottom: 20,\r\n marginRight: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n width: \"100%\"\r\n }\r\n }\r\n }),\r\n)\r\n\r\ntype AssociatedClientType = {\r\n handlerForInputs(e: any): void\r\n contractClientDTO: any\r\n contractCreatedDate: string | null\r\n contractId: number\r\n attachments: Array\r\n contractAttachmentHasBeenUploaded: boolean\r\n setContractAttachmentHasBeenUploaded(toggle: boolean): void\r\n}\r\n\r\nexport default function AssociatedClient(props: AssociatedClientType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const uplooadDocumentHandler = async (files: FileList | null) => {\r\n if (!files) return\r\n\r\n const documentHasBeenUploaded = await uploadDocument(files, props.contractId, 2)\r\n if (documentHasBeenUploaded) {\r\n props.setContractAttachmentHasBeenUploaded(!props.contractAttachmentHasBeenUploaded)\r\n dispatch(setNotificationInfo({ message: \"Document uploaded successfully\", severity: \"success\" }))\r\n }\r\n else {\r\n dispatch(setNotificationInfo({ message: \"Document not uploaded\", severity: \"error\" }))\r\n }\r\n dispatch(toggleNotification(true))\r\n }\r\n\r\n const [attachments, setAttachments] = useState>(props.attachments)\r\n const [clientContractIndex, setClientContractIndex] = useState(-1)\r\n const calcClientContractIndex = (attachments: Array) => {\r\n for (let i = attachments.length; i >= 0; i--) {\r\n if (attachments[i]?.type === 2) {\r\n setClientContractIndex(i)\r\n break\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n attachments && attachments.length > 0 && calcClientContractIndex(attachments)\r\n }, [attachments])\r\n\r\n useEffect(() => {\r\n setAttachments(props.attachments)\r\n calcClientContractIndex(attachments)\r\n }, [props])\r\n\r\n return (\r\n
    \r\n\r\n

    Associated Client

    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n {clientContractIndex === -1 &&\r\n \r\n }\r\n\r\n {clientContractIndex !== -1 &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n}","import { Button, Checkbox, createStyles, FormControlLabel, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport { Autocomplete } from '@material-ui/lab'\r\nimport { useRef, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from './AssociatedLawFirm.module.scss'\r\nimport getCookie from \"../../../scripts/getCookie\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n selectMedium: {\r\n width: 200,\r\n marginBottom: 40,\r\n },\r\n formControl: {\r\n width: 220,\r\n marginRight: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n btn: {\r\n height: 40\r\n }\r\n }),\r\n);\r\n\r\ntype AssociatedLawFirmType = {\r\n handlerForInputs(e: any): void\r\n contractLawFirmDTO: any\r\n setUserHasBeenAdded(e: boolean): void\r\n userHasBeenAdded: boolean\r\n}\r\n\r\nexport default function AssociatedLawFirm(props: AssociatedLawFirmType) {\r\n const currentUserType = getCookie(\"currentUserRole\")\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n const searchTimerRef = useRef(null);\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const [addFirm, setAddFirm] = useState(false)\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const [lawFirms, setLawFirms] = useState([])\r\n const getLawFirms = async (searchValue: string = \"\") => {\r\n if (searchValue.length < 3) {\r\n return\r\n }\r\n\r\n try {\r\n setLoaderIsActive(true)\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Autocomplete/lawFirm?userName=${searchValue}`)\r\n setLawFirms(response.data)\r\n setLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n setLoaderIsActive(false)\r\n setLawFirms([])\r\n }\r\n }\r\n\r\n const [selectedLawFirm, setSelectedLawFirm] = useState()\r\n const addExistingLawFirm = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n if(selectedLawFirm) {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${contractId}/addLawFirm`,\r\n {\r\n userId: selectedLawFirm,\r\n date: new Date().toISOString() + \"\"\r\n }\r\n )\r\n props.setUserHasBeenAdded(!props.userHasBeenAdded)\r\n dispatch(setNotificationInfo({ message: \"New Law Firm has been added\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n }\r\n\r\n const handleAutocomplete = async (value: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n getLawFirms(value)\r\n }, 500)\r\n }\r\n\r\n return (\r\n
    \r\n

    Associated Law Firm

    \r\n\r\n
    \r\n {props.contractLawFirmDTO.length > 0 &&\r\n props.contractLawFirmDTO.map((item: any, index: number) => {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n }\r\n label=\"Responsible Law Firm\"\r\n />\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n\r\n {props.contractLawFirmDTO.length === 0 &&\r\n The contract does not have anyone Law Firm\r\n }\r\n
    \r\n\r\n {currentUserType === \"Administrator\"\r\n ? setAddFirm(!addFirm)}\r\n >\r\n \r\n \r\n : \"\"\r\n }\r\n\r\n {addFirm &&\r\n
    addExistingLawFirm(e)} className={s[\"AssociatedLawFirm-AddFirmPanel\"] + \" \" + s[\"AssociatedLawFirm-Row\"]}>\r\n \r\n (option.firstName ? (option.firstName.toString() + \" \") : \"\") +\r\n (option.lastName ? option.lastName.toString() + \"\" : \"\")\r\n }\r\n className={classes.formControl}\r\n renderInput={(params) => (\r\n handleAutocomplete(e.target.value || \"\")}\r\n />\r\n )}\r\n onChange={(e, value) => setSelectedLawFirm(value?.id || null)}\r\n />\r\n\r\n \r\n \r\n }\r\n
    \r\n )\r\n}","import { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextareaAutosize, TextField, Theme } from '@material-ui/core'\r\nimport dateFormatting from '../../../scripts/dateFormatting';\r\nimport { EditContractType } from '../../../types/contractTypes';\r\nimport s from './EditContractCaseInfo.module.scss'\r\nimport {useSelector} from \"react-redux\";\r\nimport {RootState} from \"../../../reducers/rootReducers\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n width: 220,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n caseIdFormControl: {\r\n width: 320,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n textarea: {\r\n marginTop: 10,\r\n marginBottom: 20,\r\n minHeight: 50,\r\n borderRadius: 10,\r\n padding: 10,\r\n resize: 'none'\r\n },\r\n mediumInput: {\r\n width: 220,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\"\r\n }\r\n },\r\n labelForDate: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n \"&>span\": {\r\n marginBottom: 5\r\n }\r\n }\r\n }),\r\n);\r\n\r\ntype CaseInformationType = {\r\n handlerForInputs(e: any): void\r\n contractInfo: EditContractType\r\n}\r\n\r\nconst validateDate = (sourceDate: string | Date) => {\r\n if(!sourceDate) {\r\n return ''\r\n }\r\n sourceDate = new Date(sourceDate);\r\n let year: number | string = sourceDate.getFullYear();\r\n let month: number | string = sourceDate.getMonth() + 1;\r\n let dt: number | string = sourceDate.getDate();\r\n\r\n if (dt < 10) {\r\n dt = '0' + dt;\r\n }\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n return year + '-' + month + '-' + dt\r\n}\r\n\r\nexport default function EditContractCaseInfo(props: CaseInformationType) {\r\n const classes = useStyles()\r\n const contractType = useSelector((state: RootState) => state.editContract.contractType)\r\n\r\n return (\r\n
    \r\n

    Case Information

    \r\n
    \r\n props.handlerForInputs(e)} label=\"Case ID (or short description if not known)\" />\r\n \r\n {\r\n contractType !== \"PreSettlement\"\r\n ? **If your settlement payment extends beyond 60 days, your interest will increase\r\n : \"\"\r\n }\r\n props.handlerForInputs(e)} label=\"Opposing Insurance\" />\r\n props.handlerForInputs(e)} label=\"Insurance Adjuster\" />\r\n props.handlerForInputs(e)} label=\"Insurance Adjuster Phone\" />\r\n props.handlerForInputs(e)} label=\"Insurance Claim\" />\r\n \r\n Accepted Liability\r\n \r\n \r\n \r\n Property Damage\r\n \r\n \r\n \r\n Injury Level\r\n \r\n \r\n props.handlerForInputs(e)} />\r\n props.handlerForInputs(e)} label=\"Case manager (email)\" />\r\n Injury/Accident Description: \r\n props.handlerForInputs(e)} />\r\n
    \r\n
    \r\n )\r\n}\r\n","import { Button, Container, Divider } from '@material-ui/core'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { RootState } from '../../reducers/rootReducers'\r\nimport EditContractInfo from './EditContractInfo/EditContractInfo'\r\nimport StatusHistory from './StatusHistory/StatusHistory'\r\nimport AssociatedAttorneys from './AssociatedAttorneys/AssociatedAttorneys'\r\nimport AssociatedClient from './AssociatedClient/AssociatedClient'\r\nimport AssociatedLawFirm from './AssociatedLawFirm/AssociatedLawFirm'\r\nimport EditContractCaseInfo from './EditContractCaseInfo/EditContractCaseInfo'\r\nimport { handlerForEditContractInputs, setDataForEditContractPage, setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport getCookie from '../../scripts/getCookie'\r\nimport { useState, useEffect } from 'react'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { useLocation } from 'react-router-dom'\r\nimport Preloader from '../shared/Preloader/Preloader'\r\nimport { history } from '../../../App'\r\nimport ContractCommentsPropsType from '../ContractPage/ContractComments/ContractComments'\r\n\r\nexport default function EditContract() {\r\n const dispatch = useDispatch()\r\n const userRole = getCookie(\"currentUserRole\")\r\n const location = useLocation()\r\n const contractId = location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\")\r\n const changedData = useSelector((state: RootState) => state.editContract)\r\n const [userHasBeenAdded, setUserHasBeenAdded] = useState(false)\r\n const [contractAttachmentHasBeenUploaded, setContractAttachmentHasBeenUploaded] = useState(false)\r\n const [childContractHasBeenAdded, setChildContractHasBeenAdded] = useState(false)\r\n\r\n const [contractInfo, setContractInfo] = useState()\r\n const getContractData = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Contract/${contractId}`, null)\r\n setContractInfo(response.data)\r\n dispatch(setDataForEditContractPage(response.data))\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n useEffect(() => {\r\n getContractData()\r\n }, [userHasBeenAdded, contractAttachmentHasBeenUploaded, childContractHasBeenAdded]);\r\n\r\n const handleInputChange = (e: any) => {\r\n let value = e.target.value\r\n const name = e.target.name\r\n if (name === \"liability\") {\r\n value === \"Yes\" ? value = true : value = false\r\n }\r\n dispatch(handlerForEditContractInputs({ [name]: value }))\r\n }\r\n\r\n const handleSubmit = async () => {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Contract/${contractId}/update`, changedData)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: \"Contract updated!\", severity: \"success\" }))\r\n history.push(`/contract-page?${contractId}`)\r\n window.scrollTo({ top: 0, behavior: \"smooth\" })\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n dispatch(toggleNotification(true))\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n }\r\n }\r\n\r\n const deleteContract = () => {\r\n alert(\"Contract not deleted\")\r\n }\r\n if (userRole !== \"Administrator\") {\r\n return (\r\n

    Are you not admin!

    \r\n )\r\n }\r\n else if (contractInfo && contractInfo.id) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","import { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField, Theme } from '@material-ui/core'\r\nimport s from '../CreateUser.module.scss'\r\nimport 'date-fns'\r\nimport DateFnsUtils from '@date-io/date-fns'\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers'\r\nimport { ChangeEvent, useState } from 'react'\r\nimport { StatesType } from '../../../types/stateType'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { setDataForCreateUser, setStateForCreateUser } from '../../../actions/actions'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n standartFormControl: {\r\n minWidth: 200,\r\n marginBottom: 20,\r\n },\r\n userTypeControl: {\r\n minWidth: 220,\r\n transform: \"translateY(-20px)\"\r\n },\r\n formControl3: {\r\n width: 220\r\n }\r\n }),\r\n);\r\n\r\nexport default function CreateUserData() {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n let states: Array = useSelector((state: RootState) => state.states)\r\n\r\n const [dateBirdth, setDateBirdth] = useState(new Date('2021-01-01T23:59:59'))\r\n const handleBirdthDateChange = (date: Date | null) => {\r\n if (date != dateBirdth) {\r\n setDateBirdth(date)\r\n dispatch(setDataForCreateUser({ \"dateOfBirth\": date }))\r\n }\r\n }\r\n\r\n const handleChange = (e: ChangeEvent | ChangeEvent<{ name?: string | undefined, value: unknown }>) => {\r\n let value: any = e.target.value\r\n const name = e.target.name\r\n\r\n if (name === \"id\") {\r\n value = parseInt(value)\r\n }\r\n\r\n if (name === \"banned\") {\r\n value === \"Yes\" ? value = true : value = false\r\n }\r\n\r\n dispatch(setDataForCreateUser({ [name + \"\"]: value }))\r\n }\r\n\r\n handleBirdthDateChange(dateBirdth);\r\n\r\n return (\r\n
    \r\n
    \r\n handleChange(e)} />\r\n handleChange(e)} />\r\n handleChange(e)} />\r\n \r\n handleBirdthDateChange(date)} required\r\n />\r\n \r\n handleChange(e)} />\r\n handleChange(e)} />\r\n \r\n State\r\n \r\n \r\n handleChange(e)} />\r\n handleChange(e)} />\r\n handleChange(e)} />\r\n handleChange(e)} />\r\n \r\n Ban on New Contracts\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n User Type\r\n \r\n \r\n
    \r\n
    \r\n )\r\n}","import s from '../CreateUser.module.scss'\r\nimport { Button, FormControl, InputLabel, MenuItem, Select } from '@material-ui/core'\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'\r\nimport { useEffect, useState } from 'react'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport 'date-fns'\r\nimport DateFnsUtils from '@date-io/date-fns'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { addLawFirmForCreateUser, setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport dateFormatting from '../../../scripts/dateFormatting'\r\nimport { LawFirmType } from \"../../../types/lawFirmType\";\r\n\r\nexport default function CreateUserAddFirm() {\r\n const dispatch = useDispatch()\r\n const addedLawFirms = useSelector((state: RootState) => state.createUser.lawFirms)\r\n const [addFirmSection, showAddFirmSection] = useState(false)\r\n const [firmId, setFirmId] = useState(\"\")\r\n const [lawFirmName, setLawFirmName] = useState(\"\")\r\n const [dateJoined, setDateJoined] = useState(new Date('2021-01-01T23:59:59'))\r\n const [endDate, setEndDate] = useState(new Date('2021-01-01T23:59:59'))\r\n\r\n const handleJoinedDateChange = (date: Date | null) => {\r\n setDateJoined(date)\r\n }\r\n\r\n const handleEndDateChange = (date: Date | null) => {\r\n setEndDate(date)\r\n }\r\n\r\n const addNewLawFirm = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n dispatch(addLawFirmForCreateUser({ firmId: firmId, startDate: dateJoined ? dateJoined.toISOString() : \"\", endDate: endDate ? endDate.toISOString() : \"\", lawFirmName: lawFirmName }))\r\n }\r\n\r\n const [lawFirms, setLawFirms] = useState>([])\r\n const getLawFirms = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/AdminUser?UserType=LawFirm\")\r\n setLawFirms(response.data)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getLawFirms()\r\n }, [])\r\n\r\n return (\r\n
    \r\n

    Law Firms

    \r\n\r\n {addedLawFirms && addedLawFirms\r\n .map((firm: any) => {\r\n return (\r\n
      \r\n
    • \r\n Firm name:\r\n {firm.lawFirmName}\r\n
    • \r\n
    • \r\n Date joined:\r\n {dateFormatting(firm.startDate + \"\")}\r\n
    • \r\n
    • \r\n End Date:\r\n {dateFormatting(firm.endDate + \"\")}\r\n
    • \r\n
    \r\n )\r\n })\r\n\r\n }\r\n\r\n
    showAddFirmSection(!addFirmSection)}>\r\n \r\n
    \r\n\r\n {addFirmSection &&\r\n
    addNewLawFirm(e)}>\r\n \r\n Law Firm\r\n \r\n \r\n \r\n handleJoinedDateChange(data)} required\r\n />\r\n \r\n \r\n handleEndDateChange(data)} required\r\n />\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n )\r\n}","import AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from '../CreateUser.module.scss'\r\n\r\nexport default function CreateUserClients() {\r\n\r\n return (\r\n
    \r\n

    Associated Cases and Clients

    \r\n \r\n
    \r\n )\r\n}","import AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from '../CreateUser.module.scss'\r\n\r\nexport default function CreateUserAddComment() {\r\n\r\n return (\r\n
    \r\n

    Comments

    \r\n \r\n
    \r\n )\r\n}","import { Button, Container, Divider } from '@material-ui/core'\r\nimport CreateUserData from './CreateUserData/CreateUserData'\r\nimport CreateUserAddFirm from './CreateUserAddFirm/CreateUserAddFirm'\r\nimport CreateUserClients from './CreateUserClients/CreateUserClients'\r\nimport CreateUserAddComment from './CreateUserAddComment/CreateUserAddComment'\r\nimport { setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { RootState } from '../../reducers/rootReducers'\r\nimport { history } from '../../../App'\r\nimport s from './CreateUser.module.scss'\r\n\r\nexport default function CreateUser() {\r\n const dispatch = useDispatch()\r\n let userData = useSelector((state: RootState) => state.createUser)\r\n\r\n const createUser = async () => {\r\n\r\n try {\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + \"/api/v1/AdminUser\", userData)\r\n dispatch(setNotificationInfo({ message: \"User created successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n if (response.data.id) {\r\n history.push(`/user-profile?${response.data.id}`)\r\n window.scrollTo({ top: 0, behavior: \"smooth\" })\r\n }\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}","import { Container } from '@material-ui/core'\r\nimport { NavLink } from 'react-router-dom'\r\nimport s from './AdminPage.module.scss'\r\nimport GroupIcon from '@material-ui/icons/Group'\r\nimport AssignmentIcon from '@material-ui/icons/Assignment'\r\nimport StarHalfIcon from '@material-ui/icons/StarHalf'\r\nimport AttachMoneyIcon from '@material-ui/icons/AttachMoney'\r\n\r\nexport default function AdminPage() {\r\n\r\n return (\r\n \r\n

    Admin page

    \r\n\r\n
      \r\n
    • \r\n \r\n \r\n Users\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n Contracts\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n Interest Rate Controller\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n User Rating Controller\r\n \r\n
    • \r\n
    \r\n
    \r\n )\r\n}\r\n","import { Theme, createStyles, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, withStyles } from \"@material-ui/core\"\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white\r\n },\r\n body: {\r\n fontSize: 14\r\n }\r\n }),\r\n)(TableCell)\r\n\r\ntype PaymentCalcResultPropsType = {\r\n dayValuePairs: any\r\n}\r\n\r\nexport default function PaymentCalcResult(props: PaymentCalcResultPropsType) {\r\n let dayValuePairsParseArr = Object.entries(props.dayValuePairs ? props.dayValuePairs : {})\r\n\r\n return (\r\n
    \r\n \r\n \r\n\r\n \r\n \r\n Contract Period (days)\r\n Amount owed (USD)\r\n \r\n \r\n\r\n \r\n {\r\n dayValuePairsParseArr\r\n && dayValuePairsParseArr.length > 0\r\n && dayValuePairsParseArr\r\n .map((row: any, index: number) => (\r\n \r\n\r\n \r\n {row[0]}\r\n \r\n\r\n \r\n {row[1]}\r\n \r\n\r\n \r\n ))\r\n }\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import { Button, Container, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, TextField } from '@material-ui/core'\r\nimport { useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { StatesType } from '../../types/stateType'\r\nimport s from './PaymentCalc.module.scss'\r\nimport { FormEvent } from 'react'\r\nimport PaymentCalcResult from './PaymentCalcResult/PaymentCalcResult'\r\nimport { RootState } from '../../reducers/rootReducers'\r\nimport Preloader from '../shared/Preloader/Preloader'\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n btn: {\r\n width: 200,\r\n margin: \"0 auto 50px auto\"\r\n },\r\n formControl: {\r\n width: 250,\r\n margin: \"0 auto 40px auto\"\r\n }\r\n })\r\n)\r\n\r\nfunction sleep(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms))\r\n}\r\n\r\nexport default function PaymentCalc() {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const states: Array = useSelector((state: RootState) => state.states)\r\n const [stateIsSelected, setStateIsSelected] = useState(false)\r\n const [selectedState, setSelectedState] = useState()\r\n const [contractType, setContractType] = useState(\"PreSettlement\")\r\n const [amountRequested, setAmountRequested] = useState()\r\n\r\n const [paymentCalcResult, setPaymentCalcResult] = useState()\r\n const [paymentCalcResultIsReady, setPaymentCalcResultIsReady] = useState(true)\r\n const [showResultTable, setShowResultTable] = useState(false)\r\n const handleSubmit = async (e: FormEvent) => {\r\n e.preventDefault()\r\n try {\r\n setPaymentCalcResultIsReady(false)\r\n const requestOptions = {\r\n stateId: selectedState,\r\n contractType,\r\n amountRequested\r\n }\r\n await sleep(1000)\r\n const response = await actionsWithApi(\"POST\", URL_FOR_API + \"/api/v1/PaymentCalculator/calculate\", requestOptions)\r\n setPaymentCalcResult(response.data)\r\n setShowResultTable(true)\r\n }\r\n catch (error) {\r\n setShowResultTable(false)\r\n dispatch(setNotificationInfo({ message: \"It seems that this state does not have its own Interest Rate\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n finally {\r\n setPaymentCalcResultIsReady(true)\r\n }\r\n }\r\n\r\n const stateСhoice = (value: string | unknown) => {\r\n setStateIsSelected(true)\r\n setSelectedState(parseInt(value + \"\"))\r\n }\r\n\r\n return (\r\n \r\n

    Indicate the Plaintiff’s state

    to create a funding price estimate.

    \r\n
    handleSubmit(e)}>\r\n\r\n \r\n Select State\r\n stateСhoice(e.target.value)}\r\n required\r\n >\r\n {\r\n states.length > 0 && states\r\n .map((state) => {\r\n return (\r\n \r\n {state.name}\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n\r\n {stateIsSelected &&\r\n \r\n Contract Type\r\n setContractType(e.target.value)}\r\n required\r\n >\r\n Pre-Settlement\r\n Post-Settlement\r\n \r\n \r\n }\r\n\r\n {stateIsSelected &&\r\n setAmountRequested(parseInt(e.target.value))}\r\n inputProps={{ min: \"0\"}}\r\n required\r\n />\r\n }\r\n {stateIsSelected &&\r\n \r\n }\r\n \r\n\r\n {\r\n paymentCalcResultIsReady && showResultTable\r\n && \r\n }\r\n\r\n {\r\n !paymentCalcResultIsReady &&\r\n \r\n }\r\n\r\n
    \r\n )\r\n}","import { Container } from '@material-ui/core'\r\nimport { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { NavLink } from 'react-router-dom'\r\nimport { setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { InterestRateType } from '../../types/ratesType'\r\nimport AddBtn from '../shared/AddBtn/AddBtn'\r\nimport Preloader from '../shared/Preloader/Preloader'\r\nimport s from './InterestRatesList.module.scss'\r\n\r\nexport default function InterestRatesList() {\r\n const dispatch = useDispatch()\r\n const [interestRates, setInterestRates] = useState>([])\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n\r\n const getInterestRates = async () => {\r\n try {\r\n setLoaderIsActive(true)\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/Interest/all?SortingType=asc\")\r\n setInterestRates(response.data)\r\n setLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n useEffect(() => {\r\n getInterestRates()\r\n }, [])\r\n\r\n return (\r\n \r\n

    Interest Rates by States

    \r\n\r\n
    \r\n
      \r\n {loaderIsActive &&\r\n \r\n }\r\n {interestRates.length > 0 && interestRates.map((interestRate: InterestRateType) => {\r\n return (\r\n
    • \r\n {interestRate.state.name}\r\n
    • \r\n )\r\n })}\r\n
    \r\n {interestRates.length === 0 && !loaderIsActive &&\r\n

    None exist Interest Rate

    \r\n }\r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n )\r\n}\r\n","import { Button, createStyles, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport { FormEvent, useState } from 'react'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from '../CreateNewInterestRate.module.scss'\r\nimport { RatesType } from '../../../types/ratesType'\r\nimport { setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { useDispatch } from 'react-redux'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n smallInput: {\r\n width: 80,\r\n margin: \"0 10px\",\r\n [theme.breakpoints.down('xs')]: {\r\n width: 150,\r\n margin: \"0 0 10px 0\"\r\n }\r\n },\r\n mediumInput: {\r\n [theme.breakpoints.down('xs')]: {\r\n width: 150,\r\n margin: \"0 0 10px 0\"\r\n }\r\n },\r\n select: {\r\n width: 400\r\n }\r\n }),\r\n)\r\n\r\ntype PreSettlementRatesPropsType = {\r\n preSettlementRatesArr: Array\r\n setPreSettlementRatesArr(e: any): any\r\n interestRateId?: number\r\n handleOpenEditLawFirmWindow?(index: number, type: \"pre\" | \"post\"): any\r\n settlementDataHasBeenAddedToggle?: boolean\r\n setSettlementDataHasBeenAddedToggle?(toggle: boolean): void\r\n}\r\n\r\nexport default function PreSettlementRates(props: PreSettlementRatesPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [addDataRangePreSettlementSection, setAddDataRangePreSettlementSection] = useState(false)\r\n\r\n const [daysFrom, setDaysFrom] = useState(0)\r\n const [daysTo, setDaysTo] = useState(0)\r\n const [rate, setRate] = useState(0)\r\n\r\n const handleSubmit = async (e: FormEvent) => {\r\n e.preventDefault()\r\n let updatedPreSettlementRatesArr: Array = [...props.preSettlementRatesArr]\r\n let newRate = {\r\n daysFrom,\r\n daysTo,\r\n rate\r\n }\r\n updatedPreSettlementRatesArr.push(newRate)\r\n props.setPreSettlementRatesArr(updatedPreSettlementRatesArr)\r\n\r\n if (props.interestRateId) {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Interest/assign/${props.interestRateId}/preSettlement`, newRate)\r\n dispatch(setNotificationInfo({ message: \"New pre settlement Interest Rate has been successfully created\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n props.setSettlementDataHasBeenAddedToggle ? props.setSettlementDataHasBeenAddedToggle(!props.settlementDataHasBeenAddedToggle) : console.log(\"props.settlementDataHasBeenAddedToggle is not exist\")\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n setDaysFrom(0)\r\n setDaysTo(0)\r\n setRate(0)\r\n }\r\n\r\n const updatePreSettlementInfo = (index: number) => {\r\n if (props.handleOpenEditLawFirmWindow) props.handleOpenEditLawFirmWindow(index, \"pre\")\r\n }\r\n\r\n return (\r\n
    \r\n

    Pre-settlement

    \r\n\r\n
      \r\n {props.preSettlementRatesArr.length > 0 &&\r\n props.preSettlementRatesArr.map((rateItem: RatesType, index: number) => {\r\n return (\r\n
    • \r\n
      \r\n
      {index + 1}) Days after Check Sent: {rateItem.daysFrom}-{rateItem.daysTo}
      \r\n
      Rate: {rateItem.rate}%
      \r\n
      \r\n {props.interestRateId &&\r\n
      updatePreSettlementInfo(index)}>\r\n \r\n
      \r\n }\r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n\r\n
    setAddDataRangePreSettlementSection(!addDataRangePreSettlementSection)} className={s[\"InterestRate-AddBtn\"]}>\r\n \r\n
    \r\n {addDataRangePreSettlementSection &&\r\n
    handleSubmit(e)}>\r\n
    \r\n
    \r\n Days after Check Sent:\r\n setDaysFrom(parseInt(e.target.value))} InputProps={{ inputProps: { min: 0 } }} required />\r\n setDaysTo(parseInt(e.target.value))} InputProps={{ inputProps: { min: 0 } }} required />\r\n
    \r\n
    \r\n setRate(parseInt(e.target.value))} InputProps={{ inputProps: { min: 0 } }} required />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n )\r\n}","import { Button, createStyles, makeStyles, TextField, Theme } from '@material-ui/core'\r\nimport { FormEvent, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { setNotificationInfo, toggleNotification } from '../../../actions/actions'\r\nimport { URL_FOR_API } from '../../../constants/constants'\r\nimport actionsWithApi from '../../../customHooks/actionsWithApi'\r\nimport { RatesType } from '../../../types/ratesType'\r\nimport AddBtn from '../../shared/AddBtn/AddBtn'\r\nimport s from '../CreateNewInterestRate.module.scss'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n smallInput: {\r\n width: 80,\r\n margin: \"0 10px\",\r\n [theme.breakpoints.down('xs')]: {\r\n width: 150,\r\n margin: \"0 0 10px 0\"\r\n }\r\n },\r\n select: {\r\n width: 400\r\n },\r\n mediumInput: {\r\n [theme.breakpoints.down('xs')]: {\r\n width: 150,\r\n margin: \"0 0 10px 0\"\r\n }\r\n },\r\n }),\r\n)\r\n\r\ntype PostSettlementRatesPropsType = {\r\n postSettlementRatesArr: Array\r\n setPostSettlementRatesArr(e: any): any\r\n interestRateId?: number\r\n handleOpenEditLawFirmWindow?(index: number, type: \"pre\" | \"post\"): any\r\n settlementDataHasBeenAddedToggle?: boolean\r\n setSettlementDataHasBeenAddedToggle?(toggle: boolean): void\r\n}\r\n\r\nexport default function PostSettlementRates(props: PostSettlementRatesPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [addDataRangePostSettlementSection, setAddDataRangePostSettlementSection] = useState(false)\r\n\r\n const [daysFrom, setDaysFrom] = useState(0)\r\n const [daysTo, setDaysTo] = useState(0)\r\n const [rate, setRate] = useState(0)\r\n\r\n const handleSubmit = async (e: FormEvent) => {\r\n e.preventDefault()\r\n let updatedPostSettlementRatesArr: Array = [...props.postSettlementRatesArr]\r\n let newRate = {\r\n daysFrom,\r\n daysTo,\r\n rate\r\n }\r\n updatedPostSettlementRatesArr.push(newRate)\r\n props.setPostSettlementRatesArr(updatedPostSettlementRatesArr)\r\n\r\n if (props.interestRateId) {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Interest/assign/${props.interestRateId}/postSettlement`, newRate)\r\n dispatch(setNotificationInfo({ message: \"New post settlement Interest Rate has been successfully created\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n props.setSettlementDataHasBeenAddedToggle ? props.setSettlementDataHasBeenAddedToggle(!props.settlementDataHasBeenAddedToggle) : console.log(\"props.settlementDataHasBeenAddedToggle is not exist\")\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n setDaysFrom(0)\r\n setDaysTo(0)\r\n setRate(0)\r\n }\r\n\r\n const updatePostSettlementInfo = (index: number) => {\r\n if (props.handleOpenEditLawFirmWindow) props.handleOpenEditLawFirmWindow(index, \"post\")\r\n }\r\n\r\n return (\r\n
    \r\n

    Post-settlement

    \r\n
      \r\n {props.postSettlementRatesArr && props.postSettlementRatesArr\r\n .map((rateItem: RatesType, index) => {\r\n return (\r\n
    • \r\n
      \r\n
      {index + 1}) Days after Check Sent: {rateItem.daysFrom}-{rateItem.daysTo}
      \r\n
      Rate: {rateItem.rate}%
      \r\n
      \r\n {props.interestRateId &&\r\n
      updatePostSettlementInfo(index)}>\r\n \r\n
      \r\n }\r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n
    setAddDataRangePostSettlementSection(!addDataRangePostSettlementSection)} className={s[\"InterestRate-AddBtn\"]}>\r\n \r\n
    \r\n {addDataRangePostSettlementSection &&\r\n
    handleSubmit(e)}>\r\n
    \r\n
    \r\n Days after Check Sent:\r\n setDaysFrom(parseInt(e.target.value))} InputProps={{ inputProps: { min: 0 } }} required />\r\n setDaysTo(parseInt(e.target.value))} InputProps={{ inputProps: { min: 0 } }} required />\r\n
    \r\n
    \r\n setRate(parseInt(e.target.value))} InputProps={{ inputProps: { min: 0 } }} required />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n )\r\n}","import { URL_FOR_API } from \"../constants/constants\"\r\nimport actionsWithApi from \"./actionsWithApi\"\r\n\r\nexport default async function getStates() {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/AdminState\")\r\n return response.data\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n}","import { Button, Container, createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, Theme } from '@material-ui/core'\r\nimport { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { StatesType } from '../../types/stateType'\r\nimport s from './CreateNewInterestRate.module.scss'\r\nimport PreSettlementRates from './PreSettlementRates/PreSettlementRates'\r\nimport PostSettlementRates from './PostSettlementRates/PostSettlementRates'\r\nimport { RatesType } from '../../types/ratesType'\r\nimport { history } from '../../../App'\r\nimport getStates from '../../customHooks/getStates'\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n select: {\r\n width: 400,\r\n [theme.breakpoints.down('xs')]: {\r\n width: 200,\r\n }\r\n },\r\n submitBtn: {\r\n \"&:disabled\": {\r\n opacity: 0.5\r\n }\r\n }\r\n }),\r\n);\r\n\r\nexport default function InterestRate() {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [availableStatesArr, setAvailableStatesArr] = useState>([])\r\n const [stateIsSelected, setStateIsSelected] = useState(false)\r\n\r\n const [selectedStateKey, setSelectedStateKey] = useState(\"\")\r\n const [selectedStateName, setSelectedStateName] = useState(\"\")\r\n const [preSettlementRatesArr, setPreSettlementRatesArr] = useState>([])\r\n const [postSettlementRatesArr, setPostSettlementRatesArr] = useState>([])\r\n\r\n const getAllInterestRates = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/Interest/all\")\r\n return response.data\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n const getAllUniqueStatesFromAllInterestRatesArr = async () => {\r\n let availableStatesArrFinalResult: Array = []\r\n let states = await getStates()\r\n let interestRates = await getAllInterestRates()\r\n\r\n // get all states for which there is interestRate\r\n let statesInInterestRateArr: Array = []\r\n for (let i = 0; i < interestRates.length; i++) {\r\n statesInInterestRateArr.push(interestRates[i].state)\r\n }\r\n // remove duplicate states\r\n let uniqueStatesInInterestRateArr = statesInInterestRateArr.filter((item: StatesType, pos: number) => {\r\n return statesInInterestRateArr.indexOf(item) === pos;\r\n })\r\n\r\n // iterate over an array of all states and if there is no interest rate for such a state, then add it to a new array\r\n for (let i = 0; i < states.length; i++) {\r\n if (!uniqueStatesInInterestRateArr.some((item: StatesType) => item.key === states[i].key)) {\r\n let updatedAvailableStatesArr = availableStatesArr\r\n updatedAvailableStatesArr.push(states[i])\r\n availableStatesArrFinalResult = updatedAvailableStatesArr\r\n }\r\n }\r\n return availableStatesArrFinalResult\r\n }\r\n\r\n const [availableStatesArrIsReady, setAvailableStatesArrIsReady] = useState(false)\r\n useEffect(() => {\r\n getAllUniqueStatesFromAllInterestRatesArr().then((result) => {\r\n setAvailableStatesArr(result)\r\n setAvailableStatesArrIsReady(true)\r\n })\r\n }, [])\r\n\r\n const choiseState = (value: string) => {\r\n let stateKey = value.split(\" \")[0]\r\n let stateName = value.split(\" \")[1]\r\n setSelectedStateKey(stateKey)\r\n setSelectedStateName(stateName)\r\n setStateIsSelected(true)\r\n }\r\n\r\n const createNewInterestRate = async () => {\r\n let newInterestRate = {\r\n preSettlements: preSettlementRatesArr,\r\n postSettlements: postSettlementRatesArr,\r\n state: {\r\n key: selectedStateKey,\r\n name: selectedStateName\r\n }\r\n }\r\n\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + \"/api/v1/Interest\", newInterestRate)\r\n dispatch(setNotificationInfo({ message: \"Interest Rate created successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n history.push(\"interest-rates-list\")\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n return (\r\n \r\n

    Interest Rates

    \r\n\r\n \r\n Select State\r\n \r\n \r\n\r\n {stateIsSelected &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}","import { Redirect, Route } from \"react-router-dom\"\r\nimport { useEffect } from \"react\"\r\nimport getCookie from \"../../../scripts/getCookie\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setContentToInfoPage } from \"../../../actions/actions\"\r\n\r\ntype PrivateRoutePropsType = {\r\n children: any\r\n path: string\r\n userIsLogined: boolean\r\n}\r\n\r\nexport default function PrivateRoute(props: PrivateRoutePropsType) {\r\n const dispatch = useDispatch()\r\n let userRole = \"\"\r\n let itIsAdministrator = getCookie(\"currentUserRole\") === \"Administrator\"\r\n const setUserRole = () => {\r\n userRole = getCookie(\"currentUserRole\") + \"\"\r\n itIsAdministrator = userRole === \"Administrator\"\r\n }\r\n\r\n useEffect(() => {\r\n setUserRole()\r\n if (!itIsAdministrator) {\r\n dispatch(setContentToInfoPage({\r\n title: \"Limited Access!\",\r\n textDescription: \"You do not have access to this part of the platform. If you believe there is an error or need assistance, please contact support.\",\r\n hasInput: false,\r\n additionalBtn: false,\r\n contractSupportBtn: true\r\n }))\r\n }\r\n }, [props.userIsLogined])\r\n\r\n return (\r\n \r\n itIsAdministrator ? (\r\n props.children\r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n}","import { withStyles, Container, Theme, createStyles, TableCell, TextField, makeStyles, TableRow, TableContainer, Paper, Table, TableHead, TableBody, Button } from \"@material-ui/core\"\r\nimport {useState, useEffect, useRef} from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { URL_FOR_API } from \"../../constants/constants\"\r\nimport actionsWithApi from \"../../customHooks/actionsWithApi\"\r\nimport dateFormatting from \"../../scripts/dateFormatting\"\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle'\r\nimport SearchIcon from '@material-ui/icons/Search'\r\nimport s from './AllContracts.module.scss'\r\nimport Preloader from \"../shared/Preloader/Preloader\"\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n }\r\n }),\r\n)(TableCell)\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\",\r\n \"&:hover\": {\r\n border: \"1px solid #3062A0\"\r\n }\r\n },\r\n formControl: {\r\n width: 200,\r\n marginRight: 20,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginRight: 0\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n }),\r\n);\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n }),\r\n)(TableRow)\r\n\r\nexport default function AllContracts() {\r\n const classes = useStyles()\r\n\r\n const openLink = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n\r\n const [viewMoreLoaderIsActive, setViewMoreLoaderIsActive] = useState(false)\r\n const [searchValue, setSearchValue] = useState(\"\")\r\n const [casesArr, setCassesArr] = useState()\r\n const [pageNumber, setPageNumber] = useState(1)\r\n const [viewMoreBtnIsVisible, setViewMoreBtnIsVisible] = useState(true)\r\n const searchTimerRef = useRef(null)\r\n async function getCases(pageNumber: number) {\r\n try {\r\n let response = await actionsWithApi(\"get\", URL_FOR_API + `/api/v1/Contract/all?PageNumber=${pageNumber}&PageSize=10&sortingType=desc&userName=${searchValue}`, null)\r\n let newContractsArr = [...response.data]\r\n newContractsArr.length < 10 ? setViewMoreBtnIsVisible(false) : setViewMoreBtnIsVisible(true)\r\n let updatedContractsArr\r\n\r\n pageNumber === 1 ? updatedContractsArr = newContractsArr : updatedContractsArr = casesArr.concat(newContractsArr)\r\n setCassesArr(updatedContractsArr)\r\n setViewMoreLoaderIsActive(false)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n const handleSearchInput = async (searchQuery: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n setSearchValue(searchQuery)\r\n }, 500)\r\n }\r\n\r\n useEffect(() => {\r\n getCases(pageNumber)\r\n }, [pageNumber])\r\n\r\n useEffect(() => {\r\n getCases(1)\r\n }, [searchValue])\r\n\r\n return (\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n {!casesArr &&\r\n \r\n }\r\n {casesArr &&\r\n \r\n \r\n \r\n \r\n Case ID\r\n Date Created\r\n Status\r\n Amount Due\r\n Current Interest Rate\r\n Days Until Rate Increase\r\n Paid Off\r\n Client\r\n Attorney\r\n Law Firm\r\n \r\n \r\n\r\n \r\n {casesArr && casesArr.map((caseItem: any, index: number) => (\r\n \r\n {caseItem.caseId} \r\n {dateFormatting(caseItem?.contractStatus[0].dateChange)}\r\n {caseItem?.contractStatus[caseItem?.contractStatus.length - 1].contractsStatus}\r\n {caseItem.totalDue ? \"$\" + caseItem.totalDue : \"\"}\r\n \r\n {Math.round(caseItem?.currentContractRiskRatePercent * 100) + \"%\"}\r\n \r\n {caseItem.daysBeforePriceIncrease && caseItem.daysBeforePriceIncrease !== 0 && caseItem.daysBeforePriceIncrease + \" days left\"}\r\n ${caseItem.paidOff}\r\n \r\n \r\n {caseItem.contractClientDTO.user?.firstName + \" \" + caseItem.contractClientDTO.user?.lastName}\r\n \r\n \r\n \r\n {caseItem.contractAttorneyDTO.length > 0 &&\r\n \r\n {caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.firstName + \" \" + caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.lastName}\r\n \r\n }\r\n {caseItem.contractAttorneyDTO.length === 0 &&\r\n No Responsible Attorney\r\n }\r\n \r\n \r\n {caseItem.contractLawFirmDTO.length > 0 &&\r\n \r\n {caseItem.contractLawFirmDTO[caseItem.contractLawFirmDTO?.length - 1]?.user?.firstName}\r\n \r\n }\r\n {caseItem.contractLawFirmDTO.length === 0 &&\r\n No Responsible Law Firm\r\n }\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n }\r\n\r\n {viewMoreLoaderIsActive &&\r\n \r\n }\r\n\r\n {viewMoreBtnIsVisible && !viewMoreLoaderIsActive &&\r\n \r\n }\r\n
    \r\n )\r\n}\r\n","import { Theme, Modal, Backdrop, Fade, Box, Typography, TextField, Button, makeStyles, createStyles } from \"@material-ui/core\"\r\nimport { useState, useEffect } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setNotificationInfo, toggleNotification } from \"../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../constants/constants\"\r\nimport actionsWithApi from \"../../../customHooks/actionsWithApi\"\r\nimport { RatesType } from \"../../../types/ratesType\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n formControl: {\r\n width: 250,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginBottom: 0\r\n },\r\n },\r\n btnsBox: {\r\n width: 250,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: 50,\r\n [theme.breakpoints.down('xs')]: {\r\n marginTop: 20,\r\n }\r\n },\r\n btn: {\r\n width: 100,\r\n },\r\n modalWindow: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 400,\r\n padding: 40,\r\n backgroundColor: theme.palette.background.paper,\r\n [theme.breakpoints.down('xs')]: {\r\n width: 250,\r\n padding: 20\r\n }\r\n }\r\n }),\r\n)\r\n\r\n\r\ntype UpdateSettlementDataWindowPropsType = {\r\n openUpdateSettlementDataWindow: boolean\r\n handleCloseUpdateSettlementDataWindow(e: boolean): void\r\n editableSettlementInfo: RatesType | null\r\n editableSettlementType: \"post\" | \"pre\" | null\r\n settlementDataIsUpdatedToggle: boolean\r\n setSettlementDataIsUpdatedToggle(updateToggle: boolean): void\r\n}\r\n\r\nexport default function UpdateSettlementDataWindow(props: UpdateSettlementDataWindowPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [daysFrom, setDaysFrom] = useState()\r\n const [daysTo, setDaysTo] = useState()\r\n const [rate, setRate] = useState()\r\n const [settlementId, setSettlementId] = useState()\r\n\r\n const setDefaultValues = (props: UpdateSettlementDataWindowPropsType) => {\r\n setDaysFrom(props.editableSettlementInfo?.daysFrom)\r\n setDaysTo(props.editableSettlementInfo?.daysTo)\r\n setRate(props.editableSettlementInfo?.rate)\r\n setSettlementId(props.editableSettlementInfo?.id)\r\n }\r\n\r\n useEffect(() => {\r\n setDefaultValues(props)\r\n }, [props])\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n\r\n try {\r\n let updatedSettlementData = {\r\n daysFrom,\r\n daysTo,\r\n rate,\r\n id: settlementId\r\n }\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/Interest/update/${props.editableSettlementType}Settlement/${settlementId}`, updatedSettlementData)\r\n dispatch(setNotificationInfo({ message: \"Interest Rate successfuly edited\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n props.handleCloseUpdateSettlementDataWindow(true)\r\n props.setSettlementDataIsUpdatedToggle(!props.settlementDataIsUpdatedToggle)\r\n }\r\n catch (error) {\r\n console.log(error.message)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
    handleSubmit(e)}>\r\n setDaysFrom(parseInt(e.target.value + \"\"))} variant=\"outlined\" size=\"small\" />\r\n setDaysTo(parseInt(e.target.value + \"\"))} variant=\"outlined\" size=\"small\" />\r\n setRate(parseInt(e.target.value + \"\"))} variant=\"outlined\" size=\"small\" />\r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n )\r\n}","import { Container, Divider } from '@material-ui/core'\r\nimport { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { RatesType } from '../../types/ratesType'\r\nimport PostSettlementRates from '../CreateNewInterestRate/PostSettlementRates/PostSettlementRates'\r\nimport PreSettlementRates from '../CreateNewInterestRate/PreSettlementRates/PreSettlementRates'\r\nimport s from './UpdateInterestRate.module.scss'\r\nimport UpdateSettlementDataWindow from './UpdateSettlementDataWindow/UpdateSettlementDataWindow'\r\n\r\nexport default function UpdateInterestRate() {\r\n const dispatch = useDispatch()\r\n let location = useLocation()\r\n let interestRateId = parseInt(location.search.split(\"\").slice(1, location.search.split(\"\").length).join(\"\") + \"\")\r\n\r\n const [stateName, setStateName] = useState(\"State name\")\r\n const [stateKey, setStateKey] = useState(\"State key\")\r\n const [preSettlementRatesArr, setPreSettlementRatesArr] = useState>([])\r\n const [postSettlementRatesArr, setPostSettlementRatesArr] = useState>([])\r\n const [settlementDataIsUpdatedToggle, setSettlementDataIsUpdatedToggle] = useState(false)\r\n const [settlementDataHasBeenAddedToggle, setSettlementDataHasBeenAddedToggle] = useState(false)\r\n const getInterestRate = async () => {\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/Interest/${interestRateId}`)\r\n setPreSettlementRatesArr(response.data.preSettlements)\r\n setPostSettlementRatesArr(response.data.postSettlements)\r\n setStateName(response.data.state.name)\r\n setStateKey(response.data.state.key)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n console.log(error.message)\r\n }\r\n }\r\n useEffect(() => {\r\n getInterestRate()\r\n }, [settlementDataIsUpdatedToggle, settlementDataHasBeenAddedToggle])\r\n\r\n const [editableSettlementInfo, setEditableSettlementInfo] = useState(null)\r\n const [editableSettlementType, setEditableSettlementType] = useState<\"pre\" | \"post\" | null>(null)\r\n const [openUpdateSettlementDataWindow, setOpenUpdateSettlementDataWindow] = useState(false)\r\n const handleOpenEditLawFirmWindow = (indexOfEditableSettlement: number, settlementType: \"pre\" | \"post\") => {\r\n setOpenUpdateSettlementDataWindow(true)\r\n setEditableSettlementType(settlementType)\r\n settlementType === \"pre\"\r\n ? setEditableSettlementInfo(preSettlementRatesArr[indexOfEditableSettlement])\r\n : setEditableSettlementInfo(postSettlementRatesArr[indexOfEditableSettlement])\r\n }\r\n const handleCloseUpdateSettlementDataWindow = () => {\r\n setOpenUpdateSettlementDataWindow(false)\r\n }\r\n\r\n return (\r\n \r\n

    Interest Rates

    \r\n {stateName} ({stateKey})\r\n \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n\r\n
    \r\n )\r\n}","import Snackbar from '@material-ui/core/Snackbar'\r\nimport MuiAlert, { AlertProps } from '@material-ui/lab/Alert'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { RootState } from '../../../reducers/rootReducers'\r\nimport { toggleNotification } from '../../../actions/actions'\r\n\r\nfunction Alert(props: AlertProps) {\r\n return ;\r\n }\r\n \r\n\r\nexport default function GeneralNotification() {\r\n const dispatch = useDispatch()\r\n let isOpen = useSelector((state: RootState) => state.notification[\"isOpen\"])\r\n let message = useSelector((state: RootState) => state.notification[\"message\"])\r\n let severity = useSelector((state: RootState) => state.notification[\"severity\"])\r\n\r\n return (\r\n
    \r\n dispatch(toggleNotification(false))}\r\n message={message}>\r\n dispatch(toggleNotification(false))} severity={severity}>\r\n {message}\r\n \r\n \r\n
    \r\n );\r\n}","import { useEffect } from \"react\"\r\nimport { useLocation } from \"react-router-dom\"\r\nimport { URL_FOR_API } from \"../../constants/constants\"\r\nimport actionsWithApi from \"../../customHooks/actionsWithApi\"\r\nimport { history } from '../../../App'\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setContentToInfoPage } from \"../../actions/actions\"\r\nimport { CircularProgress } from \"@material-ui/core\"\r\nimport { getTokenAndEmailFromURL, TokenAndEmailDataFromURL } from \"../../scripts/getTokenAndEmailFromLink\"\r\n\r\nexport default function SecurityConfirm() {\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n\r\n const confirmEmail = async (securityDataFromLink: TokenAndEmailDataFromURL) => {\r\n try {\r\n await actionsWithApi(\r\n \"POST\",\r\n URL_FOR_API + `/api/v1/Account/confirm-email?emailToken=${securityDataFromLink.token}&email=${securityDataFromLink.email}`,\r\n null\r\n )\r\n\r\n dispatch(setContentToInfoPage({\r\n title: \"Congratulations!\",\r\n textDescription: \"You’ve successfully confirmed your email address. Now you will receive notifications through the HopeFunding platform.\",\r\n hasInput: false,\r\n additionalBtn: true,\r\n buttonText: \"Sign In\",\r\n btnLink: \"/login\",\r\n contractSupportBtn: false\r\n }))\r\n history.push('/information-page')\r\n\r\n } catch (error) {\r\n dispatch(setContentToInfoPage({\r\n title: \"Error!\",\r\n textDescription: \"Code was not found or expired!\",\r\n hasInput: false,\r\n inputPlaceholder: \"\",\r\n additionalBtn: true,\r\n buttonText: \"Go to Home page\",\r\n btnLink: \"/\",\r\n contractSupportBtn: false\r\n }))\r\n history.push('/information-page')\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n confirmEmail(getTokenAndEmailFromURL(location.search))\r\n }, [location])\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}","import { withStyles, Theme, createStyles, TableCell, TableRow, TableHead } from '@material-ui/core'\r\nimport { ratingItemType } from '../../../../types/ratingType'\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n fontSize: 16\r\n },\r\n }),\r\n)(TableCell)\r\n\r\ntype RatingItemTableHeadPropsType = {\r\n ratingData: Array\r\n}\r\n\r\nexport default function RatingItemTableHead(props: RatingItemTableHeadPropsType) {\r\n return (\r\n \r\n \r\n Star rating\r\n {props.ratingData && props.ratingData\r\n .sort((item1, item2) => item2.star - item1.star)\r\n .map((item: ratingItemType) => {\r\n return (\r\n {item.star}\r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n )\r\n}","import { withStyles, createStyles, TableCell, TableRow, TableContainer, Paper, Table, TableBody, Button } from '@material-ui/core'\r\nimport { ratingItemType } from '../../../types/ratingType'\r\nimport s from './RatingControllerItem.module.scss'\r\nimport RatingItemTableHead from './RatingItemTableHead/RatingItemTableHead'\r\n\r\nconst StyledTableCell = withStyles(() =>\r\n createStyles({\r\n body: {\r\n fontSize: 16,\r\n whiteSpace: \"nowrap\",\r\n \"&:first-child\": {\r\n fontSize: 14,\r\n fontWeight: 600\r\n }\r\n },\r\n }),\r\n)(TableCell)\r\n\r\nexport type RatingControllerItemPropsType = {\r\n title: string\r\n explainer: string\r\n ratingValueInTable: string\r\n ratingData: Array\r\n setCurrentEditingRatingTitle(title: string): void\r\n setCurrentEditingRatingExplainer(explainer: string): void\r\n setEditRatingWindowIsOpen(state: boolean): void\r\n setCurrentEditingRatingData(ratingData: Array): void\r\n ratingType: string\r\n setRatingType(type: string): void\r\n}\r\n\r\nexport default function RatingControllerItem(props: RatingControllerItemPropsType) {\r\n\r\n const editRating = () => {\r\n props.setCurrentEditingRatingTitle(props.title)\r\n props.setCurrentEditingRatingExplainer(props.explainer)\r\n props.setCurrentEditingRatingData(props.ratingData)\r\n props.setRatingType(props.ratingType)\r\n props.setEditRatingWindowIsOpen(true)\r\n }\r\n\r\n return (\r\n
    \r\n

    {props.title}

    \r\n\r\n \r\n \r\n \r\n \r\n \r\n {props.ratingValueInTable}\r\n {props.ratingData && props.ratingData\r\n .sort((item1, item2) => item2.star - item1.star)\r\n .map((item: ratingItemType) => {\r\n return (\r\n {item.from + \"-\" + item.to}\r\n )\r\n })\r\n }\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}","import { createStyles, makeStyles, Theme, Button, TextField } from \"@material-ui/core\"\r\nimport { FormEvent, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setNotificationInfo, toggleNotification } from \"../../../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../../../constants/constants\"\r\nimport actionsWithApi from \"../../../../../customHooks/actionsWithApi\"\r\nimport { ratingItemType } from \"../../../../../types/ratingType\"\r\nimport s from \"./AddNewRatingPoint.module.scss\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n formControl: {\r\n maxWidth: 100,\r\n marginBottom: 20,\r\n marginRight: 20,\r\n [theme.breakpoints.down('md')]: {\r\n maxWidth: 60\r\n },\r\n \"&:last-child\": {\r\n marginRight: 0\r\n }\r\n },\r\n }),\r\n)\r\n\r\nexport type AddNewRatingPointPropsType = {\r\n editingRatingType: string\r\n currentEditingRatingData: Array\r\n setCurrentEditingRatingData(ratingItem: Array | null): void\r\n}\r\n\r\nexport default function AddNewRatingPoint(props: AddNewRatingPointPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [from, setFrom] = useState(0)\r\n const [to, setTo] = useState(0)\r\n const [star, setStar] = useState(0)\r\n\r\n const addNewPoint = async (e: FormEvent) => {\r\n e.preventDefault()\r\n if(star > 5) {\r\n dispatch(setNotificationInfo({ message: \"Star rating can't be more than 5\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n return\r\n }\r\n\r\n let starAlreadyExist = props.currentEditingRatingData.find(ratingItem => ratingItem.star === star)\r\n if(starAlreadyExist) {\r\n dispatch(setNotificationInfo({ message: \"This rating star already exists\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n return\r\n }\r\n\r\n try {\r\n let editRatingPointData = {\r\n from,\r\n to,\r\n star,\r\n userRatingType: props.editingRatingType\r\n }\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/UserRating`, editRatingPointData)\r\n let tempEditingRatingData = [...props.currentEditingRatingData]\r\n tempEditingRatingData.push({ ...editRatingPointData, id: response.data.id })\r\n props.setCurrentEditingRatingData(tempEditingRatingData)\r\n\r\n dispatch(setNotificationInfo({ message: \"User Rating added successfully\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n

    Add new Item:

    \r\n
    addNewPoint(e)}>\r\n setFrom(parseFloat(e.target.value))} required\r\n />\r\n setTo(parseFloat(e.target.value))} required\r\n />\r\n setStar(parseInt(e.target.value))} required\r\n />\r\n

    \r\n\r\n \r\n \r\n
    \r\n )\r\n}","import { Modal, Backdrop, Fade, Box, Typography, createStyles, makeStyles, Theme, Button, Grid, TextField } from \"@material-ui/core\"\r\nimport { FormEvent, useEffect, useState } from \"react\"\r\nimport { ratingItemType } from \"../../../../types/ratingType\"\r\nimport AddNewRatingPoint from \"./AddNewRatingPoint/AddNewRatingPoint\"\r\nimport EditIcon from '@material-ui/icons/Edit'\r\nimport DeleteIcon from '@material-ui/icons/Delete'\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setNotificationInfo, toggleNotification } from \"../../../../actions/actions\"\r\nimport { URL_FOR_API } from \"../../../../constants/constants\"\r\nimport actionsWithApi from \"../../../../customHooks/actionsWithApi\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n modalWindowWrapp: {\r\n overflowY: \"scroll\",\r\n marginTop: 20,\r\n marginBottom: 20\r\n },\r\n modalWindow: {\r\n position: \"absolute\",\r\n top: 20,\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n width: 900,\r\n backgroundColor: \"#ffffff\",\r\n boxShadow: \"24\",\r\n padding: 20,\r\n [theme.breakpoints.down('md')]: {\r\n width: \"270px\",\r\n padding: 10,\r\n }\r\n },\r\n form: {\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n subtitle: {\r\n marginBottom: 20,\r\n maxWidth: \"80%\",\r\n [theme.breakpoints.down('md')]: {\r\n maxWidth: \"100%\",\r\n fontSize: 12\r\n }\r\n },\r\n formControl: {\r\n maxWidth: 100,\r\n marginBottom: 20,\r\n [theme.breakpoints.down('md')]: {\r\n maxWidth: 70\r\n }\r\n },\r\n numberOfItem: {\r\n marginBottom: 15\r\n },\r\n btnsBox: {\r\n width: 250,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: 40\r\n },\r\n btn: {\r\n width: 100,\r\n },\r\n nav: {\r\n marginBottom: 10\r\n },\r\n icon: {\r\n margin: \"0 5px\",\r\n cursor: \"pointer\"\r\n }\r\n }),\r\n)\r\n\r\nexport type EditRatingWindowPropsType = {\r\n title: string\r\n explainer: string\r\n currentEditingRatingData: Array\r\n setCurrentEditingRatingData(ratingItem: Array | null): void\r\n windowIsOpen: boolean\r\n setWindowIsOpen(state: boolean): void\r\n ratingType: string\r\n setRatingUpdated(state: boolean): void\r\n}\r\n\r\nexport default function EditRatingWindow(props: EditRatingWindowPropsType) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n\r\n const [visibleEditRatingItemSectionArr, setVisibleEditRatingItemSectionArr] = useState>([])\r\n const setVisibleEditRatingItemSectionArrFunc = () => {\r\n for (let i = 0; i < props.currentEditingRatingData.length; i++) {\r\n let temp = [...visibleEditRatingItemSectionArr]\r\n temp.push(false)\r\n setVisibleEditRatingItemSectionArr([...temp])\r\n }\r\n }\r\n useEffect(() => {\r\n setVisibleEditRatingItemSectionArrFunc()\r\n }, [])\r\n\r\n const [currentEditingRatingItemFromValue, setCurrentEditingRatingItemFromValue] = useState(0)\r\n const [currentEditingRatingItemToValue, setCurrentEditingRatingItemToValue] = useState(0)\r\n const [currentEditingRatingItemStarValue, setCurrentEditingRatingItemStarValue] = useState(0)\r\n const [currentEditingRatingItemId, setCurrentEditingRatingItemId] = useState(0)\r\n const editRatingItemPoint = async (e: FormEvent) => {\r\n e.preventDefault()\r\n let newRatingItemData = {\r\n from: currentEditingRatingItemFromValue,\r\n to: currentEditingRatingItemToValue,\r\n star: currentEditingRatingItemStarValue\r\n }\r\n let response = await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/UserRating/update/${currentEditingRatingItemId}`, newRatingItemData)\r\n\r\n let indexOfUpdatedRatingItem = props.currentEditingRatingData.findIndex(ratingItem => ratingItem.id === currentEditingRatingItemId)\r\n let tempEditingRatingData = JSON.parse(JSON.stringify(props.currentEditingRatingData))\r\n tempEditingRatingData[indexOfUpdatedRatingItem] = { ...response.data }\r\n props.setCurrentEditingRatingData(tempEditingRatingData)\r\n dispatch(setNotificationInfo({ message: \"Successfully updated\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n props.setRatingUpdated(true)\r\n }\r\n\r\n const deleteRatingItemPont = async (ratingItemPointId: number) => {\r\n if (ratingItemPointId) {\r\n try {\r\n await actionsWithApi(\"POST\", URL_FOR_API + `/api/v1/UserRating/delete/${ratingItemPointId}`)\r\n let tempEditingRatingData = props.currentEditingRatingData.filter(ratingItem => ratingItem.id != ratingItemPointId)\r\n props.setCurrentEditingRatingData(tempEditingRatingData)\r\n dispatch(setNotificationInfo({ message: \"Successfully removed\", severity: \"success\" }))\r\n dispatch(toggleNotification(true))\r\n props.setRatingUpdated(true)\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n else {\r\n dispatch(setNotificationInfo({ message: \"There was an error while deleting\", severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n\r\n const handleEditRating = (index: number, star: number, id: number, from: number, to: number) => {\r\n let tempArr = [...visibleEditRatingItemSectionArr]\r\n tempArr[index] = !tempArr[index]\r\n setVisibleEditRatingItemSectionArr([...tempArr])\r\n setCurrentEditingRatingItemStarValue(star)\r\n setCurrentEditingRatingItemId(id)\r\n setCurrentEditingRatingItemFromValue(from)\r\n setCurrentEditingRatingItemToValue(to)\r\n }\r\n\r\n return (\r\n props.setWindowIsOpen(false)}\r\n closeAfterTransition\r\n BackdropComponent={Backdrop}\r\n BackdropProps={{\r\n timeout: 500,\r\n }}\r\n className={classes.modalWindowWrapp}\r\n >\r\n \r\n \r\n \r\n
    \r\n

    {props.title}

    \r\n

    {props.explainer}

    \r\n\r\n \r\n {props.currentEditingRatingData && props.currentEditingRatingData\r\n .sort((item1, item2) => item2.star - item1.star)\r\n .map((ratingItem, index: number) => {\r\n return (\r\n \r\n
    {ratingItem.star}
    \r\n \r\n \r\n
    \r\n handleEditRating(index, ratingItem.star, ratingItem.id, ratingItem.from, ratingItem.to)}\r\n />\r\n deleteRatingItemPont(ratingItem.id)}\r\n />\r\n
    \r\n {visibleEditRatingItemSectionArr[index] &&\r\n
    editRatingItemPoint(e)}>\r\n setCurrentEditingRatingItemFromValue(parseFloat(e.target.value))}\r\n inputProps={{ min: \"0\", step: \"0.001\" }} required\r\n />\r\n setCurrentEditingRatingItemToValue(parseFloat(e.target.value))}\r\n inputProps={{ min: \"0\", step: \"0.001\" }} required\r\n />\r\n \r\n \r\n }\r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n\r\n {props.currentEditingRatingData.length <= 5 &&\r\n \r\n }\r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import { Container, Divider } from '@material-ui/core'\r\nimport s from './RatingController.module.scss'\r\nimport RatingControllerItem from './RatingControllerItem/RatingControllerItem'\r\nimport EditRatingWindow from './RatingControllerItem/EditRatingWindow/EditRatingWindow'\r\nimport { useEffect, useState } from 'react'\r\nimport { ratingItemType } from '../../types/ratingType'\r\nimport { setNotificationInfo, toggleNotification } from '../../actions/actions'\r\nimport { URL_FOR_API } from '../../constants/constants'\r\nimport actionsWithApi from '../../customHooks/actionsWithApi'\r\nimport { useDispatch } from 'react-redux'\r\n\r\nexport default function RatingController() {\r\n const dispatch = useDispatch()\r\n const [currentEditingRatingData, setCurrentEditingRatingData] = useState | null>(null)\r\n const [currentEditingRatingTitle, setCurrentEditingRatingTitle] = useState(\"\")\r\n const [currentEditingRatingExplainer, setCurrentEditingRatingExplainer] = useState(\"\")\r\n const [ratingType, setRatingType] = useState(\"\")\r\n\r\n const [editRatingWindowIsOpen, setEditRatingWindowIsOpen] = useState(false)\r\n const [ratingUpdated, setRatingUpdated] = useState(false)\r\n\r\n const [avgTimetoClose, setAvgTimetoClose] = useState | null>()\r\n const [totalLostCases, setTotalLostCases] = useState | null>()\r\n const [avgCasesLost, setAvgCasesLost] = useState | null>()\r\n const [totalReducedCases, setTotalReducedCases] = useState | null>()\r\n const [percentCaseWithReduction, setPercentCaseWithReduction] = useState | null>()\r\n const [percentReductionPerReducedCase, setPercentReductionPerReducedCase] = useState | null>()\r\n const getRatingControllerData = async () => {\r\n try {\r\n await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/UserRating/getAll/avgDaysClose\")\r\n .then((response) => setAvgTimetoClose(response.data))\r\n await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/UserRating/getAll/totalLostCases\")\r\n .then((response) => setTotalLostCases(response.data))\r\n await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/UserRating/getAll/avgCasesLost\")\r\n .then((response) => setAvgCasesLost(response.data))\r\n await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/UserRating/getAll/totalReducedCases\")\r\n .then((response) => setTotalReducedCases(response.data))\r\n await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/UserRating/getAll/percentCaseWithReduction\")\r\n .then((response) => setPercentCaseWithReduction(response.data))\r\n await actionsWithApi(\"GET\", URL_FOR_API + \"/api/v1/UserRating/getAll/percentReductionPerReducedCase\")\r\n .then((response) => setPercentReductionPerReducedCase(response.data))\r\n }\r\n catch (error) {\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n }\r\n }\r\n useEffect(() => {\r\n getRatingControllerData()\r\n }, [])\r\n useEffect(() => {\r\n !editRatingWindowIsOpen && ratingUpdated && getRatingControllerData() && setRatingUpdated(false)\r\n }, [editRatingWindowIsOpen])\r\n\r\n return (\r\n \r\n

    User Rating Controller

    \r\n\r\n {avgTimetoClose &&\r\n \r\n }\r\n \r\n\r\n {totalLostCases &&\r\n \r\n }\r\n \r\n\r\n {avgCasesLost &&\r\n \r\n }\r\n \r\n\r\n {totalReducedCases &&\r\n \r\n }\r\n \r\n\r\n {percentCaseWithReduction &&\r\n \r\n }\r\n \r\n\r\n {percentReductionPerReducedCase &&\r\n \r\n }\r\n\r\n\r\n {currentEditingRatingData &&\r\n \r\n }\r\n\r\n
    \r\n )\r\n}","import s from './PrivacyPolicy.module.scss'\r\nimport { Container } from '@material-ui/core'\r\nexport default function PrivacyPolicy() {\r\n\r\n return (\r\n \r\n

    HOPE FUNDING PRIVACY POLICY

    \r\n

    Last Updated: February 23, 2023

    \r\n

    I. INTRODUCTION.

    \r\n

    This Privacy Policy (this “Privacy Policy”) describes how Hope Funding, LLC; other company names used by us and our affiliates (together referred to as “HOPE”, “we”, “us”, or “our”) handles and secures information we collect through our websites at www.hopefunding.com, (“Site”) relating to our products and services (“Services”). For the purpose of this Privacy Policy, “you” or “User” means the individual user of our Services and / or a visitor to our Site. In addition, please review the terms of the user agreement governing any Services you receive from us, which governs your use thereof. By using our Services, you consent to our Privacy Policy and our Terms of Use and our collection, use and sharing of your information and data, and other activities, as described below. If you have entered into a user agreement for our Services (your “User Agreement”), it will supplement and amend the Terms of Use. Because the Terms of Use and your User Agreement include subjects that may not be\r\n covered in this Privacy Policy, and may narrow or modify the scope of our use of information under this Privacy Policy, please review them each carefully. If you do not agree to the terms of this Privacy Policy, please do not provide us with any personal information and do not use our Site or Services.

    \r\n

    II. INFORMATION COLLECTED BY OUR SITE AND/OR SERVICES.

    \r\n

    Data Submitted by User or Visitor of Site and/or Services

    \r\n\r\n

    When you use our Site or Services, you can (depending on the Services you use) submit information by way of the following:

    \r\n
      \r\n
    1. Typing-in data (such as when you fill out an application, register for our Services, type a message to send to us or another user, enter a search request, or complete a form);
    2. \r\n
    3. Uploading a document, image or other data file; or
    4. \r\n
    5. Authorizing us to retrieve and import information from you, another user or other third party on your behalf.
    6. \r\n
    \r\n

    Engagement Tools and Engagement Data

    \r\n\r\n

    Our Site also gathers information whenever you visit, log in or otherwise interact with us. As with other websites and interactive services, whenever you interact with our Site, your computer, mobile phone or tablet and its software (a “Device”) transmits a “request” to us. That request includes information received from your Device necessary for us to identify and appropriately route the information your Device is requesting. These “requests” and “replies” are present on all websites and Internet services. Therefore, whenever you:

    \r\n
      \r\n
    1. Visit and navigate through our Site or Services;
    2. \r\n
    3. Click on a link;
    4. \r\n
    5. Open a webpage or web form;
    6. \r\n
    7. Open a web-enabled email sent by us;
    8. \r\n
    9. Send a message via our interactive chat or instant message feature; or
    10. \r\n
    11. Otherwise take an action or interact with elements of our Site or its pages, content or features your Device is sending non-personal information to us.
    12. \r\n
    \r\n

    Our Site also gathers information whenever you visit, log in or otherwise interact with us. In addition to managing the appropriate routing of information, we use so-called “cookies,” “web beacons,” “server logs” and other Engagement Tools (“Engagement Tools”) to enhance the quality of the service and content you receive. For example, we use Engagement Tools to:

    \r\n
      \r\n
    1. Save User preferences;
    2. \r\n
    3. Preserve session settings and activity;
    4. \r\n
    5. Help authenticate Users;
    6. \r\n
    7. Allow Users to auto-fill sign-in pages of websites they frequently visit;
    8. \r\n
    9. Tailor the delivery of ads and other content; and
    10. \r\n
    11. Analyze the performance of our Site, Services and various features and content.
    12. \r\n
    \r\n

    Therefore, even if you do not register with us or submit any personal information on our Site, our Engagement Tools automatically receive information about your Device and the software running on it. We call such information Engagement Data (“Engagement Data”).

    \r\n\r\n

    Engagement Data often includes elements such as the date and time a “request” is made, the model of the Device making the “request,” the type and version of operating system running on a Device, the browser making the request, routing information, IP address, geolocation, search terms a User enters, what URL a Device most recently visited, and, if a mobile application is used, an anonymous unique number. Engagement Data can also include Internet or other electronic network activity information, including, but not limited to, browsing history, search history, and information regarding a consumer’s interaction with an Internet website, application, or advertisement. Engagement Data can be combined with personal information. If so, we treat such combined information the same way we treat personal information.

    \r\n\r\n

    You have the ability to control how certain Engagement Tools operate by modifying the settings on your Device or its software. Most browsers, for example, allow you to refuse accepting cookies, and many mobile Devices allow you to disable the sending of location information. In some cases, doing these things could diminish the performance of our Site and Services or render them inoperable. To learn more about Engagement Tools and how we use Engagement Data please see the section below entitled “How Information is Used.”

    \r\n\r\n

    Do Not Track Disclosures

    \r\n\r\n

    Various third parties are developing or have developed signals or other mechanisms for the expression of consumer choice regarding the collection of information about an individual consumer’s online activities over time and across third-party websites or online services (e.g., browser “do not track” signals). Currently, we do not monitor or take any action with respect to these signals or other mechanisms.

    \r\n\r\n

    Online Tracking By Third Parties

    \r\n\r\n

    Third-party analytics and other service providers, such as Google Analytics, may set and access their own tracking technologies on your Device and they may otherwise collect or have access to information about you and track you over time and across third party websites. These service providers use tracking technologies to help us analyze how visitors use our Site and Services. We are not responsible for those third party technologies or activities arising out of them. However, some third parties may offer you certain choices regarding their practices.

    \r\n\r\n

    For example, to learn about opting out of Google Analytics, please visit https://tools.google.com/dlpage/gaoptout. We are not responsible for the effectiveness of or compliance with any third parties’ opt-out options. If you choose to opt out of the use of Google Analytics, Google will no longer collect and analyze information via cookies associated with your browser for these services. When you opt out, Google will place opt-out cookies on your browser. If you delete your cookies, change browsers, or change devices, you will need to repeat this opt-out process. Also, please note that this opt-out process will work only if your browser is set to accept all cookies. We may still use Google Analytics services to create promotions and apps within social networks after you opt out. These services do not rely on collecting and analyzing information via cookies. To learn more about your choices for these services, review the options\r\n your social network provides.

    \r\n\r\n

    You can obtain information about which third parties have currently enabled cookies and how to opt-out of some of those cookies by visiting the Network Advertising Initiative’s website at https://optout.networkadvertising.org; or the Digital Advertising Alliance’s website at https://optout.aboutads.info. For more information on mobile-specific opt-out choices, please visit https://www.networkadvertising.org/mobile-choices.

    \r\n\r\n

    Third Party Tools

    \r\n\r\n

    We work with certain third parties who deploy their own Engagement Tools on our Site (“Third Party Tools”). In some instances they do so exclusively on our behalf. In other instances, they may retain and use the data they collect pursuant to publicly available privacy policies. These Third Party Tools are frequently deployed by companies providing online advertising services or analytics, but they may be deployed in other contexts as well, such as social media plug-ins. We treat personal and non-personal information that we receive from these Third Party Tools the same way we treat personal and non-personal information that we directly collect from our Site. We, however, do not control how these third parties manage the information they gather.

    \r\n\r\n

    III. PERSONAL AND NON-PERSONAL INFORMATION.

    \r\n\r\n

    Information you submit to us that identifies you or can be used to contact you (e.g., email or mailing address) is your “personal information.” We collect the following categories of personal information about you:

    \r\n
      \r\n
    • Personal identifiers, including name, telephone number, address, email, Social Security number, driver’s license number, and date of birth.
    • \r\n
    • Financial information, including credit card number, bank account number, and ACH account number
    • \r\n
    • Case information, which may include family members.
    • \r\n
    • Histories or tendencies, including medical information, criminal history, credit history, military service, judgments, or funding history.
    • \r\n
    • Commercial information, including records of personal property or products or services purchased, obtained, or considered.
    • \r\n
    • Other information that identifies, relates to, describes, is capable of being associated with, or could reasonably be linked, directly or indirectly, with you, including signatures, call recordings, employment information, or education information.
    • \r\n
    \r\n

    When we combine non-personal information with personal information, or non-personal information with other non-personal information in a way that renders the combined information personal information, we treat that combined information the same way we treat personal information. When we combine personal information with information from third party sources, we also treat that combined information the same way we treat personal information.

    \r\n\r\n

    How Information is Used

    \r\n\r\n

    We use personal and non-personal information (including Engagement Data) for the following purposes:

    \r\n
      \r\n
    1. Operating, maintaining, managing and administering our Site or Services, including processing registrations and payments, and providing customer support;
    2. \r\n
    3. Responding to questions and communications, which we retain in the ordinary course of business;
    4. \r\n
    5. Administrative announcements about features, functionality, terms or other aspects of our Site or Services; and, if applicable, informing about offers for services or products we believe may be of interest to you (see also “Service Emails and other Communications” sections below);
    6. \r\n
    7. Safeguarding and protecting our Site and Services, the information they safeguard, the rights of third parties and in response to legal process, in each case, as more fully described below in “The Importance of Protecting our Site, Services and the Information they Safeguard”;
    8. \r\n
    9. Auditing related to a current interaction with the consumer and concurrent transactions, including, but not limited to, counting ad impressions to unique visitors, verifying positioning and quality of ad impressions, and auditing compliance with this specification and other standards;
    10. \r\n
    11. Detecting security incidents, protecting against malicious, deceptive, fraudulent, or illegal activity, and prosecuting those responsible for that activity;
    12. \r\n
    13. Debugging to identify and repair errors that impair existing intended functionality;
    14. \r\n
    15. Short-term, transient use, provided the personal information that is not disclosed to another third party and is not used to build a profile about a consumer or otherwise alter an individual consumer’s experience outside the current interaction, including, but not limited to, the contextual customization of ads shown as part of the same interaction;
    16. \r\n
    17. Performing services on behalf of the business or service provider, including maintaining or servicing accounts, providing customer service, processing or fulfilling orders and transactions, verifying customer information, processing payments, providing financing, providing advertising or marketing services, providing analytic services, or providing similar services on behalf of the business or service provider;
    18. \r\n
    19. Undertaking internal research for technological development and demonstration;
    20. \r\n
    21. Undertaking activities to verify or maintain the quality or safety of a service or device that is owned, manufactured, manufactured for, or controlled by the business, and to improve, upgrade, or enhance the service or device that is owned, manufactured, manufactured for, or controlled by the business;
    22. \r\n
    23. Advancing a person’s commercial or economic interests, such as by inducing another person to buy, rent, lease, join, subscribe to, provide, or exchange products, goods, property, information, or services, or enabling or effecting, directly or indirectly, a commercial transaction; and
    24. \r\n
    25. Other legitimate business purposes permitted by law, including any other purpose described in this Privacy Policy or your User Agreement.
    26. \r\n
    \r\n

    We use non-personal information for the following purposes:

    \r\n
      \r\n
    1. Auditing, research, measurement and analysis in order to maintain, administer, enhance and protect our Site and Services, including analyzing usage trends and patterns and measuring the effectiveness of content, advertising, features or services;
    2. \r\n
    3. Creating new features and services;
    4. \r\n
    5. Contextual and cookie-based automated content delivery, such as tailored ads or search results;
    6. \r\n
    7. Conducting research and engaging in public service activities and services; and
    8. \r\n
    9. Other legitimate business purposes permitted by law, including any other purpose described in this Privacy Policy or your User Agreement.
    10. \r\n
    \r\n

    We may also use non-personal information to prepare aggregate reports for current or future advertisers, sponsors or other partners to show trends about the general use of our Site and/or Services. Such reports may include age, gender, geographic, demographic or other general User information, but do not include personal information.

    \r\n

    IV. CONSENTS AND AUTHORIZATIONS.

    \r\n

    From time to time, we may request your consent or authorization (your “consent”) in connection with the use or sharing of your information. In some instances, this will be because your User Agreement, this Privacy Policy or applicable law or regulations requires us to obtain such consent. In other instances, such consent will be for informational purposes. In the latter case, the request to obtain your consent should not be interpreted as narrowing the scope or applicability of your User Agreement or this Privacy Policy – by entering into your User Agreement or using the applicable Services, you have accepted and agreed to our information handling practices in the manner described in your User Agreement and this Privacy Policy.

    \r\n\r\n

    In cases where you consent or “opt-in” to the use or sharing of your personal information in a manner that is not otherwise provided for in your User Agreement or this Privacy Policy, unless otherwise explicitly stated in such consent, you will have the ability to rescind your consent and “opt-out” of our use or sharing of such information in the future. In that event, we will refrain from our use or sharing of such information, but we may not be able to require the removal of such information from the databases of the recipients with whom such information has been shared.

    \r\n

    V. SERVICE EMAILS AND OTHER COMMUNICATIONS.

    \r\n

    Our Site and/or Services allow Users to communicate with others through our in-product instant messaging services, Service-branded emails, SMS and other electronic communication channels. Communications that are sent by or on behalf of a User are indicated as being “From” that User. Communications that are sent by us are indicated as being from us or one of our account or support specialists assigned to assist you. Either type of communications may be “real time” communications or communications triggered automatically upon the occurrence of certain events or dates – such as a repeated sign-in failure, an appointment reminder and the like.

    \r\n\r\n

    Email communications

    \r\n\r\n

    Electronic messages received from Users and our administrative announcements are often transactional or relationship messages, such as appointment requests, reminders and cancellations and other Service notifications. You may not be able to opt out of receiving certain messages, although our Site and/or Services may provide a means to modify the frequency of receiving them. In cases in which we believe User emails are not primarily transactional or relationship messages, it will include the capability to opt-out of receiving further emails. If you sign-up to receive marketing announcements from us, such emails will include capability to opt-out of receiving such emails in the future.

    \r\n\r\n

    On occasion, we will communicate marketing information, operational updates and other information to Users via electronic mail. Users agree that such transmissions are important means of communication between us and Users and shall not be considered junk faxes or unsolicited advertisements as defined by the Telephone Consumer Protection Act of 1991 or other applicable state or federal laws or regulation.

    \r\n\r\n

    Surveys

    \r\n\r\n

    From time to time we ask Users to complete surveys or otherwise provide input to improve our operations or to assist other Users in making informed choices. The content of such surveys, therefore, should be presumed public. When we make such survey, we let Users know how their responses will be used. As with communities and public forums, we strongly advise Users to exercise care in selecting what information they share in a survey or similar communication, and strongly recommend against sharing any personal financial or other sensitive information that could directly or indirectly be traced to any individual, including yourself.

    \r\n\r\n

    Engagement Tools

    \r\n\r\n

    Our Site may deploy Engagement Tools (such as “cookies,” “web beacons” and “server logs”) on outbound emails to Users and others to collect Engagement Data, and we may use vendors to assist us in sending outbound emails to Users who may deploy Third Party Tools.

    \r\n\r\n

    Emails and Other Communications

    \r\n\r\n

    Emails and other communications from individuals who are not users of our Site or Services, or that are being sent in connection with business, agreements or subject matter other than your User Agreement or your use of our Services, are not covered by this Privacy Policy. If, for example, you respond to a posted job opening, that communication to us is not covered by this Privacy Policy as we utilize a third party service provider to manage the application process for the job openings that may have been posted on our Site. Likewise, if you submit to us any ideas, suggestions or proposals (collectively, “Suggestions”) relating to our Site or Services or other products or services by any means – such as through email or other communication channels, one of our communities or user forums, or to our customer support or other personnel – such Suggestions are not governed by this Privacy Policy.

    \r\n

    VI. SHARING OF INFORMATION.

    \r\n

    We will not share personal information you submit except under the following circumstances:

    \r\n
      \r\n
    1. When you choose to share such information through our Site or Services. Under certain circumstances this may require a specialized consent before our Site or Services complete certain such transmissions;
    2. \r\n
    3. When you are otherwise notified at the time we collect such information or we otherwise have your express consent;
    4. \r\n
    5. When your account has been issued by an account administrator with administrative rights over your account, your account administrator will have access to your account information, including your personal information. Your account administrator may: (i) receive and retain your account information, (ii) change your account password, (iii) restrict your ability to submit, delete or edit information; (iv) suspend or terminate your account access, or (v) access or retain information you submit or otherwise stored as part of your account for any purposes required or permitted under applicable law;
    6. \r\n
    7. When we share such information with our current and future affiliates;
    8. \r\n
    9. When we use third party service providers. We may use third-party service providers to perform certain services on behalf of us, Site or the Services, such as: (a) to assist us in operations; (b) to manage a database of customer information; (c) hosting the Site or Service; (d) designing and/or operating the Site or Services’ features; (e) tracking the Site and Services’ activities and analytics; (f) enabling us to send you special offers or perform other administrative services; and (g) other services designed to assist us in maximizing our business potential. We may provide service providers with access to your Information to carry out the services they are performing for you or for us;
    10. \r\n
    11. When we protect our Site and Services, the information they safeguard, the rights of third parties and in response to legal process, as more fully described below in “The Importance of Protecting our Site, Services and the Information they Safeguard”;
    12. \r\n
    13. In connection with a sale, merger, transfer, exchange, reorganization or other disposition (whether of assets, stock, or otherwise) of all or a portion of the business conducted by the services to which this Privacy Policy applies. If such a transaction occurs, the acquiring company’s use of your personal information will remain subject to this Privacy Policy;
    14. \r\n
    15. It is important for you to understand that other users who submit to, or receive from, our Site or Services personal information about you, may share that information with other persons, even without separately notifying you or seeking your consent; and
    16. \r\n
    17. When we are complying with your requests, directions, instructions, or other express authorization; and
    18. \r\n
    19. For our legitimate business purposes as permitted by law, including sharing for any other purpose described in this Privacy Policy or your User Agreement.
    20. \r\n
    \r\n

    To limit sharing of personal information where possible, you may submit such requests by contacting us at info@hopefunding.com. We do not sell personally identifiable information, and we will not sell personally identifiable information except as described in this Policy or with your consent. If we ever decide to sell personally identifiable information, we will provide you with notice and a right to opt-out of such sale.

    \r\n\r\n

    VII. THE IMPORTANCE OF PROTECTING OUR SITE, SERVICES AND THE INFORMATION THEY SAFEGUARD.

    \r\n\r\n

    Our Site and many of our Services are protected by technical measures intended to safeguard the confidentiality, integrity and accessibility of sensitive information our Users store and share on our Site. Further, certain regulations require us to investigate potential or suspected threats on our Services or the confidentiality, integrity or availability of the information they safeguard. Accordingly, we may preserve, use and disclose information – including personal and non-personal information – when we have a good faith belief it is necessary or advisable to:

    \r\n
      \r\n
    1. Detect, prevent and address potential or suspected: threats on our Site or Services or the confidentiality, integrity or availability of any information they house; fraud and other illegal activity; or violations of our User Agreements or Terms of Use; and
    2. \r\n
    3. To protect ourselves, you and third parties.
    4. \r\n
    \r\n

    We may also preserve, use and disclose such information in response to a search warrant, court order, subpoena, judicial proceeding or other legal process if we have a good faith belief that the law requires us to do so. Such legal process may prohibit us from notifying the Users or other individuals or entities identified by such information or take such other actions as would otherwise be a violation of your User Agreement or this Privacy Policy. When we preserve information pursuant to this section, it may be for extended periods of time, as we in good faith believe are necessary or appropriate under the circumstances, and may include the preservation of information from accounts that have been disabled.

    \r\n\r\n

    VIII. SECURITY.

    \r\n\r\n

    We endeavor to make security of our Site and Services and the information they collect, store, process and transmit a top priority. To prevent unauthorized access, maintain data accuracy, and ensure the appropriate use of the information we collect, we deploy a wide range of technical, physical and administrative safeguards, including: Secure Socket Layer (SSL) encryption, firewalls, system alerts and other information system security technologies; housing data in secure facilities that restrict physical and network access; and regular evaluation and enhancement of our information technology systems, facilities, and information collection, storage and processing practices. It is important to remember, however, that no system can guarantee 100% security at all times. Accordingly, we cannot guarantee the security of information stored on or transmitted to or from our Site and Services.

    \r\n\r\n

    Steps You Can Take

    \r\n\r\n

    If we learn of a security vulnerability or risk, we may attempt to notify you and provide information on protective measures you may take. There are, however, some precautions that you can proactively take to improve your system security and reduce the likelihood of unintended disclosure of personal information:

    \r\n
      \r\n
    1. Install malware detection programs that regularly scan your system and incoming traffic for malicious code – such as computer viruses, worms, Trojan Horses and spyware. Because viruses and malware are continuously created and modified, regular malware protection software typically requires frequent updates.
    2. \r\n
    3. Use a firewall to prevent unauthorized access to your Device.
    4. \r\n
    5. Because malware often targets vulnerabilities in existing operating systems, browsers, plug-ins and other programs, software vendors frequently update their products with security patches to guard against known or commonly exploited vulnerabilities. Vendors often try to alert their users and recommend immediate installation of these security patches.
    6. \r\n
    7. Use a strong password using a combination of letters and numbers that are not easily guessed. Do not share your password with others.
    8. \r\n
    9. If you use a shared Device, always close all active programs and log out before leaving it unattended.
    10. \r\n
    11. Avoid using a public wireless network, if possible. If you do use a public network, use the most restrictive wireless network settings on your Device.
    12. \r\n
    13. If you use file-sharing programs, be sure to restrict all other folders or directories to “no share.”
    14. \r\n
    15. Be very cautious with any email requesting you to share personal information. On websites, look for the lock symbol on or near your browser’s address bar which signifies a secure website before supplying personal information.
    16. \r\n
    17. When participating in one of our communities, blogs, forums, surveys or other open communication platforms, exercise care in selecting what information you share, particularly personal or financial information.
    18. \r\n
    \r\n

    IX. CHILDREN UNDER 13.

    \r\n

    Our Site and Services are not intended for or designed to attract children under the age of 13, and we do not knowingly collect personal information from such children. If we learn that we have inadvertently obtained personal information from a child under the age of 13, we will delete that information as soon as practicable. If you become aware that your child has provided us with personal information without your consent, please contact us immediately at the contact information below. Should this Privacy Policy change, we would comply with the Children’s Online Privacy Protection Act, which requires us to notify and obtain consent from a parent or guardian before we collect, use and disclose the personal information of children who are under 13 years of age.

    \r\n\r\n

    Without limiting the generality of the foregoing, our Site and Services do allow Users above the age of 18 years old – such as parents and guardians – to submit personal information about others, including minors. Such Users assume full responsibility over their submission, use and transmission of such information.

    \r\n

    X. UNITED STATES ONLY.

    \r\n

    Access to our Site and Services are intended for Users in the United States (“US”). You may not use our Site or Services in any jurisdiction where offering, accessing or using our Site or Services would be illegal or unlawful. If you are located outside of the US, please note that the information you submit to us will be transferred to the US. By using our Site and/or Services, you consent to this transfer. You also consent to the transfer to and processing of any personal information by us or any of the other parties described in the section “Sharing of Information” above, whether located in the US or any other countries, for the purposes described in this Privacy Policy, or for any other specific purposes to which you consent. If you are located in a country other than the US, you should note that, at present, the laws of the US and certain other countries have not been approved by the European Commission or privacy authorities in certain other countries as providing “adequate\r\n protection” for personal information within the meaning of the European Union General Data Protection Regulation or applicable laws of other countries.

    \r\n

    XI. THIRD PARTY SERVICES.

    \r\n

    This Privacy Policy applies only to our Site and Services. It does not apply to services offered by third parties, including websites and other online services that our Site or Services may display links to or advertisements for. When you click on such links or advertisements, you will be visiting websites or interactive services operated by third parties, who have their own information collection practices and may also collect information through the use of tracking tools, such as cookies, web beacons, server logs and the like. When you click on or interact with an ad appearing in our Site or Services, the advertiser or sponsor may infer that you meet targeting criteria that they may have used in connection with the sponsoring such ad. This may lead to similar ads being targeted to you on our Site or Services or elsewhere. We do not have control over how any third party gathers or uses information, so you should review their privacy policies to learn of their information gathering\r\n and handling practices.

    \r\n\r\n

    XII. CHANGES TO THIS POLICY.

    \r\n\r\n

    We continue to improve and enhance our Site and Services. Some of these improvements and enhancements may result in changes to this Privacy Policy. We will post such changes along on this page, and if the changes are significant, we will provide a more prominent notice. Because our Privacy Policy can change at any time, we encourage you to reread it periodically to see if there have been any changes that affect you. We will post the date that the Privacy Policy was “Last Updated” for your reference. Any changes to the Privacy Policy will go into effect as soon as they are posted to the Site. If you disagree with any changes to this Privacy Policy and do not wish your information to be subject to the revised Privacy Policy, you will need to deactivate your account before the new Privacy Policy becomes effective. Your use of our Site or Services following any such change constitutes your agreement that all information collected from or about you through our Site or Services after the\r\n revised Privacy Policy is posted will be subject to the terms of the revised Privacy Policy.

    \r\n\r\n

    XIII. VIEWING, UPDATING AND DEACTIVATING INFORMATION.

    \r\n\r\n

    Our Site and Services aim to provide you with access to the personal information you submit and the means to update it. This can be accomplished by logging into our Site or Services or contacting us using the contact information below. Under certain circumstances, we may ask you to verify your identity before your request is processed. This will be done free of charge except where it would require a disproportionate effort. We may reject requests that are unreasonably repetitive, require disproportionate technical effort (for example, developing a new system or fundamentally changing an existing practice), risk the privacy of others, or would be extremely impractical (for instance, requests concerning information residing on backup tapes).

    \r\n\r\n

    If you desire to deactivate your account please contact us using the contact information below. Upon your request, your account will be deactivated and your personal information will be securely archived. We retain archived information for a period of five years (or longer as permitted by law) as necessary to comply with legal obligations, resolve disputes and enforce our agreements and other authorized uses under this Privacy Policy.

    \r\n\r\n

    You should also be aware that we store indefinitely non-personal information, including Engagement Data and de-identified personal information, as well as all information that you have shared on any of our public forums, blogs, communities, surveys and the like.

    \r\n\r\n

    Should you have any questions or complaints about the practices described in this Privacy Policy, you may contact us at:

    \r\n

    \r\n Hope Funding, LLC

    \r\n P.O. Box 1501

    \r\n Evans, Georgia 30809

    \r\n USA

    \r\n Telephone: (706) 204-9011\r\n

    \r\n\r\n

    XIV. California Privacy Rights

    \r\n\r\n

    Under the California Consumer Privacy Act, California residents have the right to:

    \r\n
      \r\n
    • Request that a business delete any personal information about the consumer which the business has collected from the consumer.
    • \r\n
    • Request that a business that collects personal information about the consumer disclose to the consumer, free of charge, the following:\r\n
        \r\n
      • The categories of personal information that it has collected about that consumer.
      • \r\n
      • The categories of sources from which the personal information is collected.
      • \r\n
      • The business or commercial purpose for collecting or selling personal information.
      • \r\n
      • The categories of third parties with whom the business shares personal information.
      • \r\n
      • The specific pieces of personal information it has collected about that consumer.
      • \r\n
      \r\n
    • \r\n
    • Request that a business that sells the consumer’s personal information, or that discloses it for a business purpose disclose, free of charge, to the consumer:\r\n
        \r\n
      • The categories of personal information that the business collected about the consumer.
      • \r\n
      • The categories of personal information that the business sold about the consumer and the categories of third parties to whom the personal was sold, by category or categories of personal information for each third party to whom the personal information was sold.
      • \r\n
      • The categories of personal information that the business disclosed about the consumer for a business purpose.
      • \r\n
      \r\n
    • \r\n
    • Direct a business that sells personal information about the consumer to third parties not to sell the consumer’s personal information.
    • \r\n
    \r\n

    You may submit such requests by contacting us at info@hopefunding.com or call (706) 204-9011.  When calling you will be required to verify your identity by confirming three of the following pieces of information: name; telephone number; city and state; ZIP code; attorney name or law firm; Case ID or date of loss.

    \r\n\r\n

    You may also designate an authorized agent to make such requests on your behalf by calling (706) 204-9011.

    \r\n\r\n

    We will not discriminate against you because you exercise any of your California privacy rights.

    \r\n
    \r\n )\r\n}\r\n","import s from './TermsAndConditions.module.scss'\r\nimport { Container } from '@material-ui/core'\r\nexport default function TermsAndConditions() {\r\n\r\n return (\r\n \r\n

    Website Terms of Use

    \r\n

    Last Modified: February 23, 2023

    \r\n

    Acceptance of the Terms of Use

    \r\n

    These terms of use are entered into by and between You and Hope Funding (“Company“, “we” or “us“). The following terms and conditions, together with any documents they expressly incorporate by reference (collectively, these “Terms of Use“), govern your access to and use of hopefunding.com, including any content, functionality and services offered on or through hopefunding.com (the “Website“), whether as a guest or a registered user.

    \r\n

    Please read the Terms of Use carefully before you start to use the Website. By using the Website, you accept and agree to be bound and abide by these Terms of Use. If you do not want to agree to these Terms of Use, you must not access or use the Website.

    \r\n

    This Website is offered and available to users who are 18 years of age or older. By using this Website, you represent and warrant that you are of legal age to form a binding contract with the Company and meet all the foregoing eligibility requirements. If you do not meet all these requirements, you must not access or use the Website.

    \r\n

    Hope Funding makes no representation that lawsuit financing information or other material on this site is appropriate or available for in any State, jurisdiction, or territory where Hope Funding does not conduct business, and access to this site from any State, jurisdiction, or territory where its content is illegal is prohibited. If you choose to access this site from any State, jurisdiction, or territory where Hope Funding does not conduct business, you do so on your own initiative and are responsible for compliance with applicable local laws, including those for lawsuit financing, if any.

    \r\n

    Changes to the Terms of Use

    \r\n

    We may revise and update these Terms of Use from time to time in our sole discretion. All changes are effective immediately when we post them. However, any changes to the dispute resolution provisions set forth in Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual notice prior to the date the change is posted on the Website.

    \r\n

    Your continued use of the Website following the posting of revised Terms of Use means that you accept and agree to the changes. You are expected to check this page each time you access this Website so you are aware of any changes, as they are binding on you.

    \r\n

    Accessing the Website and Account Security

    \r\n

    We reserve the right to withdraw or amend this Website, and any service or material we provide on the Website, in our sole discretion without notice. We will not be liable if for any reason all or any part of the Website is unavailable at any time or for any period. From time to time, we may restrict access to some parts of the Website, or the entire Website, to users.

    \r\n

    You are responsible for:

    \r\n
      \r\n
    • Making all arrangements necessary for you to have access to the Website.
    • \r\n
    • Ensuring that all persons who access the Website through your internet connection are aware of these Terms of Use and comply with them.
    • \r\n
    \r\n

    To access the Website or some of the resources it offers, you may be asked to provide certain registration details or other information. It is a condition of your use of the Website that all the information you provide on the Website is correct, current and complete. You agree that all information you provide to register with this Website or otherwise, including but not limited to through the use of any interactive features on the Website, is governed by our Privacy Policy, and you consent to all actions we take with respect to your information consistent with our Privacy Policy.

    \r\n

    If you choose, or are provided with, a user name, password or any other piece of information as part of our security procedures, you must treat such information as confidential, and you must not disclose it to any other person or entity. You also acknowledge that your account is personal to you and agree not to provide any other person with access to this Website or portions of it using your user name, password or other security information. You agree to notify us immediately of any unauthorized access to or use of your user name or password or any other breach of security. You also agree to ensure that you exit from your account at the end of each session. You should use particular caution when accessing your account from a public or shared computer so that others are not able to view or record your password or other personal information.

    \r\n

    We have the right to disable any user name, password or other identifier, whether chosen by you or provided by us, at any time in our sole discretion for any or no reason, including if, in our opinion, you have violated any provision of these Terms of Use.

    \r\n

    Intellectual Property Rights

    \r\n

    The Website and its entire contents, features and functionality (including but not limited to all information, software, text, displays, images, video and audio, and the design, selection and arrangement thereof), are owned by the Company, its licensors or other providers of such material and are protected by United States and international copyright, trademark, patent, trade secret and other intellectual property or proprietary rights laws.

    \r\n

    These Terms of Use permit you to use the Website for your personal, non-commercial use only. You must not reproduce, distribute, modify, create derivative works of, publicly display, publicly perform, republish, download, store or transmit any of the material on our Website, except as follows:

    \r\n
      \r\n
    • Your computer may temporarily store copies of such materials in RAM incidental to your accessing and viewing those materials.
    • \r\n
    • You may store files that are automatically cached by your Web browser for display enhancement purposes.
    • \r\n
    • You may print or download one copy of a reasonable number of pages of the Website for your own personal, non-commercial use and not for further reproduction, publication or distribution.
    • \r\n
    • If we provide desktop, mobile or other applications for download, you may download a single copy to your computer or mobile device solely for your own personal, non-commercial use, provided you agree to be bound by our end user license agreement for such applications.
    • \r\n
    • If we provide social media content with certain content, you may take such actions as are enabled by such features.
    • \r\n
    \r\n

    You must not:

    \r\n
      \r\n
    • Modify copies of any materials from this site.
    • \r\n
    • Use any illustrations, photographs, video or audio sequences or any graphics separately from the accompanying text.
    • \r\n
    • Delete or alter any copyright, trademark or other proprietary rights notices from copies of materials from this site.
    • \r\n
    \r\n

    You must not access or use for any commercial purposes any part of the Website or any services or materials available through the Website.

    \r\n

    If you print, copy, modify, download or otherwise use or provide any other person with access to any part of the Website in breach of the Terms of Use, your right to use the Website will cease immediately and you must, at our option, return or destroy any copies of the materials you have made. No right, title or interest in or to the Website or any content on the Website is transferred to you, and all rights not expressly granted are reserved by the Company. Any use of the Website not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate copyright, trademark and other laws.

    \r\n

    Trademarks

    \r\n

    The Company name, the terms HOPE, Hope Funding, ADVANCE WITH HOPE, Hope Funding ADVANCE WITH HOPE (STYLIZED), Once you Choose Hope Anythings Possible, and all related names, logos, product and service names, designs and slogans are trademarks of the Company or its affiliates or licensors. You must not use such marks without the prior written permission of the Company. All other names, logos, product and service names, designs and slogans on this Website are the trademarks of their respective owners.

    \r\n

    Prohibited Uses

    \r\n

    You may use the Website only for lawful purposes and in accordance with these Terms of Use. You agree not to use the Website:

    \r\n
      \r\n
    • In any way that violates any applicable federal, state, local or international law or regulation (including, without limitation, any laws regarding the export of data or software to and from the US or other countries).
    • \r\n
    • For the purpose of exploiting, harming or attempting to exploit or harm minors in any way by exposing them to inappropriate content, asking for personally identifiable information or otherwise.
    • \r\n
    • To send, knowingly receive, upload, download, use or re-use any material which does not comply with the Content Standards set out in these Terms of Use.
    • \r\n
    • To transmit, or procure the sending of, any advertising or promotional material without our prior written consent, including any “junk mail”, “chain letter” or “spam” or any other similar solicitation.
    • \r\n
    • To impersonate or attempt to impersonate the Company, a Company employee, another user or any other person or entity (including, without limitation, by using e-mail addresses associated with any of the foregoing).
    • \r\n
    • To engage in any other conduct that restricts or inhibits anyone’s use or enjoyment of the Website, or which, as determined by us, may harm the Company or users of the Website or expose them to liability.
    • \r\n
    \r\n

    Additionally, you agree not to:

    \r\n
      \r\n
    • Use the Website in any manner that could disable, overburden, damage, or impair the site or interfere with any other party’s use of the Website, including their ability to engage in real time activities through the Website.
    • \r\n
    • Use any robot, spider or other automatic device, process or means to access the Website for any purpose, including monitoring or copying any of the material on the Website.
    • \r\n
    • Use any manual process to monitor or copy any of the material on the Website or for any other unauthorized purpose without our prior written consent.
    • \r\n
    • Use any device, software or routine that interferes with the proper working of the Website.
    • \r\n
    • Introduce any viruses, trojan horses, worms, logic bombs or other material which is malicious or technologically harmful.
    • \r\n
    • Attempt to gain unauthorized access to, interfere with, damage or disrupt any parts of the Website, the server on which the Website is stored, or any server, computer or database connected to the Website.
    • \r\n
    • Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.
    • \r\n
    • Otherwise attempt to interfere with the proper working of the Website.
    • \r\n
    \r\n

    User Contributions

    \r\n

    The Website may contain message boards, chat rooms, personal web pages or profiles, forums, bulletin boards, and other interactive features (collectively, “Interactive Services“) that allow users to post, submit, publish, display or transmit to other users or other persons (hereinafter, “post“) content or materials (collectively, “User Contributions“) on or through the Website.

    \r\n

    All User Contributions must comply with the Content Standards set out in these Terms of Use.

    \r\n

    Any User Contribution you post to the site will be considered non-confidential and non-proprietary. By providing any User Contribution on the Website, you grant us and our affiliates and service providers, and each of their and our respective licensees, successors and assigns the right to use, reproduce, modify, perform, display, distribute and otherwise disclose to third parties any such material for any purpose.

    \r\n

    You represent and warrant that:

    \r\n
      \r\n
    • You own or control all rights in and to the User Contributions and have the right to grant the license granted above to us and our affiliates and service providers, and each of their and our respective licensees, successors and assigns.
    • \r\n
    • All of your User Contributions do and will comply with these Terms of Use.
    • \r\n
    \r\n

    You understand and acknowledge that you are responsible for any User Contributions you submit or contribute, and you, not the Company, have fully responsibility for such content, including its legality, reliability, accuracy and appropriateness.

    \r\n

    We are not responsible, or liable to any third party, for the content or accuracy of any User Contributions posted by you or any other user of the Website.

    \r\n

    Monitoring and Enforcement; Termination

    \r\n

    We have the right to:

    \r\n
      \r\n
    • Remove or refuse to post any User Contributions for any or no reason in our sole discretion.
    • \r\n
    • Take any action with respect to any User Contribution that we deem necessary or appropriate in our sole discretion, including if we believe that such User Contribution violates the Terms of Use, including the Content Standards, infringes any intellectual property right or other right of any person or entity, threatens the personal safety of users of the Website or the public or could create liability for the Company.
    • \r\n
    • Disclose your identity or other information about you to any third party who claims that material posted by you violates their rights, including their intellectual property rights or their right to privacy.
    • \r\n
    • Take appropriate legal action, including without limitation, referral to law enforcement, for any illegal or unauthorized use of the Website.
    • \r\n
    • Terminate or suspend your access to all or part of the Website for any violation of these Terms of Use.
    • \r\n
    \r\n

    Without limiting the foregoing, we have the right to fully cooperate with any law enforcement authorities or court order requesting or directing us to disclose the identity or other information of anyone posting any materials on or through the Website. YOU WAIVE AND HOLD HARMLESS THE COMPANY AND ITS AFFILIATES, LICENSEES AND SERVICE PROVIDERS FROM ANY CLAIMS RESULTING FROM ANY ACTION TAKEN BY ANY OF THE FOREGOING PARTIES DURING OR AS A RESULT OF ITS INVESTIGATIONS AND FROM ANY ACTIONS TAKEN AS A CONSEQUENCE OF INVESTIGATIONS BY EITHER SUCH PARTIES OR LAW ENFORCEMENT AUTHORITIES.

    \r\n

    However, we do not undertake to review all material before it is posted on the Website and cannot ensure prompt removal of objectionable material after it has been posted. Accordingly, we assume no liability for any action or inaction regarding transmissions, communications or content provided by any user or third party. We have no liability or responsibility to anyone for performance or nonperformance of the activities described in this section.

    \r\n

    Content Standards

    \r\n

    These content standards apply to any and all User Contributions and use of Interactive Services. User Contributions must in their entirety comply with all applicable federal, state, local and international laws and regulations. Without limiting the foregoing, User Contributions must not:

    \r\n
      \r\n
    • Contain any material which is defamatory, obscene, indecent, abusive, offensive, harassing, violent, hateful, inflammatory or otherwise objectionable.
    • \r\n
    • Promote sexually explicit or pornographic material, violence, or discrimination based on race, sex, religion, nationality, disability, sexual orientation or age.
    • \r\n
    • Infringe any patent, trademark, trade secret, copyright or other intellectual property or other rights of any other person.
    • \r\n
    • Violate the legal rights (including the rights of publicity and privacy) of others or contain any material that could give rise to any civil or criminal liability under applicable laws or regulations or that otherwise may be in conflict with these Terms of Use and our Privacy Policy.
    • \r\n
    • Be likely to deceive any person.
    • \r\n
    • Promote any illegal activity, or advocate, promote or assist any unlawful act.
    • \r\n
    • Cause annoyance, inconvenience or needless anxiety or be likely to upset, embarrass, alarm or annoy any other person.
    • \r\n
    • Impersonate any person, or misrepresent your identity or affiliation with any person or organization.
    • \r\n
    • Involve commercial activities or sales, such as contests, sweepstakes and other sales promotions, barter or advertising.
    • \r\n
    • Give the impression that they emanate from or are endorsed by us or any other person or entity, if this is not the case.
    • \r\n
    \r\n

    Copyright Infringement

    \r\n

    If you believe that any User Contributions violate your copyright, please contact us to provide notice of copyright infringement. It is the policy of the Company to terminate the user accounts of repeat infringers.

    \r\n

    Reliance on Information Posted

    \r\n

    The information presented on or through the Website is made available solely for general information purposes. We do not warrant the accuracy, completeness or usefulness of this information. Any reliance you place on such information is strictly at your own risk. We disclaim all liability and responsibility arising from any reliance placed on such materials by you or any other visitor to the Website, or by anyone who may be informed of any of its contents.

    \r\n

    This Website may include content provided by third parties, including materials provided by other users, bloggers and third-party licensors, syndicators, aggregators and/or reporting services. All statements and/or opinions expressed in these materials, and all articles and responses to questions and other content, other than the content provided by the Company, are solely the opinions and the responsibility of the person or entity providing those materials. These materials do not necessarily reflect the opinion of the Company. We are not responsible, or liable to you or any third party, for the content or accuracy of any materials provided by any third parties.

    \r\n

    Changes to the Website

    \r\n

    We may update the content on this Website from time to time, but its content is not necessarily complete or up-to-date. Any of the material on the Website may be out of date at any given time, and we are under no obligation to update such material.

    \r\n

    Information About You and Your Visits to the Website

    \r\n

    All information we collect on this Website is subject to our Privacy Policy. By using the Website, you consent to all actions taken by us with respect to your information in compliance with the Privacy Policy.

    \r\n

    Linking to the Website and Social Media Features

    \r\n

    You may link to our homepage, provided you do so in a way that is fair and legal and does not damage our reputation or take advantage of it, but you must not establish a link in such a way as to suggest any form of association, approval or endorsement on our part

    \r\n

    This Website may provide certain social media features that enable you to:

    \r\n
      \r\n
    • Link from your own or certain third-party websites to certain content on this Website.
    • \r\n
    • Send e-mails or other communications with certain content, or links to certain content, on this Website.
    • \r\n
    • Cause limited portions of content on this Website to be displayed or appear to be displayed on your own or certain third-party websites.
    • \r\n
    \r\n

    You may use these features solely as they are provided by us, solely with respect to the content they are displayed with and otherwise in accordance with any additional terms and conditions we provide with respect to such features. Subject to the foregoing, you must not:

    \r\n
      \r\n
    • Establish a link from any website that is not owned by you.
    • \r\n
    • Cause the Website or portions of it to be displayed, or appear to be displayed by, for example, framing, deep linking or in-line linking, on any other site.
    • \r\n
    • Link to any part of the Website other than the homepage.
    • \r\n
    • Otherwise take any action with respect to the materials on this Website that is inconsistent with any other provision of these Terms of Use.
    • \r\n
    \r\n

    The website from which you are linking, or on which you make certain content accessible, must comply in all respects with the Content Standards set out in these Terms of Use.

    \r\n

    You agree to cooperate with us in causing any unauthorized framing or linking immediately to cease. We reserve the right to withdraw linking permission without notice.

    \r\n

    We may disable all or any social media features and any links at any time without notice in our discretion.

    \r\n

    Links from the Website

    \r\n

    If the Website contains links to other sites and resources provided by third parties, these links are provided for your convenience only. This includes links contained in advertisements, including banner advertisements and sponsored links. We have no control over the contents of those sites or resources and accept no responsibility for them or for any loss or damage that may arise from your use of them. If you decide to access any of the third-party websites linked to this Website, you do so entirely at your own risk and subject to the terms and conditions of use for such websites.

    \r\n

    Geographic Restrictions

    \r\n

    The owner of the Website is based in the State of Georgia in the United States. We provide this Website for use only by persons located in the United States. We make no claims that the Website or any of its content is accessible or appropriate outside of the United States. Access to the Website may not be legal by certain persons or in certain countries. If you access the Website from outside the United States, you do so on your own initiative and are responsible for compliance with local laws.

    \r\n

    Disclaimer of Warranties

    \r\n

    You understand that we cannot and do not guarantee or warrant that files available for downloading from the internet or the Website will be free of viruses or other destructive code. You are responsible for implementing sufficient procedures and checkpoints to satisfy your particular requirements for anti-virus protection and accuracy of data input and output, and for maintaining a means external to our site for any reconstruction of any lost data. WE WILL NOT BE LIABLE FOR ANY LOSS OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA OR OTHER PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.

    \r\n

    YOUR USE OF THE WEBSITE, ITS CONTENT AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK. THE WEBSITE, ITS CONTENT AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, WITHOUT ANY WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY OR AVAILABILITY OF THE WEBSITE. WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT THE WEBSITE, ITS CONTENT OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.

    \r\n

    THE COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR PARTICULAR PURPOSE.

    \r\n

    THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.

    \r\n

    Limitation on Liability

    \r\n

    IN NO EVENT WILL THE COMPANY, ITS AFFILIATES OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES, AGENTS, OFFICERS OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND, UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING, EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA, AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT OR OTHERWISE, EVEN IF FORESEEABLE.

    \r\n

    THE FOREGOING DOES NOT AFFECT ANY LIABILITY WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.

    \r\n

    Indemnification

    \r\n

    You agree to defend, indemnify and hold harmless the Company, its affiliates, licensors and service providers, and its and their respective officers, directors, employees, contractors, agents, licensors, suppliers, successors and assigns from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses or fees (including reasonable attorneys’ fees) arising out of or relating to your violation of these Terms of Use or your use of the Website, including, but not limited to, your User Contributions, any use of the Website’s content, services and products other than as expressly authorized in these Terms of Use or your use of any information obtained from the Website.

    \r\n

    Governing Law and Jurisdiction

    \r\n

    All matters relating to the Website and these Terms of Use and any dispute or claim arising therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the internal laws of the State of Georgia without giving effect to any choice or conflict of law provision or rule (whether of the State of Georgia or any other jurisdiction).

    \r\n

    Any legal suit, action or proceeding arising out of, or related to, these Terms of Use or the Website shall be instituted exclusively in the federal courts of the United States or the courts of the State of Georgia in each case located in the County of Richmond County, Georgia. You waive any and all objections to the exercise of jurisdiction over you by such courts and to venue in such courts.

    \r\n

    Arbitration

    \r\n

    At Company’s sole discretion, it may require You to submit any disputes arising from the use of these Terms of Use or the Website, including disputes arising from or concerning their interpretation, violation, invalidity, non-performance, or termination, to final and binding arbitration under the Rules of Arbitration of the American Arbitration Association applying Georgia law.

    \r\n

    Limitation on Time to File Claims

    \r\n

    ANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES, OTHERWISE, SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.

    \r\n

    Waiver and Severability

    \r\n

    No waiver of by the Company of any term or condition set forth in these Terms of Use shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of the Company to assert a right or provision under these Terms of Use shall not constitute a waiver of such right or provision.

    \r\n

    If any provision of these Terms of Use is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of the Terms of Use will continue in full force and effect.

    \r\n

    Entire Agreement

    \r\n

    The Terms of Use and our Privacy Policy constitute the sole and entire agreement between you and Hope Funding with respect to the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.

    \r\n

    Your Comments and Concerns

    \r\n

    This website is operated by Hope Funding, PO Box 1501, Evans, GA 30809.

    \r\n

    All other feedback, comments, requests for technical support, notices of copyright infringement claims and other communications relating to the Website should be submitted via the Contact Us page.

    \r\n\r\n
    \r\n )\r\n}\r\n","import { useEffect } from \"react\"\r\nimport { history } from \"../../../App\"\r\nimport getCookie from \"../../scripts/getCookie\"\r\n\r\nexport default function Home() {\r\n let currentUserId: string | undefined = getCookie(\"currentUserId\")\r\n\r\n useEffect(() => {\r\n history.push(`/user-profile?${currentUserId}`)\r\n }, [])\r\n return (\r\n
    \r\n )\r\n}\r\n","import {\r\n Button,\r\n Container,\r\n createStyles,\r\n makeStyles, Paper, Table, TableBody,\r\n TableCell,\r\n TableContainer, TableHead,\r\n TableRow,\r\n TextField,\r\n Theme,\r\n withStyles\r\n} from '@material-ui/core'\r\nimport s from './MyLawFirmsContracts.module.scss'\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport actionsWithApi from \"../../customHooks/actionsWithApi\";\r\nimport { URL_FOR_API } from \"../../constants/constants\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport Preloader from \"../shared/Preloader/Preloader\";\r\nimport dateFormatting from \"../../scripts/dateFormatting\";\r\nimport getCookie from \"../../scripts/getCookie\";\r\nimport { setNotificationInfo, toggleNotification } from \"../../actions/actions\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n }\r\n }),\r\n)(TableCell)\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n btn: {\r\n display: \"block\",\r\n margin: \"20px auto\",\r\n \"&:hover\": {\r\n border: \"1px solid #3062A0\"\r\n }\r\n },\r\n formControl: {\r\n width: 200,\r\n marginRight: 20,\r\n marginBottom: 20,\r\n \"&:last-child\": {\r\n marginRight: 0\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"100%\",\r\n marginRight: 0\r\n }\r\n },\r\n }),\r\n);\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n }),\r\n)(TableRow)\r\nexport default function MyLawFirmsContracts() {\r\n const classes = useStyles()\r\n const [casesArr, setCasesArr] = useState()\r\n const [pageNumber, setPageNumber] = useState(1)\r\n const [viewMoreBtnIsVisible, setViewMoreBtnIsVisible] = useState(true)\r\n const [userLawFirmId, setUserLawFirmId] = useState(null)\r\n const [loaderIsActive, setLoaderIsActive] = useState(false)\r\n const [errorOccurred, setErrorOccurred] = useState(false)\r\n const [errorMessage, setErrorMessage] = useState('')\r\n\r\n const currentUserId = getCookie(\"currentUserId\")\r\n const dispatch = useDispatch()\r\n const searchTimerRef = useRef(null);\r\n\r\n async function getCases(pageNumber: number, userLawFirmId: number | null, isQueryForFiltering: boolean, searchQuery: string) {\r\n if (!userLawFirmId) return\r\n\r\n if (!isQueryForFiltering) setLoaderIsActive(true);\r\n\r\n try {\r\n let response = await actionsWithApi(\r\n \"get\",\r\n URL_FOR_API + `/api/v1/Contract/all/${userLawFirmId}?PageNumber=${pageNumber}&PageSize=10&sortingType=desc&userName=${searchQuery}`,\r\n null\r\n )\r\n let newContractsArr = [...response.data]\r\n let updatedContractsArr\r\n\r\n newContractsArr.length < 10 ? setViewMoreBtnIsVisible(false) : setViewMoreBtnIsVisible(true);\r\n pageNumber === 1 ? updatedContractsArr = newContractsArr : updatedContractsArr = casesArr.concat(newContractsArr)\r\n setCasesArr(updatedContractsArr)\r\n }\r\n catch (error) {\r\n console.error(error.message)\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n setErrorOccurred(true)\r\n setErrorMessage(error.message)\r\n }\r\n finally {\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n\r\n async function getUserData(): Promise {\r\n setLoaderIsActive(true);\r\n\r\n try {\r\n let response = await actionsWithApi(\"GET\", URL_FOR_API + `/api/v1/User/${currentUserId}`, null)\r\n const userLawFirmId = response.data.lawFirms.find((lawFirm: any) => (lawFirm.present))?.lawFirmUserId;\r\n setUserLawFirmId(userLawFirmId)\r\n return userLawFirmId\r\n }\r\n catch (error) {\r\n console.error(error.message)\r\n dispatch(setNotificationInfo({ message: error.message, severity: \"error\" }))\r\n dispatch(toggleNotification(true))\r\n setErrorOccurred(true)\r\n setErrorMessage(error.message)\r\n }\r\n finally {\r\n setLoaderIsActive(false)\r\n }\r\n }\r\n\r\n const handleSearchInput = async (searchQuery: string): Promise => {\r\n if (searchTimerRef.current) {\r\n clearTimeout(searchTimerRef.current)\r\n }\r\n\r\n searchTimerRef.current = setTimeout(() => {\r\n setPageNumber(1)\r\n getCases(1, userLawFirmId, true, searchQuery)\r\n }, 500)\r\n }\r\n\r\n const openLink = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getCases(pageNumber, userLawFirmId, true, '')\r\n }, [pageNumber])\r\n\r\n useEffect(() => {\r\n getUserData()\r\n .then((userLawFirmId) => {\r\n if (userLawFirmId) {\r\n getCases(pageNumber, userLawFirmId, false, '')\r\n }\r\n }\r\n )\r\n }, [])\r\n\r\n if (errorOccurred) {\r\n return (\r\n \r\n

    { errorMessage ? errorMessage : 'Something went wrong while receiving data from the server' }

    \r\n
    \r\n )\r\n } else if (loaderIsActive) {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n } else if (!userLawFirmId) {\r\n return (\r\n \r\n

    User does not have a current law firm

    \r\n
    \r\n )\r\n }\r\n\r\n else {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n {casesArr &&\r\n \r\n \r\n \r\n \r\n Case ID\r\n Date Created\r\n Status\r\n Amount Due\r\n Days Until Rate Increase\r\n Paid Off\r\n Client\r\n Attorney\r\n Law Firm\r\n \r\n \r\n \r\n {casesArr && casesArr.map((caseItem: any, index: number) => (\r\n \r\n {caseItem.caseId} \r\n {dateFormatting(caseItem?.contractStatus[0].dateChange)}\r\n {caseItem?.contractStatus[caseItem?.contractStatus.length - 1].contractsStatus}\r\n {caseItem.totalDue ? \"$\" + caseItem.totalDue : \"\"}\r\n {caseItem.daysBeforePriceIncrease && caseItem.daysBeforePriceIncrease !== 0 && caseItem.daysBeforePriceIncrease + \" days left\"}\r\n ${caseItem.paidOff}\r\n \r\n \r\n {caseItem.contractClientDTO.user?.firstName + \" \" + caseItem.contractClientDTO.user?.lastName}\r\n \r\n \r\n \r\n {caseItem.contractAttorneyDTO.length > 0 &&\r\n \r\n {caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.firstName + \" \" + caseItem.contractAttorneyDTO[caseItem.contractAttorneyDTO?.length - 1]?.user?.lastName}\r\n \r\n }\r\n {caseItem.contractAttorneyDTO.length === 0 &&\r\n No Responsible Attorney\r\n }\r\n \r\n \r\n {caseItem.contractLawFirmDTO.length > 0 &&\r\n \r\n {caseItem.contractLawFirmDTO[caseItem.contractLawFirmDTO?.length - 1]?.user?.firstName}\r\n \r\n }\r\n {caseItem.contractLawFirmDTO.length === 0 &&\r\n No Responsible Law Firm\r\n }\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n }\r\n\r\n {viewMoreBtnIsVisible && casesArr &&\r\n \r\n }\r\n\r\n {!casesArr &&\r\n

    The current user's law firm has no contracts

    \r\n }\r\n
    \r\n )\r\n }\r\n}","import { Route, Switch } from \"react-router-dom\"\r\nimport { Router } from 'react-router-dom'\r\nimport createHistory from 'history/createBrowserHistory'\r\nimport CreateContractAttorney from \"./app/components/CreateContractAttorney/CreateContractAttorney\"\r\nimport EditUser from \"./app/components/EditUser/EditUser\"\r\nimport Login from \"./app/components/Login/Login\"\r\nimport Registration from \"./app/components/Registration/Registration\"\r\nimport Header from \"./app/components/shared/Header/Header\"\r\nimport ContractPage from \"./app/components/ContractPage/ContractPage\"\r\nimport UserProfile from \"./app/components/UserProfile/UserProfile\"\r\nimport ContractHistory from \"./app/components/ContractHistory/ContractHistory\"\r\nimport FindUser from \"./app/components/FindUser/FindUser\"\r\nimport ResetPassword from \"./app/components/ResetPassword/ResetPassword\"\r\nimport ResetPasswordSuccess from \"./app/components/ResetPasswordSuccess/ResetPasswordSuccess\"\r\nimport Footer from \"./app/components/shared/Footer/Footer\"\r\nimport Error404Page from \"./app/components/Error404Page/Error404Page\"\r\nimport Reports from \"./app/components/Reports/Reports\"\r\nimport InformationPage from \"./app/components/shared/InformationPage/InformationPage\"\r\nimport UsersAdminPage from \"./app/components/UsersAdminPage/UsersAdminPage\"\r\nimport EditContract from \"./app/components/EditContract/EditContract\"\r\nimport CreateUser from \"./app/components/CreateUser/CreateUser\"\r\nimport AdminPage from \"./app/components/AdminPage/AdminPage\"\r\nimport PaymentCalc from \"./app/components/PaymentCalc/PaymentCalc\"\r\nimport InterestRatesList from \"./app/components/InterestRatesList/InterestRatesList\"\r\nimport CreateNewInterestRate from \"./app/components/CreateNewInterestRate/CreateNewInterestRate\"\r\nimport { useEffect, useState } from \"react\"\r\nimport PrivateRoute from \"./app/components/shared/PrivateRoute/PrivateRoute\"\r\nimport AllContracts from \"./app/components/AllContracts/AllContracts\"\r\nimport UpdateInterestRate from \"./app/components/UpdateInterestRate/UpdateInterestRate\"\r\nimport getStates from \"./app/customHooks/getStates\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAllStatesToStore } from \"./app/actions/actions\"\r\nimport GeneralNotification from \"./app/components/shared/GeneralNotification/GeneralNotification\"\r\nimport SecurityConfirm from \"./app/components/SecurityConfirm/SecurityConfirm\"\r\nimport RatingController from \"./app/components/RatingController/RatingController\"\r\nimport PrivacyPolicy from \"./app/components/PrivacyPolicy/PrivacyPolicy\";\r\nimport TermsAndConditions from \"./app/components/TermsAndConditions/TermsAndConditions\";\r\nimport Home from \"./app/components/Home/Home\";\r\nimport MyLawFirmsContracts from \"./app/components/MyLawFirmsContracts/MyLawFirmsContracts\";\r\n\r\nexport const history = createHistory();\r\n\r\nexport default function App() {\r\n const dispatch = useDispatch()\r\n const [userIsLogined, setUserIsLogined] = useState(false)\r\n const [userIsLogout, setUserIsLogout] = useState(false)\r\n\r\n const setStatesToStore = async () => {\r\n let states = await getStates()\r\n dispatch(setAllStatesToStore(states))\r\n }\r\n useEffect(() => {\r\n setStatesToStore()\r\n }, [])\r\n\r\n return (\r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n}\r\n","import { ActionsTypes } from \"../actions/actions\"\r\nimport { CreateContractAttorneyType } from \"../types/contractTypes\";\r\n\r\nconst initialState: CreateContractAttorneyType = {\r\n contractType: \"PreSettlement\",\r\n amountSettlement: 0,\r\n estimatedSettlement: \"\",\r\n caseId: \"\",\r\n estimatedDuration: null,\r\n opposingInsurance: \"\",\r\n insuranceAdjuster: \"\",\r\n adjusterPhone: \"\",\r\n claimNumber: \"\",\r\n liability: true,\r\n propertyDamage: \"Slight\",\r\n injuryLevel: \"Slight\",\r\n dateAccident: new Date().toISOString() + \"\",\r\n caseManager: \"\",\r\n accidentDescription: \"\",\r\n contractComments: null,\r\n recipientCheck: \"\",\r\n amountRequested: null,\r\n\r\n contractClientDTO: null,\r\n contractAttorneyDTO: [],\r\n contractLawFirmDTO: []\r\n}\r\n\r\nexport const createContractAttorneyReducer = (state = initialState, action: ActionsTypes): CreateContractAttorneyType => {\r\n switch (action.type) {\r\n case \"HANDLER_FOR_CREATE_CONTRACT_ATTORNEY_INPUTS\":\r\n return { ...state, ...action.payload }\r\n\r\n case \"SET_COMMENT_FOR_CREATE_CONTRACT\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let contractHasComment\r\n\r\n if (contractHasComment = state.contractComments) {\r\n state.contractComments[0].commentText = action.payload.commentText\r\n }\r\n else {\r\n state.contractComments = []\r\n state.contractComments.push(\r\n {\r\n commentText: action.payload.commentText,\r\n visible: true,\r\n dateComment: new Date().toISOString() + \"\",\r\n userId: action.payload.userId\r\n }\r\n )\r\n }\r\n return state\r\n\r\n case \"ADD_AMOUNT_REQUESTED_CREATE_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let newRequestedAmount = { amount: action.payload.amount, date: action.payload.date, userId: action.payload.userId }\r\n state.amountRequested = newRequestedAmount\r\n return state\r\n\r\n case \"ADD_EXISTING_USER_CREATE_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n var contractHasClient\r\n contractHasClient = state.contractClientDTO\r\n ? state.contractClientDTO.userId = action.payload.userId\r\n : state.contractClientDTO = { userId: action.payload.userId, user: null }\r\n return state\r\n\r\n case \"CREATE_USER_CREATE_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n var contractHasClient\r\n contractHasClient = state.contractClientDTO\r\n state.contractClientDTO\r\n ? state.contractClientDTO.user = action.payload\r\n : state.contractClientDTO = { user: action.payload, userId: null }\r\n return state\r\n\r\n case \"ADD_EXISTING_ATTORNEY_CREATE_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n if (state.contractAttorneyDTO ? state.contractAttorneyDTO[0] : false) {\r\n if (state.contractAttorneyDTO) {\r\n state.contractAttorneyDTO[0].userId = action.payload.attorneyId\r\n state.contractAttorneyDTO[0].user = null\r\n state.contractAttorneyDTO[0].date = new Date().toISOString() + \"\"\r\n }\r\n }\r\n else {\r\n state.contractAttorneyDTO = []\r\n state.contractAttorneyDTO.push(\r\n {\r\n userId: action.payload.attorneyId,\r\n user: null,\r\n date: new Date().toISOString() + \"\"\r\n })\r\n }\r\n return state\r\n\r\n case \"CREATE_ATTORNEY_FOR_CREATE_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n if (state.contractAttorneyDTO ? state.contractAttorneyDTO[0] : null) {\r\n if (state.contractAttorneyDTO) {\r\n state.contractAttorneyDTO[0].userId = null\r\n state.contractAttorneyDTO[0].user = action.payload\r\n state.contractAttorneyDTO[0].date = new Date().toISOString()\r\n }\r\n }\r\n else {\r\n state.contractAttorneyDTO = []\r\n state.contractAttorneyDTO.push(\r\n {\r\n userId: null,\r\n user: action.payload,\r\n date: new Date().toISOString()\r\n }\r\n )\r\n }\r\n return state\r\n\r\n case \"ADD_EXISTING_LAWFIRM_FOR_CREATE_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n if (state.contractLawFirmDTO ? state.contractLawFirmDTO[0] : false) {\r\n if (state.contractLawFirmDTO) {\r\n state.contractLawFirmDTO[0].userId = action.payload.lawFirmId\r\n state.contractLawFirmDTO[0].user = null\r\n state.contractLawFirmDTO[0].date = new Date().toISOString()\r\n }\r\n }\r\n else {\r\n state.contractLawFirmDTO = []\r\n state.contractLawFirmDTO.push(\r\n {\r\n userId: action.payload.lawFirmId,\r\n user: null,\r\n date: new Date().toISOString()\r\n }\r\n )\r\n }\r\n return state\r\n\r\n case \"RESET_DATA_FOR_CREATE_CONTRACT\":\r\n return state = initialState\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\"\r\nimport { UserLawFirmsType } from \"../types/userTypes\"\r\n\r\nexport type RegistrationType = {\r\n email: string\r\n password: string\r\n firstName: string\r\n lastName: string\r\n dateOfBirth: Date\r\n streetAddress: string\r\n city: string\r\n state: {\r\n key: string\r\n name: string\r\n }\r\n zipCode: string\r\n phoneNumber: string\r\n website: string\r\n dateLogin: Date\r\n\r\n roleName: number\r\n userType: string\r\n lawFirms: Array\r\n textLawFirm: string\r\n}\r\n\r\n\r\n\r\nconst initialState: RegistrationType = {\r\n email: \"\",\r\n password: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n dateOfBirth: new Date(),\r\n streetAddress: \"\",\r\n city: \"\",\r\n state: {\r\n key: \"AL\",\r\n name: \"Alabama\"\r\n },\r\n zipCode: \"\",\r\n website: \"\",\r\n phoneNumber: \"\",\r\n dateLogin: new Date(),\r\n roleName: 0,\r\n userType: \"Attorney\",\r\n lawFirms: [],\r\n textLawFirm: \"\"\r\n}\r\n\r\nexport const registrationReducer = (state = initialState, action: ActionsTypes): RegistrationType => {\r\n switch (action.type) {\r\n case \"HANDLER_FOR_REGISTRATION_INPUTS\":\r\n return { ...state, ...action.payload }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\";\r\n\r\nexport type LoginType = {\r\n email: string,\r\n password: string\r\n}\r\n\r\nconst initialState: LoginType = {\r\n email: \"\",\r\n password: \"\"\r\n}\r\n\r\nexport const loginReducer = (state = initialState, action: ActionsTypes): LoginType => {\r\n switch (action.type) {\r\n case \"HANDLER_FOR_LOGIN_INPUTS\":\r\n return { ...state, ...action.payload }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\"\r\nimport { CreateAndEditUserType } from \"../types/userTypes\"\r\n\r\nconst User: CreateAndEditUserType = {\r\n createDate: new Date(),\r\n userType: \"attorney\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n dateOfBirth: \"\",\r\n streetAddress: \"\",\r\n city: \"\",\r\n state: {\r\n key: \"\"\r\n },\r\n zipCode: \"\",\r\n website: \"\",\r\n banned: false,\r\n loanLimit: 0,\r\n userStatus: {\r\n userStatusesValue: \"new\"\r\n },\r\n lawFirms: [],\r\n email: \"\",\r\n phoneNumber: \"\",\r\n\r\n addFirmFirstName: \"\",\r\n addFirmDateOfJoined: \"\",\r\n addFirmDateEnd: \"\"\r\n}\r\n\r\nexport const editUserReducer = (state = User, action: ActionsTypes): CreateAndEditUserType => {\r\n switch (action.type) {\r\n case \"SET_DATA_FOR_EDIT_USER\":\r\n return { ...state, ...action.payload }\r\n\r\n case \"SET_DATA_FOR_ADD_FIRM_SECTION\":\r\n return { ...state, ...action.payload }\r\n\r\n case \"ADD_NEW_LAW_FIRM\":\r\n state = JSON.parse(JSON.stringify(state))\r\n state.lawFirms.push(action.payload)\r\n return { ...state }\r\n\r\n case \"EDIT_USER_STATUS\":\r\n state = JSON.parse(JSON.stringify(state))\r\n state.userStatus.userStatusesValue = action.payload + \"\"\r\n return state\r\n\r\n case \"EDIT_USERS_LAWFIRM\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let editableLawFirmIndex = state.lawFirms\r\n .findIndex((lawFirm) => action.payload.editableLawFirmId === lawFirm.id)\r\n\r\n state.lawFirms[editableLawFirmIndex] = { ...action.payload.newDataOfLawFirm }\r\n return state\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\"\r\nimport { EditContractType } from \"../types/contractTypes\";\r\n\r\nconst initialState: EditContractType = {\r\n id: 0,\r\n identifier: \"\",\r\n contractType: \"\",\r\n amountRequestedId: 0,\r\n amountApprovedId: 0,\r\n amountReducedId: 0,\r\n finalAmountOwed: 0,\r\n amountSettlement: 0,\r\n estimatedSettlement: \"\",\r\n estimatedAdditional: \"\",\r\n recipientCheck: \"\",\r\n caseId: \"\",\r\n estimatedDuration: \"\",\r\n opposingInsurance: \"\",\r\n insuranceAdjuster: \"\",\r\n adjusterPhone: \"\",\r\n claimNumber: \"\",\r\n liability: false,\r\n propertyDamage: \"\",\r\n injuryLevel: \"\",\r\n dateAccident: \"\",\r\n caseManager: \"\",\r\n accidentDescription: \"\",\r\n contractComments: [],\r\n contractStatus: [],\r\n amountApproved: null,\r\n amountReduced: null,\r\n amountPayments: [],\r\n amountRequested: null,\r\n additionalFundingRequestsDto: null,\r\n contractClientDTO: null,\r\n contractAttorneyDTO: [],\r\n contractLawFirmDTO: [],\r\n childContracts: [],\r\n userDTO: null,\r\n insertRate: null,\r\n createDate: \"\"\r\n}\r\n\r\nexport const editContractReducer = (state = initialState, action: ActionsTypes): EditContractType => {\r\n switch (action.type) {\r\n case \"SET_DATA_FOR_EDIT_CONTRACT_PAGE\":\r\n state = { ...action.payload }\r\n return state\r\n\r\n case \"HANDLER_FOR_EDIT_CONTRACT_INPUTS\":\r\n return { ...state, ...action.payload }\r\n\r\n case \"ADD_AMOUNT_APPROVED_EDIT_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let newApprovedAmmount = {\r\n amount: action.payload.amount,\r\n insertRate: action.payload.insertRate,\r\n checkNumber: action.payload.checkNumber,\r\n date: action.payload.date,\r\n user: action.payload.user\r\n }\r\n state.amountApproved = newApprovedAmmount\r\n return state\r\n\r\n case \"ADD_AMOUNT_REQUESTED_EDIT_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let newRequestedAmount = {\r\n amount: action.payload.amount,\r\n date: action.payload.date,\r\n contractId: action.payload.contractId,\r\n userId: action.payload.userId\r\n }\r\n state.amountRequested = newRequestedAmount\r\n return state\r\n\r\n case \"ADD_AMOUNT_PAYMENT_EDIT_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let newPaymentAmmount = { amount: action.payload.amount, date: action.payload.date }\r\n state.amountPayments.push(newPaymentAmmount)\r\n return state\r\n\r\n case \"ADD_COMMENT_EDIT_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let newComment = {\r\n commentText: action.payload.commentText,\r\n visible: action.payload.visible,\r\n dateComment: new Date().toISOString() + \"\",\r\n userId: action.payload.userId,\r\n userName: action.payload.userName\r\n }\r\n state.contractComments.push(newComment)\r\n return state\r\n\r\n case \"ADD_STATUS_EDIT_CONTRACT_PAGE\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let newStatus = {\r\n contractsStatus: action.payload.contractsStatus,\r\n dateChange: action.payload.contractsStatus == 'CheckSent' ? action.payload.dateChange : new Date().toISOString() + \"\",\r\n userId: action.payload.userId,\r\n statusValue: action.payload.statusValue\r\n }\r\n state.contractStatus.push(newStatus)\r\n return state\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\";\r\n\r\nexport type GeneralNotificationType = {\r\n isOpen: boolean\r\n message: string\r\n severity: 'error' | 'info' | 'success' | 'warning'\r\n}\r\n\r\nexport type NotificationInfoType = {\r\n message: string\r\n severity: 'error' | 'info' | 'success' | 'warning'\r\n}\r\n\r\nconst initialState: GeneralNotificationType = {\r\n isOpen: false,\r\n message: \"\",\r\n severity: \"info\"\r\n}\r\n\r\nexport const generalNotificationReducer = (state = initialState, action: ActionsTypes): GeneralNotificationType => {\r\n switch (action.type) {\r\n case \"TOGGLE_NOTIFICATION\":\r\n return { ...state, isOpen: action.payload }\r\n\r\n case \"SET_NOTIFICATION_INFO\":\r\n return { ...state, ...action.payload }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\"\r\n\r\nexport type InformationPageType = {\r\n title: string\r\n textDescription: string\r\n hasInput: boolean\r\n inputPlaceholder?: string\r\n inputLabel?: string\r\n additionalBtn: boolean\r\n buttonText?: string\r\n btnLink?: string\r\n contractSupportBtn: boolean\r\n}\r\n\r\nconst initialState: InformationPageType = {\r\n title: \"Title of Page\",\r\n textDescription: \"Text Description\",\r\n hasInput: false,\r\n inputPlaceholder: \"\",\r\n additionalBtn: false,\r\n buttonText: \"Action Button\",\r\n btnLink: \"/\",\r\n contractSupportBtn: false\r\n}\r\n\r\nexport const informationPageReducer = (state = initialState, action: ActionsTypes): InformationPageType => {\r\n switch (action.type) {\r\n case \"SET_CONTENT_TO_INFO_PAGE\":\r\n return { ...state, ...action.payload }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { ActionsTypes } from \"../actions/actions\"\r\nimport { CreateAndEditUserType } from \"../types/userTypes\";\r\n\r\nconst User: CreateAndEditUserType = {\r\n createDate: new Date(),\r\n userType: \"attorney\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n dateOfBirth: \"\",\r\n streetAddress: \"\",\r\n city: \"\",\r\n state: {\r\n key: \"\"\r\n },\r\n zipCode: \"\",\r\n website: \"\",\r\n banned: false,\r\n loanLimit: 0,\r\n userStatus: {\r\n userStatusesValue: \"new\"\r\n },\r\n lawFirms: [],\r\n email: \"\",\r\n phoneNumber: \"\",\r\n\r\n addFirmFirstName: \"\",\r\n addFirmDateOfJoined: \"\",\r\n addFirmDateEnd: \"\"\r\n}\r\n\r\nexport const createUserReducer = (state = User, action: ActionsTypes): CreateAndEditUserType => {\r\n switch (action.type) {\r\n case \"SET_DATA_FOR_CREATE_USER\":\r\n return { ...state, ...action.payload }\r\n\r\n case \"SET_STATE_FOR_CREATE_USER\":\r\n let stateToJson = JSON.stringify(state)\r\n state = JSON.parse(stateToJson)\r\n state.state.key = action.payload\r\n return state\r\n\r\n case \"ADD_LAWFIRM_FOR_CREATE_USER\":\r\n state = JSON.parse(JSON.stringify(state))\r\n let newLawFirm = {\r\n lawFirmUserId: action.payload.firmId,\r\n startDate: action.payload.startDate,\r\n endDate: action.payload.endDate,\r\n lawFirmName: action.payload.lawFirmName\r\n }\r\n state.lawFirms.push(newLawFirm)\r\n return state\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\";\r\n\r\nexport type CreatePlaintiffType = {\r\n firstName: string\r\n lastName: string\r\n dateOfBirth: string\r\n streetAddress: string\r\n city: string\r\n zipCode: string\r\n state: {\r\n key: string\r\n }\r\n email: string\r\n phoneNumber: string\r\n}\r\n\r\nconst initialState: CreatePlaintiffType = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n dateOfBirth: new Date().toISOString() + \"\",\r\n streetAddress: \"\",\r\n city: \"\",\r\n zipCode: \"\",\r\n state: {\r\n key: \"\"\r\n },\r\n email: \"\",\r\n phoneNumber: \"\",\r\n}\r\n\r\nexport const createPlaintiffReducer = (state = initialState, action: ActionsTypes): CreatePlaintiffType => {\r\n switch (action.type) {\r\n case \"HANDLER_FOR_CREATE_PLAINTIFF_INPUTS\":\r\n if (Object.keys(action.payload)[0] === \"state\") {\r\n state = JSON.parse(JSON.stringify(state))\r\n state.state.key = action.payload.state\r\n return state\r\n }\r\n else {\r\n return { ...state, ...action.payload }\r\n }\r\n\r\n case \"RESET_CREATED_PLAINTIFF_DATA\":\r\n state = JSON.parse(JSON.stringify(state))\r\n return state = initialState\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\"\r\n\r\nexport type CreateAttorneyType = {\r\n firstName: string\r\n lastName: string\r\n email: string\r\n phoneNumber: string\r\n lawFirms: any\r\n state: {\r\n key: string\r\n }\r\n}\r\n\r\nconst initialState: CreateAttorneyType = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n phoneNumber: \"\",\r\n lawFirms: [],\r\n state: {\r\n key: \"\"\r\n }\r\n}\r\n\r\nexport const createAttorneyReducer = (state = initialState, action: ActionsTypes): CreateAttorneyType => {\r\n switch (action.type) {\r\n case \"HANDLER_FOR_CREATE_ATTORNEY_INPUTS\":\r\n if (Object.keys(action.payload)[0] === \"state\") {\r\n state = JSON.parse(JSON.stringify(state))\r\n state.state.key = action.payload.state\r\n return state\r\n }\r\n else {\r\n return { ...state, ...action.payload }\r\n }\r\n\r\n case \"SET_LAWFIRM_TO_CREATED_ATTORNEY\":\r\n state = JSON.parse(JSON.stringify(state))\r\n if (action.payload) {\r\n if (state.lawFirms.length === 0) {\r\n state.lawFirms.push({ lawFirmUserId: action.payload })\r\n }\r\n else {\r\n state.lawFirms[0].lawFirmUserId = action.payload\r\n }\r\n return state\r\n }\r\n else {\r\n state.lawFirms = []\r\n return state\r\n }\r\n case \"RESET_CREATED_ATTORNEY_DATA\":\r\n state = JSON.parse(JSON.stringify(state))\r\n return state = initialState\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ActionsTypes } from \"../actions/actions\"\r\nimport { StatesType } from \"../types/stateType\"\r\n\r\n\r\nconst initialState: Array = []\r\n\r\nexport const statesReducer = (state = initialState, action: ActionsTypes): Array => {\r\n switch (action.type) {\r\n case 'SET_ALL_STATES_TO_STORE':\r\n return [...initialState, ...action.payload]\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux'\r\nimport { createContractAttorneyReducer } from './createContractAttorneyReducer'\r\nimport { registrationReducer } from './registrationReducer'\r\nimport { loginReducer } from './loginReducer'\r\nimport { editUserReducer } from './editUserReducer'\r\nimport { editContractReducer } from './editContractReducer'\r\nimport { generalNotificationReducer } from './generalNotificationReducer'\r\nimport { informationPageReducer } from './informationPageReducer'\r\nimport { createUserReducer } from './createUserReducer'\r\nimport { createPlaintiffReducer } from './createPlaintiffReducer'\r\nimport { createAttorneyReducer } from './createAttorneyReducer'\r\nimport { statesReducer } from './statesReducer'\r\n\r\nexport const rootReducer = combineReducers({\r\n registration: registrationReducer,\r\n login: loginReducer,\r\n createUser: createUserReducer,\r\n createContractAttorney: createContractAttorneyReducer,\r\n createdPlaintiffData: createPlaintiffReducer,\r\n createdAttorneyfData: createAttorneyReducer,\r\n editUserPage: editUserReducer,\r\n editContract: editContractReducer,\r\n notification: generalNotificationReducer,\r\n infoPage: informationPageReducer,\r\n states: statesReducer\r\n})\r\n\r\nexport type RootState = ReturnType","import { rootReducer } from './reducers/rootReducers';\r\nimport { applyMiddleware, createStore } from \"redux\"\r\nimport { composeWithDevTools } from 'redux-devtools-extension'\r\n\r\nexport const store = createStore(\r\n rootReducer,\r\n composeWithDevTools(\r\n applyMiddleware(),\r\n )\r\n)","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport { store } from './app/store';\r\nimport { Provider } from 'react-redux';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CreateReport\":\"Reports_CreateReport__cQ2UR\",\"CreateReport-Title\":\"Reports_CreateReport-Title__rEzJb\",\"CreateReport-Step\":\"Reports_CreateReport-Step__1DPHB\",\"CreateReport-Subtitle\":\"Reports_CreateReport-Subtitle__y2rIr\",\"CreateReport-Form\":\"Reports_CreateReport-Form__2S_WL\",\"CreateReport-BlockAccessTitle\":\"Reports_CreateReport-BlockAccessTitle__3eu0K\",\"CreateReport-DownloadRawDataContainer\":\"Reports_CreateReport-DownloadRawDataContainer__88UHY\",\"CreateReport-BtnContainer\":\"Reports_CreateReport-BtnContainer__2ZAoN\",\"CreateReport-DateInput\":\"Reports_CreateReport-DateInput__LEqFe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Statistics\":\"Statistics_Statistics__2CZ-t\",\"Statistics-List\":\"Statistics_Statistics-List__aITkV\",\"Statistics-Item\":\"Statistics_Statistics-Item__37-JC\",\"Statistics-Divider\":\"Statistics_Statistics-Divider__TRhW1\",\"Statistics-Subtitle\":\"Statistics_Statistics-Subtitle__2AfX_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Header\":\"Header_Header__oItIl\",\"Header-Link\":\"Header_Header-Link__1nqIl\",\"Header-Link__account\":\"Header_Header-Link__account__DYf0v\",\"Header-Col\":\"Header_Header-Col__2q83j\",\"Header-Logo\":\"Header_Header-Logo__KKWCB\",\"Header-AdaptiveMenu\":\"Header_Header-AdaptiveMenu__fDaMs\",\"MuiButton-root\":\"Header_MuiButton-root__wbKji\",\"Header-AccountMenu\":\"Header_Header-AccountMenu__1vkzs\",\"HeaderMenu\":\"Header_HeaderMenu__2lp6M\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ContractInfo\":\"ContractInfo_ContractInfo__23KWM\",\"ContractInfo-Col\":\"ContractInfo_ContractInfo-Col__3TA2Z\",\"ContractInfo-List\":\"ContractInfo_ContractInfo-List__2sgr6\",\"ContractInfo-List--AdditionalFunding\":\"ContractInfo_ContractInfo-List--AdditionalFunding__ON15_\",\"ContractInfo-Item\":\"ContractInfo_ContractInfo-Item__2g5mA\",\"ContractInfo-Item__AdditionalRequest\":\"ContractInfo_ContractInfo-Item__AdditionalRequest__2Wm1S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AssociatedAttorneys\":\"AssociatedAttorneys_AssociatedAttorneys__1ipMv\",\"AssociatedAttorneys-Title\":\"AssociatedAttorneys_AssociatedAttorneys-Title__rEVLI\",\"AssociatedAttorneys-Row\":\"AssociatedAttorneys_AssociatedAttorneys-Row__aD02x\",\"AssociatedAttorneys-Col\":\"AssociatedAttorneys_AssociatedAttorneys-Col__3P989\",\"AssociatedAttorneys-DateLabel\":\"AssociatedAttorneys_AssociatedAttorneys-DateLabel__1RHFd\",\"AssociatedAttorneys-AddAttorneyBtn\":\"AssociatedAttorneys_AssociatedAttorneys-AddAttorneyBtn__282Bl\",\"AssociatedAttorneys-AddAttorneyPanel\":\"AssociatedAttorneys_AssociatedAttorneys-AddAttorneyPanel__3uAY4\",\"AssociatedAttorneys-DownloadSection\":\"AssociatedAttorneys_AssociatedAttorneys-DownloadSection__11oEQ\",\"AssociatedAttorneys-AttorneyAgreementFileName\":\"AssociatedAttorneys_AssociatedAttorneys-AttorneyAgreementFileName__FgG-j\",\"AssociatedAttorneys-UploadBtn\":\"AssociatedAttorneys_AssociatedAttorneys-UploadBtn__YQ4VN\",\"AssociatedAttorneys-UploadIcon\":\"AssociatedAttorneys_AssociatedAttorneys-UploadIcon__2ej85\",\"AssociatedAttorneys-UploadNewCotractBox\":\"AssociatedAttorneys_AssociatedAttorneys-UploadNewCotractBox__6tyTJ\",\"AssociatedAttorneys-DownloadAgreementBtn\":\"AssociatedAttorneys_AssociatedAttorneys-DownloadAgreementBtn__nKlPc\",\"AssociatedAttorneys-Loader\":\"AssociatedAttorneys_AssociatedAttorneys-Loader__1mSWq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Comment\":\"ContractComments_Comment__34I2J\",\"Comment-Input\":\"ContractComments_Comment-Input__1lKcK\",\"Comment-Item\":\"ContractComments_Comment-Item__16MN9\",\"Comment-Info\":\"ContractComments_Comment-Info__3awkt\",\"Comment-TextBody\":\"ContractComments_Comment-TextBody__1Cg1V\",\"Comment-Title\":\"ContractComments_Comment-Title__1XSyL\",\"Comment-CommentsContainer\":\"ContractComments_Comment-CommentsContainer__14FZA\",\"Comment-Divider\":\"ContractComments_Comment-Divider__1OTBr\",\"Comment-ControllsBody\":\"ContractComments_Comment-ControllsBody__krkex\",\"Comment-AttachmentFileLabel\":\"ContractComments_Comment-AttachmentFileLabel__1y5N6\",\"Comment-AttachmentFileInput\":\"ContractComments_Comment-AttachmentFileInput__19eBW\",\"Comment-Attachments\":\"ContractComments_Comment-Attachments__2QviA\",\"Comment-Icon\":\"ContractComments_Comment-Icon__1hzCW\",\"Comment-ClearIcon\":\"ContractComments_Comment-ClearIcon__1Nvb8\",\"Comment-AttachmentBox\":\"ContractComments_Comment-AttachmentBox__AjuqG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"LawFirms\":\"LawFirms_LawFirms__n9Xlw\",\"LawFirms-Item\":\"LawFirms_LawFirms-Item__8E-LK\",\"LawFirms-FormControl\":\"LawFirms_LawFirms-FormControl__CqEir\",\"LawFirms-Btn\":\"LawFirms_LawFirms-Btn__OmTIV\",\"LawFirms-Subtitle\":\"LawFirms_LawFirms-Subtitle__11zRy\",\"LawFirms-TextLawFirmName\":\"LawFirms_LawFirms-TextLawFirmName__2N0kM\",\"AddFirmSection\":\"LawFirms_AddFirmSection__VcuXB\",\"MuiFormControl-marginNormal\":\"LawFirms_MuiFormControl-marginNormal__23IBC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Registration\":\"Registration_Registration__1RrBV\",\"Registration-Title\":\"Registration_Registration-Title__AX3ac\",\"Registration-Form\":\"Registration_Registration-Form__33wYe\",\"Registration-Input\":\"Registration_Registration-Input__x8QCi\",\"Registration-Select\":\"Registration_Registration-Select__3s4ZC\",\"Registration-Date\":\"Registration_Registration-Date__2skhP\",\"Registration-DateLabel\":\"Registration_Registration-DateLabel__bz8DU\",\"Registration-Btn\":\"Registration_Registration-Btn__169HM\",\"Registration-DateInput\":\"Registration_Registration-DateInput__2a21U\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AssociatedClient\":\"AssociatedClient_AssociatedClient__34SBB\",\"AssociatedClient-Title\":\"AssociatedClient_AssociatedClient-Title__QI6bb\",\"AssociatedClient-Row\":\"AssociatedClient_AssociatedClient-Row__1owz-\",\"AssociatedClient-Col\":\"AssociatedClient_AssociatedClient-Col__2wl5F\",\"AssociatedClient-DateLabel\":\"AssociatedClient_AssociatedClient-DateLabel__q2WSy\",\"AssociatedClient-DownloadContainer\":\"AssociatedClient_AssociatedClient-DownloadContainer__1Qt6p\",\"AssociatedClient-DownloadSection\":\"AssociatedClient_AssociatedClient-DownloadSection__2OuyM\",\"AssociatedClient-ClientContractFileName\":\"AssociatedClient_AssociatedClient-ClientContractFileName__2aEhm\",\"AssociatedClient-UploadContractBtn\":\"AssociatedClient_AssociatedClient-UploadContractBtn__RFcTp\",\"AssociatedClient-UploadContractIcon\":\"AssociatedClient_AssociatedClient-UploadContractIcon__8Lm_5\",\"AssociatedClient-Loader\":\"AssociatedClient_AssociatedClient-Loader__2QtLy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"StatisticsInfo\":\"StatisticsInfo_StatisticsInfo__1DghL\",\"StatisticsInfo-Title\":\"StatisticsInfo_StatisticsInfo-Title__2seZ3\",\"StatisticsInfo-Body\":\"StatisticsInfo_StatisticsInfo-Body__3gq5F\",\"StatisticsInfo-Box\":\"StatisticsInfo_StatisticsInfo-Box__2VBs6\",\"StatisticsInfo-Col\":\"StatisticsInfo_StatisticsInfo-Col__3hiye\",\"StatisticsInfo-Btn\":\"StatisticsInfo_StatisticsInfo-Btn__1xdzh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AdminPage\":\"AdminPage_AdminPage__1jKHI\",\"AdminPage-Title\":\"AdminPage_AdminPage-Title__DNN3h\",\"AdminPage-Container\":\"AdminPage_AdminPage-Container__crA0C\",\"AdminPage-Box\":\"AdminPage_AdminPage-Box__2StSO\",\"AdminPage-Link\":\"AdminPage_AdminPage-Link__-KYu7\",\"AdminPage-BoxIcon\":\"AdminPage_AdminPage-BoxIcon__yjkxW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FindUser\":\"FindUser_FindUser__3_EAJ\",\"FindUser-Header\":\"FindUser_FindUser-Header__3TRxb\",\"FindUser-Search\":\"FindUser_FindUser-Search__15nCT\",\"FindUser-CreateNewUser\":\"FindUser_FindUser-CreateNewUser__3P3b2\",\"FindUser-CreateNewUserLink\":\"FindUser_FindUser-CreateNewUserLink__2fQTN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CaseInformation-Title\":\"CaseInformation_CaseInformation-Title__1zymI\",\"CaseInformation-Body\":\"CaseInformation_CaseInformation-Body__34TLw\",\"CaseInformation-Label\":\"CaseInformation_CaseInformation-Label__3wq0G\",\"CaseInformation-Label--Date\":\"CaseInformation_CaseInformation-Label--Date__2WCeY\",\"CaseInformation-DateInput\":\"CaseInformation_CaseInformation-DateInput__3ED8W\",\"CaseInformation-Notion\":\"CaseInformation_CaseInformation-Notion__yFBe4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AttorneyInformation-Body\":\"AttorneyInformation_AttorneyInformation-Body__Iya_V\",\"AttorneyInformation-Label\":\"AttorneyInformation_AttorneyInformation-Label__MyLNI\",\"AttorneyInformation-Title\":\"AttorneyInformation_AttorneyInformation-Title__3wmO4\",\"AttorneyInformation-Subtitle\":\"AttorneyInformation_AttorneyInformation-Subtitle__3USeG\",\"AttorneyInformation-AddAttorneySection\":\"AttorneyInformation_AttorneyInformation-AddAttorneySection__U4DvG\",\"AttorneyInformation-CreatedAttorneySection\":\"AttorneyInformation_AttorneyInformation-CreatedAttorneySection__MvlMn\",\"AttorneyInformation-LawFirmSection\":\"AttorneyInformation_AttorneyInformation-LawFirmSection__17isb\",\"AttorneyInformation-LawFirmBox\":\"AttorneyInformation_AttorneyInformation-LawFirmBox__12n6B\",\"AttorneyInformation-LawFirmSectionTitle\":\"AttorneyInformation_AttorneyInformation-LawFirmSectionTitle__1axv0\",\"AttorneyInformation-DiviiderText\":\"AttorneyInformation_AttorneyInformation-DiviiderText__Ygttt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AdaptiveMenu\":\"AdaptiveMenu_AdaptiveMenu__2BQqv\",\"AdaptiveMenu-Menu\":\"AdaptiveMenu_AdaptiveMenu-Menu__3eKlj\",\"AdaptiveMenu-Link\":\"AdaptiveMenu_AdaptiveMenu-Link__3IV2a\",\"AdaptiveMenu-Icon\":\"AdaptiveMenu_AdaptiveMenu-Icon__1mqz3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ResponsibleUsers\":\"ResponsibleUsers_ResponsibleUsers__2s7Tm\",\"ResponsibleUsers-Title\":\"ResponsibleUsers_ResponsibleUsers-Title__1Wbin\",\"ResponsibleUsers-Body\":\"ResponsibleUsers_ResponsibleUsers-Body__2M1Sg\",\"ResponsibleUsers-Column\":\"ResponsibleUsers_ResponsibleUsers-Column__3m8T4\",\"ResponsibleUsers-Label\":\"ResponsibleUsers_ResponsibleUsers-Label__13Xe0\",\"ResponsibleUsers-DownloadSection\":\"ResponsibleUsers_ResponsibleUsers-DownloadSection__1mB8I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AssociatedLawFirm\":\"AssociatedLawFirm_AssociatedLawFirm__-tBXY\",\"AssociatedLawFirm-Title\":\"AssociatedLawFirm_AssociatedLawFirm-Title__3f5TB\",\"AssociatedLawFirm-Row\":\"AssociatedLawFirm_AssociatedLawFirm-Row__2-ESS\",\"AssociatedLawFirm-Col\":\"AssociatedLawFirm_AssociatedLawFirm-Col__2Lh91\",\"AssociatedLawFirm-AddFirmBtn\":\"AssociatedLawFirm_AssociatedLawFirm-AddFirmBtn__INyYv\",\"AssociatedLawFirm-AddFirmPanel\":\"AssociatedLawFirm_AssociatedLawFirm-AddFirmPanel__3GwGA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"MyLawFirmsContracts-Nav\":\"MyLawFirmsContracts_MyLawFirmsContracts-Nav__2lKXE\",\"MyLawFirmsContracts-Search\":\"MyLawFirmsContracts_MyLawFirmsContracts-Search__1OQs2\",\"MyLawFirmsContracts-SearchIcon\":\"MyLawFirmsContracts_MyLawFirmsContracts-SearchIcon__3J4wo\",\"MyLawFirmsContracts-CreateNewRequest\":\"MyLawFirmsContracts_MyLawFirmsContracts-CreateNewRequest__2grL3\",\"MyLawFirmsContracts-CreateNewRequestIcon\":\"MyLawFirmsContracts_MyLawFirmsContracts-CreateNewRequestIcon__B-tOe\",\"MyLawFirmsContracts-CreateNewRequestBtn\":\"MyLawFirmsContracts_MyLawFirmsContracts-CreateNewRequestBtn__2oIw3\",\"MyLawFirmsContracts-Title\":\"MyLawFirmsContracts_MyLawFirmsContracts-Title__1TxvW\",\"AllContracts-Nav\":\"MyLawFirmsContracts_AllContracts-Nav__2_Sww\",\"AllContracts-Search\":\"MyLawFirmsContracts_AllContracts-Search__35XSN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Plaintiff-Body\":\"Plaintiff_Plaintiff-Body__iawdc\",\"Plaintiff-Title\":\"Plaintiff_Plaintiff-Title__2XkY2\",\"Plaintiff-Subtitle\":\"Plaintiff_Plaintiff-Subtitle__1ClFS\",\"Plaintiff-AddPlaintiffSection\":\"Plaintiff_Plaintiff-AddPlaintiffSection__iLIpk\",\"Plaintiff-CreatedPlaintiffSection\":\"Plaintiff_Plaintiff-CreatedPlaintiffSection__DsfF7\",\"Plaintiff-DateOfBirdthLabel\":\"Plaintiff_Plaintiff-DateOfBirdthLabel__2FcLT\",\"Plaintiff-Alert\":\"Plaintiff_Plaintiff-Alert__2bx2U\",\"Plaintiff-DividerText\":\"Plaintiff_Plaintiff-DividerText__25qoJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Login\":\"Login_Login__2d6rl\",\"Login-Form\":\"Login_Login-Form__P8EPK\",\"Login-Label\":\"Login_Login-Label__3i2xz\",\"Login-Input\":\"Login_Login-Input__2Xz8B\",\"Login-Btn\":\"Login_Login-Btn__3O9hF\",\"Login-Footer\":\"Login_Login-Footer__3r9ZF\",\"Login-Link\":\"Login_Login-Link__XF5Ip\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PreSettlement\":\"PreSettlement_PreSettlement__3-syZ\",\"PreSettlement-Title\":\"PreSettlement_PreSettlement-Title__2WZAv\",\"PreSettlement-Item\":\"PreSettlement_PreSettlement-Item__3wupU\",\"PreSettlement-Item__danger\":\"PreSettlement_PreSettlement-Item__danger__15Bnq\",\"PreSettlement-BtnBox\":\"PreSettlement_PreSettlement-BtnBox__xxAZ-\",\"PreSettlement-Body\":\"PreSettlement_PreSettlement-Body__3QCfh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Ratings\":\"Ratings_Ratings__ldVuc\",\"Ratings-Title\":\"Ratings_Ratings-Title__cyH3T\",\"Ratings-Body\":\"Ratings_Ratings-Body__30-Yy\",\"Ratings-Column\":\"Ratings_Ratings-Column__2vkG6\",\"Ratings-Btn\":\"Ratings_Ratings-Btn__2Ls9j\",\"Ratings-UserName\":\"Ratings_Ratings-UserName__3xn_2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Footer\":\"Footer_Footer__3em03\",\"Footer-List\":\"Footer_Footer-List__xzt4C\",\"Footer-Item\":\"Footer_Footer-Item__10Yfo\",\"Footer-Link\":\"Footer_Footer-Link__y2nei\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InformationPage\":\"InformationPage_InformationPage__pDz69\",\"InformationPage-Body\":\"InformationPage_InformationPage-Body__3PSxW\",\"InformationPage-Title\":\"InformationPage_InformationPage-Title__1EUa6\",\"InformationPage-Description\":\"InformationPage_InformationPage-Description__EP6MQ\",\"InformationPage-Input\":\"InformationPage_InformationPage-Input__29ACT\",\"InformationPage-Link\":\"InformationPage_InformationPage-Link__2uQpG\",\"InformationPage-ContractSupportLink\":\"InformationPage_InformationPage-ContractSupportLink__2_Qpv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"StatusHistory\":\"StatusHistory_StatusHistory__233gA\",\"StatusHistory-Title\":\"StatusHistory_StatusHistory-Title__3h4Ox\",\"StatusHistory-SubTitle\":\"StatusHistory_StatusHistory-SubTitle__iXDHb\",\"StatusHistory-BtnBox\":\"StatusHistory_StatusHistory-BtnBox__3fK6M\",\"StatusHistory-Row\":\"StatusHistory_StatusHistory-Row__1XvEB\",\"StatusHistory-Item\":\"StatusHistory_StatusHistory-Item__25oyu\",\"StatusHistory-Label\":\"StatusHistory_StatusHistory-Label__3MZVy\",\"AddStatus\":\"StatusHistory_AddStatus__2QUHY\",\"AddStatus-Label\":\"StatusHistory_AddStatus-Label__298yW\",\"AddStatus-Loader\":\"StatusHistory_AddStatus-Loader__2FvVZ\",\"MediumDivider\":\"StatusHistory_MediumDivider__3PW0b\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CreateContractAttorney\":\"CreateContractAttorney_CreateContractAttorney__ZQTe7\",\"CreateContractAttorney-Title\":\"CreateContractAttorney_CreateContractAttorney-Title__s6yZF\",\"CreateContractAttorney-RadioBtns\":\"CreateContractAttorney_CreateContractAttorney-RadioBtns__2wmsW\",\"CreateContractAttorney-Comment\":\"CreateContractAttorney_CreateContractAttorney-Comment__11LLh\",\"CreateContractAttorney-Btns\":\"CreateContractAttorney_CreateContractAttorney-Btns__3dsya\",\"CreateContractAttorney-AlertText\":\"CreateContractAttorney_CreateContractAttorney-AlertText__2qg55\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"GeneralInfo\":\"GeneralInfo_GeneralInfo__231mo\",\"GeneralInfo-Title\":\"GeneralInfo_GeneralInfo-Title__3TcTK\",\"GeneralInfo-AttorneyItem\":\"GeneralInfo_GeneralInfo-AttorneyItem__HDo4J\",\"GeneralInfo-LawFirmItem\":\"GeneralInfo_GeneralInfo-LawFirmItem__oi7U6\",\"GeneralInfo-List\":\"GeneralInfo_GeneralInfo-List__12OMO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ResetPasswordSuccess\":\"ResetPasswordSuccess_ResetPasswordSuccess__25r77\",\"ResetPasswordSuccess-Title\":\"ResetPasswordSuccess_ResetPasswordSuccess-Title__ZwqNP\",\"ResetPasswordSuccess-Subtitle\":\"ResetPasswordSuccess_ResetPasswordSuccess-Subtitle__1ZT6o\",\"ResetPasswordSuccess-Form\":\"ResetPasswordSuccess_ResetPasswordSuccess-Form__1LMf4\",\"ResetPasswordSuccess-Input\":\"ResetPasswordSuccess_ResetPasswordSuccess-Input__8iKKT\",\"ResetPasswordSuccess-Btn\":\"ResetPasswordSuccess_ResetPasswordSuccess-Btn__ss92a\",\"ResetPasswordSuccess-Link\":\"ResetPasswordSuccess_ResetPasswordSuccess-Link__3PaCd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CaseInformation-Title\":\"EditContractCaseInfo_CaseInformation-Title__1MUcC\",\"CaseInformation-Body\":\"EditContractCaseInfo_CaseInformation-Body__3jbLh\",\"CaseInformation-Notion\":\"EditContractCaseInfo_CaseInformation-Notion__1rOpl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AllContracts-Nav\":\"AllContracts_AllContracts-Nav__2k6Lf\",\"AllContracts-Search\":\"AllContracts_AllContracts-Search__uMeZQ\",\"AllContracts-SearchIcon\":\"AllContracts_AllContracts-SearchIcon__9eAol\",\"AllContracts-CreateNewRequest\":\"AllContracts_AllContracts-CreateNewRequest__jWCoJ\",\"AllContracts-CreateNewRequestIcon\":\"AllContracts_AllContracts-CreateNewRequestIcon__1aew1\",\"AllContracts-CreateNewRequestBtn\":\"AllContracts_AllContracts-CreateNewRequestBtn__31u8n\"};"],"sourceRoot":""}