{"version":3,"sources":["components/Logo.js","components/Auth.js","components/Login.js","components/NavMenu.js","components/Layout.js","components/LoginPartialView.js","components/Agreement.js","components/RegisterPartialView.js","components/api/LoginApi.js","components/api/ModuleApi.js","components/Home.js","components/Verify.js","components/modules/MPassword.js","components/api/SettingsApi.js","components/Settings.js","components/modules/MExpense/MExpenseGroupView.js","components/modules/MExpense/MExpenseCostView.js","components/modules/MExpense/MExpenseAddCostItemModal.js","components/modules/MExpense/MExpenseCostItemView.js","components/modules/MExpense/MExpenseGraph.js","components/Modals/MessageModal.js","components/modules/MExpense/MExpenseCostEditView.js","components/modules/MExpense/MExpenseAddCostModal.js","components/modules/MExpense/MExpenseAddGroupModal.js","components/modules/MExpense/MExpenseEditCostModal.js","components/modules/MExpense/Modals/MExpenseMonthSelectorModal.js","components/modules/MExpense/Modals/MExpenseMonthEditModal.js","components/modules/MExpense/MExpense.js","components/modules/MGames/MGames.js","App.js","registerServiceWorker.js","index.js"],"names":["Logo","to","className","Component","AuthGet","xhr","XMLHttpRequest","open","send","status","JSON","parse","responseText","ok","Auth","props","t","control","children","undefined","only","Fragment","Login","loginStyle","alignSelf","justifySelf","height","display","flexDirection","gridRowGap","gridColumnGap","buttonStyle","marginLeft","logout","event","fetch","then","r","json","a","window","location","state","name","isSettingsPage","val","style","this","id","gap","pathname","onClick","React","NavMenu","Container","href","displayName","Layout","LoginPartialView","formSubmitStyle","textAlign","margin","width","gridTemplateRows","blockStyle","backgroundColor","borderRadius","border","marginBottom","padding","inputStyle","fontSize","outline","alignItems","imgBlockStyle","validateEmail","email","test","submit","preventDefault","current","value","login","password","createRef","color","fontWeight","showView","alt","src","onSubmit","srcSet","placeholder","type","ref","Agreement","RegisterPartialView","formStyle","gridRow","confirm","console","log","agreement","showagreement","confirmed","InputGroup","Input","onChange","e","setState","Label","Modal","toggle","isOpen","aria-labelledby","size","ModalHeader","ModalBody","ModalFooter","Button","disabled","LoginApi","handleError","err","warn","Response","stringify","code","message","pass","method","body","headers","catch","response","redirected","Promise","reject","register","ModuleApi","executeGet","url","error","executePost","jsonData","execute","load","info","get","merge","delete","group","guid","data","expense","cost","addpurchase","mergecost","deletecost","deletecostitem","mergegroup","deletegroup","deleteboard","mergeboard","replace","addPurchase","stamp","note","mergeCost","groupid","plan","isclosed","deleteCost","deleteCostItem","mergeGroup","boardid","deleteGroup","deleteBoard","mergeBoard","money","prevmoney","games","Home","view","modules","loadContent","l","p","md5","reload","gridColumn","v","map","key","link","isEnabled","dangerouslySetInnerHTML","__html","description","isActive","Verify","loginas","apiloginas","search","check","loginname","Row","Col","FormGroup","for","innerRef","defaultValue","MPassword","submitAsync","mergeitem","mergeAsync","editElement","modelProperty","modelValue","modelGroup","removeItem","removeAsync","showAddModal","element","showModal","hideModal","isLoaded","isNew","getAsync","dd","push","di","find","c","splice","findIndex","maxWidth","Table","centered","SettingsApi","save","fname","sname","lname","Settings","uname","currentTarget","MExpenseGroupView","statusStyle","content","isClosed","currentMoneyClass","currentMoney","planMoney","isSelected","onSelect","MExpenseCostView","MExpenseAddCostItemModal","generateItems","start","Array","fill","_","idx","caption","daysInMonth","month","year","Date","getDate","onOk","monthStamp","setDate","selectedDay","parseFloat","onCancel","previous","startIndex","nextIndex","items","next","monthDays","currentDay","boardPeriod","substr","curr","mm","getMonth","getFullYear","currDay","startDay","Math","ceil","item","flex","autoFocus","MExpenseCostItemView","borderTop","borderLeft","borderRight","minWidth","d","background","backgroundSize","marginTop","opacity","marginRight","onDelete","MExpenseGraph","els","index","MessageModal","title","MExpenseCostEditView","showAdd","isAddOpen","showDelete","isDeleteOpen","isLoading","deleteItem","afterAnyAction","refresh","editNameMode","editPlanMode","editCloseMode","editOftenUsedMode","setClick","addDeleteAction","groupName","isOftenUsed","graphItems","removeItemText","toLocaleString","gridTemplateColumns","length","q","MExpenseAddCostModal","selGroup","select","el","dropDownOpen","selG","selectedGroup","ButtonDropdown","direction","readOnly","DropdownToggle","caret","DropdownMenu","DropdownItem","MExpenseAddGroupModal","MExpenseEditCostModal","checked","defaultChecked","MExpenseMonthSelectorModal","board","prev","active","boardStamp","isActual","currentColor","prevColor","nextColor","ButtonGroup","toLocaleDateString","MExpenseMonthEditModal","mainMoney","prevMoney","MExpense","columnTitleStyle","columnHeaderStyle","selectGroup","obj","selectedCost","selectCost","selectCostId","costs","addCost","res","isAddCostOpen","editCost","groupId","isEditCostOpen","refreshCostCurrentValue","editGroup","isAddGroupOpen","isDeleteGroupOpen","isDeleteBoardOpen","selectMonthMode","editMonthMode","groupMenuOpened","costMenuOpened","costItemMenuOpened","groups","boardMenuOpened","isCostLoaded","selectedStamp","removeGroupText","monthImg","monthcolor","m","groupMoney","reduce","b","extraBadMoney","sumMoney","justifyContent","toUpperCase","Dropdown","left","right","divider","_deleteCost","filter","_showAdd","action","MGames","raiting","gamepath","gamespath","Badge","App","exact","path","component","isLocalhost","Boolean","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","controller","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","process","origin","addEventListener","indexOf","ready","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"wWAIaA,G,MAAb,uKAEQ,OACI,kBAAC,IAAD,CAAMC,GAAG,IAAIC,UAAU,kBAHnC,GAA0BC,cCFnB,SAASC,IACZ,IAAIC,EAAM,IAAIC,eAGd,OAFAD,EAAIE,KAAK,MAAO,oBAAoB,GACpCF,EAAIG,OACe,MAAfH,EAAII,OACGC,KAAKC,MAAMN,EAAIO,cAGf,CAAEC,IAAI,GAId,SAASC,EAAKC,GACjB,IAAMC,EAAIZ,IACNa,EAAUF,EAAMG,SASpB,OARIF,EAAEH,QACiBM,IAAfJ,EAAMK,OACNH,EAAUF,EAAMG,SAAS,IAI7BD,EAAUF,EAAMG,SAAS,GAGzB,kBAAC,IAAMG,SAAP,KACKJ,GCtBN,IAAMK,EAAb,kDAeI,WAAYP,GAAQ,IAAD,8BACf,cAAMA,IAfVQ,WAAa,CACTC,UAAW,oBACXC,YAAa,QACbC,OAAQ,OACRC,QAAS,OACTC,cAAe,SACfC,WAAY,OACZC,cAAe,QAOA,EALnBC,YAAc,CACVC,WAAY,OAIG,EAKnBC,OAAS,SAACC,GACNC,MAAM,sBACDC,MAAK,SAAAC,GAAC,OAAIA,EAAEC,UACZF,MAAK,SAAAG,GACEA,EAAE1B,KACF2B,OAAOC,SAAW,SAR9B,EAAKC,MAAQ,CAAEC,KAAMvC,IAAUuC,MAFhB,EAfvB,qDA6BQ,IACIC,EAAiB,SAACC,GAAD,MAAiB,cAARA,GAC9B,OACI,yBAAKC,MAAOC,KAAKxB,WAAYyB,GAAG,SAC5B,kBAAC,IAAD,CAAO9B,SAAU,SAACH,GAAD,OACb,yBAAK+B,MAAO,CAAEnB,QAAS,OAAQsB,IAAK,SAChC,yBAAK/C,UAAU,QACX,kBAAC,IAAD,CAAMD,GAAG,IAAIC,WAPf2C,EAOqC9B,EAAM0B,SAASS,SAPpC,MAARL,GAAuB,gBAARA,GAAiC,eAARA,GAAgC,aAARA,EAOP,WAAa,KAA5E,aAEJ,yBAAK3C,UAAU,QACX,kBAAC,IAAD,CAAMD,GAAG,YAAYC,UAAW0C,EAAe7B,EAAM0B,SAASS,UAAY,WAAa,IAAvF,cAVH,IAACL,KAcV,yBAAK3C,UAAU,aAAa6C,KAAKL,MAAMC,KAAvC,MAA+C,kBAAC,IAAD,CAAM1C,GAAG,IAAIkD,QAASJ,KAAKd,QAA3B,QAA/C,WA3ChB,GAA2BmB,IAAMjD,WCEpBkD,G,MAAb,uKAIM,OAEI,kBAACC,EAAA,EAAD,CAAWR,MAAO,CAACpB,OAAQ,SACvB,kBAACZ,EAAD,KACI,gCACkC,YAA7B0B,OAAOC,SAASS,UAA0B,kBAAC,EAAD,OAG/C,gCACI,yBAAKhD,UAAU,qBACX,yBAAKA,UAAU,QACb,kBAAC,EAAD,MACA,kBAAC,EAAD,QAGN,yBAAKA,UAAU,qBACX,yBAAKA,UAAU,SACX,uBAAGqD,KAAK,IAAIrD,UAAU,cAClB,0BAAMA,UAAU,SAAhB,SACA,0BAAMA,UAAU,QAAhB,OACI,2BAAOA,UAAU,OAAjB,UAGR,kBAAC,EAAD,eA3B9B,GAA6BC,cAAhBkD,EACJG,YAAcH,EAAQV,KCJxB,IAAMc,EAAb,uKAII,OACE,6BACE,kBAAC,EAAD,MACA,kBAACH,EAAA,EAAD,KACGP,KAAKhC,MAAMG,eARtB,GAA4Bf,aAAfsD,EACJD,YAAcC,EAAOd,K,4CCDjBe,G,MAAb,kDA+BI,WAAY3C,GAAQ,IAAD,8BACf,cAAMA,IA/BV4C,gBAAkB,CACdC,UAAW,SACXC,OAAQ,OACRC,MAAO,QACPnC,QAAS,OACToC,iBAAkB,uBAyBH,EAvBnBC,WAAa,CACTC,gBAAiB,QACjBC,aAAc,OACdvC,QAAS,OACTwC,OAAQ,iBACRzC,OAAQ,OACR0C,aAAc,MACdC,QAAS,OAgBM,EAdnBC,WAAa,CACTL,gBAAiB,cACjBM,SAAU,QACVvC,WAAY,MACZmC,OAAQ,OACRK,QAAS,OACTC,WAAY,UAQG,EANnBC,cAAgB,CACZZ,MAAO,OACPnC,QAAS,OACTD,OAAQ,QAGO,EAMnBiD,cAAgB,SAACC,GAEb,MADS,uIACCC,KAAKD,IARA,EAUnBE,OAAS,SAAC5C,GACNA,EAAM6C,iBACF,EAAKJ,cAAc,EAAKC,MAAMI,QAAQC,QACtC,EAAKlE,MAAMmE,MAAM,EAAKN,MAAMI,QAAQC,MAAO,EAAKE,SAASH,QAAQC,QAVrE,EAAKL,MAAQxB,IAAMgC,YACnB,EAAKD,SAAW/B,IAAMgC,YAJP,EA/BvB,qDAgDc,IAAD,OACL,OACI,yBAAKlF,UAAU,iBACX,yBAAKA,UAAU,iBACf,yBAAKA,UAAU,gBACX,kBAAC,IAAD,CAAMA,UAAU,aAAaD,GAAG,OAEpC,yBAAKC,UAAU,gBACX,6CACA,0BAAM4C,MAAO,CAAEyB,SAAU,UAAzB,6CAA8E,6BAA9E,SACc,kBAAC,IAAD,CAAMtE,GAAG,IAAI6C,MAAO,CAAEuC,MAAO,OAAQC,WAAY,QACvDnC,QAAS,kBAAM,EAAKpC,MAAMwE,SAAS,cAD7B,YADd,kCAMJ,yBAAKrF,UAAU,mBACX,yBAAKsF,IAAI,GAAGC,IAAI,uBAAuB3C,MAAO,CAAEpB,OAAQ,QAASoC,MAAO,YAG5E,yBAAK5D,UAAU,kBAEf,yBAAKA,UAAU,kBACX,0BAAM4C,MAAOC,KAAKY,gBAAiB+B,SAAU3C,KAAK+B,QAC9C,yBAAKhC,MAAO,CAAEsB,aAAc,SACxB,0BAAMtB,MAAO,CAAEnB,QAAS,QAAS4C,SAAU,QAASH,aAAc,SAAlE,WACA,0BAAMtB,MAAO,CAAEyB,SAAU,UAAzB,yBAEJ,yBAAKzB,MAAOC,KAAKiB,YACb,yBAAKlB,MAAOC,KAAK2B,eACb,yBAAKc,IAAI,QAAQG,OAAO,wBAAwB7C,MAAO,CAAEpB,OAAQ,OAAQmC,OAAQ,WAErF,2BAAO+B,YAAY,cAAcC,KAAK,QAAQC,IAAK/C,KAAK6B,MAAO9B,MAAOC,KAAKuB,cAE/E,yBAAKxB,MAAOC,KAAKiB,YACb,yBAAKlB,MAAOC,KAAK2B,eACb,yBAAKc,IAAI,OAAOG,OAAO,uBAAuB7C,MAAO,CAAEpB,OAAQ,OAAQmC,OAAQ,WAEnF,2BAAO+B,YAAY,iBAAiBE,IAAK/C,KAAKoC,SAAUU,KAAK,WAAW/C,MAAOC,KAAKuB,cAExF,2BAAOuB,KAAK,SAAS3F,UAAU,kBAAkB4C,MAAO,CAAEpB,OAAQ,QAAUuD,MAAM,YAG1F,yBAAK/E,UAAU,mBACX,+DAAoC,uBAAGqD,KAAK,8BAAR,YAApC,WA3FpB,GAAsCH,IAAMjD,Y,uECFrC,SAAS4F,IACZ,OAAO,yBAAK7F,UAAU,aAClB,4BAAI,yDACJ,oDACA,oKACA,2NACA,i8BACA,4BAAI,4CACJ,qKACA,gUACA,4BAAI,4CACJ,uUACA,4CACA,4BACI,iEACA,iFACA,oFACA,oEAEJ,wIAA6G,uBAAGqD,KAAK,+CAAR,kCAA7G,YAA8M,uBAAGA,KAAK,yCAAR,4BAA9M,KACA,gsBACA,mNACA,8DACA,4BACI,2IACA,2KACA,wKACA,8JAEJ,0NACA,4BAAI,gEACJ,kHACA,4BACI,oDACA,+CACA,mDACA,0KACA,8MAEJ,4WACA,yHACA,4BACI,4FACA,wDACA,oFACA,8DACA,iDACA,yEACA,iFAEJ,gbACA,uTACA,idACA,8FACA,4BACI,gEACA,0FACA,2LAEJ,gJACA,4BAAI,4CACJ,uMACA,4BAAI,sDACJ,0ZACA,4BAAI,iDACJ,yDACA,4BAAI,0DACJ,+ZACA,4BAAI,sEACJ,iQACA,uQACA,4BAAI,+CACJ,iOACA,4BACI,oGACA,iHACA,8HACA,sHAEJ,gUACA,+L,sBC5EKyC,EAAb,kDAkCI,WAAYjF,GAAQ,IAAD,8BACf,cAAMA,IAlCVkF,UAAY,CACRrC,UAAW,SACXpC,UAAW,QACXC,YAAa,SACbqC,MAAO,QACPnC,QAAS,OACTuE,QAAS,aACTxE,OAAQ,OACRqC,iBAAkB,4BAyBH,EAtBnBC,WAAa,CACTC,gBAAiB,QACjBC,aAAc,OACdvC,QAAS,OACTwC,OAAQ,kBACRzC,OAAQ,OACR0C,aAAc,MACdC,QAAS,OAeM,EAbnBC,WAAa,CACTL,gBAAiB,cACjBM,SAAU,QACVvC,WAAY,MACZmC,OAAQ,OACRK,QAAS,OACTC,WAAY,UAOG,EALnBC,cAAgB,CACZZ,MAAO,OACPnC,QAAS,OACTD,OAAQ,QAEO,EAQnBiD,cAAgB,SAACC,GAEb,MADS,uIACCC,KAAKD,IAVA,EAYnBE,OAAS,SAAC5C,GACNA,EAAM6C,iBACF,EAAKJ,cAAc,EAAKC,MAAMI,QAAQC,OACtC,EAAKlE,MAAMoF,QAAQ,EAAKvB,MAAMI,QAAQC,MAAO,EAAKE,SAASH,QAAQC,OAGnEmB,QAAQC,IAAI,2BAfhB,EAAK3D,MAAQ,CAAE4D,WAAW,EAAOC,eAAe,GAEhD,EAAK3B,MAAQxB,IAAMgC,YACnB,EAAKD,SAAW/B,IAAMgC,YANP,EAlCvB,qDAuDc,IAAD,OACL,OACI,yBAAKlF,UAAU,oBACX,yBAAKA,UAAU,yBACf,yBAAKA,UAAU,wBACX,kBAAC,IAAD,CAAMA,UAAU,aAAaD,GAAG,OAEpC,yBAAKC,UAAU,yBACX,yBAAK4C,MAAO,CAAEe,OAAQ,SAAUnC,OAAQ,OAAQC,QAAS,OAAQoC,iBAAkB,aAC7EhB,KAAKhC,MAAMyF,WACN,0BAAM1D,MAAOC,KAAKkD,UAAWP,SAAU3C,KAAK+B,QAC3C,yBAAKhC,MAAO,CAAEsB,aAAc,SACxB,0BAAMtB,MAAO,CAAEnB,QAAS,QAAS4C,SAAU,QAASH,aAAc,SAAlE,iBACA,0BAAMtB,MAAO,CAAEyB,SAAU,UAAzB,yBAEJ,yBAAKzB,MAAOC,KAAKiB,YACb,yBAAKlB,MAAOC,KAAK2B,eACb,yBAAKc,IAAI,QAAQG,OAAO,wBAAwB7C,MAAO,CAAEpB,OAAQ,OAAQmC,OAAQ,WAErF,2BAAO+B,YAAY,cAAcC,KAAK,QAAQC,IAAK/C,KAAK6B,MAAO9B,MAAOC,KAAKuB,cAE/E,yBAAKxB,MAAOC,KAAKiB,YACb,yBAAKlB,MAAOC,KAAK2B,eACb,yBAAKc,IAAI,OAAOG,OAAO,uBAAuB7C,MAAO,CAAEpB,OAAQ,OAAQmC,OAAQ,WAEnF,2BAAO+B,YAAY,sBAAsBE,IAAK/C,KAAKoC,SAAUU,KAAK,WAAW/C,MAAOC,KAAKuB,cAE7F,kBAACmC,EAAA,EAAD,CAAY3D,MAAO,CAAEsB,aAAc,MAAOG,SAAU,QAASvC,WAAY,YACrE,kBAAC0E,EAAA,EAAD,CAAOb,KAAK,WAAWZ,MAAOlC,KAAKL,MAAM4D,UACrCK,SAAU,SAACC,GAAD,OAAO,EAAKC,SAAS,CAAEP,WAAY,EAAK5D,MAAM4D,eAFhE,IAEiF,kBAACQ,EAAA,EAAD,qBAAoB,kBAAC,IAAD,CAAM7G,GAAG,IAAIkD,QAAS,kBAAM,EAAK0D,SAAS,CAAEN,eAAe,MAA3D,wBAEjG,kBAACQ,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKH,SAAS,CAAEN,eAAe,KAAUU,OAAQlE,KAAKL,MAAM6D,cAAeW,kBAAgB,gCAAgCC,KAAK,KAAKrE,MAAO,CAAEpB,OAAQ,SACvK,kBAAC0F,EAAA,EAAD,4BACA,kBAACC,EAAA,EAAD,KACI,kBAACtB,EAAD,OAEJ,kBAACuB,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAK0D,SAAS,CAAEN,eAAe,MAAxE,YAKZ,2BAAOV,KAAK,SAAS2B,UAAWzE,KAAKL,MAAM4D,UAAWpG,UAAU,kBAAkB4C,MAAO,CAAEpB,OAAQ,QAAUuD,MAAM,cAE1HlC,KAAKL,MAAM8D,WAAa,0DAGjC,yBAAKtG,UAAU,2BACX,yBAAKsF,IAAI,GAAGC,IAAI,uBAAuB3C,MAAO,CAAEpB,OAAQ,QAASoC,MAAO,YAE5E,yBAAK5D,UAAU,0BAEf,yBAAKA,UAAU,yBACX,6CACA,0BAAM4C,MAAO,CAAEyB,SAAU,UAAzB,qCAAsE,6BAAtE,SACkB,kBAAC,IAAD,CAAMtE,GAAG,IAAI6C,MAAO,CAAEuC,MAAO,OAAQC,WAAY,QAAUnC,QAAS,kBAAM,EAAKpC,MAAMwE,SAAS,WAA9F,WADlB,4BAKJ,yBAAKrF,UAAU,2BACX,+DAAoC,uBAAGqD,KAAK,8BAAR,YAApC,WAnHpB,GAAyCH,IAAMjD,WCNlCsH,EAAb,sCAEIC,YAAc,SAAUC,GAEpB,OADAvB,QAAQwB,KAAKD,GACN,IAAIE,SAASnH,KAAKoH,UAAU,CAC/BjH,IAAI,EACJkH,KAAM,IACNC,QAAS,qBAPRP,EAWFvC,M,uCAAQ,WAAON,EAAOqD,GAAd,eAAA1F,EAAA,sEACWJ,MAAM,oBAAqB,CAC7C+F,OAAQ,OACRC,KAAMzH,KAAKoH,UAAU,CAAElD,MAAOA,EAAOqD,KAAMA,IAC3CG,QAAS,CACL,eAAgB,sBAErBC,MAlBEZ,EAkBSC,aAPH,YACPY,EADO,QAQEzH,GARF,oBASHyH,EAASC,WATN,yCAUI/F,OAAOC,SAAW,KAVtB,gCAWA6F,EAAShG,QAXT,gCAaAkG,QAAQC,OAAOH,IAbf,4C,wDAXNb,EA2BFiB,S,uCAAW,WAAO9D,EAAOmD,GAAd,eAAAxF,EAAA,sEACUJ,MAAM,uBAAwB,CAClD+F,OAAQ,OACRC,KAAMzH,KAAKoH,UAAU,CAAElD,MAAOA,EAAOqD,KAAMF,IAC3CK,QAAS,CACL,eAAgB,sBAErBC,MAlCEZ,EAkCSC,aAPA,YACRY,EADQ,QAQDzH,GARC,oBASNyH,EAASC,WATH,yCAUC/F,OAAOC,SAAW,KAVnB,gCAWH6F,EAAShG,QAXN,gCAaHkG,QAAQC,OAAOH,IAbZ,4C,wDC3Bf,IAAMK,EAAb,kCAAaA,EAEFjB,YAAc,SAACC,GAElB,OADAvB,QAAQwB,KAAKD,GACN,IAAIE,SAASnH,KAAKoH,UAAU,CAC/BC,KAAM,IACNC,QAAS,oBANRW,EASFC,W,uCAAa,WAAOC,GAAP,eAAAtG,EAAA,sEACMJ,MAAM0G,GAAKR,MAAMM,EAAUjB,aADjC,YACZY,EADY,QAEHzH,GAFG,oBAGRyH,EAASC,WAHD,yCAID/F,OAAOC,SAAW,KAJjB,gCAKL6F,EAAShG,QALJ,cAOZ8D,QAAQ0C,MAAM,wBAA0BD,EAAM,UAPlC,kBAQLL,QAAQC,OAAOH,IARV,4C,sDATXK,EAoBFI,Y,uCAAc,WAAOF,EAAKG,GAAZ,eAAAzG,EAAA,sEACKJ,MAAM0G,EAAK,CAC7BX,OAAQ,OACRC,KAAMzH,KAAKoH,UAAUkB,GACrBZ,QAAS,CACL,eAAgB,sBAErBC,MAAMM,EAAUjB,aAPF,YACbY,EADa,QAQJzH,GARI,oBASTyH,EAASC,WATA,yCAUF/F,OAAOC,SAAW,KAVhB,gCAWN6F,EAAShG,QAXH,cAab8D,QAAQ0C,MAAM,yBAA2BD,EAAM,UAblC,kBAcNL,QAAQC,OAAOH,IAdT,4C,wDApBZK,EAqCFM,Q,uCAAU,WAAOJ,EAAKG,GAAZ,SAAAzG,EAAA,8DACIpB,IAAb6H,EADS,gCAEIL,EAAUC,WAAWC,GAFzB,+DAGAF,EAAUI,YAAYF,EAAKG,GAH3B,mF,wDArCRL,EA2CFO,K,sBAAO,4BAAA3G,EAAA,6DACV6D,QAAQC,IAAI,kBADF,SAEYlE,MAAM,uBAAuBkG,MAAMM,EAAUjB,aAFzD,YAENY,EAFM,QAGGzH,GAHH,oBAINuF,QAAQ+C,KAAK,0BACTb,EAASC,WALP,yCAMK/F,OAAOC,SAAW,KANvB,gCAOC6F,EAAShG,QAPV,eASN8D,QAAQ0C,MAAM,wBATR,kBAUCN,QAAQC,OAAOH,IAVhB,4CA3CLK,EAyDFxD,U,wCACI0D,IAAM,CACTO,IAAK,oBACLF,KAAM,qBACNG,MAAO,sBACPC,OAAQ,wB,EAGLF,I,sBAAM,sBAAA7G,EAAA,sEACIoG,EAAUM,QAAQN,EAAUxD,SAAS0D,IAAIO,KAD7C,mF,EAGNF,K,uCAAO,WAAO/D,GAAP,SAAA5C,EAAA,sEACGoG,EAAUM,QAAQN,EAAUxD,SAAS0D,IAAIK,KAAM,CAAE/D,SAAUA,IAD9D,mF,wDAGPkE,M,uCAAQ,WAAOrG,EAAIL,EAAMsC,EAAOsE,EAAOC,GAA/B,eAAAjH,EAAA,6DACLkH,EAAO,CAAEzG,KAAIL,OAAMsC,QAAOsE,QAAOC,QAD5B,SAEEb,EAAUM,QAAQN,EAAUxD,SAAS0D,IAAIQ,MAAOI,GAFlD,mF,gEAIRH,O,uCAAS,WAAOtG,EAAIwG,GAAX,eAAAjH,EAAA,6DACNkH,EAAO,CAAEzG,KAAIwG,QADP,SAECb,EAAUM,QAAQN,EAAUxD,SAAS0D,IAAIS,OAAQG,GAFlD,mF,2DA3EXd,EAiFFe,S,wCACIb,IAAM,CACTO,IAAK,uBACLO,KAAM,wBACNC,YAAa,2BACbC,UAAW,yBACXC,WAAY,0BACZC,eAAgB,8BAChBC,WAAY,0BACZC,YAAa,2BACbC,YAAa,2BACbC,WAAY,2B,EAKTf,I,uCAAM,WAAOpG,GAAP,SAAAT,EAAA,sEACIoG,EAAUM,QAAQN,EAAUe,QAAQb,IAAIO,IAAIgB,QAAQ,MAAlC,OAAyCpH,QAAzC,IAAyCA,IAAM,KADrE,mF,wDAGN2G,K,uCAAO,WAAO3G,GAAP,SAAAT,EAAA,sEACGoG,EAAUM,QAAQN,EAAUe,QAAQb,IAAIc,KAAKS,QAAQ,MAAMpH,IAD9D,mF,wDAGPqH,Y,uCAAc,WAAOrH,EAAIsH,EAAOrF,EAAOsF,GAAzB,eAAAhI,EAAA,6DACbkH,EAAO,CAAEzG,KAAIsH,QAAOrF,QAAOsF,QADd,SAEJ5B,EAAUM,QAAQN,EAAUe,QAAQb,IAAIe,YAAaH,GAFjD,mF,8DAIde,U,uCAAY,WAAOxH,EAAIyH,EAAS9H,EAAM+H,EAAMC,GAAhC,eAAApI,EAAA,6DACXkH,EAAO,CAAEzG,KAAIyH,UAAS9H,OAAM+H,OAAMC,YACtCvE,QAAQC,IAAIoD,GAFG,SAGFd,EAAUM,QAAQN,EAAUe,QAAQb,IAAIgB,UAAWJ,GAHjD,mF,gEAKZmB,W,uCAAa,WAAO5H,GAAP,eAAAT,EAAA,6DACZkH,EAAO,CAAEzG,MADG,SAEH2F,EAAUM,QAAQN,EAAUe,QAAQb,IAAIiB,WAAYL,GAFjD,mF,wDAIboB,e,uCAAiB,WAAO7H,GAAP,eAAAT,EAAA,6DAChBkH,EAAO,CAAEzG,MADO,SAEP2F,EAAUM,QAAQN,EAAUe,QAAQb,IAAIkB,eAAgBN,GAFjD,mF,wDAIjBqB,W,uCAAa,WAAOC,EAASN,EAAS9H,GAAzB,eAAAJ,EAAA,6DACZkH,EAAO,CAAEsB,UAAQN,UAAQ9H,QADb,SAEHgG,EAAUM,QAAQN,EAAUe,QAAQb,IAAImB,WAAYP,GAFjD,mF,4DAIbuB,Y,uCAAc,WAAOhI,GAAP,eAAAT,EAAA,6DACbkH,EAAO,CAAEzG,MADI,SAEJ2F,EAAUM,QAAQN,EAAUe,QAAQb,IAAIoB,YAAaR,GAFjD,mF,wDAIdwB,Y,uCAAc,WAAOjI,GAAP,eAAAT,EAAA,6DACbkH,EAAO,CAAEzG,MADI,SAEJ2F,EAAUM,QAAQN,EAAUe,QAAQb,IAAIqB,YAAaT,GAFjD,mF,wDAIdyB,W,uCAAa,WAAOlI,EAAImI,EAAOC,GAAlB,eAAA7I,EAAA,6DACZkH,EAAO,CAAEzG,KAAImI,QAAOC,aACxBhF,QAAQC,IAAIoD,GAFI,SAGHd,EAAUM,QAAQN,EAAUe,QAAQb,IAAIsB,WAAYV,GAHjD,mF,6DApIfd,EA2IF0C,O,wCACIxC,IAAM,CACTO,IAAK,kB,EAEFA,I,sBAAM,sBAAA7G,EAAA,sEACIoG,EAAUM,QAAQN,EAAU0C,MAAMxC,IAAIO,KAD1C,mF,GCtId,IAAMkC,EAAb,kDACI,WAAYvK,GAAQ,IAAD,8BACf,cAAMA,IAyBVwE,SAAW,SAAC5C,GACR,EAAKkE,SAAS,CAAE0E,KAAM5I,KAzBtB,EAAKD,MAAQ,CAAEC,KAAM,GAAI6I,QAAS,GAAID,KAAM,QAAS/E,WAAW,GAEhE,EAAKrB,SAAW/B,IAAMgC,YACtB,EAAKR,MAAQxB,IAAMgC,YALJ,EADvB,gEASQrC,KAAK0I,gBATb,oKAYyB9C,EAAUO,OAZnC,OAYY5G,EAZZ,OAaQS,KAAK8D,SAAS,CAAE2E,QAASlJ,EAAKkJ,UAbtC,2KAegBE,EAAGC,GAfnB,iFAgByBlE,EAASvC,MAAMwG,EAAGE,IAAID,IAhB/C,cAiBiB9K,IACL2B,OAAOC,SAASoJ,SAlB5B,4KAoBmBH,EAAG3D,GApBtB,iFAqByBN,EAASiB,SAASgD,EAAG3D,GArB9C,cAsBiBlH,GACLkC,KAAK8D,SAAS,CAAEL,WAAW,IAE3BzD,KAAK8D,SAAS,CAAEL,WAAW,IAzBvC,wIA8Bc,IAAD,OACL,OACI,kBAAC1F,EAAD,KACI,yBAAKZ,UAAU,QACX,yBAAK4C,MAAO,CAAEgJ,WAAY,MACL,UAApB/I,KAAKL,MAAM6I,MACL,kBAAC,EAAD,CAAkBrG,MAAO,SAACwG,EAAGC,GAAJ,OAAU,EAAKzG,MAAMwG,EAAGC,IAAIpG,SAAU,SAACwG,GAAD,OAAO,EAAKxG,SAASwG,MAEtE,aAApBhJ,KAAKL,MAAM6I,MACL,kBAAC,EAAD,CAAqB/E,UAAWzD,KAAKL,MAAM8D,UAAWL,QAAS,SAACuF,EAAGC,GAAJ,OAAU,EAAKjD,SAASgD,EAAGC,IAAIpG,SAAU,SAACwG,GAAD,OAAO,EAAKxG,SAASwG,QAGxI,yBAAK7L,UAAU,cACV6C,KAAKL,MAAM8I,QAAQQ,KAAI,SAAAzJ,GACpB,OAAO,yBAAK0J,IAAK1J,EAAEI,KAAMzC,UAAW,YAAcqC,EAAE2J,KAAK9B,QAAQ,IAAK,KAAQ7H,EAAE4J,UAA0B,GAAd,cACxF,wBAAIjM,UAAU,cAAa,yBAAKsF,IAAI,OAAOC,IAAK,WAAalD,EAAE2J,KAAO,YAAaxK,OAAO,KAAKoB,MAAO,CAAEsB,aAAc,SAAtH,IAAmI7B,EAAEI,MACrI,uBAAGG,MAAO,CAAEtB,UAAW,UAAW,0BAAM4K,wBAAyB,CAAEC,OAAQ9J,EAAE+J,gBAC5E/J,EAAE4J,WAAa,kBAAC,IAAD,CAAMlM,GAAIsC,EAAE2J,MAAO3J,EAAEgK,SAAW,OAAS,qBACvDhK,EAAE4J,WAAa,0BAAMrJ,MAAO,CAAEuC,MAAO,UAAtB,sBAhD7C,GAA0BlF,a,2BCLbqM,EAAb,kDACI,WAAYzL,GAAQ,IAAD,8BACf,cAAMA,IA0CV0L,QAAU,WACN,EAAKC,WAAW,EAAKxH,MAAMF,QAAQC,MAAO,EAAKE,SAASH,QAAQC,MAAO,EAAKvC,MAAMqF,OAzClF,EAAKrF,MAAQ,CAAE7B,GAAI,EAAGsE,SAAU,IAChC,EAAKD,MAAQ9B,IAAMgC,YACnB,EAAKD,SAAW/B,IAAMgC,YALP,EADvB,gEASQ,IAAI2C,EAAOhF,KAAKhC,MAAM0B,SAASkK,OAAOvC,QAAQ,SAAU,IACxDrH,KAAK6J,MAAM7E,KAVnB,qEAYgBA,GAZhB,yFAa+B5F,MAAM,qBAAsB,CAC/C+F,OAAQ,OACRC,KAAMzH,KAAKoH,UAAU,CAAC2B,KAAM1B,IAC5BK,QAAS,CACL,eAAgB,sBAjBhC,cAacE,EAbd,gBAoByBA,EAAShG,OApBlC,OAoBYA,EApBZ,OAqBQS,KAAK8D,SAAS,CAAEhG,GAAIyB,EAAKzB,GAAK,GAAK,EAAGkH,KAAMA,EAAM5C,SAAU7C,EAAK6C,SAAU6C,QAAS1F,EAAK0F,UArBjG,iLAuBqBrF,EAAMsF,EAAMF,GAvBjC,iFAwBqB5G,IAATwB,GAA+B,KAATA,EAxBlC,yDA2BqBxB,IAAT8G,GAA+B,KAATA,EA3BlC,wDA8BQA,EAAO2D,IAAI3D,GA9BnB,SA+B+B9F,MAAM,sBAAuB,CAChD+F,OAAQ,OACRC,KAAMzH,KAAKoH,UAAU,CAAE+E,UAAWlK,EAAMwC,SAAU8C,EAAMF,KAAMA,IAC9DK,QAAS,CACL,eAAgB,sBAnChC,cA+BcE,EA/Bd,iBAsCyBA,EAAShG,OAtClC,SAsCYA,EAtCZ,QAuCiBzB,GACL2B,OAAOC,SAAW,IAElBM,KAAK8D,SAAS,CAAEhG,IAAK,EAAGmH,QAAS1F,EAAK0F,UA1ClD,2IAgDQ,OACI,yBAAK9H,UAAU,UACQ,IAAlB6C,KAAKL,MAAM7B,IAAY,gDACJ,IAAnBkC,KAAKL,MAAM7B,IAAa,yBAAKX,UAAU,eAAe6C,KAAKL,MAAMsF,SAC/C,IAAlBjF,KAAKL,MAAM7B,IACR,yBAAKiC,MAAO,CAAEpB,OAAQ,SACtB,yBAAKxB,UAAU,gBACV6C,KAAKL,MAAMsF,SAEhB,kBAAC8E,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,KACI,kBAACD,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,CAAOmG,IAAI,OAAX,mEACA,kBAACvG,EAAA,EAAD,CAAO1D,GAAG,MAAMkK,SAAUnK,KAAKmC,QAC/B,kBAAC4B,EAAA,EAAD,CAAOmG,IAAI,QAAX,mCACA,kBAACvG,EAAA,EAAD,CAAO1D,GAAG,OAAOkK,SAAUnK,KAAKoC,SAAUgI,aAAcpK,KAAKL,MAAMyC,aAG3E,kBAACoC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAASJ,KAAK0J,SAAtC,cAGR,kBAACM,EAAA,EAAD,aAvExB,GAA4B3J,IAAMjD,W,SCCrBiN,EAAb,kDACI,WAAYrM,GAAQ,IAAD,8BACf,cAAMA,IAgDV+D,OAAS,SAAC5C,GACN,EAAKmL,YAAY,EAAKpI,MAAMD,QAAQC,OACpC/C,EAAM6C,kBAnDS,EAqDnBuI,UAAY,WACR,EAAKC,WAAW,EAAK7K,MAAM8K,YAAYxK,GAAI,EAAKyK,cAAczI,QAAQC,MAAO,EAAKyI,WAAW1I,QAAQC,MAAO,EAAK0I,WAAW3I,QAAQC,QAtDrH,EAwDnB2I,WAAa,SAAC5K,GACGR,OAAO2D,QAAP,gCAET,EAAK0H,YAAY7K,IA3DN,EA8DnB8K,aAAe,SAACC,GACZ,EAAKlH,SAAS,CAAEmH,WAAW,EAAMR,YAAaO,KA/D/B,EAiEnBE,UAAY,WACR,EAAKpH,SAAS,CAAEmH,WAAW,KA/D3B,EAAKtL,MAAQ,CACT+G,KAAM,GAAI+D,YAAa,GAAIU,UAAU,EAAOC,OAAO,EAAOH,WAAW,GACzE,EAAK/I,MAAQ7B,IAAMgC,YACnB,EAAKqI,cAAgBrK,IAAMgC,YAC3B,EAAKsI,WAAatK,IAAMgC,YACxB,EAAKuI,WAAavK,IAAMgC,YART,EADvB,gEAYQrC,KAAKqL,aAZb,iKAgByBzF,EAAUxD,SAASiE,MAhB5C,OAgBY9G,EAhBZ,OAiBQS,KAAK8D,SAAS,CAAEsH,MAAO7L,EAAK6L,QAjBpC,gLAmBqBnL,EAAIL,EAAMsC,EAAOsE,GAnBtC,2FAoByBZ,EAAUxD,SAASkE,MAAMrG,EAAIL,EAAMsC,EAAOsE,EAAOxG,KAAKL,MAAM8G,MApBrF,QAoBYlH,EApBZ,QAqBiBzB,KACDwN,EAAKtL,KAAKL,MAAM+G,KACT,IAAPzG,EACAqL,EAAGC,KAAK,CAAEtL,GAAIV,EAAKU,GAAIL,OAAMsC,QAAOsE,YAGhCgF,EAAKF,EAAGG,MAAK,SAAAC,GAAC,OAAIA,EAAEzL,KAAOA,MAC5BL,KAAOA,EACV4L,EAAGtJ,MAAQA,EACXsJ,EAAGhF,MAAQA,GAEfxG,KAAK8D,SAAS,CAAE4C,KAAM4E,EAAIL,WAAW,KAhCjD,wLAmCsBhL,GAnCtB,uFAoCyB2F,EAAUxD,SAASmE,OAAOtG,EAAID,KAAKL,MAAM8G,MApClE,cAqCiB3I,MACDwN,EAAKtL,KAAKL,MAAM+G,MACjBiF,OAAOL,EAAGM,WAAU,SAAAF,GAAC,OAAIA,EAAEzL,KAAOA,KAAK,GAC1CD,KAAK8D,SAAS,CAAE4C,KAAM4E,EAAIL,WAAW,KAxCjD,kLA2CsBrC,GA3CtB,uFA4CyBhD,EAAUxD,SAAS+D,KAAKyC,GA5CjD,QA4CYrJ,EA5CZ,QA6CiBzB,IACLkC,KAAK8D,SAAS,CAAEqH,UAAU,EAAMzE,KAAMnH,EAAKmH,KAAMD,KAAMlH,EAAKkH,OA9CxE,sIAsEc,IAAD,OACL,OACI,yBAAKtJ,UAAU,aACX,wBAAIA,UAAU,cAAa,yBAAKsF,IAAI,WAAWC,IAAI,+BAA+B/D,OAAO,OAAO,kDAC9FqB,KAAKL,MAAMwL,UACT,0BAAMpL,MAAO,CAAEnB,QAAS,OAAQsB,IAAK,OAAQ2L,SAAU,SAAWlJ,SAAU3C,KAAK+B,QAC7E,2BAAO5E,UAAU,eAAe2F,KAAK,WAAWD,YAAa7C,KAAKL,MAAMyL,MAAQ,0BAA4B,WAAYrI,IAAK/C,KAAKkC,QAClI,2BAAO/E,UAAU,kBAAkB2F,KAAK,SAASZ,MAAM,UAG9DlC,KAAKL,MAAMwL,UACR,6BACI,kBAAC,IAAD,CAAMjO,GAAG,IAAIkD,QAAS,kBAAM,EAAK2K,aAAa,CAAE9K,GAAI,EAAGL,KAAM,GAAIsC,MAAO,GAAIsE,MAAO,OAAnF,OACJ,kBAACsF,EAAA,EAAD,CAAO1H,KAAK,MACZ,+BACI,4BACI,wCACA,qCACA,qCACA,+BAGR,2BAAOnE,GAAG,QACLD,KAAKL,MAAM+G,KAAKuC,KAAI,SAAAyC,GACjB,OACI,wBAAIxC,IAAKwC,EAAE9L,MACP,4BAAK8L,EAAE9L,MACP,4BAAK8L,EAAExJ,OACP,4BAAKwJ,EAAElF,OACP,4BAAI,kBAAC,IAAD,CAAMtJ,GAAG,IAAIkD,QAAS,kBAAM,EAAK2K,aAAaW,KAA9C,QAAJ,IAAkE,kBAAC,IAAD,CAAMxO,GAAG,IAAIkD,QAAS,kBAAM,EAAKyK,WAAWa,EAAEzL,MAA9C,iBAOlF,kBAAC+D,EAAA,EAAD,CAAOC,OAAQjE,KAAKkL,UAAWhH,OAAQlE,KAAKL,MAAMsL,UAAW9G,kBAAgB,gCAAgC4H,UAAQ,EAAChM,MAAO,CAACpB,OAAQ,SAClI,kBAAC0F,EAAA,EAAD,CAAaJ,OAAQjE,KAAKkL,WAA1B,eACA,kBAAC5G,EAAA,EAAD,KACI,yBAAKvE,MAAO,CAAEnB,QAAS,OAAQC,cAAe,WAC1C,kBAACkF,EAAA,EAAD,iBACA,kBAACJ,EAAA,EAAD,CAAOb,KAAK,OAAOqH,SAAUnK,KAAK0K,cAAeN,aAAcpK,KAAKL,MAAM8K,YAAY7K,OACtF,kBAACmE,EAAA,EAAD,cACA,kBAACJ,EAAA,EAAD,CAAOb,KAAK,OAAOqH,SAAUnK,KAAK2K,WAAYP,aAAcpK,KAAKL,MAAM8K,YAAYvI,QACnF,kBAAC6B,EAAA,EAAD,cACA,kBAACJ,EAAA,EAAD,CAAOb,KAAK,OAAOqH,SAAUnK,KAAK4K,WAAYR,aAAcpK,KAAKL,MAAM8K,YAAYjE,UAG3F,kBAACjC,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAASJ,KAAKuK,WAAtC,OACA,kBAAC/F,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAASJ,KAAKkL,WAAxC,iBAxH5B,GAA+B7K,IAAMjD,W,gBCLxB4O,EAAb,kCAAaA,EACFrH,YAAc,SAAUC,GAE3B,OADAvB,QAAQwB,KAAKD,GACN,IAAIE,SAASnH,KAAKoH,UAAU,CAC/BjH,IAAI,EACJkH,KAAM,IACNC,QAAS,oBANR+G,EAUFC,K,uCAAO,WAAOC,EAAOC,EAAOC,GAArB,eAAA5M,EAAA,sEACYJ,MAAM,mBAAoB,CAC5C+F,OAAQ,OACRC,KAAMzH,KAAKoH,UAAU,CAAEmH,QAAOC,QAAOC,UACrC/G,QAAS,CACL,eAAgB,sBAErBC,MAAM0G,EAAYrH,aAPX,YACNY,EADM,QAQGzH,GARH,oBASFyH,EAASC,WATP,yCAUK/F,OAAOC,SAAW,KAVvB,gCAWC6F,EAAShG,QAXV,gCAaCkG,QAAQC,OAAOH,IAbhB,4C,0DAVLyG,EA0BF3F,I,sBAAM,4BAAA7G,EAAA,sEACaJ,MAAM,mBAAmBkG,MAAM0G,EAAYrH,aADxD,YACLY,EADK,QAEIzH,GAFJ,oBAGDyH,EAASC,WAHR,yCAIM/F,OAAOC,SAAW,KAJxB,gCAKE6F,EAAShG,QALX,gCAOEkG,QAAQC,OAAOH,IAPjB,4CCrBV,IAAM8G,GAAb,kDAGE,WAAYrO,GAAQ,IAAD,8BACjB,cAAMA,IAON0K,YARiB,sBAQH,4BAAAlJ,EAAA,sEACSwM,EAAY3F,MADrB,OACJ9G,EADI,OAEV,EAAKuE,SAAL,eAAmBvE,IAFT,2CARG,EAYjB0M,KAZiB,sBAYV,4BAAAzM,EAAA,sEACgBwM,EAAYC,KAAK,EAAKtM,MAAMuM,MAAO,EAAKvM,MAAMwM,MAAO,EAAKxM,MAAMyM,OADhF,QACG7M,EADH,QAEMzB,GACL2B,OAAOC,SAASoJ,SAGhB,EAAKhF,SAAS,CAAEmB,QAAS1F,EAAK0F,UAN/B,2CAVL,EAAKtF,MAAQ,CAAE2M,MAAO,GAAIJ,MAAO,GAAIC,MAAO,GAAIC,MAAO,GAAInH,QAAS,IAFrD,EAHrB,gEASQjF,KAAK0I,gBATb,+BAwBY,IAAD,OACL,OACI,kBAAC3K,EAAD,CAAMM,MAAI,GACR,6BACM,wCAEA,kBAAC2L,EAAA,EAAD,CAAKjK,MAAO,CAAEpB,OAAQ,SAClB,kBAACsL,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,CAAOmG,IAAI,SAAX,aACA,kBAACvG,EAAA,EAAD,CAAO1D,GAAG,QAAQmK,aAAcpK,KAAKL,MAAM2M,MAAO7H,UAAQ,KAE1D,kBAACwF,EAAA,EAAD,KACA,kBAAClG,EAAA,EAAD,CAAOmG,IAAI,SAAX,cACA,kBAACvG,EAAA,EAAD,CAAO1D,GAAG,QAAQiC,MAAOlC,KAAKL,MAAMuM,MAAOtI,SAAU,SAACoF,GAAD,OAAO,EAAKlF,SAAL,eAAiBkF,EAAEuD,cAActM,GAAK+I,EAAEuD,cAAcrK,YAElH,kBAAC+H,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,CAAOmG,IAAI,SAAX,eACJ,kBAACvG,EAAA,EAAD,CAAO1D,GAAG,QAAQiC,MAAOlC,KAAKL,MAAMwM,MAAOvI,SAAU,SAACoF,GAAD,OAAO,EAAKlF,SAAL,eAAiBkF,EAAEuD,cAActM,GAAK+I,EAAEuD,cAAcrK,YAElH,kBAAC+H,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,CAAOmG,IAAI,SAAX,aACJ,kBAACvG,EAAA,EAAD,CAAO1D,GAAG,QAAQiC,MAAOlC,KAAKL,MAAMyM,MAAOxI,SAAU,SAACoF,GAAD,OAAO,EAAKlF,SAAL,eAAiBkF,EAAEuD,cAActM,GAAK+I,EAAEuD,cAAcrK,aAK1H,4BAAQ/E,UAAU,kBAAkBiD,QAASJ,KAAKiM,MAAlD,QACA,yBAAKlM,MAAO,CAACuC,MAAO,SAAUtC,KAAKL,MAAMsF,eAnD3D,GAA8B7H,aAAjBiP,GACF5L,YAAc4L,GAASzM,KCJ3B,IAAM4M,GAAb,4MACIzM,MAAQ,CACJyB,SAAU,QACVJ,OAAQ,sBACRN,OAAQ,iBACRQ,QAAS,gBACT1C,QAAS,QANjB,EAQI6N,YAAc,CACV3L,OAAQ,eACRC,MAAO,OAVf,uDAYc,IAAD,OACDrD,EAAS,GACTsC,KAAKhC,MAAM0O,QAAQC,WACnBjP,EAAS,cAEb,IAAIkP,EAAoB,GACpB5M,KAAKhC,MAAM0O,QAAQG,aAAe7M,KAAKhC,MAAM0O,QAAQI,YACrDF,EAAoB,gCAExB,IAAIzP,EAAY,oBAKhB,OAJI6C,KAAKhC,MAAM+O,aACX5P,GAAa,aAIb,yBAAKA,UAAWA,EAAW4C,MAAOC,KAAKD,MAAOK,QAAS,kBAAM,EAAKpC,MAAMgP,SAAS,EAAKhP,MAAM0O,WACxF,yBAAK3M,MAAOC,KAAKyM,YAAatP,UAAWO,IACzC,6BAAMsC,KAAKhC,MAAM0O,QAAQ9M,MACzB,yBAAKG,MAAO,CAAEd,WAAY,SACtB,0BAAM9B,UAAWyP,GAAoB5M,KAAKhC,MAAM0O,QAAQG,cAD5D,MACmF,8BAAM,2BAAI7M,KAAKhC,MAAM0O,QAAQI,kBA/BhI,GAAuCzM,IAAMjD,WCAhC6P,GAAb,4MACIlN,MAAQ,CACJyB,SAAU,QACVJ,OAAQ,sBACRN,OAAQ,iBACRQ,QAAS,gBACT1C,QAAS,QANjB,EAQI6N,YAAc,CACV3L,OAAQ,eACRC,MAAO,OAVf,uDAac,IAAD,OACDrD,EAAS,GACTsC,KAAKhC,MAAM0O,QAAQC,WACnBjP,EAAS,cAEb,IAAIkP,EAAoB,GACpB5M,KAAKhC,MAAM0O,QAAQG,aAAe7M,KAAKhC,MAAM0O,QAAQI,YACrDF,EAAoB,gCAExB,IAAIzP,EAAY,mBAIhB,OAHI6C,KAAKhC,MAAM+O,aACX5P,GAAa,aAGb,yBAAKA,UAAWA,EAAW4C,MAAOC,KAAKD,MAAOK,QAAS,kBAAM,EAAKpC,MAAMgP,SAAS,EAAKhP,MAAM0O,WACxF,yBAAK3M,MAAOC,KAAKyM,YAAatP,UAAWO,IACzC,6BAAMsC,KAAKhC,MAAM0O,QAAQ9M,MACzB,yBAAKG,MAAO,CAAEd,WAAY,SACtB,0BAAM9B,UAAWyP,GAAoB5M,KAAKhC,MAAM0O,QAAQG,cAD5D,MACmF,8BAAM,2BAAI7M,KAAKhC,MAAM0O,QAAQI,kBA/BhI,GAAsCzM,IAAMjD,WCC/B8P,GAAb,kDACI,WAAYlP,GAAQ,IAAD,8BACf,cAAMA,IAQVmP,cAAgB,SAACC,GAKb,OAHYC,MADE,GACWC,OAAOrE,KAAI,SAACsE,EAAGC,GACpC,MAAO,CAACC,QAASL,EAAQI,OAZd,EAgBnBE,YAAc,SAACC,EAAOC,GAClB,OAAO,IAAIC,KAAKD,EAAMD,EAAO,GAAGG,WAjBjB,EAmCnBC,KAAO,WACH,GAAK,EAAK7L,MAAMD,QAAQC,MAAxB,CAEA,IAAIqF,EAAQ,IAAIsG,KAAK,EAAKlO,MAAMqO,YAChCzG,EAAM0G,QAAQ,EAAKtO,MAAMuO,aACzB,EAAKlQ,MAAM+P,KAAKxG,EAAO4G,WAAW,EAAKjM,MAAMD,QAAQC,OAAQ,EAAKsF,KAAKvF,QAAQC,SAxChE,EA0CnBkM,SAAW,WACP,EAAKpQ,MAAMoQ,YA3CI,EA6CnBC,SAAW,WACP,GAA8B,IAA1B,EAAK1O,MAAM2O,WAAf,CAEA,IAAIC,EAAY,EAAK5O,MAAM2O,WAAa,EACpCC,EAAY,IACZA,EAAY,GAChB,EAAKzK,SAAS,CAAEwK,WAAYC,EAAWC,MAAO,EAAKrB,cAAcoB,OAnDlD,EAqDnBE,KAAO,WACH,GAAI,EAAK9O,MAAM2O,WAAa,IAAM,EAAK3O,MAAM+O,UAA7C,CAGA,IAAIH,EAAY,EAAK5O,MAAM2O,WAAa,EACpCC,EAAY,EAAI,EAAK5O,MAAM+O,YAC3BH,EAAY,EAAK5O,MAAM+O,UAAY,GACvC,EAAK5K,SAAS,CAAEwK,WAAYC,EAAWC,MAAO,EAAKrB,cAAcoB,OAzDjE,EAAK5O,MAAQ,CAAEuE,OAAQ,EAAKlG,MAAMkG,OAAQgK,YAAa,EAAGS,WAAY,EAAGL,WAAY,GACrF,EAAKpM,MAAQ7B,IAAMgC,YACnB,EAAKmF,KAAOnH,IAAMgC,YAElB,EAAK1C,MAAM6O,MAAQ,EAAKrB,cAAc,GAPvB,EADvB,sEAoB8BnP,GACtB,IAAIsN,EAAK,IAAIuC,KAAKA,KAAKjQ,MAAMI,EAAM4Q,YAAYC,OAAO,EAAG,MACrDC,EAAO,IAAIjB,KACXkB,EAAK/O,KAAK0N,YAAYpC,EAAG0D,WAAa,EAAG1D,EAAG2D,eAC5CC,EAAUJ,EAAKhB,UACfqB,EAAoC,EAAzBC,KAAKC,KAAKH,EAAU,GAAS,EAC5B,IAAZA,IACAC,EAAW,GACXA,EAAW,EAAIJ,IACfI,EAAWJ,EAAK,GACpB/O,KAAK8D,SAAS,CACVI,OAAQlG,EAAMkG,OAAQsK,MAAOxO,KAAKmN,cAAcgC,GAChDR,WAAYO,EAAShB,YAAagB,EAASZ,WAAYa,EAAUT,UAAWK,EAC5Ef,WAAY1C,MAjCxB,+BA+Dc,IAAD,OACL,OACI,kBAACtH,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKmK,YACtBlK,OAAQlE,KAAKL,MAAMuE,OACnBC,kBAAgB,gCAAgCC,KAAK,MACrD,kBAACC,EAAA,EAAD,qBACA,kBAACC,EAAA,EAAD,KACI,kBAAC2F,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,qBACA,yBAAKhE,MAAO,CAAEnB,QAAS,OAAQsB,IAAK,MAAOa,MAAO,SAC9C,kBAACyD,EAAA,EAAD,CAAQpE,QAASJ,KAAKqO,UAAtB,KACCrO,KAAKL,MAAM6O,MAAMvF,KAAI,SAACqG,GACnB,OACI,kBAAC9K,EAAA,EAAD,CAAQ0E,IAAKoG,EAAK7B,QAAS1N,MAAO,CAAEwP,KAAM,KACtCnP,QAAS,kBAAM,EAAK0D,SAAS,CAAEoK,YAAaoB,EAAK7B,WACjDnL,MAAO,EAAK3C,MAAMuO,cAAgBoB,EAAK7B,QAAU,UAAa,EAAK9N,MAAMgP,aAAeW,EAAK7B,QAAU,YAAc,GACrHhM,QAAS,EAAK9B,MAAMuO,cAAgBoB,EAAK7B,QAAwBrJ,KAAK,MACrEkL,EAAK7B,YAIlB,kBAACjJ,EAAA,EAAD,CAAQpE,QAASJ,KAAKyO,MAAtB,OAGR,kBAACxE,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,cACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKkC,MAAOsN,WAAS,KAE1C,kBAACvF,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,aACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKwH,SAG9B,kBAACjD,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAAS,kBAAM,EAAK2N,SAA5C,MACA,kBAACvJ,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAKgO,aAA9C,eAlGpB,GAA8C/N,IAAMjD,WCAvCqS,GAAb,4MACI1P,MAAQ,CACJyB,SAAU,QACVJ,OAAQ,sBACRsO,UAAW,IACXC,WAAY,IACZC,YAAa,IACbtO,QAAS,UACT1C,QAAS,OACTiR,SAAU,QACV3P,IAAK,QAVb,EAYIuM,YAAc,CACV3L,OAAQ,eACRC,MAAO,OAdf,uDAiBc,IAAD,OACD+O,EAAI,IAAIjC,KAAMA,KAAKjQ,MAAMoC,KAAKhC,MAAM0O,QAAQnF,QAChD,OACI,yBAAKpK,UAAU,uBAAuB4C,MAAOC,KAAKD,OAE9C,yBAAKA,MAAO,CAAEnB,QAAS,OAAQmR,WAAY,wCAAyCC,eAAgB,YAAajP,MAAO,SACpH,yBAAKhB,MAAO,CAAEe,OAAQ,OAAQU,SAAU,OAAQyO,UAAW,MAAO3N,MAAO,UAAWC,WAAY,OAAQ2N,QAAS,QAAUJ,EAAEhC,YAEjI,yBAAK/N,MAAO,CAAEnB,QAAS,SACnB,yBAAKmB,MAAO,CAAEoQ,YAAa,SAAU,2BAAInQ,KAAKhC,MAAM0O,QAAQxK,OAA5D,IAAuE,+BAAQlC,KAAKhC,MAAM0O,QAAQlF,QAGtG,yBAAKzH,MAAO,CAAEd,WAAY,SAAU,kBAAC,IAAD,CAAM/B,GAAG,IAAIkD,QAAS,kBAAM,EAAKpC,MAAMoS,aAAvC,WA7BpD,GAA0C/P,IAAMjD,W,SCDnCiT,GAAb,uKAGQ,IAAIC,EAAG,aAAOtQ,KAAKhC,MAAM0I,MAGzB,OACI,yBAAKvJ,UAAU,gBAAgB4C,MAFvB,CAAEnB,QAAS,OAAQD,OAAQ,QAASuB,IAAK,QAG5CoQ,EAAIrH,KAAI,SAACzJ,EAAG+Q,GACT,OAAO,yBAAKrH,IAAKqH,EAAOxQ,MAAO,CAAEwP,KAAM,IAAKU,UAAW,OAAQlP,MAAO,MAAOG,gBAAiB,UAAWvC,QAAe,IAANa,EAAU,EAAIA,GAAK,gBATzJ,GAAmCa,IAAMjD,WCC5BoT,GAAb,kDACI,WAAYxS,GAAQ,IAAD,8BACf,cAAMA,IAiBV+P,KAAO,WACH,EAAK/P,MAAM+P,QAnBI,EAqBnBK,SAAW,WACP,EAAKpQ,MAAMoQ,YAnBX,EAAKzO,MAAQ,CACT8Q,MAAOzS,EAAMyS,MACbxL,QAASjH,EAAMiH,QACfnC,KAAM9E,EAAM8E,KACZoB,QAAQ,GAPG,EADvB,sEAW8BlG,GACtBgC,KAAK8D,SAAS,CACVI,OAAQlG,EAAMkG,OACduM,MAAOzS,EAAMyS,MACbxL,QAASjH,EAAMiH,QACfnC,KAAM9E,EAAM8E,SAhBxB,+BA0Bc,IAAD,OACL,OACI,kBAACkB,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKmK,YACtBlK,OAAQlE,KAAKL,MAAMuE,OACnBC,kBAAgB,gCAAgCC,KAAK,MACrD,kBAACC,EAAA,EAAD,KAAcrE,KAAKL,MAAM8Q,OACzB,kBAACnM,EAAA,EAAD,KACI,kBAAC2F,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,KAAQ/D,KAAKL,MAAMsF,WAG3B,kBAACV,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAAS,kBAAM,EAAK2N,SAA5C,MACA,kBAACvJ,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAKgO,aAA9C,eAvCpB,GAAkC/N,IAAMjD,WCK3BsT,GAAb,kDACI,WAAY1S,GAAQ,IAAD,8BACf,cAAMA,IAoBV2S,QAAS,WACL,EAAK7M,SAAS,CAAE8M,WAAW,KAtBZ,EAwBnBC,WAAa,WACT,EAAK/M,SAAS,CAAEgN,cAAc,KAzBf,EA2BnB/Q,MAAQ,CACJyB,SAAU,QACVF,QAAS,gBACT1C,QAAS,OACTC,cAAe,SACfgR,SAAU,QAhCK,EAkCnBpD,YAAc,CACV3L,OAAQ,eACRC,MAAO,OApCQ,EAsCnBuG,YAtCmB,uCAsCL,WAAOC,EAAOzH,EAAK0H,GAAnB,SAAAhI,EAAA,sEACMoG,EAAUe,QAAQW,YAAY,EAAKtJ,MAAMiC,GAAIsH,EAAOzH,EAAK0H,GAD/D,cAEF1J,KACJ,EAAKgG,SAAS,CAAEiN,WAAW,EAAMH,WAAW,EAAOE,cAAc,EAAOE,gBAAY5S,IACpF,EAAKJ,MAAMiT,eAAe,gBAJpB,2CAtCK,4DA8CnBpJ,WA9CmB,sBA8CN,sBAAArI,EAAA,sEACOoG,EAAUe,QAAQkB,WAAW,EAAKlI,MAAM+M,QAAQzM,IADvD,cAEDnC,KACJ,EAAKgG,SAAS,CAAEiN,WAAW,EAAMH,WAAW,EAAOE,cAAc,EAAOE,gBAAY5S,IACpF,EAAKJ,MAAMiT,eAAe,WAJrB,2CA9CM,EAqDnBnJ,eArDmB,sBAqDF,sBAAAtI,EAAA,sEACGoG,EAAUe,QAAQmB,eAAe,EAAKnI,MAAMqR,WAAW/Q,IAD1D,cAELnC,KACJ,EAAKgG,SAAS,CAAEiN,WAAW,EAAMH,WAAW,EAAOE,cAAc,EAAOE,gBAAY5S,IACpF,EAAKJ,MAAMiT,eAAe,eAJjB,2CArDE,EA4DnBC,QA5DmB,uCA4DT,WAAOjR,GAAP,eAAAT,EAAA,6DACN,EAAKsE,SAAS,CAAEiN,WAAW,EAAMH,WAAW,EAAOE,cAAc,EAAOE,gBAAY5S,IAD9E,SAEWwH,EAAUe,QAAQC,KAAK3G,GAFlC,QAEFV,EAFE,QAGGzB,IACL,EAAKgG,SAAS,CAAE4I,QAASnN,EAAKmN,QAASqE,WAAW,IAJhD,2CA5DS,sDAEf,EAAKpR,MAAQ,CACToR,WAAW,EAAMrE,QAAS,GAAIyE,cAAc,EAAOC,cAAc,EAAOC,eAAe,EAAOC,mBAAmB,EACjHV,WAAW,EACXE,cAAc,EACdE,gBAAY5S,GAND,EADvB,iEAYQ4B,KAAKkR,QAAQlR,KAAKhC,MAAMiC,IACxBD,KAAKhC,MAAMuT,SAASvR,KAAK2Q,SACzB3Q,KAAKhC,MAAMwT,gBAAgBxR,KAAK6Q,cAdxC,gDAgB8B7S,GACtBgC,KAAK8D,SAAS,CAAEqN,cAAc,EAAOC,cAAc,EAAOC,eAAe,KACrErT,GAAUA,EAAMiC,KAAOD,KAAKL,MAAM+M,QAAQzM,KAA+B,IAAzBD,KAAKL,MAAMoR,WAC3D/Q,KAAKkR,QAAQlT,EAAMiC,MAnB/B,+BAqEc,IAAD,WAC0FD,KAAKL,MAAM+M,QAAlG9M,EADH,EACGA,KAAM6R,EADT,EACSA,UAAW3E,EADpB,EACoBA,UAAWH,EAD/B,EAC+BA,SAAUE,EADzC,EACyCA,aAAc2B,EADvD,EACuDA,MAAOkD,EAD9D,EAC8DA,YAAaC,EAD3E,EAC2EA,WAC5EC,EAAiB,GACrB,QAA8BxT,IAA1B4B,KAAKL,MAAMqR,WAA0B,CACrC,IAAIlB,EAAI,IAAIjC,KAAKA,KAAKjQ,MAAMoC,KAAKL,MAAMqR,WAAWzJ,QAClDqK,EAAiB5R,KAAKL,MAAMqR,WAAW9O,MAAO,QAAS4N,EAAEhC,UAAY,IAAMgC,EAAE+B,eAAe,UAAW,CAAElE,MAAO,SAEpH,IAAIf,EAAoB,GAIxB,OAHIC,EAAeC,IACfF,EAAoB,gCAGpB,yBAAKzP,UAAU,wBACV6C,KAAKL,MAAMoR,WAAa,gDACvB/Q,KAAKL,MAAMoR,WAAa,yBAAKhR,MAAO,CAAEnB,QAAS,OAAQkT,oBAAqB,aAC1E,yBAAK/R,MAAOC,KAAKD,OACb,yBAAK5C,UAAU,2BAA2B4C,MAAO,CAAEyB,SAAU,UAAW,wCAAxE,IAA8FiQ,EAA9F,MAA2G,2BAAI7R,IAC/G,yBAAKzC,UAAU,2BAA2B4C,MAAO,CAAEyB,SAAU,UAAW,gDAAxE,IAAqG,0BAAMrE,UAAWyP,GAAoBC,GAA1I,MAAiK,2BAAIC,IACrK,yBAAK3P,UAAU,2BAA2B4C,MAAO,CAAEyB,SAAU,UAAW,0CAAxE,IAA+F,2BAAImL,EAAW,0BAAMxP,UAAU,gBAAhB,UAA+C,wCAC7J,yBAAKA,UAAU,2BAA2B4C,MAAO,CAAEyB,SAAU,UAAW,6CAAxE,IAAkG,2BAAIkQ,EAAc,0BAAMvU,UAAU,gBAAhB,OAA4C,sCAChK,kBAAC8M,EAAA,EAAD,KACI,kBAAC,GAAD,CAAevD,KAAMiL,KAGzB,kBAAC1H,EAAA,EAAD,KACI,kBAACzF,EAAA,EAAD,CAAQlC,MAAM,UAAU8B,KAAK,KAAKhE,QAAS,kBAAM,EAAKuQ,YAAtD,gBACA,kBAAC,GAAD,CAA0BzM,OAAQlE,KAAKL,MAAMiR,UACzChC,YAAa5O,KAAKL,MAAM+M,QAAQkC,YAChCb,KAAM,SAACxG,EAAOzH,EAAK0H,GAAb,OAAsB,EAAKF,YAAYC,EAAOzH,EAAK0H,IACzD4G,SAAU,kBAAM,EAAKtK,SAAS,CAAE8M,WAAW,OAE/C,kBAAC,GAAD,CAAc1H,IAAI,QAAQhF,OAAQlE,KAAKL,MAAMmR,aACzCL,MAAO,cACPxL,QAAS,WAAajF,KAAKL,MAAM+M,QAAQ9M,KAAO,aAAvC,UAAsD4O,EAAMuD,cAA5D,QAAsE,KAAO,UACtFhE,KAAM,kBAAM,EAAKlG,cACjBuG,SAAU,kBAAM,EAAKtK,SAAS,CAAEgN,cAAc,OAElD,kBAAC,GAAD,CAAc5H,IAAI,SAAShF,YAAkC9F,IAA1B4B,KAAKL,MAAMqR,WAC1CP,MAAO,mBACPxL,QAAS,gBAAkB2M,EAAiB,IAC5C7D,KAAM,kBAAM,EAAKjG,kBACjBsG,SAAU,kBAAM,EAAKtK,SAAS,CAAEkN,gBAAY5S,SAIxD,6BACKoQ,EAAMvF,KAAI,SAAA+I,GAEP,OAAO,kBAAC,GAAD,CAAsB9I,IAAK8I,EAAE/R,GAAIyM,QAASsF,EAAG5B,SAAU,kBAAM,EAAKtM,SAAS,CAAEkN,WAAYgB,iBArH5H,GAA0C3R,IAAMjD,W,iDCLnC6U,GAAb,kDACI,WAAYjU,GAAQ,IAAD,8BACf,cAAMA,IAiBV+P,KAAO,gBAC4B3P,IAA3B,EAAKuB,MAAMuS,SAASjS,IAChB,EAAKL,KAAKqC,QAAQC,OAClB,EAAKA,MAAMD,QAAQC,OAE3B,EAAKlE,MAAM+P,KAAK,EAAKpO,MAAMuS,SAASjS,GAAI,EAAKL,KAAKqC,QAAQC,MAAOiM,WAAW,EAAKjM,MAAMD,QAAQC,SAvBhF,EAyBnBkM,SAAW,WACP,EAAKpQ,MAAMoQ,YA1BI,EA4BnB+D,OAAS,SAACC,GACN,EAAKtO,SAAS,CAAEoO,SAAUE,KA1B1B,EAAKzS,MAAQ,CACTuE,OAAQ,EAAKlG,MAAMkG,OAAQgO,SAAU,CAAEtS,KAAM,GAAIK,GAAI,MAAQoS,cAAc,EAAO7D,MAAO,IAC7F,EAAK5O,KAAOS,IAAMgC,YAClB,EAAKH,MAAQ7B,IAAMgC,YANJ,EADvB,sEAS8BrE,GAAQ,IAAD,EACzBsU,EAAOtU,EAAMuU,mBACDnU,IAAZkU,EAAKrS,KACLqS,EAAOtU,EAAMwQ,MAAM,IACvBxO,KAAK8D,SAAS,CACVI,OAAQlG,EAAMkG,OACdsK,MAAOxQ,EAAMwQ,MACb0D,SAAQ,UAAEI,SAAF,QAAU,OAhB9B,+BAiCc,IAAD,OACL,OACI,kBAACtO,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKmK,YACtBlK,OAAQlE,KAAKL,MAAMuE,OACnBC,kBAAgB,gCAAgCC,KAAK,MACrD,kBAACC,EAAA,EAAD,iBACA,kBAACC,EAAA,EAAD,KACI,kBAAC2F,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,cACA,kBAACyO,GAAA,EAAD,CAAgBC,UAAU,OAAO1S,MAAO,CAAEgB,MAAO,QAAUmD,OAAQlE,KAAKL,MAAM0S,aAAcpO,OAAQ,kBAAM,EAAKH,SAAS,CAAEuO,cAAe,EAAK1S,MAAM0S,iBAChJ,kBAAC1O,EAAA,EAAD,CAAO1D,GAAG,QAAQqC,MAAM,UAAUoQ,UAAQ,EAACxQ,MAAOlC,KAAKL,MAAMuS,SAAStS,OACtE,kBAAC+S,GAAA,EAAD,CAAgBC,OAAK,EAACtQ,MAAM,YAC5B,kBAACuQ,GAAA,EAAD,KACK7S,KAAKL,MAAM6O,MAAMvF,KAAI,SAAAzJ,GAClB,OAAO,kBAACsT,GAAA,EAAD,CAAc5J,IAAK1J,EAAES,GAAIG,QAAS,kBAAM,EAAK+R,OAAO3S,KAAKA,EAAEI,YAMlF,kBAACqK,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,aACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKJ,QAE1B,kBAACqK,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,aACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKkC,MAAOsN,WAAS,MAG9C,kBAACjL,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAAS,kBAAM,EAAK2N,SAA5C,MACA,kBAACvJ,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAKgO,aAA9C,eAhEpB,GAA0C/N,IAAMjD,WCAnC2V,GAAb,kDACI,WAAY/U,GAAQ,IAAD,8BACf,cAAMA,IAYV+P,KAAO,WACC,EAAKnO,KAAKqC,QAAQC,MAAM6P,OAAS,GACjC,EAAK/T,MAAM+P,KAAK,EAAKnO,KAAKqC,QAAQC,QAfvB,EAiBnBkM,SAAW,WACP,EAAKpQ,MAAMoQ,YAfX,EAAKzO,MAAQ,CACTuE,OAAQ,EAAKlG,MAAMkG,QACvB,EAAKtE,KAAOS,IAAMgC,YALH,EADvB,sEAQ8BrE,GACtBgC,KAAK8D,SAAS,CACVI,OAAQlG,EAAMkG,OACdhC,MAAOlE,EAAMkE,UAXzB,+BAqBc,IAAD,OACL,OACI,kBAAC8B,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKmK,YACtBlK,OAAQlE,KAAKL,MAAMuE,OACnBC,kBAAgB,gCAAgCC,KAAK,MACrD,kBAACC,EAAA,EAAD,kBACA,kBAACC,EAAA,EAAD,KACI,kBAAC2F,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,aACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKJ,KAAMwK,aAAcpK,KAAKL,MAAMuC,UAG7D,kBAACqC,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAAS,kBAAM,EAAK2N,SAA5C,MACA,kBAACvJ,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAKgO,aAA9C,eAnCpB,GAA2C/N,IAAMjD,WCApC4V,GAAb,kDACI,WAAYhV,GAAQ,IAAD,8BACf,cAAMA,IAcV+P,KAAO,WACH,EAAK/P,MAAM+P,KAAK,EAAKnO,KAAKqC,QAAQC,MAAOiM,WAAW,EAAKjM,MAAMD,QAAQC,OAAQ,EAAK0F,SAAS3F,QAAQgR,UAhBtF,EAkBnB7E,SAAW,WACP,EAAKpQ,MAAMoQ,YAhBX,EAAKzO,MAAQ,CACTuE,OAAQ,EAAKlG,MAAMkG,OAAQwI,QAAS,IACxC,EAAK9M,KAAOS,IAAMgC,YAClB,EAAKH,MAAQ7B,IAAMgC,YACnB,EAAKuF,SAAWvH,IAAMgC,YAPP,EADvB,sEAU8BrE,GACtBgC,KAAK8D,SAAS,CACVI,OAAQlG,EAAMkG,OACdwI,QAAS1O,EAAM0O,YAb3B,+BAuBc,IAAD,OACL,OACI,kBAAC1I,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKmK,YACtBlK,OAAQlE,KAAKL,MAAMuE,OACnBC,kBAAgB,gCAAgCC,KAAK,MACrD,kBAACC,EAAA,EAAD,kBACA,kBAACC,EAAA,EAAD,KACI,kBAAC2F,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,cACA,kBAACJ,EAAA,EAAD,CAAO1D,GAAG,QAAQqC,MAAM,UAAUoQ,UAAQ,EAACxQ,MAAOlC,KAAKL,MAAM+M,QAAQ+E,aAEzE,kBAACxH,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,aACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKJ,KAAMwK,aAAcpK,KAAKL,MAAM+M,QAAQ9M,QAEjE,kBAACqK,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,aACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKkC,MAAOsN,WAAS,EAACpF,aAAcpK,KAAKL,MAAM+M,QAAQI,aAE5E,kBAAC7C,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,eACA,kBAACL,EAAA,EAAD,CAAY3D,MAAO,CAAEd,WAAY,UAC7B,kBAAC8E,EAAA,EAAD,eACA,kBAACJ,EAAA,EAAD,CAAOb,KAAK,WAAWqH,SAAUnK,KAAK4H,SAAUsL,eAAgBlT,KAAKL,MAAM+M,QAAQC,cAI/F,kBAACpI,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAAS,kBAAM,EAAK2N,SAA5C,MACA,kBAACvJ,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAKgO,aAA9C,eApDpB,GAA2C/N,IAAMjD,W,UCCpC+V,GAAb,kDACI,WAAYnV,GAAQ,IAAD,8BACf,cAAMA,IAUVoQ,SAAW,WACP,EAAKpQ,MAAMoQ,YAZI,EAcnBpB,SAAW,SAAChF,GACR,EAAKhK,MAAMgP,SAAShF,IAZpB,EAAKrI,MAAQ,CACTuE,OAAQ,EAAKlG,MAAMkG,OACnBkP,MAAO,IALI,EADvB,sEAS8BpV,GAAQ,IAAD,EAC7BgC,KAAK8D,SAAS,CAAEI,OAAQlG,EAAMkG,OAAQkP,MAAK,UAAEpV,EAAMoV,aAAR,QAAiB,OAVpE,+BAmBc,IAKFC,EAGA5E,EAGA6E,EAXC,OACDC,EAAa,IAAI1F,KACjB7N,KAAKL,MAAMyT,MAAMnT,KACjBsT,EAAa,IAAI1F,KAAKA,KAAKjQ,MAAMoC,KAAKL,MAAMyT,MAAM7L,SACtDlE,QAAQC,IAAIiQ,GAERvT,KAAKL,MAAMyT,OAASpT,KAAKL,MAAMyT,MAAM/E,WACrCgF,EAAO,IAAIxF,KAAKA,KAAKjQ,MAAMoC,KAAKL,MAAMyT,MAAM/E,SAAS9G,SAErDvH,KAAKL,MAAMyT,OAASpT,KAAKL,MAAMyT,MAAM3E,OACrCA,EAAO,IAAIZ,KAAKA,KAAKjQ,MAAMoC,KAAKL,MAAMyT,MAAM3E,KAAKlH,SAEjDvH,KAAKL,MAAMyT,OAASpT,KAAKL,MAAMyT,MAAME,SACrCA,EAAS,IAAIzF,KAAKA,KAAKjQ,MAAMoC,KAAKL,MAAMyT,MAAME,OAAO/L,UACpDvH,KAAKL,MAAMyT,OAASpT,KAAKL,MAAMyT,MAAM/E,UAAYrO,KAAKL,MAAMyT,OAASpT,KAAKL,MAAMyT,MAAM/E,SAASmF,UAC5FxT,KAAKL,MAAMyT,OAASpT,KAAKL,MAAMyT,MAAM3E,MAAQzO,KAAKL,MAAMyT,MAAM3E,KAAK+E,UACnExT,KAAKL,MAAMyT,MAAMnT,IAAMD,KAAKL,MAAMyT,MAAMI,YAC5CF,OAASlV,GAEb,IAAIqV,EAAe,UACfzT,KAAKL,MAAMyT,MAAMnT,IAAMD,KAAKL,MAAMyT,MAAMI,WACxCC,EAAe,WACnB,IAAIC,EAAY,UACZL,GAAQrT,KAAKL,MAAMyT,MAAM/E,SAASmF,WAClCC,EAAe,UACfC,EAAY,WAEhB,IAAIC,EAAY,UAKhB,OAJIlF,GAAQzO,KAAKL,MAAMyT,MAAM3E,KAAK+E,WAC9BG,EAAY,UACZF,EAAe,WAGf,kBAACzP,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKmK,YACtBlK,OAAQlE,KAAKL,MAAMuE,OACnBC,kBAAgB,gCAAgCC,KAAK,MACrD,kBAACC,EAAA,EAAD,qBACA,kBAACC,EAAA,EAAD,KACI,kBAACsP,GAAA,EAAD,KACK5T,KAAKL,MAAMyT,MAAM/E,UACd,kBAAC7J,EAAA,EAAD,CAAQlC,MAAOoR,EACftT,QAAS,kBAAM,EAAK4M,SAAS,EAAKrN,MAAMyT,MAAM/E,SAASpO,MAClDoT,EAAKQ,mBAAmB,QAAS,CAAElG,MAAO,SAF/C,IAE2D0F,EAAKpE,oBAG3C7Q,IAAxB4B,KAAKL,MAAMyT,MAAMnT,IACd,kBAACuE,EAAA,EAAD,CAAQlC,MAAOmR,EAAcrT,QAAS,kBAAM,EAAK4M,SAAS,EAAKrN,MAAMyT,MAAMnT,MACtEsT,EAAWM,mBAAmB,QAAS,CAAElG,MAAO,SADrD,IACiE4F,EAAWtE,eAG/EjP,KAAKL,MAAMyT,MAAM3E,MAAqC,IAA7BzO,KAAKL,MAAMyT,MAAM3E,KAAKxO,IAC5C,kBAACuE,EAAA,EAAD,CAAQ/C,SAAO,EAACa,MAAM,UAAUvC,MAAO,CAAEd,WAAY,QAAUmB,QAAS,kBAAM,EAAK4M,SAAS,EAAKrN,MAAMyT,MAAM3E,KAAKxO,MAC7GwO,EAAKoF,mBAAmB,QAAS,CAAElG,MAAO,SAD/C,IAC2Dc,EAAKQ,eAGnEjP,KAAKL,MAAMyT,MAAM3E,MAASzO,KAAKL,MAAMyT,MAAM3E,KAAKxO,GAAK,GAClD,kBAACuE,EAAA,EAAD,CAAQlC,MAAOqR,EAAWvT,QAAS,kBAAM,EAAK4M,SAAS,EAAKrN,MAAMyT,MAAM3E,KAAKxO,MACxEwO,EAAKoF,mBAAmB,QAAS,CAAElG,MAAO,SAD/C,IAC2Dc,EAAKQ,gBAIvEqE,GAAU,kBAAC,IAAD,CAAMpW,GAAG,IAAIkD,QAAS,kBAAM,EAAK4M,SAAS,EAAKrN,MAAMyT,MAAME,OAAOrT,MAAlE,gBAAqFqT,EAAOO,mBAAmB,QAAS,CAAElG,MAAO,SAAjI,IAA6I2F,EAAOrE,gBAEnK,kBAAC1K,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAKgO,aAA9C,eAnFpB,GAAgD/N,IAAMjD,WCDzC0W,GAAb,kDACI,WAAY9V,GAAQ,IAAD,8BACf,cAAMA,IAYVoQ,SAAW,WACP,EAAKpQ,MAAMoQ,YAdI,EAgBnBL,KAAO,WACH,EAAK/P,MAAM+P,KAAKI,WAAW,EAAK4F,UAAU9R,QAAQC,OAAQiM,WAAW,EAAK6F,UAAU/R,QAAQC,SAd5F,EAAKvC,MAAQ,CACTuE,OAAQ,EAAKlG,MAAMkG,OACnBkP,MAAO,IAEX,EAAKW,UAAY1T,IAAMgC,YACvB,EAAK2R,UAAY3T,IAAMgC,YARR,EADvB,sEAW8BrE,GAAQ,IAAD,EAC7BgC,KAAK8D,SAAS,CAAEI,OAAQlG,EAAMkG,OAAQkP,MAAK,UAAEpV,EAAMoV,aAAR,QAAiB,OAZpE,+BAqBc,IAAD,OACDG,EAAa,IAAI1F,KAIrB,OAHI7N,KAAKL,MAAMyT,MAAMnT,KACjBsT,EAAa,IAAI1F,KAAKA,KAAKjQ,MAAMoC,KAAKL,MAAMyT,MAAM7L,SACtDlE,QAAQC,IAAIiQ,GAER,kBAACvP,EAAA,EAAD,CAAOC,OAAQ,kBAAM,EAAKmK,YACtBlK,OAAQlE,KAAKL,MAAMuE,OACnBC,kBAAgB,gCAAgCC,KAAK,MACrD,kBAACC,EAAA,EAAD,mBAAyBkP,EAAWM,mBAAmB,QAAS,CAAElG,MAAO,SAAzE,KAAsF4F,EAAWtE,eACjG,kBAAC3K,EAAA,EAAD,KACI,kBAAC2F,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,cACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAK+T,UAAW3J,aAAcpK,KAAKL,MAAMyT,MAAMW,UAAWvE,WAAS,KAExF,kBAACvF,EAAA,EAAD,KACI,kBAAClG,EAAA,EAAD,iBACA,kBAACJ,EAAA,EAAD,CAAOwG,SAAUnK,KAAKgU,UAAW5J,aAAcpK,KAAKL,MAAMyT,MAAMY,cAGxE,kBAACzP,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAQlC,MAAM,UAAUlC,QAAS,kBAAM,EAAK2N,SAA5C,MACA,kBAACvJ,EAAA,EAAD,CAAQlC,MAAM,YAAYlC,QAAS,kBAAM,EAAKgO,aAA9C,eA3CpB,GAA4C/N,IAAMjD,WCUrC6W,GAAb,kDAcI,WAAYjW,GAAQ,IAAD,8BACf,cAAMA,IAdVkW,iBAAmB,CACf1S,SAAU,QACVV,OAAQ,QAWO,EATnBqT,kBAAoB,CAChB/S,OAAQ,iBACRF,gBAAiB,OACjBoB,MAAO,QACPC,WAAY,OACZpB,aAAc,aACdG,QAAS,cACT1C,QAAS,QAEM,EA8BnBwV,YA9BmB,uCA8BL,WAAOC,GAAP,SAAA7U,EAAA,sDACN,EAAKG,MAAM4S,cAActS,KAAOoU,EAAIpU,KACpCoU,EAAM,IACV,EAAKvQ,SAAS,CAAEyO,cAAe8B,EAAKC,aAAc,KAHxC,2CA9BK,wDAmCnBC,WAnCmB,uCAmCN,WAAOF,GAAP,SAAA7U,EAAA,sDACT6D,QAAQC,IAAI,aAAc+Q,GAC1B,EAAKvQ,SAAS,CAAEwQ,aAAcD,IAFrB,2CAnCM,wDAuCnBG,aAvCmB,uCAuCJ,WAAOvU,GAAP,eAAAT,EAAA,sDACX6D,QAAQC,IAAI,eAAgBrD,GACxBoU,EAAM,EAAK1U,MAAM8U,MAAMhJ,MAAK,SAAAC,GAAC,OAAIA,EAAEzL,KAAOA,KAC9C,EAAKsU,WAAWF,GAHL,2CAvCI,wDA4CnBK,QA5CmB,uCA4CT,WAAOhN,EAAS9H,EAAM+H,GAAtB,eAAAnI,EAAA,sEACUoG,EAAUe,QAAQc,UAAU,EAAGC,EAAS9H,EAAM+H,GAAM,GAD9D,YACFgN,EADE,QAEE7W,GAFF,uBAGF,EAAKgG,SAAS,CAAE8Q,eAAe,IAH7B,SAII,EAAKvJ,SAAS,EAAK1L,MAAMyT,MAAMnT,IAJnC,OAKF,EAAKuU,aAAaG,EAAI1U,IALpB,2CA5CS,4DAoDnB4U,SApDmB,uCAoDR,WAAOjV,EAAM+H,EAAMC,GAAnB,eAAApI,EAAA,8DAEMpB,KADTwI,EAAO,EAAKjH,MAAM2U,cADf,iEAKS1O,EAAUe,QAAQc,UAAUb,EAAK3G,GAAI2G,EAAKkO,QAASlV,EAAM+H,EAAMC,GALxE,cAMC9J,KACJ,EAAKgG,SAAS,CAAEiR,gBAAgB,IAChC,EAAK1J,SAAS,EAAK1L,MAAMyT,MAAMnT,IAC/B,EAAKsU,WAAW3N,IATb,2CApDQ,4DAgEnBoO,wBAhEmB,uCAgEO,WAAO/U,GAAP,mBAAAT,EAAA,sEACLoG,EAAUe,QAAQC,KAAK3G,GADlB,QAClBV,EADkB,QAEbzB,KACD2W,EAAQ,EAAK9U,MAAM8U,MACnB/I,EAAI+I,EAAMhJ,MAAK,SAAAC,GAAC,OAAIA,EAAEzL,KAAOA,KACjCoD,QAAQC,IAAI,0BAA2BoI,EAAGnM,EAAKmN,SAC/ChB,EAAEmB,aAAetN,EAAKmN,QAAQG,aAC9B,EAAK/I,SAAS,CAAE2Q,MAAOA,KAPL,2CAhEP,wDA0EnB1M,WA1EmB,uCA0EN,WAAOnI,GAAP,SAAAJ,EAAA,sEACOoG,EAAUe,QAAQoB,WAAW,EAAKpI,MAAMyT,MAAMnT,GAAI,EAAKN,MAAMsV,UAAUhV,GAAIL,GADlF,cAED9B,KACJ,EAAKgG,SAAS,CAAEoR,gBAAgB,IAChC,EAAK7J,SAAS,EAAK1L,MAAMyT,MAAMnT,KAJ1B,2CA1EM,wDAiFnBkI,WAjFmB,uCAiFN,WAAOC,EAAO4L,GAAd,SAAAxU,EAAA,sEACOoG,EAAUe,QAAQwB,WAAW,EAAKxI,MAAMyT,MAAMnT,GAAImI,EAAO4L,GADhE,cAEDlW,IACJ,EAAKuN,SAAS,EAAK1L,MAAMyT,MAAMnT,IAH1B,2CAjFM,0DAiGnBgI,YAjGmB,sBAiGL,sBAAAzI,EAAA,sEACMoG,EAAUe,QAAQsB,YAAY,EAAKtI,MAAM4S,cAActS,IAD7D,cAEFnC,KACJ,EAAKgG,SAAS,CAAEqR,mBAAmB,IACnC,EAAK9J,SAAS,EAAK1L,MAAMyT,MAAMnT,KAJzB,2CAjGK,EAwGnBiI,YAxGmB,sBAwGL,sBAAA1I,EAAA,sEACMoG,EAAUe,QAAQuB,YAAY,EAAKvI,MAAMyT,MAAMnT,IADrD,cAEFnC,KACJ,EAAKgG,SAAS,CAAEsR,mBAAmB,IACnC,EAAK/J,YAJC,2CAxGK,EA+GnBwF,WA/GmB,uCA+GN,WAAOrK,GAAP,SAAAhH,EAAA,8DAC2BpB,IAAhC,EAAKuB,MAAM4S,cAActS,GADpB,iDAGT,EAAK6D,SAAS,CAAEqR,mBAAmB,IAH1B,2CA/GM,sDAGf,EAAKxV,MAAQ,CACTyT,MAAO,GAAIiC,iBAAiB,EAAOC,eAAe,EAAOnK,UAAU,EAAOoK,iBAAiB,EAAOC,gBAAgB,EAAOC,oBAAoB,EAAOC,OAAQ,GAC5JjB,MAAO,GAAIlC,cAAe,GAAI0C,UAAW,GAAIG,mBAAmB,EAAOO,iBAAiB,EAAOZ,gBAAgB,EAAOT,aAAc,GAAIsB,cAAc,EAAOhB,eAAe,EAAOM,gBAAgB,EAAOC,mBAAmB,GAEjO,EAAKU,cAAgBxV,IAAMgC,YAPZ,EAdvB,gEAwBQrC,KAAKqL,aAxBb,wEA0BmBpL,GA1BnB,uFA4ByB2F,EAAUe,QAAQN,IAAIpG,GA5B/C,QA4BYV,EA5BZ,QA6BkBzB,GAINkC,KAAK8D,SAAS,CACVsP,MAAO7T,EAAK6T,MACZsC,OAAQnW,EAAKmW,OACbjB,MAAOlV,EAAKkV,MACZtJ,UAAU,EACVkK,iBAAiB,EACjBC,eAAe,EACfhB,aAAc,KAVlBtU,KAAK8D,SAAS,CAAEiC,MAAOxG,EAAK0F,QAASkG,UAAU,EAAOmJ,aAAc,KA9BhF,sIAoIc,IAAD,SACDf,EAAa,IAAI1F,KAAKA,KAAKjQ,MAAMoC,KAAKL,MAAMyT,MAAM7L,QAClDuO,EAAkB,QACc1X,IAAhC4B,KAAKL,MAAM4S,cAActS,KACzB6V,EAAkB,iBAAmB9V,KAAKL,MAAM4S,cAAc3S,KAAK,KAEvE,IAAImW,EAAW,UACXC,EAAa,UACbC,EAAI1C,EAAWvE,WACfiH,GAAK,GAAKA,GAAK,GACfF,EAAW,UACXC,EAAa,WAERC,GAAK,GAAKA,GAAK,GACpBF,EAAW,UACXC,EAAa,WAERC,GAAK,GAAKA,GAAK,KACpBF,EAAW,UACXC,EAAa,WAEjB,IAAIE,EAAalW,KAAKL,MAAM+V,OAAOS,QAAO,SAAC3W,EAAG4W,GAAJ,OAAU5W,EAAI4W,EAAEtJ,YAAW,GACjEuJ,EAAgBrW,KAAKL,MAAM+V,OAAOS,QAAO,SAAC3W,EAAG4W,GAAJ,OAAU5W,GAAM4W,EAAEvJ,aAAeuJ,EAAEtJ,UAAasJ,EAAEvJ,aAAeuJ,EAAEtJ,UAAY,KAAI,GAE5HuJ,EADAA,EAAgB,EACA,IAAMA,EAGN,GACpB,IAAIC,EAAWtW,KAAKL,MAAMyT,MAAMW,UAAY/T,KAAKL,MAAMyT,MAAMY,UAC7D,OACI,yBAAK7W,UAAU,aACT6C,KAAKL,MAAMwL,UACT,6BACI,8CACA,uCAAMnL,KAAKL,MAAMoG,aAAjB,QAA0B,mBAIjC/F,KAAKL,MAAMwL,UACR,yBAAKlL,GAAG,eACJ,wBAAI9C,UAAU,aAAa4C,MAAO,CAAEwW,eAAgB,WAAY,yBAAK9T,IAAI,UAAUC,IAAI,8BAA8B/D,OAAO,OAAO,iDACvI,yBAAKoB,MAAO,CAAEnB,QAAS,SACvB,wBAAIqB,GAAG,aACH,yBAAK9C,UAAU,4BACX,2BAAO4C,MAAO,CAAEuC,MAAO0T,IACnB,yBAAKvT,IAAI,GAAGC,IAAK,YAAcqT,EAAW,OAAQpX,OAAO,KAAKoB,MAAO,CAAEsB,aAAc,SADzF,IACsGkS,EAAWM,mBAAmB,QAAS,CAAElG,MAAO,SAAU6I,cADhK,KACiLjD,EAAWtE,eAE5L,yBAAKlP,MAAO,CAAEyB,SAAU,QAASyO,UAAW,SACxC,kDAAuB,uBAAGlQ,MAAO,CAAEuC,MAAOgU,EAAWJ,EAAa,UAAY,KAAOI,EAA9D,KAAyE,2BAAItW,KAAKL,MAAMyT,MAAMY,WAA9F,KAAvB,WAAgJ,2BAAIkC,EAAJ,IAAiBG,GAAiB,kCAAO,uBAAGtW,MAAO,CAAEuC,MAAO,YAAc+T,GAAxC,SAI1L,kBAAC,GAAD,CAA4BnS,OAAQlE,KAAKL,MAAM0V,gBAC3CjC,MAAOpT,KAAKL,MAAMyT,MAClBhF,SAAU,kBAAM,EAAKtK,SAAS,CAAEuR,iBAAiB,KACjDrI,SAAU,SAAC/M,GAAD,OAAQ,EAAKoL,SAASpL,MAGpC,kBAAC,GAAD,CAAwBiE,OAAQlE,KAAKL,MAAM2V,cACvClC,MAAOpT,KAAKL,MAAMyT,MAClBhF,SAAU,kBAAM,EAAKtK,SAAS,CAAEwR,eAAe,KAC/CvH,KAAM,SAACkI,EAAGrN,GACN,EAAKT,WAAW8N,EAAGrN,OAK/B,yBAAK7I,MAAO,CACRnB,QAAS,OACTK,WAAY,OAAQyC,WAAY,WAEhC,kBAAC+U,GAAA,EAAD,CACAxS,OAAQ,kBAAM,EAAKH,SAAS,CAAE6R,iBAAkB,EAAKhW,MAAMgW,mBAC3DzR,OAAQlE,KAAKL,MAAMgW,iBAEf,kBAAChD,GAAA,EAAD,CAAgB5S,MAAO,CAAEd,WAAY,MAAOgR,UAAW,MAAO3O,QAAS,MAAOF,OAAQ,IAAKkB,MAAO,OAAQpB,gBAAiB,gBAA3H,sBACA,kBAAC2R,GAAA,EAAD,CAAc9S,MAAO,CAAC2W,KAAM,OAAQC,MAAO,MACvC,kBAAC7D,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK0D,SAAS,CAAEuR,iBAAiB,MAA9D,UACA,kBAACvC,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK0D,SAAS,CAAEwR,eAAe,MAA5D,QACA,kBAACxC,GAAA,EAAD,CAAc8D,SAAO,IACrB,kBAAC9D,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK0D,SAAS,CAAEsR,mBAAmB,MAAhE,YAGR,kBAAC,GAAD,CAAclM,IAAI,QAAQhF,OAAQlE,KAAKL,MAAMyV,kBACzC3E,MAAO,eACPxL,QAAS,qBACT8I,KAAM,kBAAM,EAAK7F,eACjBkG,SAAU,kBAAM,EAAKtK,SAAS,CAAEsR,mBAAmB,UAO9DpV,KAAKL,MAAMwL,UAER,yBAAKhO,UAAU,eACX,yBAAKA,UAAU,iBACf,yBAAK4C,MAAOC,KAAKmU,mBACb,0BAAMpU,MAAOC,KAAKkU,kBAAlB,UACA,kBAACuC,GAAA,EAAD,CACIxS,OAAQ,kBAAM,EAAKH,SAAS,CAAEyR,iBAAkB,EAAK5V,MAAM4V,mBAC3DrR,OAAQlE,KAAKL,MAAM4V,iBAEnB,kBAAC5C,GAAA,EAAD,CAAgB5S,MAAO,CAAEoQ,YAAa,MAAO9O,aAAc,MAAOC,QAAS,QAASF,OAAQ,IAAKF,gBAAiB,gBAAlH,sBACA,kBAAC2R,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK0D,SAAS,CAAEoR,gBAAgB,EAAMD,UAAW,CAAEhV,GAAI,OAApF,YACiC7B,IAAhC4B,KAAKL,MAAM4S,cAActS,IAAoB,kBAAC6S,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK0D,SAAS,CAAEoR,gBAAgB,EAAMD,UAAW,EAAKtV,MAAM4S,kBAAzF,aACbnU,IAAhC4B,KAAKL,MAAM4S,cAActS,IAAoB,kBAAC6S,GAAA,EAAD,CAAc8D,SAAO,SAClCxY,IAAhC4B,KAAKL,MAAM4S,cAActS,IAAoB,kBAAC6S,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAKyQ,eAAlC,YAGtD,kBAAC,GAAD,CAAuB3M,OAAQlE,KAAKL,MAAMuV,eACtChT,MAAOlC,KAAKL,MAAMsV,UAAUrV,KAC5BmO,KAAM,SAACnO,GAAD,OAAU,EAAKmI,WAAWnI,IAChCwO,SAAU,kBAAM,EAAKtK,SAAS,CAAEoR,gBAAgB,OAEpD,kBAAC,GAAD,CAAchM,IAAI,QAAQhF,OAAQlE,KAAKL,MAAMwV,kBACzC1E,MAAO,eACPxL,QAAS6Q,EACT/H,KAAM,kBAAM,EAAK9F,eACjBmG,SAAU,kBAAM,EAAKtK,SAAS,CAAEqR,mBAAmB,QAG1DnV,KAAKL,MAAM+V,OAAOzM,KAAI,SAAA+I,GACnB,OAAO,kBAAC,GAAD,CAAmB9I,IAAK8I,EAAE/R,GAAIyM,QAASsF,EAAGjF,WAAY,EAAKpN,MAAM4S,cAActS,KAAO+R,EAAE/R,GAAI+M,SAAU,SAACqH,GAAD,OAAS,EAAKD,YAAYC,UAI/I,yBAAKlX,UAAU,gBACX,yBAAK4C,MAAOC,KAAKmU,mBACb,0BAAMpU,MAAOC,KAAKkU,kBAAlB,UACElU,KAAKL,MAAM+V,OAAO3D,OAAS,QAAoC3T,IAA/B4B,KAAKL,MAAM2U,aAAarU,KACtD,kBAACwW,GAAA,EAAD,CACIxS,OAAQ,kBAAM,EAAKH,SAAS,CAAE0R,gBAAiB,EAAK7V,MAAM6V,kBAC1DtR,OAAQlE,KAAKL,MAAM6V,gBACnB,kBAAC7C,GAAA,EAAD,CAAgB5S,MAAO,CAAEoQ,YAAa,MAAO9O,aAAc,MAAOC,QAAS,QAASF,OAAQ,IAAKF,gBAAiB,gBAAlH,sBACJ,kBAAC2R,GAAA,EAAD,CAAc9S,MAAO,CAAE4W,MAAO,IAAKD,KAAM,SAChC1W,KAAKL,MAAM+V,OAAO3D,OAAS,GAAK,kBAACe,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK0D,SAAS,CAAE8Q,eAAe,MAA5D,YACDxW,IAA/B4B,KAAKL,MAAM2U,aAAarU,IAAoB,kBAAC6S,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK0D,SAAS,CAAEiR,gBAAgB,MAA7D,aACb3W,IAA/B4B,KAAKL,MAAM2U,aAAarU,IAAoB,kBAAC6S,GAAA,EAAD,CAAc8D,SAAO,SAClCxY,IAA/B4B,KAAKL,MAAM2U,aAAarU,IAAoB,kBAAC6S,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAKyW,gBAAlC,YAIzD,kBAAC,GAAD,CAAsB3S,OAAQlE,KAAKL,MAAMiV,cACrCrC,cAAevS,KAAKL,MAAM4S,cAC1B/D,MAAOxO,KAAKL,MAAM+V,OAClB3H,KAAM,SAACrG,EAAS9H,EAAM+H,GAAhB,OAAyB,EAAK+M,QAAQhN,EAAS9H,EAAM+H,IAC3DyG,SAAU,kBAAM,EAAKtK,SAAS,CAAE8Q,eAAe,OAGnD,kBAAC,GAAD,CAAuB1Q,OAAQlE,KAAKL,MAAMoV,eACtCrI,QAAS1M,KAAKL,MAAM2U,aACpBvG,KAAM,SAAC9N,EAAIL,EAAM+H,EAAMC,GAAjB,OAA8B,EAAKiN,SAAS5U,EAAIL,EAAM+H,EAAMC,IAClEwG,SAAU,kBAAM,EAAKtK,SAAS,CAAEiR,gBAAgB,QAGvD/U,KAAKL,MAAM8U,MAAMqC,QAAO,SAAAtX,GAAC,YAAoCpB,IAAhC,EAAKuB,MAAM4S,cAActS,IAChDT,EAAEsV,UAAY,EAAKnV,MAAM4S,cAActS,MAAIgJ,KAAI,SAAA+I,GAC9C,OAAO,kBAAC,GAAD,CAAkB9I,IAAK8I,EAAE/R,GAAIyM,QAASsF,EAAGjF,WAAY,EAAKpN,MAAM2U,aAAarU,KAAO+R,EAAE/R,GAAI+M,SAAU,SAACqH,GAAD,OAAS,EAAKE,WAAWF,UAKhJ,yBAAKlX,UAAU,qBAEX,yBAAK4C,MAAOC,KAAKmU,mBACb,0BAAMpU,MAAOC,KAAKkU,kBAAlB,eACClU,KAAKL,MAAM2U,aAAarU,GAAK,GAC1B,kBAACwW,GAAA,EAAD,CACIxS,OAAQ,kBAAM,EAAKH,SAAS,CAAE2R,oBAAqB,EAAK9V,MAAM8V,sBAC9DvR,OAAQlE,KAAKL,MAAM8V,oBACnB,kBAAC9C,GAAA,EAAD,CAAgB5S,MAAO,CAAEoQ,YAAa,MAAO9O,aAAc,MAAOC,QAAS,QAASF,OAAQ,IAAKF,gBAAiB,gBAAlH,sBACJ,kBAAC2R,GAAA,EAAD,CAAc9S,MAAO,CAAE4W,MAAO,IAAKD,KAAM,SACrC,kBAAC5D,GAAA,EAAD,CAAc1S,QAAS,kBAAM,EAAK2W,aAAlC,wBAKoB3Y,IAA/B4B,KAAKL,MAAM2U,aAAarU,IACrB,6DAC4B7B,IAA/B4B,KAAKL,MAAM2U,aAAarU,IACrB,kBAAC,GAAD,CAAsBsR,SAAU,SAAAyF,GAAY,EAAKD,SAAWC,GAC5DxF,gBAAiB,SAAAwF,GAAY,EAAKH,YAAcG,GAChD/F,eAAc,uCAAE,WAAOrR,GAAP,eAAAJ,EAAA,6DAKRS,EAAK,EAAKN,MAAM2U,aAAarU,GALrB,SAMN,EAAKoL,SAAS,EAAK1L,MAAMyT,MAAMnT,IANzB,OAOC,WAATL,GACA,EAAK4U,aAAavU,GARV,2CAAF,sDAUXA,GAAID,KAAKL,MAAM2U,aAAarU,YAvU3D,GAA8BI,IAAMjD,W,UCTvB6Z,GAAb,kDACI,WAAYjZ,GAAQ,IAAD,8BACf,cAAMA,IAED2B,MAAQ,CAAEoG,MAAO,GAAIoF,UAAU,EAAO+L,QAAS,GAAIC,SAAU,GAAI7O,MAAO,IAH9D,EADvB,gEAOQtI,KAAKqL,aAPb,iKAUyBzF,EAAU0C,MAAMjC,MAVzC,QAUY9G,EAVZ,QAWkBzB,IAINuF,QAAQC,IAAI/D,GACZS,KAAK8D,SAAS,CACVoT,QAAS3X,EAAK2X,QACdE,UAAW7X,EAAK6X,UAChB9O,MAAO/I,EAAK+I,MACZ6C,UAAU,KARdnL,KAAK8D,SAAS,CAAEiC,MAAOxG,EAAK0F,QAASkG,UAAU,IAZ3D,qIAwBc,IAAD,EACL,OACI,yBAAKhO,UAAU,WACT6C,KAAKL,MAAMwL,UACT,6BACI,2CACA,uCAAMnL,KAAKL,MAAMoG,aAAjB,QAA0B,mBAIjC/F,KAAKL,MAAMwL,UACR,yBAAKpL,MAAO,IACR,wBAAI5C,UAAU,cAAa,yBAAKsF,IAAI,QAAQC,IAAI,4BAA4B/D,OAAO,OAAO,8CAC1F,iDAAuBqB,KAAKL,MAAM2I,MAAMW,KAAI,SAAAyC,GAAC,OAAI,kBAAC2L,GAAA,EAAD,CAAO/U,MAAM,UAAUvC,MAAO,CAAEd,WAAY,GAAKiK,IAAKwC,GAAG,2BAAIA,QAC9G,yBAAK3L,MAAO,CAAEnB,QAAS,OAAQK,WAAY,OAAQyC,WAAY,WAC3D,kBAACoK,EAAA,EAAD,CAAO1H,KAAK,MACR,+BACI,4BACI,yCACA,yCAGR,+BACKpE,KAAKL,MAAMuX,QAAQjO,KAAI,SAAAyC,GACpB,OACI,wBAAIxC,IAAKwC,EAAE9L,MACP,4BAAK8L,EAAE9L,MACP,4BAAK8L,EAAEwL,sBAnDvD,GAA4B7W,IAAMjD,WCQbka,I,6KAIjB,OACE,kBAAC,EAAD,KACM,kBAAC,IAAD,CAAOC,OAAK,EAACC,KAAK,IAAIC,UAAWlP,IACjC,kBAAC,IAAD,CAAOiP,KAAK,YAAYC,UAAWpL,KAEnC,kBAAC,IAAD,CAAOmL,KAAK,cAAcC,UAAWpN,IACrC,kBAAC,IAAD,CAAOmN,KAAK,aAAaC,UAAWxD,KACpC,kBAAC,IAAD,CAAOuD,KAAK,WAAWC,UAAWR,KAClC,kBAAC,IAAD,CAAOO,KAAK,UAAUC,UAAWhO,S,GAZZrM,cAAZka,GACZ7W,YAAc6W,GAAI1X,KCH3B,IAAM8X,GAAcC,QACW,cAA7BlY,OAAOC,SAASkY,UAEa,UAA7BnY,OAAOC,SAASkY,UAEhBnY,OAAOC,SAASkY,SAASC,MACvB,2DA6BJ,SAASC,GAAiBC,GACxBC,UAAUC,cACPtS,SAASoS,GACT1Y,MAAK,SAAA6Y,GACJA,EAAaC,cAAgB,WAC3B,IAAMC,EAAmBF,EAAaG,WACtCD,EAAiBE,cAAgB,WACA,cAA3BF,EAAiBzY,QACfqY,UAAUC,cAAcM,WAK1BlV,QAAQC,IAAI,6CAKZD,QAAQC,IAAI,4CAMrBgC,OAAM,SAAAS,GACL1C,QAAQ0C,MAAM,4CAA6CA,MC/DjE,IAAMyS,GAAUC,SAASC,qBAAqB,QAAQ,GAAGC,aAAa,QAChEC,GAAcH,SAASI,eAAe,QAE5CC,IAASC,OACP,kBAAC,IAAD,CAAeC,SAAUR,IACvB,kBAAC,GAAD,OAEFI,IDMa,WACb,GAA6C,kBAAmBZ,UAAW,CAGzE,GADkB,IAAIiB,IAAIC,GAAwBzZ,OAAOC,UAC3CyZ,SAAW1Z,OAAOC,SAASyZ,OAIvC,OAGF1Z,OAAO2Z,iBAAiB,QAAQ,WAC9B,IAAMrB,EAAK,UAAMmB,GAAN,sBAEPxB,GAwCV,SAAkCK,GAEhC3Y,MAAM2Y,GACH1Y,MAAK,SAAAkG,GAGkB,MAApBA,EAAS7H,SACuD,IAAhE6H,EAASF,QAAQgB,IAAI,gBAAgBgT,QAAQ,cAG7CrB,UAAUC,cAAcqB,MAAMja,MAAK,SAAA6Y,GACjCA,EAAaqB,aAAala,MAAK,WAC7BI,OAAOC,SAASoJ,eAKpBgP,GAAgBC,MAGnBzS,OAAM,WACLjC,QAAQC,IACN,oEA5DAkW,CAAwBzB,GAGxBD,GAAgBC,OCvBxB0B,K","file":"static/js/main.b45f86aa.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport './logo.css';\r\n\r\nexport class Logo extends Component {\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\n\r\nexport function AuthGet() { \r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', 'api/Account/auth', false);\r\n xhr.send();\r\n if (xhr.status === 200) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n else {\r\n return { ok: false };\r\n }\r\n}\r\n\r\nexport function Auth(props) {\r\n const t = AuthGet(); \r\n let control = props.children; \r\n if (t.ok) { \r\n if (props.only === undefined) {\r\n control = props.children[1];\r\n }\r\n }\r\n else {\r\n control = props.children[0];\r\n }\r\n return (\r\n \r\n {control}\r\n \r\n )\r\n}","import React from 'react';\r\nimport { AuthGet } from './Auth';\r\nimport { Link } from 'react-router-dom';\r\nimport { Route } from 'react-router';\r\n\r\nexport class Login extends React.Component {\r\n loginStyle = {\r\n alignSelf: \"center !important\",\r\n justifySelf: \"right\",\r\n height: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gridRowGap: \"10px\",\r\n gridColumnGap: \"10px\",\r\n }\r\n buttonStyle = {\r\n marginLeft: \"4px\"\r\n }\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { name: AuthGet().name };\r\n }\r\n \r\n logout = (event) => {\r\n fetch('api/Account/logout')\r\n .then(r => r.json())\r\n .then(a => {\r\n if (a.ok)\r\n window.location = '/';\r\n }); \r\n }\r\n render() {\r\n let isHomePage = (val) => val === '/' || val === '/m.password' || val === '/m.expense' || val === '/m.games';\r\n let isSettingsPage = (val) => val === '/settings';\r\n return (\r\n
\r\n \r\n
\r\n
\r\n MY PAGE\r\n
\r\n
\r\n SETTINGS\r\n
\r\n
\r\n } />\r\n
{this.state.name} [ Exit ]
\r\n
\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { Logo } from './Logo';\r\nimport { Login } from './Login';\r\nimport { Auth } from './Auth';\r\nimport './NavMenu.css';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n \r\n render() {\r\n return ( \r\n \r\n \r\n \r\n
\r\n {window.location.pathname === '/verify' && }\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n GROOT\r\n PLEK\r\n .com\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport './loginpartialview.css';\r\n\r\nexport class LoginPartialView extends React.Component {\r\n formSubmitStyle = {\r\n textAlign: \"center\",\r\n margin: \"auto\",\r\n width: \"240px\",\r\n display: \"grid\",\r\n gridTemplateRows: \"auto auto auto auto\"\r\n }\r\n blockStyle = {\r\n backgroundColor: \"white\",\r\n borderRadius: \"10px\",\r\n display: \"flex\",\r\n border: \"solid 1px #444\",\r\n height: \"auto\",\r\n marginBottom: \"8px\",\r\n padding: \"4px\"\r\n }\r\n inputStyle = {\r\n backgroundColor: \"transparent\",\r\n fontSize: \"0.8em\",\r\n marginLeft: \"4px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n alignItems: \"center\"\r\n }\r\n imgBlockStyle = {\r\n width: \"24px\",\r\n display: \"flex\",\r\n height: \"auto\"\r\n }\r\n \r\n constructor(props) {\r\n super(props);\r\n\r\n this.email = React.createRef();\r\n this.password = React.createRef();\r\n }\r\n validateEmail = (email) => {\r\n var re = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n return re.test(email);\r\n }\r\n submit = (event) => {\r\n event.preventDefault();\r\n if (this.validateEmail(this.email.current.value)) {\r\n this.props.login(this.email.current.value, this.password.current.value);\r\n }\r\n }\r\n \r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n WELCOME BACK !\r\n Enter your Email and Password to continue.
\r\n Press this.props.showView('register')}>Register if you don't have an account\r\n
\r\n
\r\n \r\n
\r\n \"\"\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n SIGN IN\r\n TO ACCESS THE PORTAL\r\n
\r\n
\r\n
\r\n \"email\"\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"lock\"\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
Idea and development: AQL.exe (write me)
\r\n
\r\n \r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\n\r\nexport function Agreement () {\r\n return
\r\n

Terms and Conditions

\r\n

Welcome to grootplek!

\r\n

These terms and conditions outline the rules and regulations for the use of grootplek.com's Website, located at http://grootplek.com.

\r\n

By accessing this website we assume you accept these terms and conditions. Do not continue to use grootplek if you do not agree to take all of the terms and conditions stated on this page.

\r\n

The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: \"Client\", \"You\" and \"Your\" refers to you, the person log on this website and compliant to the Company’s terms and conditions. \"The Company\", \"Ourselves\", \"We\", \"Our\" and \"Us\", refers to our Company. \"Party\", \"Parties\", or \"Us\", refers to both the Client and ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization and/or he/she or they, are taken as interchangeable and therefore as referring to same.

\r\n

Cookies

\r\n

We employ the use of cookies. By accessing grootplek, you agreed to use cookies in agreement with the grootplek.com's Privacy Policy.

\r\n

Most interactive websites use cookies to let us retrieve the user’s details for each visit. Cookies are used by our website to enable the functionality of certain areas to make it easier for people visiting our website. Some of our affiliate/advertising partners may also use cookies.

\r\n

License

\r\n

Unless otherwise stated, grootplek.com and/or its licensors own the intellectual property rights for all material on grootplek. All intellectual property rights are reserved. You may access this from grootplek for your own personal use subjected to restrictions set in these terms and conditions.

\r\n

You must not:

\r\n
    \r\n
  • Republish material from grootplek
  • \r\n
  • Sell, rent or sub-license material from grootplek
  • \r\n
  • Reproduce, duplicate or copy material from grootplek
  • \r\n
  • Redistribute content from grootplek
  • \r\n
\r\n

This Agreement shall begin on the date hereof. Our Terms and Conditions were created with the help of the Terms And Conditions Generator and the Privacy Policy Generator.

\r\n

Parts of this website offer an opportunity for users to post and exchange opinions and information in certain areas of the website. grootplek.com does not filter, edit, publish or review Comments prior to their presence on the website. Comments do not reflect the views and opinions of grootplek.com,its agents and/or affiliates. Comments reflect the views and opinions of the person who post their views and opinions. To the extent permitted by applicable laws, grootplek.com shall not be liable for the Comments or for any liability, damages or expenses caused and/or suffered as a result of any use of and/or posting of and/or appearance of the Comments on this website.

\r\n

grootplek.com reserves the right to monitor all Comments and to remove any Comments which can be considered inappropriate, offensive or causes breach of these Terms and Conditions.

\r\n

You warrant and represent that:

\r\n
    \r\n
  • You are entitled to post the Comments on our website and have all necessary licenses and consents to do so;
  • \r\n
  • The Comments do not invade any intellectual property right, including without limitation copyright, patent or trademark of any third party;
  • \r\n
  • The Comments do not contain any defamatory, libelous, offensive, indecent or otherwise unlawful material which is an invasion of privacy
  • \r\n
  • The Comments will not be used to solicit or promote business or custom or present commercial activities or unlawful activity.
  • \r\n
\r\n

You hereby grant grootplek.com a non-exclusive license to use, reproduce, edit and authorize others to use, reproduce and edit any of your Comments in any and all forms, formats or media.

\r\n

Hyperlinking to our Content

\r\n

The following organizations may link to our Website without prior written approval:

\r\n
    \r\n
  • Government agencies;
  • \r\n
  • Search engines;
  • \r\n
  • News organizations;
  • \r\n
  • Online directory distributors may link to our Website in the same manner as they hyperlink to the Websites of other listed businesses; and
  • \r\n
  • System wide Accredited Businesses except soliciting non-profit organizations, charity shopping malls, and charity fundraising groups which may not hyperlink to our Web site.
  • \r\n
\r\n

These organizations may link to our home page, to publications or to other Website information so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products and/or services; and (c) fits within the context of the linking party’s site.

\r\n

We may consider and approve other link requests from the following types of organizations:

\r\n
    \r\n
  • commonly-known consumer and/or business information sources;
  • \r\n
  • dot.com community sites;
  • \r\n
  • associations or other groups representing charities;
  • \r\n
  • online directory distributors;
  • \r\n
  • internet portals;
  • \r\n
  • accounting, law and consulting firms; and
  • \r\n
  • educational institutions and trade associations.
  • \r\n
\r\n

We will approve link requests from these organizations if we decide that: (a) the link would not make us look unfavorably to ourselves or to our accredited businesses; (b) the organization does not have any negative records with us; (c) the benefit to us from the visibility of the hyperlink compensates the absence of grootplek.com; and (d) the link is in the context of general resource information.

\r\n

These organizations may link to our home page so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products or services; and (c) fits within the context of the linking party’s site.

\r\n

If you are one of the organizations listed in paragraph 2 above and are interested in linking to our website, you must inform us by sending an e-mail to grootplek.com. Please include your name, your organization name, contact information as well as the URL of your site, a list of any URLs from which you intend to link to our Website, and a list of the URLs on our site to which you would like to link. Wait 2-3 weeks for a response.

\r\n

Approved organizations may hyperlink to our Website as follows:

\r\n
    \r\n
  • By use of our corporate name; or
  • \r\n
  • By use of the uniform resource locator being linked to; or
  • \r\n
  • By use of any other description of our Website being linked to that makes sense within the context and format of content on the linking party’s site.
  • \r\n
\r\n

No use of grootplek.com's logo or other artwork will be allowed for linking absent a trademark license agreement.

\r\n

iFrames

\r\n

Without prior approval and written permission, you may not create frames around our Webpages that alter in any way the visual presentation or appearance of our Website.

\r\n

Content Liability

\r\n

We shall not be hold responsible for any content that appears on your Website. You agree to protect and defend us against all claims that is rising on your Website. No link(s) should appear on any Website that may be interpreted as libelous, obscene or criminal, or which infringes, otherwise violates, or advocates the infringement or other violation of, any third party rights.

\r\n

Your Privacy

\r\n

Please read Privacy Policy

\r\n

Reservation of Rights

\r\n

We reserve the right to request that you remove all links or any particular link to our Website. You approve to immediately remove all links to our Website upon request. We also reserve the right to amen these terms and conditions and it’s linking policy at any time. By continuously linking to our Website, you agree to be bound to and follow these linking terms and conditions.

\r\n

Removal of links from our website

\r\n

If you find any link on our Website that is offensive for any reason, you are free to contact and inform us any moment. We will consider requests to remove links but we are not obligated to or so or to respond to you directly.

\r\n

We do not ensure that the information on this website is correct, we do not warrant its completeness or accuracy; nor do we promise to ensure that the website remains available or that the material on the website is kept up to date.

\r\n

Disclaimer

\r\n

To the maximum extent permitted by applicable law, we exclude all representations, warranties and conditions relating to our website and the use of this website. Nothing in this disclaimer will:

\r\n
    \r\n
  • limit or exclude our or your liability for death or personal injury;
  • \r\n
  • limit or exclude our or your liability for fraud or fraudulent misrepresentation;
  • \r\n
  • limit any of our or your liabilities in any way that is not permitted under applicable law; or
  • \r\n
  • exclude any of our or your liabilities that may not be excluded under applicable law.
  • \r\n
\r\n

The limitations and prohibitions of liability set in this Section and elsewhere in this disclaimer: (a) are subject to the preceding paragraph; and (b) govern all liabilities arising under the disclaimer, including liabilities arising in contract, in tort and for breach of statutory duty.

\r\n

As long as the website and the information and services on the website are provided free of charge, we will not be liable for any loss or damage of any nature.

\r\n
;\r\n}","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Input, InputGroup, Label, Modal, ModalHeader, ModalFooter, ModalBody, Button } from 'reactstrap';\r\nimport { Agreement } from './Agreement';\r\nimport './registerpartialview.css';\r\n\r\nexport class RegisterPartialView extends React.Component {\r\n formStyle = {\r\n textAlign: \"center\",\r\n alignSelf: \"start\",\r\n justifySelf: \"center\",\r\n width: \"240px\",\r\n display: \"grid\",\r\n gridRow: \"1 / span 2\",\r\n height: \"auto\",\r\n gridTemplateRows: \"auto auto auto auto auto\"\r\n\r\n }\r\n blockStyle = {\r\n backgroundColor: \"white\",\r\n borderRadius: \"10px\",\r\n display: \"flex\",\r\n border: \" solid 1px #444\",\r\n height: \"auto\",\r\n marginBottom: \"8px\",\r\n padding: \"4px\"\r\n }\r\n inputStyle = {\r\n backgroundColor: \"transparent\",\r\n fontSize: \"0.8em\",\r\n marginLeft: \"4px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n alignItems: \"center\"\r\n }\r\n imgBlockStyle = {\r\n width: \"24px\",\r\n display: \"flex\",\r\n height: \"auto\"\r\n }\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { agreement: false, showagreement: false };\r\n\r\n this.email = React.createRef();\r\n this.password = React.createRef();\r\n }\r\n validateEmail = (email) => {\r\n var re = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n return re.test(email);\r\n }\r\n submit = (event) => {\r\n event.preventDefault();\r\n if (this.validateEmail(this.email.current.value)) {\r\n this.props.confirm(this.email.current.value, this.password.current.value);\r\n }\r\n else {\r\n console.log('incorrect email format');\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {!this.props.confirmed\r\n &&
\r\n
\r\n REGISTER FORM\r\n TO ACCESS THE PORTAL\r\n
\r\n
\r\n
\r\n \"email\"\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"lock\"\r\n
\r\n \r\n
\r\n \r\n this.setState({ agreement: !this.state.agreement })} /> \r\n\r\n this.setState({ showagreement: false })} isOpen={this.state.showagreement} aria-labelledby=\"contained-modal-title-vcenter\" size=\"lg\" style={{ height: \"auto\" }}>\r\n Terms and Agreement\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
}\r\n {this.state.confirmed &&
Please check your Email
}\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n\r\n
\r\n REGISTRATION !\r\n Enter your Email and Security Code
\r\n Press this.props.showView('login')}>Sign in if you have an account\r\n
\r\n
\r\n\r\n
\r\n
Idea and development: AQL.exe (write me)
\r\n
\r\n
\r\n )\r\n }\r\n}","export class LoginApi {\r\n\r\n handleError = function (err) {\r\n console.warn(err);\r\n return new Response(JSON.stringify({\r\n ok: false,\r\n code: 400,\r\n message: 'Network Error'\r\n }));\r\n };\r\n\r\n static login = async (email, pass) => {\r\n var response = await (fetch('api/Account/login', {\r\n method: 'POST', \r\n body: JSON.stringify({ email: email, pass: pass }), \r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).catch(this.handleError));\r\n if (response.ok) {\r\n if (response.redirected)\r\n return window.location = '/';\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n }\r\n static register = async (email, code) => {\r\n const response = await (fetch('api/Account/register', {\r\n method: 'POST',\r\n body: JSON.stringify({ email: email, pass: code }), \r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).catch(this.handleError));\r\n if (response.ok) {\r\n if (response.redirected)\r\n return window.location = '/';\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n } \r\n }\r\n}","export class ModuleApi {\r\n\r\n static handleError = (err) => {\r\n console.warn(err);\r\n return new Response(JSON.stringify({\r\n code: 400,\r\n message: 'Network Error'\r\n }));\r\n };\r\n static executeGet = async (url) => {\r\n var response = await (fetch(url).catch(ModuleApi.handleError));\r\n if (response.ok) {\r\n if (response.redirected)\r\n return window.location = '/';\r\n return response.json();\r\n } else {\r\n console.error('ModuleApi.executeGet.' + url + ' - bad');\r\n return Promise.reject(response);\r\n }\r\n }\r\n static executePost = async (url, jsonData) => {\r\n var response = await (fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(jsonData),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).catch(ModuleApi.handleError));\r\n if (response.ok) {\r\n if (response.redirected)\r\n return window.location = '/';\r\n return response.json();\r\n } else {\r\n console.error('ModuleApi.executePost.' + url + ' - bad');\r\n return Promise.reject(response);\r\n }\r\n }\r\n static execute = async (url, jsonData) => {\r\n if (jsonData === undefined)\r\n return await ModuleApi.executeGet(url);\r\n return await ModuleApi.executePost(url, jsonData);\r\n }\r\n \r\n static load = async () => {\r\n console.log('ModuleApi.load');\r\n var response = await (fetch('api/Account/modules').catch(ModuleApi.handleError)); \r\n if (response.ok) {\r\n console.info('ModuleApi.load - good');\r\n if (response.redirected)\r\n return window.location = '/';\r\n return response.json();\r\n } else {\r\n console.error('ModuleApi.load - bad');\r\n return Promise.reject(response);\r\n }\r\n }\r\n\r\n static password = class {\r\n static url = {\r\n get: 'api/MPassword/get',\r\n load: 'api/MPassword/load',\r\n merge: 'api/MPassword/merge',\r\n delete: 'api/MPassword/remove'\r\n } \r\n\r\n static get = async () => {\r\n return await ModuleApi.execute(ModuleApi.password.url.get);\r\n }\r\n static load = async (password) => {\r\n return await ModuleApi.execute(ModuleApi.password.url.load, { password: password }); \r\n }\r\n static merge = async (id, name, value, group, guid) => {\r\n const data = { id, name, value, group, guid };\r\n return await ModuleApi.execute(ModuleApi.password.url.merge, data); \r\n }\r\n static delete = async (id, guid) => {\r\n const data = { id, guid };\r\n return await ModuleApi.execute(ModuleApi.password.url.delete, data);\r\n }\r\n }\r\n\r\n static expense = class {\r\n static url = {\r\n get: 'api/MExpense/get/:id',\r\n cost: 'api/MExpense/cost/:id',\r\n addpurchase: 'api/MExpense/addpurchase',\r\n mergecost: 'api/MExpense/mergecost',\r\n deletecost: 'api/MExpense/deletecost',\r\n deletecostitem: 'api/MExpense/deletecostitem',\r\n mergegroup: 'api/MExpense/mergegroup',\r\n deletegroup: 'api/MExpense/deletegroup',\r\n deleteboard: 'api/MExpense/deleteboard',\r\n mergeboard: 'api/MExpense/mergeboard',\r\n //merge: 'api/MPassword/merge',\r\n //delete: 'api/MPassword/remove'\r\n }\r\n\r\n static get = async (id) => {\r\n return await ModuleApi.execute(ModuleApi.expense.url.get.replace(':id', id ?? \"\"));\r\n }\r\n static cost = async (id) => {\r\n return await ModuleApi.execute(ModuleApi.expense.url.cost.replace(':id',id));\r\n }\r\n static addPurchase = async (id, stamp, value, note) => {\r\n var data = { id, stamp, value, note };\r\n return await ModuleApi.execute(ModuleApi.expense.url.addpurchase, data);\r\n }\r\n static mergeCost = async (id, groupid, name, plan, isclosed) => {\r\n var data = { id, groupid, name, plan, isclosed };\r\n console.log(data);\r\n return await ModuleApi.execute(ModuleApi.expense.url.mergecost, data);\r\n }\r\n static deleteCost = async (id) => {\r\n var data = { id };\r\n return await ModuleApi.execute(ModuleApi.expense.url.deletecost, data);\r\n }\r\n static deleteCostItem = async (id) => {\r\n var data = { id };\r\n return await ModuleApi.execute(ModuleApi.expense.url.deletecostitem, data);\r\n }\r\n static mergeGroup = async (boardid, groupid, name) => {\r\n var data = { boardid,groupid,name };\r\n return await ModuleApi.execute(ModuleApi.expense.url.mergegroup, data);\r\n }\r\n static deleteGroup = async (id) => {\r\n var data = { id };\r\n return await ModuleApi.execute(ModuleApi.expense.url.deletegroup, data);\r\n }\r\n static deleteBoard = async (id) => {\r\n var data = { id };\r\n return await ModuleApi.execute(ModuleApi.expense.url.deleteboard, data);\r\n }\r\n static mergeBoard = async (id, money, prevmoney) => {\r\n var data = { id, money, prevmoney }; \r\n console.log(data);\r\n return await ModuleApi.execute(ModuleApi.expense.url.mergeboard, data);\r\n }\r\n }\r\n\r\n static games = class {\r\n static url = {\r\n get: 'api/MGames/get'\r\n }\r\n static get = async () => {\r\n return await ModuleApi.execute(ModuleApi.games.url.get);\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Auth } from './Auth';\r\nimport { Link } from 'react-router-dom';\r\nimport md5 from 'md5';\r\nimport { LoginPartialView } from './LoginPartialView';\r\nimport { RegisterPartialView } from './RegisterPartialView';\r\nimport { LoginApi } from './api/LoginApi';\r\nimport { ModuleApi } from './api/ModuleApi';\r\n\r\nexport class Home extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { name: '', modules: [], view: \"login\", confirmed: false };\r\n\r\n this.password = React.createRef();\r\n this.email = React.createRef();\r\n }\r\n componentDidMount() {\r\n this.loadContent();\r\n }\r\n async loadContent() {\r\n var json = await ModuleApi.load();\r\n this.setState({ modules: json.modules });\r\n }\r\n async login(l, p) {\r\n var json = await LoginApi.login(l, md5(p));\r\n if (json.ok)\r\n window.location.reload();\r\n }\r\n async register(l, code) {\r\n var json = await LoginApi.register(l, code);\r\n if (json.ok)\r\n this.setState({ confirmed: true });\r\n else\r\n this.setState({ confirmed: false });\r\n }\r\n showView = (name) => {\r\n this.setState({ view: name });\r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n {this.state.view === \"login\"\r\n && this.login(l, p)} showView={(v) => this.showView(v)} />}\r\n\r\n {this.state.view === \"register\"\r\n && this.register(l, p)} showView={(v) => this.showView(v)} />}\r\n
\r\n
\r\n
\r\n {this.state.modules.map(a => {\r\n return
\r\n

\"Icon\" {a.name}

\r\n

\r\n {a.isEnabled && {a.isActive ? \"Open\" : \"Include and Open\"}}\r\n {!a.isEnabled && inactive}\r\n
\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport md5 from 'md5';\r\nimport { Input, Button, Label, FormGroup, Row, Col } from 'reactstrap';\r\n\r\nexport class Verify extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = { ok: 0, password: '' };\r\n this.login = React.createRef();\r\n this.password = React.createRef();\r\n }\r\n componentDidMount() {\r\n var code = this.props.location.search.replace('?code=', '');\r\n this.check(code);\r\n }\r\n async check(code) {\r\n const response = await fetch('api/Account/verify', {\r\n method: 'POST',\r\n body: JSON.stringify({data: code}),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n var json = await response.json();\r\n this.setState({ ok: json.ok ? 1 : -1, code: code, password: json.password, message: json.message });\r\n }\r\n async apiloginas(name, pass, code) {\r\n if (name === undefined || name === '') {\r\n return;\r\n }\r\n if (pass === undefined || pass === '') {\r\n return;\r\n }\r\n pass = md5(pass);\r\n const response = await fetch('api/Account/loginas', {\r\n method: 'POST',\r\n body: JSON.stringify({ loginname: name, password: pass, code: code }), \r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n var json = await response.json();\r\n if (json.ok)\r\n window.location = '/';\r\n else\r\n this.setState({ ok: -1, message: json.message });\r\n }\r\n loginas = () => {\r\n this.apiloginas(this.login.current.value, this.password.current.value, this.state.code)\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.state.ok === 0 &&
Please wait...
}\r\n {this.state.ok === -1 &&
{this.state.message}
}\r\n {this.state.ok === 1 &&\r\n
\r\n
\r\n {this.state.message}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
}\r\n
\r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Modal, Button, ModalHeader, ModalFooter, ModalBody, Input, Label, Table } from 'reactstrap';\r\nimport { ModuleApi } from '../api/ModuleApi';\r\n\r\nexport class MPassword extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n data: [], editElement: {}, isLoaded: false, isNew: false, showModal: false };\r\n this.value = React.createRef();\r\n this.modelProperty = React.createRef();\r\n this.modelValue = React.createRef();\r\n this.modelGroup = React.createRef();\r\n }\r\n componentDidMount() { \r\n this.getAsync();\r\n }\r\n async getAsync() {\r\n\r\n var json = await ModuleApi.password.get();\r\n this.setState({ isNew: json.isNew });\r\n }\r\n async mergeAsync(id, name, value, group) {\r\n var json = await ModuleApi.password.merge(id, name, value, group, this.state.guid);\r\n if (json.ok) {\r\n var dd = this.state.data;\r\n if (id === 0) {\r\n dd.push({ id: json.id, name, value, group });\r\n }\r\n else {\r\n var di = dd.find(c => c.id === id);\r\n di.name = name;\r\n di.value = value;\r\n di.group = group;\r\n }\r\n this.setState({ data: dd, showModal: false });\r\n } \r\n }\r\n async removeAsync(id) {\r\n var json = await ModuleApi.password.delete(id, this.state.guid);\r\n if (json.ok) {\r\n var dd = this.state.data;\r\n dd.splice(dd.findIndex(c => c.id === id), 1);\r\n this.setState({ data: dd, showModal: false });\r\n } \r\n }\r\n async submitAsync(p) {\r\n var json = await ModuleApi.password.load(p);\r\n if (json.ok) {\r\n this.setState({ isLoaded: true, data: json.data, guid: json.guid });\r\n }\r\n }\r\n\r\n submit = (event) => {\r\n this.submitAsync(this.value.current.value);\r\n event.preventDefault();\r\n } \r\n mergeitem = () => {\r\n this.mergeAsync(this.state.editElement.id, this.modelProperty.current.value, this.modelValue.current.value, this.modelGroup.current.value);\r\n }\r\n removeItem = (id) => {\r\n const conf = window.confirm(`Do you want to remove item?`);\r\n if (conf) {\r\n this.removeAsync(id);\r\n }\r\n }\r\n showAddModal = (element) => {\r\n this.setState({ showModal: true, editElement: element });\r\n }\r\n hideModal = () => {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

\"password\"Password Saver

\r\n {!this.state.isLoaded &&\r\n
\r\n \r\n \r\n
\r\n }\r\n {this.state.isLoaded &&\r\n
\r\n this.showAddModal({ id: 0, name: '', value: '', group: '' })}>Add\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.data.map(c => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
PropertyValueGroup
{c.name}{c.value}{c.group} this.showAddModal(c)}>Edit this.removeItem(c.id)}>Remove
\r\n \r\n Modal title\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n \r\n
\r\n )\r\n }\r\n}","export class SettingsApi {\r\n static handleError = function (err) {\r\n console.warn(err);\r\n return new Response(JSON.stringify({\r\n ok: false,\r\n code: 400,\r\n message: 'Network Error'\r\n }));\r\n };\r\n\r\n static save = async (fname, sname, lname) => {\r\n var response = await (fetch('api/Account/save', {\r\n method: 'POST', // или 'PUT'\r\n body: JSON.stringify({ fname, sname, lname }),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).catch(SettingsApi.handleError));\r\n if (response.ok) {\r\n if (response.redirected)\r\n return window.location = '/';\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n }\r\n static get = async () => {\r\n var response = await (fetch('api/Account/get').catch(SettingsApi.handleError));\r\n if (response.ok) {\r\n if (response.redirected)\r\n return window.location = '/';\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Auth } from './Auth';\r\nimport { Label, FormGroup, Input, Col } from 'reactstrap';\r\nimport { SettingsApi } from './api/SettingsApi';\r\n\r\nexport class Settings extends Component {\r\n static displayName = Settings.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { uname: '', fname: '', sname: '', lname: '', message: '' };\r\n }\r\n\r\n componentDidMount() {\r\n this.loadContent();\r\n }\r\n loadContent = async () => {\r\n const json = await SettingsApi.get();\r\n this.setState({ ...json });\r\n }\r\n save = async () => {\r\n const json = await SettingsApi.save(this.state.fname, this.state.sname, this.state.lname);\r\n if (json.ok) {\r\n window.location.reload();\r\n }\r\n else {\r\n this.setState({ message: json.message });\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n

Settings

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.setState({ [v.currentTarget.id]: v.currentTarget.value })} />\r\n \r\n \r\n \r\n this.setState({ [v.currentTarget.id]: v.currentTarget.value })}/>\r\n \r\n \r\n \r\n this.setState({ [v.currentTarget.id]: v.currentTarget.value })}/>\r\n \r\n \r\n \r\n\r\n \r\n
{this.state.message}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\n\r\nexport class MExpenseGroupView extends React.Component {\r\n style = {\r\n fontSize: \"0.9em\",\r\n border: \"1px solid lightgray\",\r\n margin: \"-1px 0px 0px 0\",\r\n padding: \"2px 4px 2px 0\",\r\n display: \"flex\"\r\n }\r\n statusStyle = { \r\n margin: \"0 4px 0 -2px\",\r\n width: \"2px\"\r\n }\r\n render() {\r\n let status = '';\r\n if (this.props.content.isClosed) {\r\n status = 'bg-success';\r\n }\r\n let currentMoneyClass = '';\r\n if (this.props.content.currentMoney > this.props.content.planMoney) {\r\n currentMoneyClass = 'text-danger font-weight-bold';\r\n }\r\n let className = 'MExpenseGroupView';\r\n if (this.props.isSelected) {\r\n className += ' selected';\r\n } \r\n\r\n return (\r\n
this.props.onSelect(this.props.content)}>\r\n
\r\n
{this.props.content.name}
\r\n
\r\n {this.props.content.currentMoney} / {this.props.content.planMoney}\r\n
\r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\n\r\nexport class MExpenseCostView extends React.Component {\r\n style = {\r\n fontSize: \"0.9em\",\r\n border: \"1px solid lightgray\",\r\n margin: \"-1px 0px 0px 0\",\r\n padding: \"2px 4px 2px 0\",\r\n display: \"flex\"\r\n }\r\n statusStyle = { \r\n margin: \"0 4px 0 -2px\",\r\n width: \"2px\"\r\n }\r\n \r\n render() {\r\n let status = '';\r\n if (this.props.content.isClosed) {\r\n status = 'bg-success';\r\n }\r\n let currentMoneyClass = '';\r\n if (this.props.content.currentMoney > this.props.content.planMoney) {\r\n currentMoneyClass = 'text-danger font-weight-bold';\r\n }\r\n let className = 'MExpenseCostView';\r\n if (this.props.isSelected) {\r\n className += ' selected';\r\n } \r\n return (\r\n
this.props.onSelect(this.props.content)} >\r\n
\r\n
{this.props.content.name}
\r\n
\r\n {this.props.content.currentMoney} / {this.props.content.planMoney}\r\n
\r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Input, Button, Modal, ModalHeader, ModalBody, ModalFooter, FormGroup, Label } from 'reactstrap';\r\n\r\nexport class MExpenseAddCostItemModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { isOpen: this.props.isOpen, selectedDay: 0, currentDay: 1, startIndex: 1 };\r\n this.value = React.createRef();\r\n this.note = React.createRef();\r\n\r\n this.state.items = this.generateItems(1);\r\n }\r\n generateItems = (start) => {\r\n const count = 4;\r\n var items = Array(count).fill().map((_, idx) => {\r\n return {caption: start + idx}\r\n })\r\n return items;\r\n }\r\n daysInMonth = (month, year) => {\r\n return new Date(year, month, 0).getDate();\r\n } \r\n componentWillReceiveProps(props) {\r\n var dd = new Date(Date.parse(props.boardPeriod.substr(0, 10)));\r\n var curr = new Date();\r\n var mm = this.daysInMonth(dd.getMonth() + 1, dd.getFullYear());\r\n var currDay = curr.getDate();\r\n var startDay = Math.ceil(currDay / 3) * 3 - 2;\r\n if (currDay === 1)\r\n startDay = 1;\r\n if (startDay + 3 > mm)\r\n startDay = mm - 3;\r\n this.setState({\r\n isOpen: props.isOpen, items: this.generateItems(startDay),\r\n currentDay: currDay, selectedDay: currDay, startIndex: startDay, monthDays: mm,\r\n monthStamp: dd\r\n });\r\n }\r\n onOk = () => {\r\n if (!this.value.current.value)\r\n return;\r\n var stamp = new Date(this.state.monthStamp);\r\n stamp.setDate(this.state.selectedDay); \r\n this.props.onOk(stamp, parseFloat(this.value.current.value), this.note.current.value);\r\n }\r\n onCancel = () => {\r\n this.props.onCancel();\r\n } \r\n previous = () => {\r\n if (this.state.startIndex === 1)\r\n return;\r\n let nextIndex = this.state.startIndex - 3;\r\n if (nextIndex < 1)\r\n nextIndex = 1;\r\n this.setState({ startIndex: nextIndex, items: this.generateItems(nextIndex) });\r\n }\r\n next = () => {\r\n if (this.state.startIndex + 3 === this.state.monthDays)\r\n return;\r\n\r\n let nextIndex = this.state.startIndex + 3; \r\n if (nextIndex + 3 > this.state.monthDays)\r\n nextIndex = this.state.monthDays - 3;\r\n this.setState({ startIndex: nextIndex, items: this.generateItems(nextIndex) });\r\n }\r\n render() {\r\n return ( \r\n this.onCancel()}\r\n isOpen={this.state.isOpen}\r\n aria-labelledby=\"contained-modal-title-vcenter\" size=\"sm\" >\r\n Add Purchase\r\n \r\n \r\n \r\n
\r\n \r\n {this.state.items.map((item) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport class MExpenseCostItemView extends React.Component {\r\n style = {\r\n fontSize: \"0.9em\",\r\n border: \"1px solid lightgray\",\r\n borderTop: \"0\",\r\n borderLeft: \"0\",\r\n borderRight: \"0\",\r\n padding: \"2px 4px\",\r\n display: \"flex\",\r\n minWidth: '150px',\r\n gap: \"10px\"\r\n }\r\n statusStyle = { \r\n margin: \"0 4px 0 -2px\",\r\n width: \"2px\"\r\n }\r\n \r\n render() {\r\n var d = new Date( Date.parse(this.props.content.stamp));\r\n return (\r\n
\r\n\r\n
\r\n
{d.getDate()}
\r\n
\r\n
\r\n
{this.props.content.value} {this.props.content.note}
\r\n
\r\n\r\n
this.props.onDelete()}>x
\r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\n\r\nexport class MExpenseGraph extends React.Component {\r\n \r\n render() {\r\n var els = [...this.props.data];\r\n\r\n let style = { display: 'flex', height: \"100px\", gap: \"2px\"};\r\n return (\r\n
\r\n {els.map((a, index) => {\r\n return
\r\n })}\r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter, FormGroup, Label } from 'reactstrap';\r\n\r\nexport class MessageModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n title: props.title,\r\n message: props.message,\r\n type: props.type,\r\n isOpen: false\r\n };\r\n }\r\n componentWillReceiveProps(props) {\r\n this.setState({\r\n isOpen: props.isOpen,\r\n title: props.title,\r\n message: props.message,\r\n type: props.type\r\n });\r\n }\r\n onOk = () => {\r\n this.props.onOk();\r\n }\r\n onCancel = () => {\r\n this.props.onCancel();\r\n }\r\n\r\n render() {\r\n return (\r\n this.onCancel()}\r\n isOpen={this.state.isOpen}\r\n aria-labelledby=\"contained-modal-title-vcenter\" size=\"sm\" >\r\n {this.state.title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport { FormGroup, Button } from 'reactstrap';\r\nimport { MExpenseAddCostItemModal } from './MExpenseAddCostItemModal';\r\nimport { ModuleApi } from '../../api/ModuleApi';\r\nimport { MExpenseCostItemView } from './MExpenseCostItemView';\r\nimport { MExpenseGraph } from './MExpenseGraph';\r\nimport { MessageModal } from '../../Modals/MessageModal';\r\n\r\nexport class MExpenseCostEditView extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true, content: {}, editNameMode: false, editPlanMode: false, editCloseMode: false, editOftenUsedMode: false,\r\n isAddOpen: false,\r\n isDeleteOpen: false,\r\n deleteItem: undefined\r\n };\r\n \r\n }\r\n componentWillMount() {\r\n this.refresh(this.props.id);\r\n this.props.setClick(this.showAdd);\r\n this.props.addDeleteAction(this.showDelete);\r\n }\r\n componentWillReceiveProps(props) {\r\n this.setState({ editNameMode: false, editPlanMode: false, editCloseMode: false });\r\n if (props && (props.id !== this.state.content.id || this.state.isLoading === true)) {\r\n this.refresh(props.id); \r\n }\r\n }\r\n showAdd= () => {\r\n this.setState({ isAddOpen: true });\r\n }\r\n showDelete = () => {\r\n this.setState({ isDeleteOpen: true });\r\n }\r\n style = {\r\n fontSize: \"0.9em\",\r\n padding: \"2px 4px 2px 0\",\r\n display: \"flex\",\r\n flexDirection: 'column',\r\n minWidth: '70px'\r\n }\r\n statusStyle = { \r\n margin: \"0 4px 0 -2px\",\r\n width: \"2px\"\r\n }\r\n addPurchase = async (stamp, val, note) => {\r\n var res = await ModuleApi.expense.addPurchase(this.props.id, stamp, val, note);\r\n if (res.ok) {\r\n this.setState({ isLoading: true, isAddOpen: false, isDeleteOpen: false, deleteItem: undefined });\r\n this.props.afterAnyAction('addpurchase');\r\n // this.refresh(this.props.id);\r\n }\r\n }\r\n deleteCost = async () => {\r\n var res = await ModuleApi.expense.deleteCost(this.state.content.id);\r\n if (res.ok) {\r\n this.setState({ isLoading: true, isAddOpen: false, isDeleteOpen: false, deleteItem: undefined });\r\n this.props.afterAnyAction('delete');\r\n }\r\n }\r\n deleteCostItem = async () => {\r\n var res = await ModuleApi.expense.deleteCostItem(this.state.deleteItem.id);\r\n if (res.ok) {\r\n this.setState({ isLoading: true, isAddOpen: false, isDeleteOpen: false, deleteItem: undefined });\r\n this.props.afterAnyAction('deleteitem');\r\n }\r\n }\r\n refresh = async (id) => {\r\n this.setState({ isLoading: true, isAddOpen: false, isDeleteOpen: false, deleteItem: undefined })\r\n var json = await ModuleApi.expense.cost(id);\r\n if (json.ok) {\r\n this.setState({ content: json.content, isLoading: false })\r\n }\r\n }\r\n \r\n render() {\r\n const { name, groupName, planMoney, isClosed, currentMoney, items, isOftenUsed, graphItems } = this.state.content;\r\n var removeItemText = '';\r\n if (this.state.deleteItem !== undefined) {\r\n var d = new Date(Date.parse(this.state.deleteItem.stamp));\r\n removeItemText = this.state.deleteItem.value +' for '+ d.getDate() + ' ' + d.toLocaleString('default', { month: 'long' });\r\n }\r\n let currentMoneyClass = '';\r\n if (currentMoney > planMoney) {\r\n currentMoneyClass = 'text-danger font-weight-bold';\r\n }\r\n return (\r\n
\r\n {this.state.isLoading &&
Please wait...
}\r\n {!this.state.isLoading &&
\r\n
\r\n
Name: {groupName} / {name}
\r\n
Expense Plan: {currentMoney} / {planMoney}
\r\n
Status: {isClosed ? closed : open}
\r\n
Favourite: {isOftenUsed ? yes : no}
\r\n \r\n \r\n \r\n\r\n \r\n \r\n this.addPurchase(stamp, val, note)}\r\n onCancel={() => this.setState({ isAddOpen: false})}\r\n />\r\n this.deleteCost()}\r\n onCancel={() => this.setState({ isDeleteOpen: false })}\r\n />\r\n this.deleteCostItem()}\r\n onCancel={() => this.setState({ deleteItem: undefined })}\r\n />\r\n \r\n
\r\n
\r\n {items.map(q => {\r\n\r\n return this.setState({ deleteItem: q })} />\r\n })}\r\n
\r\n
}\r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Input, Button, Modal, ModalHeader, ModalBody, ModalFooter, FormGroup, Label, DropdownItem, DropdownMenu, DropdownToggle, ButtonDropdown } from 'reactstrap';\r\n\r\nexport class MExpenseAddCostModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpen: this.props.isOpen, selGroup: { name: '', id: null }, dropDownOpen: false, items: [] };\r\n this.name = React.createRef();\r\n this.value = React.createRef();\r\n }\r\n componentWillReceiveProps(props) {\r\n var selG = props.selectedGroup;\r\n if (selG.id === undefined)\r\n selG = props.items[0];\r\n this.setState({\r\n isOpen: props.isOpen,\r\n items: props.items,\r\n selGroup: selG ?? {}\r\n });\r\n }\r\n onOk = () => {\r\n if (this.state.selGroup.id === undefined\r\n || !this.name.current.value\r\n || !this.value.current.value)\r\n return;\r\n this.props.onOk(this.state.selGroup.id, this.name.current.value, parseFloat(this.value.current.value));\r\n }\r\n onCancel = () => {\r\n this.props.onCancel();\r\n }\r\n select = (el) => {\r\n this.setState({ selGroup: el });\r\n }\r\n\r\n render() {\r\n return (\r\n this.onCancel()}\r\n isOpen={this.state.isOpen}\r\n aria-labelledby=\"contained-modal-title-vcenter\" size=\"sm\" >\r\n Add Cost\r\n \r\n \r\n \r\n this.setState({ dropDownOpen: !this.state.dropDownOpen })}>\r\n \r\n \r\n \r\n {this.state.items.map(a => {\r\n return this.select(a)}>{a.name}\r\n \r\n })} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Input, Button, Modal, ModalHeader, ModalBody, ModalFooter, FormGroup, Label } from 'reactstrap';\r\n\r\nexport class MExpenseAddGroupModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpen: this.props.isOpen };\r\n this.name = React.createRef();\r\n }\r\n componentWillReceiveProps(props) {\r\n this.setState({\r\n isOpen: props.isOpen,\r\n value: props.value\r\n });\r\n }\r\n onOk = () => {\r\n if (this.name.current.value.length > 0)\r\n this.props.onOk(this.name.current.value);\r\n }\r\n onCancel = () => {\r\n this.props.onCancel();\r\n }\r\n render() {\r\n return (\r\n this.onCancel()}\r\n isOpen={this.state.isOpen}\r\n aria-labelledby=\"contained-modal-title-vcenter\" size=\"sm\" >\r\n Add Group\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Input, Button, Modal, ModalHeader, ModalBody, ModalFooter, FormGroup, Label, InputGroup } from 'reactstrap';\r\n\r\nexport class MExpenseEditCostModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpen: this.props.isOpen, content: {} };\r\n this.name = React.createRef();\r\n this.value = React.createRef();\r\n this.isclosed = React.createRef();\r\n }\r\n componentWillReceiveProps(props) {\r\n this.setState({\r\n isOpen: props.isOpen,\r\n content: props.content\r\n });\r\n }\r\n onOk = () => {\r\n this.props.onOk(this.name.current.value, parseFloat(this.value.current.value), this.isclosed.current.checked);\r\n }\r\n onCancel = () => {\r\n this.props.onCancel();\r\n }\r\n\r\n render() {\r\n return (\r\n this.onCancel()}\r\n isOpen={this.state.isOpen}\r\n aria-labelledby=\"contained-modal-title-vcenter\" size=\"sm\" >\r\n Edit Cost\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter, ButtonGroup } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport class MExpenseMonthSelectorModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpen: this.props.isOpen,\r\n board: {}\r\n };\r\n }\r\n componentWillReceiveProps(props) {\r\n this.setState({ isOpen: props.isOpen, board: props.board ?? {} });\r\n }\r\n onCancel = () => {\r\n this.props.onCancel();\r\n }\r\n onSelect = (boardid) => {\r\n this.props.onSelect(boardid);\r\n }\r\n\r\n render() {\r\n var boardStamp = new Date();\r\n if (this.state.board.id)\r\n boardStamp = new Date(Date.parse(this.state.board.stamp));\r\n console.log(boardStamp);\r\n var prev;\r\n if (this.state.board && this.state.board.previous)\r\n prev = new Date(Date.parse(this.state.board.previous.stamp));\r\n var next;\r\n if (this.state.board && this.state.board.next)\r\n next = new Date(Date.parse(this.state.board.next.stamp));\r\n var active;\r\n if (this.state.board && this.state.board.active)\r\n active = new Date(Date.parse(this.state.board.active.stamp));\r\n if ((this.state.board && this.state.board.previous && this.state.board && this.state.board.previous.isActual)\r\n || (this.state.board && this.state.board.next && this.state.board.next.isActual)\r\n || (this.state.board.id && this.state.board.isActual))\r\n active = undefined;\r\n\r\n var currentColor = 'warning';\r\n if (this.state.board.id && this.state.board.isActual)\r\n currentColor = 'success';\r\n var prevColor = 'warning';\r\n if (prev && this.state.board.previous.isActual) {\r\n currentColor = 'primary';\r\n prevColor = 'success';\r\n }\r\n var nextColor = 'warning';\r\n if (next && this.state.board.next.isActual) {\r\n nextColor = 'success';\r\n currentColor = 'warning';\r\n }\r\n return (\r\n this.onCancel()}\r\n isOpen={this.state.isOpen}\r\n aria-labelledby=\"contained-modal-title-vcenter\" size=\"sm\" >\r\n Select Board\r\n \r\n \r\n {this.state.board.previous &&\r\n \r\n }\r\n {this.state.board.id !== undefined &&\r\n \r\n }\r\n {this.state.board.next && this.state.board.next.id === 0 &&\r\n \r\n }\r\n {this.state.board.next && this.state.board.next.id > 0 &&\r\n \r\n }\r\n \r\n {active && this.onSelect(this.state.board.active.id)}>Go to actual {active.toLocaleDateString('en-EN', { month: 'long' })} {active.getFullYear()}}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter, FormGroup, Label, Input } from 'reactstrap';\r\n\r\nexport class MExpenseMonthEditModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpen: this.props.isOpen,\r\n board: {}\r\n };\r\n this.mainMoney = React.createRef();\r\n this.prevMoney = React.createRef();\r\n }\r\n componentWillReceiveProps(props) {\r\n this.setState({ isOpen: props.isOpen, board: props.board ?? {} });\r\n }\r\n onCancel = () => {\r\n this.props.onCancel();\r\n }\r\n onOk = () => {\r\n this.props.onOk(parseFloat(this.mainMoney.current.value), parseFloat(this.prevMoney.current.value));\r\n }\r\n\r\n render() {\r\n var boardStamp = new Date();\r\n if (this.state.board.id)\r\n boardStamp = new Date(Date.parse(this.state.board.stamp));\r\n console.log(boardStamp); \r\n return (\r\n this.onCancel()}\r\n isOpen={this.state.isOpen}\r\n aria-labelledby=\"contained-modal-title-vcenter\" size=\"sm\" >\r\n Edit Board {boardStamp.toLocaleDateString('en-EN', { month: 'long' })}, {boardStamp.getFullYear()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport { ModuleApi } from '../../api/ModuleApi';\r\nimport { MExpenseGroupView } from './MExpenseGroupView';\r\nimport { MExpenseCostView } from './MExpenseCostView';\r\nimport { MExpenseCostEditView } from './MExpenseCostEditView';\r\nimport { Dropdown, DropdownMenu, DropdownToggle, DropdownItem, NavLink } from 'reactstrap';\r\nimport { MExpenseAddCostModal } from './MExpenseAddCostModal';\r\nimport { MExpenseAddGroupModal } from './MExpenseAddGroupModal';\r\nimport { MessageModal } from '../../Modals/MessageModal';\r\nimport { MExpenseEditCostModal } from './MExpenseEditCostModal';\r\nimport { MExpenseMonthSelectorModal } from './Modals/MExpenseMonthSelectorModal';\r\nimport { MExpenseMonthEditModal } from './Modals/MExpenseMonthEditModal';\r\n\r\nexport class MExpense extends React.Component {\r\n columnTitleStyle = {\r\n fontSize: \"0.9em\",\r\n margin: \"auto\"\r\n }\r\n columnHeaderStyle = {\r\n border: \"1px solid #666\",\r\n backgroundColor: '#666',\r\n color: 'white',\r\n fontWeight: \"bold\",\r\n borderRadius: '12px 0 0 0',\r\n padding: \"1px 0 1px 0\",\r\n display: \"flex\"\r\n }\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n board: {}, selectMonthMode: false, editMonthMode: false, isLoaded: false, groupMenuOpened: false, costMenuOpened: false, costItemMenuOpened: false, groups: [],\r\n costs: [], selectedGroup: {}, editGroup: {}, isDeleteBoardOpen: false, boardMenuOpened: false, isEditCostOpen: false, selectedCost: {}, isCostLoaded: false, isAddCostOpen: false, isAddGroupOpen: false, isDeleteGroupOpen: false\r\n };\r\n this.selectedStamp = React.createRef();\r\n }\r\n componentDidMount() { \r\n this.getAsync();\r\n }\r\n async getAsync(id) {\r\n\r\n var json = await ModuleApi.expense.get(id);\r\n if (!json.ok) {\r\n this.setState({ error: json.message, isLoaded: false, selectedCost: {} });\r\n }\r\n else {\r\n this.setState({\r\n board: json.board,\r\n groups: json.groups,\r\n costs: json.costs,\r\n isLoaded: true,\r\n selectMonthMode: false,\r\n editMonthMode: false,\r\n selectedCost: {}\r\n });\r\n }\r\n }\r\n selectGroup = async (obj) => {\r\n if (this.state.selectedGroup.id === obj.id)\r\n obj = {};\r\n this.setState({ selectedGroup: obj, selectedCost: {} });\r\n }\r\n selectCost = async (obj) => {\r\n console.log('selectCost', obj);\r\n this.setState({ selectedCost: obj });\r\n }\r\n selectCostId = async (id) => {\r\n console.log('selectCostId', id);\r\n var obj = this.state.costs.find(c => c.id === id);\r\n this.selectCost(obj);\r\n }\r\n addCost = async (groupid, name, plan) => {\r\n var res = await ModuleApi.expense.mergeCost(0, groupid, name, plan, false);\r\n if (res.ok) {\r\n this.setState({ isAddCostOpen: false });\r\n await this.getAsync(this.state.board.id);\r\n this.selectCostId(res.id);\r\n }\r\n }\r\n editCost = async (name, plan, isclosed) => {\r\n var cost = this.state.selectedCost;\r\n if (cost === undefined)\r\n return;\r\n\r\n var res = await ModuleApi.expense.mergeCost(cost.id, cost.groupId, name, plan, isclosed);\r\n if (res.ok) {\r\n this.setState({ isEditCostOpen: false});\r\n this.getAsync(this.state.board.id);\r\n this.selectCost(cost);\r\n }\r\n }\r\n refreshCostCurrentValue = async (id) => {\r\n var json = await ModuleApi.expense.cost(id);\r\n if (json.ok) {\r\n var costs = this.state.costs;\r\n var c = costs.find(c => c.id === id);\r\n console.log('refreshCostCurrentValue', c, json.content);\r\n c.currentMoney = json.content.currentMoney;\r\n this.setState({ costs: costs });\r\n }\r\n }\r\n mergeGroup = async (name) => {\r\n var res = await ModuleApi.expense.mergeGroup(this.state.board.id, this.state.editGroup.id, name);\r\n if (res.ok) {\r\n this.setState({ isAddGroupOpen: false });\r\n this.getAsync(this.state.board.id);\r\n }\r\n }\r\n mergeBoard = async (money, prevMoney) => {\r\n var res = await ModuleApi.expense.mergeBoard(this.state.board.id, money, prevMoney);\r\n if (res.ok) {\r\n this.getAsync(this.state.board.id);\r\n }\r\n }\r\n //editGroup = async (name) => {\r\n // if (this.state.selectedGroup.id === undefined)\r\n // return;\r\n\r\n // var res = await ModuleApi.expense.editGroup(this.state.selectedGroup.id, name);\r\n // if (res.ok) {\r\n // this.setState({ isAddGroupOpen: false });\r\n // this.getAsync(this.state.board.id);\r\n // }\r\n //}\r\n deleteGroup = async () => {\r\n var res = await ModuleApi.expense.deleteGroup(this.state.selectedGroup.id);\r\n if (res.ok) {\r\n this.setState({ isDeleteGroupOpen: false });\r\n this.getAsync(this.state.board.id);\r\n }\r\n }\r\n deleteBoard = async () => {\r\n var res = await ModuleApi.expense.deleteBoard(this.state.board.id);\r\n if (res.ok) {\r\n this.setState({ isDeleteBoardOpen: false });\r\n this.getAsync();\r\n }\r\n }\r\n showDelete = async (group) => {\r\n if (this.state.selectedGroup.id === undefined)\r\n return;\r\n this.setState({ isDeleteGroupOpen: true });\r\n }\r\n //event.preventDefault();\r\n\r\n render() {\r\n var boardStamp = new Date(Date.parse(this.state.board.stamp));\r\n var removeGroupText = '';\r\n if (this.state.selectedGroup.id !== undefined) {\r\n removeGroupText = 'Remove group: ' + this.state.selectedGroup.name+'?';\r\n }\r\n var monthImg = 'winter1';\r\n var monthcolor = '#009feb';\r\n var m = boardStamp.getMonth();\r\n if (m >= 2 && m <= 4) {\r\n monthImg = 'spring1';\r\n monthcolor = '#ff6f6c';\r\n }\r\n else if (m >= 5 && m <= 7) {\r\n monthImg = 'summer1';\r\n monthcolor = '#ffa032';\r\n }\r\n else if (m >= 8 && m <= 10) {\r\n monthImg = 'autumn1';\r\n monthcolor = '#ff8450';\r\n }\r\n var groupMoney = this.state.groups.reduce((a, b) => a + b.planMoney, 0)\r\n var extraBadMoney = this.state.groups.reduce((a, b) => a + ((b.currentMoney > b.planMoney) ? b.currentMoney - b.planMoney : 0), 0)\r\n if (extraBadMoney > 0) {\r\n extraBadMoney = \"+\" + extraBadMoney;\r\n }\r\n else\r\n extraBadMoney = \"\";\r\n var sumMoney = this.state.board.mainMoney + this.state.board.prevMoney \r\n return (\r\n
\r\n {!this.state.isLoaded &&\r\n
\r\n

Daily Expenses

\r\n
{this.state.error ?? 'Please wait...'}
\r\n
\r\n }\r\n\r\n {this.state.isLoaded &&\r\n
\r\n

\"expense\"Daily Expenses

\r\n
\r\n

\r\n
\r\n \r\n \"\" {boardStamp.toLocaleDateString('en-EN', { month: 'long' }).toUpperCase()}, {boardStamp.getFullYear()}\r\n \r\n
\r\n Money on month: {sumMoney} ({this.state.board.prevMoney}), Plan: {groupMoney} {extraBadMoney && ({extraBadMoney})}\r\n
\r\n
\r\n \r\n this.setState({ selectMonthMode: false})}\r\n onSelect={(id) => this.getAsync(id)}\r\n /> \r\n\r\n this.setState({ editMonthMode: false })}\r\n onOk={(m, p) => {\r\n this.mergeBoard(m, p)\r\n }\r\n }\r\n /> \r\n

\r\n
\r\n this.setState({ boardMenuOpened: !this.state.boardMenuOpened })}\r\n isOpen={this.state.boardMenuOpened}\r\n >\r\n •••\r\n \r\n this.setState({ selectMonthMode: true })}>Select\r\n this.setState({ editMonthMode: true })}>Edit\r\n \r\n this.setState({ isDeleteBoardOpen: true })}>Delete\r\n \r\n \r\n this.deleteBoard()}\r\n onCancel={() => this.setState({ isDeleteBoardOpen: false })}\r\n />\r\n
\r\n
\r\n
\r\n }\r\n \r\n {this.state.isLoaded &&\r\n\r\n
\r\n
\r\n
\r\n GROUPS\r\n this.setState({ groupMenuOpened: !this.state.groupMenuOpened })}\r\n isOpen={this.state.groupMenuOpened}\r\n >\r\n •••\r\n \r\n this.setState({ isAddGroupOpen: true, editGroup: { id: 0 } })}>Add\r\n {this.state.selectedGroup.id !== undefined && this.setState({ isAddGroupOpen: true, editGroup: this.state.selectedGroup })}>Edit}\r\n {this.state.selectedGroup.id !== undefined && }\r\n {this.state.selectedGroup.id !== undefined && this.showDelete()}>Delete}\r\n \r\n \r\n this.mergeGroup(name)}\r\n onCancel={() => this.setState({ isAddGroupOpen: false })}\r\n />\r\n this.deleteGroup()}\r\n onCancel={() => this.setState({ isDeleteGroupOpen: false })}\r\n />\r\n
\r\n {this.state.groups.map(q => {\r\n return this.selectGroup(obj)} />\r\n }\r\n )} \r\n
\r\n
\r\n
\r\n COSTS\r\n {(this.state.groups.length > 0 || this.state.selectedCost.id !== undefined) &&\r\n this.setState({ costMenuOpened: !this.state.costMenuOpened })}\r\n isOpen={this.state.costMenuOpened}>\r\n •••\r\n \r\n {this.state.groups.length > 0 && this.setState({ isAddCostOpen: true })}>Add}\r\n {this.state.selectedCost.id !== undefined && this.setState({ isEditCostOpen: true })}>Edit}\r\n {this.state.selectedCost.id !== undefined && }\r\n {this.state.selectedCost.id !== undefined && this._deleteCost()}>Delete}\r\n \r\n }\r\n\r\n this.addCost(groupid, name, plan)}\r\n onCancel={() => this.setState({ isAddCostOpen: false })}\r\n />\r\n\r\n this.editCost(id, name, plan, isclosed)}\r\n onCancel={() => this.setState({ isEditCostOpen: false })}\r\n />\r\n
\r\n {this.state.costs.filter(a => this.state.selectedGroup.id === undefined\r\n || a.groupId === this.state.selectedGroup.id).map(q => {\r\n return this.selectCost(obj)} />\r\n }\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n ACTIVE COST\r\n {this.state.selectedCost.id > 0 &&\r\n this.setState({ costItemMenuOpened: !this.state.costItemMenuOpened })}\r\n isOpen={this.state.costItemMenuOpened}>\r\n •••\r\n \r\n this._showAdd()}>Add purchase\r\n \r\n \r\n }\r\n
\r\n {this.state.selectedCost.id === undefined && \r\n Please select any cost}\r\n {this.state.selectedCost.id !== undefined &&\r\n { this._showAdd = action }}\r\n addDeleteAction={action => { this._deleteCost = action }}\r\n afterAnyAction={async (name) => \r\n {\r\n //if (name === 'delete') {\r\n // this.setState({ selectedCost: {}});\r\n //}\r\n var id = this.state.selectedCost.id;\r\n await this.getAsync(this.state.board.id);\r\n if (name !== 'delete') {\r\n this.selectCostId(id);\r\n }\r\n }} id={this.state.selectedCost.id} />\r\n }\r\n \r\n
\r\n
\r\n }\r\n \r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { ModuleApi } from '../../api/ModuleApi';\r\nimport { Table, Badge } from 'reactstrap';\r\n\r\nexport class MGames extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { error: '', isLoaded: false, raiting: [], gamepath: '', games: [] };\r\n }\r\n componentDidMount() {\r\n this.getAsync();\r\n }\r\n async getAsync() {\r\n var json = await ModuleApi.games.get();\r\n if (!json.ok) {\r\n this.setState({ error: json.message, isLoaded: false });\r\n }\r\n else {\r\n console.log(json);\r\n this.setState({\r\n raiting: json.raiting,\r\n gamespath: json.gamespath,\r\n games: json.games,\r\n isLoaded: true,\r\n });\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {!this.state.isLoaded &&\r\n
\r\n

Table Games

\r\n
{this.state.error ?? 'Please wait...'}
\r\n
\r\n }\r\n\r\n {this.state.isLoaded &&\r\n
\r\n

\"games\"Table Games

\r\n
Available games: {this.state.games.map(c => {c})}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.raiting.map(c => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
Game NameRaiting
{c.name}{c.raiting}
\r\n
\r\n
\r\n }\r\n\r\n
\r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/Home';\r\nimport { Verify } from './components/Verify';\r\nimport { MPassword } from './components/modules/MPassword';\r\nimport { Settings } from './components/Settings';\r\nimport { MExpense } from './components/modules/MExpense/MExpense';\r\nimport { MGames } from './components/modules/MGames/MGames';\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render () {\r\n return (\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n"],"sourceRoot":""}