{"version":3,"sources":["serviceWorker.ts","containers/FallBackLoading/index.tsx","components/Loading/index.tsx","components/PrivateRoute/index.tsx","containers/App/index.tsx","index.tsx","utils/fetch.ts","vendor/index.ts","stores/AuthStore.ts","stores/GeneralStore.ts","stores/UserStore.ts","stores/AccessLevelStore.ts","stores/DepositStore.ts","stores/GameStore.ts","stores/PartnerStore.ts","stores/AuditStore.ts","stores/BoardStore.ts","stores/MachineStore.ts","stores/ScanStore.ts","stores/DashboardStore.ts","stores/ReasonStore.ts","stores/RootStore.ts"],"names":["isLocalhost","Boolean","window","location","hostname","match","registerValidSW","swUrl","config","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","console","log","onUpdate","onSuccess","catch","error","useStyles","makeStyles","theme","container","height","FallBackLoading","classes","Grid","justify","alignItems","className","CircularProgress","width","position","top","zIndex","memo","props","show","LinearProgress","PrivateRoute","Component","component","isAuthenticated","redirectTo","isAuthPage","rest","render","to","pathname","AsyncLogin","lazy","AsyncRegister","AsyncForgotPassword","AsyncForgotPasswordStep2","AsyncDashboard","AsyncNotFound","path","observer","useStores","generalStore","authStore","showLoading","snackbar","Snackbar","open","autoHideDuration","onClose","closeSnackbar","anchorOrigin","vertical","horizontal","Alert","elevation","variant","severity","msg","fallback","exact","require","moment","locale","numeral","ReactDOM","providers","history","CssBaseline","document","getElementById","URL","process","href","origin","addEventListener","fetch","headers","response","contentType","get","status","indexOf","ready","unregister","reload","checkValidServiceWorker","Fetch","baseUrl","Accept","this","key","value","data","encode","newHeaders","body","params","URLSearchParams","Object","keys","forEach","append","JSON","stringify","method","json","payload","Error","message","api","login","username","password","a","post","fullName","email","createUser","groupPermission","allowAllPartners","allowPartners","updateUser","id","put","updateProfile","currentUser","getUsers","limit","offset","all","getUser","deleteUser","del","getGroupPermissions","deleteGroupPermission","createGroup","name","permissionsId","updateGroup","getGroupPermission","getPermissions","getGames","getGame","createGame","obs","deleteGame","updateGame","getDeposits","getDeposit","createDeposit","type","deleteDeposit","updateDeposit","getPartners","getPartner","createPartner","commission","companyPercentage","deletePartner","updatePartner","getLogs","where","byUser","byuser","period","dateInit","dateEnd","searchParams","querystring","getBoards","onlyNoApply","textSearch","partnerId","gameId","getBoard","createBoard","serial","depositId","boardCreatedDate","createBoards","count","deleteBoard","updateBoard","transferBoard","boardsToTransfer","toType","toLocal","transferDate","newGameId","getTransferBoards","getTransferBoard","getMachines","onlyApply","getMachine","createMachine","boardId","machineCreatedDate","partnerName","updateMachine","removeBoardOnMachine","changeBoard","newBoardId","changeDate","reasonId","meterCurrentEntry","meterCurrentExit","getChangeBoards","getChangeBoard","getScans","scanType","includes","normalScanType","adjustmentScanType","surveyScanType","machineId","getScan","scanId","createScan","updateScan","removeScan","getLastScanOnMachine","getLastScanOnBoard","canBeUpdated","getBasicData","getBoardsData","getBoardsDashboard","partnerOrDepositId","getGamesData","getScansData","partnerIds","scanTypes","groupBy","getPartnersData","getDetailedPartnersData","getReasons","createReason","updateReason","getReason","AuthStore","rootStore","checkAllowAllPartners","user","checkPermission","values","permissions","map","e","some","bootstrapAuth","loadingBootstrap","observable","computed","action","token","localStorage","getItem","sessionStorage","setHeader","clear","removeHeader","setShowLoading","routerStore","push","showSnackbar","remember","urlParams","search","setItem","access_token","GeneralStore","matchMediaEvent","matchMedia","setMobileSize","addListener","mobileSize","isDrawerOpen","matches","bool","UserStore","create","AccessLevelStore","group","DepositStore","deposit","GameStore","game","PartnerStore","partner","AuditStore","BoardStore","board","boards","transferBoardPayload","MachineStore","machine","changeBoardPayload","ScanStore","Scan","scan","DashboardStore","ReasonStore","RouterStore","userStore","accessLevelStore","depositStore","gameStore","partnerStore","auditStore","boardStore","machineStore","scanStore","dashboardStore","reasonStore","syncHistoryWithStore","createBrowserHistory","storeCtx","createContext","useContext"],"mappings":"8QAYMA,EAAcC,QACW,cAA7BC,OAAOC,SAASC,UAEe,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAASC,MACvB,2DA8CN,SAASC,EAAgBC,EAAeC,GACtCC,UAAUC,cACPC,SAASJ,GACTK,MAAK,SAAAC,GACJA,EAAaC,cAAgB,WAC3B,IAAMC,EAAmBF,EAAaG,WACd,MAApBD,IAGJA,EAAiBE,cAAgB,WACA,cAA3BF,EAAiBG,QACfT,UAAUC,cAAcS,YAI1BC,QAAQC,IACN,iHAKEb,GAAUA,EAAOc,UACnBd,EAAOc,SAAST,KAMlBO,QAAQC,IAAI,sCAGRb,GAAUA,EAAOe,WACnBf,EAAOe,UAAUV,WAO5BW,OAAM,SAAAC,GACLL,QAAQK,MAAM,4CAA6CA,M,+CCrG3DC,EAAYC,aAAW,SAACC,GAAD,MAAmB,CAC/CC,UAAW,CACVC,OAAQ,aAmBKC,MAff,WACC,IAAMC,EAAUN,IAEhB,OACC,kBAACO,EAAA,EAAD,CACCJ,WAAS,EACTK,QAAQ,SACRC,WAAW,SACXC,UAAWJ,EAAQH,WAEnB,kBAACQ,EAAA,EAAD,Q,SCZGX,EAAYC,aAAW,SAACC,GAAD,MAAmB,CAC/CC,UAAW,CACVS,MAAO,OACPC,SAAU,WACVC,IAAK,EACLC,OAAQ,UAgBKC,sBAZf,SAAiBC,GAChB,IAAMX,EAAUN,IAEhB,OAAKiB,EAAMC,KAGV,yBAAKR,UAAWJ,EAAQH,WACvB,kBAACgB,EAAA,EAAD,OAJsB,Q,0BC6BlB,IAAMC,EAAeJ,gBA9B5B,YAMW,IALCK,EAKF,EALTC,UACAC,EAIS,EAJTA,gBACAC,EAGS,EAHTA,WACAC,EAES,EAFTA,WACGC,EACM,yEACT,OACC,kBAAC,IAAD,iBACKA,EADL,CAECC,OAAQ,SAAAV,GACP,MACsB,WAApBM,GAAgCE,GACZ,cAApBF,IAAoCE,EAE9B,kBAACJ,EAAcJ,GACQ,YAApBM,EACH,kBAAC,EAAD,MAGN,kBAAC,IAAD,CACCK,GAAE,UAAKJ,EAAL,iBAAwBhD,OAAOC,SAASoD,mBC1B3CC,EAAaC,gBAAK,kBAAM,6EACxBC,EAAgBD,gBAAK,kBAAM,6EAC3BE,EAAsBF,gBAAK,kBAAM,6EACjCG,EAA2BH,gBAAK,kBAAM,6EACtCI,EAAiBJ,gBAAK,kBAAM,gEAC5BK,EAAgBL,gBAAK,kBAAM,kCAEjC,SAASP,EAAWa,GACnB,OAAO,kBAAC,IAAD,CAAUT,GAAIS,IAoFPC,mBAjFf,WAAgB,IAAD,EACsBC,cAA5BC,EADM,EACNA,aAAcC,EADR,EACQA,UAUtB,OACC,oCACC,kBAAC,EAAD,CAASvB,KAAMsB,EAAaE,gBACzBF,EAAaG,UACf,kBAACC,EAAA,EAAD,CACCC,OAAQL,EAAaG,SACrBG,iBAAkB,IAClBC,QAASP,EAAaQ,cACtBC,aAAc,CAAEC,SAAU,MAAOC,WAAY,UAE7C,kBAACC,EAAA,EAAD,CACCC,UAAW,EACXC,QAAQ,SACRP,QAASP,EAAaQ,cACtBO,SAAUf,EAAaG,SAAUW,SAEhCd,EAAaG,SAAUa,MAI3B,kBAAC,WAAD,CAAUC,SAAU,kBAAC,EAAD,OACnB,kBAAC,IAAD,KACC,kBAAC,IAAD,CAAOC,OAAK,EAACrB,KAAK,IAAIV,OA9BD,WACxB,OAAOH,EAAW,iBA8Bf,kBAACJ,EAAD,CACCK,YAAY,EACZD,WAAW,aACXD,gBAAiBkB,EAAUlB,gBAC3BmC,OAAK,EACLrB,KAAK,SACLf,UAAWQ,IAEZ,kBAACV,EAAD,CACCK,YAAY,EACZD,WAAW,aACXD,gBAAiBkB,EAAUlB,gBAC3BmC,OAAK,EACLrB,KAAK,YACLf,UAAWU,IAEZ,kBAACZ,EAAD,CACCK,YAAY,EACZD,WAAW,aACXD,gBAAiBkB,EAAUlB,gBAC3BmC,OAAK,EACLrB,KAAK,kBACLf,UAAWW,IAEZ,kBAACb,EAAD,CACCK,YAAY,EACZD,WAAW,aACXD,gBAAiBkB,EAAUlB,gBAC3BmC,OAAK,EACLrB,KAAK,yBACLf,UAAWY,IAEZ,kBAACd,EAAD,CACCK,YAAY,EACZD,WAAW,SACXD,gBAAiBkB,EAAUlB,gBAC3Bc,KAAK,aACLf,UAAWa,IAEZ,kBAAC,IAAD,CAAOuB,OAAK,EAACrB,KAAK,OAAOf,UAAWc,IACpC,kBAAC,IAAD,CAAOC,KAAK,IAAIV,OAnEE,WACrB,OAAOH,EAAW,iB,cCfpBmC,EAAQ,KACRC,IAAOC,OAAO,SAEdF,EAAQ,KACRG,IAAQD,OAAO,SAEfE,IAASpC,OACP,kBAAC,IAAiBqC,IAChB,kBAAC,IAAD,CAAgBC,QAASA,KACvB,kBAACC,EAAA,EAAD,MACA,kBAAC,EAAD,QAGJC,SAASC,eAAe,SLHnB,SAAkBtF,GACvB,GAA6C,kBAAmBC,UAAW,CAMzE,GAJkB,IAAIsF,IACpBC,GACA9F,OAAOC,SAAS8F,MAEJC,SAAWhG,OAAOC,SAAS+F,OAIvC,OAGFhG,OAAOiG,iBAAiB,QAAQ,WAC9B,IAAM5F,EAAK,UAAMyF,GAAN,sBAEPhG,IAgEV,SAAiCO,EAAeC,GAE9C4F,MAAM7F,EAAO,CACX8F,QAAS,CAAE,iBAAkB,YAE5BzF,MAAK,SAAA0F,GAEJ,IAAMC,EAAcD,EAASD,QAAQG,IAAI,gBAEnB,MAApBF,EAASG,QACO,MAAfF,IAA8D,IAAvCA,EAAYG,QAAQ,cAG5CjG,UAAUC,cAAciG,MAAM/F,MAAK,SAAAC,GACjCA,EAAa+F,aAAahG,MAAK,WAC7BV,OAAOC,SAAS0G,eAKpBvG,EAAgBC,EAAOC,MAG1BgB,OAAM,WACLJ,QAAQC,IACN,oEAvFAyF,CAAwBvG,EAAOC,GAI/BC,UAAUC,cAAciG,MAAM/F,MAAK,WACjCQ,QAAQC,IACN,iHAMJf,EAAgBC,EAAOC,OKzB/BE,I,kNC9BaqG,EAAb,WAME,WAAmBC,GAAkB,yBAL7BA,aAK4B,OAJ5BX,QAAqC,CAC3CY,OAAQ,oBAIRC,KAAKF,QAAUA,EAPnB,sDAUmBG,EAAaC,GAC5BF,KAAKb,QAAL,2BAAoBa,KAAKb,SAAzB,kBAAmCc,EAAMC,MAX7C,mCAcsBD,UACXD,KAAKb,QAAQc,KAfxB,oEAmBIpD,EACAsD,GApBJ,sGAqBIC,EArBJ,gCAsBIjB,EAtBJ,+BAsByC,GAEjCkB,EAxBR,2BAwB0BL,KAAKb,SAAYA,GAEnCmB,EAAwC,KACxCF,GACIG,EAAS,IAAIC,kBACnBC,OAAOC,KAAKP,GAAQ,IAAIQ,SAAQ,SAACV,GAAD,OAC9BM,EAAOK,OAAOX,EAAME,EAAaF,OAEnCK,EAAOC,IAEPF,EAAU,2BAAQA,GAAR,IAAoB,eAAgB,qBAE9CC,EAAOO,KAAKC,UAAUX,IApC5B,kBAwC6BjB,IAAM,GAAD,OAAIc,KAAKF,QAAT,YAAoBjD,GAAQ,CACtDkE,OAAQ,OACRT,OACAnB,QAASkB,IA3CjB,aAwCYjB,EAxCZ,QA8CmBG,OAAS,KA9C5B,kCA+C8BH,EAAS4B,OA/CvC,WA+CcC,EA/Cd,OAiDgC,MAApB7B,EAASG,OAjDrB,uBAkDgB,IAAI2B,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,oBAlD9C,WAqDgC,MAApB/B,EAASG,OArDrB,uBAsDgB,IAAI2B,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,qBAtD9C,cAyDc,IAAID,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,6BAzD5C,yBA4DmB/B,EAAS4B,OA5D5B,4QAmEInE,EACAsD,GApEJ,sGAqEIC,EArEJ,gCAsEIjB,EAtEJ,+BAsEyC,GAEjCkB,EAxER,2BAwE0BL,KAAKb,SAAYA,GAEnCmB,EAAwC,KACxCF,GACIG,EAAS,IAAIC,kBACnBC,OAAOC,KAAKP,GAAMQ,SAAQ,SAACV,GAAD,OACxBM,EAAOK,OAAOX,EAAME,EAAaF,OAEnCK,EAAOC,IAEPF,EAAU,2BAAQA,GAAR,IAAoB,eAAgB,qBAE9CC,EAAOO,KAAKC,UAAUX,IApF5B,kBAwF6BjB,IAAM,GAAD,OAAIc,KAAKF,QAAT,YAAoBjD,GAAQ,CACtDkE,OAAQ,MACRT,OACAnB,QAASkB,IA3FjB,aAwFYjB,EAxFZ,QA8FmBG,OAAS,KA9F5B,kCA+F8BH,EAAS4B,OA/FvC,WA+FcC,EA/Fd,OAiGgC,MAApB7B,EAASG,OAjGrB,uBAkGgB,IAAI2B,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,oBAlG9C,WAqGgC,MAApB/B,EAASG,OArGrB,uBAsGgB,IAAI2B,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,qBAtG9C,cAyGc,IAAID,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,6BAzG5C,yBA4GmB/B,EAAS4B,OA5G5B,4QAmHInE,GAnHJ,kGAoHIsC,EApHJ,+BAoHyC,GAE/BkB,EAtHV,2BAuHSL,KAAKb,SACLA,GAxHT,SA2H2BD,IAAM,GAAD,OAAIc,KAAKF,QAAT,YAAoBjD,GAAQ,CACtDkE,OAAQ,MACR5B,QAASkB,IA7Hf,aA2HUjB,EA3HV,QAgIiBG,OAAS,KAhI1B,iCAiI4BH,EAAS4B,OAjIrC,aAiIYC,EAjIZ,OAkIY,IAAIC,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,6BAlI1C,mCAsIyB/B,EAAS4B,OAtIlC,eAsIYA,EAtIZ,yBAuIaA,GAvIb,4DAyIa,MAzIb,qLA8IInE,GA9IJ,gGA+IIsC,EA/IJ,+BA+IyC,GAE/BkB,EAjJV,2BAiJ4BL,KAAKb,SAAYA,GAjJ7C,SAmJ2BD,IAAM,GAAD,OAAIc,KAAKF,QAAT,YAAoBjD,GAAQ,CACtDkE,OAAQ,SACR5B,QAASkB,IArJf,aAmJUjB,EAnJV,QAwJiBG,OAAS,KAxJ1B,iCAyJ4BH,EAAS4B,OAzJrC,aAyJYC,EAzJZ,OA0JY,IAAIC,OAAa,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAASE,UAAW,6BA1J1C,yBA6JkB/B,EAAS4B,OA7J3B,wJ,iBC2BaI,EAAM,IAAIvB,EAAM,kCAGhBwB,EAAK,uCAAG,WAAOC,EAAkBC,GAAzB,SAAAC,EAAA,sEACNJ,EAAIK,KAA2C,aAAc,CACxEH,WACAC,aAHiB,mFAAH,wDAOL9H,EAAQ,uCAAG,WAAO0G,GAAP,qBAAAqB,EAAA,6DAMdE,EAAwCvB,EAAxCuB,SAAUJ,EAA8BnB,EAA9BmB,SAAUK,EAAoBxB,EAApBwB,MAAOJ,EAAapB,EAAboB,SANb,SAQTH,EAAIK,KAAW,gBAAiB,CAC3CH,WACAC,WACAI,QACAD,aAZoB,mFAAH,sDAgBRE,EAAU,uCAAG,WAAOzB,GAAP,6BAAAqB,EAAA,6DAWtBE,EAQEvB,EARFuB,SACAJ,EAOEnB,EAPFmB,SACAK,EAMExB,EANFwB,MACAJ,EAKEpB,EALFoB,SACAM,EAIE1B,EAJF0B,gBACAtC,EAGEY,EAHFZ,OACAuC,EAEE3B,EAFF2B,iBACAC,EACE5B,EADF4B,cAlBsB,SAqBXX,EAAIK,KAAW,eAAgB,CAC1CH,WACAC,WACAI,QACAD,WACAG,kBACAtC,SACAwC,gBACAD,qBA7BsB,mFAAH,sDAiCVE,EAAU,uCAAG,WACxB7B,EAUA8B,GAXwB,6BAAAT,EAAA,6DActBE,EAQEvB,EARFuB,SACAJ,EAOEnB,EAPFmB,SACAK,EAMExB,EANFwB,MACAJ,EAKEpB,EALFoB,SACAM,EAIE1B,EAJF0B,gBACAtC,EAGEY,EAHFZ,OACAwC,EAEE5B,EAFF4B,cACAD,EACE3B,EADF2B,iBArBsB,SAwBXV,EAAIc,IAAJ,gBAAuBD,GAAM,CACxCX,WACAC,WACAI,QACAD,WACAG,kBACAtC,SACAwC,gBACAD,qBAhCsB,mFAAH,wDAoCVK,EAAa,uCAAG,WAAOhC,GAAP,qBAAAqB,EAAA,6DAMnBE,EAAwCvB,EAAxCuB,SAAUJ,EAA8BnB,EAA9BmB,SAAUK,EAAoBxB,EAApBwB,MAAOJ,EAAapB,EAAboB,SANR,SAQdH,EAAIc,IAAJ,gBAA+B,CAC1CZ,WACAC,WACAI,QACAD,aAZyB,mFAAH,sDAgBbU,EAAW,uCAAG,sBAAAZ,EAAA,sEACZJ,EAAI9B,IAAU,gBADF,mFAAH,qDAIX+C,EAAQ,uCAAG,WAAOC,EAAeC,EAAgBC,GAAtC,SAAAhB,EAAA,sEACTJ,EAAI9B,IAAJ,sBACIgD,EADJ,mBACoBC,EADpB,gBACkCC,IAFzB,mFAAH,0DAMRC,EAAO,uCAAG,WAAOnB,GAAP,SAAAE,EAAA,sEACRJ,EAAI9B,IAAJ,gBAAuBgC,IADf,mFAAH,sDAIPoB,EAAU,uCAAG,WAAOT,GAAP,SAAAT,EAAA,sEACXJ,EAAIuB,IAAJ,gBAAiBV,IADN,mFAAH,sDAIVW,EAAmB,uCAAG,WACjCJ,EACAF,EACAC,GAHiC,SAAAf,EAAA,sEAKpBJ,EAAI9B,IAAJ,kCACgBgD,GAAS,IADzB,mBACuCC,GAAU,EADjD,gBAC0DC,IANtC,mFAAH,0DAUnBK,EAAqB,uCAAG,WAAOZ,GAAP,SAAAT,EAAA,sEACtBJ,EAAIuB,IAAJ,4BAA6BV,IADP,mFAAH,sDAIrBa,GAAW,uCAAG,WAAO3C,GAAP,mBAAAqB,EAAA,6DAKjBuB,EAAgC5C,EAAhC4C,KAAMC,EAA0B7C,EAA1B6C,cAAezD,EAAWY,EAAXZ,OALJ,SAOZ6B,EAAIK,KAAsB,2BAA4B,CACjEsB,OACAC,gBACAzD,WAVuB,mFAAH,sDAcX0D,GAAW,uCAAG,WACzB9C,EAKA8B,GANyB,mBAAAT,EAAA,6DAQjBuB,EAAgC5C,EAAhC4C,KAAMC,EAA0B7C,EAA1B6C,cAAezD,EAAWY,EAAXZ,OARJ,SAUZ6B,EAAIc,IAAJ,4BAA8CD,GAAM,CAC/Dc,OACAC,gBACAzD,WAbuB,mFAAH,wDAiBX2D,GAAkB,uCAAG,WAAOjB,GAAP,SAAAT,EAAA,sEACnBJ,EAAI9B,IAAJ,4BAA8C2C,IAD3B,mFAAH,sDAIlBkB,GAAc,uCAAG,WAAOb,EAAgBC,GAAvB,SAAAf,EAAA,sEACfJ,EAAI9B,IAAJ,4BACUgD,GAAS,IADnB,mBACiCC,GAAU,IAF5B,mFAAH,wDAMda,GAAQ,uCAAG,WACtBZ,EACAF,EACAC,GAHsB,SAAAf,EAAA,sEAKTJ,EAAI9B,IAAJ,sBACIgD,GAAS,IADb,mBAC2BC,GAAU,EADrC,gBAC8CC,IANrC,mFAAH,0DAURa,GAAO,uCAAG,WAAOpB,GAAP,SAAAT,EAAA,sEACRJ,EAAI9B,IAAJ,gBAAuB2C,IADf,mFAAH,sDAIPqB,GAAU,uCAAG,WAAOnD,GAAP,mBAAAqB,EAAA,6DAKhBuB,EAAsB5C,EAAtB4C,KAAMxD,EAAgBY,EAAhBZ,OAAQgE,EAAQpD,EAARoD,IALE,SAOXnC,EAAIK,KAAW,eAAgB,CAC1CsB,OACAxD,SACAgE,QAVsB,mFAAH,sDAcVC,GAAU,uCAAG,WAAOvB,GAAP,SAAAT,EAAA,sEACXJ,EAAIuB,IAAJ,gBAAiBV,IADN,mFAAH,sDAIVwB,GAAU,uCAAG,WACxBtD,EAKA8B,GANwB,mBAAAT,EAAA,6DAQhBuB,EAAsB5C,EAAtB4C,KAAMxD,EAAgBY,EAAhBZ,OAAQgE,EAAQpD,EAARoD,IARE,SAUXnC,EAAIc,IAAJ,gBAAuBD,GAAM,CACxCc,OACAxD,SACAgE,QAbsB,mFAAH,wDAiBVG,GAAW,uCAAG,WACzBlB,EACAF,EACAC,GAHyB,SAAAf,EAAA,sEAKZJ,EAAI9B,IAAJ,yBACOgD,EADP,mBACuBC,EADvB,gBACqCC,IANzB,mFAAH,0DAUXmB,GAAU,uCAAG,WAAO1B,GAAP,SAAAT,EAAA,sEACXJ,EAAI9B,IAAJ,mBAA6B2C,IADlB,mFAAH,sDAIV2B,GAAa,uCAAG,WAAOzD,GAAP,qBAAAqB,EAAA,6DAMnBuB,EAA4B5C,EAA5B4C,KAAMxD,EAAsBY,EAAtBZ,OAAQsE,EAAc1D,EAAd0D,KAAMN,EAAQpD,EAARoD,IAND,SAQdnC,EAAIK,KAAc,kBAAmB,CAChDsB,OACAxD,SACAsE,OACAN,QAZyB,mFAAH,sDAgBbO,GAAa,uCAAG,WAAO7B,GAAP,SAAAT,EAAA,sEACdJ,EAAIuB,IAAJ,mBAAoBV,IADN,mFAAH,sDAIb8B,GAAa,uCAAG,WAC3B5D,EAMA8B,GAP2B,qBAAAT,EAAA,6DASnBuB,EAA4B5C,EAA5B4C,KAAMxD,EAAsBY,EAAtBZ,OAAQsE,EAAc1D,EAAd0D,KAAMN,EAAQpD,EAARoD,IATD,SAWdnC,EAAIc,IAAJ,mBAA0BD,GAAM,CAC3Cc,OACAxD,SACAsE,OACAN,QAfyB,mFAAH,wDAmBbS,GAAW,uCAAG,WACzBxB,EACAF,EACAC,GAHyB,SAAAf,EAAA,sEAKZJ,EAAI9B,IAAJ,yBACOgD,EADP,mBACuBC,EADvB,gBACqCC,IANzB,mFAAH,0DAUXyB,GAAU,uCAAG,WAAOhC,GAAP,SAAAT,EAAA,sEACXJ,EAAI9B,IAAJ,mBAA6B2C,IADlB,mFAAH,sDAIViC,GAAa,uCAAG,WAAO/D,GAAP,uBAAAqB,EAAA,6DAOnBuB,EAAqD5C,EAArD4C,KAAMxD,EAA+CY,EAA/CZ,OAAQ4E,EAAuChE,EAAvCgE,WAAYZ,EAA2BpD,EAA3BoD,IAAKa,EAAsBjE,EAAtBiE,kBAPZ,SASdhD,EAAIK,KAAc,kBAAmB,CAChDsB,OACAxD,SACA4E,aACAC,oBACAb,QAdyB,mFAAH,sDAkBbc,GAAa,uCAAG,WAAOpC,GAAP,SAAAT,EAAA,sEACdJ,EAAIuB,IAAJ,mBAAoBV,IADN,mFAAH,sDAIbqC,GAAa,uCAAG,WAC3BnE,EAOA8B,GAR2B,uBAAAT,EAAA,6DAUnBuB,EAAqD5C,EAArD4C,KAAMxD,EAA+CY,EAA/CZ,OAAQ4E,EAAuChE,EAAvCgE,WAAYZ,EAA2BpD,EAA3BoD,IAAKa,EAAsBjE,EAAtBiE,kBAVZ,SAYdhD,EAAIc,IAAJ,mBAA0BD,GAAM,CAC3Cc,OACAxD,SACA4E,aACAC,oBACAb,QAjByB,mFAAH,wDAqBbgB,GAAO,uCAAG,WACrBjC,EACAC,GAFqB,+BAAAf,EAAA,6DAGrBgD,EAHqB,+BASV,KAELrE,EAAY,GAEdqE,GAASA,EAAMC,SACjBtE,EAAKuE,OAASF,EAAMC,QAElBD,GAASA,EAAMG,QAAUH,EAAMG,OAAOC,UAAYJ,EAAMG,OAAOE,UACjE1E,EAAKyE,SAAWJ,EAAMG,OAAOC,SAC7BzE,EAAK0E,QAAUL,EAAMG,OAAOE,SAE1BvC,IACFnC,EAAKmC,MAAQA,GAEXC,IACFpC,EAAKoC,OAASA,GAGVuC,EAAeC,IAAYjE,UAAUX,GA3BtB,SA6BRiB,EAAI9B,IAAJ,gBAAiDwF,IA7BzC,oFAAH,wDAgCPE,GAAS,uCAAG,WACvBR,EAOAlC,EACAC,GATuB,SAAAf,EAAA,sEAWVJ,EAAI9B,IAAJ,uBACKgD,GAAS,GADd,mBAC2BC,GAAU,EADrC,wBAETiC,EAAMS,cAAe,EAFZ,uBAGIT,EAAMU,YAAc,GAHxB,sBAITV,EAAMW,WAAa,GAJV,mBAKAX,EAAMY,QAAU,GALhB,kBAK4BZ,EAAMhC,MAhBxB,mFAAH,0DAoBT6C,GAAQ,uCAAG,WAAOpD,GAAP,SAAAT,EAAA,sEACTJ,EAAI9B,IAAJ,iBAAyB2C,IADhB,mFAAH,sDAIRqD,GAAW,uCAAG,WAAOnF,GAAP,yBAAAqB,EAAA,6DAQjB+D,EAA6DpF,EAA7DoF,OAAQH,EAAqDjF,EAArDiF,OAAQI,EAA6CrF,EAA7CqF,UAAWjC,EAAkCpD,EAAlCoD,IAAKkC,EAA6BtF,EAA7BsF,iBAAkBlG,EAAWY,EAAXZ,OARjC,SAUZ6B,EAAIK,KAAY,gBAAiB,CAC5C8D,SACAH,SACAI,YACAjC,MACAkC,mBACAlG,WAhBuB,mFAAH,sDAoBXmG,GAAY,uCAAG,WAAOvF,GAAP,yBAAAqB,EAAA,6DAQlBmE,EAA4DxF,EAA5DwF,MAAOP,EAAqDjF,EAArDiF,OAAQI,EAA6CrF,EAA7CqF,UAAWjC,EAAkCpD,EAAlCoD,IAAKkC,EAA6BtF,EAA7BsF,iBAAkBlG,EAAWY,EAAXZ,OAR/B,SAUb6B,EAAIK,KAAY,qBAAsB,CACjDkE,QACAP,SACAI,YACAjC,MACAkC,mBACAlG,WAhBwB,mFAAH,sDAoBZqG,GAAW,uCAAG,WAAO3D,GAAP,SAAAT,EAAA,sEACZJ,EAAIuB,IAAJ,iBAAkBV,IADN,mFAAH,sDAIX4D,GAAW,uCAAG,WACzB1F,EAOA8B,GARyB,uBAAAT,EAAA,6DAUjB+D,EAAkDpF,EAAlDoF,OAAQH,EAA0CjF,EAA1CiF,OAAQ7B,EAAkCpD,EAAlCoD,IAAKkC,EAA6BtF,EAA7BsF,iBAAkBlG,EAAWY,EAAXZ,OAVtB,SAYZ6B,EAAIc,IAAJ,iBAAyBD,GAAM,CAC1CsD,SACAH,SACA7B,MACAkC,mBACAlG,WAjBuB,mFAAH,wDAqBXuG,GAAa,uCAAG,WAAO3F,GAAP,yBAAAqB,EAAA,6DASzBuE,EAME5F,EANF4F,iBACAC,EAKE7F,EALF6F,OACAC,EAIE9F,EAJF8F,QACA1C,EAGEpD,EAHFoD,IACA2C,EAEE/F,EAFF+F,aACAC,EACEhG,EADFgG,UAdyB,SAiBd/E,EAAIK,KAAJ,kBAA2C,CACtDsE,mBACAI,YACAH,SACAC,UACA1C,MACA2C,iBAvByB,mFAAH,sDA2BbE,GAAiB,uCAAG,WAC/B9D,EACAC,EACAiC,GAH+B,iBAAAhD,EAAA,6DAWzBrB,EAAY,GAEdmC,IACFnC,EAAKmC,MAAQA,GAGXC,IACFpC,EAAKoC,OAASA,GAGZiC,GAASA,EAAMU,aACjB/E,EAAK+E,WAAaV,EAAMU,YAGtBV,GAASA,EAAMG,QAAUH,EAAMG,OAAOC,UAAYJ,EAAMG,OAAOE,UACjE1E,EAAKyE,SAAWJ,EAAMG,OAAOC,SAC7BzE,EAAK0E,QAAUL,EAAMG,OAAOE,SAGxBC,EAAeC,IAAYjE,UAAUX,GA9BZ,SAgClBiB,EAAI9B,IAAJ,0BACQwF,IAjCU,mFAAH,0DAqCjBuB,GAAgB,uCAAG,WAAOpE,GAAP,SAAAT,EAAA,sEACjBJ,EAAI9B,IAAJ,0BAA0C2C,IADzB,mFAAH,sDAIhBqE,GAAW,uCAAG,WACzB9B,EAQAlC,EACAC,GAVyB,SAAAf,EAAA,sEAYZJ,EAAI9B,IAAJ,yBACOgD,GAAS,GADhB,mBAC6BC,GAAU,EADvC,wBAETiC,EAAMS,cAAe,EAFZ,sBAGGT,EAAM+B,YAAa,EAHtB,uBAIT/B,EAAMU,YAAc,GAJX,sBAKGV,EAAMW,WAAa,GALtB,mBAMTX,EAAMY,QAAU,GANP,kBAODZ,EAAMhC,MAnBO,mFAAH,0DAuBXgE,GAAU,uCAAG,WAAOvE,GAAP,SAAAT,EAAA,sEACXJ,EAAI9B,IAAJ,mBAA6B2C,IADlB,mFAAH,sDAIVwE,GAAa,uCAAG,WAAOtG,GAAP,yBAAAqB,EAAA,6DASzB2D,EAMEhF,EANFgF,UACAuB,EAKEvG,EALFuG,QACAnD,EAIEpD,EAJFoD,IACAoD,EAGExG,EAHFwG,mBACAC,EAEEzG,EAFFyG,YACArH,EACEY,EADFZ,OAdyB,SAiBd6B,EAAIK,KAAc,kBAAmB,CAChD0D,YACAuB,UACAnD,MACAqD,cACAD,qBACApH,WAvByB,mFAAH,sDA2BbsH,GAAa,uCAAG,WAC3B1G,EAOA8B,GAR2B,uBAAAT,EAAA,6DAUnB2D,EAA4DhF,EAA5DgF,UAAW5B,EAAiDpD,EAAjDoD,IAAKoD,EAA4CxG,EAA5CwG,mBAAoBC,EAAwBzG,EAAxByG,YAAarH,EAAWY,EAAXZ,OAV9B,SAYd6B,EAAIc,IAAJ,mBAA6BD,GAAM,CAC9CkD,YACA5B,MACAoD,qBACAC,cACArH,WAjByB,mFAAH,wDAqBbuH,GAAoB,uCAAG,WAAO7E,GAAP,SAAAT,EAAA,sEACrBJ,EAAIK,KAAJ,+BAA0CQ,IADrB,mFAAH,sDAIpB8E,GAAW,uCAAG,WACzB5G,EAQA8B,GATyB,yBAAAT,EAAA,6DAYvBwF,EAME7G,EANF6G,WACAzD,EAKEpD,EALFoD,IACA0D,EAIE9G,EAJF8G,WACAC,EAGE/G,EAHF+G,SACAC,EAEEhH,EAFFgH,kBACAC,EACEjH,EADFiH,iBAjBuB,SAoBZhG,EAAIK,KAAJ,+BAA8CQ,GAAM,CAC/D+E,aACAzD,MACA0D,aACAC,WACAC,oBACAC,qBA1BuB,mFAAH,wDA8BXC,GAAe,uCAAG,WAC7B/E,EACAC,EACAiC,GAH6B,iBAAAhD,EAAA,6DAWvBrB,EAAY,GAEdmC,IACFnC,EAAKmC,MAAQA,GAGXC,IACFpC,EAAKoC,OAASA,GAGZiC,GAASA,EAAMW,YACjBhF,EAAKgF,UAAYX,EAAMW,WAGrBX,GAASA,EAAMG,QAAUH,EAAMG,OAAOC,UAAYJ,EAAMG,OAAOE,UACjE1E,EAAKyE,SAAWJ,EAAMG,OAAOC,SAC7BzE,EAAK0E,QAAUL,EAAMG,OAAOE,SAGxBC,EAAeC,IAAYjE,UAAUX,GA9Bd,SAgChBiB,EAAI9B,IAAJ,+BACawF,IAjCG,mFAAH,0DAqCfwC,GAAc,uCAAG,WAAOrF,GAAP,SAAAT,EAAA,sEACfJ,EAAI9B,IAAJ,+BAA6C2C,IAD9B,mFAAH,sDAIdsF,GAAQ,uCAAG,WACtB/C,EAWAlC,EACAC,GAbsB,iBAAAf,EAAA,6DAehBrB,EAAY,GAEdqE,GAASA,EAAMC,SACjBtE,EAAKsE,OAASD,EAAMC,QAGlBD,GAASA,EAAMW,YACjBhF,EAAKgF,UAAYX,EAAMW,WAGrBX,GAASA,EAAMgD,UAAYhD,EAAMgD,SAASC,SAAS,kBACrDtH,EAAKuH,gBAAiB,EAEtBvH,EAAKuH,gBAAiB,EAItBlD,GACAA,EAAMgD,UACNhD,EAAMgD,SAASC,SAAS,sBAExBtH,EAAKwH,oBAAqB,EAE1BxH,EAAKwH,oBAAqB,EAGxBnD,GAASA,EAAMgD,UAAYhD,EAAMgD,SAASC,SAAS,kBACrDtH,EAAKyH,gBAAiB,EAEtBzH,EAAKyH,gBAAiB,EAGpBpD,GAASA,EAAMqD,YACjB1H,EAAK0H,UAAYrD,EAAMqD,WAGrBrD,GAASA,EAAMY,SACjBjF,EAAKiF,OAASZ,EAAMY,QAGlBZ,GAASA,EAAMG,QAAUH,EAAMG,OAAOC,UAAYJ,EAAMG,OAAOE,UACjE1E,EAAKyE,SAAWJ,EAAMG,OAAOC,SAC7BzE,EAAK0E,QAAUL,EAAMG,OAAOE,SAE1BvC,IACFnC,EAAKmC,MAAQA,GAEXC,IACFpC,EAAKoC,OAASA,GAGVuC,EAAeC,IAAYjE,UAAUX,GAlErB,UAoETiB,EAAI9B,IAAJ,oBACEwF,IArEO,qFAAH,0DAyERgD,GAAO,uCAAG,WAAOC,GAAP,SAAAvG,EAAA,sEACRJ,EAAI9B,IAAJ,oBAA2ByI,IADnB,mFAAH,sDAIPC,GAAU,uCAAG,WAAO7H,GAAP,uBAAAqB,EAAA,6DAQtBqG,EAKE1H,EALF0H,UACAL,EAIErH,EAJFqH,SACAjE,EAGEpD,EAHFoD,IACA4D,EAEEhH,EAFFgH,kBACAC,EACEjH,EADFiH,iBAZsB,SAeXhG,EAAIK,KAAW,mBAAoB,CAC9CoG,YACAL,WACAjE,MACA4D,oBACAC,qBApBsB,mFAAH,sDAwBVa,GAAU,uCAAG,WACxB9H,EAKA4H,GANwB,mBAAAvG,EAAA,6DAQhB+B,EAA6CpD,EAA7CoD,IAAK4D,EAAwChH,EAAxCgH,kBAAmBC,EAAqBjH,EAArBiH,iBARR,SAUXhG,EAAIc,IAAJ,oBAA2B6F,GAAU,CAChDxE,MACA4D,oBACAC,qBAbsB,mFAAH,wDAiBVc,GAAU,uCAAG,WAAOH,GAAP,SAAAvG,EAAA,sEACXJ,EAAIK,KAAJ,2BAAsCsG,IAD3B,mFAAH,sDAIVI,GAAoB,uCAAG,WAAON,GAAP,eAAArG,EAAA,sEACfJ,EAAI9B,IAAJ,6BAAoCuI,IADrB,cAC5B1H,EAD4B,yBAE3BA,GAF2B,2CAAH,sDAKpBiI,GAAkB,uCAAG,WAAO1B,GAAP,eAAAlF,EAAA,sEACbJ,EAAI9B,IAAJ,oCAA2CoH,IAD9B,cAC1BvG,EAD0B,yBAEzBA,GAFyB,2CAAH,sDAKlBkI,GAAY,uCAAG,WAAOpG,GAAP,SAAAT,EAAA,sEACbJ,EAAIK,KAAJ,iCAA4CQ,IAD/B,mFAAH,sDAIZqG,GAAY,uCAAG,sBAAA9G,EAAA,sEACbJ,EAAI9B,IAAJ,0BADa,mFAAH,qDAIZiJ,GAAa,uCAAG,sBAAA/G,EAAA,sEACdJ,EAAI9B,IAAJ,2BADc,mFAAH,qDAIbkJ,GAAkB,uCAAG,WAChC3E,EACA4E,GAFgC,SAAAjH,EAAA,0DAI5BiH,EAJ4B,gCAKjBrH,EAAI9B,IAAJ,mCACiBuE,EADjB,+BAC4C4E,IAN3B,+DASjBrH,EAAI9B,IAAJ,mCACiBuE,IAVA,mFAAH,wDAelB6E,GAAY,uCAAG,sBAAAlH,EAAA,sEACbJ,EAAI9B,IAAJ,0BADa,mFAAH,qDAIZqJ,GAAY,uCAAG,4CAAAnH,EAAA,6DAC1BgD,EAD0B,+BASf,KAELrE,EAAY,GAEdqE,GAASA,EAAMoE,aACjBzI,EAAKyI,WAAapE,EAAMoE,YAEtBpE,GAASA,EAAMqE,YACjB1I,EAAK0I,UAAYrE,EAAMqE,WAErBrE,GAASA,EAAMG,QAAUH,EAAMG,OAAOC,UAAYJ,EAAMG,OAAOE,UACjE1E,EAAKyE,SAAWJ,EAAMG,OAAOC,SAC7BzE,EAAK0E,QAAUL,EAAMG,OAAOE,SAE1BL,GAASA,EAAMsE,UACjB3I,EAAK2I,QAAUtE,EAAMsE,SAGjBhE,EAAeC,IAAYjE,UAAUX,GA3BjB,SA6BbiB,EAAI9B,IAAJ,iCACewF,IA9BF,oFAAH,qDAkCZiE,GAAe,uCAAG,4CAAAvH,EAAA,6DAC7BgD,EAD6B,+BAOlB,KAELrE,EAAY,GAEdqE,GAASA,EAAMoE,aACjBzI,EAAKyI,WAAapE,EAAMoE,YAEtBpE,GAASA,EAAMG,QAAUH,EAAMG,OAAOC,UAAYJ,EAAMG,OAAOE,UACjE1E,EAAKyE,SAAWJ,EAAMG,OAAOC,SAC7BzE,EAAK0E,QAAUL,EAAMG,OAAOE,SAGxBC,EAAeC,IAAYjE,UAAUX,GAnBd,SAqBhBiB,EAAI9B,IAAJ,oCACkBwF,IAtBF,mFAAH,qDA0BfkE,GAAuB,uCAAG,4CAAAxH,EAAA,6DACrCgD,EADqC,+BAO1B,KAELrE,EAAY,GAEdqE,GAASA,EAAMoE,aACjBzI,EAAKyI,WAAapE,EAAMoE,YAEtBpE,GAASA,EAAMG,QAAUH,EAAMG,OAAOC,UAAYJ,EAAMG,OAAOE,UACjE1E,EAAKyE,SAAWJ,EAAMG,OAAOC,SAC7BzE,EAAK0E,QAAUL,EAAMG,OAAOE,SAGxBC,EAAeC,IAAYjE,UAAUX,GAnBN,SAqBxBiB,EAAI9B,IAAJ,4CAC0BwF,IAtBF,mFAAH,qDA0BvBmE,GAAU,uCAAG,WACxBzG,EACAF,EACAC,GAHwB,SAAAf,EAAA,sEAKXJ,EAAI9B,IAAJ,wBACMgD,GAAS,IADf,mBAC6BC,GAAU,EADvC,gBACgDC,IANrC,mFAAH,0DAUV0G,GAAY,uCAAG,WAAO/I,GAAP,iBAAAqB,EAAA,6DAClBuB,EAAiB5C,EAAjB4C,KAAMxD,EAAWY,EAAXZ,OADY,SAGb6B,EAAIK,KAAa,iBAAkB,CAC9CsB,OACAxD,WALwB,mFAAH,sDASZ4J,GAAY,uCAAG,WAC1BhJ,EAIA8B,GAL0B,iBAAAT,EAAA,6DAOlBuB,EAAiB5C,EAAjB4C,KAAMxD,EAAWY,EAAXZ,OAPY,SASb6B,EAAIc,IAAJ,kBAA2BD,GAAM,CAC5Cc,OACAxD,WAXwB,mFAAH,wDAeZ6J,GAAS,uCAAG,WAAOnH,GAAP,SAAAT,EAAA,sEACVJ,EAAI9B,IAAJ,kBAA2B2C,IADjB,mFAAH,sD,QC99BToH,IAAb,aAGE,WAAYC,GAAuB,IAAD,gCAFxBA,eAEwB,oHAU3BC,sBAAwB,WAAO,IAAD,EACnC,SAAQ,UAAC,EAAKC,YAAN,aAAC,EAAW1H,mBAXY,KAc3B2H,gBAAkB,WAAkC,IAAD,uBAA7BC,EAA6B,yBAA7BA,EAA6B,gBACxD,IAAMC,EAAc,EAAKH,KAAM3H,gBAAgB8H,YAAYC,KACzD,SAACC,GAAD,OAAOA,EAAE3J,SAGX,OAAOyJ,EAAYG,MAAK,SAACD,GAAD,OAAOH,EAAOjC,SAASoC,IAAY,iBAANA,MAnBrB,gJAChC7J,KAAKsJ,UAAYA,EAEjBtJ,KAAK+J,gBANT,4DA2BI,OAAI/J,KAAKgK,iBACA,UACEhK,KAAKwJ,KACP,SAEA,gBAhCb,mDASGS,eATH,yEASwC,KATxC,kCAUGA,eAVH,yEAUyC,QAVzC,mCAWGA,eAXH,yEAW4C,QAX5C,2CAyBGC,aAzBH,uHAoCGC,WApCH,0GAqC0B,4BAAA3I,EAAA,0DAClB4I,EAAQ,EAAKA,SACLA,EAAQC,aAAaC,QAAQ,UACpCF,IAAOA,EAAQG,eAAeD,QAAQ,UAE3C,EAAKF,MAAQA,GACTA,EANkB,wBAOpBhJ,EAAIoJ,UAAU,gBAAd,iBAAyCJ,IAPrB,kBASAhI,IATA,OASlB,EAAKoH,KATa,yDAWlB,EAAKY,MAAQ,KACb,EAAKZ,KAAO,KACZa,aAAaI,QACbF,eAAeE,QACfrJ,EAAIsJ,aAAa,iBAfC,QAmBtB,EAAKV,kBAAmB,EAnBF,6DArC1B,oCA2DGG,WA3DH,yEA4DkB,WACdE,aAAaI,QACbF,eAAeE,QACfrJ,EAAIsJ,aAAa,iBACjB1R,OAAOC,SAAS0G,aAhEpB,sCAmEGwK,WAnEH,2HAoEoB,WAAOhK,GAAP,SAAAqB,EAAA,6DAMhB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAN3B,kBASRlR,EAAS0G,GATD,OAWd,EAAKmJ,UAAUsB,YAAYC,KAAK,UAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,4BACA,WAdY,gDAiBd,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,uCACf,SAnBY,yBAsBd,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAtB7B,4EApEpB,4FA8FGR,WA9FH,2HA+FiB,WACb7I,EACAC,EACAwJ,GAHa,mBAAAvJ,EAAA,6DAKb,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAErCK,EAAY,IAAIxK,gBAAgBxH,OAAOC,SAASgS,QAChDpO,EAAOmO,EAAU1L,IAAI,QARd,kBAWY+B,EAAMC,EAAUC,GAX5B,OAWLnC,EAXK,OAaP2L,EACFV,aAAaa,QAAQ,QAAS9L,EAAS+L,cAEvCZ,eAAeW,QAAQ,QAAS9L,EAAS+L,cAG3C,EAAK3B,KAAOpK,EAASoK,KACrB,EAAKY,MAAQhL,EAAS+L,aACtB/J,EAAIoJ,UAAU,gBAAd,iBAAyCpL,EAAS+L,eAElD,EAAK7B,UAAUsB,YAAYC,KAAKhO,GAAQ,cAvB7B,kDAyBX,EAAKyM,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,wCACf,SA3BS,yBA8BX,EAAKmI,UAAUtM,aAAa2N,gBAAe,GA9BhC,6EA/FjB,gECFaS,IAAb,EAGE,WAAY9B,GAAuB,yBAFzBA,eAEwB,gcAChCtJ,KAAKsJ,UAAYA,EAEjB,IAAM+B,EAAkBrS,OAAOsS,WAAW,sBAE1CtL,KAAKuL,cAAcF,GACnBA,EAAgBG,YAAYxL,KAAKuL,eAE7BvL,KAAKyL,aACPzL,KAAK0L,cAAe,IAZ1B,wCAgBGzB,eAhBH,yEAgBkC,KAhBlC,0CAiBGA,eAjBH,yEAiBoC,KAjBpC,yCAkBGA,eAlBH,yEAkBmC,KAlBnC,sCAmBGA,eAnBH,yEAsBa,QAtBb,2CAwBGE,WAxBH,oFAyB0B,SAACN,GACnBA,EAAE8B,QACJ,EAAKF,YAAa,EAElB,EAAKA,YAAa,MA7BxB,0CAiCGtB,WAjCH,oFAkCwB,SACpBnM,EACAF,GAEA,EAAKX,SAAW,CAAEa,MAAKF,eAtC3B,2CAyCGqM,WAzCH,oFA0CyB,WACrB,EAAKhN,SAAW,SA3CpB,4CA8CGgN,WA9CH,oFA+C0B,SAACyB,GACvB,EAAK1O,YAAc0O,MAhDvB,8CAmDGzB,WAnDH,oFAoD4B,WACxB,EAAKuB,cAAe,MArDxB,+CAwDGvB,WAxDH,oFAyD6B,WACzB,EAAKuB,cAAe,MA1DxB,0CA6DGvB,WA7DH,oFA8DwB,WACpB,EAAKuB,cAAgB,EAAKA,iBA/D9B,GCQaG,GAGX,WAAYvC,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BjH,SAJ2B,uCAIhB,WAAOC,EAAeC,EAAgBC,GAAtC,SAAAhB,EAAA,+EAEDa,EAASC,EAAOC,EAAQC,GAFvB,+EAId,EAAK8G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,uDACf,SANY,kBAQP,MARO,yDAJgB,+DAgB3BsB,QAhB2B,uCAgBjB,WAAOnB,GAAP,SAAAE,EAAA,+EAEAiB,EAAQnB,GAFR,+EAIb,EAAKgI,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,6CACf,SANW,kBAQN,MARM,yDAhBiB,2DA4B3B2K,OA5B2B,uCA4BlB,WAAO3L,GAAP,eAAAqB,EAAA,6DAUd,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAV7B,kBAaO/I,EAAWzB,GAblB,cAaNqJ,EAbM,OAeZ,EAAKF,UAAUtM,aAAa2N,gBAAe,GAf/B,kBAiBLnB,GAjBK,gCAmBZ,EAAKF,UAAUtM,aAAa2N,gBAAe,GAE3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,gDACf,SAvBU,yDA5BkB,2DAwD3Ba,WAxD2B,uCAwDd,WAClB7B,EAUA8B,GAXkB,SAAAT,EAAA,6DAalB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAbzB,kBAgBV3I,EAAW7B,EAAM8B,GAhBP,OAkBhB,EAAKqH,UAAUsB,YAAYC,KAAK,oBAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,kCACA,WArBc,gDAwBhB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,iDACf,SA1Bc,yBA6BhB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GA7B3B,4EAxDc,6DAyF3BxI,cAzF2B,uCAyFX,WAAOhC,GAAP,SAAAqB,EAAA,6DAMrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GANtB,kBASbxI,EAAchC,GATD,OAWnB,EAAKmJ,UAAUsB,YAAYC,KAAK,cAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,kCACA,WAdiB,gDAiBnB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,iDACf,SAnBiB,yBAsBnB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAtBxB,4EAzFW,2DAmH3BjI,WAnH2B,uCAmHd,WAAOT,GAAP,SAAAT,EAAA,6DAClB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADzB,kBAIVjI,EAAWT,GAJD,cAKhB,EAAKqH,UAAUtM,aAAa8N,aAC1B,mCACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAV3B,mBAYT,GAZS,uCAchB,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,kDACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnB3B,mBAqBT,GArBS,yDAnHc,sDAChC3K,KAAKsJ,UAAYA,GCJRyC,GAGX,WAAYzC,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BpG,mBAJ2B,uCAIN,WAAOjB,GAAP,SAAAT,EAAA,+EAEX0B,GAAmBjB,GAFR,+EAIxB,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,wCACf,SANsB,kBAQjB,MARiB,yDAJM,2DAgB3ByB,oBAhB2B,uCAgBL,WAC3BJ,EACAF,EACAC,GAH2B,SAAAf,EAAA,+EAMZoB,EAAoBJ,EAAKF,EAAOC,GANpB,+EAQzB,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SACF,mEACF,SAXuB,kBAalB,MAbkB,yDAhBK,+DAiC3BgC,eAjC2B,uCAiCV,WAAOb,EAAgBC,GAAvB,SAAAf,EAAA,+EAEP2B,GAAeb,EAAOC,GAFf,+EAIpB,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,iDACf,SANkB,kBAQb,MARa,yDAjCU,6DA6C3B0B,sBA7C2B,uCA6CH,WAAOZ,GAAP,SAAAT,EAAA,6DAC7B,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADd,kBAIrB9H,EAAsBZ,GAJD,cAK3B,EAAKqH,UAAUtM,aAAa8N,aAC1B,mCACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAVhB,mBAYpB,GAZoB,uCAc3B,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,kDACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnBhB,mBAqBpB,GArBoB,yDA7CG,2DAsE3B7H,YAtE2B,uCAsEb,WAAO3C,GAAP,eAAAqB,EAAA,6DAKnB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GALxB,kBAQG7H,GAAY3C,GARf,cAQX6L,EARW,OAUjB,EAAK1C,UAAUtM,aAAa2N,gBAAe,GAV1B,kBAYVqB,GAZU,gCAcjB,EAAK1C,UAAUtM,aAAa2N,gBAAe,GAE3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,2CACf,SAlBe,yDAtEa,2DA6F3B8B,YA7F2B,uCA6Fb,WACnB9C,EAKA8B,GANmB,SAAAT,EAAA,6DAQnB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GARxB,kBAWX1H,GAAY9C,EAAM8B,GAXP,OAajB,EAAKqH,UAAUsB,YAAYC,KAAK,2BAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,6BACA,WAhBe,gDAmBjB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,4CACf,SArBe,yBAwBjB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAxB1B,4EA7Fa,wDAChC3K,KAAKsJ,UAAYA,GCLR2C,GAGX,WAAY3C,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3B3F,WAJ2B,uCAId,WAAO1B,GAAP,SAAAT,EAAA,+EAEHmC,GAAW1B,GAFR,+EAIhB,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,8CACf,SANc,kBAQT,MARS,yDAJc,2DAgB3BuC,YAhB2B,uCAgBb,WACnBlB,EACAF,EACAC,GAHmB,SAAAf,EAAA,+EAMJkC,GAAYlB,EAAKF,EAAOC,GANpB,+EAQjB,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,wDACf,SAVe,kBAYV,MAZU,yDAhBa,+DAgC3B2C,cAhC2B,uCAgCX,WAAO7B,GAAP,SAAAT,EAAA,6DACrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADtB,kBAIb7G,GAAc7B,GAJD,cAKnB,EAAKqH,UAAUtM,aAAa8N,aAC1B,oCACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAVxB,mBAYZ,GAZY,uCAcnB,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,mDACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnBxB,mBAqBZ,GArBY,yDAhCW,2DAyD3B/G,cAzD2B,uCAyDX,WAAOzD,GAAP,eAAAqB,EAAA,6DAMrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GANtB,kBASG/G,GAAczD,GATjB,cASb+L,EATa,OAWnB,EAAK5C,UAAUtM,aAAa2N,gBAAe,GAXxB,kBAaZuB,GAbY,gCAenB,EAAK5C,UAAUtM,aAAa2N,gBAAe,GAC3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,iDACf,SAlBiB,yDAzDW,2DAgF3B4C,cAhF2B,uCAgFX,WACrB5D,EAMA8B,GAPqB,SAAAT,EAAA,6DASrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GATtB,kBAYb5G,GAAc5D,EAAM8B,GAZP,OAcnB,EAAKqH,UAAUsB,YAAYC,KAAK,uBAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,mCACA,WAjBiB,gDAoBnB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,kDACf,SAtBiB,yBAyBnB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAzBxB,4EAhFW,wDAChC3K,KAAKsJ,UAAYA,GCJR6C,GAGX,WAAY7C,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BjG,QAJ2B,uCAIjB,WAAOpB,GAAP,SAAAT,EAAA,+EAEA6B,GAAQpB,GAFR,+EAIb,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,uCACf,SANW,kBAQN,MARM,yDAJiB,2DAgB3BiC,SAhB2B,uCAgBhB,WAAOZ,EAAcF,EAAgBC,GAArC,SAAAf,EAAA,+EAED4B,GAASZ,EAAKF,EAAOC,GAFpB,+EAId,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,iDACf,SANY,kBAQP,MARO,yDAhBgB,+DA4B3BqC,WA5B2B,uCA4Bd,WAAOvB,GAAP,SAAAT,EAAA,6DAClB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADzB,kBAIVnH,GAAWvB,GAJD,cAKhB,EAAKqH,UAAUtM,aAAa8N,aAC1B,6BACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAV3B,mBAYT,GAZS,uCAchB,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,4CACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnB3B,mBAqBT,GArBS,yDA5Bc,2DAqD3BrH,WArD2B,uCAqDd,WAAOnD,GAAP,eAAAqB,EAAA,6DAKlB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GALzB,kBAQGrH,GAAWnD,GARd,cAQViM,EARU,OAUhB,EAAK9C,UAAUtM,aAAa2N,gBAAe,GAV3B,kBAYTyB,GAZS,gCAchB,EAAK9C,UAAUtM,aAAa2N,gBAAe,GAE3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,0CACf,SAlBc,yDArDc,2DA4E3BsC,WA5E2B,uCA4Ed,WAClBtD,EAKA8B,GANkB,SAAAT,EAAA,6DAQlB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GARzB,kBAWVlH,GAAWtD,EAAM8B,GAXP,OAahB,EAAKqH,UAAUsB,YAAYC,KAAK,oBAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,4BACA,WAhBc,gDAmBhB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,2CACf,SArBc,yBAwBhB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAxB3B,4EA5Ec,wDAChC3K,KAAKsJ,UAAYA,GCJR+C,GAGX,WAAY/C,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BrF,WAJ2B,uCAId,WAAOhC,GAAP,SAAAT,EAAA,+EAEHyC,GAAWhC,GAFR,+EAIhB,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,2CACf,SANc,kBAQT,MARS,yDAJc,2DAgB3B6C,YAhB2B,uCAgBb,WACnBxB,EACAF,EACAC,GAHmB,SAAAf,EAAA,+EAMJwC,GAAYxB,EAAKF,EAAOC,GANpB,+EAQjB,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,qDACf,SAVe,kBAYV,MAZU,yDAhBa,+DAgC3BkD,cAhC2B,uCAgCX,WAAOpC,GAAP,SAAAT,EAAA,6DACrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADtB,kBAIbtG,GAAcpC,GAJD,cAKnB,EAAKqH,UAAUtM,aAAa8N,aAC1B,iCACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAVxB,mBAYZ,GAZY,uCAcnB,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,gDACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnBxB,mBAqBZ,GArBY,yDAhCW,2DAyD3BzG,cAzD2B,uCAyDX,WAAO/D,GAAP,eAAAqB,EAAA,6DAOrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAPtB,kBAUGzG,GAAc/D,GAVjB,cAUbmM,EAVa,OAYnB,EAAKhD,UAAUtM,aAAa2N,gBAAe,GAZxB,kBAcZ2B,GAdY,gCAgBnB,EAAKhD,UAAUtM,aAAa2N,gBAAe,GAC3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,8CACf,SAnBiB,yDAzDW,2DAiF3BmD,cAjF2B,uCAiFX,WACrBnE,EAOA8B,GARqB,SAAAT,EAAA,6DAUrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAVtB,kBAYbrG,GAAcnE,EAAM8B,GAZP,OAcnB,EAAKqH,UAAUsB,YAAYC,KAAK,uBAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,gCACA,WAjBiB,gDAoBnB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,+CACf,SAtBiB,yBAyBnB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAzBxB,4EAjFW,wDAChC3K,KAAKsJ,UAAYA,GCXRiD,GAGX,WAAYjD,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3B/E,QAJ2B,uCAIjB,WACfjC,EACAC,GAFe,2BAAAf,EAAA,6DAGfgD,EAHe,+BASJ,KATI,kBAYAD,GAAQjC,EAAOC,EAAQiC,GAZvB,+EAcb,EAAK8E,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,gDACf,SAhBW,kBAkBN,MAlBM,yDAJiB,wDAChCnB,KAAKsJ,UAAYA,GCORkD,GAGX,WAAYlD,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BjE,SAJ2B,uCAIhB,WAAOpD,GAAP,SAAAT,EAAA,+EAED6D,GAASpD,GAFR,+EAId,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,wCACf,SANY,kBAQP,MARO,yDAJgB,2DAgB3B6D,UAhB2B,uCAgBf,WACjBR,EAOAlC,EACAC,GATiB,SAAAf,EAAA,+EAYFwD,GAAUR,EAAOlC,EAAOC,GAZtB,+EAcf,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,mDACf,SAhBa,kBAkBR,MAlBQ,yDAhBe,+DAsC3ByE,YAtC2B,uCAsCb,WAAO3D,GAAP,SAAAT,EAAA,6DACnB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADxB,kBAIX/E,GAAY3D,GAJD,cAKjB,EAAKqH,UAAUtM,aAAa8N,aAC1B,8BACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAV1B,mBAYV,GAZU,uCAcjB,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,6CACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnB1B,mBAqBV,GArBU,yDAtCa,2DA+D3BrF,YA/D2B,uCA+Db,WAAOnF,GAAP,eAAAqB,EAAA,6DAQnB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GARxB,kBAWGrF,GAAYnF,GAXf,cAWXsM,EAXW,OAajB,EAAKnD,UAAUtM,aAAa2N,gBAAe,GAb1B,kBAeV8B,GAfU,uCAiBjB,EAAKnD,UAAUtM,aAAa2N,gBAAe,GAC3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,8CACf,SApBe,kBAuBV,MAvBU,yDA/Da,2DA0F3BuE,aA1F2B,uCA0FZ,WAAOvF,GAAP,eAAAqB,EAAA,6DAQpB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GARvB,kBAWGjF,GAAavF,GAXhB,cAWZuM,EAXY,OAalB,EAAKpD,UAAUtM,aAAa2N,gBAAe,GAbzB,kBAeX+B,GAfW,uCAiBlB,EAAKpD,UAAUtM,aAAa2N,gBAAe,GAC3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,gDACf,SApBgB,kBAuBX,MAvBW,yDA1FY,2DAqH3B0E,YArH2B,uCAqHb,WACnB1F,EAOA8B,GARmB,SAAAT,EAAA,6DAUnB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAVxB,kBAaX9E,GAAY1F,EAAM8B,GAbP,OAejB,EAAKqH,UAAUsB,YAAYC,KAAK,qBAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,6BACA,WAlBe,gDAqBjB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,4CACf,SAvBe,yBA0BjB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GA1B1B,4EArHa,6DAmJ3B7E,cAnJ2B,uCAmJX,WAAO3F,GAAP,eAAAqB,EAAA,6DAQrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GARtB,kBAWgB7E,GAAc3F,GAX9B,cAWbwM,EAXa,OAanB,EAAKrD,UAAUtM,aAAa2N,gBAAe,GAbxB,kBAeZgC,GAfY,gCAiBnB,EAAKrD,UAAUtM,aAAa2N,gBAAe,GAC3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,gDACf,SApBiB,yDAnJW,2DA4K3BkF,iBA5K2B,uCA4KR,WAAOpE,GAAP,SAAAT,EAAA,+EAET6E,GAAiBpE,GAFR,+EAItB,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,0DACf,SANoB,kBAQf,MARe,yDA5KQ,2DAwL3BiF,kBAxL2B,uCAwLP,WACzB9D,EACAC,EACAiC,GAHyB,SAAAhD,EAAA,+EAYV4E,GAAkB9D,EAAOC,EAAQiC,GAZvB,+EAcvB,EAAK8E,UAAUtM,aAAa8N,aAC1B,KAAI3J,SACF,qEACF,SAjBqB,kBAmBhB,MAnBgB,yDAxLO,0DAChCnB,KAAKsJ,UAAYA,GCLRsD,GAGX,WAAYtD,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3B9C,WAJ2B,uCAId,WAAOvE,GAAP,SAAAT,EAAA,+EAEHgF,GAAWvE,GAFR,+EAIhB,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,6CACf,SANc,kBAQT,MARS,yDAJc,2DAgB3BmF,YAhB2B,uCAgBb,WACnB9B,EAQAlC,EACAC,GAVmB,SAAAf,EAAA,+EAaJ8E,GAAY9B,EAAOlC,EAAOC,GAbtB,+EAejB,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,wDACf,SAjBe,kBAmBV,MAnBU,yDAhBa,+DAuC3BsF,cAvC2B,uCAuCX,WAAOtG,GAAP,eAAAqB,EAAA,6DAQrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GARtB,kBAWGlE,GAActG,GAXjB,cAWb0M,EAXa,OAanB,EAAKvD,UAAUtM,aAAa2N,gBAAe,GAbxB,kBAeZkC,GAfY,uCAiBnB,EAAKvD,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,iDACf,SAEF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GArBxB,kBAuBZ,MAvBY,yDAvCW,2DAkE3B9D,cAlE2B,uCAkEX,WACrB1G,EAOA8B,GARqB,SAAAT,EAAA,6DAUrB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAVtB,kBAab9D,GAAc1G,EAAM8B,GAbP,OAenB,EAAKqH,UAAUsB,YAAYC,KAAK,uBAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,kCACA,WAlBiB,gDAqBnB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,iDACf,SAvBiB,yBA0BnB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GA1BxB,4EAlEW,6DAgG3B7D,qBAhG2B,uCAgGJ,WAAO7E,GAAP,SAAAT,EAAA,6DAC5B,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADf,kBAIpB7D,GAAqB7E,GAJD,cAK1B,EAAKqH,UAAUtM,aAAa8N,aAC1B,8BACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAVjB,mBAYnB,GAZmB,uCAc1B,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,6CACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnBjB,mBAqBnB,GArBmB,yDAhGI,2DAyH3B5D,YAzH2B,uCAyHb,WACnB5G,EAQA8B,GATmB,eAAAT,EAAA,6DAWnB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAXxB,kBAcgB5D,GAAY5G,EAAM8B,GAdlC,cAcX6K,EAdW,OAgBjB,EAAKxD,UAAUtM,aAAa8N,aAC1B,wCACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GArB1B,kBAuBVmC,GAvBU,yCAyBjB,EAAKxD,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,oDACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GA9B1B,kBAgCV,MAhCU,0DAzHa,6DA6J3BrD,eA7J2B,uCA6JV,WAAOrF,GAAP,SAAAT,EAAA,+EAEP8F,GAAerF,GAFR,+EAIpB,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,wDACf,SANkB,kBAQb,MARa,yDA7JU,2DAyK3BkG,gBAzK2B,uCAyKT,WACvB/E,EACAC,EACAiC,GAHuB,SAAAhD,EAAA,+EAYR6F,GAAgB/E,EAAOC,EAAQiC,GAZvB,+EAcrB,EAAK8E,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,2DACf,SAhBmB,kBAkBd,MAlBc,yDAzKS,0DAChCnB,KAAKsJ,UAAYA,GCJRyD,GAGX,WAAYzD,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BxB,QAJ2B,uCAIjB,WAAO7F,GAAP,SAAAT,EAAA,+EAEAsG,GAAQ7F,GAFR,+EAIb,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,0CACf,SANW,kBAQN,MARM,yDAJiB,2DAgB3BoG,SAhB2B,uCAgBhB,WAChB/C,EAaAlC,EACAC,GAfgB,SAAAf,EAAA,+EAkBD+F,GAAS/C,EAAOlC,EAAOC,GAlBtB,+EAoBd,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,oDACf,SAtBY,kBAwBP,MAxBO,yDAhBgB,+DA4C3B6G,WA5C2B,uCA4Cd,WAAO7H,GAAP,eAAAqB,EAAA,6DAOlB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAPzB,kBAUG3C,GAAW7H,GAVd,cAUV6M,EAVU,OAYhB,EAAK1D,UAAUtM,aAAa2N,gBAAe,GAE3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,+BACA,WAhBc,kBAmBTkC,GAnBS,yCAqBhB,EAAK1D,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,8CACf,SAEF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAzB3B,kBA2BT,MA3BS,0DA5Cc,2DA2E3BtC,aA3E2B,uCA2EZ,WAAON,GAAP,eAAAvG,EAAA,6DAChBoK,GAAO,EADS,SAGlB,EAAKtC,UAAUtM,aAAa2N,gBAAe,GAHzB,SAKLtC,GAAaN,GALR,OAKlB6D,EALkB,uDAOlB,EAAKtC,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,wCACf,SATgB,yBAYlB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAZzB,8CAebiB,GAfa,+DA3EY,2DA6F3B3D,WA7F2B,uCA6Fd,WAClB9H,EAKA4H,GANkB,eAAAvG,EAAA,6DAQlB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GARzB,kBAWG1C,GAAW9H,EAAM4H,GAXpB,cAWVkF,EAXU,OAahB,EAAK3D,UAAUtM,aAAa8N,aAC1B,+BACA,WAfc,kBAkBTmC,GAlBS,gCAoBhB,EAAK3D,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,8CACf,SAtBc,yBAyBhB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAzB3B,4EA7Fc,6DA0H3BzC,WA1H2B,uCA0Hd,WAAOjG,GAAP,SAAAT,EAAA,6DAClB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADzB,kBAIVzC,GAAWjG,GAJD,cAKhB,EAAKqH,UAAUtM,aAAa8N,aAC1B,iCACA,WAGF,EAAKxB,UAAUtM,aAAa2N,gBAAe,GAV3B,mBAYT,GAZS,uCAchB,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,gDACf,SAGF,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAnB3B,mBAqBT,GArBS,yDA1Hc,2DAmJ3BxC,qBAnJ2B,uCAmJJ,WAAON,GAAP,SAAArG,EAAA,+EAEb2G,GAAqBN,GAFR,+EAI1B,EAAKyB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,0CACf,SANwB,kBAQnB,MARmB,yDAnJI,2DA+J3BiH,mBA/J2B,uCA+JN,WAAO1B,GAAP,SAAAlF,EAAA,+EAEX4G,GAAmB1B,GAFR,+EAIxB,EAAK4C,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,0CACf,SANsB,kBAQjB,MARiB,yDA/JM,sDAChCnB,KAAKsJ,UAAYA,GCLR4D,GAGX,WAAY5D,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BN,wBAJ2B,sBAID,wCAAAxH,EAAA,6DAC/BgD,EAD+B,+BAOpB,KAPoB,kBAUhBwE,GAAwBxE,GAVR,+EAY7B,EAAK8E,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,sDACf,SAd2B,kBAgBtB,MAhBsB,yDAJC,KAwB3B4H,gBAxB2B,sBAwBT,wCAAAvH,EAAA,6DACvBgD,EADuB,+BAOZ,KAPY,kBAURuE,GAAgBvE,GAVR,+EAYrB,EAAK8E,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,sDACf,SAdmB,kBAgBd,MAhBc,yDAxBS,KA4C3BwH,aA5C2B,sBA4CZ,wCAAAnH,EAAA,6DACpBgD,EADoB,+BAST,KATS,kBAYLmE,GAAanE,GAZR,+EAclB,EAAK8E,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,sDACf,SAhBgB,kBAkBX,MAlBW,yDA5CY,KAkE3BuH,aAlE2B,sBAkEZ,sBAAAlH,EAAA,+EAELkH,KAFK,+EAIlB,EAAKY,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,sDACf,SANgB,kBAQX,MARW,yDAlEY,KA8E3BmH,aA9E2B,sBA8EZ,sBAAA9G,EAAA,+EAEL8G,KAFK,+EAIlB,EAAKgB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,sDACf,SANgB,kBAQX,MARW,yDA9EY,KA0F3BoH,cA1F2B,sBA0FX,sBAAA/G,EAAA,+EAEN+G,KAFM,+EAInB,EAAKe,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,sDACf,SANiB,kBAQZ,MARY,yDA1FW,KAsG3BqH,mBAtG2B,uCAsGN,WAC1B3E,EACA4E,GAF0B,SAAAjH,EAAA,+EAKXgH,GAAmB3E,EAAM4E,GALd,+EAOxB,EAAKa,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,oDACf,SATsB,kBAWjB,MAXiB,yDAtGM,wDAChCnB,KAAKsJ,UAAYA,GCZR6D,GAGX,WAAY7D,GAAuB,IAAD,gCAFxBA,eAEwB,OAI3BF,UAJ2B,uCAIf,WAAOnH,GAAP,SAAAT,EAAA,+EAEF4H,GAAUnH,GAFR,+EAIf,EAAKqH,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,yCACf,SANa,kBAQR,MARQ,yDAJe,2DAgB3B8H,WAhB2B,uCAgBd,WAAOzG,EAAcF,EAAgBC,GAArC,SAAAf,EAAA,+EAEHyH,GAAWzG,EAAKF,EAAOC,GAFpB,+EAIhB,EAAK+G,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,mDACf,SANc,kBAQT,MARS,yDAhBc,+DA4B3B+H,aA5B2B,uCA4BZ,WAAO/I,GAAP,eAAAqB,EAAA,6DACpB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GADvB,kBAIEzB,GAAa/I,GAJf,cAIZ6L,EAJY,OAMlB,EAAK1C,UAAUtM,aAAa2N,gBAAe,GANzB,kBAQXqB,GARW,uCAUlB,EAAK1C,UAAUtM,aAAa2N,gBAAe,GAE3C,EAAKrB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,4CACf,SAdgB,kBAiBX,MAjBW,yDA5BY,2DAiD3BgI,aAjD2B,uCAiDZ,WACpBhJ,EAIA8B,GALoB,SAAAT,EAAA,6DAOpB,EAAK8H,UAAUtM,aAAa2N,gBAAe,GAPvB,kBAUZxB,GAAahJ,EAAM8B,GAVP,OAYlB,EAAKqH,UAAUsB,YAAYC,KAAK,sBAChC,EAAKvB,UAAUtM,aAAa8N,aAC1B,8BACA,WAfgB,gDAkBlB,EAAKxB,UAAUtM,aAAa8N,aAC1B,KAAI3J,SAAW,6CACf,SApBgB,yBAuBlB,EAAKmI,UAAUtM,aAAa2N,gBAAe,GAvBzB,4EAjDY,wDAChC3K,KAAKsJ,UAAYA,G,yGCUd,IAsBDA,GAAY,IAtBlB,sCACSsB,YAAc,IAAIwC,cAD3B,KAESnQ,UAAY,IAAIoM,GAAUrJ,MAFnC,KAGShD,aAAe,IAAIoO,GAAapL,MAHzC,KAISqN,UAAY,IAAIxB,GAAU7L,MAJnC,KAKSsN,iBAAmB,IAAIvB,GAAiB/L,MALjD,KAMSuN,aAAe,IAAItB,GAAajM,MANzC,KAOSwN,UAAY,IAAIrB,GAAUnM,MAPnC,KAQSyN,aAAe,IAAIpB,GAAarM,MARzC,KASS0N,WAAa,IAAInB,GAAWvM,MATrC,KAUS2N,WAAa,IAAInB,GAAWxM,MAVrC,KAWS4N,aAAe,IAAIhB,GAAa5M,MAXzC,KAYS6N,UAAY,IAAId,GAAU/M,MAZnC,KAaS8N,eAAiB,IAAIZ,GAAelN,MAb7C,KAcS+N,YAAc,IAAIZ,GAAYnN,MAdvC,KAgBSvB,QAAUuP,+BACfC,cACAjO,KAAK4K,cAKMnM,GAA0B6K,GAA1B7K,QAAYD,G,YAAc8K,G,aAEnC4E,GAAWC,wBAAc3P,IACxB,SAASzB,KACd,OAAOqR,qBAAWF,O","file":"static/js/main.ce2a0235.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport { Grid, CircularProgress, Theme, makeStyles } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tcontainer: {\n\t\theight: \"100vh\"\n\t}\n}));\n\nfunction FallBackLoading() {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default FallBackLoading;\n","import React, { memo } from \"react\";\nimport { LinearProgress, makeStyles, Theme } from \"@material-ui/core\";\n\ninterface IProps {\n\tshow: boolean;\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tcontainer: {\n\t\twidth: \"100%\",\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tzIndex: 9999\n\t}\n}));\n\nfunction Loading(props: IProps) {\n\tconst classes = useStyles();\n\n\tif (!props.show) return null;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n\nexport default memo(Loading);\n","import React, { memo } from \"react\";\nimport {\n\tRoute,\n\tRouteProps,\n\tRedirect,\n\tRouteComponentProps\n} from \"react-router-dom\";\nimport FallBackLoading from \"../../containers/FallBackLoading\";\n\ntype Props = Omit & {\n\tisAuthenticated: \"pending\" | \"logged\" | \"notLogged\";\n\tisAuthPage?: boolean;\n\tredirectTo: string;\n\tcomponent:\n\t\t| React.ComponentType>\n\t\t| React.ComponentType;\n};\n\nfunction PrivateRouteRaw({\n\tcomponent: Component,\n\tisAuthenticated,\n\tredirectTo,\n\tisAuthPage,\n\t...rest\n}: Props) {\n\treturn (\n\t\t {\n\t\t\t\tif (\n\t\t\t\t\t(isAuthenticated === \"logged\" && isAuthPage) ||\n\t\t\t\t\t(isAuthenticated === \"notLogged\" && !isAuthPage)\n\t\t\t\t) {\n\t\t\t\t\treturn ;\n\t\t\t\t} else if (isAuthenticated === \"pending\") {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nexport const PrivateRoute = memo(PrivateRouteRaw);\n","import React, { Suspense, lazy } from \"react\";\n\nimport { Switch, Route, Redirect } from \"react-router-dom\";\nimport { observer } from \"mobx-react-lite\";\n\nimport FallBackLoading from \"../FallBackLoading\";\nimport Loading from \"../../components/Loading\";\nimport { Snackbar } from \"@material-ui/core\";\nimport Alert from \"@material-ui/lab/Alert\";\n\nimport { useStores } from \"../../stores/RootStore\";\nimport { PrivateRoute } from \"../../components/PrivateRoute\";\n\nconst AsyncLogin = lazy(() => import(\"../Login\"));\nconst AsyncRegister = lazy(() => import(\"../Register\"));\nconst AsyncForgotPassword = lazy(() => import(\"../ForgotPassword\"));\nconst AsyncForgotPasswordStep2 = lazy(() => import(\"../ForgotPasswordStep2\"));\nconst AsyncDashboard = lazy(() => import(\"../Dashboard\"));\nconst AsyncNotFound = lazy(() => import(\"../NotFound\"));\n\nfunction redirectTo(path: string) {\n\treturn ;\n}\n\nfunction App() {\n\tconst { generalStore, authStore } = useStores();\n\n\tconst redirectFromRoot = () => {\n\t\treturn redirectTo(\"/dashboard\");\n\t};\n\n\tconst redirectTo404 = () => {\n\t\treturn redirectTo(\"/404\");\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t{!!generalStore.snackbar && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{generalStore.snackbar!.msg}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t}>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default observer(App);\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport { Router as RouterProvider } from \"react-router-dom\";\nimport { Provider as MobxProvider } from \"mobx-react\";\nimport moment from \"moment\";\nimport numeral from \"numeral\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\n\nimport * as serviceWorker from \"./serviceWorker\";\nimport { providers, history } from \"./stores/RootStore\";\n\nimport App from \"./containers/App\";\n\nimport \"react-dates/initialize\";\nimport \"react-dates/lib/css/_datepicker.css\";\n\nrequire(\"../node_modules/moment/locale/pt-br\");\nmoment.locale(\"pt-BR\");\n\nrequire(\"../node_modules/numeral/locales/pt-br\");\nnumeral.locale(\"pt-br\");\n\nReactDOM.render(\n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\nserviceWorker.register();\n","import fetch from \"node-fetch\";\nimport { URLSearchParams } from \"url\";\n\nexport class Fetch {\n private baseUrl: string;\n private headers: { [key: string]: string } = {\n Accept: \"application/json\",\n };\n\n public constructor(baseUrl: string) {\n this.baseUrl = baseUrl;\n }\n\n public setHeader(key: string, value: string) {\n this.headers = { ...this.headers, [key]: value };\n }\n\n public removeHeader(key: string) {\n delete this.headers[key];\n }\n\n public async post(\n path: string,\n data?: S,\n encode = false,\n headers: { [key: string]: string } = {}\n ): Promise {\n let newHeaders = { ...this.headers, ...headers };\n\n let body: URLSearchParams | string | null = null;\n if (encode) {\n const params = new URLSearchParams();\n Object.keys(data || {}).forEach((key) =>\n params.append(key, (data as any)[key])\n );\n body = params;\n } else {\n newHeaders = { ...newHeaders, \"Content-Type\": \"application/json\" };\n\n body = JSON.stringify(data);\n }\n\n try {\n const response = await fetch(`${this.baseUrl}/${path}`, {\n method: \"post\",\n body,\n headers: newHeaders,\n });\n\n if (response.status > 300) {\n const payload = await response.json();\n\n if (response.status === 404) {\n throw new Error(payload?.message || \"Não conectado\");\n }\n\n if (response.status === 401) {\n throw new Error(payload?.message || \"Não autorizado\");\n }\n\n throw new Error(payload?.message || \"Um erro interno aconteceu\");\n }\n\n return await response.json();\n } catch (err) {\n throw err;\n }\n }\n\n public async put(\n path: string,\n data: S,\n encode = false,\n headers: { [key: string]: string } = {}\n ): Promise {\n let newHeaders = { ...this.headers, ...headers };\n\n let body: URLSearchParams | string | null = null;\n if (encode) {\n const params = new URLSearchParams();\n Object.keys(data).forEach((key) =>\n params.append(key, (data as any)[key])\n );\n body = params;\n } else {\n newHeaders = { ...newHeaders, \"Content-Type\": \"application/json\" };\n\n body = JSON.stringify(data);\n }\n\n try {\n const response = await fetch(`${this.baseUrl}/${path}`, {\n method: \"put\",\n body,\n headers: newHeaders,\n });\n\n if (response.status > 300) {\n const payload = await response.json();\n\n if (response.status === 404) {\n throw new Error(payload?.message || \"Não conectado\");\n }\n\n if (response.status === 401) {\n throw new Error(payload?.message || \"Não autorizado\");\n }\n\n throw new Error(payload?.message || \"Um erro interno aconteceu\");\n }\n\n return await response.json();\n } catch (err) {\n throw err;\n }\n }\n\n public async get(\n path: string,\n headers: { [key: string]: string } = {}\n ) {\n const newHeaders = {\n ...this.headers,\n ...headers,\n };\n\n const response = await fetch(`${this.baseUrl}/${path}`, {\n method: \"get\",\n headers: newHeaders,\n });\n\n if (response.status > 300) {\n const payload = await response.json();\n throw new Error(payload?.message || \"Um erro interno aconteceu\");\n }\n\n try {\n const json = await response.json();\n return json as T;\n } catch (err) {\n return null;\n }\n }\n\n public async del(\n path: string,\n headers: { [key: string]: string } = {}\n ) {\n const newHeaders = { ...this.headers, ...headers };\n\n const response = await fetch(`${this.baseUrl}/${path}`, {\n method: \"delete\",\n headers: newHeaders,\n });\n\n if (response.status > 300) {\n const payload = await response.json();\n throw new Error(payload?.message || \"Um erro interno aconteceu\");\n }\n\n return (await response.json()) as T;\n }\n}\n","import { Fetch } from \"../utils/fetch\";\nimport {\n User,\n GroupPermission,\n Permission,\n Game,\n Deposit,\n Partner,\n Status,\n DepositType,\n Log,\n Board,\n TransferBoard,\n Machine,\n ChangeBoard,\n Scan,\n ScanType,\n BasicDataDashboard,\n BoardsDataDashboard,\n TypeGetBoardsDashboard,\n GameDataDashboard,\n ScanDataDashboard,\n PartnerDataDashboard,\n PartnerDetailedData,\n Reason,\n} from \"./types\";\nimport querystring from \"querystring\";\n\n// export const api = new Fetch(\"http://localhost:3000\");\n// export const api = new Fetch(\"http://localhost:3001\");\nexport const api = new Fetch(\"https://staging.maskin.tk:3001\");\n// export const api = new Fetch(\"https://www.maskin.tk:3000\");\n\nexport const login = async (username: string, password: string) => {\n return await api.post<{ access_token: string; user: User }>(\"auth/login\", {\n username,\n password,\n });\n};\n\nexport const register = async (data: {\n username: string;\n password: string;\n email: string;\n fullName: string;\n}) => {\n const { fullName, username, email, password } = data;\n\n return await api.post(\"auth/register\", {\n username,\n password,\n email,\n fullName,\n });\n};\n\nexport const createUser = async (data: {\n username: string;\n password: string;\n email: string;\n fullName: string;\n groupPermission: string;\n status: Status;\n allowPartners: number[];\n allowAllPartners: boolean;\n}) => {\n const {\n fullName,\n username,\n email,\n password,\n groupPermission,\n status,\n allowAllPartners,\n allowPartners,\n } = data;\n\n return await api.post(\"users/create\", {\n username,\n password,\n email,\n fullName,\n groupPermission,\n status,\n allowPartners,\n allowAllPartners,\n });\n};\n\nexport const updateUser = async (\n data: {\n username?: string;\n password?: string;\n email?: string;\n fullName?: string;\n groupPermission?: string;\n status?: Status;\n allowPartners?: number[];\n allowAllPartners?: boolean;\n },\n id: number\n) => {\n const {\n fullName,\n username,\n email,\n password,\n groupPermission,\n status,\n allowPartners,\n allowAllPartners,\n } = data;\n\n return await api.put(`users/${id}`, {\n username,\n password,\n email,\n fullName,\n groupPermission,\n status,\n allowPartners,\n allowAllPartners,\n });\n};\n\nexport const updateProfile = async (data: {\n username?: string;\n password?: string;\n email?: string;\n fullName?: string;\n}) => {\n const { fullName, username, email, password } = data;\n\n return await api.put(`users/profile`, {\n username,\n password,\n email,\n fullName,\n });\n};\n\nexport const currentUser = async () => {\n return await api.get(\"auth/profile\");\n};\n\nexport const getUsers = async (limit: number, offset: number, all: boolean) => {\n return await api.get<{ data: User[]; total: number }>(\n `users?limit=${limit}&offset=${offset}&all=${all}`\n );\n};\n\nexport const getUser = async (username: string) => {\n return await api.get(`users/${username}`);\n};\n\nexport const deleteUser = async (id: number) => {\n return await api.del(`users/${id}`);\n};\n\nexport const getGroupPermissions = async (\n all: boolean,\n limit?: number,\n offset?: number\n) => {\n return await api.get<{ data: GroupPermission[]; total: number }>(\n `group-permissions?limit=${limit || 100}&offset=${offset || 0}&all=${all}`\n );\n};\n\nexport const deleteGroupPermission = async (id: number) => {\n return await api.del(`group-permissions/${id}`);\n};\n\nexport const createGroup = async (data: {\n name: string;\n permissionsId: number[];\n status: Status;\n}) => {\n const { name, permissionsId, status } = data;\n\n return await api.post(\"group-permissions/create\", {\n name,\n permissionsId,\n status,\n });\n};\n\nexport const updateGroup = async (\n data: {\n name?: string;\n permissionsId?: number[];\n status?: Status;\n },\n id: number\n) => {\n const { name, permissionsId, status } = data;\n\n return await api.put(`group-permissions/${id}`, {\n name,\n permissionsId,\n status,\n });\n};\n\nexport const getGroupPermission = async (id: number) => {\n return await api.get(`group-permissions/${id}`);\n};\n\nexport const getPermissions = async (limit?: number, offset?: number) => {\n return await api.get<{ data: Permission[]; total: number }>(\n `permissions?limit=${limit || 100}&offset=${offset || 0}`\n );\n};\n\nexport const getGames = async (\n all: boolean,\n limit?: number,\n offset?: number\n) => {\n return await api.get<{ data: Game[]; total: number }>(\n `games?limit=${limit || 100}&offset=${offset || 0}&all=${all}`\n );\n};\n\nexport const getGame = async (id: number) => {\n return await api.get(`games/${id}`);\n};\n\nexport const createGame = async (data: {\n name: string;\n status: Status;\n obs: string;\n}) => {\n const { name, status, obs } = data;\n\n return await api.post(\"games/create\", {\n name,\n status,\n obs,\n });\n};\n\nexport const deleteGame = async (id: number) => {\n return await api.del(`games/${id}`);\n};\n\nexport const updateGame = async (\n data: {\n name?: string;\n status?: Status;\n obs?: string;\n },\n id: number\n) => {\n const { name, status, obs } = data;\n\n return await api.put(`games/${id}`, {\n name,\n status,\n obs,\n });\n};\n\nexport const getDeposits = async (\n all: boolean,\n limit?: number,\n offset?: number\n) => {\n return await api.get<{ data: Deposit[]; total: number }>(\n `deposits?limit=${limit}&offset=${offset}&all=${all}`\n );\n};\n\nexport const getDeposit = async (id: number) => {\n return await api.get(`deposits/${id}`);\n};\n\nexport const createDeposit = async (data: {\n name: string;\n status: Status;\n type: DepositType;\n obs: string;\n}) => {\n const { name, status, type, obs } = data;\n\n return await api.post(\"deposits/create\", {\n name,\n status,\n type,\n obs,\n });\n};\n\nexport const deleteDeposit = async (id: number) => {\n return await api.del(`deposits/${id}`);\n};\n\nexport const updateDeposit = async (\n data: {\n name?: string;\n status?: Status;\n type?: DepositType;\n obs?: string;\n },\n id: number\n) => {\n const { name, status, type, obs } = data;\n\n return await api.put(`deposits/${id}`, {\n name,\n status,\n type,\n obs,\n });\n};\n\nexport const getPartners = async (\n all: boolean,\n limit?: number,\n offset?: number\n) => {\n return await api.get<{ data: Partner[]; total: number }>(\n `partners?limit=${limit}&offset=${offset}&all=${all}`\n );\n};\n\nexport const getPartner = async (id: number) => {\n return await api.get(`partners/${id}`);\n};\n\nexport const createPartner = async (data: {\n name: string;\n status: Status;\n commission: number;\n companyPercentage: number;\n obs: string;\n}) => {\n const { name, status, commission, obs, companyPercentage } = data;\n\n return await api.post(\"partners/create\", {\n name,\n status,\n commission,\n companyPercentage,\n obs,\n });\n};\n\nexport const deletePartner = async (id: number) => {\n return await api.del(`partners/${id}`);\n};\n\nexport const updatePartner = async (\n data: {\n name?: string;\n status?: Status;\n commission?: number;\n companyPercentage?: number;\n obs?: string;\n },\n id: number\n) => {\n const { name, status, commission, obs, companyPercentage } = data;\n\n return await api.put(`partners/${id}`, {\n name,\n status,\n commission,\n companyPercentage,\n obs,\n });\n};\n\nexport const getLogs = async (\n limit?: number,\n offset?: number,\n where: {\n byUser?: string | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n } | null = null\n) => {\n const data: any = {};\n\n if (where && where.byUser) {\n data.byuser = where.byUser;\n }\n if (where && where.period && where.period.dateInit && where.period.dateEnd) {\n data.dateInit = where.period.dateInit;\n data.dateEnd = where.period.dateEnd;\n }\n if (limit) {\n data.limit = limit;\n }\n if (offset) {\n data.offset = offset;\n }\n\n const searchParams = querystring.stringify(data);\n\n return await api.get<{ data: Log[]; total: number }>(`audit?${searchParams}`);\n};\n\nexport const getBoards = async (\n where: {\n onlyNoApply?: boolean;\n textSearch?: string;\n partnerId?: string;\n gameId?: string;\n all?: boolean;\n },\n limit?: number,\n offset?: number\n) => {\n return await api.get<{ data: Board[]; total: number }>(\n `boards?limit=${limit || 20}&offset=${offset || 0}&onlyNoApply=${\n where.onlyNoApply || false\n }&textSearch=${where.textSearch || \"\"}&partnerId=${\n where.partnerId || \"\"\n }&gameId=${where.gameId || \"\"}&all=${!!where.all}`\n );\n};\n\nexport const getBoard = async (id: number) => {\n return await api.get(`boards/${id}`);\n};\n\nexport const createBoard = async (data: {\n serial: string;\n gameId: number;\n depositId: number;\n obs: string;\n boardCreatedDate: Date;\n status: Status;\n}) => {\n const { serial, gameId, depositId, obs, boardCreatedDate, status } = data;\n\n return await api.post(\"boards/create\", {\n serial,\n gameId,\n depositId,\n obs,\n boardCreatedDate,\n status,\n });\n};\n\nexport const createBoards = async (data: {\n count: number;\n gameId: number | null;\n depositId: number;\n obs: string;\n boardCreatedDate: Date;\n status: Status;\n}) => {\n const { count, gameId, depositId, obs, boardCreatedDate, status } = data;\n\n return await api.post(\"boards/create-many\", {\n count,\n gameId,\n depositId,\n obs,\n boardCreatedDate,\n status,\n });\n};\n\nexport const deleteBoard = async (id: number) => {\n return await api.del(`boards/${id}`);\n};\n\nexport const updateBoard = async (\n data: {\n serial?: string;\n gameId?: number;\n obs?: string;\n boardCreatedDate?: Date;\n status?: Status;\n },\n id: number\n) => {\n const { serial, gameId, obs, boardCreatedDate, status } = data;\n\n return await api.put(`boards/${id}`, {\n serial,\n gameId,\n obs,\n boardCreatedDate,\n status,\n });\n};\n\nexport const transferBoard = async (data: {\n boardsToTransfer: number[];\n newGameId: number;\n toType: \"deposit\" | \"partner\";\n toLocal: number;\n obs: string;\n transferDate: Date;\n}) => {\n const {\n boardsToTransfer,\n toType,\n toLocal,\n obs,\n transferDate,\n newGameId,\n } = data;\n\n return await api.post(`boards/transfer`, {\n boardsToTransfer,\n newGameId,\n toType,\n toLocal,\n obs,\n transferDate,\n });\n};\n\nexport const getTransferBoards = async (\n limit?: number,\n offset?: number,\n where?: {\n textSearch?: string;\n period?: {\n dateInit?: string | null;\n dateEnd?: string | null;\n };\n }\n) => {\n const data: any = {};\n\n if (limit) {\n data.limit = limit;\n }\n\n if (offset) {\n data.offset = offset;\n }\n\n if (where && where.textSearch) {\n data.textSearch = where.textSearch;\n }\n\n if (where && where.period && where.period.dateInit && where.period.dateEnd) {\n data.dateInit = where.period.dateInit;\n data.dateEnd = where.period.dateEnd;\n }\n\n const searchParams = querystring.stringify(data);\n\n return await api.get<{ data: TransferBoard[]; total: number }>(\n `boards/transfer?${searchParams}`\n );\n};\n\nexport const getTransferBoard = async (id: number) => {\n return await api.get(`boards/transfer/${id}`);\n};\n\nexport const getMachines = async (\n where: {\n onlyNoApply?: boolean;\n onlyApply?: boolean;\n textSearch?: string;\n partnerId?: string;\n gameId?: string;\n all?: boolean;\n },\n limit?: number,\n offset?: number\n) => {\n return await api.get<{ data: Machine[]; total: number }>(\n `machines?limit=${limit || 20}&offset=${offset || 0}&onlyNoApply=${\n where.onlyNoApply || false\n }&onlyApply=${where.onlyApply || false}&textSearch=${\n where.textSearch || \"\"\n }&partnerId=${where.partnerId || \"\"}&gameId=${\n where.gameId || \"\"\n }&all=${!!where.all}`\n );\n};\n\nexport const getMachine = async (id: number) => {\n return await api.get(`machines/${id}`);\n};\n\nexport const createMachine = async (data: {\n partnerId: number;\n boardId: number;\n partnerName: string;\n obs: string;\n machineCreatedDate: Date;\n status: Status;\n}) => {\n const {\n partnerId,\n boardId,\n obs,\n machineCreatedDate,\n partnerName,\n status,\n } = data;\n\n return await api.post(\"machines/create\", {\n partnerId,\n boardId,\n obs,\n partnerName,\n machineCreatedDate,\n status,\n });\n};\n\nexport const updateMachine = async (\n data: {\n partnerId?: number;\n obs?: string;\n machineCreatedDate?: Date;\n partnerName?: string;\n status?: Status;\n },\n id: number\n) => {\n const { partnerId, obs, machineCreatedDate, partnerName, status } = data;\n\n return await api.put(`machines/${id}`, {\n partnerId,\n obs,\n machineCreatedDate,\n partnerName,\n status,\n });\n};\n\nexport const removeBoardOnMachine = async (id: number) => {\n return await api.post(`machines/removeBoard/${id}`);\n};\n\nexport const changeBoard = async (\n data: {\n newBoardId: number;\n obs: string;\n reasonId: number;\n changeDate: Date;\n meterCurrentEntry: number;\n meterCurrentExit: number;\n },\n id: number\n) => {\n const {\n newBoardId,\n obs,\n changeDate,\n reasonId,\n meterCurrentEntry,\n meterCurrentExit,\n } = data;\n\n return await api.post(`machines/changeBoard/${id}`, {\n newBoardId,\n obs,\n changeDate,\n reasonId,\n meterCurrentEntry,\n meterCurrentExit,\n });\n};\n\nexport const getChangeBoards = async (\n limit?: number,\n offset?: number,\n where?: {\n partnerId?: string;\n period?: {\n dateInit?: string | null;\n dateEnd?: string | null;\n };\n }\n) => {\n const data: any = {};\n\n if (limit) {\n data.limit = limit;\n }\n\n if (offset) {\n data.offset = offset;\n }\n\n if (where && where.partnerId) {\n data.partnerId = where.partnerId;\n }\n\n if (where && where.period && where.period.dateInit && where.period.dateEnd) {\n data.dateInit = where.period.dateInit;\n data.dateEnd = where.period.dateEnd;\n }\n\n const searchParams = querystring.stringify(data);\n\n return await api.get<{ data: ChangeBoard[]; total: number }>(\n `machines/changeBoard?${searchParams}`\n );\n};\n\nexport const getChangeBoard = async (id: number) => {\n return await api.get(`machines/changeBoard/${id}`);\n};\n\nexport const getScans = async (\n where: {\n byUser?: string;\n partnerId?: number;\n scanType: Array<\"normalScanType\" | \"adjustmentScanType\" | \"surveyScanType\">;\n machineId?: number;\n gameId?: number;\n period?: {\n dateInit?: string;\n dateEnd?: string;\n };\n },\n limit?: number,\n offset?: number\n) => {\n const data: any = {};\n\n if (where && where.byUser) {\n data.byUser = where.byUser;\n }\n\n if (where && where.partnerId) {\n data.partnerId = where.partnerId;\n }\n\n if (where && where.scanType && where.scanType.includes(\"normalScanType\")) {\n data.normalScanType = true;\n } else {\n data.normalScanType = false;\n }\n\n if (\n where &&\n where.scanType &&\n where.scanType.includes(\"adjustmentScanType\")\n ) {\n data.adjustmentScanType = true;\n } else {\n data.adjustmentScanType = false;\n }\n\n if (where && where.scanType && where.scanType.includes(\"surveyScanType\")) {\n data.surveyScanType = true;\n } else {\n data.surveyScanType = false;\n }\n\n if (where && where.machineId) {\n data.machineId = where.machineId;\n }\n\n if (where && where.gameId) {\n data.gameId = where.gameId;\n }\n\n if (where && where.period && where.period.dateInit && where.period.dateEnd) {\n data.dateInit = where.period.dateInit;\n data.dateEnd = where.period.dateEnd;\n }\n if (limit) {\n data.limit = limit;\n }\n if (offset) {\n data.offset = offset;\n }\n\n const searchParams = querystring.stringify(data);\n\n return await api.get<{ data: Scan[]; total: number }>(\n `scannings?${searchParams}`\n );\n};\n\nexport const getScan = async (scanId: number) => {\n return await api.get(`scannings/${scanId}`);\n};\n\nexport const createScan = async (data: {\n machineId: number;\n scanType: ScanType;\n obs: string;\n meterCurrentEntry: number;\n meterCurrentExit: number;\n}) => {\n const {\n machineId,\n scanType,\n obs,\n meterCurrentEntry,\n meterCurrentExit,\n } = data;\n\n return await api.post(\"scannings/create\", {\n machineId,\n scanType,\n obs,\n meterCurrentEntry,\n meterCurrentExit,\n });\n};\n\nexport const updateScan = async (\n data: {\n obs?: string;\n meterCurrentEntry?: number;\n meterCurrentExit?: number;\n },\n scanId: number\n) => {\n const { obs, meterCurrentEntry, meterCurrentExit } = data;\n\n return await api.put(`scannings/${scanId}`, {\n obs,\n meterCurrentEntry,\n meterCurrentExit,\n });\n};\n\nexport const removeScan = async (scanId: number) => {\n return await api.post(`scannings/remove/${scanId}`);\n};\n\nexport const getLastScanOnMachine = async (machineId: number) => {\n const data = await api.get(`scannings/lastScan/${machineId}`);\n return data;\n};\n\nexport const getLastScanOnBoard = async (boardId: number) => {\n const data = await api.get(`scannings/lastScanOnBoard/${boardId}`);\n return data;\n};\n\nexport const canBeUpdated = async (id: number) => {\n return await api.post(`scannings/canBeUpdated/${id}`);\n};\n\nexport const getBasicData = async () => {\n return await api.get(`dashboard/getBasicData`);\n};\n\nexport const getBoardsData = async () => {\n return await api.get(`dashboard/getBoardsData`);\n};\n\nexport const getBoardsDashboard = async (\n type: TypeGetBoardsDashboard,\n partnerOrDepositId?: number\n) => {\n if (partnerOrDepositId) {\n return await api.get<{ data: Board[]; total: number }>(\n `dashboard/getBoards?type=${type}&partnerOrDepositId=${partnerOrDepositId}`\n );\n } else {\n return await api.get<{ data: Board[]; total: number }>(\n `dashboard/getBoards?type=${type}`\n );\n }\n};\n\nexport const getGamesData = async () => {\n return await api.get(`dashboard/getGamesData`);\n};\n\nexport const getScansData = async (\n where: {\n partnerIds?: string[] | null;\n scanTypes?: ScanType[] | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n groupBy?: \"all\" | \"date\" | \"partner\" | \"scanType\" | null;\n } | null = null\n) => {\n const data: any = {};\n\n if (where && where.partnerIds) {\n data.partnerIds = where.partnerIds;\n }\n if (where && where.scanTypes) {\n data.scanTypes = where.scanTypes;\n }\n if (where && where.period && where.period.dateInit && where.period.dateEnd) {\n data.dateInit = where.period.dateInit;\n data.dateEnd = where.period.dateEnd;\n }\n if (where && where.groupBy) {\n data.groupBy = where.groupBy;\n }\n\n const searchParams = querystring.stringify(data);\n\n return await api.get(\n `dashboard/getScansData?${searchParams}`\n );\n};\n\nexport const getPartnersData = async (\n where: {\n partnerIds?: string[] | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n } | null = null\n) => {\n const data: any = {};\n\n if (where && where.partnerIds) {\n data.partnerIds = where.partnerIds;\n }\n if (where && where.period && where.period.dateInit && where.period.dateEnd) {\n data.dateInit = where.period.dateInit;\n data.dateEnd = where.period.dateEnd;\n }\n\n const searchParams = querystring.stringify(data);\n\n return await api.get(\n `dashboard/getPartnersData?${searchParams}`\n );\n};\n\nexport const getDetailedPartnersData = async (\n where: {\n partnerIds?: string[] | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n } | null = null\n) => {\n const data: any = {};\n\n if (where && where.partnerIds) {\n data.partnerIds = where.partnerIds;\n }\n if (where && where.period && where.period.dateInit && where.period.dateEnd) {\n data.dateInit = where.period.dateInit;\n data.dateEnd = where.period.dateEnd;\n }\n\n const searchParams = querystring.stringify(data);\n\n return await api.get(\n `dashboard/getDetailedPartnersData?${searchParams}`\n );\n};\n\nexport const getReasons = async (\n all: boolean,\n limit?: number,\n offset?: number\n) => {\n return await api.get<{ data: Reason[]; total: number }>(\n `reasons?limit=${limit || 100}&offset=${offset || 0}&all=${all}`\n );\n};\n\nexport const createReason = async (data: { name: string; status: Status }) => {\n const { name, status } = data;\n\n return await api.post(\"reasons/create\", {\n name,\n status,\n });\n};\n\nexport const updateReason = async (\n data: {\n name?: string;\n status?: Status;\n },\n id: number\n) => {\n const { name, status } = data;\n\n return await api.put(`reasons/${id}`, {\n name,\n status,\n });\n};\n\nexport const getReason = async (id: number) => {\n return await api.get(`reasons/${id}`);\n};\n","import { RootStore } from \"./RootStore\";\nimport { currentUser, login, api, register } from \"../vendor\";\nimport { observable, action, computed } from \"mobx\";\nimport { User, PermissionName } from \"../vendor/types\";\n\nexport class AuthStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n\n this.bootstrapAuth();\n }\n\n @observable public loadingBootstrap = true;\n @observable public user: User | null = null;\n @observable public token: string | null = null;\n\n public checkAllowAllPartners = () => {\n return !!this.user?.allowAllPartners;\n };\n\n public checkPermission = (...values: PermissionName[]) => {\n const permissions = this.user!.groupPermission.permissions.map(\n (e) => e.value\n );\n\n return permissions.some((e) => values.includes(e) || e === \"ADMIN_ACCESS\");\n };\n\n @computed\n public get isAuthenticated() {\n if (this.loadingBootstrap) {\n return \"pending\";\n } else if (this.user) {\n return \"logged\";\n } else {\n return \"notLogged\";\n }\n }\n\n @action\n private bootstrapAuth = async () => {\n let token = this.token;\n if (!token) token = localStorage.getItem(\"token\");\n if (!token) token = sessionStorage.getItem(\"token\");\n\n this.token = token;\n if (token) {\n api.setHeader(\"Authorization\", `Bearer ${token}`);\n try {\n this.user = await currentUser();\n } catch (err) {\n this.token = null;\n this.user = null;\n localStorage.clear();\n sessionStorage.clear();\n api.removeHeader(\"Authorization\");\n }\n }\n\n this.loadingBootstrap = false;\n };\n\n @action\n public logout = () => {\n localStorage.clear();\n sessionStorage.clear();\n api.removeHeader(\"Authorization\");\n window.location.reload();\n };\n\n @action\n public register = async (data: {\n email: string;\n username: string;\n password: string;\n fullName: string;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await register(data);\n\n this.rootStore.routerStore.push(\"/login\");\n this.rootStore.generalStore.showSnackbar(\n \"Conta criada com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível se cadastrar.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n\n @action\n public login = async (\n username: string,\n password: string,\n remember: boolean\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n const urlParams = new URLSearchParams(window.location.search);\n const path = urlParams.get(\"path\");\n\n try {\n const response = await login(username, password);\n\n if (remember) {\n localStorage.setItem(\"token\", response.access_token);\n } else {\n sessionStorage.setItem(\"token\", response.access_token);\n }\n\n this.user = response.user;\n this.token = response.access_token;\n api.setHeader(\"Authorization\", `Bearer ${response.access_token}`);\n\n this.rootStore.routerStore.push(path || \"/dashboard\");\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível fazer o login.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport { observable, action } from \"mobx\";\n\nexport class GeneralStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n\n const matchMediaEvent = window.matchMedia(\"(max-width: 700px)\");\n\n this.setMobileSize(matchMediaEvent);\n matchMediaEvent.addListener(this.setMobileSize);\n\n if (this.mobileSize) {\n this.isDrawerOpen = false;\n }\n }\n\n @observable public mobileSize = false;\n @observable public isDrawerOpen = true;\n @observable public showLoading = false;\n @observable public snackbar: {\n msg: string;\n variant: \"success\" | \"info\" | \"warning\" | \"error\";\n } | null = null;\n\n @action\n private setMobileSize = (e: any) => {\n if (e.matches) {\n this.mobileSize = true;\n } else {\n this.mobileSize = false;\n }\n };\n\n @action\n public showSnackbar = (\n msg: string,\n variant: \"success\" | \"info\" | \"warning\" | \"error\"\n ) => {\n this.snackbar = { msg, variant };\n };\n\n @action\n public closeSnackbar = () => {\n this.snackbar = null;\n };\n\n @action\n public setShowLoading = (bool: boolean) => {\n this.showLoading = bool;\n };\n\n @action\n public handleDrawerOpen = () => {\n this.isDrawerOpen = true;\n };\n\n @action\n public handleDrawerClose = () => {\n this.isDrawerOpen = false;\n };\n\n @action\n public handleDrawer = () => {\n this.isDrawerOpen = !this.isDrawerOpen;\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getUsers,\n createUser,\n deleteUser,\n getUser,\n updateUser,\n updateProfile,\n} from \"../vendor\";\nimport { Status } from \"../vendor/types\";\n\nexport class UserStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getUsers = async (limit: number, offset: number, all: boolean) => {\n try {\n return await getUsers(limit, offset, all);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de usuários.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getUser = async (username: string) => {\n try {\n return await getUser(username);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o usuário.\",\n \"error\"\n );\n return null;\n }\n };\n\n public create = async (data: {\n email: string;\n username: string;\n password: string;\n fullName: string;\n groupPermission: string;\n status: Status;\n allowPartners: number[];\n allowAllPartners: boolean;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const user = await createUser(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return user;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível criar esse usuário.\",\n \"error\"\n );\n }\n };\n\n public updateUser = async (\n data: {\n email?: string;\n username?: string;\n password?: string;\n fullName?: string;\n groupPermission?: string;\n status?: Status;\n allowPartners?: number[];\n allowAllPartners?: boolean;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateUser(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/users\");\n this.rootStore.generalStore.showSnackbar(\n \"Usuário editado com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar esse usuário.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n\n public updateProfile = async (data: {\n email?: string;\n username?: string;\n password?: string;\n fullName?: string;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateProfile(data);\n\n this.rootStore.routerStore.push(\"/dashboard\");\n this.rootStore.generalStore.showSnackbar(\n \"Usuário editado com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar esse usuário.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n\n public deleteUser = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await deleteUser(id);\n this.rootStore.generalStore.showSnackbar(\n \"Usuário deletado com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível deletar esse usuário.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getGroupPermissions,\n deleteGroupPermission,\n createGroup,\n updateGroup,\n getGroupPermission,\n getPermissions,\n} from \"../vendor\";\nimport { Status } from \"../vendor/types\";\n\nexport class AccessLevelStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getGroupPermission = async (id: number) => {\n try {\n return await getGroupPermission(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o grupo.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getGroupPermissions = async (\n all: boolean,\n limit?: number,\n offset?: number\n ) => {\n try {\n return await getGroupPermissions(all, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message ||\n \"Não foi possível obter a lista de grupos de permissões.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getPermissions = async (limit?: number, offset?: number) => {\n try {\n return await getPermissions(limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter as permissões.\",\n \"error\"\n );\n return null;\n }\n };\n\n public deleteGroupPermission = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await deleteGroupPermission(id);\n this.rootStore.generalStore.showSnackbar(\n \"Usuário deletado com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível deletar esse usuário.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n\n public createGroup = async (data: {\n name: string;\n permissionsId: number[];\n status: Status;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const group = await createGroup(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return group;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível criar esse grupo.\",\n \"error\"\n );\n }\n };\n\n public updateGroup = async (\n data: {\n name?: string;\n permissionsId?: number[];\n status?: Status;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateGroup(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/accessLevels\");\n this.rootStore.generalStore.showSnackbar(\n \"Grupo editado com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar esse grupo.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getDeposits,\n getDeposit,\n deleteDeposit,\n createDeposit,\n updateDeposit,\n} from \"../vendor\";\nimport { Status, DepositType } from \"../vendor/types\";\n\nexport class DepositStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getDeposit = async (id: number) => {\n try {\n return await getDeposit(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o depósito.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getDeposits = async (\n all: boolean,\n limit?: number,\n offset?: number\n ) => {\n try {\n return await getDeposits(all, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de depósitos.\",\n \"error\"\n );\n return null;\n }\n };\n\n public deleteDeposit = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await deleteDeposit(id);\n this.rootStore.generalStore.showSnackbar(\n \"Depósito deletado com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível deletar esse depósito.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n\n public createDeposit = async (data: {\n name: string;\n status: Status;\n type: DepositType;\n obs: string;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const deposit = await createDeposit(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return deposit;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível criar esse depósito.\",\n \"error\"\n );\n }\n };\n\n public updateDeposit = async (\n data: {\n name?: string;\n status?: Status;\n type?: DepositType;\n obs?: string;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateDeposit(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/deposits\");\n this.rootStore.generalStore.showSnackbar(\n \"Depósito editado com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar esse depósito.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getGames,\n getGame,\n deleteGame,\n createGame,\n updateGame,\n} from \"../vendor\";\nimport { Status } from \"../vendor/types\";\n\nexport class GameStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getGame = async (id: number) => {\n try {\n return await getGame(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o jogo.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getGames = async (all: boolean, limit?: number, offset?: number) => {\n try {\n return await getGames(all, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de jogos.\",\n \"error\"\n );\n return null;\n }\n };\n\n public deleteGame = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await deleteGame(id);\n this.rootStore.generalStore.showSnackbar(\n \"Jogo deletado com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível deletar esse jogo.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n\n public createGame = async (data: {\n name: string;\n status: Status;\n obs: string;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const game = await createGame(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return game;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível criar esse jogo.\",\n \"error\"\n );\n }\n };\n\n public updateGame = async (\n data: {\n name?: string;\n status?: Status;\n obs?: string;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateGame(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/games\");\n this.rootStore.generalStore.showSnackbar(\n \"Jogo editado com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar esse jogo.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getPartners,\n getPartner,\n deletePartner,\n createPartner,\n updatePartner,\n} from \"../vendor\";\nimport { Status } from \"../vendor/types\";\n\nexport class PartnerStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getPartner = async (id: number) => {\n try {\n return await getPartner(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o parceiro.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getPartners = async (\n all: boolean,\n limit?: number,\n offset?: number\n ) => {\n try {\n return await getPartners(all, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de parceiros.\",\n \"error\"\n );\n return null;\n }\n };\n\n public deletePartner = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await deletePartner(id);\n this.rootStore.generalStore.showSnackbar(\n \"Parceiro deletado com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível deletar esse parceiro.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n\n public createPartner = async (data: {\n name: string;\n status: Status;\n commission: number;\n companyPercentage: number;\n obs: string;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const partner = await createPartner(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return partner;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível criar esse parceiro.\",\n \"error\"\n );\n }\n };\n\n public updatePartner = async (\n data: {\n name?: string;\n status?: Status;\n commission?: number;\n companyPercentage?: number;\n obs?: string;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n try {\n await updatePartner(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/partners\");\n this.rootStore.generalStore.showSnackbar(\n \"Parceiro editado com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar esse parceiro.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport { getLogs } from \"../vendor\";\n\nexport class AuditStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getLogs = async (\n limit?: number,\n offset?: number,\n where: {\n byUser?: string | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n } | null = null\n ) => {\n try {\n return await getLogs(limit, offset, where);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de logs.\",\n \"error\"\n );\n return null;\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getBoards,\n getBoard,\n deleteBoard,\n createBoard,\n createBoards,\n updateBoard,\n transferBoard,\n getTransferBoard,\n getTransferBoards,\n} from \"../vendor\";\nimport { Status } from \"../vendor/types\";\n\nexport class BoardStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getBoard = async (id: number) => {\n try {\n return await getBoard(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a placa.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getBoards = async (\n where: {\n onlyNoApply?: boolean;\n textSearch?: string;\n partnerId?: string;\n gameId?: string;\n all?: boolean;\n },\n limit?: number,\n offset?: number\n ) => {\n try {\n return await getBoards(where, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista das placas.\",\n \"error\"\n );\n return null;\n }\n };\n\n public deleteBoard = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await deleteBoard(id);\n this.rootStore.generalStore.showSnackbar(\n \"Placa deletada com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível deletar essa placa.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n\n public createBoard = async (data: {\n serial: string;\n gameId: number;\n depositId: number;\n obs: string;\n boardCreatedDate: Date;\n status: Status;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const board = await createBoard(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return board;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível adquirir essa placa.\",\n \"error\"\n );\n\n return null;\n }\n };\n\n public createBoards = async (data: {\n count: number;\n gameId: number | null;\n depositId: number;\n obs: string;\n boardCreatedDate: Date;\n status: Status;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const boards = await createBoards(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return boards;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível adquirir essas placas.\",\n \"error\"\n );\n\n return null;\n }\n };\n\n public updateBoard = async (\n data: {\n serial?: string;\n gameId?: number;\n obs?: string;\n boardCreatedDate?: Date;\n status?: Status;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateBoard(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/boards\");\n this.rootStore.generalStore.showSnackbar(\n \"Placa editada com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar essa placa.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n\n public transferBoard = async (data: {\n boardsToTransfer: number[];\n newGameId: number;\n toType: \"deposit\" | \"partner\";\n toLocal: number;\n obs: string;\n transferDate: Date;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const transferBoardPayload = await transferBoard(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return transferBoardPayload;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível transferir essa placa.\",\n \"error\"\n );\n }\n };\n\n public getTransferBoard = async (id: number) => {\n try {\n return await getTransferBoard(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o log de transferência.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getTransferBoards = async (\n limit?: number,\n offset?: number,\n where?: {\n textSearch?: string;\n period?: {\n dateInit?: string | null;\n dateEnd?: string | null;\n };\n }\n ) => {\n try {\n return await getTransferBoards(limit, offset, where);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message ||\n \"Não foi possível obter a lista de log das transferências.\",\n \"error\"\n );\n return null;\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getMachines,\n getMachine,\n createMachine,\n updateMachine,\n removeBoardOnMachine,\n changeBoard,\n getChangeBoard,\n getChangeBoards,\n} from \"../vendor\";\nimport { Status } from \"../vendor/types\";\n\nexport class MachineStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getMachine = async (id: number) => {\n try {\n return await getMachine(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a máquina.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getMachines = async (\n where: {\n onlyNoApply?: boolean;\n onlyApply?: boolean;\n textSearch?: string;\n partnerId?: string;\n gameId?: string;\n all?: boolean;\n },\n limit?: number,\n offset?: number\n ) => {\n try {\n return await getMachines(where, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista das máquinas.\",\n \"error\"\n );\n return null;\n }\n };\n\n public createMachine = async (data: {\n partnerId: number;\n boardId: number;\n partnerName: string;\n obs: string;\n machineCreatedDate: Date;\n status: Status;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const machine = await createMachine(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return machine;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível montar essa máquina.\",\n \"error\"\n );\n this.rootStore.generalStore.setShowLoading(false);\n\n return null;\n }\n };\n\n public updateMachine = async (\n data: {\n partnerId?: number;\n obs?: string;\n partnerName?: string;\n machineCreatedDate?: Date;\n status?: Status;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateMachine(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/machines\");\n this.rootStore.generalStore.showSnackbar(\n \"Máquina editada com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar essa máquina.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n\n public removeBoardOnMachine = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await removeBoardOnMachine(id);\n this.rootStore.generalStore.showSnackbar(\n \"Placa removida com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível remover essa placa.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n\n public changeBoard = async (\n data: {\n newBoardId: number;\n obs: string;\n changeDate: Date;\n reasonId: number;\n meterCurrentEntry: number;\n meterCurrentExit: number;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const changeBoardPayload = await changeBoard(data, id);\n\n this.rootStore.generalStore.showSnackbar(\n \"Troca de placa realizada com sucesso.\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return changeBoardPayload;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível realizar a troca de placa.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return null;\n }\n };\n\n public getChangeBoard = async (id: number) => {\n try {\n return await getChangeBoard(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o log da troca de placa.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getChangeBoards = async (\n limit?: number,\n offset?: number,\n where?: {\n partnerId?: string;\n period?: {\n dateInit?: string | null;\n dateEnd?: string | null;\n };\n }\n ) => {\n try {\n return await getChangeBoards(limit, offset, where);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de trocas de placa.\",\n \"error\"\n );\n return null;\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getScans,\n getScan,\n createScan,\n updateScan,\n getLastScanOnMachine,\n removeScan,\n canBeUpdated,\n getLastScanOnBoard,\n} from \"../vendor\";\nimport { ScanType } from \"../vendor/types\";\n\nexport class ScanStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getScan = async (id: number) => {\n try {\n return await getScan(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a leitura.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getScans = async (\n where: {\n byUser?: string;\n partnerId?: number;\n scanType: Array<\n \"normalScanType\" | \"adjustmentScanType\" | \"surveyScanType\"\n >;\n machineId?: number;\n gameId?: number;\n period?: {\n dateInit?: string;\n dateEnd?: string;\n };\n },\n limit?: number,\n offset?: number\n ) => {\n try {\n return await getScans(where, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de leituras.\",\n \"error\"\n );\n return null;\n }\n };\n\n public createScan = async (data: {\n machineId: number;\n scanType: ScanType;\n obs: string;\n meterCurrentEntry: number;\n meterCurrentExit: number;\n }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const Scan = await createScan(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n this.rootStore.generalStore.showSnackbar(\n \"Máquina lida com sucesso!\",\n \"success\"\n );\n\n return Scan;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível ler essa máquina.\",\n \"error\"\n );\n this.rootStore.generalStore.setShowLoading(false);\n\n return null;\n }\n };\n\n public canBeUpdated = async (scanId: number) => {\n let bool = false;\n try {\n this.rootStore.generalStore.setShowLoading(true);\n\n bool = await canBeUpdated(scanId);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Essa leitura não pode ser editada.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n\n return bool;\n };\n\n public updateScan = async (\n data: {\n obs?: string;\n meterCurrentEntry?: number;\n meterCurrentExit?: number;\n },\n scanId: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const scan = await updateScan(data, scanId);\n\n this.rootStore.generalStore.showSnackbar(\n \"Leitura editada com sucesso!\",\n \"success\"\n );\n\n return scan;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar essa leitura.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n\n public removeScan = async (id: number) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await removeScan(id);\n this.rootStore.generalStore.showSnackbar(\n \"Leitura cancelada com sucesso!\",\n \"success\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return true;\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível cancelar essa leitura.\",\n \"error\"\n );\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return false;\n }\n };\n\n public getLastScanOnMachine = async (machineId: number) => {\n try {\n return await getLastScanOnMachine(machineId);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a leitura.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getLastScanOnBoard = async (boardId: number) => {\n try {\n return await getLastScanOnBoard(boardId);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a leitura.\",\n \"error\"\n );\n return null;\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport {\n getBasicData,\n getBoardsData,\n getBoardsDashboard,\n getGamesData,\n getScansData,\n getPartnersData,\n getDetailedPartnersData,\n} from \"../vendor\";\nimport { TypeGetBoardsDashboard, ScanType } from \"../vendor/types\";\n\nexport class DashboardStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getDetailedPartnersData = async (\n where: {\n partnerIds?: string[] | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n } | null = null\n ) => {\n try {\n return await getDetailedPartnersData(where);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter os dados do Dashboard.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getPartnersData = async (\n where: {\n partnerIds?: string[] | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n } | null = null\n ) => {\n try {\n return await getPartnersData(where);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter os dados do Dashboard.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getScansData = async (\n where: {\n partnerIds?: string[] | null;\n scanTypes?: ScanType[] | null;\n period?: {\n dateInit: string | null;\n dateEnd: string | null;\n };\n groupBy?: \"all\" | \"date\" | \"partner\" | \"scanType\" | null;\n } | null = null\n ) => {\n try {\n return await getScansData(where);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter os dados do Dashboard.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getGamesData = async () => {\n try {\n return await getGamesData();\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter os dados do Dashboard.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getBasicData = async () => {\n try {\n return await getBasicData();\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter os dados do Dashboard.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getBoardsData = async () => {\n try {\n return await getBoardsData();\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter os dados do Dashboard.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getBoardsDashboard = async (\n type: TypeGetBoardsDashboard,\n partnerOrDepositId?: number\n ) => {\n try {\n return await getBoardsDashboard(type, partnerOrDepositId);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter os dados das Placas.\",\n \"error\"\n );\n return null;\n }\n };\n}\n","import { RootStore } from \"./RootStore\";\nimport { getReason, createReason, updateReason, getReasons } from \"../vendor\";\nimport { Status } from \"../vendor/types\";\n\nexport class ReasonStore {\n protected rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public getReason = async (id: number) => {\n try {\n return await getReason(id);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter o motivo.\",\n \"error\"\n );\n return null;\n }\n };\n\n public getReasons = async (all: boolean, limit?: number, offset?: number) => {\n try {\n return await getReasons(all, limit, offset);\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível obter a lista de motivos.\",\n \"error\"\n );\n return null;\n }\n };\n\n public createReason = async (data: { name: string; status: Status }) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n const group = await createReason(data);\n\n this.rootStore.generalStore.setShowLoading(false);\n\n return group;\n } catch (err) {\n this.rootStore.generalStore.setShowLoading(false);\n\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível criar esse motivo.\",\n \"error\"\n );\n\n return null;\n }\n };\n\n public updateReason = async (\n data: {\n name?: string;\n status?: Status;\n },\n id: number\n ) => {\n this.rootStore.generalStore.setShowLoading(true);\n\n try {\n await updateReason(data, id);\n\n this.rootStore.routerStore.push(\"/dashboard/reasons\");\n this.rootStore.generalStore.showSnackbar(\n \"Motivo editado com sucesso!\",\n \"success\"\n );\n } catch (err) {\n this.rootStore.generalStore.showSnackbar(\n err.message || \"Não foi possível editar esse motivo.\",\n \"error\"\n );\n } finally {\n this.rootStore.generalStore.setShowLoading(false);\n }\n };\n}\n","import { createContext, useContext } from \"react\";\nimport { createBrowserHistory } from \"history\";\nimport { syncHistoryWithStore, RouterStore } from \"mobx-react-router\";\n\nimport { AuthStore } from \"./AuthStore\";\nimport { GeneralStore } from \"./GeneralStore\";\nimport { UserStore } from \"./UserStore\";\nimport { AccessLevelStore } from \"./AccessLevelStore\";\nimport { DepositStore } from \"./DepositStore\";\nimport { GameStore } from \"./GameStore\";\nimport { PartnerStore } from \"./PartnerStore\";\nimport { AuditStore } from \"./AuditStore\";\nimport { BoardStore } from \"./BoardStore\";\nimport { MachineStore } from \"./MachineStore\";\nimport { ScanStore } from \"./ScanStore\";\nimport { DashboardStore } from \"./DashboardStore\";\nimport { ReasonStore } from \"./ReasonStore\";\n\nexport class RootStore {\n public routerStore = new RouterStore();\n public authStore = new AuthStore(this);\n public generalStore = new GeneralStore(this);\n public userStore = new UserStore(this);\n public accessLevelStore = new AccessLevelStore(this);\n public depositStore = new DepositStore(this);\n public gameStore = new GameStore(this);\n public partnerStore = new PartnerStore(this);\n public auditStore = new AuditStore(this);\n public boardStore = new BoardStore(this);\n public machineStore = new MachineStore(this);\n public scanStore = new ScanStore(this);\n public dashboardStore = new DashboardStore(this);\n public reasonStore = new ReasonStore(this);\n\n public history = syncHistoryWithStore(\n createBrowserHistory(),\n this.routerStore\n );\n}\n\nconst rootStore = new RootStore();\nexport const { history, ...providers } = rootStore;\n\nconst storeCtx = createContext(providers);\nexport function useStores() {\n return useContext(storeCtx);\n}\n"],"sourceRoot":""}