{"version":3,"sources":["utils/ScrollToPageTop.tsx","utils/UnProtectedRoute.tsx","PathRouter.tsx","App.tsx","reportWebVitals.ts","services/amplifyServicesConfig.js","index.tsx","api/Profile.ts","components/buttons/PrimaryButton.tsx","context/AuthContext.tsx","context/FavoritesContext.tsx","context/UserDetailsFormContext.tsx","api/detailsForm/UserDetailsForm.ts","assets/logoPlaceholder.svg","api/NotificationsApi.ts","context/NotificationsContext.tsx","utils/WindowDimension.js","context/UserAccountContext.tsx","context/EmployerAccountContext.tsx","context/AmplifyAuthContext.jsx","helpers/functions.tsx","utils/theme.ts","components/Spin.tsx","assets/avatarPlaceholder.svg","components/Modal.tsx","context/OffersContext.tsx","components/EmptyList.tsx","api/Offers.ts","api/SkillsApi.ts","context/SkillsContext.tsx","helpers/constants.tsx","components/profile/Tabs.tsx","api/Auth.ts","context/UserCalendarContext.tsx","api/detailsForm/EmployerDetailsForm.ts","context/EmployerDetailsFormContext.tsx","api/Workers.ts","context/WorkersContext.tsx","api/account/EmployerAccount.ts","Config.ts","components/notification.ts","components/Text.tsx","utils/http-client.ts","api/account/UserAccount.ts","helpers/NotificationsUtils.tsx","api/UserCalendarApi.ts","components/userMenu/Menu.tsx","components/ChangeAvatarModal.tsx","components/userMenu/UserMenu.tsx","utils/NavigationName.ts","components/PanelLayout.tsx","api/Companies.ts","context/CompaniesContext.tsx","api/EmployerCalendarApi.ts","context/EmployerCalendarContext.tsx","translations/i18n.ts","components/SvgIcon.tsx","utils/ProtectedRoute.tsx","context/ProfileContext.tsx","context/WorkerContext.tsx","context/EmployerContext.tsx"],"names":["withRouter","history","useEffect","unListen","listen","window","scrollTo","ProtectedRoute","props","getTokens","access","to","paths","dashboard","LoginPage","lazy","ActivateSuccess","ActivateFailed","MyWorkinn","MainPage","Dashboard","JobOffers","Calendar","RegisterPage","RemindPasswordPage","ResetPasswordPage","SendActivationLinkPage","RegisterSuccessPage","ProfilePage","UserDetailsForm","EmployerDetailsForm","AddOffer","UserAccount","EmployerAccount","JobOffer","EmployerProfile","WorkerProfile","MobileNotifications","Inbox","fallback","style","width","height","Spin","PathRouter","UnProtectedRoute","path","mainPage","exact","component","loginPage","registerPage","remindPasswordPage","resetPassword","sendActivationLinkPage","registerSuccessPage","activateSuccess","activateFailed","userDetails","employerDetails","PanelLayout","myWorkinn","jobOffers","jobOffer","calendar","profile","addOffer","userAccount","employerAccount","employer","worker","channelsList","mobileNotifications","components","ProfileContextProvider","EmployerContextProvider","WorkerContextProvider","UserDetailsFormContextProvider","EmployerDetailsFormContextProvider","OffersContextProvider","UserAccountContextProvider","EmployerAccountContextProvider","FavoriteContextProvider","CompaniesContextProvider","WorkersContextProvider","AmplifyAuthProvider","AuthContextProvider","EmployerCalendarContextProvider","UserCalendarContextProvider","NotificationsContextProvider","SkillsContextProvider","App","locale","localStorage","getItem","theme","plPL","enUS","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","Amplify","configure","Auth","identityPoolId","appConfig","cognitoIdentityPoolId","region","cognitoRegion","identityPoolRegion","userPoolId","cognitoUserPoolId","userPoolWebClientId","cognitoAppClientId","Storage","bucket","attachments_s3_bucket_name","chimeRegion","configureAmplify","ReactDOM","render","StrictMode","document","getElementById","PATHS","id","ProfileApi","environmentConfig","REACT_APP_API_URL","getInfo","a","instance","get","getWorker","getEmployer","addFavorite","post","profile_id","getFavorites","removeFavorite","delete","changeEmail","data","changePass","deactivate","getAllOffersStats","getAllWorkersStats","getAllEarningsStats","HttpClient","typeToColor","type","color","secondary","white","typeToBackground","none","primary","typeToBorderColor","StyledButton","styled","Button","fontWeight","marginTop","marginBottom","fontSize","htmlType","inline","underline","css","medium","PrimaryButton","label","onClick","className","loading","disabled","contextDefaultValues","errorMessage","signIn","signInWithSocial","signOut","AuthContext","createContext","children","profileContext","useContext","ProfileContext","favoriteContext","FavoriteContext","employerContext","EmployerContext","workerContext","WorkerContext","useAmplifyAuthContext","userSignIn","userSignOut","useState","setLoading","setErrorMessage","authApi","AuthApi","t","useTranslation","email","password","remindMe","formikHelpers","login","authData","saveTokens","IdToken","RefreshToken","username","push","customNotification","description","setItem","response","detail","setTouched","Number","toString","error","getErrorFromResponse","errors","field","code","Provider","value","removeTokens","removeItem","clearContext","refresh","FavoriteContextDefaultValues","favorites","api","setFavorites","profileId","successCallback","favorite","idToDelete","find","fav","filter","favoritesData","PhonePrefix","UserDetailsFormApi","saveAvatarData","credentials","checkPersonalData","checkBillingData","checkCareersData","checkDeclarationsData","checkZusData","personalData","name","surname","pesel","nip","street","building_number","postalCode","city","phone","phone_country_code","POLAND_PHONE_PREFIX","phonePrefix","birthDate","sex","country","billingData","usName","usAddressPartOne","usAddressPartTwo","iban","questionnaireData","employedContractInAnotherEstablishment","employedContractWageHigherThanTheMinimum","contractOfMandateInAnotherEstablishment","contractOfMandateWageHigherThanMinimum","runningABusiness","disability","student","retired","pensioner","zusData","voluntarySocialSecurity","dataChanges","experienceData","professions","skills","experience","weight","hips","waist","chest","profilePhotoUrl","setPersonalData","setBillingData","setQuestionnaireData","setZusData","setExperienceData","setProfilePhotoUrl","saveAvatar","checkPersonalStep","checkBillingDataStep","checkCareersDataStep","checkDeclarationsDataStep","checkZusDataStep","UserDetailsFormContext","userDetailsFormApi","logo","avatar","first_name","last_name","date_of_birth","PESEL","NIP","zip_code","voivodeship","address_line_1","address_line_2","bank_account_number","careers","abilities","dimensions","includes","MODEL_ID","employmentDeclarations","key","employment_declaration","some","declaration","NotificationsApi","getNotifications","getNotificationsSettings","saveNotificationsSettings","setNotificationAsSeen","notificationIds","notification_ids","setNotificationDelete","NotificationsContextDefaultState","settingsLoading","saveSettingsLoading","notifications","notificationsSettings","NotificationsContext","setNotifications","setSettingsLoading","setSaveSettingsLoading","setNotificationsSettings","notificationsData","notificationsSettingsResponse","arg","ids","res","getWindowDimensions","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","addEventListener","removeEventListener","loadData","setExperience","savePersonalData","saveExperience","saveQuestionaire","saveZusData","saveBillingData","booleanFromOption","UserAccountContext","workerData","setWorkerData","setData","avatarHelper","setAvatarHelper","setVoluntarySocialSecurity","userAccountApi","UserAccountApi","load","userData","state","element","is_workinn","voluntary_social_security","tax_office","undefined","save","catch","err","details","basicData","position","institution","buildingNumber","zipCode","website","tax","companyName","setBasicData","saveBasicData","setTaxData","saveTaxData","setInstitutionData","saveInstitutionData","EmployerAccountContext","logoHelper","setLogoHelper","employerAccountApi","EmployerAccountApi","employerData","company_name","notificationDispatch","useNotificationDispatch","userId","member","setMember","isAuthenticated","setIsAuthenticated","isAnonymous","setAnonymous","useCognitoIdp","setUseCognitoIdp","console","log","updateUserAttributes","currentAuthenticatedUser","user","getAwsCredentialsFromCognito","currentCredentials","creds","essentialCredentials","essentialCreds","AWS","config","setAuthenticatedUserFromCognito","currentUserInfo","curUser","attributes","payload","message","severity","authFulfiller","userExchangeTokenForAwsCreds","accessToken","fetch","apiGatewayInvokeUrl","method","headers","Headers","Authorization","btoa","json","ChimeDisplayName","ChimeUserId","stsCredentials","ChimeCredentials","accessKeyId","AccessKeyId","secretAccessKey","SecretAccessKey","sessionToken","SessionToken","setAuthenticatedUserFromCredentialExchangeService","context","Error","Token","isEmpty","obj","Object","keys","length","Compose","reduceRight","acc","Comp","getHours","dateTimeRange","map","el","start","moment","dateTimeFormat","end","duration","diff","asHours","reduce","next","getDateTimeRange","highlightDate","split","startDate","startTime","endDate","endTime","getDateTimeDescription","content","StyledText","title","Text","createUrl","queryUrl","queryParams","queryString","stringify","getBase64","img","callback","reader","FileReader","result","readAsDataURL","getCurrentMonth","startOf","format","endOf","getCurrentWeek","getCurrentYear","year","getErrorMessage","confirmed_application_date_overlap","lightBlue","lightGreen","lightYellow","purple","orange","grey","lightGrey","green","red","blue","yellow","dark","workinnBlue","workinnGreen","workinnYellow","workinnRed","workinnViolet","small","normal","big","large","huge","gigantic","lineHeight","regular","bold","screenMaxWidth","xs","sm","md","lg","screenWidth","hexToRGBA","hex","alpha","r","parseInt","slice","g","b","lightTheme","StyledSpin","typeToIcon","ButtonsWrapper","div","Content","TypeSvgIcon","SvgIcon","IconExit","StyledModal","AntModal","Modal","visible","subtitle","onOk","onCancel","onDeny","okMessage","footer","TWorkerStatus","offersContextInitialState","params","updateData","getMyOffers","getSelectedOffer","inviteWorker","clearSelectedOffer","apply","changePage","changeWorkerStatusInOffer","removeOffer","page","pageSize","DEFAULT_PAGE_SIZE","changePageSize","selectedOffer","count","previous","results","OffersApi","OffersContext","setPage","setSelectedOffer","setParams","page_size","offersData","getSingleOffer","offerData","offerId","workerId","successCB","errorCB","newPage","status","newOffers","offer","newWorkers","workers","worker_profile","Wrapper","EmptyList","add","errorCallback","event_dates","location","resignationRequest","sendBroadcastMessage","resignation","put","confirmResignation","getResignationRequest","getContract","getContracts","SkillsApi","getCareersList","getAbilitiesList","TSkillsContextDefaultState","careersList","abilitiesList","getCareersData","getAbilitiesData","SkillsContext","setCareersList","careersData","setAbilitiesList","abilitiesData","ROLES","dateFormat","MAX_CAREEERS_LENGTH","Flex","activeTab","Line","tab","firstTab","Tab","TabsWrapper","center","Tabs","hasNotWorkinExperience","firstTabName","secondTab","secondTabName","setActiveTab","e","preventDefault","onMouseEnter","register","registerGoogle","registerFacebook","loginGoogle","loginFacebook","defaults","common","resendActivationMail","remindPassword","uid","token","new_password","userCalendarContextDefaultState","events","userEvents","getEvents","getUserEvents","UserCalendarContext","UserCalendarApi","setEvents","setUserEvents","getMyEvents","eventsData","selectedYear","userEventsData","event","meta","EmployerDetailsFormApi","saveLogoData","checkInstitutionData","checkTaxData","statement","taxData","baseCompanyData","logoUrl","setBaseCompanyData","setLogoUrl","saveLogo","checkPersonalDataStep","checkInstitutionDataStep","checkTaxDataStep","EmployerDetailsFormContext","employerDetailsFormApi","WorkersApi","workersContextInitialState","WorkersContext","patch","getOffersStats","queryParrams","getWorkersStats","getWorkersContract","env","COGNITO_USER_POOL_ID","COGNITO_APP_CLIENT_ID","COGNITO_IDENTITY_POOL_ID","appInstanceArn","APP_INSTANCE_ARN","COGNITO_REGION","notification","borderRadius","borderLeft","THEME","success","info","getWeightForType","getLineHeightForType","getColorForProps","italic","upperCase","hoverOpacity","Paragraph","p","Red","span","required","baseURL","auth","initializeResponseInterceptor","interceptors","use","handleResponse","handleError","Promise","reject","refreshAccessToken","skipAuthRefresh","initializeRefreshTokenInterceptor","request","refreshAuthLogic","failedRequest","resolve","reload","createAuthRefreshInterceptor","this","axios","create","getEarningsStats","getOrdersStats","getCompaniesStats","getNotificationCommonData","workerName","userName","chat","employerName","employer_profile","messageCompanyName","selectedDate","start_date","end_date","start_date_time","end_date_time","removeEvent","StyledMenu","AntMenu","Menu","onClickElement","role","authContext","useHistory","Item","Employer","ChangeAvatarModal","loadDataEmployer","clearContextEmployer","loadDataUser","clearContextUser","modalVisible","setModalVisible","setAvatar","isSubmitting","setIsSubmitting","onClose","EmployerChangeLogoForm","validateOnChange","initialValues","onSubmit","values","handleSubmit","setFieldValue","ImageWrapper","AvatarCircle","src","LogoPlaceholder","accept","beforeUpload","file","size","imageUrl","onChange","listType","maxCount","showUploadList","UploadWrapper","PrimaryButtonStyled","ModalScale","centered","onCrop","view","UserChangeAvatarForm","ArrowIcon","Avatar","fadeIn","keyframes","AvatarWrapper","hoverText","UserMenuWrapper","UserMenu","getWorkerData","getEmployerData","dropdownVisibility","setDropdownVisibility","Worker","userRole","isOpenModal","setIsOpenModal","getName","Placeholder","overlay","trigger","onVisibleChange","startsWith","Header","Layout","Sider","menuMessages","jobs","myOffers","logout","candidateCatalogue","companiesCatalogue","MenuItem","urlPrefix","isActive","pathname","toLowerCase","MenuItemWrapper","SvgDesktopIconWrapper","li","MobileMenuItem","messagesNumber","MobileMenuItemWrapper","SvgWrapper","MobileMessagesNumberWrapper","onNotificationClick","chat_arn","encodeURIComponent","job_offer","matched","getDiffMessage","days","messageKey","hours","minutes","StyledLink","Link","ChatMenu","notificationsResponse","seen","currentLang","toUpperCase","translatedProffession","speciality","translations","translation","language_tag","messagesIds","setMessagesIds","uncheckConfirmModal","setUncheckConfirmModal","deleteConfirmModal","setDeleteConfirmModal","handleIsChecked","itemId","handleCheckAll","clearArray","stopPropagation","allNotificationsIds","returnNotifications","display","alignItems","justifyContent","ButtonAndIconWrapper","StyledPrimaryButton","placement","StyledMailOutlined","StyledDeleteOutlined","now","timestamp","diffMessage","offerName","NotificationItem","LogoAvatar","NotificationContentWrapper","number","StyledCheckbox","notificationId","handleRemoveId","handleAddId","checked","ChatMenuWrapper","NotificationsWrapper","ChatNumberWrapper","DeleteOutlined","MailOutlined","Checkbox","DashbordBadgeWrapper","FlexRow","MobileNavName","MobileArrow","ContentWrapper","ArrowBack","MenuWrapper","Screen","ChildrenWrapper","Navigator","MobileStyledMenu","MobileLayoutWrapper","LayoutWrapper","StyledHeader","LogoWrapper","LogoutWrapper","StyledSider","setUserRole","earnings","getEarnings","getWorkers","salary","expenses","collapsible","collapsed","mode","employerAccountCandidates","userAccountCompanies","goBack","CompaniesApi","companiesContextInitialState","CompaniesContext","employerCalendarContextDefaultState","offers","getOffers","EmployerCalendarContext","EmployerCalendarApi","setOffers","i18n","LanguageDetector","initReactI18next","init","lng","fallbackLng","resources","en","pl","debug","interpolation","escapeValue","react","useSuspense","icons","accountVerifiedBadge","xmlns","viewBox","fill","fillRule","d","workinNotificationLogo","smallWork","cx","cy","rx","ry","stroke","strokeLinecap","strokeLinejoin","work","strokeWidth","moreIcon","emptyStar","filledStar","arrowRight","infoModal","successModal","warningModal","person","greyChat","clipRule","waterMark","pointCircle","whiteXMark","blackXMark","dashboardOrders","dashboardApplications","dashboardEarnings","dashboardNewOffers","workinnPin","profileStar","shareLocation","opacity","circleClose","circleFacebookShare","circleLinkedinShare","circleWorkinnLogo","fillOpacity","arrowDown","arrowBack","arrowBackMobile","eventDate","blankStar","calendarIcon","pinIcon","salaryIcon","threeDots","dot","imageRendering","shapeRendering","textRendering","version","xmlSpace","transform","ProfileContextDefaultValues","profileCompleted","profileVerified","setProfileCompleted","setRole","setProfileId","setProfileVerified","clientType","client_type","profile_completed","verified","workerContextDefaultState","hours_worked","orders_count","rating","rating_count","worked_hours","applications_count","works","setEarnings","earningsData","employerContextDefaultState","job_offer_count","worker_count","job_offers","setWorkers","workersData"],"mappings":"yRAiBeA,eAbwC,SAAC,GAAiB,IAAfC,EAAc,EAAdA,QAUxD,OATAC,qBAAU,WACR,IAAMC,EAAWF,EAAQG,QAAO,WAC9BC,OAAOC,SAAS,EAAG,MAErB,OAAO,WACLH,OAED,CAACF,IAEG,Q,uCCFMM,EAP8B,SAAAC,GAC3C,OAAIC,cAAYC,OACP,cAAC,IAAD,CAAUC,GAAIC,EAAMC,YAEtB,cAAC,IAAD,eAAWL,K,kBCAdM,EAAYC,gBAAK,kBAAM,uEACvBC,EAAkBD,gBAAK,kBAAM,mCAC7BE,EAAiBF,gBAAK,kBAAM,mCAC5BG,EAAYH,gBAAK,kBAAM,8EACvBI,EAAWJ,gBAAK,kBAAM,mCACtBK,EAAYL,gBAAK,kBAAM,8EACvBM,EAAYN,gBAAK,kBAAM,8EACvBO,EAAWP,gBAAK,kBAAM,8EACtBQ,EAAeR,gBAAK,kBAAM,uEAC1BS,EAAqBT,gBAAK,kBAAM,gEAChCU,EAAoBV,gBAAK,kBAAM,gEAC/BW,EAAyBX,gBAAK,kBAAM,gEACpCY,EAAsBZ,gBAAK,kBAAM,mCACjCa,EAAcb,gBAAK,kBAAM,8EACzBc,EAAkBd,gBAAK,kBAAM,8EAC7Be,EAAsBf,gBAC1B,kBAAM,+EAEFgB,EAAWhB,gBAAK,kBAAM,8EACtBiB,EAAcjB,gBAAK,kBAAM,8EACzBkB,EAAkBlB,gBAAK,kBAAM,8EAC7BmB,EAAWnB,gBAAK,kBAAM,+EACtBoB,EAAkBpB,gBAAK,kBAAM,8EAC7BqB,EAAgBrB,gBAAK,kBAAM,8EAC3BsB,EAAsBtB,gBAAK,kBAAM,mCACjCuB,EAAQvB,gBAAK,kBAAM,0DAEnBwB,EACJ,qBAAKC,MAAO,CAAEC,MAAO,OAAQC,OAAQ,SAArC,SACE,cAACC,EAAA,EAAD,MAmEWC,EA/Dc,kBAC3B,cAAC,IAAD,UACE,eAAC,WAAD,CAAUL,SAAUA,EAApB,UACE,cAAC,EAAD,IACA,eAAC,IAAD,WACE,cAACM,EAAD,CAAkBC,KAAMlC,EAAMmC,SAAUC,OAAK,EAACC,UAAW9B,IACzD,cAAC0B,EAAD,CAAkBC,KAAMlC,EAAMsC,UAAWF,OAAK,EAACC,UAAWnC,IAC1D,cAAC+B,EAAD,CAAkBC,KAAMlC,EAAMuC,aAAcH,OAAK,EAACC,UAAW1B,IAC7D,cAACsB,EAAD,CACEC,KAAMlC,EAAMwC,mBACZJ,OAAK,EACLC,UAAWzB,IAEb,cAACqB,EAAD,CACEC,KAAMlC,EAAMyC,cACZL,OAAK,EACLC,UAAWxB,IAEb,cAACoB,EAAD,CACEC,KAAMlC,EAAM0C,uBACZN,OAAK,EACLC,UAAWvB,IAEb,cAACmB,EAAD,CACEC,KAAMlC,EAAM2C,oBACZP,OAAK,EACLC,UAAWtB,IAEb,cAACkB,EAAD,CACEC,KAAMlC,EAAM4C,gBACZR,OAAK,EACLC,UAAWjC,IAEb,cAAC6B,EAAD,CAAkBC,KAAMlC,EAAM6C,eAAgBT,OAAK,EAACC,UAAWhC,IAC/D,cAAC,IAAD,CAAgB6B,KAAMlC,EAAM8C,YAAaT,UAAWpB,IACpD,cAAC,IAAD,CAAgBiB,KAAMlC,EAAM+C,gBAAiBV,UAAWnB,IAExD,cAAC8B,EAAA,EAAD,UACE,eAAC,WAAD,CAAUrB,SAAU,cAACI,EAAA,EAAD,IAApB,UACE,cAAC,IAAD,CAAgBG,KAAMlC,EAAMC,UAAWmC,OAAK,EAACC,UAAW7B,IACxD,cAAC,IAAD,CAAgB0B,KAAMlC,EAAMiD,UAAWb,OAAK,EAACC,UAAW/B,IACxD,cAAC,IAAD,CAAgB4B,KAAMlC,EAAMkD,UAAWd,OAAK,EAACC,UAAW5B,IACxD,cAAC,IAAD,CAAgByB,KAAMlC,EAAMmD,SAAUf,OAAK,EAACC,UAAWf,IACvD,cAAC,IAAD,CAAgBY,KAAMlC,EAAMoD,SAAUhB,OAAK,EAACC,UAAW3B,IACvD,cAAC,IAAD,CAAgBwB,KAAMlC,EAAMqD,QAASjB,OAAK,EAACC,UAAWrB,IACtD,cAAC,IAAD,CAAgBkB,KAAMlC,EAAMsD,SAAUlB,OAAK,EAACC,UAAWlB,IACvD,cAAC,IAAD,CAAgBe,KAAMlC,EAAMuD,YAAalB,UAAWjB,IACpD,cAAC,IAAD,CAAgBc,KAAMlC,EAAMwD,gBAAiBnB,UAAWhB,IACxD,cAAC,IAAD,CAAgBa,KAAMlC,EAAMyD,SAAUrB,OAAK,EAACC,UAAWd,IACvD,cAAC,IAAD,CAAgBW,KAAMlC,EAAM0D,OAAQtB,OAAK,EAACC,UAAWb,IACrD,cAAC,IAAD,CAAgBU,KAAMlC,EAAM2D,aAActB,UAAWX,IACrD,cAAC,IAAD,CACEQ,KAAMlC,EAAM4D,oBACZxB,OAAK,EACLC,UAAWZ,kB,oKCtEnBoC,GAAa,CACjBC,KACAC,KACAC,KACAC,IACAC,KACAC,IACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,IACAC,KACAC,KACAC,KACAC,MAgBaC,GAbO,WACpB,IAAMC,EAASC,aAAaC,QAAQ,eAAiB,KACrD,OACE,cAAC,IAAD,CAAeC,MAAOA,IAAtB,SACE,cAAC,IAAD,CAAStB,WAAYA,GAArB,SACE,cAAC,IAAD,CAAgBmB,OAAmB,OAAXA,EAAkBI,IAAOC,IAAjD,SACE,cAAC,EAAD,WCrCKC,GAZS,SAACC,GACnBA,GAAeA,aAAuBC,UACxC,gCAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,O,6BCJW,WACvBQ,KAAQC,UAAU,CAChBC,KAAM,CAEJC,eAAgBC,KAAUC,sBAE1BC,OAAQF,KAAUG,cAGlBC,mBAAoBJ,KAAUG,cAE9BE,WAAYL,KAAUM,kBAEtBC,oBAAqBP,KAAUQ,oBAEjCC,QAAS,CAEPC,OAAQV,KAAUW,2BAElBT,OAAQF,KAAUY,YAElBb,eAAgBC,KAAUC,0BClBhCY,GAEAC,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,GAAD,MAEFC,SAASC,eAAe,SAM1B/B,M,qGChBMgC,EACA,UADAA,EAEI,SAACC,GAAD,4BAAwCA,EAAxC,MAFJD,EAGM,SAACC,GAAD,8BAA0CA,EAA1C,MAHND,EAIO,iBAJPA,EAKY,SAACC,GAAD,8BAAiCA,EAAjC,MALZD,EAMS,uBANTA,EAOQ,0BAPRA,EAQQ,wBARRA,EASe,wBATfA,EAUgB,yBAVhBA,EAWiB,0BA2IjBE,E,kDACJ,aAAe,IAAD,8BACZ,cAAMC,IAAkBC,mBAAqB,IAAI,IAG5CC,QAJO,sBAIG,sBAAAC,EAAA,+EACf,EAAKC,SAASC,IAAwBR,IADvB,2CAJH,EAOPS,UAPO,uCAOK,WAAOR,GAAP,SAAAK,EAAA,+EACjB,EAAKC,SAASC,IAA4BR,EAAaC,KADtC,2CAPL,wDAUPS,YAVO,uCAUO,WAAOT,GAAP,SAAAK,EAAA,+EACnB,EAAKC,SAASC,IAA8BR,EAAeC,KADxC,2CAVP,wDAaPU,YAbO,uCAaO,WACnBV,GADmB,SAAAK,EAAA,+EAGnB,EAAKC,SAASK,KACZZ,EACA,CACEa,WAAYZ,KANG,2CAbP,wDAuBPa,aAvBO,sBAuBQ,sBAAAR,EAAA,+EAGpB,EAAKC,SAASC,IACZR,IAJkB,2CAvBR,EA8BPe,eA9BO,uCA8BU,WAAOd,GAAP,SAAAK,EAAA,+EACtB,EAAKC,SAASS,OAAmBhB,EAAqBC,KADhC,2CA9BV,wDAiCPgB,YAjCO,uCAiCO,WAAOC,GAAP,SAAAZ,EAAA,+EAIf,EAAKC,SAASK,KAAKZ,EAAmBkB,IAJvB,2CAjCP,wDAuCPC,WAvCO,uCAuCM,WAAOD,GAAP,SAAAZ,EAAA,+EAId,EAAKC,SAASK,KAAKZ,EAAkBkB,IAJvB,2CAvCN,wDA6CPE,WA7CO,uCA6CM,WAAOF,GAAP,SAAAZ,EAAA,+EAClB,EAAKC,SAASK,KAAKZ,EAAkBkB,IADnB,2CA7CN,wDAgDPG,kBAhDO,sBAgDa,sBAAAf,EAAA,+EACzB,EAAKC,SAASC,IAAyBR,IADd,2CAhDb,EAmDPsB,mBAnDO,sBAmDc,sBAAAhB,EAAA,+EAC1B,EAAKC,SAASC,IAA0BR,IADd,2CAnDd,EAsDPuB,oBAtDO,sBAsDe,sBAAAjB,EAAA,+EAC3B,EAAKC,SAASC,IAA2BR,IADd,2CAtDf,E,UADSwB,KA2DVtB,O,qECnKTuB,EAAc,SAACC,EAAkBC,GACrC,OAAQD,GACN,IAAK,QACH,OAAOC,EAAMC,UACf,QACE,OAAOD,EAAME,QAIbC,EAAmB,SAACJ,EAAkBC,GAC1C,OAAQD,GACN,IAAK,QACH,OAAOC,EAAMI,KACf,QACE,OAAOJ,EAAMK,UAIbC,EAAoB,SAACP,EAAkBC,GAC3C,OAAQD,GACN,IAAK,QACH,OAAOC,EAAMI,KACf,QACE,OAAOJ,EAAMK,UAIbE,EAAeC,YAAOC,IAAPD,EACnB,gBACE5H,EADF,EACEA,MACA8H,EAFF,EAEEA,WACAC,EAHF,EAGEA,UACAC,EAJF,EAIEA,aAJF,IAKE1E,MAAS8D,EALX,EAKWA,MAAOa,EALlB,EAKkBA,SAChBC,EANF,EAMEA,SACAC,EAPF,EAOEA,OACAC,EARF,EAQEA,UARF,OASMC,YATL,IAAD,4iBAWWrI,EACAkH,EAAYgB,EAAUd,GAEjBG,EAAiBW,EAAUd,GAC1BU,EACFG,EAASK,OACNZ,EAAkBQ,EAAUd,GAC9BW,EACGC,EAENG,EAAS,SAAW,QACpBA,EAAS,SAAW,OAEpBjB,EAAYgB,EAAUd,GACjBG,EAAiBW,EAAUd,GACzBM,EAAkBQ,EAAUd,GAInCF,EAAYgB,EAAUd,GACjBG,EAAiBW,EAAUd,GACzBM,EAAkBQ,EAAUd,GAGzBgB,EAAY,YAAc,WAKpCG,IAlG8B,SAAC,GAAD,QAC3CvI,aAD2C,MACnC,OADmC,EAE3CwI,EAF2C,EAE3CA,MAF2C,IAG3CV,kBAH2C,MAG9B,IAH8B,EAI3CW,EAJ2C,EAI3CA,QACAtB,EAL2C,EAK3CA,KACAa,EAN2C,EAM3CA,aACAD,EAP2C,EAO3CA,UACAW,EAR2C,EAQ3CA,UAR2C,IAS3CC,eAT2C,SAU3CC,EAV2C,EAU3CA,SAV2C,IAW3CT,cAX2C,aAY3CC,iBAZ2C,gBAc3C,cAACT,EAAD,CACEe,UAAWA,EACX1I,MAAOA,EACP8H,WAAYA,EACZW,QAASA,EACTP,SAAUf,EACVwB,QAASA,EACTZ,UAAWA,EACXC,aAAcA,EACdY,SAAUA,EACVT,OAAQA,EACRC,UAAWA,EAXb,SAYGI,M,yMCfCK,EAAyC,CAC7CF,SAAS,EACTG,aAAc,GACdC,OAAQ,aACRC,iBAAkB,aAClBC,QAAS,cAGEC,EAAcC,wBAAgCN,GAkG5ChG,IAhGuB,SAAC,GAAkB,IAAhBuG,EAAe,EAAfA,SACjCC,EAAiBC,qBAAWC,KAC5BC,EAAkBF,qBAAWG,KAC7BC,EAAkBJ,qBAAWK,KAC7BC,EAAgBN,qBAAWO,KACjC,EAAoCC,cAA5BC,EAAR,EAAQA,WAAYC,EAApB,EAAoBA,YACpB,EAA8BC,mBAAkBpB,EAAqBF,SAArE,mBAAOA,EAAP,KAAgBuB,EAAhB,KACA,EAAwCD,mBACtCpB,EAAqBC,cADvB,mBAAOA,EAAP,KAAqBqB,EAArB,KAGMC,EAAU,IAAIC,IACZC,EAAMC,cAAND,EAgBFvB,EAAM,uCAAG,WACbyB,EACAC,EACAC,EACAlN,EACAmN,GALa,yBAAA5E,EAAA,6DAObmE,GAAW,GAPE,kBASYE,EAAQQ,MAAM,CACnCJ,QACAC,aAXS,OASLI,EATK,OAaXT,EAAQU,WAAWD,EAASE,QAASF,EAASG,aAAcH,EAASI,UACrElB,EAAWS,EAAOC,GAClBjN,EAAQ0N,KAAK/M,EAAMC,WACnB+M,YAAmB,CACjBhE,KAAM,UACNiE,YAAad,EAAE,4BAEjBlH,aAAaiI,QAAQ,gBAAiB,KACtCjI,aAAaiI,QAAQ,qBAAsBb,GArBhC,kDAuBXL,EAAe,UAAC,KAAImB,gBAAL,iBAAC,EAAc3E,YAAf,aAAC,EAAoB4E,QACpCZ,EAAca,WAAW,CAAEhB,OAAO,IAClCG,EAAca,WAAW,CAAEf,UAAU,IACrCrH,aAAaiI,QACX,iBACCI,OAAOrI,aAAaC,QAAQ,kBAAoB,GAAGqI,YAEhDC,EAAQC,YAAoB,OAAC,EAAD,6BAAC,KAAKN,gBAAN,iBAAC,EAAe3E,YAAhB,aAAC,EAAqBkF,OAAO,IAC/DV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,oBAAD,OACwB,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IADnD,OACwDH,EAAMI,SAlCnE,yBAsCX7B,GAAW,GAtCA,6EAAH,8DAuDZ,OACE,cAAChB,EAAY8C,SAAb,CACEC,MAAO,CACLtD,UACAG,eACAG,QA1EU,SAACzL,GACf0O,cACAlC,IACA5G,aAAa+I,WAAW,sBACxB3O,EAAQ0N,KAAK/M,EAAMsC,WACnB0K,YAAmB,CACjBhE,KAAM,UACNiE,YAAad,EAAE,6BAEjBjB,EAAe+C,eACf5C,EAAgB4C,eAChB1C,EAAgB0C,eAChBxC,EAAcwC,gBA+DVrD,SACAC,iBApBmB,SACvB/K,EACAoO,EACA7O,GAEAsN,YAAW7M,EAAQoO,EAAS,uBAC5B7O,EAAQ0N,KAAK/M,EAAMC,WACnB+M,YAAmB,CACjBhE,KAAM,UACNiE,YAAad,EAAE,8BAKjB,SAQGlB,M,uJCtGDkD,EAA+B,CACnC3D,SAAS,EACT4D,UAAW,GACXnG,YAAa,aACbI,eAAgB,aAChBD,aAAc,aACd6F,aAAc,cAGH3C,EAAkBN,wBAC7BmD,GAGIE,EAAM,IAAI7G,IAsEDlD,IApE2B,SAAC,GAAkB,IAAhB2G,EAAe,EAAfA,SAC3C,EAA8Ba,mBAC5BqC,EAA6B3D,SAD/B,mBAAOA,EAAP,KAAgBuB,EAAhB,KAIA,EAAkCD,mBAChCqC,EAA6BC,WAD/B,mBAAOA,EAAP,KAAkBE,EAAlB,KAIQC,EAAcpD,qBAAWC,KAAzBmD,UAEFtG,EAAW,uCAAG,WAAOV,EAAYiH,GAAnB,eAAA5G,EAAA,6DAClBmE,GAAW,GADO,SAEKsC,EAAIpG,YAAYV,GAFrB,OAEZkH,EAFY,OAGlBH,EAAa,GAAD,mBAAKF,GAAL,CAAgBK,KAC5B1C,GAAW,GACXyC,IALkB,2CAAH,wDAQXnG,EAAc,uCAAG,WAAOd,EAAYiH,GAAnB,iBAAA5G,EAAA,2DACf8G,EADe,UACFN,EAAUO,MAAK,SAAAC,GAAG,aAAI,UAAAA,EAAIvL,eAAJ,eAAakE,MAAOA,YADxC,aACF,EAA+CA,IAD7C,uBAGnBwE,GAAW,GAHQ,SAIbsC,EAAIhG,eAAeqG,GAJN,OAKnBJ,EAAaF,EAAUS,QAAO,SAAAD,GAAG,OAAIA,EAAIrH,KAAOmH,MAChD3C,GAAW,GACXyC,IAPmB,2CAAH,wDAWdpG,EAAY,uCAAG,4BAAAR,EAAA,yDACd/H,cAAYC,OADE,wDAEnBiM,GAAW,GAFQ,kBAIWsC,EAAIjG,eAJf,OAIX0G,EAJW,OAKjBR,EAAaQ,GACb/C,GAAW,GANM,kDAQjBA,GAAW,GARM,0DAAH,qDAYlBzM,qBAAU,WACJiP,GACFnG,MAED,IAOH,OACE,cAACkD,EAAgBuC,SAAjB,CACEC,MAAO,CACLtD,UACA4D,YACAnG,cACAI,iBACAD,eACA6F,aAbe,WACnBlC,GAAW,GACXuC,EAAa,MAIb,SASGrD,M,yGCxGK8D,E,+ECaNzH,EACQ,sBADRA,EAEe,4BAFfA,EAGc,2BAHdA,EAIc,sBAJdA,EAKmB,4BALnBA,EAMU,sBAsCD0H,E,kDAlCb,aAAsB,IAAD,8BACnB,cAAMvH,IAAkBC,mBAAqB,IAAI,IAG5CuH,eAJc,uCAIG,WAAOC,GAAP,SAAAtH,EAAA,+EACtB,EAAKC,SAASK,KAAcZ,EAAkB4H,IADxB,2CAJH,wDAOdC,kBAPc,uCAOM,WACzBD,GADyB,SAAAtH,EAAA,+EAGzB,EAAKC,SAASK,KACZZ,EACA4H,IALuB,2CAPN,wDAedE,iBAfc,uCAeK,WACxBF,GADwB,SAAAtH,EAAA,+EAGxB,EAAKC,SAASK,KAAmCZ,EAAwB4H,IAHjD,2CAfL,wDAoBdG,iBApBc,uCAoBK,WACxBH,GADwB,SAAAtH,EAAA,+EAGxB,EAAKC,SAASK,KAAmCZ,EAAwB4H,IAHjD,2CApBL,wDAyBdI,sBAzBc,uCAyBU,WAC7BJ,GAD6B,SAAAtH,EAAA,+EAG7B,EAAKC,SAASK,KAA4BZ,EAA6B4H,IAH1C,2CAzBV,wDA8BdK,aA9Bc,uCA8BC,WAAOL,GAAP,SAAAtH,EAAA,+EACpB,EAAKC,SAASK,KAAuBZ,EAAoB4H,IADrC,2CA9BD,wD,UADUpG,K,yBDtBrBiG,K,0BAAAA,E,+BAAAA,M,KA6FZ,IAAMrE,EAAoD,CACxD8E,aAAc,CACZC,KAAM,GACNC,QAAS,GACTC,MAAO,GACPC,IAAK,GACLC,OAAQ,GACRC,gBAAiB,GACjBC,WAAY,GACZC,KAAM,GACNC,MAAO,GACPC,mBAAoBnB,EAAYoB,oBAChCC,YAAarB,EAAYoB,oBACzBE,UAAW,GACXC,IAAK,GACLC,QAAS,GACTlK,OAAQ,IAEVmK,YAAa,CACXC,OAAQ,GACRC,iBAAkB,GAClBC,iBAAkB,GAClBX,KAAM,GACND,WAAY,GACZa,KAAM,GACNL,QAAS,IAEXM,kBAAmB,CACjBC,uCAAwC,GACxCC,yCAA0C,GAC1CC,wCAAyC,GACzCC,uCAAwC,GACxCC,iBAAkB,GAClBC,WAAY,GACZC,QAAS,GACTC,QAAS,GACTC,UAAW,IAEbC,QAAS,CACPC,wBAAyB,GACzBC,YAAa,IAEfC,eAAgB,CACdC,YAAa,GACbC,OAAQ,GACRC,WAAY,GACZC,OAAQ,GACRhQ,OAAQ,GACRiQ,KAAM,GACNC,MAAO,GACPC,MAAO,IAETC,gBAAiB,GACjBC,gBAAiB,aACjBC,eAAgB,aAChBC,qBAAsB,aACtBC,WAAY,aACZC,kBAAmB,aACnBC,mBAAoB,aACpBvE,aAAc,aACdwE,WAAY,aACZC,kBAAmB,aACnBC,qBAAsB,aACtBC,qBAAsB,aACtBC,0BAA2B,aAC3BC,iBAAkB,cAMPC,EACX/H,wBAA2CN,GAoL9BzG,IAlLkC,SAAC,GAAkB,IAAhBgH,EAAe,EAAfA,SAClD,EAAwCa,mBACtCpB,EAAqB8E,cADvB,mBAAOA,EAAP,KAAqB2C,EAArB,KAGA,EAAsCrG,mBACpCpB,EAAqB8F,aADvB,mBAAOA,EAAP,KAAoB4B,EAApB,KAGA,EAAkDtG,mBAChDpB,EAAqBmG,mBADvB,mBAAOA,EAAP,KAA0BwB,EAA1B,KAGA,EAA8BvG,mBAAkBpB,EAAqB6G,SAArE,mBAAOA,EAAP,KAAgBe,EAAhB,KACA,EAA4CxG,mBAC1CpB,EAAqBgH,gBADvB,mBAAOA,EAAP,KAAuBa,EAAvB,KAGA,EAA8CzG,mBAC5CpB,EAAqBwH,iBADvB,mBAAOA,EAAP,KAAwBM,EAAxB,KAaMQ,EAAqB,IAAIhE,EA2H/B,OACE,cAAC+D,EAAuBlF,SAAxB,CACEC,MAAO,CACL0B,eACAgB,cACAK,oBACAU,UACAG,iBACAQ,kBACAC,kBACAC,iBACAC,uBACAC,aACAC,oBACAC,qBACAvE,aAnJe,WACnBkE,EAAgBzH,EAAqB8E,cACrC4C,EAAe1H,EAAqB8F,aACpC6B,EAAqB3H,EAAqBmG,mBAC1CyB,EAAW5H,EAAqB6G,SAChCgB,EAAkB7H,EAAqBgH,gBACvCc,EAAmB9H,EAAqBwH,kBA8IpCO,WAzIa,SAACQ,GAAD,OACjBD,EAAmB/D,eAAe,CAAEiE,OAAQD,KAyIxCP,kBAvIoB,SAAClK,GAAD,OACxBwK,EAAmB7D,kBAAkB,CACnCgE,WAAY3K,EAAKiH,KACjB2D,UAAW5K,EAAKkH,QAChB2D,cAAe7K,EAAK6H,UACpBiD,MAAO9K,EAAKmH,MACZW,KA5CqBxC,EA4CEtF,EAAK8H,IA3Cf,mBAAVxC,GAAsBA,EA2CU,SAAW,QAC9CyF,IAAK/K,EAAKoH,IACVC,OAAQrH,EAAKqH,OACb2D,SAAUhL,EAAKuH,WACfC,KAAMxH,EAAKwH,KACXO,QAAS/H,EAAK+H,QACdkD,YAAajL,EAAKnC,OAClB4J,MAAOzH,EAAK4H,YAAc5H,EAAKyH,MAC/BH,gBAAiBtH,EAAKsH,kBApDF,IAAChC,GA8KnB6E,qBA7CuB,SAACnK,GAAD,OAC3BwK,EAAmB5D,iBAAiB,CAClCK,KAAMjH,EAAKiI,OACXiD,eAAgBlL,EAAKkI,iBACrBiD,eAAgBnL,EAAKmI,iBACrBX,KAAMxH,EAAKwH,KACXO,QAAS/H,EAAK+H,QACdiD,SAAUhL,EAAKuH,WACf6D,oBAAqBpL,EAAKoI,QAsCxBgC,qBAnCuB,SAACpK,GAAD,OAC3BwK,EAAmB3D,iBAAiB,CAClCwE,QAASrL,EAAKmJ,YACdmC,UAAWtL,EAAKoJ,OAChBC,WAAYrJ,EAAKqJ,WACjBkC,WAAYvL,EAAKmJ,YAAYqC,SAASC,KAClC,CACEnC,OAAQxE,OAAO9E,EAAKsJ,QACpBhQ,OAAQwL,OAAO9E,EAAK1G,QACpBiQ,KAAMzE,OAAO9E,EAAKuJ,MAClBC,MAAO1E,OAAO9E,EAAKwJ,OACnBC,MAAO3E,OAAO9E,EAAKyJ,QAErB,QAuBFY,0BAzH4B,SAACrK,GACjC,IAAM0L,EAAyB,CAC7B,CACEC,IAAK,6CACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MACW,+CAApBA,EAAYH,KACZG,EAAYxG,UAGlB,CACEqG,IAAK,iDACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MACW,mDAApBA,EAAYH,KACZG,EAAYxG,UAGlB,CACEqG,IAAK,+CACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MACW,iDAApBA,EAAYH,KACZG,EAAYxG,UAGlB,CACEqG,IAAK,+CACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MACW,iDAApBA,EAAYH,KACZG,EAAYxG,UAGlB,CACEqG,IAAK,qBACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MAAwB,uBAApBA,EAAYH,KAAgCG,EAAYxG,UAG3E,CACEqG,IAAK,aACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MAAwB,eAApBA,EAAYH,KAAwBG,EAAYxG,UAGnE,CACEqG,IAAK,UACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MAAwB,YAApBA,EAAYH,KAAqBG,EAAYxG,UAGhE,CACEqG,IAAK,UACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MAAwB,YAApBA,EAAYH,KAAqBG,EAAYxG,UAGhE,CACEqG,IAAK,YACLrG,MAAOtF,EAAK4L,uBAAuBC,MACjC,SAAAC,GAAW,MAAwB,cAApBA,EAAYH,KAAuBG,EAAYxG,WAKpE,OAAOkF,EAAmB1D,sBAAsB,CAC9C8E,uBAAwBF,KAuDtBpB,iBAnDmB,SAACtK,GAAD,OACvBwK,EAAmBzD,aAAa/G,KA8BhC,SAsBGyC,M,iCEzVQ,QAA0B,6C,+JCOnC3D,EACW,qBADXA,EAEmB,8BAFnBA,EAGc,0BAHdA,EAIgB,4BA6GPiN,E,kDAnCb,aAAe,IAAD,8BACZ,cAAM9M,IAAkBC,mBAAqB,IAAI,IAG5C8M,iBAJO,sBAIY,sBAAA5M,EAAA,+EACxB,EAAKC,SAASC,IAAiCR,IADvB,2CAJZ,EAOPmN,yBAPO,sBAOoB,sBAAA7M,EAAA,+EAChC,EAAKC,SAASC,IAAiCR,IADf,2CAPpB,EAUPoN,0BAVO,uCAUqB,WACjCxF,GADiC,SAAAtH,EAAA,+EAGjC,EAAKC,SAASK,KACZZ,EACA4H,IAL+B,2CAVrB,wDAkBPyF,sBAlBO,uCAkBiB,WAC7BC,GAD6B,SAAAhN,EAAA,+EAG7B,EAAKC,SAASK,KACZZ,EACA,CAAEuN,iBAAkBD,KALO,2CAlBjB,wDA0BPE,sBA1BO,uCA0BiB,WAC7BF,GAD6B,SAAAhN,EAAA,+EAG7B,EAAKC,SAASK,KACZZ,EACA,CAAEuN,iBAAkBD,KALO,2CA1BjB,wD,UADe9L,K,eC/DlBiM,EAA+D,CAC1EvK,SAAS,EACTwK,iBAAiB,EACjBC,qBAAqB,EACrBC,cAAe,GACfC,sBAAuB,GACvBX,iBAAkB,aAClBC,yBAA0B,aAC1BC,0BAA2B,aAC3BC,sBAAuB,aACvBG,sBAAuB,cAGZM,EAAuBpK,wBAClC+J,GAGI1G,EAAM,IAAIkG,EAiGD1P,IA/FgC,SAAC,GAAkB,IAAhBoG,EAAe,EAAfA,SACxCkB,EAAMC,cAAND,EACR,EAA0CL,mBAExCiJ,EAAiCG,eAFnC,mBAAOA,EAAP,KAAsBG,EAAtB,KAIA,EAA8BvJ,mBAC5BiJ,EAAiCvK,SADnC,mBAAOA,EAAP,KAAgBuB,EAAhB,KAIA,EAA8CD,mBAE5CiJ,EAAiCC,iBAFnC,mBAAOA,EAAP,KAAwBM,EAAxB,KAIA,EAAsDxJ,mBAEpDiJ,EAAiCE,qBAFnC,mBAAOA,EAAP,KAA4BM,EAA5B,KAIA,EAA0DzJ,mBAExDiJ,EAAiCI,uBAFnC,mBAAOA,EAAP,KAA8BK,EAA9B,KAIMhB,EAAgB,uCAAG,4BAAA5M,EAAA,6DACvBmE,GAAW,GADY,SAESsC,EAAImG,mBAFb,OAEjBiB,EAFiB,OAGvBJ,EAAiBI,GACjB1J,GAAW,GAJY,2CAAH,qDAOhB0I,EAAwB,uCAAG,4BAAA7M,EAAA,6DAC/B0N,GAAmB,GADY,kBAGejH,EAAIoG,2BAHnB,OAGvBiB,EAHuB,OAI7BF,EAAyBE,GAJI,iDAM7B,kCAAI,KAAKvI,WACPH,YAAmB,CAAEhE,KAAM,QAASiE,YAAad,EAAE,0BAPxB,yBAU7BmJ,GAAmB,GAVU,4EAAH,qDAcxBZ,EAAyB,uCAAG,WAAOiB,GAAP,SAAA/N,EAAA,6DAChC2N,GAAuB,GADS,kBAGMlH,EAAIqG,0BAA0BiB,GAHpC,cAI9B3I,YAAmB,CAAEhE,KAAM,UAAWiE,YAAad,EAAE,wBAJvB,iDAM9B,kCAAI,KAAKgB,WACPH,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,sBATW,yBAa9BoJ,GAAuB,GAbO,4EAAH,sDAiBzBZ,EAAqB,uCAAG,WAAOiB,GAAP,SAAAhO,EAAA,sDAC5B2N,GAAuB,GAEvBlH,EAAIsG,sBAAsBiB,GAAKnQ,MAAK,SAAAoQ,GAClCrB,OAJ0B,2CAAH,sDAQrBM,EAAqB,uCAAG,WAAOc,GAAP,SAAAhO,EAAA,sDAC5B2N,GAAuB,GAEvBlH,EAAIyG,sBAAsBc,GAAKnQ,MAAK,SAAAoQ,GAClCrB,OAJ0B,2CAAH,sDAQ3B,OACE,cAACY,EAAqBvH,SAAtB,CACEC,MAAO,CACLtD,UACA0K,gBACAF,kBACAC,sBACAE,wBACAX,mBACAC,2BACAC,4BACAC,wBACAG,yBAXJ,SAaG7J,M,oDChIP,SAAS6K,IACP,MAAmDrW,OACnD,MAAO,CACLoC,MAFF,EAAQkU,WAGNjU,OAHF,EAA2BkU,aAsBdC,IAfa,WAC1B,MAAgDnK,mBAASgK,KAAzD,mBAAOI,EAAP,KAAyBC,EAAzB,KAWA,OATA7W,qBAAU,WACR,IAAM8W,EAAe,WACnBD,EAAoBL,MAItB,OADArW,OAAO4W,iBAAiB,SAAUD,GAC3B,kBAAM3W,OAAO6W,oBAAoB,SAAUF,MACjD,IAEIF,I,wLCsDHxL,EAAgD,CACpD8E,aAAc,CACZvC,YAAa,GACbiG,OAAQ,GACRzD,KAAM,GACNC,QAAS,GACTC,MAAO,GACPC,IAAK,GACLC,OAAQ,GACRE,WAAY,GACZC,KAAM,GACNC,MAAO,GACPI,UAAW,GACXC,IAAK,GACLC,QAAS,GACTkD,YAAa,GACbvD,mBAAoBnB,IAAYoB,oBAChCL,gBAAiB,GACjB+D,QAAS,GACTC,UAAW,GACXhC,OAAQ,GACRhQ,OAAQ,GACRiQ,KAAM,GACNC,MAAO,GACPC,MAAO,IAETzB,YAAa,CACXC,OAAQ,GACRC,iBAAkB,GAClBC,iBAAkB,GAClBX,KAAM,GACND,WAAY,GACZa,KAAM,GACNL,QAAS,IAEXiB,wBAAyB,GACzBX,kBAAmB,CACjBC,uCAAwC,GACxCC,yCAA0C,GAC1CC,wCAAyC,GACzCC,uCAAwC,GACxCC,iBAAkB,GAClBC,WAAY,GACZC,QAAS,GACTC,QAAS,GACTC,UAAW,IAEbO,WAAY,GACZrH,SAAS,EACT+L,SAAU,aACVpE,gBAAiB,aACjBqE,cAAe,aACfC,iBAAkB,aAClBC,eAAgB,aAChBC,iBAAkB,aAClBC,YAAa,aACbC,gBAAiB,aACjB5I,aAAc,cAGV6I,EAAoB,SAAChJ,GAAD,MACP,mBAAVA,GAAsBA,GAElBiJ,EACX/L,wBAAuCN,GAoT1BtG,IAlT8B,SAAC,GAAkB,IAAhB6G,EAAe,EAAfA,SAC9C,EAAqDE,qBAAWO,KAAlDsL,EAAd,EAAQxO,KAA2ByO,EAAnC,EAA0BC,QAC1B,EAAwCpL,mBACtCpB,EAAqB8E,cADvB,mBAAOA,EAAP,KAAqB2C,EAArB,KAGA,EAAoCrG,mBAClCpB,EAAqBmH,YADvB,mBAAOA,EAAP,KAAmB2E,EAAnB,KAGA,EAAkD1K,mBAChDpB,EAAqBmG,mBADvB,mBAAOA,EAAP,KAA0BwB,EAA1B,KAGA,EAA8BvG,mBAAkBpB,EAAqBF,SAArE,mBAAOA,EAAP,KAAgBuB,EAAhB,KACA,EAAwCD,mBAAiB,IAAzD,mBAAOqL,EAAP,KAAqBC,EAArB,KACA,EAAsCtL,mBACpCpB,EAAqB8F,aADvB,mBAAOA,EAAP,KAAoB4B,EAApB,KAGA,EAA8DtG,mBAE5DpB,EAAqB8G,yBAFvB,mBAAOA,EAAP,KAAgC6F,EAAhC,KAIQlL,EAAMC,cAAND,EAMFmL,EAAiB,IAAIC,IA4KrBhB,EAAQ,uCAAG,WAAOhP,GAAP,iCAAAK,EAAA,6DACfmE,GAAW,GADI,kBAGUuL,EAAeE,KAAKjQ,GAH9B,OAGPkQ,EAHO,OAIbtF,GAAgB,SAAAuF,GAAK,oBAAK,CACxBzK,YAAawK,EAASxK,YACtBiG,OAAQuE,EAASvE,OACjBzD,KAAMgI,EAAStE,WACfzD,QAAS+H,EAASrE,UAClBzD,MAAO8H,EAASnE,MAChB1D,IAAK6H,EAASlE,IACd1D,OAAQ4H,EAAS5H,OACjBE,WAAY0H,EAASjE,SACrBxD,KAAMyH,EAASzH,KACfC,MAAOwH,EAASxH,MAChBC,mBAAoBuH,EAASvH,mBAC7BJ,gBAAiB2H,EAAS3H,gBAC1BO,UAAWoH,EAASpE,cACpB/C,IAAsB,WAAjBmH,EAASnH,IACdC,QAASkH,EAASlH,QAClBkD,YAAagE,EAAShE,YACtBI,QAAS4D,EAAS5D,QAClBC,UAAW2D,EAAS3D,UACpBhC,OAAM,UAAE2F,EAAS1D,kBAAX,aAAE,EAAqBjC,OAC7BhQ,OAAM,UAAE2V,EAAS1D,kBAAX,aAAE,EAAqBjS,OAC7BiQ,KAAI,UAAE0F,EAAS1D,kBAAX,aAAE,EAAqBhC,KAC3BC,MAAK,UAAEyF,EAAS1D,kBAAX,aAAE,EAAqB/B,MAC5BC,MAAK,UAAEwF,EAAS1D,kBAAX,aAAE,EAAqB9B,UAE9BmF,GAAgB,SAAAM,GAAK,OAAID,EAASvE,UAClCsD,EAAciB,EAAS5F,WAAWhD,QAAO,SAAA8I,GAAO,OAAKA,EAAQC,eAC7DvF,EAAqB,CACnBvB,wCACE,UAAA2G,EAASrD,uBAAuBzF,MAC9B,SAAAgJ,GAAO,MAAoB,+CAAhBA,EAAQxD,cADrB,eAEGrG,SAAS,EACdiD,0CACE,UAAA0G,EAASrD,uBAAuBzF,MAC9B,SAAAgJ,GAAO,MAAoB,mDAAhBA,EAAQxD,cADrB,eAEGrG,SAAS,EACdkD,yCACE,UAAAyG,EAASrD,uBAAuBzF,MAC9B,SAAAgJ,GAAO,MAAoB,iDAAhBA,EAAQxD,cADrB,eAEGrG,SAAS,EACdmD,wCACE,UAAAwG,EAASrD,uBAAuBzF,MAC9B,SAAAgJ,GAAO,MAAoB,iDAAhBA,EAAQxD,cADrB,eAEGrG,SAAS,EACdoD,kBACE,UAAAuG,EAASrD,uBAAuBzF,MAC9B,SAAAgJ,GAAO,MAAoB,uBAAhBA,EAAQxD,cADrB,eAEGrG,SAAS,EACdqD,YACE,UAAAsG,EAASrD,uBAAuBzF,MAAK,SAAAgJ,GAAO,MAAoB,eAAhBA,EAAQxD,cAAxD,eACIrG,SAAS,EACfsD,SACE,UAAAqG,EAASrD,uBAAuBzF,MAAK,SAAAgJ,GAAO,MAAoB,YAAhBA,EAAQxD,cAAxD,eACIrG,SAAS,EACfuD,SACE,UAAAoG,EAASrD,uBAAuBzF,MAAK,SAAAgJ,GAAO,MAAoB,YAAhBA,EAAQxD,cAAxD,eACIrG,SAAS,EACfwD,WACE,UAAAmG,EAASrD,uBAAuBzF,MAAK,SAAAgJ,GAAO,MAAoB,cAAhBA,EAAQxD,cAAxD,eACIrG,SAAS,IAEjBuJ,EAA2BI,EAASI,2BACpCzF,EAAe,CACb3B,OAAQgH,EAASK,WAAWrI,KAC5BiB,iBAAkB+G,EAASK,WAAWpE,eACtC/C,iBAAkB8G,EAASK,WAAWnE,eACtC3D,KAAMyH,EAASK,WAAW9H,KAC1BD,WAAY0H,EAASK,WAAWtE,SAChC5C,KAAM6G,EAAS7D,oBACfrD,QAASkH,EAASlH,UAzEP,mDA4Eb,kCAAI,KAAKpD,WACPH,YAAmB,CAAEhE,KAAM,QAASiE,YAAad,EAAE,0BA7ExC,yBAgFbJ,GAAW,GAhFE,6EAAH,sDAoFd,OACE,cAACgL,EAAmBlJ,SAApB,CACEC,MAAO,CACL0B,eACAgB,cACAK,oBACAgB,aACAL,0BACAhH,UACA+L,WACApE,kBACAqE,gBACAvI,aAhRe,WACnBkE,EAAgBzH,EAAqB8E,eAgRjCiH,iBA3QmB,SAAClP,EAAqBiB,GAC7C,IAAM0G,EAAc,CAClBjC,YAAazE,EAAKyE,YAAczE,EAAKyE,YAAc,GACnDiG,OAAQiE,IAAiB3O,EAAK0K,YAAS6E,EAAYvP,EAAK0K,OACxDW,QAASrL,EAAKqL,QACdC,UAAWtL,EAAKsL,UAChBX,WAAY3K,EAAKiH,KACjB2D,UAAW5K,EAAKkH,QAChB2D,cAAe7K,EAAK6H,UACpBC,IAAKwG,EAAkBtO,EAAK8H,KAAO,SAAW,OAC9CT,OAAQrH,EAAKqH,OACbG,KAAMxH,EAAKwH,KACXwD,SAAUhL,EAAKuH,WACf0D,YAAajL,EAAKiL,YAClBlD,QAAS/H,EAAK+H,QACdN,MAAOzH,EAAK0H,mBAAqB1H,EAAKyH,MACtC8D,WAAYvL,EAAKqL,QAAQG,SAASC,KAC9B,CACEnC,OAAQxE,OAAO9E,EAAKsJ,QACpBhQ,OAAQwL,OAAO9E,EAAK1G,QACpBiQ,KAAMzE,OAAO9E,EAAKuJ,MAClBC,MAAO1E,OAAO9E,EAAKwJ,OACnBC,MAAO3E,OAAO9E,EAAKyJ,QAErB,MAENqF,EACGU,KAAKzQ,EAAI2H,GACTzJ,MAAK,SAACoQ,GACLoB,EAAc,2BAAKD,GAAenB,IAClC7I,YAAmB,CAAEhE,KAAM,UAAWiE,YAAad,EAAE,2BAEtD8L,OAAM,SAAAC,GAAQ,IAAD,EACNC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,0BAAD,OAC8B,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IADzD,OAEVH,EAAMI,aAqOZiJ,gBAjIkB,SAACtP,EAAqBiB,GAC5C,IAAM0G,EAAc,CAClB0E,oBAAqBpL,EAAKoI,KAC1BkH,WAAY,CACVrI,KAAMjH,EAAKiI,OACXiD,eAAgBlL,EAAKkI,iBACrBiD,eAAgBnL,EAAKmI,iBACrBX,KAAMxH,EAAKwH,KACXO,QAAS/H,EAAK+H,QACdiD,SAAUhL,EAAKuH,aAGnBuH,EACGU,KAAKzQ,EAAI2H,GACTzJ,MAAK,kBACJuH,YAAmB,CAAEhE,KAAM,UAAWiE,YAAad,EAAE,2BAEtD8L,OAAM,SAAAC,GAAQ,IAAD,EACNC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,0BAAD,OAC8B,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IADzD,OAEVH,EAAMI,aA0GZ8I,eAhLiB,SAACnP,EAAqBiB,GAC3C,IAAM0G,EAAc,CAClB2C,WAAYrJ,GAEd8O,EACGU,KAAKzQ,EAAI2H,GACTzJ,MAAK,kBACJuH,YAAmB,CAAEhE,KAAM,UAAWiE,YAAad,EAAE,2BAEtD8L,OAAM,SAAAC,GAAQ,IAAD,EACNC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,0BAAD,OAC8B,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IADzD,OAEVH,EAAMI,aAiKZ+I,iBAjOmB,SAACpP,EAAqBiB,GAC7C,IAAM0G,EAAc,CAClBkF,uBAAwB,CACtB,CACED,IAAK,6CACLrG,MAAOgJ,EAAkBtO,EAAKsI,yCAEhC,CACEqD,IAAK,iDACLrG,MAAOgJ,EAAkBtO,EAAKuI,2CAEhC,CACEoD,IAAK,+CACLrG,MAAOgJ,EAAkBtO,EAAKwI,0CAEhC,CACEmD,IAAK,+CACLrG,MAAOgJ,EAAkBtO,EAAKyI,yCAEhC,CACEkD,IAAK,qBACLrG,MAAOgJ,EAAkBtO,EAAK0I,mBAEhC,CAAEiD,IAAK,aAAcrG,MAAOgJ,EAAkBtO,EAAK2I,aACnD,CAAEgD,IAAK,UAAWrG,MAAOgJ,EAAkBtO,EAAK4I,UAChD,CAAE+C,IAAK,UAAWrG,MAAOgJ,EAAkBtO,EAAK6I,UAChD,CAAE8C,IAAK,YAAarG,MAAOgJ,EAAkBtO,EAAK8I,cAGtDgG,EACGU,KAAKzQ,EAAI2H,GACTzJ,MAAK,kBACJuH,YAAmB,CAAEhE,KAAM,UAAWiE,YAAad,EAAE,2BAEtD8L,OAAM,SAAAC,GAAQ,IAAD,EACNC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,0BAAD,OAC8B,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IADzD,OAEVH,EAAMI,aAyLZgJ,YA3Jc,SAACrP,EAAqBiB,GACxC,IAAM0G,EAAc,CAClB2I,0BAA2Bf,EAAkBtO,IAE/C8O,EACGU,KAAKzQ,EAAI2H,GACTzJ,MAAK,kBACJuH,YAAmB,CAAEhE,KAAM,UAAWiE,YAAad,EAAE,2BAEtD8L,OAAM,SAAAC,GAAQ,IAAD,EACNC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,0BAAD,OAC8B,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IADzD,OAEVH,EAAMI,cA2HhB,SAkBG3C,M,uJCtYDP,EAAoD,CACxD0N,UAAW,CACT3I,KAAM,GACNC,QAAS,GACT2I,SAAU,GACVhM,MAAO,GACP4D,MAAO,GACPhD,YAAa,GACbgG,KAAM,IAERqF,YAAa,CACX7I,KAAM,GACNI,OAAQ,GACR0I,eAAgB,GAChBvI,KAAM,GACNwI,QAAS,GACTjI,QAAS,GACTkD,YAAa,GACbgF,QAAS,IAEXC,IAAK,CACHC,YAAa,GACb/I,IAAK,GACLC,OAAQ,GACR0I,eAAgB,GAChBvI,KAAM,GACNwI,QAAS,GACTjI,QAAS,GACTkD,YAAa,IAEfjJ,SAAS,EACT+L,SAAU,aACVqC,aAAc,aACdC,cAAe,aACfC,WAAY,aACZC,YAAa,aACbC,mBAAoB,aACpBC,oBAAqB,aACrBhL,aAAc,cAGHiL,EACXlO,wBAA2CN,GAmL9BrG,IAjLkC,SAAC,GAAkB,IAAhB4G,EAAe,EAAfA,SAClD,EAAkCa,mBAAoBpB,EAAqB0N,WAA3E,mBAAOA,EAAP,KAAkBQ,EAAlB,KACA,EAA0C9M,mBACxCpB,EAAqB4N,aADvB,mBAAOA,EAAP,KAAoBU,EAApB,KAGA,EAA0BlN,mBAAcpB,EAAqBgO,KAA7D,mBAAOA,EAAP,KAAYI,EAAZ,KACA,EAA8BhN,mBAAkBpB,EAAqBF,SAArE,mBAAOA,EAAP,KAAgBuB,EAAhB,KACA,EAAoCD,mBAAiB,IAArD,mBAAOqN,EAAP,KAAmBC,EAAnB,KAEQjN,EAAMC,cAAND,EAMFkN,EAAqB,IAAIC,IAiGzB/C,EAAQ,uCAAG,WAAOhP,GAAP,eAAAK,EAAA,6DACfmE,GAAW,GADI,kBAGcsN,EAAmB7B,KAAKjQ,GAHtC,OAGPgS,EAHO,OAIbX,GAAa,SAAAlB,GAAK,MAAK,CACrBjI,KAAM8J,EAAapG,WACnBzD,QAAS6J,EAAanG,UACtBiF,SAAUkB,EAAalB,SACvBhM,MAAOkN,EAAalN,MACpB4D,MAAOsJ,EAAatJ,MACpBhD,YAAasM,EAAatM,YAC1BgG,KAAMsG,EAAatG,KACnB/C,mBAAoBqJ,EAAarJ,uBAEnCkJ,GAAc,SAAA1B,GAAK,OAAI6B,EAAatG,QACpC+F,GAAmB,SAAAtB,GAAK,0BAAK,CAC3BjI,KAAI,UAAE8J,EAAajB,mBAAf,aAAE,EAA0B7I,KAChCI,OAAM,UAAE0J,EAAajB,mBAAf,aAAE,EAA0BzI,OAClC0I,eAAc,UAAEgB,EAAajB,mBAAf,aAAE,EAA0BxI,gBAC1CE,KAAI,UAAEuJ,EAAajB,mBAAf,aAAE,EAA0BtI,KAChCwI,QAAO,UAAEe,EAAajB,mBAAf,aAAE,EAA0B9E,SACnCjD,QAAO,UAAEgJ,EAAajB,mBAAf,aAAE,EAA0B/H,QACnCkD,YAAW,UAAE8F,EAAajB,mBAAf,aAAE,EAA0B7E,YACvCgF,QAAO,OAAEc,QAAF,IAAEA,GAAF,UAAEA,EAAcjB,mBAAhB,aAAE,EAA2BG,YAEtCK,GAAW,SAAApB,GAAK,0BAAK,CACnBiB,YAAW,UAAEY,EAAab,WAAf,aAAE,EAAkBc,aAC/B5J,IAAG,UAAE2J,EAAab,WAAf,aAAE,EAAkBnF,IACvB1D,OAAM,UAAE0J,EAAab,WAAf,aAAE,EAAkB7I,OAC1B0I,eAAc,UAAEgB,EAAab,WAAf,aAAE,EAAkB5I,gBAClCE,KAAI,UAAEuJ,EAAab,WAAf,aAAE,EAAkB1I,KACxBwI,QAAO,UAAEe,EAAab,WAAf,aAAE,EAAkBlF,SAC3BjD,QAAO,UAAEgJ,EAAab,WAAf,aAAE,EAAkBnI,QAC3BkD,YAAW,UAAE8F,EAAab,WAAf,aAAE,EAAkBjF,gBAjCpB,mDAoCb,kCAAI,KAAKtG,WACPH,YAAmB,CAAEhE,KAAM,QAASiE,YAAad,EAAE,0BArCxC,yBAwCbJ,GAAW,GAxCE,6EAAH,sDA4Cd,OACE,cAACmN,EAAuBrL,SAAxB,CACEC,MAAO,CACLsK,YACAE,cACAI,MACAlO,UACA+L,WACAtI,aAzJe,WACnB2K,EAAalO,EAAqB0N,YAyJ9BQ,eACAC,cArJgB,SAACtR,EAAqBiB,GAC1C,IAAM0G,EAAc,CAClBjC,YAAazE,EAAKyE,YAAczE,EAAKyE,YAAc,GACnDgG,KAAMkG,IAAe3Q,EAAKyK,UAAO8E,EAAYvP,EAAKyK,KAClDE,WAAY3K,EAAKiH,KACjB2D,UAAW5K,EAAKkH,QAChB2I,SAAU7P,EAAK6P,SACfhM,MAAO7D,EAAK6D,MACZ4D,MAAOzH,EAAK0H,mBAAqB1H,EAAKyH,OAExCoJ,EACGrB,KAAKzQ,EAAI2H,GACTzJ,MAAK,kBACJuH,YAAmB,CACjBhE,KAAM,UACNiE,YAAad,EAAE,2BAGlB8L,OAAM,SAACC,GAAc,IAAD,EACbC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,8BAAD,OACkC,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IAD7D,OAEVH,EAAMI,aA6HZkL,aACAC,YAxHc,SAACxR,EAAqBiB,GACxC,IAAM0G,EAAc,CAClBsK,aAAchR,EAAKmQ,YACnB9I,OAAQrH,EAAKqH,OACbC,gBAAiBtH,EAAK+P,eACtBvI,KAAMxH,EAAKwH,KACXwD,SAAUhL,EAAKgQ,QACfjI,QAAS/H,EAAK+H,QACdkD,YAAajL,EAAKiL,aAEpB4F,EACGrB,KAAKzQ,EAAI,CAAEmR,IAAKxJ,IAChBzJ,MAAK,kBACJuH,YAAmB,CACjBhE,KAAM,UACNiE,YAAad,EAAE,2BAGlB8L,OAAM,SAACC,GAAc,IAAD,EACbC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,8BAAD,OACkC,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IAD7D,OAEVH,EAAMI,aAgGZoL,qBACAC,oBA3FsB,SAAC1R,EAAqBiB,GAChD,IAAM0G,EAAc,CAClBO,KAAMjH,EAAKiH,KACXI,OAAQrH,EAAKqH,OACbC,gBAAiBtH,EAAK+P,eACtBvI,KAAMxH,EAAKwH,KACXwD,SAAUhL,EAAKgQ,QACfjI,QAAS/H,EAAK+H,QACdkD,YAAajL,EAAKiL,YAClBgF,QAASjQ,EAAKiQ,SAEhBY,EACGrB,KAAKzQ,EAAI,CAAE+Q,YAAapJ,IACxBzJ,MAAK,kBACJuH,YAAmB,CACjBhE,KAAM,UACNiE,YAAad,EAAE,2BAGlB8L,OAAM,SAACC,GAAc,IAAD,EACbC,EAA4B,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAK/K,gBAAR,aAAG,EAAe3E,KAC9CgF,EAAQC,YAAoB,OAAC0K,QAAD,IAACA,OAAD,EAACA,EAASzK,OAAO,IACnDV,YAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,8BAAD,OACkC,OAAhBqB,EAAMG,MAAiBH,EAAMG,MAAQ,IAAM,IAD7D,OAEVH,EAAMI,cAoDhB,SAeG3C,M,mMClQDF,EAAcC,0BAEdvG,EAAsB,SAAC,GAAkB,IAAhBwG,EAAe,EAAfA,SACvBwO,EAAuBC,cAE7B,EAA4B5N,mBAAS,CACnCgB,SAAU,GACV6M,OAAQ,KAFV,mBAAOC,EAAP,KAAeC,EAAf,KAKA,EAA8C/N,oBAAS,GAAvD,mBAAOgO,EAAP,KAAwBC,EAAxB,KAEA,EAAoCjO,oBAAS,GAA7C,mBAAOkO,EAAP,KAAoBC,EAApB,KAGA,EAA0CnO,oBAAS,GAAnD,mBAAOoO,EAAP,KAAsBC,EAAtB,KAEMtO,EAAW,uCAAG,sBAAAjE,EAAA,+EAEV3B,IAAK6E,UAFK,OAGhBiP,GAAmB,GAHH,+CAKhBK,QAAQC,IAAR,kCALgB,wDAAH,qDASXC,EAAoB,uCAAG,WAAMX,GAAN,eAAA/R,EAAA,+EAEN3B,IAAKsU,2BAFC,cAEnBC,EAFmB,gBAInBvU,IAAKqU,qBAAqBE,EAAM,CACpCnX,QAASsW,IALc,uDAQzBS,QAAQC,IAAR,MARyB,yDAAH,sDAYpBI,EAA4B,uCAAG,8BAAA7S,EAAA,sEACf3B,IAAKyU,qBADU,cAC7BC,EAD6B,gBAEN1U,IAAK2U,qBAAqBD,GAFpB,cAE7BE,EAF6B,OAGnCC,IAAIC,OAAO1U,OAASF,IAAUY,YAC9B+T,IAAIC,OAAO7L,YAAc2L,EAJU,kBAK5BA,GAL4B,2CAAH,qDAQ5BG,EAAkC,WACtCb,GAAiB,GACjBlU,IAAKgV,kBACFxV,MAAK,SAAAyV,GAAY,IAAD,EACfrB,EAAU,CACR/M,SAAUoO,EAAQpO,SAClB6M,OAAO,GAAD,OAAKxT,IAAUG,cAAf,YAAgC4U,EAAQpO,YAEZ,UAAhC,UAAAoO,EAAQC,kBAAR,eAAoB9X,UACtBiX,EAAqBY,EAAQ3T,IAE7BwS,GAAmB,GAEnBN,EAAqB,CACnBzQ,KAAM,EACNoS,QAAS,CACPC,QAAS,8DACTC,SAAU,eAIdrB,GAAa,GACbF,GAAmB,OAGtB9B,OAAM,SAAAC,GACLkC,QAAQC,IAAR,4CAAiDnC,OAErDuC,KA4DFnb,qBAAU,WACR2G,IAAKsU,2BACF9U,KAAKuV,GACL/C,OAAM,SAAAC,GACL6B,GAAmB,QAEtB,CAAC9T,MAEJ,IAAMsV,EAAgB,CACpB3B,SACAE,kBACAE,cACAE,gBACArO,cACAD,WAvEiB,SAACkB,EAAUR,GAC5BrG,IAAK2E,OAAO,CAAEkC,WAAUR,aACrB7G,KAAKuV,GACL/C,OAAM,SAAAC,GACLkC,QAAQC,IAAI,gBAAiBnC,GAC7BuB,EAAqB,CACnBzQ,KAAM,EACNoS,QAAS,CACPC,QAAS,4CACTC,SAAU,eA+DlBE,6BArCmC,SAAAC,GACnCC,MAAM,GAAD,OAAIvV,IAAUwV,oBAAd,SAA0C,CAC7CC,OAAQ,OACR1M,YAAa,UACb2M,QAAS,IAAIC,QAAQ,CACnBC,cAAc,UAAD,OAAYC,KAAKP,QAG/BhW,MAAK,SAAA0H,GAAQ,OAAIA,EAAS8O,UAC1BxW,MAAK,SAAA+C,GAAI,OA7B4C,SAAA2E,GACxDgN,GAAiB,GACjBF,GAAa,GACbJ,EAAU,CACR/M,SAAUK,EAAS+O,iBACnBvC,OAAQxM,EAASgP,cAEnB,IAAMC,EAAiBjP,EAASkP,iBAChC/B,EAAqBnN,EAASgP,aAC9BrB,IAAIC,OAAO1U,OAASF,IAAUY,YAC9B+T,IAAIC,OAAO7L,YAAc,CACvBoN,YAAaF,EAAeG,YAC5BC,gBAAiBJ,EAAeK,gBAChCC,aAAcN,EAAeO,cAG/B5C,GAAmB,GAaH6C,CAAkDpU,MAC/DyP,OAAM,SAAAC,GACLkC,QAAQC,IAAInC,GACZuB,EAAqB,CACnBzQ,KAAM,EACNoS,QAAS,CACPC,QAAS,4CACTC,SAAU,gBAwBpB,OAAO,cAACvQ,EAAY8C,SAAb,CAAsBC,MAAOyN,EAA7B,SAA6CtQ,KAGhDU,EAAwB,WAC5B,IAAMkR,EAAU1R,qBAAWJ,GAE3B,IAAK8R,EACH,MAAM,IAAIC,MAAM,iEAGlB,OAAOD,I,mlEClKJE,E,kGAJL,SAASC,EAAQC,GACf,OAAmC,IAA5BC,OAAOC,KAAKF,GAAKG,OASnB,SAASzQ,EAAW7M,EAAgBoO,EAAiBpB,GAC1D7H,aAAaiI,QAAQ6P,EAAMjd,OAAQA,GACnCmF,aAAaiI,QAAQ6P,EAAM7O,QAASA,GACpCjJ,aAAaiI,QAAQ6P,EAAMjQ,SAAUA,GAGhC,SAASjN,IAKd,MAAO,CAAEC,OAJMmF,aAAaC,QAAQ6X,EAAMjd,QAIzBoO,QAHDjJ,aAAaC,QAAQ6X,EAAM7O,SAGjBpB,SAFT7H,aAAaC,QAAQ6X,EAAMjQ,WAKvC,SAASiB,IACd9I,aAAa+I,WAAW+O,EAAMjd,QAC9BmF,aAAa+I,WAAW+O,EAAM7O,SAC9BjJ,aAAa+I,WAAW+O,EAAMjQ,UAQzB,SAASuQ,EAAQzd,GACtB,MAAsCA,EAA9BiE,kBAAR,MAAqB,GAArB,EAAyBoH,EAAarL,EAAbqL,SAEzB,OACE,mCACGpH,EAAWyZ,aACV,SAACC,EAAKC,GAAN,OACE,cAACA,EAAD,UAAOD,MAETtS,M,SAxCH8R,K,2BAAAA,E,+BAAAA,E,6BAAAA,M,KA8CE,IAAMU,EAAW,SAACC,GAAD,OACtBA,EACGC,KAAI,SAAAC,GACH,IAAMC,EAAQC,IAAOF,EAAGC,MAAOE,KACzBC,EAAMF,IAAOF,EAAGI,IAAKD,KAC3B,OAAOD,IAAOG,SAASD,EAAIE,KAAKL,IAAQM,aAEzCC,QAAO,SAACb,EAAKc,GAAN,OAAed,EAAMc,MAEpBC,EAAmB,SAACT,EAAeG,EAAaO,GAC3D,MAA+BV,EAAMW,MAAM,KAA3C,mBAAOC,EAAP,KAAkBC,EAAlB,KACA,EAA2BV,EAAIQ,MAAM,KAArC,mBAAOG,EAAP,KAAgBC,EAAhB,KACA,OAAOH,IAAcE,EACnB,qCACGJ,EACC,wBAAQ3c,MAAO,CAAE+H,WAAY,KAA7B,SAAqC8U,IAErCA,EAJJ,WAMOC,EANP,cAMsBE,MAGtB,mCACGL,EACC,qCACE,wBAAQ3c,MAAO,CAAE+H,WAAY,KAA7B,SAAqC8U,IADvC,IAC4DC,EAD5D,KAEE,wBAAQ9c,MAAO,CAAE+H,WAAY,KAA7B,SAAqCgV,IAFvC,IAE0DC,KAH9C,UAMTf,EANS,cAMEG,MAMTa,EAAyB,SACpCnB,EACArC,EACAkD,GAEA,IAAKb,EAAe,MAAO,QAE3B,GAA6B,IAAzBA,EAAcN,OAChB,OAAOkB,EAAiBZ,EAAc,GAAGG,MAAOH,EAAc,GAAGM,IAAKO,GAGxE,IAAMO,EAAUpB,EAAcC,KAAI,SAAAC,GAAE,OAClC,cAACmB,EAAD,CAAY1D,QAASiD,EAAiBV,EAAGC,MAAOD,EAAGI,IAAKO,QAG1D,GAAIA,EAAe,CACjB,MAA+Bb,EAAc,GAAGG,MAAMW,MAAM,KAA5D,mBAAOC,EAAP,KAAkBC,EAAlB,KACA,EAA2BhB,EAAcA,EAAcN,OAAS,GAAGY,IAAIQ,MAAM,KAA7E,mBAAOG,EAAP,KAAgBC,EAAhB,KACA,OACE,eAAC,IAAD,CAASI,MAAO3D,EAASyD,QAASA,EAAlC,UACE,wBAAQld,MAAO,CAAE+H,WAAY,KAA7B,SAAqC8U,IADvC,IAC4DC,EAD5D,KAEE,wBAAQ9c,MAAO,CAAE+H,WAAY,KAA7B,SAAqCgV,IAFvC,IAE0DC,KAK9D,OACE,cAAC,IAAD,CAASI,MAAO3D,EAASyD,QAASA,EAAlC,mBACMpB,EAAc,GAAGG,MADvB,cACkCH,EAAcA,EAAcN,OAAS,GAAGY,QAKxEe,EAAatV,YAAOwV,IAAPxV,CAAH,mGAMHyV,EAAY,SAACC,GAAwC,IAAtBC,EAAqB,uDAAP,GACxD,OAAIpC,EAAQoC,GACHD,EAEFA,EAAW,IAAME,IAAYC,UAAUF,IAGzC,SAASG,EAAUC,EAAUC,GAClC,IAAMC,EAAS,IAAIC,WACnBD,EAAOrJ,iBAAiB,QAAQ,kBAAMoJ,EAASC,EAAOE,WACtDF,EAAOG,cAAcL,GAGhB,IASM/R,EAAuB,SAAvBA,EAAwBD,GAAiD,IAAD,EACnF,OAAI0P,OAAOC,KAAK3P,GAAO4P,OAAS,EACvB,CACLzP,MAAOH,EAAMG,MACbC,KAAMJ,EAAMI,MAGTH,EAAqB,2BACvBD,EAAM0P,OAAOC,KAAK3P,GAAO,IAAI,IADP,IAEzBG,MAAM,GAAD,OAAKuP,OAAOC,KAAK3P,GAAO,GAAxB,sBAA8BA,EAAM0P,OAAOC,KAAK3P,GAAO,IAAI,UAA3D,aAA8B,EAAiCG,WAI3DmS,EAAkB,WAG7B,OAFchC,MAASiC,QAAQ,SAASC,OAAO,cAEhC,IADHlC,MAASmC,MAAM,SAASD,OAAO,eAIhCE,EAAiB,WAG5B,OAFcpC,MAASiC,QAAQ,QAAQC,OAAO,cAE/B,IADHlC,MAASmC,MAAM,QAAQD,OAAO,eAI/BG,EAAiB,kBAAMrC,MAASsC,OAAO7S,YAEvC8S,EAAkB,SAACzS,GAK9B,MAJsC,CACpC0S,mCAAoC,gCAGzB1S,IAAS,iB,qDCvLlBzI,EAAU,aACd8D,MAAO,CACLK,QAAS,UACTJ,UAAW,UACXqX,UAAW,UACXC,WAAY,UACZC,YAAa,UACbC,OAAQ,UACRC,OAAQ,UACRC,KAAM,UACNC,UAAW,UACXC,MAAO,UACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,KAAM,UACN/X,MAAO,UACPE,KAAM,kBACN8X,YAAa,UACbC,aAAc,UACdC,cAAe,UACfC,WAAY,UACZC,cAAe,UACf9W,SAAU,WAEZX,SAAU,CACR0X,MAAO,OACPC,OAAQ,OACRtX,OAAQ,OACRuX,IAAK,OACLC,MAAO,OACPC,KAAM,OACNC,SAAU,QAEZC,WAAY,CACVN,MAAO,OACPC,OAAQ,OACRtX,OAAQ,OACRuX,IAAK,OACLC,MAAO,OACPC,KAAM,OACNC,SAAU,QAEZlY,WAAY,CACVoY,QAAS,IACTC,KAAM,KAERC,eAAgB,CACdC,GAAI,mBACJC,GAAI,mBACJC,GAAI,mBACJC,GAAI,qBAENC,YAAa,CACXJ,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,MAENE,UAAW,SAACC,EAAaC,GACvB,IAAMC,EAAIC,SAASH,EAAII,MAAM,EAAG,GAAI,IAC9BC,EAAIF,SAASH,EAAII,MAAM,EAAG,GAAI,IAC9BE,EAAIH,SAASH,EAAII,MAAM,EAAG,GAAI,IACpC,MAAM,QAAN,OAAeF,EAAf,YAAoBG,EAApB,YAAyBC,EAAzB,aAA+BL,EAA/B,OAECM,KAGU5d,O,+DCnET6d,EAAavZ,YAAO1H,IAAP0H,CAAH,4KAMQ,SAAA7J,GAAK,OAAIA,EAAMuF,MAAM8D,MAAMK,WAIpC0Z,O,iCCbA,QAA0B,+C,mHCqBnCC,EAAa,SAACja,GAClB,MAAa,SAATA,EAAwB,YACf,YAATA,EAA2B,eACA,gBAqC3B+V,EAAatV,YAAOwV,IAAPxV,CAAH,mDAIVyZ,EAAiBzZ,IAAO0Z,IAAV,mHAOdC,EAAU3Z,IAAO0Z,IAAV,sHAOPE,EAAc5Z,YAAO6Z,IAAP7Z,CAAH,oDAIX8Z,EAAW9Z,YAAO6Z,IAAP7Z,CAAH,qGAOR+Z,EAAc/Z,YAAOga,IAAPha,CAAH,+PAgBFia,IA/EqB,SAAC,GAU9B,IATLC,EASI,EATJA,QACA3a,EAQI,EARJA,KACAgW,EAOI,EAPJA,MACA4E,EAMI,EANJA,SACAC,EAKI,EALJA,KACAC,EAII,EAJJA,SACAC,EAGI,EAHJA,OACAC,EAEI,EAFJA,UACAlS,EACI,EADJA,OAEQ3F,EAAMC,cAAND,EACR,OACE,eAACqX,EAAD,CAAaG,QAASA,EAASG,SAAUA,GAAYD,EAAMI,OAAQ,KAAMpiB,MAAO,IAAhF,UACE,cAAC0hB,EAAD,CAAUva,KAAK,cAAcsB,QAASwZ,GAAYD,IAClD,eAACT,EAAD,WACE,cAACC,EAAD,CAAara,KAAMia,EAAWja,KAC9B,cAAC+V,EAAD,CAAY1D,QAAS2D,EAAOhW,KAAK,SAAS8I,OAAQA,IACjD8R,EAAW,cAAC7E,EAAD,CAAY1D,QAASuI,EAAU5a,KAAK,WAAc,KAE9D,eAACka,EAAD,WACGY,GACC,cAAC,IAAD,CAAezZ,MAAO8B,EAAE,iBAAkB7B,QAASwZ,EAAU9a,KAAK,UAEnE+a,GACC,cAAC,IAAD,CAAe1Z,MAAO8B,EAAE,iBAAkB7B,QAASyZ,EAAQ/a,KAAK,UAElE,cAAC,IAAD,CAAeqB,MAAO2Z,GAAa7X,EAAE,iBAAkB7B,QAASuZ,e,2FCjDrEK,E,iFAAAA,K,sBAAAA,E,sBAAAA,E,+BAAAA,E,kBAAAA,E,sBAAAA,E,0BAAAA,E,6CAAAA,E,iCAAAA,E,oBAAAA,E,oBAAAA,E,yCAAAA,E,0CAAAA,M,KA0GL,IAAMC,EAAgD,CACpD3Z,SAAS,EACTG,aAAc,GACdyZ,OAAQ,GACRC,WAAY,aACZC,YAAa,aACbC,iBAAkB,aAClBC,aAAc,aACdC,mBAAoB,aACpBC,MAAO,aACPC,WAAY,aACZC,0BAA2B,aAC3BC,YAAa,aACbC,KAAM,EACNC,SAAUC,IACVC,eAAgB,aAChBC,mBAAenN,EACfvP,KAAM,CACJ2c,MAAO,EACP9G,KAAM,KACN+G,SAAU,KACVC,QAAS,KAIPhX,EAAM,IAAIiX,IAEHC,EAAgBva,wBAAkCmZ,GA0IhDhgB,IAxIyB,SAAC,GAAkB,IAAhB8G,EAAe,EAAfA,SACzC,EAA8Ba,mBAC5BqY,EAA0B3Z,SAD5B,mBAAOA,EAAP,KAAgBuB,EAAhB,KAGA,EAAwCD,mBACtCqY,EAA0BxZ,cAD5B,mBAAOA,EAAP,KAGA,GAHA,KAGwBmB,mBACtBqY,EAA0BW,OAD5B,mBAAOA,EAAP,KAAaU,EAAb,KAGA,EAAmC1Z,mBACjCqY,EAA0BY,UAD5B,mBAAOA,EAAP,KAAiBE,EAAjB,KAGA,EAAwBnZ,mBACtBqY,EAA0B3b,MAD5B,mBAAOA,EAAP,KAAa0O,EAAb,KAGA,EAA0CpL,mBACxCqY,EAA0Be,eAD5B,mBAAOA,EAAP,KAAsBO,EAAtB,KAGA,EAA4B3Z,mBAC1BqY,EAA0BC,QAD5B,mBAAOA,EAAP,KAAesB,EAAf,KAIMrB,EAAU,uCAAG,WAAOjF,GAAP,eAAAxX,EAAA,6DACjBmE,GAAW,GADM,SAEQsC,EAAIvG,IAAJ,2BACpBsX,GADoB,IAEvBuG,UAAWZ,GAAYC,OAJR,OAEXY,EAFW,QAMjB,OAAIxG,QAAJ,IAAIA,OAAJ,EAAIA,EAAa0F,OAAMU,EAAQpG,EAAY0F,MAC3C5N,EAAQ0O,GACRF,EAAUtG,GAAe,IACzBrT,GAAW,GATM,2CAAH,sDAYVuY,EAAW,uCAAG,WAAOlF,GAAP,eAAAxX,EAAA,6DAClBmE,GAAW,GADO,SAEOsC,EAAIiW,YAAJ,2BACpBlF,GADoB,IAEvBuG,UAAWZ,GAAYC,OAJP,OAEZY,EAFY,QAMlB,OAAIxG,QAAJ,IAAIA,OAAJ,EAAIA,EAAa0F,OAAMU,EAAQpG,EAAY0F,OAC3C,OAAI1F,QAAJ,IAAIA,OAAJ,EAAIA,EAAauG,YAAWV,EAAe7F,EAAYuG,WACvDzO,EAAQ0O,GACRF,EAAUtG,GAAe,IACzBrT,GAAW,GAVO,2CAAH,sDAaXwY,EAAgB,uCAAG,WAAOhd,GAAP,eAAAK,EAAA,6DACvBmE,GAAW,GADY,SAECsC,EAAIwX,eAAete,GAFpB,OAEjBue,EAFiB,OAGvBL,EAAiBK,GACjB/Z,GAAW,GAJY,2CAAH,sDAOhByY,EAAY,uCAAG,WACnBuB,EACAC,EACAC,EACAC,GAJmB,iBAAAte,EAAA,+EAOXyG,EAAImW,aAAauB,EAASC,GAPf,OAQjBC,IARiB,+CAUjBC,EAAO,OAAC,EAAD,6BAAC,KAAK/Y,gBAAN,iBAAC,EAAe3E,YAAhB,aAAC,EAAqBkF,OAAO,GAAGE,MAVtB,wDAAH,4DAcZ8W,EAAK,uCAAG,WACZqB,EACAE,EACAC,GAHY,iBAAAte,EAAA,+EAMJyG,EAAIqW,MAAMqB,GANN,OAOVE,IAPU,+CASVC,EAAO,OAAC,EAAD,6BAAC,KAAK/Y,gBAAN,iBAAC,EAAe3E,YAAhB,aAAC,EAAqBkF,OAAO,GAAGE,MAT7B,wDAAH,0DAyCX,OACE,cAAC2X,EAAc1X,SAAf,CACEC,MAAO,CACL2W,mBAdqB,WACzBgB,EAAiBtB,EAA0Be,gBAcvC1a,UACAG,eACA0Z,aACAD,SACA5b,OACAsc,OACAC,WACAG,gBACAX,mBACAD,cACAE,eACAE,QACAC,WAvBa,SAACwB,GAClBX,EAAQW,IAuBJlB,iBACAL,0BA9C4B,SAChCmB,EACAC,EACAI,GAEA,IAAMC,EAAY7d,EAAK6c,QAAQ1H,KAAI,SAAA2I,GACjC,GAAIA,EAAM/e,KAAOwe,EAAS,CAAC,IAAD,EAClBQ,EAAU,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAOE,eAAV,aAAG,EAAgB7I,KAAI,SAAAja,GAAM,OAC3CA,EAAO+iB,eAAelf,KAAOye,EAA7B,2BAA6CtiB,GAA7C,IAAqD0iB,WAAW1iB,KAElE,OAAO,2BAAK4iB,GAAZ,IAAmBE,QAASD,IAE9B,OAAOD,KAETpP,EAAQ,2BAAK1O,GAAN,IAAY6c,QAASgB,MAiCxBxB,YAtBc,SAACtd,GACnB2P,EAAQ,2BAAK1O,GAAN,IAAY6c,QAAS7c,EAAK6c,QAAQxW,QAAO,SAAAyX,GAAK,OAAIA,EAAM/e,KAAOA,UAGtE,SAoBG0D,M,uFChQDyb,EAAUjd,IAAO0Z,IAAV,wJAQEwD,IAlBmC,SAAC,GAAiB,IAAftL,EAAc,EAAdA,QAC3ClP,EAAMC,cAAND,EACR,OACE,eAACua,EAAD,WACE,cAAC,IAAD,CAAOzZ,aAAa,IACpB,cAAC,IAAD,CAAMoO,QAASA,GAAWlP,EAAE,oBAAqBnD,KAAK,SAASC,MAAM,mB,uECgC/Dib,E,yGAjCN5c,EACI,cADJA,EAEG,SAACC,GAAD,2BAA8BA,EAA9B,MAFHD,EAGU,SAACye,EAA0BC,GAA3B,2BACED,EADF,mBACoBC,EADpB,MAHV1e,EAKM,iBALNA,EAMG,SAACC,GAAD,2BAA8BA,EAA9B,YANHD,EAOS,SAACye,EAAiBpM,GAAlB,0BACEoM,EADF,yBAC0BpM,EAD1B,MAPTrS,EASgB,SAACye,EAAiBpM,GAAlB,0BACLoM,EADK,0BAThBze,EAWgB,SAACye,EAAapM,GAAd,0BACLoM,EADK,gCAC0BpM,EAD1B,MAXhBrS,EAamB,SAACye,EAAapM,GAAd,0BACRoM,EADQ,wBACepM,EADf,MAbnBrS,EAeS,SAACye,EAAapM,GAAd,0BAA0CoM,EAA1C,gBAAyDpM,EAAzD,MAfTrS,EAgBU,SAACye,GAAD,0BAA8BA,EAA9B,UAhBVze,EAiBkB,SAACye,GAAD,0BAA8BA,EAA9B,yB,SAgBZ7B,K,sBAAAA,E,sBAAAA,E,+BAAAA,E,kBAAAA,E,sBAAAA,E,0BAAAA,E,6CAAAA,E,iCAAAA,E,oBAAAA,E,oBAAAA,E,yCAAAA,E,0CAAAA,M,SA2FNoB,E,kDACJ,aAAe,IAAD,8BACZ,cAAM7d,IAAkBC,mBAAqB,IAAI,IAG5Ckf,IAJO,uCAID,WACXpe,EACAgG,EACAqY,GAHW,eAAAjf,EAAA,+EAMH,EAAKC,SAASK,KAAKZ,EAAnB,2BACDkB,GADC,IAEJse,YAAate,EAAKkV,cAAcC,KAAI,SAAAC,GAAE,MAAI,CACxCE,IAAOF,EAAGC,MAAOE,KACjBD,IAAOF,EAAGI,IAAKD,SAEjBgJ,SAAUve,EAAKue,YAZR,OAcTvY,IAdS,+CAgBTqY,EAAa,OAAC,EAAD,6BAAC,KAAK1Z,gBAAN,aAAC,EAAe3E,MAhBpB,wDAJC,4DAwBPV,IAxBO,uCAwBD,WAAOsX,GAAP,SAAAxX,EAAA,+EACX,EAAKC,SAASC,IAA0BoX,YAAU5X,EAAc8X,KADrD,2CAxBC,wDA2BPyG,eA3BO,uCA2BU,WAAOte,GAAP,SAAAK,EAAA,+EACtB,EAAKC,SAASC,IACZR,EAAYC,KAFQ,2CA3BV,wDAgCPid,aAhCO,uCAgCQ,WAAOuB,EAA0BC,GAAjC,SAAApe,EAAA,+EACpB,EAAKC,SAASK,KAAKZ,EAAmBye,EAASC,KAD3B,2CAhCR,0DAmCP1B,YAnCO,uCAmCO,WAAOlF,GAAP,SAAAxX,EAAA,+EACnB,EAAKC,SAASC,IAA0BoX,YAAU5X,EAAgB8X,KAD/C,2CAnCP,wDAsCPsF,MAtCO,uCAsCC,WAAOnd,GAAP,SAAAK,EAAA,+EAAsB,EAAKC,SAASK,KAAKZ,EAAYC,KAArD,2CAtCD,wDAwCPyf,mBAxCO,uCAwCc,WAC1BjB,EACApM,EACA1M,GAH0B,SAAArF,EAAA,+EAIvB,EAAKC,SAASK,KAAKZ,EAAyBye,EAASpM,GAAS,CAAE1M,iBAJzC,2CAxCd,4DA8CPga,qBA9CO,uCA8CgB,WAAOlB,EAAiB1K,GAAxB,SAAAzT,EAAA,+EAC5B,EAAKC,SAASK,KAAKZ,EAA2Bye,GAAU,CAAEjH,QAASzD,KADvC,2CA9ChB,0DAiDP6L,YAjDO,uCAiDO,WAAOnB,EAAiBpM,EAAgByM,GAAxC,SAAAxe,EAAA,+EACnB,EAAKC,SAASsf,IAAI7f,EAAkBye,EAASpM,GAAS,CACpDyM,OAAQA,GAAU,cAFD,2CAjDP,4DAsDPgB,mBAtDO,uCAsDc,WAC1BrB,EACApM,EACAyM,GAH0B,SAAAxe,EAAA,+EAIvB,EAAKC,SAASsf,IAAI7f,EAAyBye,EAASpM,GAAS,CAAEyM,YAJxC,2CAtDd,4DA4DPiB,sBA5DO,uCA4DiB,WAAOtB,EAAapM,GAApB,SAAA/R,EAAA,+EAC7B,EAAKC,SAASC,IACZR,EAA4Bye,EAASpM,KAFV,2CA5DjB,0DAiEP2N,YAjEO,uCAiEO,WAAOvB,EAAapM,GAApB,SAAA/R,EAAA,+EACnB,EAAKC,SAASC,IAA+BR,EAAkBye,EAASpM,KADrD,2CAjEP,0DAoEP4N,aApEO,uCAoEQ,WAAOxB,GAAP,SAAAne,EAAA,+EACpB,EAAKC,SAASC,IAAcR,EAAmBye,KAD3B,2CApER,wD,UADQjd,KAyETwc,O,sJC1MThe,EACS,eADTA,EAEW,iBA+BFkgB,E,kDAXb,aAAe,IAAD,8BACZ,cAAM/f,IAAkBC,mBAAqB,IAAI,IAG5C+f,eAJO,sBAIU,sBAAA7f,EAAA,+EACtB,EAAKC,SAASC,IAA2BR,IADnB,2CAJV,EAOPogB,iBAPO,sBAOY,sBAAA9f,EAAA,+EACxB,EAAKC,SAASC,IAA8BR,IADpB,2CAPZ,E,UADQwB,K,OCfX6e,EAAkD,CAC7DC,YAAa,GACbC,cAAe,GACfC,eAAgB,aAChBC,iBAAkB,cAGPC,EAAgBhd,wBAC3B2c,GAGItZ,EAAM,IAAImZ,EA6BD1iB,IA3ByB,SAAC,GAAkB,IAAhBmG,EAAe,EAAfA,SACzC,EAAsCa,mBACpC6b,EAA2BC,aAD7B,mBAAOA,EAAP,KAAoBK,EAApB,KAIMH,EAAc,uCAAG,4BAAAlgB,EAAA,sEACKyG,EAAIoZ,iBADT,OACfS,EADe,OAErBD,EAAeC,GAFM,2CAAH,qDAKpB,EAA0Cpc,mBAExC6b,EAA2BE,eAF7B,mBAAOA,EAAP,KAAsBM,EAAtB,KAIMJ,EAAgB,uCAAG,4BAAAngB,EAAA,sEACKyG,EAAIqZ,mBADT,OACjBU,EADiB,OAEvBD,EAAiBC,GAFM,2CAAH,qDAKtB,OACE,cAACJ,EAAcna,SAAf,CACEC,MAAO,CAAE8Z,cAAaC,gBAAeC,iBAAgBC,oBADvD,SAEG9c,M,gCC7CP,4MAAO,IAGKod,EAHCtK,EAAiB,mBACjBuK,EAAa,cACbtD,EAAoB,G,SACrBqD,K,oBAAAA,E,iBAAAA,M,KAIL,IAAME,EAAsB,EACtBtU,EAAW,I,6FCiDlBuU,EAAO/e,IAAO0Z,IAAV,gHAQJpE,EAAatV,YAAOwV,IAAPxV,CAAH,gKAIH,SAAA7J,GAAK,OAAKA,EAAM6oB,UAAYtjB,IAAM8D,MAAMK,QAAUnE,IAAM8D,MAAM2X,QAC7D,SAAAhhB,GAAK,OAAIA,EAAMuF,MAAM8c,eAAeE,MAM5CuG,EAAOjf,IAAO0Z,IAAV,yHAGJ,SAAAvjB,GAAK,OAAKA,EAAM6oB,UAAYtjB,IAAM8D,MAAMK,QAAUnE,IAAM8D,MAAM2X,QACjD,SAAAhhB,GAAK,OACpBA,EAAM+oB,MAAQ/oB,EAAMgpB,SAAW,oBAAsB,uBAGnDC,EAAMpf,IAAO0Z,IAAV,gJAOM,SAAAvjB,GAAK,OAAKA,EAAM6oB,UAAY,IAAM,SAI3CK,EAAcrf,IAAO0Z,IAAV,uHAII,SAAAvjB,GAAK,OAAKA,EAAMmpB,OAAS,SAAW,WAG1CC,IAtFe,SAAC,GAAD,IAC5BC,EAD4B,EAC5BA,uBACAL,EAF4B,EAE5BA,SACAM,EAH4B,EAG5BA,aACAC,EAJ4B,EAI5BA,UACAC,EAL4B,EAK5BA,cACAX,EAN4B,EAM5BA,UACAY,EAP4B,EAO5BA,aACAN,EAR4B,EAQ5BA,OAR4B,OAU5B,eAACD,EAAD,CAAaxe,QAAS,SAAAgf,GAAC,OAAIA,EAAEC,kBAAkBR,OAAQA,EAAvD,UACE,eAACF,EAAD,CACEve,QAAS,kBAAM+e,EAAaT,IAC5BH,UAAWA,IAAcG,EACzBY,aAAc,kBAAMH,EAAaT,IAHnC,UAIE,cAAC7J,EAAD,CACE1D,QAAS6N,EACTpX,OAAQ,IACR9I,KAAK,SACLyf,UAAWA,IAAcG,IAE3B,cAACF,EAAD,CAAMD,UAAWA,IAAcG,EAAUD,IAAKC,EAAUA,SAAUA,OAEpE,eAACC,EAAD,CACEve,QAAS,kBAAM+e,EAAaF,IAC5BV,UAAWA,IAAcU,EACzBK,aAAc,kBAAMH,EAAaF,IAHnC,UAIE,eAACX,EAAD,WACE,cAACzJ,EAAD,CACE1D,QAAS+N,EACTtX,OAAQ,IACR9I,KAAK,SACLyf,UAAWA,IAAcU,IAE1BF,GAA0B,cAAC,IAAD,CAASjgB,KAAK,iBAE3C,cAAC0f,EAAD,CAAMD,UAAWA,IAAcU,EAAWR,IAAKQ,EAAWP,SAAUA,Y,6GC/CpE1c,E,kDACJ,aAAsB,IAAD,8BACnB,cAAMzE,IAAkBC,mBAAqB,IAAI,IAG5C+E,MAJc,uCAIN,WAAOyC,GAAP,SAAAtH,EAAA,+EACb,EAAKC,SAASK,KAAY,qBAAsB,CAC9CoE,SAAU4C,EAAY5C,SACtBQ,SAAUoC,EAAY7C,SAHX,2CAJM,wDAUdod,SAVc,uCAUH,WAAOva,GAAP,SAAAtH,EAAA,+EAChB,EAAKC,SAASK,KAAY,0BAA2BgH,IADrC,2CAVG,wDAadwa,eAbc,uCAaG,WAAOxa,GAAP,SAAAtH,EAAA,+EACtB,EAAKC,SAASK,KAAkB,2BAA4BgH,IADtC,2CAbH,wDAgBdya,iBAhBc,uCAgBK,WAAOza,GAAP,SAAAtH,EAAA,+EACxB,EAAKC,SAASK,KAAkB,6BAA8BgH,IADtC,2CAhBL,wDAmBd0a,YAnBc,uCAmBA,WAAO1a,GAAP,SAAAtH,EAAA,+EACnB,EAAKC,SAASK,KAAkB,oBAAqBgH,IADlC,2CAnBA,wDAsBd2a,cAtBc,uCAsBE,WAAO3a,GAAP,SAAAtH,EAAA,+EACrB,EAAKC,SAASK,KAAkB,sBAAuBgH,IADlC,2CAtBF,wDAyBdvC,WAAa,SAAC7M,EAAgBoO,EAAiBpB,GACpDH,YAAW7M,EAAQoO,EAASpB,GAC5B,EAAKjF,SAASiiB,SAASjO,QAAQkO,OAAOhO,cAAtC,iBAAgEjc,IA3B7C,EA8BdkqB,qBAAuB,SAAC3d,GAAD,OAC5B,EAAKxE,SAASK,KAAwB,+BAAgC,CACpEmE,WAhCiB,EAmCd4d,eAnCc,uCAmCG,WAAO5d,GAAP,SAAAzE,EAAA,+EACtB,EAAKC,SAASK,KAAY,oCAAqC,CAC7DmE,WAFoB,2CAnCH,wDAwCd5J,cAxCc,uCAwCE,WACrBynB,EACAC,EACAC,GAHqB,SAAAxiB,EAAA,+EAKrB,EAAKC,SAASK,KAAY,oCAAqC,CAC7DgiB,MACAC,QACAC,kBARmB,2CAxCF,4D,UADDthB,KAqDPoD,O,8HCVFme,EAA6D,CACxE7f,SAAS,EACT8f,OAAQ,GACRC,WAAY,GACZC,UAAW,aACXC,cAAe,cAGJC,EAAsB1f,wBACjCqf,GAGIhc,EAAM,IAAIsc,IAiDD/lB,IA/C+B,SAAC,GAAkB,IAAhBqG,EAAe,EAAfA,SAC/C,EAA4Ba,mBAC1Bue,EAAgCC,QADlC,mBAAOA,EAAP,KAAeM,EAAf,KAIA,EAAoC9e,mBAClCue,EAAgCE,YADlC,mBAAOA,EAAP,KAAmBM,EAAnB,KAIA,EAA8B/e,mBAC5Bue,EAAgC7f,SADlC,mBAAOA,EAAP,KAAgBuB,EAAhB,KAIMye,EAAS,uCAAG,WAAO7L,GAAP,eAAA/W,EAAA,6DAChBmE,GAAW,GADK,SAESsC,EAAIyc,YAAYnM,GAFzB,OAEVoM,EAFU,OAGhBH,EAAUG,GACVhf,GAAW,GAJK,2CAAH,sDAOT0e,EAAa,uCAAG,WAAOljB,EAAYyjB,GAAnB,eAAApjB,EAAA,6DACpBmE,GAAW,GADS,SAESsC,EAAIoc,cAAcljB,EAAIyjB,GAF/B,OAEdC,EAFc,OAIpBJ,EACEI,EAAepc,QACb,SAACqc,GAAD,YACuB,iBAArB,UAAAA,EAAMC,YAAN,eAAYniB,OAAgD,gBAAtBkiB,EAAMje,gBAGlDlB,GAAW,GAVS,2CAAH,wDAanB,OACE,cAAC2e,EAAoB7c,SAArB,CACEC,MAAO,CACLtD,UACA8f,SACAC,aACAC,YACAC,iBANJ,SAQGxf,M,sJC/FD3D,EACM,sBADNA,EAEkB,4BAFlBA,EAGe,8BAHfA,EAIU,oBA+BD8jB,E,kDA3Bb,aAAsB,IAAD,8BACnB,cAAM3jB,IAAkBC,mBAAqB,IAAI,IAG5C2jB,aAJc,uCAIC,WAAOnc,GAAP,SAAAtH,EAAA,+EACpB,EAAKC,SAASK,KAAYZ,EAAgB4H,IADtB,2CAJD,wDAOdC,kBAPc,uCAOM,WACzBD,GADyB,SAAAtH,EAAA,+EAGzB,EAAKC,SAASK,KACZZ,EACA4H,IALuB,2CAPN,wDAedoc,qBAfc,uCAeS,WAC5Bpc,GAD4B,SAAAtH,EAAA,+EAG5B,EAAKC,SAASK,KACZZ,EACA4H,IAL0B,2CAfT,wDAuBdqc,aAvBc,uCAuBC,WAAOrc,GAAP,SAAAtH,EAAA,+EACpB,EAAKC,SAASK,KAAmCZ,EAAoB4H,IADjD,2CAvBD,wD,UADcpG,K,gBCoC/B4B,EAAwD,CAC5D8E,aAAc,CACZC,KAAM,GACNC,QAAS,GACT2I,SAAU,GACVhM,MAAO,GACP4D,MAAO,GACPG,YAAarB,IAAYoB,oBACzBqb,UAAW,IAEbC,QAAS,CACPhc,KAAM,GACNG,IAAK,GACLC,OAAQ,GACR0I,eAAgB,GAChBvI,KAAM,GACNwI,QAAS,GACTjI,QAAS,GACTkD,YAAa,IAEfiY,gBAAiB,CACfjc,KAAM,GACNI,OAAQ,GACR0I,eAAgB,GAChBvI,KAAM,GACNwI,QAAS,GACTjI,QAAS,GACTkD,YAAa,GACbgF,QAAS,IAEXkT,QAAS,GACTxZ,gBAAiB,aACjB2G,WAAY,aACZ8S,mBAAoB,aACpBC,WAAY,aACZ5d,aAAc,aACd6d,SAAU,aACVC,sBAAuB,aACvBC,yBAA0B,aAC1BC,iBAAkB,cAGPC,EACXlhB,wBAA+CN,GA4ElCxG,IA1EsC,SAAC,GAAkB,IAAhB+G,EAAe,EAAfA,SACtD,EAAwCa,mBACtCpB,EAAqB8E,cADvB,mBAAOA,EAAP,KAAqB2C,EAArB,KAGA,EAA8BrG,mBAAkBpB,EAAqB+gB,SAArE,mBAAOA,EAAP,KAAgB3S,EAAhB,KACA,EAA8ChN,mBAC5CpB,EAAqBghB,iBADvB,mBAAOA,EAAP,KAAwBE,EAAxB,KAGA,EAA8B9f,mBAAiBpB,EAAqBihB,SAApE,mBAAOA,EAAP,KAAgBE,EAAhB,KASMM,EAAyB,IAAIf,EAmCnC,OACE,cAACc,EAA2Bre,SAA5B,CACEC,MAAO,CACL0B,eACAic,UACAC,kBACAC,UACAxZ,kBACA2G,aACA8S,qBACAC,aACA5d,aArDe,WACnBkE,EAAgBzH,EAAqB8E,cACrCsJ,EAAWpO,EAAqB+gB,SAChCG,EAAmBlhB,EAAqBghB,iBACxCG,EAAWnhB,EAAqBihB,UAkD5BG,SA7CW,SAAC7Y,GAAD,OAAkBkZ,EAAuBd,aAAa,CAAEpY,UA8CnE8Y,sBA5CwB,SAACvjB,GAAD,OAC5B2jB,EAAuBhd,kBAAkB,CACvCgE,WAAY3K,EAAKiH,KACjB2D,UAAW5K,EAAKkH,QAChB2I,SAAU7P,EAAK6P,SACfhM,MAAO7D,EAAK6D,MACZ4D,MAAOzH,EAAK4H,YAAc5H,EAAKyH,SAuC7B+b,yBArC2B,SAACxjB,GAAD,OAC/B2jB,EAAuBb,qBAAqB,CAC1C7b,KAAMjH,EAAKiH,KACXI,OAAQrH,EAAKqH,OACbC,gBAAiBtH,EAAK+P,eACtBvI,KAAMxH,EAAKwH,KACXwD,SAAUhL,EAAKgQ,QACfjI,QAAS/H,EAAK+H,QACdkD,YAAajL,EAAKiL,YAClBgF,QAASjQ,EAAKiQ,WA6BZwT,iBA3BmB,SAACzjB,GAAD,OACvB2jB,EAAuBZ,aAAa,CAClC/R,aAAchR,EAAKiH,KACnB8D,IAAK/K,EAAKoH,IACVC,OAAQrH,EAAKqH,OACbC,gBAAiBtH,EAAK+P,eACtBvI,KAAMxH,EAAKwH,KACXwD,SAAUhL,EAAKgQ,QACfjI,QAAS/H,EAAK+H,QACdkD,YAAajL,EAAKiL,gBAIpB,SAgBGxI,M,sKClKD3D,EACK,eAiDI8kB,E,kDARb,aAAe,IAAD,8BACZ,cAAM3kB,IAAkBC,mBAAqB,IAAI,IAG5CI,IAJO,uCAID,WAAOsX,GAAP,SAAAxX,EAAA,+EACX,EAAKC,SAASC,IAA2BoX,YAAU5X,EAAe8X,KADvD,2CAJC,wD,UADStW,K,OCxBnBujB,EAAkD,CACtD7hB,SAAS,EACTG,aAAc,GACd0Z,WAAY,aACZS,KAAM,EACNH,WAAY,aACZM,eAAgB,aAChBF,SAAU,GACVX,OAAQ,GACR5b,KAAM,CACJ2c,MAAO,EACP9G,KAAM,KACN+G,SAAU,KACVC,QAAS,IAEXpX,aAAc,cAGVI,EAAM,IAAI+d,EAEHE,EAAiBthB,wBAC5BqhB,GA4Da7nB,IAzD0B,SAAC,GAAkB,IAAhByG,EAAe,EAAfA,SAC1C,EAA8Ba,mBAC5BugB,EAA2B7hB,SAD7B,mBAAOA,EAAP,KAAgBuB,EAAhB,KAGA,EAAwCD,mBACtCugB,EAA2B1hB,cAD7B,mBAAOA,EAAP,KAGA,GAHA,KAG2BmB,mBACzBugB,EAA2BvH,OAD7B,mBAAOA,EAAP,KAAaH,EAAb,KAGA,EAAmC7Y,mBACjCugB,EAA2BtH,UAD7B,mBAAOA,EAAP,KAAiBE,EAAjB,KAGA,EAAwBnZ,mBACtBugB,EAA2B7jB,MAD7B,mBAAOA,EAAP,KAAa0O,EAAb,KAGA,EAA4BpL,mBAC1BugB,EAA2BjI,QAD7B,mBAAOA,EAAP,KAAesB,EAAf,KAIMrB,EAAU,uCAAG,WAAOjF,GAAP,eAAAxX,EAAA,6DACjBmE,GAAW,GADM,SAEQsC,EAAIvG,IAAJ,2BACpBsX,GADoB,IAEvBuG,UAAWZ,KAJI,OAEXa,EAFW,QAMjB,OAAIxG,QAAJ,IAAIA,OAAJ,EAAIA,EAAa0F,OAAMH,EAAWvF,EAAY0F,OAC9C,OAAI1F,QAAJ,IAAIA,OAAJ,EAAIA,EAAauG,YAAWV,EAAe7F,EAAYuG,WACvDzO,EAAQ0O,GACRF,EAAUtG,GAAe,IACzBrT,GAAW,GAVM,2CAAH,sDAkBhB,OACE,cAACugB,EAAeze,SAAhB,CACEC,MAAO,CACLtD,UACAG,eACA0Z,aACA7b,OACAsc,OACAH,aACAM,iBACAF,WACAX,SACAnW,aAjBe,WACnBiJ,EAAQmV,EAA2B7jB,MACnCkd,EAAU2G,EAA2BjI,UAIrC,SAaGnZ,M,6GCrFD3D,EACE,SAACC,GAAD,8BAA0CA,EAA1C,cADFD,EAEE,SAACC,GAAD,8BAA0CA,EAA1C,cAFFD,EAGY,wBAHZA,EAIa,yBAJbA,EAKgB,4BAKhBgS,E,kDACJ,aAAsB,IAAD,8BACnB,cAAM7R,IAAkBC,mBAAqB,IAAI,IAG5CsQ,KAJc,uCAIP,WACZzQ,EACA2H,GAFY,SAAAtH,EAAA,+EAOZ,EAAKC,SAAS0kB,MAEZjlB,EAAWC,GAAK2H,IATN,2CAJO,0DAedsI,KAfc,uCAeP,WAAOjQ,GAAP,SAAAK,EAAA,+EACZ,EAAKC,SAASC,IAA0BR,EAAWC,KADvC,2CAfO,wDAkBdilB,eAlBc,uCAkBG,WAAOC,GAAP,SAAA7kB,EAAA,+EAItB,EAAKC,SAASC,IAAyBoX,YAAU5X,EAAsBmlB,KAJjD,2CAlBH,wDAwBdC,gBAxBc,uCAwBI,WAAOD,GAAP,SAAA7kB,EAAA,+EAKvB,EAAKC,SAASC,IACZoX,YAAU5X,EAAuBmlB,KANZ,2CAxBJ,wDAiCdE,mBAjCc,uCAiCO,WAAOnkB,GAAP,SAAAZ,EAAA,+EAK1B,EAAKC,SAASC,IACZoX,YAAU5X,EAA0BkB,KANZ,2CAjCP,wD,UADUM,KA4ClBwQ,O,gCClEf,oEAEA,IAAMnT,EAAY,CAChBwV,oBAAqB,gEACrBlV,kBAAoBhH,OAAemtB,IAAIC,qBACvClmB,mBAAqBlH,OAAemtB,IAAIE,sBACxC1mB,sBAAwB3G,OAAemtB,IAAIG,yBAC3CC,eAAiBvtB,OAAemtB,IAAIK,iBACpClmB,YAAa,YACbT,cAAgB7G,OAAemtB,IAAIM,eACnCpmB,2BACE,kEAGEW,EAAoB,CACxBC,kBAAoBjI,OAAemtB,IAAIllB,oB,gCCfzC,qBAmDesF,IAzCY,SAACpN,GAC1B,OAAQA,EAAMoJ,MACZ,IAAK,QACH,OAAOmkB,IAAa3f,MAAM,CACxB6N,QAAS,QACTpO,YAAarN,EAAMqN,YACnBrL,MAAO,CACLwrB,aAAc,OACdC,WAAW,aAAD,OAAeC,IAAMrkB,MAAM8X,QAG3C,IAAK,UACH,OAAOoM,IAAaI,QAAQ,CAC1BlS,QAAS,UACTpO,YAAarN,EAAMqN,YACnBrL,MAAO,CACLwrB,aAAc,OACdC,WAAW,aAAD,OAAeC,IAAMrkB,MAAM6X,UAG3C,IAAK,OACH,OAAOqM,IAAaK,KAAK,CACvBnS,QAAS,OACTpO,YAAarN,EAAMqN,YACnBrL,MAAO,CACLwrB,aAAc,OACdC,WAAW,aAAD,OAAeC,IAAMrkB,MAAMsX,cAG3C,QACE,OAAO4M,IAAa3f,MAAM,CACxB6N,QAASzb,EAAMoJ,KACfiE,YAAarN,EAAMqN,YACnBrL,MAAO,CACLwrB,aAAc,OACdC,WAAW,aAAD,OAAeC,IAAMrkB,MAAM8X,W,+EC4KzC2F,EAAUjd,IAAO0Z,IAAV,2SAEQ,SAACvjB,GAAD,OAAmBA,EAAMiK,gBAC7B,SAACjK,GAAD,OAAmBA,EAAMuF,MAAM2E,SAASlK,EAAMoJ,SAC5C,SAACpJ,GAAD,OACbA,EAAMkS,OAASlS,EAAMkS,OAlEF,SAAC9I,GACxB,OAAQA,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,MACL,IAAK,WACH,OAAO7D,IAAMwE,WAAWoY,QAC1B,IAAK,QACL,IAAK,OACH,OAAO5c,IAAMwE,WAAWqY,KAC1B,QACE,OAAO7c,IAAMwE,WAAWoY,SAsDM0L,CAAiB7tB,EAAMoJ,SACxC,SAACpJ,GAAD,OAnDU,SAACoJ,GAC5B,OAAQA,GACN,IAAK,QACH,OAAO7D,IAAM2c,WAAWN,MAC1B,IAAK,SACH,OAAOrc,IAAM2c,WAAWL,OAC1B,IAAK,SACH,OAAOtc,IAAM2c,WAAW3X,OAC1B,IAAK,MACH,OAAOhF,IAAM2c,WAAWJ,IAC1B,IAAK,QACH,OAAOvc,IAAM2c,WAAWH,MAC1B,IAAK,OACH,OAAOxc,IAAM2c,WAAWF,KAC1B,IAAK,WACH,OAAOzc,IAAM2c,WAAWD,SAC1B,QACE,OAAO1c,IAAM2c,WAAWL,QAkCQiM,CAAqB9tB,EAAMoJ,SACpD,SAACpJ,GAAD,OA/BY,SAACqJ,GACxB,OAAQA,GACN,IAAK,UACH,OAAO9D,IAAM8D,MAAMK,QACrB,IAAK,QACH,OAAOnE,IAAM8D,MAAME,MACrB,IAAK,YACH,OAAOhE,IAAM8D,MAAMC,UACrB,IAAK,OACH,OAAO/D,IAAM8D,MAAM2X,KACrB,IAAK,QACH,OAAOzb,IAAM8D,MAAM6X,MACrB,IAAK,MACH,OAAO3b,IAAM8D,MAAM8X,IACrB,IAAK,OACH,OAAO5b,IAAM8D,MAAMsX,UACrB,IAAK,OAEL,QACE,OAAOpb,IAAM8D,MAAMiY,MAYOyM,CAAiB/tB,EAAMqJ,UACrC,SAACrJ,GAAD,OAAqC,IAAjBA,EAAMguB,OAAkB,SAAW,YACnD,SAAChuB,GAAD,OAAoBA,EAAMiuB,UAAY,YAAc,aACxD,SAACjuB,GAAD,OAAoBA,EAAMmpB,OAAS,SAAW,YAMjD,SAACnpB,GAAD,OAAmBA,EAAMkuB,gBAIlCC,EAAYtkB,IAAOukB,EAAV,mDACI,SAACpuB,GAAD,OACfA,EAAMiK,aAAejK,EAAMiK,aAAe,YAGxCokB,EAAMxkB,IAAOykB,KAAV,2CACE,SAAAtuB,GAAK,OAAIA,EAAMuF,MAAM8D,MAAM8X,OAGvB9B,IAhNmB,SAAC,GAAD,IAChC1U,EADgC,EAChCA,UACA8Q,EAFgC,EAEhCA,QACArS,EAHgC,EAGhCA,KACAC,EAJgC,EAIhCA,MACA6I,EALgC,EAKhCA,OACA8b,EANgC,EAMhCA,OACAC,EAPgC,EAOhCA,UACA9E,EARgC,EAQhCA,OACA+E,EATgC,EAShCA,aACAjkB,EAVgC,EAUhCA,aACAskB,EAXgC,EAWhCA,SACAnP,EAZgC,EAYhCA,MAZgC,OAchC,cAAC0H,EAAD,CACEnc,UAAWA,EACXvB,KAAMA,EACNgW,MAAOA,EACP/V,MAAOA,EACP6I,OAAQA,EACR8b,OAAQA,EACRC,UAAWA,EACX9E,OAAQA,EACRoF,SAAUA,EACVL,aAAcA,EACdjkB,aAAcA,EAXhB,SAYY,aAATb,GAWY,SAATA,EAVF,6BACGmlB,EACC,qCACE,cAACF,EAAD,gBACC5S,KAGHA,IAcO,UAATrS,EACF,6BACGmlB,EACC,qCACE,cAACF,EAAD,gBACC5S,KAGHA,IAGO,QAATrS,EACF,6BACGmlB,EACC,qCACE,cAACF,EAAD,gBACC5S,KAGHA,IAGO,WAATrS,EACF,6BACGmlB,EACC,qCACE,cAACF,EAAD,gBACC5S,KAGHA,IAGO,WAATrS,EACF,6BACGmlB,EACC,qCACE,cAACF,EAAD,gBACC5S,KAGHA,IAGO,UAATrS,EACF,6BACGmlB,EACC,qCACE,cAACF,EAAD,gBACC5S,KAGHA,IAIJ,cAAC0S,EAAD,CAAWlkB,aAAcA,EAAzB,SACGskB,EACC,qCACE,cAACF,EAAD,gBACC5S,KAGHA,Q,gHC1EKvS,IA5Db,WAAsBslB,EAAiBC,GAAgB,IAAD,gCAFnCxmB,cAEmC,OAQ9CymB,8BAAgC,WACtC,EAAKzmB,SAAS0mB,aAAaphB,SAASqhB,IAAI,EAAKC,eAAgB,EAAKC,cATd,KAY9CD,eAAiB,SAAC5Y,GACxB,OAAmB,MAAfA,EAAIuQ,OAAuBvQ,EAAIrN,KAC5BqN,GAd6C,KAiB5C6Y,YAAc,SAAClhB,GAAD,OAAgBmhB,QAAQC,OAAOphB,IAjBD,KAmB9CqhB,mBAnB8C,sBAmBzB,kCAAAjnB,EAAA,2DACG/H,cAAtBqO,EADmB,EACnBA,QAASpB,EADU,EACVA,SACZoB,EAFsB,yCAEN,IAFM,uBAGR,EAAKrG,SAASK,KAI/B,4BACA,CACEgG,UACApB,YAEF,CAAEgiB,iBAAiB,IAZM,cAGrBtmB,EAHqB,OAc3BmE,YAAWnE,EAAKoE,QAASsB,EAAS1F,EAAKsE,UAdZ,mCAeVtE,EAAKoE,UAfK,2CAnByB,KAqC9CmiB,kCAAoC,SAACV,GACvCA,GACF,EAAKxmB,SAAS0mB,aAAaS,QAAQR,KAAI,SAAAzT,GAErC,OADAA,EAAOc,QAAP,+BAA4Chc,cAAYC,QACjDib,KAIX,IAAMkU,EAAgB,uCAAG,WAAOC,GAAP,eAAAtnB,EAAA,+EAED,EAAKinB,qBAFJ,cAEf1E,EAFe,OAGrB+E,EAAc/hB,SAAS4N,OAAOc,QAA9B,cAAyDsO,EAHpC,kBAIdwE,QAAQQ,WAJM,gCAMrBphB,cACAgZ,SAASqI,SAPY,yDAAH,sDAWtBC,IAA6B,EAAKxnB,SAAUonB,IAvD5CK,KAAKznB,SAAW0nB,IAAMC,OAAO,CAC3BpB,YAEFkB,KAAKhB,gCACLgB,KAAKP,kCAAkCV,K,6GCLrC/mB,EACE,SAACC,GAAD,4BAAwCA,EAAxC,cADFD,EAEE,SAACC,GAAD,4BAAwCA,EAAxC,cAFFD,EAGc,0BAHdA,EAIY,wBAJZA,EAKe,2BAKfiQ,E,kDACJ,aAAsB,IAAD,8BACnB,cAAM9P,IAAkBC,mBAAqB,IAAI,IAG5CsQ,KAJc,uCAIP,WACZzQ,EACA2H,GAFY,SAAAtH,EAAA,+EASZ,EAAKC,SAAS0kB,MAMZjlB,EAAWC,GAAK2H,IAfN,2CAJO,0DAqBdsI,KArBc,uCAqBP,WAAOjQ,GAAP,SAAAK,EAAA,+EACZ,EAAKC,SAASC,IAAsBR,EAAWC,KADnC,2CArBO,wDAwBdkoB,iBAxBc,uCAwBK,WAAOhD,GAAP,SAAA7kB,EAAA,+EAIxB,EAAKC,SAASC,IACZoX,YAAU5X,EAAwBmlB,KALZ,2CAxBL,wDAgCdiD,eAhCc,uCAgCG,WAAOjD,GAAP,SAAA7kB,EAAA,+EAKtB,EAAKC,SAASC,IAAyBoX,YAAU5X,EAAsBmlB,KALjD,2CAhCH,wDAuCdkD,kBAvCc,uCAuCM,WAAOlD,GAAP,SAAA7kB,EAAA,+EAIzB,EAAKC,SAASC,IACZoX,YAAU5X,EAAyBmlB,KALZ,2CAvCN,wD,UADM3jB,KAiDdyO,O,iCCxER,SAASqY,EAA0BzC,GAA8B,IAAD,kCAkBrE,MAAO,CACL0C,YAlBiB,UAAA1C,EAAahC,YAAb,eAAmB1E,gBAAnB,oBACZ0G,EAAahC,YADD,aACZ,EAAmB1E,eAAetT,WADtB,sBACoCga,EAAahC,YADjD,aACoC,EAAmB1E,eAAerT,WACrF,GAiBF0c,UAfe,UAAA3C,EAAahC,YAAb,mBAAmB4E,YAAnB,eAAyBvV,MAAzB,oBACV2S,EAAahC,YADH,iBACV,EAAmB4E,YADT,aACV,EAAyBvV,KAAKrH,WADpB,sBACkCga,EAAahC,YAD/C,iBACkC,EAAmB4E,YADrD,aACkC,EAAyBvV,KAAKpH,WAC7E,GAcF4c,cAZmB,UAAA7C,EAAahC,YAAb,eAAmB8E,kBAAnB,UACjB9C,EAAahC,YADI,aACjB,EAAmB8E,iBAAiBzW,aACpC,GAWF0W,oBARA,UAAA/C,EAAahC,YAAb,mBAAmB4E,YAAnB,eAAyBvV,QAAzB,UAAiC2S,EAAahC,YAA9C,iBAAiC,EAAmB4E,YAApD,aAAiC,EAAyBvV,KAAKhB,cAA/D,sBACS2T,EAAahC,YADtB,iBACS,EAAmB4E,YAD5B,aACS,EAAyBvV,KAAKhB,aADvC,KAEI,IAhBR,mC,8ICIMlS,EACI,wBADJA,EAEQ,SAACC,GAAD,4BAA+BA,EAA/B,cAFRD,EAGe,4CAHfA,EAIS,SAACC,GAAD,qCAAiDA,EAAjD,MAkDTojB,E,kDACJ,aAAe,IAAD,8BACZ,cAAMljB,IAAkBC,mBAAqB,IAAI,IAG5CojB,YAJO,uCAIO,WAAOqF,GAAP,SAAAvoB,EAAA,+EACnB,EAAKC,SAASC,IACZoX,YAAU5X,EAAc,CACtB8oB,WAAY,aACZC,SAAS,GAAD,OAAKF,GAAgBhQ,cAArB,cAJO,2CAJP,wDAYPsK,cAZO,uCAYS,WAAOljB,EAAYyjB,GAAnB,SAAApjB,EAAA,+EACrB,EAAKC,SAASC,IACZoX,YAAU5X,EAAiBC,GAAK,CAC9B6oB,WAAY,aACZC,SAAS,GAAD,OAAKrF,GAAgB7K,cAArB,cAJS,2CAZT,0DAoBPyG,IApBO,uCAoBD,WACXpe,EACAgG,EACAqY,GAHW,eAAAjf,EAAA,+EAMH,EAAKC,SAASK,KAAKZ,EAAnB,2BACDkB,GADC,IAEJ8nB,gBAAiBxS,IAAOtV,EAAKkV,cAAc,GAAGG,MAAOE,KACrDwS,cAAezS,IAAOtV,EAAKkV,cAAc,GAAGM,IAAKD,QAT1C,OAWTvP,IAXS,+CAaTqY,EAAa,OAAC,EAAD,6BAAC,KAAK1Z,gBAAN,aAAC,EAAe3E,MAbpB,wDApBC,4DAqCPgoB,YArCO,uCAqCO,WAAOjpB,GAAP,SAAAK,EAAA,+EACnB,EAAKC,SAASS,OAAmBhB,EAAkBC,KADhC,2CArCP,wD,UADcuB,KA0Cf6hB,O,yeCrDT8F,GAAahnB,aAAOinB,KAAPjnB,CAAH,kZAyBDknB,GA/DwC,SAAC,GAAwB,IAAtBC,EAAqB,EAArBA,eAChDC,EAAS1lB,sBAAWC,MAApBylB,KACFC,EAAc3lB,sBAAWJ,MACzB1L,EAAU0xB,eACR5kB,EAAMC,eAAND,EAER,OACE,gBAACskB,GAAD,WACE,eAAC,KAAQO,KAAT,CAAsB1mB,QAAS,kBAAMsmB,KAArC,SACE,eAAC,KAAD,CAAM7wB,GAAIC,GAAMqD,QAAhB,SACE,eAAC4b,GAAA,EAAD,CAAM5D,QAASlP,EAAE,oBAAqBtC,aAAa,SAFrC,KAKlB,eAAC,KAAQmnB,KAAT,CAAsB1mB,QAAS,kBAAMsmB,KAArC,SACE,eAAC,KAAD,CAAM7wB,GAAI8wB,IAASxI,KAAM4I,SAAWjxB,GAAMwD,gBAAkBxD,GAAMuD,YAAlE,SACE,eAAC0b,GAAA,EAAD,CAAM5D,QAASlP,EAAE,oBAAqBtC,aAAa,SAFrC,KAKlB,eAAC,KAAQmnB,KAAT,CAAsB1mB,QAAS,kBAAMsmB,KAArC,SACE,eAAC,KAAD,CACE7wB,GACE8wB,IAASxI,KAAM4I,SAAW,0BAA4B,sBAF1D,SAIE,eAAChS,GAAA,EAAD,CAAM5D,QAASlP,EAAE,kBAAmBtC,aAAa,SALnC,KAQlB,eAAC,KAAQmnB,KAAT,CAEE1mB,QAAS,WACPsmB,IACAE,EAAYhmB,QAAQzL,IAJxB,SAME,eAAC4f,GAAA,EAAD,CAAM5D,QAASlP,EAAE,iBAAkBtC,aAAa,IAAIZ,MAAM,SALtD,S,+KC0PGioB,GAtQW,SAAC,GAAoD,IAAlDzZ,EAAiD,EAAjDA,SAAUhU,EAAuC,EAAvCA,SAC7B0I,EAAMC,eAAND,EACR,EAMIhB,sBAAW+N,MALbd,EADF,EACEA,UACAS,EAFF,EAEEA,cACAD,EAHF,EAGEA,aACUuY,EAJZ,EAIE5a,SACc6a,EALhB,EAKEnjB,aAGF,EAMI9C,sBAAW4L,MALbvH,EADF,EACEA,aACAiH,EAFF,EAEEA,iBACAtE,EAHF,EAGEA,gBACUkf,EAJZ,EAIE9a,SACc+a,EALhB,EAKErjB,aAGMM,EAAcpD,sBAAWC,MAAzBmD,UAEA1M,EAAUoU,eAAVpU,MAER,EAAwCiK,qBAAkB,GAA1D,mBAAOylB,EAAP,KAAqBC,EAArB,KACA,EAA4B1lB,oBAAiBsM,EAAUnF,MAAvD,mBAAOC,EAAP,KAAeue,EAAf,KACA,EAAwC3lB,qBAAkB,GAA1D,mBAAO4lB,EAAP,KAAqBC,EAArB,KAEMC,EAAU,WACdH,EAAU,KAGZnyB,sBAAU,WASR,OARIiP,IACE9K,EACF0tB,EAAiB,GAAD,OAAI5iB,IAEpB8iB,EAAa,GAAD,OAAI9iB,KAIb,WACL6iB,IACAE,OAED,CAAC/iB,EAAWkJ,IAEf,IAAMoa,EACJ,qCACE,eAAC,KAAD,CACEC,kBAAkB,EAClBC,cAAe3Z,EACf4Z,SAAQ,yCAAE,WAAMC,GAAN,UAAArqB,EAAA,6DACR+pB,GAAgB,GADR,SAGN/Y,EAAa,6BAAKR,GAAN,IAAiBnF,KAAMgf,EAAOhf,QAHpC,SAIA4F,EAActK,GAAa,GAAd,aAAC,gBAAsB6J,GAAvB,IAAkCnF,KAAMgf,EAAOhf,QAJ5D,OAKN0e,GAAgB,GALV,gDAONvX,QAAQ5M,MAAM,SAAd,MACAmkB,GAAgB,GARV,yDAAF,sDAHV,SAcG,gBAAGjkB,EAAH,EAAGA,OAAQwkB,EAAX,EAAWA,aAAcC,EAAzB,EAAyBA,cAAeF,EAAxC,EAAwCA,OAAxC,OACC,gBAAC,OAAD,WACE,eAAC,OAAD,UACE,eAACG,GAAD,UACE,eAACC,GAAD,CACEC,IAAKL,EAAOhf,KAAOgf,EAAOhf,MAAQsf,KAAkB9a,EAASxE,WAInE,gBAAC,OAAD,WACE,eAAC,KAAD,CACEuf,OAAO,kBACPC,aAAc,SAAAC,GAmBZ,OAlBAjB,EAAU,IACVU,EAAc,SAAU,MACpBO,EAAKC,KAAO,IACd3lB,aAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,+CAGjBoT,aAAUmT,GAAM,SAACE,GACfnB,EAAUmB,GACVT,EAAc,OAAQS,GACtBpB,GAAgB,GAChBxkB,aAAmB,CACjBhE,KAAM,OACNiE,YAAad,EAAE,wDAId,GAET0mB,SAAU,kBAAM,MAChBC,SAAS,UACTC,SAAU,EACVC,gBAAgB,EA1BlB,SA2BE,gBAACC,GAAD,WACE,eAAChU,GAAA,EAAD,CACE5D,QAASlP,EAAE,sCACXnD,KAAMnH,EAAQsD,KAAMmd,YAAYJ,GAAK,MAAQ,QAC7CpQ,OAAQ,MAEV,eAACiN,GAAD,CACE1D,QAASlP,EACPiM,EAAUnF,KACN,0CACA,uCAENjK,KAAK,SACLC,MAAM,YAEPyE,EAAOuF,MAAQ,eAACgM,GAAA,EAAD,CAAM5D,QAAS3N,EAAOuF,KAAMjK,KAAK,QAAQC,MAAM,aAGnE,eAACiqB,GAAD,CACE7oB,MAAO8B,EAAE,eACT7B,QAAS,kBAAM4nB,KACfznB,SAAUinB,IAAiBO,EAAOhf,UAGtC,gBAACkgB,GAAD,CACEnU,MAAM,mCACNoU,UAAQ,EACRzP,QAAS4N,EACTzN,SAAU,kBAAM0N,GAAgB,IAJlC,UAKE,eAAC,KAAD,CACE3vB,MAAO,IACPC,OAAQ,IACRuxB,OAAQ,SAAAC,GACNnB,EAAc,OAAQmB,IAExB1B,QAAS,WACPA,IACAH,EAAU,KAEZa,IAAKpf,IAEP,eAAC,KAAD,CAAQlK,KAAK,UAAUsB,QAAS,kBAAMknB,GAAgB,IAAtD,SACGrlB,EAAE,4CASXonB,EACJ,qCACE,eAAC,KAAD,CACEzB,kBAAkB,EAClBC,cAAeviB,EACfwiB,SAAQ,yCAAE,WAAMC,GAAN,UAAArqB,EAAA,sEAEN+pB,GAAgB,GAChBxf,EAAgB,6BAAK3C,GAAN,IAAoB0D,OAAQ+e,EAAO/e,UAH5C,SAIAuD,EAAiBlI,GAAa,GAAd,aAAC,gBAClBiB,GADiB,IAEpB0D,OAAQ+e,EAAO/e,UANX,OAQNye,GAAgB,GARV,gDAUNvX,QAAQ5M,MAAM,SAAd,MACAmkB,GAAgB,GAXV,yDAAF,sDAHV,SAiBG,gBAAGjkB,EAAH,EAAGA,OAAQwkB,EAAX,EAAWA,aAAcC,EAAzB,EAAyBA,cAAeF,EAAxC,EAAwCA,OAAxC,OACC,gBAAC,OAAD,WACE,eAAC,OAAD,UACE,eAACG,GAAD,UACE,eAACC,GAAD,CACEC,IAAKL,EAAO/e,OAAS+e,EAAO/e,QAAUqf,KAAkB9a,EAASvE,aAIvE,gBAAC,OAAD,WACE,eAAC,KAAD,CACEsf,OAAO,kBACPC,aAAc,SAAAC,GAmBZ,OAlBAjB,EAAU,IACVU,EAAc,SAAU,MACpBO,EAAKC,KAAO,IACd3lB,aAAmB,CACjBhE,KAAM,QACNiE,YAAad,EAAE,+CAGjBoT,aAAUmT,GAAM,SAACE,GACfnB,EAAUmB,GACVT,EAAc,SAAUS,GACxBpB,GAAgB,GAChBxkB,aAAmB,CACjBhE,KAAM,OACNiE,YAAad,EAAE,wDAId,GAET0mB,SAAU,kBAAM,MAChBC,SAAS,UACTC,SAAU,EACVC,gBAAgB,EA1BlB,SA2BE,gBAACC,GAAD,WACE,eAAChU,GAAA,EAAD,CACE5D,QAASlP,EAAE,GAAD,OAAIqD,EAAaC,OAC3BzG,KAAMnH,EAAQsD,KAAMmd,YAAYJ,GAAK,MAAQ,QAC7CpQ,OAAQ,MAEV,eAACiN,GAAD,CACE1D,QAASlP,EACPqD,EAAa0D,OACT,+BACA,oCAENlK,KAAK,SACLC,MAAM,YAEPyE,EAAOwF,QACN,eAAC+L,GAAA,EAAD,CAAM5D,QAAS3N,EAAOwF,OAAQlK,KAAK,QAAQC,MAAM,aAIvD,eAACiqB,GAAD,CACE7oB,MAAO8B,EAAE,eACT7B,QAAS,kBAAM4nB,KACfznB,SAAUinB,IAAiBO,EAAO/e,YAGtC,gBAACigB,GAAD,CACEnU,MAAM,mCACNoU,UAAQ,EACRzP,QAAS4N,EACTzN,SAAU,kBAAM0N,GAAgB,IAJlC,UAKE,eAAC,KAAD,CACE3vB,MAAO,IACPC,OAAQ,IACRuxB,OAAQ,SAAAC,GACNnB,EAAc,SAAUmB,IAE1B1B,QAAS,WACPA,IACAO,EAAc,SAAU,IACxBV,EAAU,KAEZa,IAAKpf,IAEP,eAAC,KAAD,CAAQlK,KAAK,UAAUsB,QAAS,kBAAMknB,GAAgB,IAAtD,SACGrlB,EAAE,4CASjB,OAAO1I,EAAWouB,EAAyB0B,GAKvCN,GAAgBxpB,KAAO0Z,IAAV,iJAQbpE,GAAatV,aAAOwV,KAAPxV,CAAH,sFAOV2oB,GAAe3oB,KAAO0Z,IAAV,wQAKF,SAAAvjB,GAAK,OAAIA,EAAMuF,MAAM8D,MAAMC,aAQrCmpB,GAAe5oB,KAAO+V,IAAV,mHAOZ2T,GAAa1pB,aAAOia,KAAPja,CAAH,8dA6BVypB,GAAsBzpB,aAAOW,KAAPX,CAAH,oFC/QnB+pB,GAAY/pB,aAAO6Z,KAAP7Z,CAAH,kEAKTgqB,GAAShqB,KAAO+V,IAAV,oJASNkU,GAASC,aAAH,0FASNC,GAAgBnqB,KAAO0Z,IAAV,4sBAWH,SAAAvjB,GAAK,OAAIA,EAAMi0B,YAedH,IAIXI,GAAkBrqB,KAAO0Z,IAAV,6FAMN4Q,GA/HY,WACzB,MAA4B5oB,sBAAWC,MAA/BylB,EAAR,EAAQA,KAAMtiB,EAAd,EAAcA,UACd,EAAwCpD,sBAAWO,MAArChI,EAAd,EAAQ8E,KAAcwrB,EAAtB,EAAsBA,cACtB,EAA4C7oB,sBAAWK,MAAzC/H,EAAd,EAAQ+E,KAAgByrB,EAAxB,EAAwBA,gBACxB,EAAoDnoB,qBAAS,GAA7D,mBAAOooB,EAAP,KAA2BC,EAA3B,KAEQhoB,EAAMC,eAAND,EAER7M,sBAAU,WACHiP,IACDsiB,IAASxI,KAAM4I,UAAsC,KAA1BxtB,EAAS+V,aACtCya,EAAgB1lB,GACPsiB,IAASxI,KAAM+L,QAA+B,KAArB1wB,EAAO0P,WACzC4gB,EAAczlB,MAEf,CAACsiB,EAAMtiB,IAEV,IASmB8lB,EAMnB,EAAsCvoB,qBAAkB,GAAxD,mBAAOwoB,EAAP,KAAoBC,EAApB,KAEA,OACE,gBAACT,GAAD,WACE,eAAC7U,GAAA,EAAD,CACE5D,QApBU,SAACgZ,GACf,IAAMhoB,EAAQpH,aAAaC,QAAQ,sBACnC,OAAImvB,IAAahM,KAAM4I,SAAiBxtB,EAAS6U,aAAejM,EAC5DgoB,IAAahM,KAAM+L,QACd1wB,EAAOyP,WAAP,UAAuBzP,EAAOyP,WAA9B,YAA4CzP,EAAO0P,WAErD/G,EAcMmoB,CAAQ3D,IAAS,GAC1BhnB,aAAa,IACbb,KAAK,SACLC,MAAM,YACN6I,OAAQ,MAEV,eAAC8hB,GAAD,CAAeC,UAAW1nB,EAAE,oDAA5B,SACE,eAACsnB,GAAD,CAAQnpB,QAAS,kBAAMiqB,GAAe,IAAOjC,KAlBhC+B,EAkB+CxD,EAjB5DwD,IAAahM,KAAM4I,SAAiBxtB,EAASwP,MAAQsf,KACrD8B,IAAahM,KAAM+L,QAAe1wB,EAAOwP,QACtCuhB,UAiBL,eAAC,KAAD,CACE9Q,QAAS2Q,EACTlB,UAAQ,EACRnP,OAAQ,KACRH,SAAU,kBAAMyQ,GAAe,IAC/BvV,MAAO7S,EAAE,kDALX,SAME,eAAC,GAAD,CACE1I,SAAUotB,IAASxI,KAAM4I,SACzBxZ,SAAUoZ,IAASxI,KAAM4I,SAAWxtB,EAAWC,MAGnD,eAAC,KAAD,CACEgxB,QAAS,eAAC,GAAD,CAAM9D,eAAgB,kBAAMuD,GAAsB,MAC3DQ,QAAS,CAAC,SACVC,gBAAiB,SAAAld,GAAK,OAAIyc,EAAsBzc,IAChDiM,QAASuQ,EAJX,SAKE,eAACV,GAAD,CAAWxqB,KAAK,oBC2CTwrB,GArHC,SAACzN,EAAkB8J,GACjC,OAAI9J,IAAa/mB,GAAM4D,oBACd,0BAELmjB,IAAa/mB,GAAMmC,SACd,0BAEL4kB,EAAS8N,WAAW70B,GAAMqD,SACrBwtB,IAASxI,KAAM4I,SAClB,iCACA,+BAEFlK,EAAS8N,WAAW70B,GAAMC,WACrB,2BAGL8mB,EAAS8N,WAAW70B,GAAMsD,UACrB,0BAELyjB,EAAS8N,WAAW70B,GAAMoD,UACrB,0BAGL2jB,EAAS8N,WAAW,cACf,gCAGL9N,EAAS8N,WAAW,YACf,kCAGL9N,EAAS8N,WAAW,6BACf,yBAGL9N,EAAS8N,WAAW,iCACf,gCAGL9N,EAAS8N,WAAW,8BACf,6BAGL9N,EAAS8N,WAAW,yBACf,yBAGL9N,EAAS8N,WAAW,oCAIpB9N,EAAS8N,WAAW,uCAHf,kCAOL9N,EAAS8N,WAAW,wCAIpB9N,EAAS8N,WAAW,2CAHf,uCAOL9N,EAAS8N,WAAW,uCAIpB9N,EAAS8N,WAAW,0CAHf,qCAOL9N,EAAS8N,WAAW70B,GAAMkD,YAAc2tB,IAASxI,KAAM4I,SAClD,0BAGLlK,EAAS8N,WAAW70B,GAAMkD,YAAc2tB,IAASxI,KAAM+L,OAClD,2BAGLrN,EAAS8N,WAAW,gBACf,8BAGL9N,EAAS8N,WAAW,kCACf,6BAGL9N,EAAS8N,WAAW,qCACf,gCAGL9N,EAAS8N,WAAW,8BACf,0BAGL9N,EAAS8N,WAAW,yCACf,oCAGL9N,EAAS8N,WAAW,qBACf,yBAGL9N,EAAS8N,WAAW,0BACf,0BAGL9N,EAAS8N,WAAW,iBACf,yBAGL9N,EAAS8N,WAAW,cACf,2BAEF,0B,wCC1FDC,GAAkBC,KAAlBD,OAAQE,GAAUD,KAAVC,MAQVC,GAA0C,CAC9Ch1B,UAAW,0BACXmD,SAAU,yBACVH,UAAW,0BACXiyB,KAAM,qBACNC,SAAU,yBACVC,OAAQ,uBACR/xB,QAAS,wBACT0sB,KAAM,qBACNsF,mBAAoB,mCACpBC,mBAAoB,oCAGhBC,GAAoC,SAAC,GAAyB,IAAvBvsB,EAAsB,EAAtBA,KAAMwsB,EAAgB,EAAhBA,UAC3Cn2B,EAAU0xB,eACV0E,IAAWD,GACbn2B,EAAQ0nB,SAAS2O,SAASC,cAAcd,WAAWW,EAAUG,eAEzDxpB,EAAMC,eAAND,EACR,OACE,gBAACypB,GAAD,CACEH,SAAUA,EACVnrB,QAAS,WACHkrB,GACFn2B,EAAQ0N,KAAR,UAAgByoB,KAJtB,UAOE,eAACK,GAAD,CAAuBJ,SAAUA,EAAjC,SACE,eAACnS,GAAA,EAAD,CAASta,KAAMA,MAEjB,eAACiW,GAAA,EAAD,CAAM8J,QAAM,EAAC1N,QAASlP,EAAE8oB,GAAajsB,IAAQA,KAAK,QAAQC,MAAM,cAKhE4sB,GAAwBpsB,KAAO0Z,IAAV,+KACX,SAACvjB,GAAD,OACZA,EAAM61B,SAAW,4BAA8B,4BAS7CG,GAAkBnsB,KAAOqsB,GAAV,qeAiBJxI,KAAMxjB,SAAS0X,OACnB,SAAC5hB,GAAD,OAAmBA,EAAMuF,MAAM8D,MAAME,SAS5C4sB,GAA0C,SAAC,GAAyC,IAAvC/sB,EAAsC,EAAtCA,KAAMwsB,EAAgC,EAAhCA,UAAWQ,EAAqB,EAArBA,eAC5D32B,EAAU0xB,eACV0E,IAAWD,GACbn2B,EAAQ0nB,SAAS2O,SAASC,cAAcd,WAAWW,EAAUG,eAEzDxpB,EAAMC,eAAND,EACR,OACE,gBAAC8pB,GAAD,CACER,SAAUA,EACVnrB,QAAS,WACHkrB,GACFn2B,EAAQ0N,KAAR,UAAgByoB,KAJtB,UAOE,eAACU,GAAD,CAAYT,SAAUA,EAAtB,SACE,eAACnS,GAAA,EAAD,CAASta,KAAMA,MAEjB,eAACiW,GAAA,EAAD,CAAM8J,QAAM,EAAC1N,QAASlP,EAAE8oB,GAAajsB,IAAQA,KAAK,QAAQC,MAAM,UAC/D+sB,GAAkBA,EAAiB,EAClC,eAACG,GAAD,CAA6BV,SAAUA,EAAvC,SACGO,IAED,SAKJG,GAA8B1sB,KAAO0Z,IAAV,uTAOxB,SAAAvjB,GAAK,OAAKA,EAAM61B,SAAW,MAAQ,UACjC,SAAA71B,GAAK,OAAKA,EAAM61B,SAAW,OAAS,SASzCQ,GAAwBxsB,KAAOqsB,GAAV,sSAGN,SAACl2B,GAAD,OAAoBA,EAAM61B,SAAW,WAAa,YAKxD,SAAC71B,GAAD,OAAoBA,EAAM61B,SAAW,QAAU,SAC7CnI,KAAMxjB,SAAS0X,OAEnB,SAAC5hB,GAAD,OAAmBA,EAAMuF,MAAM8D,MAAME,SAO5C+sB,GAAazsB,KAAO0Z,IAAV,+KACA,SAACvjB,GAAD,OACZA,EAAM61B,SAAW,4BAA8B,4BAStCW,GAAsB,SAACjJ,EAA6B9tB,GAAkB,IAAD,4BAChF,OAAQ8tB,EAAankB,MACnB,IAAK,+BACH,OAEF,IAAK,oBACH,OAAO,UAAAmkB,EAAahC,YAAb,mBAAmB4E,YAAnB,eAAyBsG,UAC5Bh3B,EAAQ0N,KAAR,iBAAuBupB,mBAAkB,UAACnJ,EAAahC,YAAd,iBAAC,EAAmB4E,YAApB,aAAC,EAAyBsG,iBACnEte,EAEN,IAAK,sBACL,IAAK,8BACL,IAAK,sBACL,IAAK,0BACL,IAAK,uBACH,OAAO1Y,EAAQ0N,KAAK/M,GAAMiD,WAE5B,IAAK,wBACH,OAAO,UAAAkqB,EAAahC,YAAb,mBAAmB1E,sBAAnB,eAAmClf,IACtClI,EAAQ0N,KAAR,6BAAyBogB,EAAahC,YAAtC,iBAAyB,EAAmB1E,sBAA5C,aAAyB,EAAmClf,UAC5DwQ,EAEN,IAAK,mBACL,IAAK,wBACL,IAAK,qBACL,IAAK,oBACL,IAAK,kBACL,IAAK,yBACL,IAAK,2BACL,IAAK,6BACL,IAAK,6BACH,OAAO,UAAAoV,EAAahC,YAAb,mBAAmBoL,iBAAnB,eAA8BhvB,IACjClI,EAAQ0N,KAAR,gCAA4BogB,EAAahC,YAAzC,iBAA4B,EAAmBoL,iBAA/C,aAA4B,EAA8BhvB,UAC1DwQ,EAEN,IAAK,qBACH,OAAO1Y,EAAQ0N,KAAK,CAClB2oB,SAAS,eAAD,iBAAiBvI,EAAahC,YAA9B,iBAAiB,EAAmBoL,iBAApC,aAAiB,EAA8BhvB,IACvDmQ,MAAO,CAAE8e,SAAS,KAEtB,IAAK,sBACL,IAAK,wBACH,OAAOn3B,EAAQ0N,KAAK/M,GAAMqD,SAC5B,QACE,SAIOozB,GAAiB,SAACvY,GAK7B,OAAkB,IAAdA,EAAKwY,KACA,CAAE5oB,MAAOoQ,EAAKwY,KAAMC,WAAY,yBAEtB,IAAfzY,EAAK0Y,MACA,CAAE9oB,MAAOoQ,EAAK0Y,MAAOD,WAAY,0BAEnC,CAAE7oB,MAAOoQ,EAAK2Y,QAASF,WAAY,6BAGtCG,GAAartB,aAAOstB,KAAPttB,CAAH,oIAQVutB,GAAqB,WAAO,IAAD,EAC/B,EAKI7rB,sBAAWiK,MAJbZ,EADF,EACEA,iBACeyiB,EAFjB,EAEE/hB,cACAP,EAHF,EAGEA,sBACAG,EAJF,EAIEA,sBAGM3I,EAAMC,eAAND,EACF9M,EAAU0xB,eAEhBzxB,sBAAU,WACRkV,MACC,IAEH,IAAMwhB,EAAiBiB,EAAsBpoB,QAC3C,SAAAse,GAAY,OAA0B,IAAtBA,EAAa+J,QAC7B9Z,OAEI+Z,EAAW,UAAGlyB,aAAaC,QAAQ,qBAAxB,aAAG,EAAoCkyB,cAElDC,EAAwB,SAACnM,GAAD,+BAC5BA,EAAMC,YADsB,iBAC5B,EAAYoL,iBADgB,iBAC5B,EAAuBe,kBADK,iBAC5B,EAAmCC,oBADP,iBAC5B,EAAiD5oB,MAC/C,SAAA6oB,GAAW,OAAIA,EAAYC,eAAiBN,YAFlB,aAC5B,EAEGK,aAEL,EAAkC1rB,oBAAiB,iBAAnD,mBAAO2c,EAAP,KAAkBY,EAAlB,KACA,EAAsCvd,oBAAmB,IAAzD,mBAAO4rB,EAAP,KAAoBC,EAApB,KACA,EAAsD7rB,qBAAkB,GAAxE,mBAAO8rB,EAAP,KAA4BC,EAA5B,KACA,EAAoD/rB,qBAAkB,GAAtE,mBAAOgsB,EAAP,KAA2BC,EAA3B,KAoBMC,EAAkB,SAACC,GAAD,OAAoBP,EAAY1jB,SAASikB,IAE3DC,EAAiB,SACrB5O,EACApU,EACAijB,GAEA7O,EAAE8O,kBACF9O,EAAEC,iBAEF,IAAM8O,EAAsBnjB,EAAcyI,KAAI,qBAAGpW,MAG/CowB,EADEQ,EACa,GAEAE,IAIbC,EAAsB,SAACpjB,GAAD,OAC1B,qCAC4B,IAAzBA,EAAckI,OACb,sBACExb,MAAO,CACL22B,QAAS,OACTC,WAAY,SACZC,eAAgB,SAChB32B,OAAQ,SALZ,SAOE,eAAC6kB,GAAA,EAAD,CAAWtL,QAASlP,EAAE,2BAGxB,uCACE,gBAACusB,GAAD,WACGxjB,EAAckI,SAAWsa,EAAYta,OACpC,eAACub,GAAD,CACE3vB,KAAK,UACLsB,QAAS,SAAAgf,GAAC,OAAI4O,EAAe5O,EAAGpU,GAAe,IAFjD,SAGG/I,EAAE,8BAGL,eAACwsB,GAAD,CACE3vB,KAAK,UACLsB,QAAS,SAAAgf,GAAC,OAAI4O,EAAe5O,EAAGpU,GAAe,IAFjD,SAGG/I,EAAE,4BAGNurB,EAAYta,OAAS,GACpB,iCACE,eAAC,KAAD,CAASwb,UAAU,SAAS5Z,MAAO7S,EAAE,oBAArC,SACE,eAAC0sB,GAAD,CAAoBvuB,QAAS,kBAAMutB,GAAuB,QAE5D,eAAC,KAAD,CAASe,UAAU,SAAS5Z,MAAO7S,EAAE,wBAArC,SACE,eAAC2sB,GAAD,CAAsBxuB,QAAS,kBAAMytB,GAAsB,WAIjE,eAACrU,GAAA,EAAD,CACEC,QAASiU,EACT5uB,KAAK,OACLgW,MAAO7S,EAAE,+BACT0X,KAAM,WACJlP,EAAsB+iB,GACtBG,GAAuB,GACvBF,EAAe,KAEjB7T,SAAU,WACR+T,GAAuB,GACvBF,EAAe,KAEjB3T,UAAW7X,EAAE,oBAEf,eAACuX,GAAA,EAAD,CACEC,QAASmU,EACT9uB,KAAK,OACLgW,MAAO7S,EAAE,6BACT0X,KAAM,WACJ/O,EAAsB4iB,GACtBK,GAAsB,GACtBJ,EAAe,KAEjB7T,SAAU,WACRiU,GAAsB,GACtBJ,EAAe,KAEjB3T,UAAW7X,EAAE,uBAIhB+I,EAAcyI,KAAI,SAAAwP,GAAiB,IAAD,IAC3B4L,EAAMjb,OACNI,EAAOJ,KAAOG,SAAS8a,EAAI7a,KAAKJ,KAAOqP,EAAa6L,aAEpDC,EAAcxC,GAAe,CACjCG,MAAO1Y,EAAK0Y,QACZC,QAAS3Y,EAAK2Y,UACdH,KAAMxY,EAAKwY,SAGPxjB,EAAU,WAAO,IAAD,cACpB,OAAQia,EAAankB,MACnB,IAAK,wBACL,IAAK,sBACH,cAAOmkB,QAAP,IAAOA,GAAP,UAAOA,EAAchC,YAArB,iBAAO,EAAoB1E,sBAA3B,aAAO,EAAoCvT,OAE7C,IAAK,qBACL,IAAK,yBACH,cAAOia,QAAP,IAAOA,GAAP,UAAOA,EAAchC,YAArB,iBAAO,EAAoB8E,wBAA3B,aAAO,EAAsChd,KAE/C,IAAK,oBACH,OAAmB,OAAZka,QAAY,IAAZA,GAAA,UAAAA,EAAchC,YAAd,mBAAoB4E,YAApB,mBAA0BvV,YAA1B,eAAgCtH,cAAU6E,EAEnD,QACE,QAdU,GAkBhB,EACE6X,aAA0BzC,GADpB2C,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,WAAYG,EAA9B,EAA8BA,aAAcE,EAA5C,EAA4CA,mBAGtCgJ,GAAY,UAAA/L,EAAahC,YAAb,eAAmBoL,WACjCpqB,EAAE,2BAA4B,CAC5BmrB,WAAYD,EAAsBlK,GAClCxU,YAAW,UAAEwU,EAAahC,YAAf,aAAE,EAAmBoL,UAAUje,cAE5C,GAEJ,OACE,gBAAC6gB,GAAD,CACEjC,KAAM/J,EAAa+J,KACnB5sB,QAAS,WACP8rB,GAAoBjJ,EAAc9tB,GAC7B8tB,EAAa+J,MAChBviB,EAAsB,CAACwY,EAAa5lB,MAL1C,UAQG2L,EACC,eAAC,GAAD,UACE,eAACkmB,GAAD,CAAY9G,IAAKpf,MAGnB,eAAC,GAAD,UACE,eAACoQ,GAAA,EAAD,CAASta,KAAK,6BAGlB,gBAACqwB,GAAD,WACE,eAACpa,GAAA,EAAD,CACE5D,QAASlP,EAAE,iBAAD,OAAkBghB,EAAankB,MAAQ,CAC/C6mB,aACAqJ,YACAlJ,eACAF,WACAnX,YAAauX,MAGjB,eAACjR,GAAA,EAAD,CACE5D,QAASlP,EAAE8sB,EAAYtC,WAAY,CAAE2C,OAAQL,EAAYnrB,QACzD9E,KAAK,aAGT,eAACuwB,GAAD,CACEjvB,QAAS,SAAAgf,GACH0O,EAAgB7K,EAAa5lB,IA3K5B,SACrB+hB,EACAkQ,GAEAlQ,EAAE8O,kBACF9O,EAAEC,iBACFoO,EAAeD,EAAY7oB,QAAO,SAAAtH,GAAE,OAAIA,IAAOiyB,MAsK7BC,CAAenQ,EAAG6D,EAAa5lB,IArL/B,SAClB+hB,EACAkQ,GAEAlQ,EAAE8O,kBACF9O,EAAEC,iBACFoO,EAAe,GAAD,mBAAKD,GAAL,CAAkB8B,KAiLdE,CAAYpQ,EAAG6D,EAAa5lB,KAGhCoyB,QAAS3B,EAAgB7K,EAAa5lB,kBAUtD,OACE,gBAACqyB,GAAD,WACE,eAAC,KAAD,CACElF,QACE,gBAACmF,GAAD,WACE,eAAC7Q,GAAA,EAAD,CACEJ,SAAS,gBACTO,UAAU,WACVD,aAAc/c,EAAE,sCAChBid,cAAejd,EAAE,kCACjBsc,UAAWA,EACXY,aAAcA,EACdN,QAAM,IAEO,kBAAdN,EACC6P,EACErB,EAAsBpoB,QAAO,SAAA+O,GAAE,MAAgB,sBAAZA,EAAG5U,SAGxC,uCACGsvB,EACCrB,EAAsBpoB,QAAO,SAAA+O,GAAE,MAAgB,sBAAZA,EAAG5U,SAExC,eAAC8tB,GAAD,CAAY/2B,GAAG,SAAf,SACE,eAACkf,GAAA,EAAD,CACE5D,QAASlP,EAAE,2BACXnD,KAAK,SACLC,MAAM,oBAOlB0rB,QAAS,CAAC,SAhCZ,SAiCE,eAACrR,GAAA,EAAD,CAASta,KAAK,eAEfgtB,EAAiB,EAChB,eAAC8D,GAAD,UACE,eAAC7a,GAAA,EAAD,CAAM5D,QAAO,UAAK2a,GAAkB/sB,MAAM,QAAQD,KAAK,QAAQ8I,OAAQ,QAEvE,SAKJ4mB,GAAuBjvB,KAAO0Z,IAAV,gIAOpB2V,GAAuBrvB,aAAOswB,KAAPtwB,CAAH,gPACJ6jB,KAAMrkB,MAAMK,QACvBgkB,KAAMrkB,MAAME,OAgBjB0vB,GAAqBpvB,aAAOuwB,KAAPvwB,CAAH,2NACF6jB,KAAMrkB,MAAMK,QACvBgkB,KAAMrkB,MAAME,OAejBwvB,GAAsBlvB,aAAOC,KAAPD,CAAH,iPAGd6jB,KAAMrkB,MAAME,MACDmkB,KAAMrkB,MAAMK,QAMrBgkB,KAAMrkB,MAAME,MACPmkB,KAAMrkB,MAAMK,SAKxBiwB,GAAiB9vB,aAAOwwB,KAAPxwB,CAAH,kOAed2vB,GAAa3vB,KAAO+V,IAAV,mFAMV4S,GAAe3oB,KAAO0Z,IAAV,gLAUZkW,GAA6B5vB,KAAO0Z,IAAV,4HAO1BgW,GAAmB1vB,KAAO0Z,IAAV,sPACO,SAAAvjB,GAAK,OAAIA,EAAMuF,MAAM8D,MAAM2X,QAM3C,SAAAhhB,GAAK,OAAKA,EAAMs3B,KAAO,GAAM,KAOpC2C,GAAuBpwB,KAAO0Z,IAAV,sPASV,SAAAvjB,GAAK,OAAIA,EAAMuF,MAAM8D,MAAME,SAGrCywB,GAAkBnwB,KAAO0Z,IAAV,8FAMf2W,GAAoBrwB,KAAO0Z,IAAV,gQAmMjB+W,GAAuBzwB,KAAO0Z,IAAV,oOAWpBgX,GAAU1wB,KAAO0Z,IAAV,8FAMPiX,GAAgB3wB,KAAO0Z,IAAV,4IAQbkX,GAAc5wB,aAAO6Z,KAAP7Z,CAAH,wFAMX6wB,GAAiB7wB,aAAOsrB,KAAO3R,QAAd3Z,CAAH,oJAQd8wB,GAAY9wB,aAAO6Z,KAAP7Z,CAAH,gDAIT+wB,GAAc/wB,KAAO0Z,IAAV,2NAWXsX,GAAShxB,KAAO0Z,IAAV,0DAINuX,GAAkBjxB,KAAO0Z,IAAV,2QACLmK,KAAMrkB,MAAME,OAUtBwxB,GAAYlxB,KAAO0Z,IAAV,gIAEJmK,KAAMrkB,MAAME,OAMjByxB,GAAmBnxB,aAAOknB,KAAPlnB,CAAH,uOACN6jB,KAAMrkB,MAAMK,SAYtBuxB,GAAsBpxB,KAAO0Z,IAAV,+CACTmK,KAAMrkB,MAAMK,SAGtBwxB,GAAgBrxB,KAAO0Z,IAAV,4iBAGFmK,KAAMxjB,SAAS4X,IAiBd4L,KAAMrkB,MAAME,OAOxB4xB,GAAetxB,aAAOqrB,GAAPrrB,CAAH,8OACF6jB,KAAMrkB,MAAME,OAWtB6xB,GAAcvxB,KAAO0Z,IAAV,mGAMX8X,GAAgBxxB,KAAO0Z,IAAV,qGAMbsN,GAAahnB,aAAOknB,KAAPlnB,CAAH,gKACA6jB,KAAMrkB,MAAMK,SAQtB4xB,GAAczxB,aAAOurB,GAAPvrB,CAAH,qTACD,SAAC7J,GAAD,OAAmBA,EAAMuF,MAAM8D,MAAMK,WAgBtCtG,IAhWe,SAAC,GAAkB,IAAbpD,EAAY,oBACxCkxB,EAAc3lB,sBAAWJ,MACzB1L,EAAU0xB,eACR5kB,EAAMC,eAAND,EACAtK,EAAUoU,eAAVpU,MAER,EAAyCsJ,sBAAWC,MAA5CylB,EAAR,EAAQA,KAAMsK,EAAd,EAAcA,YAAa5sB,EAA3B,EAA2BA,UACnBnG,EAAiB+C,sBAAWG,MAA5BlD,aAER,EAA4C+C,sBAAWO,MAAzCsL,EAAd,EAAQxO,KAAkBwrB,EAA1B,EAA0BA,cAC1B,EAAgD7oB,sBAAWK,MAA7C+N,EAAd,EAAQ/Q,KAAoByrB,EAA5B,EAA4BA,gBAE5B30B,sBAAU,WACHiP,IACDsiB,IAASxI,KAAM4I,UAA0C,KAA9B1X,EAAaC,aAC1Cya,EAAgB1lB,GACPsiB,IAASxI,KAAM+L,QAAmC,KAAzBpd,EAAW5D,WAC7C4gB,EAAczlB,MAEf,CAACsiB,EAAMtiB,IAEVjP,sBAAU,WACHuxB,IACHsK,IACA/yB,OAED,CAACyoB,IAEJ,MAA4C1lB,sBAAWiK,MAA/CZ,EAAR,EAAQA,iBAAkBU,EAA1B,EAA0BA,cAE1B5V,sBAAU,WACRwe,KAAO9Y,OAAOC,aAAaC,QAAQ,eAAiB,MACpDsP,MACC,IAEH,IAAMwhB,EAAiB9gB,EAAcrG,QACnC,SAAAse,GAAY,OAA0B,IAAtBA,EAAa+J,QAC7B9Z,OAEF,EAAkCjS,sBAAWO,MAArC0vB,EAAR,EAAQA,SAAUC,EAAlB,EAAkBA,YAClB,EAAgClwB,sBAAWK,MAAnCgb,EAAR,EAAQA,QAAS8U,EAAjB,EAAiBA,WAETC,EAAWH,EAAXG,OACFC,EAAWhV,EAAQ+U,OAWzB,OATAj8B,sBAAU,WACJiP,GACF8sB,IAEE9sB,GAAasiB,IAASxI,KAAM4I,UAC9BqK,MAED,CAAC/sB,IAGF,qCACG1M,EAAQyrB,KAAMhL,YAAYH,GACzB,eAAC2Y,GAAD,UACE,gBAAC,KAAD,WACE,gBAACI,GAAD,CAAavG,QAAS,KAAM8G,aAAW,EAACC,WAAS,EAAjD,UACE,eAACV,GAAD,UACE,eAAC1X,GAAA,EAAD,CAASta,KAAK,WAEhB,gBAAC,GAAD,CAAY2yB,KAAK,WAAjB,UACE,eAAC,GAAD,CAAU3yB,KAAK,YAAYwsB,UAAWx1B,GAAMC,YAC3C4wB,IAASxI,KAAM4I,SACd,eAAC,GAAD,CACEjoB,KAAK,qBACLwsB,UAAWx1B,GAAM47B,4BAGnB,eAAC,GAAD,CACE5yB,KAAK,qBACLwsB,UAAWx1B,GAAM67B,uBAGrB,eAAC,GAAD,CAAU7yB,KAAK,WAAWwsB,UAAWx1B,GAAMoD,WAC3C,eAAC,GAAD,CAAU4F,KAAK,YAAYwsB,UAAWx1B,GAAMiD,YAC3C4tB,IAASxI,KAAM+L,QACd,eAAC,GAAD,CAAUprB,KAAK,OAAOwsB,UAAWx1B,GAAMkD,eAG3C,eAAC+3B,GAAD,CAAe3wB,QAAS,kBAAYwmB,EAAYhmB,QAAQzL,IAAxD,SACE,eAAC,GAAD,CAAU2J,KAAK,gBAGnB,gBAAC,KAAD,WACE,eAAC+xB,GAAD,UACE,gBAACP,GAAD,WACGn7B,EAAQ0nB,SAAS2O,WAAa11B,GAAMC,UACnC,eAACs6B,GAAD,CAAWvxB,KAAK,YAAYsB,QAAS,kBAAMjL,EAAQy8B,YAEnD,yBAEF,gBAAC3B,GAAD,WACE,eAAC,GAAD,IACA,eAAC,GAAD,YAIN,eAACG,GAAD,UAAiB16B,EAAMqL,mBAK7B,gBAAC4vB,GAAD,WACE,gBAACJ,GAAD,WACE,gBAACE,GAAD,WACGt7B,EAAQ0nB,SAAS2O,WAAa11B,GAAMC,WACnC,eAACo6B,GAAD,CAAarxB,KAAK,kBAAkBsB,QAAS,kBAAMjL,EAAQy8B,YAE7D,eAAC1B,GAAD,UACG/6B,EAAQ0nB,SAAS2O,WAAa11B,GAAMC,UACnC,gBAACk6B,GAAD,WACE,eAACD,GAAD,UACE,eAAC5W,GAAA,EAAD,CAASta,KAAK,wBAEf6nB,IAASxI,KAAM4I,SACd,eAAChS,GAAA,EAAD,CACE5D,QAASlP,EAAE,iCAAkC,CAC3C2B,MAAO0tB,GAAY,IAErBvyB,MAAM,QACND,KAAK,SACLa,aAAa,MAGf,eAACoV,GAAA,EAAD,CACE5D,QAASlP,EAAE,iCAAkC,CAC3C2B,MAAOytB,GAAU,IAEnBtyB,MAAM,QACND,KAAK,SACLa,aAAa,SAKnBsC,EAAEqoB,GAAQn1B,EAAQ0nB,SAAS2O,SAAU7E,MAGzC,4BAEF,eAAC6J,GAAD,UAAkB96B,EAAMqL,cAE1B,gBAAC2vB,GAAD,CAAkBe,KAAK,aAAvB,UACE,eAAC,GAAD,CAAgB3yB,KAAK,YAAYwsB,UAAWx1B,GAAMC,YACjD4wB,IAASxI,KAAM4I,SACd,eAAC,GAAD,CACEjoB,KAAK,qBACLwsB,UAAWx1B,GAAM47B,4BAGnB,eAAC,GAAD,CACE5yB,KAAK,qBACLwsB,UAAWx1B,GAAM67B,uBAGrB,eAAC,GAAD,CAAgB7yB,KAAK,WAAWwsB,UAAWx1B,GAAMoD,WACjD,eAAC,GAAD,CAAgB4F,KAAK,YAAYwsB,UAAWx1B,GAAMiD,YAClD,eAAC,GAAD,CACE+F,KAAK,OACLwsB,UAAWx1B,GAAM4D,oBACjBoyB,eAAgBA,IAElB,eAAC,GAAD,CACEhtB,KAAK,UACLwsB,UACE3E,IAASxI,KAAM+L,OAASp0B,GAAMuD,YAAcvD,GAAMwD,kBAGrDqtB,IAASxI,KAAM+L,QACd,eAAC,GAAD,CAAgBprB,KAAK,OAAOwsB,UAAWx1B,GAAMkD,sB,sKCl0BrDoE,EACO,iBAqCEy0B,E,kDARb,aAAe,IAAD,8BACZ,cAAMt0B,IAAkBC,mBAAqB,IAAI,IAG5CI,IAJO,uCAID,WAAOsX,GAAP,SAAAxX,EAAA,+EACX,EAAKC,SAASC,IAA6BoX,YAAU5X,EAAiB8X,KAD3D,2CAJC,wD,UADWtW,K,OCdrBkzB,EAAsD,CAC1DxxB,SAAS,EACTG,aAAc,GACd0Z,WAAY,aACZM,WAAY,aACZG,KAAM,EACNV,OAAQ,GACR5b,KAAM,CACJ2c,MAAO,EACP9G,KAAM,KACN+G,SAAU,KACVC,QAAS,IAEXpX,aAAc,cAGVI,EAAM,IAAI0tB,EAEHE,EAAmBjxB,wBAC9BgxB,GAsDaz3B,IAnD4B,SAAC,GAAkB,IAAhB0G,EAAe,EAAfA,SAC5C,EAA8Ba,mBAC5BkwB,EAA6BxxB,SAD/B,mBAAOA,EAAP,KAAgBuB,EAAhB,KAGA,EAAwCD,mBACtCkwB,EAA6BrxB,cAD/B,mBAAOA,EAAP,KAGA,GAHA,KAG2BmB,mBACzBkwB,EAA6BlX,OAD/B,mBAAOA,EAAP,KAAaH,EAAb,KAGA,EAAwB7Y,mBACtBkwB,EAA6BxzB,MAD/B,mBAAOA,EAAP,KAAa0O,EAAb,KAGA,EAA4BpL,mBAC1BkwB,EAA6B5X,QAD/B,mBAAOA,EAAP,KAAesB,EAAf,KAIMrB,EAAU,uCAAG,WAAOjF,GAAP,eAAAxX,EAAA,6DACjBmE,GAAW,GADM,SAEQsC,EAAIvG,IAAJ,2BACpBsX,GADoB,IAEvBuG,WAAsB,OAAXvG,QAAW,IAAXA,OAAA,EAAAA,EAAauG,YAAa,KAJtB,OAEXC,EAFW,QAMjB,OAAIxG,QAAJ,IAAIA,OAAJ,EAAIA,EAAa0F,OAAMH,EAAWvF,EAAY0F,MAC9C5N,EAAQ0O,GACRF,EAAUtG,GAAe,IACzBrT,GAAW,GATM,2CAAH,sDAiBhB,OACE,cAACkwB,EAAiBpuB,SAAlB,CACEC,MAAO,CACLtD,UACAG,eACA0Z,aACA7b,OACAsc,OACAH,aACAP,SACAnW,aAfe,WACnBiJ,EAAQ8kB,EAA6BxzB,MACrCkd,EAAUsW,EAA6B5X,UAIvC,SAWGnZ,M,uEChEKiZ,E,uFAhBN5c,EACM,kB,SAeA4c,K,sBAAAA,E,sBAAAA,E,+BAAAA,E,kBAAAA,E,sBAAAA,E,0BAAAA,E,6CAAAA,E,iCAAAA,E,oBAAAA,E,qBAAAA,M,SA4FGoB,E,kDARb,aAAe,IAAD,8BACZ,cAAM7d,IAAkBC,mBAAqB,IAAI,IAG5C4c,YAJO,uCAIO,WAAOlF,GAAP,SAAAxX,EAAA,+EACnB,EAAKC,SAASC,IAA0BoX,YAAU5X,EAAgB8X,KAD/C,2CAJP,wD,UADQtW,K,OC3FXozB,EAAqE,CAChF1xB,SAAS,EACT2xB,OAAQ,CAAEhX,MAAO,EAAG9G,KAAM,KAAM+G,SAAU,KAAMC,QAAS,IACzD+W,UAAW,cAGAC,EAA0BrxB,wBACrCkxB,GAGI7tB,EAAM,IAAIiuB,EA8BD33B,IA5BmC,SAAC,GAAkB,IAAhBsG,EAAe,EAAfA,SACnD,EAA4Ba,mBAC1BowB,EAAoCC,QADtC,mBAAOA,EAAP,KAAeI,EAAf,KAIA,EAA8BzwB,mBAC5BowB,EAAoC1xB,SADtC,mBAAOA,EAAP,KAAgBuB,EAAhB,KAIMqwB,EAAS,uCAAG,4BAAAx0B,EAAA,6DAChBmE,GAAW,GADK,SAESsC,EAAIiW,cAFb,OAEVsB,EAFU,OAGhB2W,EAAU3W,GACV7Z,GAAW,GAJK,2CAAH,qDAOf,OACE,cAACswB,EAAwBxuB,SAAzB,CACEC,MAAO,CACLtD,UACA2xB,SACAC,aAJJ,SAMGnxB,M,kkmFClDP,iDAMAuxB,IACGhO,IAAIiO,KACJjO,IAAIkO,KACJC,KAAK,CACJC,IAAK33B,aAAaC,QAAQ,eAAiB,KAC3C23B,YAAa,KACbC,UAAW,CACTC,KACAC,MAEFC,OAAO,EACPC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,KAIJb,MAAf,G,wGCkCMc,EAAQ,CACZC,qBACE,qBAAKC,MAAM,6BAA6BC,QAAQ,cAAhD,SACE,oBAAGC,KAAK,OAAOC,SAAS,UAAxB,UACE,sBACEC,EAAE,+PACFF,KAAK,YAEP,sBACEE,EAAE,uHACFF,KAAK,cAKbG,uBACE,sBACEh8B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,uyBACFF,KAAK,YAEP,sBACEE,EAAE,8YACFF,KAAK,eAIXI,UACE,sBACEj8B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,yBAASO,GAAG,OAAOC,GAAG,UAAUC,GAAG,OAAOC,GAAG,UAAUR,KAAK,YAC5D,sBACEE,EAAE,4cACFO,OAAO,QACPC,cAAc,QACdC,eAAe,aAIrBC,KACE,sBACEz8B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,yBAASO,GAAG,UAAUC,GAAG,OAAOC,GAAG,UAAUC,GAAG,OAAOR,KAAK,YAC5D,sBACEE,EAAE,scACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,aAIrBG,SACE,sBACE38B,MAAM,IACNC,OAAO,KACP27B,QAAQ,WACRC,KAAK,OACLF,MAAM,6BALR,UAME,yBAASO,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUR,KAAK,YAClE,yBAASK,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUR,KAAK,YAClE,yBAASK,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUR,KAAK,eAGtEe,UACE,qBACE58B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,+GACFO,OAAO,UACPI,YAAY,MACZH,cAAc,QACdC,eAAe,YAIrBK,WACE,qBACE78B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,6GACFF,KAAK,cAIXiB,WACE,qBACE98B,MAAM,IACNC,OAAO,KACP27B,QAAQ,WACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,iCACFO,OAAO,UACPI,YAAY,MACZH,cAAc,QACdC,eAAe,YAIrBO,UACE,sBACE/8B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,+VACFF,KAAK,YAEP,sBACEE,EAAE,inBACFF,KAAK,eAIXmB,aACE,sBACEh9B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,odACFF,KAAK,YAEP,sBACEE,EAAE,2TACFF,KAAK,eAIXoB,aACE,sBACEj9B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,+VACFF,KAAK,YAEP,sBACEE,EAAE,inBACFF,KAAK,eAIXqB,OACE,qBACEl9B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,6nDACFF,KAAK,YAIX3N,KACE,qBACEluB,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,q5BACFF,KAAK,YAIXsB,SACE,sBACEn9B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,04BACFF,KAAK,YAEP,sBACEC,SAAS,UACTsB,SAAS,UACTrB,EAAE,gvDACFF,KAAK,eAIXwB,UACE,sBACEr9B,MAAM,MACNC,OAAO,MACP27B,QAAQ,cACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,k3BACFF,KAAK,YAEP,sBACEE,EAAE,8YACFF,KAAK,eAIXyB,YACE,qBACEt9B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,wBACEO,GAAG,UACHC,GAAG,UACHtb,EAAE,UACFgb,KAAK,QACLS,OAAO,UACPI,YAAY,cAIlBl7B,QACE,qBACExB,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,uiDACFF,KAAK,YAIXz9B,UACE,qBACE4B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,q9CACFF,KAAK,YAIXt6B,SACE,qBACEvB,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,qbACFO,OAAO,QACPI,YAAY,MACZH,cAAc,YAIpBn7B,UACE,qBACEpB,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,2xBACFO,OAAO,QACPI,YAAY,MACZH,cAAc,YAIpBlJ,KACE,qBACErzB,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,+ZACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,YAIrBlJ,SACE,qBACEtzB,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,+ZACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,YAIrBe,WACE,qBACEv9B,MAAM,IACNC,OAAO,IACP27B,QAAQ,UACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,isBACFF,KAAK,YAIX2B,WACE,qBACEx9B,MAAM,IACNC,OAAO,IACP27B,QAAQ,UACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,isBACFF,KAAK,YAIXtI,OACE,sBACEvzB,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,2LACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,UAEjB,sBACET,EAAE,gDACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,UAEjB,sBACET,EAAE,iBACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,aAIrBprB,KACE,sBACEpR,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,UAME,sBACEI,EAAE,iyBACFF,KAAK,YAEP,sBACEE,EAAE,gZACFF,KAAK,eAIX4B,gBACE,qBACEz9B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,iPACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,YAIrBkB,sBACE,qBACE19B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,obACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,YAIrBmB,kBACE,qBACE39B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,qvGACFF,KAAK,QACLS,OAAO,QACPI,YAAY,UAIlBkB,mBACE,qBACE59B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BALR,SAME,sBACEI,EAAE,2ZACFO,OAAO,QACPI,YAAY,MACZH,cAAc,QACdC,eAAe,YAIrBqB,WACE,sBACE79B,MAAM,KACNC,OAAO,KACP27B,QAAQ,YACRC,KAAK,OACLF,MAAM,6BAL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","file":"static/js/main.d26ce0c8.chunk.js","sourcesContent":["import { useEffect } from 'react';\n// eslint-disable-next-line\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\n\nconst ScrollToPageTop: React.FC = ({ history }) => {\n useEffect(() => {\n const unListen = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return (): void => {\n unListen();\n };\n }, [history]);\n\n return null;\n};\n\nexport default withRouter(ScrollToPageTop);\n","import React from 'react';\nimport { Redirect, Route, RouteProps } from 'react-router';\nimport paths from '../paths.json';\nimport { getTokens } from '../helpers/functions';\n\nconst ProtectedRoute: React.FC = props => {\n if (getTokens().access) {\n return ;\n }\n return ;\n};\n\nexport default ProtectedRoute;\n","import { Suspense, lazy } from 'react';\nimport { BrowserRouter as Router, Switch } from 'react-router-dom';\nimport ScrollToTopPage from './utils/ScrollToPageTop';\nimport paths from './paths.json';\nimport ProtectedRoute from './utils/ProtectedRoute';\nimport UnProtectedRoute from './utils/UnProtectedRoute';\nimport PanelLayout from './components/PanelLayout';\nimport Spin from './components/Spin';\n\nconst LoginPage = lazy(() => import('./pages/login/LoginPage'));\nconst ActivateSuccess = lazy(() => import('./pages/login/ActivateSuccess'));\nconst ActivateFailed = lazy(() => import('./pages/login/ActivateFailed'));\nconst MyWorkinn = lazy(() => import('./pages/myWorkinn/MyWorkinn'));\nconst MainPage = lazy(() => import('./pages/MainPage'));\nconst Dashboard = lazy(() => import('./pages/dashboard/Dashboard'));\nconst JobOffers = lazy(() => import('./pages/jobOffers/JobOffers'));\nconst Calendar = lazy(() => import('./pages/calendar/Calendar'));\nconst RegisterPage = lazy(() => import('./pages/login/RegisterPage'));\nconst RemindPasswordPage = lazy(() => import('./pages/login/RemindPasswordPage'));\nconst ResetPasswordPage = lazy(() => import('./pages/login/ResetPasswordPage'));\nconst SendActivationLinkPage = lazy(() => import('./pages/login/SendActivationLinkPage'));\nconst RegisterSuccessPage = lazy(() => import('./pages/login/RegisterSuccessPage'));\nconst ProfilePage = lazy(() => import('./pages/profile/ProfilePage'));\nconst UserDetailsForm = lazy(() => import('./pages/userDetailsForm/UserDetailsForm'));\nconst EmployerDetailsForm = lazy(\n () => import('./pages/employerDetailsForm/EmployerDetailsForm')\n);\nconst AddOffer = lazy(() => import('./pages/addOffer/AddOffer'));\nconst UserAccount = lazy(() => import('./pages/userAccount/UserAccount'));\nconst EmployerAccount = lazy(() => import('./pages/employerAccount/EmployerAccount'));\nconst JobOffer = lazy(() => import('./pages/jobOffers/JobOffer'));\nconst EmployerProfile = lazy(() => import('./pages/employerProfile/EmployerProfile'));\nconst WorkerProfile = lazy(() => import('./pages/workerProfile/WorkerProfile'));\nconst MobileNotifications = lazy(() => import('./pages/mobileNotifications'));\nconst Inbox = lazy(() => import('./pages/Inbox'));\n\nconst fallback = (\n
\n \n
\n);\n\nconst PathRouter: React.FC = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n }>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default PathRouter;\n","import './App.css';\nimport { ThemeProvider } from 'styled-components';\nimport { ConfigProvider } from 'antd';\nimport plPL from 'antd/lib/locale/pl_PL';\nimport enUS from 'antd/lib/locale/en_US';\nimport theme from './utils/theme';\nimport PathRouter from './PathRouter';\nimport AuthContextProvider from './context/AuthContext';\nimport UserDetailsFormContextProvider from './context/UserDetailsFormContext';\nimport OffersContextProvider from './context/OffersContext';\nimport EmployerDetailsFormContextProvider from './context/EmployerDetailsFormContext';\nimport ProfileContextProvider from './context/ProfileContext';\nimport WorkerContextProvider from './context/WorkerContext';\nimport EmployerContextProvider from './context/EmployerContext';\nimport UserAccountContextProvider from './context/UserAccountContext';\nimport EmployerAccountContextProvider from './context/EmployerAccountContext';\nimport FavoriteContextProvider from './context/FavoritesContext';\nimport CompaniesContextProvider from './context/CompaniesContext';\nimport WorkersContextProvider from './context/WorkersContext';\nimport EmployerCalendarContextProvider from './context/EmployerCalendarContext';\nimport UserCalendarContextProvider from './context/UserCalendarContext';\nimport NotificationsContextProvider from './context/NotificationsContext';\nimport { AmplifyAuthProvider } from './context/AmplifyAuthContext';\nimport { Compose } from './helpers/functions';\nimport SkillsContextProvider from './context/SkillsContext';\n\nconst components = [\n ProfileContextProvider,\n EmployerContextProvider,\n WorkerContextProvider,\n UserDetailsFormContextProvider,\n EmployerDetailsFormContextProvider,\n OffersContextProvider,\n UserAccountContextProvider,\n EmployerAccountContextProvider,\n FavoriteContextProvider,\n CompaniesContextProvider,\n WorkersContextProvider,\n AmplifyAuthProvider,\n AuthContextProvider,\n EmployerCalendarContextProvider,\n UserCalendarContextProvider,\n NotificationsContextProvider,\n SkillsContextProvider,\n];\n\nconst App: React.FC = () => {\n const locale = localStorage.getItem('i18nextLng') || 'pl';\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","// eslint-disable-next-line\nimport { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler): void => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: MIT-0\n\nimport Amplify from '@aws-amplify/core';\nimport appConfig from '../Config';\n\nconst configureAmplify = () => {\n Amplify.configure({\n Auth: {\n // REQUIRED only for Federated Authentication - Amazon Cognito Identity Pool ID\n identityPoolId: appConfig.cognitoIdentityPoolId,\n // REQUIRED - Amazon Cognito Region\n region: appConfig.cognitoRegion,\n // OPTIONAL - Amazon Cognito Federated Identity Pool Region\n // Required only if it's different from Amazon Cognito Region\n identityPoolRegion: appConfig.cognitoRegion,\n // OPTIONAL - Amazon Cognito User Pool ID\n userPoolId: appConfig.cognitoUserPoolId,\n // OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)\n userPoolWebClientId: appConfig.cognitoAppClientId,\n },\n Storage: {\n // REQUIRED - S3 bucket name for chat attachments\n bucket: appConfig.attachments_s3_bucket_name,\n // REQUIRED - Amazon S3 Region\n region: appConfig.chimeRegion,\n // REQUIRED Amazon Cognito Identity Pool ID\n identityPoolId: appConfig.cognitoIdentityPoolId,\n },\n });\n};\n\nexport default configureAmplify;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport './translations/i18n';\nimport configureAmplify from './services/amplifyServicesConfig';\n\n// required to setup Chime app - inbox\nconfigureAmplify();\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","import { ROLES } from '../helpers/constants';\nimport HttpClient from '../utils/http-client';\nimport { TOffersStats, TWorkersStats, TEarningsStats } from './account/types';\nimport { environmentConfig } from '../Config';\n\nconst PATHS = {\n me: '/v1/me/',\n worker: (id: number | string) => `/v1/workers/${id}/`,\n employer: (id: number | string) => `/v1/employers/${id}/`,\n favorites: '/v1/favorites/',\n deleteFavorite: (id: number) => `/v1/favorites/${id}/`,\n changeEmail: '/v1/users/set_email/',\n changePass: '/v1/users/set_password/',\n deactivate: '/v1/users/deactivate/',\n getAllOffersStats: '/v1/statistic/offers/',\n getAllWorkersStats: '/v1/statistic/workers/',\n getAllEarningsStats: '/v1/statistic/earnings/',\n};\n\ntype Translation = {\n language_tag: string;\n translation: string;\n};\n\ntype TranslationSkills = {\n id: number;\n translations: Translation[];\n};\n\ntype SpecialitieType = {\n id: number;\n speciality: string;\n translations: Translation[];\n};\n\ntype TRole = ROLES;\n\ntype TFavoriteProfile = {\n city: string;\n id: number;\n avatar?: string;\n logo?: string;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n company_name?: string;\n first_name?: string;\n};\n\ntype TMeResponse = {\n profile_id: number;\n client_type: TRole;\n profile_completed: boolean;\n verified?: boolean;\n};\n\ntype TWorkerResponse = {\n avatar: string;\n first_name: string;\n last_name: string;\n sex: 'MALE' | 'FEMALE' | string;\n city: string;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n profile_completed: boolean;\n careers: number[];\n abilities: TranslationSkills[];\n description: string;\n hours_worked: number;\n orders_count: number;\n applications?: Array<{\n speciality: string;\n event_dates: Array>;\n id: number;\n location__city: string;\n }>;\n employment_declaration?: Array<{\n key: string;\n value: true;\n }>;\n dimensions?: {\n weight: number;\n height: number;\n hips: number;\n waist: number;\n chest: number;\n };\n experience: Array<{\n id: number;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n is_workinn: boolean;\n company: string;\n position: string;\n description: string;\n created_at: string;\n }>;\n};\n\ntype TEmployerResponse = {\n city: string;\n logo: string;\n company_name: string;\n website: string;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n description: string;\n job_offer_count: string;\n institution: string;\n worker_count: number;\n verified?: boolean;\n job_offers: Array<{\n id: number;\n event_dates: Array>;\n location: {\n city: string;\n address: string;\n };\n hourly_rate: string;\n is_active: boolean;\n speciality: SpecialitieType;\n title: string;\n opinions: Array<{\n rating_count: number;\n rating: {\n atmosphere: string;\n average: string;\n communication: string;\n id: number;\n organization: string;\n quality: string;\n };\n }> | null;\n }>;\n};\n\nclass ProfileApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public getInfo = async (): Promise =>\n this.instance.get(PATHS.me);\n\n public getWorker = async (id: number | string): Promise =>\n this.instance.get(PATHS.worker(id));\n\n public getEmployer = async (id: number): Promise =>\n this.instance.get(PATHS.employer(id));\n\n public addFavorite = async (\n id: number\n ): Promise<{ id: number; profile: TFavoriteProfile }> =>\n this.instance.post<{ profile_id: number }, { id: number; profile: TFavoriteProfile }>(\n PATHS.favorites,\n {\n profile_id: id,\n }\n );\n\n public getFavorites = async (): Promise<\n Array<{ id: number; profile: TFavoriteProfile }>\n > =>\n this.instance.get>(\n PATHS.favorites\n );\n\n public removeFavorite = async (id: number) =>\n this.instance.delete(PATHS.deleteFavorite(id));\n\n public changeEmail = async (data: {\n email: string;\n\n // confirmEmail: string\n }) => this.instance.post(PATHS.changeEmail, data);\n\n public changePass = async (data: {\n current_password: string;\n new_password: string;\n confirm_password: string;\n }) => this.instance.post(PATHS.changePass, data);\n\n public deactivate = async (data: { password: string; repeat_password: string }) =>\n this.instance.post(PATHS.deactivate, data);\n\n public getAllOffersStats = async (): Promise =>\n this.instance.get(PATHS.getAllOffersStats);\n\n public getAllWorkersStats = async (): Promise =>\n this.instance.get(PATHS.getAllWorkersStats);\n\n public getAllEarningsStats = async (): Promise =>\n this.instance.get(PATHS.getAllEarningsStats);\n}\n\nexport default ProfileApi;\n","import styled, { css } from 'styled-components';\nimport { Button } from 'antd';\nimport { ReactElement } from 'react';\n\ntype ButtonType = 'primary' | 'ghost' | 'dashed' | 'link' | 'text' | 'default';\n\ntype ButtonProps = {\n label: ReactElement | string | string[];\n width?: string;\n fontWeight?: number;\n onClick?: () => void;\n type?: ButtonType;\n marginBottom?: string;\n marginTop?: string;\n className?: string;\n loading?: boolean;\n disabled?: boolean;\n inline?: boolean;\n underline?: boolean;\n};\n\nconst PrimaryButton: React.FC = ({\n width = 'auto',\n label,\n fontWeight = 700,\n onClick,\n type,\n marginBottom,\n marginTop,\n className,\n loading = false,\n disabled,\n inline = false,\n underline = false,\n}) => (\n \n {label}\n \n);\n\nconst typeToColor = (type: ButtonType, color: any) => {\n switch (type) {\n case 'ghost':\n return color.secondary;\n default:\n return color.white;\n }\n};\n\nconst typeToBackground = (type: ButtonType, color: any) => {\n switch (type) {\n case 'ghost':\n return color.none;\n default:\n return color.primary;\n }\n};\n\nconst typeToBorderColor = (type: ButtonType, color: any) => {\n switch (type) {\n case 'ghost':\n return color.none;\n default:\n return color.primary;\n }\n};\n\nconst StyledButton = styled(Button)(\n ({\n width,\n fontWeight,\n marginTop,\n marginBottom,\n theme: { color, fontSize },\n htmlType,\n inline,\n underline,\n }) => css`\n height: 2.5rem;\n width: ${width};\n color: ${typeToColor(htmlType, color)};\n border-radius: 1.25rem;\n background: ${typeToBackground(htmlType, color)};\n font-weight: ${fontWeight};\n font-size: ${fontSize.medium};\n border-color: ${typeToBorderColor(htmlType, color)};\n margin-top: ${marginTop};\n margin-bottom: ${marginBottom};\n box-shadow: none;\n display: ${inline ? 'inline' : 'block'};\n padding: ${inline ? '0.2rem' : 'auto'};\n :hover {\n color: ${typeToColor(htmlType, color)};\n background: ${typeToBackground(htmlType, color)};\n border-color: ${typeToBorderColor(htmlType, color)};\n opacity: 0.8;\n }\n :focus {\n color: ${typeToColor(htmlType, color)};\n background: ${typeToBackground(htmlType, color)};\n border-color: ${typeToBorderColor(htmlType, color)};\n }\n span {\n text-decoration: ${underline ? 'underline' : 'none'};\n }\n `\n);\n\nexport default PrimaryButton;\n","import { createContext, useState, useContext } from 'react';\nimport { FormikHelpers } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { RouteComponentProps } from 'react-router-dom';\nimport AuthApi from '../api/Auth';\nimport paths from '../paths.json';\nimport customNotification from '../components/notification';\nimport { removeTokens, saveTokens, getErrorFromResponse } from '../helpers/functions';\nimport { ProfileContext } from './ProfileContext';\nimport { FavoriteContext } from './FavoritesContext';\nimport { EmployerContext } from './EmployerContext';\nimport { WorkerContext } from './WorkerContext';\nimport { useAmplifyAuthContext } from './AmplifyAuthContext';\n\nexport type AuthContextState = {\n loading: boolean;\n errorMessage: string;\n signIn: (\n email: string,\n password: string,\n remindMe: boolean,\n history: RouteComponentProps['history'],\n formikHelpers: FormikHelpers\n ) => void;\n signInWithSocial: (\n token: string,\n refresh: string,\n history: RouteComponentProps['history']\n ) => void;\n signOut: (history: RouteComponentProps['history']) => void;\n};\n\nconst contextDefaultValues: AuthContextState = {\n loading: false,\n errorMessage: '',\n signIn: () => {},\n signInWithSocial: () => {},\n signOut: () => {},\n};\n\nexport const AuthContext = createContext(contextDefaultValues);\n\nconst AuthContextProvider: React.FC = ({ children }) => {\n const profileContext = useContext(ProfileContext);\n const favoriteContext = useContext(FavoriteContext);\n const employerContext = useContext(EmployerContext);\n const workerContext = useContext(WorkerContext);\n const { userSignIn, userSignOut } = useAmplifyAuthContext();\n const [loading, setLoading] = useState(contextDefaultValues.loading);\n const [errorMessage, setErrorMessage] = useState(\n contextDefaultValues.errorMessage\n );\n const authApi = new AuthApi();\n const { t } = useTranslation();\n\n const signOut = (history: RouteComponentProps['history']): void => {\n removeTokens();\n userSignOut();\n localStorage.removeItem('workinn-user-email');\n history.push(paths.loginPage);\n customNotification({\n type: 'success',\n description: t('loginPage.logoutSuccess'),\n });\n profileContext.clearContext();\n favoriteContext.clearContext();\n employerContext.clearContext();\n workerContext.clearContext();\n };\n const signIn = async (\n email: string,\n password: string,\n remindMe: boolean,\n history: RouteComponentProps['history'],\n formikHelpers: FormikHelpers\n ): Promise => {\n setLoading(true);\n try {\n const authData = await authApi.login({\n email,\n password,\n });\n authApi.saveTokens(authData.IdToken, authData.RefreshToken, authData.username);\n userSignIn(email, password);\n history.push(paths.dashboard);\n customNotification({\n type: 'success',\n description: t('loginPage.loginSuccess'),\n });\n localStorage.setItem('badLoginCount', '0');\n localStorage.setItem('workinn-user-email', email);\n } catch (err: any) {\n setErrorMessage(err.response?.data?.detail);\n formikHelpers.setTouched({ email: false });\n formikHelpers.setTouched({ password: false });\n localStorage.setItem(\n 'badLoginCount',\n (Number(localStorage.getItem('badLoginCount')) + 1).toString()\n );\n const error = getErrorFromResponse(err?.response?.data?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `loginPage.errors.${error.field !== null ? error.field + '_' : ''}${error.code}`\n ),\n });\n } finally {\n setLoading(false);\n }\n };\n\n const signInWithSocial = (\n access: string,\n refresh: string,\n history: RouteComponentProps['history']\n ): void => {\n saveTokens(access, refresh, 'asnv-1511-asca-xsdf');\n history.push(paths.dashboard);\n customNotification({\n type: 'success',\n description: t('loginPage.loginSuccess'),\n });\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default AuthContextProvider;\n","import { createContext, useState, useEffect, useContext } from 'react';\nimport ProfileApi from '../api/Profile';\nimport { getTokens } from '../helpers/functions';\nimport { ProfileContext } from './ProfileContext';\n\nexport type TProfile = {\n city: string;\n id: number;\n avatar?: string;\n logo?: string;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n company_name?: string;\n institution?: string;\n first_name?: string;\n};\n\nexport type TFavoriteContextState = {\n loading: boolean;\n favorites: Array<{ id: number; profile: TProfile }>;\n addFavorite: (id: number, cb: () => void) => void;\n removeFavorite: (id: number, cb: () => void) => void;\n getFavorites: () => void;\n clearContext: () => void;\n};\n\nconst FavoriteContextDefaultValues = {\n loading: false,\n favorites: [],\n addFavorite: () => {},\n removeFavorite: () => {},\n getFavorites: () => {},\n clearContext: () => {},\n};\n\nexport const FavoriteContext = createContext(\n FavoriteContextDefaultValues\n);\n\nconst api = new ProfileApi();\n\nconst FavoriteContextProvider: React.FC = ({ children }) => {\n const [loading, setLoading] = useState(\n FavoriteContextDefaultValues.loading\n );\n\n const [favorites, setFavorites] = useState(\n FavoriteContextDefaultValues.favorites\n );\n\n const { profileId } = useContext(ProfileContext);\n\n const addFavorite = async (id: number, successCallback: () => void) => {\n setLoading(true);\n const favorite = await api.addFavorite(id);\n setFavorites([...favorites, favorite]);\n setLoading(false);\n successCallback();\n };\n\n const removeFavorite = async (id: number, successCallback: () => void) => {\n const idToDelete = favorites.find(fav => fav.profile?.id === id)?.id;\n if (idToDelete) {\n setLoading(true);\n await api.removeFavorite(idToDelete);\n setFavorites(favorites.filter(fav => fav.id !== idToDelete));\n setLoading(false);\n successCallback();\n }\n };\n\n const getFavorites = async () => {\n if (!getTokens().access) return;\n setLoading(true);\n try {\n const favoritesData = await api.getFavorites();\n setFavorites(favoritesData);\n setLoading(false);\n } catch (err) {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (profileId) {\n getFavorites();\n }\n }, []);\n\n const clearContext = () => {\n setLoading(false);\n setFavorites([]);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default FavoriteContextProvider;\n","import { createContext, useEffect, useState } from 'react';\nimport UserDetailsFormApi from '../api/detailsForm/UserDetailsForm';\nimport { MODEL_ID } from '../helpers/constants';\nimport { Experience } from '../helpers/professionsAndSkills';\n\nexport enum PhonePrefix {\n POLAND_PHONE_PREFIX = '+48',\n UKRAINIAN_PHONE_PREFIX = '+380',\n}\n\ninterface PersonalData {\n name: string;\n surname: string;\n pesel: string;\n nip: string;\n street: string;\n building_number?: string;\n postalCode: string;\n city: string;\n phone: string;\n phone_country_code?: PhonePrefix;\n phonePrefix: PhonePrefix;\n birthDate: string;\n sex: string | boolean;\n country: string;\n region: string;\n voivodeship?: string;\n}\n\ninterface BillingData {\n usName: string;\n usAddressPartOne: string;\n usAddressPartTwo: string;\n city: string;\n postalCode: string;\n iban: string;\n country: string;\n}\n\ninterface QuestionnaireData {\n employedContractInAnotherEstablishment: string | boolean;\n employedContractWageHigherThanTheMinimum: string | boolean;\n contractOfMandateInAnotherEstablishment: string | boolean;\n contractOfMandateWageHigherThanMinimum: string | boolean;\n runningABusiness: string | boolean;\n disability: string | boolean;\n student: string | boolean;\n retired: string | boolean;\n pensioner: string | boolean;\n}\n\ninterface ZusData {\n voluntarySocialSecurity: string | boolean;\n dataChanges: string | boolean;\n}\n\ninterface ExperienceData {\n professions: number[];\n skills: number[];\n experience: Array;\n weight: string;\n height: string;\n hips: string;\n waist: string;\n chest: string;\n}\n\ninterface SingleDeclaration {\n key: string;\n value: boolean | string;\n}\n\ninterface DeclarationsFinalData {\n employment_declaration: SingleDeclaration[];\n}\n\nexport type UserDetailsFormContextState = {\n personalData: PersonalData;\n billingData: BillingData;\n questionnaireData: QuestionnaireData;\n zusData: ZusData;\n experienceData: ExperienceData;\n profilePhotoUrl: string;\n setPersonalData: (personalData: PersonalData) => void;\n setBillingData: (billingData: BillingData) => void;\n setQuestionnaireData: (questionnaireData: QuestionnaireData) => void;\n setZusData: (zusData: ZusData) => void;\n setExperienceData: (experienceData: ExperienceData) => void;\n setProfilePhotoUrl: (profilePhotoUrl: string) => void;\n clearContext: () => void;\n saveAvatar: (photo: string) => any;\n checkPersonalStep: (data: PersonalData) => any;\n checkBillingDataStep: (data: BillingData) => any;\n checkCareersDataStep: (data: ExperienceData) => any;\n checkDeclarationsDataStep: (data: DeclarationsFinalData) => any;\n checkZusDataStep: (data: string | boolean) => any;\n};\n\nconst contextDefaultValues: UserDetailsFormContextState = {\n personalData: {\n name: '',\n surname: '',\n pesel: '',\n nip: '',\n street: '',\n building_number: '',\n postalCode: '',\n city: '',\n phone: '',\n phone_country_code: PhonePrefix.POLAND_PHONE_PREFIX,\n phonePrefix: PhonePrefix.POLAND_PHONE_PREFIX,\n birthDate: '',\n sex: '',\n country: '',\n region: '',\n },\n billingData: {\n usName: '',\n usAddressPartOne: '',\n usAddressPartTwo: '',\n city: '',\n postalCode: '',\n iban: '',\n country: '',\n },\n questionnaireData: {\n employedContractInAnotherEstablishment: '',\n employedContractWageHigherThanTheMinimum: '',\n contractOfMandateInAnotherEstablishment: '',\n contractOfMandateWageHigherThanMinimum: '',\n runningABusiness: '',\n disability: '',\n student: '',\n retired: '',\n pensioner: '',\n },\n zusData: {\n voluntarySocialSecurity: '',\n dataChanges: '',\n },\n experienceData: {\n professions: [],\n skills: [],\n experience: [],\n weight: '',\n height: '',\n hips: '',\n waist: '',\n chest: '',\n },\n profilePhotoUrl: '',\n setPersonalData: () => {},\n setBillingData: () => {},\n setQuestionnaireData: () => {},\n setZusData: () => {},\n setExperienceData: () => {},\n setProfilePhotoUrl: () => {},\n clearContext: () => {},\n saveAvatar: () => {},\n checkPersonalStep: () => {},\n checkBillingDataStep: () => {},\n checkCareersDataStep: () => {},\n checkDeclarationsDataStep: () => {},\n checkZusDataStep: () => {},\n};\n\nconst booleanFromOption = (value: string | boolean) =>\n typeof value === 'boolean' ? value : false;\n\nexport const UserDetailsFormContext =\n createContext(contextDefaultValues);\n\nconst UserDetailsFormContextProvider: React.FC = ({ children }) => {\n const [personalData, setPersonalData] = useState(\n contextDefaultValues.personalData\n );\n const [billingData, setBillingData] = useState(\n contextDefaultValues.billingData\n );\n const [questionnaireData, setQuestionnaireData] = useState(\n contextDefaultValues.questionnaireData\n );\n const [zusData, setZusData] = useState(contextDefaultValues.zusData);\n const [experienceData, setExperienceData] = useState(\n contextDefaultValues.experienceData\n );\n const [profilePhotoUrl, setProfilePhotoUrl] = useState(\n contextDefaultValues.profilePhotoUrl\n );\n\n const clearContext = () => {\n setPersonalData(contextDefaultValues.personalData);\n setBillingData(contextDefaultValues.billingData);\n setQuestionnaireData(contextDefaultValues.questionnaireData);\n setZusData(contextDefaultValues.zusData);\n setExperienceData(contextDefaultValues.experienceData);\n setProfilePhotoUrl(contextDefaultValues.profilePhotoUrl);\n };\n\n const userDetailsFormApi = new UserDetailsFormApi();\n\n const saveAvatar = (logo: string) =>\n userDetailsFormApi.saveAvatarData({ avatar: logo });\n\n const checkPersonalStep = (data: PersonalData) =>\n userDetailsFormApi.checkPersonalData({\n first_name: data.name,\n last_name: data.surname,\n date_of_birth: data.birthDate,\n PESEL: data.pesel,\n sex: booleanFromOption(data.sex) ? 'FEMALE' : 'MALE',\n NIP: data.nip,\n street: data.street,\n zip_code: data.postalCode,\n city: data.city,\n country: data.country,\n voivodeship: data.region,\n phone: data.phonePrefix + data.phone,\n building_number: data.building_number,\n });\n\n const checkDeclarationsDataStep = (data: DeclarationsFinalData) => {\n const employmentDeclarations = [\n {\n key: 'EMPLOYED_CONTRACT_IN_ANOTHER_ESTABLISHMENT',\n value: data.employment_declaration.some(\n declaration =>\n declaration.key === 'EMPLOYED_CONTRACT_IN_ANOTHER_ESTABLISHMENT' &&\n declaration.value\n ),\n },\n {\n key: 'EMPLOYED_CONTRACT_WAGE_HIGHER_THAN_THE_MINIMUM',\n value: data.employment_declaration.some(\n declaration =>\n declaration.key === 'EMPLOYED_CONTRACT_WAGE_HIGHER_THAN_THE_MINIMUM' &&\n declaration.value\n ),\n },\n {\n key: 'CONTRACT_OF_MANDATE_IN_ANOTHER_ESTABLISHMENT',\n value: data.employment_declaration.some(\n declaration =>\n declaration.key === 'CONTRACT_OF_MANDATE_IN_ANOTHER_ESTABLISHMENT' &&\n declaration.value\n ),\n },\n {\n key: 'CONTRACT_OF_MANDATE_WAGE_HIGHER_THAN_MINIMUM',\n value: data.employment_declaration.some(\n declaration =>\n declaration.key === 'CONTRACT_OF_MANDATE_WAGE_HIGHER_THAN_MINIMUM' &&\n declaration.value\n ),\n },\n {\n key: 'RUNNING_A_BUSINESS',\n value: data.employment_declaration.some(\n declaration => declaration.key === 'RUNNING_A_BUSINESS' && declaration.value\n ),\n },\n {\n key: 'DISABILITY',\n value: data.employment_declaration.some(\n declaration => declaration.key === 'DISABILITY' && declaration.value\n ),\n },\n {\n key: 'STUDENT',\n value: data.employment_declaration.some(\n declaration => declaration.key === 'STUDENT' && declaration.value\n ),\n },\n {\n key: 'RETIRED',\n value: data.employment_declaration.some(\n declaration => declaration.key === 'RETIRED' && declaration.value\n ),\n },\n {\n key: 'PENSIONER',\n value: data.employment_declaration.some(\n declaration => declaration.key === 'PENSIONER' && declaration.value\n ),\n },\n ];\n\n return userDetailsFormApi.checkDeclarationsData({\n employment_declaration: employmentDeclarations,\n });\n };\n\n const checkZusDataStep = (data: string | boolean) =>\n userDetailsFormApi.checkZusData(data);\n\n const checkBillingDataStep = (data: BillingData) =>\n userDetailsFormApi.checkBillingData({\n name: data.usName,\n address_line_1: data.usAddressPartOne,\n address_line_2: data.usAddressPartTwo,\n city: data.city,\n country: data.country,\n zip_code: data.postalCode,\n bank_account_number: data.iban,\n });\n\n const checkCareersDataStep = (data: ExperienceData) =>\n userDetailsFormApi.checkCareersData({\n careers: data.professions,\n abilities: data.skills,\n experience: data.experience,\n dimensions: data.professions.includes(MODEL_ID)\n ? {\n weight: Number(data.weight),\n height: Number(data.height),\n hips: Number(data.hips),\n waist: Number(data.waist),\n chest: Number(data.chest),\n }\n : null,\n });\n\n return (\n \n {children}\n \n );\n};\n\nexport default UserDetailsFormContextProvider;\n","import HttpClient from '../../utils/http-client';\nimport {\n TSaveUserDetails,\n TUserDetailsCheckPersonalData,\n TUserDetailsCheckBillingData,\n TUserDetailsCheckCareersData,\n TAvatar,\n} from './types';\nimport { environmentConfig } from '../../Config';\n\ninterface SingleDeclaration {\n key: string;\n value: boolean | string;\n}\n\ninterface DeclarationsFinalData {\n employment_declaration: SingleDeclaration[];\n}\nconst PATHS = {\n saveAvatar: '/v1/workers/avatar/',\n checkPersonalData: 'v1/workers/personal_data/',\n checkBillingData: 'v1/workers/billing_data/',\n checkCareersData: 'v1/workers/careers/',\n checkDeclarationsData: '/v1/workers/declarations/',\n checkZusData: '/v1/workers/social/',\n};\n\nclass UserDetailsFormApi extends HttpClient {\n public constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public saveAvatarData = async (credentials: TAvatar): Promise =>\n this.instance.post(PATHS.saveAvatar, credentials);\n\n public checkPersonalData = async (\n credentials: TUserDetailsCheckPersonalData\n ): Promise =>\n this.instance.post(\n PATHS.checkPersonalData,\n credentials\n );\n\n public checkBillingData = async (\n credentials: TUserDetailsCheckBillingData\n ): Promise =>\n this.instance.post(PATHS.checkBillingData, credentials);\n\n public checkCareersData = async (\n credentials: TUserDetailsCheckCareersData\n ): Promise =>\n this.instance.post(PATHS.checkCareersData, credentials);\n\n public checkDeclarationsData = async (\n credentials: DeclarationsFinalData\n ): Promise =>\n this.instance.post(PATHS.checkDeclarationsData, credentials);\n\n public checkZusData = async (credentials: string | boolean): Promise =>\n this.instance.post(PATHS.checkZusData, credentials);\n}\n\nexport default UserDetailsFormApi;\n","export default __webpack_public_path__ + \"static/media/logoPlaceholder.cf637941.svg\";","import moment from 'moment';\nimport { dateTimeFormat } from '../helpers/constants';\nimport { createUrl } from '../helpers/functions';\nimport HttpClient from '../utils/http-client';\nimport { environmentConfig } from '../Config';\nimport { SpecialitieType } from '../context/WorkerContext';\n\nconst PATHS = {\n notifications: '/v1/notifications/',\n notificationsSettings: '/v1/notifications/settings/',\n notificationSeen: '/v1/notifications/seen/',\n notificationDelete: '/v1/notifications/delete/',\n};\n\nexport type TNotification = {\n id: string;\n description: string;\n title: string;\n type: TNotificationKey;\n timestamp: string;\n seen: boolean;\n recipient_id: string;\n meta: {\n worker_profile?: {\n avatar: string;\n first_name: string;\n id: number;\n last_name: string;\n };\n job_offer?: {\n company: string;\n id: number;\n speciality: SpecialitieType;\n institution?: string;\n };\n chat?: {\n chat_arn?: string;\n user?: {\n first_name: string;\n id: number;\n last_name: string;\n avatar: string;\n company_name: string;\n };\n };\n employer_profile?: {\n logo: string;\n company_name: string;\n };\n };\n};\n\nexport type TNotificationKey =\n | 'WORKER_VERIFICATION_REMINDER'\n | 'MATCHING_WORKERS'\n | 'SETTLEMENT_REMINDER'\n | 'IMPROVE_SETTLEMENT_REMINDER'\n | 'JOB_OFFER_APPLICATION'\n | 'JOB_OFFER_RESIGNATION'\n | 'MESSAGE_FROM_USER'\n | 'OPINION_FROM_WORKER'\n | 'RESIGNATION_REQUEST'\n | 'MATCHING_JOB_OFFER'\n | 'INVITATION_TO_WORK'\n | 'SETTLEMENT_TO_CONFIRMED'\n | 'CORRECTED_SETTLEMENT'\n | 'SEVEN_DAYS_BEFORE'\n | 'ONE_DAYS_BEFORE'\n | 'ACCEPTANCE_APPLICATION'\n | 'CANCELLATION_APPLICATION'\n | 'OPINION_FROM_EMPLOYER'\n | 'RESIGNATION_REQUEST_ACCEPT'\n | 'RESIGNATION_REQUEST_REJECT';\n\nexport type TNotificationsResponse = Array;\n\nexport type TNotificationsSettings = Array<{\n key: string;\n values: {\n email: boolean;\n system: boolean;\n };\n}>;\n\nclass NotificationsApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public getNotifications = async () =>\n this.instance.get(PATHS.notifications);\n\n public getNotificationsSettings = async () =>\n this.instance.get(PATHS.notificationsSettings);\n\n public saveNotificationsSettings = async (\n credentials: TNotificationsSettings\n ): Promise =>\n this.instance.post(\n PATHS.notificationsSettings,\n credentials\n );\n\n public setNotificationAsSeen = async (\n notificationIds: string[]\n ): Promise =>\n this.instance.post(\n PATHS.notificationSeen,\n { notification_ids: notificationIds }\n );\n\n public setNotificationDelete = async (\n notificationIds: string[]\n ): Promise =>\n this.instance.post(\n PATHS.notificationDelete,\n { notification_ids: notificationIds }\n );\n}\n\nexport default NotificationsApi;\n","import { createContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport NotificationsApi, {\n TNotificationsResponse,\n TNotificationsSettings,\n} from '../api/NotificationsApi';\nimport customNotification from '../components/notification';\n\nexport type TNotificationsContextState = {\n loading: boolean;\n notifications: TNotificationsResponse;\n settingsLoading: boolean;\n saveSettingsLoading: boolean;\n notificationsSettings: TNotificationsSettings;\n getNotifications: () => void;\n getNotificationsSettings: () => void;\n saveNotificationsSettings: (notifications: TNotificationsSettings) => void;\n setNotificationAsSeen: (notificationIds: string[]) => void;\n setNotificationDelete: (notificationIds: string[]) => void;\n};\n\nexport const NotificationsContextDefaultState: TNotificationsContextState = {\n loading: false,\n settingsLoading: false,\n saveSettingsLoading: false,\n notifications: [],\n notificationsSettings: [],\n getNotifications: () => {},\n getNotificationsSettings: () => {},\n saveNotificationsSettings: () => {},\n setNotificationAsSeen: () => {},\n setNotificationDelete: () => {},\n};\n\nexport const NotificationsContext = createContext(\n NotificationsContextDefaultState\n);\n\nconst api = new NotificationsApi();\n\nconst NotificationsContextProvider: React.FC = ({ children }) => {\n const { t } = useTranslation();\n const [notifications, setNotifications] = useState<\n TNotificationsContextState['notifications']\n >(NotificationsContextDefaultState.notifications);\n\n const [loading, setLoading] = useState(\n NotificationsContextDefaultState.loading\n );\n\n const [settingsLoading, setSettingsLoading] = useState<\n TNotificationsContextState['settingsLoading']\n >(NotificationsContextDefaultState.settingsLoading);\n\n const [saveSettingsLoading, setSaveSettingsLoading] = useState<\n TNotificationsContextState['saveSettingsLoading']\n >(NotificationsContextDefaultState.saveSettingsLoading);\n\n const [notificationsSettings, setNotificationsSettings] = useState<\n TNotificationsContextState['notificationsSettings']\n >(NotificationsContextDefaultState.notificationsSettings);\n\n const getNotifications = async () => {\n setLoading(true);\n const notificationsData = await api.getNotifications();\n setNotifications(notificationsData);\n setLoading(false);\n };\n\n const getNotificationsSettings = async () => {\n setSettingsLoading(true);\n try {\n const notificationsSettingsResponse = await api.getNotificationsSettings();\n setNotificationsSettings(notificationsSettingsResponse);\n } catch (err: any) {\n if (err?.response) {\n customNotification({ type: 'error', description: t('global.loadDataError') });\n }\n } finally {\n setSettingsLoading(false);\n }\n };\n\n const saveNotificationsSettings = async (arg: any) => {\n setSaveSettingsLoading(true);\n try {\n const notificationsResponse = await api.saveNotificationsSettings(arg);\n customNotification({ type: 'success', description: t('global.saveSuccess') });\n } catch (err: any) {\n if (err?.response) {\n customNotification({\n type: 'error',\n description: t('global.saveError'),\n });\n }\n } finally {\n setSaveSettingsLoading(false);\n }\n };\n\n const setNotificationAsSeen = async (ids: string[]) => {\n setSaveSettingsLoading(true);\n\n api.setNotificationAsSeen(ids).then(res => {\n getNotifications();\n });\n };\n\n const setNotificationDelete = async (ids: string[]) => {\n setSaveSettingsLoading(true);\n\n api.setNotificationDelete(ids).then(res => {\n getNotifications();\n });\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default NotificationsContextProvider;\n","import { useState, useEffect } from 'react';\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n}\n\nconst useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n const handleResize = () => {\n setWindowDimensions(getWindowDimensions());\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n};\n\nexport default useWindowDimensions;\n","import { createContext, useState, useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport UserAccountApi from '../api/account/UserAccount';\nimport customNotification from '../components/notification';\nimport { Experience } from '../helpers/professionsAndSkills';\nimport { getErrorFromResponse } from '../helpers/functions';\nimport { WorkerContext, TData } from './WorkerContext';\nimport { PhonePrefix } from './UserDetailsFormContext';\nimport { MODEL_ID } from '../helpers/constants';\n\nexport interface PersonalData {\n description: string;\n avatar: string;\n name: string;\n surname: string;\n pesel: string;\n nip: string;\n street: string;\n postalCode: string;\n city: string;\n phone: string;\n building_number: string;\n phone_country_code?: PhonePrefix;\n birthDate: string;\n sex: string | boolean;\n country: string;\n voivodeship: string;\n careers: number[];\n abilities: number[];\n weight: string;\n height: string;\n hips: string;\n waist: string;\n chest: string;\n}\n\ninterface QuestionnaireData {\n employedContractInAnotherEstablishment: string | boolean;\n employedContractWageHigherThanTheMinimum: string | boolean;\n contractOfMandateInAnotherEstablishment: string | boolean;\n contractOfMandateWageHigherThanMinimum: string | boolean;\n runningABusiness: string | boolean;\n disability: string | boolean;\n student: string | boolean;\n retired: string | boolean;\n pensioner: string | boolean;\n}\n\ninterface BillingData {\n usName: string;\n usAddressPartOne: string;\n usAddressPartTwo: string;\n city: string;\n postalCode: string;\n iban: string;\n country: string;\n}\n\nexport type UserAccountContextState = {\n personalData: PersonalData;\n experience: Array;\n questionnaireData: QuestionnaireData;\n voluntarySocialSecurity: string | boolean;\n billingData: BillingData;\n loading: boolean;\n loadData: (id: string) => void;\n setPersonalData: (personalData: PersonalData) => void;\n setExperience: (experience: Array) => void;\n clearContext: () => void;\n savePersonalData: (id: string | number, personalData: PersonalData) => void;\n saveExperience: (id: string | number, experience: Array) => void;\n saveQuestionaire: (id: string | number, questionaireData: QuestionnaireData) => void;\n saveZusData: (id: string | number, voluntarySocialSecurity: string | boolean) => void;\n saveBillingData: (id: string | number, billingData: BillingData) => void;\n};\n\nconst contextDefaultValues: UserAccountContextState = {\n personalData: {\n description: '',\n avatar: '',\n name: '',\n surname: '',\n pesel: '',\n nip: '',\n street: '',\n postalCode: '',\n city: '',\n phone: '',\n birthDate: '',\n sex: '',\n country: '',\n voivodeship: '',\n phone_country_code: PhonePrefix.POLAND_PHONE_PREFIX,\n building_number: '',\n careers: [],\n abilities: [],\n weight: '',\n height: '',\n hips: '',\n waist: '',\n chest: '',\n },\n billingData: {\n usName: '',\n usAddressPartOne: '',\n usAddressPartTwo: '',\n city: '',\n postalCode: '',\n iban: '',\n country: '',\n },\n voluntarySocialSecurity: '',\n questionnaireData: {\n employedContractInAnotherEstablishment: '',\n employedContractWageHigherThanTheMinimum: '',\n contractOfMandateInAnotherEstablishment: '',\n contractOfMandateWageHigherThanMinimum: '',\n runningABusiness: '',\n disability: '',\n student: '',\n retired: '',\n pensioner: '',\n },\n experience: [],\n loading: false,\n loadData: () => {},\n setPersonalData: () => {},\n setExperience: () => {},\n savePersonalData: () => {},\n saveExperience: () => {},\n saveQuestionaire: () => {},\n saveZusData: () => {},\n saveBillingData: () => {},\n clearContext: () => {},\n};\n\nconst booleanFromOption = (value: string | boolean) =>\n typeof value === 'boolean' ? value : false;\n\nexport const UserAccountContext =\n createContext(contextDefaultValues);\n\nconst UserAccountContextProvider: React.FC = ({ children }) => {\n const { data: workerData, setData: setWorkerData } = useContext(WorkerContext);\n const [personalData, setPersonalData] = useState(\n contextDefaultValues.personalData\n );\n const [experience, setExperience] = useState>(\n contextDefaultValues.experience\n );\n const [questionnaireData, setQuestionnaireData] = useState(\n contextDefaultValues.questionnaireData\n );\n const [loading, setLoading] = useState(contextDefaultValues.loading);\n const [avatarHelper, setAvatarHelper] = useState('');\n const [billingData, setBillingData] = useState(\n contextDefaultValues.billingData\n );\n const [voluntarySocialSecurity, setVoluntarySocialSecurity] = useState<\n UserAccountContextState['voluntarySocialSecurity']\n >(contextDefaultValues.voluntarySocialSecurity);\n\n const { t } = useTranslation();\n\n const clearContext = () => {\n setPersonalData(contextDefaultValues.personalData);\n };\n\n const userAccountApi = new UserAccountApi();\n\n const savePersonalData = (id: string | number, data: PersonalData) => {\n const credentials = {\n description: data.description ? data.description : '',\n avatar: avatarHelper === data.avatar ? undefined : data.avatar,\n careers: data.careers,\n abilities: data.abilities,\n first_name: data.name,\n last_name: data.surname,\n date_of_birth: data.birthDate,\n sex: booleanFromOption(data.sex) ? 'FEMALE' : 'MALE',\n street: data.street,\n city: data.city,\n zip_code: data.postalCode,\n voivodeship: data.voivodeship,\n country: data.country,\n phone: data.phone_country_code + data.phone,\n dimensions: data.careers.includes(MODEL_ID)\n ? {\n weight: Number(data.weight),\n height: Number(data.height),\n hips: Number(data.hips),\n waist: Number(data.waist),\n chest: Number(data.chest),\n }\n : null,\n };\n userAccountApi\n .save(id, credentials)\n .then((res: TData) => {\n setWorkerData({ ...workerData, ...res });\n customNotification({ type: 'success', description: t('global.saveSuccess') });\n })\n .catch(err => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `userDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n const saveQuestionaire = (id: string | number, data: QuestionnaireData) => {\n const credentials = {\n employment_declaration: [\n {\n key: 'EMPLOYED_CONTRACT_IN_ANOTHER_ESTABLISHMENT',\n value: booleanFromOption(data.employedContractInAnotherEstablishment),\n },\n {\n key: 'EMPLOYED_CONTRACT_WAGE_HIGHER_THAN_THE_MINIMUM',\n value: booleanFromOption(data.employedContractWageHigherThanTheMinimum),\n },\n {\n key: 'CONTRACT_OF_MANDATE_IN_ANOTHER_ESTABLISHMENT',\n value: booleanFromOption(data.contractOfMandateInAnotherEstablishment),\n },\n {\n key: 'CONTRACT_OF_MANDATE_WAGE_HIGHER_THAN_MINIMUM',\n value: booleanFromOption(data.contractOfMandateWageHigherThanMinimum),\n },\n {\n key: 'RUNNING_A_BUSINESS',\n value: booleanFromOption(data.runningABusiness),\n },\n { key: 'DISABILITY', value: booleanFromOption(data.disability) },\n { key: 'STUDENT', value: booleanFromOption(data.student) },\n { key: 'RETIRED', value: booleanFromOption(data.retired) },\n { key: 'PENSIONER', value: booleanFromOption(data.pensioner) },\n ],\n };\n userAccountApi\n .save(id, credentials)\n .then(() =>\n customNotification({ type: 'success', description: t('global.saveSuccess') })\n )\n .catch(err => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `userDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n\n const saveExperience = (id: string | number, data: Array) => {\n const credentials = {\n experience: data,\n };\n userAccountApi\n .save(id, credentials)\n .then(() =>\n customNotification({ type: 'success', description: t('global.saveSuccess') })\n )\n .catch(err => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `userDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n\n const saveZusData = (id: string | number, data: string | boolean) => {\n const credentials = {\n voluntary_social_security: booleanFromOption(data),\n };\n userAccountApi\n .save(id, credentials)\n .then(() =>\n customNotification({ type: 'success', description: t('global.saveSuccess') })\n )\n .catch(err => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `userDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n\n const saveBillingData = (id: string | number, data: BillingData) => {\n const credentials = {\n bank_account_number: data.iban,\n tax_office: {\n name: data.usName,\n address_line_1: data.usAddressPartOne,\n address_line_2: data.usAddressPartTwo,\n city: data.city,\n country: data.country,\n zip_code: data.postalCode,\n },\n };\n userAccountApi\n .save(id, credentials)\n .then(() =>\n customNotification({ type: 'success', description: t('global.saveSuccess') })\n )\n .catch(err => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `userDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n\n const loadData = async (id: string | number) => {\n setLoading(true);\n try {\n const userData = await userAccountApi.load(id);\n setPersonalData(state => ({\n description: userData.description,\n avatar: userData.avatar,\n name: userData.first_name,\n surname: userData.last_name,\n pesel: userData.PESEL,\n nip: userData.NIP,\n street: userData.street,\n postalCode: userData.zip_code,\n city: userData.city,\n phone: userData.phone,\n phone_country_code: userData.phone_country_code,\n building_number: userData.building_number,\n birthDate: userData.date_of_birth,\n sex: userData.sex === 'FEMALE',\n country: userData.country,\n voivodeship: userData.voivodeship,\n careers: userData.careers,\n abilities: userData.abilities,\n weight: userData.dimensions?.weight,\n height: userData.dimensions?.height,\n hips: userData.dimensions?.hips,\n waist: userData.dimensions?.waist,\n chest: userData.dimensions?.chest,\n }));\n setAvatarHelper(state => userData.avatar);\n setExperience(userData.experience.filter(element => !element.is_workinn));\n setQuestionnaireData({\n employedContractInAnotherEstablishment:\n userData.employment_declaration.find(\n element => element.key === 'EMPLOYED_CONTRACT_IN_ANOTHER_ESTABLISHMENT'\n )?.value || false,\n employedContractWageHigherThanTheMinimum:\n userData.employment_declaration.find(\n element => element.key === 'EMPLOYED_CONTRACT_WAGE_HIGHER_THAN_THE_MINIMUM'\n )?.value || false,\n contractOfMandateInAnotherEstablishment:\n userData.employment_declaration.find(\n element => element.key === 'CONTRACT_OF_MANDATE_IN_ANOTHER_ESTABLISHMENT'\n )?.value || false,\n contractOfMandateWageHigherThanMinimum:\n userData.employment_declaration.find(\n element => element.key === 'CONTRACT_OF_MANDATE_WAGE_HIGHER_THAN_MINIMUM'\n )?.value || false,\n runningABusiness:\n userData.employment_declaration.find(\n element => element.key === 'RUNNING_A_BUSINESS'\n )?.value || false,\n disability:\n userData.employment_declaration.find(element => element.key === 'DISABILITY')\n ?.value || false,\n student:\n userData.employment_declaration.find(element => element.key === 'STUDENT')\n ?.value || false,\n retired:\n userData.employment_declaration.find(element => element.key === 'RETIRED')\n ?.value || false,\n pensioner:\n userData.employment_declaration.find(element => element.key === 'PENSIONER')\n ?.value || false,\n });\n setVoluntarySocialSecurity(userData.voluntary_social_security);\n setBillingData({\n usName: userData.tax_office.name,\n usAddressPartOne: userData.tax_office.address_line_1,\n usAddressPartTwo: userData.tax_office.address_line_2,\n city: userData.tax_office.city,\n postalCode: userData.tax_office.zip_code,\n iban: userData.bank_account_number,\n country: userData.country,\n });\n } catch (err: any) {\n if (err?.response) {\n customNotification({ type: 'error', description: t('global.loadDataError') });\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default UserAccountContextProvider;\n","import { createContext, useState, useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport EmployerAccountApi from '../api/account/EmployerAccount';\nimport customNotification from '../components/notification';\nimport { getErrorFromResponse } from '../helpers/functions';\n\ninterface BasicData {\n name: string;\n surname: string;\n position: string;\n email: string;\n phone: string;\n description: string;\n logo: string;\n phone_country_code?: string;\n}\ninterface Institution {\n name: string;\n street: string;\n buildingNumber: string;\n city: string;\n zipCode: string;\n country: string;\n voivodeship: string;\n website: string;\n}\n\ninterface Tax {\n companyName: string;\n nip?: string;\n street: string;\n buildingNumber: string;\n city: string;\n zipCode: string;\n country: string;\n voivodeship: string;\n}\n\nexport type EmployerAccountContextState = {\n basicData: BasicData;\n institution: Institution;\n tax: Tax;\n loading: boolean;\n loadData: (id: string) => void;\n setBasicData: (basicData: BasicData) => void;\n setTaxData: (tax: Tax) => void;\n setInstitutionData: (institution: Institution) => void;\n clearContext: () => void;\n saveBasicData: (id: string | number, personalData: BasicData) => void;\n saveTaxData: (id: string | number, tax: Tax) => void;\n saveInstitutionData: (id: string | number, institution: Institution) => void;\n};\n\nconst contextDefaultValues: EmployerAccountContextState = {\n basicData: {\n name: '',\n surname: '',\n position: '',\n email: '',\n phone: '',\n description: '',\n logo: '',\n },\n institution: {\n name: '',\n street: '',\n buildingNumber: '',\n city: '',\n zipCode: '',\n country: '',\n voivodeship: '',\n website: '',\n },\n tax: {\n companyName: '',\n nip: '',\n street: '',\n buildingNumber: '',\n city: '',\n zipCode: '',\n country: '',\n voivodeship: '',\n },\n loading: false,\n loadData: () => {},\n setBasicData: () => {},\n saveBasicData: () => {},\n setTaxData: () => {},\n saveTaxData: () => {},\n setInstitutionData: () => {},\n saveInstitutionData: () => {},\n clearContext: () => {},\n};\n\nexport const EmployerAccountContext =\n createContext(contextDefaultValues);\n\nconst EmployerAccountContextProvider: React.FC = ({ children }) => {\n const [basicData, setBasicData] = useState(contextDefaultValues.basicData);\n const [institution, setInstitutionData] = useState(\n contextDefaultValues.institution\n );\n const [tax, setTaxData] = useState(contextDefaultValues.tax);\n const [loading, setLoading] = useState(contextDefaultValues.loading);\n const [logoHelper, setLogoHelper] = useState('');\n\n const { t } = useTranslation();\n\n const clearContext = () => {\n setBasicData(contextDefaultValues.basicData);\n };\n\n const employerAccountApi = new EmployerAccountApi();\n\n const saveBasicData = (id: string | number, data: BasicData) => {\n const credentials = {\n description: data.description ? data.description : '',\n logo: logoHelper === data.logo ? undefined : data.logo,\n first_name: data.name,\n last_name: data.surname,\n position: data.position,\n email: data.email,\n phone: data.phone_country_code + data.phone,\n };\n employerAccountApi\n .save(id, credentials)\n .then(() =>\n customNotification({\n type: 'success',\n description: t('global.saveSuccess'),\n })\n )\n .catch((err: any) => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `employerDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n const saveTaxData = (id: string | number, data: Tax) => {\n const credentials = {\n company_name: data.companyName,\n street: data.street,\n building_number: data.buildingNumber,\n city: data.city,\n zip_code: data.zipCode,\n country: data.country,\n voivodeship: data.voivodeship,\n };\n employerAccountApi\n .save(id, { tax: credentials })\n .then(() =>\n customNotification({\n type: 'success',\n description: t('global.saveSuccess'),\n })\n )\n .catch((err: any) => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `employerDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n const saveInstitutionData = (id: string | number, data: Institution) => {\n const credentials = {\n name: data.name,\n street: data.street,\n building_number: data.buildingNumber,\n city: data.city,\n zip_code: data.zipCode,\n country: data.country,\n voivodeship: data.voivodeship,\n website: data.website,\n };\n employerAccountApi\n .save(id, { institution: credentials })\n .then(() =>\n customNotification({\n type: 'success',\n description: t('global.saveSuccess'),\n })\n )\n .catch((err: any) => {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `employerDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n });\n };\n\n const loadData = async (id: string | number) => {\n setLoading(true);\n try {\n const employerData = await employerAccountApi.load(id);\n setBasicData(state => ({\n name: employerData.first_name,\n surname: employerData.last_name,\n position: employerData.position,\n email: employerData.email,\n phone: employerData.phone,\n description: employerData.description,\n logo: employerData.logo,\n phone_country_code: employerData.phone_country_code,\n }));\n setLogoHelper(state => employerData.logo);\n setInstitutionData(state => ({\n name: employerData.institution?.name,\n street: employerData.institution?.street,\n buildingNumber: employerData.institution?.building_number,\n city: employerData.institution?.city,\n zipCode: employerData.institution?.zip_code,\n country: employerData.institution?.country,\n voivodeship: employerData.institution?.voivodeship,\n website: employerData?.institution?.website,\n }));\n setTaxData(state => ({\n companyName: employerData.tax?.company_name,\n nip: employerData.tax?.NIP,\n street: employerData.tax?.street,\n buildingNumber: employerData.tax?.building_number,\n city: employerData.tax?.city,\n zipCode: employerData.tax?.zip_code,\n country: employerData.tax?.country,\n voivodeship: employerData.tax?.voivodeship,\n }));\n } catch (err: any) {\n if (err?.response) {\n customNotification({ type: 'error', description: t('global.loadDataError') });\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default EmployerAccountContextProvider;\n","/* eslint-disable no-console */\n/* eslint-disable import/no-unresolved */\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: MIT-0\n\nimport React, { createContext, useContext, useState, useEffect } from 'react';\nimport { Auth } from '@aws-amplify/auth';\nimport { useNotificationDispatch } from 'amazon-chime-sdk-component-library-react';\nimport AWS from 'aws-sdk';\nimport appConfig from '../Config';\n\nconst AuthContext = createContext();\n\nconst AmplifyAuthProvider = ({ children }) => {\n const notificationDispatch = useNotificationDispatch();\n // Member\n const [member, setMember] = useState({\n username: '',\n userId: '',\n });\n // Auth state\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n // isAnonymous (anon does not have access to write to S3 for attachments) default to cognito flow\n const [isAnonymous, setAnonymous] = useState(false);\n // Using CognitoIdp (if true use Cognito IDP to search for users when adding members to a room,\n // else lookup using ListAppInstanceUsers API), default to Cognito flow\n const [useCognitoIdp, setUseCognitoIdp] = useState(true);\n\n const userSignOut = async () => {\n try {\n await Auth.signOut();\n setIsAuthenticated(false);\n } catch (error) {\n console.log(`error siging out ${error}`);\n }\n };\n\n const updateUserAttributes = async userId => {\n try {\n const user = await Auth.currentAuthenticatedUser();\n\n await Auth.updateUserAttributes(user, {\n profile: userId,\n });\n } catch (err) {\n console.log(err);\n }\n };\n\n const getAwsCredentialsFromCognito = async () => {\n const creds = await Auth.currentCredentials();\n const essentialCreds = await Auth.essentialCredentials(creds);\n AWS.config.region = appConfig.chimeRegion;\n AWS.config.credentials = essentialCreds;\n return essentialCreds;\n };\n\n const setAuthenticatedUserFromCognito = () => {\n setUseCognitoIdp(true);\n Auth.currentUserInfo()\n .then(curUser => {\n setMember({\n username: curUser.username,\n userId: `${appConfig.cognitoRegion}:${curUser.username}`,\n });\n if (curUser.attributes?.profile === 'none') {\n updateUserAttributes(curUser.id);\n // Once we set attribute let's have user relogin to refresh SigninHookFn trigger.\n setIsAuthenticated(false);\n\n notificationDispatch({\n type: 0,\n payload: {\n message: 'Your account is activated! Please sign in again to confirm.',\n severity: 'success',\n },\n });\n } else {\n setAnonymous(false);\n setIsAuthenticated(true);\n }\n })\n .catch(err => {\n console.log(`Failed to set authenticated user! ${err}`);\n });\n getAwsCredentialsFromCognito();\n };\n\n const userSignIn = (username, password) => {\n Auth.signIn({ username, password })\n .then(setAuthenticatedUserFromCognito)\n .catch(err => {\n console.log('Sign in error', err);\n notificationDispatch({\n type: 0,\n payload: {\n message: 'Your username and/or password is invalid!',\n severity: 'error',\n },\n });\n });\n };\n\n const setAuthenticatedUserFromCredentialExchangeService = response => {\n setUseCognitoIdp(false);\n setAnonymous(true);\n setMember({\n username: response.ChimeDisplayName,\n userId: response.ChimeUserId,\n });\n const stsCredentials = response.ChimeCredentials;\n updateUserAttributes(response.ChimeUserId);\n AWS.config.region = appConfig.chimeRegion;\n AWS.config.credentials = {\n accessKeyId: stsCredentials.AccessKeyId,\n secretAccessKey: stsCredentials.SecretAccessKey,\n sessionToken: stsCredentials.SessionToken,\n };\n\n setIsAuthenticated(true);\n };\n\n // Credential Exchange Service Code. Set Access Token on Authorization header using Bearer type.\n const userExchangeTokenForAwsCreds = accessToken => {\n fetch(`${appConfig.apiGatewayInvokeUrl}creds`, {\n method: 'POST',\n credentials: 'include',\n headers: new Headers({\n Authorization: `Bearer ${btoa(accessToken)}`,\n }),\n })\n .then(response => response.json())\n .then(data => setAuthenticatedUserFromCredentialExchangeService(data))\n .catch(err => {\n console.log(err);\n notificationDispatch({\n type: 0,\n payload: {\n message: 'Your username and/or password is invalid!',\n severity: 'error',\n },\n });\n });\n };\n\n useEffect(() => {\n Auth.currentAuthenticatedUser()\n .then(setAuthenticatedUserFromCognito)\n .catch(err => {\n setIsAuthenticated(false);\n });\n }, [Auth]);\n\n const authFulfiller = {\n member,\n isAuthenticated,\n isAnonymous,\n useCognitoIdp,\n userSignOut,\n userSignIn,\n userExchangeTokenForAwsCreds,\n };\n\n return {children};\n};\n\nconst useAmplifyAuthContext = () => {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error('useAmplifyAuthContext must be used within AmplifyAuthProvider');\n }\n\n return context;\n};\n\nexport { AmplifyAuthProvider, useAmplifyAuthContext };\n","import moment from 'moment';\nimport styled from 'styled-components';\nimport { Popover } from 'antd';\nimport queryString from 'query-string';\nimport { dateTimeFormat } from './constants';\nimport Text from '../components/Text';\n\nfunction isEmpty(obj: Record) {\n return Object.keys(obj).length === 0;\n}\n\nenum Token {\n access = 'workinn-authtoken',\n refresh = 'workinn-refreshtoken',\n username = 'workinn-username',\n}\n\nexport function saveTokens(access: string, refresh: string, username: string) {\n localStorage.setItem(Token.access, access);\n localStorage.setItem(Token.refresh, refresh);\n localStorage.setItem(Token.username, username);\n}\n\nexport function getTokens() {\n const access = localStorage.getItem(Token.access);\n const refresh = localStorage.getItem(Token.refresh);\n const username = localStorage.getItem(Token.username);\n\n return { access, refresh, username };\n}\n\nexport function removeTokens() {\n localStorage.removeItem(Token.access);\n localStorage.removeItem(Token.refresh);\n localStorage.removeItem(Token.username);\n}\n\ninterface ComposeProps {\n components: Array>>;\n children: React.ReactNode;\n}\n\nexport function Compose(props: ComposeProps) {\n const { components = [], children } = props;\n\n return (\n <>\n {components.reduceRight(\n (acc, Comp) => (\n {acc}\n ),\n children\n )}\n \n );\n}\n\nexport const getHours = (dateTimeRange: Array<{ start: string; end: string }>) =>\n dateTimeRange\n .map(el => {\n const start = moment(el.start, dateTimeFormat);\n const end = moment(el.end, dateTimeFormat);\n return moment.duration(end.diff(start)).asHours();\n })\n .reduce((acc, next) => acc + next);\n\nexport const getDateTimeRange = (start: string, end: string, highlightDate?: boolean) => {\n const [startDate, startTime] = start.split(' ');\n const [endDate, endTime] = end.split(' ');\n return startDate === endDate ? (\n <>\n {highlightDate ? (\n {startDate}\n ) : (\n startDate\n )}\n {` ${startTime} - ${endTime}`}\n \n ) : (\n <>\n {highlightDate ? (\n <>\n {startDate} {startTime} -\n {endDate} {endTime}\n \n ) : (\n `${start} - ${end}`\n )}\n \n );\n};\n\nexport const getDateTimeDescription = (\n dateTimeRange: Array<{ start: string; end: string }>,\n message: string,\n highlightDate?: boolean\n) => {\n if (!dateTimeRange) return 'Error';\n\n if (dateTimeRange.length === 1) {\n return getDateTimeRange(dateTimeRange[0].start, dateTimeRange[0].end, highlightDate);\n }\n\n const content = dateTimeRange.map(el => (\n \n ));\n\n if (highlightDate) {\n const [startDate, startTime] = dateTimeRange[0].start.split(' ');\n const [endDate, endTime] = dateTimeRange[dateTimeRange.length - 1].end.split(' ');\n return (\n \n {startDate} {startTime} -\n {endDate} {endTime}\n \n );\n }\n\n return (\n \n {`${dateTimeRange[0].start} - ${dateTimeRange[dateTimeRange.length - 1].end}`}\n \n );\n};\n\nconst StyledText = styled(Text)`\n white-space: pre-wrap;\n word-break: break-all;\n display: block;\n`;\n\nexport const createUrl = (queryUrl: string, queryParams = {}) => {\n if (isEmpty(queryParams)) {\n return queryUrl;\n }\n return queryUrl + '?' + queryString.stringify(queryParams);\n};\n\nexport function getBase64(img: any, callback: any) {\n const reader = new FileReader();\n reader.addEventListener('load', () => callback(reader.result));\n reader.readAsDataURL(img);\n}\n\nexport const flattenObject = (obj: any) => {\n const result = {};\n Object.values(obj).forEach(nestedObject => {\n Object.assign(result, nestedObject);\n });\n\n return result;\n};\n\nexport const getErrorFromResponse = (error: any): { field: string; code: string } => {\n if (Object.keys(error).length > 1) {\n return {\n field: error.field,\n code: error.code,\n };\n }\n return getErrorFromResponse({\n ...error[Object.keys(error)[0]][0],\n field: `${Object.keys(error)[0]}.${error[Object.keys(error)[0]][0]?.field}`,\n });\n};\n\nexport const getCurrentMonth = () => {\n const start = moment().startOf('month').format('YYYY-MM-DD');\n const end = moment().endOf('month').format('YYYY-MM-DD');\n return start + ':' + end;\n};\n\nexport const getCurrentWeek = () => {\n const start = moment().startOf('week').format('YYYY-MM-DD');\n const end = moment().endOf('week').format('YYYY-MM-DD');\n return start + ':' + end;\n};\n\nexport const getCurrentYear = () => moment().year().toString();\n\nexport const getErrorMessage = (code: string) => {\n const codes: Record = {\n confirmed_application_date_overlap: 'myWorkinn.workerAlreadyHired',\n };\n\n return codes[code] || 'global.error';\n};\n","import { lightTheme } from 'amazon-chime-sdk-component-library-react';\n\nconst theme: any = {\n color: {\n primary: '#0000FF',\n secondary: '#A0A3BD',\n lightBlue: '#23BFF2',\n lightGreen: '#40E5BF',\n lightYellow: '#FFD058',\n purple: '#8F39DF',\n orange: '#FF8519',\n grey: '#BFBFBF',\n lightGrey: '#E5E5FF',\n green: '#27AE60',\n red: '#EC2D2D',\n blue: '#39CAF9',\n yellow: '#FAAD14',\n dark: '#262626',\n white: '#FFFFFF',\n none: 'RGBA(0,0,0,0.0)',\n workinnBlue: '#0CBEF8',\n workinnGreen: '#40E5BF',\n workinnYellow: '#FFD058',\n workinnRed: '#EB5757',\n workinnViolet: '#8F39DF',\n disabled: '#F5F5F5',\n },\n fontSize: {\n small: '12px',\n normal: '14px',\n medium: '16px',\n big: '18px',\n large: '25px',\n huge: '34px',\n gigantic: '50px',\n },\n lineHeight: {\n small: '18px',\n normal: '20px',\n medium: '22px',\n big: '24px',\n large: '33px',\n huge: '41px',\n gigantic: '70px',\n },\n fontWeight: {\n regular: 500,\n bold: 700,\n },\n screenMaxWidth: {\n xs: 'max-width: 576px',\n sm: 'max-width: 767px',\n md: 'max-width: 991px',\n lg: 'max-width: 1199px',\n },\n screenWidth: {\n xs: 576,\n sm: 767,\n md: 991,\n lg: 1199,\n },\n hexToRGBA: (hex: string, alpha: number) => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n return `rgba(${r},${g},${b}, ${alpha})`;\n },\n ...lightTheme,\n};\n\nexport default theme;\n","import { Spin } from 'antd';\nimport styled from 'styled-components';\n\nconst StyledSpin = styled(Spin)`\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n .ant-spin-dot-item {\n background-color: ${props => props.theme.color.primary};\n }\n`;\n\nexport default StyledSpin;\n","export default __webpack_public_path__ + \"static/media/avatarPlaceholder.58c84f53.svg\";","import styled from 'styled-components';\nimport { Modal as AntModal } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport SvgIcon from './SvgIcon';\nimport Text from './Text';\nimport PrimaryButton from './buttons/PrimaryButton';\n\ntype ModalType = 'info' | 'success' | 'warning';\n\ninterface ModalProps {\n visible: boolean;\n type: ModalType;\n title: string;\n subtitle?: string;\n onOk: () => void;\n onCancel?: () => void;\n onDeny?: () => void;\n okMessage?: string;\n weight?: number;\n}\n\nconst typeToIcon = (type: ModalType) => {\n if (type === 'info') return 'infoModal';\n if (type === 'success') return 'successModal';\n if (type === 'warning') return 'warningModal';\n return 'warningModal';\n};\nconst Modal: React.FC = ({\n visible,\n type,\n title,\n subtitle,\n onOk,\n onCancel,\n onDeny,\n okMessage,\n weight,\n}) => {\n const { t } = useTranslation();\n return (\n \n \n \n \n \n {subtitle ? : null}\n\n \n {onCancel && (\n \n )}\n {onDeny && (\n \n )}\n \n \n \n \n );\n};\n\nconst StyledText = styled(Text)`\n text-align: center;\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-top: 2rem;\n`;\n\nconst Content = styled.div`\n margin-top: 2rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst TypeSvgIcon = styled(SvgIcon)`\n margin-bottom: 1rem;\n`;\n\nconst IconExit = styled(SvgIcon)`\n cursor: pointer;\n position: absolute;\n right: 1rem;\n top: 1rem;\n`;\n\nconst StyledModal = styled(AntModal)`\n .ant-modal-body {\n height: auto;\n padding: 1.5rem;\n }\n\n .ant-modal-content {\n border-radius: 1.25rem;\n box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n .ant-modal-close {\n display: none;\n }\n`;\n\nexport default Modal;\n","import { createContext, useState } from 'react';\nimport OffersApi, { TOffersQueryParams, TMyOffersQueryParams } from '../api/Offers';\nimport { DEFAULT_PAGE_SIZE } from '../helpers/constants';\nimport { SpecialitieType, TranslationSkills } from './WorkerContext';\n\nenum TWorkerStatus {\n candidate = 'CANDIDATE',\n confirmed = 'CONFIRMED',\n forSettlement = 'FOR_SETTLEMENT',\n settled = 'SETTLED',\n unsettled = 'UNSETTLED',\n notCome = 'WORKER_NOT_COME',\n settlementToImprove = 'SETTLEMENT_TO_IMPROVED',\n settlementSent = 'SETTLEMENT_SENT',\n executed = 'EXECUTED',\n rejected = 'REJECTED',\n resignationRequest = 'RESIGNATION_REQUEST',\n settlementRejected = 'SETTLEMENT_REJECTED',\n}\n\nexport type TOffer = {\n id: number;\n title: string;\n event_dates: Array>;\n institution?: string;\n location: {\n city: string;\n address: string;\n zip_code?: string;\n };\n speciality: SpecialitieType;\n company_name?: string;\n abilities: TranslationSkills[];\n contents: string;\n requirements: string;\n hourly_rate: string;\n number_of_vacancies: number;\n number_of_workers_needed?: number;\n compatible: boolean;\n applied: boolean;\n is_active?: boolean;\n can_application: {\n status: boolean;\n reasons?: Array;\n };\n employer_profile: number;\n logo?: string;\n created_at: string;\n status?: string;\n workers?: Array<{\n worker_profile: {\n id: number;\n first_name: string;\n rating: null;\n rating_count: number;\n last_name: string;\n avatar: string;\n };\n status: TWorkerStatus;\n }>;\n can_send_opinion?: boolean;\n can_open_settlement?: boolean;\n matching_workers?: Array<{\n id: string | number;\n avatar: string;\n first_name: string;\n rating: null;\n rating_count: number;\n }>;\n};\n\ntype OffersContextState = {\n loading: boolean;\n errorMessage: string;\n params: TOffersQueryParams;\n updateData: (queryParams?: TOffersQueryParams) => void;\n getMyOffers: (queryParams?: TMyOffersQueryParams) => void;\n clearSelectedOffer: () => void;\n getSelectedOffer: (id: string) => void;\n apply: (\n offerId: number,\n successCB: () => void,\n errorCB: (code: string) => void\n ) => void;\n inviteWorker: (\n offerId: number | string,\n workerId: number,\n successCB: () => void,\n errorCB: (code: string) => void\n ) => void;\n changePage: (newPage: number) => void;\n changeWorkerStatusInOffer: (\n offerId: number,\n workerId: number,\n status: TWorkerStatus\n ) => void;\n removeOffer: (id: number) => void;\n page: number;\n pageSize: number;\n changePageSize: (newPageSize: number) => void;\n data: {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n };\n selectedOffer:\n | (TOffer & { employer_profile: { id: number; name: string; institution?: string } })\n | undefined;\n};\n\nconst offersContextInitialState: OffersContextState = {\n loading: false,\n errorMessage: '',\n params: {},\n updateData: () => {},\n getMyOffers: () => {},\n getSelectedOffer: () => {},\n inviteWorker: () => {},\n clearSelectedOffer: () => {},\n apply: () => {},\n changePage: () => {},\n changeWorkerStatusInOffer: () => {},\n removeOffer: () => {},\n page: 1,\n pageSize: DEFAULT_PAGE_SIZE,\n changePageSize: () => {},\n selectedOffer: undefined,\n data: {\n count: 0,\n next: null,\n previous: null,\n results: [],\n },\n};\n\nconst api = new OffersApi();\n\nexport const OffersContext = createContext(offersContextInitialState);\n\nconst OffersContextProvider: React.FC = ({ children }) => {\n const [loading, setLoading] = useState(\n offersContextInitialState.loading\n );\n const [errorMessage, setErrorMessage] = useState(\n offersContextInitialState.errorMessage\n );\n const [page, setPage] = useState(\n offersContextInitialState.page\n );\n const [pageSize, changePageSize] = useState(\n offersContextInitialState.pageSize\n );\n const [data, setData] = useState(\n offersContextInitialState.data\n );\n const [selectedOffer, setSelectedOffer] = useState(\n offersContextInitialState.selectedOffer\n );\n const [params, setParams] = useState(\n offersContextInitialState.params\n );\n\n const updateData = async (queryParams?: TOffersQueryParams) => {\n setLoading(true);\n const offersData = await api.get({\n ...queryParams,\n page_size: pageSize || DEFAULT_PAGE_SIZE,\n });\n if (queryParams?.page) setPage(queryParams.page);\n setData(offersData);\n setParams(queryParams || {});\n setLoading(false);\n };\n\n const getMyOffers = async (queryParams?: TMyOffersQueryParams) => {\n setLoading(true);\n const offersData = await api.getMyOffers({\n ...queryParams,\n page_size: pageSize || DEFAULT_PAGE_SIZE,\n });\n if (queryParams?.page) setPage(queryParams.page);\n if (queryParams?.page_size) changePageSize(queryParams.page_size);\n setData(offersData);\n setParams(queryParams || {});\n setLoading(false);\n };\n\n const getSelectedOffer = async (id: string) => {\n setLoading(true);\n const offerData = await api.getSingleOffer(id);\n setSelectedOffer(offerData);\n setLoading(false);\n };\n\n const inviteWorker = async (\n offerId: number | string,\n workerId: number,\n successCB: () => void,\n errorCB: (err: string) => void\n ) => {\n try {\n await api.inviteWorker(offerId, workerId);\n successCB();\n } catch (err: any) {\n errorCB(err?.response?.data?.errors[0].code);\n }\n };\n\n const apply = async (\n offerId: number,\n successCB: () => void,\n errorCB: (err: string) => void\n ) => {\n try {\n await api.apply(offerId);\n successCB();\n } catch (err: any) {\n errorCB(err?.response?.data?.errors[0].code);\n }\n };\n\n const changeWorkerStatusInOffer = (\n offerId: number,\n workerId: number,\n status: TWorkerStatus\n ) => {\n const newOffers = data.results.map(offer => {\n if (offer.id === offerId) {\n const newWorkers = offer?.workers?.map(worker =>\n worker.worker_profile.id === workerId ? { ...worker, status } : worker\n );\n return { ...offer, workers: newWorkers };\n }\n return offer;\n });\n setData({ ...data, results: newOffers });\n };\n\n const clearSelectedOffer = () => {\n setSelectedOffer(offersContextInitialState.selectedOffer);\n };\n\n const changePage = (newPage: number) => {\n setPage(newPage);\n };\n\n const removeOffer = (id: number) => {\n setData({ ...data, results: data.results.filter(offer => offer.id !== id) });\n };\n return (\n \n {children}\n \n );\n};\n\nexport default OffersContextProvider;\n","import styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { Empty } from 'antd';\nimport Text from './Text';\n\nconst EmptyList: React.FC<{ message?: string }> = ({ message }) => {\n const { t } = useTranslation();\n return (\n \n \n \n \n );\n};\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 1rem 0 2rem 0;\n`;\n\nexport default EmptyList;\n","import moment from 'moment';\nimport { dateTimeFormat } from '../helpers/constants';\nimport { createUrl } from '../helpers/functions';\nimport HttpClient from '../utils/http-client';\nimport { environmentConfig } from '../Config';\nimport { SpecialitieType, TranslationSkills } from '../context/WorkerContext';\n\ntype ID = string | number;\n\nconst PATHS = {\n offers: '/v1/offers/',\n offer: (id: string) => `/v1/offers/${id}/`,\n inviteWorker: (offerId: number | string, workerId: number) =>\n `/v1/offers/${offerId}/invite/${workerId}/`,\n myOffers: '/v1/offers/my/',\n apply: (id: number) => `/v1/offers/${id}/apply/`,\n resignation: (offerId: string, userId: string) =>\n `v1/offers/${offerId}/applications/${userId}/`,\n resignationRequest: (offerId: string, userId: string) =>\n `v1/offers/${offerId}/resignation_request/`,\n confirmResignation: (offerId: ID, userId: ID) =>\n `v1/offers/${offerId}/confirm_resignation/${userId}/`,\n getResignationRequest: (offerId: ID, userId: ID) =>\n `v1/offers/${offerId}/resignation/${userId}/`,\n getContract: (offerId: ID, userId: ID) => `v1/offers/${offerId}/pdf/${userId}/`,\n getContracts: (offerId: ID) => `v1/offers/${offerId}/pdf/`,\n sendBroadcastMessage: (offerId: ID) => `v1/offers/${offerId}/broadcast_message/`,\n};\n\nexport type TWorker = {\n worker_profile: {\n avatar: string;\n id: number;\n first_name: string;\n rating: null;\n rating_count: number;\n last_name: string;\n };\n status: TWorkerStatus;\n chime_chat?: string;\n};\n\nexport enum TWorkerStatus {\n candidate = 'CANDIDATE',\n //u góry sprawdzone\n confirmed = 'CONFIRMED',\n //\n forSettlement = 'FOR_SETTLEMENT',\n settled = 'SETTLED',\n unsettled = 'UNSETTLED',\n notCome = 'WORKER_NOT_COME',\n settlementToImprove = 'SETTLEMENT_TO_IMPROVED',\n settlementSent = 'SETTLEMENT_SENT',\n executed = 'EXECUTED',\n rejected = 'REJECTED',\n resignationRequest = 'RESIGNATION_REQUEST',\n settlementRejected = 'SETTLEMENT_REJECTED',\n}\n\nexport type TOffer = {\n id: number;\n title: string;\n event_dates: Array>;\n location: {\n city: string;\n address: string;\n };\n speciality: SpecialitieType;\n abilities: TranslationSkills[];\n contents: string;\n requirements: string;\n hourly_rate: string;\n number_of_vacancies: number;\n number_of_workers_needed?: number;\n compatible: boolean;\n institution?: string;\n applied: boolean;\n can_application: {\n status: boolean;\n reasons?: Array;\n };\n employer_profile: number;\n created_at: string;\n logo?: string;\n company_name?: string;\n status?: string;\n workers?: Array;\n is_active?: boolean;\n};\n\nexport type TData = {\n hourly_rate: number;\n number_of_vacancies: number;\n dateTimeRange: Array<{ start: string; end: string }>;\n location: string | { city: string; address: string; zip_code: string };\n speciality: string;\n abilities: TranslationSkills[];\n contents: string;\n sex?: string;\n requirements?: string;\n};\n\nexport type TOffersResponse = {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n};\n\nexport type TOffersQueryParams = {\n search?: string;\n ordering?: string;\n page?: number;\n page_size?: number;\n rate_min?: number;\n rate_max?: number;\n speciality?: Array;\n\n distance?: string;\n city_lng?: number;\n city_lat?: number;\n city?: string;\n filter_by?: 'MATCHED' | 'LATEST' | 'POPULAR';\n start_date?: string;\n end_date?: string;\n};\n\nexport type TMyOffersQueryParams = {\n page?: number;\n page_size?: number;\n status?: string | Array;\n};\n\nclass OffersApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public add = async (\n data: TData,\n successCallback: () => void,\n errorCallback: (error: any) => void\n ): Promise => {\n try {\n await this.instance.post(PATHS.offers, {\n ...data,\n event_dates: data.dateTimeRange.map(el => [\n moment(el.start, dateTimeFormat),\n moment(el.end, dateTimeFormat),\n ]),\n location: data.location,\n }); //hack, to change later (geocoding)\n successCallback();\n } catch (err: any) {\n errorCallback(err?.response?.data);\n }\n };\n\n public get = async (queryParams?: TOffersQueryParams): Promise =>\n this.instance.get(createUrl(PATHS.offers, queryParams));\n\n public getSingleOffer = async (id: string) =>\n this.instance.get(\n PATHS.offer(id)\n );\n\n public inviteWorker = async (offerId: number | string, workerId: number) =>\n this.instance.post(PATHS.inviteWorker(offerId, workerId));\n\n public getMyOffers = async (queryParams?: any) =>\n this.instance.get(createUrl(PATHS.myOffers, queryParams));\n\n public apply = async (id: number) => this.instance.post(PATHS.apply(id));\n\n public resignationRequest = async (\n offerId: string,\n userId: string,\n description: string\n ) => this.instance.post(PATHS.resignationRequest(offerId, userId), { description });\n\n public sendBroadcastMessage = async (offerId: string, message: string) =>\n this.instance.post(PATHS.sendBroadcastMessage(offerId), { content: message });\n\n public resignation = async (offerId: string, userId: string, status?: string) =>\n this.instance.put(PATHS.resignation(offerId, userId), {\n status: status || 'REJECTED',\n });\n\n public confirmResignation = async (\n offerId: ID,\n userId: ID,\n status: 'CONFIRMED' | 'REJECTED'\n ) => this.instance.put(PATHS.confirmResignation(offerId, userId), { status });\n\n public getResignationRequest = async (offerId: ID, userId: ID) =>\n this.instance.get(\n PATHS.getResignationRequest(offerId, userId)\n );\n\n public getContract = async (offerId: ID, userId: ID) =>\n this.instance.get(PATHS.getContract(offerId, userId));\n\n public getContracts = async (offerId: ID) =>\n this.instance.get(PATHS.getContracts(offerId));\n}\n\nexport default OffersApi;\n","import { environmentConfig } from '../Config';\nimport { SpecialitieType, Translation } from '../context/WorkerContext';\nimport HttpClient from '../utils/http-client';\n\nconst PATHS = {\n careersList: '/v1/careers/',\n abilitiesList: '/v1/abilities/',\n};\n\nexport type TSkills = {\n id: number;\n name: string;\n specialities: SpecialitieType[];\n translations: Translation[];\n};\n\nexport type TAbilities = {\n id: number;\n translations: Translation[];\n};\n\nexport type TSkillsResponse = Array;\n\nexport type TAbilitiesResponse = Array;\n\nclass SkillsApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public getCareersList = async () =>\n this.instance.get(PATHS.careersList);\n\n public getAbilitiesList = async () =>\n this.instance.get(PATHS.abilitiesList);\n}\n\nexport default SkillsApi;\n","import { createContext, useState } from 'react';\nimport SkillsApi, { TAbilitiesResponse, TSkillsResponse } from '../api/SkillsApi';\n\nexport type TSkillsContextState = {\n careersList: TSkillsResponse;\n abilitiesList: TAbilitiesResponse;\n getCareersData: () => void;\n getAbilitiesData: () => void;\n};\n\nexport const TSkillsContextDefaultState: TSkillsContextState = {\n careersList: [],\n abilitiesList: [],\n getCareersData: () => {},\n getAbilitiesData: () => {},\n};\n\nexport const SkillsContext = createContext(\n TSkillsContextDefaultState\n);\n\nconst api = new SkillsApi();\n\nconst SkillsContextProvider: React.FC = ({ children }) => {\n const [careersList, setCareersList] = useState(\n TSkillsContextDefaultState.careersList\n );\n\n const getCareersData = async () => {\n const careersData = await api.getCareersList();\n setCareersList(careersData);\n };\n\n const [abilitiesList, setAbilitiesList] = useState<\n TSkillsContextState['abilitiesList']\n >(TSkillsContextDefaultState.abilitiesList);\n\n const getAbilitiesData = async () => {\n const abilitiesData = await api.getAbilitiesList();\n setAbilitiesList(abilitiesData);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default SkillsContextProvider;\n","export const dateTimeFormat = 'DD.MM.YYYY HH:mm';\nexport const dateFormat = 'DD.MM.YYYY ';\nexport const DEFAULT_PAGE_SIZE = 8;\nexport enum ROLES {\n Employer = 'EMPLOYER',\n Worker = 'WORKER',\n}\nexport const MAX_CAREEERS_LENGTH = 5;\nexport const MODEL_ID = 19;\n","import styled from 'styled-components';\nimport Text from '../Text';\nimport theme from '../../utils/theme';\nimport SvgIcon from '../SvgIcon';\n\ntype Props = {\n hasNotWorkinExperience?: boolean;\n firstTab: string;\n firstTabName: string;\n secondTab: string;\n secondTabName: string;\n activeTab: string;\n setActiveTab: React.Dispatch>;\n center?: boolean;\n};\n\nconst Tabs: React.FC = ({\n hasNotWorkinExperience,\n firstTab,\n firstTabName,\n secondTab,\n secondTabName,\n activeTab,\n setActiveTab,\n center,\n}) => (\n e.preventDefault()} center={center}>\n setActiveTab(firstTab)}\n activeTab={activeTab === firstTab}\n onMouseEnter={() => setActiveTab(firstTab)}>\n \n \n \n setActiveTab(secondTab)}\n activeTab={activeTab === secondTab}\n onMouseEnter={() => setActiveTab(secondTab)}>\n \n \n {hasNotWorkinExperience && }\n \n \n \n \n);\n\nconst Flex = styled.div`\n display: flex;\n svg {\n margin-left: 0.5rem;\n margin-right: -1rem;\n }\n`;\n\nconst StyledText = styled(Text)<{ activeTab: boolean }>`\n display: inline-block;\n margin-bottom: 0.5em;\n h4 {\n color: ${props => (props.activeTab ? theme.color.primary : theme.color.grey)};\n @media (${props => props.theme.screenMaxWidth.sm}) {\n font-size: 14px;\n }\n }\n`;\n\nconst Line = styled.div<{ activeTab: boolean; tab: string; firstTab: string }>`\n width: calc(100% + 1.75rem);\n border-bottom: solid 3px\n ${props => (props.activeTab ? theme.color.primary : theme.color.grey)};\n border-radius: ${props =>\n props.tab === props.firstTab ? '0.2rem 0 0 0.2rem' : '0 0.2rem 0.2rem 0'};\n`;\n\nconst Tab = styled.div<{ activeTab: boolean }>`\n :not(:first-of-type) {\n margin-left: 1.75rem;\n }\n cursor: pointer;\n\n :hover {\n opacity: ${props => (props.activeTab ? '1' : '0.8')};\n }\n`;\n\nconst TabsWrapper = styled.div<{ center?: boolean }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: ${props => (props.center ? 'center' : 'start')};\n`;\n\nexport default Tabs;\n","import { saveTokens } from '../helpers/functions';\nimport HttpClient from '../utils/http-client';\nimport { TAuth, TCredentials, TRegistration, TSocialAuth } from './types';\nimport { environmentConfig } from '../Config';\n\nclass AuthApi extends HttpClient {\n public constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', false);\n }\n\n public login = async (credentials: TCredentials): Promise =>\n this.instance.post('/v1/token/cognito/', {\n password: credentials.password,\n username: credentials.email,\n });\n\n public register = async (credentials: TRegistration): Promise =>\n this.instance.post('/v1/registration/email/', credentials);\n\n public registerGoogle = async (credentials: TSocialAuth): Promise =>\n this.instance.post('/v1/registration/google/', credentials);\n\n public registerFacebook = async (credentials: TSocialAuth): Promise =>\n this.instance.post('/v1/registration/facebook/', credentials);\n\n public loginGoogle = async (credentials: TSocialAuth): Promise =>\n this.instance.post('/v1/token/google/', credentials);\n\n public loginFacebook = async (credentials: TSocialAuth): Promise =>\n this.instance.post('/v1/token/facebook/', credentials);\n\n public saveTokens = (access: string, refresh: string, username: string) => {\n saveTokens(access, refresh, username);\n this.instance.defaults.headers.common.Authorization = `Bearer ${access}`;\n };\n\n public resendActivationMail = (email: string) =>\n this.instance.post<{ email: string }>('/v1/users/resend_activation/', {\n email,\n });\n\n public remindPassword = async (email: string): Promise =>\n this.instance.post('/v1/users/request_password_reset/', {\n email,\n });\n\n public resetPassword = async (\n uid: string,\n token: string,\n new_password: string\n ): Promise =>\n this.instance.post('/v1/users/password_reset_confirm/', {\n uid,\n token,\n new_password,\n });\n}\n\nexport default AuthApi;\n","import { createContext, useState } from 'react';\nimport UserCalendarApi from '../api/UserCalendarApi';\nimport { SpecialitieType } from './WorkerContext';\n\nexport type Event = {\n attendees: Array;\n calendar_id: string;\n description: string;\n end_date_time: string;\n excluded_occurrences: Array;\n id: string;\n location: string;\n meta: {\n speciality: SpecialitieType;\n company_name: string;\n institution: string;\n type?: string;\n status?: string;\n rate?: string;\n job_offer?: {\n id: string;\n };\n distance?: string;\n location?: {\n city?: string;\n };\n };\n occurrences: Array;\n rrule?: string;\n start_date_time: string;\n title: string;\n until_date_time: string;\n};\n\nexport type TUserCalendarContextState = {\n loading: boolean;\n // events: {\n // count: number;\n // next: string | null;\n // previous: string | null;\n // results: Array;\n // };\n events: Array;\n userEvents: Array;\n getEvents: (date?: string) => void;\n getUserEvents: (id: string, year?: string) => void;\n};\n\nexport const userCalendarContextDefaultState: TUserCalendarContextState = {\n loading: false,\n events: [],\n userEvents: [],\n getEvents: () => {},\n getUserEvents: () => {},\n};\n\nexport const UserCalendarContext = createContext(\n userCalendarContextDefaultState\n);\n\nconst api = new UserCalendarApi();\n\nconst UserCalendarContextProvider: React.FC = ({ children }) => {\n const [events, setEvents] = useState(\n userCalendarContextDefaultState.events\n );\n\n const [userEvents, setUserEvents] = useState(\n userCalendarContextDefaultState.userEvents\n );\n\n const [loading, setLoading] = useState(\n userCalendarContextDefaultState.loading\n );\n\n const getEvents = async (endDate?: string) => {\n setLoading(true);\n const eventsData = await api.getMyEvents(endDate);\n setEvents(eventsData);\n setLoading(false);\n };\n\n const getUserEvents = async (id: string, selectedYear?: string) => {\n setLoading(true);\n const userEventsData = await api.getUserEvents(id, selectedYear);\n\n setUserEvents(\n userEventsData.filter(\n (event: any) =>\n event.meta?.type === 'DISPOSITION' || event.description === 'Disposition'\n )\n );\n setLoading(false);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default UserCalendarContextProvider;\n","import HttpClient from '../../utils/http-client';\nimport {\n TEmployerDetailsCheckInstitutionData,\n TEmployerDetailsCheckPersonalData,\n TEmployerDetailsCheckTaxData,\n TLogo,\n} from './types';\nimport { environmentConfig } from '../../Config';\n\nconst PATHS = {\n saveLogo: '/v1/employers/logo/',\n checkInstitutionData: 'v1/employers/institution/',\n checkPersonalData: 'v1/employers/personal_data/',\n checkTaxData: 'v1/employers/tax/',\n};\n\nclass EmployerDetailsFormApi extends HttpClient {\n public constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public saveLogoData = async (credentials: TLogo): Promise =>\n this.instance.post(PATHS.saveLogo, credentials);\n\n public checkPersonalData = async (\n credentials: TEmployerDetailsCheckPersonalData\n ): Promise =>\n this.instance.post(\n PATHS.checkPersonalData,\n credentials\n );\n\n public checkInstitutionData = async (\n credentials: TEmployerDetailsCheckInstitutionData\n ): Promise =>\n this.instance.post(\n PATHS.checkInstitutionData,\n credentials\n );\n\n public checkTaxData = async (credentials: TEmployerDetailsCheckTaxData): Promise =>\n this.instance.post(PATHS.checkTaxData, credentials);\n}\n\nexport default EmployerDetailsFormApi;\n","import { createContext, useState } from 'react';\nimport EmployerDetailsFormApi from '../api/detailsForm/EmployerDetailsForm';\nimport { PhonePrefix } from './UserDetailsFormContext';\n\ninterface PersonalData {\n name: string;\n surname: string;\n position: string;\n email: string;\n phone: string;\n phonePrefix: PhonePrefix;\n statement: string | boolean;\n}\n\ninterface TaxData {\n name: string;\n nip: string;\n street: string;\n buildingNumber: string;\n city: string;\n zipCode: string;\n country: string;\n voivodeship: string;\n}\n\ninterface BaseCompanyData {\n name: string;\n street: string;\n buildingNumber: string;\n city: string;\n zipCode: string;\n country: string;\n voivodeship: string;\n website: string;\n}\n\nexport type EmployerDetailsFormContextState = {\n personalData: PersonalData;\n taxData: TaxData;\n baseCompanyData: BaseCompanyData;\n logoUrl: string;\n setPersonalData: (personalData: PersonalData) => void;\n setTaxData: (taxData: TaxData) => void;\n setBaseCompanyData: (baseCompanyData: BaseCompanyData) => void;\n setLogoUrl: (logoUrl: string) => void;\n clearContext: () => void;\n saveLogo: (logo: string) => any;\n checkPersonalDataStep: (data: PersonalData) => any;\n checkInstitutionDataStep: (data: BaseCompanyData) => any;\n checkTaxDataStep: (data: TaxData) => any;\n};\n\nconst contextDefaultValues: EmployerDetailsFormContextState = {\n personalData: {\n name: '',\n surname: '',\n position: '',\n email: '',\n phone: '',\n phonePrefix: PhonePrefix.POLAND_PHONE_PREFIX,\n statement: '',\n },\n taxData: {\n name: '',\n nip: '',\n street: '',\n buildingNumber: '',\n city: '',\n zipCode: '',\n country: '',\n voivodeship: '',\n },\n baseCompanyData: {\n name: '',\n street: '',\n buildingNumber: '',\n city: '',\n zipCode: '',\n country: '',\n voivodeship: '',\n website: '',\n },\n logoUrl: '',\n setPersonalData: () => {},\n setTaxData: () => {},\n setBaseCompanyData: () => {},\n setLogoUrl: () => {},\n clearContext: () => {},\n saveLogo: () => {},\n checkPersonalDataStep: () => {},\n checkInstitutionDataStep: () => {},\n checkTaxDataStep: () => {},\n};\n\nexport const EmployerDetailsFormContext =\n createContext(contextDefaultValues);\n\nconst EmployerDetailsFormContextProvider: React.FC = ({ children }) => {\n const [personalData, setPersonalData] = useState(\n contextDefaultValues.personalData\n );\n const [taxData, setTaxData] = useState(contextDefaultValues.taxData);\n const [baseCompanyData, setBaseCompanyData] = useState(\n contextDefaultValues.baseCompanyData\n );\n const [logoUrl, setLogoUrl] = useState(contextDefaultValues.logoUrl);\n\n const clearContext = () => {\n setPersonalData(contextDefaultValues.personalData);\n setTaxData(contextDefaultValues.taxData);\n setBaseCompanyData(contextDefaultValues.baseCompanyData);\n setLogoUrl(contextDefaultValues.logoUrl);\n };\n\n const employerDetailsFormApi = new EmployerDetailsFormApi();\n\n const saveLogo = (logo: string) => employerDetailsFormApi.saveLogoData({ logo });\n\n const checkPersonalDataStep = (data: PersonalData) =>\n employerDetailsFormApi.checkPersonalData({\n first_name: data.name,\n last_name: data.surname,\n position: data.position,\n email: data.email,\n phone: data.phonePrefix + data.phone,\n });\n const checkInstitutionDataStep = (data: BaseCompanyData) =>\n employerDetailsFormApi.checkInstitutionData({\n name: data.name,\n street: data.street,\n building_number: data.buildingNumber,\n city: data.city,\n zip_code: data.zipCode,\n country: data.country,\n voivodeship: data.voivodeship,\n website: data.website,\n });\n const checkTaxDataStep = (data: TaxData) =>\n employerDetailsFormApi.checkTaxData({\n company_name: data.name,\n NIP: data.nip,\n street: data.street,\n building_number: data.buildingNumber,\n city: data.city,\n zip_code: data.zipCode,\n country: data.country,\n voivodeship: data.voivodeship,\n });\n\n return (\n \n {children}\n \n );\n};\n\nexport default EmployerDetailsFormContextProvider;\n","import { createUrl } from '../helpers/functions';\nimport HttpClient from '../utils/http-client';\nimport { environmentConfig } from '../Config';\n\nconst PATHS = {\n workers: '/v1/workers/',\n};\n\nexport type TWorker = {\n id: number;\n avatar: string;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n average: number;\n } | null;\n rating_count: number;\n city: string;\n first_name: string;\n};\n\nexport type TWorkersResponse = {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n};\n\nexport type TWorkersQueryParams = {\n page?: number;\n page_size?: number;\n distance?: string;\n city_lng?: number;\n city_lat?: number;\n city?: string;\n sex?: string;\n disability?: boolean;\n student?: boolean;\n speciality?: Array;\n careers?: Array;\n abilities?: Array;\n};\n\nclass WorkersApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public get = async (queryParams?: TWorkersQueryParams): Promise =>\n this.instance.get(createUrl(PATHS.workers, queryParams));\n}\n\nexport default WorkersApi;\n","import { createContext, useState } from 'react';\nimport WorkersApi, { TWorker, TWorkersQueryParams } from '../api/Workers';\n\ntype WorkersContextState = {\n loading: boolean;\n errorMessage: string;\n updateData: (queryParams?: TWorkersQueryParams) => void;\n page: number;\n pageSize: number;\n params: TWorkersQueryParams;\n changePage: (page: number) => void;\n changePageSize: (pageSize: number) => void;\n clearContext: () => void;\n data: {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n };\n};\n\nconst workersContextInitialState: WorkersContextState = {\n loading: false,\n errorMessage: '',\n updateData: () => {},\n page: 1,\n changePage: () => {},\n changePageSize: () => {},\n pageSize: 10,\n params: {},\n data: {\n count: 0,\n next: null,\n previous: null,\n results: [],\n },\n clearContext: () => {},\n};\n\nconst api = new WorkersApi();\n\nexport const WorkersContext = createContext(\n workersContextInitialState\n);\n\nconst WorkersContextProvider: React.FC = ({ children }) => {\n const [loading, setLoading] = useState(\n workersContextInitialState.loading\n );\n const [errorMessage, setErrorMessage] = useState(\n workersContextInitialState.errorMessage\n );\n const [page, changePage] = useState(\n workersContextInitialState.page\n );\n const [pageSize, changePageSize] = useState(\n workersContextInitialState.pageSize\n );\n const [data, setData] = useState(\n workersContextInitialState.data\n );\n const [params, setParams] = useState(\n workersContextInitialState.params\n );\n\n const updateData = async (queryParams?: TWorkersQueryParams) => {\n setLoading(true);\n const offersData = await api.get({\n ...queryParams,\n page_size: pageSize,\n });\n if (queryParams?.page) changePage(queryParams.page);\n if (queryParams?.page_size) changePageSize(queryParams.page_size);\n setData(offersData);\n setParams(queryParams || {});\n setLoading(false);\n };\n\n const clearContext = () => {\n setData(workersContextInitialState.data);\n setParams(workersContextInitialState.params);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default WorkersContextProvider;\n","import HttpClient from '../../utils/http-client';\nimport { createUrl } from '../../helpers/functions';\nimport {\n TSaveEmployerBasicData,\n TSaveEmployerInstitutionData,\n TSaveEmployerTaxData,\n TEmployerData,\n TOffersStats,\n TWorkersStats,\n} from './types';\nimport { environmentConfig } from '../../Config';\n\nconst PATHS = {\n save: (id: string | number) => `/v1/employers/${id}/details/`,\n load: (id: string | number) => `/v1/employers/${id}/details/`,\n getOffersStats: '/v1/statistic/offers/',\n getWorkersStats: '/v1/statistic/workers/',\n getWorkersContract: 'v1/statistic/workers/pdf/',\n};\n\ntype ID = string | number;\n\nclass EmployerAccountApi extends HttpClient {\n public constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public save = async (\n id: string | number,\n credentials:\n | TSaveEmployerBasicData\n | TSaveEmployerInstitutionData\n | TSaveEmployerTaxData\n ): Promise =>\n this.instance.patch<\n TSaveEmployerBasicData | TSaveEmployerInstitutionData | TSaveEmployerTaxData\n >(PATHS.save(id), credentials);\n\n public load = async (id: ID): Promise =>\n this.instance.get(PATHS.load(id));\n\n public getOffersStats = async (queryParrams: {\n start_date: string;\n end_date: string;\n }): Promise =>\n this.instance.get(createUrl(PATHS.getOffersStats, queryParrams));\n\n public getWorkersStats = async (queryParrams: {\n start_date: string;\n end_date: string;\n settled?: boolean;\n }): Promise =>\n this.instance.get(\n createUrl(PATHS.getWorkersStats, queryParrams)\n );\n\n public getWorkersContract = async (data: {\n start_date: string;\n end_date: string;\n status: any;\n }) =>\n this.instance.get(\n createUrl(PATHS.getWorkersContract, data)\n );\n}\n\nexport default EmployerAccountApi;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: MIT-0\nconst appConfig = {\n apiGatewayInvokeUrl: 'https://922qcob48d.execute-api.us-east-1.amazonaws.com/Stage/',\n cognitoUserPoolId: (window as any).env.COGNITO_USER_POOL_ID,\n cognitoAppClientId: (window as any).env.COGNITO_APP_CLIENT_ID,\n cognitoIdentityPoolId: (window as any).env.COGNITO_IDENTITY_POOL_ID,\n appInstanceArn: (window as any).env.APP_INSTANCE_ARN,\n chimeRegion: 'us-east-1',\n cognitoRegion: (window as any).env.COGNITO_REGION,\n attachments_s3_bucket_name:\n 'amazon-chime-sdk-chat-demo-chatattachmentsbucket-13tlklyo48msc',\n};\n\nconst environmentConfig = {\n REACT_APP_API_URL: (window as any).env.REACT_APP_API_URL,\n};\n\nexport { appConfig as default, environmentConfig };\n","import { notification } from 'antd';\nimport THEME from '../utils/theme';\n\ntype NotificationType = 'error' | 'success' | 'info';\n\ntype NotificationProps = {\n description?: string;\n type?: NotificationType | string;\n};\n\nconst customNotification = (props: NotificationProps) => {\n switch (props.type) {\n case 'error':\n return notification.error({\n message: 'Error',\n description: props.description,\n style: {\n borderRadius: '1rem',\n borderLeft: `2px solid ${THEME.color.red}`,\n },\n });\n case 'success':\n return notification.success({\n message: 'Success',\n description: props.description,\n style: {\n borderRadius: '1rem',\n borderLeft: `2px solid ${THEME.color.green}`,\n },\n });\n case 'info':\n return notification.info({\n message: 'Info',\n description: props.description,\n style: {\n borderRadius: '1rem',\n borderLeft: `2px solid ${THEME.color.lightBlue}`,\n },\n });\n default:\n return notification.error({\n message: props.type,\n description: props.description,\n style: {\n borderRadius: '1rem',\n borderLeft: `2px solid ${THEME.color.red}`,\n },\n });\n }\n};\n\nexport default customNotification;\n","import React, { ReactElement } from 'react';\nimport styled from 'styled-components';\nimport theme from '../utils/theme';\n\nexport type TextType =\n | 'small'\n | 'normal'\n | 'medium'\n | 'big'\n | 'large'\n | 'huge'\n | 'gigantic';\n\ntype TextColor =\n | 'primary'\n | 'secondary'\n | 'grey'\n | 'green'\n | 'red'\n | 'blue'\n | 'white'\n | 'dark';\n\ntype TextProps = {\n className?: string;\n message: ReactElement | string | string[];\n type?: TextType;\n color?: TextColor;\n weight?: number;\n italic?: boolean;\n upperCase?: boolean;\n center?: boolean;\n hoverOpacity?: number;\n marginBottom?: string;\n required?: boolean;\n title?: string;\n};\n\nconst Text: React.FC = ({\n className,\n message,\n type,\n color,\n weight,\n italic,\n upperCase,\n center,\n hoverOpacity,\n marginBottom,\n required,\n title,\n}) => (\n \n {type === 'gigantic' ? (\n

\n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n

\n ) : type === 'huge' ? (\n

\n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n

\n ) : type === 'large' ? (\n

\n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n

\n ) : type === 'big' ? (\n

\n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n

\n ) : type === 'medium' ? (\n

\n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n

\n ) : type === 'normal' ? (\n
\n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n
\n ) : type === 'small' ? (\n
\n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n
\n ) : (\n \n {required ? (\n <>\n *\n {message}\n \n ) : (\n message\n )}\n \n )}\n \n);\n\nconst getWeightForType = (type: TextType): number => {\n switch (type) {\n case 'small':\n case 'normal':\n case 'medium':\n case 'big':\n case 'gigantic':\n return theme.fontWeight.regular;\n case 'large':\n case 'huge':\n return theme.fontWeight.bold;\n default:\n return theme.fontWeight.regular;\n }\n};\n\nconst getLineHeightForType = (type: TextType): string => {\n switch (type) {\n case 'small':\n return theme.lineHeight.small;\n case 'normal':\n return theme.lineHeight.normal;\n case 'medium':\n return theme.lineHeight.medium;\n case 'big':\n return theme.lineHeight.big;\n case 'large':\n return theme.lineHeight.large;\n case 'huge':\n return theme.lineHeight.huge;\n case 'gigantic':\n return theme.lineHeight.gigantic;\n default:\n return theme.lineHeight.normal;\n }\n};\n\nconst getColorForProps = (color: string): string => {\n switch (color) {\n case 'primary':\n return theme.color.primary;\n case 'white':\n return theme.color.white;\n case 'secondary':\n return theme.color.secondary;\n case 'grey':\n return theme.color.grey;\n case 'green':\n return theme.color.green;\n case 'red':\n return theme.color.red;\n case 'blue':\n return theme.color.lightBlue;\n case 'dark':\n return theme.color.dark;\n default:\n return theme.color.dark;\n }\n};\n\n// eslint-disable-next-line\nconst Wrapper = styled.div`\n * {\n margin-bottom: ${(props): string => props.marginBottom};\n font-size: ${(props): string => props.theme.fontSize[props.type]};\n font-weight: ${(props): number =>\n props.weight ? props.weight : getWeightForType(props.type)};\n line-height: ${(props): string => getLineHeightForType(props.type)};\n color: ${(props): string => getColorForProps(props.color)};\n font-style: ${(props): string => (props.italic === true ? 'italic' : 'normal')};\n text-transform: ${(props): string => (props.upperCase ? 'uppercase' : 'initial')};\n text-align: ${(props): string => (props.center ? 'center' : 'normal')};\n display: inline;\n }\n display: inline;\n\n :hover {\n opacity: ${(props): number => props.hoverOpacity};\n }\n`;\n\nconst Paragraph = styled.p<{ marginBottom: string | undefined }>`\n margin-bottom: ${(props): string =>\n props.marginBottom ? props.marginBottom : '0.5rem'};\n`;\n\nconst Red = styled.span`\n color: ${props => props.theme.color.red};\n`;\n\nexport default Text;\n","import axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\nimport { getTokens, removeTokens, saveTokens } from '../helpers/functions';\n\ndeclare module 'axios' {\n export interface AxiosRequestConfig {\n skipAuthRefresh?: boolean;\n }\n}\n\n/* eslint-disable */\n\nabstract class HttpClient {\n protected readonly instance: AxiosInstance;\n\n protected constructor(baseURL: string, auth: boolean) {\n this.instance = axios.create({\n baseURL,\n });\n this.initializeResponseInterceptor();\n this.initializeRefreshTokenInterceptor(auth);\n }\n\n private initializeResponseInterceptor = () => {\n this.instance.interceptors.response.use(this.handleResponse, this.handleError);\n };\n\n private handleResponse = (res: AxiosResponse) => {\n if (res.status !== 401) return res.data;\n return res;\n };\n\n protected handleError = (error: any) => Promise.reject(error);\n\n private refreshAccessToken = async (): Promise => {\n const { refresh, username } = getTokens();\n if (!refresh) return '';\n const data = await this.instance.post<\n { refresh: string },\n { IdToken: string; username: string }\n >(\n 'v1/token/cognito/refresh/',\n {\n refresh,\n username,\n },\n { skipAuthRefresh: true }\n );\n saveTokens(data.IdToken, refresh, data.username);\n return `Bearer ${data.IdToken}`;\n };\n\n private initializeRefreshTokenInterceptor = (auth: boolean) => {\n if (auth) {\n this.instance.interceptors.request.use(config => {\n config.headers['Authorization'] = `Bearer ${getTokens().access}`;\n return config;\n });\n }\n\n const refreshAuthLogic = async (failedRequest: any) => {\n try {\n const token = await this.refreshAccessToken();\n failedRequest.response.config.headers['Authorization'] = token;\n return Promise.resolve();\n } catch (err) {\n removeTokens();\n location.reload();\n }\n };\n\n createAuthRefreshInterceptor(this.instance, refreshAuthLogic);\n };\n}\n\nexport default HttpClient;\n","import HttpClient from '../../utils/http-client';\nimport { createUrl } from '../../helpers/functions';\nimport {\n TSaveUserBasicData,\n TSaveUserExperienceData,\n TSaveUserQuestionaireData,\n TSaveZusData,\n TUserData,\n TSaveTaxData,\n TEarningsStats,\n TOrdersStats,\n TCompaniesStats,\n} from './types';\nimport { environmentConfig } from '../../Config';\n\nconst PATHS = {\n save: (id: string | number) => `/v1/workers/${id}/details/`,\n load: (id: string | number) => `/v1/workers/${id}/details/`,\n getEarningsStats: '/v1/statistic/earnings/',\n getOrdersStats: '/v1/statistic/orders/',\n getCompaniesStats: '/v1/statistic/companies/',\n};\n\ntype ID = string | number;\n\nclass UserAccountApi extends HttpClient {\n public constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public save = async (\n id: string | number,\n credentials:\n | TSaveUserBasicData\n | TSaveUserExperienceData\n | TSaveUserQuestionaireData\n | TSaveZusData\n | TSaveTaxData\n ): Promise =>\n this.instance.patch<\n | TSaveUserBasicData\n | TSaveUserExperienceData\n | TSaveUserQuestionaireData\n | TSaveZusData\n | TSaveTaxData\n >(PATHS.save(id), credentials);\n\n public load = async (id: ID): Promise =>\n this.instance.get(PATHS.load(id));\n\n public getEarningsStats = async (queryParrams: {\n start_date: string;\n end_date: string;\n }): Promise =>\n this.instance.get(\n createUrl(PATHS.getEarningsStats, queryParrams)\n );\n\n public getOrdersStats = async (queryParrams: {\n start_date: string;\n end_date: string;\n settled?: boolean;\n }): Promise =>\n this.instance.get(createUrl(PATHS.getOrdersStats, queryParrams));\n\n public getCompaniesStats = async (queryParrams: {\n start_date: string;\n end_date: string;\n }): Promise =>\n this.instance.get(\n createUrl(PATHS.getCompaniesStats, queryParrams)\n );\n}\n\nexport default UserAccountApi;\n","import { TNotification } from '../api/NotificationsApi';\n\nexport function getNotificationCommonData(notification: TNotification) {\n const workerName = notification.meta?.worker_profile\n ? `${notification.meta?.worker_profile.first_name} ${notification.meta?.worker_profile.last_name}`\n : '';\n\n const userName = notification.meta?.chat?.user\n ? `${notification.meta?.chat?.user.first_name} ${notification.meta?.chat?.user.last_name}`\n : '';\n\n const employerName = notification.meta?.employer_profile\n ? notification.meta?.employer_profile.company_name\n : '';\n\n const messageCompanyName =\n notification.meta?.chat?.user && notification.meta?.chat?.user.company_name\n ? ` (${notification.meta?.chat?.user.company_name})`\n : '';\n\n return {\n workerName,\n userName,\n employerName,\n messageCompanyName,\n };\n}\n","import moment from 'moment';\nimport { dateTimeFormat } from '../helpers/constants';\nimport { createUrl, getCurrentYear } from '../helpers/functions';\nimport HttpClient from '../utils/http-client';\nimport { environmentConfig } from '../Config';\n\nconst PATHS = {\n events: '/v1/calendars/events/',\n userEvents: (id: string) => `/v1/workers/${id}/calendar`,\n createEventWorker: '/v1/calendars/events/create_event_worker/',\n deleteEvent: (id: string | number) => `/v1/calendars/events/${id}/`,\n};\n\ntype CreateEventData = {\n rate: number;\n dateTimeRange: Array<{ start: string; end: string }>;\n location: {\n address?: string;\n city: string;\n zip_code: string;\n };\n distance?: string | number;\n rrule?:\n | 'FREQ=DAILY'\n | 'FREQ=WEEKLY'\n | 'FREQ=WEEKLY;INTERVAL=2'\n | 'FREQ=WEEKLY;INTERVAL=3'\n | 'FREQ=MONTHLY';\n};\n\ntype TEvent = {\n id: string;\n title: string;\n description: string;\n location: string;\n attendees: Array;\n start_date_time: string;\n end_date_time: string;\n meta: {\n speciality?: string;\n type?: string;\n company_name: string;\n status?: string;\n };\n rrule: string;\n occurrences: Array<{\n id: string;\n title: string;\n description: string;\n location: string;\n attendees: Array;\n start_date_time: string;\n end_date_time: string;\n meta: {\n company_name: string;\n };\n }>;\n status: string;\n};\n\nclass UserCalendarApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public getMyEvents = async (selectedDate?: string) =>\n this.instance.get(\n createUrl(PATHS.events, {\n start_date: '2020-01-01',\n end_date: `${selectedDate || getCurrentYear()}-12-31`,\n })\n );\n\n public getUserEvents = async (id: string, selectedYear?: string) =>\n this.instance.get(\n createUrl(PATHS.userEvents(id), {\n start_date: '2020-01-01',\n end_date: `${selectedYear || getCurrentYear()}-12-31`,\n })\n );\n\n public add = async (\n data: CreateEventData,\n successCallback: () => void,\n errorCallback: (error: any) => void\n ): Promise => {\n try {\n await this.instance.post(PATHS.createEventWorker, {\n ...data,\n start_date_time: moment(data.dateTimeRange[0].start, dateTimeFormat),\n end_date_time: moment(data.dateTimeRange[0].end, dateTimeFormat),\n });\n successCallback();\n } catch (err: any) {\n errorCallback(err?.response?.data);\n }\n };\n\n public removeEvent = async (id: string | number) =>\n this.instance.delete(PATHS.deleteEvent(id));\n}\n\nexport default UserCalendarApi;\n","import { useEffect, useContext } from 'react';\nimport { Menu as AntMenu } from 'antd';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useHistory } from 'react-router-dom';\nimport Text from '../Text';\nimport paths from '../../paths.json';\nimport { AuthContext } from '../../context/AuthContext';\nimport { ProfileContext } from '../../context/ProfileContext';\nimport { ROLES } from '../../helpers/constants';\n\nconst Menu: React.FC<{ onClickElement: () => void }> = ({ onClickElement }) => {\n const { role } = useContext(ProfileContext);\n const authContext = useContext(AuthContext);\n const history = useHistory();\n const { t } = useTranslation();\n\n return (\n \n onClickElement()}>\n \n \n \n \n onClickElement()}>\n \n \n \n \n onClickElement()}>\n \n \n \n \n {\n onClickElement();\n authContext.signOut(history);\n }}>\n \n \n \n );\n};\n\nconst StyledMenu = styled(AntMenu)`\n && {\n border-radius: 1rem;\n box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.15);\n background: white;\n padding: 0.25rem;\n\n .ant-menu-item-selected {\n background-color: transparent;\n }\n }\n\n .ant-menu-item {\n height: 1.5rem;\n display: flex;\n align-items: center;\n\n :hover {\n p {\n opacity: 0.8;\n }\n }\n }\n`;\n\nexport default Menu;\n","import { useContext, useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { Col, Row } from 'react-flexbox-grid';\nimport { useTranslation } from 'react-i18next';\nimport { Formik } from 'formik';\nimport { Button, Modal, Upload } from 'antd';\nimport * as yup from 'yup';\nimport Avatar from 'react-avatar-edit';\nimport Text from './Text';\nimport LogoPlaceholder from '../assets/logoPlaceholder.svg';\nimport useWindowDimensions from '../utils/WindowDimension';\nimport customNotification from './notification';\nimport theme from '../utils/theme';\nimport { getBase64 } from '../helpers/functions';\nimport { ProfileContext } from '../context/ProfileContext';\nimport { EmployerAccountContext } from '../context/EmployerAccountContext';\nimport PrimaryButton from './buttons/PrimaryButton';\nimport { UserAccountContext } from '../context/UserAccountContext';\nimport { TData } from '../context/EmployerContext';\nimport { TData as TDataWorker } from '../context/WorkerContext';\n\ntype ChangeAvatarModalProps = {\n userData: TData | TDataWorker;\n employer: boolean;\n};\n\nconst ChangeAvatarModal = ({ userData, employer }: ChangeAvatarModalProps) => {\n const { t } = useTranslation();\n const {\n basicData,\n saveBasicData,\n setBasicData,\n loadData: loadDataEmployer,\n clearContext: clearContextEmployer,\n } = useContext(EmployerAccountContext);\n\n const {\n personalData,\n savePersonalData,\n setPersonalData,\n loadData: loadDataUser,\n clearContext: clearContextUser,\n } = useContext(UserAccountContext);\n\n const { profileId } = useContext(ProfileContext);\n\n const { width } = useWindowDimensions();\n\n const [modalVisible, setModalVisible] = useState(false);\n const [avatar, setAvatar] = useState(basicData.logo);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const onClose = () => {\n setAvatar('');\n };\n\n useEffect(() => {\n if (profileId) {\n if (employer) {\n loadDataEmployer(`${profileId}`);\n } else {\n loadDataUser(`${profileId}`);\n }\n }\n\n return () => {\n clearContextEmployer();\n clearContextUser();\n };\n }, [profileId, userData]);\n\n const EmployerChangeLogoForm = (\n <>\n {\n setIsSubmitting(true);\n try {\n setBasicData({ ...basicData, logo: values.logo });\n await saveBasicData(profileId || '', { ...basicData, logo: values.logo });\n setIsSubmitting(false);\n } catch (error) {\n console.error('Error:', error);\n setIsSubmitting(false);\n }\n }}>\n {({ errors, handleSubmit, setFieldValue, values }) => (\n \n \n \n \n \n \n \n {\n setAvatar('');\n setFieldValue('avatar', null);\n if (file.size > 3000000) {\n customNotification({\n type: 'error',\n description: t('userDetailsForm.photoStep.maxSizeExceeded'),\n });\n } else {\n getBase64(file, (imageUrl: any) => {\n setAvatar(imageUrl);\n setFieldValue('logo', imageUrl);\n setModalVisible(true);\n customNotification({\n type: 'info',\n description: t('userDetailsForm.photoStep.addPhotoNotification'),\n });\n });\n }\n return false;\n }}\n onChange={() => null}\n listType=\"picture\"\n maxCount={1}\n showUploadList={false}>\n \n \n \n {errors.logo && }\n \n \n handleSubmit()}\n disabled={isSubmitting || !values.logo}\n />\n \n setModalVisible(false)}>\n {\n setFieldValue('logo', view);\n }}\n onClose={() => {\n onClose();\n setAvatar('');\n }}\n src={avatar}\n />\n \n \n \n )}\n \n \n );\n\n const UserChangeAvatarForm = (\n <>\n {\n try {\n setIsSubmitting(true);\n setPersonalData({ ...personalData, avatar: values.avatar });\n await savePersonalData(profileId || '', {\n ...personalData,\n avatar: values.avatar,\n });\n setIsSubmitting(false);\n } catch (error) {\n console.error('Error:', error);\n setIsSubmitting(false);\n }\n }}>\n {({ errors, handleSubmit, setFieldValue, values }) => (\n \n \n \n \n \n \n \n {\n setAvatar('');\n setFieldValue('avatar', null);\n if (file.size > 3000000) {\n customNotification({\n type: 'error',\n description: t('userDetailsForm.photoStep.maxSizeExceeded'),\n });\n } else {\n getBase64(file, (imageUrl: any) => {\n setAvatar(imageUrl);\n setFieldValue('avatar', imageUrl);\n setModalVisible(true);\n customNotification({\n type: 'info',\n description: t('userDetailsForm.photoStep.addPhotoNotification'),\n });\n });\n }\n return false;\n }}\n onChange={() => null}\n listType=\"picture\"\n maxCount={1}\n showUploadList={false}>\n \n \n \n {errors.avatar && (\n \n )}\n \n \n handleSubmit()}\n disabled={isSubmitting || !values.avatar}\n />\n \n setModalVisible(false)}>\n {\n setFieldValue('avatar', view);\n }}\n onClose={() => {\n onClose();\n setFieldValue('avatar', '');\n setAvatar('');\n }}\n src={avatar}\n />\n \n \n \n )}\n \n \n );\n\n return employer ? EmployerChangeLogoForm : UserChangeAvatarForm;\n};\n\nexport default ChangeAvatarModal;\n\nconst UploadWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 94px;\n margin-left: 1.6875rem;\n`;\n\nconst StyledText = styled(Text)`\n :hover {\n cursor: pointer;\n opacity: 0.8;\n }\n`;\n\nconst ImageWrapper = styled.div<{ src?: string }>`\n width: 5.875rem;\n height: 5.875rem;\n border-radius: 4rem;\n overflow: hidden;\n background: ${props => props.theme.color.secondary};\n background-repeat: no-repeat;\n background-size: cover;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst AvatarCircle = styled.img`\n width: 5.875rem;\n height: 5.875rem;\n border-radius: 4rem;\n object-fit: cover;\n`;\n\nconst ModalScale = styled(Modal)`\n .ant-modal-close-x,\n .ant-modal-footer,\n .ant-modal-header {\n display: none;\n };\n\n .ant-modal-body {\n display: flex;\n justify-content: center;\n align-item-center;\n padding: 0;\n\n .ant-btn-primary {\n position: absolute;\n bottom: -60px;\n font-size: 18px;\n padding: 10px;\n width: 200p;\n height: auto;\n font-weight: 600;\n };\n\n svg {\n display: none;\n }\n }\n`;\n\nconst PrimaryButtonStyled = styled(PrimaryButton)`\n right: 15px;\n bottom: 10px;\n position: absolute;\n`;\n","import { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled, { keyframes } from 'styled-components';\nimport { Dropdown, Modal } from 'antd';\nimport Text from '../Text';\nimport Menu from './Menu';\nimport Placeholder from '../../assets/avatarPlaceholder.svg';\nimport LogoPlaceholder from '../../assets/logoPlaceholder.svg';\nimport SvgIcon from '../SvgIcon';\nimport { ProfileContext } from '../../context/ProfileContext';\nimport { WorkerContext } from '../../context/WorkerContext';\nimport { EmployerContext } from '../../context/EmployerContext';\nimport { ROLES } from '../../helpers/constants';\nimport ChangeAvatarModal from '../ChangeAvatarModal';\n\nconst UserMenu: React.FC = () => {\n const { role, profileId } = useContext(ProfileContext);\n const { data: worker, getWorkerData } = useContext(WorkerContext);\n const { data: employer, getEmployerData } = useContext(EmployerContext);\n const [dropdownVisibility, setDropdownVisibility] = useState(false);\n\n const { t } = useTranslation();\n\n useEffect(() => {\n if (!profileId) return;\n if (role === ROLES.Employer && employer.company_name === '') {\n getEmployerData(profileId);\n } else if (role === ROLES.Worker && worker.last_name === '') {\n getWorkerData(profileId);\n }\n }, [role, profileId]);\n\n const getName = (userRole: ROLES | undefined) => {\n const email = localStorage.getItem('workinn-user-email');\n if (userRole === ROLES.Employer) return employer.institution || email;\n if (userRole === ROLES.Worker) {\n return worker.first_name ? `${worker.first_name} ${worker.last_name}` : email;\n }\n return email;\n };\n\n const getAvatar = (userRole: ROLES | undefined) => {\n if (userRole === ROLES.Employer) return employer.logo || LogoPlaceholder;\n if (userRole === ROLES.Worker) return worker.avatar || Placeholder;\n return Placeholder;\n };\n\n const [isOpenModal, setIsOpenModal] = useState(false);\n\n return (\n \n \n \n setIsOpenModal(true)} src={getAvatar(role)} />\n \n setIsOpenModal(false)}\n title={t('employerDetailsForm.logoStep.changeAvatarTitle')}>\n \n \n setDropdownVisibility(false)} />}\n trigger={['click']}\n onVisibleChange={state => setDropdownVisibility(state)}\n visible={dropdownVisibility}>\n \n \n \n );\n};\n\nconst ArrowIcon = styled(SvgIcon)`\n cursor: pointer;\n padding: 1rem;\n`;\n\nconst Avatar = styled.img`\n margin-left: 1rem;\n width: 50px;\n height: 50px;\n border-radius: 50%;\n object-fit: cover;\n cursor: pointer;\n`;\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`;\n\nconst AvatarWrapper = styled.div`\n position: relative;\n &::before {\n position: absolute;\n display: none;\n width: 250px;\n right: 0;\n bottom: -85px;\n border-radius: 22px;\n background-color: white;\n padding: 10px;\n content: '${props => props.hoverText}';\n opacity: 0;\n transition: opacity 0.5s ease, transform 0.5s ease;\n transform: scale(0.8);\n filter: blur(5px);\n -webkit-box-shadow: 2px 7px 24px 0px rgba(66, 68, 90, 1);\n -moz-box-shadow: 2px 7px 24px 0px rgba(66, 68, 90, 1);\n box-shadow: 2px 7px 24px 0px rgba(66, 68, 90, 1);\n }\n\n &:hover::before {\n display: block;\n opacity: 1;\n transform: scale(1);\n filter: blur(0);\n animation: ${fadeIn} 0.5s ease;\n }\n`;\n\nconst UserMenuWrapper = styled.div`\n display: flex;\n align-items: center;\n text-align: center;\n`;\n\nexport default UserMenu;\n","import { ROLES } from '../helpers/constants';\nimport paths from '../paths.json';\n\nconst getName = (location: string, role?: ROLES): string => {\n if (location === paths.mobileNotifications) {\n return 'mobileLocation.messages';\n }\n if (location === paths.mainPage) {\n return 'mobileLocation.mainPage';\n }\n if (location.startsWith(paths.profile)) {\n return role === ROLES.Employer\n ? 'mobileLocation.employerProfile'\n : 'mobileLocation.workerProfile';\n }\n if (location.startsWith(paths.dashboard)) {\n return 'mobileLocation.dashboard';\n }\n\n if (location.startsWith(paths.addOffer)) {\n return 'mobileLocation.addOffer';\n }\n if (location.startsWith(paths.calendar)) {\n return 'mobileLocation.calendar';\n }\n\n if (location.startsWith('/employers')) {\n return 'mobileLocation.companyProfile';\n }\n\n if (location.startsWith('/workers')) {\n return 'mobileLocation.candidateProfile';\n }\n\n if (location.startsWith('/employer-account/watched')) {\n return 'mobileLocation.watched';\n }\n\n if (location.startsWith('/user-account/password-change')) {\n return 'mobileLocation.passwordChange';\n }\n\n if (location.startsWith('/user-account/email-change')) {\n return 'mobileLocation.emailChange';\n }\n\n if (location.startsWith('/user-account/watched')) {\n return 'mobileLocation.watched';\n }\n\n if (location.startsWith('/user-account/language-settings')) {\n return 'mobileLocation.languageSettings';\n }\n\n if (location.startsWith('/employer-account/language-settings')) {\n return 'mobileLocation.languageSettings';\n }\n\n if (location.startsWith('/user-account/notification-settings')) {\n return 'mobileLocation.notificationsSettings';\n }\n\n if (location.startsWith('/employer-account/notification-settings')) {\n return 'mobileLocation.notificationsSettings';\n }\n\n if (location.startsWith('/user-account/deactivation-account')) {\n return 'mobileLocation.deactivationAccount';\n }\n\n if (location.startsWith('/employer-account/deactivation-account')) {\n return 'mobileLocation.deactivationAccount';\n }\n\n if (location.startsWith(paths.jobOffers) && role === ROLES.Employer) {\n return 'mobileLocation.myOffers';\n }\n\n if (location.startsWith(paths.jobOffers) && role === ROLES.Worker) {\n return 'mobileLocation.jobOffers';\n }\n\n if (location.startsWith('/job-offers/')) {\n return 'mobileLocation.offerDetails';\n }\n\n if (location.startsWith('/employer-account/email-change')) {\n return 'mobileLocation.emailChange';\n }\n\n if (location.startsWith('/employer-account/password-change')) {\n return 'mobileLocation.passwordChange';\n }\n\n if (location.startsWith('/employer-account/settings')) {\n return 'mobileLocation.settings';\n }\n\n if (location.startsWith('/employer-account/candidate-catalogue')) {\n return 'mobileLocation.candidateCatalogue';\n }\n\n if (location.startsWith('/employer-account')) {\n return 'mobileLocation.account';\n }\n\n if (location.startsWith('/user-account/settings')) {\n return 'mobileLocation.settings';\n }\n\n if (location.startsWith('/user-account')) {\n return 'mobileLocation.account';\n }\n\n if (location.startsWith('/my-workin')) {\n return 'mobileLocation.myWorkinn';\n }\n return 'mobileLocation.default';\n};\n\nexport default getName;\n","import { useContext, useEffect, useState } from 'react';\nimport { Layout, Menu, Dropdown, Checkbox, Button, Tooltip } from 'antd';\nimport { DeleteOutlined, MailOutlined } from '@ant-design/icons';\nimport moment from 'moment';\nimport styled from 'styled-components';\nimport { useHistory, Link } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport SvgIcon, { IconType } from './SvgIcon';\nimport THEME from '../utils/theme';\nimport Text from './Text';\nimport paths from '../paths.json';\nimport Tabs from './profile/Tabs';\nimport { AuthContext } from '../context/AuthContext';\nimport { ProfileContext } from '../context/ProfileContext';\nimport { FavoriteContext } from '../context/FavoritesContext';\nimport useWindowDimensions from '../utils/WindowDimension';\nimport UserMenu from './userMenu/UserMenu';\nimport getName from '../utils/NavigationName';\nimport { ROLES } from '../helpers/constants';\nimport { WorkerContext } from '../context/WorkerContext';\nimport { EmployerContext } from '../context/EmployerContext';\nimport { NotificationsContext } from '../context/NotificationsContext';\nimport EmptyList from './EmptyList';\nimport { TNotification, TNotificationsResponse } from '../api/NotificationsApi';\nimport { getNotificationCommonData } from '../helpers/NotificationsUtils';\nimport Modal from './Modal';\n\nconst { Header, Sider } = Layout;\n\ntype MenuItemProps = {\n type: IconType;\n urlPrefix?: string;\n messagesNumber?: number;\n};\n\nconst menuMessages: { [key: string]: string } = {\n dashboard: 'mainMenuItems.dashboard',\n calendar: 'mainMenuItems.calendar',\n myWorkinn: 'mainMenuItems.myWorkinn',\n jobs: 'mainMenuItems.jobs',\n myOffers: 'mainMenuItems.myOffers',\n logout: 'mainMenuItems.logout',\n profile: 'mainMenuItems.account',\n chat: 'mainMenuItems.chat',\n candidateCatalogue: 'mainMenuItems.candidateCatalogue',\n companiesCatalogue: 'mainMenuItems.companiesCatalogue',\n};\n\nconst MenuItem: React.FC = ({ type, urlPrefix }) => {\n const history = useHistory();\n const isActive = urlPrefix\n ? history.location.pathname.toLowerCase().startsWith(urlPrefix.toLowerCase())\n : false;\n const { t } = useTranslation();\n return (\n {\n if (urlPrefix) {\n history.push(`${urlPrefix}`);\n }\n }}>\n \n \n \n \n \n );\n};\n\nconst SvgDesktopIconWrapper = styled.div<{ isActive: boolean }>`\n background: ${(props): string =>\n props.isActive ? 'rgba(255, 255, 255, 0.15)' : 'rgba(255, 255, 255, 0)'};\n border-radius: 2rem;\n width: 52px;\n height: 52px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst MenuItemWrapper = styled.li<{ isActive: boolean }>`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n /* height: 5rem; */\n margin-top: 0.2rem;\n margin-bottom: 0.2rem;\n padding-left: 5px;\n padding-right: 5px;\n div {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n h6 {\n font-size: ${THEME.fontSize.small};\n color: ${(props): string => props.theme.color.white};\n text-align: center;\n line-height: 1.4;\n }\n :hover {\n cursor: pointer;\n }\n`;\n\nconst MobileMenuItem: React.FC = ({ type, urlPrefix, messagesNumber }) => {\n const history = useHistory();\n const isActive = urlPrefix\n ? history.location.pathname.toLowerCase().startsWith(urlPrefix.toLowerCase())\n : false;\n const { t } = useTranslation();\n return (\n {\n if (urlPrefix) {\n history.push(`${urlPrefix}`);\n }\n }}>\n \n \n \n \n {messagesNumber && messagesNumber > 0 ? (\n \n {messagesNumber}\n \n ) : null}\n \n );\n};\n\nconst MobileMessagesNumberWrapper = styled.div<{ isActive: boolean }>`\n position: absolute;\n width: 15px;\n height: 15px;\n align-items: center;\n justify-content: center;\n display: flex;\n top: ${props => (props.isActive ? '5px' : '12px')};\n right: ${props => (props.isActive ? '20px' : '1px')};\n border-radius: 250px;\n background: #ff683e;\n user-select: none;\n color: white;\n font-size: 10px;\n font-weight: 700;\n`;\n\nconst MobileMenuItemWrapper = styled.li<{ isActive: boolean }>`\n position: relative;\n display: flex;\n justify-content: ${(props): string => (props.isActive ? 'flex-end' : 'center')};\n align-items: center;\n flex-direction: column;\n height: 100%;\n h6 {\n display: ${(props): string => (props.isActive ? 'block' : 'none')};\n font-size: ${THEME.fontSize.small};\n line-height: 1.4;\n color: ${(props): string => props.theme.color.white};\n }\n :hover {\n cursor: pointer;\n }\n`;\n\nconst SvgWrapper = styled.div<{ isActive: boolean }>`\n background: ${(props): string =>\n props.isActive ? 'rgba(255, 255, 255, 0.15)' : 'rgba(255, 255, 255, 0)'};\n border-radius: 2rem;\n width: 36px;\n height: 36px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const onNotificationClick = (notification: TNotification, history: any) => {\n switch (notification.type) {\n case 'WORKER_VERIFICATION_REMINDER':\n return undefined;\n\n case 'MESSAGE_FROM_USER':\n return notification.meta?.chat?.chat_arn\n ? history.push(`/inbox/${encodeURIComponent(notification.meta?.chat?.chat_arn)}`)\n : undefined;\n\n case 'SETTLEMENT_REMINDER':\n case 'IMPROVE_SETTLEMENT_REMINDER':\n case 'RESIGNATION_REQUEST':\n case 'SETTLEMENT_TO_CONFIRMED':\n case 'CORRECTED_SETTLEMENT':\n return history.push(paths.myWorkinn);\n\n case 'JOB_OFFER_APPLICATION':\n return notification.meta?.worker_profile?.id\n ? history.push(`/workers/${notification.meta?.worker_profile?.id}`)\n : undefined;\n\n case 'MATCHING_WORKERS':\n case 'JOB_OFFER_RESIGNATION':\n case 'INVITATION_TO_WORK':\n case 'SEVEN_DAYS_BEFORE':\n case 'ONE_DAYS_BEFORE':\n case 'ACCEPTANCE_APPLICATION':\n case 'CANCELLATION_APPLICATION':\n case 'RESIGNATION_REQUEST_ACCEPT':\n case 'RESIGNATION_REQUEST_REJECT':\n return notification.meta?.job_offer?.id\n ? history.push(`/job-offers/${notification.meta?.job_offer?.id}`)\n : undefined;\n\n case 'MATCHING_JOB_OFFER':\n return history.push({\n pathname: `/job-offers/${notification.meta?.job_offer?.id}`,\n state: { matched: true },\n });\n case 'OPINION_FROM_WORKER':\n case 'OPINION_FROM_EMPLOYER':\n return history.push(paths.profile);\n default:\n return undefined;\n }\n};\n\nexport const getDiffMessage = (diff: {\n days: number;\n hours: number;\n minutes: number;\n}) => {\n if (diff.days !== 0) {\n return { value: diff.days, messageKey: 'notifications.daysAgo' };\n }\n if (diff.hours !== 0) {\n return { value: diff.hours, messageKey: 'notifications.hoursAgo' };\n }\n return { value: diff.minutes, messageKey: 'notifications.minutesAgo' };\n};\n\nconst StyledLink = styled(Link)`\n width: 100%;\n justify-content: center;\n align-items: center;\n display: flex;\n padding: 20px;\n`;\n\nconst ChatMenu: React.FC = () => {\n const {\n getNotifications,\n notifications: notificationsResponse,\n setNotificationAsSeen,\n setNotificationDelete,\n } = useContext(NotificationsContext);\n\n const { t } = useTranslation();\n const history = useHistory();\n\n useEffect(() => {\n getNotifications();\n }, []);\n\n const messagesNumber = notificationsResponse.filter(\n notification => notification.seen === false\n ).length;\n\n const currentLang = localStorage.getItem('i18nextLng')?.toUpperCase();\n\n const translatedProffession = (event: TNotification) =>\n event.meta?.job_offer?.speciality?.translations?.find(\n translation => translation.language_tag === currentLang\n )?.translation;\n\n const [activeTab, setActiveTab] = useState('NOTIFICATIONS');\n const [messagesIds, setMessagesIds] = useState([]);\n const [uncheckConfirmModal, setUncheckConfirmModal] = useState(false);\n const [deleteConfirmModal, setDeleteConfirmModal] = useState(false);\n\n const handleAddId = (\n e: React.MouseEvent,\n notificationId: string\n ) => {\n e.stopPropagation();\n e.preventDefault();\n setMessagesIds([...messagesIds, notificationId]);\n };\n\n const handleRemoveId = (\n e: React.MouseEvent,\n notificationId: string\n ) => {\n e.stopPropagation();\n e.preventDefault();\n setMessagesIds(messagesIds.filter(id => id !== notificationId));\n };\n\n const handleIsChecked = (itemId: string) => messagesIds.includes(itemId);\n\n const handleCheckAll = (\n e: React.MouseEvent,\n notifications: TNotification[],\n clearArray: boolean\n ) => {\n e.stopPropagation();\n e.preventDefault();\n\n const allNotificationsIds = notifications.map(({ id }) => id);\n\n if (clearArray) {\n setMessagesIds([]);\n } else {\n setMessagesIds(allNotificationsIds);\n }\n };\n\n const returnNotifications = (notifications: TNotificationsResponse) => (\n <>\n {notifications.length === 0 ? (\n \n \n \n ) : (\n <>\n \n {notifications.length === messagesIds.length ? (\n handleCheckAll(e, notifications, true)}>\n {t('notifications.uncheckAll')}\n \n ) : (\n handleCheckAll(e, notifications, false)}>\n {t('notifications.checkAll')}\n \n )}\n {messagesIds.length > 0 && (\n
\n \n setUncheckConfirmModal(true)} />\n \n \n setDeleteConfirmModal(true)} />\n \n
\n )}\n {\n setNotificationAsSeen(messagesIds);\n setUncheckConfirmModal(false);\n setMessagesIds([]);\n }}\n onCancel={() => {\n setUncheckConfirmModal(false);\n setMessagesIds([]);\n }}\n okMessage={t('global.confirm')}\n />\n {\n setNotificationDelete(messagesIds);\n setDeleteConfirmModal(false);\n setMessagesIds([]);\n }}\n onCancel={() => {\n setDeleteConfirmModal(false);\n setMessagesIds([]);\n }}\n okMessage={t('global.confirm')}\n />\n
\n\n {notifications.map(notification => {\n const now = moment();\n const diff = moment.duration(now.diff(moment(notification.timestamp)));\n\n const diffMessage = getDiffMessage({\n hours: diff.hours(),\n minutes: diff.minutes(),\n days: diff.days(),\n });\n\n const avatar = (() => {\n switch (notification.type) {\n case 'JOB_OFFER_APPLICATION':\n case 'RESIGNATION_REQUEST':\n return notification?.meta?.worker_profile?.avatar;\n\n case 'INVITATION_TO_WORK':\n case 'ACCEPTANCE_APPLICATION':\n return notification?.meta?.employer_profile?.logo;\n\n case 'MESSAGE_FROM_USER':\n return notification?.meta?.chat?.user?.avatar || undefined;\n\n default:\n return undefined;\n }\n })();\n\n const { userName, workerName, employerName, messageCompanyName } =\n getNotificationCommonData(notification);\n\n const offerName = notification.meta?.job_offer\n ? t('notifications.offerTitle', {\n speciality: translatedProffession(notification),\n companyName: notification.meta?.job_offer.institution,\n })\n : '';\n\n return (\n {\n onNotificationClick(notification, history);\n if (!notification.seen) {\n setNotificationAsSeen([notification.id]);\n }\n }}>\n {avatar ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n \n \n {\n if (handleIsChecked(notification.id)) {\n handleRemoveId(e, notification.id);\n } else {\n handleAddId(e, notification.id);\n }\n }}\n checked={handleIsChecked(notification.id)}\n />\n \n );\n })}\n \n )}\n \n );\n\n return (\n \n \n \n {activeTab === 'NOTIFICATIONS' ? (\n returnNotifications(\n notificationsResponse.filter(el => el.type !== 'MESSAGE_FROM_USER')\n )\n ) : (\n <>\n {returnNotifications(\n notificationsResponse.filter(el => el.type === 'MESSAGE_FROM_USER')\n )}\n \n \n \n \n )}\n \n }\n trigger={['click']}>\n \n \n {messagesNumber > 0 ? (\n \n \n \n ) : null}\n \n );\n};\n\nconst ButtonAndIconWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 20px;\n`;\n\nconst StyledDeleteOutlined = styled(DeleteOutlined)`\n background-color: ${THEME.color.primary};\n color: ${THEME.color.white};\n border-radius: 50%;\n padding: 8px;\n cursor: pointer;\n margin-left: 5px;\n\n :hover {\n opacity: 0.6;\n }\n\n svg {\n width: 26px;\n height: 26px;\n }\n`;\n\nconst StyledMailOutlined = styled(MailOutlined)`\n background-color: ${THEME.color.primary};\n color: ${THEME.color.white};\n border-radius: 50%;\n padding: 8px;\n cursor: pointer;\n\n :hover {\n opacity: 0.6;\n }\n\n svg {\n width: 26px;\n height: 26px;\n }\n`;\n\nconst StyledPrimaryButton = styled(Button)`\n margin: 10px;\n border-radius: 2rem;\n color: ${THEME.color.white};\n background-color: ${THEME.color.primary};\n border: none;\n font-weight: 600;\n\n :hover,\n :focus {\n color: ${THEME.color.white};\n background: ${THEME.color.primary};\n border-color: none;\n }\n`;\n\nconst StyledCheckbox = styled(Checkbox)`\n .ant-checkbox-checked::after {\n border-radius: 50%;\n }\n .ant-checkbox-inner {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n\n ::after {\n left: 34%;\n }\n }\n`;\n\nconst LogoAvatar = styled.img`\n width: 100%;\n height: 100%;\n object-fit: cover;\n`;\n\nconst ImageWrapper = styled.div`\n border-radius: 30px;\n overflow: hidden;\n width: 30px;\n height: 30px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst NotificationContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-left: 15px;\n width: calc(100% - 40px);\n`;\n\nconst NotificationItem = styled.div<{ seen: boolean }>`\n border-bottom: 1px solid ${props => props.theme.color.grey};\n padding: 10px 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n min-height: 54px;\n opacity: ${props => (props.seen ? 0.4 : 1)};\n :hover {\n cursor: pointer;\n opacity: 0.8;\n }\n`;\n\nconst NotificationsWrapper = styled.div`\n border-radius: 20px;\n width: 450px;\n padding-top: 10px;\n min-height: 200px;\n max-height: 500px;\n overflow: hidden;\n overflow-y: auto;\n box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);\n background: ${props => props.theme.color.white};\n`;\n\nconst ChatMenuWrapper = styled.div`\n position: relative;\n margin-right: 30px;\n cursor: pointer;\n`;\n\nconst ChatNumberWrapper = styled.div`\n position: absolute;\n width: 22px;\n height: 22px;\n align-items: center;\n justify-content: center;\n display: flex;\n top: -5px;\n right: -12px;\n border-radius: 250px;\n background: #ff683e;\n user-select: none;\n`;\n\nconst PanelLayout: React.FC = ({ ...props }) => {\n const authContext = useContext(AuthContext);\n const history = useHistory();\n const { t } = useTranslation();\n const { width } = useWindowDimensions();\n\n const { role, setUserRole, profileId } = useContext(ProfileContext);\n const { getFavorites } = useContext(FavoriteContext);\n\n const { data: workerData, getWorkerData } = useContext(WorkerContext);\n const { data: employerData, getEmployerData } = useContext(EmployerContext);\n\n useEffect(() => {\n if (!profileId) return;\n if (role === ROLES.Employer && employerData.company_name === '') {\n getEmployerData(profileId);\n } else if (role === ROLES.Worker && workerData.last_name === '') {\n getWorkerData(profileId);\n }\n }, [role, profileId]);\n\n useEffect(() => {\n if (!role) {\n setUserRole();\n getFavorites();\n }\n }, [role]);\n\n const { getNotifications, notifications } = useContext(NotificationsContext);\n\n useEffect(() => {\n moment.locale(localStorage.getItem('i18nextLng') || 'pl');\n getNotifications();\n }, []);\n\n const messagesNumber = notifications.filter(\n notification => notification.seen === false\n ).length;\n\n const { earnings, getEarnings } = useContext(WorkerContext);\n const { workers, getWorkers } = useContext(EmployerContext);\n\n const { salary } = earnings;\n const expenses = workers.salary;\n\n useEffect(() => {\n if (profileId) {\n getEarnings();\n }\n if (profileId && role === ROLES.Employer) {\n getWorkers();\n }\n }, [profileId]);\n\n return (\n <>\n {width > THEME.screenWidth.sm ? (\n \n \n \n \n \n \n \n \n {role === ROLES.Employer ? (\n \n ) : (\n \n )}\n \n \n {role === ROLES.Worker && (\n \n )}\n \n authContext.signOut(history)}>\n \n \n \n \n \n \n {history.location.pathname !== paths.dashboard ? (\n history.goBack()} />\n ) : (\n
\n )}\n \n \n \n \n \n \n {props.children}\n \n \n \n ) : (\n \n \n \n {history.location.pathname !== paths.dashboard && (\n history.goBack()} />\n )}\n \n {history.location.pathname === paths.dashboard ? (\n \n \n \n \n {role === ROLES.Employer ? (\n \n ) : (\n \n )}\n \n ) : (\n t(getName(history.location.pathname, role as ROLES))\n )}\n \n
\n \n {props.children}\n \n \n \n {role === ROLES.Employer ? (\n \n ) : (\n \n )}\n \n \n \n \n {role === ROLES.Worker && (\n \n )}\n \n \n )}\n \n );\n};\n\nconst DashbordBadgeWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 2.625rem;\n height: 2.625rem;\n margin-right: 1rem;\n border-radius: 2rem;\n background: rgba(255, 255, 255, 0.15);\n`;\n\nconst FlexRow = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst MobileNavName = styled.div`\n position: absolute;\n left: 50%;\n transform: translate(-50%, 0);\n font-size: 18px;\n font-weight: 600;\n`;\n\nconst MobileArrow = styled(SvgIcon)`\n margin-left: 1rem;\n cursor: pointer;\n padding: 1rem;\n`;\n\nconst ContentWrapper = styled(Layout.Content)`\n max-width: 1344px;\n margin-left: auto;\n margin-right: auto;\n padding: 3rem 3.5rem 5rem 3.5rem;\n width: 100%;\n`;\n\nconst ArrowBack = styled(SvgIcon)`\n cursor: pointer;\n`;\n\nconst MenuWrapper = styled.div`\n width: 100%;\n max-width: 1344px;\n margin-left: auto;\n margin-right: auto;\n display: flex;\n justify-content: space-between;\n padding: 0 3.5rem 0 3.5rem;\n align-items: center;\n`;\n\nconst Screen = styled.div`\n height: calc(100% - 66px);\n`;\n\nconst ChildrenWrapper = styled.div`\n background: ${THEME.color.white};\n min-height: calc(100vh - 146px);\n height: calc(100% - 146px);\n border-top-left-radius: 2.1875rem;\n border-top-right-radius: 2.1875rem;\n display: flex;\n /* align-items: center; */\n justify-content: center;\n`;\n\nconst Navigator = styled.div`\n height: 80px;\n color: ${THEME.color.white};\n display: flex;\n justify-content: start;\n align-items: center;\n`;\n\nconst MobileStyledMenu = styled(Menu)`\n background: ${THEME.color.primary};\n border: 0px;\n display: flex;\n position: sticky;\n bottom: 0;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n height: 66px;\n z-index: 2;\n`;\n\nconst MobileLayoutWrapper = styled.div`\n background: ${THEME.color.primary};\n`;\n\nconst LayoutWrapper = styled.div`\n #components-layout-demo-custom-trigger .trigger {\n padding: 0 24px;\n font-size: ${THEME.fontSize.big};\n line-height: 64px;\n cursor: pointer;\n transition: color 0.3s;\n }\n\n #components-layout-demo-custom-trigger .trigger:hover {\n color: #1890ff;\n }\n\n #components-layout-demo-custom-trigger .logo {\n height: 32px;\n margin: 16px;\n background: rgba(255, 255, 255, 0.3);\n }\n\n .site-layout .site-layout-background {\n background: ${THEME.color.white};\n }\n .ant-layout-sider-children {\n height: 100vh;\n }\n`;\n\nconst StyledHeader = styled(Header)`\n background: ${THEME.color.white};\n box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.15);\n padding: 0;\n height: 4.75rem;\n display: flex;\n justify-content: flex-end;\n position: sticky !important;\n top: 0;\n z-index: 100;\n`;\n\nconst LogoWrapper = styled.div`\n margin-top: 2.375rem;\n display: flex;\n justify-content: center;\n`;\n\nconst LogoutWrapper = styled.div`\n margin-bottom: 6.25rem;\n display: flex;\n justify-content: center;\n`;\n\nconst StyledMenu = styled(Menu)`\n background: ${THEME.color.primary};\n border: 0px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledSider = styled(Sider)`\n background: ${(props): string => props.theme.color.primary};\n max-width: 6rem;\n min-width: 6rem;\n width: 6rem;\n position: sticky !important;\n top: 0;\n height: 100vh;\n overflow: auto;\n\n .ant-layout-sider-children {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n`;\n\nexport default PanelLayout;\n","import { createUrl } from '../helpers/functions';\nimport HttpClient from '../utils/http-client';\nimport { environmentConfig } from '../Config';\n\nconst PATHS = {\n companies: '/v1/employers/',\n};\n\nexport type TCompany = {\n id: number;\n logo?: string;\n company_name: string;\n institution?: string;\n city: string;\n job_offer_count: string;\n};\n\nexport type TCompaniesResponse = {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n};\n\nexport type TCompaniesQueryParams = {\n page?: number;\n page_size?: number;\n distance?: string;\n city_lng?: number;\n city_lat?: number;\n city?: string;\n};\n\nclass CompaniesApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public get = async (queryParams?: TCompaniesQueryParams): Promise =>\n this.instance.get(createUrl(PATHS.companies, queryParams));\n}\n\nexport default CompaniesApi;\n","import { createContext, useState } from 'react';\nimport CompaniesApi, { TCompany, TCompaniesQueryParams } from '../api/Companies';\n\ntype CompaniesContextState = {\n loading: boolean;\n errorMessage: string;\n updateData: (queryParams?: TCompaniesQueryParams) => void;\n page: number;\n params: TCompaniesQueryParams;\n changePage: (newPage: number) => void;\n data: {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n };\n clearContext: () => void;\n};\n\nconst companiesContextInitialState: CompaniesContextState = {\n loading: false,\n errorMessage: '',\n updateData: () => {},\n changePage: () => {},\n page: 1,\n params: {},\n data: {\n count: 0,\n next: null,\n previous: null,\n results: [],\n },\n clearContext: () => {},\n};\n\nconst api = new CompaniesApi();\n\nexport const CompaniesContext = createContext(\n companiesContextInitialState\n);\n\nconst CompaniesContextProvider: React.FC = ({ children }) => {\n const [loading, setLoading] = useState(\n companiesContextInitialState.loading\n );\n const [errorMessage, setErrorMessage] = useState(\n companiesContextInitialState.errorMessage\n );\n const [page, changePage] = useState(\n companiesContextInitialState.page\n );\n const [data, setData] = useState(\n companiesContextInitialState.data\n );\n const [params, setParams] = useState(\n companiesContextInitialState.params\n );\n\n const updateData = async (queryParams?: TCompaniesQueryParams) => {\n setLoading(true);\n const offersData = await api.get({\n ...queryParams,\n page_size: queryParams?.page_size || 9,\n });\n if (queryParams?.page) changePage(queryParams.page);\n setData(offersData);\n setParams(queryParams || {});\n setLoading(false);\n };\n\n const clearContext = () => {\n setData(companiesContextInitialState.data);\n setParams(companiesContextInitialState.params);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default CompaniesContextProvider;\n","import moment from 'moment';\nimport { dateTimeFormat } from '../helpers/constants';\nimport { createUrl } from '../helpers/functions';\nimport HttpClient from '../utils/http-client';\nimport { environmentConfig } from '../Config';\nimport { SpecialitieType, TranslationSkills } from '../context/WorkerContext';\n\nconst PATHS = {\n myOffers: '/v1/offers/my/',\n};\n\nexport type TWorker = {\n worker_profile: {\n avatar: string;\n id: number;\n first_name: string;\n rating: null;\n rating_count: number;\n last_name: string;\n };\n status: TWorkerStatus;\n};\n\nexport enum TWorkerStatus {\n candidate = 'CANDIDATE',\n confirmed = 'CONFIRMED',\n forSettlement = 'FOR_SETTLEMENT',\n settled = 'SETTLED',\n unsettled = 'UNSETTLED',\n notCome = 'WORKER_NOT_COME',\n settlementToImprove = 'SETTLEMENT_TO_IMPROVED',\n settlementSent = 'SETTLEMENT_SENT',\n executed = 'EXECUTED',\n rejected = 'REJECTED',\n}\n\nexport type TOffer = {\n id: number;\n title: string;\n event_dates: Array>;\n location: {\n city: string;\n address: string;\n };\n speciality: SpecialitieType;\n abilities: TranslationSkills[];\n contents: string;\n requirements: string;\n hourly_rate: string;\n number_of_vacancies: number;\n number_of_workers_needed?: number;\n compatible: boolean;\n applied: boolean;\n can_application: {\n status: boolean;\n reasons?: Array;\n };\n employer_profile: number;\n created_at: string;\n logo?: string;\n company_name?: string;\n status?: string;\n workers?: Array;\n can_send_opinion?: boolean;\n can_open_settlement?: boolean;\n};\n\nexport type TData = {\n hourly_rate: number;\n number_of_vacancies: number;\n dateTimeRange: Array<{ start: string; end: string }>;\n location: string | { city: string; address: string; zip_code: string };\n speciality: string;\n abilities: TranslationSkills[];\n contents: string;\n sex?: string;\n requirements?: string;\n};\n\nexport type TOffersResponse = {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n};\n\nexport type TOffersQueryParams = {\n search?: string;\n ordering?: string;\n page?: number;\n page_size?: number;\n rate_min?: number;\n rate_max?: number;\n speciality?: Array;\n\n distance?: string;\n city_lng?: number;\n city_lat?: number;\n};\n\nexport type TMyOffersQueryParams = {\n page?: number;\n page_size?: number;\n status?: string | Array;\n};\n\nclass OffersApi extends HttpClient {\n constructor() {\n super(environmentConfig.REACT_APP_API_URL || '', true);\n }\n\n public getMyOffers = async (queryParams?: any) =>\n this.instance.get(createUrl(PATHS.myOffers, queryParams));\n}\n\nexport default OffersApi;\n","import { createContext, useState } from 'react';\nimport EmployerCalendarApi from '../api/EmployerCalendarApi';\nimport { TOffer } from './OffersContext';\n\nexport type TEmployerCalendarContextState = {\n loading: boolean;\n offers: {\n count: number;\n next: string | null;\n previous: string | null;\n results: Array;\n };\n getOffers: () => void;\n};\n\nexport const employerCalendarContextDefaultState: TEmployerCalendarContextState = {\n loading: false,\n offers: { count: 0, next: null, previous: null, results: [] },\n getOffers: () => {},\n};\n\nexport const EmployerCalendarContext = createContext(\n employerCalendarContextDefaultState\n);\n\nconst api = new EmployerCalendarApi();\n\nconst EmployerCalendarContextProvider: React.FC = ({ children }) => {\n const [offers, setOffers] = useState(\n employerCalendarContextDefaultState.offers\n );\n\n const [loading, setLoading] = useState(\n employerCalendarContextDefaultState.loading\n );\n\n const getOffers = async () => {\n setLoading(true);\n const offersData = await api.getMyOffers();\n setOffers(offersData);\n setLoading(false);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default EmployerCalendarContextProvider;\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport en from './locales/en.json';\nimport pl from './locales/pl.json';\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n lng: localStorage.getItem('i18nextLng') || 'pl',\n fallbackLng: 'en',\n resources: {\n en,\n pl,\n },\n debug: true,\n interpolation: {\n escapeValue: false,\n },\n react: {\n useSuspense: false,\n },\n });\n\nexport default i18n;\n","import styled from 'styled-components';\n\nexport type IconType =\n | 'dashboard'\n | 'calendar'\n | 'myWorkinn'\n | 'jobs'\n | 'myOffers'\n | 'logout'\n | 'logo'\n | 'chat'\n | 'greyChat'\n | 'pointCircle'\n | 'whiteXMark'\n | 'blackXMark'\n | 'waterMark'\n | 'person'\n | 'profile'\n | 'dashboardOrders'\n | 'dashboardApplications'\n | 'dashboardEarnings'\n | 'dashboardNewOffers'\n | 'workinnPin'\n | 'profileStar'\n | 'shareLocation'\n | 'circleClose'\n | 'circleFacebookShare'\n | 'circleLinkedinShare'\n | 'circleWorkinnLogo'\n | 'arrowDown'\n | 'arrowBack'\n | 'arrowBackMobile'\n | 'eventDate'\n | 'location'\n | 'salary'\n | 'blankStar'\n | 'filledStar'\n | 'blackXMark'\n | 'warningModal'\n | 'successModal'\n | 'infoModal'\n | 'calendarIcon'\n | 'pinIcon'\n | 'salaryIcon'\n | 'filter'\n | 'arrowRight'\n | 'emptyStar'\n | 'filledStar'\n | 'moreIcon'\n | 'threeDots'\n | 'emptyStar'\n | 'dot'\n | 'work'\n | 'smallWork'\n | 'workinNotificationLogo'\n | 'accountVerifiedBadge'\n | 'candidateCatalogue'\n | 'companiesCatalogue';\n\nconst icons = {\n accountVerifiedBadge: (\n \n \n \n \n \n \n ),\n workinNotificationLogo: (\n \n \n \n \n ),\n smallWork: (\n \n \n \n \n ),\n work: (\n \n \n \n \n ),\n moreIcon: (\n \n \n \n \n \n ),\n emptyStar: (\n \n \n \n ),\n filledStar: (\n \n \n \n ),\n arrowRight: (\n \n \n \n ),\n infoModal: (\n \n \n \n \n ),\n successModal: (\n \n \n \n \n ),\n warningModal: (\n \n \n \n \n ),\n person: (\n \n \n \n ),\n chat: (\n \n \n \n ),\n greyChat: (\n \n \n \n \n ),\n waterMark: (\n \n \n \n \n ),\n pointCircle: (\n \n \n \n ),\n profile: (\n \n \n \n ),\n dashboard: (\n \n \n \n ),\n calendar: (\n \n \n \n ),\n myWorkinn: (\n \n \n \n ),\n jobs: (\n \n \n \n ),\n myOffers: (\n \n \n \n ),\n whiteXMark: (\n \n \n \n ),\n blackXMark: (\n \n \n \n ),\n logout: (\n \n \n \n \n \n ),\n logo: (\n \n \n \n \n ),\n dashboardOrders: (\n \n \n \n ),\n dashboardApplications: (\n \n \n \n ),\n dashboardEarnings: (\n \n \n \n ),\n dashboardNewOffers: (\n \n \n \n ),\n workinnPin: (\n \n \n \n \n \n ),\n profileStar: (\n \n \n \n ),\n shareLocation: (\n \n \n \n \n ),\n circleClose: (\n \n \n \n \n ),\n circleFacebookShare: (\n \n \n \n \n ),\n circleLinkedinShare: (\n \n \n \n \n ),\n circleWorkinnLogo: (\n \n \n \n \n \n ),\n arrowDown: (\n \n \n \n ),\n arrowBack: (\n \n \n \n ),\n arrowBackMobile: (\n \n \n \n ),\n eventDate: (\n \n \n \n \n \n \n \n ),\n location: (\n \n \n \n \n \n ),\n salary: (\n \n \n \n \n \n \n ),\n blankStar: (\n \n \n \n ),\n calendarIcon: (\n \n \n \n \n \n \n \n ),\n pinIcon: (\n \n \n \n \n \n ),\n salaryIcon: (\n \n \n \n \n \n \n ),\n filter: (\n \n \n \n \n \n \n ),\n threeDots: (\n \n \n \n \n \n ),\n dot: (\n \n \n \n ),\n candidateCatalogue: (\n \n \n \n \n \n \n \n \n \n ),\n companiesCatalogue: (\n \n \n \n \n \n \n \n \n \n ),\n};\n\ntype IconProps = {\n type: IconType;\n className?: string;\n onClick?: (event: React.MouseEvent) => void;\n};\n\nconst SvgIcon: React.FC = ({ type, className, onClick }) => (\n \n {icons[type]}\n \n);\n\nconst Wrapper = styled.div`\n display: flex;\n`;\n\nexport default SvgIcon;\n","import React from 'react';\nimport { Redirect, Route, RouteProps } from 'react-router';\nimport paths from '../paths.json';\nimport { getTokens } from '../helpers/functions';\n\nconst ProtectedRoute: React.FC = props => {\n if (!getTokens().access) {\n return ;\n }\n return ;\n};\n\nexport default ProtectedRoute;\n","import { createContext, useState, useEffect } from 'react';\nimport ProfileApi from '../api/Profile';\nimport { ROLES } from '../helpers/constants';\nimport { getTokens } from '../helpers/functions';\n\nexport type TProfileContextState = {\n loading: boolean;\n role: ROLES | undefined;\n profileId: number | undefined;\n profileCompleted?: boolean;\n profileVerified?: boolean;\n setUserRole: () => void;\n clearContext: () => void;\n setProfileCompleted: (arg: boolean) => void;\n};\n\nconst ProfileContextDefaultValues = {\n loading: false,\n role: undefined,\n profileId: undefined,\n profileCompleted: false,\n profileVerified: false,\n setUserRole: () => {},\n clearContext: () => {},\n setProfileCompleted: () => {},\n};\n\nexport const ProfileContext = createContext(\n ProfileContextDefaultValues\n);\n\nconst api = new ProfileApi();\n\nconst ProfileContextProvider: React.FC = ({ children }) => {\n const [loading, setLoading] = useState(\n ProfileContextDefaultValues.loading\n );\n const [role, setRole] = useState(\n ProfileContextDefaultValues.role\n );\n const [profileId, setProfileId] = useState(\n ProfileContextDefaultValues.profileId\n );\n const [profileCompleted, setProfileCompleted] = useState<\n TProfileContextState['profileCompleted']\n >(ProfileContextDefaultValues.profileCompleted);\n\n const [profileVerified, setProfileVerified] = useState<\n TProfileContextState['profileVerified']\n >(ProfileContextDefaultValues.profileVerified);\n\n const setUserRole = async () => {\n if (!getTokens().access) return;\n setLoading(true);\n const clientType = await api.getInfo();\n setRole(clientType?.client_type);\n setProfileId(clientType?.profile_id);\n setProfileCompleted(clientType?.profile_completed);\n setProfileVerified(clientType?.verified);\n setLoading(false);\n };\n\n useEffect(() => {\n setUserRole();\n }, []);\n\n const clearContext = () => {\n setRole(ProfileContextDefaultValues.role);\n setProfileId(ProfileContextDefaultValues.profileId);\n setProfileCompleted(ProfileContextDefaultValues.profileCompleted);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default ProfileContextProvider;\n","import { createContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ProfileApi from '../api/Profile';\nimport { TEarningsStats } from '../api/account/types';\nimport customNotification from '../components/notification';\nimport { getErrorFromResponse } from '../helpers/functions';\nimport { TWorkersResponse } from '../api/Workers';\n\nexport type Translation = {\n language_tag: string;\n translation: string;\n};\n\nexport type TranslationSkills = {\n id: number;\n translations: Translation[];\n};\n\nexport type SpecialitieType = {\n id: number;\n speciality: string;\n translations: Translation[];\n};\n\nexport type TData = {\n description: string;\n avatar: string;\n logo?: string;\n first_name: string;\n last_name: string;\n sex: 'MALE' | 'FEMALE' | string;\n city: string;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n profile_completed: boolean;\n careers: TranslationSkills[];\n applications?: Array<{\n speciality: SpecialitieType;\n event_dates: Array>;\n id: number;\n location__city: string;\n }>;\n employment_declaration?: Array<{\n key: string;\n value: true;\n }>;\n abilities: TranslationSkills[];\n hours_worked: number;\n orders_count: number;\n dimensions?: {\n weight: number;\n height: number;\n hips: number;\n waist: number;\n chest: number;\n };\n experience: Array<{\n id: number;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n is_workinn: boolean;\n company: string;\n position: string;\n description: string;\n created_at: string;\n }>;\n};\n\nexport type TWorkerContextState = {\n loading: boolean;\n data: TData;\n earnings: TEarningsStats;\n getEarnings: () => void;\n getWorkerData: (id: number | string) => void;\n setData: (data: TData) => void;\n clearContext: () => void;\n};\n\nexport const workerContextDefaultState: TWorkerContextState = {\n loading: false,\n data: {\n hours_worked: 0,\n orders_count: 0,\n description: '',\n avatar: '',\n first_name: '',\n last_name: '',\n sex: '',\n city: '',\n rating: null,\n rating_count: 0,\n profile_completed: false,\n careers: [],\n experience: [],\n employment_declaration: undefined,\n abilities: [],\n },\n earnings: {\n salary: 0,\n worked_hours: 0,\n applications_count: 0,\n works: [],\n },\n getEarnings: () => {},\n getWorkerData: () => {},\n setData: () => {},\n clearContext: () => {},\n};\n\nexport const WorkerContext = createContext(\n workerContextDefaultState\n);\n\nconst api = new ProfileApi();\n\nconst WorkerContextProvider: React.FC = ({ children }) => {\n const [data, setData] = useState(\n workerContextDefaultState.data\n );\n\n const [loading, setLoading] = useState(\n workerContextDefaultState.loading\n );\n\n const [earnings, setEarnings] = useState(\n workerContextDefaultState.earnings\n );\n\n const getEarnings = async () => {\n const earningsData = await api.getAllEarningsStats();\n setEarnings(earningsData);\n };\n\n const { t } = useTranslation();\n\n const getWorkerData = async (id: number | string) => {\n setLoading(true);\n try {\n const workerData: any = await api.getWorker(id);\n setData(workerData);\n } catch (err: any) {\n const details: Record = err?.response?.data;\n const error = getErrorFromResponse(details?.errors[0]);\n customNotification({\n type: 'error',\n description: t(\n `userDetailsForm.errors.${error.field !== null ? error.field + '_' : ''}${\n error.code\n }`\n ),\n });\n } finally {\n setLoading(false);\n }\n };\n\n const clearContext = () => {\n setData(workerContextDefaultState.data);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default WorkerContextProvider;\n","import { createContext, useState } from 'react';\nimport ProfileApi from '../api/Profile';\nimport { TOffersStats, TWorkersStats } from '../api/account/types';\nimport { SpecialitieType } from './WorkerContext';\n\nexport type TData = {\n city: string;\n logo: string;\n avatar?: string;\n company_name: string;\n website: string;\n rating: {\n organization: number;\n quality: number;\n atmosphere: number;\n communication: number;\n } | null;\n rating_count: number;\n description: string;\n institution: string;\n job_offer_count: string;\n worker_count: number;\n verified?: boolean;\n job_offers: Array<{\n id: number;\n event_dates: Array>;\n location: {\n city: string;\n address: string;\n };\n hourly_rate: string;\n is_active: boolean;\n speciality: SpecialitieType;\n title: string;\n opinions: Array<{\n rating_count: number;\n rating: {\n atmosphere: string;\n average: string;\n communication: string;\n id: number;\n organization: string;\n quality: string;\n };\n }> | null;\n }>;\n};\n\nexport type TEmployerContextState = {\n loading: boolean;\n data: TData;\n offers: TOffersStats;\n workers: TWorkersStats;\n setData: (data: TData) => void;\n getEmployerData: (id: number) => void;\n getWorkers: () => void;\n getOffers: () => void;\n clearContext: () => void;\n};\n\nexport const employerContextDefaultState: TEmployerContextState = {\n loading: false,\n offers: [],\n workers: {\n salary: 0,\n workers: [],\n },\n data: {\n city: '',\n logo: '',\n company_name: '',\n institution: '',\n website: '',\n rating: null,\n rating_count: 0,\n description: '',\n job_offer_count: '',\n verified: false,\n worker_count: 0,\n job_offers: [],\n },\n setData: () => {},\n getEmployerData: id => {},\n getWorkers: () => {},\n getOffers: () => {},\n clearContext: () => {},\n};\n\nexport const EmployerContext = createContext(\n employerContextDefaultState\n);\n\nconst api = new ProfileApi();\n\nconst EmployerContextProvider: React.FC = ({ children }) => {\n const [data, setData] = useState(\n employerContextDefaultState.data\n );\n const [offers, setOffers] = useState(\n employerContextDefaultState.offers\n );\n const [workers, setWorkers] = useState(\n employerContextDefaultState.workers\n );\n const [loading, setLoading] = useState(\n employerContextDefaultState.loading\n );\n\n const getEmployerData = async (id: number) => {\n setLoading(true);\n const employerData = await api.getEmployer(id);\n setData(employerData);\n setLoading(false);\n };\n\n const clearContext = () => {\n setData(employerContextDefaultState.data);\n };\n\n const getOffers = async () => {\n const offersData = await api.getAllOffersStats();\n\n setOffers(offersData);\n };\n const getWorkers = async () => {\n const workersData = await api.getAllWorkersStats();\n setWorkers(workersData);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default EmployerContextProvider;\n"],"sourceRoot":""}