{"version":3,"sources":["icons/Menu.tsx","__fakeApi__/chatApi.ts","hooks/useAuthProvider.ts","contexts/useAuthProvider .tsx","UIS_services/AuthenticationService/authService.ts","hooks/useSettings.ts","icons/ChevronRight.tsx","icons/ChevronDown.tsx","icons/User.tsx","icons/ArrowLeft.tsx","icons/Adjustments.tsx","hooks/useAvatar.ts","icons/APlus.tsx","icons/Balance.tsx","icons/Cash.tsx","icons/ChartPie.tsx","icons/ChartSquareBar.tsx","icons/CheckList.tsx","icons/Clipboard.tsx","icons/Collection.tsx","icons/Comment.tsx","icons/DeviceTablet.tsx","icons/DocumentAdd.tsx","icons/Dot.tsx","icons/FingerPrint.tsx","icons/MailOpen.tsx","icons/Marks.tsx","icons/PaymentFee.tsx","icons/ShoppingBag.tsx","icons/Star.tsx","icons/UserCircle.tsx","icons/Website.tsx","icons/Fax.tsx","contexts/SettingsContext.tsx","UIS_services/AuthenticationService/menuService.ts","contexts/AvatarContext.tsx","utils/jwt.ts","__fakeApi__/authApi.ts","contexts/JWTContext.tsx","components/authentication/login/LoginAmplify.tsx","components/authentication/login/LoginAuth0.tsx","components/authentication/login/LoginFirebase.tsx","components/authentication/login/LoginJWT.tsx","UIS_containers/pages/Authenticate/Login.tsx","utils/wait.ts","utils/deepCopy.ts","lib/gtm.ts","components/Scrollbar.tsx","UIS_services/StudentService/studentService.ts","icons/ArrowRight.tsx","icons/DotsHorizontal.tsx","icons/Download.tsx","icons/Search.tsx","contexts/LoadingContext.tsx","store/rootReducer.ts","store/index.ts","icons/PencilAlt.tsx","icons/Duplicate.tsx","icons/Trash.tsx","icons/X.tsx","icons/Archive.tsx","icons/DocumentText.tsx","icons/Moon.tsx","icons/Plus.tsx","icons/Sun.tsx","theme/shadows.ts","theme/index.ts","icons/Mail.tsx","icons/CurrencyDollar.tsx","icons/InformationCircle.tsx","__fakeApi__/kanbanApi.ts","slices/kanban.ts","icons/Check.tsx","icons/Lock.tsx","icons/Users.tsx","icons/Template.tsx","components/blog/BlogNavbar.tsx","icons/ExternalLink.tsx","components/Footer.tsx","components/blog/BlogLayout.tsx","__fakeApi__/mailApi.ts","slices/mail.ts","icons/Ban.tsx","icons/Cog.tsx","icons/Upload.tsx","icons/Briefcase.tsx","icons/ChevronUp.tsx","icons/Clock.tsx","icons/CreditCard.tsx","icons/Eye.tsx","icons/Image.tsx","icons/Share.tsx","icons/UserAdd.tsx","icons/AcademicCap.tsx","icons/ArrowsExpand.tsx","icons/Calendar.tsx","icons/ChatAlt.tsx","icons/ChevronLeft.tsx","icons/ClipboardList.tsx","icons/DotsVertical.tsx","icons/Home.tsx","icons/Refresh.tsx","icons/Bell.tsx","icons/Camera.tsx","icons/CheckCircle.tsx","icons/Exclamation.tsx","icons/ExclamationCircle.tsx","icons/EyeOff.tsx","icons/FolderOpen.tsx","icons/Inbox.tsx","icons/MacBook.tsx","icons/Minus.tsx","icons/Phone.tsx","icons/Save.tsx","icons/Saving.tsx","icons/SchoolHat.tsx","icons/ShoppingCart.tsx","icons/SortAscending.tsx","slices/chat.ts","__fakeApi__/calendarApi.ts","slices/calendar.ts","UIS_services/ResourceService.ts","hooks/useAuth.ts","utils/createResourceId.ts","hooks/useMounted.ts","UIS_services/LanguageService/LanguageService.ts","i18n.ts","components/RTL.tsx","components/SettingsDrawer.tsx","components/SplashScreen.tsx","hooks/useScrollReset.ts","components/AuthGuard.tsx","components/BrowseLayout.tsx","UIS_containers/pages/Authenticate/ChangePassword.tsx","components/dashboard/AccountPopover.tsx","components/dashboard/LanguagePopover.tsx","components/dashboard/DashboardNavbar.tsx","components/NavItem.tsx","components/PSCNavSection.tsx","components/skeleton/Menuskeleton.tsx","components/UEHLogo.tsx","components/dashboard/PSCDashboardSidebar.tsx","UIS_services/GuestService/footerService.ts","components/dashboard/DashboardLayout.tsx","components/docs/DocsNavbar.tsx","components/NavSection.tsx","components/docs/DocsSidebar.tsx","components/docs/DocsLayout.tsx","utils/authorizationRole.tsx","components/GuestGuard.tsx","components/LoadingScreen.tsx","UIS_routers/routes.tsx","App.tsx","index.tsx","constants.ts","config.ts","utils/objFromArray.ts","components/Logo.tsx","icons/CustomIcon.tsx"],"names":["Menu","createSvgIcon","xmlns","viewBox","fill","fillRule","d","clipRule","now","Date","contacts","id","avatar","isActive","lastActivity","getTime","name","username","subHours","subMinutes","subDays","threads","messages","attachments","body","contentType","createdAt","senderId","participants","type","unreadCount","findContactByUsername","find","_contact","findThreadById","threadId","_threadId","chatApi","Promise","resolve","deepCopy","query","reject","foundContacts","cleanQuery","toLowerCase","trim","filter","contact","includes","err","console","error","Error","threadKey","thread","push","participantId","_thread","_participant","recipientIds","user","participantIds","length","foundParticipantIds","Set","forEach","participant","add","size","findThreadByParticipantIds","message","createResourceId","recipientId","adalConfig","instance","tenant","clientId","endpoints","api","redirectUri","window","location","origin","postLogoutRedirectUri","cacheLocation","authContext","AuthenticationContext","withAdalLogin","AuthContext","React","createContext","AuthProviderADFS","children","Provider","value","loginSSO","login","logoutSSO","localStorage","removeItem","replace","logOut","urlEndpoint","authService","GetUser","reSourceService","post","ChangePassword","authen","ResetPassword","AuthenSSO","Modal","useSettings","useContext","SettingsContext","ChevronRight","ChevronDown","User","ArrowLeft","Adjustments","useAvatar","AvatarContext","APlus","Balance","Cash","ChartPie","ChartSquareBar","CheckList","Clipboard","Collection","Comment","DeviceTablet","DocumentAdd","Dot","cx","cy","r","FingerPrint","MailOpen","Marks","PaymentFee","ShoppingBag","Star","UserCircle","WebsiteIcon","Fax","initialSettings","compact","direction","responsiveFontSizes","roundedCorners","theme","THEMES","LIGHT","settings","saveSettings","SettingsProvider","props","useState","setSettings","useEffect","restoredSettings","storedData","getItem","JSON","parse","restoreSettings","updatedSettings","setItem","stringify","storeSettings","Consumer","MENU_SV","Id","TenChucNang","ThuTu","LienKet","DoHoaDeThuong","childMenu","MENU_GV","MENU_AD","menuService","GetMenu","language","get","GetMenuQLGD","AvatarProvider","Setavatar","mounted","useMounted","useAuth","InitalData","useCallback","a","userCurrent","Role","studentService","GetAvatar","data","current","log","JWT_SECRET","JWT_EXPIRES_IN","sign","payload","privateKey","header","expiresIn","encodedHeader","btoa","encodedPayload","signature","Array","from","map","item","key","String","fromCharCode","charCodeAt","join","users","email","password","plan","authApi","wait","fetch","method","headers","apiKey","res","json","then","x","_user","userId","accessToken","token","split","atob","decode","initialState","isAuthenticated","isInitialized","authmenu","handlers","INITIALIZE","state","action","LOGIN","LOGINADFS","LOGOUT","REGISTER","reducer","platform","logout","loginAdfs","register","AuthProvider","useReducer","dispatch","authorizationData","apiMenu","initialize","UserAuth","UserAuthenticate","Token","toast","response","setTimeout","href","me","arr","lstItem","el","title","path","tmp","items","encrypt","CryptoJS","AES","LoginAmplify","navigate","useNavigate","initialValues","submit","validationSchema","Yup","shape","max","required","onSubmit","values","setErrors","setStatus","setSubmitting","success","code","errors","handleBlur","handleChange","handleSubmit","isSubmitting","touched","noValidate","TextField","autoFocus","Boolean","fullWidth","helperText","label","margin","onBlur","onChange","variant","Box","sx","mt","FormHelperText","Button","color","disabled","Alert","severity","LoginAuth0","loginWithPopup","setError","handleLogin","my","display","justifyContent","onClick","LoginFirebase","signInWithEmailAndPassword","signInWithGoogle","handleGoogleClick","backgroundColor","alt","component","src","mr","alignItems","flexGrow","Divider","orientation","Typography","m","LoginJWT","idToken","URLSearchParams","hash","substring","placeholder","autoComplete","width","height","platformIcons","Login","pathLocation","useLocation","gtm","event","Grid","container","md","lg","xs","sm","style","objectFit","flexDirection","minHeight","Container","maxWidth","pt","to","mb","textAlign","gutterBottom","Card","CardContent","p","pathname","target","time","obj","reduce","i","Object","keys","newObj","CONTAINER_ID","initialized","config","this","containerId","document","configure","script","createElement","noscript","innerHTML","head","insertBefore","childNodes","dataLayer","Scrollbar","forwardRef","ref","other","test","navigator","userAgent","overflowX","overflowY","Get","GetStudyPrograms","StudyProgramID","GetAllDecision","GetAllEquivalentcourse","GetYearAndTerm","GetAllExam","namhoc","hocky","GetAllExamByTime","GetAllStudyProgram","GetStudentInfoUpdate","UpdateStudent","Student","ArrowRight","DotsHorizontal","Download","Search","isLoading","isLoadingChild","SHOW","HIDE","LoadingContext","Showloading","Action","Hideloading","LoadingProvider","rootReducer","combineReducers","calendar","calendarReducer","chat","chatReducer","kanban","kanbanReducer","mail","mailReducer","store","configureStore","devTools","process","useSelector","useReduxSelector","useDispatch","useReduxDispatch","PencilAlt","Duplicate","Trash","X","Archive","DocumentText","Moon","Plus","Sun","darkShadows","baseOptions","components","MuiAvatar","styleOverrides","fallback","MuiButton","root","textTransform","MuiCssBaseline","boxSizing","html","MozOsxFontSmoothing","WebkitFontSmoothing","zIndex","MuiCardHeader","defaultProps","titleTypographyProps","MuiLinearProgress","borderRadius","overflow","MuiListItemIcon","minWidth","marginRight","MuiPaper","backgroundImage","typography","button","fontWeight","fontFamily","h1","fontSize","h2","h3","h4","h5","h6","overline","themesOptions","MuiInputBase","input","opacity","palette","active","background","default","pscdefault","paper","tableHeader","contrastText","main","mode","primary","text","pscprimary","secondary","warning","shadows","DARK","MuiTableCell","borderBottom","divider","NATURE","createCustomTheme","themeOptions","warn","createTheme","merge","Mail","CurrencyDollar","InformationCircle","board","cards","checklists","checkItems","comments","cardId","memberId","cover","description","due","addDays","isSubscribed","columnId","memberIds","columns","cardIds","members","kanbanApi","clonedBoard","column","update","_column","assign","card","_card","position","sourceList","_cardId","destinationList","splice","comment","checklist","checklistId","_checklist","checkItem","checkItemId","_checkItem","slice","createSlice","isLoaded","byId","allIds","reducers","getBoard","objFromArray","createColumn","updateColumn","clearColumn","deleteColumn","_listId","createCard","updateCard","moveCard","sourceColumnId","deleteCard","addComment","addChecklist","updateChecklist","deleteChecklist","addCheckItem","updateCheckItem","deleteCheckItem","actions","Check","Lock","Users","Template","BlogNavbar","elevation","RouterLink","underline","mx","ExternalLink","Footer","linkss","linkss2","sectionss","NameSchool","footerdata","SettingName","SettingStringData","Obj","icon","CustomIcon","links","sort","b","Objectnew","Objectnew1","pb","pl","toUpper","spacing","order","section","index","List","disablePadding","link","ListItem","disableGutters","ListItemAvatar","ListItemText","Link","borderColor","alpha","BlogLayoutRoot","experimentalStyled","paddingTop","BlogLayout","labels","totalCount","emails","folder","isImportant","isStarred","isUnread","labelIds","subject","mailApi","systemLabel","customLabel","filteredEmails","_label","emailId","_mail","isSidebarOpen","isComposeOpen","getLabels","getEmails","getEmail","openSidebar","closeSidebar","openCompose","closeCompose","Ban","Cog","Upload","Briefcase","ChevronUp","Clock","CreditCard","Eye","Image","Share","UserAdd","AcademicCap","ArrowsExpand","stroke","strokeLinecap","strokeLinejoin","strokeWidth","Calendar","ChatAlt","ChevronLeft","ClipboardList","DotsVertical","Home","Refresh","Bell","Camera","CheckCircle","Exclamation","ExclamationCircle","EyeOff","FolderOpen","Inbox","MacBook","Minus","Phone","Save","Saving","SchoolHat","ShoppingCart","SortAscending","activeThreadId","recipients","getContacts","getThreads","getThread","markThreadAsSeen","resetActiveThread","getParticipants","addRecipient","recipient","_recipient","removeRecipient","events","allDay","end","setHours","setMinutes","start","startOfDay","endOfDay","calendarApi","clonedEvents","eventId","_event","isModalOpen","selectedEventId","selectedRange","getEvents","createEvent","selectEvent","updateEvent","deleteEvent","selectRange","openModal","closeModal","createData","axios","create","baseURL","apiconfig","interceptors","request","use","common","status","duration","Uint8Array","crypto","getRandomValues","v","toString","padStart","isMounted","useRef","LanguageService","GetResourceLanguage","param","Service","loadResource","element","ComponentID","KeyLanguage","Description","backendOptions","loadPath","options","url","callback","lng","e","i18n","backend","initReactI18next","init","fallbackLng","debug","interpolation","escapeValue","react","useSuspense","bindI18nStore","RTL","dir","createCache","prepend","stylisPlugins","stylisRTLPlugin","getValues","SettingsDrawer","open","setOpen","setValues","field","Tooltip","Fab","bottom","right","Drawer","anchor","onClose","PaperProps","select","SelectProps","native","w","toUpperCase","substr","px","FormControlLabel","control","Switch","checked","edge","SlashScreen","left","top","Logo","useScrollReset","scrollTo","AuthGuard","auth","requestedLocation","setRequestedLocation","Expire","Auth","AuthMenu","decrypt","enc","Utf8","currentlocation","AuthRoutes","startsWith","IsAuthenRouting","BrowseLayout","urlLastSegment","lastIndexOf","isEntry","word","py","startIcon","passwordRecovery","PasswordOld","PassWordNew1","PasswordNew2","oneOf","p1","p2","Message","AccountPopover","anchorRef","openDiaglog","setOpenDiaglog","handleClose","handleLogout","handleLogoutSSO","clear","ButtonBase","Avatar","Popover","anchorEl","anchorOrigin","horizontal","vertical","keepMounted","FullName","MenuItem","ListItemIcon","Authconfig","IsLoginAdfs","Dialog","DialogTitle","DialogContent","languageOptions","vi","LanguagePopover","useTranslation","selectedOption","IconButton","changeLanguage","handleChangeLanguage","DashboardNavbarRoot","AppBar","boxShadow","drawer","DashboardNavbar","lgUp","useMediaQuery","breakpoints","up","onSidebarMobileOpen","headerData","content","className","Toolbar","ml","align","NavItem","depth","info","openProp","paddingLeft","endIcon","prevOpen","pr","Collapse","in","borderLeft","borderImage","borderImageSlice","indexOf","transform","transition","renderPSCNavItems","acc","reduceChildRoutes","exactMatch","matchPath","partialMatch","PSCNavSection","subheader","ListSubheader","disableSticky","lineHeight","Renderskeleton","loading","Skeleton","UEHLogo","CardMedia","PSCDashboardSidebar","onMobileClose","openMobile","menu","setMenu","routerinfo","userstate","setUserState","prev","Username","currentUser","CheckRouterImage","suppressScrollX","cursor","footerService","Getfooterinfor","GetHeaderMenus","ArrayInfo","DashboardLayoutRoot","DashboardLayoutWrapper","flex","DashboardLayoutContainer","DashboardLayoutContent","WebkitOverflowScrolling","DashboardLayout","isSidebarMobileOpen","setIsSidebarMobileOpen","HeaderInfo","setHeaderInfo","GuestService","NewArraydataInfo","LoadHeaderInfo","DocsNavbar","renderNavItems","NavSection","sections","DocsSidebar","DocsLayoutWrapper","DocsLayoutContainer","DocsLayout","Authorization","GuestGuard","LoadingScreen","NProgress","done","Loadable","Component","Browse","lazy","BrowseButtons","BrowseCharts","BrowseColors","BrowseDetailLists","BrowseForms","BrowseGridLists","BrowseGroupedLists","BrowseInputs","BrowseModals","BrowseQuickStats","BrowseTables","BrowseTypography","PasswordRecovery","PasswordReset","Register","VerifyCode","BlogPostCreate","BlogPostDetails","BlogPostList","Account","Analytics","MoreMenu","Chat","CustomerDetails","CustomerEdit","CustomerList","Finance","InvoiceDetails","InvoiceList","Kanban","OrderDetails","OrderList","ProductCreate","ProductList","StudentInfo","StudyProgram","Decision","Equivalentcourse","Exam","BehaviorScoreTotal","AccountFee","Order","KetQuaDangKyHP","MienGiam","Mark","DiemDanhSinhVien","Schedule","Notification","BehaviorScore","GhiDanhTuChon","GhiDanhNgoaiKeHoach","DangKyHocPhan","DangKyVangThi","LeTotNghiep","HocBong","NoiNgoaiTruSV","LienHe","Graduation","DangKyChuyenNganh","ChungChiNgoaiNgu","CongTacXaHoi","BaoHiemYTe","MuonPhong","RegistConfirm","Docs","AuthorizationRequired","NotFound","ServerError","ProjectBrowse","ProjectCreate","ProjectDetails","SocialFeed","SocialProfile","Checkout","Contact","DanhSachPhong","TraCuuTKB","TraCuuTKBGiangVien","TraCuuTKBLopHP","Pricing","SchedulesRegist","SchedulesExam","TongHopGioGiangDay","DiemDanh","CauHinhTrongSo","CoVanHocTap","BaoNghiBaoBu","MuonPhongGV","ThoiKhoaBieuGiangVien","ThongTinCaNhanGiangVien","ThongBaoProfessor","Functions","FunctionList","GroupFunctionRole","FunctionRoleStaff","ThongKeSV","ThongKeNhapHoc","ThongKeNhapHocTheoKhoi","ThongKeNhapHocTheoKhoiNganh","DanhSachGiangVien","TimKiemSV","XemDiemLichHoc","TimPhongTrong","ThongKeNhapHocBieuDo","ThongKeSinhVienBieuDo","ThongKeGiangVienBieuDo","ThongKeBienDongBieuDo","QuanLyNhomTin","QuanLyTinTuc","CapNhatTin","LichPhong","PhongHoc","TraCuuMonHoc","TraCuuChuongTrinhDaoTao","KeHoachDaoTao","DanhSachKyLuat","QuanLyNgonNgu","HeaderMenus","ImportSchedule","QuanLyMauDon","ConfigYearStudyPresent","ConfirmRoomsRegisted","MuonPhongNV","NotificationStaff","routes","App","useRoutes","ThemeProvider","CssBaseline","SplashScreen","ReactDOM","render","StyledEngineProvider","injectFirst","LocalizationProvider","dateAdapter","AdapterDateFns","getElementById","REACT_APP_GTM_CONTAINER_ID","AuthenticateData","GraduateLevel","IsAuth","LoginType","accumulator","LogoRoot","version","y","c_name","rest"],"mappings":"yJAAA,kBAEMA,EAAOC,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,kJACFC,SAAS,cAGb,QAGaP,O,yICZTQ,EAAM,IAAIC,KAEVC,EAAsB,CAC1B,CACEC,GAAI,2BACJC,OAAQ,yDACRC,UAAU,EACVC,aAAcN,EAAIO,UAClBC,KAAM,kBACNC,SAAU,mBAEZ,CACEN,GAAI,2BACJC,OAAQ,qDACRC,UAAU,EACVC,aAAcI,YAASV,EAAK,GAAGO,UAC/BC,KAAM,cACNC,SAAU,eAEZ,CACEN,GAAI,2BACJC,OAAQ,uDACRC,UAAU,EACVC,aAAcK,YAAWX,EAAK,IAAIO,UAClCC,KAAM,gBACNC,SAAU,iBAEZ,CACEN,GAAI,2BACJC,OAAQ,oDACRC,UAAU,EACVC,aAAcN,EAAIO,UAClBC,KAAM,aACNC,SAAU,cAEZ,CACEN,GAAI,2BACJC,OAAQ,sDACRC,UAAU,EACVC,aAAcN,EAAIO,UAClBC,KAAM,eACNC,SAAU,gBAEZ,CACEN,GAAI,2BACJC,OAAQ,sDACRC,UAAU,EACVC,aAAcM,YAAQZ,EAAK,GAAGO,UAC9BC,KAAM,eACNC,SAAU,gBAEZ,CACEN,GAAI,2BACJC,OAAQ,wDACRC,UAAU,EACVC,aAAcI,YAASV,EAAK,GAAGO,UAC/BC,KAAM,iBACNC,SAAU,kBAEZ,CACEN,GAAI,2BACJC,OAAQ,qDACRC,UAAU,EACVC,aAAcN,EAAIO,UAClBC,KAAM,cACNC,SAAU,eAEZ,CACEN,GAAI,2BACJC,OAAQ,4DACRC,UAAU,EACVC,aAAcN,EAAIO,UAClBC,KAAM,qBACNC,SAAU,sBAEZ,CACEN,GAAI,2BACJC,OAAQ,oDACRC,UAAU,EACVC,aAAcN,EAAIO,UAClBC,KAAM,aACNC,SAAU,cAEZ,CACEN,GAAI,2BACJC,OAAQ,wDACRC,UAAU,EACVC,aAAcN,EAAIO,UAClBC,KAAM,iBACNC,SAAU,mBAIRI,EAAoB,CACxB,CACEV,GAAI,2BACJW,SAAU,CACR,CACEX,GAAI,2BACJY,YAAa,GACbC,KAAM,mGACNC,YAAa,OACbC,UAAWR,YAASV,EAAK,IAAIO,UAC7BY,SAAU,4BAEZ,CACEhB,GAAI,2BACJY,YAAa,GACbC,KAAM,mFACNC,YAAa,OACbC,UAAWR,YAASV,EAAK,GAAGO,UAC5BY,SAAU,4BAEZ,CACEhB,GAAI,2BACJY,YAAa,GACbC,KAAM,0EACNC,YAAa,OACbC,UAAWP,YAAWX,EAAK,GAAGO,UAC9BY,SAAU,4BAEZ,CACEhB,GAAI,2BACJY,YAAa,GACbC,KAAM,kGACNC,YAAa,OACbC,UAAWP,YAAWX,EAAK,GAAGO,UAC9BY,SAAU,4BAEZ,CACEhB,GAAI,2BACJY,YAAa,GACbC,KAAM,2BACNC,YAAa,OACbC,UAAWP,YAAWX,EAAK,GAAGO,UAC9BY,SAAU,4BAEZ,CACEhB,GAAI,2BACJY,YAAa,GACbC,KAAM,6CACNC,YAAa,QACbC,UAAWP,YAAWX,EAAK,GAAGO,UAC9BY,SAAU,6BAGdC,aAAc,CACZ,CACEjB,GAAI,2BACJC,OAAQ,uDACRI,KAAM,gBACNC,SAAU,iBAEZ,CACEN,GAAI,2BACJC,OAAQ,sDACRI,KAAM,eACNC,SAAU,iBAGdY,KAAM,aACNC,YAAa,GAEf,CACEnB,GAAI,2BACJW,SAAU,CACR,CACEX,GAAI,2BACJY,YAAa,GACbC,KAAM,sCACNC,YAAa,OACbC,UAAWP,YAAWX,EAAK,GAAGO,UAC9BY,SAAU,4BAEZ,CACEhB,GAAI,2BACJY,YAAa,GACbC,KAAM,eACNC,YAAa,OACbC,UAAWP,YAAWX,EAAK,GAAGO,UAC9BY,SAAU,4BAEZ,CACEhB,GAAI,2BACJY,YAAa,GACbC,KAAM,8BACNC,YAAa,OACbC,UAAWP,YAAWX,EAAK,GAAGO,UAC9BY,SAAU,6BAGdC,aAAc,CACZ,CACEjB,GAAI,2BACJC,OAAQ,uDACRI,KAAM,gBACNC,SAAU,iBAEZ,CACEN,GAAI,2BACJC,OAAQ,wDACRI,KAAM,iBACNC,SAAU,kBAEZ,CACEN,GAAI,2BACJC,OAAQ,yDACRI,KAAM,kBACNC,SAAU,oBAGdY,KAAM,QACNC,YAAa,IAIXC,EAAwB,SAACd,GAG7B,OAFgBP,EAASsB,MAAK,SAACC,GAAD,OAAcA,EAAShB,WAAaA,MAEhD,MAGdiB,EAAiB,SAACC,GAGtB,OAFed,EAAQW,MAAK,SAACI,GAAD,OAAeA,EAAUzB,KAAOwB,MAE3C,MA6ONE,EAAU,I,2FAtMrB,WACE,OAAOC,QAAQC,QAAQC,YAAS9B,M,4BAGlC,SAAe+B,GACb,OAAO,IAAIH,SAAQ,SAACC,EAASG,GAC3B,IACE,IAAIC,EAAgBjC,EAEpB,GAAI+B,EAAO,CACT,IAAMG,EAAaH,EAAMI,cAAcC,OACvCH,EAAgBA,EAAcI,QAAO,SAACC,GAAD,OACnCA,EAAQhC,KAAK6B,cAAcI,SAASL,MAIxCL,EAAQC,YAASG,IACjB,MAAOO,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,gC,6BAKvB,SAAgBC,GACd,OAAO,IAAIhB,SAAQ,SAACC,EAASG,GAC3B,IACE,IAAMd,EAAe,GAIf2B,EAASrB,EAAeoB,GAE9B,GAAIC,EACF3B,EAAa4B,KAAb,MAAA5B,EAAY,YAAS2B,EAAO3B,mBACvB,CACL,IAAMoB,EAAUjB,EAAsBuB,GAElCN,GACFpB,EAAa4B,KAAK,CAChB7C,GAAIqC,EAAQrC,GACZC,OAAQoC,EAAQpC,OAChBI,KAAMgC,EAAQhC,KACdC,SAAU+B,EAAQ/B,WAKxBsB,EAAQC,YAASZ,IACjB,MAAOsB,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,gC,wBAKvB,WACE,OAAOf,QAAQC,QAAQC,YAASnB,M,uBAGlC,SAAUiC,GACR,OAAO,IAAIhB,SAAQ,SAACC,EAASG,GAC3B,IAGE,IAAIa,EAASrB,EAAeoB,GAE5B,GAAIC,EAEF,YADAhB,EAAQC,YAASe,IAOnB,IAAMP,EAAUjB,EAAsBuB,GAEtC,IAAKN,EAEH,YADAN,EAAO,IAAIW,MAAM,+BAjHaI,EAsHQT,EAAQrC,GAAhD4C,EArHSlC,EAAQW,MAAK,SAAC0B,GAC3B,MAAqB,eAAjBA,EAAQ7B,QAIQ6B,EAAQ9B,aAAaI,MAAK,SAAC2B,GAAD,OAC5CA,EAAahD,KAAO8C,SAMP,KA2GXlB,EAAQC,YAASe,IACjB,MAAOL,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,0BA3Hc,IAACI,O,8BAgItC,SAAiBtB,GACf,OAAO,IAAIG,SAAQ,SAACC,EAASG,GAC3B,IACE,IAAMa,EAASlC,EAAQW,MAAK,SAAC0B,GAAD,OAAaA,EAAQ/C,KAAOwB,KAEpDoB,IACFA,EAAOzB,YAAc,GAGvBS,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,gC,wBAKvB,YAA8C,IAAjClB,EAAgC,EAAhCA,SAAUyB,EAAsB,EAAtBA,aAAcpC,EAAQ,EAARA,KAMnC,OAAO,IAAIc,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMmB,EAAO,CACXlD,GAAI,2BACJC,OAAQ,uDACRI,KAAM,gBACNC,SAAU,iBAGRsC,EAAS,KAGb,GAAIpB,KACFoB,EAASrB,EAAeC,IAItB,YADAO,EAAO,IAAIW,MAAM,sBAMrB,GAAIO,EAGFL,EAjKyB,SAACO,GAClC,IAAMP,EAASlC,EAAQW,MAAK,SAAC0B,GAC3B,GAAIA,EAAQ9B,aAAamC,OAASD,EAAeC,OAC/C,OAAO,EAGT,IAAMC,EAAsB,IAAIC,IAMhC,OAJAV,EAAO3B,aAAasC,SAAQ,SAACC,GAC3BH,EAAoBI,IAAID,EAAYxD,OAG/BqD,EAAoBK,OAASP,EAAeC,UAGrD,OAAOR,GAAU,KAkJAe,CAFW,sBAAOV,GAAP,CAAqBC,EAAKlD,MAKhD,IAAM4D,EAAmB,CACvB5D,GAAI6D,cACJjD,YAAa,GACbC,OACAC,YAAa,OACbC,UAAWlB,EAAIO,UACfY,SAAUkC,EAAKlD,IAIjB,GAAI4C,EACFA,EAAOjC,SAASkC,KAAKe,OAChB,CAEL,IAAM3C,EAAe,CAACiC,GAEtBD,EAAaM,SAAQ,SAACO,GACpB,IAAMzB,EAAUtC,EAASsB,MAAK,SAACC,GAAD,OAAcA,EAAStB,KAAO8D,KAG5D,IAAKzB,EACH,MAAM,IAAIK,MAAM,qBAGlBzB,EAAa4B,KAAK,CAChB7C,GAAIqC,EAAQrC,GACZC,OAAQoC,EAAQpC,OAChBI,KAAMgC,EAAQhC,KACdC,SAAU+B,EAAQ/B,cAItBsC,EAAS,CACP5C,GAAI6D,cACJlD,SAAU,CAACiD,GACX3C,eACAC,KAA8B,IAAxBD,EAAamC,OAAe,aAAe,QACjDjC,YAAa,GAIjBS,EAAQ,CACNJ,SAAUoB,EAAO5C,GACjB4D,YAEF,MAAOrB,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,kC,sJC1cZqB,EAAa,CACxBC,SAAU,2BACVC,OAAQ,OACRC,SAAU,uCAGVC,UAAW,CACTC,IAAK,yCAEPC,YAAaC,OAAOC,SAASC,OAC7BC,sBAAuBH,OAAOC,SAASC,OACvCE,cAAe,gBAGJC,EAAc,IAAIC,wBAAsBb,G,GA2BrBc,wBAC9BF,EACAZ,EAAWI,UAAUC,K,MCzCjBU,EAAcC,IAAMC,cAAcL,GAElCM,EAA6B,SAAC,GAAkB,IAAhBC,EAAe,EAAfA,SASpC,OACE,cAACJ,EAAYK,SAAb,CAAsBC,MAAO,CAAEC,SAThB,kBAAMV,EAAYW,SASQC,UAPzB,WAChBC,aAAaC,WAAW,qBACxBnB,OAAOC,SAASmB,QAAQ,KACxBf,EAAYgB,WAIZ,SACGT,M,iCCjBP,YACMU,EAAc,eACdC,EAAc,CAChBC,QAAS,SAAC5C,GACN,OAAO6C,IAAgBC,KAAhB,UAAwBJ,EAAxB,YAA+C1C,IAE1D+C,eAAgB,SAACC,GACb,OAAOH,IAAgBC,KAAhB,UAAwBJ,EAAxB,mBAAsDM,IAEjEC,cAAe,SAACD,GACZ,OAAOH,IAAgBC,KAAhB,UAAwBJ,EAAxB,kBAAqDM,IAEhEE,UAAW,SAACC,GACR,OAAON,IAAgBC,KAAhB,UAAwBJ,EAAxB,aAAgDS,KAGhDR,O,iCCjBf,oBAMeS,IAFK,kBAA4BC,qBAAWC,O,iCCJ3D,kBAEMC,EAAenH,YACnB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,qHACFC,SAAS,cAGb,gBAGa6G,O,iCCjBf,kBAEMC,EAAcpH,YAClB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,qHACFC,SAAS,cAGb,eAGa8G,O,iCCjBf,kBAEMC,EAAOrH,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,sDACFC,SAAS,cAGb,QAGa+G,O,iCCjBf,kBAEMC,EAAYtH,YAChB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,wIACFC,SAAS,cAGb,aAGagH,O,iCCjBf,kBAEMC,EAAcvH,YAClB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,oQAEV,eAGakH,O,iCCbf,oBAKeC,IAFG,kBAAMP,qBAAWQ,O,ugGCcpBC,EAfD1H,YACV,qBACAC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHL,SAKA,sBACEC,SAAS,UACTC,EAAE,2IACFC,SAAS,cAGb,S,oCCGaqH,EAfC3H,YACd,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,+VACFC,SAAS,cAGb,W,6CCGasH,EAfF5H,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,oJACFC,SAAS,cAGb,QCAauH,EAZE7H,YACf,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,yCACR,sBAAMA,EAAE,oDAEV,YCMayH,EAfQ9H,YACrB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,6KACFC,SAAS,cAGb,kB,2BCEayH,EAdG/H,YAChB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,oLACFC,SAAS,cAGb,a,oCCAa0H,EAZGhI,YAChB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,mDACR,sBAAMA,EAAE,kGAEV,a,2BCEa4H,EAXIjI,YACjB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,yJAEV,cCOa6H,EAfClI,YACd,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,+HACFC,SAAS,cAGb,W,kBCGa6H,EAfMnI,YACnB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,iGACFC,SAAS,cAGb,gB,SCQa8H,EApBKpI,YAClB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBACEC,SAAS,UACTC,EAAE,qFACFC,SAAS,YAEX,sBACEF,SAAS,UACTC,EAAE,sGACFC,SAAS,eAGb,eCFa+H,EAfHrI,YACV,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,wBACEmI,GAAG,KACHC,GAAG,KACHC,EAAE,QAGN,O,iFCaaC,EAzBKzI,YAClB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBACEC,SAAS,UACTC,EAAE,8LACFC,SAAS,YAEX,sBACEF,SAAS,UACTC,EAAE,qPACFC,SAAS,YAEX,sBACEF,SAAS,UACTC,EAAE,0GACFC,SAAS,eAGb,e,4ECPaoI,GAfE1I,YACf,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,gOACFC,SAAS,cAGb,YCEaqI,GAfD3I,YACV,qBACIC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHT,SAKI,sBACIC,SAAS,UACTC,EAAE,yZACFC,SAAS,cAGjB,S,8BCIWsI,GAfI5I,YACf,qBACAC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHL,SAKA,sBACEC,SAAS,UACTC,EAAE,sGACFC,SAAS,cAGb,c,0FCGauI,GAfK7I,YAClB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,0MACFC,SAAS,cAGb,e,oBCDawI,GAXF9I,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,+VAEV,Q,kDCOa0I,GAfI/I,YACjB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,4sCACFC,SAAS,cAGb,c,8BCAa0I,GAXKhJ,YAChB,qBACAC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHL,SAKA,sBAAME,EAAE,4xBAGV,eCAa4I,GAXHjJ,YACR,qBACAC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHL,SAKA,sBAAME,EAAE,0QAGV,Y,qGCYI6I,EAA4B,CAChCC,SAAS,EACTC,UAAW,MACXC,qBAAqB,EACrBC,gBAAgB,EAChBC,MAAOC,IAAOC,OAoCVvC,EAAkBxB,wBAAoC,CAC1DgE,SAAUR,EACVS,aAAc,eAGHC,EAA8C,SAACC,GAC1D,IAAQjE,EAAaiE,EAAbjE,SACR,EAAgCkE,mBAAmBZ,GAAnD,mBAAOQ,EAAP,KAAiBK,EAAjB,KAEAC,qBAAU,WACR,IAAMC,EA3CqB,WAC7B,IAAIP,EAAW,KAEf,IACE,IAAMQ,EAA4BlF,OAAOkB,aAAaiE,QAAQ,YAG5DT,EADEQ,EACSE,KAAKC,MAAMH,GAEX,CACTf,SAAS,EACTC,UAAW,MACXC,qBAAqB,EACrBC,gBAAgB,EAChBC,MAAOC,IAAOC,OAMlB,MAAOxG,GACPC,QAAQC,MAAMF,GAKhB,OAAOyG,EAiBoBY,GAErBL,GACFF,EAAYE,KAEb,IAOH,OACE,cAAC/C,EAAgBrB,SAAjB,CACEC,MAAO,CACL4D,WACAC,aATe,SAACY,GACpBR,EAAYQ,GAtBa,SAACb,GAC5B1E,OAAOkB,aAAasE,QAAQ,WAAYJ,KAAKK,UAAUf,IAsBrDgB,CAAcH,KAId,SAMG3E,KASyBsB,EAAgByD,SAEjCzD,O,iCCtGf,YAYM0D,EAAkB,CACtB,CACEC,GAAI,EACJC,YAAa,sBACbC,MAAO,EACPC,QAAS,GACTC,cAAe,OACfC,UAAW,CACT,CACEL,GAAI,EACJC,YAAa,sBACbC,MAAO,EACPC,QAAS,gBACTC,cAAe,OACfC,UAAW,QAIjB,CACEL,GAAI,EACJC,YAAa,2CACbC,MAAO,EACPC,QAAS,GACTC,cAAe,gBACfC,UAAW,CACT,CACEL,GAAI,EACJC,YAAa,0BACbC,MAAO,EACPC,QAAS,qBACTC,cAAe,gBACfC,UAAW,SAMbC,EAAkB,CACtB,CACEN,GAAI,EACJC,YAAa,sBACbC,MAAO,EACPC,QAAS,GACTC,cAAe,OACfC,UAAW,CACT,CACEL,GAAI,EACJC,YAAa,sBACbC,MAAO,EACPC,QAAS,kBACTC,cAAe,OACfC,UAAW,QAIjB,CACEL,GAAI,EACJC,YAAa,2CACbC,MAAO,EACPC,QAAS,GACTC,cAAe,gBACfC,UAAW,CACT,CACEL,GAAI,EACJC,YAAa,0BACbC,MAAO,EACPC,QAAS,uBACTC,cAAe,gBACfC,UAAW,MAEb,CACEL,GAAI,EACJC,YAAa,gCACbC,MAAO,EACPC,QAAS,0BACTC,cAAe,gBACfC,UAAW,SAMbE,EAAkB,CACtB,CACEP,GAAI,EACJC,YAAa,uCACbC,MAAO,EACPC,QAAS,GACTC,cAAe,gBACfC,UAAW,CACT,CACEL,GAAI,EACJC,YAAa,8BACbC,MAAO,EACPC,QAAS,mBACTC,cAAe,gBACfC,UAAW,MAEb,CACEL,GAAI,EACJC,YAAa,iCACbC,MAAO,EACPC,QAAS,mBACTC,cAAe,gBACfC,UAAW,MAEb,CACEL,GAAI,EACJC,YAAa,sBACbC,MAAO,EACPC,QAAS,kBACTC,cAAe,gBACfC,UAAW,MAEb,CACEL,GAAI,EACJC,YAAa,qCACbC,MAAO,EACPC,QAAS,2BACTC,cAAe,gBACfC,UAAW,QAIjB,CACEL,GAAI,EACJC,YAAa,2CACbC,MAAO,EACPC,QAAS,GACTC,cAAe,gBACfC,UAAW,CACT,CACEL,GAAI,EACJC,YAAa,wDACbC,MAAO,EACPC,QAAS,oBACTC,cAAe,gBACfC,UAAW,MAEb,CACEL,GAAI,EACJC,YAAa,mBACbC,MAAO,EACPC,QAAS,qBACTC,cAAe,gBACfC,UAAW,MAEb,CACEL,GAAI,EACJC,YAAa,uBACbC,MAAO,EACPC,QAAS,cACTC,cAAe,gBACfC,UAAW,QAIjB,CACEL,GAAI,EACJC,YAAa,mCACbC,MAAO,EACPC,QAAS,GACTC,cAAe,gBACfC,UAAW,CACT,CACEL,GAAI,EACJC,YAAa,mCACbC,MAAO,EACPC,QAAS,kBACTC,cAAe,gBACfC,UAAW,SAKbG,EAAc,CAClBC,QAAS,SAACC,GACR,OAAO9E,IAAgB+E,IAAhB,UA5LS,eA4LT,6BAAuDD,KAEhEE,YAAa,SAAC7J,GACZ,OAAQA,GACN,IAAK,KACH,OAAOS,QAAQC,QAAQsI,GAEzB,IAAK,KACH,OAAOvI,QAAQC,QAAQ6I,GAEzB,IAAK,KACH,OAAO9I,QAAQC,QAAQ8I,GAEzB,QACE,OAAO/I,QAAQC,QAAQ,OAMhB+I,O,8IC5MT5D,EAAgB/B,wBAAc,IAEvBgG,EAAiB,SAAC,GAAkB,IAAhB9F,EAAe,EAAfA,SAC7B,EAA4BkE,mBAAS,IAArC,mBAAOnJ,EAAP,KAAegL,EAAf,KACMC,EAAUC,cACRjI,EAASkI,cAATlI,KAEFmI,EAAaC,sBAAW,sBAAC,8BAAAC,EAAA,oEAEnBC,EAAchG,aAAaiE,QAAQ,sBAFhB,mBAKiB,MAAhCC,KAAKC,MAAM6B,GAAaC,KALT,gCAMEC,IAAeC,YANjB,OAMXC,EANW,OAOXV,EAAQW,SAAWD,GACnBX,EAAUW,EAAKA,MARJ,yDAavBpJ,QAAQsJ,IAAR,MAbuB,0DAgB5B,CAACZ,EAAShI,IAIb,OAHAoG,qBAAU,WACN+B,MACD,CAACA,IAEA,cAACtE,EAAc5B,SAAf,CAAwBC,MAAOnF,EAA/B,SACKiF,KAIE6B,O,6ICtCFgF,EAAa,wBACbC,EAAiB,OAMjBC,EAAO,SAClBC,EACAC,EACAC,GAEA,IAAMvM,EAAM,IAAIC,KAChBsM,EAAOC,UAAY,IAAIvM,KAAKD,EAAIO,UAAYgM,EAAOC,WACnD,IAAMC,EAAgBC,KAAK7C,KAAKK,UAAUqC,IACpCI,EAAiBD,KAAK7C,KAAKK,UAAUmC,IACrCO,EAAYF,KAChBG,MACGC,KAAKH,GACLI,KAAI,SAACC,EAAMC,GAAP,OACHC,OAAOC,aAAaH,EAAKI,WAAW,GAAKd,EAAWW,EAAMX,EAAW/I,QAAQ6J,WAAW,OAEzFC,KAAK,KAGV,MAAM,GAAN,OAAUZ,EAAV,YAA2BE,EAA3B,YAA6CC,I,SCrBzCU,EAAQ,CACZ,CACEnN,GAAI,2BACJC,OAAQ,uDACRmN,MAAO,iBACP/M,KAAM,gBACNgN,SAAU,eACVC,KAAM,YA+GGC,EAAU,I,4HA1GrB,iCAAAhC,EAAA,6DAAc6B,EAAd,EAAcA,MAAOC,EAArB,EAAqBA,SAArB,SACQG,YAAK,KADb,uBAEoBlJ,OAAOmJ,MAAM,gDAAiD,CAC9EC,OAAQ,OACRC,QAAS,CACP,eAAgB,iCAChBC,OAAQ,2DACR1J,SAAU,OAEZrD,KAAM6I,KAAKK,UAAU,CACnBzJ,SAAU,cACV+M,SAAU,eAXhB,cAEQQ,EAFR,OAcErL,QAAQsJ,IAAI+B,EAAIC,OAAOC,MAAK,SAACC,GAAD,OAAOxL,QAAQsJ,IAAIkC,OAdjD,kBAeS,IAAIrM,SAAQ,SAACC,EAASG,GAC3B,IAGE,IAAMmB,EAAOiK,EAAM9L,MAAK,SAAC4M,GAAD,OAAWA,EAAMb,QAAUA,KACnD,IAAKlK,GAASA,EAAKmK,WAAaA,EAE9B,YADAtL,EAAO,IAAIW,MAAM,yCAUnBd,EANoBqK,EAClB,CAAEiC,OAAQhL,EAAKlD,IACf+L,EACA,CAAEM,UAAWL,KAIf,MAAOzJ,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,+BAlCvB,2C,oHAuCA,iCAAA6I,EAAA,6DAAiB6B,EAAjB,EAAiBA,MAAO/M,EAAxB,EAAwBA,KAAMgN,EAA9B,EAA8BA,SAA9B,SACQG,YAAK,KADb,gCAGS,IAAI7L,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAImB,EAAOiK,EAAM9L,MAAK,SAAC4M,GAAD,OAAWA,EAAMb,QAAUA,KAEjD,GAAIlK,EAEF,YADAnB,EAAO,IAAIW,MAAM,wBAInBQ,EAAO,CACLlD,GAAI6D,cACJ5D,OAAQ,KACRmN,QACA/M,OACAgN,WACAC,KAAM,YAGRH,EAAMtK,KAAKK,GAQXtB,EANoBqK,EAClB,CAAEiC,OAAQhL,EAAKlD,IACf+L,EACA,CAAEM,UAAWL,KAIf,MAAOzJ,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,+BAjCvB,2C,uEAsCA,SAAGyL,GACD,OAAO,IAAIxM,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAQmM,EDnEM,SAACE,GACrB,MAAmDA,EAAMC,MAAM,KAA/D,mBAAO/B,EAAP,KAAsBE,EAAtB,KAAsCC,EAAtC,KACML,EAAS1C,KAAKC,MAAM2E,KAAKhC,IACzBJ,EAAUxC,KAAKC,MAAM2E,KAAK9B,IAGhC,GAFY,IAAI1M,KAENsM,EAAOC,UACf,MAAM,IAAI3J,MAAM,iBAYlB,GAT0B6J,KACxBG,MACGC,KAAKH,GACLI,KAAI,SAACC,EAAMC,GAAP,OACHC,OAAOC,aAAaH,EAAKI,WAAW,GAAKlB,EAAWe,EAAMf,EAAW3I,QAAQ6J,WAAW,OAEzFC,KAAK,OAGgBT,EACxB,MAAM,IAAI/J,MAAM,qBAGlB,OAAOwJ,EC4CkBqC,CAAOJ,GAAlBD,OAGFhL,EAAOiK,EAAM9L,MAAK,SAAC4M,GAAD,OAAWA,EAAMjO,KAAOkO,KAEhD,IAAKhL,EAEH,YADAnB,EAAO,IAAIW,MAAM,gCAInBd,EAAQ,CACN5B,GAAIkD,EAAKlD,GACTC,OAAQiD,EAAKjD,OACbmN,MAAOlK,EAAKkK,MACZ/M,KAAM6C,EAAK7C,KACXiN,KAAMpK,EAAKoK,OAEb,MAAO/K,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,kC,yDC9CnB8L,EAAsB,CACxBC,iBAAiB,EACjBC,eAAe,EACfxL,KAAM,KACNyL,SAAU,MAGRC,EAAoE,CACtEC,WAAY,SAACC,EAAcC,GACvB,MAA4CA,EAAO7C,QAA3CuC,EAAR,EAAQA,gBAAiBvL,EAAzB,EAAyBA,KAAMyL,EAA/B,EAA+BA,SAE/B,OAAO,2BACAG,GADP,IAEIL,kBACAC,eAAe,EACfxL,OACAyL,cAGRK,MAAO,SAACF,EAAcC,GAClB,MAA2BA,EAAO7C,QAA1BhJ,EAAR,EAAQA,KAAMyL,EAAd,EAAcA,SAEd,OAAO,2BACAG,GADP,IAEIL,iBAAiB,EACjBvL,OACAyL,cAGRM,UAAW,SAACH,EAAcC,GACtB,MAA2BA,EAAO7C,QAA1BhJ,EAAR,EAAQA,KAAMyL,EAAd,EAAcA,SACd,OAAO,2BACAG,GADP,IAEIL,iBAAiB,EACjBvL,OACAyL,cAGRO,OAAQ,SAACJ,GAAD,mBAAC,eACFA,GADC,IAEJL,iBAAiB,EACjBvL,KAAM,QAEViM,SAAU,SAACL,EAAcC,GACrB,IAAQ7L,EAAS6L,EAAO7C,QAAhBhJ,KAER,OAAO,2BACA4L,GADP,IAEIL,iBAAiB,EACjBvL,WAKNkM,EAAU,SAACN,EAAcC,GAAf,OACZH,EAASG,EAAO7N,MAAQ0N,EAASG,EAAO7N,MAAM4N,EAAOC,GAAUD,GAE7DhK,EAAcE,wBAAa,2BAC1BwJ,GAD0B,IAE7Ba,SAAU,MACV/J,MAAO,kBAAM3D,QAAQC,WACrB0N,OAAQ,kBAAM3N,QAAQC,WACtB2N,UAAW,kBAAM5N,QAAQC,WACzB4N,SAAU,kBAAM7N,QAAQC,cAGf6N,EAAsC,SAACtG,GAChD,IAAQjE,EAAaiE,EAAbjE,SACR,EAA0BwK,qBAAWN,EAASZ,GAA9C,mBAAOM,EAAP,KAAca,EAAd,KAEArG,qBAAU,YACU,uCAAG,gCAAAiC,EAAA,kEAGPqE,EACApK,aAAaiE,QAAQ,qBAErBjE,aAAaiE,QAAQ,aACrBmG,EAPO,wBAQD1M,EAAOwG,KAAKC,MAAMiG,GARjB,SAWgBC,IAXhB,OAWDlB,EAXC,OAYPgB,EAAS,CACLzO,KAAM,aACNgL,QAAS,CACLuC,iBAAiB,EACjBvL,OACAyL,cAjBD,wBAqBPgB,EAAS,CACLzO,KAAM,aACNgL,QAAS,CACLuC,iBAAiB,EACjBvL,KAAM,KACNyL,SAAU,QA1BX,0DA+BXnM,QAAQC,MAAR,MACAkN,EAAS,CACLzO,KAAM,aACNgL,QAAS,CACLuC,iBAAiB,EACjBvL,KAAM,KACNyL,SAAU,QArCP,0DAAH,qDA2ChBmB,KACD,IAEH,IAAMxK,EAAK,uCAAG,WAAO8H,EAAeC,GAAtB,mBAAA9B,EAAA,6DACNwE,EAA6B,CAC7BzP,SAAU8M,EACVC,SAAUA,GAHJ,SAKSxH,IAAYC,QAAQiK,GAL7B,cAKJ7M,EALI,OAMVsC,aAAasE,QAAQ,oBAAqBJ,KAAKK,UAAU7G,IAN/C,SAOa2M,IAPb,OAOJlB,EAPI,OAQVgB,EAAS,CACLzO,KAAM,QACNgL,QAAS,CACLhJ,OACAyL,cAZE,2CAAH,wDAiBLY,EAAS,uCAAG,WAAOnC,GAAP,mBAAA7B,EAAA,6DACVyE,EAAmB,CACnBC,MAAO7C,GAFG,kBAKSvH,IAAYO,UAAU4J,GAL/B,cAKJ9M,EALI,OAMVsC,aAAasE,QAAQ,oBAAqBJ,KAAKK,UAAU7G,IAN/C,SAOa2M,IAPb,OAOJlB,EAPI,OAQVgB,EAAS,CACLzO,KAAM,QACNgL,QAAS,CACLhJ,OACAyL,cAZE,kDAiBVuB,IAAMzN,MAAM,KAAI0N,SAASvE,KAAKhI,SAC9B4B,aAAaC,WAAW,qBACxB2K,YAAW,WAEP9L,OAAOC,SAAS8L,KAAO,+CACxB,KAtBO,0DAAH,sDA0BTf,EAAM,uCAAG,sBAAA/D,EAAA,sDACX/F,aAAaC,WAAW,qBACxBkK,EAAS,CAAEzO,KAAM,WAFN,2CAAH,qDAKNsO,EAAQ,uCAAG,WACbpC,EACA/M,EACAgN,GAHa,iBAAA9B,EAAA,sEAKagC,EAAQiC,SAAS,CAAEpC,QAAO/M,OAAMgN,aAL7C,cAKPc,EALO,gBAMMZ,EAAQ+C,GAAGnC,GANjB,OAMPjL,EANO,OAQbsC,aAAasE,QAAQ,cAAeqE,GAEpCwB,EAAS,CACLzO,KAAM,WACNgL,QAAS,CACLhJ,UAbK,2CAAH,0DAkBd,OACI,cAAC4B,EAAYK,SAAb,CACIC,MAAK,2BACE0J,GADF,IAEDO,SAAU,MACV/J,QACAiK,YACAD,SACAE,aAPR,SAUKtK,KASEJ,M,SAEA+K,I,2EAAf,8BAAAtE,EAAA,+EAEyBZ,IAAYC,UAFrC,cAEYgB,EAFZ,OAMY2E,EAGE,GAEN3E,EAAKrI,SAAQ,SAACyK,GACV,IAAIwC,EAAUxC,EAAExD,UAAUoC,KAAI,SAAC6D,GAC3B,MAAO,CACHC,MAAOD,EAAGrG,YACVuG,KAAMF,EAAGnG,YAIbsG,EAAM,CACNF,MAAO1C,EAAE5D,YACTyG,MAAOL,GAEXD,EAAI1N,KAAK+N,MAEbpL,aAAasE,QAAQ,WAAYgH,EAAQpH,KAAKK,UAAUwG,KAzBhE,kBA0BeO,EAAQpH,KAAKK,UAAUwG,KA1BtC,wG,sBA+BA,SAASO,EAAQlF,GAGb,OADYmF,IAASC,IAAIF,QAAQlF,EADvB,sC,qPChKCqF,EAtIU,SAAC9H,GACxB,IAAM+B,EAAUC,cACV+F,EAAWC,cACT7L,EAAU8F,cAAV9F,MAER,OACE,cAAC,IAAD,CACE8L,cAAe,CACbhE,MAAO,iBACPC,SAAU,eACVgE,OAAQ,MAEVC,iBACEC,MAEGC,MAAM,CACLpE,MAAOmE,MAEJnE,MAAM,yBACNqE,IAAI,KACJC,SAAS,uBAGlBC,SAAQ,uCAAE,WAAOC,EAAP,sBAAArG,EAAA,6DACRsG,EADQ,EACRA,UACAC,EAFQ,EAERA,UACAC,EAHQ,EAGRA,cAHQ,kBAMAzM,EAAMsM,EAAOxE,MAAOwE,EAAOvE,UAN3B,OAQFnC,EAAQW,UACViG,EAAU,CAAEE,SAAS,IACrBD,GAAc,IAVV,mDAaNvP,QAAQC,MAAR,MAEiB,8BAAb,KAAIwP,KAfF,wBAgBJf,EAAS,8BAA+B,CACtCpC,MAAO,CACLxO,SAAUsR,EAAOxE,SAlBjB,2BAwBFlC,EAAQW,UACViG,EAAU,CAAEE,SAAS,IACrBH,EAAU,CAAER,OAAQ,KAAIzN,UACxBmO,GAAc,IA3BV,yDAAF,wDAjBV,SAiDG,gBACCG,EADD,EACCA,OACAC,EAFD,EAECA,WACAC,EAHD,EAGCA,aACAC,EAJD,EAICA,aACAC,EALD,EAKCA,aACAC,EAND,EAMCA,QACAX,EAPD,EAOCA,OAPD,OASC,+CACEY,YAAU,EACVb,SAAUU,GACNlJ,GAHN,cAKE,cAACsJ,EAAA,EAAD,CACEC,WAAS,EACTjQ,MAAOkQ,QAAQJ,EAAQnF,OAAS8E,EAAO9E,OACvCwF,WAAS,EACTC,WAAYN,EAAQnF,OAAS8E,EAAO9E,MACpC0F,MAAM,gBACNC,OAAO,SACP1S,KAAK,QACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,QACLkE,MAAOwM,EAAOxE,MACd8F,QAAQ,aAEV,cAACT,EAAA,EAAD,CACEhQ,MAAOkQ,QAAQJ,EAAQlF,UAAY6E,EAAO7E,UAC1CuF,WAAS,EACTC,WAAYN,EAAQlF,UAAY6E,EAAO7E,SACvCyF,MAAM,WACNC,OAAO,SACP1S,KAAK,WACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,WACLkE,MAAOwM,EAAOvE,SACd6F,QAAQ,aAEThB,EAAOb,QACN,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACC,EAAA,EAAD,CAAgB7Q,OAAK,EAArB,SACGyP,EAAOb,WAId,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACE,EAAA,EAAD,CACEC,MAAM,UACNC,SAAUnB,EACVM,WAAS,EACTlP,KAAK,QACLxC,KAAK,SACLgS,QAAQ,YANV,sBAWF,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACK,EAAA,EAAD,CAAOC,SAAS,OAAhB,SACE,8CAEG,IACD,+CACC,IAJH,eAMG,IACD,4D,QCzFDC,EA3CQ,SAACzK,GACtB,IAAM+B,EAAUC,cACR0I,EAAmBzI,cAAnByI,eACR,EAA0BzK,mBAAwB,MAAlD,mBAAO3G,EAAP,KAAcqR,EAAd,KAEMC,EAAW,uCAAG,sBAAAxI,EAAA,+EAEVsI,IAFU,sDAIhBrR,QAAQC,MAAR,MACIyI,EAAQW,SACViI,EAAS,KAAIlQ,SANC,wDAAH,qDAWjB,OACE,gDAASuF,GAAT,cACG1G,GACC,cAAC0Q,EAAA,EAAD,CAAKC,GAAI,CAAEY,GAAI,GAAf,SACE,cAACV,EAAA,EAAD,CAAgB7Q,OAAK,EAArB,SACGA,MAIP,cAAC0Q,EAAA,EAAD,CACEC,GAAI,CACFa,QAAS,OACTC,eAAgB,UAHpB,SAME,cAACX,EAAA,EAAD,CACEC,MAAM,UACNW,QAASJ,EACTb,QAAQ,YAHV,2BC6JOkB,EAnLW,SAACjL,GACzB,IAAM+B,EAAUC,cAChB,EAAyDC,cAAjDiJ,EAAR,EAAQA,2BAA4BC,EAApC,EAAoCA,iBAE9BC,EAAiB,uCAAG,sBAAAhJ,EAAA,+EAEhB+I,IAFgB,sDAItB9R,QAAQC,MAAR,MAJsB,wDAAH,qDAQvB,OACE,gDAAS0G,GAAT,cACE,eAACoK,EAAA,EAAD,CACEX,WAAS,EACTuB,QAASI,EACT7Q,KAAK,QACL0P,GAAI,CACFoB,gBAAiB,eACjBhB,MAAO,eACP,UAAW,CACTgB,gBAAiB,eACjBhB,MAAO,iBAGXN,QAAQ,YAZV,UAcE,cAACC,EAAA,EAAD,CACEsB,IAAI,SACJC,UAAU,MACVC,IAAI,2BACJvB,GAAI,CAAEwB,GAAI,KAlBd,YAsBA,eAACzB,EAAA,EAAD,CACEC,GAAI,CACFyB,WAAY,SACZZ,QAAS,OACTZ,GAAI,GAJR,UAOE,cAACF,EAAA,EAAD,CAAKC,GAAI,CAAE0B,SAAU,GAArB,SACE,cAACC,EAAA,EAAD,CAASC,YAAY,iBAEvB,cAACC,EAAA,EAAD,CACEzB,MAAM,gBACNJ,GAAI,CAAE8B,EAAG,GACThC,QAAQ,QAHV,gBAOA,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAE0B,SAAU,GAArB,SACE,cAACC,EAAA,EAAD,CAASC,YAAY,oBAGzB,cAAC,IAAD,CACE5D,cAAe,CACbhE,MAAO,iBACPC,SAAU,eACVgE,OAAQ,MAEVC,iBACEC,MAEGC,MAAM,CACLpE,MAAOmE,MAEJnE,MAAM,yBACNqE,IAAI,KACJC,SAAS,qBACZrE,SAAUkE,MAEPE,IAAI,KACJC,SAAS,0BAGlBC,SAAQ,uCAAE,WAAOC,EAAP,sBAAArG,EAAA,6DACRsG,EADQ,EACRA,UACAC,EAFQ,EAERA,UACAC,EAHQ,EAGRA,cAHQ,kBAMAsC,EAA2BzC,EAAOxE,MAAOwE,EAAOvE,UANhD,OAQFnC,EAAQW,UACViG,EAAU,CAAEE,SAAS,IACrBD,GAAc,IAVV,gDAaNvP,QAAQC,MAAR,MACIyI,EAAQW,UACViG,EAAU,CAAEE,SAAS,IACrBH,EAAU,CAAER,OAAQ,KAAIzN,UACxBmO,GAAc,IAjBV,yDAAF,wDArBV,SA2CG,gBACCG,EADD,EACCA,OACAC,EAFD,EAECA,WACAC,EAHD,EAGCA,aACAC,EAJD,EAICA,aACAC,EALD,EAKCA,aACAC,EAND,EAMCA,QACAX,EAPD,EAOCA,OAPD,OASC,+CACEY,YAAU,EACVb,SAAUU,GACNlJ,GAHN,cAKE,cAACsJ,EAAA,EAAD,CACEhQ,MAAOkQ,QAAQJ,EAAQnF,OAAS8E,EAAO9E,OACvCwF,WAAS,EACTC,WAAYN,EAAQnF,OAAS8E,EAAO9E,MACpC0F,MAAM,gBACNC,OAAO,SACP1S,KAAK,QACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,QACLkE,MAAOwM,EAAOxE,MACd8F,QAAQ,aAEV,cAACT,EAAA,EAAD,CACEhQ,MAAOkQ,QAAQJ,EAAQlF,UAAY6E,EAAO7E,UAC1CuF,WAAS,EACTC,WAAYN,EAAQlF,UAAY6E,EAAO7E,SACvCyF,MAAM,WACNC,OAAO,SACP1S,KAAK,WACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,WACLkE,MAAOwM,EAAOvE,SACd6F,QAAQ,aAEThB,EAAOb,QACN,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACC,EAAA,EAAD,CAAgB7Q,OAAK,EAArB,SACGyP,EAAOb,WAId,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACE,EAAA,EAAD,CACEC,MAAM,UACNC,SAAUnB,EACVM,WAAS,EACTlP,KAAK,QACLxC,KAAK,SACLgS,QAAQ,YANV,sBAWF,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACK,EAAA,EAAD,CAAOC,SAAS,OAAhB,SACE,8CAEG,IACD,+CACC,IAJH,eAMG,IACD,gE,SCNHwB,EA7JM,SAAChM,GAClB,IAAM+B,EAAUC,cAChB,EAA6BC,cAArB9F,EAAR,EAAQA,MAAOiK,EAAf,EAAeA,UAEf,EAAgChJ,qBAAWzB,KAAnCO,EAAR,EAAQA,SAGF+P,GAHN,EAAkB7P,UAEA,IAAI8P,gBAAgB9Q,SAAS+Q,KAAKC,UAAU,IACpCzK,IAAI,aAY9B,OAVAxB,qBAAU,WAIF8L,GACA7F,EAAU6F,KAGf,CAACA,IAGA,cAAC,IAAD,CACIhE,cAAe,CACXhE,MAAO,GACPC,SAAU,GACVgE,OAAQ,MAEZC,iBAAkBC,MAAaC,MAAM,CACjCpE,MAAOmE,MAEFE,IAAI,KACJC,SAAS,4DACdrE,SAAUkE,MACLE,IAAI,KAEJC,SAAS,iDAElBC,SAAQ,uCAAE,WACNC,EADM,sBAAArG,EAAA,6DAEJsG,EAFI,EAEJA,UAAWC,EAFP,EAEOA,UAAWC,EAFlB,EAEkBA,cAFlB,kBAKIzM,EAAMsM,EAAOxE,MAAMjL,OAAQyP,EAAOvE,UALtC,OAMEnC,EAAQW,UACRiG,EAAU,CAAEE,SAAS,IACrBD,GAAc,IARhB,gDAWE7G,EAAQW,UACRiG,EAAU,CAAEE,SAAS,IACrBH,EAAU,CAAER,OAAQ,KAAIlB,SAASvE,KAAKhI,UACtCmO,GAAc,GACdvM,aAAaC,WAAW,sBAf1B,yDAAF,wDAhBZ,SAoCK,gBACGyM,EADH,EACGA,OACAC,EAFH,EAEGA,WACAC,EAHH,EAGGA,aACAC,EAJH,EAIGA,aACAC,EALH,EAKGA,aACAC,EANH,EAMGA,QACAX,EAPH,EAOGA,OAPH,OASG,+CAAMY,YAAU,EAACb,SAAUU,GAAkBlJ,GAA7C,cACI,cAACsJ,EAAA,EAAD,CACIC,WAAS,EACTjQ,MAAOkQ,QAAQJ,EAAQnF,OAAS8E,EAAO9E,OACvCwF,WAAS,EACTC,WAAYN,EAAQnF,OAAS8E,EAAO9E,MACpC0F,MAAM,kCACNC,OAAO,SACP1S,KAAK,QACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,OACLkE,MAAOwM,EAAOxE,MACd8F,QAAQ,aAEZ,cAACT,EAAA,EAAD,CACIhQ,MAAOkQ,QAAQJ,EAAQlF,UAAY6E,EAAO7E,UAC1CuF,WAAS,EACTC,WAAYN,EAAQlF,UAAY6E,EAAO7E,SACvCyF,MAAM,qBACNC,OAAO,SACP1S,KAAK,WACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,WACLkE,MAAOwM,EAAOvE,SACd6F,QAAQ,WACRsC,YAAY,qBACZC,aAAa,OAEhBvD,EAAOb,QACJ,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACI,cAACC,EAAA,EAAD,CAAgB7Q,OAAK,EAArB,SACKyP,EAAOb,WAIpB,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACI,cAACE,EAAA,EAAD,CACIC,MAAM,UACNC,SAAUnB,EACVM,WAAS,EACTlP,KAAK,QACLxC,KAAK,SACLgS,QAAQ,YANZ,wCAWJ,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACI,eAACE,EAAA,EAAD,CAGIX,WAAS,EACTlP,KAAK,QACLxC,KAAK,SACLgS,QAAQ,WACRiB,QAAS9O,EAPb,UASI,qBACI9F,MAAM,6BACNC,QAAQ,YACRkW,MAAM,OACNC,OAAO,OAJX,SAMI,sBACIlW,KAAK,UACLE,EAAE,qEAjBd,4C,SC5GlBiW,EAKE,8DAuLOC,UApLG,WAChB,IAAQxG,EAAajE,cAAbiE,SACFyG,EAAeC,cAOrB,OANAvT,QAAQsJ,IAAIuD,GAEZ/F,qBAAU,WACR0M,IAAInT,KAAK,CAAEoT,MAAO,gBACjB,IAGD,qCACE,cAAC,IAAD,UACE,qEAEF,eAACC,EAAA,EAAD,CAAMC,WAAS,EAAf,UACE,cAACD,EAAA,EAAD,CACErJ,MAAI,EACJuJ,GAAI,EACJC,GAAI,EACJjD,GAAI,CACFa,QAAS,CAAEqC,GAAI,OAAQC,GAAI,OAAQH,GAAI,QAASC,GAAI,UALxD,SAQE,cAAClD,EAAA,EAAD,CACEuB,UAAU,MACVC,IAAI,oCACJF,IAAI,GACJ+B,MAAO,CAAEC,UAAW,SACpBf,MAAO,OACPC,OAAQ,WAGZ,eAACO,EAAA,EAAD,CAAMrJ,MAAI,EAACyJ,GAAI,GAAIC,GAAI,GAAIH,GAAI,EAAGC,GAAI,EAAtC,UACG,IACD,cAAClD,EAAA,EAAD,CACEC,GAAI,CACFoB,gBAAiB,qBACjBP,QAAS,OACTyC,cAAe,SACfC,UAAW,SALf,SASE,eAACC,EAAA,EAAD,CAAWC,SAAS,KAAKzD,GAAI,CAAE0D,GAAI,QAAnC,UAiBE,cAAC,IAAD,CAAYC,GAAG,IAAf,SACE,cAAC5D,EAAA,EAAD,CACEC,GAAI,CACFa,QAAS,OACTC,eAAgB,SAChB8C,GAAI,EACJ,UAAW,CACTtB,MAAO,UANb,SAUE,qBAAKjB,IAAI,gBAAgBE,IAAKiB,QAGlC,cAACzC,EAAA,EAAD,CACEC,GAAI,CACFa,QAAS,OACTC,eAAgB,SAChBW,WAAY,SACZ6B,cAAe,SACfM,GAAI,GANR,SASE,cAAC/B,EAAA,EAAD,CAAYgC,UAAW,SAAUzD,MAAM,cAAc0D,cAAY,EAAChE,QAAQ,KAA1E,qFAOF,cAACiE,EAAA,EAAD,UACE,eAACC,EAAA,EAAD,CACEhE,GAAI,CACFa,QAAS,OACTyC,cAAe,SACfW,EAAG,GAJP,UAOE,cAAClE,EAAA,EAAD,CACEC,GAAI,CACFyB,WAAY,SACZZ,QAAS,OACTC,eAAgB,gBAChB8C,GAAI,GALR,SAQE,gCACE,cAAC/B,EAAA,EAAD,CAAYzB,MAAM,UAAU0D,cAAY,EAAChE,QAAQ,KAAjD,sCAGA,cAAC+B,EAAA,EAAD,CAAYzB,MAAM,gBAAgBN,QAAQ,QAA1C,4EAmBJ,eAACC,EAAA,EAAD,CACEC,GAAI,CACF0B,SAAU,EACVzB,GAAI,GAHR,UAMgB,YAAbhE,GAA0B,cAAC,EAAD,IACb,UAAbA,GAAwB,cAAC,EAAD,IACX,aAAbA,GAA2B,cAAC,EAAD,KAC1ByG,EAAawB,SAAShV,SAAS,aAClB,QAAb+M,GAAsB,cAAC,EAAD,OAI1B,cAAC0F,EAAA,EAAD,CAAS3B,GAAI,CAAEY,GAAI,UAcvB,cAACb,EAAA,EAAD,CACEC,GAAI,CACFyB,WAAY,SACZZ,QAAS,OACTC,eAAgB,SAChBb,GAAI,GALR,SAQE,eAAC4B,EAAA,EAAD,CAAYzB,MAAM,gBAAgBN,QAAQ,UAA1C,6CACmC,IACjC,mBAAG7C,KAAK,6BAA6BkH,OAAO,QAA5C,SACE,qBAAK5C,IAAI,sD,iCCzMdnH,IAFF,SAACgK,GAAD,OAAiC,IAAI7V,SAAQ,SAACkM,GAAD,OAASuC,WAAWvC,EAAK2J,Q,gCCyBpE3V,IAxBE,SAAXA,EAAY4V,GAChB,MAAmB,kBAARA,GAA4B,OAARA,EACtBA,EAGLA,aAAe3X,KACV,IAAIA,KAAK2X,EAAIrX,WAGlBqX,aAAe/K,MACV+K,EAAIC,QAAO,SAACnH,EAAK1D,EAAM8K,GAE5B,OADApH,EAAIoH,GAAK9V,EAASgL,GACX0D,IACN,IAGDkH,aAAeG,OACVA,OAAOC,KAAKJ,GAAKC,QAAO,SAACI,EAAQhL,GAEtC,OADAgL,EAAOhL,GAAOjL,EAAS4V,EAAI3K,IACpBgL,IACN,SAJL,I,qDC6DI9B,EAAM,I,iDAjEV+B,aAAe,K,KAEfC,aAAc,E,6CAEd,SAAUC,GACRC,KAAKH,aAAeE,EAAOE,c,wBAG7B,SAAWF,GACT,IAAIC,KAAKF,aAUJI,UAKAH,EAAOE,YAAZ,CAKAD,KAAKG,UAAUJ,GAEf,IAAMK,EAASF,SAASG,cAAc,UAChCC,EAAWJ,SAASG,cAAc,YAExCD,EAAOG,UAAP,2XAK6CP,KAAKH,aALlD,aAOAS,EAASC,UAAT,2EAC6DP,KAAKH,aADlE,iFAIAK,SAASM,KAAKC,aAAaL,EAAQF,SAASM,KAAKE,WAAW,IAC5DR,SAASvX,KAAK8X,aAAaH,EAAUJ,SAASvX,KAAK+X,WAAW,O,kBAIhE,WAAe,IAAD,EACPtU,SAKCA,OAAeuU,YAClBvU,OAAeuU,UAAY,KAG7B,EAAAvU,OAAeuU,WAAUhW,KAA1B,wB,MAOWmT,O,6FCvET8C,EAAYC,sBAA2C,SAAC5P,EAAO6P,GACnE,IAAQ9T,EAAuBiE,EAAvBjE,SAAa+T,EAArB,YAA+B9P,EAA/B,cAIA,MAFiB,iEAAiE+P,KAAKC,UAAUC,WAI7F,cAAC,IAAD,CACEJ,IAAKA,EACL5F,GAAI,CAAEiG,UAAW,OAAOC,UAAU,QAFpC,SAIGpU,IAML,cAAC,IAAD,yBAEE8T,IAAKA,GACDC,GAHN,aAKG/T,QASQ4T,O,iCCxCf,YAMOlT,EAAc,UACf8F,EAAiB,CAEnB6N,IAAI,WACA,OAAOxT,IAAgB+E,IAAhB,UAAuBlF,EAAvB,WAGX4T,iBAAkB,SAACC,GACf,OAAO1T,IAAgB+E,IAAhB,UAAuBlF,EAAvB,wCAAkE6T,KAG7EC,eAAgB,WACZ,OAAO3T,IAAgB+E,IAAhB,UAAuBlF,EAAvB,eAGX+T,uBAAwB,WACpB,OAAO5T,IAAgB+E,IAAhB,UAAuBlF,EAAvB,uBAGXgU,eAAgB,WACZ,OAAO7T,IAAgB+E,IAAhB,UAAuBlF,EAAvB,kBAGXiU,WAAW,SAACC,EAAOC,GACf,OAAOhU,IAAgB+E,IAAhB,UAAuBlF,EAAvB,wBAAkDkU,EAAlD,mBAAmEC,KAG9EC,iBAAiB,WACb,OAAOjU,IAAgB+E,IAAhB,UAAuBlF,EAAvB,qBAGXqU,mBAAmB,WACf,OAAOlU,IAAgB+E,IAAhB,UAAuBlF,EAAvB,sBAEXsU,qBAAqB,WACjB,OAAOnU,IAAgB+E,IAAhB,UAAuBlF,EAAvB,wBAEXuU,cAAc,SAACC,GACX,OAAOrU,IAAgBC,KAAhB,UAAwBJ,EAAxB,kBAAoDwU,IAE/DzO,UAAU,WACN,OAAO5F,IAAgB+E,IAAhB,UAAuBlF,EAAvB,iBAGA8F,O,iCClDf,kBAEM2O,EAAa/a,YACjB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,2IACFC,SAAS,cAGb,cAGaya,O,iCCjBf,kBAEMC,EAAiBhb,YACrB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,qGAEV,kBAGa2a,O,iCCbf,kBAEMC,EAAWjb,YACf,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,wLACFC,SAAS,cAGb,YAGa2a,O,iCCjBf,kBAEMC,EAASlb,YACb,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,mHACFC,SAAS,cAGb,UAGa4a,O,oGCmBThM,EAAsB,CACxBiM,WAAW,EACXC,gBAAe,GAEb9L,EAAoE,CACtEC,WAAY,SAACC,EAAcC,GACvB,IAAQ0L,EAAc1L,EAAO7C,QAArBuO,UACR,OAAO,2BACA3L,GADP,IAEI2L,eAGRE,KAAM,SAAC7L,EAAcC,GACjB,MAAqCA,EAAO7C,QAApCuO,EAAR,EAAQA,UAAUC,EAAlB,EAAkBA,eAElB,OAAO,2BACA5L,GADP,IAEI2L,YACAC,oBAGRE,KAAM,SAAC9L,EAAcC,GACjB,MAAqCA,EAAO7C,QAApCuO,EAAR,EAAQA,UAAUC,EAAlB,EAAkBA,eAElB,OAAO,2BACA5L,GADP,IAEI2L,YACAC,qBAKNtL,EAAU,SAACN,EAAcC,GAAf,OACZH,EAASG,EAAO7N,MAAQ0N,EAASG,EAAO7N,MAAM4N,EAAOC,GAAUD,GAE7D+L,EAAiB7V,wBAAa,2BAC7BwJ,GAD6B,IAEhCsM,YAAa,SAACC,KACdC,YAAa,SAACD,QAGLE,EAA2C,SAAC9R,GAErD,IAAQjE,EAAaiE,EAAbjE,SACR,EAA0BwK,qBAAWN,EAASZ,GAA9C,mBAAOM,EAAP,KAAca,EAAd,KA2CA,OACI,cAACkL,EAAe1V,SAAhB,CACIC,MAAK,2BACE0J,GADF,IAEDgM,YA7CQ,SAACC,GAEbpL,EADO,gBAARoL,EACU,CACL7Z,KAAM,OACNgL,QAAS,CACLuO,WAAW,EACXC,gBAAe,IAId,CACLxZ,KAAM,OACNgL,QAAS,CACLuO,WAAW,EACXC,gBAAe,MAgCnBM,YAzBQ,SAACD,GAEbpL,EADO,gBAARoL,EACU,CACL7Z,KAAM,OACNgL,QAAS,CACLuO,WAAW,EACXC,gBAAe,IAId,CACLxZ,KAAM,OACNgL,QAAS,CACLuO,WAAW,EACXC,gBAAe,QAO3B,SAOKxV,KAQE2V,O,sKC9HAK,EAPKC,YAAgB,CAClCC,SAAUC,IACVC,KAAMC,IACNC,OAAQC,IACRC,KAAMC,MCHFC,EAAQC,YAAe,CAC3BzM,QAAS8L,EACTY,UAAUC,IASCC,EAA+CC,IAE/CC,EAAc,kBAAMC,eAElBP,O,iCCtBf,kBAEMQ,EAAY9c,YAChB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,kFACR,sBACED,SAAS,UACTC,EAAE,yFACFC,SAAS,eAGb,aAGawc,O,iCClBf,kBAEMC,EAAY/c,YAChB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,oEACR,sBAAMA,EAAE,2DAEV,aAGa0c,O,iCCdf,kBAEMC,EAAQhd,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,8MACFC,SAAS,cAGb,SAGa0c,O,iCCjBf,kBAEMC,EAAIjd,YACR,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,qMACFC,SAAS,cAGb,KAGa2c,O,iCCjBf,kBAEMC,EAAUld,YACd,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,uCACR,sBACED,SAAS,UACTC,EAAE,yFACFC,SAAS,eAGb,WAGa4c,O,iCClBf,kBAEMC,EAAend,YACnB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,qLACFC,SAAS,cAGb,gBAGa6c,O,iCCjBf,kBAEMC,EAAOpd,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,wEAEV,QAGa+c,O,iCCbf,kBAEMC,EAAOrd,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,wFACFC,SAAS,cAGb,QAGa+c,O,iCCjBf,kBAEMC,EAAMtd,YACV,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,ufACFC,SAAS,cAGb,OAGagd,O,mICaFC,EAAuB,CAClC,OACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,+DACA,+DACA,+DACA,+DACA,+DACA,+DACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,iEC1CIC,EAA4B,CAC9BpU,UAAW,MACXqU,WAAY,CACRC,UAAW,CACPC,eAAgB,CACZC,SAAU,CACNvH,OAAQ,MACRD,MAAO,SAInByH,UAAW,CACPF,eAAgB,CACZG,KAAM,CACFC,cAAe,UAI3BC,eAAgB,CACZL,eAAgB,CACZ,IAAK,CACDM,UAAW,cAEfC,KAAM,CACFC,oBAAqB,YACrBC,oBAAqB,cACrB/H,OAAQ,OACRD,MAAO,QAEX7U,KAAM,CACF8U,OAAQ,QAEZ,QAAS,CACLA,OAAQ,QAEZ,kBAAmB,CACfgI,OAAQ,qBAIpBC,cAAe,CACXC,aAAc,CACVC,qBAAsB,CAClB5K,QAAS,QAIrB6K,kBAAmB,CACfd,eAAgB,CACZG,KAAM,CACFY,aAAc,EACdC,SAAU,YAItBC,gBAAiB,CACbjB,eAAgB,CACZG,KAAM,CACFe,SAAU,OACVC,YAAa,UAIzBC,SAAU,CACNpB,eAAgB,CACZG,KAAM,CACFkB,gBAAiB,WAKjCC,WAAY,CACRC,OAAQ,CACJC,WAAY,KAEhBC,WAAY,qHACZC,GAAI,CACAF,WAAY,IACZG,SAAU,UAEdC,GAAI,CACAJ,WAAY,IACZG,SAAU,QAEdE,GAAI,CACAL,WAAY,IACZG,SAAU,WAEdG,GAAI,CACAN,WAAY,IACZG,SAAU,QAEdI,GAAI,CACAP,WAAY,IACZG,SAAU,UAEdK,GAAI,CACAR,WAAY,IACZG,SAAU,YAEdM,SAAU,CACNT,WAAY,OAKlBU,GAA2C,mBAC5CrW,IAAOC,MAAQ,CACZgU,WAAY,CACRqC,aAAc,CACVnC,eAAgB,CACZoC,MAAO,CACH,iBAAkB,CACdC,QAAS,IACT9L,MAAO,eAM3B+L,QAAS,CACLxQ,OAAQ,CACJyQ,OAAQ,WAEZC,WAAY,CACRC,QAAS,UACTC,WAAY,UACZC,MAAO,UACPC,YAAa,WAEjBpd,MAAO,CACHqd,aAAc,UACdC,KAAM,WAEVC,KAAM,QACNC,QAAS,CACLH,aAAc,UACdC,KAAM,WAEV/N,QAAS,CACL8N,aAAc,UACdC,KAAM,WAEVG,KAAM,CACFD,QAAS,UACTE,WAAY,UACZC,UAAW,UACXlH,KAAM,WAEVmH,QAAS,CACLP,aAAc,UACdC,KAAM,YAGdO,QDrK6B,CACnC,OACA,uEACA,uEACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,+DACA,+DACA,+DACA,+DACA,+DACA,+DACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,mEC4F+C,cAkD5CxX,IAAOyX,KAAO,CACXxD,WAAY,CACRyD,aAAc,CACVvD,eAAgB,CACZG,KAAM,CACFqD,aAAc,0CAK9BlB,QAAS,CACLE,WAAY,CACRC,QAAS,UACTC,WAAY,UACZC,MAAO,UACPC,YAAa,WAEjBa,QAAS,4BACTje,MAAO,CACHqd,aAAc,UACdC,KAAM,WAEVC,KAAM,OACNC,QAAS,CACLH,aAAc,UACdC,KAAM,WAGV/N,QAAS,CACL8N,aAAc,UACdC,KAAM,WAEVG,KAAM,CACFD,QAAS,UACTE,WAAY,UACZC,UAAW,UACXlH,KAAM,WAEVmH,QAAS,CACLP,aAAc,UACdC,KAAM,YAGdO,QAASzD,IA7FgC,cA+F5C/T,IAAO6X,OAAS,CACb5D,WAAY,CACRyD,aAAc,CACVvD,eAAgB,CACZG,KAAM,CACFqD,aAAc,0CAK9BlB,QAAS,CACLE,WAAY,CACRC,QAAS,UACTC,WAAY,UACZC,MAAO,UACPC,YAAa,WAEjBa,QAAS,4BACTje,MAAO,CACHqd,aAAc,UACdC,KAAM,WAEVC,KAAM,OACNC,QAAS,CACLH,aAAc,UACdC,KAAM,WAEV/N,QAAS,CACL8N,aAAc,UACdC,KAAM,WAEVG,KAAM,CACFD,QAAS,UACTE,WAAY,UACZC,UAAW,UACXlH,KAAM,WAEVmH,QAAS,CACLP,aAAc,UACdC,KAAM,YAGdO,QAASzD,IAzIgC,GA6IpC+D,EAAoB,WAAsC,IAArC3I,EAAoC,uDAAd,GAChD4I,EAAe1B,EAAclH,EAAOpP,OAEnCgY,IACDre,QAAQse,KAAK,IAAIpe,MAAJ,oBAAuBuV,EAAOpP,MAA9B,mBACbgY,EAAe1B,EAAcrW,IAAOC,QAGxC,IAAIF,EAAQkY,YACRC,IACI,GACAlE,EACA+D,EAHC,eAMO5I,EAAOrP,gBAAkB,CACrB4I,MAAO,CACHwM,aAAc,MAK9B,CACItV,UAAWuP,EAAOvP,aAS9B,OAJIuP,EAAOtP,sBACPE,EAAQF,YAAoBE,IAGzBA,I,iCCpSX,kBAEMoY,EAAO3hB,YACX,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,2EACR,sBAAMA,EAAE,+DAEV,QAGashB,O,iCCdf,kBAEMC,EAAiB5hB,YACrB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,+OACR,sBACED,SAAS,UACTC,EAAE,udACFC,SAAS,eAGb,kBAGashB,O,iCClBf,kBAEMC,EAAoB7hB,YACxB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,mIACFC,SAAS,cAGb,qBAGauhB,O,yrBCRTthB,EAAM,IAAIC,KAEZshB,EAAe,CACjBC,MAAO,CACL,CACErhB,GAAI,2BACJY,YAAa,GACb0gB,WAAY,CACV,CACEthB,GAAI,2BACJK,KAAM,uBACNkhB,WAAY,CACV,CACEvhB,GAAI,2BACJK,KAAM,UACNyO,MAAO,eAKf0S,SAAU,CACR,CACExhB,GAAI,4BACJyhB,OAAQ,2BACR1gB,UAAWN,YAAQZ,EAAK,GAAGO,UAC3BshB,SAAU,2BACV9d,QAAS,sBAGb+d,MAAO,6CACPC,YAAa,kkBACbC,IAAKC,YAAQjiB,EAAK,GAAGO,UACrB2hB,cAAc,EACdC,SAAU,2BACVC,UAAW,CAAC,4BACZ5hB,KAAM,8BAER,CACEL,GAAI,2BACJY,YAAa,GACb0gB,WAAY,GACZE,SAAU,GACVG,MAAO,KACPC,YAAa,2EACbC,IAAKC,YAAQjiB,EAAK,GAAGO,UACrB2hB,cAAc,EACdC,SAAU,2BACVC,UAAW,CAAC,2BAA4B,4BACxC5hB,KAAM,yCAER,CACEL,GAAI,2BACJY,YAAa,GACb0gB,WAAY,GACZE,SAAU,GACVG,MAAO,KACPC,YAAa,+FACbC,IAAK,KACLE,cAAc,EACdC,SAAU,2BACVC,UAAW,GACX5hB,KAAM,gEAER,CACEL,GAAI,2BACJY,YAAa,GACb0gB,WAAY,GACZE,SAAU,GACVG,MAAO,KACPC,YAAa,+FACbC,IAAK,KACLE,cAAc,EACdC,SAAU,2BACVC,UAAW,CAAC,2BAA4B,4BACxC5hB,KAAM,wBAER,CACEL,GAAI,2BACJY,YAAa,GACb0gB,WAAY,GACZE,SAAU,GACVG,MAAO,KACPC,YAAa,+FACbC,IAAK,KACLE,cAAc,EACdC,SAAU,2BACVC,UAAW,CAAC,4BACZ5hB,KAAM,wCAER,CACEL,GAAI,2BACJY,YAAa,GACb0gB,WAAY,GACZE,SAAU,GACVG,MAAO,KACPC,YAAa,+FACbC,IAAK,KACLE,cAAc,EACdC,SAAU,2BACVC,UAAW,GACX5hB,KAAM,8BAGV6hB,QAAS,CACP,CACEliB,GAAI,2BACJK,KAAM,OACN8hB,QAAS,CACP,2BACA,2BACA,2BACA,6BAGJ,CACEniB,GAAI,2BACJK,KAAM,WACN8hB,QAAS,CACP,2BACA,6BAGJ,CACEniB,GAAI,4BACJK,KAAM,OACN8hB,QAAS,KAGbC,QAAS,CACP,CACEpiB,GAAI,2BACJC,OAAQ,qDACRI,KAAM,eAER,CACEL,GAAI,2BACJC,OAAQ,uDACRI,KAAM,iBAER,CACEL,GAAI,2BACJC,OAAQ,oDACRI,KAAM,cAER,CACEL,GAAI,2BACJC,OAAQ,sDACRI,KAAM,gBAER,CACEL,GAAI,2BACJC,OAAQ,uDACRI,KAAM,mBA+iBCgiB,EAAY,I,wFAziBvB,WACE,OAAO1gB,QAAQC,QAAQC,YAASuf,M,0BAGlC,YAAyC,IAA1B/gB,EAAyB,EAAzBA,KACb,OAAO,IAAIsB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBmB,EAAiB,CACrBviB,GAAI6D,cACJxD,OACA8hB,QAAS,IAGXG,EAAYJ,QAAQrf,KAAK0f,GAGzBnB,EAAQkB,EAER1gB,EAAQC,YAAS0gB,IACjB,MAAOhgB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,0BAKvB,YAAqD,IAAtCsf,EAAqC,EAArCA,SAAUQ,EAA2B,EAA3BA,OACvB,OAAO,IAAI7gB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBmB,EAASD,EAAYJ,QAAQ7gB,MAAK,SAACohB,GAAD,OAAaA,EAAQziB,KAAOgiB,KAGpEpK,OAAO8K,OAAOH,EAAQC,GAGtBpB,EAAQkB,EAER1gB,EAAQC,YAAS0gB,IACjB,MAAOhgB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,yBAKvB,SAAYsf,GACV,OAAO,IAAIrgB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBmB,EAASD,EAAYJ,QAAQ7gB,MAAK,SAACohB,GAAD,OAAaA,EAAQziB,KAAOgiB,KAEpE,IAAKO,EAEH,YADAxgB,EAAO,IAAIW,MAAM,qBAKnB4f,EAAYjB,MAAQiB,EAAYjB,MAAMjf,QAAO,SAACugB,GAAD,OAAUA,EAAKX,WAAaA,KAGzEO,EAAOJ,QAAU,GAGjBf,EAAQkB,EAER1gB,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,0BAKvB,SAAasf,GACX,OAAO,IAAIrgB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAK7B,IAFekB,EAAYJ,QAAQ7gB,MAAK,SAACohB,GAAD,OAAaA,EAAQziB,KAAOgiB,KAIlE,YADAjgB,EAAO,IAAIW,MAAM,qBAKnB4f,EAAYjB,MAAQiB,EAAYjB,MAAMjf,QAAO,SAACugB,GAAD,OAAUA,EAAKX,WAAaA,KAGzEM,EAAYJ,QAAUI,EAAYJ,QAAQ9f,QAAO,SAACqgB,GAAD,OAAaA,EAAQziB,KAAOgiB,KAG7EZ,EAAQkB,EAER1gB,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,wBAKvB,YAA+C,IAAlCsf,EAAiC,EAAjCA,SAAU3hB,EAAuB,EAAvBA,KACrB,OAAO,IAAIsB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBmB,EAASD,EAAYJ,QAAQ7gB,MAAK,SAACohB,GAAD,OAAaA,EAAQziB,KAAOgiB,KAEpE,IAAKO,EAEH,YADAxgB,EAAO,IAAIW,MAAM,qBAKnB,IAAMigB,EAAa,CACjB3iB,GAAI6D,cACJjD,YAAa,GACb0gB,WAAY,GACZE,SAAU,GACVG,MAAO,KACPC,YAAa,KACbC,IAAK,KACLE,cAAc,EACdC,WACAC,UAAW,GACX5hB,QAIFiiB,EAAYjB,MAAMxe,KAAK8f,GAGvBJ,EAAOJ,QAAQtf,KAAK8f,EAAK3iB,IAGzBohB,EAAQkB,EAER1gB,EAAQC,YAAS8gB,IACjB,MAAOpgB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,wBAKvB,YAA+C,IAAlC+e,EAAiC,EAAjCA,OAAQe,EAAyB,EAAzBA,OACnB,OAAO,IAAI7gB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKf8f,EAAOniB,OACTsiB,EAAKtiB,KAAOmiB,EAAOniB,MAGjBmiB,EAAOZ,cACTe,EAAKf,YAAcY,EAAOZ,aAI5BhK,OAAO8K,OAAOC,EAAMH,GAGpBpB,EAAQkB,EAER1gB,EAAQC,YAAS8gB,IACjB,MAAOpgB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,sBAKvB,YAAyD,IAA9C+e,EAA6C,EAA7CA,OAAQoB,EAAqC,EAArCA,SAAUb,EAA2B,EAA3BA,SAC3B,OAAO,IAAIrgB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnB,IAAMogB,EAAaR,EAAYJ,QAAQ7gB,MAAK,SAACkhB,GAAD,OAAYA,EAAOviB,KAAO2iB,EAAKX,YAE3E,IAAKc,EAEH,YADA/gB,EAAO,IAAIW,MAAM,qBAOnB,GAFAogB,EAAWX,QAAUW,EAAWX,QAAQ/f,QAAO,SAAC2gB,GAAD,OAAaA,IAAYtB,KAEpEO,EAAU,CAEZ,IAAMgB,EAAkBV,EAAYJ,QAAQ7gB,MAAK,SAACkhB,GAAD,OAAYA,EAAOviB,KAAOgiB,KAE3E,IAAKgB,EAEH,YADAjhB,EAAO,IAAIW,MAAM,qBAKnBsgB,EAAgBb,QAAQc,OAAOJ,EAAU,EAAGF,EAAK3iB,IAGjD2iB,EAAKX,SAAWgB,EAAgBhjB,QAGhC8iB,EAAWX,QAAQc,OAAOJ,EAAU,EAAGF,EAAK3iB,IAI9CohB,EAAQkB,EAER1gB,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,wBAKvB,SAAW+e,GACT,OAAO,IAAI9f,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnB4f,EAAYjB,MAAQiB,EAAYjB,MAAMjf,QAAO,SAACwgB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAGrE,IAAMc,EAASD,EAAYJ,QAAQ7gB,MAAK,SAACohB,GAAD,OAAaA,EAAQziB,KAAO2iB,EAAKX,YAGrEO,IACFA,EAAOJ,QAAUI,EAAOJ,QAAQ/f,QAAO,SAAC2gB,GAAD,OAAaA,IAAYtB,MAIlEL,EAAQkB,EAER1gB,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,wBAKvB,YAAmD,IAAtC+e,EAAqC,EAArCA,OAAQ7d,EAA6B,EAA7BA,QACnB,OAAO,IAAIjC,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAMnB,IAAMwgB,EAAU,CACdljB,GAAI6D,cACJ4d,SACA1gB,UAAWlB,EAAIO,UACfshB,SAAU,2BACV9d,WAIF+e,EAAKnB,SAAS3e,KAAKqgB,GAGnB9B,EAAQkB,EAER1gB,EAAQC,YAASqhB,IACjB,MAAO3gB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,0BAKvB,YAAoD,IAArC+e,EAAoC,EAApCA,OAAQphB,EAA4B,EAA5BA,KACrB,OAAO,IAAIsB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnB,IAAMygB,EAAuB,CAC3BnjB,GAAI6D,cACJxD,OACAkhB,WAAY,IAIdoB,EAAKrB,WAAWze,KAAKsgB,GAGrB/B,EAAQkB,EAER1gB,EAAQC,YAASshB,IACjB,MAAO5gB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,6BAKvB,YAAsE,IAApD+e,EAAmD,EAAnDA,OAAQ2B,EAA2C,EAA3CA,YAAaZ,EAA8B,EAA9BA,OACrC,OAAO,IAAI7gB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnB,IAAMygB,EAAYR,EAAKrB,WAAWjgB,MAAK,SAACgiB,GAAD,OAAgBA,EAAWrjB,KAAOojB,KAEzE,IAAKD,EAEH,YADAphB,EAAO,IAAIW,MAAM,wBAKnBkV,OAAO8K,OAAOS,EAAWX,GAGzBpB,EAAQkB,EAER1gB,EAAQC,YAASshB,IACjB,MAAO5gB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,6BAKvB,YAAyD,IAAvC+e,EAAsC,EAAtCA,OAAQ2B,EAA8B,EAA9BA,YACxB,OAAO,IAAIzhB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnBigB,EAAKrB,WAAaqB,EAAKrB,WAAWlf,QAAO,SAACkf,GAAD,OAAgBA,EAAWthB,KAAOojB,KAG3EhC,EAAQkB,EAER1gB,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,0BAKvB,YAAiE,IAAlD+e,EAAiD,EAAjDA,OAAQ2B,EAAyC,EAAzCA,YAAa/iB,EAA4B,EAA5BA,KAClC,OAAO,IAAIsB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnB,IAAMygB,EAAYR,EAAKrB,WAAWjgB,MAAK,SAACgiB,GAAD,OAAgBA,EAAWrjB,KAAOojB,KAEzE,IAAKD,EAEH,YADAphB,EAAO,IAAIW,MAAM,wBAKnB,IAAM4gB,EAAuB,CAC3BtjB,GAAI6D,cACJuf,cACA/iB,OACAyO,MAAO,cAITqU,EAAU5B,WAAW1e,KAAKygB,GAG1BlC,EAAQkB,EAER1gB,EAAQC,YAASyhB,IACjB,MAAO/gB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,6BAKvB,YAAmF,IAAjE+e,EAAgE,EAAhEA,OAAQ2B,EAAwD,EAAxDA,YAAaG,EAA2C,EAA3CA,YAAaf,EAA8B,EAA9BA,OAClD,OAAO,IAAI7gB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnB,IAAMygB,EAAYR,EAAKrB,WAAWjgB,MAAK,SAACgiB,GAAD,OAAgBA,EAAWrjB,KAAOojB,KAEzE,IAAKD,EAEH,YADAphB,EAAO,IAAIW,MAAM,wBAKnB,IAAM4gB,EAAYH,EAAU5B,WAAWlgB,MAAK,SAACmiB,GAAD,OAAgBA,EAAWxjB,KAAOujB,KAE9E,IAAKD,EAEH,YADAvhB,EAAO,IAAIW,MAAM,yBAKnBkV,OAAO8K,OAAOY,EAAWd,GAGzBpB,EAAQkB,EAER1gB,EAAQC,YAASyhB,IACjB,MAAO/gB,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,gC,6BAKvB,YAAsE,IAApD+e,EAAmD,EAAnDA,OAAQ2B,EAA2C,EAA3CA,YAAaG,EAA8B,EAA9BA,YACrC,OAAO,IAAI5hB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMugB,EAAczgB,YAASuf,GAGvBuB,EAAOL,EAAYjB,MAAMhgB,MAAK,SAACuhB,GAAD,OAAWA,EAAM5iB,KAAOyhB,KAE5D,IAAKkB,EAEH,YADA5gB,EAAO,IAAIW,MAAM,mBAKnB,IAAMygB,EAAYR,EAAKrB,WAAWjgB,MAAK,SAACgiB,GAAD,OAAgBA,EAAWrjB,KAAOojB,KAEzE,IAAKD,EAEH,YADAphB,EAAO,IAAIW,MAAM,wBAKnBygB,EAAU5B,WAAa4B,EAAU5B,WAAWnf,QAAO,SAACkhB,GAAD,OACjDA,EAAUtjB,KAAOujB,KAInBnC,EAAQkB,EAER1gB,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,iBAAkBF,GAChCR,EAAO,IAAIW,MAAM,kC,cCnqBnB+gB,EAAQC,YAAY,CACxBrjB,KAAM,SACNmO,aAlBgC,CAChCmV,UAAU,EACVzB,QAAS,CACP0B,KAAM,GACNC,OAAQ,IAEVxC,MAAO,CACLuC,KAAM,GACNC,OAAQ,IAEVzB,QAAS,CACPwB,KAAM,GACNC,OAAQ,KAOVC,SAAU,CACRC,SADQ,SAENjV,EACAC,GAEA,IAAMqS,EAAQrS,EAAO7C,QAErB4C,EAAMoT,QAAQ0B,KAAOI,YAAa5C,EAAMc,SACxCpT,EAAMoT,QAAQ2B,OAASjM,OAAOC,KAAK/I,EAAMoT,QAAQ0B,MACjD9U,EAAMuS,MAAMuC,KAAOI,YAAa5C,EAAMC,OACtCvS,EAAMuS,MAAMwC,OAASjM,OAAOC,KAAK/I,EAAMuS,MAAMuC,MAC7C9U,EAAMsT,QAAQwB,KAAOI,YAAa5C,EAAMgB,SACxCtT,EAAMsT,QAAQyB,OAASjM,OAAOC,KAAK/I,EAAMsT,QAAQwB,MACjD9U,EAAM6U,UAAW,GAEnBM,aAfQ,SAgBNnV,EACAC,GAEA,IAAMwT,EAASxT,EAAO7C,QAEtB4C,EAAMoT,QAAQ0B,KAAKrB,EAAOviB,IAAMuiB,EAChCzT,EAAMoT,QAAQ2B,OAAOhhB,KAAK0f,EAAOviB,KAEnCkkB,aAxBQ,SAyBNpV,EACAC,GAEA,IAAMwT,EAASxT,EAAO7C,QAEtB4C,EAAMoT,QAAQ0B,KAAKrB,EAAOviB,IAAMuiB,GAElC4B,YAhCQ,SAiCNrV,EACAC,GAEA,IAAMiT,EAAWjT,EAAO7C,QAGhBiW,EAAYrT,EAAMoT,QAAQ0B,KAAK5B,GAA/BG,QAGRrT,EAAMoT,QAAQ0B,KAAK5B,GAAUG,QAAU,GAGvCA,EAAQ5e,SAAQ,SAACke,UACR3S,EAAMuS,MAAMuC,KAAKnC,MAG1B3S,EAAMuS,MAAMwC,OAAS/U,EAAMuS,MAAMwC,OAAOzhB,QAAO,SAACqf,GAAD,OAAYU,EAAQ7f,SAASmf,OAE9E2C,aAnDQ,SAoDNtV,EACAC,GAEA,IAAMiT,EAAWjT,EAAO7C,eAEjB4C,EAAMoT,QAAQ0B,KAAK5B,GAC1BlT,EAAMoT,QAAQ2B,OAAS/U,EAAMoT,QAAQ2B,OAAOzhB,QAAO,SAACiiB,GAAD,OAAaA,IAAYrC,MAE9EsC,WA5DQ,SA6DNxV,EACAC,GAEA,IAAM4T,EAAO5T,EAAO7C,QAEpB4C,EAAMuS,MAAMuC,KAAKjB,EAAK3iB,IAAM2iB,EAC5B7T,EAAMuS,MAAMwC,OAAOhhB,KAAK8f,EAAK3iB,IAG7B8O,EAAMoT,QAAQ0B,KAAKjB,EAAKX,UAAUG,QAAQtf,KAAK8f,EAAK3iB,KAEtDukB,WAxEQ,SAyENzV,EACAC,GAEA,IAAM4T,EAAO5T,EAAO7C,QAEpB0L,OAAO8K,OAAO5T,EAAMuS,MAAMuC,KAAKjB,EAAK3iB,IAAK2iB,IAE3C6B,SAhFQ,SAiFN1V,EACAC,GAEA,MAAuCA,EAAO7C,QAAtCuV,EAAR,EAAQA,OAAQoB,EAAhB,EAAgBA,SAAUb,EAA1B,EAA0BA,SACpByC,EAAiB3V,EAAMuS,MAAMuC,KAAKnC,GAAQO,SAGhDlT,EAAMoT,QAAQ0B,KAAKa,GAAgBtC,QACjCrT,EAAMoT,QAAQ0B,KAAKa,GAAgBtC,QAAQ/f,QAAO,SAAC2gB,GAAD,OAAaA,IAAYtB,KAIzEO,GAEFlT,EAAMuS,MAAMuC,KAAKnC,GAAQO,SAAWA,EAEpClT,EAAMoT,QAAQ0B,KAAK5B,GAAUG,QAAQc,OAAOJ,EAAU,EAAGpB,IAGzD3S,EAAMoT,QAAQ0B,KAAKa,GAAgBtC,QAAQc,OAAOJ,EAAU,EAAGpB,IAGnEiD,WAvGQ,SAwGN5V,EACAC,GAEA,IAAM0S,EAAS1S,EAAO7C,QACd8V,EAAalT,EAAMuS,MAAMuC,KAAKnC,GAA9BO,gBAEDlT,EAAMuS,MAAMuC,KAAKnC,GACxB3S,EAAMuS,MAAMwC,OAAS/U,EAAMuS,MAAMwC,OAAOzhB,QAAO,SAAC2gB,GAAD,OAAaA,IAAYtB,KACxE3S,EAAMoT,QAAQ0B,KAAK5B,GAAUG,QAC3BrT,EAAMoT,QAAQ0B,KAAK5B,GAAUG,QAAQ/f,QAAO,SAAC2gB,GAAD,OAAaA,IAAYtB,MAGzEkD,WApHQ,SAqHN7V,EACAC,GAEA,IAAMmU,EAAUnU,EAAO7C,QACV4C,EAAMuS,MAAMuC,KAAKV,EAAQzB,QAEjCD,SAAS3e,KAAKqgB,IAErB0B,aA7HQ,SA8HN9V,EACAC,GAEA,MAA8BA,EAAO7C,QAA7BuV,EAAR,EAAQA,OAAQ0B,EAAhB,EAAgBA,UACHrU,EAAMuS,MAAMuC,KAAKnC,GAEzBH,WAAWze,KAAKsgB,IAEvB0B,gBAtIQ,SAuIN/V,EACAC,GAEA,MAA8BA,EAAO7C,QAA7BuV,EAAR,EAAQA,OAAQ0B,EAAhB,EAAgBA,UACVR,EAAO7T,EAAMuS,MAAMuC,KAAKnC,GAE9BkB,EAAKrB,WAAaqB,EAAKrB,WAAW1U,KAAI,SAACyW,GACrC,OAAIA,EAAWrjB,KAAOmjB,EAAUnjB,GACvBmjB,EAGFE,MAGXyB,gBArJQ,SAsJNhW,EACAC,GAEA,MAAgCA,EAAO7C,QAA/BuV,EAAR,EAAQA,OAAQ2B,EAAhB,EAAgBA,YACVT,EAAO7T,EAAMuS,MAAMuC,KAAKnC,GAE9BkB,EAAKrB,WAAaqB,EAAKrB,WAAWlf,QAAO,SAAC+gB,GAAD,OAAeA,EAAUnjB,KAAOojB,MAE3E2B,aA9JQ,SA+JNjW,EACAC,GAEA,MAA2CA,EAAO7C,QAA1CuV,EAAR,EAAQA,OAAQ2B,EAAhB,EAAgBA,YAAaE,EAA7B,EAA6BA,UAChBxU,EAAMuS,MAAMuC,KAAKnC,GACPH,WAAWjgB,MAAK,SAACgiB,GAAD,OAAgBA,EAAWrjB,KAAOojB,KAE/D7B,WAAW1e,KAAKygB,IAE5B0B,gBAxKQ,SAyKNlW,EACAC,GAEA,MAIIA,EAAO7C,QAHTuV,EADF,EACEA,OACA2B,EAFF,EAEEA,YACAE,EAHF,EAGEA,UAGIH,EADOrU,EAAMuS,MAAMuC,KAAKnC,GACPH,WAAWjgB,MAAK,SAACgiB,GAAD,OAAgBA,EAAWrjB,KAAOojB,KAEzED,EAAU5B,WAAa4B,EAAU5B,WAAW3U,KAAI,SAAC4W,GAC/C,OAAIA,EAAWxjB,KAAOsjB,EAAUtjB,GACvBsjB,EAGFE,MAGXyB,gBA5LQ,SA6LNnW,EACAC,GAEA,MAA6CA,EAAO7C,QAA5CuV,EAAR,EAAQA,OAAQ2B,EAAhB,EAAgBA,YAAaG,EAA7B,EAA6BA,YAEvBJ,EADOrU,EAAMuS,MAAMuC,KAAKnC,GACPH,WAAWjgB,MAAK,SAACgiB,GAAD,OAAgBA,EAAWrjB,KAAOojB,KAEzED,EAAU5B,WACR4B,EAAU5B,WAAWnf,QAAO,SAACkhB,GAAD,OAAeA,EAAUtjB,KAAOujB,SAMrDnU,EAAYqU,EAAZrU,QAEF2U,EAAW,yDAAgB,WAAOpU,GAAP,eAAApE,EAAA,sEACnB8W,EAAU0B,WADS,OAChCnY,EADgC,OAGtC+D,EAAS8T,EAAMyB,QAAQnB,SAASnY,IAHM,2CAAhB,uDAMXqY,EAAe,SAAC5jB,GAAD,8CAA4B,WAAOsP,GAAP,eAAApE,EAAA,sEACnC8W,EAAU4B,aAAa,CAAE5jB,SADU,OAChDuL,EADgD,OAGtD+D,EAAS8T,EAAMyB,QAAQjB,aAAarY,IAHkB,2CAA5B,uDAMfsY,EAAe,SAC1BlC,EACAQ,GAF0B,8CAGb,WAAO7S,GAAP,eAAApE,EAAA,sEACM8W,EAAU6B,aAAa,CAAElC,WAAUQ,WADzC,OACP5W,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQhB,aAAatY,IAHvB,2CAHa,uDASfuY,EAAc,SAACnC,GAAD,8CAAgC,WAAOrS,GAAP,SAAApE,EAAA,sEACnD8W,EAAU8B,YAAYnC,GAD6B,OAGzDrS,EAAS8T,EAAMyB,QAAQf,YAAYnC,IAHsB,2CAAhC,uDAMdoC,EAAe,SAACpC,GAAD,8CAAgC,WAAOrS,GAAP,SAAApE,EAAA,sEACpD8W,EAAU+B,aAAapC,GAD6B,OAG1DrS,EAAS8T,EAAMyB,QAAQd,aAAapC,IAHsB,2CAAhC,uDAMfsC,EAAa,SACxBtC,EACA3hB,GAFwB,8CAGX,WAAOsP,GAAP,eAAApE,EAAA,sEACM8W,EAAUiC,WAAW,CAAEtC,WAAU3hB,SADvC,OACPuL,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQZ,WAAW1Y,IAHrB,2CAHW,uDASb2Y,EAAa,SACxB9C,EACAe,GAFwB,8CAGX,WAAO7S,GAAP,eAAApE,EAAA,sEACM8W,EAAUkC,WAAW,CAAE9C,SAAQe,WADrC,OACP5W,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQX,WAAW3Y,IAHrB,2CAHW,uDASb4Y,EAAW,SACtB/C,EACAoB,EACAb,GAHsB,8CAIT,WAAOrS,GAAP,SAAApE,EAAA,sEACP8W,EAAUmC,SAAS,CAAE/C,SAAQoB,WAAUb,aADhC,OAGbrS,EAAS8T,EAAMyB,QAAQV,SAAS,CAC9B/C,SACAoB,WACAb,cANW,2CAJS,uDAcX0C,EAAa,SAACjD,GAAD,8CAA8B,WAAO9R,GAAP,SAAApE,EAAA,sEAChD8W,EAAUqC,WAAWjD,GAD2B,OAGtD9R,EAAS8T,EAAMyB,QAAQR,WAAWjD,IAHoB,2CAA9B,uDAMbkD,EAAa,SACxBlD,EACA7d,GAFwB,8CAGX,WAAO+L,GAAP,eAAApE,EAAA,sEACM8W,EAAUsC,WAAW,CAAElD,SAAQ7d,YADrC,OACPgI,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQP,WAAW/Y,IAHrB,2CAHW,uDASbgZ,EAAe,SAC1BnD,EACAphB,GAF0B,8CAGb,WAAOsP,GAAP,eAAApE,EAAA,sEACM8W,EAAUuC,aAAa,CAAEnD,SAAQphB,SADvC,OACPuL,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQN,aAAa,CAClCnD,SACA0B,UAAWvX,KALA,2CAHa,uDAYfiZ,EAAkB,SAC7BpD,EACA2B,EACAZ,GAH6B,8CAIhB,WAAO7S,GAAP,eAAApE,EAAA,sEACM8W,EAAUwC,gBAAgB,CAAEpD,SAAQ2B,cAAaZ,WADvD,OACP5W,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQL,gBAAgB,CACrCpD,SACA0B,UAAWvX,KALA,2CAJgB,uDAalBkZ,EAAkB,SAC7BrD,EACA2B,GAF6B,8CAGhB,WAAOzT,GAAP,SAAApE,EAAA,sEACP8W,EAAUyC,gBAAgB,CAAErD,SAAQ2B,gBAD7B,OAGbzT,EAAS8T,EAAMyB,QAAQJ,gBAAgB,CACrCrD,SACA2B,iBALW,2CAHgB,uDAYlB2B,EAAe,SAC1BtD,EACA2B,EACA/iB,GAH0B,8CAIb,WAAOsP,GAAP,eAAApE,EAAA,sEACM8W,EAAU0C,aAAa,CAAEtD,SAAQ2B,cAAa/iB,SADpD,OACPuL,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQH,aAAa,CAClCtD,SACA2B,cACAE,UAAW1X,KANA,2CAJa,uDAcfoZ,EAAkB,SAC7BvD,EACA2B,EACAG,EACAf,GAJ6B,8CAKhB,WAAO7S,GAAP,eAAApE,EAAA,sEACM8W,EAAU2C,gBAAgB,CAAEvD,SAAQ2B,cAAaG,cAAaf,WADpE,OACP5W,EADO,OAGb+D,EAAS8T,EAAMyB,QAAQF,gBAAgB,CACrCvD,SACA2B,cACAE,UAAW1X,KANA,2CALgB,uDAelBqZ,EAAkB,SAC7BxD,EACA2B,EACAG,GAH6B,8CAIhB,WAAO5T,GAAP,SAAApE,EAAA,sEACP8W,EAAU4C,gBAAgB,CAAExD,SAAQ2B,cAAaG,gBAD1C,OAGb5T,EAAS8T,EAAMyB,QAAQD,gBAAgB,CACrCxD,SACA2B,cACAG,iBANW,2CAJgB,wD,iCCzY/B,kBAEM4B,EAAQ7lB,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,qHACFC,SAAS,cAGb,SAGaulB,O,iCCjBf,kBAEMC,EAAO9lB,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,yGACFC,SAAS,cAGb,QAGawlB,O,iCCjBf,kBAEMC,EAAQ/lB,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,uLAEV,SAGa0lB,O,iCCbf,kBAEMC,EAAWhmB,YACf,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,0MAEV,YAGa2lB,O,gHCyCAC,IAjDQ,SAACpc,GAAD,OACrB,eAAC,IAAD,yBACEqc,UAAW,EACXpS,GAAI,CAAEoB,gBAAiB,qBACnBrL,GAHN,cAKE,eAAC,IAAD,CAASiK,GAAI,CAAEuD,UAAW,IAA1B,UACE,cAAC,IAAD,CAAYI,GAAG,IAAf,SACE,cAAC,IAAD,CACE3D,GAAI,CACFuC,OAAQ,GACRD,MAAO,QAIb,cAAC,IAAD,CAAKtC,GAAI,CAAE0B,SAAU,KACrB,cAAC,IAAD,CACEtB,MAAM,gBACNkB,UAAW+Q,IACX1O,GAAG,IACH2O,UAAU,OACVxS,QAAQ,QALV,kBASA,cAAC,IAAD,CACEM,MAAM,cACNkB,UAAW+Q,IACX1O,GAAG,QACH2O,UAAU,OACVtS,GAAI,CAAEuS,GAAI,GACVzS,QAAQ,QANV,kBAUA,cAAC,IAAD,CACEM,MAAM,gBACNkB,UAAW+Q,IACX1O,GAAG,WACH2O,UAAU,OACVxS,QAAQ,QALV,2BAUF,cAAC,IAAD,U,iCClDJ,kBAEM0S,EAAetmB,YACnB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,uGACR,sBAAMA,EAAE,4FAEV,gBAGaimB,O,sMCwSAC,EA/OA,SAAC1c,GACd,IAAI2c,EAAwB,GACxBC,EAAyB,GACzBC,EAA2B,GAC3BC,EAAa,GAEjB,GADAzjB,QAAQsJ,IAAI3C,GACRA,EAAM+c,WAAW9iB,OAAS,EAAG,CAC/B+F,EAAM+c,WAAWtZ,KAAI,SAAC6D,GAYpB,GAXsB,aAAlBA,EAAG0V,cASLF,EAAaxV,EAAG2V,mBAEI,gBAAlB3V,EAAG0V,YAA+B,CACpC,IAAIE,EAAmB,CACrBvZ,IAAK2D,EAAG0V,YACRzV,MAAM,2BAAD,OAAcD,EAAG2V,mBACtB/V,KAAM,KACN9L,SAAU,EACV+hB,KAAM,cAACC,EAAA,EAAD,CAAYlmB,KAAM,OAAQue,SAAS,UACzC4H,MAAO,MAETV,EAAOjjB,KAAKwjB,GAEd,GAAsB,mBAAlB5V,EAAG0V,YAAkC,CACvC,IAAIE,EAAmB,CACrBvZ,IAAK2D,EAAG0V,YACRzV,MAAM,8BAAD,OAAiBD,EAAG2V,mBACzB/V,KAAM,KACN9L,SAAU,EACV+hB,KAAM,cAACC,EAAA,EAAD,CAAYlmB,KAAM,QAASue,SAAS,UAC1C4H,MAAO,MAETT,EAAQljB,KAAKwjB,GAEf,GAAsB,SAAlB5V,EAAG0V,YAAwB,CAC7B,IAAIE,EAAmB,CACrBvZ,IAAK2D,EAAG0V,YACRzV,MAAM,gBAAD,OAAaD,EAAG2V,mBACrB/V,KAAM,KACN9L,SAAU,EACV+hB,KAAM,cAACC,EAAA,EAAD,CAAYlmB,KAAM,UAAWue,SAAS,UAC5C4H,MAAO,MAETT,EAAQljB,KAAKwjB,GAEf,GAAsB,eAAlB5V,EAAG0V,YAA8B,CACnC,IAAIE,EAAmB,CACrBvZ,IAAK2D,EAAG0V,YACRzV,MAAM,UAAD,OAAYD,EAAG2V,mBACpB/V,KAAM,KACN9L,SAAU,EACV+hB,KAAM,cAACC,EAAA,EAAD,CAAYlmB,KAAM,OAAQue,SAAS,UACzC4H,MAAO,MAETT,EAAQljB,KAAKwjB,GAEf,GAAsB,WAAlB5V,EAAG0V,YAA0B,CAC/B,IAAIE,EAAmB,CACrBvZ,IAAK2D,EAAG0V,YACRzV,MAAM,YAAD,OAAcD,EAAG2V,mBACtB/V,KAAK,WAAD,OAAaI,EAAG2V,mBACpB7hB,SAAU,EACV+hB,KAAM,cAACC,EAAA,EAAD,CAAYlmB,KAAM,UAAWue,SAAS,UAC5C4H,MAAO,MAETT,EAAQljB,KAAKwjB,OAGjBP,EAAOW,MAAK,SAAUlb,EAAGmb,GACvB,OAAOnb,EAAEhH,SAAWmiB,EAAEniB,YAExBwhB,EAAQU,MAAK,SAAUlb,EAAGmb,GACxB,OAAOnb,EAAEhH,SAAWmiB,EAAEniB,YAExB,IAAIoiB,EAAyB,CAC3B7Z,IAAK,iBACL4D,MAAO,gCACPL,KAAM,KACN9L,SAAU,EACV+hB,KAAM,KACNE,MAAOV,GAELc,EAA0B,CAC5B9Z,IAAK,iBACL4D,MAAO,+BACPL,KAAM,KACN9L,SAAU,EACV+hB,KAAM,KACNE,MAAOT,GAETC,EAAUnjB,KAAK8jB,GACfX,EAAUnjB,KAAK+jB,GAGjB,OACE,cAACzT,EAAA,EAAD,yBACEC,GAAI,CACFoB,gBAAiB,mBACjBqS,GAAI,EACJ/P,GAAI,CACFV,GAAI,EACJE,GAAI,KAGJnN,GATN,aAWE,eAACyN,EAAA,EAAD,CAAWC,SAAS,KAApB,UACE,cAAC1D,EAAA,EAAD,CACEC,GAAI,CACFoB,gBAAiB,mBACjBqS,GAAI,EACJ/P,GAAI,CACFV,GAAI,EACJE,GAAI,GAENwQ,GAAI,GAGJrI,WAAY,KAXhB,SAcGsI,kBAAQd,KAEX,eAAC/P,EAAA,EAAD,CAAMC,WAAS,EAAC6Q,QAAS,EAAzB,UACE,eAAC9Q,EAAA,EAAD,CACErJ,MAAI,EACJuJ,GAAI,EACJG,GAAI,EACJnD,GAAI,CACFa,QAAS,OACTyC,cAAe,SACf7B,WAAY,aACZoS,MAAO,CACL7Q,GAAI,EACJE,GAAI,IAGRA,GAAI,GAbN,UAgBE,cAAC,IAAD,CAAYS,GAAG,IAAf,SACE,cAAC5D,EAAA,EAAD,CACEC,GAAI,CAGF,UAAW,CACTsC,MAAO,QALb,SASE,qBACEjB,IAAI,gBACJE,IAAI,oEAIV,cAACM,EAAA,EAAD,CAAYzB,MAAM,gBAAgBJ,GAAI,CAAEC,GAAI,GAAKH,QAAQ,UAAzD,+BAID8S,EAAUpZ,KAAI,SAACsa,EAASC,GAAV,OACb,eAACjR,EAAA,EAAD,CACErJ,MAAI,EAEJuJ,GAAI,EACJG,GAAI,EACJnD,GAAI,CACF6T,MAAO,CACL7Q,GAAI+Q,EAAQ,EACZ7Q,GAAI6Q,EAAQ,IAGhB7Q,GAAI,GAXN,UAaE,cAACrB,EAAA,EAAD,CAAYzB,MAAM,gBAAgBN,QAAQ,WAA1C,SACGgU,EAAQxW,QAEX,cAAC0W,EAAA,EAAD,CAAMC,gBAAc,EAApB,SACGH,EAAQV,MAAM5Z,KAAI,SAAC0a,GAAD,OACjB,eAACC,EAAA,EAAD,CACEC,gBAAc,EAEdpU,GAAI,CACFyT,GAAI,EACJ/P,GAAI,GALR,UAQE,cAAC2Q,EAAA,EAAD,CACErU,GAAI,CACFyB,WAAY,SACZZ,QAAS,OACTkK,SAAU,EACVvJ,GAAI,IALR,SAQG0S,EAAKhB,OAGR,cAACoB,EAAA,EAAD,CACEzH,QACE,cAAC0H,EAAA,EAAD,CACEtX,KAAMiX,EAAKjX,KACXmD,MAAM,cACNN,QAAQ,YACRqE,OAAO,SAJT,SAMG+P,EAAK5W,YAzBP4W,EAAKxa,YAlBXoa,EAAQpa,WAqDnB,cAACiI,EAAA,EAAD,CACE3B,GAAI,CACFwU,YAAa,SAAC/e,GAAD,OACXgf,YAAMhf,EAAM0W,QAAQU,QAAQH,aAAc,MAC5C9I,GAAG,KAGP,eAAC/B,EAAA,EAAD,CAAYzB,MAAM,gBAAgBN,QAAQ,UAA1C,6CACmC,IACjC,qBAAKyB,IAAI,yCCzSbmT,EAAiBC,YAAmB,MAAnBA,EACrB,kBACE,CACEvT,gBAFJ,EAAG3L,MAEwB0W,QAAQE,WAAWC,QAC1C/J,OAAQ,OACRqS,WAAY,OAaHC,IARQ,kBACrB,eAACH,EAAD,WACE,cAACvC,EAAA,EAAD,IACA,cAAC,IAAD,IACA,cAAC,EAAD,S,6WCjBE1lB,EAAM,IAAIC,KAEVooB,EAAkB,CACtB,CACEloB,GAAI,MACJK,KAAM,WACNa,KAAM,gBAER,CACElB,GAAI,QACJK,KAAM,QACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,OACJK,KAAM,OACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,SACJK,KAAM,SACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,QACJK,KAAM,QACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,OACJK,KAAM,OACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,YACJK,KAAM,YACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,UACJK,KAAM,UACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,2BACJwT,MAAO,UACPnT,KAAM,OACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,2BACJwT,MAAO,UACPnT,KAAM,WACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,GAEf,CACEnB,GAAI,2BACJwT,MAAO,UACPnT,KAAM,WACN8nB,WAAY,EACZjnB,KAAM,eACNC,YAAa,IAIXinB,EAAkB,CACtB,CACEpoB,GAAI,2BACJqoB,OAAQ,WACRC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAU,CAAC,2BAA4B,4BACvCC,QAAS,gDACT9kB,QAAQ,ouDAYR+I,KAAM,CACJ1M,OAAQ,qDACRmN,MAAO,wBACP/M,KAAM,eAER0W,GAAI,CACF,CACE9W,OAAQ,uDACRmN,MAAO,0BACP/M,KAAM,kBAGVU,UAAWlB,EAAIO,WAEjB,CACEJ,GAAI,2BACJqoB,OAAQ,OACRC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAU,GACVC,QAAS,eACT9kB,QAAQ,2GAGR+I,KAAM,CACJ1M,OAAQ,sDACRmN,MAAO,yBACP/M,KAAM,gBAER0W,GAAI,CACF,CACE9W,OAAQ,uDACRmN,MAAO,0BACP/M,KAAM,kBAGVU,UAAWlB,EAAIO,WAEjB,CACEJ,GAAI,2BACJqoB,OAAQ,QACRC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAU,CAAC,4BACXC,QAAS,kBACT9kB,QAAQ,oHAGR+I,KAAM,CACJ1M,OAAQ,wDACRmN,MAAO,2BACP/M,KAAM,kBAER0W,GAAI,CACF,CACE9W,OAAQ,uDACRmN,MAAO,0BACP/M,KAAM,kBAGVU,UAAWlB,EAAIO,WAEjB,CACEJ,GAAI,2BACJqoB,OAAQ,QACRC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAU,CAAC,4BACXC,QAAS,uCACT9kB,QAAQ,kJAGR+I,KAAM,CACJ1M,OAAQ,uDACRmN,MAAO,0BACP/M,KAAM,iBAER0W,GAAI,CACF,CACE9W,OAAQ,uDACRmN,MAAO,0BACP/M,KAAM,kBAGVU,UAAWlB,EAAIO,YA4ENuoB,EAAU,I,yFAvErB,WACE,OAAOhnB,QAAQC,QAAQC,YAASqmB,M,uBAGlC,YAA2D,IAA/CU,EAA8C,EAA9CA,YAAaC,EAAiC,EAAjCA,YACvB,OAAO,IAAIlnB,SAAQ,SAACC,EAASG,GAC3B,IAGE,IAAI+mB,EAAc,UAAOV,GAGzB,GAAIS,EAAa,CACf,IAAM/V,EAAQoV,EAAO7mB,MAAK,SAAC0nB,GAAD,OAAYA,EAAO1oB,OAASwoB,KAQpDC,EANGhW,EAMcgW,EAAe1mB,QAAO,SAACsZ,GAAD,OAAUA,EAAK+M,SAASnmB,SAASwQ,EAAM9S,OAH7D,GAOrB,OAAQ4oB,GACN,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACHE,EAAiBA,EAAe1mB,QAAO,SAACsZ,GAAD,OAAUA,EAAK2M,SAAWO,KACjE,MACF,IAAK,UACHE,EAAiBA,EAAe1mB,QAAO,SAACsZ,GAAD,OAAUA,EAAK6M,aACtD,MACF,IAAK,YACHO,EAAiBA,EAAe1mB,QAAO,SAACsZ,GAAD,OAAUA,EAAK4M,eAM1D1mB,EAAQC,YAASinB,IACjB,MAAOvmB,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,gC,sBAKvB,SAASsmB,GACP,OAAO,IAAIrnB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMqL,EAAQgb,EAAO/mB,MAAK,SAAC4nB,GAAD,OAAWA,EAAMjpB,KAAOgpB,KAElD,IAAK5b,EAEH,YADArL,EAAO,IAAIW,MAAM,oBAInBd,EAAQC,YAASuL,IACjB,MAAO7K,GACPC,QAAQC,MAAM,eAAgBF,GAC9BR,EAAO,IAAIW,MAAM,kC,cC7OnB+gB,EAAQC,YAAY,CACxBrjB,KAAM,OACNmO,aAZ8B,CAC9B4Z,OAAQ,CACNxE,KAAM,GACNC,OAAQ,IAEVqE,OAAQ,GACRgB,eAAe,EACfC,eAAe,GAMfrF,SAAU,CACRsF,UADQ,SACEta,EAAkBC,GAC1BD,EAAMoZ,OAASnZ,EAAO7C,SAExBmd,UAJQ,SAIEva,EAAkBC,GAC1B,IAAMqZ,EAASrZ,EAAO7C,QAEtB4C,EAAMsZ,OAAOxE,KAAOI,YAAaoE,GACjCtZ,EAAMsZ,OAAOvE,OAASjM,OAAOC,KAAK/I,EAAMsZ,OAAOxE,OAEjD0F,SAVQ,SAUCxa,EAAkBC,GACzB,IAAM3B,EAAQ2B,EAAO7C,QAErB4C,EAAMsZ,OAAOxE,KAAKxW,EAAMpN,IAAMoN,EAEzB0B,EAAMsZ,OAAOvE,OAAOvhB,SAAS8K,EAAMpN,KACtC8O,EAAMsZ,OAAOvE,OAAOhhB,KAAKuK,EAAMpN,KAGnCupB,YAnBQ,SAmBIza,GACVA,EAAMoa,eAAgB,GAExBM,aAtBQ,SAsBK1a,GACXA,EAAMoa,eAAgB,GAExBO,YAzBQ,SAyBI3a,GACVA,EAAMqa,eAAgB,GAExBO,aA5BQ,SA4BK5a,GACXA,EAAMqa,eAAgB,MAKb/Z,EAAYqU,EAAZrU,QAEFga,EAAY,yDAAgB,WAAOzZ,GAAP,eAAApE,EAAA,sEACpBod,EAAQS,YADY,OACjCxd,EADiC,OAGvC+D,EAAS8T,EAAMyB,QAAQkE,UAAUxd,IAHM,2CAAhB,uDAMZyd,EAAY,SAAC,GAAD,IACvBR,EADuB,EACvBA,YACAD,EAFuB,EAEvBA,YAFuB,8CAGqC,WAAOjZ,GAAP,eAAApE,EAAA,sEACzCod,EAAQU,UAAU,CAAER,cAAaD,gBADQ,OACtDhd,EADsD,OAG5D+D,EAAS8T,EAAMyB,QAAQmE,UAAUzd,IAH2B,2CAHrC,uDASZ0d,EAAW,SAACN,GAAD,8CAA+B,WAAOrZ,GAAP,eAAApE,EAAA,sEAClCod,EAAQW,SAASN,GADiB,OAC/Cpd,EAD+C,OAGrD+D,EAAS8T,EAAMyB,QAAQoE,SAAS1d,IAHqB,2CAA/B,uDAMX2d,EAAc,yDAAgB,WAAO5Z,GAAP,SAAApE,EAAA,sDACzCoE,EAAS8T,EAAMyB,QAAQqE,eADkB,2CAAhB,uDAIdC,EAAe,yDAAgB,WAAO7Z,GAAP,SAAApE,EAAA,sDAC1CoE,EAAS8T,EAAMyB,QAAQsE,gBADmB,2CAAhB,uDAIfC,EAAc,yDAAgB,WAAO9Z,GAAP,SAAApE,EAAA,sDACzCoE,EAAS8T,EAAMyB,QAAQuE,eADkB,2CAAhB,uDAIdC,EAAe,yDAAgB,WAAO/Z,GAAP,SAAApE,EAAA,sDAC1CoE,EAAS8T,EAAMyB,QAAQwE,gBADmB,2CAAhB,wD,iCCnG5B,kBAEMC,EAAMrqB,YACV,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,8HACFC,SAAS,cAGb,OAGa+pB,O,iCCjBf,kBAEMC,EAAMtqB,YACV,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,+fACFC,SAAS,cAGb,OAGagqB,O,iCCjBf,kBAEMC,EAASvqB,YACb,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,yLACFC,SAAS,cAGb,UAGaiqB,O,iCCjBf,kBAEMC,EAAYxqB,YAChB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBACEC,SAAS,UACTC,EAAE,+MACFC,SAAS,YAEX,sBAAMD,EAAE,0GAEV,aAGamqB,O,iCClBf,kBAEMC,EAAYzqB,YAChB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,sHACFC,SAAS,cAGb,aAGamqB,O,iCCjBf,kBAEMC,EAAQ1qB,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,qHACFC,SAAS,cAGb,SAGaoqB,O,iCCjBf,kBAEMC,EAAa3qB,YACjB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,6CACR,sBACED,SAAS,UACTC,EAAE,0HACFC,SAAS,eAGb,cAGaqqB,O,iCClBf,kBAEMC,EAAM5qB,YACV,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,oCACR,sBACED,SAAS,UACTC,EAAE,0IACFC,SAAS,eAGb,OAGasqB,O,iCClBf,kBAEMC,EAAQ7qB,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,6FACFC,SAAS,cAGb,SAGauqB,O,iCCjBf,kBAEMC,EAAQ9qB,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,6JAEV,SAGayqB,O,iCCbf,kBAEMC,EAAU/qB,YACd,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,8IAEV,WAGa0qB,O,iCCbf,kBAEMC,EAAchrB,YAClB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,4fAEV,eAGa2qB,O,iCCbf,kBAEMC,EAAejrB,YACnB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACE+qB,OAAO,UACPC,cAAc,QACdC,eAAe,QACfC,YAAa,EACbhrB,EAAE,8FAGN,gBAGa4qB,O,iCCnBf,kBAGMK,EAAWtrB,YACf,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,yJACFC,SAAS,cAGb,YAGagrB,O,iCClBf,kBAEMC,EAAUvrB,YACd,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,uHACFC,SAAS,cAGb,WAGairB,O,iCCjBf,kBAEMC,EAAcxrB,YAClB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,oHACFC,SAAS,cAGb,eAGakrB,O,iCCjBf,kBAEMC,EAAgBzrB,YACpB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBAAME,EAAE,sCACR,sBACED,SAAS,UACTC,EAAE,sOACFC,SAAS,eAGb,iBAGamrB,O,iCClBf,kBAEMC,EAAe1rB,YACnB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,mGAEV,gBAGaqrB,O,iCCbf,kBAEMC,EAAO3rB,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,uMAEV,QAGasrB,O,iCCbf,kBAEMC,EAAU5rB,YACd,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,uSACFC,SAAS,cAGb,WAGasrB,O,iCCjBf,kBAEMC,EAAO7rB,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,yIAEV,QAGawrB,O,iCCbf,kBAEMC,EAAS9rB,YACb,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,6MACFC,SAAS,cAGb,UAGawrB,O,iCCjBf,kBAEMC,EAAc/rB,YAClB,qBACEC,MAAM,6BACNE,KAAK,OACLD,QAAQ,YACRgrB,OAAO,eAJT,SAME,sBACEC,cAAc,QACdC,eAAe,QACfC,YAAa,EACbhrB,EAAE,oDAGN,eAGa0rB,O,iCCnBf,kBAEMC,EAAchsB,YAClB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,oNACFC,SAAS,cAGb,eAGa0rB,O,iCCjBf,kBAEMC,EAAoBjsB,YACxB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,oHACFC,SAAS,cAGb,qBAGa2rB,O,iCCjBf,kBAEMC,EAASlsB,YACb,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBACEC,SAAS,UACTC,EAAE,+PACFC,SAAS,YAEX,sBAAMD,EAAE,mJAEV,UAGa6rB,O,iCClBf,kBAEMC,EAAansB,YACjB,sBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,UAKE,sBACEC,SAAS,UACTC,EAAE,gFACFC,SAAS,YAEX,sBAAMD,EAAE,0EAEV,cAGa8rB,O,iCClBf,kBAEMC,EAAQpsB,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,iGACFC,SAAS,cAGb,SAGa8rB,O,iCCjBf,kBAEMC,EAAUrsB,YACZ,qBACAC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHL,SAKA,sBACEC,SAAS,UACTC,EAAE,+LACFC,SAAS,cAGb,WAGa+rB,O,iCCjBf,kBAEMC,EAAQtsB,YACZ,qBACEC,MAAM,6BACNE,KAAK,OACLD,QAAQ,YACRgrB,OAAO,eAJT,SAME,sBACEC,cAAc,QACdC,eAAe,QACfC,YAAa,EACbhrB,EAAE,eAGN,SAGaisB,O,iCCnBf,kBAEMC,EAAQvsB,YACZ,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,oNAEV,SAGaksB,O,iCCbf,kBAEMC,EAAOxsB,YACX,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,yMAEV,QAGamsB,O,iCCbf,kBAEMC,EAASzsB,YACX,qBACAC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHL,SAKA,sBACEC,SAAS,UACTC,EAAE,+PACFC,SAAS,cAGb,UAGamsB,O,iCCjBf,kBAEMC,EAAY1sB,YAChB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBACEC,SAAS,UACTC,EAAE,8EACFC,SAAS,cAGb,aAGaosB,O,iCCjBf,kBAEMC,EAAe3sB,YACnB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,8RAEV,gBAGassB,O,iCCbf,kBAEMC,EAAgB5sB,YACpB,qBACEC,MAAM,6BACNC,QAAQ,YACRC,KAAK,eAHP,SAKE,sBAAME,EAAE,kOAEV,iBAGausB,O,sWCsBTzI,EAAQC,YAAY,CACxBrjB,KAAM,OACNmO,aAhB8B,CAC9B2d,eAAgB,KAChBpsB,SAAU,CACR6jB,KAAM,GACNC,OAAQ,IAEVnjB,QAAS,CACPkjB,KAAM,GACNC,OAAQ,IAEV5iB,aAAc,GACdmrB,WAAY,IAMZtI,SAAU,CACRuI,YADQ,SACIvd,EAAkBC,GAC5B,IAAMhP,EAAWgP,EAAO7C,QAExB4C,EAAM/O,SAAS6jB,KAAOI,YAAajkB,GACnC+O,EAAM/O,SAAS8jB,OAASjM,OAAOC,KAAK/I,EAAM/O,SAAS6jB,OAErD0I,WAPQ,SAOGxd,EAAkBC,GAC3B,IAAMrO,EAAUqO,EAAO7C,QAEvB4C,EAAMpO,QAAQkjB,KAAOI,YAAatjB,GAClCoO,EAAMpO,QAAQmjB,OAASjM,OAAOC,KAAK/I,EAAMpO,QAAQkjB,OAEnD2I,UAbQ,SAaEzd,EAAkBC,GAC1B,IAAMnM,EAASmM,EAAO7C,QAElBtJ,GACFkM,EAAMpO,QAAQkjB,KAAKhhB,EAAO5C,IAAM4C,EAE3BkM,EAAMpO,QAAQmjB,OAAOvhB,SAASM,EAAO5C,KACxC8O,EAAMpO,QAAQmjB,OAAOhhB,KAAKD,EAAO5C,IAGnC8O,EAAMqd,eAAiBvpB,EAAO5C,IAE9B8O,EAAMqd,eAAiB,MAG3BK,iBA5BQ,SA4BS1d,EAAkBC,GACjC,IAAMvN,EAAWuN,EAAO7C,QAClBtJ,EAASkM,EAAMpO,QAAQkjB,KAAKpiB,GAE9BoB,IACFA,EAAOzB,YAAc,IAGzBsrB,kBApCQ,SAoCU3d,GAChBA,EAAMqd,eAAiB,MAEzBO,gBAvCQ,SAuCQ5d,EAAkBC,GAChCD,EAAM7N,aAAe8N,EAAO7C,SAE9BygB,aA1CQ,SA0CK7d,EAAkBC,GAC7B,IAAM6d,EAAY7d,EAAO7C,QACV4C,EAAMsd,WAAW/qB,MAAK,SAACwrB,GAAD,OAAgBA,EAAW7sB,KAAO4sB,EAAU5sB,OAG/E8O,EAAMsd,WAAWvpB,KAAK+pB,IAG1BE,gBAlDQ,SAkDQhe,EAAkBC,GAChC,IAAMjL,EAAciL,EAAO7C,QAE3B4C,EAAMsd,WAAatd,EAAMsd,WAAWhqB,QAAO,SAACwqB,GAAD,OAAeA,EAAU5sB,KAAO8D,SAKlEsL,EAAYqU,EAAZrU,QAQFkd,EAAa,yDAAgB,WAAO3c,GAAP,eAAApE,EAAA,sEACrB7J,IAAQ4qB,aADa,OAClC1gB,EADkC,OAGxC+D,EAAS8T,EAAMyB,QAAQoH,WAAW1gB,IAHM,2CAAhB,uDAMb2gB,EAAY,SAAC5pB,GAAD,8CAAiC,WAAOgN,GAAP,eAAApE,EAAA,sEACrC7J,IAAQ6qB,UAAU5pB,GADmB,OAClDiJ,EADkD,OAGxD+D,EAAS8T,EAAMyB,QAAQqH,UAAU3gB,IAHuB,2CAAjC,uDAMZ4gB,EAAmB,SAAChrB,GAAD,8CAAgC,WAAOmO,GAAP,SAAApE,EAAA,sEACxD7J,IAAQ8qB,iBAAiBhrB,GAD+B,OAG9DmO,EAAS8T,EAAMyB,QAAQsH,iBAAiBhrB,IAHsB,2CAAhC,uDAMnBirB,EAAoB,kBAAM,SAAC9c,GACtCA,EAAS8T,EAAMyB,QAAQuH,uBAGZC,EAAkB,SAAC/pB,GAAD,8CAAiC,WAAOgN,GAAP,eAAApE,EAAA,sEAC3C7J,IAAQgrB,gBAAgB/pB,GADmB,OACxDiJ,EADwD,OAG9D+D,EAAS8T,EAAMyB,QAAQwH,gBAAgB9gB,IAHuB,2CAAjC,uDAMlB+gB,EAAe,SAACC,GAAD,OAA8B,SAACjd,GACzDA,EAAS8T,EAAMyB,QAAQyH,aAAaC,MAGzBE,EAAkB,SAAChpB,GAAD,OAAmC,SAAC6L,GACjEA,EAAS8T,EAAMyB,QAAQ4H,gBAAgBhpB,O,4cCpInCjE,EAAM,IAAIC,KAEZitB,EAA0B,CAC5B,CACE/sB,GAAI,2BACJgtB,QAAQ,EACRxZ,MAAO,UACPoO,YAAa,4BACbqL,IAAKC,YAASC,YAAW1sB,YAAQZ,EAAK,GAAI,GAAI,IAAIO,UAClDgtB,MAAOF,YAASC,YAAW1sB,YAAQZ,EAAK,GAAI,IAAK,IAAIO,UACrDsQ,MAAO,iBAET,CACE1Q,GAAI,2BACJgtB,QAAQ,EACRxZ,MAAO,KACPoO,YAAa,gCACbqL,IAAKC,YAASC,YAAWrL,YAAQjiB,EAAK,GAAI,IAAK,IAAIO,UACnDgtB,MAAOF,YAASC,YAAWrL,YAAQjiB,EAAK,GAAI,GAAI,IAAIO,UACpDsQ,MAAO,iBAET,CACE1Q,GAAI,2BACJgtB,QAAQ,EACRxZ,MAAO,KACPoO,YAAa,eACbqL,IAAKC,YAASC,YAAWrL,YAAQjiB,EAAK,GAAI,GAAI,IAAIO,UAClDgtB,MAAOF,YAASC,YAAWrL,YAAQjiB,EAAK,GAAI,GAAI,GAAGO,UACnDsQ,MAAO,kBAET,CACE1Q,GAAI,2BACJgtB,QAAQ,EACRxZ,MAAO,KACPoO,YAAa,4BACbqL,IAAKI,YAAW5sB,YAAQZ,EAAK,KAAKO,UAClCgtB,MAAOE,YAAS7sB,YAAQZ,EAAK,KAAKO,UAClCsQ,MAAO,aAET,CACE1Q,GAAI,2BACJgtB,QAAQ,EACRxZ,MAAO,UACPoO,YAAa,eACbqL,IAAKC,YAASC,YAAWrL,YAAQjiB,EAAK,GAAI,IAAK,GAAGO,UAClDgtB,MAAOF,YAASC,YAAWrL,YAAQjiB,EAAK,GAAI,IAAK,GAAGO,UACpDsQ,MAAO,aAET,CACE1Q,GAAI,2BACJgtB,QAAQ,EACRxZ,MAAO,KACPoO,YAAa,gCACbqL,IAAKC,YAASC,YAAW1sB,YAAQZ,EAAK,GAAI,IAAK,GAAGO,UAClDgtB,MAAOF,YAASC,YAAW1sB,YAAQZ,EAAK,GAAI,GAAI,GAAGO,UACnDsQ,MAAO,aAET,CACE1Q,GAAI,2BACJgtB,QAAQ,EACRxZ,MAAO,UACPoO,YAAa,4CACbqL,IAAKC,YAASC,YAAWttB,EAAK,IAAK,IAAIO,UACvCgtB,MAAOF,YAASC,YAAWttB,EAAK,IAAK,IAAIO,UACzCsQ,MAAO,mBAuGE6c,EAAc,I,yFAlGzB,WACE,OAAO5rB,QAAQC,QAAQC,YAASkrB,M,yBAGlC,SAAYnhB,GACV,OAAO,IAAIjK,SAAQ,SAACC,EAASG,GAC3B,IACE,IACEirB,EAKEphB,EALFohB,OACApL,EAIEhW,EAJFgW,YACAqL,EAGErhB,EAHFqhB,IACAG,EAEExhB,EAFFwhB,MACA1c,EACE9E,EADF8E,MAII8c,EAAe3rB,YAASkrB,GAGxB9W,EAAQ,CACZjW,GAAI6D,cACJmpB,SACApL,cACAqL,MACAG,QACA1c,SAIF8c,EAAa3qB,KAAKoT,GAGlB8W,EAASS,EAET5rB,EAAQC,YAASoU,IACjB,MAAO1T,GACPC,QAAQC,MAAM,mBAAoBF,GAClCR,EAAO,IAAIW,MAAM,gC,yBAKvB,YAA0D,IAA5C+qB,EAA2C,EAA3CA,QAASjL,EAAkC,EAAlCA,OACrB,OAAO,IAAI7gB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMyrB,EAAe3rB,YAASkrB,GAGxB9W,EAAQ8W,EAAO1rB,MAAK,SAACqsB,GAAD,OAAYA,EAAO1tB,KAAOytB,KAEpD,IAAKxX,EAEH,YADAlU,EAAO,IAAIW,MAAM,oBAKnBkV,OAAO8K,OAAOzM,EAAOuM,GAGrBuK,EAASS,EAET5rB,EAAQC,YAASoU,IACjB,MAAO1T,GACPC,QAAQC,MAAM,mBAAoBF,GAClCR,EAAO,IAAIW,MAAM,gC,yBAKvB,SAAY+qB,GACV,OAAO,IAAI9rB,SAAQ,SAACC,EAASG,GAC3B,IAEE,IAAMyrB,EAAe3rB,YAASkrB,GAK9B,IAFcA,EAAO1rB,MAAK,SAACqsB,GAAD,OAAYA,EAAO1tB,KAAOytB,KAIlD,YADA1rB,EAAO,IAAIW,MAAM,oBAInBqqB,EAASA,EAAO3qB,QAAO,SAACsrB,GAAD,OAAYA,EAAO1tB,KAAOytB,KAGjDV,EAASS,EAET5rB,GAAQ,GACR,MAAOW,GACPC,QAAQC,MAAM,mBAAoBF,GAClCR,EAAO,IAAIW,MAAM,kC,MC/InB+gB,EAAQC,YAAY,CACxBrjB,KAAM,WACNmO,aATkC,CAClCue,OAAQ,GACRY,aAAa,EACbC,gBAAiB,KACjBC,cAAe,MAMf/J,SAAU,CACRgK,UADQ,SAENhf,EACAC,GAEAD,EAAMie,OAAShe,EAAO7C,SAExB6hB,YAPQ,SAQNjf,EACAC,GAEAD,EAAMie,OAAOlqB,KAAKkM,EAAO7C,UAE3B8hB,YAbQ,SAcNlf,EACAC,GAEAD,EAAM6e,aAAc,EACpB7e,EAAM8e,gBAAkB7e,EAAO7C,SAEjC+hB,YApBQ,SAqBNnf,EACAC,GAEA,IAAMkH,EAAQlH,EAAO7C,QAErB4C,EAAMie,OAASje,EAAMie,OAAOngB,KAAI,SAAC8gB,GAC/B,OAAIA,EAAO1tB,KAAOiW,EAAMjW,GACfiW,EAGFyX,MAGXQ,YAlCQ,SAmCNpf,EACAC,GAEAD,EAAMie,OAASje,EAAMie,OAAO3qB,QAAO,SAAC6T,GAAD,OAAWA,EAAMjW,KAAO+O,EAAO7C,YAEpEiiB,YAxCQ,SAyCNrf,EACAC,GAEA,MAAuBA,EAAO7C,QAAtBkhB,EAAR,EAAQA,MAAOH,EAAf,EAAeA,IAEfne,EAAM6e,aAAc,EACpB7e,EAAM+e,cAAgB,CACpBT,QACAH,QAGJmB,UApDQ,SAoDEtf,GACRA,EAAM6e,aAAc,GAEtBU,WAvDQ,SAuDGvf,GACTA,EAAM6e,aAAc,EACpB7e,EAAM8e,gBAAkB,KACxB9e,EAAM+e,cAAgB,SAKbze,EAAYqU,EAAZrU,QAEF0e,EAAY,yDAAgB,WAAOne,GAAP,eAAApE,EAAA,sEACpBgiB,EAAYO,YADQ,OACjCliB,EADiC,OAGvC+D,EAAS8T,EAAMyB,QAAQ4I,UAAUliB,IAHM,2CAAhB,uDAMZmiB,EAAc,SAACO,GAAD,8CAA0B,WAAO3e,GAAP,eAAApE,EAAA,sEAChCgiB,EAAYQ,YAAYO,GADQ,OAC7C1iB,EAD6C,OAGnD+D,EAAS8T,EAAMyB,QAAQ6I,YAAYniB,IAHgB,2CAA1B,uDAMdoiB,EAAc,SAACP,GAAD,8CAAgC,WAAO9d,GAAP,SAAApE,EAAA,sDACzDoE,EAAS8T,EAAMyB,QAAQ8I,YAAYP,IADsB,2CAAhC,uDAIdQ,EAAc,SACzBR,EACAjL,GAFyB,8CAGZ,WAAO7S,GAAP,eAAApE,EAAA,sEACMgiB,EAAYU,YAAY,CACzCR,UACAjL,WAHW,OACP5W,EADO,OAMb+D,EAAS8T,EAAMyB,QAAQ+I,YAAYriB,IANtB,2CAHY,uDAYdsiB,EAAc,SAACT,GAAD,8CAA+B,WAAO9d,GAAP,SAAApE,EAAA,sEAClDgiB,EAAYW,YAAYT,GAD0B,OAGxD9d,EAAS8T,EAAMyB,QAAQgJ,YAAYT,IAHqB,2CAA/B,uDAMdU,EAAc,SAACf,EAAeH,GAAhB,OAA0C,SAACtd,GACpEA,EAAS8T,EAAMyB,QAAQiJ,YAAY,CAAEf,QAAOH,WAGjCmB,EAAY,kBAAgB,SAACze,GACxCA,EAAS8T,EAAMyB,QAAQkJ,eAGZC,EAAa,kBAAgB,SAAC1e,GACzCA,EAAS8T,EAAMyB,QAAQmJ,iB,8FClInBtoB,EAAkBwoB,IAAMC,OAAO,CACnCC,QAASC,IAAUD,QACnB9gB,QAAS,CACP,eAAgB,mBAChBC,OAAQ8gB,IAAU9gB,OAClB1J,SAAUwqB,IAAUxqB,YAIxB6B,EAAgB4oB,aAAaC,QAAQC,IAArC,uCAAyC,WAAO5W,GAAP,iBAAA1M,EAAA,6DACjCqE,EAAoBlG,KAAKC,MAC7BnE,aAAaiE,QAAQ,yBAGf2E,EAAQwB,EAAkBK,MAChCgI,EAAOtK,QAAQmhB,OAAf,cAAyC,UAAY1gB,GANhB,kBAQhC6J,GARgC,2CAAzC,uDAUAlS,EAAgB4oB,aAAaxe,SAAS0e,KACpC,SAAC1e,GACC,OAAIA,GAAYA,EAASvE,KAChBuE,EAASvE,KAEXuE,KAET,SAAC1N,GAAW,IAAD,EAST,MAP+B,MAAtB,OAALA,QAAK,IAALA,GAAA,UAAAA,EAAO0N,gBAAP,eAAiB4e,UACnB7e,IAAMzN,MAAM,+EAA0C,CAAEusB,SAAU,MAClExpB,aAAaC,WAAW,qBACxB2K,YAAW,WACT9L,OAAOC,SAAS8L,KAAO,WACtB,MAEC5N,KAGKsD,O,gCC1Cf,oBAKeqF,IAFC,kBAAM7E,qBAAWzB,O,oDCGlBjB,IANU,WACvB,IAAM0M,EAAM,IAAI0e,WAAW,IAE3B,OADA3qB,OAAO4qB,OAAOC,gBAAgB5e,GACvB7D,MAAMC,KAAK4D,GAAK,SAAC6e,GAAD,OAAOA,EAAEC,SAAS,IAAIC,SAAS,EAAG,QAAMpiB,KAAK,M,gCCHtE,WAae/B,IAVI,WACjB,IAAMokB,EAAYC,kBAAO,GAMzB,OAJAlmB,qBAAU,kBAAM,WACdimB,EAAU1jB,SAAU,KACnB,IAEI0jB,I,sSCDME,EANS,CACpBC,oBAAqB,SAACC,GAClB,OAAOC,IAAQ9kB,IAAR,UAHK,QAGL,sCAAwD6kB,MCEjEE,EAAY,uCAAG,WAAOF,GAAP,iBAAApkB,EAAA,+EAGGqkB,EAAQF,oBAAoBC,GAH/B,cAGT9hB,EAHS,OAKP4J,EAAM,GAEZ5J,EAAItK,SAAQ,SAAAusB,GACHrY,EAAIqY,EAAQC,eACjBtY,EAAIqY,EAAQC,aAAe,IAC3BtY,EAAIqY,EAAQC,aAAaD,EAAQE,aAAeF,EAAQG,eAV/C,kBAcNxY,GAdM,gCAgBbjV,QAAQsJ,IAAR,MAhBa,yDAAH,sDAoBZokB,EAAiB,CAEnBC,SAAU,iBACVvB,QAAS,SAACwB,EAAcC,EAAUnkB,EAAcokB,GAC5C,IACI,MAAcD,EAAIhiB,MAAM,KAAjBkiB,EAAP,oBACAV,EAAaU,GAAKxiB,MAAK,SAACoC,GACpBmgB,EAAS,KAAM,CACX1kB,KAAMuE,EACN4e,OAAQ,SAIlB,MAAOyB,GACLhuB,QAAQC,MAAM+tB,GACdF,EAAS,KAAM,CACXvB,OAAQ,SAMxB0B,IACK5B,IAAI6B,KACJ7B,IAAI8B,KACJC,KAAK,CACFF,QAASR,EAETK,IAAK,KACLM,YAAa,KACbC,OAAO,EAEPC,cAAe,CACXC,aAAa,GAEjBC,MAAO,CACHzjB,MAAM,EACN0jB,aAAa,EACbC,cAAe,W,qCCpBZC,EAvBW,SAACjoB,GACzB,IAAQjE,EAAwBiE,EAAxBjE,SAAUwD,EAAcS,EAAdT,UAMlB,OAJAY,qBAAU,WACR8O,SAASiZ,IAAM3oB,IACd,CAACA,IAEc,QAAdA,EAEA,cAAC,IAAD,CAAetD,MAnBIksB,YAAY,CACnCxkB,IAAK,MACLykB,SAAS,EAKTC,cAAe,CAACC,OAYZ,SACGvsB,IAKA,mCAAGA,K,yHCpBNwsB,EAAY,SAAC1oB,GAAD,MAChB,CACEP,QAASO,EAASP,QAClBC,UAAWM,EAASN,UACpBC,oBAAqBK,EAASL,oBAC9BC,eAAgBI,EAASJ,eACzBC,MAAOG,EAASH,QAuPL8oB,EAnPY,WACzB,MAAmCrrB,cAA3B0C,EAAR,EAAQA,SAAUC,EAAlB,EAAkBA,aAClB,EAAwBG,oBAAkB,GAA1C,mBAAOwoB,EAAP,KAAaC,EAAb,KACA,EAA4BzoB,mBAASsoB,EAAU1oB,IAA/C,mBAAO4I,EAAP,KAAekgB,EAAf,KAEAxoB,qBAAU,WACRwoB,EAAUJ,EAAU1oB,MACnB,CAACA,IAEJ,IAQMoJ,EAAe,SAAC2f,EAAO3sB,GAC3B0sB,EAAU,2BACLlgB,GADI,kBAENmgB,EAAQ3sB,MASb,OACE,qCACE,cAAC4sB,EAAA,EAAD,CAASthB,MAAM,WAAf,SACE,cAACuhB,EAAA,EAAD,CACEze,MAAM,UACNW,QAzBW,WACjB0d,GAAQ,IAyBFnuB,KAAK,SACL0P,GAAI,CACF8e,OAAQ,EACRnf,OAAQ,SAAClK,GAAD,OAAWA,EAAMme,QAAQ,IACjCnE,SAAU,QACVsP,MAAO,EAEPxU,OAAQ,MAVZ,SAaE,cAAC9W,EAAA,EAAD,CAAiB+X,SAAS,cAG9B,eAACwT,EAAA,EAAD,CACEC,OAAO,QACPC,QArCc,WAClBT,GAAQ,IAqCJD,KAAMA,EACNW,WAAY,CACVnf,GAAI,CACFiE,EAAG,EACH3B,MAAO,MAPb,UAWE,cAACT,EAAA,EAAD,CACEzB,MAAM,cACNN,QAAQ,KAFV,sBAMA,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACZ,EAAA,EAAD,CACEG,WAAS,EACTE,MAAM,QACNzS,KAAK,QACL4S,SAAU,SAACgD,GAAD,OAAiB7D,EACzB,QACA6D,EAAMsB,OAAOnS,QAEfotB,QAAM,EACNC,YAAa,CAAEC,QAAQ,GACvBttB,MAAOwM,EAAO/I,MACdqK,QAAQ,WAXV,SAaG0E,OAAOC,KAAK/O,KAAQ8D,KAAI,SAAC/D,GAAD,OACvB,wBAEEzD,MAAOyD,EAFT,SAKIA,EACGwF,MAAM,KACNzB,KAAI,SAAC+lB,GAAD,OAAOA,EAAE,GAAGC,cAAgBD,EAAEE,OAAO,GAAG3wB,iBAC5CgL,KAAK,MAPLrE,UAab,cAACsK,EAAA,EAAD,CACEC,GAAI,CACFC,GAAI,EACJyf,GAAI,KAHR,SAME,cAACC,EAAA,EAAD,CACEC,QACE,cAACC,EAAA,EAAD,CACEC,QAA8B,QAArBthB,EAAOlJ,UAChB8K,MAAM,UACN2f,KAAK,QACL9yB,KAAK,YACL4S,SAAU,SAACgD,GAAD,OAAiB7D,EACzB,YACA6D,EAAMsB,OAAO2b,QACT,MACA,UAIVpgB,MACE,sCAEE,cAACmC,EAAA,EAAD,CACEzB,MAAM,gBACNkB,UAAU,IACVxB,QAAQ,UAHV,0CAWR,cAACC,EAAA,EAAD,CACEC,GAAI,CACFC,GAAI,EACJyf,GAAI,KAHR,SAME,cAACC,EAAA,EAAD,CACEC,QACE,cAACC,EAAA,EAAD,CACEC,QAASthB,EAAOjJ,oBAChB6K,MAAM,UACN2f,KAAK,QACL9yB,KAAK,YACL4S,SAAU,SAACgD,GAAD,OAAiB7D,EACzB,sBACA6D,EAAMsB,OAAO2b,YAInBpgB,MACE,wDAEE,cAACmC,EAAA,EAAD,CACEzB,MAAM,gBACNkB,UAAU,IACVxB,QAAQ,UAHV,kDAWR,cAACC,EAAA,EAAD,CACEC,GAAI,CACFC,GAAI,EACJyf,GAAI,KAHR,SAME,cAACC,EAAA,EAAD,CACEC,QACE,cAACC,EAAA,EAAD,CACEC,QAASthB,EAAOnJ,QAChB+K,MAAM,UACN2f,KAAK,QACL9yB,KAAK,UACL4S,SAAU,SAACgD,GAAD,OAAiB7D,EACzB,UACA6D,EAAMsB,OAAO2b,YAInBpgB,MACE,0CAEE,cAACmC,EAAA,EAAD,CACEzB,MAAM,gBACNkB,UAAU,IACVxB,QAAQ,UAHV,gDAWR,cAACC,EAAA,EAAD,CACEC,GAAI,CACFC,GAAI,EACJyf,GAAI,KAHR,SAME,cAACC,EAAA,EAAD,CACEC,QACE,cAACC,EAAA,EAAD,CACEC,QAASthB,EAAOhJ,eAChB4K,MAAM,UACN2f,KAAK,QACL9yB,KAAK,iBACL4S,SAAU,SAACgD,GAAD,OAAiB7D,EACzB,iBACA6D,EAAMsB,OAAO2b,YAInBpgB,MACE,kDAEE,cAACmC,EAAA,EAAD,CACEzB,MAAM,gBACNkB,UAAU,IACVxB,QAAQ,UAHV,2CAWR,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACE,cAACE,EAAA,EAAD,CACEC,MAAM,UACNZ,WAAS,EACTuB,QAhNS,WACjBlL,EAAa2I,GACbigB,GAAQ,IA+MA3e,QAAQ,YAJV,oC,QCvOKkgB,EArBS,kBACtB,cAACjgB,EAAA,EAAD,CACEC,GAAI,CACFyB,WAAY,SACZL,gBAAiB,mBACjBP,QAAS,OACTyC,cAAe,SACff,OAAQ,OACRzB,eAAgB,SAChBmf,KAAM,EACNhc,EAAG,EACHwL,SAAU,QACVyQ,IAAK,EACL5d,MAAO,OACPiI,OAAQ,KAbZ,SAgBE,cAAC4V,EAAA,EAAD,O,QCRWC,EAVQ,WACrB,IAAMjvB,EAAWwR,cAMjB,OAJAzM,qBAAU,WACRhF,OAAOmvB,SAAS,EAAG,KAClB,CAAClvB,EAAS+S,WAEN,M,4BCgDMoc,GA9CuB,SAACvqB,GACnC,IAAQjE,EAAaiE,EAAbjE,SACFyuB,EAAOvoB,cACP7G,EAAWwR,cACjB,EAAkD3M,mBAAS,MAA3D,mBAAOwqB,EAAP,KAA0BC,EAA1B,KACIjjB,EAAMlH,KAAKC,MAAMnE,aAAaiE,QAAQ,sBAC1C,IAAImH,EAQA,OAAO,cAACiF,GAAA,QAAD,IALP,GAFU,IAAI/V,KACA,IAAIA,KAAK8Q,EAAIkjB,QAGvB,OADAtuB,aAAaC,WAAW,qBACjB,cAACoQ,GAAA,QAAD,IAKf,IAAK8d,EAAKllB,gBAIN,OAHIlK,EAAS+S,WAAasc,GACtBC,EAAqBtvB,EAAS+S,UAE3B,cAACzB,GAAA,QAAD,IAKX,GAAI+d,GAAqBrvB,EAAS+S,WAAasc,EAG3C,OAFAC,EAAqB,MAEd,cAAC,IAAD,CAAU9c,GAAI6c,IAEzB,GAAID,EAAKllB,kBAEmB/E,KAAKC,MACzBnE,aAAaiE,QAAQ,wBAejC,SAAyBkF,GAErB,IAAIolB,GAAO,EACPC,EAAWtqB,KAAKC,MA6CxB,SAAiBiC,GACb,IAAIkB,EAAM,mCAEV,OADgBiE,IAASC,IAAIijB,QAAQroB,EAAMkB,GAAKuiB,SAASte,IAASmjB,IAAIC,MA/C5CF,CAAQtlB,IAC9BiB,EAAoBlG,KAAKC,MACzBnE,aAAaiE,QAAQ,sBAErB2qB,EAAkBre,cAAcuB,SAAS+X,WACzCgF,EAAa,GACbL,EAAS5wB,OAAS,GAAKwM,GACvBokB,EAASpnB,KAAI,SAAC6D,GACVA,EAAGI,MAAMjE,KAAI,SAACC,GACVwnB,EAAWxxB,KAAKgK,EAAK8D,YAIjC,GAC8B,MAA1Bf,EAAkBnE,MACQ,OAA1BmE,EAAkBnE,MACQ,OAA1BmE,EAAkBnE,MAElB,GAAuB,YAAnB2oB,EAEA,OADAL,GAAO,OAGR,GAA8B,MAA1BnkB,EAAkBnE,MACzB,GAAuB,cAAnB2oB,EAEA,OADAL,GAAO,OAIX,GAAuB,UAAnBK,EAEA,OADAL,GAAO,EAIXM,EAAWjxB,OAAS,GACpBixB,EAAWznB,KAAI,SAAC6D,GACZ,GAAI2jB,EAAgBE,WAAW7jB,GAE3B,OADAsjB,GAAO,KAMnB,OAAOA,EAzDMQ,CAAgBZ,EAAKhlB,WAAW,OAAO,cAAC,IAAD,CAAUoI,GAAG,SAGjE,OAAO,mCAAG7R,K,4CCqCCsvB,GAnFU,WACvB,IAAQld,EAAavB,cAAbuB,SACFmd,EAAiBnd,EAASmM,MAAMnM,EAASod,YAAY,KAAO,GAC5DC,EAA6B,WAAnBF,IAAgCA,EAC1C/jB,EAAQikB,EACV,oBACAF,EACCpmB,MAAM,KACNzB,KAAI,SAACgoB,GAAD,OAAUA,EAAK,GAAGhC,cAAgBgC,EAAKnR,MAAM,MACjDvW,KAAK,KAEV,OACE,qCACE,cAACiG,EAAA,EAAD,CACEC,GAAI,CACFoB,gBAAiB,qBACjBqgB,GAAI,IAHR,SAME,cAACje,GAAA,EAAD,CAAWC,SAAS,KAApB,SACE,eAACX,GAAA,EAAD,CACErB,WAAW,SACXsB,WAAS,EACT6Q,QAAS,EAHX,UAKE,eAAC9Q,GAAA,EAAD,CACErJ,MAAI,EACJuJ,GAAI,EACJE,GAAI,GAHN,WAKIqe,GACA,cAACphB,EAAA,EAAD,CACEC,MAAM,UACNkB,UAAW+Q,IACXqP,UAAW,cAACluB,GAAA,EAAD,IACXwM,GAAI,CAAE4D,GAAI,GACVD,GAAG,UACH7D,QAAQ,OANV,gCAWF,cAAC+B,EAAA,EAAD,CACEzB,MAAM,cACNN,QAAQ,KAFV,SAIGxC,IAEFikB,GACC,cAAC1f,EAAA,EAAD,CACEzB,MAAM,gBACNJ,GAAI,CAAEC,GAAI,GACVH,QAAQ,QAHV,kFASJ,cAACgD,GAAA,EAAD,CACErJ,MAAI,EACJuJ,GAAI,EACJE,GAAI,GACJlD,GAAI,CACFa,QAAS,CACPmC,GAAI,OACJE,GAAI,QAENpC,eAAgB,UATpB,SAYE,qBACEO,IAAI,aACJE,IAAI,qCAMd,cAAC,IAAD,Q,4MCqDS1O,GA/HY,WACvB,IAAMiF,EAAUC,eACaC,cAArB2pB,iBACS5jB,cAEjB,OACI,cAAC,KAAD,CACIC,cAAe,CACX4jB,YAAa,GACbC,aAAc,GACdC,aAAc,GACd7jB,OAAQ,MAEZC,iBAAkBC,OAAaC,MAAM,CACjCwjB,YAAazjB,OAAaG,SAAS,uDACnCujB,aAAc1jB,OAAaG,SAAS,wDACpCwjB,aAAc3jB,OAAa4jB,MACvB,CAAC5jB,KAAQ,gBAAiB,MAC1B,qDAGRI,SAAQ,uCAAE,WACNC,EADM,0BAAArG,EAAA,6DAEJsG,EAFI,EAEJA,UAAWC,EAFP,EAEOA,UAAWC,EAFlB,EAEkBA,cAFlB,SAKElR,EAAO,CACPu0B,GAAIxjB,EAAOojB,YACXK,GAAIzjB,EAAOqjB,cAPb,SAScpvB,KAAYI,eAAepF,GATzC,QASEgN,EATF,SAWEqC,IAAM8B,QAAQnE,EAAIynB,SAXpB,gDAcF9yB,QAAQC,MAAR,MACIyI,EAAQW,UACRiG,EAAU,CAAEE,SAAS,IACrBH,EAAU,CAAER,OAAQ,KAAIzN,UACxBmO,GAAc,IAlBhB,yDAAF,wDAfZ,SAsCK,gBACGG,EADH,EACGA,OACAC,EAFH,EAEGA,WACAC,EAHH,EAGGA,aACAC,EAJH,EAIGA,aACAC,EALH,EAKGA,aACAC,EANH,EAMGA,QACAX,EAPH,EAOGA,OAPH,OASG,uBAAMY,YAAU,EAACb,SAAUU,EAA3B,UACI,cAACI,EAAA,EAAD,CACIC,WAAS,EACTjQ,MAAOkQ,QACHJ,EAAQyiB,aAAe9iB,EAAO8iB,aAElCpiB,WAAS,EACTC,WAAYN,EAAQyiB,aAAe9iB,EAAO8iB,YAC1CliB,MAAM,6BACNC,OAAO,SACP1S,KAAK,cACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,WACLkE,MAAOwM,EAAOojB,YACd9hB,QAAQ,aAEZ,cAACT,EAAA,EAAD,CACIC,WAAS,EACTjQ,MAAOkQ,QACHJ,EAAQ0iB,cAAgB/iB,EAAO+iB,cAEnCriB,WAAS,EACTC,WAAYN,EAAQ0iB,cAAgB/iB,EAAO+iB,aAC3CniB,MAAM,8BACNC,OAAO,SACP1S,KAAK,eACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,WACLkE,MAAOwM,EAAOqjB,aACd/hB,QAAQ,aAEZ,cAACT,EAAA,EAAD,CACIC,WAAS,EACTjQ,MAAOkQ,QACHJ,EAAQ2iB,cAAgBhjB,EAAOgjB,cAEnCtiB,WAAS,EACTC,WAAYN,EAAQ2iB,cAAgBhjB,EAAOgjB,aAC3CpiB,MAAM,iDACNC,OAAO,SACP1S,KAAK,eACL2S,OAAQb,EACRc,SAAUb,EACVlR,KAAK,WACLkE,MAAOwM,EAAOsjB,aACdhiB,QAAQ,aAEXhB,EAAOb,QACJ,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACI,cAACC,GAAA,EAAD,CAAgB7Q,OAAK,EAArB,SACKyP,EAAOb,WAIpB,cAAC8B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACI,cAACE,EAAA,EAAD,CACIC,MAAM,UACNC,SAAUnB,EACVM,WAAS,EACTlP,KAAK,QACLxC,KAAK,SACLgS,QAAQ,YANZ,uD,uCC8HTqiB,GAtNY,WACvB,IAAMC,EAAYhG,iBAAiC,MACnD,EAAyBpkB,cAAjBlI,EAAR,EAAQA,KAAMoM,EAAd,EAAcA,OACd,EAAgC/I,qBAAWzB,MACrCoM,GADN,EAAQ7L,SAAR,EAAkBE,UACD4L,eACjB,EAAwB/H,oBAAkB,GAA1C,mBAAOwoB,EAAP,KAAaC,EAAb,KACA,EAAsCzoB,oBAAkB,GAAxD,mBAAOqsB,EAAP,KAAoBC,EAApB,KACMz1B,EAAS6G,eAyBT6uB,EAAc,WAChB9D,GAAQ,IAMN+D,EAAY,uCAAG,sBAAArqB,EAAA,sEAEboqB,IAFa,SAGPrmB,IAHO,OAIb4B,EAAS,KAJI,gDAMb1O,QAAQC,MAAR,MACAyN,IAAMzN,MAAM,qBAPC,yDAAH,qDA4CZozB,EAAe,uCAAG,sBAAAtqB,EAAA,6DACpBoqB,IADoB,SAEdrmB,IAFc,OAGpB9J,aAAaswB,QACbxxB,OAAOC,SAAS8L,KAAO,oGAJH,2CAAH,qDAQrB,OACI,qCACI,cAAC8C,EAAA,EAAD,CACIuB,UAAWqhB,KACX5hB,QAnEO,WACf0d,GAAQ,IAmEA7Y,IAAKwc,EACLpiB,GAAI,CACAyB,WAAY,SACZZ,QAAS,QANjB,SASI,cAAC+hB,GAAA,EAAD,CACIrhB,IAAK1U,GAAkB,GACvBmT,GAAI,CACAuC,OAAQ,GACRD,MAAO,QAInB,eAACugB,GAAA,EAAD,CACIC,SAAUV,EAAU3pB,QACpBsqB,aAAc,CACVC,WAAY,SACZC,SAAU,UAEdC,aAAW,EACXhE,QAASqD,EACT/D,KAAMA,EACNW,WAAY,CACRnf,GAAI,CAAEsC,MAAO,MAVrB,UAaI,eAACvC,EAAA,EAAD,CAAKC,GAAI,CAAEiE,EAAG,GAAd,UACI,cAACpC,EAAA,EAAD,CAAYzB,MAAM,cAAcN,QAAQ,YAAxC,SACKhQ,EAAK7C,OAEV,eAAC4U,EAAA,EAAD,CACIzB,MAAM,gBACNN,QAAQ,YACRE,GAAI,CAAE6D,UAAW,UAHrB,UAKK/T,EAAKqzB,SALV,IAKqBrzB,EAAKiH,SAG9B,cAAC4K,GAAA,EAAD,IACA,cAAC5B,EAAA,EAAD,CAAKC,GAAI,CAAEC,GAAI,GAAf,SACkB,MAAbnQ,EAAKuI,MAA6B,MAAbvI,EAAKuI,KACvB,eAAC+qB,GAAA,EAAD,CACI9hB,UAAW+Q,IAMX1O,GAAI,IAPR,UASI,cAAC0f,GAAA,EAAD,UACI,cAAC9vB,GAAA,EAAD,CAAUiY,SAAS,YAEvB,cAAC8I,GAAA,EAAD,CACIzH,QACI,cAAChL,EAAA,EAAD,CACIzB,MAAM,cACNN,QAAQ,YAFZ,kDAUZ,+BAyBR,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAEiE,EAAG,GAAd,SACI,cAAC9D,EAAA,EAAD,CACIC,MAAM,UACNZ,WAAS,EACTuB,QAASuiB,eAAaC,YAAcd,EAAkBD,EACtD1iB,QAAQ,WAJZ,2CAUPuiB,EACG,eAACmB,GAAA,EAAD,CAAQhF,KAAM6D,EAAanD,QAnKZ,WACvBoD,GAAe,IAkKP,UACI,cAACmB,GAAA,EAAD,CAAargB,MAAO,CAAES,UAAW,UAAjC,8CAGA,cAAC6f,GAAA,EAAD,UACI,cAAC,GAAD,SAIR,iC,UCjOVC,GAAkB,CAKpBC,GAAI,CACA1Q,KAAM,oCACNxT,MAAO,eA+GAmkB,GA3Ga,WACxB,IAAMzB,EAAYhG,iBAAiC,MAC3CiB,EAASyG,eAATzG,KACR,EAAwBrnB,oBAAkB,GAA1C,mBAAOwoB,EAAP,KAAaC,EAAb,KAkCMsF,EAAiBJ,GAAgBtG,EAAK5lB,UAE5C,OACI,qCACI,cAACusB,GAAA,EAAD,CAAYjjB,QAjBD,WACf0d,GAAQ,IAgB6B7Y,IAAKwc,EAAtC,SACI,cAACriB,EAAA,EAAD,CACIC,GAAI,CACAa,QAAS,OACT0B,OAAQ,GACRD,MAAO,GACP,QAAS,CACLA,MAAO,SANnB,SAUI,qBAAKjB,IAAK0iB,EAAerkB,MAAO6B,IAAKwiB,EAAe7Q,WAG5D,cAAC2P,GAAA,EAAD,CACIC,SAAUV,EAAU3pB,QACpBsqB,aAAc,CACVC,WAAY,SACZC,SAAU,UAEdC,aAAW,EACXhE,QAlCQ,WAChBT,GAAQ,IAkCAD,KAAMA,EACNW,WAAY,CACRnf,GAAI,CAAEsC,MAAO,MAVrB,SAaKkC,OAAOC,KAAKkf,IAAiBnqB,KAAI,SAAC/B,GAAD,OAC9B,eAAC2rB,GAAA,EAAD,CACIriB,QAAS,kBAtCA,SAACtJ,GAC1B4lB,EAAK4G,eAAexsB,GACpBgnB,GAAQ,GAoCuByF,CAAqBzsB,IADxC,UAII,cAAC4rB,GAAA,EAAD,UACI,cAACtjB,EAAA,EAAD,CACIC,GAAI,CACAa,QAAS,OACT0B,OAAQ,GACRD,MAAO,GACP,QAAS,CACLA,MAAO,SANnB,SAUI,qBACIjB,IAAKsiB,GAAgBlsB,GAAUiI,MAC/B6B,IAAKoiB,GAAgBlsB,GAAUyb,WAI3C,cAACoB,GAAA,EAAD,CACIzH,QACI,cAAChL,EAAA,EAAD,CACIzB,MAAM,cACNN,QAAQ,YAFZ,SAIK6jB,GAAgBlsB,GAAUiI,YAzBlCjI,Y,UCpEvB0sB,I,OAAsBxP,aAAmByP,KAAnBzP,EAC1B,gBAAGlf,EAAH,EAAGA,MAAH,mBAAC,2BAG4B,UAAvBA,EAAM0W,QAAQS,MAAoB,CAChCxL,gBAAiB3L,EAAM0W,QAAQU,QAAQF,KACvC0X,UAAW,OACXjkB,MAAO3K,EAAM0W,QAAQU,QAAQH,eAIR,SAAvBjX,EAAM0W,QAAQS,MAAmB,CAC/BxL,gBAAiB3L,EAAM0W,QAAQE,WAAWG,MAC1C6X,UAAW,OACXhX,aAAa,aAAD,OAAe5X,EAAM0W,QAAQmB,WAbjD,IAgBI/C,OAAQ9U,EAAM8U,OAAO+Z,OAAS,UAoIrBC,GA/HmC,SAACxuB,GACjD,IAEI9I,EAFEu3B,EAAOC,cAAc,SAAChvB,GAAD,OAAkBA,EAAMivB,YAAYC,GAAG,SAC1DC,EAA8C7uB,EAA9C6uB,oBAAqBC,EAAyB9uB,EAAzB8uB,WAAehf,EAA5C,aAAsD9P,EAAtD,sCAEI8uB,EAAW70B,OAAS,GACtB60B,EAAWrrB,KAAI,SAAA6D,GACS,aAAlBA,EAAG0V,cACL9lB,EAAOoQ,EAAG2V,sBAIhB,IAAM8R,EACJ,cAACX,GAAD,yBAAqBY,UAAU,cAAiBlf,GAAhD,aACE,eAACmf,GAAA,EAAD,CAAShlB,GAAI,CAAEuD,UAAW,IAA1B,UACE,cAACygB,GAAA,EAAD,CACE5jB,MAAM,UACNW,QAAS6jB,EACT5kB,GAAI,CACFa,QAAS,CACPoC,GAAI,SALV,SASE,cAAChX,GAAA,EAAD,CAAUuf,SAAS,YAErB,cAAC,IAAD,CAAY7H,GAAG,MAqBf,cAAC9B,EAAA,EAAD,CACE7B,GAAI,CACFilB,GAAI,EACJhb,cAAe,YACfpJ,QAAS,CACPmC,GAAI,SACJE,GAAI,SAGRgiB,MAAM,SACNpkB,eAAe,SACfV,MAAM,UACNiL,WAAY,IACZvL,QAAQ,KAbV,SAeG7S,IAEH,cAAC8S,EAAA,EAAD,CACEC,GAAI,CACF0B,SAAU,EACVujB,GAAI,KAIR,cAAC,GAAD,IAWA,cAACllB,EAAA,EAAD,CAAKC,GAAI,CAAEilB,GAAI,GAAf,SACE,cAAC,GAAD,YAKR,OAAIT,EAEA,cAACxF,EAAA,EAAD,CACEC,OAAO,MACPE,WAAY,CACVnf,GAAI,CACFoB,gBAAiB,wBACjB6e,KAAM,mBACN3d,MAAO,gCACPC,OAAQ,KAGZzC,QAAQ,YAVV,SAYGglB,IAML,cAAC9F,EAAA,EAAD,CACEC,OAAO,MACPE,WAAY,CACVnf,GAAI,CACFoB,gBAAiB,wBACjBkB,MAAO,kBACPC,OAAQ,KAGZzC,QAAQ,YATV,SAWGglB,K,sECpJDK,GAA4B,SAACpvB,GACjC,IACEqW,EASErW,EATFqW,OACAta,EAQEiE,EARFjE,SACAszB,EAOErvB,EAPFqvB,MACAlS,EAMEnd,EANFmd,KACAmS,EAKEtvB,EALFsvB,KACMC,EAIJvvB,EAJFyoB,KACAjhB,EAGExH,EAHFwH,KACAD,EAEEvH,EAFFuH,MACGuI,EATL,aAUI9P,EAVJ,mEAWA,EAAwBC,mBAAkBsvB,GAA1C,mBAAO9G,EAAP,KAAaC,EAAb,KAMI8G,EAAc,GAOlB,OALIH,EAAQ,IACVG,EAAc,GAAK,EAAIH,GAIrBtzB,EAEA,eAACqiB,GAAA,EAAD,yBACEC,gBAAc,EACdpU,GAAI,CACFa,QAAS,QACT4gB,GAAI,IAEF5b,GANN,cAQE,eAAC1F,EAAA,EAAD,CACEqlB,QAAUhH,EACN,cAAClrB,GAAA,EAAD,CAAiBkY,SAAS,UADb,cAACnY,GAAA,EAAD,CAAkBmY,SAAS,UAE5CzK,QAxBa,WACnB0d,GAAQ,SAACgH,GAAD,OAAeA,MAwBjB/D,UAAWxO,EACXlT,GAAI,CACFI,MAAO,iBACPiL,WAAY,mBACZvK,eAAgB,aAChB4S,GAAG,GAAD,OAAK6R,EAAL,MACFG,GAAI,MACJjE,GAAI,OACJ5d,UAAW,OACXoG,cAAe,OACf3H,MAAO,QAETxC,QAAQ,OAhBV,UAkBE,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAE0B,SAAU,GAArB,SACGpE,IAEF+nB,KAEH,cAACM,GAAA,EAAD,CAAUC,GAAIpH,EAAd,SACG1sB,QAQP,cAACqiB,GAAA,EAAD,CACEC,gBAAc,EACdpU,GAAE,aACAa,QAAS,OACT4gB,GAAI,GACDrV,GAAS,CACVyZ,WAAY,YACZC,YAAa,sGACbC,iBAAkB,IARxB,SAYIxoB,EAAKyoB,QAAQ,aAAc,GAAKzoB,EAAKyoB,QAAQ,YAAc,EAE3D,eAAC7lB,EAAA,EAAD,CACAgE,OAAO,SACPlH,KAAMM,EACNmkB,UAAWxO,EACXlT,GAAE,aACA,UAAW,CACT,WAAY,CACVimB,UAAW,mBACXC,WAAY,sDAGhB9lB,MAAO,UACPiL,WAAY,mBACZvK,eAAgB,aAChB+C,UAAW,OACX6P,GAAG,GAAD,OAAK6R,EAAL,MACFG,GAAI,MAEJzb,cAAe,OACf3H,MAAO,QAEL8J,GAAU,CACRhM,MAAO,eACPiL,WAAY,iBACZ,QAAS,CACPjL,MAAO,kBAKfN,QAAQ,OA9BR,UAiCA,cAACC,EAAA,EAAD,CAAKC,GAAI,CAAE0B,SAAU,GAArB,SACGpE,IAEF+nB,KAGD,eAACllB,EAAA,EAAD,CACAmB,UAAW/D,GAAQ8U,IACnBqP,UAAWxO,EACXlT,GAAE,aACA,UAAW,CACT,WAAY,CACVimB,UAAW,mBACXC,WAAY,sDAGhB9lB,MAAO,UACPiL,WAAY,mBACZvK,eAAgB,aAChB+C,UAAW,OACX6P,GAAG,GAAD,OAAK6R,EAAL,MACFG,GAAI,MAEJzb,cAAe,OACf3H,MAAO,QAEL8J,GAAU,CACRhM,MAAO,eACPiL,WAAY,iBACZ,QAAS,CACPjL,MAAO,kBAKfN,QAAQ,OACR6D,GAAIpG,EA9BJ,UAgCA,cAACwC,EAAA,EAAD,CAAKglB,UAAU,QAAQ/kB,GAAI,CAAE0B,SAAU,EAAGa,OAAQ,QAAlD,SACGjF,IAEF+nB,QAoBTF,GAAQ1a,aAAe,CACrB2B,QAAQ,EACRoS,MAAM,GAGO2G,UCnLTgB,GAAoB,SAAC,GAAD,QACxBf,aADwB,MAChB,EADgB,EAExB3nB,EAFwB,EAExBA,MACAyG,EAHwB,EAGxBA,SAHwB,OASxB,cAAC8P,GAAA,EAAD,CAAMC,gBAAc,EAApB,SACGxW,EAAM6G,QAEL,SAAC8hB,EAAK3sB,GAAN,OAAe4sB,GAAkB,CAC/BD,MACA3sB,OACAyK,WACAkhB,YAEF,OAKAiB,GAAoB,SAAC,GAUA,IATzBD,EASwB,EATxBA,IACAliB,EAQwB,EARxBA,SACAzK,EAOwB,EAPxBA,KACA2rB,EAMwB,EANxBA,MAOM1rB,EAAG,UAAMD,EAAK6D,MAAX,YAAoB8nB,GACvBkB,IAAa7sB,EAAK8D,QAASgpB,YAAU,CACzChpB,KAAM9D,EAAK8D,KACXsc,KAAK,GACJ3V,GAEH,GAAIzK,EAAK3H,SAAU,CACjB,IAAM00B,IAAe/sB,EAAK8D,QAASgpB,YAAU,CAC3ChpB,KAAM9D,EAAK8D,KACXsc,KAAK,GACJ3V,GAEHkiB,EAAI32B,KACF,cAAC,GAAD,CACE2c,OAAQoa,EACRpB,MAAOA,EACPlS,KAAMzZ,EAAKyZ,KACXmS,KAAM5rB,EAAK4rB,KAEX7G,KAAMgI,EACNjpB,KAAM9D,EAAK8D,KACXD,MAAO7D,EAAK6D,MARd,SAUG6oB,GAAkB,CACjBf,MAAOA,EAAQ,EACf3nB,MAAOhE,EAAK3H,SACZoS,cARGxK,SAaT0sB,EAAI32B,KACF,cAAC,GAAD,CACE2c,OAAQka,EACRlB,MAAOA,EACPlS,KAAMzZ,EAAKyZ,KACXmS,KAAM5rB,EAAK4rB,KAEX9nB,KAAM9D,EAAK8D,KACXD,MAAO7D,EAAK6D,OAFP5D,IAOX,OAAO0sB,GA4CMK,GAzC+B,SAAC1wB,GAC7C,IACE0H,EAIE1H,EAJF0H,MACAyG,EAGEnO,EAHFmO,SACA5G,EAEEvH,EAFFuH,MACGuI,EAJL,aAKI9P,EALJ,8BAOA,OACE,cAACie,GAAA,EAAD,yBACE0S,UACE,cAACC,GAAA,EAAD,CACEvS,gBAAc,EACdwS,eAAa,EACb5mB,GAAI,CACFI,MAAO,eACPoL,SAAU,UACVqb,WAAY,IACZxb,WAAY,IACZpB,cAAe,aARnB,SAWG3M,KAGDuI,GAhBN,aAkBGsgB,GAAkB,CACjB1oB,QACAyG,iB,8BClIO,SAAS4iB,GAAe/wB,GACrC,MAA4BA,EAApBgxB,eAAR,SACA,OACE,8BAEQA,EACA,eAACllB,EAAA,EAAD,CAAYP,UAAU,MAAtB,UACI,cAAC0lB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,MAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,IAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,KAC7C,cAACykB,GAAA,EAAD,CAAUlnB,QAAQ,OAAOwC,MAAO,IAAKC,OAAQ,QAClC,K,uBCNZ0kB,GAPgB,SAAClxB,GAAD,OAC3B,eAACmxB,GAAA,EAAD,2BAAenxB,GAAf,cACI,6CACA,qBAAKuM,MAAOvM,EAAMuM,MAAOf,IALpB,sCC4UE4lB,GAlT2C,SAACpxB,GACvD,IAAQsnB,EAASyG,eAATzG,KAEA+J,EAA8BrxB,EAA9BqxB,cAAeC,EAAetxB,EAAfsxB,WACjBl2B,EAAWwR,cACT7S,EAASkI,cAATlI,KACF00B,EAAOC,cAAc,SAAChvB,GAAD,OAAkBA,EAAMivB,YAAYC,GAAG,SAElE,EAAwB3uB,mBAAkB,IAA1C,mBAAOsxB,EAAP,KAAaC,EAAb,KACA,EAAkCvxB,mBAAe,CAC7C9I,SAAU,GACVs6B,WAAY,KAFhB,mBAAOC,EAAP,KAAkBC,EAAlB,KAKM76B,EAAS6G,eAdkD,4CAkBjE,8BAAAyE,EAAA,+EAIyBZ,KAAYC,QAAQ,MAJ7C,OAIYgB,EAJZ,OAMY2E,EAGE,GAEN3E,EAAKrI,SAAQ,SAACyK,GACV,IAAIwC,EAAUxC,EAAExD,UAAUoC,KAAI,SAAC6D,GAC3B,MAAO,CACHC,MAAOD,EAAGrG,YACVuG,KAAMF,EAAGnG,QACTgc,KACI,cAACC,GAAA,EAAD,CACIlmB,KAAMoQ,EAAGlG,cACTqU,SAAS,cAMrBhO,EAAM,CACNF,MAAO1C,EAAE5D,YACTyG,MAAOL,GAEXD,EAAI1N,KAAK+N,MAIb+pB,EAAQpqB,GAjChB,qHAlBiE,sBAwEjEjH,qBAAU,YAxEuD,mCA4E7DuG,KACD,CAAC4gB,EAAK5lB,WAETvB,qBAAU,WACFmxB,GAAcD,GACdA,IAEsB,IAAtBK,EAAUv6B,UAKlB,WAEI,IAAIsL,EAAO8qB,eACM,MAAb9qB,EAAKH,MACLqvB,GAAa,SAACC,GACV,OAAO,2BACAA,GADP,IAEIz6B,SAAUsL,EAAKovB,SACfJ,WAAY,gBAIxB,GAAiB,MAAbhvB,EAAKH,KAAc,CACnB,IAAIwvB,EAAoB,CACpB36B,SAAUsL,EAAKovB,SACfJ,WAAY,cAEhBE,EAAaG,GAEjB,GAAiB,MAAbrvB,EAAKH,KAAc,CACnB,IAAIwvB,EAAoB,CACpB36B,SAAUsL,EAAKovB,SACfJ,WAAY,UAEhBE,EAAaG,GAEjB,GAAiB,MAAbrvB,EAAKH,KAAc,CACnB,IAAIwvB,EAAoB,CACpB36B,SAAUsL,EAAKovB,SACfJ,WAAY,UAEhBE,EAAaG,IAnCbC,KAEL,CAAC32B,EAAS+S,WAoCb,IAAM4gB,EACF,cAAC/kB,EAAA,EAAD,CACIC,GAAI,CACAa,QAAS,OACTyC,cAAe,SACff,OAAQ,QAJhB,SAOoB,GAAf+kB,EAAKt3B,OACF,cAAC82B,GAAD,CAAgBC,SAAO,IAEvB,eAACrhB,GAAA,EAAD,CAAWsX,QAAS,CAAE+K,iBAAiB,GAAvC,UACI,cAAChoB,EAAA,EAAD,CACIC,GAAI,CAOA0D,GAAI,EACJ+P,GAAI,GATZ,SAYI,cAAC,IAAD,CAAY9P,GAAG,IAAf,SAOI,cAAC5D,EAAA,EAAD,CACIC,GAAI,CACAa,QAAS,OACTC,eAAgB,UAHxB,SAMI,cAAC,GAAD,CACIwB,MAAM,gBAKtB,cAACX,GAAA,EAAD,CACI3B,GAAI,CAAEwU,YAAa,+BAEvB,cAACzU,EAAA,EAAD,CAAKC,GAAI,CAAEiE,EAAG,GAAd,SACI,eAAClE,EAAA,EAAD,CACIC,GAAI,CACAyB,WAAY,SACZL,gBAAiB,qBACjBwJ,aAAc,EACd/J,QAAS,OACTgK,SAAU,SACV5G,EAAG,GAPX,UAUI,cAAC,IAAD,CAAYN,GAAI8jB,EAAUD,WAA1B,SACI,cAAC5E,GAAA,EAAD,CACIrhB,IAAK1U,GAAkB,GACvBmT,GAAI,CACAoB,gBAAiB,UACjBhB,MAAO,eACP4nB,OAAQ,UACRzlB,OAAQ,GACRD,MAAO,QAInB,eAACvC,EAAA,EAAD,CAAKC,GAAI,CAAEilB,GAAI,EAAGphB,UAAW,UAA7B,UACI,cAAChC,EAAA,EAAD,CACIzB,MAAM,eACNN,QAAQ,YAFZ,SAIK2nB,EAAUv6B,WAEf,eAAC2U,EAAA,EAAD,CAAYzB,MAAM,UAAUN,QAAQ,QAApC,UAE0B,MAArBwjB,eAAajrB,KACR,eACqB,MAArBirB,eAAajrB,KACT,qBACA,kBACV,cAACkc,GAAA,EAAD,CACInU,MAAM,UACNkB,UAAW+Q,IACX1O,GAAG,WAHP,SAKK7T,EAAKoK,kBAM1B,cAACyH,GAAA,EAAD,CACI3B,GAAI,CAAEwU,YAAa,+BAEvB,cAACzU,EAAA,EAAD,CAAKC,GAAI,CAAEiE,EAAG,GAAd,SAIKqjB,EAAK9tB,KAAI,SAACsa,GAAD,OACN,cAAC,GAAD,aAEI5P,SAAU/S,EAAS+S,SACnBlE,GAAI,CACA,QAAS,CACLC,GAAI,KAGR6T,GAPCA,EAAQxW,iBAsCzC,OAAIknB,EAEI,cAACxF,EAAA,EAAD,CACIC,OAAO,OACPT,MAAI,EACJW,WAAY,CACRnf,GAAI,CACAoB,gBAAiB,wBAGjBkB,MAAO,MAGfxC,QAAQ,YAXZ,SAaKglB,IAMT,cAAC9F,EAAA,EAAD,CACIC,OAAO,OACPC,QAASkI,EACT5I,KAAM6I,EACNlI,WAAY,CACRnf,GAAI,CACAoB,gBAAiB,wBACjBkB,MAAO,MAGfxC,QAAQ,YAVZ,SAYKglB,KC/UPtyB,GAAc,QAaLy1B,GARO,CACpBC,eAAgB,WACd,OAAOv1B,IAAgB+E,IAAhB,UAAuBlF,GAAvB,kBAET21B,eAAgB,WACd,OAAOx1B,IAAgB+E,IAAhB,UAAuBlF,GAAvB,qBCKL41B,GAAY,CAChB,aASIC,GAAsB1T,aAAmB,MAAnBA,EAC1B,kBACE,CACEvT,gBAFJ,EAAG3L,MAEwB0W,QAAQE,WAAWC,QAC1CzL,QAAS,OACT0B,OAAQ,OACRsI,SAAU,SACVvI,MAAO,WAKPgmB,GAAyB3T,aAAmB,MAAnBA,EAC7B,gBAAGlf,EAAH,EAAGA,MAAH,oBAEIoL,QAAS,OACT0nB,KAAM,WACN1d,SAAU,SACV+J,WAAY,QACXnf,EAAMivB,YAAYC,GAAG,MAAQ,CAC5BY,YAAa,aAMfiD,GAA2B7T,aAAmB,MAAnBA,CAA0B,CACzD9T,QAAS,OACT0nB,KAAM,WACN1d,SAAU,WAGN4d,GAAyB9T,aAAmB,MAAnBA,CAA0B,CACvD4T,KAAM,WACNhmB,OAAQ,OACRsI,SAAU,OACV4E,SAAU,WACViZ,wBAAyB,UA8CZC,GA3CmC,WAChD,MAAsD3yB,oBAAkB,GAAxE,mBAAO4yB,EAAP,KAA4BC,EAA5B,KACA,EAAoC7yB,mBAAwB,IAA5D,mBAAO8yB,EAAP,KAAmBC,EAAnB,KAFsD,4CAItD,8BAAA5wB,EAAA,sEACmB6wB,GAA2Bd,iBAD9C,OACM1vB,EADN,OAEMywB,EAAkC,GACtCzwB,EAAKrI,SAAQ,SAAAkN,IAEE,GADF+qB,GAAUpC,QAAQ3oB,EAAG0V,cAE9BkW,EAAiBx5B,KAAK4N,MAG1B0rB,EAAcE,GAThB,4CAJsD,sBAsBtD,OANA/yB,qBAAU,WACiB,GAArB4yB,EAAW94B,QAjBqC,mCAkBlDk5B,KAED,IAGD,eAACb,GAAD,WACE,cAAC,GAAD,CACEzD,oBAAqB,kBAAYiE,GAAuB,IACxDhE,WAAaiE,IAEf,cAAC,GAAD,CACE1B,cAAe,kBAAYyB,GAAuB,IAClDxB,WAAYuB,IAEd,cAACN,GAAD,UACE,cAACE,GAAD,UACE,cAACC,GAAD,UACE,cAAC,IAAD,cChDGU,GA1CyB,SAAC,GAAD,IAAGvE,EAAH,EAAGA,oBAAH,OACtC,cAACR,GAAA,EAAD,CACEpkB,GAAI,CACFoB,gBAAiB,mBACjBhB,MAAO,eACPikB,UAAW,OACXhX,aAAc,SAAC5X,GAAD,0BAAwBA,EAAM0W,QAAQmB,UACpD/C,OAAQ,SAAC9U,GAAD,OAAWA,EAAM8U,OAAO+Z,OAAS,MAN7C,SASE,eAACU,GAAA,EAAD,CAAShlB,GAAI,CAAEuC,OAAQ,IAAvB,UACE,cAACyhB,GAAA,EAAD,CACE5jB,MAAM,UACNW,QAAS6jB,EACT5kB,GAAI,CACFa,QAAS,CACPoC,GAAI,SALV,SASE,cAAChX,GAAA,EAAD,CAAUuf,SAAS,YAErB,cAAC,IAAD,CAAY7H,GAAG,IAAf,SACE,cAACwc,EAAA,EAAD,CACEngB,GAAI,CACFuC,OAAQ,GACRD,MAAO,GACPzB,QAAS,CACPoC,GAAI,SACJC,GAAI,mBCnBZkmB,GAAiB,SAAC,GAAD,QACrBhE,aADqB,MACb,EADa,EAErB3nB,EAFqB,EAErBA,MACAyG,EAHqB,EAGrBA,SAHqB,OASrB,cAAC8P,GAAA,EAAD,CAAMC,gBAAc,EAApB,SACGxW,EAAM6G,QAEL,SAAC8hB,EAAK3sB,GAAN,OAAe4sB,GAAkB,CAC/BD,MACA3sB,OACAyK,WACAkhB,YAEF,OAKAiB,GAAoB,SAAC,GAUA,IATzBD,EASwB,EATxBA,IACAliB,EAQwB,EARxBA,SACAzK,EAOwB,EAPxBA,KACA2rB,EAMwB,EANxBA,MAOM1rB,EAAG,UAAMD,EAAK6D,MAAX,YAAoB8nB,GACvBkB,IAAa7sB,EAAK8D,QAASgpB,YAAU,CACzChpB,KAAM9D,EAAK8D,KACXsc,KAAK,GACJ3V,GAEH,GAAIzK,EAAK3H,SAAU,CACjB,IAAM00B,IAAe/sB,EAAK8D,QAASgpB,YAAU,CAC3ChpB,KAAM9D,EAAK8D,KACXsc,KAAK,GACJ3V,GAEHkiB,EAAI32B,KACF,cAAC,GAAD,CACE2c,OAAQoa,EACRpB,MAAOA,EACPlS,KAAMzZ,EAAKyZ,KACXmS,KAAM5rB,EAAK4rB,KAEX7G,KAAMgI,EACNjpB,KAAM9D,EAAK8D,KACXD,MAAO7D,EAAK6D,MARd,SAUG8rB,GAAe,CACdhE,MAAOA,EAAQ,EACf3nB,MAAOhE,EAAK3H,SACZoS,cARGxK,SAaT0sB,EAAI32B,KACF,cAAC,GAAD,CACE2c,OAAQka,EACRlB,MAAOA,EACPlS,KAAMzZ,EAAKyZ,KACXmS,KAAM5rB,EAAK4rB,KAEX9nB,KAAM9D,EAAK8D,KACXD,MAAO7D,EAAK6D,OAFP5D,IAOX,OAAO0sB,GA4CMiD,GAzCyB,SAACtzB,GACvC,IACE0H,EAIE1H,EAJF0H,MACAyG,EAGEnO,EAHFmO,SACA5G,EAEEvH,EAFFuH,MACGuI,EAJL,aAKI9P,EALJ,8BAOA,OACE,cAACie,GAAA,EAAD,yBACE0S,UACE,cAACC,GAAA,EAAD,CACEvS,gBAAc,EACdwS,eAAa,EACb5mB,GAAI,CACFI,MAAO,eACPoL,SAAU,UACVqb,WAAY,IACZxb,WAAY,IACZpB,cAAe,aARnB,SAWG3M,KAGDuI,GAhBN,aAkBGujB,GAAe,CACd3rB,QACAyG,iBCvGFolB,GAAsB,CAC1B,CACEhsB,MAAO,WACPG,MAAO,CACL,CACEH,MAAO,UACPC,KAAM,0BAER,CACED,MAAO,kBACPC,KAAM,kCAER,CACED,MAAO,eACPC,KAAM,+BAER,CACED,MAAO,wBACPC,KAAM,wCAER,CACED,MAAO,UACPC,KAAM,0BAER,CACED,MAAO,QACPC,KAAM,wBAER,CACED,MAAO,eACPC,KAAM,+BAER,CACED,MAAO,WACPC,KAAM,2BAER,CACED,MAAO,MACPC,KAAM,sBAER,CACED,MAAO,uBACPC,KAAM,uCAER,CACED,MAAO,aACPC,KAAM,6BAER,CACED,MAAO,uBACPC,KAAM,wCAIZ,CACED,MAAO,UACPG,MAAO,CACL,CACEH,MAAO,iBACPC,KAAM,gCAER,CACED,MAAO,iBACPC,KAAM,kCAIZ,CACED,MAAO,iBACPG,MAAO,CACL,CACEH,MAAO,UACPC,KAAM,gCAER,CACED,MAAO,QACPC,KAAM,8BAER,CACED,MAAO,WACPC,KAAM,iCAER,CACED,MAAO,MACPC,KAAM,8BAIZ,CACED,MAAO,SACPG,MAAO,CACL,CACEH,MAAO,cACPC,KAAM,4BAER,CACED,MAAO,aACPC,KAAM,2BAER,CACED,MAAO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","file":"static/js/main.99291e05.chunk.js","sourcesContent":["import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Menu = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Menu'\r\n);\r\n\r\nexport default Menu;\r\n","import { subDays, subHours, subMinutes } from 'date-fns';\r\nimport type { Contact, Thread, Message, Participant } from '../types/chat';\r\nimport createResourceId from '../utils/createResourceId';\r\nimport deepCopy from '../utils/deepCopy';\r\n\r\nconst now = new Date();\r\n\r\nconst contacts: Contact[] = [\r\n {\r\n id: '5e8891ab188cd2855e6029b7',\r\n avatar: '/static/mock-images/avatars/avatar-alcides_antonio.png',\r\n isActive: true,\r\n lastActivity: now.getTime(),\r\n name: 'Alcides Antonio',\r\n username: 'alcides.antonio'\r\n },\r\n {\r\n id: '5e887a62195cc5aef7e8ca5d',\r\n avatar: '/static/mock-images/avatars/avatar-marcus_finn.png',\r\n isActive: false,\r\n lastActivity: subHours(now, 2).getTime(),\r\n name: 'Marcus Finn',\r\n username: 'marcus.finn'\r\n },\r\n {\r\n id: '5e887ac47eed253091be10cb',\r\n avatar: '/static/mock-images/avatars/avatar-carson_darrin.png',\r\n isActive: false,\r\n lastActivity: subMinutes(now, 15).getTime(),\r\n name: 'Carson Darrin',\r\n username: 'carson.darrin'\r\n },\r\n {\r\n id: '5e887b209c28ac3dd97f6db5',\r\n avatar: '/static/mock-images/avatars/avatar-fran_perez.png',\r\n isActive: true,\r\n lastActivity: now.getTime(),\r\n name: 'Fran Perez',\r\n username: 'fran.perez'\r\n },\r\n {\r\n id: '5e887b7602bdbc4dbb234b27',\r\n avatar: '/static/mock-images/avatars/avatar-jie_yan_song.png',\r\n isActive: true,\r\n lastActivity: now.getTime(),\r\n name: 'Jie Yan Song',\r\n username: 'jie.yan.song'\r\n },\r\n {\r\n id: '5e86805e2bafd54f66cc95c3',\r\n avatar: '/static/mock-images/avatars/avatar-miron_vitold.png',\r\n isActive: false,\r\n lastActivity: subDays(now, 2).getTime(),\r\n name: 'Miron Vitold',\r\n username: 'miron.vitold'\r\n },\r\n {\r\n id: '5e887a1fbefd7938eea9c981',\r\n avatar: '/static/mock-images/avatars/avatar-penjani_inyene.png',\r\n isActive: false,\r\n lastActivity: subHours(now, 6).getTime(),\r\n name: 'Penjani Inyene',\r\n username: 'penjani.inyene'\r\n },\r\n {\r\n id: '5e887d0b3d090c1b8f162003',\r\n avatar: '/static/mock-images/avatars/avatar-omar_darobe.png',\r\n isActive: true,\r\n lastActivity: now.getTime(),\r\n name: 'Omar Darobe',\r\n username: 'omar.darobe'\r\n },\r\n {\r\n id: '5e88792be2d4cfb4bf0971d9',\r\n avatar: '/static/mock-images/avatars/avatar-siegbert_gottfried.png',\r\n isActive: true,\r\n lastActivity: now.getTime(),\r\n name: 'Siegbert Gottfried',\r\n username: 'siegbert.gottfried'\r\n },\r\n {\r\n id: '5e8877da9a65442b11551975',\r\n avatar: '/static/mock-images/avatars/avatar-iulia_albu.png',\r\n isActive: true,\r\n lastActivity: now.getTime(),\r\n name: 'Iulia Albu',\r\n username: 'iulia.albu'\r\n },\r\n {\r\n id: '5e8680e60cba5019c5ca6fda',\r\n avatar: '/static/mock-images/avatars/avatar-nasimiyu_danai.png',\r\n isActive: true,\r\n lastActivity: now.getTime(),\r\n name: 'Nasimiyu Danai',\r\n username: 'nasimiyu.danai'\r\n }\r\n];\r\n\r\nconst threads: Thread[] = [\r\n {\r\n id: '5e867eb9de721aecaccf4f7b',\r\n messages: [\r\n {\r\n id: '5e867f0a5bc0ff2bfa07bfa6',\r\n attachments: [],\r\n body: 'Hey, nice projects! I really liked the one in react. What\\'s your quote on kinda similar project?',\r\n contentType: 'text',\r\n createdAt: subHours(now, 10).getTime(),\r\n senderId: '5e86805e2bafd54f66cc95c3'\r\n },\r\n {\r\n id: '5e867f167d5f78109ae9f2a4',\r\n attachments: [],\r\n body: 'I would need to know more details, but my hourly rate stats at $35/hour. Thanks!',\r\n contentType: 'text',\r\n createdAt: subHours(now, 2).getTime(),\r\n senderId: '5e86809283e28b96d2d38537'\r\n },\r\n {\r\n id: '5e867f1c9ca72084693528f4',\r\n attachments: [],\r\n body: 'Well it\\'s a really easy one, I\\'m sure we can make it half of the price.',\r\n contentType: 'text',\r\n createdAt: subMinutes(now, 5).getTime(),\r\n senderId: '5e86805e2bafd54f66cc95c3'\r\n },\r\n {\r\n id: '5e867f22fd2e27a09849b4db',\r\n attachments: [],\r\n body: 'Then why don\\'t you make it if it\\'s that easy? Sorry I\\'m not interetes, have fantastic day Adam!',\r\n contentType: 'text',\r\n createdAt: subMinutes(now, 3).getTime(),\r\n senderId: '5e86809283e28b96d2d38537'\r\n },\r\n {\r\n id: '5e867f28a34d45ac6eb5c41f',\r\n attachments: [],\r\n body: 'Last offer, $25 per hour',\r\n contentType: 'text',\r\n createdAt: subMinutes(now, 1).getTime(),\r\n senderId: '5e86805e2bafd54f66cc95c3'\r\n },\r\n {\r\n id: '5e867f2dba984a3f78b33526',\r\n attachments: [],\r\n body: '/static/mock-images/projects/project_4.png',\r\n contentType: 'image',\r\n createdAt: subMinutes(now, 1).getTime(),\r\n senderId: '5e86805e2bafd54f66cc95c3'\r\n }\r\n ],\r\n participants: [\r\n {\r\n id: '5e86809283e28b96d2d38537',\r\n avatar: '/static/mock-images/avatars/avatar-jane_rotanson.png',\r\n name: 'Jane Rotanson',\r\n username: 'jane.rotanson'\r\n },\r\n {\r\n id: '5e86805e2bafd54f66cc95c3',\r\n avatar: '/static/mock-images/avatars/avatar-miron_vitold.png',\r\n name: 'Miron Vitold',\r\n username: 'miron.vitold'\r\n }\r\n ],\r\n type: 'ONE_TO_ONE',\r\n unreadCount: 2\r\n },\r\n {\r\n id: '5e867fa7082c3c5921403a26',\r\n messages: [\r\n {\r\n id: '5e867fc180837d901bd9bca1',\r\n attachments: [],\r\n body: 'Hey, would you like to collaborate?',\r\n contentType: 'text',\r\n createdAt: subMinutes(now, 6).getTime(),\r\n senderId: '5e8680e60cba5019c5ca6fda'\r\n },\r\n {\r\n id: '5e8d6fb695df7971237fc173',\r\n attachments: [],\r\n body: 'Hi, Merrile!',\r\n contentType: 'text',\r\n createdAt: subMinutes(now, 5).getTime(),\r\n senderId: '5e86809283e28b96d2d38537'\r\n },\r\n {\r\n id: '58825a290eb4d4271a54f188',\r\n attachments: [],\r\n body: 'Hello everyone 😀',\r\n contentType: 'text',\r\n createdAt: subMinutes(now, 2).getTime(),\r\n senderId: '5e8891ab188cd2855e6029b7'\r\n }\r\n ],\r\n participants: [\r\n {\r\n id: '5e86809283e28b96d2d38537',\r\n avatar: '/static/mock-images/avatars/avatar-jane_rotanson.png',\r\n name: 'Jane Rotanson',\r\n username: 'jane.rotanson'\r\n },\r\n {\r\n id: '5e8680e60cba5019c5ca6fda',\r\n avatar: '/static/mock-images/avatars/avatar-nasimiyu_danai.png',\r\n name: 'Nasimiyu Danai',\r\n username: 'nasimiyu.danai'\r\n },\r\n {\r\n id: '5e8891ab188cd2855e6029b7',\r\n avatar: '/static/mock-images/avatars/avatar-alcides_antonio.png',\r\n name: 'Alcides Antonio',\r\n username: 'alcides.antonio'\r\n }\r\n ],\r\n type: 'GROUP',\r\n unreadCount: 0\r\n }\r\n];\r\n\r\nconst findContactByUsername = (username: string): Contact | null => {\r\n const contact = contacts.find((_contact) => _contact.username === username);\r\n\r\n return contact || null;\r\n};\r\n\r\nconst findThreadById = (threadId: string): Thread | null => {\r\n const thread = threads.find((_threadId) => _threadId.id === threadId);\r\n\r\n return thread || null;\r\n};\r\n\r\n// This means that we are looking for ONE_TO_ONE thread\r\nconst findThreadByOtherParticipantId = (participantId: string): Thread | null => {\r\n const thread = threads.find((_thread) => {\r\n if (_thread.type !== 'ONE_TO_ONE') {\r\n return false;\r\n }\r\n\r\n const participant = _thread.participants.find((_participant) => (\r\n _participant.id === participantId\r\n ));\r\n\r\n return !!participant;\r\n });\r\n\r\n return thread || null;\r\n};\r\n\r\nconst findThreadByParticipantIds = (participantIds: string[]): Thread | null => {\r\n const thread = threads.find((_thread) => {\r\n if (_thread.participants.length < participantIds.length) {\r\n return false;\r\n }\r\n\r\n const foundParticipantIds = new Set();\r\n\r\n thread.participants.forEach((participant) => {\r\n foundParticipantIds.add(participant.id);\r\n });\r\n\r\n return foundParticipantIds.size === participantIds.length;\r\n });\r\n\r\n return thread || null;\r\n};\r\n\r\nclass ChatApi {\r\n getContacts(): Promise {\r\n return Promise.resolve(deepCopy(contacts));\r\n }\r\n\r\n searchContacts(query: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let foundContacts = contacts;\r\n\r\n if (query) {\r\n const cleanQuery = query.toLowerCase().trim();\r\n foundContacts = foundContacts.filter((contact) => (\r\n contact.name.toLowerCase().includes(cleanQuery)\r\n ));\r\n }\r\n\r\n resolve(deepCopy(foundContacts));\r\n } catch (err) {\r\n console.error('[Chat Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n getParticipants(threadKey: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const participants = [];\r\n\r\n // Thread key might be an ID if thread type is GROUP\r\n // otherwise it represents an username\r\n const thread = findThreadById(threadKey);\r\n\r\n if (thread) {\r\n participants.push(...thread.participants);\r\n } else {\r\n const contact = findContactByUsername(threadKey);\r\n\r\n if (contact) {\r\n participants.push({\r\n id: contact.id,\r\n avatar: contact.avatar,\r\n name: contact.name,\r\n username: contact.username\r\n });\r\n }\r\n }\r\n\r\n resolve(deepCopy(participants));\r\n } catch (err) {\r\n console.error('[Chat Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n getThreads(): Promise {\r\n return Promise.resolve(deepCopy(threads));\r\n }\r\n\r\n getThread(threadKey: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Thread key might be an ID if thread type is GROUP\r\n // otherwise it represents an username\r\n let thread = findThreadById(threadKey);\r\n\r\n if (thread) {\r\n resolve(deepCopy(thread));\r\n return;\r\n }\r\n\r\n // At this point, thread key should represent an existing contact\r\n // If no contact found, the user is trying a shady route\r\n // If contact exists, user might want to start a new conversation\r\n const contact = findContactByUsername(threadKey);\r\n\r\n if (!contact) {\r\n reject(new Error('Unable to find the contact'));\r\n return;\r\n }\r\n\r\n // This could return a null if no thread found\r\n thread = findThreadByOtherParticipantId(contact.id);\r\n\r\n resolve(deepCopy(thread));\r\n } catch (err) {\r\n console.error('[Chat Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n markThreadAsSeen(threadId: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const thread = threads.find((_thread) => _thread.id === threadId);\r\n\r\n if (thread) {\r\n thread.unreadCount = 0;\r\n }\r\n\r\n resolve(true);\r\n } catch (err) {\r\n console.error('[Chat Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n addMessage({ threadId, recipientIds, body }) {\r\n // Adding a new message to a thread can by done in 3 ways\r\n // 1) By specifying a thread id, this means that the thread already exists\r\n // 2) By specifying the other user id (if ONE_TO_ONE thread), thread might exist\r\n // 3) By specifying a list of recipients, thread might already exist\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // On server get current identity (user) from the request\r\n const user = {\r\n id: '5e86809283e28b96d2d38537',\r\n avatar: '/static/mock-images/avatars/avatar-jane_rotanson.png',\r\n name: 'Jane Rotanson',\r\n username: 'jane.rotanson'\r\n };\r\n\r\n let thread = null;\r\n\r\n // Try to find the thread by threadId if provided\r\n if (threadId) {\r\n thread = findThreadById(threadId);\r\n\r\n if (!thread) {\r\n reject(new Error('Invalid thread id'));\r\n return;\r\n }\r\n }\r\n\r\n // Try to find the thread by recipientIds is provided\r\n if (recipientIds) {\r\n const participantIds = [...recipientIds, user.id];\r\n\r\n thread = findThreadByParticipantIds(participantIds);\r\n }\r\n\r\n const message: Message = {\r\n id: createResourceId(),\r\n attachments: [],\r\n body,\r\n contentType: 'text',\r\n createdAt: now.getTime(),\r\n senderId: user.id\r\n };\r\n\r\n // If thread exists, add the message\r\n if (thread) {\r\n thread.messages.push(message);\r\n } else {\r\n // If it does not, it means that we have to create a new thread\r\n const participants = [user];\r\n\r\n recipientIds.forEach((recipientId) => {\r\n const contact = contacts.find((_contact) => _contact.id === recipientId);\r\n\r\n // This should not naturally occur\r\n if (!contact) {\r\n throw new Error('Contact not found');\r\n }\r\n\r\n participants.push({\r\n id: contact.id,\r\n avatar: contact.avatar,\r\n name: contact.name,\r\n username: contact.username\r\n });\r\n });\r\n\r\n thread = {\r\n id: createResourceId(),\r\n messages: [message],\r\n participants,\r\n type: participants.length === 2 ? 'ONE_TO_ONE' : 'GROUP',\r\n unreadCount: 0\r\n };\r\n }\r\n\r\n resolve({\r\n threadId: thread.id,\r\n message\r\n });\r\n } catch (err) {\r\n console.error('[Chat Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const chatApi = new ChatApi();\r\n","// authService.ts\r\nimport { AuthenticationContext, adalFetch, withAdalLogin } from \"react-adal\";\r\n \r\nexport const adalConfig = {\r\n instance: \"https://sso6.neu.edu.vn/\",\r\n tenant: \"adfs\",\r\n clientId: \"6de4b302-8ce4-419c-b3ae-30734ca5d304\", \r\n // clientId: \"a6ad9561-f2a8-46cf-8e00-ee8ddb1a44b8\",\r\n\r\n endpoints: {\r\n api: \"https://localhost:44349/api/Auth/adfs\",\r\n },\r\n redirectUri: window.location.origin,\r\n postLogoutRedirectUri: window.location.origin,\r\n cacheLocation: \"localStorage\",\r\n};\r\n\r\nexport const authContext = new AuthenticationContext(adalConfig);\r\n\r\nexport const getToken = async (): Promise => {\r\n try {\r\n const token = await new Promise((resolve, reject) => {\r\n authContext.acquireToken(\r\n adalConfig.endpoints.api,\r\n (error, acquiredToken) => {\r\n if (error || !acquiredToken) {\r\n reject(error || new Error(\"Failed to acquire token.\"));\r\n } else {\r\n resolve(acquiredToken);\r\n }\r\n }\r\n );\r\n });\r\n\r\n return token;\r\n } catch (error) {\r\n console.error(\"Error acquiring token:\", error);\r\n throw error;\r\n }\r\n};\r\n\r\nexport const adalApiFetch = (fetch: any, url: string, options?: any) =>\r\n adalFetch(authContext, adalConfig.endpoints.api, fetch, url, options);\r\n\r\nexport const withAdalLoginApi = withAdalLogin(\r\n authContext,\r\n adalConfig.endpoints.api\r\n);\r\n","// AuthProvider.tsx\r\nimport React from 'react';\r\nimport { Navigate } from 'react-router';\r\nimport { authContext } from 'src/hooks/useAuthProvider';\r\n\r\nconst AuthContext = React.createContext(authContext);\r\n\r\nconst AuthProviderADFS: React.FC = ({ children }) => {\r\n const loginSSO = () => authContext.login();\r\n // const logoutSSO = () => authContext.logOut();\r\n const logoutSSO = () => {\r\n localStorage.removeItem(\"authorizationData\");\r\n window.location.replace(\"/\")\r\n authContext.logOut();\r\n \r\n };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { AuthProviderADFS, AuthContext };\r\n","import { UserAuthenticate, User } from \"../../UIS_models/user\";\r\nimport reSourceService from \"../ResourceService\";\r\nconst urlEndpoint = \"authenticate\";\r\nconst authService = {\r\n GetUser: (user: UserAuthenticate): Promise => {\r\n return reSourceService.post(`${urlEndpoint}/authpsc`, user);\r\n },\r\n ChangePassword: (authen:any): Promise => {\r\n return reSourceService.post(`${urlEndpoint}/ChangePassword`, authen);\r\n },\r\n ResetPassword: (authen:any): Promise => {\r\n return reSourceService.post(`${urlEndpoint}/ResetPassword`, authen);\r\n },\r\n AuthenSSO: (Modal:any): Promise => {\r\n return reSourceService.post(`${urlEndpoint}/authadfs`, Modal);\r\n },\r\n}\r\nexport default authService;","import { useContext } from 'react';\r\nimport SettingsContext from '../contexts/SettingsContext';\r\nimport type { SettingsContextValue } from '../contexts/SettingsContext';\r\n\r\nconst useSettings = (): SettingsContextValue => useContext(SettingsContext);\r\n\r\nexport default useSettings;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ChevronRight = createSvgIcon(\r\n \r\n \r\n ,\r\n 'ChevronRight'\r\n);\r\n\r\nexport default ChevronRight;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ChevronDown = createSvgIcon(\r\n \r\n \r\n ,\r\n 'ChevronDown'\r\n);\r\n\r\nexport default ChevronDown;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst User = createSvgIcon(\r\n \r\n \r\n ,\r\n 'User'\r\n);\r\n\r\nexport default User;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ArrowLeft = createSvgIcon(\r\n \r\n \r\n ,\r\n 'ArrowLeft'\r\n);\r\n\r\nexport default ArrowLeft;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Adjustments = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Adjustments'\r\n);\r\n\r\nexport default Adjustments;\r\n","import { useContext } from 'react';\r\nimport AvatarContext from '../contexts/AvatarContext';\r\n\r\nconst useAvatar = () => useContext(AvatarContext);\r\n\r\nexport default useAvatar;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst APlus = createSvgIcon(\r\n \r\n \r\n ,\r\n 'APlus'\r\n);\r\n\r\nexport default APlus;\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Balance = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Balance'\r\n);\r\n\r\nexport default Balance;\r\n\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Cash = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Cash'\r\n);\r\n\r\nexport default Cash;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ChartPie = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'ChartPie'\r\n);\r\n\r\nexport default ChartPie;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ChartSquareBar = createSvgIcon(\r\n \r\n \r\n ,\r\n 'ChartSquareBar'\r\n);\r\n\r\nexport default ChartSquareBar;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst CheckList = createSvgIcon(\r\n \r\n \r\n ,\r\n 'CheckList'\r\n);\r\nexport default CheckList;","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Clipboard = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'Clipboard'\r\n);\r\n\r\nexport default Clipboard;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Collection = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Collection'\r\n);\r\n\r\nexport default Collection;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Comment = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Comment'\r\n);\r\n\r\nexport default Comment;\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst DeviceTablet = createSvgIcon(\r\n \r\n \r\n ,\r\n 'DeviceTablet'\r\n);\r\n\r\nexport default DeviceTablet;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst DocumentAdd = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'DocumentAdd'\r\n);\r\n\r\nexport default DocumentAdd;\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Dot = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Dot'\r\n);\r\n\r\nexport default Dot;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst FingerPrint = createSvgIcon(\r\n \r\n \r\n \r\n \r\n ,\r\n 'FingerPrint'\r\n);\r\n\r\nexport default FingerPrint;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst MailOpen = createSvgIcon(\r\n \r\n \r\n ,\r\n 'MailOpen'\r\n);\r\n\r\nexport default MailOpen;\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\nconst Marks = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Marks'\r\n);\r\n\r\nexport default Marks;\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst PaymentFee = createSvgIcon(\r\n \r\n \r\n ,\r\n 'PaymentFee'\r\n);\r\n\r\nexport default PaymentFee;\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ShoppingBag = createSvgIcon(\r\n \r\n \r\n ,\r\n 'ShoppingBag'\r\n);\r\n\r\nexport default ShoppingBag;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Star = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Star'\r\n);\r\n\r\nexport default Star;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst UserCircle = createSvgIcon(\r\n \r\n \r\n ,\r\n 'UserCircle'\r\n);\r\n\r\nexport default UserCircle;\r\n","\r\nimport createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst WebsiteIcon = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'WebsiteIcon'\r\n);\r\nexport default WebsiteIcon;\r\n\r\n\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\nconst Fax = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'FaxIcon'\r\n);\r\nexport default Fax;","import { createContext, useEffect, useState } from 'react';\r\nimport type { FC, ReactNode } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { THEMES } from '../constants';\r\n\r\ninterface Settings {\r\n compact?: boolean;\r\n direction?: 'ltr' | 'rtl';\r\n responsiveFontSizes?: boolean;\r\n roundedCorners?: boolean;\r\n theme?: string;\r\n}\r\n\r\nexport interface SettingsContextValue {\r\n settings: Settings;\r\n saveSettings: (update: Settings) => void;\r\n}\r\n\r\ninterface SettingsProviderProps {\r\n children?: ReactNode;\r\n}\r\n\r\nconst initialSettings: Settings = {\r\n compact: true,\r\n direction: 'ltr',\r\n responsiveFontSizes: true,\r\n roundedCorners: true,\r\n theme: THEMES.LIGHT\r\n};\r\n\r\nexport const restoreSettings = (): Settings | null => {\r\n let settings = null;\r\n\r\n try {\r\n const storedData: string | null = window.localStorage.getItem('settings');\r\n\r\n if (storedData) {\r\n settings = JSON.parse(storedData);\r\n } else {\r\n settings = {\r\n compact: true,\r\n direction: 'ltr',\r\n responsiveFontSizes: true,\r\n roundedCorners: false,\r\n theme: THEMES.LIGHT\r\n // theme: window.matchMedia('(prefers-color-scheme: dark)').matches\r\n // ? THEMES.DARK\r\n // : THEMES.LIGHT\r\n };\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n // If stored data is not a strigified JSON this will fail,\r\n // that's why we catch the error\r\n }\r\n\r\n return settings;\r\n};\r\n\r\nexport const storeSettings = (settings: Settings): void => {\r\n window.localStorage.setItem('settings', JSON.stringify(settings));\r\n};\r\n\r\nconst SettingsContext = createContext({\r\n settings: initialSettings,\r\n saveSettings: () => {}\r\n});\r\n\r\nexport const SettingsProvider: FC = (props) => {\r\n const { children } = props;\r\n const [settings, setSettings] = useState(initialSettings);\r\n\r\n useEffect(() => {\r\n const restoredSettings = restoreSettings();\r\n\r\n if (restoredSettings) {\r\n setSettings(restoredSettings);\r\n }\r\n }, []);\r\n\r\n const saveSettings = (updatedSettings: Settings): void => {\r\n setSettings(updatedSettings);\r\n storeSettings(updatedSettings);\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nSettingsProvider.propTypes = {\r\n children: PropTypes.node.isRequired\r\n};\r\n\r\nexport const SettingsConsumer = SettingsContext.Consumer;\r\n\r\nexport default SettingsContext;\r\n","import { string } from \"prop-types\";\r\nimport reSourceService from \"../ResourceService\";\r\nconst urlEndpoint = \"authenticate\";\r\ninterface Menu {\r\n Id: number;\r\n TenChucNang: string;\r\n ThuTu: number;\r\n LienKet: string;\r\n DoHoaDeThuong: string;\r\n childMenu: Menu[];\r\n}\r\n//MENU Quản lý giảng đường tĩnh\r\n//SV\r\nconst MENU_SV: Menu[] = [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Trang cá nhân\",\r\n ThuTu: 0,\r\n LienKet: \"\",\r\n DoHoaDeThuong: \"User\",\r\n childMenu: [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Trang cá nhân\",\r\n ThuTu: 0,\r\n LienKet: \"/student/info\",\r\n DoHoaDeThuong: \"User\",\r\n childMenu: null,\r\n },\r\n ],\r\n },\r\n {\r\n Id: 1,\r\n TenChucNang: \"Chức năng trực tuyến\",\r\n ThuTu: 2,\r\n LienKet: \"\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Mượn phòng\",\r\n ThuTu: 0,\r\n LienKet: \"/student/MuonPhong\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n ],\r\n },\r\n];\r\n//GV\r\nconst MENU_GV: Menu[] = [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Trang cá nhân\",\r\n ThuTu: 0,\r\n LienKet: \"\",\r\n DoHoaDeThuong: \"User\",\r\n childMenu: [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Trang cá nhân\",\r\n ThuTu: 0,\r\n LienKet: \"/professor/info\",\r\n DoHoaDeThuong: \"User\",\r\n childMenu: null,\r\n },\r\n ],\r\n },\r\n {\r\n Id: 1,\r\n TenChucNang: \"Chức năng trực tuyến\",\r\n ThuTu: 2,\r\n LienKet: \"\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Mượn phòng\",\r\n ThuTu: 0,\r\n LienKet: \"/professor/MuonPhong\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n {\r\n Id: 1,\r\n TenChucNang: \"Báo nghỉ báo bù\",\r\n ThuTu: 1,\r\n LienKet: \"/professor/BaoNghiBaoBu\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n ],\r\n },\r\n];\r\n//AD\r\nconst MENU_AD: Menu[] = [\r\n {\r\n Id: 2,\r\n TenChucNang: \"Cấu hình chức năng\",\r\n ThuTu: 0,\r\n LienKet: \"\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Thêm chức năng\",\r\n ThuTu: 0,\r\n LienKet: \"/staff/phanquyen\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n {\r\n Id: 1,\r\n TenChucNang: \"Phân quyền cho nhóm\",\r\n ThuTu: 0,\r\n LienKet: \"/staff/nhomquyen\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n {\r\n Id: 2,\r\n TenChucNang: \"Chức năng\",\r\n ThuTu: 0,\r\n LienKet: \"/staff/chucnang\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n {\r\n Id: 4,\r\n TenChucNang: \"Phân quyền nhân viên\",\r\n ThuTu: 0,\r\n LienKet: \"/staff/phanquyennhanvien\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n ],\r\n },\r\n {\r\n Id: 0,\r\n TenChucNang: \"Chức năng trực tuyến\",\r\n ThuTu: 0,\r\n LienKet: \"\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Duyệt mượn phòng, cấp phòng\",\r\n ThuTu: 0,\r\n LienKet: \"/staff/DuyetPhong\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n {\r\n Id: 1,\r\n TenChucNang: \"Liên kết\",\r\n ThuTu: 1,\r\n LienKet: \"/staff/HeaderMenus\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n {\r\n Id: 2,\r\n TenChucNang: \"Quản lý Menu\",\r\n ThuTu: 2,\r\n LienKet: \"/staff/Menu\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n ],\r\n },\r\n {\r\n Id: 1,\r\n TenChucNang: \"Quản lý ngôn ngữ\",\r\n ThuTu: 0,\r\n LienKet: \"\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: [\r\n {\r\n Id: 0,\r\n TenChucNang: \"Quản lý ngôn ngữ\",\r\n ThuTu: 0,\r\n LienKet: \"/staff/Language\",\r\n DoHoaDeThuong: \"ClipboardList\",\r\n childMenu: null,\r\n },\r\n ],\r\n },\r\n];\r\nconst menuService = {\r\n GetMenu: (language?: string): Promise => {\r\n return reSourceService.get(`${urlEndpoint}/getmenu?language=${language}`);\r\n },\r\n GetMenuQLGD: (type: string): Promise => {\r\n switch (type) {\r\n case \"SV\":\r\n return Promise.resolve(MENU_SV as Menu[]);\r\n break;\r\n case \"GV\":\r\n return Promise.resolve(MENU_GV as Menu[]);\r\n break;\r\n case \"AD\":\r\n return Promise.resolve(MENU_AD as Menu[]);\r\n break;\r\n default:\r\n return Promise.resolve([] as Menu[]);\r\n break;\r\n }\r\n // return reSourceService.get(`${urlEndpoint}/getmenu?language=${language}`);\r\n },\r\n};\r\nexport default menuService;\r\n","import { createContext, useState, useCallback, useEffect } from \"react\";\r\nimport useMounted from \"../hooks/useMounted\";\r\nimport studentService from \"../../src/UIS_services/StudentService/studentService\";\r\nimport toast from \"react-hot-toast\";\r\nimport useAuth from \"../../src/hooks/useAuth\";\r\n\r\nconst AvatarContext = createContext(\"\");\r\n\r\nexport const AvatarProvider = ({ children }) => {\r\n const [avatar, Setavatar] = useState(\"\");\r\n const mounted = useMounted();\r\n const { user } = useAuth();\r\n\r\n const InitalData = useCallback(async () => {\r\n try {\r\n let userCurrent = localStorage.getItem(\"authorizationData\");\r\n\r\n if (userCurrent) {\r\n if (JSON.parse(userCurrent).Role == \"SV\") {\r\n let data = await studentService.GetAvatar();\r\n if (mounted.current && data) {\r\n Setavatar(data.data);\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n // toast.error(error.response.data);\r\n }\r\n }, [mounted, user]);\r\n useEffect(() => {\r\n InitalData();\r\n }, [InitalData]);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\nexport default AvatarContext;\r\n","/* eslint-disable no-bitwise */\r\nexport const JWT_SECRET = 'devias-top-secret-key';\r\nexport const JWT_EXPIRES_IN = 3600 * 24 * 2; // 2 days\r\n\r\n// Since we are unable to sign a JWT in a browser\r\n// because \"jsonwebtoken\" library is available on server side only, NodeJS environment\r\n// we simply simulate a signed token, no complex checks because on server side\r\n// you're using the library\r\nexport const sign = (\r\n payload: Record,\r\n privateKey: string,\r\n header: Record\r\n) => {\r\n const now = new Date();\r\n header.expiresIn = new Date(now.getTime() + header.expiresIn);\r\n const encodedHeader = btoa(JSON.stringify(header));\r\n const encodedPayload = btoa(JSON.stringify(payload));\r\n const signature = btoa(\r\n Array\r\n .from(encodedPayload)\r\n .map((item, key) => (\r\n String.fromCharCode(item.charCodeAt(0) ^ privateKey[key % privateKey.length].charCodeAt(0))\r\n ))\r\n .join('')\r\n );\r\n\r\n return `${encodedHeader}.${encodedPayload}.${signature}`;\r\n};\r\n\r\n// Since we create a fake signed token, we have to implement a fake jwt decode\r\n// platform to simulate \"jwt-decode\" library.\r\nexport const decode = (token: string): any => {\r\n const [encodedHeader, encodedPayload, signature] = token.split('.');\r\n const header = JSON.parse(atob(encodedHeader));\r\n const payload = JSON.parse(atob(encodedPayload));\r\n const now = new Date();\r\n\r\n if (now < header.expiresIn) {\r\n throw new Error('Expired token');\r\n }\r\n\r\n const verifiedSignature = btoa(\r\n Array\r\n .from(encodedPayload)\r\n .map((item, key) => (\r\n String.fromCharCode(item.charCodeAt(0) ^ JWT_SECRET[key % JWT_SECRET.length].charCodeAt(0))\r\n ))\r\n .join('')\r\n );\r\n\r\n if (verifiedSignature !== signature) {\r\n throw new Error('Invalid signature');\r\n }\r\n\r\n return payload;\r\n};\r\n\r\nexport const verify = (\r\n token: string,\r\n privateKey: string\r\n): Record => {\r\n const [encodedHeader, encodedPayload, signature] = token.split('.');\r\n const header = JSON.parse(atob(encodedHeader));\r\n const payload = JSON.parse(atob(encodedPayload));\r\n const now = new Date();\r\n\r\n if (now < header.expiresIn) {\r\n throw new Error('Expired token');\r\n }\r\n\r\n const verifiedSignature = btoa(\r\n Array\r\n .from(encodedPayload)\r\n .map((item, key) => (\r\n String.fromCharCode(item.charCodeAt(0) ^ privateKey[key % privateKey.length].charCodeAt(0))\r\n ))\r\n .join('')\r\n );\r\n\r\n if (verifiedSignature !== signature) {\r\n throw new Error('Invalid signature');\r\n }\r\n\r\n return payload;\r\n};\r\n","import createResourceId from '../utils/createResourceId';\r\nimport { sign, decode, JWT_SECRET, JWT_EXPIRES_IN } from '../utils/jwt';\r\nimport wait from '../utils/wait';\r\nimport { User } from '../types/user';\r\n\r\nconst users = [\r\n {\r\n id: '5e86809283e28b96d2d38537',\r\n avatar: '/static/mock-images/avatars/avatar-jane_rotanson.png',\r\n email: 'demo@devias.io',\r\n name: 'Jane Rotanson',\r\n password: 'Password123!',\r\n plan: 'Premium'\r\n }\r\n];\r\n\r\nclass AuthApi {\r\n async login({ email, password }): Promise {\r\n await wait(500);\r\n const res = await window.fetch('https://192.168.1.36/api/authenticate/authpsc', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json;charset=UTF-8',\r\n apiKey: 'pscRBF0zT2Mqo6vMw69YMOH43IrB2RtXBS0EHit2kzvL2auxaFJBvw==',\r\n clientId: 'ueh'\r\n },\r\n body: JSON.stringify({\r\n username: '31201028880',\r\n password: '08743757' \r\n }),\r\n });\r\n console.log(res.json().then((x) => console.log(x)));\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Find the user\r\n \r\n const user = users.find((_user) => _user.email === email);\r\n if (!user || (user.password !== password)) {\r\n reject(new Error('Please check your email and password'));\r\n return;\r\n }\r\n // Create the access token\r\n const accessToken = sign(\r\n { userId: user.id },\r\n JWT_SECRET,\r\n { expiresIn: JWT_EXPIRES_IN }\r\n ); \r\n\r\n resolve(accessToken);\r\n } catch (err) {\r\n console.error('[Auth Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n })\r\n }\r\n\r\n async register({ email, name, password }): Promise {\r\n await wait(1000);\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Check if a user already exists\r\n let user = users.find((_user) => _user.email === email);\r\n\r\n if (user) {\r\n reject(new Error('User already exists'));\r\n return;\r\n }\r\n\r\n user = {\r\n id: createResourceId(),\r\n avatar: null,\r\n email,\r\n name,\r\n password,\r\n plan: 'Standard'\r\n };\r\n\r\n users.push(user);\r\n\r\n const accessToken = sign(\r\n { userId: user.id },\r\n JWT_SECRET,\r\n { expiresIn: JWT_EXPIRES_IN }\r\n );\r\n\r\n resolve(accessToken);\r\n } catch (err) {\r\n console.error('[Auth Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n me(accessToken): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Decode access token\r\n const { userId } = decode(accessToken) as any;\r\n\r\n // Find the user\r\n const user = users.find((_user) => _user.id === userId);\r\n\r\n if (!user) {\r\n reject(new Error('Invalid authorization token'));\r\n return;\r\n }\r\n\r\n resolve({\r\n id: user.id,\r\n avatar: user.avatar,\r\n email: user.email,\r\n name: user.name,\r\n plan: user.plan\r\n });\r\n } catch (err) {\r\n console.error('[Auth Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const authApi = new AuthApi();\r\n","import { createContext, useEffect, useReducer } from \"react\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport type { User, UserAuthenticate } from \"../types/user\";\r\nimport { authApi } from \"../__fakeApi__/authApi\";\r\nimport authService from \"../UIS_services/AuthenticationService/authService\";\r\nimport menuService from \"src/UIS_services/AuthenticationService/menuService\";\r\nimport sha256 from 'crypto-js/sha256';\r\nimport hmacSHA512 from 'crypto-js/hmac-sha512';\r\nimport Base64 from 'crypto-js/enc-base64';\r\nimport CryptoJS from 'crypto-js';\r\nimport toast from \"react-hot-toast\";\r\nconst PrivateKey = \"pscRBF0zT2Mqo6vMw69YMOH43IrB2RtXBS0EHit2kzvL2auxaFJBvw\";\r\n\r\ninterface State {\r\n isInitialized: boolean;\r\n isAuthenticated: boolean;\r\n user: User | null;\r\n authmenu: any;\r\n}\r\n\r\ninterface AuthContextValue extends State {\r\n platform: \"JWT\";\r\n login: (email: string, password: string) => Promise;\r\n logout: () => Promise;\r\n register: (email: string, name: string, password: string) => Promise;\r\n loginAdfs: (email: string) => Promise;\r\n authmenu: null;\r\n}\r\n\r\ninterface AuthProviderProps {\r\n children: ReactNode;\r\n}\r\n\r\ntype InitializeAction = {\r\n type: \"INITIALIZE\";\r\n payload: {\r\n isAuthenticated: boolean;\r\n user: User | null;\r\n authmenu: any | null;\r\n };\r\n};\r\n\r\ntype LoginAction = {\r\n type: \"LOGIN\";\r\n payload: {\r\n user: User;\r\n authmenu: any;\r\n };\r\n};\r\ntype LoginActionADFS = {\r\n type: \"LOGINADFS\";\r\n payload: {\r\n user: User;\r\n authmenu: any;\r\n };\r\n};\r\n\r\ntype LogoutAction = {\r\n type: \"LOGOUT\";\r\n};\r\n\r\ntype RegisterAction = {\r\n type: \"REGISTER\";\r\n payload: {\r\n user: User;\r\n };\r\n};\r\n\r\ntype Action = InitializeAction | LoginAction | LogoutAction | RegisterAction | LoginActionADFS;\r\n\r\nconst initialState: State = {\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n user: null,\r\n authmenu: null,\r\n};\r\n\r\nconst handlers: Record State> = {\r\n INITIALIZE: (state: State, action: InitializeAction): State => {\r\n const { isAuthenticated, user, authmenu } = action.payload;\r\n\r\n return {\r\n ...state,\r\n isAuthenticated,\r\n isInitialized: true,\r\n user,\r\n authmenu,\r\n };\r\n },\r\n LOGIN: (state: State, action: LoginAction): State => {\r\n const { user, authmenu } = action.payload;\r\n\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user,\r\n authmenu,\r\n };\r\n },\r\n LOGINADFS: (state: State, action: LoginActionADFS): State => {\r\n const { user, authmenu } = action.payload;\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user,\r\n authmenu,\r\n };\r\n },\r\n LOGOUT: (state: State): State => ({\r\n ...state,\r\n isAuthenticated: false,\r\n user: null,\r\n }),\r\n REGISTER: (state: State, action: RegisterAction): State => {\r\n const { user } = action.payload;\r\n\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user,\r\n };\r\n },\r\n};\r\n\r\nconst reducer = (state: State, action: Action): State =>\r\n handlers[action.type] ? handlers[action.type](state, action) : state;\r\n\r\nconst AuthContext = createContext({\r\n ...initialState,\r\n platform: \"JWT\",\r\n login: () => Promise.resolve(),\r\n logout: () => Promise.resolve(),\r\n loginAdfs: () => Promise.resolve(),\r\n register: () => Promise.resolve(),\r\n});\r\n\r\nexport const AuthProvider: FC = (props) => {\r\n const { children } = props;\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n useEffect(() => {\r\n const initialize = async (): Promise => {\r\n try {\r\n // debugger;\r\n let authorizationData =\r\n localStorage.getItem(\"authorizationData\");\r\n let AuthMenu =\r\n localStorage.getItem(\"AuthMenu\");\r\n if (authorizationData) {\r\n const user = JSON.parse(authorizationData);\r\n // let datadecrypt = decrypt(AuthMenu);\r\n // const authmenu = AuthMenu;//JSON.parse(datadecrypt);\r\n const authmenu = await apiMenu();\r\n dispatch({\r\n type: \"INITIALIZE\",\r\n payload: {\r\n isAuthenticated: true,\r\n user,\r\n authmenu,\r\n },\r\n });\r\n } else {\r\n dispatch({\r\n type: \"INITIALIZE\",\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n authmenu: null,\r\n },\r\n });\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n dispatch({\r\n type: \"INITIALIZE\",\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n authmenu: null,\r\n },\r\n });\r\n }\r\n };\r\n\r\n initialize();\r\n }, []);\r\n\r\n const login = async (email: string, password: string): Promise => {\r\n let UserAuth: UserAuthenticate = {\r\n username: email,\r\n password: password,\r\n };\r\n const user = await authService.GetUser(UserAuth);\r\n localStorage.setItem(\"authorizationData\", JSON.stringify(user));\r\n const authmenu = await apiMenu();\r\n dispatch({\r\n type: \"LOGIN\",\r\n payload: {\r\n user,\r\n authmenu,\r\n },\r\n });\r\n };\r\n\r\n const loginAdfs = async (email: string): Promise => {\r\n let UserAuthenticate = {\r\n Token: email,\r\n };\r\n try {\r\n const user = await authService.AuthenSSO(UserAuthenticate);\r\n localStorage.setItem(\"authorizationData\", JSON.stringify(user));\r\n const authmenu = await apiMenu();\r\n dispatch({\r\n type: \"LOGIN\",\r\n payload: {\r\n user,\r\n authmenu,\r\n },\r\n });\r\n\r\n } catch (err) {\r\n toast.error(err.response.data.message)\r\n localStorage.removeItem(\"authorizationData\");\r\n setTimeout(() => {\r\n // window.location.href = 'https://sso6.neu.edu.vn/adfs/oauth2/logout?post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A3000'\r\n window.location.href = 'https://sso6.neu.edu.vn/adfs/oauth2/logout'\r\n }, 4000);\r\n }\r\n };\r\n\r\n const logout = async (): Promise => {\r\n localStorage.removeItem(\"authorizationData\");\r\n dispatch({ type: \"LOGOUT\" });\r\n };\r\n\r\n const register = async (\r\n email: string,\r\n name: string,\r\n password: string\r\n ): Promise => {\r\n const accessToken = await authApi.register({ email, name, password });\r\n const user = await authApi.me(accessToken);\r\n\r\n localStorage.setItem(\"accessToken\", accessToken);\r\n\r\n dispatch({\r\n type: \"REGISTER\",\r\n payload: {\r\n user,\r\n },\r\n });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nAuthProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport default AuthContext;\r\n\r\nasync function apiMenu() {\r\n try {\r\n let data = await menuService.GetMenu();\r\n // let authorizationData = localStorage.getItem(\"authorizationData\");\r\n // const user = JSON.parse(authorizationData);\r\n // let data = await menuService.GetMenuQLGD(user?.Role != \"NV\" ? user?.Role : \"AD\");\r\n let arr: {\r\n title: string;\r\n items: { title: string; path: string }[];\r\n }[] = [];\r\n\r\n data.forEach((x) => {\r\n let lstItem = x.childMenu.map((el) => {\r\n return {\r\n title: el.TenChucNang,\r\n path: el.LienKet,\r\n };\r\n });\r\n\r\n let tmp = {\r\n title: x.TenChucNang,\r\n items: lstItem,\r\n };\r\n arr.push(tmp);\r\n });\r\n localStorage.setItem(\"AuthMenu\", encrypt(JSON.stringify(arr)));\r\n return encrypt(JSON.stringify(arr));\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\nfunction encrypt(data: string) {\r\n var key = \"2e35f242a46d67eeb74aabc37d5e5d05\";\r\n var datas = CryptoJS.AES.encrypt(data, key); // Encryption Part\r\n return datas;\r\n}\r\n\r\nfunction decrypt(data: any) {\r\n var key = \"2e35f242a46d67eeb74aabc37d5e5d05\";\r\n var decrypted = CryptoJS.AES.decrypt(data, key).toString(CryptoJS.enc.Utf8); // Message\r\n return decrypted;\r\n}\r\n\r\n\r\n","import type { FC } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport * as Yup from 'yup';\r\nimport { Formik } from 'formik';\r\nimport {\r\n Alert,\r\n Box,\r\n Button,\r\n FormHelperText,\r\n TextField\r\n} from '@material-ui/core';\r\nimport useAuth from '../../../hooks/useAuth';\r\nimport useMounted from '../../../hooks/useMounted';\r\n\r\nconst LoginAmplify: FC = (props) => {\r\n const mounted = useMounted();\r\n const navigate = useNavigate();\r\n const { login } = useAuth() as any;\r\n\r\n return (\r\n => {\r\n try {\r\n await login(values.email, values.password);\r\n\r\n if (mounted.current) {\r\n setStatus({ success: true });\r\n setSubmitting(false);\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n\r\n if (err.code === 'UserNotConfirmedException') {\r\n navigate('/authentication/verify-code', {\r\n state: {\r\n username: values.email\r\n }\r\n });\r\n return;\r\n }\r\n\r\n if (mounted.current) {\r\n setStatus({ success: false });\r\n setErrors({ submit: err.message });\r\n setSubmitting(false);\r\n }\r\n }\r\n }}\r\n >\r\n {({\r\n errors,\r\n handleBlur,\r\n handleChange,\r\n handleSubmit,\r\n isSubmitting,\r\n touched,\r\n values\r\n }): JSX.Element => (\r\n \r\n \r\n \r\n {errors.submit && (\r\n \r\n \r\n {errors.submit}\r\n \r\n \r\n )}\r\n \r\n \r\n Log In\r\n \r\n \r\n \r\n \r\n
\r\n You can use\r\n {' '}\r\n demo@devias.io\r\n {' '}\r\n and password\r\n {' '}\r\n Password123!\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LoginAmplify;\r\n","import { useState } from 'react';\r\nimport type { FC } from 'react';\r\nimport { Box, Button, FormHelperText } from '@material-ui/core';\r\nimport useAuth from '../../../hooks/useAuth';\r\nimport useMounted from '../../../hooks/useMounted';\r\n\r\nconst LoginAuth0: FC = (props) => {\r\n const mounted = useMounted();\r\n const { loginWithPopup } = useAuth() as any;\r\n const [error, setError] = useState(null);\r\n\r\n const handleLogin = async (): Promise => {\r\n try {\r\n await loginWithPopup();\r\n } catch (err) {\r\n console.error(err);\r\n if (mounted.current) {\r\n setError(err.message);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {error && (\r\n \r\n \r\n {error}\r\n \r\n \r\n )}\r\n \r\n \r\n Log In\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LoginAuth0;\r\n","import type { FC } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Formik } from 'formik';\r\nimport {\r\n Alert,\r\n Box,\r\n Button,\r\n Divider,\r\n FormHelperText,\r\n TextField,\r\n Typography\r\n} from '@material-ui/core';\r\nimport useAuth from '../../../hooks/useAuth';\r\nimport useMounted from '../../../hooks/useMounted';\r\n\r\nconst LoginFirebase: FC = (props) => {\r\n const mounted = useMounted();\r\n const { signInWithEmailAndPassword, signInWithGoogle } = useAuth() as any;\r\n\r\n const handleGoogleClick = async (): Promise => {\r\n try {\r\n await signInWithGoogle();\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n Google\r\n \r\n \r\n \r\n \r\n \r\n \r\n OR\r\n \r\n \r\n \r\n \r\n \r\n => {\r\n try {\r\n await signInWithEmailAndPassword(values.email, values.password);\r\n\r\n if (mounted.current) {\r\n setStatus({ success: true });\r\n setSubmitting(false);\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n if (mounted.current) {\r\n setStatus({ success: false });\r\n setErrors({ submit: err.message });\r\n setSubmitting(false);\r\n }\r\n }\r\n }}\r\n >\r\n {({\r\n errors,\r\n handleBlur,\r\n handleChange,\r\n handleSubmit,\r\n isSubmitting,\r\n touched,\r\n values\r\n }): JSX.Element => (\r\n \r\n \r\n \r\n {errors.submit && (\r\n \r\n \r\n {errors.submit}\r\n \r\n \r\n )}\r\n \r\n \r\n Log In\r\n \r\n \r\n \r\n \r\n
\r\n You can use\r\n {' '}\r\n demo@devias.io\r\n {' '}\r\n and password\r\n {' '}\r\n Password123!\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LoginFirebase;\r\n","import { useContext, FC, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { Formik } from \"formik\";\r\nimport {\r\n Alert,\r\n Box,\r\n Button,\r\n FormHelperText,\r\n TextField,\r\n} from \"@material-ui/core\";\r\nimport useAuth from \"../../../hooks/useAuth\";\r\nimport useMounted from \"../../../hooks/useMounted\";\r\nimport toast from \"react-hot-toast\";\r\n// import adalProvider from \"src/types/ADFS/adalProvider\";\r\nimport { apiAdfsConfig } from 'src/config';\r\nimport { useAdal } from 'react-adal';\r\nimport { AuthContext } from \"src/contexts/useAuthProvider \";\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { getToken } from \"src/hooks/useAuthProvider\";\r\n\r\nconst LoginJWT: FC = (props) => {\r\n const mounted = useMounted();\r\n const { login, loginAdfs } = useAuth();\r\n\r\n const { loginSSO, logoutSSO } = useContext(AuthContext);\r\n\r\n const urlParams = new URLSearchParams(location.hash.substring(1));\r\n const idToken = urlParams.get('id_token');\r\n\r\n useEffect(() => {\r\n // Get the value of the 'id_token' parameter from the URL\r\n // const urlParams = new URLSearchParams(location.hash.substring(1));\r\n // const idToken = urlParams.get('id_token');\r\n if (idToken) {\r\n loginAdfs(idToken)\r\n }\r\n\r\n }, [idToken]);\r\n\r\n return (\r\n => {\r\n try {\r\n await login(values.email.trim(), values.password);\r\n if (mounted.current) {\r\n setStatus({ success: true });\r\n setSubmitting(false);\r\n }\r\n } catch (err) {\r\n if (mounted.current) {\r\n setStatus({ success: false });\r\n setErrors({ submit: err.response.data.message });\r\n setSubmitting(false);\r\n localStorage.removeItem(\"authorizationData\");\r\n }\r\n }\r\n }}\r\n >\r\n {({\r\n errors,\r\n handleBlur,\r\n handleChange,\r\n handleSubmit,\r\n isSubmitting,\r\n touched,\r\n values,\r\n }): JSX.Element => (\r\n
\r\n \r\n \r\n {errors.submit && (\r\n \r\n \r\n {errors.submit}\r\n \r\n \r\n )}\r\n \r\n \r\n Đăng nhập\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Đăng nhập SSO\r\n \r\n \r\n {/* \r\n \r\n
\r\n Use\r\n {' '}\r\n demo@devias.io\r\n {' '}\r\n and password\r\n {' '}\r\n Password123!\r\n
\r\n
\r\n
*/}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LoginJWT;\r\n","import { useEffect } from \"react\";\r\nimport type { FC } from \"react\";\r\nimport { Link as RouterLink, useLocation, useParams } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport {\r\n Box,\r\n Card,\r\n CardContent,\r\n Container,\r\n Divider,\r\n Grid,\r\n Link,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport {\r\n LoginAmplify,\r\n LoginAuth0,\r\n LoginFirebase,\r\n LoginJWT,\r\n} from \"src/components/authentication/login\";\r\nimport Logo from \"src/components/Logo\";\r\nimport AuthBanner from \"src/components/authentication/AuthBanner\";\r\nimport useAuth from \"src/hooks/useAuth\";\r\nimport gtm from \"src/lib/gtm\";\r\nimport UEHLogo from \"../../../components/UEHLogo\";\r\n// import PSCLoginJWT from \"src/components/authentication/login/PSCLoginJWT\";\r\n\r\nconst platformIcons = {\r\n Amplify: \"/static/icons/amplify.svg\",\r\n Auth0: \"/static/icons/auth0.svg\",\r\n Firebase: \"/static/icons/firebase.svg\",\r\n JWT: \"/static/icons/jwt.svg\",\r\n Logo: \"https://daihocchinhquy.neu.edu.vn/Content/logo/neu-logo.png\",\r\n};\r\n\r\nconst Login: FC = () => {\r\n const { platform } = useAuth() as any;\r\n const pathLocation = useLocation();\r\n console.log(platform);\r\n\r\n useEffect(() => {\r\n gtm.push({ event: \"page_view\" });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n Đăng nhập | NEU\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 img\": {\r\n width: \"100px\",\r\n },\r\n }}\r\n >\r\n \"Auth\r\n \r\n \r\n \r\n \r\n TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN\r\n \r\n {/* \r\n CỔNG THÔNG TIN SINH VIÊN\r\n */}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n ĐĂNG NHẬP\r\n \r\n \r\n Cổng quản lý giảng đường\r\n \r\n
\r\n {/* img': {\r\n maxHeight: '100%',\r\n width: 'auto'\r\n }\r\n }}\r\n >\r\n \r\n */}\r\n \r\n \r\n {platform === \"Amplify\" && }\r\n {platform === \"Auth0\" && }\r\n {platform === \"Firebase\" && }\r\n {!pathLocation.pathname.includes(\"loginpsc\") &&\r\n platform === \"JWT\" && }\r\n {/* {pathLocation.pathname.includes(\"loginpsc\") &&\r\n platform === \"JWT\" && } */}\r\n \r\n \r\n {/* {platform === \"JWT\" && (\r\n \r\n Quên mật khẩu\r\n \r\n )} */}\r\n \r\n
\r\n \r\n \r\n All Rights Reserved Developed by{\" \"}\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 Login;\r\n","const wait = (time: number): Promise => new Promise((res) => setTimeout(res, time));\r\n\r\nexport default wait;\r\n","// eslint-disable-next-line consistent-return\r\nconst deepCopy = (obj) => {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return obj;\r\n }\r\n\r\n if (obj instanceof Date) {\r\n return new Date(obj.getTime());\r\n }\r\n\r\n if (obj instanceof Array) {\r\n return obj.reduce((arr, item, i) => {\r\n arr[i] = deepCopy(item);\r\n return arr;\r\n }, []);\r\n }\r\n\r\n if (obj instanceof Object) {\r\n return Object.keys(obj).reduce((newObj, key) => {\r\n newObj[key] = deepCopy(obj[key]);\r\n return newObj;\r\n }, {});\r\n }\r\n};\r\n\r\nexport default deepCopy;\r\n","interface GTMConfig {\r\n containerId: string;\r\n}\r\n\r\nconst warn = (...args) => {\r\n if (process.env.NODE_ENV !== 'development') {\r\n return;\r\n }\r\n\r\n console.warn(...args);\r\n};\r\n\r\nclass GTM {\r\n CONTAINER_ID = null;\r\n\r\n initialized = false;\r\n\r\n configure(config: GTMConfig) {\r\n this.CONTAINER_ID = config.containerId;\r\n }\r\n\r\n initialize(config) {\r\n if (this.initialized) {\r\n warn('GTM can only be initialized once.');\r\n return;\r\n }\r\n\r\n // Maybe you want to load events from server side (in NextJS apps for example),\r\n // those can be queued.\r\n // SSR queued events can be loaded in the initialize script.\r\n // For the moment we do not implement it, but in future we might add it.\r\n\r\n if (!document) {\r\n warn('GTM can be initialized only on client side.');\r\n return;\r\n }\r\n\r\n if (!config.containerId) {\r\n warn('GTM requires a GTM ID to be loaded.');\r\n return;\r\n }\r\n\r\n this.configure(config);\r\n\r\n const script = document.createElement('script');\r\n const noscript = document.createElement('noscript');\r\n\r\n script.innerHTML = `\r\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\r\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\r\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\r\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\r\n })(window,document,'script','dataLayer','${this.CONTAINER_ID}');\r\n `;\r\n noscript.innerHTML = `\r\n \r\n `;\r\n\r\n document.head.insertBefore(script, document.head.childNodes[0]);\r\n document.body.insertBefore(noscript, document.body.childNodes[0]);\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n push(...args) {\r\n if (!window) {\r\n warn('GTM push works only on client side.');\r\n return;\r\n }\r\n\r\n if (!(window as any).dataLayer) {\r\n (window as any).dataLayer = [];\r\n }\r\n\r\n (window as any).dataLayer.push(...args);\r\n }\r\n}\r\n\r\n// Singleton\r\nconst gtm = new GTM();\r\n\r\nexport default gtm;\r\n","import { forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport type { ScrollBarProps as PerfectScrollbarProps } from 'react-perfect-scrollbar';\r\nimport { Box } from '@material-ui/core';\r\n\r\ninterface ScrollbarProps extends PerfectScrollbarProps {\r\n}\r\n\r\nconst Scrollbar = forwardRef((props, ref) => {\r\n const { children, ...other } = props;\r\n\r\n const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nScrollbar.propTypes = {\r\n children: PropTypes.node\r\n};\r\n\r\nexport default Scrollbar;\r\n","import reSourceService from \"../ResourceService\";\r\nimport {IQuyetDinhSinhVien} from '../../UIS_models/QuyetDinhSinhVien.model';\r\nimport {IHocPhanTuongDuong} from '../../UIS_models/HocPhanTuongDuong.model';\r\nimport {ILichThi} from '../../UIS_models/LichThi.model';\r\nimport { IChuongTrinhDaoTao } from \"src/UIS_models/ChuongTrinhDaoTao.model\";\r\nimport {IThongTinSinhVienCapNhat} from \"src/UIS_models/CapNhatThongTinSinhVien\";\r\nconst urlEndpoint = \"student\";\r\nconst studentService = {\r\n //Get data thông tin sinh viên\r\n Get:() :Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/info`);\r\n },\r\n //Get data chi tiet chuong trình đào tạo\r\n GetStudyPrograms :(StudyProgramID:string):Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/studyProgram?StudyProgramID=${StudyProgramID}`);\r\n },\r\n //Get data quyết định sinh viên\r\n GetAllDecision :():Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/decision`);\r\n },\r\n //Get data học phần tương đương sinh viên\r\n GetAllEquivalentcourse :():Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/equivalentcourse`);\r\n },\r\n //Get data năm học ,học kỳ\r\n GetYearAndTerm :():Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/yearandterm`);\r\n },\r\n //Get data lich thi sinh vien \r\n GetAllExam:(namhoc,hocky):Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/exam?namhoc=${namhoc}&&hocky=${hocky}`);\r\n },\r\n //Get data lich thi sinh vien \r\n GetAllExamByTime:():Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/showexambytime`);\r\n },\r\n //Get data chuong trinh dao tao sinh vien\r\n GetAllStudyProgram:():Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/getstudyprogram`);\r\n },\r\n GetStudentInfoUpdate:():Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/StudentInfoUpdate`);\r\n },\r\n UpdateStudent:(Student:any):Promise =>{\r\n return reSourceService.post(`${urlEndpoint}/UpdateStudent`,Student);\r\n },\r\n GetAvatar:():Promise =>{\r\n return reSourceService.get(`${urlEndpoint}/GetAvatar`);\r\n },\r\n}\r\nexport default studentService;","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ArrowRight = createSvgIcon(\r\n \r\n \r\n ,\r\n 'ArrowRight'\r\n);\r\n\r\nexport default ArrowRight;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst DotsHorizontal = createSvgIcon(\r\n \r\n \r\n ,\r\n 'DotsHorizontal'\r\n);\r\n\r\nexport default DotsHorizontal;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Download = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Download'\r\n);\r\n\r\nexport default Download;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Search = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Search'\r\n);\r\n\r\nexport default Search;\r\n","import { createContext, FC, ReactNode, useReducer } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\ninterface State {\r\n isLoading: boolean;\r\n isLoadingChild:boolean;\r\n}\r\ninterface LoadingContextvalue extends State {\r\n Showloading: (Action?:string) => void;\r\n Hideloading: (Action?:string) => void;\r\n}\r\ninterface LoadingProviderProp {\r\n children: ReactNode;\r\n}\r\ntype InitializeAction = {\r\n type: \"INITIALIZE\";\r\n payload: {\r\n isLoading: boolean;\r\n };\r\n};\r\ntype ShowloadingAction = {\r\n type: \"SHOW\";\r\n payload: {\r\n isLoading: boolean;\r\n isLoadingChild:boolean;\r\n };\r\n};\r\ntype HideloadingAction = {\r\n type: \"HIDE\";\r\n payload: {\r\n isLoading: boolean;\r\n isLoadingChild:boolean;\r\n\r\n };\r\n};\r\ntype Action = InitializeAction | ShowloadingAction | HideloadingAction;\r\n\r\nconst initialState: State = {\r\n isLoading: true,\r\n isLoadingChild:false,\r\n};\r\nconst handlers: Record State> = {\r\n INITIALIZE: (state: State, action: InitializeAction): State => {\r\n const { isLoading } = action.payload;\r\n return {\r\n ...state,\r\n isLoading,\r\n };\r\n }, \r\n SHOW: (state: State, action: ShowloadingAction): State => {\r\n const { isLoading,isLoadingChild } = action.payload;\r\n\r\n return {\r\n ...state,\r\n isLoading,\r\n isLoadingChild\r\n }; \r\n },\r\n HIDE: (state: State, action: HideloadingAction): State => {\r\n const { isLoading,isLoadingChild } = action.payload;\r\n\r\n return {\r\n ...state,\r\n isLoading,\r\n isLoadingChild\r\n };\r\n },\r\n};\r\n\r\nconst reducer = (state: State, action: Action): State =>\r\n handlers[action.type] ? handlers[action.type](state, action) : state;\r\n\r\nconst LoadingContext = createContext({\r\n ...initialState,\r\n Showloading: (Action?) => {},\r\n Hideloading: (Action?) => {},\r\n});\r\n\r\nexport const LoadingProvider: FC = (props) => {\r\n // debugger;\r\n const { children } = props;\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n const Showloading = (Action): void => {\r\n if(Action==\"LOADINGCHILD\"){\r\n dispatch({\r\n type: \"SHOW\",\r\n payload: {\r\n isLoading: false,\r\n isLoadingChild:true\r\n },\r\n });\r\n }else{\r\n dispatch({\r\n type: \"SHOW\",\r\n payload: {\r\n isLoading: true,\r\n isLoadingChild:false\r\n },\r\n });\r\n }\r\n \r\n };\r\n\r\n const Hideloading = (Action): void => {\r\n if(Action==\"LOADINGCHILD\"){\r\n dispatch({\r\n type: \"HIDE\",\r\n payload: {\r\n isLoading: true,\r\n isLoadingChild:false,\r\n },\r\n });\r\n }else{\r\n dispatch({\r\n type: \"HIDE\",\r\n payload: {\r\n isLoading: false,\r\n isLoadingChild:true,\r\n },\r\n });\r\n }\r\n \r\n };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nLoadingProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\nexport default LoadingContext;\r\n","import { combineReducers } from '@reduxjs/toolkit';\r\nimport { reducer as calendarReducer } from '../slices/calendar';\r\nimport { reducer as chatReducer } from '../slices/chat';\r\nimport { reducer as kanbanReducer } from '../slices/kanban';\r\nimport { reducer as mailReducer } from '../slices/mail';\r\n\r\nconst rootReducer = combineReducers({\r\n calendar: calendarReducer,\r\n chat: chatReducer,\r\n kanban: kanbanReducer,\r\n mail: mailReducer\r\n});\r\n\r\nexport default rootReducer;\r\n","import { useDispatch as useReduxDispatch, useSelector as useReduxSelector } from 'react-redux';\r\nimport type { TypedUseSelectorHook } from 'react-redux';\r\nimport type { ThunkAction } from 'redux-thunk';\r\nimport { configureStore } from '@reduxjs/toolkit';\r\nimport type { Action } from '@reduxjs/toolkit';\r\nimport rootReducer from './rootReducer';\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n devTools: process.env.REACT_APP_ENABLE_REDUX_DEV_TOOLS === 'true'\r\n});\r\n\r\nexport type RootState = ReturnType;\r\n\r\nexport type AppDispatch = typeof store.dispatch;\r\n\r\nexport type AppThunk = ThunkAction>;\r\n\r\nexport const useSelector: TypedUseSelectorHook = useReduxSelector;\r\n\r\nexport const useDispatch = () => useReduxDispatch();\r\n\r\nexport default store;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst PencilAlt = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'PencilAlt'\r\n);\r\n\r\nexport default PencilAlt;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Duplicate = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'Duplicate'\r\n);\r\n\r\nexport default Duplicate;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Trash = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Trash'\r\n);\r\n\r\nexport default Trash;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst X = createSvgIcon(\r\n \r\n \r\n ,\r\n 'X'\r\n);\r\n\r\nexport default X;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Archive = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'Archive'\r\n);\r\n\r\nexport default Archive;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst DocumentText = createSvgIcon(\r\n \r\n \r\n ,\r\n 'DocumentText'\r\n);\r\n\r\nexport default DocumentText;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Moon = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Moon'\r\n);\r\n\r\nexport default Moon;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Plus = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Plus'\r\n);\r\n\r\nexport default Plus;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Sun = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Sun'\r\n);\r\n\r\nexport default Sun;\r\n","import type { Shadows } from '@material-ui/core/styles/shadows';\r\n\r\nexport const lightShadows: Shadows = [\r\n 'none',\r\n '0px 1px 2px rgba(0, 0, 0, 0.12), 0px 0px 0px 1px rgba(0, 0, 0, 0.05)',\r\n '0px 2px 4px rgba(0, 0, 0, 0.15), 0px 0px 0px 1px rgba(0, 0, 0, 0.05)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 8px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 5px 8px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 12px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 12px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 16px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 16px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 8px 18px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 9px 18px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 10px 20px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 11px 20px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 12px 22px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 13px 22px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 14px 24px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 16px 28px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 18px 30px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 20px 32px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 22px 34px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 24px 36px -8px rgba(0,0,0,0.25)'\r\n];\r\n\r\nexport const darkShadows: Shadows = [\r\n 'none',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 2px 2px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 8px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 5px 8px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 12px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 12px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 16px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 16px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 8px 18px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 9px 18px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 10px 20px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 11px 20px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 12px 22px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 13px 22px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 14px 24px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 16px 28px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 18px 30px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 20px 32px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 22px 34px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 24px 36px -8px rgba(0,0,0,0.50)'\r\n];\r\n\r\nexport const lightShadows2: Shadows = [\r\n 'none',\r\n '0px 2px 1px -1px rgba(145, 158, 171, 0.2),0px 1px 1px 0px rgba(145, 158, 171, 0.14),0px 1px 3px 0px rgba(145, 158, 171, 0.12)',\r\n '0px 3px 1px -2px rgba(145, 158, 171, 0.2),0px 2px 2px 0px rgba(145, 158, 171, 0.14),0px 1px 5px 0px rgba(145, 158, 171, 0.12)',\r\n '0px 3px 3px -2px rgba(145, 158, 171, 0.2),0px 3px 4px 0px rgba(145, 158, 171, 0.14),0px 1px 8px 0px rgba(145, 158, 171, 0.12)',\r\n '0px 2px 4px -1px rgba(145, 158, 171, 0.2),0px 4px 5px 0px rgba(145, 158, 171, 0.14),0px 1px 10px 0px rgba(145, 158, 171, 0.12)',\r\n '0px 3px 5px -1px rgba(145, 158, 171, 0.2),0px 5px 8px 0px rgba(145, 158, 171, 0.14),0px 1px 14px 0px rgba(145, 158, 171, 0.12)',\r\n '0px 3px 5px -1px rgba(145, 158, 171, 0.2),0px 6px 10px 0px rgba(145, 158, 171, 0.14),0px 1px 18px 0px rgba(145, 158, 171, 0.12)',\r\n '0px 4px 5px -2px rgba(145, 158, 171, 0.2),0px 7px 10px 1px rgba(145, 158, 171, 0.14),0px 2px 16px 1px rgba(145, 158, 171, 0.12)',\r\n '0px 5px 5px -3px rgba(145, 158, 171, 0.2),0px 8px 10px 1px rgba(145, 158, 171, 0.14),0px 3px 14px 2px rgba(145, 158, 171, 0.12)',\r\n '0px 5px 6px -3px rgba(145, 158, 171, 0.2),0px 9px 12px 1px rgba(145, 158, 171, 0.14),0px 3px 16px 2px rgba(145, 158, 171, 0.12)',\r\n '0px 6px 6px -3px rgba(145, 158, 171, 0.2),0px 10px 14px 1px rgba(145, 158, 171, 0.14),0px 4px 18px 3px rgba(145, 158, 171, 0.12)',\r\n '0px 6px 7px -4px rgba(145, 158, 171, 0.2),0px 11px 15px 1px rgba(145, 158, 171, 0.14),0px 4px 20px 3px rgba(145, 158, 171, 0.12)',\r\n '0px 7px 8px -4px rgba(145, 158, 171, 0.2),0px 12px 17px 2px rgba(145, 158, 171, 0.14),0px 5px 22px 4px rgba(145, 158, 171, 0.12)',\r\n '0px 7px 8px -4px rgba(145, 158, 171, 0.2),0px 13px 19px 2px rgba(145, 158, 171, 0.14),0px 5px 24px 4px rgba(145, 158, 171, 0.12)',\r\n '0px 7px 9px -4px rgba(145, 158, 171, 0.2),0px 14px 21px 2px rgba(145, 158, 171, 0.14),0px 5px 26px 4px rgba(145, 158, 171, 0.12)',\r\n '0px 8px 9px -5px rgba(145, 158, 171, 0.2),0px 15px 22px 2px rgba(145, 158, 171, 0.14),0px 6px 28px 5px rgba(145, 158, 171, 0.12)',\r\n '0px 8px 10px -5px rgba(145, 158, 171, 0.2),0px 16px 24px 2px rgba(145, 158, 171, 0.14),0px 6px 30px 5px rgba(145, 158, 171, 0.12)',\r\n '0px 8px 11px -5px rgba(145, 158, 171, 0.2),0px 17px 26px 2px rgba(145, 158, 171, 0.14),0px 6px 32px 5px rgba(145, 158, 171, 0.12)',\r\n '0px 9px 11px -5px rgba(145, 158, 171, 0.2),0px 18px 28px 2px rgba(145, 158, 171, 0.14),0px 7px 34px 6px rgba(145, 158, 171, 0.12)',\r\n '0px 9px 12px -6px rgba(145, 158, 171, 0.2),0px 19px 29px 2px rgba(145, 158, 171, 0.14),0px 7px 36px 6px rgba(145, 158, 171, 0.12)',\r\n '0px 10px 13px -6px rgba(145, 158, 171, 0.2),0px 20px 31px 3px rgba(145, 158, 171, 0.14),0px 8px 38px 7px rgba(145, 158, 171, 0.12)',\r\n '0px 10px 13px -6px rgba(145, 158, 171, 0.2),0px 21px 33px 3px rgba(145, 158, 171, 0.14),0px 8px 40px 7px rgba(145, 158, 171, 0.12)',\r\n '0px 10px 14px -6px rgba(145, 158, 171, 0.2),0px 22px 35px 3px rgba(145, 158, 171, 0.14),0px 8px 42px 7px rgba(145, 158, 171, 0.12)',\r\n '0px 11px 14px -7px rgba(145, 158, 171, 0.2),0px 23px 36px 3px rgba(145, 158, 171, 0.14),0px 9px 44px 8px rgba(145, 158, 171, 0.12)',\r\n '0px 11px 15px -7px rgba(145, 158, 171, 0.2),0px 24px 38px 3px rgba(145, 158, 171, 0.14),0px 9px 46px 8px rgba(145, 158, 171, 0.12)'\r\n];\r\n\r\nexport const darkShadows2: Shadows = [\r\n 'none',\r\n '0px 2px 1px -1px rgba(0, 0, 0, 0.2),0px 1px 1px 0px rgba(0, 0, 0, 0.14),0px 1px 3px 0px rgba(0, 0, 0, 0.12)',\r\n '0px 3px 1px -2px rgba(0, 0, 0, 0.2),0px 2px 2px 0px rgba(0, 0, 0, 0.14),0px 1px 5px 0px rgba(0, 0, 0, 0.12)',\r\n '0px 3px 3px -2px rgba(0, 0, 0, 0.2),0px 3px 4px 0px rgba(0, 0, 0, 0.14),0px 1px 8px 0px rgba(0, 0, 0, 0.12)',\r\n '0px 2px 4px -1px rgba(0, 0, 0, 0.2),0px 4px 5px 0px rgba(0, 0, 0, 0.14),0px 1px 10px 0px rgba(0, 0, 0, 0.12)',\r\n '0px 3px 5px -1px rgba(0, 0, 0, 0.2),0px 5px 8px 0px rgba(0, 0, 0, 0.14),0px 1px 14px 0px rgba(0, 0, 0, 0.12)',\r\n '0px 3px 5px -1px rgba(0, 0, 0, 0.2),0px 6px 10px 0px rgba(0, 0, 0, 0.14),0px 1px 18px 0px rgba(0, 0, 0, 0.12)',\r\n '0px 4px 5px -2px rgba(0, 0, 0, 0.2),0px 7px 10px 1px rgba(0, 0, 0, 0.14),0px 2px 16px 1px rgba(0, 0, 0, 0.12)',\r\n '0px 5px 5px -3px rgba(0, 0, 0, 0.2),0px 8px 10px 1px rgba(0, 0, 0, 0.14),0px 3px 14px 2px rgba(0, 0, 0, 0.12)',\r\n '0px 5px 6px -3px rgba(0, 0, 0, 0.2),0px 9px 12px 1px rgba(0, 0, 0, 0.14),0px 3px 16px 2px rgba(0, 0, 0, 0.12)',\r\n '0px 6px 6px -3px rgba(0, 0, 0, 0.2),0px 10px 14px 1px rgba(0, 0, 0, 0.14),0px 4px 18px 3px rgba(0, 0, 0, 0.12)',\r\n '0px 6px 7px -4px rgba(0, 0, 0, 0.2),0px 11px 15px 1px rgba(0, 0, 0, 0.14),0px 4px 20px 3px rgba(0, 0, 0, 0.12)',\r\n '0px 7px 8px -4px rgba(0, 0, 0, 0.2),0px 12px 17px 2px rgba(0, 0, 0, 0.14),0px 5px 22px 4px rgba(0, 0, 0, 0.12)',\r\n '0px 7px 8px -4px rgba(0, 0, 0, 0.2),0px 13px 19px 2px rgba(0, 0, 0, 0.14),0px 5px 24px 4px rgba(0, 0, 0, 0.12)',\r\n '0px 7px 9px -4px rgba(0, 0, 0, 0.2),0px 14px 21px 2px rgba(0, 0, 0, 0.14),0px 5px 26px 4px rgba(0, 0, 0, 0.12)',\r\n '0px 8px 9px -5px rgba(0, 0, 0, 0.2),0px 15px 22px 2px rgba(0, 0, 0, 0.14),0px 6px 28px 5px rgba(0, 0, 0, 0.12)',\r\n '0px 8px 10px -5px rgba(0, 0, 0, 0.2),0px 16px 24px 2px rgba(0, 0, 0, 0.14),0px 6px 30px 5px rgba(0, 0, 0, 0.12)',\r\n '0px 8px 11px -5px rgba(0, 0, 0, 0.2),0px 17px 26px 2px rgba(0, 0, 0, 0.14),0px 6px 32px 5px rgba(0, 0, 0, 0.12)',\r\n '0px 9px 11px -5px rgba(0, 0, 0, 0.2),0px 18px 28px 2px rgba(0, 0, 0, 0.14),0px 7px 34px 6px rgba(0, 0, 0, 0.12)',\r\n '0px 9px 12px -6px rgba(0, 0, 0, 0.2),0px 19px 29px 2px rgba(0, 0, 0, 0.14),0px 7px 36px 6px rgba(0, 0, 0, 0.12)',\r\n '0px 10px 13px -6px rgba(0, 0, 0, 0.2),0px 20px 31px 3px rgba(0, 0, 0, 0.14),0px 8px 38px 7px rgba(0, 0, 0, 0.12)',\r\n '0px 10px 13px -6px rgba(0, 0, 0, 0.2),0px 21px 33px 3px rgba(0, 0, 0, 0.14),0px 8px 40px 7px rgba(0, 0, 0, 0.12)',\r\n '0px 10px 14px -6px rgba(0, 0, 0, 0.2),0px 22px 35px 3px rgba(0, 0, 0, 0.14),0px 8px 42px 7px rgba(0, 0, 0, 0.12)',\r\n '0px 11px 14px -7px rgba(0, 0, 0, 0.2),0px 23px 36px 3px rgba(0, 0, 0, 0.14),0px 9px 44px 8px rgba(0, 0, 0, 0.12)',\r\n '0px 11px 15px -7px rgba(0, 0, 0, 0.2),0px 24px 38px 3px rgba(0, 0, 0, 0.14),0px 9px 46px 8px rgba(0, 0, 0, 0.12)'\r\n];\r\n","import merge from 'lodash/merge';\r\nimport { createTheme, responsiveFontSizes } from '@material-ui/core/styles';\r\nimport type { Direction, Theme, ThemeOptions } from '@material-ui/core';\r\nimport { THEMES } from '../constants';\r\nimport { lightShadows, darkShadows } from './shadows';\r\n\r\ninterface ThemeConfig {\r\n direction?: Direction;\r\n responsiveFontSizes?: boolean;\r\n roundedCorners?: boolean;\r\n theme?: string;\r\n}\r\n\r\nconst baseOptions: ThemeOptions = {\r\n direction: 'ltr',\r\n components: {\r\n MuiAvatar: {\r\n styleOverrides: {\r\n fallback: {\r\n height: '75%',\r\n width: '75%'\r\n }\r\n }\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n textTransform: 'none'\r\n }\r\n }\r\n },\r\n MuiCssBaseline: {\r\n styleOverrides: {\r\n '*': {\r\n boxSizing: 'border-box'\r\n },\r\n html: {\r\n MozOsxFontSmoothing: 'grayscale',\r\n WebkitFontSmoothing: 'antialiased',\r\n height: '100%',\r\n width: '100%'\r\n },\r\n body: {\r\n height: '100%'\r\n },\r\n '#root': {\r\n height: '100%'\r\n },\r\n '#nprogress .bar': {\r\n zIndex: '2000 !important'\r\n }\r\n }\r\n },\r\n MuiCardHeader: {\r\n defaultProps: {\r\n titleTypographyProps: {\r\n variant: 'h6'\r\n }\r\n }\r\n },\r\n MuiLinearProgress: {\r\n styleOverrides: {\r\n root: {\r\n borderRadius: 3,\r\n overflow: 'hidden'\r\n }\r\n }\r\n },\r\n MuiListItemIcon: {\r\n styleOverrides: {\r\n root: {\r\n minWidth: 'auto',\r\n marginRight: '16px'\r\n }\r\n }\r\n },\r\n MuiPaper: {\r\n styleOverrides: {\r\n root: {\r\n backgroundImage: 'none'\r\n }\r\n }\r\n }\r\n },\r\n typography: {\r\n button: {\r\n fontWeight: 600\r\n },\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"',\r\n h1: {\r\n fontWeight: 600,\r\n fontSize: '3.5rem'\r\n },\r\n h2: {\r\n fontWeight: 600,\r\n fontSize: '3rem'\r\n },\r\n h3: {\r\n fontWeight: 600,\r\n fontSize: '2.25rem'\r\n },\r\n h4: {\r\n fontWeight: 600,\r\n fontSize: '2rem'\r\n },\r\n h5: {\r\n fontWeight: 600,\r\n fontSize: '1.5rem'\r\n },\r\n h6: {\r\n fontWeight: 600,\r\n fontSize: '1.125rem'\r\n },\r\n overline: {\r\n fontWeight: 600\r\n }\r\n }\r\n};\r\n\r\nconst themesOptions: Record = {\r\n [THEMES.LIGHT]: {\r\n components: {\r\n MuiInputBase: {\r\n styleOverrides: {\r\n input: {\r\n '&::placeholder': {\r\n opacity: 0.86,\r\n color: '#42526e'\r\n }\r\n }\r\n }\r\n }\r\n },\r\n palette: {\r\n action: {\r\n active: '#6b778c'\r\n },\r\n background: {\r\n default: '#f4f5f7',\r\n pscdefault: '#f4f5f7',\r\n paper: '#ffffff',\r\n tableHeader: '#0065CA'\r\n },\r\n error: {\r\n contrastText: '#ffffff',\r\n main: '#f44336'\r\n },\r\n mode: 'light',\r\n primary: {\r\n contrastText: '#ffffff',\r\n main: '#0065CA'\r\n },\r\n success: {\r\n contrastText: '#ffffff',\r\n main: '#4caf50'\r\n },\r\n text: {\r\n primary: '#172b4d',\r\n pscprimary: '#ffffff',\r\n secondary: '#6b778c',\r\n test: '#b3c4d5' \r\n },\r\n warning: {\r\n contrastText: '#ffffff',\r\n main: '#ff9800'\r\n }\r\n },\r\n shadows: lightShadows\r\n },\r\n [THEMES.DARK]: {\r\n components: {\r\n MuiTableCell: {\r\n styleOverrides: {\r\n root: {\r\n borderBottom: '1px solid rgba(145, 158, 171, 0.24)'\r\n }\r\n }\r\n }\r\n },\r\n palette: {\r\n background: {\r\n default: '#171c24',\r\n pscdefault: '#171c24',\r\n paper: '#222b36',\r\n tableHeader: '#0065CA'\r\n },\r\n divider: 'rgba(145, 158, 171, 0.24)',\r\n error: {\r\n contrastText: '#ffffff',\r\n main: '#f44336'\r\n },\r\n mode: 'dark',\r\n primary: {\r\n contrastText: '#ffffff',\r\n main: '#0065CA'\r\n // '#688eff'\r\n },\r\n success: {\r\n contrastText: '#ffffff',\r\n main: '#4caf50'\r\n },\r\n text: {\r\n primary: '#ffffff',\r\n pscprimary: '#ffffff',\r\n secondary: '#919eab',\r\n test: '#b3c4d5'\r\n },\r\n warning: {\r\n contrastText: '#ffffff',\r\n main: '#ff9800'\r\n }\r\n },\r\n shadows: darkShadows\r\n },\r\n [THEMES.NATURE]: {\r\n components: {\r\n MuiTableCell: {\r\n styleOverrides: {\r\n root: {\r\n borderBottom: '1px solid rgba(145, 158, 171, 0.24)'\r\n }\r\n }\r\n }\r\n },\r\n palette: {\r\n background: {\r\n default: '#1c2531',\r\n pscdefault: '#1c2531',\r\n paper: '#293142',\r\n tableHeader: '#0065CA'\r\n },\r\n divider: 'rgba(145, 158, 171, 0.24)',\r\n error: {\r\n contrastText: '#ffffff',\r\n main: '#f44336'\r\n },\r\n mode: 'dark',\r\n primary: {\r\n contrastText: '#ffffff',\r\n main: '#01ab56'\r\n },\r\n success: {\r\n contrastText: '#ffffff',\r\n main: '#4caf50'\r\n },\r\n text: {\r\n primary: '#ffffff',\r\n pscprimary: '#ffffff',\r\n secondary: '#919eab',\r\n test: '#b3c4d5'\r\n },\r\n warning: {\r\n contrastText: '#ffffff',\r\n main: '#ff9800'\r\n }\r\n },\r\n shadows: darkShadows\r\n }\r\n};\r\n\r\nexport const createCustomTheme = (config: ThemeConfig = {}): Theme => {\r\n let themeOptions = themesOptions[config.theme];\r\n\r\n if (!themeOptions) {\r\n console.warn(new Error(`The theme ${config.theme} is not valid`));\r\n themeOptions = themesOptions[THEMES.LIGHT];\r\n }\r\n\r\n let theme = createTheme(\r\n merge(\r\n {},\r\n baseOptions,\r\n themeOptions,\r\n {\r\n ...(\r\n config.roundedCorners && {\r\n shape: {\r\n borderRadius: 16\r\n }\r\n }\r\n )\r\n },\r\n {\r\n direction: config.direction\r\n }\r\n )\r\n );\r\n\r\n if (config.responsiveFontSizes) {\r\n theme = responsiveFontSizes(theme);\r\n }\r\n\r\n return theme;\r\n};\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Mail = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'Mail'\r\n);\r\n\r\nexport default Mail;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst CurrencyDollar = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'CurrencyDollar'\r\n);\r\n\r\nexport default CurrencyDollar;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst InformationCircle = createSvgIcon(\r\n \r\n \r\n ,\r\n 'InformationCircle'\r\n);\r\n\r\nexport default InformationCircle;\r\n","import { subDays, addDays } from 'date-fns';\r\nimport type { Board, Card, CheckItem, Checklist, Column, Comment } from '../types/kanban';\r\nimport createResourceId from '../utils/createResourceId';\r\nimport deepCopy from '../utils/deepCopy';\r\n\r\n// You'll see here that we start with a deep clone of the board.\r\n// The reason for that is to create a db session wannabe strategy.\r\n// If something fails, we do not affect the original data until everything worked as expected.\r\n\r\nconst now = new Date();\r\n\r\nlet board: Board = {\r\n cards: [\r\n {\r\n id: '5e849c8708bd72683b454747',\r\n attachments: [],\r\n checklists: [\r\n {\r\n id: '5e84a8175c48d3f5b1d01972',\r\n name: 'Update overview page',\r\n checkItems: [\r\n {\r\n id: '5e85af37da584c5e4bd8a06c',\r\n name: 'An item',\r\n state: 'complete'\r\n }\r\n ]\r\n }\r\n ],\r\n comments: [\r\n {\r\n id: '15e849c5a35d4dff4f88ebff6',\r\n cardId: '5e849c8708bd72683b454747',\r\n createdAt: subDays(now, 5).getTime(),\r\n memberId: '5e887ac47eed253091be10cb',\r\n message: 'This is a comment'\r\n }\r\n ],\r\n cover: '/static/mock-images/projects/project_3.png',\r\n description: 'Duis condimentum lacus finibus felis pellentesque, ac auctor nibh fermentum. Duis sed dui ante. Phasellus id eros tincidunt, dictum lorem vitae, pellentesque sem. Aenean eu enim sit amet mauris rhoncus mollis. Sed enim turpis, porta a felis et, luctus faucibus nisi. Phasellus et metus fermentum, ultrices arcu aliquam, facilisis justo. Cras nunc nunc, elementum sed euismod ut, maximus eget nibh. Phasellus condimentum lorem neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce sagittis pharetra eleifend. Suspendisse potenti.',\r\n due: addDays(now, 7).getTime(),\r\n isSubscribed: false,\r\n columnId: '5e849c39325dc5ef58e5a5db',\r\n memberIds: ['5e86809283e28b96d2d38537'],\r\n name: 'Call with sales of HubSpot'\r\n },\r\n {\r\n id: '5e849c90fabe1f1f4b3557f6',\r\n attachments: [],\r\n checklists: [],\r\n comments: [],\r\n cover: null,\r\n description: 'We are looking for vue experience and of course node js strong knowledge',\r\n due: addDays(now, 6).getTime(),\r\n isSubscribed: true,\r\n columnId: '5e849c39325dc5ef58e5a5db',\r\n memberIds: ['5e887b209c28ac3dd97f6db5', '5e887a62195cc5aef7e8ca5d'],\r\n name: 'Interview for the Asis. Sales Manager'\r\n },\r\n {\r\n id: '5e849c977ef6265938bfd90b',\r\n attachments: [],\r\n checklists: [],\r\n comments: [],\r\n cover: null,\r\n description: 'We need to make it aggressive with pricing because it’s in their interest to acquire us',\r\n due: null,\r\n isSubscribed: false,\r\n columnId: '5e849c39325dc5ef58e5a5db',\r\n memberIds: [],\r\n name: 'Change the height of the top bar because it looks too chunky'\r\n },\r\n {\r\n id: '5e849c9e34ee93bc7255c599',\r\n attachments: [],\r\n checklists: [],\r\n comments: [],\r\n cover: null,\r\n description: 'We need to make it aggressive with pricing because it’s in their interest to acquire us',\r\n due: null,\r\n isSubscribed: false,\r\n columnId: '5e849c39325dc5ef58e5a5db',\r\n memberIds: ['5e887ac47eed253091be10cb', '5e86809283e28b96d2d38537'],\r\n name: 'Integrate Stripe API'\r\n },\r\n {\r\n id: '5e849ca7d063dc3830d4b49c',\r\n attachments: [],\r\n checklists: [],\r\n comments: [],\r\n cover: null,\r\n description: 'We need to make it aggressive with pricing because it’s in their interest to acquire us',\r\n due: null,\r\n isSubscribed: true,\r\n columnId: '5e849c2b38d238c33e516755',\r\n memberIds: ['5e887a62195cc5aef7e8ca5d'],\r\n name: 'Update the customer API for payments'\r\n },\r\n {\r\n id: '5e849cb5d0c6e8894451fdfa',\r\n attachments: [],\r\n checklists: [],\r\n comments: [],\r\n cover: null,\r\n description: 'We need to make it aggressive with pricing because it’s in their interest to acquire us',\r\n due: null,\r\n isSubscribed: true,\r\n columnId: '5e849c2b38d238c33e516755',\r\n memberIds: [],\r\n name: 'Redesign the landing page'\r\n }\r\n ],\r\n columns: [\r\n {\r\n id: '5e849c39325dc5ef58e5a5db',\r\n name: 'Todo',\r\n cardIds: [\r\n '5e849c8708bd72683b454747',\r\n '5e849c90fabe1f1f4b3557f6',\r\n '5e849c977ef6265938bfd90b',\r\n '5e849c9e34ee93bc7255c599'\r\n ]\r\n },\r\n {\r\n id: '5e849c2b38d238c33e516755',\r\n name: 'Progress',\r\n cardIds: [\r\n '5e849ca7d063dc3830d4b49c',\r\n '5e849cb5d0c6e8894451fdfa'\r\n ]\r\n },\r\n {\r\n id: '5e849c2b38d238c33e5146755',\r\n name: 'Done',\r\n cardIds: []\r\n }\r\n ],\r\n members: [\r\n {\r\n id: '5e887a62195cc5aef7e8ca5d',\r\n avatar: '/static/mock-images/avatars/avatar-marcus_finn.png',\r\n name: 'Marcus Finn'\r\n },\r\n {\r\n id: '5e887ac47eed253091be10cb',\r\n avatar: '/static/mock-images/avatars/avatar-carson_darrin.png',\r\n name: 'Carson Darrin'\r\n },\r\n {\r\n id: '5e887b209c28ac3dd97f6db5',\r\n avatar: '/static/mock-images/avatars/avatar-fran_perez.png',\r\n name: 'Fran Perez'\r\n },\r\n {\r\n id: '5e887b7602bdbc4dbb234b27',\r\n avatar: '/static/mock-images/avatars/avatar-jie_yan_song.png',\r\n name: 'Jie Yan Song'\r\n },\r\n {\r\n id: '5e86809283e28b96d2d38537',\r\n avatar: '/static/mock-images/avatars/avatar-jane_rotanson.png',\r\n name: 'Jane Rotanson'\r\n }\r\n ]\r\n};\r\n\r\nclass KanbanApi {\r\n getBoard(): Promise {\r\n return Promise.resolve(deepCopy(board));\r\n }\r\n\r\n createColumn({ name }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Create the new column\r\n const column: Column = {\r\n id: createResourceId(),\r\n name,\r\n cardIds: []\r\n };\r\n\r\n clonedBoard.columns.push(column);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(column));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n updateColumn({ columnId, update }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the column to clear\r\n const column = clonedBoard.columns.find((_column) => _column.id === columnId);\r\n\r\n // Update the column\r\n Object.assign(column, update);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(column));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n clearColumn(columnId): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the column to clear\r\n const column = clonedBoard.columns.find((_column) => _column.id === columnId);\r\n\r\n if (!column) {\r\n reject(new Error('Column not found'));\r\n return;\r\n }\r\n\r\n // Remove the cards with columnId reference\r\n clonedBoard.cards = clonedBoard.cards.filter((card) => card.columnId !== columnId);\r\n\r\n // Remove all cardIds from the column\r\n column.cardIds = [];\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(true);\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n deleteColumn(columnId): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the column to remove\r\n const column = clonedBoard.columns.find((_column) => _column.id === columnId);\r\n\r\n if (!column) {\r\n reject(new Error('Column not found'));\r\n return;\r\n }\r\n\r\n // Remove the cards with columnId reference\r\n clonedBoard.cards = clonedBoard.cards.filter((card) => card.columnId !== columnId);\r\n\r\n // Remove the column from the board\r\n clonedBoard.columns = clonedBoard.columns.filter((_column) => _column.id !== columnId);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(true);\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n createCard({ columnId, name }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the column where the new card will be added\r\n const column = clonedBoard.columns.find((_column) => _column.id === columnId);\r\n\r\n if (!column) {\r\n reject(new Error('Column not found'));\r\n return;\r\n }\r\n\r\n // Create the new card\r\n const card: Card = {\r\n id: createResourceId(),\r\n attachments: [],\r\n checklists: [],\r\n comments: [],\r\n cover: null,\r\n description: null,\r\n due: null,\r\n isSubscribed: false,\r\n columnId,\r\n memberIds: [],\r\n name\r\n };\r\n\r\n // Add the new card\r\n clonedBoard.cards.push(card);\r\n\r\n // Add the cardId reference to the column\r\n column.cardIds.push(card.id);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(card));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n updateCard({ cardId, update }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card that will be updated\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Update the card\r\n if (update.name) {\r\n card.name = update.name;\r\n }\r\n\r\n if (update.description) {\r\n card.description = update.description;\r\n }\r\n\r\n // Update the card\r\n Object.assign(card, update);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(card));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n moveCard({ cardId, position, columnId }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card that will be moved\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Find the source column of the card\r\n const sourceList = clonedBoard.columns.find((column) => column.id === card.columnId);\r\n\r\n if (!sourceList) {\r\n reject(new Error('Column not found'));\r\n return;\r\n }\r\n\r\n // Remove the cardId reference from the source list\r\n sourceList.cardIds = sourceList.cardIds.filter((_cardId) => _cardId !== cardId);\r\n\r\n if (columnId) {\r\n // Find the destination column for the card\r\n const destinationList = clonedBoard.columns.find((column) => column.id === columnId);\r\n\r\n if (!destinationList) {\r\n reject(new Error('Column not found'));\r\n return;\r\n }\r\n\r\n // Add the cardId reference to the destination list\r\n destinationList.cardIds.splice(position, 0, card.id);\r\n\r\n // Store the new columnId reference\r\n card.columnId = destinationList.id;\r\n } else {\r\n // If columnId is not provided, it means that we move the card in the same list\r\n sourceList.cardIds.splice(position, 0, card.id);\r\n }\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(true);\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n deleteCard(cardId): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card that will be removed\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Remove the card from board\r\n clonedBoard.cards = clonedBoard.cards.filter((_card) => _card.id !== cardId);\r\n\r\n // Find the column using the columnId reference\r\n const column = clonedBoard.columns.find((_column) => _column.id === card.columnId);\r\n\r\n // If for some reason it does not exist, there's no problem. Maybe something broke before.\r\n if (column) {\r\n column.cardIds = column.cardIds.filter((_cardId) => _cardId !== cardId);\r\n }\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(true);\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n addComment({ cardId, message }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card where the comment will be added\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Create the new comment\r\n // Important: On server get memberId from request identity (user)\r\n const comment = {\r\n id: createResourceId(),\r\n cardId,\r\n createdAt: now.getTime(),\r\n memberId: '5e86809283e28b96d2d38537',\r\n message\r\n };\r\n\r\n // Add the new comment to card\r\n card.comments.push(comment);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(comment));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n addChecklist({ cardId, name }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card where the checklist will be added\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Create the new checklist\r\n const checklist: Checklist = {\r\n id: createResourceId(),\r\n name,\r\n checkItems: []\r\n };\r\n\r\n // Add the new checklist to card\r\n card.checklists.push(checklist);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(checklist));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n updateChecklist({ cardId, checklistId, update }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card that contains the checklist that will be updated\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Find the checklist that will be updated\r\n const checklist = card.checklists.find((_checklist) => _checklist.id === checklistId);\r\n\r\n if (!checklist) {\r\n reject(new Error('Checklist not found'));\r\n return;\r\n }\r\n\r\n // Update the checklist\r\n Object.assign(checklist, update);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(checklist));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n deleteChecklist({ cardId, checklistId }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card that contains the checklist that will be removed\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Remove the checklist from the card\r\n card.checklists = card.checklists.filter((checklists) => checklists.id !== checklistId);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(true);\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n addCheckItem({ cardId, checklistId, name }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card where the checklist will be added\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Find the checklist where the check item will be added\r\n const checklist = card.checklists.find((_checklist) => _checklist.id === checklistId);\r\n\r\n if (!checklist) {\r\n reject(new Error('Checklist not found'));\r\n return;\r\n }\r\n\r\n // Create the new check item\r\n const checkItem: CheckItem = {\r\n id: createResourceId(),\r\n checklistId,\r\n name,\r\n state: 'incomplete'\r\n };\r\n\r\n // Add the check item to the checklist\r\n checklist.checkItems.push(checkItem);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(checkItem));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n updateCheckItem({ cardId, checklistId, checkItemId, update }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card where the checklist will be added\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Find the checklist where the check item will be updated\r\n const checklist = card.checklists.find((_checklist) => _checklist.id === checklistId);\r\n\r\n if (!checklist) {\r\n reject(new Error('Checklist not found'));\r\n return;\r\n }\r\n\r\n // Find the checklist where the check item will be updated\r\n const checkItem = checklist.checkItems.find((_checkItem) => _checkItem.id === checkItemId);\r\n\r\n if (!checkItem) {\r\n reject(new Error('Check item not found'));\r\n return;\r\n }\r\n\r\n // Update the check item\r\n Object.assign(checkItem, update);\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(deepCopy(checkItem));\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n\r\n deleteCheckItem({ cardId, checklistId, checkItemId }): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // Make a deep copy\r\n const clonedBoard = deepCopy(board);\r\n\r\n // Find the card that contains the checklist that contains the check item that will be removed\r\n const card = clonedBoard.cards.find((_card) => _card.id === cardId);\r\n\r\n if (!card) {\r\n reject(new Error('Card not found'));\r\n return;\r\n }\r\n\r\n // Find the checklist where the check item will be updated\r\n const checklist = card.checklists.find((_checklist) => _checklist.id === checklistId);\r\n\r\n if (!checklist) {\r\n reject(new Error('Checklist not found'));\r\n return;\r\n }\r\n\r\n // Remove the check item from the checklist\r\n checklist.checkItems = checklist.checkItems.filter((checkItem) => (\r\n checkItem.id !== checkItemId\r\n ));\r\n\r\n // Save changes\r\n board = clonedBoard;\r\n\r\n resolve(true);\r\n } catch (err) {\r\n console.error('[Kanban Api]: ', err);\r\n reject(new Error('Internal server error'));\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const kanbanApi = new KanbanApi();\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport type { PayloadAction } from '@reduxjs/toolkit';\r\nimport { kanbanApi } from '../__fakeApi__/kanbanApi';\r\nimport type { AppThunk } from '../store';\r\nimport type { Board, Card, CheckItem, Checklist, Column, Comment, Member } from '../types/kanban';\r\nimport objFromArray from '../utils/objFromArray';\r\n\r\ninterface KanbanState {\r\n isLoaded: boolean;\r\n columns: {\r\n byId: Record;\r\n allIds: string[];\r\n };\r\n cards: {\r\n byId: Record;\r\n allIds: string[];\r\n };\r\n members: {\r\n byId: Record;\r\n allIds: string[];\r\n };\r\n}\r\n\r\nconst initialState: KanbanState = {\r\n isLoaded: false,\r\n columns: {\r\n byId: {},\r\n allIds: []\r\n },\r\n cards: {\r\n byId: {},\r\n allIds: []\r\n },\r\n members: {\r\n byId: {},\r\n allIds: []\r\n }\r\n};\r\n\r\nconst slice = createSlice({\r\n name: 'kanban',\r\n initialState,\r\n reducers: {\r\n getBoard(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const board = action.payload;\r\n\r\n state.columns.byId = objFromArray(board.columns);\r\n state.columns.allIds = Object.keys(state.columns.byId);\r\n state.cards.byId = objFromArray(board.cards);\r\n state.cards.allIds = Object.keys(state.cards.byId);\r\n state.members.byId = objFromArray(board.members);\r\n state.members.allIds = Object.keys(state.members.byId);\r\n state.isLoaded = true;\r\n },\r\n createColumn(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const column = action.payload;\r\n\r\n state.columns.byId[column.id] = column;\r\n state.columns.allIds.push(column.id);\r\n },\r\n updateColumn(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const column = action.payload;\r\n\r\n state.columns.byId[column.id] = column;\r\n },\r\n clearColumn(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const columnId = action.payload;\r\n\r\n // cardIds to be removed\r\n const { cardIds } = state.columns.byId[columnId];\r\n\r\n // Delete the cardIds references from the column\r\n state.columns.byId[columnId].cardIds = [];\r\n\r\n // Delete the cards from state\r\n cardIds.forEach((cardId) => {\r\n delete state.cards.byId[cardId];\r\n });\r\n\r\n state.cards.allIds = state.cards.allIds.filter((cardId) => cardIds.includes(cardId));\r\n },\r\n deleteColumn(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const columnId = action.payload;\r\n\r\n delete state.columns.byId[columnId];\r\n state.columns.allIds = state.columns.allIds.filter((_listId) => _listId !== columnId);\r\n },\r\n createCard(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const card = action.payload;\r\n\r\n state.cards.byId[card.id] = card;\r\n state.cards.allIds.push(card.id);\r\n\r\n // Add the cardId reference to the column\r\n state.columns.byId[card.columnId].cardIds.push(card.id);\r\n },\r\n updateCard(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const card = action.payload;\r\n\r\n Object.assign(state.cards.byId[card.id], card);\r\n },\r\n moveCard(\r\n state: KanbanState,\r\n action: PayloadAction<{ cardId: string; position: number; columnId?: string }>\r\n ): void {\r\n const { cardId, position, columnId } = action.payload;\r\n const sourceColumnId = state.cards.byId[cardId].columnId;\r\n\r\n // Remove card from source column\r\n state.columns.byId[sourceColumnId].cardIds = (\r\n state.columns.byId[sourceColumnId].cardIds.filter((_cardId) => _cardId !== cardId)\r\n );\r\n\r\n // If columnId exists, it means that we have to add the card to the new column\r\n if (columnId) {\r\n // Change card's columnId reference\r\n state.cards.byId[cardId].columnId = columnId;\r\n // Push the cardId to the specified position\r\n state.columns.byId[columnId].cardIds.splice(position, 0, cardId);\r\n } else {\r\n // Push the cardId to the specified position\r\n state.columns.byId[sourceColumnId].cardIds.splice(position, 0, cardId);\r\n }\r\n },\r\n deleteCard(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const cardId = action.payload;\r\n const { columnId } = state.cards.byId[cardId];\r\n\r\n delete state.cards.byId[cardId];\r\n state.cards.allIds = state.cards.allIds.filter((_cardId) => _cardId !== cardId);\r\n state.columns.byId[columnId].cardIds = (\r\n state.columns.byId[columnId].cardIds.filter((_cardId) => _cardId !== cardId)\r\n );\r\n },\r\n addComment(\r\n state: KanbanState,\r\n action: PayloadAction\r\n ): void {\r\n const comment = action.payload;\r\n const card = state.cards.byId[comment.cardId];\r\n\r\n card.comments.push(comment);\r\n },\r\n addChecklist(\r\n state: KanbanState,\r\n action: PayloadAction<{ cardId: string; checklist: Checklist }>\r\n ): void {\r\n const { cardId, checklist } = action.payload;\r\n const card = state.cards.byId[cardId];\r\n\r\n card.checklists.push(checklist);\r\n },\r\n updateChecklist(\r\n state: KanbanState,\r\n action: PayloadAction<{ cardId: string; checklist: Checklist }>\r\n ): void {\r\n const { cardId, checklist } = action.payload;\r\n const card = state.cards.byId[cardId];\r\n\r\n card.checklists = card.checklists.map((_checklist) => {\r\n if (_checklist.id === checklist.id) {\r\n return checklist;\r\n }\r\n\r\n return _checklist;\r\n });\r\n },\r\n deleteChecklist(\r\n state: KanbanState,\r\n action: PayloadAction<{ cardId: string; checklistId: string }>\r\n ): void {\r\n const { cardId, checklistId } = action.payload;\r\n const card = state.cards.byId[cardId];\r\n\r\n card.checklists = card.checklists.filter((checklist) => checklist.id !== checklistId);\r\n },\r\n addCheckItem(\r\n state: KanbanState,\r\n action: PayloadAction<{ cardId: string; checklistId: string; checkItem: CheckItem }>\r\n ): void {\r\n const { cardId, checklistId, checkItem } = action.payload;\r\n const card = state.cards.byId[cardId];\r\n const checklist = card.checklists.find((_checklist) => _checklist.id === checklistId);\r\n\r\n checklist.checkItems.push(checkItem);\r\n },\r\n updateCheckItem(\r\n state: KanbanState,\r\n action: PayloadAction<{ cardId: string; checklistId: string; checkItem: CheckItem }>\r\n ): void {\r\n const {\r\n cardId,\r\n checklistId,\r\n checkItem\r\n } = action.payload;\r\n const card = state.cards.byId[cardId];\r\n const checklist = card.checklists.find((_checklist) => _checklist.id === checklistId);\r\n\r\n checklist.checkItems = checklist.checkItems.map((_checkItem) => {\r\n if (_checkItem.id === checkItem.id) {\r\n return checkItem;\r\n }\r\n\r\n return _checkItem;\r\n });\r\n },\r\n deleteCheckItem(\r\n state: KanbanState,\r\n action: PayloadAction<{ cardId: string; checklistId: string; checkItemId: string }>\r\n ): void {\r\n const { cardId, checklistId, checkItemId } = action.payload;\r\n const card = state.cards.byId[cardId];\r\n const checklist = card.checklists.find((_checklist) => _checklist.id === checklistId);\r\n\r\n checklist.checkItems = (\r\n checklist.checkItems.filter((checkItem) => checkItem.id !== checkItemId)\r\n );\r\n }\r\n }\r\n});\r\n\r\nexport const { reducer } = slice;\r\n\r\nexport const getBoard = (): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.getBoard();\r\n\r\n dispatch(slice.actions.getBoard(data));\r\n};\r\n\r\nexport const createColumn = (name: string): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.createColumn({ name });\r\n\r\n dispatch(slice.actions.createColumn(data));\r\n};\r\n\r\nexport const updateColumn = (\r\n columnId: string,\r\n update: any\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.updateColumn({ columnId, update });\r\n\r\n dispatch(slice.actions.updateColumn(data));\r\n};\r\n\r\nexport const clearColumn = (columnId: string): AppThunk => async (dispatch): Promise => {\r\n await kanbanApi.clearColumn(columnId);\r\n\r\n dispatch(slice.actions.clearColumn(columnId));\r\n};\r\n\r\nexport const deleteColumn = (columnId: string): AppThunk => async (dispatch): Promise => {\r\n await kanbanApi.deleteColumn(columnId);\r\n\r\n dispatch(slice.actions.deleteColumn(columnId));\r\n};\r\n\r\nexport const createCard = (\r\n columnId: string,\r\n name: string\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.createCard({ columnId, name });\r\n\r\n dispatch(slice.actions.createCard(data));\r\n};\r\n\r\nexport const updateCard = (\r\n cardId: string,\r\n update: any\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.updateCard({ cardId, update });\r\n\r\n dispatch(slice.actions.updateCard(data));\r\n};\r\n\r\nexport const moveCard = (\r\n cardId: string,\r\n position: number,\r\n columnId?: string\r\n): AppThunk => async (dispatch): Promise => {\r\n await kanbanApi.moveCard({ cardId, position, columnId });\r\n\r\n dispatch(slice.actions.moveCard({\r\n cardId,\r\n position,\r\n columnId\r\n }));\r\n};\r\n\r\nexport const deleteCard = (cardId: string): AppThunk => async (dispatch): Promise => {\r\n await kanbanApi.deleteCard(cardId);\r\n\r\n dispatch(slice.actions.deleteCard(cardId));\r\n};\r\n\r\nexport const addComment = (\r\n cardId: string,\r\n message: string\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.addComment({ cardId, message });\r\n\r\n dispatch(slice.actions.addComment(data));\r\n};\r\n\r\nexport const addChecklist = (\r\n cardId: string,\r\n name: string\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.addChecklist({ cardId, name });\r\n\r\n dispatch(slice.actions.addChecklist({\r\n cardId,\r\n checklist: data\r\n }));\r\n};\r\n\r\nexport const updateChecklist = (\r\n cardId: string,\r\n checklistId: string,\r\n update: any\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.updateChecklist({ cardId, checklistId, update });\r\n\r\n dispatch(slice.actions.updateChecklist({\r\n cardId,\r\n checklist: data\r\n }));\r\n};\r\n\r\nexport const deleteChecklist = (\r\n cardId: string,\r\n checklistId: string\r\n): AppThunk => async (dispatch): Promise => {\r\n await kanbanApi.deleteChecklist({ cardId, checklistId });\r\n\r\n dispatch(slice.actions.deleteChecklist({\r\n cardId,\r\n checklistId\r\n }));\r\n};\r\n\r\nexport const addCheckItem = (\r\n cardId: string,\r\n checklistId: string,\r\n name: string\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.addCheckItem({ cardId, checklistId, name });\r\n\r\n dispatch(slice.actions.addCheckItem({\r\n cardId,\r\n checklistId,\r\n checkItem: data\r\n }));\r\n};\r\n\r\nexport const updateCheckItem = (\r\n cardId: string,\r\n checklistId: string,\r\n checkItemId: string,\r\n update: any\r\n): AppThunk => async (dispatch): Promise => {\r\n const data = await kanbanApi.updateCheckItem({ cardId, checklistId, checkItemId, update });\r\n\r\n dispatch(slice.actions.updateCheckItem({\r\n cardId,\r\n checklistId,\r\n checkItem: data\r\n }));\r\n};\r\n\r\nexport const deleteCheckItem = (\r\n cardId: string,\r\n checklistId: string,\r\n checkItemId: string\r\n): AppThunk => async (dispatch): Promise => {\r\n await kanbanApi.deleteCheckItem({ cardId, checklistId, checkItemId });\r\n\r\n dispatch(slice.actions.deleteCheckItem({\r\n cardId,\r\n checklistId,\r\n checkItemId\r\n }));\r\n};\r\n\r\nexport default slice;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Check = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Check'\r\n);\r\n\r\nexport default Check;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Lock = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Lock'\r\n);\r\n\r\nexport default Lock;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Users = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Users'\r\n);\r\n\r\nexport default Users;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst Template = createSvgIcon(\r\n \r\n \r\n ,\r\n 'Template'\r\n);\r\n\r\nexport default Template;\r\n","import type { FC } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { AppBar, Box, Divider, Link, Toolbar } from '@material-ui/core';\r\nimport Logo from '../Logo';\r\n\r\nconst BlogNavbar: FC = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Home\r\n \r\n \r\n Blog\r\n \r\n \r\n Contact Us\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default BlogNavbar;\r\n","import createSvgIcon from '@material-ui/core/utils/createSvgIcon';\r\n\r\nconst ExternalLink = createSvgIcon(\r\n \r\n \r\n \r\n ,\r\n 'ExternalLink'\r\n);\r\n\r\nexport default ExternalLink;\r\n","import {\r\n Box,\r\n Container,\r\n Divider,\r\n Grid,\r\n Link,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { alpha } from \"@material-ui/core/styles\";\r\nimport { toUpper } from \"lodash\";\r\nimport Logo from \"./Logo\";\r\nimport CustomIcon from \"../icons/CustomIcon\";\r\nimport { Link as RouterLink } from 'react-router-dom';\r\n\r\nconst sections = [\r\n {\r\n title: \"THÔNG TIN TRƯỜNG\",\r\n links: [\r\n {\r\n title: \"Browse Components\",\r\n href: \"/browse\",\r\n },\r\n {\r\n title: \"Documentation\",\r\n href: \"/docs\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Placeholders\",\r\n links: [\r\n {\r\n title: \"Terms & Conditions\",\r\n href: \"#\",\r\n },\r\n {\r\n title: \"License\",\r\n href: \"#\",\r\n },\r\n {\r\n title: \"Contact\",\r\n href: \"#\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Social\",\r\n links: [\r\n {\r\n title: \"Instagram\",\r\n href: \"#\",\r\n },\r\n {\r\n title: \"LinkedIn\",\r\n href: \"#\",\r\n },\r\n ],\r\n },\r\n];\r\ninterface ArrayFooter {\r\n key: string;\r\n title: string;\r\n href: string;\r\n location: number;\r\n icon: JSX.Element;\r\n links: ArrayFooter[];\r\n}\r\nconst Footer = (props) => {\r\n let linkss: ArrayFooter[] = [];\r\n let linkss2: ArrayFooter[] = [];\r\n let sectionss: ArrayFooter[] = [];\r\n let NameSchool = \"\";\r\n console.log(props);\r\n if (props.footerdata.length > 0) {\r\n props.footerdata.map((el) => {\r\n if (el.SettingName == \"TenTruong\") {\r\n // let Obj:ArrayFooter = {\r\n // key:el.SettingName,\r\n // title:`${el.SettingStringData}`,\r\n // href:null,\r\n // location:0,\r\n // icon:,\r\n // links:null\r\n // }\r\n NameSchool = el.SettingStringData;\r\n }\r\n if (el.SettingName == \"DiaChiTruong\") {\r\n let Obj: ArrayFooter = {\r\n key: el.SettingName,\r\n title: `Địa chỉ: ${el.SettingStringData}`,\r\n href: null,\r\n location: 1,\r\n icon: ,\r\n links: null,\r\n };\r\n linkss.push(Obj);\r\n }\r\n if (el.SettingName == \"DienThoaiTruong\") {\r\n let Obj: ArrayFooter = {\r\n key: el.SettingName,\r\n title: `Điện thoại: ${el.SettingStringData}`,\r\n href: null,\r\n location: 2,\r\n icon: ,\r\n links: null,\r\n };\r\n linkss2.push(Obj);\r\n }\r\n if (el.SettingName == \"SoFax\") {\r\n let Obj: ArrayFooter = {\r\n key: el.SettingName,\r\n title: `Số Fax: ${el.SettingStringData}`,\r\n href: null,\r\n location: 3,\r\n icon: ,\r\n links: null,\r\n };\r\n linkss2.push(Obj);\r\n }\r\n if (el.SettingName == \"EmailTruong\") {\r\n let Obj: ArrayFooter = {\r\n key: el.SettingName,\r\n title: `Email: ${el.SettingStringData}`,\r\n href: null,\r\n location: 4,\r\n icon: ,\r\n links: null,\r\n };\r\n linkss2.push(Obj);\r\n }\r\n if (el.SettingName == \"Website\") {\r\n let Obj: ArrayFooter = {\r\n key: el.SettingName,\r\n title: `Website: ${el.SettingStringData}`,\r\n href: `https://${el.SettingStringData}`,\r\n location: 5,\r\n icon: ,\r\n links: null,\r\n };\r\n linkss2.push(Obj);\r\n }\r\n });\r\n linkss.sort(function (a, b) {\r\n return a.location - b.location;\r\n });\r\n linkss2.sort(function (a, b) {\r\n return a.location - b.location;\r\n });\r\n let Objectnew: ArrayFooter = {\r\n key: \"THONGTINTRUONG\",\r\n title: \"THÔNG TIN TRƯỜNG\",\r\n href: null,\r\n location: 1,\r\n icon: null,\r\n links: linkss,\r\n };\r\n let Objectnew1: ArrayFooter = {\r\n key: \"THONGTINLIENHE\",\r\n title: \"THÔNG TIN LIÊN HỆ\",\r\n href: null,\r\n location: 2,\r\n icon: null,\r\n links: linkss2,\r\n };\r\n sectionss.push(Objectnew);\r\n sectionss.push(Objectnew1);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {toUpper(NameSchool)}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n img\": {\r\n width: \"90%\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n © 2022 PSC.\r\n \r\n \r\n {sectionss.map((section, index) => (\r\n \r\n \r\n {section.title}\r\n \r\n \r\n {section.links.map((link) => (\r\n \r\n \r\n {link.icon}\r\n {/* */}\r\n \r\n \r\n {link.title}\r\n \r\n }\r\n />\r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n \r\n alpha(theme.palette.primary.contrastText, 0.12),\r\n mb:1\r\n }}\r\n />\r\n \r\n All Rights Reserved Developed by{\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import type { FC } from 'react';\r\nimport { Outlet } from 'react-router-dom';\r\nimport { experimentalStyled } from '@material-ui/core/styles';\r\nimport BlogNavbar from './BlogNavbar';\r\nimport Footer from '../Footer';\r\n\r\nconst BlogLayoutRoot = experimentalStyled('div')(\r\n ({ theme }) => (\r\n {\r\n backgroundColor: theme.palette.background.default,\r\n height: '100%',\r\n paddingTop: 64\r\n }\r\n )\r\n);\r\n\r\nconst BlogLayout: FC = () => (\r\n \r\n \r\n \r\n