{"version":3,"sources":["components/CUNotFound.js","utils.js","components/Header.js","components/ui/TextFieldCustom.js","components/ui/SelectFieldCustom.js","components/ui/PlacesAutocomplete.js","components/FormPersonalDetails.js","components/ui/CheckboxCustom.js","components/FormLoanDetails.js","components/ui/SplitButton.js","components/ui/AddressAutocomplete.js","components/financials/FormAssets.js","components/financials/FormLiabilities.js","components/TermsDialog.js","components/financials/FormEmployments.js","components/FormFinancialsDetails.js","components/Complete.js","components/ui/ProductCard.js","components/LoanProducts.js","components/Welcome.js","hooks/useSubmitApplication.js","components/ui/ErrorMessage.js","FormConsts.js","components/MultiStepForm.js","App.js","reportWebVitals.js","i18n.js","index.js"],"names":["CUNotFound","className","src","alt","getCuCode","URL","window","location","href","searchParams","get","checkDate","dateType","date","today","Date","eighteenYearsAgo","getFullYear","getMonth","getDate","userDate","now","checkName","name","test","checkAccents","word","accented","forEach","acc","toLowerCase","includes","checkSpecialChars","bindForm","setValue","data","length","applicant","i","firstName","lastName","middleName","phone","dateOfBirth","email","sin","memberKey","address","city","occupationType","pobox","postalCode","province","since","unit","employments","employer","occupation","status","earning","assets","asset","j","type","value","id","liabilities","lib","payment","Header","i18n","useTranslation","cuCode","logoUrl","style","justifyContent","Button","color","onClick","language","changeLanguage","marginRight","PostalCodeFormat","props","inputRef","other","ref","inputElement","mask","pipe","conformedValue","toUpperCase","showMask","SinFormat","TextFieldCustom","meta","useController","useFormContext","control","formState","error","errors","errorText","invalid","message","inputProps","prefix","startAdornment","InputAdornment","position","readOnly","as","format","customInput","TextField","defaultValue","fullWidth","variant","size","helperText","money","thousandSeparator","onValueChange","onChange","InputProps","number","isAllowed","postalcode","inputComponent","SelectFieldCustom","trigger","items","label","required","onSelectedChange","FormControl","minWidth","InputLabel","render","Select","e","map","item","MenuItem","FormHelperText","PlacesAutocomplete","index","React","useState","options","setOptions","usePlacesAutocomplete","requestOptions","componentRestrictions","country","debounce","suggestions","clearSuggestions","methodes","valueOpt","setvalueOpt","handleInput","v","reason","target","newOptions","Autocomplete","autoComplete","getOptionLabel","option","structured_formatting","main_text","filterOptions","x","onInputChange","includeInputInList","freeSolo","renderInput","params","shouldValidate","event","newValue","street","secondary_text","replace","split","getGeocode","description","then","results","getZipCode","renderOption","Grid","container","alignItems","xs","fontWeight","Typography","FormPersonalDetails","t","fields","useFieldArray","shouldUnregister","provincesItems","returnObjects","occupanttype","spacing","md","maxLength","InputLabelProps","shrink","poBox","occupationtype","CheckBoxCustom","FormControlLabel","Checkbox","checked","FormLoanDetails","getValues","watch","values","periodicPaymt","setPeriodicPaymt","ratesItems","setRatesItems","append","remove","CU_CODE","isMortgage","loan","isLineOfCredit","isAuthorizedoverDraft","rates","loanPurpose","disableCalculate","rateText","rateTextFr","showPayment","watchAmount","watchTerm","watchFrequency","watchAmortization","useEffect","tempRates","filter","r","product","isPromo","rateid","descFr","desc","getTermAndInterestRate","rate","term","amortization","termSelect","paymentfreq","frequency","interestRate","fetch","process","amount","res","json","rateId","find","formattedValue","floatValue","textAlign","gender","Box","mb","SplitButton","open","setOpen","anchorRef","useRef","selectedIndex","setSelectedIndex","handleClose","current","contains","ButtonGroup","aria-label","disableElevation","bind","this","aria-controls","undefined","aria-expanded","aria-haspopup","prevOpen","Popper","anchorEl","role","transition","disablePortal","zIndex","TransitionProps","placement","Grow","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","selected","handleMenuItemClick","AddressAutocomplete","terms","console","log","primaryName","substring","lastIndexOf","FormAssets","indexApp","assetsFields","assetsAppend","assetsRemove","vehicledFields","vehiclesAppend","vehiclesRemove","propertyFields","propertyAppend","propertyRemove","assettype","realestatetype","component","pb","indexAss","IconButton","vehicle","indexVehicle","year","make","model","property","indexprop","longAddress","btnType","FormLiabilities","liabilitiesFields","liabilitiesAppend","liabilitiesRemove","liabilitytype","liability","indexLib","balance","DialogTitle","withStyles","theme","root","margin","padding","closeButton","right","top","palette","grey","children","classes","onClose","disableTypography","DialogContent","MuiDialogContent","TermsDialog","text","Dialog","aria-labelledby","dividers","fontSize","dangerouslySetInnerHTML","__html","FormEmployments","employeestatus","Divider","employment","indexEmp","empStatus","FormEmployment","unregister","applicantsFields","checkedAgree","state","setState","openTermsDialog","setOpenTermsDialog","branches","Disclaimer","DisclaimerFr","placeholder","multiline","rows","Link","preventDefault","Complete","msg","msgFr","Alert","ProductCard","title","onProductClick","xmlns","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","x1","y1","x2","y2","LoanProduct","products","setSelected","promos","setPromos","handelProductClick","restLoanValues","a","cssGridCols","p","Welcome","loantype","homePageTitle1","homePageTitle2","homePageTitle1Fr","homePageTitle2Fr","useSubmitApplication","url","isLoading","setIsLoading","setError","lang","method","headers","body","JSON","stringify","response","ok","ErrorMessage","icon","colorClass","phoneRegExp","formDefaultValues","purpose","fundsNeededDate","coBorrower","comment","branch","isMultiBranch","applicants","useStyles","makeStyles","buttonProgress","blue","left","marginTop","marginLeft","getStepContent","step","MultiStepForm","activeStep","setActiveStep","steps","mobileScreen","useMediaQuery","btnNextRef","sumbit","errorFetchParams","setErrorFetchParams","completedFormMsg","setCompletedFormMsg","completedFormMsgFr","setCompletedFormMsgFr","onSubmit","setData","currentValidationSchema","requiredMsg","yup","of","shape","matches","when","is","oneOf","validationSchema","methods","useForm","defaultValues","resolver","yupResolver","mode","handleSubmit","reset","handleNext","prevActiveStep","fetchMember","settings","localStorage","clear","token","enableT24","setItem","member","jwt_decode","languageCode","Authorization","getItem","containerNO","institutionCode","Message","Promise","reject","catch","errorMessage","statusText","Error","addResourceBundle","completedFormText","completedFormTextFr","fetchAppParams","on","lng","LinearProgress","Stepper","backgroundColor","Step","StepLabel","button","minHeight","disabled","CircularProgress","customTheme","createMuiTheme","typography","subtitle2","h6","primary","main","overrides","MuiInputLabel","outlined","paddingLeft","paddingRight","App","ThemeProvider","parent","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","use","Backend","initReactI18next","init","fallbackLng","debug","whitelist","interpolation","escapeValue","backend","loadPath","document","documentElement","setAttribute","ReactDOM","StrictMode","fallback","getElementById"],"mappings":"2OAkBeA,MAhBf,WACI,OACI,qBAAKC,UAAU,4BAAf,SACI,sBAAKA,UAAU,+BAAf,UACI,qBAAKA,UAAU,sBAAf,8DAGA,qEACA,qBAAKA,UAAU,wBAAf,SACI,qBAAKC,IAAI,sBAAsBC,IAAI,OAAOF,UAAU,iBCX3DG,EAAY,WAErB,OADe,IAAIC,IAAIC,OAAOC,SAASC,MAAMC,aAC/BC,IAAI,OAoBTC,EAAY,SAACC,GACtB,MAAiB,aAAbA,EACO,SAACC,GACJ,IAAMC,EAAQ,IAAIC,KACZC,EAAmB,IAAID,KAAKD,EAAMG,cAAgB,GAAIH,EAAMI,WAAYJ,EAAMK,WAC9EC,EAAW,IAAIL,KAAKF,GAC1B,OAAOO,GAAYJ,GAAoBI,EAAW,IAAIL,KAAK,KAAM,EAAG,IAGtD,UAAbH,EACE,SAACC,GAAD,OAAU,IAAIE,KAAKF,GAAQ,IAAIE,KAAK,KAAM,GAAI,KAAO,IAAIA,KAAKF,IAAS,IAAIE,KAAKA,KAAKM,MAAQ,QAE7F,SAACR,GAAD,OAAU,IAAIE,KAAKF,GAAQ,IAAIE,KAAK,KAAM,GAAI,KAAO,IAAIA,KAAKF,GAAQ,IAAIE,KAAK,KAAM,EAAG,KAG1FO,EAAY,SAACC,GACtB,OAAQ,KAAKC,KAAKD,IAGTE,EAAe,SAACC,GACzB,IACIC,GAAW,EAKf,MANgB,CAAC,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,OAAI,QAEzEC,SAAQ,SAAAC,GACRH,EAAKI,cAAcC,SAASF,KAC5BF,GAAW,OAEXA,GAGCK,EAAoB,SAACN,GAC9B,OAAQ,kBAAkBF,KAAKE,IAGtBO,EAAW,SAACC,EAAUC,GAC1BA,IACDA,EAAKC,OAAS,GACdF,EAAS,mBAAmB,GAEhCC,EAAKP,SAAQ,SAACS,EAAWC,GACrBJ,EAAS,cAAD,OAAeI,EAAf,eAA+BD,EAAUE,WAAa,IAC9DL,EAAS,cAAD,OAAeI,EAAf,cAA8BD,EAAUG,UAAY,IAC5DN,EAAS,cAAD,OAAeI,EAAf,gBAAgCD,EAAUI,YAAc,IAChEP,EAAS,cAAD,OAAeI,EAAf,WAA2BD,EAAUK,OAAS,IACtDR,EAAS,cAAD,OAAeI,EAAf,iBAAiCD,EAAUM,aAAe,IAClET,EAAS,cAAD,OAAeI,EAAf,WAA2BD,EAAUO,OAAS,IACtDV,EAAS,cAAD,OAAeI,EAAf,SAAyBD,EAAUQ,KAAO,IAClDX,EAAS,cAAD,OAAeI,EAAf,eAA+BD,EAAUS,WAAa,IAC9DZ,EAAS,cAAD,OAAeI,EAAf,sBAAsCD,EAAUU,QAAQxC,UAAY,IAC5E2B,EAAS,cAAD,OAAeI,EAAf,kBAAkCD,EAAUU,QAAQC,MAAQ,IACpEd,EAAS,cAAD,OACUI,EADV,4BAEJD,EAAUU,QAAQE,gBAAkB,IAExCf,EAAS,cAAD,OAAeI,EAAf,mBAAmCD,EAAUU,QAAQG,OAAS,IACtEhB,EAAS,cAAD,OAAeI,EAAf,wBAAwCD,EAAUU,QAAQI,YAAc,IAChFjB,EAAS,cAAD,OAAeI,EAAf,sBAAsCD,EAAUU,QAAQK,UAAY,IAC5ElB,EAAS,cAAD,OAAeI,EAAf,mBAAmCD,EAAUU,QAAQM,OAAS,IACtEnB,EAAS,cAAD,OAAeI,EAAf,kBAAkCD,EAAUU,QAAQO,MAAQ,IAEpEpB,EAAS,cAAD,OACUI,EADV,6BAEJD,EAAUkB,YAAY,GAAGC,UAAY,IAEzCtB,EAAS,cAAD,OACUI,EADV,+BAEJD,EAAUkB,YAAY,GAAGE,YAAc,IAE3CvB,EAAS,cAAD,OAAeI,EAAf,0BAA0CD,EAAUkB,YAAY,GAAGb,OAAS,IACpFR,EAAS,cAAD,OAAeI,EAAf,0BAA0CD,EAAUkB,YAAY,GAAGF,OAAS,IACpFnB,EAAS,cAAD,OACUI,EADV,2BAEJD,EAAUkB,YAAY,GAAGG,QAAU,IAEvCxB,EAAS,cAAD,OACUI,EADV,4BAEJD,EAAUkB,YAAY,GAAGI,SAAW,IAGpCtB,EAAUuB,OAAOxB,OAAS,GAC1BC,EAAUuB,OAAOhC,SAAQ,SAACiC,EAAOC,GAC7B5B,EAAS,cAAD,OAAeI,EAAf,oBAA4BwB,EAA5B,UAAuCD,EAAME,MAAQ,IAC7D7B,EAAS,cAAD,OAAeI,EAAf,oBAA4BwB,EAA5B,WAAwCD,EAAMG,OAAS,IAC/D9B,EAAS,cAAD,OAAeI,EAAf,oBAA4BwB,EAA5B,QAAqCD,EAAMI,IAAM,OAG7D5B,EAAU6B,YAAY9B,OAAS,GAC/BC,EAAU6B,YAAYtC,SAAQ,SAACuC,EAAKL,GAChC5B,EAAS,cAAD,OAAeI,EAAf,yBAAiCwB,EAAjC,UAA4CK,EAAIJ,MAAQ,IAChE7B,EAAS,cAAD,OAAeI,EAAf,yBAAiCwB,EAAjC,aAA+CK,EAAIC,SAAW,IACtElC,EAAS,cAAD,OAAeI,EAAf,yBAAiCwB,EAAjC,QAA0CK,EAAIF,IAAM,Y,kBCpF7DI,EAvBA,WAAO,IACVC,EAASC,cAATD,KAMFE,EAASpE,IACTqE,EAAUD,EAAM,qBAAiBA,EAAjB,QAAgC,iCACtD,OACI,sBACIvE,UAAU,mFACVyE,MAAO,CAAEC,eAAgB,iBAF7B,UAGI,8BACI,qBAAKzE,IAAKuE,EAAStE,IAAI,OAAOF,UAAU,wBAG5C,cAAC2E,EAAA,EAAD,CAAQC,MAAM,UAAUC,QAfZ,WACM,OAAlBR,EAAKS,SAAmBT,EAAKU,eAAe,MAC3CV,EAAKU,eAAe,OAayBN,MAAO,CAAEO,YAAa,UAApE,SACuB,OAAlBX,EAAKS,SAAoB,KAAO,W,uJChBjD,SAASG,EAAiBC,GAAQ,IACtBC,EAAuBD,EAAvBC,SAAaC,EADQ,YACEF,EADF,cAK7B,OACI,cAAC,IAAD,2BACQE,GADR,IAEIC,IAAK,SAACA,GACFF,EAASE,EAAMA,EAAIC,aAAe,OAEtCC,KAAM,CAAC,SAAU,KAAM,SAAU,IAAK,KAAM,SAAU,MACtDC,KAVK,SAACC,GACV,OAAOA,EAAeC,eAUlBC,UAAU,KAKtB,SAASC,EAAUV,GAAQ,IACfC,EAAuBD,EAAvBC,SAAaC,EADC,YACSF,EADT,cAGtB,OACI,cAAC,IAAD,2BACQE,GADR,IAEIC,IAAK,SAACA,GACFF,EAASE,EAAMA,EAAIC,aAAe,OAEtCC,KAAM,CAAC,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,MACjEI,UAAU,KAIf,IAAME,EAAkB,SAAC,GAAkB,IAAbX,EAAY,oBACrCY,EAASC,YAAcb,GAAvBY,KADqC,EAEdE,cAAvBC,EAFqC,EAErCA,QAASC,EAF4B,EAE5BA,UACXC,EAAQ1F,YAAIyF,EAAUE,OAAQlB,EAAM5D,MACpC+E,EAAYP,EAAKQ,QAAUH,EAAMI,QAAU,GAC7CC,EAAa,GASjB,OAPItB,EAAMuB,SACND,EAAa,CACTE,eAAgB,cAACC,EAAA,EAAD,CAAgBC,SAAS,QAAzB,SAAkC1B,EAAMuB,SACxDI,SAAQ,OAAE3B,QAAF,IAAEA,OAAF,EAAEA,EAAO2B,WAIrB3B,EAAMzC,MAEF,cAAC,IAAD,2BACQyC,GADR,IAEI4B,GACI,cAAC,IAAD,CACIC,OAAO,iBACPC,YAAaC,IACbC,aAAchC,EAAMgC,eAG5BC,WAAS,EACTC,QAAQ,WACRC,KAAK,QACLpB,QAASA,EACTqB,WAAYjB,GAAwBnB,EAAMoC,WAC1CnB,QAASE,EACTa,aAAchC,EAAMgC,gBAI5BhC,EAAMqC,MAEF,cAAC,IAAD,2BACQrC,GADR,IAEI4B,GACI,cAAC,IAAD,CACIU,mBAAmB,EACnBf,OAAQ,KACRO,YAAaC,IACbQ,cAAevC,EAAMwC,WAG7BP,WAAS,EACTC,QAAQ,WACRC,KAAK,QACLpB,QAASA,EACTqB,WAAYjB,GAAwBnB,EAAMoC,WAC1CnB,QAASE,EACTsB,WAAYnB,EACZU,aAAchC,EAAMgC,gBAI5BhC,EAAM0C,OAEF,cAAC,IAAD,2BACQ1C,GADR,IAEI4B,GACI,cAAC,IAAD,aACIU,mBAAmB,EACnBR,YAAaC,IACbQ,cAAevC,EAAMwC,UACjBxC,EAAM2C,YAGlBV,WAAS,EACTC,QAAQ,WACRC,KAAK,QACLpB,QAASA,EACTqB,WAAYjB,GAAwBnB,EAAMoC,WAC1CnB,QAASE,EACTsB,WAAYnB,EACZU,aAAchC,EAAMgC,gBAI5BhC,EAAM4C,WAEF,cAAC,IAAD,2BACQ5C,GADR,IAEI4B,GAAIG,IACJE,WAAS,EACTC,QAAQ,WACRC,KAAK,QACLpB,QAASA,EACTqB,WAAYjB,GAAwBnB,EAAMoC,WAC1CnB,QAASE,EACTsB,WAAY,CACRI,eAAgB9C,GAEpBiC,aAAchC,EAAMgC,gBAI5BhC,EAAMtC,IAEF,cAAC,IAAD,2BACQsC,GADR,IAEI4B,GAAIG,IACJE,WAAS,EACTC,QAAQ,WACRC,KAAK,QACLpB,QAASA,EACTqB,WAAYjB,GAAwBnB,EAAMoC,WAC1CnB,QAASE,EACTsB,WAAY,CACRI,eAAgBnC,GAEpBsB,aAAchC,EAAMgC,gBAK5B,cAAC,IAAD,2BACQhC,GADR,IAEI4B,GAAIG,IACJE,WAAS,EACTC,QAAQ,WACRC,KAAK,QACLpB,QAASA,EACTqB,WAAYjB,GAAwBnB,EAAMoC,WAC1CnB,QAASE,EACTsB,WAAYnB,EACZU,aAAchC,EAAMgC,iB,6CCtHjBc,EAxCW,SAAC9C,GAAW,IAC1BY,EAASC,YAAcb,GAAvBY,KADyB,EAEFE,cAAvBiC,EAFyB,EAEzBA,QAAS/B,EAFgB,EAEhBA,UACXC,EAAQ1F,YAAIyF,EAAUE,OAAQlB,EAAM5D,MACpC+E,EAAYP,EAAKQ,QAAL,OAAeH,QAAf,IAAeA,OAAf,EAAeA,EAAOI,QAAU,GAC1CjF,EAA2D4D,EAA3D5D,KAAM4G,EAAqDhD,EAArDgD,MAAOC,EAA8CjD,EAA9CiD,MALY,EAKkCjD,EAAvCkD,gBALK,SAKaC,EAAqBnD,EAArBmD,iBAC9C,OACI,eAACC,EAAA,EAAD,CACIlB,QAAQ,WACR3C,MAAO,CAAE8D,SAAU,QACnBlB,KAAK,QACLlB,QAASE,EAJb,UAKI,cAACmC,EAAA,EAAD,UAAaL,IACb,cAAC,IAAD,CACI7G,KAAMA,EACNmH,OAAQ,gBAAGf,EAAH,EAAGA,SAAU3D,EAAb,EAAaA,MAAOzC,EAApB,EAAoBA,KAApB,OACJ,cAACoH,EAAA,EAAD,CACIhB,SAAU,SAACiB,GACPjB,EAASiB,GACTV,EAAQ3G,GACJ+G,GAAkBA,EAAiBM,IAE3C5E,MAAOA,GAAgB,GACvBzC,KAAMA,EAPV,gBAQK4G,QARL,IAQKA,OARL,EAQKA,EAAOU,KAAI,SAACC,GAAD,OACR,cAACC,EAAA,EAAD,CAA2B/E,MAAO8E,EAAK9E,MAAvC,SACK8E,EAAKV,OADKU,EAAK9E,aAMhCoE,MAAOA,EACPC,SAAUA,EACVlB,aAAchC,EAAMgC,eAExB,cAAC6B,EAAA,EAAD,UAAiB1C,Q,iCCrChB2C,EAAqB,SAAC9D,GAAW,IAClC5D,EAAqC4D,EAArC5D,KAAM6G,EAA+BjD,EAA/BiD,MAAOc,EAAwB/D,EAAxB+D,MAAO/B,EAAiBhC,EAAjBgC,aACpBpB,EAASC,YAAcb,GAAvBY,KAFiC,EAGXoD,IAAMC,SAAS,IAHJ,mBAGlCC,EAHkC,KAGzBC,EAHyB,OAQrCC,YAAsB,CACtBC,eAAgB,CACZC,sBAAuB,CAAEC,QAAS,MAClCC,SAAU,OANCxH,EALsB,EAKrCyH,YAAezH,KACfD,EANqC,EAMrCA,SACA2H,EAPqC,EAOrCA,iBAQEC,EAAW7D,cACXC,EAAU4D,EAAS5D,QACnBE,EAAQ1F,YAAIoJ,EAAS3D,UAAUE,OAAQlB,EAAM5D,MAC7C+E,EAAYP,EAAKQ,QAAUH,EAAMI,QAAU,GAlBR,EAoBT2C,IAAMC,SAAS,IApBN,mBAoBlCW,EApBkC,KAoBxBC,EApBwB,KAsBnCC,EAAc,SAACrB,EAAGsB,EAAGC,GAAY,IAAD,IACnB,UAAXA,GACAL,EAAS5H,SAAT,qBAAgCgH,EAAhC,sBAA2D,IAE/DhH,EAAQ,OAAC0G,QAAD,IAACA,GAAD,UAACA,EAAGwB,cAAJ,aAAC,EAAWpG,OACpB,IAAIqG,EAAa,GACbN,IACAM,EAAa,CAACN,IAEd5H,IACAkI,EAAU,YAAOlI,IAErBmH,EAAWe,GACc,MAApB,OAADzB,QAAC,IAADA,GAAA,UAAAA,EAAGwB,cAAH,eAAWpG,SACX6F,IACAP,EAAW,MAInB,OACI,cAAC,IAAD,CACIpD,QAASA,EACT3E,KAAMA,EACN4F,aAAcA,EACduB,OAAQ,SAACvD,GAAD,OACJ,cAACmF,EAAA,EAAD,yBACIC,cAAY,EACZC,eAAgB,SAACC,GAAD,MACM,kBAAXA,EAAsBA,EAASA,EAAOC,sBAAsBC,YAEnExF,GALR,IAMIkE,QAASA,EACTuB,cAAe,SAACC,GAAD,OAAOA,GACtBC,cAAeb,EACfc,oBAAkB,EAClBC,UAAQ,EACRC,YAAa,SAACC,GAAD,OACT,cAAChE,EAAA,EAAD,2BACQgE,GADR,IAEI9C,MAAOA,EACPf,QAAQ,WACRD,WAAS,EACTE,KAAK,QACLlB,QAASE,EACTiB,WAAYjB,GAAwBnB,EAAMoC,WAC1CI,SAAU,SAACiB,GAAO,IAAD,EACbkB,EAAS5H,SAAT,qBACkBgH,EADlB,6BAEIN,QAFJ,IAEIA,GAFJ,UAEIA,EAAGwB,cAFP,aAEI,EAAWpG,MACX,CACImH,gBAAgB,SAMpCxD,SAAU,SAACyD,EAAOC,GACd,GAAIA,EAAU,CAAC,IAAD,EAGNA,EADAX,sBAAoCY,EAF9B,EAEmBX,UAFnB,IAEsCY,eAERC,QAAQ,KAAM,IAAIC,MAAM,KAJtD,mBAIHzI,EAJG,KAIGI,EAJH,KAKVsI,YAAW,CAAE3I,QAASsI,EAASM,cAC1BC,MAAK,SAACC,GAAD,OAAaC,YAAWD,EAAQ,IAAI,MACzCD,MAAK,SAACzI,GACH2G,EAAS5H,SAAT,qBACkBgH,EADlB,wBAEI/F,EACA,CACIgI,gBAAgB,OAIhCrB,EAAS5H,SAAT,qBAAgCgH,EAAhC,sBAA2DoC,EAAQ,CAC/DH,gBAAgB,IAEpBrB,EAAS5H,SAAT,qBAAgCgH,EAAhC,kBAAuDlG,EAAM,CACzDmI,gBAAgB,IAEpBrB,EAAS5H,SAAT,qBAAgCgH,EAAhC,sBAA2D9F,EAAU,CACjE+H,gBAAgB,IAIxBnB,EAAYqB,GACZxB,IACAP,EAAW,KAEfyC,aAAc,SAACtB,GACX,OACI,cAACuB,EAAA,EAAD,CAAMC,WAAS,EAACC,WAAW,SAA3B,SACI,eAACF,EAAA,EAAD,CAAMlD,MAAI,EAACqD,IAAE,EAAb,UACI,sBAAMzH,MAAO,CAAE0H,WAAY,KAA3B,SACK3B,EAAOC,sBAAsBC,YAElC,cAAC0B,EAAA,EAAD,CAAYhF,QAAQ,QAAQxC,MAAM,gBAAlC,SACK4F,EAAOC,sBAAsBa,8BCpHvD,SAASe,EAAoBnH,GAAQ,IACxCoH,EAAMhI,cAANgI,EACArG,EAAYD,cAAZC,QACAsG,EAAWC,YAAc,CAC7BvG,UACA3E,KAAM,aACNmL,kBAAkB,IAHdF,OAMFG,EAAiBJ,EAAE,eAAgB,CAAEK,eAAe,IACpDC,EAAeN,EAAE,mBAAoB,CAAEK,eAAe,IAE5D,OACI,qCACI,qBAAK3M,UAAU,OAAf,SACI,qBAAKA,UAAU,+CAAf,SACI,qBAAKA,UAAU,gDAAf,SACKsM,EAAE,4BAIf,8BACKC,EAAO3D,KAAI,SAACxG,EAAWC,GACpB,OACI,gCACW,IAANA,EACG,mCACI,qBAAKrC,UAAU,OAAf,SACI,qBAAKA,UAAU,+CAAf,SACI,qBAAKA,UAAU,gDAAf,SACKsM,EAAE,+BAKnB,KACJ,eAACP,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,UACI,cAACd,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,eACJ8F,MAAOmE,EAAE,0BACTpF,aAAc9E,EAAUE,UACxBkE,WAAY,CAAEuG,UAAW,QAGjC,cAAChB,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,cACJ8F,MAAOmE,EAAE,yBACTpF,aAAc9E,EAAUG,SACxBiE,WAAY,CAAEuG,UAAW,QAGjC,cAAChB,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,iBACJ8F,MAAOmE,EAAE,oBACTxI,KAAK,OACLkJ,gBAAiB,CAAEC,QAAQ,GAC3B/F,aAAc9E,EAAUM,gBAGhC,cAACqJ,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,WACJ8F,MAAOmE,EAAE,sBACTpF,aAAc9E,EAAUO,UAGhC,cAACoJ,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,sBACJ8F,MAAOmE,EAAE,wBACTrD,MAAO5G,EACP6E,aAAc9E,EAAUU,QAAQxC,aAGxC,cAACyL,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,EAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,kBACJ8F,MAAOmE,EAAE,qBACThF,WAAYgF,EAAE,iBACdpF,aAAc9E,EAAUU,QAAQO,KAChCmD,WAAY,CAAEuG,UAAW,OAGjC,cAAChB,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,EAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,mBACJ8F,MAAOmE,EAAE,sBACThF,WAAYgF,EAAE,iBACdpF,aAAc9E,EAAUU,QAAQoK,UAGxC,cAACnB,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,kBACJ8F,MAAOmE,EAAE,qBACTpF,aAAc9E,EAAUU,QAAQC,SAGxC,cAACgJ,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,sBACJ8F,MAAOmE,EAAE,yBACTpE,MAAOwE,EACPxF,aAAc9E,EAAUU,QAAQK,aAGxC,cAAC4I,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,wBACJ8F,MAAOmE,EAAE,2BACTpF,aAAc9E,EAAUU,QAAQI,WAChC4E,WAAW,WAGnB,cAACiE,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,4BACJ8F,MAAOmE,EAAE,wBACTpE,MAAO0E,EACP1F,aAAc9E,EAAUU,QAAQqK,mBAGxC,cAACpB,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,mBACJ8F,MAAOmE,EAAE,6BACTxI,KAAK,OACLkJ,gBAAiB,CAAEC,QAAQ,GAC3B/F,aAAc9E,EAAUU,QAAQM,UAGxC,cAAC2I,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,WACJ8F,MAAOmE,EAAE,sBACT7J,MAAM,OACNyE,aAAc9E,EAAUK,UAGhC,cAACsJ,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBe,EAAhB,SACJ8F,MAAOmE,EAAE,oBACThF,WAAYgF,EAAE,iBACdpF,aAAc9E,EAAUQ,IACxBA,IAAI,gBA5HVR,EAAU4B,Y,kCC5B/BoJ,GAAiB,SAAC,GAAkC,IAAhCjF,EAA+B,EAA/BA,MAAOtD,EAAwB,EAAxBA,QAAYK,EAAY,qCAC7Bc,cAAvBC,EADoD,EACpDA,QAASC,EAD2C,EAC3CA,UACTJ,EAASC,YAAcb,GAAvBY,KACFK,EAAQ1F,YAAIyF,EAAUE,OAAQlB,EAAM5D,MACpC+E,EAAYP,EAAKQ,QAAUH,EAAMI,QAAU,GACjD,OACI,eAAC+B,EAAA,EAAD,CAAanC,QAASE,EAAtB,UACI,cAACgH,GAAA,EAAD,CACIpH,QACI,cAAC,IAAD,2BACQf,GADR,IAEIe,QAASA,EACTwC,OAAQ,SAACvD,GAAD,OACJ,cAACoI,GAAA,EAAD,CACI5F,SAAU,SAACiB,GAAD,OAAOzD,EAAMwC,SAASiB,EAAEwB,OAAOoD,UACzCA,QAASrI,EAAMnB,MACfa,MAAM,UACNC,QAASA,KAGjBqC,aAAchC,EAAMgC,gBAG5BiB,MAAOA,IAEX,cAACY,EAAA,EAAD,UAAiB1C,QCrBd,SAASmH,GAAgBtI,GAAQ,IAAD,UACvBZ,cAAZgI,EADmC,EACnCA,EAAGjI,EADgC,EAChCA,KADgC,EAEK2B,cAAxCC,EAFmC,EAEnCA,QAASwH,EAF0B,EAE1BA,UAAWxL,EAFe,EAEfA,SAAUyL,EAFK,EAELA,MAChCC,EAASF,IAH4B,EAIDtE,mBAAS,GAJR,mBAIpCyE,EAJoC,KAIrBC,EAJqB,OAKP1E,mBAAS,IALF,mBAKpC2E,EALoC,KAKxBC,EALwB,OAMhBvB,YAAc,CACrCvG,UACA3E,KAAM,eAFF0M,EANmC,EAMnCA,OAAQC,EAN2B,EAM3BA,OAKVC,EAAU/N,IAEVgO,EAAoC,SAAjB,OAANR,QAAM,IAANA,GAAA,UAAAA,EAAQS,YAAR,eAActK,MAC3BuK,EAAwC,SAAjB,OAANV,QAAM,IAANA,GAAA,UAAAA,EAAQS,YAAR,eAActK,MAC/BwK,EAA+C,SAAjB,OAANX,QAAM,IAANA,GAAA,UAAAA,EAAQS,YAAR,eAActK,MAfD,EAgBoCoB,EAAMhD,KAA7EqM,EAhBmC,EAgBnCA,MAAOC,EAhB4B,EAgB5BA,YAhB4B,IAgBfC,wBAhBe,SAgBWC,EAhBX,EAgBWA,SAAUC,EAhBrB,EAgBqBA,WACxDP,EAAST,EAATS,KACJQ,GAAc,GACdH,GAAoBJ,GAAkBC,KAAuBM,GAAc,GAC/E,IAAMC,EAAcnB,EAAM,eACpBoB,EAAYpB,EAAM,aAClBqB,EAAiBrB,EAAM,kBACvBsB,EAAoBtB,EAAM,qBAEhCuB,qBAAU,WAAO,IAAD,EACRC,EAAYX,EAAMY,QAAO,SAACC,GAAD,OAAOA,EAAEtL,OAAS6J,EAAOS,KAAKtK,SAC3D,UAAI6J,EAAOS,KAAKiB,eAAhB,aAAI,EAAqBC,WACrBJ,EAAYA,EAAUC,QAAO,SAACC,GAAD,OAAqB,IAAdA,EAAEE,YAE1C,IAAMxB,EAAaoB,EAAUtG,KAAI,SAACwG,GAC9B,MAAO,CAAErL,MAAOqL,EAAEG,OAAQpH,MAA0B,OAAlB9D,EAAKS,UAAkC,KAAbsK,EAAEI,OAAgBJ,EAAEI,OAASJ,EAAEK,SAG/F,GADA1B,EAAcD,GACY,IAAtBA,EAAW3L,OAAc,CACzBF,EAAS,kBAAmB6L,EAAW,GAAG/J,OADjB,MAEY2L,EAAuB5B,EAAW,GAAG/J,OAAlE4L,EAFiB,EAEjBA,KAAMC,EAFW,EAEXA,KAAMC,EAFK,EAELA,aACpB5N,EAAS,oBAAqB0N,GAC9B1N,EAAS,YAAa2N,GACtB3N,EAAS,oBAAqB4N,EAAa,IAC3C5N,EAAS,cAAe6L,EAAW,GAAG/J,WAEd,KAApBqK,EAAK0B,YAAqBvB,EAAMY,QAAO,SAACC,GAAD,OAAOA,EAAEG,SAAWnB,EAAK0B,cAAY,GAAGhM,OAASsK,EAAKtK,MAC7F7B,EAAS,kBAAmB,MAErC,IACH,IAAM8N,EAAczD,EAAE,kBAAmB,CAAEK,eAAe,IAE1DsC,qBAAU,WAEGb,EAAK4B,WAAc5B,EAAKwB,MAASxB,EAAK6B,eAE3C7B,EAAKyB,cAAgB,GACrBK,MAAM,GAAD,OACEC,sCADF,sBACiDjC,EADjD,4BAC4EE,EAAKgC,OADjF,iBACgGhC,EAAKtK,KADrG,sBACuHsK,EAAK4B,UAD5H,iBAC8I5B,EAAKwB,KADnJ,yBACwKxB,EAAKyB,aAD7K,yBAC0MzB,EAAK6B,eAE/MtE,MAAK,SAAC0E,GAAD,OAASA,EAAIC,UAClB3E,MAAK,SAACxH,GACHlC,EAAS,eAAgBkC,GACzB0J,EAAiB1J,SAK9B,CAAC0K,EAAaC,EAAWC,EAAgBC,IAE5C,IAkCMU,EAAyB,SAACa,GAAY,IAAD,EACFhC,EAAMiC,MAAK,SAACpB,GAAD,OAAOA,EAAEG,SAAWgB,KACpE,MAAO,CAAEZ,KAF8B,EAC/BA,KACOC,KAFwB,EACzBA,KACOC,aAFkB,EACnBA,eAcxB,OAVAZ,qBAAU,WAAO,IAAD,IACe,SAAjB,OAANtB,QAAM,IAANA,GAAA,UAAAA,EAAQS,YAAR,eAActK,OACd7B,EAAS,oBAAqB,KAE9BoM,GAAkBC,IAClBrM,EAAS,oBAAoB,GAEjC4L,EAAgB,OAACF,QAAD,IAACA,GAAD,UAACA,EAAQS,YAAT,aAAC,EAAcjK,WAChC,IAGC,gCACI,qBAAKnE,UAAU,OAAf,SACI,qBAAKA,UAAU,+DAAf,SACI,qBAAKA,UAAU,gDAAf,SACKsM,EAAE,0BAIf,eAACP,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,UAC4B,SAAjB,OAANc,QAAM,IAANA,GAAA,UAAAA,EAAQS,YAAR,eAActK,MACX,cAACiI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAK,eACL6G,MAAOmE,EAAE,sBACTpE,MAAOsG,MAGf,KACJ,cAACzC,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAK,cACL6G,MAAOmE,EAAE,qBACT/E,MAAM,WAId,cAACwE,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAK,uBACL6G,MAAOmE,EAAE,8BACTxI,KAAK,OACLkJ,gBAAiB,CAAEC,QAAQ,OAGjCoB,GAAmBC,EAoCjB,KAnCA,qCACI,cAACvC,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAK,iBACL6G,MAAOmE,EAAE,uBACTpE,MAAO6H,MAMf,cAAChE,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAK,kBACL6G,MAAOmE,EAAE,mBACTpE,MAAO4F,EACPzF,iBAAkB,SAACM,GAAO,IAAD,EACgB+G,EAAuB/G,EAAEwB,OAAOpG,OAA7D4L,EADa,EACbA,KAAMC,EADO,EACPA,KAAMC,EADC,EACDA,aACpB5N,EAAS,oBAAqB0N,GAC9B1N,EAAS,YAAa2N,GACtB3N,EAAS,oBAAqB4N,EAAa,IAC3C5N,EAAS,cAAe0G,EAAEwB,OAAOpG,YAK7C,cAACgI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAIqB,EAAa,EAAI,EAAGjC,GAAIiC,EAAa,EAAI,GAAxD,SACI,cAAC,EAAD,CACI7M,KAAK,oBACL6G,MAAOmE,EAAE,2BACT7F,OAAO,IACPI,UAAQ,SAMvBsH,EACG,cAACpC,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,EAAtB,SACI,cAAC,EAAD,CACI5K,KAAK,oBACL6G,MAAOmE,EAAE,2BACT1E,OAAO,OACPC,UAAW,SAAC8F,GAAY,IACZ8C,EAA+B9C,EAA/B8C,eAAgBC,EAAe/C,EAAf+C,WACxB,MACuB,KAAnBD,GAA0BC,GAAc,IAAMA,EAAa,OAK3E,KAEJ,cAAC3E,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,GAAIZ,GAAI,GAAIzH,MAAO,CAAEkM,UAAW,QAA/C,SACI,cAAC,GAAD,CACIrP,KAAK,kBACL6G,MAAOmE,EAAE,yBACTzH,QA9IA,SAACsG,GACbA,EAAMhB,OAAOoD,QACbS,EAAO,CACH1L,UAAW,GACXC,SAAU,GACVG,YAAa,GACbI,QAAS,CACLxC,SAAU,GACVyC,KAAM,GACNG,WAAY,GACZG,KAAM,GACNF,SAAU,GACVgK,eAAgB,GAChB/J,MAAO,IAEXT,MAAO,GACPF,MAAO,GACPmO,OAAQ,GACRtN,YAAa,CACT,CACIC,SAAU,GACVH,MAAO,GACPM,QAAS,GACTjB,MAAO,GACPe,WAAY,GACZC,OAAQ,OAKpBwK,EAAO,WA4HP,cAAC4C,GAAA,EAAD,CAAKC,GAAI,IACRlC,EACG,gCAwCI,qBAAK5O,UAAU,2BAAf,SACI,qBAAKA,UAAU,uEAAf,SACI,sBAAKA,UAAU,cAAf,UACI,uBAAMA,UAAU,8BAAhB,UACK,IACAsM,EAAE,8BAEP,uBAAMtM,UAAU,qCAAhB,UACK4N,EAAgB,qBAAK5N,UAAU,UAAf,gBAAoC,KACpD4N,GAAgC,cAKhDc,GAAYC,EAAa,qBAAK3O,UAAU,6BAAf,SAAgE,OAAlBqE,EAAKS,UAAoC,KAAf6J,EAAqBA,EAAaD,IAAkB,QAE1J,Q,sICjRD,SAASqC,GAAT,GAAmC,IAAZlM,EAAW,EAAXA,QAAW,EACrBqE,IAAMC,UAAS,GADM,mBACtC6H,EADsC,KAChCC,EADgC,KAEvCC,EAAYhI,IAAMiI,OAAO,MAFc,EAGHjI,IAAMC,SAAS,GAHZ,mBAGtCiI,EAHsC,KAGvBC,EAHuB,KAKvCjI,GAAUkD,EADFhI,cAANgI,GACU,uBAAwB,CAAEK,eAAe,IAWrD2E,EAAc,SAACnG,GACb+F,EAAUK,SAAWL,EAAUK,QAAQC,SAASrG,EAAMhB,SAG1D8G,GAAQ,IAGZ,OACI,eAAClF,EAAA,EAAD,CAAMlD,MAAI,EAACqD,GAAI,GAAf,UACI,eAACuF,GAAA,EAAD,CACIrK,QAAQ,YACRC,KAAK,QACLzC,MAAM,UACNS,IAAK6L,EACLQ,aAAW,eACXC,kBAAkB,EANtB,UAOI,cAAChN,EAAA,EAAD,CAAQE,QAASA,EAAQ+M,KAAKC,KAAMT,GAApC,SACKhI,EAAQgI,KAEb,cAACzM,EAAA,EAAD,CACIC,MAAM,UACNyC,KAAK,QACLyK,gBAAed,EAAO,yBAAsBe,EAC5CC,gBAAehB,EAAO,YAASe,EAC/BL,aAAW,wBACXO,gBAAc,OACdpN,QA9BK,WACjBoM,GAAQ,SAACiB,GAAD,OAAeA,MAsBf,SAQI,cAAC,KAAD,SAGR,cAACC,GAAA,EAAD,CACInB,KAAMA,EACNoB,SAAUlB,EAAUK,QACpBc,UAAMN,EACNO,YAAU,EACVC,eAAa,EACb9N,MAAO,CAAE+N,OAAQ,KANrB,SAOK,gBAAGC,EAAH,EAAGA,gBAAiBC,EAApB,EAAoBA,UAApB,OACG,cAACC,GAAA,EAAD,2BACQF,GADR,IAEIhO,MAAO,CACHmO,gBAA+B,WAAdF,EAAyB,aAAe,iBAHjE,SAKI,cAACG,GAAA,EAAD,UACI,cAACC,GAAA,EAAD,CAAmBC,YAAazB,EAAhC,SACI,cAAC0B,GAAA,EAAD,CAAUhP,GAAG,oBAAb,SACKoF,EAAQR,KAAI,SAAC4B,EAAQvB,GAAT,OACT,cAACH,EAAA,EAAD,CAEImK,SAAUhK,IAAUmI,EACpBvM,QAAS,SAACsG,GAAD,OA3DrB,SAACA,EAAOlC,GAChCoI,EAAiBpI,GACjBgI,GAAQ,GAyDgDiC,CAAoB/H,EAAOlC,IAHnD,SAIKuB,GAHIA,qBCvE1C,IAAM2I,GAAsB,SAACjO,GAAW,IACnC5D,EAA8B4D,EAA9B5D,KAAM6G,EAAwBjD,EAAxBiD,MAAOjB,EAAiBhC,EAAjBgC,aACbpB,EAASC,YAAcb,GAAvBY,KAFkC,EAGZoD,IAAMC,SAAS,IAHH,mBAGnCC,EAHmC,KAG1BC,EAH0B,OAQtCC,YAAsB,CACtBC,eAAgB,CAAEC,sBAAuB,CAAEC,QAAS,MAAQC,SAAU,OAJvDxH,EALuB,EAKtCyH,YAAezH,KACfD,EANsC,EAMtCA,SACA2H,EAPsC,EAOtCA,iBAKEC,EAAW7D,cACXC,EAAU4D,EAAS5D,QACnBI,EAAYP,EAAKQ,QAAU,WAAa,GAdJ,EAeV4C,IAAMC,SAAS,IAfL,mBAenCW,EAfmC,KAezBC,EAfyB,KAiBpCC,EAAc,SAACrB,GAAO,IAAD,IACvB1G,EAAQ,OAAC0G,QAAD,IAACA,GAAD,UAACA,EAAGwB,cAAJ,aAAC,EAAWpG,OACpB,IAAIqG,EAAa,GACbN,IACAM,EAAa,CAACN,IAEd5H,IACAkI,EAAU,YAAOlI,IAErBmH,EAAWe,GACc,MAApB,OAADzB,QAAC,IAADA,GAAA,UAAAA,EAAGwB,cAAH,eAAWpG,SACX6F,IACAP,EAAW,MAInB,OACI,cAAC,IAAD,CACIpD,QAASA,EACT3E,KAAMA,EACN4F,aAAcA,EACduB,OAAQ,gBAAMvD,EAAN,2BACJ,cAACmF,EAAA,EAAD,yBACIC,cAAY,EACZC,eAAgB,SAACC,GAAD,YACM,kBAAXA,EACDA,EADN,UAEMA,EAAOC,6BAFb,aAEM,EAA8BC,YAEpCxF,GAPR,IAQIkE,QAASA,EACTuB,cAAe,SAACC,GAAD,OAAOA,GACtBC,cAAeb,EACfc,oBAAkB,EAClBC,UAAQ,EACRC,YAAa,SAACC,GAAD,OACT,cAAChE,EAAA,EAAD,2BACQgE,GADR,IAEI9C,MAAOA,EACPf,QAAQ,WACRD,WAAS,EACTE,KAAK,QACLlB,QAASE,MAGjBqB,SAAU,SAACyD,EAAOC,GAAc,IACpBgI,GAAUhI,GAAY,IAAtBgI,MADmB,EAEFA,GAAS,GAFP,mBAEpBrQ,EAFoB,KAEdI,EAFc,KAG3B,GAAIiI,EAAU,CAAC,IAAD,IACViI,QAAQC,IAAIlI,GACZ,IAe+D,IAfzDmI,EAAcjS,EAAKkS,UAAU,EAAGlS,EAAKmS,YAAY,MAevD,GAdA5J,EAAS5H,SAASX,EAAM8J,EAASM,aACjCD,YAAW,CAAE3I,QAASsI,EAASM,cAC1BC,MAAK,SAACC,GAAD,OAAaC,YAAWD,EAAQ,IAAI,MACzCD,MAAK,SAACzI,GACH2G,EAAS5H,SAAT,UACOsR,EADP,uBAEIrQ,MAGZ2G,EAAS5H,SAAT,UACOsR,EADP,qBAEInI,EAASX,sBAAsBC,gBAGXqH,KAApB,UAAAqB,EAAM,UAAN,eAAUrP,QAA2C,QAApB,UAAAqP,EAAM,UAAN,eAAUrP,OAC3C8F,EAAS5H,SAAT,UAAqBsR,EAArB,2BAAiDH,EAAM,UAAvD,aAAiD,EAAUrP,OAC3D8F,EAAS5H,SAAT,UAAqBsR,EAArB,+BAAqDH,EAAM,UAA3D,aAAqD,EAAUrP,YAG/D8F,EAAS5H,SAAT,UAAqBsR,EAArB,wBAAiDxQ,QAAjD,IAAiDA,OAAjD,EAAiDA,EAAMgB,OACvD8F,EAAS5H,SAAT,UAAqBsR,EAArB,4BAAqDpQ,QAArD,IAAqDA,OAArD,EAAqDA,EAAUY,OAIvEgG,EAAYqB,GACZxB,IACAP,EAAW,KAEfyC,aAAc,SAACtB,GACX,OACI,cAACuB,EAAA,EAAD,CAAMC,WAAS,EAACC,WAAW,SAA3B,SACI,eAACF,EAAA,EAAD,CAAMlD,MAAI,EAACqD,IAAE,EAAb,UACI,sBAAMzH,MAAO,CAAE0H,WAAY,KAA3B,SACK3B,EAAOC,sBAAsBC,YAElC,cAAC0B,EAAA,EAAD,CAAYhF,QAAQ,QAAQxC,MAAM,gBAAlC,SACK4F,EAAOC,sBAAsBa,8BCpGzDoI,GAAa,SAAC,GAAwB,IAAtBC,EAAqB,EAArBA,SACjB1N,GADsC,EAAX/D,KACf8D,cAAZC,SACAqG,EAAMhI,cAANgI,EAFsC,EAG+BE,YAAc,CACvFvG,UACA3E,KAAK,cAAD,OAAgBqS,EAAhB,cAFQC,EAH8B,EAGtCrH,OAA8BsH,EAHQ,EAGhB7F,OAA8B8F,EAHd,EAGM7F,OAHN,EAW1CzB,YAAc,CACdvG,UACA3E,KAAK,cAAD,OAAgBqS,EAAhB,gBALII,EARkC,EAQ1CxH,OACQyH,EATkC,EAS1ChG,OACQiG,EAVkC,EAU1ChG,OAV0C,EAmB1CzB,YAAc,CACdvG,UACA3E,KAAK,cAAD,OAAgBqS,EAAhB,gBALIO,EAhBkC,EAgB1C3H,OACQ4H,EAjBkC,EAiB1CnG,OACQoG,EAlBkC,EAkB1CnG,OAMEoG,EAAY/H,EAAE,gBAAiB,CAAEK,eAAe,IAChD2H,EAAiBhI,EAAE,qBAAsB,CAAEK,eAAe,IAEhE,OACI,qCACI,cAACP,EAAA,EAAD,CAAYmI,UAAU,MAAtB,SACI,cAAC1D,GAAA,EAAD,CAAK1E,WAAW,mBAAmBqI,GAAI,EAAG5P,MAAM,eAAhD,SAEU0H,EADQ,IAAbqH,EACO,4BACA,kCAGfC,EAAahL,KAAI,SAAChF,EAAO6Q,GACtB,OACI,cAAC5D,GAAA,EAAD,UACI,eAAC9E,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,UACI,cAACd,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,oBAAoCc,EAApC,UACJtM,MAAOmE,EAAE,2BACTpE,MAAOmM,EACPnN,aAActD,EAAME,SAG5B,cAACiI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,oBAAoCc,EAApC,WACJtM,MAAOmE,EAAE,qBACT/E,MAAM,OACNL,aAActD,EAAMG,UAI5B,cAACgI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAf,SACI,cAAC4H,GAAA,EAAD,CACIhD,aAAW,SACXrK,KAAK,SACLxC,QAAS,WACLiP,EAAaW,IAJrB,SAMI,cAAC,KAAD,YA1BN7Q,EAAMI,OA0CvB+P,EAAenL,KAAI,SAAC+L,EAASC,GAC1B,OACI,8BACI,eAAC7I,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,UACI,cAACd,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,EAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,sBAAsCiB,EAAtC,UACJzM,MAAOmE,EAAE,2BACTxI,KAAK,SACLoD,aAAcyN,EAAQE,SAG9B,cAAC9I,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,EAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,sBAAsCiB,EAAtC,UACJzM,MAAOmE,EAAE,2BACTpF,aAAcyN,EAAQG,SAG9B,cAAC/I,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,EAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,sBAAsCiB,EAAtC,WACJzM,MAAOmE,EAAE,4BACTpF,aAAcyN,EAAQI,UAI9B,cAAChJ,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,EAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,sBAAsCiB,EAAtC,WACJzM,MAAOmE,EAAE,4BACT/E,MAAM,OACNL,aAAcyN,EAAQ5Q,UAI9B,cAACgI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAf,SACI,cAAC4H,GAAA,EAAD,CACIhD,aAAW,SACXrK,KAAK,SACLxC,QAAS,WACLoP,EAAeW,IAJvB,SAMI,cAAC,KAAD,YAzCND,EAAQ3Q,OAyDzBkQ,EAAetL,KAAI,SAACoM,EAAUC,GAC3B,OACI,8BACI,eAAClJ,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,UACI,cAACd,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,GAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,sBAAsCsB,EAAtC,iBACJ9M,MAAOmE,EAAE,+BACTpF,aAAc8N,EAASE,gBAG/B,cAACnJ,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,sBAAsCsB,EAAtC,UACJ9M,MAAOmE,EAAE,4BACTpE,MAAOoM,EACPpN,aAAc8N,EAASlR,SAG/B,cAACiI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,sBAAsCsB,EAAtC,WACJ9M,MAAOmE,EAAE,6BACT/E,MAAM,OACNL,aAAc8N,EAASjR,UAI/B,cAACgI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAf,SACI,cAAC4H,GAAA,EAAD,CACIhD,aAAW,SACXrK,KAAK,SACLxC,QAAS,WACLuP,EAAea,IAJvB,SAMI,cAAC,KAAD,YAjCND,EAAShR,OAiD3B,uBACA,cAAC+M,GAAD,CACIlM,QAAS,SAACsQ,GACU,IAAZA,GAAetB,EAAa,CAAE/P,KAAM,GAAIC,MAAO,KACnC,IAAZoR,GAAenB,EAAe,CAAEc,KAAM,GAAIC,MAAO,GAAIF,KAAM,GAAI9Q,MAAO,KAC1D,IAAZoR,GACAhB,EAAe,CACXe,YAAa,GACbpS,QAAS,CAAExC,SAAU,GAAIyC,KAAM,GAAIG,WAAY,GAAIC,SAAU,IAC7DY,MAAO,YCzMtBqR,GAAkB,SAAC,GAAwB,IAAtBzB,EAAqB,EAArBA,SACtBrH,GAD2C,EAAXpK,KAC1BoC,cAANgI,GAD2C,EAM/CE,YAAc,CACdlL,KAAK,cAAD,OAAgBqS,EAAhB,mBAJI0B,EAHuC,EAG/C9I,OACQ+I,EAJuC,EAI/CtH,OACQuH,EALuC,EAK/CtH,OAKEuH,EAAgBlJ,EAAE,oBAAqB,CAAEK,eAAe,IAE9D,OACI,qCACI,cAACP,EAAA,EAAD,CAAYmI,UAAU,MAAtB,SACI,cAAC1D,GAAA,EAAD,CAAK1E,WAAW,mBAAmBqI,GAAI,EAAG5P,MAAM,eAAhD,SAEU0H,EADQ,IAAbqH,EACO,gCACA,sCAGf0B,EAAkBzM,KAAI,SAAC6M,EAAWC,GAC/B,OACI,8BACI,eAAC3J,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,UACI,cAACd,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC+B,EAAzC,UACJvN,MAAOmE,EAAE,mCACTpE,MAAOsN,EACPtO,aAAcuO,EAAU3R,SAGhC,cAACiI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC+B,EAAzC,aACJvN,MAAOmE,EAAE,2BACT/E,MAAM,OACNL,aAAcuO,EAAUE,YAGhC,cAAC5J,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC+B,EAAzC,aACJvN,MAAOmE,EAAE,2BACT/E,MAAM,OACNL,aAAcuO,EAAUtR,YAIhC,cAAC4H,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAf,SACI,cAAC4H,GAAA,EAAD,CACIhD,aAAW,SACXrK,KAAK,SACLxC,QAAS,WACL0Q,EAAkBG,IAJ1B,SAMI,cAAC,KAAD,YAlCND,EAAUzR,OA0C5B,uBACA,cAACW,EAAA,EAAD,CACI0C,KAAK,QACLD,QAAQ,YACRuK,kBAAgB,EAChB9M,QAAS,WACLyQ,EAAkB,CAAExR,KAAM,GAAIC,MAAO,MAL7C,SAOKuI,EAAE,sC,2DC3DbsJ,GAAcC,cAZL,SAACC,GAAD,MAAY,CACvBC,KAAM,CACFC,OAAQ,EACRC,QAASH,EAAMjJ,QAAQ,IAE3BqJ,YAAa,CACTtP,SAAU,WACVuP,MAAOL,EAAMjJ,QAAQ,GACrBuJ,IAAKN,EAAMjJ,QAAQ,GACnBjI,MAAOkR,EAAMO,QAAQC,KAAK,SAGdT,EAAmB,SAAC3Q,GAAW,IACvCqR,EAAyCrR,EAAzCqR,SAAUC,EAA+BtR,EAA/BsR,QAASC,EAAsBvR,EAAtBuR,QAAYrR,EADO,YACGF,EADH,kCAE9C,OACI,eAAC,KAAD,yBAAgBwR,mBAAiB,EAAC1W,UAAWwW,EAAQT,MAAU3Q,GAA/D,cACI,cAACgH,EAAA,EAAD,CAAYhF,QAAQ,KAApB,SAA0BmP,IACzBE,EACG,cAAC/B,GAAA,EAAD,CAAYhD,aAAW,QAAQ1R,UAAWwW,EAAQN,YAAarR,QAAS4R,EAAxE,SACI,cAAC,KAAD,MAEJ,YAKVE,GAAgBd,cAAW,SAACC,GAAD,MAAY,CACzCC,KAAM,CACFE,QAASH,EAAMjJ,QAAQ,OAFTgJ,CAIlBe,MAEW,SAASC,GAAY3R,GAAQ,IAChC4R,EAAwB5R,EAAxB4R,KAAML,EAAkBvR,EAAlBuR,QAASzF,EAAS9L,EAAT8L,KACjBM,EAAc,WAChBmF,KAEInK,EAAMhI,cAANgI,EAER,OACI,eAACyK,GAAA,EAAD,CAAQN,QAASnF,EAAa0F,kBAAgB,sBAAsBhG,KAAMA,EAA1E,UACI,cAAC,GAAD,CAAayF,QAASnF,EAAtB,SAAoChF,EAAE,gBACtC,cAAC,GAAD,CAAe2K,UAAQ,EAAvB,SACI,cAAC7K,EAAA,EAAD,CACI3H,MAAO,CAAEyS,SAAU,UACnB9P,QAAQ,QACRmN,UAAU,MACV4C,wBAAyB,CAAEC,OAAQN,U,cClD1CO,GAAkB,SAAC,GAAkB,IAAhB1D,EAAe,EAAfA,SACtBrH,EAAMhI,cAANgI,EADqC,EAElBtG,cAAnBC,EAFqC,EAErCA,QAASyH,EAF4B,EAE5BA,MACTnB,EAAWC,YAAc,CAC7BvG,UACA3E,KAAK,cAAD,OAAgBqS,EAAhB,mBAFApH,OAKF/I,EAAa8I,EAAE,iBAAkB,CAAEK,eAAe,IAClD2K,EAAiBhL,EAAE,qBAAsB,CAAEK,eAAe,IAEhE,OACI,qCACkB,IAAbgH,EACG,qCACI,uBACA,uBACA,cAAC4D,GAAA,EAAD,CAASnQ,QAAQ,WACjB,uBACA,0BAEJ,KACJ,qBAAKpH,UAAU,OAAf,SACI,qBAAKA,UAAU,+DAAf,SACI,qBAAKA,UAAU,gDAAf,SACsBsM,EAAJ,IAAbqH,EAAmB,uBAA4B,+BAI3DpH,EAAO3D,KAAI,SAAC4O,EAAYC,GACrB,IAAMC,EAAYhK,EAAM,cAAD,OAAeiG,EAAf,yBAAwC8D,EAAxC,aACvB,OACI,8BACI,eAAC1L,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,UACI,cAACd,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC8D,EAAzC,YACJtP,MAAOmE,EAAE,yBACTpE,MAAOoP,EACPpQ,aAAcsQ,EAAW/T,WAGlB,MAAdiU,EACG,qCACI,cAAC3L,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC8D,EAAzC,gBACJtP,MAAOmE,EAAE,6BACTpE,MAAO1E,EACP0D,aAAcsQ,EAAWhU,eAGjC,cAACuI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC8D,EAAzC,cACJtP,MAAOmE,EAAE,2BACTpF,aAAcsQ,EAAWjU,aAGjC,cAACwI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC8D,EAAzC,WACJtP,MAAOmE,EAAE,wBACTxI,KAAK,OACLkJ,gBAAiB,CAAEC,QAAQ,GAC3B/F,aAAcsQ,EAAWpU,UAGjC,cAAC2I,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC8D,EAAzC,aACJtP,MAAOmE,EAAE,0BACT/E,MAAM,OACNL,aAAcsQ,EAAW9T,YAGjC,cAACqI,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAI,qBAAgBqS,EAAhB,yBAAyC8D,EAAzC,WACJtP,MAAOmE,EAAE,wBACThF,WAAYgF,EAAE,iBACd7J,MAAM,OACNyE,aAAcsQ,EAAW/U,aAIrC,SAtDF+U,EAAWxT,WC5B1B,SAAS2T,GAAezS,GAAQ,IAAD,EACtBZ,cAAZgI,EADkC,EAClCA,EAAGjI,EAD+B,EAC/BA,KAD+B,EAEV2B,cAAxBC,EAFkC,EAElCA,QAAS2R,EAFyB,EAEzBA,WACDC,EAAqBrL,YAAc,CAC/CvG,UACA3E,KAAM,eAFFiL,OAHkC,EAOhBrD,IAAMC,SAAS,CACrC2O,cAAc,IARwB,mBAOnCC,EAPmC,KAO5BC,EAP4B,OAeI9O,IAAMC,UAAS,GAfnB,mBAenC8O,EAfmC,KAelBC,EAfkB,OAiBehT,EAAMhD,KAAvDiW,EAjBkC,EAiBlCA,SAjBkC,IAiBxBC,kBAjBwB,MAiBX,GAjBW,MAiBPC,oBAjBO,MAiBQ,GAjBR,EAuB1C,OAJApJ,qBAAU,WACU,MAAZkJ,GAAwC,IAApBA,EAAShW,QAAcyV,EAAW,iBAC3D,CAACO,IAGA,gCACKN,EAAiBjP,KAAI,SAACxG,EAAWuR,GAC9B,OACI,gCACI,cAAC,GAAD,CAAiBA,SAAUA,EAAUzR,KAAMgD,EAAMhD,OACjD,uBACA,cAAC,GAAD,CAAYyR,SAAUA,EAAUzR,KAAMgD,EAAMhD,OAC5C,uBACA,uBACA,cAAC,GAAD,CAAiByR,SAAUA,EAAUzR,KAAMgD,EAAMhD,SAN3CE,EAAU4B,OAU5B,uBACA,wBACS,OAARmU,QAAQ,IAARA,OAAA,EAAAA,EAAUhW,QAAS,EAChB,gCACI,cAACiK,EAAA,EAAD,CAAYmI,UAAU,MAAtB,SACI,cAAC1D,GAAA,EAAD,CAAK1E,WAAW,mBAAmBqI,GAAI,EAAG5P,MAAM,eAAhD,SACK0H,EAAE,mBAGX,cAACP,EAAA,EAAD,CAAMC,WAAS,EAACa,QAAS,EAAzB,SACI,cAACd,EAAA,EAAD,CAAMlD,MAAI,EAACiE,GAAI,EAAGZ,GAAI,GAAtB,SACI,cAAC,EAAD,CACI5K,KAAK,cACL6G,MAAOmE,EAAE,qBACTpE,MAAOiQ,WAKvB,KAEJ,uBACA,uBACA,cAAC/L,EAAA,EAAD,CAAYmI,UAAU,MAAtB,SACI,cAAC1D,GAAA,EAAD,CAAK1E,WAAW,mBAAmBqI,GAAI,EAAG5P,MAAM,eAAhD,SACK0H,EAAE,4BAGX,cAAC,EAAD,CACIhL,KAAK,eACLgX,YAAahM,EAAE,8BACfiM,WAAS,EACTC,KAAM,EACNhS,WAAY,CAAEuG,UAAW,OAE7B,uBACA,uBACA,uBACA,cAAC,GAAD,CACIzL,KAAK,eACLoG,SAlEc,SAACyD,GACvB6M,EAAS,2BAAKD,GAAN,mBAAc5M,EAAMhB,OAAO7I,KAAO6J,EAAMhB,OAAOoD,YAkE/CpF,MACI,gCACI,+BAAOmE,EAAE,wBAA8B,IACvC,cAACmM,GAAA,EAAD,CACI5T,QAAS,SAAC8D,GACNA,EAAE+P,iBACFR,GAAmB,IAH3B,SAKK5L,EAAE,oBAIfpF,cAAc,IAElB,cAAC2P,GAAD,CACIC,KAAyB,OAAlBzS,EAAKS,UAAsC,KAAjBuT,EAAuBA,EAAeD,EACvEpH,KAAMiH,EACNxB,QAAS,WACLyB,GAAmB,S,cCvGxB,SAASS,GAAT,GAAmC,IAAfC,EAAc,EAAdA,IAAKC,EAAS,EAATA,MAAS,EACzBvU,cAAZgI,EADqC,EACrCA,EAAGjI,EADkC,EAClCA,KACX,OACI,gCACI,cAACyU,GAAA,EAAD,UAAQxM,EAAE,oBACV,uBACA,cAACF,EAAA,EAAD,CACIhF,QAAQ,QACRmN,UAAU,IACV4C,wBAAyB,CAAEC,OAA0B,OAAlB/S,EAAKS,UAA+B,KAAV+T,EAAeA,EAAQD,KAExF,uBACA,uBACA,0B,wBCfG,SAASG,GAAT,GAOX,IANA/U,EAMD,EANCA,GACAF,EAKD,EALCA,KACAkV,EAID,EAJCA,MACAC,EAGD,EAHCA,eACAhG,EAED,EAFCA,SAED,IADC3D,eACD,SACC,OACI,qBACItP,UAAS,gLACLiT,EAAW,kBAAoB,mBAEnCpO,QAASoU,EAAeD,EAAOlV,EAAMwL,EAAStL,GAJlD,SAKI,sBAAKhE,UAAU,uCAAf,UACI,qBAAKA,UAAU,wBAAf,SAAwCgZ,IACvC1J,EACG,qBAAKtP,UAAU,UAAf,SACI,sBACIkZ,MAAM,6BACNlZ,UAAU,yBACVmZ,QAAQ,YACRC,KAAK,OACLC,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QARnB,UASI,sBAAMC,EAAE,mFACR,sBAAMC,GAAG,IAAIC,GAAG,IAAIC,GAAG,OAAOC,GAAG,WAGzC,UC5Bb,IAAMC,GAAc,SAAC,GAAyB,IAAD,IAAtBvL,EAAsB,EAAtBA,MAAOwL,EAAe,EAAfA,SAAe,EAChB/T,cAAxByH,EADwC,EACxCA,UAAWxL,EAD6B,EAC7BA,SAD6B,EAEhBkH,mBAAS,IAFO,mBAEzC8J,EAFyC,KAE/B+G,EAF+B,OAGpB7Q,mBAAS,IAHW,mBAGzC8Q,EAHyC,KAGjCC,EAHiC,KAI1CvM,EAASF,IAJiC,EAK5BnJ,cAAZgI,EALwC,EAKxCA,EAAGjI,EALqC,EAKrCA,KAEL8V,EAAqB,SAAC9K,EAASvL,EAAMwL,EAAStL,GAAzB,OAAgC,SAAC2E,GAExDyR,IACAnY,EAAS,YAAa6B,GACtB7B,EAAS,kBAAmB+B,GAC5B/B,EAAS,qBAAsBoN,GAC/BpN,EAAS,uBAAwBqN,GACjC0K,EAAY3K,KAGV+K,EAAiB,WACnBnY,EAAS,cAAe,IACxBA,EAAS,oBAAqB,IAC9BA,EAAS,iBAAkB,IAC3BA,EAAS,YAAa,IACtBA,EAAS,eAAgB,GACzBA,EAAS,eAAgB,IACzBA,EAAS,oBAAqB,IAGlCgN,qBAAU,WAAO,IAAD,IACZ+K,EAAW,OAACrM,QAAD,IAACA,GAAD,UAACA,EAAQS,YAAT,iBAAC,EAAciB,eAAf,aAAC,EAAuB2J,SACpC,QAACrL,QAAD,IAACA,GAAD,UAACA,EAAQS,YAAT,iBAAC,EAAciB,eAAf,aAAC,EAAuB2J,QAE3B/J,qBAAU,WACN,GAAIV,EAAO,CACP,IAAM0L,EAAS1L,EAAMY,QAAO,SAACkL,GAAD,OAAqB,IAAdA,EAAE/K,WACjC2K,GAAQC,EAAUD,MAE3B,CAAC1L,IAEJ,IAAI+L,EAAc,iBAClB,cAAQP,QAAR,IAAQA,OAAR,EAAQA,EAAU5X,QACd,KAAK,EACDmY,EAAc,iBACd,MACJ,KAAK,EACDA,EAAc,iBACd,MACJ,QACIA,EAAc,iBAItB,OACI,qBAAKhZ,KAAK,eAAV,SACI,sBAAKtB,UAAS,oCAA+Bsa,GAA7C,UACKP,EAASnR,KAAI,SAAC2R,EAAGtR,GACd,OACI,8BACI,cAAC8P,GAAD,CACI/U,GAAI,EACJF,KAAMyW,EAAExW,MACRiV,MAAO1M,EAAE,YAAciO,EAAExW,OACzBkP,SAAUA,IAAa3G,EAAE,YAAciO,EAAExW,OACzCkV,eAAgBkB,KANdlR,MAWjBgR,EAAO9X,OAAS,EACb,mCACK8X,EAAOrR,KAAI,SAAC2R,EAAGtR,GACZ,OACI,8BACI,cAAC8P,GAAD,CACIjV,KAAMyW,EAAEzW,KACRkV,MAAyB,OAAlB3U,EAAKS,UAAkC,KAAbyV,EAAE/K,OAAgB+K,EAAE/K,OAAS+K,EAAE9K,KAChEwD,SAAUA,IAAasH,EAAE9K,MAAQwD,IAAasH,EAAE/K,OAChDyJ,eAAgBkB,EAChB7K,SAAS,EACTtL,GAAIuW,EAAEhL,UAPJtG,QAatB,WCpFL,SAASuR,GAAQtV,GAAQ,IAAD,EACfZ,cAAZgI,EAD2B,EAC3BA,EAAGjI,EADwB,EACxBA,KADwB,EAE6Da,EAAMhD,KAA9FqM,EAF2B,EAE3BA,MAAOkM,EAFoB,EAEpBA,SAAUC,EAFU,EAEVA,eAAgBC,EAFN,EAEMA,eAAgBC,EAFtB,EAEsBA,iBAAkBC,EAFxC,EAEwCA,iBAE3E,OACI,gCACI,qBAAK7a,UAAU,yCAAf,SAA2E,OAAlBqE,EAAKS,UAA0C,KAArB8V,EAA0BA,EAAmBF,IAChI,oBAAI1a,UAAU,2BAAd,SAA0CsM,EAAE,mBAC5C,cAAC,GAAD,CAAayN,SAAUU,EAAUlM,MAAOA,IACxC,qBAAKvO,UAAU,+BACf,oBAAIA,UAAU,mBAAd,SAAkCsM,EAAE,4BACpC,8BACI,qBAAItM,UAAU,yCAAd,UACI,qBAAIA,UAAU,iBAAd,UACI,8BACI,cAAC,KAAD,CAAkBA,UAAU,iBAAiBkX,SAAS,YAE1D,8BAAM5K,EAAE,kCAEZ,qBAAItM,UAAU,iBAAd,UACI,8BACI,cAAC,KAAD,CAAkBA,UAAU,iBAAiBkX,SAAS,YAE1D,8BAAM5K,EAAE,6BAEZ,qBAAItM,UAAU,iBAAd,UACI,8BACI,cAAC,KAAD,CAAkBA,UAAU,iBAAiBkX,SAAS,YAE1D,8BAAM5K,EAAE,yCAIpB,qBAAKtM,UAAU,eAAf,SAAiD,OAAlBqE,EAAKS,UAA0C,KAArB+V,EAA0BA,EAAmBF,O,kCCRnGG,GA3Bc,SAACC,GAAS,IAAD,EACdzW,cAAZgI,EAD0B,EAC1BA,EAAGjI,EADuB,EACvBA,KADuB,EAEA8E,oBAAS,GAFT,mBAE3B6R,EAF2B,KAEhBC,EAFgB,OAGR9R,mBAAS,MAHD,mBAG3BhD,EAH2B,KAGpB+U,EAHoB,KAwBlC,MAAO,CApBK,uCAAG,WAAOhZ,GAAP,qBAAAmY,EAAA,6DACXY,GAAa,GACb/Y,EAAKiZ,KAAO9W,EAAKS,UAAY,KACvByE,EAAiB,CACnB6R,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3BC,KAAMC,KAAKC,UAAUtZ,IANd,SAQYgO,MAAM6K,EAAKxR,GARvB,WAQLkS,EARK,QASGC,GATH,wBAUDnV,EAAU+F,EAAE,kBAClB2O,GAAa,GACbC,EAAS,CAAE3U,YAZJ,kBAaAkV,GAbA,yBAeKA,EAASnL,OAfd,eAeLmJ,EAfK,OAgBXwB,GAAa,GAhBF,kBAiBJxB,GAjBI,4CAAH,sDAoBIuB,EAAW7U,I,SCQhBwV,OAhCf,YAA0C,IAAlBpV,EAAiB,EAAjBA,QAChBqV,EAAO,KACPC,EAAa,KACjB,OAHqC,EAAR/X,MAIzB,IAAK,QACD8X,EAAO,cAAC,KAAD,CAAa5b,UAAU,yBAC9B6b,EAAa,4BACb,MACJ,IAAK,UACDD,EAAO,cAAC,KAAD,CAAa5b,UAAU,2BAC9B6b,EAAa,gCACb,MACJ,IAAK,UACDD,EAAO,cAAC,KAAD,CAAa5b,UAAU,4BAC9B6b,EAAa,kCACb,MACJ,QACID,EAAO,cAAC,KAAD,CAAa5b,UAAU,yBAC9B6b,EAAa,4BAGrB,OACI,qBAAK7b,UAAU,iCAAf,SACI,sBACIA,UAAS,iCAA4B6b,EAA5B,uCADb,UAEI,8BAAMD,IACN,8BAAMrV,U,SCjBhBuV,GAAc,kDAEPC,GAAoB,CAC7B3N,KAAM,CACFgC,OAAQ,GACRtM,KAAM,GACNmM,aAAc,IACdV,OAAQ,GACRK,KAAM,GACNC,aAAc,GACdG,UAAW,GACXgM,QAAS,GACTC,gBAAiB,GACjB5M,QAAS,CACLrL,GAAI,GACJgV,MAAO,GACP1J,SAAS,GAEb4M,YAAY,EACZ/X,QAAS,EACTyK,aAAa,EACbuN,QAAS,GACTC,OAAQ,GACRtM,WAAY,GACZuM,eAAe,GAEnBC,WAAY,CACR,CACIha,UAAW,GACXC,SAAU,GACVG,YAAa,GACbI,QAAS,CACLxC,SAAU,GACVyC,KAAM,GACNG,WAAY,GACZG,KAAM,GACNF,SAAU,GACVgK,eAAgB,GAChB/J,MAAO,GACP8J,MAAO,IAEXvK,MAAO,GACPF,MAAO,GACPG,IAAK,GACLC,UAAW,GACXS,YAAa,CACT,CACIC,SAAU,GACVH,MAAO,GACPM,QAAS,GACTjB,MAAO,GACPe,WAAY,GACZC,OAAQ,KAGhBE,OAAQ,CAAC,CAAEG,KAAM,GAAIC,MAAO,GAAIC,GAAI,KACpCC,YAAa,CAAC,CAAEH,KAAM,GAAI6R,QAAS,GAAI3R,GAAI,GAAIG,QAAS,OAGhE2T,cAAc,EACdqD,KAAM,I,UChDJoB,GAAYC,aAAW,SAAC1G,GAAD,MAAY,CACrC2G,eAAgB,CACZ7X,MAAO8X,IAAK,KACZ9V,SAAU,WACVwP,IAAK,MACLuG,KAAM,MACNC,WAAY,GACZC,YAAa,QAIrB,SAASC,GAAeC,EAAM7a,EAAM0W,EAAKC,GACrC,OAAQkE,GACJ,KAAK,EACD,OAAO,cAACvC,GAAD,CAAStY,KAAMA,IAC1B,KAAK,EACD,OAAO,cAACsL,GAAD,CAAiBtL,KAAMA,IAClC,KAAK,EACD,OAAO,cAACmK,EAAD,CAAqBnK,KAAMA,IACtC,KAAK,EACD,OAAO,cAAC,GAAD,CAAuBA,KAAMA,IACxC,KAAK,EACD,OAAO,cAACyW,GAAD,CAAUC,IAAKA,EAAKC,MAAOA,IACtC,QACI,MAAO,gBAIJ,SAASmE,KACpB,IAAMxG,EAAU+F,KADoB,EAEApT,mBAAS,GAFT,mBAE7B8T,EAF6B,KAEjBC,EAFiB,OAGhB5Y,cAAZgI,EAH4B,EAG5BA,EAAGjI,EAHyB,EAGzBA,KACL8Y,EAAQ7Q,EAAE,QAAS,CAAEK,eAAe,IACpCyQ,EAAeC,aAAc,qBAC7BC,EAAanM,iBAAO,MACpBjD,EAAU/N,IACV4a,EAAG,UAAM5K,sCAAN,sBAAqDjC,EAArD,SAR2B,EASR4M,GAAqBC,GATb,mBAS7BwC,EAT6B,KASrBvC,EATqB,OAUY7R,mBAAS,MAVrB,mBAU7BqU,EAV6B,KAUXC,EAVW,OAWYtU,mBAAS,IAXrB,mBAW7BuU,EAX6B,KAWXC,EAXW,OAYgBxU,mBAAS,IAZzB,mBAY7ByU,EAZ6B,KAYTC,EAZS,KAc9BC,EAAQ,uCAAG,WAAO5b,GAAP,SAAAmY,EAAA,0DACTW,EADS,iEAEHuC,EAAOrb,GAFJ,kCAEWgb,EAAc,GAFzB,2CAAH,sDAdsB,EAmBZ/T,mBAAS,IAnBG,mBAmB7BjH,EAnB6B,KAmBvB6b,EAnBuB,KAqB9BC,EDEsB,SAAC1R,GAC7B,IAAM2R,EAAc3R,EAAE,uBACtB,MAAO,CACH,KACA4R,KAAW,CACP9P,KAAM8P,KAAW,CACb9N,OAAQ8N,OAAa9V,SAAS6V,GAC9BjO,UAAWkO,OAAa9V,SAAS6V,GACjCjC,QAASkC,OAAa9V,SAAS6V,GAC/BrO,KAAMsO,OAAa9V,SAAS6V,GAC5BhO,aAAciO,OAAa9V,SAAS6V,GACpChC,gBAAiBiC,OAEZ9V,SAAS6V,GACT1c,KAAK,cAAe+K,EAAE,mBAAoB5L,EAAU,UACzDoP,WAAYoO,OAAa9V,SAAS6V,OAG1CC,KAAW,CACP5B,WAAY4B,OAAYC,GACpBD,OAAaE,MAAM,CACf9b,UAAW4b,OAEN9V,SAAS6V,GACT1c,KAAK,cAAe+K,EAAE,mBAAoBjL,GAC/CkB,SAAU2b,OAEL9V,SAAS6V,GACT1c,KAAK,cAAe+K,EAAE,uBAAwBjL,GACnDqB,YAAawb,OAER9V,SAAS6V,GACT1c,KAAK,cAAe+K,EAAE,mBAAoB5L,EAAU,aACzDoC,QAASob,KAAW,CAChB5d,SAAU4d,OAAa9V,SAAS6V,GAChClb,KAAMmb,OAAa9V,SAAS6V,GAC5B9a,SAAU+a,OAAa9V,SAAS6V,GAChC/a,WAAYgb,OAAa9V,SAAS6V,GAClC7a,MAAO8a,OAEF9V,SAAS6V,GACT1c,KAAK,cAAe+K,EAAE,mBAAoB5L,EAAU,UACzDyM,eAAgB+Q,OAAa9V,SAAS6V,KAE1Ctb,MAAOub,OAEFvb,MAAM2J,EAAE,qBACRlE,SAAS6V,GACT1c,KAAK,eAAgB+K,EAAE,oBAAqB9K,GACjDiB,MAAOyb,OAEF9V,SAAS6V,GACTI,QAAQvC,GAAaxP,EAAE,0BAIxC4R,KAAW,CACP5B,WAAY4B,OAAYC,GACpBD,OAAaE,MAAM,CACf9a,YAAa4a,OAAYC,GACrBD,OAAaE,MAAM,CACf7a,SAAU2a,OAAaI,KAAK,SAAU,CAClCC,GAAI,SAAC9a,GAAD,MAAuB,MAAXA,GAChBkI,KAAMuS,OAED9V,SAAS6V,GACT1c,KAAK,oBAAqB+K,EAAE,uBAAwBvK,KAE7DqB,MAAO8a,OAAaI,KAAK,SAAU,CAC/BC,GAAI,SAAC9a,GAAD,MAAuB,MAAXA,GAChBkI,KAAMuS,OAED9V,SAAS6V,GACT1c,KAAK,cAAe+K,EAAE,mBAAoB5L,EAAU,YAE7DgD,QAASwa,OAAaI,KAAK,SAAU,CACjCC,GAAI,SAAC9a,GAAD,MAAuB,MAAXA,GAChBkI,KAAMuS,OAAa9V,SAAS6V,KAEhCza,WAAY0a,OAAaI,KAAK,SAAU,CACpCC,GAAI,SAAC9a,GAAD,MAAuB,MAAXA,GAChBkI,KAAMuS,OAAa9V,SAAS6V,KAEhCxa,OAAQya,OAAa9V,SAAS6V,SAK9C7P,KAAM8P,KAAW,CACb9B,OAAQ8B,OAAaI,KAAK,gBAAiB,CACvCC,GAAI,SAAClC,GAAD,OAAqC,IAAlBA,GACvB1Q,KAAMuS,OAAa9V,SAAS6V,OAGpCnG,aAAcoG,OAAcM,MAAM,EAAC,GAAOlS,EAAE,wBChGpBmS,CAAiBnS,GAAG2Q,GAC9CyB,GAAUC,YAAQ,CACpBlS,kBAAkB,EAClBmS,cAAe7C,GACf8C,SAAUC,uBAAYd,GACtBe,KAAM,aAEFC,GAAkDN,GAAlDM,aAActR,GAAoCgR,GAApChR,MAAOuR,GAA6BP,GAA7BO,MAAOhX,GAAsByW,GAAtBzW,QAAShG,GAAayc,GAAbzc,SAEvCid,GAAU,uCAAG,sBAAA7E,EAAA,sEACWpS,KADX,eAEEiV,GAAc,SAACiC,GAAD,OAAoBA,EAAiB,KAFrD,2CAAH,qDA6FhB,OA/EAlQ,qBAAU,WAEN,IAAMmQ,EAAc,SAACC,GACjBhf,OAAOif,aAAaC,QACpB,IAAMC,EtB9FC,IAAIpf,IAAIC,OAAOC,SAASC,MAAMC,aAC/BC,IAAI,SsB8FV,GAAI+e,GAASH,EAASI,UAAW,CAC7BH,aAAaI,QAAQ,eAAgBF,GACrC,IACI,IAAIG,EAASC,aAAWJ,GACI,OAAxBG,EAAOE,cAAuBxb,EAAKU,eAAe,MACtD,IAAMwE,EAAiB,CACnB6R,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChByE,cAAe,UAAYR,aAAaS,QAAQ,iBAEpDzE,KAAMC,KAAKC,UAAU,CACjBwE,YAAaL,EAAOK,YACpBH,aAAcF,EAAOK,YACrBC,gBAAiB/R,KAGzBgC,MAAM,GAAD,OAAIC,sCAAJ,cAAmD5G,GACnDoC,KADL,uCACU,WAAO8P,GAAP,iBAAApB,EAAA,sEACiBoB,EAASnL,OAD1B,UACIpO,EADJ,OAEGuZ,EAASC,GAFZ,uBAGQvV,EAASjE,GAAQA,EAAKge,SAAYzE,EAAShY,OAHnD,kBAIS0c,QAAQC,OAAOja,IAJxB,OAMFnE,EAASC,GAAUC,GANjB,2CADV,uDASKme,OAAM,SAACla,GACJkN,QAAQC,IAAInN,MAEtB,MAAOA,GAELkN,QAAQC,IAAInN,OAKJ,uCAAG,sCAAAkU,EAAA,6DACbc,EtB/HC,IAAI/a,IAAIC,OAAOC,SAASC,MAAMC,aAC/BC,IAAI,SsB8HoB,KAC9B4D,EAAKU,eAAeoW,GAFD,SAGIjL,MAAM,GAAD,OAAIC,sCAAJ,sBAAmDjC,EAAnD,iBAAmEiN,IAH5E,WAGbM,EAHa,QAIDC,GAJC,iCAKgBD,EAAS3E,OALzB,aAKLwJ,EALK,OAML1H,EANK,UAMI6C,EAAS8E,WANb,cAM6BD,GAClC,IAAIE,MAAM5H,GAPL,yBASI6C,EAASnL,OATb,QASTpO,EATS,QAWH,QADJiW,EAAajW,EAAbiW,gBACI,IAARA,OAAA,EAAAA,EAAUhW,QAAS,GAAGF,GAAS,sBAAsB,GACzDoR,QAAQC,IAAIpR,GACZmC,EAAKoc,kBAAkBtF,EAAM,MAAOjZ,GAAM,GAC1C6b,EAAQ7b,GACRyb,EAAoBzb,EAAKwe,mBACzB7C,EAAsB3b,EAAKye,qBAC3BvB,EAAYld,GAjBG,4CAAH,qDAoBpB0e,GAAiBP,OAAM,SAACla,GACpBsX,EAAoB,mCAAD,OAAoCtX,EAAMI,aAGjElC,EAAKwc,GAAG,mBAAmB,SAACC,GACZ,OAARA,GACA5Q,MAAM,GAAD,OAAIC,sCAAJ,sBAAmDjC,EAAnD,aACAvC,MAAK,SAAC0E,GAAD,OAASA,EAAIC,UAClB3E,MAAK,SAACzJ,GACHmC,EAAKoc,kBAAkB,KAAM,MAAOve,GAAM,GAC1C6b,EAAQ7b,GACRyb,EAAoBzb,EAAKwe,mBACzB7C,EAAsB3b,EAAKye,6BAI5C,IAECnD,EAAyB,cAAC,GAAD,CAAcjX,QAASiX,EAAkB1Z,KAAK,UAEpD,IAAhB5B,EAAKC,OACR,cAAC4e,GAAA,EAAD,IAEA,sBAAM/gB,UAAU,uFAAhB,SACI,sBAAKA,UAAU,uCAAf,UACI,cAACghB,EAAA,EAAD,CAAS/D,WAAYA,EAAYxY,MAAO,CAAEwc,gBAAiB,WAA3D,SACK9D,EAAMvU,KAAI,SAACT,EAAOc,GAGf,OACI,cAACiY,EAAA,EAAD,2BAHc,IAGd,aACI,cAACC,EAAA,EAAD,2BAHW,IAGX,aACM/D,EAAuB,KAARjV,OAFdA,QAQvB,8BACK8U,IAAeE,EAAMhb,OAClB,qCACI,cAACwW,GAAD,CAAUC,IAAK8E,EAAkB7E,MAAO+E,IACxC,cAACjZ,EAAA,EAAD,CAAQE,QA5GZ,WAChBqY,EAAc,GACd+B,MA0GkDjf,UAAWwW,EAAQ4K,OAAjD,SACK9U,EAAE,iBAIX,cAAC,IAAD,2BAAkBoS,IAAlB,aACI,iCACI,qBAAK1e,UAAU,OAAOyE,MAAO,CAAE4c,UAAW,QAA1C,SACKvE,GAAeG,EAAY/a,EAAMwb,EAAkBE,KAExD,sBAAK5d,UAAU,oDAAf,UACI,cAAC2E,EAAA,EAAD,CAAQ2c,SAAyB,IAAfrE,EAAkBpY,QA3HjD,WACfqY,GAAc,SAACiC,GAAD,OAAoBA,EAAiB,MA0HvB,SACK7S,EAAE,aAEN2Q,IAAeE,EAAMhb,OAAS,EAC3B,sBAAKnC,UAAU,WAAf,UACI,cAAC2E,EAAA,EAAD,CACIyC,QAAQ,YACRxC,MAAM,UACNC,QAASma,GAAalB,GACtBwD,SAAUtG,EAJd,SAKK1O,EAAE,eAEN0O,GACG,cAACuG,EAAA,EAAD,CACIla,KAAM,GACNrH,UAAWwW,EAAQiG,oBAK/B,cAAC9X,EAAA,EAAD,CACIyC,QAAQ,YACRxC,MAAM,UACN0c,UAAa5T,GAAM,aACnB7I,QAASqa,GACT7Z,IAAKiY,EALT,SAMKhR,EAAE,6BCjO/C,IAAMkV,GAAcC,YAAe,CAC/BC,WAAY,CACRC,UAAW,CACPzK,SAAU,IAEd0K,GAAI,CACA1K,SAAU,KAGlBb,QAAS,CACLwL,QAAS,CACLC,KAAMpF,IAAK,OAGnBqF,UAAW,CACPC,cAAe,CACXC,SAAU,CACNhB,gBAAiB,UACjBiB,YAAa,EACbC,aAAc,OAkBfC,OAZf,WACI,IAAMlU,EAAU/N,IAChB,OACI,cAACkiB,EAAA,EAAD,CAAevM,MAAO0L,GAAtB,SACI,sBAAKxhB,UAAU,WAAf,UACKK,OAAOC,WAAaD,OAAOiiB,OAAOhiB,UAAa4N,EAAiB,cAAC,EAAD,IAAP,KACzDA,EAAU,cAAC8O,GAAD,IAAoB,cAAC,EAAD,UC9BhCuF,GAZS,SAACC,GACjBA,GAAeA,aAAuBC,UACtC,8BAAqB9W,MAAK,YAAkD,IAA/C+W,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QACzDJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,O,4BCEpBne,KAGK0e,IAAIC,MAKJD,IAAIE,MAGJC,KAAK,CACFC,YAAa,KACbC,OAAO,EACPC,UAfU,CAAC,KAAM,MAgBjBC,cAAe,CACXC,aAAa,GAEjBC,QAAS,CACLC,SAAS,mCAIrBpf,KAAKwc,GAAG,mBAAmB,SAACC,GACxB4C,SAASC,gBAAgBC,aAAa,OAAQ9C,MAGnCzc,GAAf,EC7BAwf,IAASpb,OACL,cAAC,IAAMqb,WAAP,UACI,cAAC,WAAD,CAAUC,SAAU,cAAChD,GAAA,EAAD,IAApB,SACI,cAAC,GAAD,QAGR2C,SAASM,eAAe,SAM5BzB,O","file":"static/js/main.19596c5a.chunk.js","sourcesContent":["import React from 'react';\r\n\r\nfunction CUNotFound() {\r\n return (\r\n
\r\n
\r\n
\r\n Could not found an account matching the request.\r\n
\r\n
You may have mistyped the address.
\r\n
\r\n \"logo\"\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CUNotFound;\r\n","export const getCuCode = () => {\r\n const params = new URL(window.location.href).searchParams;\r\n return params.get('cu');\r\n};\r\n\r\nexport const getToken = () => {\r\n const params = new URL(window.location.href).searchParams;\r\n return params.get('token');\r\n};\r\n\r\nexport const getLanguage = () => {\r\n const params = new URL(window.location.href).searchParams;\r\n return params.get('lang');\r\n};\r\n\r\nexport const groupBy = (key) => (array) =>\r\n array.reduce((objectsByKeyValue, obj) => {\r\n const value = obj[key];\r\n objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj);\r\n return objectsByKeyValue;\r\n }, {});\r\n\r\nexport const checkDate = (dateType) => {\r\n if (dateType === 'birthday') {\r\n return (date) => {\r\n const today = new Date();\r\n const eighteenYearsAgo = new Date(today.getFullYear() - 18, today.getMonth(), today.getDate());\r\n const userDate = new Date(date);\r\n return userDate <= eighteenYearsAgo && userDate > new Date(1900, 1, 1);\r\n }\r\n }\r\n else if (dateType === 'funds')\r\n return (date) => new Date(date) < new Date(9999, 11, 31) && new Date(date) >= new Date(Date.now() - 86400000);\r\n else\r\n return (date) => new Date(date) < new Date(9999, 11, 31) && new Date(date) > new Date(1900, 1, 1);\r\n};\r\n\r\nexport const checkName = (name) => {\r\n return !/\\d/.test(name);\r\n};\r\n\r\nexport const checkAccents = (word) => {\r\n const accents = ['á','à','ã','â','é','è','ê','í','ì','î','õ','ó','ò','ô','ú','ù','û'];\r\n let accented = false;\r\n accents.forEach(acc => {\r\n if (word.toLowerCase().includes(acc))\r\n accented = true;\r\n });\r\n return !accented;\r\n};\r\n\r\nexport const checkSpecialChars = (word) => {\r\n return !/^[^a-zA-Z0-9]+$/.test(word);\r\n};\r\n\r\nexport const bindForm = (setValue, data) => {\r\n if (!data) return;\r\n if (data.length > 1) {\r\n setValue('loan.coBorrower', true);\r\n }\r\n data.forEach((applicant, i) => {\r\n setValue(`applicants[${i}].firstName`, applicant.firstName || '');\r\n setValue(`applicants[${i}].lastName`, applicant.lastName || '');\r\n setValue(`applicants[${i}].middleName`, applicant.middleName || '');\r\n setValue(`applicants[${i}].phone`, applicant.phone || '');\r\n setValue(`applicants[${i}].dateOfBirth`, applicant.dateOfBirth || '');\r\n setValue(`applicants[${i}].email`, applicant.email || '');\r\n setValue(`applicants[${i}].sin`, applicant.sin || '');\r\n setValue(`applicants[${i}].memberKey`, applicant.memberKey || '');\r\n setValue(`applicants[${i}].address.location`, applicant.address.location || '');\r\n setValue(`applicants[${i}].address.city`, applicant.address.city || '');\r\n setValue(\r\n `applicants[${i}].address.occupationType`,\r\n applicant.address.occupationType || ''\r\n );\r\n setValue(`applicants[${i}].address.pobox`, applicant.address.pobox || '');\r\n setValue(`applicants[${i}].address.postalCode`, applicant.address.postalCode || '');\r\n setValue(`applicants[${i}].address.province`, applicant.address.province || '');\r\n setValue(`applicants[${i}].address.since`, applicant.address.since || '');\r\n setValue(`applicants[${i}].address.unit`, applicant.address.unit || '');\r\n\r\n setValue(\r\n `applicants[${i}].employments[0].employer`,\r\n applicant.employments[0].employer || ''\r\n );\r\n setValue(\r\n `applicants[${i}].employments[0].occupation`,\r\n applicant.employments[0].occupation || ''\r\n );\r\n setValue(`applicants[${i}].employments[0].phone`, applicant.employments[0].phone || '');\r\n setValue(`applicants[${i}].employments[0].since`, applicant.employments[0].since || '');\r\n setValue(\r\n `applicants[${i}].employments[0].status`,\r\n applicant.employments[0].status || ''\r\n );\r\n setValue(\r\n `applicants[${i}].employments[0].earning`,\r\n applicant.employments[0].earning || ''\r\n );\r\n\r\n if (applicant.assets.length > 0) {\r\n applicant.assets.forEach((asset, j) => {\r\n setValue(`applicants[${i}].assets[${j}].type`, asset.type || '');\r\n setValue(`applicants[${i}].assets[${j}].value`, asset.value || '');\r\n setValue(`applicants[${i}].assets[${j}].id`, asset.id || '');\r\n });\r\n }\r\n if (applicant.liabilities.length > 0) {\r\n applicant.liabilities.forEach((lib, j) => {\r\n setValue(`applicants[${i}].liabilities[${j}].type`, lib.type || '');\r\n setValue(`applicants[${i}].liabilities[${j}].balance`, lib.payment || '');\r\n setValue(`applicants[${i}].liabilities[${j}].id`, lib.id || '');\r\n });\r\n }\r\n });\r\n};\r\n","import React from 'react';\r\nimport { getCuCode } from '../utils';\r\nimport { Button } from '@material-ui/core';\r\nimport { useTranslation } from 'react-i18next';\r\nconst Header = () => {\r\n const { i18n } = useTranslation();\r\n const handleClick = () => {\r\n if (i18n.language === 'fr') i18n.changeLanguage('en');\r\n else i18n.changeLanguage('fr');\r\n };\r\n\r\n const cuCode = getCuCode();\r\n const logoUrl = cuCode ? `./cu-logos/${cuCode}.png` : './cu-logos/logo_technicost.png';\r\n return (\r\n \r\n
\r\n \"logo\"\r\n
\r\n\r\n \r\n \r\n );\r\n};\r\nexport default Header;\r\n","import * as React from 'react';\r\nimport { InputAdornment, TextField } from '@material-ui/core';\r\nimport NumberFormat from 'react-number-format';\r\nimport MaskedInput from 'react-text-mask';\r\nimport { Controller, useFormContext, useController, get } from 'react-hook-form';\r\n\r\nfunction PostalCodeFormat(props) {\r\n const { inputRef, ...other } = props;\r\n const pipe = (conformedValue) => {\r\n return conformedValue.toUpperCase();\r\n };\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n mask={[/[A-Z]/i, /\\d/, /[A-Z]/i, ' ', /\\d/, /[A-Z]/i, /\\d/]}\r\n pipe={pipe}\r\n showMask={false}\r\n />\r\n );\r\n}\r\n\r\nfunction SinFormat(props) {\r\n const { inputRef, ...other } = props;\r\n\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n mask={[/\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/]}\r\n showMask={false}\r\n />\r\n );\r\n}\r\nexport const TextFieldCustom = ({ ...props }) => {\r\n const { meta } = useController(props);\r\n const { control, formState } = useFormContext();\r\n const error = get(formState.errors, props.name);\r\n const errorText = meta.invalid ? error.message : '';\r\n let inputProps = {};\r\n\r\n if (props.prefix) {\r\n inputProps = {\r\n startAdornment: {props.prefix},\r\n readOnly: props?.readOnly\r\n };\r\n }\r\n\r\n if (props.phone) {\r\n return (\r\n \r\n }\r\n fullWidth\r\n variant=\"outlined\"\r\n size=\"small\"\r\n control={control}\r\n helperText={errorText ? errorText : props.helperText}\r\n error={!!errorText}\r\n defaultValue={props.defaultValue}\r\n />\r\n );\r\n }\r\n if (props.money) {\r\n return (\r\n \r\n }\r\n fullWidth\r\n variant=\"outlined\"\r\n size=\"small\"\r\n control={control}\r\n helperText={errorText ? errorText : props.helperText}\r\n error={!!errorText}\r\n InputProps={inputProps}\r\n defaultValue={props.defaultValue}\r\n />\r\n );\r\n }\r\n if (props.number) {\r\n return (\r\n \r\n }\r\n fullWidth\r\n variant=\"outlined\"\r\n size=\"small\"\r\n control={control}\r\n helperText={errorText ? errorText : props.helperText}\r\n error={!!errorText}\r\n InputProps={inputProps}\r\n defaultValue={props.defaultValue}\r\n />\r\n );\r\n }\r\n if (props.postalcode) {\r\n return (\r\n \r\n );\r\n }\r\n if (props.sin) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport { Controller, useController, useFormContext, get } from 'react-hook-form';\r\n\r\nconst SelectFieldCustom = (props) => {\r\n const { meta } = useController(props);\r\n const { trigger, formState } = useFormContext();\r\n const error = get(formState.errors, props.name);\r\n const errorText = meta.invalid ? error?.message : '';\r\n const { name, items, label, required = false, onSelectedChange } = props;\r\n return (\r\n \r\n {label}\r\n (\r\n {\r\n onChange(e);\r\n trigger(name);\r\n if (onSelectedChange) onSelectedChange(e);\r\n }}\r\n value={value ? value : ''}\r\n name={name}>\r\n {items?.map((item) => (\r\n \r\n {item.label}\r\n \r\n ))}\r\n \r\n )}\r\n label={label}\r\n required={required}\r\n defaultValue={props.defaultValue}\r\n />\r\n {errorText}\r\n \r\n );\r\n};\r\n\r\nexport default SelectFieldCustom;\r\n","import { Grid, TextField, Typography } from '@material-ui/core';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport React from 'react';\r\nimport { Controller, useFormContext, useController, get } from 'react-hook-form';\r\nimport usePlacesAutocomplete, { getGeocode, getZipCode } from 'use-places-autocomplete';\r\n\r\nexport const PlacesAutocomplete = (props) => {\r\n const { name, label, index, defaultValue } = props;\r\n const { meta } = useController(props);\r\n const [options, setOptions] = React.useState([]);\r\n const {\r\n suggestions: { data },\r\n setValue,\r\n clearSuggestions\r\n } = usePlacesAutocomplete({\r\n requestOptions: {\r\n componentRestrictions: { country: 'CA' },\r\n debounce: 300\r\n }\r\n });\r\n\r\n const methodes = useFormContext();\r\n const control = methodes.control;\r\n const error = get(methodes.formState.errors, props.name);\r\n const errorText = meta.invalid ? error.message : '';\r\n\r\n const [valueOpt, setvalueOpt] = React.useState('');\r\n\r\n const handleInput = (e, v, reason) => {\r\n if (reason === 'clear') {\r\n methodes.setValue(`applicants[${index}].address.location`, '');\r\n }\r\n setValue(e?.target?.value);\r\n let newOptions = [];\r\n if (valueOpt) {\r\n newOptions = [valueOpt];\r\n }\r\n if (data) {\r\n newOptions = [...data];\r\n }\r\n setOptions(newOptions);\r\n if (e?.target?.value === '') {\r\n clearSuggestions();\r\n setOptions([]);\r\n }\r\n };\r\n\r\n return (\r\n (\r\n \r\n typeof option === 'string' ? option : option.structured_formatting.main_text\r\n }\r\n {...props}\r\n options={options}\r\n filterOptions={(x) => x}\r\n onInputChange={handleInput}\r\n includeInputInList\r\n freeSolo\r\n renderInput={(params) => (\r\n {\r\n methodes.setValue(\r\n `applicants[${index}].address.location`,\r\n e?.target?.value,\r\n {\r\n shouldValidate: true\r\n }\r\n );\r\n }}\r\n />\r\n )}\r\n onChange={(event, newValue) => {\r\n if (newValue) {\r\n const {\r\n structured_formatting: { main_text: street, secondary_text }\r\n } = newValue;\r\n const [city, province] = secondary_text.replace(/ /g, '').split(',');\r\n getGeocode({ address: newValue.description })\r\n .then((results) => getZipCode(results[0], false))\r\n .then((postalCode) => {\r\n methodes.setValue(\r\n `applicants[${index}].address.postalCode`,\r\n postalCode,\r\n {\r\n shouldValidate: true\r\n }\r\n );\r\n });\r\n methodes.setValue(`applicants[${index}].address.location`, street, {\r\n shouldValidate: true\r\n });\r\n methodes.setValue(`applicants[${index}].address.city`, city, {\r\n shouldValidate: true\r\n });\r\n methodes.setValue(`applicants[${index}].address.province`, province, {\r\n shouldValidate: true\r\n });\r\n }\r\n\r\n setvalueOpt(newValue);\r\n clearSuggestions();\r\n setOptions([]);\r\n }}\r\n renderOption={(option) => {\r\n return (\r\n \r\n \r\n \r\n {option.structured_formatting.main_text}\r\n \r\n \r\n {option.structured_formatting.secondary_text}\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 Grid from '@material-ui/core/Grid';\r\nimport { TextFieldCustom } from './ui/TextFieldCustom';\r\nimport SelectFieldCustom from './ui/SelectFieldCustom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { PlacesAutocomplete } from './ui/PlacesAutocomplete';\r\nimport { useFieldArray, useFormContext } from 'react-hook-form';\r\n\r\nexport default function FormPersonalDetails(props) {\r\n const { t } = useTranslation();\r\n const { control } = useFormContext();\r\n const { fields } = useFieldArray({\r\n control,\r\n name: 'applicants',\r\n shouldUnregister: false\r\n });\r\n\r\n const provincesItems = t('los:province', { returnObjects: true });\r\n const occupanttype = t('los:occupanttype', { returnObjects: true });\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {t('personLabels.title')}\r\n
\r\n
\r\n
\r\n
\r\n {fields.map((applicant, i) => {\r\n return (\r\n
\r\n {i === 1 ? (\r\n <>\r\n
\r\n
\r\n
\r\n {t('personLabels.title2')}\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { Checkbox, FormControlLabel, FormControl, FormHelperText } from '@material-ui/core';\r\nimport { Controller, useFormContext, useController, get } from 'react-hook-form';\r\n\r\nexport const CheckBoxCustom = ({ label, onClick, ...props }) => {\r\n const { control, formState } = useFormContext();\r\n const { meta } = useController(props);\r\n const error = get(formState.errors, props.name);\r\n const errorText = meta.invalid ? error.message : '';\r\n return (\r\n \r\n (\r\n props.onChange(e.target.checked)}\r\n checked={props.value}\r\n color=\"primary\"\r\n onClick={onClick}\r\n />\r\n )}\r\n defaultValue={props.defaultValue}\r\n />\r\n }\r\n label={label}\r\n />\r\n {errorText}\r\n \r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { TextFieldCustom } from './ui/TextFieldCustom';\r\nimport { Box, Grid } from '@material-ui/core';\r\nimport SelectFieldCustom from './ui/SelectFieldCustom';\r\nimport { CheckBoxCustom } from './ui/CheckboxCustom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useFieldArray, useFormContext } from 'react-hook-form';\r\nimport { getCuCode } from '../utils';\r\nexport default function FormLoanDetails(props) {\r\n const { t, i18n } = useTranslation();\r\n const { control, getValues, setValue, watch } = useFormContext();\r\n const values = getValues();\r\n const [periodicPaymt, setPeriodicPaymt] = useState(0);\r\n const [ratesItems, setRatesItems] = useState([]);\r\n const { append, remove } = useFieldArray({\r\n control,\r\n name: 'applicants'\r\n });\r\n\r\n const CU_CODE = getCuCode();\r\n\r\n const isMortgage = values?.loan?.type === 'MTE' ? true : false;\r\n const isLineOfCredit = values?.loan?.type === 'LOC' ? true : false;\r\n const isAuthorizedoverDraft = values?.loan?.type === 'AOD' ? true : false;\r\n const { rates, loanPurpose, disableCalculate = false, rateText, rateTextFr } = props.data;\r\n const { loan } = values;\r\n let showPayment = true;\r\n if (disableCalculate || isLineOfCredit || isAuthorizedoverDraft) showPayment = false;\r\n const watchAmount = watch('loan.amount');\r\n const watchTerm = watch('loan.term');\r\n const watchFrequency = watch('loan.frequency');\r\n const watchAmortization = watch('loan.amortization');\r\n\r\n useEffect(() => {\r\n let tempRates = rates.filter((r) => r.type === values.loan.type);\r\n if (values.loan.product?.isPromo) {\r\n tempRates = tempRates.filter((r) => r.isPromo === true);\r\n }\r\n const ratesItems = tempRates.map((r) => {\r\n return { value: r.rateid, label: (i18n.language === 'fr' && r.descFr !== '' ? r.descFr : r.desc) };\r\n });\r\n setRatesItems(ratesItems);\r\n if (ratesItems.length === 1) {\r\n setValue('loan.termSelect', ratesItems[0].value);\r\n const { rate, term, amortization } = getTermAndInterestRate(ratesItems[0].value);\r\n setValue('loan.interestRate', rate);\r\n setValue('loan.term', term);\r\n setValue('loan.amortization', amortization/12);\r\n setValue('loan.rateid', ratesItems[0].value);\r\n } else {\r\n if (loan.termSelect !== '' && rates.filter((r) => r.rateid === loan.termSelect)[0].type !== loan.type)\r\n setValue('loan.termSelect', '');\r\n }\r\n }, []);\r\n const paymentfreq = t('los:paymentfreq', { returnObjects: true });\r\n\r\n useEffect(() => {\r\n const getPerodicPayment = () => {\r\n if (!loan.frequency || !loan.term || !loan.interestRate) return;\r\n // convert amorization in months\r\n loan.amortization *= 12;\r\n fetch(\r\n `${process.env.REACT_APP_BACKEND_URL}/v2/weblos/${CU_CODE}/payment/?amount=${loan.amount}&type=${loan.type}&frequency=${loan.frequency}&term=${loan.term}&amortization=${loan.amortization}&interestRate=${loan.interestRate}`\r\n )\r\n .then((res) => res.json())\r\n .then((payment) => {\r\n setValue('loan.payment', payment);\r\n setPeriodicPaymt(payment);\r\n });\r\n };\r\n\r\n getPerodicPayment();\r\n }, [watchAmount, watchTerm, watchFrequency, watchAmortization]);\r\n\r\n const handleClick = (event) => {\r\n if (event.target.checked) {\r\n append({\r\n firstName: '',\r\n lastName: '',\r\n dateOfBirth: '',\r\n address: {\r\n location: '',\r\n city: '',\r\n postalCode: '',\r\n unit: '',\r\n province: '',\r\n occupationtype: '',\r\n since: ''\r\n },\r\n email: '',\r\n phone: '',\r\n gender: '',\r\n employments: [\r\n {\r\n employer: '',\r\n since: '',\r\n earning: '',\r\n phone: '',\r\n occupation: '',\r\n status: ''\r\n }\r\n ]\r\n });\r\n } else {\r\n remove(1);\r\n }\r\n };\r\n\r\n const getTermAndInterestRate = (rateId) => {\r\n const { rate, term, amortization } = rates.find((r) => r.rateid === rateId);\r\n return { rate, term, amortization };\r\n };\r\n\r\n useEffect(() => {\r\n if (values?.loan?.type === 'MTE') {\r\n setValue('loan.amortization', 25);\r\n }\r\n if (isLineOfCredit || isAuthorizedoverDraft) {\r\n setValue('loan.showPayment', false);\r\n }\r\n setPeriodicPaymt(values?.loan?.payment);\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {t('loanLabels.title')}\r\n
\r\n
\r\n
\r\n \r\n {values?.loan?.type !== 'MTE' ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n getPerodicPayment(e.floatValue)}\r\n />\r\n \r\n \r\n \r\n \r\n {!isLineOfCredit && !isAuthorizedoverDraft ? (\r\n <>\r\n \r\n {\r\n // getPerodicPayment('', e.target.value);\r\n // }}\r\n />\r\n \r\n \r\n {\r\n const { rate, term, amortization } = getTermAndInterestRate(e.target.value);\r\n setValue('loan.interestRate', rate);\r\n setValue('loan.term', term);\r\n setValue('loan.amortization', amortization/12);\r\n setValue('loan.rateid', e.target.value);\r\n // getPerodicPayment('', '', '', rate, term);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n\r\n {isMortgage ? (\r\n \r\n {\r\n const { formattedValue, floatValue } = values;\r\n return (\r\n formattedValue === '' || (floatValue <= 25 && floatValue > 0)\r\n );\r\n }}\r\n />\r\n \r\n ) : null}\r\n\r\n \r\n \r\n \r\n {/* {values?.loan?.type !== 'LOC' ? (\r\n \r\n \r\n \r\n ) : null} */}\r\n \r\n \r\n {showPayment ? (\r\n
\r\n {/* \r\n \r\n \r\n \r\n {t('loanLabels.periodicPymt')}{' '}\r\n \r\n {'$' + periodicPaymt}\r\n \r\n \r\n \r\n {rateText ? (\r\n \r\n \r\n {rateText}\r\n \r\n \r\n ) : null}\r\n */}\r\n
\r\n
\r\n
\r\n \r\n {' '}\r\n {t('loanLabels.periodicPymt')}\r\n \r\n \r\n {periodicPaymt ? $ : null}\r\n {periodicPaymt ? periodicPaymt : '-'}\r\n \r\n
\r\n
\r\n
\r\n {rateText || rateTextFr ?
{(i18n.language === 'fr' && rateTextFr !== '') ? rateTextFr : rateText}
: null}\r\n
\r\n ) : null}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\r\nimport Grow from '@material-ui/core/Grow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Popper from '@material-ui/core/Popper';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MenuList from '@material-ui/core/MenuList';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport default function SplitButton({ onClick }) {\r\n const [open, setOpen] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n const [selectedIndex, setSelectedIndex] = React.useState(0);\r\n const { t } = useTranslation();\r\n const options = t('assetLabels.btnAsset', { returnObjects: true });\r\n\r\n const handleMenuItemClick = (event, index) => {\r\n setSelectedIndex(index);\r\n setOpen(false);\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n {options.map((option, index) => (\r\n handleMenuItemClick(event, index)}>\r\n {option}\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 { Grid, TextField, Typography } from '@material-ui/core';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport React from 'react';\r\nimport { Controller, useFormContext, useController } from 'react-hook-form';\r\nimport usePlacesAutocomplete, { getGeocode, getZipCode } from 'use-places-autocomplete';\r\n\r\nexport const AddressAutocomplete = (props) => {\r\n const { name, label, defaultValue } = props;\r\n const { meta } = useController(props);\r\n const [options, setOptions] = React.useState([]);\r\n const {\r\n suggestions: { data },\r\n setValue,\r\n clearSuggestions\r\n } = usePlacesAutocomplete({\r\n requestOptions: { componentRestrictions: { country: 'CA' }, debounce: 300 }\r\n });\r\n\r\n const methodes = useFormContext();\r\n const control = methodes.control;\r\n const errorText = meta.invalid ? 'Required' : '';\r\n const [valueOpt, setvalueOpt] = React.useState('');\r\n\r\n const handleInput = (e) => {\r\n setValue(e?.target?.value);\r\n let newOptions = [];\r\n if (valueOpt) {\r\n newOptions = [valueOpt];\r\n }\r\n if (data) {\r\n newOptions = [...data];\r\n }\r\n setOptions(newOptions);\r\n if (e?.target?.value === '') {\r\n clearSuggestions();\r\n setOptions([]);\r\n }\r\n };\r\n\r\n return (\r\n (\r\n \r\n typeof option === 'string'\r\n ? option\r\n : option.structured_formatting?.main_text\r\n }\r\n {...props}\r\n options={options}\r\n filterOptions={(x) => x}\r\n onInputChange={handleInput}\r\n includeInputInList\r\n freeSolo\r\n renderInput={(params) => (\r\n \r\n )}\r\n onChange={(event, newValue) => {\r\n const { terms } = newValue || {};\r\n const [city, province] = terms || [];\r\n if (newValue) {\r\n console.log(newValue);\r\n const primaryName = name.substring(0, name.lastIndexOf('.'));\r\n methodes.setValue(name, newValue.description);\r\n getGeocode({ address: newValue.description })\r\n .then((results) => getZipCode(results[0], false))\r\n .then((postalCode) => {\r\n methodes.setValue(\r\n `${primaryName}.address.postalCode`,\r\n postalCode\r\n );\r\n });\r\n methodes.setValue(\r\n `${primaryName}.address.location`,\r\n newValue.structured_formatting.main_text\r\n );\r\n // check is province is defined in terms[3]\r\n if (terms[3]?.value !== undefined && terms[3]?.value !== null) {\r\n methodes.setValue(`${primaryName}.address.city`, terms[2]?.value);\r\n methodes.setValue(`${primaryName}.address.province`, terms[3]?.value);\r\n }\r\n else {\r\n methodes.setValue(`${primaryName}.address.city`, city?.value);\r\n methodes.setValue(`${primaryName}.address.province`, province?.value);\r\n }\r\n }\r\n\r\n setvalueOpt(newValue);\r\n clearSuggestions();\r\n setOptions([]);\r\n }}\r\n renderOption={(option) => {\r\n return (\r\n \r\n \r\n \r\n {option.structured_formatting.main_text}\r\n \r\n \r\n {option.structured_formatting.secondary_text}\r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n )}\r\n />\r\n );\r\n};\r\n","import { Box, Grid, IconButton, Typography } from '@material-ui/core';\r\nimport React from 'react';\r\nimport { useFieldArray, useFormContext } from 'react-hook-form';\r\nimport SelectFieldCustom from '../ui/SelectFieldCustom';\r\nimport { TextFieldCustom } from '../ui/TextFieldCustom';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport SplitButton from '../ui/SplitButton';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AddressAutocomplete } from '../ui/AddressAutocomplete';\r\n\r\nexport const FormAssets = ({ indexApp, data }) => {\r\n const { control } = useFormContext();\r\n const { t } = useTranslation();\r\n const { fields: assetsFields, append: assetsAppend, remove: assetsRemove } = useFieldArray({\r\n control,\r\n name: `applicants[${indexApp}].assets`\r\n });\r\n const {\r\n fields: vehicledFields,\r\n append: vehiclesAppend,\r\n remove: vehiclesRemove\r\n } = useFieldArray({\r\n control,\r\n name: `applicants[${indexApp}].vehicles`\r\n });\r\n const {\r\n fields: propertyFields,\r\n append: propertyAppend,\r\n remove: propertyRemove\r\n } = useFieldArray({\r\n control,\r\n name: `applicants[${indexApp}].property`\r\n });\r\n\r\n const assettype = t('los:assettype', { returnObjects: true });\r\n const realestatetype = t('los:realestatetype', { returnObjects: true });\r\n\r\n return (\r\n <>\r\n \r\n \r\n {indexApp === 0\r\n ? t('employerLabels.titleAsset')\r\n : t('employerLabels.titleAsset2')}\r\n \r\n \r\n {assetsFields.map((asset, indexAss) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {indexAss > 0 ? ( */}\r\n \r\n {\r\n assetsRemove(indexAss);\r\n }}>\r\n \r\n \r\n \r\n {/* ) : null} */}\r\n \r\n \r\n );\r\n })}\r\n {/* {\r\n assetsAppend({ type: '', value: '' });\r\n }}\r\n size=\"small\"\r\n >\r\n {assetsFields.length === 0 ? 'Add asset' : 'Add another asset'}\r\n */}\r\n {vehicledFields.map((vehicle, indexVehicle) => {\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 {/* {indexVehicle > 0 ? ( */}\r\n \r\n {\r\n vehiclesRemove(indexVehicle);\r\n }}>\r\n \r\n \r\n \r\n {/* ) : null} */}\r\n \r\n
\r\n );\r\n })}\r\n {/* {\r\n vehiclesAppend({ make: '', model: '', year: '', value: '' });\r\n }}\r\n size=\"small\"\r\n >\r\n {assetsFields.length === 0 ? 'Add vehicle' : 'Add another vehicle'}\r\n */}\r\n {propertyFields.map((property, indexprop) => {\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 {/* {indexprop > 0 ? ( */}\r\n \r\n {\r\n propertyRemove(indexprop);\r\n }}>\r\n \r\n \r\n \r\n {/* ) : null} */}\r\n \r\n
\r\n );\r\n })}\r\n {/* {\r\n propertyAppend({ address: '', value: '' });\r\n }}\r\n size=\"small\"\r\n >\r\n {propertyFields.length === 0 ? 'Add property' : 'Add another property'}\r\n */}\r\n
\r\n {\r\n if (btnType === 0) assetsAppend({ type: '', value: '' });\r\n if (btnType === 1) vehiclesAppend({ make: '', model: '', year: '', value: '' });\r\n if (btnType === 2)\r\n propertyAppend({\r\n longAddress: '',\r\n address: { location: '', city: '', postalCode: '', province: '' },\r\n value: ''\r\n });\r\n }}\r\n />\r\n \r\n );\r\n};\r\n","import { Box, Button, Grid, IconButton, Typography } from '@material-ui/core';\r\nimport React from 'react';\r\nimport { useFieldArray } from 'react-hook-form';\r\nimport SelectFieldCustom from '../ui/SelectFieldCustom';\r\nimport { TextFieldCustom } from '../ui/TextFieldCustom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n\r\nexport const FormLiabilities = ({ indexApp, data }) => {\r\n const { t } = useTranslation();\r\n const {\r\n fields: liabilitiesFields,\r\n append: liabilitiesAppend,\r\n remove: liabilitiesRemove\r\n } = useFieldArray({\r\n name: `applicants[${indexApp}].liabilities`\r\n });\r\n\r\n const liabilitytype = t('los:liabilitytype', { returnObjects: true });\r\n\r\n return (\r\n <>\r\n \r\n \r\n {indexApp === 0\r\n ? t('employerLabels.titleLiability')\r\n : t('employerLabels.titleLiability2')}\r\n \r\n \r\n {liabilitiesFields.map((liability, indexLib) => {\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 {/* {indexLib > 0 ? ( */}\r\n \r\n {\r\n liabilitiesRemove(indexLib);\r\n }}>\r\n \r\n \r\n \r\n {/* ) : null} */}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n {\r\n liabilitiesAppend({ type: '', value: '' });\r\n }}>\r\n {t('liabilityLabels.addLiability')}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\nconst DialogTitle = withStyles(styles)((props) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nexport default function TermsDialog(props) {\r\n const { text, onClose, open } = props;\r\n const handleClose = () => {\r\n onClose();\r\n };\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n {t('termsTitle')}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Divider, Grid } from '@material-ui/core';\r\nimport React from 'react';\r\nimport { useFieldArray, useFormContext } from 'react-hook-form';\r\nimport SelectFieldCustom from '../ui/SelectFieldCustom';\r\nimport { TextFieldCustom } from '../ui/TextFieldCustom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const FormEmployments = ({ indexApp }) => {\r\n const { t } = useTranslation();\r\n const { control, watch } = useFormContext();\r\n const { fields } = useFieldArray({\r\n control,\r\n name: `applicants[${indexApp}].employments`\r\n });\r\n\r\n const occupation = t('los:occupation', { returnObjects: true });\r\n const employeestatus = t('los:employeestatus', { returnObjects: true });\r\n\r\n return (\r\n <>\r\n {indexApp === 1 ? (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n {indexApp === 0 ? t('employerLabels.title') : t('employerLabels.title2')}\r\n
\r\n
\r\n
\r\n {fields.map((employment, indexEmp) => {\r\n const empStatus = watch(`applicants[${indexApp}].employments[${indexEmp}].status`);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {empStatus !== 'U' ? (\r\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 ) : null}\r\n \r\n
\r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import { Box, Grid, Link, Typography } from '@material-ui/core';\r\nimport React, { useEffect } from 'react';\r\nimport { useFieldArray, useFormContext } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FormAssets } from './financials/FormAssets';\r\nimport { FormLiabilities } from './financials/FormLiabilities';\r\nimport TermsDialog from './TermsDialog';\r\nimport { CheckBoxCustom } from './ui/CheckboxCustom';\r\nimport { FormEmployments } from './financials/FormEmployments';\r\nimport { TextFieldCustom } from './ui/TextFieldCustom';\r\nimport SelectFieldCustom from './ui/SelectFieldCustom';\r\nexport default function FormEmployment(props) {\r\n const { t, i18n } = useTranslation();\r\n const { control, unregister } = useFormContext();\r\n const { fields: applicantsFields } = useFieldArray({\r\n control,\r\n name: 'applicants'\r\n });\r\n const [state, setState] = React.useState({\r\n checkedAgree: false\r\n });\r\n\r\n const handleChangeAgree = (event) => {\r\n setState({ ...state, [event.target.name]: event.target.checked });\r\n };\r\n\r\n const [openTermsDialog, setOpenTermsDialog] = React.useState(false);\r\n\r\n const { branches, Disclaimer = '', DisclaimerFr = '' } = props.data;\r\n\r\n useEffect(() => {\r\n if (branches == null || branches.length === 0) unregister('loan.branch');\r\n }, [branches]);\r\n\r\n return (\r\n
\r\n {applicantsFields.map((applicant, indexApp) => {\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 {branches?.length > 0 ? (\r\n
\r\n \r\n \r\n {t('branchTitle')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : null}\r\n\r\n
\r\n
\r\n \r\n \r\n {t('optionalCommentLabel')}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {t('agree.checkboxText')}{' '}\r\n {\r\n e.preventDefault();\r\n setOpenTermsDialog(true);\r\n }}>\r\n {t('agree.terms')}\r\n \r\n
\r\n }\r\n defaultValue={false}\r\n />\r\n {\r\n setOpenTermsDialog(false);\r\n }}\r\n />\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Typography from '@material-ui/core/Typography';\r\nexport default function Complete({ msg, msgFr }) {\r\n const { t, i18n } = useTranslation();\r\n return (\r\n
\r\n {t('complete.title')}\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\n\r\nexport default function ProductCard({\r\n id,\r\n type,\r\n title,\r\n onProductClick,\r\n selected,\r\n isPromo = false\r\n}) {\r\n return (\r\n \r\n
\r\n
{title}
\r\n {isPromo ? (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport ProductCard from './ui/ProductCard';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const LoanProduct = ({ rates, products }) => {\r\n const { getValues, setValue } = useFormContext();\r\n const [selected, setSelected] = useState('');\r\n const [promos, setPromos] = useState([]);\r\n const values = getValues();\r\n const { t, i18n } = useTranslation();\r\n\r\n const handelProductClick = (product, type, isPromo, id) => (e) => {\r\n //rest form\r\n restLoanValues();\r\n setValue('loan.type', type);\r\n setValue('loan.product.id', id);\r\n setValue('loan.product.title', product);\r\n setValue('loan.product.isPromo', isPromo);\r\n setSelected(product);\r\n };\r\n\r\n const restLoanValues = () => {\r\n setValue('loan.amount', '');\r\n setValue('loan.amortization', '');\r\n setValue('loan.frequency', '');\r\n setValue('loan.term', '');\r\n setValue('loan.payment', 0);\r\n setValue('loan.purpose', '');\r\n setValue('loan.interestRate', 0);\r\n };\r\n\r\n useEffect(() => {\r\n setSelected(values?.loan?.product?.title);\r\n }, [values?.loan?.product?.title]);\r\n\r\n useEffect(() => {\r\n if (rates) {\r\n const promos = rates.filter((a) => a.isPromo === true);\r\n if (promos) setPromos(promos);\r\n }\r\n }, [rates]);\r\n\r\n let cssGridCols = 'md:grid-cols-4';\r\n switch (products?.length) {\r\n case 2:\r\n cssGridCols = 'md:grid-cols-2';\r\n break;\r\n case 3:\r\n cssGridCols = 'md:grid-cols-3';\r\n break;\r\n default:\r\n cssGridCols = 'md:grid-cols-4';\r\n break;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {products.map((p, index) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n {promos.length > 0 ? (\r\n <>\r\n {promos.map((p, index) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n \r\n ) : null}\r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport DoneOutlinedIcon from '@material-ui/icons/DoneOutlined';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { LoanProduct } from './LoanProducts';\r\n\r\nexport default function Welcome(props) {\r\n const { t, i18n } = useTranslation();\r\n const { rates, loantype, homePageTitle1, homePageTitle2, homePageTitle1Fr, homePageTitle2Fr } = props.data;\r\n\r\n return (\r\n
\r\n
{i18n.language === 'fr' && homePageTitle1Fr !== '' ? homePageTitle1Fr : homePageTitle1}
\r\n

{t('selectProduct')}

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

{t('applyRequirement.title')}

\r\n
\r\n
    \r\n
  • \r\n
    \r\n \r\n
    \r\n
    {t('applyRequirement.canadian')}
    \r\n
  • \r\n
  • \r\n
    \r\n \r\n
    \r\n
    {t('applyRequirement.age')}
    \r\n
  • \r\n
  • \r\n
    \r\n \r\n
    \r\n
    {t('applyRequirement.bankruptcy')}
    \r\n
  • \r\n
\r\n
\r\n
{i18n.language === 'fr' && homePageTitle2Fr !== '' ? homePageTitle2Fr : homePageTitle2}
\r\n
\r\n );\r\n}\r\n","import { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst useSubmitApplication = (url) => {\r\n const { t, i18n } = useTranslation();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n const submit = async (data) => {\r\n setIsLoading(true);\r\n data.lang = i18n.language || 'en'; // default language to english\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(data)\r\n };\r\n const response = await fetch(url, requestOptions);\r\n if (!response.ok) {\r\n const message = t('errorMsgSubmit');\r\n setIsLoading(false);\r\n setError({ message });\r\n return response;\r\n }\r\n const d = await response.json();\r\n setIsLoading(false);\r\n return d;\r\n };\r\n\r\n return [submit, isLoading, error];\r\n};\r\n\r\nexport default useSubmitApplication;\r\n","import React from 'react';\r\nimport { XCircleIcon } from '@heroicons/react/outline';\r\n\r\nfunction ErrorMessage({ message, type }) {\r\n let icon = null;\r\n let colorClass = null;\r\n switch (type) {\r\n case 'error':\r\n icon = ;\r\n colorClass = 'bg-red-100 border-red-600';\r\n break;\r\n case 'success':\r\n icon = ;\r\n colorClass = 'bg-green-100 border-green-600';\r\n break;\r\n case 'warning':\r\n icon = ;\r\n colorClass = 'bg-yellow-100 border-yellow-600';\r\n break;\r\n default:\r\n icon = ;\r\n colorClass = 'bg-red-100 border-red-600';\r\n break;\r\n }\r\n return (\r\n
\r\n \r\n
{icon}
\r\n
{message}
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ErrorMessage;\r\n","import * as yup from 'yup';\r\nimport { checkDate, checkName, checkAccents, checkSpecialChars } from './utils';\r\n\r\n// const validation = {\r\n// required: 'This is required',\r\n// phone: 'Phone number is not valid',\r\n// agree: 'You must agree with the terms and conditions',\r\n// email: 'Email is not valid',\r\n// sin: 'SIN is not valid',\r\n// date: 'Date is not valid'\r\n// };\r\n\r\nconst phoneRegExp = /\\D*([2-9]\\d{2})(\\D*)([2-9]\\d{2})(\\D*)(\\d{4})\\D*/;\r\n\r\nexport const formDefaultValues = {\r\n loan: {\r\n amount: '',\r\n type: '',\r\n interestRate: '0',\r\n rateid: '',\r\n term: '',\r\n amortization: '',\r\n frequency: '',\r\n purpose: '',\r\n fundsNeededDate: '',\r\n product: {\r\n id: '',\r\n title: '',\r\n isPromo: false\r\n },\r\n coBorrower: false,\r\n payment: 0,\r\n showPayment: true,\r\n comment: '',\r\n branch: '',\r\n termSelect: '',\r\n isMultiBranch: false\r\n },\r\n applicants: [\r\n {\r\n firstName: '',\r\n lastName: '',\r\n dateOfBirth: '',\r\n address: {\r\n location: '',\r\n city: '',\r\n postalCode: '',\r\n unit: '',\r\n province: '',\r\n occupationtype: '',\r\n since: '',\r\n poBox: ''\r\n },\r\n email: '',\r\n phone: '',\r\n sin: '',\r\n memberKey: '',\r\n employments: [\r\n {\r\n employer: '',\r\n since: '',\r\n earning: '',\r\n phone: '',\r\n occupation: '',\r\n status: ''\r\n }\r\n ],\r\n assets: [{ type: '', value: '', id: '' }],\r\n liabilities: [{ type: '', balance: '', id: '', payment: '' }]\r\n }\r\n ],\r\n checkedAgree: false,\r\n lang: ''\r\n};\r\n\r\nexport const validationSchema = (t) => {\r\n const requiredMsg = t('validation.required');\r\n return [\r\n null,\r\n yup.object({\r\n loan: yup.object({\r\n amount: yup.string().required(requiredMsg),\r\n frequency: yup.string().required(requiredMsg),\r\n purpose: yup.string().required(requiredMsg),\r\n term: yup.string().required(requiredMsg),\r\n interestRate: yup.string().required(requiredMsg),\r\n fundsNeededDate: yup\r\n .string()\r\n .required(requiredMsg)\r\n .test('dateIsValid', t('validation.date'), checkDate('funds')),\r\n termSelect: yup.string().required(requiredMsg)\r\n })\r\n }),\r\n yup.object({\r\n applicants: yup.array().of(\r\n yup.object().shape({\r\n firstName: yup\r\n .string()\r\n .required(requiredMsg)\r\n .test('nameIsValid', t('validation.name'), checkName),\r\n lastName: yup\r\n .string()\r\n .required(requiredMsg)\r\n .test('nameIsValid', t('validation.lastName'), checkName),\r\n dateOfBirth: yup\r\n .string()\r\n .required(requiredMsg)\r\n .test('dateIsValid', t('validation.date'), checkDate('birthday')),\r\n address: yup.object({\r\n location: yup.string().required(requiredMsg),\r\n city: yup.string().required(requiredMsg),\r\n province: yup.string().required(requiredMsg),\r\n postalCode: yup.string().required(requiredMsg),\r\n since: yup\r\n .string()\r\n .required(requiredMsg)\r\n .test('dateIsValid', t('validation.date'), checkDate('other')),\r\n occupationtype: yup.string().required(requiredMsg)\r\n }),\r\n email: yup\r\n .string()\r\n .email(t('validation.email'))\r\n .required(requiredMsg)\r\n .test('checkAccents', t('validation.email'), checkAccents),\r\n phone: yup\r\n .string()\r\n .required(requiredMsg)\r\n .matches(phoneRegExp, t('validation.phone'))\r\n })\r\n )\r\n }),\r\n yup.object({\r\n applicants: yup.array().of(\r\n yup.object().shape({\r\n employments: yup.array().of(\r\n yup.object().shape({\r\n employer: yup.string().when('status', {\r\n is: (status) => status !== 'U',\r\n then: yup\r\n .string()\r\n .required(requiredMsg)\r\n .test('checkSpecialChars', t('validation.employer'), checkSpecialChars)\r\n }),\r\n since: yup.string().when('status', {\r\n is: (status) => status !== 'U',\r\n then: yup\r\n .string()\r\n .required(requiredMsg)\r\n .test('dateIsValid', t('validation.date'), checkDate('other'))\r\n }),\r\n earning: yup.string().when('status', {\r\n is: (status) => status !== 'U',\r\n then: yup.string().required(requiredMsg)\r\n }),\r\n occupation: yup.string().when('status', {\r\n is: (status) => status !== 'U',\r\n then: yup.string().required(requiredMsg)\r\n }),\r\n status: yup.string().required(requiredMsg)\r\n })\r\n )\r\n })\r\n ),\r\n loan: yup.object({\r\n branch: yup.string().when('isMultiBranch', {\r\n is: (isMultiBranch) => isMultiBranch === true,\r\n then: yup.string().required(requiredMsg)\r\n })\r\n }),\r\n checkedAgree: yup.boolean().oneOf([true], t('validation.agree'))\r\n })\r\n ];\r\n}\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport FormPersonalDetails from './FormPersonalDetails';\r\nimport FormLoanDetails from './FormLoanDetails';\r\nimport FormFinancialsDetails from './FormFinancialsDetails';\r\nimport Complete from './Complete';\r\nimport Welcome from './Welcome';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FormProvider, useForm } from 'react-hook-form';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { getLanguage, getCuCode, getToken, bindForm } from '../utils';\r\nimport useSubmitApplication from '../hooks/useSubmitApplication';\r\nimport ErrorMessage from './ui/ErrorMessage';\r\nimport { formDefaultValues, validationSchema } from '../FormConsts';\r\nimport jwt_decode from 'jwt-decode'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n buttonProgress: {\r\n color: blue[500],\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n }\r\n}));\r\n\r\nfunction getStepContent(step, data, msg, msgFr) {\r\n switch (step) {\r\n case 0:\r\n return ;\r\n case 1:\r\n return ;\r\n case 2:\r\n return ;\r\n case 3:\r\n return ;\r\n case 4:\r\n return ;\r\n default:\r\n return 'Unknown step';\r\n }\r\n}\r\n\r\nexport default function MultiStepForm() {\r\n const classes = useStyles();\r\n const [activeStep, setActiveStep] = useState(0);\r\n const { t, i18n } = useTranslation();\r\n const steps = t('steps', { returnObjects: true });\r\n const mobileScreen = useMediaQuery('(max-width:600px)');\r\n const btnNextRef = useRef(null);\r\n const CU_CODE = getCuCode();\r\n const url = `${process.env.REACT_APP_BACKEND_URL}/v2/weblos/${CU_CODE}/loan`;\r\n const [sumbit, isLoading] = useSubmitApplication(url);\r\n const [errorFetchParams, setErrorFetchParams] = useState(null);\r\n const [completedFormMsg, setCompletedFormMsg] = useState('');\r\n const [completedFormMsgFr, setCompletedFormMsgFr] = useState('');\r\n\r\n const onSubmit = async (data) => {\r\n if (isLoading) return;\r\n if (await sumbit(data)) setActiveStep(4);\r\n };\r\n\r\n const [data, setData] = useState([]);\r\n\r\n const currentValidationSchema = validationSchema(t)[activeStep];\r\n const methods = useForm({\r\n shouldUnregister: false,\r\n defaultValues: formDefaultValues,\r\n resolver: yupResolver(currentValidationSchema),\r\n mode: 'onChange'\r\n });\r\n const { handleSubmit, watch, reset, trigger, setValue } = methods;\r\n\r\n const handleNext = async () => {\r\n const isStepValid = await trigger();\r\n if (isStepValid) setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n };\r\n\r\n const handleReset = () => {\r\n setActiveStep(0);\r\n reset();\r\n };\r\n\r\n useEffect(() => {\r\n // Add person fetch\r\n const fetchMember = (settings) => {\r\n window.localStorage.clear();\r\n const token = getToken();\r\n if (token && settings.enableT24) {\r\n localStorage.setItem('access_token', token);\r\n try {\r\n var member = jwt_decode(token);\r\n if (member.languageCode === 'fr') i18n.changeLanguage('fr');\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: 'Bearer ' + localStorage.getItem('access_token')\r\n },\r\n body: JSON.stringify({\r\n containerNO: member.containerNO,\r\n languageCode: member.containerNO,\r\n institutionCode: CU_CODE\r\n })\r\n };\r\n fetch(`${process.env.REACT_APP_BACKEND_URL}/cfg/fetch`, requestOptions)\r\n .then(async (response) => {\r\n const data = await response.json();\r\n if (!response.ok) {\r\n const error = (data && data.Message) || response.status;\r\n return Promise.reject(error);\r\n }\r\n bindForm(setValue, data);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n } catch (error) {\r\n //Invalid token\r\n console.log(error);\r\n }\r\n }\r\n };\r\n \r\n const fetchAppParams = async () => {\r\n const lang = getLanguage() || 'en';\r\n i18n.changeLanguage(lang);\r\n const response = await fetch(`${process.env.REACT_APP_BACKEND_URL}/v2/weblos/${CU_CODE}?lang=${lang}`);\r\n if (!response.ok) {\r\n const errorMessage = await response.text();\r\n const msg = `${response.statusText} - ${errorMessage}`;\r\n throw new Error(msg);\r\n }\r\n const data = await response.json();\r\n const { branches } = data;\r\n if (branches?.length > 0) setValue('loan.isMultiBranch', true);\r\n console.log(data);\r\n i18n.addResourceBundle(lang, 'los', data, true);\r\n setData(data);\r\n setCompletedFormMsg(data.completedFormText);\r\n setCompletedFormMsgFr(data.completedFormTextFr);\r\n fetchMember(data);\r\n };\r\n\r\n fetchAppParams().catch((error) => {\r\n setErrorFetchParams(`Oops, somthing has gone wrong : ${error.message}`);\r\n });\r\n\r\n i18n.on('languageChanged', (lng) => {\r\n if (lng === 'fr') {\r\n fetch(`${process.env.REACT_APP_BACKEND_URL}/v2/weblos/${CU_CODE}?lang=fr`)\r\n .then((res) => res.json())\r\n .then((data) => {\r\n i18n.addResourceBundle('fr', 'los', data, true);\r\n setData(data);\r\n setCompletedFormMsg(data.completedFormText);\r\n setCompletedFormMsgFr(data.completedFormTextFr);\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n if (errorFetchParams) return ;\r\n\r\n return data.length === 0 ? (\r\n \r\n ) : (\r\n
\r\n
\r\n \r\n {steps.map((label, index) => {\r\n const stepProps = {};\r\n const labelProps = {};\r\n return (\r\n \r\n \r\n {!mobileScreen ? label : null}\r\n \r\n \r\n );\r\n })}\r\n \r\n
\r\n {activeStep === steps.length ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n \r\n
\r\n
\r\n {getStepContent(activeStep, data, completedFormMsg, completedFormMsgFr)}\r\n
\r\n
\r\n \r\n {activeStep === steps.length - 1 ? (\r\n
\r\n \r\n {t('btnSubmit')}\r\n \r\n {isLoading && (\r\n \r\n )}\r\n
\r\n ) : (\r\n \r\n {t('btnNext')}\r\n \r\n )}\r\n
\r\n\r\n {/*
{JSON.stringify(watch(), null, 2)}
*/}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import {\r\n unstable_createMuiStrictModeTheme as createMuiTheme,\r\n ThemeProvider\r\n} from '@material-ui/core';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport './App.css';\r\nimport CUNotFound from './components/CUNotFound';\r\nimport Header from './components/Header';\r\nimport MultiStepForm from './components/MultiStepForm';\r\nimport { getCuCode } from './utils';\r\n\r\nconst customTheme = createMuiTheme({\r\n typography: {\r\n subtitle2: {\r\n fontSize: 18\r\n },\r\n h6: {\r\n fontSize: 18\r\n }\r\n },\r\n palette: {\r\n primary: {\r\n main: blue[700]\r\n }\r\n },\r\n overrides: {\r\n MuiInputLabel: {\r\n outlined: {\r\n backgroundColor: '#F9FAFB',\r\n paddingLeft: 2,\r\n paddingRight: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nfunction App() {\r\n const CU_CODE = getCuCode();\r\n return (\r\n \r\n
\r\n {window.location !== window.parent.location || !CU_CODE ? null :
}\r\n {CU_CODE ? : }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport Backend from 'i18next-http-backend';\r\n//import LanguageDetector from 'i18next-browser-languagedetector';\r\n// don't want to use this?\r\n// have a look at the Quick start guide\r\n// for passing in lng and translations on init\r\n\r\nconst languages = ['en', 'fr'];\r\ni18n\r\n // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\r\n // learn more: https://github.com/i18next/i18next-http-backend\r\n .use(Backend)\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n //.use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n // init i18next\r\n // for all options read: https://www.i18next.com/overview/configuration-options\r\n .init({\r\n fallbackLng: 'en',\r\n debug: false,\r\n whitelist: languages,\r\n interpolation: {\r\n escapeValue: false // not needed for react as it escapes by default\r\n },\r\n backend: {\r\n loadPath: `./locales/{{lng}}/{{ns}}.json`\r\n }\r\n });\r\n\r\ni18n.on('languageChanged', (lng) => {\r\n document.documentElement.setAttribute('lang', lng);\r\n});\r\n\r\nexport default i18n;\r\n","import React, { Suspense } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport './i18n';\r\nReactDOM.render(\r\n \r\n }>\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}