{"version":3,"sources":["services/webapi/index.js","component/utils/utils.js","services/auth.js","route/privateRoute.js","context/actions.js","context/context.js","assest/arrow-curve-up.svg","assest/cloud-upload.svg","component/FileUploadContainer/FileUploadContainer.js","assest/bannerImg/bannerImg1.png","assest/bannerImg/bannerImg2.png","assest/bannerImg/bannerImg3.jpeg","component/BannerCarousel/BannerCarousel.js","component/HeroBanner/HeroBanner.js","assest/google-drive.png","assest/ondrive-logo.png","assest/oracle-logo.png","assest/sap-logo.png","assest/uipath-vector-logo.png","assest/arrow-curve-down.svg","assest/img/detected-text-img.png","assest/img/original-img.png","assest/img/detected-reco-img.png","assest/img/denoised-img.png","assest/img/correct-orient-img.png","assest/extractIt/extractImg1.jpeg","assest/extractIt/extractImg2.png","assest/extractIt/extractImg3.png","assest/extractIt/extractImg4.jpg","component/ImgProcessStep/ImgProcessStep.js","component/ClientFeedBack/ClientFeedback.js","assest/alazka-logo.png","component/CustomModal/CustomModal.js","assest/banner-img.svg","services/microsoftLoginConfig.js","Page/LoginModal/MsAuthContext.js","Page/LoginModal/AuthComponent.js","Page/LoginModal/LoginModal.js","component/UserAvatar/UserAvatar.js","component/Navbar/Navbar.js","assest/mail.svg","assest/open-mail-icon.svg","assest/facebook-icon.svg","assest/phone-icon.svg","assest/linkdin-icon.svg","assest/twitter-icon.svg","component/FAQ/FAQS.js","services/sendMail.js","component/FeedBackForm/FeedBackForm.js","component/FooterConsole/FooterConsole.js","component/Layout/Layout.js","Page/LandingPage/LandingPage.js","services/utils/ocr_utils.js","services/getOCRResult.js","assest/border-dases.svg","assest/animated-clock.gif","assest/clock-icon.svg","component/StatusTag/StatusTag.js","component/OverlayContainer/OverlayContainer.js","component/FileProcessingContainer/FileViewCard.js","assest/copy-text-icon.svg","component/OverlayCanvas/OverlayCanvas.js","component/FileProcessingContainer/FileResultViewCard.js","services/uploadProcessService.js","component/FileProcessingContainer/FileProcessingContainer.js","Page/FreeOCR/FreeOCR.js","Page/PaidOCR/PaidOCR.js","Page/PasswordResetPage/PasswordResetPage.js","Page/PageNotFound/PageNotFound.js","assest/image-logo.svg","assest/gif/change-mode.gif","assest/gif/get-ocr-text.gif","assest/gif/ocr-page-upload.gif","Page/HowToUse/HowToUse.js","Page/PrivacyPolicy/PrivacyPolicy.js","Page/TermsOfServic/TermsOfService.js","services/generateApiKey.js","Page/ToolsAndApi/ToolsAndApi.js","services/pageContent/nodeJsSampleCode.js","component/UserAccount/UserAccountEdit.js","component/UserAccount/ConversionHistTab.js","services/adminService.js","component/UserAccount/AdminControler.js","component/UserAccount/APIkey.js","component/UserAccount/UserAccount.js","Page/UserAccount/UserAccount.js","route/index.js","assest/chromelogo.png","context/reducer.js","context/ocrReducer.js","index.js"],"names":["node_baseUrl","OCRbaseUrl","gClient_Id","mClient_Id","redirectUri","getExtension","filename","parts","split","length","parseMsInUnit","milliseconds","unit","Number","toFixed","getReadableTime","bytesToSize","bytes","sizes","i","parseInt","Math","floor","log","toString","downloadTextFile","fileName","fileType","text","imageText","zip","require","pdfTFolder","folder","imgTFolder","files","imgFileText","Blob","type","name","slice","join","file","Array","isArray","generateAsync","then","content","saveAs","getLocalStorage","JSON","parse","localStorage","getItem","msgModal","msg","title","Modal","className","centered","getContainer","document","getElementById","okButtonProps","style","onOk","supportedFile","truncateString","str","num","fileSizeLimit","accountType","process","ocr_process_instance","axios","create","baseURL","responseType","main_api_instance","defaults","headers","common","webApi","AuthLogin","userInfo","onSuccess","onFailure","a","post","res","status","data","loginSuccess","userRegister","plan","getUserById","id","get","Authorization","response","postUpdateUser","userAvatar","email","phone","userId","formData","FormData","set","console","error","getUserAvatarById","getForgortPasswordLink","isSent","resetPassword","psInfo","token","success","authenticate","next","window","setItem","stringify","isAuthenticated","Logout","removeItem","PrivateRoute","Component","component","rest","render","props","to","pathname","state","from","location","actionTypes","SET_USER","LOADING","MESSAGE","IS_OFFLINE","REFRESH","IS_PROCESSING","LANG","USER_AVATAR","PROCESS_MODE","FILES_TO_PROCESS_FREE","FILES_TO_PROCESS_PAID","OCR_CLEAR_STATE","FILE_STATUS","DOWN_PER","SET_EXTRACT_RESULT","OCR_REFRESH","DELETE_UPLOAD_FILE","SET_FILE_FORMAT","SET_ALL_FILEFORMAT","ALL_PROCESS_MODE","SELECT_PAGES","GlobalContext","createContext","OCRContext","GlobalProvider","children","initialState","reducer","Provider","value","useReducer","OCRProvider","useGlobalState","useContext","useOCRState","Dragger","Upload","fileLimit","FileUploadContainer","freeOCR","multiple","history","useHistory","globalState","dispatch","filesToProccess","correctOrient","enhanceImgQlty","fileFormat","removeNoise","ocrDispatch","onFileUpload","payload","reader","FileReader","readAsDataURL","onloadend","e","pages","PDFDocument","load","result","pdfDoc","getPageCount","pdfFileView","URL","createObjectURL","fileInb64","selectedPdfPage","uid","uuidv4","size","downPer","isSuccess","isProcessed","isErrMsg","isError","resTime","fileToUploadPro","extractionResult","push","onChange","fileList","added_no_of_Page","reduce","total","x","user_info","leftCredit","role","includes","message","info","isFileUploaded","find","f","warn","align","gutter","md","sm","max","showUploadList","maxCount","accept","disabled","isProcessing","beforeUpload","direction","src","UploadIcon","alt","UploadOutlined","fontSize","justify","BannerCarousel","effect","autoplay","dots","BannerImg1","BannerImg2","BannerImg3","HeroBanner","React","useState","langContent","lang","pageContent","setPageContent","useEffect","data-aos","data-aos-duration","subTitle","data-aos-delay","data-aos-anchor-placement","ArrowCurveUp","width","xmlns","viewBox","fill","fillOpacity","d","TabPane","Tabs","MarketingSectionOne","marketinContent","secTitle_1","secDesc_1","MarketingSectionTwo","UipathLogo","OnDriveLogo","OracleLogo","SapLogo","GoogleDriveLogo","secTitle_2","secDesc_2","CorrectOrientTab","ExtractImg1","ArrowCurveDown","ExtractImg2","ExtractImg3","ExtractImg4","DenoisedTab","denoised","DenoisedImg","CorrectOrientImg","DetectedRecoImg","DetectedTextImg","ImgProcessStep","activeKey","marketinContentLang","setMarketinContent","tabDesc","secDesc","secTitle","animated","tab","FeedbackCard","personTitle","feedback","pic_link","icon","UserOutlined","ClientFeedback","clientFeedbacks","map","workTitle","CustomModal","isModalVisible","handleCancel","height","borderRadius","overflow","destroyOnClose","footer","bodyStyle","padding","maskClosable","visible","cancelButtonProps","onCancel","Width","MSAL_CONFIG","auth","clientId","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","LogLevel","Error","Info","Verbose","Warning","AzureAuthenticationContext","myMSALObj","PublicClientApplication","isAuthenticationConfigured","this","account","setRequestObjects","loginRequest","loginRedirectRequest","scopes","prompt","redirectStartPage","signInType","setUser","loginPopup","resp","handleResponse","catch","err","loginRedirect","logOutRequest","logout","incomingFunction","getAccount","currentAccounts","getAllAccounts","ua","navigator","userAgent","msie","indexOf","msie11","isIE","AzureAuthenticationButton","onAuthenticated","authenticationModule","setAuthenticated","returnedAccountInfo","user","onClick","method","logInType","login","logIn","iconColor","iconSize","SocialLoign","onSocialSignIn","provider","setProvider","setProfile","googleRef","useRef","microsoftRef","onLogoutFailure","useCallback","alert","onLogoutSuccess","username","password","isSocialLogin","current","onLogout","ref","client_id","onLoginStart","redirect_uri","onResolve","onReject","LoginModal","closeSignInModal","resterModel","loading","setLoading","isForgotPassword","setForgotPassword","isResiter","setRegister","setError","isMsg","setMsg","Form","useForm","form","forgotform","onSignIn","r","validateFields","test","setFields","errors","ExtractionImg","desc","showIcon","closable","layout","initialValues","getFieldValue","requiredMark","onFinish","resetFields","Item","rules","required","placeholder","noStyle","htmlType","Password","marginBottom","min","dependencies","validator","_","Promise","reject","resolve","UserAvatar","backgroundColor","verticalAlign","toUpperCase","Navbar","onChangeView","isAuth","navtext","navContent","setNavContent","mobileMenu","setMobileMenu","isLoginModal","setLoginModal","useLocation","closeModal","openLoginModal","onCloseMenu","getActiveNavLink","navlink","pathName","loginModal","menu","userMenu","myAccount","Divider","HistoryOutlined","conversionHistory","LogoutOutlined","navLink","span","AlazkaLogo","appTagLine","float","toolsAndApi","howToUse","ocr","signin","color","placement","overlay","trigger","overlayClassName","preventDefault","welcome","CaretDownOutlined","totalCredit","creditLeft","credit","marginRight","MenuOutlined","onClose","extra","margin","Panel","Collapse","FAQS","faqs","bordered","defaultActiveKey","accordion","expandIconPosition","expandIcon","isActive","MinusOutlined","PlusOutlined","header","question","paddingLeft","ans","postQueryMail","queryInfo","postContactUsMail","FeedBackForm","isFeedBkForm","onCloseFeedBkForm","contactForm","setFieldsValue","label","TextArea","rows","Option","Select","FooterConsole","undefined","setFeedBkForm","xs","lg","href","footerContent","EmailIcon","textAlign","termsOfService","privacyPolicy","fbLink","target","FacebookIcon","twitterLink","TwitterIcon","linkdinLink","LinkdinIcon","GlobalOutlined","Layout","duration","shape","VerticalAlignTopOutlined","LandingPage","HomePagefaqs","faqContent","setFaqContent","scrollTo","isLandingPage","pageNumberList","spec","n","ranges","replace","newOrder","range","before","after","sign","pdfjs","GlobalWorkerOptions","workerSrc","version","CancelToken","cancelReq","readFileData","onload","onerror","dataURLtoFile","dataurl","arr","mime","match","bstr","atob","u8arr","Uint8Array","charCodeAt","File","newPdfBytes","getPages","getSize","addPage","newDoc","copyPages","newPages","newPage","save","newBytes","convertPdfToImages","resolved","rejected","images","getDocument","promise","pdf","canvas","createElement","numPages","getPage","page","viewport","getViewport","scale","context","getContext","canvasContext","toDataURL","remove","getPdfPromiseResult","fileToUpload","url","pdfPageOrder","pdfImgResult","pdfImgProcess","pdfImg","imgFile","append","cancelToken","c","pageNo","all","getOCRResult","fileForProcesssing","totalPage","bytesLength","pagesToPro","pdfBytes","byteLength","outputBlob","encoding_type","allfalied","filter","isTexDetectd","sort","b","onDownloadProgress","progressEvent","parseFloat","loaded","percentCompleted","StatusTag","errMsg","SyncOutlined","spin","CheckCircleOutlined","MinusCircleOutlined","CloseCircleOutlined","OverlayContainer","setNumPages","pageNumber","setPageNumber","onLoadSuccess","description","maxHeight","FileViewCard","onCheckModeOpt","isImgViewModal","setImgViewModal","onChangeFileFormat","format","xm","borderColor","Object","keys","key","index","background","onConfirm","okText","cancelText","checked","onSelectPdfPage","defaultValue","OverlayCanvas","previewImage","boxes","dimension","canvasRef","img","Image","setAttribute","w","h","drawImage","forEach","box","y","beginPath","lineWidth","strokeStyle","rect","stroke","FileResultViewCard","imgOverlay","setImgOverlay","imgDimension","copyText","setCopyText","downText","setDownText","incPage","decPage","imgResult","prv","onClickCopyText","textField","innerText","body","appendChild","wordSpace","select","execCommand","copyTextFunction","onClickDownload","CopyIcon","extData","box_text","t","b64","uploadProcessFile","fileInfo","user_id","file_uid","noOf_pages","getAllProcessFile","pageSize","config","top","FileProcessingContainer","onCleckModeOptForAll","saveProcessFileToDB","onGetOCR","isOffline","totalPages","acc","obj","allPromise","startTime","Date","now","succes","zIndex","BorderDases","ClockIcon","AnimateGif","FreeOCR","AlertBanner","isContactModal","setContactModal","openContactModal","PaidOCR","LogedInFaqs","spinning","paidUploadContent","paddingBottom","PasswordRestPage","params","useParams","resetPsInfo","hasFeedback","PageNotFound","Step","Steps","HowToUse","HowToUseFaqs","step_1","OCRPageUpload","step_2","ChangeMode","step_3","GetOcrText","PrivacyPolicy","packageJson","TermsOfService","generateAPIKey","errorMsg","serverError","getAPIKeyByUserId","ToolsAndApi","selectedTopic","setSelectedTopi","ongenerateAPIKey","apiKey","menuName","isCreated","behavior","cla","selectedKeys","mode","cursor","flexBasis","theme","language","showLineNumbers","wrapLines","UserAccountEdit","isUserEditModal","viewAvatar","updatePic","updateUser","setUpdateUser","CameraFilled","u","Column","Table","ConversionHistTab","viewImgs","setViewImgs","base64Img","isOpen","overlayImgModal","setOverlayModal","refresh","processFiles","setAllProcessFiles","filePerPage","setFilePerPage","currentPage","setCurrentPage","totalFiles","setTotalFiles","setTotalPages","searchText","searchedColumn","searchParam","setSearchParam","decodeUser","jwt_decode","_id","dataIndex","onClickViewImg","handleSearch","confirm","showTotalPerPage","perPage","makeFileToDown","onClickFileDownload","allText","itemLayout","dataSource","pagination","showSizeChanger","pageSizeOptions","renderItem","DownloadOutlined","EyeOutlined","Meta","moment","updatedAt","rowKey","serial_id","scroll","filterDropdown","setSelectedKeys","clearFilters","onPressEnter","display","SearchOutlined","handleReset","filterIcon","filtered","onFilter","record","toLowerCase","highlightStyle","searchWords","autoEscape","textToHighlight","filters","sorter","LeftOutlined","RightOutlined","getAllUsers","users","onAdminUpdateUser","AdminControler","selectedTab","setRefresh","isEditModal","setEditModal","selectedUser","setSelectedUser","setAllUsers","getColumnSearchProps","editUserByAdmin","EditOutlined","createdAt","APIkey","APIKey","setAPIKey","newAPIKey","banner","iconRender","EyeTwoTone","EyeInvisibleOutlined","UndoOutlined","rotate","UserAccount","setUserEditModal","setSeletedTab","UserAccountPage","MyRoutes","AOS","init","easing","once","mirror","anchorPlacement","base64String","btoa","byte","String","fromCharCode","addEventListener","indicator","LoadingOutlined","exact","path","action","updatedFileToPro","allCheck","updateStatus","updateDonnPer","updateDelete","updateResult","refreshResult","updatedFILEFORMAT","allSameFormat","allFileFormat","allModeUpdate","updateSelectPage","checkNo","splitNo","ReactDOM","msgType","ocrReducer"],"mappings":"iiYAGWA,EACAC,EACAC,EACAC,EACAC,E,yKCHEC,EAAe,SAACC,GAC3B,IAAIC,EAAQD,EAASE,MAAM,KAC3B,OAAOD,EAAMA,EAAME,OAAS,IAqBjBC,EAAgB,SAACC,EAAcC,GAC1C,OAAQA,GACN,IAAK,MACH,OAAOC,QAAQF,EAAe,OAAUG,QAAQ,IAClD,IAAK,MACH,OAAOD,QAAQF,EAAe,MAASG,QAAQ,IACjD,IAAK,OACH,OAAOD,QAAQF,EAAe,KAAOG,QAAQ,IAC/C,IAAK,MACH,OAAOD,QAAQF,EAAe,KAAMG,QAAQ,MAGrCC,EAAkB,SAACJ,GAC9B,OAAIA,EAAe,MAAW,EACtB,GAAN,OAAUD,EAAcC,EAAc,OAAtC,QACSA,EAAe,KAAU,EAC5B,GAAN,OAAUD,EAAcC,EAAc,OAAtC,QACSA,EAAe,IAAQ,EAC1B,GAAN,OAAUD,EAAcC,EAAc,QAAtC,QACSA,EAAe,IAAO,EACzB,GAAN,OAAUD,EAAcC,EAAc,OAAtC,QAEM,GAAN,OAAUA,EAAV,QAGSK,EAAc,SAACC,GAC1B,IAAMC,EAAQ,CAAC,QAAS,KAAM,KAAM,KAAM,MAC1C,GAAc,IAAVD,EAAa,MAAO,MACxB,IAAME,EAAIC,SAASC,KAAKC,MAAMD,KAAKE,IAAIN,GAASI,KAAKE,IAAI,OAAOC,WAAY,IAC5E,OAAU,IAANL,EAAe,GAAN,OAAUF,EAAV,YAAmBC,EAAMC,IAChC,GAAN,QAAWF,EAAK,SAAG,KAAQE,IAAGL,QAAQ,GAAtC,YAA4CI,EAAMC,KAGvCM,EAAmB,SAACC,EAAUC,EAAUC,EAAMC,GACzD,GAAiB,QAAbF,EAAoB,CACtB,IAAMG,EAAMC,EAAQ,IAARA,GACRC,EAAaF,EAAIG,OAAO,YACxBC,EAAaJ,EAAIG,OAAO,eAC5B,GAAIJ,EAAUpB,OAEZ,IADA,IAAI0B,EAAQN,EACHV,EAAI,EAAGA,EAAIgB,EAAM1B,OAAQU,IAAK,CACrC,IAAMiB,EAAc,IAAIC,KAAK,CAACF,EAAMhB,IAAK,CAAEmB,KAAM,6BAC3CC,EAAOb,EAASlB,MAAM,KAAKgC,MAAM,GAAI,GAAGC,KAAK,KAAO,OAC1DP,EAAWQ,KAAKH,EAAMH,GAG1B,GAAIO,MAAMC,QAAQhB,GAEhB,IADA,IAAIO,EAAQP,EACHT,EAAI,EAAGA,EAAIgB,EAAM1B,OAAQU,IAChC,GAAIgB,EAAMhB,GAAI,CACZ,IAAMuB,EAAO,IAAIL,KAAK,CAACF,EAAMhB,IAAK,CAAEmB,KAAM,6BACtCC,EAAOb,EAASlB,MAAM,KAAKgC,MAAM,GAAI,GAAGC,KAAK,KAAO,KAAOtB,EAAI,GAAK,OACxEa,EAAWU,KAAKH,EAAMG,GAI5BZ,EAAIe,cAAc,CAAEP,KAAM,SAAUQ,MAAK,SAACC,GACxC,IAAMR,EAAOb,EAASlB,MAAM,KAAKgC,MAAM,GAAI,GAAGC,KAAK,KAAO,OAC1DO,IAAOD,EAASR,UAEb,CACL,IAAMG,EAAO,IAAIL,KAAK,CAACT,GAAO,CAAEU,KAAM,6BAChCC,EAAOb,EAASlB,MAAM,KAAKgC,MAAM,GAAI,GAAGC,KAAK,KAAO,OAC1DO,IAAON,EAAMH,KAgBJU,EAAkB,SAACV,GAAD,OAAUW,KAAKC,MAAMC,aAAaC,QAAQd,KAE5De,EAAW,SAAChB,EAAMiB,EAAKC,GAClCC,IAAMnB,GAAM,CACVkB,MAAK,OAAEA,QAAF,IAAEA,IAAS,+BAChBE,UAAW,YACXC,UAAU,EACVC,aAAc,kBAAMC,SAASC,eAAe,gBAC5Cf,QACE,8BACE,4BAAIQ,MAGRQ,cAAe,CAAEC,MAAO,IACxBC,KAXU,gBAsBDC,EAAgB,CAAC,OAAQ,MAAO,MAAO,OAEvCC,EAAiB,SAACC,EAAKC,GAClC,OAAID,EAAI3D,OAAS4D,EACRD,EAAI5B,MAAM,EAAG6B,GAAO,MAEpBD,GA2BEE,EAAgB,WAAoC,IAAnCC,EAAkC,uDAApB,gBAC1C,OAAQA,GACN,IAAK,OACH,OAAO,SACT,IAAK,eACH,OAAO,SACT,IAAK,WACH,OAAO,SACT,QACE,OAAO,U,kBD1JXvE,EAAewE,kCACfvE,EAAauE,+BACbtE,EAAasE,2EACbrE,EAAaqE,uCACbpE,EAAcoE,mCAIhB,IAAIC,EAAuBC,IAAMC,OAAO,CACtCC,QAAS3E,EACT4E,aAAc,SAILC,EAAoBJ,IAAMC,OAAO,CAC1CC,QAAS5E,EACT6E,aAAc,SAGhBC,EAAkBC,SAASC,QAAQC,OAAnC,wBAAgEhC,EAAgB,QAEjEwB,QEtCTS,EAASJ,EAEFK,EAAS,uCAAG,WAAOC,EAAUC,EAAWC,GAA5B,eAAAC,EAAA,+EAEHL,EAAOM,KAAK,eAAgBJ,GAFzB,UAGF,OADbK,EAFe,QAGbC,SAAkBD,EAAIE,KAAKC,aAHd,yCAIZP,EAAUI,EAAIE,OAJF,OAMnBL,EAAUG,EAAIE,KAAKpC,KANA,kFASd+B,EAAU,2CATI,0DAAH,0DAaTO,EAAY,uCAAG,WAAOT,EAAUC,EAAWC,GAA5B,eAAAC,EAAA,+EAENL,EAAOM,KAAK,iBAAZ,2BAAmCJ,GAAnC,IAA6CU,KAAM,UAF7C,UAGL,OADbL,EAFkB,QAGhBC,SAAkBD,EAAIE,KAAKC,aAHX,yCAIfP,EAAUI,EAAIE,OAJC,gCAMfL,EAAUG,EAAIE,KAAKpC,MANJ,kFASjB+B,EAAU,kDATO,0DAAH,0DA0BZS,EAAW,uCAAG,WAAOC,EAAIX,EAAWC,GAAtB,mBAAAC,EAAA,+EAELL,EAAOe,IAAP,uBAA2BD,GAAM,CACjDhB,QAAS,CACPkB,cAAc,GAAD,OAAKjD,EAAgB,WAJf,UAOJ,OALbwC,EAFiB,QAOfC,OAPe,yCAQdL,EAAUI,EAAIE,OARA,OAUrBL,EAAUG,EAAIE,KAAKpC,KAVE,yDAavB+B,GAAU,2CAAGa,gBAAH,mBAAaR,YAAb,eAAmBpC,MAAO,yCAbb,0DAAH,0DAkCX6C,EAAc,uCAAG,WAAOC,EAAY9D,EAAM+D,EAAOC,EAAOC,EAAQnB,EAAWC,GAA1D,mBAAAC,EAAA,uEAEtBkB,EAAW,IAAIC,UACVC,IAAI,SAAUN,GACvBI,EAASE,IAAI,WAAYpE,GACzBkE,EAASE,IAAI,QAASL,GACtBG,EAASE,IAAI,QAASJ,GANI,SAORrB,EAAOM,KAAP,uBAA4BgB,GAAUC,GAP9B,UAQP,OADbhB,EAPoB,QAQlBC,OARkB,wBASxBkB,QAAQrF,IAAIkE,EAAIE,MATQ,kBAUjBN,KAViB,0DAa1BC,EAAS,OAAC,EAAD,6BAAC,KAAKa,gBAAN,aAAC,EAAeR,KAAKkB,OAbJ,0DAAH,kEAiBdC,EAAiB,uCAAG,WAAON,EAAQnB,EAAWC,GAA1B,mBAAAC,EAAA,+EAEXL,EAAOe,IAAP,uBAA2BO,GAAU,CACrDxB,QAAS,CACPkB,cAAc,GAAD,OAAKjD,EAAgB,WAJT,UAOV,OALbwC,EAFuB,QAOrBC,OAPqB,yCAQpBL,EAAUI,EAAIE,OARM,uDAW7BL,GAAU,eAAEa,gBAAF,mBAAYR,YAAZ,eAAkBkB,QAAS,0CAXR,yDAAH,0DAejBE,EAAsB,uCAAG,WAAO3B,EAAUC,EAAWC,GAA5B,eAAAC,EAAA,+EAEhBL,EAAOM,KAAK,2BAA4BJ,GAFxB,UAGf,OADbK,EAF4B,QAG1BC,SAAkBD,EAAIE,KAAKqB,OAHD,yCAIzB3B,EAAUI,EAAIE,OAJW,OAMhCL,EAAUG,EAAIE,MANkB,yDASlCL,EAAU,oCATwB,0DAAH,0DAatB2B,EAAa,uCAAG,WAAOC,EAAQC,EAAO9B,EAAWC,GAAjC,eAAAC,EAAA,+EAEPL,EAAOM,KAAP,qCAA0C2B,GAASD,GAF5C,UAGN,OADbzB,EAFmB,QAGjBC,SAAkBD,EAAIE,KAAKyB,QAHV,yCAIhB/B,EAAUI,EAAIE,OAJE,OAMvBL,EAAUG,EAAIE,MANS,yDASzBL,EAAU,oCATe,0DAAH,4DAab+B,EAAe,SAAC1B,EAAM2B,GACX,qBAAXC,SACTnE,aAAaoE,QAAQ,MAAOtE,KAAKuE,UAAU9B,IAC3C2B,MAISI,EAAkB,WAC7B,MAAqB,oBAAVH,WAGPnE,aAAaC,QAAQ,QAChBH,KAAKC,MAAMC,aAAaC,QAAQ,UAM9BsE,EAAM,uCAAG,WAAOtC,EAAWC,GAAlB,SAAAC,EAAA,yDACE,qBAAXgC,OADS,iCAGhBnE,aAAawE,WAAW,OACxBvC,EAAU,kBAJM,SAKEH,EAAOe,IAAI,iBALb,8DAOhBX,EAAU,mBAPM,yDAAH,wDCjIJuC,EApBM,SAAC,GAAuC,IAA1BC,EAAyB,EAApCC,UAAyBC,EAAW,6BAC1D,OACE,cAAC,IAAD,2BACMA,GADN,IAEEC,OAAQ,SAACC,GAAD,OACNR,IACE,cAACI,EAAD,eAAeI,IAEf,cAAC,IAAD,CACEC,GAAI,CACFC,SAAU,IACVC,MAAO,CAAEC,KAAMJ,EAAMK,kBCUpBC,EAzBK,CAClBC,SAAU,WACVC,QAAS,UACTC,QAAS,UACTC,WAAY,aACZC,QAAS,UACTC,cAAe,gBACfC,KAAM,OACNC,YAAa,cAEbC,aAAc,eACdC,sBAAuB,wBACvBC,sBAAuB,wBACvBC,gBAAiB,kBACjBC,YAAa,cACbC,SAAU,WACVC,mBAAoB,qBACpBC,YAAa,cACbC,mBAAoB,qBACpBC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,aAAc,gBCpBHC,GAAgBC,0BAChBC,GAAaD,0BAEbE,GAAiB,SAAC,GAAD,IAAGC,EAAH,EAAGA,SAAUC,EAAb,EAAaA,aAAcC,EAA3B,EAA2BA,QAA3B,OAC5B,cAACN,GAAcO,SAAf,CAAwBC,MAAOC,qBAAWH,EAASD,GAAnD,SAAmED,KAGxDM,GAAc,SAAC,GAAD,IAAGN,EAAH,EAAGA,SAAUC,EAAb,EAAaA,aAAcC,EAA3B,EAA2BA,QAA3B,OACzB,cAACJ,GAAWK,SAAZ,CAAqBC,MAAOC,qBAAWH,EAASD,GAAhD,SAAgED,KAGrDO,GAAiB,kBAAMC,qBAAWZ,KAClCa,GAAc,kBAAMD,qBAAWV,K,8BCd7B,OAA0B,2C,8BCA1B,OAA0B,yC,yCCYjCY,GAAYC,KAAZD,QAGKE,GAAY,GA8LVC,GA5La,SAAC,GAA2B,IAAD,EAAxBC,EAAwB,EAAxBA,QAASC,EAAe,EAAfA,SAChCC,EAAUC,cADqC,EAErBV,KAFqB,mBAE9CW,EAF8C,KAEjCC,EAFiC,OAG8CV,KAH9C,0BAG5CW,EAH4C,EAG5CA,gBAAiBC,EAH2B,EAG3BA,cAAeC,EAHY,EAGZA,eAAgBC,EAHJ,EAGIA,WAAYC,EAHhB,EAGgBA,YAAeC,EAH/B,KAK/CC,EAAY,uCAAG,WAAOlJ,GAAP,iBAAA6C,EAAA,sDACf0F,GACFI,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,MAC3CC,EAAS,IAAIC,YACVC,cAActJ,GACrBoJ,EAAOG,UAAP,uCAAmB,WAAOC,GAAP,iBAAA3G,EAAA,yDACb4G,EAAQ,EACoB,QAA5B9L,EAAaqC,EAAKJ,MAFL,gCAGM8J,eAAYC,KAAKP,EAAOQ,QAH9B,OAGTC,EAHS,OAIfJ,EAAQI,EAAOC,eAJA,OAOjBb,EAAY,CACVrJ,KAAMkG,EAAYW,sBAClB0C,QAAS,CACPY,YAAaC,IAAIC,gBAAgBjK,GACjCkK,UAAWd,EAAOQ,OAElBO,gBAAgB,KAAD,OAAOV,GACtBA,MAAOA,EAEPW,IAAKC,eAAWrK,EAAKH,KACrBA,KAAMG,EAAKH,KACXyK,KAAMtK,EAAKsK,KACX1K,KAAMjC,EAAaqC,EAAKJ,MAExBiJ,cAAeA,EACfC,eAAgBA,EAChBE,YAAaA,EAEbD,WAAYA,EACZwB,QAAS,EAETC,WAAW,EACXC,aAAa,EACbC,SAAU,GACVC,SAAS,EACT3H,OAAQ,QACR4H,QAAS,KAETC,gBAAiB7K,EACjB8K,iBAAkB,QAGtBnC,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,KAvC9B,2CAAnB,wDA0CAR,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,MAC3CC,EAAS,IAAIC,YACVC,cAActJ,GACrBoJ,EAAOG,UAAP,uCAAmB,WAAOC,GAAP,iBAAA3G,EAAA,yDACb4G,EAAQ,EACoB,QAA5B9L,EAAaqC,EAAKJ,MAFL,gCAGM8J,eAAYC,KAAKP,EAAOQ,QAH9B,OAGTC,EAHS,OAIfJ,EAAQI,EAAOC,eAJA,OAMjBb,EAAY,CACVrJ,KAAMkG,EAAYU,sBAClB2C,QAAS,CACPY,YAAaC,IAAIC,gBAAgBjK,GACjCkK,UAAWd,EAAOQ,OAElBO,gBAAgB,KAAD,OAAOV,GACtBA,MAAOA,EAEPW,IAAKpK,EAAKoK,IACVvK,KAAMG,EAAKH,KACXyK,KAAMtK,EAAKsK,KACX1K,KAAMjC,EAAaqC,EAAKJ,MAExBiJ,cAAeA,EACfC,eAAgBA,EAChBE,YAAaA,EAEbD,WAAYA,EACZwB,QAAS,EAETC,WAAW,EACXE,SAAU,GACVC,SAAS,EACT3H,OAAQ,QACR4H,QAAS,KACTH,aAAa,EAEbI,gBAAiB7K,EACjB8K,iBAAkB,QAGtBtC,EAAQuC,KAAK,WACbpC,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,KAvC9B,2CAAnB,uDAlDiB,2CAAH,sDA8FZ6B,EAAQ,uCAAG,WAAOhL,EAAMiL,GAAb,yBAAApI,EAAA,yDACTqI,EAAmBtC,EAAgBuC,QAAO,SAACC,EAAOC,GACtD,IAAKA,EAAEb,UACL,OAAOY,EAAQC,EAAE5B,QAElB,KAGsC,KAAtC,UAAAf,EAAY4C,iBAAZ,eAAuBC,cAAoB,UAAA7C,EAAY4C,iBAAZ,eAAuBC,aAAcpN,OAAO+M,KACxD,UAAhC,UAAAxC,EAAY4C,iBAAZ,eAAuBE,MATV,yCAWN5K,EAAS,OAAQ,4DAA6D,UAXxE,UAcVY,EAAciK,SAAS9N,EAAaqC,EAAKJ,OAd/B,yCAc8CgB,EAAS,OAAQ,4BAA6B,SAd5F,YAgBXzC,OAAOyK,EAAgB7K,QAAUI,OAAOiK,KAhB7B,uBAiBbsD,KAAQC,KAAR,qCAA2CvD,GAA3C,UAA8D,GAjBjD,mBAkBN,GAlBM,UAqBTwD,EAAiBhD,EAAgBiD,MAAK,SAACC,GAAD,OAAOA,EAAEjM,OAASG,EAAKH,SAC/D0I,IAAYqD,EAtBD,0CAuBNF,KAAQK,KAAR,UAAgB/L,EAAKH,KAArB,+BAvBM,aAyBXG,EAAKsK,MAAQ1I,EAAa,UAAC8G,EAAY4C,iBAAb,aAAC,EAAuBlI,OAzBvC,wBA2Bb8F,EAAalJ,GA3BA,mBA4BN,GA5BM,eA8Bb0L,KAAQC,KAAK,uCAAwC,GA9BxC,mBA+BN,GA/BM,4CAAH,wDAmCd,OACE,cAAC,KAAD,CAAKK,MAAM,SAASC,OAAQ,CAAC,EAAG,IAAhC,SACE,cAAC,KAAD,CAAKC,GAAI,GAAIC,GAAI,GAAjB,SACE,cAACjE,GAAD,CACErI,KAAK,OACL0I,SAAUA,EACV6D,IAAKhE,GACLiE,gBAAgB,EAChBC,SAAUlE,GACVmE,OAAO,uBACPC,SAAU9D,EAAY+D,cAAsD,KAAtC,UAAA/D,EAAY4C,iBAAZ,eAAuBC,YAC7DmB,aAAc,SAAC1M,GAAD,OAAU,GACxBgL,SAAU,SAACxB,GACTwB,EAASxB,EAAExJ,KAAMwJ,EAAEyB,WAErBjK,UAAWsH,EAAU,yBAA2B,wBAZlD,SAaGA,EACC,qBAAKtH,UAAU,mBAAf,SACE,eAAC,KAAD,CAAOsJ,KAAK,SAASqC,UAAU,WAAWX,MAAM,SAAhD,UACE,qBAAKhL,UAAU,mBAAf,SACE,qBAAK4L,IAAKC,GAAYC,IAAI,aAE5B,eAAC,KAAD,CAAQxC,KAAK,QAAQtJ,UAAU,iBAA/B,UACE,cAAC+L,GAAA,EAAD,CAAgBzL,MAAO,CAAE0L,SAAU,YADrC,kBAIA,oBAAGhM,UAAU,cAAb,gBACK,sBAAMA,UAAU,kBAAhB,4BAEL,mBAAGA,UAAU,cAAb,kDAIJ,eAAC,KAAD,CAAKgL,MAAM,SAASiB,QAAQ,QAAQjM,UAAU,yBAA9C,UACE,cAAC,KAAD,CAAKkL,GAAI,EAAGC,GAAI,GAAhB,SACE,qBAAKnL,UAAU,mBAAf,SACE,qBAAK4L,IAAKC,GAAYC,IAAI,eAG9B,eAAC,KAAD,CAAKZ,GAAI,GAAIC,GAAI,GAAjB,UACE,oBAAGnL,UAAU,cAAb,UACE,sBAAMA,UAAU,gBAAhB,0BADF,qBAGA,mBAAGA,UAAU,cAAb,0D,8BClMD,OAA0B,uCCA1B,OAA0B,uCCA1B,OAA0B,wCCqB1BkM,GAhBQ,WACrB,OACE,eAAC,KAAD,CAAUC,OAAO,OAAOnM,UAAU,gBAAgBoM,UAAU,EAAMC,MAAM,EAAxE,UACE,qBAAKrM,UAAU,aAAf,SACE,qBAAK4L,IAAKU,GAAYR,IAAI,mBAE5B,qBAAK9L,UAAU,aAAf,SACE,qBAAK4L,IAAKW,GAAYT,IAAI,mBAE5B,qBAAK9L,UAAU,aAAf,SACE,qBAAK4L,IAAKY,GAAYV,IAAI,uBCqDnBW,GAxDI,WAAO,IAAD,EACS1F,KADT,mBAChBW,EADgB,aAEoBT,MAFpB,mBAEdW,EAFc,KAEdA,gBAFc,QAIe8E,IAAMC,SAASC,GAAYlF,EAAYmF,QAJtD,mBAIhBC,EAJgB,KAIHC,EAJG,KAUvB,OAJAL,IAAMM,WAAU,WACdD,EAAeH,GAAYlF,EAAYmF,SACtC,CAACjF,EAAgB7K,OAAQ2K,EAAYmF,OAGtC,0BAAS7M,UAAU,sBAAnB,UACE,eAAC,KAAD,CAAKiM,QAAQ,eAAejM,UAAU,iBAAiBgL,MAAM,SAA7D,UACE,eAAC,KAAD,CAAKE,GAAI,GAAIC,GAAI,GAAjB,UACE,oBAAInL,UAAU,eAAeiN,WAAS,YAAYC,oBAAkB,MAApE,SACE,eAAC,KAAD,CAAOvB,UAAU,WAAWrC,KAAM,EAAlC,UACE,8BAAMwD,EAAYhN,MAAM,KACxB,8BAAMgN,EAAYhN,MAAM,UAG5B,oBAAIE,UAAU,mBAAmBiN,WAAS,YAAYC,oBAAkB,MAAxE,SACE,cAAC,KAAD,CAAOvB,UAAU,WAAWrC,KAAM,EAAlC,SACE,8BAAMwD,EAAYK,eAGtB,qBAAKF,WAAS,YAAYG,iBAAe,MAAMF,oBAAkB,OAAOG,4BAA0B,gBAAlG,SACE,cAAC,GAAD,MAEF,qBACEzB,IAAK0B,GACLxB,IAAI,WACJ9L,UAAU,sBACViN,WAAS,aACTG,iBAAe,MACfF,oBAAkB,OAClBK,MAAO,SAGX,cAAC,KAAD,CAAKrC,GAAI,EAAGC,GAAI,GAAhB,SACE,qBAAK8B,WAAS,YAAYC,oBAAkB,MAAME,iBAAe,MAAjE,SACE,cAAC,GAAD,CAAqB7F,UAAU,EAAOD,SAAS,WAIrD,qBAAKtH,UAAU,aAAf,SACE,qBAAKwN,MAAM,6BAA6BC,QAAQ,eAAhD,SACE,sBACEC,KAAK,UACLC,YAAY,IACZC,EAAE,yO,qBC7DC,OAA0B,yCCA1B,OAA0B,yCCA1B,OAA0B,wCCA1B,OAA0B,qCCA1B,OAA0B,+CCA1B,OAA0B,6CCA1B,ICAA,IDAA,IAA0B,+CEA1B,OAA0B,8CCA1B,OAA0B,yCCA1B,OAA0B,+C,oBCA1B,OAA0B,yCCA1B,OAA0B,wCCA1B,OAA0B,wCCA1B,OAA0B,wCC2BjCC,I,OAAYC,KAAZD,SAEFE,GAAsB,SAAC,GAAyB,IAAvBC,EAAsB,EAAtBA,gBAC7B,OACE,yBAAShO,UAAU,gCAAnB,SACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,QAAQhL,UAAU,UAAUkN,oBAAkB,MAAjF,UACE,eAAC,KAAD,CAAKhC,GAAI,GAAIC,GAAI,GAAI8B,WAAS,aAA9B,UACE,oBAAIjN,UAAU,mBAAd,SACE,eAAC,KAAD,CAAO2L,UAAU,WAAWrC,KAAM,EAAlC,UACE,8BAAM0E,EAAgBC,WAAW,KACjC,8BAAMD,EAAgBC,WAAW,UAGrC,mBAAGjO,UAAU,kBAAb,SAAgCgO,EAAgBE,eAElD,cAAC,KAAD,CAAKhD,GAAI,GAAIC,GAAI,GAAInL,UAAU,mBAAmBiN,WAAS,YAA3D,SACE,8BACE,cAAC,GAAD,cAONkB,GAAsB,SAAC,GAAyB,IAAvBH,EAAsB,EAAtBA,gBAC7B,OACE,yBAAShO,UAAU,gCAAnB,SACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBhB,OAAQ,CAAC,EAAG,IAAKD,MAAM,QAApD,UACE,cAAC,KAAD,CAAKE,GAAI,GAAIC,GAAI,GAAInL,UAAU,eAAeiN,WAAS,aAAaC,oBAAkB,MAAtF,SACE,eAAC,KAAD,CAAO5D,KAAM,GAAI0B,MAAM,SAAvB,UACE,8BACE,eAAC,KAAD,CAAO1B,KAAK,QAAQqC,UAAU,WAA9B,UACE,qBAAKC,IAAKwC,GAAYtC,IAAI,SAC1B,qBAAKF,IAAKyC,GAAavC,IAAI,SAC3B,qBAAKF,IAAK0C,GAAYxC,IAAI,cAG9B,8BACE,eAAC,KAAD,CAAOH,UAAU,WAAWrC,KAAK,QAAjC,UACE,qBAAKsC,IAAK2C,GAASzC,IAAI,SACvB,qBAAKF,IAAK4C,GAAiB1C,IAAI,mBAKvC,eAAC,KAAD,CAAKZ,GAAI,GAAIC,GAAI,GAAI8B,WAAS,YAAYC,oBAAkB,MAA5D,UACE,oBAAIlN,UAAU,mBAAd,SACE,eAAC,KAAD,CAAO2L,UAAU,WAAWrC,KAAM,EAAlC,UACE,8BAAM0E,EAAgBS,WAAW,KACjC,8BAAMT,EAAgBS,WAAW,UAGrC,mBAAGzO,UAAU,kBAAb,SAAgCgO,EAAgBU,qBAOpDC,GAAmB,SAAC,GAAqB,IAAnB7B,EAAkB,EAAlBA,YAC1B,OACE,eAAC,KAAD,CAAK7B,OAAQ,CAAC,GAAI,GAAIgB,QAAQ,SAASjM,UAAU,sBAAjD,UACE,eAAC,KAAD,CAAKiN,WAAS,UAAUG,iBAAe,MAAMF,oBAAkB,MAA/D,UACE,qBAAKlN,UAAU,kBAAf,SACE,qBAAK4L,IAAKgD,GAAa9C,IAAI,4BAE7B,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,SACzC,qBAAKlB,IAAK0B,GAAcxB,IAAI,WAAW9L,UAAU,oBAAoBuN,MAAO,SAG9E,eAAC,KAAD,CAAKN,WAAS,UAAUG,iBAAe,MAAMF,oBAAkB,MAA/D,UACE,qBAAKtB,IAAKiD,GAAgB/C,IAAI,aAAa9L,UAAU,sBAAsBuN,MAAO,MAClF,qBAAKvN,UAAU,kBAAf,SACE,qBAAK4L,IAAKkD,GAAahD,IAAI,gCAE7B,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,YAG3C,eAAC,KAAD,CAAKG,WAAS,UAAUG,iBAAe,MAAMF,oBAAkB,MAA/D,UACE,qBAAKlN,UAAU,kBAAf,SACE,qBAAK4L,IAAKmD,GAAajD,IAAI,gCAE7B,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,SACzC,qBAAKlB,IAAK0B,GAAcxB,IAAI,WAAW9L,UAAU,oBAAoBuN,MAAO,SAG9E,eAAC,KAAD,CAAKN,WAAS,UAAUG,iBAAe,OAAOC,4BAA0B,aAAaH,oBAAkB,MAAvG,UACE,qBAAKlN,UAAU,kBAAf,SACE,qBAAK4L,IAAKoD,GAAalD,IAAI,0BAE7B,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,gBAK3CmC,GAAc,SAAC,GAA6C,EAA3CpH,cAA2C,EAA5BqH,SAA6B,IAAnBpC,EAAkB,EAAlBA,YAC9C,OACE,eAAC,KAAD,CAAK7B,OAAQ,CAAC,GAAI,GAAIgB,QAAQ,SAASjM,UAAU,sBAAjD,UACE,eAAC,KAAD,CAAKiN,WAAS,UAAUG,iBAAe,MAAMF,oBAAkB,MAA/D,UACE,qBAAKlN,UAAU,kBAAf,SACE,qBAAK4L,IAAKuD,GAAarD,IAAI,qBAE7B,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,SACzC,qBAAKlB,IAAK0B,GAAcxB,IAAI,WAAW9L,UAAU,oBAAoBuN,MAAO,SAE9E,eAAC,KAAD,CAAKN,WAAS,UAAUG,iBAAe,MAAMF,oBAAkB,MAA/D,UACE,qBAAKtB,IAAKiD,GAAgB/C,IAAI,aAAa9L,UAAU,sBAAsBuN,MAAO,MAClF,qBAAKvN,UAAU,kBAAf,SACE,qBAAK4L,IAAKwD,GAAkBtD,IAAI,gCAElC,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,YAE3C,eAAC,KAAD,CAAKG,WAAS,UAAUG,iBAAe,OAAOF,oBAAkB,MAAhE,UACE,qBAAKlN,UAAU,kBAAf,SACE,qBAAK4L,IAAKyD,GAAiBvD,IAAI,gCAEjC,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,SACzC,qBAAKlB,IAAK0B,GAAcxB,IAAI,WAAW9L,UAAU,oBAAoBuN,MAAO,SAE9E,eAAC,KAAD,CAAKN,WAAS,UAAUG,iBAAe,OAAOF,oBAAkB,MAAhE,UACE,qBAAKlN,UAAU,kBAAf,SACE,qBAAK4L,IAAK0D,GAAiBxD,IAAI,0BAEjC,qBAAK9L,UAAU,aAAf,SAA6B8M,EAAY,gBA6DlCyC,GAvDQ,WAAO,IAAD,EACKxI,KADL,mBACpBW,EADoB,aAGOgF,IAAMC,SAAS,MAHtB,mBAGpB6C,EAHoB,aAIW9C,IAAMC,SAASC,GAAYlF,EAAYmF,QAJlD,mBAIpBC,EAJoB,KAIPC,EAJO,OAKmBL,IAAMC,SAAS8C,GAAoB/H,EAAYmF,OALlE,mBAKpBmB,EALoB,KAKH0B,EALG,KAMrBC,EACJ,mBAAG1C,WAAS,UAAUG,iBAAe,MAArC,SACGN,EAAY8C,UAmBjB,OAhBAlD,IAAMM,WAAU,WACdD,EAAeH,GAAYlF,EAAYmF,OACvC6C,EAAmBD,GAAoB/H,EAAYmF,SAClD,CAACnF,EAAYmF,OAcd,qCACE,0BAAS7M,UAAU,8BAAnB,UACE,oBAAIA,UAAU,gBAAgBiN,WAAS,YAAYC,oBAAkB,MAArE,SACGJ,EAAY+C,WAEf,qBAAK7P,UAAU,sBAAf,SACE,eAAC,KAAD,CAAMwP,UAAWA,EAAWxF,SAAU,aAAU8F,UAAQ,EAAxD,UACE,eAACjC,GAAD,CAASkC,IAAI,qBAA6B/P,UAAU,cAApD,UACG2P,EACD,cAAC,GAAD,CAAkB7C,YAAaA,MAFK,KAItC,eAACe,GAAD,CAASkC,IAAI,eAAuB/P,UAAU,cAA9C,UACG2P,EACD,cAAC,GAAD,CAAa7C,YAAaA,MAFI,aAOtC,cAAC,KAAD,IACA,cAAC,GAAD,CAAqBkB,gBAAiBA,IACtC,cAAC,KAAD,IACA,cAAC,GAAD,CAAqBA,gBAAiBA,IACtC,cAAC,KAAD,Q,yCCxMAgC,GAAe,SAAC,GAAoD,IAAlDnR,EAAiD,EAAjDA,KAAMoR,EAA2C,EAA3CA,YAAaC,EAA8B,EAA9BA,SAA8B,IAApBC,gBAAoB,MAAT,GAAS,EACvE,OACE,qBAAKnQ,UAAU,gBAAf,SACE,eAAC,KAAD,CAAO2L,UAAU,WAAWrC,KAAK,QAAQsC,IAAKuE,EAAUnF,MAAM,SAA9D,UACE,cAAC,KAAD,CAAQ1B,KAAM,GAAI8G,KAAM,cAACC,GAAA,EAAD,MACxB,qBAAKrQ,UAAU,cAAf,SAA8BnB,IAC9B,qBAAKmB,UAAU,eAAf,SAA+BiQ,IAC/B,qBAAKjQ,UAAU,kBAAf,SAAkCkQ,UAuB3BI,GAjBQ,WACrB,OACE,sBAAKtQ,UAAU,0BAAf,UACE,oBAAIA,UAAU,gBAAgBiN,WAAS,YAAYC,oBAAkB,MAArE,SACGJ,GAAYhN,QAEf,qBAAKmN,WAAS,UAAUG,iBAAe,MAAMF,oBAAkB,MAA/D,SACE,cAAC,KAAD,CAAUd,UAAQ,EAACpM,UAAU,wBAA7B,SACG8M,GAAYyD,gBAAgBC,KAAI,SAAC1F,EAAGrN,GAAJ,OAC/B,cAAC,GAAD,CAAsBoB,KAAMiM,EAAEjM,KAAMoR,YAAanF,EAAE2F,UAAWP,SAAUpF,EAAEoF,SAAUC,SAAUrF,EAAEqF,UAA7E1S,c,+BC5BhB,OAA0B,wCCsB1BiT,GAnBK,SAAC,GAA+G,IAA7GC,EAA4G,EAA5GA,eAAgBC,EAA4F,EAA5FA,aAAcpK,EAA8E,EAA9EA,SAA8E,IAApE+G,aAAoE,MAA5D,IAA4D,MAAtDsD,cAAsD,MAA7C,IAA6C,EAAxCC,EAAwC,EAAxCA,aAAwC,IAA1BC,gBAA0B,MAAf,SAAe,EACjI,OACE,cAAC,IAAD,CACEC,gBAAgB,EAChB/Q,UAAU,EACVgR,OAAQ,KACRJ,OAAQA,EACRtD,MAAOA,EACP2D,UAAW,CAAEC,QAAS,EAAGL,aAAa,GAAD,OAAKA,EAAe,MAAQ,MACjEM,cAAc,EACd9Q,MAAO,CAAEyQ,SAAU,SAAUD,aAAa,GAAD,OAAKA,EAAe,MAAQ,MACrEO,QAASV,EACTW,kBAAmB,CAAE1S,KAAM,WAC3B2S,SAAUX,EAXZ,SAYE,qBAAKtQ,MAAO,CAAEkR,MAAO,OAAQX,OAAQA,EAAQM,QAAS,IAAKJ,SAAUA,GAArE,SAAkFvK,OCjBzE,OAA0B,uC,iHCG5BiL,GAAc,CACzBC,KAAM,CACJC,SAAUlV,GAEZmV,MAAO,CACLC,cAAe,iBACfC,wBAAwB,GAE1BC,OAAQ,CACNC,cAAe,CACbC,eAAgB,SAACC,EAAOxH,EAASyH,GAC/B,IAAIA,EAGJ,OAAQD,GACN,KAAKE,KAASC,MAEZ,YADAnP,QAAQC,MAAMuH,GAEhB,KAAK0H,KAASE,KAGd,KAAKF,KAASG,QAGd,KAAKH,KAASI,QAEZ,YC2DGC,GAnFf,WAOE,aAAe,IAAD,4BANdC,UAAY,IAAIC,KAAwBlB,IAM1B,KAFdmB,4BAA6B,EAI3BC,KAAKC,QAAU,KACfD,KAAKE,qBACL,OAAItB,SAAJ,IAAIA,IAAJ,UAAIA,GAAaC,YAAjB,aAAI,EAAmBC,YACrBkB,KAAKD,4BAA6B,GAGpC1P,QAAQrF,IAAIgV,KAAKG,aAAcH,KAAKI,sBAfxC,sDAkBE,WACEJ,KAAKG,aAAe,CAClBE,OAAQ,GACRC,OAAQ,kBAGVN,KAAKI,qBAAL,2BACKJ,KAAKG,cADV,IAEEI,kBAAmB1W,MA1BzB,mBA8BE,SAAM2W,EAAYC,GAAU,IAAD,OACN,eAAfD,EACFR,KAAKH,UACFa,WAAWV,KAAKG,cAChB5T,MAAK,SAACoU,GACL,EAAKC,eAAeD,EAAMF,MAE3BI,OAAM,SAACC,GACNzQ,QAAQC,MAAMwQ,MAEM,kBAAfN,GACTR,KAAKH,UAAUkB,cAAcf,KAAKI,wBAzCxC,oBA6CE,SAAOH,GACL,IAAMe,EAAgB,CACpBf,WAGFD,KAAKH,UAAUoB,OAAOD,KAlD1B,4BAoDE,SAAepR,EAAUsR,GACN,OAAbtR,GAA0C,OAArBA,EAASqQ,QAChCD,KAAKC,QAAUrQ,EAASqQ,QAExBD,KAAKC,QAAUD,KAAKmB,aAGlBnB,KAAKC,SACPiB,EAAiBlB,KAAKC,WA5D5B,wBA+DE,WACE5P,QAAQrF,IAAR,kBACA,IAAMoW,EAAkBpB,KAAKH,UAAUwB,iBACvC,GAAwB,OAApBD,EAMJ,OAAIA,EAAgBlX,OAAS,GAG3BmG,QAAQrF,IAAI,gEACLoW,EAAgB,IACa,IAA3BA,EAAgBlX,OAClBkX,EAAgB,QADlB,EATL/Q,QAAQrF,IAAI,4BApElB,KCDMsW,GAAKtQ,OAAOuQ,UAAUC,UACtBC,GAAOH,GAAGI,QAAQ,SAClBC,GAASL,GAAGI,QAAQ,YACpBE,GAAOH,GAAO,GAAKE,GAAS,EAwDnBE,GArDmB,SAAC,GAAyB,IAAvBC,EAAsB,EAAtBA,gBAE7BC,EAAuB,IAAInC,GAFwB,EAGf9F,oBAAS,GAHM,mBAGnCkI,GAHmC,aAIjClI,qBAJiC,mBAI5C2G,GAJ4C,WAqBnDwB,EAAsB,SAACC,GAE3BF,KAAqB,OAAJE,QAAI,IAAJA,OAAA,EAAAA,EAAMlW,OACvB8V,EAAgBI,GAChBzB,EAAQyB,IAGV,OACE,qBAAKzS,GAAG,uBAAR,SACE,cAAC,wBAAD,CAAsB0S,QAAS,kBAxBrB,SAACC,GACb,IACMC,EAAYT,GAAO,gBADR,aAIjBG,EAAqBO,MAAMD,EAAWJ,GAmBCM,IAAqBC,UAAU,UAAUC,SAAS,OAAOtK,MAAM,SAAS9M,KAAK,wBAAwB8B,UAAU,sCCvBpJuV,GAAc,SAAC,GAAwB,IAAtBC,EAAqB,EAArBA,eAAqB,EACbzO,KADa,2BACjC8F,KADiC,KAEVF,mBAAS,KAFC,mBAEnC8I,EAFmC,KAEzBC,EAFyB,OAGZ/I,qBAHY,mBAG1BgJ,GAH0B,aAIJhJ,qBAJI,mBAMpCiJ,GANoC,UAMxBC,iBAAO,OACnBC,EAAeD,iBAAO,MAItBE,EAAkBC,uBAAY,WAClCC,MAAM,iBACL,IAEGC,EAAkBF,uBAAY,WAClCL,EAAW,MACXD,EAAY,IAEZO,MAAM,oBACL,IAEGtB,EAAe,uCAAG,WAAO7B,GAAP,SAAAjR,EAAA,sDACtB2T,EAAe,CAAEW,SAAQ,OAAErD,QAAF,IAAEA,OAAF,EAAEA,EAASjU,KAAM+D,MAAK,OAAEkQ,QAAF,IAAEA,OAAF,EAAEA,EAASqD,SAAUC,SAAU,gBAAiBC,eAAe,IADxF,2CAAH,sDAIJL,uBAAY,WAAO,IAAD,IACjC,OAAQP,GACN,IAAK,SACH,UAAAG,EAAUU,eAAV,SAAmBC,WACnB,MACF,IAAK,YACH,UAAAT,EAAaQ,eAAb,SAAsBC,cAKzB,CAACd,IACJ,OACE,eAAC,KAAD,CAAO9J,UAAU,WAAWrL,MAAO,CAAEiN,MAAO,QAA5C,UACE,cAAC,qBAAD,CACEiJ,IAAKZ,EACLa,UAAS,OAAEja,QAAF,IAAEA,IAAc,GACzBuZ,gBAAiBA,EACjBW,aAnCe,aAoCfC,aAAcja,EACdwZ,gBAAiBA,EACjBU,UAAW,YAAwB,EAArBnB,SAAsB,IAAZxT,EAAW,EAAXA,KACtBuT,EAAe,CAAEW,SAAUlU,EAAKpD,KAAM+D,MAAOX,EAAKW,MAAOwT,SAAU,gBAAiBC,eAAe,KAErGQ,SAAU,SAAClD,GACTzQ,QAAQrF,IAAI8V,IAXhB,SAaE,cAAC,qBAAD,CAAmB3I,MAAM,SAAS9M,KAAK,qBAAqB8B,UAAU,kCAGxE,cAAC,GAAD,CAA2B2U,gBAAiBA,QA8XnCmC,GAzXI,SAAC,GAA+C,IAA7CC,EAA4C,EAA5CA,iBAA4C,IAA1BC,mBAA0B,SAC1DxP,EAAUC,cADgD,EAElCiF,IAAMC,UAAS,GAFmB,mBAEzDsK,EAFyD,KAEhDC,EAFgD,OAGhCnQ,KAHgC,mBAGzDW,EAHyD,KAG5CC,EAH4C,OAIrBV,KAJqB,mBAIpCgB,GAJoC,KAIvDL,gBAJuD,MAMxDiF,EAASnF,EAATmF,KANwD,EAOlCH,IAAMC,UAAS,GAPmB,gCASlBD,IAAMC,UAAS,IATG,mBASzDwK,EATyD,KASvCC,EATuC,OAU/B1K,IAAMC,SAASqK,IAAe,GAVC,mBAUzDK,EAVyD,KAU9CC,EAV8C,OAYpC5K,IAAMC,SAAS,IAZqB,mBAYzDhD,EAZyD,KAYhD4N,EAZgD,OAaxC7K,IAAMC,SAAS,IAbyB,mBAazD6K,EAbyD,KAalDC,EAbkD,OAejDC,KAAKC,UAAbC,EAfyD,sBAgB3CF,KAAKC,UAAnBE,EAhByD,oBAkB1DC,EAAW,SAACpW,IACZ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAU2U,gBA2DbkB,EAAS,IACT5P,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,KAC/C4O,IACAtV,EACEC,GACA,SAACqW,GACCb,GAAW,GACXvT,EAAaoU,EAAEtU,OAAO,WACpBkE,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,KAC/CX,EAAQuC,KAAK,gBACb9B,EAAY,CAAErJ,KAAMkG,EAAYY,gBAAiByC,QAAS,WAG9D,SAACwL,GACChM,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,KAC/CoP,EAAS5D,EAAI9T,SAzEjB+X,EAAKI,iBAAiB5Y,MAAK,SAAC2Y,GAC1B,MAAK,QAAQE,KAAKvW,EAAS0U,UAUtB,QAAQ6B,KAAKvW,EAAS0U,UAStB,QAAQ6B,KAAKvW,EAAS0U,UAStB,eAAe6B,KAAKvW,EAAS0U,WASlCmB,EAAS,IACTL,GAAW,QACXzV,EACEC,GACA,SAACqW,GACChB,IACAG,GAAW,GACXvT,EAAaoU,EAAEtU,OAAO,WACpBkE,EAAS,CAAE/I,KAAMkG,EAAYC,SAAUoD,QAAS4P,EAAEhD,OAClDvN,EAAQuC,KAAK,gBACb9B,EAAY,CAAErJ,KAAMkG,EAAYY,gBAAiByC,QAAS,WAG9D,SAACwL,GACCuD,GAAW,GACXK,EAAS5D,QAvBXiE,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,uEAGN,IAfPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,mDAGN,IAfPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,6DAGN,IAhBPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,6DAGN,OA0Lf,OACE,qBAAKnY,UAAU,sBAAf,SACE,eAAC,KAAD,CAAKiM,QAAQ,SAASjB,MAAM,QAAQ1K,MAAO,CAAEuQ,OAAQ,QAArD,UACE,eAAC,KAAD,CAAK3F,GAAI,GAAIC,GAAI,GAAInL,UAAU,eAA/B,UACE,qBAAK4L,IAAKwM,GAAevH,OAAO,QAAQtD,MAAM,OAAOzB,IAAI,kBACzD,6BAAKgB,GAAYD,GAAM/M,QACvB,4BAAIgN,GAAYD,GAAMwL,UAEvBlB,GACC,eAAC,KAAD,CAAKjM,GAAI,GAAIC,GAAI,GAAInL,UAAU,oCAA/B,UACG2J,GAAW,cAAC,KAAD,CAAOe,QAASf,EAAS/K,KAAK,QAAQ0Z,UAAU,EAAOC,UAAQ,IAC1Ef,GAAS,cAAC,KAAD,CAAO9M,QAAS8M,EAAO5Y,KAAK,UAAU0Z,UAAU,EAAOC,UAAQ,IAEzE,uDACA,yFACA,eAAC,KAAD,CACEX,KAAMC,EACNhZ,KAAK,iBACL2Z,OAAO,WACPC,cAAe,CAAE7V,MAAOgV,EAAKc,cAAc,UAC3CC,cAAc,EACd3Y,UAAU,qBACV4Y,SA1IO,SAAClX,GAClBwV,GAAW,GACXK,EAAS,IACTE,EAAO,IACPpU,EACE3B,GACA,SAACqW,GACCb,GAAW,GACXO,EAAOM,EAAElY,KACT6K,KAAQhH,QAAQqU,EAAElY,KAClBkX,IACAa,EAAKiB,YAAY,CAAC,aAEpB,SAAClF,GACCuD,GAAW,GACXK,EAAS5D,OAoHL,UAQE,cAAC,KAAKmF,KAAN,CACEja,KAAK,QACLka,MAAO,CACL,CACEna,KAAM,QACN8L,QAAS,mCAEX,CACEsO,UAAU,EACVtO,QAAS,uBATf,SAYE,cAAC,KAAD,CAAOuO,YAAY,YAErB,cAAC,KAAKH,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASrY,KAAK,UAAUua,SAAS,SAASnZ,UAAU,uBAArE,iCAKJ,qBAAKA,UAAU,gBAAgBgV,QAzEnB,WACpBoC,GAAkB,GAClBE,GAAY,GACZJ,GAAW,GACXK,EAAS,IACTM,EAAWgB,YAAY,CAAC,WAoEhB,+BAMFxB,GACA,eAAC,KAAD,CAAKnM,GAAI,GAAIC,GAAI,GAAInL,UAAU,gBAA/B,UACG2J,GAAW,cAAC,KAAD,CAAOe,QAASf,EAAS/K,KAAK,QAAQ0Z,UAAU,EAAOC,UAAQ,IAC3E,yCACA,eAAC,KAAD,CACEX,KAAMA,EACN/Y,KAAK,aACL2Z,OAAO,WACPC,cAAe,GACfE,cAAc,EACd3Y,UAAU,qBACV4Y,SAAUd,EAPZ,UAQE,cAAC,KAAKgB,KAAN,CACEja,KAAK,QACLka,MAAO,CACL,CACEna,KAAM,QACN8L,QAAS,kCAEX,CACEsO,UAAU,EACVtO,QAAS,uBATf,SAYE,cAAC,KAAD,CAAOuO,YAAY,YAErB,cAAC,KAAKH,KAAN,CAAWja,KAAK,WAAWka,MAAO,CAAC,CAAEC,UAAU,EAAMtO,QAAS,0BAA9D,SACE,cAAC,KAAM0O,SAAP,CAAgBH,YAAY,eAE9B,cAAC,KAAKH,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASrY,KAAK,UAAUua,SAAS,SAASnZ,UAAU,uBAArE,0BAKJ,sBAAKA,UAAU,kBAAf,UACE,qBAAKA,UAAU,kBAAkBgV,QA3GvB,WACpBkC,GAAW,GACXI,GAAY,GACZC,EAAS,IACTK,EAAKiB,YAAY,CAAC,aAClBzB,GAAkB,IAsGR,8BAGA,sBAAKpX,UAAU,oBAAf,oCACyB,sBAAMgV,QAvGnB,WACtBoC,GAAkB,GAClBG,EAAS,IACTD,GAAY,GACZM,EAAKiB,YAAY,CAAC,QAAS,cAmGQ,6BAI3B,cAAC,KAAD,iBACA,cAAC,GAAD,CAAarD,eAAgBsC,OAGhCT,GACC,eAAC,KAAD,CAAKnM,GAAI,GAAIC,GAAI,GAAInL,UAAU,gBAA/B,UACG2J,GAAW,cAAC,KAAD,CAAOe,QAASf,EAASrJ,MAAO,CAAE+Y,aAAc,QAAUza,KAAK,QAAQ2Z,UAAQ,IAC3F,0CACA,eAAC,KAAD,CACEX,KAAMA,EACN/Y,KAAK,aACL2Z,OAAO,WACPC,cAAe,GACfE,cAAc,EACd3Y,UAAU,qBACV4Y,SA5MO,SAAClX,GAClBkW,EACGI,iBACA5Y,MAAK,SAAC2Y,GACL,MAAK,QAAQE,KAAKvW,EAAS0U,UAUtB,QAAQ6B,KAAKvW,EAAS0U,UAStB,QAAQ6B,KAAKvW,EAAS0U,UAStB,eAAe6B,KAAKvW,EAAS0U,WAUlCc,GAAW,GACXK,EAAS,SACTpV,EACET,GACA,SAACqW,GACCb,GAAW,GACXvT,EAAaoU,EAAEtU,OAAO,WACpBkE,EAAS,CAAE/I,KAAMkG,EAAYC,SAAUoD,QAAS4P,EAAEhD,OAClDvN,EAAQuC,KAAK,gBACb9B,EAAY,CAAErJ,KAAMkG,EAAYY,gBAAiByC,QAAS,WAG9D,SAACwL,GACCuD,GAAW,GACXK,EAAS5D,GACTkE,EAAWgB,YAAY,CAAC,WAAY,OAAQ,WAAY,yBAxB1DjB,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,uEAGN,IAfPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,mDAGN,IAfPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,6DAGN,IAhBPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,6DAGN,MAkDVzE,OAAM,SAAClL,GACNtF,QAAQrF,IAAI,qCAuIR,UAQE,cAAC,KAAKib,KAAN,CAAWja,KAAK,WAAWka,MAAO,CAAC,CAAEC,UAAU,EAAMtO,QAAS,wBAAyB4O,IAAK,IAA5F,SACE,cAAC,KAAD,CAAOL,YAAY,eAErB,cAAC,KAAKH,KAAN,CACEja,KAAK,QACLka,MAAO,CACL,CACEna,KAAM,QACN8L,QAAS,kCAEX,CACEsO,UAAU,EACVtO,QAAS,uBATf,SAYE,cAAC,KAAD,CAAOuO,YAAY,YAErB,cAAC,KAAKH,KAAN,CAAWja,KAAK,WAAWka,MAAO,CAAC,CAAEC,UAAU,EAAMtO,QAAS,wBAAyB4O,IAAK,IAA5F,SACE,cAAC,KAAMF,SAAP,CAAgBH,YAAY,eAE9B,cAAC,KAAKH,KAAN,CACEja,KAAK,kBACL0a,aAAc,CAAC,YACfR,MAAO,CACL,CAAEC,UAAU,EAAMtO,QAAS,gCAAiC4O,IAAK,GACjE,gBAAGZ,EAAH,EAAGA,cAAH,MAAwB,CACtBc,UADsB,SACZC,EAAG7S,GACX,OAAKA,GAAS8R,EAAc,cAAgB9R,EAGrC8S,QAAQC,OAAO,IAAItH,MAAM,gDAFvBqH,QAAQE,cARzB,SAcE,cAAC,KAAMR,SAAP,CAAgBH,YAAY,uBAE9B,cAAC,KAAKH,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASrY,KAAK,UAAUua,SAAS,SAASnZ,UAAU,uBAArE,2BAMJ,cAAC,KAAD,iBACA,sBAAKA,UAAU,gBAAf,mCACwB,sBAAMgV,QAjKlB,WACpBoC,GAAkB,GAClBE,GAAY,GACZC,EAAS,IACTK,EAAKiB,YAAY,CAAC,QAAS,cA6JK,kC,2CCtarBgB,I,OAnBI,SAAC,GAAc,IAAZvQ,EAAW,EAAXA,KAAW,EACevC,KADf,0BACtBuD,EADsB,EACtBA,UAAW3H,EADW,EACXA,WADW,KAE/B,OAAKA,IAAD,OAAe2H,QAAf,IAAeA,OAAf,EAAeA,EAAWzL,MAE1B,qBAAKmB,UAAS,8BAAkBsK,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAWE,KAA7B,kBAAd,SACE,cAAC,KAAD,CAAQlK,MAAO,CAAEwZ,gBAAiB,UAAWC,cAAe,UAAYzQ,KAAMA,EAA9E,gBACGgB,QADH,IACGA,OADH,EACGA,EAAWzL,KAAK,GAAGmb,kBAMxB,qBAAKha,UAAS,8BAAkBsK,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAWE,KAA7B,kBAAd,SACE,cAAC,KAAD,CAAQlB,KAAMA,EAAM8G,KAAM,cAACC,GAAA,EAAD,IAAkBzE,IAAKjJ,Q,UCyW1CsX,GA3WA,SAAC,GAAiC,IAAD,MAA9BC,oBAA8B,MAAf,aAAe,IACNnT,KADM,0BACrCuD,EADqC,EACrCA,UAAWuC,EAD0B,EAC1BA,KAAQlF,EADkB,OAEHV,KAFG,mBAElBgB,GAFkB,KAErCL,gBAFqC,MAIxCuS,EAASnW,IAJ+B,EAKR0I,IAAMC,UAAS,GALP,gCAMVD,IAAMC,SAASyN,GAAQvN,KANb,mBAMvCwN,EANuC,KAM3BC,EAN2B,OAOV5N,IAAMC,UAAS,GAPL,mBAOvC4N,EAPuC,KAO3BC,EAP2B,OAQR9N,IAAMC,UAAS,GARP,mBAQvC8N,EARuC,KAQzBC,EARyB,OAStBhO,IAAMC,SAAS,MATO,mBASvCoI,EATuC,KASjCzB,EATiC,KAUxC9L,EAAUC,cACV5C,EAAW8V,cACXC,EAAa,WACjBF,GAAc,IAEVG,EAAiB,WACrBH,GAAc,GACdI,KAEIvE,EAAW,WACf5O,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,KAC/ClE,GACE,SAAC8T,GAECpQ,EAAS,CAAE/I,KAAMkG,EAAYE,QAASmD,QAAS,KAC/CR,EAAS,CAAE/I,KAAMkG,EAAYC,SAAUoD,QAAS,OAChDF,EAAY,CAAErJ,KAAMkG,EAAYY,gBAAiByC,QAAS,KAC1DX,EAAQuC,KAAK,QAEf,SAAC4J,QAMCoH,EAAmB,SAACC,EAASC,GACjC,OAAID,IAAYC,EACP,cAEA,IAIXvO,IAAMM,UAAN,sBAAgB,sBAAAnL,EAAA,sDACdyY,EAAcF,GAAQvN,IAClBvC,GACFgJ,EAAQ,eAAKhJ,IAHD,2CAKb,CAACA,EAAWuC,IAEf,IAGMiO,EAAc,WAClBN,GAAc,IAGhB9N,IAAMM,WAAU,WAAO,IAAD,GACpB,UAAInI,EAASF,aAAb,aAAI,EAAgBuW,aAClBL,MAED,WAAChW,EAASF,aAAV,aAAC,EAAgBuW,aAEpB,IAAMC,EACJ,eAAC,KAAD,WACE,cAAC,KAAKrC,KAAN,CAEE1I,KAAM,cAACC,GAAA,EAAD,IACN2E,QAAS,WACPxN,EAAQuC,KAAK,CAAErF,SAAU,WAAYC,MAAO,CAAErC,GAAI,QAJtD,SAMG+X,EAAWe,SAASC,WALjB,KAON,cAAC,KAAKC,QAAN,IACA,cAAC,KAAKxC,KAAN,CAEE1I,KAAM,cAACmL,GAAA,EAAD,IACNvG,QAAS,WACPxN,EAAQuC,KAAK,CAAErF,SAAU,WAAYC,MAAO,CAAErC,GAAI,QAJtD,SAMG+X,EAAWe,SAASI,mBALjB,KAON,cAAC,KAAKF,QAAN,IAWA,cAAC,KAAKxC,KAAN,CAAmB1I,KAAM,cAACqL,GAAA,EAAD,IAAoBzG,QAASuB,EAAtD,SACG8D,EAAWqB,QAAQ5H,QADP,QAKnB,OACE,sBAAKxR,GAAG,eAAR,UACE,eAAC,KAAD,CAAKA,GAAG,cAActC,UAAS,sBAAiB,gBAAkBiM,QAAQ,gBAAgBjB,MAAM,SAAhG,UACE,cAAC,KAAD,CAAK2Q,KAAM,EAAX,SACE,eAAC,KAAD,CAAO3Q,MAAM,SAAShL,UAAU,mBAAhC,UACE,qBACEA,UAAU,WACVgV,QAAS,YACP,OAAID,QAAJ,IAAIA,OAAJ,EAAIA,EAAMlW,MACR2I,EAAQuC,KAAK,gBAEbvC,EAAQuC,KAAK,MANnB,SASE,qBAAK6B,IAAKgQ,GAAY9P,IAAI,aAE3BuO,EAAWwB,YACV,qCACE,qBAAK7b,UAAU,UAAf,eACA,qBAAKA,UAAU,eAAf,SAA+Bqa,EAAWwB,qBAKlD,cAAC,KAAD,CAAKF,KAAM,GAAI3b,UAAU,eAAegL,MAAM,MAA9C,SACE,eAAC,KAAD,CAAO1B,KAAK,QAAQhJ,MAAO,CAAEwb,MAAO,SAApC,UACE,qBACE9b,UAAS,qBAAgB+a,EAAiB,iBAAkBlW,EAASH,WACrEsQ,QAAS,WACPxN,EAAQuC,KAAK,mBAHjB,SAKGsQ,EAAWqB,QAAQK,eAWpB5B,GACA,mCACE,qBACEna,UAAS,qBAAgB+a,EAAiB,cAAelW,EAASH,WAClEsQ,QAAS,kBAAMxN,EAAQuC,KAAK,gBAF9B,SAGGsQ,EAAWqB,QAAQM,cAOxB7B,GACA,qCACE,cAAC,KAAD,CACE7Q,KAAK,QACLtJ,UAAU,yBACVgV,QAAS,YACP,OAAID,QAAJ,IAAIA,OAAJ,EAAIA,EAAMlW,MACR2I,EAAQuC,KAAK,gBAEbvC,EAAQuC,KAAK,YAPnB,SAUGsQ,EAAWqB,QAAQO,MAGtB,cAAC,KAAD,CAAQ3S,KAAK,QAAQ0L,QAAS6F,EAAgB7a,UAAU,uBAAxD,SACGqa,EAAWqB,QAAQQ,aAKhB,OAAT5R,QAAS,IAATA,OAAA,EAAAA,EAAWzL,OAAQ,cAAC,KAAD,CAAKyB,MAAO,CAAE6Q,QAAS,MAAOgL,MAAO,WAArC,gBACV,OAAT7R,QAAS,IAATA,OAAA,EAAAA,EAAWzL,OACV,cAAC,KAAD,CAAUud,UAAU,cAAcC,QAASlB,EAAMmB,QAAS,CAAC,SAAUC,iBAAiB,qBAAtF,SACE,qBAAKvc,UAAU,uCAAuCgV,QAAS,SAACxM,GAAD,OAAOA,EAAEgU,kBAAxE,SACE,eAAC,KAAD,WACE,eAAC,KAAD,CAAO7Q,UAAU,WAAWrC,KAAM,EAAlC,WACO,OAAJyL,QAAI,IAAJA,OAAA,EAAAA,EAAMlW,OACL,sBAAKmB,UAAU,YAAf,UACGqa,EAAWoC,QADd,IACwBhc,EAAc,OAACsU,QAAD,IAACA,OAAD,EAACA,EAAMlW,KAAM,IADnD,IACwD,cAAC6d,GAAA,EAAD,OAG1D,sBAAK1c,UAAU,mBAAf,UACkB,UAAX,OAAJ+U,QAAI,IAAJA,OAAA,EAAAA,EAAMvK,OACL,qCACE,sBAAMxK,UAAU,cAAhB,eADF,WAC0C+U,QAD1C,IAC0CA,OAD1C,EAC0CA,EAAMxK,WADhD,cACgEwK,QADhE,IACgEA,OADhE,EACgEA,EAAM4H,YADtE,IACoFtC,EAAWuC,cAGjF,WAAX,OAAJ7H,QAAI,IAAJA,OAAA,EAAAA,EAAMvK,OACL,qCACE,sBAAMxK,UAAU,cAAhB,eADF,WAC0C+U,QAD1C,IAC0CA,OAD1C,EAC0CA,EAAMxK,WADhD,IAC6D8P,EAAWwC,gBAK9E,cAAC,GAAD,CAAYvT,KAAM,iBAO9B,cAAC,KAAD,CAAKtJ,UAAU,cAAf,SACE,qBAAKA,UAAU,YAAYgV,QA3JhB,WACjBwF,GAAeD,IA0JT,UACY,OAATjQ,QAAS,IAATA,OAAA,EAAAA,EAAWzL,MACV,eAAC,KAAD,CAAOyK,KAAM,EAAGhJ,MAAO,CAAEwc,YAAa,QAAtC,UACE,sBAAM9c,UAAU,YAAhB,SAA6BsK,EAAUzL,OADzC,IACsD,cAAC,GAAD,CAAYyK,KAAM,QAGxE,cAACyT,GAAA,EAAD,CAAczc,MAAO,CAAE0L,SAAU,QAAUhM,UAAU,uBAM3D,cAAC,GAAD,CAAa2Q,eAAgB8J,EAAc7J,aAAcgK,EAAY9J,cAAY,EAACD,OAAQ,IAA1F,SACE,cAAC,GAAD,CAAYkG,iBAAkB6D,SAKlC,cAAC,KAAD,CACE9a,MACE,qBAAKE,UAAU,WAAWgV,QAAS,kBAAW,OAAJD,QAAI,IAAJA,OAAA,EAAAA,EAAMlW,MAAOqb,EAAa,eAAiB1S,EAAQuC,KAAK,MAAlG,SACE,qBAAK6B,IAAKgQ,GAAY9P,IAAI,aAG9BsQ,UAAU,MACV7O,MAAM,OACNsD,OAAQsJ,EAAS,IAAM,IACvB6C,QAASlC,EACTzJ,QAASkJ,EACTra,aAAc,kBAAMC,SAASC,eAAe,iBAC5CJ,UAAU,wBACVid,MACE,cAAC,KAAD,UACE,cAAC,KAAD,CAAQjI,QAAS8F,EAAjB,iBAfN,SAkBE,eAAC,KAAD,CAAK7O,QAAQ,MAAMhB,OAAQ,CAAC,EAAG,IAAKD,MAAM,SAA1C,UACE,cAAC,KAAD,CAAK2Q,KAAM,GAAX,SACE,cAAC,KAAD,CACE/c,KAAK,OACLoB,UAAS,mBAAc+a,EAAiB,UAAWlW,EAASH,WAC5DsQ,QAAS,YACP,OAAID,QAAJ,IAAIA,OAAJ,EAAIA,EAAMlW,OACR2I,EAAQuC,KAAK,gBACb+Q,MAEAtT,EAAQuC,KAAK,WACb+Q,MATN,SAYGT,EAAWqB,QAAQO,SAGtB9B,GACA,cAAC,KAAD,CAAKwB,KAAM,GAAX,SACE,cAAC,KAAD,CACE/c,KAAK,OACLoB,UAAS,mBAAc+a,EAAiB,cAAelW,EAASH,WAChEsQ,QAAS,WACP8F,IACAtT,EAAQuC,KAAK,gBALjB,SAOGsQ,EAAWqB,QAAQM,aAkB1B,cAAC,KAAD,CAAKL,KAAM,GAAX,SACE,cAAC,KAAD,CACE/c,KAAK,OACLoW,QAAS,WACPxN,EAAQuC,KAAK,kBACb+Q,KAEF9a,UAAU,WANZ,SAOGqa,EAAWqB,QAAQK,gBAIvB5B,GACC,qCACE,cAAC,KAAD,CAAKwB,KAAM,GAAX,SACE,cAAC,KAAD,CACE/c,KAAK,OACLoW,QAAS,WACPxN,EAAQuC,KAAK,CAAErF,SAAU,WAAYC,MAAO,CAAErC,GAAI,OAClDwY,KAEF9a,UAAS,WANX,SAOGqa,EAAWe,SAASC,cAczB,eAAC,KAAD,CAAKM,KAAM,GAAX,UACE,cAAC,KAAD,CAASrb,MAAO,CAAE4c,OAAQ,KAC1B,eAAC,KAAD,CAAOvR,UAAU,WAAWrC,KAAM,EAAlC,UACE,qBAAKtJ,UAAU,YAAf,gBAA4B+U,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAMlW,OAClC,sBAAKmB,UAAU,mBAAf,UACkB,UAAX,OAAJ+U,QAAI,IAAJA,OAAA,EAAAA,EAAMvK,OACL,qCACE,sBAAMxK,UAAU,cAAhB,eADF,WAC0C+U,QAD1C,IAC0CA,OAD1C,EAC0CA,EAAMxK,WADhD,cACgEwK,QADhE,IACgEA,OADhE,EACgEA,EAAM4H,YADtE,IACoFtC,EAAWuC,cAGjF,WAAX,OAAJ7H,QAAI,IAAJA,OAAA,EAAAA,EAAMvK,OACL,qCACE,sBAAMxK,UAAU,cAAhB,eADF,WAC0C+U,QAD1C,IAC0CA,OAD1C,EAC0CA,EAAMxK,WADhD,IAC6D8P,EAAWwC,uBAQlF1C,GACA,eAAC,KAAD,CAAKwB,KAAM,GAAX,UACE,cAAC,KAAD,CAASrb,MAAO,CAAE4c,OAAQ,KAC1B,cAAC,KAAD,CAAQ5T,KAAK,QAAQ0L,QAAS6F,EAAgB7a,UAAU,uBAAxD,SACGqa,EAAWqB,QAAQQ,YAIzB/B,GACC,eAAC,KAAD,CAAKwB,KAAM,GAAX,UACE,cAAC,KAAD,CAASrb,MAAO,CAAE4c,OAAQ,KAC1B,cAAC,KAAD,CAAQ5T,KAAK,QAAQ0L,QAASuB,EAAUvW,UAAU,wBAAlD,SACGqa,EAAWqB,QAAQ5H,qB,uCCjXrB,ICAA,IDAA,IAA0B,kCEA1B,ICAA,IDAA,IAA0B,2CEA1B,OAA0B,yCCA1B,OAA0B,yC,gCCKjCqJ,I,OAAUC,KAAVD,OAqBOE,GAnBF,SAAC,GAAc,IAAZC,EAAW,EAAXA,KACd,OACE,sBAAKtd,UAAU,cAAciN,WAAS,UAAUC,oBAAkB,MAAMG,4BAA0B,aAAlG,UACE,oBAAIrN,UAAU,YAAYiN,WAAS,YAAYC,oBAAkB,MAAME,iBAAe,MAAtF,SACGkQ,EAAKxd,QAER,qBAAKE,UAAU,gBAAf,SACE,cAAC,KAAD,CAAUud,UAAU,EAAOC,iBAAkB,CAAC,KAAMC,WAAS,EAACC,mBAAmB,QAAQC,WAAY,qBAAGC,SAA2B,cAACC,GAAA,EAAD,IAAoB,cAACC,GAAA,EAAD,KAAvJ,SACGR,EAAKA,KAAK9M,KAAI,SAAC1F,EAAGrN,GAAJ,OACb,cAAC0f,GAAD,CAAOY,OAAQ,oBAAI/d,UAAU,eAAd,SAA8B8K,EAAEkT,WAA/C,SACE,mBAAG1d,MAAO,CAAE2d,YAAa,IAAzB,SAAgCnT,EAAEoT,OADgCzgB,EAAI,c,kBCd9E+D,GAASJ,EAEF+c,GAAa,uCAAG,WAAOC,EAAWzc,EAAWC,GAA7B,mBAAAC,EAAA,+EAEPL,GAAOM,KAAK,mBAAoBsc,GAFzB,OAGN,OADbrc,EAFmB,QAGjBC,QAAkBD,EAAIE,KAAKyB,QACjC/B,EAAUI,EAAIE,KAAKpC,KAEnB+B,IANuB,gDASzBA,GAAU,eAAIa,gBAAJ,mBAAcR,YAAd,eAAoBkB,QAAS,0CATd,yDAAH,0DAabkb,GAAiB,uCAAG,WAAOD,EAAWzc,EAAWC,GAA7B,mBAAAC,EAAA,+EAEXL,GAAOM,KAAK,wBAAyBsc,GAF1B,OAGV,OADbrc,EAFuB,QAGrBC,QAAkBD,EAAIE,KAAKyB,SACjC/B,EAAUI,EAAIE,MAJa,gDAO7BL,GAAU,eAAIa,gBAAJ,mBAAcR,YAAd,eAAoBkB,QAAS,0CAPV,yDAAH,0DCwEfmb,GAlFM,SAAC,GAAyC,IAAvCC,EAAsC,EAAtCA,aAAcC,EAAwB,EAAxBA,kBAAwB,EAC1BzX,KAD0B,mBACnDuD,EADmD,KACnDA,UADmD,QAEtCoN,KAAKC,WAApB8G,EAFqD,sBAI9B/R,IAAMC,UAAS,GAJe,mBAIrDsK,EAJqD,KAI5CC,EAJ4C,KA6B5D,OALAxK,IAAMM,WAAU,WACVuR,IAAY,OAAIjU,QAAJ,IAAIA,OAAJ,EAAIA,EAAWzL,OAC7B4f,EAAYC,eAAe,CAAE7f,KAAI,OAAEyL,QAAF,IAAEA,OAAF,EAAEA,EAAWzL,KAAM+D,MAAK,OAAE0H,QAAF,IAAEA,OAAF,EAAEA,EAAW1H,UAEvE,CAAC2b,IAEF,mCACE,cAAC,GAAD,CAAa5N,eAAgB4N,EAAc3N,aAAc4N,EAAmBjR,MAAO,IAAKsD,OAAQ,IAAKC,cAAY,EAAjH,SACE,sBAAK9Q,UAAU,oBAAf,UACE,oBAAIA,UAAU,uBAAd,wBACA,eAAC,KAAD,CAAM4X,KAAM6G,EAAa5f,KAAK,kBAAkB2Z,OAAO,WAAWG,cAAc,EAAO3Y,UAAU,qBAAqB4Y,SA7B7G,SAACjO,GAChBuM,GAAW,GACXiH,GACExT,GACA,SAAC9K,GACC6K,KAAQhH,QAAQ,6CAChB+a,EAAY5F,YAAY,CAAC,qBACzB3B,GAAW,GACXsH,OAEF,WACEtH,GAAW,GAEXxM,KAAQvH,MAAM,+CAgBZ,UACE,cAAC,KAAK2V,KAAN,CACE6F,MAAM,OACN9f,KAAK,OACLka,MAAO,CACL,CACEC,UAAU,EACVtO,QAAS,wBANf,SASE,cAAC,KAAD,CAAOuO,YAAY,WAErB,cAAC,KAAKH,KAAN,CACE6F,MAAM,QACN9f,KAAK,QACLka,MAAO,CACL,CACEC,UAAU,EACVtO,QAAS,6BANf,SASE,cAAC,KAAD,CAAOuO,YAAY,YAGrB,cAAC,KAAKH,KAAN,CACE6F,MAAM,UACN9f,KAAK,UACLka,MAAO,CACL,CACEC,UAAU,EACVtO,QAAS,8CANf,SASE,cAAC,KAAMkU,SAAP,CAAgBC,KAAM,EAAG5F,YAAY,iCAGvC,cAAC,KAAKH,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASrY,KAAK,UAAUua,SAAS,SAASnZ,UAAU,4BAArE,qCC5DN8e,GAAWC,KAAXD,OAwHOE,GAtHO,SAAC,GAA0B,IAAD,IAAvB1B,YAAuB,WAAhB2B,EAAgB,IACNlY,KADM,0BACrCuD,EADqC,EACrCA,UAAWuC,EAD0B,EAC1BA,KAAQlF,EADkB,KAGxCH,EAAUC,cAH8B,EAIRiF,IAAMC,UAAS,GAJP,mBAIvC4R,EAJuC,KAIzBW,EAJyB,KAiB9C,OACE,sBAAKlf,UAAU,iBAAiBsC,GAAG,eAAnC,eACY2c,IAAT3B,GACC,qCACE,qBAAKtd,UAAU,gBAAf,SACE,eAAC,KAAD,CAAKiL,OAAQ,CAAC,EAAG,IAAKD,MAAM,SAASiB,QAAQ,SAA7C,UACE,cAAC,KAAD,CAAKkT,GAAI,GAAIC,GAAI,GAAjB,SACE,cAAC,GAAD,CAAM9B,KAAMA,MAEd,cAAC,KAAD,CAAK6B,GAAI,GAAIC,GAAI,GAAjB,SACE,cAAC,KAAD,CAAQpf,UAAU,eAAegV,QAjBtB,WACvBkK,GAAc,IAgBF,6CAMN,cAAC,KAAD,OAGJ,eAAC,KAAD,CAAKlf,UAAU,mBAAf,YACG,OAACsK,QAAD,IAACA,OAAD,EAACA,EAAWyK,OACX,cAAC,KAAD,CAAK4G,KAAM,GAAI3b,UAAU,iBAAzB,SACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAb,UACE,cAAC,KAAD,UACE,eAAC,KAAD,CAAON,UAAU,WAAWrC,KAAK,SAAjC,UACE,qBAAKtJ,UAAU,eAAf,0BACA,8BACE,oBAAGqf,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,UACE,qBAAK5C,UAAU,aAAa4L,IAAK2T,GAAWzT,IAAI,UADlD,IAC8DwT,GAAczS,GAAMjK,WAGpF,sBAAK5C,UAAU,sBAAf,UACE,cAAC,IAAD,CAAMyE,GAAG,oBAAoBnE,MAAO,CAAEkf,UAAW,UAAjD,SACGF,GAAczS,GAAM4S,iBACf,IACR,sBAAMzf,UAAU,YAAhB,eAJF,IAIuC,cAAC,IAAD,CAAMyE,GAAG,kBAAT,SAA4B6a,GAAczS,GAAM6S,wBAI3F,cAAC,KAAD,UACE,cAAC,KAAD,CAAO/T,UAAU,WAAWX,MAAM,MAAM1B,KAAK,SAA7C,SACE,eAAC,KAAD,CAAOqC,UAAU,aAAarC,KAAK,SAAS0B,MAAM,SAAShL,UAAU,eAArE,UACE,mBAAGqf,KAAMC,GAAczS,GAAM8S,OAAQC,OAAO,SAA5C,SACE,qBAAK5f,UAAU,cAAc4L,IAAKiU,GAAc/T,IAAI,eAEtD,mBAAGuT,KAAMC,GAAczS,GAAMiT,YAAaF,OAAO,SAAjD,SACE,qBAAK5f,UAAU,cAAc4L,IAAKmU,GAAajU,IAAI,cAErD,mBAAGuT,KAAMC,GAAczS,GAAMmT,YAAaJ,OAAO,SAAjD,SACE,qBAAK5f,UAAU,cAAc4L,IAAKqU,GAAanU,IAAI,0BAQjE,cAAC,KAAD,CAAK6P,KAAM,GAAI3b,UAAU,oBAAzB,SACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,SAAnC,UACE,cAAC,KAAD,UACE,qBAAKhL,UAAU,WAAWgV,QAAS,kBAAMxN,EAAQuC,KAAK,MAAtD,SACE,qBAAK6B,IAAKgQ,GAAY9P,IAAI,eAG9B,cAAC,KAAD,UACE,gCACE,cAAC,IAAD,CAAMrH,GAAG,oBAAoBzE,UAAU,gBAAgBM,MAAO,CAAEkf,UAAW,UAA3E,SACGF,GAAczS,GAAM4S,iBACf,IACR,sBAAMzf,UAAU,UAAhB,eAAmC,IACnC,cAAC,IAAD,CAAMyE,GAAG,kBAAkBzE,UAAU,gBAArC,SACGsf,GAAczS,GAAM6S,qBAI3B,eAAC,KAAD,WACE,qBAAKpd,GAAG,6BACR,cAAC,KAAD,CAASxC,MAAM,kBAAkBsc,UAAU,OAA3C,SACE,eAAC,KAAD,CACExV,MACE,qCACE,cAACsZ,GAAA,EAAD,IADF,IACsBrT,KAGxB7M,UAAU,kBACVM,MAAO,CAAEiN,MAAO,KAChBvD,SAlGK,SAACpD,GhDgFO,IAAC/H,EAAMoD,EAANpD,EgD/EZ,OhD+EkBoD,EgD/EV2E,EhD+EmBlH,aAAaoE,QAAQjF,EAAMW,KAAKuE,UAAU9B,IgD9ErF0F,EAAS,CAAE/I,KAAMkG,EAAYO,KAAM8C,QAASvB,KAwFhC,UASE,cAACkY,GAAD,CAAQlY,MAAM,UAAd,qBACA,cAACkY,GAAD,CAAQlY,MAAM,6CAAd,wEAQX2X,GAAgB,cAAC,GAAD,CAAcA,aAAcA,EAAcC,kBAnGrC,WACxBU,GAAc,U,qBCfHiB,GAbA,SAAC,GAAwB,IAAtB3Z,EAAqB,EAArBA,SAAU8W,EAAW,EAAXA,KAC1B,OACE,sBAAKtd,UAAU,cAAcsC,GAAG,cAAhC,UACE,cAAC,GAAD,IACA,qBAAKtC,UAAU,kBAAf,SAAkCwG,IAClC,cAAC,GAAD,CAAe8W,KAAMA,IACrB,cAAC,KAAD,CAAStd,UAAU,YAAYogB,SAAU,IAAzC,SACE,cAAC,KAAD,CAAQxhB,KAAK,UAAUyhB,MAAM,SAASjQ,KAAM,cAACkQ,GAAA,EAAD,IAA8BhX,KAAK,gB,UCsBxEiX,I,OAxBK,WAClB,IAAM/Y,EAAUC,cADQ,EAEQV,KAFR,mBAEjBW,EAFiB,aAGYgF,IAAMC,SAAS6T,GAAa9Y,EAAYmF,QAHpD,mBAGjB4T,EAHiB,KAGLC,EAHK,KAaxB,OATAhU,IAAMM,WAAU,WACdnJ,OAAO8c,SAAS,EAAG,GACf3c,KACFwD,EAAQuC,KAAK,kBAEd,IACH2C,IAAMM,WAAU,WACd0T,EAAcF,GAAa9Y,EAAYmF,SACtC,CAACnF,EAAYmF,OAEd,cAAC,GAAD,CAAQ+T,eAAa,EAACtD,KAAMmD,EAA5B,SACE,sBAAKzgB,UAAU,uBAAf,UACE,cAAC,GAAD,IACA,cAAC,GAAD,IACA,cAAC,GAAD,W,2DC9BD,SAAS6gB,GAAeC,EAAMC,GAInC,IAJsC,EAIhCC,GADNF,GADAA,GADAA,EAAOA,EAAKG,QAAQ,OAAQ,KAChBA,QAAQ,UAAM,MACdA,QAAQ,MAAO,MACPnkB,MAAM,KACpBokB,EAAW,GALqB,eAMpBF,GANoB,IAMtC,2BAA0B,CAAC,IAAlBG,EAAiB,QAEnBA,EAAM1W,SAAS,OAAM0W,EAAK,UAAMA,EAAN,YAAeA,IAFtB,MAGFA,EAAMrkB,MAAM,KAHV,mBAGnBskB,EAHmB,KAGXC,EAHW,KAInBD,IAAQA,EAAS,GACjBC,IAAOA,EAAQN,GAIpB,IADA,IAAMO,GAFNF,EAASjkB,OAAOikB,MAChBC,EAAQlkB,OAAOkkB,IACgB,GAAK,EAC3B5jB,EAAI2jB,EACXF,EAASnX,KAAKtM,EAAI,EAAIA,EAAI,EAAIsjB,GAC1BtjB,GAAK4jB,EAFY5jB,GAAK6jB,KAfQ,8BAqBtC,OAAOJ,ECfTK,KAAMC,oBAAoBC,UAA1B,kDAAiFF,KAAMG,QAAvF,kBAEA,IAAMC,GAAc3gB,IAAM2gB,YAEfC,GAAY,GAEjBC,GAAe,SAAC7iB,GACpB,OAAO,IAAI0a,SAAQ,SAACE,EAASD,GAC3B,IAAMvR,EAAS,IAAIC,WACnBD,EAAO0Z,OAAS,SAACtZ,GACfoR,EAAQpR,EAAEoX,OAAOhX,SAEnBR,EAAO2Z,QAAU,SAACpO,GAChBgG,EAAOhG,IAETvL,EAAOE,cAActJ,OAIzB,SAASgjB,GAAcC,EAASrlB,GAO9B,IANA,IAAIslB,EAAMD,EAAQnlB,MAAM,KACtBqlB,EAAOD,EAAI,GAAGE,MAAM,WAAW,GAC/BC,EAAOC,KAAKJ,EAAI,IAChBnB,EAAIsB,EAAKtlB,OACTwlB,EAAQ,IAAIC,WAAWzB,GAElBA,KACLwB,EAAMxB,GAAKsB,EAAKI,WAAW1B,GAG7B,OAAO,IAAI2B,KAAK,CAACH,GAAQ3lB,EAAU,CAAEgC,KAAMujB,I,SAG9BQ,G,mFAAf,WAA2B9Z,EAAQiY,GAAnC,qCAAAjf,EAAA,6DACQ4G,EAAQI,EAAO+Z,WACf7B,EAAItY,EAAM1L,OAFlB,EAI4B0L,EAAMsY,EAAI,EAAI,EAAI,GAAG8B,UAAvCtV,EAJV,EAIUA,MAAOsD,EAJjB,EAIiBA,OACfhI,EAAOia,QAAQ,CAACvV,EAAOsD,IAEjBqQ,EAAWL,GAAeC,EAAMC,GAPxC,SASuBrY,eAAYzH,SATnC,cASQ8hB,EATR,iBAWyBA,EAAOC,UAAUna,EAAQqY,GAXlD,QAWQ+B,EAXR,sBAYsBA,GAZtB,IAYE,2BAASC,EAAT,QAA8BH,EAAOD,QAAQI,GAZ/C,+CAcyBH,EAAOI,OAdhC,eAcQC,EAdR,yBAgBS,CAAEA,WAAUlC,aAhBrB,6C,sBAqBO,IAAMmC,GAAqB,SAACrkB,GACjC,OAAO,IAAI0a,QAAJ,uCAAY,WAAO4J,EAAUC,GAAjB,6BAAA1hB,EAAA,6DACX2hB,EAAS,GADE,SAEE3B,GAAa7iB,GAFf,cAEXiD,EAFW,gBAGCsf,KAAMkC,YAAYxhB,GAAMyhB,QAHzB,OAGXC,EAHW,OAIXC,EAASzjB,SAAS0jB,cAAc,UAC7BpmB,EAAI,EALI,YAKDA,EAAIkmB,EAAIG,UALP,kCAMIH,EAAII,QAAQtmB,EAAI,GANpB,eAMTumB,EANS,OAOTC,EAAWD,EAAKE,YAAY,CAAEC,MAAO,MACrCC,EAAUR,EAAOS,WAAW,MAClCT,EAAO/S,OAASoT,EAASpT,OACzB+S,EAAOrW,MAAQ0W,EAAS1W,MAVT,UAWTyW,EAAKzf,OAAO,CAAE+f,cAAeF,EAASH,SAAUA,IAAYP,QAXnD,QAYfF,EAAOzZ,KAAK6Z,EAAOW,aAZJ,QAKiB9mB,IALjB,uBAcjBmmB,EAAOY,SACPlB,EAASE,GAfQ,4CAAZ,0DAmBIiB,GAAsB,SAACC,EAAcC,EAAK3lB,EAAM4lB,GAC3D,OAAO,IAAIlL,QAAJ,uCAAY,WAAO4J,EAAUC,GAAjB,iBAAA1hB,EAAA,6DACXgjB,EAAe,GAEfC,EAAgBJ,EAAalU,IAAb,uCAAiB,WAAOuU,EAAQtnB,GAAf,iBAAAoE,EAAA,6DAC/BmjB,EAAUhD,GAAc+C,EAAQ/lB,EAAKH,OACrCkE,EAAW,IAAIC,UACZiiB,OAAO,OAAQD,GAHa,SAI/BxjB,EACHM,KAAK6iB,EAAK5hB,EAAU,CACnBmiB,YAAa,IAAIvD,IAAY,SAAkBwD,GAC7CvD,GAAU,GAAD,OAAI5iB,EAAKoK,IAAT,YAAgB3L,IAAO0nB,OAGnC/lB,MAAK,SAAC2C,GACL8iB,EAAa9a,KAAb,2BAAuBhI,EAAIE,MAA3B,IAAiCmjB,OAAQR,EAAannB,GAAK,QAE5DiW,OAAM,SAACC,GACN4P,EAAS5P,MAdwB,2CAAjB,yDAHL,SAqBX+F,QAAQ2L,IAAIP,GACf1lB,MAAK,SAAC2C,GACLuhB,EAASuB,MAEVnR,OAAM,SAACC,GACN4P,EAAS5P,MA1BI,2CAAZ,0DA+BI2R,GAAY,uCAAG,WAAOhe,EAAStI,EAAMuK,GAAtB,2CAAA1H,EAAA,kEAEpB0jB,EAAqBvmB,EAAK6K,gBAC1B2b,EAAY,EACZZ,EAAe,GACfa,EAAczmB,EAAKsK,KACL,QAAdtK,EAAKJ,KANe,wBAOhB8mB,EAAa1mB,EAAKmK,gBAPF,SAQDT,eAAYC,KAAK3J,EAAKkK,WARrB,cAQhBL,EARgB,iBASC8Z,GAAY9Z,EAAQ6c,GATrB,eAShBC,EATgB,OAUtBH,EAAYG,EAASzE,SAASnkB,OAC9B0oB,EAAcE,EAASvC,SAASwC,WAChChB,EAAee,EAASzE,SAClB2E,EAAa,IAAIlnB,KAAK,CAACgnB,EAASvC,WAbhB,UAcKC,GAAmBwC,GAdxB,QActBN,EAdsB,kBAiBpBO,EAA8B,QAAd9mB,EAAKJ,KAAiB,MAAQI,EAAKJ,KACxC,QAEX8lB,EAAea,EAEfZ,EAtBoB,UAsBX7jB,+BAtBW,0BAsB6C9B,EAAKgJ,YAtBlD,oBAsByEhJ,EAAK8I,eAtB9E,uBAsB2G9I,EAAK6I,cAtBhH,0BAsB+Iie,EAtB/I,qBAkBT,SAMG,QAAd9mB,EAAKJ,KAxBe,4CA0BF6lB,GAAoBC,EAAcC,EAAK3lB,EAAM4lB,GA1B3C,WA0Bd7iB,EA1Bc,QA4BP,QADPgkB,EAAYhkB,EAAIikB,QAAO,SAAChnB,EAAMvB,GAAP,OAA8B,IAAjBuB,EAAK0E,kBAClC,IAATqiB,OAAA,EAAAA,EAAWhpB,WAAX,OAAsBgF,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAKhF,QA5BX,0CA6BX,CACLkF,KAAM,GACNyB,SAAS,EACTuiB,cAAc,EACdvb,QAAS,oBACT8a,UAAWA,EACXC,YAAaA,IAnCG,iCAsCX,CACL/hB,SAAS,EACTzB,KAAMF,EAAImkB,MAAK,SAACrkB,EAAGskB,GAAJ,OAAW,OAADtkB,QAAC,IAADA,OAAA,EAAAA,EAAGujB,SAAH,OAAYe,QAAZ,IAAYA,OAAZ,EAAYA,EAAGf,WACxCI,UAAWA,EACXC,YAAaA,EACbQ,cAAc,IA3CE,yHA+CHviB,SAAS,KA/CN,uCAkDhBX,EAAW,IAAIC,UACZC,IAAI,OAAQyhB,GAnDC,UAoDJljB,EAAOM,KAAK6iB,EAAK5hB,EAAU,CAC3CmiB,YAAa,IAAIvD,IAAY,SAAkBwD,GAC7CvD,GAAU5iB,EAAKoK,KAAO+b,KAExBiB,mBAAoB,SAACC,GACnB,IAAMjc,EAAQkc,WAAWD,EAAcjc,OACjCkM,EAAU+P,EAAcE,OAC1BC,EAAmB7oB,KAAKC,MAAO0Y,EAAUlM,EAAS,KACtDb,EAAQid,EAAkBxnB,EAAKoK,QA5Db,WA+DH,OAXbrH,EApDgB,QA+DdC,SAAkBD,EAAIE,KAAKyB,QA/Db,0CAgEb,CAAEzB,KAAM,CAAC,2BAAKF,EAAIE,MAAV,IAAgBmjB,OAAQ,KAAM1hB,SAAS,EAAM8hB,UAAWA,EAAWC,YAAaA,EAAaQ,cAAc,IAhEtG,WAiEVlkB,EAAIE,KAAKyB,QAjEC,0CAkEb,CACLzB,KAAM,GACNyB,SAAS,EACTuiB,cAAc,EACdvb,QAAS,oBACT8a,UAAWA,EACXC,YAAaA,IAxEK,wHA6EP/hB,SAAS,KA7EF,kEAAH,0DChHV,OAA0B,yCCA1B,OAA0B,2CCA1B,OAA0B,uC,8DCiD1B+iB,GA5CG,SAAC,GAA0C,IAAxCzkB,EAAuC,EAAvCA,OAAuC,IAA/B0kB,cAA+B,MAAtB,GAAsB,MAAlB9c,eAAkB,MAAR,EAAQ,EAC1D,OAAQ5H,GACN,IAAK,QACH,OACE,cAAC,KAAD,CAAKma,MAAM,UAAUnc,UAAU,aAAaM,MAAO,CAAE6b,MAAO,WAA5D,8BAIJ,IAAK,cACH,OACE,cAAC,KAAD,CAAK/L,KAAM,cAACuW,GAAA,EAAD,CAAcC,MAAI,IAAK5mB,UAAU,aAAamc,MAAM,aAA/D,wBAIJ,IAAK,iBACH,OACE,cAAC,KAAD,CAAK/L,KAAM,cAACuW,GAAA,EAAD,CAAcC,MAAI,IAAK5mB,UAAU,aAAamc,MAAM,aAA/D,2BAIJ,IAAK,UACH,OACE,eAAC,KAAD,CAAK/L,KAAM,cAACyW,GAAA,EAAD,IAAyB7mB,UAAU,aAAamc,MAAM,UAAjE,0BACe,+BAAO9e,EAAgBuM,QAG1C,IAAK,OACH,OACE,cAAC,KAAD,CAAKwG,KAAM,cAAC0W,GAAA,EAAD,IAAyB9mB,UAAU,aAAamc,MAAM,UAAjE,kBAIJ,IAAK,QACH,OACE,cAAC,KAAD,CAAK/L,KAAM,cAAC2W,GAAA,EAAD,IAAyB/mB,UAAU,aAAamc,MAAM,QAAjE,SACGuK,IAIP,QACE,OAAO,cAAC,KAAD,CAAKvK,MAAM,UAAX,gCCxCboF,KAAMC,oBAAoBC,UAA1B,kDAAiFF,KAAMG,QAAvF,kBAEA,IAgEesF,GAhEU,SAAC,GAAc,IAAZhoB,EAAW,EAAXA,KAAW,EACL0N,IAAMC,SAAS,MADV,mBAC9BmX,EAD8B,KACpBmD,EADoB,OAEDva,IAAMC,SAAS,GAFd,mBAE9Bua,EAF8B,KAElBC,EAFkB,KAkBrC,OACE,cAAC,KAAD,CAAKlb,QAAQ,SAASjB,MAAM,SAA5B,SACE,cAAC,KAAD,UACiB,QAAdhM,EAAKJ,KACJ,eAAC,KAAD,CAAKoB,UAAU,iBAAiBsC,GAAG,WAAW2J,QAAQ,SAAtD,UACG6X,EAAW,GACV,eAAC,KAAD,CAAKnI,KAAM,GAAX,UACE,eAAC,KAAD,CAAK3Q,MAAM,SAASiB,QAAQ,SAAShB,OAAQ,CAAC,GAAI,GAAlD,UACE,cAAC,KAAD,UACE,cAAC,KAAD,CAAQrM,KAAK,UAAUwR,KAAM,cAAC,gBAAD,IAAkB4E,QAdjD,WACVkS,EAAa,GACfC,EAAcD,EAAa,IAYoDlnB,UAAU,UAAUwL,SAAyB,IAAf0b,MAEjG,eAAC,KAAD,WACGA,EADH,MACkBpD,KAElB,cAAC,KAAD,UACE,cAAC,KAAD,CACEllB,KAAK,UACLwR,KAAM,cAAC,iBAAD,IACN4E,QA5BJ,WACVkS,EAAapD,GACfqD,EAAcD,EAAa,IA2BXlnB,UAAU,WACVwL,SAAU0b,IAAepD,SAI/B,cAAC,KAAD,CAASxjB,MAAO,CAAE+Y,aAAc,QAGpC,cAAC,KAAD,CAAKsC,KAAM,GAAI3b,UAAU,qBAAzB,SACE,cAAC,KAAD,CACEhB,KAAMA,EAAK+J,YACXqe,cA5Cd,YAA8C,IAAbtD,EAAY,EAAZA,SAC/BmD,EAAYnD,IA4CA3gB,MAAO,cAAC,KAAD,CAAOuH,QAAQ,QAAQ2c,YAAY,kCAAkCzoB,KAAK,QAAQ0Z,UAAQ,IAHnG,SAIE,cAAC,KAAD,CAAM4O,WAAYA,WAKxB,qBAAKlnB,UAAU,qBAAqBM,MAAO,CAAEgnB,UAAW,IAAKvW,SAAU,QAAvE,SACE,qBAAKnF,IAAK5M,EAAKkK,UAAWqE,MAAM,OAAOzB,IAAK9M,EAAKH,cClDrDigB,GAAWC,KAAXD,OA8JOyI,GA5JM,SAAC,GAA6D,IAA3DvoB,EAA0D,EAA1DA,KAAMwoB,EAAoD,EAApDA,eAAgB/b,EAAoC,EAApCA,aAAoC,IAAtBnE,eAAsB,WACrCL,KADqC,mBACpDgB,GADoD,KACvEL,gBADuE,QAGtC8E,IAAMC,UAAS,GAHuB,mBAGzE8a,EAHyE,KAGzDC,EAHyD,KA8B1EC,EAAkB,uCAAG,WAAOC,EAAQxe,GAAf,SAAAvH,EAAA,sDACzBoG,EAAY,CAAErJ,KAAMkG,EAAYkB,gBAAiBmC,QAAS,CAAEiB,IAAKA,EAAKwe,OAAQA,KADrD,2CAAH,wDASxB,OAAItgB,EACK,cAAC,GAAD,CAAkBtI,KAAMA,IAG7B,qCACE,eAAC,KAAD,CAAKiM,OAAQ,CAAC,EAAG,GAAIjL,UAAU,iBAA/B,UACE,cAAC,KAAD,CAAK2b,KAAM,GAAX,SACE,eAAC,KAAD,CAAK1Q,OAAQ,CAAC,EAAG,IAAKgB,QAAQ,gBAAgBjB,MAAM,SAApD,UACE,cAAC,KAAD,CAAKG,GAAI,GAAI0c,GAAI,GAAjB,SACE,cAAC,KAAD,CAAS/nB,MAAOd,EAAKH,KAArB,SACE,qBAAKmB,UAAU,YAAf,SAA4BS,EAAezB,EAAKH,KAAM,UAG1D,cAAC,KAAD,CAAKsM,GAAI,GAAI0c,GAAI,GAAjB,SACE,eAAC,KAAD,CAAOjpB,KAAK,UAAU0K,KAAK,QAAQtJ,UAAU,cAA7C,UACE,cAAC,GAAD,CAAWgC,OAAQhD,EAAKgD,OAAQ4H,QAAS5K,EAAK4K,QAAS8c,OAAQ1nB,EAAK0K,YAClD,gBAAhB1K,EAAKgD,QAA4C,mBAAhBhD,EAAKgD,SACtC,cAAC,KAAD,CAASlC,MAAM,iBAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,WAAWM,MAAO,CAAEwnB,YAAa,OAAS9S,QA7CrE,WACJ,QAAdhW,EAAKJ,KACPmpB,OAAOC,KAAKpG,IAAWpR,KAAI,SAAUyX,EAAKC,GACpCtG,GAAU,GAAD,OAAI5iB,EAAKoK,IAAT,YAAgB8e,KAC3BtG,GAAU,GAAD,OAAI5iB,EAAKoK,IAAT,YAAgB8e,IAAS,wBAItCtG,GAAU5iB,EAAKoK,KAAK,sBAqCJ,SACE,cAAC,iBAAD,CAAe9I,MAAO,CAAE6nB,WAAY,OAAQhM,MAAO,aAIzD,cAAC,KAAD,CAASrc,MAAM,mBAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQkC,SAAUC,EAAczL,UAAU,WAAWgV,QAvD1D,WACxB0S,GAAgB,IAsDA,SACE,cAAC,eAAD,CAAapnB,MAAO,CAAE6b,MAAO,iBAGjC,cAAC,KAAD,CACErc,MAAM,+BACNsoB,UAAW,kBA5CDhf,EA4C0BpK,EAAKoK,SA3CzDnB,EAAY,CAAErJ,KAAMkG,EAAYiB,mBAAoBoC,QAASiB,IADpC,IAACA,GA6CVmI,SAAU,aACV8W,OAAO,MACPC,WAAW,KALb,SAME,cAAC,KAAD,CAASxoB,MAAM,qBAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQkC,SAAUC,EAAczL,UAAU,aAAvD,SACE,cAAC,gBAAD,CAAcM,MAAO,CAAE6b,MAAO,6BAQ5C,cAAC,KAAD,CAAKR,KAAM,GAAX,SACE,eAAC,KAAD,CAAK1P,QAAQ,gBAAgBjB,MAAM,SAAnC,UACE,cAAC,KAAD,CAAKG,GAAI,EAAG0c,GAAI,GAAhB,SACE,eAAC,KAAD,CAAOlc,UAAU,WAAW3L,UAAU,kBAAkBsJ,KAAM,EAA9D,UACE,cAAC,KAAD,CACEkC,SAAUC,EACVzL,UAAU,iBACVnB,KAAK,gBACL0pB,QAASvpB,EAAK6I,cACdmC,SAAU,SAACxB,GAAD,OAAOgf,EAAehf,EAAGxJ,EAAKoK,MAL1C,iCAQA,cAAC,KAAD,CACEoC,SAAUC,EACVzL,UAAU,iBACVnB,KAAK,cACL0pB,QAASvpB,EAAKgJ,YACdgC,SAAU,SAACxB,GAAD,OAAOgf,EAAehf,EAAGxJ,EAAKoK,MAL1C,+BAUJ,cAAC,KAAD,CAAK+B,GAAI,EAAG0c,GAAI,EAAG7nB,UAAyB,QAAdhB,EAAKJ,KAAiB,sBAAwB,sBAA5E,SACiB,QAAdI,EAAKJ,MACJ,qCACE,sBAAMoB,UAAU,cAAhB,oBACA,cAAC,KAAD,CAASF,MAAK,wBAAmBd,EAAKyJ,OAAtC,SACE,sBAAMzI,UAAU,WAAhB,SACE,cAAC,KAAD,CACEA,UAAU,iBACVsZ,IAAK,EACLlO,IAAKpM,EAAKyJ,MACV7B,MAAO5H,EAAKmK,gBACZa,SAAU,SAACxB,GAAD,OAjFV,SAACA,EAAGxJ,GAC1BiJ,EAAY,CAAErJ,KAAMkG,EAAYqB,aAAcgC,QAAS,CAAEnJ,KAAMA,EAAM4H,MAAO4B,EAAEoX,OAAOhZ,SAgF9C4hB,CAAgBhgB,EAAGxJ,IACpCia,YAAW,YAAOja,EAAKyJ,OACvBnI,MAAO,CAAEiN,MAAO,mBAQ5B,eAAC,KAAD,CAAKpC,GAAI,EAAG0c,GAAI,EAAG7nB,UAAU,iBAA7B,UACE,qBAAKA,UAAU,eAAf,4BACA,cAAC,KAAD,CACEyoB,aAAa,MACbjd,SAAUC,EACV7E,MAAO5H,EAAK+I,WACZ/H,UAAU,gBACVM,MAAO,CAAEiN,MAAO,IAChBvD,SAAU,SAACjC,GAAD,OAAgB4f,EAAmB5f,EAAY/I,EAAKoK,MANhE,SAOE,cAAC,GAAD,CAAQxC,MAAM,MAAd,+BAWV,cAAC,GAAD,CAAa+J,eAAgB8W,EAAgB7W,aA7IhC,WACjB8W,GAAgB,IA4I2D7W,OAAQ,IAAKC,cAAY,EAAhG,SACE,qBAAK9Q,UAAU,aAAf,SACE,cAAC,GAAD,CAAkBhB,KAAMA,YCnKrB,OAA0B,2CCoC1B0pB,GAjCO,SAAC,GAA+C,IAA7CC,EAA4C,EAA5CA,aAAcC,EAA8B,EAA9BA,MAA8B,IAAvBC,iBAAuB,MAAX,KAAW,EACnE3lB,QAAQrF,IAAIgrB,GACZ,IAAMC,EAAYjT,mBA6BlB,OA5BA7I,oBAAS,sBAAC,gCAAAnL,EAAA,sDACF+hB,EAASkF,EAAUxS,QACnB8N,EAAUR,EAAOS,WAAW,OAC9B0E,EAAM,IAAIC,OACVlH,OAAS,WACX8B,EAAOqF,aAAa,SAAkB,OAATJ,QAAS,IAATA,OAAA,EAAAA,EAAWK,IAAKH,EAAIxb,MAAQ,MACzDqW,EAAOqF,aAAa,UAAmB,OAATJ,QAAS,IAATA,OAAA,EAAAA,EAAWM,IAAKJ,EAAIlY,OAAS,MAC3DuT,EAAQgF,UAAUL,EAAK,EAAG,GAAY,OAATF,QAAS,IAATA,OAAA,EAAAA,EAAWK,IAAKH,EAAIxb,OAAgB,OAATsb,QAAS,IAATA,OAAA,EAAAA,EAAWM,IAAKJ,EAAIlY,OAAQ,EAAG,EAAG+S,EAAOrW,MAAOqW,EAAO/S,QAC3G+X,IAAc,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAO7rB,QAAS,GAC3B6rB,EAAMS,SAAQ,SAACC,GACb,IAAIjf,EAAIif,EAAI,GAAG,GACXC,EAAID,EAAI,GAAG,GACXJ,EAAII,EAAI,GAAG,GAAKA,EAAI,GAAG,GACvBH,EAAIG,EAAI,GAAG,GAAKA,EAAI,GAAG,GAC3BlF,EAAQoF,YACRpF,EAAQqF,UAAY,IACpBrF,EAAQsF,YAAc,MACtBtF,EAAQuF,KAAKtf,EAAGkf,EAAGL,EAAGC,GACtB/E,EAAQwF,aAIdb,EAAInd,IAAJ,UAAa+c,GAtBL,2CA0BP,CAACC,EAAOD,IAEJ,wBAAQnS,IAAKsS,KCoMPe,IA5NI9K,KAAXD,OAEmB,SAAC,GAA8D,IAA5D9f,EAA2D,EAA3DA,KAAM8qB,EAAqD,EAArDA,WAAqD,IAAzCC,qBAAyC,MAAzB,SAACjf,KAAwB,EAAdxD,EAAc,EAAdA,QAAc,EACnDoF,IAAMC,SAAS,GADoC,mBAChFua,EADgF,KACpEC,EADoE,OAE7Cza,IAAMC,UAAS,GAF8B,mBAEhF8a,EAFgF,KAEhEC,EAFgE,OAG/Chb,IAAMC,SAAS,MAHgC,mBAGhFqd,EAHgF,aAKvDtd,IAAMC,SAAS,KALwC,mBAKhFsd,EALgF,KAKtEC,EALsE,OAMvDxd,IAAMC,SAAS,IANwC,mBAMhFwd,EANgF,KAMtEC,EANsE,KAQjFxP,EAAa,WACjB8M,GAAgB,GAChBqC,GAAc,IAMhBrd,IAAMM,WAAU,WACd0a,EAAgBoC,KACf,CAACA,IAEJ,IAAMO,EAAU,WAAO,IAAD,EAChBnD,GAAa,UAAAloB,EAAK8K,wBAAL,eAAuB/M,QAAS,GAC/CoqB,EAAcD,EAAa,IAGzBoD,EAAU,WACVpD,EAAa,GACfC,EAAcD,EAAa,IAI/Bla,qBAAU,WACJhO,EAAKwK,YACPxK,EAAK8K,iBAAiB0G,KAAI,SAAC+Z,EAAW9sB,GACpC2sB,GAAY,SAACI,GAAD,OAASA,EAAM,OAAN,sBAAuBD,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAWnF,OAAlC,QAAiDmF,EAAU3hB,OAAO1K,WAEzFc,EAAK8K,iBAAiB0G,KAAI,SAAC+Z,EAAW9sB,GACpCysB,GAAY,SAACM,GAAD,OAASA,EAAM,OAAN,sBAAuBD,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAWnF,OAAlC,QAAiDmF,EAAU3hB,OAAO1K,cAG1F,IAEH,IAQa,YAoFN,UA5FDusB,EAAkB,Y7DwCM,SAACvsB,EAAMwM,GACrC,IAAIggB,EAAYvqB,SAAS0jB,cAAc,YACvC6G,EAAUC,UAAYzsB,EACtBiC,SAASyqB,KAAKC,YAAYH,GAC1BA,EAAUpqB,MAAMwqB,UAAY,WAC5BJ,EAAUK,SACV5qB,SAAS6qB,YAAY,QACrBtgB,EAAQhH,QAAQ,iBAChBgnB,EAAUlG,S6D/CRyG,CAAiBhB,EAAUvf,OAGvBwgB,EAAkB,WACtBntB,EAAiBiB,EAAKH,KAAM,MAAOsrB,EAAUA,IAG/C,OAAI7iB,EAEA,sBAAKtH,UAAU,kDAAf,UACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,SAAnC,UACE,cAAC,KAAD,CAAK2Q,KAAM,GAAI3b,UAAU,qBAAzB,SACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,SAAnC,UACE,cAAC,KAAD,CAAK2Q,KAAM,GAAX,SACE,oBAAI3b,UAAU,eAAd,gCAEF,cAAC,KAAD,CAAK2b,KAAM,GAAX,SACE,eAAC,KAAD,CAAOrS,KAAK,QAAQhJ,MAAO,CAAEwb,MAAO,SAApC,UACE,cAAC,KAAD,CAAShc,MAAM,YAAf,SACE,eAAC,KAAD,CAAQwJ,KAAK,SAAStJ,UAAU,eAAeM,MAAO,CAAEyQ,SAAU,UAAYiE,QAASyV,EAAvF,UACE,qBAAK7e,IAAKuf,GAAUrf,IAAI,cAD1B,aAIF,cAAC,KAAD,CAAShM,MAAM,gBAAf,SACE,eAAC,KAAD,CAAQwJ,KAAK,SAAStJ,UAAU,eAAegV,QAASkW,EAAxD,UACE,cAAC,oBAAD,CAAkB5qB,MAAO,CAAE6b,MAAO,aADpC,2BAQV,cAAC,KAAD,CAAK7b,MAAO,CAAEiN,MAAO,QAArB,SACE,qBAAKvN,UAAU,uBAAf,UACG,UAAAhB,EAAK8K,wBAAL,eAAuB/M,QAAS,GAC/BiC,EAAK8K,iBAAiB0G,KAAI,SAAC4a,EAAS3tB,GAClC,OACE,gCACE,qBAAIuC,UAAU,UAAd,uBAAmCvC,EAAI,KACtC2tB,EAAQxiB,OAAOyiB,SAAS7a,KAAI,SAAC8a,EAAG7tB,GAAJ,OAC3B,mBAAGuC,UAAU,cAAb,SACGsrB,EAAE,IAD2B7tB,QAH1BA,aAatB,cAAC,GAAD,CAAakT,eAAgB8W,EAAgB7W,aAAcgK,EAAY7J,SAAS,OAAOxD,MAAM,OAAOsD,OAAQ,IAAKC,cAAY,EAA7H,SACE,qBAAK9Q,UAAU,aAAf,SACE,cAAC,KAAD,CAAKiM,QAAQ,SAASjB,MAAM,SAA5B,SACE,eAAC,KAAD,CAAKhL,UAAU,iBAAiBsC,GAAG,WAAW2J,QAAQ,SAAtD,WACG,UAAAjN,EAAK8K,wBAAL,eAAuB/M,QAAS,GAC/B,eAAC,KAAD,CAAK4e,KAAM,GAAX,UACE,eAAC,KAAD,CAAK3Q,MAAM,SAASiB,QAAQ,SAAShB,OAAQ,CAAC,GAAI,GAAlD,UACE,cAAC,KAAD,UACE,cAAC,KAAD,CAAQrM,KAAK,UAAUwR,KAAM,cAAC,gBAAD,IAAkB4E,QAASsV,EAAStqB,UAAU,UAAUwL,SAAyB,IAAf0b,MAEjG,eAAC,KAAD,WACGA,EADH,gBACkBloB,EAAK8K,wBADvB,aACkB,EAAuB/M,UAEzC,cAAC,KAAD,UACE,cAAC,KAAD,CACE6B,KAAK,UACLwR,KAAM,cAAC,iBAAD,IACN4E,QAASqV,EACTrqB,UAAU,WACVwL,SAAU0b,KAAU,UAAKloB,EAAK8K,wBAAV,aAAK,EAAuB/M,eAItD,cAAC,KAAD,CAASuD,MAAO,CAAE+Y,aAAc,QAGpC,cAAC,KAAD,CAAKsC,KAAM,GAAI3b,UAAU,qBAAzB,UACG,UAAAhB,EAAK8K,wBAAL,eAAuB/M,QAAS,GAC/B,cAAC,GAAD,CACE4rB,aAAY,iCAA4B3pB,EAAK8K,iBAAiBod,EAAa,GAAGqE,KAC9E1C,UAAWmB,EACXpB,MAAK,UAAE5pB,EAAK8K,iBAAiBod,EAAa,GAAGte,cAAxC,aAAE,EAA8CyiB,wBAxECrsB,EAAKoK,KAoF3E,sBAAKpJ,UAAU,kDAAf,UACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,SAAnC,UACE,cAAC,KAAD,CAAK2Q,KAAM,GAAX,SACE,eAAC,KAAD,CAAOhQ,UAAU,WAAWrC,KAAM,EAAlC,UACE,cAAC,KAAD,CAASxJ,MAAOd,EAAKH,KAArB,SACE,qBAAKmB,UAAU,YAAf,SAA4BS,EAAezB,EAAKH,KAAM,QAExD,qBAAKmB,UAAU,uBAAf,SAAuC1C,EAAY0B,EAAKsK,aAG5D,eAAC,KAAD,CAAKqS,KAAK,OAAV,WACI3c,EAAK0K,UAA4B,mBAAhB1K,EAAKgD,QACtB,cAAC,KAAD,CAAO2J,UAAU,WAAjB,SACE,eAAC,KAAD,CAAOrC,KAAK,QAAZ,UACE,cAAC,KAAD,CAASxJ,MAAM,+BAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,WAAWgV,QA3IlC,WACxB0S,GAAgB,IA0IA,SACE,cAAC,eAAD,CAAapnB,MAAO,CAAE6b,MAAO,iBAIjC,cAAC,KAAD,CAASrc,MAAM,YAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,WAAWM,MAAO,CAAEyQ,SAAU,UAAYiE,QAASyV,EAAlF,SACE,qBAAK7e,IAAKuf,GAAUrf,IAAI,kBAG5B,cAAC,KAAD,CAAShM,MAAM,gBAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,aAAagV,QAASkW,EAArD,SACE,cAAC,oBAAD,CAAkB5qB,MAAO,CAAE6b,MAAO,sBAO3Cnd,EAAK0K,UAAY,qBAAKpJ,MAAO,CAAE6b,MAAO,WAArB,SAAmCnd,EAAK0K,WACzC,mBAAhB1K,EAAKgD,QAA+B,cAAC,GAAD,CAAWA,OAAO,yBAG3D,cAAC,GAAD,CAAa2O,eAAgB8W,EAAgB7W,aAAcgK,EAAY7J,SAAS,OAAOxD,MAAM,OAAOsD,OAAQ,IAAKC,cAAY,EAA7H,SACE,qBAAK9Q,UAAU,aAAf,SACE,cAAC,KAAD,CAAKiM,QAAQ,SAASjB,MAAM,SAA5B,SACE,eAAC,KAAD,CAAKhL,UAAU,iBAAiBsC,GAAG,WAAW2J,QAAQ,SAAtD,WACG,UAAAjN,EAAK8K,wBAAL,eAAuB/M,QAAS,GAC/B,eAAC,KAAD,CAAK4e,KAAM,GAAX,UACE,eAAC,KAAD,CAAK3Q,MAAM,SAASiB,QAAQ,SAAShB,OAAQ,CAAC,GAAI,GAAlD,UACE,cAAC,KAAD,UACE,cAAC,KAAD,CAAQrM,KAAK,UAAUwR,KAAM,cAAC,gBAAD,IAAkB4E,QAASsV,EAAStqB,UAAU,UAAUwL,SAAyB,IAAf0b,MAEjG,eAAC,KAAD,WACGA,EADH,gBACkBloB,EAAK8K,wBADvB,aACkB,EAAuB/M,UAEzC,cAAC,KAAD,UACE,cAAC,KAAD,CACE6B,KAAK,UACLwR,KAAM,cAAC,iBAAD,IACN4E,QAASqV,EACTrqB,UAAU,WACVwL,SAAU0b,KAAU,UAAKloB,EAAK8K,wBAAV,aAAK,EAAuB/M,eAItD,cAAC,KAAD,CAASuD,MAAO,CAAE+Y,aAAc,QAGpC,cAAC,KAAD,CAAKsC,KAAM,GAAI3b,UAAU,qBAAzB,UACG,UAAAhB,EAAK8K,wBAAL,eAAuB/M,QAAS,GAC/B,cAAC,GAAD,CACE4rB,aAAY,iCAA4B3pB,EAAK8K,iBAAiBod,EAAa,GAAGqE,KAC9E1C,UAAWmB,EACXpB,MAAK,UAAE5pB,EAAK8K,iBAAiBod,EAAa,GAAGte,cAAxC,aAAE,EAA8CyiB,wBArECrsB,EAAKoK,OClJ3E5H,GAASJ,EAEFoqB,GAAiB,uCAAG,WAAOC,EAAU9pB,EAAWC,GAA5B,SAAAC,EAAA,+EAEXL,GAAOM,KACvB,uBACA,CACE4pB,QAASD,EAASC,QAClBC,SAAUF,EAASE,SACnB9sB,KAAM4sB,EAAS5sB,KACfyK,KAAMmiB,EAASniB,KACf1K,KAAM6sB,EAAS7sB,KACf8E,QAAS+nB,EAAS/nB,QAClB8G,KAAMihB,EAASjhB,KACfohB,WAAYH,EAASG,WACrB9hB,iBAAkB2hB,EAAS3hB,kBAE7B,CACExI,QAAS,CACPkB,cAAc,GAAD,OAAKjD,EAAgB,WAjBX,OAqBV,MArBU,OAqBrByC,QAENL,IAEFC,IAzB6B,gDA2B7BA,IA3B6B,yDAAH,0DA8BjBiqB,GAAiB,uCAAG,WAAOzG,EAAQ0G,EAAUxpB,EAAIX,EAAWC,GAAxC,eAAAC,EAAA,+EAEXL,GAAOe,IAAP,gCAAoCD,EAApC,mBAAiD8iB,EAAjD,qBAAoE0G,IAFzD,UAGV,OADb/pB,EAFuB,QAGrBC,SAAkBD,EAAIE,KAAKyB,QAHN,yCAIpB/B,EAAUI,EAAIE,OAJM,OAM3BL,EAAUG,EAAIE,KAAKpC,KANQ,yDAS7B+B,EAAU,0BATmB,0DAAH,8DCdtBkd,GAAWC,KAAXD,OACRpU,KAAQqhB,OAAO,CACbC,IAAK,EACL5L,SAAU,EACV9U,SAAU,IAGZ,IA4ae2gB,GA5aiB,SAAC,GAAiB,IAAf3kB,EAAc,EAAdA,QAAc,EACfP,KADe,mBACxCW,EADwC,KAC3BC,EAD2B,OAEoCV,KAFpC,0BAEtCW,EAFsC,EAEtCA,gBAAiBC,EAFqB,EAErBA,cAAeG,EAFM,EAENA,YAAaD,EAFP,EAEOA,WAAcE,EAFrB,OAIXyE,IAAMC,UAAS,GAJJ,mBAIxCmd,EAJwC,KAI5BC,EAJ4B,KAMzCvC,EAAiB,SAAChf,EAAGY,GACzBnB,EAAY,CAAErJ,KAAMkG,EAAYS,aAAc4C,QAAS,CAAEtJ,KAAM2J,EAAEoX,OAAO/gB,KAAM+H,MAAO4B,EAAEoX,OAAO2I,QAASnf,IAAKA,MAoBxG8iB,EAAuB,SAAC1jB,GAC5BP,EAAY,CAAErJ,KAAMkG,EAAYoB,iBAAkBiC,QAAS,CAAEtJ,KAAM2J,EAAEoX,OAAO/gB,KAAM+H,MAAO4B,EAAEoX,OAAO2I,YAY9F4D,EAAsB,SAACntB,EAAM+Y,GAAO,IAAD,IACvCyT,GACE,CACEE,QAAO,UAAEhkB,EAAY4C,iBAAd,aAAE,EAAuBohB,QAChCC,SAAU3sB,EAAKoK,IACfvK,KAAMG,EAAKH,KACXyK,KAAMtK,EAAKsK,KACX1K,KAAMI,EAAKJ,KACX8E,QAASqU,EAAErU,QACXoG,iBAAkBiO,EAAE9V,KACpB2pB,WAAY7T,EAAEyN,UACdhb,KAAI,UAAE9C,EAAY4C,iBAAd,aAAE,EAAuBE,OAE/B,WACE7C,EAAS,CAAE/I,KAAMkG,EAAYK,QAASgD,QAAS,QAEjD,gBAKEikB,EAAQ,uCAAG,sCAAAvqB,EAAA,0DAEX6F,EAAY2kB,UAFD,yCAEmBzsB,EAAS,QAAS,iDAFrC,YAIXgI,EAAgB7K,OAASqK,IAA6C,UAAhC,UAAAM,EAAY4C,iBAAZ,eAAuBE,OAJlD,yCAKN5K,EAAS,OAAD,4CAA8CwH,GAA9C,mBAA0E,SAL5E,UAQVE,EARU,8BASRI,EAAY4C,iBATJ,aASR,EAAuBzL,KATf,yCAS4Be,EAAS,QAAS,yDAT9C,eAWMqf,IADArX,EAAgBiD,MAAK,SAACC,GAAD,OAAuB,IAAhBA,EAAEtB,YAAyC,IAAlBsB,EAAErB,eAV7D,0CAWwBiB,KAAQhH,QAAQ,yBAXxC,WAcV4D,EAdU,oBAePglB,EAAa1kB,EAAgBuC,QAAO,SAAUoiB,EAAKC,GACvD,OAAOD,EAAM1L,GAAe2L,EAAIrjB,gBAAiBqjB,EAAI/jB,OAAO1L,SAC3D,MACC,UAAA2K,EAAY4C,iBAAZ,eAAuBC,YAAa+hB,GAA8C,UAAhC,UAAA5kB,EAAY4C,iBAAZ,eAAuBE,OAlBhE,0CAmBJ5K,EAAS,OAAQ,mDAAoD,UAnBjE,QAsBf+H,EAAS,CAAE/I,KAAMkG,EAAYM,cAAe+C,SAAS,IAE/CskB,EAAa7kB,EAAgB4I,KAAI,SAACxR,GACtC,IAAKA,EAAKmK,gBAAiB,OAAOvJ,EAAS,OAAD,wCAA0CZ,EAAKH,MAAQ,QAMjG,GAHIyI,GAxDNW,EAAY,CACVrJ,KAAMkG,EAAYgB,YAClBqC,QAAS,MAyDJnJ,EAAKwK,YAAcxK,EAAKyK,YAAa,CACpB,YAAhBzK,EAAKgD,OACPiG,EAAY,CACVrJ,KAAMkG,EAAYa,YAClBwC,QAAS,CAAEnG,OAAQ,iBAAkBoH,IAAKpK,EAAKoK,OAGjDnB,EAAY,CACVrJ,KAAMkG,EAAYa,YAClBwC,QAAS,CAAEnG,OAAQ,cAAeoH,IAAKpK,EAAKoK,OAKhD,IAAIsjB,EAAYC,KAAKC,MACrB,OAAOtH,GAAahe,EAAStI,GAAM,SAACuK,EAASH,GAE3CnB,EAAY,CAAErJ,KAAMkG,EAAYc,SAAUuC,QAAS,CAAEoB,QAASA,EAASH,IAAKA,QAE3EhK,MAAK,SAAC2Y,GAiBL,GAfKA,EAAE8U,QACL5kB,EAAY,CACVrJ,KAAMkG,EAAYe,mBAClBsC,QAAS,CACPiB,IAAKpK,EAAKoK,IACVI,WAAW,EACXM,iBAAkB,GAClB9H,OAAQ,QACR0H,SAAUqO,EAAErN,QACZf,SAAS,EACTL,KAAMyO,EAAE0N,YACRhc,aAAa,KAIfsO,EAAErU,QAAS,CACb,IAAIkG,EAAU+iB,KAAKC,MAAQF,EACvB3U,EAAEkO,aACJhe,EAAY,CACVrJ,KAAMkG,EAAYe,mBAClBsC,QAAS,CACPiB,IAAKpK,EAAKoK,IACVI,UAAWuO,EAAErU,QACboG,iBAAkBiO,EAAE9V,KACpBD,OAAQ,UACR0H,SAAU,GACVC,SAAS,EACTC,QAASA,EACTN,KAAMyO,EAAE0N,YACRhc,aAAa,KAGPsO,EAAEkO,cACZhe,EAAY,CACVrJ,KAAMkG,EAAYe,mBAClBsC,QAAS,CACPiB,IAAKpK,EAAKoK,IACVI,UAAWuO,EAAErU,QACboG,iBAAkBiO,EAAE9V,KACpBD,OAAQ,QACR0H,SAAUqO,EAAErN,QACZf,SAAS,EACTC,QAASA,EACTN,KAAMyO,EAAE0N,YACRhc,aAAa,MAIdnC,GAAWyQ,EAAEkO,cAChBkG,EAAoBntB,EAAM+Y,OAI/BrE,OAAM,SAACC,GACN,OAAO/T,EAAS,QAAS,+CAAgD,4BAKjF8Z,QAAQ2L,IAAIoH,GAAYrtB,MAAK,SAAC2Y,GAC5BpQ,EAAS,CAAE/I,KAAMkG,EAAYM,cAAe+C,SAAS,OAhHxC,4CAAH,qDA4Hd,OARAuE,IAAMM,WAAU,WACVtF,EAAY2kB,YACdzsB,EAAS,QAAS,8BAClBmoB,OAAOC,KAAKpG,IAAWpR,KAAI,SAACyX,EAAKC,GAAN,OAAgBtG,GAAUqG,GAAK,oBAC1DtgB,EAAS,CAAE/I,KAAMkG,EAAYM,cAAe+C,SAAS,OAEtD,CAACT,EAAY2kB,YAEZ/kB,EAEA,qBAAKtH,UAAU,kCAAf,SACE,eAAC,KAAD,CAAKiL,OAAQ,CAAC,GAAI,GAAIgB,QAAQ,gBAA9B,UACE,cAAC,KAAD,CAAKkT,GAAI,GAAIjU,GAAI,GAAIkU,GAAI,GAAI9e,MAAO,CAAEwsB,OAAQ,IAA9C,SACE,sBAAK9sB,UAAU,gBAAf,UACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,SAAShL,UAAU,mBAAtD,UACE,cAAC,KAAD,CAAKkL,GAAI,GAAIC,GAAI,GAAjB,SACE,cAAC,KAAD,CAASrL,MAAO8H,EAAgB,GAAG/I,KAAnC,SACE,qBAAImB,UAAU,4BAAd,UACGS,EAAemH,EAAgB,GAAG/I,KAAM,IAD3C,KACkDvB,EAAYsK,EAAgB,GAAG0B,MADjF,WAKJ,cAAC,KAAD,CAAK4B,GAAI,GAAIC,GAAI,GAAjB,SACE,eAAC,KAAD,CAAO7B,KAAK,SAAS0B,MAAM,SAAS1K,MAAO,CAAEwb,MAAO,SAApD,UACGlU,EAAgB,GAAG4B,WAClB,cAAC,KAAD,CAAQxJ,UAAU,kBAAkBgV,QAAS,kBAAM+U,GAAc,IAAjE,0BAIF,cAAC,KAAD,CACE/pB,UAAU,mBACVwL,SAAU9D,EAAY+D,aACtBuJ,QAAS,WACP+S,OAAOC,KAAKpG,IAAWpR,KAAI,SAACyX,EAAKC,GAC/BtG,GAAUqG,GAAK,wBAEjBhgB,EAAY,CAAErJ,KAAMkG,EAAYY,gBAAiByC,QAAS,MAP9D,iCAcN,qBAAKnI,UAAU,kBAAf,SACG4H,EAAgB4I,KAAI,SAACxR,EAAMkpB,GAC1B,OACE,8BACE,cAAC,GAAD,CAAclpB,KAAMA,EAAMsI,QAASA,EAASkgB,eAAgBA,EAAgB/b,aAAc/D,EAAY+D,gBAD9FzM,EAAKoK,eAUzB,cAAC,KAAD,CAAK+V,GAAI,GAAIjU,GAAI,GAAIkU,GAAI,EAAzB,SACE,eAAC,KAAD,CAAKnT,QAAQ,gBAAgBjM,UAAU,wBAAvC,UACE,cAAC,KAAD,CAAKof,GAAI,GAAIlU,GAAI,GAAjB,SACE,qBAAKlL,UAAU,mBAAf,SACE,eAAC,KAAD,CAAO2L,UAAU,WAAjB,UACE,eAAC,KAAD,CAAOA,UAAU,WAAjB,UACE,cAAC,KAAD,CACEH,SAAU9D,EAAY+D,aACtBzL,UAAU,iBACVnB,KAAK,gBACL0pB,QAAS3gB,EAAgB,GAAGC,cAC5BmC,SAAU,SAACxB,GAAD,OAAOgf,EAAehf,EAAGZ,EAAgB,GAAGwB,MALxD,iCAQA,cAAC,KAAD,CACEoC,SAAU9D,EAAY+D,aACtBzL,UAAU,iBACVnB,KAAK,cACL0pB,QAAS3gB,EAAgB,GAAGI,YAC5BgC,SAAU,SAACxB,GAAD,OAAOgf,EAAehf,EAAGZ,EAAgB,GAAGwB,MALxD,6BASF,cAAC,KAAD,CAAQ6N,QAASvP,EAAY+D,aAAcuJ,QAASoX,EAAUpsB,UAAS,yBAAvE,SACG4H,EAAgB,GAAG4B,WAAa5B,EAAgB,GAAG+B,QAAU,cAAgB,aAE9E/B,EAAgB,GAAG4B,WACnB,mCACE,qBAAKxJ,UAAU,qBAAqB4L,IAAKmhB,GAAajhB,IAAI,0BAMnElE,EAAgB,GAAG4B,WAClB,cAAC,KAAD,CAAK4V,GAAI,GAAIlU,GAAI,EAAjB,SACE,eAAC,KAAD,CAAOlL,UAAU,kBAAjB,UACE,qBAAKA,UAAU,aAAf,SACE,qBAAK4L,IAAKohB,GAAWlhB,IAAI,iBAE3B,eAAC,KAAD,CAAOH,UAAU,WAAjB,UACE,qBAAK3L,UAAU,mBAAf,wBACA,qBAAKA,UAAU,aAAf,SAA6B3C,EAAgBuK,EAAgB,GAAGgC,wBAS5E,cAAC,KAAD,CAAKuV,GAAI,GAAIjU,GAAI,GAAIkU,GAAI,EAAzB,SACE,sBAAKpf,UAAU,kBAAf,UACG4H,EAAgB4I,KAAI,SAAC1F,EAAGrN,GACvB,GAAIqN,EAAEtB,YAAcsB,EAAEnB,QACpB,OACE,cAAC,GAAD,CAAgC3K,KAAM8L,EAAGgf,WAAYA,EAAYC,cAAeA,EAAeziB,QAASA,GAA/EwD,EAAE1B,QAIhC1B,EAAY+D,cACX,mCACE,qBAAKzL,UAAU,uBAAf,SACE,yEACuC,qBAAKuN,MAAM,OAAO3B,IAAKqhB,GAAYnhB,IAAI,yBAKlFlE,EAAgB,GAAG4B,WAAa5B,EAAgB,GAAG+B,SACnD,mCACE,qBAAK3J,UAAU,sCAAf,SACE,oEAWd,qBAAKA,UAAU,kCAAf,SACE,eAAC,KAAD,CAAKiL,OAAQ,CAAC,GAAI,GAAIgB,QAAQ,gBAA9B,UAEE,cAAC,KAAD,CAAKmT,GAAI,GAAIlU,GAAI,GAAI5K,MAAO,CAAEwsB,OAAQ,IAAtC,SACE,sBAAK9sB,UAAU,gBAAf,UACE,eAAC,KAAD,CAAKiL,OAAQ,CAAC,EAAG,IAAKgB,QAAQ,gBAAgBjB,MAAM,SAAShL,UAAU,mBAAvE,UACE,cAAC,KAAD,CAAKmL,GAAI,EAAG0c,GAAI,GAAhB,SACE,sBAAK7nB,UAAU,cAAf,UAA8B4H,EAAgB7K,OAA9C,uBAEF,cAAC,KAAD,CAAKoO,GAAI,EAAG0c,GAAI,GAAhB,SACE,cAAC,KAAD,CACE/nB,MAAM,+BACNsoB,UA7TI,SAAC5f,GACrBA,EAAEgU,iBACFuL,OAAOC,KAAKpG,IAAWpR,KAAI,SAACyX,EAAKC,GAC/BtG,GAAUqG,GAAK,wBAGjBhgB,EAAY,CAAErJ,KAAMkG,EAAYY,gBAAiByC,QAAS,MAwT1CoJ,SAAU,aACV8W,OAAO,MACPC,WAAW,KALb,SAME,cAAC,KAAD,CAASxoB,MAAM,aAAf,SACE,cAAC,KAAD,CACEE,UAAS,8CAAyC0H,EAAY+D,aAAe,eAAiB,eADhG,8BAON,cAAC,KAAD,CAAKN,GAAI,EAAG0c,GAAI,GAAI7nB,UAAU,sBAA9B,SACE,eAAC,KAAD,CAAO2L,UAAU,WAAWrC,KAAM,EAAlC,UACE,cAAC,KAAD,CACEkC,SAAU9D,EAAY+D,aACtBzL,UAAU,iBACVnB,KAAK,gBACL0pB,QAAS1gB,EACTmC,SAAU,SAACxB,GAAD,OAAO0jB,EAAqB1jB,IALxC,qCAQA,cAAC,KAAD,CACEgD,SAAU9D,EAAY+D,aACtBzL,UAAU,iBACVnB,KAAK,cACL0pB,QAASvgB,EACTgC,SAAU,SAACxB,GAAD,OAAO0jB,EAAqB1jB,IALxC,mCAUJ,cAAC,KAAD,CAAK2C,GAAI,EAAG0c,GAAI,EAAG7nB,UAAU,iBAA7B,SACE,eAAC,KAAD,CAAOgL,MAAM,SAAShL,UAAU,cAAhC,UACE,sBAAMA,UAAU,iBAAhB,yBACA,eAAC,KAAD,CACEyoB,aAAa,MACbjd,SAAU9D,EAAY+D,aACtB7E,MAAOmB,EACPiC,SAAU,SAACjC,GA1VL,IAAC6f,KA0VqC7f,IAxV5DE,EAAY,CAAErJ,KAAMkG,EAAYmB,mBAAoBkC,QAASyf,KAyV7C5nB,UAAU,gBACVM,MAAO,CAAEiN,MAAO,IANlB,UAOE,cAAC,GAAD,CAAQ3G,MAAM,GAAd,oBACA,cAAC,GAAD,CAAQA,MAAM,MAAd,4BAKR,cAAC,KAAD,CAAStG,MAAO,CAAE4c,OAAQ,YAC1B,qBAAKld,UAAU,kBAAf,SACG4H,EAAgB4I,KAAI,SAACxR,EAAMkpB,GAC1B,OACE,gCACE,cAAC,GAAD,CAAclpB,KAAMA,EAAMwoB,eAAgBA,EAAgB/b,aAAc/D,EAAY+D,eACpF,cAAC,KAAD,CAASnL,MAAO,CAAE4c,OAAQ,cAFlBle,EAAKoK,eAWzB,cAAC,KAAD,CAAKgW,GAAI,GAAIlU,GAAI,GAAIlL,UAAU,QAAQM,MAAO,CAAEiN,MAAO,QAAvD,SACE,sBAAKvN,UAAU,kBAAf,UACG4H,EAAgB4I,KAAI,SAAC1F,EAAGrN,GAAO,IAAD,EAC7B,GAAIqN,EAAEtB,YAAa,UAAAsB,EAAEhB,wBAAF,eAAoB/M,QAAS,EAC9C,OAAO,cAAC,GAAD,CAAgCiC,KAAM8L,GAAbA,EAAE1B,QAGrC1B,EAAY+D,cACX,mCACE,qBAAKzL,UAAU,uBAAf,SACE,yEACuC,cAAC,mBAAD,YAK3C0H,EAAY+D,cACZ,gCACE,cAAC,KAAD,CACED,SAAU9D,EAAY+D,aACtBuJ,QAASoX,EACTpsB,UAAS,iCACN4H,EAAgBiD,MAAK,SAACC,GAAD,aAAO,UAAAA,EAAEhB,wBAAF,eAAoB/M,QAAS,GAAK+N,EAAEtB,aAA2B,GAAd,YADvE,KAHX,qBAQA,qCChZH0jB,GAhCC,WAAO,IAAD,EACSnmB,KADT,mBACX8F,EADW,KACXA,KADW,QAEuB5F,MAFvB,mBAEXW,EAFW,KAEXA,gBAEHJ,GAJc,KAIJC,eAQhB,OANAiF,IAAMM,WAAU,WACdnJ,OAAO8c,SAAS,EAAG,GACf3c,KACFwD,EAAQuC,KAAK,kBAEd,IAED,cAAC,GAAD,CAAQuT,KAAMkD,GAAa3T,GAA3B,SACE,sBAAK7M,UAAU,mBAAmBsC,GAAG,eAArC,UACE,qBAAItC,UAAU,YAAd,UACG8M,GAAYD,GAAM/M,MAAM,GAD3B,IACgCgN,GAAYD,GAAM/M,MAAM,MAExD,mBAAGE,UAAU,WAAb,SAAyB8M,GAAYD,GAAMM,WAC3C,qBAAK7M,MAAO,CAAE+Y,aAAc,QAA5B,SACE,cAAC,GAAD,CAAqB9R,UAAU,MAEhCK,EAAgB7K,OAAS,GACxB,qBAAKuD,MAAO,CAAE+Y,aAAc,QAA5B,SACE,cAAC,GAAD,CAAyB/R,SAAS,Y,oBCpBxC6lB,I,QAAc,WAAO,IAAD,EACUpmB,KADV,mBACfuD,EADe,KACfA,UADe,QAEkBoC,IAAMC,UAAS,IAFjC,mBAEjBygB,EAFiB,KAEDC,EAFC,OAGF3V,KAAKC,UAApB8G,EAHiB,sBAKM/R,IAAMC,UAAS,GALrB,mBAKjBsK,EALiB,KAKRC,EALQ,KA2BlBoW,EAAmB,WACvB7O,EAAYC,eAAe,CAAE7f,KAAI,OAAEyL,QAAF,IAAEA,OAAF,EAAEA,EAAWzL,KAAM+D,MAAK,OAAE0H,QAAF,IAAEA,OAAF,EAAEA,EAAW1H,QACtEyqB,GAAgB,IAElB,OACE,qCACuB,UAAX,OAAT/iB,QAAS,IAATA,OAAA,EAAAA,EAAWE,OAA6C,KAAjB,OAATF,QAAS,IAATA,OAAA,EAAAA,EAAWC,aACxC,cAAC,KAAD,CACEG,QACE,wEACwC,IACtC,sBAAM1K,UAAU,kBAAkBgV,QAASsY,EAA3C,wBAEQ,OAGZ1uB,KAAK,UAGY,UAAX,OAAT0L,QAAS,IAATA,OAAA,EAAAA,EAAWE,QAA4B,OAATF,QAAS,IAATA,OAAA,EAAAA,EAAWC,aAAc,KAAe,OAATD,QAAS,IAATA,OAAA,EAAAA,EAAWC,aAAc,GACrF,cAAC,KAAD,CACEG,QACE,iDACgB,uBAAM1K,UAAU,cAAhB,qBAAgCsK,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAWC,WAA3C,mBAA2E,IACzF,sBAAMvK,UAAU,kBAAkBgV,QAASsY,EAA3C,wBAEQ,IAJV,KAME,cAAC,IAAD,CAAM7oB,GAAG,gBAAT,8BAGJ7F,KAAK,SAIT,cAAC,GAAD,CAAa+R,eAAgByc,EAAgBxc,aAvC9B,WACjByc,GAAgB,IAsCyD9f,MAAO,IAAKsD,OAAQ,IAAKC,cAAY,EAA5G,SACE,sBAAK9Q,UAAU,oBAAf,UACE,oBAAIA,UAAU,uBAAd,wBACA,eAAC,KAAD,CACE4X,KAAM6G,EACN5f,KAAK,kBACL2Z,OAAO,WACPG,cAAc,EACd3Y,UAAU,qBACV4Y,SAjEO,SAACjO,GAChBuM,GAAW,GACXmH,GACE1T,GACA,SAACoN,GACCrN,KAAQhH,QAAQqU,EAAElY,KAClBqX,GAAW,GACXmW,GAAgB,MAElB,SAAC1Z,GACCjJ,KAAQvH,MAAMwQ,GACduD,GAAW,GACXmW,GAAgB,OA+Cd,UAOE,cAAC,KAAKvU,KAAN,CAAW6F,MAAM,OAAO9f,KAAK,OAA7B,SACE,cAAC,KAAD,CAAOoa,YAAY,WAErB,cAAC,KAAKH,KAAN,CAAW6F,MAAM,QAAQ9f,KAAK,QAA9B,SACE,cAAC,KAAD,CAAOoa,YAAY,YAGrB,cAAC,KAAKH,KAAN,CACE6F,MAAM,cACN9f,KAAK,mBACLka,MAAO,CACL,CACEC,UAAU,EACVtO,QAAS,kDANf,SASE,cAAC,KAAMkU,SAAP,CAAgBC,KAAM,EAAG5F,YAAY,qCAGvC,cAAC,KAAKH,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASrY,KAAK,UAAUua,SAAS,SAASnZ,UAAU,4BAArE,uCAmDCutB,GAxCC,WACd,IAAM/lB,EAAUC,cADI,GAEHkT,cACuB5T,MAHpB,0BAGA8F,GAHA,EAGXvC,UAHW,EAGAuC,MAHA,QAIuB5F,MAJvB,mBAIXW,EAJW,KAIXA,gBAJW,QAKU8E,IAAMC,UAAS,IALzB,mBAKbsK,EALa,UAcpB,OAPAvK,IAAMM,WAAU,WACdnJ,OAAO8c,SAAS,EAAG,GACd3c,KACHwD,EAAQuC,KAAK,OAEd,IAGD,qBAAK/J,UAAU,oBAAf,SACE,eAAC,GAAD,CAAQsd,KAAMkQ,GAAY3gB,GAA1B,UACE,cAAC,GAAD,IACA,cAAC,IAAD,CAAM4gB,SAAUxW,EAAhB,SACE,sBAAKjX,UAAU,eAAf,UACE,qBAAIA,UAAU,YAAd,UACG0tB,GAAkB7gB,GAAM/M,MAAM,GADjC,IACsC4tB,GAAkB7gB,GAAM/M,MAAM,MAEpE,mBAAGE,UAAU,WAAb,SAAyB0tB,GAAkB7gB,GAAMM,WACjD,qBAAK7M,MAAO,CAAE+Y,aAAc,OAAQlI,QAAS,UAA7C,SACE,cAAC,GAAD,CAAqB7J,SAAS,EAAOC,UAAU,MAGhDK,EAAgB7K,OAAS,GACxB,qBAAKuD,MAAO,CAAEqtB,cAAe,QAA7B,SACE,cAAC,GAAD,CAAyBrmB,SAAS,iBCSnCsmB,I,QArJA7O,KAEU,WACvB,IAAM8O,EAASC,cACTtmB,EAAUC,cAFa,EAGCiF,IAAMC,UAAS,GAHhB,mBAGtBsK,EAHsB,KAGbC,EAHa,OAIDxK,IAAMC,SAAS,IAJd,mBAItBhD,EAJsB,KAIb4N,EAJa,OAKL7K,IAAMC,SAAS,IALV,mBAKtB6K,EALsB,KAKfC,EALe,OAOdC,KAAKC,UAAbC,EAPsB,oBA2E7B,OACE,sBAAK5X,UAAU,yBAAf,UACE,cAAC,KAAD,CAAKA,UAAU,mBAAmBiM,QAAQ,gBAAgBjB,MAAM,SAAhE,SACE,cAAC,KAAD,UACE,cAAC,KAAD,CAAOA,MAAM,SAAb,SACE,qBAAKhL,UAAU,WAAf,SACE,qBAAK4L,IAAKgQ,GAAY9P,IAAI,mBAQlC,sBAAK9L,UAAU,wBAAf,UACG2J,GAAW,cAAC,KAAD,CAAOe,QAASf,EAAS/K,KAAK,QAAQ0Z,UAAU,EAAOC,UAAQ,IAC1Ef,GAAS,cAAC,KAAD,CAAO9M,QAAS8M,EAAO5Y,KAAK,UAAU0Z,UAAU,EAAOC,UAAQ,IACzE,qDACA,eAAC,KAAD,CAAMX,KAAMA,EAAM/Y,KAAK,sBAAsB2Z,OAAO,WAAWC,cAAe,GAAIE,cAAc,EAAOC,SApFzF,SAACmV,GACnB,MAAK,QAAQ9V,KAAK8V,EAAY3X,UAUzB,QAAQ6B,KAAK8V,EAAY3X,UASzB,QAAQ6B,KAAK8V,EAAY3X,UASzB,eAAe6B,KAAK8V,EAAY3X,WAUrCmB,EAAS,IACTE,EAAO,IACPP,GAAW,QACX3T,EACEwqB,EACAF,EAAOpqB,OACP,SAACsU,GACCb,GAAW,GACXO,EAAOM,EAAElY,KACT0X,EAAS,IACTK,EAAKiB,YAAY,CAAC,WAAY,oBAC1Bd,EAAErU,SACJ8D,EAAQuC,KAAK,CAAErF,SAAU,IAAKC,MAAO,CAAEuW,YAAY,QAGvD,SAACvH,GACCuD,GAAW,GACXK,EAAS5D,EAAI9T,KACb4X,EAAO,SA3BTG,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,uEAGN,IAfPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,mDAGN,IAfPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,6DAGN,IAhBPP,EAAKM,UAAU,CACb,CACErZ,KAAM,WACNsZ,OAAQ,CAAC,6DAGN,IA4EL,UACE,cAAC,KAAKW,KAAN,CAAWja,KAAK,WAAWmvB,aAAW,EAACjV,MAAO,CAAC,CAAEC,UAAU,EAAMtO,QAAS,wBAAyB4O,IAAK,IAAxG,SACE,cAAC,KAAMF,SAAP,CAAgBH,YAAY,eAE9B,cAAC,KAAKH,KAAN,CACEja,KAAK,kBACL0a,aAAc,CAAC,YACfyU,aAAW,EACXjV,MAAO,CACL,CAAEC,UAAU,EAAMtO,QAAS,gCAAiC4O,IAAK,GACjE,gBAAGZ,EAAH,EAAGA,cAAH,MAAwB,CACtBc,UADsB,SACZC,EAAG7S,GACX,OAAKA,GAAS8R,EAAc,cAAgB9R,EAGrC8S,QAAQC,OAAO,IAAItH,MAAM,gDAFvBqH,QAAQE,cATzB,SAeE,cAAC,KAAMR,SAAP,CAAgBH,YAAY,uBAE9B,cAAC,KAAKH,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASzL,SAAUyL,EAASrY,KAAK,UAAUua,SAAS,SAASnZ,UAAU,uBAAxF,iCAKJ,qBAAKA,UAAU,eAAegV,QAjDX,WACvBxN,EAAQuC,KAAR,MAgDI,kCAKF,eAAC,KAAD,CAAKkC,QAAQ,gBAAgBjB,MAAM,SAAShL,UAAU,mCAAtD,UACE,cAAC,KAAD,UACE,qBAAKA,UAAU,WAAf,SACE,qBAAK4L,IAAKgQ,GAAY9P,IAAI,eAG9B,cAAC,KAAD,UACE,gCACE,cAAC,IAAD,CAAMrH,GAAG,oBAAoBzE,UAAU,gBAAgBM,MAAO,CAAEkf,UAAW,UAA3E,8BAEQ,IACR,sBAAMxf,UAAU,UAAhB,eAAmC,IACnC,cAAC,IAAD,CAAMA,UAAU,gBAAgByE,GAAG,kBAAnC,yC,oDC9HGwpB,GAlBM,WACnB,IAAMzmB,EAAUC,cAChB,OACE,qBAAKzH,UAAU,iBAAf,SACE,cAAC,KAAD,CACEgC,OAAO,MACPlC,MAAM,MACNqN,SAAS,8CACT8P,MACE,cAAC,KAAD,CAAQre,KAAK,UAAUoW,QAAS,kBAAMxN,EAAQuC,KAAK,MAAnD,4B,iFCbK,I,SCAA,I,QAAA,IAA0B,yCCA1B,OAA0B,yCCA1B,OAA0B,4C,oBCUjCmkB,GAASC,KAATD,KAkEOE,GAhEE,WAAO,IAAD,EACQrnB,KADR,mBACZ8F,EADY,KACZA,KADY,KAKrB,OAHAH,IAAMM,WAAU,WACdnJ,OAAO8c,SAAS,EAAG,KAClB,IAED,eAAC,GAAD,CAAQrD,KAAM+Q,GAAaxhB,GAA3B,UACE,sBAAK7M,UAAU,qBAAf,UACE,sBAAKA,UAAU,SAAf,UACE,oBAAIA,UAAU,QAAd,SAAuB8M,GAAYD,GAAM/M,QACzC,mBAAGE,UAAU,OAAb,SAAqB8M,GAAYD,GAAMwL,UAEzC,qBAAKrY,UAAU,qBAAf,SACE,eAAC,KAAD,CAAOsW,QAAQ,KAAKtU,OAAO,OAAO2J,UAAU,WAA5C,UACE,cAACuiB,GAAD,CACEpuB,MAAOgN,GAAYD,GAAMyhB,OAAOxuB,MAChCkC,OAAO,OACPqlB,YACE,eAAC,KAAD,CAAKpc,OAAQ,CAAC,GAAI,GAAIgB,QAAQ,gBAAgBjM,UAAU,WAAxD,UACE,cAAC,KAAD,CAAKkL,GAAI,GAAIkU,GAAI,EAAjB,SACE,4BAAItS,GAAYD,GAAMyhB,OAAOjW,SAE/B,cAAC,KAAD,CAAK+G,GAAI,GAAIlU,GAAI,GAAjB,SACE,qBAAKU,IAAK2iB,GAAeziB,IAAI,cAAcyB,MAAM,OAAOsD,OAAO,gBAKvE,cAACqd,GAAD,CACElsB,OAAO,OACPlC,MAAOgN,GAAYD,GAAM2hB,OAAO1uB,MAChCunB,YACE,eAAC,KAAD,CAAKpc,OAAQ,CAAC,GAAI,GAAIgB,QAAQ,gBAA9B,UACE,cAAC,KAAD,CAAKf,GAAI,GAAIkU,GAAI,EAAjB,SACE,4BAAItS,GAAYD,GAAM2hB,OAAOnW,SAE/B,cAAC,KAAD,CAAK+G,GAAI,GAAIlU,GAAI,GAAjB,SACE,qBAAKU,IAAK6iB,GAAY3iB,IAAI,cAAcyB,MAAM,gBAKtD,cAAC2gB,GAAD,CACElsB,OAAO,OACPlC,MAAOgN,GAAYD,GAAM6hB,OAAO5uB,MAChCunB,YACE,eAAC,KAAD,CAAKpc,OAAQ,CAAC,GAAI,GAAIgB,QAAQ,gBAA9B,UACE,cAAC,KAAD,CAAKf,GAAI,GAAIkU,GAAI,EAAjB,SACE,4BAAItS,GAAYD,GAAM6hB,OAAOrW,SAE/B,cAAC,KAAD,CAAK+G,GAAI,GAAIlU,GAAI,GAAjB,SACE,qBAAKU,IAAK+iB,GAAY7iB,IAAI,cAAcyB,MAAM,wBAQ5D,cAAC,KAAD,Q,oBC0JSqhB,GAzNO,WAAO,IAAD,EACG7nB,KADH,mBACjB8F,EADiB,KACjBA,KADiB,KAK1B,OAHAH,IAAMM,WAAU,WACdnJ,OAAO8c,SAAS,EAAG,KAClB,IAED,eAAC,GAAD,CAAQrD,UAAM2B,EAAd,UACE,sBAAKjf,UAAU,yBAAf,UACE,sBAAKA,UAAU,SAAf,UACE,oBAAIA,UAAU,QAAd,4BACA,oBAAGA,UAAU,OAAb,sBAA8B6uB,GAAYnN,cAE5C,sBAAK1hB,UAAU,2BAAf,UACE,iEACA,oFACqD,2DADrD,8PAIA,4JACA,yMACA,gDACA,8BACE,sEADF,iXAMA,mNAEA,2UAKA,uEAEA,0DACA,iJAEA,0EACA,mLAEA,sEACA,2KAEA,wDACA,mJAEA,ulBAOA,2EAEA,2EACA,iQAKA,2EACA,+bAMA,mFACA,gGACA,+BACE,2QAEkD,OAElD,0FACA,iOAEW,OAEX,6EACA,kKACA,yMAEF,iKAEA,qFACA,iGACA,qBAAIpB,KAAK,IAAT,UACE,2ZAGmB,OAEnB,4GACA,gFAGF,kGACA,gJACA,4GAEA,qBAAIA,KAAK,IAAT,UACE,iEACA,oFACA,iJAEF,iSAEyE,OAEzE,iKACmI,IACjI,mBAAGygB,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,QAFvE,oQAGuJ,OAGvJ,qFACA,kZAEwL,IACtL,mBAAGyc,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,WAGvE,0FACA,iFACA,qBAAIhE,KAAK,IAAT,UACE,+BACE,wDADF,2HAC8J,OAE9J,+BACE,4DADF,iFAGA,+BACE,0DADF,kIAEE,qBAAIA,KAAK,OAAT,UACE,2GACA,0GACA,4FAGJ,+BACE,gEADF,0JAMF,oDACA,igBAKA,mJAEA,gEACA,gGACA,qBAAIA,KAAK,IAAT,UACE,uOAEc,mBAAGygB,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,QAFnF,+JAKA,sOAEW,mBAAGyc,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,QAFhF,+KAKA,+DACA,mFACA,6PAEmC,mBAAGyc,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,QAFxG,kUAIiE,OAEjE,yUAE+G,UAIjH,0EACA,iGACA,qBAAIhE,KAAK,IAAT,UACE,0JACA,uMAEF,4mBAOA,2DACA,khBAKA,gEACA,8KACA,8DACA,4PAEkC,mBAAGygB,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,iBAI3G,cAAC,KAAD,QCzCSksB,I,QA5KQ,WAAO,IAAD,EACE/nB,KADF,mBAClB8F,EADkB,KAClBA,KADkB,KAK3B,OAHAH,IAAMM,WAAU,WACdnJ,OAAO8c,SAAS,EAAG,KAClB,IAED,eAAC,GAAD,CAAQrD,UAAM2B,EAAd,UACE,sBAAKjf,UAAU,wBAAf,UACE,qBAAKA,UAAU,SAAf,SACE,oBAAIA,UAAU,QAAd,gCAEF,sBAAKA,UAAU,0BAAf,UACE,8CACA,2NAC6L,IAC3L,2DAFF,yTAKA,6JACA,0OAEe,OAEf,iXAE+I,OAE/I,gVAEsH,OAEtH,yRAE8D,OAE9D,8IAEA,0DACA,mUAEyG,mBAAGqf,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,WAE9K,4DACA,wKAEA,uEACA,wWAIA,yNAIA,2DACA,qBAAIhE,KAAK,IAAT,UACE,mEACA,sHACA,6IAEF,oKACqI,0DADrI,OAGA,6TAKA,yCAEA,onBAMA,odAGyD,OAGzD,kDAEA,oFACA,+BACE,oEACA,+NAES,OAET,uSAIA,wIACA,6GACA,4PAEqC,OAErC,6MACA,yMACA,wQAKF,2NACA,kDACA,sOAIA,+BACE,2EACA,qFACA,8EAEF,uDACA,+yBAOA,4CACA,uaAKA,kDACA,oTAIA,iDACA,weAKA,yDACA,gWAIA,8CACA,wXAIA,gEACA,wZAIA,0DACA,6GAEE,uBACA,mBAAGygB,KAAI,iBAAYC,GAAczS,GAAMjK,OAAvC,SAAiD0c,GAAczS,GAAMjK,iBAI3E,cAAC,KAAD,S,6CC3KApB,GAASJ,EAEF2tB,GAAc,uCAAG,WAAOjsB,EAAQnB,EAAWC,GAA1B,mBAAAC,EAAA,+EAERL,GAAOe,IAAP,+BAAmCO,IAF3B,OAGP,OADbf,EAFoB,QAGlBC,QAAkBD,EAAIE,KAAKyB,SACjC/B,EAAUI,EAAIE,MAJU,gDAO1BL,GAAU,eAAIa,gBAAJ,mBAAcR,YAAd,eAAoBkB,QAAS6rB,GAASC,aAPtB,yDAAH,0DAWdC,GAAiB,uCAAG,WAAOpsB,EAAQnB,EAAWC,GAA1B,mBAAAC,EAAA,+EAEXL,GAAOe,IAAP,sBAA0BO,IAFf,OAGV,OADbf,EAFuB,QAGrBC,QACNL,EAAUI,EAAIE,MAJa,gDAO7BL,GAAU,eAAIa,gBAAJ,mBAAcR,YAAd,eAAoBkB,QAAS6rB,GAASC,aAPnB,yDAAH,0DCDtBphB,GAAYC,KAAZD,QA4KOshB,GAxJK,WAAO,IAAD,EACUpoB,KADV,mBACfuD,EADe,KACfA,UACH9C,GAFkB,KAERC,eAFQ,GAGTzD,IACe0I,IAAMC,UAAS,IAJrB,mBAIjBsK,EAJiB,KAIRC,EAJQ,OAKiBxK,IAAMC,SAAS,mBALhC,mBAKjByiB,EALiB,KAKFC,EALE,OAMc3iB,IAAMC,UAAS,GAN7B,mBAMjB8N,EANiB,KAMHC,EANG,KAOlBE,EAAa,WACjBF,GAAc,IAUV4U,EAAmB,YACnB,OAAChlB,QAAD,IAACA,OAAD,EAACA,EAAWzL,OAGdqY,GAAW,GACXgY,GAAiB,OACf5kB,QADe,IACfA,OADe,EACfA,EAAWohB,SACX,SAAC3T,GACC,GAAIA,EAAEwX,OAAQ,OAAO/nB,EAAQuC,KAAK,CAAErF,SAAU,eAAgBC,MAAO,CAAE6qB,SAAU,kBAAmBltB,GAAI,UAE1G,SAACqR,GACMA,EAAI8b,UAcP/kB,KAAQvH,MAAMwQ,GAbdob,GAAc,OACZzkB,QADY,IACZA,OADY,EACZA,EAAWohB,SACX,SAAC3T,GACCb,GAAW,GACXxM,KAAQhH,QAAQqU,EAAElY,KAClB2H,EAAQuC,KAAK,CAAErF,SAAU,eAAgBC,MAAO,CAAE6qB,SAAU,kBAAmBltB,GAAI,UAErF,SAACqR,GACCuD,GAAW,GACXxM,KAAQvH,MAAMwQ,UAnBxB+G,GAAc,IA6BlB,OACE,eAAC,GAAD,CAAQ4C,UAAM2B,EAAd,UACE,sBAAKjf,UAAU,oBAAf,UACE,sBAAKA,UAAU,kBAAf,UACE,qBAAKA,UAAU,iBAAf,qBACA,eAAC,KAAD,CAAMgV,QA5CQ,SAACxM,GACrB6mB,EAAgB7mB,EAAEyf,KAClBpkB,OAAO8c,SAAS,CACdqL,IAAK,IACL0D,SAAU,YAwCwB1vB,UAAU,cAAc2vB,KAAG,EAACC,aAAc,CAACR,GAAgBS,KAAK,SAA9F,UACE,cAAC,KAAK/W,KAAN,UACE,mBAAGuG,KAAK,mBAAR,8BADa,mBAGf,cAAC,KAAKvG,KAAN,UACE,mBAAGuG,KAAK,kBAAR,iCADa,kBAGf,cAAC,KAAKvG,KAAN,UACE,mBAAGuG,KAAK,eAAR,2BADa,eAGf,cAAC,KAAKvG,KAAN,UACE,mBAAGuG,KAAK,eAAR,0BADa,qBAKnB,qBAAKrf,UAAU,wBAAf,SACE,sBAAKA,UAAU,gBAAf,UACE,qBAAKA,UAAU,iBAAf,qBACA,0BAASsC,GAAG,kBAAZ,UACE,sBAAKtC,UAAU,qBAAf,UACE,4EACA,mBAAGA,UAAU,OAAb,kHACA,cAAC,KAAD,CAAQpB,KAAK,UAAUqY,QAASA,EAASjX,UAAU,uBAAuBgV,QAASsa,EAAnF,4BAQF,qBAAKtvB,UAAU,2BAEjB,0BAASsC,GAAG,iBAAZ,UACE,sBAAKtC,UAAU,qBAAf,UACE,mDACA,mBAAGA,UAAU,OAAb,sEACA,gDACA,mBAAGA,UAAU,cAAb,4BACA,8CACA,mBAAGA,UAAU,cAAb,2EACA,oDACA,mBAAGA,UAAU,cAAb,oCAKF,qBAAKA,UAAU,2BAEjB,0BAASsC,GAAG,cAAZ,UACE,sBAAKtC,UAAU,qBAAf,UACE,6CACA,+BACE,+BACE,sBAAMM,MAAO,CAAE6b,MAAO,UAAW2T,OAAQ,WAAa9a,QAASsa,EAA/D,+BAGA,0BAGF,uFACA,0FAOJ,qBAAKtvB,UAAU,2BAEjB,yBAASsC,GAAG,cAAZ,SACE,sBAAKtC,UAAU,qBAAqBM,MAAO,CAAEyvB,UAAW,QAAxD,UACE,6CAEA,eAAC,KAAD,CAAM/vB,UAAU,mBAAhB,UACE,cAAC,GAAD,CAAS+P,IAAI,SAAb,SACE,cAAC,KAAD,CAAW7R,KAnJR,sfAmJiC8xB,MAAO,UAAWC,SAAU,SAAUC,iBAAiB,EAAMC,WAAS,KADlF,KAG1B,cAAC,GAAD,CAASpgB,IAAI,UAAb,SACE,cAAC,KAAD,CAAW7R,KCvKD,2qEDuK0B8xB,MAAO,UAAWC,SAAU,aAAcC,iBAAiB,EAAMC,WAAS,KADrF,qBAcvC,cAAC,GAAD,CAAaxf,eAAgB8J,EAAc7J,aAAcgK,EAAY9J,cAAY,EAACD,OAAQ,IAA1F,SACE,cAAC,GAAD,CAAYkG,iBAAkB6D,EAAY5D,aAAa,U,+BEpDhDoZ,GAtHS,SAAC,GAA2C,IAAzCC,EAAwC,EAAxCA,gBAAiBzV,EAAuB,EAAvBA,WAAY7F,EAAW,EAAXA,KAAW,EACnBhO,KADmB,0BACxDuD,EADwD,EACxDA,UAAW3H,EAD6C,EAC7CA,WAAcgF,EAD+B,OAG7B+E,IAAMC,SAAS,CACjD2jB,WAAY,KACZC,UAAW,OALoD,mBAG1DC,EAH0D,KAG9CC,EAH8C,OAOnC/jB,IAAMC,UAAS,GAPoB,mBAO1DsK,EAP0D,KAOjDC,EAPiD,OAQlDQ,KAAKC,UAAbC,EAR0D,oBAwCjElL,IAAMM,WAAU,WAEZyjB,EADiB,OAAf9tB,EACY,SAAC6nB,GAAD,mBAAC,eAAcA,GAAf,IAAoB8F,WAAY3tB,KAEhC,SAAC6nB,GAAD,mBAAC,eAAcA,GAAf,IAAoB8F,WAAY,WAE/C,CAAC3tB,IAEJ,IAAM6B,EAAQ,CACZ3F,KAAM,OACN0I,UAAU,EACVgE,OAAQ,kBACRG,aAAc,SAAC1M,GACb,IAAIoJ,EAAS,IAAIC,WAKjB,OAJAD,EAAOE,cAActJ,GACrBoJ,EAAOG,UAAY,SAACC,GAClBioB,EAAc,2BAAKD,GAAN,IAAkBF,WAAYloB,EAAOQ,OAAQ2nB,UAAWvxB,OAEhE,IAGX,OACE,cAAC,GAAD,CAAa2R,eAAgB0f,EAAiBzf,aAAcgK,EAAYrN,MAAO,IAAKsD,OAAQ,IAAKC,cAAY,EAA7G,SACE,sBAAK9Q,UAAU,qBAAf,UACE,cAAC,KAAD,CAAKiM,QAAQ,SAASjB,MAAM,SAA5B,SACE,cAAC,KAAD,UACE,sBAAKhL,UAAS,uBAAkB+U,EAAKvK,KAAvB,kBAAd,UACGgmB,EAAWF,WACV,cAAC,KAAD,CAAQhnB,KAAM,IAAK8G,KAAM,cAACC,GAAA,EAAD,IAAkBzE,IAAK4kB,EAAWF,aAE3D,eAAC,KAAD,CAAQhnB,KAAM,IAAKhJ,MAAO,CAAEwZ,gBAAiB,UAAWC,cAAe,UAAvE,iBACGzP,QADH,IACGA,OADH,EACGA,EAAWzL,KAAK,GAAGmb,cAAe,OAGvC,cAAC,KAAD,2BAAYxV,GAAZ,IAAmB6G,gBAAgB,EAAnC,SACE,qBAAKrL,UAAU,cAAf,SACE,cAAC0wB,GAAA,EAAD,gBAMV,oBAAI1wB,UAAU,qBAAd,oCACA,eAAC,KAAD,CACE4X,KAAMA,EACN/Y,KAAK,oBACL4Z,cAAe,CAAE5Z,KAAMkW,EAAKlW,KAAM+D,MAAOmS,EAAKnS,MAAOC,MAAOkS,EAAKlS,OACjE2V,OAAO,WACPG,cAAc,EACd3Y,UAAU,uBACV4Y,SAhFiB,SAAC+X,GACxB/Y,EACGI,iBACA5Y,MAAK,SAAC2Y,GACLb,GAAW,GACXxU,EACE8tB,EAAWF,WACXK,EAAE9xB,KACF8xB,EAAE/tB,MACF+tB,EAAE9tB,MACFkS,EAAK2W,SACL,SAAC3T,GACCb,GAAW,GACX0D,IACAlQ,KAAQhH,QAAR,mBACAiE,EAAS,CAAE/I,KAAMkG,EAAYK,QAASgD,QAAS,QAEjD,SAACwL,GACCuD,GAAW,GACX0D,IACAhb,EAAS,OAAQ+T,EAAK,cAI3BD,OAAM,SAAClL,GACNoS,IACAhb,EAAS,OAAQ,gCAAiC,YA+ClD,UAQE,cAAC,KAAKkZ,KAAN,CAAWja,KAAK,OAAhB,SACE,cAAC,KAAD,CAAOoa,YAAY,WAErB,cAAC,KAAKH,KAAN,CACEja,KAAK,QACLka,MAAO,CACL,CACEna,KAAM,QACN8L,QAAS,oCALf,SAQE,cAAC,KAAD,CAAOuO,YAAY,YAErB,cAAC,KAAKH,KAAN,CAAWja,KAAK,QAAhB,SACE,cAAC,KAAD,CAAOD,KAAK,SAASqa,YAAY,QAAQF,MAAO,CAAC,CAAEO,IAAK,GAAIlO,IAAK,SAEnE,cAAC,KAAK0N,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASzL,UAAU,EAAO5M,KAAK,UAAUua,SAAS,SAASnZ,UAAU,wBAAtF,+B,uGCvGJ4wB,IADY9iB,KAAZD,QACWgjB,KAAXD,QAyVOE,GAvVW,WAAO,IAAD,IACUpkB,IAAMC,SAAS,MADzB,mBACvBqd,EADuB,aAEMtd,IAAMC,SAAS,IAFrB,mBAEvBua,EAFuB,KAEXC,EAFW,OAGEza,IAAMC,SAAS,IAHjB,mBAGvBokB,EAHuB,KAGbC,EAHa,OAKatkB,IAAMC,SAAS,CACxDskB,UAAW,KACX5F,SAAU,KACV6F,QAAQ,IARoB,mBAKvBC,EALuB,KAKNC,EALM,OAUErqB,KAVF,gCAWA2F,IAAMC,UAAS,IAXf,mBAWvB0kB,EAXuB,aAYA3kB,IAAMC,UAAS,IAZf,mBAYvBsK,EAZuB,KAYdC,EAZc,OAacxK,IAAMC,SAAS,IAb7B,gCAcaD,IAAMC,SAAS,KAd5B,mBAcvB2kB,EAduB,KAcTC,EAdS,OAgBQ7kB,IAAMC,SAAS,IAhBvB,mBAgBvB6kB,EAhBuB,KAgBVC,EAhBU,OAiBQ/kB,IAAMC,SAAS,GAjBvB,mBAiBvB+kB,EAjBuB,KAiBVC,EAjBU,OAkBMjlB,IAAMC,SAAS,GAlBrB,mBAkBvBilB,EAlBuB,KAkBXC,EAlBW,OAmBMnlB,IAAMC,SAAS,GAnBrB,oBAmBvB2f,GAnBuB,MAmBXwF,GAnBW,SAqBQplB,IAAMC,SAAS,CACnDolB,WAAY,GACZC,eAAgB,KAvBY,qBAqBvBC,GArBuB,MAqBVC,GArBU,MA0B9BllB,qBAAU,WAER,GADAkK,GAAW,GACP3X,EAAgB,OAAQ,CAC1B,IAAM4yB,EAAaC,aAAW7yB,EAAgB,QAC9CssB,GACE6F,EACAF,EACAW,EAAWE,KACX,SAACta,GACCwZ,EAAmBxZ,EAAEtZ,OACrBozB,EAAc9Z,EAAE6Z,YAChBE,GAAc/Z,EAAEuU,YAChBpV,GAAW,MAEb,SAACvD,GACCuD,GAAW,WAIfjT,GACE,eACA,iBAGH,CAACotB,EAASK,EAAaF,IAE1B,IAwC8Bc,GAxBxBC,GAAc,uCAAG,WAAOvzB,GAAP,SAAA6C,EAAA,sDACrBmvB,EAAYhyB,EAAK8K,kBACjBsnB,EAAgB,CAAEF,QAAQ,IAFL,2CAAH,sDAWdsB,GAAe,SAAC5C,EAAc6C,EAASH,GAC3CG,IACAP,GAAe,CACbH,WAAYnC,EAAa,GACzBoC,eAAgBM,KAiDdI,GAAmB,SAACtN,EAAQuN,GAChChB,EAAevM,GACfqM,EAAekB,IAGXC,GAAc,uCAAG,WAAO5zB,GAAP,SAAA6C,EAAA,+EACd,IAAI6X,QAAJ,uCAAY,WAAO4J,EAAU3J,GAAjB,iBAAA9X,EAAA,6DACb3D,EAAO,GACPuuB,EAAaztB,EAAK8K,iBAAiB0G,IAAtB,uCAA0B,WAAO+Z,EAAW9sB,GAAlB,SAAAoE,EAAA,sDACzC3D,EAAOA,EAAO,OAAP,sBAAwBqsB,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAWnF,OAAnC,QAAkDmF,EAAU3hB,OAAO1K,KADjC,2CAA1B,yDAFA,SAMXwb,QAAQ2L,IAAIoH,GAAYrtB,MAAK,SAAC2C,GAClCuhB,EAASplB,MAPM,2CAAZ,0DADc,2CAAH,sDAad20B,GAAmB,uCAAG,WAAO7zB,GAAP,eAAA6C,EAAA,sEACJ+wB,GAAe5zB,GADX,OACpB8zB,EADoB,OAE1B/0B,EAAiBiB,EAAKH,KAAM,MAAOi0B,EAASA,GAFlB,2CAAH,sDAgBzB,OACE,sBAAK9yB,UAAU,6BAAf,UACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,SAAShL,UAAU,mBAAmBiL,OAAQ,CAAC,EAAG,GAArF,UACE,cAAC,KAAD,CAAK0Q,KAAM,GAAX,SACE,sBAAK3b,UAAU,aAAf,0BAA0C4xB,OAE5C,cAAC,KAAD,CAAKjW,KAAM,GAAX,SACE,sBAAK3b,UAAU,aAAf,0BAA0CssB,WAG9C,qBAAKtsB,UAAU,sBAAf,SACE,cAAC,KAAD,CACE+yB,WAAW,aACXC,WAAY1B,EACZra,QAASA,EACTgc,WAAY,CACVnH,SAAU0F,EACVlb,QAASob,EACTtnB,MAAOwnB,EACPtoB,KAAM,QACN4pB,iBAAiB,EACjBC,gBAAiB,CAAC,GAAI,GAAI,GAAI,GAAI,KAClCnpB,SAAU0oB,IAEZU,WAAY,SAACp0B,GAAD,OACV,cAAC,KAAK8Z,KAAN,CACEmE,MACE,eAAC,KAAD,CAAOre,KAAK,UAAUoM,MAAM,MAAM1B,KAAK,QAAvC,UACE,cAAC,KAAD,CAASxJ,MAAM,gBAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,qBAAqBgV,QAAS,kBAAM6d,GAAoB7zB,IAAvF,SACE,cAACq0B,GAAA,EAAD,CAAkB/yB,MAAO,CAAE6b,MAAO,iBAGtC,cAAC,KAAD,CAASrc,MAAM,cAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,qBAAqBgV,QAAS,kBAAMud,GAAevzB,IAAlF,SACE,cAACs0B,GAAA,EAAD,CAAahzB,MAAO,CAAE6b,MAAO,oBAVvC,SAeE,cAAC,KAAKrD,KAAKya,KAAX,CACEzzB,MAAO,+BAAOd,EAAKH,OACnBwoB,YACE,gCACGmM,KAAOx0B,EAAKy0B,WAAW7L,OAAO,uBADjC,KAC2D,IACzD,uBAAM5nB,UAAU,cAAcM,MAAO,CAAE6b,MAAO,WAA9C,mBACSnd,EAAK4sB,0BAS5B,qBAAK5rB,UAAU,uBAAf,SACE,eAAC,KAAD,CACEiX,QAASA,EACT+b,WAAY1B,EACZoC,OAAQ,SAAC5oB,GAAD,OAAOA,EAAE6oB,WACjBC,OAAQ,CAAErK,EAAG,IAAKlf,EAAG,KACrB4oB,WAAY,CACVnH,SAAU0F,EACVlb,QAASob,EACTtnB,MAAOwnB,EACPtoB,KAAM,QACN4pB,iBAAiB,EACjBC,gBAAiB,CAAC,GAAI,GAAI,GAAI,GAAI,KAClCnpB,SAAU0oB,IAEZ1yB,UAAU,2BAdZ,UAeE,wBAAC4wB,GAAD,yBACE9wB,MAAM,OACNyN,MAAM,QAnJc+kB,GAoJK,OApJU,CAC3CuB,eAAgB,gBAAGC,EAAH,EAAGA,gBAAiBlE,EAApB,EAAoBA,aAAc6C,EAAlC,EAAkCA,QAASsB,EAA3C,EAA2CA,aAA3C,OACd,sBAAKzzB,MAAO,CAAE6Q,QAAS,GAAvB,UACE,cAAC,KAAD,CACE8H,YAAW,iBAAYqZ,IACvB1rB,MAAOgpB,EAAa,GACpB5lB,SAAU,SAACxB,GAAD,OAAOsrB,EAAgBtrB,EAAEoX,OAAOhZ,MAAQ,CAAC4B,EAAEoX,OAAOhZ,OAAS,KACrEotB,aAAc,kBAAMxB,GAAa5C,EAAc6C,EAASH,KACxDhyB,MAAO,CAAE+Y,aAAc,EAAG4a,QAAS,WAErC,eAAC,KAAD,WACE,cAAC,KAAD,CACEr1B,KAAK,UACLoW,QAAS,kBAAMwd,GAAa5C,EAAc6C,EAASH,KACnDliB,KAAM,cAAC8jB,GAAA,EAAD,IACN5qB,KAAK,QACLhJ,MAAO,CAAEiN,MAAO,IALlB,oBAQA,cAAC,KAAD,CAAQyH,QAAS,kBAxBL,SAAC+e,GACnBA,IACA7B,GAAe,CAAEH,WAAY,KAsBAoC,CAAYJ,IAAezqB,KAAK,QAAQhJ,MAAO,CAAEiN,MAAO,IAA/E,0BAMN6mB,WAAY,SAACC,GAAD,OAAc,cAACH,GAAA,EAAD,CAAgB5zB,MAAO,CAAE6b,MAAOkY,EAAW,eAAYpV,MACjFqV,SAAU,SAAC1tB,EAAO2tB,GAAR,OAAoBA,EAAOjC,IAAaiC,EAAOjC,IAAWx0B,WAAW02B,cAAc/pB,SAAS7D,EAAM4tB,eAAiB,IAC7HjwB,OAAQ,SAACrG,GAAD,OACN+zB,GAAYD,iBAAmBM,GAC7B,cAAC,KAAD,CACEmC,eAAgB,CAAE3a,gBAAiB,UAAW3I,QAAS,GACvDujB,YAAa,CAACzC,GAAYF,YAC1B4C,YAAU,EACVC,gBAAiB12B,EAAOA,EAAKJ,WAAa,KAG5CI,MA6GE,IAIE22B,QAAS,CACP,CAAE32B,KAAM,MAAO0I,MAAO,QACtB,CAAE1I,KAAM,MAAO0I,MAAO,QACtB,CAAE1I,KAAM,MAAO0I,MAAO,QACtB,CAAE1I,KAAM,OAAQ0I,MAAO,UAEzB0tB,SAAU,SAAC1tB,EAAOkE,GAAR,OAAcA,EAAEjM,KAAK4L,SAAS7D,IACxC0rB,UAAU,OACVrK,IAAI,KACJjoB,UAAU,sBAEZ,cAAC4wB,GAAD,CACE9wB,MAAM,eACNwyB,UAAU,GACVwC,OAAQ,SAACjzB,EAAGskB,GAAJ,OAAUtkB,EAAE4xB,UAAYtN,EAAEsN,WAClClvB,OAAQ,SAACuG,GAAD,OAAO,8BAAM0oB,KAAO1oB,EAAE2oB,WAAW7L,OAAO,0BAEhD5nB,UAAU,oBADN,MAGN,cAAC4wB,GAAD,CACE9wB,MAAM,QACNwyB,UAAU,GACV/kB,MAAO,IACPunB,OAAQ,SAACjzB,EAAGskB,GAAJ,OAAUtkB,EAAE+pB,WAAazF,EAAEyF,YACnC5gB,MAAM,QACNzG,OAAQ,SAACuG,GAAD,OAAO,qBAAK9K,UAAU,cAAf,SAA8B8K,EAAE8gB,cAE/C5rB,UAAU,oBADN,MAGN,cAAC4wB,GAAD,CACE9wB,MAAM,SACNwyB,UAAU,GACVtnB,MAAM,QACNzG,OAAQ,SAACvF,GACP,OACE,cAAC,KAAD,CAAKiN,QAAQ,MAAMjB,MAAM,SAAShL,UAAU,qBAA5C,SACE,cAAC,KAAD,UACE,eAAC,KAAD,CAAOpB,KAAK,UAAUoM,MAAM,MAAM1B,KAAK,QAAvC,UACE,cAAC,KAAD,CAASxJ,MAAM,gBAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,qBAAqBgV,QAAS,kBAAM6d,GAAoB7zB,IAAvF,SACE,cAACq0B,GAAA,EAAD,CAAkB/yB,MAAO,CAAE6b,MAAO,iBAGtC,cAAC,KAAD,CAASrc,MAAM,cAAf,SACE,cAAC,KAAD,CAAQwJ,KAAK,QAAQtJ,UAAU,qBAAqBgV,QAAS,kBAAMud,GAAevzB,IAAlF,SACE,cAACs0B,GAAA,EAAD,CAAahzB,MAAO,CAAE6b,MAAO,yBAS3Cnc,UAAU,oBADN,WAMV,cAAC,GAAD,CAAa2Q,eAAgBwgB,EAAgBD,OAAQtgB,aAjOtC,WACjBwgB,EAAgB,CAAEH,UAAW,KAAMC,QAAQ,EAAO7F,SAAU,QAgOqBta,SAAS,OAAOxD,MAAM,OAAOsD,OAAQ,IAAKC,cAAY,EAArI,SACE,qBAAK9Q,UAAU,aAAf,SACE,cAAC,KAAD,CAAKiM,QAAQ,SAASjB,MAAM,SAA5B,SACE,eAAC,KAAD,CAAKhL,UAAU,iBAAiBsC,GAAG,WAAW2J,QAAQ,SAAtD,WACW,OAAR8kB,QAAQ,IAARA,OAAA,EAAAA,EAAUh0B,QAAS,GAClB,eAAC,KAAD,CAAK4e,KAAM,GAAX,UACE,eAAC,KAAD,CAAK3Q,MAAM,SAASiB,QAAQ,SAAShB,OAAQ,CAAC,GAAI,GAAlD,UACE,cAAC,KAAD,UACE,cAAC,KAAD,CAAQrM,KAAK,UAAUwR,KAAM,cAAC2kB,GAAA,EAAD,IAAkB/f,QApJnD,WACVkS,EAAa,GACfC,EAAcD,EAAa,IAkJsDlnB,UAAU,UAAUwL,SAAyB,IAAf0b,MAEjG,eAAC,KAAD,WACGA,EADH,aACkB6J,QADlB,IACkBA,OADlB,EACkBA,EAAUh0B,UAE5B,cAAC,KAAD,UACE,cAAC,KAAD,CACE6B,KAAK,UACLwR,KAAM,cAAC4kB,GAAA,EAAD,IACNhgB,QAlKN,WACVkS,EAAa6J,EAASh0B,OAAS,GACjCoqB,EAAcD,EAAa,IAiKTlnB,UAAU,WACVwL,SAAU0b,KAAU,OAAK6J,QAAL,IAAKA,OAAL,EAAKA,EAAUh0B,eAIzC,cAAC,KAAD,CAASuD,MAAO,CAAE+Y,aAAc,QAGpC,cAAC,KAAD,CAAKsC,KAAM,GAAI3b,UAAU,qBAAzB,UACW,OAAR+wB,QAAQ,IAARA,OAAA,EAAAA,EAAUh0B,QAAS,GAClB,cAAC,GAAD,CACE4rB,aAAY,iCAA4BoI,EAAS7J,EAAa,GAAGqE,KACjE1C,UAAWmB,EACXpB,MAAK,UAAEmI,EAAS7J,EAAa,GAAGte,cAA3B,aAAE,EAAiCyiB,0B,oBC3VtD7pB,GAASJ,EAEF6zB,GAAW,uCAAG,WAAOtzB,EAAWC,GAAlB,iBAAAC,EAAA,+EAELL,GAAOe,IAAP,sBAAkC,CAClDjB,QAAS,CACPkB,cAAc,GAAD,OAAKjD,EAAgB,WAJf,UAOJ,OALbwC,EAFiB,QAOfC,SAAkBD,EAAIE,KAAKyB,QAPZ,yCAQd/B,EAAS,UAACI,EAAIE,YAAL,aAAC,EAAUizB,QARN,OAUrBtzB,EAAUG,EAAIE,KAAKpC,KAVE,yDAavB+B,EAAU,wCAba,0DAAH,wDAiBXuzB,GAAiB,uCAAG,WAAOzzB,EAAUC,EAAWC,GAA5B,eAAAC,EAAA,+EAEXL,GAAOM,KAAK,0BAA2BJ,GAF5B,QAEvBK,EAFuB,QAGpBC,OAAgBD,EAAIE,KAAKyB,SAChC/B,EAAUI,EAAIE,MAJa,gDAO7BL,EAAU,oCAPmB,yDAAH,0DCPtBgvB,IADY9iB,KAAZD,QACWgjB,KAAXD,QACA9R,GAAWC,KAAXD,OA4UOsW,GA3TQ,SAAC,GAAqB,IAAD,EAAlBC,EAAkB,EAAlBA,YAAkB,EAC3B3d,KAAKC,UAAbC,EADmC,sBAEV7Q,KAFU,gCAGZ2F,IAAMC,UAAS,IAHH,mBAGnC0kB,EAHmC,KAG1BiE,EAH0B,OAIZ5oB,IAAMC,UAAS,GAJH,mBAInCsK,EAJmC,KAI1BC,EAJ0B,OAKNxK,IAAMC,UAAS,GALT,mBAKnC4oB,EALmC,KAKtBC,EALsB,OAMF9oB,IAAMC,SAAS,MANb,mBAMnC8oB,EANmC,KAMrBC,EANqB,OAOJhpB,IAAMC,SAAS,CACnDolB,WAAY,GACZC,eAAgB,KATwB,mBAOnCC,EAPmC,KAOtBC,EAPsB,OAWbxlB,IAAMC,SAAS,IAXF,mBAWnCuoB,EAXmC,KAW5BS,EAX4B,KAa1C3oB,qBAAU,WACRkK,GAAW,GACX+d,IACE,SAACld,GACC4d,EAAY5d,GACZb,GAAW,MAEb,SAACvD,GACC/T,EAAS,QAAS+T,EAAK,SACvBuD,GAAW,QAGd,CAACma,EAASgE,IAEb,IAAM7C,EAAe,SAAC5C,EAAc6C,EAASH,GAC3CG,IACAP,EAAe,CACbH,WAAYnC,EAAa,GACzBoC,eAAgBM,KASdsD,EAAuB,SAACtD,GAAD,MAAgB,CAC3CuB,eAAgB,gBAAGC,EAAH,EAAGA,gBAAiBlE,EAApB,EAAoBA,aAAc6C,EAAlC,EAAkCA,QAASsB,EAA3C,EAA2CA,aAA3C,OACd,sBAAKzzB,MAAO,CAAE6Q,QAAS,GAAvB,UACE,cAAC,KAAD,CACE8H,YAAW,iBAAYqZ,GACvB1rB,MAAOgpB,EAAa,GACpB5lB,SAAU,SAACxB,GAAD,OAAOsrB,EAAgBtrB,EAAEoX,OAAOhZ,MAAQ,CAAC4B,EAAEoX,OAAOhZ,OAAS,KACrEotB,aAAc,kBAAMxB,EAAa5C,EAAc6C,EAASH,IACxDhyB,MAAO,CAAE+Y,aAAc,EAAG4a,QAAS,WAErC,eAAC,KAAD,WACE,cAAC,KAAD,CAAQr1B,KAAK,UAAUoW,QAAS,kBAAMwd,EAAa5C,EAAc6C,EAASH,IAAYliB,KAAM,cAAC8jB,GAAA,EAAD,IAAoB5qB,KAAK,QAAQhJ,MAAO,CAAEiN,MAAO,IAA7I,oBAGA,cAAC,KAAD,CAAQyH,QAAS,kBAnBL,SAAC+e,GACnBA,IACA7B,EAAe,CAAEH,WAAY,KAiBAoC,CAAYJ,IAAezqB,KAAK,QAAQhJ,MAAO,CAAEiN,MAAO,IAA/E,0BAMN6mB,WAAY,SAACC,GAAD,OAAc,cAACH,GAAA,EAAD,CAAgB5zB,MAAO,CAAE6b,MAAOkY,EAAW,eAAYpV,MACjFqV,SAAU,SAAC1tB,EAAO2tB,GAAR,OAAoBA,EAAOjC,GAAaiC,EAAOjC,GAAWx0B,WAAW02B,cAAc/pB,SAAS7D,EAAM4tB,eAAiB,IAC7HjwB,OAAQ,SAACrG,GAAD,OACN+zB,EAAYD,iBAAmBM,EAC7B,cAAC,KAAD,CAAamC,eAAgB,CAAE3a,gBAAiB,UAAW3I,QAAS,GAAKujB,YAAa,CAACzC,EAAYF,YAAa4C,YAAU,EAACC,gBAAiB12B,EAAOA,EAAKJ,WAAa,KAErKI,KAIA23B,EAAkB,SAAClF,GACvB+E,EAAgB/E,GAChB/Y,EAAK8G,eAAe,CAAEnU,WAAYomB,EAAEpmB,WAAYoS,YAAagU,EAAEhU,YAAanS,KAAMmmB,EAAEnmB,KAAMxI,OAAQ2uB,EAAE/S,WACpG4X,GAAa,IAyBf,OACE,sBAAKx1B,UAAU,0BAAf,UACE,eAAC,KAAD,CAAKiM,QAAQ,gBAAgBjB,MAAM,SAASC,OAAQ,CAAC,EAAG,GAAxD,UACE,cAAC,KAAD,CAAK0Q,KAAM,GAAX,SACE,gDAAmBuZ,EAAMn4B,YAE3B,cAAC,KAAD,CAAK4e,KAAM,QAGb,qBAAK3b,UAAU,sBAAf,SACE,cAAC,KAAD,CACE+yB,WAAW,aACXC,WAAYkC,EACZje,QAASA,EACTgc,WAAY,CAAEnH,SAAU,EAAG1hB,MAAO8qB,EAAMn4B,OAAQuM,KAAM,QAAS4pB,iBAAiB,EAAMC,gBAAiB,CAAC,GAAI,GAAI,GAAI,MACpHC,WAAY,SAACre,GAAD,aACV,cAAC,KAAK+D,KAAN,CACEmE,MACE,eAAC,MAAD,GAAO3T,MAAO,EAAG1K,KAAK,UAAUoM,MAAM,OAAtC,sBAAiD,SAAjD,2BACiB,UAAd+J,EAAKvK,KACJ,cAAC,KAAD,CAAKxK,UAAU,gBAAgBmc,MAAM,UAArC,SACGpH,EAAKvK,OAGR,cAAC,KAAD,CAAKxK,UAAU,gBAAf,SAAgC+U,EAAKvK,OAEvC,cAAC,KAAD,CAAQlB,KAAK,QAAQtJ,UAAU,qBAAqBgV,QAAS,kBAAM6gB,EAAgB9gB,IAAnF,SACE,cAAC+gB,GAAA,EAAD,CAAcx1B,MAAO,CAAE6b,MAAO,iBATlC,IAFJ,SAeE,cAAC,KAAKrD,KAAKya,KAAX,CACEzzB,MACE,eAAC,KAAD,WACE,8BAAMiV,EAAKoB,WACX,8BACGpB,EAAK6I,SACJ,cAAC,KAAD,CAAS9d,MAAM,SAAf,SACE,cAAC,KAAD,CAAOkC,OAAO,cAGhB,cAAC,KAAD,CAASlC,MAAM,WAAf,SACE,cAAC,KAAD,CAAOkC,OAAO,iBAMxBqlB,YACE,eAAC,KAAD,CAAO1b,UAAU,WAAWrC,KAAM,EAAlC,UACE,8BAAMyL,EAAKnS,QACX,gCACG4wB,KAAOze,EAAKghB,WAAWnO,OAAO,gBADjC,KACoD,IAClD,uBAAMtnB,MAAO,CAAE6b,MAAO,WAAtB,UACGpH,EAAKxK,WADR,IACqBwK,EAAK4H,YAD1B,6BAWhB,qBAAK3c,UAAU,uBAAf,SACE,eAAC,MAAD,GACEiX,QAASA,EACT+b,WAAYkC,EACZtB,OAAQ,CAAErK,EAAG,IAAKlf,EAAG,KACrBqpB,OAAQ,SAAC5oB,GAAD,OAAOA,EAAEunB,KACjBY,WAAY,CAAEnH,SAAU,EAAG1hB,MAAO8qB,EAAMn4B,OAAQuM,KAAM,QAAS4pB,iBAAiB,EAAMC,gBAAiB,CAAC,GAAI,GAAI,GAAI,OALtH,yBAMWlc,GANX,2BAOY,4BAPZ,2BAQE,wBAAC,GAAD,yBACE1J,MAAM,OACFqoB,EAAqB,aAF3B,IAGEd,OAAQ,SAACjzB,EAAGskB,GAAJ,OAAUtkB,EAAEsU,SAASpZ,OAASopB,EAAEhQ,SAASpZ,QACjD+C,MAAM,WACNwyB,UAAU,WACVrK,IAAI,KACJjoB,UAAU,sBAEZ,wBAAC,GAAD,yBAAQuN,MAAM,OAAUqoB,EAAqB,UAA7C,IAAuDd,OAAQ,SAACjzB,EAAGskB,GAAJ,OAAUtkB,EAAEe,MAAM7F,OAASopB,EAAEvjB,MAAM7F,QAAQ+C,MAAM,QAAQwyB,UAAU,QAAQrK,IAAI,KAAKjoB,UAAU,sBAC7J,cAAC,GAAD,CACEuN,MAAM,MACNzN,MAAM,gBACNwyB,UAAU,GACVtnB,MAAM,QACN8pB,OAAQ,SAACjzB,EAAGskB,GAAJ,OAAUtkB,EAAEk0B,UAAY5P,EAAE4P,WAClCxxB,OAAQ,SAACuG,GAAD,OAAO,8BAAM0oB,KAAO1oB,EAAEirB,WAAWnO,OAAO,kBAEhD5nB,UAAU,oBADN,MAGN,cAAC,GAAD,CACEuN,MAAM,KACNzN,MAAM,OACNwyB,UAAU,GACVuC,QAAS,CACP,CAAE32B,KAAM,QAAS0I,MAAO,SACxB,CAAE1I,KAAM,OAAQ0I,MAAO,SAEzB0tB,SAAU,SAAC1tB,EAAOkE,GAAR,OAAcA,EAAEN,KAAKC,SAAS7D,IACxCoE,MAAM,OACNzG,OAAQ,SAACuG,GACP,MAAe,UAAXA,EAAEN,KAEF,qBAAKxK,UAAU,gBAAf,SACE,cAAC,KAAD,CAAKmc,MAAM,UAAX,SAAsBrR,EAAEN,SAK1B,qBAAKxK,UAAU,gBAAf,SACE,cAAC,KAAD,UAAM8K,EAAEN,UAMhBxK,UAAU,oBADN,MAGN,cAAC,GAAD,CACEuN,MAAM,MACNzN,MAAM,SACNwyB,UAAU,GACVtnB,MAAM,QACN8pB,OAAQ,SAACjzB,EAAGskB,GAAJ,OAAUtkB,EAAE0I,WAAa4b,EAAE5b,YACnChG,OAAQ,SAACuG,GAAD,OACN,gCACGA,EAAEP,WADL,IACkBO,EAAE6R,gBAItB3c,UAAU,oBADN,MAIN,cAAC,GAAD,CACEuN,MAAM,KACNzN,MAAM,SACNwyB,UAAU,GACVtnB,MAAM,SACNzG,OAAQ,SAACuG,GAAD,OAAO,8BAAMA,EAAE8S,SAAW,cAAC,KAAD,CAAK5d,UAAU,2BAAf,oBAAyD,cAAC,KAAD,CAAKA,UAAU,6BAAf,yBAE3FA,UAAU,oBADN,MAIN,cAAC,GAAD,CACEuN,MAAM,KACNzN,MAAM,SACNwyB,UAAU,GACVtnB,MAAM,QACNzG,OAAQ,SAACwQ,GACP,OACE,cAAC,KAAD,CAAQzL,KAAK,QAAQtJ,UAAU,qBAAqBgV,QAAS,kBAAM6gB,EAAgB9gB,IAAnF,SACE,cAAC+gB,GAAA,EAAD,CAAcx1B,MAAO,CAAE6b,MAAO,gBAKpCnc,UAAU,oBADN,QA7FR,MAmGF,cAAC,GAAD,CAAa2Q,eAAgB4kB,EAAa3kB,aA1L3B,WACjB8kB,EAAgB,MAChBF,GAAa,IAwLyDjoB,MAAO,IAAKsD,OAAQ,IAAKC,cAAY,EAAzG,SACE,sBAAK9Q,UAAU,qBAAf,UACE,oBAAIA,UAAU,QAAQM,MAAO,CAAE+Y,aAAc,EAAG8C,MAAO,WAAvD,gBACGsZ,QADH,IACGA,OADH,EACGA,EAActf,WAEjB,oBAAInW,UAAU,QAAd,gBAAuBy1B,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAc7yB,QACrC,eAAC,KAAD,CAAMgV,KAAMA,EAAM/Y,KAAK,iBAAiB4Z,cAAe,GAAID,OAAO,WAAWG,cAAc,EAAO3Y,UAAU,uBAAuB4Y,SA3LlH,SAAClX,GACxByzB,GAAkB,2BACXzzB,GADU,IACAgqB,QAAS+J,EAAapD,IAAKzU,SAAQ,OAAE6X,QAAF,IAAEA,OAAF,EAAEA,EAAc7X,YAClE,SAAC7F,GACC2d,EAAgB,MAChBhrB,KAAQhH,QAAQqU,EAAElY,KAClBy1B,GAAYjE,GACZmE,GAAa,MAEf,SAAC7hB,GACCjJ,KAAQvH,MAAMwQ,GACd6hB,GAAa,OAgLX,UACE,cAAC,KAAK1c,KAAN,CAAW6F,MAAM,eAAe9f,KAAK,cAArC,SACE,cAAC,KAAD,CAAOD,KAAK,SAASqa,YAAY,mBAEnC,cAAC,KAAKH,KAAN,CACE6F,MAAM,cACN9f,KAAK,aACL0a,aAAc,CAAC,eACfR,MAAO,CACL,CAAEC,UAAU,GACZ,gBAAGN,EAAH,EAAGA,cAAH,MAAwB,CACtBc,UADsB,SACZC,EAAG7S,GACX,OAAKA,GAAS8R,EAAc,gBAAkB9R,EACrC8S,QAAQE,UAEVF,QAAQC,OAAO,IAAItH,MAAM,+CAXxC,SAeE,cAAC,KAAD,CAAOzT,KAAK,SAASqa,YAAY,kBAEnC,cAAC,KAAKH,KAAN,CAAW6F,MAAM,OAAO9f,KAAK,OAA7B,SACE,eAAC,KAAD,CAAQmB,UAAU,cAAlB,UACE,cAAC,GAAD,CAAQ4G,MAAM,OAAd,kBACA,cAAC,GAAD,CAAQA,MAAM,QAAd,wBAGJ,cAAC,KAAKkS,KAAN,CAAWja,KAAK,WAAhB,SACE,eAAC,KAAD,CAAKoN,QAAQ,gBAAgBjB,MAAM,SAAnC,UACE,cAAC,KAAD,UACE,oBAAI1K,MAAO,CAAE+Y,aAAc,GAA3B,6BAEF,cAAC,KAAD,UAAMoc,GAAgB,cAAC,KAAD,CAAQ52B,KAAK,WAAW0pB,QAASkN,EAAa7X,SAAU5T,SAAU,SAACue,GAAD,OAAamN,EAAgB,2BAAKD,GAAN,IAAoB7X,SAAU2K,eAGtJ,cAAC,KAAKzP,KAAN,CAAWI,SAAO,EAAlB,SACE,cAAC,KAAD,CAAQjC,QAASA,EAASzL,UAAU,EAAO5M,KAAK,UAAUua,SAAS,SAASnZ,UAAU,wBAAtF,kC,gCC5QCg2B,GA5DA,WACb,IAAM7b,EAASnW,IADI,EAES0I,IAAMC,SAAS,MAFxB,mBAEZspB,EAFY,KAEJC,EAFI,OAGWxpB,IAAMC,UAAS,GAH1B,mBAGZsK,EAHY,KAGHC,EAHG,OAIenQ,KAJf,mBAMbovB,GANa,KAIV7rB,UAJU,KAMD,WAChB,GAAI6P,EAAQ,CACVjD,GAAW,GACX,IAAMib,EAAaC,aAAWjY,GAC9B4U,GACEoD,EAAWE,KACX,SAACta,GACCb,GAAW,GACXxM,KAAQhH,QAAQqU,EAAElY,KAClBq2B,EAAUne,EAAEwX,WAEd,SAAC5b,GACCuD,GAAW,GACXxM,KAAQvH,MAAMwQ,SAmBtB,OAbAjH,IAAMM,WAAU,WACd,GAAImN,EAAQ,CACV,IAAMgY,EAAaC,aAAWjY,GAC9B+U,GACEiD,EAAWE,KACX,SAACta,GACCme,EAAUne,EAAEwX,WAEd,kBAGH,IAGD,sBAAKvvB,UAAU,kBAAf,UACE,cAAC,KAAD,CAAOM,MAAO,CAAEkf,UAAW,UAAY4W,QAAM,EAAC9d,UAAU,EAAO5N,QAAQ,4FAA4F9L,KAAK,SACxK,eAAC,KAAD,CAAO+M,UAAU,WAAWX,MAAM,SAAShL,UAAU,cAAcsJ,KAAK,SAAxE,UACE,qBAAKtJ,UAAU,gBAAf,sBACCi2B,EACC,qCACE,cAAC,KAAM7c,SAAP,CAAgBpZ,UAAU,gBAAgBiZ,YAAY,UAAUrS,MAAOqvB,EAAQI,WAAY,SAAChlB,GAAD,OAAcA,EAAU,cAACilB,GAAA,EAAD,IAAiB,cAACC,GAAA,EAAD,OACpI,cAAC,KAAD,CAAQ33B,KAAK,UAAUwR,KAAM,cAAComB,GAAA,EAAD,CAAcC,OAAQ,KAAQxf,QAASA,EAASjC,QAASmhB,EAAWn2B,UAAU,mBAA3G,yBAKF,cAAC,KAAD,CAAQpB,KAAK,UAAUqY,QAASA,EAASjC,QAASmhB,EAAWn2B,UAAU,mBAAvE,gCC9CF6N,GAAYC,KAAZD,QA0FO6oB,IAzFI7F,KAAXD,OAEY,WAAO,IAAD,EAClB/rB,EAAW8V,cADO,EAEoBjO,IAAMC,UAAS,GAFnC,mBAEjB0jB,EAFiB,KAEAsG,EAFA,OAGU5vB,KAHV,mBAGfuD,EAHe,KAGfA,UAHe,QAIaoC,IAAMC,SAAN,UAAe9H,EAASF,MAAMrC,UAA9B,QAAoC,MAJjD,mBAIjB+yB,EAJiB,KAIJuB,EAJI,KAiBxB,OACE,sBAAK52B,UAAU,oBAAf,UACE,oBAAIA,UAAU,aAAd,wBACA,qBAAKA,UAAU,uBAAf,SACE,eAAC,KAAD,WACE,cAAC,KAAD,CAAKof,GAAI,EAAGlU,GAAI,GAAhB,SACE,sBAAKlL,UAAU,qBAAf,UACE,sBAAKA,UAAU,gBAAf,UACE,cAAC,GAAD,CAAYsJ,KAAM,MAClB,qBAAKtJ,UAAU,YAAf,gBAA4BsK,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAWzL,QAC7B,OAATyL,QAAS,IAATA,OAAA,EAAAA,EAAWzL,OACV,sBAAKmB,UAAU,sBAAf,UACuB,UAAX,OAATsK,QAAS,IAATA,OAAA,EAAAA,EAAWE,OACV,qCACE,sBAAMxK,UAAU,cAAhB,eADF,WAC0CsK,QAD1C,IAC0CA,OAD1C,EAC0CA,EAAWC,WADrD,cACqED,QADrE,IACqEA,OADrE,EACqEA,EAAWqS,YADhF,kBAImB,WAAX,OAATrS,QAAS,IAATA,OAAA,EAAAA,EAAWE,OACV,qCACE,sBAAMxK,UAAU,cAAhB,eADF,WAC0CsK,QAD1C,IAC0CA,OAD1C,EAC0CA,EAAWC,WADrD,mBAUR,sBAAKvK,UAAU,eAAf,UACE,sBAAKA,UAAU,qBAAf,UACE,qBAAKA,UAAU,eAAf,qBACA,sBAAKA,UAAU,eAAegV,QAvCpB,WACxB2hB,GAAiB,IAsCH,UACE,cAACb,GAAA,EAAD,IADF,aAKF,cAAC,KAAD,CAASx1B,MAAO,CAAE4c,OAAQ,YAC1B,sBAAKld,UAAU,YAAf,UACE,qBAAKA,UAAU,QAAf,6BACA,qBAAKA,UAAU,uBAAf,gBAAuCsK,QAAvC,IAAuCA,OAAvC,EAAuCA,EAAWzL,OAClD,qBAAKmB,UAAU,wBAAf,gBAAwCsK,QAAxC,IAAwCA,OAAxC,EAAwCA,EAAW1H,SACzC,OAAT0H,QAAS,IAATA,OAAA,EAAAA,EAAWzH,QAAS,sBAAK7C,UAAU,wBAAf,4BAAgDsK,QAAhD,IAAgDA,OAAhD,EAAgDA,EAAWzH,oBAKxF,cAAC,KAAD,CAAKuc,GAAI,GAAIlU,GAAI,GAAjB,SACE,qBAAKlL,UAAU,oBAAf,SACE,eAAC,KAAD,CAAMwd,iBAAiB,IAAIhO,UAAW6lB,EAAarrB,SApD3C,SAACie,GACnB2O,EAAc3O,IAmDJ,UACE,cAAC,GAAD,CAASlY,IAAI,sBAA8B/P,UAAU,cAArD,SACE,cAAC,GAAD,KADqC,KAGlB,WAAX,OAATsK,QAAS,IAATA,OAAA,EAAAA,EAAWE,OACV,cAAC,GAAD,CAASuF,IAAI,kBAA0B/P,UAAU,cAAjD,SACE,cAAC,GAAD,CAAgBq1B,YAAaA,KADI,KAIrC,cAAC,GAAD,CAAStlB,IAAI,UAAkB/P,UAAU,cAAzC,SACE,cAAC,GAAD,KADyB,iBAQtB,OAAdsK,GAAsB,cAAC,GAAD,CAAiB+lB,gBAAiBA,EAAiBzV,WA5E3D,WACjB+b,GAAiB,IA2EmF5hB,KAAMzK,SChF/FusB,GAZS,WAAO,IAAD,EACY9vB,KADZ,0BACR8F,GADQ,EACnBvC,UADmB,EACRuC,MADQ,KAK5B,OAHAH,IAAMM,WAAU,WACdnJ,OAAO8c,SAAS,EAAG,KAClB,IAED,cAAC,GAAD,CAAQrD,KAAMkQ,GAAY3gB,GAA1B,SACE,cAAC,GAAD,OC8GSiqB,I,QC3HA,ID8BE,WAAO,IAAD,EACW/vB,KADX,mBACdW,EADc,KACDC,EADC,KAuErB,OApEAqF,qBAAU,WACR+pB,KAAIC,KAAK,CACP5W,SAAU,IACV6W,OAAQ,OACRC,MAAM,EACNC,QAAQ,EACRC,gBAAiB,KAaf73B,EAAgB,QAClBoI,EAAS,CAAE/I,KAAMkG,EAAYO,KAAM8C,QAAS5I,EAAgB,UAE5DoI,EAAS,CAAE/I,KAAMkG,EAAYO,KAAM8C,QAAS,cAE7C,IAEH6E,qBAAU,WACR,GAAIzN,EAAgB,OAAQ,CAC1B,IAAM4yB,EAAaC,aAAW7yB,EAAgB,QAC9C8C,EACE8vB,EAAWE,KACX,SAACta,GACCpQ,EAAS,CAAE/I,KAAMkG,EAAYC,SAAUoD,QAAS4P,OAElD,SAACpE,GACC/T,EAAS,OAAQ,gDAAiD,WAItEwD,EACE+uB,EAAWE,KACX,SAACtwB,GACC,GAAY,OAARA,EAAc,CAChB,IAAMs1B,EAAeC,KACnB,IAAI9U,WAAWzgB,EAAIE,MAAMkI,QAAO,SAAUlI,EAAMs1B,GAC9C,OAAOt1B,EAAOu1B,OAAOC,aAAaF,KACjC,KAEL5vB,EAAS,CAAE/I,KAAMkG,EAAYQ,YAAa6C,QAAQ,0BAAD,OAA4BkvB,UAE7E1vB,EAAS,CAAE/I,KAAMkG,EAAYQ,YAAa6C,QAAS,UAGvD,SAACwL,GACC/T,EAAS,QAAS+T,EAAK,eAI5B,CAACpU,EAAgB,OAAQmI,EAAY2pB,UAGxCxtB,OAAO6zB,iBAAiB,UAAU,WAChC/vB,EAAS,CAAE/I,KAAMkG,EAAYI,WAAYiD,SAAS,OAEpDtE,OAAO6zB,iBAAiB,WAAW,WACjC/vB,EAAS,CAAE/I,KAAMkG,EAAYI,WAAYiD,SAAS,OAIlD,cAAC,IAAD,UACE,cAAC,IAAD,CAAMslB,SAAU/lB,EAAYuP,QAAS0gB,UAAW,cAACC,EAAA,EAAD,CAAiBt3B,MAAO,CAAE0L,SAAU,IAAM4a,MAAI,IAAKtmB,MAAO,CAAEgnB,UAAW,SAAvH,SACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAOuQ,OAAK,EAACC,KAAK,IAAIzzB,UAAWkc,KACjC,cAAC,IAAD,CAAOsX,OAAK,EAACC,KAAK,UAAUzzB,UAAW6oB,KAGvC,cAAC,IAAD,CAAO2K,OAAK,EAACC,KAAK,cAAczzB,UAAW+pB,KAC3C,cAAC,IAAD,CAAOyJ,OAAK,EAACC,KAAK,kBAAkBzzB,UAAWuqB,KAC/C,cAAC,IAAD,CAAOiJ,OAAK,EAACC,KAAK,oBAAoBzzB,UAAWyqB,KACjD,cAAC,IAAD,CAAOgJ,KAAK,yBAAyBD,OAAK,EAACxzB,UAAWupB,KACtD,cAAC,IAAD,CAAOkK,KAAK,iBAAiBD,OAAK,EAACxzB,UAAW8qB,KAC9C,cAAC,EAAD,CAAc2I,KAAK,eAAeD,OAAK,EAACxzB,UAAWkpB,KACnD,cAAC,EAAD,CAAcuK,KAAK,WAAWD,OAAK,EAACxzB,UAAWqyB,KAC/C,cAAC,IAAD,CAAOoB,KAAK,IAAIzzB,UAAW4pB,cE1DtBvnB,GA1CC,SAAC/B,EAAOozB,GACtB,OAAQA,EAAOn5B,MACb,KAAKkG,EAAYC,SACf,OAAO,2BACFJ,GADL,IAEE2F,UAAU,eAAMytB,EAAO5vB,WAE3B,KAAKrD,EAAYE,QACf,OAAO,2BACFL,GADL,IAEEsS,SAAUtS,EAAMsS,UAEpB,KAAKnS,EAAYI,WACf,OAAO,2BACFP,GADL,IAEE0nB,UAAW0L,EAAO5vB,UAEtB,KAAKrD,EAAYK,QACf,OAAO,2BACFR,GADL,IAEE0sB,SAAU1sB,EAAM0sB,UAEpB,KAAKvsB,EAAYM,cACf,OAAO,2BACFT,GADL,IAEE8G,aAAcssB,EAAO5vB,UAEzB,KAAKrD,EAAYO,KACf,OAAO,2BACFV,GADL,IAEEkI,KAAMkrB,EAAO5vB,UAEjB,KAAKrD,EAAYQ,YACf,OAAO,2BACFX,GADL,IAEEhC,WAAYo1B,EAAO5vB,UAEvB,QACE,OAAOxD,I,UC+LE+B,GA1OC,SAAC/B,EAAOozB,GACtB,OAAQA,EAAOn5B,MACb,KAAKkG,EAAYW,sBACf,OAAO,2BACFd,GADL,IAEEiD,gBAAgB,GAAD,oBAAMjD,EAAMiD,iBAAZ,CAA6BmwB,EAAO5vB,YAEvD,KAAKrD,EAAYU,sBACf,OAAO,2BACFb,GADL,IAEEiD,gBAAiB,CAACmwB,EAAO5vB,WAE7B,KAAKrD,EAAYY,gBACf,OAAO,2BACFf,GADL,IAEEkD,eAAe,EACfC,gBAAgB,EAChBE,aAAa,EACbD,WAAY,MACZH,gBAAiB,KAErB,KAAK9C,EAAYS,aACf,IAAMyyB,EAAmBrzB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GACf,IAAD,EAAlC,OAAIA,EAAE1B,MAAQ2uB,EAAO5vB,QAAQiB,IACpB,2BACF0B,GADL,wBAEGitB,EAAO5vB,QAAQtJ,KAAOk5B,EAAO5vB,QAAQvB,OAFxC,8BAGe,GAHf,IAMKkE,KAEHmtB,EAAWD,EAAiBntB,MAAK,SAACC,GAAD,OAAkC,IAA3BA,EAAEitB,EAAO5vB,QAAQtJ,SAE/D,OAAKk5B,EAAO5vB,QAAQvB,WAMIqY,IAAbgZ,EACF,2BACFtzB,GADL,iBAEEiD,gBAAiBowB,GAChBD,EAAO5vB,QAAQtJ,MAAO,IAGlB,2BACF8F,GADL,IAEEiD,gBAAiBowB,IAdZ,2BACFrzB,GADL,iBAEEiD,gBAAiBowB,GAChBD,EAAO5vB,QAAQtJ,MAAO,IAe7B,KAAKiG,EAAYa,YACf,IAAMuyB,EAAevzB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GAC9C,OAAIA,EAAE1B,MAAQ2uB,EAAO5vB,QAAQiB,IACpB,2BACF0B,GADL,IAEE9I,OAAQ+1B,EAAO5vB,QAAQnG,SAGlB8I,KAGX,OAAO,2BACFnG,GADL,IAEEiD,gBAAiBswB,IAErB,KAAKpzB,EAAYc,SACf,IAAMuyB,EAAgBxzB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GAC/C,OAAIA,EAAE1B,MAAQ2uB,EAAO5vB,QAAQiB,IACpB,2BACF0B,GADL,IAEEvB,QAASwuB,EAAO5vB,QAAQoB,UAGrBuB,KAET,OAAO,2BACFnG,GADL,IAEEiD,gBAAiBuwB,IAErB,KAAKrzB,EAAYiB,mBACf,IAAMqyB,EAAezzB,EAAMiD,gBAAgBoe,QAAO,SAAClb,GAAD,OAAOA,EAAE1B,MAAQ2uB,EAAO5vB,WAC1E,OAAO,2BACFxD,GADL,IAEEiD,gBAAiBwwB,IAErB,KAAKtzB,EAAYe,mBACf,IAAMwyB,EAAe1zB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GACX,IAAD,EAAlC,OAAIA,EAAE1B,MAAQ2uB,EAAO5vB,QAAQiB,IACpB,2BACF0B,GADL,IAEEtB,UAAWuuB,EAAO5vB,QAAQqB,UAC1BM,iBAAkBiuB,EAAO5vB,QAAQ2B,iBACjCJ,SAAUquB,EAAO5vB,QAAQuB,SACzBC,QAASouB,EAAO5vB,QAAQwB,QACxBC,QAASmuB,EAAO5vB,QAAQyB,QACxBN,KAAI,UAAEyuB,EAAO5vB,QAAQmB,YAAjB,QAAyBwB,EAAExB,KAC/BtH,OAAQ+1B,EAAO5vB,QAAQnG,OACvByH,YAAasuB,EAAO5vB,QAAQsB,cAGzBqB,KAET,OAAO,2BACFnG,GADL,IAEEiD,gBAAiBywB,IAErB,KAAKvzB,EAAYgB,YACf,IAAMwyB,EAAgB3zB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GAC/C,OAAO,2BACFA,GADL,IAEEtB,WAAW,EACXM,iBAAkB,KAClBJ,SAAU,GACVC,SAAS,EACTC,QAAS,UAGb,OAAO,2BACFjF,GADL,IAEEiD,gBAAiB0wB,IAGrB,KAAKxzB,EAAYkB,gBACf,IAAIuyB,EAAoB5zB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GACjD,OAAIA,EAAE1B,MAAQ2uB,EAAO5vB,QAAQiB,IACpB,2BACF0B,GADL,IAEE/C,WAAYgwB,EAAO5vB,QAAQyf,OAC3Bne,aAAa,IAGVqB,KAEH0tB,EAAgBD,EAAkB1tB,MAAK,SAACC,GAAD,OAAOA,EAAE/C,aAAegwB,EAAO5vB,QAAQyf,UACpF,OAAO,2BACFjjB,GADL,IAEEiD,gBAAiB2wB,EACjBxwB,gBAA8BkX,IAAlBuZ,EAA8BT,EAAO5vB,QAAQyf,OAAS,KAEtE,KAAK9iB,EAAYmB,mBACf,IAAMwyB,EAAgB9zB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GAC/C,OAAO,2BACFA,GADL,IAEE/C,WAAYgwB,EAAO5vB,QACnBsB,aAAa,OAGjB,OAAO,2BACF9E,GADL,IAEEiD,gBAAiB6wB,EACjB1wB,WAAYgwB,EAAO5vB,UAEvB,KAAKrD,EAAYoB,iBACf,IAAMwyB,EAAgB/zB,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GAAO,IAAD,EACrD,OAAO,2BACFA,GADL,wBAEGitB,EAAO5vB,QAAQtJ,KAAOk5B,EAAO5vB,QAAQvB,OAFxC,8BAGe,GAHf,OAOF,OAAO,2BACFjC,GADL,iBAEEiD,gBAAiB8wB,GAChBX,EAAO5vB,QAAQtJ,KAAOk5B,EAAO5vB,QAAQvB,QAE1C,KAAK9B,EAAYqB,aACf,IAAMnH,EAAO+4B,EAAO5vB,QAAQnJ,KACtB4H,EAAQmxB,EAAO5vB,QAAQvB,MACvB+xB,EAAmBh0B,EAAMiD,gBAAgB4I,KAAI,SAAC1F,GAClD,GAAIA,EAAE1B,MAAQpK,EAAKoK,IAAK,CACtB,IAuBMwvB,EAvBFxT,EAASxe,EAEb,GAAsB,IAAlBwe,EAAOroB,OACT,OAAIqoB,GAAUpmB,EAAKyJ,MACV,2BACFqC,GADL,IAEE3B,gBAAiBic,EACjB3b,aAAa,KAGfiB,KAAQvH,MAAM,mCACP,eAAK2H,IAET,GAAIsa,EAAOroB,OAAS,GAAKqoB,EAAO3a,SAAS,KAAM,CACpD,IAAIouB,EAAUzT,EAAOtoB,MAAM,KAC3B,OAAI+7B,EAAQ,IAAM75B,EAAKyJ,OAASowB,EAAQ,GAAK75B,EAAKyJ,MACzC,2BAAKqC,GAAZ,IAAe3B,gBAAiBic,EAAQ3b,aAAa,KAErDiB,KAAQvH,MAAM,mCACP,eAAK2H,IAET,OAAIsa,EAAOroB,OAAS,GAAKqoB,EAAO3a,SAAS,MAChC2a,EAAOtoB,MAAM,KAEnB0T,KAAI,SAACuQ,EAAGtjB,GACVN,OAAO4jB,IAAM/hB,EAAKyJ,MACpBmwB,EAAO,2BAAQ9tB,GAAR,IAAW3B,gBAAiBic,EAAQ3b,aAAa,KAExDiB,KAAQvH,MAAM,mCACdy1B,EAAO,eAAQ9tB,OAGZ,eAAK8tB,IACHxT,EAAOroB,OAAS,EACrBqoB,GAAUpmB,EAAKyJ,MACV,2BACFqC,GADL,IAEE3B,gBAAiBic,EACjB3b,aAAa,KAGfiB,KAAQvH,MAAM,mCACP,eAAK2H,IAGP,2BAAKA,GAAZ,IAAe3B,gBAAiBic,EAAQ3b,aAAa,IAGvD,OAAOqB,KAGX,OAAO,2BACFnG,GADL,IAEEiD,gBAAiB+wB,IAErB,QACE,OAAOh0B,ICtObm0B,IAASv0B,OACP,cAAC,GAAD,CAAgBkC,aFVU,CAC1B6D,UAAW,KACX2M,SAAS,EACToV,WAAW,EACXgF,SAAS,EACT1uB,WAAY,KACZ8I,cAAc,EACdoB,KAAM,UACNnC,QAAS,CACPquB,QAAS,GACTl5B,IAAK,KEAqC6G,QAASA,GAArD,SACE,cAAC,GAAD,CAAaD,aDVU,CACzBmB,gBAAiB,GACjBC,eAAe,EACfC,gBAAgB,EAChBE,aAAa,EACbD,WAAY,OCK8BrB,QAASsyB,GAAjD,SACE,cAAC,GAAD,QAGJ74B,SAASC,eAAe,U","file":"static/js/main.5f92936b.chunk.js","sourcesContent":["import axios from \"axios\";\r\nimport { getLocalStorage } from \"../../component/utils/utils\";\r\n\r\nexport let node_baseUrl;\r\nexport let OCRbaseUrl;\r\nexport let gClient_Id;\r\nexport let mClient_Id;\r\nexport let redirectUri;\r\nexport const extensionId = \"omdplglehbdkjpihledlkemnlkalgndm\";\r\n\r\n// console.log(process.env.NODE_ENV);\r\n\r\nif (!process.env.NODE_ENV || process.env.NODE_ENV === \"development\") {\r\n node_baseUrl = process.env.REACT_APP_API_NODE_ENDPOINT_PROD;\r\n OCRbaseUrl = process.env.REACT_APP_API_OCR_ENDPOINT;\r\n gClient_Id = process.env.REACT_APP_GG_APP_ID_DEV;\r\n mClient_Id = process.env.REACT_APP_MICROSOFT_APP_ID_DEV;\r\n redirectUri = process.env.REACT_APP_API_REDIRECT_ENDPOINT_DEV;\r\n} else {\r\n node_baseUrl = process.env.REACT_APP_API_NODE_ENDPOINT_PROD;\r\n OCRbaseUrl = process.env.REACT_APP_API_OCR_ENDPOINT;\r\n gClient_Id = process.env.REACT_APP_GG_APP_ID;\r\n mClient_Id = process.env.REACT_APP_MICROSOFT_APP_ID;\r\n redirectUri = process.env.REACT_APP_API_REDIRECT_ENDPOINT_PROD;\r\n}\r\n\r\n// for file processing\r\nlet ocr_process_instance = axios.create({\r\n baseURL: OCRbaseUrl,\r\n responseType: \"json\",\r\n});\r\n\r\n// for user login and save files\r\nexport let main_api_instance = axios.create({\r\n baseURL: node_baseUrl,\r\n responseType: \"json\",\r\n});\r\n\r\nmain_api_instance.defaults.headers.common[\"Authorization\"] = `${getLocalStorage(\"jwt\")}`;\r\n\r\nexport default ocr_process_instance;\r\n","import saveAs from \"file-saver\";\r\nimport { Modal, notification } from \"antd\";\r\n/*global browser*/\r\n\r\nexport const getExtension = (filename) => {\r\n var parts = filename.split(\"/\");\r\n return parts[parts.length - 1];\r\n};\r\nexport const getExtensionFormName = (filename) => {\r\n var parts = filename.split(\".\");\r\n return parts[parts.length - 1];\r\n};\r\n\r\nexport const getTimeInSec = (ms) => {\r\n return Math.floor((ms / 1000) % 60).toFixed(2);\r\n};\r\n\r\nexport const parseMilliseconds = (milliseconds) => {\r\n const roundTowardsZero = milliseconds > 0 ? Math.floor : Math.ceil;\r\n return {\r\n days: roundTowardsZero(milliseconds / 86400000),\r\n hours: roundTowardsZero(milliseconds / 3600000) % 24,\r\n minutes: roundTowardsZero(milliseconds / 60000) % 60,\r\n seconds: roundTowardsZero(milliseconds / 1000) % 60,\r\n milliseconds: roundTowardsZero(milliseconds) % 1000,\r\n };\r\n};\r\nexport const parseMsInUnit = (milliseconds, unit) => {\r\n switch (unit) {\r\n case \"day\":\r\n return Number((milliseconds / 86400000).toFixed(1));\r\n case \"hrs\":\r\n return Number((milliseconds / 3600000).toFixed(1));\r\n case \"mins\":\r\n return Number((milliseconds / 60000).toFixed(1));\r\n case \"sec\":\r\n return Number((milliseconds / 1000).toFixed(1));\r\n }\r\n};\r\nexport const getReadableTime = (milliseconds) => {\r\n if (milliseconds / 86400000 > 1) {\r\n return `${parseMsInUnit(milliseconds, \"day\")} day`;\r\n } else if (milliseconds / 3600000 > 1) {\r\n return `${parseMsInUnit(milliseconds, \"hrs\")} hrs`;\r\n } else if (milliseconds / 60000 > 1) {\r\n return `${parseMsInUnit(milliseconds, \"mins\")} min`;\r\n } else if (milliseconds / 1000 > 1) {\r\n return `${parseMsInUnit(milliseconds, \"sec\")} sec`;\r\n } else {\r\n return `${milliseconds} ms`;\r\n }\r\n};\r\nexport const bytesToSize = (bytes) => {\r\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\r\n if (bytes === 0) return \"0 B\";\r\n const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)).toString(), 10);\r\n if (i === 0) return `${bytes} ${sizes[i]}`;\r\n return `${(bytes / 1024 ** i).toFixed(1)} ${sizes[i]}`;\r\n};\r\n\r\nexport const downloadTextFile = (fileName, fileType, text, imageText) => {\r\n if (fileType === \"pdf\") {\r\n const zip = require(\"jszip\")();\r\n var pdfTFolder = zip.folder(\"pdf-text\");\r\n let imgTFolder = zip.folder(\"images-text\");\r\n if (imageText.length) {\r\n let files = imageText;\r\n for (let i = 0; i < files.length; i++) {\r\n const imgFileText = new Blob([files[i]], { type: \"text/plain;charset=utf-8\" });\r\n const name = fileName.split(\".\").slice(0, -1).join(\".\") + \".txt\";\r\n imgTFolder.file(name, imgFileText);\r\n }\r\n }\r\n if (Array.isArray(text)) {\r\n let files = text;\r\n for (let i = 0; i < files.length; i++) {\r\n if (files[i]) {\r\n const file = new Blob([files[i]], { type: \"text/plain;charset=utf-8\" });\r\n let name = fileName.split(\".\").slice(0, -1).join(\".\") + \"_\" + (i + 1) + \".txt\";\r\n pdfTFolder.file(name, file);\r\n }\r\n }\r\n }\r\n zip.generateAsync({ type: \"blob\" }).then((content) => {\r\n const name = fileName.split(\".\").slice(0, -1).join(\".\") + \".zip\";\r\n saveAs(content, name);\r\n });\r\n } else {\r\n const file = new Blob([text], { type: \"text/plain;charset=utf-8\" });\r\n const name = fileName.split(\".\").slice(0, -1).join(\".\") + \".txt\";\r\n saveAs(file, name);\r\n }\r\n};\r\n\r\nexport const copyTextFunction = (text, message) => {\r\n var textField = document.createElement(\"textarea\");\r\n textField.innerText = text;\r\n document.body.appendChild(textField);\r\n textField.style.wordSpace = \"pre-wrap\";\r\n textField.select();\r\n document.execCommand(\"copy\");\r\n message.success(\"Text Copied!.\");\r\n textField.remove();\r\n};\r\n\r\nexport const setLocalStorage = (name, data) => localStorage.setItem(name, JSON.stringify(data));\r\nexport const getLocalStorage = (name) => JSON.parse(localStorage.getItem(name));\r\n\r\nexport const msgModal = (type, msg, title) => {\r\n Modal[type]({\r\n title: title ?? \"Oops! Something wents wrong!\",\r\n className: \"msg-modal\",\r\n centered: true,\r\n getContainer: () => document.getElementById(\"main-layout\"),\r\n content: (\r\n
\r\n

{msg}

\r\n
\r\n ),\r\n okButtonProps: { style: {} },\r\n onOk() {},\r\n });\r\n};\r\n\r\nexport const calculatePerValue = (percent, totalValue) => {\r\n if (percent === 0) {\r\n return totalValue;\r\n }\r\n return Number((Number(totalValue) * (Number(percent) / 100)).toFixed(2));\r\n};\r\n\r\nexport const supportedFile = [\"jpeg\", \"png\", \"pdf\", \"jpg\"];\r\n\r\nexport const truncateString = (str, num) => {\r\n if (str.length > num) {\r\n return str.slice(0, num) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n};\r\n\r\nexport const openNotification = (type, msg) => {\r\n notification[type]({\r\n message: msg,\r\n });\r\n};\r\n\r\nexport const randomIntFromInterval = (min, max) => {\r\n // min and max included\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n};\r\n\r\nexport const avatarColor = [\"#f56a00\", \"#7265e6\", \"#ffbf00\", \"#00a2ae\"];\r\n\r\nexport const getImageDimensions = (file) => {\r\n return new Promise(function (resolved, rejected) {\r\n var i = new Image();\r\n i.onload = function () {\r\n resolved({ w: i.width, h: i.height });\r\n };\r\n i.src = file;\r\n });\r\n};\r\n\r\nexport const fileSizeLimit = (accountType = \"anonymousUser\") => {\r\n switch (accountType) {\r\n case \"free\":\r\n return 5242880 * 2;\r\n case \"subscription\":\r\n return 5242880 * 5;\r\n case \"payYougo\":\r\n return 5242880 * 10;\r\n default:\r\n return 5242880;\r\n }\r\n};\r\n\r\nexport const detectExtension = (extensionId, callback) => {\r\n var img;\r\n img = new Image();\r\n img.src = \"chrome-extension://\" + extensionId + \"/favicon128.png\";\r\n\r\n img.onload = function () {\r\n callback(true);\r\n };\r\n img.onerror = function () {\r\n callback(false);\r\n };\r\n\r\n // var myExtension = browser.management.get(extensionId);\r\n // if (myExtension === undefined) return callback(false);\r\n\r\n // if (myExtension.enabled) {\r\n // callback(true);\r\n // } else {\r\n // callback(false);\r\n // }\r\n};\r\n","import { getLocalStorage, msgModal } from \"../component/utils/utils\";\r\nimport { main_api_instance } from \"./webapi\";\r\nconst webApi = main_api_instance;\r\n\r\nexport const AuthLogin = async (userInfo, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\"/user/signin\", userInfo);\r\n if (res.status === 200 && res.data.loginSuccess) {\r\n return onSuccess(res.data);\r\n } else {\r\n onFailure(res.data.msg);\r\n }\r\n } catch (e) {\r\n return onFailure(\"Something wents wrong try again later!\");\r\n }\r\n};\r\n\r\nexport const userRegister = async (userInfo, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\"/user/register\", { ...userInfo, plan: \"free\" });\r\n if (res.status === 200 && res.data.loginSuccess) {\r\n return onSuccess(res.data);\r\n } else {\r\n return onFailure(res.data.msg);\r\n }\r\n } catch (e) {\r\n return onFailure(\"Something wents wrong! Please try again later\");\r\n }\r\n};\r\n\r\nexport const forgortPassword = async (email, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\"/user/forgot-password\", email);\r\n if (res.status === 200) {\r\n return onSuccess();\r\n } else {\r\n onFailure();\r\n }\r\n } catch (e) {\r\n return onFailure(\"Something wents wrong! Please try again later\");\r\n }\r\n};\r\n\r\nexport const getUserById = async (id, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.get(`/user/userid/${id}`, {\r\n headers: {\r\n Authorization: `${getLocalStorage(\"jwt\")}`,\r\n },\r\n });\r\n if (res.status === 200) {\r\n return onSuccess(res.data);\r\n } else {\r\n onFailure(res.data.msg);\r\n }\r\n } catch (e) {\r\n onFailure(e?.response?.data?.msg || \"Something wents wrong! User not found\");\r\n }\r\n};\r\n\r\nexport const getCreditById = async (id, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.get(`/user/credit/${id}`, {\r\n headers: {\r\n Authorization: `${getLocalStorage(\"jwt\")}`,\r\n },\r\n });\r\n if (res.status === 200) {\r\n return onSuccess(res.data);\r\n } else {\r\n onFailure(res.data.msg);\r\n }\r\n } catch (e) {\r\n onFailure(e.response?.data?.error || \"Something wents wrong! try again later\");\r\n }\r\n};\r\n\r\nexport const postUpdateUser = async (userAvatar, name, email, phone, userId, onSuccess, onFailure) => {\r\n try {\r\n let formData = new FormData();\r\n formData.set(\"avatar\", userAvatar);\r\n formData.set(\"username\", name);\r\n formData.set(\"email\", email);\r\n formData.set(\"phone\", phone);\r\n const res = await webApi.post(`/user/update/${userId}`, formData);\r\n if (res.status === 200) {\r\n console.log(res.data);\r\n return onSuccess();\r\n }\r\n } catch (err) {\r\n onFailure(err?.response?.data.error);\r\n }\r\n};\r\n\r\nexport const getUserAvatarById = async (userId, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.get(`/user/avatar/${userId}`, {\r\n headers: {\r\n Authorization: `${getLocalStorage(\"jwt\")}`,\r\n },\r\n });\r\n if (res.status === 200) {\r\n return onSuccess(res.data);\r\n }\r\n } catch (e) {\r\n onFailure(e.response?.data?.error || \"Something wents wrong! try again later\");\r\n }\r\n};\r\n\r\nexport const getForgortPasswordLink = async (userInfo, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\"/api/password-reset/link\", userInfo);\r\n if (res.status === 200 && res.data.isSent) {\r\n return onSuccess(res.data);\r\n } else {\r\n onFailure(res.data);\r\n }\r\n } catch (e) {\r\n onFailure(\"Something wrong try again later!\");\r\n }\r\n};\r\n\r\nexport const resetPassword = async (psInfo, token, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(`/api/password-reset/update/${token}`, psInfo);\r\n if (res.status === 200 && res.data.success) {\r\n return onSuccess(res.data);\r\n } else {\r\n onFailure(res.data);\r\n }\r\n } catch (e) {\r\n onFailure(\"Something wrong try again later!\");\r\n }\r\n};\r\n\r\nexport const authenticate = (data, next) => {\r\n if (typeof window !== \"undefined\") {\r\n localStorage.setItem(\"jwt\", JSON.stringify(data));\r\n next();\r\n }\r\n};\r\n\r\nexport const isAuthenticated = () => {\r\n if (typeof window == \"undefined\") {\r\n return false;\r\n }\r\n if (localStorage.getItem(\"jwt\")) {\r\n return JSON.parse(localStorage.getItem(\"jwt\"));\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const Logout = async (onSuccess, onFailure) => {\r\n if (typeof window !== \"undefined\") {\r\n try {\r\n localStorage.removeItem(\"jwt\");\r\n onSuccess(\"You are Logout\");\r\n const res = await webApi.get(\"/user/signout\");\r\n } catch (err) {\r\n onFailure(\"Something Wrong\");\r\n }\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport { isAuthenticated } from \"../services/auth\";\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => {\r\n return (\r\n \r\n isAuthenticated() ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default PrivateRoute;\r\n","const actionTypes = {\r\n SET_USER: \"SET_USER\",\r\n LOADING: \"LOADING\",\r\n MESSAGE: \"MESSAGE\",\r\n IS_OFFLINE: \"IS_OFFLINE\",\r\n REFRESH: \"REFRESH\",\r\n IS_PROCESSING: \"IS_PROCESSING\",\r\n LANG: \"LANG\",\r\n USER_AVATAR: \"USER_AVATAR\",\r\n\r\n PROCESS_MODE: \"PROCESS_MODE\",\r\n FILES_TO_PROCESS_FREE: \"FILES_TO_PROCESS_FREE\",\r\n FILES_TO_PROCESS_PAID: \"FILES_TO_PROCESS_PAID\",\r\n OCR_CLEAR_STATE: \"OCR_CLEAR_STATE\",\r\n FILE_STATUS: \"FILE_STATUS\",\r\n DOWN_PER: \"DOWN_PER\",\r\n SET_EXTRACT_RESULT: \"SET_EXTRACT_RESULT\",\r\n OCR_REFRESH: \"OCR_REFRESH\",\r\n DELETE_UPLOAD_FILE: \"DELETE_UPLOAD_FILE\",\r\n SET_FILE_FORMAT: \"SET_FILE_FORMAT\",\r\n SET_ALL_FILEFORMAT: \"SET_ALL_FILEFORMAT\",\r\n ALL_PROCESS_MODE: \"ALL_PROCESS_MODE\",\r\n SELECT_PAGES: \"SELECT_PAGES\",\r\n};\r\n\r\nexport default actionTypes;\r\n","import React, { createContext, useContext, useReducer } from \"react\";\r\n\r\nexport const GlobalContext = createContext();\r\nexport const OCRContext = createContext();\r\n\r\nexport const GlobalProvider = ({ children, initialState, reducer }) => (\r\n {children}\r\n);\r\n\r\nexport const OCRProvider = ({ children, initialState, reducer }) => (\r\n {children}\r\n);\r\n\r\nexport const useGlobalState = () => useContext(GlobalContext);\r\nexport const useOCRState = () => useContext(OCRContext);\r\n","export default __webpack_public_path__ + \"static/media/arrow-curve-up.530ed783.svg\";","export default __webpack_public_path__ + \"static/media/cloud-upload.553337fa.svg\";","import React from \"react\";\r\nimport { Upload, Row, Col, message, Space, Button } from \"antd\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport UploadIcon from \"../../assest/cloud-upload.svg\";\r\nimport { getExtension, msgModal, supportedFile, fileSizeLimit } from \"../utils/utils\";\r\nimport actionTypes from \"../../context/actions\";\r\nimport { UploadOutlined } from \"@ant-design/icons\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\nimport \"./FileUploadContainer.scss\";\r\nimport { PDFDocument } from \"pdf-lib\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nconst { Dragger } = Upload;\r\n\r\nconst delay = (interval) => new Promise((resolve) => setTimeout(resolve, interval));\r\nexport const fileLimit = 25;\r\n\r\nconst FileUploadContainer = ({ freeOCR, multiple }) => {\r\n const history = useHistory();\r\n const [globalState, dispatch] = useGlobalState();\r\n const [{ filesToProccess, correctOrient, enhanceImgQlty, fileFormat, removeNoise }, ocrDispatch] = useOCRState();\r\n\r\n const onFileUpload = async (file) => {\r\n if (multiple) {\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = async (e) => {\r\n let pages = 1;\r\n if (getExtension(file.type) === \"pdf\") {\r\n const pdfDoc = await PDFDocument.load(reader.result);\r\n pages = pdfDoc.getPageCount();\r\n }\r\n // if (pages > globalState.user_info?.leftCredit && globalState.user_info?.role === \"user\") return msgModal(\"info\", \"Unable to upload file, You don't have enough Credit Left!\", \"Oops!\");\r\n ocrDispatch({\r\n type: actionTypes.FILES_TO_PROCESS_PAID,\r\n payload: {\r\n pdfFileView: URL.createObjectURL(file),\r\n fileInb64: reader.result,\r\n\r\n selectedPdfPage: `1-${pages}`,\r\n pages: pages,\r\n\r\n uid: uuidv4() + file.name,\r\n name: file.name,\r\n size: file.size,\r\n type: getExtension(file.type),\r\n\r\n correctOrient: correctOrient,\r\n enhanceImgQlty: enhanceImgQlty,\r\n removeNoise: removeNoise,\r\n\r\n fileFormat: fileFormat,\r\n downPer: 0,\r\n\r\n isSuccess: false,\r\n isProcessed: false,\r\n isErrMsg: \"\",\r\n isError: false,\r\n status: \"ready\",\r\n resTime: null,\r\n\r\n fileToUploadPro: file,\r\n extractionResult: null,\r\n },\r\n });\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n };\r\n } else {\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = async (e) => {\r\n let pages = 1;\r\n if (getExtension(file.type) === \"pdf\") {\r\n const pdfDoc = await PDFDocument.load(reader.result);\r\n pages = pdfDoc.getPageCount();\r\n }\r\n ocrDispatch({\r\n type: actionTypes.FILES_TO_PROCESS_FREE,\r\n payload: {\r\n pdfFileView: URL.createObjectURL(file),\r\n fileInb64: reader.result,\r\n\r\n selectedPdfPage: `1-${pages}`,\r\n pages: pages,\r\n\r\n uid: file.uid,\r\n name: file.name,\r\n size: file.size,\r\n type: getExtension(file.type),\r\n\r\n correctOrient: correctOrient,\r\n enhanceImgQlty: enhanceImgQlty,\r\n removeNoise: removeNoise,\r\n\r\n fileFormat: fileFormat,\r\n downPer: 0,\r\n\r\n isSuccess: false,\r\n isErrMsg: \"\",\r\n isError: false,\r\n status: \"ready\",\r\n resTime: null,\r\n isProcessed: false,\r\n\r\n fileToUploadPro: file,\r\n extractionResult: null,\r\n },\r\n });\r\n history.push(\"/upload\");\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n };\r\n }\r\n };\r\n\r\n const onChange = async (file, fileList) => {\r\n const added_no_of_Page = filesToProccess.reduce((total, x) => {\r\n if (!x.isSuccess) {\r\n return total + x.pages;\r\n }\r\n }, 0);\r\n\r\n if (\r\n (globalState.user_info?.leftCredit === 0 || globalState.user_info?.leftCredit <= Number(added_no_of_Page)) &&\r\n globalState.user_info?.role === \"user\"\r\n ) {\r\n return msgModal(\"info\", \"Unable to upload file, You don't have enough Credit Left!\", \"Oops!\");\r\n }\r\n\r\n if (!supportedFile.includes(getExtension(file.type))) return msgModal(\"info\", \"Sorry file not supported!\", \"Info\");\r\n\r\n if (Number(filesToProccess.length) > Number(fileLimit)) {\r\n message.info(`You can't upload more than ${fileLimit} files`, 5);\r\n return false;\r\n }\r\n\r\n const isFileUploaded = filesToProccess.find((f) => f.name === file.name);\r\n if (multiple && isFileUploaded) {\r\n return message.warn(`${file.name} , file already uploaded!`);\r\n }\r\n if (file.size <= fileSizeLimit(globalState.user_info?.plan)) {\r\n //fileSize should be less than 10MB\r\n onFileUpload(file);\r\n return false;\r\n } else {\r\n message.info(\"File size should not more than 10 MB\", 5);\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n false}\r\n onChange={(e) => {\r\n onChange(e.file, e.fileList);\r\n }}\r\n className={freeOCR ? \"dummy-upload-container\" : \"upload-file-container\"}>\r\n {freeOCR ? (\r\n
\r\n \r\n
\r\n Upload\r\n
\r\n \r\n

\r\n Or Drop a file\r\n

\r\n

Support .png, .jpeg, .jpg, .pdf

\r\n
\r\n
\r\n ) : (\r\n \r\n \r\n
\r\n Upload\r\n
\r\n \r\n \r\n

\r\n Upload Image or Drop a file\r\n

\r\n

Support .png, .jpeg, .jpg, .pdf

\r\n {/*

up to 5MB

*/}\r\n \r\n
\r\n )}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default FileUploadContainer;\r\n","export default __webpack_public_path__ + \"static/media/bannerImg1.6531e2da.png\";","export default __webpack_public_path__ + \"static/media/bannerImg2.8f4f66db.png\";","export default __webpack_public_path__ + \"static/media/bannerImg3.1ee3d28b.jpeg\";","import React from \"react\";\r\nimport { Carousel } from \"antd\";\r\nimport BannerImg1 from \"../../assest/bannerImg/bannerImg1.png\";\r\nimport BannerImg2 from \"../../assest/bannerImg/bannerImg2.png\";\r\nimport BannerImg3 from \"../../assest/bannerImg/bannerImg3.jpeg\";\r\nconst BannerCarousel = () => {\r\n return (\r\n \r\n
\r\n Banner Image\r\n
\r\n
\r\n Banner Image\r\n
\r\n
\r\n Banner Image\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BannerCarousel;\r\n","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Row, Col, Space, Carousel } from \"antd\";\r\n\r\nimport ArrowCurveUp from \"../../assest/arrow-curve-up.svg\";\r\nimport FileUploadContainer from \"../FileUploadContainer/FileUploadContainer\";\r\nimport langContent from \"../../services/pageContent/HeroBanner.json\";\r\n\r\nimport \"./HeroBanner.scss\";\r\nimport BannerCarousel from \"../BannerCarousel/BannerCarousel\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\n\r\nconst HeroBanner = () => {\r\n const [globalState, dispatch] = useGlobalState();\r\n const [{ filesToProccess }, ocrDispatch] = useOCRState();\r\n\r\n const [pageContent, setPageContent] = React.useState(langContent[globalState.lang]);\r\n\r\n React.useEffect(() => {\r\n setPageContent(langContent[globalState.lang]);\r\n }, [filesToProccess.length, globalState.lang]);\r\n\r\n return (\r\n
\r\n \r\n \r\n

\r\n \r\n
{pageContent.title[0]}
\r\n
{pageContent.title[1]}
\r\n
\r\n

\r\n

\r\n \r\n
{pageContent.subTitle}
\r\n
\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default HeroBanner;\r\n","export default __webpack_public_path__ + \"static/media/google-drive.91b41cc0.png\";","export default __webpack_public_path__ + \"static/media/ondrive-logo.54b91b71.png\";","export default __webpack_public_path__ + \"static/media/oracle-logo.3b1f12bf.png\";","export default __webpack_public_path__ + \"static/media/sap-logo.54fd1b94.png\";","export default __webpack_public_path__ + \"static/media/uipath-vector-logo.5073c259.png\";","export default __webpack_public_path__ + \"static/media/arrow-curve-down.16b93333.svg\";","export default __webpack_public_path__ + \"static/media/detected-text-img.c777e52a.png\";","export default __webpack_public_path__ + \"static/media/original-img.d21b21eb.png\";","export default __webpack_public_path__ + \"static/media/detected-reco-img.67257a75.png\";","export default __webpack_public_path__ + \"static/media/denoised-img.9223088a.png\";","export default __webpack_public_path__ + \"static/media/correct-orient-img.8fc5de53.png\";","export default __webpack_public_path__ + \"static/media/extractImg1.ae60f439.jpeg\";","export default __webpack_public_path__ + \"static/media/extractImg2.bb286b6e.png\";","export default __webpack_public_path__ + \"static/media/extractImg3.fa5c5d1b.png\";","export default __webpack_public_path__ + \"static/media/extractImg4.cae901b3.jpg\";","import React from \"react\";\r\nimport { Row, Col, Divider, Carousel, Space, Tabs } from \"antd\";\r\nimport GoogleDriveLogo from \"../../assest/google-drive.png\";\r\nimport OnDriveLogo from \"../../assest/ondrive-logo.png\";\r\nimport OracleLogo from \"../../assest/oracle-logo.png\";\r\nimport SapLogo from \"../../assest/sap-logo.png\";\r\nimport UipathLogo from \"../../assest/uipath-vector-logo.png\";\r\n\r\nimport ArrowCurveDown from \"../../assest/arrow-curve-down.svg\";\r\nimport ArrowCurveUp from \"../../assest/arrow-curve-up.svg\";\r\n\r\nimport OriginalImg from \"../../assest/img/original-img.png\";\r\nimport DetectedTextImg from \"../../assest/img/detected-text-img.png\";\r\nimport DetectedRecoImg from \"../../assest/img/detected-reco-img.png\";\r\nimport DenoisedImg from \"../../assest/img/denoised-img.png\";\r\nimport CorrectOrientImg from \"../../assest/img/correct-orient-img.png\";\r\nimport langContent from \"../../services/pageContent/ImgProcessStep.json\";\r\nimport marketinContentLang from \"../../services/pageContent/MarketingSec.json\";\r\nimport BannerCarousel from \"../BannerCarousel/BannerCarousel\";\r\nimport ExtractImg1 from \"../../assest/extractIt/extractImg1.jpeg\";\r\nimport ExtractImg2 from \"../../assest/extractIt/extractImg2.png\";\r\nimport ExtractImg3 from \"../../assest/extractIt/extractImg3.png\";\r\nimport ExtractImg4 from \"../../assest/extractIt/extractImg4.jpg\";\r\nimport { useGlobalState } from \"../../context/context\";\r\n\r\nimport \"./ImgProcessStep.scss\";\r\n\r\nconst { TabPane } = Tabs;\r\n\r\nconst MarketingSectionOne = ({ marketinContent }) => {\r\n return (\r\n
\r\n \r\n \r\n

\r\n \r\n
{marketinContent.secTitle_1[0]}
\r\n
{marketinContent.secTitle_1[1]}
\r\n
\r\n

\r\n

{marketinContent.secDesc_1}

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\nconst MarketingSectionTwo = ({ marketinContent }) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Logo\r\n Logo\r\n Logo\r\n \r\n
\r\n
\r\n \r\n Logo\r\n Logo\r\n \r\n
\r\n
\r\n \r\n \r\n

\r\n \r\n
{marketinContent.secTitle_2[0]}
\r\n
{marketinContent.secTitle_2[1]}
\r\n
\r\n

\r\n

{marketinContent.secDesc_2}

\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst CorrectOrientTab = ({ pageContent }) => {\r\n return (\r\n \r\n \r\n
\r\n Original upload image\r\n
\r\n
{pageContent[\"1st\"]}
\r\n Arrow up\r\n \r\n\r\n \r\n Arrow Down\r\n
\r\n Correct Orientation image\r\n
\r\n
{pageContent[\"3rd\"]}
\r\n \r\n\r\n \r\n
\r\n Detected Recognized image\r\n
\r\n
{pageContent[\"4th\"]}
\r\n Arrow up\r\n \r\n\r\n \r\n
\r\n Detected Text image\r\n
\r\n
{pageContent[\"5th\"]}
\r\n \r\n
\r\n );\r\n};\r\nconst DenoisedTab = ({ correctOrient, denoised, pageContent }) => {\r\n return (\r\n \r\n \r\n
\r\n Denoised image\r\n
\r\n
{pageContent[\"1st\"]}
\r\n Arrow up\r\n \r\n \r\n Arrow Down\r\n
\r\n Correct Orientation image\r\n
\r\n
{pageContent[\"2nd\"]}
\r\n \r\n \r\n
\r\n Detected Recognized image\r\n
\r\n
{pageContent[\"4th\"]}
\r\n Arrow up\r\n \r\n \r\n
\r\n Detected Text image\r\n
\r\n
{pageContent[\"5th\"]}
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst ImgProcessStep = () => {\r\n const [globalState, dispatch] = useGlobalState();\r\n\r\n const [activeKey, setActiveKey] = React.useState(\"1\");\r\n const [pageContent, setPageContent] = React.useState(langContent[globalState.lang]);\r\n const [marketinContent, setMarketinContent] = React.useState(marketinContentLang[globalState.lang]);\r\n const tabDesc = (\r\n

\r\n {pageContent.secDesc}\r\n

\r\n );\r\n React.useEffect(() => {\r\n setPageContent(langContent[globalState.lang]);\r\n setMarketinContent(marketinContentLang[globalState.lang]);\r\n }, [globalState.lang]);\r\n\r\n // React.useEffect(() => {\r\n // let id = setInterval(() => {\r\n // if (activeKey === \"1\") {\r\n // setActiveKey(\"2\");\r\n // } else {\r\n // setActiveKey(\"1\");\r\n // }\r\n // }, 3000);\r\n // return () => clearInterval(id);\r\n // }, []);\r\n\r\n return (\r\n <>\r\n
\r\n

\r\n {pageContent.secTitle}\r\n

\r\n
\r\n {}} animated>\r\n \r\n {tabDesc}\r\n \r\n \r\n \r\n {tabDesc}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ImgProcessStep;\r\n","import React from \"react\";\r\nimport { Avatar, Carousel, Space } from \"antd\";\r\nimport { UserOutlined } from \"@ant-design/icons\";\r\nimport \"./ClientFeedback.scss\";\r\nimport pageContent from \"../../services/pageContent/feedback.json\";\r\n\r\nconst FeedbackCard = ({ name, personTitle, feedback, pic_link = \"\" }) => {\r\n return (\r\n
\r\n \r\n } />\r\n
{name}
\r\n
{personTitle}
\r\n
{feedback}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst ClientFeedback = () => {\r\n return (\r\n
\r\n

\r\n {pageContent.title}\r\n

\r\n
\r\n \r\n {pageContent.clientFeedbacks.map((f, i) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ClientFeedback;\r\n","export default __webpack_public_path__ + \"static/media/alazka-logo.bf1af75a.png\";","import React from \"react\";\r\nimport { Modal } from \"antd\";\r\n\r\nconst CustomModal = ({ isModalVisible, handleCancel, children, width = 1000, height = 500, borderRadius, overflow = \"hidden\" }) => {\r\n return (\r\n \r\n
{children}
\r\n \r\n );\r\n};\r\n\r\nexport default CustomModal;\r\n","export default __webpack_public_path__ + \"static/media/banner-img.a52a486b.svg\";","import { LogLevel } from \"@azure/msal-browser\";\r\nimport { mClient_Id } from \"./webapi\";\r\n\r\nexport const MSAL_CONFIG = {\r\n auth: {\r\n clientId: mClient_Id,\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\",\r\n storeAuthStateInCookie: false,\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (level, message, containsPii) => {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n // console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n // console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n // console.warn(message);\r\n return;\r\n }\r\n },\r\n },\r\n },\r\n};\r\n","import { PublicClientApplication } from \"@azure/msal-browser\";\r\n\r\nimport { MSAL_CONFIG } from \"../../services/microsoftLoginConfig\";\r\nimport { redirectUri } from \"../../services/webapi\";\r\n\r\nexport class AzureAuthenticationContext {\r\n myMSALObj = new PublicClientApplication(MSAL_CONFIG);\r\n account;\r\n loginRedirectRequest;\r\n loginRequest;\r\n isAuthenticationConfigured = false;\r\n\r\n constructor() {\r\n // @ts-ignore\r\n this.account = null;\r\n this.setRequestObjects();\r\n if (MSAL_CONFIG?.auth?.clientId) {\r\n this.isAuthenticationConfigured = true;\r\n }\r\n\r\n console.log(this.loginRequest, this.loginRedirectRequest);\r\n }\r\n\r\n setRequestObjects() {\r\n this.loginRequest = {\r\n scopes: [],\r\n prompt: \"select_account\",\r\n };\r\n\r\n this.loginRedirectRequest = {\r\n ...this.loginRequest,\r\n redirectStartPage: redirectUri,\r\n };\r\n }\r\n\r\n login(signInType, setUser) {\r\n if (signInType === \"loginPopup\") {\r\n this.myMSALObj\r\n .loginPopup(this.loginRequest)\r\n .then((resp) => {\r\n this.handleResponse(resp, setUser);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n } else if (signInType === \"loginRedirect\") {\r\n this.myMSALObj.loginRedirect(this.loginRedirectRequest);\r\n }\r\n }\r\n\r\n logout(account) {\r\n const logOutRequest = {\r\n account,\r\n };\r\n\r\n this.myMSALObj.logout(logOutRequest);\r\n }\r\n handleResponse(response, incomingFunction) {\r\n if (response !== null && response.account !== null) {\r\n this.account = response.account;\r\n } else {\r\n this.account = this.getAccount();\r\n }\r\n\r\n if (this.account) {\r\n incomingFunction(this.account);\r\n }\r\n }\r\n getAccount() {\r\n console.log(`loadAuthModule`);\r\n const currentAccounts = this.myMSALObj.getAllAccounts();\r\n if (currentAccounts === null) {\r\n // @ts-ignore\r\n console.log(\"No accounts detected\");\r\n return undefined;\r\n }\r\n\r\n if (currentAccounts.length > 1) {\r\n // TBD: Add choose account code here\r\n // @ts-ignore\r\n console.log(\"Multiple accounts detected, need to add choose account code.\");\r\n return currentAccounts[0];\r\n } else if (currentAccounts.length === 1) {\r\n return currentAccounts[0];\r\n }\r\n }\r\n}\r\n\r\nexport default AzureAuthenticationContext;\r\n","import React, { useState } from \"react\";\r\nimport AzureAuthenticationContext from \"./MsAuthContext\";\r\nimport { MicrosoftLoginButton } from \"react-social-login-buttons\";\r\n\r\nconst ua = window.navigator.userAgent;\r\nconst msie = ua.indexOf(\"MSIE \");\r\nconst msie11 = ua.indexOf(\"Trident/\");\r\nconst isIE = msie > 0 || msie11 > 0;\r\n\r\n// Log In, Log Out button\r\nconst AzureAuthenticationButton = ({ onAuthenticated }) => {\r\n // Azure client context\r\n const authenticationModule = new AzureAuthenticationContext();\r\n const [authenticated, setAuthenticated] = useState(false);\r\n const [user, setUser] = useState();\r\n\r\n const logIn = (method) => {\r\n const typeName = \"loginPopup\";\r\n const logInType = isIE ? \"loginRedirect\" : typeName;\r\n\r\n // Azure Login\r\n authenticationModule.login(logInType, returnedAccountInfo);\r\n };\r\n const logOut = () => {\r\n if (user) {\r\n onAuthenticated(undefined);\r\n // Azure Logout\r\n authenticationModule.logout(user);\r\n }\r\n };\r\n\r\n const returnedAccountInfo = (user) => {\r\n // set state\r\n setAuthenticated(user?.name ? true : false);\r\n onAuthenticated(user);\r\n setUser(user);\r\n };\r\n\r\n return (\r\n
\r\n logIn(\"loginPopup\")} iconColor='#39a2ff' iconSize='22px' align='center' text='SignIn with Microsoft' className='social-login-btn microsoft-btn' />\r\n
\r\n );\r\n\r\n // const showLogOutButton = () => {\r\n // return (\r\n //
\r\n //
\r\n // \r\n //
\r\n //
\r\n // );\r\n // };\r\n\r\n // const showButton = () => {\r\n // return authenticated ? showLogOutButton() : showLogInButton();\r\n // };\r\n\r\n // return
{showButton()}
;\r\n};\r\n\r\nexport default AzureAuthenticationButton;\r\n","import React, { useCallback, useRef, useState } from \"react\";\r\nimport ExtractionImg from \"../../assest/banner-img.svg\";\r\nimport { Row, Col, Form, Input, Button, message, Divider, Space, Alert } from \"antd\";\r\nimport \"./LoginModal.scss\";\r\nimport { AuthLogin, authenticate, userRegister, getForgortPasswordLink } from \"../../services/auth\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport actionTypes from \"../../context/actions\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\nimport { LoginSocialGoogle, LoginSocialMicrosoft } from \"reactjs-social-login\";\r\nimport { GoogleLoginButton, MicrosoftLoginButton } from \"react-social-login-buttons\";\r\nimport { msgModal } from \"../../component/utils/utils\";\r\nimport pageContent from \"../../services/pageContent/signInLeftContent.json\";\r\nimport { gClient_Id, mClient_Id, redirectUri } from \"../../services/webapi\";\r\n\r\nimport AzureAuthenticationButton from \"./AuthComponent\";\r\nimport { AccountInfo } from \"@azure/msal-browser\";\r\n\r\nconst SocialLoign = ({ onSocialSignIn }) => {\r\n const [{ lang }, dispatch] = useGlobalState();\r\n const [provider, setProvider] = useState(\"\");\r\n const [profile, setProfile] = useState();\r\n const [currentUser, setCurrentUser] = useState();\r\n\r\n const googleRef = useRef(null);\r\n const microsoftRef = useRef(null);\r\n\r\n const onLoginStart = () => {};\r\n\r\n const onLogoutFailure = useCallback(() => {\r\n alert(\"logout fail\");\r\n }, []);\r\n\r\n const onLogoutSuccess = useCallback(() => {\r\n setProfile(null);\r\n setProvider(\"\");\r\n\r\n alert(\"logout success\");\r\n }, []);\r\n\r\n const onAuthenticated = async (account) => {\r\n onSocialSignIn({ username: account?.name, email: account?.username, password: \"Something@123\", isSocialLogin: true });\r\n };\r\n\r\n const onLogout = useCallback(() => {\r\n switch (provider) {\r\n case \"google\":\r\n googleRef.current?.onLogout();\r\n break;\r\n case \"microsoft\":\r\n microsoftRef.current?.onLogout();\r\n break;\r\n default:\r\n break;\r\n }\r\n }, [provider]);\r\n return (\r\n \r\n {\r\n onSocialSignIn({ username: data.name, email: data.email, password: \"Something@123\", isSocialLogin: true });\r\n }}\r\n onReject={(err) => {\r\n console.log(err);\r\n }}>\r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nconst LoginModal = ({ closeSignInModal, resterModel = false }) => {\r\n const history = useHistory();\r\n const [loading, setLoading] = React.useState(false);\r\n const [globalState, dispatch] = useGlobalState();\r\n const [{ filesToProccess }, ocrDispatch] = useOCRState();\r\n\r\n const { lang } = globalState;\r\n const [hasFeed, setHasFeed] = React.useState(false);\r\n\r\n const [isForgotPassword, setForgotPassword] = React.useState(false);\r\n const [isResiter, setRegister] = React.useState(resterModel || false);\r\n\r\n const [isError, setError] = React.useState(\"\");\r\n const [isMsg, setMsg] = React.useState(\"\");\r\n\r\n const [form] = Form.useForm();\r\n const [forgotform] = Form.useForm();\r\n\r\n const onSignIn = (userInfo) => {\r\n if (!userInfo?.isSocialLogin) {\r\n form.validateFields().then((r) => {\r\n if (!/[A-Z]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one uppercase letter!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n\r\n if (!/[a-z]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one lowercase letter!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n if (!/[0-9]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one number!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n if (!/[#?!@$%^&*-]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one special caracter #?!@$%^&*-\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n setError(\"\");\r\n setLoading(true);\r\n AuthLogin(\r\n userInfo,\r\n (r) => {\r\n closeSignInModal();\r\n setLoading(false);\r\n authenticate(r.token, () => {\r\n dispatch({ type: actionTypes.SET_USER, payload: r.user });\r\n history.push(\"/ocr-process\");\r\n ocrDispatch({ type: actionTypes.OCR_CLEAR_STATE, payload: {} });\r\n });\r\n },\r\n (err) => {\r\n setLoading(false);\r\n setError(err);\r\n }\r\n );\r\n });\r\n } else {\r\n setError(\"\");\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n closeSignInModal();\r\n AuthLogin(\r\n userInfo,\r\n (r) => {\r\n setLoading(false);\r\n authenticate(r.token, () => {\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n history.push(\"/ocr-process\");\r\n ocrDispatch({ type: actionTypes.OCR_CLEAR_STATE, payload: {} });\r\n });\r\n },\r\n (err) => {\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n setError(err.msg);\r\n }\r\n );\r\n }\r\n };\r\n const onForgotPs = (userInfo) => {\r\n setLoading(true);\r\n setError(\"\");\r\n setMsg(\"\");\r\n getForgortPasswordLink(\r\n userInfo,\r\n (r) => {\r\n setLoading(false);\r\n setMsg(r.msg);\r\n message.success(r.msg);\r\n closeSignInModal();\r\n form.resetFields([\"email\"]);\r\n },\r\n (err) => {\r\n setLoading(false);\r\n setError(err);\r\n }\r\n );\r\n };\r\n\r\n const onRegister = (userInfo) => {\r\n form\r\n .validateFields()\r\n .then((r) => {\r\n if (!/[A-Z]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one uppercase letter!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n\r\n if (!/[a-z]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one lowercase letter!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n if (!/[0-9]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one number!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n if (!/[#?!@$%^&*-]/.test(userInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one special caracter #?!@$%^&*-\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n\r\n setLoading(true);\r\n setError(\"\");\r\n userRegister(\r\n userInfo,\r\n (r) => {\r\n setLoading(false);\r\n authenticate(r.token, () => {\r\n dispatch({ type: actionTypes.SET_USER, payload: r.user });\r\n history.push(\"/ocr-process\");\r\n ocrDispatch({ type: actionTypes.OCR_CLEAR_STATE, payload: {} });\r\n });\r\n },\r\n (err) => {\r\n setLoading(false);\r\n setError(err);\r\n forgotform.resetFields([\"username\", \"emil\", \"password\", \"confirmPassword\"]);\r\n }\r\n );\r\n })\r\n .catch((e) => {\r\n console.log(\"validate Error on login modal\");\r\n });\r\n };\r\n\r\n const onBackToLogin = () => {\r\n setForgotPassword(false);\r\n setRegister(false);\r\n setLoading(false);\r\n setError(\"\");\r\n forgotform.resetFields([\"email\"]);\r\n };\r\n\r\n const onClickForgot = () => {\r\n setLoading(false);\r\n setRegister(false);\r\n setError(\"\");\r\n form.resetFields([\"password\"]);\r\n setForgotPassword(true);\r\n };\r\n\r\n const onClickRegister = () => {\r\n setForgotPassword(false);\r\n setError(\"\");\r\n setRegister(true);\r\n form.resetFields([\"email\", \"password\"]);\r\n };\r\n\r\n const onClickSignIn = () => {\r\n setForgotPassword(false);\r\n setRegister(false);\r\n setError(\"\");\r\n form.resetFields([\"email\", \"password\"]);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n Extract Image\r\n

{pageContent[lang].title}

\r\n

{pageContent[lang].desc}

\r\n \r\n {isForgotPassword && (\r\n \r\n {isError && }\r\n {isMsg && }\r\n\r\n

Forgot your password?

\r\n

Enter your email below, and we'll send you the Rest Link

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Back to Login\r\n
\r\n \r\n )}\r\n\r\n {!isResiter && (\r\n \r\n {isError && }\r\n

Sign In

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Forgot Password?\r\n
\r\n
\r\n Don't have an account? Register\r\n
\r\n
\r\n\r\n or\r\n \r\n \r\n )}\r\n {isResiter && (\r\n \r\n {isError && }\r\n

Register

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue(\"password\") === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error(\"The password that you entered do not match!\"));\r\n },\r\n }),\r\n ]}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n or\r\n
\r\n Already have account? Sign In\r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LoginModal;\r\n","import React from \"react\";\r\nimport { Avatar } from \"antd\";\r\nimport { UserOutlined } from \"@ant-design/icons\";\r\nimport { useGlobalState } from \"../../context/context\";\r\n\r\nconst UserAvatar = ({ size }) => {\r\n const [{ user_info, userAvatar }, dispatch] = useGlobalState();\r\n if (!userAvatar && user_info?.name) {\r\n return (\r\n
\r\n \r\n {user_info?.name[0].toUpperCase()}\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n } src={userAvatar} />\r\n
\r\n );\r\n }\r\n};\r\n\r\nexport default UserAvatar;\r\n","import React from \"react\";\r\nimport { Row, Col, Space, Button, Dropdown, Menu, Divider, Drawer } from \"antd\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport AlazkaLogo from \"../../assest/alazka-logo.png\";\r\nimport CustomModal from \"../CustomModal/CustomModal\";\r\nimport LoginModal from \"../../Page/LoginModal/LoginModal\";\r\nimport { UserOutlined, CaretDownOutlined, MenuOutlined, HistoryOutlined, LogoutOutlined } from \"@ant-design/icons\";\r\nimport \"./Navbar.scss\";\r\nimport { isAuthenticated, Logout } from \"../../services/auth\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\nimport actionTypes from \"../../context/actions\";\r\nimport UserAvatar from \"../UserAvatar/UserAvatar\";\r\nimport navtext from \"../../services/pageContent/NavBar.json\";\r\n\r\nimport { truncateString } from \"../utils/utils\";\r\n\r\nconst Navbar = ({ onChangeView = () => {} }) => {\r\n const [{ user_info, lang }, dispatch] = useGlobalState();\r\n const [{ filesToProccess }, ocrDispatch] = useOCRState();\r\n\r\n const isAuth = isAuthenticated();\r\n const [navbarFixed, setNavbarFixed] = React.useState(false);\r\n const [navContent, setNavContent] = React.useState(navtext[lang]);\r\n const [mobileMenu, setMobileMenu] = React.useState(false);\r\n const [isLoginModal, setLoginModal] = React.useState(false);\r\n const [user, setUser] = React.useState(null);\r\n const history = useHistory();\r\n const location = useLocation();\r\n const closeModal = () => {\r\n setLoginModal(false);\r\n };\r\n const openLoginModal = () => {\r\n setLoginModal(true);\r\n onCloseMenu();\r\n };\r\n const onLogout = () => {\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n Logout(\r\n (r) => {\r\n // message.success(r);\r\n dispatch({ type: actionTypes.LOADING, payload: {} });\r\n dispatch({ type: actionTypes.SET_USER, payload: null });\r\n ocrDispatch({ type: actionTypes.OCR_CLEAR_STATE, payload: {} });\r\n history.push(\"/\");\r\n },\r\n (err) => {\r\n // message.error(err);\r\n }\r\n );\r\n };\r\n\r\n const getActiveNavLink = (navlink, pathName) => {\r\n if (navlink === pathName) {\r\n return \"active-link\";\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n React.useEffect(async () => {\r\n setNavContent(navtext[lang]);\r\n if (user_info) {\r\n setUser({ ...user_info });\r\n }\r\n }, [user_info, lang]);\r\n\r\n const onOpenMenu = () => {\r\n setMobileMenu(!mobileMenu);\r\n };\r\n const onCloseMenu = () => {\r\n setMobileMenu(false);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (location.state?.loginModal) {\r\n openLoginModal();\r\n }\r\n }, [location.state?.loginModal]);\r\n\r\n const menu = (\r\n \r\n }\r\n onClick={() => {\r\n history.push({ pathname: \"/account\", state: { id: \"3\" } });\r\n }}>\r\n {navContent.userMenu.myAccount}\r\n \r\n \r\n }\r\n onClick={() => {\r\n history.push({ pathname: \"/account\", state: { id: \"3\" } });\r\n }}>\r\n {navContent.userMenu.conversionHistory}\r\n \r\n \r\n {/* }\r\n onClick={() => {\r\n history.push(\"/upgrade-plan\");\r\n }}>\r\n {navContent.userMenu.buyCreditUpgradePlan}\r\n \r\n */}\r\n\r\n } onClick={onLogout}>\r\n {navContent.navLink.logout}\r\n \r\n \r\n );\r\n return (\r\n \r\n {navContent.appTagLine && (\r\n <>\r\n
|
\r\n
{navContent.appTagLine}
\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {\r\n history.push(\"/tools-and-api\");\r\n }}>\r\n {navContent.navLink.toolsAndApi}\r\n \r\n {/* {isAuth && ( //temprory closed\r\n {\r\n history.push(\"/upgrade-plan\");\r\n }}>\r\n {navContent.navLink.upgradePlan}\r\n \r\n )} */}\r\n {!isAuth && (\r\n <>\r\n history.push(\"/how-to-use\")}>\r\n {navContent.navLink.howToUse}\r\n \r\n {/*
history.push(\"/pricing\")}> //temprory closed\r\n {navContent.navLink.pricing}\r\n
*/}\r\n \r\n )}\r\n {!isAuth && (\r\n <>\r\n {\r\n if (user?.name) {\r\n history.push(\"/ocr-process\");\r\n } else {\r\n history.push(\"/upload\");\r\n }\r\n }}>\r\n {navContent.navLink.ocr}\r\n \r\n\r\n \r\n \r\n )}\r\n\r\n {user_info?.name && |}\r\n {user_info?.name && (\r\n \r\n
e.preventDefault()}>\r\n \r\n \r\n {user?.name && (\r\n
\r\n {navContent.welcome} {truncateString(user?.name, 20)} \r\n
\r\n )}\r\n
\r\n {user?.role === \"user\" && (\r\n <>\r\n c {user?.leftCredit} of {user?.totalCredit} {navContent.creditLeft}\r\n \r\n )}\r\n {user?.role === \"admin\" && (\r\n <>\r\n c {user?.leftCredit} {navContent.credit}\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n {user_info?.name ? (\r\n \r\n {user_info.name} \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n\r\n {/* login modal */}\r\n \r\n \r\n \r\n \r\n\r\n {/* For Mobile navbar */}\r\n (user?.name ? onChangeView(\"upload-view\") : history.push(\"/\"))}>\r\n Alazka\r\n \r\n }\r\n placement='top'\r\n width='100%'\r\n height={isAuth ? 370 : 290}\r\n onClose={onCloseMenu}\r\n visible={mobileMenu}\r\n getContainer={() => document.getElementById(\"mob-nav-link\")}\r\n className='mobile-menu-container'\r\n extra={\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n {\r\n if (user?.name) {\r\n history.push(\"/ocr-process\");\r\n onCloseMenu();\r\n } else {\r\n history.push(\"/upload\");\r\n onCloseMenu();\r\n }\r\n }}>\r\n {navContent.navLink.ocr}\r\n \r\n \r\n {!isAuth && (\r\n \r\n {\r\n onCloseMenu();\r\n history.push(\"/how-to-use\");\r\n }}>\r\n {navContent.navLink.howToUse}\r\n \r\n \r\n )}\r\n\r\n {/* {!isAuth && ( //temprory closed\r\n \r\n {\r\n history.push(\"/pricing\");\r\n onCloseMenu();\r\n }}\r\n className={`nav-link`}>\r\n {navContent.navLink.pricing}\r\n \r\n \r\n )} */}\r\n \r\n {\r\n history.push(\"/tools-and-api\");\r\n onCloseMenu();\r\n }}\r\n className='nav-link'>\r\n {navContent.navLink.toolsAndApi}\r\n \r\n \r\n\r\n {isAuth && (\r\n <>\r\n \r\n {\r\n history.push({ pathname: \"/account\", state: { id: \"3\" } });\r\n onCloseMenu();\r\n }}\r\n className={`nav-link`}>\r\n {navContent.userMenu.myAccount}\r\n \r\n \r\n {/* //temprory closed\r\n {\r\n history.push(\"/upgrade-plan\");\r\n onCloseMenu();\r\n }}\r\n className={`nav-link`}>\r\n {navContent.userMenu.buyCreditUpgradePlan}\r\n \r\n */}\r\n \r\n \r\n \r\n
{user?.name}
\r\n
\r\n {user?.role === \"user\" && (\r\n <>\r\n c {user?.leftCredit} of {user?.totalCredit} {navContent.creditLeft}\r\n \r\n )}\r\n {user?.role === \"admin\" && (\r\n <>\r\n c {user?.leftCredit} {navContent.credit}\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n )}\r\n {!isAuth && (\r\n \r\n \r\n \r\n \r\n )}\r\n {isAuth && (\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Navbar;\r\n","export default __webpack_public_path__ + \"static/media/mail.b5998a2c.svg\";","export default __webpack_public_path__ + \"static/media/open-mail-icon.15bf2d47.svg\";","export default __webpack_public_path__ + \"static/media/facebook-icon.c07fef24.svg\";","export default __webpack_public_path__ + \"static/media/phone-icon.ece8bebc.svg\";","export default __webpack_public_path__ + \"static/media/linkdin-icon.07390be4.svg\";","export default __webpack_public_path__ + \"static/media/twitter-icon.31bbb8c0.svg\";","import React from \"react\";\r\nimport { Collapse, Select } from \"antd\";\r\nimport { PlusOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport \"./FAQS.scss\";\r\nconst { Panel } = Collapse;\r\n\r\nconst FAQS = ({ faqs }) => {\r\n return (\r\n
\r\n

\r\n {faqs.title}\r\n

\r\n
\r\n (isActive ? : )}>\r\n {faqs.faqs.map((f, i) => (\r\n {f.question}} key={i + 1}>\r\n

{f.ans}

\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default FAQS;\r\n","import { getLocalStorage, msgModal } from \"../component/utils/utils\";\r\nimport { main_api_instance } from \"./webapi\";\r\nconst webApi = main_api_instance;\r\n\r\nexport const postQueryMail = async (queryInfo, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\"/send/query-mail\", queryInfo);\r\n if (res.status === 200 && res.data.success) {\r\n onSuccess(res.data.msg);\r\n } else {\r\n onFailure();\r\n }\r\n } catch (err) {\r\n onFailure(err.response?.data?.error || \"Something wents wrong try again later!\");\r\n }\r\n};\r\n\r\nexport const postContactUsMail = async (queryInfo, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\"/send/contact-us/mail\", queryInfo);\r\n if (res.status === 200 && res.data.success) {\r\n onSuccess(res.data);\r\n }\r\n } catch (err) {\r\n onFailure(err.response?.data?.error || \"Something wents wrong try again later!\");\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { Spin, Alert, Form, Input, Row, Col, Button, message } from \"antd\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport CustomModal from \"../../component/CustomModal/CustomModal\";\r\nimport footerContent from \"../../services/pageContent/footer.json\";\r\nimport { postQueryMail } from \"../../services/sendMail\";\r\n\r\nconst FeedBackForm = ({ isFeedBkForm, onCloseFeedBkForm }) => {\r\n const [{ user_info }, dispatch] = useGlobalState();\r\n const [contactForm] = Form.useForm();\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const onFinish = (info) => {\r\n setLoading(true);\r\n postQueryMail(\r\n info,\r\n (msg) => {\r\n message.success(\"Thank you we will connect with you! Soon.\");\r\n contactForm.resetFields([\"requirement_desc\"]);\r\n setLoading(false);\r\n onCloseFeedBkForm();\r\n },\r\n () => {\r\n setLoading(false);\r\n\r\n message.error(\"Something wents wrong! Try again later.\");\r\n }\r\n );\r\n };\r\n\r\n const openContactModal = () => {};\r\n React.useEffect(() => {\r\n if (isFeedBkForm && user_info?.name) {\r\n contactForm.setFieldsValue({ name: user_info?.name, email: user_info?.email });\r\n }\r\n }, [isFeedBkForm]);\r\n return (\r\n <>\r\n \r\n
\r\n

Contact Us

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FeedBackForm;\r\n","import React from \"react\";\r\nimport { Row, Tooltip, Col, Space, Form, Input, Divider, Collapse, Button, message, Menu, Dropdown, Select } from \"antd\";\r\nimport { GlobalOutlined } from \"@ant-design/icons\";\r\nimport MailIcon from \"../../assest/open-mail-icon.svg\";\r\nimport EmailIcon from \"../../assest/mail.svg\";\r\nimport PhoneIcon from \"../../assest/phone-icon.svg\";\r\nimport FacebookIcon from \"../../assest/facebook-icon.svg\";\r\nimport LinkdinIcon from \"../../assest/linkdin-icon.svg\";\r\nimport TwitterIcon from \"../../assest/twitter-icon.svg\";\r\nimport AlazkaLogo from \"../../assest/alazka-logo.png\";\r\nimport FAQS from \"../FAQ/FAQS\";\r\nimport \"./FooterConsole.scss\";\r\nimport { setLocalStorage, getLocalStorage } from \"../utils/utils\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport footerContent from \"../../services/pageContent/footer.json\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport FeedBackForm from \"../FeedBackForm/FeedBackForm\";\r\nimport actionTypes from \"../../context/actions\";\r\nconst { Option } = Select;\r\n\r\nconst FooterConsole = ({ faqs = undefined }) => {\r\n const [{ user_info, lang }, dispatch] = useGlobalState();\r\n\r\n const history = useHistory();\r\n const [isFeedBkForm, setFeedBkForm] = React.useState(false);\r\n const onChangeLang = (value) => {\r\n setLocalStorage(\"lang\", value);\r\n dispatch({ type: actionTypes.LANG, payload: value });\r\n };\r\n\r\n const onOpenFeedBkForm = () => {\r\n setFeedBkForm(true);\r\n };\r\n\r\n const onCloseFeedBkForm = () => {\r\n setFeedBkForm(false);\r\n };\r\n return (\r\n
\r\n {faqs !== undefined && (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n {!user_info?.user && (\r\n \r\n \r\n \r\n \r\n
Get in touch
\r\n \r\n
\r\n \r\n {footerContent[lang].termsOfService}\r\n {\" \"}\r\n | {footerContent[lang].privacyPolicy}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n facebook\r\n \r\n \r\n Twitter\r\n \r\n \r\n Linkdin\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n
history.push(\"/\")}>\r\n Alazka\r\n
\r\n \r\n \r\n
\r\n \r\n {footerContent[lang].termsOfService}\r\n {\" \"}\r\n |{\" \"}\r\n \r\n {footerContent[lang].privacyPolicy}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {lang}\r\n \r\n }\r\n className='select-language'\r\n style={{ width: 120 }}\r\n onChange={onChangeLang}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n {isFeedBkForm && }\r\n
\r\n );\r\n};\r\n\r\nexport default FooterConsole;\r\n","import React, { useEffect } from \"react\";\r\nimport Navbar from \"../Navbar/Navbar\";\r\nimport \"./Layout.scss\";\r\nimport FooterConsole from \"../FooterConsole/FooterConsole\";\r\nimport { Button, Divider, BackTop } from \"antd\";\r\nimport { VerticalAlignTopOutlined } from \"@ant-design/icons\";\r\n\r\nconst Layout = ({ children, faqs }) => {\r\n return (\r\n
\r\n \r\n
{children}
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Layout;\r\n","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { isAuthenticated } from \"../../services/auth\";\r\n\r\nimport HeroBanner from \"../../component/HeroBanner/HeroBanner\";\r\nimport ImgProcessStep from \"../../component/ImgProcessStep/ImgProcessStep\";\r\nimport ClientFeedback from \"../../component/ClientFeedBack/ClientFeedback\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport HomePagefaqs from \"../../services/pageContent/homePageFaq.json\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport \"./LandingPage.scss\";\r\n\r\nconst LandingPage = () => {\r\n const history = useHistory();\r\n const [globalState, dispatch] = useGlobalState();\r\n const [faqContent, setFaqContent] = React.useState(HomePagefaqs[globalState.lang]);\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (isAuthenticated()) {\r\n history.push(\"/ocr-process\");\r\n }\r\n }, []);\r\n React.useEffect(() => {\r\n setFaqContent(HomePagefaqs[globalState.lang]);\r\n }, [globalState.lang]);\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LandingPage;\r\n","export function pageNumberList(spec, n) {\r\n spec = spec.replace(/\\s+/g, \"\");\r\n spec = spec.replace(/–/g, \"-\");\r\n spec = spec.replace(/-+/g, \"-\");\r\n const ranges = spec.split(\",\");\r\n const newOrder = [];\r\n for (let range of ranges) {\r\n // if (range == '0') range = `${n+1}`;\r\n if (!range.includes(\"-\")) range = `${range}-${range}`;\r\n let [before, after] = range.split(\"-\");\r\n if (!before) before = 1;\r\n if (!after) after = n;\r\n before = Number(before);\r\n after = Number(after);\r\n const sign = before <= after ? 1 : -1;\r\n for (let i = before; ; i += sign) {\r\n newOrder.push(i > 0 ? i - 1 : n);\r\n if (i == after) break;\r\n }\r\n }\r\n // console.log(`For spec ${spec}, new order is [${newOrder}].`);\r\n return newOrder;\r\n}\r\n\r\nexport const getImageDimensions = (file) => {\r\n return new Promise(function (resolved, rejected) {\r\n var i = new Image();\r\n i.onload = function () {\r\n resolved({ w: i.width, h: i.height });\r\n };\r\n i.src = file;\r\n });\r\n};\r\n","import webApi from \"./webapi\";\r\nimport axios from \"axios\";\r\nimport { getExtension, msgModal } from \"../component/utils/utils\";\r\nimport { degrees, PDFDocument, rgb, StandardFonts } from \"pdf-lib\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport { pageNumberList } from \"./utils/ocr_utils\";\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst CancelToken = axios.CancelToken;\r\n\r\nexport let cancelReq = {};\r\n\r\nconst readFileData = (file) => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = (e) => {\r\n resolve(e.target.result);\r\n };\r\n reader.onerror = (err) => {\r\n reject(err);\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n};\r\n\r\nfunction dataURLtoFile(dataurl, filename) {\r\n var arr = dataurl.split(\",\"),\r\n mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]),\r\n n = bstr.length,\r\n u8arr = new Uint8Array(n);\r\n\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n\r\n return new File([u8arr], filename, { type: mime });\r\n}\r\n\r\nasync function newPdfBytes(pdfDoc, spec) {\r\n const pages = pdfDoc.getPages();\r\n const n = pages.length;\r\n // Dimensions of blank pages: use the second page if possible.\r\n const { width, height } = pages[n > 1 ? 1 : 0].getSize();\r\n pdfDoc.addPage([width, height]); // A blank page at the end\r\n\r\n const newOrder = pageNumberList(spec, n);\r\n // Use the new order.\r\n const newDoc = await PDFDocument.create();\r\n\r\n const newPages = await newDoc.copyPages(pdfDoc, newOrder);\r\n for (let newPage of newPages) newDoc.addPage(newPage);\r\n\r\n const newBytes = await newDoc.save();\r\n // console.log(`Returning ${newBytes.byteLength} bytes`);\r\n return { newBytes, newOrder };\r\n}\r\n\r\n//param: file -> the input file (e.g. event.target.files[0])\r\n//return: images -> an array of images encoded in base64\r\nexport const convertPdfToImages = (file) => {\r\n return new Promise(async (resolved, rejected) => {\r\n const images = [];\r\n const data = await readFileData(file);\r\n const pdf = await pdfjs.getDocument(data).promise;\r\n const canvas = document.createElement(\"canvas\");\r\n for (let i = 0; i < pdf.numPages; i++) {\r\n const page = await pdf.getPage(i + 1);\r\n const viewport = page.getViewport({ scale: 1.5 });\r\n const context = canvas.getContext(\"2d\");\r\n canvas.height = viewport.height;\r\n canvas.width = viewport.width;\r\n await page.render({ canvasContext: context, viewport: viewport }).promise;\r\n images.push(canvas.toDataURL());\r\n }\r\n canvas.remove();\r\n resolved(images);\r\n });\r\n};\r\n\r\nexport const getPdfPromiseResult = (fileToUpload, url, file, pdfPageOrder) => {\r\n return new Promise(async (resolved, rejected) => {\r\n const pdfImgResult = [];\r\n\r\n const pdfImgProcess = fileToUpload.map(async (pdfImg, i) => {\r\n const imgFile = dataURLtoFile(pdfImg, file.name);\r\n const formData = new FormData();\r\n formData.append(\"file\", imgFile);\r\n await webApi\r\n .post(url, formData, {\r\n cancelToken: new CancelToken(function executor(c) {\r\n cancelReq[`${file.uid}-${i}`] = c;\r\n }),\r\n })\r\n .then((res) => {\r\n pdfImgResult.push({ ...res.data, pageNo: pdfPageOrder[i] + 1 });\r\n })\r\n .catch((err) => {\r\n rejected(err);\r\n });\r\n });\r\n\r\n await Promise.all(pdfImgProcess)\r\n .then((res) => {\r\n resolved(pdfImgResult);\r\n })\r\n .catch((err) => {\r\n rejected(err);\r\n });\r\n });\r\n};\r\n\r\nexport const getOCRResult = async (freeOCR, file, downPer) => {\r\n try {\r\n let fileForProcesssing = file.fileToUploadPro;\r\n let totalPage = 1;\r\n let pdfPageOrder = [];\r\n let bytesLength = file.size;\r\n if (file.type === \"pdf\") {\r\n const pagesToPro = file.selectedPdfPage;\r\n const pdfDoc = await PDFDocument.load(file.fileInb64);\r\n const pdfBytes = await newPdfBytes(pdfDoc, pagesToPro);\r\n totalPage = pdfBytes.newOrder.length;\r\n bytesLength = pdfBytes.newBytes.byteLength;\r\n pdfPageOrder = pdfBytes.newOrder;\r\n const outputBlob = new Blob([pdfBytes.newBytes]);\r\n fileForProcesssing = await convertPdfToImages(outputBlob);\r\n }\r\n\r\n let encoding_type = file.type === \"pdf\" ? \"png\" : file.type;\r\n let doc_type = \"image\";\r\n\r\n let fileToUpload = fileForProcesssing;\r\n\r\n let url = `${process.env.REACT_APP_API_OCR_ENDPOINT}/?remove_noise=${file.removeNoise}&upscale=${file.enhanceImgQlty}&auto_align=${file.correctOrient}&encoding_type=${encoding_type}&doc_type=${doc_type}`;\r\n\r\n if (file.type === \"pdf\") {\r\n try {\r\n const res = await getPdfPromiseResult(fileToUpload, url, file, pdfPageOrder);\r\n const allfalied = res.filter((file, i) => file.success === false);\r\n if (allfalied?.length === res?.length) {\r\n return {\r\n data: [],\r\n success: true,\r\n isTexDetectd: false,\r\n message: \"text not detected\",\r\n totalPage: totalPage,\r\n bytesLength: bytesLength,\r\n };\r\n } else {\r\n return {\r\n success: true,\r\n data: res.sort((a, b) => a?.pageNo - b?.pageNo),\r\n totalPage: totalPage,\r\n bytesLength: bytesLength,\r\n isTexDetectd: true,\r\n };\r\n }\r\n } catch (err) {\r\n return { ...err, success: false };\r\n }\r\n } else {\r\n const formData = new FormData();\r\n formData.set(\"file\", fileToUpload);\r\n const res = await webApi.post(url, formData, {\r\n cancelToken: new CancelToken(function executor(c) {\r\n cancelReq[file.uid] = c;\r\n }),\r\n onDownloadProgress: (progressEvent) => {\r\n const total = parseFloat(progressEvent.total);\r\n const current = progressEvent.loaded;\r\n let percentCompleted = Math.floor((current / total) * 100);\r\n downPer(percentCompleted, file.uid);\r\n },\r\n });\r\n if (res.status === 200 && res.data.success) {\r\n return { data: [{ ...res.data, pageNo: 1 }], success: true, totalPage: totalPage, bytesLength: bytesLength, isTexDetectd: true };\r\n } else if (!res.data.success) {\r\n return {\r\n data: [],\r\n success: true,\r\n isTexDetectd: false,\r\n message: \"text not detected\",\r\n totalPage: totalPage,\r\n bytesLength: bytesLength,\r\n };\r\n }\r\n }\r\n } catch (err) {\r\n return { ...err, success: false };\r\n }\r\n};\r\n","export default __webpack_public_path__ + \"static/media/border-dases.304c67f4.svg\";","export default __webpack_public_path__ + \"static/media/animated-clock.312dd893.gif\";","export default __webpack_public_path__ + \"static/media/clock-icon.56d2ca0b.svg\";","import react from \"react\";\r\nimport { CheckCircleOutlined, SyncOutlined, CloseCircleOutlined, MinusCircleOutlined } from \"@ant-design/icons\";\r\nimport { Tag } from \"antd\";\r\nimport { getReadableTime } from \"../utils/utils\";\r\n\r\nconst StatusTag = ({ status, errMsg = \"\", resTime = 0 }) => {\r\n switch (status) {\r\n case \"ready\":\r\n return (\r\n \r\n ready to process\r\n \r\n );\r\n case \"proccessing\":\r\n return (\r\n } className='status-tag' color='processing'>\r\n processing\r\n \r\n );\r\n case \"re-proccessing\":\r\n return (\r\n } className='status-tag' color='processing'>\r\n re-processing\r\n \r\n );\r\n case \"success\":\r\n return (\r\n } className='status-tag' color='success'>\r\n Completed in {getReadableTime(resTime)}\r\n \r\n );\r\n case \"wait\":\r\n return (\r\n } className='status-tag' color='default'>\r\n wait\r\n \r\n );\r\n case \"error\":\r\n return (\r\n } className='status-tag' color='error'>\r\n {errMsg}\r\n \r\n );\r\n\r\n default:\r\n return ready to process;\r\n }\r\n};\r\n\r\nexport default StatusTag;\r\n","import React from \"react\";\r\nimport { Row, Col, Space, Button, Checkbox, Select, Tooltip, Divider, Input, Popconfirm, Alert } from \"antd\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport { DeleteFilled, EyeOutlined, LeftOutlined, RightOutlined, CloseOutlined } from \"@ant-design/icons/lib/icons\";\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst OverlayContainer = ({ file }) => {\r\n const [numPages, setNumPages] = React.useState(null);\r\n const [pageNumber, setPageNumber] = React.useState(1);\r\n\r\n function onDocumentLoadSuccess({ numPages }) {\r\n setNumPages(numPages);\r\n }\r\n\r\n const incPage = () => {\r\n if (pageNumber < numPages) {\r\n setPageNumber(pageNumber + 1);\r\n }\r\n };\r\n const decPage = () => {\r\n if (pageNumber > 1) {\r\n setPageNumber(pageNumber - 1);\r\n }\r\n };\r\n return (\r\n \r\n \r\n {file.type === \"pdf\" ? (\r\n \r\n {numPages > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n onDeleteUploadFile(file.uid)}\r\n onCancel={() => {}}\r\n okText='Yes'\r\n cancelText='No'>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onCheckModeOpt(e, file.uid)}>\r\n Correct Orientation\r\n \r\n onCheckModeOpt(e, file.uid)}>\r\n Remove Noise\r\n \r\n \r\n \r\n \r\n {file.type === \"pdf\" && (\r\n <>\r\n Page :\r\n \r\n \r\n onSelectPdfPage(e, file)}\r\n placeholder={`1-${file.pages}`}\r\n style={{ width: \"80px\" }}\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n
Convert Format
\r\n onChangeFileFormat(fileFormat, file.uid)}>\r\n \r\n \r\n \r\n
\r\n \r\n {/* {file.downPer > 0 && (\r\n \r\n \r\n \r\n )} */}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n};\r\n\r\nexport default FileViewCard;\r\n","export default __webpack_public_path__ + \"static/media/copy-text-icon.45b27ad1.svg\";","import { useRef, useEffect } from \"react\";\r\nimport { getImageDimensions } from \"../utils/utils\";\r\n\r\nconst OverlayCanvas = ({ previewImage, boxes, dimension = null }) => {\r\n console.log(dimension);\r\n const canvasRef = useRef();\r\n useEffect(async () => {\r\n const canvas = canvasRef.current;\r\n const context = canvas.getContext(\"2d\");\r\n let img = new Image();\r\n img.onload = function () {\r\n canvas.setAttribute(\"width\", dimension?.w || img.width + \"px\");\r\n canvas.setAttribute(\"height\", dimension?.h || img.height + \"px\");\r\n context.drawImage(img, 0, 0, dimension?.w || img.width, dimension?.h || img.height, 0, 0, canvas.width, canvas.height);\r\n if (boxes && boxes?.length > 0) {\r\n boxes.forEach((box) => {\r\n let x = box[0][0];\r\n let y = box[0][2];\r\n let w = box[0][1] - box[0][0];\r\n let h = box[0][3] - box[0][2];\r\n context.beginPath();\r\n context.lineWidth = \"3\";\r\n context.strokeStyle = \"red\";\r\n context.rect(x, y, w, h);\r\n context.stroke();\r\n });\r\n }\r\n };\r\n img.src = `${previewImage}`;\r\n // context.fillStyle = '#000000'\r\n\r\n // context.fillRect(0, 0, context.canvas.width, context.canvas.height)\r\n }, [boxes, previewImage]);\r\n\r\n return ;\r\n};\r\nexport default OverlayCanvas;\r\n","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Space, Button, Select, message, Tooltip, Alert, Divider } from \"antd\";\r\nimport { EyeOutlined, DownloadOutlined, RightOutlined, LeftOutlined } from \"@ant-design/icons/lib/icons\";\r\n\r\nimport CopyIcon from \"../../assest/copy-text-icon.svg\";\r\nimport { bytesToSize, downloadTextFile, copyTextFunction, getImageDimensions, getReadableTime, truncateString } from \"../utils/utils\";\r\nimport CustomModal from \"../CustomModal/CustomModal\";\r\nimport OverlayCanvas from \"../OverlayCanvas/OverlayCanvas\";\r\nimport \"./FileProcessingContainer.scss\";\r\nimport StatusTag from \"../StatusTag/StatusTag\";\r\nconst { Option } = Select;\r\n\r\nconst FileResultViewCard = ({ file, imgOverlay, setImgOverlay = (f) => {}, freeOCR }) => {\r\n const [pageNumber, setPageNumber] = React.useState(1);\r\n const [isImgViewModal, setImgViewModal] = React.useState(false);\r\n const [imgDimension, setImgDimension] = React.useState(null);\r\n\r\n const [copyText, setCopyText] = React.useState(\"\");\r\n const [downText, setDownText] = React.useState(\"\");\r\n\r\n const closeModal = () => {\r\n setImgViewModal(false);\r\n setImgOverlay(false);\r\n };\r\n const openImgViewnModal = () => {\r\n setImgViewModal(true);\r\n };\r\n\r\n React.useEffect(() => {\r\n setImgViewModal(imgOverlay);\r\n }, [imgOverlay]);\r\n\r\n const incPage = () => {\r\n if (pageNumber < file.extractionResult?.length + 1) {\r\n setPageNumber(pageNumber + 1);\r\n }\r\n };\r\n const decPage = () => {\r\n if (pageNumber > 0) {\r\n setPageNumber(pageNumber - 1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (file.isSuccess) {\r\n file.extractionResult.map((imgResult, i) => {\r\n setDownText((prv) => prv + \"\\n\\n\" + `Page ${imgResult?.pageNo}\\n\\n` + imgResult.result.text);\r\n });\r\n file.extractionResult.map((imgResult, i) => {\r\n setCopyText((prv) => prv + \"\\n\\n\" + `Page ${imgResult?.pageNo}\\n\\n` + imgResult.result.text);\r\n });\r\n }\r\n }, []);\r\n\r\n const onClickCopyText = () => {\r\n copyTextFunction(copyText, message);\r\n };\r\n\r\n const onClickDownload = () => {\r\n downloadTextFile(file.name, \"png\", downText, downText);\r\n };\r\n\r\n if (freeOCR) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n

Processed Result

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n {file.extractionResult?.length > 0 &&\r\n file.extractionResult.map((extData, i) => {\r\n return (\r\n
\r\n

Page No : {i + 1}

\r\n {extData.result.box_text.map((t, i) => (\r\n

\r\n {t[1]}\r\n

\r\n ))}\r\n
\r\n );\r\n })}\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {file.extractionResult?.length > 0 && (\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
{truncateString(file.name, 45)}
\r\n
\r\n
{bytesToSize(file.size)}
\r\n
\r\n \r\n \r\n {!file.isErrMsg && file.status !== \"re-proccessing\" && (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {file.isErrMsg &&
{file.isErrMsg}
}\r\n {file.status === \"re-proccessing\" && }\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {file.extractionResult?.length > 0 && (\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n};\r\n\r\nexport default FileResultViewCard;\r\n","import { getLocalStorage, msgModal } from \"../component/utils/utils\";\r\nimport { main_api_instance } from \"./webapi\";\r\nconst webApi = main_api_instance;\r\n\r\nexport const uploadProcessFile = async (fileInfo, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\r\n \"/process/file/upload\",\r\n {\r\n user_id: fileInfo.user_id,\r\n file_uid: fileInfo.file_uid,\r\n name: fileInfo.name,\r\n size: fileInfo.size,\r\n type: fileInfo.type,\r\n success: fileInfo.success,\r\n role: fileInfo.role,\r\n noOf_pages: fileInfo.noOf_pages,\r\n extractionResult: fileInfo.extractionResult,\r\n },\r\n {\r\n headers: {\r\n Authorization: `${getLocalStorage(\"jwt\")}`,\r\n },\r\n }\r\n );\r\n if (res.status === 200) {\r\n // console.log(\"success upload file \", res);\r\n onSuccess();\r\n }\r\n onFailure();\r\n } catch (err) {\r\n onFailure();\r\n }\r\n};\r\nexport const getAllProcessFile = async (pageNo, pageSize, id, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.get(`/process/file/get-all/${id}?pageno=${pageNo}&pageSize=${pageSize}`);\r\n if (res.status === 200 && res.data.success) {\r\n return onSuccess(res.data);\r\n } else {\r\n onFailure(res.data.msg);\r\n }\r\n } catch (err) {\r\n onFailure(\"No process files found\");\r\n }\r\n};\r\nexport const deleteProcessFile = async (id, fileId, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.delete(`/process/file/delete/${id}/${fileId}`);\r\n if (res.status === 200) {\r\n return onSuccess(res.data.msg);\r\n } else {\r\n onFailure(res.data.msg);\r\n }\r\n } catch (err) {\r\n onFailure(\"failed to delete a file\");\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { Row, Divider, Col, Space, Button, Checkbox, Select, Popconfirm, Tooltip, message, Modal } from \"antd\";\r\nimport { LoadingOutlined } from \"@ant-design/icons/lib/icons\";\r\nimport { cancelReq } from \"../../services/getOCRResult\";\r\n\r\nimport BorderDases from \"../../assest/border-dases.svg\";\r\nimport AnimateGif from \"../../assest/animated-clock.gif\";\r\nimport ClockIcon from \"../../assest/clock-icon.svg\";\r\n\r\nimport { getOCRResult } from \"../../services/getOCRResult\";\r\nimport { pageNumberList } from \"../../services/utils/ocr_utils\";\r\nimport FileViewCard from \"./FileViewCard\";\r\nimport FileResultViewCard from \"./FileResultViewCard\";\r\nimport { bytesToSize, getReadableTime, msgModal, truncateString } from \"../utils/utils\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\nimport { uploadProcessFile } from \"../../services/uploadProcessService\";\r\nimport actionTypes from \"../../context/actions\";\r\nimport { fileLimit } from \"../FileUploadContainer/FileUploadContainer\";\r\nimport \"./FileProcessingContainer.scss\";\r\n\r\nconst { Option } = Select;\r\nmessage.config({\r\n top: 0,\r\n duration: 5,\r\n maxCount: 1,\r\n});\r\n\r\nconst FileProcessingContainer = ({ freeOCR }) => {\r\n const [globalState, dispatch] = useGlobalState();\r\n const [{ filesToProccess, correctOrient, removeNoise, fileFormat }, ocrDispatch] = useOCRState();\r\n\r\n const [imgOverlay, setImgOverlay] = React.useState(false);\r\n // check mode opts\r\n const onCheckModeOpt = (e, uid) => {\r\n ocrDispatch({ type: actionTypes.PROCESS_MODE, payload: { name: e.target.name, value: e.target.checked, uid: uid } });\r\n };\r\n\r\n // cancel or delete all file upload files to process\r\n const confirmCancel = (e) => {\r\n e.preventDefault();\r\n Object.keys(cancelReq).map((key, index) => {\r\n cancelReq[key](\"request cancelled\");\r\n });\r\n\r\n ocrDispatch({ type: actionTypes.OCR_CLEAR_STATE, payload: {} });\r\n };\r\n\r\n // change file format for all\r\n const fileFormateForAll = (format) => {\r\n if (format) {\r\n ocrDispatch({ type: actionTypes.SET_ALL_FILEFORMAT, payload: format });\r\n }\r\n };\r\n // check mode opts for all\r\n const onCleckModeOptForAll = (e) => {\r\n ocrDispatch({ type: actionTypes.ALL_PROCESS_MODE, payload: { name: e.target.name, value: e.target.checked } });\r\n };\r\n\r\n // set process status\r\n const onRefresOCRProcess = () => {\r\n ocrDispatch({\r\n type: actionTypes.OCR_REFRESH,\r\n payload: {},\r\n });\r\n };\r\n\r\n // Save process file in DB when user login\r\n const saveProcessFileToDB = (file, r) => {\r\n uploadProcessFile(\r\n {\r\n user_id: globalState.user_info?.user_id,\r\n file_uid: file.uid,\r\n name: file.name,\r\n size: file.size,\r\n type: file.type,\r\n success: r.success,\r\n extractionResult: r.data,\r\n noOf_pages: r.totalPage,\r\n role: globalState.user_info?.role,\r\n },\r\n () => {\r\n dispatch({ type: actionTypes.REFRESH, payload: {} });\r\n },\r\n () => {}\r\n );\r\n };\r\n\r\n // main function to process the image and pdf\r\n const onGetOCR = async () => {\r\n // if user offline\r\n if (globalState.isOffline) return msgModal(\"error\", \"Unable to process, Please check your Network\");\r\n // if user add more than fileLimit\r\n if (filesToProccess.length > fileLimit && globalState.user_info?.role === \"user\")\r\n return msgModal(\"info\", `Sorry you can't process more than ${fileLimit} files at ones!`, \"Info\");\r\n\r\n // if user loged in\r\n if (!freeOCR) {\r\n if (!globalState.user_info?.name) return msgModal(\"error\", \"Oops!, Something wents wrong please try again later \");\r\n const isFileLeft = filesToProccess.find((f) => f.isSuccess === false || f.isProcessed === false);\r\n if (isFileLeft === undefined) return message.success(\"files are Converted!\");\r\n }\r\n\r\n if (!freeOCR) {\r\n const totalPages = filesToProccess.reduce(function (acc, obj) {\r\n return acc + pageNumberList(obj.selectedPdfPage, obj.pages).length;\r\n }, 0);\r\n if (globalState.user_info?.leftCredit < totalPages && globalState.user_info?.role === \"user\")\r\n return msgModal(\"info\", \"Unable to process, You don't have enough Credit!\", \"Oops!\");\r\n }\r\n\r\n dispatch({ type: actionTypes.IS_PROCESSING, payload: true });\r\n\r\n const allPromise = filesToProccess.map((file) => {\r\n if (!file.selectedPdfPage) return msgModal(\"info\", `Please enter any page no of : ${file.name}`, \"Info\");\r\n\r\n // if user use free version set process to processing\r\n if (freeOCR) onRefresOCRProcess();\r\n\r\n // if user loged in process file only if not success or not error in file\r\n if (!file.isSuccess || !file.isProcessed) {\r\n if (file.status === \"success\") {\r\n ocrDispatch({\r\n type: actionTypes.FILE_STATUS,\r\n payload: { status: \"re-proccessing\", uid: file.uid },\r\n });\r\n } else {\r\n ocrDispatch({\r\n type: actionTypes.FILE_STATUS,\r\n payload: { status: \"proccessing\", uid: file.uid },\r\n });\r\n }\r\n\r\n // start count time\r\n let startTime = Date.now();\r\n return getOCRResult(freeOCR, file, (downPer, uid) => {\r\n // set download per after procssing file\r\n ocrDispatch({ type: actionTypes.DOWN_PER, payload: { downPer: downPer, uid: uid } });\r\n })\r\n .then((r) => {\r\n // if error in frontend with axios request\r\n if (!r.succes) {\r\n ocrDispatch({\r\n type: actionTypes.SET_EXTRACT_RESULT,\r\n payload: {\r\n uid: file.uid,\r\n isSuccess: false,\r\n extractionResult: [],\r\n status: \"error\",\r\n isErrMsg: r.message,\r\n isError: false,\r\n size: r.bytesLength,\r\n isProcessed: false,\r\n },\r\n });\r\n }\r\n if (r.success) {\r\n let resTime = Date.now() - startTime;\r\n if (r.isTexDetectd) {\r\n ocrDispatch({\r\n type: actionTypes.SET_EXTRACT_RESULT,\r\n payload: {\r\n uid: file.uid,\r\n isSuccess: r.success,\r\n extractionResult: r.data,\r\n status: \"success\",\r\n isErrMsg: \"\",\r\n isError: false,\r\n resTime: resTime,\r\n size: r.bytesLength,\r\n isProcessed: true,\r\n },\r\n });\r\n } else if (!r.isTexDetectd) {\r\n ocrDispatch({\r\n type: actionTypes.SET_EXTRACT_RESULT,\r\n payload: {\r\n uid: file.uid,\r\n isSuccess: r.success,\r\n extractionResult: r.data,\r\n status: \"error\",\r\n isErrMsg: r.message,\r\n isError: true,\r\n resTime: resTime,\r\n size: r.bytesLength,\r\n isProcessed: true,\r\n },\r\n });\r\n }\r\n if (!freeOCR && r.isTexDetectd) {\r\n saveProcessFileToDB(file, r);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n return msgModal(\"error\", \"Something wents wrong Please try again later\", \"Unable to process\");\r\n });\r\n }\r\n });\r\n\r\n Promise.all(allPromise).then((r) => {\r\n dispatch({ type: actionTypes.IS_PROCESSING, payload: false });\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n if (globalState.isOffline) {\r\n msgModal(\"error\", \"Please check your network.\");\r\n Object.keys(cancelReq).map((key, index) => cancelReq[key](\"Network Error\"));\r\n dispatch({ type: actionTypes.IS_PROCESSING, payload: false });\r\n }\r\n }, [globalState.isOffline]);\r\n\r\n if (freeOCR) {\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n

\r\n {truncateString(filesToProccess[0].name, 24)} ({bytesToSize(filesToProccess[0].size)})\r\n

\r\n
\r\n \r\n \r\n \r\n {filesToProccess[0].isSuccess && (\r\n \r\n )}\r\n {\r\n Object.keys(cancelReq).map((key, index) => {\r\n cancelReq[key](\"Cancelled by user\");\r\n });\r\n ocrDispatch({ type: actionTypes.OCR_CLEAR_STATE, payload: {} });\r\n }}>\r\n Clear Image\r\n \r\n \r\n \r\n
\r\n
\r\n {filesToProccess.map((file, index) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n \r\n\r\n {/* controler */}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n onCheckModeOpt(e, filesToProccess[0].uid)}>\r\n Correct Orientation\r\n \r\n onCheckModeOpt(e, filesToProccess[0].uid)}>\r\n Remove Noise\r\n \r\n \r\n \r\n {!filesToProccess[0].isSuccess && (\r\n <>\r\n Border Dases\r\n \r\n )}\r\n \r\n
\r\n \r\n {filesToProccess[0].isSuccess && (\r\n \r\n \r\n
\r\n Clock Icon\r\n
\r\n \r\n
Time Taken
\r\n
{getReadableTime(filesToProccess[0].resTime)}
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n \r\n\r\n {/* File Result View Container */}\r\n \r\n
\r\n {filesToProccess.map((f, i) => {\r\n if (f.isSuccess && !f.isError) {\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n {globalState.isProcessing && (\r\n <>\r\n
\r\n \r\n Please wait Coversion in Progress... loading Icon\r\n \r\n
\r\n \r\n )}\r\n {!filesToProccess[0].isSuccess && filesToProccess[0].isError && (\r\n <>\r\n
\r\n Text not detected \r\n
\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n {/* File upload View Container */}\r\n \r\n
\r\n \r\n \r\n
{filesToProccess.length} files selected
\r\n \r\n \r\n {}}\r\n okText='Yes'\r\n cancelText='No'>\r\n \r\n \r\n Cancel All\r\n \r\n \r\n \r\n \r\n \r\n \r\n onCleckModeOptForAll(e)}>\r\n Correct Orientation All\r\n \r\n onCleckModeOptForAll(e)}>\r\n Remove Noise All\r\n \r\n \r\n \r\n \r\n \r\n Convert All\r\n fileFormateForAll(fileFormat)}\r\n className='select-format'\r\n style={{ width: 80 }}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {filesToProccess.map((file, index) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n \r\n\r\n {/* File Result View Container */}\r\n \r\n
\r\n {filesToProccess.map((f, i) => {\r\n if (f.isSuccess || f.extractionResult?.length > 0) {\r\n return ;\r\n }\r\n })}\r\n {globalState.isProcessing && (\r\n <>\r\n
\r\n \r\n Please wait.Coversion in Progress... \r\n \r\n
\r\n \r\n )}\r\n {!globalState.isProcessing && (\r\n
\r\n f.extractionResult?.length > 0 || f.isSuccess) ? \"marginTop\" : \"\"\r\n } `}>\r\n Get OCR\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n};\r\n\r\nexport default FileProcessingContainer;\r\n","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport \"./FreeOCR.scss\";\r\nimport FileUploadContainer from \"../../component/FileUploadContainer/FileUploadContainer\";\r\nimport FileProcessingContainer from \"../../component/FileProcessingContainer/FileProcessingContainer\";\r\n\r\nimport { isAuthenticated } from \"../../services/auth\";\r\nimport pageContent from \"../../services/pageContent/HeroBanner.json\";\r\nimport HomePagefaqs from \"../../services/pageContent/homePageFaq.json\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\n\r\nconst FreeOCR = () => {\r\n const [{ lang }, dispatch] = useGlobalState();\r\n const [{ filesToProccess }, ocrDispatch] = useOCRState();\r\n\r\n const history = useHistory();\r\n\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (isAuthenticated()) {\r\n history.push(\"/ocr-process\");\r\n }\r\n }, []);\r\n return (\r\n \r\n
\r\n

\r\n {pageContent[lang].title[0]} {pageContent[lang].title[1]}\r\n

\r\n

{pageContent[lang].subTitle}

\r\n
\r\n \r\n
\r\n {filesToProccess.length > 0 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default FreeOCR;\r\n","import React from \"react\";\r\nimport { useHistory, useLocation, Link } from \"react-router-dom\";\r\nimport { Spin, Alert, Form, Input, Button, message } from \"antd\";\r\nimport { isAuthenticated } from \"../../services/auth\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\n\r\nimport FileUploadContainer from \"../../component/FileUploadContainer/FileUploadContainer\";\r\nimport FileProcessingContainer from \"../../component/FileProcessingContainer/FileProcessingContainer\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport LogedInFaqs from \"../../services/pageContent/logedInFaqs.json\";\r\nimport paidUploadContent from \"../../services/pageContent/paidHomePage.json\";\r\n\r\nimport \"./PaidOCR.scss\";\r\nimport CustomModal from \"../../component/CustomModal/CustomModal\";\r\nimport { postContactUsMail } from \"../../services/sendMail\";\r\n\r\nconst AlertBanner = () => {\r\n const [{ user_info }, dispatch] = useGlobalState();\r\n const [isContactModal, setContactModal] = React.useState(false);\r\n const [contactForm] = Form.useForm();\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const onFinish = (info) => {\r\n setLoading(true);\r\n postContactUsMail(\r\n info,\r\n (r) => {\r\n message.success(r.msg);\r\n setLoading(false);\r\n setContactModal(false);\r\n },\r\n (err) => {\r\n message.error(err);\r\n setLoading(false);\r\n setContactModal(false);\r\n }\r\n );\r\n };\r\n\r\n const closeModal = () => {\r\n setContactModal(false);\r\n };\r\n\r\n const openContactModal = () => {\r\n contactForm.setFieldsValue({ name: user_info?.name, email: user_info?.email });\r\n setContactModal(true);\r\n };\r\n return (\r\n <>\r\n {user_info?.role === \"user\" && user_info?.leftCredit === 0 && (\r\n \r\n You don't have any left Credit please{\" \"}\r\n \r\n Contact Us\r\n {\" \"}\r\n \r\n }\r\n type='error'\r\n />\r\n )}\r\n {user_info?.role === \"user\" && user_info?.leftCredit <= 10 && user_info?.leftCredit >= 1 && (\r\n \r\n You have only {user_info?.leftCredit} Credit Left {\" \"}\r\n \r\n Contact Us\r\n {\" \"}\r\n or\r\n Buy Credits.\r\n \r\n }\r\n type='info'\r\n />\r\n )}\r\n\r\n \r\n
\r\n

Contact Us

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst PaidOCR = () => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [{ user_info, lang }, dispatch] = useGlobalState();\r\n const [{ filesToProccess }, ocrDispatch] = useOCRState();\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (!isAuthenticated()) {\r\n history.push(\"/\");\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n {paidUploadContent[lang].title[0]} {paidUploadContent[lang].title[1]}\r\n

\r\n

{paidUploadContent[lang].subTitle}

\r\n
\r\n \r\n
\r\n\r\n {filesToProccess.length > 0 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PaidOCR;\r\n","import React, { useEffect } from \"react\";\r\nimport \"./PasswordResetPage.scss\";\r\nimport { Row, Col, Space, Form, Tooltip, Select, Input, Button, Alert } from \"antd\";\r\nimport AlazkaLogo from \"../../assest/alazka-logo.png\";\r\nimport { setLocalStorage, getLocalStorage } from \"../../component/utils/utils\";\r\nimport { useParams, useHistory, Link } from \"react-router-dom\";\r\n\r\nimport { resetPassword } from \"../../services/auth\";\r\n\r\nconst Option = Select;\r\n\r\nconst PasswordRestPage = () => {\r\n const params = useParams();\r\n const history = useHistory();\r\n const [loading, setLoading] = React.useState(false);\r\n const [isError, setError] = React.useState(\"\");\r\n const [isMsg, setMsg] = React.useState(\"\");\r\n\r\n const [form] = Form.useForm();\r\n\r\n const onResetPass = (resetPsInfo) => {\r\n if (!/[A-Z]/.test(resetPsInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one uppercase letter!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n\r\n if (!/[a-z]/.test(resetPsInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one lowercase letter!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n if (!/[0-9]/.test(resetPsInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one number!\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n if (!/[#?!@$%^&*-]/.test(resetPsInfo.password)) {\r\n form.setFields([\r\n {\r\n name: \"password\",\r\n errors: [\"password should cantain atleast one special caracter #?!@$%^&*-\"],\r\n },\r\n ]);\r\n return false;\r\n }\r\n\r\n setError(\"\");\r\n setMsg(\"\");\r\n setLoading(true);\r\n resetPassword(\r\n resetPsInfo,\r\n params.token,\r\n (r) => {\r\n setLoading(false);\r\n setMsg(r.msg);\r\n setError(\"\");\r\n form.resetFields([\"password\", \"confirmPassword\"]);\r\n if (r.success) {\r\n history.push({ pathname: \"/\", state: { loginModal: true } });\r\n }\r\n },\r\n (err) => {\r\n setLoading(false);\r\n setError(err.msg);\r\n setMsg(\"\");\r\n }\r\n );\r\n };\r\n\r\n const onBackToHomePage = () => {\r\n history.push(`/`);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n Alazka\r\n
\r\n {/*
|
\r\n
Deep Dive Into Unstructured Data
*/}\r\n
\r\n \r\n
\r\n\r\n
\r\n {isError && }\r\n {isMsg && }\r\n

Reset your password

\r\n
\r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue(\"password\") === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error(\"The password that you entered do not match!\"));\r\n },\r\n }),\r\n ]}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Back to Home Page\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n Alazka\r\n
\r\n \r\n \r\n
\r\n \r\n Terms of Service\r\n {\" \"}\r\n |{\" \"}\r\n \r\n Privacy Policy\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PasswordRestPage;\r\n","import React from \"react\";\r\nimport { Button, Result } from \"antd\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst PageNotFound = () => {\r\n const history = useHistory();\r\n return (\r\n
\r\n history.push(\"/\")}>\r\n Back Home\r\n \r\n }\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default PageNotFound;\r\n","export default __webpack_public_path__ + \"static/media/image-logo.2388058b.svg\";","export default __webpack_public_path__ + \"static/media/change-mode.a911ec6d.gif\";","export default __webpack_public_path__ + \"static/media/get-ocr-text.8d6a885c.gif\";","export default __webpack_public_path__ + \"static/media/ocr-page-upload.76be2592.gif\";","import React from \"react\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport { Steps, Divider, Row, Col } from \"antd\";\r\nimport \"./HowToUse.scss\";\r\nimport ChangeMode from \"../../assest/gif/change-mode.gif\";\r\nimport GetOcrText from \"../../assest/gif/get-ocr-text.gif\";\r\nimport OCRPageUpload from \"../../assest/gif/ocr-page-upload.gif\";\r\nimport HowToUseFaqs from \"../../services/pageContent/howToUseFaqs.json\";\r\nimport pageContent from \"../../services/pageContent/howToUsePage.json\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nconst { Step } = Steps;\r\n\r\nconst HowToUse = () => {\r\n const [{ lang }, dispatch] = useGlobalState();\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n return (\r\n \r\n
\r\n
\r\n

{pageContent[lang].title}

\r\n

{pageContent[lang].desc}

\r\n
\r\n
\r\n \r\n \r\n \r\n

{pageContent[lang].step_1.desc}

\r\n \r\n \r\n upload page\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n

{pageContent[lang].step_2.desc}

\r\n \r\n \r\n upload page\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n

{pageContent[lang].step_3.desc}

\r\n \r\n \r\n upload page\r\n \r\n \r\n }\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default HowToUse;\r\n","import React from \"react\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport { Divider } from \"antd\";\r\nimport \"./PrivacyPolicy.scss\";\r\nimport packageJson from \"../../../package.json\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport footerContent from \"../../services/pageContent/footer.json\";\r\n\r\nconst PrivacyPolicy = () => {\r\n const [{ lang }, dispatch] = useGlobalState();\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n return (\r\n \r\n
\r\n
\r\n

Privacy Policy

\r\n

Version: {packageJson.version}

\r\n
\r\n
\r\n

Effective Date: 1st March 2022

\r\n

\r\n Alazka.ai Technologies and Systems Private Limited (“Company”) is committed to protecting the privacy and security of your personal information. This Privacy Policy\r\n explains the privacy practices and policies adopted by the Company and covers the data processing activities of the company as a data controller.\r\n

\r\n

By accessing or using the website, you agree that You have read, understood and accepted the terms of this Privacy Policy.

\r\n

This Privacy Policy and the Terms of Use, as published on the website are to be read together and form one single legally binding agreement between You and the Company.

\r\n

1. Definitions

\r\n

\r\n “Personal Information” means any information which relates to a living, identifiable person. It may include information such as name, address, email and any other\r\n identifier which is used to identify a person. However, it may also include certain sensitive information such as credit card number, health reports, bank account number etc. or any data\r\n that renders a person identifiable.\r\n

\r\n\r\n

“Processing” includes all activities relating to the use of personal data by the Company which is and not limited to data collection, storage, and sharing of the data.

\r\n\r\n

\r\n “Data Subject” is the person whose personal information is being collected. “Services” include any service which may be provided to You via the website, which includes but is not limited\r\n to Enterprise Resource Planning (ERP) and Custom IT solutions using AI and ML technologies.\r\n

\r\n\r\n

2. What Information May Be Collected

\r\n\r\n

2.1 Contact information:

\r\n

The Company may collect any contact information from You such as your name, address, phone number, email ID etc.

\r\n\r\n

2.2 Information to provide the Services:

\r\n

The Company may collect information regarding the queries You may have or the solutions You require, in order to deliver You seamless Services. s.

\r\n\r\n

2.3 Payment and billing information:

\r\n

The Company may collect your billing name, billing address and payment method when you pay for the Services availed by you on the website.

\r\n\r\n

2.4 Other information:

\r\n

While you use the website, the Company may collect information about your IP address and the browser you are using

\r\n\r\n

\r\n You acknowledge and agree that any and all information You provide on the website is correct and accurate and is provided by You with Your informed and voluntary consent. The Company shall\r\n not be liable for the genuineness or the accuracy of the information provided by You on the website. You shall be exclusively liable for the consequences of providing incomplete,\r\n inaccurate or incorrect information on the website. If it is found by the Company that You provided false information, the Company may at its sole discretion, prevent You from accessing\r\n the website.\r\n

\r\n\r\n

3. How does the Company collect the data

\r\n\r\n

3.1 Personal Data provided to the Company

\r\n

\r\n You willingly consent to provide the Company your personal data when you provide Your personal data on the website. You also consent to sharing your personal data with the Company when you\r\n subscribe to receive our marketing.\r\n

\r\n\r\n

3.2 Personal data collected automatically

\r\n

\r\n Some data such as your browser type, internet protocol address used, your usage habits may be automatically collected by the Company using cookies. Cookies are tiny bits of information\r\n which a website sends to Your computer resource. We use Cookies to provide you with a more personalized experience on the website. You can change Your browser settings and choose to\r\n disable sharing of information through cookies.\r\n

\r\n\r\n

4. What Purposes is the Data Collected Used For?

\r\n

The purposes for which the Company uses the data collected are:

\r\n
    \r\n
  • \r\n Verifying your identity: The contact details collected may be used to verify your identity. You agree that such verification is essential for the Company to run the website smoothly and\r\n to comply with its legal and other obligations.{\" \"}\r\n
  • \r\n
  • Offering You Services in a smooth and effective manner.
  • \r\n
  • \r\n Personalizing your experience on the website: The information collected from you would help the Company in personalizing your experience and providing you a better and more efficient\r\n service.{\" \"}\r\n
  • \r\n
  • Improving the design and style of website.
  • \r\n
  • Providing you with communication regarding offers, products or services, if you have chosen to subscribe to such communication.
  • \r\n
  • For security purposes: The Company might use the information provided by you on the website to protect our company, our users, our partners or our associates.
  • \r\n
\r\n

You agree that the aforementioned purposes are valid and give Your informed consent to the collection of data for such purposes.

\r\n\r\n

5. What is the legal basis for collection of data?

\r\n

The Company collects data from you on the following legal basis:

\r\n
    \r\n
  1. \r\n Performance of a contract with you as a consumer: By accepting the Terms of Use which have been separately published on the website, You agree to enter into a binding legal agreement\r\n with the Company. In pursuance of the same, You agree, that, for a valid performance of that contract, it is necessary, that the Company shall collect Your data for the purposes\r\n mentioned above.{\" \"}\r\n
  2. \r\n
  3. To protect your vital interests by connecting you with service providers.
  4. \r\n
  5. On the basis of consent obtained from you.
  6. \r\n
\r\n\r\n

6. How long will the data collected be retained by the Company?

\r\n

The Company shall not retain your data longer than is necessary for it to fulfill the aforementioned purposes.

\r\n

Any information that is provided by you may be retained by the Company for:

\r\n\r\n
    \r\n
  1. Providing the Services; and/or
  2. \r\n
  3. For meeting its obligations under applicable law.
  4. \r\n
  5. For providing any promotional or advertising materials to You, if You have chosen to subscribe to the same.
  6. \r\n
\r\n

\r\n Even if you stop accessing or using the website, the Company may have to retain the information provided by you for a short period of time until the same can be erased from its servers,\r\n and for compliance with its obligations under applicable law (if any).{\" \"}\r\n

\r\n

\r\n If you want to withdraw the consent granted to the website for collecting and processing your data, please notify the Company at{\" \"}\r\n {footerContent[lang].email} Once you discontinue the use of the website or withdraw your consent, the Company shall retain the personal\r\n information provided by you on the website for such time period as may be mandated by applicable law (if any) and thereafter erase the same in full.{\" \"}\r\n

\r\n\r\n

7. Processing of the data collected by the Website

\r\n

\r\n All data that is shared by you on the website may be processed by the Company. Personal data, You provide shall only be processed for the sole purpose of providing the Services as offered\r\n by this website and to contact you. You can choose to at any point of time to revoke your consent for the processing of the data shared by you on the website, by sending an email to{\" \"}\r\n {footerContent[lang].email}\r\n

\r\n\r\n

8. Whom does the Company share your personal data with?

\r\n

The Company may share your personal data, with:

\r\n
    \r\n
  1. \r\n Service Providers: The company may share your information with third parties who the company has contracted with for delivery of Services.{\" \"}\r\n
  2. \r\n
  3. \r\n Employees/Consultants: The Company may share your information with its employees and consultants.\r\n
  4. \r\n
  5. \r\n Compliance with law: The Company can share your information when compelled by a government agency, law, regulation, a court or other legal process:\r\n
      \r\n
    • To enforce our Terms of Use or any other agreements we may have with you.
    • \r\n
    • In order to investigate, respond to or resolve problems or inquiries or
    • \r\n
    • defend our interests and when you otherwise consent.
    • \r\n
    \r\n
  6. \r\n
  7. \r\n Mergers and Acquisitions: \r\n The Company reserve the right to share your information in a merger, acquisition, change of control, joint venture or other business combination.\r\n
  8. \r\n
\r\n\r\n

9. Data Transfers

\r\n

\r\n The Company may transfer to and store the data collected in countries other than the country in which the data was collected. Those countries may not have similar data protection laws as\r\n the country in which your data was collected. When we transfer your data, we shall take adequate measures of data protection in accordance with all applicable legal requirements. If you\r\n are a resident of EEA, then your data shall be transferred only in compliance with the EU-GDPR Regulations.\r\n

\r\n

The company will keep a copy of all the data stored by it in India at all times as required by the applicable law.

\r\n\r\n

10. Rights of the Data Subject

\r\n

You shall have the following rights under this Privacy Policy:

\r\n
    \r\n
  1. \r\n Right to Request access to your personal data: You may, during anytime, after You have given Your consent to the collection of Your data, may request the access to the same, by sending\r\n an email to {footerContent[lang].email}. The Company shall provide you with a reasonable access to Your data within 7 working days or\r\n within such timeline as mandated under the applicable law.\r\n
  2. \r\n
  3. \r\n Right to Request correction of your data: You may, during anytime, after You have given Your consent to the collection of Your data, may request the correction of the same, by sending an\r\n email to {footerContent[lang].email}. Please note that failure to do so, shall be Your sole responsibility and the Company shall not\r\n be responsible for any incorrect information that You may have supplied.\r\n
  4. \r\n
  5. Request erasure of your data.
  6. \r\n
  7. Right to demand erasure or deletion of your data.
  8. \r\n
  9. \r\n Right to restrict processing of data: You may at anytime, after You have given consent to the collection of data, request the Company to process or not to process the same in a specific\r\n manner. You may send an email to {footerContent[lang].email} in order to request the same. Subject to the applicable law, the Company\r\n shall make all reasonable efforts to meet Your request at the earliest. However, You agree, that there could be genuine delays in immediately meeting this request, hence You agree to\r\n provide the Company 30 working days to implement Your request.{\" \"}\r\n
  10. \r\n
  11. \r\n Right to request transfer of data: You may request to get Your data transferred from one jurisdiction to the other. However, please note that the Company shall not take responsibility if\r\n the jurisdiction where You wish Your data to be transferred has inadequate data protection laws or measures.{\" \"}\r\n
  12. \r\n
\r\n\r\n

11. How do we protect your information?

\r\n

We protect Your information by employing the following measures:

\r\n
    \r\n
  1. We have put in place various physical and technical security measures to protect the personal data we collect from you.
  2. \r\n
  3. We require those with whom we share Your personal data to enter into confidentiality arrangements with us so that they do not disclose Your personal information.
  4. \r\n
\r\n

\r\n You acknowledge and agree, that the Company cannot possibly guarantee 100% protection against loss of information. As internet is susceptible to unforeseen security issues, We can only\r\n make reasonable efforts to protect Your personal data, but cannot give an absolute guarantee regarding the same. We shall not be liable in the event, Your personal data is unauthorizedly\r\n disclosed on account of improper use or disclosure, unauthorized modification and unlawful destruction or accidental loss of information, or any security breach which is beyond the\r\n reasonable control of the Company.\r\n

\r\n\r\n

12. Third Party Websites

\r\n

\r\n The website may contain links to third-party websites. If You choose to click on such links, You would be re-directed to a third-party website. Please note that, Our terms of use and\r\n privacy policy cease to apply as and when You are redirected to a third party website. You are advised to read the privacy policy of such third-party website before You submit any personal\r\n data on such a website. We shall not be responsible for any loss of information which may occur on such third-party websites.\r\n

\r\n

13. Changes to Privacy Policy

\r\n

There may be changes to this Privacy Policy from time to time. The last effective date shall be highlighted at the top of policy information.

\r\n

14. Redressal of Grievances

\r\n

\r\n If you have any questions or grievances regarding about our website, the content thereof, our data handling policies, or about our Services, you can reach out to The Grievance Officer of\r\n the Company customer support at {footerContent[lang].email}\r\n

\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PrivacyPolicy;\r\n","import React from \"react\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport { Steps, Divider, Row, Col } from \"antd\";\r\nimport \"./TermsOfService.scss\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport footerContent from \"../../services/pageContent/footer.json\";\r\n\r\nconst TermsOfService = () => {\r\n const [{ lang }, dispatch] = useGlobalState();\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n return (\r\n \r\n
\r\n
\r\n

Terms of Service

\r\n
\r\n
\r\n

TERMS OF USE

\r\n

\r\n This website is owned and operated by Alazka.ai Technologies and Systems Private Limited with its registered office at No. 7-3-19, Ferozguda Post, Bowenpally, Hyderabad-500011, Telangana{\" \"}\r\n (“Company”). Any reference to in the form of “We”, “Us” and “Our” would hereinafter refer to the Company. Any user of the website shall be termed as the “Customer”, any\r\n reference to “You”, “Your”, “Yourself” shall hereinafter refer to the Customer.\r\n

\r\n

The given terms and conditions (“Terms of Use”) establish a legally binding agreement between You and the Company,

\r\n

\r\n You agree that your usage of the website shall be subject to these Terms of Use and the Company’s privacy policy which is published on this website and is incorporated by reference in\r\n these terms.{\" \"}\r\n

\r\n

\r\n You further agree, that in using this website, You shall be in compliance with all applicable laws. Please note that the usage of the site is on an `as-is’ and `as-available’ basis. The\r\n Company does not provide any warranty as to the authenticity of any information which You may obtain as a consequence of using this website.{\" \"}\r\n

\r\n

\r\n Please note that these Terms of Use constitute an electronic record according to the provisions of Information Technology Act, 2000 and are generated by a computer system. Hence, there is\r\n no requirement of affixing a digital or a physical signature therein. This agreement is governed under Indian laws.{\" \"}\r\n

\r\n

\r\n You agree that these Terms of Use may be updated from time to time and any such changes will be effective as soon as they are posted. It is advisable to review these Terms of Use from time\r\n to time so that you remain informed about any such changes.{\" \"}\r\n

\r\n

PLEASE NOTE THAT IF YOU DO NOT AGREE TO THE GIVEN TERMS OF USE, YOU ARE NOT AUTHORIZED TO ACCESS THE WEBSITE.

\r\n\r\n

SCOPE AND APPLICABILITY

\r\n

\r\n These Terms of Use along with the Privacy Policy shall constitute the entire and sole agreement between You and the Company. The Terms of Use outline the manner in which You are required\r\n to access and use this website. Any queries regarding Your usage of the website should be directed at: {footerContent[lang].email}\r\n

\r\n

You can use the website if:

\r\n

2.3. By giving consent, the User agrees that the Operator may store the User’s IP address to verify extensive use of the Platform.

\r\n\r\n

3. Rights and obligations of the User

\r\n

\r\n 3.1. The User undertakes to refrain from any actions that endanger the functionality or operation of the software. In particular, the User is prohibited from carrying out any actions that\r\n scan or test weak points of the software, bypass security systems or access systems of the software or integrate malware into the software.\r\n

\r\n

\r\n 3.2. The User guarantees that he has all the necessary rights (such as copyright, ancillary copyright, industrial property rights, trademark rights) for processing the uploaded photos.\r\n

\r\n\r\n

4. Warranty and liability

\r\n
    \r\n
  1. You are 18 years of age and above
  2. \r\n
  3. You accept to comply with these Terms of Use and the Company’s Privacy Policy.
  4. \r\n
  5. You agree that You shall be in compliance with the applicable laws in accessing and using this website.
  6. \r\n
\r\n

\r\n The website offers services which provide Enterprise Resource Planning (ERP) and Custom IT solutions using AI and ML technologies (“Services”)\r\n

\r\n

\r\n THE SERVICES MAY CHANGE FROM TIME TO TIME AT THE EXCLUSIVE AND SOLE DISCRETION OF THE COMPANY. ANY SUCH CHANGE SHALL BE UPDATED AND REFLECTED IN THESE TERMS OF USE. YOU AGREE TO REVIEW\r\n THESE TERMS OF USE PERIODICALLY FOR UDATES AND NOT HOLD THE COMPANY RESPONISBLE FOR ANY SUCH CHANGE\r\n

\r\n\r\n

LICENSE

\r\n\r\n

\r\n The Company offers you the usage of this website in strict compliance of these Terms of Use. By agreeing to these Terms of Use, You shall be granted a worldwide, non-exclusive,\r\n non-transferable, revocable, limited license to access and make personal use of the information and services on the website. The Company at its sole discretion may terminate this license\r\n at any point of time and for any reason whatsoever. You agree that if you breach these Terms of Use that would constitute sufficient ground for the automatic termination of your license to\r\n use the website, without any prior notice.\r\n

\r\n

\r\n You agree that in the event of such termination, you shall destroy all copies of materials which you may have downloaded from the website. Failure to do so shall be construed as infringing\r\n the Company’s copyright and the Company shall then at its sole discretion may pursue any legal remedies. You agree, that you only possess a limited license to use the website. You do not\r\n hold any intellectual property right over the website.{\" \"}\r\n

\r\n\r\n

PROHIBITED USES

\r\n\r\n

By using and accessing this website you agree that:

\r\n
    \r\n
  1. You are 18 years of age or above.
  2. \r\n
  3. \r\n Your usage of any content available on the website is not, either willfully or otherwise, in non-compliance with any applicable law, rules or regulations. (national, international or\r\n local){\" \"}\r\n
  4. \r\n
  5. \r\n Your usage of this website shall not be in such a manner so as to adversely affect, impair, disable, infect or overburden any of the Company’s servers, computer systems, networks or any\r\n other components which are deployed to provide You a seamless service.\r\n
  6. \r\n
  7. Your usage of the site shall not interfere with any third-party’s use and enjoyment of the site.
  8. \r\n
  9. You shall not modify or alter the content posted or available on the site.
  10. \r\n
  11. \r\n You shall not copy, reverse engineer, compile or commercially or otherwise re-use (including but not limited to selling, renting, leasing, distributing) the content which you may have\r\n downloaded as a user of this site.{\" \"}\r\n
  12. \r\n
  13. You shall not without express written consent of the Company make any use of any trademarks, logos or graphics displayed or used on the website for any purpose whatsoever.
  14. \r\n
  15. You shall not use the network of this site or the e-mails you may have obtained from this site for the purposes of any advertising, promotions or marketing campaigns.
  16. \r\n
  17. \r\n You shall not upload any content which may be violative of any third-party’s intellectual property or is obscene, pornographic, blasphemous, libelous, pedophilic or otherwise illegal or\r\n prohibited in any manner whatsoever.\r\n
  18. \r\n
\r\n

If you are found violating any of the aforementioned restrictions, You agree that, it will be a just and fair action on the Company’s part to initiate legal proceedings against you.

\r\n

DATA PROTECTION

\r\n

\r\n You agree that You have read and understood in full, the terms of the privacy policy published and displayed on the website. You agree that you are in know of the following and consent to\r\n the same:\r\n

\r\n
    \r\n
  1. The data being collected by the Company.
  2. \r\n
  3. The purpose for which the data is being collected.
  4. \r\n
  5. The entities which may process the data.
  6. \r\n
\r\n

INTELLECTUAL PROPERTY

\r\n

\r\n You agree that any Services offered, software used, content posted or made available or any other such functionalities which may be connected or associated with the website are the\r\n intellectual property of the Company. You agree to keep all information pertaining to these confidential at all times. You further agree that you shall not modify, re-sell, reuse, license\r\n out, distribute or use the intellectual property of the Company in any unauthorized manner. Any use of the intellectual property of the Company shall be made only upon an express written\r\n authorization and consent of the Company. Any violation of this term shall be considered to be a material breach and the Company is free to pursue any legal remedy it deems fit for the\r\n enforcement and protection of its rights.\r\n

\r\n

TRADEMARKS

\r\n

\r\n You agree that all the trademarks, logos and service marks displayed on the website are property of the Company. Any unauthorized use of the same shall be treated as infringement or\r\n passing off. Nothing on the website shall be interpreted as granting any form of authorization or license, express/implied, written/unwritten, to any individual to use any trademarks\r\n belonging to the Company.\r\n

\r\n

COPYRIGHT NOTICE

\r\n

\r\n All content published or displayed on the website is the copyright of the Company. You agree that any form of copying, distribution or using for any other purpose of such content without\r\n an express written permission of the Company shall be treated as copyright infringement.\r\n

\r\n

INDEMNIFICATION

\r\n

\r\n You agree to indemnify, defend and hold harmless the Company and any of its affiliates, employees, contractors, professionals and consultants (“The Indemnified Party) from and against any\r\n claims, damages, cost, liabilities and expenses (including, but not limited to, legal expenses) arising out of Your a) Breach of any applicable law b) Illegal or prohibited use of the\r\n website d) breach of any intellectual property or confidentiality obligations.\r\n

\r\n

LIMITATION OF LIABILITY

\r\n

\r\n You further agree, that the Company shall not be liable for any direct, indirect, consequential or remote damages in connection with these Terms of Use. The Company shall also not be\r\n liable for any damages that may arise as a result of your misuse of the website or your breach of the obligations of these Terms of Use.\r\n

\r\n

SEVERABILITY

\r\n

\r\n If any provision of these Terms of Use becomes invalid or unenforceable due whatsoever reason, such invalidity or unenforceability shall not lead to the entire agreement becoming\r\n unenforceable. The unenforceable or invalid portion shall be deemed to be severed from these Terms of Use without affecting the validity of the entire Terms of Use.\r\n

\r\n

GOVERNING LAW AND JURISIDCTION

\r\n

\r\n All matters, claims and any other such issues which may directly or indirectly arise from or in connection with these Terms of Use shall be governed under the laws of India. The courts at\r\n Hyderabad shall have the sole and exclusive jurisdiction to hear all matters, claims or any such issues which may directly or indirectly arise from or in connection with the Terms of Use.\r\n

\r\n

QUESTIONS AND GRIEVANCES

\r\n

\r\n If you have any queries regarding these Terms of Use, you may contact us at:\r\n
\r\n {footerContent[lang].email}\r\n

\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TermsOfService;\r\n","import { getLocalStorage, msgModal } from \"../component/utils/utils\";\r\nimport { main_api_instance } from \"./webapi\";\r\nimport errorMsg from \"../services/pageContent/errorMsg.json\";\r\nconst webApi = main_api_instance;\r\n\r\nexport const generateAPIKey = async (userId, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.get(`/api/apikey/generate/${userId}`);\r\n if (res.status === 200 && res.data.success) {\r\n onSuccess(res.data);\r\n }\r\n } catch (err) {\r\n onFailure(err.response?.data?.error || errorMsg.serverError);\r\n }\r\n};\r\n\r\nexport const getAPIKeyByUserId = async (userId, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.get(`/api/apikey/${userId}`);\r\n if (res.status === 200) {\r\n onSuccess(res.data);\r\n }\r\n } catch (err) {\r\n onFailure(err.response?.data?.error || errorMsg.serverError);\r\n }\r\n};\r\n","import React from \"react\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport { Menu, Button, Tabs, message } from \"antd\";\r\nimport \"./ToolsAndApi.scss\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { CopyBlock } from \"react-code-blocks\";\r\nimport { isAuthenticated } from \"../../services/auth\";\r\nimport CustomModal from \"../../component/CustomModal/CustomModal\";\r\nimport LoginModal from \"../LoginModal/LoginModal\";\r\nimport { nodeJsSampleColde } from \"../../services/pageContent/nodeJsSampleCode\";\r\nimport { generateAPIKey, getAPIKeyByUserId } from \"../../services/generateApiKey\";\r\n\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { useGlobalState } from \"../../context/context\";\r\n\r\nconst { TabPane } = Tabs;\r\n\r\nconst pythonSampleColde = `\r\n# Requires \"requests\" to be installed (see python-requests.org)\r\nimport requests\r\n\r\nresponse = requests.post(\r\n 'https://api.alazka.ai/v1.0/alazka',\r\n files={'image_file': open('/path/to/file.jpg', 'rb')},\r\n data={'size': 'auto'},\r\n headers={'X-Api-Key': 'INSERT_YOUR_API_KEY_HERE'},\r\n)\r\nif response.status_code == requests.codes.ok:\r\n with open('no-bg.png', 'wb') as out:\r\n out.write(response.content)\r\nelse:\r\n print(\"Error:\", response.status_code, response.text)\r\n\r\n`;\r\n\r\nconst ToolsAndApi = () => {\r\n const [{ user_info }, dispatch] = useGlobalState();\r\n const history = useHistory();\r\n const isAuth = isAuthenticated();\r\n const [loading, setLoading] = React.useState(false);\r\n const [selectedTopic, setSelectedTopi] = React.useState(\"text-extraction\");\r\n const [isLoginModal, setLoginModal] = React.useState(false);\r\n const closeModal = () => {\r\n setLoginModal(false);\r\n };\r\n const onSelectTopic = (e) => {\r\n setSelectedTopi(e.key);\r\n window.scrollTo({\r\n top: 400,\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const ongenerateAPIKey = () => {\r\n if (!user_info?.name) {\r\n setLoginModal(true);\r\n } else {\r\n setLoading(true);\r\n getAPIKeyByUserId(\r\n user_info?.user_id,\r\n (r) => {\r\n if (r.apiKey) return history.push({ pathname: \"/ocr-process\", state: { menuName: \"account-setting\", id: \"5\" } });\r\n },\r\n (err) => {\r\n if (!err.isCreated) {\r\n generateAPIKey(\r\n user_info?.user_id,\r\n (r) => {\r\n setLoading(false);\r\n message.success(r.msg);\r\n history.push({ pathname: \"/ocr-process\", state: { menuName: \"account-setting\", id: \"5\" } });\r\n },\r\n (err) => {\r\n setLoading(false);\r\n message.error(err);\r\n }\r\n );\r\n } else {\r\n message.error(err);\r\n }\r\n }\r\n );\r\n }\r\n };\r\n return (\r\n \r\n
\r\n
\r\n
OCR API
\r\n \r\n \r\n Text extraction\r\n \r\n \r\n Easy to integrate\r\n \r\n \r\n Get Started\r\n \r\n \r\n Sample Code\r\n \r\n \r\n
\r\n
\r\n
\r\n
OCR API
\r\n
\r\n
\r\n

Extract Text automatically with 1 API call

\r\n

Explore our API documentation and examples to integrate alazka.ai into your application or workflow.

\r\n \r\n {/*
Not a developer?
\r\n

\r\n There are plenty ready to use Tools & Apps by alazka.ocr and our community.\r\n

*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Easy to integrate

\r\n

Our API is a simple HTTP interface with various options:

\r\n

Source images:

\r\n

Direct uploads

\r\n

Result text:

\r\n

Detected text on Image and Download file in plain text format

\r\n

Output resolution:

\r\n

up to 25 megapixels

\r\n {/*

\r\n There are plenty ready to use Tools & Apps by remove.bg and our community.\r\n

*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Get started

\r\n
    \r\n
  • \r\n \r\n Get your API Key.\r\n \r\n
    \r\n {/* Your first 50 API calls per month are on us (see Pricing). temprory closed */}\r\n
  • \r\n
  • Use the following code samples to get started quickly
  • \r\n
  • Review the reference docs to adjust any parameters
  • \r\n
\r\n\r\n {/*

\r\n There are plenty ready to use Tools & Apps by remove.bg and our community.\r\n

*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Sample Code

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*

\r\n There are plenty ready to use Tools & Apps by remove.bg and our community.\r\n

*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ToolsAndApi;\r\n","export const nodeJsSampleColde = `\r\n// Requires \"axios\" and \"form-data\" to be installed (see https://www.npmjs.com/package/axios and https://www.npmjs.com/package/form-data)\r\nconst axios = require(\"axios\");\r\nconst FormData = require(\"form-data\");\r\nconst fs = require(\"fs\");\r\nconst path = require(\"path\");\r\n\r\n// Supported file type is jpg, png, jpeg images\r\nconst inputFile = \"./file.png\";\r\n\r\nconst formData = new FormData();\r\nformData.append(\"file\", fs.createReadStream(inputFile), path.basename(inputFile));\r\n\r\n// file is required to attach \"query string\"\r\n// if you upload base64 file then you should use encoding_type=\"base64\" other wise encoding_type=[file type]\r\n// 1 encoding_type=\"base64 or file type\" file type = jpg, png , jpeg\r\n// 2 doc_type=\"image\"\r\n\r\n// Here is another query param having boolean value *but these are may increase the processing time*\r\n// 1. upscale=true/false it is increase the quality of images\r\n// 2. auto_align=true/false it correct the orientation of images\r\n// 3. remove_noise=true/false it clean the blurry images\r\n\r\nconst upscale = false;\r\nconst auto_align = false;\r\nconst remove_noise = false;\r\n\r\nconst endpoint = \"https://api.alazka.ai/INSERT_YOUR_API_KEY_HERE\";\r\n\r\nconst URL = endpoint + \"/?upscale=\" + upscale + \"&auto_align=\" + auto_align + \"&remove_noise=\" + remove_noise + \"&encoding_type=\" + path.extname(inputFile) + \"&doc_type=image\";\r\n\r\naxios({\r\n method: \"post\",\r\n url: URL,\r\n data: formData,\r\n responseType: \"application/json\",\r\n headers: {\r\n ...formData.getHeaders(),\r\n },\r\n})\r\n .then((response) => {\r\n if (response.status != 200) return console.error(\"Error:\", response.status, response.data);\r\n console.log(response.data);\r\n // 🥳 holla extraction success 😎\r\n\r\n // response.data = {\r\n // success:\"true\",\r\n // result:{\r\n // text:\"....\",\r\n // linear_text:\"....\",\r\n // connected_text:\"....\",\r\n // box_text:[[...],[...],[....],[...]], this is used to show highlited text on Image\r\n // }\r\n // b64:\"....\" \"high quality image in base64 format\"\r\n // }\r\n })\r\n .catch((error) => {\r\n return console.error(\"Request failed 😭:\", error);\r\n });\r\n\r\n`;\r\n","import React from \"react\";\r\nimport CustomModal from \"../CustomModal/CustomModal\";\r\nimport { Row, Col, Form, Input, Button, message, Avatar, Upload } from \"antd\";\r\nimport { UserOutlined, CameraFilled } from \"@ant-design/icons\";\r\nimport { UploadOutlined } from \"@ant-design/icons\";\r\nimport { postUpdateUser } from \"../../services/auth\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport actionTypes from \"../../context/actions\";\r\nimport UserAvatar from \"../UserAvatar/UserAvatar\";\r\nimport { msgModal } from \"../utils/utils\";\r\n\r\nconst UserAccountEdit = ({ isUserEditModal, closeModal, user }) => {\r\n const [{ user_info, userAvatar }, dispatch] = useGlobalState();\r\n\r\n const [updateUser, setUpdateUser] = React.useState({\r\n viewAvatar: null,\r\n updatePic: null,\r\n });\r\n const [loading, setLoading] = React.useState(false);\r\n const [form] = Form.useForm();\r\n\r\n const onUpdateUserInfo = (u) => {\r\n form\r\n .validateFields()\r\n .then((r) => {\r\n setLoading(true);\r\n postUpdateUser(\r\n updateUser.viewAvatar,\r\n u.name,\r\n u.email,\r\n u.phone,\r\n user.user_id,\r\n (r) => {\r\n setLoading(false);\r\n closeModal();\r\n message.success(`Profile Updated`);\r\n dispatch({ type: actionTypes.REFRESH, payload: {} });\r\n },\r\n (err) => {\r\n setLoading(false);\r\n closeModal();\r\n msgModal(\"info\", err, \"Info\");\r\n }\r\n );\r\n })\r\n .catch((e) => {\r\n closeModal();\r\n msgModal(\"info\", \"Validate Error on Update User\", \"Info\");\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n if (userAvatar !== null) {\r\n setUpdateUser((prv) => ({ ...prv, viewAvatar: userAvatar }));\r\n } else {\r\n setUpdateUser((prv) => ({ ...prv, viewAvatar: null }));\r\n }\r\n }, [userAvatar]);\r\n\r\n const props = {\r\n name: \"file\",\r\n multiple: false,\r\n accept: \".jpeg,.jpg,.png\",\r\n beforeUpload: (file) => {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = (e) => {\r\n setUpdateUser({ ...updateUser, viewAvatar: reader.result, updatePic: file });\r\n };\r\n return false;\r\n },\r\n };\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n {updateUser.viewAvatar ? (\r\n } src={updateUser.viewAvatar} />\r\n ) : (\r\n \r\n {user_info?.name[0].toUpperCase()}{\" \"}\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

Update Account Details

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default UserAccountEdit;\r\n","import React, { useEffect } from \"react\";\r\nimport \"./UserAccount.scss\";\r\nimport { Row, Col, Divider, Tabs, Avatar, Space, Input, Table, Tag, Button, message, List, Tooltip } from \"antd\";\r\nimport { EyeOutlined, SearchOutlined, GlobalOutlined, DownloadOutlined, RightOutlined, LeftOutlined } from \"@ant-design/icons\";\r\nimport { getAllProcessFile, deleteProcessFile } from \"../../services/uploadProcessService\";\r\nimport { downloadTextFile, getImageDimensions, getLocalStorage } from \"../utils/utils\";\r\nimport CustomModal from \"../CustomModal/CustomModal\";\r\nimport OverlayCanvas from \"../OverlayCanvas/OverlayCanvas\";\r\nimport Highlighter from \"react-highlight-words\";\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport moment from \"moment\";\r\nimport { Logout } from \"../../services/auth\";\r\n\r\nconst { TabPane } = Tabs;\r\nconst { Column } = Table;\r\n\r\nconst ConversionHistTab = () => {\r\n const [imgDimension, setImgDimension] = React.useState(null);\r\n const [pageNumber, setPageNumber] = React.useState(1);\r\n const [viewImgs, setViewImgs] = React.useState([]);\r\n\r\n const [overlayImgModal, setOverlayModal] = React.useState({\r\n base64Img: null,\r\n box_text: null,\r\n isOpen: false,\r\n });\r\n const [globalState, dispatch] = useGlobalState();\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const [selectedRowkey, setSelectedRowKey] = React.useState([]);\r\n const [processFiles, setAllProcessFiles] = React.useState([]);\r\n\r\n const [filePerPage, setFilePerPage] = React.useState(10);\r\n const [currentPage, setCurrentPage] = React.useState(1);\r\n const [totalFiles, setTotalFiles] = React.useState(0);\r\n const [totalPages, setTotalPages] = React.useState(0);\r\n\r\n const [searchParam, setSearchParam] = React.useState({\r\n searchText: \"\",\r\n searchedColumn: \"\",\r\n });\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n if (getLocalStorage(\"jwt\")) {\r\n const decodeUser = jwt_decode(getLocalStorage(\"jwt\"));\r\n getAllProcessFile(\r\n currentPage,\r\n filePerPage,\r\n decodeUser._id,\r\n (r) => {\r\n setAllProcessFiles(r.files);\r\n setTotalFiles(r.totalFiles);\r\n setTotalPages(r.totalPages);\r\n setLoading(false);\r\n },\r\n (err) => {\r\n setLoading(false);\r\n }\r\n );\r\n } else {\r\n Logout(\r\n () => {},\r\n () => {}\r\n );\r\n }\r\n }, [refresh, currentPage, filePerPage]);\r\n\r\n const onDeleteUploadFile = () => {\r\n selectedRowkey.map((serial_id, i) => {\r\n deleteProcessFile(\r\n globalState.user_info?.user_id,\r\n serial_id,\r\n (r) => {\r\n message.success(r);\r\n setSelectedRowKey([]);\r\n },\r\n (err) => {\r\n message.error(err);\r\n }\r\n );\r\n });\r\n setRefresh(!refresh);\r\n };\r\n const onClickViewImg = async (file) => {\r\n setViewImgs(file.extractionResult);\r\n setOverlayModal({ isOpen: true });\r\n // const dimension = await getImageDimensions(`data:image/jpeg;base64,${base64String}`);\r\n // setImgDimension(dimension);\r\n };\r\n\r\n const closeModal = () => {\r\n setOverlayModal({ base64Img: null, isOpen: false, box_text: null });\r\n };\r\n\r\n const handleSearch = (selectedKeys, confirm, dataIndex) => {\r\n confirm();\r\n setSearchParam({\r\n searchText: selectedKeys[0],\r\n searchedColumn: dataIndex,\r\n });\r\n };\r\n\r\n const handleReset = (clearFilters) => {\r\n clearFilters();\r\n setSearchParam({ searchText: \"\" });\r\n };\r\n\r\n const getColumnSearchProps = (dataIndex) => ({\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => handleSearch(selectedKeys, confirm, dataIndex)}\r\n style={{ marginBottom: 8, display: \"block\" }}\r\n />\r\n \r\n handleSearch(selectedKeys, confirm, dataIndex)}\r\n icon={}\r\n size='small'\r\n style={{ width: 90 }}>\r\n Search\r\n \r\n \r\n \r\n
\r\n ),\r\n filterIcon: (filtered) => ,\r\n onFilter: (value, record) => (record[dataIndex] ? record[dataIndex].toString().toLowerCase().includes(value.toLowerCase()) : \"\"),\r\n render: (text) =>\r\n searchParam.searchedColumn === dataIndex ? (\r\n \r\n ) : (\r\n text\r\n ),\r\n });\r\n\r\n const showTotalPerPage = (pageNo, perPage) => {\r\n setCurrentPage(pageNo);\r\n setFilePerPage(perPage);\r\n };\r\n\r\n const makeFileToDown = async (file) => {\r\n return new Promise(async (resolved, reject) => {\r\n let text = \"\";\r\n let allPromise = file.extractionResult.map(async (imgResult, i) => {\r\n text = text + \"\\n\\n\" + `Page ${imgResult?.pageNo}\\n\\n` + imgResult.result.text;\r\n });\r\n\r\n await Promise.all(allPromise).then((res) => {\r\n resolved(text);\r\n });\r\n });\r\n };\r\n\r\n const onClickFileDownload = async (file) => {\r\n const allText = await makeFileToDown(file);\r\n downloadTextFile(file.name, \"png\", allText, allText);\r\n };\r\n\r\n const incPage = () => {\r\n if (pageNumber < viewImgs.length + 1) {\r\n setPageNumber(pageNumber + 1);\r\n }\r\n };\r\n const decPage = () => {\r\n if (pageNumber > 0) {\r\n setPageNumber(pageNumber - 1);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
Total files: {totalFiles}
\r\n \r\n \r\n
Total Pages: {totalPages}
\r\n \r\n
\r\n
\r\n (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n {file.name}}\r\n description={\r\n
\r\n {moment(file.updatedAt).format(\"MMM D, YYYY h:mm A \")} |{\" \"}\r\n \r\n Pages {file.noOf_pages}\r\n \r\n
\r\n }\r\n />\r\n \r\n )}\r\n />\r\n
\r\n
\r\n f.serial_id}\r\n scroll={{ y: 550, x: 600 }}\r\n pagination={{\r\n pageSize: filePerPage,\r\n current: currentPage,\r\n total: totalFiles,\r\n size: \"small\",\r\n showSizeChanger: true,\r\n pageSizeOptions: [10, 20, 40, 60, 100],\r\n onChange: showTotalPerPage,\r\n }}\r\n className='conversion-history-table'>\r\n f.name.includes(value)}\r\n dataIndex='name'\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n a.updatedAt - b.updatedAt}\r\n render={(f) =>
{moment(f.updatedAt).format(\"MMM D, YYYY h:mm A \")}
}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n a.noOf_pages - b.noOf_pages}\r\n align='right'\r\n render={(f) =>
{f.noOf_pages}
}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {viewImgs?.length > 0 && (\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ConversionHistTab;\r\n","import { getLocalStorage } from \"../component/utils/utils\";\r\nimport { main_api_instance } from \"./webapi\";\r\nconst webApi = main_api_instance;\r\n\r\nexport const getAllUsers = async (onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.get(`/user/get-all-users`, {\r\n headers: {\r\n Authorization: `${getLocalStorage(\"jwt\")}`,\r\n },\r\n });\r\n if (res.status === 200 && res.data.success) {\r\n return onSuccess(res.data?.users);\r\n } else {\r\n onFailure(res.data.msg);\r\n }\r\n } catch (err) {\r\n onFailure(\"Something wents wrong User not found\");\r\n }\r\n};\r\n\r\nexport const onAdminUpdateUser = async (userInfo, onSuccess, onFailure) => {\r\n try {\r\n const res = await webApi.post(\"/user/admin-update-user\", userInfo);\r\n if ((res.status === 200, res.data.success)) {\r\n onSuccess(res.data);\r\n }\r\n } catch (err) {\r\n onFailure(\"Something wrong User not updated\");\r\n }\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport \"./UserAccount.scss\";\r\nimport { Row, Col, Tabs, Space, Table, Tag, Button, message, Input, Form, Switch, Select, List, Badge, Tooltip } from \"antd\";\r\nimport { SearchOutlined, EditOutlined } from \"@ant-design/icons\";\r\n\r\nimport { msgModal } from \"../utils/utils\";\r\nimport Highlighter from \"react-highlight-words\";\r\nimport CustomModal from \"../CustomModal/CustomModal\";\r\n\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport moment from \"moment\";\r\nimport { getAllUsers, onAdminUpdateUser } from \"../../services/adminService\";\r\n\r\nconst { TabPane } = Tabs;\r\nconst { Column } = Table;\r\nconst { Option } = Select;\r\n\r\nconst RoleTag = (role) => {\r\n let view = <>;\r\n if (role === \"admin\") {\r\n view = (\r\n \r\n {role}\r\n \r\n );\r\n } else {\r\n view =
;\r\n }\r\n\r\n return view;\r\n};\r\n\r\nconst AdminControler = ({ selectedTab }) => {\r\n const [form] = Form.useForm();\r\n const [globalState, dispatch] = useGlobalState();\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const [isEditModal, setEditModal] = React.useState(false);\r\n const [selectedUser, setSelectedUser] = React.useState(null);\r\n const [searchParam, setSearchParam] = React.useState({\r\n searchText: \"\",\r\n searchedColumn: \"\",\r\n });\r\n const [users, setAllUsers] = React.useState([]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n getAllUsers(\r\n (r) => {\r\n setAllUsers(r);\r\n setLoading(false);\r\n },\r\n (err) => {\r\n msgModal(\"error\", err, \"Error\");\r\n setLoading(false);\r\n }\r\n );\r\n }, [refresh, selectedTab]);\r\n\r\n const handleSearch = (selectedKeys, confirm, dataIndex) => {\r\n confirm();\r\n setSearchParam({\r\n searchText: selectedKeys[0],\r\n searchedColumn: dataIndex,\r\n });\r\n };\r\n\r\n const handleReset = (clearFilters) => {\r\n clearFilters();\r\n setSearchParam({ searchText: \"\" });\r\n };\r\n\r\n const getColumnSearchProps = (dataIndex) => ({\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => handleSearch(selectedKeys, confirm, dataIndex)}\r\n style={{ marginBottom: 8, display: \"block\" }}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n ),\r\n filterIcon: (filtered) => ,\r\n onFilter: (value, record) => (record[dataIndex] ? record[dataIndex].toString().toLowerCase().includes(value.toLowerCase()) : \"\"),\r\n render: (text) =>\r\n searchParam.searchedColumn === dataIndex ? (\r\n \r\n ) : (\r\n text\r\n ),\r\n });\r\n\r\n const editUserByAdmin = (u) => {\r\n setSelectedUser(u);\r\n form.setFieldsValue({ leftCredit: u.leftCredit, totalCredit: u.totalCredit, role: u.role, status: u.isActive });\r\n setEditModal(true);\r\n };\r\n\r\n const closeModal = () => {\r\n setSelectedUser(null);\r\n setEditModal(false);\r\n };\r\n\r\n const onUpdateUserInfo = (userInfo) => {\r\n onAdminUpdateUser(\r\n { ...userInfo, user_id: selectedUser._id, isActive: selectedUser?.isActive },\r\n (r) => {\r\n setSelectedUser(null);\r\n message.success(r.msg);\r\n setRefresh(!refresh);\r\n setEditModal(false);\r\n },\r\n (err) => {\r\n message.error(err);\r\n setEditModal(false);\r\n // msgModal(\"error\", \"User Can't update\", \"Error\");\r\n }\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n

Total Users : {users.length}

\r\n \r\n \r\n
\r\n\r\n
\r\n (\r\n \r\n {user.role === \"admin\" ? (\r\n \r\n {user.role}\r\n \r\n ) : (\r\n {user.role}\r\n )}\r\n \r\n \r\n }>\r\n \r\n
{user.username}
\r\n
\r\n {user.isActive ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n }\r\n description={\r\n \r\n
{user.email}
\r\n
\r\n {moment(user.createdAt).format(\"MMM D, YYYY \")} |{\" \"}\r\n \r\n {user.leftCredit}/{user.totalCredit} Credits\r\n \r\n
\r\n
\r\n }\r\n />\r\n \r\n )}\r\n />\r\n
\r\n
\r\n f._id}\r\n pagination={{ pageSize: 8, total: users.length, size: \"small\", showSizeChanger: true, pageSizeOptions: [10, 20, 60, 100] }}\r\n loading={loading}\r\n className='conversion-history-table'>\r\n a.username.length - b.username.length}\r\n title='Username'\r\n dataIndex='username'\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n a.email.length - b.email.length} title='Email' dataIndex='email' key='id' className='table-cell-light' />\r\n a.createdAt - b.createdAt}\r\n render={(f) =>
{moment(f.createdAt).format(\"MMM D, YYYY\")}
}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n f.role.includes(value)}\r\n align='left'\r\n render={(f) => {\r\n if (f.role === \"admin\") {\r\n return (\r\n
\r\n {f.role}\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n {f.role}\r\n
\r\n );\r\n }\r\n }}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n a.leftCredit - b.leftCredit}\r\n render={(f) => (\r\n
\r\n {f.leftCredit}/{f.totalCredit}\r\n
\r\n )}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n {/* a.leftCredit - b.leftCredit} render={(f) =>
{f.leftCredit}
} key='id' className='table-cell-light' /> */}\r\n
{f.isActive ? Active : Deactive}
}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n\r\n {\r\n return (\r\n \r\n );\r\n }}\r\n key='id'\r\n className='table-cell-light'\r\n />\r\n \r\n
\r\n\r\n \r\n
\r\n

\r\n {selectedUser?.username}\r\n

\r\n

{selectedUser?.email}

\r\n
\r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue(\"totalCredit\") >= value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error(\"Left Credit not more than Total Credit\"));\r\n },\r\n }),\r\n ]}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Active Status

\r\n \r\n {selectedUser && setSelectedUser({ ...selectedUser, isActive: checked })} />}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AdminControler;\r\n","import React from \"react\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport { EyeInvisibleOutlined, EyeTwoTone, UndoOutlined } from \"@ant-design/icons\";\r\nimport { Alert, Space, Input, Button, message } from \"antd\";\r\nimport { generateAPIKey, getAPIKeyByUserId } from \"../../services/generateApiKey\";\r\nimport { isAuthenticated } from \"../../services/auth\";\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nconst APIkey = () => {\r\n const isAuth = isAuthenticated();\r\n const [APIKey, setAPIKey] = React.useState(null);\r\n const [loading, setLoading] = React.useState(false);\r\n const [{ user_info }, dispatch] = useGlobalState();\r\n\r\n const newAPIKey = () => {\r\n if (isAuth) {\r\n setLoading(true);\r\n const decodeUser = jwt_decode(isAuth);\r\n generateAPIKey(\r\n decodeUser._id,\r\n (r) => {\r\n setLoading(false);\r\n message.success(r.msg);\r\n setAPIKey(r.apiKey);\r\n },\r\n (err) => {\r\n setLoading(false);\r\n message.error(err);\r\n }\r\n );\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (isAuth) {\r\n const decodeUser = jwt_decode(isAuth);\r\n getAPIKeyByUserId(\r\n decodeUser._id,\r\n (r) => {\r\n setAPIKey(r.apiKey);\r\n },\r\n () => {}\r\n );\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n
API Key:
\r\n {APIKey ? (\r\n <>\r\n (visible ? : )} />\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default APIkey;\r\n","import React from \"react\";\r\nimport \"./UserAccount.scss\";\r\nimport { Row, Col, Divider, Tabs, Table } from \"antd\";\r\nimport UserAccountEdit from \"./UserAccountEdit\";\r\nimport ConversionHistTab from \"./ConversionHistTab\";\r\nimport AdminControler from \"./AdminControler\";\r\nimport { EditOutlined } from \"@ant-design/icons\";\r\nimport { useGlobalState } from \"../../context/context\";\r\nimport UserAvatar from \"../UserAvatar/UserAvatar\";\r\nimport { Link } from \"react-router-dom\";\r\nimport APIkey from \"./APIkey\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nconst { TabPane } = Tabs;\r\nconst { Column } = Table;\r\n\r\nconst UserAccount = () => {\r\n const location = useLocation();\r\n const [isUserEditModal, setUserEditModal] = React.useState(false);\r\n const [{ user_info }, dispatch] = useGlobalState();\r\n const [selectedTab, setSeletedTab] = React.useState(location.state.id ?? \"3\");\r\n\r\n const closeModal = () => {\r\n setUserEditModal(false);\r\n };\r\n const openUserEditModal = () => {\r\n setUserEditModal(true);\r\n };\r\n\r\n const onTabChange = (key) => {\r\n setSeletedTab(key);\r\n };\r\n\r\n return (\r\n
\r\n

My Account

\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
{user_info?.name}
\r\n {user_info?.name && (\r\n
\r\n {user_info?.role === \"user\" && (\r\n <>\r\n c {user_info?.leftCredit} of {user_info?.totalCredit} Credit Left\r\n \r\n )}\r\n {user_info?.role === \"admin\" && (\r\n <>\r\n c {user_info?.leftCredit} Credit\r\n \r\n )}\r\n
\r\n )}\r\n {/* temprory closed\r\n Upgrade Plan\r\n */}\r\n
\r\n
\r\n
\r\n
Details
\r\n
\r\n \r\n Edit\r\n
\r\n
\r\n \r\n
\r\n
Account Details
\r\n
{user_info?.name}
\r\n
{user_info?.email}
\r\n {user_info?.phone &&
Phone : {user_info?.phone}
}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {user_info?.role === \"admin\" && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {user_info !== null && }\r\n
\r\n );\r\n};\r\n\r\nexport default UserAccount;\r\n","import React from \"react\";\r\nimport UserAccount from \"../../component/UserAccount/UserAccount\";\r\nimport Layout from \"../../component/Layout/Layout\";\r\nimport LogedInFaqs from \"../../services/pageContent/logedInFaqs.json\";\r\nimport { useGlobalState, useOCRState } from \"../../context/context\";\r\n\r\nconst UserAccountPage = () => {\r\n const [{ user_info, lang }, dispatch] = useGlobalState();\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserAccountPage;\r\n","import { useEffect } from \"react\";\r\nimport { BrowserRouter as Router, Switch, Route, Link } from \"react-router-dom\";\r\n\r\nimport { LoadingOutlined } from \"@ant-design/icons\";\r\nimport { Spin } from \"antd\";\r\n\r\nimport PrivateRoute from \"./privateRoute\";\r\nimport actionTypes from \"../context/actions\";\r\nimport { useGlobalState } from \"../context/context\";\r\nimport { detectExtension, getLocalStorage, msgModal } from \"../component/utils/utils\";\r\n\r\nimport LandingPage from \"../Page/LandingPage/LandingPage\";\r\nimport FreeOCR from \"../Page/FreeOCR/FreeOCR\";\r\nimport PaidOCR from \"../Page/PaidOCR/PaidOCR\";\r\nimport PasswordRestPage from \"../Page/PasswordResetPage/PasswordResetPage\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport AOS from \"aos\";\r\nimport \"aos/dist/aos.css\"; // You can also use for styles\r\nimport { getUserAvatarById, getUserById } from \"../services/auth\";\r\nimport PageNotFound from \"../Page/PageNotFound/PageNotFound\";\r\nimport Pricing from \"../Page/Pricing/Pricing\";\r\nimport HowToUse from \"../Page/HowToUse/HowToUse\";\r\nimport PrivacyPolicy from \"../Page/PrivacyPolicy/PrivacyPolicy\";\r\nimport TermsOfService from \"../Page/TermsOfServic/TermsOfService\";\r\nimport UpgradePlan from \"../Page/UpgradePlan/UpgradePlan\";\r\nimport ToolsAndApi from \"../Page/ToolsAndApi/ToolsAndApi\";\r\nimport UserAccount from \"../Page/UserAccount/UserAccount\";\r\nimport chromeInstallBanner from \"../component/ChromeExtBanner/ChromeExtBanner\";\r\nimport { extensionId } from \"../services/webapi\";\r\n\r\nconst MyRoutes = () => {\r\n const [globalState, dispatch] = useGlobalState();\r\n\r\n useEffect(() => {\r\n AOS.init({\r\n duration: 600, // values from 0 to 3000, with step 50ms\r\n easing: \"ease\", // default easing for AOS animations\r\n once: true, // whether animation should happen only once - while scrolling down\r\n mirror: false, // whether elements should animate out while scrolling past them\r\n anchorPlacement: \"\",\r\n });\r\n let id;\r\n // detectExtension(extensionId, (isDownload) => {\r\n // console.log(isDownload);\r\n // if (!isDownload) {\r\n // id = setTimeout(() => {\r\n // chromeInstallBanner();\r\n // }, 1000);\r\n // }\r\n // });\r\n // return () => clearTimeout(id);\r\n\r\n if (getLocalStorage(\"lang\")) {\r\n dispatch({ type: actionTypes.LANG, payload: getLocalStorage(\"lang\") });\r\n } else {\r\n dispatch({ type: actionTypes.LANG, payload: \"English\" });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (getLocalStorage(\"jwt\")) {\r\n const decodeUser = jwt_decode(getLocalStorage(\"jwt\"));\r\n getUserById(\r\n decodeUser._id,\r\n (r) => {\r\n dispatch({ type: actionTypes.SET_USER, payload: r });\r\n },\r\n (err) => {\r\n msgModal(\"info\", \"Something wents wrong! Please try again later\", \"Info\");\r\n }\r\n );\r\n\r\n getUserAvatarById(\r\n decodeUser._id,\r\n (res) => {\r\n if (res !== null) {\r\n const base64String = btoa(\r\n new Uint8Array(res.data).reduce(function (data, byte) {\r\n return data + String.fromCharCode(byte);\r\n }, \"\")\r\n );\r\n dispatch({ type: actionTypes.USER_AVATAR, payload: `data:image/jpeg;base64,${base64String}` });\r\n } else {\r\n dispatch({ type: actionTypes.USER_AVATAR, payload: null });\r\n }\r\n },\r\n (err) => {\r\n msgModal(\"error\", err, \"Error\");\r\n }\r\n );\r\n }\r\n }, [getLocalStorage(\"jwt\"), globalState.refresh]);\r\n\r\n // check your online and offline\r\n window.addEventListener(\"online\", function () {\r\n dispatch({ type: actionTypes.IS_OFFLINE, payload: false });\r\n });\r\n window.addEventListener(\"offline\", function () {\r\n dispatch({ type: actionTypes.IS_OFFLINE, payload: true });\r\n });\r\n\r\n return (\r\n \r\n } style={{ maxHeight: \"600px\" }}>\r\n \r\n \r\n \r\n {/* \r\n temprory closed*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MyRoutes;\r\n","export default __webpack_public_path__ + \"static/media/chromelogo.fe74ad5a.png\";","import actionTypes from \"./actions\";\r\n\r\nexport const initialState = {\r\n user_info: null,\r\n loading: false,\r\n isOffline: false,\r\n refresh: false,\r\n userAvatar: null,\r\n isProcessing: false,\r\n lang: \"English\",\r\n message: {\r\n msgType: \"\",\r\n msg: \"\",\r\n },\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_USER:\r\n return {\r\n ...state,\r\n user_info: { ...action.payload },\r\n };\r\n case actionTypes.LOADING:\r\n return {\r\n ...state,\r\n loading: !state.loading,\r\n };\r\n case actionTypes.IS_OFFLINE:\r\n return {\r\n ...state,\r\n isOffline: action.payload,\r\n };\r\n case actionTypes.REFRESH:\r\n return {\r\n ...state,\r\n refresh: !state.refresh,\r\n };\r\n case actionTypes.IS_PROCESSING:\r\n return {\r\n ...state,\r\n isProcessing: action.payload,\r\n };\r\n case actionTypes.LANG:\r\n return {\r\n ...state,\r\n lang: action.payload,\r\n };\r\n case actionTypes.USER_AVATAR:\r\n return {\r\n ...state,\r\n userAvatar: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import actionTypes from \"./actions\";\r\nimport { message } from \"antd\";\r\n\r\nexport const ocrIniState = {\r\n filesToProccess: [],\r\n correctOrient: false,\r\n enhanceImgQlty: false,\r\n removeNoise: false,\r\n fileFormat: \"txt\",\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case actionTypes.FILES_TO_PROCESS_PAID:\r\n return {\r\n ...state,\r\n filesToProccess: [...state.filesToProccess, action.payload],\r\n };\r\n case actionTypes.FILES_TO_PROCESS_FREE:\r\n return {\r\n ...state,\r\n filesToProccess: [action.payload],\r\n };\r\n case actionTypes.OCR_CLEAR_STATE:\r\n return {\r\n ...state,\r\n correctOrient: false,\r\n enhanceImgQlty: false,\r\n removeNoise: false,\r\n fileFormat: \"txt\",\r\n filesToProccess: [],\r\n };\r\n case actionTypes.PROCESS_MODE:\r\n const updatedFileToPro = state.filesToProccess.map((f) => {\r\n if (f.uid === action.payload.uid) {\r\n return {\r\n ...f,\r\n [action.payload.name]: action.payload.value,\r\n isProcessed: false,\r\n };\r\n }\r\n return f;\r\n });\r\n const allCheck = updatedFileToPro.find((f) => f[action.payload.name] === false);\r\n\r\n if (!action.payload.value) {\r\n return {\r\n ...state,\r\n filesToProccess: updatedFileToPro,\r\n [action.payload.name]: false,\r\n };\r\n } else if (allCheck === undefined) {\r\n return {\r\n ...state,\r\n filesToProccess: updatedFileToPro,\r\n [action.payload.name]: true,\r\n };\r\n } else {\r\n return {\r\n ...state,\r\n filesToProccess: updatedFileToPro,\r\n };\r\n }\r\n\r\n case actionTypes.FILE_STATUS:\r\n const updateStatus = state.filesToProccess.map((f) => {\r\n if (f.uid === action.payload.uid) {\r\n return {\r\n ...f,\r\n status: action.payload.status,\r\n };\r\n } else {\r\n return f;\r\n }\r\n });\r\n return {\r\n ...state,\r\n filesToProccess: updateStatus,\r\n };\r\n case actionTypes.DOWN_PER:\r\n const updateDonnPer = state.filesToProccess.map((f) => {\r\n if (f.uid === action.payload.uid) {\r\n return {\r\n ...f,\r\n downPer: action.payload.downPer,\r\n };\r\n }\r\n return f;\r\n });\r\n return {\r\n ...state,\r\n filesToProccess: updateDonnPer,\r\n };\r\n case actionTypes.DELETE_UPLOAD_FILE:\r\n const updateDelete = state.filesToProccess.filter((f) => f.uid !== action.payload);\r\n return {\r\n ...state,\r\n filesToProccess: updateDelete,\r\n };\r\n case actionTypes.SET_EXTRACT_RESULT:\r\n const updateResult = state.filesToProccess.map((f) => {\r\n if (f.uid === action.payload.uid) {\r\n return {\r\n ...f,\r\n isSuccess: action.payload.isSuccess,\r\n extractionResult: action.payload.extractionResult,\r\n isErrMsg: action.payload.isErrMsg,\r\n isError: action.payload.isError,\r\n resTime: action.payload.resTime,\r\n size: action.payload.size ?? f.size,\r\n status: action.payload.status,\r\n isProcessed: action.payload.isProcessed,\r\n };\r\n }\r\n return f;\r\n });\r\n return {\r\n ...state,\r\n filesToProccess: updateResult,\r\n };\r\n case actionTypes.OCR_REFRESH:\r\n const refreshResult = state.filesToProccess.map((f) => {\r\n return {\r\n ...f,\r\n isSuccess: false,\r\n extractionResult: null,\r\n isErrMsg: \"\",\r\n isError: false,\r\n resTime: null,\r\n };\r\n });\r\n return {\r\n ...state,\r\n filesToProccess: refreshResult,\r\n };\r\n\r\n case actionTypes.SET_FILE_FORMAT:\r\n let updatedFILEFORMAT = state.filesToProccess.map((f) => {\r\n if (f.uid === action.payload.uid) {\r\n return {\r\n ...f,\r\n fileFormat: action.payload.format,\r\n isProcessed: false,\r\n };\r\n }\r\n return f;\r\n });\r\n const allSameFormat = updatedFILEFORMAT.find((f) => f.fileFormat !== action.payload.format);\r\n return {\r\n ...state,\r\n filesToProccess: updatedFILEFORMAT,\r\n fileFormat: allSameFormat === undefined ? action.payload.format : \"\",\r\n };\r\n case actionTypes.SET_ALL_FILEFORMAT:\r\n const allFileFormat = state.filesToProccess.map((f) => {\r\n return {\r\n ...f,\r\n fileFormat: action.payload,\r\n isProcessed: false,\r\n };\r\n });\r\n return {\r\n ...state,\r\n filesToProccess: allFileFormat,\r\n fileFormat: action.payload,\r\n };\r\n case actionTypes.ALL_PROCESS_MODE:\r\n const allModeUpdate = state.filesToProccess.map((f) => {\r\n return {\r\n ...f,\r\n [action.payload.name]: action.payload.value,\r\n isProcessed: false,\r\n };\r\n });\r\n\r\n return {\r\n ...state,\r\n filesToProccess: allModeUpdate,\r\n [action.payload.name]: action.payload.value,\r\n };\r\n case actionTypes.SELECT_PAGES:\r\n const file = action.payload.file;\r\n const value = action.payload.value;\r\n const updateSelectPage = state.filesToProccess.map((f) => {\r\n if (f.uid === file.uid) {\r\n let pageNo = value;\r\n // console.log(pageNo);\r\n if (pageNo.length === 1) {\r\n if (pageNo <= file.pages) {\r\n return {\r\n ...f,\r\n selectedPdfPage: pageNo,\r\n isProcessed: false,\r\n };\r\n } else {\r\n message.error(\"Please enter correct no of page\");\r\n return { ...f };\r\n }\r\n } else if (pageNo.length > 1 && pageNo.includes(\"-\")) {\r\n let splitNo = pageNo.split(\"-\");\r\n if (splitNo[1] <= file.pages && splitNo[0] < file.pages) {\r\n return { ...f, selectedPdfPage: pageNo, isProcessed: false };\r\n } else {\r\n message.error(\"Please enter correct no of page\");\r\n return { ...f };\r\n }\r\n } else if (pageNo.length > 1 && pageNo.includes(\",\")) {\r\n let splitNo = pageNo.split(\",\");\r\n let checkNo;\r\n splitNo.map((n, i) => {\r\n if (Number(n) <= file.pages) {\r\n checkNo = { ...f, selectedPdfPage: pageNo, isProcessed: false };\r\n } else {\r\n message.error(\"Please enter correct no of page\");\r\n checkNo = { ...f };\r\n }\r\n });\r\n return { ...checkNo };\r\n } else if (pageNo.length > 1) {\r\n if (pageNo <= file.pages) {\r\n return {\r\n ...f,\r\n selectedPdfPage: pageNo,\r\n isProcessed: false,\r\n };\r\n } else {\r\n message.error(\"Please enter correct no of page\");\r\n return { ...f };\r\n }\r\n } else {\r\n return { ...f, selectedPdfPage: pageNo, isProcessed: false };\r\n }\r\n } else {\r\n return f;\r\n }\r\n });\r\n return {\r\n ...state,\r\n filesToProccess: updateSelectPage,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport \"./index.css\";\r\nimport Routes from \"./route\";\r\n\r\n// context import\r\nimport { GlobalProvider, OCRProvider } from \"./context/context\";\r\nimport reducer, { initialState } from \"./context/reducer\";\r\nimport ocrReducer, { ocrIniState } from \"./context/ocrReducer\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n"],"sourceRoot":""}