{"version":3,"sources":["store/actions/index.js","assets/Asset 1.jpg","assets/Asset 2.jpg","assets/Asset 3.jpg","components/LoanPurpose.js","components/PurchasePrice.js","components/DownPayment.js","components/RefinanaceForm.js","context/ratesContext.js","components/CashOutRefinanceForm.js","components/ZipCode.js","modules/themes/LOSITE.js","modules/ThemeConfig.js","components/CountryState.js","components/StateCounty.js","components/CreditScore.js","assets/excellent.png","assets/verry_good.png","assets/good.png","assets/fair.png","assets/poor.png","assets/Asset 4.jpg","assets/Asset 5.jpg","assets/Asset 6.jpg","assets/Asset 7.jpg","components/PropertyType.js","assets/Asset 8.jpg","assets/Asset 9.jpg","assets/Asset 10.jpg","components/PropUsed.js","assets/yes_check.png","components/VARatesPoints.js","assets/no_slash.png","assets/Asset 11.jpg","assets/Asset 12.jpg","components/LowerRates.js","modules/PriceForState.js","components/RatesData.js","components/rates.js","modules/Rates.js","App.js","store/reducers/nameReducer.js","store/reducers/index.js","serviceWorker.js","index.js"],"names":["TypeSelected","inputValue","type","payload","PurchasePriceUpdate","DownPaymentInUSDsUpdate","DownPaymentInPercentsUpdate","CreditScoreUpdate","ShowButtons","propertyTypeUpdate","propertyUsedUpdate","lowRatesOptionUpdate","estimatedValueUpdate","loanBalanceUpdate","cashoutAmountUpdate","zipCodeUpdate","countryStateUpdate","stateCountyUpdate","veteranUpdate","LoanPurpose","loanPurpose","setLoanPurpose","useState","dispatch","useDispatch","loanPurposeRedux","useSelector","state","nameReducer","userSession","UserSession","myRefLP","useRef","useEffect","ref","localStorage","getItem","window","scrollTo","current","offsetTop","behavior","setCustomQuote","length","setPurchasePrice","setDownPaymentAmount","setCashOutAmount","setEstimatedValue","setCurrentLoanBalance","_jsxs","React","Fragment","children","_jsx","Form","Group","className","Row","Col","xs","sm","md","lg","Button","onClick","location","reload","Check","inline","id","name","value","label","checked","onChange","e","target","src","imgPurchase","alt","imgRefinance","imgCashOut","LoanAmount","purchasePrice","purchasePriceRedux","myRefPurchase","document","getElementById","disabled","as","NumberFormat","placeholder","displayType","thousandSeparator","prefix","decimalScale","fixedDecimalScale","onValueChange","values","DownPayment","downPaymentInUSDs","setdownPaymentInUSDs","downPaymentInPercents","setDownPaymentInPercents","myRefDP","setLocalStoreValues","onBlur","suffix","loanBalance","setLoanBalance","estimatedValue","evalue","lbalance","RatesProvider","useRatesContext","constate","setState","CreditScore","propertyType","propertyUse","lowRates","undefined","lowRatesOption","loanAmount","estimatedHomeValue","cashoutAmount","zipCode","countryState","stateCounty","stateCountyName","veteran","stateList","lowRatesUpdate","estimatedHomeValueUpdate","loanAmountTotalUpdate","stateCountyNameUpdate","stateListUpdate","cashout","setCashout","ZipCode","zipCodeRedux","setZipCode","zipcodeError","setZipCodeError","JSON","parse","getStateList","propertyState","myRefZip","setPropertyZipCode","axios","get","process","headers","then","response","setPropertyCounty","data","counties","code","setPropertyState","Label","format","propZipCode","filter","catch","error","LOSITE","Component","isNoCCProgram","isLowPaymentProgram","getRequestRates","requestRates","ThemeConfig","constructor","props","super","this","loadThemeParams","leadSource","loste","NET007","domain","lowr","defaultRates","CountryState","loading","setLoading","setError","propAddressState","setPropAddressState","statesOptions","setStatesOptions","countryStateRedux","stateCountyRedux","myRefState","override","css","getPropertyZipCode","getPropertyState","map","item","index","DotLoader","size","color","Select","StateCounty","propAddressCounty","setPropAddressCounty","countyOptions","setCountyOptions","myRefCounty","propertyCounty","getPropertyCounty","companyCode","setCreditScore","creditScoreRedux","myRefCS","PropertyType","setPropertyType","unitsInput","setUnitsInput","propertyTypeRedux","myRefProp","handleProperty","Image","imgSingleFamily","imgCondo","imgManufactured","imgUnitsHome","Fade","in","PropertyUsed","propertyUsed","setPropUsed","propertyUseRedux","myRef","setPropertyUse","imgPrimaryHome","imgInvestment","imgSecondaryHome","VARatesPoints","va","setVa","vaRedux","myRefVA","setVeteran","imgYes","setLowRatesOption","lowRatesOptionRedux","myRefLR","setNoClosingCosts","imgNoClosingCosts","imgLowerPayment","PriceForState","getStatePriceFile","statePrice","getPriceForState","price","RatesData","themeConfig","priceForStateConfig","PriceForStateConfig","themeLeadSource","noCCProgram","setNoCCProgram","loanTypeName","setLoanTypeName","countyName","setCountyName","countyCode","setCountyCode","propTypeName","setPropTypeName","propUsed","ltv","setLtv","todayDate","Date","shortDate","Intl","DateTimeFormat","myRefRD","productsList","setProductsList","tabKey","setTabKey","showCvnRates","setCvnRates","showFHARates","setFHARates","showVARates","setVARates","showUsdaRates","setUsdaRates","show","setShow","conv15A","setConv15A","conv30A","setConv30A","fha15A","setFha15A","fha30A","setFha30A","va15A","setVa15A","va30A","setVa30A","usda15A","setUsda15A","usda30A","setUsda30A","defaultTab","setDefaultTab","handleResultsProdTabs","key","setItem","getNoClosingCosts","getPurchasePrice","getLoanPurpose","getPropertyType","getPropertyUse","Number","getDownPaymentAmount","getCurrentLoanBalance","getCashOutAmount","loanLtv","getEstimatedValue","post","downPayment","propertyValue","currentLoanBalance","propertyTypeKeyword","occupancy","propertyZipCode","creditScore","getCreditScore","getVeteran","promoCode","userId","loID","branchCode","branch","lockPeriod","matchExactPrice","scenarios","parDataResponse","closeToParDataResponse","Object","keys","forEach","match","push","loanType","toUpperCase","amortTerm","loanTerm","toLowerCase","product","includes","sort","a","b","rate","setWebOffer","stringify","console","log","PulseLoader","Container","Tabs","activeKey","transition","onSelect","k","Tab","eventKey","title","apr","ApplyNow","loanOfficerUid","showCustomizeLOApplyNowUrl","loanOfficerEmail","style","fontSize","PI","href","phoneNumber","phoneText","Table","responsive","bordered","hover","jumpToStep","Rates","branchLeadSource","steps","component","PurchaseSteps","PurchasePrice","FullDocsSteps","CurrentLoanBalance","CashOutRefiSteps","CashOutFinanceForm","splice","LowerRates","StepZilla","showSteps","nextButtonText","backButtonText","showNavigation","preventEnterSubmission","dontValidate","nextTextOnFinalActionStep","prevBtnOnLastStep","themeLoanPurpose","stateName","setStateName","productLoading","setProductLoading","showPricing","setShowPricing","convTab","setConvTab","fhaTab","setFhaTab","vaTab","setVaTab","usdaTab","setUsdaTab","showCHMModal","setCHMModal","defaultCreditScore","setDefaultCreditScore","branchLoanAmount","setBranchLoanAmount","branchPropertyValue","setBranchPropertyValue","pricingResponse","setPricingResponse","fhaLimit","setFhaLimit","convLimit","setConvLimit","vaLimit","setVaLimit","usdaLimit","setUSdaLimit","productCreationTime","setProductCreationTime","customButton","setCustomButton","showDescription","setShowDescription","customRateQuote","setCustomRateQuote","handleProdTabs","saveCVNDetails","saveSelectedProductDetails","selectedProduct","getSelectedProduct","setLoanType","saveInitialRequestData","requestedJson","setLeadSource","setBranchCode","setPromoCode","async","locationError","getPrice","isAutismHeroes","isFLW","userStateCode","propertyStateData","find","d","county","zipcode","config","method","url","success","parseValue","dateTime","parData","CONV_30_YR_FIXED","closeToParData","CONV_15_YR_FIXED","countyLimit","FHA_15_YR_FIXED","FHA_30_YR_FIXED","VA_30_YR_FIXED","VA_15_YR_FIXED","USDA_15_YR_FIXED","USDA_30_YR_FIXED","theme_id","configData","getDefaultConfig","rechecked_domain","setStateList","timeout","checkIfPricingIsApplicableForLO","userReqData","handleLoanPurpose","_Fragment","fluid","defaultActiveKey","offertext","aprEstimated","RatesSlider","ScrollIntoView","smooth","selector","getElementsByClassName","Modal","centered","onHide","handleCHMClose","Header","closeButton","Body","App","loanOfficerId","setLoanOfficerId","offerText","setOfferText","queryParams","URLSearchParams","search","promoOfferText","promoCde","arguments","action","rootReducer","combineReducers","Boolean","hostname","store","createStore","__REDUX_DEVTOOLS_EXTENSION__","createRoot","render","StrictMode","Provider","navigator","serviceWorker","ready","registration","unregister","message"],"mappings":"q1CAAO,MAAMA,EAAgBC,IAClB,CACHC,KAAM,eACNC,QAASF,IAGJG,EAAuBH,IACzB,CACHC,KAAM,sBACNC,QAASF,IAGJI,EAA2BJ,IAC7B,CACHC,KAAM,0BACNC,QAASF,IAGJK,EAA+BL,IACjC,CACHC,KAAM,+BACNC,QAASF,IAGJM,EAAqBN,IACvB,CACHC,KAAM,oBACNC,QAASF,IAGJO,EAAeP,IACjB,CACHC,KAAM,oBACNC,QAASF,IAIJQ,EAAsBR,IACxB,CACHC,KAAM,qBACNC,QAASF,IAGJS,EAAsBT,IACxB,CACHC,KAAM,qBACNC,QAASF,IASJU,EAAwBV,IAC1B,CACHC,KAAM,iBACNC,QAASF,IAGJW,EAAwBX,IAC1B,CACHC,KAAM,wBACNC,QAASF,IAGJY,EAAqBZ,IACvB,CACHC,KAAM,qBACNC,QAASF,IAGJa,EAAuBb,IACzB,CACHC,KAAM,uBACNC,QAASF,IAeJc,EAAiBd,IACnB,CACHC,KAAM,gBACNC,QAASF,IAGJe,EAAsBf,IACxB,CACHC,KAAM,qBACNC,QAASF,IAGJgB,EAAqBhB,IACvB,CACHC,KAAM,oBACNC,QAASF,IASJiB,EAAiBjB,IACnB,CACHC,KAAM,gBACNC,QAASF,ICtHF,UAA0B,oCCA1B,MAA0B,oCCA1B,MAA0B,oC,cCe1B,SAASkB,IAWtB,MAAOC,EAAaC,GAAkBC,mBAAS,IACzCC,EAAWC,cACXC,EAAmBC,aAAYC,GAASA,EAAMC,YAAY1B,OAE1D2B,EAAc,IAAIC,cAElBC,EAAUC,iBAAO,MA8CvB,OA5CAC,qBAAU,KAvBSC,OAyBhBC,aAAaC,QAAQ,iBAzBLF,EAyBmCH,EAxBtDM,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,WAwBQ,GAC3D,IAEHR,qBAAU,KAILV,EAASf,GAAY,IAExBqB,EAAYa,gBAAe,GAE3BrB,EAAeI,GAEfI,EAAYR,eAAeI,GAEvBL,EAAYuB,OAAS,IACvBpB,EAASf,GAAY,IAED,mBAAhBY,GAAoD,kBAAhBA,IACtCG,EAASnB,EAAoB,IAC7BmB,EAASlB,EAAwB,IAGjCwB,EAAYe,iBAAiB,GAC7Bf,EAAYgB,qBAAqB,GACjChB,EAAYiB,iBAAiB,IAGX,aAAhB1B,IACFG,EAASX,EAAqB,IAE9BW,EAASV,EAAkB,IAE3BU,EAAST,EAAoB,IAE7Be,EAAYkB,kBAAkB,GAC9BlB,EAAYmB,sBAAsB,GAClCnB,EAAYiB,iBAAiB,IAEjC,GACC,CAAC1B,IAGF6B,eAACC,IAAMC,SAAQ,CAAAC,SAAA,CACbC,cAACC,UAAKC,MAAK,CAACC,UAAU,OAAMJ,SAC1BH,eAACQ,UAAG,CAACD,UAAU,qCAAoCJ,SAAA,CACjDC,cAACK,UAAG,CACFC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJN,UAAU,wBAAuBJ,SAEjCC,cAAA,MAAAD,SAAI,qDAENC,cAACK,UAAG,CACFE,GAAI,GACJE,GAAI,EACJN,UAAU,2GAA0GJ,SAEpHC,cAACU,UAAM,CACLP,UAAU,aACVQ,QAASA,IAAM3B,OAAO4B,SAASC,QAAO,GAAOd,SAE5C,SAGLH,eAACS,UAAG,CAACxB,IAAKH,EAAS+B,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACxCH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,eACHC,KAAK,eACLC,MAAM,WACN,aAAW,WACXC,MAAM,WACNC,QAAyB,aAAhBrD,EACTsD,SAAWC,IACTtD,EAAesD,EAAEC,OAAOL,OACxBhD,EAASvB,EAAa2E,EAAEC,OAAOL,OAAO,IAI1ClB,cAAA,OACEwB,IAAKC,EACLC,IAAI,gBACJvB,UAAW,6EACmB,aAAhBpC,EAA6B,SAAW,SAG1DiC,cAAA,MAAAD,SAAI,gBAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1BH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLmE,GAAG,mBACHC,KAAK,mBACLF,QAAM,EACNG,MAAM,iBACNC,MAAM,OACN,aAAW,OACXC,QAAyB,mBAAhBrD,EACTsD,SAAWC,IACTtD,EAAesD,EAAEC,OAAOL,OACxBhD,EAASvB,EAAa2E,EAAEC,OAAOL,OAAO,IAI1ClB,cAAA,OACEwB,IAAKG,EACLD,IAAI,iBACJvB,UAAW,+CACO,mBAAhBpC,EAAmC,SAAW,SAIpDiC,cAAA,MAAAD,SAAI,iBAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1BH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,cACHC,KAAK,cACLC,MAAM,gBACN,aAAW,gBACXC,MAAM,gBACNC,QAAyB,kBAAhBrD,EACTsD,SAAWC,IACTtD,EAAesD,EAAEC,OAAOL,OACxBhD,EAASvB,EAAa2E,EAAEC,OAAOL,OAAO,IAI1ClB,cAAA,OACEwB,IAAKI,EACLF,IAAI,gBACJvB,UAAW,+CACO,kBAAhBpC,EAAkC,SAAW,SAInDiC,cAAA,MAAAD,SAAI,0BAIVC,cAACU,UAAM,CACLP,UAAU,mEACVQ,QAASA,IAAM3B,OAAO4B,SAASC,QAAO,GAAOd,SAE5C,SAIT,CCzKe,SAAS8B,IAEtB,MAAOC,EAAevC,GAAoBtB,mBAAS,IAE7CC,EAAWC,cACX4D,EAAqB1D,aAAYC,GAASA,EAAMC,YAAYuD,gBAG5DtD,EAAc,IAAIC,cAElBuD,EAAgBrD,iBAAO,MAwB7B,OAtBAC,qBAAU,KAhBSC,OAoBhBC,aAAaC,QAAQ,iBApBLF,EAoBmCmD,EAnBtDhD,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,WAmBc,GACjE,IAEHR,qBAAU,KACRV,EAASf,GAAY,IAErB8E,SAASC,eAAe,eAAeC,UAAW,EAElD5C,EAAiBwC,GAEjBvD,EAAYe,iBAAiBwC,GAEzBD,EAAcxC,OAAS,GACvBpB,EAASf,GAAY,GAEzB,GACC,CAAC2E,IAGFlC,eAACQ,UAAG,CAACD,UAAW,+CAA+CJ,SAAA,CAC7DC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,MAAIG,UAAU,oCAAmCJ,SAAC,qBAEpDC,cAACC,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAEV,SACzBC,cAACqC,IAAY,CACXxD,IAAKmD,EACL7B,UAAU,eACVmC,YAAY,iBACZpB,MAAOY,EACPS,YAAa,QACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,EACnBC,cAAgBC,IACdtD,EAAiBsD,EAAO3B,OACxBhD,EAASnB,EAAoB8F,EAAO3B,OAAO,QAOvD,CC6Ce4B,MAzGf,WAEI,MAAMtE,EAAc,IAAIC,cAClBP,EAAWC,cACXG,EAAQD,aAAYC,GAASA,EAAMC,eAElCwE,EAAmBC,GAAwB/E,mBAASK,EAAMyE,mBAAqB,IAC/EE,EAAuBC,GAA4BjF,mBAASK,EAAM2E,uBAAyB,GAG/FE,EAAUxE,iBAAO,MAoDvB,SAASyE,IACR5E,EAAYgB,qBAAqBlB,EAAMyE,kBACrC,CAGA,OAvDAnE,qBAAU,KAfOC,OAiBZC,aAAaC,QAAQ,iBAjBTF,EAiBuCsE,EAjB/BnE,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAACC,SAAU,WAiBd,GAC7D,IAGHR,qBAAU,KACNqD,SAASC,eAAe,eAAeC,UAAW,EAE9Cc,GACA/E,EAASf,GAAY,IAIrB4F,GACA7E,EAASf,GAAY,GAEzB,GAED,CAAC8F,EAAsBF,IAqCtBnD,eAACQ,UAAG,CAACD,UAAW,+CAA+CJ,SAAA,CAC3DC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACZC,cAAA,MAAIG,UAAU,gCAA+BJ,SAAC,mBAE9CC,cAACC,UAAKC,MAAK,CAACkC,GAAI/B,UAAKG,GAAI,EAAGC,GAAI,EAAEV,SAC9BC,cAACqC,IAAY,CAACxD,IAAKsE,EAAShD,UAAU,eAClCmC,YAAY,UACZpB,MAAO6B,EAAmBR,YAAa,QACvCC,mBAAmB,EAAMC,OAAQ,IACjCC,aAAc,EAAGC,mBAAmB,EACpCC,cAAgBC,IACZG,EAAqBH,EAAO3B,OAC5BhD,EAASlB,EAAwB6F,EAAO3B,OAAO,EAGnDmC,OAhDhB,WACIH,EAAyB5E,EAAMyE,kBAAoBzE,EAAMwD,cAAgB,KACzE5D,EAASjB,EAA4BqB,EAAMyE,kBAAoBzE,EAAMwD,cAAgB,MAErFsB,IAEI9E,EAAMyE,mBAAqB,IAC3BG,EAAyB,GACzBhF,EAASjB,EAA4B,IAG7C,MAwCQ+C,cAACC,UAAKC,MAAK,CAACkC,GAAI/B,UAAKG,GAAI,EAAGC,GAAI,EAAEV,SAC9BC,cAACqC,IAAY,CAAClC,UAAU,eACpBmC,YAAY,cACZpB,MAAO+B,EAAuBV,YAAa,QAC3CC,mBAAmB,EAAMc,OAAQ,IACjCZ,aAAc,EAAGC,mBAAmB,EACpCC,cAAgBC,IACZK,EAAyBL,EAAO3B,OAChChD,EAASjB,EAA4B4F,EAAO3B,QAE5C8B,EAAqB1E,EAAMwD,cAAgBe,EAAO3B,MAAQ,IAAI,EAElEmC,OAjDhB,WACIL,EAAqB1E,EAAMwD,cAAgBxD,EAAM2E,sBAAwB,KACzE/E,EAASlB,EAAwBsB,EAAMwD,cAAgBxD,EAAM2E,sBAAwB,MAErFG,IAEIH,GAAyB,IACzBD,EAAqB,GACrB9E,EAASlB,EAAwB,IAGzC,QA2CJ,EClHe,SAAS6E,IAGtB,MAAMrD,EAAc,IAAIC,eAEjB8E,EAAaC,GAAkBvF,mBAAS,KACxCwF,EAAgB/D,GAAqBzB,mBAAS,IAE/CC,EAAWC,cACXuF,EAASrF,aAAYC,GAASA,EAAMC,YAAYkF,iBAChDE,EAAWtF,aAAYC,GAASA,EAAMC,YAAYgF,cAoBxD,OAhBA3E,qBAAU,KACRV,EAASf,GAAY,IAErB8E,SAASC,eAAe,eAAeC,UAAW,EAElDzC,EAAkBgE,GAClBF,EAAeG,GAEfnF,EAAYkB,kBAAkBgE,GAC9BlF,EAAYmB,sBAAsBgE,GAE9BF,EAAenE,OAAS,GAAKiE,EAAYjE,OAAS,GAEpDpB,EAASf,GAAY,GAAM,GAC5B,CAACsG,EAAgBF,IAGlBvD,cAACH,IAAMC,SAAQ,CAAAC,SACbC,cAACI,UAAG,CAACD,UAAU,oDAAmDJ,SAChEH,eAACQ,UAAG,CAACD,UAAW,+CAA+CJ,SAAA,CAC7DH,eAACK,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1CC,cAAA,MAAIG,UAAU,WAAUJ,SAAC,0DAGzBC,cAACqC,IAAY,CACXlC,UAAU,oBACVmC,YAAY,uBACZpB,MAAOqC,EACPhB,YAAa,QACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,EACnBC,cAAgBC,IACdW,EAAeX,EAAO3B,OACtBhD,EAASV,EAAkBqF,EAAO3B,OAAO,OAK/CtB,eAACK,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAEV,SAAA,CACzBC,cAAA,MAAIG,UAAU,WAAUJ,SAAC,yBACzBC,cAACqC,IAAY,CACXlC,UAAU,oBACVmC,YAAY,uBACZpB,MAAOuC,EACPlB,YAAa,QACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,EACnBC,cAAgBC,IACdnD,EAAkBmD,EAAO3B,OACzBhD,EAASX,EAAqBsF,EAAO3B,OAAO,aAS5D,C,aC+BO,MAAO0C,EAAeC,GAAmBC,aAnHhD,WACE,MAAOxF,EAAOyF,GAAY9F,mBAAS,CACjCpB,KAAM,GACNiF,cAAe,GACfiB,kBAAmB,GACnBE,sBAAuB,GACvBe,YAAa,GACb7G,aAAa,EACb8G,aAAc,GACdC,YAAa,GACbC,cAAUC,EACVC,oBAAgBD,EAChBX,eAAgB,GAChBF,YAAa,GACbe,WAAY,GACZC,mBAAoB,GACpBC,cAAe,GACfC,QAAS,GACTC,aAAc,iBACdC,YAAa,GACbC,gBAAiB,GACjBC,QAAS,GACTC,UAAW,KAkEb,MAAO,CACLxG,QACA3B,aAjEoBG,IACpBiH,EAAS,IAAKzF,EAAOzB,KAAMC,GAAU,EAiErCC,oBA/D2BD,IAC3BiH,EAAS,IAAKzF,EAAOwD,cAAehF,GAAU,EA+D9CE,wBA7D+BF,IAC/BiH,EAAS,IAAKzF,EAAOyE,kBAAmBjG,GAAU,EA6DlDG,4BA3DmCH,IACnCiH,EAAS,IAAKzF,EAAO2E,sBAAuBnG,GAAU,EA2DtDI,kBAzDyBJ,IACzBiH,EAAS,IAAKzF,EAAO0F,YAAalH,GAAU,EAyD5CK,YAvDmBL,IACnBiH,EAAS,IAAKzF,EAAOnB,YAAaL,GAAU,EAuD5CM,mBArD0BN,IAC1BiH,EAAS,IAAKzF,EAAO2F,aAAcnH,GAAU,EAqD7CO,mBAnD0BP,IAC1BiH,EAAS,IAAKzF,EAAO4F,YAAapH,GAAU,EAmD5CiI,eAjDsBjI,IACtBiH,EAAS,IAAKzF,EAAO6F,SAAUrH,GAAU,EAiDzCQ,qBA/C4BR,IAC5BiH,EAAS,IAAKzF,EAAO+F,eAAgBvH,GAAU,EA+C/CS,qBA7C4BT,IAC5BiH,EAAS,IAAKzF,EAAOmF,eAAgB3G,GAAU,EA6C/CU,kBA3CyBV,IACzBiH,EAAS,IAAKzF,EAAOiF,YAAazG,GAAU,EA2C5CW,oBAzC2BX,IAC3BiH,EAAS,IAAKzF,EAAOkG,cAAe1H,GAAU,EAyC9CkI,yBAvCgClI,IAChCiH,EAAS,IAAKzF,EAAOiG,mBAAoBzH,GAAU,EAuCnDmI,sBArC6BnI,IAC7BiH,EAAS,IAAKzF,EAAOgG,WAAYxH,GAAU,EAqC3CY,cAnCqBZ,IACrBiH,EAAS,IAAKzF,EAAOmG,QAAS3H,GAAU,EAmCxCa,mBAjC0Bb,IAC1BiH,EAAS,IAAKzF,EAAOoG,aAAc5H,GAAU,EAiC7Cc,kBA/ByBd,IACzBiH,EAAS,IAAKzF,EAAOqG,YAAa7H,GAAU,EA+B5CoI,sBA7B6BpI,IAC7BiH,EAAS,IAAKzF,EAAOsG,gBAAiB9H,GAAU,EA6BhDe,cA3BqBf,IACrBiH,EAAS,IAAKzF,EAAOuG,QAAS/H,GAAU,EA2BxCqI,gBAzBuBrI,IACvBiH,EAAS,IAAKzF,EAAOwG,UAAWhI,GAAU,EA0B9C,ICzGe,SAAS+E,IACvB,MAAMrD,EAAc,IAAIC,eAIdgF,EAAgB/D,GAAqBzB,mBAAS,KAC9CsF,EAAaC,GAAkBvF,mBAAS,KACxCmH,EAASC,GAAcpH,mBAAS,IAEpCC,EAAWC,cACXuF,EAASrF,aAAYC,GAASA,EAAMC,YAAYgG,qBAC7CZ,EAAWtF,aAAYC,GAASA,EAAMC,YAAY+F,aAClDE,EAAgBnG,aAAYC,GAASA,EAAMC,YAAYiG,gBAwB7D,OAnBA5F,qBAAU,KACNV,EAASf,GAAY,IAErB8E,SAASC,eAAe,eAAeC,UAAW,EAElDzC,EAAkBgE,GAClBF,EAAeG,GACf0B,EAAWb,GAEjBhG,EAAYkB,kBAAkBgE,GAC9BlF,EAAYmB,sBAAsBgE,GAClCnF,EAAYiB,iBAAiB+E,GAEnBf,GAAkBF,GAAe6B,GAC1ClH,EAASf,GAAY,GAAM,GAGvB,CAACsG,EAAgBF,EAAa6B,IAG7BpF,cAACH,IAAMC,SAAQ,CAAAC,SACXH,eAACQ,UAAG,CAACD,UAAW,mEAAmEJ,SAAA,CAC/EH,eAACK,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAEV,SAAA,CACvBC,cAAA,MAAIG,UAAU,MAAKJ,SAAC,0DACpBC,cAACqC,IAAY,CAAClC,UAAU,eAAemC,YAAY,uBAC/CpB,MAAOqC,EAAahB,YAAa,QACjCC,mBAAmB,EAAMC,OAAQ,IAAKC,aAAc,EACpDC,mBAAmB,EACnBC,cAAgBC,IACZW,EAAeX,EAAO3B,OACtBhD,ET4BjB,CACHrB,KAAM,wBACNC,QS9BmD+F,EAAO3B,OAAO,OAIzDtB,eAACK,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAEV,SAAA,CACvBC,cAAA,MAAAD,SAAI,oBACJC,cAACqC,IAAY,CAAClC,UAAU,eAAemC,YAAY,kBAC/CpB,MAAOkE,EAAS7C,YAAa,QAC7BC,mBAAmB,EAAMC,OAAQ,IACjCC,aAAc,EAAGC,mBAAmB,EACpCC,cAAgBC,IACZwC,EAAWxC,EAAO3B,OAClBhD,EAAST,EAAoBoF,EAAO3B,OAAO,OAIvDtB,eAACK,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAEV,SAAA,CACvBC,cAAA,MAAAD,SAAI,yBACJC,cAACqC,IAAY,CAAClC,UAAU,eACpBmC,YAAY,uBACZpB,MAAOuC,EAAgBlB,YAAa,QACpCC,mBAAmB,EAAMC,OAAQ,IACjCC,aAAc,EAAGC,mBAAmB,EACpCC,cAAgBC,IACZnD,EAAkBmD,EAAO3B,OACzBhD,ETHjB,CACHrB,KAAM,4BACNC,QSCsD+F,EAAO3B,OAAO,WAO5E,CCrEe,SAASoE,KAQtB,MAAMpH,EAAWC,cACXoH,EAAelH,aAAYC,GAASA,EAAMC,YAAYkG,WAErDA,EAASe,GAAcvH,mBAAS,KAChCwH,EAAcC,GAAmBzH,mBAAS,IAG3CO,EAAc,IAAIC,cACxB,IAAIqG,EAAYa,KAAKC,MAAMpH,EAAYqH,gBACnCC,EAAgB,GAEpB,MAAMC,EAAWpH,iBAAO,MAiFxB,OAhCAC,qBAAU,KAxESC,OA0EhBC,aAAaC,QAAQ,iBA1ELF,EA0EmCkH,EAzEtD/G,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,WAyES,GAC5D,IAEHR,qBAAU,KACR4G,EAAWD,GAEXrH,EAASf,GAAY,IAEC,GAAlBsH,EAAQnF,SACVd,EAAYwH,mBAAmBvB,GAC/BwB,IACGC,IAAIC,iEAAmD1B,EAAS,GAAI,CACnE2B,QAAS,CAAE,eAAgB,sBAE5BC,MAAMC,IACL9H,EAAY+H,kBAAkBD,EAASE,KAAKC,SAAS,GAAGC,MACxDxI,EAASN,EAAkB0I,EAASE,KAAKC,SAAS,GAAGC,OACrDlI,EAAYmI,iBAAiBL,EAASE,KAAKlI,OAE3CJ,EAASP,EAAmB2I,EAASE,KAAKlI,OAAO,OAIlDmG,GAAWA,EAAQnF,OAAS,KAE/B2C,SAASC,eAAe,eAAeC,UAAW,EAClDuD,EAAgB,IAClB,GACC,IAGD1F,cAACH,IAAMC,SAAQ,CAAAC,SACbH,eAACQ,UAAG,CAACD,UAAU,qCAAoCJ,SAAA,CACjDC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,MAAAD,SAAI,8DAENC,cAACK,UAAG,CAACG,GAAI,GAAGT,SACT0F,EACCzF,cAAA,KAAGG,UAAU,mBAAkBJ,SAAE0F,IAC/B,OAEN7F,eAACK,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAEV,SAAA,CACzBC,cAACC,UAAK2G,MAAK,CAACzG,UAAU,kBAAiBJ,SAAC,YACxCC,cAACqC,IAAY,CACXxD,IAAKkH,EACL5F,UAAU,eACVmC,YAAY,oBACZuE,OAAO,QACP3F,MAAOuD,EACPlC,YAAa,QACbC,mBAAmB,EACnBG,mBAAmB,EACnBC,cAAgBC,IArG1B,IAAuBiE,IAsGGjE,EAAO3B,MArG/BsE,EAAWsB,GAEe,GAAtBA,EAAYxH,QACd2G,IACGC,IAAIC,iEAAmDW,EAAa,CACnEV,QAAS,CAAE,eAAgB,sBAE5BC,MAAMC,IACLR,EAAgBhB,EAAUiC,QACvBzI,GAAUA,EAAMoI,MAAQJ,EAASE,KAAKlI,QAEpCwH,GAAkBA,EAAcxG,QAQnCd,EAAYwH,mBAAmBc,GAC/BtI,EAAYmI,iBAAiBL,EAASE,KAAKlI,OAC3CE,EAAY+H,kBAAkBD,EAASE,KAAKC,SAAS,GAAGC,MAExDxI,EAASR,EAAcoJ,IAEvB5I,EAASN,EAAkB0I,EAASE,KAAKC,SAAS,GAAGC,OAErDxI,EAASP,EAAmB2I,EAASE,KAAKlI,QAC1C2D,SAASC,eAAe,eAAeC,UAAW,IAhBlDF,SAASC,eAAe,eAAeC,UAAW,EAElDjE,EAASR,EAAc,KACvBgI,EACE,sDAAsDY,EAASE,KAAKlI,SAaxE,IAED0I,OAAO1F,IACNoE,EAAgBpE,EAAEgF,SAASE,KAAKS,MAAM,IAIxCH,EAAYxH,OAAS,IAEvB2C,SAASC,eAAe,eAAeC,UAAW,EAElDjE,EAASR,EAAc,KACvBc,EAAYwH,mBAAmB,IAC/BN,EAAgB,IA2DmB,WAOzC,C,yCCnJA,MAAMwB,WAAeC,YACpBC,gBACC,OAAO,CACR,CAEAC,sBACC,OAAO,CACR,CAEGC,kBACI,OAAOC,EACX,EAGWL,U,UCkBf,MAAMM,WAAoBL,YACtBM,YAAYC,GACRC,MAAMD,GACNE,KAAKC,gBAAgBH,EAAMI,WAC/B,CAEAD,gBAAgBC,GACZ,OAAQA,GACJ,IAAK,SACD,MAAMC,EAAQ,IAAIC,GAClBJ,KAAKL,aAAeQ,EAAMT,kBAC1BM,KAAKR,cAAgBW,EAAMX,cAC3BQ,KAAKP,oBAAsBU,EAAMV,oBACjCO,KAAKK,OAAS,sBACd,MACJ,IAAK,OACD,MAAMC,EAAO,IAAIF,GACjBJ,KAAKL,aAAeW,EAAKZ,kBACzBM,KAAKR,cAAgBc,EAAKd,cAC1BQ,KAAKP,oBAAsBa,EAAKb,oBAChCO,KAAKK,OAAS,sBACd,MACJ,QACIL,KAAKL,aAAeY,GACpBP,KAAKR,eAAgB,EACrBQ,KAAKP,qBAAsB,EAGvC,EAIWG,UCzCA,SAASY,GAAaV,GACnC,MAAMlJ,EAAc,IAAIC,eAKjB4J,EAASC,GAAcrK,oBAAS,IAChCgJ,EAAOsB,GAAYtK,mBAAS,OAE5BuK,EAAkBC,GAAuBxK,mBAAS,KAElDyK,EAAeC,GAAoB1K,mBAAS,IAE7CC,EAAWC,cACXyK,EAAoBvK,aAAYC,GAASA,EAAMC,YAAYmG,eAC3DmE,EAAmBxK,aAAYC,GAASA,EAAMC,YAAYoG,cAI1DmE,GADiBzK,aAAYC,GAASA,EAAMC,YAAYuG,YAC3CnG,iBAAO,OACN,IAAI6I,GAAYE,GACTO,OAE3BrJ,qBAAU,KA3BSC,OA6BhBC,aAAaC,QAAQ,iBA7BLF,EA6BmCiK,EA5BtD9J,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,YA8BpD6C,SAASC,eAAe,eAAeC,UAAW,CAAK,GACtD,IAEH,MAAM4G,EAAWC,KAAG;;;IA8EpB,OAzEApK,qBAAU,KACR,IAAI6F,EAAUjG,EAAYyK,qBACtBnD,EAAgBtH,EAAY0K,mBAC5BpE,EAAYa,KAAKC,MAAMpH,EAAYqH,gBAGvC4C,EAAoBG,GAEpBpK,EAAYmI,iBAAiBiC,GAEzBJ,EAAiBlJ,OAAS,GAC5BpB,EAASf,GAAY,IAIvBwL,EACE7D,EAAUqE,KAAI,CAACC,EAAMC,IACnBrJ,cAAA,UAAoBkB,MAAOkI,EAAK1C,KAAK3G,SAClCqJ,EAAKnI,MADKoI,MAMb5E,EAAQnF,OAAS,GAEfwG,EAAcxG,OAAS,IACzBmJ,EAAoB3C,GAEpB5H,EAASP,EAAmBmI,KAWV,GAAlBrB,EAAQnF,SACVgJ,GAAW,GACXrC,IACGC,IAAIC,iEAAmD1B,EAAS,GAAI,CACnE2B,QAAS,CAAE,eAAgB,sBAE5BC,MAAMC,IACLmC,EAAoBnC,EAASE,KAAKlI,OAElCE,EAAYmI,iBAAiBL,EAASE,KAAKlI,OAE3CJ,EAASP,EAAmB2I,EAASE,KAAKlI,QAG1CgK,GAAW,EAAM,IAElBtB,OAAOC,IACNqB,GAAW,GACXC,EAAStB,EAAM,IAErB,GAGC,IAYDjH,cAACH,IAAMC,SAAQ,CAAAC,SACbH,eAACQ,UAAG,CAACD,UAAU,qCAAoCJ,SAAA,CACjDC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,MAAAD,SAAI,iBAELsI,EACCrI,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,OAAKG,UAAU,gBAAeJ,SAC5BC,cAACsJ,KAAS,CACRN,IAAKD,EACLQ,KAAM,GACNC,MAAO,UACPnB,QAASA,QAKfzI,eAACK,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAGD,GAAI,GAAGT,SAAA,CACjCC,cAACC,UAAK2G,MAAK,CAACzG,UAAU,kBAAiBJ,SAAC,UACxCC,cAACC,UAAKwJ,OAAM,CACV5K,IAAKiK,EACL5H,MAAOsH,EACPlG,YAAY,iBACZjB,SAAWC,IACTmH,EAAoBnH,EAAEC,OAAOL,OAhCrC2H,EAAiBvJ,OAAS,IAC5BpB,EAASN,EAAkB,KAE3BY,EAAY+H,kBAAkB,KA+BpBrI,EAASP,EAAmB2D,EAAEC,OAAOL,OAAO,EAE5CnB,SAED2I,WAOf,CC6BegB,OA9Kf,SAAqBhC,GAEnB,MAAMlJ,EAAc,IAAIC,eAEjB4J,EAASC,GAAcrK,oBAAS,IAChCgJ,EAAOsB,GAAYtK,mBAAS,OAC5B0L,EAAmBC,GAAwB3L,mBAAS,KACpD4L,EAAeC,GAAoB7L,mBAAS,IAE7CgK,EADc,IAAIT,GAAYE,GACTO,OACrB/J,EAAWC,cACX0K,EAAmBxK,aAAYC,GAASA,EAAMC,YAAYoG,cAG1DoE,EAAWC,KAAG;;;IAKde,EAAcpL,iBAAO,MAqH3B,OAnHAC,qBAAU,KAzBSC,OA2BhBC,aAAaC,QAAQ,iBA3BLF,EA2BmCkL,EA1BtD/K,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,WA0BY,GAC/D,IAEHR,qBAAU,KACR,IAAIkH,EAAgBtH,EAAY0K,mBAC5Bc,EAAiBxL,EAAYyL,oBAC7BxF,EAAUjG,EAAYyK,qBACVtD,KAAKC,MAAMpH,EAAYqH,gBACvC5D,SAASC,eAAe,eAAeC,UAAW,EAE9C0G,IACFe,EAAqBf,GACrBrK,EAAY+H,kBAAkBsC,IAGhC3K,EAASf,GAAY,IAIjBsH,EAAQnF,OAAS,GACnBgJ,GAAW,GAEXrC,IACGC,IACCC,4EACEL,EACF,CAAEoE,YAAa,YAAajC,OAAQA,GACpC,CACE7B,QAAS,CAAE,eAAgB,sBAG9BC,MAAMC,IACLwD,EACExD,EAASE,KAAKC,SAAS0C,KAAI,CAACC,EAAMC,IAChCrJ,cAAA,UAAoBkB,MAAOkI,EAAK1C,KAAK3G,SAClCqJ,EAAKnI,MADKoI,MAObW,EAAe1K,OAAS,GAC1BsK,EAAqBI,GAErB9L,EAASN,EAAkBoM,MAK3BJ,EAAqBtD,EAASE,KAAKC,SAAS,GAAGC,MAE/ClI,EAAY+H,kBAAkBD,EAASE,KAAKC,SAAS,GAAGC,MAExDxI,EAASN,EAAkB0I,EAASE,KAAKC,SAAS,GAAGC,QAIvD4B,GAAW,EAAM,IAElBtB,OAAOC,IACNqB,GAAW,GACXC,EAAStB,EAAM,KAKM,GAAlBxC,EAAQnF,SACfgJ,GAAW,GACXrC,IACGC,IAAIC,iEAAmD1B,EAAS,GAAI,CACnE2B,QAAS,CAAE,eAAgB,sBAE5BC,MAAMC,IACLwD,EACExD,EAASE,KAAKC,SAAS0C,KAAI,CAACC,EAAMC,IAChCrJ,cAAA,UAAoBkB,MAAOkI,EAAK1C,KAAK3G,SAClCqJ,EAAKnI,MADKoI,MAObW,EAAe1K,OAAS,GAC1BsK,EAAqBI,GAErB9L,EAASN,EAAkBoM,MAK3BJ,EAAqBtD,EAASE,KAAKC,SAAS,GAAGC,MAE/ClI,EAAY+H,kBAAkBD,EAASE,KAAKC,SAAS,GAAGC,MACxDxI,EAASN,EAAkB0I,EAASE,KAAKC,SAAS,GAAGC,QAGvD4B,GAAW,EAAM,IAElBtB,OAAOC,IACNqB,GAAW,GACXC,EAAStB,EAAM,IAErB,GASC,IAGDjH,cAACH,IAAMC,SAAQ,CAAAC,SACbH,eAACQ,UAAG,CAACD,UAAU,qCAAoCJ,SAAA,CACjDC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,MAAAD,SAAI,oDAELsI,EACCrI,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,OAAKG,UAAU,gBAAeJ,SAC5BC,cAACsJ,KAAS,CACRN,IAAKD,EACLQ,KAAM,GACNC,MAAO,UACPnB,QAASA,QAKfrI,cAACC,UAAKC,MAAK,CAACkC,GAAI/B,UAAKI,GAAI,EAAGD,GAAI,GAAGT,SACjCC,cAACC,UAAKwJ,OAAM,CACV5K,IAAKkL,EACL7I,MAAOyI,EACPrH,YAAY,kBACZjB,SAAWC,IACTsI,EAAqBtI,EAAEC,OAAOL,OAC9BhD,EAASN,EAAkB0D,EAAEC,OAAOL,OAAO,EAE3CnB,SAED8J,UAOf,ECtLe,SAAS7F,KAEvB,MAAMxF,EAAc,IAAIC,eAEduF,EAAamG,GAAkBlM,mBAAS,IAEzCC,EAAWC,cACXiM,EAAmB/L,aAAYC,GAASA,EAAMC,YAAYyF,cAG7DqG,EAAU1L,iBAAO,MAoBpB,OAlBAC,qBAAU,KAdOC,OAgBZC,aAAaC,QAAQ,iBAhBTF,EAgBuCwL,EAhB/BrL,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAACC,SAAU,WAgBd,GAC7D,IACHR,qBAAU,KACNV,EAASf,GAAY,IAGrBgN,EAAeC,GAErB5L,EAAY2L,eAAeC,GAEjBpG,EAAY1E,OAAS,GAC9BpB,EAASf,GAAY,GAAM,GAGvB,CAAC6G,IAGAhE,cAACH,IAAMC,SAAQ,CAAAC,SACXH,eAACQ,UAAG,CAACD,UAAU,gCAA+BJ,SAAA,CAC1CC,cAACK,UAAG,CAACI,GAAI,GAAIN,UAAU,mBAAkBJ,SACrCC,cAAA,MAAAD,SAAI,iCAERC,cAACC,UAAKC,MAAK,CAACC,UAAU,OAAMJ,SACxBH,eAACQ,UAAG,CAACD,UAAU,qCAAoCJ,SAAA,CAC/CH,eAACS,UAAG,CAACxB,IAAKwL,EAAS5J,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACtCH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACpBC,cAACC,UAAKa,MAAK,CACPjE,KAAK,QACLkE,QAAM,EACNC,GAAG,YACHC,KAAK,cACLC,MAAM,YACN,aAAW,YACXC,MAAM,YACNC,QAAyB,cAAhB4C,EACT3C,SAAUC,IACN6I,EAAe7I,EAAEC,OAAOL,OACxBhD,EAAShB,EAAkBoE,EAAEC,OAAOL,OAAO,IAGnDlB,cAAA,OAAKwB,ICxEtB,y1JDyEqBE,IAAI,kBACJvB,UAAW,qFACO,cAAhB6D,EAA8B,SAAW,SAEnDhE,cAAA,MAAAD,SAAI,wBAE1BH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACNH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACpBC,cAACC,UAAKa,MAAK,CACPjE,KAAK,QACLkE,QAAM,EACNC,GAAG,WACHC,KAAK,cACLC,MAAM,WACN,aAAW,YACXC,MAAM,YACNC,QAAyB,aAAhB4C,EACT3C,SAAUC,IACN6I,EAAe7I,EAAEC,OAAOL,OACxBhD,EAAShB,EAAkBoE,EAAEC,OAAOL,OAAO,IAGnDlB,cAAA,OAAKwB,IE/FtB,y+JFgGqBE,IAAI,kBACJvB,UAAW,qFACO,aAAhB6D,EAA6B,SAAW,SAElDhE,cAAA,MAAAD,SAAI,yBAERH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACxBH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACpBC,cAACC,UAAKa,MAAK,CACPjE,KAAK,QACLkE,QAAM,EACNC,GAAG,OACHC,KAAK,cACLC,MAAM,OACN,aAAW,OACXC,MAAM,OACNC,QAAyB,SAAhB4C,EACT3C,SAAUC,IACN6I,EAAe7I,EAAEC,OAAOL,OACxBhD,EAAShB,EAAkBoE,EAAEC,OAAOL,OAAO,IAGnDlB,cAAA,OAAKwB,IGtHtB,qyJHuHqBE,IAAI,aACJvB,UAAW,qFACO,SAAhB6D,EAAyB,SAAW,SAE9ChE,cAAA,MAAAD,SAAI,oBAERH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACxBH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACpBC,cAACC,UAAKa,MAAK,CACPjE,KAAK,QACLmE,GAAG,OACHC,KAAK,cACLF,QAAM,EACNG,MAAM,OACNC,MAAM,OACN,aAAW,OACXC,QAAyB,SAAhB4C,EACT3C,SAAUC,IACN6I,EAAe7I,EAAEC,OAAOL,OACxBhD,EAAShB,EAAkBoE,EAAEC,OAAOL,OAAO,IAGnDlB,cAAA,OAAKwB,II7ItB,6jKJ8IqBE,IAAI,OACJvB,UAAW,qFACO,SAAhB6D,EAAyB,SAAW,SAE9ChE,cAAA,MAAAD,SAAI,oBAERH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACxBH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACpBC,cAACC,UAAKa,MAAK,CACPjE,KAAK,QACLkE,QAAM,EACNC,GAAG,OACHC,KAAK,cACLC,MAAM,OACN,aAAW,OACXC,MAAM,OACNC,QAAyB,SAAhB4C,EACT3C,SAAUC,IACN6I,EAAe7I,EAAEC,OAAOL,OACxBhD,EAAShB,EAAkBoE,EAAEC,OAAOL,OAAO,IAGnDlB,cAAA,OAAKwB,IKpKtB,ixJLqKqBE,IAAI,OACJvB,UAAW,qFACO,SAAhB6D,EAAyB,SAAW,SAE9ChE,cAAA,MAAAD,SAAI,4BAOhC,C,uBMhLe,OAA0B,oCCA1B,OAA0B,oCCA1B,OAA0B,oCCA1B,OAA0B,oCCmB1B,SAASuK,KAEtB,MAAM9L,EAAc,IAAIC,eAEjBwF,EAAcsG,GAAmBtM,mBAAS,KAC1CuM,EAAYC,GAAiBxM,mBAAS,IAEvCC,EAAWC,cACXuM,EAAoBrM,aAAYC,GAASA,EAAMC,YAAY0F,eAG3D0G,EAAYhM,iBAAO,MAkCzB,SAASiM,EAAe1J,GACtBqJ,EAAgBrJ,GAChB1C,EAAY+L,gBAAgBrJ,EAC9B,CAEA,OArCAtC,qBAAU,KAjBSC,OAmBhBC,aAAaC,QAAQ,iBAnBLF,EAmBmC8L,EAlBtD3L,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,WAkBU,GAC7D,IAEHR,qBAAU,KAQR,OAPAV,EAASf,GAAY,IAGrBoN,EAAgBG,GAEhBlM,EAAY+L,gBAAgBG,GAEpBzG,GACN,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,YACHwG,EAAc,SAKdxG,EAAa3E,OAAS,GACxBpB,EAASf,GAAY,GAAM,GAE5B,CAAC8G,EAAcuG,IAYhBxK,cAACH,IAAMC,SAAQ,CAAAC,SACbH,eAACK,UAAKC,MAAK,CAACC,UAAU,OAAMJ,SAAA,CAC1BH,eAACQ,UAAG,CAACD,UAAU,gCAA+BJ,SAAA,CAC5CC,cAACK,UAAG,CAACI,GAAI,GAAIN,UAAU,mBAAkBJ,SACvCC,cAAA,MAAAD,SAAI,kCAENH,eAACS,UAAG,CAACxB,IAAK8L,EAAWlK,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1CH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,cACHE,MAAM,MACNC,MAAM,gBACNC,QAA0B,QAAjB6C,EACT5C,SAAWC,IACTsJ,EAAetJ,EAAEC,OAAOL,OACxBuJ,EAAc,IACdvM,EAASd,EAAmBkE,EAAEC,OAAOL,OAAO,IAIhDlB,cAAC6K,KAAK,CACJrJ,IAAKsJ,GACLpJ,IAAI,qBACJvB,UAAW,iFACwB,QAAjB8D,EAAyB,SAAW,SAG1DjE,cAAA,MAAAD,SAAI,qBAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1BH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,gBACHE,MAAM,QACNC,MAAM,QACNC,QAA0B,UAAjB6C,EACT5C,SAAWC,IACTsJ,EAAetJ,EAAEC,OAAOL,OACxBuJ,EAAc,IACdvM,EAASd,EAAmBkE,EAAEC,OAAOL,OAAO,IAIhDlB,cAAA,OACEwB,IAAKuJ,GACLrJ,IAAI,QACJvB,UAAW,+CACQ,UAAjB8D,EAA2B,SAAW,SAI5CjE,cAAA,MAAAD,SAAI,aAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1BH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,eACHE,MAAM,eACNC,MAAM,oBACNC,QAA0B,iBAAjB6C,EACT5C,SAAWC,IACTsJ,EAAetJ,EAAEC,OAAOL,OACxBuJ,EAAc,IACdvM,EAASd,EAAmBkE,EAAEC,OAAOL,OAAO,IAIhDlB,cAAA,OACEwB,IAAKwJ,GACLtJ,IAAI,oBACJvB,UAAW,+CACQ,iBAAjB8D,EAAkC,SAAW,SAInDjE,cAAA,MAAAD,SAAI,yBAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,GAAEJ,SAAA,CACtBH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,kBACHE,MAAM,QACNC,MAAM,aACNC,QAAwB,UAAfoJ,EACTnJ,SAAWC,IAtGzB,IAAwBJ,IAuGOI,EAAEC,OAAOL,MAtGtCuJ,EAAcvJ,GAuGA0J,EAAe,UACf1M,EAASd,EAAmB,UAAU,IAI1C4C,cAAA,OACEwB,IAAKyJ,GACLvJ,IAAI,aACJvB,UAAW,+CACM,UAAfqK,EAAyB,SAAW,SAI1CxK,cAAA,MAAAD,SAAI,qBAGRC,cAACkL,KAAI,CAACC,GAAmB,UAAfX,EAAuBzK,SAC/BC,cAACI,UAAG,CACFD,UAAW,IACM,UAAfqK,EACI,SACA,gDACHzK,SAEHH,eAACK,UAAKC,MAAK,CAACC,UAAU,OAAOiC,GAAI/B,UAAKI,GAAI,EAAEV,SAAA,CAC1CC,cAACC,UAAK2G,MAAK,CAACzG,UAAU,kBAAiBJ,SAAC,UACxCH,eAACK,UAAKwJ,OAAM,CACVvI,MAAO+C,EACP5C,SAAWC,IACTsJ,EAAetJ,EAAEC,OAAOL,OACxBhD,EAASd,EAAmBkE,EAAEC,OAAOL,OAAO,EAE5CnB,SAAA,CAEFC,cAAA,UAAQkB,MAAM,SAAQnB,SAAC,qBACvBC,cAAA,UAAQkB,MAAM,UAASnB,SAAC,sBACxBC,cAAA,UAAQkB,MAAM,WAAUnB,SAAC,qCAQzC,CChNe,WAA0B,oCCA1B,OAA0B,oCCA1B,OAA0B,qCCkB1B,SAASqL,KAEtB,MAAM5M,EAAc,IAAIC,eAEjB4M,EAAcC,GAAerN,mBAAS,IAEvCC,EAAWC,cACXoN,EAAmBlN,aAAYC,GAASA,EAAMC,YAAY2F,cAG1DsH,EAAQ7M,iBAAO,MAoBrB,OAlBAC,qBAAU,KAhBSC,OAkBhBC,aAAaC,QAAQ,iBAlBLF,EAkBmC2M,EAjBtDxM,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,WAiBM,GACzD,IAEHR,qBAAU,KACRV,EAASf,GAAY,IAGrBmO,EAAYC,GAEZ/M,EAAYiN,eAAeF,GAEvBF,EAAa/L,OAAS,GACxBpB,EAASf,GAAY,GAAM,GAE5B,CAACkO,IAGFrL,cAACH,IAAMC,SAAQ,CAAAC,SACbC,cAACC,UAAKC,MAAK,CAACC,UAAU,OAAMJ,SAC1BH,eAACQ,UAAG,CAACD,UAAU,gCAA+BJ,SAAA,CAC5CC,cAACK,UAAG,CAACI,GAAI,GAAIN,UAAU,mBAAkBJ,SACvCC,cAAA,MAAAD,SAAI,sCAENH,eAACS,UAAG,CAACxB,IAAK2M,EAAO/K,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACtCH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,cACHE,MAAM,IACNC,MAAM,eACNC,QAA0B,MAAjBiK,EACThK,SAAWC,IACTgK,EAAYhK,EAAEC,OAAOL,OACrBhD,EAASb,EAAmBiE,EAAEC,OAAOL,OAAO,IAIhDlB,cAAA,OACEwB,IAAKkK,GACLhK,IAAI,WACJvB,UAAW,+CACQ,MAAjBkL,EAAuB,SAAW,SAIxCrL,cAAA,MAAAD,SAAI,oBAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1BH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLmE,GAAG,gBACHD,QAAM,EACNG,MAAM,IACNC,MAAM,wBAENC,QAA0B,MAAjBiK,EACThK,SAAWC,IACTgK,EAAYhK,EAAEC,OAAOL,OACrBhD,EAASb,EAAmBiE,EAAEC,OAAOL,OAAO,IAIhDlB,cAAA,OACEwB,IAAKmK,GACLjK,IAAI,0BACJvB,UAAW,+CACQ,MAAjBkL,EAAuB,SAAW,SAIxCrL,cAAA,MAAAD,SAAI,2BAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1BH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,gBACHE,MAAM,IACNC,MAAM,iBACNC,QAA0B,MAAjBiK,EACThK,SAAWC,IACTgK,EAAYhK,EAAEC,OAAOL,OACrBhD,EAASb,EAAmBiE,EAAEC,OAAOL,OAAO,IAIhDlB,cAAA,OACEwB,IAAKoK,GACLlK,IAAI,oBACJvB,UAAW,+CACQ,MAAjBkL,EAAuB,SAAW,SAIxCrL,cAAA,MAAAD,SAAI,4BAMhB,CCvIe,WAA0B,sCCkB1B,SAAS8L,KAEvB,MAAMrN,EAAc,IAAIC,eAEdqN,EAAIC,GAAS9N,qBAEdC,EAAWC,cACX6N,EAAU3N,aAAYC,GAASA,EAAMC,YAAYsG,UAGjDoH,EAAUtN,iBAAO,MAoBvB,OAlBAC,qBAAU,KAfOC,OAiBZC,aAAaC,QAAQ,iBAjBTF,EAiBuCoN,EAjB/BjN,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAACC,SAAU,WAiBd,GAC7D,IAEHR,qBAAU,KACNV,EAASf,GAAY,IAG3B4O,EAAMC,GAENxN,EAAY0N,WAAWF,GAEbF,GACA5N,EAASf,GAAY,GAAM,GAEhC,CAAC2O,IAGA9L,cAACH,IAAMC,SAAQ,CAAAC,SACXC,cAACC,UAAKC,MAAK,CAACC,UAAU,OAAMJ,SACxBH,eAACQ,UAAG,CAACD,UAAU,qCAAoCJ,SAAA,CAC/CC,cAACK,UAAG,CAACI,GAAI,GAAIN,UAAU,mBAAkBJ,SACrCC,cAAA,MAAAD,SAAI,yBAERH,eAACS,UAAG,CAACxB,IAAKoN,EAASxL,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACtCH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACpBC,cAACC,UAAKa,MAAK,CACPjE,KAAK,QACLkE,QAAM,EACNC,GAAG,QACHE,MAAM,OACNC,MAAM,MACNC,QAAgB,SAAP0K,EACTzK,SAAUC,IACNyK,EAAMzK,EAAEC,OAAOL,OACfhD,EAASL,EAAcyD,EAAEC,OAAOL,OAAO,IAG/ClB,cAAC6K,KAAK,CAACrJ,IAAK2K,GACRzK,IAAI,gBACJvB,UAAW,iFACF,SAAP2L,EAAgB,SAAW,SAErC9L,cAAA,MAAAD,SAAI,WAGRH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACxBH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACpBC,cAACC,UAAKa,MAAK,CACPjE,KAAK,QACLkE,QAAM,EACNC,GAAG,OACHE,MAAM,QACNC,MAAM,KACNC,QAAgB,UAAP0K,EACTzK,SAAUC,IACNyK,EAAMzK,EAAEC,OAAOL,OACfhD,EAASL,EAAcyD,EAAEC,OAAOL,OAAO,IAG/ClB,cAAA,OAAKwB,IC3FlB,61RD2F8BE,IAAI,eACjBvB,UAAW,+CAAqD,UAAP2L,EAAiB,SAAW,SAE7F9L,cAAA,MAAAD,SAAI,gBAM5B,CEpGe,WAA0B,qCCA1B,OAA0B,qCCe1B,SAAS8L,KAEtB,MAAMrN,EAAc,IAAIC,eAEjB4F,EAAgB+H,GAAqBnO,oBAAS,GAE/CC,EAAWC,cACXkO,EAAsBhO,aAAYC,GAASA,EAAMC,YAAY8F,iBAG7DiI,EAAU3N,iBAAO,MAoBvB,OAlBAC,qBAAU,KAhBSC,OAkBhBC,aAAaC,QAAQ,iBAlBLF,EAkBmCyN,EAjBtDtN,OAAOC,SAAS,EAAGJ,EAAIK,QAAQC,UAAW,CAAEC,SAAU,WAiBQ,GAC3D,IAEHR,qBAAU,KACRV,EAASf,GAAY,IAGrBiP,EAAkBC,GAElB7N,EAAY+N,kBAAkBF,GAE1BhI,GACFnG,EAASf,GAAY,GAAM,GAE5B,CAACkH,IAGFrE,cAACH,IAAMC,SAAQ,CAAAC,SACbC,cAACC,UAAKC,MAAK,CAACC,UAAU,OAAMJ,SAC1BH,eAACQ,UAAG,CAACD,UAAU,qCAAoCJ,SAAA,CACjDC,cAACK,UAAG,CAACI,GAAI,GAAIN,UAAU,mBAAkBJ,SACvCC,cAAA,MAAAD,SAAI,2CAENH,eAACS,UAAG,CAACxB,IAAKyN,EAAS7L,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CACxCH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,WACHE,OAAO,EACPC,MAAM,mBACNC,QAA2B,QAAlBiD,EACThD,SAAWC,IACT8K,EAAkB9K,EAAEC,OAAOL,OAC3BhD,EAASZ,EAAqBgE,EAAEC,OAAOL,OAAO,IAIlDlB,cAAC6K,KAAK,CACJrJ,IAAKgL,GACL9K,IAAI,YACJvB,UAAW,+CACS,QAAlBkE,EAA2B,SAAW,SAI5CrE,cAAA,MAAAD,SAAI,wBAENH,eAACS,UAAG,CAACI,GAAI,EAAGN,UAAU,OAAMJ,SAAA,CAC1BH,eAAA,OAAKO,UAAU,UAASJ,SAAA,CACtBC,cAACC,UAAKa,MAAK,CACTjE,KAAK,QACLkE,QAAM,EACNC,GAAG,iBACHE,OAAO,EACPC,MAAM,wBACNC,QAA2B,SAAlBiD,EACThD,SAAWC,IACT8K,EAAkB9K,EAAEC,OAAOL,OAC3BhD,EAASZ,EAAqBgE,EAAEC,OAAOL,OAAO,IAIlDlB,cAAA,OACEwB,IAAKiL,GACL/K,IAAI,gBACJvB,UAAW,+CACS,SAAlBkE,EAA4B,SAAW,SAI7CrE,cAAA,MAAAD,SAAI,mCAMhB,C,gCCvGe,MAAM2M,WAAsBvF,YAEvCM,YAAYC,GACRC,MAAMD,GACNE,KAAKtJ,MAAMoJ,CACf,CAEAiF,oBACI,OAAOC,EACX,CAEAC,mBACI,OAAOD,GAAWhF,KAAKtJ,OAAOwO,KAClC,ECQW,SAASC,GAAUrF,GAOhC,MAAMlJ,EAAc,IAAIC,cAClBuO,EAAc,IAAIxF,GAAYE,GAC9BuF,EAAsB,IAAIC,GAC9B1O,EAAY0K,oBAERiE,EAAkBH,EAAYzF,aAAaO,YAC1CO,EAASC,GAAcrK,oBAAS,IAChCmP,EAAaC,GAAkBpP,oBAAS,IAExCqP,EAAcC,GAAmBtP,mBAAS,KAC1CuP,EAAYC,GAAiBxP,mBAAS,KACtCyP,EAAYC,GAAiB1P,mBAAS,KACtC2P,EAAcC,GAAmB5P,mBAAS,KAC1C6P,EAAUxC,GAAerN,mBAAS,KAClC8P,EAAKC,GAAU/P,mBAAS,GAEzBgQ,EAAY,IAAIC,KAChBC,EAAY,IAAIC,KAAKC,eAAe,SAASxH,OAAOoH,GACpDK,EAAU3P,iBAAO,OAEhB4P,EAAcC,GAAmBvQ,mBAAS,IAE3CC,EAAWC,eAEVsQ,EAAQC,GAAazQ,mBACa,KAAvCa,aAAaC,QAAQ,cACjBD,aAAaC,QAAQ,cACrB,gBAGAgK,EAAWC,KAAG;;;;KASb2F,EAAcC,GAAe3Q,oBAAS,IACtC4Q,EAAcC,GAAe7Q,oBAAS,IACtC8Q,EAAaC,GAAc/Q,oBAAS,IACpCgR,GAAeC,IAAgBjR,oBAAS,IACxCkR,GAAMC,IAAWnR,oBAAS,IAE1BoR,GAASC,IAAcrR,mBAAS,KAChCsR,GAASC,IAAcvR,mBAAS,KAEhCwR,GAAQC,IAAazR,mBAAS,KAC9B0R,GAAQC,IAAa3R,mBAAS,KAE9B4R,GAAOC,IAAY7R,mBAAS,KAC5B8R,GAAOC,IAAY/R,mBAAS,KAE5BgS,GAASC,IAAcjS,mBAAS,KAChCkS,GAASC,IAAcnS,mBAAS,IACvC,IAAIqG,GAAa,GACjB,MAAO+L,GAAYC,IAAiBrS,mBAAS,IAOvCsS,GAAyBC,IAC7B9B,EAAU8B,GAEC,gBAAPA,GACF5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,IAAa,GACbpQ,aAAa2R,QAAQ,aAAc,iBACnB,OAAPD,GACT5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,IAAa,GACbpQ,aAAa2R,QAAQ,aAAc,QACnB,MAAPD,GACT5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,IAAa,GACbpQ,aAAa2R,QAAQ,aAAc,OAClB,SAARD,IACT5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,IAAa,GACbpQ,aAAa2R,QAAQ,aAAc,QACrC,EA2aF,OAvaA7R,qBAAU,KAERyO,EACsB,WAApBF,GAAoD,SAApBA,GAE5B3O,EAAYkS,qBAGoB,GAAlClS,EAAYmS,qBACdzS,EAASlB,EAAwB,IAEjCwB,EAAYgB,qBAAqB,IAGnC,IAAIiF,EAAUjG,EAAYyK,qBAkC1B,OAjCsB,GAAlBxE,EAAQnF,SACVgJ,GAAW,GACXrC,IACGC,IAAIC,iEAAmD1B,EAAS,GAAI,CACnE2B,QAAS,CAAE,eAAgB,sBAE5BC,MAAMC,IACLmH,EAAcnH,EAASE,KAAKC,SAAS,GAAGxF,MACxC0M,EAAcrH,EAASE,KAAKC,SAAS,GAAGC,MACxClI,EAAY+H,kBAAkBD,EAASE,KAAKC,SAAS,GAAGC,MACxDxI,EAASN,EAAkB0I,EAASE,KAAKC,SAAS,GAAGC,OAGrDlI,EAAYmI,iBAAiBL,EAASE,KAAKlI,OAC3CJ,EAASP,EAAmB2I,EAASE,KAAKlI,OAAO,KAKnDmG,EAAQnF,OAAS,GACnB2G,IACGC,IACCC,6EACE3H,EAAYyL,oBACd,CACE7D,QAAS,CAAE,eAAgB,sBAG9BC,MAAMC,IACLmH,EAAcnH,EAASE,KAAKgH,WAAW,IAIrChP,EAAYoS,kBAClB,IAAK,IACHrD,EAAgB,YAChB,MACF,IAAK,IACHA,EAAgB,aAEhB,MACF,IAAK,IACHA,EAAgB,iBAKpB,OAAQ/O,EAAYqS,mBAClB,IAAK,MACHhD,EAAgB,iBAChB,MACF,IAAK,QACHA,EAAgB,SAChB,MACF,IAAK,eACHA,EAAgB,qBAChB,MACF,IAAK,SACHA,EAAgB,oBAChB,MACF,IAAK,UACHA,EAAgB,qBAChB,MACF,IAAK,WACHA,EAAgB,sBAMpB,OAAQrP,EAAYsS,kBAClB,IAAK,IACHxF,EAAY,gBACZ,MACF,IAAK,IACHA,EAAY,uBAEZ,MACF,IAAK,IACHA,EAAY,kBAahB,GAPoC,KAAhC9M,EAAYoS,mBACdtM,GACEyM,OAAOvS,EAAYmS,oBACnBI,OAAOvS,EAAYwS,wBACrBhD,EAAO1J,GAAa9F,EAAYmS,qBAIA,KAAhCnS,EAAYoS,kBACoB,KAAhCpS,EAAYoS,iBACZ,CACAtM,GACEyM,OAAOvS,EAAYyS,yBACnBF,OAAOvS,EAAY0S,oBAErB,IAAIC,EACFJ,OAAOvS,EAAYyS,yBACnBF,OAAOvS,EAAY4S,qBACrBpD,EAAOmD,EACT,CAEA7I,GAAW,GAKXrC,IACGoL,KACClL,qFACA,CACE7B,WAAYA,GAAa,EAAIA,GAAa,GAC1CvG,YAAaS,EAAYoS,iBACzBU,YAAa9S,EAAYwS,uBACzBO,cACE/S,EAAYmS,mBAAqB,EAC7BnS,EAAYmS,mBACZnS,EAAY4S,oBAClBI,mBAAoBhT,EAAYyS,wBAChCQ,oBAAqBjT,EAAYqS,kBACjCa,UAAWlT,EAAYsS,iBACvBhL,cAAetH,EAAY0K,mBAC3Bc,eACsC,KAApCxL,EAAYyL,oBACRzL,EAAYyL,oBACZyD,EACNiE,gBAAiBnT,EAAYyK,qBAC7B2I,YAAapT,EAAYqT,iBACzB/E,MACqC,QAAnCtO,EAAYkS,qBACQ,WAApBvD,GACoB,SAApBA,EACIF,EAAoBJ,mBACpB,IACNhI,QAASrG,EAAYsT,aACrBhK,WAAYkF,EAAYzF,aAAaO,WACrCiK,UAAW/E,EAAYzF,aAAawK,UACpCC,OAAQtK,EAAMuK,KAAOvK,EAAMuK,KAAOjF,EAAYzF,aAAayK,OAC3DE,WAAYlF,EAAYzF,aAAa4K,OACrCC,WAAYpF,EAAYzF,aAAa6K,WACrCC,gBACsC,UAApC7T,EAAYkS,qBAER1D,EAAYzF,aAAa8K,gBAC/BC,UAAWtF,EAAYzF,aAAa+K,WAEtC,CACElM,QAAS,CAAE,eAAgB,sBAG9BC,MAAMC,IACL,IAAIiM,EAAkBjM,EAASE,KAE/BP,IACGoL,KACClL,qFACA,CACE7B,WAAYA,GAAa,EAAIA,GAAa,GAC1CvG,YAAaS,EAAYoS,iBACzBU,YAAa9S,EAAYwS,uBACzBO,cACE/S,EAAYmS,mBAAqB,EAC7BnS,EAAYmS,mBACZnS,EAAY4S,oBAClBI,mBAAoBhT,EAAYyS,wBAChCQ,oBAAqBjT,EAAYqS,kBACjCa,UAAWlT,EAAYsS,iBACvBhL,cAAetH,EAAY0K,mBAC3Bc,eACsC,KAApCxL,EAAYyL,oBACRzL,EAAYyL,oBACZyD,EACNiE,gBAAiBnT,EAAYyK,qBAC7B2I,YAAapT,EAAYqT,iBACzB/E,MACqC,QAAnCtO,EAAYkS,qBACQ,WAApBvD,GACoB,SAApBA,EACIF,EAAoBJ,mBACpB,IACNhI,QAASrG,EAAYsT,aACrBhK,WAAYkF,EAAYzF,aAAaO,WACrCiK,UAAW/E,EAAYzF,aAAawK,UACpCC,OAAQtK,EAAMuK,KAAOvK,EAAMuK,KAAOjF,EAAYzF,aAAayK,OAC3DE,WAAYlF,EAAYzF,aAAa4K,OACrCC,WAAYpF,EAAYzF,aAAa6K,WACrCC,iBAAiB,EACjBC,UAAWtF,EAAYzF,aAAa+K,WAEtC,CACElM,QAAS,CAAE,eAAgB,sBAG9BC,MAAMC,IACL,IAAIkM,EAAyBlM,EAASE,KAEtC,GAAI+L,GAAmBC,EAAwB,CAgK7C,GA7JAC,OAAOC,KAAKH,GAAiBI,SAAQ,SAAUnC,GAE7C,IAAmC,IAA/B+B,EAAgB/B,GAAKoC,MAAgB,CAMvC,OAJArE,EAAasE,KAAKN,EAAgB/B,IAI1B+B,EAAgB/B,GAAKsC,SAASC,eACpC,IAAK,eAGH,OAFAR,EAAgB/B,GAAKwC,UACnBT,EAAgB/B,GAAKyC,SACfV,EAAgB/B,GAAKyC,UAC3B,KAAK,GACH3D,GAAWiD,EAAgB/B,IAC3B,MACF,KAAK,GACHhB,GAAW+C,EAAgB/B,IAI/B,MACF,IAAK,MAGH,OAFA+B,EAAgB/B,GAAKwC,UACnBT,EAAgB/B,GAAKyC,SACfV,EAAgB/B,GAAKyC,UAC3B,KAAK,GACHvD,GAAU6C,EAAgB/B,IAC1B,MACF,KAAK,GACHZ,GAAU2C,EAAgB/B,IAI9B,MACF,IAAK,KAGH,OAFA+B,EAAgB/B,GAAKwC,UACnBT,EAAgB/B,GAAKyC,SACfV,EAAgB/B,GAAKyC,UAC3B,KAAK,GACHnD,GAASyC,EAAgB/B,IACzB,MACF,KAAK,GACHR,GAASuC,EAAgB/B,IAI7B,MAEF,IAAK,OAGH,OAFA+B,EAAgB/B,GAAKwC,UACnBT,EAAgB/B,GAAKyC,SACfV,EAAgB/B,GAAKyC,UAC3B,KAAK,GACH/C,GAAWqC,EAAgB/B,IAC3B,MACF,KAAK,GACHJ,GAAWmC,EAAgB/B,KAQ9B/B,IAEH6B,GACEmC,OAAO5P,OAAO0P,GAAiB,GAAGO,SAASI,eAE7C3C,GACEkC,OAAO5P,OAAO0P,GAAiB,GAAGO,SAASI,eAGjD,MAGK,IAA0C,IAAtCV,EAAuBhC,GAAKoC,MAAgB,CAMnD,OAJArE,EAAasE,KAAKL,EAAuBhC,IAIjCgC,EAAuBhC,GAAKsC,SAASC,eAC3C,IAAK,eAGH,OAFAP,EAAuBhC,GAAKwC,UAC1BR,EAAuBhC,GAAKyC,SACtBT,EAAuBhC,GAAKyC,UAClC,KAAK,GACH3D,GAAWkD,EAAuBhC,IAClC,MACF,KAAK,GACHhB,GAAWgD,EAAuBhC,IAItC,MACF,IAAK,MAGH,OAFAgC,EAAuBhC,GAAKwC,UAC1BR,EAAuBhC,GAAKyC,SACtBT,EAAuBhC,GAAKyC,UAClC,KAAK,GACHvD,GAAU8C,EAAuBhC,IACjC,MACF,KAAK,GACHZ,GAAU4C,EAAuBhC,IAIrC,MACF,IAAK,KAGH,OAFAgC,EAAuBhC,GAAKwC,UAC1BR,EAAuBhC,GAAKyC,SACtBT,EAAuBhC,GAAKyC,UAClC,KAAK,GACHnD,GAAS0C,EAAuBhC,IAChC,MACF,KAAK,GACHR,GAASwC,EAAuBhC,IAIpC,MAEF,IAAK,OAGH,OAFAgC,EAAuBhC,GAAKwC,UAC1BR,EAAuBhC,GAAKyC,SACtBT,EAAuBhC,GAAKyC,UAClC,KAAK,GACH/C,GAAWsC,EAAuBhC,IAClC,MACF,KAAK,GACHJ,GAAWoC,EAAuBhC,KAQrC/B,IAEH6B,GACEmC,OAAO5P,OACL2P,GACA,GAAGM,SAASI,eAEhB3C,GACEkC,OAAO5P,OACL2P,GACA,GAAGM,SAASI,eAGpB,CACF,IAGIzE,EAAQ,CAEWF,EAAapF,KAAKgK,GACrCA,EAAQL,SAASI,gBAIAE,SAAS3E,GAC1B8B,GAAsB9B,IAEtB6B,GACEmC,OAAO5P,OAAO0L,GAAc,GAAGuE,SAASI,eAE1C3C,GACEkC,OAAO5P,OAAO0L,GAAc,GAAGuE,SAASI,eAG9C,MAEE5C,GACEmC,OAAO5P,OAAO0L,GAAc,GAAGuE,SAASI,eAE1C3C,GACEkC,OAAO5P,OAAO0L,GAAc,GAAGuE,SAASI,eAK5C3E,EAAa8E,MAAK,SAAUC,EAAGC,GAC7B,OAAOD,EAAEE,KAAOD,EAAEC,IACpB,IACAhV,EAAYiV,YAAY9N,KAAK+N,UAAUnF,IACvCC,EAAgBD,GAEhBjG,GAAW,EACb,KAEDtB,OAAOC,IACNqB,GAAW,GACXqL,QAAQC,IAAI3M,EAAM,GAClB,IAELD,OAAOC,IACNqB,GAAW,GACXqL,QAAQC,IAAI3M,EAAM,GAClB,GACH,IAGDrH,eAACC,IAAMC,SAAQ,CAAAC,SAAA,CACbC,cAAC6T,IAAW,CACV7K,IAAKD,EACLQ,KAAM,GACNC,MAAO,UACPnB,QAASA,EACTlI,UAAU,gBAKZP,eAACQ,UAAG,CAACD,UAAYkI,EAA4C,SAAlC,gCAA2CtI,SAAA,CAEpEC,cAACK,UAAG,CAACI,GAAI,GAAIO,GAAG,gBAAgBb,UAAU,gBAAeJ,SACvDC,cAAC8T,UAAS,CAAC3T,UAAU,eAAcJ,SACjCC,cAAA,OAAKG,UAAYgP,GAAkB,KAAX,SAAgBpP,SACb,IAAxBwO,EAAajP,OACZM,eAACmU,IAAI,CACH5T,UAAU,gCACV6T,UAAWvF,GAAkB4B,GAC7BrP,GAAG,gBACHiT,YAAY,EACZC,SAAWC,GAAM5D,GAAsB4D,GAAGpU,SAAA,CAEzCsP,IAAWE,GACV3P,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACEwO,EACI,0CACA,mBAEN0F,SAAS,eACTC,MAAM,eAAcvU,SAAA,EAED,IAAlBsP,GAAQuD,MACP5S,cAACK,UAAG,CACFI,GACE4O,GAAQmE,OAASnE,GAAQkF,KACV,GAAflF,GAAQkF,KACO,QAAfnH,GACAiC,GAAQkF,IAAMlF,GAAQmE,MAAQ,IAC1B,EACA,EAENrT,UAAW,+DAA+DJ,SAG1EH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAM6I,GACNoF,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAGrCsP,GAAQmE,OAASnE,GAAQkF,KACX,GAAflF,GAAQkF,KACO,QAAfnH,GACAiC,GAAQkF,IAAMlF,GAAQmE,MAAQ,IAC5BxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOmO,GAAQmE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOmO,GAAQmE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOmO,GAAQkF,IACfhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,4BACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLsP,GAAQmE,OAASnE,GAAQkF,KACX,GAAflF,GAAQkF,KACO,QAAfnH,GACAiC,GAAQkF,IAAMlF,GAAQmE,MAAQ,IAC1B,IACA,IAAK,IAAI,UAIf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MACEG,UACEkP,GAAQyF,GAAK,EACT,yBACA,SACL/U,SAEDC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOmO,GAAQyF,GACfvS,YAAa,OACbE,OAAQ,IACRD,mBAAmB,EACnBE,aAAc,EACdC,mBAAmB,QAK1B0M,GAAQyF,GAAK,GACsB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MAAI4U,MAAO,CAAEC,SAAU,QAAS9U,SAAC,gCAG/B,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,MAEe,IAAlBoC,GAAQqD,MACP5S,cAACK,UAAG,CACFI,GACE8O,GAAQiE,OAASjE,GAAQgF,KACV,GAAfhF,GAAQgF,KACO,QAAfnH,GACAmC,GAAQgF,IAAMhF,GAAQiE,MAAQ,IAC1B,EACA,EAENrT,UAAW,0CAA0CJ,SAGrDH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAM+I,GACNkF,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAGrCwP,GAAQiE,OAASjE,GAAQgF,KACX,GAAfhF,GAAQgF,KACO,QAAfnH,GACAmC,GAAQgF,IAAMhF,GAAQiE,MAAQ,IAC5BxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOqO,GAAQiE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOqO,GAAQiE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOqO,GAAQgF,IACfhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,4BACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLwP,GAAQiE,OAASjE,GAAQgF,KACX,GAAfhF,GAAQgF,KACO,QAAfnH,GACAmC,GAAQgF,IAAMhF,GAAQiE,MAAQ,IAC1B,IACA,IAAK,IAAI,UAIf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MACEG,UACEoP,GAAQuF,GAAK,EACT,yBACA,SACL/U,SAEDC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOqO,GAAQuF,GACfvS,YAAa,OACbE,OAAQ,IACRD,mBAAmB,EACnBE,aAAc,EACdC,mBAAmB,QAK1B4M,GAAQuF,GAAK,GACsB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MAAI4U,MAAO,CAAEC,SAAU,QAAS9U,SAAC,gCAG/B,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,QAEJ,KAEHsC,IAAUE,GACT/P,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACE0O,EACI,yCACA,kBAENwF,SAAS,MACTC,MAAM,MAAKvU,SAAA,EAEO,IAAjB0P,GAAOmD,MACN5S,cAACK,UAAG,CACFI,GACEgP,GAAO+D,OAAS/D,GAAO8E,KACT,GAAd9E,GAAO8E,KACP9E,GAAO8E,IAAM9E,GAAO+D,MAAQ,IACxB,EACA,EAENrT,UAAW,+DAA+DJ,SAE1EH,eAAC4U,YAAQ,CACPxT,GAAG,gBACH8G,WAAYqF,EACZ3G,KAAMiJ,GACNgF,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAGrC0P,GAAO+D,OAAS/D,GAAO8E,KACV,GAAd9E,GAAO8E,KACP9E,GAAO8E,IAAM9E,GAAO+D,MAAQ,IAC1BxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOuO,GAAO+D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOuO,GAAO+D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOuO,GAAO8E,IACdhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,2CACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACL0P,GAAO+D,OAAS/D,GAAO8E,KACV,GAAd9E,GAAO8E,KACP9E,GAAO8E,IAAM9E,GAAO+D,MAAQ,IACxB,IACA,IAAK,IAAI,UAIf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MACEG,UACEsP,GAAOqF,GAAK,EACR,yBACA,SACL/U,SAEDC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOuO,GAAOqF,GACdvS,YAAa,OACbE,OAAQ,IACRD,mBAAmB,EACnBE,aAAc,EACdC,mBAAmB,QAK1B8M,GAAOqF,GAAK,GACuB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MAAI4U,MAAO,CAAEC,SAAU,QAAS9U,SAAC,gCAG/B,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,MAEc,IAAjBwC,GAAOiD,MACN5S,cAACK,UAAG,CACFI,GACEkP,GAAO6D,OAAS7D,GAAO4E,KACT,GAAd5E,GAAO4E,KACP5E,GAAO4E,IAAM5E,GAAO6D,MAAQ,IACxB,EACA,EAENrT,UAAU,0CAAyCJ,SAEnDH,eAAC4U,YAAQ,CACPxT,GAAG,gBACH8G,WAAYqF,EACZ3G,KAAMmJ,GACN8E,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAGrC4P,GAAO6D,OAAS7D,GAAO4E,KACV,GAAd5E,GAAO4E,KACP5E,GAAO4E,IAAM5E,GAAO6D,MAAQ,IAC1BxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOyO,GAAO6D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOyO,GAAO6D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOyO,GAAO4E,IACdhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAO7B/C,eAAA,MACEO,UAAU,2CACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACL4P,GAAO6D,OAAS7D,GAAO4E,KACV,GAAd5E,GAAO4E,KACP5E,GAAO4E,IAAM5E,GAAO6D,MAAQ,IACxB,IACA,IAAK,IAAI,UAKf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MAAIG,UAAU,yBAAwBJ,SACpCC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOyO,GAAOmF,GACdvS,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,QAK1BgN,GAAOmF,GAAK,GACuB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MACEG,UAAU,uBACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAC7B,gCAGC,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,QAEJ,KAEH0C,IAASE,GACRnQ,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACE4O,EACI,0CACA,SAENsF,SAAS,KACTC,MAAM,KAAIvU,SAAA,EAEO,IAAhB8P,GAAM+C,MACL5S,cAACK,UAAG,CACFI,GACEoP,GAAM2D,OAAS3D,GAAM0E,KACR,GAAb1E,GAAM0E,KACN1E,GAAM0E,IAAM1E,GAAM2D,MAAQ,IACtB,EACA,EAENrT,UAAW,+DAA+DJ,SAE1EH,eAAC4U,YAAQ,CACPxT,GAAG,eACH8G,WAAYqF,EACZ3G,KAAMqJ,GACN4E,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAGrC8P,GAAM2D,OAAS3D,GAAM0E,KACT,GAAb1E,GAAM0E,KACN1E,GAAM0E,IAAM1E,GAAM2D,MAAQ,IACxBxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO2O,GAAM2D,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAO2O,GAAM2D,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAO2O,GAAM0E,IACbhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,4BACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACL8P,GAAM2D,OAAS3D,GAAM0E,KACT,GAAb1E,GAAM0E,KACN1E,GAAM0E,IAAM1E,GAAM2D,MAAQ,IACtB,IACA,IAAK,IAAI,UAIf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MACEG,UACE0P,GAAMiF,GAAK,EACP,yBACA,SACL/U,SAEDC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO2O,GAAMiF,GACbvS,YAAa,OACbE,OAAQ,IACRC,aAAc,EACdF,mBAAmB,EACnBG,mBAAmB,QAK1BkN,GAAMiF,GAAK,GACwB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MAAI4U,MAAO,CAAEC,SAAU,QAAS9U,SAAC,gCAG/B,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,MAEa,IAAhB4C,GAAM6C,MACL5S,cAACK,UAAG,CACFI,GACEsP,GAAMyD,OAASzD,GAAMwE,KACR,GAAbxE,GAAMwE,KACNxE,GAAMwE,IAAMxE,GAAMyD,MAAQ,IACtB,EACA,EAENrT,UAAU,0CAAyCJ,SAEnDH,eAAC4U,YAAQ,CACPxT,GAAG,eACH8G,WAAYqF,EACZ3G,KAAMuJ,GACN0E,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAIrCgQ,GAAMyD,OAASzD,GAAMwE,KACT,GAAbxE,GAAMwE,KACNxE,GAAMwE,IAAMxE,GAAMyD,MAAQ,IACxBxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO6O,GAAMyD,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAO6O,GAAMyD,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAO6O,GAAMwE,IACbhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdF,mBAAmB,EACnBG,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,4BACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLgQ,GAAMyD,OAASzD,GAAMwE,KACT,GAAbxE,GAAMwE,KACNxE,GAAMwE,IAAMxE,GAAMyD,MAAQ,IACtB,IACA,IAAK,IAAI,UAIf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MAAIG,UAAU,yBAAwBJ,SACpCC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO6O,GAAM+E,GACbvS,YAAa,OACbE,OAAQ,IACRC,aAAc,EACdF,mBAAmB,EACnBG,mBAAmB,QAK1BoN,GAAM+E,GAAK,GACwB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MACEG,UAAU,uBACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAC7B,gCAGC,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,QAEJ,MAGgB,IAAlB8C,GAAQ2C,QAAoC,IAAlBzC,GAAQyC,OAChB,aAApBzF,GACoB,WAApBA,EA6OI,KA5OFvN,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACE8O,GACI,0CACA,mBAENoF,SAAS,OACTC,MAAM,OAAMvU,SAAA,EAEO,IAAlBkQ,GAAQ2C,MACP5S,cAACK,UAAG,CACFI,GACEwP,GAAQuD,OAASvD,GAAQsE,KACV,GAAftE,GAAQsE,KACRtE,GAAQsE,IAAMtE,GAAQuD,MAAQ,IAC1B,EACA,EAENrT,UAAW,+DAA+DJ,SAE1EH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAMyJ,GACNwE,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAGrCkQ,GAAQuD,OAASvD,GAAQsE,KACX,GAAftE,GAAQsE,KACRtE,GAAQsE,IAAMtE,GAAQuD,MAAQ,IAC5BxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO+O,GAAQuD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAO+O,GAAQuD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAO+O,GAAQsE,IACfhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,gDACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLkQ,GAAQuD,OAASvD,GAAQsE,KACX,GAAftE,GAAQsE,KACRtE,GAAQsE,IAAMtE,GAAQuD,MAAQ,IAC1B,IACA,IAAK,IAAI,UAIf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MACEG,UACE8P,GAAQ6E,GAAK,EACT,yBACA,SACL/U,SAEDC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO+O,GAAQ6E,GACfvS,YAAa,OACbE,OAAQ,IACRD,mBAAmB,EACnBE,aAAc,EACdC,mBAAmB,QAK1BsN,GAAQ6E,GAAK,GACsB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MAAI4U,MAAO,CAAEC,SAAU,QAAS9U,SAAC,gCAG/B,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,MACe,IAAlBgD,GAAQyC,MACP5S,cAACK,UAAG,CACFI,GACE0P,GAAQqD,OAASrD,GAAQoE,KACV,GAAfpE,GAAQoE,KACRpE,GAAQoE,IAAMpE,GAAQqD,MAAQ,IAC1B,EACA,EAENrT,UAAU,0CAAyCJ,SAEnDH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAM2J,GACNsE,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BACO,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BAETC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBAGrCoQ,GAAQqD,OAASrD,GAAQoE,KACX,GAAfpE,GAAQoE,KACRpE,GAAQoE,IAAMpE,GAAQqD,MAAQ,IAC5BxT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOiP,GAAQqD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOiP,GAAQqD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOiP,GAAQoE,IACfhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAO7B/C,eAAA,MACEO,UAAU,gDACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLoQ,GAAQqD,OAASrD,GAAQoE,KACX,GAAfpE,GAAQoE,KACRpE,GAAQoE,IAAMpE,GAAQqD,MAAQ,IAC1B,IACA,IAAK,IAAI,UAIf,SADChV,EAAYkS,oBACJ,KACP1Q,cAAA,MACEG,UACEgQ,GAAQ2E,GAAK,EACT,yBACA,SACL/U,SAEDC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOiP,GAAQ2E,GACfvS,YAAa,OACbE,OAAQ,IACRC,aAAc,EACdF,mBAAmB,EACnBG,mBAAmB,QAK1BwN,GAAQ2E,GAAK,GACsB,UAApCtW,EAAYkS,oBACV1Q,cAAA,MAAI4U,MAAO,CAAEC,SAAU,QAAS9U,SAAC,gCAG/B,KACJC,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,GACmB,SAApBA,EACI,YACA,qBAKV,WAKR,WAIVnN,cAAA,QAAMnB,IAAKyP,IACX1O,eAACQ,UAAG,CAACD,UAAU,gCAA+BJ,SAAA,CAC1CsI,GAAmC,IAAxBkG,EAAajP,OAItB,KAHFU,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,WAGJA,cAACK,UAAG,CACFC,GAAG,KACHE,GAAG,IACHL,UAAU,uCACVyU,MAAO,CAAEpL,MAAO,oBAAqBzJ,SAErCH,eAAA,MAAIO,UAAU,OAAMJ,SAAA,CAAC,6HAGlBoO,EAAU,SAGfnO,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,iBAMNJ,eAACQ,UAAG,CACFD,WACGkI,GAAWmF,EAAa,gCAAkC,SAC5DzN,SAAA,CAGDC,cAAA,QAAMnB,IAAKyP,IAETjG,GAAmC,IAAxBkG,EAAajP,OAYxB,GAXAU,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVH,eAAA,MAAAG,SAAA,CAAI,wEAEC,IACHC,cAAA,KAAG+U,KAAMrN,EAAMsN,YAAa7U,UAAU,uBAAsBJ,SACzD2H,EAAMuN,YACJ,IAAI,gCAOb5M,GAAmC,IAAxBkG,EAAajP,OAKxB,GAJAU,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,MAAAD,SAAI,uDAKRC,cAACK,UAAG,CAACI,GAAI,EAAGN,UAAU,YAAWJ,SAC/BC,cAACkV,KAAK,CACJC,WAAW,KACXC,UAAQ,EACRC,OAAO,EACPlV,UAAU,6BAA4BJ,SAEtCH,eAAA,SAAAG,SAAA,CACGuN,EACC1N,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,mBAENC,cAAA,MAAAD,SAAKuN,OAEL,KACH9O,EAAYmS,mBAAqB,EAChC/Q,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,qBAENC,cAAA,MAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO1C,EAAYmS,mBACnBpO,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,SAIvB,KACHnE,EAAYwS,uBAAyB,EACpCpR,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,mBAENC,cAAA,MAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO1C,EAAYwS,uBACnBzO,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,SAIvB,KACHnE,EAAYyS,wBAA0B,EACrCrR,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,2BAENC,cAAA,MAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO1C,EAAYyS,wBACnB1O,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,SAIvB,KACHnE,EAAY0S,mBAAqB,EAChCtR,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,sBAENC,cAAA,MAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO1C,EAAY0S,mBACnB3O,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,SAIvB,KACHnE,EAAY4S,oBAAsB,EACjCxR,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,2BAENC,cAAA,MAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO1C,EAAY4S,oBACnB7O,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,SAIvB,KACHoL,EACCnO,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,oBAENC,cAAA,MAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAa,IAAN6M,EACPxL,YAAa,OACbC,mBAAmB,EACnBc,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,SAIvB,KACHnE,EAAYyK,qBACXrJ,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,uBAENC,cAAA,MAAAD,SAAKvB,EAAYyK,0BAEjB,KACHzK,EAAYyL,oBACXrK,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,sBAENC,cAAA,MAAAD,SAAKyN,OAEL,KACHhP,EAAY0K,mBACXtJ,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,qBAENC,cAAA,MAAAD,SAAKvB,EAAY0K,wBAEjB,KACH1K,EAAYqT,iBACXjS,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,mBAENC,cAAA,MAAAD,SAAKvB,EAAYqT,sBAEjB,KAEHjE,EACChO,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,oBAENC,cAAA,MAAAD,SAAK6N,OAEL,KAEHE,EACClO,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,oBAENC,cAAA,MAAAD,SAAK+N,OAEL,KAEHtP,EAAYsT,aACXlS,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,yBAENC,cAAA,MAAAD,SAAiC,QAA5BvB,EAAYsT,aAAyB,MAAQ,UAElD,KAEgC,QAAnCtT,EAAYkS,oBACX9Q,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,uBAENC,cAAA,MAAAD,SACsC,QAAnCvB,EAAYkS,oBAAgC,MAAQ,UAGvD,KACgC,SAAnClS,EAAYkS,oBACX9Q,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,4BAENC,cAAA,MAAAD,SACsC,SAAnCvB,EAAYkS,oBAAiC,MAAQ,UAGxD,KACgB,YAAnBvD,EACCvN,eAAA,MAAAG,SAAA,CACEC,cAAA,MAAIG,UAAU,uBAAsBJ,SAClCC,cAAA,MAAAD,SAAI,4BAENC,cAAA,MAAAD,SAAI,UAEJ,YAIVC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAACU,UAAM,CAACP,UAAU,aAAaQ,QAASA,IAAM+G,EAAM4N,WAAW,GAAGvV,SAAC,wBAO7E,CCtvDe,SAASwV,GAAM7N,GAI5B,MAAM7K,EAAOwB,aAAaC,GAAUA,EAAMC,YAAY1B,OAChDyB,EAAQD,aAAaC,GAAUA,EAAMC,cACrCgH,EAAelH,aAAaC,GAAUA,EAAMC,YAAYkG,UAExD+Q,EAAmB9N,EAAMI,WAEzB2N,EAAQ,CACZ,CACExU,KAAM,cACNyU,UAAW1V,cAAClC,EAAW,CAACgK,WAAY0N,MAGlCG,EAAgB,CACpB,CACE1U,KAAM,cACNyU,UAAW1V,cAAClC,EAAW,CAACgK,WAAY0N,KAEtC,CACEvU,KAAM,gBACNyU,UAAW1V,cAAC4V,EAAa,CAAC9N,WAAY0N,KAExC,CAAEvU,KAAM,UAAWyU,UAAW1V,cAACsF,GAAO,CAACwC,WAAY0N,KACnD,CACEvU,KAAM,cACNyU,UAAW1V,cAACgE,GAAW,CAAC8D,WAAY0N,KAEtC,CACEvU,KAAM,eACNyU,UAAW1V,cAACsK,GAAY,CAACxC,WAAY0N,KAEvC,CACEvU,KAAM,eACNyU,UAAW1V,cAACoL,GAAY,CAACtD,WAAY0N,KAEvC,CACEvU,KAAM,gBACNyU,UAAW1V,cAAC6L,GAAa,CAAC/D,WAAY0N,KAExC,CACEvU,KAAM,YACNyU,UACE1V,cAAC+M,GAAS,CACRjF,WAAY0N,EACZR,YAAatN,EAAMsN,YACnBC,UAAWvN,EAAMuN,UACjBR,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBACzB/M,MAAI,MAKNiO,EAAgB,CACpB,CACE5U,KAAM,cACNyU,UAAW1V,cAAClC,EAAW,CAACgK,WAAY0N,KAEtC,CACEvU,KAAM,qBACNyU,UAAW1V,cAAC8V,EAAkB,CAAChO,WAAY0N,KAE7C,CAAEvU,KAAM,UAAWyU,UAAW1V,cAACsF,GAAO,CAACwC,WAAY0N,KACnD,CACEvU,KAAM,cACNyU,UAAW1V,cAACgE,GAAW,CAAC8D,WAAY0N,KAEtC,CACEvU,KAAM,eACNyU,UAAW1V,cAACsK,GAAY,CAACxC,WAAY0N,KAEvC,CACEvU,KAAM,eACNyU,UAAW1V,cAACoL,GAAY,CAACtD,WAAY0N,KAEvC,CACEvU,KAAM,gBACNyU,UAAW1V,cAAC6L,GAAa,CAAC/D,WAAY0N,KAExC,CACEvU,KAAM,YACNyU,UACE1V,cAAC+M,GAAS,CACRjF,WAAY0N,EACZR,YAAatN,EAAMsN,YACnBC,UAAWvN,EAAMuN,UACjBR,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBACzB/M,MAAI,MAKNmO,EAAmB,CACvB,CACE9U,KAAM,cACNyU,UAAW1V,cAAClC,EAAW,CAACgK,WAAY0N,KAEtC,CACEvU,KAAM,qBACNyU,UAAW1V,cAACgW,EAAkB,CAAClO,WAAY0N,KAE7C,CAAEvU,KAAM,UAAWyU,UAAW1V,cAACsF,GAAO,CAACwC,WAAY0N,KACnD,CACEvU,KAAM,cACNyU,UAAW1V,cAACgE,GAAW,CAAC8D,WAAY0N,KAEtC,CACEvU,KAAM,eACNyU,UAAW1V,cAACsK,GAAY,CAACxC,WAAY0N,KAEvC,CACEvU,KAAM,eACNyU,UAAW1V,cAACoL,GAAY,CAACtD,WAAY0N,KAEvC,CACEvU,KAAM,gBACNyU,UAAW1V,cAAC6L,GAAa,CAAC/D,WAAY0N,KAExC,CACEvU,KAAM,YACNyU,UACE1V,cAAC+M,GAAS,CACRjF,WAAY0N,EACZR,YAAatN,EAAMsN,YACnBC,UAAWvN,EAAMuN,UACjBR,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBACzB/M,MAAI,MA0FZ,MAlFmB,KAAjBrC,QACiBnB,IAAjBmB,GACiB,OAAjBA,IAEAsQ,EAAcI,OAAO,EAAG,EAAG,CACzBhV,KAAM,eACNyU,UAAW1V,cAACoI,GAAY,CAACN,WAAY0N,MAEvCO,EAAiBE,OAAO,EAAG,EAAG,CAC5BhV,KAAM,eACNyU,UAAW1V,cAACoI,GAAY,CAACN,WAAY0N,MAEvCK,EAAcI,OAAO,EAAG,EAAG,CACzBhV,KAAM,cACNyU,UAAW1V,cAAC0J,GAAW,CAAC5B,WAAY0N,MAEtCO,EAAiBE,OAAO,EAAG,EAAG,CAC5BhV,KAAM,cACNyU,UAAW1V,cAAC0J,GAAW,CAAC5B,WAAY0N,OAKpClX,EAAMwD,cAAgB,IACxB6T,EAAcM,OAAO,EAAG,EAAG,CACzBhV,KAAM,kBACNyU,UAAW1V,cAAC8C,EAAW,CAACgF,WAAY0N,MAKnB,KAAjBjQ,QACiBnB,IAAjBmB,GACiB,OAAjBA,IAEAoQ,EAAcM,OAAO,EAAG,EAAG,CACzBhV,KAAM,eACNyU,UAAW1V,cAACoI,GAAY,CAACN,WAAY0N,MAEvCG,EAAcM,OAAO,EAAG,EAAG,CACzBhV,KAAM,cACNyU,UAAW1V,cAAC0J,GAAW,CAAC5B,WAAY0N,QAKtClX,EAAMwD,eAAiB,IAEN,KAAjByD,QACiBnB,IAAjBmB,GACiB,OAAjBA,IAEAoQ,EAAcM,OAAO,EAAG,EAAG,CACzBhV,KAAM,eACNyU,UAAW1V,cAACoI,GAAY,CAACN,WAAY0N,MAEvCG,EAAcM,OAAO,EAAG,EAAG,CACzBhV,KAAM,cACNyU,UAAW1V,cAAC0J,GAAW,CAAC5B,WAAY0N,QAMnB,WAArBA,GACqB,SAArBA,GACqB,aAArBA,IAEAG,EAAcM,OAAON,EAAcrW,OAAS,EAAG,EAAG,CAChD2B,KAAM,aACNyU,UAAW1V,cAACkW,GAAU,CAACpO,WAAY0N,MAErCK,EAAcI,OAAOJ,EAAcvW,OAAS,EAAG,EAAG,CAChD2B,KAAM,aACNyU,UAAW1V,cAACkW,GAAU,CAACpO,WAAY0N,MAErCO,EAAiBE,OAAOF,EAAiBzW,OAAS,EAAG,EAAG,CACtD2B,KAAM,aACNyU,UAAW1V,cAACkW,GAAU,CAACpO,WAAY0N,OAKrCxV,cAACH,IAAMC,SAAQ,CAAAC,SACbC,cAACI,UAAG,CAACD,UAAU,8BAA6BJ,SAC1CC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,OAAKG,UAAU,4BAA2BJ,SACxCC,cAACmW,IAAS,CACRV,MACW,aAAT5Y,EACI8Y,EACS,mBAAT9Y,EACAgZ,EACS,kBAAThZ,EACAkZ,EACAN,EAENW,WAAW,EACXC,eAAe,KACfC,eAAe,KACfC,gBAAgB,EAChBC,wBAAwB,EACxBC,cAAc,EACdC,0BAA0B,SAC1BC,mBAAmB,WAOjC,CCq+CepB,OAntDf,SAAe7N,GAEb,MAAMxJ,EAAWC,cACXK,EAAc,IAAIC,cAClBuO,EAAc,IAAIxF,GAAYE,GAEpC,IAAIyF,EAAkBH,EAAYzF,aAAaO,WAC3C8O,EAAmB5J,EAAYzF,aAAaxJ,YAChDiP,EAAYzF,aAAayK,OAAStK,EAAMuK,KACpCvK,EAAMqK,YACR/E,EAAYzF,aAAawK,UAAYrK,EAAMqK,WAI7C,MAAM9J,EAAS+E,EAAY/E,QAEpBmF,EAAaC,GAAkBpP,oBAAS,IACxC0Q,EAAcC,GAAe3Q,oBAAS,IACtC4Q,EAAcC,GAAe7Q,oBAAS,IACtC8Q,EAAaC,GAAc/Q,oBAAS,IACpCgR,EAAeC,GAAgBjR,oBAAS,IACxCkR,EAAMC,GAAWnR,oBAAS,IAC1BoK,EAASC,GAAcrK,oBAAS,IAChC4Y,EAAWC,GAAgB7Y,mBAAS,KACpC8Y,EAAgBC,GAAqB/Y,oBAAS,IAC9CgZ,EAAaC,GAAkBjZ,oBAAS,IACxCkZ,EAASC,GAAcnZ,oBAAS,IAChCoZ,EAAQC,GAAarZ,oBAAS,IAC9BsZ,EAAOC,GAAYvZ,oBAAS,IAC5BwZ,EAASC,GAAczZ,oBAAS,IAChC0Z,GAAcC,IAAe3Z,oBAAS,IAKtC4Z,GAAoBC,IAAyB7Z,mBAClD+O,EAAYzF,aAAaqK,cAEpBmG,GAAkBC,IAAuB/Z,mBAC9C+O,EAAYzF,aAAajD,aAEpB2T,GAAqBC,IAA0Bja,mBACpD+O,EAAYzF,aAAagK,gBAGpB4G,GAAiBC,IAAsBna,mBAAS,KAEhDoR,GAASC,IAAcrR,mBAAS,KAChCsR,GAASC,IAAcvR,mBAAS,KAEhCwR,GAAQC,IAAazR,mBAAS,KAC9B0R,GAAQC,IAAa3R,mBAAS,KAE9B4R,GAAOC,IAAY7R,mBAAS,KAC5B8R,GAAOC,IAAY/R,mBAAS,KAE5BgS,GAASC,IAAcjS,mBAAS,KAChCkS,GAASC,IAAcnS,mBAAS,KAEhCoa,GAAUC,IAAera,mBAAS,KAClCsa,GAAWC,IAAgBva,mBAAS,KACpCwa,GAASC,IAAcza,mBAAS,KAChC0a,GAAWC,IAAgB3a,mBAAS,KACpC4a,GAAqBC,IAA0B7a,mBAAS,KAIxD8a,GAAcC,IAAmB/a,oBAAS,IAC1Cgb,GAAiBC,IAAsBjb,oBAAS,IAEhDkb,GAAiBC,IAAsBnb,oBAAS,GAEjDgQ,GAAY,IAAIC,KACN,IAAIE,KAAKC,eAAe,SAASxH,OAAOoH,IAEvCjF,KAAG;;;;IAApB,MAMMqQ,GAAkB7I,IACtB1R,aAAa2R,QAAQ,aAAcD,GAEvB,iBAARA,GACF5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,GAAa,GACboK,MACiB,QAAR9I,GACT5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,GAAa,IAkCM,IAAjBO,GAAOmD,MACT2G,GAA2B9J,KACD,IAAjBE,GAAOiD,OAChB2G,GAA2B5J,KAnCV,OAARa,GACT5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,GAAa,IAoBK,IAAhBW,GAAM+C,MACR2G,GAA2B1J,KACF,IAAhBE,GAAM6C,OACf2G,GAA2BxJ,KArBV,SAARS,IACT5B,GAAY,GACZE,GAAY,GACZE,GAAW,GACXE,GAAa,IAMO,IAAlBe,GAAQ2C,MACV2G,GAA2BtJ,KACA,IAAlBE,GAAQyC,OACjB2G,GAA2BpJ,IAP7B,EA2BF,SAASmJ,MACe,IAAlBjK,GAAQuD,MACV2G,GAA2BlK,KACA,IAAlBE,GAAQqD,OACjB2G,GAA2BhK,GAE/B,CAEA,SAASgK,GAA2BC,GAClChb,EAAYib,qBAAqBC,YAAYF,EAAgB1G,SAC/D,CAEA,MAAM6G,GAA0BC,IAC9B,OAAQA,EAAc7b,aACpB,KAAK,EACHS,EAAYR,eAAe,YAC3B,MACF,KAAK,EACHQ,EAAYR,eAAe,kBAC3B,MACF,KAAK,EACHQ,EAAYR,eAAe,iBAI/BQ,EAAYqb,cAAcD,EAAc9R,YACxCtJ,EAAYmI,iBAAiBiT,EAAc9T,eAC3CtH,EAAYwH,mBAAmB4T,EAAcjI,iBAC7CnT,EAAYsb,cAAcF,EAAc1H,YACxC1T,EAAYub,aAAaH,EAAc7H,WACvCvT,EAAY+L,gBAAgBqP,EAAcnI,oBAAoB,EAGhEuI,eAAeC,GAAchT,SAErBiT,GAASlN,EAAYzF,aAAaO,WAC1C,CAGA,MAAMqS,MACJzS,EAAMqK,WAAiC,QAApBrK,EAAMqK,WAGrBqI,GACgB,WAApBjN,GACuC,QAAvCH,EAAYzF,aAAawK,UAC3BjT,aAAa2R,QAAQ,cAAe0J,IAAkBC,IAGtD,MAuBMF,GAAWF,MAAOlS,EAAYuS,KAElC,IAIE,MAIMC,SAJkBrU,IACtB,qDAGkCO,KAAK+T,MACtCC,GAAMA,EAAElc,MAAMoI,OAAS2T,IAE1B,IAAI/T,EACAE,EAGFA,EADE6T,EACK,CACL,KAAQrN,EAAYzF,aAAayK,OACjC,cAAiBqI,EAActH,cAC/B,eAAkBuH,EAAkBhc,MAAMmc,OAAO/T,KACjD,gBAAmB4T,EAAkBhc,MAAMmc,OAAOC,SAG7C,CACL,KAAQ1N,EAAYzF,aAAayK,OACjC,cAAiBhF,EAAYzF,aAAazB,cAC1C,eAAkBkH,EAAYzF,aAAayC,eAC3C,gBAAmBgD,EAAYzF,aAAaoK,iBAIhD,IAAIgJ,EAAS,CACXC,OAAQ,OACRC,IAAK1U,kGACLC,QAAS,CACP,eAAgB,oBAElBI,KAAOA,GAGTF,QAAiBL,IAAM0U,GACvBrU,EAAWA,EAASE,KAAKsU,QAGzB,GADoBnV,KAAK+N,UAAUpN,GACnBhH,OAAS,EAAG,CAC1B8Y,GAAmB9R,GACnB,MAAMyU,EAAa,IAAI7M,KACjB8M,EAAWnU,YAAOkU,EAAY,sBACpCjC,GAAuBkC,GACvBxc,EAAYiV,YAAY9N,KAAK+N,UAAUpN,EAASE,KAAK,MAEjDF,EAASE,KAAK,GAAGyU,QAAQC,kBAAoB5U,EAASE,KAAK,GAAG2U,eAAeD,oBAC3E5U,EAASE,KAAK,GAAGyU,QAAQC,iBAAiBtI,OAC5CtM,EAASE,KAAK,GAAGyU,QAAQC,iBAAiBlI,UAAiE,GAArD1M,EAASE,KAAK,GAAGyU,QAAQC,iBAAiBjI,SAChGzD,GAAWlJ,EAASE,KAAK,GAAGyU,QAAQC,oBAEpC5U,EAASE,KAAK,GAAG2U,eAAeD,iBAAiBlI,UAAwE,GAA5D1M,EAASE,KAAK,GAAG2U,eAAeD,iBAAiBjI,SAC9GzD,GAAWlJ,EAASE,KAAK,GAAG2U,eAAeD,qBAI3C5U,EAASE,KAAK,GAAGyU,QAAQG,kBAAoB9U,EAASE,KAAK,GAAG2U,eAAeC,oBAC3E9U,EAASE,KAAK,GAAGyU,QAAQG,iBAAiBxI,OAC5CtM,EAASE,KAAK,GAAGyU,QAAQG,iBAAiBpI,UAAiE,GAArD1M,EAASE,KAAK,GAAGyU,QAAQG,iBAAiBnI,SAChG3D,GAAWhJ,EAASE,KAAK,GAAGyU,QAAQG,kBACpC5C,GAAalS,EAASE,KAAK,GAAGyU,QAAQG,iBAAiBC,eAEvD/U,EAASE,KAAK,GAAG2U,eAAeC,iBAAiBpI,UAAwE,GAA5D1M,EAASE,KAAK,GAAG2U,eAAeC,iBAAiBnI,SAC9G3D,GAAWhJ,EAASE,KAAK,GAAG2U,eAAeC,kBAC3C5C,GAAalS,EAASE,KAAK,GAAG2U,eAAeC,iBAAiBC,gBAI9D/U,EAASE,KAAK,GAAGyU,QAAQK,iBAAmBhV,EAASE,KAAK,GAAG2U,eAAeG,mBAC1EhV,EAASE,KAAK,GAAGyU,QAAQK,gBAAgB1I,OAC3CtM,EAASE,KAAK,GAAGyU,QAAQK,gBAAgBtI,UAAgE,GAApD1M,EAASE,KAAK,GAAGyU,QAAQK,gBAAgBrI,SAC9FvD,GAAUpJ,EAASE,KAAK,GAAGyU,QAAQK,mBAEnChV,EAASE,KAAK,GAAG2U,eAAeG,gBAAgBtI,UAAuE,GAA3D1M,EAASE,KAAK,GAAG2U,eAAeG,gBAAgBrI,SAC5GvD,GAAUpJ,EAASE,KAAK,GAAG2U,eAAeG,oBAI1ChV,EAASE,KAAK,GAAGyU,QAAQM,iBAAmBjV,EAASE,KAAK,GAAG2U,eAAeI,mBAC1EjV,EAASE,KAAK,GAAGyU,QAAQM,gBAAgB3I,OAC3CtM,EAASE,KAAK,GAAGyU,QAAQM,gBAAgBvI,UAAgE,GAApD1M,EAASE,KAAK,GAAGyU,QAAQM,gBAAgBtI,SAC9FrD,GAAUtJ,EAASE,KAAK,GAAGyU,QAAQM,iBACnCjD,GAAYhS,EAASE,KAAK,GAAGyU,QAAQM,gBAAgBF,eAErD/U,EAASE,KAAK,GAAG2U,eAAeI,gBAAgBvI,UAAuE,GAA3D1M,EAASE,KAAK,GAAG2U,eAAeI,gBAAgBtI,SAC5GrD,GAAUtJ,EAASE,KAAK,GAAG2U,eAAeI,iBAC1CjD,GAAYhS,EAASE,KAAK,GAAG2U,eAAeI,gBAAgBF,gBAI5D/U,EAASE,KAAK,GAAGyU,QAAQO,gBAAkBlV,EAASE,KAAK,GAAG2U,eAAeK,kBACzElV,EAASE,KAAK,GAAGyU,QAAQO,eAAe5I,OAC1CtM,EAASE,KAAK,GAAGyU,QAAQO,eAAexI,UAA+D,GAAnD1M,EAASE,KAAK,GAAGyU,QAAQO,eAAevI,SAC5FjD,GAAS1J,EAASE,KAAK,GAAGyU,QAAQO,kBAElClV,EAASE,KAAK,GAAG2U,eAAeK,eAAexI,UAAsE,GAA1D1M,EAASE,KAAK,GAAG2U,eAAeK,eAAevI,SAC1GjD,GAAS1J,EAASE,KAAK,GAAG2U,eAAeK,mBAIzClV,EAASE,KAAK,GAAGyU,QAAQQ,gBAAkBnV,EAASE,KAAK,GAAG2U,eAAeM,kBACzEnV,EAASE,KAAK,GAAGyU,QAAQQ,eAAe7I,OAC1CtM,EAASE,KAAK,GAAGyU,QAAQQ,eAAezI,UAA+D,GAAnD1M,EAASE,KAAK,GAAGyU,QAAQQ,eAAexI,SAC5FnD,GAASxJ,EAASE,KAAK,GAAGyU,QAAQQ,gBAClC/C,GAAWpS,EAASE,KAAK,GAAGyU,QAAQQ,eAAeJ,eAEnD/U,EAASE,KAAK,GAAG2U,eAAeM,eAAezI,UAAsE,GAA1D1M,EAASE,KAAK,GAAG2U,eAAeM,eAAexI,SAC1GnD,GAASxJ,EAASE,KAAK,GAAG2U,eAAeM,gBACzC/C,GAAWpS,EAASE,KAAK,GAAG2U,eAAeM,eAAeJ,gBAI1D/U,EAASE,KAAK,GAAGyU,QAAQS,kBAAoBpV,EAASE,KAAK,GAAG2U,eAAeO,oBAC3EpV,EAASE,KAAK,GAAGyU,QAAQS,iBAAiB9I,OAC5CtM,EAASE,KAAK,GAAGyU,QAAQS,iBAAiB1I,UAAiE,GAArD1M,EAASE,KAAK,GAAGyU,QAAQS,iBAAiBzI,SAChG/C,GAAW5J,EAASE,KAAK,GAAGyU,QAAQS,oBAEpCpV,EAASE,KAAK,GAAG2U,eAAeO,iBAAiB1I,UAAwE,GAA5D1M,EAASE,KAAK,GAAG2U,eAAeO,iBAAiBzI,SAC9G/C,GAAW5J,EAASE,KAAK,GAAG2U,eAAeO,qBAI3CpV,EAASE,KAAK,GAAGyU,QAAQU,kBAAoBrV,EAASE,KAAK,GAAG2U,eAAeQ,oBAC3ErV,EAASE,KAAK,GAAGyU,QAAQU,iBAAiB/I,OAC5CtM,EAASE,KAAK,GAAGyU,QAAQU,iBAAiB3I,UAAiE,GAArD1M,EAASE,KAAK,GAAGyU,QAAQU,iBAAiB1I,SAChG7C,GAAW9J,EAASE,KAAK,GAAGyU,QAAQU,kBACpC/C,GAAatS,EAASE,KAAK,GAAGyU,QAAQU,iBAAiBN,eAEvD/U,EAASE,KAAK,GAAG2U,eAAeQ,iBAAiB3I,UAAwE,GAA5D1M,EAASE,KAAK,GAAG2U,eAAeQ,iBAAiB1I,SAC9G7C,GAAW9J,EAASE,KAAK,GAAG2U,eAAeQ,kBAC3C/C,GAAatS,EAASE,KAAK,GAAG2U,eAAeQ,iBAAiBN,eAIlEjM,GAAQ,EACV,CAEA4H,GAAkB,EACpB,CAAE,MAAO/P,GACP+P,GAAkB,GAClBrD,QAAQ1M,MAAM,YAAaA,EAC7B,GAIFrI,qBAAU,KAORwQ,GAAQ,GArLe4K,WACvB,IAAI4B,EAAW,WACI,WAAf9T,IAAyB8T,EAAW,YAGxC,MAAMC,QAAmB5V,IACvB,yCAAyC2V,iBAGnBC,EAAWrV,KAAK,GAAGoV,KAEzC9D,GAAsB+D,EAAWrV,KAAK,GAAGoV,GAAUhK,aACnDoG,GAAoB6D,EAAWrV,KAAK,GAAGoV,GAAUtX,YACjD4T,GAAuB2D,EAAWrV,KAAK,GAAGoV,GAAUrK,eACpDoI,GAAuBkC,EAAWrV,KAAK,GAAGoV,IAC5C,EAyKAE,CAAiB3O,GAGjBH,EAAYzF,aAAa+K,UAAUK,SAASQ,IAC1B,qBAAZA,GAA8C,qBAAZA,GACpCiE,GAAW,GAGG,oBAAZjE,GAA6C,oBAAZA,GACnCmE,GAAU,GAGI,mBAAZnE,GAA4C,mBAAZA,GAClCqE,GAAS,GAGK,qBAAZrE,GAA8C,qBAAZA,GACpCuE,GAAW,EACb,IAKF,IAAIqE,EAAmB9T,EACvBhC,IACGoL,KACClL,mEACA,CAAE+D,YAAa,YAAajC,OAAQ8T,GACpC,CACE3V,QAAS,CAAE,eAAgB,sBAG9BC,MAAMC,IACL9H,EAAYwd,aAAarW,KAAK+N,UAAUpN,EAASE,OACjDtI,EvC5UG,CACHrB,KAAM,kBACNC,QuC0UyBwJ,EAASE,MAAM,IAI5CP,IACGoL,KACClL,yEACA,CAAE,EACF,CAAE8V,QAAS,KACX,CACE7V,QAAS,CAAE,eAAgB,sBAG9BC,MAAK2T,UAGJ,SAFuCkC,KAIrC,GADAhF,GAAe,GAEK,qBAAlB5Q,EAASE,MACS,oBAAlBF,EAASE,KACT,CACA,IAAIkU,EAAUpU,EAASE,KAAKkU,QACxBA,EACFzU,IACGC,IACCC,iEACEuU,EACF,CACEtU,QAAS,CAAE,eAAgB,qBAE7B,CAAE6V,QAAS,OAEZ5V,MAAK2T,UACJxb,EAAY+H,kBACVD,EAASE,KAAKC,SAAS,GAAGC,MAE5BxI,EAASN,EAAkB0I,EAASE,KAAKC,SAAS,GAAGC,OACrDlI,EAAYmI,iBAAiBL,EAASE,KAAKlI,OAC3CJ,EAASP,EAAmB2I,EAASE,KAAKlI,QAE1C2H,IACGC,IACCC,4EACEG,EAASE,KAAKlI,MAChB,CACE8H,QAAS,CAAE,eAAgB,sBAG9BC,MAAMC,IACLwQ,EAAaxQ,EAASE,KAAKqQ,UAAU,IAGzC,IAAI5J,EAAsB,IAAIC,GAC5B5G,EAASE,KAAKlI,OAGhB,MAAM6d,EAAc,CAClBjK,WAAYlF,EAAYzF,aAAa2K,WACrCN,YAAa5E,EAAYzF,aAAaqK,YACtCtN,WAAY0I,EAAYzF,aAAajD,WACrCwD,WAAYkF,EAAYzF,aAAaO,WACrC/J,YAAaiP,EAAYzF,aAAaxJ,YACtCqU,WAAYpF,EAAYzF,aAAa6K,WACrCC,gBACErF,EAAYzF,aAAa8K,gBAC3BX,UAAW1E,EAAYzF,aAAamK,UACpC5E,MAC0C,WAAxCE,EAAYzF,aAAaO,YACe,SAAxCkF,EAAYzF,aAAaO,WACrBkF,EAAYzF,aAAauF,MACzBG,EAAoBJ,mBAC1BkF,UAAW/E,EAAYzF,aAAawK,UACpC/H,eAAgB1D,EAASE,KAAKC,SAAS,GAAGC,KAC1CZ,cAAeQ,EAASE,KAAKlI,MAC7BqT,gBAAiB+I,EACjBjJ,oBACEzE,EAAYzF,aAAakK,oBAC3BF,cAAevE,EAAYzF,aAAagK,cACxCS,OAAQhF,EAAYzF,aAAayK,OACjCnN,QAASmI,EAAYzF,aAAa1C,QAClCyN,UAAW,CACTtF,EAAYzF,aAAa+K,UAAU,GACnCtF,EAAYzF,aAAa+K,UAAU,KAYvC,aAPM4H,GACJiC,EAAYrU,WACZqU,EAAYrW,eAGd6T,GAAuBwC,GACvB3d,EAAYwH,mBAAmB0U,GACxByB,CAAW,IAEnB9V,MAAK2T,UACJ3M,EAAeL,EAAY5F,cAAc,IAE1CJ,OAAOC,IACNgT,KACAtG,QAAQC,IAAI,gBAAiB3M,EAAM,IAGvCgT,IAEJ,MACEtG,QAAQC,IAAItN,EAASE,MACrByT,UAGF/C,GAAe,EACjB,IAEDlQ,OAAOC,IACN0M,QAAQC,IAAI3M,GACZgT,IAAoB,IAGxBzb,EAAYa,eAAe8Z,IAC3BG,IAAgB,GACf,IAEH1a,qBAAU,KACgB,iBAApBuO,GACF6L,IAAgB,EAClB,GACC,CAAC7L,IAEJ,MAAM+O,GAAkClC,UACtC,IAAI1T,EAEJ,IAOIqU,EAAS,CACXC,OAAQ,OACRC,IAAK1U,kGACLC,QAAS,CACP,eAAgB,oBAElBI,KAbS,CACT,KAAQwG,EAAYzF,aAAayK,OACjC,WAAc,oCAiBhB,OAHA1L,QAAiBL,IAAM0U,GAGhBrU,EAASE,KAAKsU,QAAQtU,KAAK,GAAGyQ,WAAW,EAG5CmF,GAAoBA,KACxB,IAAItJ,EAAW,YACf,OAAQnN,KAAK+N,UAAUkD,IACrB,IAAK,IACH9D,EAAW,WACX,MACF,IAAK,IACHA,EAAW,YACX,MACF,IAAK,IACHA,EAAW,gBAIf,OAAOA,CAAQ,EAIjB,OACE9S,cAAAqc,WAAA,CAAAtc,SACCoY,GACCvY,eAAA,OAAAG,SAAA,CACuB,aAApBoN,EACCnN,cAAC8T,UAAS,CACR3T,UAAU,0EACVmc,OAAK,EAAAvc,SAELC,cAACI,UAAG,CAAAL,SACFC,cAACK,UAAG,CAACF,UAAU,OAAOa,GAAG,kBAAiBjB,SACvCoZ,GACCnZ,cAAA,MAAIG,UAAU,aAAYJ,SAAC,sBAE3BH,eAAA,MAAIO,UAAU,aAAYJ,SAAA,CAAC,gBACP,IACjB8W,EAAY,OAASA,EAAU9D,cAAgB,cAMxD,KACJ/S,cAAC8T,UAAS,CAAC3T,UAAU,eAAcJ,SACjCC,cAAA,OAAKG,UAAYgP,EAAkB,KAAX,SAAgBpP,SAEtCH,eAACmU,IAAI,CACH5T,UAAU,8BACVoc,iBAAiB,eACjBvb,GAAG,qBACHkT,SAAWC,GAAMkF,GAAelF,GAAGpU,SAAA,EAEtB,IAAZoX,EACCvX,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACEwO,EACI,uDACA,gCAEN0F,SAAS,eACTC,MAAM,eAAcvU,SAAA,CAEC,KAApB2H,EAAM8U,WACNzF,IACA1H,GAAQuD,QAASrD,GAAQqD,MAMtB,KALF5S,cAACK,UAAG,CAACF,UAAU,UAAUM,GAAI,GAAGV,SAC9BC,cAAA,MAAIG,UAAU,oDAAmDJ,SAC/DC,cAAA,UAAAD,SAAS2H,EAAM8U,gBAKrBxc,cAACK,UAAG,CACFF,UAAW,IACTkP,GAAQmE,QAAUnE,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,MACvEhF,GAAQiE,QAAUjE,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,OAAwB,IAAhBnH,EAC7E,UACA,UAEN3M,GAAI,GAAGV,SAEPC,cAAA,MAAIG,UAAU,kEAAiEJ,SAC7EC,cAAA,UAAAD,SAAQ,2BAIO,IAAlBsP,GAAQuD,MACP5S,cAACK,UAAG,CACFI,GACE4O,GAAQmE,QAAUnE,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,OACxD,IAAhBnH,IACCiC,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,KAAOlF,GAAQmE,MAAQ,IAC1E,EACA,EAENrT,UAAW,+DAA+DJ,SAI1EH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAM6I,GACNoF,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrCsP,GAAQmE,QAAUnE,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,OACzD,IAAhBnH,IACCiC,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,KAAOlF,GAAQmE,MAAQ,IAC5ExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOmO,GAAQmE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOmO,GAAQmE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOmO,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,IAC7DhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MAAIO,UAAU,2CAA0CJ,SAAA,CAAC,QACjD,IACLsP,GAAQmE,QAAUnE,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,OACzD,IAAhBnH,IACCiC,GAAQoN,aAAepN,GAAQoN,aAAepN,GAAQkF,KAAOlF,GAAQmE,MAAQ,IAC1E,IACA,IAAK,IAAI,UAIM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,MAEe,IAAlBoC,GAAQqD,MACP5S,cAACK,UAAG,CACFI,GACE8O,GAAQiE,QAAUjE,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,OACxD,IAAhBnH,IACCmC,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,KAAOhF,GAAQiE,MAAQ,IAC1E,EACA,EAENrT,UAAU,0CAAyCJ,SAGnDH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAM+I,GACNkF,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrCwP,GAAQiE,QAAUjE,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,OACzD,IAAhBnH,IACCmC,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,KAAOhF,GAAQiE,MAAQ,IAC5ExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOqO,GAAQiE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOqO,GAAQiE,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOqO,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,IAC7DhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MAAIO,UAAU,2CAA0CJ,SAAA,CAAC,QACjD,IACLwP,GAAQiE,QAAUjE,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,OACzD,IAAhBnH,IACCmC,GAAQkN,aAAelN,GAAQkN,aAAelN,GAAQgF,KAAOhF,GAAQiE,MAAQ,IAC1E,IACA,IAAK,IAAI,UAGM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,QAKJ,MAIQ,IAAXkK,EACCzX,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACE0O,EACI,yCACA,kBAENwF,SAAS,MACTC,MAAM,MAAKvU,SAAA,CAEU,KAApB2H,EAAM8U,WACNzF,IACAtH,GAAOmD,QAASjD,GAAOiD,MAMpB,KALF5S,cAACK,UAAG,CAACF,UAAU,UAAUM,GAAI,GAAGV,SAC9BC,cAAA,MAAIG,UAAU,oDAAmDJ,SAC/DC,cAAA,UAAAD,SAAS2H,EAAM8U,gBAKnB/M,GAAOmD,OAAUjD,GAAOiD,MAExB,KADA5S,cAAA,MAAIG,UAAU,mBAAkBJ,SAAC,yDAGjB,IAAjB0P,GAAOmD,MACN5S,cAACK,UAAG,CACFI,GACEgP,GAAO+D,OAAS/D,GAAO8E,KACuC,KAA7D9E,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,OACnD9E,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,KAAO9E,GAAO+D,MAAQ,IACtE,EACA,EAENrT,UAAW,+DAA+DJ,SAE1EH,eAAC4U,YAAQ,CACPxT,GAAG,gBACH8G,WAAYqF,EACZ3G,KAAMiJ,GACNgF,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrC0P,GAAO+D,QAAU/D,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,MACR,KAA5D9E,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,OACnD9E,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,KAAO9E,GAAO+D,MAAQ,IACxExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOuO,GAAO+D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOuO,GAAO+D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOuO,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,IAC1DhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,2CACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACL0P,GAAO+D,QAAU/D,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,MACR,KAA5D9E,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,OACnD9E,GAAOgN,aAAehN,GAAOgN,aAAehN,GAAO8E,KAAO9E,GAAO+D,MAAQ,IACtE,IACA,IAAK,IAAI,UAGM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,MAEc,IAAjBwC,GAAOiD,MACN5S,cAACK,UAAG,CACFI,GACEkP,GAAO6D,QAAU7D,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,MACP,KAA5D5E,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,OACnD5E,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,KAAO5E,GAAO6D,MAAQ,IACtE,EACA,EAENrT,UAAU,0CAAyCJ,SAEnDH,eAAC4U,YAAQ,CACPxT,GAAG,gBACH8G,WAAYqF,EACZ3G,KAAMmJ,GACN8E,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrC4P,GAAO6D,QAAU7D,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,MACR,KAA5D5E,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,OACnD5E,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,KAAO5E,GAAO6D,MAAQ,IACxExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOyO,GAAO6D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOyO,GAAO6D,KACdjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOyO,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,IAC1DhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,2CACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACL4P,GAAO6D,QAAU7D,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,MACR,KAA5D5E,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,OACnD5E,GAAO8M,aAAe9M,GAAO8M,aAAe9M,GAAO4E,KAAO5E,GAAO6D,MAAQ,IACtE,IACA,IAAK,IAAI,UAGM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,QAEJ,MAIO,IAAVoK,EACC3X,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACE4O,EACI,0CACA,mBAENsF,SAAS,KACTC,MAAM,KAAIvU,SAAA,CAEW,KAApB2H,EAAM8U,WACNzF,IACAlH,GAAM+C,QAAS7C,GAAM6C,MAMlB,KALF5S,cAACK,UAAG,CAACF,UAAU,UAAUM,GAAI,GAAGV,SAC9BC,cAAA,MAAIG,UAAU,oDAAmDJ,SAC/DC,cAAA,UAAAD,SAAS2H,EAAM8U,gBAKnB3M,GAAM+C,OAAU7C,GAAM6C,MAEtB,KADA5S,cAAA,MAAIG,UAAU,mBAAkBJ,SAAC,wDAGd,aAApBoN,IAAkD,IAAhB0C,GAAM+C,MACvC5S,cAACK,UAAG,CACFI,GACEoP,GAAM2D,QAAU3D,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,MACN,KAAzD1E,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,OAChD1E,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,KAAO1E,GAAM2D,MAAQ,IAClE,EACA,EAENrT,UAAW,+DAA+DJ,SAE1EH,eAAC4U,YAAQ,CACPxT,GAAG,eACH8G,WAAYqF,EACZ3G,KAAMqJ,GACN4E,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrC8P,GAAM2D,QAAU3D,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,MACP,KAAzD1E,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,OAChD1E,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,KAAO1E,GAAM2D,MAAQ,IACpExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO2O,GAAM2D,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAO2O,GAAM2D,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAO2O,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,IACvDhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,4BACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACL8P,GAAM2D,QAAU3D,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,MACP,KAAzD1E,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,OAChD1E,GAAM4M,aAAe5M,GAAM4M,aAAe5M,GAAM0E,KAAO1E,GAAM2D,MAAQ,IAClE,IACA,IAAK,IAAI,UAGM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,MAEa,IAAhB4C,GAAM6C,MACL5S,cAACK,UAAG,CACFI,GACEsP,GAAMyD,QAAUzD,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,MACN,KAAzDxE,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,OAChDxE,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,KAAOxE,GAAMyD,MAAQ,IAClE,EACA,EAENrT,UAAU,0CAAyCJ,SAEnDH,eAAC4U,YAAQ,CACPxT,GAAG,eACH8G,WAAYqF,EACZ3G,KAAMuJ,GACN0E,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrCgQ,GAAMyD,QAAUzD,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,MACP,KAAzDxE,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,OAChDxE,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,KAAOxE,GAAMyD,MAAQ,IACpExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO6O,GAAMyD,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAO6O,GAAMyD,KACbjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAO6O,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,IACvDhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,4BACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLgQ,GAAMyD,QAAUzD,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,MACP,KAAzDxE,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,OAChDxE,GAAM0M,aAAe1M,GAAM0M,aAAe1M,GAAMwE,KAAOxE,GAAMyD,MAAQ,IAClE,IACA,IAAK,IAAI,UAGM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,QAEJ,MAIS,IAAZsK,GACmB,aAApBtK,GACoB,WAApBA,EACEvN,eAACwU,IAAG,CACFhS,GAAIhC,UACJD,UACE8O,EACI,0CACA,mBAENoF,SAAS,OACTC,MAAM,OAAMvU,SAAA,CAES,KAApB2H,EAAM8U,WACNzF,IACA9G,GAAQ2C,QAASzC,GAAQyC,MAMtB,KALF5S,cAACK,UAAG,CAACF,UAAU,UAAUM,GAAI,GAAGV,SAC9BC,cAAA,MAAIG,UAAU,oDAAmDJ,SAC/DC,cAAA,UAAAD,SAAS2H,EAAM8U,gBAInBvM,GAAQ2C,OAAUzC,GAAQyC,MAE1B,KADA5S,cAAA,MAAIG,UAAU,mBAAkBJ,SAAC,wDAEd,aAApBoN,IAAoD,IAAlB8C,GAAQ2C,MACzC5S,cAACK,UAAG,CACFI,GACEwP,GAAQuD,QAAUvD,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,MACR,KAA/DtE,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,OACtDtE,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,KAAOtE,GAAQuD,MAAQ,IAC1E,EACA,EAENrT,UAAW,+DAA+DJ,SAE1EH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAMyJ,GACNwE,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrCkQ,GAAQuD,QAAUvD,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,MACT,KAA/DtE,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,OACtDtE,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,KAAOtE,GAAQuD,MAAQ,IAC5ExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAO+O,GAAQuD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAO+O,GAAQuD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAO+O,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,IAC7DhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,gDACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLkQ,GAAQuD,QAAUvD,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,MACV,IAA9DtE,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,OACtDtE,GAAQwM,aAAexM,GAAQwM,aAAexM,GAAQsE,KAAOtE,GAAQuD,MAAQ,IAC1E,IACA,IAAK,IAAI,UAGM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,MAEe,IAAlBgD,GAAQyC,MACP5S,cAACK,UAAG,CACFI,GACE0P,GAAQqD,QAAUrD,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,MACT,IAA9DpE,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,OACtDpE,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,KAAOpE,GAAQqD,MAAQ,IAC1E,EACA,EAENrT,UAAU,0CAAyCJ,SAEnDH,eAAC4U,YAAQ,CACPxT,GAAG,iBACH8G,WAAYqF,EACZ3G,KAAM2J,GACNsE,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,iBAAiB5U,SAAA,CAE1CC,cAAA,MAAIG,UAAU,wBAAuBJ,SAAC,gBACrCoQ,GAAQqD,QAAUrD,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,MACT,KAA/DpE,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,OACtDpE,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,KAAOpE,GAAQqD,MAAQ,IAC5ExT,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BC,cAAA,UAAAD,SACEC,cAACqC,IAAY,CACXnB,MAAOiP,GAAQqD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,QAKzB3C,cAAA,OAAAD,SACEC,cAAA,MAAIG,UAAU,iBAAgBJ,SAC5BH,eAAA,UAAAG,SAAA,CACEC,cAACqC,IAAY,CACXnB,MAAOiP,GAAQqD,KACfjR,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,IAClB,IAAI,IACL,IACF3C,cAACqC,IAAY,CACXnB,MAAOiP,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,IAC7DhS,YAAa,OACbe,OAAQ,IACRZ,aAAc,EACdC,mBAAmB,WAM7B/C,eAAA,MACEO,UAAU,gDACVyU,MAAO,CAAEC,SAAU,QAAS9U,SAAA,CAC7B,QACO,IACLoQ,GAAQqD,QAAUrD,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,MACT,KAA/DpE,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,OACtDpE,GAAQsM,aAAetM,GAAQsM,aAAetM,GAAQoE,KAAOpE,GAAQqD,MAAQ,IAC1E,IACA,IAAK,IAAI,UAGM,aAApBrG,EACCnN,cAAA,MAAIG,UAAU,YAAWJ,SACvBC,cAAA,UAAAD,SACuB,WAApBoN,EACG,YACA,gBAGN,UAGN,QAEJ,YAKVnN,cAAC8T,UAAS,CAAA/T,SACPoZ,GACCnZ,cAAC0c,GAAW,CACV5U,WAAYqF,EACZ6H,YAAatN,EAAMsN,YACnBC,UAAWvN,EAAMuN,UACjBR,eAAqB,OAAL/M,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACvBA,KAAW,OAALvK,QAAK,IAALA,OAAK,EAALA,EAAOuK,KACbyC,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,mBAG3B,KAIiB,aAApBxH,EACCnN,cAAC8T,UAAS,CAAC3T,UAAYgP,EAAkB,KAAX,SAAgBpP,SAC5CH,eAACQ,UAAG,CAACD,UAAU,qDAAoDJ,SAAA,CACjEC,cAACK,UAAG,CAACI,GAAI,GAAGV,SACVC,cAAA,WAEFA,cAACK,UAAG,CAACG,GAAI,EAAGL,UAAU,6BAA4BJ,SAC/CgZ,GACC/Y,cAAC2c,IAAc,CAACC,QAAM,EAACC,SAAS,mBAAkB9c,SAEhDC,cAACU,UAAM,CACLP,UAAU,yBACVQ,QAASA,KACPqY,IAAgB,GAChBE,IAAmB,GACnBE,IAAmB,GACnBhK,GAAQ,EAAM,EACdrP,SACH,sBAKD,YAIR,KAEJC,cAAC8T,UAAS,CACR3T,UAAW,mCACRkI,EAAiB,SAAP,OAEbiU,OAAK,EAAAvc,SAEJgZ,IAAgBE,GACfjZ,cAACI,UAAG,CAACD,UAAU,gCAA+BJ,SACvB,aAApBoN,EACCvN,eAACS,UAAG,CACFC,GAAG,KACHE,GAAG,IACHL,UAAU,4CACVyU,MAAO,CACLpL,MAAO,oBACPzJ,SAAA,CAGFH,eAAA,MAAIO,UAAWwO,IAAiBtG,EAAU,OAAS,UAAUtI,SAAA,CAC1Dqc,KAAqB,IACD,WAApBjP,GACmB,iBAApBA,EACI,8BACA,KAAK,KACN0K,GAAmB,WAGvBlJ,IAAiBtG,EAChBzI,eAAA,MAAAG,SAAA,CAAI,gDAC4C,IAE5CC,cAACqC,IAAY,CACXnB,MAAO6W,GACPxV,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAErB,IAAI,6BACqB,IAEzB3C,cAACqC,IAAY,CACXnB,MAAO+W,GACP1V,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAEtB,IACA3C,cAAA,SAAM,0GAEyC,IAC/CuY,GACG,iDACA,KACJvY,cAAA,SAAM,6HAGL6Y,GAAoB,OAErB,KAGJjZ,eAAA,MACEO,WACE0O,GACCxG,IACiB,IAAjBoH,GAAOmD,QAAmC,IAAjBjD,GAAOiD,MAE7B,UADA,OAEL7S,SAAA,CAEAqc,KAAqB,IACD,WAApBjP,GACmB,iBAApBA,EACI,8BACA,KAAK,KACN0K,GAAmB,YAGvBhJ,GACAxG,IACiB,IAAjBoH,GAAOmD,QAAmC,IAAjBjD,GAAOiD,MAmC7B,KAlCFhT,eAAA,MAAAG,SAAA,CAAI,gDAC4C,IAE5CC,cAACqC,IAAY,CACXnB,MAAO6W,GACPxV,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAErB,IAAI,6BACqB,IAEzB3C,cAACqC,IAAY,CACXnB,MAAO+W,GACP1V,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAEtB,IACA3C,cAAA,SAAM,0GAEyC,IAC/CqY,GACG,iDACA,KACJrY,cAAA,SAAM,6HAGL6Y,GAAoB,OAKzBjZ,eAAA,MACEO,WACE4O,GACC1G,IACgB,IAAhBwH,GAAM+C,QAAkC,IAAhB7C,GAAM6C,MAE3B,UADA,OAEL7S,SAAA,CAEAqc,KAAqB,IACD,WAApBjP,GACmB,iBAApBA,EACI,8BACA,KAAK,KACN0K,GAAmB,YAGvB9I,GACA1G,IACgB,IAAhBwH,GAAM+C,QAAkC,IAAhB7C,GAAM6C,MAmC3B,KAlCFhT,eAAA,MAAAG,SAAA,CAAI,gDAC4C,IAE5CC,cAACqC,IAAY,CACXnB,MAAO6W,GACPxV,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAErB,IAAI,6BACqB,IAEzB3C,cAACqC,IAAY,CACXnB,MAAO+W,GACP1V,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAEtB,IACA3C,cAAA,SAAM,0GAEyC,IAC/CyY,GACG,iDACA,KACJzY,cAAA,SAAM,6HAGL6Y,GAAoB,OAKzBjZ,eAAA,MACEO,WACE8O,GACC5G,IACkB,IAAlB4H,GAAQ2C,QAAoC,IAAlBzC,GAAQyC,MAE/B,UADA,OAEL7S,SAAA,CAEAqc,KAAqB,IACD,WAApBjP,GACmB,iBAApBA,EACI,8BACA,KAAK,KACN0K,GAAmB,YAGvB5I,GACA5G,IACkB,IAAlB4H,GAAQ2C,QAAoC,IAAlBzC,GAAQyC,MAmC/B,KAlCFhT,eAAA,MAAAG,SAAA,CAAI,gDAC4C,IAE5CC,cAACqC,IAAY,CACXnB,MAAO6W,GACPxV,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAErB,IAAI,6BACqB,IAEzB3C,cAACqC,IAAY,CACXnB,MAAO+W,GACP1V,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRC,aAAc,EACdC,mBAAmB,IAEtB,IACA3C,cAAA,SAAM,0GAEyC,IAC/C2Y,GACG,iDACA,KACJ3Y,cAAA,SAAM,6HAGL6Y,GAAoB,OAIJ,WAApB1L,GACmB,iBAApBA,EACEnN,cAAA,MAAAD,SACGkC,SAAS6a,uBAAuB,aACsB,IAAvD7a,SAAS6a,uBAAuB,YAAYxd,OACxC,0TACA,+ZAEJ,QAEH+I,GAA+B,aAApB8E,EASZ,KARFnN,cAACK,UAAG,CAACF,UAAU,4CAA2CJ,SACxDH,eAAA,MAAAG,SAAA,CAAI,eACW8Y,GAAoB,MACjC7Y,cAAA,KAAG+U,KAAK,IAAIpU,QAASA,IAAMiX,IAAaD,IAAc5X,SAAC,4BAO7D,OAGNH,eAACmd,UAAK,CAAC/b,GAAG,WAAWgc,UAAQ,EAAC7N,KAAMwI,GAAcsF,OAxoDjCC,IAAMtF,IAAY,GAwoDsC7X,SAAA,CACvEC,cAAC+c,UAAMI,OAAM,CAACC,aAAW,EAAArd,SACvBC,cAAA,MAAIG,UAAU,aAAYJ,SAAC,gCAE7BH,eAACmd,UAAMM,KAAI,CAAAtd,SAAA,CACTC,cAAA,KAAAD,SAAG,iDACHC,cAAA,KAAAD,SAAG,0TAOHC,cAAA,KAAAD,SAAG,2DACHC,cAAA,KAAAD,SAAG,yEAIHC,cAAA,KAAAD,SAAG,wEAIHC,cAAA,KAAAD,SAAG,kCACHC,cAAA,KAAAD,SAAG,kCACHC,cAAA,KAAAD,SAAG,8CAKTC,cAAAqc,WAAA,CAAAtc,SACGkX,EACCrX,eAAA,OAAKO,UAAU,wBAAuBJ,SAAA,CACpCC,cAAC6T,IAAW,CAACrK,MAAM,YACnBxJ,cAAA,MAAIG,UAAU,OAAMJ,SAClBC,cAAA,UAAAD,SAAQ,+BAGZ,MAKV,ECptDeud,OA7Cf,SAAa5V,GACX,MAAO6V,EAAeC,GAAoBvf,mBAAS,KAC5Cwf,EAAWC,GAAgBzf,mBAAS,KACpC8T,EAAWgI,GAAgB9b,mBAAS,IA2B3C,OAzBAW,qBAAU,KAER,MAAM+e,EAAc,IAAIC,gBAAgB5e,OAAO4B,SAASid,QAClD5L,EAAO0L,EAAYzX,IAAI,QACzByX,EAAYzX,IAAI,QAChBwB,EAAM6V,cACJO,EAAiBH,EAAYzX,IAAI,aACnCyX,EAAYzX,IAAI,aAChBwB,EAAM+V,UACJM,EAAWJ,EAAYzX,IAAI,aAC7ByX,EAAYzX,IAAI,aAChBwB,EAAMqK,UAENE,GAEFuL,EAAiBvL,GAEf6L,GACFJ,EAAaI,GAEXC,GACFhE,EAAagE,EACf,GACC,IAGD/d,cAAA,OAAKG,UAAU,MAAKJ,SAClBC,cAACuV,GAAK,CACJzN,WAAW,SACXmK,KAAMsL,EACNf,UAAWiB,EACX1L,UAAWA,EACX2C,2BAAiC,OAALhN,QAAK,IAALA,OAAK,EAALA,EAAOgN,2BACnCC,iBAAuB,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOiN,oBACrBjN,KAIZ,EC8CenJ,OA7FK,WAsBL,IAtBMD,EAAK0f,UAAA1e,OAAA,QAAA8E,IAAA4Z,UAAA,GAAAA,UAAA,GAAG,CACzBnhB,KAAM,GACNiF,cAAe,GACfiB,kBAAmB,GACnBE,sBAAuB,GACvBe,YAAa,GACb7G,aAAa,EACb8G,aAAc,GACdC,YAAa,GACbC,cAAUC,EACVC,oBAAgBD,EAChBX,eAAgB,GAChBF,YAAa,GACbe,WAAY,GACZC,mBAAoB,GACpBC,cAAe,GAClBC,QAAS,GACTC,aAAc,iBACXC,YAAa,GACbC,gBAAiB,GACpBC,QAAS,GACNC,UAAW,IACZmZ,EAAMD,UAAA1e,OAAA,EAAA0e,UAAA,QAAA5Z,EACL,OAAQ6Z,EAAOphB,MACX,IAAK,eACD,MAAO,IAAKyB,EAAOzB,KAAMohB,EAAOnhB,SAEpC,IAAK,sBACD,MAAO,IAAKwB,EAAOwD,cAAemc,EAAOnhB,SAE7C,IAAK,0BACD,MAAO,IAAKwB,EAAOyE,kBAAmBkb,EAAOnhB,SAEjD,IAAK,+BACD,MAAO,IAAKwB,EAAO2E,sBAAuBgb,EAAOnhB,SAErD,IAAK,oBACD,MAAO,IAAKwB,EAAO0F,YAAaia,EAAOnhB,SAE3C,IAAK,oBACD,MAAO,IAAKwB,EAAOnB,YAAa8gB,EAAOnhB,SAE3C,IAAK,qBACD,MAAO,IAAKwB,EAAO2F,aAAcga,EAAOnhB,SAE5C,IAAK,qBACD,MAAO,IAAKwB,EAAO4F,YAAa+Z,EAAOnhB,SAE3C,IAAK,iBACD,MAAO,IAAKwB,EAAO6F,SAAU8Z,EAAOnhB,SAExC,IAAK,iBACD,MAAO,IAAKwB,EAAO+F,eAAgB4Z,EAAOnhB,SAE9C,IAAK,wBACD,MAAO,IAAKwB,EAAOmF,eAAgBwa,EAAOnhB,SAE9C,IAAK,qBACD,MAAO,IAAKwB,EAAOiF,YAAa0a,EAAOnhB,SAE3C,IAAK,uBACD,MAAO,IAAKwB,EAAOkG,cAAeyZ,EAAOnhB,SAE7C,IAAK,4BACD,MAAO,IAAKwB,EAAOiG,mBAAoB0Z,EAAOnhB,SAElD,IAAK,wBACD,MAAO,IAAKwB,EAAOgG,WAAY2Z,EAAOnhB,SAE1C,IAAK,gBACD,MAAO,IAAKwB,EAAOmG,QAASwZ,EAAOnhB,SAEvC,IAAK,qBACD,MAAO,IAAKwB,EAAOoG,aAAcuZ,EAAOnhB,SAElD,IAAK,oBACK,MAAO,IAAKwB,EAAOqG,YAAasZ,EAAOnhB,SAE3C,IAAK,wBACD,MAAO,IAAKwB,EAAOsG,gBAAiBqZ,EAAOnhB,SAErD,IAAK,gBACK,MAAO,IAAKwB,EAAOuG,QAASoZ,EAAOnhB,SAEvC,IAAK,kBACD,MAAO,IAAKwB,EAAOwG,UAAWmZ,EAAOnhB,SAEzC,QACI,OAAOwB,EAInB,E,SCvFe4f,OAHKC,aAAgB,CAChC5f,iBCSgB6f,QACW,cAA7Bpf,OAAO4B,SAASyd,UAEe,UAA7Brf,OAAO4B,SAASyd,UAEhBrf,OAAO4B,SAASyd,SAASzL,MACvB,2DCNN,MAAM0L,GAAQC,aAAYL,GAAalf,OAAOwf,8BAAgCxf,OAAOwf,gCAExEC,qBAAWxc,SAASC,eAAe,SAC3Cwc,OACH1e,cAACH,IAAM8e,WAAU,CAAA5e,SACfC,cAAC4e,IAAQ,CAACN,MAAOA,GAAMve,SACrBC,cAACsd,GAAG,CAACxV,WAAW,gBDiHhB,kBAAmB+W,WACrBA,UAAUC,cAAcC,MACrB1Y,MAAK2Y,IACJA,EAAaC,YAAY,IAE1BjY,OAAMC,IACL0M,QAAQ1M,MAAMA,EAAMiY,QAAQ,G","file":"static/js/main.cd0f571e.chunk.js","sourcesContent":["export const TypeSelected = (inputValue) => {\r\n return {\r\n type: 'TYPESELECTED',\r\n payload: inputValue\r\n }\r\n}\r\nexport const PurchasePriceUpdate = (inputValue) => {\r\n return {\r\n type: 'PURCHASEPRICEUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const DownPaymentInUSDsUpdate = (inputValue) => {\r\n return {\r\n type: 'DOWNPAYMENTINUSDSUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const DownPaymentInPercentsUpdate = (inputValue) => {\r\n return {\r\n type: 'DOWNPAYMENTINPERCENTSSUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const CreditScoreUpdate = (inputValue) => {\r\n return {\r\n type: 'CREDITSCOREUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const ShowButtons = (inputValue) => {\r\n return {\r\n type: 'SHOWBUTTONSUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\n\r\nexport const propertyTypeUpdate = (inputValue) => {\r\n return {\r\n type: 'PROPERTYTYPEUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const propertyUsedUpdate = (inputValue) => {\r\n return {\r\n type: 'PROPERTYUSEDUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const lowRatesUpdate = (inputValue) => {\r\n return {\r\n type: 'LOWRATESUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const lowRatesOptionUpdate = (inputValue) => {\r\n return {\r\n type: 'LOWRATESOPTION',\r\n payload: inputValue\r\n }\r\n}\r\nexport const estimatedValueUpdate = (inputValue) => {\r\n return {\r\n type: 'ESTIMATEDVALUEUPDATED',\r\n payload: inputValue\r\n }\r\n}\r\nexport const loanBalanceUpdate = (inputValue) => {\r\n return {\r\n type: 'LOANBALANCEUPDATED',\r\n payload: inputValue\r\n }\r\n}\r\nexport const cashoutAmountUpdate = (inputValue) => {\r\n return {\r\n type: 'CASHOUTAMOUNTUPDATED',\r\n payload: inputValue\r\n }\r\n}\r\nexport const estimatedHomeValueUpdate = (inputValue) => {\r\n return {\r\n type: 'ESTIMATEDHOMEVALUEUPDATED',\r\n payload: inputValue\r\n }\r\n}\r\nexport const loanAmountTotalUpdate = (inputValue) => {\r\n return {\r\n type: 'LOANAMOUNTTOTALUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const zipCodeUpdate = (inputValue) => {\r\n return {\r\n type: 'ZIPCODEUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const countryStateUpdate = (inputValue) => {\r\n return {\r\n type: 'COUNTRYSTATEUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const stateCountyUpdate = (inputValue) => {\r\n return {\r\n type: 'STATECOUNTYUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const stateCountyNameUpdate = (inputValue) => {\r\n return {\r\n type: 'STATECOUNTYNAMEUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const veteranUpdate = (inputValue) => {\r\n return {\r\n type: 'VETERANUPDATE',\r\n payload: inputValue\r\n }\r\n}\r\nexport const stateListUpdate = (inputValue) => {\r\n return {\r\n type: 'STATELISTUPDATE',\r\n payload: inputValue\r\n }\r\n}","export default __webpack_public_path__ + \"static/media/Asset 1.dfc04936.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 2.bbc309c4.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 3.27976659.jpg\";","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Row, Col, Form, Button } from \"react-bootstrap\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { TypeSelected, ShowButtons, PurchasePriceUpdate, DownPaymentInUSDsUpdate, estimatedValueUpdate, loanBalanceUpdate, cashoutAmountUpdate } from \"../store/actions\";\r\nimport imgPurchase from \"../assets/Asset 1.jpg\";\r\nimport imgRefinance from \"../assets/Asset 2.jpg\";\r\nimport imgCashOut from \"../assets/Asset 3.jpg\";\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nexport default function LoanPurpose() {\r\n // const {\r\n // state,\r\n // TypeSelected,\r\n // ShowButtons,\r\n // PurchasePriceUpdate,\r\n // DownPaymentInUSDsUpdate,\r\n // estimatedValueUpdate,\r\n // loanBalanceUpdate,\r\n // cashoutAmountUpdate,\r\n // } = useRatesContext();\r\n const [loanPurpose, setLoanPurpose] = useState(\"\");\r\n const dispatch = useDispatch();\r\n const loanPurposeRedux = useSelector(state => state.nameReducer.type);\r\n // const loanPurposeRedux = state.type;\r\n const userSession = new UserSession();\r\n\r\n const myRefLP = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRefLP);\r\n }, []);\r\n\r\n useEffect(() => {\r\n /* Initialize the custom quote navigation as this is the first page.\r\n\t\t\tMany other elements on the page will depend on this flag to perform different actions.\r\n */\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n userSession.setCustomQuote(true);\r\n\r\n setLoanPurpose(loanPurposeRedux);\r\n\r\n userSession.setLoanPurpose(loanPurposeRedux);\r\n\r\n if (loanPurpose.length > 0) {\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n if (loanPurpose === \"FULL DOCS REFI\" || loanPurpose === \"CASH OUT REFI\") {\r\n dispatch(PurchasePriceUpdate(0));\r\n dispatch(DownPaymentInUSDsUpdate(0));\r\n // PurchasePriceUpdate(0);\r\n // DownPaymentInUSDsUpdate(0);\r\n userSession.setPurchasePrice(0);\r\n userSession.setDownPaymentAmount(0);\r\n userSession.setCashOutAmount(0); //This is only for the Refi case if the user selected cashout the value will be modify.\r\n }\r\n\r\n if (loanPurpose === \"PURCHASE\") {\r\n dispatch(estimatedValueUpdate(0));\r\n // estimatedValueUpdate(0);\r\n dispatch(loanBalanceUpdate(0));\r\n // loanBalanceUpdate(0);\r\n dispatch(cashoutAmountUpdate(0));\r\n // cashoutAmountUpdate(0);\r\n userSession.setEstimatedValue(0);\r\n userSession.setCurrentLoanBalance(0);\r\n userSession.setCashOutAmount(0);\r\n }\r\n }\r\n }, [loanPurpose]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

What loan purpose would you like to look into?

\r\n \r\n \r\n window.location.reload(false)}\r\n >\r\n {\"<<\"}\r\n \r\n \r\n \r\n
\r\n {\r\n setLoanPurpose(e.target.value);\r\n dispatch(TypeSelected(e.target.value));\r\n // TypeSelected(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Purchase

\r\n \r\n \r\n
\r\n {\r\n setLoanPurpose(e.target.value);\r\n dispatch(TypeSelected(e.target.value));\r\n // TypeSelected(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Refinance

\r\n \r\n \r\n
\r\n {\r\n setLoanPurpose(e.target.value);\r\n dispatch(TypeSelected(e.target.value));\r\n // TypeSelected(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Cash Out Refi

\r\n \r\n
\r\n
\r\n window.location.reload(false)}\r\n >\r\n {\"<<\"}\r\n \r\n
\r\n );\r\n}\r\n","/*\r\n 06/14/2020 - Suhas\r\n\r\n This is a slider to show Purchase Price in Rate-Quote slider.\r\n\r\n Following are the changes done from its original implementation:\r\n - DownPayment is seperated out from PurchasePrice\r\n \r\n*/\r\n\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport { Col, Row, Form } from \"react-bootstrap\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { PurchasePriceUpdate, ShowButtons } from \"../store/actions\";\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nexport default function LoanAmount() {\r\n // const { state, PurchasePriceUpdate, ShowButtons } = useRatesContext();\r\n const [purchasePrice, setPurchasePrice] = useState(\"\");\r\n\r\n const dispatch = useDispatch();\r\n const purchasePriceRedux = useSelector(state => state.nameReducer.purchasePrice);\r\n // const purchasePriceRedux = state.purchasePrice;\r\n\r\n const userSession = new UserSession();\r\n\r\n const myRefPurchase = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n\r\n // REACT-69: updated condition when NOT to scroll\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRefPurchase);\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n document.getElementById(\"next-button\").disabled = false;\r\n\r\n setPurchasePrice(purchasePriceRedux);\r\n\r\n userSession.setPurchasePrice(purchasePriceRedux);\r\n\r\n if (purchasePrice.length > 0) {\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n }\r\n }, [purchasePrice]);\r\n\r\n return (\r\n \r\n \r\n

Purchase Price

\r\n \r\n \r\n {\r\n setPurchasePrice(values.value);\r\n dispatch(PurchasePriceUpdate(values.value));\r\n // PurchasePriceUpdate(values.value);\r\n }}\r\n />\r\n \r\n
\r\n );\r\n}\r\n","/*\r\n 06/14/2020 - Suhas\r\n\r\n This is a slider to show Down Payment in Rate-Quote slider.\r\n\r\n Following are the changes done from its original implementation:\r\n - DownPayment is seperated out from PurchasePrice\r\n \r\n*/\r\n\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { Col, Row, Form } from 'react-bootstrap';\r\nimport NumberFormat from 'react-number-format';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { DownPaymentInUSDsUpdate, DownPaymentInPercentsUpdate, ShowButtons } from \"../store/actions\"\r\n\r\nimport { UserSession } from 'usersession';\r\n\r\n// import { useRatesContext } from '../context/ratesContext';\r\n\r\nconst scrollToRef = (ref) => window.scrollTo(0, ref.current.offsetTop, {behavior: 'smooth'}) \r\n// General scroll to element function\r\n\r\nfunction DownPayment() {\r\n // const { state, DownPaymentInUSDsUpdate, DownPaymentInPercentsUpdate, ShowButtons } = useRatesContext();\r\n const userSession = new UserSession();\r\n const dispatch = useDispatch();\r\n const state = useSelector(state => state.nameReducer);\r\n\r\n const [downPaymentInUSDs, setdownPaymentInUSDs] = useState(state.downPaymentInUSDs || 0);\r\n const [downPaymentInPercents, setDownPaymentInPercents] = useState(state.downPaymentInPercents || 0);\r\n\t\r\n \r\n\tconst myRefDP = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem('doNotScroll') && scrollToRef(myRefDP)\r\n }, []);\r\n \r\n\r\n useEffect(() => {\r\n document.getElementById(\"next-button\").disabled = false;\r\n \r\n if (downPaymentInPercents) {\r\n dispatch(ShowButtons(true))\r\n // ShowButtons(true)\r\n }\r\n\r\n if (downPaymentInUSDs) {\r\n dispatch(ShowButtons(true))\r\n // ShowButtons(true)\r\n }\r\n\r\n }, [downPaymentInPercents,downPaymentInUSDs]);\r\n\t\r\n\r\n //Below function is executed by the onBlur event in the downpayment USD field.\r\n function handleDownPaymentUSD() {\r\n setDownPaymentInPercents(state.downPaymentInUSDs / state.purchasePrice * 100);\r\n dispatch(DownPaymentInPercentsUpdate(state.downPaymentInUSDs / state.purchasePrice * 100));\r\n // DownPaymentInPercentsUpdate(state.downPaymentInUSDs / state.purchasePrice * 100);\r\n setLocalStoreValues();\r\n \r\n if (state.downPaymentInUSDs <= 0) {\r\n setDownPaymentInPercents(0);\r\n dispatch(DownPaymentInPercentsUpdate(0));\r\n // DownPaymentInPercentsUpdate(0);\r\n }\r\n }\r\n \r\n //Below function is executed by the onBlur event in the downpayment % field.\r\n function handleDownpaymentPercent() {\r\n setdownPaymentInUSDs(state.purchasePrice * state.downPaymentInPercents / 100);\r\n dispatch(DownPaymentInUSDsUpdate(state.purchasePrice * state.downPaymentInPercents / 100));\r\n // DownPaymentInUSDsUpdate(state.purchasePrice * state.downPaymentInPercents / 100);\r\n setLocalStoreValues();\r\n\r\n if (downPaymentInPercents <= 0) {\r\n setdownPaymentInUSDs(0);\r\n dispatch(DownPaymentInUSDsUpdate(0));\r\n // DownPaymentInUSDsUpdate(0);\r\n } \r\n }\r\n\t\r\n\tfunction setLocalStoreValues() {\r\n\t\tuserSession.setDownPaymentAmount(state.downPaymentInUSDs);\r\n }\r\n \r\n \r\n return (\r\n \r\n \r\n

Down payment

\r\n \r\n \r\n {\r\n setdownPaymentInUSDs(values.value);\r\n dispatch(DownPaymentInUSDsUpdate(values.value));\r\n // DownPaymentInUSDsUpdate(values.value);\r\n }}\r\n onBlur={handleDownPaymentUSD}\r\n />\r\n \r\n \r\n {\r\n setDownPaymentInPercents(values.value);\r\n dispatch(DownPaymentInPercentsUpdate(values.value));\r\n // DownPaymentInPercentsUpdate(values.value);\r\n setdownPaymentInUSDs(state.purchasePrice * values.value / 100);\r\n }}\r\n onBlur={handleDownpaymentPercent}\r\n />\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default DownPayment;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Row from \"react-bootstrap/Row\";\r\nimport Col from \"react-bootstrap/Col\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { estimatedValueUpdate, loanBalanceUpdate, ShowButtons } from \"../store/actions\";\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nexport default function LoanAmount() {\r\n // const { state, estimatedValueUpdate, loanBalanceUpdate, ShowButtons } =\r\n // useRatesContext();\r\n const userSession = new UserSession();\r\n\r\n const [loanBalance, setLoanBalance] = useState(\"\");\r\n const [estimatedValue, setEstimatedValue] = useState(\"\");\r\n\r\n const dispatch = useDispatch();\r\n const evalue = useSelector(state => state.nameReducer.estimatedValue);\r\n const lbalance = useSelector(state => state.nameReducer.loanBalance);\r\n // const evalue = state.estimatedValue;\r\n // const lbalance = state.loanBalance;\r\n\r\n useEffect(() => {\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false);\r\n document.getElementById(\"next-button\").disabled = false;\r\n\r\n setEstimatedValue(evalue);\r\n setLoanBalance(lbalance);\r\n\r\n userSession.setEstimatedValue(evalue);\r\n userSession.setCurrentLoanBalance(lbalance);\r\n\r\n if (estimatedValue.length > 0 && loanBalance.length > 0) \r\n // ShowButtons(true);\r\n dispatch(ShowButtons(true));\r\n }, [estimatedValue, loanBalance]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

\r\n Current loan balance (How much do you currently owe)?\r\n

\r\n {\r\n setLoanBalance(values.value);\r\n dispatch(loanBalanceUpdate(values.value));\r\n // loanBalanceUpdate(values.value);\r\n }}\r\n />\r\n
\r\n \r\n

Estimated home value

\r\n {\r\n setEstimatedValue(values.value);\r\n dispatch(estimatedValueUpdate(values.value));\r\n // estimatedValueUpdate(values.value);\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { useState } from \"react\";\r\nimport constate from \"constate\";\r\n\r\n// 1️⃣ Create a custom hook as usual\r\nfunction useRates() {\r\n const [state, setState] = useState({\r\n type: \"\",\r\n purchasePrice: \"\",\r\n downPaymentInUSDs: \"\",\r\n downPaymentInPercents: \"\",\r\n CreditScore: \"\",\r\n ShowButtons: true,\r\n propertyType: \"\",\r\n propertyUse: \"\",\r\n lowRates: undefined,\r\n lowRatesOption: undefined,\r\n estimatedValue: \"\",\r\n loanBalance: \"\",\r\n loanAmount: \"\",\r\n estimatedHomeValue: \"\",\r\n cashoutAmount: \"\",\r\n zipCode: \"\",\r\n countryState: \"Select a State\",\r\n stateCounty: \"\",\r\n stateCountyName: \"\",\r\n veteran: \"\",\r\n stateList: \"\",\r\n });\r\n\r\n const TypeSelected = (payload) => {\r\n setState({ ...state, type: payload });\r\n };\r\n const PurchasePriceUpdate = (payload) => {\r\n setState({ ...state, purchasePrice: payload });\r\n };\r\n const DownPaymentInUSDsUpdate = (payload) => {\r\n setState({ ...state, downPaymentInUSDs: payload });\r\n };\r\n const DownPaymentInPercentsUpdate = (payload) => {\r\n setState({ ...state, downPaymentInPercents: payload });\r\n };\r\n const CreditScoreUpdate = (payload) => {\r\n setState({ ...state, CreditScore: payload });\r\n };\r\n const ShowButtons = (payload) => {\r\n setState({ ...state, ShowButtons: payload });\r\n };\r\n const propertyTypeUpdate = (payload) => {\r\n setState({ ...state, propertyType: payload });\r\n };\r\n const propertyUsedUpdate = (payload) => {\r\n setState({ ...state, propertyUse: payload });\r\n };\r\n const lowRatesUpdate = (payload) => {\r\n setState({ ...state, lowRates: payload });\r\n };\r\n const lowRatesOptionUpdate = (payload) => {\r\n setState({ ...state, lowRatesOption: payload });\r\n };\r\n const estimatedValueUpdate = (payload) => {\r\n setState({ ...state, estimatedValue: payload });\r\n };\r\n const loanBalanceUpdate = (payload) => {\r\n setState({ ...state, loanBalance: payload });\r\n };\r\n const cashoutAmountUpdate = (payload) => {\r\n setState({ ...state, cashoutAmount: payload });\r\n };\r\n const estimatedHomeValueUpdate = (payload) => {\r\n setState({ ...state, estimatedHomeValue: payload });\r\n };\r\n const loanAmountTotalUpdate = (payload) => {\r\n setState({ ...state, loanAmount: payload });\r\n };\r\n const zipCodeUpdate = (payload) => {\r\n setState({ ...state, zipCode: payload });\r\n };\r\n const countryStateUpdate = (payload) => {\r\n setState({ ...state, countryState: payload });\r\n };\r\n const stateCountyUpdate = (payload) => {\r\n setState({ ...state, stateCounty: payload });\r\n };\r\n const stateCountyNameUpdate = (payload) => {\r\n setState({ ...state, stateCountyName: payload });\r\n };\r\n const veteranUpdate = (payload) => {\r\n setState({ ...state, veteran: payload });\r\n };\r\n const stateListUpdate = (payload) => {\r\n setState({ ...state, stateList: payload });\r\n };\r\n return {\r\n state,\r\n TypeSelected,\r\n PurchasePriceUpdate,\r\n DownPaymentInUSDsUpdate,\r\n DownPaymentInPercentsUpdate,\r\n CreditScoreUpdate,\r\n ShowButtons,\r\n propertyTypeUpdate,\r\n propertyUsedUpdate,\r\n lowRatesUpdate,\r\n lowRatesOptionUpdate,\r\n estimatedValueUpdate,\r\n loanBalanceUpdate,\r\n cashoutAmountUpdate,\r\n estimatedHomeValueUpdate,\r\n loanAmountTotalUpdate,\r\n zipCodeUpdate,\r\n countryStateUpdate,\r\n stateCountyUpdate,\r\n stateCountyNameUpdate,\r\n veteranUpdate,\r\n stateListUpdate\r\n };\r\n}\r\n\r\n// 2️⃣ Wrap your hook with the constate factory\r\nexport const [RatesProvider, useRatesContext] = constate(useRates);\r\n","import React, { useState, useEffect } from 'react';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Col from 'react-bootstrap/Col';\r\nimport Form from 'react-bootstrap/Form';\r\nimport NumberFormat from 'react-number-format';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { cashoutAmountUpdate, estimatedHomeValueUpdate, loanAmountTotalUpdate, ShowButtons } from \"../store/actions\";\r\n\r\nimport { UserSession } from 'usersession';\r\nimport { useRatesContext } from '../context/ratesContext';\r\n\r\nexport default function LoanAmount() {\r\n\tconst userSession = new UserSession();\r\n\r\n // const { state, cashoutAmountUpdate, estimatedHomeValueUpdate, loanAmountTotalUpdate, ShowButtons } = useRatesContext();\r\n\r\n const [estimatedValue, setEstimatedValue] = useState(\"\");\r\n const [loanBalance, setLoanBalance] = useState(\"\");\r\n const [cashout, setCashout] = useState(\"\");\r\n \r\n\tconst dispatch = useDispatch();\r\n\tconst evalue = useSelector(state => state.nameReducer.estimatedHomeValue);\r\n const lbalance = useSelector(state => state.nameReducer.loanAmount);\r\n const cashoutAmount = useSelector(state => state.nameReducer.cashoutAmount);\r\n\t// const evalue = state.estimatedHomeValue;\r\n // const lbalance = state.loanAmount;\r\n // const cashoutAmount = state.cashoutAmount;\r\n\t\r\n useEffect(() => {\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false);\r\n document.getElementById(\"next-button\").disabled = false;\r\n\t\t\r\n setEstimatedValue(evalue);\r\n setLoanBalance(lbalance);\r\n setCashout(cashoutAmount);\r\n\t\t\r\n\t\tuserSession.setEstimatedValue(evalue);\r\n\t\tuserSession.setCurrentLoanBalance(lbalance);\r\n\t\tuserSession.setCashOutAmount(cashoutAmount);\r\n\r\n if (estimatedValue && loanBalance && cashout)\r\n\t\t\tdispatch(ShowButtons(true));\r\n\t\t\t// ShowButtons(true);\r\n\t\t\r\n }, [estimatedValue, loanBalance, cashout]);\r\n\r\n return (\r\n \r\n \r\n \r\n

Current loan balance (How much do you currently owe)?

\r\n {\r\n setLoanBalance(values.value);\r\n dispatch(loanAmountTotalUpdate(values.value))\r\n // loanAmountTotalUpdate(values.value);\r\n }} />\r\n
\r\n \r\n

Cash out amount

\r\n {\r\n setCashout(values.value);\r\n dispatch(cashoutAmountUpdate(values.value))\r\n // cashoutAmountUpdate(values.value);\r\n }} />\r\n
\r\n \r\n

Estimated home value

\r\n {\r\n setEstimatedValue(values.value);\r\n dispatch(estimatedHomeValueUpdate(values.value))\r\n // estimatedHomeValueUpdate(values.value);\r\n }} />\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport Row from \"react-bootstrap/Row\";\r\nimport Col from \"react-bootstrap/Col\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport axios from \"axios\";\r\nimport NumberFormat from \"react-number-format\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { ShowButtons,\r\n zipCodeUpdate,\r\n stateCountyUpdate,\r\n countryStateUpdate, } from \"../store/actions\"\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nexport default function ZipCode() {\r\n // const {\r\n // state,\r\n // ShowButtons,\r\n // zipCodeUpdate,\r\n // stateCountyUpdate,\r\n // countryStateUpdate,\r\n // } = useRatesContext();\r\n const dispatch = useDispatch();\r\n const zipCodeRedux = useSelector(state => state.nameReducer.zipCode);\r\n\r\n const [zipCode, setZipCode] = useState(\"\");\r\n const [zipcodeError, setZipCodeError] = useState(\"\");\r\n// const zipCodeRedux = state.zipCode;\r\n\r\n const userSession = new UserSession();\r\n let stateList = JSON.parse(userSession.getStateList());\r\n let propertyState = \"\";\r\n\r\n const myRefZip = useRef(null);\r\n\r\n function updateZipCode(propZipCode) {\r\n setZipCode(propZipCode);\r\n\r\n if (propZipCode.length == 5) {\r\n axios\r\n .get(process.env.REACT_APP_SUNSOFT_RESTSERVER_ZIPCODE + propZipCode, {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n propertyState = stateList.filter(\r\n (state) => state.code == response.data.state\r\n );\r\n if (!propertyState || !propertyState.length) {\r\n document.getElementById(\"next-button\").disabled = true;\r\n // zipCodeUpdate(\"\");\r\n dispatch(zipCodeUpdate(\"\"));\r\n setZipCodeError(\r\n `We are not accepting applications for the state of ${response.data.state}`\r\n );\r\n } else {\r\n userSession.setPropertyZipCode(propZipCode);\r\n userSession.setPropertyState(response.data.state);\r\n userSession.setPropertyCounty(response.data.counties[0].code);\r\n // zipCodeUpdate(propZipCode);\r\n dispatch(zipCodeUpdate(propZipCode));\r\n // stateCountyUpdate(response.data.counties[0].code);\r\n dispatch(stateCountyUpdate(response.data.counties[0].code));\r\n // countryStateUpdate(response.data.state);\r\n dispatch(countryStateUpdate(response.data.state));\r\n document.getElementById(\"next-button\").disabled = false;\r\n }\r\n })\r\n .catch((e) => {\r\n setZipCodeError(e.response.data.error);\r\n });\r\n }\r\n\r\n if (propZipCode.length < 5) {\r\n // dont disabled the Next button if zipcode field is empty\r\n document.getElementById(\"next-button\").disabled = false;\r\n // zipCodeUpdate(\"\");\r\n dispatch(zipCodeUpdate(\"\"));\r\n userSession.setPropertyZipCode(\"\");\r\n setZipCodeError(\"\");\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRefZip);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setZipCode(zipCodeRedux);\r\n\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false)\r\n if (zipCode.length == 5) {\r\n userSession.setPropertyZipCode(zipCode);\r\n axios\r\n .get(process.env.REACT_APP_SUNSOFT_RESTSERVER_ZIPCODE + zipCode, \"\", {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n userSession.setPropertyCounty(response.data.counties[0].code);\r\n dispatch(stateCountyUpdate(response.data.counties[0].code));\r\n userSession.setPropertyState(response.data.state);\r\n // countryStateUpdate(response.data.state);\r\n dispatch(countryStateUpdate(response.data.state));\r\n });\r\n }\r\n\r\n if (!zipCode || zipCode.length < 5) {\r\n // dont disabled the Next button if zipcode field is empty\r\n document.getElementById(\"next-button\").disabled = false;\r\n setZipCodeError(\"\");\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n

What is the property zip code? (Skip Next if not Known)

\r\n \r\n \r\n {zipcodeError ? (\r\n

{zipcodeError}

\r\n ) : null}\r\n \r\n \r\n Zipcode\r\n {\r\n updateZipCode(values.value);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import {Component} from \"react\";\r\nimport requestRates from \"./includes/requestRates_LOSITE.json\";\r\nimport \"./css/lowrates.css\"\r\n\r\nclass LOSITE extends Component {\r\n\tisNoCCProgram() {\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tisLowPaymentProgram() {\r\n\t\treturn true;\r\n\t}\r\n\t\r\n getRequestRates() {\r\n return requestRates;\r\n }\r\n}\r\n\r\nexport default LOSITE;\r\n","/* 06/25/2020 - Christian Maldonado\r\n\r\n Purpose:\r\n\tThis class will determine which theme styling and request parameters to use depending on the theme.\r\n\r\n Backgroud:\r\n Pages that include this general rate-quote module need to pass the lead source of the page as we will\r\n use it to determine which files we will use to customize the component for that page in particular.\r\n Example: https://swmc-landingpages.s3.amazonaws.com/rate-quotes?leadSource=TEXAS-TV\r\n\r\n Requirements for a theme (this is subject to change based on the best implementation that satisfies our needs):\r\n 1. Lead source -> Each theme will be determined by the lead source (this can be changed to some other parameter). The parameter will be\r\n added in the switch case inside function loadThemeParams().\r\n 2. A class/module that extends Component -> Each theme should have a class/module that can make the necessary imports and return the\r\n parameters needed in the page. See src/modules/themes/LowRates.js as an example.\r\n 3. Request Rates JSON files (optional) -> json files that deterine parameters that the pricing engine needs.\r\n See src/modules/themes/includes/requestRatesNoCC_LOWRATES.json for an example.\r\n 4. CSS file (optional) -> A styling sheet (css) that can override the colors and properties of elements in the page.\r\n See /src/modules/themes/css/lowratestv.css for an example.\r\n\r\n Current limitations:\r\n - Right now when the page loads it does the imports of LowRates and LowRatesTV and automatically does the imports for the\r\n css files of each one. You can see it in the inspect element of the top banner of the page. You'll see that for #topBanner\r\n there are 2 or 3 entries. We need to find a solution so that it only loads the default css and the css of the theme that\r\n will be applied.\r\n\r\n Work to do:\r\n - Need to allow customization of important components in the page like the buttons that we show for each loan program (FHA, VA, etc.)\r\n Example: LowRates.tv only shows Conventional, FHA and VA but LowRates.com shows those plus USDA. Therefore, the sections should be\r\n customizable for that too.\r\n - Ask Dennis for more details on what more needs to be customizable.\r\n*/\r\nimport { Component } from \"react\";\r\nimport NET007 from \"./themes/LOSITE\";\r\nimport defaultRates from \"./themes/includes/requestRates_DEFAULT.json\";\r\n\r\nclass ThemeConfig extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.loadThemeParams(props.leadSource);\r\n }\r\n \r\n loadThemeParams(leadSource) {\r\n switch (leadSource) {\r\n case \"LOSITE\":\r\n const loste = new NET007();\r\n this.requestRates = loste.getRequestRates();\r\n this.isNoCCProgram = loste.isNoCCProgram;\r\n this.isLowPaymentProgram = loste.isLowPaymentProgram;\r\n this.domain = \"sunwestmortgage.com\";\r\n break;\r\n case \"SELF\":\r\n const lowr = new NET007();\r\n this.requestRates = lowr.getRequestRates();\r\n this.isNoCCProgram = lowr.isNoCCProgram;\r\n this.isLowPaymentProgram = lowr.isLowPaymentProgram;\r\n this.domain = \"sunwestmortgage.com\";\r\n break;\r\n default: \r\n this.requestRates = defaultRates;\r\n this.isNoCCProgram = false;\r\n this.isLowPaymentProgram = true;\r\n break;\r\n }\r\n }\r\n \r\n}\r\n\r\nexport default ThemeConfig;\r\n","/*\r\n 06/14/2020 - Suhas\r\n\r\n This is a slider to show state in Rate-Quote slider.\r\n\r\n Following are the changes done from its original implementation:\r\n 1. County is separated from the CountryState form\r\n 2. City selection has also been removed\r\n \r\n*/\r\n\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport DotLoader from \"react-spinners/DotLoader\";\r\nimport { Row, Col, Form } from \"react-bootstrap\";\r\nimport { css } from \"@emotion/react\";\r\nimport ThemeConfig from \"../modules/ThemeConfig\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { countryStateUpdate, stateCountyUpdate, ShowButtons } from \"../store/actions\";\r\nimport axios from \"axios\";\r\n\r\nimport { UserSession } from \"usersession\";\r\nimport { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nexport default function CountryState(props) {\r\n const userSession = new UserSession();\r\n\r\n // const { state, countryStateUpdate, stateCountyUpdate, ShowButtons } =\r\n // useRatesContext();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n\r\n const [propAddressState, setPropAddressState] = useState(\"\");\r\n\r\n const [statesOptions, setStatesOptions] = useState(\"\");\r\n\r\n const dispatch = useDispatch();\r\n const countryStateRedux = useSelector(state => state.nameReducer.countryState);\r\n const stateCountyRedux = useSelector(state => state.nameReducer.stateCounty);\r\n // const countryStateRedux = state.countryState;\r\n // const stateCountyRedux = state.stateCounty;\r\n const stateListRedux = useSelector(state => state.nameReducer.stateList);\r\n const myRefState = useRef(null);\r\n const themeConfig = new ThemeConfig(props);\r\n const domain = themeConfig.domain;\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRefState);\r\n\r\n document.getElementById(\"next-button\").disabled = false;\r\n }, []);\r\n\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n `;\r\n\r\n useEffect(() => {\r\n let zipCode = userSession.getPropertyZipCode();\r\n let propertyState = userSession.getPropertyState();\r\n let stateList = JSON.parse(userSession.getStateList());\r\n\r\n // every time you select a new state clear out county\r\n setPropAddressState(countryStateRedux);\r\n\r\n userSession.setPropertyState(countryStateRedux);\r\n\r\n if (propAddressState.length > 0) {\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n }\r\n\r\n setStatesOptions(\r\n stateList.map((item, index) => (\r\n \r\n ))\r\n );\r\n\r\n if (zipCode.length < 5) {\r\n // if we already loaded property state then get it from the user session\r\n if (propertyState.length > 0) {\r\n setPropAddressState(propertyState);\r\n\r\n dispatch(countryStateUpdate(propertyState));\r\n // countryStateUpdate(propertyState);\r\n }\r\n // else set it to the first item on the list\r\n else {\r\n // setPropAddressState(response.data[0].code);\r\n // userSession.setPropertyState(response.data[0].code);\r\n // dispatch(countryStateUpdate(response.data[0].code));\r\n }\r\n }\r\n\r\n if (zipCode.length == 5) {\r\n setLoading(true);\r\n axios\r\n .get(process.env.REACT_APP_SUNSOFT_RESTSERVER_ZIPCODE + zipCode, \"\", {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n setPropAddressState(response.data.state);\r\n\r\n userSession.setPropertyState(response.data.state);\r\n\r\n dispatch(countryStateUpdate(response.data.state));\r\n // countryStateUpdate(response.data.state);\r\n\r\n setLoading(false);\r\n })\r\n .catch((error) => {\r\n setLoading(false);\r\n setError(error);\r\n });\r\n }\r\n\r\n // dispatch(ShowButtons(false));\r\n }, []);\r\n\r\n function clearStateCounty() {\r\n // every time you select a new state clear out county\r\n if (stateCountyRedux.length > 0) {\r\n dispatch(stateCountyUpdate(\"\"));\r\n // stateCountyUpdate(\"\");\r\n userSession.setPropertyCounty(\"\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

Your State

\r\n \r\n {loading ? (\r\n \r\n
\r\n \r\n
\r\n \r\n ) : (\r\n \r\n State\r\n {\r\n setPropAddressState(e.target.value);\r\n clearStateCounty();\r\n dispatch(countryStateUpdate(e.target.value));\r\n // countryStateUpdate(e.target.value);\r\n }}\r\n >\r\n {statesOptions}\r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n","/*\r\n 06/14/2020 - Suhas\r\n \r\n This is a new page created in Rate Quote Slider.\r\n\r\n This page was separated out from page Country State.\r\n And the County is not made as a drop-down for selection.\r\n*/\r\n\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport DotLoader from \"react-spinners/DotLoader\";\r\nimport { Row, Col, Form } from \"react-bootstrap\";\r\n// import NumberFormat from 'react-number-format';\r\n// import DotLoader from \"react-spinners/DotLoader\";\r\nimport { css } from \"@emotion/react\";\r\nimport axios from \"axios\";\r\nimport ThemeConfig from \"../modules/ThemeConfig\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { stateCountyUpdate, ShowButtons } from \"../store/actions\";\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nfunction StateCounty(props) {\r\n // const { state, stateCountyUpdate, ShowButtons } = useRatesContext();\r\n const userSession = new UserSession();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n const [propAddressCounty, setPropAddressCounty] = useState(\"\");\r\n const [countyOptions, setCountyOptions] = useState(\"\");\r\n const themeConfig = new ThemeConfig(props);\r\n const domain = themeConfig.domain;\r\n const dispatch = useDispatch();\r\n const stateCountyRedux = useSelector(state => state.nameReducer.stateCounty);\r\n // const stateCountyRedux = state.stateCounty;\r\n\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n `;\r\n\r\n const myRefCounty = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRefCounty);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let propertyState = userSession.getPropertyState();\r\n let propertyCounty = userSession.getPropertyCounty();\r\n let zipCode = userSession.getPropertyZipCode();\r\n let stateList = JSON.parse(userSession.getStateList());\r\n document.getElementById(\"next-button\").disabled = false;\r\n\r\n if (stateCountyRedux) {\r\n setPropAddressCounty(stateCountyRedux);\r\n userSession.setPropertyCounty(stateCountyRedux);\r\n }\r\n\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n\r\n // This logic is to show all counties when we do not have the zip code.\r\n if (zipCode.length < 5) {\r\n setLoading(true);\r\n\r\n axios\r\n .get(\r\n process.env.REACT_APP_SUNSOFT_RESTSERVER_STATE_COUNTY_LIST +\r\n propertyState,\r\n { companyCode: \"SUNWST000\", domain: domain },\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n )\r\n .then((response) => {\r\n setCountyOptions(\r\n response.data.counties.map((item, index) => (\r\n \r\n ))\r\n );\r\n\r\n // if we captured the county before then display here\r\n if (propertyCounty.length > 0) {\r\n setPropAddressCounty(propertyCounty);\r\n\r\n dispatch(stateCountyUpdate(propertyCounty));\r\n // stateCountyUpdate(propertyCounty);\r\n }\r\n // else set it to the first of the list\r\n else {\r\n setPropAddressCounty(response.data.counties[0].code);\r\n\r\n userSession.setPropertyCounty(response.data.counties[0].code);\r\n\r\n dispatch(stateCountyUpdate(response.data.counties[0].code));\r\n // stateCountyUpdate(response.data.counties[0].code);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((error) => {\r\n setLoading(false);\r\n setError(error);\r\n });\r\n }\r\n\r\n // This logic is to show the counties only related to the zip code. county list will be narrowed down as compared above.\r\n else if (zipCode.length == 5) {\r\n setLoading(true);\r\n axios\r\n .get(process.env.REACT_APP_SUNSOFT_RESTSERVER_ZIPCODE + zipCode, \"\", {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n setCountyOptions(\r\n response.data.counties.map((item, index) => (\r\n \r\n ))\r\n );\r\n\r\n // if we captured the county before then display here\r\n if (propertyCounty.length > 0) {\r\n setPropAddressCounty(propertyCounty);\r\n\r\n dispatch(stateCountyUpdate(propertyCounty));\r\n // stateCountyUpdate(propertyCounty);\r\n }\r\n // else set it to the first of the list\r\n else {\r\n setPropAddressCounty(response.data.counties[0].code);\r\n\r\n userSession.setPropertyCounty(response.data.counties[0].code);\r\n dispatch(stateCountyUpdate(response.data.counties[0].code));\r\n // stateCountyUpdate(response.data.counties[0].code);\r\n }\r\n setLoading(false);\r\n })\r\n .catch((error) => {\r\n setLoading(false);\r\n setError(error);\r\n });\r\n }\r\n\r\n // if (countyOptions.length == 0)\r\n // {\r\n // \tsetPropAddressCounty(\"\");\r\n\r\n // \tuserSession.setPropertyCounty(\"\");\r\n // \tdispatch(stateCountyUpdate(\"\"));\r\n // }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n

What is your County? (Skip Next if not Known)

\r\n \r\n {loading ? (\r\n \r\n
\r\n \r\n
\r\n \r\n ) : (\r\n \r\n {\r\n setPropAddressCounty(e.target.value);\r\n dispatch(stateCountyUpdate(e.target.value));\r\n // stateCountyUpdate(e.target.value);\r\n }}\r\n >\r\n {countyOptions}\r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default StateCounty;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Col from 'react-bootstrap/Col';\r\nimport Form from 'react-bootstrap/Form';\r\nimport { CreditScoreUpdate, ShowButtons } from \"../store/actions\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { UserSession } from 'usersession';\r\n\r\nimport { useRatesContext } from '../context/ratesContext';\r\n\r\nimport imgExcellent from '../assets/excellent.png';\r\nimport imgVeryGood from '../assets/verry_good.png';\r\nimport imgGood from '../assets/good.png';\r\nimport imgFair from '../assets/fair.png';\r\nimport imgPoor from '../assets/poor.png';\r\n\r\nconst scrollToRef = (ref) => window.scrollTo(0, ref.current.offsetTop, {behavior: 'smooth'}) \r\n// General scroll to element function\r\nexport default function CreditScore() {\r\n // const { state, CreditScoreUpdate, ShowButtons } = useRatesContext();\r\n\tconst userSession = new UserSession();\r\n\r\n const [CreditScore, setCreditScore] = useState(\"\");\r\n\t\r\n const dispatch = useDispatch();\r\n const creditScoreRedux = useSelector(state => state.nameReducer.CreditScore);\r\n // const creditScoreRedux = state.CreditScore;\r\n\t\r\n\tconst myRefCS = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem('doNotScroll') && scrollToRef(myRefCS)\r\n }, []);\r\n useEffect(() => {\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false);\r\n\t\t\r\n setCreditScore(creditScoreRedux);\r\n\t\t\r\n\t\tuserSession.setCreditScore(creditScoreRedux);\r\n\t\t\r\n if (CreditScore.length > 0)\r\n\t\t\tdispatch(ShowButtons(true));\r\n\t\t\t// ShowButtons(true);\r\n\t\t\r\n }, [CreditScore]);\r\n\r\n return (\r\n \r\n \r\n \r\n

Estimate Your Credit Score

\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n setCreditScore(e.target.value);\r\n dispatch(CreditScoreUpdate(e.target.value))\r\n // CreditScoreUpdate(e.target.value);\r\n }} />\r\n \"Excellent\r\n
\r\n
Excellent >= 740
\r\n \r\n\t\t\t\t\t\t\r\n
\r\n {\r\n setCreditScore(e.target.value);\r\n dispatch(CreditScoreUpdate(e.target.value))\r\n // CreditScoreUpdate(e.target.value);\r\n }} />\r\n \"Very\r\n
\r\n
Very Good 720-739
\r\n \r\n \r\n
\r\n {\r\n setCreditScore(e.target.value);\r\n dispatch(CreditScoreUpdate(e.target.value))\r\n // CreditScoreUpdate(e.target.value);\r\n }} />\r\n \"Good\r\n
\r\n
Good 680-719
\r\n \r\n \r\n
\r\n {\r\n setCreditScore(e.target.value);\r\n dispatch(CreditScoreUpdate(e.target.value))\r\n // CreditScoreUpdate(e.target.value);\r\n }} />\r\n \"FAIR\"\r\n\r\n
\r\n
Fair 640-679
\r\n \r\n \r\n
\r\n {\r\n setCreditScore(e.target.value);\r\n dispatch(CreditScoreUpdate(e.target.value))\r\n // CreditScoreUpdate(e.target.value)\r\n }} />\r\n \"POOR\"\r\n\r\n
\r\n
Poor <= 639
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABVCAYAAABNVNa8AAAACXBIWXMAAAsSAAALEgHS3X78AAAOjElEQVR4nO1dXWwTVxY+DiklQNcBAmy3S3FVLXS1rXDFtqst662RQctLDbzxQhu0qlZaVap5qNSnNPXTrvpQ81DtYwx5Yl+asFqpVfCSNFtWFbCx225/0iLsUhpCneBJSBzHsWd1Z851rsfj8Yx9Z+Y68ElWEufOnTt3vjnn3HPOPeORZRnuK4yc6gYAPwD4NB/A773a6Sg93JGRnnpkd51pSgFADn8fZX6mt+6Ipe+nqV3bZFKJE0SSBOuRpREakKkRxgixACBJSLZ1Ryxp1+W6jbVFJpU8x5A45NMsAarQIpm0kJBYQ2uNXO1PppFTPiRQLwDss+MUnMmkRQbV4tDWHbEhm87hCNqTTA4QiIXNZGIhocSKb90RGzV/mBhoLzKNnKIEOurkaR0kEwsiseJIrLYw5MUnk2oHEQJFeNlAVuESmVicBYCY6PaVuGRSSRTBj+UVGE8IQCYKsjLsF1UFikemQZ9KIs+612D7C9ugo9P1IQlEJiiWS9KHt74hEqr/5f0fCEUqscg06OuvkkSbHpfgkSddlUogGJn+c+c7mCks0j+JpOp9ef8HQthUYpBp0BdEY7P2hm3/LcC6Da4Mi0IUMs0XC9Njt2/s1PnXGZRUOZ3/OYYON0+uqLRBH1kKX6prXM99M+34uATF53en9YhE8DpxhJ67duSYmyN3j0yDvmMYZjBe5heyO6G05NiwRMVMYTHLqDc9kIfx/XPXjgydu3ak243LcJ5Mq9LofdOrtLufZW0fl+BIzU71mBwheTjTbkgpZ8mk2kZJy07HlXs9sOyqOeAqbufvTS+uFK0MwYtSKubkuJ0zwAd9ZJX2btPHd26ahp7n69kMtsJNA7wsy/mRH77tKpZLzXZBUmSCThjn9ksmVa3FWyISwcrCTlj60dBoWIu4MT+73AKRAGOXRO357Z4ee8mkOiCJY+0VLv3NfWVJ1rc7yrK89O38LA8/G+lj9Ny1I712Tol9ZBr0+ZFI/KL65RUv5Kfy3PoTHJ/fnZZblEosCKEG7CSUPWSyg0gUc5MeKK9w71Y0kLDJdwu5LhuGNWCXYc6fTKtEsicMIpc3wEJGsqVvgfBl7sf1No7m9XPXjsR5d8qXTHYTiWLx+/VrWTqRsIlNUonFK7wJxY9MThEJFOnUBfPf3LL9PC7BIGzCG4RQ/bz65EMmddUWdzTvKH/7sbUYZiFSqUHYhDfe4mWUt06m1eW/7bnYNViDQeAr2e/dcMwO8Ai/8JBMMVeIBBgEXkNhlibCJjwRb9Wx2RqZ1GQ2Pg7JZjE3uWak0xc5x2wlPRATpaWMg+bJpAZt32r6eF4gYZY1IJ2uz81ILkolit1o+zaF5sik2knibBjMfdHW0okEczmFTXjg6LlrRyLN9NOsZHJ25dYI5cLOdg6zcAjm8sa7zdhP1smkppI4ugnSFOa/XRZuTCZAwiYCSSUWltWdNTIN+si2bG5OLq4gQeD5620XZiFhE8GkEsU+qw5Na2T66F4MciURnyIVbRZmsTGYywVluRjpG/f4zPZlnkxhbxCmi0dhZA7gs7yYEoCEWdooCHw1e0vYB/Nu8YaUXvrIa0XdWZFMq51+teSFf0pZ+FFAKbBws7MdwiwuhE1MYUVeyt5cugwzxUlvWVbu74t94x5T3nFze6/D3tqiEYvlHhidB3ji4Szs6+qBhzy2XJx1yJuUMMuWZ6w6ADNMhbcc/q7slC1tXLeRXDHTNog/yYqHuEletDpMB4O5pkGk0UxxUm8XTMyMK6jxhoKwtxsntb5IXu+R4IXNXtjufl2AChrvBE5hTFH9HB5oyfM5eyfiZyrWBY3mi4RNrroTg9MFkUZThf/2FMrzRs1ORQOyocozQ6Z+055ukaRU5+Ys9DynfcpSqK6H4PCArfvzZ+9EjmFBsmNaYv1r6jo08nYv5wGSIyV4PrzOtjHKIC/OFCc7csW0mf33mWhANjTGjclkRippQaTU/o0Pwc/XbzR9jF3Y+izA+m5aja3fbgLpYfZOhNbZJA/lbjNS6fZ1GT7+ewmeC3fA47+yJ7O6UJ7P3i5M9BRlS75eQ+nUiEzmpZIW2zuzcGCzm1JKgo2P/Q1+suevraowXvj6u1dPTMz88NpyuXRAr0sqjb78dxl++bsOW6SSRWmkhaF0akSmdEvV2jpgCX6zqeyClDqrlOY5mRYyAozJaP3s3M7+IMPH50swOyXD5i0eeCnSCes5e6CalEZa1JVO9ckU9pILHmjlrBU4J6VSSCLhi4tiqgch1OtEGqVGypX//eFPnfDTJ/nNlQzlpenCp+V7pWkeD3UqGpB143ZGZBptZslbFx2Qh6e7PLB3g13Fls7AyXRT0W63EAqFfA9tgIvFJXiSDmHf4Q7wH+an3vKl2ezU8kQP+ox44dloQK6pr6lv3YW9Pq5EIihDF3ya3wAjc1lYKJs4wDSIgX28DYlExptkibT1UQ83IhFpdLuQXLxVuMKbSIDV/WqgL5nC3hgWkLIHHbAIT3d1cJBSkuLTOZlumyr/oVCI5oLVPKyHX+38x89+4Xmp1XMslO5MTy9/ttMGElGQefdFA3KVTVpv3WlvbZ8ybOQgpVLKi3Tai0i0wJme1D/95okPw7h4aApluSjdKlyBqcKEnUQCdBXVcKRWMoW9x7AQl3N4aoMEz3RZCXqmUCK1Rb4uSqO4QR7YWCKRoCEawM2RlnLr51a+z2aLX9uh0uphOBqQqwilJ5mcr4tIA8c5U3k9kjLG9iFSowJnEhbNr+Dl/R/0mpVQVBrdWf6fk0QiONo37qnafKBHpqDOd/aDBI4bp7dQG0n41z8QaRQKhWKGxV9VRBKJRM31IKGGjc5B00TypVk+g7YOA8kU9vrdeqVEBcbpLZF2sJFCoRDdKt9oETOcSCSMgqe9mM1QBZ00EbdQJXi0ksnV0r8V0PSWq4tZKFZsumE4meZeuYM3QqEQcUROmNiYWqPetMDSgVX3RJFG+bFGEX6nUDW2agOct6OSB0jg+PePrIMt63aJbCcRByQu+c3ubj6eSCRMbReLXz30lzKs/NFEmogbqDgwtZJJLCIRLMteuDh3UnAiKQ5IC0Q6Y5ZIBL2/vvhmOj+2ICCRgFV1q9lsJMdbTIzBBUnIN0QaOSANkGlyh0/EcZeNOQQxE7NKMolKJiG3VjVwQBqhN5FIWJay0YA8hC/eEQ0V3rBksr20bxMgUkmoDABc8lt7w8Iq3k4kEq1cj4gPlpduh2KTtkUkk6uThw5HummAgKzD/wwAjzbRXSqRSLR0PdGAPNo37sm47r6pBZmjtEomNT1XtAFm3JBKuCrr18vdbhG8Sib3c8sz4wdCpiGq5kSUSo6+9wNWfUQ3MC7Gk0inE4kEL2eriIsRhT8ik8nRSQuFQnGb6k2RIC63BwPTPprOLLAJis1EyeTK+8kMkIILkmPxNySSHRXwGnq5m4RoacmKf42SSTS3gGNSCZf4dpVS1A3icoBwqo6s6ATaglsFJ5+8uipo165dcODAAeUnwcTEBFy+fBkWF03VCGgUxG0aRNX1jXtSrhWm1UeFTGLZTA6t4kKhUG+9VeyJEyfI/6u+27NnD4TDYXjnnXfg5s2bRl3bpd5YuFMuuz66qZoTqbSLk15e3SyJQ4cO1RCJoqurC9544w3Ytm2bUb9NebktQjS7ye/u28P14WTim66tSKSPEQihDNp8YiWI2wKESxDsEDDA6+Qk1UjkvXv3KmRpBNKuDmacGLjevjWX0S2iZBJ+Ny6BgZrb5OAwarIwXYSQas5VmFypGRngTkpWoVTd/W4z1TzZhCQzM401VTJZV8sIv9nBLohHJgc93/VU6vnz5w0PIoS7ePGipT5twgPJJBB0nYrEOTkwMAD5fG3pmcnJSXjvvffqqcNMi/lKViEUmUT1gDsCcuNDoZCuJ5l4uokq8/v90NOjVjMkJGvgrBR+94ydaFzTco0DE+AucbhKkvwmYvaFY7jf1RygWjrdYjdOhE+Ex31PJlAJFWuBUMqWdY7Jb20LVc3VesHTuqsqtQiYr0GbbiZwnIMLUrLO8RRJuCAJsScO01FiFlKYhx2KwzUEJvVX7k00INfcm75xD3uf67Vhc95zrKdd87+aPiiZ9AynlJJvTPasqQTR2x82pgRLKRn0i4RlsE3SoHqvhG2E8H5jNkGkTlSeloKOO7xy0wXe4FGd0NDZaEBWVC+2GdJ5SM5EA3IE2xjeY0x7qbfj+3Q0IMe0ZJJwZyo9gGQ8+iHsNcpEJNuRgg3KPJPNAT5NmxS+VqL6XIIBDXSKtE3Jbk0BpVGSIVIKpRP9+xQSxKiW+9vRgNyvIYqkaT8WDchBTRvtLpmDWjJRYrAHbSH1EpgO6A1PMp09gU8H/ftZvAC2wNVxPJaS6SD2QS9UJdwDmEbfuIetiExJ4cfUmiR+/MxOYKVAF7aZYO5pEDdSQKWQWu093sJKrmhA9mjOP6w1wP1Y+5sSaViTODeqqDRVrbFpFj7mpClFpdW20UqdS0hS+gQIuQVccLBScwhvbgy/j+CHnXdljtEOSuF3uzV27ChRabhxgVXjNVpDUw+8W+u09OKH2gUxVEWVA+r8nmbEXr02Sc2AWFFKJGJbVcsVBNp7o1clOa5po/09o/GkG90/Q2jJpKo5LcJeSpQgrvxyzFMhKau6sJeKxN1YkH5U43vRkomunPYpE0COuSDd1x7kJsAWFIvgfMc0Kb2sdOntG/cM4b2jmiRJVmTMTuEgs+qjPzNogFc6QnuNzVRNmvUz0aR7L6qnCWYwcc1PQD16g7mgs3UCuKw0iuGq8QHMY5RRV0fRbLjLzHsOl+50n90+vC8DVfOugpoZu/EeX2I0h962dtLPu8zfcXNkuiDFcGWQYr5NKW8FoOpJLXtzUJPDnUG7S1+Fqa4A2t77wItsDWjXEOlB5phNpyG/k3ecKJIDXQRnNG3IvB8n9QuwDblHevfY6E1OxFQh5z4YDcjJ/wOYOlxbt0wn8QAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/Asset 4.473e6dd0.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 5.801fa0de.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 6.f268938f.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 7.153ed02a.jpg\";","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Col, Row, Image, Form, Fade } from \"react-bootstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { ShowButtons, propertyTypeUpdate } from \"../store/actions\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nimport imgSingleFamily from \"../assets/Asset 4.jpg\";\r\nimport imgCondo from \"../assets/Asset 5.jpg\";\r\nimport imgManufactured from \"../assets/Asset 6.jpg\";\r\nimport imgUnitsHome from \"../assets/Asset 7.jpg\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nexport default function PropertyType() {\r\n // const { ShowButtons, propertyTypeUpdate, state } = useRatesContext();\r\n const userSession = new UserSession();\r\n\r\n const [propertyType, setPropertyType] = useState(\"\");\r\n const [unitsInput, setUnitsInput] = useState(\"\");\r\n\r\n const dispatch = useDispatch();\r\n const propertyTypeRedux = useSelector(state => state.nameReducer.propertyType);\r\n // const propertyTypeRedux = state.propertyType;\r\n\r\n const myRefProp = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRefProp);\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false);\r\n\r\n setPropertyType(propertyTypeRedux);\r\n\r\n userSession.setPropertyType(propertyTypeRedux);\r\n\r\n switch (propertyType) {\r\n case \"DUPLEX\":\r\n case \"TRIPLEX\":\r\n case \"FOURPLEX\":\r\n case \"OVER FOUR\":\r\n setUnitsInput(\"UNITS\");\r\n break;\r\n // no default\r\n }\r\n\r\n if (propertyType.length > 0)\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n }, [propertyType, unitsInput]);\r\n\r\n function handleUnitProp(value) {\r\n setUnitsInput(value);\r\n }\r\n\r\n function handleProperty(value) {\r\n setPropertyType(value);\r\n userSession.setPropertyType(value);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

What is your property type?

\r\n \r\n \r\n
\r\n {\r\n handleProperty(e.target.value);\r\n setUnitsInput(\"\");\r\n dispatch(propertyTypeUpdate(e.target.value));\r\n // propertyTypeUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Single Family

\r\n \r\n \r\n
\r\n {\r\n handleProperty(e.target.value);\r\n setUnitsInput(\"\");\r\n dispatch(propertyTypeUpdate(e.target.value))\r\n // propertyTypeUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Condo

\r\n \r\n \r\n
\r\n {\r\n handleProperty(e.target.value);\r\n setUnitsInput(\"\");\r\n dispatch(propertyTypeUpdate(e.target.value))\r\n // propertyTypeUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Manufactured Home

\r\n \r\n \r\n
\r\n {\r\n handleUnitProp(e.target.value);\r\n handleProperty(\"DUPLEX\");\r\n dispatch(propertyTypeUpdate(\"DUPLEX\"));\r\n // propertyTypeUpdate(\"DUPLEX\");\r\n }}\r\n />\r\n \r\n
\r\n

Units Home

\r\n \r\n
\r\n \r\n \r\n \r\n Units\r\n {\r\n handleProperty(e.target.value);\r\n dispatch(propertyTypeUpdate(e.target.value));\r\n // propertyTypeUpdate(e.target.value);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/Asset 8.4b6cf97d.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 9.acdabb04.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 10.cb8c96c2.jpg\";","import React, { useState, useEffect, useRef } from \"react\";\r\nimport Row from \"react-bootstrap/Row\";\r\nimport Col from \"react-bootstrap/Col\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { propertyUsedUpdate, ShowButtons } from \"../store/actions\";\r\nimport imgPrimaryHome from \"../assets/Asset 8.jpg\";\r\nimport imgInvestment from \"../assets/Asset 9.jpg\";\r\nimport imgSecondaryHome from \"../assets/Asset 10.jpg\";\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nexport default function PropertyUsed() {\r\n // const { state, propertyUsedUpdate, ShowButtons } = useRatesContext();\r\n const userSession = new UserSession();\r\n\r\n const [propertyUsed, setPropUsed] = useState(\"\");\r\n\r\n const dispatch = useDispatch();\r\n const propertyUseRedux = useSelector(state => state.nameReducer.propertyUse);\r\n // const propertyUseRedux = state.propertyUse;\r\n\r\n const myRef = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRef);\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false);\r\n\r\n setPropUsed(propertyUseRedux);\r\n\r\n userSession.setPropertyUse(propertyUseRedux);\r\n\r\n if (propertyUsed.length > 0)\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n }, [propertyUsed]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

How will this property be used?

\r\n \r\n \r\n
\r\n {\r\n setPropUsed(e.target.value);\r\n dispatch(propertyUsedUpdate(e.target.value));\r\n // propertyUsedUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Primary Home

\r\n \r\n \r\n
\r\n {\r\n setPropUsed(e.target.value);\r\n dispatch(propertyUsedUpdate(e.target.value));\r\n // propertyUsedUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Investment Property

\r\n \r\n \r\n
\r\n {\r\n setPropUsed(e.target.value);\r\n dispatch(propertyUsedUpdate(e.target.value));\r\n // propertyUsedUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Secondary Home

\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/yes_check.4ccc52de.png\";","import React, { useState, useEffect, useRef } from 'react';\r\nimport Container from 'react-bootstrap/Container';\r\nimport Col from 'react-bootstrap/Col';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Image from 'react-bootstrap/Image';\r\nimport Form from 'react-bootstrap/Form';\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { veteranUpdate, ShowButtons } from \"../store/actions\"\r\nimport imgYes from '../assets/yes_check.png';\r\nimport imgNo from '../assets/no_slash.png';\r\n\r\nimport { UserSession } from 'usersession';\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) => window.scrollTo(0, ref.current.offsetTop, {behavior: 'smooth'}) \r\n// General scroll to element function\r\n\r\nexport default function VARatesPoints() {\r\n // const { state, veteranUpdate, ShowButtons } = useRatesContext();\r\n\tconst userSession = new UserSession();\r\n\r\n const [va, setVa] = useState();\r\n\t\r\n const dispatch = useDispatch();\r\n const vaRedux = useSelector(state => state.nameReducer.veteran);\r\n // const vaRedux = state.veteran;\r\n\r\n const myRefVA = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem('doNotScroll') && scrollToRef(myRefVA)\r\n }, []);\r\n\t\r\n useEffect(() => {\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false);\r\n\t\t\r\n\t\tsetVa(vaRedux);\r\n\t\t\r\n\t\tuserSession.setVeteran(vaRedux);\r\n\t\t\r\n if (va)\r\n dispatch(ShowButtons(true));\r\n\t\t\t// ShowButtons(true);\r\n }, [va]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

Are you a Veteran?

\r\n \r\n \r\n
\r\n {\r\n setVa(e.target.value);\r\n dispatch(veteranUpdate(e.target.value))\r\n // veteranUpdate(e.target.value)\r\n }} />\r\n \"Yes\r\n
\r\n

Yes

\r\n \r\n\r\n \r\n
\r\n {\r\n setVa(e.target.value);\r\n dispatch(veteranUpdate(e.target.value));\r\n // veteranUpdate(e.target.value);\r\n }} />\r\n \"No\r\n
\r\n

No

\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/Asset 11.ff3e5eb8.jpg\";","export default __webpack_public_path__ + \"static/media/Asset 12.1da44ec1.jpg\";","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Row, Col, Image, Form } from \"react-bootstrap\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { lowRatesOptionUpdate, ShowButtons } from \"../store/actions\"\r\nimport imgNoClosingCosts from \"../assets/Asset 11.jpg\";\r\nimport imgLowerPayment from \"../assets/Asset 12.jpg\";\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\nconst scrollToRef = (ref) =>\r\n window.scrollTo(0, ref.current.offsetTop, { behavior: \"smooth\" });\r\n// General scroll to element function\r\n\r\nexport default function VARatesPoints() {\r\n // const { lowRatesOptionUpdate, ShowButtons, state } = useRatesContext();\r\n const userSession = new UserSession();\r\n\r\n const [lowRatesOption, setLowRatesOption] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const lowRatesOptionRedux = useSelector(state => state.nameReducer.lowRatesOption);\r\n // const lowRatesOptionRedux = state.lowRatesOption;\r\n\r\n const myRefLR = useRef(null);\r\n\r\n useEffect(() => {\r\n //This function scroll the slider into view\r\n !localStorage.getItem(\"doNotScroll\") && scrollToRef(myRefLR);\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(ShowButtons(false));\r\n // ShowButtons(false);\r\n\r\n setLowRatesOption(lowRatesOptionRedux);\r\n\r\n userSession.setNoClosingCosts(lowRatesOptionRedux);\r\n\r\n if (lowRatesOption)\r\n dispatch(ShowButtons(true));\r\n // ShowButtons(true);\r\n }, [lowRatesOption]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

Would you like an interest rate with

\r\n \r\n \r\n
\r\n {\r\n setLowRatesOption(e.target.value);\r\n dispatch(lowRatesOptionUpdate(e.target.value));\r\n // lowRatesOptionUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

No Closing Costs

\r\n \r\n \r\n
\r\n {\r\n setLowRatesOption(e.target.value);\r\n dispatch(lowRatesOptionUpdate(e.target.value));\r\n // lowRatesOptionUpdate(e.target.value);\r\n }}\r\n />\r\n \r\n
\r\n

Lower Monthly Payment

\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { Component } from 'react'\r\nimport statePrice from \"./themes/includes/requestStatePrice.json\";\r\n\r\nexport default class PriceForState extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state=props;\r\n }\r\n\r\n getStatePriceFile() {\r\n return statePrice;\r\n }\r\n\r\n getPriceForState() {\r\n return statePrice[this.state].price;\r\n }\r\n}\r\n","/* eslint-disable eqeqeq */\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { Row, Col, Container, Button, Table, Tabs, Tab } from \"react-bootstrap\";\r\nimport axios from \"axios\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport PulseLoader from \"react-spinners/PulseLoader\";\r\nimport { css } from \"@emotion/react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n countryStateUpdate,\r\n DownPaymentInUSDsUpdate,\r\n stateCountyUpdate,\r\n} from \"../store/actions\";\r\nimport { ApplyNow } from \"applynow\";\r\nimport ThemeConfig from \"../modules/ThemeConfig\";\r\nimport PriceForStateConfig from \"../modules/PriceForState\";\r\n\r\nimport { UserSession } from \"usersession\";\r\n\r\n// import { useRatesContext } from \"../context/ratesContext\";\r\n\r\n// const scrollToRef = (ref) => window.scrollTo(0, ref.current.offsetTop, {behavior: 'smooth'})\r\n// General scroll to element function\r\n\r\nexport default function RatesData(props) {\r\n // const {\r\n // state,\r\n // countryStateUpdate,\r\n // DownPaymentInUSDsUpdate,\r\n // stateCountyUpdate,\r\n // } = useRatesContext();\r\n const userSession = new UserSession();\r\n const themeConfig = new ThemeConfig(props);\r\n const priceForStateConfig = new PriceForStateConfig(\r\n userSession.getPropertyState()\r\n );\r\n const themeLeadSource = themeConfig.requestRates.leadSource;\r\n const [loading, setLoading] = useState(false);\r\n const [noCCProgram, setNoCCProgram] = useState(false);\r\n\r\n const [loanTypeName, setLoanTypeName] = useState(\"\");\r\n const [countyName, setCountyName] = useState(\"\");\r\n const [countyCode, setCountyCode] = useState(\"\");\r\n const [propTypeName, setPropTypeName] = useState(\"\");\r\n const [propUsed, setPropUsed] = useState(\"\");\r\n const [ltv, setLtv] = useState(0);\r\n\r\n const todayDate = new Date(); //Today date\r\n const shortDate = new Intl.DateTimeFormat(\"en-US\").format(todayDate);\r\n const myRefRD = useRef(null);\r\n\r\n const [productsList, setProductsList] = useState([]);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [tabKey, setTabKey] = useState(\r\n localStorage.getItem(\"checkedTab\") !== \"\"\r\n ? localStorage.getItem(\"checkedTab\")\r\n : \"conventional\"\r\n );\r\n\r\n const override = css`\r\n display: flex;\r\n padding: 45px;\r\n justify-content: center;\r\n `;\r\n /*06-27-2020 Jay Binod Singh WEB-45 Added below section to call api and assign and display on response \r\n for Conventinal/FHA/VAJBS Rate data\r\n Added below till line 83 to call API and store data to display on page same as landing page\r\n */\r\n const [showCvnRates, setCvnRates] = useState(true);\r\n const [showFHARates, setFHARates] = useState(false);\r\n const [showVARates, setVARates] = useState(false);\r\n const [showUsdaRates, setUsdaRates] = useState(false);\r\n const [show, setShow] = useState(true); // -----------> Currently hard coded to show the Rates section by default\r\n /* States to set the received data from Pricing */\r\n const [conv15A, setConv15A] = useState(\"\");\r\n const [conv30A, setConv30A] = useState(\"\");\r\n\r\n const [fha15A, setFha15A] = useState(\"\");\r\n const [fha30A, setFha30A] = useState(\"\");\r\n\r\n const [va15A, setVa15A] = useState(\"\");\r\n const [va30A, setVa30A] = useState(\"\");\r\n\r\n const [usda15A, setUsda15A] = useState(\"\");\r\n const [usda30A, setUsda30A] = useState(\"\");\r\n let loanAmount = \"\";\r\n const [defaultTab, setDefaultTab] = useState(\"\");\r\n\r\n /*\r\n\t\tDennis, right now the implementation is not generic. This is not how I wanted it implemented \r\n\t \r\n\t */\r\n\r\n const handleResultsProdTabs = (key) => {\r\n setTabKey(key);\r\n\r\n if (key == \"conventional\") {\r\n setCvnRates(true);\r\n setFHARates(false);\r\n setVARates(false);\r\n setUsdaRates(false);\r\n localStorage.setItem(\"checkedTab\", \"conventional\");\r\n } else if (key == \"fha\") {\r\n setCvnRates(false);\r\n setFHARates(true);\r\n setVARates(false);\r\n setUsdaRates(false);\r\n localStorage.setItem(\"checkedTab\", \"fha\");\r\n } else if (key == \"va\") {\r\n setCvnRates(false);\r\n setFHARates(false);\r\n setVARates(true);\r\n setUsdaRates(false);\r\n localStorage.setItem(\"checkedTab\", \"va\");\r\n } else if (key === \"usda\") {\r\n setCvnRates(false);\r\n setFHARates(false);\r\n setVARates(false);\r\n setUsdaRates(true);\r\n localStorage.setItem(\"checkedTab\", \"usda\");\r\n }\r\n };\r\n /* End of States to set the received data from Pricing */\r\n\r\n useEffect(() => {\r\n // Set the no closing cost variable\r\n setNoCCProgram(\r\n themeLeadSource === \"LOSITE\" || themeLeadSource === \"SELF\"\r\n ? false\r\n : userSession.getNoClosingCosts()\r\n );\r\n\r\n if (userSession.getPurchasePrice() == 0) {\r\n dispatch(DownPaymentInUSDsUpdate(0));\r\n // DownPaymentInUSDsUpdate(0);\r\n userSession.setDownPaymentAmount(0);\r\n }\r\n\r\n let zipCode = userSession.getPropertyZipCode();\r\n if (zipCode.length == 5) {\r\n setLoading(true);\r\n axios\r\n .get(process.env.REACT_APP_SUNSOFT_RESTSERVER_ZIPCODE + zipCode, \"\", {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n setCountyName(response.data.counties[0].name);\r\n setCountyCode(response.data.counties[0].code);\r\n userSession.setPropertyCounty(response.data.counties[0].code);\r\n dispatch(stateCountyUpdate(response.data.counties[0].code));\r\n // stateCountyUpdate(response.data.counties[0].code);\r\n\r\n userSession.setPropertyState(response.data.state);\r\n dispatch(countryStateUpdate(response.data.state));\r\n // countryStateUpdate(response.data.state);\r\n });\r\n }\r\n\r\n if (zipCode.length < 5) {\r\n axios\r\n .get(\r\n process.env.REACT_APP_SUNSOFT_RESTSERVER_STATE_COUNTY_PUBLIC +\r\n userSession.getPropertyCounty(),\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n )\r\n .then((response) => {\r\n setCountyName(response.data.countyName);\r\n });\r\n }\r\n // Below switch statement set the loan type name that in the no match product table\r\n switch (userSession.getLoanPurpose()) {\r\n case \"0\":\r\n setLoanTypeName(\"Purchase\");\r\n break;\r\n case \"1\":\r\n setLoanTypeName(\"Refinance\");\r\n\r\n break;\r\n case \"2\":\r\n setLoanTypeName(\"Cash Out Refi\");\r\n break;\r\n //no default\r\n }\r\n // Below switch statement set the property type name in the no match product table\r\n switch (userSession.getPropertyType()) {\r\n case \"SFR\":\r\n setPropTypeName(\"Single Family\");\r\n break;\r\n case \"CONDO\":\r\n setPropTypeName(\"Condo\");\r\n break;\r\n case \"MANUFACTURED\":\r\n setPropTypeName(\"Manufactured Home\");\r\n break;\r\n case \"DUPLEX\":\r\n setPropTypeName(\"Duplex (2 UNITS)\");\r\n break;\r\n case \"TRIPLEX\":\r\n setPropTypeName(\"Triplex (3 UNITS)\");\r\n break;\r\n case \"FOURPLEX\":\r\n setPropTypeName(\"Quadplex (4 UNITS)\");\r\n break;\r\n //no default\r\n }\r\n\r\n // Below switch statement set the occupancy in the no match product table\r\n switch (userSession.getPropertyUse()) {\r\n case \"1\":\r\n setPropUsed(\"Primary Home\");\r\n break;\r\n case \"2\":\r\n setPropUsed(\"Investment Property\");\r\n\r\n break;\r\n case \"3\":\r\n setPropUsed(\"Secondary Home\");\r\n break;\r\n //no default\r\n }\r\n\r\n // Set loan to value\r\n if (userSession.getLoanPurpose() == \"0\") {\r\n loanAmount =\r\n Number(userSession.getPurchasePrice()) -\r\n Number(userSession.getDownPaymentAmount());\r\n setLtv(loanAmount / userSession.getPurchasePrice());\r\n }\r\n\r\n if (\r\n userSession.getLoanPurpose() == \"1\" ||\r\n userSession.getLoanPurpose() == \"2\"\r\n ) {\r\n loanAmount =\r\n Number(userSession.getCurrentLoanBalance()) +\r\n Number(userSession.getCashOutAmount());\r\n\r\n let loanLtv =\r\n Number(userSession.getCurrentLoanBalance()) /\r\n Number(userSession.getEstimatedValue());\r\n setLtv(loanLtv);\r\n }\r\n\r\n setLoading(true);\r\n\r\n let parDataResponse;\r\n let closeToParDataResponse;\r\n\r\n axios\r\n .post(\r\n process.env.REACT_APP_SUNSOFT_API_PRICE_SCENARIO_,\r\n {\r\n loanAmount: loanAmount > 0 ? loanAmount : \"\",\r\n loanPurpose: userSession.getLoanPurpose(),\r\n downPayment: userSession.getDownPaymentAmount(),\r\n propertyValue:\r\n userSession.getPurchasePrice() > 0\r\n ? userSession.getPurchasePrice()\r\n : userSession.getEstimatedValue(),\r\n currentLoanBalance: userSession.getCurrentLoanBalance(),\r\n propertyTypeKeyword: userSession.getPropertyType(),\r\n occupancy: userSession.getPropertyUse(),\r\n propertyState: userSession.getPropertyState(),\r\n propertyCounty:\r\n userSession.getPropertyCounty() !== \"\"\r\n ? userSession.getPropertyCounty()\r\n : countyCode,\r\n propertyZipCode: userSession.getPropertyZipCode(),\r\n creditScore: userSession.getCreditScore(),\r\n price:\r\n userSession.getNoClosingCosts() == \"true\" &&\r\n themeLeadSource !== \"LOSITE\" &&\r\n themeLeadSource !== \"SELF\"\r\n ? priceForStateConfig.getPriceForState()\r\n : 100,\r\n veteran: userSession.getVeteran(),\r\n leadSource: themeConfig.requestRates.leadSource,\r\n promoCode: themeConfig.requestRates.promoCode,\r\n userId: props.loID ? props.loID : themeConfig.requestRates.userId,\r\n branchCode: themeConfig.requestRates.branch,\r\n lockPeriod: themeConfig.requestRates.lockPeriod,\r\n matchExactPrice:\r\n userSession.getNoClosingCosts() === \"false\"\r\n ? true\r\n : themeConfig.requestRates.matchExactPrice,\r\n scenarios: themeConfig.requestRates.scenarios,\r\n },\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n )\r\n .then((response) => {\r\n let parDataResponse = response.data;\r\n //get close to par data response\r\n axios\r\n .post(\r\n process.env.REACT_APP_SUNSOFT_API_PRICE_SCENARIO_,\r\n {\r\n loanAmount: loanAmount > 0 ? loanAmount : \"\",\r\n loanPurpose: userSession.getLoanPurpose(),\r\n downPayment: userSession.getDownPaymentAmount(),\r\n propertyValue:\r\n userSession.getPurchasePrice() > 0\r\n ? userSession.getPurchasePrice()\r\n : userSession.getEstimatedValue(),\r\n currentLoanBalance: userSession.getCurrentLoanBalance(),\r\n propertyTypeKeyword: userSession.getPropertyType(),\r\n occupancy: userSession.getPropertyUse(),\r\n propertyState: userSession.getPropertyState(),\r\n propertyCounty:\r\n userSession.getPropertyCounty() !== \"\"\r\n ? userSession.getPropertyCounty()\r\n : countyCode,\r\n propertyZipCode: userSession.getPropertyZipCode(),\r\n creditScore: userSession.getCreditScore(),\r\n price:\r\n userSession.getNoClosingCosts() == \"true\" &&\r\n themeLeadSource !== \"LOSITE\" &&\r\n themeLeadSource !== \"SELF\"\r\n ? priceForStateConfig.getPriceForState()\r\n : 100,\r\n veteran: userSession.getVeteran(),\r\n leadSource: themeConfig.requestRates.leadSource,\r\n promoCode: themeConfig.requestRates.promoCode,\r\n userId: props.loID ? props.loID : themeConfig.requestRates.userId,\r\n branchCode: themeConfig.requestRates.branch,\r\n lockPeriod: themeConfig.requestRates.lockPeriod,\r\n matchExactPrice: false,\r\n scenarios: themeConfig.requestRates.scenarios,\r\n },\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n )\r\n .then((response) => {\r\n let closeToParDataResponse = response.data;\r\n\r\n if (parDataResponse && closeToParDataResponse) {\r\n // from the response get all the products that are a match\r\n // productList contains the list of products that came on the response for which we have a match\r\n Object.keys(parDataResponse).forEach(function (key) {\r\n //console.log(\"key: \" + key);\r\n if (parDataResponse[key].match === true) {\r\n //console.log(\"if: \" + parDataResponse[key]);\r\n productsList.push(parDataResponse[key]);\r\n // 06/30/2020 Dennis, I do not want to do this but for the time been will apply this patch.\r\n // ideally the U/I should iterate productsList and render the products dynamically.\r\n // I am just following what was implemented to get this out quick.\r\n switch (parDataResponse[key].loanType.toUpperCase()) {\r\n case \"CONVENTIONAL\":\r\n parDataResponse[key].amortTerm =\r\n parDataResponse[key].loanTerm;\r\n switch (parDataResponse[key].loanTerm) {\r\n case 15:\r\n setConv15A(parDataResponse[key]);\r\n break;\r\n case 30:\r\n setConv30A(parDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n case \"FHA\":\r\n parDataResponse[key].amortTerm =\r\n parDataResponse[key].loanTerm;\r\n switch (parDataResponse[key].loanTerm) {\r\n case 15:\r\n setFha15A(parDataResponse[key]);\r\n break;\r\n case 30:\r\n setFha30A(parDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n case \"VA\":\r\n parDataResponse[key].amortTerm =\r\n parDataResponse[key].loanTerm;\r\n switch (parDataResponse[key].loanTerm) {\r\n case 15:\r\n setVa15A(parDataResponse[key]);\r\n break;\r\n case 30:\r\n setVa30A(parDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n // no default\r\n case \"USDA\":\r\n parDataResponse[key].amortTerm =\r\n parDataResponse[key].loanTerm;\r\n switch (parDataResponse[key].loanTerm) {\r\n case 15:\r\n setUsda15A(parDataResponse[key]);\r\n break;\r\n case 30:\r\n setUsda30A(parDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n // no default\r\n }\r\n\r\n if (!tabKey) {\r\n // This condition is to show the correct rate tab after the first submit.\r\n setDefaultTab(\r\n Object.values(parDataResponse)[0].loanType.toLowerCase()\r\n );\r\n handleResultsProdTabs(\r\n Object.values(parDataResponse)[0].loanType.toLowerCase()\r\n );\r\n }\r\n }\r\n // from the response get all the products that are a close to par\r\n // productList contains the list of products that came on the response for which we have a received par price\r\n else if (closeToParDataResponse[key].match === true) {\r\n //console.log(\"else: \" + closeToParDataResponse[key]);\r\n productsList.push(closeToParDataResponse[key]);\r\n // 06/30/2020 Dennis, I do not want to do this but for the time been will apply this patch.\r\n // ideally the U/I should iterate productsList and render the products dynamically.\r\n // I am just following what was implemented to get this out quick.\r\n switch (closeToParDataResponse[key].loanType.toUpperCase()) {\r\n case \"CONVENTIONAL\":\r\n closeToParDataResponse[key].amortTerm =\r\n closeToParDataResponse[key].loanTerm;\r\n switch (closeToParDataResponse[key].loanTerm) {\r\n case 15:\r\n setConv15A(closeToParDataResponse[key]);\r\n break;\r\n case 30:\r\n setConv30A(closeToParDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n case \"FHA\":\r\n closeToParDataResponse[key].amortTerm =\r\n closeToParDataResponse[key].loanTerm;\r\n switch (closeToParDataResponse[key].loanTerm) {\r\n case 15:\r\n setFha15A(closeToParDataResponse[key]);\r\n break;\r\n case 30:\r\n setFha30A(closeToParDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n case \"VA\":\r\n closeToParDataResponse[key].amortTerm =\r\n closeToParDataResponse[key].loanTerm;\r\n switch (closeToParDataResponse[key].loanTerm) {\r\n case 15:\r\n setVa15A(closeToParDataResponse[key]);\r\n break;\r\n case 30:\r\n setVa30A(closeToParDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n // no default\r\n case \"USDA\":\r\n closeToParDataResponse[key].amortTerm =\r\n closeToParDataResponse[key].loanTerm;\r\n switch (closeToParDataResponse[key].loanTerm) {\r\n case 15:\r\n setUsda15A(closeToParDataResponse[key]);\r\n break;\r\n case 30:\r\n setUsda30A(closeToParDataResponse[key]);\r\n break;\r\n // no default\r\n }\r\n break;\r\n // no default\r\n }\r\n\r\n if (!tabKey) {\r\n // This condition is to show the correct rate tab after the first submit.\r\n setDefaultTab(\r\n Object.values(\r\n closeToParDataResponse\r\n )[0].loanType.toLowerCase()\r\n );\r\n handleResultsProdTabs(\r\n Object.values(\r\n closeToParDataResponse\r\n )[0].loanType.toLowerCase()\r\n );\r\n }\r\n }\r\n });\r\n\r\n // Check if there is previously selected tab saved in the local store.\r\n if (tabKey) {\r\n // matchedProduct contains the list of products loan type that came on the response for which we have a match\r\n let matchedProduct = productsList.map((product) =>\r\n product.loanType.toLowerCase()\r\n );\r\n\r\n //Check if the previously selected tab match any loan type n the matchedProduct array\r\n if (matchedProduct.includes(tabKey)) {\r\n handleResultsProdTabs(tabKey);\r\n } else {\r\n setDefaultTab(\r\n Object.values(productsList)[0].loanType.toLowerCase()\r\n );\r\n handleResultsProdTabs(\r\n Object.values(productsList)[0].loanType.toLowerCase()\r\n );\r\n }\r\n } else {\r\n // This condition is to show the correct rate tab after the first submit, if there is no tab saved in the local store.\r\n setDefaultTab(\r\n Object.values(productsList)[0].loanType.toLowerCase()\r\n );\r\n handleResultsProdTabs(\r\n Object.values(productsList)[0].loanType.toLowerCase()\r\n );\r\n }\r\n\r\n // sort the products in ascending order (low rates first)\r\n productsList.sort(function (a, b) {\r\n return a.rate - b.rate;\r\n });\r\n userSession.setWebOffer(JSON.stringify(productsList));\r\n setProductsList(productsList);\r\n\r\n setLoading(false);\r\n }\r\n })\r\n .catch((error) => {\r\n setLoading(false);\r\n console.log(error);\r\n });\r\n })\r\n .catch((error) => {\r\n setLoading(false);\r\n console.log(error);\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n\r\n {/*06-28-2020 - Jay Binod Singh WEB-45 If Search Criteria match and found based product */}\r\n {/* 0 ? \"d-flex justify-content-center\": \"d-none\"}> */}\r\n \r\n {/* 06-27-2020 Jay Binod Singh WEB-45 Added below section to show Conventional, FHA/VA as per user selection*/}\r\n \r\n \r\n
\r\n {productsList.length !== 0 ? (\r\n handleResultsProdTabs(k)}\r\n >\r\n {conv15A || conv30A ? (\r\n \r\n {conv15A.match === true ? (\r\n \r\n {/*15 Years - If rate and apr will be same then it will display Rate only and If diffeent then it will show \"Rate / Apr\"*/}\r\n \r\n

\r\n 15 YR FIXED\r\n

\r\n {conv15A.rate === conv15A.apr ||\r\n conv15A.apr == 0 ||\r\n noCCProgram == \"true\" ||\r\n conv15A.apr - conv15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {conv15A.rate === conv15A.apr ||\r\n conv15A.apr == 0 ||\r\n noCCProgram == \"true\" ||\r\n conv15A.apr - conv15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n 0\r\n ? \"textBlue poppins-black\"\r\n : \"d-none\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {conv15A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n

\r\n (Estimated Monthly Payment)\r\n

\r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n\r\n {conv30A.match === true ? (\r\n \r\n {/*30 Years - If rate and apr will be same then it will display Rate only and If diffeent then it will show \"Rate / Apr\"*/}\r\n \r\n

\r\n 30 YR FIXED\r\n

\r\n {conv30A.rate === conv30A.apr ||\r\n conv30A.apr == 0 ||\r\n noCCProgram == \"true\" ||\r\n conv30A.apr - conv30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {conv30A.rate === conv30A.apr ||\r\n conv30A.apr == 0 ||\r\n noCCProgram == \"true\" ||\r\n conv30A.apr - conv30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n 0\r\n ? \"textBlue poppins-black\"\r\n : \"d-none\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {conv30A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n

\r\n (Estimated Monthly Payment)\r\n

\r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n \r\n ) : null}\r\n\r\n {fha15A || fha30A ? (\r\n \r\n {fha15A.match === true ? (\r\n \r\n \r\n

\r\n 15 YR FIXED\r\n

\r\n {fha15A.rate === fha15A.apr ||\r\n fha15A.apr == 0 ||\r\n fha15A.apr - fha15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {fha15A.rate === fha15A.apr ||\r\n fha15A.apr == 0 ||\r\n fha15A.apr - fha15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n 0\r\n ? \"textBlue poppins-black\"\r\n : \"d-none\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {fha15A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n

\r\n (Estimated Monthly Payment)\r\n

\r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n\r\n {fha30A.match === true ? (\r\n \r\n \r\n

\r\n 30 YR FIXED\r\n

\r\n {fha30A.rate === fha30A.apr ||\r\n fha30A.apr == 0 ||\r\n fha30A.apr - fha30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {fha30A.rate === fha30A.apr ||\r\n fha30A.apr == 0 ||\r\n fha30A.apr - fha30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n\r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n

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

\r\n )}\r\n {fha30A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n \r\n (Estimated Monthly Payment)\r\n \r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n \r\n ) : null}\r\n\r\n {va15A || va30A ? (\r\n \r\n {va15A.match === true ? (\r\n \r\n \r\n

\r\n 15 YR FIXED\r\n

\r\n {va15A.rate === va15A.apr ||\r\n va15A.apr == 0 ||\r\n va15A.apr - va15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {va15A.rate === va15A.apr ||\r\n va15A.apr == 0 ||\r\n va15A.apr - va15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n 0\r\n ? \"textBlue poppins-black\"\r\n : \"d-none\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {va15A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n

\r\n (Estimated Monthly Payment)\r\n

\r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n\r\n {va30A.match === true ? (\r\n \r\n \r\n

\r\n 30 YR FIXED\r\n

\r\n\r\n {va30A.rate === va30A.apr ||\r\n va30A.apr == 0 ||\r\n va30A.apr - va30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {va30A.rate === va30A.apr ||\r\n va30A.apr == 0 ||\r\n va30A.apr - va30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n

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

\r\n )}\r\n {va30A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n \r\n (Estimated Monthly Payment)\r\n \r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n \r\n ) : null}\r\n\r\n {/* USDA Rates START */}\r\n {(usda15A.match === true || usda30A.match === true) &&\r\n themeLeadSource !== \"TEXAS-TV\" &&\r\n themeLeadSource !== \"LOSITE\" ? (\r\n \r\n {usda15A.match === true ? (\r\n \r\n \r\n

\r\n 15 YR FIXED\r\n

\r\n {usda15A.rate === usda15A.apr ||\r\n usda15A.apr == 0 ||\r\n usda15A.apr - usda15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {usda15A.rate === usda15A.apr ||\r\n usda15A.apr == 0 ||\r\n usda15A.apr - usda15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n 0\r\n ? \"textBlue poppins-black\"\r\n : \"d-none\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {usda15A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n

\r\n (Estimated Monthly Payment)\r\n

\r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n {usda30A.match === true ? (\r\n \r\n \r\n

\r\n 30 YR FIXED\r\n

\r\n {usda30A.rate === usda30A.apr ||\r\n usda30A.apr == 0 ||\r\n usda30A.apr - usda30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {usda30A.rate === usda30A.apr ||\r\n usda30A.apr == 0 ||\r\n usda30A.apr - usda30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {userSession.getNoClosingCosts() ===\r\n \"true\" ? null : (\r\n 0\r\n ? \"textBlue poppins-black\"\r\n : \"d-none\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {usda30A.PI > 0 &&\r\n userSession.getNoClosingCosts() === \"false\" ? (\r\n

\r\n (Estimated Monthly Payment)\r\n

\r\n ) : null}\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\" ||\r\n themeLeadSource === \"SELF\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n \r\n \r\n ) : null}\r\n \r\n ) : null}\r\n {/* USDA Rates END */}\r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n {!loading && productsList.length !== 0 ? (\r\n \r\n
\r\n \r\n ) : null}\r\n \r\n
\r\n Rates are subject to change without notice. Not all applicants\r\n will qualify. Interest Rate and APR are estimates as of \r\n {shortDate}.\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n {/* Product table will show in both cases either product match or not*/}\r\n \r\n {/* Scroll here after loading */}\r\n \r\n {/* Belo line will show only in case product not match*/}\r\n {!loading && productsList.length === 0 ? (\r\n \r\n

\r\n We are unable to display any products at this time. Please call us\r\n at{\" \"}\r\n \r\n {props.phoneText}\r\n {\" \"}\r\n to discuss more options.\r\n

\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {!loading && productsList.length !== 0 ? (\r\n \r\n
The above rate quote was based on the following:
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n {loanTypeName ? (\r\n \r\n \r\n
Loan Purpose
\r\n \r\n {loanTypeName}\r\n \r\n ) : null}\r\n {userSession.getPurchasePrice() > 0 ? (\r\n \r\n \r\n
Purchase Price
\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {userSession.getDownPaymentAmount() > 0 ? (\r\n \r\n \r\n
Down Payment
\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {userSession.getCurrentLoanBalance() > 0 ? (\r\n \r\n \r\n
Current Loan Balance
\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {userSession.getCashOutAmount() > 0 ? (\r\n \r\n \r\n
Cash Out Amount
\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {userSession.getEstimatedValue() > 0 ? (\r\n \r\n \r\n
Estimated Home Value
\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {ltv ? (\r\n \r\n \r\n
Loan to Value
\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {userSession.getPropertyZipCode() ? (\r\n \r\n \r\n
Property ZipCode
\r\n \r\n {userSession.getPropertyZipCode()}\r\n \r\n ) : null}\r\n {userSession.getPropertyCounty() ? (\r\n \r\n \r\n
Property County
\r\n \r\n {countyName}\r\n \r\n ) : null}\r\n {userSession.getPropertyState() ? (\r\n \r\n \r\n
Property State
\r\n \r\n {userSession.getPropertyState()}\r\n \r\n ) : null}\r\n {userSession.getCreditScore() ? (\r\n \r\n \r\n
Credit Score
\r\n \r\n {userSession.getCreditScore()}\r\n \r\n ) : null}\r\n\r\n {propTypeName ? (\r\n \r\n \r\n
Property Type
\r\n \r\n {propTypeName}\r\n \r\n ) : null}\r\n\r\n {propUsed ? (\r\n \r\n \r\n
Property Used
\r\n \r\n {propUsed}\r\n \r\n ) : null}\r\n\r\n {userSession.getVeteran() ? (\r\n \r\n \r\n
Are You a Veteran?
\r\n \r\n {userSession.getVeteran() == \"true\" ? \"Yes\" : \"No\"}\r\n \r\n ) : null}\r\n\r\n {userSession.getNoClosingCosts() == \"true\" ? (\r\n \r\n \r\n
No Closing Costs
\r\n \r\n \r\n {userSession.getNoClosingCosts() == \"true\" ? \"Yes\" : \"No\"}\r\n \r\n \r\n ) : null}\r\n {userSession.getNoClosingCosts() == \"false\" ? (\r\n \r\n \r\n
Lower Monthly Payment
\r\n \r\n \r\n {userSession.getNoClosingCosts() == \"false\" ? \"Yes\" : \"No\"}\r\n \r\n \r\n ) : null}\r\n {themeLeadSource == \"TEXAS-TV\" ? (\r\n \r\n \r\n
Subordinate Financing
\r\n \r\n No\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 06/14/2020 - Suhas\r\n\r\n This is a Rate-Quote slider home page.\r\n From here all the other sub-pages in Rate Quote slider are shown in a step-form.\r\n\r\n New sub-forms are added in this aprt from its original implementation:\r\n 1. Down Payment is separated from PurchasePrice\r\n 2. County is separated from the CountryState form\r\n*/\r\n\r\nimport React from \"react\";\r\nimport { Row, Col } from \"react-bootstrap\";\r\nimport \"../css/rate-slide.css\";\r\n\r\nimport StepZilla from \"react-stepzilla\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport LoanPurpose from \"./LoanPurpose\";\r\nimport PurchasePrice from \"./PurchasePrice\";\r\nimport DownPayment from \"./DownPayment\";\r\nimport CurrentLoanBalance from \"./RefinanaceForm\";\r\nimport CashOutFinanceForm from \"./CashOutRefinanceForm\";\r\nimport ZipCode from \"./ZipCode\";\r\nimport CountryState from \"./CountryState\";\r\nimport StateCounty from \"./StateCounty\";\r\nimport CreditScore from \"./CreditScore\";\r\nimport PropertyType from \"./PropertyType\";\r\nimport PropertyUsed from \"./PropUsed\";\r\nimport VARatesPoints from \"./VARatesPoints\";\r\nimport LowerRates from \"./LowerRates\";\r\nimport RatesData from \"./RatesData\";\r\nimport { useRatesContext } from \"../context/ratesContext\";\r\n\r\nexport default function Rates(props) {\r\n // const {state} = useRatesContext();\r\n // const type = state.type;\r\n // const zipCodeRedux = state.zipCode;\r\n const type = useSelector((state) => state.nameReducer.type);\r\n const state = useSelector((state) => state.nameReducer);\r\n const zipCodeRedux = useSelector((state) => state.nameReducer.zipCode);\r\n\r\n const branchLeadSource = props.leadSource;\r\n\r\n const steps = [\r\n {\r\n name: \"LoanPurpose\",\r\n component: ,\r\n },\r\n ];\r\n const PurchaseSteps = [\r\n {\r\n name: \"LoanPurpose\",\r\n component: ,\r\n },\r\n {\r\n name: \"purchasePrice\",\r\n component: ,\r\n },\r\n { name: \"ZipCode\", component: },\r\n {\r\n name: \"CreditScore\",\r\n component: ,\r\n },\r\n {\r\n name: \"PropertyType\",\r\n component: ,\r\n },\r\n {\r\n name: \"PropertyUsed\",\r\n component: ,\r\n },\r\n {\r\n name: \"VARatesPoints\",\r\n component: ,\r\n },\r\n {\r\n name: \"RatesData\",\r\n component: (\r\n \r\n ),\r\n },\r\n ];\r\n const FullDocsSteps = [\r\n {\r\n name: \"LoanPurpose\",\r\n component: ,\r\n },\r\n {\r\n name: \"CurrentLoanBalance\",\r\n component: ,\r\n },\r\n { name: \"ZipCode\", component: },\r\n {\r\n name: \"CreditScore\",\r\n component: ,\r\n },\r\n {\r\n name: \"PropertyType\",\r\n component: ,\r\n },\r\n {\r\n name: \"PropertyUsed\",\r\n component: ,\r\n },\r\n {\r\n name: \"VARatesPoints\",\r\n component: ,\r\n },\r\n {\r\n name: \"RatesData\",\r\n component: (\r\n \r\n ),\r\n },\r\n ];\r\n const CashOutRefiSteps = [\r\n {\r\n name: \"LoanPurpose\",\r\n component: ,\r\n },\r\n {\r\n name: \"CashOutFinanceForm\",\r\n component: ,\r\n },\r\n { name: \"ZipCode\", component: },\r\n {\r\n name: \"CreditScore\",\r\n component: ,\r\n },\r\n {\r\n name: \"PropertyType\",\r\n component: ,\r\n },\r\n {\r\n name: \"PropertyUsed\",\r\n component: ,\r\n },\r\n {\r\n name: \"VARatesPoints\",\r\n component: ,\r\n },\r\n {\r\n name: \"RatesData\",\r\n component: (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n // Add the state and county steps if the user provided a zipcode\r\n if (\r\n zipCodeRedux === \"\" ||\r\n zipCodeRedux === undefined ||\r\n zipCodeRedux === null\r\n ) {\r\n FullDocsSteps.splice(3, 0, {\r\n name: \"CountryState\",\r\n component: ,\r\n });\r\n CashOutRefiSteps.splice(3, 0, {\r\n name: \"CountryState\",\r\n component: ,\r\n });\r\n FullDocsSteps.splice(4, 0, {\r\n name: \"StateCounty\",\r\n component: ,\r\n });\r\n CashOutRefiSteps.splice(4, 0, {\r\n name: \"StateCounty\",\r\n component: ,\r\n });\r\n }\r\n\r\n // Add the downpayment step if the user provided a purchase price\r\n if (state.purchasePrice > 0) {\r\n PurchaseSteps.splice(2, 0, {\r\n name: \"DownPaymentForm\",\r\n component: ,\r\n });\r\n\r\n // Add the state and county steps if the user provided a zipcode\r\n if (\r\n zipCodeRedux === \"\" ||\r\n zipCodeRedux === undefined ||\r\n zipCodeRedux === null\r\n ) {\r\n PurchaseSteps.splice(4, 0, {\r\n name: \"CountryState\",\r\n component: ,\r\n });\r\n PurchaseSteps.splice(5, 0, {\r\n name: \"StateCounty\",\r\n component: ,\r\n });\r\n }\r\n }\r\n\r\n if (state.purchasePrice <= 0) {\r\n if (\r\n zipCodeRedux === \"\" ||\r\n zipCodeRedux === undefined ||\r\n zipCodeRedux === null\r\n ) {\r\n PurchaseSteps.splice(3, 0, {\r\n name: \"CountryState\",\r\n component: ,\r\n });\r\n PurchaseSteps.splice(4, 0, {\r\n name: \"StateCounty\",\r\n component: ,\r\n });\r\n }\r\n }\r\n\r\n if (\r\n branchLeadSource !== \"NET007\" &&\r\n branchLeadSource !== \"SELF\" &&\r\n branchLeadSource !== \"TEXAS-TV\"\r\n ) {\r\n PurchaseSteps.splice(PurchaseSteps.length - 1, 0, {\r\n name: \"LowerRates\",\r\n component: ,\r\n });\r\n FullDocsSteps.splice(FullDocsSteps.length - 1, 0, {\r\n name: \"LowerRates\",\r\n component: ,\r\n });\r\n CashOutRefiSteps.splice(CashOutRefiSteps.length - 1, 0, {\r\n name: \"LowerRates\",\r\n component: ,\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n >\"\r\n backButtonText=\"<<\"\r\n showNavigation={true}\r\n preventEnterSubmission={true}\r\n dontValidate={false}\r\n nextTextOnFinalActionStep=\"Submit\"\r\n prevBtnOnLastStep={false}\r\n />\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","/*\r\n\t6/13/2020 - Suhas\r\n\t\r\n\tThis page shows the Rates section in the Landing page.\r\n \r\n The Rates section is separated in 3 parts as follows:\r\n 1] RATES\r\n The Rates are fetched from the public URL of Pricing Engine\r\n The URL is fetched from \"COMMON\" set.\r\n\r\n The received response is read and shown in a format for:\r\n 1. Conventional (15Yr Fixed and 30Yr Fixed)\r\n 2. FHA (15Yr Fixed and 30Yr Fixed)\r\n 3. VA (15Yr Fixed and 30Yr Fixed) - While fetching from the response, it will be USDA\r\n\r\n The APR is calculated based on the JSON file that we are using.\r\n\r\n 2] Customize Quote\r\n This is a button below the Rates section.\r\n It will allows user to Cutomize the Rates shown in section 1, based on the user selection.\r\n \r\n On submission of the user selection, it will show the Rates table as in section 1 and replece section 1 rates.\r\n\r\n When the Customize Quote is selected, button will be hidden. Then Today's Rates button will be shown\r\n If clicked on Today's Rates and then clicked back on Customize Quote, then the slider should start from the beginning\r\n\r\n 3] Apply Now\r\n This will redict to the ApplyNow with its lead id as c=lrtv.\r\n \r\n If the user has customized a quote, it add the customized options with ApplyNow link for POST.\r\n This will pre-select/prefill the ApplyNow when user is redirected.\r\n\t\r\n*/\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Container, Button, Tabs, Tab, Modal } from \"react-bootstrap\";\r\nimport axios from \"axios\";\r\nimport { format, parse, parseISO } from \"date-fns\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport PulseLoader from \"react-spinners/PulseLoader\";\r\nimport ScrollIntoView from \"react-scroll-into-view\";\r\nimport { css } from \"@emotion/react\";\r\nimport \"../css/rates.css\";\r\n\r\nimport RatesSlider from \"../components/rates\";\r\nimport ThemeConfig from \"./ThemeConfig\";\r\nimport { ApplyNow } from \"applynow\";\r\n\r\nimport { UserSession } from \"usersession\";\r\nimport PriceForStateConfig from \"./PriceForState\";\r\nimport {countryStateUpdate, stateCountyUpdate, stateListUpdate} from '../store/actions' \r\nimport { useDispatch } from \"react-redux\";\r\n\r\nfunction Rates(props) {\r\n\r\n const dispatch = useDispatch();\r\n const userSession = new UserSession();\r\n const themeConfig = new ThemeConfig(props);\r\n \r\n let themeLeadSource = themeConfig.requestRates.leadSource;\r\n let themeLoanPurpose = themeConfig.requestRates.loanPurpose;\r\n themeConfig.requestRates.userId = props.loID;\r\n if (props.promoCode) {\r\n themeConfig.requestRates.promoCode = props.promoCode;\r\n }\r\n //console.log('props', props);\r\n// self-loanOfficerUid\r\n const domain = themeConfig.domain;\r\n\r\n const [noCCProgram, setNoCCProgram] = useState(false);\r\n const [showCvnRates, setCvnRates] = useState(true);\r\n const [showFHARates, setFHARates] = useState(false);\r\n const [showVARates, setVARates] = useState(false);\r\n const [showUsdaRates, setUsdaRates] = useState(false);\r\n const [show, setShow] = useState(true); // -----------> Currently hard coded to show the Rates section by default\r\n const [loading, setLoading] = useState(false);\r\n const [stateName, setStateName] = useState(\"\");\r\n const [productLoading, setProductLoading] = useState(false);\r\n const [showPricing, setShowPricing] = useState(false);\r\n const [convTab, setConvTab] = useState(false);\r\n const [fhaTab, setFhaTab] = useState(false);\r\n const [vaTab, setVaTab] = useState(false);\r\n const [usdaTab, setUsdaTab] = useState(false);\r\n const [showCHMModal, setCHMModal] = useState(false);\r\n const handleCHMClose = () => setCHMModal(false);\r\n \r\n\r\n /* States to set the received data from Pricing */\r\n const [defaultCreditScore, setDefaultCreditScore] = useState(\r\n themeConfig.requestRates.creditScore\r\n );\r\n const [branchLoanAmount, setBranchLoanAmount] = useState(\r\n themeConfig.requestRates.loanAmount\r\n );\r\n const [branchPropertyValue, setBranchPropertyValue] = useState(\r\n themeConfig.requestRates.propertyValue\r\n );\r\n\r\n const [pricingResponse, setPricingResponse] = useState(\"\");\r\n\r\n const [conv15A, setConv15A] = useState(\"\");\r\n const [conv30A, setConv30A] = useState(\"\");\r\n\r\n const [fha15A, setFha15A] = useState(\"\");\r\n const [fha30A, setFha30A] = useState(\"\");\r\n\r\n const [va15A, setVa15A] = useState(\"\");\r\n const [va30A, setVa30A] = useState(\"\");\r\n\r\n const [usda15A, setUsda15A] = useState(\"\");\r\n const [usda30A, setUsda30A] = useState(\"\");\r\n\r\n const [fhaLimit, setFhaLimit] = useState(\"\");\r\n const [convLimit, setConvLimit] = useState(\"\");\r\n const [vaLimit, setVaLimit] = useState(\"\");\r\n const [usdaLimit, setUSdaLimit] = useState(\"\");\r\n const [productCreationTime, setProductCreationTime] = useState(\"\");\r\n\r\n /* End of States to set the received data from Pricing */\r\n\r\n const [customButton, setCustomButton] = useState(true); // State to toggle the view of Customize Quote button\r\n const [showDescription, setShowDescription] = useState(true);\r\n\r\n const [customRateQuote, setCustomRateQuote] = useState(false); // State for Customize Quote button to toggle Rates\r\n\r\n const todayDate = new Date(); //Today date\r\n let shortDate = new Intl.DateTimeFormat(\"en-US\").format(todayDate);\r\n\r\n const override = css`\r\n display: flex;\r\n padding: 45px;\r\n justify-content: center;\r\n `;\r\n\r\n const handleProdTabs = (key) => {\r\n localStorage.setItem(\"checkedTab\", key); // REACT-69\r\n\r\n if (key === \"conventional\") {\r\n setCvnRates(true);\r\n setFHARates(false);\r\n setVARates(false);\r\n setUsdaRates(false);\r\n saveCVNDetails();\r\n } else if (key === \"fha\") {\r\n setCvnRates(false);\r\n setFHARates(true);\r\n setVARates(false);\r\n setUsdaRates(false);\r\n saveFHADetails();\r\n } else if (key === \"va\") {\r\n setCvnRates(false);\r\n setFHARates(false);\r\n setVARates(true);\r\n setUsdaRates(false);\r\n saveVADetails();\r\n } else if (key === \"usda\") {\r\n setCvnRates(false);\r\n setFHARates(false);\r\n setVARates(false);\r\n setUsdaRates(true);\r\n saveUsdaDetails();\r\n }\r\n };\r\n\r\n function saveUsdaDetails() {\r\n if (usda15A.match === true) {\r\n saveSelectedProductDetails(usda15A);\r\n } else if (usda30A.match === true) {\r\n saveSelectedProductDetails(usda30A);\r\n }\r\n }\r\n\r\n function saveVADetails() {\r\n if (va15A.match === true) {\r\n saveSelectedProductDetails(va15A);\r\n } else if (va30A.match === true) {\r\n saveSelectedProductDetails(va30A);\r\n }\r\n }\r\n\r\n function saveFHADetails() {\r\n if (fha15A.match === true) {\r\n saveSelectedProductDetails(fha15A);\r\n } else if (fha30A.match === true) {\r\n saveSelectedProductDetails(fha30A);\r\n }\r\n }\r\n\r\n function saveCVNDetails() {\r\n if (conv15A.match === true) {\r\n saveSelectedProductDetails(conv15A);\r\n } else if (conv30A.match === true) {\r\n saveSelectedProductDetails(conv30A);\r\n }\r\n }\r\n\r\n function saveSelectedProductDetails(selectedProduct) {\r\n userSession.getSelectedProduct().setLoanType(selectedProduct.loanType);\r\n }\r\n\r\n const saveInitialRequestData = (requestedJson) => {\r\n switch (requestedJson.loanPurpose) {\r\n case 0:\r\n userSession.setLoanPurpose(\"PURCHASE\");\r\n break;\r\n case 1:\r\n userSession.setLoanPurpose(\"FULL DOCS REFI\");\r\n break;\r\n case 2:\r\n userSession.setLoanPurpose(\"CASH OUT REFI\");\r\n break;\r\n //no default\r\n }\r\n userSession.setLeadSource(requestedJson.leadSource);\r\n userSession.setPropertyState(requestedJson.propertyState);\r\n userSession.setPropertyZipCode(requestedJson.propertyZipCode);\r\n userSession.setBranchCode(requestedJson.branchCode);\r\n userSession.setPromoCode(requestedJson.promoCode);\r\n userSession.setPropertyType(requestedJson.propertyTypeKeyword);\r\n };\r\n\r\n async function locationError(error) {\r\n // Get the default price scenario\r\n await getPrice(themeConfig.requestRates.leadSource);\r\n }\r\n\r\n /** REACT-69: For Autism Heroes, this condition should work */\r\n const isAutismHeroes =\r\n props.promoCode && props.promoCode === \"ATH\" ? true : false;\r\n\r\n /** No scrolling for FLW in customize quote */\r\n const isFLW =\r\n themeLeadSource === \"NET049\" &&\r\n themeConfig.requestRates.promoCode === \"FLW\";\r\n localStorage.setItem(\"doNotScroll\", isAutismHeroes || isFLW);\r\n\r\n // get default config data\r\n const getDefaultConfig = async (leadSource) => {\r\n let theme_id = \"lowrates\";\r\n if (leadSource === \"LOSITE\") theme_id = \"lowrates\";\r\n\r\n // Get the config data\r\n const configData = await axios(\r\n `${process.env.REACT_APP_RATE_PRODUCT}/${theme_id}-config.json`\r\n );\r\n\r\n const themeConfigData = configData.data[0][theme_id];\r\n if (themeConfigData) {\r\n setDefaultCreditScore(configData.data[0][theme_id].creditScore);\r\n setBranchLoanAmount(configData.data[0][theme_id].loanAmount);\r\n setBranchPropertyValue(configData.data[0][theme_id].propertyValue);\r\n saveInitialRequestData(configData.data[0][theme_id]);\r\n }\r\n };\r\n\r\n /**\r\n * @description Get the static data from s3.\r\n * @param leadSource leadsource of the website\r\n * @param userStateCode state code of the user\r\n */\r\n const getPrice = async (leadSource, userStateCode) => {\r\n\r\n try {\r\n\r\n // Get the static data from s3 for the filtered state else return the default data\r\n // Get the state list\r\n const stateList = await axios(\r\n `${process.env.REACT_APP_RATE_PRODUCT}/state.json`\r\n );\r\n // Filter the state which has the county and zipcode\r\n const propertyStateData = stateList.data.find(\r\n (d) => d.state.code === userStateCode\r\n );\r\n let response;\r\n let data;\r\n\r\n if (userStateCode) {\r\n data = {\r\n \"loID\": themeConfig.requestRates.userId,\r\n \"propertyState\": userStateCode.toUpperCase(),\r\n \"propertyCounty\": propertyStateData.state.county.code,\r\n \"propertyZipCode\": propertyStateData.state.county.zipcode\r\n };\r\n } else {\r\n data = {\r\n \"loID\": themeConfig.requestRates.userId,\r\n \"propertyState\": themeConfig.requestRates.propertyState,\r\n \"propertyCounty\": themeConfig.requestRates.propertyCounty,\r\n \"propertyZipCode\": themeConfig.requestRates.propertyZipCode\r\n };\r\n } \r\n\r\n var config = {\r\n method: 'post',\r\n url: process.env.REACT_APP_SUNSOFT_API_MLO_PRICE_SCENARIO,\r\n headers: { \r\n 'Content-Type': 'application/json'\r\n },\r\n data : data\r\n };\r\n \r\n response = await axios(config);\r\n response = response.data.success;\r\n\r\n const responseStr = JSON.stringify(response);\r\n if (responseStr.length > 2) {\r\n setPricingResponse(response);\r\n const parseValue = new Date();\r\n const dateTime = format(parseValue, \"MM/dd/yyyy hh:mm a\");\r\n setProductCreationTime(dateTime);\r\n userSession.setWebOffer(JSON.stringify(response.data[0]));\r\n\r\n if (response.data[0].parData.CONV_30_YR_FIXED || response.data[1].closeToParData.CONV_30_YR_FIXED) {\r\n if (response.data[0].parData.CONV_30_YR_FIXED.match) {\r\n response.data[0].parData.CONV_30_YR_FIXED.amortTerm = response.data[0].parData.CONV_30_YR_FIXED.loanTerm * 12;\r\n setConv30A(response.data[0].parData.CONV_30_YR_FIXED);\r\n } else {\r\n response.data[1].closeToParData.CONV_30_YR_FIXED.amortTerm = response.data[1].closeToParData.CONV_30_YR_FIXED.loanTerm * 12;\r\n setConv30A(response.data[1].closeToParData.CONV_30_YR_FIXED);\r\n }\r\n }\r\n\r\n if (response.data[0].parData.CONV_15_YR_FIXED || response.data[1].closeToParData.CONV_15_YR_FIXED) {\r\n if (response.data[0].parData.CONV_15_YR_FIXED.match) {\r\n response.data[0].parData.CONV_15_YR_FIXED.amortTerm = response.data[0].parData.CONV_15_YR_FIXED.loanTerm * 12;\r\n setConv15A(response.data[0].parData.CONV_15_YR_FIXED);\r\n setConvLimit(response.data[0].parData.CONV_15_YR_FIXED.countyLimit);\r\n } else {\r\n response.data[1].closeToParData.CONV_15_YR_FIXED.amortTerm = response.data[1].closeToParData.CONV_15_YR_FIXED.loanTerm * 12;\r\n setConv15A(response.data[1].closeToParData.CONV_15_YR_FIXED);\r\n setConvLimit(response.data[1].closeToParData.CONV_15_YR_FIXED.countyLimit);\r\n }\r\n }\r\n\r\n if (response.data[0].parData.FHA_15_YR_FIXED || response.data[1].closeToParData.FHA_15_YR_FIXED) {\r\n if (response.data[0].parData.FHA_15_YR_FIXED.match) {\r\n response.data[0].parData.FHA_15_YR_FIXED.amortTerm = response.data[0].parData.FHA_15_YR_FIXED.loanTerm * 12;\r\n setFha15A(response.data[0].parData.FHA_15_YR_FIXED);\r\n } else {\r\n response.data[1].closeToParData.FHA_15_YR_FIXED.amortTerm = response.data[1].closeToParData.FHA_15_YR_FIXED.loanTerm * 12;\r\n setFha15A(response.data[1].closeToParData.FHA_15_YR_FIXED);\r\n }\r\n }\r\n\r\n if (response.data[0].parData.FHA_30_YR_FIXED || response.data[1].closeToParData.FHA_30_YR_FIXED) {\r\n if (response.data[0].parData.FHA_30_YR_FIXED.match) {\r\n response.data[0].parData.FHA_30_YR_FIXED.amortTerm = response.data[0].parData.FHA_30_YR_FIXED.loanTerm * 12;\r\n setFha30A(response.data[0].parData.FHA_30_YR_FIXED);\r\n setFhaLimit(response.data[0].parData.FHA_30_YR_FIXED.countyLimit);\r\n } else {\r\n response.data[1].closeToParData.FHA_30_YR_FIXED.amortTerm = response.data[1].closeToParData.FHA_30_YR_FIXED.loanTerm * 12;\r\n setFha30A(response.data[1].closeToParData.FHA_30_YR_FIXED);\r\n setFhaLimit(response.data[1].closeToParData.FHA_30_YR_FIXED.countyLimit);\r\n }\r\n }\r\n\r\n if (response.data[0].parData.VA_30_YR_FIXED || response.data[1].closeToParData.VA_30_YR_FIXED) {\r\n if (response.data[0].parData.VA_30_YR_FIXED.match) {\r\n response.data[0].parData.VA_30_YR_FIXED.amortTerm = response.data[0].parData.VA_30_YR_FIXED.loanTerm * 12;\r\n setVa30A(response.data[0].parData.VA_30_YR_FIXED);\r\n } else {\r\n response.data[1].closeToParData.VA_30_YR_FIXED.amortTerm = response.data[1].closeToParData.VA_30_YR_FIXED.loanTerm * 12;\r\n setVa30A(response.data[1].closeToParData.VA_30_YR_FIXED);\r\n }\r\n }\r\n\r\n if (response.data[0].parData.VA_15_YR_FIXED || response.data[1].closeToParData.VA_15_YR_FIXED) {\r\n if (response.data[0].parData.VA_15_YR_FIXED.match) {\r\n response.data[0].parData.VA_15_YR_FIXED.amortTerm = response.data[0].parData.VA_15_YR_FIXED.loanTerm * 12;\r\n setVa15A(response.data[0].parData.VA_15_YR_FIXED);\r\n setVaLimit(response.data[0].parData.VA_15_YR_FIXED.countyLimit);\r\n } else {\r\n response.data[1].closeToParData.VA_15_YR_FIXED.amortTerm = response.data[1].closeToParData.VA_15_YR_FIXED.loanTerm * 12;\r\n setVa15A(response.data[1].closeToParData.VA_15_YR_FIXED);\r\n setVaLimit(response.data[1].closeToParData.VA_15_YR_FIXED.countyLimit);\r\n }\r\n }\r\n\r\n if (response.data[0].parData.USDA_15_YR_FIXED || response.data[1].closeToParData.USDA_15_YR_FIXED) {\r\n if (response.data[0].parData.USDA_15_YR_FIXED.match) {\r\n response.data[0].parData.USDA_15_YR_FIXED.amortTerm = response.data[0].parData.USDA_15_YR_FIXED.loanTerm * 12;\r\n setUsda15A(response.data[0].parData.USDA_15_YR_FIXED);\r\n } else {\r\n response.data[1].closeToParData.USDA_15_YR_FIXED.amortTerm = response.data[1].closeToParData.USDA_15_YR_FIXED.loanTerm * 12;\r\n setUsda15A(response.data[1].closeToParData.USDA_15_YR_FIXED);\r\n }\r\n }\r\n\r\n if (response.data[0].parData.USDA_30_YR_FIXED || response.data[1].closeToParData.USDA_30_YR_FIXED) {\r\n if (response.data[0].parData.USDA_30_YR_FIXED.match) {\r\n response.data[0].parData.USDA_30_YR_FIXED.amortTerm = response.data[0].parData.USDA_30_YR_FIXED.loanTerm * 12;\r\n setUsda30A(response.data[0].parData.USDA_30_YR_FIXED);\r\n setUSdaLimit(response.data[0].parData.USDA_30_YR_FIXED.countyLimit);\r\n } else {\r\n response.data[1].closeToParData.USDA_30_YR_FIXED.amortTerm = response.data[1].closeToParData.USDA_30_YR_FIXED.loanTerm * 12;\r\n setUsda30A(response.data[1].closeToParData.USDA_30_YR_FIXED);\r\n setUSdaLimit(response.data[1].closeToParData.USDA_30_YR_FIXED.countyLimit);\r\n }\r\n }\r\n\r\n setShow(true);\r\n }\r\n \r\n setProductLoading(false);\r\n } catch (error) {\r\n setProductLoading(false);\r\n console.error(\"err price\", error);\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n // if (!React.version.startsWith(\"17\")) {\r\n // console.error(\r\n // `RateQuotes requires react version 17.0.2 in order to avoid react hook error. The current version of react is ${React.version}`\r\n // );\r\n // }\r\n\r\n setShow(false);\r\n\r\n // Below get the default config data\r\n getDefaultConfig(themeLeadSource);\r\n\r\n // Below conditions are to determine with tab must be shown\r\n themeConfig.requestRates.scenarios.forEach((product) => {\r\n if (product === \"CONV_15_YR_FIXED\" || product === \"CONV_30_YR_FIXED\") {\r\n setConvTab(true);\r\n }\r\n\r\n if (product === \"FHA_15_YR_FIXED\" || product === \"FHA_30_YR_FIXED\") {\r\n setFhaTab(true);\r\n }\r\n\r\n if (product === \"VA_15_YR_FIXED\" || product === \"VA_30_YR_FIXED\") {\r\n setVaTab(true);\r\n }\r\n\r\n if (product === \"USDA_15_YR_FIXED\" || product === \"USDA_30_YR_FIXED\") {\r\n setUsdaTab(true);\r\n }\r\n });\r\n\r\n // Get state from public endpoint\r\n\r\n let rechecked_domain = domain;\r\n axios\r\n .post(\r\n process.env.REACT_APP_SUNSOFT_RESTSERVER_STATE_LIST,\r\n { companyCode: \"SUNWST000\", domain: rechecked_domain },\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n )\r\n .then((response) => {\r\n userSession.setStateList(JSON.stringify(response.data));\r\n dispatch(stateListUpdate(response.data));\r\n });\r\n\r\n /* Get client IP and geolocation(maxmind API) Task LRTV-3 */\r\n axios\r\n .post(\r\n process.env.REACT_APP_MAXMIND,\r\n { },\r\n { timeout: 5000 },\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n )\r\n .then(async(response) => {\r\n const isPricingApplicableForLO = await checkIfPricingIsApplicableForLO();\r\n \r\n if (isPricingApplicableForLO) {\r\n setShowPricing(true);\r\n if (\r\n response.data !== \"IP Not Available\" &&\r\n response.data !== \"Invalid Country\"\r\n ) {\r\n let zipcode = response.data.zipcode;\r\n if (zipcode) {\r\n axios\r\n .get(\r\n process.env.REACT_APP_SUNSOFT_RESTSERVER_ZIPCODE +\r\n zipcode,\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n },\r\n { timeout: 15000 }\r\n )\r\n .then(async (response) => {\r\n userSession.setPropertyCounty(\r\n response.data.counties[0].code\r\n );\r\n dispatch(stateCountyUpdate(response.data.counties[0].code));\r\n userSession.setPropertyState(response.data.state);\r\n dispatch(countryStateUpdate(response.data.state));\r\n \r\n axios\r\n .get(\r\n process.env.REACT_APP_SUNSOFT_RESTSERVER_STATE +\r\n response.data.state,\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n )\r\n .then((response) => {\r\n setStateName(response.data.stateName);\r\n });\r\n \r\n let priceForStateConfig = new PriceForStateConfig(\r\n response.data.state\r\n );\r\n \r\n const userReqData = {\r\n branchCode: themeConfig.requestRates.branchCode,\r\n creditScore: themeConfig.requestRates.creditScore,\r\n loanAmount: themeConfig.requestRates.loanAmount,\r\n leadSource: themeConfig.requestRates.leadSource,\r\n loanPurpose: themeConfig.requestRates.loanPurpose,\r\n lockPeriod: themeConfig.requestRates.lockPeriod,\r\n matchExactPrice:\r\n themeConfig.requestRates.matchExactPrice,\r\n occupancy: themeConfig.requestRates.occupancy,\r\n price:\r\n themeConfig.requestRates.leadSource === \"LOSITE\" ||\r\n themeConfig.requestRates.leadSource === \"SELF\"\r\n ? themeConfig.requestRates.price\r\n : priceForStateConfig.getPriceForState(),\r\n promoCode: themeConfig.requestRates.promoCode,\r\n propertyCounty: response.data.counties[0].code,\r\n propertyState: response.data.state,\r\n propertyZipCode: zipcode,\r\n propertyTypeKeyword:\r\n themeConfig.requestRates.propertyTypeKeyword,\r\n propertyValue: themeConfig.requestRates.propertyValue,\r\n userId: themeConfig.requestRates.userId,\r\n veteran: themeConfig.requestRates.veteran,\r\n scenarios: [\r\n themeConfig.requestRates.scenarios[0],\r\n themeConfig.requestRates.scenarios[1],\r\n ],\r\n };\r\n \r\n // get the price scenario\r\n await getPrice(\r\n userReqData.leadSource,\r\n userReqData.propertyState\r\n );\r\n \r\n saveInitialRequestData(userReqData);\r\n userSession.setPropertyZipCode(zipcode);\r\n return userReqData;\r\n })\r\n .then(async (userReqData) => {\r\n setNoCCProgram(themeConfig.isNoCCProgram);\r\n })\r\n .catch((error) => {\r\n locationError();\r\n console.log(\"zipcode Error\", error);\r\n });\r\n } else {\r\n locationError();\r\n }\r\n } else {\r\n console.log(response.data); // Show Error message from lambda function\r\n locationError();\r\n }\r\n } else {\r\n setShowPricing(false);\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n locationError(error);\r\n });\r\n\r\n userSession.setCustomQuote(customRateQuote);\r\n saveCVNDetails();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (themeLeadSource === 'INHNPORT-017') {\r\n setCustomButton(false)\r\n }\r\n }, [themeLeadSource])\r\n\r\n const checkIfPricingIsApplicableForLO = async() => {\r\n let response;\r\n\r\n var data = {\r\n \"loID\": themeConfig.requestRates.userId,\r\n \"methodName\": \"CHECK_PRICING_APPLICABLE_FOR_LO\"\r\n };\r\n\r\n // console.log(\"data: \" + JSON.stringify(data));\r\n\r\n var config = {\r\n method: 'post',\r\n url: process.env.REACT_APP_SUNSOFT_API_MLO_PRICE_SCENARIO,\r\n headers: { \r\n 'Content-Type': 'application/json'\r\n },\r\n data : data\r\n };\r\n \r\n response = await axios(config);\r\n // console.log(\"response.data: \" + JSON.stringify(response.data));\r\n\r\n return response.data.success.data[0].showPricing;\r\n }\r\n\r\n const handleLoanPurpose = () => {\r\n let loanType = \"Refinance\";\r\n switch (JSON.stringify(themeLoanPurpose)) {\r\n case \"0\":\r\n loanType = \"Purchase\";\r\n break;\r\n case \"1\":\r\n loanType = \"Refinance\";\r\n break;\r\n case \"2\":\r\n loanType = \"Cash Out Refi\";\r\n break;\r\n //no default\r\n }\r\n return loanType;\r\n\r\n } \r\n\r\n return (\r\n <>\r\n {pricingResponse ? \r\n
\r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n \r\n \r\n \r\n {customRateQuote ? (\r\n

YOUR CUSTOM QUOTE

\r\n ) : (\r\n

\r\n TODAY'S RATES{\" \"}\r\n {stateName ? \"FOR \" + stateName.toUpperCase() : null}\r\n

\r\n )}\r\n \r\n
\r\n \r\n ) : null}\r\n \r\n
\r\n {/* Conventional Rates START */}\r\n handleProdTabs(k)}\r\n >\r\n {convTab === true ? (\r\n \r\n {props.offertext !== \"\" &&\r\n !productLoading &&\r\n (conv15A.match || conv30A.match) ? (\r\n \r\n

\r\n {props.offertext}\r\n

\r\n \r\n ) : null}\r\n\r\n \r\n

\r\n No Closing Costs!\r\n

\r\n \r\n\r\n {conv15A.match === true ? (\r\n \r\n {/*15 Years - If rate and apr will be same then it will display Rate only and If diffeent then it will show \"Rate / Apr\"*/}\r\n\r\n \r\n

15 YR FIXED

\r\n {conv15A.rate === (conv15A.aprEstimated ? conv15A.aprEstimated : conv15A.apr) ||\r\n noCCProgram === true ||\r\n (conv15A.aprEstimated ? conv15A.aprEstimated : conv15A.apr) - conv15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {conv15A.rate === (conv15A.aprEstimated ? conv15A.aprEstimated : conv15A.apr) ||\r\n noCCProgram === true ||\r\n (conv15A.aprEstimated ? conv15A.aprEstimated : conv15A.apr) - conv15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n

\r\n\r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n\r\n {conv30A.match === true ? (\r\n \r\n {/*30 Years - If rate and apr will be same then it will display Rate only and If diffeent then it will show \"Rate / Apr\"*/}\r\n \r\n

30 YR FIXED

\r\n {conv30A.rate === (conv30A.aprEstimated ? conv30A.aprEstimated : conv30A.apr) ||\r\n noCCProgram === true ||\r\n (conv30A.aprEstimated ? conv30A.aprEstimated : conv30A.apr) - conv30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {conv30A.rate === (conv30A.aprEstimated ? conv30A.aprEstimated : conv30A.apr) ||\r\n noCCProgram === true ||\r\n (conv30A.aprEstimated ? conv30A.aprEstimated : conv30A.apr) - conv30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n

\r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n {/* TODO: Currently, It is coming from props. This will be stored in configuration file \r\n (properties or json file).\r\n */}\r\n \r\n ) : null}\r\n {/* Conventional Rates END */}\r\n\r\n {/* FHA Rates START */}\r\n {fhaTab === true ? (\r\n \r\n {props.offertext !== \"\" &&\r\n !productLoading &&\r\n (fha15A.match || fha30A.match) ? (\r\n \r\n

\r\n {props.offertext}\r\n

\r\n \r\n ) : null}\r\n\r\n {!fha15A.match && !fha30A.match ?\r\n

We are unable to display any products at this time.

\r\n : null}\r\n\r\n {fha15A.match === true ? (\r\n \r\n \r\n

15 YR FIXED

\r\n {fha15A.rate === (fha15A.aprEstimated ? fha15A.aprEstimated : fha15A.apr) ||\r\n (fha15A.aprEstimated ? fha15A.aprEstimated : fha15A.apr) === 0 ||\r\n (fha15A.aprEstimated ? fha15A.aprEstimated : fha15A.apr) - fha15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {fha15A.rate === (fha15A.aprEstimated ? fha15A.aprEstimated : fha15A.apr) ||\r\n (fha15A.aprEstimated ? fha15A.aprEstimated : fha15A.apr) === 0 ||\r\n (fha15A.aprEstimated ? fha15A.aprEstimated : fha15A.apr) - fha15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n\r\n {fha30A.match === true ? (\r\n \r\n \r\n

30 YR FIXED

\r\n {fha30A.rate === (fha30A.aprEstimated ? fha30A.aprEstimated : fha30A.apr) ||\r\n (fha30A.aprEstimated ? fha30A.aprEstimated : fha30A.apr) === 0 ||\r\n (fha30A.aprEstimated ? fha30A.aprEstimated : fha30A.apr) - fha30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {fha30A.rate === (fha30A.aprEstimated ? fha30A.aprEstimated : fha30A.apr) ||\r\n (fha30A.aprEstimated ? fha30A.aprEstimated : fha30A.apr) === 0 ||\r\n (fha30A.aprEstimated ? fha30A.aprEstimated : fha30A.apr) - fha30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n \r\n ) : null}\r\n {/* FHA Rates END */}\r\n\r\n {/* VA Rates START */}\r\n {vaTab === true ? (\r\n \r\n {props.offertext !== \"\" &&\r\n !productLoading &&\r\n (va15A.match || va30A.match) ? (\r\n \r\n

\r\n {props.offertext}\r\n

\r\n \r\n ) : null}\r\n\r\n {!va15A.match && !va30A.match ?\r\n

We are unable to display any products at this time.

\r\n : null}\r\n\r\n {themeLeadSource !== \"BLCHMWEB\" && va15A.match === true ? (\r\n \r\n \r\n

15 YR FIXED

\r\n {va15A.rate === (va15A.aprEstimated ? va15A.aprEstimated : va15A.apr)||\r\n (va15A.aprEstimated ? va15A.aprEstimated : va15A.apr) === 0 ||\r\n (va15A.aprEstimated ? va15A.aprEstimated : va15A.apr) - va15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {va15A.rate === (va15A.aprEstimated ? va15A.aprEstimated : va15A.apr) ||\r\n (va15A.aprEstimated ? va15A.aprEstimated : va15A.apr) === 0 ||\r\n (va15A.aprEstimated ? va15A.aprEstimated : va15A.apr) - va15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n\r\n {va30A.match === true ? (\r\n \r\n \r\n

30 YR FIXED

\r\n {va30A.rate === (va30A.aprEstimated ? va30A.aprEstimated : va30A.apr) ||\r\n (va30A.aprEstimated ? va30A.aprEstimated : va30A.apr) === 0 ||\r\n (va30A.aprEstimated ? va30A.aprEstimated : va30A.apr) - va30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {va30A.rate === (va30A.aprEstimated ? va30A.aprEstimated : va30A.apr) ||\r\n (va30A.aprEstimated ? va30A.aprEstimated : va30A.apr) === 0 ||\r\n (va30A.aprEstimated ? va30A.aprEstimated : va30A.apr) - va30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n \r\n ) : null}\r\n {/* VA Rates END */}\r\n\r\n {/* USDA Rates START */}\r\n {usdaTab === true &&\r\n themeLeadSource !== \"TEXAS-TV\" &&\r\n themeLeadSource !== \"LOSITE\" ? (\r\n \r\n {props.offertext !== \"\" &&\r\n !productLoading &&\r\n (usda15A.match || usda30A.match) ? (\r\n \r\n

\r\n {props.offertext}\r\n

\r\n \r\n ) : null}\r\n {!usda15A.match && !usda30A.match ?\r\n

We are unable to display any products at this time.

\r\n : null}\r\n {themeLeadSource !== \"BLCHMWEB\" && usda15A.match === true ? (\r\n \r\n \r\n

15 YR FIXED

\r\n {usda15A.rate === (usda15A.aprEstimated ? usda15A.aprEstimated : usda15A.apr) ||\r\n (usda15A.aprEstimated ? usda15A.aprEstimated : usda15A.apr) === 0 ||\r\n (usda15A.aprEstimated ? usda15A.aprEstimated : usda15A.apr) - usda15A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {usda15A.rate === (usda15A.aprEstimated ? usda15A.aprEstimated : usda15A.apr) ||\r\n (usda15A.aprEstimated ? usda15A.aprEstimated : usda15A.apr) == 0 ||\r\n (usda15A.aprEstimated ? usda15A.aprEstimated : usda15A.apr) - usda15A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n\r\n {usda30A.match === true ? (\r\n \r\n \r\n

30 YR FIXED

\r\n {usda30A.rate === (usda30A.aprEstimated ? usda30A.aprEstimated : usda30A.apr) ||\r\n (usda30A.aprEstimated ? usda30A.aprEstimated : usda30A.apr) === 0 ||\r\n (usda30A.aprEstimated ? usda30A.aprEstimated : usda30A.apr) - usda30A.rate <= 0.01 ? (\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 (Rate{\" \"}\r\n {usda30A.rate === (usda30A.aprEstimated ? usda30A.aprEstimated : usda30A.apr) ||\r\n (usda30A.aprEstimated ? usda30A.aprEstimated : usda30A.apr) === 0 ||\r\n (usda30A.aprEstimated ? usda30A.aprEstimated : usda30A.apr) - usda30A.rate <= 0.01\r\n ? \"&\"\r\n : \"/\"}{\" \"}\r\n APR)\r\n \r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n

\r\n \r\n {themeLeadSource === \"LOSITE\"\r\n ? \"Get Quote\"\r\n : \"Apply Now\"}\r\n \r\n

\r\n ) : null}\r\n \r\n \r\n ) : null}\r\n \r\n ) : null}\r\n {/* USDA Rates END */}\r\n \r\n
\r\n
\r\n \r\n {customRateQuote ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n\r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {customButton ? (\r\n \r\n {/* */}\r\n {\r\n setCustomButton(false);\r\n setShowDescription(false);\r\n setCustomRateQuote(true);\r\n setShow(false);\r\n }}\r\n >\r\n Customize Quote\r\n \r\n {/* */}\r\n \r\n ) : null}\r\n \r\n
\r\n
\r\n ) : null}\r\n\r\n \r\n {customButton || showDescription ? (\r\n \r\n {themeLeadSource !== \"BLCHMWEB\" ? (\r\n \r\n {/* Conventional */}\r\n
\r\n {handleLoanPurpose()}{\" \"}\r\n {themeLeadSource === \"NET049\" ||\r\n themeLeadSource === \"INBOUNDNONPC\"\r\n ? \"| No Subordinate Financing \"\r\n : null}\r\n | {defaultCreditScore} FICO\r\n
\r\n\r\n {showCvnRates && !loading ? (\r\n
\r\n The rates above are based on a loan amount of{\" \"}\r\n {\r\n \r\n }{\" \"}\r\n with an appraised value of{\" \"}\r\n {\r\n \r\n }\r\n .
\r\n Loans that do not meet these criteria may have a higher\r\n interest rate and Annual Percentage Rate (APR).{\" \"}\r\n {convLimit\r\n ? \" Maximum loan amount may vary for your county.\"\r\n : null}\r\n
\r\n Rates are subject to change without notice. Not all\r\n applicants will qualify. Interest Rate and APR are estimates as of \r\n {productCreationTime}.\r\n
\r\n ) : null}\r\n\r\n {/* FHA */}\r\n \r\n {handleLoanPurpose()}{\" \"}\r\n {themeLeadSource === \"NET049\" ||\r\n themeLeadSource === \"INBOUNDNONPC\"\r\n ? \"| No Subordinate Financing \"\r\n : null}\r\n | {defaultCreditScore} FICO\r\n \r\n\r\n {showFHARates &&\r\n !loading &&\r\n (fha15A.match === true || fha30A.match === true) ? (\r\n
\r\n The rates above are based on a loan amount of{\" \"}\r\n {\r\n \r\n }{\" \"}\r\n with an appraised value of{\" \"}\r\n {\r\n \r\n }\r\n .
\r\n Loans that do not meet these criteria may have a higher\r\n interest rate and Annual Percentage Rate (APR).{\" \"}\r\n {fhaLimit\r\n ? \" Maximum loan amount may vary for your county.\"\r\n : null}\r\n
\r\n Rates are subject to change without notice. Not all\r\n applicants will qualify. Interest Rate and APR are estimates as of \r\n {productCreationTime}.\r\n
\r\n ) : null}\r\n\r\n {/* VA */}\r\n \r\n {handleLoanPurpose()}{\" \"}\r\n {themeLeadSource === \"NET049\" ||\r\n themeLeadSource === \"INBOUNDNONPC\"\r\n ? \"| No Subordinate Financing \"\r\n : null}\r\n | {defaultCreditScore} FICO\r\n \r\n\r\n {showVARates &&\r\n !loading &&\r\n (va15A.match === true || va30A.match === true) ? (\r\n
\r\n The rates above are based on a loan amount of{\" \"}\r\n {\r\n \r\n }{\" \"}\r\n with an appraised value of{\" \"}\r\n {\r\n \r\n }\r\n .
\r\n Loans that do not meet these criteria may have a higher\r\n interest rate and Annual Percentage Rate (APR).{\" \"}\r\n {vaLimit\r\n ? \" Maximum loan amount may vary for your county.\"\r\n : null}\r\n
\r\n Rates are subject to change without notice. Not all\r\n applicants will qualify. Interest Rate and APR are estimates as of \r\n {productCreationTime}.\r\n
\r\n ) : null}\r\n\r\n {/* USDA */}\r\n \r\n {handleLoanPurpose()}{\" \"}\r\n {themeLeadSource === \"NET049\" ||\r\n themeLeadSource === \"INBOUNDNONPC\"\r\n ? \"| No Subordinate Financing \"\r\n : null}\r\n | {defaultCreditScore} FICO\r\n \r\n\r\n {showUsdaRates &&\r\n !loading &&\r\n (usda15A.match === true || usda30A.match === true) ? (\r\n
\r\n The rates above are based on a loan amount of{\" \"}\r\n {\r\n \r\n }{\" \"}\r\n with an appraised value of{\" \"}\r\n {\r\n \r\n }\r\n .
\r\n Loans that do not meet these criteria may have a higher\r\n interest rate and Annual Percentage Rate (APR).{\" \"}\r\n {usdaLimit\r\n ? \" Maximum loan amount may vary for your county.\"\r\n : null}\r\n
\r\n Rates are subject to change without notice. Not all\r\n applicants will qualify. Interest Rate and APR are estimates as of \r\n {productCreationTime}.\r\n
\r\n ) : null}\r\n\r\n {themeLeadSource === \"NET049\" ||\r\n themeLeadSource === \"INBOUNDNONPC\" ? (\r\n
\r\n {document.getElementsByClassName(\"taca_app\") &&\r\n document.getElementsByClassName(\"taca_app\").length === 1\r\n ? \"This Lender Credit is an exclusive offer to the members of TACA that register through this site. The Lender Credit shall be applied at the time of closing and cannot exceed the actual amount of the eligible fees and program guidelines. This offer is non-transferable and cannot be combined with any other offer.\"\r\n : \"This Lender Credit is an exclusive offer to doctors, nurses, law enforcement officers, firefighters, Emergency Medical Technicians (EMT) and US military personnel that register through this site. The Lender Credit shall be applied at the time of closing and cannot exceed the actual amount of the eligible fees and program guidelines. This offer is non-transferable and cannot be combined with any other offer.\"}\r\n
\r\n ) : null}\r\n \r\n ) : !loading && themeLeadSource === \"BLCHMWEB\" ? (\r\n \r\n
\r\n Rates as of {productCreationTime}. *\r\n setCHMModal(!showCHMModal)}>\r\n Rate Assumptions\r\n \r\n
\r\n \r\n ) : null}\r\n
\r\n ) : null}\r\n \r\n {/* The below modal is for the website https://capitalhomemortgage.com/ */}\r\n \r\n \r\n

Mortgage Rate Assumptions

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

* Rates shown assume a purchase transaction.

\r\n

\r\n * Annual Percentage Rate (APR) calculations assume a purchase\r\n transaction of a single-family, detached, owner-occupied primary\r\n residence; a loan-to-value ratio of less than 80% for conventional\r\n loans; a minimum FICO score of 740; and a loan amount of $375,000\r\n for conforming loans, unless otherwise specified.\r\n

\r\n

* Rates may be higher for loan amounts under $375,000.

\r\n

\r\n * Rates assume that borrower will escrow property tax and\r\n insurance.\r\n

\r\n

\r\n * Subject to underwriter approval; not all applicants will\r\n qualify.\r\n

\r\n

* Assumes - 30 Day Rate Lock.

\r\n

* Assumes - 1% Discount Cost.

\r\n

* Rates based on Texas property.

\r\n
\r\n
\r\n
\r\n :\r\n <>\r\n {showPricing ?\r\n
\r\n \r\n
\r\n Loading Today's Rates\r\n
\r\n
\r\n : \"\"}\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default Rates;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./App.css\";\r\nimport Rates from \"./modules/Rates\";\r\n\r\nfunction App(props) {\r\n const [loanOfficerId, setLoanOfficerId] = useState(\"\");\r\n const [offerText, setOfferText] = useState(\"\");\r\n const [promoCode, setPromoCode] = useState(\"\");\r\n\r\n useEffect(() => {\r\n //console.log(\"location: \" + window.location.search);\r\n const queryParams = new URLSearchParams(window.location.search);\r\n const loID = queryParams.get(\"loID\")\r\n ? queryParams.get(\"loID\")\r\n : props.loanOfficerId;\r\n const promoOfferText = queryParams.get(\"offerText\")\r\n ? queryParams.get(\"offerText\")\r\n : props.offerText;\r\n const promoCde = queryParams.get(\"promoCode\")\r\n ? queryParams.get(\"promoCode\")\r\n : props.promoCode;\r\n\r\n if (loID) {\r\n //console.log(\"loanOfficerId: \" + loID);\r\n setLoanOfficerId(loID);\r\n }\r\n if (promoOfferText) {\r\n setOfferText(promoOfferText);\r\n }\r\n if (promoCde) {\r\n setPromoCode(promoCde);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","const nameReducer = (state = {\r\n type: '',\r\n purchasePrice: '',\r\n downPaymentInUSDs: '',\r\n downPaymentInPercents: '',\r\n CreditScore: '',\r\n ShowButtons: true,\r\n propertyType: '',\r\n propertyUse: \"\",\r\n lowRates: undefined,\r\n lowRatesOption: undefined,\r\n estimatedValue: '',\r\n loanBalance: '',\r\n loanAmount: '',\r\n estimatedHomeValue: '',\r\n cashoutAmount: \"\",\r\n\tzipCode: \"\",\r\n\tcountryState: \"Select a State\",\r\n stateCounty: \"\",\r\n stateCountyName: \"\",\r\n\tveteran: \"\",\r\n stateList: \"\"\r\n}, action) => {\r\n switch (action.type) {\r\n case \"TYPESELECTED\":\r\n return { ...state, type: action.payload }\r\n break;\r\n case \"PURCHASEPRICEUPDATE\":\r\n return { ...state, purchasePrice: action.payload }\r\n break;\r\n case \"DOWNPAYMENTINUSDSUPDATE\":\r\n return { ...state, downPaymentInUSDs: action.payload }\r\n break;\r\n case \"DOWNPAYMENTINPERCENTSSUPDATE\":\r\n return { ...state, downPaymentInPercents: action.payload }\r\n break;\r\n case \"CREDITSCOREUPDATE\":\r\n return { ...state, CreditScore: action.payload }\r\n break;\r\n case \"SHOWBUTTONSUPDATE\":\r\n return { ...state, ShowButtons: action.payload }\r\n break;\r\n case \"PROPERTYTYPEUPDATE\":\r\n return { ...state, propertyType: action.payload }\r\n break;\r\n case \"PROPERTYUSEDUPDATE\":\r\n return { ...state, propertyUse: action.payload }\r\n break;\r\n case \"LOWRATESUPDATE\":\r\n return { ...state, lowRates: action.payload }\r\n break;\r\n case \"LOWRATESOPTION\":\r\n return { ...state, lowRatesOption: action.payload }\r\n break;\r\n case \"ESTIMATEDVALUEUPDATED\":\r\n return { ...state, estimatedValue: action.payload }\r\n break;\r\n case \"LOANBALANCEUPDATED\":\r\n return { ...state, loanBalance: action.payload }\r\n break;\r\n case \"CASHOUTAMOUNTUPDATED\":\r\n return { ...state, cashoutAmount: action.payload }\r\n break;\r\n case \"ESTIMATEDHOMEVALUEUPDATED\":\r\n return { ...state, estimatedHomeValue: action.payload }\r\n break;\r\n case \"LOANAMOUNTTOTALUPDATE\":\r\n return { ...state, loanAmount: action.payload }\r\n break;\r\n case \"ZIPCODEUPDATE\":\r\n return { ...state, zipCode: action.payload }\r\n break;\r\n case \"COUNTRYSTATEUPDATE\":\r\n return { ...state, countryState: action.payload }\r\n break;\r\n\t\tcase \"STATECOUNTYUPDATE\":\r\n return { ...state, stateCounty: action.payload }\r\n break;\r\n case \"STATECOUNTYNAMEUPDATE\":\r\n return { ...state, stateCountyName: action.payload }\r\n break;\r\n\t\tcase \"VETERANUPDATE\":\r\n return { ...state, veteran: action.payload }\r\n break;\r\n case \"STATELISTUPDATE\":\r\n return { ...state, stateList: action.payload }\r\n break;\r\n default:\r\n return state\r\n break;\r\n }\r\n\r\n}\r\nexport default nameReducer","import nameReducer from \"./nameReducer\"\r\nimport { combineReducers } from \"redux\"\r\nconst rootReducer = combineReducers({\r\n nameReducer\r\n})\r\nexport default rootReducer;","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport React from 'react';\r\nimport {createRoot} from 'react-dom/client';\r\nimport './index.css';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport App from './App';\r\nimport rootReducer from \"./store/reducers\";\r\nimport { legacy_createStore as createStore} from 'redux';\r\nimport { Provider } from \"react-redux\";\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nconst store = createStore(rootReducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__())\r\n\r\nconst root = createRoot(document.getElementById(\"root\"));\r\nroot.render(\r\n \r\n \r\n \r\n \r\n ,\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n/**\r\n * Uncomment above statment and comment below export statments to test UI and functionalities\r\n */\r\n/**\r\n * Export Component to use in another project.\r\n */\r\n// export { default as Rates } from \"./modules/Rates\";\r\n"],"sourceRoot":""}