{"version":3,"sources":["shared/components/grid-view/defaultOptions.js","redux/quanlynoidung/hosovuviec/hosovuviecConstants.js","assets/images/img-user-default.png","assets/images/logo-header.png","redux/tktaikhoan/tktaikhoanConstant.js","assets/images/NoImageBinhLuan.png","redux/oauth/oauthConstant.js","redux/user/userConstant.js","redux/dmchuyenmuctin/dmchuyenmuctinConstant.js","redux/dmdoituongchiase/dmdoituongchiaseConstant.js","redux/dmdonvilienket/dmdonvilienketConstant.js","redux/dmchudecauhoi/dmchudecauhoiConstant.js","redux/dmlinhvuckinhdoanh/dmlinhvuckinhdoanhConstant.js","redux/dnthuonghieu/dnthuonghieuConstant.js","redux/dmchitieu/dmchitieuConstant.js","redux/dmloaithongbao/DMLoaiThongBaoConstant.js","redux/dmdiaban/dmdiabanConstant.js","redux/dmquanhuyen/dmquanhuyenConstant.js","redux/dmtinhthanh/dmtinhthanhConstant.js","redux/dmphuongxa/dmphuongxaConstant.js","redux/dmduongpho/dmduongphoConstant.js","redux/dmchitieusanphamquantam/dmchitieusanphamquantamConstant.js","redux/dmchitieusanpham/dmchitieusanphamConstant.js","redux/dmchitieunguoidungtichcuc/DMChiTieuNguoiDungTichCucConstant.js","redux/dmchitieudoanhnghieptichcuc/DMChiTieuDoanhNghiepTichCucConstant.js","redux/dmloaisanpham/dmloaisanphamConstant.js","redux/tkpermission/tkpermissionConstant.js","redux/dmloaihinhkinhdoanh/dmloaihinhkinhdoanhConstant.js","redux/dmkhoanggia/DMKhoangGiaConstant.js","redux/dmdonvi/DMDonViConstant.js","redux/tknhomnguoidung/tknhomnguoidungConstant.js","redux/dmdoituongquanly/dmdoituongquanlyConstant.js","redux/dmchucvu/dmchucvuConstant.js","redux/dmhanhvivipham/dmhanhviviphamConstant.js","redux/dmchitieudanhgia/dmchitieudanhgiaConstant.js","redux/tknhomnguoidungcn/tknhomnguoidungcnConstant.js","redux/dmlinhvucsukien/dmlinhvucsukienConstant.js","redux/logSys/logSysConstant.js","redux/menuhethong/menuhethongConstant.js","redux/quanlynoidung/khotulieu/khotulieuConstant.js","redux/quanlynoidung/tindang/tindangConstants.js","redux/quanlynoidung/bclydobaocao/bclydobaocaoConstant.js","redux/quanlynoidung/bcviphamsanpham/bcviphamsanphamConstant.js","redux/quanlynoidung/tochuccanhanvipham/tochuccanhanviphamConstant.js","redux/danhgiavehethong/danhgiavehethongConstant.js","redux/phieukhaosat/phieukhaosatConstant.js","redux/cauhoikhaosat/cauhoikhaosatConstant.js","redux/ketquaphieukhaosat/ketquaphieukhaosatConstant.js","redux/quanlynoidung/baidang/baidangConstants.js","redux/quanlynoidung/baidang/binhluan/binhluanConstants.js","redux/quanlynoidung/baidang/bvbaocaovipham/bvbaocaoviphamConstants.js","redux/traloiphieukhaosat/traloiphieukhaosatConstant.js","redux/cauhinhhethong/cauhinhhethongConstant.js","redux/cauhinhdulieulienket/cauhinhdulieulienketConstant.js","redux/dmapiwebservice/dmapiwebserviceConstant.js","redux/tktaikhoan/tkdoanhnghiep/tkdoanhnghiepConstant.js","redux/quanlynoidung/sanphamdn/sanphamdnConstants.js","redux/quanlynoidung/sanphamdn/binhluansp/binhluanspConstants.js","redux/quanlynoidung/dnsukien/dnsukienConstants.js","redux/quanlynoidung/tinbaotogiac/tinbaotogiacConstant.js","redux/quanlynoidung/tinbaotogiac/taikhoan/taikhoanConstant.js","redux/menuFrontEnd/menuFrontEndConstant.js","redux/bvtienich/bvtienichConstant.js","redux/dieukhoanchinhsach/dieukhoanchinhsachConstant.js","redux/chcauhoi/chcauhoiConstant.js","redux/bannerquangcao/bannerquangcaoConstant.js","redux/chtraloi/chtraloiConstant.js","redux/oauth/oauthReducer.js","redux/user/userReducer.js","redux/dmchuyenmuctin/dmchuyenmuctinReducer.js","redux/dmdoituongchiase/dmdoituongchiaseReducer.js","redux/dmdonvilienket/dmdonvilienketReducer.js","redux/dmchudecauhoi/dmchudecauhoiReducer.js","redux/dmlinhvuckinhdoanh/dmlinhvuckinhdoanhReducer.js","redux/dnthuonghieu/dnthuonghieuReducer.js","redux/dmchitieu/dmchitieuReducer.js","redux/dmloaithongbao/DMLoaiThongBaoReducer.js","redux/dmdiaban/dmdiabanReducer.js","redux/dmquanhuyen/dmquanhuyenReducer.js","redux/tktaikhoan/tktaikhoanReducer.js","redux/dmtinhthanh/dmtinhthanhReducer.js","redux/dmphuongxa/dmphuongxaReducer.js","redux/dmduongpho/dmduongphoReducer.js","redux/dmchitieusanphamquantam/dmchitieusanphamquantamReducer.js","redux/dmchitieusanpham/dmchitieusanphamReducer.js","redux/dmchitieunguoidungtichcuc/DMChiTieuNguoiDungTichCucReducer.js","redux/dmchitieudoanhnghieptichcuc/DMChiTieuDoanhNghiepTichCucReducer.js","redux/dmloaisanpham/dmloaisanphamReducer.js","redux/tkpermission/tkpermissionReducer.js","redux/dmloaihinhkinhdoanh/dmloaihinhkinhdoanhReducer.js","redux/dmkhoanggia/DMKhoangGiaReducer.js","redux/dmdonvi/DMDonViReducer.js","redux/tknhomnguoidung/tknhomnguoidungReducer.js","redux/dmdoituongquanly/dmdoituongquanlyReducer.js","redux/dmchucvu/dmchucvuReducer.js","redux/dmhanhvivipham/dmhanhviviphamReducer.js","redux/dmchitieudanhgia/dmchitieudanhgiaReducer.js","redux/tknhomnguoidungcn/tknhomnguoidungcnReducer.js","redux/dmlinhvucsukien/dmlinhvucsukienReducer.js","redux/logSys/logSysReducer.js","redux/menuhethong/menuhethongReducer.js","redux/quanlynoidung/hosovuviec/hosovuviecReducer.js","redux/quanlynoidung/khotulieu/khotulieuReducer.js","redux/quanlynoidung/tindang/tindangReducer.js","redux/quanlynoidung/bclydobaocao/bclydobaocaoReducer.js","redux/quanlynoidung/bcviphamsanpham/bcviphamsanphamReducer.js","redux/quanlynoidung/tochuccanhanvipham/tochuccanhanviphamReducer.js","redux/danhgiavehethong/danhgiavehethongReducer.js","redux/phieukhaosat/phieukhaosatReducer.js","redux/cauhoikhaosat/cauhoikhaosatReducer.js","redux/ketquaphieukhaosat/ketquaphieukhaosatReducer.js","redux/quanlynoidung/baidang/baidangReducer.js","redux/quanlynoidung/baidang/binhluan/binhluanReducer.js","redux/quanlynoidung/baidang/bvbaocaovipham/bvbaocaoviphamReducer.js","redux/traloiphieukhaosat/traloiphieukhaosatReducer.js","redux/cauhinhhethong/cauhinhhethongReducer.js","redux/cauhinhdulieulienket/cauhinhdulieulienketReducer.js","redux/dmapiwebservice/dmapiwebserviceReducer.js","redux/tktaikhoan/tkdoanhnghiep/tkdoanhnghiepReducer.js","redux/quanlynoidung/sanphamdn/sanphamdnReducer.js","redux/quanlynoidung/sanphamdn/binhluansp/binhluanspReducer.js","redux/quanlynoidung/dnsukien/dnsukienReducer.js","redux/quanlynoidung/tinbaotogiac/tinbaotogiacReducer.js","redux/quanlynoidung/tinbaotogiac/taikhoan/taikhoanReducer.js","redux/menuFrontEnd/menuFrontEndReducer.js","redux/bvtienich/bvtienichReducer.js","redux/dieukhoanchinhsach/dieukhoanchinhsachReducer.js","redux/chcauhoi/chcauhoiReducer.js","redux/bannerquangcao/bannerquangcaoReducer.js","redux/chtraloi/chtraloiReducer.js","redux/reducers.js","redux/store.js","shared/services/AuthService.js","shared/services/BaseService.js","shared/services/BehaviorsService.js","shared/services/index.js","assets/images/logo-new.png","modules/layoutright/HoiDap.js","modules/layoutright/DiaBanViPham.js","modules/layoutright/SPBaoCaoViPham.js","shared/utils/http/htppUtils.js","shared/utils/http/httpClient.js","shared/utils/loadable.js","shared/utils/findByType.js","shared/utils/formatDateTime.js","shared/utils/index.js","shared/components/RouteGuard.js","shared/components/RouteWithSubRoutes.js","shared/components/LoadingComponent.js","shared/components/LoaderComponent.js","shared/components/page/PageComponent.js","modules/layoutright/SuKienSapDienRa.js","shared/components/layout-home/Layout2cComponent.js","modules/Public/baiviet/rightcol/KetNoiCuaToiComponent.js","modules/Public/baiviet/rightcol/GoiYKetNoiComponent.js","modules/Public/baiviet/rightcol/LoiMoiKetNoiComponent.js","shared/components/layout-home/LayoutbvComponent.js","shared/components/layout-home/LayoutpaComponent.js","shared/components/grid-view/PaginationComponent.js","shared/components/grid-view/GridViewContext.js","shared/components/grid-view/TableComponent.js","shared/components/grid-view/GridViewHeaderComponent.js","shared/components/grid-view/GridViewComponent.js","shared/components/behaviors/AlertComponent.js","shared/components/behaviors/ConfirmComponent.js","shared/components/form-control/utils.js","shared/components/form-control/FormSelectComponent.js","shared/components/form-control/FileAttachComponent.js","shared/components/form-control/FileAttachIamgeComponent.js","shared/components/form-control/DatePickerComponent.js","shared/components/index.js","assets/images/add_images.png","assets/images/unnamed.png","assets/images/unavatar.jpg","modules/Public/tienich/tienichService.js","assets/images/logo_home.svg","assets/images/bg-header_top.png","assets/images/user1-128x128.jpg","modules/Public/login/LoginComponent.js","modules/Public/login/index.js","app-setting.js","layouts/PublicRoutes.js","layouts/NavBarPublic.js","layouts/SideBarPublic.js","modules/Public/tienich/DanhGiaHeThongFormComponent.js","modules/Public/demluottruycap/TruyCapService.js","layouts/FooterPublic.js","layouts/NotifiFooter.js","layouts/PublicLayout.js","modules/oauth-callback/OauthCallback.js","modules/logout/LogoutComponent.js","database/chat/tinNhanSchema.js","database/chat/hoiThoaiSchema.js","database/chat/index.js","modules/Public/chathome/messages/boxmessages.js","database/chat/hoithoaiCollection.js","modules/Public/chathome/hoithoaiService.js","modules/Public/chathome/hoithoai/hoithoaiComponent.js","modules/Public/chathome/chatModule.js","modules/Public/taikhoan/quenmatkhau/QuenMatKhauService.js","modules/Public/taikhoan/quenmatkhau/QuenMatKhauComponent.js","modules/Public/taikhoan/quenmatkhau/nhapmatkhau/NhapMatKhauComponent.js","App.js","serviceWorker.js","index.js","modules/Public/baiviet/BaiVietService.js","redux/oauth/oauthAction.js","redux/actions.js"],"names":["defaultPageOptions","page","page_size","total","pageSizeOptions","HOSOVUVIEC_SET_LIST_DATA","HOSOVUVIEC_SET_LIST_META","HANHVIVIPHAM_SET_LIST_DATA","HANHVIVIPHAM_CHANGESTATUS","module","exports","TKTAIKHOAN_SET_LIST_DATA","TKTAIKHOAN_SET_LIST_META","TKTAIKHOAN_SET_INFO","OAUTH_SET_TOKEN","OAUTH_REMOVE_TOKEN","USER_SET_LIST_DATA","USER_SET_LIST_META","DMCHUYENMUCTIN_SET_LIST_DATA","DMCHUYENMUCTIN_SET_LIST_META","DMDOITUONGCHIASE_SET_LIST_DATA","DMDOITUONGCHIASE_SET_LIST_META","DMDONVILIENKET_SET_LIST_DATA","DMDONVILIENKET_SET_LIST_META","DMCHUDECAUHOI_SET_LIST_DATA","DMCHUDECAUHOI_SET_LIST_META","DMLINHVUCKINHDOANH_SET_LIST_DATA","DMLINHVUCKINHDOANH_SET_LIST_META","DNTHUONGHIEU_SET_LIST_DATA","DNTHUONGHIEU_SET_LIST_META","DMCHITIEU_SET_LIST_DATA","DMCHITIEU_SET_LIST_META","DM_LOAI_THONG_BAO_SET_LIST_DATA","DM_LOAI_THONG_BAO_SET_LIST_META","DMDIABAN_SET_LIST_DATA","DMDIABAN_SET_LIST_META","DMQUANHUYEN_SET_LIST_DATA","DMQUANHUYEN_SET_LIST_META","DMTINHTHANH_SET_LIST_DATA","DMTINHTHANH_SET_LIST_META","DMPHUONGXA_SET_LIST_DATA","DMPHUONGXA_SET_LIST_META","DMDUONGPHO_SET_LIST_DATA","DMDUONGPHO_SET_LIST_META","DMCHITIEUSANPHAMQUANTAM_SET_LIST_DATA","DMCHITIEUSANPHAMQUANTAM_SET_LIST_META","DMCHITIEUSANPHAM_SET_LIST_DATA","DMCHITIEUSANPHAM_SET_LIST_META","DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_DATA","DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_META","DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_DATA","DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_META","DMLOAISANPHAM_SET_LIST_DATA","DMLOAISANPHAM_SET_LIST_META","TKPERMISSION_SET_LIST_DATA","TKPERMISSION_SET_LIST_META","DMLOAIHINHKINHDOANH_SET_LIST_DATA","DMLOAIHINHKINHDOANH_SET_LIST_META","DM_KHOANG_GIA_SET_LIST_DATA","DM_KHOANG_GIA_SET_LIST_META","DM_DON_VI_SET_LIST_DATA","DM_DON_VI_SET_LIST_META","TKNHOMNGUOIDUNG_SET_LIST_DATA","TKNHOMNGUOIDUNG_SET_LIST_META","DMDOITUONGQUANLY_SET_LIST_DATA","DMDOITUONGQUANLY_SET_LIST_META","DMCHUCVU_SET_LIST_DATA","DMCHUCVU_SET_LIST_META","DMHANHVIVIPHAM_SET_LIST_DATA","DMHANHVIVIPHAM_SET_LIST_META","DMCHITIEUDANHGIA_SET_LIST_DATA","DMCHITIEUDANHGIA_SET_LIST_META","TKNHOMNGUOIDUNGCN_SET_LIST_DATA","TKNHOMNGUOIDUNGCN_SET_LIST_META","DMLINHVUCSUKIEN_SET_LIST_DATA","DMLINHVUCSUKIEN_SET_LIST_META","LOGSYS_SET_LIST_DATA","LOGSYS_SET_LIST_META","MENUHETHONG_SET_LIST_DATA","MENUHETHONG_SET_LIST_META","KHOTULIEU_SET_LIST_DATA","KHOTULIEU_SET_LIST_META","TINDANG_SET_LIST_DATA","TINDANG_SET_LIST_META","BCLYDOBAOCAO_SET_LIST_DATA","BCLYDOBAOCAO_SET_LIST_META","BCVIPHAMSANPHAM_SET_LIST_DATA","BCVIPHAMSANPHAM_SET_LIST_META","TOCHUCCANHANVIPHAM_SET_LIST_DATA","TOCHUCCANHANVIPHAM_SET_LIST_META","DANHGIAVEHETHONG_SET_LIST_DATA","DANHGIAVEHETHONG_SET_LIST_META","PHIEUKHAOSAT_SET_LIST_DATA","PHIEUKHAOSAT_SET_LIST_META","CAUHOIKHAOSAT_SET_LIST_DATA","CAUHOIKHAOSAT_SET_LIST_META","KETQUAPHIEUKHAOSAT_SET_LIST_DATA","KETQUAPHIEUKHAOSAT_SET_LIST_META","BAIDANG_SET_LIST_DATA","BAIDANG_SET_LIST_META","BINHLUAN_SET_LIST_DATA","BINHLUAN_SET_LIST_META","BVBAOCAOVIPHAM_SET_LIST_DATA","BVBAOCAOVIPHAM_SET_LIST_META","TRALOIPHIEUKHAOSAT_SET_LIST_DATA","TRALOIPHIEUKHAOSAT_SET_LIST_META","CAUHINHHETHONG_SET_LIST_DATA","CAUHINHHETHONG_SET_LIST_META","CAUHINHDULIEULIENKET_SET_LIST_DATA","CAUHINHDULIEULIENKET_SET_LIST_META","DMAPIWEBSERVICE_SET_LIST_DATA","DMAPIWEBSERVICE_SET_LIST_META","TKDOANHNGHIEP_SET_LIST_DATA","TKDOANHNGHIEP_SET_LIST_META","SANPHAMDN_SET_LIST_DATA","SANPHAMDN_SET_LIST_META","BINHLUANSP_SET_LIST_DATA","BINHLUANSP_SET_LIST_META","DNSUKIEN_SET_LIST_DATA","DNSUKIEN_SET_LIST_META","TINBAOTOGIAC_SET_LIST_DATA","TINBAOTOGIAC_SET_LIST_META","TAIKHOAN_SET_LIST_DATA","TAIKHOAN_SET_LIST_META","MENUFRONTEND_SET_LIST_DATA","MENUFRONTEND_SET_LIST_META","BVTIENICH_SET_LIST_DATA","BVTIENICH_SET_LIST_META","DIEUKHOANCHINHSACH_SET_LIST_DATA","DIEUKHOANCHINHSACH_SET_LIST_META","CHCAUHOI_SET_LIST_DATA","CHCAUHOI_SET_LIST_META","BANNERQUANGCAO_SET_LIST_DATA","BANNERQUANGCAO_SET_LIST_META","CHTRALOI_SET_LIST_DATA","CHTRALOI_SET_LIST_META","tokenDefault","access_token","expires","refresh_token","fullName","username","unitId","lstRoles","idTaiKhoan","user","userList","meta","sort","search","filter","unitTraversalOption","_","Date","getTime","dmchuyenmuctin","dmchuyenmuctinList","id","dmdoituongchiase","dmdoituongchiaseList","dmdonvilienket","dmdonvilienketList","dmchudecauhoi","dmchudecauhoiList","dmlinhvuckinhdoanh","dmlinhvuckinhdoanhList","dnthuonghieu","dnthuonghieuList","idDoanhNghiep","dmchitieu","dmchitieuList","dmloaithongbao","DMLoaiThongBaoList","dmdiaban","dmdiabanList","idTinhThanh","dmquanhuyen","dmquanhuyenList","tktaikhoan","tktaikhoanList","tendangnhap","nam","thang","nmanhom","data","dmtinhthanh","dmtinhthanhList","dmphuongxa","dmphuongxaList","idPhuongXa","dmduongpho","dmduongphoList","dmchitieusanphamquantam","dmchitieusanphamquantamList","dmchitieusanpham","dmchitieusanphamList","dmchitieunguoidungtichcuc","DMChiTieuNguoiDungTichCucList","dmchitieudoanhnghieptichcuc","DMChiTieuDoanhNghiepTichCucList","dmloaisanpham","dmloaisanphamList","tkpermission","tkpermissionList","dmloaihinhkinhdoanh","dmloaihinhkinhdoanhList","dmkhoanggia","DMKhoangGiaList","dmdonvi","DMDonViList","tknhomnguoidung","tknhomnguoidungList","dmdoituongquanly","dmdoituongquanlyList","dmchucvu","dmchucvuList","dmhanhvivipham","dmhanhviviphamList","dmchitieudanhgia","dmchitieudanhgiaList","tknhomnguoidungcn","tknhomnguoidungcnList","dmlinhvucsukien","dmlinhvucsukienList","logSys","logSysList","thaotac","table","menuhethong","menuhethongList","hosovuviec","hosovuviecList","dataHVVP","title","iddonvi","status","khotulieu","khotulieuList","tindang","tindangList","bclydobaocao","bclydobaocaoList","bcviphamsanpham","bcviphamsanphamList","iD_SANPHAM","iD_DOANHNGHIEP","iD_NGUOIBAOCAO","iD_LYDOBAOCAO","iD_NGUOIPHANHOI","tochuccanhanvipham","tochuccanhanviphamList","id_linhvuc","id_loaisp","danhgiavehethong","danhgiavehethongList","phieukhaosat","phieukhaosatList","cauhoikhaosat","cauhoikhaosatList","ID_PHIEUKHAOSAT","ketquaphieukhaosat","ketquaphieukhaosatList","baidang","baidangList","binhluan","binhluanList","bvbaocaovipham","bvbaocaoviphamList","traloiphieukhaosat","traloiphieukhaosatList","startdate","enddate","cauhinhhethong","cauhinhhethongList","cauhinhdulieulienket","cauhinhdulieulienketList","dmapiwebservice","dmapiwebserviceList","tkdoanhnghiep","tkdoanhnghiepList","id_loaihinh","id_mathangkinhdoanhchinh","id_tinhthanh","id_quanhuyen","id_phuongxa","sanphamdn","sanphamdnList","binhluansp","binhluanspList","dnsukien","dnsukienList","tinbaotogiac","tinbaotogiacList","trangthai","tungay","denngay","taikhoan","taikhoanList","manhom","menuFrontEnd","menuFrontEndList","bvtienich","bvtienichList","dieukhoanchinhsach","dieukhoanchinhsachList","chcauhoi","chcauhoiList","bannerquangcao","bannerquangcaoList","chtraloi","chtraloiList","reducer","combineReducers","oauth","state","action","type","Object","assign","token","Constant","DMLoaiThongBao","actions","DMChiTieuNguoiDungTichCuc","DMChiTieuDoanhNghiepTichCuc","DMKhoangGia","DMDonVi","persistConfig","key","storage","whitelist","pReducer","persistReducer","rootReducer","store","createStore","persistor","persistStore","authService","_dispatch","setToken","removeToken","getToken","this","dispatch","body","grant_type","password","client_id","CLIENT","client_secret","http","post","pipe","tap","res","ticket","serivceurl","get","OauthAction","BaseService","props","url","sortBy","sortDesc","keys","params","itemsPerPage","FilterText","obj","put","files","objcreate","formData","FormData","i","length","append","JSON","stringify","headers","objupdate","delete","strValue","d","month","getMonth","output","getDate","getFullYear","day","hours","getHours","minute","getMinutes","hour","minutes","str","toLowerCase","replace","strObjectPer","strPrivilege","strPermisson","undefined","strNumber","toString","slice","arr","Math","random","baseService","BehaviorsService","onShowAlert","Subject","onHideAlert","onShowConfirm","onHideConfirm","sendToToast","msg","opt","Promise","resolve","subscriptions","subscribe","unsubscribe","next","BehaviorsContext","createContext","beh","HoiDap","renderAskAndAnswers","numShowInRow","l","dataAskAndAnswers","ceil","tmpOld","Array","from","e","tmp","numRows","className","map","item","row","Fragment","noidung","aria-hidden","href","titlE_NGUOIHOI","countcautraloi","to","chuyenDoiURL","getDataAskAndAnswers","fetch","API_URL","then","json","setState","catch","console","log","tieude","Component","DiaBanViPham","dataAreaViolations","dataTCCNVP","getDataAreaViolations","titlE_TINHTHANH","diachi","formatDateTime","ngayvipham","SPBaoCaoViPham","dataProductReports","getDataProductReports","slugURL","tensanpham","anhsanpham","src","alt","style","borderRadius","NoImg","loaisanpham","soluotbcvp","HttpErrorResponse","otp","error","statusText","request","HttpHandle","config","Observable","subscriber","axios","response","complete","err","message","HttpClient","options","apiUrl","authorizationBase","tokenSubject","BehaviorSubject","isRefreshingToken","defaults","baseURL","that","getState","updateConfig","catchError","throwError","handle400Error","handle401Error","handle403Error","method","getUri","isOverwrite","Authorization","take","switchMap","refreshToken","logoutUser","newToken","finalize","observable","loadable","importFunc","fallback","LazyComponent","lazy","findByType","children","component","result","displayName","React","Children","forEach","child","childType","name","includes","push","AUTHORIZATION_BASE","RouteGuard","rest","render","per","isAuthenticated","UnitCode","pathname","location","RouteGuardComponent","connect","RouteWithSubRoutes","route","path","routes","LoadingComponent","loading","Spinner","animation","role","LoaderComponent","Modal","size","show","backdrop","Body","PageContext","Header","Consumer","join","Content","PageComponent","Provider","Layout2cContext","Left","Right","Layout2c","Layout2cComponent","KetNoiCuaToiComponent","isShow","fetchData","_BaiVietService","getKetNoiCuaToi","totalRows","index","width","height","iD_NGUOINHAN","nguoigui","anhDaiDien","nguoinhan","maxHeight","contextType","Context","GoiYKetNoiComponent","getGoiYKetNoi","findIndex","o","isketnoi","actaddFriend","context","alert","history","onClick","KetNoi","LoiMoiKetNoiComponent","getLoiMoiKetNoi","ischeck","dongYLoiMoiKetNoi","huyLoiMoiKetNoi","actXacNhan","actXoa","LayoutbvContext","LayoutbvComponent","LayoutpaContext","LayoutpaComponent","PaginationComponent","prevProps","inputSelectPage","createRef","Number","handleChange","event","test","getTotalPage","ev","currentTarget","value","Row","Col","sm","FormControl","as","aria-controls","custom","onChange","onchangePageSize","Pagination","First","disabled","toFristPage","bind","Prev","toPrevPage","Item","active","current","select","ref","onChangePage","onKeyDown","onBlur","Next","toNextPage","Last","toLastPage","nextState","GridViewContext","ColumnComponent","TableComponent","selected","tbodyRef","checked","contextValue","textinputs","querySelectorAll","call","el","processHanleChange","sortKey","typeSort","gridViewHandleChange","keyExtractor","noSelected","noPaging","Table","striped","bordered","hover","handleSort","data-icon","data-inline","data-width","data-height","FormCheck","uuidv4","label","handleCheckAll","handleCheckItem","colSpan","textAlign","Column","GridViewHeaderComponent","isAdvSearchOpen","keySearch","xs","isWrapper","md","InputGroup","placeholder","aria-label","autoFocus","handleKeyDown","Append","handleClickSeachBtn","Button","variant","AdvanceFilter","handleToggleAdvBtn","zIndex","ActionBar","GridViewComponent","header","renderHeader","renderTable","AlertComponent","onHide","handleClose","closeButton","Title","Footer","ConfirmComponent","handleOK","flattenTree","Map","set","setValue","mode","expanded","FormSelectComponent","parse","innerValue","timeRender","timeBlur","nextProps","selectedNodes","x","persist","target","isValid","isInvalid","keepTreeOnSearch","keepChildrenOnSearch","inlineSearchInput","StrictMode","classNames","texts","noMatches","currentNode","handleBlur","fileImage","fileDocument","fileAll","FileAttachComponent","onChangeHandler","filetype","split","pop","checkFileType","checkSize","element","j","arrRe","fileAttach","onFileChange","checkedit","fileType","maxSize","PropTypes","array","fileDelete","lstIdDelete","document","getElementById","click","indexOf","isDelete","splice","onFileDelete","multiple","btnName","Form","Label","upload","hidden","file","deleteAtt","margin","color","listStyleType","fileAllow","FileAttachImageComponent","fileAttachs","reader","FileReader","onloadend","datafile","idx","readAsDataURL","urlImage","IamgeAdd","accept","tienichService","_props","sendToForm","id_chude","id_cauhoi","strNotify","schema","object","string","trim","required","Login","errorMessage","handleSubmit","login","Card","marginTop","marginBottom","Image","fontSize","borderColor","borderWidth","borderStyle","padding","logoNavBar","validationSchema","onSubmit","initialValues","values","touched","errors","noValidate","Group","Control","autoComplete","Text","Feedback","lineHeight","LoginComponent","window","appCfg","SOCKET_URL","ISPOST","CAPTCHA_KEY","SIGN_KEY","ZALO_OAID","routesPublic","mql","matchMedia","NavBarPublicComponent","renderTreeMenus","dataTreeMenus","sidebarOpen","exact","renderTreeMenuExpand","dataTreeMenuExpand","renderNavbarMenuMobile","valueSearch","onKeyPress","handleKeyPress","paddingRight","onToogleNavbar","sidebarDocked","matches","mediaQueryChanged","onSetSidebarOpen","addListener","getDataTreeMenus","removeListener","open","datamenu","datamenuexpan","charCode","logo_home","paddingLeft","paddingBottom","sidebar","onSetOpen","sidebarClassName","overlayClassName","rootClassName","NavBarPublic","withRouter","SideBarPublicComponent","formatDate","strDate","Intl","DateTimeFormat","year","weekday","formatToParts","renderLoginSignup","inpSearch","inpPlacehoder","backgroundColor","border","borderBottom","renderUser","CustomToggle","forwardRef","preventDefault","mdiDotsHorizontal","Dropdown","Toggle","right","bottom","bsPrefix","dataNotify","Menu","alignRight","boxShadow","SearchNotify","dataItem","overflow","anhdaidien","duongdan","updateNotify","whiteSpace","Link","dangerouslySetInnerHTML","__html","delNotify","eventKey","TatThongBao","ngaytao","page_size_notify","ViewMore","defaultImgUser","viewPersonalPage","viewPersonalInfo","logout","data-toggle","data-target","fetchdata","getDataNotify","objNotify","confirm","backgroundImage","Background","now","logoHeader","SideBarPublic","DanhGiaDefault","mota","DanhGiaHeThongFormComponent","listGroup","editMode","shownotify","datatieuchidanhgia","datarating","messnotify","getdanhgiahethong","getchitieudanhgiahethong","temp","iD_DMCHITIEUDANHGIA","danhgia","lstdanhgiachitiet","createdanhgiahethong","Close","isRefesh","onClose","keyCode","which","nextValue","prevValue","lstdanhgia","itemtemp","keyboard","enableReinitialize","dataBaoCao","controlId","starColor","emptyStarColor","onStarClick","renderStarIcon","renderStarIconHalf","position","Closenotify","truycapService","FooterPublicComponent","overItem","flat1","leaveItem","luottruycap","thangnhieutruycap","thangittruycap","truycapthangnay","luottruycapthang","luottruycapmax","luottruycapmin","sethours","setHours","sessionStorage","getItem","checktime","localStorage","TangLuotTruyCap","setItem","LuotTruyCap","Luottruycap","reduce","prev","cur","Luottruycapmax","max","apply","Thangnhieutruycaps","Thangnhieutruycap","Luottruycapmin","Thangittruycap","min","Thangittruycaps","Truycapthangnay","Luottruycapthang","onMouseOver","onMouseOut","adddanhgia","borderTop","FooterPublic","NotifiFooterComponent","noiDungTB","getTienIchByType","NotifiFooter","PublicLayout","toggle","handlerClickToggle","OauthCallback","LogoutComponent","renderRedirect","tinNhanSchema","version","properties","primary","default","indexes","hoiThoaiSchema","addRxPlugin","require","RxDBReplicationGraphQLPlugin","pullQueryBuilder","doc","ID","NGAYTAO_UTC","ID_HOITHOAI","query","Paging","variables","pushQueryBuilderCustom","endpointUrl","wsClient","SubscriptionClient","reconnect","timeout","onConnect","connectionCallback","reconnectionAttempts","inactivityTimeout","dbPromise","_create","a","createRxDatabase","adapter","db","ChatBoxComponent","scrollToBottom","scrollParentRef","scrollTop","clientHeight","scrollHeight","onLoadMore","onScrollBottom","list_limmit_mess_box","list_message","GetData","renderListMess","ID_NGUOIGUI","ID_TAIKHOAN","NOIDUNG","formatFullDateTime","onDeleteMessage","DatabaseChat","tieude_ht","anhdaidien_ht","isLoading","prevY","ngay_tao_cu","hasMore","isSearch","nameCollection","hoithoaiCollection","entities","observer","y","boundingClientRect","insert","RunReplication","IntersectionObserver","handleObserver","observe","replicationState","cancel","collection","findOne","exec","DS_THANHVIEN","find","TENDAYDU","TIEUDE","ANHDAIDIEN","imgDefault","syncGraphQL","pull","queryBuilder","batchSize","deletedFlag","live","liveInterval","error$","ret","run","selector","$eq","$","lastID","NgayTao","r","feedForRxDBReplicationMessage","bulkInsert","prevState","snapshot","messageID","where","eq","remove","change","searchMessage","keyword","regexp","RegExp","$regex","cursor","changeSearchMessage","viewBox","display","handleChangeSearch","pageStart","initialLoad","useWindow","isReverse","loadMore","getScrollParent","loader","resetForm","defaultProps","Boxmessages","RxDBEncryptionPlugin","RxDBQueryBuilderPlugin","RxDBUpdatePlugin","RxDBValidatePlugin","pullQueryBuilderHoiThoai","NGAYCHINHSUA_UTC","pushQueryBuilderHoiThoai","oTNHOITHOAIDetailDto","hoithoaiService","_hoithoaiService","HoithoaiComponents","onShowBoxAddMessModal","showBoxAddMessModal","onCloseBoxAddMessModal","handleChangeKeyword","featDataKN","handleChangeKeywordHoiThoai","searchHoiThoai","list_hoithoai","selected_ID_HOITHOAI","dataKN","id_taikhoan","listitem","SL_TINNHAN_CHUADOC","changeFunction","oldData","LANDOC_CUOICUNG_UTC","toISOString","atomicUpdate","reload","match","actSendMessage","getDanhSachKetNoi","concat","userName","createHoiThoai","mdiMenuDownOutline","fill","aria-roledescription","userSelect","touchAction","boxSizing","alignItems","clickHoiThoai","TINNHAN_CUOICUNG","visibility","marginLeft","marginRight","DanhDauDaDoc","aria-live","aria-atomic","clipPath","val","iD_NGUOIGUI","viewMore","HoithoaiComponent","user_onlines","chatModule","QuenMatKhauService","_QuenMatKhauService","QuenMatKhauComponent","expired","sendtkquenmatkhau","thongbao","_reCaptchaRef","sitekey","asyncScriptOnLoad","matkhaumoi","nhaplaimatkhau","oneOf","NhapMatKhauComponent","check","substring","lastIndexOf","sendtkmatkhau","App","Boolean","hostname","ReactDOM","navigator","serviceWorker","ready","registration","unregister","BaiVietService","sendToLoadFormDangBai","sendToViewLike","sendToViewShare","sendToFormEdit","sendToBaoCaoViPham","sendToShareBaiViet","sendToShareMesage","lststatus","idbv","checkEvent","istheodoi"],"mappings":"4FAAA,kCAAO,IAAMA,EAAqB,CAC9BC,KAAM,EACNC,UAAW,GACXC,MAAO,EACPC,gBAAiB,CAAC,GAAI,GAAI,GAAI,O,iCCJlC,wIAAO,IAAMC,EAA2B,2BAC3BC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA4B,6B,oBCHzCC,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,iCCA3C,sGAAO,IAAMC,EAA2B,2BAC3BC,EAA2B,2BAC3BC,EAAsB,uB,oBCFnCJ,EAAOC,QAAU,IAA0B,6C,iCCA3C,oEAAO,IAAMI,EAAkB,kBAClBC,EAAqB,sB,iCCDlC,oEAAO,IAAMC,EAAqB,qBACrBC,EAAqB,sB,iCCDlC,oEAAO,IAAMC,EAA+B,+BAC/BC,EAA+B,gC,iCCD5C,oEAAO,IAAMC,EAAiC,iCACjCC,EAAiC,kC,iCCD9C,oEAAO,IAAMC,EAA+B,+BAC/BC,EAA+B,gC,iCCD5C,oEAAO,IAAMC,EAA8B,8BAC9BC,EAA8B,+B,iCCD3C,oEAAO,IAAMC,EAAmC,mCACnCC,EAAmC,oC,iCCDhD,oEAAO,IAAMC,EAA6B,6BAC7BC,EAA6B,8B,iCCD1C,oEAAO,IAAMC,EAA0B,0BAC1BC,EAA0B,2B,iCCDvC,oEAAO,IAAMC,EAAkC,kCAClCC,EAAkC,mC,iCCD/C,oEAAO,IAAMC,EAAyB,yBACzBC,EAAyB,0B,iCCDtC,oEAAO,IAAMC,EAA4B,4BAC5BC,EAA4B,6B,iCCDzC,oEAAO,IAAMC,EAA4B,4BAC5BC,EAA4B,6B,iCCDzC,oEAAO,IAAMC,EAA2B,2BAC3BC,EAA2B,4B,iCCDxC,oEAAO,IAAMC,EAA2B,2BAC3BC,EAA2B,4B,iCCDxC,oEAAO,IAAMC,EAAwC,wCACxCC,EAAwC,yC,iCCDrD,oEAAO,IAAMC,EAAiC,iCACjCC,EAAiC,kC,iCCD9C,oEAAO,IAAMC,EAAgD,gDAChDC,EAAgD,iD,iCCD7D,oEAAO,IAAMC,EAAkD,kDAClDC,EAAkD,mD,iCCD/D,oEAAO,IAAMC,EAA8B,8BAC9BC,EAA8B,+B,iCCD3C,oEAAO,IAAMC,EAA6B,6BAC7BC,EAA6B,8B,iCCD1C,oEAAO,IAAMC,EAAoC,oCACpCC,EAAoC,qC,iCCDjD,oEAAO,IAAMC,EAA8B,8BAC9BC,EAA8B,+B,iCCD3C,oEAAO,IAAMC,EAA0B,2BAC1BC,EAA0B,4B,iCCDvC,oEAAO,IAAMC,EAAgC,gCAChCC,EAAgC,iC,iCCD7C,oEAAO,IAAMC,EAAiC,iCACjCC,EAAiC,kC,iCCD9C,oEAAO,IAAMC,EAAyB,yBACzBC,EAAyB,0B,iCCDtC,oEAAO,IAAMC,EAA+B,+BAC/BC,EAA+B,gC,iCCD5C,oEAAO,IAAMC,EAAiC,iCACjCC,EAAiC,kC,iCCD9C,oEAAO,IAAMC,EAAkC,kCAClCC,EAAkC,mC,iCCD/C,oEAAO,IAAMC,EAAgC,gCAChCC,EAAgC,iC,iCCD7C,oEAAO,IAAMC,EAAuB,uBACvBC,EAAuB,wB,iCCDpC,oEAAO,IAAMC,EAA4B,4BAC5BC,EAA4B,6B,iCCDzC,oEAAO,IAAMC,EAA0B,0BAC1BC,EAA0B,2B,iCCDvC,oEAAO,IAAMC,EAAwB,wBACxBC,EAAwB,yB,iCCDrC,oEAAO,IAAMC,EAA6B,6BAC7BC,EAA6B,8B,iCCD1C,oEAAO,IAAMC,EAAgC,gCAChCC,EAAgC,iC,iCCD7C,oEAAO,IAAMC,EAAmC,mCACnCC,EAAmC,oC,iCCDhD,oEAAO,IAAMC,EAAiC,iCACjCC,EAAiC,kC,iCCD9C,oEAAO,IAAMC,EAA6B,6BAC7BC,EAA6B,8B,iCCD1C,oEAAO,IAAMC,EAA8B,8BAC9BC,EAA8B,+B,iCCD3C,oEAAO,IAAMC,EAAmC,mCACnCC,EAAmC,oC,iCCDhD,oEAAO,IAAMC,EAAwB,wBACxBC,EAAwB,yB,iCCDrC,oEAAO,IAAMC,EAAyB,yBACzBC,EAAyB,0B,iCCDtC,oEAAO,IAAMC,EAA+B,+BAC/BC,EAA+B,gC,iCCD5C,oEAAO,IAAMC,EAAmC,mCACnCC,EAAmC,oC,iCCDhD,oEAAO,IAAMC,EAA+B,+BAC/BC,EAA+B,gC,iCCD5C,oEAAO,IAAMC,EAAqC,qCACrCC,EAAqC,sC,iCCDlD,oEAAO,IAAMC,EAAgC,gCAChCC,EAAgC,iC,iCCD7C,oEAAO,IAAMC,EAA8B,8BAC9BC,EAA8B,+B,iCCD3C,oEAAO,IAAMC,EAA0B,0BAC1BC,EAA0B,2B,iCCDvC,oEAAO,IAAMC,EAA2B,2BAC3BC,EAA2B,4B,iCCDxC,oEAAO,IAAMC,EAAyB,yBACzBC,EAAyB,0B,iCCDtC,oEAAO,IAAMC,EAA6B,6BAC7BC,EAA6B,8B,iCCD1C,oEAAO,IAAMC,EAAyB,yBACzBC,EAAyB,0B,iCCDtC,oEAAO,IAAMC,EAA6B,6BAC7BC,EAA6B,8B,iCCD1C,oEAAO,IAAMC,EAA0B,0BAC1BC,EAA0B,2B,iCCDvC,oEAAO,IAAMC,EAAmC,mCACnCC,EAAmC,oC,iCCDhD,oEAAO,IAAMC,EAAyB,yBACzBC,EAAyB,0B,iCCDtC,oEAAO,IAAMC,EAA+B,+BAC/BC,EAA+B,gC,iCCD5C,oEAAO,IAAMC,EAAyB,yBACzBC,EAAyB,0B,gFCChCC,EAAe,CACjBC,aAAc,KACdC,QAAS,KACTC,cAAe,KACfC,SAAU,KACVC,SAAU,KACVC,OAAQ,KACRC,SAAU,GACVC,WAAW,G,SCRTC,EAAO,CACTC,SAAU,GACVC,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACP,SAAS,OAChBQ,OAAQ,GACRC,OAAQ,CACJR,OAAQ,GACRS,oBAAqB,IACrBC,GAAG,IAAIC,MAAOC,a,SCVpBC,EAAiB,CACnBC,mBAAoB,GACpBT,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVS,EAAmB,CACrBC,qBAAsB,GACtBZ,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVW,EAAiB,CACnBC,mBAAoB,GACpBd,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVa,EAAgB,CAClBC,kBAAmB,GACnBhB,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVe,EAAqB,CACvBC,uBAAwB,GACxBlB,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNViB,EAAe,CACjBC,iBAAkB,GAClBpB,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJkB,cAAe,K,SCRrBC,EAAY,CACdC,cAAe,GACfvB,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVsB,EAAiB,CACnBC,mBAAoB,GACpBzB,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJR,OAAQ,GACRS,oBAAqB,IACrBC,GAAG,IAAIC,MAAOC,a,SCVpBmB,EAAW,CACbC,aAAc,GACd3B,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJyB,YAAa,K,SCRnBC,EAAc,CAChBC,gBAAiB,GACjB9B,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJyB,YAAa,K,SCRnBG,EAAa,CACfC,eAAgB,GAChBhC,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAEgC,YAAa,OACrB/B,OAAQ,GACRC,OAAQ,CACJ+B,IAAK,EACLC,MAAO,EACPC,QAAS,GACT/B,GAAG,IAAIC,MAAOC,YAItB8B,KAAM,I,SCfJC,EAAc,CAChBC,gBAAiB,GACjBvC,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVsC,EAAa,CACfC,eAAgB,GAChBzC,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJuC,WAAY,K,SCRlBC,EAAa,CACfC,eAAgB,GAChB5C,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJuC,WAAY,K,SCRlBG,EAA0B,CAC5BC,4BAA6B,GAC7B9C,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNV6C,EAAmB,CACrBC,qBAAsB,GACtBhD,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNV+C,EAA4B,CAC9BC,8BAA+B,GAC/BlD,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJR,OAAQ,GACRS,oBAAqB,IACrBC,GAAG,IAAIC,MAAOC,a,SCVpB4C,EAA8B,CAChCC,gCAAiC,GACjCpD,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJR,OAAQ,GACRS,oBAAqB,IACrBC,GAAG,IAAIC,MAAOC,a,SCVpB8C,EAAgB,CAClBC,kBAAmB,GACnBtD,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVqD,EAAe,CACjBC,iBAAkB,GAClBxD,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,SCNVuD,EAAsB,CACxBC,wBAAyB,GACzB1D,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,SCNVyD,GAAc,CAChBC,gBAAiB,GACjB5D,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJR,OAAQ,GACRS,oBAAqB,IACrBC,GAAG,IAAIC,MAAOC,a,UCVpBsD,GAAU,CACZC,YAAa,GACb9D,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,GACRC,OAAQ,CACJR,OAAQ,GACRS,oBAAqB,IACrBC,GAAG,IAAIC,MAAOC,a,UCVpBwD,GAAkB,CACpBC,oBAAqB,GACrBhE,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,GACRC,OAAQ,K,UCPV8D,GAAmB,CACrBC,qBAAsB,GACtBlE,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,UCNViE,GAAW,CACbC,aAAc,GACdpE,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,UCNVmE,GAAiB,CACnBC,mBAAoB,GACpBtE,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,UCNVqE,GAAmB,CACrBC,qBAAsB,GACtBxE,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,UCNVuE,GAAoB,CACtBC,sBAAuB,GACvB1E,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,GACRC,OAAQ,K,UCPVwE,GAAkB,CACpBC,oBAAqB,GACrB5E,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,UCNV2E,GAAS,CACXC,WAAY,GACZ9E,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJ4E,QAAS,EACTC,MAAM,M,UCTZC,GAAc,CAChBC,gBAAiB,GACjBlF,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,GACRC,OAAQ,K,UCRVgF,GAAa,CACfC,eAAgB,GAChBC,SAAU,GACVrF,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAEqF,MAAO,OACfpF,OAAQ,GACRC,OAAQ,CACJoF,QAAS,EACTC,OAAQ,EACRnF,GAAG,IAAIC,MAAOC,a,UCVpBkF,GAAY,CACdC,cAAe,GACf1F,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNVyF,GAAU,CACZC,YAAa,GACb5F,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJqF,OAAO,K,UCRbK,GAAe,CACjBC,iBAAkB,GAClB9F,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNV6F,GAAkB,CACpBC,oBAAqB,GACrBhG,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,GACRC,OAAQ,CACJ8F,WAAY,EACZC,eAAgB,EAChBC,eAAgB,EAChBC,cAAe,EACfC,gBAAiB,K,UCZvBC,GAAqB,CACvBC,uBAAwB,GACxBvG,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAI,OACZR,OAAQ,GACRC,OAAQ,CACJqG,WAAY,EACZC,UAAW,K,UCTjBC,GAAmB,CACrBC,qBAAsB,GACtB3G,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNV0G,GAAe,CACjBC,iBAAkB,GAClB7G,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNV4G,GAAgB,CAClBC,kBAAmB,GACnB/G,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,GACRlJ,MAAO,EACPmJ,OAAQ,CACJ6G,gBAAiB,K,UCTvBC,GAAqB,CACvBC,uBAAwB,GACxBlH,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAG,QACXR,OAAQ,K,UCNViH,GAAU,CACZC,YAAa,GACbpH,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJqF,OAAO,K,UCRb6B,GAAW,CACbC,aAAc,GACdtH,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJqF,OAAO,K,UCRb+B,GAAiB,CACnBC,mBAAoB,GACpBxH,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJqF,OAAO,K,UCRbiC,GAAqB,CACvBC,uBAAwB,GACxB1H,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,GACLC,OAAQ,CACP6G,gBAAiB,EACjBW,UAAW,GACXC,QAAS,M,UCVfC,GAAiB,CACnBC,mBAAoB,GAEpB9H,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCPV6H,GAAuB,CACzBC,yBAA0B,GAC1BhI,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNV+H,GAAkB,CACpBC,oBAAqB,GACrBlI,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNViI,GAAgB,CAClBC,kBAAmB,GACnBpI,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACgC,YAAY,OACnB/B,OAAQ,GACRC,OAAQ,CACJqG,WAAW,EACX6B,YAAY,EACZC,yBAAyB,EACzBC,aAAa,EACbC,aAAa,EACbC,YAAY,EACZpI,GAAG,IAAIC,MAAOC,a,UCdpBmI,GAAY,CACdC,cAAe,GACf3I,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJqF,OAAO,K,UCRboD,GAAa,CACfC,eAAgB,GAChB7I,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJqF,OAAO,K,UCRbsD,GAAW,CACbC,aAAc,GACd/I,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,QACVR,OAAQ,GACRC,OAAQ,CACJqF,OAAO,K,UCRbwD,GAAe,CACjBC,iBAAkB,GAClBjJ,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAI,OACZR,OAAQ,GACRC,OAAQ,CACJoI,aAAc,EACdW,UAAW,EACXC,OAAQ,GACRC,QAAQ,M,UCXdC,GAAW,CACbC,aAAc,GACdtJ,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAI,OACZR,OAAQ,GACRC,OAAQ,CACJoI,aAAc,EACdW,UAAW,EACXC,OAAQ,GACRC,QAAS,GACTG,OAAO,Q,UCZbC,GAAe,CACjBC,iBAAkB,GAClBzJ,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,GACRC,OAAQ,K,UCPVuJ,GAAY,CACdC,cAAe,GACf3J,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAAES,GAAI,QACZR,OAAQ,K,UCNV0J,GAAqB,CACvBC,uBAAwB,GACxB7J,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNV4J,GAAW,CACbC,aAAc,GACd/J,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNV8J,GAAiB,CACnBC,mBAAoB,GACpBjK,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,K,UCNVgK,GAAW,CACbC,aAAc,GACdnK,KAAM,CACFlJ,KAAM,EACNC,UAAW,GACXkJ,KAAM,CAACS,GAAG,OACVR,OAAQ,KCyHDkK,GAjECC,0BAAgB,CAC5BC,M/DrDiB,WAAmC,IAAlCC,EAAiC,uDAAzBlL,EAAcmL,EAAW,uCACnD,OAAQA,EAAOC,MACX,KAAK9S,IACD,OAAO+S,OAAOC,OAAO,GAAIJ,EAAOC,EAAOI,OAC3C,KAAKhT,IACD,OAAO8S,OAAOC,OAAO,GAAIJ,EAAOlL,GACpC,QACI,OAAOkL,I+D+CfzK,K9DjDgB,WAA2B,IAA1ByK,EAAyB,uDAAjBzK,EAAM0K,EAAW,uCAC1C,OAAQA,EAAOC,MACf,KAAK5S,IACD,OAAO6S,OAAOC,OAAO,GAAIJ,EAAO,CAAExK,SAAUyK,EAAOzK,WACvD,KAAKjI,IACD,OAAO4S,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I8DkCX/J,e7DxD0B,WAAqC,IAApC+J,EAAmC,uDAA3B/J,EAAgBgK,EAAW,uCAC9D,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE9J,mBAAoB+J,EAAO/J,qBACjE,KAAKoK,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I6DyCX5J,iB5DzD4B,WAAuC,IAAtC4J,EAAqC,uDAA7B5J,EAAkB6J,EAAW,uCAClE,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE3J,qBAAsB4J,EAAO5J,uBACnE,KAAKiK,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I4D0CX1J,e3D1D0B,WAAqC,IAApC0J,EAAmC,uDAA3B1J,EAAgB2J,EAAW,uCAC9D,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEzJ,mBAAoB0J,EAAO1J,qBACjE,KAAK+J,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I2D2CXxJ,c1D3DyB,WAAoC,IAAnCwJ,EAAkC,uDAA1BxJ,EAAeyJ,EAAW,uCAC5D,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEvJ,kBAAmBwJ,EAAOxJ,oBAChE,KAAK6J,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I0D4CXjJ,UvD5DqB,WAAgC,IAA/BiJ,EAA8B,uDAAtBjJ,EAAWkJ,EAAW,uCACpD,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEhJ,cAAeiJ,EAAOjJ,gBAC5D,KAAKsJ,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IuD6CXtJ,mBzD7D8B,WAAyC,IAAxCsJ,EAAuC,uDAA/BtJ,EAAoBuJ,EAAW,uCACtE,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAErJ,uBAAwBsJ,EAAOtJ,yBACrE,KAAK2J,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IyD8CXpJ,axD3DwB,WAAmC,IAAlCoJ,EAAiC,uDAAzBpJ,EAAcqJ,EAAW,uCAC1D,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEnJ,iBAAkBoJ,EAAOpJ,mBAC/D,KAAKyJ,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IwD4CXO,etDzD0B,WAAqC,IAApCP,EAAmC,uDAA3B/I,EAAgBgJ,EAAW,uCAC9D,OAAQA,EAAOC,MACf,KAAK5R,IACD,OAAO6R,OAAOC,OAAO,GAAIJ,EAAO,CAAE9I,mBAAoB+I,EAAO/I,qBACjE,KAAK3I,IACD,OAAO4R,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IsD0CXxI,WnDxDsB,WAAiC,IAAhCwI,EAA+B,uDAAvBxI,EAAYyI,EAAW,uCACtD,OAAQA,EAAOC,MACX,KAAKM,IACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAEvI,eAAgBwI,EAAOxI,iBAC7D,KAAK+I,IACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,KAAK+K,IACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAElI,KAAMmI,EAAOnI,OACnD,QACI,OAAOkI,ImDuCf1H,wB/CjEmC,WAA8C,IAA7C0H,EAA4C,uDAApC1H,EAAyB2H,EAAW,uCAChF,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEzH,4BAA6B0H,EAAO1H,8BAC1E,KAAK+H,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I+CkDX7I,SrD/DoB,WAA+B,IAA9B6I,EAA6B,uDAArB7I,EAAU8I,EAAW,uCAClD,OAAQA,EAAOC,MACX,KAAKI,IACL,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE5I,aAAc6I,EAAO7I,eACvD,KAAKkJ,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IqDgDX1I,YpDhEuB,WAAkC,IAAjC0I,EAAgC,uDAAxB1I,EAAa2I,EAAW,uCACxD,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEzI,gBAAiB0I,EAAO1I,kBAC9D,KAAK+I,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IoDiDXjI,YlDpEuB,WAAkC,IAAjCiI,EAAgC,uDAAxBjI,EAAakI,EAAW,uCACxD,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEhI,gBAAiBiI,EAAOjI,kBAC9D,KAAKsI,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IkDqDX/H,WjDlEsB,WAAiC,IAAhC+H,EAA+B,uDAAvB/H,EAAYgI,EAAW,uCACtD,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE9H,eAAgB+H,EAAO/H,iBAC7D,KAAKoI,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IiDmDX5H,WhDnEsB,WAAiC,IAAhC4H,EAA+B,uDAAvB5H,EAAY6H,EAAW,uCACtD,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE3H,eAAgB4H,EAAO5H,iBAC7D,KAAKiI,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IgDoDXlH,c3CvEyB,WAAoC,IAAnCkH,EAAkC,uDAA1BlH,EAAemH,EAAW,uCAC5D,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEjH,kBAAmBkH,EAAOlH,oBAChE,KAAKuH,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I2CwDXhH,a1CxEwB,WAAmC,IAAlCgH,EAAiC,uDAAzBhH,EAAciH,EAAW,uCAC1D,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE/G,iBAAkBgH,EAAOhH,mBAC/D,KAAKqH,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I0CyDXxH,iB9CzE4B,WAAuC,IAAtCwH,EAAqC,uDAA7BxH,EAAkByH,EAAW,uCAClE,OAAQA,EAAOC,MACf,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEvH,qBAAsBwH,EAAOxH,uBACnE,KAAK6H,IACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I8C0DX9G,oBzC1E+B,WAA0C,IAAzC8G,EAAwC,uDAAhC9G,EAAqB+G,EAAW,uCACxE,OAAQA,EAAOC,MACX,KAAKI,IACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE7G,wBAAyB8G,EAAO9G,0BACtE,KAAKmH,IACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IyC2DXS,0B7CrEqC,WAAgD,IAA/CT,EAA8C,uDAAtCtH,EAA2BuH,EAAW,uCACpF,OAAQA,EAAOC,MACf,KAAK5Q,IACG,OAAO6Q,OAAOC,OAAO,GAAIJ,EAAO,CAAErH,8BAA+BsH,EAAOtH,gCAChF,KAAKpJ,IACD,OAAO4Q,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I6CsDXU,4B5CtEuC,WAAkD,IAAjDV,EAAgD,uDAAxCpH,EAA6BqH,EAAW,uCACxF,OAAQA,EAAOC,MACf,KAAK1Q,IACD,OAAO2Q,OAAOC,OAAO,GAAIJ,EAAO,CAAEnH,gCAAiCoH,EAAOpH,kCAC9E,KAAKpJ,IACD,OAAO0Q,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I4CuDXW,YxCvEuB,WAAkC,IAAjCX,EAAgC,uDAAxB5G,GAAa6G,EAAW,uCACxD,OAAQA,EAAOC,MACX,KAAKlQ,IACL,OAAOmQ,OAAOC,OAAO,GAAIJ,EAAO,CAAE3G,gBAAiB4G,EAAO5G,kBAC1D,KAAKpJ,IACL,OAAOkQ,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IwCwDXY,QvCxEmB,WAA8B,IAA7BZ,EAA4B,uDAApB1G,GAAS2G,EAAW,uCAChD,OAAQA,EAAOC,MACf,KAAMhQ,KACF,OAAOiQ,OAAOC,OAAO,GAAIJ,EAAO,CAAEzG,YAAa0G,EAAO1G,cAC1D,KAAMpJ,KACF,OAAOgQ,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IuCyDXxG,gBtC5E2B,WAAsC,IAArCwG,EAAoC,uDAA5BxG,GAAiByG,EAAW,uCAChE,OAAQA,EAAOC,MACf,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEvG,oBAAqBwG,EAAOxG,sBAClE,KAAK6G,KACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IsC6DXtG,iBrChF4B,WAAuC,IAAtCsG,EAAqC,uDAA7BtG,GAAkBuG,EAAW,uCAClE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAErG,qBAAsBsG,EAAOtG,uBACnE,KAAK2G,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IqCiEXpG,SpCjFoB,WAA+B,IAA9BoG,EAA6B,uDAArBpG,GAAUqG,EAAW,uCAClD,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEnG,aAAcoG,EAAOpG,eAC3D,KAAKyG,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IoCkEXlG,enClF0B,WAAqC,IAApCkG,EAAmC,uDAA3BlG,GAAgBmG,EAAW,uCAC9D,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEjG,mBAAoBkG,EAAOlG,qBACjE,KAAKuG,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,ImCmEXhG,iBlCnF4B,WAAuC,IAAtCgG,EAAqC,uDAA7BhG,GAAkBiG,EAAW,uCAClE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE/F,qBAAsBgG,EAAOhG,uBACnE,KAAKqG,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IkCoEX9F,kBjCjF6B,WAAwC,IAAvC8F,EAAsC,uDAA9B9F,GAAmB+F,EAAW,uCACpE,OAAQA,EAAOC,MACf,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE7F,sBAAuB8F,EAAO9F,wBACpE,KAAKmG,KACD,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IiCkEX5F,gBhCrF2B,WAAsC,IAArC4F,EAAoC,uDAA5B5F,GAAiB6F,EAAW,uCAChE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE3F,oBAAqB4F,EAAO5F,sBAClE,KAAKiG,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IgCsEX1F,O/BlFkB,WAA6B,IAA5B0F,EAA2B,uDAAnB1F,GAAQ2F,EAAW,uCAC9C,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEzF,WAAY0F,EAAO1F,aACzD,KAAK+F,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I+BmEXtF,Y9BrFuB,WAAkC,IAAjCsF,EAAgC,uDAAxBtF,GAAauF,EAAW,uCACxD,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAErF,gBAAiBsF,EAAOtF,kBAC9D,KAAK2F,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I8BsEXpF,W7BlFsB,WAAiC,IAAhCoF,EAA+B,uDAAvBpF,GAAYqF,EAAW,uCACtD,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAEnF,eAAgBoF,EAAOpF,iBAC7D,KAAK2F,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAElF,SAAUmF,EAAOnF,WACvD,KAAK0F,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I6BiEX9E,U5BzFqB,WAAgC,IAA/B8E,EAA8B,uDAAtB9E,GAAW+E,EAAW,uCACpD,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE7E,cAAe8E,EAAO9E,gBAC5D,KAAKmF,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I4B0EX5E,Q3BpFmB,WAA8B,IAA7B4E,EAA4B,uDAApB5E,GAAS6E,EAAW,uCAChD,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAE3E,YAAa4E,EAAO5E,cAC1D,KAAKmF,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I2BqEX1E,a1B3FwB,WAAmC,IAAlC0E,EAAiC,uDAAzB1E,GAAc2E,EAAW,uCAC1D,OAAQA,EAAOC,MACX,KAAKI,KACL,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEzE,iBAAkB0E,EAAO1E,mBAC3D,KAAK+E,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,I0B4EXxE,gBzBrF2B,WAAsC,IAArCwE,EAAoC,uDAA5BxE,GAAiByE,EAAW,uCAChE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEvE,oBAAqBwE,EAAOxE,sBAClE,KAAK6E,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IyBsEXjE,mBxBzF8B,WAAyC,IAAxCiE,EAAuC,uDAA/BjE,GAAoBkE,EAAW,uCACtE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEhE,uBAAwBiE,EAAOjE,yBACrE,KAAKsE,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IwB0EX7D,iBvB7F4B,WAAuC,IAAtC6D,EAAqC,uDAA7B7D,GAAkB8D,EAAW,uCAClE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE5D,qBAAsB6D,EAAO7D,uBACnE,KAAKkE,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IuB8EX3D,atB/FwB,WAAmC,IAAlC2D,EAAiC,uDAAzB3D,GAAc4D,EAAW,uCAC1D,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE1D,iBAAkB2D,EAAO3D,mBAC/D,KAAKgE,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IsBgFXzD,crB3FyB,WAAoC,IAAnCyD,EAAkC,uDAA1BzD,GAAe0D,EAAW,uCAC5D,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAExD,kBAAmByD,EAAOzD,oBAChE,KAAK8D,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IqB4EXtD,mBpBjG8B,WAAyC,IAAxCsD,EAAuC,uDAA/BtD,GAAoBuD,EAAW,uCACtE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAErD,uBAAwBsD,EAAOtD,yBACrE,KAAK2D,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IoBkFXpD,QnB/FmB,WAA8B,IAA7BoD,EAA4B,uDAApBpD,GAASqD,EAAW,uCAChD,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAEnD,YAAaoD,EAAOpD,cAC1D,KAAK2D,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,ImBgFXlD,SlBhGoB,WAA+B,IAA9BkD,EAA6B,uDAArBlD,GAAUmD,EAAW,uCAClD,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAEjD,aAAckD,EAAOlD,eAC3D,KAAKyD,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IkBiFXhD,ejBjG0B,WAAqC,IAApCgD,EAAmC,uDAA3BhD,GAAgBiD,EAAW,uCAC9D,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAE/C,mBAAoBgD,EAAOhD,qBACjE,KAAKuD,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IiBkFX9C,mBhBhG8B,WAAyC,IAAxC8C,EAAuC,uDAA/B9C,GAAoB+C,EAAW,uCACtE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAE7C,uBAAwB8C,EAAO9C,yBACrE,KAAKmD,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IgBiFX1C,efrG0B,WAAqC,IAApC0C,EAAmC,uDAA3B1C,GAAgB2C,EAAW,uCAC9D,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEzC,mBAAoB0C,EAAO1C,qBACjE,KAAK+C,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IesFXxC,qBdvGgC,WAA2C,IAA1CwC,EAAyC,uDAAjCxC,GAAsByC,EAAW,uCAC1E,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEvC,yBAA0BwC,EAAOxC,2BACvE,KAAK6C,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IcwFXtC,gBbxG2B,WAAsC,IAArCsC,EAAoC,uDAA5BtC,GAAiBuC,EAAW,uCAChE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAErC,oBAAqBsC,EAAOtC,sBAClE,KAAK2C,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IayFXpC,cZ/FyB,WAAoC,IAAnCoC,EAAkC,uDAA1BpC,GAAeqC,EAAW,uCAC5D,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAEnC,kBAAmBoC,EAAOpC,oBAChE,KAAK2C,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IYgFX7B,UXvGqB,WAAgC,IAA/B6B,EAA8B,uDAAtB7B,GAAW8B,EAAW,uCACpD,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAE5B,cAAe6B,EAAO7B,gBAC5D,KAAKoC,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IWwFX3B,WVxGsB,WAAiC,IAAhC2B,EAA+B,uDAAvB3B,GAAY4B,EAAW,uCACtD,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAE1B,eAAgB2B,EAAO3B,iBAC7D,KAAKkC,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IUyFXzB,STzGoB,WAA+B,IAA9ByB,EAA6B,uDAArBzB,GAAU0B,EAAW,uCAClD,OAAQA,EAAOC,MACf,KAAKM,KACD,OAAOL,OAAOC,OAAO,GAAIJ,EAAO,CAAExB,aAAcyB,EAAOzB,eAC3D,KAAKgC,KACD,OAAOL,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IS0FXvB,aRvGwB,WAAmC,IAAlCuB,EAAiC,uDAAzBvB,GAAcwB,EAAW,uCAC1D,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEtB,iBAAkBuB,EAAOvB,mBAC/D,KAAK4B,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IQwFXlB,SPvGoB,WAA+B,IAA9BkB,EAA6B,uDAArBlB,GAAUmB,EAAW,uCAClD,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEjB,aAAckB,EAAOlB,eAC3D,KAAKuB,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IOwFXf,aN7GwB,WAAmC,IAAlCe,EAAiC,uDAAzBf,GAAcgB,EAAW,uCAC1D,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEd,iBAAkBe,EAAOf,mBAC/D,KAAKoB,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IM8FXb,ULhHqB,WAAgC,IAA/Ba,EAA8B,uDAAtBb,GAAWc,EAAW,uCACpD,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEZ,cAAea,EAAOb,gBAC5D,KAAKkB,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IKiGXX,mBJjH8B,WAAyC,IAAxCW,EAAuC,uDAA/BX,GAAoBY,EAAW,uCACtE,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEV,uBAAwBW,EAAOX,yBACrE,KAAKgB,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IIkGXT,SHlHoB,WAA+B,IAA9BS,EAA6B,uDAArBT,GAAUU,EAAW,uCAClD,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAER,aAAcS,EAAOT,eAC3D,KAAKc,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IGmGXP,eFnH0B,WAAqC,IAApCO,EAAmC,uDAA3BP,GAAgBQ,EAAW,uCAC9D,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEN,mBAAoBO,EAAOP,qBACjE,KAAKY,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,IEoGXL,SDpHoB,WAA+B,IAA9BK,EAA6B,uDAArBL,GAAUM,EAAW,uCAClD,OAAQA,EAAOC,MACX,KAAKI,KACD,OAAOH,OAAOC,OAAO,GAAIJ,EAAO,CAAEJ,aAAcK,EAAOL,eAC3D,KAAKU,KACL,OAAOH,OAAOC,OACV,GACAJ,EACA,CACIvK,KAAM0K,OAAOC,OACT,GACAJ,EAAMvK,KACNwK,EAAOxK,QAGvB,QACI,OAAOuK,ME3Bf,sEAKA,IAAMa,GAAgB,CAClBC,IAAK,OACLC,QAASA,IACTC,UAAW,CAAC,UAGVC,GAAWC,YAAeL,GAAeM,IAElCC,GAAQC,sBAAYJ,IACpBK,GAAYC,YAAaH,K,yFCkChCI,EAAc,I,WA1ChB,WAAYC,EAAZ,GAA4D,IAAnCC,EAAkC,EAAlCA,SAAUC,EAAwB,EAAxBA,YAAYC,EAAY,EAAZA,SAAY,oBACvDC,KAAKC,SAAWL,EAChBI,KAAK5B,OAAS,CACVyB,WACAC,cACAC,Y,kDAGF9J,GAAO,IAAD,OACFiK,EAAO,CACTC,WAAY,SACZ7M,SAAU2C,EAAK3C,SACf8M,SAAUnK,EAAKmK,SACfC,UAAWC,IAAOD,UAClBE,cAAeD,IAAOC,eAE1B,OAAOC,IAAKC,KAAK,iBAAkBP,GAAMQ,KAAKC,aAAI,SAACC,GAC/C,EAAKX,SAAS,EAAK7B,OAAOyB,SAASe,U,8BAGnC3K,GACJ+J,KAAKC,SAASD,KAAK5B,OAAOyB,SAAS5J,M,+BAE9BA,GAAO,IAAD,OACLiK,EAAO,CACTC,WAAY,MACZU,OAAQ5K,EAAK4K,OACbC,WAAY7K,EAAK6K,WACjBT,UAAWC,IAAOD,UAClBE,cAAeD,IAAOC,eAE1B,OAAOC,IAAKC,KAAK,iBAAkBP,GAAMQ,KAAKC,aAAI,SAACC,GAC/C,EAAKX,SAAS,EAAK7B,OAAOyB,SAASe,U,gCAIvC,OAAOJ,IAAKO,IAAI,8B,+BAGhBf,KAAKC,SAASD,KAAK5B,OAAO0B,mB,KAGd,CAAgBP,IAAMU,SAAUe,KC9C9CC,E,WACF,aAAyB,IAAbC,EAAY,uDAAJ,GAAI,oBACpBlB,KAAKmB,IAAMD,EAAQA,EAAMC,IAAM,GAC/BnB,KAAKQ,KAAOA,I,oDAERU,GAAQ,IACJxW,EAA0CwW,EAA1CxW,KAAMC,EAAoCuW,EAApCvW,UAAWkJ,EAAyBqN,EAAzBrN,KAAMC,EAAmBoN,EAAnBpN,OAAQC,EAAWmN,EAAXnN,OACnCqN,EAAS,GACTC,GAAW,EACXnI,EAAQpF,EACRD,IAEAwN,EAA4B,SAAjBxN,EADXuN,EAAS9C,OAAOgD,KAAKzN,GAAM,KAG/B,IAAM0N,EAASjD,OAAOC,OAAO,GAAI,CAC7B7T,KAAMA,EACN8W,aAAc7W,EACdyW,OAAQA,EACRC,SAAUA,EACVI,WAAYvI,GACbnF,GACH,OAAOyM,IAAKO,IAAL,UAAYf,KAAKmB,KAAO,CAAEI,OAAQA,M,8BAErCjN,GACJ,OAAOkM,IAAKO,IAAL,UAAYf,KAAKmB,IAAjB,YAAwB7M,M,6BAE5BoN,GACH,OAAOlB,IAAKC,KAAL,UAAaT,KAAKmB,KAAOO,K,6BAE7BA,EAAKpN,GACR,OAAOkM,IAAKmB,IAAL,UAAY3B,KAAKmB,IAAjB,YAAwB7M,GAAMoN,K,qCAE1BA,EAAKE,EAAOC,GAKvB,IAJA,IAGMC,EAAW,IAAIC,SACZC,EAAI,EAAGA,EAAIJ,EAAMK,OAAQD,IAC9BF,EAASI,OAAO,QAASN,EAAMI,IAGnC,OADAF,EAASI,OAAOL,EAAWM,KAAKC,UAAUV,IACnClB,IAAKC,KAAL,UAAaT,KAAKmB,KAAOW,EAAU,CACtCO,QATY,CACZ,eAAgB,2B,qCAWTX,EAAKE,EAAOtN,EAAIgO,GAK3B,IAJA,IAGMR,EAAW,IAAIC,SACZC,EAAI,EAAGA,EAAIJ,EAAMK,OAAQD,IAC9BF,EAASI,OAAO,QAASN,EAAMI,IAGnC,OADAF,EAASI,OAAOI,EAAWH,KAAKC,UAAUV,IACnClB,IAAKmB,IAAL,UAAY3B,KAAKmB,IAAjB,YAAwB7M,GAAMwN,EAAU,CAC3CO,QATY,CACZ,eAAgB,2B,0BAWpB/N,GACA,OAAOkM,IAAK+B,OAAL,UAAevC,KAAKmB,IAApB,YAA2B7M,M,qCAEvBkO,GACX,GAAgB,MAAZA,EACA,MAAO,GAGP,IAAIC,EAAI,IAAIvO,KAAKsO,GACbE,EAAQD,EAAEE,WAAa,EAEvBC,GADMH,EAAEI,UAAY,GAAd,WAAuBJ,EAAEI,WAAcJ,EAAEI,WAChC,MACb,GAAKH,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IAC/CD,EAAEK,cACN,MAAc,UAAVF,EACO,GACJA,I,wCAGGJ,GACd,GAAgB,MAAZA,EACA,MAAO,GAGP,IAAIC,EAAI,IAAIvO,KAAKsO,GACbE,EAAQD,EAAEE,WAAa,EACvBI,EAAMN,EAAEI,UAAY,GAAd,WAAuBJ,EAAEI,WAAcJ,EAAEI,UAC/CD,IAAW,GAAKF,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IACxDK,EAAM,IACNN,EAAEK,cACN,MAAc,UAAVF,EACO,GACJA,I,4CAGOJ,GAClB,GAAgB,MAAZA,EACA,MAAO,GAGP,IAAIC,EAAI,IAAIvO,KAAKsO,GACbQ,EAAQP,EAAEQ,WACVC,EAAST,EAAEU,aACXT,EAAQD,EAAEE,WAAa,EACvBI,EAAMN,EAAEI,UAAY,GAAd,WAAuBJ,EAAEI,WAAcJ,EAAEI,UAC/CD,IAAW,GAAKF,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IACxDK,EAAM,IACNN,EAAEK,cAAe,IAAIE,EAAM,IAAIE,EACnC,MAAc,UAAVN,EACO,GACJA,I,iCAGJJ,GACP,GAAgB,MAAZA,EACA,MAAO,GAGP,IAAIC,EAAI,IAAIvO,KAAKsO,GACbY,EAAOX,EAAEQ,WACTI,EAAUZ,EAAEU,aAEhB,QADe,GAAKC,GAAMnB,OAAS,EAAI,IAAM,IAAMmB,EAAO,MAAQ,GAAKC,GAASpB,OAAS,EAAI,IAAM,IAAMoB,I,2CAK5Fb,GACjB,GAAKA,EAGA,CACD,IAAIC,EAAI,IAAIvO,KAAKsO,GACbE,EAAQD,EAAEE,WAAa,EACvBI,EAAMN,EAAEI,UAKZ,OAHaJ,EAAEK,cAAgB,MACzB,GAAKJ,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,MAC7C,GAAKK,GAAKd,OAAS,EAAI,IAAM,IAAMc,EATzC,MAAO,K,8CAcSP,GACpB,GAAKA,EAGA,CACD,IAAIC,EAAI,IAAIvO,KAAKsO,GACbE,EAAQD,EAAEE,WAAa,EACjBF,EAAEI,UAIZ,OAFaJ,EAAEK,cAAgB,MACzB,GAAKJ,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAR3C,MAAO,K,8BAYPY,GACJ,OAAIA,EAuBAA,GAHAA,GAHAA,GAHAA,GAHAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GAHAA,EAAMA,EAAIC,eAGAC,QAAQ,oHAAwC,MAChDA,QAAQ,4EAA4B,MACpCA,QAAQ,oCAAgB,MACxBA,QAAQ,oHAAwC,MAChDA,QAAQ,8EAA4B,MACpCA,QAAQ,sCAAgB,MACxBA,QAAQ,YAAQ,MAGhBA,QAAQ,kBAAmB,KAG3BA,QAAQ,SAAU,MAGlBA,QAAQ,OAAQ,KAGhBA,QAAQ,OAAQ,IAMnB,K,qCAUAhQ,EAAUiQ,EAAcC,EAAcC,GACjD,GAAInQ,EAASyO,OAAS,EAClB,IAAK,IAAID,EAAI,EAAGA,EAAIxO,EAASyO,OAAQD,IACjC,GAAIxO,EAASwO,IAAOyB,EAAe,IAAMC,EAAe,IAAMC,EAC1D,OAAO,EAGnB,OAAO,I,yCAEQnB,GACf,QAAgBoB,GAAZpB,GAAsC,KAAbA,GAA+B,MAAZA,EAC5C,MAAO,GAGP,IAAII,EAAS,GACTH,EAAI,IAAIvO,KAAKsO,GACbE,EAASD,EAAEE,WAAa,EAAK,GAAK,KAAOF,EAAEE,WAAa,GAAMF,EAAEE,WAAa,EAC7EI,EAAMN,EAAEI,UAAY,GAAK,IAAMJ,EAAEI,UAAYJ,EAAEI,UAC/CO,EAAOX,EAAEQ,WAAa,GAAK,IAAMR,EAAEQ,WAAaR,EAAEQ,WAClDC,EAAST,EAAEU,aAAe,GAAK,IAAMV,EAAEU,aAAeV,EAAEU,aAO5D,OANAP,EAASG,EAAM,MACT,GAAKL,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IAC/CD,EAAEK,cACFM,EAAO,IACPR,EAASA,EAAS,IAAMQ,EAAO,IAAMF,GAE3B,UAAVN,EACO,GACJA,I,2CAGMJ,GACjB,QAAgBoB,GAAZpB,GAAsC,KAAbA,GAA+B,MAAZA,EAC5C,MAAO,GAGP,IAAII,EAAS,GACTH,EAAI,IAAIvO,KAAKsO,GACbE,EAASD,EAAEE,WAAa,EAAK,GAAK,KAAOF,EAAEE,WAAa,GAAMF,EAAEE,WAAa,EAC7EI,EAAMN,EAAEI,UAAY,GAAK,IAAMJ,EAAEI,UAAYJ,EAAEI,UAC/CO,EAAOX,EAAEQ,WAAa,GAAK,IAAMR,EAAEQ,WAAaR,EAAEQ,WAClDC,EAAST,EAAEU,aAAe,GAAK,IAAMV,EAAEU,aAAeV,EAAEU,aAO5D,OANAP,EAASG,EAAM,MACT,GAAKL,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IAC/CD,EAAEK,cACFM,EAAO,IACPR,EAASA,EAAS,MAAQ,GAAKQ,GAAMnB,OAAS,EAAI,IAAM,IAAMmB,EAAO,MAAQ,GAAKF,GAAQjB,OAAS,EAAI,IAAM,IAAMiB,GAEzG,UAAVN,EACO,GACJA,I,sCAOCiB,GACZ,OAAOA,EAAYA,EAAUC,WAAWN,QAAQ,wBAAyB,KAAOK,I,wCAGlEA,GACd,YAAiBD,GAAbC,GAAuC,MAAbA,GAAkC,IAAbA,EAC3CA,EAAU5B,OAAS,EAEZ4B,EAAUL,QAAQK,EAAUE,MAAMF,EAAU5B,OAAS,EAAG4B,EAAU5B,QAAS,QAG3E,OAER,K,kCAEC+B,GAKR,OAJIA,GACAA,EAAInQ,MAAK,WACL,MAAO,GAAMoQ,KAAKC,YAEnBF,M,KAGTG,EAAc,IAAIlD,E,eClRlBmD,E,WACF,aAAe,oBACXpE,KAAKqE,YAAc,IAAIC,IACvBtE,KAAKuE,YAAc,IAAID,IACvBtE,KAAKwE,cAAgB,IAAIF,IACzBtE,KAAKyE,cAAgB,IAAIH,IACzBtE,KAAK0E,YAAa,IAAIJ,I,kDAEpBK,EAAKC,GAAM,IAAD,OAGZ,OAFAA,EAAMtG,OAAOC,OAAO,GAAIqG,EAAK,CAAED,QAExB,IAAIE,SAAQ,SAACC,GAChB,IAAOC,EAAe,EAAKR,YAAYS,WAAU,SAAApE,GAC7CmE,EAAcE,cACdH,EAAQlE,MAEZ,EAAKyD,YAAYa,KAAKN,Q,4BAGxBD,EAAKC,GACPA,EAAMtG,OAAOC,OAAO,GAAIqG,EAAK,CAAED,QAC/B3E,KAAK0E,YAAYQ,KAAKN,K,8BAElBD,EAAIC,GAAK,IAAD,OAEZ,OADAA,EAAMtG,OAAOC,OAAO,GAAIqG,EAAK,CAAED,QACxB,IAAIE,SAAQ,SAACC,GAChB,IAAOC,EAAe,EAAKN,cAAcO,WAAU,SAAApE,GAC/CmE,EAAcE,cACdH,EAAQlE,MAEZ,EAAK4D,cAAcU,KAAKN,U,KAM9BO,EAAmBC,wBAAc,CAAEC,IAAK,IAAIjB,ICtClD,yI,0CCAAlZ,EAAOC,QAAU,IAA0B,sC,yHCOrCma,E,kDACF,WAAYpE,GAAQ,IAAD,8BACf,cAAMA,IAsBVqE,oBAAsB,SAACC,GACnB,IAAIC,EAAI,EAAKtH,MAAMuH,kBAAkBzD,OACjCQ,EAAIwB,KAAK0B,KAAKF,EAAID,GAElBI,EAAS,EAAKzH,MAAMuH,kBAExB,OAAO,oCAAGG,MAAMC,KAAKD,MAAMpD,IAAI,SAACsD,EAAG/D,GAC/B,IAAIgE,EAAMJ,EAAO7B,MAAM,EAAGyB,GACtBS,EAAUD,EAAI/D,OAAS,EAG3B,OAFA2D,EAASA,EAAO7B,MAAMyB,GAEf,yBAAKU,UAAU,YAAYjH,IAAK+C,GAE/BgE,EAAIG,KAAI,SAACC,EAAMC,GACX,OACI,kBAAC,IAAMC,SAAP,CAAgBrH,IAAKoH,GACjB,yBAAKH,UAAU,sBACX,uBAAGA,UAAU,kCAAkCE,EAAKG,SACpD,yBAAKL,UAAU,qDACX,yBAAKA,UAAU,UACX,uBAAGA,UAAU,+BAA+BM,cAAY,SACxD,uBAAGC,KAAK,IAAIP,UAAU,mCAAmCE,EAAKM,iBAElE,yBAAKR,UAAU,UACX,uBAAGA,UAAU,qCAAqCM,cAAY,SAC9D,uBAAGC,KAAK,IAAIP,UAAU,mCAAmCE,EAAKO,eAA9D,uCAGR,kBAAC,IAAD,CAASC,GAAE,IAAOV,UAAU,yDAA5B,gBAIFG,IAAQJ,GAAY,yBAAKC,UAAU,aAAf,IAA4B,wCAvD3D,EAgEnBW,aAAe,SAACvD,GA0BZ,OAHAA,GAHAA,GAHAA,GAHAA,GAHAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GAHAA,EAAMA,EAAIC,eAGAC,QAAQ,oHAAwC,MAChDA,QAAQ,4EAA4B,MACpCA,QAAQ,oCAAgB,MACxBA,QAAQ,oHAAwC,MAChDA,QAAQ,8EAA4B,MACpCA,QAAQ,sCAAgB,MACxBA,QAAQ,YAAQ,MAGhBA,QAAQ,kBAAmB,KAG3BA,QAAQ,SAAU,MAGlBA,QAAQ,OAAQ,KAGhBA,QAAQ,OAAQ,KApF1B,EAAKrF,MAAQ,CACTuH,kBAAmB,IAJR,E,gEASf1F,KAAK8G,yB,6CAGe,IAAD,OACnBC,MAAM,GAAD,OAAIC,IAAJ,mCACAC,MAAK,SAAArG,GAAG,OAAIA,EAAIsG,UAChBD,MAAK,SAAChR,GAEH,EAAKkR,SAAS,CAAEzB,kBAAmBzP,EAAKA,KAAK8N,MAAM,EAAG,QAGzDqD,MAAMC,QAAQC,O,+BAwEb,IAAD,OACL,OACI,yBAAKpB,UAAU,eAEX,yBAAKA,UAAU,yEACX,kBAAC,IAAD,CAASU,GAAE,WAAcV,UAAU,mDAAnC,0BAGA,uBAAGA,UAAU,4BAA4BM,cAAY,UAExDxG,KAAK7B,MAAMuH,kBAAkBS,KAAI,SAACC,EAAMpE,GACrC,OACI,yBAAK/C,IAAK+C,EAAGkE,UAAU,gCACnB,uBAAGA,UAAU,kCAAkCE,EAAKG,SACpD,yBAAKL,UAAU,qDACX,yBAAKA,UAAU,UACX,uBAAGA,UAAU,+BAA+BM,cAAY,SACxD,kBAAC,IAAD,CAASI,GAAE,IAAOV,UAAU,mCACvBE,EAAKM,iBAId,yBAAKR,UAAU,0CACVE,EAAKO,eADV,sCAIJ,kBAAC,IAAD,CAASC,GAAE,4BAAuB,EAAKC,aAAaT,EAAKmB,QAA9C,YAAyDnB,EAAK9R,GAA9D,SAAyE4R,UAAU,yDAA9F,eAGA,yBAAKA,UAAU,aAAf,IAA4B,uC,GA1HnCsB,aAoINlC,O,yHCpITmC,E,kDACF,WAAYvG,GAAQ,IAAD,8BACf,cAAMA,IAED/C,MAAQ,CACTuJ,mBAAoB,GACpBC,WAAY,IALD,E,gEAUf3H,KAAK4H,0B,qCAEMpF,GACX,GAAgB,MAAZA,EACA,MAAO,GAGP,IAAIC,EAAI,IAAIvO,KAAKsO,GACbE,EAAQD,EAAEE,WAAa,EAK3B,OAJUF,EAAEI,UACO,MACb,GAAKH,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IAC/CD,EAAEK,gB,8CAIW,IAAD,OACpBiE,MAAM,GAAD,OAAIC,IAAJ,8CACAC,MAAK,SAAArG,GAAG,OAAIA,EAAIsG,UAChBD,MAAK,SAAChR,GACH,EAAKkR,SAAS,CAAEQ,WAAY1R,EAAKA,UAEpCmR,MAAMC,QAAQC,O,+BAEb,IAAD,OACL,OACI,6BACI,yBAAKpB,UAAU,yEACX,kBAAC,IAAD,CAASU,GAAE,0BAA6BV,UAAU,mDAAlD,8CAIA,uBAAGA,UAAU,uCAAuCM,cAAY,UAEnExG,KAAK7B,MAAMwJ,WAAWxB,KAAI,SAACC,EAAMpE,GAC9B,OACI,yBAAKkE,UAAU,8BAA8BjH,IAAK+C,GAC9C,6BACI,kBAAC,IAAD,CAAS4E,GAAE,kCAA6BR,EAAK9R,IAAM4R,UAAU,8CAC7D,yBAAKA,UAAU,YACX,yBAAKA,UAAU,UACP,uBAAGA,UAAU,gCAAgCM,cAAY,SADjE,SAEQ,uBAAGN,UAAU,0CAA0CE,EAAKyB,kBAGhE,uBAAG3B,UAAU,yCAAyCE,EAAK0B,SAGnE,yBAAK5B,UAAU,YACP,uBAAGA,UAAU,wCAAwC,EAAK6B,eAAe3B,EAAK4B,gBAI3F,iCAKX,6BACA,kBAAC,IAAD,CAASpB,GAAE,0BAA6BV,UAAU,8FAAlD,mBACmB,uBAAGA,UAAU,mBAAmBM,cAAY,e,GAvEpDgB,aAiFZC,O,2IChFTQ,E,kDACF,WAAY/G,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACT+J,mBAAoB,GACpBP,WAAY,IAJD,E,gEASf3H,KAAKmI,0B,8BAED7E,GACJ,OAAIA,EAuBAA,GAHAA,GAHAA,GAHAA,GAHAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GAHAA,EAAMA,EAAIC,eAGAC,QAAQ,oHAAwC,MAChDA,QAAQ,4EAA4B,MACpCA,QAAQ,oCAAgB,MACxBA,QAAQ,oHAAwC,MAChDA,QAAQ,8EAA4B,MACpCA,QAAQ,sCAAgB,MACxBA,QAAQ,YAAQ,MAGhBA,QAAQ,kBAAmB,KAG3BA,QAAQ,SAAU,MAGlBA,QAAQ,OAAQ,KAGhBA,QAAQ,OAAQ,IAMnB,K,8CAGU,IAAD,OACpBuD,MAAM,GAAD,OAAIC,IAAJ,gEACAC,MAAK,SAAArG,GAAG,OAAIA,EAAIsG,UAChBD,MAAK,SAAChR,GACc,MAAbA,EAAKA,MACL,EAAKkR,SAAS,CAAEe,mBAAoBjS,EAAKA,UAGhDmR,MAAMC,QAAQC,O,+BAKb,IAAD,OACL,OACI,6BACI,yBAAKpB,UAAU,yEACX,kBAAC,IAAD,CAASU,GAAE,oBAAuBV,UAAU,mDAA5C,kDAGA,uBAAGA,UAAU,uCAAuCM,cAAY,UAInExG,KAAK7B,MAAM+J,mBAAsBlI,KAAK7B,MAAM+J,mBAAmB/B,KAAI,SAACC,EAAMpE,GACvE,OACI,yBAAK/C,IAAK+C,EAAGkE,UAAU,gCACnB,yBAAKA,UAAU,iBACX,kBAAC,IAAD,CAASU,GAAE,oBAAeR,EAAKvM,WAApB,YAAkC,EAAKuO,QAAQhC,EAAKiC,YAApD,SAAwEnC,UAAU,iDAEzF,yBAAKA,UAAU,qCACa,MAAnBE,EAAKkC,WACN,yBAAKpC,UAAU,8BAA8BqC,IAAG,UAAKvB,KAAL,OAAeZ,EAAKkC,YAAcE,IAAI,KAEtF,yBAAKtC,UAAU,QAAQuC,MAAO,CAAEC,aAAc,OAASH,IAAKI,IAAOH,IAAI,MAG/E,yBAAKtC,UAAU,qCACX,uBAAGA,UAAU,yDAAb,IAAuEE,EAAKwC,aAE5E,uBAAG1C,UAAU,iDAAiDE,EAAKiC,aAEvE,yBAAKnC,UAAU,mBACX,0BAAMA,UAAU,kCAAhB,IAAkD,uBAAGA,UAAU,YAAYM,cAAY,SAAUJ,EAAKyC,WAAtG,0BASpB,GACJ,6BACA,kBAAC,IAAD,CAASjC,GAAE,oBAAuBV,UAAU,8FAA5C,mBACmB,uBAAGA,UAAU,mBAAmBM,cAAY,UAE/D,yBAAKN,UAAU,mB,GAtGFsB,aA4GdS,O,kFCjHFa,EACT,WAAYC,GAAM,oBACd/I,KAAKgJ,MAAQD,EAAIC,MACjBhJ,KAAKqC,QAAU0G,EAAI1G,QACnBrC,KAAK5G,OAAS2P,EAAI3P,OAClB4G,KAAKiJ,WAAaF,EAAIE,WACtBjJ,KAAKmB,IAAM4H,EAAI5H,IACfnB,KAAKkJ,QAAUH,EAAIG,SAGdC,EAAa,SAACC,GACvB,OAAO,IAAIC,KAAW,SAAAC,GAClBC,IAAML,QAAQE,GAAQnC,MAAK,SAAAuC,GACvBF,EAAWpE,KAAKsE,EAASvT,MACzBqT,EAAWG,cACZrC,OAAM,SAACsC,GAEN,IACIV,EAAQ,KAERA,EAHMU,EAAIF,SAGF,IAAIV,EAAkB,CAC1BE,MAAOU,EAAIF,SAASvT,KACpBoM,QAASqH,EAAIF,SAASnH,QACtBjJ,OAAQsQ,EAAIF,SAASpQ,OACrB6P,WAAYS,EAAIF,SAASP,WACzB9H,IAAKuI,EAAIF,SAASJ,OAAOjI,IACzB+H,QAASQ,EAAIN,SAGT,CAAEJ,OAAO,EAAMW,QAASD,EAAIC,SAExCL,EAAWN,MAAMA,U,2FCxBRY,E,WACjB,aAA2B,IAAfC,EAAc,uDAAJ,GAAI,oBACtB7J,KAAK8J,OAASD,EAAQC,OACtB9J,KAAK+J,kBAAoBF,EAAQE,kBACjC/J,KAAKgK,aAAe,IAAIC,IAAgB,MACxCjK,KAAKkK,mBAAoB,EACzBX,IAAMY,SAASC,QAAUpK,KAAK8J,OAC9B,IAAMO,EAAOrK,KACbT,IAAMyF,WAAU,WACZqF,EAAKnM,MAAQqB,IAAM+K,WAAWpM,S,oDAI9BkL,GAAS,IAAD,OACZ,OAAOD,EAAWnJ,KAAKuK,aAAanB,EAAQpJ,KAAK9B,QAAQwC,KAAK8J,aAAW,SAAAxB,GACrE,KAAIA,aAAiBF,GAajB,OAAO2B,YAAWzB,GAZlB,OAAQA,EAAM5P,QACV,KAAK,IACD,OAAO,EAAKsR,eAAe1B,GAC/B,KAAK,IACD,OAAO,EAAK2B,eAAevB,EAAQJ,GACvC,KAAK,IACD,OAAO,EAAK4B,eAAe5B,GAC/B,QACI,OAAOyB,YAAWzB,U,0BAQlC7H,EAAKiI,GACL,OAAOpJ,KAAKkJ,QACR5K,OAAOC,OACH,GACA,CACIsM,OAAQ,MACR1J,IAAKA,GAETiI,M,6BAILjI,EAAKiI,GACR,OAAOpJ,KAAKkJ,QACR5K,OAAOC,OACH,GACA,CACIsM,OAAQ,SACR1J,IAAKA,GAETiI,M,2BAIPjI,EAAKiI,GACN,OAAOpJ,KAAKkJ,QACR5K,OAAOC,OACH,GACA,CACIsM,OAAQ,OACR1J,IAAKA,GAETiI,M,8BAIJjI,EAAKiI,GACT,OAAOpJ,KAAKkJ,QACR5K,OAAOC,OACH,GACA,CACIsM,OAAQ,UACR1J,IAAKA,GAETiI,M,2BAGPjI,EAAKlL,EAAMmT,GACZ,OAAOpJ,KAAKkJ,QACR5K,OAAOC,OACH,GACA,CACIsM,OAAQ,OACR1J,IAAKA,EACLlL,KAAMA,GAEVmT,M,0BAGRjI,EAAKlL,EAAMmT,GACX,OAAOpJ,KAAKkJ,QACR5K,OAAOC,OACH,GACA,CACIsM,OAAQ,MACR1J,IAAKA,EACLlL,KAAMA,GAEVmT,M,4BAINjI,EAAKlL,EAAMmT,GACb,OAAOpJ,KAAKkJ,QACR5K,OAAOC,OACH,GACA,CACIsM,OAAQ,QACR1J,IAAKA,EACLlL,KAAMA,GAEVmT,M,6BAGLA,GACH,OAAOG,IAAMuB,OAAO1B,K,mCAEXA,EAAQ5K,EAAOuM,GACxB,IAAI7X,EAAe,GACfsL,IACAtL,EAAY,iBAAasL,EAAMtL,eAGnCkW,EAAO/G,QAAU+G,EAAO/G,SAAW,GACnC,IAAMA,EAAU+G,EAAO/G,QAKvB,OAJIA,EAAQ2I,gBAAkBD,IAC1B7X,EAAemP,EAAQ2I,eAE3B5B,EAAO/G,QAAQ2I,cAAgB9X,EACxBkW,I,qCAEIJ,GACX,OAAOyB,YAAWzB,K,qCAEPA,GACX,OAAOyB,YAAWzB,K,qCAEPI,EAAQJ,GAAQ,IAAD,OAC1B,OAAKhJ,KAAKkK,kBA4BClK,KAAKgK,aAAatJ,KACrB3M,aAAO,SAAAyK,GAAK,OAAa,MAATA,KAChByM,YAAK,GACLC,aAAU,SAAA1M,GACN,OAAO2K,EAAW,EAAKoB,aAAanB,EAAQ5K,GAAO,SA/B3DwB,KAAKkK,mBAAoB,EAGzBlK,KAAKgK,aAAa9E,KAAK,MAChBlF,KAAKmL,eAAezK,KACvB8J,aAAW,SAAAd,GAMP,OAJIA,GACA,EAAK0B,aAGFX,YAAWzB,MAEtBkC,aAAU,SAACG,GACP,OAAIA,GACA,EAAKrB,aAAa9E,KAAKmG,GAChBlC,EAAW,EAAKoB,aAAanB,EAAQiC,GAAU,MAI1D,EAAKD,aACEX,YAAWzB,OAEtBsC,aAAS,WACL,EAAKpB,mBAAoB,S,qCAYrC,GAAIlK,KAAK9B,OAAS8B,KAAK9B,MAAM9K,cAAe,CACxC,IAAM8M,EAAO,CACTC,WAAY,gBACZ/M,cAAe4M,KAAK9B,MAAM9K,cAC1BiN,UAAWC,IAAOD,UAClBE,cAAeD,IAAOC,eAE1B,OAAOP,KAAKS,KAAK,iBAAkBP,GAAMQ,KAAKyF,aAAI,SAAAvF,GAC9C,IAAMyK,EAAWzK,EAEjB,OADArB,IAAMU,SAASe,IAAYnB,SAASwL,IAC7BA,MAIX,OAAO,IAAIhC,KAAW,SAAAkC,GAClBA,EAAWrG,MAAK,Q,mCAMxB3F,IAAMU,SAASe,IAAYlB,mB,qBC/M7B0L,EAAW,SAACC,GAA0D,IAAD,yDAAvB,CAAEC,SAAU,MAAW,IAA3CA,gBAA2C,MAAhC,KAAgC,EACjEC,EAAgBC,eAAKH,GAE3B,OAAO,SAAAvK,GAAK,OACR,kBAAC,WAAD,CAAUwK,SAAUA,GAChB,kBAACC,EAAkBzK,MCLzB2K,EAAa,SAACC,EAAUC,GAC1B,IAAMC,EAAS,GAET3N,EAAO,CAAC0N,EAAUE,eAAgB,EAUxC,OARAC,IAAMC,SAASC,QAAQN,GAAU,SAAAO,GAC7B,IAAMC,EACFD,GAASA,EAAMhO,OAASgO,EAAMhO,KAAK4N,aAAeI,EAAMhO,KAAKkO,MAC7DlO,EAAKmO,SAASF,IACdN,EAAOS,KAAKJ,MAIbL,EAAO,ICdlB,IAAMjE,EAAiB,SAACvF,GACpB,QAAgBoB,GAAZpB,GAAsC,KAAbA,GAA+B,MAAZA,EACxC,MAAO,GAGP,IAAII,EACAH,EAAI,IAAIvO,KAAKsO,GACbE,EAAQD,EAAEE,WAAa,EAK3B,MAAc,WAHbC,EADSH,EAAEI,UACI,MACV,GAAKH,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IAC/CD,EAAEK,eAEK,GACJF,GCdnB,wIASO,IAAMpC,EAAO,IAAIoJ,EAAW,CAC/BE,OAAQ9C,IACR+C,kBAAmB2C,O,0GCNjBC,E,gLAGE,QAAS3M,KAAKkB,MAAMhD,MAAMhL,e,+BAEpB,IAAD,SACqC8M,KAAKkB,MAA5BsG,EADd,EACGuE,UAAyBa,EAD5B,6BAgCL,OACI,kBAAC,IAAD,iBAAWA,EAAX,CAAiBC,OA/BD,SAAA3L,GAChB,GAAI,EAAKA,MAAM4L,IAAK,CAChB,GAAI,EAAKC,mBAAqB,EAAK7L,MAAMhD,MAAM8O,SAASR,SAAS,EAAKtL,MAAM4L,KACxE,OACI,kBAACtF,EAActG,GAInB,IAAM0F,EAAK,CACPqG,SAAU,IACV9O,MAAO,CAAE2H,KAAM5E,EAAMgM,WAEzB,OACI,kBAAC,IAAD,CAAUtG,GAAIA,IAI1B,GAAI,EAAKmG,kBACL,OACI,kBAACvF,EAActG,GAGvB,IAAM0F,EAAK,CACPqG,SAAU,aACV9O,MAAO,CAAE2H,KAAM5E,EAAMgM,WAEzB,OACI,kBAAC,IAAD,CAAUtG,GAAIA,Y,GAlCLsF,IAAM1E,WAqDzB2F,EAAsBC,aALJ,SAACjP,GACrB,MAAO,CACHD,MAAOC,EAAMD,SAGgC,GAAzBkP,CAA6BT,GCxDzD,SAASU,EAAmBC,GACxB,OACI,kBAAC,IAAD,CACIC,KAAMD,EAAMC,KACZV,OAAQ,SAAA3L,GAAK,OAET,kBAACoM,EAAMvB,UAAP,iBAAqB7K,EAArB,CAA4BsM,OAAQF,EAAME,a,aCNpDC,E,uKACQ,IACEC,EAAY1N,KAAKkB,MAAjBwM,QACR,OACI,kBAAC,IAAMpH,SAAP,KAEQoH,GACA,yBAAKxH,UAAU,gBACX,kBAACyH,EAAA,EAAD,CAASC,UAAU,SAASC,KAAK,UAC7B,0BAAM3H,UAAU,WAAhB,qB,GATGgG,IAAM1E,W,SCA/BsG,E,uKACQ,IACEJ,EAAY1N,KAAKkB,MAAjBwM,QACR,OACI,kBAAC,IAAMpH,SAAP,KAEQoH,GACA,kBAACK,EAAA,EAAD,CAAO7H,UAAU,eACb8H,KAAK,KACLC,KAAMP,EACNQ,SAAS,UACT,kBAACH,EAAA,EAAMI,KAAP,KACI,yBAAKjI,UAAU,gBACX,kBAACyH,EAAA,EAAD,CAASC,UAAU,SAAS1H,UAAU,eAAe2H,KAAK,UACtD,0BAAM3H,UAAU,WAAhB,uB,GAdNgG,IAAM1E,WCC9B4G,EAAclC,IAAM9G,gBAEpBiJ,E,uKAIQ,IAAD,EAC2BrO,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACkN,EAAYE,SAAb,MACK,kBACG,2CAASpI,UAAW,CAAC,iBAAkBA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,iB,GAT9EtE,aAkBfgH,E,uKAIQ,IAAD,EAC2BxO,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACkN,EAAYE,SAAb,MACK,kBACG,2CAASpI,UAAW,CAAC,UAAWA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,iB,GATtEtE,aAiBhBiH,E,uKAUE,OACI,kBAACL,EAAYM,SAAa1O,KAAKkB,MAC1BlB,KAAKkB,MAAM4K,c,GAZAtE,aAiB5BiH,EAAcJ,OAASA,EACvBI,EAAcD,QAAUA,E,6FCnDMhH,Y,eCKxBmH,EAAkBzC,IAAM9G,gBAExBwJ,E,uKAIQ,IAAD,EAC2B5O,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACyN,EAAgBL,SAAjB,MACK,kBACG,uCAAKpI,UAAW,CAAC,WAAYA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,iB,GATtEtE,aAkBbqH,E,kDAEF,WAAY3N,GAAQ,IAAD,8BACf,cAAMA,IACDhD,MAAQqB,IAAM+K,WAAWpM,MAFf,E,qDAQT,IAAD,EAC2B8B,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACyN,EAAgBL,SAAjB,MAEK,kBAEG,uCAAKpI,UAAW,CAAC,WAAYA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,SAMjE,kBAAC7D,EAAA,EAAD,MACA,kBAAC3C,EAAA,EAAD,MACA,kBAACmC,EAAA,EAAD,c,GAzBJD,aAgCdsH,E,uKAWE,OACI,kBAACH,EAAgBD,SAAa1O,KAAKkB,MAC/B,yBAAKgF,UAAU,aACX,yBAAKA,UAAU,OACVlG,KAAKkB,MAAM4K,gB,GAfbtE,aAsBvBsH,EAASF,KAAOA,EAChBE,EAASD,MAAQA,EACjB,IAAME,EAAoB3B,YAAQ,KAAM,CAAEvN,SAAUmB,IAAYnB,UAAtCuN,CAAkD0B,G,0BC7EtEE,E,kDAMF,WAAY9N,GAAQ,IAAD,8BACf,cAAMA,IACDhD,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAKC,MAAQ,CACTuP,SAAS,EACTuB,QAAQ,EACRrb,KAAM,CACFlJ,KAAM,EACN0W,OAAQ,KACRzW,UAAW,EACX0W,UAAU,EACVzW,MAAO,GAEXqL,KAAM,IAbK,E,gEAiBf+J,KAAKkP,c,kCAEI,IAAD,OACFtb,EAASoM,KAAK7B,MAAdvK,KACNub,IAAgBC,gBAAgBxb,GAAMoR,WAAU,SAAApE,GAC5ChN,EAAKhJ,MAAQgW,EAAIyO,UACjB,EAAKlI,SAAS,CAAElR,KAAM2K,EAAI3K,KAAMgZ,QAAQ,OAEzC,SAAAvF,GACCrC,QAAQC,IAAIoC,GACZ,EAAKvC,SAAS,CAAE8H,QAAQ,S,+BAItB,IAAD,SACwBjP,KAAK7B,MAA5BlI,EADD,EACCA,KAAMgZ,EADP,EACOA,OAAQrb,EADf,EACeA,KACpB,OAAKqb,EAkDO,kBAACtB,EAAA,EAAD,CAASC,UAAU,SAASC,KAAK,UACrC,0BAAM3H,UAAU,WAAhB,eAjDEjQ,GAAQA,EAAKgM,OACX,yBAAKiE,UAAU,iCACX,yBAAKA,UAAU,oEACX,uBAAGA,UAAU,mDAAb,qCACA,uBAAGA,UAAU,iCAAiCM,cAAY,UAE9D,yBAAKN,UAAU,gCAEPjQ,EAAKkQ,KAAI,SAACC,EAAMkJ,GACZ,OACI,yBAAKpJ,UAAU,0BAA0BjH,IAAKqQ,GAC1C,yBAAKpJ,UAAU,aACX,yBAAKA,UAAU,iBAAiBuC,MAAO,CAAE8G,MAAO,OAAQC,OAAQ,QAAUjH,IACtE,EAAKrK,MAAMzK,aAAe2S,EAAKqJ,aAAgBrJ,EAAKsJ,UAAYtJ,EAAKsJ,SAASC,WAAhC,UAAiD3I,KAAjD,OAA2DZ,EAAKsJ,SAASC,YAAzE,UAA2FhH,KAClIvC,EAAKwJ,WAAaxJ,EAAKwJ,UAAUD,WAAlC,UAAmD3I,KAAnD,OAA6DZ,EAAKwJ,UAAUD,YAA5E,UAA8FhH,KAEtGH,IAAI,MAEV,yBAAKtC,UAAU,cAAcuC,MAAO,CAAEoH,UAAW,KAEzC,EAAK3R,MAAMzK,aAAe2S,EAAKqJ,aAC3B,kBAAC,IAAMnJ,SAAP,KACI,kBAAC,IAAD,CAAMM,GAAE,mBAAcR,EAAKsJ,SAAS7Z,aAAeqQ,UAAU,oDAAoDE,EAAKsJ,SAASxW,OAC/H,kBAAC,IAAD,CAAM0N,GAAE,gBAAWR,EAAKsJ,SAAS7Z,aAAeqQ,UAAU,6CAA4C,uBAAGA,UAAU,wBAAnH,kBAGJ,kBAAC,IAAMI,SAAP,KACI,kBAAC,IAAD,CAAMM,GAAE,mBAAcR,EAAKwJ,UAAU/Z,aAAeqQ,UAAU,oDAAoDE,EAAKwJ,UAAU1W,OACjI,kBAAC,IAAD,CAAM0N,GAAE,gBAAWR,EAAKwJ,UAAU/Z,aAAeqQ,UAAU,6CAA4C,uBAAGA,UAAU,wBAApH,wBAYhCtS,EAAKhJ,MAAQgJ,EAAKjJ,UAAY,yBAAKub,UAAU,gCACzC,kBAAC,IAAD,CAAMU,GAAI,WAAYV,UAAU,oDAAhC,eAA4F,uBAAGA,UAAU,mBAAmBM,cAAY,WACnI,IA1CI,O,GAzCLgB,aAA9BwH,EAKKc,YAAcC,IA4FVf,Q,SChGTgB,E,kDAMF,WAAY9O,GAAQ,IAAD,8BACf,cAAMA,IACDhD,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAKC,MAAQ,CACTuP,SAAS,EACTuB,QAAQ,EACRrb,KAAM,CACFlJ,KAAM,EACN0W,OAAQ,KACRzW,UAAW,EACX0W,UAAU,EACVzW,MAAO,GAEXqL,KAAM,IAbK,E,gEAiBf+J,KAAKkP,c,kCAEI,IAAD,OACR,GAA4B,OAAxBlP,KAAK9B,MAAM8O,SAAmB,CAAC,IACzBpZ,EAASoM,KAAK7B,MAAdvK,KACNub,IAAgBc,cAAcrc,GAAMoR,WAAU,SAAApE,GAC1ChN,EAAKhJ,MAAQgW,EAAIqB,OACjB,EAAKkF,SAAS,CAAElR,KAAM2K,EAAKqO,QAAQ,OAEpC,SAAAvF,GACCrC,QAAQC,IAAIoC,GACZ,EAAKvC,SAAS,CAAE8H,QAAQ,YAI5BjP,KAAKmH,SAAS,CAAE8H,QAAQ,M,6BAGzB3a,GAAK,IAAD,OACP,GAA6B,MAAzB0L,KAAK9B,MAAMzK,YAAsBuM,KAAK9B,MAAMzK,WAAa,EAAG,CAAC,IACvDwC,EAAS+J,KAAK7B,MAAdlI,KACFqZ,EAAQY,oBAAUja,GAAM,SAAUka,GAAK,OAAOA,EAAE7b,KAAOA,MAC5C,IAAXgb,IACArZ,EAAKqZ,GAAOc,UAAW,EACvBpQ,KAAKmH,SAAS,CAAElR,KAAMA,EAAMyX,SAAS,IACrCyB,IAAgBkB,aAAa/b,GAAI0Q,WAAU,eAGvC,SAAC0E,GACG,EAAK4G,QAAQjL,IAAIkL,MAAM7G,EAAIV,gBAKvChJ,KAAKkB,MAAMsP,QAAQ/D,KAAK,CAAEQ,SAAU,iB,+BAIlC,IAAD,SACwBjN,KAAK7B,MAA5BlI,EADD,EACCA,KAAMgZ,EADP,EACOA,OAAQrb,EADf,EACeA,KACpB,OAAKqb,EA0CO,kBAACtB,EAAA,EAAD,CAASC,UAAU,SAASC,KAAK,UACrC,0BAAM3H,UAAU,WAAhB,eAzCEjQ,GAAQA,EAAKgM,OACX,yBAAKiE,UAAU,iCACX,yBAAKA,UAAU,oEACX,uBAAGA,UAAU,mDAAb,qCACA,uBAAGA,UAAU,iCAAiCM,cAAY,UAE9D,yBAAKN,UAAU,gCAEPjQ,EAAKkQ,KAAI,SAACC,EAAMkJ,GACZ,OACI,yBAAKpJ,UAAU,0BAA0BjH,IAAKqQ,GAC1C,yBAAKpJ,UAAU,aACX,yBAAKA,UAAU,iBAAiBuC,MAAO,CAAE8G,MAAO,OAAQC,OAAQ,QAAUjH,IACrEnC,EAAKuJ,WAAN,UAAuB3I,KAAvB,OAAiCZ,EAAKuJ,YAAtC,UAAwDhH,KAC1DH,IAAI,MAEV,yBAAKtC,UAAU,qBAAqBuC,MAAO,CAAEoH,UAAW,KAEhD,kBAAC,IAAD,CAAM3W,MAAOkN,EAAKlN,MAAO0N,GAAE,mBAAcR,EAAKvQ,aAAeqQ,UAAU,oDAAoDE,EAAKlN,QAI7G,IAAlBkN,EAAKgK,SAAsB,4BAAQK,QAAS,kBAAM,EAAKC,OAAOtK,EAAK9R,KAAK4R,UAAU,qDAAoD,uBAAGA,UAAU,yBAAxH,6BAA4K,SAShOtS,EAAKhJ,MAAQgJ,EAAKjJ,UAAY,yBAAKub,UAAU,gCACzC,kBAAC,IAAD,CAAMU,GAAI,WAAYV,UAAU,oDAAhC,eAA4F,uBAAGA,UAAU,mBAAmBM,cAAY,WACnI,IAjCI,O,GAjEPgB,aAA5BwI,EAKKF,YAAcC,IA4GVC,QCjHTW,E,kDAMF,WAAYzP,GAAQ,IAAD,8BACf,cAAMA,IACDhD,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAKC,MAAQ,CACTuP,SAAS,EACTuB,QAAQ,EACRrb,KAAM,CACFlJ,KAAM,EACN0W,OAAQ,KACRzW,UAAW,EACX0W,UAAU,EACVzW,MAAO,GAEXqL,KAAM,IAbK,E,gEAiBf+J,KAAKkP,c,kCAEI,IAAD,OACFtb,EAASoM,KAAK7B,MAAdvK,KACNub,IAAgByB,gBAAgBhd,GAAMoR,WAAU,SAAApE,GAC5ChN,EAAKhJ,MAAQgW,EAAIqB,OACjB,EAAKkF,SAAS,CAAElR,KAAM2K,EAAKqO,QAAQ,OAEpC,SAAAvF,GACCrC,QAAQC,IAAIoC,GACZ,EAAKvC,SAAS,CAAE8H,QAAQ,S,iCAGrB3a,GACP,GAA6B,MAAzB0L,KAAK9B,MAAMzK,YAAsBuM,KAAK9B,MAAMzK,WAAa,EAAG,CAAC,IACvDwC,EAAS+J,KAAK7B,MAAdlI,KACFqZ,EAAQY,oBAAUja,GAAM,SAAUka,GAAK,OAAOA,EAAE7b,KAAOA,MAC5C,IAAXgb,IACArZ,EAAKqZ,GAAOuB,SAAU,EACtB7Q,KAAKmH,SAAS,CAAElR,KAAMA,EAAMyX,SAAS,IACrCyB,IAAgB2B,kBAAkBxc,GAAI0Q,WAAU,eAG5C,SAAC0E,GACGrC,QAAQC,IAAIoC,EAAIV,gBAK5BhJ,KAAKkB,MAAMsP,QAAQ/D,KAAK,CAAEQ,SAAU,iB,6BAIrC3Y,GACH,GAA6B,MAAzB0L,KAAK9B,MAAMzK,YAAsBuM,KAAK9B,MAAMzK,WAAa,EAAG,CAAC,IACvDwC,EAAS+J,KAAK7B,MAAdlI,KACFqZ,EAAQY,oBAAUja,GAAM,SAAUka,GAAK,OAAOA,EAAE7b,KAAOA,MAC5C,IAAXgb,IACArZ,EAAKqZ,GAAOuB,SAAU,EACtB7Q,KAAKmH,SAAS,CAAElR,KAAMA,EAAMyX,SAAS,IACrCyB,IAAgB4B,gBAAgBzc,GAAI0Q,WAAU,eAG1C,SAAC0E,GACGrC,QAAQC,IAAIoC,EAAIV,gBAK5BhJ,KAAKkB,MAAMsP,QAAQ/D,KAAK,CAAEQ,SAAU,iB,+BAIlC,IAAD,SACwBjN,KAAK7B,MAA5BlI,EADD,EACCA,KAAMgZ,EADP,EACOA,OAAQrb,EADf,EACeA,KACpB,OAAKqb,EA6DO,kBAACtB,EAAA,EAAD,CAASC,UAAU,SAASC,KAAK,UACrC,0BAAM3H,UAAU,WAAhB,eA5DEjQ,GAAQA,EAAKgM,OACX,yBAAKiE,UAAU,iCACX,yBAAKA,UAAU,oEACX,uBAAGA,UAAU,mDAAb,uCACA,uBAAGA,UAAU,iCAAiCM,cAAY,UAE9D,yBAAKN,UAAU,gCAEPjQ,EAAKkQ,KAAI,SAACC,EAAMkJ,GACZ,OACI,yBAAKpJ,UAAU,0BAA0BjH,IAAKqQ,GAC1C,yBAAKpJ,UAAU,aACX,yBAAKA,UAAU,iBAAiBuC,MAAO,CAAE8G,MAAO,OAAQC,OAAQ,QAAUjH,IACrEnC,EAAKuJ,WAAN,UAAuB3I,KAAvB,OAAiCZ,EAAKuJ,YAAtC,UAAwDhH,KAC1DH,IAAI,MAEV,yBAAKtC,UAAU,qBAAqBuC,MAAO,CAAEoH,UAAW,KAEhD,EAAK3R,MAAMzK,aAAe2S,EAAKqJ,aAC3B,kBAAC,IAAMnJ,SAAP,KACI,kBAAC,IAAD,CAAMM,GAAE,mBAAcR,EAAKsJ,SAAS7Z,aAAeqQ,UAAU,oDAAoDE,EAAKsJ,SAASxW,QAEzG,IAAjBkN,EAAKyK,QACF,yBAAK3K,UAAU,kBACX,4BAAQuK,QAAS,kBAAM,EAAKO,WAAW5K,EAAK9R,KAAK4R,UAAU,qDAA3D,oBACA,4BAAQuK,QAAS,kBAAM,EAAKQ,OAAO7K,EAAK9R,KAAK4R,UAAU,0DAAvD,WAEF,IAKd,kBAAC,IAAMI,SAAP,KACI,kBAAC,IAAD,CAAMM,GAAE,mBAAcR,EAAKwJ,UAAU/Z,aAAeqQ,UAAU,oDAAoDE,EAAKwJ,UAAU1W,QAE3G,IAAjBkN,EAAKyK,QACF,yBAAK3K,UAAU,kBACX,4BAAQuK,QAAS,kBAAM,EAAKO,WAAW5K,EAAK9R,KAAK4R,UAAU,qDAA3D,oBACA,4BAAQuK,QAAS,kBAAM,EAAKQ,OAAO7K,EAAK9R,KAAK4R,UAAU,0DAAvD,WAEF,UAW1CtS,EAAKhJ,MAAQgJ,EAAKjJ,UAAY,yBAAKub,UAAU,gCACzC,kBAAC,IAAD,CAAMU,GAAI,WAAYV,UAAU,oDAAhC,eAA4F,uBAAGA,UAAU,mBAAmBM,cAAY,WACnI,IArDI,O,GAhFLgB,aAA9BmJ,EAKKb,YAAcC,IA8IVY,QCpJTO,EAAkBhF,IAAM9G,gBAExBwJ,E,uKAIQ,IAAD,EAC2B5O,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACgQ,EAAgB5C,SAAjB,MACK,kBACG,uCAAKpI,UAAW,CAAC,WAAYA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,iB,GATtEtE,aAkBbqH,E,uKAIQ,IAAD,EAC2B7O,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACgQ,EAAgB5C,SAAjB,MACK,kBACG,uCAAKpI,UAAW,CAAC,WAAYA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,SACjE,6BAII,kBAAC,EAAD,MAEA,kBAAC,EAAD,MAEA,kBAAC,EAAD,MASA,kBAAC7D,EAAA,EAAD,MACA,kBAAC3C,EAAA,EAAD,MACA,kBAACmC,EAAA,EAAD,e,GA7BRD,aAuCd2J,E,uKAUE,OACI,kBAACD,EAAgBxC,SAAa1O,KAAKkB,MAC/B,yBAAKgF,UAAU,qCACX,yBAAKA,UAAU,aACX,yBAAKA,UAAU,OACVlG,KAAKkB,MAAM4K,iB,GAfRtE,aAuBhC2J,EAAkBvC,KAAOA,EACzBuC,EAAkBtC,MAAQA,ECzF1B,IAAMuC,EAAkBlF,IAAM9G,gBAExBwJ,E,uKAIQ,IAAD,EAC2B5O,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACkQ,EAAgB9C,SAAjB,MACK,kBACG,uCAAKpI,UAAW,CAAC,WAAYA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,iB,GATtEtE,aAkBbqH,E,uKAIQ,IAAD,EAC2B7O,KAAKkB,MAA7BgF,EADH,EACGA,UAAchF,EADjB,6BAEL,OACI,kBAACkQ,EAAgB9C,SAAjB,MACK,kBACG,uCAAKpI,UAAW,CAAC,WAAYA,GAAWqI,KAAK,MAAUrN,GAAQA,EAAM4K,SACjE,sC,GAVJtE,aAsBd6J,E,uKAUE,OACI,kBAACD,EAAgB1C,SAAa1O,KAAKkB,MAC/B,yBAAKgF,UAAU,qCACX,yBAAKA,UAAU,aACX,yBAAKA,UAAU,OACVlG,KAAKkB,MAAM4K,iB,GAfRtE,aAuBhC6J,EAAkBzC,KAAOA,EACzByC,EAAkBxC,MAAQA,E,mFClEpByC,G,kDASF,WAAYpQ,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACTzT,KAAMwW,EAAMxW,MAAQD,KAAmBC,KACvCC,UAAWuW,EAAMvW,WAAaF,KAAmBE,UACjDC,MAAOsW,EAAMtW,OAASH,KAAmBG,MACzCC,gBAAiBJ,KAAmBI,gBACpC0mB,UAAWrQ,GAEf,EAAKsQ,gBAAkBtF,IAAMuF,YATd,E,6DAuCF9mB,GAAY,IAAD,OACxBqV,KAAKmH,SAAS,CAAExc,UAAW+mB,OAAO/mB,KAAc,WAC5C,EAAKuW,MAAMyQ,aAAa,CACpBC,MAAO,iBAAkB3b,KAAM,CAC3BtL,UAAW,EAAKwT,MAAMxT,kB,mCAKzBD,IAGI,KAATA,GAFW,aAEWmnB,KAAKnnB,MACd,KAATA,GAEOA,GAAQsV,KAAK8R,iBADpB9R,KAAKmH,SAAS,CAAEzc,KAAMA,M,gCAOxBqnB,GAAK,IAAD,OACV,GAAe,UAAXA,EAAG9S,IAAiB,CACpB,IAAMvU,EAAOqnB,EAAGC,cAAcC,OAAS,EACvCjS,KAAKmH,SAAS,CAAEzc,KAAMgnB,OAAOhnB,KAAS,WAClC,EAAKwW,MAAMyQ,aAAa,CACpBC,MAAO,aAAc3b,KAAM,CACvBvL,KAAM,EAAKyT,MAAMzT,c,6BAM9BqnB,GAAK,IAAD,OACDrnB,EAAOqnB,EAAGC,cAAcC,OAAS,EACvCjS,KAAKmH,SAAS,CAAEzc,KAAMgnB,OAAOhnB,KAAS,WAClC,EAAKwW,MAAMyQ,aAAa,CACpBC,MAAO,aAAc3b,KAAM,CACvBvL,KAAM,EAAKyT,MAAMzT,a,qCAM7B,OAAOuZ,KAAK0B,KAAK3F,KAAK7B,MAAMvT,MAAQoV,KAAK7B,MAAMxT,YAAc,I,oCAElD,IAAD,OACVqV,KAAKmH,SAAS,CAAEzc,KAAM,IAAK,WACvB,EAAKwW,MAAMyQ,aAAa,CACpBC,MAAO,aAAc3b,KAAM,CACvBvL,KAAM,EAAKyT,MAAMzT,a,mCAKnB,IAAD,OACTsV,KAAKmH,SAAS,CAAEzc,KAAMsV,KAAK7B,MAAMzT,KAAO,IAAK,WACzC,EAAKwW,MAAMyQ,aAAa,CACpBC,MAAO,aAAc3b,KAAM,CACvBvL,KAAM,EAAKyT,MAAMzT,a,mCAKnB,IAAD,OACTsV,KAAKmH,SAAS,CAAEzc,KAAMsV,KAAK7B,MAAMzT,KAAO,IAAK,WACzC,EAAKwW,MAAMyQ,aAAa,CACpBC,MAAO,aAAc3b,KAAM,CACvBvL,KAAM,EAAKyT,MAAMzT,a,mCAKnB,IAAD,OACTsV,KAAKmH,SAAS,CAAEzc,KAAMsV,KAAK8R,iBAAkB,WACzC,EAAK5Q,MAAMyQ,aAAa,CACpBC,MAAO,aAAc3b,KAAM,CACvBvL,KAAM,EAAKyT,MAAMzT,a,+BAKvB,IAAD,SAC4BsV,KAAK7B,MAAhCvT,EADD,EACCA,MAAOD,EADR,EACQA,UAAWD,EADnB,EACmBA,KACpBkc,EAAG,EACHd,EAAK,EAMT,OALGlb,EAAM,IAELkb,GAAMpb,EAAK,GAAGC,EAAU,EACxBic,EAAGlc,EAAKC,EAAUC,EAAMA,EAAMF,EAAKC,GAGnC,kBAACunB,EAAA,EAAD,CAAKhM,UAAU,mBACX,kBAACiM,GAAA,EAAD,CAAKC,GAAI,EAAGlM,UAAU,oBAClB,yBAAKA,UAAU,oBACX,oDACI,kBAACmM,GAAA,EAAD,CAAarE,KAAK,KAAKsE,GAAG,SAASC,gBAAc,gBAAgBC,QAAM,EAACP,MAAOjS,KAAK7B,MAAMxT,UAAW8nB,SAAU,SAACb,GAAY,EAAKc,iBAAiBd,EAAMI,cAAcC,SACjKjS,KAAK7B,MAAMtT,gBAAgBsb,KAAI,SAACC,EAAMnH,GACnC,OAAO,4BAAQA,IAAKA,EAAKgT,MAAO7L,GAAOA,OAHnD,kBAUR,kBAAC+L,GAAA,EAAD,CAAKC,GAAI,EAAGlM,UAAU,eAAtB,6BACiBJ,EADjB,0BAC6Bc,EAD7B,oBACwChc,EADxC,kBAIA,kBAACunB,GAAA,EAAD,CAAKC,GAAI,GACL,kBAACO,GAAA,EAAD,CAAYzM,UAAU,0CAClB,kBAACyM,GAAA,EAAWC,MAAZ,CAAkBC,SAAU7S,KAAK7B,MAAMzT,MAAQ,EAAG+lB,QAASzQ,KAAK8S,YAAYC,KAAK/S,OAAjF,MACA,kBAAC2S,GAAA,EAAWK,KAAZ,CAAiBH,SAAU7S,KAAK7B,MAAMzT,MAAQ,EAAG+lB,QAASzQ,KAAKiT,WAAWF,KAAK/S,QAC/E,kBAAC2S,GAAA,EAAWO,KAAZ,CAAiBhN,UAAU,cAAciN,QAAM,EAAC1C,QAAS,WAAQ,EAAKe,gBAAgB4B,QAAQC,WAC1F,kBAAChB,GAAA,EAAD,CAAarE,KAAK,KACdsF,IAAKtT,KAAKwR,gBACVS,MAAOjS,KAAK7B,MAAMzT,KAClB+nB,SAAU,SAACb,GAAY,EAAK2B,aAAa3B,EAAMI,cAAcC,QAC7DuB,UAAWxT,KAAKwT,UAAUT,KAAK/S,MAC/ByT,OAAQzT,KAAKyT,OAAOV,KAAK/S,QACd,kCAAQA,KAAK8R,iBAEhC,kBAACa,GAAA,EAAWe,KAAZ,CAAiBb,SAAU7S,KAAK7B,MAAMzT,MAAQsV,KAAK8R,eAAgBrB,QAASzQ,KAAK2T,WAAWZ,KAAK/S,QACjG,kBAAC2S,GAAA,EAAWiB,KAAZ,CAAiBf,SAAU7S,KAAK7B,MAAMzT,MAAQsV,KAAK8R,eAAgBrB,QAASzQ,KAAK6T,WAAWd,KAAK/S,OAAjG,Y,gDAtJYkB,EAAO/C,GACnC,IAAIoT,EAAS,gBAAQpT,EAAMoT,WACvBuC,EAAY,KAqBhB,OApBIvC,EAAU7mB,OAASwW,EAAMxW,QACzBopB,EAAYA,GAAa,IACfppB,KAAO6mB,EAAU7mB,KAAOwW,EAAMxW,MAAQD,KAAmBC,MAGnE6mB,EAAU5mB,YAAcuW,EAAMvW,aAC9BmpB,EAAYA,GAAa,IACfnpB,UAAY4mB,EAAU5mB,UAAYuW,EAAMvW,WAAaF,KAAmBE,WAElF4mB,EAAU3mB,QAAUsW,EAAMtW,SAC1BkpB,EAAYA,GAAa,IACflpB,MAAQ2mB,EAAU3mB,MAAQsW,EAAMtW,OAASH,KAAmBG,OAEtE2mB,EAAU1mB,kBAAoBqW,EAAMrW,mBACpCipB,EAAYA,GAAa,IACfjpB,gBAAkB0mB,EAAU1mB,gBAAkBqW,EAAMrW,iBAAmBJ,KAAmBI,iBAEpGipB,IACAA,EAAUvC,UAAYA,GAEnBuC,M,GA5CmB5H,IAAM1E,WCJ3BuM,GAAkB7H,IAAM9G,gB,UCK/B4O,G,4HAAwBxM,aASxByM,G,kDAgBF,WAAY/S,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACTtK,KAAMqN,EAAMrN,MAAQ,GACpBqgB,SAAU,GACV3C,UAAWrQ,GAEf,EAAKiT,SAAWjI,IAAMuF,YAPP,E,2DAuBJ2C,EAASC,GAAe,IAAD,OAC9BH,EAAWlU,KAAK7B,MAAM+V,SACpBI,EAAatU,KAAKmU,SAASI,iBAAiB,uCACjC,GAAGxgB,OAAOygB,KAAKF,GAAY,SAAUG,GAClD,OAAOA,EAAGL,UAAYA,KAEfhI,SAAQ,SAAChG,GAChBA,EAAKgO,QAAUA,EACXA,EACAF,EAAS9N,EAAK6L,OAASmC,SAEhBF,EAAS9N,EAAK6L,UAG7BjS,KAAKmH,SAAS,CAAE+M,SAAUA,IAAY,WAClC,EAAKQ,mBAAmB,iBAAkB,CAAER,SAAU,EAAK/V,MAAM+V,UAAYG,Q,sCAKrEpV,EAAKmV,EAASC,GAAe,IAAD,OACpCH,EAAWlU,KAAK7B,MAAM+V,SACtBE,GACAF,EAASjV,GAAOmV,EAChBpU,KAAKmH,SAAS,CACV+M,SAAUA,IACX,WACC,EAAKQ,mBAAmB,iBAAkB,CAAER,SAAU,EAAK/V,MAAM+V,UAAYG,eAG1EH,EAASjV,GAChBe,KAAKmH,SAAS,CACV+M,SAAUA,IACX,WACC,EAAKQ,mBAAmB,iBAAkB,CAAER,SAAU,EAAK/V,MAAM+V,UAAYG,S,iCAM9EM,EAASN,GAAe,IAAD,OACxBxgB,EAAO,GACT+gB,EAAW5U,KAAK7B,MAAMtK,KAAK8gB,GAE3BC,EADAA,GACwB,QAAbA,EAAqB,OAGrB,MAEf/gB,EAAK8gB,GAAWC,EAChB5U,KAAKmH,SAAS,CAAEtT,KAAMA,IAAQ,WAC1B,EAAK6gB,mBAAmB,aAAc,CAAE7gB,KAAM,EAAKsK,MAAMtK,MAAQwgB,Q,yCAGtDzC,EAAO3b,EAAMoe,GACxBrU,KAAKkB,MAAMyQ,cACX3R,KAAKkB,MAAMyQ,aAAa,CAAEC,MAAOA,EAAO3b,KAAMA,IAE9Coe,GAAgBA,EAAaQ,sBAC7BR,EAAaQ,qBAAqB,CAAEjD,MAAOA,EAAO3b,KAAMA,M,+BAItD,IAAD,SAeY+J,KAAKkB,MAblBgF,EAFC,EAEDA,UACA4O,EAHC,EAGDA,aACAC,EAJC,EAIDA,WACAC,EALC,EAKDA,SAGA/e,GARC,EAODpC,KAPC,EAQDoC,MACAvL,EATC,EASDA,KACAC,EAVC,EAUDA,UACAC,EAXC,EAWDA,MACAC,EAZC,EAYDA,gBAGGqW,GAfF,EAcDyQ,aAdC,+IAgBL,OACI,kBAACoC,GAAgBzF,SAAjB,MACK,SAAC+F,GAAD,OACG,uCAAKnO,UAAW,CAAC,iBAAkBA,GAAWqI,KAAK,MAAUrN,GACzD,kBAACgR,EAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKjM,UAAU,oBACX,kBAAC+O,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACC,OAAK,EAACpH,KAAK,MAC/B,+BACI,4BAEQ9B,IAAMC,SAAShG,IAAIjF,EAAM4K,UAAU,SAACO,EAAOpN,GAEvC,GAAIoN,EAAMhO,KAAKkO,OAASyH,GAAgBzH,KAAM,CAAC,IAAD,EAQtCF,EAAMnL,MANNhI,EAFsC,EAEtCA,MACAgN,EAHsC,EAGtCA,UAGAyO,GANsC,EAKtCzU,KALsC,EAMtCyU,SACGzT,EAPmC,sDAU1C,OACI,sCAAIjC,IAAKA,EAAKiH,UAAW,CAAC,kBAAmBA,GAAWqI,KAAK,MAAUrN,GAClEhI,IACEyb,GACC,0BAAMzO,UAAS,2BAAsB,EAAK/H,MAAMtK,KAAK8gB,IAAYlE,QAAS,WAAQ,EAAK4E,WAAWV,EAASN,KACvG,uBAAGnO,UAAU,mBAAmBoP,YAAU,sBAAsBC,cAAY,QAAQC,aAAW,OAAOC,cAAY,SAClH,uBAAGvP,UAAU,oBAAoBoP,YAAU,oBAAoBC,cAAY,QAAQC,aAAW,OAAOC,cAAY,gBAUvIV,GACF,wBAAI7O,UAAU,iBACV,kBAACwP,GAAA,EAAD,CAAWphB,GAAE,0BAAqBqhB,gBAAYnD,QAAM,EAACnU,KAAK,WAAWuX,MAAM,GAAGnD,SAAU,SAACV,GAAS,EAAK8D,eAAe9D,EAAGC,cAAcoC,QAASC,SAIhK,2BAAOf,IAAK,SAACa,GAAe,EAAKA,SAAWA,IAEpCvpB,EAAQ,EACJ,kBAAC,IAAM0b,SAAP,KAGQrQ,EAAKkQ,KAAI,SAACC,EAAMkJ,GACZ,OACI,wBAAIhb,GAAE,iBAAYwgB,EAAa,CAAE1O,OAAMkJ,WAAYA,GAC/CpJ,UAAW,EAAK/H,MAAM+V,SAASY,EAAa,CAAE1O,OAAMkJ,WAAY,WAAa,GAC7ErQ,IAAK6V,EAAa,CAAE1O,OAAMkJ,WAAYA,GAElCpD,IAAMC,SAAShG,IAAIjF,EAAM4K,UAAU,SAACO,EAAOpN,GAEvC,GAAIoN,EAAMhO,KAAKkO,OAASyH,GAAgBzH,KAAM,CAAC,IAAD,EAStCF,EAAMnL,MALNgF,GAJsC,EAGtChN,MAHsC,EAItCgN,WACAhG,EALsC,EAKtCA,KAGGgB,GARmC,EAOtCyT,QAPsC,uDAU1C,OAAO,sCAAI1V,IAAKA,EAAKiH,UAAW,CAAC,WAAYA,GAAWqI,KAAK,MAAUrN,GAAQhB,EAAK,CAAEkG,OAAMkJ,gBAKlGyF,GACF,wBAAI7O,UAAU,iBACV,kBAACwP,GAAA,EAAD,CAAWphB,GAAIwgB,EAAa,CAAE1O,OAAMkJ,WAAYA,EAC5CkD,QAAM,EAACnU,KAAK,WAAWuX,MAAM,GAC7B3D,MAAO6C,EAAa,CAAE1O,OAAMkJ,UAC5BmD,SAAU,SAACV,GAAS,EAAK+D,gBAAgB/D,EAAGC,cAAcC,MAAOF,EAAGC,cAAcoC,QAASC,YAOzH,4BACIU,EACE,wBAAIgB,QAAS7U,EAAM4K,SAAS7J,OAAQwG,MAAO,CAAEuN,UAAW,WAAxD,oCAGA,wBAAID,QAAS7U,EAAM4K,SAAS7J,OAAS,EAAGwG,MAAO,CAAEuN,UAAW,WAA5D,0CAW1BhB,GACF,kBAAC,GAAD,CACItqB,KAAMA,EACNC,UAAWA,EACXC,MAAOA,EACPC,gBAAiBA,EACjB8mB,aAAc,SAAC/Q,GACX,EAAK8T,mBAAmB9T,EAAIgR,MAAOhR,EAAI3K,KAAMoe,a,gDAzM7CnT,EAAO/C,GACnC,IAAIoT,EAAS,gBAAQpT,EAAMoT,WACvBuC,EAAY,KAShB,OARIvC,EAAU1d,OAASqN,EAAMrN,QACzBigB,EAAYA,GAAa,IACfjgB,KAAO0d,EAAU1d,KAAOqN,EAAMrN,MAAQ,IAGhDigB,IACAA,EAAUvC,UAAYA,GAEnBuC,M,GApCctM,aA6O7ByM,GAAegC,OAASjC,GACxBC,GAAehI,YAAc,gB,wBCvPvBiK,G,kDAWF,WAAYhV,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACTgY,iBAAiB,EACjBC,UAAWlV,EAAMkV,WAAa,IAJnB,E,iEAUfpW,KAAKmH,SAAS,CAAEgP,iBAAkBnW,KAAK7B,MAAMgY,oB,mCAEpCpE,GACT/R,KAAKmH,SAAS,CAAEiP,UAAWrE,EAAGC,cAAcC,U,oCAElCF,EAAIsC,GACd,GAAe,UAAXtC,EAAG9S,IAAiB,CACpB,IAAMmX,EAAYrE,EAAGC,cAAcC,MACnCjS,KAAK0U,mBAAmB,kBAAmB,CAAE5gB,OAAQsiB,GAAa/B,M,0CAGtDA,GAChBrU,KAAK0U,mBAAmB,kBAAmB,CAAE5gB,OAAQkM,KAAK7B,MAAMiY,WAAa/B,K,yCAE9DzC,EAAO3b,EAAMoe,GACxBrU,KAAKkB,MAAMyQ,cACX3R,KAAKkB,MAAMyQ,aAAa,CAAEC,MAAOA,EAAO3b,KAAMA,IAE9Coe,GAAgBA,EAAaQ,sBAC7BR,EAAaQ,qBAAqB,CAAEjD,MAAOA,EAAO3b,KAAMA,M,+BAGtD,IAAD,OACL,OACI,kBAAC8d,GAAgBzF,SAAjB,MACK,SAAC+F,GAAD,OACG,kBAACnC,EAAA,EAAD,CAAKhM,UAAU,yBACX,kBAACiM,GAAA,EAAD,CAAKkE,GAAI,KACH,EAAKnV,MAAMoV,WACT,kBAAC,IAAMhQ,SAAP,KACI,kBAAC4L,EAAA,EAAD,CAAKhM,UAAU,wBACX,kBAACiM,GAAA,EAAD,CAAKC,GAAI,EAAGmE,GAAI,GACZ,kBAACC,GAAA,EAAD,CAAYxI,KAAK,KAAK9H,UAAU,UAC5B,kBAACmM,GAAA,EAAD,CACIhU,KAAK,OACLkO,KAAK,YACLkK,YAAY,mBACZC,aAAW,SACXC,WAAS,EACT1E,MAAO,EAAK9T,MAAMiY,UAClB3D,SAAU,SAACV,GAAS,EAAK5K,SAAS,CAAEiP,UAAWrE,EAAGC,cAAcC,SAChEuB,UAAW,SAACzB,GAAS,EAAK6E,cAAc7E,EAAIsC,MAEpD,kBAACmC,GAAA,EAAWK,OAAZ,CAAmB3Q,UAAU,mBAAmBuK,QAAS,WAAQ,EAAKqG,oBAAoBzC,KAElF,EAAKlW,MAAMgY,gBAAkB,GAAK,kBAACY,GAAA,EAAD,CAAQC,QAAQ,WAC1C,0BAAM9Q,UAAU,UAAUoP,YAAU,kBAAkBC,cAAY,YAO1E,EAAKrU,MAAM+V,eACf,kBAACT,GAAA,EAAWK,OAAZ,CAAmB3Q,UAAU,qBAAqBuK,QAAS,EAAKyG,mBAAmBnE,KAAK,IAEhF,EAAK5U,MAAMgY,gBAAkB,kBAACY,GAAA,EAAD,CAAQC,QAAQ,OAAO9d,MAAM,qCAAmBuP,MAAO,CAAE0O,OAAO,IAAhE,gBAEjB,kBAACJ,GAAA,EAAD,CAAQC,QAAQ,OAAO9d,MAAM,sCAA7B,wBAc5B,kBAACiZ,GAAA,EAAD,KACI,yBAAKjM,UAAU,kBACV,EAAKhF,MAAMkW,aAKnB,EAAKjZ,MAAMgY,iBAAmB,EAAKjV,MAAM+V,eAC1C,kBAAC/E,EAAA,EAAD,CAAKhM,UAAU,6BACX,kBAACiM,GAAA,EAAD,CAAKkE,GAAI,IACL,kCACI,sEACC,EAAKnV,MAAM+V,kBAShC,EAAK/V,MAAM4K,kB,GAlHLI,IAAM1E,WA8H5C0O,GAAwBjK,YAAc,iB,YC5HhCoL,G,kDAQF,WAAYnW,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACTgY,iBAAiB,GAHN,E,8GAUfnW,KAAKmH,SAAS,CAAEgP,iBAAkBnW,KAAK7B,MAAMgY,oB,oCAEnC,IAEFrK,EAAa9L,KAAKkB,MAAlB4K,SAEFlT,EAAQiT,aAAWC,EAAUmI,IAEnC,OAAKrb,GACM,O,qCAKA,IAEHkT,EAAa9L,KAAKkB,MAAlB4K,SAEFwL,EAASzL,aAAWC,EAAUoK,IAEpC,OAAKoB,GACM,O,+BAMX,OAEI,kBAACvD,GAAgBrF,SAAjB,CAA0BuD,MAAO,CAAE4C,qBAAsB7U,KAAKkB,MAAMyQ,eAChE,yBAAKzL,UAAU,aACVlG,KAAKuX,eACN,kBAACrF,EAAA,EAAD,CAAKhM,UAAU,kBACVlG,KAAKwX,eAEV,kBAAC,EAAD,CAAkB9J,QAAS1N,KAAKkB,MAAMwM,gB,GArD1BxB,IAAM1E,WA4DtC6P,GAAkBpC,MAAQhB,GAC1BoD,GAAkBhJ,OAAO6H,G,aClEnBuB,G,kDAEF,WAAYvW,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACT8P,MAAM,EACNtJ,IAAK,GACLqJ,KAAM,KACN3P,KAAM,UAEV,EAAK0G,cAAc,GARJ,E,gEAUE,IAAD,OAChB/E,KAAK+E,cAAL,OAA8B/E,KAAKsQ,QAAQjL,IAAIhB,YAAYW,WAAU,SAACpE,GAC9D,EAAKzC,MAAM8P,MACX,EAAK9G,SAAS,CACV8G,MAAM,EACNtJ,IAAK/D,EAAI+D,KAAO,GAChBqJ,KAAMpN,EAAIoN,MAAQ,KAClB3P,KAAMuC,EAAIvC,MAAQ,gB,6CAMX,IAAD,OAClBC,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,mB,oCAI5BjF,KAAKmH,SAAS,CAAE8G,MAAM,IACtBjO,KAAKsQ,QAAQjL,IAAId,YAAYW,MAAK,K,+BAIlC,OACI,kBAAC6I,EAAA,EAAD,CACIC,KAAMhO,KAAK7B,MAAM6P,KACjBC,KAAMjO,KAAK7B,MAAM8P,KACjBC,SAAS,SACTwJ,OAAQ1X,KAAK2X,YAAY5E,KAAK/S,OAC9B,kBAAC+N,EAAA,EAAMM,OAAP,CAAcuJ,aAAW,GACrB,kBAAC7J,EAAA,EAAM8J,MAAP,yBAGJ,kBAAC9J,EAAA,EAAMI,KAAP,KACI,2BAAInO,KAAK7B,MAAMwG,MAGnB,kBAACoJ,EAAA,EAAM+J,OAAP,KACI,kBAACf,GAAA,EAAD,CAAQ/I,KAAK,KAAKgJ,QAAQ,YAAYvG,QAASzQ,KAAK2X,YAAY5E,KAAK/S,OAArE,sB,GAnDSkM,IAAM1E,WAA7BiQ,GACK3H,YAAc3K,K,ICDnB4S,G,kDAEF,WAAY7W,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACT8P,MAAM,EACNtJ,IAAK,GACLqJ,KAAM,KACN3P,KAAM,UAEV,EAAK0G,cAAc,GARJ,E,gEAWE,IAAD,OAChB/E,KAAK+E,cAAL,OAA8B/E,KAAKsQ,QAAQjL,IAAIb,cAAcQ,WAAU,SAACpE,GAChE,EAAKzC,MAAM8P,MACX,EAAK9G,SAAS,CACV8G,MAAM,EACNtJ,IAAK/D,EAAI+D,KAAO,GAChBqJ,KAAMpN,EAAIoN,MAAQ,KAClB3P,KAAMuC,EAAIvC,MAAQ,gB,6CAMX,IAAD,OAClBC,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,mB,oCAI5BjF,KAAKmH,SAAS,CAAE8G,MAAM,IACtBjO,KAAKsQ,QAAQjL,IAAIZ,cAAcS,MAAK,K,iCAGpClF,KAAKmH,SAAS,CAAE8G,MAAM,IACtBjO,KAAKsQ,QAAQjL,IAAIZ,cAAcS,MAAK,K,+BAGpC,OACI,kBAAC6I,EAAA,EAAD,CACIC,KAAMhO,KAAK7B,MAAM6P,KACjBC,KAAMjO,KAAK7B,MAAM8P,KACjBC,SAAS,SACTwJ,OAAQ1X,KAAK2X,YAAY5E,KAAK/S,OAC9B,kBAAC+N,EAAA,EAAMM,OAAP,CAAcuJ,aAAW,GACrB,kBAAC7J,EAAA,EAAM8J,MAAP,yBAGJ,kBAAC9J,EAAA,EAAMI,KAAP,KACI,2BAAInO,KAAK7B,MAAMwG,MAGnB,kBAACoJ,EAAA,EAAM+J,OAAP,KACI,kBAACf,GAAA,EAAD,CAAQ/I,KAAK,KAAKgJ,QAAQ,UAAUvG,QAASzQ,KAAKgY,SAASjF,KAAK/S,OAAhE,uBACA,kBAAC+W,GAAA,EAAD,CAAQ/I,KAAK,KAAKgJ,QAAQ,YAAYvG,QAASzQ,KAAK2X,YAAY5E,KAAK/S,OAArE,kB,GAxDWkM,IAAM1E,WAA/BuQ,GACKjI,YAAc3K,K,6CCJZ8S,GAAc,SAAdA,EAAehiB,GAA2B,IAArBkQ,EAAoB,uDAAd,IAAI+R,IAOxC,OANAjiB,EAAKmW,SAAQ,SAAAhG,GACTD,EAAIgS,IAAI/R,EAAK6L,MAAO7L,GAChBA,EAAK0F,UAAY1F,EAAK0F,SAAS7J,OAAS,GACxCgW,EAAY7R,EAAK0F,SAAU3F,MAG5B,CAAElQ,OAAMkQ,QAENiS,GAAW,SAACnG,EAAO9L,EAAKkS,EAAKjE,GACtC,GAAI,CAAC,cAAe,gBAAgB5H,SAAS6L,GAAO,CAChD,IAAIjS,EAAOD,EAAIpF,IAAIkR,GACf7L,IACAA,EAAKgO,QAAUA,QAIlBnC,GAAS,IAAI7F,SAAQ,SAAAnN,GAClB,IAAImH,EAAOD,EAAIpF,IAAI9B,GACfmH,IACAA,EAAKgO,QAAUA,EACfhO,EAAKkS,SAAWlE,OCf1BmE,G,kDAmBF,WAAYrX,GAAQ,IAAD,sBACf,cAAMA,GADS,MAEO+W,GAAY9V,KAAKqW,MAAMrW,KAAKC,UAAUlB,EAAMjL,MAAQ,MAAlEA,EAFO,EAEPA,KAAMkQ,EAFC,EAEDA,IAFC,OAGfiS,GAASlX,EAAM+Q,MAAO9L,EAAKjF,EAAMmX,MAAK,GACtC,EAAKla,MAAQ,CAETlI,KAAMA,EACNwiB,WAAYvX,EAAM+Q,MAClB9L,IAAKA,EACLoL,UAAWrQ,EACXwX,WAAW,IAAIxkB,KACfykB,SAAS,IAAIzkB,MAEjB,EAAK6Q,cAAgB,GAbN,E,+GA2DG6T,EAAW9E,GAE7B,OAAGA,EAAU4E,aAAc1Y,KAAK7B,MAAMua,a,6CAKlB,IAAD,OACnBpa,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,mB,+BAIvB4T,GAAgB,IAAD,OAChBjY,EAAMiY,EAAc1S,KAAI,SAAA2S,GACxB,OAAOA,EAAE7G,SAETA,EAAQ,KAERA,EADA,CAAC,cAAe,gBAAgBzF,SAASxM,KAAKkB,MAAMmX,MAC5CzX,EAAI,IAAM,KAGVA,GAAO,KAEhBZ,KAAK7B,MAAMsa,aAAaxG,IACvBmG,GAASpY,KAAK7B,MAAMsa,WAAWzY,KAAK7B,MAAMgI,IAAInG,KAAKkB,MAAMmX,MAAK,GAC9DD,GAASnG,EAAMjS,KAAK7B,MAAMgI,IAAInG,KAAKkB,MAAMmX,MAAK,IAElDrY,KAAKmH,SAAS,CAAEsR,WAAYxG,IAAS,WAC7B,EAAK/Q,MAAMuR,UACX,EAAKvR,MAAMuR,SAAS,CAChBsG,QAAS,aACTC,OAAQ,CACJ3a,KAAM,SACN/J,GAAI,EAAK4M,MAAM5M,IAAM,KACrBiY,KAAM,EAAKrL,MAAMqL,KACjB0F,MAAOA,U,qEAYjB,IAAD,SAqBYjS,KAAKkB,MAlBlBgF,EAHC,EAGDA,UACA+S,EAJC,EAIDA,QACAC,EALC,EAKDA,UACAlL,EANC,EAMDA,KACAmL,EAPC,EAODA,iBACAC,EARC,EAQDA,qBACA3C,EATC,EASDA,YAYGvV,GArBF,EAWDjL,KAXC,EAaDojB,kBAbC,EAeD5G,SAfC,EAiBDgB,OAjBC,EAmBDxB,MAnBC,0KAsBL,OACI,kBAAC,IAAMqH,WAAP,KACI,kBAAC,KAAD,eACIrjB,KAAM+J,KAAK7B,MAAMlI,KACjBiQ,UAAWqT,KACPrT,EACA,2BACA8H,EAAI,uBAAmBA,GAAS,GAChCiL,GAAW,WACXC,GAAa,cAEjBG,mBAAmB,EACnBG,MACI,CACI/C,YAAaA,GAAa,eAC1BgD,UAAW,8BAGnBN,iBAAkBA,IAAoB,EACtCC,qBAAsBA,IAAwB,EAC9C3G,SAAU,SAACiH,EAAab,GAAoB,EAAKpG,SAASoG,EAAca,IACxEjG,OAAQzT,KAAK2Z,WAAW5G,KAAK/S,OACzBkB,Q,gDApIYA,EAAO/C,GACnC,IAAIoT,EAAS,gBAAQpT,EAAMoT,WACvBuC,EAAY,KAehB,GAdI5S,EAAM+Q,QAAUV,EAAUU,QAC1B6B,EAAYA,GAAa,GACzBvC,EAAUU,MAAQ/Q,EAAM+Q,MAEpB/Q,EAAM+Q,QAAU9T,EAAMsa,aACtB3E,EAAU2E,WAAWvX,EAAM+Q,MAI3BmG,GAASlX,EAAM+Q,MAAM9T,EAAMgI,IAAIoL,EAAU8G,MAAK,GAC9CvE,EAAU4E,WAAY,IAAIxkB,OAI9Bqd,EAAUtb,OAASiL,EAAMjL,KAAM,CAC/B6d,EAAYA,GAAa,GACzBvC,EAAUtb,KAAOiL,EAAMjL,KAFQ,MAIZgiB,GAAY9V,KAAKqW,MAAMrW,KAAKC,UAAUlB,EAAMjL,MAAQ,MAAhEA,EAJwB,EAIxBA,KAAKkQ,EAJmB,EAInBA,IACZiS,GAASja,EAAMsa,WAAWtS,EAAIoL,EAAU8G,MAAK,GAC7CvE,EAAU7d,KAAKA,EAEf6d,EAAU3N,IAAIA,EACd2N,EAAU4E,WAAY,IAAIxkB,KAW9B,OATIqd,EAAU2H,YAAchY,EAAMgY,YAC9BpF,EAAYA,GAAa,GACzBvC,EAAU2H,UAAYhY,EAAMgY,UAC5BpF,EAAU4E,WAAY,IAAIxkB,MAG1B4f,IACAA,EAAUvC,UAAYA,GAEnBuC,M,GA3EmB5H,IAAM1E,W,iDCElCoS,GAAY,CAAC,MAAO,OAAQ,MAAO,QACnCC,GAAe,CAAC,OAAQ,MAAO,MAAO,QACtCC,GAAU,CAAC,OAAQ,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAM,OAE7EC,G,kDAgBF,WAAY7Y,GAAQ,IAAD,8BACf,cAAMA,IAoGV8Y,gBAAkB,SAAApI,GACd,IAAIhQ,EAAQgQ,EAAMoH,OAAOpX,MAErBoC,EAAM6B,MAAMC,KAAKlE,GAAOuE,KAAI,SAAA2S,GAQ5B,OAPAA,EAAEmB,SAAWnB,EAAEvM,KAAK2N,MAAM,KAAKC,MAC/BrB,EAAE5f,MAAQ4f,EAAEvM,KACZuM,EAAE9P,MAAQ,IAAInD,MACsC,KAAhD,EAAKuU,cAActB,EAAEvM,KAAK2N,MAAM,KAAKC,QACrCrB,EAAE9P,MAAMyD,KAAK,EAAK2N,cAActB,EAAEvM,KAAK2N,MAAM,KAAKC,QACvB,KAA3B,EAAKE,UAAUvB,EAAE9K,OACjB8K,EAAE9P,MAAMyD,KAAK,EAAK4N,UAAUvB,EAAE9K,OAC3B8K,KASX,GANyB,QAArB,EAAK5X,MAAM9C,QAAoB,EAAKD,MAAMsa,YAC1C,EAAKta,MAAMsa,WAAWrM,SAAQ,SAAAkO,GAC1BtW,EAAIyI,KAAK6N,MAIQ,OAArB,EAAKpZ,MAAM9C,QAAmB,EAAKD,MAAMsa,WAAY,CAErD,IAAK,IAAIzW,EAAI,EAAGA,EAAIgC,EAAI/B,OAAQD,IAC5B,IAAK,IAAIuY,EAAI,EAAGA,EAAI,EAAKpc,MAAMsa,WAAWxW,OAAQsY,IAC1CvW,EAAIhC,GAAGuK,MAAQ,EAAKpO,MAAMsa,WAAW8B,GAAGhO,aACjC,EAAKpO,MAAMsa,WAAW8B,GAQzC,EAAKpc,MAAMsa,WAAWrM,SAAQ,SAAAkO,GAC1BtW,EAAIyI,KAAK6N,MAIjB,IAAIE,EAAQ,IAAI3U,MAChB7B,EAAImC,KAAI,SAAA2S,KACCA,EAAE9P,OAAS8P,EAAE9P,OAA2B,GAAlB8P,EAAE9P,MAAM/G,SAC/BuY,EAAM/N,KAAKqM,MAEnB,EAAK3R,SAAS,CACVsR,WAAYzU,EACZyW,WAAYD,IAEhB,EAAKtZ,MAAMwZ,aAAaF,IAlJxB,EAAKrc,MAAQ,CACTsa,WAAYvX,EAAM+Q,MAClB0I,WAAW,EACXC,SAAU,GACVC,QAAS3Z,EAAM8M,KACfyM,WAAYK,KAAUC,MACtBC,WAAYF,KAAUC,MACtBE,YAAa,IAEjB,EAAKlW,cAAgB,GAXN,E,6DA0CFgB,GACb/F,KAAKkB,MAAMwZ,aAAa3U,K,0CAGxBsB,QAAQC,IAAItH,KAAKkB,S,6CAEG,IAAD,OACnB5C,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,mB,+BAI5BiW,SAASC,eAAenb,KAAKkB,MAAMqL,KAAOvM,KAAKkB,MAAMqL,KAAO,eAAe6O,U,gCAGrErV,GAAI,IACJkV,EAAgBjb,KAAK7B,MAArB8c,YACFF,EAAK,aAAO/a,KAAK7B,MAAMsa,YACvBnJ,EAAQyL,EAAMM,QAAQtV,GAC1B,IAAe,IAAXuJ,EAAc,CAEd,IAAI0L,EAAa,IAAInV,MACjBkV,EAAMzL,GAAOhb,GAAK,GAClB2mB,EAAYxO,KAAKsO,EAAMzL,GAAOhb,IAC9BymB,EAAMzL,GAAOgM,SAAW,EACxBN,EAAWvO,KAAKsO,EAAMzL,GAAOhb,KAE7BymB,EAAMQ,OAAOjM,EAAO,GAGxB,IAAIkL,EAAQ,IAAI3U,MAChBkV,EAAM5U,KAAI,SAAA2S,KACDA,EAAE9P,OAAS8P,EAAE9P,OAA2B,GAAlB8P,EAAE9P,MAAM/G,SAC/BuY,EAAM/N,KAAKqM,MAEnB9Y,KAAKmH,SAAS,CACVsR,WAAYsC,EACZN,WAAYD,EACZS,YAAaA,IAEbjb,KAAKkB,MAAMsa,cACXxb,KAAKkB,MAAMsa,aAAaP,GAE5Bjb,KAAKkB,MAAMwZ,aAAaF,M,oCAIlBP,GACV,OAAIja,KAAK7B,MAAMyc,SAASS,QAAQpB,IAAa,EAClC,GAEA,yE,gCAELjM,GACN,OAA0B,IAArBhO,KAAK7B,MAAM0c,SAAsB7M,EAC3B,GAEA,gE,+BAoDL,IAAD,SAaYhO,KAAKkB,MAXlBua,EAFC,EAEDA,SACAlP,EAHC,EAGDA,KACAnO,EAJC,EAIDA,OAEAwX,GANC,EAKD5H,KALC,EAMD4H,OACA8F,EAPC,EAODA,QACAzJ,EARC,EAQDA,MARC,EASDQ,SATC,EAWDgB,OAXC,iGAcL,OACI,kBAAC,IAAM6F,WAAP,KACI,kBAACqC,GAAA,EAAKC,MAAN,KAEQhG,GAAgB,uBAIL,QAAXxX,EACQ,kBAAC,IAAMkI,SAAP,KACJ,kBAACyQ,GAAA,EAAD,CAAQ/I,KAAK,KAAK9H,UAAU,OAAO7H,KAAK,SAAS2Y,QAAQ,UAAUvG,QAAS,WAAQ,EAAKoL,WACpF,0BAAM3V,UAAU,UAAUoP,YAAU,gBAAgBC,cAAY,UACpDmG,GAAoB,uBAErC,2BAAOpnB,GAAIiY,GAAc,cAAeuP,QAAM,EAACzd,KAAK,OAAOoU,SAAU,EAAKuH,gBAAiByB,SAAUA,IACrG,4BACK,EAAKtd,MAAMsa,WACR,EAAKta,MAAMsa,WAAWtS,KAAI,SAAC4V,EAAMzM,GAC7B,OACMyM,EAAKT,UAA8B,IAAlBS,EAAKT,SAoBlB,GAnBF,wBAAIpV,UAAU,gBAAgBjH,IAAKqQ,IAEzByM,EAAK/S,OAAS+S,EAAK/S,OAA+B,IAAtB+S,EAAK/S,MAAM/G,OACrC,kBAAC,IAAMqE,SAAP,KACI,uBAAGG,KAAK,KAAKsV,EAAK7iB,OAClB,0BAAMuX,QAAS,kBAAM,EAAKuL,UAAUD,KAChC,0BAAM7V,UAAU,8BAItB,kBAAC,IAAMI,SAAP,KACE,uBAAGmC,MAAO,CAAEwT,OAAQ,QAAUF,EAAK7iB,OACnC,2BAAOuP,MAAO,CAAEyT,MAAO,QAAUH,EAAK/S,MAAM7C,KAAI,SAACuD,EAAK4F,GAClD,OAAO,0BAAMrQ,IAAKqQ,GAAQ5F,EAAnB,eASrC,KAII,SAAXtL,EACC,kBAAC,IAAMkI,SAAP,KAEJ,kBAACyQ,GAAA,EAAD,CAAQ/I,KAAK,KAAK9H,UAAU,OAAO7H,KAAK,SAAS2Y,QAAQ,UAAUvG,QAAS,WAAQ,EAAKoL,WACpF,0BAAM3V,UAAU,UAAUoP,YAAU,gBAAgBC,cAAY,UACpDmG,GAAoB,uBAErC,2BAAOpnB,GAAIiY,GAAY,cAAeuP,QAAM,EAACzd,KAAK,OAAOoU,SAAU,EAAKuH,gBAAiByB,SAAUA,IACnG,4BACK,EAAKtd,MAAMsa,WACR,EAAKta,MAAMsa,WAAWtS,KAAI,SAAC4V,EAAMzM,GAE7B,OACMyM,EAAKT,UAA8B,IAAlBS,EAAKT,SAoBlB,GAnBF,wBAAIpV,UAAU,gBAAgBjH,IAAKqQ,IAEzByM,EAAK/S,OAAS+S,EAAK/S,OAA+B,IAAtB+S,EAAK/S,MAAM/G,OACrC,kBAAC,IAAMqE,SAAP,KACI,uBAAGG,KAAI,UAAKO,KAAL,OAAe+U,EAAK5a,KAAO6X,OAAO,UAAU+C,EAAK7iB,OACxD,0BAAMuX,QAAS,kBAAM,EAAKuL,UAAUD,KAChC,0BAAM7V,UAAU,8BAItB,kBAAC,IAAMI,SAAP,KACE,uBAAGmC,MAAO,CAAEwT,OAAQ,QAAUF,EAAK7iB,OACnC,2BAAOuP,MAAO,CAAEyT,MAAO,QAAUH,EAAK/S,MAAM7C,KAAI,SAACuD,EAAK4F,GAClD,OAAO,0BAAMrQ,IAAKqQ,GAAQ5F,EAAnB,eASrC,KAKN,kBAAC,IAAMpD,SAAP,KACJ,4BACI2L,EACIA,EAAM9L,KAAI,SAAC4V,EAAMzM,GACb,OACI,wBAAIpJ,UAAU,gBAAgBjH,IAAKqQ,EAAO7G,MAAO,CAAE0T,cAAe,SAC9D,uBAAG1V,KAAI,UAAKO,KAAL,OAAe+U,EAAK5a,KAAO6X,OAAO,UAAU+C,EAAK7iB,WAE3D,S,gDAvPTgI,EAAO/C,GAMnC,GALqB,SAAjB+C,EAAM9C,QACF8C,EAAM+Q,QAAU9T,EAAMwc,YACtBxc,EAAMsa,WAAavX,EAAM+Q,MACzB9T,EAAMwc,WAAY,GAEK,kBAApBzZ,EAAMkb,UACb,OAAQlb,EAAMkb,WACV,IAAK,YACDje,EAAMyc,SAAWhB,GACjB,MACJ,IAAK,eACDzb,EAAMyc,SAAWf,GACjB,MACJ,QACI1b,EAAMyc,SAAWd,QAIzB3b,EAAMyc,SAAW1Z,EAAMkb,UAQ3B,OANIlb,EAAM8M,KAAO,EACb7P,EAAM0c,QAAU3Z,EAAM8M,KAGtB7P,EAAM0c,QAvDF,GAyDD1c,M,GAxDmB+N,IAAM1E,W,qBCLlCoS,GAAY,CAAC,MAAO,OAAQ,MAAO,QAEnCyC,G,kDAeF,WAAYnb,GAAQ,IAAD,uBACf,cAAMA,IA+HV8Y,gBAAkB,SAAApI,GAAU,IAClB6J,EAAa,EAAKva,MAAlBua,SACFa,EAAc,EAAKne,MAAMme,YACxBb,IACDa,EAAc,IAGlB,IAAI1a,EAAQgQ,EAAMoH,OAAOpX,MACrBoC,EAAM6B,MAAMC,KAAKlE,GAAOuE,KAAI,SAAC2S,EAAGxJ,GAChCwJ,EAAEmB,SAAWnB,EAAEvM,KAAK2N,MAAM,KAAKC,MAC/BrB,EAAE5f,MAAQ4f,EAAEvM,KACZuM,EAAE9P,MAAQ,IAAInD,MACsC,KAAhD,EAAKuU,cAActB,EAAEvM,KAAK2N,MAAM,KAAKC,QACrCrB,EAAE9P,MAAMyD,KAAK,EAAK2N,cAActB,EAAEvM,KAAK2N,MAAM,KAAKC,QACvB,KAA3B,EAAKE,UAAUvB,EAAE9K,OACjB8K,EAAE9P,MAAMyD,KAAK,EAAK4N,UAAUvB,EAAE9K,OAElC,IAAIuO,EAAS,IAAIC,WAuBjB,OAtBAD,EAAOE,UAAY,WAEf,GADA3D,EAAE4D,SAAWH,EAAOvQ,OAChBsQ,EAAa,CAEb,IADA,IAAIK,GAAO,EACFpC,EAAI,EAAGA,EAAI+B,EAAYra,OAAQsY,IACpC,GAAI+B,EAAY/B,GAAGrhB,OACX4f,EAAE5f,OAASojB,EAAY/B,GAAGrhB,MAAO,CACjCyjB,EAAMpC,EACN,MAGRoC,GAAO,EACPL,EAAYK,GAAO7D,EAEnBwD,EAAY7P,KAAKqM,GAEzB,EAAK3R,SAAS,CACVmV,YAAaA,KAIrBC,EAAOK,cAAc9D,GACdA,KAEP0B,EAAQ,IAAI3U,MAChB7B,EAAImC,KAAI,SAAA2S,KACCA,EAAE9P,OAAS8P,EAAE9P,OAA2B,GAAlB8P,EAAE9P,MAAM/G,SAC/BuY,EAAM/N,KAAKqM,MAGnB,EAAK3R,SAAS,CACVmV,YAAatY,EACbyW,WAAYD,IAEhB,EAAKtZ,MAAMwZ,aAAa4B,IAjLxB,IAAI1B,EAAS,GACb,GAA+B,kBAApB1Z,EAAMkb,UACb,OAAQlb,EAAMkb,WACd,IAAK,YAGL,QACIxB,EAAWhB,QAIfgB,EAAW1Z,EAAMkb,UAErB,IAAI7K,EAAU,EAAKrQ,MAhBJ,OAiBf,EAAK/C,MAAQ,CACTsa,WAAYvX,EAAM+Q,MAClB0I,WAAW,EACXC,SAAUA,EACVC,QAAS3Z,EAAM8M,KAAK,EAAE9M,EAAM8M,KArCxB,IAsCJyM,WAAYK,KAAUC,MACtBE,YAAa,GACbqB,YAAapb,EAAM+Q,MACnB4K,SAAU,GACVtL,UAAUA,GAEd,EAAKxM,cAAgB,GA5BN,E,6DA2EFgB,GACb/F,KAAKkB,MAAMwZ,aAAa3U,K,4HAcxBmV,SAASC,eAAenb,KAAKkB,MAAMqL,MAAM6O,U,gCAGnCrV,GAAG,MAE0B/F,KAAK7B,MAAlCme,EAFG,EAEHA,YAAarB,EAFV,EAEUA,YACf3L,EAAQgN,EAAYjB,QAAQtV,IACjB,IAAXuJ,IAEIgN,EAAYhN,GAAOhb,GAAK,GACxB2mB,EAAYxO,KAAK6P,EAAYhN,GAAOhb,IACpCgoB,EAAYf,OAAOjM,EAAO,IAE1BgN,EAAYf,OAAOjM,EAAO,IAGlCtP,KAAKmH,SAAS,CACVmV,YAAaA,EACbrB,YAAaA,IAEjBjb,KAAKkB,MAAMwZ,aAAa4B,GACpBtc,KAAKkB,MAAMsa,cACXxb,KAAKkB,MAAMsa,aAAaP,K,oCAIlBhB,GACV,OAAIja,KAAK7B,MAAMyc,SAASS,QAAQpB,IAAa,EAClC,GAEA,yE,gCAELjM,GACN,OAA0B,IAArBhO,KAAK7B,MAAM0c,SAAsB7M,EAC3B,GAEA,gE,+BAyDL,IAAD,SACwChO,KAAKkB,MAA1Cua,EADH,EACGA,SAAUrd,EADb,EACaA,OAAQsd,EADrB,EACqBA,QAASzJ,EAD9B,EAC8BA,MAC7BqK,EAAgBtc,KAAK7B,MAArBme,YACN,OACI,kBAAC,IAAMhD,WAAP,KAEuB,QAAXlb,EACQ,kBAAC,IAAMkI,SAAP,KACJ,wBAAIJ,UAAU,wBACToW,EACGA,EAAYnW,KAAI,SAAC4V,EAAMzM,GACnB,OACMyM,EAAKT,UAA8B,IAAlBS,EAAKT,SAoBlB,GAnBF,wBAAIpV,UAAU,gBAAgBjH,IAAKqQ,IAEzByM,EAAK/S,OAAS+S,EAAK/S,OAA+B,IAAtB+S,EAAK/S,MAAM/G,OACrC,kBAAC,IAAMqE,SAAP,KACI,yBAAKiC,IAAKwT,EAAKW,SAAUlU,IAAKuT,EAAK7iB,MAAOgN,UAAU,sBAAsBhN,MAAO6iB,EAAK7iB,QACtF,kBAAC,IAAD,CAAM0N,GAAG,IAAIV,UAAU,iBAAiBuK,QAAS,kBAAM,EAAKuL,UAAUD,KAClE,0BAAM7V,UAAU,6BAItB,kBAAC,IAAMI,SAAP,KACE,uBAAGmC,MAAO,CAAEwT,OAAQ,QAAUF,EAAK7iB,OACnC,2BAAOuP,MAAO,CAAEyT,MAAO,QAAUH,EAAK/S,MAAM7C,KAAI,SAACuD,EAAK4F,GAClD,OAAO,0BAAMrQ,IAAKqQ,GAAQ5F,YASxD,IAIV,kBAAC,IAAD,CAAS9C,GAAI,IAAK6J,QAAS,WAAQ,EAAKoL,UAAa3V,UAAU,uDAC3D,yBAAKuC,MAAO,CAAE8G,MAAO,OAAQC,OAAQ,QAAUjH,IAAKuU,KAAUtU,IAAI,GAAGtC,UAAU,SAAUwV,GAAoB,oBACjH,2BAAOpnB,GAAI,EAAK4M,MAAMqL,KAAMuP,QAAM,EAACzd,KAAK,OAAOoU,SAAU,EAAKuH,gBAAiByB,SAAUA,EAAUsB,OAAO,2BAG5F,SAAX3e,EACC,kBAAC,IAAMkI,SAAP,KACJ,wBAAIJ,UAAU,wBACToW,EACGA,EAAYnW,KAAI,SAAC4V,EAAMzM,GACnB,OACMyM,EAAKT,UAA8B,IAAlBS,EAAKT,SAqBlB,GApBF,wBAAIpV,UAAU,gBAAgBjH,IAAKqQ,IAEzByM,EAAK/S,OAAS+S,EAAK/S,OAA+B,IAAtB+S,EAAK/S,MAAM/G,OACrC,kBAAC,IAAMqE,SAAP,KAEI,yBAAKiC,IAAKwT,EAAKznB,GAAL,UAAa0S,KAAb,OAAuB+U,EAAK5a,KAAQ4a,EAAKW,SAAUlU,IAAKuT,EAAK7iB,MAAOgN,UAAU,sBAAsBhN,MAAO6iB,EAAK7iB,QAC1H,kBAAC,IAAD,CAAM0N,GAAG,IAAIV,UAAU,iBAAiBuK,QAAS,kBAAM,EAAKuL,UAAUD,KAClE,0BAAM7V,UAAU,6BAItB,kBAAC,IAAMI,SAAP,KACE,uBAAGmC,MAAO,CAAEwT,OAAQ,QAAUF,EAAK7iB,OACnC,2BAAOuP,MAAO,CAAEyT,MAAO,QAAUH,EAAK/S,MAAM7C,KAAI,SAACuD,EAAK4F,GAClD,OAAO,0BAAMrQ,IAAKqQ,GAAQ5F,YASxD,IAIV,kBAAC,IAAD,CAAS9C,GAAI,IAAK6J,QAAS,WAAQ,EAAKoL,UAAa3V,UAAU,uDAC3D,yBAAKuC,MAAO,CAAE8G,MAAO,OAAQC,OAAQ,QAAUjH,IAAKuU,KAAUtU,IAAI,GAAGtC,UAAU,SAAUwV,GAAoB,oBACjH,2BAAOpnB,GAAI,EAAK4M,MAAMqL,KAAMuP,QAAM,EAACzd,KAAK,OAAOoU,SAAU,EAAKuH,gBAAiByB,SAAUA,EAAUsB,OAAO,2BA4CtG,kBAAC,IAAMzW,SAAP,KACJ,4BACI2L,EACIA,EAAM9L,KAAI,SAAC4V,EAAMzM,GACb,OACI,wBAAIpJ,UAAU,gBAAgBjH,IAAKqQ,GAC/B,uBAAG7I,KAAI,UAAKO,KAAL,OAAe+U,EAAK5a,MAAQ4a,EAAK7iB,WAE/C,S,gDA7RLgI,EAAO/C,GACnC,IAAIoT,EAAS,gBAAQpT,EAAMoT,WACvBuC,EAAY,KAYhB,GAXI5S,EAAM+Q,QAAUV,EAAUU,QAE1BV,EAAYrQ,GAAS,IADrB4S,EAAYA,GAAa,IAEfwI,YAAcpb,EAAM+Q,OAE9B/Q,EAAM9C,SAAWmT,EAAUnT,SAE3BmT,EAAYrQ,GAAS,IADrB4S,EAAYA,GAAa,IAEf6G,UAA6B,SAAjBzZ,EAAM9C,QAG5B8C,EAAMkb,YAAc7K,EAAU6K,UAE9B,GADAtI,EAAYA,GAAa,GACM,kBAApB5S,EAAMkb,UACb,OAAQlb,EAAMkb,WACd,IAAK,YAGL,QACItI,EAAU8G,SAAWhB,QAIzB9F,EAAU8G,SAAW1Z,EAAMkb,UAiBnC,OAbIlb,EAAM8M,OAASuD,EAAUvD,OACzB8F,EAAYA,GAAa,GACrB5S,EAAM8M,KAAO,EACb8F,EAAU+G,QAAU3Z,EAAM8M,KAG1B8F,EAAU+G,QAlFV,KAsFJ/G,IACAA,EAAUvC,UAAYA,GAEnBuC,M,GAxFwB5H,IAAM1E,W,6BCCX0E,IAAM1E,UCVxC,me,gECAAtc,EAAOC,QAAU,IAA0B,wC,kBCA3CD,EAAOC,QAAU,01L,kBCAjBD,EAAOC,QAAU,+kN,2KCuEX6xB,EAAiB,I,kDAjEnB,WAAY9b,GAAQ,IAAD,sBACf,IAAM+b,EAAS3e,OAAOC,OAAO,GAAI,CAAE4C,IAAK,sBAAwBD,GADjD,OAEf,cAAM+b,IACDC,WAAa,IAAI5Y,IAHP,E,6DAKFjG,GACb,OAAOmC,IAAKO,IAAL,UAAYiG,IAAZ,4CAAuD3I,M,6CAG3CqD,GAEnB,OAAOlB,IAAKO,IAAL,UAAYiG,IAAZ,gDAA2DtF,EAAI3N,OAAOopB,SAAtE,sBAA4Fzb,EAAI3N,OAAOqpB,c,wCAEhG1b,GAEd,OAAOlB,IAAKO,IAAL,UAAYiG,IAAZ,qDAAgEtF,EAAI3N,OAAOqpB,c,oCAExE9oB,GACV,OAAOkM,IAAKO,IAAL,UAAYiG,IAAZ,oCAA+C1S,M,6CAEnCA,GACnB,OAAOkM,IAAKO,IAAL,UAAYiG,IAAZ,6CAAwD1S,M,iDAI/D,OAAOkM,IAAKO,IAAL,UAAYiG,IAAZ,yD,2CAGUtF,GACjB,OAAOlB,IAAKC,KAAL,UAAauG,IAAb,wBAA4CtF,K,wCAGrCA,GACd,OAAOlB,IAAKO,IAAL,UAAYiG,IAAZ,4C,oCAIG1S,EAAGkN,EAAa6b,GAC1B,OAAO7c,IAAKO,IAAL,UAAYiG,IAAZ,4CAAuDxF,EAAvD,wBAAmFlN,EAAnF,uBAAoG+oB,M,mCAElG3b,EAAKpN,GACd,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,6BAAgDtF,K,gCAEjDpN,GACN,OAAOkM,IAAK+B,OAAL,UAAeyE,IAAf,wBAAsC1S,M,4CAE3B4M,GAAQ,IAClBxW,EAA0CwW,EAA1CxW,KAAMC,EAAoCuW,EAApCvW,UAAWkJ,EAAyBqN,EAAzBrN,KAAMC,EAAmBoN,EAAnBpN,OAAQC,EAAWmN,EAAXnN,OACnCqN,EAAS,GACTC,GAAW,EACXnI,EAAQpF,EACRD,IAEAwN,EAA4B,SAAjBxN,EADXuN,EAAS9C,OAAOgD,KAAKzN,GAAM,KAG/B,IAAM0N,EAASjD,OAAOC,OAAO,GAAI,CAC7B7T,KAAMA,EACN8W,aAAc7W,EACdyW,OAAQA,EACRC,SAAUA,EACVI,WAAYvI,GACbnF,GACH,OAAOyM,IAAKO,IAAL,8BAAwC,CAAEQ,OAAQA,Q,GA/DpCN,MAmEvB8O,EAAU3K,2B,oBCxEhBla,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,2C,kBCA3CD,EAAOC,QAAU,2xH,4RCiBXmyB,EAASC,YAAO,CAClBjqB,SAAUkqB,cAASC,OAAOC,SAAS,yDACnCtd,SAAUod,cAASC,OAAOC,SAAS,qDAGjCC,E,kDAEF,WAAYzc,GAAQ,IAAD,8BACf,cAAMA,IACDhD,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAKC,MAAQ,CACTlI,KAAM,CACF3C,SAAU,GACV8M,SAAU,IAEdsN,SAAS,EACTkQ,aAAc,IAElB,EAAKC,aAAe,EAAKA,aAAa9K,KAAlB,gBAXL,E,sGAiBN9c,GAAO,IAAD,OACf+J,KAAKmH,SAAS,CAAEuG,SAAS,IACzB/N,IAAYme,MAAM7nB,GAAM+O,WAAU,WAE9B,EAAKmC,SAAS,CAAEuG,SAAS,EAAOkQ,aAAc,KAFV,IAG5B9X,GAAS,EAAK5E,MAAMgM,SAAS/O,OAAS,CAAE2H,KAAM,CAAEmH,SAAU,OAA1DnH,KACR,EAAK5E,MAAMsP,QAAQ/D,KAAK3G,MACzB,SAAC4D,GAEmB,MAAfA,EAAItQ,OACJ,EAAK+N,SAAS,CAAEuG,SAAS,EAAOkQ,aAAc,gHAE9C,EAAKzW,SAAS,CAAEuG,SAAS,EAAOkQ,aAAc,gE,+BAMtD,OAEI,kBAAC,IAAD,KAEI,kBAAC,IAAKpP,QAAN,KACI,yBAAKtI,UAAU,4EACX,yBAAKA,UAAU,YAAYuC,MAAO,CAAE8G,MAAO,MAGvC,kBAACwO,EAAA,EAAD,CAAMtV,MAAO,CAAEuV,UAAW,OAAQC,aAAc,SAC5C,kBAACF,EAAA,EAAK5P,KAAN,KACI,uBAAG1H,KAAK,KAAR,IAAa,kBAACyX,EAAA,EAAD,CAAOhY,UAAU,gBAAgBuC,MAAO,CAAE0V,SAAU,GAAIC,YAAa,UAAWlC,MAAO,UAAWxT,aAAc,IAAK2V,YAAa,EAAGC,YAAa,QAASC,QAAS,GAAIhP,MAAO,IAAKC,OAAQ,IAAKyO,aAAc,IAAM1V,IAAKiW,OACvO,wBAAItY,UAAU,6BAA6BuC,MAAO,CAAE0V,SAAU,KAA9D,yEACA,uBAAGjY,UAAU,6BAAb,0FAEJ,6BACQ,uBAAGA,UAAU,eAAelG,KAAK7B,MAAMyf,eAG3C,kBAAC,IAAD,CACIa,iBAAkBnB,EAClBoB,SAAU1e,KAAK6d,aAEfc,cAAe3e,KAAK7B,MAAMlI,OAEzB,gBACG4nB,EADH,EACGA,aACAlM,EAFH,EAEGA,aACAgI,EAHH,EAGGA,WACAiF,EAJH,EAIGA,OACAC,EALH,EAKGA,QACAC,EANH,EAMGA,OANH,OAQO,kBAACnD,EAAA,EAAD,CAAMoD,YAAU,EAACL,SAAUb,GACvB,kBAAClC,EAAA,EAAKqD,MAAN,KACI,kBAACxI,EAAA,EAAD,CAAYtQ,UAAU,QAClB,kBAACyV,EAAA,EAAKsD,QAAN,CACI1S,KAAK,WACLkK,YAAY,oBACZC,aAAW,WACXwI,aAAa,KACbvI,WAAS,EACTlE,SAAUd,EACV8B,OAAQkG,EACR1H,MAAO2M,EAAOtrB,SACd4lB,UAAW2F,EAAQvrB,YAAcwrB,EAAOxrB,WAE5C,kBAACkjB,EAAA,EAAWK,OAAZ,KACI,kBAACL,EAAA,EAAW2I,KAAZ,KACI,0BAAMjZ,UAAU,UAAUoP,YAAU,gBAAgBC,cAAY,YAGxE,kBAACoG,EAAA,EAAKsD,QAAQG,SAAd,CAAuB/gB,KAAK,WACvBygB,EAAOxrB,YAIpB,kBAACqoB,EAAA,EAAKqD,MAAN,KACI,kBAACxI,EAAA,EAAD,CAAYtQ,UAAU,QAClB,kBAACyV,EAAA,EAAKsD,QAAN,CACI1S,KAAK,WACLlO,KAAK,WACLoY,YAAY,qBACZC,aAAW,WACXwI,aAAa,KACbzM,SAAUd,EACV8B,OAAQkG,EACR1H,MAAO2M,EAAOxe,SACd8Y,UAAW2F,EAAQze,YAAc0e,EAAO1e,WAE5C,kBAACoW,EAAA,EAAWK,OAAZ,KACI,kBAACL,EAAA,EAAW2I,KAAZ,KACI,0BAAMjZ,UAAU,UAAUoP,YAAU,UAAUC,cAAY,YAGlE,kBAACoG,EAAA,EAAKsD,QAAQG,SAAd,CAAuB/gB,KAAK,WACvBygB,EAAO1e,YAIpB,kBAAC8R,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKjM,UAAU,UACX,4BAAQ7H,KAAK,SAAS6H,UAAU,6BAAhC,8BAIR,kBAACgM,EAAA,EAAD,CAAKhM,UAAU,QACX,kBAACiM,EAAA,EAAD,CAAKjM,UAAU,sBAAsBuC,MAAO,CAAEuN,UAAW,WACrD,kBAAC,IAAD,CAASpP,GAAE,qBAAwBV,UAAU,iEAAiEuC,MAAO,CAAE4W,WAAY,SAAnI,yBAGJ,kBAAClN,EAAA,EAAD,CAAKjM,UAAU,sBAAsBuC,MAAO,CAAEuN,UAAW,WACrD,kBAAC,IAAD,CAASpP,GAAE,iBAAoBV,UAAU,iEAAiEuC,MAAO,CAAE4W,WAAY,SAA/H,uCAWpC,kBAAC,IAAD,CAAkB3R,QAAS1N,KAAK7B,MAAMuP,iB,GA5I1CxB,IAAM1E,WA4JpB8X,EAAiBlS,YAAQ,KAAM,CAAEvN,SAAUmB,IAAYnB,UAAtCuN,CAAkDuQ,GClLzE,wF,6GCAA,8OAAO,IAAM3W,EAAUuY,OAAOC,OAAOxY,QACxByY,EAAaF,OAAOC,OAAOC,WAC3BC,EAASH,OAAOC,OAAOE,OAOvBC,EAAc,2CACdrf,EAAS,CAClBD,UAAW,MACXE,cAAe,wBAENmM,EAAqB,qFACrBkT,EAAWL,OAAOC,OAAOI,SACbL,OAAOC,OAAOK,W,yMCfjCC,EAAe,CACjB,CACIvS,KAAM,qBACNxB,UAAWP,aAAS,kBAAM,mCAE9B,CACI+B,KAAM,kBACNxB,UAAWP,aAAS,kBAAM,mCAE9B,CACI+B,KAAM,2BACNxB,UAAWP,aAAS,kBAAM,kEAM9B,CACI+B,KAAM,WACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,aACNxB,UAAWP,aAAS,kBAAM,6CAE9B,CACI+B,KAAM,WACNxB,UAAWP,aAAS,kBAAM,iEAM9B,CACI+B,KAAM,gBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,yBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,kBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,sBACNxB,UAAWP,aAAS,kBAAM,mCAG9B,CACI+B,KAAM,WACNxB,UAAWP,aAAS,kBAAM,mCAE9B,CACI+B,KAAM,cACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,qBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,WACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,yBACNxB,UAAWP,aAAS,kBAAM,wEAE9B,CACI+B,KAAM,YACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,oBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,YACNxB,UAAWP,aAAS,kBAAM,+EAE9B,CACI+B,KAAM,0BACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,WACNxB,UAAWP,aAAS,kBAAM,0DAE9B,CACI+B,KAAM,yBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,kBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,YACNxB,UAAWP,aAAS,kBAAM,+EAE9B,CACI+B,KAAM,oBACNxB,UAAWP,aAAS,kBAAM,0DAC3B,CACC+B,KAAM,WACNxB,UAAWP,aAAS,kBAAM,oCAC3B,CACC+B,KAAM,YACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,qBACNxB,UAAWP,aAAS,kBAAM,wEAE9B,CACI+B,KAAM,yBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,0BACNxB,UAAWP,aAAS,kBAAM,+EAE9B,CACI+B,KAAM,wBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,eACNxB,UAAWP,aAAS,kBAAM,gFAE9B,CACI+B,KAAM,uBACNxB,UAAWP,aAAS,kBAAM,oCAE9B,CACI+B,KAAM,YACNxB,UAAWP,aAAS,kBAAM,kEAG9B,CACI+B,KAAM,sBACNxB,UAAWP,aAAS,kBAAM,mCAE9B,CACI+B,KAAM,wBACNxB,UAAWP,aAAS,kBAAM,mCAE9B,CACI+B,KAAM,8BACNxB,UAAWP,aAAS,kBAAM,mCAO9B,CACI+B,KAAM,qBACNxB,UAAWP,aAAS,kBAAM,oCAI9B,CACI+B,KAAM,IACNxB,UAAWP,aAAS,kBAAM,gF,kCC9J5BuU,EAAMR,OAAOS,WAAP,sBAENC,E,kDAMF,WAAY/e,GAAQ,IAAD,8BACf,cAAMA,IA6CVgf,gBAAkB,WACd,OAAO,EAAK/hB,MAAMgiB,cAAcha,KAAI,WAA2BnE,GAAO,IAA/B9I,EAA8B,EAA9BA,MAAOiI,EAAuB,EAAvBA,IAAK2K,EAAkB,EAAlBA,SAC/C,OACI,wBAAI5F,UAAU,6BAA6BjH,IAAK+C,GAC5C,kBAAC,IAAD,CAASyO,QAAS,WAAQ,EAAKtJ,SAAS,CAAEiZ,aAAc,EAAKjiB,MAAMiiB,eAAkBla,UAAU,mDAAmDma,OAAK,EAACzZ,GAAIzF,GAAMjI,GAChK4S,GAAYA,EAAS7J,QAAU6J,EAAS7J,OAAS,EAC/C,yBAAKiE,UAAU,qBACX,wBAAIA,UAAU,mBACT4F,EAAS3F,KAAI,WAA2BoU,GAAO,IAA/BrhB,EAA8B,EAA9BA,MAAOiI,EAAuB,EAAvBA,IAAK2K,EAAkB,EAAlBA,SACzB,OACI,kBAAC,IAAMxF,SAAP,CAAgBrH,IAAKsb,GACfzO,GAAYA,EAAS7J,QAAU6J,EAAS7J,OAAS,EAC/C,4BACI,uBAAGiE,UAAU,WAAWhN,GACxB,wBAAIgN,UAAU,oBACT4F,EAAS3F,KAAI,WAAiBV,GAAO,IAArBvM,EAAoB,EAApBA,MAAOiI,EAAa,EAAbA,IACpB,OACI,wBAAIlC,IAAKwG,EAAGS,UAAU,kBAAiB,kBAAC,IAAD,CAASma,OAAK,EAACzZ,GAAIzF,EAAKsP,QAAS,WAAQ,EAAKtJ,SAAS,CAAEiZ,aAAc,EAAKjiB,MAAMiiB,gBAAmBlnB,SAO5J,4BAAI,kBAAC,IAAD,CAASuX,QAAS,WAAQ,EAAKtJ,SAAS,CAAEiZ,aAAc,EAAKjiB,MAAMiiB,eAAkBla,UAAU,UAAUma,OAAK,EAACzZ,GAAIzF,GAAMjI,UAOrJ,UA7ED,EAkFnBonB,qBAAuB,WACnB,OAAI,EAAKniB,MAAMoiB,oBAAsB,EAAKpiB,MAAMoiB,mBAAmBte,OACxD,EAAK9D,MAAMoiB,mBAAmBpa,KAAI,SAACC,EAAMpE,GAC5C,OAEI,wBAAI/C,IAAK+C,GAAG,kBAAC,IAAD,CAASkE,UAAU,UAAUma,OAAK,EAACzZ,GAAIR,EAAKjF,KAAMiF,EAAKlN,WAIpE,IA3FI,EAsGnBsnB,uBAAyB,WACrB,OACI,wBAAI/X,MAAO,IACP,4BACI,yBAAKvC,UAAU,6CACX,2BAAOA,UAAU,eAAe7H,KAAK,OAAO4T,MAAO,EAAK9T,MAAMsiB,YAAahK,YAAY,6CAAwBhE,SAAU,EAAKd,aAAc+O,WAAY,EAAKC,eAAgBlY,MAAO,CAAE2V,YAAa,UAAWwC,aAAc,OAAQpR,OAAQ,QAAUkH,aAAW,WACjQ,4BAAQxQ,UAAU,iDAAiDuK,QAAS,kBAAM,EAAKvP,MAAMsP,QAAQ/D,KAAK,uBAAyB,EAAKtO,MAAMsiB,eAC1I,uBAAGva,UAAU,eAAeM,cAAY,YAIpD,wBAAIiC,MAAO,IACP,uBAAGvC,UAAU,mDAAmDO,KAAK,KAArE,mBAEH,EAAKtI,MAAMgiB,eAAiB,EAAKhiB,MAAMgiB,cAAcle,QAClD,EAAKie,oBAnHjB,EAAK/hB,MAAQ,CACTgiB,cAAe,GACfI,mBAAoB,GACpBE,YAAa,GACbI,gBAAgB,EAChBC,cAAef,EAAIgB,QACnBX,aAAa,GAEjB,EAAKzO,aAAe,EAAKA,aAAaoB,KAAlB,gBACpB,EAAK4N,eAAiB,EAAKA,eAAe5N,KAApB,gBACtB,EAAKiO,kBAAoB,EAAKA,kBAAkBjO,KAAvB,gBACzB,EAAKkO,iBAAmB,EAAKA,iBAAiBlO,KAAtB,gBAbT,E,iEAgBfgN,EAAImB,YAAYlhB,KAAKghB,qB,0CAIrBhhB,KAAKmhB,qB,6CAILpB,EAAIqB,eAAephB,KAAKghB,qB,uCAGXK,GACbrhB,KAAKmH,SAAS,CAAEiZ,YAAaiB,M,0CAI7BrhB,KAAKmH,SAAS,CAAE2Z,cAAef,EAAIgB,QAASX,aAAa,M,yCAGzC,IAAD,OACfrZ,MAAM,GAAD,OAAIC,IAAJ,sBACAC,MAAK,SAAArG,GAAG,OAAIA,EAAIsG,UAChBD,MAAK,SAAChR,GACH,IAAIqrB,EAAWrrB,EAAKlC,QAAO,SAAA+kB,GAAC,OAAiB,GAAbA,EAAEjI,WAC9B0Q,EAAgBtrB,EAAKlC,QAAO,SAAA+kB,GAAC,OAAiB,GAAbA,EAAEjI,WACvC,EAAK1J,SAAS,CAAEgZ,cAAemB,EAAUf,mBAAoBgB,OAEhEna,MAAMC,QAAQC,O,mCAkDVsK,GACT5R,KAAKmH,SAAS,CAAEsZ,YAAa7O,EAAMoH,OAAO/G,U,qCAE/B+G,GACY,IAAnBA,EAAOwI,UACPxhB,KAAKkB,MAAMsP,QAAQ/D,KAAK,uBAAyBzM,KAAK7B,MAAMsiB,e,+BA0B1D,IAAD,OACL,OACI,yBAAKva,UAAU,YACX,yBAAKA,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,oDACX,kBAAC,IAAD,CAASA,UAAU,6BAA6Bma,OAAK,EAACzZ,GAAG,IAAI6B,MAAO,CAAE0O,OAAO,OACzE,yBAAKjR,UAAU,YAAYqC,IAAKkZ,IAAWlS,MAAM,OAAO/G,IAAI,MAKhE,yBAAKtC,UAAU,2BAA2B5R,GAAG,0BACzC,wBAAI4R,UAAU,sCACTlG,KAAK7B,MAAMgiB,eAAiBngB,KAAK7B,MAAMgiB,cAAcle,QAClDjC,KAAKkgB,kBAGT,wBAAIha,UAAU,6BAA6BuC,MAAO,CAAEiZ,YAAa,MAAOC,cAAe,QACnF,kBAAC,IAAD,CAASzb,UAAU,mDAAmDma,OAAK,EAACzZ,GAAG,IAAI6B,MAAO,CAAEkZ,cAAe,QAAS,uBAAGzb,UAAU,qBAAqBM,cAAY,OAAOiC,MAAO,CAAEyT,MAAO,UAAWiC,SAAU,WAC9M,yBAAKjY,UAAU,eACX,wBAAIA,UAAU,mBACV,kBAAC,IAAMI,SAAP,KAEQtG,KAAKsgB,4BAc7B,yBAAKpa,UAAU,wCACX,2BAAOA,UAAU,eAAe7H,KAAK,OAAO4T,MAAOjS,KAAK7B,MAAMsiB,YAAahO,SAAUzS,KAAK2R,aAAc+O,WAAY1gB,KAAK2gB,eAAgBlY,MAAO,CAAE2V,YAAa,UAAWwC,aAAc,OAAQpR,OAAO,QAAUkH,aAAW,WAC5N,4BAAQxQ,UAAU,iDAAiDuK,QAAS,kBAAM,EAAKvP,MAAMsP,QAAQ/D,KAAK,uBAAyB,EAAKtO,MAAMsiB,eAC1I,uBAAGva,UAAU,eAAeM,cAAY,gBASpE,kBAAC,IAAD,CACIob,QACI,wBAAInZ,MAAO,IACP,4BACI,yBAAKvC,UAAU,6CACX,2BAAOA,UAAU,eAAe7H,KAAK,OAAO4T,MAAOjS,KAAK7B,MAAMsiB,YAAahK,YAAY,6CAAwBhE,SAAUzS,KAAK2R,aAAc+O,WAAY1gB,KAAK2gB,eAAgBlY,MAAO,CAAE2V,YAAa,UAAWwC,aAAc,OAAQpR,OAAQ,QAAUkH,aAAW,WACjQ,4BAAQxQ,UAAU,iDAAiDuK,QAAS,kBAAM,EAAKvP,MAAMsP,QAAQ/D,KAAK,uBAAyB,EAAKtO,MAAMsiB,eAC1I,uBAAGva,UAAU,eAAeM,cAAY,YAIpD,wBAAIiC,MAAO,IACP,uBAAGvC,UAAU,mDAAmDO,KAAK,KAArE,mBAEHzG,KAAK7B,MAAMgiB,eAAiBngB,KAAK7B,MAAMgiB,cAAcle,QAClDjC,KAAKkgB,mBAIjBmB,KAAMrhB,KAAK7B,MAAMiiB,YACjByB,UAAW7hB,KAAKihB,iBAChBa,iBAAiB,oCACjBC,iBAAiB,0CACjBC,cAAc,qBAEd,4BAAQ9b,UAAU,+EAA+EuK,QAAS,kBAAM,EAAKwQ,kBAAiB,KACtI,uBAAG/a,UAAU,kC,GA/MGgG,IAAM1E,WA+OpCya,EAAeC,YAAWjC,G,qJCzO1BkC,G,yDAGF,WAAYjhB,GAAQ,IAAD,8BACf,cAAMA,IAWVkhB,WAAa,SAACC,GACV,IADsB,EACC,IAAIC,KAAKC,eAAe,KAAM,CAAEC,KAAM,UAAW9f,MAAO,UAAWK,IAAK,UAAW0f,QAAS,SACdC,cAAcL,GAF7F,mBAENI,EAFM,KAEbxQ,MAA6BlP,EAFhB,KAESkP,MAAyBvP,EAFlC,KAE2BuP,MAA2BuQ,EAFtD,KAE+CvQ,MAErE,MAAM,GAAN,OAAUwQ,EAAV,qBAA2B1f,EAA3B,YAAkCL,EAAlC,YAA2C8f,IAhB5B,EAwGnBG,kBAAoB,WAChB,OACI,yBAAKzc,UAAU,sDAEX,yBAAKA,UAAU,oCACX,2BAAOuM,SAAU,SAAC1M,GAAD,OAAO,EAAKoB,SAAS,CAAEsZ,YAAa1a,EAAEiT,OAAO/G,SAAU/L,UAAU,gBAAgB7H,KAAK,OAAOqY,aAAW,SAASzE,MAAO,EAAK9T,MAAMykB,UAAWnM,YAAa,EAAKtY,MAAM0kB,cAAepa,MAAO,CACzM2V,YAAa,UACbwC,aAAc,GACdpR,OAAQ,GACRsT,gBAAiB,cACjBpa,aAAc,EACdqa,OAAQ,EACRC,aAAc,iBACd9G,MAAO,QAEPwE,WAAY,EAAKC,iBAErB,4BAAQza,UAAU,iDAAiDuK,QAAS,kBAAM,EAAKvP,MAAMsP,QAAQ/D,KAAK,eAAiB,EAAKtO,MAAMsiB,eAClI,uBAAGva,UAAU,eAAeM,cAAY,OAAOiC,MAAO,CAAEyT,MAAO,eAGvE,yBAAKhW,UAAU,8DACX,kBAAC,IAAD,CAASU,GAAG,qBAAqBV,UAAU,oCAA3C,wBACA,uBAAGA,UAAU,sCAAb,KACA,kBAAC,IAAD,CAASU,GAAG,aAAaV,UAAU,oCAAnC,+BAhIG,EAsInB+c,WAAa,WAAO,IAAD,QACTC,EAAehX,IAAMiX,YAAW,WAAwB7P,GAAxB,IAAGxH,EAAH,EAAGA,SAAU2E,EAAb,EAAaA,QAAb,OAClC,uBACIhK,KAAK,GACL6M,IAAKA,EACL7C,QAAS,SAAC1K,GACNA,EAAEqd,iBACF3S,EAAQ1K,KAGX+F,EACD,kBAAC,IAAD,CAAMyB,KAAM8V,IAAmBrV,KAAM,GAAKkO,MAAO,aAGzD,OACK,EAAKhe,OACF,yBAAKgI,UAAU,2FACX,wBAAIA,UAAU,sBACV,wBAAIA,UAAU,YACV,yBAAKA,UAAU,qCACX,2BAAOuM,SAAU,SAAC1M,GAAD,OAAO,EAAKoB,SAAS,CAAEsZ,YAAa1a,EAAEiT,OAAO/G,SAAU/L,UAAU,gBAAgB7H,KAAK,OAAOqY,aAAW,SAASzE,MAAO,EAAK9T,MAAMykB,UAAWnM,YAAa,EAAKtY,MAAM0kB,cAAepa,MAAO,CACzM2V,YAAa,UACbwC,aAAc,GACdpR,OAAQ,GACRsT,gBAAiB,cACjBpa,aAAc,EACdqa,OAAQ,EACRC,aAAc,iBACd9G,MAAO,QAEPwE,WAAY,EAAKC,iBAErB,4BAAQza,UAAU,iDAAiDuK,QAAS,kBAAM,EAAKvP,MAAMsP,QAAQ/D,KAAK,eAAiB,EAAKtO,MAAMsiB,eAClI,uBAAGva,UAAU,eAAeM,cAAY,OAAOiC,MAAO,CAAEyT,MAAO,gBAI3E,kBAACoH,EAAA,EAAD,CAAUhR,GAAG,KAAKpM,UAAU,YACxB,kBAACod,EAAA,EAASC,OAAV,CAAiBjR,GAAG,IAAI7L,KAAK,IAAIP,UAAU,sBAAsBuC,MAAO,CAAE+a,MAAO,MAAOC,OAAQ,OAASC,SAAS,gBAC9G,uBAAGxd,UAAU,iBACZ,YAAK/H,aAAL,eAAYwlB,WAAW5vB,QAAO,SAAA+kB,GAAC,OAAmB,GAAfA,EAAEhc,aAAgBmF,QAAS,EAC3D,0BAAMiE,UAAU,kDAAkD,EAAK/H,MAAMwlB,WAAW5vB,QAAO,SAAA+kB,GAAC,OAAmB,GAAfA,EAAEhc,aAAgBmF,OAAtH,KACE,IAGV,kBAACqhB,EAAA,EAASM,KAAV,CAAetR,GAAG,KAAKpM,UAAU,mBAAmB2d,YAAY,GAE5D,yBAAK3d,UAAU,2BACX,yBAAKA,UAAU,uBACX,yBAAKA,UAAU,gEAAgEuC,MAAO,CAAEqb,UAAW,wBAC/F,uBAAG5d,UAAU,iCACb,2BAAO7H,KAAK,OACR/J,GAAG,sBACH4R,UAAU,kDACVuQ,YAAY,yEACZlK,KAAK,YAGT,kBAAC,IAAD,CAAS3F,GAAG,IAAI6J,QAAS,kBAAM,EAAKsT,gBAAgB7d,UAAU,2CAC1D,uBAAGA,UAAU,eAAeM,cAAY,aAUxD,yBAAKN,UAAU,kBACV,YAAK/H,aAAL,eAAYwlB,cAAc,YAAKxlB,aAAL,eAAYwlB,WAAW1hB,QAAS,EAA1D,UAA8D,EAAK9D,aAAnE,aAA8D,EAAYwlB,WAAWxd,KAAI,SAAC6d,EAAU1U,GACjG,IAAIpW,EAAQ,GAIZ,OAHwC,GAApC8qB,EAASzd,QAAQ8U,QAAQ,SAAqD,GAArC2I,EAASzd,QAAQ8U,QAAQ,UAClEniB,EAAQ8qB,EAASzd,QAAQ/C,QAAQ,MAAO,IAAIA,QAAQ,OAAQ,KAI5D,yBAAKvE,IAAKqQ,EAAOpJ,UAAiC,GAAtB8d,EAASlnB,UAAiB,wDAA0D,mDAC5G,yBAAKoJ,UAAU,OAAOuC,MAAO,CAAE8G,MAAO,GAAIC,OAAQ,GAAIsT,gBAAiB,OAAQpa,aAAc,GAAIub,SAAU,SAAUlB,OAAQ,mBAErHiB,EAASE,WAEL,yBAAKhe,UAAU,6BAA6BqC,IAAK,UAAGvB,KAAYgd,EAASE,WAAY1b,IAAI,KACvF,IAGd,yBAAKtC,UAAU,wBACX,yBAAKA,UAAU,UACX,yBAAKuC,MAAO,CAAE8G,MAAO,MACjB,kBAAC,IAAD,CAAS3I,GAAIod,EAASG,UAAY,IAAK1T,QAAS,kBAAM,EAAK2T,aAAaJ,EAAS1vB,GAAI,IAAI4R,UAAU,sDAAsDuC,MAAO,CAAE4b,WAAY,WAAY3C,YAAa,QACnM,kBAAC4B,EAAA,EAASpQ,KAAV,CAAeZ,GAAIgS,IAAM1d,GAAIod,EAASG,UAAY,IAAK1b,MAAO,CAAEiZ,YAAa,QACzE,uBAAGxb,UAAU,wDAAwDhN,MAAOA,EAAOuP,MAAO,CAAEiZ,YAAa,OAAS6C,wBAAyB,CAAEC,OAAQR,EAASzd,cAM1K,yBAAKL,UAAU,wBAEX,kBAACod,EAAA,EAAD,KACI,kBAACA,EAAA,EAASC,OAAV,CAAiBjR,GAAI4Q,EAAc5uB,GAAG,+BAEtC,kBAACgvB,EAAA,EAASM,KAAV,CAAe1d,UAAU,mBAAmB2d,YAAY,GACpD,yBAAK3d,UAAU,gDACX,yBAAKA,UAAU,iBACX,yBAAKA,UAAU,kDACX,kBAAC,IAAD,CAASU,GAAG,IAAI6J,QAAS,kBAAM,EAAK2T,aAAaJ,EAAS1vB,GAAI,IAAI4R,UAAU,sDAAsDuC,MAAO,CAAE4b,WAAY,WAAY3C,YAAa,QAAhL,qDAOZ,kBAAC4B,EAAA,EAASpQ,KAAV,CAAezC,QAAS,kBAAM,EAAKgU,UAAUT,EAAS1vB,KAAKowB,SAAS,IAAIxe,UAAU,0DAA0DuC,MAAO,CAAE4b,WAAY,WAAY3C,YAAa,QAA1L,2BAEA,kBAAC4B,EAAA,EAASpQ,KAAV,CAAezC,QAAS,kBAAM,EAAKkU,YAAYX,EAAS1vB,KAAKowB,SAAS,IAAIxe,UAAU,0DAA0DuC,MAAO,CAAE4b,WAAY,WAAY3C,YAAa,QAA5L,iCAKhB,yBAAKxb,UAAU,SACX,uBAAGA,UAAU,uCAAuC,EAAK6B,eAAeic,EAASY,gBAQ7F,uBAAG1e,UAAU,sDAAsDuC,MAAO,CAAE4b,WAAY,WAAYrO,UAAW,WAA/G,4CAUX,EAAK7X,MAAM0mB,iBAAmB,IAAM,EAAK1mB,MAAMwlB,WAAW1hB,OAAS,EAChE,kBAAC,IAAD,CAAS2E,GAAG,IAAI6J,QAAS,kBAAM,EAAKqU,YAAY5e,UAAU,sDAAsDuC,MAAO,CAAE4b,WAAY,WAAYrO,UAAW,WAA5J,wCAGA,KAOZ,kBAACsN,EAAA,EAAD,CAAUhR,GAAG,KAAKpM,UAAU,6BACxB,kBAACgY,EAAA,EAAD,CAAO3V,IAAK,EAAKrH,MAAMhD,MAAMgmB,WAAald,IAAU,EAAK9F,MAAMhD,MAAMgmB,WAAaa,IAAgB7e,UAAU,aAAasC,IAAI,aAAaC,MAAO,CAAE,MAAS,OAAQ,aAAgB,SACpL,kBAAC6a,EAAA,EAASC,OAAV,CAAiBjR,GAAG,IAAIpM,UAAU,WAAWO,KAAK,KAC9C,0BAAMP,UAAU,sBAAsB,EAAKhF,MAAMhD,MAAM7K,WAG3D,kBAACiwB,EAAA,EAASM,KAAV,CAAetR,GAAG,KAAKpM,UAAU,mBAAmB2d,YAAY,GAC5D,4BAAQ3d,UAAU,gBAAgBuK,QAAS,WAAQ,EAAKuU,qBACpD,uBAAG9e,UAAU,+CADjB,oBAGA,4BAAQA,UAAU,gBAAgBuK,QAAS,WAAQ,EAAKwU,qBACpD,uBAAG/e,UAAU,+CAAgD,EAAKhI,MAAM8O,SAASR,SAAS,MAAQ,iCAA2B,8BAEjI,4BAAQtG,UAAU,iBACd,kBAAC,IAAD,CAASU,GAAG,qBAAqBV,UAAU,wBAAwBuC,MAAO,CAAEyT,MAAO,YAC/E,uBAAGhW,UAAU,uDADjB,mDAIJ,4BAAQA,UAAU,iBACd,kBAAC,IAAD,CAASU,GAAG,sBAAsBV,UAAU,wBAAwBuC,MAAO,CAAEyT,MAAO,YAChF,uBAAGhW,UAAU,gDADjB,uCAIJ,4BAAQA,UAAU,iBACd,kBAAC,IAAD,CAASU,GAAG,wBAAwBV,UAAU,wBAAwBuC,MAAO,CAAEyT,MAAO,YAClF,uBAAGhW,UAAU,iDADjB,8CAIJ,4BAAQA,UAAU,iBACd,kBAAC,IAAD,CAASU,GAAG,8BAA8BV,UAAU,wBAAwBuC,MAAO,CAAEyT,MAAO,YACxF,uBAAGhW,UAAU,qDADjB,sDAIJ,yBAAKA,UAAU,qBACf,uBAAGA,UAAU,gBAAgBuK,QAAS,WAAQ,EAAKyU,UAAYze,KAAK,IAAI0e,cAAY,QAAQC,cAAY,gBACpG,uBAAGlf,UAAU,uDADjB,iCA5TxB,EAAKhI,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAKC,MAAQ,CACTsiB,YAAa,GACboC,cAAe,6CACfc,WAAY,GACZkB,iBAAkB,IAEtB,EAAKlE,eAAiB,EAAKA,eAAe5N,KAApB,gBATP,E,qDAoBf/S,KAAKkB,MAAMsP,QAAQ/D,KAAK,gB,yCAIxBzM,KAAKkB,MAAMsP,QAAQ/D,KAAK,e,yCAIpBzM,KAAK9B,MAAM8O,SAASR,SAAS,MAC7BxM,KAAKkB,MAAMsP,QAAQ/D,KAAK,2BAA6BzM,KAAK9B,MAAM5K,UAEhE0M,KAAKkB,MAAMsP,QAAQ/D,KAAK,YAAczM,KAAK9B,MAAM5K,Y,qCAE1C0lB,GACY,IAAnBA,EAAOwI,UACPxhB,KAAKkB,MAAMsP,QAAQ/D,KAAK,eAAiBzM,KAAK7B,MAAMsiB,e,0CAIpDzgB,KAAK9B,MAAMzK,YAAcuM,KAAK9B,MAAMzK,WAAa,GACjDuM,KAAKqlB,UAAUrlB,KAAK7B,MAAM0mB,iBAAkB,M,gCAG1Cl6B,EAAW0yB,GAAY,IAAD,OACxBrd,KAAK9B,MAAMhL,cACX8pB,IAAesI,cAActlB,KAAK9B,MAAMzK,WAAY9I,EAAW0yB,GAAWrY,WAAU,SAAApE,GAChF,EAAKuG,SAAS,CACVwc,WAAY/iB,EAAI3K,Y,qCAKjBuM,GACX,GAAgB,MAAZA,EACA,MAAO,GAGP,IAAIC,EAAI,IAAIvO,KAAKsO,GACbE,EAAQD,EAAEE,WAAa,EAK3B,OAJUF,EAAEI,UACO,MACb,GAAKH,GAAOT,OAAS,EAAI,IAAM,IAAMS,EAAQ,IAC/CD,EAAEK,gB,mCAIDxO,EAAI8E,GAAS,IAAD,OACrB,GAAI4G,KAAK9B,MAAMzK,YAAcuM,KAAK9B,MAAMzK,WAAa,EAAG,CACpD,IAAI8xB,EAAY,CAAEjxB,GAAIA,EAAIwI,UAAW1D,GACrC4jB,IAAeoH,aAAamB,EAAWjxB,GAAI0Q,WAAU,WAEjD,EAAKqgB,UAAU,EAAKlnB,MAAM0mB,iBAAkB,U,iCAMpD7kB,KAAKmH,SAAS,CAAE0d,iBAAkB,KAClC7kB,KAAKqlB,UAAU,GAAI,M,qCAInB,IAAIhI,EAAYnC,SAASC,eAAe,uBAAuBlJ,MAC/DjS,KAAKqlB,UAAUrlB,KAAK7B,MAAM0mB,iBAAkBxH,K,yEAEhC/oB,G,4FACF0L,KAAKsQ,QAAQjL,IAAImgB,QAAQ,4D,kCAC/BxI,IAAeyH,UAAUnwB,GAAI0Q,WAAU,WACnC,EAAKqgB,UAAU,EAAKlnB,MAAM0mB,iBAAkB,O,kLAItCvwB,G,8FACJ0L,KAAKsQ,QAAQjL,IAAImgB,QAAQ,6D,kCAC3BxlB,KAAK9B,MAAMzK,YAAcuM,KAAK9B,MAAMzK,WAAa,IAC7C8xB,EAAY,CAAEjxB,GAAIA,EAAIwI,UAAW,GACrCkgB,IAAeoH,aAAamB,EAAWjxB,GAAI0Q,WAAU,WACjD,EAAKqgB,UAAU,EAAKlnB,MAAM0mB,iBAAkB,Q,sIA0OxD,OACI,4BAAQ3e,UAAU,cAAcuC,MAAO,CAAEgd,gBAAgB,OAAD,OAASC,IAAT,OACpD,yBAAKxf,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,oEACX,uBAAGA,UAAU,+CAA+ClG,KAAKoiB,WAAWluB,KAAKyxB,QAErD,MAA3B3lB,KAAK9B,MAAMhL,aAAuB8M,KAAKijB,aAAejjB,KAAK2iB,uBAKxE,yBAAKzc,UAAU,OACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,+CACX,yBAAKA,UAAU,kDACX,kBAAC,IAAD,CAASU,GAAG,KACR,yBAAK2B,IAAKqd,IAAYpd,IAAI,iBAE9B,4BAAQtC,UAAU,mDAAlB,sBACA,4BAAQA,UAAU,mDAAlB,8CAEJ,yBAAKA,UAAU,+BACX,uBAAGA,UAAU,iCAAb,yM,GAtWCgG,IAAM1E,YAArC2a,EAEKrS,YAAcC,IA+WzB,IAKM8V,EAAgBzY,aALE,SAACjP,GACrB,MAAO,CACHD,MAAOC,EAAMD,SAG0B,KAAzBkP,CAA+B+U,GACtCD,cAAW2D,G,uEC/XpBvI,GAASC,YAAO,IAGhBuI,GAAiB,CACnB5sB,MAAO,GACP6sB,KAAM,IAGJC,G,kDAKF,WAAY9kB,GAAQ,IAAD,8BACf,cAAMA,IACDhD,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAKC,MAAQ,CACTlI,KAAM6vB,GACNG,UAAW,GACXC,UAAU,EACVxY,SAAS,EACTuB,QAAQ,EACR7Q,OAAQ,MACR9J,GAAI,KACJ6xB,YAAY,EACZC,mBAAoB,GACpBC,WAAY,GACZC,WAAY,IAEhB,EAAKvhB,cAAgB,GAhBN,E,gEAkBE,IAAD,OAChB/E,KAAK+E,cAAL,WAAmCiY,IAAeE,WAAWlY,WAAU,SAAApE,GAEnEoc,IAAeuJ,oBAAoBvhB,WAAU,SAAApE,GAErCA,EAAI3K,KAAKgM,OAAS,EAClB,EAAKkF,SAAS,CAAEgf,YAAY,EAAMG,WAAY,kFAE9C,EAAKnf,SAAS,CAAE+e,UAAU,EAAMjX,QAAQ,EAAM3a,GAAI,OAClD,EAAKkyB,oC,iDAQO,IAAD,OACvBxJ,IAAewJ,2BAA2BxhB,WAAU,SAAApE,GAEhD,EAAKuG,SAAS,CAAEif,mBAAoBxlB,EAAI3K,OAGxC,IADA,IAAIowB,EAAa,GACRrkB,EAAI,EAAGA,EAAIpB,EAAI3K,KAAKgM,OAAQD,IAAK,CACtC,IAAIykB,EAAO,CAAEC,oBAAqB,EAAKvoB,MAAMioB,mBAAmBpkB,GAAG1N,GAAIqyB,QAAS,GAChFN,EAAW5Z,KAAKga,GAEpB,EAAKtf,SAAS,CAAEkf,WAAYA,S,6CAGZ,IAAD,OACnB/nB,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,mB,iCAGpB,IAAD,OACPjF,KAAKmH,SAAS,CACVuG,SAAS,IAEb,IAAIzX,EAAO,CAAE2wB,kBAAmB5mB,KAAK7B,MAAMkoB,YAE3CrJ,IAAe6J,qBAAqB5wB,GAAM+O,WAAU,WAChD,EAAK8hB,QACL,EAAK3f,SAAS,CAAEgf,YAAY,EAAMG,WAAW,qEAC7C,EAAKnf,SAAS,CACVuG,SAAS,OAGb,SAAChE,GAEG,EAAKvC,SAAS,CACVuG,SAAS,S,kCAObqZ,GACR/mB,KAAKmH,SAAS,CAAE8H,QAAQ,IACpBjP,KAAKkB,MAAM8lB,SACXhnB,KAAKkB,MAAM8lB,QAAQD,K,iCAIhBhV,GAEP,GAAgB,MADAA,EAAGkV,SAAWlV,EAAGmV,OAG7B,OADAnV,EAAGqR,kBACI,I,sCAIX,MAAO,oD,8BAGPpjB,KAAKmH,SAAS,CAAE8H,QAAQ,M,oCAGxBjP,KAAKmH,SAAS,CAAEgf,YAAY,M,kCAGpBgB,EAAWC,EAAW7a,GAG9B,IAFA,IAAI8a,EAAa,GAERrlB,EAAI,EAAGA,EAAIhC,KAAK7B,MAAMkoB,WAAWpkB,OAAQD,IAAK,CAEnD,GADc,UAAYhC,KAAK7B,MAAMkoB,WAAWrkB,GAAG0kB,qBACpCna,EAAM,CACjB,IAAI+a,EAAW,CAAEZ,oBAAqB1mB,KAAK7B,MAAMkoB,WAAWrkB,GAAG0kB,oBAAqBC,QAASQ,GAC7FE,EAAW5a,KAAK6a,QAGhBD,EAAW5a,KAAKzM,KAAK7B,MAAMkoB,WAAWrkB,IAG9ChC,KAAKmH,SAAS,CAAEkf,WAAYgB,M,+BAEtB,IAAD,OACL,OACI,6BACI,kBAACtZ,EAAA,EAAD,CAAOC,KAAK,KAAKuZ,UAAU,EAAOrZ,SAAS,SAASD,KAAMjO,KAAK7B,MAAM8Q,OAAQyI,OAAQ1X,KAAK2X,YAAY5E,KAAK/S,OACvG,kBAAC,IAAD,CAAkB0N,QAAS1N,KAAK7B,MAAMuP,UACtC,kBAAC,IAAD,CACI+Q,iBAAkBnB,GAClBoB,SAAU,SAACE,GAEP,EAAKF,SAASE,IAElB4I,oBAAoB,EACpB7I,cAAe3e,KAAK7B,MAAMspB,aAEzB,gBACG5J,EADH,EACGA,aADH,EAEGlM,aAFH,EAGGgI,WAHH,EAIGiF,OAJH,EAKGC,QALH,EAMGC,OANH,OAQO,kBAACnD,EAAA,EAAD,CAAMoD,YAAU,EAACL,SAAUb,GACvB,kBAAClC,EAAA,EAAKqD,MAAN,CAAY0I,UAAU,iBAAiBjf,MAAO,CAAEua,aAAc,sBAC1D,wBAAI9c,UAAU,gDAAd,2CAKJ,yBAAKA,UAAU,oCACV,EAAK/H,MAAMioB,mBAAmBnkB,OAAS,EAAI,EAAK9D,MAAMioB,mBAAmBjgB,KAAI,SAACyY,EAAQtP,GAAT,OAE1E,yBAAKrQ,IAAKqQ,EAAOpJ,UAAU,YACvB,uBAAGA,UAAU,wCAAwC0Y,EAAO1lB,MAA5D,KACA,yBAAKgN,UAAU,aACX,kBAAC,KAAD,CACIqG,KAAM,UAAYqS,EAAOtqB,GACzBqzB,UAAU,UACVC,eAAe,UACfC,YAAa,EAAKA,YAAY9U,KAAK,GACnC+U,eAAgB,SAACxY,EAAO2C,GACpB,OACI,8BACI,uBAAG/L,UAAWoJ,GAAS2C,EAAQ,cAAgB,kBAI3D8V,mBAAoB,WAChB,OACI,8BACI,0BAAMtf,MAAO,CAAEuf,SAAU,aAAc,uBAAG9hB,UAAU,iBACpD,8BAAM,uBAAGA,UAAU,+BAO1C,IAIT,kBAACyV,EAAA,EAAKqD,MAAN,CAAY1M,GAAIH,IAAKoE,GAAG,KAAKmR,UAAU,GAAGxhB,UAAU,kCAChD,kBAAC6Q,EAAA,EAAD,CAAQC,QAAQ,UAAU3Y,KAAK,SAASoS,QAAS,kBAAM,EAAKiO,YAAYjW,MAAO,CAAE8G,MAAO,QAAxF,YACA,kBAACwH,EAAA,EAAD,CAAQC,QAAQ,SAAS3Y,KAAK,SAASoS,QAAS,kBAAM,EAAKqW,SAASre,MAAO,CAAE8G,MAAO,QAApF,kBAQxB,kBAACxB,EAAA,EAAD,CAAOC,KAAK,KAAKuZ,UAAU,EAAOrZ,SAAS,SAASD,KAAMjO,KAAK7B,MAAMgoB,YACjE,yBAAKjgB,UAAU,iBACX,yBAAKA,UAAU,gBACX,yBAAKA,UAAU,kBAAf,mBAEA,4BAAQ7H,KAAK,SAAS6H,UAAU,WAEjB,yBAAKA,UAAU,cAC9B,2BAAIlG,KAAK7B,MAAMmoB,aACnB,yBAAKpgB,UAAU,gBACX,4BAAQ7H,KAAK,SAAS6H,UAAU,2BAA2BuK,QAAS,kBAAM,EAAKwX,gBAA/E,wB,GA1MczgB,aAApCwe,GACKlW,YAAcC,I,ICJnBmY,GAAiB,I,4KANf,OAAO1nB,IAAKO,IAAL,UAAYiG,IAAZ,mC,wCAGP,OAAOxG,IAAKmB,IAAL,UAAYqF,IAAZ,0C,GANc/F,MCGvBknB,IDOU/iB,0B,kDCNZ,WAAYlE,GAAQ,IAAD,8BACf,cAAMA,IAkFVknB,SAAW,SAACriB,GACR,OAAQA,GACJ,KAAK,EACD,EAAKoB,SAAS,CAAEkhB,OAAO,MAtFhB,EA4FnBC,UAAY,SAACviB,GACT,OAAQA,GACJ,KAAK,EACD,EAAKoB,SAAS,CAAEkhB,OAAO,MA7F/B,EAAKnqB,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAKC,MAAQ,CACToqB,YAAa,EACbC,kBAAmB,GACnBC,eAAgB,GAChBC,gBAAiB,EACjBC,iBAAkB,EAClBC,eAAgB,EAChBC,eAAgB,EAChBR,OAAO,GAXI,E,gEAcE,IAAD,OAGZS,GADQ,IAAI50B,MACK60B,SAAS,GAC9B,GAAgD,GAA5CC,eAAeC,QAAQ,kBAAwB,CAC/C,IAAIC,EAAY,IAAIh1B,MACpBg1B,EAAYA,EAAUH,SAAS,KACdI,aAAaF,QAAQ,qBAClCf,GAAekB,kBAAkBpkB,WAAU,SAAApE,OAE3CuoB,aAAaE,QAAQ,kBAAmBP,SAI5CE,eAAeK,QAAQ,iBAAkB,KACzCF,aAAaE,QAAQ,kBAAmBP,GACxCZ,GAAekB,kBAAkBpkB,WAAU,SAAApE,OAI/CsnB,GAAeoB,cAActkB,WAAU,SAAApE,GACnC,IAAI6B,EAAI,IAAIvO,KACRwO,EAAQD,EAAEE,WACV5M,EAAQ0M,EAAEE,WAAa,EACvB7M,EAAM2M,EAAEK,cACRymB,EAAc3oB,EAAI3K,KAAKuzB,QAAO,SAAUC,EAAMC,GAC9C,OAAOD,EAAOC,EAAInB,cACnB,GACCoB,EAAiB1lB,KAAK2lB,IAAIC,MAAM5lB,KAAMrD,EAAI3K,KAAKkQ,KAAI,SAAUgK,GAAK,OAAOA,EAAEoY,gBAC3EuB,EAAqBlpB,EAAI3K,KAAKlC,QAAO,SAAA+kB,GAAC,OAAIA,EAAEyP,aAAeoB,KAC/D,GAAIG,EAAmB7nB,OAAS,EAC5B,IAAI8nB,EAAoBD,EAAmB,GAAG/zB,MAAQ,GAAK,IAAM+zB,EAAmB,GAAG/zB,MAAQ,IAAM+zB,EAAmB,GAAGh0B,IAAMg0B,EAAmB,GAAG/zB,MAAQ,IAAM+zB,EAAmB,GAAGh0B,SAGvLi0B,EAAoBh0B,EAAQ,GAAK,IAAMA,EAAQ,IAAMD,EAAMC,EAAQ,IAAMD,EAEjF,IAAIk0B,EAAiB,EACrB,GAAItnB,EAAQ,GACR,IAAIunB,EAAiB,IAAMvnB,EAAQ,IAAM5M,OAGrCm0B,EAAiBvnB,EAAQ,IAAM5M,EAGvC,GAAI8K,EAAI3K,KAAKlC,QAAO,SAAA+kB,GAAC,OAAIA,EAAE/iB,OAAS2M,KAAOT,OAAS,EAAG,CAC/C+nB,EAAiB/lB,KAAKimB,IAAIL,MAAM5lB,KAAMrD,EAAI3K,KAAKkQ,KAAI,SAAUgK,GAAK,OAAOA,EAAEoY,gBAA/E,IACI4B,EAAkBvpB,EAAI3K,KAAKlC,QAAO,SAAA+kB,GAAC,OAAIA,EAAEyP,aAAeyB,KAC5D,GAAIG,EAAgBloB,OAAS,EACrBgoB,EAAiBE,EAAgB,GAAGp0B,MAAQ,GAAK,IAAMo0B,EAAgB,GAAGp0B,MAAQ,IAAMo0B,EAAgB,GAAGr0B,IAAMq0B,EAAgB,GAAGp0B,MAAQ,IAAMo0B,EAAgB,GAAGr0B,SAGzKm0B,EAAiBl0B,EAAQ,GAAK,IAAMA,EAAQ,IAAMD,EAAMC,EAAQ,IAAMD,EAI9E,IAAIs0B,EAAkBr0B,EAElBs0B,EADoBzpB,EAAI3K,KAAKlC,QAAO,SAAA+kB,GAAC,OAAIA,EAAE/iB,OAASA,KACf,GAAGwyB,YAC5C,EAAKphB,SAAS,CACVohB,YAAagB,EACbf,kBAAmBuB,EACnBtB,eAAgBwB,EAChBvB,gBAAiB0B,EACjBzB,iBAAkB0B,EAClBzB,eAAgBe,EAChBd,eAAgBmB,S,mCAuBO,MAA3BhqB,KAAK9B,MAAMhL,aACX8pB,IAAeE,WAAWhY,KAAK,CAC3B5Q,GAAI,KACJ8J,OAAQ,MACR6Q,QAAQ,IAGZjP,KAAKkB,MAAMsP,QAAQ/D,KAAK,CAAEQ,SAAU,iB,+BAKlC,IAAD,OACL,OACI,gCACI,yBAAK/G,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,0BACX,yBAAKA,UAAU,uCACX,yBAAKA,UAAU,qFACX,kBAAC,IAAD,CAASU,GAAG,KACR,yBAAK2B,IAAKqd,IAAYpd,IAAI,iBAE9B,uBAAGtC,UAAU,oCAAb,sBAAyD,6BAAzD,8CAEJ,yBAAKuC,MAAO,CAAEua,aAAc,uBAAyB9c,UAAU,qBAC3D,uBAAGA,UAAU,+CAAb,8CAA+E,6BAA/E,uDAC8B,6BAD9B,iDAEuB,6BAFvB,kDAKJ,yBAAKuC,MAAO,CAAEua,aAAc,uBAAyB9c,UAAU,qBAC3D,uBAAGA,UAAU,2DAAb,gMAKJ,yBAAKA,UAAU,qBACX,yBAAKA,UAAU,uBACX,yBAAKA,UAAU,0BACf,yBAAKA,UAAU,2BAA2BokB,YAAa,kBAAM,EAAKlC,SAAS,IAAImC,WAAY,kBAAM,EAAKjC,UAAU,KAC5G,uBAAGpiB,UAAU,8CAAb,iCAAyE,0BAAMA,UAAU,cAAclG,KAAK7B,MAAMoqB,cAEhHvoB,KAAK7B,MAAMkqB,OACT,yBAAKniB,UAAU,gCACX,yBAAKA,UAAU,sBACX,uBAAGA,UAAU,sDAAb,mDAA0FlG,KAAK7B,MAAMoqB,YAArG,MAEJ,wBAAIriB,UAAU,uBACd,yBAAKA,UAAU,sBACX,uBAAGA,UAAU,sDAAb,uDAAgGlG,KAAK7B,MAAMuqB,gBAA3G,KAA8H1oB,KAAK7B,MAAMwqB,iBAAzI,QAEJ,wBAAIziB,UAAU,uBACd,yBAAKA,UAAU,sBACX,uBAAGA,UAAU,sDAAb,8DAAuGlG,KAAK7B,MAAMqqB,kBAAlH,KAAuIxoB,KAAK7B,MAAMyqB,eAAlJ,OAEJ,wBAAI1iB,UAAU,uBACd,yBAAKA,UAAU,sBACX,uBAAGA,UAAU,sDAAb,yDAAoGlG,KAAK7B,MAAMsqB,eAA/G,KAAiIzoB,KAAK7B,MAAM0qB,eAA5I,cAS5B,yBAAK3iB,UAAU,0CACX,wBAAIA,UAAU,iBAAiBuC,MAAO,CAAE8V,QAAS,iBAC7C,4BACI,uBAAGrY,UAAU,oCAAb,qBAEJ,4BAAI,kBAAC,IAAD,CAASma,OAAK,EAACzZ,GAAG,cAAcV,UAAU,6CAA1C,+CACJ,4BAAI,kBAAC,IAAD,CAASma,OAAK,EAACzZ,GAAG,qBAAqBV,UAAU,6CAAjD,kDACJ,4BAAI,kBAAC,IAAD,CAASma,OAAK,EAACzZ,GAAG,sBAAsBV,UAAU,6CAAlD,iDACJ,4BAAI,kBAAC,IAAD,CAASma,OAAK,EAACzZ,GAAG,kBAAkBV,UAAU,6CAA9C,8CAEAlG,KAAK9B,MAAMhL,aACP,4BAAI,kBAAC,IAAD,CAASmtB,OAAK,EAACzZ,GAAG,qBAAqBV,UAAU,6CAAjD,sCACF,KAIlB,yBAAKA,UAAU,0CACX,wBAAIA,UAAU,kBACV,4BACI,uBAAGA,UAAU,kCAEjB,4BAAI,kBAAC,IAAD,CAASma,OAAK,EAACzZ,GAAG,gBAAgBV,UAAU,6CAA5C,6CAGAlG,KAAK9B,MAAMhL,aACP,4BAAI,kBAAC,IAAD,CAASmtB,OAAK,EAACzZ,GAAI,IAAKV,UAAU,4CAA4CuK,QAASzQ,KAAKwqB,WAAWzX,KAAK/S,OAA5G,8CACF,GAEV,4BAAI,kBAAC,IAAD,CAASqgB,OAAK,EAACzZ,GAAG,kBAAkBV,UAAU,6CAA9C,wBACJ,4BAAI,kBAAC,IAAD,CAASma,OAAK,EAACzZ,GAAG,yBAAyBV,UAAU,6CAArD,oDAEClG,KAAK9B,MAAMhL,cAAgB8M,KAAK9B,MAAM3K,OAAOiZ,SAAS,KACnD,4BAAI,kBAAC,IAAD,CAAS6T,OAAK,EAACzZ,GAAG,WAAWV,UAAU,6CAAvC,qBACF,GAGNlG,KAAK9B,MAAMhL,aACP,4BAAI,kBAAC,IAAD,CAASmtB,OAAK,EAACzZ,GAAG,oBAAoBV,UAAU,6CAAhD,6CACF,KAIlB,yBAAKA,UAAU,sCACX,wBAAIA,UAAU,kBACV,4BACI,uBAAGA,UAAU,mDAAb,oBAEJ,4BACI,yBAAKA,UAAU,UACX,uBAAGA,UAAU,wCAAwCM,cAAY,SACjE,uBAAGN,UAAU,iDAAb,yEAKR,4BACI,yBAAKA,UAAU,UACX,uBAAGA,UAAU,8BAA8BM,cAAY,SACvD,uBAAGN,UAAU,iDAAb,qBAGR,4BACI,yBAAKA,UAAU,UACX,uBAAGA,UAAU,iCAAiCM,cAAY,SAC1D,uBAAGN,UAAU,iDAAb,sBAGR,wBAAIA,UAAU,OAAOuC,MAAO,CAAEgiB,UAAW,wBAAyB,uBAAGhkB,KAAK,IAAIP,UAAU,6CAAtB,6FAQ1F,kBAAC,GAAD,W,GAtPoBgG,IAAM1E,YA+P3BkjB,GADMxI,YAAWiG,ICjQ1BwC,G,kDACF,WAAYzpB,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACTysB,UAAW,IAHA,E,gEAME,IAAD,OAChB5N,IAAe6N,iBAAiB,GAAG7lB,WAAU,SAAApE,GACzC,EAAKuG,SAAS,CAAEyjB,UAAWhqB,EAAI2F,QAAQ/C,QAAQ,gBAAiB,W,+BAIpE,OACI,yBAAK0C,UAAU,uBAAsB,6BAASqe,wBAAyB,CAAEC,OAAQxkB,KAAK7B,MAAMysB,kB,GAdpE1e,IAAM1E,WAqB3BsjB,GADM5I,YAAWyI,ICb1BI,I,yDACF,WAAY7pB,GAAQ,IAAD,8BACf,cAAMA,IACD/C,MAAQ,CACT6sB,QAAQ,GAEZ,EAAKC,mBAAqB,EAAKA,mBAAmBlY,KAAxB,gBALX,E,iEAQf/S,KAAKmH,SAAS,CACV6jB,QAAShrB,KAAK7B,MAAM6sB,W,+BAIxB,OACI,kBAAC,IAAiB1c,SAAlB,MAEQ,gBAAGjJ,EAAH,EAAGA,IAAH,OACI,kBAAC,IAAQqJ,SAAT,CAAkBuD,MAAO,CACrB+K,eAAgBA,IAChB3X,IAAKA,IAGL,yBAAKa,UAAU,aACX,kBAAC,EAAD,MACA,kBAAC+b,EAAD,MACA,kBAAC,IAAD,KACKnC,EAAa3Z,KAAI,SAACmH,EAAOtL,GAAR,OACd,kBAAC,IAAD,eAAoB/C,IAAK+C,GAAOsL,QAIxC,kBAAC,GAAD,MACA,kBAAC,GAAD,e,GAjCLpB,IAAM1E,YCDlB0jB,G,uKANP,OACI,sD,GALgBhf,IAAM1E,WCE5B2jB,G,+KAKE,OAAO,kBAAC,IAAD,CAAUvkB,GAAG,iB,0CAGpBjH,IAAYulB,W,+BAGZ,OACI,6BACKllB,KAAKorB,sB,GAbQlf,IAAM1E,W,wCCFvB6jB,GAAgB,CACzBC,QAAS,EACTjtB,KAAM,SACNktB,WAAY,CACR,GAAM,CACFltB,KAAM,SACNmtB,SAAS,GAEb,YAAe,CACXntB,KAAM,UAEV,QAAW,CACPA,KAAM,UAEV,YAAe,CACXA,KAAM,UAEV,iBAAmB,CACfA,KAAK,UAET,YAAe,CACXA,KAAM,UAEV,QAAU,CACNA,KAAM,WAEV,UAAa,CACTA,KAAM,SACNotB,QAAS,GAEb,UAAa,CACTptB,KAAM,SACNotB,QAAS,GAEb,UAAa,CACTptB,KAAM,SACNotB,QAAS,IAGjBC,QAAS,CAAC,UAAU,mBAAmB,eACvChO,SAAU,CAAC,KAAM,Y,UCxCRiO,GAAiB,CAC1BL,QAAS,EACTjtB,KAAM,SACNktB,WAAY,CAER,GAAM,CACF,KAAQ,SACR,SAAW,GAEf,OAAU,CACN,KAAQ,UAEZ,YAAe,CACX,KAAQ,UAEZ,QAAW,CACP,KAAQ,WAEZ,YAAe,CACX,KAAQ,UAEZ,iBAAmB,CACf,KAAO,UAEX,QAAU,CACN,KAAQ,WAEZ,WAAc,CACV,KAAQ,CAAC,SAAU,SAEvB,mBAAsB,CAClB,KAAQ,CAAC,SAAU,SAEvB,aAAe,CACX,KAAQ,QACR,aAAe,EACf,MAAS,CACL,KAAQ,SACR,WAAc,CACV,YAAe,CACX,KAAQ,UAEZ,YAAc,CACV,KAAQ,UAEZ,WAAc,CACV,KAAQ,CAAC,SAAU,SAEvB,oBAAsB,CAClB,KAAO,UAEX,mBAAqB,CACjB,KAAQ,CAAC,SAAU,YAKnC,iBAAoB,CAChB,KAAQ,CAAC,SAAS,QAClB,WAAc,CAEV,QAAU,CACNltB,KAAK,UAET,YAAc,CACVA,KAAK,UAET,iBAAmB,CACfA,KAAK,UAKT,QAAU,CACNA,KAAK,WAET,YAAc,CACVA,KAAK,aAMrBqtB,QAAS,CAAC,mBAAoB,eAC9BhO,SAAU,CAAC,OC1EfkO,aAAYC,EAAQ,MACpBD,aAAYE,MACZ,IACMC,GAAmB,SAAC91B,GACtB,OAAO,SAAC+1B,GAsBJ,OArBKA,IAEDA,EAAM,CACFC,GAAI,GACJC,YAAa,GACbC,YAAal2B,EAAKk2B,cAgBnB,CACHC,MAbO,gEACkCJ,EAAIC,GADtC,+BAC+DD,EAAIE,YADnE,uCAC6GF,EAAIG,YADjH,oBACwIl2B,EAAKo2B,OAD7I,gOAePC,UAAW,MAIjBC,GAAyB,SAACP,GAc5B,MAAO,CACHI,MAbO,gMAcPE,UALc,CACd3iB,QAASqiB,KAOXQ,GAAc,SAAW/M,IACzBgN,GAAW,IAAIC,sBAAmBF,GAAa,CACjDG,WAAW,EACXC,QAAS,IACTC,UAAW,WACPxlB,QAAQC,IAAI,mCAEhBwlB,mBAAoB,WAChBzlB,QAAQC,IAAI,2CAEhBylB,qBAAsB,IACtBC,kBAAmB,IACnBphB,MAAM,IAaNqhB,GAAY,KAcVC,GAAO,uCAAG,4BAAAC,EAAA,sEAEKC,aAAiB,CAC9B7gB,KAAM,SACN8gB,QAAS,MACTjtB,SAAU,eALF,cAENktB,EAFM,yBAsBLA,GAtBK,2CAAH,qDAyBAvsB,GAAM,WAGf,OAFKksB,KACDA,GAAYC,MACTD,I,oDChHL3P,GAASC,YAAO,IAGhBgQ,G,kDASF,WAAYrsB,GAAQ,IAAD,8BACf,cAAMA,IAmDVssB,eAAiB,WACT,EAAKC,gBAAgBC,UAAY,EAAKD,gBAAgBE,aAAe,KAAO,EAAKF,gBAAgBC,YACjG,EAAKD,gBAAgBC,UAAY,EAAKD,gBAAgBG,eAtD3C,EAqPnBC,WAAa,WACT,EAAK1mB,SAAS,CACV2mB,gBAAgB,EAChBC,qBAAsB,EAAK5vB,MAAM4vB,qBAAuB,KAExD,EAAK5vB,MAAM4vB,sBAAwB,EAAK5vB,MAAM6vB,aAAa/rB,QAC3D,EAAKgsB,WA3PM,EAgSnBC,eAAiB,WAEb,OADkC,EAAK/vB,MAAM6vB,aAEbjqB,MAAM,EAAG,EAAK5F,MAAM4vB,sBAAsB5nB,KAAI,SAACC,EAAMkJ,GAC7E,OACI,yBAAKrQ,IAAKqQ,EAAOpJ,UAAS,oCAA+BE,EAAK+nB,aAAe,EAAKjtB,MAAMktB,YAAc,sCAAwC,mBAE1I,yBAAKloB,UAAU,cACX,0BAAMqe,wBAAyB,CAAEC,OAAQpe,EAAKioB,SAAWn1B,MAAQiL,IAAYmqB,mBAAmBloB,EAAK8lB,gBAGvG9lB,EAAK+nB,aAAe,EAAKjtB,MAAMktB,YACzB,yBAAKloB,UAAU,YACnB,kBAACod,EAAA,EAAD,KACI,kBAACA,EAAA,EAASC,OAAV,CAAiBvM,QAAQ,GAAG9Q,UAAU,iBAAiBuC,MAAO,IAA9D,OAIA,kBAAC6a,EAAA,EAASM,KAAV,KACI,kBAACN,EAAA,EAASpQ,KAAV,CAAezC,QAAS,kBAAM,EAAK8d,gBAAgBnoB,EAAK6lB,MAAxD,aAGC,kBAAC,IAAM3lB,SAAP,WApT7BkoB,KAAmBvnB,MAAK,SAAArG,GACpB,EAAK0sB,GAAK1sB,KAEd,EAAKzC,MAAQ,CACTwL,QAAS,GACT8kB,UAAW,GACXC,cAAe,GACfV,aAAc,GACdzc,UAAWrQ,EACX6sB,qBAAsB,GACtBY,WAAW,EACXC,MAAO,EACPd,eAAgB,EAAK5sB,MAAM4sB,eAC3Be,YAAa,GACbC,SAAS,EACTC,UAAU,EACVtO,YAAY,IAEhB,EAAKviB,MAAQqB,IAAM+K,WAAWpM,MAC9B,EAAK6G,cAAgB,GACrB,EAAKiqB,eAAiB,GACtB,EAAKC,mBAAqB,WAAa/tB,EAAMktB,YAAc,KAvB5C,E,2DAyBJc,EAAUC,GACrB,IAAMC,EAAIF,EAAS,GAAGG,mBAAmBD,EACzCpvB,KAAKwtB,iBACLxtB,KAAKmH,SAAS,CAAEynB,MAAOQ,M,wEAGZn5B,G,0EACNA,EAAKo4B,QAAQ5Q,O,iEAED+Q,K,cAAXlB,E,OACNr3B,EAAKg2B,GAAKtW,eACV1f,EAAKk2B,YAAcnsB,KAAKkB,MAAMirB,Y,SACxBmB,EAAGttB,KAAKgvB,gBAAgBM,OAAOr5B,G,OACrC+J,KAAKmH,SAAS,CAAEynB,MAAO,IACvB5uB,KAAKwtB,iB,4PAILxtB,KAAKuvB,iBACyB,MAA1BvvB,KAAKkB,MAAMirB,aAAiD,IAA1BnsB,KAAKkB,MAAMirB,cAC7CnsB,KAAKwtB,iBACLxtB,KAAKmvB,SAAW,IAAIK,qBAChBxvB,KAAKyvB,eAAe1c,KAAK/S,OAE7BA,KAAKmvB,SAASO,QAAQ1vB,KAAKytB,kB,yQAS/BnvB,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,kBAExBjF,KAAK2vB,iB,gCACC3vB,KAAK2vB,iBAAiBC,S,uBAEfpB,K,UAAXlB,E,OACNttB,KAAKgvB,eAAiB,KAAOhvB,KAAKkB,MAAMirB,YAAY3oB,QAAQ,KAAM,IACtC,OAAxBxD,KAAKgvB,e,oBACA1B,EAAGttB,KAAKgvB,gB,kCACgB1B,EAAGuC,WAAW,CACnCtjB,KAAMvM,KAAKgvB,eACX1R,OAAQ+N,K,uBAGhBiC,EAAGttB,KAAKivB,oBAAoBa,QAAQ9vB,KAAKkB,MAAMirB,aAAa4D,OAAO9oB,KAAnE,uCAAwE,WAAM+kB,GAAN,SAAAmB,EAAA,sDAChEnB,GACA,EAAK7kB,SAAS,CACVsnB,UAAkF,MAAvEzC,EAAIgE,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAAuBpC,EAAIgE,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAAa8B,SAAWlE,EAAImE,OAC5KzB,cAAuF,MAAvE1C,EAAIgE,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,gBAA0G,MAAlFpC,EAAIgE,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAAagC,WAAsBppB,IAAUglB,EAAIgE,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAAagC,WAAaC,OAJxN,2CAAxE,uDAQgB,GAChBrwB,KAAK2vB,iBAAmBrC,EAAGttB,KAAKgvB,gBAAgBsB,YAAY,CACxDnvB,IAAK6F,IACL3E,QAAS,CACL,cAAiB,UAAYrC,KAAKkB,MAAMhO,cAE5Cq9B,KAAM,CACFC,aAAchC,GAA8B,CAAErC,YAAansB,KAAKkB,MAAMirB,YAAaE,QAAQ,KAE/F5f,KAAM,CACFgkB,UAVQ,GAWRD,aAAchC,IAElBkC,YAAa,UACbC,MAAM,EACNC,aAAc,MAElB5wB,KAAK+E,cAAL,sBAA8C/E,KAAK2vB,iBAAiBkB,OAAO7rB,WAAU,SAAA0E,GACjFlJ,IAAKO,IAAI,qBAAqBiE,eAG5B8rB,EAAMrE,GAASvjB,QAAQ,CACzBkjB,MDvDQ,yJCwDRE,UAAW,CACP,YAAetsB,KAAKkB,MAAMirB,eAGlCnsB,KAAK+E,cAAL,SAAiC+rB,EAAI9rB,UAAU,CAC3CE,KAAK,WAAD,4BAAE,WAAOjP,GAAP,SAAAk3B,EAAA,sEACI,EAAKwC,iBAAiBoB,MAD1B,2CAAF,mDAAC,GAGL/nB,MAJ2C,SAIrCA,GACF3B,QAAQC,IAAI0B,MAIpBhJ,KAAK+E,cAAL,aAAqCuoB,EAAGttB,KAAKgvB,gBAAgBiB,KACzD,CACIe,SAAU,CACN7E,YAAa,CAAE8E,IAAKjxB,KAAKkB,MAAMirB,gBAItCt4B,KAAK,CAAE,YAAe,IAAKq9B,EAAElsB,WAAU,SAAAwE,GAC/BA,IAGL,EAAKrC,SAAS,CACV6mB,aAAcxkB,EACdkE,SAAS,IAGT,EAAKvP,MAAM6vB,aAAa/rB,OAAS,IACjC,EAAKkF,SAAS,CACV2nB,SAAQ,Q,8QAOXN,K,cAAXlB,E,gBACAA,EAAGttB,KAAKgvB,gBAAgBc,UAAUj8B,KAAK,eACxCk8B,OAAO9oB,MAAK,SAAAuC,GACJA,GAGL,EAAKrC,SAAS,CACV0nB,YAAarlB,EAAS0iB,iB,uBAG5BnlB,MAAMC,IAAS,CACjB6D,OAAQ,OACRxI,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,UAAYrC,KAAKkB,MAAMhO,cAE5CgN,KAAMiC,KAAKC,UAAU,CACjBgqB,ODrGMn2B,ECqG2B,CAAEk7B,OAAQ,GAAIC,QAASpxB,KAAK7B,MAAM0wB,YAAa1C,YAAansB,KAAKkB,MAAMirB,YAAaE,QAAQ,GDpGnI,yDAAN,OACiDp2B,EAAKk7B,OADtD,+BACmFl7B,EAAKm7B,QADxF,uCAC8Hn7B,EAAKk2B,YADnI,oBAC0Jl2B,EAAKo2B,OAD/J,iOCqGYC,UAAW,OAEhBrlB,MAAK,SAAAoqB,GAAC,OAAIA,EAAEnqB,UAAQD,MAAK,SAAAhR,GA0BxB,OAxB+C,MAA3CA,EAAKA,KAAKq7B,+BAAyCr7B,EAAKA,KAAKq7B,8BAA8BrvB,OAAS,GACpGqrB,EAAG,EAAK0B,gBAAgBuC,WAAWt7B,EAAKA,KAAKq7B,+BAC7ChE,EAAG,EAAK0B,gBAAgBiB,KACpB,CACIe,SAAU,CACN7E,YAAa,CAAE8E,IAAK,EAAK/vB,MAAMirB,gBAItCt4B,KAAK,CAAE,YAAe,IAAKq9B,EAAElsB,WAAU,SAAAwE,GAC/BA,GAGL,EAAKrC,SAAS,CACV6mB,aAAcxkB,EACdkE,SAAS,QAKrB,EAAKvG,SAAS,CACV2nB,SAAS,IAGV74B,K,iCDlIE,IAACA,I,2GCqICsb,EAAWigB,EAAWC,GACjClgB,EAAU4a,aAAensB,KAAKkB,MAAMirB,aAAe5a,EAAUre,cAAgB8M,KAAKkB,MAAMhO,aACxF8M,KAAKuvB,iBAMAvvB,KAAK7B,MAAM2vB,gBAChB9tB,KAAKwtB,mB,+EAKSkE,G,gGACDlD,K,cAAXlB,E,OACAlB,EAAQkB,EAAGttB,KAAKgvB,gBAAgBiB,OAAO0B,MAAM,MAAMC,GAAGF,G,SACtDtF,EAAMyF,S,OACZvE,EAAGttB,KAAKgvB,gBAAgBiB,KACpB,CACIe,SAAU,CACN7E,YAAa,CAAE8E,IAAKjxB,KAAKkB,MAAMirB,gBAItCt4B,KAAK,CAAE,YAAe,IAAKq9B,EAAElsB,WAAU,SAAAwE,GAC/BA,IAGL,EAAKrC,SAAS,CACV6mB,aAAcxkB,EACdkE,SAAS,IAGT,EAAKvP,MAAM6vB,aAAa/rB,OAAS,GACjC,EAAKkF,SAAS,CACV2nB,SAAS,IAGb,EAAK3nB,SAAS,CACV2nB,SAAS,Q,4QAMzBxwB,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,kBAExBjF,KAAK2vB,iB,gCACC3vB,KAAK2vB,iBAAiBC,S,+IAYjB3d,GACfjS,KAAKmH,SAAS,CAAEsZ,YAAaxO,M,mFAEP6f,G,iFAChB9xB,KAAKmH,SAAS,CAChB4nB,UAAU+C,EACVrR,YAAY,K,OAEXqR,GACD9xB,KAAK+xB,cAAc,I,oLAGPC,G,gGACCxD,K,OAAXlB,E,OACNttB,KAAKmH,SAAS,CAAEuG,SAAS,IACrBukB,EAAS,IAAIC,OAAOF,EAAQ,KAChC1E,EAAGttB,KAAKgvB,gBAAgBiB,KACpB,CACIe,SAAU,CACN7E,YAAa,CAAE8E,IAAKjxB,KAAKkB,MAAMirB,aAC/BkC,QAAS,CAAE8D,OAAQF,MAI1Bp+B,KAAK,CAAE,YAAe,IAAKq9B,EAAElsB,WAAU,SAAAwE,GAC/BA,GAGL,EAAKrC,SAAS,CACV6mB,aAAcxkB,EACdkE,SAAS,O,sIAiCf,IAAD,OACL,OAA8B,MAA1B1N,KAAKkB,MAAMirB,aAAiD,IAA1BnsB,KAAKkB,MAAMirB,YAEzC,yBAAKjmB,UAAU,uBACX,yBAAKA,UAAU,aACX,yBAAKA,UAAU,gBACX,yBAAKA,UAAU,iFACX,yBAAKA,UAAU,wDACX,yBAAKA,UAAU,YAAYuC,MAAO,CAAE8G,MAAO,OAAQC,OAAQ,SACvD,yBAAKjH,IAAKvI,KAAK7B,MAAMuwB,cAAelmB,IAAI,GAAG+G,MAAO,GAAIC,OAAQ,GAAI/G,MAAO,CAAEC,aAAc,WAC7F,uBAAGxC,UAAU,wCAAwCuC,MAAO,CAAE0V,SAAU,SAAWne,KAAK7B,MAAMswB,YAElG,yBAAKvoB,UAAU,uCACX,wBAAIA,UAAU,OACV,wBAAIA,UAAU,WAAWuC,MAAO,CAAE2pB,OAAQ,YAAa,uBAAG3hB,QAAS,kBAAM,EAAK4hB,oBAAoB,EAAKl0B,MAAM4wB,WAAW7oB,UAAU,8EAC9H,6BAAK,yBAAKosB,QAAQ,YAAYzkB,KAAK,eAAepF,MAAO,CAAE8G,MAAO,SAAUC,OAAQ,WAChF,0BAAM/M,EAAE,6QAO5B,yBAAKyD,UAAU,kBAAkBuC,MAAOzI,KAAK7B,MAAM4wB,SAAW,GAAK,CAAEwD,QAAQ,SACzE,2BAAOl0B,KAAK,OAAO6H,UAAU,yBAAyBuQ,YAAY,4BAAexE,MAAOjS,KAAK7B,MAAMsiB,YAAahO,SAAU,SAACb,GAAY,EAAK4gB,mBAAmB5gB,EAAMI,cAAcC,UACnL,yBAAK/L,UAAU,YAAW,uBAAGuC,MAAO,CAAE2pB,OAAQ,WAAa3hB,QAAS,kBAAM,EAAKshB,cAAc,EAAK5zB,MAAMsiB,eAA9E,uBAE9B,yBAAKva,UAAU,qBAAqBuC,MAAO,CAAE8V,QAAS,QAAUjL,IAAK,SAACA,GAAD,OAAS,EAAKma,gBAAkBna,IACjG,kBAAC,KAAD,CACImf,UAAW,EACXC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,SAAU,kBAAM,EAAKhF,cACrBiB,QAAS9uB,KAAK7B,MAAM2wB,QACpBgE,gBAAiB,kBAAM,EAAKrF,iBAC5BsF,OAAQ,yBAAK9zB,IAAK,EAAGiH,UAAU,UAAvB,gBAEJlG,KAAKkuB,mBAKjB,yBAAKhoB,UAAU,uEACX,kBAAC,IAAD,CACIuY,iBAAkBnB,GAClBoB,SAAU,SAACE,EAAD,GAA4B,IAAjBoU,EAAgB,EAAhBA,UACjB,EAAKtU,SAASE,GACdoU,EAAU,KAEdxL,oBAAoB,EACpB7I,cAAe3e,KAAK7B,MAAMwL,UAGzB,gBACGkU,EADH,EACGA,aACAlM,EAFH,EAEGA,aACAgI,EAHH,EAGGA,WAEAiF,GALH,EAIGoU,UAJH,EAKGpU,QACAC,EANH,EAMGA,QACAC,EAPH,EAOGA,OAPH,OASO,oCACI,kBAACnD,EAAA,EAAD,CAAMoD,YAAU,EAACL,SAAUb,GACvB,kBAAClC,EAAA,EAAKsD,QAAN,CACI3qB,GAAG,UACH4R,UAAU,sCACVuQ,YAAY,8BAAoBpY,KAAK,OACrCoK,MAAO,CAAEsa,OAAQ,MAAOvT,OAAQ,mBAChCyC,MAAO2M,EAAOyP,SAAW,GACzB5b,SAAUd,EACV8B,OAAQkG,EACRT,UAAW2F,EAAQwP,WAAavP,EAAOuP,UAE3C,kBAAC1S,EAAA,EAAKsD,QAAQG,SAAd,CAAuB/gB,KAAK,WACvBygB,EAAOuP,SAEZ,kBAACtX,EAAA,EAAD,CAAQ1Y,KAAK,SAAS6H,UAAU,6BAAhC,qBAcpC,yBAAKA,UAAU,uBACX,yBAAKA,UAAU,aACX,6C,GApaOsB,aAAzB+lB,GAKK0F,aAAe,CAClB9G,YAAa,GACb2B,gBAAe,GAqavB,IAMMoF,GAAc9lB,aANI,SAACjP,GACrB,MAAO,CACHjL,aAAciL,EAAMD,MAAMhL,aAC1Bk7B,YAAajwB,EAAMD,MAAMzK,cAGb2Z,CAAyBmgB,I,wCCvb7C3B,aAAYC,EAAQ,MACpBD,aAAYE,MACZF,aAAYuH,MACZvH,aAAYwH,MACZxH,aAAYyH,MACZzH,aAAY0H,MACZ,IACMC,GAA2B,SAACvH,GAqC9B,OApCKA,IAEDA,EAAM,CACFC,GAAI,GACJuH,iBAAkB,wBAgCnB,CACHpH,MA5BO,iEACuCJ,EAAIC,GAD3C,+BACoED,EAAIwH,iBADxE,msBA8BPlH,UAAW,KAIbmH,GAA2B,SAACzH,GAuB9B,MAAO,CACHI,MAtBO,0iBAuBPE,UALc,CACdoH,qBAAsB1H,KClFxB2H,G,kDACF,WAAYzyB,GAAQ,oBAChB,IAAM+b,EAAS3e,OAAOC,OAAO,GAAI,CAAE4C,IAAK,uBAAyBD,GADlD,mBAET+b,G,8DAGQrpB,GACd,OAAO4M,IAAKO,IAAL,UAAYiG,IAAZ,uCAAkDpT,EAAKo+B,QAAvD,iBAAuEp+B,EAAKlJ,KAA5E,yBAAiGkJ,EAAKjJ,gB,GAPvFsW,KAUxB8O,GAAU3K,0BACVwuB,GAAmB,IAAID,GCQvBE,G,kDACF,WAAY3yB,GAAQ,IAAD,8BACf,cAAMA,IA6LV4yB,sBAAwB,SAAC/tB,GAErB,EAAKoB,SAAS,CAAE4sB,qBAAqB,KAhMtB,EAkMnBC,uBAAyB,SAACjuB,GAEtB,EAAKoB,SAAS,CAAE4sB,qBAAqB,KApMtB,EAuSnBE,oBAAsB,SAACluB,GAAO,IACpBnS,EAAS,EAAKuK,MAAdvK,KAEFqe,EADSlM,EAAEiT,OACI/G,MACnBre,EAAKo+B,QAAU/f,EACf,EAAK9K,SAAS,CACVvT,SAEJ,EAAKsgC,WAAWtgC,IA/SD,EAiTnBugC,4BAA8B,SAACpuB,GAC3B,IACIkM,EADSlM,EAAEiT,OACI/G,MACnB,EAAKmiB,eAAeniB,EAAM1O,gBAlT1B,EAAKpF,MAAQ,CACTwL,QAAS,GACT0qB,cAAe,GACfC,qBAAsB,GACtBP,qBAAqB,EACrBQ,OAAQ,GACR3gC,KAAM,CACFlJ,KAAM,EACN0W,OAAQ,KACRzW,UAAW,GACX0W,UAAU,EACVzW,MAAO,EACPonC,QAAS,GACTj+B,OAAQ,KAIhB,EAAKgR,cAAgB,GACrB,EAAKkqB,mBAAqB,WAAa/tB,EAAMktB,YAAc,KAC3D,EAAKlwB,MAAQqB,IAAM+K,WAAWpM,MArBf,E,yLAwBfI,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,kBAExBjF,KAAK2vB,iB,gCACC3vB,KAAK2vB,iBAAiBC,S,uBAGfpB,K,WAAXlB,E,QACEttB,KAAKivB,oB,kCACgB3B,EAAGuC,WAAW,CACnCtjB,KAAMvM,KAAKivB,mBACX3R,OAAQqO,K,uBAGA,GAEhB3rB,KAAK2vB,iBAAmBrC,EAAGttB,KAAKivB,oBAAoBqB,YAAY,CAC5DnvB,IAAK6F,IACL3E,QAAS,CACL2I,cAAe,UAAYhL,KAAKkB,MAAMhO,cAE1Cq9B,KAAM,CACFC,aAAc+C,IAElB9mB,KAAM,CACFgkB,UAXQ,GAYRD,aAAciD,IAElB/C,YAAa,UACbC,MAAM,EACNC,aAAc,MAElB5wB,KAAK+E,cAAL,sBAEI/E,KAAK2vB,iBAAiBkB,OAAO7rB,WAAU,SAAC0E,GAGxClJ,IAAKO,IAAI,qBAAqBiE,WAAU,kBAItC8rB,EAAMrE,GAASvjB,QAAQ,CACzBkjB,MFyCa,qJExCbE,UAAW,CACPkI,YAAax0B,KAAKkB,MAAMktB,eAGhCpuB,KAAK+E,cAAL,SAAiC+rB,EAAI9rB,UAAU,CAC3CE,KAAK,WAAD,4BAAE,WAAOjP,GAAP,SAAAk3B,EAAA,sEACI,EAAKwC,iBAAiBoB,MAD1B,2CAAF,mDAAC,GAGL/nB,MAJ2C,SAIrCA,OAIVhJ,KAAK+E,cAAL,cAAsCuoB,EAAGttB,KAAKivB,oBACzCgB,OAAOp8B,KAAK,CAAE,iBAAoB,IAAKq9B,EAAElsB,WAAU,SAACwE,GACjD,GAAKA,EAAL,CAKA,IAAIirB,EAAWtyB,KAAKqW,MAAMrW,KAAKC,UAAUoH,IACzCirB,EAAWA,EAAStuB,KAAI,SAACC,EAAMkJ,GAsB3B,OArBAlJ,EAAK+pB,OAGI,MAFL/pB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAEjChoB,EAAK4pB,aAAaC,MAChB,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrC8B,SACA9pB,EAAK+pB,OACf/pB,EAAKgqB,WAGI,MAFLhqB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,gBAInB,MAFhBhoB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrCgC,WACAppB,IACFZ,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrCgC,WACAC,KACVjqB,EAAKsuB,mBAAqBtuB,EAAK4pB,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAAasG,mBACxFtuB,KAEX,EAAKe,SAAS,CACVktB,cAAeI,EACf/mB,SAAS,Q,oLAILye,G,4FAECqC,K,cACdxuB,KAAKivB,oBACHa,QAAQ3D,GACR4D,OACA9oB,KAHL,uCAGU,WAAO+kB,GAAP,eAAAmB,EAAA,0DACEnB,EADF,uBAEQ2I,EAAiB,SAACC,GACpB,IAAK,IAAI5yB,EAAI,EAAGA,EAAI4yB,EAAQ5E,aAAa/tB,OAAQD,IACzC4yB,EAAQ5E,aAAahuB,GAAGosB,cAAgB,EAAKltB,MAAMktB,cACnDwG,EAAQ5E,aAAahuB,GAAG6yB,qBAAsB,IAAI3gC,MAAO4gC,cACzDF,EAAQ5E,aAAahuB,GAAG0yB,mBAAqB,GAGrD,OAAOE,GATb,SAWQ5I,EAAI+I,aAAaJ,GAXzB,2CAHV,uDAiBA30B,KAAKmH,SAAS,CACVmtB,qBAAsBnI,I,mLAGXA,G,4FAEEqC,K,cACdxuB,KAAKivB,oBACHa,QAAQ3D,GACR4D,OACA9oB,KAHL,uCAGU,WAAO+kB,GAAP,eAAAmB,EAAA,0DACEnB,EADF,uBAEQ2I,EAAiB,SAACC,GACpB,IAAK,IAAI5yB,EAAI,EAAGA,EAAI4yB,EAAQ5E,aAAa/tB,OAAQD,IACzC4yB,EAAQ5E,aAAahuB,GAAGosB,cAAgB,EAAKltB,MAAMktB,cACnDwG,EAAQ5E,aAAahuB,GAAG6yB,qBAAsB,IAAI3gC,MAAO4gC,cACzDF,EAAQ5E,aAAahuB,GAAG0yB,mBAAqB,GAGrD,OAAOE,GATb,SAWQ5I,EAAI+I,aAAaJ,GAXzB,2CAHV,uD,6QAmBiBnG,K,cAAXlB,E,gBACAA,EAAGuE,S,OACTtS,OAAOrS,SAAS8nB,S,2QAGVh1B,KAAKuvB,iB,UAEK,OADZj8B,EAAW0M,KAAKkB,MAAM+zB,MAAM1zB,OAAOjO,WACH,IAAZA,GAAkBA,GAAY0M,KAAK9B,MAAM5K,S,gCACvD0M,KAAKk1B,eAAe5hC,G,OAE9B0M,KAAKk0B,WAAWl0B,KAAK7B,MAAMvK,M,+IAEZ2d,EAAWigB,EAAWC,GAEjClgB,EAAUre,cAAgB8M,KAAKkB,MAAMhO,cACrC8M,KAAKuvB,mB,qKAITjxB,OAAOgD,KAAKtB,KAAK+E,eAAeqH,SAAQ,SAACnN,GACrC,EAAK8F,cAAc9F,GAAKgG,kBAExBjF,KAAK2vB,iB,gCACC3vB,KAAK2vB,iBAAiBC,S,uIAazBh8B,GAAO,IAAD,OACP2gC,EAAWv0B,KAAK7B,MAAhBo2B,OACNX,GAAiBuB,kBAAkBvhC,GAAMoR,WAAU,SAAApE,GAC/C2zB,EAAsB,GAAb3gC,EAAKlJ,KAAYkW,EAAI3K,KAAOs+B,EAAOa,OAAOx0B,EAAI3K,MACvDrC,EAAKhJ,MAAQgW,EAAIyO,UACjB,EAAKlI,SAAS,CACVotB,cAEL,SAAA7qB,GACCrC,QAAQC,IAAIoC,Q,8EAGC2rB,G,8FACA7G,K,QAAXlB,E,QACHttB,KAAKivB,oBAAoBgB,KAAK,CAC7Be,SAAU,CACN,aAAgB,CACZ,WAAc,CACV,YAAe,CAAE,IAAOqE,QAIrCxhC,KAAK,CAAE,iBAAoB,IAAKq9B,EAAElsB,WAAU,SAAAwE,GFxJ7B,IAACwiB,EE0JXxiB,EAASvH,OAAS,EAClB,EAAKkF,SAAS,CACV4sB,qBAAqB,EACrBO,qBAAsB9qB,EAAS,GAAGyiB,KAKtCllB,MAAMC,IAAS,CACX6D,OAAQ,OACRxI,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,cAAiB,UAAY,EAAKnB,MAAMhO,cAE5CgN,KAAMiC,KAAKC,WFzKJ4pB,EE0Ke,CAAEqJ,SAAUA,GF1I3C,CACHjJ,MAhCO,ixBAiCPE,UALc,CACd+I,SAAUrJ,EAAIqJ,eE8IHpuB,MAAK,SAAAoqB,GAAC,OAAIA,EAAEnqB,UAAQD,MAAK,SAAAhR,GAEQ,MAA5BA,EAAKA,KAAKq/B,iBACVhI,EAAG,EAAK2B,oBAAoBK,OAAOr5B,EAAKA,KAAKq/B,gBAC7ChI,EAAG,EAAK2B,oBACHgB,OAAOp8B,KAAK,CAAE,iBAAoB,IAAKq9B,EAAElsB,WAAU,SAACwE,GACjD,GAAKA,EAAL,CAKA,IAAIirB,EAAWtyB,KAAKqW,MAAMrW,KAAKC,UAAUoH,IACzCirB,EAAWA,EAAStuB,KAAI,SAACC,EAAMkJ,GAsB3B,OArBAlJ,EAAK+pB,OAGI,MAFL/pB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAEjChoB,EAAK4pB,aAAaC,MAChB,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrC8B,SACA9pB,EAAK+pB,OACf/pB,EAAKgqB,WAGI,MAFLhqB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,gBAInB,MAFhBhoB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrCgC,WACAppB,IACFZ,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrCgC,WACAC,KACVjqB,EAAKsuB,mBAAqBtuB,EAAK4pB,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAAasG,mBACxFtuB,KAEX,EAAKe,SAAS,CACVktB,cAAeI,EACf/mB,SAAS,EACT4mB,qBAAsBr+B,EAAKA,KAAKq/B,eAAerJ,GAC/C8H,qBAAqB,e,wIAQzC,IACFngC,EAASoM,KAAK7B,MAAdvK,KACNA,EAAKjJ,UAAYiJ,EAAKjJ,UAAY,EAClCqV,KAAKmH,SAAS,CAAEvT,SAChBoM,KAAKk0B,WAAWtgC,K,8EAiBCqe,G,4FACAuc,K,cACdxuB,KAAKivB,oBAAoBgB,OAAOp8B,KAAK,CAAE,iBAAoB,IAAKq9B,EAAElsB,WAAU,SAACwE,GAC5E,GAAKA,EAAL,CAGA,IAAIirB,EAAWtyB,KAAKqW,MAAMrW,KAAKC,UAAUoH,IAyBzCirB,GAxBAA,EAAWA,EAAStuB,KAAI,SAACC,EAAMkJ,GAsB3B,OArBAlJ,EAAK+pB,OAGI,MAFL/pB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAEjChoB,EAAK4pB,aAAaC,MAChB,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrC8B,SACA9pB,EAAK+pB,OACf/pB,EAAKgqB,WAGI,MAFLhqB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,gBAInB,MAFhBhoB,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrCgC,WACAppB,IACFZ,EAAK4pB,aAAaC,MACd,SAACnX,GAAD,OAAOA,EAAEsV,aAAe,EAAKltB,MAAMktB,eACrCgC,WACAC,KACVjqB,EAAKsuB,mBAAqBtuB,EAAK4pB,aAAaC,MAAK,SAAAnX,GAAC,OAAIA,EAAEsV,aAAe,EAAKltB,MAAMktB,eAAasG,mBACxFtuB,MAESrS,QAAO,SAAAqS,GAAI,OAAIA,EAAK+pB,OAAO5sB,cAAciJ,SAASyF,MACtE,EAAK9K,SAAS,CACVktB,cAAeI,EACf/mB,SAAS,Q,sIAIX,IAAD,OACCwV,EAAehX,IAAMiX,YAAW,WAAwB7P,GAAxB,IAAGxH,EAAH,EAAGA,SAAU2E,EAAb,EAAaA,QAAb,OAClC,uBACIhK,KAAK,GACL6M,IAAKA,EACLpN,UAAU,uBACVuK,QAAS,SAAC1K,GACNA,EAAEqd,iBACF3S,EAAQ1K,KAGX+F,EACD,kBAAC,IAAD,CAAMyB,KAAMgoB,IAAoBvnB,KAAM,GAAKkO,MAAO,SAG1D,OACI,yBAAK5nB,GAAG,QACJ,yBAAK4R,UAAU,OACX,yBAAKA,UAAU,kBACX,yBAAKA,UAAU,6BACX,uBAAGA,UAAU,4BAA4BO,KAAK,KAC1C,yBAAK8B,IAAKqd,IAAYpd,IAAI,iBAE9B,yBAAKtC,UAAU,wDACX,yBAAKA,UAAU,mCACX,yBAAKA,UAAU,gBACX,uBAAGA,UAAU,cAAcO,KAAK,SAAQ,yBAAK6rB,QAAQ,YAAYzkB,KAAK,eAAepF,MAAO,CAAE8G,MAAO,UAAWC,OAAQ,YACpH,0BAAM/M,EAAE,8HAA8HgG,MAAO,CAAE+sB,KAAM,yBAErJ,yBAAKtvB,UAAU,gBAAf,oBAQZ,yBAAKA,UAAU,eAAc,yBAAKosB,QAAQ,YAAYzkB,KAAK,eAAepF,MAAO,CAAE8G,MAAO,UAAWC,OAAQ,YACzG,0BAAM/M,EAAE,iNAAiNgG,MAAO,CAAE+sB,KAAM,4BAIpP,yBAAKtvB,UAAU,UACX,yBAAKA,UAAU,2DACX,yBAAKA,UAAU,kCACX,uBAAGA,UAAU,gCAAgCO,KAAK,0BAC9C,yBAAKP,UAAU,QAAQuC,MAAO,CAAE+G,OAAQ,IAAMjH,IAAKqd,IAAYpd,IAAI,iBAEvE,uBAAGtC,UAAU,qEAAb,gMAEJ,yBAAKA,UAAU,iDACX,yBAAKA,UAAU,OAAOuC,MAAO,CAAE8G,MAAO,GAAIC,OAAQ,GAAI9G,aAAc,GAAIqa,OAAQ,sBAAuBkB,SAAU,WAC7G,yBAAK/d,UAAU,QAAQqC,IAA8B,IAAzBvI,KAAK9B,MAAMgmB,WAAmBld,IAAUhH,KAAK9B,MAAMgmB,WAAamM,KAAY7nB,IAAI,iBAEhH,6BACI,kBAAC8a,EAAA,EAAD,KACI,kBAACA,EAAA,EAASC,OAAV,CAAiBjR,GAAI4Q,GAChBljB,KAAK9B,MAAM7K,UAGhB,kBAACiwB,EAAA,EAASM,KAAV,KACI,kBAACN,EAAA,EAASpQ,KAAV,CAAezM,KAAK,aAApB,uBACA,kBAAC6c,EAAA,EAASpQ,KAAV,CAAezM,KAAM,YAAczG,KAAK9B,MAAM5K,UAA9C,8BACA,kBAACgwB,EAAA,EAASpQ,KAAV,CAAezM,KAAK,cAApB,kCAOxB,yBAAKP,UAAU,eACX,yBAAKA,UAAU,2BACX,yBAAKA,UAAU,eACX,yBAAKA,UAAU,sBACX,yBAAKA,UAAU,YACX,yBAAKA,UAAU,oBACX,yBAAKA,UAAU,4BACX,0BAAMA,UAAU,qBAAhB,kDAGA,uBACIuK,QAAS,kBAAM,EAAKqjB,yBACpB5tB,UAAU,8BAEV,yBACIosB,QAAQ,YACRzkB,KAAK,eACLpF,MAAO,CAAE8G,MAAO,SAAUC,OAAQ,WAElC,0BAAM/M,EAAE,iDAIpB,yBAAKyD,UAAU,qCACX,2BACIA,UAAU,eACV7H,KAAK,OACLoU,SAAUzS,KAAKm0B,4BACf1d,YAAY,kDAGpB,wBACIvQ,UAAU,2BACVuC,MAAO,CAAE8V,QAAS,cAAe6T,OAAQ,YAExCpyB,KAAK7B,MAAMk2B,cAAcluB,KAAI,SAACC,EAAMkJ,GACjC,OACI,wBACIrQ,IAAKqQ,EACLmmB,uBAAqB,gFACrBvvB,UAAW,EAAK/H,MAAMm2B,sBAAwBluB,EAAK6lB,GAAK,sFAAwF,8DAChJxjB,MAAO,CACHitB,WAAY,OACZC,YAAa,OACbC,UAAW,aACX5N,SAAU,WACV7L,cAAe,OACfiW,OAAQ,UAER7T,QAAS,aAGb,yBACIrY,UAAU,2BACVuC,MAAO,CAAE8pB,QAAS,OAAQsD,WAAY,WAEtC,yBACI3vB,UAAU,4BACVuK,QAAS,kBAAM,EAAKqlB,cAAc1vB,EAAK6lB,MAEvC,yBACIzjB,IAAI,SACJtC,UAAU,SACVqC,IAAKnC,EAAKgqB,WACV7gB,MAAO,GACPC,OAAQ,KAEZ,yBAAKtJ,UAAU,gCACX,yBAAKA,UAAU,uFACVE,EAAK+pB,OAAQ,IACd,2BAAOjqB,UAAU,UAAjB,MAEJ,yBAAKA,UAAU,mBACX,uBACIA,UAAU,cACVqe,wBAAyB,CACrBC,OAAQpe,EAAK2vB,iBACP3vB,EAAK2vB,iBAAiB1H,QACtB,SAM1B,yBAAKnoB,UAAU,8EACX,yBAAKA,UAAwC,IAA5BE,EAAKsuB,mBAA4B,SAAW,2EAA4EjsB,MAAO,CAAE8G,MAAO,GAAIC,OAAQ,GAAIsT,gBAAiB,mBAAoBpa,aAAc,GAAIqa,OAAQ,mBACpO,uBAAG7c,UAAU,gDAAiDE,EAAKsuB,mBAAqB,IAAO,MAAQtuB,EAAKsuB,qBAEhH,kBAACpR,EAAA,EAAD,KACI,kBAACA,EAAA,EAASC,OAAV,CACIvM,QAAQ,GACR9Q,UAAU,iBACVuC,MAAO,CACHutB,WAAY,UACZC,WAAY,EACZC,YAAa,IANrB,OAYA,kBAAC5S,EAAA,EAASM,KAAV,KACI,kBAACN,EAAA,EAASpQ,KAAV,CAAezC,QAAS,kBAAM,EAAK0lB,aAAa/vB,EAAK6lB,MAArD,2DAWhC,yBACImK,YAAU,YACVvoB,KAAK,MACLwoB,cAAY,OACZ5tB,MAAO,CACHuf,SAAU,WACVzY,MAAO,MACPC,OAAQ,MACRyM,OAAQ,OACR8G,OAAQ,MACRxE,QAAS,MACT0F,SAAU,SACVqS,SAAU,oBAM9B,kBAACpD,GAAD,CACI/G,YAAansB,KAAK7B,MAAMm2B,qBACxBxG,gBAAgB,IAGpB,kBAAC/f,EAAA,EAAD,CACIE,KAAMjO,KAAK7B,MAAM41B,oBACjBrc,OAAQ1X,KAAKg0B,wBAEb,kBAACjmB,EAAA,EAAMM,OAAP,CAAcuJ,aAAW,GACrB,wEAEJ,kBAAC7J,EAAA,EAAMI,KAAP,CAAYjI,UAAU,qBAClB,yBAAKA,UAAU,cACX,2BACI7H,KAAK,OACL6H,UAAU,2BACVuM,SAAUzS,KAAKi0B,oBACf1nB,KAAK,UAAU0F,MAAOjS,KAAK7B,MAAMvK,KAAKo+B,QACtCvb,YAAY,oCAInBzW,KAAK7B,MAAMo2B,OAAOpuB,KAAI,SAACowB,EAAKjnB,GACzB,OACI,yBAAKpJ,UAAU,kBAAkBjH,IAAKqQ,GAChC,EAAKpO,MAAMktB,aAAemI,EAAIC,YAC5B,kBAAC,IAAMlwB,SAAP,KACI,yBAAKJ,UAAU,sBAAsBqJ,MAAM,OAAOC,OAAO,OAAOjH,IAAMguB,EAAI7mB,UAAY6mB,EAAI7mB,SAASC,WAA9B,UAA+C3I,KAA/C,OAAyDuvB,EAAI7mB,SAASC,YAAtE,UAAwF0gB,MAAc7nB,IAAI,KAC/K,6BACI,uBAAGtC,UAAU,SAASqwB,EAAI7mB,UAAY6mB,EAAI7mB,SAASxW,QAEvD,yBAAKgN,UAAU,WACX,4BAAQ7H,KAAK,SAAS6H,UAAU,yBAAyBuK,QAAS,kBAAM,EAAKykB,eAAeqB,EAAI7mB,SAAS7Z,eAAzG,4BAGR,kBAAC,IAAMyQ,SAAP,KACI,yBAAKJ,UAAU,sBAAsBqJ,MAAM,OAAOC,OAAO,OAAOjH,IAAMguB,EAAI3mB,WAAa2mB,EAAI3mB,UAAUD,WAAhC,UAAiD3I,KAAjD,OAA2DuvB,EAAI3mB,UAAUD,YAAzE,UAA2F0gB,MAAc7nB,IAAI,KAClL,6BACI,uBAAGtC,UAAU,SAASqwB,EAAI3mB,WAAa2mB,EAAI3mB,UAAU1W,QAEzD,yBAAKgN,UAAU,WACX,4BAAQ7H,KAAK,SAAS6H,UAAU,yBAAyBuK,QAAS,kBAAM,EAAKykB,eAAeqB,EAAI3mB,UAAU/Z,eAA1G,gCASnBmK,KAAK7B,MAAMvK,KAAKlJ,KAAOsV,KAAK7B,MAAMvK,KAAKjJ,WAAaqV,KAAK7B,MAAMvK,KAAKhJ,MAAS,GAC1E,yBAAKsb,UAAU,oBACX,4BAAQuK,QAAS,kBAAM,EAAKgmB,YAAYvwB,UAAU,2BAAlD,iBAIhB,kBAAC6H,EAAA,EAAM+J,OAAP,iB,GA/lBPtQ,aAmnB3BkvB,GAAoBtpB,aAPF,SAACjP,GACrB,MAAO,CACHjL,aAAciL,EAAMD,MAAMhL,aAC1Bk7B,YAAajwB,EAAMD,MAAMzK,WACzBkjC,aAAcx4B,EAAMD,MAAMy4B,gBAGRvpB,CAAyBymB,ICtoB7C+C,G,kDACF,WAAY11B,GAAQ,uCACVA,G,qDAKA,IACAqM,EAASvN,KAAKkB,MAAM+zB,MAApB1nB,KACN,OACI,kBAAC,IAAiBe,SAAlB,MAEQ,gBAAGjJ,EAAH,EAAGA,IAAH,OACI,kBAAC,GAAQqJ,SAAT,CAAkBuD,MAAO,CACrB2hB,iBAAkBA,GAClBvuB,IAAKA,IAEL,kBAAC,IAAD,KACI,kBAAC,IAAD,CAAOkI,KAAI,UAAKA,EAAL,cAAuBV,OAAQ,SAAC3L,GAAD,OAAW,kBAACw1B,GAAsBx1B,MAC5E,kBAAC,IAAD,CAAOqM,KAAMA,EAAMV,OAAQ,SAAC3L,GAAD,OAAW,kBAACw1B,GAAsBx1B,e,GAnBpEsG,a,gECAnBqvB,G,kDAEF,WAAY31B,GAAQ,IAAD,sBACf,IAAM+b,EAAS3e,OAAOC,OAAO,GAAI,CAAE4C,IAAK,kBAAoBD,GAD7C,OAEf,cAAM+b,IACDC,WAAa,IAAI5Y,KAHP,E,8DAKD5C,GACd,OAAOlB,IAAKO,IAAL,UAAYiG,IAAZ,yCAAoDtF,EAAIpO,a,oCAErDoO,GACV,OAAOlB,IAAKmB,IAAL,UAAYqF,IAAZ,6BAAgDtF,O,GAX9BT,KAc3B8O,GAAU3K,0BACV0xB,GAAsB,IAAID,GCH1BvZ,GAASC,YAAO,CAClBjqB,SAAUkqB,cAASC,OAAOC,SAAS,2DAGjCqZ,G,kDAEF,WAAY71B,GAAQ,IAAD,8BACf,cAAMA,IA+CVyQ,aAAe,SAAAM,GACX,EAAK9K,SAAS,CAAE6vB,QAAS,UA/CzB,EAAK74B,MAAQ,CACTlI,KAAM,CACF3C,SAAU,IAEdoa,SAAS,EACTkQ,aAAc,GACdoZ,SAAS,GARE,E,kGAgBVt1B,GAAM,IAAD,OACN1B,KAAK7B,MAAM64B,UACXh3B,KAAKmH,SAAS,CAAEuG,SAAS,IACzBopB,GAAoBG,kBAAkBv1B,GAAKsD,WAAU,WACjD,EAAKmC,SAAS,CACVuG,SAAS,IAEb,EAAKwpB,SAAS,gOAEd,SAACxtB,GACG,EAAKvC,SAAS,CACVuG,SAAS,IAEb,EAAK4C,QAAQjL,IAAIkL,MAAM7G,EAAIV,a,wEAM5B1F,G,iFACDtD,KAAKsQ,QAAQjL,IAAIkL,MAAMjN,G,kCAE7BtD,KAAKkB,MAAMsP,QAAQ/D,KAAK,CAAEQ,SAAU,M,wIAGjC8E,GAEP,GAAgB,MADAA,EAAGkV,SAAWlV,EAAGmV,OAG7B,OADAnV,EAAGqR,kBACI,I,+BAML,IAAD,OACL,OACI,kBAAC,IAAD,KACI,kBAAC,IAAK5U,QAAN,KACI,yBAAKtI,UAAU,4EACX,yBAAKA,UAAU,YAAYuC,MAAO,CAAE8G,MAAO,MAEvC,kBAACwO,GAAA,EAAD,CAAMtV,MAAO,CAAEuV,UAAW,OAAQC,aAAc,SAC5C,kBAACF,GAAA,EAAK5P,KAAN,KAEI,wBAAIjI,UAAU,6BAA6BuC,MAAO,CAAE0V,SAAU,KAA9D,8BACA,uBAAGjY,UAAU,iBACT,uBAAGA,UAAU,eAAelG,KAAK7B,MAAMyf,eAG3C,kBAAC,IAAD,CACIa,iBAAkBnB,GAClBoB,SAAU,SAACE,GAEP,EAAKF,SAASE,IAElBD,cAAe3e,KAAK7B,MAAMlI,OAEzB,gBACG4nB,EADH,EACGA,aACAlM,EAFH,EAEGA,aACAgI,EAHH,EAGGA,WACAiF,EAJH,EAIGA,OACAC,EALH,EAKGA,QACAC,EANH,EAMGA,OANH,OAQO,kBAACnD,EAAA,EAAD,CAAMoD,YAAU,EAACL,SAAUb,EAAc6C,WAAY,EAAKA,WAAW3N,KAAK,IACtE,kBAAC4I,EAAA,EAAKqD,MAAN,CAAY1M,GAAIH,IAAKoE,GAAG,KAAKmR,UAAU,OAAOjf,MAAO,CAAEwV,aAAc,QACjE,kBAACtC,EAAA,EAAKC,MAAN,oCADJ,IAC4C,kBAACD,EAAA,EAAKC,MAAN,CAAY1V,UAAU,eAAtB,QAE5C,kBAACyV,EAAA,EAAKqD,MAAN,KACI,kBAACxI,GAAA,EAAD,CAAYtQ,UAAU,QAClB,kBAACyV,EAAA,EAAKsD,QAAN,CACI1S,KAAK,WACLkK,YAAY,oBACZC,aAAW,WACXwI,aAAa,KACbvI,WAAS,EACTlE,SAAUd,EACV8B,OAAQkG,EACR1H,MAAO2M,EAAOtrB,SACd4lB,UAAW2F,EAAQvrB,YAAcwrB,EAAOxrB,WAE5C,kBAACkjB,GAAA,EAAWK,OAAZ,KACI,kBAACL,GAAA,EAAW2I,KAAZ,KACI,0BAAMjZ,UAAU,UAAUoP,YAAU,gBAAgBC,cAAY,YAGxE,kBAACoG,EAAA,EAAKsD,QAAQG,SAAd,CAAuB/gB,KAAK,WACvBygB,EAAOxrB,YAKpB,kBAAC4e,GAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKjM,UAAU,WACX,kBAAC,KAAD,CACIA,UAAU,qBACVuC,MAAO,CAAE8pB,QAAS,gBAClBjf,IAAK,EAAK6jB,cACVC,QAASzX,IACTlN,SAAU,EAAKd,aACf0lB,kBAAmB,EAAKA,sBAKpC,kBAACnlB,GAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKjM,UAAU,UACX,4BAAQ7H,KAAK,SAAS6H,UAAU,6BAAhC,6BAWpC,kBAAC,IAAD,CAAkBwH,QAAS1N,KAAK7B,MAAMuP,iB,GA1I3BxB,IAAM1E,WAAnCuvB,GACKjnB,YAAcC,GCHzB,IAAMuN,GAASC,YAAO,CAClB+Z,WAAY9Z,cAASC,OAAOC,SAAS,mDAA0BqD,QAC3D,2EACA,4MACFmJ,IAAI,EAAG,iDACJN,IAAI,GAAI,+CACb2N,eAAgB/Z,cAASC,OAAOC,SAAS,4DAA8B8Z,MAAM,CAAClkB,YAAI,cAAe,MAAO,iEAGtGmkB,G,kDAYF,WAAYv2B,GAAQ,IAAD,8BACf,cAAMA,IAwEVyQ,aAAe,SAAAM,GACX,EAAK9K,SAAS,CAAE6vB,SAAS,KAxEzB,EAAK74B,MAAQ,CACTlI,KAAM,CACFqhC,WAAY,GACZ1Y,OAAQ,IAGZ8Y,OAAO,EACPhqB,SAAS,EACTkQ,aAAc,GACdoZ,SAAS,GAXE,E,gEAeE,IAAD,OAChBh3B,KAAKmH,SAAS,CAAEuG,SAAS,IACzB,IAAIyf,EAAI5N,OAAOrS,SAASzG,KACpB/E,EAAM,CACVA,WAAiB,IACjBA,EAAIkd,OAASuO,EAAE3pB,QAAQ2pB,EAAEwK,UAAU,EAAGxK,EAAEyK,YAAY,kBAAoB,IAAK,IAC7El2B,EAAIrD,KAAO,EACXy4B,GAAoBe,cAAcn2B,GAAKsD,WAAU,WAC7C,EAAKmC,SAAS,CACVuG,SAAS,EACTgqB,OAAO,OAIX,SAAChuB,GACG,EAAKvC,SAAS,CACVuG,SAAS,EACTgqB,OAAO,S,+BAMdh2B,GAAM,IAAD,OACV,GAAI1B,KAAK7B,MAAM64B,QAAS,CACpBh3B,KAAKmH,SAAS,CAAEuG,SAAS,IACzB,IAAIyf,EAAI5N,OAAOrS,SAASzG,KACxB/E,EAAIkd,OAASuO,EAAE3pB,QAAQ2pB,EAAEwK,UAAU,EAAGxK,EAAEyK,YAAY,kBAAoB,IAAK,IAC7El2B,EAAIrD,KAAO,EACXy4B,GAAoBe,cAAcn2B,GAAKsD,WAAU,WAC7C,EAAKmC,SAAS,CACVuG,SAAS,IAEb,EAAKwpB,SAAS,oKAGd,SAACxtB,GACG,EAAKvC,SAAS,CACVuG,SAAS,IAEb,EAAK4C,QAAQjL,IAAIkL,MAAM7G,EAAIV,a,wEAK5B1F,G,iFACDtD,KAAKsQ,QAAQjL,IAAIkL,MAAMjN,G,kCAE7BtD,KAAKkB,MAAMsP,QAAQ/D,KAAK,CAAEQ,SAAU,e,wIAGjC8E,GAEP,GAAgB,MADAA,EAAGkV,SAAWlV,EAAGmV,OAG7B,OADAnV,EAAGqR,kBACI,I,+BAML,IAAD,OACL,OACI,kBAAC,IAAD,KACI,kBAAC,IAAK5U,QAAN,KACyB,GAApBxO,KAAK7B,MAAMu5B,MACR,yBAAKxxB,UAAU,4EACX,yBAAKA,UAAU,YAAYuC,MAAO,CAAE8G,MAAO,MAEvC,kBAACwO,GAAA,EAAD,CAAMtV,MAAO,CAAEuV,UAAW,OAAQC,aAAc,SAC5C,kBAACF,GAAA,EAAK5P,KAAN,KAEI,wBAAIjI,UAAU,6BAA6BuC,MAAO,CAAE0V,SAAU,KAA9D,oCACA,uBAAGjY,UAAU,iBACT,uBAAGA,UAAU,eAAelG,KAAK7B,MAAMyf,eAG3C,kBAAC,IAAD,CACIa,iBAAkBnB,GAClBoB,SAAU,SAACE,GAEP,EAAKF,SAASE,IAElBD,cAAe3e,KAAK7B,MAAMlI,OAEzB,gBACG4nB,EADH,EACGA,aACAlM,EAFH,EAEGA,aACAgI,EAHH,EAGGA,WACAiF,EAJH,EAIGA,OACAC,EALH,EAKGA,QACAC,EANH,EAMGA,OANH,OAQO,kBAACnD,EAAA,EAAD,CAAMoD,YAAU,EAACL,SAAUb,EAAc6C,WAAY,EAAKA,WAAW3N,KAAK,IACtE,kBAAC4I,EAAA,EAAKqD,MAAN,CAAY1M,GAAIH,IAAKoE,GAAG,KAAKmR,UAAU,OAAOjf,MAAO,CAAEwV,aAAc,QACjE,kBAACtC,EAAA,EAAKC,MAAN,oCADJ,IAC0C,kBAACD,EAAA,EAAKC,MAAN,CAAY1V,UAAU,eAAtB,QAE1C,kBAACyV,EAAA,EAAKqD,MAAN,KACI,kBAACxI,GAAA,EAAD,CAAYtQ,UAAU,QAClB,kBAACyV,EAAA,EAAKsD,QAAN,CACI1S,KAAK,aACLlO,KAAK,WACLoY,YAAY,+BACZC,aAAW,aACXwI,aAAa,KACbzM,SAAUd,EACV8B,OAAQkG,EACR1H,MAAO2M,EAAO0Y,WACdpe,UAAW2F,EAAQyY,cAAgBxY,EAAOwY,aAE9C,kBAAC9gB,GAAA,EAAWK,OAAZ,KACI,kBAACL,GAAA,EAAW2I,KAAZ,KACI,0BAAMjZ,UAAU,UAAUoP,YAAU,UAAUC,cAAY,YAGlE,kBAACoG,EAAA,EAAKsD,QAAQG,SAAd,CAAuB/gB,KAAK,WACvBygB,EAAOwY,cAIpB,kBAAC3b,EAAA,EAAKqD,MAAN,CAAY1M,GAAIH,IAAKoE,GAAG,KAAKmR,UAAU,OAAOjf,MAAO,CAAEwV,aAAc,QACjE,kBAACtC,EAAA,EAAKC,MAAN,uDADJ,IACmD,kBAACD,EAAA,EAAKC,MAAN,CAAY1V,UAAU,eAAtB,QAEnD,kBAACyV,EAAA,EAAKqD,MAAN,KACI,kBAACxI,GAAA,EAAD,CAAYtQ,UAAU,QAClB,kBAACyV,EAAA,EAAKsD,QAAN,CACI1S,KAAK,iBACLlO,KAAK,WACLoY,YAAY,iDACZC,aAAW,iBACXwI,aAAa,KACbzM,SAAUd,EACV8B,OAAQkG,EACR1H,MAAO2M,EAAO2Y,eACdre,UAAW2F,EAAQ0Y,kBAAoBzY,EAAOyY,iBAElD,kBAAC/gB,GAAA,EAAWK,OAAZ,KACI,kBAACL,GAAA,EAAW2I,KAAZ,KACI,0BAAMjZ,UAAU,UAAUoP,YAAU,UAAUC,cAAY,YAGlE,kBAACoG,EAAA,EAAKsD,QAAQG,SAAd,CAAuB/gB,KAAK,WACvBygB,EAAOyY,kBAKpB,kBAACrlB,GAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKjM,UAAU,WACX,kBAAC,KAAD,CACIA,UAAU,qBACVuC,MAAO,CAAE8pB,QAAS,gBAClBjf,IAAK,EAAK6jB,cACVC,QAASzX,IACTlN,SAAU,EAAKd,aACf0lB,kBAAmB,EAAKA,sBAKpC,kBAACnlB,GAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKjM,UAAU,UACX,4BAAQ7H,KAAK,SAAS6H,UAAU,6BAAhC,6BAWpC,kBAAC,IAAD,CAAkBwH,QAAS1N,KAAK7B,MAAMuP,WAG1C,6D,GA3MWxB,IAAM1E,WAAnCiwB,GACK3nB,YAAcC,G,IC+BV+nB,G,uKAvCP,OACI,kBAAC,IAAiBxpB,SAAlB,MAEQ,gBAAGjJ,EAAH,EAAGA,IAAH,OACI,kBAAC,GAAQqJ,SAAT,CAAkBuD,MAAO,CACrB4kB,mBAAoBA,GACpBxxB,IAAKA,IAEL,kBAAC,IAAD,CAAU9F,MAAOA,KACb,kBAAC,cAAD,CAAamO,QAAS,kBAAC,IAAD,CAAkBA,SAAS,IAAUjO,UAAWA,KAClE,kBAAC,IAAD,KACI,kBAAC,IAAD,KACI,kBAAC,IAAD,CAAO8N,KAAK,kBAAkBxB,UAAWmf,KACzC,kBAAC,IAAD,CAAO3d,KAAK,aAAaxB,UAAWof,KACpC,kBAAC,IAAD,CAAO5d,KAAK,aAAaxB,UAAWuT,oBACpC,kBAAC,IAAD,CAAO/R,KAAK,iBAAiBxB,UAAWgrB,KACxC,kBAAC,IAAD,CAAOxpB,KAAK,iBAAiBxB,UAAW0rB,KACxC,kBAAC,IAAD,CAAYlqB,KAAK,YAAYxB,UAAWgf,KACxC,kBAAC,IAAD,CAAYxd,KAAK,kBAAkBxB,UAAWgf,KAC9C,kBAAC,IAAD,CAAYxd,KAAK,oBAAoBxB,UAAWgf,KAChD,kBAAC,IAAD,CAAYxd,KAAK,QAAQxB,UAAW6qB,KACpC,kBAAC,IAAD,CAAYrpB,KAAK,WAAWT,IAAI,KAAKf,UAAWgf,KAChD,kBAAC,IAAD,CAAOxd,KAAK,IAAIxB,UAAWgf,OAGnC,kBAAC,IAAD,MACA,kBAAC,IAAD,gB,GA5BlB7e,IAAM1E,WCRJuwB,QACa,cAA7BxY,OAAOrS,SAAS8qB,UAEa,UAA7BzY,OAAOrS,SAAS8qB,UAEhBzY,OAAOrS,SAAS8qB,SAAS/C,MACrB,2DCZRgD,IAASprB,OAAO,kBAAC,GAAD,MAASqO,SAASC,eAAe,SD6HzC,kBAAmB+c,WACnBA,UAAUC,cAAcC,MACnBnxB,MAAK,SAAAoxB,GACFA,EAAaC,gBAEhBlxB,OAAM,SAAA4B,GACH3B,QAAQ2B,MAAMA,EAAMW,a,mLEnI9B4uB,E,kDAEF,WAAYr3B,GAAQ,IAAD,sBACf,IAAM+b,EAAS3e,OAAOC,OAAO,GAAI,CAAE4C,IAAK,uBAAyBD,GADlD,OAEf,cAAM+b,IACDC,WAAa,IAAI5Y,IACtB,EAAKk0B,sBAAwB,IAAIl0B,IACjC,EAAKm0B,eAAiB,IAAIn0B,IAC1B,EAAKo0B,gBAAkB,IAAIp0B,IAC3B,EAAKq0B,eAAiB,IAAIr0B,IAC1B,EAAKs0B,mBAAqB,IAAIt0B,IAC9B,EAAKu0B,mBAAqB,IAAIv0B,IAC9B,EAAKw0B,kBAAoB,IAAIx0B,IAVd,E,iEAYE1Q,GACjB,OAAO4M,IAAKO,IAAL,oCAAsCnN,EAAKlJ,KAA3C,yBAAgEkJ,EAAKjJ,UAArE,mBAAyFiJ,EAAKwN,OAA9F,qBAAiHxN,EAAKyN,SAAtH,sBAA4IzN,EAAKmlC,c,4CAEtInlC,GAClB,OAAO4M,IAAKO,IAAL,uCAAyCnN,EAAKlJ,KAA9C,yBAAmEkJ,EAAKjJ,UAAxE,mBAA4FiJ,EAAKwN,OAAjG,qBAAoHxN,EAAKyN,SAAzH,qB,qCAEIpL,EAAMyL,GACjB,IAGMI,EAAW,IAAIC,SACrB,GAAG9L,GAAMA,EAAKwkB,WACV,IAAK,IAAIzY,EAAI,EAAGA,EAAI/L,EAAKwkB,WAAWxY,OAAQD,IACxCF,EAASI,OAAT,QAAyBjM,EAAKwkB,WAAWzY,IAIjD,OADAF,EAASI,OAAOR,EAAKS,KAAKC,UAAUnM,IAC7BuK,IAAKC,KAAL,UAAauG,IAAb,iBAAqClF,EAAU,CAClDO,QAXY,CACZ,eAAgB,2B,oCAaVpM,EAAMyL,GAEhB,IAGMI,EAAW,IAAIC,SACrB,GAAG9L,GAAMA,EAAKwkB,WACV,IAAK,IAAIzY,EAAI,EAAGA,EAAI/L,EAAKwkB,WAAWxY,OAAQD,IACpC/L,EAAKwkB,WAAWzY,GAAG1N,IACnBwN,EAASI,OAAT,QAAyBjM,EAAKwkB,WAAWzY,IAIrD,OADAF,EAASI,OAAOR,EAAKS,KAAKC,UAAUnM,IAC7BuK,IAAKmB,IAAL,UAAYqF,IAAZ,yBAAoC/Q,EAAK3B,IAAMwN,EAAU,CAC5DO,QAZY,CACZ,eAAgB,2B,gDAcEzO,EAAMolC,GAC5B,OAAOx4B,IAAKO,IAAL,gCAAkCnN,EAAKlJ,KAAvC,yBAA4DkJ,EAAKjJ,UAAjE,mBAAqFiJ,EAAKwN,OAA1F,qBAA6GxN,EAAKyN,SAAlH,sBAAwI23B,M,kCAEvI1kC,GACR,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,gCAA2C1S,M,oCAExCA,GACV,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,kCAA6C1S,M,yCAErCV,GACf,OAAO4M,IAAKO,IAAL,UAAYiG,IAAZ,qCAAgDpT,EAAKU,GAArD,iBAAgEV,EAAKlJ,KAArE,yBAA0FkJ,EAAKjJ,c,0CAEtFiJ,GAChB,OAAO4M,IAAKO,IAAL,UAAYiG,IAAZ,8CAAyDpT,EAAKU,GAA9D,iBAAyEV,EAAKlJ,KAA9E,yBAAmGkJ,EAAKjJ,c,mCAEtG2J,GACT,OAAOkM,IAAKC,KAAL,UAAauG,IAAb,kCAA8C1S,M,oCAG3CA,GACV,OAAOkM,IAAK+B,OAAL,UAAeyE,IAAf,yBAAuC1S,M,oCAGpCA,GACV,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,gCAA2C1S,M,kCAE1CA,GACR,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,iCAA4C1S,M,wCAGrCA,GACd,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,6BAAwC1S,M,2CAG9BA,GACjB,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,qCAAgD1S,M,mCAG9CA,GACT,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,+BAA0C1S,M,kCAEzCA,GACR,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,8BAAyC1S,M,qCAErCA,GACX,OAAOkM,IAAKO,IAAL,UAAYiG,IAAZ,oCAA+C1S,M,0CAEtCA,GAChB,OAAOkM,IAAKO,IAAL,UAAYiG,IAAZ,+BAA0C1S,M,uCAIjD,OAAOkM,IAAKO,IAAI,wCAAwCL,KAAKyF,aAAI,SAACvF,GAC9D,GAAIA,EACA,OAAOA,EAAI3K,KAAKkQ,KAAI,SAAA2S,GAGhB,OAFAA,EAAE7G,MAAQ6G,EAAExkB,GACZwkB,EAAEvM,KAAOuM,EAAE5f,MACJ4f,W,wCAMnB,OAAOtY,IAAKO,IAAI,2EAA2EL,KAAKyF,aAAI,SAACvF,GACjG,GAAIA,EACA,OAAOA,EAAI3K,KAAKkQ,KAAI,SAAA2S,GAGhB,OAFAA,EAAE7G,MAAQ6G,EAAExkB,GACZwkB,EAAElD,MAAQkD,EAAE5f,MACL4f,W,yCAMJ7iB,GACf,OAAOuK,IAAKC,KAAL,UAAauG,IAAb,sBAA0C/Q,K,wCAGnCrC,GACd,OAAO4M,IAAKO,IAAL,UAAYiG,IAAZ,uCAAkDpT,EAAKo+B,QAAvD,iBAAuEp+B,EAAKlJ,KAA5E,yBAAiGkJ,EAAKjJ,c,uCAEhGsL,GACb,OAAOuK,IAAKC,KAAL,UAAauG,IAAb,iBAAqC/Q,K,qCAIjCrC,GACX,OAAO4M,IAAKO,IAAL,kCAAoCnN,EAAKlJ,KAAzC,yBAA8DkJ,EAAKjJ,UAAnE,mBAAuFiJ,EAAKwN,OAA5F,qBAA+GxN,EAAKyN,a,oCAEjHzN,GACV,OAAO4M,IAAKO,IAAL,iCAAmCnN,EAAKlJ,KAAxC,yBAA6DkJ,EAAKjJ,UAAlE,mBAAsFiJ,EAAKwN,OAA3F,qBAA8GxN,EAAKyN,SAAnH,uBAA0IzN,EAAKqlC,e,oCAE5IrlC,GACV,OAAO4M,IAAKO,IAAL,sCAAwCnN,EAAKlJ,KAA7C,yBAAkEkJ,EAAKjJ,UAAvE,mBAA2FiJ,EAAKwN,OAAhG,qBAAmHxN,EAAKyN,a,oCAErHzN,GACV,OAAO4M,IAAKO,IAAL,mCAAqCnN,EAAKlJ,KAA1C,yBAA+DkJ,EAAKjJ,UAApE,mBAAwFiJ,EAAKwN,OAA7F,qBAAgHxN,EAAKyN,WAAYX,KAAKyF,aAAI,SAACvF,GAC9I,GAAIA,EACA,OAAOA,EAAI3K,KAAKkQ,KAAI,SAAA2S,GAEhB,OADAA,EAAE1I,UAAS,EACJ0I,W,sCAKPllB,GACZ,OAAO4M,IAAKO,IAAL,mCAAqCnN,EAAKlJ,KAA1C,yBAA+DkJ,EAAKjJ,UAApE,mBAAwFiJ,EAAKwN,OAA7F,qBAAgHxN,EAAKyN,WAAYX,KAAKyF,aAAI,SAACvF,GAC9I,GAAIA,EACA,OAAOA,EAAI3K,KAAKkQ,KAAI,SAAA2S,GAEhB,OADAA,EAAEjI,SAAQ,EACHiI,W,qCAKRllB,GACX,OAAO4M,IAAKO,IAAL,0CAA4CnN,EAAKlJ,KAAjD,yBAAsEkJ,EAAKjJ,UAA3E,mBAA+FiJ,EAAKwN,OAApG,qBAAuHxN,EAAKyN,WAAYX,KAAKyF,aAAI,SAACvF,GACrJ,GAAIA,EACA,OAAOA,EAAI3K,KAAKkQ,KAAI,SAAA2S,GAEhB,OADAA,EAAEogB,WAAU,EACLpgB,W,mCAMVxkB,GACT,OAAOkM,IAAKC,KAAL,UAAauG,IAAb,iCAA6C1S,M,uCAGvCA,GACb,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,uCAAkD1S,M,yCAE1CA,GACf,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,0CAAqD1S,M,uCAG/CA,GACb,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,uCAAkD1S,M,yCAE1CA,GACf,OAAOkM,IAAKmB,IAAL,UAAYqF,IAAZ,0CAAqD1S,M,sCAGhDV,GACZ,OAAO4M,IAAKO,IAAL,sCAAwCnN,EAAKlJ,KAA7C,yBAAkEkJ,EAAKjJ,UAAvE,mBAA2FiJ,EAAKwN,OAAhG,qBAAmHxN,EAAKyN,a,wCAGjH/M,GACd,OAAOkM,IAAKC,KAAK,UAAGuG,IAAH,6BAAwC1S,K,sCAE7CA,GACZ,OAAOkM,IAAKC,KAAK,UAAGuG,IAAH,2BAAsC1S,O,GA5MlC2M,KAgNvB8O,EAAU3K,0BACV+J,EAAkB,IAAIopB,G,kJCpNrB,SAAS14B,EAASrB,GACrB,MAAO,CACHH,KAAM9S,IACNiT,MAAOA,GAIR,SAASsB,IACZ,MAAO,CACHzB,KAAM7S,K,kbCZd,oC","file":"static/js/main.962008ce.chunk.js","sourcesContent":["export const defaultPageOptions = {\r\n page: 1,\r\n page_size: 10,\r\n total: 0,\r\n pageSizeOptions: [10, 20, 50, 100]\r\n};","export const HOSOVUVIEC_SET_LIST_DATA = 'HOSOVUVIEC_SET_LIST_DATA';\r\nexport const HOSOVUVIEC_SET_LIST_META = 'HOSOVUVIEC_SET_LIST_META';\r\nexport const HANHVIVIPHAM_SET_LIST_DATA = 'HANHVIVIPHAM_SET_LIST_DATA';\r\nexport const HANHVIVIPHAM_CHANGESTATUS = 'HANHVIVIPHAM_CHANGESTATUS';","module.exports = __webpack_public_path__ + \"static/media/img-user-default.e1ab209c.png\";","module.exports = __webpack_public_path__ + \"static/media/logo-header.65b7e0ab.png\";","export const TKTAIKHOAN_SET_LIST_DATA = 'TKTAIKHOAN_SET_LIST_DATA';\r\nexport const TKTAIKHOAN_SET_LIST_META = 'TKTAIKHOAN_SET_LIST_META';\r\nexport const TKTAIKHOAN_SET_INFO = 'TKTAIKHOAN_SET_INFO';\r\n\r\n","module.exports = __webpack_public_path__ + \"static/media/NoImageBinhLuan.d961d73a.png\";","export const OAUTH_SET_TOKEN = 'OAUTH_SET_TOKEN';\r\nexport const OAUTH_REMOVE_TOKEN = 'OAUTH_REMOVE_TOKEN';","export const USER_SET_LIST_DATA = 'USER_SET_LIST_DATA';\r\nexport const USER_SET_LIST_META = 'USER_SET_LIST_META';\r\n","export const DMCHUYENMUCTIN_SET_LIST_DATA = 'DMCHUYENMUCTIN_SET_LIST_DATA';\r\nexport const DMCHUYENMUCTIN_SET_LIST_META = 'DMCHUYENMUCTIN_SET_LIST_META';","export const DMDOITUONGCHIASE_SET_LIST_DATA = 'DMDOITUONGCHIASE_SET_LIST_DATA';\r\nexport const DMDOITUONGCHIASE_SET_LIST_META = 'DMDOITUONGCHIASE_SET_LIST_META';","export const DMDONVILIENKET_SET_LIST_DATA = 'DMDONVILIENKET_SET_LIST_DATA';\r\nexport const DMDONVILIENKET_SET_LIST_META = 'DMDONVILIENKET_SET_LIST_META';","export const DMCHUDECAUHOI_SET_LIST_DATA = 'DMCHUDECAUHOI_SET_LIST_DATA';\r\nexport const DMCHUDECAUHOI_SET_LIST_META = 'DMCHUDECAUHOI_SET_LIST_META';","export const DMLINHVUCKINHDOANH_SET_LIST_DATA = 'DMLINHVUCKINHDOANH_SET_LIST_DATA';\r\nexport const DMLINHVUCKINHDOANH_SET_LIST_META = 'DMLINHVUCKINHDOANH_SET_LIST_META';","export const DNTHUONGHIEU_SET_LIST_DATA = 'DNTHUONGHIEU_SET_LIST_DATA';\r\nexport const DNTHUONGHIEU_SET_LIST_META = 'DNTHUONGHIEU_SET_LIST_META';","export const DMCHITIEU_SET_LIST_DATA = 'DMCHITIEU_SET_LIST_DATA';\r\nexport const DMCHITIEU_SET_LIST_META = 'DMCHITIEU_SET_LIST_META';","export const DM_LOAI_THONG_BAO_SET_LIST_DATA = 'DM_LOAI_THONG_BAO_SET_LIST_DATA';\r\nexport const DM_LOAI_THONG_BAO_SET_LIST_META = 'DM_LOAI_THONG_BAO_SET_LIST_META';","export const DMDIABAN_SET_LIST_DATA = 'DMDIABAN_SET_LIST_DATA';\r\nexport const DMDIABAN_SET_LIST_META = 'DMDIABAN_SET_LIST_META';","export const DMQUANHUYEN_SET_LIST_DATA = 'DMQUANHUYEN_SET_LIST_DATA';\r\nexport const DMQUANHUYEN_SET_LIST_META = 'DMQUANHUYEN_SET_LIST_META';","export const DMTINHTHANH_SET_LIST_DATA = 'DMTINHTHANH_SET_LIST_DATA';\r\nexport const DMTINHTHANH_SET_LIST_META = 'DMTINHTHANH_SET_LIST_META';","export const DMPHUONGXA_SET_LIST_DATA = 'DMPHUONGXA_SET_LIST_DATA';\r\nexport const DMPHUONGXA_SET_LIST_META = 'DMPHUONGXA_SET_LIST_META';","export const DMDUONGPHO_SET_LIST_DATA = 'DMDUONGPHO_SET_LIST_DATA';\r\nexport const DMDUONGPHO_SET_LIST_META = 'DMDUONGPHO_SET_LIST_META';","export const DMCHITIEUSANPHAMQUANTAM_SET_LIST_DATA = 'DMCHITIEUSANPHAMQUANTAM_SET_LIST_DATA';\r\nexport const DMCHITIEUSANPHAMQUANTAM_SET_LIST_META = 'DMCHITIEUSANPHAMQUANTAM_SET_LIST_META';","export const DMCHITIEUSANPHAM_SET_LIST_DATA = 'DMCHITIEUSANPHAM_SET_LIST_DATA';\r\nexport const DMCHITIEUSANPHAM_SET_LIST_META = 'DMCHITIEUSANPHAM_SET_LIST_META';","export const DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_DATA = 'DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_DATA';\r\nexport const DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_META = 'DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_META';","export const DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_DATA = 'DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_DATA';\r\nexport const DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_META = 'DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_META';","export const DMLOAISANPHAM_SET_LIST_DATA = 'DMLOAISANPHAM_SET_LIST_DATA';\r\nexport const DMLOAISANPHAM_SET_LIST_META = 'DMLOAISANPHAM_SET_LIST_META';","export const TKPERMISSION_SET_LIST_DATA = 'TKPERMISSION_SET_LIST_DATA';\r\nexport const TKPERMISSION_SET_LIST_META = 'TKPERMISSION_SET_LIST_META';","export const DMLOAIHINHKINHDOANH_SET_LIST_DATA = 'DMLOAIHINHKINHDOANH_SET_LIST_DATA';\r\nexport const DMLOAIHINHKINHDOANH_SET_LIST_META = 'DMLOAIHINHKINHDOANH_SET_LIST_META';","export const DM_KHOANG_GIA_SET_LIST_DATA = 'DM_KHOANG_GIA_SET_LIST_DATA';\r\nexport const DM_KHOANG_GIA_SET_LIST_META = 'DM_KHOANG_GIA_SET_LIST_META';","export const DM_DON_VI_SET_LIST_DATA = ' DM_DON_VI_SET_LIST_DATA';\r\nexport const DM_DON_VI_SET_LIST_META = ' DM_DON_VI_SET_LIST_META';","export const TKNHOMNGUOIDUNG_SET_LIST_DATA = 'TKNHOMNGUOIDUNG_SET_LIST_DATA';\r\nexport const TKNHOMNGUOIDUNG_SET_LIST_META = 'TKNHOMNGUOIDUNG_SET_LIST_META';","export const DMDOITUONGQUANLY_SET_LIST_DATA = 'DMDOITUONGQUANLY_SET_LIST_DATA';\r\nexport const DMDOITUONGQUANLY_SET_LIST_META = 'DMDOITUONGQUANLY_SET_LIST_META';","export const DMCHUCVU_SET_LIST_DATA = 'DMCHUCVU_SET_LIST_DATA';\r\nexport const DMCHUCVU_SET_LIST_META = 'DMCHUCVU_SET_LIST_META';","export const DMHANHVIVIPHAM_SET_LIST_DATA = 'DMHANHVIVIPHAM_SET_LIST_DATA';\r\nexport const DMHANHVIVIPHAM_SET_LIST_META = 'DMHANHVIVIPHAM_SET_LIST_META';","export const DMCHITIEUDANHGIA_SET_LIST_DATA = 'DMCHITIEUDANHGIA_SET_LIST_DATA';\r\nexport const DMCHITIEUDANHGIA_SET_LIST_META = 'DMCHITIEUDANHGIA_SET_LIST_META';","export const TKNHOMNGUOIDUNGCN_SET_LIST_DATA = 'TKNHOMNGUOIDUNGCN_SET_LIST_DATA';\r\nexport const TKNHOMNGUOIDUNGCN_SET_LIST_META = 'TKNHOMNGUOIDUNGCN_SET_LIST_META';","export const DMLINHVUCSUKIEN_SET_LIST_DATA = 'DMLINHVUCSUKIEN_SET_LIST_DATA';\r\nexport const DMLINHVUCSUKIEN_SET_LIST_META = 'DMLINHVUCSUKIEN_SET_LIST_META';","export const LOGSYS_SET_LIST_DATA = 'LOGSYS_SET_LIST_DATA';\r\nexport const LOGSYS_SET_LIST_META = 'LOGSYS_SET_LIST_META';","export const MENUHETHONG_SET_LIST_DATA = 'MENUHETHONG_SET_LIST_DATA';\r\nexport const MENUHETHONG_SET_LIST_META = 'MENUHETHONG_SET_LIST_META';","export const KHOTULIEU_SET_LIST_DATA = 'KHOTULIEU_SET_LIST_DATA';\r\nexport const KHOTULIEU_SET_LIST_META = 'KHOTULIEU_SET_LIST_META';","export const TINDANG_SET_LIST_DATA = 'TINDANG_SET_LIST_DATA';\r\nexport const TINDANG_SET_LIST_META = 'TINDANG_SET_LIST_META';","export const BCLYDOBAOCAO_SET_LIST_DATA = 'BCLYDOBAOCAO_SET_LIST_DATA';\r\nexport const BCLYDOBAOCAO_SET_LIST_META = 'BCLYDOBAOCAO_SET_LIST_META';","export const BCVIPHAMSANPHAM_SET_LIST_DATA = 'BCVIPHAMSANPHAM_SET_LIST_DATA';\r\nexport const BCVIPHAMSANPHAM_SET_LIST_META = 'BCVIPHAMSANPHAM_SET_LIST_META';","export const TOCHUCCANHANVIPHAM_SET_LIST_DATA = 'TOCHUCCANHANVIPHAM_SET_LIST_DATA';\r\nexport const TOCHUCCANHANVIPHAM_SET_LIST_META = 'TOCHUCCANHANVIPHAM_SET_LIST_META';","export const DANHGIAVEHETHONG_SET_LIST_DATA = 'DANHGIAVEHETHONG_SET_LIST_DATA';\r\nexport const DANHGIAVEHETHONG_SET_LIST_META = 'DANHGIAVEHETHONG_SET_LIST_META';","export const PHIEUKHAOSAT_SET_LIST_DATA = 'PHIEUKHAOSAT_SET_LIST_DATA';\r\nexport const PHIEUKHAOSAT_SET_LIST_META = 'PHIEUKHAOSAT_SET_LIST_META';","export const CAUHOIKHAOSAT_SET_LIST_DATA = 'CAUHOIKHAOSAT_SET_LIST_DATA';\r\nexport const CAUHOIKHAOSAT_SET_LIST_META = 'CAUHOIKHAOSAT_SET_LIST_META';","export const KETQUAPHIEUKHAOSAT_SET_LIST_DATA = 'KETQUAPHIEUKHAOSAT_SET_LIST_DATA';\r\nexport const KETQUAPHIEUKHAOSAT_SET_LIST_META = 'KETQUAPHIEUKHAOSAT_SET_LIST_META';","export const BAIDANG_SET_LIST_DATA = 'BAIDANG_SET_LIST_DATA';\r\nexport const BAIDANG_SET_LIST_META = 'BAIDANG_SET_LIST_META';","export const BINHLUAN_SET_LIST_DATA = 'BINHLUAN_SET_LIST_DATA';\r\nexport const BINHLUAN_SET_LIST_META = 'BINHLUAN_SET_LIST_META';","export const BVBAOCAOVIPHAM_SET_LIST_DATA = 'BVBAOCAOVIPHAM_SET_LIST_DATA';\r\nexport const BVBAOCAOVIPHAM_SET_LIST_META = 'BVBAOCAOVIPHAM_SET_LIST_META';","export const TRALOIPHIEUKHAOSAT_SET_LIST_DATA = 'TRALOIPHIEUKHAOSAT_SET_LIST_DATA';\r\nexport const TRALOIPHIEUKHAOSAT_SET_LIST_META = 'TRALOIPHIEUKHAOSAT_SET_LIST_META';","export const CAUHINHHETHONG_SET_LIST_DATA = 'CAUHINHHETHONG_SET_LIST_DATA';\r\nexport const CAUHINHHETHONG_SET_LIST_META = 'CAUHINHHETHONG_SET_LIST_META';","export const CAUHINHDULIEULIENKET_SET_LIST_DATA = 'CAUHINHDULIEULIENKET_SET_LIST_DATA';\r\nexport const CAUHINHDULIEULIENKET_SET_LIST_META = 'CAUHINHDULIEULIENKET_SET_LIST_META';","export const DMAPIWEBSERVICE_SET_LIST_DATA = 'DMAPIWEBSERVICE_SET_LIST_DATA';\r\nexport const DMAPIWEBSERVICE_SET_LIST_META = 'DMAPIWEBSERVICE_SET_LIST_META';","export const TKDOANHNGHIEP_SET_LIST_DATA = 'TKDOANHNGHIEP_SET_LIST_DATA';\r\nexport const TKDOANHNGHIEP_SET_LIST_META = 'TKDOANHNGHIEP_SET_LIST_META';\r\n","export const SANPHAMDN_SET_LIST_DATA = 'SANPHAMDN_SET_LIST_DATA';\r\nexport const SANPHAMDN_SET_LIST_META = 'SANPHAMDN_SET_LIST_META';","export const BINHLUANSP_SET_LIST_DATA = 'BINHLUANSP_SET_LIST_DATA';\r\nexport const BINHLUANSP_SET_LIST_META = 'BINHLUANSP_SET_LIST_META';","export const DNSUKIEN_SET_LIST_DATA = 'DNSUKIEN_SET_LIST_DATA';\r\nexport const DNSUKIEN_SET_LIST_META = 'DNSUKIEN_SET_LIST_META';","export const TINBAOTOGIAC_SET_LIST_DATA = 'TINBAOTOGIAC_SET_LIST_DATA';\r\nexport const TINBAOTOGIAC_SET_LIST_META = 'TINBAOTOGIAC_SET_LIST_META';","export const TAIKHOAN_SET_LIST_DATA = 'TAIKHOAN_SET_LIST_DATA';\r\nexport const TAIKHOAN_SET_LIST_META = 'TAIKHOAN_SET_LIST_META';","export const MENUFRONTEND_SET_LIST_DATA = 'MENUFRONTEND_SET_LIST_DATA';\r\nexport const MENUFRONTEND_SET_LIST_META = 'MENUFRONTEND_SET_LIST_META';","export const BVTIENICH_SET_LIST_DATA = 'BVTIENICH_SET_LIST_DATA';\r\nexport const BVTIENICH_SET_LIST_META = 'BVTIENICH_SET_LIST_META';","export const DIEUKHOANCHINHSACH_SET_LIST_DATA = 'DIEUKHOANCHINHSACH_SET_LIST_DATA';\r\nexport const DIEUKHOANCHINHSACH_SET_LIST_META = 'DIEUKHOANCHINHSACH_SET_LIST_META';","export const CHCAUHOI_SET_LIST_DATA = 'CHCAUHOI_SET_LIST_DATA';\r\nexport const CHCAUHOI_SET_LIST_META = 'CHCAUHOI_SET_LIST_META';","export const BANNERQUANGCAO_SET_LIST_DATA = 'BANNERQUANGCAO_SET_LIST_DATA';\r\nexport const BANNERQUANGCAO_SET_LIST_META = 'BANNERQUANGCAO_SET_LIST_META';","export const CHTRALOI_SET_LIST_DATA = 'CHTRALOI_SET_LIST_DATA';\r\nexport const CHTRALOI_SET_LIST_META = 'CHTRALOI_SET_LIST_META';","import { OAUTH_SET_TOKEN, OAUTH_REMOVE_TOKEN } from './oauthConstant';\r\n\r\nconst tokenDefault = {\r\n access_token: null,\r\n expires: null,\r\n refresh_token: null,\r\n fullName: null,\r\n username: null,\r\n unitId: null,\r\n lstRoles: [],\r\n idTaiKhoan:0,\r\n};\r\nconst oauthReducer = (state = tokenDefault, action) => {\r\n switch (action.type) {\r\n case OAUTH_SET_TOKEN:\r\n return Object.assign({}, state, action.token);\r\n case OAUTH_REMOVE_TOKEN:\r\n return Object.assign({}, state, tokenDefault);\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { oauthReducer };","import { USER_SET_LIST_DATA, USER_SET_LIST_META } from './userConstant';\r\n\r\nconst user = {\r\n userList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 20,\r\n sort: {username:'asc'},\r\n search: '',\r\n filter: {\r\n unitId: '',\r\n unitTraversalOption: '0',\r\n _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst userReducer = (state = user, action) => {\r\n switch (action.type) {\r\n case USER_SET_LIST_DATA:\r\n return Object.assign({}, state, { userList: action.userList });\r\n case USER_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {userReducer};","import * as Constant from './dmchuyenmuctinConstant';\r\n\r\nconst dmchuyenmuctin = {\r\n dmchuyenmuctinList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmchuyenmuctinReducer = (state = dmchuyenmuctin, action) => {\r\n switch (action.type) {\r\n case Constant.DMCHUYENMUCTIN_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmchuyenmuctinList: action.dmchuyenmuctinList });\r\n case Constant.DMCHUYENMUCTIN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmchuyenmuctinReducer};","import * as Constant from './dmdoituongchiaseConstant';\r\n\r\nconst dmdoituongchiase = {\r\n dmdoituongchiaseList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmdoituongchiaseReducer = (state = dmdoituongchiase, action) => {\r\n switch (action.type) {\r\n case Constant.DMDOITUONGCHIASE_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmdoituongchiaseList: action.dmdoituongchiaseList });\r\n case Constant.DMDOITUONGCHIASE_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmdoituongchiaseReducer};","import * as Constant from './dmdonvilienketConstant';\r\n\r\nconst dmdonvilienket = {\r\n dmdonvilienketList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmdonvilienketReducer = (state = dmdonvilienket, action) => {\r\n switch (action.type) {\r\n case Constant.DMDONVILIENKET_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmdonvilienketList: action.dmdonvilienketList });\r\n case Constant.DMDONVILIENKET_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmdonvilienketReducer};","import * as Constant from './dmchudecauhoiConstant';\r\n\r\nconst dmchudecauhoi = {\r\n dmchudecauhoiList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmchudecauhoiReducer = (state = dmchudecauhoi, action) => {\r\n switch (action.type) {\r\n case Constant.DMCHUDECAUHOI_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmchudecauhoiList: action.dmchudecauhoiList });\r\n case Constant.DMCHUDECAUHOI_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmchudecauhoiReducer};","import * as Constant from './dmlinhvuckinhdoanhConstant';\r\n\r\nconst dmlinhvuckinhdoanh = {\r\n dmlinhvuckinhdoanhList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmlinhvuckinhdoanhReducer = (state = dmlinhvuckinhdoanh, action) => {\r\n switch (action.type) {\r\n case Constant.DMLINHVUCKINHDOANH_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmlinhvuckinhdoanhList: action.dmlinhvuckinhdoanhList });\r\n case Constant.DMLINHVUCKINHDOANH_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmlinhvuckinhdoanhReducer};","import * as Constant from './dnthuonghieuConstant';\r\n\r\nconst dnthuonghieu = {\r\n dnthuonghieuList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n idDoanhNghiep: 0, \r\n }, \r\n }\r\n};\r\nconst dnthuonghieuReducer = (state = dnthuonghieu, action) => {\r\n switch (action.type) {\r\n case Constant.DNTHUONGHIEU_SET_LIST_DATA:\r\n return Object.assign({}, state, { dnthuonghieuList: action.dnthuonghieuList });\r\n case Constant.DNTHUONGHIEU_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dnthuonghieuReducer};","import * as Constant from './dmchitieuConstant';\r\n\r\nconst dmchitieu = {\r\n dmchitieuList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmchitieuReducer = (state = dmchitieu, action) => {\r\n switch (action.type) {\r\n case Constant.DMCHITIEU_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmchitieuList: action.dmchitieuList });\r\n case Constant.DMCHITIEU_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmchitieuReducer};","import { DM_LOAI_THONG_BAO_SET_LIST_DATA, DM_LOAI_THONG_BAO_SET_LIST_META } from './DMLoaiThongBaoConstant';\r\n\r\nconst dmloaithongbao = {\r\n DMLoaiThongBaoList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n unitId: '',\r\n unitTraversalOption: '0',\r\n _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst DMLoaiThongBaoReducer = (state = dmloaithongbao, action) => {\r\n switch (action.type) {\r\n case DM_LOAI_THONG_BAO_SET_LIST_DATA:\r\n return Object.assign({}, state, { DMLoaiThongBaoList: action.DMLoaiThongBaoList });\r\n case DM_LOAI_THONG_BAO_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {DMLoaiThongBaoReducer};","import * as Constant from './dmdiabanConstant';\r\n\r\nconst dmdiaban = {\r\n dmdiabanList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n idTinhThanh: 0, \r\n },\r\n }\r\n};\r\nconst dmdiabanReducer = (state = dmdiaban, action) => {\r\n switch (action.type) {\r\n case Constant.DMDIABAN_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmdiabanList: action.dmdiabanList });\r\n case Constant.DMDIABAN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmdiabanReducer};","import * as Constant from './dmquanhuyenConstant';\r\n\r\nconst dmquanhuyen = {\r\n dmquanhuyenList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n idTinhThanh: 0, \r\n },\r\n }\r\n};\r\nconst dmquanhuyenReducer = (state = dmquanhuyen, action) => {\r\n switch (action.type) {\r\n case Constant.DMQUANHUYEN_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmquanhuyenList: action.dmquanhuyenList });\r\n case Constant.DMQUANHUYEN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmquanhuyenReducer};","import * as actions from './tktaikhoanConstant';\r\n\r\nconst tktaikhoan = {\r\n tktaikhoanList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { tendangnhap: 'asc' },\r\n search: '',\r\n filter: {\r\n nam: 0,\r\n thang: 0,\r\n nmanhom: \"\",\r\n _: new Date().getTime()\r\n\r\n },\r\n },\r\n data: {}\r\n};\r\nconst tktaikhoanReducer = (state = tktaikhoan, action) => {\r\n switch (action.type) {\r\n case actions.TKTAIKHOAN_SET_LIST_DATA:\r\n return Object.assign({}, state, { tktaikhoanList: action.tktaikhoanList });\r\n case actions.TKTAIKHOAN_SET_LIST_META:\r\n return Object.assign(\r\n {},\r\n state,\r\n {\r\n meta: Object.assign(\r\n {},\r\n state.meta,\r\n action.meta\r\n )\r\n });\r\n case actions.TKTAIKHOAN_SET_INFO:\r\n return Object.assign({}, state, { data: action.data });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { tktaikhoanReducer };","import * as Constant from './dmtinhthanhConstant';\r\n\r\nconst dmtinhthanh = {\r\n dmtinhthanhList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmtinhthanhReducer = (state = dmtinhthanh, action) => {\r\n switch (action.type) {\r\n case Constant.DMTINHTHANH_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmtinhthanhList: action.dmtinhthanhList });\r\n case Constant.DMTINHTHANH_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmtinhthanhReducer};","import * as Constant from './dmphuongxaConstant';\r\n\r\nconst dmphuongxa = {\r\n dmphuongxaList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n idPhuongXa: 0, \r\n },\r\n }\r\n};\r\nconst dmphuongxaReducer = (state = dmphuongxa, action) => {\r\n switch (action.type) {\r\n case Constant.DMPHUONGXA_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmphuongxaList: action.dmphuongxaList });\r\n case Constant.DMPHUONGXA_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmphuongxaReducer};","import * as Constant from './dmduongphoConstant';\r\n\r\nconst dmduongpho = {\r\n dmduongphoList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n idPhuongXa: 0, \r\n },\r\n }\r\n};\r\nconst dmduongphoReducer = (state = dmduongpho, action) => {\r\n switch (action.type) {\r\n case Constant.DMDUONGPHO_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmduongphoList: action.dmduongphoList });\r\n case Constant.DMDUONGPHO_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmduongphoReducer};","import * as Constant from './dmchitieusanphamquantamConstant';\r\n\r\nconst dmchitieusanphamquantam = {\r\n dmchitieusanphamquantamList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '', \r\n }\r\n};\r\nconst dmchitieusanphamquantamReducer = (state = dmchitieusanphamquantam, action) => {\r\n switch (action.type) {\r\n case Constant.DMCHITIEUSANPHAMQUANTAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmchitieusanphamquantamList: action.dmchitieusanphamquantamList });\r\n case Constant.DMCHITIEUSANPHAMQUANTAM_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmchitieusanphamquantamReducer};","import * as Constant from './dmchitieusanphamConstant'\r\n\r\nconst dmchitieusanpham = {\r\n dmchitieusanphamList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '', \r\n }\r\n};\r\nconst dmchitieusanphamReducer = (state = dmchitieusanpham, action) => {\r\n switch (action.type) {\r\n case Constant.DMCHITIEUSANPHAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmchitieusanphamList: action.dmchitieusanphamList });\r\n case Constant.DMCHITIEUSANPHAM_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmchitieusanphamReducer};","import { DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_DATA, DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_META } from './DMChiTieuNguoiDungTichCucConstant';\r\n\r\nconst dmchitieunguoidungtichcuc = {\r\n DMChiTieuNguoiDungTichCucList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n unitId: '',\r\n unitTraversalOption: '0',\r\n _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst DMChiTieuNguoiDungTichCucReducer = (state = dmchitieunguoidungtichcuc, action) => {\r\n switch (action.type) {\r\n case DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_DATA:\r\n return Object.assign({}, state, { DMChiTieuNguoiDungTichCucList: action.DMChiTieuNguoiDungTichCucList });\r\n case DM_CHI_TIEU_NGUOI_DUNG_TICH_CUC_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {DMChiTieuNguoiDungTichCucReducer};","import { DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_DATA, DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_META } from './DMChiTieuDoanhNghiepTichCucConstant';\r\n\r\nconst dmchitieudoanhnghieptichcuc = {\r\n DMChiTieuDoanhNghiepTichCucList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n unitId: '',\r\n unitTraversalOption: '0',\r\n _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst DMChiTieuDoanhNghiepTichCucReducer = (state = dmchitieudoanhnghieptichcuc, action) => {\r\n switch (action.type) {\r\n case DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_DATA:\r\n return Object.assign({}, state, { DMChiTieuDoanhNghiepTichCucList: action.DMChiTieuDoanhNghiepTichCucList });\r\n case DM_CHI_TIEU_DOANH_NGHIEP_TICH_CUC_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {DMChiTieuDoanhNghiepTichCucReducer};","import * as Constant from './dmloaisanphamConstant';\r\n\r\nconst dmloaisanpham = {\r\n dmloaisanphamList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmloaisanphamReducer = (state = dmloaisanpham, action) => {\r\n switch (action.type) {\r\n case Constant.DMLOAISANPHAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmloaisanphamList: action.dmloaisanphamList });\r\n case Constant.DMLOAISANPHAM_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmloaisanphamReducer};","import * as Constant from './tkpermissionConstant';\r\n\r\nconst tkpermission = {\r\n tkpermissionList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst tkpermissionReducer = (state = tkpermission, action) => {\r\n switch (action.type) {\r\n case Constant.TKPERMISSION_SET_LIST_DATA:\r\n return Object.assign({}, state, { tkpermissionList: action.tkpermissionList });\r\n case Constant.TKPERMISSION_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {tkpermissionReducer};","import * as Constant from './dmloaihinhkinhdoanhConstant';\r\n\r\nconst dmloaihinhkinhdoanh = {\r\n dmloaihinhkinhdoanhList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmloaihinhkinhdoanhReducer = (state = dmloaihinhkinhdoanh, action) => {\r\n switch (action.type) {\r\n case Constant.DMLOAIHINHKINHDOANH_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmloaihinhkinhdoanhList: action.dmloaihinhkinhdoanhList });\r\n case Constant.DMLOAIHINHKINHDOANH_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmloaihinhkinhdoanhReducer};","import { DM_KHOANG_GIA_SET_LIST_DATA, DM_KHOANG_GIA_SET_LIST_META } from './DMKhoangGiaConstant';\r\n\r\nconst dmkhoanggia = {\r\n DMKhoangGiaList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n unitId: '',\r\n unitTraversalOption: '0',\r\n _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst DMKhoangGiaReducer = (state = dmkhoanggia, action) => {\r\n switch (action.type) {\r\n case DM_KHOANG_GIA_SET_LIST_DATA:\r\n return Object.assign({}, state, { DMKhoangGiaList: action.DMKhoangGiaList });\r\n case DM_KHOANG_GIA_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {DMKhoangGiaReducer};","import { DM_DON_VI_SET_LIST_DATA, DM_DON_VI_SET_LIST_META } from './DMDonViConstant';\r\n\r\nconst dmdonvi = {\r\n DMDonViList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '',\r\n filter: {\r\n unitId: '',\r\n unitTraversalOption: '0',\r\n _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst DMDonViReducer = (state = dmdonvi, action) => {\r\n switch (action.type) {\r\n case DM_DON_VI_SET_LIST_DATA:\r\n return Object.assign({}, state, { DMDonViList: action.DMDonViList });\r\n case DM_DON_VI_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {DMDonViReducer};","import * as Constant from './tknhomnguoidungConstant';\r\n\r\nconst tknhomnguoidung = {\r\n tknhomnguoidungList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '',\r\n filter: {\r\n //idDoanhNghiep: 0, \r\n }, \r\n }\r\n};\r\nconst tknhomnguoidungReducer = (state = tknhomnguoidung, action) => {\r\n switch (action.type) {\r\n case Constant.TKNHOMNGUOIDUNG_SET_LIST_DATA:\r\n return Object.assign({}, state, { tknhomnguoidungList: action.tknhomnguoidungList });\r\n case Constant.TKNHOMNGUOIDUNG_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {tknhomnguoidungReducer};","import * as Constant from './dmdoituongquanlyConstant';\r\n\r\nconst dmdoituongquanly = {\r\n dmdoituongquanlyList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmdoituongquanlyReducer = (state = dmdoituongquanly, action) => {\r\n switch (action.type) {\r\n case Constant.DMDOITUONGQUANLY_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmdoituongquanlyList: action.dmdoituongquanlyList });\r\n case Constant.DMDOITUONGQUANLY_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmdoituongquanlyReducer};","import * as Constant from './dmchucvuConstant';\r\n\r\nconst dmchucvu = {\r\n dmchucvuList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmchucvuReducer = (state = dmchucvu, action) => {\r\n switch (action.type) {\r\n case Constant.DMCHUCVU_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmchucvuList: action.dmchucvuList });\r\n case Constant.DMCHUCVU_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmchucvuReducer};","import * as Constant from './dmhanhviviphamConstant';\r\n\r\nconst dmhanhvivipham = {\r\n dmhanhviviphamList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmhanhviviphamReducer = (state = dmhanhvivipham, action) => {\r\n switch (action.type) {\r\n case Constant.DMHANHVIVIPHAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmhanhviviphamList: action.dmhanhviviphamList });\r\n case Constant.DMHANHVIVIPHAM_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmhanhviviphamReducer};","import * as Constant from './dmchitieudanhgiaConstant';\r\n\r\nconst dmchitieudanhgia = {\r\n dmchitieudanhgiaList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmchitieudanhgiaReducer = (state = dmchitieudanhgia, action) => {\r\n switch (action.type) {\r\n case Constant.DMCHITIEUDANHGIA_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmchitieudanhgiaList: action.dmchitieudanhgiaList });\r\n case Constant.DMCHITIEUDANHGIA_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmchitieudanhgiaReducer};","import * as Constant from './tknhomnguoidungcnConstant';\r\n\r\nconst tknhomnguoidungcn = {\r\n tknhomnguoidungcnList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '',\r\n filter: {\r\n //idDoanhNghiep: 0, \r\n }, \r\n }\r\n};\r\nconst tknhomnguoidungcnReducer = (state = tknhomnguoidungcn, action) => {\r\n switch (action.type) {\r\n case Constant.TKNHOMNGUOIDUNGCN_SET_LIST_DATA:\r\n return Object.assign({}, state, { tknhomnguoidungcnList: action.tknhomnguoidungcnList });\r\n case Constant.TKNHOMNGUOIDUNGCN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {tknhomnguoidungcnReducer};","import * as Constant from './dmlinhvucsukienConstant';\r\n\r\nconst dmlinhvucsukien = {\r\n dmlinhvucsukienList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst dmlinhvucsukienReducer = (state = dmlinhvucsukien, action) => {\r\n switch (action.type) {\r\n case Constant.DMLINHVUCSUKIEN_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmlinhvucsukienList: action.dmlinhvucsukienList });\r\n case Constant.DMLINHVUCSUKIEN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dmlinhvucsukienReducer};","import * as Constant from './logSysConstant';\r\n\r\nconst logSys = {\r\n logSysList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 20,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n thaotac: 0,\r\n table:'',\r\n },\r\n }\r\n};\r\nconst logSysReducer = (state = logSys, action) => {\r\n switch (action.type) {\r\n case Constant.LOGSYS_SET_LIST_DATA:\r\n return Object.assign({}, state, { logSysList: action.logSysList });\r\n case Constant.LOGSYS_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {logSysReducer};","import * as Constant from './menuhethongConstant';\r\n\r\nconst menuhethong = {\r\n menuhethongList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 20,\r\n sort: {id:'asc'},\r\n search: '',\r\n filter: { \r\n },\r\n }\r\n};\r\nconst menuhethongReducer = (state = menuhethong, action) => {\r\n switch (action.type) {\r\n case Constant.MENUHETHONG_SET_LIST_DATA:\r\n return Object.assign({}, state, { menuhethongList: action.menuhethongList });\r\n case Constant.MENUHETHONG_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {menuhethongReducer};","import * as actions from './hosovuviecConstants';\r\nconst hosovuviec = {\r\n hosovuviecList: [],\r\n dataHVVP: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { title: 'asc' },\r\n search: '',\r\n filter: {\r\n iddonvi: 0,\r\n status: 0,\r\n _: new Date().getTime()\r\n\r\n },\r\n }\r\n};\r\nconst hosovuviecReducer = (state = hosovuviec, action) => {\r\n switch (action.type) {\r\n case actions.HOSOVUVIEC_SET_LIST_DATA:\r\n return Object.assign({}, state, { hosovuviecList: action.hosovuviecList });\r\n case actions.HANHVIVIPHAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { dataHVVP: action.dataHVVP });\r\n case actions.HOSOVUVIEC_SET_LIST_META:\r\n return Object.assign(\r\n {},\r\n state,\r\n {\r\n meta: Object.assign(\r\n {},\r\n state.meta,\r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { hosovuviecReducer };","import * as Constant from './khotulieuConstant';\r\n\r\nconst khotulieu = {\r\n khotulieuList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst khotulieuReducer = (state = khotulieu, action) => {\r\n switch (action.type) {\r\n case Constant.KHOTULIEU_SET_LIST_DATA:\r\n return Object.assign({}, state, { khotulieuList: action.khotulieuList });\r\n case Constant.KHOTULIEU_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { khotulieuReducer};","import * as actions from './tindangConstants';\r\n\r\nconst tindang = {\r\n tindangList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n status:0\r\n // donvi: 0,\r\n // _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst tindangReducer = (state = tindang, action) => {\r\n switch (action.type) {\r\n case actions.TINDANG_SET_LIST_DATA:\r\n return Object.assign({}, state, { tindangList: action.tindangList });\r\n case actions.TINDANG_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {tindangReducer};","import * as Constant from './bclydobaocaoConstant';\r\n\r\nconst bclydobaocao = {\r\n bclydobaocaoList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst bclydobaocaoReducer = (state = bclydobaocao, action) => {\r\n switch (action.type) {\r\n case Constant.BCLYDOBAOCAO_SET_LIST_DATA:\r\n return Object.assign({}, state, { bclydobaocaoList: action.bclydobaocaoList });\r\n case Constant.BCLYDOBAOCAO_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {bclydobaocaoReducer};","import * as Constant from './bcviphamsanphamConstant';\r\n\r\nconst bcviphamsanpham = {\r\n bcviphamsanphamList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '',\r\n filter: {\r\n iD_SANPHAM: 0, \r\n iD_DOANHNGHIEP: 0, \r\n iD_NGUOIBAOCAO: 0, \r\n iD_LYDOBAOCAO: 0, \r\n iD_NGUOIPHANHOI: 0, \r\n },\r\n }\r\n};\r\nconst bcviphamsanphamReducer = (state = bcviphamsanpham, action) => {\r\n switch (action.type) {\r\n case Constant.BCVIPHAMSANPHAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { bcviphamsanphamList: action.bcviphamsanphamList });\r\n case Constant.BCVIPHAMSANPHAM_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {bcviphamsanphamReducer};","import * as Constant from './tochuccanhanviphamConstant';\r\n\r\nconst tochuccanhanvipham = {\r\n tochuccanhanviphamList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id: 'asc' },\r\n search: '',\r\n filter: {\r\n id_linhvuc: 0,\r\n id_loaisp: 0,\r\n } \r\n }\r\n};\r\nconst tochuccanhanviphamReducer = (state = tochuccanhanvipham, action) => {\r\n switch (action.type) {\r\n case Constant.TOCHUCCANHANVIPHAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { tochuccanhanviphamList: action.tochuccanhanviphamList });\r\n case Constant.TOCHUCCANHANVIPHAM_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { tochuccanhanviphamReducer};","import * as Constant from './danhgiavehethongConstant';\r\n\r\nconst danhgiavehethong = {\r\n danhgiavehethongList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: ''\r\n\r\n }\r\n};\r\nconst danhgiavehethongReducer = (state = danhgiavehethong, action) => {\r\n switch (action.type) {\r\n case Constant.DANHGIAVEHETHONG_SET_LIST_DATA:\r\n return Object.assign({}, state, { danhgiavehethongList: action.danhgiavehethongList });\r\n case Constant.DANHGIAVEHETHONG_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { danhgiavehethongReducer};","import * as Constant from './phieukhaosatConstant';\r\n\r\nconst phieukhaosat = {\r\n phieukhaosatList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst phieukhaosatReducer = (state = phieukhaosat, action) => {\r\n switch (action.type) {\r\n case Constant.PHIEUKHAOSAT_SET_LIST_DATA:\r\n return Object.assign({}, state, { phieukhaosatList: action.phieukhaosatList });\r\n case Constant.PHIEUKHAOSAT_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { phieukhaosatReducer};","import * as Constant from './cauhoikhaosatConstant';\r\n\r\nconst cauhoikhaosat = {\r\n cauhoikhaosatList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '',\r\n total: 1,\r\n filter: {\r\n ID_PHIEUKHAOSAT: 0\r\n\r\n },\r\n }\r\n};\r\nconst cauhoikhaosatReducer = (state = cauhoikhaosat, action) => {\r\n switch (action.type) {\r\n case Constant.CAUHOIKHAOSAT_SET_LIST_DATA:\r\n return Object.assign({}, state, { cauhoikhaosatList: action.cauhoikhaosatList });\r\n case Constant.CAUHOIKHAOSAT_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { cauhoikhaosatReducer};","import * as Constant from './ketquaphieukhaosatConstant';\r\n\r\nconst ketquaphieukhaosat = {\r\n ketquaphieukhaosatList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id:'desc'},\r\n search: '' \r\n }\r\n};\r\nconst ketquaphieukhaosatReducer = (state = ketquaphieukhaosat, action) => {\r\n switch (action.type) {\r\n case Constant.KETQUAPHIEUKHAOSAT_SET_LIST_DATA:\r\n return Object.assign({}, state, { ketquaphieukhaosatList: action.ketquaphieukhaosatList });\r\n case Constant.KETQUAPHIEUKHAOSAT_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { ketquaphieukhaosatReducer};","import * as actions from './baidangConstants';\r\n\r\nconst baidang = {\r\n baidangList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n status:0\r\n },\r\n }\r\n};\r\nconst baidangReducer = (state = baidang, action) => {\r\n switch (action.type) {\r\n case actions.BAIDANG_SET_LIST_DATA:\r\n return Object.assign({}, state, { baidangList: action.baidangList });\r\n case actions.BAIDANG_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {baidangReducer};","import * as actions from './binhluanConstants';\r\n\r\nconst binhluan = {\r\n binhluanList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n status:0\r\n },\r\n }\r\n};\r\nconst binhluanReducer = (state = binhluan, action) => {\r\n switch (action.type) {\r\n case actions.BINHLUAN_SET_LIST_DATA:\r\n return Object.assign({}, state, { binhluanList: action.binhluanList });\r\n case actions.BINHLUAN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {binhluanReducer};","import * as actions from './bvbaocaoviphamConstants';\r\n\r\nconst bvbaocaovipham = {\r\n bvbaocaoviphamList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n status:0\r\n },\r\n }\r\n};\r\nconst bvbaocaoviphamReducer = (state = bvbaocaovipham, action) => {\r\n switch (action.type) {\r\n case actions.BVBAOCAOVIPHAM_SET_LIST_DATA:\r\n return Object.assign({}, state, { bvbaocaoviphamList: action.bvbaocaoviphamList });\r\n case actions.BVBAOCAOVIPHAM_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {bvbaocaoviphamReducer};","import * as Constant from './traloiphieukhaosatConstant';\r\n\r\nconst traloiphieukhaosat = {\r\n traloiphieukhaosatList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '',\r\n filter: {\r\n ID_PHIEUKHAOSAT: 0,\r\n startdate: \"\",\r\n enddate: \"\",\r\n },\r\n }\r\n};\r\nconst traloiphieukhaosatReducer = (state = traloiphieukhaosat, action) => {\r\n switch (action.type) {\r\n case Constant.TRALOIPHIEUKHAOSAT_SET_LIST_DATA:\r\n return Object.assign({}, state, { traloiphieukhaosatList: action.traloiphieukhaosatList });\r\n case Constant.TRALOIPHIEUKHAOSAT_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { traloiphieukhaosatReducer};","import * as Constant from './cauhinhhethongConstant';\r\n\r\nconst cauhinhhethong = {\r\n cauhinhhethongList: [],\r\n \r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst cauhinhhethongReducer = (state = cauhinhhethong, action) => {\r\n switch (action.type) {\r\n case Constant.CAUHINHHETHONG_SET_LIST_DATA:\r\n return Object.assign({}, state, { cauhinhhethongList: action.cauhinhhethongList });\r\n case Constant.CAUHINHHETHONG_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { cauhinhhethongReducer};","import * as Constant from './cauhinhdulieulienketConstant';\r\n\r\nconst cauhinhdulieulienket = {\r\n cauhinhdulieulienketList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst cauhinhdulieulienketReducer = (state = cauhinhdulieulienket, action) => {\r\n switch (action.type) {\r\n case Constant.CAUHINHDULIEULIENKET_SET_LIST_DATA:\r\n return Object.assign({}, state, { cauhinhdulieulienketList: action.cauhinhdulieulienketList });\r\n case Constant.CAUHINHDULIEULIENKET_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {cauhinhdulieulienketReducer};","import * as Constant from './dmapiwebserviceConstant';\r\n\r\nconst dmapiwebservice = {\r\n dmapiwebserviceList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst dmapiwebserviceReducer = (state = dmapiwebservice, action) => {\r\n switch (action.type) {\r\n case Constant.DMAPIWEBSERVICE_SET_LIST_DATA:\r\n return Object.assign({}, state, { dmapiwebserviceList: action.dmapiwebserviceList });\r\n case Constant.DMAPIWEBSERVICE_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dmapiwebserviceReducer};","import * as actions from './tkdoanhnghiepConstant';\r\n\r\nconst tkdoanhnghiep = {\r\n tkdoanhnghiepList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {tendangnhap:'asc'},\r\n search: '',\r\n filter: {\r\n id_linhvuc:0,\r\n id_loaihinh:0,\r\n id_mathangkinhdoanhchinh:0,\r\n id_tinhthanh:0,\r\n id_quanhuyen:0,\r\n id_phuongxa:0,\r\n _: new Date().getTime()\r\n \r\n },\r\n }\r\n};\r\nconst tkdoanhnghiepReducer = (state = tkdoanhnghiep, action) => {\r\n switch (action.type) {\r\n case actions.TKDOANHNGHIEP_SET_LIST_DATA:\r\n return Object.assign({}, state, { tkdoanhnghiepList: action.tkdoanhnghiepList });\r\n case actions.TKDOANHNGHIEP_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {tkdoanhnghiepReducer};","import * as actions from './sanphamdnConstants';\r\n\r\nconst sanphamdn = {\r\n sanphamdnList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n status:0\r\n },\r\n }\r\n};\r\nconst sanphamdnReducer = (state = sanphamdn, action) => {\r\n switch (action.type) {\r\n case actions.SANPHAMDN_SET_LIST_DATA:\r\n return Object.assign({}, state, { sanphamdnList: action.sanphamdnList });\r\n case actions.SANPHAMDN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {sanphamdnReducer};","import * as actions from './binhluanspConstants';\r\n\r\nconst binhluansp = {\r\n binhluanspList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n status:0\r\n },\r\n }\r\n};\r\nconst binhluanspReducer = (state = binhluansp, action) => {\r\n switch (action.type) {\r\n case actions.BINHLUANSP_SET_LIST_DATA:\r\n return Object.assign({}, state, { binhluanspList: action.binhluanspList });\r\n case actions.BINHLUANSP_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {binhluanspReducer};","import * as actions from './dnsukienConstants';\r\n\r\nconst dnsukien = {\r\n dnsukienList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'desc'},\r\n search: '',\r\n filter: {\r\n status:0\r\n },\r\n }\r\n};\r\nconst dnsukienReducer = (state = dnsukien, action) => {\r\n switch (action.type) {\r\n case actions.DNSUKIEN_SET_LIST_DATA:\r\n return Object.assign({}, state, { dnsukienList: action.dnsukienList });\r\n case actions.DNSUKIEN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {dnsukienReducer};","import * as Constant from './tinbaotogiacConstant';\r\n\r\nconst tinbaotogiac = {\r\n tinbaotogiacList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id: 'asc' },\r\n search: '',\r\n filter: {\r\n id_tinhthanh: 0,\r\n trangthai: 0,\r\n tungay: '',\r\n denngay:'',\r\n } \r\n }\r\n};\r\nconst tinbaotogiacReducer = (state = tinbaotogiac, action) => {\r\n switch (action.type) {\r\n case Constant.TINBAOTOGIAC_SET_LIST_DATA:\r\n return Object.assign({}, state, { tinbaotogiacList: action.tinbaotogiacList }); \r\n case Constant.TINBAOTOGIAC_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { tinbaotogiacReducer};","import * as Constant from './taikhoanConstant';\r\n\r\nconst taikhoan = {\r\n taikhoanList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id: 'asc' },\r\n search: '',\r\n filter: {\r\n id_tinhthanh: 0,\r\n trangthai: 0,\r\n tungay: '',\r\n denngay: '',\r\n manhom:\"05\",// mặc định lấy loại tài khoản quản lý thị trường\r\n } \r\n }\r\n};\r\nconst taikhoanReducer = (state = taikhoan, action) => {\r\n switch (action.type) {\r\n case Constant.TAIKHOAN_SET_LIST_DATA:\r\n return Object.assign({}, state, { taikhoanList: action.taikhoanList }); \r\n case Constant.TAIKHOAN_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { taikhoanReducer};","import * as Constant from './menuFrontEndConstant';\r\n\r\nconst menuFrontEnd = {\r\n menuFrontEndList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 20,\r\n sort: {id:'asc'},\r\n search: '',\r\n filter: { \r\n },\r\n }\r\n};\r\nconst menuFrontEndReducer = (state = menuFrontEnd, action) => {\r\n switch (action.type) {\r\n case Constant.MENUFRONTEND_SET_LIST_DATA:\r\n return Object.assign({}, state, { menuFrontEndList: action.menuFrontEndList });\r\n case Constant.MENUFRONTEND_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport {menuFrontEndReducer};","import * as Constant from './bvtienichConstant';\r\n\r\nconst bvtienich = {\r\n bvtienichList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: { id: 'desc' },\r\n search: '' \r\n }\r\n};\r\nconst bvtienichReducer = (state = bvtienich, action) => {\r\n switch (action.type) {\r\n case Constant.BVTIENICH_SET_LIST_DATA:\r\n return Object.assign({}, state, { bvtienichList: action.bvtienichList });\r\n case Constant.BVTIENICH_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { bvtienichReducer};","import * as Constant from './dieukhoanchinhsachConstant';\r\n\r\nconst dieukhoanchinhsach = {\r\n dieukhoanchinhsachList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst dieukhoanchinhsachReducer = (state = dieukhoanchinhsach, action) => {\r\n switch (action.type) {\r\n case Constant.DIEUKHOANCHINHSACH_SET_LIST_DATA:\r\n return Object.assign({}, state, { dieukhoanchinhsachList: action.dieukhoanchinhsachList });\r\n case Constant.DIEUKHOANCHINHSACH_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { dieukhoanchinhsachReducer};","import * as Constant from './chcauhoiConstant';\r\n\r\nconst chcauhoi = {\r\n chcauhoiList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst chcauhoiReducer = (state = chcauhoi, action) => {\r\n switch (action.type) {\r\n case Constant.CHCAUHOI_SET_LIST_DATA:\r\n return Object.assign({}, state, { chcauhoiList: action.chcauhoiList });\r\n case Constant.CHCAUHOI_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { chcauhoiReducer};","import * as Constant from './bannerquangcaoConstant';\r\n\r\nconst bannerquangcao = {\r\n bannerquangcaoList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 10,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst bannerquangcaoReducer = (state = bannerquangcao, action) => {\r\n switch (action.type) {\r\n case Constant.BANNERQUANGCAO_SET_LIST_DATA:\r\n return Object.assign({}, state, { bannerquangcaoList: action.bannerquangcaoList });\r\n case Constant.BANNERQUANGCAO_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { bannerquangcaoReducer};","import * as Constant from './chtraloiConstant';\r\n\r\nconst chtraloi = {\r\n chtraloiList: [],\r\n meta: {\r\n page: 1,\r\n page_size: 20,\r\n sort: {id:'asc'},\r\n search: '' \r\n }\r\n};\r\nconst chtraloiReducer = (state = chtraloi, action) => {\r\n switch (action.type) {\r\n case Constant.CHTRALOI_SET_LIST_DATA:\r\n return Object.assign({}, state, { chtraloiList: action.chtraloiList });\r\n case Constant.CHTRALOI_SET_LIST_META:\r\n return Object.assign(\r\n {}, \r\n state, \r\n { \r\n meta: Object.assign(\r\n {}, \r\n state.meta, \r\n action.meta\r\n )\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\nexport { chtraloiReducer};","import { combineReducers } from 'redux';\r\nimport { oauthReducer } from './oauth/oauthReducer';\r\nimport { userReducer } from './user/userReducer';\r\nimport { dmchuyenmuctinReducer } from './dmchuyenmuctin/dmchuyenmuctinReducer';\r\nimport { dmdoituongchiaseReducer } from './dmdoituongchiase/dmdoituongchiaseReducer';\r\nimport { dmdonvilienketReducer } from './dmdonvilienket/dmdonvilienketReducer';\r\nimport { dmchudecauhoiReducer } from './dmchudecauhoi/dmchudecauhoiReducer';\r\nimport { dmlinhvuckinhdoanhReducer } from './dmlinhvuckinhdoanh/dmlinhvuckinhdoanhReducer';\r\nimport { dnthuonghieuReducer } from './dnthuonghieu/dnthuonghieuReducer';\r\nimport { dmchitieuReducer } from './dmchitieu/dmchitieuReducer';\r\nimport { DMLoaiThongBaoReducer } from './dmloaithongbao/DMLoaiThongBaoReducer';\r\nimport { dmdiabanReducer } from './dmdiaban/dmdiabanReducer';\r\nimport { dmquanhuyenReducer } from './dmquanhuyen/dmquanhuyenReducer';\r\nimport { tktaikhoanReducer } from './tktaikhoan/tktaikhoanReducer';\r\nimport { dmtinhthanhReducer } from './dmtinhthanh/dmtinhthanhReducer';\r\nimport { dmphuongxaReducer } from './dmphuongxa/dmphuongxaReducer';\r\nimport { dmduongphoReducer } from './dmduongpho/dmduongphoReducer';\r\nimport { dmchitieusanphamquantamReducer } from './dmchitieusanphamquantam/dmchitieusanphamquantamReducer';\r\nimport { dmchitieusanphamReducer } from './dmchitieusanpham/dmchitieusanphamReducer';\r\nimport { DMChiTieuNguoiDungTichCucReducer } from './dmchitieunguoidungtichcuc/DMChiTieuNguoiDungTichCucReducer';\r\nimport { DMChiTieuDoanhNghiepTichCucReducer } from './dmchitieudoanhnghieptichcuc/DMChiTieuDoanhNghiepTichCucReducer';\r\nimport { dmloaisanphamReducer } from './dmloaisanpham/dmloaisanphamReducer';\r\nimport { tkpermissionReducer } from './tkpermission/tkpermissionReducer';\r\nimport { dmloaihinhkinhdoanhReducer } from './dmloaihinhkinhdoanh/dmloaihinhkinhdoanhReducer';\r\nimport { DMKhoangGiaReducer } from './dmkhoanggia/DMKhoangGiaReducer';\r\nimport { DMDonViReducer } from './dmdonvi/DMDonViReducer';\r\nimport { tknhomnguoidungReducer } from './tknhomnguoidung/tknhomnguoidungReducer';\r\nimport { dmdoituongquanlyReducer } from './dmdoituongquanly/dmdoituongquanlyReducer';\r\nimport { dmchucvuReducer } from './dmchucvu/dmchucvuReducer';\r\nimport { dmhanhviviphamReducer } from './dmhanhvivipham/dmhanhviviphamReducer';\r\nimport { dmchitieudanhgiaReducer } from './dmchitieudanhgia/dmchitieudanhgiaReducer';\r\nimport { tknhomnguoidungcnReducer } from './tknhomnguoidungcn/tknhomnguoidungcnReducer';\r\nimport { dmlinhvucsukienReducer } from './dmlinhvucsukien/dmlinhvucsukienReducer';\r\nimport { logSysReducer } from './logSys/logSysReducer';\r\nimport { menuhethongReducer } from './menuhethong/menuhethongReducer'; \r\nimport { hosovuviecReducer } from './quanlynoidung/hosovuviec/hosovuviecReducer';\r\nimport { khotulieuReducer } from './quanlynoidung/khotulieu/khotulieuReducer';\r\nimport { tindangReducer } from './quanlynoidung/tindang/tindangReducer';\r\nimport { bclydobaocaoReducer } from './quanlynoidung/bclydobaocao/bclydobaocaoReducer';\r\nimport { bcviphamsanphamReducer } from './quanlynoidung/bcviphamsanpham/bcviphamsanphamReducer';\r\nimport { tochuccanhanviphamReducer } from './quanlynoidung/tochuccanhanvipham/tochuccanhanviphamReducer';\r\nimport { danhgiavehethongReducer } from './danhgiavehethong/danhgiavehethongReducer';\r\nimport { phieukhaosatReducer } from './phieukhaosat/phieukhaosatReducer';\r\nimport { cauhoikhaosatReducer } from './cauhoikhaosat/cauhoikhaosatReducer';\r\nimport { ketquaphieukhaosatReducer } from './ketquaphieukhaosat/ketquaphieukhaosatReducer';\r\nimport { baidangReducer } from './quanlynoidung/baidang/baidangReducer';\r\nimport { binhluanReducer } from './quanlynoidung/baidang/binhluan/binhluanReducer';\r\nimport { bvbaocaoviphamReducer } from './quanlynoidung/baidang/bvbaocaovipham/bvbaocaoviphamReducer';\r\nimport { traloiphieukhaosatReducer } from './traloiphieukhaosat/traloiphieukhaosatReducer';\r\nimport { cauhinhhethongReducer } from './cauhinhhethong/cauhinhhethongReducer';\r\nimport { cauhinhdulieulienketReducer } from './cauhinhdulieulienket/cauhinhdulieulienketReducer';\r\nimport { dmapiwebserviceReducer } from './dmapiwebservice/dmapiwebserviceReducer'; \r\nimport { tkdoanhnghiepReducer } from './tktaikhoan/tkdoanhnghiep/tkdoanhnghiepReducer';\r\nimport { sanphamdnReducer } from './quanlynoidung/sanphamdn/sanphamdnReducer';\r\nimport { binhluanspReducer } from './quanlynoidung/sanphamdn/binhluansp/binhluanspReducer';\r\nimport { dnsukienReducer } from './quanlynoidung/dnsukien/dnsukienReducer';\r\nimport { tinbaotogiacReducer } from './quanlynoidung/tinbaotogiac/tinbaotogiacReducer';\r\nimport { taikhoanReducer } from './quanlynoidung/tinbaotogiac/taikhoan/taikhoanReducer';\r\nimport { menuFrontEndReducer } from './menuFrontEnd/menuFrontEndReducer';\r\nimport { bvtienichReducer } from './bvtienich/bvtienichReducer';\r\nimport { dieukhoanchinhsachReducer } from './dieukhoanchinhsach/dieukhoanchinhsachReducer';\r\nimport { chcauhoiReducer } from './chcauhoi/chcauhoiReducer';\r\nimport { bannerquangcaoReducer } from './bannerquangcao/bannerquangcaoReducer';\r\nimport { chtraloiReducer } from './chtraloi/chtraloiReducer';\r\nconst reducer = combineReducers({\r\n oauth: oauthReducer,\r\n user: userReducer,\r\n dmchuyenmuctin: dmchuyenmuctinReducer,\r\n dmdoituongchiase: dmdoituongchiaseReducer,\r\n dmdonvilienket: dmdonvilienketReducer,\r\n dmchudecauhoi: dmchudecauhoiReducer,\r\n dmchitieu: dmchitieuReducer,\r\n dmlinhvuckinhdoanh: dmlinhvuckinhdoanhReducer,\r\n dnthuonghieu: dnthuonghieuReducer,\r\n DMLoaiThongBao: DMLoaiThongBaoReducer,\r\n tktaikhoan:tktaikhoanReducer,\r\n dmchitieusanphamquantam: dmchitieusanphamquantamReducer,\r\n dmdiaban: dmdiabanReducer,\r\n dmquanhuyen: dmquanhuyenReducer,\r\n dmtinhthanh: dmtinhthanhReducer,\r\n dmphuongxa: dmphuongxaReducer,\r\n dmduongpho: dmduongphoReducer,\r\n dmloaisanpham: dmloaisanphamReducer,\r\n tkpermission: tkpermissionReducer, \r\n dmchitieusanpham: dmchitieusanphamReducer,\r\n dmloaihinhkinhdoanh: dmloaihinhkinhdoanhReducer,\r\n DMChiTieuNguoiDungTichCuc: DMChiTieuNguoiDungTichCucReducer,\r\n DMChiTieuDoanhNghiepTichCuc: DMChiTieuDoanhNghiepTichCucReducer,\r\n DMKhoangGia: DMKhoangGiaReducer,\r\n DMDonVi: DMDonViReducer,\r\n tknhomnguoidung: tknhomnguoidungReducer,\r\n dmdoituongquanly: dmdoituongquanlyReducer,\r\n dmchucvu: dmchucvuReducer,\r\n dmhanhvivipham:dmhanhviviphamReducer,\r\n dmchitieudanhgia: dmchitieudanhgiaReducer,\r\n tknhomnguoidungcn:tknhomnguoidungcnReducer,\r\n dmlinhvucsukien: dmlinhvucsukienReducer,\r\n logSys: logSysReducer,\r\n menuhethong: menuhethongReducer,\r\n hosovuviec: hosovuviecReducer,\r\n khotulieu: khotulieuReducer,\r\n tindang: tindangReducer,\r\n bclydobaocao: bclydobaocaoReducer,\r\n bcviphamsanpham: bcviphamsanphamReducer,\r\n tochuccanhanvipham: tochuccanhanviphamReducer,\r\n danhgiavehethong: danhgiavehethongReducer,\r\n phieukhaosat: phieukhaosatReducer,\r\n cauhoikhaosat: cauhoikhaosatReducer,\r\n ketquaphieukhaosat: ketquaphieukhaosatReducer,\r\n baidang: baidangReducer,\r\n binhluan:binhluanReducer,\r\n bvbaocaovipham:bvbaocaoviphamReducer,\r\n traloiphieukhaosat: traloiphieukhaosatReducer,\r\n cauhinhhethong: cauhinhhethongReducer,\r\n cauhinhdulieulienket:cauhinhdulieulienketReducer,\r\n dmapiwebservice: dmapiwebserviceReducer,\r\n tkdoanhnghiep:tkdoanhnghiepReducer,\r\n sanphamdn: sanphamdnReducer,\r\n binhluansp:binhluanspReducer,\r\n dnsukien: dnsukienReducer,\r\n tinbaotogiac: tinbaotogiacReducer,\r\n taikhoan: taikhoanReducer,\r\n menuFrontEnd: menuFrontEndReducer,\r\n bvtienich: bvtienichReducer,\r\n dieukhoanchinhsach:dieukhoanchinhsachReducer,\r\n chcauhoi: chcauhoiReducer,\r\n bannerquangcao: bannerquangcaoReducer,\r\n chtraloi: chtraloiReducer\r\n});\r\nexport default reducer;","import { createStore } from 'redux';\r\nimport { persistStore, persistReducer } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\nimport rootReducer from './reducers';\r\n\r\nconst persistConfig = {\r\n key: 'root',\r\n storage: storage,\r\n whitelist: ['oauth']\r\n};\r\n\r\nconst pReducer = persistReducer(persistConfig, rootReducer);\r\n\r\nexport const store = createStore(pReducer);\r\nexport const persistor = persistStore(store);\r\n\r\n\r\n\r\n\r\n","import { tap } from 'rxjs/operators';\r\nimport { CLIENT } from '../../app-setting';\r\nimport { http } from '../utils';\r\nimport { store } from 'redux/store';\r\nimport { OauthAction } from 'redux/actions';\r\nclass AuthService {\r\n constructor(_dispatch, { setToken, removeToken,getToken }) {\r\n this.dispatch = _dispatch;\r\n this.action = {\r\n setToken, \r\n removeToken,\r\n getToken\r\n }; \r\n }\r\n login(data) { \r\n const body = {\r\n grant_type: 'mobile',\r\n username: data.username,\r\n password: data.password,\r\n client_id: CLIENT.client_id,\r\n client_secret: CLIENT.client_secret,\r\n };\r\n return http.post('api/token/auth', body).pipe(tap((res) => { \r\n this.dispatch(this.action.setToken(res)); \r\n })); \r\n }\r\n setinfo(data){\r\n this.dispatch(this.action.setToken(data)); \r\n }\r\n loginsso(data) { \r\n const body = {\r\n grant_type: 'sso',\r\n ticket: data.ticket,\r\n serivceurl: data.serivceurl,\r\n client_id: CLIENT.client_id,\r\n client_secret: CLIENT.client_secret,\r\n };\r\n return http.post('api/token/auth', body).pipe(tap((res) => { \r\n this.dispatch(this.action.setToken(res)); \r\n })); \r\n }\r\n getTree() {\r\n return http.get('api/menuhethong/treemenu');\r\n }\r\n logout() {\r\n this.dispatch(this.action.removeToken());\r\n }\r\n}\r\nconst authService = new AuthService(store.dispatch, OauthAction);\r\nexport { authService, AuthService };\r\n","import { http } from '../utils';\r\n\r\nclass BaseService {\r\n constructor(props = {}) {\r\n this.url = props ? props.url : '';\r\n this.http = http;\r\n }\r\n getMany(props) {\r\n const { page, page_size, sort, search, filter } = props;\r\n let sortBy = '';\r\n let sortDesc = false;\r\n let title = search; // do api chua co tim kiem theo tu khoa nen de tam search se tim kiem theo username\r\n if (sort) {\r\n sortBy = Object.keys(sort)[0];\r\n sortDesc = sort[sortBy] === 'desc';\r\n }\r\n const params = Object.assign({}, {\r\n page: page,\r\n itemsPerPage: page_size,\r\n sortBy: sortBy,\r\n sortDesc: sortDesc,\r\n FilterText: title\r\n }, filter);\r\n return http.get(`${this.url}`, { params: params });\r\n }\r\n getById(id) {\r\n return http.get(`${this.url}/${id}`);\r\n }\r\n create(obj) {\r\n return http.post(`${this.url}`, obj);\r\n }\r\n update(obj, id) {\r\n return http.put(`${this.url}/${id}`, obj);\r\n }\r\n createFormData(obj, files, objcreate) {\r\n const headers = {\r\n 'Content-Type': 'multipart/form-data',\r\n }\r\n const formData = new FormData()\r\n for (let i = 0; i < files.length; i++) {\r\n formData.append('files', files[i])\r\n }\r\n formData.append(objcreate, JSON.stringify(obj));\r\n return http.post(`${this.url}`, formData, {\r\n headers: headers\r\n })\r\n }\r\n updateFormData(obj, files, id, objupdate) {\r\n const headers = {\r\n 'Content-Type': 'multipart/form-data',\r\n }\r\n const formData = new FormData()\r\n for (let i = 0; i < files.length; i++) {\r\n formData.append('files', files[i])\r\n }\r\n formData.append(objupdate, JSON.stringify(obj));\r\n return http.put(`${this.url}/${id}`, formData, {\r\n headers: headers\r\n })\r\n }\r\n del(id) {\r\n return http.delete(`${this.url}/${id}`);\r\n }\r\n formatDateTime(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate() < 10 ? `0${d.getDate()}` : d.getDate();\r\n var output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n if (output == '1/01/1')\r\n return '';\r\n return output;\r\n }\r\n }\r\n formatDateTimeMDY(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate() < 10 ? `0${d.getDate()}` : d.getDate();\r\n var output = (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n day + '/' +\r\n d.getFullYear();\r\n if (output == '1/01/1')\r\n return '';\r\n return output;\r\n }\r\n }\r\n formatFullDateTimeMDY(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n let hours = d.getHours();\r\n let minute = d.getMinutes();\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate() < 10 ? `0${d.getDate()}` : d.getDate();\r\n var output = (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n day + '/' +\r\n d.getFullYear() +' '+hours+':'+minute;\r\n if (output == '1/01/1')\r\n return '';\r\n return output;\r\n }\r\n }\r\n formatTime(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var hour = d.getHours();\r\n var minutes = d.getMinutes();\r\n var output = (('' + hour).length < 2 ? '0' : '') + hour + 'h' + (('' + minutes).length < 2 ? '0' : '') + minutes;\r\n return output;\r\n }\r\n }\r\n //ChageFormat datetime yyyy-mm-dd phục vụ tìm kiếm mở rộng\r\n changeFormatDateTime(strValue) {\r\n if (!strValue) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n\r\n var output = d.getFullYear() + '-' +\r\n (('' + month).length < 2 ? '0' : '') + month + '-' +\r\n (('' + day).length < 2 ? '0' : '') + day;\r\n return output;\r\n }\r\n }\r\n //ChageFormat datetime yyyy-mm phục vụ tìm kiếm mở rộng\r\n formatDateTimeYearMonth(strValue) {\r\n if (!strValue) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n\r\n var output = d.getFullYear() + '-' +\r\n (('' + month).length < 2 ? '0' : '') + month;\r\n return output;\r\n }\r\n }\r\n slugURL(str) {\r\n if (str) {\r\n // Chuyển hết sang chữ thường\r\n str = str.toLowerCase();\r\n\r\n // xóa dấu\r\n str = str.replace(/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/g, 'a');\r\n str = str.replace(/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/g, 'e');\r\n str = str.replace(/(ì|í|ị|ỉ|ĩ)/g, 'i');\r\n str = str.replace(/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/g, 'o');\r\n str = str.replace(/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/g, 'u');\r\n str = str.replace(/(ỳ|ý|ỵ|ỷ|ỹ)/g, 'y');\r\n str = str.replace(/(đ)/g, 'd');\r\n\r\n // Xóa ký tự đặc biệt\r\n str = str.replace(/([^0-9a-z-\\s])/g, '');\r\n\r\n // Xóa khoảng trắng thay bằng ký tự -\r\n str = str.replace(/(\\s+)/g, '-');\r\n\r\n // xóa phần dự - ở đầu\r\n str = str.replace(/^-+/g, '');\r\n\r\n // xóa phần dư - ở cuối\r\n str = str.replace(/-+$/g, '');\r\n\r\n // return\r\n return str;\r\n }\r\n else\r\n return '';\r\n\r\n }\r\n /**\r\n * Kiểm tra có quyền không\r\n * @param {any} lstRoles danh sách quyền\r\n * @param {any} strObjectPer mã đối tượng\r\n * @param {any} strPrivilege mã quyền\r\n * @param {any} strPermisson Value quyền \r\n */\r\n checkPermisson(lstRoles, strObjectPer, strPrivilege, strPermisson) {\r\n if (lstRoles.length > 0) {\r\n for (var i = 0; i < lstRoles.length; i++) {\r\n if (lstRoles[i] == (strObjectPer + '-' + strPrivilege + '-' + strPermisson))\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n formatFullDateTime(strValue) {\r\n if (strValue == undefined || strValue === '' || strValue == null) {\r\n return '';\r\n }\r\n else {\r\n let output = '';\r\n let d = new Date(strValue);\r\n let month = (d.getMonth() + 1) < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1);\r\n let day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();\r\n let hour = d.getHours() < 10 ? '0' + d.getHours() : d.getHours();\r\n let minute = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes();\r\n output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n if (hour > 0) {\r\n output = output + ' ' + hour + ':' + minute;\r\n }\r\n if (output == '1/01/1')\r\n return '';\r\n return output;\r\n }\r\n }\r\n formatFullDateTimeBL(strValue) {\r\n if (strValue == undefined || strValue === '' || strValue == null) {\r\n return '';\r\n }\r\n else {\r\n let output = '';\r\n let d = new Date(strValue);\r\n let month = (d.getMonth() + 1) < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1);\r\n let day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();\r\n let hour = d.getHours() < 10 ? '0' + d.getHours() : d.getHours();\r\n let minute = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes();\r\n output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n if (hour > 0) {\r\n output = output + ' ' + (('' + hour).length < 2 ? '0' : '') + hour + 'h' + (('' + minute).length < 2 ? '0' : '') + minute;\r\n }\r\n if (output == '1/01/1')\r\n return '';\r\n return output;\r\n }\r\n }\r\n // dels(listId = []): Observable {\r\n // //return this.http.post(this.url + '/deletes', listId);\r\n // }\r\n\r\n formartPriceVND(strNumber) {\r\n return strNumber ? strNumber.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.') : strNumber;\r\n }\r\n\r\n formartPhoneNuber(strNumber) {\r\n if (strNumber != undefined && strNumber != null && strNumber != '') {\r\n if (strNumber.length > 4) {\r\n\r\n return strNumber.replace(strNumber.slice(strNumber.length - 4, strNumber.length), 'XXXX');\r\n }\r\n else\r\n return 'XXXX';\r\n }\r\n return '';\r\n }\r\n randomArray(arr) {\r\n if (arr)\r\n arr.sort(function () {\r\n return 0.5 - Math.random();\r\n });\r\n return arr;\r\n }\r\n}\r\nconst baseService = new BaseService();\r\nexport { BaseService, baseService };\r\n","import { Subject } from 'rxjs';\r\nimport { createContext } from 'react';\r\nclass BehaviorsService {\r\n constructor() {\r\n this.onShowAlert = new Subject();\r\n this.onHideAlert = new Subject();\r\n this.onShowConfirm = new Subject();\r\n this.onHideConfirm = new Subject();\r\n this.sendToToast =new Subject();\r\n }\r\n alert(msg, opt) {\r\n opt = Object.assign({}, opt, { msg }); \r\n \r\n return new Promise((resolve) => {\r\n const subscriptions =this.onHideAlert.subscribe(res=>{\r\n subscriptions.unsubscribe();\r\n resolve(res);\r\n });\r\n this.onShowAlert.next(opt); \r\n });\r\n } \r\n toast(msg, opt){\r\n opt = Object.assign({}, opt, { msg }); \r\n this.sendToToast.next(opt); \r\n }\r\n confirm(msg,opt){\r\n opt = Object.assign({}, opt, { msg }); \r\n return new Promise((resolve) => {\r\n const subscriptions =this.onHideConfirm.subscribe(res=>{\r\n subscriptions.unsubscribe();\r\n resolve(res);\r\n });\r\n this.onShowConfirm.next(opt); \r\n });\r\n }\r\n\r\n\r\n}\r\nconst BehaviorsContext = createContext({ beh: new BehaviorsService() });\r\n\r\nexport { BehaviorsContext, BehaviorsService };\r\n","//--- Serivce\r\nexport { authService, AuthService } from './AuthService';\r\nexport { BaseService, baseService } from './BaseService';\r\n\r\nexport { BehaviorsContext } from './BehaviorsService';","module.exports = __webpack_public_path__ + \"static/media/logo-new.b6f42f67.png\";","import React, { Component } from 'react';\r\nimport OwlCarousel from 'react-owl-carousel';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\nimport { API_URL } from 'app-setting';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nclass HoiDap extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dataAskAndAnswers: []\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getDataAskAndAnswers();\r\n }\r\n\r\n getDataAskAndAnswers() {\r\n fetch(`${API_URL}api/chcauhoi/lists?trangthai=1`)\r\n .then(res => res.json())\r\n .then((data) => {\r\n\r\n this.setState({ dataAskAndAnswers: data.data.slice(0, 3) })\r\n })\r\n \r\n .catch(console.log)\r\n }\r\n\r\n renderAskAndAnswers = (numShowInRow) => {\r\n var l = this.state.dataAskAndAnswers.length;\r\n var d = Math.ceil(l / numShowInRow);\r\n\r\n var tmpOld = this.state.dataAskAndAnswers;\r\n\r\n return <>{Array.from(Array(d), (e, i) => {\r\n var tmp = tmpOld.slice(0, numShowInRow);\r\n var numRows = tmp.length - 1;\r\n tmpOld = tmpOld.slice(numShowInRow);\r\n\r\n return
\r\n {\r\n tmp.map((item, row) => {\r\n return (\r\n \r\n
\r\n

{item.noidung}

\r\n
\r\n
\r\n \r\n {item.titlE_NGUOIHOI}\r\n
\r\n \r\n
\r\n \r\n Xem thêm\r\n \r\n
\r\n {(row !== numRows) &&

}\r\n
\r\n )\r\n })\r\n }\r\n
\r\n })}\r\n }\r\n\r\n chuyenDoiURL = (str) => {\r\n // Chuyển hết sang chữ thường\r\n str = str.toLowerCase();\r\n\r\n // xóa dấu\r\n str = str.replace(/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/g, 'a');\r\n str = str.replace(/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/g, 'e');\r\n str = str.replace(/(ì|í|ị|ỉ|ĩ)/g, 'i');\r\n str = str.replace(/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/g, 'o');\r\n str = str.replace(/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/g, 'u');\r\n str = str.replace(/(ỳ|ý|ỵ|ỷ|ỹ)/g, 'y');\r\n str = str.replace(/(đ)/g, 'd');\r\n\r\n // Xóa ký tự đặc biệt\r\n str = str.replace(/([^0-9a-z-\\s])/g, '');\r\n\r\n // Xóa khoảng trắng thay bằng ký tự -\r\n str = str.replace(/(\\s+)/g, '-');\r\n\r\n // xóa phần dự - ở đầu\r\n str = str.replace(/^-+/g, '');\r\n\r\n // xóa phần dư - ở cuối\r\n str = str.replace(/-+$/g, '');\r\n\r\n // return\r\n return str;\r\n }\r\n render() {\r\n return (\r\n
\r\n\r\n
\r\n \r\n Hỏi & đáp\r\n \r\n \r\n
\r\n {this.state.dataAskAndAnswers.map((item, i) => {\r\n return (\r\n
\r\n

{item.noidung}

\r\n
\r\n
\r\n \r\n \r\n {item.titlE_NGUOIHOI}\r\n \r\n\r\n
\r\n
\r\n {item.countcautraloi} lượt trả lời\r\n
\r\n
\r\n \r\n Xem thêm\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 HoiDap;","import React, { Component } from 'react';\r\nimport OwlCarousel from 'react-owl-carousel';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\nimport { API_URL } from 'app-setting';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nclass DiaBanViPham extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dataAreaViolations: [],\r\n dataTCCNVP: []\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getDataAreaViolations();\r\n }\r\n formatDateTime(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n var output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n return output;\r\n }\r\n }\r\n getDataAreaViolations() {\r\n fetch(`${API_URL}api/hosovuviec/listdbvpnew?ItemsPerPage=3`)\r\n .then(res => res.json())\r\n .then((data) => {\r\n this.setState({ dataTCCNVP: data.data })\r\n })\r\n .catch(console.log)\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n Tình hình xử lý vi phạm\r\n \r\n \r\n \r\n
\r\n {this.state.dataTCCNVP.map((item, i) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \t \r\n

{item.titlE_TINHTHANH}

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

{item.diachi}

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

{this.formatDateTime(item.ngayvipham)}

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

\r\n
\r\n \r\n )\r\n })}\r\n
\r\n \r\n Xem thêm  \r\n\r\n \r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default DiaBanViPham;","import React, { Component } from 'react';\r\nimport OwlCarousel from 'react-owl-carousel';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\nimport { API_URL } from 'app-setting';\r\nimport { NavLink } from 'react-router-dom';\r\nimport NoImg from 'assets/images/unnamed.png';\r\n\r\nclass SPBaoCaoViPham extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dataProductReports: [],\r\n dataTCCNVP: []\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getDataProductReports();\r\n }\r\n slugURL(str) {\r\n if (str) {\r\n // Chuyển hết sang chữ thường\r\n str = str.toLowerCase();\r\n\r\n // xóa dấu\r\n str = str.replace(/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/g, 'a');\r\n str = str.replace(/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/g, 'e');\r\n str = str.replace(/(ì|í|ị|ỉ|ĩ)/g, 'i');\r\n str = str.replace(/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/g, 'o');\r\n str = str.replace(/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/g, 'u');\r\n str = str.replace(/(ỳ|ý|ỵ|ỷ|ỹ)/g, 'y');\r\n str = str.replace(/(đ)/g, 'd');\r\n\r\n // Xóa ký tự đặc biệt\r\n str = str.replace(/([^0-9a-z-\\s])/g, '');\r\n\r\n // Xóa khoảng trắng thay bằng ký tự -\r\n str = str.replace(/(\\s+)/g, '-');\r\n\r\n // xóa phần dự - ở đầu\r\n str = str.replace(/^-+/g, '');\r\n\r\n // xóa phần dư - ở cuối\r\n str = str.replace(/-+$/g, '');\r\n\r\n // return\r\n return str;\r\n }\r\n else\r\n return '';\r\n\r\n }\r\n getDataProductReports() {\r\n fetch(`${API_URL}api/bcviphamsanpham/lists?trangthai=1&page=1&itemsPerPage=3`)\r\n .then(res => res.json())\r\n .then((data) => {\r\n if (data.data != null) {\r\n this.setState({ dataProductReports: data.data })\r\n }\r\n })\r\n .catch(console.log)\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n Sản phẩm hay bị làm giả\r\n \r\n \r\n
\r\n\r\n\r\n {this.state.dataProductReports ? (this.state.dataProductReports.map((item, i) => {\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n {item.anhsanpham != null ? \r\n \"\" \r\n : \r\n \"\"}\r\n
\r\n\r\n
\r\n

{item.loaisanpham}

\r\n\r\n

{item.tensanpham}

\r\n
\r\n
\r\n {item.soluotbcvp} báo cáo \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n )\r\n })):\"\"}\r\n
\r\n \r\n Xem thêm  \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default SPBaoCaoViPham;","\r\nimport { Observable } from 'rxjs';\r\nimport axios from 'axios';\r\nexport class HttpErrorResponse {\r\n constructor(otp) {\r\n this.error = otp.error;\r\n this.headers = otp.headers;\r\n this.status = otp.status;\r\n this.statusText = otp.statusText;\r\n this.url = otp.url;\r\n this.request = otp.request;\r\n }\r\n}\r\nexport const HttpHandle = (config) => {\r\n return new Observable(subscriber => {\r\n axios.request(config).then(response => {\r\n subscriber.next(response.data);\r\n subscriber.complete();\r\n }).catch((err) => {\r\n\r\n let res = err.response;\r\n let error = null;\r\n if (res) {\r\n error = new HttpErrorResponse({\r\n error: err.response.data,\r\n headers: err.response.headers,\r\n status: err.response.status,\r\n statusText: err.response.statusText,\r\n url: err.response.config.url,\r\n request: err.config\r\n });\r\n } else {\r\n error = { error: true, message: err.message };\r\n }\r\n subscriber.error(error);\r\n //subscriber.complete();\r\n });\r\n\r\n });\r\n};\r\nexport function jsonToUrlencoded(obj) {\r\n const str = [];\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n str.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key] || ''));\r\n }\r\n }\r\n return str.join('&');\r\n}","import axios from 'axios';\r\nimport { HttpHandle, HttpErrorResponse } from './htppUtils';\r\nimport { throwError, BehaviorSubject, Observable } from 'rxjs';\r\nimport { take, filter, catchError, switchMap, finalize, map } from 'rxjs/operators';\r\nimport { store } from 'redux/store';\r\nimport { CLIENT } from 'app-setting';\r\nimport { OauthAction } from 'redux/actions';\r\n\r\n\r\n\r\nexport default class HttpClient {\r\n constructor(options = {}) {\r\n this.apiUrl = options.apiUrl;\r\n this.authorizationBase = options.authorizationBase;\r\n this.tokenSubject = new BehaviorSubject(null);\r\n this.isRefreshingToken = false;\r\n axios.defaults.baseURL = this.apiUrl;\r\n const that = this;\r\n store.subscribe(() => {\r\n that.oauth = store.getState().oauth;\r\n });\r\n }\r\n\r\n request(config) {\r\n return HttpHandle(this.updateConfig(config, this.oauth)).pipe(catchError(error => {\r\n if (error instanceof HttpErrorResponse) {\r\n switch (error.status) {\r\n case 400:\r\n return this.handle400Error(error);\r\n case 401:\r\n return this.handle401Error(config, error);\r\n case 403:\r\n return this.handle403Error(error);\r\n default:\r\n return throwError(error);\r\n\r\n }\r\n } else {\r\n return throwError(error);\r\n }\r\n }));\r\n }\r\n get(url, config) {\r\n return this.request(\r\n Object.assign(\r\n {},\r\n {\r\n method: 'get',\r\n url: url\r\n },\r\n config)\r\n );\r\n\r\n }\r\n delete(url, config) {\r\n return this.request(\r\n Object.assign(\r\n {},\r\n {\r\n method: 'delete',\r\n url: url\r\n },\r\n config)\r\n );\r\n\r\n }\r\n head(url, config) {\r\n return this.request(\r\n Object.assign(\r\n {},\r\n {\r\n method: 'head',\r\n url: url\r\n },\r\n config)\r\n );\r\n\r\n }\r\n options(url, config) {\r\n return this.request(\r\n Object.assign(\r\n {},\r\n {\r\n method: 'options',\r\n url: url\r\n },\r\n config)\r\n );\r\n }\r\n post(url, data, config) {\r\n return this.request(\r\n Object.assign(\r\n {},\r\n {\r\n method: 'post',\r\n url: url,\r\n data: data\r\n },\r\n config)\r\n );\r\n }\r\n put(url, data, config) {\r\n return this.request(\r\n Object.assign(\r\n {},\r\n {\r\n method: 'put',\r\n url: url,\r\n data: data\r\n },\r\n config)\r\n );\r\n\r\n }\r\n patch(url, data, config) {\r\n return this.request(\r\n Object.assign(\r\n {},\r\n {\r\n method: 'patch',\r\n url: url,\r\n data: data\r\n },\r\n config) \r\n );\r\n }\r\n getUri(config) {\r\n return axios.getUri(config);\r\n }\r\n updateConfig(config, token, isOverwrite) {\r\n let access_token = '';\r\n if (token) {\r\n access_token = `Bearer ${token.access_token}`;\r\n }\r\n // chỉnh sửa lại request để add thêm token vào header, chỉnh sửa lại url của request\r\n config.headers = config.headers || {};\r\n const headers = config.headers;\r\n if (headers.Authorization && !isOverwrite) {\r\n access_token = headers.Authorization;\r\n }\r\n config.headers.Authorization = access_token;\r\n return config;\r\n }\r\n handle400Error(error) {\r\n return throwError(error);\r\n }\r\n handle403Error(error) {\r\n return throwError(error);\r\n }\r\n handle401Error(config, error) {\r\n if (!this.isRefreshingToken) {\r\n this.isRefreshingToken = true;\r\n // Reset here so that the following requests wait until the token\r\n // comes back from the refreshToken call.\r\n this.tokenSubject.next(null);\r\n return this.refreshToken().pipe(\r\n catchError(err => {\r\n // If there is an exception calling 'refreshToken', bad news so logout.\r\n if (err) {\r\n this.logoutUser();\r\n\r\n }\r\n return throwError(error);\r\n }),\r\n switchMap((newToken) => {\r\n if (newToken) {\r\n this.tokenSubject.next(newToken);\r\n return HttpHandle(this.updateConfig(config, newToken, true));\r\n\r\n }\r\n // If we don't get a new token, we are in trouble so logout.\r\n this.logoutUser();\r\n return throwError(error);\r\n }),\r\n finalize(() => {\r\n this.isRefreshingToken = false;\r\n }));\r\n } else {\r\n return this.tokenSubject.pipe(\r\n filter(token => token != null),\r\n take(1),\r\n switchMap(token => {\r\n return HttpHandle(this.updateConfig(config, token, true));\r\n }));\r\n }\r\n }\r\n refreshToken() {\r\n if (this.oauth && this.oauth.refresh_token) {\r\n const body = {\r\n grant_type: 'refresh_token',\r\n refresh_token: this.oauth.refresh_token,\r\n client_id: CLIENT.client_id,\r\n client_secret: CLIENT.client_secret,\r\n };\r\n return this.post('api/token/auth', body).pipe(map(res => {\r\n const newToken = res;\r\n store.dispatch(OauthAction.setToken(newToken));\r\n return newToken;\r\n }));\r\n\r\n } else {\r\n return new Observable(observable => {\r\n observable.next(false);\r\n });\r\n }\r\n }\r\n logoutUser() {\r\n // Route to the login page (implementation up to you) \r\n store.dispatch(OauthAction.removeToken());\r\n\r\n }\r\n}\r\n\r\n","import React, { lazy, Suspense } from 'react';\r\nconst loadable = (importFunc, { fallback = null } = { fallback: null }) => {\r\n const LazyComponent = lazy(importFunc);\r\n // eslint-disable-next-line react/display-name\r\n return props => (\r\n \r\n \r\n \r\n );\r\n};\r\nexport { loadable };","import React from 'react';\r\nconst findByType = (children, component) => {\r\n const result = [];\r\n /* This is the array of result since Article can have multiple times the same sub-component */\r\n const type = [component.displayName] || [component.name];\r\n /* We can store the actual name of the component through the displayName or name property of our sub-component */\r\n React.Children.forEach(children, child => {\r\n const childType =\r\n child && child.type && (child.type.displayName || child.type.name);\r\n if (type.includes(childType)) {\r\n result.push(child);\r\n }\r\n });\r\n /* Then we go through each React children, if one of matches the name of the sub-component we’re looking for we put it in the result array */\r\n return result[0];\r\n};\r\nexport { findByType };\r\n\r\nexport function generatorGUID() {\r\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\r\n s4() + '-' + s4() + s4() + s4();\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n}","const formatDateTime = (strValue) => { \r\n if (strValue == undefined || strValue === \"\" || strValue == null) {\r\n return '';\r\n }\r\n else {\r\n let output = '';\r\n let d = new Date(strValue);\r\n let month = d.getMonth() + 1;\r\n let day = d.getDate();\r\n output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n if (output == '1/01/1')\r\n return '';\r\n return output;\r\n }\r\n }\r\nexport { formatDateTime }","import { API_URL, AUTHORIZATION_BASE } from '../../app-setting';\r\nimport HttpClient from './http/httpClient';\r\nimport { jsonToUrlencoded } from './http/htppUtils';\r\nimport { loadable } from './loadable';\r\n\r\n//utils\r\nexport { findByType, generatorGUID } from './findByType';\r\nexport { formatDateTime } from './formatDateTime';\r\nexport { jsonToUrlencoded, loadable };\r\nexport const http = new HttpClient({\r\n apiUrl: API_URL,\r\n authorizationBase: AUTHORIZATION_BASE\r\n\r\n});\r\n\r\n","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass RouteGuard extends React.Component {\r\n\r\n isAuthenticated() {\r\n return !!this.props.oauth.access_token;\r\n }\r\n render() {\r\n const { component: Component, ...rest } = this.props;\r\n const renderRoute = props => {\r\n if (this.props.per) {\r\n if (this.isAuthenticated() && this.props.oauth.UnitCode.includes(this.props.per)) {\r\n return (\r\n \r\n );\r\n }\r\n else {\r\n const to = {\r\n pathname: '/',\r\n state: { from: props.location }\r\n };\r\n return (\r\n \r\n );\r\n }\r\n }\r\n if (this.isAuthenticated()) {\r\n return (\r\n \r\n );\r\n }\r\n const to = {\r\n pathname: '/dang-nhap',\r\n state: { from: props.location }\r\n }; \r\n return (\r\n \r\n );\r\n };\r\n return (\r\n \r\n\r\n );\r\n }\r\n}\r\nRouteGuard.propTypes = {\r\n component: PropTypes.func,\r\n oauth: PropTypes.object,\r\n per: PropTypes.string\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n oauth: state.oauth\r\n };\r\n};\r\nconst RouteGuardComponent = connect(mapStateToProps, {})(RouteGuard);\r\nexport { RouteGuardComponent };\r\n","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\nfunction RouteWithSubRoutes(route) {\r\n return (\r\n (\r\n // pass the sub-routes down to keep nesting\r\n \r\n )}\r\n />\r\n );\r\n}\r\nexport { RouteWithSubRoutes };","import React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nclass LoadingComponent extends React.Component {\r\n render() {\r\n const { loading } = this.props\r\n return (\r\n \r\n {\r\n loading &&\r\n
\r\n \r\n Loading...\r\n \r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport { LoadingComponent };\r\n","import React from 'react';\r\nimport { Spinner, Modal } from 'react-bootstrap';\r\nclass LoaderComponent extends React.Component {\r\n render() {\r\n const { loading } = this.props\r\n return (\r\n \r\n {\r\n loading &&\r\n \r\n \r\n
\r\n \r\n Loading...\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\nexport { LoaderComponent };\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst PageContext = React.createContext();\r\n\r\nclass Header extends Component {\r\n static propTypes = {\r\n className: PropTypes.string\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n {() => (\r\n
{props.children}
\r\n )}\r\n
\r\n\r\n );\r\n }\r\n\r\n}\r\n\r\nclass Content extends Component {\r\n static propTypes = {\r\n className: PropTypes.string\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n {() => (\r\n
{props.children}
\r\n )}\r\n
\r\n\r\n );\r\n }\r\n\r\n}\r\nclass PageComponent extends Component {\r\n static propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object \r\n ]) \r\n };\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\nPageComponent.Header = Header;\r\nPageComponent.Content = Content;\r\nexport { PageComponent };","import React, { Component } from 'react';\r\nimport OwlCarousel from 'react-owl-carousel';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\nimport { API_URL } from 'app-setting';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nclass SuKienSapDienRa extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dataAreaViolations: [],\r\n dataTCCNVP: []\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getDataAreaViolations();\r\n }\r\n formatDateTime(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n var output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n return output;\r\n }\r\n }\r\n slugURL(str) {\r\n if (str) {\r\n // Chuyển hết sang chữ thường\r\n str = str.toLowerCase();\r\n\r\n // xóa dấu\r\n str = str.replace(/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/g, 'a');\r\n str = str.replace(/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/g, 'e');\r\n str = str.replace(/(ì|í|ị|ỉ|ĩ)/g, 'i');\r\n str = str.replace(/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/g, 'o');\r\n str = str.replace(/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/g, 'u');\r\n str = str.replace(/(ỳ|ý|ỵ|ỷ|ỹ)/g, 'y');\r\n str = str.replace(/(đ)/g, 'd');\r\n\r\n // Xóa ký tự đặc biệt\r\n str = str.replace(/([^0-9a-z-\\s])/g, '');\r\n\r\n // Xóa khoảng trắng thay bằng ký tự -\r\n str = str.replace(/(\\s+)/g, '-');\r\n\r\n // xóa phần dự - ở đầu\r\n str = str.replace(/^-+/g, '');\r\n\r\n // xóa phần dư - ở cuối\r\n str = str.replace(/-+$/g, '');\r\n\r\n // return\r\n return str;\r\n }\r\n else\r\n return '';\r\n\r\n }\r\n formatDate(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n var output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n return output;\r\n }\r\n }\r\n formatTime(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var hours = d.getHours();\r\n var minutes = d.getMinutes();\r\n var output = hours + 'h' + (minutes < 1 ? '00' : minutes);\r\n return output;\r\n }\r\n }\r\n getDataAreaViolations() {\r\n fetch(`${API_URL}api/dnsukien/getlistsknearly?ItemsPerPage=3`)\r\n .then(res => res.json())\r\n .then((data) => {\r\n this.setState({ dataTCCNVP: data.data.slice(0,1) });\r\n })\r\n .catch(console.log)\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n {this.state.dataTCCNVP.map((item, i) => {\r\n return (\r\n
\r\n
\r\n

Sự kiện sắp diễn ra

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

\r\n {(item.lstattachment != undefined && item.lstattachment.length > 0) ?\r\n \r\n \"\"\r\n : \r\n \"\"\r\n \r\n }\r\n

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

{this.formatDate(item.ngaybatdau)} | {this.formatTime(item.ngaybatdau)} \r\n

\r\n {item.title}\r\n Xem thêm >\r\n\r\n
\r\n
\r\n
\r\n \r\n )\r\n })}\r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default SuKienSapDienRa;","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport '../../../styles/Public/custom-style.scss';\r\nimport '../../../styles/Public/responsive.scss';\r\nimport \"jquery/src/jquery\";\r\nimport HoiDap from '../../../modules/layoutright/HoiDap';\r\nimport DiaBanViPham from '../../../modules/layoutright/DiaBanViPham';\r\nimport SPBaoCaoViPham from '../../../modules/layoutright/SPBaoCaoViPham';\r\nimport SuKienSapDienRa from '../../../modules/layoutright/SuKienSapDienRa';\r\nimport { OauthAction } from 'redux/actions';\r\nimport { store } from 'redux/store';\r\nimport { connect } from 'react-redux';\r\nconst Layout2cContext = React.createContext();\r\n\r\nclass Left extends Component {\r\n static propTypes = {\r\n className: PropTypes.string\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n {() => (\r\n
{props.children}
\r\n )}\r\n
\r\n\r\n );\r\n }\r\n\r\n}\r\n\r\nclass Right extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n \r\n }\r\n static propTypes = {\r\n className: PropTypes.string,\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n\r\n {() => (\r\n\r\n
{props.children}\r\n {/*\r\n {this.oauth.access_token != null ? (\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\nclass Layout2c extends Component {\r\n static propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n this.oauth = store.getState().oauth,\r\n ])\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nLayout2c.Left = Left;\r\nLayout2c.Right = Right;\r\nconst Layout2cComponent = connect(null, { setToken: OauthAction.setToken })(Layout2c);\r\nexport { Layout2cComponent };","\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { _BaiVietService, Context } from '../BaiVietService';\r\nimport { API_URL } from 'app-setting';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\nimport { Link } from 'react-router-dom';\r\nimport NoImg from 'assets/images/NoImageBinhLuan.png';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { store } from 'redux/store';\r\nclass KetNoiCuaToiComponent extends Component {\r\n static propTypes = {\r\n history: PropTypes.object,\r\n location: PropTypes.object,\r\n }\r\n static contextType = Context;\r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n this.state = {\r\n loading: true,\r\n isShow: true,\r\n meta: {\r\n page: 1,\r\n sortBy: 'ID',\r\n page_size: 6,\r\n sortDesc: false,\r\n total: 0,\r\n },\r\n data: [],\r\n };\r\n }\r\n componentDidMount() {\r\n this.fetchData();\r\n }\r\n fetchData() {\r\n let { meta } = this.state;\r\n _BaiVietService.getKetNoiCuaToi(meta).subscribe(res => {\r\n meta.total = res.totalRows;\r\n this.setState({ data: res.data, isShow: false },\r\n );\r\n }, err => {\r\n console.log(err);\r\n this.setState({ isShow: false });\r\n });\r\n }\r\n\r\n render() {\r\n let { data, isShow, meta } = this.state;\r\n if (!isShow) {\r\n return (\r\n !(data && data.length) ? '' :\r\n
\r\n
\r\n

Kết nối của tôi

\r\n \r\n
\r\n
\r\n {\r\n data.map((item, index) => {\r\n return (\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n {\r\n this.oauth.idTaiKhoan === item.iD_NGUOINHAN ?\r\n \r\n {item.nguoigui.title}\r\n Nhắn tin\r\n \r\n :\r\n \r\n {item.nguoinhan.title}\r\n Nhắn tin\r\n \r\n }\r\n {/*

Đang trực tuyển

*/}\r\n\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n {\r\n meta.total > meta.page_size ?
\r\n Xem thêm \r\n
: ''\r\n }\r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n Loading...\r\n );\r\n }\r\n\r\n }\r\n}\r\n\r\nexport default KetNoiCuaToiComponent;","\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { _BaiVietService, Context } from '../BaiVietService';\r\nimport { API_URL } from 'app-setting';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\nimport { Link } from 'react-router-dom';\r\nimport NoImg from 'assets/images/NoImageBinhLuan.png';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { findIndex } from 'lodash';\r\nimport { store } from 'redux/store';\r\nclass GoiYKetNoiComponent extends Component {\r\n static propTypes = {\r\n history: PropTypes.object,\r\n location: PropTypes.object,\r\n }\r\n static contextType = Context;\r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n this.state = {\r\n loading: true,\r\n isShow: true,\r\n meta: {\r\n page: 1,\r\n sortBy: 'ID',\r\n page_size: 6,\r\n sortDesc: false,\r\n total: 0,\r\n },\r\n data: [],\r\n };\r\n }\r\n componentDidMount() {\r\n this.fetchData();\r\n }\r\n fetchData() {\r\n if (this.oauth.UnitCode !== \"03\") {\r\n let { meta } = this.state;\r\n _BaiVietService.getGoiYKetNoi(meta).subscribe(res => {\r\n meta.total = res.length;\r\n this.setState({ data: res, isShow: false },\r\n );\r\n }, err => {\r\n console.log(err);\r\n this.setState({ isShow: false });\r\n });\r\n }\r\n else {\r\n this.setState({ isShow: false });\r\n }\r\n }\r\n KetNoi(id) {\r\n if (this.oauth.idTaiKhoan != null && this.oauth.idTaiKhoan > 0) {\r\n let { data } = this.state;\r\n let index = findIndex(data, function (o) { return o.id === id; });\r\n if (index !== -1) {\r\n data[index].isketnoi = false;\r\n this.setState({ data: data, loading: false });\r\n _BaiVietService.actaddFriend(id).subscribe(() => {\r\n // this.context.beh.alert('Yêu cầu kết nối của bạn đã được gửi đến ' + item.title); // xử lý gửi kết nối \r\n },\r\n (err) => {\r\n this.context.beh.alert(err.error);\r\n });\r\n }\r\n\r\n } else {\r\n this.props.history.push({ pathname: '/dang-nhap' });\r\n }\r\n }\r\n\r\n render() {\r\n let { data, isShow, meta } = this.state;\r\n if (!isShow) {\r\n return (\r\n !(data && data.length) ? '' :\r\n
\r\n
\r\n

Có thể bạn biết

\r\n \r\n
\r\n
\r\n {\r\n data.map((item, index) => {\r\n return (\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n {\r\n {item.title}\r\n }\r\n {/*

Đang trực tuyển

*/}\r\n {\r\n (item.isketnoi === true) ? () : ''\r\n }\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n {\r\n meta.total > meta.page_size ?
\r\n Xem thêm \r\n
: ''\r\n }\r\n\r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n Loading...\r\n );\r\n }\r\n\r\n }\r\n}\r\n\r\nexport default GoiYKetNoiComponent;","\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { _BaiVietService, Context } from '../BaiVietService';\r\nimport { API_URL } from 'app-setting';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\nimport { Link } from 'react-router-dom';\r\nimport NoImg from 'assets/images/NoImageBinhLuan.png';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { findIndex } from 'lodash';\r\nimport { store } from 'redux/store';\r\nclass LoiMoiKetNoiComponent extends Component {\r\n static propTypes = {\r\n history: PropTypes.object,\r\n location: PropTypes.object,\r\n }\r\n static contextType = Context;\r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n this.state = {\r\n loading: true,\r\n isShow: true,\r\n meta: {\r\n page: 1,\r\n sortBy: 'ID',\r\n page_size: 6,\r\n sortDesc: false,\r\n total: 0,\r\n },\r\n data: [],\r\n };\r\n }\r\n componentDidMount() {\r\n this.fetchData();\r\n }\r\n fetchData() {\r\n let { meta } = this.state;\r\n _BaiVietService.getLoiMoiKetNoi(meta).subscribe(res => {\r\n meta.total = res.length;\r\n this.setState({ data: res, isShow: false },\r\n );\r\n }, err => {\r\n console.log(err);\r\n this.setState({ isShow: false });\r\n });\r\n }\r\n actXacNhan(id) {\r\n if (this.oauth.idTaiKhoan != null && this.oauth.idTaiKhoan > 0) {\r\n let { data } = this.state;\r\n let index = findIndex(data, function (o) { return o.id === id; });\r\n if (index !== -1) {\r\n data[index].ischeck = false;\r\n this.setState({ data: data, loading: false });\r\n _BaiVietService.dongYLoiMoiKetNoi(id).subscribe(() => {\r\n // this.context.beh.alert('Yêu cầu kết nối của bạn đã được gửi đến ' + item.title); // xử lý gửi kết nối \r\n },\r\n (err) => {\r\n console.log(err.error);\r\n });\r\n }\r\n\r\n } else {\r\n this.props.history.push({ pathname: '/dang-nhap' });\r\n }\r\n }\r\n\r\n actXoa(id) {\r\n if (this.oauth.idTaiKhoan != null && this.oauth.idTaiKhoan > 0) {\r\n let { data } = this.state;\r\n let index = findIndex(data, function (o) { return o.id === id; });\r\n if (index !== -1) {\r\n data[index].ischeck = false;\r\n this.setState({ data: data, loading: false });\r\n _BaiVietService.huyLoiMoiKetNoi(id).subscribe(() => {\r\n // this.context.beh.alert('Yêu cầu kết nối của bạn đã được gửi đến ' + item.title); // xử lý gửi kết nối \r\n },\r\n (err) => {\r\n console.log(err.error);\r\n });\r\n }\r\n\r\n } else {\r\n this.props.history.push({ pathname: '/dang-nhap' });\r\n }\r\n }\r\n\r\n render() {\r\n let { data, isShow, meta } = this.state;\r\n if (!isShow) {\r\n return (\r\n !(data && data.length) ? '' :\r\n
\r\n
\r\n

Lời mời kết nối

\r\n \r\n
\r\n
\r\n {\r\n data.map((item, index) => {\r\n return (\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n {\r\n this.oauth.idTaiKhoan === item.iD_NGUOINHAN ?\r\n \r\n {item.nguoigui.title}\r\n {\r\n (item.ischeck === true) ?\r\n
\r\n \r\n \r\n
\r\n : ''\r\n }\r\n\r\n
\r\n :\r\n \r\n {item.nguoinhan.title}\r\n {\r\n (item.ischeck === true) ?\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 meta.total > meta.page_size ?
\r\n Xem thêm \r\n
: ''\r\n }\r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n Loading...\r\n );\r\n }\r\n\r\n }\r\n}\r\n\r\nexport default LoiMoiKetNoiComponent;","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport '../../../styles/Public/custom-style.scss';\r\nimport '../../../styles/Public/responsive.scss';\r\nimport 'jquery/src/jquery';\r\nimport KetNoiCuaToiComponent from '../../../modules/Public/baiviet/rightcol/KetNoiCuaToiComponent';\r\nimport GoiYKetNoiComponent from '../../../modules/Public/baiviet/rightcol/GoiYKetNoiComponent';\r\nimport LoiMoiKetNoiComponent from '../../../modules/Public/baiviet/rightcol/LoiMoiKetNoiComponent';\r\nimport HoiDap from '../../../modules/layoutright/HoiDap';\r\nimport DiaBanViPham from '../../../modules/layoutright/DiaBanViPham';\r\nimport SPBaoCaoViPham from '../../../modules/layoutright/SPBaoCaoViPham';\r\nconst LayoutbvContext = React.createContext();\r\n\r\nclass Left extends Component {\r\n static propTypes = {\r\n className: PropTypes.string\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n {() => (\r\n
{props.children}
\r\n )}\r\n
\r\n\r\n );\r\n }\r\n\r\n}\r\n\r\nclass Right extends Component {\r\n static propTypes = {\r\n className: PropTypes.string\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n {() => (\r\n
{props.children}\r\n
\r\n \r\n {/*end trao đổi mới nhất của bạn */}\r\n {/* box kết nối của tôi */}\r\n \r\n {/* end box kết nối của tôi */}\r\n \r\n {/* box co the ban quan tam */}\r\n \r\n {/* box co the ban quan tam */}\r\n {/* su kien sap dien ra */}\r\n \r\n {/* end su kien sap dien ra */}\r\n {/* box tin moi */}\r\n \r\n {/* end box tin moi */}\r\n {/* san pham moi */}\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\nclass LayoutbvComponent extends Component {\r\n static propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object\r\n ])\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nLayoutbvComponent.Left = Left;\r\nLayoutbvComponent.Right = Right;\r\nexport { LayoutbvComponent };","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport '../../../styles/Public/custom-style.scss';\r\nimport '../../../styles/Public/responsive.scss';\r\nimport 'jquery/src/jquery';\r\nconst LayoutpaContext = React.createContext();\r\n\r\nclass Left extends Component {\r\n static propTypes = {\r\n className: PropTypes.string\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n {() => (\r\n
{props.children}
\r\n )}\r\n
\r\n\r\n );\r\n }\r\n\r\n}\r\n\r\nclass Right extends Component {\r\n static propTypes = {\r\n className: PropTypes.string\r\n };\r\n render() {\r\n const { className, ...props } = this.props;\r\n return (\r\n \r\n {() => (\r\n
{props.children}\r\n
\r\n {/* end box tin moi */}\r\n {/* san pham moi */}\r\n \r\n
\r\n\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\nclass LayoutpaComponent extends Component {\r\n static propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object\r\n ])\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nLayoutpaComponent.Left = Left;\r\nLayoutpaComponent.Right = Right;\r\nexport { LayoutpaComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Row, Col, FormControl, Pagination } from 'react-bootstrap';\r\nimport { defaultPageOptions } from './defaultOptions';\r\n\r\nclass PaginationComponent extends React.Component {\r\n static propTypes = {\r\n page: PropTypes.number,\r\n page_size: PropTypes.number,\r\n total: PropTypes.number,\r\n pageSizeOptions: PropTypes.array,\r\n handleChange: PropTypes.func\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: props.page || defaultPageOptions.page,\r\n page_size: props.page_size || defaultPageOptions.page_size,\r\n total: props.total || defaultPageOptions.total,\r\n pageSizeOptions: defaultPageOptions.pageSizeOptions,\r\n prevProps: props,\r\n };\r\n this.inputSelectPage = React.createRef();\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n let prevProps = { ...state.prevProps };\r\n let nextState = null;\r\n if (prevProps.page !== props.page) {\r\n nextState = nextState || {};\r\n nextState.page = prevProps.page = props.page || defaultPageOptions.page;\r\n\r\n }\r\n if (prevProps.page_size !== props.page_size) {\r\n nextState = nextState || {};\r\n nextState.page_size = prevProps.page_size = props.page_size || defaultPageOptions.page_size;\r\n }\r\n if (prevProps.total !== props.total) {\r\n nextState = nextState || {};\r\n nextState.total = prevProps.total = props.total || defaultPageOptions.total;\r\n }\r\n if (prevProps.pageSizeOptions !== props.pageSizeOptions) {\r\n nextState = nextState || {};\r\n nextState.pageSizeOptions = prevProps.pageSizeOptions = props.pageSizeOptions || defaultPageOptions.pageSizeOptions;\r\n }\r\n if (nextState) {\r\n nextState.prevProps = prevProps;\r\n }\r\n return nextState;\r\n\r\n }\r\n\r\n onchangePageSize(page_size) {\r\n this.setState({ page_size: Number(page_size) }, () => {\r\n this.props.handleChange({\r\n event: 'changePageSize', data: {\r\n page_size: this.state.page_size\r\n }\r\n });\r\n });\r\n }\r\n onChangePage(page) {\r\n const regexp = /^[0-9\\b]+$/;\r\n //chỉ cho nhập số vả page phải nhỏ hơn < totalPage\r\n if (page === '' || regexp.test(page)) {\r\n if (page === '') {\r\n this.setState({ page: page });\r\n } else if (page <= this.getTotalPage()) {\r\n this.setState({ page: page });\r\n }\r\n }\r\n\r\n }\r\n onKeyDown(ev) {\r\n if (ev.key === 'Enter') {\r\n const page = ev.currentTarget.value || 1;\r\n this.setState({ page: Number(page) }, () => {\r\n this.props.handleChange({\r\n event: 'changePage', data: {\r\n page: this.state.page,\r\n }\r\n });\r\n });\r\n }\r\n }\r\n onBlur(ev) {\r\n const page = ev.currentTarget.value || 1;\r\n this.setState({ page: Number(page) }, () => {\r\n this.props.handleChange({\r\n event: 'changePage', data: {\r\n page: this.state.page,\r\n }\r\n });\r\n });\r\n }\r\n getTotalPage() {\r\n return Math.ceil(this.state.total / this.state.page_size) || 1;\r\n }\r\n toFristPage() {\r\n this.setState({ page: 1 }, () => {\r\n this.props.handleChange({\r\n event: 'changePage', data: {\r\n page: this.state.page,\r\n }\r\n });\r\n });\r\n }\r\n toPrevPage() {\r\n this.setState({ page: this.state.page - 1 }, () => {\r\n this.props.handleChange({\r\n event: 'changePage', data: {\r\n page: this.state.page,\r\n }\r\n });\r\n });\r\n }\r\n toNextPage() {\r\n this.setState({ page: this.state.page + 1 }, () => {\r\n this.props.handleChange({\r\n event: 'changePage', data: {\r\n page: this.state.page,\r\n }\r\n });\r\n });\r\n }\r\n toLastPage() {\r\n this.setState({ page: this.getTotalPage() }, () => {\r\n this.props.handleChange({\r\n event: 'changePage', data: {\r\n page: this.state.page,\r\n }\r\n });\r\n });\r\n }\r\n render() {\r\n let { total, page_size, page } = this.state;\r\n var to=0;\r\n var from=0;\r\n if(total>0)\r\n {\r\n from=(page-1)*page_size+1;\r\n to=page*page_size>total?total:page*page_size;\r\n }\r\n return (\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n {`Hiển thị ${from} đến ${to} trên ${total} bản ghi`}\r\n\r\n \r\n \r\n \r\n <<\r\n \r\n { this.inputSelectPage.current.select(); }}>\r\n { this.onChangePage(event.currentTarget.value); }}\r\n onKeyDown={this.onKeyDown.bind(this)}\r\n onBlur={this.onBlur.bind(this)}\r\n >/{this.getTotalPage()}\r\n \r\n = this.getTotalPage()} onClick={this.toNextPage.bind(this)} />\r\n = this.getTotalPage()} onClick={this.toLastPage.bind(this)}>>>\r\n \r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport { PaginationComponent };\r\n","import React from 'react';\r\nexport const GridViewContext = React.createContext();","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Row, Col, Table, FormCheck } from 'react-bootstrap';\r\nimport { PaginationComponent } from './PaginationComponent';\r\nimport { GridViewContext } from './GridViewContext';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nclass ColumnComponent extends Component {\r\n static propTypes = {\r\n className: PropTypes.string,\r\n title: PropTypes.string.isRequired,\r\n body: PropTypes.func.isRequired,\r\n sortKey: PropTypes.string,\r\n\r\n }\r\n}\r\nclass TableComponent extends Component {\r\n static propTypes = {\r\n className: PropTypes.string, // thay đổi class của table\r\n data: PropTypes.array.isRequired, // data danh sách của table\r\n sort: PropTypes.object,\r\n keyExtractor: PropTypes.func,\r\n noSelected: PropTypes.bool,\r\n //option của pagination\r\n page: PropTypes.number,\r\n page_size: PropTypes.number,\r\n total: PropTypes.number,\r\n pageSizeOptions: PropTypes.array,\r\n noPaging: PropTypes.bool,\r\n handleChange: PropTypes.func\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n sort: props.sort || {},\r\n selected: {},\r\n prevProps: props\r\n };\r\n this.tbodyRef = React.createRef();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n let prevProps = { ...state.prevProps };\r\n let nextState = null;\r\n if (prevProps.sort !== props.sort) {\r\n nextState = nextState || {};\r\n nextState.sort = prevProps.sort = props.sort || {};\r\n }\r\n //-------\r\n if (nextState) {\r\n nextState.prevProps = prevProps;\r\n }\r\n return nextState;\r\n\r\n }\r\n handleCheckAll(checked, contextValue) {\r\n let selected = this.state.selected;\r\n const textinputs = this.tbodyRef.querySelectorAll('.grid-selected input[type=checkbox]');\r\n let inputCanXL = [].filter.call(textinputs, function (el) {\r\n return el.checked !== checked;\r\n });\r\n inputCanXL.forEach((item) => {\r\n item.checked = checked;\r\n if (checked) {\r\n selected[item.value] = checked;\r\n } else {\r\n delete selected[item.value];\r\n }\r\n });\r\n this.setState({ selected: selected }, () => {\r\n this.processHanleChange('changeSelected', { selected: this.state.selected }, contextValue);\r\n });\r\n\r\n\r\n }\r\n handleCheckItem(key, checked, contextValue) {\r\n let selected = this.state.selected;\r\n if (checked) {\r\n selected[key] = checked;\r\n this.setState({\r\n selected: selected\r\n }, () => {\r\n this.processHanleChange('changeSelected', { selected: this.state.selected }, contextValue);\r\n });\r\n } else {\r\n delete selected[key];\r\n this.setState({\r\n selected: selected\r\n }, () => {\r\n this.processHanleChange('changeSelected', { selected: this.state.selected }, contextValue);\r\n });\r\n }\r\n\r\n }\r\n\r\n handleSort(sortKey, contextValue) {\r\n const sort = {};\r\n let typeSort = this.state.sort[sortKey];\r\n if (typeSort) {\r\n typeSort = typeSort === 'asc' ? 'desc' : 'asc';\r\n }\r\n else {\r\n typeSort = 'asc';\r\n }\r\n sort[sortKey] = typeSort;\r\n this.setState({ sort: sort }, () => {\r\n this.processHanleChange('changeSort', { sort: this.state.sort }, contextValue);\r\n });\r\n }\r\n processHanleChange(event, data, contextValue) {\r\n if (this.props.handleChange) {\r\n this.props.handleChange({ event: event, data: data });\r\n }\r\n if (contextValue && contextValue.gridViewHandleChange) {\r\n contextValue.gridViewHandleChange({ event: event, data: data });\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n className,\r\n keyExtractor,\r\n noSelected,\r\n noPaging,\r\n // eslint-disable-next-line no-unused-vars\r\n sort,\r\n data,\r\n page,\r\n page_size,\r\n total,\r\n pageSizeOptions,\r\n // eslint-disable-next-line no-unused-vars\r\n handleChange,\r\n ...props } = this.props;\r\n return (\r\n \r\n {(contextValue) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n React.Children.map(props.children, (child, key) => {\r\n // eslint-disable-next-line no-unused-vars\r\n if (child.type.name === ColumnComponent.name) {\r\n const {\r\n title,\r\n className,\r\n // eslint-disable-next-line no-unused-vars\r\n body,\r\n sortKey,\r\n ...props\r\n } = child.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n })\r\n }\r\n {\r\n (!noSelected) &&\r\n }\r\n \r\n \r\n { this.tbodyRef = tbodyRef; }}>\r\n {\r\n total > 0 ?\r\n \r\n {\r\n\r\n data.map((item, index) => {\r\n return (\r\n \r\n {\r\n React.Children.map(props.children, (child, key) => {\r\n // eslint-disable-next-line no-unused-vars\r\n if (child.type.name === ColumnComponent.name) {\r\n const {\r\n // eslint-disable-next-line no-unused-vars\r\n title,\r\n className,\r\n body,\r\n // eslint-disable-next-line no-unused-vars\r\n sortKey,\r\n ...props\r\n } = child.props;\r\n return ;\r\n }\r\n })\r\n }\r\n {\r\n (!noSelected) &&\r\n }\r\n \r\n );\r\n })\r\n }\r\n \r\n : \r\n {(noSelected) ?\r\n :\r\n \r\n }\r\n \r\n }\r\n \r\n
\r\n {title}\r\n {!!sortKey &&\r\n { this.handleSort(sortKey, contextValue); }}>\r\n \r\n \r\n \r\n }\r\n \r\n { this.handleCheckAll(ev.currentTarget.checked, contextValue); }}>\r\n
{body({ item, index })}\r\n { this.handleCheckItem(ev.currentTarget.value, ev.currentTarget.checked, contextValue); }}>\r\n
\r\n Không có dữ liệu\r\n \r\n Không có dữ liệu\r\n
\r\n \r\n
\r\n {\r\n (!noPaging) &&\r\n {\r\n this.processHanleChange(res.event, res.data, contextValue);\r\n }}\r\n >\r\n }\r\n
\r\n )}\r\n\r\n
\r\n );\r\n }\r\n}\r\nTableComponent.Column = ColumnComponent;\r\nTableComponent.displayName = 'GridViewTable';\r\n\r\nexport { TableComponent };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Row, Col, Button, InputGroup, FormControl } from 'react-bootstrap';\r\nimport { GridViewContext } from './GridViewContext';\r\n\r\n\r\nclass GridViewHeaderComponent extends React.Component {\r\n static propTypes = {\r\n className: PropTypes.string,\r\n ActionBar: PropTypes.element,\r\n AdvanceFilter: PropTypes.element,\r\n keySearch: PropTypes.string,\r\n handleChange: PropTypes.func,\r\n isWrapper: PropTypes.bool\r\n\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isAdvSearchOpen: false,\r\n keySearch: props.keySearch || '',\r\n };\r\n\r\n }\r\n\r\n handleToggleAdvBtn() {\r\n this.setState({ isAdvSearchOpen: !this.state.isAdvSearchOpen });\r\n }\r\n handleChange(ev) {\r\n this.setState({ keySearch: ev.currentTarget.value });\r\n }\r\n handleKeyDown(ev, contextValue) {\r\n if (ev.key === 'Enter') {\r\n const keySearch = ev.currentTarget.value;\r\n this.processHanleChange('changeKeySearch', { search: keySearch }, contextValue);\r\n }\r\n }\r\n handleClickSeachBtn(contextValue) {\r\n this.processHanleChange('changeKeySearch', { search: this.state.keySearch }, contextValue);\r\n }\r\n processHanleChange(event, data, contextValue) {\r\n if (this.props.handleChange) {\r\n this.props.handleChange({ event: event, data: data });\r\n }\r\n if (contextValue && contextValue.gridViewHandleChange) {\r\n contextValue.gridViewHandleChange({ event: event, data: data });\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n {(contextValue) => (\r\n \r\n \r\n {!this.props.isWrapper &&\r\n \r\n \r\n \r\n \r\n { this.setState({ keySearch: ev.currentTarget.value }); }}\r\n onKeyDown={(ev) => { this.handleKeyDown(ev, contextValue); }}\r\n />\r\n { this.handleClickSeachBtn(contextValue); }}>\r\n {\r\n this.state.isAdvSearchOpen ? \"\" : \r\n }\r\n \r\n\r\n \r\n {\r\n this.props.AdvanceFilter &&\r\n \r\n {\r\n this.state.isAdvSearchOpen ? : \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 {this.props.ActionBar}\r\n
\r\n \r\n
\r\n {\r\n (this.state.isAdvSearchOpen && this.props.AdvanceFilter) &&\r\n \r\n \r\n
\r\n Tìm kiếm mở rộng\r\n {this.props.AdvanceFilter}\r\n
\r\n \r\n
\r\n }\r\n
\r\n }\r\n {\r\n // eslint-disable-next-line react/prop-types\r\n this.props.children\r\n }\r\n \r\n\r\n
\r\n )}\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nGridViewHeaderComponent.displayName = 'GridViewHeader';\r\nexport { GridViewHeaderComponent };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Row } from 'react-bootstrap';\r\nimport {LoadingComponent} from '../LoadingComponent';\r\nimport { TableComponent } from './TableComponent';\r\nimport { GridViewHeaderComponent } from './GridViewHeaderComponent';\r\nimport { findByType } from '../../utils';\r\nimport { GridViewContext } from './GridViewContext';\r\nclass GridViewComponent extends React.Component {\r\n static propTypes = {\r\n className: PropTypes.string,\r\n handleChange: PropTypes.func,\r\n loading:PropTypes.bool,\r\n\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isAdvSearchOpen: false,\r\n };\r\n }\r\n componentDidMount() {\r\n }\r\n\r\n handleToggleAdvBtn() {\r\n this.setState({ isAdvSearchOpen: !this.state.isAdvSearchOpen });\r\n }\r\n renderTable() {\r\n // eslint-disable-next-line react/prop-types\r\n const { children } = this.props;\r\n // First we try to find the Title sub-component among the children of Article\r\n const table = findByType(children, TableComponent);\r\n // If we don’t find any we return null\r\n if (!table) {\r\n return null;\r\n }\r\n // Else we return the children of the Title sub-component as wanted\r\n return table;\r\n }\r\n renderHeader() {\r\n // eslint-disable-next-line react/prop-types\r\n const { children } = this.props;\r\n // First we try to find the Title sub-component among the children of Article\r\n const header = findByType(children, GridViewHeaderComponent);\r\n // If we don’t find any we return null\r\n if (!header) {\r\n return null;\r\n }\r\n // Else we return the children of the Title sub-component as wanted\r\n return header;\r\n }\r\n render() {\r\n return (\r\n\r\n \r\n
\r\n {this.renderHeader()}\r\n \r\n {this.renderTable()}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nGridViewComponent.Table = TableComponent;\r\nGridViewComponent.Header=GridViewHeaderComponent;\r\nexport { GridViewComponent };\r\n","import React from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { BehaviorsContext } from '../../services';\r\nclass AlertComponent extends React.Component {\r\n static contextType = BehaviorsContext;\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show: false,\r\n msg: '',\r\n size: 'sm',\r\n type: 'danger'\r\n };\r\n this.subscriptions={}; \r\n }\r\n componentDidMount() { \r\n this.subscriptions['onShow']= this.context.beh.onShowAlert.subscribe((res) => {\r\n if(!this.state.show){\r\n this.setState({\r\n show: true,\r\n msg: res.msg || '',\r\n size: res.size || 'sm',\r\n type: res.type || 'danger'\r\n });\r\n }\r\n \r\n });\r\n }\r\n componentWillUnmount(){\r\n Object.keys(this.subscriptions).forEach((key)=>{\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n }\r\n handleClose() {\r\n this.setState({ show: false });\r\n this.context.beh.onHideAlert.next(true);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n Thông báo\r\n \r\n\r\n \r\n

{this.state.msg}

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport { AlertComponent };\r\n","import React from 'react';\r\nimport { Modal, Button } from 'react-bootstrap';\r\nimport { BehaviorsContext } from '../../services';\r\nclass ConfirmComponent extends React.Component {\r\n static contextType = BehaviorsContext;\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show: false,\r\n msg: '',\r\n size: 'sm',\r\n type: 'danger'\r\n };\r\n this.subscriptions={};\r\n }\r\n\r\n componentDidMount() {\r\n this.subscriptions['onShow']= this.context.beh.onShowConfirm.subscribe((res) => {\r\n if(!this.state.show){\r\n this.setState({\r\n show: true,\r\n msg: res.msg || '',\r\n size: res.size || 'sm',\r\n type: res.type || 'danger'\r\n });\r\n }\r\n \r\n });\r\n }\r\n componentWillUnmount(){\r\n Object.keys(this.subscriptions).forEach((key)=>{\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n }\r\n handleClose() {\r\n this.setState({ show: false });\r\n this.context.beh.onHideConfirm.next(false);\r\n }\r\n handleOK(){\r\n this.setState({ show: false });\r\n this.context.beh.onHideConfirm.next(true);\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n Thông báo\r\n \r\n\r\n \r\n

{this.state.msg}

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport { ConfirmComponent };\r\n","export const flattenTree = (data, map = new Map()) => {\r\n data.forEach(item => {\r\n map.set(item.value, item);\r\n if (item.children && item.children.length > 0) {\r\n flattenTree(item.children, map);\r\n }\r\n });\r\n return { data, map };\r\n};\r\nexport const setValue = (value, map, mode,checked) => {\r\n if (['radioSelect', 'simpleSelect'].includes(mode)) {\r\n let item = map.get(value);\r\n if (item) {\r\n item.checked = checked;\r\n }\r\n\r\n } else {\r\n (value || []).forEach(key => {\r\n let item = map.get(key);\r\n if (item) {\r\n item.checked = checked;\r\n item.expanded = checked;\r\n }\r\n });\r\n }\r\n\r\n};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport DropdownTreeSelect from 'react-dropdown-tree-select';\r\nimport {flattenTree,setValue} from './utils';\r\n\r\nclass FormSelectComponent extends React.Component {\r\n static propTypes = {\r\n id: PropTypes.string,\r\n name: PropTypes.string.isRequired,\r\n className: PropTypes.string,\r\n inlineSearchInput: PropTypes.bool,\r\n size: PropTypes.string,\r\n keepTreeOnSearch: PropTypes.bool,\r\n keepChildrenOnSearch: PropTypes.bool,\r\n isValid: PropTypes.bool,\r\n isInvalid: PropTypes.bool,\r\n value: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string, PropTypes.number]),\r\n onChange: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\r\n data: PropTypes.array,\r\n placeholder:PropTypes.string\r\n\r\n };\r\n constructor(props) {\r\n super(props);\r\n const { data, map } = flattenTree(JSON.parse(JSON.stringify(props.data || [])));\r\n setValue(props.value, map, props.mode,true);\r\n this.state = {\r\n //dataCombineWithValue:data,\r\n data: data,//JSON.parse(JSON.stringify(data)),\r\n innerValue: props.value,\r\n map: map,\r\n prevProps: props,\r\n timeRender:new Date(),\r\n timeBlur:new Date(),\r\n };\r\n this.subscriptions = {};\r\n }\r\n componentDidMount(){\r\n //console.log(this.state);\r\n \r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n let prevProps = { ...state.prevProps };\r\n let nextState = null;\r\n if (props.value !== prevProps.value) {\r\n nextState = nextState || {};\r\n prevProps.value = props.value;\r\n \r\n if (props.value !== state.innerValue) { \r\n nextState.innerValue=props.value; // cap nhat lai innerValue\r\n //nextState.data=JSON.parse(JSON.stringify(state.dataCombineWithValue));// gan lai data de combine lai\r\n // nextState.timeRender= new Date(); // render lai\r\n \r\n setValue(props.value,state.map,prevProps.mode,true);\r\n nextState.timeRender= new Date(); // render lai\r\n \r\n } \r\n }\r\n if (prevProps.data !== props.data) {\r\n nextState = nextState || {};\r\n prevProps.data = props.data;\r\n // khoi tao lai value moi\r\n const {data,map} = flattenTree(JSON.parse(JSON.stringify(props.data || [])));// khoi tao lai data map moi\r\n setValue(state.innerValue,map,prevProps.mode,true); //cap nhat check theo value\r\n nextState.data=data;//JSON.parse(JSON.stringify(data));// gan lai data de hien thi\r\n //nextState.dataCombineWithValue=data;\r\n nextState.map=map;\r\n nextState.timeRender= new Date(); // render lai\r\n } \r\n if (prevProps.isInvalid !== props.isInvalid) {\r\n nextState = nextState || {};\r\n prevProps.isInvalid = props.isInvalid;\r\n nextState.timeRender= new Date(); // render lai\r\n //nextState.data=JSON.parse(JSON.stringify(state.dataCombineWithValue));// gan lai data de combine lai \r\n } \r\n if (nextState) {\r\n nextState.prevProps = prevProps;\r\n }\r\n return nextState;\r\n\r\n }\r\n shouldComponentUpdate(nextProps, nextState) {\r\n\r\n if(nextState.timeRender!== this.state.timeRender){\r\n return true;\r\n }\r\n return false;\r\n }\r\n componentWillUnmount() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n }\r\n\r\n onChange(selectedNodes) {\r\n let res = selectedNodes.map(x => {\r\n return x.value;\r\n });\r\n let value = null;\r\n if (['radioSelect', 'simpleSelect'].includes(this.props.mode)) {\r\n value = res[0] || null;\r\n } else {\r\n\r\n value = res || null;\r\n }\r\n if(this.state.innerValue!==value){\r\n setValue(this.state.innerValue,this.state.map,this.props.mode,false);\r\n setValue(value,this.state.map,this.props.mode,true);\r\n } \r\n this.setState({ innerValue: value }, () => {\r\n if (this.props.onChange) {\r\n this.props.onChange({\r\n persist: () => {},\r\n target: {\r\n type: 'change',\r\n id: this.props.id || null,\r\n name: this.props.name,\r\n value: value\r\n }\r\n });\r\n }\r\n \r\n });\r\n\r\n }\r\n handleBlur() {\r\n // this.setState({timeBlur:new Date()});\r\n }\r\n\r\n render() {\r\n const {\r\n \r\n className,\r\n isValid,\r\n isInvalid,\r\n size,\r\n keepTreeOnSearch,\r\n keepChildrenOnSearch,\r\n placeholder,\r\n // eslint-disable-next-line no-unused-vars\r\n data,\r\n // eslint-disable-next-line no-unused-vars\r\n inlineSearchInput,\r\n // eslint-disable-next-line no-unused-vars\r\n onChange,\r\n // eslint-disable-next-line no-unused-vars\r\n onBlur,\r\n // eslint-disable-next-line no-unused-vars\r\n value,\r\n \r\n ...props } = this.props;\r\n return (\r\n \r\n { this.onChange(selectedNodes,currentNode);}}\r\n onBlur={this.handleBlur.bind(this)}\r\n {...props}\r\n >\r\n \r\n );\r\n }\r\n}\r\n\r\nexport { FormSelectComponent };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Form, Col, Button, Modal } from 'react-bootstrap';\r\nimport { http } from 'shared/utils';\r\nimport { Formik } from 'formik';\r\nimport classNames from 'classnames';\r\nimport { flattenTree, setValue } from './utils';\r\nimport { API_URL } from 'app-setting';\r\nconst fileImage = ['jpg', 'jpeg', 'png', 'icon'];\r\nconst fileDocument = ['docx', 'doc', 'xls', 'xlsx'];\r\nconst fileAll = ['docx', 'doc', 'xls', 'xlsx', 'jpg', 'ipeg', 'png', 'icon', 'pdf','mp4'];\r\nconst maxsize = 50;\r\nclass FileAttachComponent extends React.Component {\r\n static propTypes = {\r\n multiple: PropTypes.bool, // chọn nhiều file\r\n name: PropTypes.string,\r\n action: PropTypes.oneOf(['new', 'edit', 'read']), // truyền vào state.action\r\n size: PropTypes.number, // dung lượng cho phép MB\r\n label: PropTypes.string, // label field\r\n btnName: PropTypes.string, // tên button thêm tệp\r\n value: PropTypes.array, // value truyền vào\r\n // định dạng cho phép nhập dạng string \"fileImage\",\"fileDocument\",\"fileAll\" \r\n // hoặc nhập thằng định dạng cho phép theo dạng mảng ['doc','xls'...]\r\n fileAllow: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\r\n onFileChange: PropTypes.func,\r\n onFileDelete: PropTypes.func,\r\n \r\n };\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n innerValue: props.value, // value hiện tại\r\n checkedit: false,\r\n fileType: [],\r\n maxSize: props.size,\r\n fileAttach: PropTypes.array,\r\n fileDelete: PropTypes.array,\r\n lstIdDelete: [],\r\n };\r\n this.subscriptions = {};\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n if (props.action === \"edit\")\r\n if (props.value && !state.checkedit) {\r\n state.innerValue = props.value;\r\n state.checkedit = true;\r\n }\r\n if (typeof props.fileAllow === 'string') {\r\n switch (props.fileAllow) {\r\n case \"fileImage\":\r\n state.fileType = fileImage;\r\n break;\r\n case \"fileDocument\":\r\n state.fileType = fileDocument;\r\n break;\r\n default:\r\n state.fileType = fileAll;\r\n break;\r\n }\r\n } else {\r\n state.fileType = props.fileAllow;\r\n }\r\n if (props.size > 0) {\r\n state.maxSize = props.size\r\n }\r\n else {\r\n state.maxSize = maxsize;\r\n }\r\n return state;\r\n }\r\n handleFileChange(e) {\r\n this.props.onFileChange(e);\r\n }\r\n componentDidMount() {\r\n console.log(this.props);\r\n }\r\n componentWillUnmount() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n }\r\n upload() {\r\n document.getElementById(this.props.name ? this.props.name : \"selectImage\").click()\r\n } \r\n // xoa file => gán lại state\r\n deleteAtt(e) {\r\n let { lstIdDelete } = this.state;\r\n var array = [...this.state.innerValue];\r\n var index = array.indexOf(e);\r\n if (index !== -1) {\r\n // đã lưu vào db thì sẽ thêm trường isDelete để post đi\r\n let fileDelete = new Array();\r\n if (array[index].id > 0) {\r\n lstIdDelete.push(array[index].id);\r\n array[index].isDelete = 1;\r\n fileDelete.push(array[index].id);\r\n } else { // nếu chưa lưu vào db thì chỉ cần xóa ở state là dc \r\n array.splice(index, 1);\r\n }\r\n\r\n let arrRe = new Array();\r\n array.map(x => {\r\n if (!x.error || x.error && x.error.length == 0)\r\n arrRe.push(x)\r\n });\r\n this.setState({\r\n innerValue: array,\r\n fileAttach: arrRe,\r\n lstIdDelete: lstIdDelete\r\n }); \r\n if (this.props.onFileDelete) {\r\n this.props.onFileDelete(lstIdDelete);\r\n }\r\n this.props.onFileChange(arrRe);\r\n }\r\n\r\n }\r\n checkFileType(filetype) {\r\n if (this.state.fileType.indexOf(filetype) > -1)\r\n return '';\r\n else\r\n return 'Định dạng không được phép upload';\r\n }\r\n checkSize(size) {\r\n if ((this.state.maxSize * 1000000) >= size)\r\n return '';\r\n else\r\n return 'Dung lượng file vượt quá cho phép';\r\n }\r\n onChangeHandler = event => {\r\n let files = event.target.files;\r\n // check filetype\r\n let arr = Array.from(files).map(x => {\r\n x.filetype = x.name.split('.').pop();\r\n x.title = x.name;\r\n x.error = new Array();\r\n if (this.checkFileType(x.name.split('.').pop()) !== '')\r\n x.error.push(this.checkFileType(x.name.split('.').pop()));\r\n if (this.checkSize(x.size) !== '')\r\n x.error.push(this.checkSize(x.size));\r\n return x;\r\n });\r\n // nếu sửa thì add thêm file vào các file cũ\r\n if (this.props.action == 'edit' && this.state.innerValue) {\r\n this.state.innerValue.forEach(element => {\r\n arr.push(element);\r\n });\r\n }\r\n // nếu đã có file , check xem file da ton tai chua, neu ton tai thì replace file cu\r\n if (this.props.action == 'new' && this.state.innerValue) {\r\n // for arr, neu ma inner value neu mà co element thì delete trc khi add lai \r\n for (var i = 0; i < arr.length; i++) {\r\n for (var j = 0; j < this.state.innerValue.length; j++) {\r\n if (arr[i].name == this.state.innerValue[j].name) {\r\n delete this.state.innerValue[j];\r\n }\r\n }\r\n } \r\n //arr.map(x => {\r\n // if (this.state.innerValue.indexOf(x) > -1)\r\n // delete this.state.innerValue[this.state.innerValue.indexOf(x)];\r\n //})\r\n this.state.innerValue.forEach(element => {\r\n arr.push(element);\r\n });\r\n }\r\n\r\n let arrRe = new Array();\r\n arr.map(x => {\r\n if (!x.error || x.error && x.error.length == 0)\r\n arrRe.push(x)\r\n });\r\n this.setState({\r\n innerValue: arr,\r\n fileAttach: arrRe,\r\n })\r\n this.props.onFileChange(arrRe);\r\n }\r\n\r\n render() {\r\n const {\r\n multiple,\r\n name,\r\n action,\r\n size,\r\n label,\r\n btnName,\r\n value,\r\n onChange,\r\n // eslint-disable-next-line no-unused-vars\r\n onBlur,\r\n\r\n ...props } = this.props;\r\n return (\r\n \r\n \r\n {\r\n label ? label : \"Đính kèm\"\r\n }\r\n \r\n {(() => {\r\n if (action === 'new') {\r\n return (\r\n \r\n \r\n
    \r\n {this.state.innerValue ?\r\n this.state.innerValue.map((file, index) => {\r\n return (\r\n (!file.isDelete || file.isDelete === 0) ?\r\n
  • \r\n {\r\n (!file.error || file.error && file.error.length === 0) ?\r\n \r\n {file.title}\r\n this.deleteAtt(file)}>\r\n \r\n \r\n \r\n \r\n : \r\n

    {file.title}

    \r\n {file.error.map((err, index) => {\r\n return {err}; \r\n })}\r\n
    \r\n }\r\n\r\n
  • \r\n : ''\r\n )\r\n })\r\n : ''\r\n }\r\n
\r\n
)\r\n } else if (action === 'edit') {\r\n return (\r\n {/* */}\r\n \r\n \r\n
    \r\n {this.state.innerValue ?\r\n this.state.innerValue.map((file, index) => {\r\n //return (
  • {file.title} this.deleteAtt(file)}>
  • )\r\n return (\r\n (!file.isDelete || file.isDelete === 0) ?\r\n
  • \r\n {\r\n (!file.error || file.error && file.error.length === 0) ?\r\n \r\n {file.title}\r\n this.deleteAtt(file)}>\r\n \r\n \r\n \r\n \r\n : \r\n

    {file.title}

    \r\n {file.error.map((err, index) => {\r\n return {err}; \r\n })}\r\n
    \r\n }\r\n\r\n
  • \r\n : ''\r\n )\r\n })\r\n : ''\r\n }\r\n
\r\n
)\r\n } else {\r\n return (\r\n
    {\r\n value ?\r\n value.map((file, index) => {\r\n return (\r\n
  • \r\n {file.title}\r\n
  • )\r\n }) : ''\r\n }\r\n
\r\n
)\r\n }\r\n //return(

abc

)\r\n })()\r\n }\r\n
\r\n );\r\n }\r\n}\r\nexport { FileAttachComponent };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'react-bootstrap';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { API_URL } from 'app-setting';\r\nimport { Link } from 'react-router-dom';\r\nimport IamgeAdd from 'assets/images/add_images.png';\r\nconst fileImage = ['jpg', 'jpeg', 'png', 'icon'];\r\nconst maxsize = 100;\r\nclass FileAttachImageComponent extends React.Component {\r\n static propTypes = {\r\n multiple: PropTypes.bool, // chọn nhiều file\r\n action: PropTypes.oneOf(['new', 'edit', 'read']), // truyền vào state.action\r\n size: PropTypes.number, // dung lượng cho phép MB\r\n label: PropTypes.string, // label field\r\n btnName: PropTypes.string, // tên button thêm tệp\r\n value: PropTypes.array, // value truyền vào\r\n // định dạng cho phép nhập dạng string \"fileImage\",\"fileDocument\",\"fileAll\" \r\n // hoặc nhập thằng định dạng cho phép theo dạng mảng ['doc','xls'...]\r\n fileAllow: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\r\n onFileChange: PropTypes.func,\r\n onFileDelete: PropTypes.func,\r\n name: PropTypes.string,\r\n };\r\n constructor(props) {\r\n super(props);\r\n\r\n let fileType=[];\r\n if (typeof props.fileAllow === 'string') {\r\n switch (props.fileAllow) {\r\n case 'fileImage':\r\n fileType = fileImage;\r\n break;\r\n default:\r\n fileType = fileImage;\r\n break;\r\n }\r\n } else {\r\n fileType = props.fileAllow;\r\n }\r\n let prevProps=this.props;\r\n this.state = {\r\n innerValue: props.value, // value hiện tại\r\n checkedit: false,\r\n fileType: fileType,\r\n maxSize: props.size>0?props.size:maxsize,\r\n fileAttach: PropTypes.array,\r\n lstIdDelete: [],\r\n fileAttachs: props.value,\r\n urlImage: '',\r\n prevProps:prevProps\r\n };\r\n this.subscriptions = {};\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n let prevProps = { ...state.prevProps };\r\n let nextState = null;\r\n if (props.value !== prevProps.value) {\r\n nextState = nextState || {};\r\n prevProps = props || {};\r\n nextState.fileAttachs = props.value;\r\n }\r\n if (props.action !== prevProps.action) {\r\n nextState = nextState || {};\r\n prevProps = props || {};\r\n nextState.checkedit = props.action === 'edit';\r\n }\r\n // hanlder fileAllow prop\r\n if (props.fileAllow !== prevProps.fileAllow) {\r\n nextState = nextState || {}; \r\n if (typeof props.fileAllow === 'string') {\r\n switch (props.fileAllow) {\r\n case 'fileImage':\r\n nextState.fileType = fileImage;\r\n break;\r\n default:\r\n nextState.fileType = fileImage;\r\n break;\r\n }\r\n } else {\r\n nextState.fileType = props.fileAllow;\r\n }\r\n }\r\n //hanlder size prop\r\n if (props.size !== prevProps.size) {\r\n nextState = nextState || {};\r\n if (props.size > 0) {\r\n nextState.maxSize = props.size;\r\n }\r\n else {\r\n nextState.maxSize = maxsize;\r\n }\r\n }\r\n \r\n if (nextState) {\r\n nextState.prevProps = prevProps;\r\n } \r\n return nextState;\r\n }\r\n handleFileChange(e) {\r\n this.props.onFileChange(e);\r\n }\r\n componentDidMount() {\r\n \r\n }\r\n\r\n componentWillUnmount() {\r\n // Object.keys(this.subscriptions).forEach((key) => {\r\n // this.subscriptions[key].unsubscribe();\r\n // });\r\n\r\n\r\n }\r\n upload() {\r\n document.getElementById(this.props.name).click();\r\n }\r\n // xoa file => gán lại state\r\n deleteAtt(e) {\r\n //var array = [...this.state.fileAttachs];\r\n var { fileAttachs, lstIdDelete } = this.state;\r\n var index = fileAttachs.indexOf(e);\r\n if (index !== -1) {\r\n // đã lưu vào db thì sẽ thêm trường isDelete để post đi \r\n if (fileAttachs[index].id > 0) {\r\n lstIdDelete.push(fileAttachs[index].id);\r\n fileAttachs.splice(index, 1);\r\n } else { // nếu chưa lưu vào db thì chỉ cần xóa ở state là dc \r\n fileAttachs.splice(index, 1);\r\n }\r\n }\r\n this.setState({\r\n fileAttachs: fileAttachs,\r\n lstIdDelete: lstIdDelete\r\n });\r\n this.props.onFileChange(fileAttachs);\r\n if (this.props.onFileDelete) {\r\n this.props.onFileDelete(lstIdDelete);\r\n }\r\n\r\n }\r\n checkFileType(filetype) {\r\n if (this.state.fileType.indexOf(filetype) > -1)\r\n return '';\r\n else\r\n return 'Định dạng không được phép upload';\r\n }\r\n checkSize(size) {\r\n if ((this.state.maxSize * 1000000) >= size)\r\n return '';\r\n else\r\n return 'Dung lượng file vượt quá cho phép';\r\n }\r\n onChangeHandler = event => {\r\n let { multiple } = this.props;\r\n let fileAttachs = this.state.fileAttachs;\r\n if (!multiple) {\r\n fileAttachs = [];\r\n }\r\n\r\n let files = event.target.files;\r\n let arr = Array.from(files).map((x, index) => {\r\n x.filetype = x.name.split('.').pop();\r\n x.title = x.name;\r\n x.error = new Array();\r\n if (this.checkFileType(x.name.split('.').pop()) !== '')\r\n x.error.push(this.checkFileType(x.name.split('.').pop()));\r\n if (this.checkSize(x.size) !== '')\r\n x.error.push(this.checkSize(x.size));\r\n //Lấy data file\r\n let reader = new FileReader();\r\n reader.onloadend = () => {\r\n x.datafile = reader.result;\r\n if (fileAttachs) {\r\n var idx = -1;\r\n for (var j = 0; j < fileAttachs.length; j++) {\r\n if (fileAttachs[j].title)\r\n if (x.title == fileAttachs[j].title) {\r\n idx = j;\r\n break;\r\n }\r\n }\r\n if (idx >= 0)\r\n fileAttachs[idx] = x;\r\n else\r\n fileAttachs.push(x);\r\n }\r\n this.setState({\r\n fileAttachs: fileAttachs\r\n });\r\n };\r\n\r\n reader.readAsDataURL(x);\r\n return x;\r\n });\r\n let arrRe = new Array();\r\n arr.map(x => {\r\n if (!x.error || x.error && x.error.length == 0)\r\n arrRe.push(x);\r\n });\r\n\r\n this.setState({\r\n fileAttachs: arr,\r\n fileAttach: arrRe,\r\n });\r\n this.props.onFileChange(fileAttachs);\r\n }\r\n\r\n render() {\r\n const { multiple, action, btnName, value } = this.props;\r\n let { fileAttachs } = this.state;\r\n return (\r\n \r\n {(() => {\r\n if (action === 'new') {\r\n return (\r\n
    \r\n {fileAttachs ?\r\n fileAttachs.map((file, index) => {\r\n return (\r\n (!file.isDelete || file.isDelete === 0) ?\r\n
  • \r\n {\r\n (!file.error || file.error && file.error.length === 0) ?\r\n \r\n {file.title}\r\n this.deleteAtt(file)}>\r\n \r\n \r\n \r\n \r\n : \r\n

    {file.title}

    \r\n {file.error.map((err, index) => {\r\n return {err};\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 { this.upload(); }} className=\"text-link color-blue d-flex align-items-center mt-1\">\r\n \"\"{btnName ? btnName : \"Thêm ảnh\"}\r\n \r\n\r\n
);\r\n } else if (action === 'edit') {\r\n return (\r\n
    \r\n {fileAttachs ?\r\n fileAttachs.map((file, index) => {\r\n return (\r\n (!file.isDelete || file.isDelete === 0) ?\r\n
  • \r\n {\r\n (!file.error || file.error && file.error.length === 0) ?\r\n \r\n\r\n {file.title}\r\n this.deleteAtt(file)}>\r\n \r\n \r\n \r\n \r\n : \r\n

    {file.title}

    \r\n {file.error.map((err, index) => {\r\n return {err};\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 { this.upload(); }} className=\"text-link color-blue d-flex align-items-center mt-1\">\r\n \"\"{btnName ? btnName : \"Thêm ảnh\"}\r\n \r\n\r\n
);\r\n // return (\r\n // {/* */}\r\n // \r\n // \r\n\r\n //
    \r\n // {fileAttachs ?\r\n // fileAttachs.map((file, index) => {\r\n // //return (
  • {file.title} this.deleteAtt(file)}>
  • )\r\n // return (\r\n // (!file.isDelete || file.isDelete === 0) ?\r\n //
  • \r\n // {\r\n // (!file.error || file.error && file.error.length === 0) ?\r\n // \r\n // {file.title}\r\n // this.deleteAtt(file)}>\r\n // \r\n // \r\n // \r\n // \r\n // : \r\n //

    {file.title}

    \r\n // {file.error.map((err, index) => {\r\n // return {err}; ;\r\n // })}\r\n //
    \r\n // }\r\n\r\n //
  • \r\n // : ''\r\n // );\r\n // })\r\n // : ''\r\n // }\r\n //
\r\n //
);\r\n } else {\r\n return (\r\n
    {\r\n value ?\r\n value.map((file, index) => {\r\n return (\r\n
  • \r\n {file.title}\r\n
  • );\r\n }) : ''\r\n }\r\n
\r\n
);\r\n }\r\n //return(

abc

)\r\n })()\r\n }\r\n
\r\n );\r\n }\r\n}\r\nexport { FileAttachImageComponent };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Form, Col, Card, InputGroup, Button, Modal } from 'react-bootstrap';\r\nimport { Formik, Field } from 'formik';\r\nimport { string, object } from 'yup';\r\nimport { LoadingComponent, FormSelect } from 'shared/components';\r\nimport { formatDateTime } from 'shared/utils';\r\nimport classNames from 'classnames';\r\nimport DatePicker, { registerLocale } from 'react-datepicker';\r\n\r\nclass DatePickerComponent extends React.Component {\r\n static propTypes = {\r\n onChange: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n value: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string, PropTypes.number]),\r\n };\r\n constructor(props) {\r\n super(props);\r\n this.state = { \r\n };\r\n this.subscriptions = {};\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n \r\n }\r\n handleFileChange(e) {\r\n this.props.onFileChange(e);\r\n }\r\n componentDidMount() {\r\n console.log(this.props);\r\n }\r\n componentWillUnmount() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n }\r\n upload() {\r\n document.getElementById(\"selectImage\").click()\r\n }\r\n \r\n onChange(selectedNodes) {\r\n //let res = selectedNodes.map(x => {\r\n // return x.value;\r\n //});\r\n //let value = null;\r\n //if (['radioSelect', 'simpleSelect'].includes(this.props.mode)) {\r\n // value = res[0] || null;\r\n //} else {\r\n\r\n // value = res || null;\r\n //}\r\n //if (this.state.innerValue !== value) {\r\n // setValue(this.state.innerValue, this.state.map, this.props.mode, false);\r\n // setValue(value, this.state.map, this.props.mode, true);\r\n //}\r\n //this.setState({ innerValue: value }, () => {\r\n // if (this.props.onChange) {\r\n // this.props.onChange({\r\n // persist: () => { },\r\n // target: {\r\n // type: 'change',\r\n // id: this.props.id || null,\r\n // name: this.props.name,\r\n // value: value\r\n // }\r\n // });\r\n // }\r\n\r\n //});\r\n }\r\n handleBlur() {\r\n // this.setState({timeBlur:new Date()});\r\n }\r\n render() {\r\n const {\r\n \r\n value,\r\n onChange,\r\n errors,\r\n\r\n onBlur,\r\n touched,\r\n ...props } = this.props;\r\n return (\r\n \r\n this.onChange()}\r\n value={formatDateTime(value.ngaycapmst)}\r\n dateFormat=\"dd/MM/yyyy\"\r\n component={DatePicker}\r\n onBlur={this.handleBlur.bind(this)}\r\n isInvalid={touched.ngaycapmst && !!errors.ngaycapmst}>\r\n \r\n \r\n );\r\n }\r\n}\r\nexport { DatePickerComponent };\r\n","//--- Component\r\nexport { RouteGuardComponent } from './RouteGuard';\r\nexport { RouteWithSubRoutes } from './RouteWithSubRoutes';\r\nexport { LoadingComponent } from './LoadingComponent';\r\nexport { LoaderComponent as Loader } from './LoaderComponent';\r\nexport { PageComponent as Page } from './page/PageComponent';\r\nexport { Layout2cComponent as Layout2c } from './layout-home/Layout2cComponent';\r\nexport { LayoutbvComponent as Layoutbv } from './layout-home/LayoutbvComponent';\r\nexport { LayoutpaComponent as Layoutpa } from './layout-home/LayoutpaComponent';\r\nexport { GridViewComponent as GridView } from './grid-view/GridViewComponent';\r\nexport { AlertComponent } from './behaviors/AlertComponent';\r\nexport { ConfirmComponent } from './behaviors/ConfirmComponent';\r\nexport { FormSelectComponent as FormSelect } from './form-control/FormSelectComponent';\r\nexport { FileAttachComponent as FileAttach } from './form-control/FileAttachComponent';\r\nexport { FileAttachImageComponent as FileAttachIamge } from './form-control/FileAttachIamgeComponent';\r\nexport { DatePickerComponent as Datepicker } from './form-control/DatePickerComponent';","module.exports = __webpack_public_path__ + \"static/media/add_images.2f3a2d3a.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/jpeg;base64,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AAE/If2jbOHK/wBGgHQn2uCuCj/2I6RBE0fYVed1kppClp38VGitU/RRCYGOMMwJ6RegHZQZ/wCJ5m0KIb7sU20dAgAMDCxIcMaJy9X4xE4bQAEBkFF2mmH5cZtafRIwwOA3KEC2cWoZwoP227obmF+1b8mDC/RcAw2OEr9XHyMJXuAixIfCfTbli5nUGF+i3qd4Wj0bc1zfrdYb5ttDrOGh3W0OjCxNAKokCAXHNsI1Ap5L32wjD9zctHnBk/Q3JP34OT3XBuHYKuD7hFx3CMITB2lE4BGtvJ78KyjWFu/tKYXkhAg0ItSkAudMObvm09RxPIgs2t4cTG7rNxmzEwmkLIwJXJBxNKJr/lYwWsMXBGxH86CBjCJf8+jxoN0ecH6MaLA484uDjGAOQLEhiRiwZ82IM+cW8WwWLQbhi2i3LF4NzFEFUKYw0sXMtUQ1QYlhr/izYaf5w9DRuVO13Ws7TcqGjcYM3GN1JzXMnMjcY3vz8fakJPhCBF2ZqpCT4R+Pu7JRdSkm2iAYML8hwxUpJtoiUWtyjC6CJJ+AgAAwDDBkAhiHCCZJuCijC1mBJgcrVP0EAGBhhwAwOFq/xKAkwMbCd/uIQwtixDC6nf7nlZAuVIY8yCLIFj4mgKalMoMiygTQNND4CNvZQQ0MmEtBEfevz7JXK9Ep+Uyp9svEqfb8eXGcvy4T+HJBzPBB/T//2gAMAwAAARECEQAAEAwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwggggggggggggihCBAgggggggggggggggggggggghhr/PPPPHyggggggggggggggggggghnvPPPPPPPDigggggggggggggggggggfPPPPPPPPPCQgggggggggwwwwwwww3/ADzzzzzzzzzgMMMMMMMMMMMMMMMMMPfzzzzzzzzzzwIMMMMMMMMMMMMMMMMN/wA8888888886iDDDDDDDDDDDDDDDDDW8888888888vDDDDDDDDDCCCCCCCCCf8APPPPPPPPPCQgggggggggggggggggn/PPPPPPPPPIwgggggggggggggggghfPPPPPPPPPPPIgggggggggggggggggvPPPPPPPPPPKIgggggggggwwwwwwwwnPPPPPPPPPPOwwwwwwwwwwwwwwwwww9PPPPPPPPPOIgwwwwwwwwwwwwwwwwww/PPPPPPPPOwwwwwwwwwwwwwwwwwwww/8AzzzzzzzwkMMMMMMMMMMIIIIIIIIIILzzzzzzziIIIIIIIIIIIIIIIIIIIIIPzzzzzzzwMIIIIIIIIIIIIIIIIIIIIbzzzzzzzwoIIIIIIIIIIIIIIIIIIIJLzzzzzzzyIIIIIIIIIIIMMMMMMMMMP/zzzzzzzz8MMMMMMMMMMMMMMMMMMQ7zzzzzzzzzz8oMMMMMMMMMMMMMMSdzzzzzzzzzzzzyxsoMMMMMMMMMMZdzzzzzzzzzzzzzzzzyysoMMMMIIIXzzzzzzzzzzzzzzzzzzzzzwkIIIIa7zzzzzzzzzzzzzzzzzzzzzzzx4IIL3zzzzzzzzzzzzzzzzzzzzzzzzzz0IJzzzzzzzzzzzzzzzzzzzzzzzzzzywL/xAAbEQACAwEBAQAAAAAAAAAAAAABEQAwQFBgIP/aAAgBAhEBPxDxKiii0qL6XTFZxjcNw5Jxis4xWRiG4co4waztOUUn14pOUUnGoq1Feor1FWosaioWdcMazwP/xAAcEQEAAwEBAQEBAAAAAAAAAAABETBAADEgUGD/2gAIAQERAT8Q/iZ6enpNM9P0OZaRjI1mNrMb7ufawnG+1mNrMa1jifNz+UY0riNplaT+vfKTzK0jjnprHpvnpvnpsXGNK5x+l0j8LrH8D//EACoQAQABAgUDAwUBAQEAAAAAAAERACExQEFQYVFxgTChsZHB0eHwIBCA/9oACAEAAAE/EP8AyL/YVCJyraPUeBFY93CoD8zT+yaVgjsqd8oNHxnEFXNR1vpswkPRNxhb3ql3xQ1vku+kBHIRf60pMn+saTsLR2yEO8JrF6I2R6HT1lyDo6napA38Pz2qKmHfBnvQgAaBGRJhFEI601+Wty6bQMfNxOroZQUwEI0iV1d9TZ7y6vzlZAH8sbMvSwoQBgEZa0EW/wB9lhvd9L5eKC/sP8bKJ4Be2X5CCjDZBPY/tmOc099k9x+TMCPM2T3L5MusY0jYlia7Jj9/yZdbQEYE99lXu5e/vvnZf6nTLLFYnfZVHmPbLKF6Jow2VR43tllK/qNmUjjlnK5myo0sUqcCSRVlj5nGKBBCTJkdkJNbv0tmQLwHGxwB1T75mamEzY7h4HxmBXwRpZK4rLsdxYBzDmUB52RQcUUDDAky8oHq/g++yzQ3JfbLxW2MOxsoOKDhejo0aKBwhnKYUJMEAZjnZ9Hix82ykj7PrasNnmLmJcoDMAcn1gl8G03jjB4xycOf2P8AG0x7wPq0ySEbAJaVHWdpFQqEZGiDxSB0dcjMFvfRrtd0dJ4dHIKArYLtRT9p67YgNWMXpPrzJCWMO+2wDi+vAObtjhXAxPb1+Rme1GG18yIUEAeuk2riRTa+21+l8jpte/W+1yVxd3IwVzdza5Q4Ox/ORhDk7P8AG1EBKQUOFBGRHAgiiAhIdoxQLrYCmgLEB0fnJtAWITo/NYMNksjsy2H2xUUu+MO2Vmx2xj3pbG03jY4JylYKgPJljxQAQWMugkJJUh4Ms+KgnCFxz8IVNVYPNQ6cej80AAAGAZsAQCOI1LpxavxUIUNBcfObjS9ToeagF4Fv2oAAAwAjPggCOIk1ILyLr8VGl6HR85eWl6xgVBSvgo0IMAINjdCTESSpKV8FS0vScHJj2NgFTR5V8tHzBoGzvzJolRSvm+Gl7CxHIQc3MXVDz1OrtcPPQ6lSc3EWeqIZ8HeoGLqRY7bfIxdSLPelDPk7elgFGJgfurF2q6vfcbl2o6nasQqwMH9+gPs69AoYYHvzuYwyvbmn93VdT/QSgErYKAx6j56bqDh1Hz0pIUSEsn+bNap8N3hi135f5hj1fnd4YdD4/wARhoFBABhu6SI4VOGof8//2Q==\"","import { BaseService } from 'shared/services';\r\nimport { API_URL } from 'app-setting';\r\nimport { http } from 'shared/utils';\r\nimport { createContext } from 'react';\r\nimport { Subject } from 'rxjs';\r\nclass TienIchService extends BaseService {\r\n constructor(props) {\r\n const _props = Object.assign({}, { url: 'api/chcauhoi/lists' }, props);\r\n super(_props);\r\n this.sendToForm = new Subject();\r\n }\r\n getTienIchByType(type) {\r\n return http.get(`${API_URL}api/bvtienich/getitembytype?type=${type}`);\r\n }\r\n \r\n getListCauHoiTheoChuDe(obj) {\r\n\r\n return http.get(`${API_URL}api/chcauhoi/getchcungchude?id_chude=${obj.filter.id_chude}&id_cauhoi=${obj.filter.id_cauhoi}`);\r\n }\r\n getListCauHoiKhac(obj) {\r\n\r\n return http.get(`${API_URL}api/chcauhoithuonggap/getchkhac?id_cauhoi=${obj.filter.id_cauhoi}`);\r\n }\r\n getCauHoiByID(id) {\r\n return http.get(`${API_URL}api/chcauhoi/getitembyid/${id}`);\r\n }\r\n getCauHoiThuongGapByID(id) {\r\n return http.get(`${API_URL}api/chcauhoithuonggap/getitembyid/${id}`);\r\n }\r\n //chỉ tiêu đánh giá hệ thống\r\n getchitieudanhgiahethong() {\r\n return http.get(`${API_URL}api/dmchitieudanhgia?ItemsPerPage=-1&Page=1&type=1`);\r\n }\r\n //gửi đánh giá hệ thống\r\n createdanhgiahethong(obj) {\r\n return http.post(`${API_URL}api/danhgiavehethong`, obj);\r\n }\r\n //get đánh giá hệ thống\r\n getdanhgiahethong(obj) {\r\n return http.get(`${API_URL}api/danhgiavehethong/getbycurrentuser`);\r\n }\r\n \r\n //thông báo\r\n getDataNotify(id,itemsPerPage,strNotify) {\r\n return http.get(`${API_URL}api/thongbao?page=1&itemsPerPage=${itemsPerPage}&IDNguoiNhan=${id}&FilterText=${strNotify}`);\r\n }\r\n updateNotify(obj, id) {\r\n return http.put(`${API_URL}api/thongbao/changestatus`, obj);\r\n }\r\n delNotify(id) {\r\n return http.delete(`${API_URL}api/thongbao/${id}`);\r\n }\r\n getlstCauHoiThuongGap(props) {\r\n const { page, page_size, sort, search, filter } = props;\r\n let sortBy = '';\r\n let sortDesc = false;\r\n let title = search; // do api chua co tim kiem theo tu khoa nen de tam search se tim kiem theo username\r\n if (sort) {\r\n sortBy = Object.keys(sort)[0];\r\n sortDesc = sort[sortBy] === 'desc';\r\n }\r\n const params = Object.assign({}, {\r\n page: page,\r\n itemsPerPage: page_size,\r\n sortBy: sortBy,\r\n sortDesc: sortDesc,\r\n FilterText: title\r\n }, filter);\r\n return http.get(`api/chcauhoithuonggap/lists`, { params: params });\r\n }\r\n}\r\nconst tienichService = new TienIchService();\r\nconst Context = createContext();\r\nexport { Context, tienichService, TienIchService };","module.exports = __webpack_public_path__ + \"static/media/logo_home.917682a8.svg\";","module.exports = __webpack_public_path__ + \"static/media/bg-header_top.65f64064.png\";","module.exports = \"data:image/jpeg;base64,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\"","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Formik } from 'formik';\r\nimport { Image } from 'react-bootstrap';\r\nimport { string, object } from 'yup';\r\nimport { Card, Form, InputGroup, Row, Col } from 'react-bootstrap';\r\nimport PropTypes from 'prop-types';\r\nimport { LoadingComponent, Page } from 'shared/components';\r\nimport { authService } from 'shared/services';\r\nimport { OauthAction, TKTaiKhoanAction } from 'redux/actions';\r\nimport logoNavBar from 'assets/images/logo-new.png'\r\nimport '@iconify/iconify';\r\nimport '@fortawesome/fontawesome-free/css/all.css';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport 'styles/styles.scss';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { store } from 'redux/store';\r\nconst schema = object({\r\n username: string().trim().required('Cần phải nhập tên tài khoản'),\r\n password: string().trim().required('Cần phải nhập mật khẩu'),\r\n});\r\n\r\nclass Login extends React.Component {\r\n \r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n this.state = {\r\n data: {\r\n username: '',\r\n password: '',\r\n },\r\n loading: false,\r\n errorMessage: '',\r\n };\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleSubmit(data) {\r\n this.setState({ loading: true });\r\n authService.login(data).subscribe(() => {\r\n //đăng nhập thành công\r\n this.setState({ loading: false, errorMessage: '' });\r\n const { from } = this.props.location.state || { from: { pathname: '/' } };\r\n this.props.history.push(from);\r\n }, (err) => {\r\n debugger;\r\n if (err.status === 400) {\r\n this.setState({ loading: false, errorMessage: 'Tài khoản hoặc mật khẩu không chính xác, vui lòng kiểm tra lại' });\r\n } else {\r\n this.setState({ loading: false, errorMessage: 'Có lỗi xảy ra trong quá trình login' });\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n {/* /.login-logo */}\r\n \r\n \r\n \r\n
Hệ thống Quản lý hàng thật hàng giả
\r\n

\r\n Đăng nhập để bắt đầu phiên của bạn\r\n
\r\n {this.state.errorMessage}\r\n

\r\n\r\n \r\n {({\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n values,\r\n touched,\r\n errors,\r\n }) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.username}\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 {errors.password}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Đăng ký\r\n\r\n \r\n \r\n Quên mật khẩu\r\n\r\n \r\n \r\n
\r\n )}\r\n \r\n {/* /.login-card-body */}\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\nLogin.propTypes = {\r\n history: PropTypes.object,\r\n location: PropTypes.object,\r\n};\r\n\r\nconst LoginComponent = connect(null, { setToken: OauthAction.setToken })(Login);\r\nexport { LoginComponent };\r\n","export { LoginComponent as default,LoginComponent } from './LoginComponent';","export const API_URL = window.appCfg.API_URL;\r\nexport const SOCKET_URL = window.appCfg.SOCKET_URL;\r\nexport const ISPOST = window.appCfg.ISPOST; //Bài đăng\r\nexport const SSO = {\r\n WEB_ENDPOINT_SSO: \"http://localhost:3000/loginsso\",\r\n URL_REDIRECT_SSO: \"http://sso.dms.gov.vn/cas/login?service=http://localhost:3000/loginsso\",\r\n URL_LOGOUT_SSO: \"https://sso.dms.gov.vn/cas/logout?service=http://localhost:3000\",\r\n};\r\nexport const TCKFINDER_URL = \"http://web-hghn.vn/tckfinder/CkFinder.aspx?hog=http://qlhghn.vn/&container=anhdaidien-tindang-null&type=ckeditor\";\r\nexport const CAPTCHA_KEY = \"6LdaqKYZAAAAAFbV1USGapu5oq05oqX4KYwBZ7VW\";\r\nexport const CLIENT = {\r\n client_id: 'EPS',\r\n client_secret: 'b0udcdl8k80cqiyt63uq',\r\n};\r\nexport const AUTHORIZATION_BASE = 'Basic RVBTLklOVEVSTkFMOkl4ckFqRG9hMkZxRWxPN0loclNyVUpFTGhVY2tlUEVQVnBhZVBsU19YYXc=';\r\nexport const SIGN_KEY = window.appCfg.SIGN_KEY;\r\nexport const ZALO_OAID = window.appCfg.ZALO_OAID;\r\nexport const TYPE_TOAST = {\r\n SUCCESS: 'success',\r\n INFO: 'info',\r\n DANGER: 'danger',\r\n WARNING: 'warning',\r\n PRIMARY: 'primary',\r\n DARK: 'dark',\r\n}\r\n\r\nexport const ObjectPer = {\r\n TinNoiBat: \"001\",\r\n SanPham: \"002\",\r\n VuViecViPham: \"003\",\r\n CauHoi: \"004\",\r\n CauTraLoi: \"005\",\r\n DoanhNghiep: \"006\",\r\n ToChucCaNhanViPham: \"007\",\r\n HuongDanSuDung: \"008\",\r\n GioiThieuHeThong: \"009\",\r\n DieuKhoan: \"010\",\r\n TaiKhoan: \"011\",\r\n SuKien: \"012\",\r\n VuViecViPhamTheoDiaBan: \"013\",\r\n HoiDapTheoLinhVuc: \"014\",\r\n DiaBanXayRaViPham: \"015\",\r\n DoanhNghiepTichCuc: \"016\",\r\n SoLuotTruyCap: \"017\",\r\n SanPhamLienQuan: \"018\",\r\n SanPhamHayBiLamGia: \"019\",\r\n XuHuongTimKiem: \"020\",\r\n DoanhNghiepHoatDong: \"021\",\r\n SuKienLienQuan: \"022\",\r\n TinBaoToGiac: \"023\",\r\n DauHieuNhanBiet: \"024\",\r\n LienHeHoTro: \"025\",\r\n CauHoiThuongGap: \"026\",\r\n ThuongHieuNoiBat: \"027\",\r\n TuLieuHangGia: \"028\",\r\n LichSuQuetMa: \"029\",\r\n LichSuQuetTem: \"030\",\r\n LichSuQuetQR: \"031\",\r\n LoiMoiTheoDoi: \"032\",\r\n BaiDang: \"033\",\r\n BinhLuanBaiDang: \"034\",\r\n PhanHoiBinhLuan: \"035\",\r\n LuotThich: \"036\",\r\n LuotChiaSe: \"037\",\r\n LuotBaoCaoViPham: \"038\",\r\n ThongBao: \"039\",\r\n TinNhan: \"040\",\r\n TinTraLoi: \"041\",\r\n KetNoi: \"042\",\r\n TheoDoi: \"043\",\r\n TuLieuDongGop: \"044\",\r\n PhanHoiTinBao: \"045\",\r\n DuLieuDanhMucLayTuHeThongKhac: \"046\",\r\n DuLieuDanhMucDongBo: \"047\",\r\n DuLieuDanhMucHeThongTuQuanLy: \"048\",\r\n DuLieuLienKet: \"049\",\r\n ThongSoHeThong: \"050\",\r\n}\r\nexport const PermissonList = {\r\n NoPer: \"1\",\r\n OnlyPer: \"2\",\r\n AllPer: \"3\"\r\n}\r\nexport const PrivilegeList = {\r\n ViewList: \"01\",\r\n ViewDetail: \"02\",\r\n ViewStatisticDetail: \"03\",\r\n ViewStatisticOverview: \"04\",\r\n Export: \"05\",\r\n ViewGarena: \"06\",\r\n Add: \"07\",\r\n Edit: \"08\",\r\n Delete: \"09\",\r\n Approved: \"10\",\r\n Hide: \"11\",\r\n Close: \"12\",\r\n TurnOff: \"13\",\r\n Import: \"14\",\r\n}","import { loadable } from 'shared/utils';\r\nconst routesPublic = [\r\n {\r\n path: '/dang-ky-tai-khoan',\r\n component: loadable(() => import('../modules/Public/taikhoan'))\r\n },\r\n {\r\n path: '/active-account',\r\n component: loadable(() => import('../modules/Public/taikhoan'))\r\n },\r\n {\r\n path: '/to-chuc-ca-nhan-vi-pham',\r\n component: loadable(() => import('../modules/Public/tochuccanhanvipham'))\r\n },\r\n //{\r\n // path: '/tin-bao-to-cao',\r\n // component: loadable(() => import('../modules/Public/tinbaotocao/guitinbaotocao'))\r\n //},\r\n {\r\n path: '/tin-tuc',\r\n component: loadable(() => import('../modules/Public/tintuc'))\r\n },\r\n {\r\n path: '/dang-nhap',\r\n component: loadable(() => import('../modules/Public/login'))\r\n },\r\n {\r\n path: '/su-kien',\r\n component: loadable(() => import('../modules/Public/doanhnghiep'))\r\n },\r\n //{\r\n // path: '/profile-su-kien',\r\n // component: loadable(() => import('../modules/Public/sukien'))\r\n //},\r\n {\r\n path: '/doanh-nghiep',\r\n component: loadable(() => import('../modules/Public/doanhnghiep/doanhnghiephokinhdoanh'))\r\n },\r\n {\r\n path: '/doanh-nghiep-tich-cuc',\r\n component: loadable(() => import('../modules/Public/doanhnghiep/doanhnghieptichcuc'))\r\n },\r\n {\r\n path: '/lien-he-ho-tro',\r\n component: loadable(() => import('../modules/Public/tienich/lienhehotroComponent'))\r\n },\r\n {\r\n path: '/cau-hoi-thuong-gap',\r\n component: loadable(() => import('../modules/Public/tienich'))\r\n },\r\n //chi tiết câu hỏi\r\n {\r\n path: '/cau-hoi',\r\n component: loadable(() => import('../modules/Public/tienich'))\r\n },\r\n {\r\n path: '/gioi-thieu',\r\n component: loadable(() => import('../modules/Public/tienich/gioithieuComponent'))\r\n },\r\n {\r\n path: '/huong-dan-su-dung',\r\n component: loadable(() => import('../modules/Public/tienich/hdsdComponent'))\r\n },\r\n {\r\n path: '/hoi-dap',\r\n component: loadable(() => import('../modules/Public/hoidap/dshoidap'))\r\n },\r\n {\r\n path: '/nhan-dien-thuong-hieu',\r\n component: loadable(() => import('../modules/Public/nhandienthuonghieu'))\r\n },\r\n {\r\n path: '/tim-kiem',\r\n component: loadable(() => import('../modules/Public/timkiem'))\r\n },\r\n {\r\n path: '/san-pham-vi-pham',\r\n component: loadable(() => import('../modules/Public/nhandienthuonghieu/dssanphambaocaovipham'))\r\n },\r\n {\r\n path: '/san-pham',\r\n component: loadable(() => import('../modules/Public/sanpham'))\r\n },\r\n {\r\n path: '/dia-ban-xay-ra-vi-pham',\r\n component: loadable(() => import('../modules/Public/diabanxayravipham/dsdiabanxayravipham'))\r\n },\r\n {\r\n path: '/bao-cao',\r\n component: loadable(() => import('../modules/Public/baocao'))\r\n },\r\n {\r\n path: '/dieu-khoan-chinh-sach',\r\n component: loadable(() => import('../modules/Public/dieukhoanchinhsach'))\r\n },\r\n {\r\n path: '/phieu-khao-sat',\r\n component: loadable(() => import('../modules/Public/khaosat'))\r\n },\r\n {\r\n path: '/bai-dang',\r\n component: loadable(() => import('../modules/Public/baiviet'))\r\n },\r\n {\r\n path: '/tu-lieu-dong-gop',\r\n component: loadable(() => import('../modules/Public/tulieudonggop'))\r\n }, {\r\n path: '/ket-noi',\r\n component: loadable(() => import('../modules/Public/ketnoitaikhoan'))\r\n }, {\r\n path: '/theo-doi',\r\n component: loadable(() => import('../modules/Public/theodoitaikhoan'))\r\n },\r\n {\r\n path: '/san-pham-quan-tam',\r\n component: loadable(() => import('../modules/Public/nhandienthuonghieu/SanPhamQuanTamComponent'))\r\n },\r\n {\r\n path: '/san-pham-doanh-nghiep',\r\n component: loadable(() => import('../modules/Public/trangdoanhnghiep/sanpham'))\r\n },\r\n {\r\n path: '/thong-tin-doanh-nghiep',\r\n component: loadable(() => import('../modules/Public/trangdoanhnghiep/doanhnghiephokinhdoanh'))\r\n },\r\n {\r\n path: '/su-kien-doanh-nghiep',\r\n component: loadable(() => import('../modules/Public/trangdoanhnghiep/sukien'))\r\n },\r\n {\r\n path: '/thuong-hieu',\r\n component: loadable(() => import('../modules/Public/thuonghieu'))\r\n },\r\n {\r\n path: '/thuong-hieu-noi-bat',\r\n component: loadable(() => import('../modules/Public/thuonghieu/thuonghieunoibat'))\r\n },\r\n {\r\n path: '/phan-anh',\r\n component: loadable(() => import('../modules/Public/phananh'))\r\n },\r\n //lịch sử quét mã\r\n {\r\n path: '/lich-su-quet-ma-qr',\r\n component: loadable(() => import('../modules/Public/lichsuquetma'))\r\n },\r\n {\r\n path: '/lich-su-quet-ma-vach',\r\n component: loadable(() => import('../modules/Public/lichsuquetma'))\r\n },\r\n {\r\n path: '/lich-su-quet-tem-chong-gia',\r\n component: loadable(() => import('../modules/Public/lichsuquetma'))\r\n },\r\n //end lịch sử quét mã\r\n // {\r\n // path: '/active-account',\r\n // component: loadable(() => import('../modules/Public/taikhoan/activetaikhoan'))\r\n // },\r\n {\r\n path: '/van-ban-phap-luat',\r\n component: loadable(() => import('../modules/Public/vanbanphapluat'))\r\n },\r\n \r\n //mặc định để cuối cùng\r\n {\r\n path: '/',\r\n component: loadable(() => import('../modules/Public/home'))\r\n },\r\n\r\n\r\n];\r\nexport { routesPublic };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport logo_home from 'assets/images/logo_home.svg';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { withRouter, matchPath } from 'react-router';\r\nimport { API_URL } from 'app-setting';\r\n\r\nimport Sidebar from \"react-sidebar\";\r\n\r\nconst mql = window.matchMedia(`(min-width: 800px)`);\r\n\r\nclass NavBarPublicComponent extends React.Component {\r\n //static propTypes = {\r\n // history: PropTypes.object,\r\n // handleChange: PropTypes.func\r\n\r\n //}\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dataTreeMenus: [],\r\n dataTreeMenuExpand: [],\r\n valueSearch: '',\r\n onToogleNavbar: false,\r\n sidebarDocked: mql.matches,\r\n sidebarOpen: false\r\n };\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleKeyPress = this.handleKeyPress.bind(this);\r\n this.mediaQueryChanged = this.mediaQueryChanged.bind(this);\r\n this.onSetSidebarOpen = this.onSetSidebarOpen.bind(this);\r\n }\r\n componentWillMount() {\r\n mql.addListener(this.mediaQueryChanged);\r\n }\r\n\r\n componentDidMount() {\r\n this.getDataTreeMenus();\r\n }\r\n\r\n componentWillUnmount() {\r\n mql.removeListener(this.mediaQueryChanged);\r\n }\r\n\r\n onSetSidebarOpen(open) {\r\n this.setState({ sidebarOpen: open });\r\n }\r\n\r\n mediaQueryChanged() {\r\n this.setState({ sidebarDocked: mql.matches, sidebarOpen: false });\r\n }\r\n\r\n getDataTreeMenus() {\r\n fetch(`${API_URL}api/menu/treemenu`)\r\n .then(res => res.json())\r\n .then((data) => {\r\n let datamenu = data.filter(x => x.ischeck != 1);\r\n let datamenuexpan = data.filter(x => x.ischeck == 1);\r\n this.setState({ dataTreeMenus: datamenu, dataTreeMenuExpand: datamenuexpan });\r\n })\r\n .catch(console.log);\r\n }\r\n \r\n renderTreeMenus = () => {\r\n return this.state.dataTreeMenus.map(({ title, url, children }, i) => {\r\n return (\r\n
  • \r\n { this.setState({ sidebarOpen: !this.state.sidebarOpen }) }} className=\"nav-link text-uppercase font-Bold bg-transparent\" exact to={url}>{title}\r\n {(children && children.length && children.length > 0) ? (\r\n
    \r\n
      \r\n {children.map(({ title, url, children }, j) => {\r\n return (\r\n \r\n {(children && children.length && children.length > 0) ? (\r\n
    • \r\n

      {title}

      \r\n
        \r\n {children.map(({ title, url }, l) => {\r\n return (\r\n
      • { this.setState({ sidebarOpen: !this.state.sidebarOpen }) }}>{title}
      • \r\n );\r\n })}\r\n
      \r\n
    • \r\n )\r\n :\r\n
    • { this.setState({ sidebarOpen: !this.state.sidebarOpen }) }} className=\"font-12\" exact to={url}>{title}
    • \r\n }\r\n
      \r\n );\r\n })}\r\n
    \r\n
    \r\n ) : null}\r\n
  • \r\n );\r\n });\r\n }\r\n renderTreeMenuExpand = () => {\r\n if (this.state.dataTreeMenuExpand && this.state.dataTreeMenuExpand.length)\r\n return this.state.dataTreeMenuExpand.map((item, i) => {\r\n return (\r\n // eslint-disable-next-line react/jsx-key\r\n
  • {item.title}
  • \r\n );\r\n });\r\n else\r\n return '';\r\n }\r\n handleChange(event) {\r\n this.setState({ valueSearch: event.target.value });\r\n }\r\n handleKeyPress(target) {\r\n if (target.charCode == 13) {\r\n this.props.history.push('/tim-kiem?keysearch=' + this.state.valueSearch);\r\n }\r\n }\r\n\r\n renderNavbarMenuMobile = () => {\r\n return (\r\n
      \r\n
    • \r\n
      \r\n \r\n \r\n
      \r\n
    • \r\n
    • \r\n Trang chủ\r\n
    • \r\n {this.state.dataTreeMenus && this.state.dataTreeMenus.length &&\r\n this.renderTreeMenus()\r\n }\r\n
    \r\n )\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {/* navbar menu mobile */}\r\n \r\n
  • \r\n
    \r\n \r\n \r\n
    \r\n
  • \r\n
  • \r\n Trang chủ\r\n
  • \r\n {this.state.dataTreeMenus && this.state.dataTreeMenus.length &&\r\n this.renderTreeMenus()\r\n }\r\n \r\n }\r\n open={this.state.sidebarOpen}\r\n onSetOpen={this.onSetSidebarOpen}\r\n sidebarClassName=\"box-navbar-menu d-md-none d-block\"\r\n overlayClassName=\"box-navbar-menu-child d-md-none d-block\"\r\n rootClassName=\"d-md-none d-block\"\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 Trang chủ\r\n
    • \r\n {this.state.dataTreeMenus && this.state.dataTreeMenus.length &&\r\n this.renderTreeMenus()\r\n }\r\n
    \r\n
    */}\r\n {/* end navbar menu mobile */}\r\n
    \r\n );\r\n }\r\n}\r\n//const mapStateToProps = (state) => {\r\n// return {\r\n// //user: state.oauth\r\n// };\r\n//};\r\n//const NavBarPublicComponent = connect(mapStateToProps, {})(NavBarPublic);\r\nconst NavBarPublic = withRouter(NavBarPublicComponent)\r\nexport { NavBarPublic };","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Background from 'assets/images/bg-header_top.png';\r\nimport logoHeader from 'assets/images/logo-header.png';\r\nimport defaultImgUser from 'assets/images/user1-128x128.jpg';\r\nimport { authService } from 'shared/services';\r\nimport { store } from 'redux/store';\r\nimport { Image, Dropdown } from 'react-bootstrap';\r\nimport { Link, NavLink, withRouter } from 'react-router-dom';\r\nimport Icon from \"@mdi/react\";\r\nimport { mdiDotsHorizontal } from '@mdi/js';\r\nimport { API_URL } from 'app-setting';\r\nimport { tienichService, Context } from 'modules/Public/tienich/tienichService'\r\nimport NoImg from 'assets/images/unavatar.jpg';\r\nimport PropTypes from 'prop-types';\r\n\r\n\r\nclass SideBarPublicComponent extends React.Component {\r\n \r\n static contextType = Context;\r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n this.state = {\r\n valueSearch: \"\",\r\n inpPlacehoder: \"Nhập từ khóa tìm kiếm\",\r\n dataNotify: [],\r\n page_size_notify: 10,\r\n }\r\n this.handleKeyPress = this.handleKeyPress.bind(this)\r\n }\r\n\r\n formatDate = (strDate) => {\r\n const dateTimeFormat = new Intl.DateTimeFormat('vi', { year: 'numeric', month: 'numeric', day: '2-digit', weekday: 'long' });\r\n const [{ value: weekday }, , { value: day }, , { value: month }, , { value: year }] = dateTimeFormat.formatToParts(strDate);\r\n\r\n return `${weekday}, ngày ${day}/${month}/${year}`;\r\n }\r\n\r\n logout() {\r\n this.props.history.push('/dang-xuat');\r\n }\r\n\r\n viewPersonalPage() {\r\n this.props.history.push('/bai-dang');\r\n }\r\n\r\n viewPersonalInfo() {\r\n if (this.oauth.UnitCode.includes('03'))\r\n this.props.history.push('/thong-tin-doanh-nghiep/' + this.oauth.username);\r\n else\r\n this.props.history.push('/profile/' + this.oauth.username);\r\n }\r\n handleKeyPress(target) {\r\n if (target.charCode == 13) {\r\n this.props.history.push('/tim-kiem/q=' + this.state.valueSearch);\r\n }\r\n }\r\n componentDidMount() {\r\n if (this.oauth.idTaiKhoan && this.oauth.idTaiKhoan > 0) {\r\n this.fetchdata(this.state.page_size_notify, \"\");\r\n }\r\n }\r\n fetchdata(page_size, strNotify) {\r\n if (this.oauth.access_token) {\r\n tienichService.getDataNotify(this.oauth.idTaiKhoan, page_size, strNotify).subscribe(res => {\r\n this.setState({\r\n dataNotify: res.data,\r\n });\r\n });\r\n }\r\n }\r\n formatDateTime(strValue) {\r\n if (strValue == null) {\r\n return '';\r\n }\r\n else {\r\n var d = new Date(strValue);\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n var output = day + '/' +\r\n (('' + month).length < 2 ? '0' : '') + month + '/' +\r\n d.getFullYear();\r\n return output;\r\n }\r\n }\r\n updateNotify(id, status) {\r\n if (this.oauth.idTaiKhoan && this.oauth.idTaiKhoan > 0) {\r\n let objNotify = { id: id, trangthai: status };\r\n tienichService.updateNotify(objNotify, id).subscribe(() => {\r\n // document.getElementById(\"dropdown-notify\").style.display = \"hidden\";\r\n this.fetchdata(this.state.page_size_notify, \"\");\r\n });\r\n }\r\n\r\n }\r\n ViewMore() {\r\n this.setState({ page_size_notify: 60 })\r\n this.fetchdata(60, \"\");\r\n }\r\n SearchNotify() {\r\n\r\n let strNotify = document.getElementById(\"search-input-notify\").value;\r\n this.fetchdata(this.state.page_size_notify, strNotify);\r\n }\r\n async delNotify(id) {\r\n if (await this.context.beh.confirm('Bạn có muốn gỡ thông báo này?')) {\r\n tienichService.delNotify(id).subscribe(() => {\r\n this.fetchdata(this.state.page_size_notify, \"\");\r\n });\r\n }\r\n }\r\n async TatThongBao(id) {\r\n if (await this.context.beh.confirm('Bạn có muốn tắt thông báo này?')) {\r\n if (this.oauth.idTaiKhoan && this.oauth.idTaiKhoan > 0) {\r\n let objNotify = { id: id, trangthai: 3 };\r\n tienichService.updateNotify(objNotify, id).subscribe(() => {\r\n this.fetchdata(this.state.page_size_notify, \"\");\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n renderLoginSignup = () => {\r\n return (\r\n
    \r\n\r\n
    \r\n this.setState({ valueSearch: e.target.value })} className=\"form-control \" type=\"text\" aria-label=\"Search\" value={this.state.inpSearch} placeholder={this.state.inpPlacehoder} style={{\r\n borderColor: \"#b3b3b3\",\r\n paddingRight: 32,\r\n height: 35,\r\n backgroundColor: \"transparent\",\r\n borderRadius: 0,\r\n border: 0,\r\n borderBottom: \"1px solid #ddd\",\r\n color: \"#fff\"\r\n }}\r\n onKeyPress={this.handleKeyPress}\r\n />\r\n \r\n
    \r\n
    \r\n Đăng ký\r\n

    |

    \r\n Đăng nhập\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n renderUser = () => {\r\n const CustomToggle = React.forwardRef(({ children, onClick }, ref) => (\r\n {\r\n e.preventDefault();\r\n onClick(e);\r\n }}\r\n >\r\n {children}\r\n \r\n \r\n ));\r\n return (\r\n (this.oauth &&\r\n
    \r\n
      \r\n
    • \r\n
      \r\n this.setState({ valueSearch: e.target.value })} className=\"form-control \" type=\"text\" aria-label=\"Search\" value={this.state.inpSearch} placeholder={this.state.inpPlacehoder} style={{\r\n borderColor: \"#b3b3b3\",\r\n paddingRight: 32,\r\n height: 35,\r\n backgroundColor: \"transparent\",\r\n borderRadius: 0,\r\n border: 0,\r\n borderBottom: \"1px solid #ddd\",\r\n color: \"#fff\"\r\n }}\r\n onKeyPress={this.handleKeyPress}\r\n />\r\n \r\n
      \r\n
    • \r\n \r\n \r\n \r\n {this.state?.dataNotify.filter(x => x.trangthai == 1).length > 0 ?\r\n {this.state.dataNotify.filter(x => x.trangthai == 1).length} \r\n : \"\"}\r\n \r\n\r\n \r\n\r\n
      \r\n
      \r\n
      \r\n

      \r\n \r\n this.SearchNotify()} className=\"text-link font-14 color-gray btn-search\" >\r\n \r\n \r\n {/* this.SearchNotify()} className=\"text-link font-14 color-gray btn-search\">\r\n \r\n */}\r\n
      \r\n
      \r\n
      \r\n\r\n {/* item menu navbar */}\r\n
      \r\n {this.state?.dataNotify && this.state?.dataNotify.length > 0 ? this.state?.dataNotify.map((dataItem, index) => {\r\n let title = \"\";\r\n if (dataItem.noidung.indexOf(\"\") != -1 && dataItem.noidung.indexOf(\"\") != -1) {\r\n title = dataItem.noidung.replace(\"\", \"\").replace(\"\", \"\");\r\n }\r\n return (\r\n\r\n
      \r\n
      \r\n {\r\n dataItem.anhdaidien ?\r\n //\"\"\r\n \"\"\r\n : \"\"\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n this.updateNotify(dataItem.id, 2)} className=\"m-0 font-12 font-Regular limited-line-3 color-black\" style={{ whiteSpace: \"pre-line\", paddingLeft: '0px' }} >\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 this.updateNotify(dataItem.id, 2)} className=\"m-0 font-12 font-Regular limited-line-3 color-black\" style={{ whiteSpace: \"pre-line\", paddingLeft: '0px' }} >\r\n Đánh dấu đã đọc\r\n \r\n\r\n
      \r\n
      \r\n
      \r\n this.delNotify(dataItem.id)} eventKey=\"2\" className=\"p-2 m-0 font-12 font-Regular limited-line-3 color-black\" style={{ whiteSpace: \"pre-line\", paddingLeft: '0px' }}>Gỡ thông báo\r\n\r\n this.TatThongBao(dataItem.id)} eventKey=\"3\" className=\"p-2 m-0 font-12 font-Regular limited-line-3 color-black\" style={{ whiteSpace: \"pre-line\", paddingLeft: '0px' }}>Tắt thông báo \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      {this.formatDateTime(dataItem.ngaytao)}

      \r\n
      \r\n
      \r\n\r\n
      \r\n )\r\n })\r\n : (\r\n

      \r\n \"Không có thông báo nào\"\r\n

      \r\n\r\n )\r\n\r\n }\r\n
      \r\n\r\n {/* end item menu navbar */}\r\n {this.state.page_size_notify < 20 && this.state.dataNotify.length > 0 ? (\r\n this.ViewMore()} className=\"m-0 font-12 font-Regular limited-line-3 color-black\" style={{ whiteSpace: \"pre-line\", textAlign: 'center' }} >\r\n Xem tất cả thông báo\r\n \r\n ) : \"\"}\r\n\r\n {/* Xem tất cả thông báo */}\r\n\r\n
      \r\n
      \r\n\r\n \r\n \"User\r\n \r\n {this.props.oauth.fullName}\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 render() {\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {this.formatDate(Date.now())}

    \r\n\r\n {this.oauth.access_token != null ? this.renderUser() : this.renderLoginSignup()}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \"logo_header\"\r\n \r\n Tổng cục\r\n Quản lý thị trường\r\n
    \r\n
    \r\n

    Hệ thống quản lý về hàng giả, hàng nhái, buôn lậu,\r\n gian lận thương mại và vi phạm sở hữu trí tuệ

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n oauth: state.oauth,\r\n };\r\n};\r\nconst SideBarPublic = connect(mapStateToProps, null)(SideBarPublicComponent);\r\nexport default withRouter(SideBarPublic);\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Form, Col, Button, Modal } from 'react-bootstrap';\r\nimport { Formik } from 'formik';\r\nimport { string, object } from 'yup';\r\nimport { LoadingComponent, FormSelect } from 'shared/components';\r\nimport { tienichService, Context } from './tienichService';\r\nimport StarRatingComponent from 'react-star-rating-component';\r\nimport { store } from 'redux/store';\r\nconst schema = object({\r\n\r\n});\r\nconst DanhGiaDefault = {\r\n title: '',\r\n mota: '',\r\n\r\n};\r\nclass DanhGiaHeThongFormComponent extends Component {\r\n static contextType = Context;\r\n static propTypes = {\r\n onClose: PropTypes.func\r\n };\r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n this.state = {\r\n data: DanhGiaDefault,\r\n listGroup: [],\r\n editMode: false,\r\n loading: false,\r\n isShow: false,\r\n action: 'new',\r\n id: null,\r\n shownotify: false,\r\n datatieuchidanhgia: [],\r\n datarating: [],\r\n messnotify: \"\",\r\n };\r\n this.subscriptions = {};\r\n }\r\n componentDidMount() {\r\n this.subscriptions['sendToForm'] = tienichService.sendToForm.subscribe(res => {\r\n \r\n tienichService.getdanhgiahethong().subscribe(res => {\r\n \r\n if (res.data.length > 0) {\r\n this.setState({ shownotify: true, messnotify: \"Bạn đã gửi đánh giá hệ thống rồi\" });\r\n } else {\r\n this.setState({ editMode: true, isShow: true, id: null });\r\n this.getchitieudanhgiahethong();\r\n }\r\n\r\n });\r\n });\r\n \r\n \r\n }\r\n getchitieudanhgiahethong() {\r\n tienichService.getchitieudanhgiahethong().subscribe(res => {\r\n\r\n this.setState({ datatieuchidanhgia: res.data });\r\n //tạo mảng defaul\r\n let datarating = [];\r\n for (let i = 0; i < res.data.length; i++) {\r\n let temp = { iD_DMCHITIEUDANHGIA: this.state.datatieuchidanhgia[i].id, danhgia: 0 };\r\n datarating.push(temp);\r\n }\r\n this.setState({ datarating: datarating });\r\n });\r\n }\r\n componentWillUnmount() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n }\r\n onSubmit() {\r\n this.setState({\r\n loading: true\r\n });\r\n let data = { lstdanhgiachitiet: this.state.datarating };\r\n\r\n tienichService.createdanhgiahethong(data).subscribe(() => {\r\n this.Close();\r\n this.setState({ shownotify: true, messnotify:\"Gửi đánh giá hệ thống thành công\" });\r\n this.setState({\r\n loading: false\r\n });\r\n },\r\n (err) => {\r\n\r\n this.setState({\r\n loading: false\r\n });\r\n \r\n });\r\n\r\n }\r\n\r\n handleClose(isRefesh) {\r\n this.setState({ isShow: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(isRefesh);\r\n }\r\n\r\n }\r\n onKeyPress(ev) {\r\n const keyCode = ev.keyCode || ev.which;\r\n if (keyCode === 13) {\r\n ev.preventDefault();\r\n return false;\r\n }\r\n }\r\n computedTitle() {\r\n return 'Gửi đánh giá hệ thống';\r\n }\r\n Close() {\r\n this.setState({ isShow: false });\r\n }\r\n Closenotify() {\r\n this.setState({ shownotify: false });\r\n }\r\n\r\n onStarClick(nextValue, prevValue, name) {\r\n let lstdanhgia = [];//this.state.datarating.map(a => (JSON.parse(JSON.stringify({ ...a }))));\r\n\r\n for (let i = 0; i < this.state.datarating.length; i++) {\r\n let strname = \"danhgia\" + this.state.datarating[i].iD_DMCHITIEUDANHGIA;\r\n if (strname == name) {\r\n let itemtemp = { iD_DMCHITIEUDANHGIA: this.state.datarating[i].iD_DMCHITIEUDANHGIA, danhgia: nextValue };\r\n lstdanhgia.push(itemtemp);\r\n }\r\n else {\r\n lstdanhgia.push(this.state.datarating[i]);\r\n }\r\n }\r\n this.setState({ datarating: lstdanhgia });\r\n }\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n {\r\n\r\n this.onSubmit(values);\r\n }}\r\n enableReinitialize={true}\r\n initialValues={this.state.dataBaoCao}\r\n >\r\n {({\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n values,\r\n touched,\r\n errors,\r\n }) => (\r\n
    \r\n \r\n
    Đánh giá hệ thống
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n {this.state.datatieuchidanhgia.length > 0 ? this.state.datatieuchidanhgia.map((values, index) => (\r\n\r\n
    \r\n

    {values.title}:

    \r\n
    \r\n {\r\n return (\r\n \r\n \r\n \r\n );\r\n }}\r\n renderStarIconHalf={() => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }} />\r\n {/*

       {this.state.data.diemsudunglai}  

    */}\r\n
    \r\n
    \r\n )) : \"\"}\r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Thông báo
    \r\n
    \r\n

    {this.state.messnotify}

    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n );\r\n }\r\n}\r\nexport { DanhGiaHeThongFormComponent };\r\n","import { BaseService } from 'shared/services';\r\nimport { API_URL } from 'app-setting';\r\nimport { http } from 'shared/utils';\r\nimport { createContext } from 'react';\r\nimport { Subject } from 'rxjs';\r\nclass TruyCapService extends BaseService {\r\n \r\n LuotTruyCap() {\r\n return http.get(`${API_URL}api/tkluottruycap/gettruycap`);\r\n }\r\n TangLuotTruyCap() {\r\n return http.put(`${API_URL}api/tkluottruycap/tangluottruycap`);\r\n }\r\n}\r\nconst truycapService = new TruyCapService();\r\nconst Context = createContext();\r\nexport { Context, truycapService, TruyCapService };","import React from 'react';\r\nimport logoHeader from 'assets/images/logo-header.png'\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { DanhGiaHeThongFormComponent } from \"modules/Public/tienich/DanhGiaHeThongFormComponent\";\r\nimport { tienichService } from \"modules/Public/tienich/tienichService\";\r\nimport { truycapService } from \"modules/Public/demluottruycap/TruyCapService\";\r\nimport { store } from 'redux/store';\r\nimport { withRouter } from 'react-router';\r\nclass FooterPublicComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.oauth = store.getState().oauth;\r\n this.state = {\r\n luottruycap: 0,\r\n thangnhieutruycap: '',\r\n thangittruycap: '',\r\n truycapthangnay: 0,\r\n luottruycapthang: 0,\r\n luottruycapmax: 0,\r\n luottruycapmin: 0,\r\n flat1: false,\r\n };\r\n }\r\n componentDidMount() {\r\n\r\n var today = new Date();\r\n var sethours = today.setHours(6);\r\n if (sessionStorage.getItem('setLuotTruyCap') == 1) {\r\n var checktime = new Date();\r\n checktime = checktime.setHours(0);\r\n if (checktime == localStorage.getItem('ThoiGianTruyCap')) {\r\n truycapService.TangLuotTruyCap().subscribe(res => {\r\n });\r\n localStorage.setItem('ThoiGianTruyCap', sethours)\r\n }\r\n }\r\n else {\r\n sessionStorage.setItem('setLuotTruyCap', '1');\r\n localStorage.setItem('ThoiGianTruyCap', sethours)\r\n truycapService.TangLuotTruyCap().subscribe(res => {\r\n });\r\n\r\n }\r\n truycapService.LuotTruyCap().subscribe(res => {\r\n var d = new Date();\r\n var month = d.getMonth();\r\n var thang = d.getMonth() + 1;\r\n var nam = d.getFullYear();\r\n var Luottruycap = res.data.reduce(function (prev, cur) {\r\n return prev + cur.luottruycap;\r\n }, 0);\r\n var Luottruycapmax = Math.max.apply(Math, res.data.map(function (o) { return o.luottruycap; }));\r\n var Thangnhieutruycaps = res.data.filter(x => x.luottruycap == Luottruycapmax);\r\n if (Thangnhieutruycaps.length > 0) {\r\n var Thangnhieutruycap = Thangnhieutruycaps[0].thang < 10 ? '0' + Thangnhieutruycaps[0].thang + '/' + Thangnhieutruycaps[0].nam : Thangnhieutruycaps[0].thang + '/' + Thangnhieutruycaps[0].nam;\r\n }\r\n else {\r\n var Thangnhieutruycap = thang < 10 ? '0' + thang + '/' + nam : thang + '/' + nam;\r\n }\r\n var Luottruycapmin = 0;\r\n if (month < 10) {\r\n var Thangittruycap = '0' + month + '/' + nam;\r\n }\r\n else {\r\n var Thangittruycap = month + '/' + nam;\r\n }\r\n\r\n if (res.data.filter(x => x.thang == month).length > 0) {\r\n var Luottruycapmin = Math.min.apply(Math, res.data.map(function (o) { return o.luottruycap; }))\r\n var Thangittruycaps = res.data.filter(x => x.luottruycap == Luottruycapmin);\r\n if (Thangittruycaps.length > 0) {\r\n var Thangittruycap = Thangittruycaps[0].thang < 10 ? '0' + Thangittruycaps[0].thang + '/' + Thangittruycaps[0].nam : Thangittruycaps[0].thang + '/' + Thangittruycaps[0].nam;\r\n }\r\n else {\r\n Thangittruycap = thang < 10 ? '0' + thang + '/' + nam : thang + '/' + nam;\r\n }\r\n }\r\n\r\n var Truycapthangnay = thang;\r\n var Luottruycapthangs = res.data.filter(x => x.thang == thang);\r\n var Luottruycapthang = Luottruycapthangs[0].luottruycap;\r\n this.setState({\r\n luottruycap: Luottruycap,\r\n thangnhieutruycap: Thangnhieutruycap,\r\n thangittruycap: Thangittruycap,\r\n truycapthangnay: Truycapthangnay,\r\n luottruycapthang: Luottruycapthang,\r\n luottruycapmax: Luottruycapmax,\r\n luottruycapmin: Luottruycapmin,\r\n })\r\n });\r\n }\r\n overItem = (e) => {\r\n switch (e) {\r\n case 1:\r\n this.setState({ flat1: true });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n leaveItem = (e) => {\r\n switch (e) {\r\n case 1:\r\n this.setState({ flat1: false });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n adddanhgia() {\r\n if (this.oauth.access_token != null) {\r\n tienichService.sendToForm.next({\r\n id: null,\r\n action: 'new',\r\n isShow: true\r\n });\r\n } else {\r\n this.props.history.push({ pathname: '/dang-nhap' });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \"logo_header\"\r\n \r\n

    TỔNG CỤC
    QUẢN LÝ THỊ TRƯỜNG

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

    Hệ thống quản lý về
    \r\n hàng giả, hàng nhái, buôn lậu,
    \r\n gian lận thương mại và
    \r\n vi phạm sở hữu trí tuệ

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

    Hệ thống quản lý về\r\n hàng giả, hàng nhái, buôn lậu,\r\n gian lận thương mại và\r\n vi phạm sở hữu trí tuệ

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    this.overItem(1)} onMouseOut={() => this.leaveItem(1)} >\r\n

    Lượt truy cập: {this.state.luottruycap}

    \r\n\r\n {(this.state.flat1 &&\r\n
    \r\n
    \r\n

    Tổng số lượt truy cập: {this.state.luottruycap}

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

    Số lượt truy cập trong tháng {this.state.truycapthangnay}: {this.state.luottruycapthang}

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

    Thời gian truy cập nhiều nhất tháng {this.state.thangnhieutruycap}: {this.state.luottruycapmax}

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

    Thời gian Truy cập ít nhất tháng {this.state.thangittruycap}: {this.state.luottruycapmin}

    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n

      TIỆN ÍCH

      \r\n
    • \r\n
    • .: Giới thiệu hệ thống
    • \r\n
    • .: Hướng dẫn sử dụng
    • \r\n
    • .: Câu hỏi thường gặp
    • \r\n
    • .: Liên hệ và hỗ trợ
    • \r\n {\r\n this.oauth.access_token ?\r\n
    • .: Sản phẩm quan tâm
    • \r\n : \"\"\r\n }\r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n

      \r\n

    • \r\n
    • .: Doanh nghiệp/ Hộ kinh doanh\r\n
    • \r\n {\r\n this.oauth.access_token ?\r\n
    • .: Đánh giá hệ thống
    • \r\n : \"\"\r\n }\r\n
    • .: Khảo sát
    • \r\n
    • .: Điều khoản & Chính sách
    • \r\n {\r\n (this.oauth.access_token && this.oauth.unitId.includes('5')) ?\r\n
    • .: Báo cáo
    • \r\n : \"\"\r\n }\r\n {\r\n this.oauth.access_token ?\r\n
    • .: Tư liệu đóng góp
    • \r\n : \"\"\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n );\r\n\r\n\r\n }\r\n}\r\nconst FooterPublic = withRouter(FooterPublicComponent)\r\nexport default FooterPublic;","import React from 'react';\r\nimport logoHeader from 'assets/images/logo-header.png'\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { tienichService } from \"modules/Public/tienich/tienichService\";\r\nimport { withRouter } from 'react-router';\r\nclass NotifiFooterComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n noiDungTB: '',\r\n };\r\n }\r\n componentDidMount() {\r\n tienichService.getTienIchByType(7).subscribe(res => {\r\n this.setState({ noiDungTB: res.noidung.replace(/(<([^>]+)>)/ig, '') });\r\n })\r\n }\r\n render() {\r\n return (\r\n
    \r\n );\r\n\r\n\r\n }\r\n}\r\nconst NotifiFooter = withRouter(NotifiFooterComponent)\r\nexport default NotifiFooter;","import React from 'react';\r\nimport { Switch } from 'react-router-dom';\r\nimport { RouteWithSubRoutes } from 'shared/components';\r\nimport { routesPublic } from './PublicRoutes';\r\nimport { NavBarPublic } from './NavBarPublic';\r\nimport SideBarPublic from './SideBarPublic';\r\nimport FooterPublic from './FooterPublic';\r\nimport NotifiFooter from './NotifiFooter';\r\nimport \"jquery/src/jquery\";\r\nimport { BehaviorsContext } from 'shared/services';\r\nimport { tienichService, Context } from 'modules/Public/tienich/tienichService';\r\n//export default function AuthLayout() {\r\nclass PublicLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n toggle: false,\r\n };\r\n this.handlerClickToggle = this.handlerClickToggle.bind(this);\r\n }\r\n handlerClickToggle() {\r\n this.setState({\r\n toggle: !this.state.toggle\r\n });\r\n }\r\n render() {\r\n return (\r\n \r\n {\r\n ({ beh }) => (\r\n \r\n\r\n
    \r\n \r\n \r\n \r\n {routesPublic.map((route, i) => (\r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n )\r\n }\r\n
    \r\n\r\n )\r\n }\r\n}\r\nexport { PublicLayout };\r\n\r\n\r\n\r\n","import React from 'react';\r\nclass OauthCallback extends React.Component {\r\n \r\n \r\n render() {\r\n return (\r\n

    OauthCallback Code

    \r\n );\r\n }\r\n}\r\n\r\nexport default OauthCallback;","import React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { authService } from 'shared/services';\r\nclass LogoutComponent extends React.Component {\r\n\r\n renderRedirect() {\r\n // call service logout tại đây\r\n // userService.logout();\r\n return ;\r\n }\r\n componentDidMount() {\r\n authService.logout();\r\n }\r\n render() {\r\n return (\r\n
    \r\n {this.renderRedirect()}\r\n
    \r\n );\r\n }\r\n}\r\nexport { LogoutComponent };","\r\nexport const tinNhanSchema = {\r\n version: 0,\r\n type: 'object',\r\n properties: {\r\n \"ID\": {\r\n type: 'string',\r\n primary: true\r\n },\r\n \"ID_HOITHOAI\": {\r\n type: 'string'\r\n },\r\n \"NOIDUNG\": {\r\n type: 'string'\r\n },\r\n \"NGAYTAO_UTC\": {\r\n type: 'string'\r\n },\r\n \"NGAYCHINHSUA_UTC\":{\r\n type:'string'\r\n },\r\n \"ID_NGUOIGUI\": {\r\n type: 'number'\r\n },\r\n \"DELETED\":{\r\n type: 'boolean'\r\n },\r\n \"LUOTTHICH\": {\r\n type: 'number',\r\n default: 0\r\n },\r\n \"LUOTSHARE\": {\r\n type: 'number',\r\n default: 0\r\n },\r\n \"TRANGTHAI\": {\r\n type: 'number',\r\n default: 0\r\n }\r\n },\r\n indexes: ['NOIDUNG','NGAYCHINHSUA_UTC','NGAYTAO_UTC'],\r\n required: ['ID', 'NOIDUNG']\r\n};\r\n\r\nexport const graphQLGenerationTinNhanInput = {\r\n message: {\r\n schema: tinNhanSchema,\r\n feedKeys: [\r\n 'ID',\r\n 'NGAYCHINHSUA_UTC'\r\n ],\r\n deletedFlag: 'DELETED'\r\n }\r\n};\r\n","\r\nexport const hoiThoaiSchema = {\r\n version: 0,\r\n type: 'object',\r\n properties: {\r\n \r\n \"ID\": {\r\n \"type\": 'string',\r\n \"primary\": true\r\n },\r\n \"TIEUDE\": {\r\n \"type\": 'string'\r\n },\r\n \"ID_NGUOITAO\": {\r\n \"type\": 'number'\r\n },\r\n \"LA_NHOM\": {\r\n \"type\": 'boolean'\r\n },\r\n \"NGAYTAO_UTC\": {\r\n \"type\": 'string'\r\n },\r\n \"NGAYCHINHSUA_UTC\":{\r\n \"type\":'string'\r\n },\r\n \"DELETED\":{\r\n \"type\": 'boolean'\r\n },\r\n \"ANHDAIDIEN\": {\r\n \"type\": [\"string\", 'null']\r\n },\r\n \"SL_TINNHAN_CHUADOC\": {\r\n \"type\": [\"number\", 'null']\r\n },\r\n \"DS_THANHVIEN\":{\r\n \"type\": \"array\",\r\n \"uniqueItems\": true,\r\n \"items\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"ID_TAIKHOAN\": {\r\n \"type\": \"number\"\r\n },\r\n \"TENDANGNHAP\":{\r\n \"type\": \"string\"\r\n },\r\n \"ANHDAIDIEN\": {\r\n \"type\": [\"string\", 'null']\r\n },\r\n \"LANDOC_CUOICUNG_UTC\":{\r\n \"type\":'string'\r\n },\r\n \"SL_TINNHAN_CHUADOC\":{\r\n \"type\": [\"number\", 'null']\r\n }\r\n }\r\n }\r\n },\r\n \"TINNHAN_CUOICUNG\": {\r\n \"type\": [\"object\",'null'],\r\n \"properties\": {\r\n \r\n \"NOIDUNG\":{\r\n type:'string',\r\n },\r\n \"NGAYTAO_UTC\":{\r\n type:'string',\r\n },\r\n \"NGAYCHINHSUA_UTC\":{\r\n type:'string',\r\n },\r\n //\"nGAYXOA\":{\r\n // type:[\"string\",'null'],\r\n //},\r\n \"DELETED\":{\r\n type:'boolean',\r\n },\r\n \"ID_NGUOIGUI\":{\r\n type:'number',\r\n },\r\n \r\n }\r\n }\r\n },\r\n indexes: ['NGAYCHINHSUA_UTC', 'NGAYTAO_UTC'],\r\n required: ['ID']\r\n};\r\n\r\nexport const graphQLGenerationHoiThoaiInput = {\r\n message: {\r\n schema: hoiThoaiSchema,\r\n feedKeys: [\r\n 'ID',\r\n 'NGAYCHINHSUA_UTC'\r\n ],\r\n deletedFlag: 'DELETED'\r\n }\r\n};\r\n","import { createRxDatabase, addRxPlugin } from 'rxdb';\r\nimport { SOCKET_URL } from 'app-setting';\r\nimport {\r\n RxDBReplicationGraphQLPlugin,\r\n\r\n} from 'rxdb/plugins/replication-graphql';\r\nimport { tinNhanSchema } from '../chat/tinNhanSchema'\r\nimport {\r\n SubscriptionClient\r\n} from 'subscriptions-transport-ws';\r\nimport { hoiThoaiSchema } from './hoiThoaiSchema';\r\naddRxPlugin(require('pouchdb-adapter-idb'));\r\naddRxPlugin(RxDBReplicationGraphQLPlugin);\r\nconst batchSize = 20\r\nconst pullQueryBuilder = (data)=>{\r\n return (doc) => {;\r\n if (!doc) {\r\n // the first pull does not have a start-document\r\n doc = {\r\n ID: '',\r\n NGAYTAO_UTC: '',\r\n ID_HOITHOAI: data.ID_HOITHOAI,\r\n };\r\n }\r\n \r\n const query = `{\r\n feedForRxDBReplicationMessage(lastId: \"${doc.ID}\" ,min_updated_at: \"${doc.NGAYTAO_UTC}\", limit: 20, id_hoithoai: \"${doc.ID_HOITHOAI}\",paging:${data.Paging}) {\r\n ID\r\n NOIDUNG\r\n NGAYTAO_UTC\r\n NGAYCHINHSUA_UTC\r\n DELETED\r\n ID_HOITHOAI\r\n ID_NGUOIGUI\r\n }\r\n }`;\r\n \r\n return {\r\n query,\r\n \r\n variables: {}\r\n };\r\n };\r\n} \r\nconst pushQueryBuilderCustom = (doc) => {\r\n \r\n const query = `\r\n mutation SetMessage($message: TNTINNHANDetailDtoInput!){\r\n setMessage(message:$message){\r\n ID\r\n NOIDUNG \r\n DELETED\r\n }\r\n }\r\n `;\r\n const variables = {\r\n message: doc\r\n };\r\n return {\r\n query,\r\n variables\r\n };\r\n};\r\nconst endpointUrl = 'wss://' + SOCKET_URL;\r\nconst wsClient = new SubscriptionClient(endpointUrl, {\r\n reconnect: true,\r\n timeout: 1000 * 60,\r\n onConnect: () => {\r\n console.log('SubscriptionClient.onConnect()');\r\n },\r\n connectionCallback: () => {\r\n console.log('SubscriptionClient.connectionCallback:');\r\n },\r\n reconnectionAttempts: 10000,\r\n inactivityTimeout: 10 * 1000,\r\n lazy: true\r\n});\r\n\r\nconst subcriptionTinNhan = `\r\n subscription onListenMessage($id_hoithoai: Uuid!){ \r\n onListenMessage(id_hoithoai: $id_hoithoai)\r\n {\r\n NOIDUNG\r\n } \r\n }\r\n \r\n `\r\n\r\nlet dbPromise = null;\r\nconst queryHistory = (data) => {\r\n return `{\r\n feedForRxDBReplicationMessage(lastId: \"${data.lastID}\" ,min_updated_at: \"${data.NgayTao}\", limit: 20, id_hoithoai: \"${data.ID_HOITHOAI}\",paging:${data.Paging}) {\r\n ID\r\n NOIDUNG\r\n NGAYTAO_UTC\r\n NGAYCHINHSUA_UTC\r\n DELETED\r\n ID_HOITHOAI\r\n ID_NGUOIGUI\r\n }\r\n }`;\r\n}\r\nconst _create = async () => {\r\n \r\n const db = await createRxDatabase({\r\n name: 'chatdb', // <- name\r\n adapter: 'idb', // <- storage-adapter\r\n password: 'myPassword', // <- password (optional)\r\n //multiInstance: true, // <- multiInstance (optional, default: true)\r\n //eventReduce: false // <- eventReduce (optional, default: true)\r\n \r\n \r\n });\r\n\r\n //const collection = await db.collection({\r\n // name: 'tinnhan',\r\n // schema: tinNhanSchema\r\n //});\r\n //const collection2 = await db.collection({\r\n // name: 'hoithoai',\r\n // schema: hoiThoaiSchema\r\n //});\r\n \r\n \r\n return db\r\n}\r\n\r\nexport const get = () => {\r\n if (!dbPromise)\r\n dbPromise = _create();\r\n return dbPromise;\r\n}\r\n export { pullQueryBuilder, pushQueryBuilderCustom, wsClient, subcriptionTinNhan, queryHistory }","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { baseService } from '../../../../shared/services'\r\nimport { Row, Form, Col, Button, Breadcrumb } from 'react-bootstrap';\r\nimport * as DatabaseChat from '../../../../database/chat';\r\nimport { API_URL } from 'app-setting';\r\nimport { wsClient, subcriptionTinNhan, queryHistory } from '../../../../database/chat';\r\nimport { Formik } from 'formik';\r\nimport { string, object } from 'yup';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { store } from 'redux/store';\r\nimport { connect } from 'react-redux';\r\nimport imgDefault from 'assets/images/img-user-default.png';\r\nimport { http } from 'shared/utils';\r\nimport InfiniteScroll from 'react-infinite-scroller'\r\nimport ReactDOM from 'react-dom';\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { tinNhanSchema } from '../../../../database/chat/tinNhanSchema';\r\nconst schema = object({\r\n //NOIDUNG: string().trim().required(''),\r\n});\r\nclass ChatBoxComponent extends Component {\r\n static propTypes = {\r\n ID_HOITHOAI: PropTypes.string,\r\n onScrollBottom: PropTypes.bool\r\n };\r\n static defaultProps = {\r\n ID_HOITHOAI: '',\r\n onScrollBottom:true\r\n }\r\n constructor(props) {\r\n super(props);\r\n DatabaseChat.get().then(res => {\r\n this.db = res;\r\n })\r\n this.state = {\r\n message: {},\r\n tieude_ht: '',\r\n anhdaidien_ht: '',\r\n list_message: [],\r\n prevProps: props,\r\n list_limmit_mess_box: 10,\r\n isLoading: false,\r\n prevY: 0,\r\n onScrollBottom: this.props.onScrollBottom,\r\n ngay_tao_cu: '',\r\n hasMore: true,\r\n isSearch: false,\r\n valueSearch:''\r\n }\r\n this.oauth = store.getState().oauth;\r\n this.subscriptions = {};\r\n this.nameCollection = '';\r\n this.hoithoaiCollection = \"hoithoai\" + props.ID_TAIKHOAN + \"ht\";\r\n }\r\n handleObserver(entities, observer) {\r\n const y = entities[0].boundingClientRect.y;\r\n this.scrollToBottom();\r\n this.setState({ prevY: y });\r\n }\r\n\r\n async onSubmit(data) {\r\n if (!data.NOIDUNG.trim())\r\n return;\r\n const db = await DatabaseChat.get();\r\n data.ID = uuidv4();\r\n data.ID_HOITHOAI = this.props.ID_HOITHOAI;\r\n await db[this.nameCollection].insert(data);\r\n this.setState({ prevY: 0 });\r\n this.scrollToBottom();\r\n }\r\n\r\n async componentDidMount() {\r\n this.RunReplication();\r\n if (this.props.ID_HOITHOAI != null && this.props.ID_HOITHOAI != '') {\r\n this.scrollToBottom();\r\n this.observer = new IntersectionObserver(\r\n this.handleObserver.bind(this)\r\n );\r\n this.observer.observe(this.scrollParentRef);\r\n }\r\n }\r\n scrollToBottom = () => {\r\n if (this.scrollParentRef.scrollTop + this.scrollParentRef.clientHeight + 100 >= this.scrollParentRef.scrollTop) {\r\n this.scrollParentRef.scrollTop = this.scrollParentRef.scrollHeight;\r\n }\r\n }\r\n async RunReplication() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n if (this.replicationState) {\r\n await this.replicationState.cancel();\r\n }\r\n const db = await DatabaseChat.get();\r\n this.nameCollection = 'db' + this.props.ID_HOITHOAI.replace(/-/g, \"\");\r\n if (this.nameCollection !== 'db') {\r\n if (!db[this.nameCollection]) {\r\n const collection = await db.collection({\r\n name: this.nameCollection,\r\n schema: tinNhanSchema\r\n });\r\n }\r\n db[this.hoithoaiCollection].findOne(this.props.ID_HOITHOAI).exec().then(async doc => {\r\n if (doc) {\r\n this.setState({\r\n tieude_ht: doc.DS_THANHVIEN.find(x => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN) != null ? doc.DS_THANHVIEN.find(x => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN).TENDAYDU : doc.TIEUDE,\r\n anhdaidien_ht: (doc.DS_THANHVIEN.find(x => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN) != null && doc.DS_THANHVIEN.find(x => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN).ANHDAIDIEN != null) ? API_URL + doc.DS_THANHVIEN.find(x => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN).ANHDAIDIEN : imgDefault\r\n });\r\n }\r\n });\r\n let batchSize = 20;\r\n this.replicationState = db[this.nameCollection].syncGraphQL({\r\n url: API_URL, // url to the GraphQL endpoint\r\n headers: {\r\n \"Authorization\": \"Bearer \" + this.props.access_token\r\n },\r\n pull: {\r\n queryBuilder: DatabaseChat.pullQueryBuilder({ ID_HOITHOAI: this.props.ID_HOITHOAI, Paging: false }), // the queryBuilder from above\r\n },\r\n push: {\r\n batchSize,\r\n queryBuilder: DatabaseChat.pushQueryBuilderCustom,\r\n },\r\n deletedFlag: 'DELETED', // the flag which indicates if a pulled document is deleted\r\n live: true, // if this is true, rxdb will watch for ongoing changes and sync them, when false, a one-time-replication will be done\r\n liveInterval: 600000,\r\n });\r\n this.subscriptions[\"replicationStateError\"] = this.replicationState.error$.subscribe(err => {\r\n http.get('/api/lookup/roles').subscribe();\r\n });\r\n\r\n const ret = wsClient.request({\r\n query: subcriptionTinNhan,\r\n variables: {\r\n \"id_hoithoai\": this.props.ID_HOITHOAI\r\n }\r\n });\r\n this.subscriptions[\"wsClient\"] = ret.subscribe({\r\n next: async (data) => {\r\n await this.replicationState.run();\r\n },\r\n error(error) {\r\n console.log(error)\r\n }\r\n });\r\n\r\n this.subscriptions[\"list_message\"] = db[this.nameCollection].find(\r\n {\r\n selector: {\r\n ID_HOITHOAI: { $eq: this.props.ID_HOITHOAI },\r\n }\r\n }\r\n )\r\n .sort({ 'NGAYTAO_UTC': 1 }).$.subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n this.setState({\r\n list_message: response,\r\n loading: false\r\n });\r\n //nếu số lượng tin nhắn ban đầu nhỏ hơn 20 sẽ tắt chức năng loading\r\n if (this.state.list_message.length < 20)\r\n this.setState({\r\n hasMore:false\r\n });\r\n });\r\n }\r\n }\r\n //Load dữ liệu cũ\r\n async GetData() {\r\n const db = await DatabaseChat.get();\r\n await db[this.nameCollection].findOne().sort('NGAYTAO_UTC')\r\n .exec().then(response => {\r\n if (!response) {\r\n return;\r\n }\r\n this.setState({\r\n ngay_tao_cu: response.NGAYTAO_UTC\r\n });\r\n });\r\n await fetch(API_URL, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': 'Bearer ' + this.props.access_token\r\n },\r\n body: JSON.stringify({\r\n query: DatabaseChat.queryHistory({ lastID: '', NgayTao: this.state.ngay_tao_cu, ID_HOITHOAI: this.props.ID_HOITHOAI, Paging: true }),\r\n variables: {},\r\n })\r\n }).then(r => r.json()).then(data => {\r\n //Đẩy data vào rxdb\r\n if (data.data.feedForRxDBReplicationMessage != null && data.data.feedForRxDBReplicationMessage.length > 0) {\r\n db[this.nameCollection].bulkInsert(data.data.feedForRxDBReplicationMessage);\r\n db[this.nameCollection].find(\r\n {\r\n selector: {\r\n ID_HOITHOAI: { $eq: this.props.ID_HOITHOAI }\r\n }\r\n }\r\n )\r\n .sort({ 'NGAYTAO_UTC': 1 }).$.subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n this.setState({\r\n list_message: response,\r\n loading: false\r\n });\r\n });\r\n }\r\n else {\r\n this.setState({\r\n hasMore: false\r\n });\r\n }\r\n return data;\r\n });\r\n }\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.ID_HOITHOAI != this.props.ID_HOITHOAI || prevProps.access_token != this.props.access_token) {\r\n this.RunReplication()\r\n }\r\n // const y = entities[0].boundingClientRect.y; \r\n // if (this.refs.scrollParentRef.scrollHeight != null) {\r\n\r\n // }\r\n else if (this.state.onScrollBottom) {\r\n this.scrollToBottom();\r\n }\r\n\r\n }\r\n\r\n async onDeleteMessage(messageID) {\r\n const db = await DatabaseChat.get();\r\n const query = db[this.nameCollection].find().where('ID').eq(messageID);\r\n await query.remove();\r\n db[this.nameCollection].find(\r\n {\r\n selector: {\r\n ID_HOITHOAI: { $eq: this.props.ID_HOITHOAI },\r\n }\r\n }\r\n )\r\n .sort({ 'NGAYTAO_UTC': 1 }).$.subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n this.setState({\r\n list_message: response,\r\n loading: false\r\n });\r\n //nếu số lượng tin nhắn ban đầu nhỏ hơn 20 sẽ tắt chức năng loading\r\n if (this.state.list_message.length < 20)\r\n this.setState({\r\n hasMore: false\r\n });\r\n else {\r\n this.setState({\r\n hasMore: true\r\n });\r\n }\r\n });\r\n }\r\n async componentWillUnmount() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n if (this.replicationState) {\r\n await this.replicationState.cancel();\r\n }\r\n }\r\n onLoadMore = () => {\r\n this.setState({\r\n onScrollBottom: false,\r\n list_limmit_mess_box: this.state.list_limmit_mess_box + 10,\r\n });\r\n if (this.state.list_limmit_mess_box >= this.state.list_message.length) {\r\n this.GetData();\r\n }\r\n }\r\n handleChangeSearch(value) {\r\n this.setState({ valueSearch: value });\r\n }\r\n async changeSearchMessage(change){\r\n await this.setState({\r\n isSearch: change ? false : true,\r\n valueSearch:''\r\n });\r\n if (!change) {\r\n this.searchMessage('');\r\n }\r\n }\r\n async searchMessage(keyword) {\r\n const db = await DatabaseChat.get();\r\n this.setState({ loading: true });\r\n var regexp = new RegExp(keyword,'i');\r\n db[this.nameCollection].find(\r\n {\r\n selector: {\r\n ID_HOITHOAI: { $eq: this.props.ID_HOITHOAI },\r\n NOIDUNG: { $regex: regexp}\r\n }\r\n }\r\n )\r\n .sort({ 'NGAYTAO_UTC': 1 }).$.subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n this.setState({\r\n list_message: response,\r\n loading: false\r\n });\r\n });\r\n }\r\n renderListMess = () => {\r\n var reverseArrayDataListMessage = this.state.list_message;\r\n return (\r\n reverseArrayDataListMessage.slice(0, this.state.list_limmit_mess_box).map((item, index) => {\r\n return (\r\n
    \r\n {/*\"dep-ic\"*/}\r\n
    \r\n \r\n \r\n
    \r\n {(item.ID_NGUOIGUI == this.props.ID_TAIKHOAN) ?\r\n
    \r\n \r\n \r\n ...\r\n \r\n\r\n \r\n this.onDeleteMessage(item.ID)}>Xóa\r\n \r\n \r\n
    : \r\n }\r\n
    \r\n )\r\n })\r\n )\r\n }\r\n render() {\r\n if (this.props.ID_HOITHOAI != null && this.props.ID_HOITHOAI != '') {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n { this.handleChangeSearch(event.currentTarget.value) }} />\r\n \r\n
    \r\n
    this.scrollParentRef = ref}>\r\n this.onLoadMore()}\r\n hasMore={this.state.hasMore}\r\n getScrollParent={() => this.scrollParentRef}\r\n loader={
    Loading ...
    }>\r\n {\r\n this.renderListMess()\r\n }\r\n \r\n\r\n
    \r\n
    \r\n {\r\n this.onSubmit(values);\r\n resetForm({})\r\n }}\r\n enableReinitialize={true}\r\n initialValues={this.state.message}\r\n\r\n >\r\n {({\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n resetForm,\r\n values,\r\n touched,\r\n errors,\r\n }) => (\r\n <>\r\n
    \r\n \r\n \r\n {errors.NOIDUNG}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n else {\r\n return (\r\n
    \r\n
    \r\n

    Wellcome

    \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n access_token: state.oauth.access_token,\r\n ID_TAIKHOAN: state.oauth.idTaiKhoan\r\n };\r\n};\r\nconst Boxmessages = connect(mapStateToProps)(ChatBoxComponent);\r\nexport { Boxmessages }","import { createRxDatabase, addRxPlugin } from 'rxdb';\r\nimport {\r\n RxDBReplicationGraphQLPlugin,\r\n\r\n} from 'rxdb/plugins/replication-graphql';\r\nimport { RxDBEncryptionPlugin } from 'rxdb/plugins/encryption';\r\nimport { RxDBQueryBuilderPlugin } from 'rxdb/plugins/query-builder';\r\nimport { RxDBUpdatePlugin } from 'rxdb/plugins/update';\r\nimport { RxDBValidatePlugin } from 'rxdb/plugins/validate';\r\nimport {\r\n tinNhanSchema,\r\n graphQLGenerationTinNhanInput\r\n} from '../chat/tinNhanSchema'\r\nimport {\r\n SubscriptionClient\r\n} from 'subscriptions-transport-ws';\r\naddRxPlugin(require('pouchdb-adapter-idb'));\r\naddRxPlugin(RxDBReplicationGraphQLPlugin);\r\naddRxPlugin(RxDBEncryptionPlugin);\r\naddRxPlugin(RxDBQueryBuilderPlugin);\r\naddRxPlugin(RxDBUpdatePlugin);\r\naddRxPlugin(RxDBValidatePlugin);\r\nconst batchSize = 5\r\nconst pullQueryBuilderHoiThoai = (doc) => {\r\n if (!doc) {\r\n // the first pull does not have a start-document\r\n doc = {\r\n ID: '',\r\n NGAYCHINHSUA_UTC: \"1970-06-10T00:00:00\",\r\n\r\n };\r\n }\r\n\r\n const query = `{\r\n feedForRxDBReplicationHoiThoai(lastId: \"${doc.ID}\" ,min_updated_at: \"${doc.NGAYCHINHSUA_UTC}\", limit: 5) {\r\n ID\r\n NGAYCHINHSUA_UTC\r\n NGAYTAO_UTC\r\n TIEUDE\r\n DELETED\r\n LA_NHOM\r\n ID_NGUOITAO\r\n TINNHAN_CUOICUNG{\r\n NOIDUNG\r\n NGAYTAO_UTC\r\n NGAYCHINHSUA_UTC\r\n DELETED\r\n ID_NGUOIGUI\r\n }\r\n DS_THANHVIEN{\r\n ID_TAIKHOAN\r\n TENDANGNHAP\r\n LANDOC_CUOICUNG_UTC\r\n SL_TINNHAN_CHUADOC,\r\n ANHDAIDIEN,\r\n TENDAYDU\r\n }\r\n }\r\n }`;\r\n\r\n return {\r\n query,\r\n\r\n variables: {}\r\n };\r\n}\r\n\r\nconst pushQueryBuilderHoiThoai = (doc) => {\r\n\r\n const query = `\r\n mutation SetHoiThoai($oTNHOITHOAIDetailDto: TNHOITHOAIDetailDtoInput!){\r\n setHoiThoai(oTNHOITHOAIDetailDto:$oTNHOITHOAIDetailDto){\r\n ID\r\n TIEUDE\r\n NGAYCHINHSUA_UTC \r\n DELETED\r\n DS_THANHVIEN{\r\n ID_TAIKHOAN\r\n TENDANGNHAP\r\n LANDOC_CUOICUNG_UTC\r\n SL_TINNHAN_CHUADOC,\r\n ANHDAIDIEN,\r\n TENDAYDU\r\n }\r\n }\r\n }\r\n `;\r\n const variables = {\r\n oTNHOITHOAIDetailDto: doc\r\n };\r\n return {\r\n query,\r\n variables\r\n };\r\n};\r\nconst pushCreatHoiThoai = (doc) => {\r\n const query = `\r\n mutation createHoiThoai($userName: String!){\r\n createHoiThoai(userName:$userName){\r\n ID\r\n NGAYCHINHSUA_UTC\r\n NGAYTAO_UTC\r\n TIEUDE\r\n DELETED\r\n LA_NHOM\r\n ID_NGUOITAO\r\n TINNHAN_CUOICUNG{\r\n NOIDUNG\r\n NGAYTAO_UTC\r\n NGAYCHINHSUA_UTC\r\n DELETED\r\n ID_NGUOIGUI\r\n }\r\n DS_THANHVIEN{\r\n ID_TAIKHOAN\r\n TENDANGNHAP\r\n LANDOC_CUOICUNG_UTC\r\n SL_TINNHAN_CHUADOC\r\n ANHDAIDIEN\r\n TENDAYDU\r\n }\r\n }\r\n }\r\n `;\r\n const variables = {\r\n userName: doc.userName\r\n };\r\n return {\r\n query,\r\n variables\r\n };\r\n};\r\n\r\nconst subcriptionHoiThoai = `\r\n subscription onListenHoiThoai($id_taikhoan: Int!){ \r\n onListenHoiThoai(id_taikhoan:$id_taikhoan)\r\n {\r\n NOIDUNG\r\n } \r\n }\r\n `\r\nconst mutationSetLastOnline = `\r\n subscription onListenHoiThoai($id_taikhoan: Int!){ \r\n onListenHoiThoai(id_taikhoan:$id_taikhoan)\r\n {\r\n NOIDUNG\r\n } \r\n }\r\n `\r\nexport { pullQueryBuilderHoiThoai, pushQueryBuilderHoiThoai, subcriptionHoiThoai, pushCreatHoiThoai }","import { createContext } from 'react';\r\nimport { BaseService } from 'shared/services';\r\nimport { Subject } from 'rxjs';\r\nimport { http } from 'shared/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { API_URL } from 'app-setting';\r\nclass hoithoaiService extends BaseService {\r\n constructor(props) {\r\n const _props = Object.assign({}, { url: 'api/tkketnoi/listkn' }, props);\r\n super(_props);\r\n }\r\n //Danh sách bạn bè\r\n getDanhSachKetNoi(meta) { \r\n return http.get(`${API_URL}api/tkketnoi/listkn?keyword=${meta.keyword}&page=${meta.page}&itemsPerPage=${meta.page_size}`);\r\n }\r\n}\r\nconst Context = createContext();\r\nconst _hoithoaiService = new hoithoaiService();\r\nexport { Context, _hoithoaiService, hoithoaiService };","import React, { Component } from \"react\";\r\nimport { LoadingComponent, Layout2c } from \"shared/components\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { API_URL } from \"app-setting\";\r\nimport { http } from \"shared/utils\";\r\nimport * as DatabaseChat from \"../../../../database/chat\";\r\nimport { wsClient } from \"../../../../database/chat\";\r\nimport { Boxmessages } from \"../messages/boxmessages\";\r\nimport {\r\n pullQueryBuilderHoiThoai,\r\n pushQueryBuilderHoiThoai,\r\n subcriptionHoiThoai,\r\n pushCreatHoiThoai\r\n} from \"../../../../database/chat/hoithoaiCollection\";\r\nimport imgDefault from \"assets/images/img-user-default.png\";\r\nimport { Modal, Dropdown } from \"react-bootstrap\";\r\nimport NoImg from \"assets/images/unavatar.jpg\";\r\nimport logoHeader from 'assets/images/logo-header.png';\r\nimport Nav from \"react-bootstrap/Nav\";\r\nimport Icon from \"@mdi/react\";\r\nimport { mdiMenuDownOutline } from '@mdi/js';\r\nimport { _hoithoaiService, Context } from '../hoithoaiService';\r\nimport { hoiThoaiSchema } from '../../../../database/chat/hoiThoaiSchema';\r\nimport { store } from 'redux/store';\r\nclass HoithoaiComponents extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n message: {},\r\n list_hoithoai: [],\r\n selected_ID_HOITHOAI: \"\",\r\n showBoxAddMessModal: false,\r\n dataKN: [],\r\n meta: {\r\n page: 1,\r\n sortBy: 'id',\r\n page_size: 10,\r\n sortDesc: false,\r\n total: 0,\r\n keyword: '',\r\n filter: {\r\n }\r\n },\r\n };\r\n this.subscriptions = {};\r\n this.hoithoaiCollection = \"hoithoai\" + props.ID_TAIKHOAN + \"ht\";\r\n this.oauth = store.getState().oauth;\r\n }\r\n async RunReplication() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n if (this.replicationState) {\r\n await this.replicationState.cancel();\r\n }\r\n\r\n const db = await DatabaseChat.get();\r\n if (!db[this.hoithoaiCollection]) {\r\n const collection = await db.collection({\r\n name: this.hoithoaiCollection,\r\n schema: hoiThoaiSchema\r\n });\r\n }\r\n let batchSize = 10;\r\n //console.log('Hoi thoai Start replication..');\r\n this.replicationState = db[this.hoithoaiCollection].syncGraphQL({\r\n url: API_URL, // url to the GraphQL endpoint\r\n headers: {\r\n Authorization: \"Bearer \" + this.props.access_token,\r\n },\r\n pull: {\r\n queryBuilder: pullQueryBuilderHoiThoai, // the queryBuilder from above\r\n },\r\n push: {\r\n batchSize,\r\n queryBuilder: pushQueryBuilderHoiThoai,\r\n },\r\n deletedFlag: \"DELETED\", // the flag which indicates if a pulled document is deleted\r\n live: true, // if this is true, rxdb will watch for ongoing changes and sync them, when false, a one-time-replication will be done\r\n liveInterval: 60000,\r\n });\r\n this.subscriptions[\r\n \"replicationStateError\"\r\n ] = this.replicationState.error$.subscribe((err) => {\r\n // nếu xảy ra lỗi sẽ call 1 api bất kỳ để kiểm tra api có trả về 401 không, nếu có thì thực hiện refresh token và life cycle thực thi lại hàm componentDidUpdate\r\n // để gán lại grahpql header Authorization token mới\r\n http.get(\"/api/lookup/roles\").subscribe(() => {\r\n });\r\n });\r\n\r\n const ret = wsClient.request({\r\n query: subcriptionHoiThoai,\r\n variables: {\r\n id_taikhoan: this.props.ID_TAIKHOAN,\r\n },\r\n });\r\n this.subscriptions[\"wsClient\"] = ret.subscribe({\r\n next: async (data) => {\r\n await this.replicationState.run();\r\n },\r\n error(error) {\r\n },\r\n });\r\n\r\n this.subscriptions[\"list_hoithoai\"] = db[this.hoithoaiCollection]\r\n .find().sort({ 'NGAYCHINHSUA_UTC': 0 }).$.subscribe((response) => {\r\n if (!response) {\r\n return;\r\n }\r\n //console.log('list_hoithoai ');\r\n //console.dir(response);\r\n let listitem = JSON.parse(JSON.stringify(response));\r\n listitem = listitem.map((item, index) => {\r\n item.TIEUDE =\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ) != null\r\n ? item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).TENDAYDU\r\n : item.TIEUDE;\r\n item.ANHDAIDIEN =\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ) != null &&\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).ANHDAIDIEN != null\r\n ? API_URL +\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).ANHDAIDIEN\r\n : imgDefault;\r\n item.SL_TINNHAN_CHUADOC = item.DS_THANHVIEN.find(x => x.ID_TAIKHOAN == this.props.ID_TAIKHOAN).SL_TINNHAN_CHUADOC\r\n return item;\r\n });\r\n this.setState({\r\n list_hoithoai: listitem,\r\n loading: false,\r\n });\r\n });\r\n }\r\n async clickHoiThoai(ID_HOITHOAI) {\r\n //1. thực hiện cập nhật lần đọc cuối cùng cho hội thoại đó\r\n const db = await DatabaseChat.get();\r\n db[this.hoithoaiCollection]\r\n .findOne(ID_HOITHOAI)\r\n .exec()\r\n .then(async (doc) => {\r\n if (doc) {\r\n const changeFunction = (oldData) => {\r\n for (var i = 0; i < oldData.DS_THANHVIEN.length; i++) {\r\n if (oldData.DS_THANHVIEN[i].ID_TAIKHOAN === this.props.ID_TAIKHOAN) {\r\n oldData.DS_THANHVIEN[i].LANDOC_CUOICUNG_UTC = new Date().toISOString();\r\n oldData.DS_THANHVIEN[i].SL_TINNHAN_CHUADOC = 0;\r\n }\r\n }\r\n return oldData;\r\n }\r\n await doc.atomicUpdate(changeFunction);\r\n }\r\n });\r\n this.setState({\r\n selected_ID_HOITHOAI: ID_HOITHOAI,\r\n });\r\n }\r\n async DanhDauDaDoc(ID_HOITHOAI) {\r\n //1. thực hiện cập nhật lần đọc cuối cùng cho hội thoại đó\r\n const db = await DatabaseChat.get();\r\n db[this.hoithoaiCollection]\r\n .findOne(ID_HOITHOAI)\r\n .exec()\r\n .then(async (doc) => {\r\n if (doc) {\r\n const changeFunction = (oldData) => {\r\n for (var i = 0; i < oldData.DS_THANHVIEN.length; i++) {\r\n if (oldData.DS_THANHVIEN[i].ID_TAIKHOAN === this.props.ID_TAIKHOAN) {\r\n oldData.DS_THANHVIEN[i].LANDOC_CUOICUNG_UTC = new Date().toISOString();\r\n oldData.DS_THANHVIEN[i].SL_TINNHAN_CHUADOC = 0;\r\n }\r\n }\r\n return oldData;\r\n }\r\n await doc.atomicUpdate(changeFunction);\r\n }\r\n });\r\n }\r\n async onClickReload() {\r\n const db = await DatabaseChat.get();\r\n await db.remove();\r\n window.location.reload();\r\n }\r\n async componentDidMount() {\r\n await this.RunReplication();\r\n let username = this.props.match.params.username;\r\n if (username != null && username != \"\" && username != this.oauth.username) {\r\n await this.actSendMessage(username)\r\n }\r\n this.featDataKN(this.state.meta);\r\n }\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //kiểm tra chỉ chạy lại sau khi access token thay đổi\r\n if (prevProps.access_token != this.props.access_token) {\r\n this.RunReplication();\r\n }\r\n }\r\n async componentWillUnmount() {\r\n Object.keys(this.subscriptions).forEach((key) => {\r\n this.subscriptions[key].unsubscribe();\r\n });\r\n if (this.replicationState) {\r\n await this.replicationState.cancel();\r\n }\r\n }\r\n\r\n onShowBoxAddMessModal = (e) => {\r\n // e.preventDefault();\r\n this.setState({ showBoxAddMessModal: true });\r\n };\r\n onCloseBoxAddMessModal = (e) => {\r\n // e.preventDefault();\r\n this.setState({ showBoxAddMessModal: false });\r\n };\r\n //Lấy danh sách tài khoản kết nối\r\n featDataKN(meta) {\r\n let { dataKN } = this.state;\r\n _hoithoaiService.getDanhSachKetNoi(meta).subscribe(res => {\r\n dataKN = meta.page == 1 ? res.data : dataKN.concat(res.data);\r\n meta.total = res.totalRows;\r\n this.setState({\r\n dataKN,\r\n });\r\n }, err => {\r\n console.log(err);\r\n });\r\n }\r\n async actSendMessage(userName) {\r\n const db = await DatabaseChat.get();\r\n db[this.hoithoaiCollection].find({\r\n selector: {\r\n 'DS_THANHVIEN': {\r\n '$elemMatch': {\r\n 'TENDANGNHAP': { '$eq': userName }\r\n }\r\n }\r\n }\r\n }).sort({ 'NGAYCHINHSUA_UTC': 0 }).$.subscribe(response => {\r\n //Nếu đã tồn tại hội thoại selected hội thoại\r\n if (response.length > 0) {\r\n this.setState({\r\n showBoxAddMessModal: false,\r\n selected_ID_HOITHOAI: response[0].ID\r\n });\r\n }\r\n //ngược lại sẽ tạo hội thoại mới và selected\r\n else {\r\n fetch(API_URL, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': 'Bearer ' + this.props.access_token\r\n },\r\n body: JSON.stringify(\r\n pushCreatHoiThoai({ userName: userName })\r\n )\r\n }).then(r => r.json()).then(data => {\r\n //Đẩy data vào rxdb\r\n if (data.data.createHoiThoai != null) {\r\n db[this.hoithoaiCollection].insert(data.data.createHoiThoai);\r\n db[this.hoithoaiCollection]\r\n .find().sort({ 'NGAYCHINHSUA_UTC': 0 }).$.subscribe((response) => {\r\n if (!response) {\r\n return;\r\n }\r\n //console.log('list_hoithoai ');\r\n //console.dir(response);\r\n let listitem = JSON.parse(JSON.stringify(response));\r\n listitem = listitem.map((item, index) => {\r\n item.TIEUDE =\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ) != null\r\n ? item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).TENDAYDU\r\n : item.TIEUDE;\r\n item.ANHDAIDIEN =\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ) != null &&\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).ANHDAIDIEN != null\r\n ? API_URL +\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).ANHDAIDIEN\r\n : imgDefault;\r\n item.SL_TINNHAN_CHUADOC = item.DS_THANHVIEN.find(x => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN).SL_TINNHAN_CHUADOC\r\n return item;\r\n });\r\n this.setState({\r\n list_hoithoai: listitem,\r\n loading: false,\r\n selected_ID_HOITHOAI: data.data.createHoiThoai.ID,\r\n showBoxAddMessModal: false\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n viewMore() {\r\n let { meta } = this.state;\r\n meta.page_size = meta.page_size + 1;\r\n this.setState({ meta });\r\n this.featDataKN(meta);\r\n }\r\n handleChangeKeyword = (e) => {\r\n let { meta } = this.state;\r\n var target = e.target;\r\n var value = target.value;\r\n meta.keyword = value;\r\n this.setState({\r\n meta\r\n });\r\n this.featDataKN(meta);\r\n }\r\n handleChangeKeywordHoiThoai = (e) => {\r\n var target = e.target;\r\n var value = target.value;\r\n this.searchHoiThoai(value.toLowerCase());\r\n }\r\n async searchHoiThoai(value) {\r\n const db = await DatabaseChat.get();\r\n db[this.hoithoaiCollection].find().sort({ 'NGAYCHINHSUA_UTC': 0 }).$.subscribe((response) => {\r\n if (!response) {\r\n return;\r\n }\r\n let listitem = JSON.parse(JSON.stringify(response));\r\n listitem = listitem.map((item, index) => {\r\n item.TIEUDE =\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ) != null\r\n ? item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).TENDAYDU\r\n : item.TIEUDE;\r\n item.ANHDAIDIEN =\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ) != null &&\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).ANHDAIDIEN != null\r\n ? API_URL +\r\n item.DS_THANHVIEN.find(\r\n (x) => x.ID_TAIKHOAN != this.props.ID_TAIKHOAN\r\n ).ANHDAIDIEN\r\n : imgDefault;\r\n item.SL_TINNHAN_CHUADOC = item.DS_THANHVIEN.find(x => x.ID_TAIKHOAN == this.props.ID_TAIKHOAN).SL_TINNHAN_CHUADOC\r\n return item;\r\n });\r\n listitem = listitem.filter(item => item.TIEUDE.toLowerCase().includes(value));\r\n this.setState({\r\n list_hoithoai: listitem,\r\n loading: false,\r\n });\r\n });\r\n }\r\n render() {\r\n const CustomToggle = React.forwardRef(({ children, onClick }, ref) => (\r\n {\r\n e.preventDefault();\r\n onClick(e);\r\n }}\r\n >\r\n {children}\r\n \r\n \r\n ));\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \"logo_header\"\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 \"logo_header\"\r\n \r\n

    HỆ THỐNG QUẢN LÝ VỀ HÀNG GIẢ, HÀNG NHÁI, BUÔN LẬU, GIAN LẬN THƯƠNG MẠI VÀ VI PHẠM SỞ HỮU TRÍ TUỆ

    \r\n
    \r\n
    \r\n
    \r\n \"logo_header\"\r\n
    \r\n
    \r\n \r\n \r\n {this.oauth.fullName}\r\n \r\n\r\n \r\n Trang cá nhân\r\n Thông tin cá nhân\r\n Đăng xuất\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 Thêm cuộc hội thoại mới\r\n \r\n this.onShowBoxAddMessModal()}\r\n className=\"none-decoration pull-right\"\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {this.state.list_hoithoai.map((item, index) => {\r\n return (\r\n \r\n \r\n this.clickHoiThoai(item.ID)}\r\n >\r\n \r\n
    \r\n
    \r\n {item.TIEUDE}{\" \"}\r\n 0\r\n
    \r\n
    \r\n

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

    {(item.SL_TINNHAN_CHUADOC > 100) ? \"99+\" : item.SL_TINNHAN_CHUADOC}

    \r\n
    \r\n \r\n \r\n ...\r\n \r\n\r\n \r\n this.DanhDauDaDoc(item.ID)}>\r\n Đánh dấu đã đọc\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 {/* Modal Add Department */}\r\n \r\n \r\n Thêm cuộc hội thoại\r\n \r\n \r\n
    \r\n \r\n\r\n
    \r\n {this.state.dataKN.map((val, index) => {\r\n return (\r\n
    \r\n {(this.props.ID_TAIKHOAN != val.iD_NGUOIGUI) ?\r\n \r\n \"\"\r\n
    \r\n {val.nguoigui && val.nguoigui.title}\r\n
    \r\n
    \r\n \r\n
    \r\n
    :\r\n \r\n \"\"\r\n
    \r\n {val.nguoinhan && val.nguoinhan.title}\r\n
    \r\n
    \r\n \r\n
    \r\n
    }\r\n\r\n
    \r\n );\r\n })\r\n }\r\n {\r\n (this.state.meta.page * this.state.meta.page_size >= this.state.meta.total) ? '' :\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n \r\n \r\n \r\n {/* Modal Add Icon */}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n access_token: state.oauth.access_token,\r\n ID_TAIKHOAN: state.oauth.idTaiKhoan,\r\n user_onlines: state.oauth.user_onlines,\r\n };\r\n};\r\nconst HoithoaiComponent = connect(mapStateToProps)(HoithoaiComponents);\r\nexport { HoithoaiComponent };\r\n","import React, { Component } from 'react';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { BehaviorsContext } from 'shared/services';\r\nimport { HoithoaiComponent } from './hoithoai/hoithoaiComponent'\r\nimport { Context, _hoithoaiService } from './hoithoaiService';\r\nclass chatModule extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n static propTypes={\r\n match:PropTypes.object\r\n }\r\n render() {\r\n let { path } = this.props.match;\r\n return (\r\n \r\n {\r\n ({ beh }) => (\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 { chatModule };","import { createContext } from 'react';\r\nimport { BaseService } from 'shared/services';\r\nimport { Subject } from 'rxjs';\r\nimport { http } from 'shared/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { API_URL } from 'app-setting';\r\nclass QuenMatKhauService extends BaseService {\r\n \r\n constructor(props) {\r\n const _props = Object.assign({}, { url: 'api/tktaikhoan' }, props);\r\n super(_props);\r\n this.sendToForm = new Subject();\r\n }\r\n sendtkquenmatkhau(obj) {\r\n return http.get(`${API_URL}api/tktaikhoan/sendforgotpass/${obj.username}`);\r\n }\r\n sendtkmatkhau(obj) {\r\n return http.put(`${API_URL}api/tktaikhoan/forgotpass`, obj);\r\n }\r\n}\r\nconst Context = createContext();\r\nconst _QuenMatKhauService = new QuenMatKhauService();\r\nexport { Context, _QuenMatKhauService, QuenMatKhauService };","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Formik } from 'formik';\r\nimport { Image } from 'react-bootstrap';\r\nimport { string, object } from 'yup';\r\nimport { Card, Form, InputGroup, Row, Col } from 'react-bootstrap';\r\nimport PropTypes from 'prop-types';\r\nimport { LoadingComponent, Page } from 'shared/components';\r\nimport { authService } from 'shared/services';\r\nimport { OauthAction } from 'redux/actions';\r\nimport logoNavBar from 'assets/images/logo-new.png'\r\nimport '@iconify/iconify';\r\nimport '@fortawesome/fontawesome-free/css/all.css';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport 'styles/styles.scss';\r\nimport { CAPTCHA_KEY } from 'app-setting';\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport { _QuenMatKhauService, Context } from './QuenMatKhauService';\r\nconst schema = object({\r\n username: string().trim().required('Cần phải nhập tên tài khoản'),\r\n});\r\n\r\nclass QuenMatKhauComponent extends React.Component {\r\n static contextType = Context;\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: {\r\n username: '',\r\n },\r\n loading: false,\r\n errorMessage: '',\r\n expired: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n }\r\n\r\n onSubmit(obj) {\r\n if (this.state.expired) {\r\n this.setState({ loading: true });\r\n _QuenMatKhauService.sendtkquenmatkhau(obj).subscribe(() => {\r\n this.setState({\r\n loading: false\r\n });\r\n this.thongbao(\"Yêu cầu đã được gửi đến hệ thống. Vui lòng vào email đăng ký để xác nhận (email có hiệu lực trong 1 tiếng)\")\r\n },\r\n (err) => {\r\n this.setState({\r\n loading: false\r\n });\r\n this.context.beh.alert(err.error);\r\n });\r\n\r\n }\r\n\r\n }\r\n async thongbao(str) {\r\n if (await this.context.beh.alert(str)) {\r\n //window.open(window.location.origin, '_blank');\r\n this.props.history.push({ pathname: '/' });\r\n }\r\n }\r\n onKeyPress(ev) {\r\n const keyCode = ev.keyCode || ev.which;\r\n if (keyCode === 13) {\r\n ev.preventDefault();\r\n return false;\r\n }\r\n }\r\n handleChange = value => {\r\n this.setState({ expired: \"true\" });\r\n };\r\n render() {\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n {/* /.login-logo */}\r\n \r\n \r\n \r\n
    Quên mật khẩu
    \r\n

    \r\n {this.state.errorMessage}\r\n

    \r\n\r\n {\r\n\r\n this.onSubmit(values);\r\n }}\r\n initialValues={this.state.data}\r\n >\r\n {({\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n values,\r\n touched,\r\n errors,\r\n }) => (\r\n
    \r\n \r\n Nhập tài khoản (*)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.username}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n )}\r\n \r\n {/* /.login-card-body */}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport { QuenMatKhauComponent };\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Formik } from 'formik';\r\nimport { Image } from 'react-bootstrap';\r\nimport { string, object, ref } from 'yup';\r\nimport { Card, Form, InputGroup, Row, Col } from 'react-bootstrap';\r\nimport PropTypes from 'prop-types';\r\nimport { LoadingComponent, Page } from 'shared/components';\r\nimport { authService } from 'shared/services';\r\nimport { OauthAction } from 'redux/actions';\r\nimport logoNavBar from 'assets/images/logo-new.png'\r\nimport '@iconify/iconify';\r\nimport '@fortawesome/fontawesome-free/css/all.css';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport 'styles/styles.scss';\r\n\r\nimport { _QuenMatKhauService, Context } from '../QuenMatKhauService';\r\nimport { CAPTCHA_KEY } from 'app-setting';\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\n\r\nconst schema = object({\r\n matkhaumoi: string().trim().required('Cần phải nhập mật khẩu').matches(\r\n /(?=^.{6,30}$)(?=.*\\d)(?=.*[!@#$%^&*]+)(?![.\\n])(?=.*[A-Z])(?=.*[a-z]).*$/,\r\n 'Mật khẩu phải có ít nhất một chữ số, một chữ cái thường, một chữ cái in hoa, một ký tự đặc biệt'\r\n ).min(6, 'Nhập tối thiểu 6 ký tự')\r\n .max(30, 'Nhập tối đa 30 ký tự'),\r\n nhaplaimatkhau: string().trim().required('Cần phải nhập lại mật khẩu').oneOf([ref('matkhaumoi'), null], 'Mật khẩu nhập lại không đúng'),\r\n});\r\n\r\nclass NhapMatKhauComponent extends React.Component {\r\n static contextType = Context;\r\n static propTypes = {\r\n history: PropTypes.object,\r\n location: PropTypes.object,\r\n setData: PropTypes.func,\r\n setMeta: PropTypes.func,\r\n data: PropTypes.array,\r\n meta: PropTypes.object,\r\n handleChange: PropTypes.func,\r\n id: PropTypes.number,\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: {\r\n matkhaumoi: '',\r\n values: '',\r\n\r\n },\r\n check: true,\r\n loading: false,\r\n errorMessage: '',\r\n expired: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ loading: true });\r\n let a = window.location.href;\r\n var obj = {};\r\n obj.matkhaumoi = \"\";\r\n obj.values = a.replace(a.substring(0, a.lastIndexOf(\"nhap-mat-khau/\") + 14), \"\");\r\n obj.type = 1;\r\n _QuenMatKhauService.sendtkmatkhau(obj).subscribe(() => {\r\n this.setState({\r\n loading: false,\r\n check: true\r\n });\r\n \r\n },\r\n (err) => {\r\n this.setState({\r\n loading: false,\r\n check: false\r\n });\r\n \r\n });\r\n }\r\n\r\n onSubmit(obj) {\r\n if (this.state.expired) {\r\n this.setState({ loading: true });\r\n let a = window.location.href;\r\n obj.values = a.replace(a.substring(0, a.lastIndexOf(\"nhap-mat-khau/\") + 14), \"\");\r\n obj.type = 2;\r\n _QuenMatKhauService.sendtkmatkhau(obj).subscribe(() => {\r\n this.setState({\r\n loading: false\r\n });\r\n this.thongbao(\"Bạn đã đổi mật khẩu thành công. Đăng nhập để bắt đầu phiên làm việc\");\r\n\r\n },\r\n (err) => {\r\n this.setState({\r\n loading: false\r\n });\r\n this.context.beh.alert(err.error);\r\n });\r\n }\r\n \r\n }\r\n async thongbao(str) {\r\n if (await this.context.beh.alert(str)) {\r\n //window.open(window.location.origin, '_blank');\r\n this.props.history.push({ pathname: '/dang-nhap' });\r\n }\r\n }\r\n onKeyPress(ev) {\r\n const keyCode = ev.keyCode || ev.which;\r\n if (keyCode === 13) {\r\n ev.preventDefault();\r\n return false;\r\n }\r\n }\r\n handleChange = value => {\r\n this.setState({ expired: true });\r\n };\r\n render() {\r\n return (\r\n \r\n \r\n {this.state.check == true ? (\r\n
    \r\n
    \r\n {/* /.login-logo */}\r\n \r\n \r\n\r\n
    Đổi mật khẩu
    \r\n

    \r\n {this.state.errorMessage}\r\n

    \r\n\r\n {\r\n\r\n this.onSubmit(values);\r\n }}\r\n initialValues={this.state.data}\r\n >\r\n {({\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n values,\r\n touched,\r\n errors,\r\n }) => (\r\n
    \r\n \r\n Mật khẩu mới (*)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.matkhaumoi}\r\n \r\n \r\n \r\n \r\n Nhập lại mật khẩu mới (*)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.nhaplaimatkhau}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n )}\r\n \r\n {/* /.login-card-body */}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n ): (\"Đường link không tồn tại\")}\r\n \r\n
    \r\n
    \r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport { NhapMatKhauComponent };\r\n","\r\nimport React from 'react';\r\nimport { Provider } from 'react-redux';\r\nimport { PersistGate } from 'redux-persist/lib/integration/react';\r\nimport { persistor, store } from './redux/store';\r\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\r\nimport { LoadingComponent, RouteGuardComponent as RouteGuard,AlertComponent,ConfirmComponent} from 'shared/components';\r\nimport '@iconify/iconify';\r\nimport '@fortawesome/fontawesome-free/css/all.css';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport '../src/styles/styles.scss';\r\nimport { PublicLayout } from './layouts/PublicLayout';\r\nimport OauthCallback from './modules/oauth-callback/OauthCallback';\r\nimport { LogoutComponent } from './modules/logout';\r\nimport { LoginComponent } from './modules/Public/login';\r\nimport { chatModule } from './modules/Public/chathome/chatModule';\r\nimport { QuenMatKhauComponent } from './modules/Public/taikhoan/quenmatkhau';\r\nimport { QuenMatKhauService, Context } from 'modules/Public/taikhoan/quenmatkhau/QuenMatKhauService';\r\nimport { BehaviorsContext } from 'shared/services';\r\nimport { NhapMatKhauComponent } from 'modules/Public/taikhoan/quenmatkhau/nhapmatkhau/NhapMatKhauComponent';\r\nclass App extends React.Component {\r\n render() {\r\n return (\r\n \r\n {\r\n ({ beh }) => (\r\n \r\n \r\n } persistor={persistor}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n }\r\n \r\n\r\n \r\n );\r\n }\r\n}\r\nexport default App;","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister(); \r\n","import { createContext } from 'react';\r\nimport { BaseService } from 'shared/services';\r\nimport { Subject } from 'rxjs';\r\nimport { http } from 'shared/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { API_URL } from 'app-setting';\r\nclass BaiVietService extends BaseService {\r\n\r\n constructor(props) {\r\n const _props = Object.assign({}, { url: 'api/bvbaiviet/lists' }, props);\r\n super(_props);\r\n this.sendToForm = new Subject();\r\n this.sendToLoadFormDangBai = new Subject();\r\n this.sendToViewLike = new Subject();\r\n this.sendToViewShare = new Subject();\r\n this.sendToFormEdit = new Subject();\r\n this.sendToBaoCaoViPham = new Subject();\r\n this.sendToShareBaiViet = new Subject();\r\n this.sendToShareMesage = new Subject();\r\n }\r\n getDataBaiVietCuaToi(meta) {\r\n return http.get(`api/bvbaiviet/mylist?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}&lststatus=${meta.lststatus}`);\r\n }\r\n getDataBaiVietMoiNhat(meta) {\r\n return http.get(`api/bvbaiviet/mylistnew?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}&lststatus=2,5`);\r\n }\r\n themMoiBaiViet(data, obj) {\r\n const headers = {\r\n 'Content-Type': 'multipart/form-data',\r\n };\r\n const formData = new FormData();\r\n if(data&&data.fileAttach){\r\n for (let i = 0; i < data.fileAttach.length; i++) {\r\n formData.append(`files`, data.fileAttach[i]);\r\n }\r\n } \r\n formData.append(obj, JSON.stringify(data));\r\n return http.post(`${API_URL}api/bvbaiviet`, formData, {\r\n headers: headers\r\n });\r\n }\r\n updateBaiViet(data, obj) {\r\n \r\n const headers = {\r\n 'Content-Type': 'multipart/form-data',\r\n };\r\n const formData = new FormData();\r\n if(data&&data.fileAttach){\r\n for (let i = 0; i < data.fileAttach.length; i++) {\r\n if(!data.fileAttach[i].id)\r\n formData.append(`files`, data.fileAttach[i]);\r\n }\r\n }\r\n formData.append(obj, JSON.stringify(data));\r\n return http.put(`${API_URL}api/bvbaiviet/${data.id}`, formData, {\r\n headers: headers\r\n });\r\n } \r\n getDanhSachAnhByIdBaiViet(meta, idbv) {\r\n return http.get(`api/bvattachment?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}&idbaiviet=${idbv}`);\r\n }\r\n likeBaiViet(id) {\r\n return http.put(`${API_URL}api/bvluotthich/like/${id}`);\r\n }\r\n unLikeBaiViet(id) {\r\n return http.put(`${API_URL}api/bvluotthich/unlike/${id}`);\r\n }\r\n actViewLikeBaiViet(meta) {\r\n return http.get(`${API_URL}api/bvluotthich?idBaiViet=${meta.id}&page=${meta.page}&itemsPerPage=${meta.page_size}`);\r\n }\r\n actViewShareBaiViet(meta) {\r\n return http.get(`${API_URL}api/tktaikhoan/listshare?idBaiViet=${meta.id}&page=${meta.page}&itemsPerPage=${meta.page_size}`);\r\n }\r\n actaddFriend(id) {\r\n return http.post(`${API_URL}api/tkketnoi/guiketnoi/${id}`);\r\n }\r\n\r\n deleteBaiviet(id) { \r\n return http.delete(`${API_URL}api/bvbaiviet/${id}`);\r\n }\r\n\r\n hiddenBaiviet(id) { \r\n return http.put(`${API_URL}api/bvbaiviet/hidden/${id}`);\r\n }\r\n dangBaiviet(id) { \r\n return http.put(`${API_URL}api/bvbaiviet/dangbai/${id}`);\r\n }\r\n\r\n hiddenViewBaiviet(id) { \r\n return http.put(`${API_URL}api/bvbian/hidden/${id}`);\r\n }\r\n\r\n hiddenViewAllBaiviet(id) { \r\n return http.put(`${API_URL}api/bvtaikhoanbian/hidden/${id}`);\r\n }\r\n\r\n closeBaiviet(id) { \r\n return http.put(`${API_URL}api/bvbaiviet/close/${id}`);\r\n }\r\n openBaiviet(id) { \r\n return http.put(`${API_URL}api/bvbaiviet/open/${id}`);\r\n }\r\n getBaiVietById(id) {\r\n return http.get(`${API_URL}api/bvbaiviet/viewdetail/${id}`);\r\n }\r\n getBaiVietShareById(id) {\r\n return http.get(`${API_URL}api/bvbaiviet/share/${id}`);\r\n }\r\n\r\n getDataCheckin() {\r\n return http.get('api/dmcheckin?page=1&itemsPerPage=-1').pipe(map((res) => {\r\n if (res) {\r\n return res.data.map(x => {\r\n x.value = x.id;\r\n x.name = x.title;\r\n return x;\r\n });\r\n }\r\n }));\r\n }\r\n getDmLyDoBaoCao() {\r\n return http.get('api/bclydobaocao?page=1&itemsPerPage=-1&type=2&sortBy=ID&sortDesc=false').pipe(map((res) => {\r\n if (res) {\r\n return res.data.map(x => {\r\n x.value = x.id;\r\n x.label = x.title;\r\n return x;\r\n });\r\n }\r\n }));\r\n }\r\n\r\n createBaoCaoViPham(data) {\r\n return http.post(`${API_URL}api/bvbaocaovipham`, data);\r\n }\r\n //Danh sách bạn bè\r\n getDanhSachKetNoi(meta) { \r\n return http.get(`${API_URL}api/tkketnoi/listkn?keyword=${meta.keyword}&page=${meta.page}&itemsPerPage=${meta.page_size}`);\r\n }\r\n sendShareTinNhan(data) {\r\n return http.post(`${API_URL}api/tntinnhan`, data);\r\n }\r\n \r\n //Quan tâm\r\n getSanPhamGoiY(meta) {\r\n return http.get(`api/spsanpham/goiy?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}`);\r\n }\r\n getGoiYSuKien(meta) {\r\n return http.get(`api/dnsukien/goiy?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}&checkEvent=${meta.checkEvent}`);\r\n }\r\n getGoiYTinTuc(meta) {\r\n return http.get(`api/tttintuc/listshost?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}`);\r\n }\r\n getGoiYKetNoi(meta) {\r\n return http.get(`api/tktaikhoan/goiy?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}`).pipe(map((res) => { \r\n if (res) {\r\n return res.data.map(x => {\r\n x.isketnoi=true;\r\n return x;\r\n });\r\n }\r\n })); \r\n }\r\n getLoiMoiKetNoi(meta) {\r\n return http.get(`api/tkketnoi/loimoi?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}`).pipe(map((res) => { \r\n if (res) {\r\n return res.data.map(x => {\r\n x.ischeck=true;\r\n return x;\r\n });\r\n }\r\n })); \r\n }\r\n getGoiYTheoDoi(meta) {\r\n return http.get(`api/tktaikhoan/goiytheodoi?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}`).pipe(map((res) => { \r\n if (res) {\r\n return res.data.map(x => {\r\n x.istheodoi=true;\r\n return x;\r\n });\r\n }\r\n })); \r\n }\r\n\r\n actaddFollow(id) {\r\n return http.post(`${API_URL}api/dntheodoi/theodoi/${id}`);\r\n }\r\n\r\n actThamGiaSuKien(id) {\r\n return http.put(`${API_URL}api/dnsukienthamgia/thamgia/${id}`);\r\n }\r\n actBoThamGiaSuKien(id) {\r\n return http.put(`${API_URL}api/dnsukienthamgia/huythamgia/${id}`);\r\n }\r\n\r\n actQuanTamSuKien(id) {\r\n return http.put(`${API_URL}api/dnsukienquantam/quantam/${id}`);\r\n }\r\n actBoQuanTamSuKien(id) {\r\n return http.put(`${API_URL}api/dnsukienquantam/huyquantam/${id}`);\r\n }\r\n\r\n getKetNoiCuaToi(meta) {\r\n return http.get(`api/tkketnoi/myconnect?page=${meta.page}&itemsPerPage=${meta.page_size}&sortBy=${meta.sortBy}&sortDesc=${meta.sortDesc}`); \r\n }\r\n\r\n dongYLoiMoiKetNoi(id) {\r\n return http.post(`${API_URL}api/tkketnoi/dongyketnoi/` + id);\r\n }\r\n huyLoiMoiKetNoi(id) {\r\n return http.post(`${API_URL}api/tkketnoi/huyketnoi/` + id);\r\n } \r\n\r\n}\r\nconst Context = createContext();\r\nconst _BaiVietService = new BaiVietService();\r\nexport { Context, _BaiVietService, BaiVietService };","\r\nimport { OAUTH_SET_TOKEN, OAUTH_REMOVE_TOKEN } from './oauthConstant';\r\n\r\nexport function setToken(token) {\r\n return {\r\n type: OAUTH_SET_TOKEN,\r\n token: token\r\n };\r\n}\r\n\r\nexport function removeToken() {\r\n return {\r\n type: OAUTH_REMOVE_TOKEN\r\n };\r\n}","import * as OauthAction from './oauth/oauthAction';\r\nimport * as UserAction from './user/userAction';\r\nimport * as DMChuyenMucTinAction from './dmchuyenmuctin/dmchuyenmuctinAction';\r\nimport * as DMDoiTuongChiaSeAction from './dmdoituongchiase/dmdoituongchiaseAction';\r\nimport * as DMChuDeCauHoiAction from './dmchudecauhoi/dmchudecauhoiAction';\r\nimport * as DMLinhVucKinhDoanhAction from './dmlinhvuckinhdoanh/dmlinhvuckinhdoanhAction';\r\nimport * as DNThuongHieuAction from './dnthuonghieu/dnthuonghieuAction';\r\nimport * as DMLoaiThongBaoAction from './dmloaithongbao/DMLoaiThongBaoAction';\r\nimport * as DMChiTieuAction from './dmchitieu/dmchitieuAction';\r\nimport * as DMDiaBanAction from './dmdiaban/dmdiabanAction';\r\nimport * as DMQuanHuyenAction from './dmquanhuyen/dmquanhuyenAction';\r\nimport * as DMTinhThanhAction from './dmtinhthanh/dmtinhthanhAction';\r\nimport * as DMPhuongXaAction from './dmphuongxa/dmphuongxaAction';\r\nimport * as DMDuongPhoAction from './dmduongpho/dmduongphoAction';\r\nimport * as DMChiTieuSanPhamQuanTamAction from './dmchitieusanphamquantam/dmchitieusanphamquantamAction';\r\nimport * as DMChiTieuSanPhamAction from './dmchitieusanpham/dmchitieusanphamAction';\r\nimport * as DMChiTieuNguoiDungTichCucAction from './dmchitieunguoidungtichcuc/DMChiTieuNguoiDungTichCucAction';\r\nimport * as DMChiTieuDoanhNghiepTichCucAction from './dmchitieudoanhnghieptichcuc/DMChiTieuDoanhNghiepTichCucAction';\r\nimport * as TKTaiKhoanAction from './tktaikhoan/tktaikhoanAction';\r\nimport * as DMLoaiSanPhamAction from './dmloaisanpham/dmloaisanphamAction';\r\nimport * as TKPermissionAction from './tkpermission/tkpermissionAction';\r\nimport * as DMLoaiHinhKinhDoanhAction from './dmloaihinhkinhdoanh/dmloaihinhkinhdoanhAction';\r\nimport * as DMDonViAction from './dmdonvi/DMDonViAction';\r\nimport * as DMKhoangGiaAction from './dmkhoanggia/DMKhoangGiaAction'; \r\nimport * as TKNhomNguoiDungAction from './tknhomnguoidung/tknhomnguoidungAction';\r\nimport * as DMDoiTuongQuanLyAction from './dmdoituongquanly/dmdoituongquanlyAction';\r\nimport * as TKNhomNguoiDungCNAction from './tknhomnguoidungcn/tknhomnguoidungcnAction';\r\nimport * as dmchucvuAction from './dmchucvu/dmchucvuAction';\r\nimport * as dmchitieudanhgiaAction from './dmchitieudanhgia/dmchitieudanhgiaAction';\r\nimport * as dmhanhviviphamAction from './dmhanhvivipham/dmhanhviviphamAction';\r\nimport * as DMDonViLienKetAction from './dmdonvilienket/dmdonvilienketAction';\r\nimport * as dmlinhvucsukienAction from './dmlinhvucsukien/dmlinhvucsukienAction';\r\nimport * as LogSysAction from './logSys/logSysAction';\r\nimport * as MenuHeThongAction from './menuhethong/menuhethongAction';\r\nimport * as HoSoVuViecAction from './quanlynoidung/hosovuviec/hosovuviecAction';\r\nimport * as KhoTuLieuAction from './quanlynoidung/khotulieu/khotulieuAction';\r\nimport * as TinDangAction from './quanlynoidung/tindang/tindangAction';\r\nimport * as BCLyDoBaoCaoAction from './quanlynoidung/bclydobaocao/bclydobaocaoAction';\r\nimport * as BCViPhamSanPhamAction from './quanlynoidung/bcviphamsanpham/bcviphamsanphamAction';\r\nimport * as ToChucCaNhanViPhamAction from './quanlynoidung/tochuccanhanvipham/tochuccanhanviphamAction';\r\nimport * as danhgiavehethongAction from './danhgiavehethong/danhgiavehethongAction';\r\nimport * as phieukhaosatAction from './phieukhaosat/phieukhaosatAction';\r\nimport * as cauhoikhaosatAction from './cauhoikhaosat/cauhoikhaosatAction';\r\nimport * as ketquaphieukhaosatAction from './ketquaphieukhaosat/ketquaphieukhaosatAction';\r\nimport * as CauHinhHeThongAction from './cauhinhhethong/cauhinhhethongAction';\r\nimport * as BaiDangAction from './quanlynoidung/baidang/baidangAction';\r\nimport * as BinhLuanAction from './quanlynoidung/baidang/binhluan/binhluanAction';\r\nimport * as BVBaoCaoViPhamAction from './quanlynoidung/baidang/bvbaocaovipham/bvbaocaoviphamAction';\r\nimport * as traloiphieukhaosatAction from './traloiphieukhaosat/traloiphieukhaosatAction';\r\nimport * as DMApiWebServiceAction from './dmapiwebservice/dmapiwebserviceAction';\r\nimport * as CauHinhDuLieuLienKetAction from './cauhinhdulieulienket/cauhinhdulieulienketAction';\r\nimport * as TKDoanhNghiepAction from './tktaikhoan/tkdoanhnghiep/tkdoanhnghiepAction';\r\nimport * as SanPhamDNAction from './quanlynoidung/sanphamdn/sanphamdnAction';\r\nimport * as TinBaoToGiacAction from './quanlynoidung/tinbaotogiac/tinbaotogiacAction';\r\nimport * as TaiKhoanAction from './quanlynoidung/tinbaotogiac/taikhoan/taikhoanAction';\r\nimport * as BinhLuanSPAction from './quanlynoidung/sanphamdn/binhluansp/binhluanspAction';\r\nimport * as DNSuKienAction from './quanlynoidung/dnsukien/dnsukienAction';\r\nimport * as menuFrontEndAction from './menuFrontEnd/menuFrontEndAction';\r\nimport * as bvtienichAction from './bvtienich/bvtienichAction';\r\nimport * as dieukhoanchinhsachAction from './dieukhoanchinhsach/dieukhoanchinhsachAction';\r\nimport * as chcauhoiAction from './chcauhoi/chcauhoiAction';\r\nimport * as bannerquangcaoAction from './bannerquangcao/bannerquangcaoAction';\r\nimport * as chtraloiAction from './chtraloi/chtraloiAction';\r\nexport {\r\n OauthAction,\r\n UserAction,\r\n DMChuyenMucTinAction,\r\n DMDoiTuongChiaSeAction,\r\n DMChuDeCauHoiAction,\r\n DMLinhVucKinhDoanhAction,\r\n DNThuongHieuAction,\r\n DMLoaiThongBaoAction,\r\n DMChiTieuAction,\r\n DMDiaBanAction,\r\n DMQuanHuyenAction,\r\n DMTinhThanhAction,\r\n DMPhuongXaAction,\r\n DMDuongPhoAction,\r\n DMChiTieuSanPhamQuanTamAction,\r\n DMChiTieuSanPhamAction,\r\n DMChiTieuNguoiDungTichCucAction,\r\n DMChiTieuDoanhNghiepTichCucAction,\r\n DMLoaiSanPhamAction, \r\n TKPermissionAction,\r\n TKTaiKhoanAction,\r\n DMLoaiHinhKinhDoanhAction,\r\n DMKhoangGiaAction,\r\n DMDonViAction,\r\n TKNhomNguoiDungAction,\r\n DMDoiTuongQuanLyAction,\r\n TKNhomNguoiDungCNAction,\r\n dmchucvuAction,\r\n dmchitieudanhgiaAction,\r\n dmhanhviviphamAction,\r\n DMDonViLienKetAction,\r\n dmlinhvucsukienAction,\r\n LogSysAction,\r\n MenuHeThongAction,\r\n HoSoVuViecAction,\r\n KhoTuLieuAction,\r\n TinDangAction,\r\n BCLyDoBaoCaoAction,\r\n BCViPhamSanPhamAction,\r\n ToChucCaNhanViPhamAction,\r\n danhgiavehethongAction,\r\n phieukhaosatAction,\r\n cauhoikhaosatAction,\r\n ketquaphieukhaosatAction,\r\n BaiDangAction,\r\n BinhLuanAction,\r\n BVBaoCaoViPhamAction,\r\n traloiphieukhaosatAction,\r\n CauHinhHeThongAction,\r\n DMApiWebServiceAction,\r\n CauHinhDuLieuLienKetAction,\r\n TKDoanhNghiepAction,\r\n SanPhamDNAction,\r\n TinBaoToGiacAction,\r\n TaiKhoanAction,\r\n BinhLuanSPAction,\r\n DNSuKienAction,\r\n menuFrontEndAction,\r\n bvtienichAction,\r\n dieukhoanchinhsachAction,\r\n chcauhoiAction,\r\n bannerquangcaoAction,\r\n chtraloiAction\r\n};"],"sourceRoot":""}