{"version":3,"sources":["api/mydocs/api.js","api/matcher/api.js","img/logo_cribis2.png","api/myprofile/api.js","api/home/api.js","api/login/api.js","img/dun_bradstreet_large.png","i18n/en-US/index.js","i18n/en-US/common.js","i18n/en-US/exceptions.js","i18n/en-US/home.js","i18n/en-US/matcher.js","i18n/en-US/mydocs.js","i18n/en-US/statement.js","i18n/index.js","serviceWorker.js","utils/errors.js","config.js","utils/constants.js","utils/storage.js","api/helper.js","utils/index.js","api/fetch.js","api/myprofile/index.js","api/home/index.js","stores/HomeStore.js","api/login/index.js","stores/SettingStore.js","stores/UserStore.js","api/mydocs/index.js","stores/MyDocsStore.js","api/matcher/index.js","stores/MatchStotre.js","stores/StatementStore.js","stores/AppStore.js","components/Spinner/index.jsx","components/Header/index.jsx","components/Footer/index.jsx","components/Layout/index.jsx","components/Modal/index.jsx","containers/LogOn/index.jsx","components/Form/index.jsx","containers/MyProfile/FormBox.jsx","containers/MyProfile/Settings.jsx","containers/MyProfile/index.jsx","containers/Home/UploadForm.jsx","components/Pager/pagination.jsx","components/Pager/pagesize.jsx","components/Pager/index.jsx","components/Table/index.jsx","containers/Home/ManualBrowsingList.jsx","containers/Home/index.jsx","containers/Matcher/MatcherSubjectsList.jsx","containers/Matcher/common/types.js","containers/Matcher/SubjectDetails.jsx","containers/Matcher/CandidatesList.jsx","containers/Matcher/SubjectMatcher.jsx","containers/Matcher/MatcherHeader.jsx","containers/Matcher/index.jsx","components/Select/index.jsx","components/Filters/index.jsx","components/Filters/types.js","containers/MyDocs/common/types.js","containers/MyDocs/common/constants.js","containers/MyDocs/RequestElement.jsx","containers/MyDocs/index.jsx","containers/Statement/RequestsList.jsx","containers/Statement/SearchFilters.jsx","containers/Statement/index.jsx","App.jsx","index.jsx","router/index.js","router/routes.js"],"names":["module","exports","GetMyDocsMailBoxes","url","type","fake","GetMailBoxInputFile","GetMailBoxOutputFile","ManualBrowsing","RequireCreditAssessment","RestartProcessingMatchDocument","GetUsage","GetUsageResultFile","GetMailBox","GetMailBoxDetails","UpdateMailBoxDetails","UpdateMailBoxDetailsSkip","UpdateRemainingMailboxDetails","GetFamilyTree","GetSettings","UpdateUserInfo","SaveSettings","GetHomeMailBoxes","UploadMailBoxInputFile","Login","ResetPassword","ChangePassword","common","SiteName","Back","Browse","Continue","Search","Cancel","Ok","Undo","Confirm","Save","Delete","Edit","Add","Note","Select","Hide","Show","Duplicate","Reset","SelectAll","DeselectAll","DoYouWantToContinue","Yes","No","On","Off","Logout","UploadFile","PerPage","exludeOutOfBusiness","ExcludeBranches","ConfidenceCode","exceptions","Generic","Error","Message","home","DownloadArea","RequestsUpload","AutomaticMatch","AutomaticCA","CreditAssessment","UserManual","DownloadTemplate","Match","Fields","FileName","Status","Date","Matched","NotMatched","Total","EmptyLabel","UploadSuccess","UploadError","SuccessMessage","matcher","PageTitle","SubjectsList","MatcherModal","Close","EndBrowsing","EndBrowsingConfirm","EndBrowsingAlert","FileInput","RequestFields","Filename","InsertDate","SubjectFields","Id","Name","Address","Town","ZipCode","DebtorCode","BusinessId","CountryCode","Country","Duns","GURating","CandidateFields","Site","LegalStatus","Sic","NoCandidates","CloseTooltip","InputSubject","SkipMatch","SuggestedSubjects","mydocs","FileOutput","Estimated","ReSubmit","ReSubmitSuccess","ReSubmitSuccessMessage","RequireCA","RequireMB","Username","Type","InputRecords","ProcessedRecords","MatchedRecords","ExcludeOOB","statement","DownloadExcel","Filters","DateRange","DateFrom","DateTo","RequestDate","Price","i18n","use","initReactI18next","init","resources","en","lng","fallbackLng","keySeparator","interpolation","escapeValue","saveMissing","process","missingKeyHandler","lngs","ns","key","message","_","join","console","warn","Boolean","window","location","hostname","match","E","REACT_APP_ROOT","REACT_APP_APIURL","MOCK_SERVER","ViewsDictionary","RoutesDictionary","id","StoresDictionary","UserStore","SettingStore","HomeStore","MyDocsStore","MatchStore","StatementStore","ViewStoreConnect","StorageDictionary","Storage","store","data","a","Promise","resolve","reject","localForage","setItem","stringify","then","catch","error","read","getItem","value","parse","ApiHelper","generateHeaders","method","formData","headers","Headers","append","getServerUrl","fakeApi","fromProxy","config","userLogout","backUrl","STG","undefined","href","RT","encodeURIComponent","sessionExpired","hash","checkStatus","status","replace","parseResponse","res","clone","json","result","wait","ms","setTimeout","s2ab","s","buf","ArrayBuffer","length","view","Uint8Array","i","charCodeAt","downloadData","bytearray","mimeType","name","atob","blob","Blob","navigator","msSaveOrOpenBlob","document","createElement","body","appendChild","style","URL","createObjectURL","download","click","revokeObjectURL","removeChild","require","polyfill","initApi","initApiOptions","credentials","cache","bffCall","uniqueRes","callApi","Api","apiOption","apiConfig","isNil","options","fetch","uniqueId","v4","includes","response","ok","isSuccessful","settings","userInfo","surname","role","email","phone","phoneNumber","inputData","JSON","updateUserResult","isSuccess","GetMatchingList","inputFilters","matchList","map","mailBoxes","item","guid","fileName","filename","state","insertDate","moment","format","matchAmount","numMatched","noMatchAmount","numNotMatched","pagingInfo","SubmitMatchingDocument","T","defaultSetting","excludeBranches","confidenceCode","Modals","MatchTypes","loading","submit","list","modal","pageIndex","pageSize","pagesNumber","recordsTotalNumber","matchFileList","load","userProfile","closeError","runInAction","getMatchList","API","setLoading","setError","setModal","changePage","page","changePageSize","size","submitFile","success","fileData","FormData","file","uploadType","errorMessage","goToMyDocs","openMatching","requestId","decorate","observable","updateMatchList","action","loginInfo","changePasswordResult","changePassword","reset","getSettings","uploadConfCode","updateSettings","updateUserContacts","userContacts","authInfo","UserAPI","userName","oldPassword","currentPassword","newPassword","this","toJS","reduce","keys","acc","hasErrors","computed","getUserProfile","auth","change","temporaryPassword","sessionBackUrl","userValidation","passwordValidation","authenticationFailed","resetPasswordFailed","passwordFailed","loadingAuth","getUserInfo","decodeURIComponent","substring","indexOf","validateUserForm","inputForm","trim","user","password","validateChangePassword","confirmPassword","goToLogin","goToChangePassword","proceedAuth","userAuthentication","expiredPsw","authenticated","newAuth","resetPassword","userCode","emailTo","resultCode","userFullname","GetDocuments","shift","arr","drop","getLeftTime","timeString","days","idx","toNumber","split","dropRight","requestsList","codUser","requestName","deliveryTime","estimatedDeliveryTime","processing","typeLabel","processingString","processedAmount","processedRecords","totalAmount","numInput","errorAmount","numErr","excludeOOB","drillDowns","drillDownFilters","GetInputFile","GetOutputFile","RequireManualBrowsing","items","requestDate","price","isNumber","toFixed","Interval","refresh","rework","resubmit","FiltersMapping","width","label","requestFilters","start","end","refreshData","clearInterval","getRequests","setInterval","updateFilters","getQueryFilters","dateFrom","dateTo","filters","hidden","updatedFilters","mapValues","dd","opt","prevOption","find","code","isSelected","downloadFile","getInputFile","fileId","matchType","guidMailBox","reworkRequest","requestStatus","requestType","reSubmitRequest","mailBoxId","canRestartProcessingMatchDocument","Sites","S","H","B","GetMatchDetails","subjects","detailsList","subject","uid","debtorCode","address","city","postCode","countryCode","sic","hqName","hqCountry","hqAddress","hqTown","guName","guCountry","guAddress","guTown","duns","dunsNbr","guRatingNeeded","county","businessId","candidateList","candidate","companyName","town","cap","legalStatus","ctryCd","mtchGrd","nmePctGrd","brInd","GetMatchInfo","MatchSubject","SkipSubject","StopMatch","request","info","details","skip","stopMatch","familyTree","requestData","subjectsList","detailList","matchingSubject","getRequestInfo","getRequestDetails","select","openDetails","subjectId","push","matchSubject","selectedCandidate","skipSubject","closeMatching","getFamilyTree","LoaderTypes","defaultFilters","subtract","startOf","toISOString","initStore","resetFilters","downloadExcel","downloadExcelEnabled","configure","enforceActions","isolateGlobalState","AppStore","currentView","activeViewStore","loadingProfile","errorProfile","setLoadingProfile","updateUserProfile","authGuard","showView","viewName","params","storeKey","STConnet","stores","fromPromise","logout","mapStores","Spinner","inline","className","children","spinnerElement","BusyElement","block","UserButton","React","forwardRef","ref","onClick","e","Header","inject","ST","Navbar","Container","Brand","src","Logo","alt","Dropdown","onSelect","link","route","Toggle","as","Menu","Item","eventKey","Nav","Link","hasCacibUsageRole","Footer","Row","Col","sm","LogoDB","title","description","Page","boxed","fluid","StyledTitle","sepClass","BoxTitle","subtitle","SectionContainer","ModalBox","open","closeButton","onClose","withError","Modal","centered","show","onHide","aria-labelledby","backdrop","keyboard","Body","LogOn","observer","useState","userForm","setUserForm","onInputChange","aria-hidden","focusable","data-prefix","data-icon","xmlns","viewBox","fill","d","onSubmit","preventDefault","placeholder","onChange","target","disabled","Accordion","Collapse","PT","string","fileRef","useRef","t","useTranslation","display","uploadedFile","files","readOnly","current","showDropdowns","alwaysShowCalendars","onApply","event","picker","range","startDate","endDate","endOf","locale","applyLabel","cancelLabel","FormBox","fields","submitLabel","initForm","form","setForm","onSubmitForm","Form","field","Group","controlId","md","Label","Control","span","offset","Settings","onUpdate","num","InfoField","ContactForm","ResetPasswordForm","MyProfile","UploadForm","setType","setFile","setExludeOutOfBusiness","setExcludeBranches","setConfidenceCode","Check","custom","checked","Number","Pager","total","limit","pagerSections","Math","ceil","disableEllipsis","parentNode","First","Prev","Ellipsis","delta","activeSection","active","Next","Last","PageSize","selected","sizes","Pagination","nosize","sizeList","onChangePage","onChangeSize","TableHeaderCell","isRequired","colSpan","align","scope","TableCell","highlight","StyledTable","Table","props","PureComponent","HeaderCell","EmptyRow","Cell","ManualBrowsingList","empty","ManualBrowsingFields","Home","slice","MatcherSubjectsList","getStatusClass","IRequest","shape","ICandidate","SubjectDetails","withTranslation","lg","propTypes","CandidatesList","candidates","disableSelect","FamilyTree","detail","backgroundColor","marginRight","arrayOf","func","bool","SubjectMatcher","onSkip","loadingMatch","loadingSkip","loadingFamilyTree","position","zIndex","MatcherHeader","onStop","loadingAction","OverlayTrigger","placement","overlay","Tooltip","number","MatcherFields","FileMatcher","StyledSelect","noOptionsMessage","isMulti","classNamePrefix","closeMenuOnSelect","filter","filterOption","el","searchText","toLower","text","getOptionValue","option","getOptionLabel","count","FilterControl","oneOf","onChangeDrilldown","selectedOptions","updatedDrilldown","op","renderFilter","FiltersForm","toggleFilters","onReset","initFilters","initDrilldowns","activeFilters","setFilters","activeDrilldowns","setDrilldowns","useEffect","isEqual","onFilterChange","has","constant","FiltersBox","openSearch","setOpenSearch","in","RQTypes","MBR","AMT","ACA","CRA0","CRA1","0","1","2","3","4","RequestElement","loadingRefresh","loadingReSubmit","onDownload","onRework","onReSubmit","resubmitEnabled","requireCA","requireMB","MyDocs","enableRequestMB","errors","enableReSubmit","RequestsList","SearchFilters","defaultDateRange","downloadEnabled","dateRange","setDateRange","isValid","setValididy","xs","Statement","STStore","ViewMapper","VW","App","enabledHeader","View","viewbag","renderSelectedPage","renderCurrentView","RootStore","startRouter","router","notfound","setRoute","html5history","async","loadUserProfile","routeGuard","optionalConditions","fallbackRoute","Router","guard","next","routesMap","ReactDOM","render","getElementById","serviceWorker","ready","registration","unregister"],"mappings":"iFAAAA,EAAOC,QAAU,CACfC,mBAAoB,CAClBC,IAAK,4BACLC,KAAM,OACNC,MAAM,GAERC,oBAAqB,CACnBH,IAAK,6BACLC,KAAM,OACNC,MAAM,GAERE,qBAAsB,CACpBJ,IAAK,8BACLC,KAAM,OACNC,MAAM,GAERG,eAAgB,CACdL,IAAK,wBACLC,KAAM,OACNC,MAAM,GAERI,wBAAyB,CACvBN,IAAK,iCACLC,KAAM,OACNC,MAAM,GAERK,+BAAgC,CAC9BP,IAAK,wCACLC,KAAM,OACNC,MAAM,GAERM,SAAU,CACRR,IAAK,kBACLC,KAAM,OACNC,MAAM,GAERO,mBAAoB,CAClBT,IAAK,4BACLC,KAAM,OACNC,MAAM,K,kBCvCVL,EAAOC,QAAU,CACfY,WAAY,CACVV,IAAK,oBACLC,KAAM,OACNC,MAAM,GAERS,kBAAmB,CACjBX,IAAK,2BACLC,KAAM,OACNC,MAAM,GAERU,qBAAsB,CACpBZ,IAAK,8BACLC,KAAM,OACNC,MAAM,GAERW,yBAA0B,CACxBb,IAAK,kCACLC,KAAM,OACNC,MAAM,GAERY,8BAA+B,CAC7Bd,IAAK,uCACLC,KAAM,OACNC,MAAM,GAERa,cAAe,CACbf,IAAK,uBACLC,KAAM,OACNC,MAAM,K,oBC7BVL,EAAOC,QAAU,IAA0B,0C,kBCA3CD,EAAOC,QAAU,CACfkB,YAAa,CACXhB,IAAK,qBACLC,KAAM,MACNC,MAAM,GAERe,eAAgB,CACdjB,IAAK,0BACLC,KAAM,OACNC,MAAM,GAERgB,aAAc,CACZlB,IAAK,sBACLC,KAAM,OACNC,MAAM,K,kBCdVL,EAAOC,QAAU,CACfkB,YAAa,CACXhB,IAAK,qBACLC,KAAM,MACNC,MAAM,GAERiB,iBAAkB,CAChBnB,IAAK,0BACLC,KAAM,OACNC,MAAM,GAERkB,uBAAwB,CACtBpB,IAAK,gCACLC,KAAM,OACNC,MAAM,K,kBCdVL,EAAOC,QAAU,CACfuB,MAAO,CACLrB,IAAK,iBACLC,KAAM,OACNC,MAAM,GAERoB,cAAe,CACbtB,IAAK,yBACLC,KAAM,OACNC,MAAM,GAERqB,eAAgB,CACdvB,IAAK,0BACLC,KAAM,OACNC,MAAM,K,wCCdVL,EAAOC,QAAU,83V,i8ECQF,GACb0B,OCRa,CACbC,SAAU,4BACVC,KAAM,OACNC,OAAQ,SACRC,SAAU,WACVC,OAAQ,SACRC,OAAQ,SACRC,GAAI,KACJC,KAAM,OACNC,QAAS,UACTC,KAAM,OACNC,OAAQ,SACRC,KAAM,OACNC,IAAK,MACLC,KAAM,OACNC,OAAQ,SACRC,KAAM,OACNC,KAAM,OACNC,UAAW,YACXC,MAAO,QACPC,UAAW,aACXC,YAAa,eACbC,oBAAqB,2BACrBC,IAAK,MACLC,GAAI,KACJC,GAAI,KACJC,IAAK,MACLC,OAAQ,SACRC,WAAY,SACZC,QAAS,WACTC,oBAAqB,0BACrBC,gBAAiB,mBACjBC,eAAgB,mBDvBhBC,WETa,CACbC,QAAS,CACPC,MAAO,mBACPC,QAAS,+BFOXC,KGVa,CACbC,aAAc,gBACdC,eAAgB,kBAChB1D,eAAgB,kBAChB2D,eAAgB,kBAChBC,YAAa,8BACbC,iBAAkB,oBAClBC,WAAY,cACZC,iBAAkB,oBAClBC,MAAO,QACPC,OAAQ,CACNC,SAAU,kBACVC,OAAQ,SACRC,KAAM,eACNC,QAAS,mBACTC,WAAY,wBAEdC,MAAO,iBACPC,WAAY,sCACZC,cAAe,oBACfC,YAAa,eACbC,eAAgB,gCHVhBC,QIXa,CACbC,UAAW,eACXC,aAAc,yBACdP,MAAO,iBACPQ,aAAc,gBACdC,MAAO,QACPC,YAAa,eACbC,mBAAoB,yCACpBC,iBAAkB,0DAClBC,UAAW,aACXC,cAAe,CACbC,SAAU,OACVnB,OAAQ,SACRoB,WAAY,eACZlB,QAAS,mBACTC,WAAY,wBAEdkB,cAAe,CACbC,GAAI,KACJC,KAAM,OACNC,QAAS,UACTC,KAAM,OACNC,QAAS,WACTC,WAAY,cACZC,WAAY,cACZC,YAAa,eACbC,QAAS,SACTC,KAAM,OACNC,SAAU,oBAEZC,gBAAiB,CACfjD,eAAgB,aAChBwC,QAAS,UACTC,KAAM,OACNC,QAAS,WACTQ,KAAM,OACNC,YAAa,SACbL,QAAS,UACTM,IAAK,OAEPC,aAAc,iBACdtE,OAAQ,SACRuE,aAAc,iBACdC,aAAc,gBACdC,UAAW,aACXC,kBAAmB,sBJjCnBC,OKZa,CACbhC,UAAW,SACXN,MAAO,iBACPa,UAAW,aACX0B,WAAY,cACZC,UAAW,iBACXC,SAAU,YACVC,gBAAiB,UACjBC,uBAAwB,sCACxBC,UAAW,4BACXC,UAAW,wBACX/B,cAAe,CACbE,WAAY,eACZ8B,SAAU,OACVlD,OAAQ,SACRmD,KAAM,OACNC,aAAc,gBACdC,iBAAkB,oBAClBC,eAAgB,mBAChBtE,eAAgB,kBAChBuE,WAAY,0BACZxE,gBAAiB,qBLRnByE,UMba,CACb9C,UAAW,oBACXN,MAAO,iBACPC,WAAY,wCACZoD,cAAe,iBACfC,QAAS,CACPC,UAAW,yBACXC,SAAU,YACVC,OAAQ,WAEV/D,OAAQ,CACNqD,KAAM,OACNpB,KAAM,OACND,QAAS,UACTgC,YAAa,eACbC,MAAO,oBCTXC,IAAKC,IAAIC,KAAkBC,KAAK,CAC9BC,UAAW,CAAEC,MACbC,IAAK,KACLC,YAAa,KACbC,aAAc,IACdC,cAAe,CACbC,aAAa,GAEfC,aAVYC,EAWZC,kBAAmB,SAACC,EAAMC,EAAIC,GAC5B,IAAMC,EAAO,+BAA2BF,EAA3B,YAAiCC,EAAjC,qCAAiEE,IAAEC,KAAKL,EAAM,MAKzFM,QAAQC,KAAKJ,MAMJjB,EAAf,ECfoBsB,QACW,cAA7BC,OAAOC,SAASC,UAEe,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAASC,MAAM,2D,wGClBtBC,EACM,2CADNA,EAEK,kB,ECF2Bf,mHAG9B,GACbgB,e,EAJMA,gBAI4B,GAClCC,iB,EALsBA,kBAKgB,QACtCC,YAAa,yBCNFC,EACJ,QADIA,EAEI,gBAFJA,EAGK,iBAHLA,EAIA,YAJAA,EAKL,OALKA,EAME,cANFA,EAOH,SAPGA,EAQA,YAGAC,EACJ,gBADIA,EAEI,wBAFJA,EAGK,yBAHLA,EAIA,oBAJAA,EAKL,aALKA,EAMH,iBANGA,EAOE,SAAAC,GAAE,0BAAiBA,IAPrBD,EAQA,oBAGAE,EAAmB,CAC9BC,UAAW,YACXC,aAAc,eACdC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,eAAgB,kBAGLC,GAAgB,mBAC1BV,EAAwBG,EAAiBC,WADf,cAE1BJ,EAA4BG,EAAiBE,cAFnB,cAG1BL,EAAuBG,EAAiBG,WAHd,cAI1BN,EAA8BG,EAAiBK,YAJrB,cAK1BR,EAAyBG,EAAiBI,aALhB,cAM1BP,EAA4BG,EAAiBM,gBANnB,GAShBE,EACD,S,2BCtBCC,EAAb,kCAAaA,EACJC,M,uCAAQ,WAAO5B,EAAK6B,GAAZ,SAAAC,EAAA,+EACb,IAAIC,SAAQ,SAACC,EAASC,GACpBC,IACGC,QAAQnC,EAAKoC,YAAUP,IACvBQ,MAAK,kBAAML,EAAQhC,MACnBsC,OAAM,SAAAC,GAAK,OAAIN,EAAOM,UALd,2C,wDADJZ,EASJa,K,uCAAO,WAAMxC,GAAN,SAAA8B,EAAA,+EACZ,IAAIC,SAAQ,SAACC,EAASC,GACpBC,IACGO,QAAQzC,GACRqC,MAAK,SAAAK,GAAK,OAAIV,EAAQU,EAAQC,YAAMD,GAAS,SAC7CJ,OAAM,SAAAC,GAAK,OAAIN,EAAOM,UALf,2C,sDCtBT,IAAMK,EAAb,kCAAaA,EACJC,gBAAkB,SAACC,EAAQC,GAChC,IAAMC,EAAU,IAAIC,QAKpB,OAJAD,EAAQE,OAAO,SAAU,YACzBF,EAAQE,OAAO,gBAAiB,YACjB,SAAXJ,GAAsBC,GAAUC,EAAQE,OAAO,eAAgB,mCAE5DF,GAPEJ,EAUJO,aAAe,SAACC,EAASC,GAC9B,OAAID,EAAgBE,EAAOxC,YACvBuC,EAAiB,GAAN,OAAUC,EAAO1C,eAAjB,YAAmC0C,EAAOzC,kBAClDyC,EAAO1C,gBAbLgC,EAgBJW,W,uCAAa,WAAMC,GAAN,SAAA1B,EAAA,sEACZH,EAAQC,MAAM6B,OAAcC,GADhB,OAElBnD,OAAOC,SAASmD,KAAhB,WAA2BC,GAA3B,OAAsCJ,GAAO,mBAAgBK,mBAAmBL,KAF9D,2C,sDAhBTZ,EAqBJkB,eAAiB,WAItB,MAFA1D,QAAQC,KAAK,oBACbuC,EAAUW,WAAWhD,OAAOC,SAASuD,MAC/B,IAAI5J,MAAMwG,IAzBPiC,EA4BJoB,YAAc,SAACxN,EAAKyN,EAAQnB,GAEjC,GADe,MAAXmB,GAAgBrB,EAAUkB,iBAC1BG,GAAU,IAAK,MAAM,IAAI9J,MAAJ,4BAA+B8J,EAA/B,cAA2CnB,EAA3C,cAAuD5C,IAAEgE,QAAQ1N,EAAK,SAAU,MACzG,GAAIyN,GAAU,IAAK,MAAM,IAAI9J,MAAJ,4BAA+B8J,EAA/B,cAA2CnB,EAA3C,cAAuD5C,IAAEgE,QAAQ1N,EAAK,SAAU,MAEzG,OAAO,GAjCEoM,EAoCJuB,c,uCAAgB,WAAMC,GAAN,eAAAtC,EAAA,+EAEEsC,EAAIC,QAAQC,OAFd,cAEbC,EAFa,yBAGZA,GAHY,yDAKZ,MALY,yD,8ECYZC,GAAO,SAAAC,GAClB,OAAO,IAAI1C,SAAQ,SAAAC,GACjB0C,YAAW,WACT1C,GAAQ,KACPyC,OAIA,SAASE,GAAKC,GAInB,IAHA,IAAMC,EAAM,IAAIC,YAAYF,EAAEG,QACxBC,EAAO,IAAIC,WAAWJ,GAEnBK,EAAI,EAAGA,IAAMN,EAAEG,OAAQG,GAAK,EAAGF,EAAKE,GAAuB,IAAlBN,EAAEO,WAAWD,GAC/D,OAAOL,EAGF,IAAMO,GAAY,uCAAG,WAAOC,EAAWC,EAAUC,GAA5B,QAAAzD,EAAA,WAAAA,EAAA,yDACpBD,EAAO8C,GAAKa,KAAKH,IACjBI,EAAO,IAAIC,KAAK,CAAC7D,GAAO,CAC5BpL,KAAM6O,KAGJ/E,OAAOoF,YAAapF,OAAOoF,UAAUC,iBANf,gBAOxBrF,OAAOoF,UAAUC,iBAAiBH,EAAMF,GAPhB,8BASlBzD,EAAI+D,SAASC,cAAc,KACjCD,SAASE,KAAKC,YAAYlE,GAC1BA,EAAEmE,MAAQ,gBACJzP,EAAM0P,IAAIC,gBAAgBV,GAChC3D,EAAE6B,KAAOnN,EACTsL,EAAEsE,SAAWb,EACbzD,EAAEuE,QAfsB,UAgBlB7B,GAAK,MAhBa,QAiBxB0B,IAAII,gBAAgB9P,GACpBqP,SAASE,KAAKQ,YAAYzE,GAlBF,4CAAH,0DChEzB0E,EAAQ,KAAeC,WAEvB,IAAMC,GAAU,CACdlQ,IAAK,GACLC,KAAM,MACNC,MAAM,GAGFiQ,GAAiB,CACrBC,YAAa,UACbC,MAAO,WACPC,SAAS,EACTC,WAAW,EACXhE,UAAU,EACVgD,UAAMrC,GAGKsD,GAAO,uCAAG,oDAAAlF,EAAA,yDAAOmF,EAAP,+BAAaP,GAASQ,EAAtB,+BAAkCP,GAAlC,SAEdM,GAAQA,EAAIzQ,IAFE,sBAES,IAAI2D,MAAM,eAFnB,cAIbgN,EAAY,CAChBrE,OAAQmE,EAAIxQ,MAAQiQ,GAAQjQ,KAC5BqQ,QAAS5G,IAAEkH,MAAMF,EAAUJ,SAAWH,GAAeG,QAAUI,EAAUJ,QACzEC,UAAWG,EAAUH,WAAaJ,GAAeI,WAG7CM,EAAU,CACdrE,QAASJ,EAAUC,gBAAgBsE,EAAUrE,OAAQoE,EAAUnE,UAC/DD,OAAQqE,EAAUrE,OAClB8D,YAAaM,EAAUN,aAAeD,GAAeC,YACrDC,MAAOK,EAAUL,OAASF,GAAeE,MACzCd,KAAMmB,EAAUnB,MAAQY,GAAeZ,MAGnCvP,EAlBa,UAkBJoM,EAAUO,aAAa8D,EAAIvQ,KAAMyQ,EAAUL,UAlBvC,OAkBkDG,EAAIzQ,KAlBtD,UAmBD8Q,MAAM9Q,EAAK6Q,GAAS/E,OAAM,SAAAC,GAC1C,MAAM,IAAIpI,MAAMoI,MApBC,WAmBb6B,EAnBa,OAuBHxB,EAAUoB,YAAYxN,EAAK4N,EAAIH,OAAQoD,EAAQvE,QAvB5C,0CAwBE,MAxBF,yBA0BEF,EAAUuB,cAAcC,GA1B1B,WA0BbG,EA1Ba,8BA4BA,IAAIpK,MAAMwG,GA5BV,eA6Bf4D,GAAU4C,EAAUJ,YAAWxC,EAAOgD,SAAWC,gBA7BlC,kBA+BZjD,GA/BY,sCAiCfrE,IAAEuH,SAAS,KAAMxH,QAASU,GAjCX,kCAiCoC6D,GAAK,KAjCzC,gCAkCdpE,QAAQmC,MAAR,MAlCc,cAmCb,IAAIpI,MAAM,KAAM8F,SAnCH,0DAAH,qDCpBPzI,GAAW,uCAAG,4BAAAsK,EAAA,sEACFkF,GAAQC,IAAIzP,aAAa8K,OAAM,SAAAC,GACpD,MAAM,IAAIpI,MAAMoI,MAFO,cACnBmF,EADmB,yBAIlB,CACLC,GAAID,EAASE,aACbC,SAAUH,EAASG,SACnBC,SAAU,CACRvC,KAAMmC,EAASnC,KACfwC,QAASL,EAASK,QAClBC,KAAMN,EAASM,KACfC,MAAOP,EAASO,MAChBC,MAAOR,EAASS,eAZK,2CAAH,qDAiBX1Q,GAAc,uCAAG,WAAM2Q,GAAN,eAAAtG,EAAA,sEACLkF,GAAQC,IAAIxP,eAAgB,CACjDqP,SAAS,EACTf,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MALU,cACtBmF,EADsB,yBAOrB,CACLC,GAAID,EAASY,kBAAoBZ,EAASY,iBAAiBC,YARjC,2CAAH,sDAYd7Q,GAAY,uCAAG,WAAM0Q,GAAN,eAAAtG,EAAA,sEACHkF,GAAQC,IAAIvP,aAAc,CAC/CqO,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJQ,cACpBmF,EADoB,yBAMnB,CACLC,GAAID,EAASE,eAPW,2CAAH,sD,qBC3BZY,GAAe,uCAAG,WAAMC,GAAN,eAAA3G,EAAA,sEACNkF,GAAQC,KAAItP,iBAAkB,CACnDoO,KAAMsC,KAAKjG,UAAUqG,KACpBnG,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJW,cACvBmF,EADuB,yBAMtB,CACLC,GAAID,EAASE,aACbc,UAAWxI,IAAEyI,IAAIjB,EAASkB,WAAW,SAAAC,GAAI,MAAK,CAC5C5H,GAAI4H,EAAKC,KACTC,SAAUF,EAAKG,SACf/E,OAAQ4E,EAAKI,MACbC,WAAYC,KAAON,EAAKK,YAAYE,OAAO,QAC3CC,YAAaR,EAAKS,WAClBC,cAAeV,EAAKW,kBAEtBC,WAAY/B,EAAS+B,aAhBM,2CAAH,sDAoBfC,GAAsB,uCAAG,WAAMtB,GAAN,eAAAtG,EAAA,sEACbkF,GAAQC,KAAIrP,uBAAwB,CACzDmO,KAAMqC,EACNrF,UAAU,IACTT,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MALkB,cAC9BmF,EAD8B,yBAO7BA,GAP6B,2CAAH,sDAUtBlQ,GAAW,uCAAG,4BAAAsK,EAAA,sEACFkF,GAAQC,KAAIzP,aAAa8K,OAAM,SAAAC,GACpD,MAAM,IAAIpI,MAAMoI,MAFO,cACnBmF,EADmB,yBAIlBA,EAASG,UAJS,2CAAH,qDC/BlB8B,GACI,SADJA,GAEE,OAGFC,GAAiB,CAAE9P,qBAAqB,EAAM+P,iBAAiB,EAAMC,eAAgB,GAE9EC,GACJ,OADIA,GAEF,UAFEA,GAGJ,QAGIC,GACN,EADMA,GAEN,EAFMA,GAGN,EAGM3I,GAAb,iDACE4I,QAAU,CACRC,QAAQ,EACRC,MAAM,GAHV,KAME5H,MAAQ,CACNtC,QAAS,GACTiK,QAAQ,EACRC,MAAM,GATV,KAYEC,MAAQL,GAZV,KAcEN,WAAa,CACXY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,GAlBxB,KAqBEC,cAAgB,GArBlB,KAuBE5C,SAAW+B,GAvBb,KAyBEc,KAzBF,uCAyBS,uBAAA5I,EAAA,+DAAS6I,YACd,EAAKC,aACLC,aAAY,WACV,EAAKJ,cAAgB,GACrB,EAAKhB,WAAa,CAChBY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,MARnB,SAWC,EAAKM,eAXN,uBAYiBC,KAZjB,OAYL,EAAKlD,SAZA,kDAzBT,2DAwCEmD,WAAa,SAACvU,EAAMwN,GAClB,EAAKgG,QAAQxT,GAAQwN,GAzCzB,KA4CEgH,SAAW,SAACxU,EAAMwN,EAAQhE,GACpBA,IAAS,EAAKsC,MAAMtC,QAAUA,GAClC,EAAKsC,MAAM9L,GAAQwN,GA9CvB,KAiDE2G,WAAa,WACX,EAAKrI,MAAL,eACK,EAAKA,MADV,CAEE2H,QAAQ,EACRC,MAAM,KArDZ,KAyDEe,SAAW,SAAAzU,GAEJ,EAAK2T,MADL3T,GAAmBsT,IA1D5B,KA8DEe,aA9DF,sBA8DiB,4BAAAhJ,EAAA,6DACb,EAAKkJ,WAAWrB,IAAQ,GADX,kBAGUoB,GAAoB,CACvCtB,WAAY,CACVY,UAAW,EAAKZ,WAAWY,UAC3BC,SAAU,EAAKb,WAAWa,YANnB,UAGL/F,EAHK,6BASQ,IAAIpK,MATZ,OAUX0Q,aAAY,WACV,EAAKJ,cAAgBlG,EAAOmE,UAC5B,EAAKe,WAAL,eAAuB,EAAKA,WAA5B,GAA2ClF,EAAOkF,eAZzC,kDAeX,EAAKwB,SAAStB,IAAQ,GAfX,QAiBb,EAAKqB,WAAWrB,IAAQ,GAjBX,0DA9DjB,KAkFEwB,WAAa,SAAAC,GACX,EAAK3B,WAAWY,UAAYe,EAC5B,EAAKN,gBApFT,KAuFEO,eAAiB,SAAAC,GACf,EAAK7B,WAAL,eACK,EAAKA,WADV,CAEEY,UAAW,EACXC,SAAUgB,IAEZ,EAAKR,gBA7FT,KAgGES,WAhGF,uCAgGe,WAAMnD,GAAN,mBAAAtG,EAAA,6DACX,EAAKkJ,WAAWrB,IAAU,GACtB6B,GAAU,EAFH,UAIHC,EAAW,IAAIC,UACZxI,OAAO,OAAQkF,EAAUuD,MAClCF,EAASvI,OAAO,aAAckF,EAAUwD,YACxCH,EAASvI,OAAO,uBAAwBkF,EAAUtO,qBAClD2R,EAASvI,OAAO,kBAAmBkF,EAAUyB,iBAC7C4B,EAASvI,OAAO,iBAAkBkF,EAAU0B,gBATnC,UAUYiB,GAA2BU,GAAUnJ,OAAM,WAC9D,EAAK2I,SAAStB,IAAU,MAXjB,WAUHpF,EAVG,OAaTiH,EAAUjH,GAAUA,EAAOqD,aACtBrD,EAdI,uBAcU,IAAIpK,MAdd,QAeJoK,EAAOqD,aAGL,EAAKsD,SAASnB,KAFnB,EAAKkB,SAAS,UAAW1G,EAAOsH,cAChC,EAAKX,SAASnB,KAjBP,kDAoBT,EAAKkB,SAAStB,IAAU,EAAM,6CApBrB,eAsBX,EAAKqB,WAAWrB,IAAU,GAtBf,kBAuBJ6B,GAvBI,0DAhGf,2DA0HEM,WAAa,WACX,EAAKZ,SAASnB,IACdxJ,OAAOC,SAASmD,KAAhB,WAA2BC,IA5H/B,KA+HEmI,aAAe,SAAAC,GACbzL,OAAOC,SAASmD,KAAhB,WAA2BC,EAAeoI,MAI9CC,YAAS5K,GAAW,CAClB4I,QAASiC,IACT3J,MAAO2J,IACP9B,MAAO8B,IACPzC,WAAYyC,IACZzB,cAAeyB,IACfrE,SAAUqE,IACVC,gBAAiBC,IACjBpB,WAAYoB,IACZnB,SAAUmB,IACVxB,WAAYwB,IACZlB,SAAUkB,IACVjB,WAAYiB,IACZf,eAAgBe,IAChBb,WAAYa,M,yBCtKDvU,GAAK,uCAAG,WAAMwU,GAAN,eAAAvK,EAAA,sEACIkF,GAAQC,KAAIpP,MAAO,CACxCiP,SAAS,EACTf,KAAMsC,KAAKjG,UAAUiK,KACpB/J,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MALC,cACbmF,EADa,yBAOZA,GAPY,2CAAH,sDAUL5P,GAAa,uCAAG,WAAMgQ,GAAN,eAAAhG,EAAA,sEACJkF,GAAQC,KAAInP,cAAe,CAChDgP,SAAS,EACTf,KAAMsC,KAAKjG,UAAU0F,KACpBxF,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MALS,cACrBmF,EADqB,yBAOpBA,GAPoB,2CAAH,sDAUb3P,GAAc,uCAAG,WAAMqQ,GAAN,eAAAtG,EAAA,sEACLkF,GAAQC,KAAIlP,eAAgB,CACjD+O,SAAS,EACTf,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MALU,cACtBmF,EADsB,yBAOrB,CACLC,GAAID,EAAS4E,sBAAwB5E,EAAS4E,qBAAqB/D,YARzC,2CAAH,sDChBrBoB,GACM,WADNA,GAEM,WAFNA,GAGY,iBAGLI,GACJ,OADIA,GAGK,iBAHLA,GAIE,cAJFA,GAKM,kBAGN3I,GAAb,4DACE6I,QAAU,CACRpC,UAAU,EACVC,UAAU,EACVyE,gBAAgB,GAJpB,KAOEhK,MAAQ,CACNtC,QAAS,GACT4H,UAAU,EACVC,UAAU,EACVyE,gBAAgB,GAXpB,KAcEzE,SAAW,KAdb,KAgBEgC,eAAiB,GAhBnB,KAkBEM,MAAQL,GAlBV,KAoBEW,KApBF,uCAoBS,6BAAA5I,EAAA,6DAAS6I,EAAT,EAASA,YACd,EAAK6B,QACL3B,aAAY,WACV,EAAK/C,SAAL,eAAqB,EAAKA,SAA1B,GAAuC6C,MAHpC,SAKC,EAAK8B,cALN,2CApBT,2DA4BED,MAAQ,WACN,EAAKjK,MAAQ,CACXtC,QAAS,GACT4H,UAAU,EACVC,UAAU,EACVyE,gBAAgB,IAjCtB,KAqCEvB,WAAa,SAACvU,EAAMwN,GAClB,EAAKgG,QAAQxT,GAAQwN,GAtCzB,KAyCEgH,SAAW,SAACxU,EAAMwN,EAAQhE,GACpBA,IAAS,EAAKsC,MAAMtC,QAAUA,GAClC,EAAKsC,MAAM9L,GAAQwN,GA3CvB,KA8CEiH,SAAW,SAAAzU,GAEJ,EAAK2T,MADL3T,GAAmBsT,IA/C5B,KAmDE2C,eAAiB,SAAAhK,GACf,EAAKoH,eAAiBpH,GApD1B,KAuDE+J,YAvDF,sBAuDgB,4BAAA3K,EAAA,+EAEWiJ,KAFX,OAEJxG,EAFI,OAGV,EAAKmI,eAAenI,EAAOsD,SAASiC,gBAH1B,gDAKV,EAAKmB,SAAStB,IAAY,GALhB,yDAvDhB,KAgEEgD,eAhEF,sBAgEmB,sBAAA7K,EAAA,6DACf,EAAKkJ,WAAWrB,IAAY,GADb,kBAGQoB,GAAiB,CAAEjB,eAAgB,EAAKA,iBAHhD,iBAIDnC,GAJC,sBAIS,IAAIxN,MAJb,OAKb,EAAK+Q,SAASnB,IALD,kDAOb,EAAKkB,SAAStB,IAAY,GAPb,QASf,EAAKqB,WAAWrB,IAAY,GATb,0DAhEnB,KA4EEiD,mBA5EF,uCA4EuB,WAAMC,GAAN,SAAA/K,EAAA,6DACnB,EAAKkJ,WAAWrB,IAAY,GADT,kBAGIoB,GAAmB,CACtC9C,MAAO4E,EAAa5E,MACpBC,MAAO2E,EAAa3E,QALL,iBAOLP,GAPK,sBAOK,IAAIxN,MAPT,cAQjB,EAAK8Q,SAAStB,IAAY,GART,UASXhI,EAAQC,MAAM6B,EAAd,eACD,EAAKqE,SADJ,CAEJ+E,aAAa,eAAM,EAAK/E,SAAS+E,aAArB,GAAsCA,MAXnC,QAajB,EAAK3B,SAASnB,IAbG,kDAejB,EAAKkB,SAAStB,IAAY,GAfT,QAiBnB,EAAKqB,WAAWrB,IAAY,GAjBT,0DA5EvB,2DAgGE4C,eAhGF,uCAgGmB,WAAMO,GAAN,SAAAhL,EAAA,6DACf,EAAKkJ,WAAWrB,IAAkB,GADnB,kBAGQoD,GAAuB,CAC1CC,SAAU,EAAKlF,SAASkF,SACxBC,YAAaH,EAASI,gBACtBC,YAAaL,EAASK,cANX,iBAQDxF,GARC,sBAQS,IAAIxN,MARb,OASb,EAAK8Q,SAAStB,IAAkB,GAChC,EAAKuB,SAASnB,IAVD,kDAYb,EAAKkB,SAAStB,IAAkB,GAZnB,QAcf,EAAKqB,WAAWrB,IAAkB,GAdnB,0DAhGnB,+GAkHI,OAAOyD,KAAKtF,UAAYuF,YAAKD,KAAKtF,SAAS+E,gBAlH/C,gCAqHmB,IAAD,OACd,OAAO3M,IAAEoN,OAAOpN,IAAEqN,KAAKH,KAAK7K,QAAQ,SAACiL,EAAKxN,GAAN,OAAcwN,GAAgB,YAARxN,GAAoB,EAAKuC,MAAMvC,MAAe,OAtH5G,KA0HAiM,YAAS7K,GAAc,CACrB6I,QAASiC,IACT3J,MAAO2J,IACPpE,SAAUoE,IACVpC,eAAgBoC,IAChB9B,MAAO8B,IACPlB,WAAYoB,IACZnB,SAAUmB,IACVlB,SAAUkB,IACVM,eAAgBN,IAChBqB,UAAWC,MCjJb,IAAM/D,GACE,OADFA,GAEG,QAFHA,GAGI,SAGGI,GACJ,QADIA,GAEG,eAGH5I,GAAb,WAiCE,WAAYwM,GAAiB,IAAD,gCAhC5BpL,MAAQ,CACNqL,MAAM,EACNpB,OAAO,EACPqB,QAAQ,GA6BkB,KA1B5B5D,QAAU,CACR2D,MAAM,EACNpB,OAAO,EACPqB,QAAQ,GAuBkB,KApB5B/F,SAAW,KAoBiB,KAlB5BgG,kBAAoB,KAkBQ,KAhB5BC,eAAiB,KAgBW,KAd5BC,gBAAiB,EAcW,KAZ5BC,oBAAqB,EAYO,KAV5BC,sBAAuB,EAUK,KAR5BC,qBAAsB,EAQM,KAN5BC,gBAAiB,EAMW,KAJ5BC,aAAc,EAIc,KAF5BjE,MAAQL,GAEoB,KAI5BW,KAJ4B,sBAIrB,sBAAA5I,EAAA,sEACC,EAAKwM,cADN,OAEL,EAAKP,eAAiB7N,IAAEuH,SAASlH,OAAOC,SAASuD,KAAM,WACnDwK,mBAAmBhO,OAAOC,SAASuD,KAAKyK,UAAUjO,OAAOC,SAASuD,KAAK0K,QAAQ,KAAO,IACtF,KAJC,2CAJqB,KAW5BH,YAX4B,sBAWd,4BAAAxM,EAAA,sEACWH,EAAQa,KAAKiB,GADxB,OACNqE,EADM,OAEZ+C,aAAY,WACV,EAAK/C,SAAWA,GAAY,QAHlB,2CAXc,KAkB5BmD,SAAW,SAACxU,EAAMwN,GAChB,EAAK1B,MAAM9L,GAAQwN,GAnBO,KAsB5B+G,WAAa,SAACvU,EAAMwN,GAClB,EAAKgG,QAAQxT,GAAQwN,GAvBK,KA0B5BiH,SAAW,SAAAzU,GAEJ,EAAK2T,MADL3T,GAAmBsT,IA3BE,KA+B5B2E,iBAAmB,SAAAC,GACjB,EAAKX,eAA4C,KAA3B9N,IAAE0O,KAAKD,EAAUE,OAA+C,KAA/B3O,IAAE0O,KAAKD,EAAUG,WAhC9C,KAmC5BC,uBAAyB,SAAAJ,GACvB,EAAKV,mBAC+B,KAAlC/N,IAAE0O,KAAKD,EAAUxB,cACqB,KAAtCjN,IAAE0O,KAAKD,EAAUK,kBACjBL,EAAUxB,cAAgBwB,EAAUK,iBAvCZ,KA0C5BC,UAAY,WACV1O,OAAOC,SAASmD,KAAhB,WAA2BC,GAC3B,EAAKsH,SAASnB,IACd,EAAKoE,qBAAsB,GA7CD,KAgD5Be,mBAAqB,SAAApB,GACnB,EAAKA,kBAAoBA,EACzBvN,OAAOC,SAASmD,KAAhB,WAA2BC,IAlDD,KAqD5BuL,YAAc,WACZ,EAAKxB,iBACD,EAAKI,gBACPxN,OAAOC,SAASmD,KAAO,EAAKoK,eAC5B,EAAKA,eAAiB,MACjBxN,OAAOC,SAASmD,KAAhB,WAA2BC,IA1DR,KA6D5BwL,mBA7D4B,uCA6DP,WAAMT,GAAN,eAAA7M,EAAA,yDACnB,EAAK4M,iBAAiBC,GACjB,EAAKX,eAFS,wDAGnB,EAAKhD,WAAWrB,IAAQ,GAHL,kBAKIoB,GAAU,CAC7BiC,SAAU2B,EAAUE,KACpBC,SAAUH,EAAUG,WAPL,cAKXvK,EALW,iBASX5C,EAAQC,MAAM6B,EAAcc,GATjB,QAUjBsG,aAAY,WACV,EAAK/C,SAAWvD,KAEdA,EAAO8K,WACT,EAAKH,mBAAmBP,EAAUG,WAElCjE,aAAY,WACV,EAAKqD,sBAAwB,EAAKoB,iBAEhC,EAAKA,eAAe,EAAKH,eAnBd,kDAsBjB,EAAKlE,SAAStB,IAAQ,GAtBL,QAwBnB,EAAKqB,WAAWrB,IAAQ,GAxBL,0DA7DO,2DAwF5B4C,eAxF4B,uCAwFX,WAAMoC,GAAN,eAAA7M,EAAA,yDACf,EAAKiN,uBAAuBJ,GACvB,EAAKV,mBAFK,uBAGbpD,aAAY,WACV,EAAKuD,gBAAiB,KAJX,iCAQf,EAAKpD,WAAWrB,IAAU,GARX,SAUbkB,aAAY,WACV,EAAKuD,gBAAiB,KAElBmB,EAAU,CACdV,KAAM,EAAK/G,SAASkF,SACpB8B,SAAUH,EAAUxB,aAfT,UAiBQpC,GAAmB,CACtCiC,SAAUuC,EAAQV,KAClB5B,YAAa,EAAKa,kBAClBX,YAAaoC,EAAQT,WApBV,kBAsBDnH,GAtBC,uBAsBS,IAAIxN,MAtBb,yBAuBPqK,GAAK,KAvBE,yBAwBP,EAAK4K,mBAAmBG,GAxBjB,0DA0Bb,EAAKtE,SAAStB,IAAU,GA1BX,QA4Bf,EAAKqB,WAAWrB,IAAU,GA5BX,0DAxFW,2DAuH5B6F,cAvH4B,uCAuHZ,WAAMb,GAAN,eAAA7M,EAAA,6DACd,EAAKkJ,WAAWrB,IAAS,GADX,kBAGSoB,GAAkB,CACrC0E,SAAUd,EAAUE,KACpBa,QAASf,EAAU1G,QALT,OAGN1D,EAHM,OAOZsG,aAAY,WACV,EAAKsD,oBAA4C,IAAtB5J,EAAOoL,cAE/B,EAAKxB,qBAAqB,EAAKjD,SAASnB,IAVjC,gDAYZ,EAAKkB,SAAStB,IAAS,GAZX,QAcd,EAAKqB,WAAWrB,IAAS,GAdX,yDAvHY,2DAwI5BpG,WAxI4B,sBAwIf,sBAAAzB,EAAA,sEACLc,EAAUW,aADL,2CAvIX6J,KAAKO,eAAiBA,EAlC1B,0DA8KI,OAAOP,KAAKtF,UAAYsF,KAAKtF,SAASwH,gBA9K1C,+BAkLI,OAAOlC,KAAKtF,UAAYsF,KAAKtF,SAASkF,WAlL1C,mCAsLI,OAAOI,KAAKtF,UAAYsF,KAAKtF,SAAS8H,iBAtL1C,KA0LA3D,YAAS9K,GAAW,CAClBoB,MAAO2J,IACPjC,QAASiC,IACTpE,SAAUoE,IACV8B,eAAgB9B,IAChB+B,mBAAoB/B,IACpBgC,qBAAsBhC,IACtBiC,oBAAqBjC,IACrBkC,eAAgBlC,IAChB9B,MAAO8B,IACPjB,SAAUmB,IACVpB,WAAYoB,IACZlB,SAAUkB,IACVsC,iBAAkBtC,IAClB2C,uBAAwB3C,IACxB6C,UAAW7C,IACX8C,mBAAoB9C,IACpBkD,cAAe5B,IACfV,SAAUU,M,yBC1NCmC,GAAY,uCAAG,WAAMpH,GAAN,mBAAA3G,EAAA,sEACHkF,GAAQC,KAAI1Q,mBAAoB,CACrDwP,KAAMsC,KAAKjG,UAAUqG,KACpBnG,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJQ,cACpBmF,EADoB,OAOpBoI,EAAQ,SAARA,EAAQC,GACZ,IAAM3L,EAAM2L,EAAI,GAAK,EAAIA,EAAM7P,IAAE8P,KAAKD,GACtC,OAAQ3L,EAAIW,QAAUX,EAAI,GAAK,EAAIA,EAAM0L,EAAM1L,IAG3C6L,EAAc,SAAAC,GAClB,IAAI3L,EAAS2L,EACTC,EAAO,EACX,GAAIjQ,IAAEuH,SAASlD,EAAQ,KAAM,CAC3B,IAAM6L,EAAM7L,EAAOkK,QAAQ,KAC3B0B,EAAOjQ,IAAEmQ,SAAS9L,EAAOiK,UAAU,EAAG4B,IACtC7L,EAASA,EAAOiK,UAAU4B,EAAM,GAUlC,OARA7L,EAASrE,IAAEoQ,MAAM/L,EAAQ,KAIvBA,GAHFA,EAASuL,EAAM5P,IAAEyI,IAAIpE,EAAQrE,IAAEmQ,YACpBtL,OAAS,GAClBR,EAASrE,IAAEqQ,UAAUhM,IACLQ,OAAS,EAAhB,UAAuBR,EAAO,GAA9B,aAAqCA,EAAO,GAAK,EAAZ,UAAmBA,EAAO,GAA1B,OAAoC,IAAzE,UAAmFA,EAAO,GAA1F,OAEA4L,EAAO,EAAI,GAAK,mBAEpBjQ,IAAE0O,KAAF,UAAUuB,EAAO,EAAP,UAAcA,EAAd,KAAwB,GAAlC,YAAwC5L,KA5BvB,kBA+BnB,CACLoD,GAAID,EAASE,aACb4I,aAActQ,IAAEyI,IAAIjB,EAASkB,WAAW,SAAAC,GAAI,MAAK,CAC/C5H,GAAI4H,EAAKC,KACTkE,SAAUnE,EAAK4H,QACfC,YAAa7H,EAAK6H,YAClB3H,SAAUF,EAAKG,SACf2H,aAAcV,EAAYpH,EAAK+H,uBAC/Bna,KAAMoS,EAAKgI,WACXC,UAAWjI,EAAKkI,iBAChB9M,OAAQ4E,EAAKI,MACbC,WAAYC,KAAON,EAAKK,YAAYE,OAAO,QAC3CC,YAAaR,EAAKS,WAClBC,cAAeV,EAAKW,cACpBwH,gBAAiBnI,EAAKoI,iBACtBC,YAAarI,EAAKsI,SAClBC,YAAavI,EAAKwI,OAClBvH,eAAgBjB,EAAKiB,eACrBwH,WAAYzI,EAAKyI,WACjBzH,gBAAiBhB,EAAKgB,oBAExB0H,WAAY7J,EAAS8J,iBACrB/H,WAAY/B,EAAS+B,aArDG,2CAAH,sDAyDZgI,GAAY,uCAAG,WAAMrJ,GAAN,eAAAtG,EAAA,sEACHkF,GAAQC,KAAItQ,oBAAqB,CACtDoP,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJQ,cACpBmF,EADoB,yBAMnBA,GANmB,2CAAH,sDASZgK,GAAa,uCAAG,WAAMtJ,GAAN,eAAAtG,EAAA,sEACJkF,GAAQC,KAAIrQ,qBAAsB,CACvDmP,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJS,cACrBmF,EADqB,yBAMpBA,GANoB,2CAAH,sDASbiK,GAAqB,uCAAG,WAAMvJ,GAAN,eAAAtG,EAAA,sEACZkF,GAAQC,KAAIpQ,eAAgB,CACjDkP,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJiB,cAC7BmF,EAD6B,yBAM5B,CACLC,GAAID,EAASE,eAPoB,2CAAH,sDAWrB9Q,GAAuB,uCAAG,WAAMsR,GAAN,eAAAtG,EAAA,sEACdkF,GAAQC,KAAInQ,wBAAyB,CAC1DiP,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJmB,cAC/BmF,EAD+B,yBAM9B,CACLC,GAAID,EAASE,eAPsB,2CAAH,sDAWvB7Q,GAA8B,uCAAG,WAAMqR,GAAN,eAAAtG,EAAA,sEACrBkF,GAAQC,KAAIlQ,+BAAgC,CACjEgP,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJ0B,cACtCmF,EADsC,yBAMrC,CACLC,GAAID,EAASE,eAP6B,2CAAH,sDAW9B5Q,GAAQ,uCAAG,WAAMoR,GAAN,eAAAtG,EAAA,sEACCkF,GAAQC,KAAIjQ,SAAU,CAC3C+O,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJI,cAChBmF,EADgB,yBAMf,CACLC,GAAID,EAASE,aACb4I,aAActQ,IAAEyI,IAAIjB,EAASkK,OAAO,SAAA/I,GAAI,sBACnCA,EADmC,CAEtCgJ,YAAa1I,KAAON,EAAKgJ,aAAazI,OAAO,KAC7C0I,MAAO5R,IAAE6R,SAASlJ,EAAKiJ,OAASjJ,EAAKiJ,MAAME,QAAQ,GAAK,SAE1DvI,WAAY/B,EAAS+B,aAbD,2CAAH,sDAiBRxS,GAAkB,uCAAG,WAAMmR,GAAN,eAAAtG,EAAA,sEACTkF,GAAQC,KAAIhQ,mBAAoB,CACrD8O,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJc,cAC1BmF,EAD0B,yBAMzBA,GANyB,2CAAH,sDC5HzBiC,GACE,OADFA,GAEM,WAFNA,GAGI,SAHJA,GAIM,WAJNA,GAKK,UAGEI,GACJ,OADIA,GAEM,kBAGNzI,GAAb,4DACE2Q,SAAW,KADb,KAGEhI,QAAU,CACRiI,SAAS,EACT/H,MAAM,EACNgI,QAAQ,EACRC,SAAU,CACRnR,GAAI,KACJyJ,MAAM,GAERtE,SAAU,CACRnF,GAAI,KACJxK,KAAM,KACNiU,MAAM,IAdZ,KAkBEnI,MAAQ,CACNtC,QAAS,GACTkK,MAAM,EACN/D,UAAU,EACV+L,QAAQ,EACRC,UAAU,GAvBd,KA0BEhI,MAAQL,GA1BV,KA4BEjC,SAAW,KA5Bb,KA8BE2B,WAAa,CACXY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,GAlCxB,KAqCE6H,eAAiB,CACf,CAAE5b,KAAM,YAAa6b,MAAO,EAAGtS,IAAK,QAASuS,MAAO,UACpD,CAAE9b,KAAM,YAAa6b,MAAO,EAAGtS,IAAK,WAAYuS,MAAO,aACvD,CAAE9b,KAAM,OAAQ6b,MAAO,EAAGtS,IAAK,cAAeuS,MAAO,gBACrD,CAAE9b,KAAM,YAAa6b,MAAO,EAAGtS,IAAK,aAAcuS,MAAO,0BAzC7D,KA4CEC,eAAiB,CACf9B,YAAa,GACbxH,WAAY,CAAEuJ,MAAO,GAAIC,IAAK,IAC9BnB,WAAY,IA/ChB,KAkDEf,aAAe,GAlDjB,KAoDEmC,YApDF,sBAoDgB,sBAAA7Q,EAAA,yDACRvB,OAAOC,SAASuD,OAAhB,WAA6BH,GADrB,gBACkCgP,cAAc,EAAKX,UADrD,6BAGV,EAAKjH,WAAWrB,IAAW,GAHjB,SAIJ,EAAKkJ,aAAY,GAJb,OAKV,EAAK7H,WAAWrB,IAAW,GALjB,2CApDhB,KA6DEe,KA7DF,uCA6DS,6BAAA5I,EAAA,sDAAS6I,EAAT,EAASA,YACd,EAAK6B,QACL,EAAKyF,SAAWa,YAAY,EAAKH,YAAa,KAC9C,EAAK7K,SAAW6C,EAChB,EAAKkI,cAJA,2CA7DT,2DAoEErG,MAAQ,WACN,EAAK5B,aACL,EAAK4F,aAAe,GACpB,EAAK/G,WAAa,CAChBY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,IA3E1B,KA+EEQ,WAAa,SAACvU,EAAMwN,GAClB,EAAKgG,QAAQxT,GAAQwN,GAhFzB,KAmFEgH,SAAW,SAACxU,EAAMwN,EAAQhE,GACpBA,IAAS,EAAKsC,MAAMtC,QAAUA,GAClC,EAAKsC,MAAM9L,GAAQwN,GArFvB,KAwFEiH,SAAW,SAAAzU,GAEJ,EAAK2T,MADL3T,GAAmBsT,IAzF5B,KA6FEa,WAAa,WACX,EAAKrI,MAAL,eACK,EAAKA,MADV,CAEE4H,MAAM,EACN/D,UAAU,EACVgM,UAAU,KAlGhB,KAsGEW,cAAgB,SAAAtK,GACd,EAAK+J,eAAL,eAA2B,EAAKA,eAAhC,GAAmD/J,GACnD,EAAKgB,WAAWY,UAAY,EAC5B,EAAKwI,eAzGT,KA4GEG,gBAAkB,WAChB,MAAO,CACLtC,YAAa,EAAK8B,eAAe9B,YACjCuC,SAAU,EAAKT,eAAetJ,WAAWuJ,MACzCS,OAAQ,EAAKV,eAAetJ,WAAWwJ,IACvCS,QAAQ,eAAM,EAAKX,eAAejB,cAjHxC,KAqHEsB,YArHF,uCAqHgB,WAAMO,GAAN,iBAAAtR,EAAA,6DACZ,EAAKkJ,WAAWrB,IAASyJ,GADb,SAGJC,EAAiB,EAAKL,kBAHlB,SAIWjI,GAAA,eAChBsI,EADgB,CAEnB5J,WAAY,CACVY,UAAW,EAAKZ,WAAWY,UAC3BC,SAAU,EAAKb,WAAWa,aARpB,OAIJ/F,EAJI,OAWVsG,aAAY,WACV,EAAK2F,aAAejM,EAAOiM,aAC3B,EAAKgC,eAAL,eACK,EAAKA,eADV,CAEEjB,WAAYrR,IAAEoT,UAAU/O,EAAOgN,YAAY,SAACgC,EAAIvT,GAAL,MAAc,CACvDqH,QAASnH,IAAEyI,IAAI4K,EAAGlM,SAAS,SAAAmM,GACzB,IAAK,EAAKhB,eAAejB,WAAWvR,GAAM,OAAO,eAAKwT,GACtD,IAAMC,EAAavT,IAAEwT,KAAK,EAAKlB,eAAejB,WAAWvR,GAAKqH,QAAS,CAAC,OAAQmM,EAAIG,OACpF,OAAO,eAAKH,EAAZ,CAAiBI,WAAYH,GAAcA,EAAWG,sBAI5D,EAAKnK,WAAL,eAAuB,EAAKA,WAA5B,GAA2ClF,EAAOkF,eAvB1C,gDA0BV,EAAKwB,SAAStB,IAAQ,GA1BZ,QA4BZ,EAAKqB,WAAWrB,IAAQ,GA5BZ,yDArHhB,2DAoJEwB,WAAa,SAAAC,GACX,EAAK3B,WAAWY,UAAYe,EAC5B,EAAKyH,eAtJT,KAyJExH,eAAiB,SAAAC,GACf,EAAK7B,WAAL,eACK,EAAKA,WADV,CAEEY,UAAW,EACXC,SAAUgB,IAEZ,EAAKuH,eA/JT,KAkKEgB,aAlKF,uCAkKiB,WAAOC,EAAcC,EAAQC,EAAWjL,GAAxC,iBAAAjH,EAAA,yDACb,EAAKkJ,WAAWrB,GAAY,CAC1B1I,GAAI8S,EACJtd,KAAMqd,EAAe,QAAU,SAC/BpJ,MAAM,IAJK,UAQPoJ,EARO,gCAQsB/I,GAAiB,CAAEkJ,YAAaF,IARtD,OAQOxP,EARP,+CASSwG,GAAkB,CAAEkJ,YAAaF,EAAQlD,WAAYmD,IAT9D,QASNzP,EATM,kBAUNA,EAVM,uBAUQ,IAAIpK,MAVZ,QAWLoL,EAAOuO,EAAe/K,EAAH,iBAAwBA,GACjD3D,GAAab,EAAOkH,SAAU,2BAA4BlG,GAZ/C,kDAcX,EAAK0F,SAAStB,IAAY,EAAM,+CAdrB,QAgBb,EAAKqB,WAAWrB,GAAY,CAAE1I,GAAI,KAAMxK,KAAM,KAAMiU,MAAM,IAhB7C,0DAlKjB,iEAqLEwJ,cArLF,uCAqLkB,WAAOzd,EAAMuV,EAAWmI,EAAeC,GAAvC,SAAAtS,EAAA,yDACd,EAAKkJ,WAAWrB,IAAU,GADZ,SAGC,IAATlT,EAHQ,iCAIWsU,GAA0B,CAC7CjC,KAAMkD,EACN/C,MAAOkL,EACPtD,WAAYuD,IAPJ,iBASEzM,GATF,sBASY,IAAIxN,MAThB,kCAUQ,IAAT1D,EAVC,kCAWWsU,GAA4B,CAC/CjC,KAAMkD,EACN/C,MAAOkL,EACPtD,WAAYuD,IAdJ,kBAgBEzM,GAhBF,uBAgBY,IAAIxN,MAhBhB,QAkBZ,EAAK0Y,cAlBO,kDAoBZ,EAAK5H,SAAStB,IAAU,GApBZ,QAsBd,EAAKqB,WAAWrB,IAAU,GAtBZ,0DArLlB,iEA8ME0K,gBA9MF,uCA8MoB,WAAMC,GAAN,SAAAxS,EAAA,6DAChB,EAAKkJ,WAAWrB,GAAY,CAAE1I,GAAIqT,EAAW5J,MAAM,IADnC,kBAGOK,GAAmC,CAAEkJ,YAAaK,IAHzD,iBAIF3M,GAJE,sBAIQ,IAAIxN,MAJZ,OAKd,EAAK+Q,SAASnB,IALA,kDAOd,EAAKkB,SAAStB,IAAY,EAAM,2CAPlB,QAShB,EAAKqB,WAAWrB,GAAY,CAAE1I,GAAI,KAAMyJ,MAAM,IAT9B,0DA9MpB,iHA2NI,OAAK0C,KAAKtF,UACHsF,KAAKtF,SAASyM,oCADM,MA3N/B,KAgOAtI,YAAS3K,GAAa,CACpB2I,QAASiC,IACT3J,MAAO2J,IACP9B,MAAO8B,IACPzC,WAAYyC,IACZsG,eAAgBtG,IAChBsE,aAActE,IACdlB,WAAYoB,IACZnB,SAAUmB,IACVlB,SAAUkB,IACVxB,WAAYwB,IACZ2G,cAAe3G,IACfjB,WAAYiB,IACZf,eAAgBe,M,yBC3PZoI,GAAQ,CACZC,EAAG,SACHC,EAAG,eACHC,EAAG,UAGQC,GAAe,uCAAG,WAAMxM,GAAN,eAAAtG,EAAA,sEACNkF,GAAQC,KAAI9P,kBAAmB,CACpD4O,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJW,cACvBmF,EADuB,yBAMtB,CACLC,GAAID,EAASE,aACbiN,SAAU3U,IAAEyI,IAAIjB,EAASoN,aAAa,SAAAC,GAAO,MAAK,CAChDC,IAAKD,EAAQjM,KACb7H,GAAI8T,EAAQ9T,GACZgD,OAAQ8Q,EAAQ9L,MAChBgM,WAAYF,EAAQE,WACpB1P,KAAMwP,EAAQxP,KACd2P,QAASH,EAAQG,QACjBC,KAAMJ,EAAQI,KACdC,SAAUL,EAAQK,SAClBC,YAAaN,EAAQM,YACrBC,IAAKP,EAAQO,IACbC,OAAQR,EAAQQ,OAChBC,UAAWT,EAAQS,UACnBC,UAAWV,EAAQU,UACnBC,OAAQX,EAAQW,OAChBC,OAAQZ,EAAQY,OAChBC,UAAWb,EAAQa,UACnBC,UAAWd,EAAQc,UACnBC,OAAQf,EAAQe,OAChBC,KAAMhB,EAAQgB,KACdC,QAASjB,EAAQiB,QACjBC,eAAgBlB,EAAQkB,eACxBC,OAAQnB,EAAQmB,OAChBC,WAAYpB,EAAQoB,WACpBzN,UAAWxI,IAAEyI,IAAIoM,EAAQqB,eAAe,SAAAC,GAAS,MAAK,CACpD9Q,KAAM8Q,EAAUC,YAChBpB,QAASmB,EAAUnB,QACnBqB,KAAMF,EAAUE,KAChBC,IAAKH,EAAUG,IACfC,YAAajC,GAAM6B,EAAUI,cAAgB,GAC7C3M,eAAgBuM,EAAUvM,eAC1BkM,QAASK,EAAUL,QACnBU,OAAQL,EAAUK,OAClBC,QAASN,EAAUM,QACnBC,UAAWP,EAAUO,UACrBT,WAAYE,EAAUF,WACtBU,MAAOR,EAAUQ,cAGrBpN,WAAY/B,EAAS+B,aA/CM,2CAAH,sDAmDfqN,GAAY,uCAAG,WAAM1O,GAAN,eAAAtG,EAAA,sEACHkF,GAAQC,KAAI/P,WAAY,CAC7C6O,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJQ,cACpBmF,EADoB,yBAMnB,CACLC,GAAID,EAASE,aACbmN,QAAS,CACP9T,GAAIyG,EAASoB,KACbC,SAAUrB,EAASsB,SACnB/E,OAAQyD,EAASuB,MACjBC,WAAYC,KAAOzB,EAASwB,YAAYE,OAAO,KAC/CC,YAAa3B,EAAS4B,WACtBC,cAAe7B,EAAS8B,iBAdF,2CAAH,sDAmBZuN,GAAY,uCAAG,WAAM3O,GAAN,eAAAtG,EAAA,sEACHkF,GAAQC,KAAI7P,qBAAsB,CACvD2O,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJQ,cACpBmF,EADoB,yBAMnB,CACLC,GAAID,EAASE,eAPW,2CAAH,sDAWZoP,GAAW,uCAAG,WAAM5O,GAAN,eAAAtG,EAAA,sEACFkF,GAAQC,KAAI5P,yBAA0B,CAC3D0O,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJO,cACnBmF,EADmB,yBAMlB,CACLC,GAAID,EAASE,eAPU,2CAAH,sDAWXqP,GAAS,uCAAG,WAAM7O,GAAN,eAAAtG,EAAA,sEACAkF,GAAQC,KAAI3P,8BAA+B,CAChEyO,KAAMsC,KAAKjG,UAAUgG,KACpB9F,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJK,cACjBmF,EADiB,yBAMhB,CACLC,GAAID,EAASE,eAPQ,2CAAH,sDAWTrQ,GAAa,uCAAG,WAAM2f,GAAN,eAAApV,EAAA,sEACJkF,GAAQC,KAAI1P,cAAe,CAChDwO,KAAMmR,EAAQnB,OACbzT,OAAM,SAAAC,GACP,MAAM,IAAIpI,MAAMoI,MAJS,cACrBmF,EADqB,wCAOtBA,EAPsB,CAQzBqO,KAAMmB,EAAQnB,QARW,2CAAH,sDC7GpBpM,GACE,OADFA,GAEK,UAFLA,GAGG,QAHHA,GAIE,OAJFA,GAKO,YALPA,GAMQ,aAGDI,GACJ,OADIA,GAEF,UAFEA,GAGF,UAKExI,GAAb,4DACE0I,QAAU,CACRkN,MAAM,EACNC,SAAS,EACT1W,OAAO,EACP2W,MAAM,EACNC,WAAW,EACXC,YAAY,GAPhB,KAUEhV,MAAQ,CACNtC,QAAS,GACTkX,MAAM,EACNC,SAAS,EACT1W,OAAO,EACP2W,MAAM,EACNC,WAAW,EACXC,YAAY,GAjBhB,KAoBE9N,WAAa,CACXY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,GAxBxB,KA2BEgN,YAAc,GA3BhB,KA6BEC,aAAe,GA7BjB,KA+BEC,WAAa,GA/Bf,KAiCEC,gBAAkB,GAjCpB,KAmCEvN,MAAQL,GAnCV,KAqCEW,KArCF,uCAqCS,6BAAA5I,EAAA,6DAASb,EAAT,EAASA,GACd,EAAKuL,QACL3B,aAAY,WACV,EAAK2M,YAAYvW,GAAKA,KAHnB,SAKC,EAAK2W,eAAe3W,GALrB,OAML,EAAK4W,kBAAkB5W,GANlB,2CArCT,2DA8CEuL,MAAQ,WACN,EAAKjK,MAAQ,CACXtC,QAAS,GACTkX,MAAM,EACNC,SAAS,EACT1W,OAAO,EACP2W,MAAM,EACNC,WAAW,GAEb,EAAKE,YAAc,GACnB,EAAKC,aAAe,GACpB,EAAKE,gBAAkB,GACvB,EAAKlO,WAAa,CAChBY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,IA9D1B,KAkEEQ,WAAa,SAACvU,EAAMwN,GAClB,EAAKgG,QAAQxT,GAAQwN,GAnEzB,KAsEEgH,SAAW,SAACxU,EAAMwN,EAAQhE,GACpBA,IAAS,EAAKsC,MAAMtC,QAAUA,GAClC,EAAKsC,MAAM9L,GAAQwN,GAxEvB,KA2EE2G,WAAa,WACX,EAAKrI,MAAL,eACK,EAAKA,MADV,CAEE4U,MAAM,EACNC,SAAS,EACTU,QAAQ,EACRT,MAAM,EACNC,WAAW,KAlFjB,KAsFEpM,SAAW,SAAAzU,GAEJ,EAAK2T,MADL3T,GAAmBsT,IAvF5B,KA2FE6N,eA3FF,uCA2FmB,WAAM5L,GAAN,eAAAlK,EAAA,6DACf,EAAKkJ,WAAWrB,IAAQ,GADT,kBAGQoB,GAAiB,CACpCjC,KAAMkD,IAJK,OAGPzH,EAHO,OAMbsG,aAAY,WACV,EAAK2M,YAAL,eAAwBjT,EAAOwQ,YAPpB,gDAUb,EAAK9J,SAAStB,IAAQ,GAVT,QAYf,EAAKqB,WAAWrB,IAAQ,GAZT,yDA3FnB,2DA0GEkO,kBA1GF,uCA0GsB,WAAM7L,GAAN,eAAAlK,EAAA,6DAClB,EAAKkJ,WAAWrB,IAAW,GADT,kBAGKoB,GAAoB,CACvCjC,KAAMkD,EACNvC,WAAY,CACVY,UAAW,EAAKZ,WAAWY,UAC3BC,SAAU,EAAKb,WAAWa,YAPd,OAGV/F,EAHU,OAUhBsG,aAAY,WACV,EAAK4M,aAAelT,EAAOsQ,SAC3B,EAAKpL,WAAL,eAAuB,EAAKA,WAA5B,GAA2ClF,EAAOkF,eAZpC,gDAehB,EAAKwB,SAAStB,IAAW,GAfT,QAiBlB,EAAKqB,WAAWrB,IAAW,GAjBT,yDA1GtB,2DA8HEoO,YAAc,SAAAC,GACZ,EAAKL,gBAAkBzX,IAAEwT,KAAK,EAAK+D,aAAc,CAAC,KAAMO,IACxD,EAAKN,WAAa,GAClB,EAAKA,WAAWO,KAAK,CACnBlC,KAAM,EAAK4B,gBAAgB3B,QAC3BV,IAAK,EAAKqC,gBAAgBrC,IAC1BC,OAAQ,EAAKoC,gBAAgBpC,OAC7BE,UAAW,EAAKkC,gBAAgBlC,UAChCC,OAAQ,EAAKiC,gBAAgBjC,OAC7BF,UAAW,EAAKmC,gBAAgBnC,UAEhCG,OAAQ,EAAKgC,gBAAgBhC,OAC7BE,UAAW,EAAK8B,gBAAgB9B,UAChCC,OAAQ,EAAK6B,gBAAgB7B,OAC7BF,UAAW,EAAK+B,gBAAgB/B,YAElC,EAAK1K,SAASnB,KA9IlB,KAiJEmO,aAjJF,uCAiJiB,WAAOF,EAAWG,GAAlB,SAAArW,EAAA,6DACb,EAAKkJ,WAAWrB,IAAS,GADZ,kBAGUoB,GAAiB,CACpCjC,KAAMkP,EACN3B,UAAW,CACTC,YAAa6B,EAAkB5S,KAC/B2P,QAASiD,EAAkBjD,QAC3BqB,KAAM4B,EAAkB5B,KACxBC,IAAK2B,EAAkB3B,IACvBC,YAAa0B,EAAkB1B,YAC/B3M,eAAgBqO,EAAkBrO,eAClCkM,QAASmC,EAAkBnC,QAC3BU,OAAQyB,EAAkBzB,OAC1BC,QAASwB,EAAkBxB,QAC3BC,UAAWuB,EAAkBvB,UAC7BT,WAAYgC,EAAkBhC,WAC9BU,MAAOsB,EAAkBtB,SAjBlB,iBAoBClP,GApBD,sBAoBW,IAAIxN,MApBf,cAqBX,EAAK+Q,SAASnB,IArBH,UAsBL,EAAK6N,eAAe,EAAKJ,YAAYvW,IAtBhC,yBAuBL,EAAK4W,kBAAkB,EAAKL,YAAYvW,IAvBnC,0DAyBX,EAAKgK,SAAStB,IAAS,GAzBZ,QA2Bb,EAAKqB,WAAWrB,IAAS,GA3BZ,0DAjJjB,6DA+KEyO,YA/KF,uCA+KgB,WAAMJ,GAAN,SAAAlW,EAAA,6DACZ,EAAKkJ,WAAWrB,IAAQ,GADZ,kBAGWoB,GAAgB,CACnCjC,KAAMkP,IAJE,iBAMErQ,GANF,sBAMY,IAAIxN,MANhB,cAOV,EAAK+Q,SAASnB,IAPJ,UAQJ,EAAK6N,eAAe,EAAKJ,YAAYvW,IARjC,yBASJ,EAAK4W,kBAAkB,EAAKL,YAAYvW,IATpC,0DAWV,EAAKgK,SAAStB,IAAQ,GAXZ,QAaZ,EAAKqB,WAAWrB,IAAQ,GAbZ,0DA/KhB,2DA+LE0O,cAAgB,WACd9X,OAAOC,SAASmD,KAAhB,WAA2BC,GAC3B,EAAK4I,SAjMT,KAoME8K,UApMF,sBAoMc,sBAAAxV,EAAA,6DACV,EAAKkJ,WAAWrB,IAAa,GADnB,kBAGaoB,GAAc,CACjCkJ,YAAa,EAAKuD,YAAYvW,KAJxB,iBAMI0G,GANJ,sBAMc,IAAIxN,MANlB,OAOR,EAAK+Q,SAASnB,IACd,EAAKsO,gBARG,kDAUR,EAAKpN,SAAStB,IAAa,GAVnB,QAYV,EAAKqB,WAAWrB,IAAa,GAZnB,0DApMd,KAmNEwB,WAAa,SAAAC,GACX,EAAK3B,WAAWY,UAAYe,EAC5B,EAAKyM,kBAAkB,EAAKL,YAAYvW,KArN5C,KAwNEoK,eAAiB,SAAAC,GACf,EAAK7B,WAAL,eACK,EAAKA,WADV,CAEEY,UAAW,EACXC,SAAUgB,IAEZ,EAAKuM,kBAAkB,EAAKL,YAAYvW,KA9N5C,KAqOEqX,cArOF,uCAqOkB,WAAMvC,GAAN,eAAAjU,EAAA,6DACd,EAAKkJ,WAAWrB,IAAc,GADhB,kBAGSoB,GAAkB,CAAEgL,SAH7B,OAGNxR,EAHM,OAIZsG,aAAY,WACV,EAAK6M,WAAWO,KAAK1T,MALX,gDAQZ,EAAK0G,SAAStB,IAAc,GARhB,QAUd,EAAKqB,WAAWrB,IAAc,GAVhB,yDArOlB,4GAiOmB,IAAD,OACd,OAAOzJ,IAAEoN,OAAOpN,IAAEqN,KAAKH,KAAK7K,QAAQ,SAACiL,EAAKxN,GAAN,OAAcwN,GAAgB,YAARxN,GAAoB,EAAKuC,MAAMvC,MAAe,OAlO5G,KAmPAiM,YAAS1K,GAAY,CACnB0I,QAASiC,IACT3J,MAAO2J,IACPzC,WAAYyC,IACZsL,YAAatL,IACbuL,aAAcvL,IACdyL,gBAAiBzL,IACjB9B,MAAO8B,IACPwL,WAAYxL,IACZM,MAAOJ,IACPpB,WAAYoB,IACZnB,SAAUmB,IACVxB,WAAYwB,IACZlB,SAAUkB,IACV2L,YAAa3L,IACbjB,WAAYiB,IACZf,eAAgBe,IAChBqB,UAAWC,MCrRb,IAAM6K,GACE,OADFA,GAEM,WAGC/W,GAAb,4DACEyI,QAAU,CACRE,MAAM,EACN/D,UAAU,GAHd,KAME7D,MAAQ,CACNtC,QAAS,GACTkK,MAAM,EACN/D,UAAU,GATd,KAYE0B,SAAW,KAZb,KAcE2B,WAAa,CACXY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,GAlBxB,KAqBEgO,eAAiB,CACf3G,YAAa,CACXY,MAAOtJ,OACJsP,SAAS,EAAG,UACZC,QAAQ,OACRC,cACHjG,IAAKvJ,OAASwP,gBA3BpB,KA+BEnG,eA/BF,eA+BwBpF,KAAKoL,gBA/B7B,KAiCEhI,aAAe,GAjCjB,KAmCE9F,KAnCF,uCAmCS,6BAAA5I,EAAA,sDAAS6I,EAAT,EAASA,YACd,EAAKiO,YACL,EAAK9Q,SAAW6C,EAChB,EAAKkI,cAHA,2CAnCT,2DAyCE+F,UAAY,WACV,EAAKhO,aACL,EAAK4F,aAAe,GACpB,EAAK/G,WAAa,CAChBY,UAAW,EACXC,SAAU,GACVC,YAAa,EACbC,mBAAoB,IAhD1B,KAoDEQ,WAAa,SAACvU,EAAMwN,GAClB,EAAKgG,QAAQxT,GAAQwN,GArDzB,KAwDEgH,SAAW,SAACxU,EAAMwN,EAAQhE,GACpBA,IAAS,EAAKsC,MAAMtC,QAAUA,GAClC,EAAKsC,MAAM9L,GAAQwN,GA1DvB,KA6DE2G,WAAa,WACX,EAAKrI,MAAL,eACK,EAAKA,MADV,CAEE4H,MAAM,EACN/D,UAAU,KAjEhB,KAqEE+E,WAAa,SAAAC,GACX,EAAK3B,WAAWY,UAAYe,EAC5B,EAAKyH,eAvET,KA0EExH,eAAiB,SAAAC,GACf,EAAK7B,WAAL,eACK,EAAKA,WADV,CAEEY,UAAW,EACXC,SAAUgB,IAEZ,EAAKuH,eAhFT,KAmFEE,cAAgB,SAAAtK,GACd,EAAK+J,eAAL,eAA2B,EAAKA,eAAhC,GAAmD/J,GACnD,EAAKgB,WAAWY,UAAY,EAC5B,EAAKwI,eAtFT,KAyFEgG,aAAe,WACb,EAAKrG,eAAL,eAA2B,EAAKgG,gBAChC,EAAK/O,WAAWY,UAAY,EAC5B,EAAKwI,eA5FT,KA+FEG,gBAAkB,WAChB,MAAO,CACLC,SAAU,EAAKT,eAAeX,YAAYY,MAC1CS,OAAQ,EAAKV,eAAeX,YAAYa,MAlG9C,KAsGEG,YAtGF,sBAsGgB,8BAAA/Q,EAAA,6DACZ,EAAKkJ,WAAWuN,IAAkB,GADtB,SAGJlF,EAAiB,EAAKL,kBAHlB,SAIWjI,GAAA,eAChBsI,EADgB,CAEnB5J,WAAY,CACVY,UAAW,EAAKZ,WAAWY,UAC3BC,SAAU,EAAKb,WAAWa,aARpB,OAIJ/F,EAJI,OAWVsG,aAAY,WACV,EAAK2F,aAAejM,EAAOiM,aAC3B,EAAK/G,WAAL,eAAuB,EAAKA,WAA5B,GAA2ClF,EAAOkF,eAb1C,gDAgBV,EAAKwB,SAASsN,IAAkB,GAhBtB,QAkBZ,EAAKvN,WAAWuN,IAAkB,GAlBtB,yDAtGhB,KA2HEO,cA3HF,sBA2HkB,gCAAAhX,EAAA,6DACd,EAAKkJ,WAAWuN,IAAsB,GADxB,SAGNlF,EAAiB,EAAKL,kBAHhB,SAISjI,GAAuBsI,GAJhC,UAIN9O,EAJM,6BAKO,IAAIpK,MALX,OAMNoL,EANM,6BAMuB4D,OAASC,OAAO,kBANvC,SAOZhE,GAAab,EAAOkH,SAAU,2BAA4BlG,GAP9C,kDASZ,EAAK0F,SAASsN,IAAsB,EAAM,gDAT9B,QAWd,EAAKvN,WAAWuN,IAAsB,GAXxB,0DA3HlB,iEA0II,OAAOnL,KAAKoD,aAAazL,OAAS,MA1ItC,KA8IAkH,YAASzK,GAAgB,CACvByI,QAASiC,IACT3J,MAAO2J,IACPzC,WAAYyC,IACZsE,aAActE,IACdlB,WAAYoB,IACZnB,SAAUmB,IACVxB,WAAYwB,IACZ2G,cAAe3G,IACfyM,aAAczM,IACdjB,WAAYiB,IACZf,eAAgBe,IAChB2M,qBAAsBrL,MCvJxBsL,YAAU,CAAEC,eAAgB,WAAYC,oBAAoB,IAErD,IAAMC,GAAb,WAWE,aAAe,IAAD,gCAVdC,YAAc,KAUA,KARdC,gBAAkB,KAQJ,KANd1O,YAAc,KAMA,KAJd2O,gBAAiB,EAIH,KAFdC,cAAe,EAED,KASd5L,eATc,sBASG,8BAAA7L,EAAA,6DACf,EAAK0X,mBAAkB,GACvB,EAAKD,cAAe,EAFL,kBAIa5X,EAAQa,KAAKiB,GAJ1B,YAIPkH,EAJO,yCAMUnT,KANV,cAML+M,EANK,OAOX,EAAKkV,mBACF9O,EAAYkC,cAAgBtI,EAA7B,eAESoG,EAFT,CAGMkC,aAActI,EAAOuD,SACrBD,SAAUtD,EAAOsD,WAJvB,eAOS8C,EAPT,CAQM9C,SAAUtD,EAAOsD,YAhBd,UAmBLlG,EAAQC,MAAM6B,EAAc,EAAKkH,aAnB5B,0DAsBb,EAAK4O,cAAe,EAtBP,QAwBf,EAAKC,mBAAkB,GAxBR,0DATH,KAoCdC,kBAAoB,SAAA9O,GAClB,EAAKA,YAAcA,GArCP,KAwCd6O,kBAAoB,SAAAvP,GAClB,EAAKqP,eAAiBrP,GAzCV,KA4CdyP,UA5Cc,sBA4CF,4BAAA5X,EAAA,sEACaH,EAAQa,KAAKiB,GAD1B,cACJqE,EADI,yBAEHA,GAAYA,EAASwH,eAFlB,2CA5CE,KAiDdqK,SAAW,SAACC,EAAUC,GACpB,IAAMlP,EAAW,eAAQ,EAAKA,aACxBmP,EAAWC,EAASH,GAC1B,EAAKP,gBAAkB,EAAKW,OAAOF,GACnC,EAAKV,YAAc,CACjB7T,KAAMqU,EACN/X,KACE,EAAKwX,iBAAmB,EAAKA,gBAAgB3O,KACzCuP,YAAY,EAAKZ,gBAAgB3O,KAArB,aAA4BC,eAAgBkP,KACxD,CAAE5Q,MAAO,aACf4Q,WA3DU,KA+DdK,OAAS,WACP3Z,OAAOC,SAASmD,KAAO,kBAhEX,KAmEdwW,UAAY,SAACH,EAAQha,GAAT,OAAmB,EAAKA,GAAN,eAA2Bga,EAA3B,eAAoCha,EAAM,EAAKA,KAAlCga,GAlEzC5M,KAAKjM,UAAY,IAAIA,GAAUiM,KAAKO,gBACpCP,KAAKhM,aAAe,IAAIA,GACxBgM,KAAK/L,UAAY,IAAIA,GACrB+L,KAAK7L,WAAa,IAAIA,GACtB6L,KAAK9L,YAAc,IAAIA,GACvB8L,KAAK5L,eAAiB,IAAIA,GAjB9B,mDAiFI,OAAOtB,IAAEoN,OAAOpM,EAAkBkM,KAAK+M,UAAW,QAjFtD,KAqFAlO,YAASkN,GAAU,CACjBC,YAAalN,IACbmN,gBAAiBnN,IACjBoN,eAAgBpN,IAChBuN,kBAAmBrN,IACnBoN,kBAAmBpN,IACnBuN,SAAUvN,IACV8N,OAAQ9N,M,cCtGGgO,I,OAAU,SAAC,GAAoD,IAAlDnQ,EAAiD,EAAjDA,QAASqB,EAAwC,EAAxCA,KAAM+O,EAAkC,EAAlCA,OAAQC,EAA0B,EAA1BA,UAAWC,EAAe,EAAfA,SACpDC,EAAiB,kBACrB,0BAAMF,UAAS,UAAKA,GAAa,KAC/B,uBAAGA,UAAS,mCAA8BhP,GAAQ,EAAtC,aACZ,0BAAMgP,UAAU,WAAhB,gBAIJ,OAAKrQ,EAEGoQ,EAAsFG,IAA7E,yBAAKF,UAAS,sBAAiBA,GAAa,KAAOE,KAF/C,oCAAGD,KAYbE,GAAc,SAAC,GAAD,IAAGxQ,EAAH,EAAGA,QAASyQ,EAAZ,EAAYA,MAAOpP,EAAnB,EAAmBA,KAAMiP,EAAzB,EAAyBA,SAAzB,OACzB,yBAAKD,UAAS,yBAAoBrQ,GAAWyQ,EAAQ,WAAa,KAChE,kBAAC,GAAD,CAASJ,UAAU,eAAerQ,QAASA,EAASqB,KAAMA,GAAQ,IACjEiP,I,sECRCI,GAAaC,IAAMC,YAXG,SAAC,EAAuBC,GAAxB,IAAGC,EAAH,EAAGA,QAASR,EAAZ,EAAYA,SAAZ,OAC1B,4BACEO,IAAKA,EACLrkB,KAAK,SACL6jB,UAAU,2DACVS,QAAS,SAAAC,GAAC,OAAID,EAAQC,KAErBT,MAMQU,GAASC,YAAOC,EAAGha,UAAV+Z,EAAqB,YAAiC,IAA9B/Z,EAA6B,EAA7BA,UAAWwJ,EAAkB,EAAlBA,YAMvD,OACE,4BAAQ2P,UAAU,uBAChB,kBAACc,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,KACE,kBAACD,GAAA,EAAOE,MAAR,CAAc3X,KAAI,WAAMC,GAAW0W,UAAU,kBAC3C,yBAAKiB,IAAKC,KAAMC,IAAI,UAEtB,yBAAKnB,UAAU,uCACb,kBAACoB,GAAA,EAAD,CAAUC,SAAU,SAAAC,GAAI,OAbpB,SAAAA,GACC,WAATA,EAAmBza,EAAUoC,aAC5BhD,OAAOC,SAASmD,KAAOiY,EAWQC,CAAMD,KAChC,kBAACF,GAAA,EAASI,OAAV,CAAiBC,GAAIpB,IACnB,0BAAML,UAAU,8BADlB,IACkD3P,GAAeA,EAAYqC,UAE7E,kBAAC0O,GAAA,EAASM,KAAV,CAAe1B,UAAU,gBACvB,kBAACoB,GAAA,EAASO,KAAV,CAAeC,SAAQ,WAAMtY,IAA7B,YACA,kBAAC8X,GAAA,EAASO,KAAV,CAAeC,SAAS,UAAxB,YAGJ,kBAACC,GAAA,EAAD,KACE,kBAACA,GAAA,EAAIC,KAAL,CAAUzY,KAAI,WAAMC,IAApB,QACA,kBAACuY,GAAA,EAAIC,KAAL,CAAUzY,KAAI,WAAMC,IAApB,UACC+G,GAAeA,EAAY0R,mBAAqB,kBAACF,GAAA,EAAIC,KAAL,CAAUzY,KAAI,WAAMC,IAApB,qB,kDCzClD0Y,GAAS,kBACpB,4BAAQhC,UAAU,uBAChB,kBAACe,GAAA,EAAD,KACE,kBAACkB,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,EAAGnC,UAAU,IACpB,uBAAG3W,KAAK,IAAI2W,UAAU,QACpB,yBAAKiB,IAAKC,KAAMC,IAAI,WAGxB,kBAACe,GAAA,EAAD,CAAKC,GAAI,EAAGnC,UAAU,eACpB,uBAAG3W,KAAK,IAAI2W,UAAU,QACpB,yBAAKiB,IAAKmB,KAAQjB,IAAI,eCZrB/f,I,OAAY,SAAC,GAAD,IAAGihB,EAAH,EAAGA,MAAOC,EAAV,EAAUA,YAAV,OACvB,kBAACL,GAAA,EAAD,KACGI,GACC,kBAACH,GAAA,EAAD,CAAKC,GAAI,IACP,wBAAInC,UAAU,oDAAoDqC,IAGrEC,GACC,kBAACJ,GAAA,EAAD,CAAKC,GAAI,IACP,uBAAGnC,UAAU,6DAA6DsC,OAUrEC,GAAO,SAAC,GAAD,IAAGvC,EAAH,EAAGA,UAAWwC,EAAd,EAAcA,MAAOH,EAArB,EAAqBA,MAAOC,EAA5B,EAA4BA,YAAarC,EAAzC,EAAyCA,SAAzC,OAClB,kBAACc,GAAA,EAAD,CAAWf,UAAS,UAAKwC,EAAQ,iBAAmB,GAAhC,YAAsCxC,GAAa,IAAMyC,OAAQD,GACnF,kBAAC,GAAD,CAAWH,MAAOA,EAAOC,YAAaA,IACrCrC,IAWQyC,GAAc,SAAC,GAAD,IAAG1C,EAAH,EAAGA,UAAW2C,EAAd,EAAcA,SAAU1C,EAAxB,EAAwBA,SAAxB,OACzB,kBAACgC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,GAAInC,UAAS,sBAAiBA,GAAa,KACjDC,EACD,0BAAMD,UAAS,oBAAe2C,GAAY,SAUnCC,GAAW,SAAC,GAAD,IAAG5C,EAAH,EAAGA,UAAWqC,EAAd,EAAcA,MAAOQ,EAArB,EAAqBA,SAArB,OACtB,kBAAC,GAAD,CAAa7C,UAAS,oBAAeA,GAAa,KAChD,yBAAKA,UAAU,gCAAgCqC,GAC9CQ,GAAY,uBAAG7C,UAAU,mBAAmB6C,KASpCC,GAAmB,SAAC,GAAD,IAAG9C,EAAH,EAAGA,UAAWC,EAAd,EAAcA,SAAd,OAC9B,yBAAKD,UAAS,kCAA6BA,GAAa,KAAOC,I,+CC5DpD8C,GAAW,SAAC,GAAD,IAAG/C,EAAH,EAAGA,UAAWgD,EAAd,EAAcA,KAAMhS,EAApB,EAAoBA,KAAMqR,EAA1B,EAA0BA,MAAOY,EAAjC,EAAiCA,YAAaC,EAA9C,EAA8CA,QAASC,EAAvD,EAAuDA,UAAWlD,EAAlE,EAAkEA,SAAlE,OACtB,kBAACmD,GAAA,EAAD,CACEC,SAAS,OACTrD,UAAS,uBAAkBA,GAAa,GAA/B,YAAqCmD,EAAY,cAAgB,IAC1EnS,KAAMA,GAAQ,KACdsS,KAAMN,EACNO,OAAQL,EACRM,kBAAgB,gCAChBC,SAAS,SACTC,UAAU,GAEV,kBAACN,GAAA,EAAMzC,OAAP,CAAcX,UAAWmD,EAAY,gBAAkB,IACpDd,GACC,oCACE,wBAAIrC,UAAU,oCAAoCqC,GACjDY,GACC,4BAAQ9mB,KAAK,SAAS6jB,UAAU,QAAQS,QAASyC,GAC/C,uBAAGlD,UAAU,6BAMvB,kBAACoD,GAAA,EAAMO,KAAP,CAAY3D,UAAU,gBACnBC,EACAkD,GACC,oCACE,uBAAGnD,UAAU,uBAAb,mDAEE,uBAAGA,UAAU,yBAAyB3W,KAAK,0CAA3C,oCAIF,yBAAK2W,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,uBAAuBS,QAASyC,GAAhE,WC7BCU,GAAQhD,YAAOC,EAAGha,UAAV+Z,CACnBiD,aAAS,YAAoB,IAAjBhd,EAAgB,EAAhBA,UAAgB,EACMyZ,IAAMwD,SAAS,CAAEvP,KAAM,GAAIC,SAAU,KAD3C,oBACnBuP,EADmB,KACTC,EADS,KAGpBC,EAAgB,SAACve,EAAK0C,GAAN,OAAgB4b,EAAY,eAAKD,EAAN,eAAiBre,EAAM0C,MAIxE,OACE,kBAAC,GAAD,CAAM4X,UAAU,gCACd,4BAAQA,UAAU,4BAChB,wBAAIA,UAAU,wCAAd,8BAEF,yBAAKA,UAAU,qEAAqErZ,GAAG,SACrF,yBAAKqZ,UAAU,qBACb,yBAAKA,UAAU,aACb,wBAAIA,UAAU,2DACZ,yBACEkE,cAAY,OACZC,UAAU,QACVC,cAAY,MACZC,YAAU,YACVrE,UAAU,iBACVtS,KAAK,MACL4W,MAAM,6BACNC,QAAQ,eAER,0BACEC,KAAK,UACLC,EAAE,6eAbR,WAoBJ,yBAAKzE,UAAU,iDACb,yBAAKA,UAAU,aACb,yBAAKA,UAAU,OACb,yBAAKA,UAAU,wBACb,uBAAGA,UAAU,oCAAb,kDAGJ,yBAAKA,UAAU,qBACZnZ,EAAU+M,sBACT,yBAAKoM,UAAU,oDACb,wGACA,wBAAIA,UAAU,cACZ,+EAIN,yBAAKA,UAAU,wBACb,0BACEA,UAAU,MACV0E,SAAU,SAAAhE,GACRA,EAAEiE,iBAlDM9d,EAAUiO,mBAAmBiP,KAsDvC,yBAAK/D,UAAU,wBACb,2BACErZ,GAAG,WACHsE,KAAK,WACL2Z,YAAY,YACZzoB,KAAK,OACLiM,MAAO2b,EAASxP,KAChBsQ,SAAU,SAAAnE,GAAC,OAAIuD,EAAc,OAAQvD,EAAEoE,OAAO1c,WAGlD,yBAAK4X,UAAU,4BACb,2BACErZ,GAAG,WACHsE,KAAK,WACL2Z,YAAY,WACZzoB,KAAK,WACLiM,MAAO2b,EAASvP,SAChBqQ,SAAU,SAAAnE,GAAC,OAAIuD,EAAc,WAAYvD,EAAEoE,OAAO1c,WAGtD,yBAAK4X,UAAU,aACb,4BACE7jB,KAAK,SACL6jB,UAAU,sDACV+E,SAAUle,EAAU8I,QAAQ2D,MAE5B,kBAAC,GAAD,CAASyM,QAAM,EAAC/O,KAAM,EAAGrB,QAAS9I,EAAU8I,QAAQ2D,KAAM0M,UAAU,oBALtE,aAYR,kBAACgF,GAAA,EAAD,KACE,yBAAKhF,UAAU,qBACb,yBAAKA,UAAU,aACb,uBAAG3W,KAAI,WAAMC,IAAb,kBACA,0BAAM0W,UAAU,8BAChB,kBAACgF,GAAA,EAAUxD,OAAX,CAAkBC,GAAG,IAAIG,SAAS,KAAlC,qBAKJ,kBAACoD,GAAA,EAAUC,SAAX,CAAoBrD,SAAS,KAC3B,yBAAK5B,UAAU,kDACb,yBAAKA,UAAU,wCACb,0BAAMA,UAAU,eAAhB,wBACA,uBAAG3W,KAAK,0CAAR,+CAaT7L,GAAgBojB,YAAOC,EAAGha,UAAV+Z,CAC3BiD,aAAS,YAAoB,IAAjBhd,EAAgB,EAAhBA,UAAgB,EACMyZ,IAAMwD,SAAS,CAAEvP,KAAM,GAAI5G,MAAO,KADxC,oBACnBoW,EADmB,KACTC,EADS,KAGpBC,EAAgB,SAACve,EAAK0C,GAAN,OAAgB4b,EAAY,eAAKD,EAAN,eAAiBre,EAAM0C,MAIxE,OACE,kBAAC,GAAD,CAAM4X,UAAU,gCACd,4BAAQA,UAAU,4BAChB,wBAAIA,UAAU,wCAAd,8BAEF,yBAAKA,UAAU,qEAAqErZ,GAAG,SACrF,yBAAKqZ,UAAU,qBACb,yBAAKA,UAAU,aACb,wBAAIA,UAAU,2DACZ,yBACEkE,cAAY,OACZC,UAAU,QACVC,cAAY,MACZC,YAAU,YACVrE,UAAU,iBACVtS,KAAK,MACL4W,MAAM,6BACNC,QAAQ,eAER,0BACEC,KAAK,UACLC,EAAE,6eAbR,oBAoBJ,yBAAKzE,UAAU,iDACb,yBAAKA,UAAU,aACb,yBAAKA,UAAU,OACb,yBAAKA,UAAU,wBACb,uBAAGA,UAAU,oCAAb,uIAMJ,yBAAKA,UAAU,qBACZnZ,EAAUgN,qBACT,oCACE,yBAAKmM,UAAU,oDACb,iEACA,wBAAIA,UAAU,cACZ,4EAGJ,yBAAKA,UAAU,aACb,uBAAGA,UAAU,iDAAb,oDAEE,uBAAGA,UAAU,QAAQ3W,KAAK,0CAA1B,sCAOR,yBAAK2W,UAAU,wBACb,0BACEA,UAAU,MACV0E,SAAU,SAAAhE,GACRA,EAAEiE,iBA/DM9d,EAAUqO,cAAc6O,KAmElC,yBAAK/D,UAAU,wBACb,2BACErZ,GAAG,WACHsE,KAAK,WACL2Z,YAAY,YACZzoB,KAAK,OACLiM,MAAO2b,EAASxP,KAChBsQ,SAAU,SAAAnE,GAAC,OAAIuD,EAAc,OAAQvD,EAAEoE,OAAO1c,WAGlD,yBAAK4X,UAAU,yBACb,2BACErZ,GAAG,QACHsE,KAAK,QACL2Z,YAAY,SACZzoB,KAAK,OACLiM,MAAO2b,EAASpW,MAChBkX,SAAU,SAAAnE,GAAC,OAAIuD,EAAc,QAASvD,EAAEoE,OAAO1c,WAGnD,yBAAK4X,UAAU,aACb,4BACE7jB,KAAK,SACL6jB,UAAU,sDACV+E,SAAUle,EAAU8I,QAAQuC,OAE5B,kBAAC,GAAD,CAAS6N,QAAM,EAAC/O,KAAM,EAAGrB,QAAS9I,EAAU8I,QAAQuC,MAAO8N,UAAU,oBALvE,sBAYR,yBAAKA,UAAU,qBACb,yBAAKA,UAAU,aACb,uBACE3W,KAAK,IACLoX,QAAS,SAAAC,GACPA,EAAEiE,iBACF9d,EAAU8N,cAJd,kCAcV,kBAAC,GAAD,CAAUqO,KAAMnc,EAAUiJ,QAAUL,GAAqB4S,MAAM,kBAC7D,uBAAGrC,UAAU,6CAAb,mGAGA,yBAAKA,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAAS5Z,EAAU8N,WAA/E,wBAUClX,GAAiBmjB,YAAOC,EAAGha,UAAV+Z,CAC5BiD,aAAS,YAAoB,IAAjBhd,EAAgB,EAAhBA,UAAgB,EACMyZ,IAAMwD,SAAS,CAAEjR,YAAa,GAAI6B,gBAAiB,KADzD,oBACnBqP,EADmB,KACTC,EADS,KAGpBC,EAAgB,SAACve,EAAK0C,GAAN,OAAgB4b,EAAY,eAAKD,EAAN,eAAiBre,EAAM0C,MAIxE,OACE,kBAAC,GAAD,CAAM4X,UAAU,gCACd,4BAAQA,UAAU,4BAChB,wBAAIA,UAAU,wCAAd,8BAEF,yBAAKA,UAAU,qEAAqErZ,GAAG,SACrF,yBAAKqZ,UAAU,qBACb,yBAAKA,UAAU,aACb,wBAAIA,UAAU,2DACZ,yBACEkE,cAAY,OACZC,UAAU,QACVC,cAAY,MACZC,YAAU,YACVrE,UAAU,iBACVtS,KAAK,MACL4W,MAAM,6BACNC,QAAQ,eAER,0BACEC,KAAK,UACLC,EAAE,6eAbR,qBAoBJ,yBAAKzE,UAAU,iDACb,yBAAKA,UAAU,aACb,yBAAKA,UAAU,OACb,yBAAKA,UAAU,wBACb,uBAAGA,UAAU,8CAAb,8CAGJ,yBAAKA,UAAU,qBACZnZ,EAAUiN,gBACT,yBAAKkM,UAAU,oDACb,kHAGJ,yBAAKA,UAAU,wBACb,0BACEA,UAAU,MACV0E,SAAU,SAAAhE,GACRA,EAAEiE,iBA/CM9d,EAAUoL,eAAe8R,KAmDnC,yBAAK/D,UAAU,4BACb,2BACErZ,GAAG,cACHsE,KAAK,cACL2Z,YAAY,eACZzoB,KAAK,WACLiM,MAAO2b,EAASlR,YAChBgS,SAAU,SAAAnE,GAAC,OAAIuD,EAAc,cAAevD,EAAEoE,OAAO1c,WAGzD,yBAAK4X,UAAU,4BACb,2BACErZ,GAAG,kBACHsE,KAAK,kBACL2Z,YAAY,mBACZzoB,KAAK,WACLiM,MAAO2b,EAASrP,gBAChBmQ,SAAU,SAAAnE,GAAC,OAAIuD,EAAc,kBAAmBvD,EAAEoE,OAAO1c,WAG7D,yBAAK4X,UAAU,aACb,4BACE7jB,KAAK,SACL6jB,UAAU,sDACV+E,SAAUle,EAAU8I,QAAQ4D,QAE5B,kBAAC,GAAD,CAASwM,QAAM,EAAC/O,KAAM,EAAGrB,QAAS9I,EAAU8I,QAAQ4D,OAAQyM,UAAU,oBALxE,+B,oEC5UTre,IALNujB,KAAGC,OACFD,KAAGC,OACFD,KAAGC,OAGa,SAAC,GAAmD,IAAjDnF,EAAgD,EAAhDA,UAAW/U,EAAqC,EAArCA,KAAMoG,EAA+B,EAA/BA,KAAMwT,EAAyB,EAAzBA,SAAU5E,EAAe,EAAfA,SACrDmF,EAAU9E,IAAM+E,OAAO,MACrBC,EAAMC,YAAe,UAArBD,EAOR,OACE,yBAAKtF,UAAS,sBAAiBA,GAAa,KAC1C,2BAAOQ,IAAK4E,EAASzZ,MAAO,CAAE6Z,QAAS,QAAUrpB,KAAK,OAAO8O,KAAMA,EAAM4Z,SAPxD,SAAAnE,GACnB,IAAM+E,EAAe/E,EAAEoE,OAAOY,MAAM,GAAKhF,EAAEoE,OAAOY,MAAM,GAAK,KAC7Db,EAASY,MAMP,2BAAOE,UAAQ,EAACxpB,KAAK,OAAO6jB,UAAU,uBAAuB5X,MAAOiJ,EAAOA,EAAKpG,KAAO,KACvF,4BACE9O,KAAK,SACL6jB,UAAU,gEACVS,QAAS,kBAAM2E,EAAQQ,QAAQ7Z,UAE9BuZ,EAAE,WAEJrF,KAYM5b,GAAY,SAAC,GAA4C,IAA1C4G,EAAyC,EAAzCA,KAAM7C,EAAmC,EAAnCA,MAAOwc,EAA4B,EAA5BA,YAAaC,EAAe,EAAfA,SACpD,OACE,yBAAK7E,UAAU,uBACb,kBAAC,KAAD,CACE6F,eAAa,EACbC,qBAAmB,EACnBC,QAAS,SAACC,EAAOC,GACf,IAAMC,EAAQ,CACZ/N,MAAOtJ,KAAOoX,EAAOE,WAAW/H,QAAQ,OACxChG,IAAKvJ,KAAOoX,EAAOG,SAASC,MAAM,QAEpCxB,EAASqB,EAAOF,IAElBM,OAAQ,CACNC,WAAY,UACZC,YAAa,SAGf,2BACEb,UAAQ,EACRxpB,KAAK,OACL8O,KAAMA,EACN+U,UAAU,YACV5X,MACEA,GAASA,EAAM+P,OAAS/P,EAAMgQ,IAA9B,UACOhQ,EAAM+P,MAAMrJ,OAAS1G,EAAM+P,MAAMrJ,OAAO,KAAOD,KAAOzG,EAAM+P,OAAOrJ,OAAO,KADjF,cAEM1G,EAAMgQ,IAAItJ,OAAS1G,EAAMgQ,IAAItJ,OAAO,KAAOD,KAAOzG,EAAMgQ,KAAKtJ,OAAO,MAEtE,GAEN8V,YAAaA,KAGjB,0BAAMlX,KAAK,eAAesS,UAAU,kBAAkBS,QAAS,SAAAC,GAAC,OAAImE,EAAS,CAAEsB,UAAW,GAAIC,QAAS,IAAM1F,KAC3G,uBAAGV,UAAU,2BAA2BkE,cAAY,YC1E/CuC,GAAU,SAAC,GAA8D,IAA5DpE,EAA2D,EAA3DA,MAA2D,IAApDqE,cAAoD,MAA3C,GAA2C,MAAvCnf,YAAuC,MAAhC,GAAgC,EAA5Bof,EAA4B,EAA5BA,YAAajC,EAAe,EAAfA,SAC9DkC,EAAWhhB,IAAEoN,OAAO0T,GAAQ,SAAC5c,EAAD,OAAQpE,EAAR,EAAQA,IAAR,sBAAwBoE,EAAxB,eAA8BpE,EAAM6B,EAAK7B,IAAQ,OAAO,IADP,EAE3D4a,IAAMwD,SAAS8C,GAF4C,oBAE5EC,EAF4E,KAEtEC,EAFsE,KAI7EC,EAAe,WACnBrC,EAASmC,IAOX,OACE,oCACGxE,GAAS,wBAAIrC,UAAU,oBAAoBqC,GAC5C,yBAAKrC,UAAU,4CACb,kBAACgH,GAAA,EAAD,CACEtC,SAAU,SAAAhE,GACRA,EAAEiE,iBACFoC,MAGDnhB,IAAEyI,IAAIqY,GAAQ,SAACO,EAAOnR,GAAR,OACb,kBAACkR,GAAA,EAAKE,MAAN,CAAYxhB,IAAKoQ,EAAK2L,GAAIQ,KAAKjC,UAAU,mBAAmBmH,UAAWF,EAAMvhB,KAC3E,kBAACwc,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,GAAInC,UAAU,oBAC5B,kBAACgH,GAAA,EAAKK,MAAN,KAAaJ,EAAMhP,QAErB,kBAACiK,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,GAAInC,UAA0B,aAAfiH,EAAM9qB,KAAsB,iBAAmB,IAC5E,kBAAC6qB,GAAA,EAAKM,QAAN,CACEnrB,KAAM8qB,EAAM9qB,KACZiM,MAAOye,EAAKI,EAAMvhB,KAClBmf,SAAU,SAAAnE,GAAC,OAvBThb,EAuBsBuhB,EAAMvhB,IAvBvB0C,EAuB4BsY,EAAEoE,OAAO1c,WAtB1D0e,EAAQ,eAAKD,EAAN,eAAanhB,EAAM0C,KADX,IAAC1C,EAAK0C,UA4Bf,kBAAC6Z,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKkF,GAAI,CAAEG,KAAM,EAAGC,OAAQ,GAAKrF,GAAI,GAAInC,UAAU,iBACjD,4BAAQ7jB,KAAK,SAAS6jB,UAAU,wDAC7B2G,SCvCJc,GAAW,SAAC,GAAD,IAAGjY,EAAH,EAAGA,eAAgBG,EAAnB,EAAmBA,QAASkV,EAA5B,EAA4BA,SAAU6C,EAAtC,EAAsCA,SAAtC,OACtB,oCACE,kBAACzF,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,wBAAInC,UAAU,6CAAd,sBAGJ,kBAACiC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,yBAAKnC,UAAU,uCACb,kBAACgH,GAAA,EAAD,CACEtC,SAAU,SAAAhE,GACRA,EAAEiE,iBACF+C,MAGF,kBAACV,GAAA,EAAKE,MAAN,CAAYzF,GAAIQ,KAAKkF,UAAU,SAC7B,kBAACjF,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,GAAInC,UAAU,oBAC5B,kBAACgH,GAAA,EAAKK,MAAN,wBACA,uBAAGrH,UAAU,gCAAb,mDAEF,kBAACkC,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,kBAAC6E,GAAA,EAAKM,QAAN,CAAc7F,GAAG,SAASrZ,MAAOoH,EAAgBqV,SAAU,SAAAnE,GAAC,OAAImE,EAASjf,IAAEmQ,SAAS2K,EAAEoE,OAAO1c,UAC1FxC,IAAEyI,IAAIzI,IAAEsgB,MAAM,EAAG,KAAK,SAACyB,EAAK7R,GAAN,OACrB,4BAAQpQ,IAAKoQ,EAAK1N,MAAOuf,GACtBA,SAMX,kBAAC1F,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,GAAInC,UAAU,8BACrB,4BACE7jB,KAAK,SACL6jB,UAAU,uDACV+E,SAAUpV,GAEV,kBAAC,GAAD,CAASoQ,QAAM,EAAC/O,KAAM,EAAGrB,QAASA,EAASqQ,UAAU,oBALvD,gBC1BV4H,GAAY,SAAC,GAAD,IAAG3P,EAAH,EAAGA,MAAH,IAAU7P,aAAV,MAAkB,GAAlB,MAAsB4X,iBAAtB,MAAkC,GAAlC,SAChB,yBAAKA,UAAS,qBAAgBA,IAC5B,0BAAMA,UAAU,2BAA2B/H,GAC3C,uBAAG+H,UAAU,oCAAoC5X,KAU/Cyf,GAAc,CAClB,CAAEniB,IAAK,QAASvJ,KAAM,OAAQ8b,MAAO,gBACrC,CAAEvS,IAAK,QAASvJ,KAAM,QAAS8b,MAAO,UAGlC6P,GAAoB,CACxB,CAAEpiB,IAAK,kBAAmBvJ,KAAM,WAAY8b,MAAO,oBACnD,CAAEvS,IAAK,cAAevJ,KAAM,WAAY8b,MAAO,gBAC/C,CAAEvS,IAAK,kBAAmBvJ,KAAM,WAAY8b,MAAO,yBAGxC8P,GAAYnH,YAAOC,EAAG/Z,aAAV8Z,CACvBiD,aAAS,YAAuB,IAApB/c,EAAmB,EAAnBA,aACV,OACE,kBAAC,GAAD,CAAM0b,OAAK,EAACxC,UAAU,mBACpB,kBAACiC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,wBAAInC,UAAU,gDACZ,uBAAGA,UAAU,uDADf,UAEMlZ,EAAayL,aAAatH,KAFhC,YAEwCnE,EAAayL,aAAa9E,YAItE,kBAACwU,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,yBAAKnC,UAAU,kDACb,kBAAC,GAAD,CAAW/H,MAAM,WAAW7P,MAAOtB,EAAa0G,SAASkF,WACzD,kBAAC,GAAD,CAAWsN,UAAU,iBAAiB/H,MAAM,QAAQ7P,MAAOtB,EAAayL,aAAa7E,UAI3F,kBAACuU,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,kBAAC,GAAD,CACEE,MAAM,gBACNqE,OAAQmB,GACRtgB,KAAMT,EAAayL,aACnBoU,YAAY,kBACZjC,SAAU,SAAAnS,GAAY,OAAIzL,EAAawL,mBAAmBC,MAE5D,kBAAC,GAAD,CACE8P,MAAM,gBACNqE,OAAQoB,GACRnB,YAAY,kBACZjC,SAAU,SAAAlS,GAAQ,OAAI1L,EAAamL,eAAeO,OAGtD,kBAAC0P,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAUE,MAAM,aAChB,kBAAC,GAAD,CACE7S,eAAgB1I,EAAa0I,eAC7BG,QAAS7I,EAAa6I,QAAQpC,SAC9BsX,SAAU/d,EAAasL,eACvBsV,SAAU5gB,EAAauL,oBAK/B,kBAAC,GAAD,CAAU2Q,KAAMlc,EAAagJ,QAAUL,GAAuB4S,MAAM,mBAClE,uBAAGrC,UAAU,6CAAb,wDAGA,yBAAKA,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAAS3Z,EAAa8J,UAAlF,QAKJ,kBAAC,GAAD,CAAUoS,KAAMlc,EAAagJ,QAAUL,GAAoB4S,MAAM,oBAC/D,uBAAGrC,UAAU,6CAAb,4DAGA,yBAAKA,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAAS3Z,EAAa8J,UAAlF,QAKJ,kBAAC,GAAD,CAAUoS,KAAMlc,EAAagJ,QAAUL,GAAwB4S,MAAM,mBACnE,uBAAGrC,UAAU,6CAAb,gDACA,yBAAKA,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAAS3Z,EAAa8J,UAAlF,QAKJ,kBAAC,GAAD,CAAUuS,WAAS,EAACd,MAAM,mBAAmBW,KAAMlc,EAAaqM,UAAW+P,QAASpc,EAAawJ,YAC/F,uBAAG0P,UAAU,8BAA8BlZ,EAAamB,MAAMtC,SAAW,oCC1GtEqiB,I,OAAa,SAAC,GAAqC,IAAnCrY,EAAkC,EAAlCA,QAAS+U,EAAyB,EAAzBA,SAAUnX,EAAe,EAAfA,SAAe,EACrC+S,IAAMwD,SAASpU,IADsB,oBACtDvT,EADsD,KAChD8rB,EADgD,OAErC3H,IAAMwD,SAAS,MAFsB,oBAEtDzS,EAFsD,KAEhD6W,EAFgD,OAGP5H,IAAMwD,SAASvW,EAAS/N,qBAHjB,oBAGtDA,EAHsD,KAGjC2oB,EAHiC,OAIf7H,IAAMwD,SAASvW,EAASgC,iBAJT,oBAItDA,EAJsD,KAIrC6Y,EAJqC,OAKjB9H,IAAMwD,SAASvW,EAASiC,gBALP,oBAKtDA,EALsD,KAKtC6Y,EALsC,KAMrD/C,EAAMC,YAAe,CAAC,OAAQ,WAA9BD,EAQFyB,EAAY,uCAAG,sBAAAvf,EAAA,sEACEkd,EAAS,CAC5BrT,OACAC,WAAYnV,EACZqD,sBACA+P,kBACAC,mBANiB,gBASjB0Y,EAAQ,MACRD,EAAQvY,IACRyY,EAAuB5a,EAAS/N,qBAChC4oB,EAAmB7a,EAASgC,iBAC5B8Y,EAAkB9a,EAASiC,iBAbV,2CAAH,qDAiBlB,OACE,kBAACwX,GAAA,EAAD,CACEtC,SAAU,SAAAhE,GACRA,EAAEiE,iBACFoC,MAGF,kBAACC,GAAA,EAAKsB,MAAN,CACEC,QAAM,EACNxI,QAAM,EACN5jB,KAAK,QACL8O,KAAK,aACLtE,GAAG,cACHqZ,UAAU,4BACV/H,MAAOqN,EAAE,eACTld,MAAOsH,GACP8Y,QAASrsB,IAASuT,GAClBmV,SAAU,SAAAnE,GAAC,OAAIuH,EAAQQ,OAAO/H,EAAEoE,OAAO1c,WAEzC,kBAAC4e,GAAA,EAAKsB,MAAN,CACEC,QAAM,EACNxI,QAAM,EACN5jB,KAAK,QACL8O,KAAK,aACLtE,GAAG,cACHqZ,UAAU,4BACV/H,MAAOqN,EAAE,kBACTld,MAAOsH,GACP8Y,QAASrsB,IAASuT,GAClBmV,SAAU,SAAAnE,GAAC,OAAIuH,EAAQQ,OAAO/H,EAAEoE,OAAO1c,WAEzC,kBAAC4e,GAAA,EAAKsB,MAAN,CACEC,QAAM,EACNxI,QAAM,EACN5jB,KAAK,QACL8O,KAAK,aACLtE,GAAG,cACHqZ,UAAU,4BACV/H,MAAOqN,EAAE,kBACTld,MAAOsH,GACP8Y,QAASrsB,IAASuT,GAClBmV,SAAU,SAAAnE,GAAC,OAAIuH,EAAQQ,OAAO/H,EAAEoE,OAAO1c,WAEzC,yBAAK4X,UAAU,kCACb,kBAAC,GAAD,CAAW/U,KAAK,OAAOoG,KAAMA,EAAMwT,SAAUqD,GAC3C,4BACE/rB,KAAK,SACL6jB,UAAU,gEACV+E,UAAW1T,IAAUlV,GAAiB,IAATA,GAAewT,GAE5C,kBAAC,GAAD,CAASoQ,QAAM,EAAC/O,KAAM,EAAGrB,QAASA,EAASqQ,UAAU,oBACpDsF,EAAE,wBAIT,kBAAC0B,GAAA,EAAKsB,MAAN,CACEC,QAAM,EACNxI,QAAM,EACN5jB,KAAK,WACL8O,KAAK,sBACLtE,GAAG,cACHqZ,UAAU,4BACV/H,MAAOqN,EAAE,8BACTld,MAAO5I,EACPgpB,QAAShpB,EACTqlB,SAtF4B,WAChCsD,GAAwB3oB,MAuFtB,kBAACwnB,GAAA,EAAKsB,MAAN,CACEC,QAAM,EACNxI,QAAM,EACN5jB,KAAK,WACL8O,KAAK,kBACLtE,GAAG,cACHqZ,UAAU,sCACV/H,MAAOqN,EAAE,0BACTld,MAAOmH,EACPiZ,QAASjZ,EACTsV,SArGwB,WAC5BuD,GAAoB7Y,MAsGlB,2BACEtE,KAAK,iBACL9O,KAAK,OACLwK,GAAG,cACHqZ,UAAU,2CACV5X,MAAOoH,EACPqV,SAAU,SAAAnE,GAAC,OAAI2H,EAAkB3H,EAAEoE,OAAO1c,QAC1CuD,MAAO,CAAEqM,MAAO,UAElB,0BAAMgI,UAAU,kFACbsF,EAAE,6B,mBCvHLzhB,GACG,YADHA,GAEE,WAFFA,GAGK,UAHLA,GAIK,UAJLA,GAKE,WALFA,GAME,WAGK6kB,GAAQ,SAAC,GAA6C,IAA3C9C,EAA0C,EAA1CA,QAAS+C,EAAiC,EAAjCA,MAAiC,IAA1BC,aAA0B,MAAlB,EAAkB,EAAf/D,EAAe,EAAfA,SAC3CgE,EACGC,KAAKC,KAAKJ,EAAQC,GADrBC,EAEKC,KAAKC,MAAMnD,EAbL,GAa6BgD,GAb7B,EAWXC,EAGED,EAUFI,EAxBW,IAyBTH,GA1BS,IA0B6BA,EADxCG,EAxBW,IA2BbH,GACAA,IAA0BA,EA5Bb,GA6BW,IAAxBA,EAwBJ,OACE,kBAAC,KAAD,CAAYpI,QAtBO,SAAAC,GACnB,IAAM5P,EAAO4P,EAAEoE,OAAO7Z,MAAQyV,EAAEoE,OAAOmE,WAAWhe,KAClD,IAAK6F,EAAM,OAAO,KAClB,OAAQA,GACN,KAAKjN,GACH,OAAOghB,EAtCI,GAuCb,KAAKhhB,GACH,OAAOghB,EAASe,EAvCL,GAwCb,KAAK/hB,GACH,OAAOghB,EAASgE,EAAwBA,EAzC7B,GA0Cb,KAAKhlB,GACH,OAAOghB,GAAUgE,EA3CN,GA2C4CA,GACzD,KAAKhlB,GACH,OAAOghB,EAASe,EA7CL,GA8Cb,KAAK/hB,GACH,OAAOghB,EAAS8D,EA/CL,GAgDb,QACE,OAAO9D,EAAS4D,OAAO3X,OAMzB,kBAAC,KAAWoY,MAAZ,CAAkBnE,SAAUa,GAxDf,EAwDsC3a,KAAMpH,KACzD,kBAAC,KAAWslB,KAAZ,CAAiBpE,SAAUa,GAzDd,EAyDqC3a,KAAMpH,MACtDmlB,GAAwB,kBAAC,KAAWI,SAAZ,CAAqBne,KAAMpH,KAEpD+B,IAAEyI,IA1Ce,WACpB,IAAM8J,EAAQ0Q,EAAwBA,EAChCQ,EAAQV,EAAQxQ,EAChBC,EAAMD,GAASkR,EAAQR,EAAqBA,EAAqBQ,GACvE,OAAOzjB,IAAEsgB,MAAM/N,EArBA,EAqBoBC,EArBpB,GA2DNkR,IAAiB,SAACxY,EAAMgF,GAAP,OACtB,kBAAC,KAAW6L,KAAZ,CAAiBjc,IAAKoQ,EAAK7K,KAAM6F,EA5DtB,EA4DyCyY,OAAQ3D,IAAY9U,EA5D7D,GA6DRA,OAIHkY,GAAwB,kBAAC,KAAWI,SAAZ,CAAqBne,KAAMpH,KACrD,kBAAC,KAAW2lB,KAAZ,CAAiBzE,SAAUa,GAAW+C,EAlEzB,EAkE6C1d,KAAMpH,KAChE,kBAAC,KAAW4lB,KAAZ,CAAiB1E,SAAUa,GAAW+C,EAnEzB,EAmE6C1d,KAAMpH,OCrEzD6lB,GAAW,SAAC,GAAuD,IAArD7E,EAAoD,EAApDA,SAAoD,IAA1C8E,gBAA0C,MAA/B,GAA+B,MAA3BC,aAA2B,MAAnB,CAAC,GAAI,GAAI,IAAU,EACrEtE,EAAMC,YAAe,UAArBD,EAIR,OACE,yBAAKtF,UAAU,4BACb,kBAACoB,GAAA,EAAD,CAAUC,SAAU,SAAArQ,GAAI,OAJL,SAAAA,GAAI,OAAI6T,EAAS4D,OAAOzX,IAIfD,CAAeC,KACzC,kBAACoQ,GAAA,EAASI,OAAV,CAAiBxB,UAAU,gBAAgB2J,GAC3C,kBAACvI,GAAA,EAASM,KAAV,KACG9b,IAAEyI,IAAIub,GAAO,SAAC5Y,EAAM8E,GAAP,OACZ,kBAACsL,GAAA,EAASO,KAAV,CAAejc,IAAKoQ,EAAK8L,SAAU5Q,GAChCA,OAIP,0BAAMgP,UAAU,sBAAsBsF,EAAE,eCfnCuE,GAAa,SAAC,GAAD,IACxB7J,EADwB,EACxBA,UACA4F,EAFwB,EAExBA,QACA+C,EAHwB,EAGxBA,MACAC,EAJwB,EAIxBA,MACAkB,EALwB,EAKxBA,OACA9Z,EANwB,EAMxBA,SACA+Z,EAPwB,EAOxBA,SACAC,EARwB,EAQxBA,aACAC,EATwB,EASxBA,aACAhK,EAVwB,EAUxBA,SAVwB,OAYvB0I,EACC,yBAAK3I,UAAS,+BAA0BA,GAAa,KAClDC,EACD,kBAAC,GAAD,cAAW,CAAE2F,UAAS+C,QAAOC,SAA7B,CAAsC/D,SAAUmF,MAC9CF,GAAU,kBAAC,GAAD,CAAUH,SAAU3Z,EAAU4Z,MAAOG,EAAUlF,SAAUoF,KAJhE,M,8CCkBEC,IA7BJhF,KAAGC,OAAOgF,WACZjF,KAAGC,OAAOgF,WACRjF,KAAGC,OACHD,KAAGC,OACDD,KAAGC,OAyBiB,SAAC,GAAD,IAAGlN,EAAH,EAAGA,MAAOmS,EAAV,EAAUA,QAASpS,EAAnB,EAAmBA,MAAOqS,EAA1B,EAA0BA,MAA1B,OAC7B,wBAAIC,MAAM,MAAMF,QAASA,EAASpS,MAAOA,EAAOgI,UAAS,gCAA2BqK,GAAS,WAC1FpS,KA4CQsS,GAAY,SAAC,GAAD,IAAGvS,EAAH,EAAGA,MAAOqS,EAAV,EAAUA,MAAOG,EAAjB,EAAiBA,UAAWpiB,EAA5B,EAA4BA,MAAOmgB,EAAnC,EAAmCA,OAAQtI,EAA3C,EAA2CA,SAA3C,OACvB,wBAAIjI,MAAOA,GACT,yBAAKgI,UAAS,gBAAWqK,GAAS,WAC9B9B,EAAoFtI,EAA3E,0BAAMD,UAAS,gBAAWwK,EAAY,YAAc,KAAOpiB,MAa/DqiB,GAAb,oLAgBI,OAAO,kBAACC,GAAA,EAAU5X,KAAK6X,WAhB3B,GAAiCrK,IAAMsK,eAA1BH,GACJ9J,OArFkB,SAAC,GAAD,IAAG2E,EAAH,EAAGA,EAAGoB,EAAN,EAAMA,OAAQzG,EAAd,EAAcA,SAAd,OACzB,+BACE,wBAAID,UAAU,cACXpa,IAAEyI,IAAIqY,GAAQ,SAACO,EAAOnR,GAAR,OACb,kBAAC,GAAD,CACEpQ,IAAKoQ,EACLmC,MAAOqN,EAAE2B,EAAMhP,OACfmS,QAASnD,EAAMmD,QACfpS,MAAOiP,EAAMjP,MACbqS,MAAOpD,EAAMoD,WAGhBpK,KAwEMwK,GAGJI,WAAaX,GAHTO,GAKJ9G,KAAO,gBAAG1D,EAAH,EAAGA,SAAH,OAAkB,+BAAQA,IAL7BwK,GAOJK,SAzDe,SAAC,GAAD,IAAGV,EAAH,EAAGA,QAASnS,EAAZ,EAAYA,MAAZ,OACtB,wBAAI+H,UAAU,iBACZ,wBAAIoK,QAASA,GACX,uBAAGpK,UAAU,wCAAwC/H,GAAS,wBA+CvDwS,GASJxI,IA/Ce,SAAC,GAAD,IAAGyE,EAAH,EAAGA,OAAQte,EAAX,EAAWA,MAAOoiB,EAAlB,EAAkBA,UAAWrX,EAA7B,EAA6BA,UAAW8M,EAAxC,EAAwCA,SAAxC,OACtB,wBAAID,UAAS,kBAAa7M,EAAY,QAAU,KAC7CvN,IAAEyI,IAAIqY,GAAQ,SAACO,EAAOnR,GAAR,OACb,kBAAC,GAAD,CACEpQ,IAAKoQ,EACLkC,MAAOiP,EAAMjP,MACbqS,MAAOpD,EAAMoD,MACbjiB,MAAOA,EAAM6e,EAAMvhB,KACnB8kB,UAAWA,GAAaA,EAAUvD,EAAMvhB,UAG3Cua,IA2BQwK,GAWJM,KAAOR,GAXHE,GAaJzI,OAAS,gBAAG/B,EAAH,EAAGA,SAAH,OAAkB,+BAAQA,IC3GrC,IAAM+K,GAAqB,SAAC,GAAD,IAAG1F,EAAH,EAAGA,EAAG3V,EAAN,EAAMA,QAAS+W,EAAf,EAAeA,OAAf,IAAuBnf,YAAvB,MAA8B,GAA9B,EAAkC0jB,EAAlC,EAAkCA,MAAO5J,EAAzC,EAAyCA,SAAzC,OAChC,kBAAC,GAAD,KACE,kBAAC,GAAMV,OAAP,CAAc+F,OAAQA,EAAQpB,EAAG,SAAA5f,GAAG,OAAI4f,EAAE,UAAD,OAAW5f,MAClD,kBAAC,GAAMmlB,WAAP,CAAkB5S,MAAOqN,EAAE,SAAUtN,MAAM,SAE7C,kBAAC,GAAM2L,KAAP,KACGpc,EAAKkD,OAAS,GAAKkF,EAClB/J,IAAEyI,IAAI9G,GAAM,SAACgH,EAAMuH,GAAP,OACV,kBAAC,GAAMmM,IAAP,CAAWvc,IAAKoQ,EAAK4Q,OAAQA,EAAQte,MAAO,SAAA1C,GAAG,OAAI6I,EAAK7I,IAAM8kB,UAAW,SAAA9kB,GAAG,MAAY,aAARA,IAC9E,kBAAC,GAAMqlB,KAAP,CAAYxC,QAAM,GAChB,4BACEpsB,KAAK,SACL6jB,UAAU,0EACVS,QAAS,kBAAMY,EAAS9S,EAAK5H,MAE5B2e,EAAE,eAMX,kBAAC,GAAMwF,SAAP,CAAgBV,QAAS1D,EAAOjc,OAAS,EAAGwN,MAAOgT,OCXrDC,GAAuB,CAC3B,CAAEjT,MAAO,WAAYvS,IAAK,YAC1B,CAAEuS,MAAO,SAAUvS,IAAK,UACxB,CAAEuS,MAAO,OAAQvS,IAAK,cACtB,CAAEuS,MAAO,UAAWvS,IAAK,eACzB,CAAEuS,MAAO,aAAcvS,IAAK,kBAGjBylB,GAAOvK,YAAOC,EAAG9Z,UAAV6Z,CAClBiD,aAAS,YAAoB,IAAjB9c,EAAgB,EAAhBA,UACFue,EAAMC,YAAe,CAAC,OAAQ,SAAU,eAAxCD,EACR,OACE,kBAAC,GAAD,CAAM9C,OAAK,EAACxC,UAAU,cAAcqC,MAAOiD,EAAE,oBAC3C,kBAAC,GAAD,CAAkBtF,UAAU,iBAC1B,kBAACiC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,kBAAC,GAAD,CAAUnC,UAAU,mBAAmBqC,MAAOiD,EAAE,kBAChD,yBAAKtF,UAAU,cACb,uBACE3W,KAAK,0BACLyb,OAAO,SACP9E,UAAU,iDAEV,uBAAGA,UAAU,+BAA+BkE,cAAY,SACvDoB,EAAE,eAEL,uBAAGjc,KAAK,yBAAyB2W,UAAU,gCACzC,uBAAGA,UAAU,+BAA+BkE,cAAY,SACvDoB,EAAE,uBAIT,kBAACpD,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,kBAAC,GAAD,CAAUnC,UAAU,mBAAmBqC,MAAOiD,EAAE,oBAChD,kBAAC,GAAD,CACE3V,QAAS5I,EAAU4I,QAAQC,OAC3B8U,SAAU3d,EAAUkK,WACpB1D,SAAUxG,EAAUwG,cAK5B,kBAAC,GAAD,CAAkByS,UAAU,iBAC1B,kBAACiC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CAAUnC,UAAU,mBAAmBqC,MAAOiD,EAAE,sBAGpD,kBAAC,GAAD,CAAalF,OAAK,EAACzQ,QAAS5I,EAAU4I,QAAQE,MAC5C,kBAACoS,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CACEuE,OAAQwE,GACR3jB,KAAMR,EAAUoJ,cAAcib,QAC9B/J,SAAUta,EAAU0K,aACpB9B,QAAS5I,EAAU4I,QAAQE,KAC3Bob,MAAO3F,EAAE,cACTA,EAAGA,MAIT,kBAACrD,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CACEnC,UAAU,cACV4F,QAAS7e,EAAUoI,WAAWY,UAC9B4Y,MAAO5hB,EAAUoI,WAAWc,YAC5BD,SAAUjJ,EAAUoI,WAAWa,SAC/Bga,aAAcjjB,EAAU8J,WACxBoZ,aAAcljB,EAAUgK,gBAExB,0BAAMiP,UAAU,uBACd,0BAAMA,UAAU,mCAAmCjZ,EAAUoI,WAAWe,oBACvEoV,EAAE,eAOf,kBAAC,GAAD,CAAUtC,KAAMjc,EAAU+I,QAAUL,GAAgB4S,MAAOiD,EAAE,kBAC3D,uBAAGtF,UAAU,wBAAwBsF,EAAE,mBACvC,yBAAKtF,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAAS1Z,EAAUyK,YAC5E8T,EAAE,gBAIT,kBAAC,GAAD,CAAUtC,KAAMjc,EAAU+I,QAAUL,GAAc4S,MAAOiD,EAAE,gBACzD,uBAAGtF,UAAU,4CAA4CjZ,EAAUkB,MAAMtC,SACzE,yBAAKqa,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAAS,kBAAM1Z,EAAU6J,aAClF0U,EAAE,gBAIT,kBAAC,GAAD,CACEnC,WAAS,EACTd,MAAOiD,EAAE,4BACTtC,KAAMjc,EAAUkB,MAAM2H,QAAU7I,EAAUkB,MAAM4H,KAChDqT,QAASnc,EAAUuJ,YAEnB,uBAAG0P,UAAU,8BAA8BjZ,EAAUkB,MAAMtC,SAAW2f,EAAE,qCC9G5E5kB,I,OACC,OADDA,GAEE,OAFFA,GAGK,UAHLA,GAIK,UAJLA,GAKK,UALLA,GAMO,YANPA,GAOG,QAGI2qB,GAAsB,SAAC,GAAqD,IAAnD3E,EAAkD,EAAlDA,OAAkD,IAA1Cnf,YAA0C,MAAnC,GAAmC,EAA/B0jB,EAA+B,EAA/BA,MAAO5J,EAAwB,EAAxBA,SAAU1R,EAAc,EAAdA,QAChE2V,EAAMC,YAAe,WAArBD,EAEFgG,EAAiB,SAAA3hB,GACrB,OAAQA,GACN,KAAKjJ,GACL,KAAKA,GACH,MAAO,aACT,KAAKA,GACH,MAAO,SACT,KAAKA,GACL,KAAKA,GACH,MAAO,gBACT,KAAKA,GACL,KAAKA,GACL,QACE,MAAO,eAIb,OACE,kBAAC,GAAD,KACE,kBAAC,GAAMigB,OAAP,CAAc+F,OAAQA,EAAQpB,EAAG,SAAA5f,GAAG,OAAI4f,EAAE,iBAAD,OAAkB5f,MACzD,kBAAC,GAAMmlB,WAAP,CAAkB5S,MAAM,GAAGD,MAAM,SAEnC,kBAAC,GAAM2L,KAAP,KACGpc,EAAKkD,OAAS,GAAKkF,EAClB/J,IAAEyI,IAAI9G,GAAM,SAACgH,EAAMuH,GAAP,OACV,kBAAC,GAAMmM,IAAP,CAAWvc,IAAKoQ,EAAK4Q,OAAQA,EAAQte,MAAO,SAAA1C,GAAG,OAAI6I,EAAK7I,IAAM8kB,UAAW,SAAA9kB,GAAG,MAAY,aAARA,IAC9E,kBAAC,GAAMqlB,KAAP,CAAYxC,QAAM,GAChB,yBAAKvI,UAAU,WACb,4BACE7jB,KAAK,SACL6jB,UAAU,+CACVS,QAAS,kBAAMY,EAAS9S,EAAK5H,KAC7Boe,SAAUxW,EAAK5E,SAAWjJ,IAAkB6N,EAAK5E,SAAWjJ,IAE5D,uBAAGsf,UAAU,sBAAsBkE,cAAY,UAEjD,0BAAMlE,UAAU,kBACd,uBAAGA,UAAS,2BAAsBsL,EAAe/c,EAAK5E,SAAWua,cAAY,gBAOvF,kBAAC,GAAM4G,SAAP,CAAgBV,QAAS1D,EAAOjc,OAAS,EAAGwN,MAAOgT,OC9DhDM,GAAW,CACtB7Q,IAAKwK,KAAGC,OACRxe,GAAIue,KAAGC,OACPxb,OAAQub,KAAGC,OACXxK,WAAYuK,KAAGC,OACfla,KAAMia,KAAGC,OACTvK,QAASsK,KAAGC,OACZtK,KAAMqK,KAAGC,OACTrK,SAAUoK,KAAGC,OACbpK,YAAamK,KAAGC,OAChB1J,KAAMyJ,KAAGC,OACTzJ,QAASwJ,KAAGC,OACZxJ,eAAgBuJ,KAAGC,OACnBvJ,OAAQsJ,KAAGC,OACXtJ,WAAYqJ,KAAGC,OACf/W,UAAW8W,KAAGsG,MAAM,KAGTC,GAAa,CACxBxgB,KAAMia,KAAGC,OACTvK,QAASsK,KAAGC,OACZlJ,KAAMiJ,KAAGC,OACTjJ,IAAKgJ,KAAGC,OACRhJ,YAAa+I,KAAGC,OAChB3V,eAAgB0V,KAAGC,OACnBzJ,QAASwJ,KAAGC,OACZ/I,OAAQ8I,KAAGC,OACX9I,QAAS6I,KAAGC,OACZ7I,UAAW4I,KAAGC,OACdtJ,WAAYqJ,KAAGC,OACf5I,MAAO2I,KAAGC,QCzBCuG,GAAiBC,YAAgB,UAAhBA,EAA2B,gBAAGrG,EAAH,EAAGA,EAAG7K,EAAN,EAAMA,QAAN,OACvD,yBAAKuF,UAAU,uDACb,kBAACiC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAK0J,GAAI,EAAGzJ,GAAI,GAAInC,UAAU,qBAC5B,yBAAKA,UAAU,+BACb,wBAAIA,UAAU,qCACZ,uBAAGA,UAAU,+BAA+BkE,cAAY,SACvDzJ,EAAQxP,MAEX,yBAAK+U,UAAU,QACb,yBAAKA,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,0BACnC,yBAAKtF,UAAU,mBAAmBvF,EAAQG,SAAW,MAEvD,yBAAKoF,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,uBACnC,yBAAKtF,UAAU,mBAAmBvF,EAAQI,MAAQ,MAEpD,yBAAKmF,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,0BACnC,yBAAKtF,UAAU,mBAAmBvF,EAAQK,UAAY,SAK9D,kBAACoH,GAAA,EAAD,CAAK0J,GAAI,EAAGzJ,GAAI,IACd,kBAACF,GAAA,EAAD,CAAKjC,UAAU,oBACb,kBAACkC,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,yBAAKnC,UAAU,2BAA2BsF,EAAE,uBAC5C,yBAAKtF,UAAU,mBAAmBvF,EAAQgB,MAAQ,MAEpD,kBAACyG,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,yBAAKnC,UAAU,2BAA2BsF,EAAE,6BAC5C,yBAAKtF,UAAU,mBAAmBvF,EAAQoB,YAAc,OAG5D,kBAACoG,GAAA,EAAD,CAAKjC,UAAU,oBACb,kBAACkC,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,yBAAKnC,UAAU,2BAA2BsF,EAAE,6BAC5C,yBAAKtF,UAAU,mBAAmBvF,EAAQE,YAAc,MAE1D,kBAACuH,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,yBAAKnC,UAAU,2BAA2BsF,EAAE,8BAC5C,yBAAKtF,UAAU,mBAAmBvF,EAAQM,aAAe,OAG7D,kBAACkH,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,yBAAKnC,UAAU,2BAA2BsF,EAAE,2BAC5C,yBAAKtF,UAAU,mBAAmBvF,EAAQkB,gBAAkB,MAE9D,kBAACuG,GAAA,EAAD,CAAKkF,GAAI,EAAGjF,GAAI,IACd,yBAAKnC,UAAU,2BAA2BsF,EAAE,0BAC5C,yBAAKtF,UAAU,mBAAmBvF,EAAQmB,QAAU,aAQhE8P,GAAeG,UAAY,CACzBpR,QAASyK,KAAGsG,MAAMD,IAAUpB,YC7DvB,IAAM2B,GAAiBH,YAAgB,UAAhBA,EAA2B,gBAAGrG,EAAH,EAAGA,EAAGyG,EAAN,EAAMA,WAAY1K,EAAlB,EAAkBA,SAAU1R,EAA5B,EAA4BA,QAASqc,EAArC,EAAqCA,cAAe5O,EAApD,EAAoDA,WAAYY,EAAhE,EAAgEA,cAAhE,OACvD,kBAAC,GAAD,CAAarO,QAASA,GACpB,yBAAKqQ,UAAU,8BACZ+L,EAAWthB,OAAS,EACnB7E,IAAEyI,IAAI0d,GAAY,SAAChQ,EAAWjG,GAAZ,OAChB,yBAAKpQ,IAAKoQ,EAAKkK,UAAU,gBACvB,yBAAKA,UAAU,uBACb,yBAAKA,UAAU,cACb,yBAAKA,UAAU,uDACZsF,EAAE,mCAEL,yBAAKtF,UAAU,qBAAqBjE,EAAUvM,iBAEhD,yBAAKwQ,UAAU,+BACb,wBAAIA,UAAU,qCACZ,uBAAGA,UAAU,+BAA+BkE,cAAY,SACvDnI,EAAU9Q,MAEb,yBAAK+U,UAAU,QACb,yBAAKA,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,gCACnC,yBAAKtF,UAAU,mBAAmBjE,EAAUI,aAAe,MAE7D,yBAAK6D,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,4BACnC,yBAAKtF,UAAU,mBAAmBjE,EAAUnB,SAAW,MAEzD,yBAAKoF,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,yBACnC,yBAAKtF,UAAU,mBAAmBjE,EAAUE,MAAQ,MAEtD,yBAAK+D,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,4BACnC,yBAAKtF,UAAU,mBAAmBjE,EAAUG,KAAO,MAErD,yBAAK8D,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,yBACnC,yBAAKtF,UAAU,mBAAmBjE,EAAUI,aAAe,MAE5DiB,EAAWhE,MAAK,SAAAqL,GAAC,OAAIA,EAAEhJ,OAASM,EAAUL,YAAY,yBAAKsE,UAAU,YACpE,yBAAKA,UAAU,kBAAkBsF,EAAE,wBACnC,yBAAKtF,UAAU,mBAAmB5C,EAAWhE,MAAK,SAAAqL,GAAC,OAAIA,EAAEhJ,OAASM,EAAUL,WAASV,KAAO,QAIlG,yBAAKgF,UAAU,uBACb,4BACE7jB,KAAK,SACL6jB,UAAU,iDACVS,QAAS,kBAAMY,EAAStF,IACxBgJ,SAAUiH,GAAiBrc,GAE1B2V,EAAE,aAIT,kBAAC,GAAD,CACEA,EAAGA,EACHlI,WAAYA,EACZrB,UAAWA,EACXiC,cAAeA,QAKnB,yBAAKgC,UAAU,uBACb,uBAAGA,UAAU,wCAAwCsF,EAAE,uBAO7D2G,GAAa,SAAC,GAAiD,IAA/C3G,EAA8C,EAA9CA,EAAGlI,EAA2C,EAA3CA,WAAYrB,EAA+B,EAA/BA,UAAWiC,EAAoB,EAApBA,cACxCkO,EAAS9O,EAAWhE,MAAK,SAAAqL,GAAC,OAAIA,EAAEhJ,OAASM,EAAUL,WACzD,OAAIwQ,OAC0B9iB,IAAxB8iB,EAAO3a,aAEP,yBAAKyO,UAAU,kCACb,yBAAKA,UAAU,uBACb,uBAAG3W,KAAK,IAAI2W,UAAU,qDACpBS,QAAS,SAAAC,GACPA,EAAEiE,mBAGL,uBAAG3E,UAAU,kBAAkBkE,cAAY,OAAOvY,MAAO,CAAEwgB,gBAAiB,aAL7E,gBAOF,yBAAKnM,UAAU,uBACb,yBAAKA,UAAU,cACb,yBAAKA,UAAU,qBAAf,OAEF,yBAAKA,UAAU,+BACb,wBAAIA,UAAU,qCACZ,uBAAGA,UAAU,+BAA+BkE,cAAY,SACvDgI,EAAOjR,QAAU,KAEpB,yBAAK+E,UAAU,QACb,yBAAKA,UAAU,WAAWrU,MAAO,CAAEygB,YAAa,OAC9C,yBAAKpM,UAAU,kBAAkBsF,EAAE,4BACnC,yBAAKtF,UAAU,mBAAmBkM,EAAO/Q,WAAa,MAExD,yBAAK6E,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,yBACnC,yBAAKtF,UAAU,mBAAmBkM,EAAO9Q,QAAU,MAErD,yBAAK4E,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,4BACnC,yBAAKtF,UAAU,mBAAmBkM,EAAOhR,WAAa,QAK5D,yBAAK8E,UAAU,cACb,yBAAKA,UAAU,qBAAf,OAEF,yBAAKA,UAAU,+BACb,wBAAIA,UAAU,qCACZ,uBAAGA,UAAU,+BAA+BkE,cAAY,SACvDgI,EAAO7Q,QAAU,KAEpB,yBAAK2E,UAAU,QACb,yBAAKA,UAAU,WAAWrU,MAAO,CAAEygB,YAAa,OAC9C,yBAAKpM,UAAU,kBAAkBsF,EAAE,4BACnC,yBAAKtF,UAAU,mBAAmBkM,EAAO3Q,WAAa,MAExD,yBAAKyE,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,yBACnC,yBAAKtF,UAAU,mBAAmBkM,EAAO1Q,QAAU,MAErD,yBAAKwE,UAAU,YACb,yBAAKA,UAAU,kBAAkBsF,EAAE,4BACnC,yBAAKtF,UAAU,mBAAmBkM,EAAO5Q,WAAa,UAShE,yBAAK0E,UAAU,kCACb,yBAAKA,UAAU,uBACb,uBAAG3W,KAAK,IAAI2W,UAAU,qDACpBS,QAAS,SAAAC,GACPA,EAAEiE,mBAGL,uBAAG3E,UAAU,kBAAkBkE,cAAY,OAAOvY,MAAO,CAAEwgB,gBAAiB,aAL7E,gBAOF,yBAAKnM,UAAU,uBACb,yBAAKA,UAAU,kCACZkM,EAAO3a,cAAgB,OAO1B,yBAAKyO,UAAU,kCACrB,yBAAKA,UAAU,uBACb,uBAAG3W,KAAK,IAAI2W,UAAU,qDACpBS,QAAS,SAAAC,GACPA,EAAEiE,iBACF3G,EAAcjC,EAAUL,WAE3B,uBAAGsE,UAAU,mBAAmBkE,cAAY,OAAOvY,MAAO,CAAEwgB,gBAAiB,aAL9E,kBAWRL,GAAeD,UAAY,CACzBE,WAAY7G,KAAGmH,QAAQnH,KAAGsG,MAAMC,KAChCpK,SAAU6D,KAAGoH,KACb3c,QAASuV,KAAGqH,KACZP,cAAe9G,KAAGqH,MC9Kb,IAAMC,GAAiBb,YAAgB,UAAhBA,EAC5B,gBAAGrG,EAAH,EAAGA,EAAG7K,EAAN,EAAMA,QAASgS,EAAf,EAAeA,OAAQpL,EAAvB,EAAuBA,SAAUqL,EAAjC,EAAiCA,aAAcC,EAA/C,EAA+CA,YAAa3O,EAA5D,EAA4DA,cAAe4O,EAA3E,EAA2EA,kBAAmBxP,EAA9F,EAA8FA,WAA9F,OACE,oCACE,yBAAK4C,UAAU,8BACb,wBAAIA,UAAU,iCAAiCsF,EAAE,iBACjD,4BACEnpB,KAAK,SACL6jB,UAAU,wCACVS,QAAS,kBAAMgM,EAAOhS,EAAQC,MAC9BqK,SAAU2H,GAAgBC,GAE1B,kBAAC,GAAD,CAAS5M,QAAM,EAAC/O,KAAM,EAAGrB,QAASgd,EAAa3M,UAAU,oBACxDsF,EAAE,eAGP,kBAACoG,GAAD,CAAgBjR,QAASA,IACzB,wBAAIuF,UAAU,wCAAwCsF,EAAE,sBACxD,0BAAM3Z,MAAO,CAAEkhB,SAAU,QAASC,OAAQ,IACxC,kBAAC,GAAD,CAAa9M,UAAU,eAAerQ,QAASid,EAAmB5b,KAAM,KAE1E,kBAAC8a,GAAD,CACEC,WAAYtR,EAAQrM,UAAUgd,QAC9Bzb,QAAS+c,EACTV,cAAeW,EACftL,SAAU,SAAAtF,GAAS,OAAIsF,EAAS5G,EAAQC,IAAKqB,IAC7CiC,cAAeA,EACfZ,WAAYA,QAMpBoP,GAAeX,UAAY,CACzBpR,QAASyK,KAAGsG,MAAMD,IAAUpB,WAC5B9I,SAAU6D,KAAGoH,KACbG,OAAQvH,KAAGoH,KACXI,aAAcxH,KAAGqH,KACjBI,YAAazH,KAAGqH,M,wBCvCLQ,GAAgBpB,YAAgB,UAAhBA,EAA2B,gBAAGrG,EAAH,EAAGA,EAAG1I,EAAN,EAAMA,QAASsG,EAAf,EAAeA,QAAS8J,EAAxB,EAAwBA,OAAQC,EAAhC,EAAgCA,cAAetd,EAA/C,EAA+CA,QAA/C,OACtD,yBAAKqQ,UAAU,yCACb,kBAACiC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAK0J,GAAI,EAAGzJ,GAAI,GAAInC,UAAU,WAC5B,yBAAKA,UAAU,oCACb,kBAAC,GAAD,CAASD,QAAM,EAAC/O,KAAM,EAAGrB,QAASA,EAASqQ,UAAU,mCACnD,uBAAGA,UAAU,wDAAwDkE,cAAY,UAElFoB,EAAE,cAEL,yBAAKtF,UAAU,gBACb,yBAAKA,UAAU,YACb,yBAAKA,UAAU,sCAAsCsF,EAAE,2BACvD,yBAAKtF,UAAU,gBAAgBpD,EAAQnO,UAAY,KAErD,yBAAKuR,UAAU,YACb,yBAAKA,UAAU,sCAAsCsF,EAAE,yBACvD,yBAAKtF,UAAU,gBAAgBpD,EAAQjT,QAAU,KAEnD,yBAAKqW,UAAU,YACb,yBAAKA,UAAU,sCAAsCsF,EAAE,6BACvD,yBAAKtF,UAAU,gBAAgBpD,EAAQhO,YAAc,OAI3D,kBAACsT,GAAA,EAAD,CAAK0J,GAAI,EAAGzJ,GAAI,GAAInC,UAAU,iBAC5B,yBAAKA,UAAU,6BACb,yBAAKA,UAAU,OACb,yBAAKA,UAAU,sCAAsCsF,EAAE,0BACvD,yBAAKtF,UAAU,gBAAgBpD,EAAQ7N,aAAe,MAExD,yBAAKiR,UAAU,OACb,yBAAKA,UAAU,sCAAsCsF,EAAE,6BACvD,yBAAKtF,UAAU,gBAAgBpD,EAAQ3N,eAAiB,OAG5D,yBAAK+Q,UAAU,6BACb,kBAACkN,GAAA,EAAD,CAAgBC,UAAU,MAAMC,QAAS,kBAACC,GAAA,EAAD,KAAU/H,EAAE,kBACnD,4BACEnpB,KAAK,SACL6jB,UAAU,iDACVS,QAASyC,EACT6B,SAAUpV,GAET2V,EAAE,WAGP,4BACEnpB,KAAK,SACL6jB,UAAU,gEACVS,QAASuM,EACTjI,SAAUpV,GAAWsd,GAErB,kBAAC,GAAD,CAASlN,QAAM,EAAC/O,KAAM,EAAGrB,QAASsd,EAAejN,UAAU,oBAC1DsF,EAAE,uBAQfyH,GAAclB,UAAY,CACxBjP,QAASsI,KAAGsG,MAAM,CAChB/c,SAAUyW,KAAGC,OACbxb,OAAQub,KAAGC,OACXvW,WAAYsW,KAAGC,OACfpW,YAAamW,KAAGoI,OAChBre,cAAeiW,KAAGoI,SAEpBpK,QAASgC,KAAGoH,KACZU,OAAQ9H,KAAGoH,KACXW,cAAe/H,KAAGqH,KAClB5c,QAASuV,KAAGqH,MC/Dd,IAAMgB,GAAgB,CACpB,CAAEtV,MAAO,KAAMvS,IAAK,KAAMsS,MAAO,MACjC,CAAEC,MAAO,OAAQvS,IAAK,OAAQ2kB,MAAO,QACrC,CAAEpS,MAAO,aAAcvS,IAAK,cAC5B,CAAEuS,MAAO,aAAcvS,IAAK,cAC5B,CAAEuS,MAAO,cAAevS,IAAK,eAC7B,CAAEuS,MAAO,OAAQvS,IAAK,SAGX8nB,GAAc5M,YAAOC,EAAG5Z,WAAV2Z,CACzBiD,aAAS,YAAqB,IAAlB5c,EAAiB,EAAjBA,WACFqe,EAAMC,YAAe,CAAC,UAAW,SAAU,eAA3CD,EACR,OACE,kBAAC,GAAD,CAAM9C,OAAK,EAACxC,UAAU,sBAAsBqC,MAAOiD,EAAE,cACnD,kBAACyH,GAAD,CACEnQ,QAAS3V,EAAWiW,YACpBgG,QAASjc,EAAW8W,cACpBiP,OAAQ,kBAAM/lB,EAAW2J,SAASnB,KAClCwd,cAAehmB,EAAW0I,QAAQqN,UAClCrN,QAAS1I,EAAW0I,QAAQkN,OAE9B,kBAAC,GAAD,KACE,kBAACoF,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CAAUnC,UAAU,mBAAmBqC,MAAOiD,EAAE,oBAGpD,kBAAC,GAAD,CAAalF,OAAK,EAACzQ,QAAS1I,EAAW0I,QAAQmN,SAAW7V,EAAW0I,QAAQkN,MAC3E,kBAACoF,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CACEuE,OAAQ6G,GACRhmB,KAAMN,EAAWkW,aAAaiO,QAC9B/J,SAAUpa,EAAWwW,YACrB9N,QAAS1I,EAAW0I,QAAQmN,YAIlC,kBAACmF,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CACEnC,UAAU,cACV4F,QAAS3e,EAAWkI,WAAWY,UAC/B4Y,MAAO1hB,EAAWkI,WAAWc,YAC7BD,SAAU/I,EAAWkI,WAAWa,SAChCga,aAAc/iB,EAAW4J,WACzBoZ,aAAchjB,EAAW8J,gBAEzB,0BAAMiP,UAAU,uBACd,0BAAMA,UAAU,mCAAmC/Y,EAAWkI,WAAWe,oBACxEoV,EAAE,eAOf,kBAAC,GAAD,CACEtU,KAAK,KACLiS,aAAW,EACXjD,UAAU,sBACVgD,KAAM/b,EAAW6I,QAAUL,GAC3ByT,QAAS,kBAAMjc,EAAW2J,SAASnB,KACnC4S,MAAOiD,EAAE,iBAET,kBAACkH,GAAD,CACE/R,QAASxT,EAAWoW,gBACpBgE,SAAUpa,EAAW2W,aACrB6O,OAAQxlB,EAAW6W,YACnB4O,aAAczlB,EAAW0I,QAAQvJ,MACjCumB,YAAa1lB,EAAW0I,QAAQoN,KAChCiB,cAAe/W,EAAW+W,cAC1B4O,kBAAmB3lB,EAAW0I,QAAQsN,WACtCG,WAAYnW,EAAWmW,cAG3B,kBAAC,GAAD,CAAU4F,KAAM/b,EAAW6I,QAAUL,GAAgB4S,MAAOiD,EAAE,gBAC5D,uBAAGtF,UAAU,aACVsF,EAAE,sBACH,6BACCA,EAAE,qBAEL,yBAAKtF,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,iBAAiBS,QAASxZ,EAAW2J,UAClE0U,EAAE,gBAEL,4BAAQnpB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAASxZ,EAAW+V,WAC7EsI,EAAE,qBAIT,kBAAC,GAAD,CACEnC,WAAS,EACTd,MAAOiD,EAAE,4BACTtC,KAAM/b,EAAWkM,UACjB+P,QAASjc,EAAWqJ,YAEpB,uBAAG0P,UAAU,8BAA8B/Y,EAAWgB,MAAMtC,SAAW2f,EAAE,qC,6CC3GtEmI,GAAe,SAAC,GAAyE,IAAvEzN,EAAsE,EAAtEA,UAAW/U,EAA2D,EAA3DA,KAAMqM,EAAqD,EAArDA,MAAOsN,EAA8C,EAA9CA,YAAa8I,EAAiC,EAAjCA,iBAAkB7I,EAAe,EAAfA,SAMpF,OACE,yBAAK7E,UAAS,kCAA6BA,GAAa,KACtD,kBAAC,KAAD,CACE2N,SAAO,EACP9I,SAAU,SAAA8E,GAAQ,OAAI9E,EAAS5Z,EAAM0e,IACrC/E,YAAaA,GAAe,GAC5B8I,iBAAkB,kBAAMA,GACxBE,gBAAgB,eAChB5N,UAAU,eACV6N,mBAAmB,EACnBzlB,MAAOxC,IAAEkoB,OAAOxW,GAAS,GAAI,cAC7ByW,aAhBgB,SAACC,EAAIC,GACzB,OAAKA,EACEroB,IAAEuH,SAASvH,IAAEsoB,QAAQF,EAAGzmB,KAAK4mB,MAAOvoB,IAAEsoB,QAAQD,IAD7BD,GAgBpBI,eAAgB,SAAAC,GAAM,OAAIA,EAAOhV,MACjCiV,eAAgB,SAAAD,GAAM,OACpB,yBAAKrO,UAAU,gDACZqO,EAAOF,KACR,0BAAMnO,UAAU,+BAA+BqO,EAAOE,OAAS,KAGnExhB,QAASuK,MCtBXkX,ICPEtJ,KAAGuJ,MAAM,CAAC,OAAQ,WAAY,YAAa,cAC1CvJ,KAAGoI,OACLpI,KAAGC,OACDD,KAAGC,OAIDD,KAAGsG,MAAM,IDAE,SAAC,GAAiC,IAA/BsC,EAA8B,EAA9BA,OAAQ1lB,EAAsB,EAAtBA,MAAOyc,EAAe,EAAfA,SAChC6J,EAAoB,SAAChpB,EAAKqH,GAC9B,IAAM4hB,EAAkB/oB,IAAEyI,IAAItB,EAAS,QACjC6hB,EAAmB,CACvB7hB,QAASnH,IAAEyI,IAAIjG,EAAM2E,SAAS,SAAA8hB,GAAE,sBAC3BA,EAD2B,CAE9BvV,WAAY1T,IAAEuH,SAASwhB,EAAiBE,EAAGxV,YAG/CwL,EAASnf,EAAKkpB,IA4BhB,OACE,kBAAC5H,GAAA,EAAKE,MAAN,CAAYzF,GAAIS,KAAKiF,UAAW2G,EAAOpoB,IAAKkmB,GAAIkC,EAAO9V,MAAOoP,GAAI,EAAGjF,GAAI,IACvE,kBAAC6E,GAAA,EAAKK,MAAN,CAAYrH,UAAU,0CACpB,0BAAMA,UAAU,mBAAmB8N,EAAO7V,QA5B3B,SAAA9b,GACnB,OAAQA,GACN,IAAK,YACH,OAAOiM,EACL,kBAAC,GAAD,CACE6C,KAAM6iB,EAAOpoB,IACb4R,MAAOlP,EAAM2E,QAAQqe,QACrBvG,SAAU6J,EACVhB,iBAAiB,yBAEjB,KACN,IAAK,YACH,OAAO,kBAAC,GAAD,CAAWziB,KAAM6iB,EAAOpoB,IAAK0C,MAAOA,EAAOyc,SAAU,SAAAqB,GAAK,OAAIrB,EAASiJ,EAAOpoB,IAAKwgB,MAC5F,QACE,OACE,2BACE/pB,KAAM2xB,EAAO3xB,KACb6jB,UAAU,YACV5X,MAAOA,EACPyc,SAAU,SAAAnE,GAAC,OAAImE,EAASiJ,EAAOpoB,IAAKgb,EAAEoE,OAAO1c,WAWlD0mB,CAAahB,EAAO3xB,SAUd4yB,GAAc,SAAC,GAA8D,IAA5DlW,EAA2D,EAA3DA,QAAS5B,EAAkD,EAAlDA,WAAY+X,EAAsC,EAAtCA,cAAejJ,EAAuB,EAAvBA,QAASkJ,EAAc,EAAdA,QAAc,EAa9E,CAAEC,YAXWtpB,IAAEoN,OACpB6F,GACA,SAAC/O,EAAD,OAAQpE,EAAR,EAAQA,IAAKvJ,EAAb,EAAaA,KAAb,MACW,cAATA,EAAA,eAA4B2N,EAA5B,eAAkCpE,EAAe,cAATvJ,EAAuB,CAAEgc,MAAO,GAAIC,IAAK,IAAO,KAAxF,eAAoGtO,KACtG,IAOoBqlB,eALCvpB,IAAEoN,OACvB6F,GACA,SAAC/O,EAAD,OAAQpE,EAAR,EAAQA,IAAR,MAAkC,cAAlC,EAAavJ,KAAY,eAA4B2N,EAA5B,eAAkCpE,EAAMuR,EAAWvR,KAAnD,eAAiEoE,KAC1F,KAKIolB,EAhB+E,EAgB/EA,YAAaC,EAhBkE,EAgBlEA,eAhBkE,EAiBnD7O,IAAMwD,SAASoL,GAjBoC,oBAiBhFE,EAjBgF,KAiBjEC,EAjBiE,OAkB7C/O,IAAMwD,SAASqL,GAlB8B,oBAkBhFG,EAlBgF,KAkB9DC,EAlB8D,KAoBvFjP,IAAMkP,WAAU,WACT5pB,IAAE6pB,QAAQH,EAAkBH,IAAiBI,EAAcJ,KAE/D,CAAClY,IAEJ,IAAMyY,EAAiB,SAAChqB,EAAK0C,GACvBxC,IAAE+pB,IAAIL,EAAkB5pB,GAAM6pB,EAAc,eAAKD,EAAN,eAAyB5pB,EAAM0C,KACzEinB,EAAW,eAAKD,EAAN,eAAsB1pB,EAAM0C,MAe7C,OACE,yBAAK4X,UAAU,+BACb,kBAACgH,GAAA,EAAD,KACE,kBAAC/E,GAAA,EAAD,KACGrc,IAAEyI,IAAIwK,GAAS,SAACiV,EAAQhY,GAAT,OACd,kBAAC,GAAD,CACEpQ,IAAKoQ,EACLgY,OAAQA,EACR1lB,MAAOxC,IAAE+pB,IAAIL,EAAkBxB,EAAOpoB,KAAO4pB,EAAiBxB,EAAOpoB,KAAO0pB,EAActB,EAAOpoB,KACjGmf,SAAU6K,QAIhB,yBAAK1P,UAAU,uDACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,+BAA+BS,QArBlD,WACnB,IAAMvO,EAAQtM,IAAEoT,UAAUoW,EAAexpB,IAAEgqB,SAAS,KACpDP,EAAWnd,GACX+c,EAAQ,eAAK/c,EAAN,CAAa+E,WAAY,MAChC+X,MAiBM,sBAGA,4BAAQ7yB,KAAK,SAAS6jB,UAAU,0CAA0CS,QA7B7D,WACnBsF,EAAQ,eAAKqJ,EAAN,CAAqBnY,WAAW,eAAMqY,MAC7CN,MA2BM,qBAgBGa,GAAa,SAAC,GAA+C,IAA7ChX,EAA4C,EAA5CA,QAAS5B,EAAmC,EAAnCA,WAAY8O,EAAuB,EAAvBA,QAASkJ,EAAc,EAAdA,QAAc,EACnC3O,IAAMwD,UAAS,GADoB,oBAChEgM,EADgE,KACpDC,EADoD,KAGjEf,EAAgB,kBAAMe,GAAeD,IAE3C,OACE,yBAAK9P,UAAU,kEACb,kBAACiF,GAAA,EAAD,CAAU+K,GAAIF,GACZ,6BACE,kBAAC,GAAD,CACEd,cAAeA,EACfnW,QAASA,EACT5B,WAAYA,EACZ8O,QAASA,EACTkJ,QAASA,MAIf,yBAAKjP,UAAS,yBAAqB8P,EAA0B,YAAb,aAC9C,kBAAC7K,GAAA,EAAD,CAAU+K,IAAKF,GACb,yBAAK9P,UAAU,eACb,yBAAKA,UAAU,cACb,0BAAMA,UAAU,eAAhB,oDAIN,yBAAKA,UAAU,2BACb,4BAAQ7jB,KAAK,SAASskB,QAASuO,GAC7B,uBAAGhP,UAAU,qCAAqCkE,cAAY,SAC9D,0BAAMlE,UAAU,yBAAyB8P,EAAa,QAAU,gBEpK/DvE,GAAW,CACtB5kB,GAAIue,KAAGC,OACPzS,SAAUwS,KAAGC,OACb/O,YAAa8O,KAAGC,OAChB1W,SAAUyW,KAAGC,OACb9O,aAAc6O,KAAGC,OACjBhpB,KAAM+oB,KAAGoI,OACT9W,UAAW0O,KAAGC,OACdxb,OAAQub,KAAGC,OACXvW,WAAYsW,KAAGC,OACfpW,YAAamW,KAAGoI,OAChBre,cAAeiW,KAAGoI,OAClB5W,gBAAiBwO,KAAGoI,OACpB1W,YAAasO,KAAGoI,QCfL5sB,GACN,MADMA,GAIF,UAJEA,GAKF,UALEA,GAMA,YAIAuvB,GAAU,CACrBC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,KAAM,EACNC,EAAG,kBACHC,EAAG,kBACHC,EAAG,8BACHC,EAAG,oBACHC,EAAG,qBCZQC,GAAiBjF,YAAgB,SAAhBA,EAC5B,gBACErG,EADF,EACEA,EACA1I,EAFF,EAEEA,QACAjN,EAHF,EAGEA,QACAkhB,EAJF,EAIEA,eACAC,EALF,EAKEA,gBACAC,EANF,EAMEA,WACAC,EAPF,EAOEA,SACAC,EARF,EAQEA,WACAC,EATF,EASEA,gBACAC,EAVF,EAUEA,UACAC,EAXF,EAWEA,UAXF,OAaE,yBAAKpR,UAAU,yCACb,yBAAKA,UAAU,mBAEb,yBAAKA,UAAU,aACb,yBAAKA,UAAU,4CAA4CpD,EAAQnO,UACnE,4BACEtS,KAAK,SACL6jB,UAAU,2DACVS,QAAS,kBAAMsQ,GAAW,EAAOnU,EAAQjW,GAAIiW,EAAQzgB,KAAMygB,EAAQnO,WACnEsW,SAAUpV,EAAQS,MAAQwM,EAAQjT,SAAWjJ,IAAckc,EAAQjT,SAAWjJ,IAE9E,kBAAC,GAAD,CACEqf,QAAM,EACN/O,KAAM,EACNrB,QAA0B,WAAjBA,EAAQxT,MAAqBwT,EAAQhJ,KAAOiW,EAAQjW,GAC7DqZ,UAAU,mBAEV,uBAAGA,UAAU,oCAAoCkE,cAAY,UAE9DoB,EAAE,eAEJ1I,EAAQjT,SAAWjJ,IAClB,yBAAKsf,UAAU,qFACZsF,EAAE,aADL,KACqB1I,EAAQvG,cAI/B,yBAAK2J,UAAU,WACb,yBAAKA,UAAU,WACb,4BACE7jB,KAAK,SACL6jB,UAAU,wEACVS,QAAS,kBAAMsQ,GAAW,EAAMnU,EAAQjW,GAAI,KAAMiW,EAAQnO,WAC1DsW,SAAUpV,EAAQS,MAElB,kBAAC,GAAD,CACE2P,QAAM,EACN/O,KAAM,EACNrB,QAA0B,UAAjBA,EAAQxT,MAAoBwT,EAAQhJ,KAAOiW,EAAQjW,GAC5DqZ,UAAU,oBAEXsF,EAAE,cAEJ4L,GAAmBtU,EAAQjT,SAAWjJ,IACrC,4BACEvE,KAAK,SACL6jB,UAAU,uEACVS,QAAS,kBAAMwQ,EAAWrU,EAAQjW,KAClCoe,SAAU+L,EAAgB1gB,MAE1B,kBAAC,GAAD,CACE2P,QAAM,EACN/O,KAAM,EACNrB,QAASmhB,EAAgB1gB,MAAQ0gB,EAAgBnqB,KAAOiW,EAAQjW,GAChEqZ,UAAU,oBAEXsF,EAAE,cAIR6L,GACC,uBACE9nB,KAAK,IACL2W,UAAU,yDACVS,QAAS,SAAAC,GACPA,EAAEiE,iBACFqM,EAAS,EAAGpU,EAAQjW,GAAIiW,EAAQjT,OAAQiT,EAAQzgB,QAGjDmpB,EAAE,aACH,uBAAGtF,UAAU,mBAAmBkE,cAAY,UAG/CkN,GACC,uBACE/nB,KAAK,IACL2W,UAAU,yDACVS,QAAS,SAAAC,GACPA,EAAEiE,iBACFqM,EAAS,EAAGpU,EAAQjW,GAAIiW,EAAQjT,OAAQiT,EAAQzgB,QAGjDmpB,EAAE,aACH,uBAAGtF,UAAU,mBAAmBkE,cAAY,YAOpD,yBAAKlE,UAAU,sBACb,yBAAKA,UAAU,WACb,6BACE,yBAAKA,UAAU,oCAAoCsF,EAAE,6BACrD,yBAAKtF,UAAU,YAAYpD,EAAQhO,aAErC,6BACE,yBAAKoR,UAAU,oCAAoCsF,EAAE,2BACrD,yBAAKtF,UAAU,YAAYpD,EAAQlK,YAGvC,yBAAKsN,UAAU,WACb,6BACE,yBAAKA,UAAU,oCAAoCsF,EAAE,yBACrD,yBAAKtF,UAAU,YAAYpD,EAAQjT,SAErC,6BACE,yBAAKqW,UAAU,oCAAoCsF,EAAE,uBACrD,yBAAKtF,UAAU,kBAAkBiQ,GAAQrT,EAAQzgB,OAAS,OAKhE,yBAAK6jB,UAAU,0BACb,yBAAKA,UAAU,WACb,yBAAKA,UAAU,2BAA2BsF,EAAE,+BAC5C,6BACE,kBAAC,GAAD,CAASvF,QAAM,EAAC/O,KAAM,EAAGrB,QAASkhB,EAAgB7Q,UAAU,YACzDpD,EAAQhG,eAIf,yBAAKoJ,UAAU,WACb,yBAAKA,UAAU,2BAA2BsF,EAAE,mCAC5C,6BACE,kBAAC,GAAD,CAASvF,QAAM,EAAC/O,KAAM,EAAGrB,QAASkhB,EAAgB7Q,UAAU,YACzDpD,EAAQlG,mBAIf,yBAAKsJ,UAAU,WACb,yBAAKA,UAAU,2BAA2BsF,EAAE,iCAC5C,6BACE,kBAAC,GAAD,CAASvF,QAAM,EAAC/O,KAAM,EAAGrB,QAASkhB,EAAgB7Q,UAAU,YACzDpD,EAAQ7N,gBAMjB,yBAAKiR,UAAU,0BACb,yBAAKA,UAAU,WACb,yBAAKA,UAAU,2BAA2BsF,EAAE,iCAC5C,6BACE,kBAAC,GAAD,CAASvF,QAAM,EAAC/O,KAAM,EAAGrB,QAASkhB,EAAgB7Q,UAAU,YACzDpD,EAAQpN,kBAIf,yBAAKwQ,UAAU,WACb,yBAAKA,UAAU,2BAA2BsF,EAAE,6BAC5C,6BACE,kBAAC,GAAD,CAASvF,QAAM,EAAC/O,KAAM,EAAGrB,QAASkhB,EAAgB7Q,UAAU,YACzDpD,EAAQ5F,WAAa,MAAQ,QAIpC,yBAAKgJ,UAAU,WACb,yBAAKA,UAAU,2BAA2BsF,EAAE,kCAC5C,6BACE,kBAAC,GAAD,CAASvF,QAAM,EAAC/O,KAAM,EAAGrB,QAASkhB,EAAgB7Q,UAAU,YACzDpD,EAAQrN,gBAAkB,MAAQ,cAUnDqhB,GAAe/E,UAAY,CACzBjP,QAASsI,KAAGsG,MAAMD,IAAUpB,WAC5Bxa,QAASuV,KAAGsG,MAAM,CAChB7kB,GAAIue,KAAGC,OACPhpB,KAAM+oB,KAAGC,OACT/U,KAAM8U,KAAGqH,OAEXsE,eAAgB3L,KAAGqH,KACnBuE,gBAAiB5L,KAAGsG,MAAM,CACxB7kB,GAAIue,KAAGC,OACP/U,KAAM8U,KAAGqH,OAEXwE,WAAY7L,KAAGoH,KACf0E,SAAU9L,KAAGoH,KACb2E,WAAY/L,KAAGoH,KACf4E,gBAAiBhM,KAAGqH,KACpB4E,UAAWjM,KAAGqH,KACd6E,UAAWlM,KAAGqH,MCjMT,I,GAAM8E,GAASzQ,YAAOC,EAAG7Z,YAAV4Z,CACpBiD,aAAS,YAAsB,IAAnB7c,EAAkB,EAAlBA,YACFse,EAAMC,YAAe,CAAC,SAAU,eAAhCD,EAQFgM,EAAkB,SAACn1B,EAAMwN,EAAQ4nB,GACrC,OAAK3rB,IAAEuH,SAAS,CAAC8iB,GAAQI,KAAMJ,GAAQK,MAAOn0B,IAASwN,IAAWjJ,IAAoB6wB,EAAS,GAIjG,OACE,kBAAC,GAAD,CAAM/O,OAAK,EAACxC,UAAU,gBAAgBqC,MAAOiD,EAAE,cAC7C,kBAAC,GAAD,CACEzM,QAAS7R,EAAY+Q,eACrBd,WAAYjQ,EAAYkR,eAAejB,WACvC8O,QAAS/e,EAAYyR,cACrBwW,QAASjoB,EAAYyR,gBAEvB,yBAAKuH,UAAU,cACf,yBAAKA,UAAU,eACb,kBAAC,GAAD,CAAaI,OAAK,EAACzQ,QAAS3I,EAAY2I,QAAQE,MAC7CjK,IAAEyI,IAAIrH,EAAYkP,cAAc,SAAC0G,EAAS9G,GAAV,OAC/B,kBAAC8a,GAAD,CACElrB,IAAKoQ,EACL8G,QAASA,EACTjN,QAAS3I,EAAY2I,QAAQ7D,SAC7B+kB,eAAgB7pB,EAAY2I,QAAQiI,QACpCkZ,gBAAiB9pB,EAAY2I,QAAQmI,SACrCiZ,WAAY/pB,EAAYuS,aACxByX,SAAUhqB,EAAY4S,cACtBqX,WAAYjqB,EAAY+S,gBACxBmX,gBAAiBlqB,EAAYwqB,eAC7BL,WAjCah1B,EAiCcygB,EAAQzgB,KAjChBwN,EAiCsBiT,EAAQjT,SAhCtDxN,IAAS8zB,GAAQC,KAAO/zB,IAAS8zB,GAAQE,KAASxmB,IAAWjJ,IAAoBiJ,IAAWjJ,KAiCvF0wB,UAAWE,EAAgB1U,EAAQzgB,KAAMygB,EAAQjT,OAAQiT,EAAQ9F,eAlCrD,IAAC3a,EAAMwN,KAqCvB,kBAAC,GAAD,CACEqW,UAAU,gBACV4F,QAAS5e,EAAYmI,WAAWY,UAChC4Y,MAAO3hB,EAAYmI,WAAWc,YAC9BD,SAAUhJ,EAAYmI,WAAWa,SACjCga,aAAchjB,EAAY6J,WAC1BoZ,aAAcjjB,EAAY+J,gBAE1B,0BAAMiP,UAAU,uBACd,0BAAMA,UAAU,mCAAmChZ,EAAYmI,WAAWe,oBACzEoV,EAAE,aAKX,kBAAC,GAAD,CAAUtC,KAAMhc,EAAY8I,QAAUL,GAAwB4S,MAAOiD,EAAE,oBACrE,uBAAGtF,UAAU,wBAAwBsF,EAAE,2BACvC,yBAAKtF,UAAU,+BACb,4BAAQ7jB,KAAK,SAAS6jB,UAAU,4BAA4BS,QAAS,kBAAMzZ,EAAY4J,aACpF0U,EAAE,gBAIT,kBAAC,GAAD,CACEnC,WAAS,EACTd,MAAOiD,EAAE,4BACTtC,KAAMhc,EAAYiB,MAAM6D,UAAY9E,EAAYiB,MAAM4H,MAAQ7I,EAAYiB,MAAM6P,SAChFoL,QAASlc,EAAYsJ,YAErB,uBAAG0P,UAAU,8BAA8BhZ,EAAYiB,MAAMtC,SAAW2f,EAAE,qCClFvEmM,I,OAAe,SAAC,GAAD,IAAGnM,EAAH,EAAGA,EAAG3V,EAAN,EAAMA,QAAS+W,EAAf,EAAeA,OAAf,IAAuBnf,YAAvB,MAA8B,GAA9B,EAAkC0jB,EAAlC,EAAkCA,MAAlC,OAC1B,kBAAC,GAAD,KACE,kBAAC,GAAMtK,OAAP,CAAc+F,OAAQA,EAAQpB,EAAG,SAAA5f,GAAG,OAAI4f,EAAE,UAAD,OAAW5f,OACpD,kBAAC,GAAMie,KAAP,KACGpc,EAAKkD,OAAS,GAAKkF,EAClB/J,IAAEyI,IAAI9G,GAAM,SAACgH,EAAMuH,GAAP,OACV,kBAAC,GAAMmM,IAAP,CAAWvc,IAAKoQ,EAAK4Q,OAAQA,EAAQte,MAAO,SAAA1C,GAAG,OAAI6I,EAAK7I,IAAM8kB,UAAW,SAAA9kB,GAAG,MAAY,aAARA,QAGlF,kBAAC,GAAMolB,SAAP,CAAgBV,QAAS1D,EAAOjc,OAAS,EAAGwN,MAAOgT,QCR9CyG,GAAgB,SAAC,GAAsF,IAApFpM,EAAmF,EAAnFA,EAAGqM,EAAgF,EAAhFA,iBAAkBC,EAA8D,EAA9DA,gBAAiBjiB,EAA6C,EAA7CA,QAAS+U,EAAoC,EAApCA,SAAUuK,EAA0B,EAA1BA,QAAS8B,EAAiB,EAAjBA,WAAiB,EAC/EjN,mBAAS6N,GADsE,oBAC1GE,EAD0G,KAC/FC,EAD+F,OAElFhO,oBAAS,GAFyE,oBAE1GiO,EAF0G,KAEjGC,EAFiG,KAIjHxC,qBAAU,WACHqC,EAAU1Z,OAAU0Z,EAAUzZ,IAC9B4Z,GAAY,GADuBA,GAAY,KAEnD,CAACH,IAaJ,OACE,yBAAK7R,UAAU,4BACb,kBAACiC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAK+P,GAAI,GAAIjS,UAAU,6BACrB,kBAACgH,GAAA,EAAD,CAAMhH,UAAU,yBAAyB0E,SAfzB,SAAAhE,GACtBA,EAAEiE,iBACGkN,EAAU1Z,OAAU0Z,EAAUzZ,KACnCsM,EAAS,CAAEnN,YAAasa,MAahB,kBAAC7K,GAAA,EAAKE,MAAN,CAAYC,UAAU,aAAanH,UAAU,aAC3C,kBAACgH,GAAA,EAAKK,MAAN,CAAYrH,UAAU,0CACpB,0BAAMA,UAAU,mBAAmBsF,EAAE,uBAEvC,kBAAC,GAAD,CAAWra,KAAK,aAAa7C,MAAOypB,EAAWhN,SAAUiN,KAE3D,4BACE31B,KAAK,SACL6jB,UAAU,gEACV+E,UAAWgN,GAAWpiB,EAAQE,MAE9B,kBAAC,GAAD,CAASkQ,QAAM,EAAC/O,KAAM,EAAGrB,QAASA,EAAQE,KAAMmQ,UAAU,oBACzDsF,EAAE,kBAEL,4BACEnpB,KAAK,SACL6jB,UAAU,qDACVS,QA3BW,WACrBqR,EAAaH,GACb1C,KA0BUlK,SAAUpV,EAAQE,MAEjByV,EAAE,kBAGNsM,GACC,4BACEz1B,KAAK,SACL6jB,UAAU,6DACVS,QAASsQ,EACThM,SAAUpV,EAAQ7D,UAElB,kBAAC,GAAD,CAASiU,QAAM,EAAC/O,KAAM,EAAGrB,QAASA,EAAQ7D,SAAUkU,UAAU,mBAC5D,uBAAGA,UAAU,oCAAoCkE,cAAY,UAE9DoB,EAAE,sBChDX1jB,GAAgB,CACpB,CAAEqW,MAAO,OAAQvS,IAAK,YACtB,CAAEuS,MAAO,OAAQvS,IAAK,QACtB,CAAEuS,MAAO,UAAWvS,IAAK,WACzB,CAAEuS,MAAO,cAAevS,IAAK,eAC7B,CAAEuS,MAAO,QAASvS,IAAK,UAGZwsB,GAAYtR,YAAOC,EAAG3Z,eAAV0Z,CACvBiD,aAAS,YAAkC,IAAfsO,EAAc,EAA9BjrB,eACFoe,EAAMC,YAAe,CAAC,YAAa,eAAnCD,EAER,OACE,kBAAC,GAAD,CAAM9C,OAAK,EAACxC,UAAU,mBAAmBqC,MAAOiD,EAAE,cAChD,kBAAC,GAAD,CACEqM,iBAAkBQ,EAAQjU,eAAe3G,YACzCqa,gBAAiBO,EAAQ1T,qBACzB9O,QAASwiB,EAAQxiB,QACjB+U,SAAUyN,EAAQ1Z,cAClBwW,QAASkD,EAAQ5T,aACjBwS,WAAYoB,EAAQ3T,cACpB8G,EAAGA,IAEL,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAalF,OAAK,EAACzQ,QAASwiB,EAAQxiB,QAAQE,MAC1C,kBAACoS,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CACEuE,OAAQ9kB,GACR2F,KAAM4qB,EAAQjc,aAAakV,QAC3Bzb,QAASwiB,EAAQxiB,QAAQE,KACzBob,MAAO3F,EAAE,cACTA,EAAGA,MAIT,kBAACrD,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKC,GAAI,IACP,kBAAC,GAAD,CACEnC,UAAU,gBACV4F,QAASuM,EAAQhjB,WAAWY,UAC5B4Y,MAAOwJ,EAAQhjB,WAAWc,YAC1BD,SAAUmiB,EAAQhjB,WAAWa,SAC7Bga,aAAcmI,EAAQthB,WACtBoZ,aAAckI,EAAQphB,gBAEtB,0BAAMiP,UAAU,uBACd,0BAAMA,UAAU,mCAAmCmS,EAAQhjB,WAAWe,oBACrEoV,EAAE,eAOf,kBAAC,GAAD,CACEnC,WAAS,EACTd,MAAOiD,EAAE,4BACTtC,KAAMmP,EAAQlqB,MAAM6D,UAAYqmB,EAAQlqB,MAAM4H,KAC9CqT,QAASiP,EAAQ7hB,YAEjB,uBAAG0P,UAAU,8BAA8BmS,EAAQlqB,MAAMtC,SAAW2f,EAAE,qCC/D1E8M,IAAU,qBACbC,EAAWzO,IADE,eAEbyO,EAAmB70B,IAFN,eAGb60B,EAAoB50B,IAHP,eAIb40B,EAAetK,IAJF,eAKbsK,EAAUlH,IALG,eAMbkH,EAAiB7E,IANJ,eAOb6E,EAAYhB,IAPC,eAQbgB,EAAeH,IARF,IAWHI,GAAMzO,aAAS,YAAmB,IAAhBhF,EAAe,EAAfA,SAmC7B,OAAQA,EAASG,eAOf,kBAAC,GAAD,CAAShO,KAAM,EAAGrB,SAAO,EAACqQ,UAAU,oCANpC,oCANoB,WACpB,IAAMtV,EAAOmU,EAASC,YACtB,OAAOpU,GAAQA,EAAKO,OAASonB,GAAY3nB,EAAKO,OAASonB,GAAoB3nB,EAAKO,OAASonB,EAKtFE,IAAmB,kBAAC5R,GAAD,CAAQtQ,YAAawO,EAASxO,cAClD,yBAAK2P,UAAU,gBAvBO,SAAAtV,GACxB,IAAKA,EAAM,OAAO,KAElB,OADeA,EAAKnD,MAAQmD,EAAKnD,KAAKoH,OAEpC,IAAK,UACH,OAAO,kBAAC,GAAD,CAASqC,KAAM,EAAGrB,SAAO,EAACqQ,UAAU,oCAC7C,IAAK,WACH,OAAO,yCACT,IAAK,YACH,OAvBqB,SAAAtV,GACzB,IAAKA,EAAM,OAAO,KAClB,IAAM8nB,EAAOJ,GAAW1nB,EAAKO,MAC7B,OAAOunB,EACL,kBAACA,EAAS9nB,EAAK+nB,SAEf,kBAAC,GAAD,CAAMjQ,OAAK,GACT,uBAAGxC,UAAU,gDAAb,kBACiB,2BAAItV,EAAKO,MAD1B,0EAgBOynB,CAAmBhoB,GAC5B,QACE,MAAM,IAAI7K,MAAM,0CAYa8yB,CAAkB9T,EAASC,cAC1D,kBAAC,GAAD,UC/CA8T,GAAY,IAAI/T,GACP,ICbb,WAAYA,GAAW,IAAD,gCAMtBgU,YANsB,sBAMR,sBAAArrB,EAAA,6DACZ,EAAKsrB,OAAOpU,UAAU,CACpBqU,SAAU,WACR,EAAKD,OAAOE,SAAS1pB,IAEvB2pB,cAAc,EACdC,OAAO,IANG,SAQN,EAAKC,kBARC,OASZ,EAAKL,OAAOjuB,KAAKyE,GATL,2CANQ,KAkBtB8pB,WAlBsB,uCAkBT,WAAO7R,GAAP,6BAAA/Z,EAAA,6DAAc6rB,IAAd,iCAAyCC,EAAzC,+BAAyDhqB,EAAzD,SACc,EAAK8V,YADnB,0DAEa,EAAK0T,OAAOE,SAAS1pB,IAFlC,UAGN+pB,EAHM,yCAGqB,EAAKP,OAAOE,SAASM,IAH1C,gCAIJ/R,KAJI,4CAlBS,sDACpBzO,KAAKsM,UAAYP,EAASO,UAC1BtM,KAAKqgB,gBAAkBtU,EAASxL,eAChCP,KAAKggB,OAAS,IAAIS,UCLG,SAACnjB,EAAMojB,GAAP,2CAClBlqB,EADkB,wBACc,kBAAM8G,EAAKiiB,MADzB,yBAElB/oB,IAAqB,kBAAM8G,EAAKiiB,MAFd,yBAGlB/oB,IAAsB,kBAAM8G,EAAKiiB,MAHf,yBAIlB/oB,IAAiB,SAAAmqB,GACpBD,GAAM,kBAAMpjB,EAAKiiB,MACjBoB,GAAK,MANgB,yBAQlBnqB,IAAY,SAAAmqB,GACfD,GAAM,kBAAMpjB,EAAKiiB,MACjBoB,GAAK,MAVgB,yBAYlBnqB,IAAc,SAAAmqB,GACjBD,GAAM,kBAAMpjB,EAAKiiB,MACjBoB,GAAK,MAdgB,yBAgBlBnqB,EAAe,SAAW,SAAC3C,EAAI8sB,GAClCD,GAAM,kBAAMpjB,EAAKiiB,EAAgB,CAAE1rB,UACnC8sB,GAAK,MAlBgB,yBAoBlBnqB,GApBkB,uCAoBD,WAAMmqB,GAAN,eAAAjsB,EAAA,sEACGH,EAAQa,KAAKiB,GADhB,OACdqE,EADc,OAEpBgmB,GAAM,kBAAMpjB,EAAKiiB,KAAe7kB,KAAcA,EAASuU,mBACvD0R,GAAK,GAHe,2CApBC,yDDKIC,CAAU7U,EAASQ,SAAUvM,KAAKsgB,aDUhD,CAAcR,IACtBC,cAEPc,IAASC,OACP,kBAAC,IAAahB,GAAUlT,OACtB,kBAAC4S,GAAD,CAAKzT,SAAU+T,MAEjBrnB,SAASsoB,eAAe,SvD2EpB,kBAAmBxoB,WACrBA,UAAUyoB,cAAcC,MAAMhsB,MAAK,SAAAisB,GACjCA,EAAaC,kB","file":"static/js/main.3615a34a.chunk.js","sourcesContent":["module.exports = {\r\n GetMyDocsMailBoxes: {\r\n url: '/Cacib/GetMyDocsMailBoxes',\r\n type: 'POST',\r\n fake: false\r\n },\r\n GetMailBoxInputFile: {\r\n url: '/Cacib/GetMailBoxInputFile',\r\n type: 'POST',\r\n fake: false\r\n },\r\n GetMailBoxOutputFile: {\r\n url: '/Cacib/GetMailBoxOutputFile',\r\n type: 'POST',\r\n fake: false\r\n },\r\n ManualBrowsing: {\r\n url: '/Cacib/ManualBrowsing',\r\n type: 'POST',\r\n fake: false\r\n },\r\n RequireCreditAssessment: {\r\n url: '/Cacib/RequireCreditAssessment',\r\n type: 'POST',\r\n fake: false\r\n },\r\n RestartProcessingMatchDocument: {\r\n url: '/Cacib/RestartProcessingMatchDocument',\r\n type: 'POST',\r\n fake: false\r\n },\r\n GetUsage: {\r\n url: '/Cacib/GetUsage',\r\n type: 'POST',\r\n fake: false\r\n },\r\n GetUsageResultFile: {\r\n url: '/Cacib/GetUsageResultFile',\r\n type: 'POST',\r\n fake: false\r\n }\r\n};\r\n","module.exports = {\r\n GetMailBox: {\r\n url: '/Cacib/GetMailBox',\r\n type: 'POST',\r\n fake: false\r\n },\r\n GetMailBoxDetails: {\r\n url: '/Cacib/GetMailBoxDetails',\r\n type: 'POST',\r\n fake: false\r\n },\r\n UpdateMailBoxDetails: {\r\n url: '/Cacib/UpdateMailBoxDetails',\r\n type: 'POST',\r\n fake: false\r\n },\r\n UpdateMailBoxDetailsSkip: {\r\n url: '/Cacib/UpdateMailBoxDetailsSkip',\r\n type: 'POST',\r\n fake: false\r\n },\r\n UpdateRemainingMailboxDetails: {\r\n url: '/Cacib/UpdateRemainingMailboxDetails',\r\n type: 'POST',\r\n fake: false\r\n },\r\n GetFamilyTree: {\r\n url: '/Cacib/GetFamilyTree',\r\n type: 'POST',\r\n fake: false\r\n }\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/logo_cribis2.569857e4.png\";","module.exports = {\r\n GetSettings: {\r\n url: '/Cacib/GetSettings',\r\n type: 'GET',\r\n fake: false\r\n },\r\n UpdateUserInfo: {\r\n url: '/Account/UpdateUserInfo',\r\n type: 'POST',\r\n fake: false\r\n },\r\n SaveSettings: {\r\n url: '/Cacib/SaveSettings',\r\n type: 'POST',\r\n fake: false\r\n }\r\n};\r\n","module.exports = {\r\n GetSettings: {\r\n url: '/Cacib/GetSettings',\r\n type: 'GET',\r\n fake: false\r\n },\r\n GetHomeMailBoxes: {\r\n url: '/Cacib/GetHomeMailBoxes',\r\n type: 'POST',\r\n fake: false\r\n },\r\n UploadMailBoxInputFile: {\r\n url: '/Cacib/UploadMailBoxInputFile',\r\n type: 'POST',\r\n fake: false\r\n }\r\n};\r\n","module.exports = {\r\n Login: {\r\n url: '/Account/Login',\r\n type: 'POST',\r\n fake: false\r\n },\r\n ResetPassword: {\r\n url: '/Account/ResetPassword',\r\n type: 'POST',\r\n fake: false\r\n },\r\n ChangePassword: {\r\n url: '/Account/ChangePassword',\r\n type: 'POST',\r\n fake: false\r\n }\r\n};\r\n","module.exports = \"data:image/png;base64,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\"","import common from './common';\r\nimport exceptions from './exceptions';\r\nimport home from './home';\r\nimport matcher from './matcher';\r\nimport mydocs from './mydocs';\r\nimport statement from './statement';\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n common,\r\n exceptions,\r\n home,\r\n matcher,\r\n mydocs,\r\n statement\r\n};\r\n","// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n SiteName: 'Automatic Matching Engine',\r\n Back: 'Back',\r\n Browse: 'Browse',\r\n Continue: 'Continue',\r\n Search: 'Search',\r\n Cancel: 'Cancel',\r\n Ok: 'Ok',\r\n Undo: 'Undo',\r\n Confirm: 'Confirm',\r\n Save: 'Save',\r\n Delete: 'Delete',\r\n Edit: 'Edit',\r\n Add: 'Add',\r\n Note: 'Note',\r\n Select: 'Select',\r\n Hide: 'Hide',\r\n Show: 'Show',\r\n Duplicate: 'Duplicate',\r\n Reset: 'Reset',\r\n SelectAll: 'Select all',\r\n DeselectAll: 'Deselect all',\r\n DoYouWantToContinue: 'Do you want to continue?',\r\n Yes: 'Yes',\r\n No: 'No',\r\n On: 'On',\r\n Off: 'Off',\r\n Logout: 'Logout',\r\n UploadFile: 'Upload',\r\n PerPage: 'per page',\r\n exludeOutOfBusiness: 'Exclude Out of Business',\r\n ExcludeBranches: 'Exclude Branches',\r\n ConfidenceCode: 'Confidence Code'\r\n};\r\n","// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n Generic: {\r\n Error: 'Unexpected Error',\r\n Message: 'There was a service error.'\r\n }\r\n};\r\n","// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n DownloadArea: 'Download Area',\r\n RequestsUpload: 'Requests Upload',\r\n ManualBrowsing: 'Manual Browsing',\r\n AutomaticMatch: 'Automatic Match',\r\n AutomaticCA: 'Automatic Credit Assessment',\r\n CreditAssessment: 'Credit Assessment',\r\n UserManual: 'User Manual',\r\n DownloadTemplate: 'Download Template',\r\n Match: 'Match',\r\n Fields: {\r\n FileName: 'Input File Name',\r\n Status: 'Status',\r\n Date: 'Request Date',\r\n Matched: 'Matched Business',\r\n NotMatched: 'Not Matched Business'\r\n },\r\n Total: 'total requests',\r\n EmptyLabel: 'no data waiting for manual browsing',\r\n UploadSuccess: 'Upload Successful',\r\n UploadError: 'Upload Error',\r\n SuccessMessage: 'Monitor the status in MyDocs'\r\n};\r\n","// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n PageTitle: 'File Matcher',\r\n SubjectsList: 'Subjects to be matched',\r\n Total: 'total subjects',\r\n MatcherModal: 'Match Subject',\r\n Close: 'Close',\r\n EndBrowsing: 'End Browsing',\r\n EndBrowsingConfirm: 'Are you sure you want to end matching?',\r\n EndBrowsingAlert: 'All not matched subjects will be skipped automatically.',\r\n FileInput: 'Input file',\r\n RequestFields: {\r\n Filename: 'Name',\r\n Status: 'Status',\r\n InsertDate: 'Request date',\r\n Matched: 'Matched business',\r\n NotMatched: 'Not matched business'\r\n },\r\n SubjectFields: {\r\n Id: 'Id',\r\n Name: 'Name',\r\n Address: 'Address',\r\n Town: 'Town',\r\n ZipCode: 'Zip code',\r\n DebtorCode: 'Debtor code',\r\n BusinessId: 'Business id',\r\n CountryCode: 'Country code',\r\n Country: 'County',\r\n Duns: 'Duns',\r\n GURating: 'GU rating needed'\r\n },\r\n CandidateFields: {\r\n ConfidenceCode: 'Conf. code',\r\n Address: 'Address',\r\n Town: 'Town',\r\n ZipCode: 'Zip code',\r\n Site: 'Site',\r\n LegalStatus: 'Status',\r\n Country: 'Country',\r\n Sic: 'Sic'\r\n },\r\n NoCandidates: 'no match found',\r\n Select: 'Select',\r\n CloseTooltip: 'continue later',\r\n InputSubject: 'Input subject',\r\n SkipMatch: 'Skip match',\r\n SuggestedSubjects: 'Suggested subjects'\r\n};\r\n","// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n PageTitle: 'MyDocs',\r\n Total: 'total requests',\r\n FileInput: 'input file',\r\n FileOutput: 'output file',\r\n Estimated: 'estimated time',\r\n ReSubmit: 're-submit',\r\n ReSubmitSuccess: 'Success',\r\n ReSubmitSuccessMessage: 'Resubmit was completed successfully',\r\n RequireCA: 'require credit assessment',\r\n RequireMB: 'go to manual browsing',\r\n RequestFields: {\r\n InsertDate: 'requested on',\r\n Username: 'user',\r\n Status: 'status',\r\n Type: 'type',\r\n InputRecords: 'input records',\r\n ProcessedRecords: 'processed records',\r\n MatchedRecords: 'matched business',\r\n ConfidenceCode: 'Confidence Code',\r\n ExcludeOOB: 'Exclude Out Of Business',\r\n ExcludeBranches: 'Exclude Branches'\r\n }\r\n};\r\n","// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n PageTitle: 'Request Statement',\r\n Total: 'total requests',\r\n EmptyLabel: 'no requests found for selected period',\r\n DownloadExcel: 'Download Excel',\r\n Filters: {\r\n DateRange: 'request date from - to',\r\n DateFrom: 'date from',\r\n DateTo: 'date to'\r\n },\r\n Fields: {\r\n Type: 'type',\r\n Duns: 'DUNS',\r\n Country: 'country',\r\n RequestDate: 'requested on',\r\n Price: 'price (€)'\r\n }\r\n};\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport _ from 'lodash';\r\nimport en from './en-US';\r\n\r\nconst debug = process.env.NODE_ENV === 'development';\r\n\r\ni18n.use(initReactI18next).init({\r\n resources: { en },\r\n lng: 'en',\r\n fallbackLng: 'en',\r\n keySeparator: '.',\r\n interpolation: {\r\n escapeValue: false\r\n },\r\n saveMissing: debug,\r\n missingKeyHandler: (lngs, ns, key) => {\r\n const message = `Translation for key: ${ns}:${key} is missing in languages: ${_.join(lngs, ',')}`;\r\n if (debug) {\r\n throw new Error(message);\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(message);\r\n }\r\n }\r\n});\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default i18n;\r\n","/* eslint-disable no-console */\r\nimport _ from 'lodash';\r\n\r\n// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n // eslint-disable-next-line no-param-reassign\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || _.includes(contentType, 'javascript')) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","export const E = {\r\n UNEXPECTEDFETCH: 'API Generic Error: inconsistent response',\r\n SESSIONEXPIRED: 'Session Expired'\r\n};\r\n","const { REACT_APP_ROOT, REACT_APP_APIURL } = process.env;\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n REACT_APP_ROOT: REACT_APP_ROOT || '',\r\n REACT_APP_APIURL: REACT_APP_APIURL || 'Proxy',\r\n MOCK_SERVER: 'http://localhost:3030'\r\n};\r\n","export const ViewsDictionary = {\r\n LOGIN: 'LOGIN',\r\n RESETPASSWORD: 'RESETPASSWORD',\r\n CHANGEPASSWORD: 'CHANGEPASSWORD',\r\n MYPROFILE: 'MYPROFILE',\r\n HOME: 'HOME',\r\n FILEMATCHER: 'FILEMATCHER',\r\n MYDOCS: 'MYDOCS',\r\n STATEMENT: 'STATEMENT'\r\n};\r\n\r\nexport const RoutesDictionary = {\r\n LOGIN: 'Account/LogOn',\r\n RESETPASSWORD: 'Account/ResetPassword',\r\n CHANGEPASSWORD: 'Account/ChangePassword',\r\n MYPROFILE: 'Account/MyProfile',\r\n HOME: 'Home/Index',\r\n MYDOCS: 'Storage/MyDocs',\r\n FILEMATCHER: id => `FileMatch/${id}`,\r\n STATEMENT: 'Storage/Statement'\r\n};\r\n\r\nexport const StoresDictionary = {\r\n UserStore: 'UserStore',\r\n SettingStore: 'SettingStore',\r\n HomeStore: 'HomeStore',\r\n MyDocsStore: 'MyDocsStore',\r\n MatchStore: 'MatchStore',\r\n StatementStore: 'StatementStore'\r\n};\r\n\r\nexport const ViewStoreConnect = {\r\n [ViewsDictionary.LOGIN]: StoresDictionary.UserStore,\r\n [ViewsDictionary.MYPROFILE]: StoresDictionary.SettingStore,\r\n [ViewsDictionary.HOME]: StoresDictionary.HomeStore,\r\n [ViewsDictionary.FILEMATCHER]: StoresDictionary.MatchStore,\r\n [ViewsDictionary.MYDOCS]: StoresDictionary.MyDocsStore,\r\n [ViewsDictionary.STATEMENT]: StoresDictionary.StatementStore\r\n};\r\n\r\nexport const StorageDictionary = {\r\n UserInfo: 'UsrNfo'\r\n};\r\n","import localForage from 'localforage';\r\nimport { stringify, parse } from 'flatted';\r\n\r\n// export const store = async (key, data) =>\r\n// new Promise((resolve, reject) => {\r\n// localForage\r\n// .setItem(key, stringify(data))\r\n// .then(() => resolve(key))\r\n// .catch(error => reject(error));\r\n// });\r\n\r\n// export const read = async key =>\r\n// new Promise((resolve, reject) => {\r\n// localForage\r\n// .getItem(key)\r\n// .then(value => resolve(value ? parse(value) : null))\r\n// .catch(error => reject(error));\r\n// });\r\n\r\nexport class Storage {\r\n static store = async (key, data) =>\r\n new Promise((resolve, reject) => {\r\n localForage\r\n .setItem(key, stringify(data))\r\n .then(() => resolve(key))\r\n .catch(error => reject(error));\r\n });\r\n\r\n static read = async key =>\r\n new Promise((resolve, reject) => {\r\n localForage\r\n .getItem(key)\r\n .then(value => resolve(value ? parse(value) : null))\r\n .catch(error => reject(error));\r\n });\r\n}\r\n","import _ from 'lodash';\r\nimport config from '../config';\r\nimport { RoutesDictionary as RT, StorageDictionary as STG } from '../utils/constants';\r\nimport { Storage } from '../utils/storage';\r\nimport { E } from '../utils/errors';\r\n\r\nexport class ApiHelper {\r\n static generateHeaders = (method, formData) => {\r\n const headers = new Headers();\r\n headers.append('Pragma', 'no-cache');\r\n headers.append('Cache-Control', 'no-cache');\r\n if (method === 'POST' && !formData) headers.append('Content-Type', 'application/json; charset=utf-8');\r\n\r\n return headers;\r\n };\r\n\r\n static getServerUrl = (fakeApi, fromProxy) => {\r\n if (fakeApi) return config.MOCK_SERVER;\r\n if (fromProxy) return `${config.REACT_APP_ROOT}/${config.REACT_APP_APIURL}`;\r\n return config.REACT_APP_ROOT;\r\n };\r\n\r\n static userLogout = async backUrl => {\r\n await Storage.store(STG.UserInfo, undefined);\r\n window.location.href = `#${RT.LOGIN}${backUrl && `?BackUrl=${encodeURIComponent(backUrl)}`}`;\r\n };\r\n\r\n static sessionExpired = () => {\r\n // eslint-disable-next-line no-console\r\n console.warn('session expired.');\r\n ApiHelper.userLogout(window.location.hash);\r\n throw new Error(E.SESSIONEXPIRED);\r\n };\r\n\r\n static checkStatus = (url, status, method) => {\r\n if (status === 403) ApiHelper.sessionExpired();\r\n if (status >= 500) throw new Error(`API Server Error (${status})\\n${method} - ${_.replace(url, '/Proxy', '')}`);\r\n if (status >= 400) throw new Error(`API Client Error (${status})\\n${method} - ${_.replace(url, '/Proxy', '')}`);\r\n\r\n return true;\r\n };\r\n\r\n static parseResponse = async res => {\r\n try {\r\n const result = await res.clone().json();\r\n return result;\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n}\r\n","import _ from 'lodash';\r\nimport moment from 'moment';\r\n\r\nexport const numberToabbreviateString = (number, decimals = 0, units = ['k', 'mln', 'bln', 'tln']) => {\r\n const isNegative = number < 0;\r\n let absNumber = Math.abs(number);\r\n const decPlaces = 10 ** decimals;\r\n\r\n for (let i = units.length - 1; i >= 0; i -= 1) {\r\n const size = 10 ** ((i + 1) * 3);\r\n if (size <= absNumber) {\r\n absNumber = Math.round((absNumber * decPlaces) / size) / decPlaces;\r\n if (absNumber === 1000 && i < units.length - 1) {\r\n absNumber = 1;\r\n i += 1;\r\n }\r\n absNumber += units[i];\r\n break;\r\n }\r\n }\r\n\r\n return `${isNegative ? '-' : ''} ${absNumber}`;\r\n};\r\n\r\nexport const toMilionString = number => {\r\n const inMilion = (Math.abs(Number(number)) / 1.0e6).toFixed(2);\r\n\r\n return `${inMilion === '0.00' ? '0' : inMilion} mln`;\r\n};\r\n\r\nexport const getElementPosition = el => {\r\n let element = el;\r\n let xPos = 0;\r\n let yPos = 0;\r\n while (element) {\r\n if (element.tagName === 'BODY') {\r\n // deal with browser quirks with body/window/document and page scroll\r\n const xScroll = element.scrollLeft || document.documentElement.scrollLeft;\r\n const yScroll = element.scrollTop || document.documentElement.scrollTop;\r\n xPos += element.offsetLeft - xScroll + element.clientLeft;\r\n yPos += element.offsetTop - yScroll + element.clientTop;\r\n } else {\r\n // for all other non-BODY elements\r\n xPos += element.offsetLeft - element.scrollLeft + element.clientLeft;\r\n yPos += element.offsetTop - element.scrollTop + element.clientTop;\r\n }\r\n element = element.offsetParent;\r\n }\r\n return {\r\n x: xPos,\r\n y: yPos\r\n };\r\n};\r\n\r\nexport const wait = ms => {\r\n return new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve(true);\r\n }, ms);\r\n });\r\n};\r\n\r\nexport function s2ab(s) {\r\n const buf = new ArrayBuffer(s.length);\r\n const view = new Uint8Array(buf);\r\n // eslint-disable-next-line no-bitwise\r\n for (let i = 0; i !== s.length; i += 1) view[i] = s.charCodeAt(i) & 0xff;\r\n return buf;\r\n}\r\n\r\nexport const downloadData = async (bytearray, mimeType, name) => {\r\n const data = s2ab(atob(bytearray));\r\n const blob = new Blob([data], {\r\n type: mimeType\r\n });\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, name);\r\n } else {\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n a.style = 'display: none';\r\n const url = URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = name;\r\n a.click();\r\n await wait(2500);\r\n URL.revokeObjectURL(url);\r\n document.body.removeChild(a);\r\n }\r\n};\r\n\r\nexport function format(...args) {\r\n const strs = Array.prototype.slice.call(args, 1);\r\n return _.replace(args[0], /\\{(\\d+)\\}/g, (match, index) => {\r\n return strs[index];\r\n });\r\n}\r\n\r\nexport function getReducedString(string, n) {\r\n return string.length > n ? `${string.substring(0, n)}...` : string;\r\n}\r\n\r\nexport function matchDateTimeFormat(date) {\r\n return date.match(/^((0[1-9]|[12][0-9]|3[01])\\/(0[0-9]|1[0-2])\\/\\d\\d\\d\\d) (0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])$/g);\r\n}\r\n\r\nexport function formatMomentDate(momentDate) {\r\n return momentDate.format('DD/MM/YYYY HH:mm');\r\n}\r\n\r\nexport function matchTimeFormat(time) {\r\n return time.match(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/g);\r\n}\r\n\r\nexport function isNormalInteger(str) {\r\n const n = Math.floor(Number(str));\r\n return n !== Infinity && String(n) === str && n >= 0;\r\n}\r\n\r\nexport function isBeforeToday(date) {\r\n return date < moment();\r\n}\r\n\r\nexport function isHex(str) {\r\n const regexp = /^([a-f0-9]{6}|[a-f0-9]{3})$/i;\r\n return regexp.test(str);\r\n}\r\n\r\nexport function isBusinessDay(date) {\r\n const newdate = moment(date);\r\n return newdate.isoWeekday() !== 6 && newdate.isoWeekday() !== 7;\r\n}\r\n\r\nexport function addBusinessDays(date, days) {\r\n let newdate = moment(date);\r\n let newdays = days;\r\n while (newdays > 0) {\r\n newdate = newdate.add(1, 'days');\r\n if (isBusinessDay(newdate)) newdays -= 1;\r\n }\r\n return newdate;\r\n}\r\n","import { v4 } from 'uuid';\r\nimport _ from 'lodash';\r\nimport { E } from '../utils/errors';\r\nimport { ApiHelper } from './helper';\r\nimport { wait } from '../utils';\r\n\r\nrequire('es6-promise').polyfill();\r\n\r\nconst initApi = {\r\n url: '',\r\n type: 'GET',\r\n fake: false\r\n};\r\n\r\nconst initApiOptions = {\r\n credentials: 'include',\r\n cache: 'no-store',\r\n bffCall: true,\r\n uniqueRes: false,\r\n formData: false,\r\n body: undefined\r\n};\r\n\r\nexport const callApi = async (Api = initApi, apiOption = initApiOptions) => {\r\n try {\r\n if (!Api || !Api.url) throw new Error('Invalid API');\r\n\r\n const apiConfig = {\r\n method: Api.type || initApi.type,\r\n bffCall: _.isNil(apiOption.bffCall) ? initApiOptions.bffCall : apiOption.bffCall,\r\n uniqueRes: apiOption.uniqueRes || initApiOptions.uniqueRes\r\n };\r\n\r\n const options = {\r\n headers: ApiHelper.generateHeaders(apiConfig.method, apiOption.formData),\r\n method: apiConfig.method,\r\n credentials: apiOption.credentials || initApiOptions.credentials,\r\n cache: apiOption.cache || initApiOptions.cache,\r\n body: apiOption.body || initApiOptions.body\r\n };\r\n\r\n const url = `${ApiHelper.getServerUrl(Api.fake, apiConfig.bffCall)}${Api.url}`;\r\n const res = await fetch(url, options).catch(error => {\r\n throw new Error(error);\r\n });\r\n\r\n const success = ApiHelper.checkStatus(url, res.status, options.method);\r\n if (!success) return null;\r\n\r\n const result = await ApiHelper.parseResponse(res);\r\n\r\n if (!result) throw new Error(E.UNEXPECTEDFETCH);\r\n if (result && apiConfig.uniqueRes) result.uniqueId = v4();\r\n\r\n return result;\r\n } catch (error) {\r\n if (_.includes(error.message, E.SESSIONEXPIRED)) await wait(1000);\r\n else console.error(error); // eslint-disable-line no-console\r\n throw new Error(error.message);\r\n }\r\n};\r\n","import Api from './api';\r\nimport { callApi } from '../fetch';\r\n\r\nexport const GetSettings = async () => {\r\n const response = await callApi(Api.GetSettings).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful,\r\n settings: response.settings,\r\n userInfo: {\r\n name: response.name,\r\n surname: response.surname,\r\n role: response.role,\r\n email: response.email,\r\n phone: response.phoneNumber\r\n }\r\n };\r\n};\r\n\r\nexport const UpdateUserInfo = async inputData => {\r\n const response = await callApi(Api.UpdateUserInfo, {\r\n bffCall: false,\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.updateUserResult && response.updateUserResult.isSuccess\r\n };\r\n};\r\n\r\nexport const SaveSettings = async inputData => {\r\n const response = await callApi(Api.SaveSettings, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful\r\n };\r\n};\r\n","import _ from 'lodash';\r\nimport moment from 'moment';\r\nimport Api from './api';\r\nimport { callApi } from '../fetch';\r\n\r\nexport const GetMatchingList = async inputFilters => {\r\n const response = await callApi(Api.GetHomeMailBoxes, {\r\n body: JSON.stringify(inputFilters)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful,\r\n matchList: _.map(response.mailBoxes, item => ({\r\n id: item.guid,\r\n fileName: item.filename,\r\n status: item.state,\r\n insertDate: moment(item.insertDate).format('L LT'),\r\n matchAmount: item.numMatched,\r\n noMatchAmount: item.numNotMatched\r\n })),\r\n pagingInfo: response.pagingInfo\r\n };\r\n};\r\n\r\nexport const SubmitMatchingDocument = async inputData => {\r\n const response = await callApi(Api.UploadMailBoxInputFile, {\r\n body: inputData,\r\n formData: true\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return response;\r\n};\r\n\r\nexport const GetSettings = async () => {\r\n const response = await callApi(Api.GetSettings).catch(error => {\r\n throw new Error(error);\r\n });\r\n return response.settings;\r\n};","import { decorate, observable, action, runInAction } from 'mobx';\r\nimport * as API from '../api/home';\r\nimport { RoutesDictionary as RT } from '../utils/constants';\r\n\r\nconst T = {\r\n submit: 'submit',\r\n list: 'list'\r\n};\r\n\r\nconst defaultSetting = { exludeOutOfBusiness: true, excludeBranches: true, confidenceCode: 9 };\r\n\r\nexport const Modals = {\r\n close: 'none',\r\n success: 'success',\r\n error: 'error'\r\n};\r\n\r\nexport const MatchTypes = {\r\n MBR: 0,\r\n AMT: 1,\r\n ACA: 2\r\n};\r\n\r\nexport class HomeStore {\r\n loading = {\r\n submit: false,\r\n list: false\r\n };\r\n\r\n error = {\r\n message: '',\r\n submit: false,\r\n list: false\r\n };\r\n\r\n modal = Modals.close;\r\n\r\n pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n\r\n matchFileList = [];\r\n\r\n settings = defaultSetting;\r\n\r\n load = async ({ userProfile }) => {\r\n this.closeError();\r\n runInAction(() => {\r\n this.matchFileList = [];\r\n this.pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n });\r\n await this.getMatchList();\r\n this.settings = await API.GetSettings();\r\n };\r\n\r\n setLoading = (type, status) => {\r\n this.loading[type] = status;\r\n };\r\n\r\n setError = (type, status, message) => {\r\n if (message) this.error.message = message;\r\n this.error[type] = status;\r\n };\r\n\r\n closeError = () => {\r\n this.error = {\r\n ...this.error,\r\n submit: false,\r\n list: false\r\n };\r\n };\r\n\r\n setModal = type => {\r\n if (!type) this.modal = Modals.close;\r\n else this.modal = type;\r\n };\r\n\r\n getMatchList = async () => {\r\n this.setLoading(T.list, true);\r\n try {\r\n const result = await API.GetMatchingList({\r\n pagingInfo: {\r\n pageIndex: this.pagingInfo.pageIndex,\r\n pageSize: this.pagingInfo.pageSize\r\n }\r\n });\r\n if (!result) throw new Error();\r\n runInAction(() => {\r\n this.matchFileList = result.matchList;\r\n this.pagingInfo = { ...this.pagingInfo, ...result.pagingInfo };\r\n });\r\n } catch {\r\n this.setError(T.list, true);\r\n }\r\n this.setLoading(T.list, false);\r\n };\r\n\r\n changePage = page => {\r\n this.pagingInfo.pageIndex = page;\r\n this.getMatchList();\r\n };\r\n\r\n changePageSize = size => {\r\n this.pagingInfo = {\r\n ...this.pagingInfo,\r\n pageIndex: 0,\r\n pageSize: size\r\n };\r\n this.getMatchList();\r\n };\r\n\r\n submitFile = async inputData => {\r\n this.setLoading(T.submit, true);\r\n let success = false;\r\n try {\r\n const fileData = new FormData();\r\n fileData.append('file', inputData.file);\r\n fileData.append('uploadType', inputData.uploadType);\r\n fileData.append('excludeOutOfBusiness', inputData.exludeOutOfBusiness);\r\n fileData.append('excludeBranches', inputData.excludeBranches);\r\n fileData.append('confidenceCode', inputData.confidenceCode);\r\n const result = await API.SubmitMatchingDocument(fileData).catch(() => {\r\n this.setError(T.submit, true);\r\n });\r\n success = result && result.isSuccessful;\r\n if (!result) throw new Error();\r\n if (!result.isSuccessful) {\r\n this.setError('message', result.errorMessage);\r\n this.setModal(Modals.error);\r\n } else this.setModal(Modals.success);\r\n } catch {\r\n this.setError(T.submit, true, 'There was an error on upload file service');\r\n }\r\n this.setLoading(T.submit, false);\r\n return success;\r\n };\r\n\r\n goToMyDocs = () => {\r\n this.setModal(Modals.close);\r\n window.location.href = `#${RT.MYDOCS}`;\r\n };\r\n\r\n openMatching = requestId => {\r\n window.location.href = `#${RT.FILEMATCHER(requestId)}`;\r\n };\r\n}\r\n\r\ndecorate(HomeStore, {\r\n loading: observable,\r\n error: observable,\r\n modal: observable,\r\n pagingInfo: observable,\r\n matchFileList: observable,\r\n settings: observable,\r\n updateMatchList: action,\r\n setLoading: action,\r\n setError: action,\r\n closeError: action,\r\n setModal: action,\r\n changePage: action,\r\n changePageSize: action,\r\n submitFile: action\r\n});\r\n","import Api from './api';\r\nimport { callApi } from '../fetch';\r\n\r\nexport const Login = async loginInfo => {\r\n const response = await callApi(Api.Login, {\r\n bffCall: false,\r\n body: JSON.stringify(loginInfo)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return response;\r\n};\r\n\r\nexport const ResetPassword = async userInfo => {\r\n const response = await callApi(Api.ResetPassword, {\r\n bffCall: false,\r\n body: JSON.stringify(userInfo)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return response;\r\n};\r\n\r\nexport const ChangePassword = async inputData => {\r\n const response = await callApi(Api.ChangePassword, {\r\n bffCall: false,\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.changePasswordResult && response.changePasswordResult.isSuccess\r\n };\r\n};\r\n","import { decorate, observable, action, runInAction, computed, toJS } from 'mobx';\r\nimport _ from 'lodash';\r\nimport * as API from '../api/myprofile';\r\nimport * as UserAPI from '../api/login';\r\nimport { Storage } from '../utils/storage';\r\nimport { StorageDictionary as STG } from '../utils/constants';\r\n\r\nconst T = {\r\n settings: 'settings',\r\n userInfo: 'userInfo',\r\n changePassword: 'changePassword'\r\n};\r\n\r\nexport const Modals = {\r\n close: 'none',\r\n error: 'error',\r\n settingSuccess: 'settingSuccess',\r\n infoSuccess: 'infoSuccess',\r\n passwordSuccess: 'passwordSuccess'\r\n};\r\n\r\nexport class SettingStore {\r\n loading = {\r\n settings: false,\r\n userInfo: false,\r\n changePassword: false\r\n };\r\n\r\n error = {\r\n message: '',\r\n settings: false,\r\n userInfo: false,\r\n changePassword: false\r\n };\r\n\r\n userInfo = null;\r\n\r\n confidenceCode = 10;\r\n\r\n modal = Modals.close;\r\n\r\n load = async ({ userProfile }) => {\r\n this.reset();\r\n runInAction(() => {\r\n this.userInfo = { ...this.userInfo, ...userProfile };\r\n });\r\n await this.getSettings();\r\n };\r\n\r\n reset = () => {\r\n this.error = {\r\n message: '',\r\n settings: false,\r\n userInfo: false,\r\n changePassword: false\r\n };\r\n };\r\n\r\n setLoading = (type, status) => {\r\n this.loading[type] = status;\r\n };\r\n\r\n setError = (type, status, message) => {\r\n if (message) this.error.message = message;\r\n this.error[type] = status;\r\n };\r\n\r\n setModal = type => {\r\n if (!type) this.modal = Modals.close;\r\n else this.modal = type;\r\n };\r\n\r\n uploadConfCode = value => {\r\n this.confidenceCode = value;\r\n };\r\n\r\n getSettings = async () => {\r\n try {\r\n const result = await API.GetSettings();\r\n this.uploadConfCode(result.settings.confidenceCode);\r\n } catch {\r\n this.setError(T.settings, true);\r\n }\r\n };\r\n\r\n updateSettings = async () => {\r\n this.setLoading(T.settings, true);\r\n try {\r\n const result = await API.SaveSettings({ confidenceCode: this.confidenceCode });\r\n if (!result.ok) throw new Error();\r\n this.setModal(Modals.settingSuccess);\r\n } catch {\r\n this.setError(T.settings, true);\r\n }\r\n this.setLoading(T.settings, false);\r\n };\r\n\r\n updateUserContacts = async userContacts => {\r\n this.setLoading(T.userInfo, true);\r\n try {\r\n const result = await API.UpdateUserInfo({\r\n email: userContacts.email,\r\n phone: userContacts.phone\r\n });\r\n if (!result.ok) throw new Error();\r\n this.setError(T.userInfo, false);\r\n await Storage.store(STG.UserInfo, {\r\n ...this.userInfo,\r\n userContacts: { ...this.userInfo.userContacts, ...userContacts }\r\n });\r\n this.setModal(Modals.infoSuccess);\r\n } catch {\r\n this.setError(T.userInfo, true);\r\n }\r\n this.setLoading(T.userInfo, false);\r\n };\r\n\r\n changePassword = async authInfo => {\r\n this.setLoading(T.changePassword, true);\r\n try {\r\n const result = await UserAPI.ChangePassword({\r\n userName: this.userInfo.userName,\r\n oldPassword: authInfo.currentPassword,\r\n newPassword: authInfo.newPassword\r\n });\r\n if (!result.ok) throw new Error();\r\n this.setError(T.changePassword, false);\r\n this.setModal(Modals.passwordSuccess);\r\n } catch {\r\n this.setError(T.changePassword, true);\r\n }\r\n this.setLoading(T.changePassword, false);\r\n };\r\n\r\n get userContacts() {\r\n return this.userInfo && toJS(this.userInfo.userContacts);\r\n }\r\n\r\n get hasErrors() {\r\n return _.reduce(_.keys(this.error), (acc, key) => acc || (key !== 'message' ? this.error[key] : false), false);\r\n }\r\n}\r\n\r\ndecorate(SettingStore, {\r\n loading: observable,\r\n error: observable,\r\n userInfo: observable,\r\n confidenceCode: observable,\r\n modal: observable,\r\n setLoading: action,\r\n setError: action,\r\n setModal: action,\r\n uploadConfCode: action,\r\n hasErrors: computed\r\n});\r\n","import { decorate, observable, action, runInAction, computed } from 'mobx';\r\nimport _ from 'lodash';\r\nimport * as API from '../api/login';\r\nimport { RoutesDictionary as RT, StorageDictionary as STG } from '../utils/constants';\r\nimport { Storage } from '../utils/storage';\r\nimport { wait } from '../utils';\r\nimport { ApiHelper } from '../api/helper';\r\n\r\nconst T = {\r\n auth: 'auth',\r\n reset: 'reset',\r\n change: 'change'\r\n};\r\n\r\nexport const Modals = {\r\n close: 'close',\r\n resetSuccess: 'resetSuccess'\r\n};\r\n\r\nexport class UserStore {\r\n error = {\r\n auth: false,\r\n reset: false,\r\n change: false\r\n };\r\n\r\n loading = {\r\n auth: false,\r\n reset: false,\r\n change: false\r\n };\r\n\r\n userInfo = null;\r\n\r\n temporaryPassword = null;\r\n\r\n sessionBackUrl = null;\r\n\r\n userValidation = true;\r\n\r\n passwordValidation = true;\r\n\r\n authenticationFailed = false;\r\n\r\n resetPasswordFailed = false;\r\n\r\n passwordFailed = false;\r\n\r\n loadingAuth = false;\r\n\r\n modal = Modals.close;\r\n\r\n constructor(getUserProfile) {\r\n this.getUserProfile = getUserProfile;\r\n }\r\n\r\n load = async () => {\r\n await this.getUserInfo();\r\n this.sessionBackUrl = _.includes(window.location.hash, 'BackUrl')\r\n ? decodeURIComponent(window.location.hash.substring(window.location.hash.indexOf('=') + 1))\r\n : null;\r\n };\r\n\r\n getUserInfo = async () => {\r\n const userInfo = await Storage.read(STG.UserInfo);\r\n runInAction(() => {\r\n this.userInfo = userInfo || null;\r\n });\r\n };\r\n\r\n setError = (type, status) => {\r\n this.error[type] = status;\r\n };\r\n\r\n setLoading = (type, status) => {\r\n this.loading[type] = status;\r\n };\r\n\r\n setModal = type => {\r\n if (!type) this.modal = Modals.close;\r\n else this.modal = type;\r\n };\r\n\r\n validateUserForm = inputForm => {\r\n this.userValidation = _.trim(inputForm.user) !== '' && _.trim(inputForm.password) !== '';\r\n };\r\n\r\n validateChangePassword = inputForm => {\r\n this.passwordValidation =\r\n _.trim(inputForm.newPassword) !== '' &&\r\n _.trim(inputForm.confirmPassword) !== '' &&\r\n inputForm.newPassword === inputForm.confirmPassword;\r\n };\r\n\r\n goToLogin = () => {\r\n window.location.href = `#${RT.LOGIN}`;\r\n this.setModal(Modals.close);\r\n this.resetPasswordFailed = false;\r\n };\r\n\r\n goToChangePassword = temporaryPassword => {\r\n this.temporaryPassword = temporaryPassword;\r\n window.location.href = `#${RT.CHANGEPASSWORD}`;\r\n };\r\n\r\n proceedAuth = () => {\r\n this.getUserProfile();\r\n if (this.sessionBackUrl) {\r\n window.location.href = this.sessionBackUrl;\r\n this.sessionBackUrl = null;\r\n } else window.location.href = `#${RT.HOME}`;\r\n };\r\n\r\n userAuthentication = async inputForm => {\r\n this.validateUserForm(inputForm);\r\n if (!this.userValidation) return;\r\n this.setLoading(T.auth, true);\r\n try {\r\n const result = await API.Login({\r\n userName: inputForm.user,\r\n password: inputForm.password\r\n });\r\n await Storage.store(STG.UserInfo, result);\r\n runInAction(() => {\r\n this.userInfo = result;\r\n });\r\n if (result.expiredPsw) {\r\n this.goToChangePassword(inputForm.password);\r\n } else {\r\n runInAction(() => {\r\n this.authenticationFailed = !this.authenticated;\r\n });\r\n if (this.authenticated) this.proceedAuth();\r\n }\r\n } catch (error) {\r\n this.setError(T.auth, true);\r\n }\r\n this.setLoading(T.auth, false);\r\n };\r\n\r\n changePassword = async inputForm => {\r\n this.validateChangePassword(inputForm);\r\n if (!this.passwordValidation) {\r\n runInAction(() => {\r\n this.passwordFailed = true;\r\n });\r\n return;\r\n }\r\n this.setLoading(T.change, true);\r\n try {\r\n runInAction(() => {\r\n this.passwordFailed = false;\r\n });\r\n const newAuth = {\r\n user: this.userInfo.userName,\r\n password: inputForm.newPassword\r\n };\r\n const result = await API.ChangePassword({\r\n userName: newAuth.user,\r\n oldPassword: this.temporaryPassword,\r\n newPassword: newAuth.password\r\n });\r\n if (!result.ok) throw new Error();\r\n await wait(2000);\r\n await this.userAuthentication(newAuth);\r\n } catch {\r\n this.setError(T.change, true);\r\n }\r\n this.setLoading(T.change, false);\r\n };\r\n\r\n resetPassword = async inputForm => {\r\n this.setLoading(T.reset, true);\r\n try {\r\n const result = await API.ResetPassword({\r\n userCode: inputForm.user,\r\n emailTo: inputForm.email\r\n });\r\n runInAction(() => {\r\n this.resetPasswordFailed = result.resultCode !== 0;\r\n });\r\n if (!this.resetPasswordFailed) this.setModal(Modals.resetSuccess);\r\n } catch (error) {\r\n this.setError(T.reset, true);\r\n }\r\n this.setLoading(T.reset, false);\r\n };\r\n\r\n userLogout = async () => {\r\n await ApiHelper.userLogout();\r\n };\r\n\r\n get authenticated() {\r\n return this.userInfo && this.userInfo.authenticated;\r\n }\r\n\r\n get userName() {\r\n return this.userInfo && this.userInfo.userName;\r\n }\r\n\r\n get userFullname() {\r\n return this.userInfo && this.userInfo.userFullname;\r\n }\r\n}\r\n\r\ndecorate(UserStore, {\r\n error: observable,\r\n loading: observable,\r\n userInfo: observable,\r\n userValidation: observable,\r\n passwordValidation: observable,\r\n authenticationFailed: observable,\r\n resetPasswordFailed: observable,\r\n passwordFailed: observable,\r\n modal: observable,\r\n setError: action,\r\n setLoading: action,\r\n setModal: action,\r\n validateUserForm: action,\r\n validateChangePassword: action,\r\n goToLogin: action,\r\n goToChangePassword: action,\r\n authenticated: computed,\r\n userName: computed\r\n});\r\n","import _ from 'lodash';\r\nimport moment from 'moment';\r\nimport Api from './api';\r\nimport { callApi } from '../fetch';\r\n\r\nexport const GetDocuments = async inputFilters => {\r\n const response = await callApi(Api.GetMyDocsMailBoxes, {\r\n body: JSON.stringify(inputFilters)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n\r\n const shift = arr => {\r\n const res = arr[0] > 0 ? arr : _.drop(arr);\r\n return !res.length || res[0] > 0 ? res : shift(res);\r\n };\r\n\r\n const getLeftTime = timeString => {\r\n let result = timeString;\r\n let days = 0;\r\n if (_.includes(result, '.')) {\r\n const idx = result.indexOf('.');\r\n days = _.toNumber(result.substring(0, idx));\r\n result = result.substring(idx + 1);\r\n }\r\n result = _.split(result, ':');\r\n result = shift(_.map(result, _.toNumber));\r\n if (result.length > 1) {\r\n result = _.dropRight(result);\r\n result = result.length > 1 ? `${result[0]}h ${result[1] > 0 ? `${result[1]}min` : ''}` : `${result[0]}min`;\r\n } else {\r\n result = days > 0 ? '' : 'less than minute';\r\n }\r\n return _.trim(`${days > 0 ? `${days}d` : ''} ${result}`);\r\n };\r\n\r\n return {\r\n ok: response.isSuccessful,\r\n requestsList: _.map(response.mailBoxes, item => ({\r\n id: item.guid,\r\n userName: item.codUser,\r\n requestName: item.requestName,\r\n fileName: item.filename,\r\n deliveryTime: getLeftTime(item.estimatedDeliveryTime),\r\n type: item.processing,\r\n typeLabel: item.processingString,\r\n status: item.state,\r\n insertDate: moment(item.insertDate).format('L LT'),\r\n matchAmount: item.numMatched,\r\n noMatchAmount: item.numNotMatched,\r\n processedAmount: item.processedRecords,\r\n totalAmount: item.numInput,\r\n errorAmount: item.numErr,\r\n confidenceCode: item.confidenceCode,\r\n excludeOOB: item.excludeOOB,\r\n excludeBranches: item.excludeBranches\r\n })),\r\n drillDowns: response.drillDownFilters,\r\n pagingInfo: response.pagingInfo\r\n };\r\n};\r\n\r\nexport const GetInputFile = async inputData => {\r\n const response = await callApi(Api.GetMailBoxInputFile, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return response;\r\n};\r\n\r\nexport const GetOutputFile = async inputData => {\r\n const response = await callApi(Api.GetMailBoxOutputFile, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return response;\r\n};\r\n\r\nexport const RequireManualBrowsing = async inputData => {\r\n const response = await callApi(Api.ManualBrowsing, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful\r\n };\r\n};\r\n\r\nexport const RequireCreditAssessment = async inputData => {\r\n const response = await callApi(Api.RequireCreditAssessment, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful\r\n };\r\n};\r\n\r\nexport const RestartProcessingMatchDocument = async inputData => {\r\n const response = await callApi(Api.RestartProcessingMatchDocument, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful\r\n };\r\n};\r\n\r\nexport const GetUsage = async inputData => {\r\n const response = await callApi(Api.GetUsage, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful,\r\n requestsList: _.map(response.items, item => ({\r\n ...item,\r\n requestDate: moment(item.requestDate).format('L'),\r\n price: _.isNumber(item.price) ? item.price.toFixed(2) : '-'\r\n })),\r\n pagingInfo: response.pagingInfo\r\n };\r\n};\r\n\r\nexport const GetUsageResultFile = async inputData => {\r\n const response = await callApi(Api.GetUsageResultFile, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return response;\r\n};\r\n","import { decorate, observable, action, runInAction } from 'mobx';\r\nimport _ from 'lodash';\r\nimport * as API from '../api/mydocs';\r\nimport { downloadData } from '../utils';\r\nimport { RoutesDictionary as RT } from '../utils/constants';\r\n\r\nconst T = {\r\n list: 'list',\r\n download: 'download',\r\n rework: 'rework',\r\n resubmit: 'resubmit',\r\n refresh: 'refresh'\r\n};\r\n\r\nexport const Modals = {\r\n close: 'none',\r\n resubmitSuccess: 'resubmitSuccess'\r\n};\r\n\r\nexport class MyDocsStore {\r\n Interval = null;\r\n\r\n loading = {\r\n refresh: false,\r\n list: false,\r\n rework: false,\r\n resubmit: {\r\n id: null,\r\n load: false\r\n },\r\n download: {\r\n id: null,\r\n type: null,\r\n load: false\r\n }\r\n };\r\n\r\n error = {\r\n message: '',\r\n list: false,\r\n download: false,\r\n rework: false,\r\n resubmit: false\r\n };\r\n\r\n modal = Modals.close;\r\n\r\n userInfo = null;\r\n\r\n pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n\r\n FiltersMapping = [\r\n { type: 'drilldown', width: 3, key: 'state', label: 'status' },\r\n { type: 'drilldown', width: 3, key: 'username', label: 'user name' },\r\n { type: 'text', width: 3, key: 'requestName', label: 'request name' },\r\n { type: 'daterange', width: 3, key: 'insertDate', label: 'insert date from - to' }\r\n ];\r\n\r\n requestFilters = {\r\n requestName: '',\r\n insertDate: { start: '', end: '' },\r\n drillDowns: {}\r\n };\r\n\r\n requestsList = [];\r\n\r\n refreshData = async () => {\r\n if (window.location.hash !== `#${RT.MYDOCS}`) clearInterval(this.Interval);\r\n else {\r\n this.setLoading(T.refresh, true);\r\n await this.getRequests(true);\r\n this.setLoading(T.refresh, false);\r\n }\r\n };\r\n\r\n load = async ({ userProfile }) => {\r\n this.reset();\r\n this.Interval = setInterval(this.refreshData, 20000);\r\n this.userInfo = userProfile;\r\n this.getRequests();\r\n };\r\n\r\n reset = () => {\r\n this.closeError();\r\n this.requestsList = [];\r\n this.pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n };\r\n\r\n setLoading = (type, status) => {\r\n this.loading[type] = status;\r\n };\r\n\r\n setError = (type, status, message) => {\r\n if (message) this.error.message = message;\r\n this.error[type] = status;\r\n };\r\n\r\n setModal = type => {\r\n if (!type) this.modal = Modals.close;\r\n else this.modal = type;\r\n };\r\n\r\n closeError = () => {\r\n this.error = {\r\n ...this.error,\r\n list: false,\r\n download: false,\r\n resubmit: false\r\n };\r\n };\r\n\r\n updateFilters = inputFilters => {\r\n this.requestFilters = { ...this.requestFilters, ...inputFilters };\r\n this.pagingInfo.pageIndex = 0;\r\n this.getRequests();\r\n };\r\n\r\n getQueryFilters = () => {\r\n return {\r\n requestName: this.requestFilters.requestName,\r\n dateFrom: this.requestFilters.insertDate.start,\r\n dateTo: this.requestFilters.insertDate.end,\r\n filters: { ...this.requestFilters.drillDowns }\r\n };\r\n };\r\n\r\n getRequests = async hidden => {\r\n this.setLoading(T.list, !hidden);\r\n try {\r\n const updatedFilters = this.getQueryFilters();\r\n const result = await API.GetDocuments({\r\n ...updatedFilters,\r\n pagingInfo: {\r\n pageIndex: this.pagingInfo.pageIndex,\r\n pageSize: this.pagingInfo.pageSize\r\n }\r\n });\r\n runInAction(() => {\r\n this.requestsList = result.requestsList;\r\n this.requestFilters = {\r\n ...this.requestFilters,\r\n drillDowns: _.mapValues(result.drillDowns, (dd, key) => ({\r\n options: _.map(dd.options, opt => {\r\n if (!this.requestFilters.drillDowns[key]) return { ...opt };\r\n const prevOption = _.find(this.requestFilters.drillDowns[key].options, ['code', opt.code]);\r\n return { ...opt, isSelected: prevOption && prevOption.isSelected };\r\n })\r\n }))\r\n };\r\n this.pagingInfo = { ...this.pagingInfo, ...result.pagingInfo };\r\n });\r\n } catch (error) {\r\n this.setError(T.list, true);\r\n }\r\n this.setLoading(T.list, false);\r\n };\r\n\r\n changePage = page => {\r\n this.pagingInfo.pageIndex = page;\r\n this.getRequests();\r\n };\r\n\r\n changePageSize = size => {\r\n this.pagingInfo = {\r\n ...this.pagingInfo,\r\n pageIndex: 0,\r\n pageSize: size\r\n };\r\n this.getRequests();\r\n };\r\n\r\n downloadFile = async (getInputFile, fileId, matchType, fileName) => {\r\n this.setLoading(T.download, {\r\n id: fileId,\r\n type: getInputFile ? 'input' : 'output',\r\n load: true\r\n });\r\n try {\r\n let result;\r\n if (getInputFile) result = await API.GetInputFile({ guidMailBox: fileId });\r\n else result = await API.GetOutputFile({ guidMailBox: fileId, processing: matchType });\r\n if (!result) throw new Error();\r\n const name = getInputFile ? fileName : `Output_${fileName}`;\r\n downloadData(result.fileData, 'application/vnd.ms-excel', name);\r\n } catch {\r\n this.setError(T.download, true, 'There was an error on download file service');\r\n }\r\n this.setLoading(T.download, { id: null, type: null, load: false });\r\n };\r\n\r\n reworkRequest = async (type, requestId, requestStatus, requestType) => {\r\n this.setLoading(T.rework, true);\r\n try {\r\n if (type === 0) {\r\n const result = await API.RequireManualBrowsing({\r\n guid: requestId,\r\n state: requestStatus,\r\n processing: requestType\r\n });\r\n if (!result.ok) throw new Error();\r\n } else if (type === 1) {\r\n const result = await API.RequireCreditAssessment({\r\n guid: requestId,\r\n state: requestStatus,\r\n processing: requestType\r\n });\r\n if (!result.ok) throw new Error();\r\n }\r\n this.getRequests();\r\n } catch (error) {\r\n this.setError(T.rework, true);\r\n }\r\n this.setLoading(T.rework, false);\r\n };\r\n\r\n reSubmitRequest = async mailBoxId => {\r\n this.setLoading(T.resubmit, { id: mailBoxId, load: true });\r\n try {\r\n const result = await API.RestartProcessingMatchDocument({ guidMailBox: mailBoxId });\r\n if (!result.ok) throw new Error();\r\n this.setModal(Modals.resubmitSuccess);\r\n } catch {\r\n this.setError(T.resubmit, true, 'There was an error on re-submit service');\r\n }\r\n this.setLoading(T.resubmit, { id: null, load: false });\r\n };\r\n\r\n get enableReSubmit() {\r\n if (!this.userInfo) return false;\r\n return this.userInfo.canRestartProcessingMatchDocument || false;\r\n }\r\n}\r\n\r\ndecorate(MyDocsStore, {\r\n loading: observable,\r\n error: observable,\r\n modal: observable,\r\n pagingInfo: observable,\r\n requestFilters: observable,\r\n requestsList: observable,\r\n setLoading: action,\r\n setError: action,\r\n setModal: action,\r\n closeError: action,\r\n updateFilters: action,\r\n changePage: action,\r\n changePageSize: action\r\n});\r\n","import _ from 'lodash';\r\nimport moment from 'moment';\r\nimport Api from './api';\r\nimport { callApi } from '../fetch';\r\n\r\nconst Sites = {\r\n S: 'Single',\r\n H: 'Headquarters',\r\n B: 'Branch'\r\n};\r\n\r\nexport const GetMatchDetails = async inputData => {\r\n const response = await callApi(Api.GetMailBoxDetails, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful,\r\n subjects: _.map(response.detailsList, subject => ({\r\n uid: subject.guid,\r\n id: subject.id,\r\n status: subject.state,\r\n debtorCode: subject.debtorCode,\r\n name: subject.name,\r\n address: subject.address,\r\n city: subject.city,\r\n postCode: subject.postCode,\r\n countryCode: subject.countryCode,\r\n sic: subject.sic,\r\n hqName: subject.hqName,\r\n hqCountry: subject.hqCountry,\r\n hqAddress: subject.hqAddress,\r\n hqTown: subject.hqTown,\r\n guName: subject.guName,\r\n guCountry: subject.guCountry,\r\n guAddress: subject.guAddress,\r\n guTown: subject.guTown,\r\n duns: subject.duns,\r\n dunsNbr: subject.dunsNbr,\r\n guRatingNeeded: subject.guRatingNeeded,\r\n county: subject.county,\r\n businessId: subject.businessId,\r\n matchList: _.map(subject.candidateList, candidate => ({\r\n name: candidate.companyName,\r\n address: candidate.address,\r\n town: candidate.town,\r\n cap: candidate.cap,\r\n legalStatus: Sites[candidate.legalStatus] || '',\r\n confidenceCode: candidate.confidenceCode,\r\n dunsNbr: candidate.dunsNbr,\r\n ctryCd: candidate.ctryCd,\r\n mtchGrd: candidate.mtchGrd,\r\n nmePctGrd: candidate.nmePctGrd,\r\n businessId: candidate.businessId,\r\n brInd: candidate.brInd,\r\n }))\r\n })),\r\n pagingInfo: response.pagingInfo\r\n };\r\n};\r\n\r\nexport const GetMatchInfo = async inputData => {\r\n const response = await callApi(Api.GetMailBox, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful,\r\n subject: {\r\n id: response.guid,\r\n fileName: response.filename,\r\n status: response.state,\r\n insertDate: moment(response.insertDate).format('L'),\r\n matchAmount: response.numMatched,\r\n noMatchAmount: response.numNotMatched\r\n }\r\n };\r\n};\r\n\r\nexport const MatchSubject = async inputData => {\r\n const response = await callApi(Api.UpdateMailBoxDetails, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful\r\n };\r\n};\r\n\r\nexport const SkipSubject = async inputData => {\r\n const response = await callApi(Api.UpdateMailBoxDetailsSkip, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful\r\n };\r\n};\r\n\r\nexport const StopMatch = async inputData => {\r\n const response = await callApi(Api.UpdateRemainingMailboxDetails, {\r\n body: JSON.stringify(inputData)\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ok: response.isSuccessful\r\n };\r\n};\r\n\r\nexport const GetFamilyTree = async request => {\r\n const response = await callApi(Api.GetFamilyTree, {\r\n body: request.duns\r\n }).catch(error => {\r\n throw new Error(error);\r\n });\r\n return {\r\n ...response,\r\n duns: request.duns\r\n };\r\n};\r\n","import { decorate, observable, runInAction, action, computed } from 'mobx';\r\nimport _ from 'lodash';\r\nimport * as API from '../api/matcher';\r\nimport { RoutesDictionary as RT } from '../utils/constants';\r\n\r\nconst T = {\r\n info: 'info',\r\n details: 'details',\r\n match: 'match',\r\n skip: 'skip',\r\n stopMatch: 'stopMatch',\r\n familyTree: 'familyTree'\r\n};\r\n\r\nexport const Modals = {\r\n close: 'none',\r\n confirm: 'confirm',\r\n details: 'details',\r\n success: 'success',\r\n error: 'error'\r\n};\r\n\r\nexport class MatchStore {\r\n loading = {\r\n info: false,\r\n details: false,\r\n match: false,\r\n skip: false,\r\n stopMatch: false,\r\n familyTree: false\r\n };\r\n\r\n error = {\r\n message: '',\r\n info: false,\r\n details: false,\r\n match: false,\r\n skip: false,\r\n stopMatch: false,\r\n familyTree: false\r\n };\r\n\r\n pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n\r\n requestData = {};\r\n\r\n subjectsList = [];\r\n\r\n detailList = [];\r\n\r\n matchingSubject = {};\r\n\r\n modal = Modals.close;\r\n\r\n load = async ({ id }) => {\r\n this.reset();\r\n runInAction(() => {\r\n this.requestData.id = id;\r\n });\r\n await this.getRequestInfo(id);\r\n this.getRequestDetails(id);\r\n };\r\n\r\n reset = () => {\r\n this.error = {\r\n message: '',\r\n info: false,\r\n details: false,\r\n match: false,\r\n skip: false,\r\n stopMatch: false\r\n };\r\n this.requestData = {};\r\n this.subjectsList = [];\r\n this.matchingSubject = {};\r\n this.pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n };\r\n\r\n setLoading = (type, status) => {\r\n this.loading[type] = status;\r\n };\r\n\r\n setError = (type, status, message) => {\r\n if (message) this.error.message = message;\r\n this.error[type] = status;\r\n };\r\n\r\n closeError = () => {\r\n this.error = {\r\n ...this.error,\r\n info: false,\r\n details: false,\r\n select: false,\r\n skip: false,\r\n stopMatch: false\r\n };\r\n };\r\n\r\n setModal = type => {\r\n if (!type) this.modal = Modals.close;\r\n else this.modal = type;\r\n };\r\n\r\n getRequestInfo = async requestId => {\r\n this.setLoading(T.info, true);\r\n try {\r\n const result = await API.GetMatchInfo({\r\n guid: requestId\r\n });\r\n runInAction(() => {\r\n this.requestData = { ...result.subject };\r\n });\r\n } catch {\r\n this.setError(T.info, true);\r\n }\r\n this.setLoading(T.info, false);\r\n };\r\n\r\n getRequestDetails = async requestId => {\r\n this.setLoading(T.details, true);\r\n try {\r\n const result = await API.GetMatchDetails({\r\n guid: requestId,\r\n pagingInfo: {\r\n pageIndex: this.pagingInfo.pageIndex,\r\n pageSize: this.pagingInfo.pageSize\r\n }\r\n });\r\n runInAction(() => {\r\n this.subjectsList = result.subjects;\r\n this.pagingInfo = { ...this.pagingInfo, ...result.pagingInfo };\r\n });\r\n } catch {\r\n this.setError(T.details, true);\r\n }\r\n this.setLoading(T.details, false);\r\n };\r\n\r\n openDetails = subjectId => {\r\n this.matchingSubject = _.find(this.subjectsList, ['id', subjectId]);\r\n this.detailList = [];\r\n this.detailList.push({\r\n duns: this.matchingSubject.dunsNbr,\r\n sic: this.matchingSubject.sic,\r\n hqName: this.matchingSubject.hqName,\r\n hqAddress: this.matchingSubject.hqAddress,\r\n hqTown: this.matchingSubject.hqTown,\r\n hqCountry: this.matchingSubject.hqCountry,\r\n\r\n guName: this.matchingSubject.guName,\r\n guAddress: this.matchingSubject.guAddress,\r\n guTown: this.matchingSubject.guTown,\r\n guCountry: this.matchingSubject.guCountry\r\n });\r\n this.setModal(Modals.details);\r\n };\r\n\r\n matchSubject = async (subjectId, selectedCandidate) => {\r\n this.setLoading(T.match, true);\r\n try {\r\n const result = await API.MatchSubject({\r\n guid: subjectId,\r\n candidate: {\r\n companyName: selectedCandidate.name,\r\n address: selectedCandidate.address,\r\n town: selectedCandidate.town,\r\n cap: selectedCandidate.cap,\r\n legalStatus: selectedCandidate.legalStatus,\r\n confidenceCode: selectedCandidate.confidenceCode,\r\n dunsNbr: selectedCandidate.dunsNbr,\r\n ctryCd: selectedCandidate.ctryCd,\r\n mtchGrd: selectedCandidate.mtchGrd,\r\n nmePctGrd: selectedCandidate.nmePctGrd,\r\n businessId: selectedCandidate.businessId,\r\n brInd: selectedCandidate.brInd\r\n }\r\n });\r\n if (!result.ok) throw new Error();\r\n this.setModal(Modals.close);\r\n await this.getRequestInfo(this.requestData.id);\r\n await this.getRequestDetails(this.requestData.id);\r\n } catch {\r\n this.setError(T.match, true);\r\n }\r\n this.setLoading(T.match, false);\r\n };\r\n\r\n skipSubject = async subjectId => {\r\n this.setLoading(T.skip, true);\r\n try {\r\n const result = await API.SkipSubject({\r\n guid: subjectId\r\n });\r\n if (!result.ok) throw new Error();\r\n this.setModal(Modals.close);\r\n await this.getRequestInfo(this.requestData.id);\r\n await this.getRequestDetails(this.requestData.id);\r\n } catch {\r\n this.setError(T.skip, true);\r\n }\r\n this.setLoading(T.skip, false);\r\n };\r\n\r\n closeMatching = () => {\r\n window.location.href = `#${RT.HOME}`;\r\n this.reset();\r\n };\r\n\r\n stopMatch = async () => {\r\n this.setLoading(T.stopMatch, true);\r\n try {\r\n const result = await API.StopMatch({\r\n guidMailBox: this.requestData.id\r\n });\r\n if (!result.ok) throw new Error();\r\n this.setModal(Modals.close);\r\n this.closeMatching();\r\n } catch {\r\n this.setError(T.stopMatch, true);\r\n }\r\n this.setLoading(T.stopMatch, false);\r\n };\r\n\r\n changePage = page => {\r\n this.pagingInfo.pageIndex = page;\r\n this.getRequestDetails(this.requestData.id);\r\n };\r\n\r\n changePageSize = size => {\r\n this.pagingInfo = {\r\n ...this.pagingInfo,\r\n pageIndex: 0,\r\n pageSize: size\r\n };\r\n this.getRequestDetails(this.requestData.id);\r\n };\r\n\r\n get hasErrors() {\r\n return _.reduce(_.keys(this.error), (acc, key) => acc || (key !== 'message' ? this.error[key] : false), false);\r\n }\r\n\r\n getFamilyTree = async duns => {\r\n this.setLoading(T.familyTree, true);\r\n try {\r\n const result = await API.GetFamilyTree({ duns });\r\n runInAction(() => {\r\n this.detailList.push(result);\r\n });\r\n } catch {\r\n this.setError(T.familyTree, true);\r\n }\r\n this.setLoading(T.familyTree, false);\r\n };\r\n}\r\n\r\ndecorate(MatchStore, {\r\n loading: observable,\r\n error: observable,\r\n pagingInfo: observable,\r\n requestData: observable,\r\n subjectsList: observable,\r\n matchingSubject: observable,\r\n modal: observable,\r\n detailList: observable,\r\n reset: action,\r\n setLoading: action,\r\n setError: action,\r\n closeError: action,\r\n setModal: action,\r\n openDetails: action,\r\n changePage: action,\r\n changePageSize: action,\r\n hasErrors: computed\r\n});\r\n","import { decorate, observable, action, runInAction, computed } from 'mobx';\r\nimport moment from 'moment';\r\nimport * as API from '../api/mydocs';\r\nimport { downloadData } from '../utils';\r\n\r\nconst LoaderTypes = {\r\n List: 'list',\r\n Download: 'download'\r\n};\r\n\r\nexport class StatementStore {\r\n loading = {\r\n list: false,\r\n download: false\r\n };\r\n\r\n error = {\r\n message: '',\r\n list: false,\r\n download: false\r\n };\r\n\r\n userInfo = null;\r\n\r\n pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n\r\n defaultFilters = {\r\n requestDate: {\r\n start: moment()\r\n .subtract(1, 'months')\r\n .startOf('day')\r\n .toISOString(),\r\n end: moment().toISOString()\r\n }\r\n };\r\n\r\n requestFilters = { ...this.defaultFilters };\r\n\r\n requestsList = [];\r\n\r\n load = async ({ userProfile }) => {\r\n this.initStore();\r\n this.userInfo = userProfile;\r\n this.getRequests();\r\n };\r\n\r\n initStore = () => {\r\n this.closeError();\r\n this.requestsList = [];\r\n this.pagingInfo = {\r\n pageIndex: 0,\r\n pageSize: 10,\r\n pagesNumber: 0,\r\n recordsTotalNumber: 0\r\n };\r\n };\r\n\r\n setLoading = (type, status) => {\r\n this.loading[type] = status;\r\n };\r\n\r\n setError = (type, status, message) => {\r\n if (message) this.error.message = message;\r\n this.error[type] = status;\r\n };\r\n\r\n closeError = () => {\r\n this.error = {\r\n ...this.error,\r\n list: false,\r\n download: false\r\n };\r\n };\r\n\r\n changePage = page => {\r\n this.pagingInfo.pageIndex = page;\r\n this.getRequests();\r\n };\r\n\r\n changePageSize = size => {\r\n this.pagingInfo = {\r\n ...this.pagingInfo,\r\n pageIndex: 0,\r\n pageSize: size\r\n };\r\n this.getRequests();\r\n };\r\n\r\n updateFilters = inputFilters => {\r\n this.requestFilters = { ...this.requestFilters, ...inputFilters };\r\n this.pagingInfo.pageIndex = 0;\r\n this.getRequests();\r\n };\r\n\r\n resetFilters = () => {\r\n this.requestFilters = { ...this.defaultFilters };\r\n this.pagingInfo.pageIndex = 0;\r\n this.getRequests();\r\n };\r\n\r\n getQueryFilters = () => {\r\n return {\r\n dateFrom: this.requestFilters.requestDate.start,\r\n dateTo: this.requestFilters.requestDate.end\r\n };\r\n };\r\n\r\n getRequests = async () => {\r\n this.setLoading(LoaderTypes.List, true);\r\n try {\r\n const updatedFilters = this.getQueryFilters();\r\n const result = await API.GetUsage({\r\n ...updatedFilters,\r\n pagingInfo: {\r\n pageIndex: this.pagingInfo.pageIndex,\r\n pageSize: this.pagingInfo.pageSize\r\n }\r\n });\r\n runInAction(() => {\r\n this.requestsList = result.requestsList;\r\n this.pagingInfo = { ...this.pagingInfo, ...result.pagingInfo };\r\n });\r\n } catch (error) {\r\n this.setError(LoaderTypes.List, true);\r\n }\r\n this.setLoading(LoaderTypes.List, false);\r\n };\r\n\r\n downloadExcel = async () => {\r\n this.setLoading(LoaderTypes.Download, true);\r\n try {\r\n const updatedFilters = this.getQueryFilters();\r\n const result = await API.GetUsageResultFile(updatedFilters);\r\n if (!result) throw new Error();\r\n const name = `Requests_Statement_${moment().format('YYYYMMDDHHmmss')}.xlsx`;\r\n downloadData(result.fileData, 'application/vnd.ms-excel', name);\r\n } catch {\r\n this.setError(LoaderTypes.Download, true, 'There was an error on download excel service');\r\n }\r\n this.setLoading(LoaderTypes.Download, false);\r\n };\r\n\r\n get downloadExcelEnabled() {\r\n return this.requestsList.length > 0;\r\n }\r\n}\r\n\r\ndecorate(StatementStore, {\r\n loading: observable,\r\n error: observable,\r\n pagingInfo: observable,\r\n requestsList: observable,\r\n setLoading: action,\r\n setError: action,\r\n closeError: action,\r\n updateFilters: action,\r\n resetFilters: action,\r\n changePage: action,\r\n changePageSize: action,\r\n downloadExcelEnabled: computed\r\n});\r\n","import { observable, configure, action, decorate } from 'mobx';\r\nimport { fromPromise } from 'mobx-utils';\r\nimport _ from 'lodash';\r\nimport { GetSettings } from '../api/myprofile';\r\nimport { StoresDictionary, ViewStoreConnect as STConnet, StorageDictionary as STG } from '../utils/constants';\r\nimport { HomeStore } from './HomeStore';\r\nimport { SettingStore } from './SettingStore';\r\nimport { UserStore } from './UserStore';\r\nimport { MyDocsStore } from './MyDocsStore';\r\nimport { MatchStore } from './MatchStotre';\r\nimport { Storage } from '../utils/storage';\r\nimport { StatementStore } from './StatementStore';\r\n\r\nconfigure({ enforceActions: 'observed', isolateGlobalState: true });\r\n\r\nexport class AppStore {\r\n currentView = null;\r\n\r\n activeViewStore = null;\r\n\r\n userProfile = null;\r\n\r\n loadingProfile = false;\r\n\r\n errorProfile = false;\r\n\r\n constructor() {\r\n this.UserStore = new UserStore(this.getUserProfile);\r\n this.SettingStore = new SettingStore();\r\n this.HomeStore = new HomeStore();\r\n this.MatchStore = new MatchStore();\r\n this.MyDocsStore = new MyDocsStore();\r\n this.StatementStore = new StatementStore();\r\n }\r\n\r\n getUserProfile = async () => {\r\n this.setLoadingProfile(true);\r\n this.errorProfile = false;\r\n try {\r\n const userProfile = await Storage.read(STG.UserInfo);\r\n if (userProfile) {\r\n const result = await GetSettings();\r\n this.updateUserProfile(\r\n !userProfile.userContacts && result\r\n ? {\r\n ...userProfile,\r\n userContacts: result.userInfo,\r\n settings: result.settings\r\n }\r\n : {\r\n ...userProfile,\r\n settings: result.settings\r\n }\r\n );\r\n await Storage.store(STG.UserInfo, this.userProfile);\r\n }\r\n } catch {\r\n this.errorProfile = true;\r\n }\r\n this.setLoadingProfile(false);\r\n };\r\n\r\n updateUserProfile = userProfile => {\r\n this.userProfile = userProfile;\r\n };\r\n\r\n setLoadingProfile = loading => {\r\n this.loadingProfile = loading;\r\n };\r\n\r\n authGuard = async () => {\r\n const userInfo = await Storage.read(STG.UserInfo);\r\n return userInfo && userInfo.authenticated;\r\n };\r\n\r\n showView = (viewName, params) => {\r\n const userProfile = { ...this.userProfile };\r\n const storeKey = STConnet[viewName];\r\n this.activeViewStore = this.stores[storeKey];\r\n this.currentView = {\r\n name: viewName,\r\n data:\r\n this.activeViewStore && this.activeViewStore.load\r\n ? fromPromise(this.activeViewStore.load({ userProfile, ...params }))\r\n : { state: 'fulfilled' },\r\n params\r\n };\r\n };\r\n\r\n logout = () => {\r\n window.location.href = 'Account/Logout';\r\n };\r\n\r\n mapStores = (stores, key) => (!this[key] ? stores : { ...stores, [key]: this[key] });\r\n\r\n get stores() {\r\n return _.reduce(StoresDictionary, this.mapStores, {});\r\n }\r\n}\r\n\r\ndecorate(AppStore, {\r\n currentView: observable,\r\n activeViewStore: observable,\r\n loadingProfile: observable,\r\n updateUserProfile: action,\r\n setLoadingProfile: action,\r\n showView: action,\r\n logout: action\r\n});\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\n\r\nexport const Spinner = ({ loading, size, inline, className, children }) => {\r\n const spinnerElement = () => (\r\n \r\n \r\n Loading...\r\n \r\n );\r\n\r\n if (!loading) return <>{children};\r\n\r\n return !inline ?
{spinnerElement()}
: spinnerElement();\r\n};\r\nSpinner.propTypes = {\r\n loading: PT.bool,\r\n size: PT.number,\r\n inline: PT.bool,\r\n className: PT.string,\r\n children: PT.node\r\n};\r\n\r\nexport const BusyElement = ({ loading, block, size, children }) => (\r\n
\r\n \r\n {children}\r\n
\r\n);\r\nBusyElement.propTypes = {\r\n loading: PT.bool,\r\n block: PT.bool,\r\n size: PT.number,\r\n children: PT.oneOfType([PT.node, PT.arrayOf(PT.node)])\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport { inject } from 'mobx-react';\r\nimport { Navbar, Nav, Container, Dropdown } from 'react-bootstrap';\r\nimport { RoutesDictionary as RT, StoresDictionary as ST } from '../../utils/constants';\r\nimport Logo from '../../img/logo_cribis2.png';\r\n\r\n// eslint-disable-next-line react/prop-types\r\nconst UserButtonComponent = ({ onClick, children }, ref) => (\r\n onClick(e)}\r\n >\r\n {children}\r\n \r\n);\r\n\r\nconst UserButton = React.forwardRef(UserButtonComponent);\r\n\r\nexport const Header = inject(ST.UserStore)(({ UserStore, userProfile }) => {\r\n const route = link => {\r\n if (link === 'logout') UserStore.userLogout();\r\n else window.location.href = link;\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \"logo\"\r\n \r\n
\r\n route(link)}>\r\n \r\n {userProfile && userProfile.userName}\r\n \r\n \r\n Settings\r\n Logout\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n});\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\nimport Logo from '../../img/logo_cribis2.png';\r\nimport LogoDB from '../../img/dun_bradstreet_large.png';\r\n\r\nexport const Footer = () => (\r\n \r\n);\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\n\r\nexport const PageTitle = ({ title, description }) => (\r\n \r\n {title && (\r\n \r\n

{title}

\r\n \r\n )}\r\n {description && (\r\n \r\n

{description}

\r\n \r\n )}\r\n
\r\n);\r\nPageTitle.propTypes = {\r\n title: PT.string,\r\n description: PT.string\r\n};\r\n\r\nexport const Page = ({ className, boxed, title, description, children }) => (\r\n \r\n \r\n {children}\r\n \r\n);\r\nPage.propTypes = {\r\n className: PT.string,\r\n boxed: PT.bool,\r\n title: PT.string,\r\n description: PT.string,\r\n children: PT.oneOfType([PT.node, PT.arrayOf(PT.node)])\r\n};\r\n\r\nexport const StyledTitle = ({ className, sepClass, children }) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n);\r\nStyledTitle.propTypes = {\r\n className: PT.string,\r\n sepClass: PT.string,\r\n children: PT.oneOfType([PT.node, PT.arrayOf(PT.node)])\r\n};\r\n\r\nexport const BoxTitle = ({ className, title, subtitle }) => (\r\n \r\n
{title}
\r\n {subtitle &&

{subtitle}

}\r\n
\r\n);\r\nBoxTitle.propTypes = {\r\n className: PT.string,\r\n title: PT.string,\r\n subtitle: PT.string\r\n};\r\n\r\nexport const SectionContainer = ({ className, children }) => (\r\n
{children}
\r\n);\r\nSectionContainer.propTypes = {\r\n className: PT.string,\r\n children: PT.oneOfType([PT.node, PT.arrayOf(PT.node)])\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport { Modal } from 'react-bootstrap';\r\n\r\nexport const ModalBox = ({ className, open, size, title, closeButton, onClose, withError, children }) => (\r\n \r\n \r\n {title && (\r\n <>\r\n

{title}

\r\n {closeButton && (\r\n \r\n )}\r\n \r\n )}\r\n
\r\n \r\n {children}\r\n {withError && (\r\n <>\r\n

\r\n Please try again or contact our customer service\r\n \r\n customerserviceitaly@cribis.com\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n);\r\nModalBox.propTypes = {\r\n className: PT.string,\r\n open: PT.bool,\r\n size: PT.oneOf(['sm', 'lg', 'xl']),\r\n title: PT.string,\r\n closeButton: PT.bool,\r\n onClose: PT.func,\r\n withError: PT.bool,\r\n children: PT.oneOfType([PT.node, PT.arrayOf(PT.node)])\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { Accordion } from 'react-bootstrap';\r\nimport { Page } from '../../components/Layout';\r\nimport { StoresDictionary as ST, RoutesDictionary as RT } from '../../utils/constants';\r\nimport { Spinner } from '../../components/Spinner';\r\nimport { ModalBox } from '../../components/Modal';\r\nimport { Modals } from '../../stores/UserStore';\r\n\r\nexport const LogOn = inject(ST.UserStore)(\r\n observer(({ UserStore }) => {\r\n const [userForm, setUserForm] = React.useState({ user: '', password: '' });\r\n\r\n const onInputChange = (key, value) => setUserForm({ ...userForm, [key]: value });\r\n\r\n const onSubitForm = () => UserStore.userAuthentication(userForm);\r\n\r\n return (\r\n \r\n
\r\n

Automatic Matching Engine

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

\r\n \r\n \r\n \r\n Login\r\n

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

Enter your credentials to access the service

\r\n
\r\n
\r\n
\r\n {UserStore.authenticationFailed && (\r\n
\r\n The login was not successful. Please correct the errors and try again.\r\n
    \r\n
  • The Username or Password entered is incorrect
  • \r\n
\r\n
\r\n )}\r\n
\r\n {\r\n e.preventDefault();\r\n onSubitForm();\r\n }}\r\n >\r\n
\r\n onInputChange('user', e.target.value)}\r\n />\r\n
\r\n
\r\n onInputChange('password', e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n \r\n Login\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Reset Password\r\n \r\n \r\n Login problems?\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Send us an email at \r\n customerserviceitaly@cribis.com\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n })\r\n);\r\n\r\nexport const ResetPassword = inject(ST.UserStore)(\r\n observer(({ UserStore }) => {\r\n const [userForm, setUserForm] = React.useState({ user: '', email: '' });\r\n\r\n const onInputChange = (key, value) => setUserForm({ ...userForm, [key]: value });\r\n\r\n const onSubitForm = () => UserStore.resetPassword(userForm);\r\n\r\n return (\r\n \r\n
\r\n

Automatic Matching Engine

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

\r\n \r\n \r\n \r\n Reset Password\r\n

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

\r\n Enter the Username and the Email address to which your account is associated. You will receive an\r\n email with the user credential.\r\n

\r\n
\r\n
\r\n
\r\n {UserStore.resetPasswordFailed && (\r\n <>\r\n
\r\n The password has not been reset\r\n
    \r\n
  • The Username or Email entered is incorrect
  • \r\n
\r\n
\r\n
\r\n

\r\n Please try again, or contact our customer service\r\n \r\n customerserviceitaly@cribis.com\r\n \r\n

\r\n
\r\n \r\n )}\r\n
\r\n {\r\n e.preventDefault();\r\n onSubitForm();\r\n }}\r\n >\r\n
\r\n onInputChange('user', e.target.value)}\r\n />\r\n
\r\n
\r\n onInputChange('email', e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n \r\n Reset Password\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n UserStore.goToLogin();\r\n }}\r\n >\r\n Go back to the Login page\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n Your password has been successfully reset. You will receive an email with a temporary password.\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n })\r\n);\r\n\r\nexport const ChangePassword = inject(ST.UserStore)(\r\n observer(({ UserStore }) => {\r\n const [userForm, setUserForm] = React.useState({ newPassword: '', confirmPassword: '' });\r\n\r\n const onInputChange = (key, value) => setUserForm({ ...userForm, [key]: value });\r\n\r\n const onSubitForm = () => UserStore.changePassword(userForm);\r\n\r\n return (\r\n \r\n
\r\n

Automatic Matching Engine

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

\r\n \r\n \r\n \r\n Change Password\r\n

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

Enter the new password for your account.

\r\n
\r\n
\r\n
\r\n {UserStore.passwordFailed && (\r\n
\r\n The passwords entered are different or not valid. Please correct and try again.\r\n
\r\n )}\r\n
\r\n {\r\n e.preventDefault();\r\n onSubitForm();\r\n }}\r\n >\r\n
\r\n onInputChange('newPassword', e.target.value)}\r\n />\r\n
\r\n
\r\n onInputChange('confirmPassword', e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n \r\n Change Password\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n })\r\n);\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport DateRangePicker from 'react-bootstrap-daterangepicker';\r\nimport moment from 'moment';\r\n\r\nexport const IFormField = {\r\n key: PT.string,\r\n type: PT.string,\r\n label: PT.string\r\n};\r\n\r\nexport const FileInput = ({ className, name, file, onChange, children }) => {\r\n const fileRef = React.useRef(null);\r\n const { t } = useTranslation('common');\r\n\r\n const onChangeFile = e => {\r\n const uploadedFile = e.target.files[0] ? e.target.files[0] : null;\r\n onChange(uploadedFile);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n fileRef.current.click()}\r\n >\r\n {t('Browse')}\r\n \r\n {children}\r\n
\r\n );\r\n};\r\nFileInput.propTypes = {\r\n className: PT.string,\r\n name: PT.string,\r\n file: PT.shape({ name: PT.string }),\r\n onChange: PT.func,\r\n children: PT.node\r\n};\r\n\r\nexport const DateRange = ({ name, value, placeholder, onChange }) => {\r\n return (\r\n
\r\n {\r\n const range = {\r\n start: moment(picker.startDate).startOf('day'),\r\n end: moment(picker.endDate).endOf('day')\r\n };\r\n onChange(range, event);\r\n }}\r\n locale={{\r\n applyLabel: 'confirm',\r\n cancelLabel: 'undo'\r\n }}\r\n >\r\n \r\n \r\n onChange({ startDate: '', endDate: '' }, e)}>\r\n \r\n \r\n
\r\n );\r\n};\r\nDateRange.propTypes = {\r\n name: PT.string,\r\n value: PT.oneOfType([PT.string, PT.shape({})]),\r\n placeholder: PT.string,\r\n onChange: PT.func\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\nimport { IFormField } from '../../components/Form';\r\n\r\nexport const FormBox = ({ title, fields = [], data = {}, submitLabel, onSubmit }) => {\r\n const initForm = _.reduce(fields, (res, { key }) => ({ ...res, [key]: data[key] || '' }), {});\r\n const [form, setForm] = React.useState(initForm);\r\n\r\n const onSubmitForm = () => {\r\n onSubmit(form);\r\n };\r\n\r\n const onChange = (key, value) => {\r\n setForm({ ...form, [key]: value });\r\n };\r\n\r\n return (\r\n <>\r\n {title &&

{title}

}\r\n
\r\n {\r\n e.preventDefault();\r\n onSubmitForm();\r\n }}\r\n >\r\n {_.map(fields, (field, idx) => (\r\n \r\n \r\n {field.label}\r\n \r\n \r\n onChange(field.key, 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};\r\n\r\nFormBox.propTypes = {\r\n title: PT.string,\r\n fields: PT.arrayOf(PT.shape(IFormField)),\r\n data: PT.shape({}),\r\n submitLabel: PT.string.isRequired,\r\n onSubmit: PT.func.isRequired\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\nimport _ from 'lodash';\r\nimport { Spinner } from '../../components/Spinner';\r\n\r\nexport const Settings = ({ confidenceCode, loading, onChange, onUpdate }) => (\r\n <>\r\n \r\n \r\n

Request Settings

\r\n \r\n
\r\n \r\n \r\n
\r\n {\r\n e.preventDefault();\r\n onUpdate();\r\n }}\r\n >\r\n \r\n \r\n Confidence code\r\n

(set the minimum confidence code for matching)

\r\n \r\n \r\n onChange(_.toNumber(e.target.value))}>\r\n {_.map(_.range(1, 11), (num, idx) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n save\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n);\r\n\r\nSettings.propTypes = {\r\n confidenceCode: PT.number,\r\n loading: PT.bool,\r\n onChange: PT.func,\r\n onUpdate: PT.func\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport { StoresDictionary as ST } from '../../utils/constants';\r\nimport { Page, SectionContainer, BoxTitle } from '../../components/Layout';\r\nimport { ModalBox } from '../../components/Modal';\r\nimport { Modals } from '../../stores/SettingStore';\r\nimport { FormBox } from './FormBox';\r\nimport { Settings } from './Settings';\r\n\r\nconst InfoField = ({ label, value = '', className = '' }) => (\r\n
\r\n {label}\r\n

{value}

\r\n
\r\n);\r\n\r\nInfoField.propTypes = {\r\n label: PT.string.isRequired,\r\n value: PT.string,\r\n className: PT.string\r\n};\r\n\r\nconst ContactForm = [\r\n { key: 'phone', type: 'text', label: 'Phone Number' },\r\n { key: 'email', type: 'email', label: 'Email' }\r\n];\r\n\r\nconst ResetPasswordForm = [\r\n { key: 'currentPassword', type: 'password', label: 'Current password' },\r\n { key: 'newPassword', type: 'password', label: 'New password' },\r\n { key: 'confirmPassword', type: 'password', label: 'Confirm new password' }\r\n];\r\n\r\nexport const MyProfile = inject(ST.SettingStore)(\r\n observer(({ SettingStore }) => {\r\n return (\r\n \r\n \r\n \r\n

\r\n \r\n {`${SettingStore.userContacts.name} ${SettingStore.userContacts.surname}`}\r\n

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n SettingStore.updateUserContacts(userContacts)}\r\n />\r\n SettingStore.changePassword(authInfo)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n Your account settings has been successfully updated.\r\n

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

\r\n Your account informations has been successfully updated.\r\n

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

Your password has been successfully updated.

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

{SettingStore.error.message || 'There was a service error.'}

\r\n
\r\n
\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Form } from 'react-bootstrap';\r\nimport { FileInput } from '../../components/Form';\r\nimport { Spinner } from '../../components/Spinner';\r\nimport { MatchTypes } from '../../stores/HomeStore';\r\n\r\nexport const UploadForm = ({ loading, onSubmit, settings }) => {\r\n const [type, setType] = React.useState(MatchTypes.ACA);\r\n const [file, setFile] = React.useState(null);\r\n const [exludeOutOfBusiness, setExludeOutOfBusiness] = React.useState(settings.exludeOutOfBusiness);\r\n const [excludeBranches, setExcludeBranches] = React.useState(settings.excludeBranches);\r\n const [confidenceCode, setConfidenceCode] = React.useState(settings.confidenceCode);\r\n const { t } = useTranslation(['home', 'common']);\r\n const handleExcludeBranches = () => {\r\n setExcludeBranches(!excludeBranches);\r\n };\r\n const handlEexludeOutOfBusiness = () => {\r\n setExludeOutOfBusiness(!exludeOutOfBusiness);\r\n };\r\n\r\n const onSubmitForm = async () => {\r\n const result = await onSubmit({\r\n file,\r\n uploadType: type,\r\n exludeOutOfBusiness,\r\n excludeBranches,\r\n confidenceCode\r\n });\r\n if (result) {\r\n setFile(null);\r\n setType(MatchTypes.ACA);\r\n setExludeOutOfBusiness(settings.exludeOutOfBusiness);\r\n setExcludeBranches(settings.excludeBranches);\r\n setConfidenceCode(settings.confidenceCode);\r\n }\r\n };\r\n\r\n return (\r\n {\r\n e.preventDefault();\r\n onSubmitForm();\r\n }}\r\n >\r\n setType(Number(e.target.value))}\r\n />\r\n setType(Number(e.target.value))}\r\n />\r\n setType(Number(e.target.value))}\r\n />\r\n
\r\n \r\n \r\n \r\n {t('common:UploadFile')}\r\n \r\n \r\n
\r\n \r\n \r\n setConfidenceCode(e.target.value)}\r\n style={{ width: '42px' }}\r\n />\r\n \r\n {t('common:ConfidenceCode')}\r\n \r\n \r\n );\r\n};\r\n\r\nUploadForm.propTypes = {\r\n loading: PT.bool,\r\n onSubmit: PT.func.isRequired,\r\n settings: PT.shape({\r\n exludeOutOfBusiness: PT.bool,\r\n excludeBranches: PT.bool,\r\n confidenceCode: PT.number\r\n })\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport { Pagination } from 'react-bootstrap';\r\nimport _ from 'lodash';\r\n\r\nconst BASE_SHIFT = 0;\r\nconst PAGE_SHIFT = 1;\r\nconst Type = {\r\n first: 'firstPage',\r\n prev: 'prevPage',\r\n prevSet: 'prevSet',\r\n nextSet: 'nextSet',\r\n next: 'nextPage',\r\n last: 'lastPage'\r\n};\r\n\r\nexport const Pager = ({ current, total, limit = 5, onChange }) => {\r\n const pagerSections = {\r\n total: Math.ceil(total / limit),\r\n current: Math.ceil((current + PAGE_SHIFT) / limit) - PAGE_SHIFT,\r\n size: limit\r\n };\r\n\r\n const activeSection = () => {\r\n const start = pagerSections.current * pagerSections.size;\r\n const delta = total - start;\r\n const end = start + (delta > pagerSections.size ? pagerSections.size : delta);\r\n return _.range(start + PAGE_SHIFT, end + PAGE_SHIFT);\r\n };\r\n\r\n const disableEllipsis = {\r\n prev: pagerSections.total === PAGE_SHIFT || pagerSections.current === BASE_SHIFT,\r\n next:\r\n pagerSections.total === PAGE_SHIFT ||\r\n pagerSections.current === pagerSections.total - PAGE_SHIFT ||\r\n pagerSections.total === 0\r\n };\r\n\r\n const onChangePage = e => {\r\n const page = e.target.name || e.target.parentNode.name;\r\n if (!page) return null;\r\n switch (page) {\r\n case Type.first:\r\n return onChange(BASE_SHIFT);\r\n case Type.prev:\r\n return onChange(current - PAGE_SHIFT);\r\n case Type.prevSet:\r\n return onChange(pagerSections.current * pagerSections.size - PAGE_SHIFT);\r\n case Type.nextSet:\r\n return onChange((pagerSections.current + PAGE_SHIFT) * pagerSections.size);\r\n case Type.next:\r\n return onChange(current + PAGE_SHIFT);\r\n case Type.last:\r\n return onChange(total - PAGE_SHIFT);\r\n default:\r\n return onChange(Number(page));\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {!disableEllipsis.prev && }\r\n\r\n {_.map(activeSection(), (page, idx) => (\r\n \r\n {page}\r\n \r\n ))}\r\n\r\n {!disableEllipsis.next && }\r\n = total - PAGE_SHIFT} name={Type.next} />\r\n = total - PAGE_SHIFT} name={Type.last} />\r\n \r\n );\r\n};\r\n\r\nPager.propTypes = {\r\n current: PT.number.isRequired,\r\n total: PT.number.isRequired,\r\n limit: PT.number,\r\n onChange: PT.func.isRequired\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport _ from 'lodash';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nexport const PageSize = ({ onChange, selected = 10, sizes = [10, 20, 50] }) => {\r\n const { t } = useTranslation('common');\r\n\r\n const changePageSize = size => onChange(Number(size));\r\n\r\n return (\r\n
\r\n changePageSize(size)}>\r\n {selected}\r\n \r\n {_.map(sizes, (size, idx) => (\r\n \r\n {size}\r\n \r\n ))}\r\n \r\n {t('PerPage')}\r\n \r\n
\r\n );\r\n};\r\n\r\nPageSize.propTypes = {\r\n onChange: PT.func.isRequired,\r\n selected: PT.number,\r\n sizes: PT.arrayOf(PT.number)\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport { Pager } from './pagination';\r\nimport { PageSize } from './pagesize';\r\n\r\nexport const Pagination = ({\r\n className,\r\n current,\r\n total,\r\n limit,\r\n nosize,\r\n pageSize,\r\n sizeList,\r\n onChangePage,\r\n onChangeSize,\r\n children\r\n}) =>\r\n !total ? null : (\r\n
\r\n {children}\r\n \r\n {!nosize && }\r\n
\r\n );\r\n\r\nPagination.propTypes = {\r\n className: PT.string,\r\n current: PT.number.isRequired,\r\n total: PT.number.isRequired,\r\n onChangePage: PT.func.isRequired,\r\n onChangeSize: PT.func.isRequired,\r\n nosize: PT.bool,\r\n limit: PT.number,\r\n pageSize: PT.number,\r\n sizeList: PT.arrayOf(PT.number),\r\n children: PT.oneOfType([PT.node, PT.arrayOf(PT.node)])\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { Table } from 'react-bootstrap';\r\n\r\nexport const ITableField = {\r\n label: PT.string.isRequired,\r\n key: PT.string.isRequired,\r\n width: PT.string,\r\n align: PT.string,\r\n colSpan: PT.string\r\n};\r\n\r\nexport const TableHeader = ({ t, fields, children }) => (\r\n \r\n \r\n {_.map(fields, (field, idx) => (\r\n \r\n ))}\r\n {children}\r\n \r\n \r\n);\r\nTableHeader.propTypes = {\r\n t: PT.func.isRequired,\r\n fields: PT.arrayOf(PT.shape(ITableField)).isRequired,\r\n children: PT.node\r\n};\r\n\r\nexport const TableHeaderCell = ({ label, colSpan, width, align }) => (\r\n \r\n {label}\r\n \r\n);\r\nTableHeaderCell.propTypes = {\r\n label: PT.string.isRequired,\r\n width: PT.string,\r\n align: PT.string,\r\n colSpan: PT.string\r\n};\r\n\r\nexport const EmptyRow = ({ colSpan, label }) => (\r\n \r\n \r\n

{label || 'no data available'}

\r\n \r\n \r\n);\r\nEmptyRow.propTypes = {\r\n colSpan: PT.number,\r\n label: PT.string\r\n};\r\n\r\nexport const TableRow = ({ fields, value, highlight, hasErrors, children }) => (\r\n \r\n {_.map(fields, (field, idx) => (\r\n \r\n ))}\r\n {children}\r\n \r\n);\r\nTableRow.propTypes = {\r\n fields: PT.arrayOf(PT.shape(ITableField)).isRequired,\r\n value: PT.func.isRequired,\r\n highlight: PT.func,\r\n hasErrors: PT.bool,\r\n children: PT.node\r\n};\r\n\r\nexport const TableCell = ({ width, align, highlight, value, custom, children }) => (\r\n \r\n
\r\n {!custom ? {value} : children}\r\n
\r\n \r\n);\r\nTableCell.propTypes = {\r\n value: PT.oneOfType([PT.string, PT.number, PT.node]),\r\n width: PT.string,\r\n align: PT.string,\r\n highlight: PT.bool,\r\n custom: PT.bool,\r\n children: PT.node\r\n};\r\n\r\nexport class StyledTable extends React.PureComponent {\r\n static Header = TableHeader;\r\n\r\n static HeaderCell = TableHeaderCell;\r\n\r\n static Body = ({ children }) => {children};\r\n\r\n static EmptyRow = EmptyRow;\r\n\r\n static Row = TableRow;\r\n\r\n static Cell = TableCell;\r\n\r\n static Footer = ({ children }) => {children};\r\n\r\n render() {\r\n return ;\r\n }\r\n}\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { StyledTable as Table, ITableField } from '../../components/Table';\r\n\r\nexport const ManualBrowsingList = ({ t, loading, fields, data = [], empty, onSelect }) => (\r\n
\r\n t(`Fields.${key}`)}>\r\n \r\n \r\n \r\n {data.length > 0 || loading ? (\r\n _.map(data, (item, idx) => (\r\n item[key]} highlight={key => key === 'fileName'}>\r\n \r\n onSelect(item.id)}\r\n >\r\n {t('Match')}\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n);\r\n\r\nManualBrowsingList.propTypes = {\r\n t: PT.func,\r\n loading: PT.bool,\r\n fields: PT.arrayOf(PT.shape(ITableField)).isRequired,\r\n data: PT.arrayOf(PT.shape({})),\r\n empty: PT.string,\r\n onSelect: PT.func\r\n};\r\n","import './common/style.scss';\r\n\r\nimport React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport { StoresDictionary as ST } from '../../utils/constants';\r\nimport { Page, SectionContainer, BoxTitle } from '../../components/Layout';\r\nimport { UploadForm } from './UploadForm';\r\nimport { Pagination } from '../../components/Pager';\r\nimport { ModalBox } from '../../components/Modal';\r\nimport { Modals } from '../../stores/HomeStore';\r\nimport { BusyElement } from '../../components/Spinner';\r\nimport { ManualBrowsingList } from './ManualBrowsingList';\r\n\r\nconst ManualBrowsingFields = [\r\n { label: 'FileName', key: 'fileName' },\r\n { label: 'Status', key: 'status' },\r\n { label: 'Date', key: 'insertDate' },\r\n { label: 'Matched', key: 'matchAmount' },\r\n { label: 'NotMatched', key: 'noMatchAmount' }\r\n];\r\n\r\nexport const Home = inject(ST.HomeStore)(\r\n observer(({ HomeStore }) => {\r\n const { t } = useTranslation(['home', 'common', 'exceptions']);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {t('UserManual')}\r\n \r\n \r\n \r\n {t('DownloadTemplate')}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {HomeStore.pagingInfo.recordsTotalNumber}\r\n {t('Total')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{t('SuccessMessage')}

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

{HomeStore.error.message}

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

{HomeStore.error.message || t('exceptions:Generic.Message')}

\r\n \r\n
\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport _ from 'lodash';\r\n\r\nimport { StyledTable as Table, ITableField } from '../../components/Table';\r\n\r\nconst Status = {\r\n NEW: 'NEW',\r\n SKIP: 'SKIP',\r\n TOMATCH: 'TOMATCH',\r\n WORKING: 'WORKING',\r\n MATCHED: 'MATCHED',\r\n COMPLETED: 'COMPLETED',\r\n ERROR: 'ERROR'\r\n};\r\n\r\nexport const MatcherSubjectsList = ({ fields, data = [], empty, onSelect, loading }) => {\r\n const { t } = useTranslation('matcher');\r\n\r\n const getStatusClass = status => {\r\n switch (status) {\r\n case Status.SKIP:\r\n case Status.ERROR:\r\n return 'watermelon';\r\n case Status.WORKING:\r\n return 'yellow';\r\n case Status.MATCHED:\r\n case Status.COMPLETED:\r\n return 'tealish-green';\r\n case Status.TOMATCH:\r\n case Status.NEW:\r\n default:\r\n return 'pale-grey4';\r\n }\r\n };\r\n\r\n return (\r\n \r\n t(`SubjectFields.${key}`)}>\r\n \r\n \r\n \r\n {data.length > 0 || loading ? (\r\n _.map(data, (item, idx) => (\r\n item[key]} highlight={key => key === 'fileName'}>\r\n \r\n
\r\n onSelect(item.id)}\r\n disabled={item.status !== Status.TOMATCH && item.status !== Status.NEW}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n ))\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nMatcherSubjectsList.propTypes = {\r\n fields: PT.arrayOf(PT.shape(ITableField)).isRequired,\r\n data: PT.arrayOf(PT.shape({})),\r\n empty: PT.string,\r\n onSelect: PT.func,\r\n loading: PT.bool\r\n};\r\n","import PT from 'prop-types';\r\n\r\nexport const IRequest = {\r\n uid: PT.string,\r\n id: PT.string,\r\n status: PT.string,\r\n debtorCode: PT.string,\r\n name: PT.string,\r\n address: PT.string,\r\n city: PT.string,\r\n postCode: PT.string,\r\n countryCode: PT.string,\r\n duns: PT.string,\r\n dunsNbr: PT.string,\r\n guRatingNeeded: PT.string,\r\n county: PT.string,\r\n businessId: PT.string,\r\n matchList: PT.shape({})\r\n};\r\n\r\nexport const ICandidate = {\r\n name: PT.string,\r\n address: PT.string,\r\n town: PT.string,\r\n cap: PT.string,\r\n legalStatus: PT.string,\r\n confidenceCode: PT.string,\r\n dunsNbr: PT.string,\r\n ctryCd: PT.string,\r\n mtchGrd: PT.string,\r\n nmePctGrd: PT.string,\r\n businessId: PT.string,\r\n brInd: PT.string\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport { IRequest } from './common/types';\r\n\r\nexport const SubjectDetails = withTranslation('matcher')(({ t, subject }) => (\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {subject.name}\r\n
\r\n
\r\n
\r\n
{t('SubjectFields.Address')}
\r\n
{subject.address || '-'}
\r\n
\r\n
\r\n
{t('SubjectFields.Town')}
\r\n
{subject.city || '-'}
\r\n
\r\n
\r\n
{t('SubjectFields.ZipCode')}
\r\n
{subject.postCode || '-'}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
{t('SubjectFields.Duns')}
\r\n
{subject.duns || '-'}
\r\n \r\n \r\n
{t('SubjectFields.BusinessId')}
\r\n
{subject.businessId || '-'}
\r\n \r\n
\r\n \r\n \r\n
{t('SubjectFields.DebtorCode')}
\r\n
{subject.debtorCode || '-'}
\r\n \r\n \r\n
{t('SubjectFields.CountryCode')}
\r\n
{subject.countryCode || '-'}
\r\n \r\n
\r\n \r\n \r\n
{t('SubjectFields.GURating')}
\r\n
{subject.guRatingNeeded || '-'}
\r\n \r\n \r\n
{t('SubjectFields.Country')}
\r\n
{subject.county || '-'}
\r\n \r\n
\r\n \r\n
\r\n
\r\n));\r\n\r\nSubjectDetails.propTypes = {\r\n subject: PT.shape(IRequest).isRequired\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport _ from 'lodash';\r\n\r\nimport { BusyElement } from '../../components/Spinner';\r\nimport { ICandidate } from './common/types';\r\n\r\nexport const CandidatesList = withTranslation('matcher')(({ t, candidates, onSelect, loading, disableSelect, detailList, getFamilyTree }) => (\r\n \r\n
\r\n {candidates.length > 0 ? (\r\n _.map(candidates, (candidate, idx) => (\r\n
\r\n
\r\n
\r\n
\r\n {t('CandidateFields.ConfidenceCode')}\r\n
\r\n
{candidate.confidenceCode}
\r\n
\r\n
\r\n
\r\n \r\n {candidate.name}\r\n
\r\n
\r\n
\r\n
{t('CandidateFields.LegalStatus')}
\r\n
{candidate.legalStatus || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.Address')}
\r\n
{candidate.address || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.Town')}
\r\n
{candidate.town || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.ZipCode')}
\r\n
{candidate.cap || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.Site')}
\r\n
{candidate.legalStatus || '-'}
\r\n
\r\n {detailList.find(d => d.duns === candidate.dunsNbr) &&
\r\n
{t('CandidateFields.Sic')}
\r\n
{detailList.find(d => d.duns === candidate.dunsNbr).sic || '-'}
\r\n
}\r\n
\r\n
\r\n
\r\n onSelect(candidate)}\r\n disabled={disableSelect || loading}\r\n >\r\n {t('Select')}\r\n \r\n
\r\n
\r\n \r\n
\r\n ))\r\n ) : (\r\n
\r\n

{t('NoCandidates')}

\r\n
\r\n )}\r\n
\r\n
\r\n));\r\n\r\nconst FamilyTree = ({ t, detailList, candidate, getFamilyTree }) => {\r\n const detail = detailList.find(d => d.duns === candidate.dunsNbr);\r\n if (detail) {//(detailList.duns === candidate.dunsNbr)\r\n if (detail.errorMessage === undefined)\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
HQ
\r\n
\r\n
\r\n
\r\n \r\n {detail.hqName || '-'}\r\n
\r\n
\r\n
\r\n
{t('CandidateFields.Address')}
\r\n
{detail.hqAddress || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.Town')}
\r\n
{detail.hqTown || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.Country')}
\r\n
{detail.hqCountry || '-'}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
GU
\r\n
\r\n
\r\n
\r\n \r\n {detail.guName || '-'}\r\n
\r\n
\r\n
\r\n
{t('CandidateFields.Address')}
\r\n
{detail.guAddress || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.Town')}
\r\n
{detail.guTown || '-'}
\r\n
\r\n
\r\n
{t('CandidateFields.Country')}
\r\n
{detail.guCountry || '-'}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n else\r\n return (\r\n \r\n );\r\n }\r\n else\r\n return (\r\n );\r\n}\r\n\r\nCandidatesList.propTypes = {\r\n candidates: PT.arrayOf(PT.shape(ICandidate)),\r\n onSelect: PT.func,\r\n loading: PT.bool,\r\n disableSelect: PT.bool\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { BusyElement } from '../../components/Spinner';\r\nimport { Spinner } from '../../components/Spinner';\r\nimport { IRequest } from './common/types';\r\nimport { SubjectDetails } from './SubjectDetails';\r\nimport { CandidatesList } from './CandidatesList';\r\n\r\nexport const SubjectMatcher = withTranslation('matcher')(\r\n ({ t, subject, onSkip, onSelect, loadingMatch, loadingSkip, getFamilyTree, loadingFamilyTree, detailList }) => (\r\n <>\r\n
\r\n

{t('InputSubject')}

\r\n onSkip(subject.uid)}\r\n disabled={loadingMatch || loadingSkip}\r\n >\r\n \r\n {t('SkipMatch')}\r\n \r\n
\r\n \r\n

{t('SuggestedSubjects')}

\r\n \r\n \r\n \r\n onSelect(subject.uid, candidate)}\r\n getFamilyTree={getFamilyTree}\r\n detailList={detailList}\r\n />\r\n \r\n )\r\n);\r\n\r\nSubjectMatcher.propTypes = {\r\n subject: PT.shape(IRequest).isRequired,\r\n onSelect: PT.func,\r\n onSkip: PT.func,\r\n loadingMatch: PT.bool,\r\n loadingSkip: PT.bool\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Row, Col, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\n\r\nimport { Spinner } from '../../components/Spinner';\r\n\r\nexport const MatcherHeader = withTranslation('matcher')(({ t, request, onClose, onStop, loadingAction, loading }) => (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {t('FileInput')}\r\n
\r\n
\r\n
\r\n
{t('RequestFields.Filename')}
\r\n
{request.fileName || ''}
\r\n
\r\n
\r\n
{t('RequestFields.Status')}
\r\n
{request.status || ''}
\r\n
\r\n
\r\n
{t('RequestFields.InsertDate')}
\r\n
{request.insertDate || ''}
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{t('RequestFields.Matched')}
\r\n
{request.matchAmount || '0'}
\r\n
\r\n
\r\n
{t('RequestFields.NotMatched')}
\r\n
{request.noMatchAmount || '0'}
\r\n
\r\n
\r\n
\r\n {t('CloseTooltip')}}>\r\n \r\n {t('Close')}\r\n \r\n \r\n \r\n \r\n {t('EndBrowsing')}\r\n \r\n
\r\n \r\n
\r\n
\r\n));\r\n\r\nMatcherHeader.propTypes = {\r\n request: PT.shape({\r\n fileName: PT.string,\r\n status: PT.string,\r\n insertDate: PT.string,\r\n matchAmount: PT.number,\r\n noMatchAmount: PT.number\r\n }),\r\n onClose: PT.func,\r\n onStop: PT.func,\r\n loadingAction: PT.bool,\r\n loading: PT.bool\r\n};\r\n","import './common/style.scss';\r\n\r\nimport React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport { StoresDictionary as ST } from '../../utils/constants';\r\nimport { Page, SectionContainer, BoxTitle } from '../../components/Layout';\r\nimport { ModalBox } from '../../components/Modal';\r\nimport { Modals } from '../../stores/MatchStotre';\r\nimport { BusyElement } from '../../components/Spinner';\r\nimport { Pagination } from '../../components/Pager';\r\nimport { MatcherSubjectsList } from './MatcherSubjectsList';\r\nimport { SubjectMatcher } from './SubjectMatcher';\r\nimport { MatcherHeader } from './MatcherHeader';\r\n\r\nconst MatcherFields = [\r\n { label: 'Id', key: 'id', width: '50' },\r\n { label: 'Name', key: 'name', align: 'left' },\r\n { label: 'DebtorCode', key: 'debtorCode' },\r\n { label: 'BusinessId', key: 'businessId' },\r\n { label: 'CountryCode', key: 'countryCode' },\r\n { label: 'Duns', key: 'duns' }\r\n];\r\n\r\nexport const FileMatcher = inject(ST.MatchStore)(\r\n observer(({ MatchStore }) => {\r\n const { t } = useTranslation(['matcher', 'common', 'exceptions']);\r\n return (\r\n \r\n MatchStore.setModal(Modals.confirm)}\r\n loadingAction={MatchStore.loading.stopMatch}\r\n loading={MatchStore.loading.info}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {MatchStore.pagingInfo.recordsTotalNumber}\r\n {t('Total')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n MatchStore.setModal(Modals.close)}\r\n title={t('MatcherModal')}\r\n >\r\n \r\n \r\n \r\n

\r\n {t('EndBrowsingConfirm')}\r\n
\r\n {t('EndBrowsingAlert')}\r\n

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

{MatchStore.error.message || t('exceptions:Generic.Message')}

\r\n \r\n
\r\n );\r\n })\r\n);\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport Select from 'react-select';\r\nimport _ from 'lodash';\r\n\r\nexport const StyledSelect = ({ className, name, items, placeholder, noOptionsMessage, onChange }) => {\r\n const filterOptions = (el, searchText) => {\r\n if (!searchText) return el;\r\n return _.includes(_.toLower(el.data.text), _.toLower(searchText));\r\n };\r\n\r\n return (\r\n
\r\n onChange(name, selected)}\r\n placeholder={placeholder || ''}\r\n noOptionsMessage={() => noOptionsMessage}\r\n classNamePrefix=\"StyledSelect\"\r\n className=\"StyledSelect\"\r\n closeMenuOnSelect={false}\r\n value={_.filter(items || [], 'isSelected')}\r\n filterOption={filterOptions}\r\n getOptionValue={option => option.code}\r\n getOptionLabel={option => (\r\n
\r\n {option.text}\r\n {option.count || 0}\r\n
\r\n )}\r\n options={items}\r\n />\r\n
\r\n );\r\n};\r\nStyledSelect.propTypes = {\r\n className: PT.string,\r\n name: PT.string,\r\n items: PT.arrayOf(PT.shape({})).isRequired,\r\n placeholder: PT.string,\r\n noOptionsMessage: PT.string,\r\n onChange: PT.func\r\n};\r\n\r\nexport const ShortSelect = ({ item, name, onChange }) => {\r\n const onSelect = () => {\r\n onChange(name, item.code, !item.isSelected);\r\n };\r\n\r\n if (!item) return null;\r\n return (\r\n \r\n {item.text}\r\n {item.count || 0}\r\n \r\n );\r\n};\r\nShortSelect.propTypes = {\r\n name: PT.string,\r\n item: PT.shape({\r\n text: PT.string,\r\n count: PT.number,\r\n code: PT.string,\r\n isSelected: PT.bool\r\n }),\r\n onChange: PT.func\r\n};\r\n","import './style.scss';\r\n\r\nimport React from 'react';\r\nimport PT from 'prop-types';\r\nimport { Collapse, Form, Row, Col } from 'react-bootstrap';\r\nimport _ from 'lodash';\r\nimport { StyledSelect } from '../Select';\r\nimport { IDrilldown, IFilter } from './types';\r\nimport { DateRange } from '../Form';\r\n\r\nconst FilterControl = ({ filter, value, onChange }) => {\r\n const onChangeDrilldown = (key, options) => {\r\n const selectedOptions = _.map(options, 'code');\r\n const updatedDrilldown = {\r\n options: _.map(value.options, op => ({\r\n ...op,\r\n isSelected: _.includes(selectedOptions, op.code)\r\n }))\r\n };\r\n onChange(key, updatedDrilldown);\r\n };\r\n\r\n const renderFilter = type => {\r\n switch (type) {\r\n case 'drilldown':\r\n return value ? (\r\n \r\n ) : null;\r\n case 'daterange':\r\n return onChange(filter.key, range)} />;\r\n default:\r\n return (\r\n onChange(filter.key, e.target.value)}\r\n />\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {filter.label}\r\n \r\n {renderFilter(filter.type)}\r\n \r\n );\r\n};\r\nFilterControl.propTypes = {\r\n filter: PT.shape(IFilter),\r\n value: PT.oneOfType([PT.string, PT.number, PT.shape(IDrilldown)]),\r\n onChange: PT.func\r\n};\r\n\r\nexport const FiltersForm = ({ filters, drillDowns, toggleFilters, onApply, onReset }) => {\r\n const getInit = () => {\r\n const initFilters = _.reduce(\r\n filters,\r\n (res, { key, type }) =>\r\n type !== 'drilldown' ? { ...res, [key]: type === 'daterange' ? { start: '', end: '' } : '' } : { ...res },\r\n {}\r\n );\r\n const initDrilldowns = _.reduce(\r\n filters,\r\n (res, { key, type }) => (type === 'drilldown' ? { ...res, [key]: drillDowns[key] } : { ...res }),\r\n {}\r\n );\r\n return { initFilters, initDrilldowns };\r\n };\r\n\r\n const { initFilters, initDrilldowns } = getInit();\r\n const [activeFilters, setFilters] = React.useState(initFilters);\r\n const [activeDrilldowns, setDrilldowns] = React.useState(initDrilldowns);\r\n\r\n React.useEffect(() => {\r\n if (!_.isEqual(activeDrilldowns, initDrilldowns)) setDrilldowns(initDrilldowns);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [drillDowns]);\r\n\r\n const onFilterChange = (key, value) => {\r\n if (_.has(activeDrilldowns, key)) setDrilldowns({ ...activeDrilldowns, [key]: value });\r\n else setFilters({ ...activeFilters, [key]: value });\r\n };\r\n\r\n const applyFilters = () => {\r\n onApply({ ...activeFilters, drillDowns: { ...activeDrilldowns } });\r\n toggleFilters();\r\n };\r\n\r\n const resetFilters = () => {\r\n const reset = _.mapValues(activeFilters, _.constant(''));\r\n setFilters(reset);\r\n onReset({ ...reset, drillDowns: {} });\r\n toggleFilters();\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n {_.map(filters, (filter, idx) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\nFiltersForm.propTypes = {\r\n filters: PT.arrayOf(PT.shape(IFilter)).isRequired,\r\n drillDowns: PT.objectOf(PT.shape(IDrilldown)),\r\n toggleFilters: PT.func,\r\n onApply: PT.func.isRequired,\r\n onReset: PT.func.isRequired\r\n};\r\n\r\nexport const FiltersBox = ({ filters, drillDowns, onApply, onReset }) => {\r\n const [openSearch, setOpenSearch] = React.useState(false);\r\n\r\n const toggleFilters = () => setOpenSearch(!openSearch);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Filter results by clicking the filters button\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\nFiltersBox.propTypes = {\r\n filters: PT.arrayOf(PT.shape(IFilter)).isRequired,\r\n drillDowns: PT.objectOf(PT.shape(IDrilldown)),\r\n onApply: PT.func,\r\n onReset: PT.func\r\n};\r\n","import PT from 'prop-types';\r\n\r\nexport const IFilter = {\r\n type: PT.oneOf(['text', 'datetime', 'daterange', 'drilldown']),\r\n width: PT.number,\r\n key: PT.string,\r\n label: PT.string\r\n};\r\n\r\nexport const IDrilldown = {\r\n options: PT.shape({})\r\n};\r\n","import PT from 'prop-types';\r\n\r\nexport const IRequest = {\r\n id: PT.string,\r\n userName: PT.string,\r\n requestName: PT.string,\r\n fileName: PT.string,\r\n deliveryTime: PT.string,\r\n type: PT.number,\r\n typeLabel: PT.string,\r\n status: PT.string,\r\n insertDate: PT.string,\r\n matchAmount: PT.number,\r\n noMatchAmount: PT.number,\r\n processedAmount: PT.number,\r\n totalAmount: PT.number\r\n};\r\n","export const Status = {\r\n NEW: 'NEW',\r\n SKIP: 'SKIP',\r\n TOMATCH: 'TOMATCH',\r\n WORKING: 'WORKING',\r\n MATCHED: 'MATCHED',\r\n COMPLETED: 'COMPLETED',\r\n ERROR: 'ERROR'\r\n};\r\n\r\nexport const RQTypes = {\r\n MBR: 0,\r\n AMT: 1,\r\n ACA: 2,\r\n CRA0: 3,\r\n CRA1: 4,\r\n 0: 'Manual Browsing',\r\n 1: 'Automatic Match',\r\n 2: 'Automatic Credit Assessment',\r\n 3: 'Credit Assessment',\r\n 4: 'Credit Assessment'\r\n};\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport { Spinner } from '../../components/Spinner';\r\nimport { IRequest } from './common/types';\r\nimport { Status, RQTypes } from './common/constants';\r\n\r\nexport const RequestElement = withTranslation('mydocs')(\r\n ({\r\n t,\r\n request,\r\n loading,\r\n loadingRefresh,\r\n loadingReSubmit,\r\n onDownload,\r\n onRework,\r\n onReSubmit,\r\n resubmitEnabled,\r\n requireCA,\r\n requireMB\r\n }) => (\r\n
\r\n
\r\n {/* Output File */}\r\n
\r\n
{request.fileName}
\r\n onDownload(false, request.id, request.type, request.fileName)}\r\n disabled={loading.load || request.status === Status.NEW || request.status === Status.WORKING}\r\n >\r\n \r\n \r\n \r\n {t('FileOutput')}\r\n \r\n {request.status === Status.WORKING && (\r\n
\r\n {t('Estimated')}: {request.deliveryTime}\r\n
\r\n )}\r\n {/* Input File and Actions */}\r\n
\r\n
\r\n onDownload(true, request.id, null, request.fileName)}\r\n disabled={loading.load}\r\n >\r\n \r\n {t('FileInput')}\r\n \r\n {resubmitEnabled && request.status === Status.WORKING && (\r\n onReSubmit(request.id)}\r\n disabled={loadingReSubmit.load}\r\n >\r\n \r\n {t('ReSubmit')}\r\n \r\n )}\r\n
\r\n {requireCA && (\r\n {\r\n e.preventDefault();\r\n onRework(1, request.id, request.status, request.type);\r\n }}\r\n >\r\n {t('RequireCA')}\r\n \r\n \r\n )}\r\n {requireMB && (\r\n {\r\n e.preventDefault();\r\n onRework(0, request.id, request.status, request.type);\r\n }}\r\n >\r\n {t('RequireMB')}\r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n {/* Request Informations */}\r\n
\r\n
\r\n
\r\n
{t('RequestFields.InsertDate')}
\r\n
{request.insertDate}
\r\n
\r\n
\r\n
{t('RequestFields.Username')}
\r\n
{request.userName}
\r\n
\r\n
\r\n
\r\n
\r\n
{t('RequestFields.Status')}
\r\n
{request.status}
\r\n
\r\n
\r\n
{t('RequestFields.Type')}
\r\n
{RQTypes[request.type] || ''}
\r\n
\r\n
\r\n
\r\n {/* Processing Informations */}\r\n
\r\n
\r\n
{t('RequestFields.InputRecords')}
\r\n
\r\n \r\n {request.totalAmount}\r\n \r\n
\r\n
\r\n
\r\n
{t('RequestFields.ProcessedRecords')}
\r\n
\r\n \r\n {request.processedAmount}\r\n \r\n
\r\n
\r\n
\r\n
{t('RequestFields.MatchedRecords')}
\r\n
\r\n \r\n {request.matchAmount}\r\n \r\n
\r\n
\r\n
\r\n {/* Processing options */}\r\n
\r\n
\r\n
{t('RequestFields.ConfidenceCode')}
\r\n
\r\n \r\n {request.confidenceCode}\r\n \r\n
\r\n
\r\n
\r\n
{t('RequestFields.ExcludeOOB')}
\r\n
\r\n \r\n {request.excludeOOB ? 'yes' : 'no'}\r\n \r\n
\r\n
\r\n
\r\n
{t('RequestFields.ExcludeBranches')}
\r\n
\r\n \r\n {request.excludeBranches ? 'yes' : 'no'}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n);\r\n\r\nRequestElement.propTypes = {\r\n request: PT.shape(IRequest).isRequired,\r\n loading: PT.shape({\r\n id: PT.string,\r\n type: PT.string,\r\n load: PT.bool\r\n }),\r\n loadingRefresh: PT.bool,\r\n loadingReSubmit: PT.shape({\r\n id: PT.string,\r\n load: PT.bool\r\n }),\r\n onDownload: PT.func,\r\n onRework: PT.func,\r\n onReSubmit: PT.func,\r\n resubmitEnabled: PT.bool,\r\n requireCA: PT.bool,\r\n requireMB: PT.bool\r\n};\r\n","import './common/style.scss';\r\n\r\nimport React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport _ from 'lodash';\r\n\r\nimport { StoresDictionary as ST } from '../../utils/constants';\r\nimport { Page } from '../../components/Layout';\r\nimport { FiltersBox } from '../../components/Filters';\r\nimport { Pagination } from '../../components/Pager';\r\nimport { BusyElement } from '../../components/Spinner';\r\nimport { ModalBox } from '../../components/Modal';\r\nimport { RequestElement } from './RequestElement';\r\nimport { RQTypes, Status } from './common/constants';\r\nimport { Modals } from '../../stores/MyDocsStore';\r\n\r\nexport const MyDocs = inject(ST.MyDocsStore)(\r\n observer(({ MyDocsStore }) => {\r\n const { t } = useTranslation(['mydocs', 'exceptions']);\r\n\r\n const enableRequestCA = (type, status) => {\r\n if ((type === RQTypes.MBR || type === RQTypes.AMT) && (status === Status.COMPLETED || status === Status.MATCHED))\r\n return true;\r\n return false;\r\n };\r\n\r\n const enableRequestMB = (type, status, errors) => {\r\n if (!_.includes([RQTypes.CRA0, RQTypes.CRA1], type) && status === Status.COMPLETED && errors > 0) return true;\r\n return false;\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n {_.map(MyDocsStore.requestsList, (request, idx) => (\r\n \r\n ))}\r\n \r\n \r\n {MyDocsStore.pagingInfo.recordsTotalNumber}\r\n {t('Total')}\r\n \r\n \r\n \r\n
\r\n \r\n

{t('ReSubmitSuccessMessage')}

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

{MyDocsStore.error.message || t('exceptions:Generic.Message')}

\r\n \r\n \r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport PT from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { StyledTable as Table, ITableField } from '../../components/Table';\r\n\r\nexport const RequestsList = ({ t, loading, fields, data = [], empty }) => (\r\n \r\n t(`Fields.${key}`)} />\r\n \r\n {data.length > 0 || loading ? (\r\n _.map(data, (item, idx) => (\r\n item[key]} highlight={key => key === 'fileName'} />\r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n);\r\n\r\nRequestsList.propTypes = {\r\n t: PT.func,\r\n loading: PT.bool,\r\n fields: PT.arrayOf(PT.shape(ITableField)).isRequired,\r\n data: PT.arrayOf(PT.shape({})),\r\n empty: PT.string\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport PT from 'prop-types';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\nimport { DateRange } from '../../components/Form';\r\nimport { Spinner } from '../../components/Spinner';\r\n\r\nexport const SearchFilters = ({ t, defaultDateRange, downloadEnabled, loading, onSubmit, onReset, onDownload }) => {\r\n const [dateRange, setDateRange] = useState(defaultDateRange);\r\n const [isValid, setValididy] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!dateRange.start || !dateRange.end) setValididy(false);\r\n else setValididy(true);\r\n }, [dateRange]);\r\n\r\n const onSubmitFilters = e => {\r\n e.preventDefault();\r\n if (!dateRange.start || !dateRange.end) return;\r\n onSubmit({ requestDate: dateRange });\r\n };\r\n\r\n const onResetFilters = () => {\r\n setDateRange(defaultDateRange);\r\n onReset();\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {t('Filters.DateRange')}\r\n \r\n \r\n \r\n \r\n \r\n {t('common:Search')}\r\n \r\n \r\n {t('common:Reset')}\r\n \r\n \r\n {downloadEnabled && (\r\n \r\n \r\n \r\n \r\n {t('DownloadExcel')}\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nSearchFilters.propTypes = {\r\n t: PT.func.isRequired,\r\n defaultDateRange: PT.shape({\r\n start: PT.string,\r\n end: PT.string\r\n }),\r\n downloadEnabled: PT.bool,\r\n loading: PT.shape({\r\n list: PT.bool,\r\n download: PT.bool\r\n }),\r\n onSubmit: PT.func.isRequired,\r\n onReset: PT.func.isRequired,\r\n onDownload: PT.func\r\n};\r\n","import './common/style.scss';\r\n\r\nimport React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import _ from 'lodash';\r\nimport { Col, Row } from 'react-bootstrap';\r\n\r\nimport { StoresDictionary as ST } from '../../utils/constants';\r\nimport { Page, SectionContainer } from '../../components/Layout';\r\nimport { Pagination } from '../../components/Pager';\r\nimport { BusyElement } from '../../components/Spinner';\r\nimport { ModalBox } from '../../components/Modal';\r\nimport { RequestsList } from './RequestsList';\r\nimport { SearchFilters } from './SearchFilters';\r\n\r\nconst RequestFields = [\r\n { label: 'Type', key: 'dunsType' },\r\n { label: 'Duns', key: 'duns' },\r\n { label: 'Country', key: 'country' },\r\n { label: 'RequestDate', key: 'requestDate' },\r\n { label: 'Price', key: 'price' }\r\n];\r\n\r\nexport const Statement = inject(ST.StatementStore)(\r\n observer(({ StatementStore: STStore }) => {\r\n const { t } = useTranslation(['statement', 'exceptions']);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {STStore.pagingInfo.recordsTotalNumber}\r\n {t('Total')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{STStore.error.message || t('exceptions:Generic.Message')}

\r\n \r\n
\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { ViewsDictionary as VW } from './utils/constants';\r\nimport { Spinner } from './components/Spinner';\r\nimport { Header } from './components/Header';\r\nimport { Footer } from './components/Footer';\r\nimport { Page } from './components/Layout';\r\nimport { LogOn, ResetPassword, ChangePassword } from './containers/LogOn';\r\nimport { MyProfile } from './containers/MyProfile';\r\nimport { Home } from './containers/Home';\r\nimport { FileMatcher } from './containers/Matcher';\r\nimport { MyDocs } from './containers/MyDocs';\r\nimport { Statement } from './containers/Statement';\r\n\r\nconst ViewMapper = {\r\n [VW.LOGIN]: LogOn,\r\n [VW.RESETPASSWORD]: ResetPassword,\r\n [VW.CHANGEPASSWORD]: ChangePassword,\r\n [VW.MYPROFILE]: MyProfile,\r\n [VW.HOME]: Home,\r\n [VW.FILEMATCHER]: FileMatcher,\r\n [VW.MYDOCS]: MyDocs,\r\n [VW.STATEMENT]: Statement\r\n};\r\n\r\nexport const App = observer(({ AppStore }) => {\r\n const renderSelectedPage = view => {\r\n if (!view) return null;\r\n const View = ViewMapper[view.name];\r\n return View ? (\r\n \r\n ) : (\r\n \r\n

\r\n The view named {view.name} is missing or should be mapped. Add the reference to the dictionary.\r\n

\r\n
\r\n );\r\n };\r\n\r\n const renderCurrentView = view => {\r\n if (!view) return null;\r\n const status = view.data && view.data.state;\r\n switch (status) {\r\n case 'pending':\r\n return ;\r\n case 'rejected':\r\n return
rejected
;\r\n case 'fulfilled':\r\n return renderSelectedPage(view);\r\n default:\r\n throw new Error('unable to resolve render view promise');\r\n }\r\n };\r\n\r\n const enabledHeader = () => {\r\n const view = AppStore.currentView;\r\n return view && view.name !== VW.LOGIN && view.name !== VW.RESETPASSWORD && view.name !== VW.CHANGEPASSWORD;\r\n };\r\n\r\n return !AppStore.loadingProfile ? (\r\n <>\r\n {enabledHeader() &&
}\r\n
{renderCurrentView(AppStore.currentView)}
\r\n