{"version":3,"sources":["modules/DefaultErrorBoundary.tsx","icons/ArrowDown.tsx","icons/ArrowUp.tsx","components/Sort/Sort.styled.tsx","components/Sort/Sort.tsx","modules/Watchlist/UnwatchPlaceholder.styled.tsx","modules/Watchlist/UnwatchPlaceholder.tsx","modules/DealerVehicleManagement/VehicleDetails.tsx","modules/DealerVehicleManagement/VehicleDetailsGridCard.styled.tsx","modules/DealerVehicleManagement/VehicleDetailsGridCardImage.styled.tsx","modules/DealerVehicleManagement/VehicleDetailsGridCardImage.tsx","modules/DealerVehicleManagement/VehicleDetailsGridCard.tsx","modules/VehicleList/VehicleList.styled.tsx","modules/VehicleList/VehicleList.tsx","hooks/useDealerManagedVehicles.ts","apis/userApis.ts","hooks/useLockedBody.ts","contexts/LayoutContext.tsx","modules/VehicleList/VehicleListContext.tsx","common/theme.ts","layouts/Layout.styled.tsx","utils/numberUtils.ts","utils/logger.ts","common/messages.ts","modules/VDP/SlideShowGallery.styled.tsx","modules/VDP/SlideShowGallery.tsx","contexts/SliderContext.tsx","store/useSignalRStore.ts","store/useBiddingSidePanelStore.ts","modules/Watchlist/WatchlistLink.styled.tsx","modules/Watchlist/WatchlistLink.tsx","modules/DealerVehicleManagement/VehicleActions.tsx","hooks/useCountdown.ts","hooks/useInterval.ts","common/systemSettingsCode.ts","layouts/NavBar.styled.tsx","components/Ribbon/Ribbon.tsx","components/Collapse/index.tsx","components/Header/HomeSectionHeader.tsx","utils/newrelicUtilts.ts","store/useGlobalStore.ts","images/icon/CaretDownFill.tsx","images/icon/CaretRightFill.tsx","utils/stringUtils.ts","modules/Stockwave/StockwaveData.tsx","components/SlideOut/SlideOutHeading.styled.tsx","components/SlideOut/SlideOutHeading.tsx","components/SlideOut/SlideOutDropdown.tsx","components/SlideOut/SlideOutReadOnlyInput.tsx","components/SlideOut/SlideOutBidAmountInput.styled.tsx","components/SlideOut/SlideOutBidAmountInput.tsx","components/SlideOut/SlideOutPricingDetails.tsx","modules/BiddingSidePanelFormContent.tsx","hooks/useSidePanelRealTimeUpdateDealer.ts","components/Buttons/SpinnerButton.styled.tsx","components/Buttons/SpinnerButton.tsx","components/DismissableAlert/DismissableAlert.tsx","modules/BiddingSidePanel.tsx","layouts/BreadcrumbMenu.styled.tsx","layouts/BreadcrumbMenu.tsx","hooks/useVehicles.ts","store/selectors.ts","icons/ChevronDown.tsx","modules/DealerVehicleManagement/VehiclePriceSection.tsx","modules/DealerVehicleManagement/VehicleTags.tsx","modules/DealerVehicleManagement/VehicleTimer.tsx","layouts/DropdownList.styled.tsx","layouts/DropdownList.tsx","components/Paging/Paging.styled.tsx","components/Paging/OverlayEllipsis.tsx","components/Paging/index.tsx","utils/pagingUtils.ts","images/winning-bid.png","modules/BuyerActivity/BidsHistoryModal.styled.tsx","modules/BuyerActivity/BidsHistoryModal.tsx","modules/DealerVehicleManagement/VehicleBidHistoryLink.tsx","components/AlertDialog/AlertDialog.styled.tsx","components/AlertDialog/AlertDialog.tsx","modules/BuyerActivity/NoActivity.tsx","images/no-activity.jpg","images/bmw-logo-new.png","utils/dateUtils.ts","pages/TermCondition.styled.tsx","layouts/SubMenu.styled.tsx","modules/DealerVehicleManagement/VehicleDetailImage.style.tsx","modules/DealerVehicleManagement/VehicleNote.styled.tsx","hooks/useExpand.ts","utils/analyticsUtils.ts","modules/BuyerActivity/VehicleAuction.styled.tsx","components/Share/Card.styled.tsx","images/icon/FileEarMarkArrowDown.tsx","hooks/useWindowSize.ts","common/rmsGlobal.ts","images/PRIVATE_STORE_BY_MANHEIM.png","common/fetch.ts","modules/BuyerActivity/NoActivity.styled.tsx","modules/DealerVehicleManagement/UserMaxBid.tsx","modules/DealerVehicleManagement/VehicleContext.tsx","components/Share/PopupLink.tsx","components/Ribbon/Ribbon.styled.tsx","modules/VehicleList/VehicleStickyBar.styled.tsx","components/SlideOut/SlideOut.tsx","icons/DriveTrain.tsx","icons/Transmission.tsx","icons/SaleChannel.tsx","icons/ExteriorColor.tsx","icons/InteriorColor.tsx","icons/Calendar.tsx","icons/Door.tsx","common/vehicleListingInfoIcons.tsx","modules/DealerVehicleManagement/VehicleProperties.tsx","utils/vehicleUtils.ts","modules/BuyerActivity/CountDown.styled.tsx","modules/BuyerActivity/CountDown.tsx","modules/BuyerActivity/CountDownWithColor.tsx","modules/BuyerActivity/VehicleDisclosureModal.styled.tsx","modules/BuyerActivity/VehicleDisclosureModal.tsx","modules/DealerVehicleManagement/VehicleBidBuyActions.tsx","modules/GenericMessageWarning.styled.tsx","modules/GenericMessageWarning.tsx","modules/DealerVehicleManagement/VehicleNote.tsx","hooks/useClickOutSide.ts","modules/DealerVehicleManagement/VehicleRibbons.tsx","modules/DealerVehicleManagement/VehicleTitleSection.tsx","components/Select/Select.styled.tsx","components/Select/Select.tsx","common/helpers.ts","common/srpFilters.ts","hooks/useDtmAnalytics.ts","modules/VehicleList/VehicleStickyBar.tsx","modules/Watchlist/CurrentBidsCount.tsx","modules/Watchlist/WatchListCount.tsx","modules/PopoverAttachment.styled.tsx","modules/PopoverAttachment.tsx","modules/VDP/VDPHistory.styled.tsx","modules/VDP/VDPHistory.tsx","modules/DealerVehicleManagement/VehicleInformation.tsx","components/ScrollButton/ScrollButton.styled.tsx","components/ScrollButton/ScrollButton.tsx","modules/DealerVehicleManagement/CarfaxAdvantage.styled.tsx","modules/DealerVehicleManagement/CarfaxAdvantage.tsx","images/icon/BMWIconNew.tsx","modules/DealerVehicleManagement/VehicleDetailImage.tsx","hooks/useFetch.ts","common/languageCodes.ts","apis/vehicleApis.ts","components/Header/HomeSectionHeader.styled.tsx","components/Loader.tsx","modules/VehicleList/VehicleLoader.tsx","modules/DealerVehicleManagement/VehicleDetails.styled.tsx","types/baseTypes.ts","layouts/LoginLayout.styled.tsx","components/Share/Link.tsx","components/Share/HtmlText.tsx","components/Share/ScrollToTop.tsx","core/skins/BMW/custom.ts","core/skins/BMW/theme.ts","core/skins/NISSAN/custom.ts","core/skins/NISSAN/theme.ts","core/theme/ThemeProvider.tsx","hooks/useNotification.ts","components/AlertNotification/AlertNotification.styled.tsx","components/AlertNotification/AlertNotification.tsx","modules/ContactUs/LinkNameModal.styled.tsx","modules/ContactUs/LinkNameModal.tsx","pages/ContactUs.styled.tsx","pages/ContactUs.tsx","components/SlideShow/SlideShow.styled.tsx","store/useSrpFiltersStore.ts","components/SlideShow/SlideShow.tsx","components/ModelFigure/ModelFigure.styled.tsx","components/ModelFigure/ModelFigure.tsx","modules/AvailableInventory.styled.tsx","components/Switch/ToggleSwitch.styled.tsx","components/Switch/index.tsx","utils/modelGroupUtils.ts","modules/AvailableInventory.tsx","modules/BuyerActivity.styled.tsx","modules/BuyerActivity/VehicleAuction.tsx","modules/CurrentBids.tsx","modules/WatchList.tsx","modules/BuyerActivity.tsx","pages/Dashboard.styled.tsx","utils/breadcrumbUtils.ts","pages/Dashboard.tsx","pages/ErrorPage.tsx","layouts/LoginLayout.tsx","pages/ForgotPassword.styled.tsx","pages/Login.styled.tsx","pages/ForgotPassword.tsx","pages/Login.tsx","pages/Privacy.styled.tsx","pages/Privacy.tsx","pages/TermCondition.tsx","utils/exportFileUtil.ts","pages/WatchListPage.tsx","pages/CurrentBidsPage.tsx","components/CustomAccordion/CustomAccordion.styled.tsx","components/CustomAccordion/CustomAccordion.tsx","modules/SRP/BuyerSearch.styled.tsx","modules/SRP/SaveSearch.styled.tsx","modules/SRP/SaveSearch.tsx","components/Slider/Slider.styled.tsx","components/Slider/Slider.tsx","modules/SRP/SearchFilter.tsx","components/Tag/Tag.styled.tsx","components/Tag/Tag.tsx","modules/SRP/SelectedSearchFilters.styled.tsx","modules/SRP/SelectedSearchFilters.tsx","hooks/useElementSize.ts","contexts/FilterSearchContext.tsx","modules/SRP/BuyerSearch.tsx","pages/SearchResultsPage.styled.tsx","modules/SRP/SlideOutSearchFilter.styled.tsx","modules/SRP/SlideOutSearchFilter.tsx","images/icon/FilterIcon.tsx","modules/SRP/SearchFilterButton.styled.tsx","modules/SRP/SearchFilterButton.tsx","pages/SearchResultsPage.tsx","App.tsx","hooks/useFetchUserClaim.ts","index.tsx","types/vehicleTypes.ts","common/constants.ts","utils/collectionUtils.ts","store/useVehicleStore.ts","utils/menuUtils.ts","apis/dashboardApis.ts","common/routes.ts","icons/ThemedSvg.styled.tsx","utils/urlParams.ts","components/SlideOut/SlideOut.styled.tsx","common/rules.ts","hooks/useScrollPosition.ts","modules/AcceptenceTerm.styled.tsx","modules/AcceptenceTerm.tsx","layouts/Footer.styled.tsx","layouts/Footer.tsx","images/icon/BurgerIcon.tsx","layouts/BurgerButton.tsx","layouts/Header.tsx","images/icon/AccountSettingIcon.tsx","images/icon/CurrentBidIcon.tsx","images/icon/SaveSearchIcon.tsx","images/icon/AdvanceSearchIcon.tsx","common/menuIcons.tsx","icons/Person.tsx","layouts/UserMenu.styled.tsx","layouts/UserMenu.tsx","apis/serviceApis.ts","layouts/SubMenu.tsx","layouts/NavBar.tsx","layouts/Layout.tsx","icons/EyeOff.tsx","icons/EyeSlash.tsx","components/Forms/FormInput.styled.tsx","components/Forms/FormInput.tsx","components/Forms/TextDanger.styled.tsx","components/Forms/TextDanger.tsx","components/Forms/ValidationErrorMessage.styled.tsx","utils/utils.ts","utils/urlUtils.ts"],"names":["ErrorFallback","_jsx","Alert","variant","children","DEFAULT_ERROR_MESSAGE","DefaultErrorBoundary","_ref","ErrorBoundary","FallbackComponent","ArrowDown","props","_objectSpread","xmlns","width","height","fill","className","stroke","fillRule","d","ArrowUp","StyledSort","styled","div","_templateObject","_taggedTemplateLiteral","extraLargeScreen","theme","colors","primary","_ref2","primaryDarken","smallScreen","largeScreen","StyledSortPopover","Popover","_templateObject2","_ref3","_ref4","parseSortName","sortName","slice","indexOf","Sort","_currentSortProp$Name","currentSortProp","currentSort","sortOptions","onChange","_useState","useState","_useState2","_slicedToArray","setCurrentSort","_useState3","Name","_useState4","setSortName","_useState5","_useState6","show","setShow","sortRef","useRef","containerRef","sortFields","groupBy","map","so","useEffect","_currentSort$Name","_sortOptions$find","name","find","o","DBFieldName","Value","_Fragment","_jsxs","ref","Button","onClick","SortOrder","ASC","Overlay","rootClose","target","current","container","onHide","placement","transition","id","Content","Object","keys","sortFieldName","sortOption","i","sortValue","selectedSort","handleSortChange","concat","StyledUnwatchPlaceholderAlert","attrs","StyledAddWatchListSpan","span","linkColor","StyledRemovedWatchListPlaceHolder","_templateObject3","UnwatchPlaceholder","vehicleInfo","_ref$viewStyle","viewStyle","VehicleDetailsView","List","isListView","useMemo","getLocalText","useGlobalStore","state","shallow","_useContext$vehicleWa","useContext","VehicleContext","vehicleWatchListState","isSaving","saveWatchList","Row","Col","md","offset","Title","Spinner","animation","role","VehicleListLayout","vehicleData","enableRemovedWatchlistPlaceholder","onSelect","isSelected","showCheckbox","vehicle","WatchListID","StyledVehicleDetailsCard","noGutters","sm","VIN","StockwaveData","Form","Check","InstanceID","checked","custom","e","VehicleDetailImage","vehicleInstance","isDSI","IsSellerDisclosure","mainImageUrl","ThumbImageURL","images","Images","StyledVehicleDetailsColumn","VehicleInformation","StyledCarfaxCol","CarfaxAdvantage","snapshotList","carfaxSnapshotList","StyledBidBuyInfoSection","StyledVehicleDetailsGridCard","StyledVehicleBidBuyInformation","StyledAuctionButton","zIndex","floatingControls","StyledVehicleNote","BuyItNowButtonContainer","StyledTitleSection","BuyItNowButtonGroup","StyledVehicleAction","StyledVehicleDetailsGridCardImage","StyledVehicleDetailImage","VehicleDetailsGridCardImage","vehicleInstanceID","_ref$isDSI","_useContext","SliderContext","setDisplaySlider","setSliderData","selectedImageID","selectedVehicle","showCarousel","canLoadImage","setCanLoadImage","activeIndex","setActiveIndex","imgList","img","CanLoad","Description","imgIndex","findIndex","x","ID","handleBrokenImageURL","length","Carousel","classNames","interval","indicators","nextIcon","FontAwesomeIcon","icon","faChevronRight","size","prevIcon","faChevronLeft","selectedIndex","idx","Item","LazyLoadImage","src","LocalThumbImageURL","ImageURL","bmwNewLogo","alt","onError","currentTarget","onerror","VehicleGridLayout","getSystemSetting","fieldLimit","Grid","VehicleActions","VehicleTitleSection","VehicleVin","VehicleProperties","VehicleNote","VehicleTags","direction","VehicleTimer","VehicleBidHistoryLink","UserMaxBid","VehiclePriceSection","VehicleBidBuyActions","StyledVehicleList","StyledNoActivity","mediumScreen","displayName","StyledSelectAll","StyledStickyHeaderPage","StyledHomeSectionHeaderBanner","StyledHeaderActions","_templateObject4","_templateObject5","StyledVehicleDetailsHeaderRow","_templateObject6","StyledRibbonContainer","StyledVehicleDetailsBody","_templateObject7","VehicleList","title","queryFunction","queryRequest","countQueryFunction","navigationLink","_ref$enableRemovedWat","_ref$isShowRemoveBidB","isShowRemoveBidButton","noActivityMessage","checkboxAction","_ref$bottomPagination","bottomPagination","_ref$gridLayoutColPro","gridLayoutColProps","xs","xl","lg","VehicleListContext","currentPage","currentPageSize","currentSortBy","selectedVehicles","setVehiclesState","_useDealerManagedVehi","getBidVehicleRequest","_useFetch","useFetch","GetBidVehiclesRequest","DEFAULT_SMALL_PAGE_SIZE","_useFetch$data","data","_useFetch$data2","Items","totalRecords","TotalRecords","SortOptions","sortBy","SortBy","TotalPages","PageNumber","loading","refetch","vehicles","useVehicles","useDealerManagedVehicles","totalRecordsForHeader","Promise","resolve","totalRecordsForNavlink","countLoading","totalPages","sessionStorage","getItem","SessionStorageKey","VIEW_VEHICLE_LIST","setViewStyle","setItem","colProps","Card","isSelectAll","every","item","selectedId","window","scrollTo","top","behavior","vehicleIDs","VEHICLE_INSTANCES","JSON","stringify","removeItem","OverlayLoader","VehicleStickyBar","sectionTitle","itemCount","displayCollapse","rightActionSpan","rightActions","Loader","selectedSortBy","IconSvg","glyph","active","label","index","_createElement","key","VehicleContextProvider","showRemoveBid","onRemoveBid","errorMessage","instanceID","_toConsumableArray","filter","handleSelectVehicle","Paging","handleChangedPage","pageSelected","handlePageSizeChanged","pageSizeSelected","Number","NoActivity","message","ScrollButton","login","username","password","loginData","grant_type","postAsync","body","URLSearchParams","toString","type","getSecretQuestion","fetchAsync","apiRootPath","sendPasswordReset","answer","questionId","passwordReset","questionCode","toUrlSearchParams","getUserClaims","acceptNews","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newsID","markAccept","wrap","_context","prev","next","abrupt","stop","_x","_x2","apply","arguments","getContactUsDropDown","_callee2","vendorId","_context2","_x3","getValidatedVin","_callee3","vin","_context3","_x4","_x5","sendContactUsEmail","_callee4","request","_context4","_x6","useLockedBody","initialLocked","undefined","locked","setLocked","useLayoutEffect","originalOverflow","document","style","overflow","originalPaddingRight","paddingRight","root","getElementById","scrollBarWidth","offsetWidth","scrollWidth","LayoutContext","createContext","LayoutContextProvider","showMenuSidebar","setShowMenuSidebar","isSticky","setIsSticky","useWindowSize","replace","Provider","value","VehicleListContextProvider","location","useLocation","query","parseUrlSearchParams","search","clearSearch","resetSRPFilter","getDefaultSRPFilter","setState","action","produce","textColor","textColorLight","textTableHeaderColor","borderColorSecondary","colorDanger","colorWinning","colorWatching","gridBreakPoints","xxl","colorWarning","colorBackgroundCarfaxItem","extraExtraLargeScreenSize","mediumScreenSize","StyledLayout","StyledHeader","css","stickyHeader","headerAnimation","curtainEffect","keyframes","StyledBranding","_templateObject8","_ref5","secondary","StyledMenuHeader","_templateObject9","_ref6","fonts","fontRegular","StyledNavBar","StyledMainNav","StyledBody","_templateObject10","StyledBurgerButton","_templateObject11","_ref7","_ref8","roundUpToNearest","newValue","oldValue","roundUpTo","diff","formatNumber","options","formatOptions","minimumFractionDigits","Intl","NumberFormat","format","log","loglevel","AUTH_ERROR","AUTH_ERROR_2","FORGOT_LABLE","INVALID_USER","RESET_PW","FORBIDDEN_PAGE","NO_COMMENT_FROM_API_MESSAGE","StyledSlideshowGallery","Modal","headerFontColor","inputBorder","carouselSize","SlideshowGallery","defaultID","selectedImageIndex","setSelectedImageIndex","pageActive","setPageActive","BIG_SLIDER_ITEM_SIZE","pageSize","setPageSize","_useState7","_useState8","pageItems","setPageItems","setCurrentImageID","MEDIUM_SLIDER_ITEM_SIZE","HUGE_SLIDER_ITEM_SIZE","chunk","imageIndex","pageItemsIndex","y","handleImageChange","_images","backdrop","isShowCarousel","Body","TransformWrapper","centerOnInit","initialScale","alignmentAnimation","sizeX","sizeY","zoomAnimation","disabled","_images$selectedImage","_images$selectedImage2","_images$selectedImage3","_images$selectedImage4","_images$selectedImage5","zoomIn","zoomOut","resetTransform","Fragment","onLoad","TransformComponent","LocalImageURL","fullScreenIcon","zoomInLogo","zoomOutLogo","_images2","imageID","handleGoPrevious","handleGoNext","DamageImageDescription","pageIndex","effect","SliderContextProvider","showSlider","setShowSlider","setImages","setSelectedImageID","setSelectedVehicle","_useState9","_useState10","setShowCarousel","isShow","useSignalRStore","create","set","get","connect","_connect","$","connection","hub","start","promise","connectionID","t0","console","error","susbcribeEvents","_susbcribeEvents","starting","info","showConnectionAlert","connectionSlow","stateChanged","connectionStates","oldState","newState","SIGNAL_R_CONNECTION_TRY_RECOUNT","reconnected","disconnected","signalRConnectionRetryCount","retryCount","parseInt","setShowConnectionAlert","subscribe","_subscribe","ids","notificationHub","server","useBiddingSidePanel","biddingVehicleInstanceId","setBiddingVehicleInstanceId","isOpen","StyledWatchListLink","a","WatchlistLink","color","_vehicleData$vehicle","_vehicleData$vehicle2","setEditingNote","retailView","showCarfax","isInRule","Rules","ENABLE_CARFAX","hideBuyOptions","history","showTrue360","isSystemSettingsEnabled","SystemSettingsCode","SHOW_TRUE_360","userInteraction","useDtmAnalytics","PopupLink","webData","pageName","auctionInfo","href","faExternalLinkAlt","as","faPencilAlt","useCountdown","endDate","_useGlobalStore","serverTime","clientTime","secondsDiff","Date","seconds","setSeconds","delay","setDelay","callback","savedCallback","setInterval","clearInterval","useInterval","ENABLE_DTM_ANALYTICS_TRACE","DTM_ANALYTICS_ENVIRONMENT","code","rmsAuthModel","systemSettings","menu","StyledSubMenu","mobileMenuBackground","navbarMobile","_ref9","_ref10","_ref11","fontColor","StyledUnderlineSpan","_ref12","_ref13","StyledCloseMenuButton","_ref14","_ref15","_ref16","Ribbon","backgroundColor","useTheme","bgColor","ribbonInfoBackgroundColor","ribbonSuccessBackgroundColor","ribbonWarningBackgroundColor","ribbonDangerBackgroundColor","txtColor","infoColor","successColor","warningColor","dangerColor","StyledRibbon","clickable","Boolean","Collapse","restProps","_objectWithoutProperties","_excluded","BootstrapCollapse","HomeSectionHeader","isExpand","leftActions","_ref$leftActionSpan","leftActionSpan","_ref$rightActionSpan","StyledHomeSectionHeader","StyledHomeSectionHeaderTitle","CaretDownFill","CaretRightFill","addDefaultAttributes","_data$UserId","newrelic","setCustomAttribute","UserId","Username","CurrentBuyerCode","DealershipName","isAuthenticated","userClaims","vendor","appSettings","localText","rules","errorMessages","newsModel","fetchUserClaim","_fetchUserClaim","userClaim","rmsGlobal","sent","parseJson","RmsGlobal","rule","toLowerCase","ServerUTCTime","defaultText","includes","toLocaleLowerCase","clearError","parseNumberWithCommas","inputText","parseFloat","capitalize","startCase","camelCase","parseHtml","html","parse","_vehicleData$vehicle3","_vehicleData$vehicle4","_vehicleData$vehicle5","_vehicleData$vehicle6","_vehicleData$vehicle7","_vehicleData$vehicle8","_vehicleData$vehicle9","_vehicleData$vehicle10","_vehicleData$vehicle11","_vehicleData$vehicle12","_vehicleData$vehicle13","_vehicleData$vehicle14","_vehicleData$vehicle15","_vehicleData$vehicle16","_vehicleData$vehicle17","_vehicleData$vehicle18","_vehicleData$vehicle19","_vehicleData$vehicle20","_vehicleData$vehicle21","_vehicleData$vehicle22","_vehicleData$vehicle23","stockwaveData","Vin","Year","ModelYear","Make","Model","Subseries","Derivative","Tranmission","Transmission","Seller","SaleChannelName","Mileage","Trim","Color","ExteriorColour","Interior_Color","InteriorTrim","Facilitation_Location","VehicleLocationCity","BodyStyle","Odometer","Source","SourceCode","CRURL","hostname","VDPURL","Displacement","EngineSize","CRSCORE","Condition","PickupZip","LocationPostCode","PickupAddress","LocationAddressDetails","Engine","EngineDescription","display","StyledSlideOutHeading","StyledSlideOutElement","SlideOutHeading","vehicleTitle","SlideOutDropdown","alertMessage","_ref$disabled","fallbackValue","_ref$required","required","formik","useFormikContext","selectedValue","option","_formik$values","values","Label","htmlFor","Select","inputId","isDisabled","setFieldValue","Heading","errors","touched","ValidationErrorMessage","SlideOutReadOnlyInput","Group","controlId","Control","placeholder","readOnly","StyledSlideOutBidAmountInput","StyledBidAmountButton","borderInput","SlideOutBidAmountInput","bidIncreasement","bidIncreasementString","nextBidAmountString","nextBidAmount","bidAmountText","setBidAmountText","updateBidAmount","bidAmount","handleBidAmountChange","BidAmount","onBlur","onKeyPress","event","charCode","EnterKeyCharCode","faAngleUp","faAngleDown","SlideOutPricingDetails","buyerFeeString","deliveryCharge","estimatedGrossPrice","vehicleCharges","isIncentiveAccumulate","incentives","feeLoading","slideOutElementRef","OverlayTrigger","trigger","overlay","charge","VehicleChargeTypeDescription","PriceString","incentive","AmountString","isNaN","HTMLText","BiddingSidePanelFormContent","_formik$values2","_biddingVehicle$aucti","_deliveryInformation$3","_deliveryInformation$4","_deliveryInformation$5","_biddingVehicle$aucti2","_biddingVehicle$aucti3","_biddingVehicle$aucti4","_biddingVehicle$aucti5","_biddingVehicle$aucti6","_biddingVehicle$aucti7","_biddingVehicle$aucti8","_biddingVehicle$aucti9","_biddingVehicle$aucti10","_biddingVehicle$aucti11","_biddingVehicle$aucti12","isDealerShipSelectable","setFetchLoading","_useBiddingSidePanel","biddingVehicle","useVehicleStore","_state$vehicles","AssociatedBuyers","CurrentBuyerID","setFeeLoading","buyerFee","setBuyerFee","setBuyerFeeString","hasAnyChargeRange","setHasAnyChargeRange","deliveryInformation","setDeliveryInformation","_useState11","_useState12","setVehicleInfo","dealershipOptions","dealership","SalesSessionStepBuyerTypeIds","some","sessionStepBuyerType","BuyerTypeID","buyerAccountOptions","_deliveryInformation$","CurrentBuyerAlternateIdentifiers","acc","paymentTypes","_deliveryInformation$2","PaymentTypes","paymentType","selfArrangeTransportationProvider","TransportProviders","provider","SelfArrangedTransportProviderId","_vehicleInfo$Charges","_vehicleInfo$Incentiv","totalCharges","Charges","reduce","accumulator","currentValue","Price","promotions","Incentives","Amount","deliveryPrice","QuotePrice","titleOptionFee","TitleDeliveryCharge","NextBidAmount","IsIncentiveAccumulate","fetchDetailedDeliveryInfo","useCallback","biddingDealerID","salePrice","deliveryQuote","_deliveryInformation","FinalPrice","ChannelID","SaleChannelID","InterestID","OfferID","InterestStatusID","OfferStatusID","LocationID","PaymentTypeID","SalePrice","SalesSessionStepId","SalesSessionStepID","VehicleInstanceID","getDetailedDeliveryInfo","BuyerID","CurrentBuyerAccountRef","BuyerFee","BuyerFeeString","HasAnyChargeRange","fetchVehicleInformation","payload","_yield$getBaseVehicle","_yield$getBaseVehicle2","GetBaseVehicleRequest","IncludeAuctionData","IncludeBaseData","IncludeInspectionReport","getBaseVehicle","handleDealerChange","dealershipId","all","finish","formikHelper","dealershipUpdatedCallback","useSidePanelRealTimeUpdateDealer","requestGenericPremiumOnBidMountChange","debounce","biddingDealerId","feeRequest","feeResponse","VehicleInstanceId","LocationId","SaleChannelId","getGenericPremium","Premium","PremiumString","BiddingDealerID","account","HasPreviousBid","BidAmountTypeOptions","CurrentBidAmount","BidAmountType","UserMaxBidString","UpdateBidAmount","BidIncrement","BidIncrementString","NextBidAmountString","StyledSpinnerButton","SpinnerButton","isLoading","DismissableAlert","_ref$variant","onClose","autoDismissable","timeoutHandler","setTimeout","clearTimeout","dismissible","bidAgainValidationSchema","object","number","positive","integer","string","oneOf","TransportCompanyID","BuyerAccountReference","BiddingSidePanel","_biddingVehicle$vehic","updateVehicleAuction","_useBiddingSidePanel2","setBiddingVehicleInstaceId","pathname","isBidSuccess","setIsBidSuccess","bidResponseMessage","setBidResponseMessage","setLoading","timeOut","EndDate","showBidButton","CanBid","StatusID","VehicleStatuses","OnSale","biddingHandler","formikHelpers","bidRequest","_vehicleDataResponse$","_vehicleDataResponse$2","_vehicleDataResponse$3","_vehicleDataResponse$4","vehicleDataResponse","BuyItNowPrice","QuickBid","ConnectionId","ReferenceNumber","DeliveryQuote","bidOnVehicle","ResponseMessage","ErrorMessages","Success","resetSidePanel","SlideOut","onCloseButtonClick","Formik","initialValues","onSubmit","validationSchema","handleSubmit","CountDownWithColor","StyledBreadCrumbICon","StyledBreadCrumbMenu","menus","path","text","description","BreadcrumbMenu","routematch","useRouteMatch","breadcrumbs","findMenuParent","IsTermAccepted","Link","to","faHome","originalData","_useVehicleStore","addVehicles","_useVehicleStore2","vehiclesFromStore","returnedVehicles","instanceIds","ChevronDown","_ref$width","_ref$height","ThemedSvg","viewBox","clipRule","_useContext$vehicleDa","IsAvailable","SoldNotFunded","StyledAuctionPrice","BuyItNowPriceString","StyledTag","StatusDescription","CurrentPriceString","FinalPriceString","StyledNoAvailable","StyledVehicleTags","_ref$direction","right","IsHighestBidder","StyledDropdownList","DropdownList","_items$find$value","_items$find","defaultValue","items","setCurrentValue","handleSelectChange","Dropdown","Toggle","tabIndex","Menu","eventKey","StyledPopOverPagination","StyledPagination","inputBackgroundColor","OverlayEllipsis","onChangedPageValue","toPage","showGotoPage","setShowGotoPage","paginationRef","Input","max","Pagination","Ellipsis","_ref$showRecordsPerPa","showRecordsPerPage","goToPageValue","setGoToPageValue","pageNum","pageCount","numberOfDisplayItems","Array","left","Math","min","floor","generatePageItems","PAGINATION_ITEM_SIZE","PageSizeOptions","StyleBidsHistory","StyledModalContent","StyleModalHeader","Header","StyledLabel","StyledBidsHistoryTable","Table","modalHeader","StyleBidsHistoryNoteSpan","BidsHistoryModal","vehicleVin","bidHistories","BidHistory","closeButton","responsive","hover","IsHighestBid","DealerShipName","DateTime","fromISO","CreatedDate","toFormat","locale","BidAmountString","IsProxyBid","winningBid","showBidsHistory","setShowBidsHistory","IsDirectSale","StyledAuctionText","StyledNumberOfBids","count","NumberOfBids","centered","ModalSelectView","ButtonPopup","ConfirmationGroupButton","AlertDialog","_ref$isConfirmation","isConfirmation","onSave","Container","fluid","StyledVehicleAuctionInfo","formatDate","date","saleEndDate","adjustTime","getTime","round","TermConditionBody","backgroundText","h2","StyledSubMenuItem","li","StyledVehicleDetailCarousel","StyledToolTip","Tooltip","reducer","componentOpen","groupOpen","totalGroup","defaultGroupOpen","expanded","useExpand","initState","_useReducer","useReducer","_useReducer2","dispatch","initGroup","initValue","initGroupWithDefaultArray","setExpand","AnalyticsStorageKey","LOAD_START_TIME","USER_LOCATION","GEO_LOCATION","CUSTOM_CLICK_NAME","MOBILE_HEADER","DtmPageName","Dashboard","SRP","News","AdvancedSearch","SavedSearch","WatchList","CurrentBids","VDP","PurchaseConfirmation","VehicleRetail","PurchaseHistory","ContactUs","MyProfile","AccountSettings","DtmComponentName","VDPDetails","VDPVehicleHistory","VDPBuildData","VDPTires","VDPSellerDisclaimer","VDPDamageSummary","DashboardInventory","DashboardWatchList","DashboardCurrentBids","DtmPageDetails","DtmPageRollup","getApplicationRevisionId","userAgent","navigator","device","match","appVersion","setCustomClick","customClickName","usePageName","AnalyticsStore","enableDtmAnalytics","environment","enableHighAccuracy","timeout","maximumAge","success","pos","geoString","timestamp","coords","latitude","longitude","accuracy","altitude","speed","lat","long","err","errorStr","geolocationErrorMap","geolocation","getCurrentPosition","getGeoLocation","setPageInfo","pageDetails","pathName","parent","join","getPageDetails","pageRollup","getPageRollup","tabName","getTabName","loadStart","getInventoryClickName","ft","_ft$find","_ft$find$ChildrenFilt","_ft$find$ChildrenFilt2","_ft$find2","_ft$find2$ChildrenFil","_ft$find2$ChildrenFil2","modelFilter","FieldName","srpFilters","Series","ChildrenFilter","Selected","yearFilter","getListings","listModel","siteCode","vendorCode","listedVehicle","forEach","model","_model$auctionInfo","_model$vehicle","auctionID","push","getSearchParameters","response","_response$filters","_response$sortOptions","allCirteria","filters","filterParent","_defineProperty","FriendlyValue","allCriteria","resultsCount","resultsPerPage","PageSize","sort","_response$sortBy","split","sortOrder","StyledAuctionCardRow","StyledAuctionImage","StyledAuctionTitle","Text","StyleBaseTag","isReserveMet","_templateObject12","_templateObject13","BidSectionContainer","_templateObject14","_templateObject15","_templateObject16","StyledCard","_templateObject17","_templateObject18","cardStyle","FileEarMarkArrowDown","windowSize","setWindowSize","handler","innerWidth","innerHeight","addEventListener","removeEventListener","localStorage","CSRF_TOKEN","_document$querySelect","querySelector","_document$getElementB","innerHTML","trim","url","input","_ref2$type","headers","abortController","timer","result","contentType","CSRF_HEADER","AbortController","abort","fetch","signal","status","toUpperCase","encodeURIComponent","test","json","t1","t2","t3","blob","t4","t5","t6","t7","t8","t9","t10","ok","method","isVDP","selfInspection","editingNote","isSavingWatchList","setIsSavingWatchList","updateVehicleData","customName","saveVehicleLevelWatchList","RemoveVehicle","SaleEventID","displayText","preventDefault","screen","open","openPopup","StyledVehicleStickyBar","pageHeader","_ref$placement","StyledSlideOut","PrismSlideOut","actionable","DriveTrain","_ref$color","SaleChannel","ExteriorColor","transform","InteriorColor","Calendar","Door","getVehicleListingInfoIcon","isEmpty","StyledVehicleProperties","MMRUrl","showInServiceDateSetting","showAll","setShowAll","properties","vehicleSrcCode","setting","p","UIConstantName","ValueString","processInServiceDateProperty","_vehicleInfo$Properti","_vehicleInfo$Properti2","Properties","VEHICLE_PROPERTIES_TO_HIDE","getVehicleDetailProperties","limit","StyledInfoLabel","Code","buildMMRUrl","faChevronUp","faChevronDown","StyledAuctionTimeRemaining","CountDown","minuteToShowSecond","getSystemSettings","h","m","s","displayTime","StyleDisclosureModal","linkColorLight","StyleDisclosureWarningSpan","StyledDisclosureModalBody","VehicleDisclosureModal","documentSignInfo","handleSubmitSuccess","enableDisclosureButtons","setEnableDisclosureButtons","displayDisclosureError","setDisplayDisclosureError","acceptDisclosure","saveDisclosure","VehicleInstanceDocumentsID","Footer","showVehicleDisclosureConfirm","setShowVehicleDisclosureConfirm","bidButtonAction","setBidButtonAction","modalShow","setModalShow","showErrorMsg","setShowErrorMsg","acceptVehicleDocumentSignInfo","isShowBuyItNowPrice","CurrentPrice","haveToAcceptDisclosure","DisclosurePresent","IsAccepted","removeBidVehicle","hideVehicleBidRow","VehicleAction","BID","CanBuy","BUY","TextDanger","StyledWarningModal","isAlert","colorTextModal","defaultDealerDeactive","GenericMessageWarning","_useGlobalStore2","fullscreen","React","memo","clickOutsideHandler","NoteId","editingFormRef","handleClickOutside","contains","inputNote","focus","addVehicleNote","note","addVehicleNotes","NotesId","Notes","draft","userNote","handleChange","handleBlur","maxLength","VehicleRibbons","isVDPHistory","showPriceReduction","DecreasedPrice","showNewInventory","NewInventory","showPromotions","FileSaver","saveAs","detailLink","getVdpUrl","TitleVDP","NavLink","StyledSelect","dropdownHoverColor","assign","_objectDestructuringEmpty","ReactSelect","styles","base","classNamePrefix","stripHtml","htmlStr","DOMParser","parseFromString","documentElement","textContent","isAnyChilrenFiltersSelected","filterFieldName","_filters$find","_filters$find$Childre","cft","isAnyChildrenFilterExist","childrenFilterFieldName","_filters$find2","_filters$find2$Childr","hasAnyChilrenFilter","_filters$find3","_filters$find3$Childr","processVehicleSearchDocumentResult","filterField","r","_filters$find4","childrenFilters","resetChildrenFilters","_len","filterFieldNames","_key","selectChildrenFilter","_len2","selectedValues","_key2","childFilter","addDummyChildrenFilter","fieldId","fieldName","dbFieldName","_filters$find5","_filters$find5$Childr","selected","FieldId","MultiSelect","Operation","dtmSettings","userData","dtmTraceWebEvent","_userData$RepAuctionA","_userData$CurrentBuye","componentName","alternativeClickName","searchData","_getSearchParameters","appEventData","VendorCode","BMW_VENDOR_CODE","applicationCode","eventData","events","platform","signature","application","loginName","repID","RepAuctionAccess","sessionId","SessionID","applicationRevisionId","accountID","accountName","loadTime","pageType","language","LanguageCode","userNotes","listings","debug","toISOString","endPageLoad","endComponentLoad","CurrentBidsCount","AppRoutes","ManageBids","WatchListCount","AttachFilePopoverStyled","PopoverAttachment","forwardRef","rest","getMultipleVehicleDocuments","documents","DocumentDescription","FileName","DocumentURL","DocumentFileType","PDF","faFilePdf","Image","faFileImage","Video","faFileVideo","faFile","StyledVDPHistory","VDPHistory","_getLocalText","_getLocalText2","_getLocalText3","_getLocalText4","_getLocalText5","_getLocalText6","vehiclePurchase","TotalPriceString","PreAdjustmentPriceString","PurchaseDate","InvoiceNumber","PaymentType","Location","isVdpHistory","HasExternalAttachments","PaperClipButton","faPaperclip","StyledScrollButton","toggleVisible","scrolled","scrollTop","StyledCarfaxAdvantage","StyledCarfaxAdvantageTitleImage","carfaxBackground","StyledCarfaxAdvantageItem","StyledNoCarfaxItem","VIEW_CARFAX_ADVANCED","carfaxIcon","carfaxTitleLogo","Icon","carfaxBaseUrl","ValueCount","BMWIconNew","version","strokeWidth","pageNumber","setPageNumber","imageUrl","setImageUrl","pages","_images$imgIndex","_images$imgIndex2","_images$find","image","handlImageChange","fn","deps","setResult","doFetch","MultiLanguageCode","SITE_TITLE","PASSWORD","LOGIN","PRIVACY_POLICY","PRIVACY_POLICY_HEADER","CONTACT_US","COPYRIGHT_TEXT","TERMS_AND_CONDITIONS","TERMS_LINK","TERMS_TEXT","CONTACTUS_HEADER","CONTACTUS_BODY","CANCEL_BUTTON","SUBMIT","CONTACTUS_SUCCESS","EMAIL_FAILED","ANNOUNCEMENTS_VDP","OPEN_RECALL_CLEARING_MESSAGE","OPEN_RECALL_DETAILS","OPEN_RECALL_EFFECTIVE_DATE","OPEN_RECALL_CAMPAIGN_ID","AS_IS_100K","TMU_REASON","COMMENT_LINK","ANNOUNCED_CONDITIONS","FRAME_DAMAGE","MILEAGE","DEFECT_DATE","DEFECT_DESCRIPTION","DEFECT_CODE","quickSearch","searchAvailableInventory","searchVehicles","_callee5","_context5","_callee6","_context6","_x7","_callee7","_context7","_x8","_x9","_callee8","_context8","_x10","_x11","_callee9","_context9","_x12","_x13","_callee10","_context10","_x14","getVehicleInformation","_callee11","_context11","_x15","loadDayFiles","_callee12","searchID","_context12","_x16","saveSearch","_callee13","_context13","_x17","getSellerDisclosureByID","_callee14","_context14","_x18","getVDPConfigurationDetails","getVehicleHistoryByID","_callee15","_context15","_x19","_ref17","_callee17","vehicleInstanceIDs","_args17","_context17","DocumentType","ExternalNoteAttachment","StyledHomeSectionHeaderActionSection","StyledHomeSectionHeaderLink","StyledHomeSectionBody","sectionContentBackgroundColor","StyledRowInventory","StyledBuyerActivitySection","StyledHomeSection","StyledLoader","_ref2$variant","StyledPageLoader","loader","StyledVehicleLoader","LazyLoad","once","BaseCollectionRequest","_createClass","_classCallCheck","DEFAULT_PAGE_SIZE","FilterOptions","AdvertType","RightContainer","LayoutContainer","fontBase","StyledFooter","LinkBaseStyled","BackToLoginLink","ClickHereLink","StyledLoginFormFooter","LoginTitle","h1","ForgotLink","RightFooterContainer","LeftFooterContainer","StyledLeftContainer","FormLoginBody","colorButtonDisabled","LoginContainerColStyled","require","isReactRoutes","ReactLink","BsNavLink","_excluded2","_ref$as","Component","dangerouslySetInnerHTML","__html","ScrollToTop","BMWCustomStyle","tableStriped","tableBorder","switchBackgroundColor","incentiveHeaderColor","incentiveHeaderHoverColor","goodTireColor","normalTireColor","badTireColor","issueColor","logo","layout","header","leftLogo","rightLogo","NissanCustomStyle","merge","defaultTheme","GlobalStyle","createGlobalStyle","PortalThemeProvider","BMWTheme","NISSAN_VENDOR_CODE","NISSANTheme","getVendorTheme","RootComponent","ThemeProvider","useNotification","_useSignalRStore","vehicleIds","_subscribeUpdateVehicle","off","on","subscribeUpdateVehicle","StyledAlertNotification","stickyAlert","AlertNotification","reload","HeaderStyled","LinkNameModal","handleClose","bodyText","ContactHeader","h4","ContactBody","ContactUsBody","FormContainer","FormBody","GroupButtonStyled","SubmitButton","CancelButton","LinkNameStyled","LinkNameText","contactReasons","intl","useIntl","validated","setValidated","contactReasonOptions","setContactReasonOptions","contactReason","setContactReason","displayVin","setDisplayVin","linkName","setLinkName","linkText","setLinkText","_useState13","_useState14","showModal","setShowModal","_useState15","textAlert","isDisplay","_useState16","alertModel","setAlertModel","vinRef","ContactReasons","vinDomElement","form","isValidVin","_form$phone","_form$company","_form$Vin","IsArbitrate","checkVinValidity","checkValidity","firstName","lastName","email","phone","company","resetFormField","el","isValid","validateVin","setCustomValidity","vinOnChange","Reason","Layout","formatMessage","noValidate","LinkName","LinkText","selectOptionChange","_option$Reason","Feedback","rows","FormattedMessage","StyledHomeSlideShow","StyledPromotion","StyledSearch","useSrpFiltersStore","totalVehicles","fetchFilters","_fetchFilters","resp","AVAILABLE_INVENTORY_INIT_QUERY","Data","SlideShow","isFilterLoading","getCarouselImages","useHistory","clickHandler","NonPromotional","Promotional","Promotion","BaseVehicleSearchCriteriaColumn","SEARCH_FILTERS","SearchResult","DocumentName","fade","controls","Caption","marginTop","paddingBottom","paddingTop","StyledModelFigureCaption","StyledModelFigure","StyledPopover","BodyStyled","ModelFigure","modelType","make","onRedirect","total","setYearFilter","showtooltip","setShowtooltip","modelYears","onMouseEnter","onMouseLeave","yearModel","year","handleRedirectYearAndModel","bind","defaultModel","StyledCountingText","StyledToggleSwitchWrapper","StyledToggleSwitch","StyledToggleStatus","StyledToggleInput","ToggleSwitch","_ref$statusText","statusText","true","false","showIcon","onToggle","uniqueId","isLeftRight","isTrueFalse","faCheck","faTimes","findModelGroupImage","modelGroupImages","modelGroup","bodyStyle","fuelType","_match","groupImages","ModelGroup","_MODEL_GROUP_MAPPER$f","_MODEL_GROUP_MAPPER$f2","FuelType","MODEL_GROUP_MAPPER","DisplayText","_MODEL_GROUP_MAPPER$f3","_MODEL_GROUP_MAPPER$f4","BodyStyles","Sedan","getSeriesBasedOnModelGroup","modelGroupFilters","modelGroupName","uniq","filtersReducer","_action$payload","initFilters","cloneDeep","keyBy","takenFilters","filterClone","_AVAILABLE_INVENTORY_","_AVAILABLE_INVENTORY_2","_AVAILABLE_INVENTORY_3","_AVAILABLE_INVENTORY_4","filterValue","AVAILABLE_INVENTORY_MAPPER","_m$DisplayText","_AVAILABLE_INVENTORY_5","AVAILABLE_INVENTORY_HEADING","at","_item$Value","_item$Value2","_AVAILABLE_INVENTORY_6","_AVAILABLE_INVENTORY_7","setDefaultFilters","AvailableInventory","_displayFilters$Make$","HeadingLoading","_useExpand","expandState","expandAction","displayFilters","setDisplayFilters","dispatchFilters","currentFuelType","setCurrentFuelType","isNewInventoryView","setIsNewInventoryView","currentBodyStyle","setCurrentBodyStyle","getModelGroupImages","_useSrpFiltersStore","HeadingData","_useFetch2","ContentLoading","ContentData","_useDtmAnalytics","entries","v","_AVAILABLE_INVENTORY_8","_AVAILABLE_INVENTORY_9","filterEmptyResultSearchFilters","bodyStyleFilters","additionalBodyStyleFilters","AdditionalBodyStyle","makeFilters","IsNewInventory","chain","orderBy","handleChangeBodyStyleFilters","_AVAILABLE_INVENTORY_10","_AVAILABLE_INVENTORY_11","originalValues","q","handleChangeAdditionalBodyStyleFilters","additionalBodyStyle","handleChangeFuelTypeFilters","_AVAILABLE_INVENTORY_12","_AVAILABLE_INVENTORY_13","originalFuelTypes","handleChangeMakeFilters","handleRedirect","getSearchUrl","handleRedirectModelGroup","handleRedirectYearAndModelGroup","modelYear","isChecked","_bodyStyleFilters$Chi","_bodyStyleFilters$Chi2","cf","_AVAILABLE_INVENTORY_14","_AVAILABLE_INVENTORY_15","_m$DisplayText2","_AVAILABLE_INVENTORY_16","_AVAILABLE_INVENTORY_17","_additionalBodyStyleF","_additionalBodyStyleF2","_additionalBodyStyleF3","originalValue","_makeFilters$Children","_makeFilters$Children2","in","faCar","NO_NEW_INVENTORY_MESSAGE","GENERIC_NO_VEHICLE_AVAILABLE_MESSAGE","mg","arrOfSeries","countBy","StyledActivityTitle","VehicleLink","vehicleShowOn","detailUrl","VehicleAuction","_vehicleData$auctionI2","mileage","_vehicleData$auctionI","getBidVehicles","itemBids","totalBids","loadingBid","vehicleBids","manageBidsUrl","getCurrentBidsUrl","stopPropagation","getWatchListVehicles","watchlistUrl","getWatchlistUrl","initExpand","BuyerActivity","StyledDashboardPlaceholder","StyledDashboardSlide","setListingBreadcrumb","pageTitle","DETAIL_BREADCRUMB","filterIndex","substring","LIST_BREADCRUMB","AuthorizedComponent","allowedRules","VIEW_SEARCH_RESULT_PAGE","VIEW_ADVANCED_SEARCH_PAGE","ErrorPage","LoginLayout","order","leftIcon","loginBackgroundUrl","vendorImages","LoginFormFooter","TERM_AND_CONDITION","FAQ","StyledForgotPassword","StyledForgotUserLink","LoginLinkWrapper","StyledResetPassword","FormGroup","StyledLable","StyledFormContainer","StyledSubTitle","StyledCol","StyledSubmitButton","ForgotPassword","secretQuestion","setSecretQuestion","resetPassword","setResetPassword","showAlert","setShowAlert","setIsLoading","forgotForm","getSecretQuestionHandler","userID","setFieldError","Message","sendPasswordResetHandler","setStatus","setErrors","QuestionId","useFormik","validate","Helmet","FormInput","isInvalid","Question","CONTINUE","Login","loginForm","setErrorMessage","errorCount","setErrorCount","wasInitiallyAutofilled","setWasInitiallyAutofilled","checkAutofilled","autofilled","matches","_unused","loginHandler","setSubmitting","redirectLink","isFirstLogin","getUrlParameter","decodeURIComponent","Yup","disableSubmitButton","isSubmitting","PrivacyBody","Privacy","TermCondition","downloadURI","link","createElement","appendChild","click","removeChild","WatchListPageContent","handleGetWatchList","validIds","urlDownloadViewVehicles","exportView","exportViews","Excel","BUY_VEHICLE_NO_ACTIVITY","WATCH_LIST","WatchListPage","CurrentBidsPageContent","handleGetBidVehicles","CURRENT_BIDS","CurrentBidsPage","StyledAccordionTitle","StyledAccordionContent","StyledAccordion","StyledCustomAccordion","CustomAccordion","defaultOpen","setIsOpen","unmountOnExit","StyledBuyerSearchHeader","StyledBuyerSearchAction","StyledBuyerSearchContent","StyledMultiSelectFilterSection","noOfCols","StyledRibbonLabel","StyledSliderFilterSection","StyledCarfaxFilterItemContainer","StyledCarfaxFilterItemHeader","StyledCarfaxFilterItemContent","StyledCarfaxAccordion","StyledBuyerSearch","StyledFilterSection","SaveClearAllFilterGroupAction","SaveCancelGroupAction","SaveLink","SaveSearchContainer","NotifyContainer","SaveSearchFormBody","ActionSeparator","SaveSearch","filtersData","onClearFilterClicked","onToggleSaveSearch","showSaveSearch","setShowSaveSearch","canSaveSearch","VIEW_SAVED_SEARCH_PAGE","currrentSearch","days","frequency","durations","handleSaveSearch","Operator","Contains","SEARCH_DESCRIPTION","enableReinitialize","descriptionChange","hidden","NotifyMe","EmailRecurrance","EmailDay","EmailRecurranceDuration","StyledThumb","StyledTrack","StyledMark","StyledSlider","ReactSlider","renderThumb","textRenderFn","valueNow","renderTrack","flat","renderMark","Slider","SearchFilter","CurrentBuyerPostCode","internalFilter","setInternalFilter","NO_FILTER_APPLICABLE","onMultiSelectChange","childPredicate","resetFirst","onMultiValueSliderChange","minVal","maxVal","Value3","onProximityChange","selectedChild","_ft$Value","_selectedChild","formatDistanceLabel","Value2","onZipCodeChange","_selectedChild2","onConditionGradeChange","startsWith","inline","FilterKey","defaultChecked","VehicleCount","DBFieldId","selectedOptions","isSearchable","isMulti","closeMenuOnSelect","opt","noOptionsMessage","Proximity","column","marks","PROXIMITY_FILTERS","_internalFilter$Child","OdometerCustomRange","obj","step","VehicleConditionCode","Tag","StyledSelectedSearchFilters","StyledTagContainer","SelectedSearchFilters","onRemoveFilter","onCollapsed","showMore","setShowMore","hiddenFiltersLength","SELECTED_SEARCH_FILTERS_LIMIT","displayShowMore","disPlayShowLess","handleCollapse","faTimesCircle","faPlus","faMinus","useElementSize","setRef","setSize","handleSize","offsetHeight","FilterSearchContext","FilterSearchContextProvider","showSlideOutFilterSearch","setShowSlideOutFilterSearch","sessionSearchFilters","SRP_INIT_QUERY","SearchQuery","SearchFilters","setQueryRequest","SRP_FILTERS_QUERY","filterRequest","setFilterRequest","updateFilters","req","closeShowSlideOutFilterSearch","BuyerSearch","vehicleEventFilters","appliedFilters","setAppliedFilters","seeMoreFilter","setSeeMoreFilter","saveSearchOpen","setSaveSearchOpen","viewCarfaxAdvantage","searchCarfaxData","defaultExpandLimit","DEFAULT_EXPAND_FILTERS_NUMBER","onSearchFilterChange","f","hasAnySelectedChild","hasAnySelectedVehicleEvents","hasAnySelectedVin","accordionKey","doSearch","drafts","RANGE_FIELD_ID","_useElementSize","_useElementSize2","headerRef","flatMap","filterKey","QUERY_FILTERS","resettedData","block","maxHeight","_appliedFilters$find","ap","_ChildrenFilter$","_appliedFilters$find2","_appliedFilters$find3","_appliedFilters$find4","StyledSearchResultsPage","SearchFilterColumn","StyledTopPaging","StyledSlideOutSearchFilter","SlideOutSearchFilter","closeFilter","FilterIcon","StyledSearchFilterButton","SearchFilterButton","showFilterSearch","SearchResultsPageContent","_useContext2","noVehicleText","SEARCH_RESULTS","showRetailViewOpt","setAlertMessage","watchListCount","watchListCountLoading","_useFetch2$data","currentBidsCount","currentBidsCountLoading","handleSearch","_request$SearchQuery","PAGE_SELECTED","PAGE_SIZE","SESSION_SORT","scrollToVin","SCROLL_TO_VIN","topPosition","elementDiv","adjustmentPosition","parentElement","offsetTop","maxVehiclesNumberSRPRetail","warningText","getSRPRetailViewReport","SearchResultsPage","AnalyticsRoute","Route","AuthenticatedRoute","allow","setAllow","Suspense","fallback","PublicRoute","_excluded3","App","_useGlobalStore3","_useGlobalStore4","_useFetchUserClaim","useFetchUserClaim","userClaimLoading","Faq","lazy","VehicleDetailsPage","IntlProvider","textComponent","messages","titleTemplate","BrowserRouter","Switch","PAGE_RDP_CurrentBids","exact","VIEW_WATCH_LIST","PAGE_RDP_Dashboard","PAGE_RDP_SRP","Redirect","ReactDOM","render","StrictMode","_BaseCollectionReques","_inherits","_super","_createSuper","_this","call","Ids","VehicleBaseData","_BaseCollectionReques2","_super2","filterOptions","_sortBy$Name","_sortBy$SortOrder","_sortBy$Value","_this2","DEFAULT_BIG_PAGE_SIZE","DefaultFilterOptions","FRAME_DAMAGE_LABEL","QuickSearch","ReturnVehicles","ReturnZeroCountFilters","IsReserveMetVehicles","IsRecentlyAddedVehicles","ReturnOnlyVehicles","StatusIds","SEARCH_ID","FILTER_OPTION","ImageType","DAMAGE_IMAGE","elevated","modal","DashboardGrounding","PENDING_OFFERS","GROUNDING_EXPIRING_SOON","GROUNDING_EXPIRING_TODAY","GROUNDING_OVERDUE","GROUNDING_AWAITING_PRICING","GROUNDING_AWAITING_INSPECTION","MenuExclusionList","childrens","FooterMenuExclusionList","leftLogoDark","rightLogoDark","MIN_MATCH_CHAR_LENGTH","DefaultSortBy","SAVE_SEARCH","TyreStatus","Tyres","TyresDescriptionValue","_TyresDescriptionValu","FRONT_LEFT_TIRE","FRONT_RIGHT_TIRE","REAR_LEFT_TIRE","REAR_RIGHT_TIRE","SPARE_TIRE","TireTreadDepthRange","WidgetConfigurationDetails","RangeFieldIds","ODOMETERCUSTOMRANGE_FIELD_ID","PROXIMITY_FIELD_ID","VEHICLECONDITONCODE_FIELD_ID","customizer","objValue","srcValue","isArray","updateItem","entity","collection","keySelector","itemIdx","updatedCollection","mergeWith","mergeItems","updatedData","_getBaseVehicle2","_yield$_getBaseVehicl","_yield$_getBaseVehicl2","baseVehicle","updatedItem","updatedVehicle","firstNode","lastIndexOf","handlePortalMenuItemClick","MenuItem","routes","Home","_rmsAuthModel$appSett","UseNewDashboardPage","REACT_ROUTES","_pathname$split","matchPath","svg","output","from","append","sParam","ignoreCase","includeFragment","pattern","results","RegExp","exec","slideInFromRightEffect","slideInFromLeftEffect","isBrowser","zeroPosition","getClientRect","element","getBoundingClientRect","getScrollPosition","useWindow","boundingElement","scrollX","scrollY","targetPosition","containerPosition","useScrollPosition","wait","position","throttleTimeout","callBack","currPos","prevPos","_boundingElement$curr","handleScroll","passive","_boundingElement$curr2","defaultProps","AcceptenceBody","ContinueButton","DocumentList","Document","AcceptenceTerm","_rmsAuthModel$newsMod2","_rmsAuthModel$newsMod3","_rmsAuthModel$newsMod4","newsHandler","_rmsAuthModel$newsMod","NewsID","requiresAccept","RequiresAcceptance","newsDocuments","StyledMainNavItem","StyledFooterRow","StyledNavItem","StyledLogoContainer","StyledSubNavSmallScreen","LayoutLeftFooterContainer","StyledFooterLogo","_useGlobalStore2$","isSSO","IsSSO","Children","IsWebMenu","URL","c","childItem","_","isNil","privatestorebymanheim","BurgerButton","BurgerIcon","_ref$enableSticky","enableSticky","sticky","RDP_AccountSettingIcon","CurrentBidIcon","SaveSearchIcon","xmlnsXlink","enableBackground","xmlSpace","AdvanceSearchIcon","iconDict","RDP_SearchResults","faSearch","RDP_SearchResults_2","RDP_AdvancedSearch","RDP_SavedSearch","RDP_WatchList","RDP_CurrentBids","RDP_WatchList_2","RDP_CurrentBids_2","RDP_MyProfile","faUser","RDP_ContactUs","flip","faPhone","RDP_AccountSettings","faQuestionCircle","Logout","faSignOutAlt","Person","StyledUserMenu","StyledDealerDropdown","StyledCurrentDealership","RightActionContainer","UserMenu","_useGlobalStore$userC","userName","dealerShipName","associatedBuyers","dealer","currentBuyerId","setCurrentBuyerId","userFunctionalities","setUserFunctionalities","isOveUser","myAccountLink","OrderNo","ParentName","handleChangeCurrentBuyer","showInMobile","Nav","alignRight","SubMenu","handleSubMenuClick","NavBar","isTerm","handleMenuClick","_MenuExclusionList$fi","_MenuExclusionList$fi2","_MenuExclusionList$fi3","isShowFooter","headerHeight","EyeOff","EyeSlash","StyledFormControl","StyleInputEye","InputGroup","showPassword","setShowPassword","hasValidation","TextDangerStyled","small","getMainImageUrl","_images$find$LocalThu","_images$","VehicleImageTypeDescription","value1","value2","mmrHost","_properties$find","_properties$find2","mmrLink","prop","enableReactLinks","ENABLE_REACT_LINKS","vehicleInstanceId"],"mappings":"oIAAA,sEAKMA,EAAgB,WACpB,OAAOC,cAACC,IAAK,CAACC,QAAQ,SAAQC,SAAEC,KAClC,EAEaC,EAAuB,SAAHC,GAAA,IAAMH,EAAQG,EAARH,SAAQ,OAC7CH,cAACO,gBAAa,CAACC,kBAAmBT,EAAcI,SAAEA,GAAyB,C,sbCVhEM,EAAY,SAACC,GAAK,OAC7BV,cAAA,MAAAW,wBAAA,CACEC,MAAM,6BACNC,MAAO,GACPC,OAAQ,GACRC,KAAK,eACLC,UAAU,mBACVC,OAAO,gBACHP,GAAK,IAAAP,SAETH,cAAA,QACEkB,SAAS,UACTC,EAAE,kJAEA,ECdKC,EAAU,SAACV,GAAK,OAC3BV,cAAA,MAAAW,wBAAA,CACEC,MAAM,6BACNC,MAAO,GACPC,OAAQ,GACRC,KAAK,eACLC,UAAU,iBACVC,OAAO,gBACHP,GAAK,IAAAP,SAETH,cAAA,QACEkB,SAAS,UACTC,EAAE,oJAEA,E,wECRKE,EAAaC,IAAOC,IAAGC,MAAAC,YAAA,mwBAUXC,KAYZ,SAAApB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IASnC,SAAAC,GAAQ,OAAAA,EAALH,MAAkBC,OAAOG,aAAa,GAM/BC,IAIAC,KAKVC,EAAoBZ,YAAOa,IAAPb,CAAec,MAAAX,YAAA,2UAhD/B,SA8DJ,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAOC,OAAO,IAIxB,SAAAS,GAAQ,OAAAA,EAALX,MAAkBC,OAAOC,OAAO,ICvDrDU,EAAgB,SAACC,GACrB,OAAe,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUC,MAAM,EAAGD,EAASE,QAAQ,MAC7C,EAEaC,EAAO,SAAHrC,GAAyE,IAADsC,EAArDC,EAAevC,EAA5BwC,YAA8BC,EAAWzC,EAAXyC,YAAaC,EAAQ1C,EAAR0C,SAChEC,EAAsCC,mBAAkBL,GAAgBM,EAAAC,YAAAH,EAAA,GAAjEH,EAAWK,EAAA,GAAEE,EAAcF,EAAA,GAClCG,EAAgCJ,mBAA8B,QAAtBN,EAAgB,OAAfC,QAAe,IAAfA,OAAe,EAAfA,EAAiBU,YAAI,IAAAX,IAAI,IAAGY,EAAAJ,YAAAE,EAAA,GAA9Dd,EAAQgB,EAAA,GAAEC,EAAWD,EAAA,GAC5BE,EAAwBR,oBAAS,GAAMS,EAAAP,YAAAM,EAAA,GAAhCE,EAAID,EAAA,GAAEE,EAAOF,EAAA,GACdG,EAAUC,iBAAO,MACjBC,EAAeD,iBAAO,MACtBE,EAAaC,kBACN,OAAXnB,QAAW,IAAXA,OAAW,EAAXA,EAAaoB,KAAI,SAACC,GAAE,OAAAzD,wBAAA,GAAWyD,GAAE,IAAEb,KAAMhB,EAAc6B,EAAGb,OAAK,IAC/D,QAoBF,OARAc,qBAAU,WAAO,IAADvC,EAAAwC,EAAAC,EACRC,EAEsG,QAFlG1C,EACQ,QADRwC,EACRxB,EAAYS,YAAI,IAAAe,IACL,OAAXvB,QAAW,IAAXA,GAAoG,QAAzFwB,EAAXxB,EAAa0B,MAAK,SAACC,GAAC,OAAKA,EAAEC,cAAgB7B,EAAY6B,aAAeD,EAAEE,QAAU9B,EAAY8B,KAAK,WAAC,IAAAL,OAAzF,EAAXA,EAAsGhB,YAAI,IAAAzB,IAC1G,GACF2B,EAAYe,EACd,GAAG,CAAC1B,EAAaC,IAGf/C,cAAA6E,WAAA,CAAA1E,SACG2C,GACCgC,eAAA,OAAKC,IAAKf,EAAa7D,SAAA,CACrB2E,eAACzD,EAAU,CAAAlB,SAAA,CACTH,cAAA,QAAMgB,UAAU,0BAAyBb,SAAC,YAC1C2E,eAACE,IAAM,CAAChE,UAAU,mBAAmBd,QAAQ,QAAQ+E,QAAS,kBAAMpB,GAASD,EAAK,EAAEmB,IAAKjB,EAAQ3D,SAAA,CAC/FH,cAAA,QAAAG,SAAOoC,EAAcC,KACpBM,EAAYoC,YAAcA,IAAUC,IAAMnF,cAACoB,EAAO,IAAMpB,cAACS,EAAS,UAGvET,cAACoF,IAAO,CACNC,WAAW,EACXC,OAAQxB,EAAQyB,QAChBC,UAAWxB,EAAauB,QACxBE,OAAQ,kBAAM5B,GAAQ,EAAM,EAC5BD,KAAMA,EACN8B,UAAU,SACVC,YAAY,EAAMxF,SAElBH,cAACkC,EAAiB,CAAC0D,GAAG,eAAehC,KAAMA,EAAKzD,SAC9CH,cAACmC,IAAQ0D,QAAO,CAAA1F,SACb2F,OAAOC,KAAK9B,GAAYE,KAAI,SAAC6B,GAAa,OACzClB,eAAA,OAAyB9D,UAAU,YAAWb,SAAA,CAC5CH,cAAA,OAAAG,SAAM6F,IACNhG,cAAA,OAAKgB,UAAU,oBAAmBb,SAC/B8D,EAAW+B,GAAe7B,KAAI,SAAC8B,EAAYC,GAAC,OAC3ClG,cAACgF,IAAM,CAEL9E,QAAQ,QACR+E,QAAS,kBA/CR,SAACkB,GACxB,GAAIA,IAAcrD,EAAYS,KAAM,CAClC,IAAM6C,EAAerD,EAAY0B,MAAK,SAACL,GAAE,OAAKA,EAAGQ,QAAUuB,CAAS,IACpE9C,EAAe+C,GACfvC,GAAQ,GACA,OAARb,QAAQ,IAARA,KAAWoD,EACb,CACF,CAwCuCC,CAAiBJ,EAAWrB,MAAM,EACjD5D,UAAS,YAAAsF,OAAcL,EAAWrB,QAAU9B,EAAY8B,MAAQ,SAAW,IAAKzE,SAE/E8F,EAAWf,YAAcA,IAAUC,IAAMnF,cAACoB,EAAO,IAAMpB,cAACS,EAAS,KAL7DyF,EAME,QAXLF,EAcJ,cASxB,E,8HC1FaO,GAAgCjF,YAAOrB,MAAOuG,MAAM,CAC/DtG,QAAS,WADkCoB,CAE3CE,MAAAC,YAAA,qHAQWgF,GAAyBnF,IAAOoF,KAAItE,MAAAX,YAAA,6CACtC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO+E,SAAS,IAInCC,GAAoCtF,IAAOC,IAAGsF,MAAApF,YAAA,QCA9CqF,GAAqB,SAAHxG,GAAsE,IAAhEyG,EAAWzG,EAAXyG,YAAWC,EAAA1G,EAAE2G,iBAAS,IAAAD,EAAGE,IAAmBC,KAAIH,EAC7EI,EAAaC,mBAAQ,kBAAMJ,IAAcC,IAAmBC,IAAI,GAAE,CAACF,IACnEK,EAAeC,cAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,GAAEG,MAGrCC,EAA1BC,qBAAWC,KADbC,sBAAyBC,EAAQJ,EAARI,SAAUC,EAAaL,EAAbK,cAGrC,OACEjD,eAAC8B,GAAiC,CAAAzG,SAAA,CAChCH,cAACgI,IAAG,CAAA7H,SACFH,cAACiI,IAAG,CAACC,GAAId,EAAa,CAAEV,KAAM,EAAGyB,OAAQ,GAAM,KAAKhI,SAClD2E,eAACyB,GAA6B,CAAApG,SAAA,CAC5BH,cAAA,QAAAG,SAAO4G,EAAYqB,QACnBtD,eAAA,QAAA3E,SAAA,CAAM,IAAEmH,EAAa,yBAA0B,sCAIrDtH,cAACgI,IAAG,CAAA7H,SACFH,cAACiI,IAAG,CAACC,GAAId,EAAa,CAAEV,KAAM,EAAGyB,OAAQ,GAAM,KAAMnH,UAAU,6BAA4Bb,SACxF2H,EACC9H,cAACqI,IAAO,CAACC,UAAU,SAASC,KAAK,WAEjCvI,cAACyG,GAAsB,CAACxB,QAAS8C,EAAc5H,SAC5CmH,EAAa,mBAAoB,4BAOhD,E,uCC3BakB,GAAoB,SAAHlI,GAMD,IAL3BmI,EAAWnI,EAAXmI,YACAC,EAAiCpI,EAAjCoI,kCACAC,EAAQrI,EAARqI,SACAC,EAAUtI,EAAVsI,WACAC,EAAYvI,EAAZuI,aAEiB9B,EAAgB0B,EAAzBK,QAOR,IAFInB,qBAAWC,KAHba,YACEK,QAAWC,aAIKL,EAClB,OACE1I,cAACgJ,KAAwB,CAAA7I,SACvBH,cAAC8G,GAAkB,CAACC,YAAaA,MASvC,OACE/G,cAACgJ,KAAwB,CAAA7I,SACvB2E,eAACkD,IAAG,CAACiB,WAAS,EAACjI,UAAU,oDAAmDb,SAAA,CAC1E2E,eAACmD,IAAG,CAACiB,GAAI,EAAGlI,UAAU,+BAA8Bb,SAAA,CAClDH,cAAA,OAAKgB,UAAU,iCAAiC4E,GAAE,WAAAU,OAAamC,EAAYK,QAAQK,OACnFnJ,cAACoJ,IAAa,CAACX,YAAaA,IAC3BI,GACC7I,cAACqJ,IAAKC,MAAK,CACT1D,GAAE,yBAAAU,OAA2BmC,EAAYK,QAAQS,YACjDvI,UAAU,iBACVwI,QAASZ,EACTa,QAAM,EACNzG,SAjBgB,SAAC0G,GAC3B,IAAQF,EAAYE,EAAEpE,OAAdkE,QACA,OAARb,QAAQ,IAARA,KAAWa,EACb,IAiBQxJ,cAAC2J,KAAkB,CACjBC,gBAAiBnB,EAAYK,QAAQS,WACrCM,MAAOpB,EAAYK,QAAQgB,mBAC3BC,aAAchD,EAAYiD,cAC1BC,OAAQlD,EAAYmD,YAGxBlK,cAACiI,IAAG,CAAA9H,SACF2E,eAACqF,GAA0B,CAAAhK,SAAA,CACzBH,cAACoK,KAAkB,CAAC3B,YAAaA,IACjCzI,cAACgI,IAAG,CAAChH,UAAU,8CAA6Cb,SAC1DH,cAACqK,KAAe,CAACnC,GAAI,GAAG/H,SACtBH,cAACsK,KAAe,CAACC,aAAc9B,EAAY+B,kCAQ3D,E,6BCrEaC,GAA0BnJ,IAAOC,IAAGC,MAAAC,YAAA,+DAKpCiJ,GAA+BpJ,YAAO0H,KAAP1H,CAAgCc,MAAAX,YAAA,w4BACxEkJ,KAQAC,KAYaC,KAAOC,iBAgBpBC,KAMAC,KAKAC,KAKAC,KAIAtE,GAMAuE,KAIAF,M,mECjFSG,GAAoC9J,YAAO+J,KAAP/J,CAAgCE,MAAAC,YAAA,8uBAoBlEoJ,KAAOC,kB,UCATQ,GAA8B,SAAHhL,GAA8D,IAAxD2J,EAAM3J,EAAN2J,OAAQsB,EAAiBjL,EAAjBiL,kBAAiBC,EAAAlL,EAAEuJ,aAAK,IAAA2B,GAAQA,EACpFC,EAA4F9D,qBAAW+D,MAA/FC,EAAgBF,EAAhBE,iBAAkBC,EAAaH,EAAbG,cAAeC,EAAeJ,EAAfI,gBAAiBC,EAAeL,EAAfK,gBAAiBC,EAAYN,EAAZM,aAC3E9I,EAAwCC,oBAAkB,GAAKC,EAAAC,YAAAH,EAAA,GAAxD+I,EAAY7I,EAAA,GAAE8I,EAAe9I,EAAA,GACpCG,EAAsCJ,mBAAiB,GAAEM,EAAAJ,YAAAE,EAAA,GAAlD4I,EAAW1I,EAAA,GAAE2I,EAAc3I,EAAA,GAC5B4I,EAAU/E,mBACd,kBAAY,OAAN4C,QAAM,IAANA,OAAM,EAANA,EAAQ9F,KAAI,SAACkI,GAAG,OAAA1L,wBAAA,GAAW0L,GAAG,IAAEC,SAAS,EAAMC,YAAa1C,EAAQ,GAAKwC,EAAIE,aAAW,GAAI,GAClG,CAACtC,IAEH5F,qBAAU,WACR,GAAIwH,GAAmBE,GAAgBD,IAAoBP,EAAmB,CAC5E,IAAIiB,EAAWJ,EAAQK,WAAU,SAACC,GAAC,OAAKA,EAAEC,KAAOd,CAAe,IAChEM,GAA6B,IAAdK,EAAkB,EAAIA,EACvC,CAEF,GAAG,CAACX,EAAiBO,IAErB,IAMMQ,EAAuB,SAAChH,GAC5BwG,EAAQ3H,MAAK,SAAC4H,GAAG,OAAKA,EAAIM,KAAO/G,CAAE,IAAE0G,SAAU,EAC/CL,GAAgB,EAClB,EAEA,OAAKG,GAA8B,IAAnBA,EAAQS,OAUtB7M,cAACoL,GAAiC,CAACpK,UAAU,QAAOb,UAC1C,OAAPiM,QAAO,IAAPA,OAAO,EAAPA,EAASS,QAAS,EACjB/H,eAAAD,WAAA,CAAA1E,SAAA,CACEH,cAAA,QAAMgB,UAAU,sBAAqBb,SAAA,GAAAmG,OAAK4F,EAAc,EAAC,OAAA5F,OAAM8F,EAAQS,UACvE7M,cAAC8M,KAAQ,CACP9L,UAAW+L,IAAW,QAAS,CAAE,gBAAiBf,IAClDgB,SAAU,KACVC,YAAY,EACZC,SAAUlN,cAACmN,KAAe,CAACC,KAAMC,KAAgBC,KAAK,OACtDC,SAAUvN,cAACmN,KAAe,CAACC,KAAMI,KAAeF,KAAK,OACrDpB,YAAaA,EACbvD,SAhCW,SAAC8E,GACpBtB,EAAesB,GAEfxB,EAAgBG,EAAQqB,GAAenB,QACzC,EA4BiCnM,SAEtBiM,EAAQjI,KAAI,SAACkI,EAAKqB,GAAG,OACpB1N,cAAC8M,KAASa,KAAI,CAAAxN,SACZH,cAAC4N,iBAAa,CACZC,IAAKxB,EAAIC,QAAUD,EAAIyB,oBAAsBzB,EAAI0B,SAAWC,KAC5DC,IAAK5B,EAAIE,YACTvL,UAAW+L,IAAW,CAAE,WAAYf,IACpCkC,QAAS,SAAApM,GAAgBA,EAAbqM,cACIC,QAAU,KACxBxB,EAAqBP,EAAIM,GAC3B,EACA1H,QAAS,WACH+G,IACFJ,EAAcQ,GACdT,IAAmBU,EAAI0B,SAAU3B,EAAQF,GAAaS,GAAIpB,GAE9D,KAdgBmC,EAgBJ,SAKtB1N,cAAC4N,iBAAa,CACZ5M,UAAW+L,IAAW,QAAS,CAAE,gBAAiBf,IAClD6B,IAAKzB,EAAQ,GAAGE,QAAUF,EAAQ,GAAG0B,oBAAsB1B,EAAQ,GAAG2B,SAAWC,KACjFC,IAAK7B,EAAQ,GAAGG,YAChB2B,QAAS,SAAA7L,GAAgBA,EAAb8L,cACIC,QAAU,KACxBxB,EAAqBR,EAAQ,GAAGO,GAClC,EACA1H,QAAS,WACH+G,IACFJ,EAAcQ,GACdT,IAAmBS,EAAQ,GAAG2B,SAAU3B,EAAQ,GAAGO,GAAIpB,GAE3D,MAxDJvL,cAACoL,GAAiC,CAACpK,UAAU,QAAOb,SAElDH,cAAA,OAAK6N,IAAKG,KAAYhN,UAAU,UAAUiN,IAAI,cA2DtD,E,0FCzFaI,GAAoB,SAAH/N,GAMD,IAL3BmI,EAAWnI,EAAXmI,YACAC,EAAiCpI,EAAjCoI,kCACAC,EAAQrI,EAARqI,SACAC,EAAUtI,EAAVsI,WACAC,EAAYvI,EAAZuI,aAEQyF,EAAqB/G,eAArB+G,iBACSvH,EAAgB0B,EAAzBK,QAGOC,EAEXpB,qBAAWC,KAHba,YACEK,QAAWC,YAITwF,EAAcD,EAAiB,sDAAmE,KAExG,IAAKvF,GAAeL,EAClB,OACE1I,cAAC0K,GAA4B,CAAAvK,SAC3BH,cAAC8G,GAAkB,CAACC,YAAaA,EAAaE,UAAWC,IAAmBsH,SASlF,OACExO,cAAC0K,GAA4B,CAAAvK,SAC3B2E,eAACqF,GAA0B,CAACnJ,UAAU,oDAAmDb,SAAA,CACvF2E,eAAA,OAAK9D,UAAU,+BAA8Bb,SAAA,CAC3CH,cAAA,OAAKgB,UAAU,iCAAiC4E,GAAE,WAAAU,OAAamC,EAAYK,QAAQK,OACnFnJ,cAACoJ,IAAa,CAACX,YAAaA,IAC3BI,GACC7I,cAACqJ,IAAKC,MAAK,CACT1D,GAAE,yBAAAU,OAA2BmC,EAAYK,QAAQS,YACjDvI,UAAU,iBACVwI,QAASZ,EACTa,QAAM,EACNzG,SAhBgB,SAAC0G,GAC3B,IAAQF,EAAYE,EAAEpE,OAAdkE,QACA,OAARb,QAAQ,IAARA,KAAWa,EACb,IAiBQxJ,cAACsL,GAA2B,CAC1BrB,OAAQlD,EAAYmD,OACpBqB,kBAAmB9C,EAAYK,QAAQS,WACvCM,MAAOpB,EAAYK,QAAQgB,wBAG/B9J,cAACyO,KAAc,CAAChG,YAAaA,IAC7BzI,cAAC0O,KAAmB,CAACjG,YAAaA,IAClCzI,cAAC2O,KAAU,CAAAxO,SAAEsI,EAAYK,QAAQK,MACjCnJ,cAAC4O,KAAiB,CAAC7H,YAAa0B,EAAYK,QAASyF,WAAYA,IACjEvO,cAAC6O,KAAW,IACZ/J,eAAC6F,KAA8B,CAAAxK,SAAA,CAC7B2E,eAAC2F,GAAuB,CAAAtK,SAAA,CACtB2E,eAAA,OAAK9D,UAAU,mDAAkDb,SAAA,CAC/DH,cAAC8O,KAAW,CAACC,UAAU,UACvB/O,cAACgP,KAAY,OAEflK,eAAA,OAAA3E,SAAA,CACEH,cAACiP,KAAqB,IACtBjP,cAACkP,KAAU,IACXlP,cAACmP,KAAmB,UAGxBnP,cAACoP,KAAoB,WAK/B,E,mBC1FaC,GAAoB/N,IAAOC,IAAGC,MAAAC,YAAA,uOASvC6N,KACqBC,KAQzBF,GAAkBG,YAAc,oBAEzB,IAAMC,GAAkBnO,IAAOC,IAAGa,MAAAX,YAAA,oCAI5BiO,GAAyBpO,IAAOC,IAAGsF,MAAApF,YAAA,kJAC5CkO,KAEqB3N,KAOZ4N,GAAsBtO,IAAOC,IAAGsO,MAAApO,YAAA,yrCAMtBC,KAoBV,SAAApB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,GAezBG,KAkBV,SAAAF,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAWtB,SAAAQ,GAAQ,OAAAA,EAALV,MAAkBC,OAAOC,OAAO,IAShDsI,GAA6B7I,IAAOC,IAAGuO,MAAArO,YAAA,2GAOvCsO,GAAgCzO,YAAO0G,IAAP1G,CAAW0O,MAAAvO,YAAA,qMAGjCQ,IAEjBkJ,KAGA8E,MAKOC,GAA2B5O,IAAOC,IAAG4O,MAAA1O,YAAA,Q,oBCxGrC2O,GAAc,SAAH9P,GAaT,IAZb+P,EAAK/P,EAAL+P,MACAC,EAAahQ,EAAbgQ,cACAC,EAAYjQ,EAAZiQ,aACAC,EAAkBlQ,EAAlBkQ,mBACAC,EAAcnQ,EAAdmQ,eAAcC,EAAApQ,EACdoI,yCAAiC,IAAAgI,GAAQA,EAAAC,EAAArQ,EACzCsQ,6BAAqB,IAAAD,GAAQA,EAC7BE,EAAiBvQ,EAAjBuQ,kBACAC,EAAcxQ,EAAdwQ,eACAjI,EAAYvI,EAAZuI,aAAYkI,EAAAzQ,EACZ0Q,wBAAgB,IAAAD,GAAOA,EAAAE,EAAA3Q,EACvB4Q,0BAAkB,IAAAD,EAAG,CAAEE,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGnJ,GAAI,GAAG+I,EAEpDxF,EACE9D,qBAAW2J,MADLC,EAAW9F,EAAX8F,YAAaC,EAAe/F,EAAf+F,gBAAiBC,EAAahG,EAAbgG,cAAeC,EAAgBjG,EAAhBiG,iBAAkBC,EAAgBlG,EAAhBkG,iBAE/DhG,EAAqBhE,qBAAW+D,MAAhCC,iBACRiG,EChDsC,SAItCtB,EACAuB,GAEA,IAAAC,EAWIC,aACF,kBAAMzB,EAAcuB,GAAyB,IAAIG,IAAsBC,KAAsC,GAC7G,CAAC3B,EAAeuB,IACjBK,EAAAJ,EAbCK,KAAIC,OAAA,IAAAF,EAOA,CAAC,EAACA,EANJG,EAAKD,EAALC,MACcC,EAAYF,EAA1BG,aACaxP,EAAWqP,EAAxBI,YACQC,EAAML,EAAdM,OACAC,EAAUP,EAAVO,WACAC,EAAUR,EAAVQ,WAEFC,EAAOf,EAAPe,QAQF,MAAO,CAAEC,QAPAhB,EAAPgB,QAOgBD,UAASP,eAAcS,SAFpBC,YAAYX,GAAzBU,SAE2ChQ,cAAa0P,SAAQE,aAAYC,aACtF,CD8BMK,CACF3C,EACAjJ,mBAAQ,WACN,OAAKkJ,EAEL5P,wBAAA,GACK4P,GACA,IAAIyB,IAAsBR,EAAiBD,EAAaE,IAJnC,IAAIO,IAAsBR,EAAiBD,EAAaE,EAMpF,GAAG,CAAClB,EAAciB,EAAiBD,EAAaE,KAfhDoB,EAAOjB,EAAPiB,QACA9P,EAAW6O,EAAX7O,YACAgQ,EAAQnB,EAARmB,SACAD,EAAOlB,EAAPkB,QACcI,EAAqBtB,EAAnCU,aACAK,EAAUf,EAAVe,WAaFb,EACEC,aAAS,kBACPvB,EACIA,EAAmB,IAAIwB,IAAsBR,EAAiBD,EAAaE,IAC3E0B,QAAQC,QAAQ,CAAC,EAA2C,IACjElB,EAAAJ,EALKK,KAAsBkB,QAAlB,IAAAnB,EAA6C,CAAC,EAACA,GAA3CK,aAAiFe,GAAYxB,EAArBe,QAaxFxO,qBAAU,WACRsN,GAAiB,SAACnK,GAChBA,EAAM+L,WAAaZ,CACrB,GACF,GAAG,CAACA,EAAYhB,IAEhB,IAAA1O,GAAkCC,mBAC/BsQ,eAAeC,QAAQC,IAAkBC,oBAA6CzM,IAAmBC,MAC3GhE,GAAAC,YAAAH,GAAA,GAFMgE,GAAS9D,GAAA,GAAEyQ,GAAYzQ,GAAA,GAG9BkB,qBAAU,WACRmP,eAAeK,QAAQH,IAAkBC,kBAAmB1M,GAC9D,GAAG,CAACA,GAAW2M,KAEf,IAiCIE,GACAC,GAlCEC,GAAsB,OAARjB,QAAQ,IAARA,OAAQ,EAARA,EAAUkB,OAAM,SAACC,GAAI,OACvCxC,EAAiBjN,MAAK,SAAC0P,GAAU,OAAKA,IAAeD,EAAKpL,QAAQS,UAAU,GAAC,IAyB/ElF,qBAAU,WACR+P,OAAOC,SAAS,CACdC,IAAK,EACLC,SAAU,UAEd,GAAG,CAACtN,KAIAA,KAAcC,IAAmBC,MACnC2M,GAAW,CAAE3C,GAAI,IACjB4C,GAAOvL,KAEPsL,GAAW5C,EACX6C,GAAO1F,IA+BT,OAdAhK,qBAAU,WACR,IAAY,OAAR0O,QAAQ,IAARA,OAAQ,EAARA,EAAUlG,QAAS,EAAG,CACxB,IAAI2H,EAAazB,EAAS5O,KAAI,SAAC+P,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,IAC/DiK,eAAeK,QAAQH,IAAkBe,kBAAmBC,KAAKC,UAAUH,GAC7E,MACEhB,eAAeoB,WAAWlB,IAAkBe,kBAEhD,GAAG,CAAC1B,IAEJ1O,qBAAU,WACRsH,GAAiB,EAAO,KAAM,KAEhC,GAAG,CAAC4E,EAAciB,EAAiBD,EAAaE,IAG9C3M,eAAAD,WAAA,CAAA1E,SAAA,CACG0S,GAAW7S,cAAC6U,IAAa,IAC1B/P,eAAC4K,GAAsB,CAAAvP,SAAA,CACrBH,cAAC8U,KAAgB,CACfC,aAAc1E,EACd2E,UAAgC,OAArB9B,QAAqB,IAArBA,IAAyB,EACpC+B,iBAAiB,EACjBC,gBAAiB,EACjBC,aACErQ,eAAC8K,GAAmB,CAAAzP,SAAA,CACjB0I,IAA8B,OAAdiI,QAAc,IAAdA,OAAc,EAAdA,EAAiBY,EAAkBqB,IACnDO,GACCtT,cAACoV,IAAM,IAEP3E,GACAA,EAAeD,EAA2C,OAAtB6C,QAAsB,IAAtBA,IAA0B,EAAyB,OAArBH,QAAqB,IAArBA,IAAyB,GAE5FA,EAAwB,IAAgB,OAAXnQ,QAAW,IAAXA,OAAW,EAAXA,EAAa8J,QAAS,GAClD7M,cAAC2C,EAAI,CAACG,YAAa2O,EAAe1O,YAAaA,EAAaC,SA9GjD,SAACqS,GACxB1D,GAAiB,SAACnK,GAChBA,EAAMiK,cAAgB4D,EACtB7N,EAAMkK,iBAAmB,EAC3B,GACF,IA2GY5M,eAAA,QAAM9D,UAAU,aAAYb,SAAA,CAC1BH,cAACsV,IAAO,CACNC,MAAM,OACNvU,UAAW+L,IAAW,CAAEyI,OAAQvO,KAAcC,IAAmBC,OACjElC,QAAS,kBAAM2O,GAAa1M,IAAmBC,KAAK,IAEtDnH,cAACsV,IAAO,CACNC,MAAM,OACNvU,UAAW+L,IAAW,CAAEyI,OAAQvO,KAAcC,IAAmBsH,OACjEvJ,QAAS,kBAAM2O,GAAa1M,IAAmBsH,KAAK,YAO7DuE,GACC/S,cAACqP,GAAiB,CAACrO,UAAW+L,IAAW,CAAE,OAAQlE,KAAkBiI,IAAkB3Q,UAC5E,OAAR4S,QAAQ,IAARA,OAAQ,EAARA,EAAUlG,QAAS,EAClB/H,eAAAD,WAAA,CAAA1E,SAAA,CACG0I,KAAkBiI,GACjB9Q,cAACyP,GAAe,CAAAtP,SACdH,cAACqJ,IAAKC,MAAK,CACTG,QAAM,EACN7D,GAAG,6BACH5C,SAjHI,WACtB2O,GAAiB,SAACnK,GAEdA,EAAMkK,iBADJsC,GACuB,GAEAjB,EAAS5O,KAAI,SAAC+P,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,GAE3E,GACF,EA0GoBC,QAASwK,GACTyB,MAAO,iBAIbzV,cAACgI,IAAG,CAAA7H,SACD4S,EAAS5O,KAAI,SAAC+P,EAAMwB,GAAK,OACxBC,wBAAC1N,IAAGtH,wBAAA,CAACK,UAAU,iBAAoB8S,IAAQ,IAAE8B,IAAG,GAAAtP,OAAKW,GAAS,KAAAX,OAAIoP,EAAK,KAAApP,OAAI4N,EAAKpL,QAAQK,OACtFnJ,cAAC6V,IAAsB,CACrBpN,YAAayL,EACb4B,cAAelF,EACfmF,YAAajD,EACbkD,aAAc5V,IACd6G,UAAWA,GAAU9G,SAErBH,cAAC+T,GAAI,CACHlL,aAAcA,KAAkBiI,EAChCnI,SAAU,SAACa,GAAO,OA1Hd,SAACyM,EAAoBzM,GAC3CA,GAAWkI,EAAiBhP,QAAQuT,GAAc,GACpDtE,GAAiB,SAACnK,GAChBA,EAAMkK,iBAAgB,GAAApL,OAAA4P,YAAOxE,GAAgB,CAAEuE,GACjD,KAGGzM,GAAWkI,EAAiBhP,QAAQuT,IAAe,GACtDtE,GAAiB,SAACnK,GAChBA,EAAMkK,iBAAmBA,EAAiByE,QAAO,SAACjC,GAAI,OAAKA,IAAS+B,CAAU,GAChF,GAEJ,CA8G+CG,CAAoBlC,EAAKpL,QAAQS,WAAYC,EAAQ,EAC5Ed,kCAAmCA,EACnCD,YAAayL,EACbtL,WAAY8I,EAAiBhP,QAAQwR,EAAKpL,QAAQS,aAAe,MAGjE,MAGTyH,GACChR,cAACqW,IAAM,CACL9E,YAAaA,EACbC,gBAAiBA,EACjB8E,kBAlGQ,SAACC,GACrBA,IAAiBhF,EAAc,GAEnCI,GAAiB,SAACnK,GAChBA,EAAM+J,YAAcgF,EAAe,CACrC,GACF,EA6FkBC,sBA1GY,SAACC,GAC7B9E,GAAiB,SAACnK,GAChBA,EAAM+J,YAAc,EACpB/J,EAAMgK,gBAAkBkF,OAAOD,EACjC,GACF,EAsGkBlD,WAAYZ,OAKlB3S,cAAC2W,IAAU,CAACC,QAAS/F,SAK7B7Q,cAAC6W,IAAY,MAGnB,C,sVE/PaC,EAAQ,SAACC,EAAkBC,GACtC,IAAMC,EAAY,CAChBC,WAAY,WACZH,SAAUA,EACVC,SAAUA,GAEZ,OAAOG,YAA0D,SAAU,CACzEC,KAAM,IAAIC,gBAAgBJ,GAAWK,WACrCC,KAAM,aAEV,EAMaC,EAAoB,SAACT,GAChC,OAAOU,YAAU,GAAAnR,OAA6BoR,IAAW,wCAAApR,OAAuCyQ,GAClG,EACaY,EAAoB,SAACZ,EAAkBa,EAAgBC,GAClE,IAAMC,EAAgB,CACpBf,SAAUA,EACVa,OAAQA,EACRG,aAAcF,GAEhB,OAAOJ,YAAU,GAAAnR,OAAYoR,IAAW,+BAAApR,OAA8B0R,YAAkBF,IAC1F,EAEaG,EAAgB,WAC3B,OAAOR,YAAU,GAAAnR,OAAuBoR,IAAW,gBACrD,EAMaQ,EAAU,eAAA5X,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAOC,EAAgBC,GAAmB,OAAAJ,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAG,OAAA,SAC3DpB,YAAU,iCAAAnR,OAA2CiS,EAAM,kBAAAjS,OAAiBkS,KAAa,wBAAAE,EAAAI,OAAA,GAAAR,EAAA,KACjG,gBAFsBS,EAAAC,GAAA,OAAA1Y,EAAA2Y,MAAA,KAAAC,UAAA,KAIVC,EAAoB,eAAArX,EAAAqW,YAAAC,cAAAC,MAAG,SAAAe,EAAOC,GAAgB,OAAAjB,cAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,cAAAU,EAAAT,OAAA,SAClDpB,YAAU,iDAAAnR,OAAqE+S,KAAW,wBAAAC,EAAAR,OAAA,GAAAM,EAAA,KAClG,gBAFgCG,GAAA,OAAAzX,EAAAmX,MAAA,KAAAC,UAAA,KAIpBM,EAAe,eAAAnX,EAAA8V,YAAAC,cAAAC,MAAG,SAAAoB,EAAOJ,EAAkBK,GAAW,OAAAtB,cAAAK,MAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAd,OAAA,SAC1D1B,YAAS,2CAAA7Q,OAAqD+S,EAAQ,SAAA/S,OAAQoT,KAAM,wBAAAC,EAAAb,OAAA,GAAAW,EAAA,KAC5F,gBAF2BG,EAAAC,GAAA,OAAAxX,EAAA4W,MAAA,KAAAC,UAAA,KAIfY,EAAkB,eAAAxX,EAAA6V,YAAAC,cAAAC,MAAG,SAAA0B,EAAOC,GAAuB,OAAA5B,cAAAK,MAAA,SAAAwB,GAAA,cAAAA,EAAAtB,KAAAsB,EAAArB,MAAA,cAAAqB,EAAApB,OAAA,SACvD1B,YAAS,oCAA+C,CAAEC,KAAM4C,KAAU,wBAAAC,EAAAnB,OAAA,GAAAiB,EAAA,KAClF,gBAF8BG,GAAA,OAAA5X,EAAA2W,MAAA,KAAAC,UAAA,I,iICHhBiB,MA7Cf,WAA+C,IAAxBC,EAAalB,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,IAAAA,UAAA,GAClCjW,EAA4BC,mBAASkX,GAAcjX,EAAAC,YAAAH,EAAA,GAA5CqX,EAAMnX,EAAA,GAAEoX,EAASpX,EAAA,GAyCxB,OAtCAqX,2BAAgB,WACd,GAAKF,EAAL,CAKA,IAAMG,EAAmBC,SAAStD,KAAKuD,MAAMC,SACvCC,EAAuBH,SAAStD,KAAKuD,MAAMG,aAGjDJ,SAAStD,KAAKuD,MAAMC,SAAW,SAG/B,IAAMG,EAAOL,SAASM,eAAe,QAC/BC,EAAiBF,EAAOA,EAAKG,YAAcH,EAAKI,YAAc,EAOpE,OAJIF,IACFP,SAAStD,KAAKuD,MAAMG,aAAY,GAAAxU,OAAM2U,EAAc,OAG/C,WACLP,SAAStD,KAAKuD,MAAMC,SAAWH,EAE3BQ,IACFP,SAAStD,KAAKuD,MAAMG,aAAeD,EAEvC,CAxBA,CAyBF,GAAG,CAACP,IAGJjW,qBAAU,WACJiW,IAAWF,GACbG,EAAUH,EAGd,GAAG,CAACA,IAEG,CAACE,EAAQC,EAClB,E,gBCvCaa,EAAgBC,wBAA8B,CAAC,GAE/CC,EAAwB,SAAHhb,GAAmD,IAA7CH,EAAQG,EAARH,SACtC8C,EAA8CC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAA/DsY,EAAepY,EAAA,GAAEqY,EAAkBrY,EAAA,GAC1CG,EAAgCJ,oBAAkB,GAAMM,EAAAJ,YAAAE,EAAA,GAAjDmY,EAAQjY,EAAA,GAAEkY,EAAWlY,EAAA,GACpB3C,EAAU8a,cAAV9a,MAUR,OARA2Z,2BAAgB,WACV3Z,GAAS6V,OAAOhV,IAAiBka,QAAQ,OAAQ,MACnDJ,GAAmB,EAEvB,GAAG,CAAC3a,IAEJsZ,EAAcoB,GAGZvb,cAACob,EAAcS,SAAQ,CACrBC,MAAO,CACLP,kBACAC,qBACAC,WACAC,eACAvb,SAEDA,GAGP,C,uKChBamR,EAAqB+J,wBAAmC,MAExDU,EAA6B,SAAHzb,GAA8C,IAAxCH,EAAQG,EAARH,SACrC6b,EAAWC,cAEjB5U,mBAAQ,WACN,IAAM6U,EAAQC,YAAuCH,EAASI,QACrD,OAALF,QAAK,IAALA,KAAOG,aACTC,aAEJ,GAAG,CAACN,EAASI,SAEb,IAAAnZ,EAA0BC,mBAAQvC,wBAAA,GAC7B4b,eAAqB,IACxB7K,iBAAkB,MAClBvO,EAAAC,YAAAH,EAAA,GAHKuE,EAAKrE,EAAA,GAAEqZ,EAAQrZ,EAAA,GAQtB,OAAOnD,cAACsR,EAAmBuK,SAAQ,CAACC,MAAKnb,wBAAA,GAAO6G,GAAK,IAAEmK,iBAH9B,SAAC8K,GACxBD,EAASE,YAAQlV,EAAOiV,GAC1B,IAC0Etc,SAAEA,GAC9E,C,kCC3CA,giBAAO,IAAMwc,EAAY,UACZC,EAAiB,UACjBC,EAAuB,OAEvBC,EAAuB,UAGvBC,EAAc,UACdC,EAAe,UACfC,EAAgB,OAEhBC,EAAkB,CAC7BhU,GAAI,QACJhB,GAAI,QACJmJ,GAAI,QACJD,GAAI,SACJ+L,IAAK,UAIMzb,GADwBwb,EAAgBC,IACrBD,EAAgB9L,IACnCpP,EAAckb,EAAgBhU,GAC9BqG,EAAe2N,EAAgBhV,GAC/BjG,EAAcib,EAAgB7L,GAE9B+L,EAAe,OACfC,EAA4B,UAE5BC,EAA4B,KAG5BC,EAAmB,G,iVCvBnBC,EAAelc,IAAOC,IAAGC,MAAAC,YAAA,6EAMzBgc,EAAenc,IAAOC,IAAGa,MAAAX,YAAA,6GAEhB,SAAAnB,GAAA,IAAGmb,EAAQnb,EAARmb,SAAU9Z,EAAKrB,EAALqB,MAAK,OAAQ8Z,EAAW9Z,EAAMC,OAAOC,QAAU,IAAI,IAClF,SAAAC,GAAW,OAAAA,EAAR2Z,UAEHiC,YAAG7W,MAAApF,YAAA,4EAEUoJ,KAAO8S,aAEnB,IAGD,SAAAtb,GAAW,OAAAA,EAARoZ,SAA2BmC,EAAkB,IAAI,IAGlDC,EAAgBC,YAASjO,MAAApO,YAAA,6DAKlBmc,EAAkBF,YAAG5N,MAAArO,YAAA,6CACnBoc,GAEFE,EAAiBzc,IAAOC,IAAGyO,MAAAvO,YAAA,sXAMjByb,IAAgB7L,IAYnC,SAAA/O,GAAW,OAAAA,EAARmZ,SAECiC,YAAGvN,MAAA1O,YAAA,wOAMoByb,IAAgB7L,IAIvCqM,YAAGM,MAAAvc,YAAA,2GAE6B,SAAAwc,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOsc,SAAS,GACpE,IAEIC,EAAmB7c,IAAOC,IAAIiF,MAAM,CAC/CxF,UAAW,mBADmBM,CAE9B8c,MAAA3c,YAAA,kXACe,SAAA4c,GAAQ,OAAAA,EAAL1c,MAAkB2c,MAAMC,WAAW,GAKhCrB,IAAgB7L,GACjCmN,IACEC,IASevB,IAAgB7L,IAM1BqN,EAAapd,IAAOC,IAAGod,MAAAld,YAAA,2BAIvBmd,EAAqBtd,IAAOC,IAAGsd,MAAApd,YAAA,yYAa9B,SAAAqd,GAAW,OAAAA,EAARrD,SAA2B,UAAY,oBAAoB,IAI9D,SAAAsD,GAAW,OAAAA,EAARtD,SAA2B,OAAS,oBAAoB,GAIlDyB,IAAgB7L,G,kHC1H1B2N,EAAmB,SAACC,EAAkBC,EAAkBC,GACnE,IAAMC,EAAOD,GAAcF,EAAWC,GAAYC,EAClD,OAAOC,IAASD,EAAYF,EAAWA,EAAWG,CACpD,EAEaC,EAAe,SAACvD,EAAewD,GAC1C,IAAKxD,GAAmB,IAAVA,EACZ,MAAO,GAGT,IAAMyD,EAAa5e,YAAA,CACjB6e,sBAAuB,GACpBF,GAKL,OAFe,IAAIG,KAAKC,aAAa,QAASH,GAEhCI,OAAO7D,EACvB,C,mCClBA,aAMO,IAAM8D,EANb,OAMmBC,EACJD,K,mCCPf,8OAAO,IAAME,EAAa,8BACbC,EAAe,6FACfC,EACX,wHACWC,EAAe,eACfC,EACX,2JAIWC,EAAiB,0CACjBC,EAA8B,kB,uMCJ9BC,EAAyB/e,YAAOgf,IAAPhf,CAAaE,MAAAC,YAAA,kyGA6BpC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO2e,eAAe,IAuG3C,SAAAze,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IASxB,SAAAQ,GAAQ,OAAAA,EAALV,MAAkBC,OAAO4e,WAAW,IAErC,SAAAle,GAAQ,OAAAA,EAALX,MAAkBC,OAAOC,OAAO,IAwBlC,SAAAoc,GAAe,OAAAA,EAAZwC,YAA+B,I,wDCvJlDC,EAAmB,SAAHpgB,GAAmF,IAA7EsD,EAAItD,EAAJsD,KAAM6B,EAAMnF,EAANmF,OAAQwE,EAAM3J,EAAN2J,OAAQ0W,EAASrgB,EAATqgB,UAAW5U,EAAYzL,EAAZyL,aAClE9I,EAAoDC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAAxD2d,EAAkBzd,EAAA,GAAE0d,EAAqB1d,EAAA,GAChDG,EAAoCJ,mBAAS,GAAEM,EAAAJ,YAAAE,EAAA,GAAxCwd,EAAUtd,EAAA,GAAEud,EAAavd,EAAA,GAChCE,EAAgCR,mBAAS8d,KAAqBrd,EAAAP,YAAAM,EAAA,GAAvDud,EAAQtd,EAAA,GAAEud,EAAWvd,EAAA,GAC5Bwd,EAAkCje,mBAA4B,MAAKke,EAAAhe,YAAA+d,EAAA,GAA5DE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GACtBG,EAAsB5Z,qBAAW+D,GAAjC6V,kBACA1gB,EAAU8a,cAAV9a,MAER2Z,2BAAgB,WACV3Z,GAAS0c,IACX2D,EAAYM,KACH3gB,GAASyc,IAClB4D,EAAYF,KACPE,EAAYO,KACnBH,EAAaI,gBAAMzX,EAAQgX,GAE7B,GAAG,CAAChX,EAAQgX,EAAUpgB,IAEtBwD,qBAAU,WACR,IAAMsd,EAAmB,OAAN1X,QAAM,IAANA,OAAM,EAANA,EAAQwC,WAAU,SAACC,GAAC,OAAKA,EAAEC,KAAOgU,CAAS,IACxDiB,EAA0B,OAATP,QAAS,IAATA,OAAS,EAATA,EAAW5U,WAAU,SAACC,GAAC,OAAKA,EAAEjI,MAAK,SAACod,GAAC,OAAKA,EAAElV,KAAOgU,CAAS,GAAC,IACpFE,GAAsC,IAAhBc,EAAoB,EAAIA,GAC9CZ,GAAkC,IAApBa,EAAwB,EAAIA,EAG5C,GAAG,CAACjB,EAAWU,IAEf,IAAMS,EAAoB,SAACH,GAAwB,IAADI,EAChDlB,EAAsBC,EAAaG,EAAWU,GAC9CJ,EAA4D,QAA3CQ,EAAC9X,EAAO6W,EAAaG,EAAWU,UAAW,IAAAI,OAAA,EAA1CA,EAA4CpV,GAChE,EA+BA,OACE7H,eAACub,EAAsB,CACrBzc,KAAMA,EACN6B,OAAQ,kBAAMA,GAAQ,EACtBuc,SAAS,SACTvB,aAAcQ,EACdgB,eAAgBlW,EAAa5L,SAAA,CAE7BH,cAAA,UAAQgB,UAAW,YAAaiE,QAAS,kBAAMQ,GAAQ,EAACtF,SAAC,MAGzD2E,eAACwb,IAAM4B,KAAI,CAAA/hB,SAAA,CACTH,cAAA,OAAKgB,UAAU,kBAAiBb,SAC9BH,cAACmiB,IAAgB,CACfC,cAAc,EACdC,aAAc,EACdC,mBAAoB,CAAEC,MAAO,EAAGC,MAAO,GACvCC,cAAe,CACbC,UAAU,GACVviB,SAED,SAAA2B,GAAA,IAAA6gB,EAAAC,EAAAC,EAAAC,EAAAC,EAAGC,EAAMlhB,EAANkhB,OAAQC,EAAOnhB,EAAPmhB,QAASC,EAAcphB,EAAdohB,eAAc,OACjCpe,eAACqe,WAAQ,CAAAhjB,SAAA,CACPH,cAAA,OAAKgB,UAAU,iBAAiBoiB,OAAQ,kBAAMF,EAAe,EAAE,EAAC/iB,SAC9DH,cAACqjB,IAAkB,CAAAljB,SACjBH,cAAA,OACE6N,IAAyC,QAAtC8U,EAA4B,QAA5BC,EAAE3Y,EAAO2W,UAAmB,IAAAgC,OAAA,EAA1BA,EAA4B7U,gBAAQ,IAAA4U,IAA8B,QAA9BE,EAAI5Y,EAAO2W,UAAmB,IAAAiC,OAAA,EAA1BA,EAA4BS,cACzErV,IAAI,SAIVnJ,eAAA,OAAK9D,UAAU,aAAYb,SAAA,CACzBH,cAAA,OACE6N,IAAK0V,KAAeC,WACpBvV,IAAI,UACJjN,UAAU,cACViE,QAAS,SAACyE,GAAC,OAAKsZ,GAAQ,IAE1BhjB,cAAA,OACE6N,IAAK0V,KAAeE,YACpBxV,IAAI,WACJjN,UAAU,eACViE,QAAS,kBAAMge,GAAS,OAG5BjjB,cAAA,QACEgB,UAAU,eACViE,QAAS,YA5DA,WACvB,GAAI2b,EAAqB,EAAI,EAAG,CAAC,IAAD8C,EAC9B3C,EAAcM,EAAUxU,OAAS,GACjCgU,EAAsB5W,EAAO4C,OAAS,GACtC0U,EAA2C,QAA1BmC,EAACzZ,EAAOA,EAAO4C,OAAS,UAAE,IAAA6W,OAAA,EAAzBA,EAA2B/W,GAC/C,KAAO,CACLkU,EAAsBD,EAAqB,GAC3C,IAAM+C,EAAU1Z,EAAO2W,EAAqB,GAAGjU,GAC/CoU,EAAcM,EAAU5U,WAAU,SAACC,GAAC,OAAKA,EAAEjI,MAAK,SAACod,GAAC,OAAKA,EAAElV,KAAOgX,CAAO,GAAC,KACxEpC,EAAkBoC,EACpB,CACF,CAkDkBC,GACAV,EAAe,EACjB,EAAE/iB,SAEFH,cAACmN,IAAe,CAACC,KAAMI,IAAeF,KAAK,SAE7CtN,cAAA,QACEgB,UAAU,WACViE,QAAS,YAjFJ,WACnB,GAAI2b,EAAqB,GAAK3W,EAAO4C,OACnCgU,EAAsB,GACtBE,EAAc,OACT,CACLF,EAAsBD,EAAqB,GAC3C,IAAM+C,EAAU1Z,EAAO2W,EAAqB,GAAGjU,GAC/CoU,EAAcM,EAAU5U,WAAU,SAACC,GAAC,OAAKA,EAAEjI,MAAK,SAACod,GAAC,OAAKA,EAAElV,KAAOgX,CAAO,GAAC,KACxEpC,EAAkBoC,EACpB,CACF,CAwEkBE,GACAX,EAAe,EACjB,EAAE/iB,SAEFH,cAACmN,IAAe,CAACC,KAAMC,IAAgBC,KAAK,SAE9CtN,cAAA,QAAMgB,UAAU,kBAAiBb,UACJ,QAA1B2iB,EAAA7Y,EAAO2W,UAAmB,IAAAkC,OAAA,EAA1BA,EAA4BgB,0BAAoD,QAA9Bf,EAAI9Y,EAAO2W,UAAmB,IAAAmC,OAAA,EAA1BA,EAA4BxW,iBAE5E,OAIV,OAANtC,QAAM,IAANA,OAAM,EAANA,EAAQ4C,QAAS,GAAKd,GACrB/L,cAAA,OAAKgB,UAAU,mBAAkBb,SAC/BH,cAAC8M,IAAQ,CACPZ,YAAa4U,EACb7T,YAAY,EACZD,SAAU,KACVrE,SAzGa,SAAC8E,GACxBsT,EAActT,EAChB,EAwGYP,SAAUlN,cAACmN,IAAe,CAACC,KAAMC,IAAgBC,KAAK,OACtDC,SAAUvN,cAACmN,IAAe,CAACC,KAAMI,IAAeF,KAAK,OAAQnN,SAE5DkhB,EAAUld,KAAI,SAAC8F,EAAQ8Z,GAAS,OAC/B/jB,cAAC8M,IAASa,KAAI,CAAAxN,SACZH,cAACgI,IAAG,CAACiB,WAAS,EAAA9I,SACX8J,EAAO9F,KAAI,SAAC+P,EAAMyN,GAAU,OAC3B3hB,cAACiI,IAAG,CAAA9H,SACFH,cAAC4N,gBAAa,CACZ5M,UAAW4f,IAAuBmD,EAAY9C,EAAWU,EAAa,WAAa,GACnF9T,IAAKqG,EAAKnG,SAAWmG,EAAKnG,SAAWmG,EAAKoP,cAC1CU,OAAO,OACP/V,IAAKiG,EAAK3H,YACVtH,QAAS,WACP6c,EAAkBH,EACpB,EACAtR,MAAO6D,EAAK4P,wBAA0B5P,EAAK3H,eATrCoV,EAWJ,OAdQoC,EAiBJ,aAQhC,EClLarY,EAAgB2P,wBAA8B,CAAC,GAE/C4I,EAAwB,SAAH3jB,GAAmD,IAA7CH,EAAQG,EAARH,SACtC8C,EAAoCC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAArDihB,EAAU/gB,EAAA,GAAEghB,EAAahhB,EAAA,GAChCG,EAA4BJ,mBAA0B,MAAKM,EAAAJ,YAAAE,EAAA,GAApD2G,EAAMzG,EAAA,GAAE4gB,EAAS5gB,EAAA,GACxBE,EAA8CR,qBAAkBS,EAAAP,YAAAM,EAAA,GAAzDmI,EAAelI,EAAA,GAAE0gB,EAAkB1gB,EAAA,GAC1Cwd,EAA8Cje,qBAAkBke,EAAAhe,YAAA+d,EAAA,GAAzDrV,EAAesV,EAAA,GAAEkD,EAAkBlD,EAAA,GAC1CmD,EAAwCrhB,oBAAkB,GAAKshB,EAAAphB,YAAAmhB,EAAA,GAAxDxY,EAAYyY,EAAA,GAAEC,EAAeD,EAAA,GAgBpC,OACE1f,eAAC4G,EAAcmQ,SAAQ,CACrBC,MAAO,CACLnQ,iBAjBmB,SAAC+Y,EAAiBf,EAAiB/Z,GAC1Dua,EAAcO,GACdL,EAAmBV,GACnBW,EAAmB1a,EACrB,EAcMgC,cAZgB,SAAC3B,GAA6D,IAApCgY,IAAuB/I,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,KAAAA,UAAA,GACrEkL,EAAUna,GACVwa,EAAgBxC,EAClB,EAUMV,kBAToB,SAAC3b,GACzBye,EAAmBze,EACrB,EAQMiG,kBACAC,kBACAC,gBACA5L,SAAA,CAEFH,cAAC0gB,EAAgB,CACf9c,KAAMsgB,EACNze,OAAQ,WACN0e,GAAc,GACdC,EAAU,GACZ,EACAna,OAAQA,EACR0W,UAAW9U,EACXE,aAAcA,IAEf5L,IAGP,C,wHC9CawkB,E,MAAkBC,IAAsB,SAACC,EAAKC,GAAG,MAAM,CAClEC,QAAQ,WAAD,IAAAC,EAAA7M,YAAAC,cAAAC,MAAE,SAAAC,IAAA,OAAAF,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAECqM,EAAEC,WAAWC,IAAIC,QAAQC,UAAS,OAGpCJ,EAAEC,WAAWC,IAAIvf,IACnBif,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAE8d,aAAcL,EAAEC,WAAWC,IAAIvf,IAAE,IAC9D8S,EAAAE,KAAA,eAAAF,EAAAC,KAAA,EAAAD,EAAA6M,GAAA7M,EAAA,SAED8M,QAAQC,MAAM,wCAAuC,wBAAA/M,EAAAI,OAAA,GAAAR,EAAA,kBAExD,yBAAA0M,EAAA/L,MAAA,KAAAC,UAAA,EAXO,GAYRwM,gBAAgB,WAAD,IAAAC,EAAAxN,YAAAC,cAAAC,MAAE,SAAAe,IAAA,OAAAhB,cAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,OACfqM,EAAEC,WAAWC,IAAIS,UAAS,WACxBhG,IAAIiG,KAAK,gCACThB,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAEse,qBAAqB,GAAK,GACxD,IAEAb,EAAEC,WAAWC,IAAIY,gBAAe,WAC9BnG,IAAIiG,KAAK,oCACX,IAEAZ,EAAEC,WAAWC,IAAIa,cAAa,SAACxe,GAC7B,IAAMye,EAAmB,CACvB,EAAG,aACH,EAAG,YACH,EAAG,eACH,EAAG,gBAELrG,IAAIiG,KACF,2CACEI,EAAiBze,EAAM0e,UACvB,QACAD,EAAiBze,EAAM2e,WAEJ,IAAnB3e,EAAM2e,WACR3S,eAAeoB,WAAWlB,IAAkB0S,iCAC5CvB,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAEse,qBAAqB,GAAK,IAGlDb,EAAEC,WAAWC,IAAIvf,IACnBif,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAE8d,aAAcL,EAAEC,WAAWC,IAAIvf,IAAE,IAGnE,IAEAqf,EAAEC,WAAWC,IAAIkB,aAAY,WAC3BzG,IAAIiG,KAAK,wBACThB,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAEse,qBAAqB,GAAK,GACxD,IAEAb,EAAEC,WAAWC,IAAImB,cAAa,WAC5B,IAAIC,EAA8B/S,eAAeC,QAAQC,IAAkB0S,iCACxC,MAA/BG,IACFA,EAA8B,KAEhC,IAAIC,EAAaC,SAASF,GAC1B3G,IAAIiG,KAAK,qCAAuCW,GAC5CA,EAAa,GACfA,IACAhT,eAAeK,QAAQH,IAAkB0S,gCAAiCI,EAAWlP,YACrFwN,IAAMC,WAENF,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAEse,qBAAqB,GAAI,GAEzD,IAAE,wBAAAxM,EAAAR,OAAA,GAAAM,EAAA,KACH,yBAAAuM,EAAA1M,MAAA,KAAAC,UAAA,EAtDe,GAuDhBwN,uBAAwB,SAAC9iB,GAAc,OAAKihB,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAEse,oBAAqBliB,GAAI,GAAI,EACrG+iB,UAAU,WAAD,IAAAC,EAAAzO,YAAAC,cAAAC,MAAE,SAAAoB,EAAOoN,GAAa,OAAAzO,cAAAK,MAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,WACzBkM,IAAMQ,aAAa,CAAD3L,EAAAf,KAAA,eAAAe,EAAAf,KAAA,EACdqM,EAAEC,WAAW4B,gBAAgBC,OAAOJ,UAAUE,GAAKxB,UAAS,wBAAA1L,EAAAb,OAAA,GAAAW,EAAA,KAErE,gBAAAV,GAAA,OAAA6N,EAAA3N,MAAA,KAAAC,UAAA,EAJS,GAKX,G,yFC/EY8N,E,MAAsBpC,IAA0B,SAACC,EAAKC,GAAG,MAAM,CAC1EmC,yBAA0B,KAC1BC,4BAA2B,SAACpe,GAC1B+b,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GACL6G,GAAK,IACRyf,yBAA0Bne,GAAO,GAErC,EACAqe,OAAQ,mBAAQrC,IAAMmC,wBAAwB,EAC/C,G,uMCfYG,EAAsB9lB,IAAO+lB,EAAC7lB,MAAAC,YAAA,qD,eCI9B6lB,EAAgB,WAC3B,IAAA7b,EAKI9D,qBAAWC,KAHAmB,EAAW0C,EADxBhD,YACEK,QAAWC,YAAWrB,EAAA+D,EAExB5D,sBAAyBE,EAAaL,EAAbK,cAAeD,EAAQJ,EAARI,SAG1C,OACE9H,cAAConB,EAAmB,CAAAjnB,SACjB2H,EACC9H,cAACqI,IAAO,CAACC,UAAU,SAASC,KAAK,WAEjCvI,cAAA,OAAKiF,QAAS8C,EAAc5H,UACxB4I,GAAeA,GAAe,EAC9BjE,eAAA,QAAA3E,SAAA,CACEH,cAACsV,IAAO,CAACC,MAAM,MAAMgS,MAAM,YAAY,WAIzCziB,eAAA,QAAA3E,SAAA,CACEH,cAACsV,IAAO,CAACC,MAAM,cAAcgS,MAAM,YAAY,gBAQ7D,E,iCClBapc,EAAsB7J,IAAOC,IAAGC,MAAAC,YAAA,QAKhCgN,EAAiB,SAAHnO,GAAiC,IAADknB,EAAAC,EAA1Bhf,EAAWnI,EAAXmI,YAC/BgD,EAMI9D,qBAAWC,KAJAiH,EAAWpD,EADxBhD,YACEK,QAAW+F,YAEb6Y,EAAcjc,EAAdic,eACAC,EAAUlc,EAAVkc,WAGIC,EADWrgB,aAAe,SAACC,GAAK,OAAKA,EAAMqgB,QAAQ,GACtCA,CAASC,IAAMC,eAC5B/L,EAAWC,cACX+L,EAAqF,SAApE7L,YAAuCH,EAASI,QAAQ6L,QACzEC,EAAcC,YAAwBC,IAAmBC,iBAAmBL,IAAmBL,EAE7FW,EAAoBC,cAApBD,gBAeR,OACExjB,eAACqG,EAAmB,CAACnK,UAAU,WAAUb,SAAA,CACtC+nB,GACCloB,cAAA,OACEgB,UAAU,kBAEV,iBAAAsF,OAA2B,OAAXmC,QAAW,IAAXA,GAAoB,QAATgf,EAAXhf,EAAaK,eAAO,IAAA2e,OAAT,EAAXA,EAAsBte,KACtC,eAAa,YAFG,OAAXV,QAAW,IAAXA,GAAoB,QAAT+e,EAAX/e,EAAaK,eAAO,IAAA0e,OAAT,EAAXA,EAAsBre,KAM9Bye,GACC9iB,eAAC0jB,IAAS,CACRvjB,QA1BqB,WAC3BqjB,EAAgB,GAADhiB,OAAI8N,OAAOqU,QAAQC,SAAQ,aAAa,CACrD,CAAEC,YAAalgB,EAAYkgB,YAAaxf,IAAKV,EAAYK,QAAQK,MAErE,EAuBQyf,KAAI,iCAAAtiB,OAAmCmC,EAAYK,QAAQK,KAC3DkH,MAAO,+BAA+BlQ,SAAA,CACvC,aAECH,cAACmN,IAAe,CAACnM,UAAU,OAAOoM,KAAMyb,SAG5C/jB,eAACE,IAAM,CAAC8jB,GAAI,IAAK5oB,QAAS,OAAQ+E,QAAS,kBA3B7CyiB,GAAe,QACfY,EAAgB,GAADhiB,OAAI8N,OAAOqU,QAAQC,SAAQ,OAAApiB,OAAQuI,EAAc,YAAc,YAAc,CAC1F,CAAE8Z,YAAalgB,EAAYkgB,YAAaxf,IAAKV,EAAYK,QAAQK,MAyBA,EAAChJ,SAAA,CAChEH,cAACmN,IAAe,CAACnM,UAAU,OAAOoM,KAAM2b,MACrCla,EAAc,YAAc,eAE/BmZ,GAAkBhoB,cAACsnB,EAAa,MAGxC,C,wGC1Ea0B,EAAe,SAACC,GAC3B,IAAAC,EAAmC3hB,cAA3B4hB,EAAUD,EAAVC,WAAYC,EAAUF,EAAVE,WAEpBnmB,EAA8BC,mBAAiBmmB,YAAYF,EAAYC,EAAY,IAAIE,KAAKL,KAAU9lB,EAAAC,YAAAH,EAAA,GAA/FsmB,EAAOpmB,EAAA,GAAEqmB,EAAUrmB,EAAA,GAC1BG,EAA0BJ,mBAAiB+lB,EAAU,IAAO,MAAKzlB,EAAAJ,YAAAE,EAAA,GAA1DmmB,EAAKjmB,EAAA,GAAEkmB,EAAQlmB,EAAA,GAoBtB,OAlBAa,qBAAU,WAENqlB,EADET,EACO,IAEA,KAEb,GAAG,CAACA,ICfqB,SAACU,EAAsBF,GAChD,IAAMG,EAAgB7lB,iBAAO4lB,GAG7BtlB,qBAAU,WACRulB,EAAcrkB,QAAUokB,CAC1B,GAAG,CAACA,IAGJtlB,qBAAU,WAER,GAAc,OAAVolB,EAAJ,CAIA,IAAM7jB,EAAKikB,aAAY,kBAAMD,EAAcrkB,SAAS,GAAEkkB,GAEtD,OAAO,kBAAMK,cAAclkB,EAAG,CAJ9B,CAKF,GAAG,CAAC6jB,GACN,CDHEM,EAAY,WACV,IAAM3K,EAAOiK,YAAYF,EAAYC,EAAY,IAAIE,KAAKL,IAEtD7J,EAAO,EACToK,EAAWpK,IAEXoK,EAAW,GACXE,EAAS,MAEb,GAAGD,GAEI,CACLF,UAEJ,C,mCEhCA,kHAEanB,EAAqB,CAChC4B,2BAA4B,6BAC5BC,0BAA2B,4BAC3B5B,cAAe,wBAGJF,EAA0B,SAAC+B,GACtC,MAA8C,OAA3B,OAAZC,UAAY,IAAZA,SAAY,EAAZA,IAAcC,eAAeF,GACtC,EAEa5b,EAAmB,SAAC4b,GAC/B,OAAmB,OAAZC,UAAY,IAAZA,SAAY,EAAZA,IAAcC,eAAeF,EACtC,C,+NCTazL,EAAgBnd,IAAOC,IAAGC,MAAAC,YAAA,qhDAK1BoJ,KAAOwf,KAEAC,KASP,SAAAhqB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO2e,eAAe,GAC/BrD,IAAgB7L,IAC1B,SAAAvP,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAGnC,SAAAQ,GAAQ,OAAAA,EAALV,MAAkBC,OAAOC,OAAO,GACvBqb,IAAgB7L,IAC1B,SAAA/O,GAAQ,OAAAA,EAALX,MAAkBC,OAAOC,OAAO,IAKrC,SAAAoc,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOC,OAAO,GAEvBqb,IAAgB7L,IAC1B,SAAAgN,GAAQ,OAAAA,EAAL1c,MAAkBC,OAAOC,OAAO,GAK7Bqb,IAAgB7L,IACf,SAAAyN,GAAQ,OAAAA,EAALnd,MAAkBC,OAAO2oB,oBAAoB,IAEvD,SAAAxL,GAAO,OAAAA,EAAJnb,KAAqB,gBAAkB,kBAAkB,GAM9DiH,KAAO2f,cAYa,SAAAC,GAAQ,OAAAA,EAAL9oB,MAAkBC,OAAOsc,SAAS,IAClC,SAAAwM,GAAQ,OAAAA,EAAL/oB,MAAkBC,OAAOsc,SAAS,IAYtD,SAAAyM,GAAQ,OAAAA,EAALhpB,MAAkBC,OAAOgpB,SAAS,IAc7CC,EAAsBvpB,IAAOoF,KAAItE,MAAAX,YAAA,2cAa1B,SAAAqpB,GAAQ,OAAAA,EAALnpB,MAAkBC,OAAOC,OAAO,GAOhCqb,IAAgB7L,IAIjB,SAAA0Z,GAAQ,OAAAA,EAALppB,MAAkBC,OAAOC,OAAO,IAK5C2c,EAAeld,IAAOC,IAAGsF,MAAApF,YAAA,8EAKzBupB,EAAwB1pB,IAAO+lB,EAACxX,MAAApO,YAAA,4cAEtByb,IAAgB7L,IAkBxB,SAAA4Z,GAAQ,OAAAA,EAALtpB,MAAkBC,OAAOgpB,SAAS,IAIxBtpB,IAAOC,IAAGuO,MAAArO,YAAA,icAcvB,SAAAypB,GAAQ,OAAAA,EAALvpB,MAAkBC,OAAOgpB,SAAS,IAErC,SAAAO,GAAQ,OAAAA,EAALxpB,MAAkBC,OAAO+E,SAAS,GAQ7BuW,IAAgB7L,G,mCC3KvC,qFAea+Z,EAAS,SAAH9qB,GAA2F,IAArFmV,EAAKnV,EAALmV,MAAOzU,EAASV,EAATU,UAAWd,EAAOI,EAAPJ,QAASmrB,EAAe/qB,EAAf+qB,gBAAiB1O,EAASrc,EAATqc,UAAWtM,EAAK/P,EAAL+P,MAAOpL,EAAO3E,EAAP2E,QAC/EtD,EAAQ2pB,cACRC,EAAUlkB,mBACd,iBACc,SAAZnH,EACIyB,EAAMC,OAAO4pB,0BACD,YAAZtrB,EACAyB,EAAMC,OAAO6pB,6BACD,YAAZvrB,EACAyB,EAAMC,OAAO8pB,6BACD,WAAZxrB,EACAyB,EAAMC,OAAO+pB,4BACbN,CAAe,GACrB,CACEnrB,EACAyB,EAAMC,OAAO4pB,0BACb7pB,EAAMC,OAAO6pB,6BACb9pB,EAAMC,OAAO8pB,6BACb/pB,EAAMC,OAAO+pB,4BACbN,IAGEO,EAAWvkB,mBACf,iBACc,SAAZnH,EACIyB,EAAMC,OAAOiqB,UACD,YAAZ3rB,EACAyB,EAAMC,OAAOkqB,aACD,YAAZ5rB,EACAyB,EAAMC,OAAOmqB,aACD,WAAZ7rB,EACAyB,EAAMC,OAAOoqB,YACbrP,CAAS,GACf,CACEzc,EACAyB,EAAMC,OAAOiqB,UACblqB,EAAMC,OAAOkqB,aACbnqB,EAAMC,OAAOmqB,aACbpqB,EAAMC,OAAOoqB,YACbrP,IAIJ,OACE3c,cAACisB,IAAY,CACXZ,gBAAiBE,EACjB5O,UAAWiP,EACX5qB,UAAW+L,IAAW/L,EAAW,CAAEkrB,UAAWC,QAAQlnB,KACtDoL,MAAOA,EACPpL,QAASA,EAAQ9E,SAEjB2E,eAAA,OAAK9D,UAAU,SAAQb,SAAA,CACrBH,cAAA,QAAMgB,UAAU,eAAcb,SAAEsV,IAChCzV,cAAA,OAAKgB,UAAU,oBAIvB,C,qFC9DeorB,IARE,SAAH9rB,GAAmD,IAA7CH,EAAQG,EAARH,SAAaksB,EAASC,YAAAhsB,EAAAisB,GACxC,OACEvsB,cAACwsB,IAAiB7rB,wBAAA,GAAK0rB,GAAS,IAAAlsB,SAC9BH,cAAA,OAAAG,SAAMA,MAGZ,C,mCCRA,gGAwBassB,EAAoB,SAAHnsB,GAAA,IAC5ByU,EAAYzU,EAAZyU,aACA/T,EAASV,EAATU,UACAiE,EAAO3E,EAAP2E,QACAynB,EAAQpsB,EAARosB,SACAzX,EAAe3U,EAAf2U,gBACAD,EAAS1U,EAAT0U,UACA2X,EAAWrsB,EAAXqsB,YACAxX,EAAY7U,EAAZ6U,aAAYyX,EAAAtsB,EACZusB,sBAAc,IAAAD,EAAG,EAACA,EAAAE,EAAAxsB,EAClB4U,uBAAe,IAAA4X,EAAG,EAACA,EAAA,OAEnB9sB,cAAC+sB,IAAuB,CAAC/rB,UAAS,GAAAsF,OAAKtF,EAAS,qBAAoBb,SAClE2E,eAACkD,IAAG,CAAChH,UAAU,aAAYb,SAAA,CACzBH,cAACiI,IAAG,CAACC,IAAE,EAACmJ,GAAI,EAAGrQ,UAAU,iBAAgBb,SACvC2E,eAACkoB,IAA4B,CAAChsB,UAAU,gBAAgBiE,QAASA,EAASinB,YAAajnB,EAAQ9E,SAAA,CAC7E,OAAf8U,QAAe,IAAfA,IAAoByX,EAAW1sB,cAACitB,IAAa,IAAMjtB,cAACktB,IAAc,IAClEnY,EACAC,GAAa,GAAC,KAAA1O,OAAS0O,EAAS,UAGpC2X,GACC3sB,cAACiI,IAAG,CAACC,IAAE,EAACmJ,GAAIwb,EAAe1sB,SACzBH,cAAC2P,IAA6B,CAAC3O,UAAU,iBAAgBb,SAAEwsB,MAG9DxX,GACCnV,cAACiI,IAAG,CAACC,IAAE,EAACmJ,GAAI6D,EAAiBlU,UAAU,mBAAkBb,SACvDH,cAAC2P,IAA6B,CAAC3O,UAAU,+DAA8Db,SACpGgV,UAKe,C,8GCxDfgY,EAAuB,SAAChb,GACA,IAADib,EAAV,kBAAbC,WACTA,SAASC,mBAAmB,SAAqB,QAAbF,EAAEjb,EAAKob,cAAM,IAAAH,OAAA,EAAXA,EAAa9V,YACnD+V,SAASC,mBAAmB,WAAYnb,EAAKqb,UAC7CH,SAASC,mBAAmB,YAAanb,EAAKsb,kBAC9CJ,SAASC,mBAAmB,YAAanb,EAAKub,gBAElD,E,mCCsBanmB,EAAiBqd,KAAwB,SAACC,EAAKC,GAAG,MAAM,CACnE6I,gBAA6B,OAAZxD,UAAY,IAAZA,SAAY,EAAZA,IAAcwD,gBAC/BC,WAAY,CAAC,EACbC,OAAoB,OAAZ1D,UAAY,IAAZA,SAAY,EAAZA,IAAc0D,OACtBC,YAAyB,OAAZ3D,UAAY,IAAZA,SAAY,EAAZA,IAAc2D,YAC3BC,UAAuB,OAAZ5D,UAAY,IAAZA,SAAY,EAAZA,IAAc4D,UACzBC,MAAO,GACP5D,eAAgB,CAAC,EACjB6D,cAA2B,OAAZ9D,UAAY,IAAZA,SAAY,EAAZA,IAAc8D,cAC7BC,UAAuB,OAAZ/D,UAAY,IAAZA,SAAY,EAAZA,IAAc+D,UAEzB/E,WAAY,IAAIG,KAChBF,WAAY,IAAIE,KAEhB6E,eAAe,WAAD,IAAAC,EAAAjW,YAAAC,cAAAC,MAAE,SAAAC,IAAA,IAAA+V,EAAAC,EAAA,OAAAlW,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACUX,cAAe,QAAjCoW,EAAS3V,EAAA6V,QAGPD,EAAYE,YAAUH,EAAUI,WACtCtB,EAAqBkB,GACrBxJ,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GACL6G,GAAK,IACRomB,WAAYS,EACZN,UAASptB,wBAAA,GAAO6G,EAAMumB,WAAcO,EAAUP,WAC9CC,MAAO,GAAA1nB,OAAA4P,YAAI1O,EAAMwmB,OAAK9X,YAAKoY,EAAUN,OAAK9X,YAAKmY,EAAUvG,QAAO3jB,KAAI,SAACuqB,GAAI,OAAKA,EAAKC,aAAa,IAChGvE,eAAgBkE,EAAUlE,eAC1BjB,WAAY,IAAIG,KAAK+E,EAAUO,gBAAc,KAEhD,wBAAAlW,EAAAI,OAAA,GAAAR,EAAA,KACF,yBAAA8V,EAAAnV,MAAA,KAAAC,UAAA,EAfc,GAgBf5R,aAAc,SAACsO,EAAKiZ,GAClB,IAAMd,EAAYjJ,IAAMiJ,UACxB,OAAIA,GAAanY,GACRmY,EAAUnY,IAEZiZ,CACT,EACAhH,SAAU,SAACjS,GACT,IAAMoY,EAAQlJ,IAAMkJ,MACpB,QAAIA,GACKA,EAAMc,SAASlZ,EAAImZ,oBAG9B,EACAzgB,iBAAkB,SAACsH,GACjB,IAAMwU,EAAiBtF,IAAMsF,eAC7B,OAAIA,GACKA,EAAexU,IAEjB,EACT,EAEAoZ,WAAY,WACVnK,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GACL6G,GAAK,IACRymB,mBAAe5T,GAAS,GAE5B,EACD,G,qDC1Ec4S,IAff,SAAuBvsB,GACrB,OACEV,cAAA,MAAAW,wBAAA,CACEC,MAAM,6BACNC,MAAO,GACPC,OAAQ,GACRC,KAAK,eACLC,UAAU,8CACNN,GAAK,IAAAP,SAETH,cAAA,QAAMmB,EAAE,kHAGd,C,qDCEe+rB,IAff,SAAwBxsB,GACtB,OACEV,cAAA,MAAAW,wBAAA,CACEC,MAAM,6BACNC,MAAO,GACPC,OAAQ,GACRC,KAAK,eACLC,UAAU,+CACNN,GAAK,IAAAP,SAETH,cAAA,QAAMmB,EAAE,oHAGd,C,mCCbA,mIAIa8tB,EAAwB,SAACC,GACpC,OAAOC,WAAWD,EAAUtT,QAAQ,KAAM,IAC5C,EACawT,EAAa,SAAC/e,GACzB,OAAOgf,oBAAUC,oBAAUjf,GAC7B,EACakf,EAAY,SAACC,GACxB,IACE,OAAOC,YAAMD,EACf,CAAE,MAAO/J,GACP7F,IAAI6F,MAAMA,EACZ,CAEA,OAAO,IACT,C,gFCbarc,EAAgB,SAAH9I,GAAiC,IAADknB,EAAAC,EAAAiI,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAA1BroB,EAAWnI,EAAXmI,YACxBsoB,EAAgB,CACpBC,IAAgB,OAAXvoB,QAAW,IAAXA,GAAoB,QAAT+e,EAAX/e,EAAaK,eAAO,IAAA0e,OAAT,EAAXA,EAAsBre,IAC3B8nB,KAAiB,OAAXxoB,QAAW,IAAXA,GAAoB,QAATgf,EAAXhf,EAAaK,eAAO,IAAA2e,OAAT,EAAXA,EAAsByJ,UAC5BC,KAAiB,OAAX1oB,QAAW,IAAXA,GAAoB,QAATinB,EAAXjnB,EAAaK,eAAO,IAAA4mB,OAAT,EAAXA,EAAsByB,KAC5BC,MAAkB,OAAX3oB,QAAW,IAAXA,GAAoB,QAATknB,EAAXlnB,EAAaK,eAAO,IAAA6mB,OAAT,EAAXA,EAAsByB,MAC7BC,UAAsB,OAAX5oB,QAAW,IAAXA,GAAoB,QAATmnB,EAAXnnB,EAAaK,eAAO,IAAA8mB,OAAT,EAAXA,EAAsB0B,WACjCC,YAAwB,OAAX9oB,QAAW,IAAXA,GAAoB,QAATonB,EAAXpnB,EAAaK,eAAO,IAAA+mB,OAAT,EAAXA,EAAsB2B,aACnCC,OAAmB,OAAXhpB,QAAW,IAAXA,GAAoB,QAATqnB,EAAXrnB,EAAaK,eAAO,IAAAgnB,OAAT,EAAXA,EAAsB4B,gBAC9BC,QAAoB,OAAXlpB,QAAW,IAAXA,GAAoB,QAATsnB,EAAXtnB,EAAaK,eAAO,IAAAinB,OAAT,EAAXA,EAAsB4B,QAC/BplB,YAAwB,OAAX9D,QAAW,IAAXA,GAAoB,QAATunB,EAAXvnB,EAAaK,eAAO,IAAAknB,OAAT,EAAXA,EAAsB5nB,MACnCwpB,KAAiB,OAAXnpB,QAAW,IAAXA,GAAoB,QAATwnB,EAAXxnB,EAAaK,eAAO,IAAAmnB,OAAT,EAAXA,EAAsBqB,WAC5BO,MAAkB,OAAXppB,QAAW,IAAXA,GAAoB,QAATynB,EAAXznB,EAAaK,eAAO,IAAAonB,OAAT,EAAXA,EAAsB4B,eAC7BC,eAA2B,OAAXtpB,QAAW,IAAXA,GAAoB,QAAT0nB,EAAX1nB,EAAaK,eAAO,IAAAqnB,OAAT,EAAXA,EAAsB6B,aACtCC,sBAAkC,OAAXxpB,QAAW,IAAXA,GAAoB,QAAT2nB,EAAX3nB,EAAaK,eAAO,IAAAsnB,OAAT,EAAXA,EAAsB8B,oBAC7CC,UAAsB,OAAX1pB,QAAW,IAAXA,GAAoB,QAAT4nB,EAAX5nB,EAAaK,eAAO,IAAAunB,OAAT,EAAXA,EAAsB8B,UACjCC,SAAqB,OAAX3pB,QAAW,IAAXA,GAAoB,QAAT6nB,EAAX7nB,EAAaK,eAAO,IAAAwnB,OAAT,EAAXA,EAAsBqB,QAChCU,OAAmB,OAAX5pB,QAAW,IAAXA,GAAoB,QAAT8nB,EAAX9nB,EAAaK,eAAO,IAAAynB,OAAT,EAAXA,EAAsB+B,WAC9BC,MAAM,WAADjsB,OAAa8N,OAAO4H,SAASwW,SAAQ,aAAAlsB,OAAuB,OAAXmC,QAAW,IAAXA,GAAoB,QAAT+nB,EAAX/nB,EAAaK,eAAO,IAAA0nB,OAAT,EAAXA,EAAsBjnB,YAC5EkpB,OAAO,WAADnsB,OAAa8N,OAAO4H,SAASwW,SAAQ,aAAAlsB,OAAuB,OAAXmC,QAAW,IAAXA,GAAoB,QAATgoB,EAAXhoB,EAAaK,eAAO,IAAA2nB,OAAT,EAAXA,EAAsBlnB,YAC7EmpB,aAAyB,OAAXjqB,QAAW,IAAXA,GAAoB,QAATioB,EAAXjoB,EAAaK,eAAO,IAAA4nB,OAAT,EAAXA,EAAsBiC,WACpCC,QAAoB,OAAXnqB,QAAW,IAAXA,GAAoB,QAATkoB,EAAXloB,EAAaK,eAAO,IAAA6nB,OAAT,EAAXA,EAAsBkC,UAC/BC,UAAsB,OAAXrqB,QAAW,IAAXA,GAAoB,QAATmoB,EAAXnoB,EAAaK,eAAO,IAAA8nB,OAAT,EAAXA,EAAsBmC,iBACjCC,cAAc,GAAD1sB,OAAgB,OAAXmC,QAAW,IAAXA,GAAoB,QAATooB,EAAXpoB,EAAaK,eAAO,IAAA+nB,OAAT,EAAXA,EAAsBoC,uBAAsB,MAAA3sB,OAAgB,OAAXmC,QAAW,IAAXA,GAAoB,QAATqoB,EAAXroB,EAAaK,eAAO,IAAAgoB,OAAT,EAAXA,EAAsBiC,kBACzFG,OAAmB,OAAXzqB,QAAW,IAAXA,OAAW,EAAXA,EAAaK,QAAQqqB,mBAG/B,OACEnzB,cAAA,OAAKgB,UAAU,yBAAyB2Z,MAAO,CAAEyY,QAAS,QAASjzB,SAChEuU,KAAKC,UAAUoc,IAGtB,C,yNClCasC,EAAwB/xB,YAAOgyB,IAAPhyB,CAA6BE,MAAAC,YAAA,yGACvD,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO2e,eAAe,I,OCEzCgT,EAAkB,SAAHjzB,GAAuC,IAAjCkzB,EAAYlzB,EAAZkzB,aAAc9Z,EAAGpZ,EAAHoZ,IAC9C,OACE5U,eAACuuB,EAAqB,CAAAlzB,SAAA,CACpBH,cAAA,MAAIgB,UAAU,QAAOb,SAAEqzB,IACvBxzB,cAAA,MAAIgB,UAAU,MAAKb,SAAEuZ,MAG3B,E,mCCKa+Z,EAAmB,SAAHnzB,GASd,IARbozB,EAAYpzB,EAAZozB,aACAje,EAAKnV,EAALmV,MACAjR,EAAIlE,EAAJkE,KACA8a,EAAOhf,EAAPgf,QACAtc,EAAQ1C,EAAR0C,SAAQ2wB,EAAArzB,EACRoiB,gBAAQ,IAAAiR,GAAQA,EAChBC,EAAatzB,EAAbszB,cAAaC,EAAAvzB,EACbwzB,gBAAQ,IAAAD,GAAQA,EAEVE,EAASC,cACTC,GACG,OAAP3U,QAAO,IAAPA,OAAO,EAAPA,EAAS7a,MAAK,SAACyvB,GAAM,IAAAC,EAAA,OAAKD,EAAOpY,SAAgB,OAANiY,QAAM,IAANA,GAAc,QAARI,EAANJ,EAAQK,cAAM,IAAAD,OAAR,EAANA,EAAiB3vB,GAAK,OAC1D,OAAP8a,QAAO,IAAPA,OAAO,EAAPA,EAAS7a,MAAK,SAACyvB,GAAM,OAAKA,EAAOpY,QAAU8X,CAAa,KAE1D,OACE9uB,eAACwuB,IAAqB,CAAAnzB,SAAA,CACpBH,cAACqJ,IAAKgrB,MAAK,CAACC,QAAS9vB,EAAMxD,UAAW8yB,GAAY,WAAW3zB,SAC1DsV,IAEHzV,cAACu0B,IAAM,CACLC,QAAShwB,EACTA,KAAMA,EACNiwB,WAAY/R,EACZpD,QAASA,EACTxD,MAAOwD,EAAU2U,EAAgB,GACjCjxB,SAAU,SAACkxB,GACH,OAANH,QAAM,IAANA,KAAQW,cAAclwB,EAAM0vB,EAAOpY,OAC3B,OAAR9Y,QAAQ,IAARA,KAAWkxB,EAAOpY,MACpB,IAED4X,GACC1zB,cAACC,IAAK,CAACC,QAAQ,SAASc,UAAU,iBAAgBb,SAChDH,cAACC,IAAM00B,QAAO,CAAAx0B,SAAEuzB,MAInBK,EAAOa,OAAOpwB,IAASuvB,EAAOc,QAAQrwB,IACrCxE,cAAC80B,IAAsB,CAAA30B,SAAE4zB,EAAOa,OAAOpwB,OAI/C,ECrDauwB,EAAwB,SAAHz0B,GAAsC,IAAhCmV,EAAKnV,EAALmV,MAAOyZ,EAAS5uB,EAAT4uB,UAC7C,OACElvB,cAACszB,IAAqB,CAAAnzB,SACpB2E,eAACuE,IAAK2rB,MAAK,CAACC,UAAWxf,EAAMtV,SAAA,CAC3BH,cAACqJ,IAAKgrB,MAAK,CAAAl0B,SAAEsV,IACbzV,cAACqJ,IAAK6rB,QAAO,CAACl0B,UAAU,kBAAkBuW,KAAK,OAAO4d,YAAajG,EAAW,aAAYA,EAAWkG,UAAQ,QAIrH,E,iBCZaC,EAA+B/zB,YAAOgyB,IAAPhyB,CAA6BE,MAAAC,YAAA,gkBA8B5D6zB,EAAwBh0B,YAAO0D,IAAP1D,CAAcc,MAAAX,YAAA,kGAEvC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO2zB,WAAW,I,kCCjBtCC,EAAyB,SAAHl1B,GAMpB,IALbm1B,EAAen1B,EAAfm1B,gBACAC,EAAqBp1B,EAArBo1B,sBACAC,EAAmBr1B,EAAnBq1B,oBACAC,EAAat1B,EAAbs1B,cAAajC,EAAArzB,EACboiB,gBAAQ,IAAAiR,GAAQA,EAEVI,EAASC,cACf/wB,EAA0CC,mBAASmc,YAAauW,IAAezyB,EAAAC,YAAAH,EAAA,GAAxE4yB,EAAa1yB,EAAA,GAAE2yB,EAAgB3yB,EAAA,GAEtC,SAAS4yB,EAAgBC,GACjB,OAANjC,QAAM,IAANA,KAAQW,cAAc,YAAasB,GAAW,GAC9CF,EAAiBzW,YAAa2W,GAChC,CAEA,IAAMC,EAAwB,SAACD,GAE3BD,EADEC,EAAYJ,EACEI,EAGAJ,EAEpB,EAOA,OALAvxB,qBAAU,WACRyxB,EAAiBzW,YAAmB,OAAN0U,QAAM,IAANA,OAAM,EAANA,EAAQK,OAAO8B,WAE/C,GAAG,CAAO,OAANnC,QAAM,IAANA,OAAM,EAANA,EAAQK,OAAO8B,YAGjBpxB,eAACuwB,EAA4B,CAAAl1B,SAAA,CAC3B2E,eAAA,OAAK9D,UAAU,oBAAmBb,SAAA,CAChCH,cAACqJ,IAAK6rB,QAAO,CACX,cAAY,iBACZxS,SAAUA,EACV1hB,UAAU,6CACVgC,SAAU,SAAC0G,GAAC,OAAKosB,EAAiBpsB,EAAEpE,OAAOwW,MAAM,EACjDqa,OAAQ,SAACzsB,GACP,IAAMssB,EAAY/G,YAAsBvlB,EAAEpE,OAAOwW,OACjDma,EAAsBjX,YAAiBgX,EAAWjC,EAAOK,OAAO8B,UAAWT,GAC7E,EACA3Z,MAAO+Z,EACPO,WAAY,SAACC,GACX,GAAIA,EAAMC,WAAaC,IAAkB,CACvC,IAAMP,EAAY/G,YAAsB4G,GACxCI,EAAsBjX,YAAiBgX,EAAWjC,EAAOK,OAAO8B,UAAWT,GAC7E,CACF,IAGFz1B,cAACs1B,EAAqB,CACpB,cAAY,cACZp1B,QAAQ,QACRc,UAAU,OACV0hB,SAAUA,EACVzd,QAAS,WACPgxB,EAAsBlC,EAAOK,OAAO8B,UAAYT,EAClD,EAAEt1B,SAEFH,cAACmN,IAAe,CAACC,KAAMopB,QAGzBx2B,cAACs1B,EAAqB,CACpB,cAAY,cACZp1B,QAAQ,QACRc,UAAU,OACV0hB,SAAUA,GAAYuM,YAAsB4G,IAAkBD,EAC9D3wB,QAAS,WACPgxB,EAAsBlC,EAAOK,OAAO8B,UAAYT,EAClD,EAAEt1B,SAEFH,cAACmN,IAAe,CAACC,KAAMqpB,QAEzBz2B,cAAA,QAAMgB,UAAU,SAAQb,SAAC,SAG1B4zB,EAAOa,OAAOsB,WAAanC,EAAOc,QAAQqB,WACzCl2B,cAAC80B,IAAsB,CAAA30B,SAAE4zB,EAAOa,OAAOsB,YAEzCpxB,eAAA,SAAO9D,UAAU,QAAOb,SAAA,CACrBw1B,EAAoB,yBAAuBD,EAAsB,SAI1E,E,mDCrFagB,EAAyB,SAAHp2B,GAQpB,IAPbq2B,EAAcr2B,EAAdq2B,eACAC,EAAct2B,EAAds2B,eACAC,EAAmBv2B,EAAnBu2B,oBACAC,EAAcx2B,EAAdw2B,eACAC,EAAqBz2B,EAArBy2B,sBACAC,EAAU12B,EAAV02B,WACAC,EAAU32B,EAAV22B,WAEM3vB,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,IAC3D4vB,EAAqBnzB,iBAAO,MAClC,OACEe,eAACwuB,IAAqB,CAACvuB,IAAKmyB,EAAmB/2B,SAAA,CAC7C2E,eAAA,KAAA3E,SAAA,CACEH,cAAA,KAAAG,SAAG,+BAA8B,OAEhC82B,EAAaj3B,cAACqI,IAAO,CAACiF,KAAK,KAAKhF,UAAU,WAAsBquB,GAAkB,MAAM,OAEzF32B,cAACm3B,IAAc,CACb9xB,WAAW,EACXG,UAAW0xB,EACXE,QAAQ,QACR1xB,UAAU,SACV2xB,QACEvyB,eAAC3C,IAAO,CAACyD,GAAG,gBAAezF,SAAA,CACzBH,cAACmC,IAAQiG,MAAK,CAAC0gB,GAAG,KAAI3oB,SAAEmH,EAAa,oBACrCtH,cAACmC,IAAQ0D,QAAO,CAAA1F,SAAEmH,EAAa,8BAElCnH,SAED2E,eAAA,QAAM9D,UAAU,WAAUb,SAAA,CAAC,IAAEmH,EAAa,kBAAkB,YAGhExC,eAAA,KAAA3E,SAAA,CACEH,cAAA,KAAAG,SAAG,2BAA0B,IAAEy2B,GAAkB,SAEpC,OAAdE,QAAc,IAAdA,OAAc,EAAdA,EAAgB3yB,KAAI,SAACmzB,EAAQ5hB,GAAK,OACjC5Q,eAAA,KAAA3E,SAAA,CACE2E,eAAA,KAAA3E,SAAA,CAAIm3B,EAAOC,6BAA6B,OAAK,IAAED,EAAOE,cADhD9hB,EAEJ,KAEJqhB,IACU,OAAVC,QAAU,IAAVA,OAAU,EAAVA,EAAY7yB,KAAI,SAACszB,EAAW/hB,GAAK,OAC/B5Q,eAAA,KAAA3E,SAAA,CACE2E,eAAA,KAAA3E,SAAA,CAAIs3B,EAAUl0B,KAAK,OAAK,IAAEk0B,EAAUC,eAD9BhiB,EAEJ,KAER5Q,eAAA,KAAA3E,SAAA,CACEH,cAAA,KAAAG,SAAG,2BAA0B,OAC5Bw3B,MAAMd,GACL,MACEI,EACFj3B,cAACqI,IAAO,CAACiF,KAAK,KAAKhF,UAAU,WAE7B,KAAM,IAAImX,KAAKC,cAAeC,OAAOkX,MAGzC72B,cAAC43B,IAAQ,CAAC9b,MAAO2T,YAAMnoB,EAAa,gDAG1C,E,QCnDauwB,EAAoE,SAAHv3B,GAGvE,IAADw3B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAFJC,EAAsBx4B,EAAtBw4B,uBACAC,EAAez4B,EAAfy4B,gBAEMhF,EAASC,cACfgF,EAAmChS,aAAoB,SAACxf,GAAK,MAAK,CAACA,EAAMyf,yBAAyB,GAAExf,KAA7Fwf,EAAqG7jB,YAAA41B,EAAA,GAA7E,GACzBC,EAAiBC,aAAgB,SAAC1xB,GAAK,IAAA2xB,EAAA,OAC7B,QAD6BA,EAC3C3xB,EAAMuL,gBAAQ,IAAAomB,OAAA,EAAdA,EAAgB10B,MAAK,SAACgE,GAAW,OAAKA,EAAYK,QAAQS,aAAe0d,CAAwB,GAAC,IAGpGiC,EAA6C3hB,aAAe,SAACC,GAAK,OAAKA,EAAMomB,UAAU,IAA/EwL,EAAgBlQ,EAAhBkQ,iBAAkBC,EAAcnQ,EAAdmQ,eAE1Bp2B,EAAoCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA5Cg0B,EAAU9zB,EAAA,GAAEm2B,EAAan2B,EAAA,GAChCG,EAAgCJ,mBAAS,GAAEM,EAAAJ,YAAAE,EAAA,GAApCi2B,GAAQ/1B,EAAA,GAAEg2B,GAAWh2B,EAAA,GAC5BE,GAA4CR,mBAAS,OAAMS,GAAAP,YAAAM,GAAA,GAApDizB,GAAchzB,GAAA,GAAE81B,GAAiB91B,GAAA,GACxCwd,GAAkDje,oBAAS,GAAMke,GAAAhe,YAAA+d,GAAA,GAA1DuY,GAAiBtY,GAAA,GAAEuY,GAAoBvY,GAAA,GAC9CmD,GAAsDrhB,mBAA8B,MAAKshB,GAAAphB,YAAAmhB,GAAA,GAAlFqV,GAAmBpV,GAAA,GAAEqV,GAAsBrV,GAAA,GAClDsV,GAAsC52B,mBAAuB,OAAd+1B,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,SAAQixB,GAAA32B,YAAA02B,GAAA,GAAhE/yB,GAAWgzB,GAAA,GAAEC,GAAcD,GAAA,GAE5BE,GAA8C5yB,mBAClD,kBACE+xB,EAAiBjjB,QAAO,SAAC+jB,GAAU,OACnB,OAAdjB,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAAYwR,6BAA6BC,MACvD,SAACC,GAAoB,OAAKA,IAAyBH,EAAWI,WAAW,GAC1E,IACDn2B,KAAI,SAAC+1B,GAAU,MAAM,CACrBhmB,KAAMgmB,EACNzkB,MAAOykB,EAAW3tB,YAClBuP,MAAOoe,EAAWvtB,GACnB,GAAE,GAEL,CAACysB,EAAgC,OAAdH,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAAYwR,+BAG3CI,GAAgDlzB,mBACpD,eAAAmzB,EAAA,OACqB,OAAnBZ,SAAmB,IAAnBA,IAAqD,QAAlCY,EAAnBZ,GAAqBa,wCAAgC,IAAAD,OAAlC,EAAnBA,EAAuDr2B,KAAI,SAACu2B,GAAiB,MAAM,CACjFxmB,KAAMwmB,EACNjlB,MAAOilB,EAAInuB,YACXuP,MAAO4e,EAAInuB,YACZ,GAAE,GACL,CAAoB,OAAnBqtB,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBa,mCAGlBE,GAAyCtzB,mBAAQ,WAAO,IAADuzB,EAC3D,OAA0B,OAAnBhB,SAAmB,IAAnBA,IAAiC,QAAdgB,EAAnBhB,GAAqBiB,oBAAY,IAAAD,OAAd,EAAnBA,EAAmCz2B,KAAI,SAAC22B,GAAW,MAAM,CAC9D5mB,KAAM4mB,EACNrlB,MAAOqlB,EAAYvuB,YACnBuP,MAAOgf,EAAYnuB,GACpB,GACH,GAAG,CAAoB,OAAnBitB,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBiB,eAEnBE,GAAmD1zB,mBACvD,kBAAyB,OAAnBuyB,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBoB,mBAAmBv2B,MAAK,SAACw2B,GAAQ,OAAKA,EAAStuB,KAAOuuB,GAA+B,GAAC,GACjH,CAAoB,OAAnBtB,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBoB,qBAGlBnE,GAAsBxvB,mBAAQ,WAAO,IAAD8zB,EAAAC,EACxC,GAAmB,OAAdnC,QAAc,IAAdA,KAAgBtQ,YAArB,CAIA,IAAM0S,GACO,OAAXt0B,SAAW,IAAXA,IAAoB,QAATo0B,EAAXp0B,GAAau0B,eAAO,IAAAH,OAAT,EAAXA,EAAsBI,QAAO,SAACC,EAAaC,GAAY,OAAKD,EAAcC,EAAaC,KAAK,GAAE,KAAM,EAEhGC,GACO,OAAX50B,SAAW,IAAXA,IAAuB,QAAZq0B,EAAXr0B,GAAa60B,kBAAU,IAAAR,OAAZ,EAAXA,EAAyBG,QAAO,SAACC,EAAaC,GAAY,OAAKD,EAAcC,EAAaI,MAAM,GAAE,KAAM,EAGpGC,GAAmC,OAAnBlC,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBmC,aAAc,EAGnDC,GAAoC,OAAnBpC,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBqC,sBAAuB,EAC7DrG,EAAgBqD,EAAetQ,YAAYuT,cAMjD,OALe,OAAXn1B,SAAW,IAAXA,OAAao1B,sBACP5C,GAAW3D,EAAgBkG,EAAgBE,EAAiBX,EAE5D9B,GAAW3D,EAAgBkG,EAAgBE,EAAiBX,EAAeM,CAjBrF,CAoBF,GAAG,CACD1C,EAAetQ,YACf4Q,GACmB,OAAnBK,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBmC,WACF,OAAnBnC,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBqC,oBACV,OAAXl1B,SAAW,IAAXA,QAAW,EAAXA,GAAau0B,QACF,OAAXv0B,SAAW,IAAXA,QAAW,EAAXA,GAAa60B,WACF,OAAX70B,SAAW,IAAXA,QAAW,EAAXA,GAAao1B,wBAGTC,GAA4BC,sBAAW,eAAAv6B,EAAAqW,YAAAC,cAAAC,MAC3C,SAAAC,EAAOgkB,GAAwB,IAAAxzB,EAAAyzB,EAAAC,EAAAC,EAAA,OAAArkB,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACX,OAAdqgB,QAAc,IAAdA,MAAgBnwB,SAAyB,OAAdmwB,QAAc,IAAdA,MAAgBtQ,YAAW,CAAAjQ,EAAAE,KAAA,SAcvD,OAbK9P,EAAUmwB,EAAenwB,QAEzByzB,EAAYtD,EAAetQ,YAAYuT,eAAiBpzB,EAAQ4zB,WAEhEF,EAAgC,CACpCG,UAAW7zB,EAAQ8zB,cACnBC,WAAY/zB,EAAQg0B,QACpBC,iBAAkBj0B,EAAQk0B,cAC1BC,WAAYn0B,EAAQm0B,WACpBC,cAAe,EACfC,UAAWZ,EACXa,mBAAoBt0B,EAAQu0B,mBAC5BC,kBAAmBx0B,EAAQS,YAC5BmP,EAAAE,KAAA,EACiC2kB,YAChCf,EACAF,GAAmBrD,EAAetQ,YAAY6U,SAC/C,OAHK5D,EAAmBlhB,EAAA6V,KAKzBwF,EAAOW,cAAc,gBAAiBkF,EAAoBsD,eAAe,GACzEnJ,EAAOW,cAAc,wBAAyBkF,EAAoB6D,wBAAwB,GAC1F5D,GAAuBD,GACvBJ,GAAYI,EAAoB8D,UAChCjE,GAAkBG,EAAoB+D,gBACtChE,GAAqBC,EAAoBgE,mBAAkB,yBAAAllB,EAAAI,OAAA,GAAAR,EAAA,KAE9D,gBAAAS,GAAA,OAAAjX,EAAAmX,MAAA,KAAAC,UAAA,EA7B0C,GA+B3C,CAAe,OAAd+f,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAA2B,OAAdsQ,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,UAG1C+0B,GAAuB,eAAAx7B,EAAA8V,YAAAC,cAAAC,MAAG,SAAAe,EAAOkjB,GAAwB,IAAAwB,EAAAC,EAAAC,EAAAv1B,EAAA,OAAA2P,cAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,OAItB,OAHjCklB,EAAU,IAAIG,IAAsB,CAAChF,KACnCiF,oBAAqB,EAC7BJ,EAAQK,iBAAkB,EAC1BL,EAAQM,yBAA0B,EAAK9kB,EAAAV,KAAA,EAG7BylB,YAAeP,EAASxB,GAAgB,OAAAyB,EAAAzkB,EAAAiV,KAAAyP,EAAA56B,YAAA26B,EADhD1rB,MAAK,GAAG5J,EAAWu1B,EAAA,GAErBhE,GAAevxB,EAAYK,SAAQ,yBAAAwQ,EAAAR,OAAA,GAAAM,EAAA,KACpC,gBAT4BJ,GAAA,OAAA3W,EAAA4W,MAAA,KAAAC,UAAA,KAUvBolB,GAAkB,eAAAh8B,EAAA6V,YAAAC,cAAAC,MAAG,SAAAoB,EAAO8kB,GAAqB,OAAAnmB,cAAAK,MAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OAG9B,OAFvB2lB,EAAeA,GAAgBtF,EAAetQ,YAAY6U,QAAO7jB,EAAAhB,KAAA,EAE/DogB,GAAgB,GAAKpf,EAAAf,KAAA,EACfzF,QAAQqrB,IAAI,CAACX,GAAwBU,GAAenC,GAA0BmC,KAAe,OAAA5kB,EAAAf,KAAA,eAAAe,EAAAhB,KAAA,EAAAgB,EAAA4L,GAAA5L,EAAA,gBAG7E,OAH6EA,EAAAhB,KAAA,EAGnGogB,GAAgB,GAAMpf,EAAA8kB,OAAA,4BAAA9kB,EAAAb,OAAA,GAAAW,EAAA,uBAEzB,gBATuBF,GAAA,OAAAjX,EAAA2W,MAAA,KAAAC,UAAA,MCxJsB,SAC9CwlB,EACAC,GAEA,IAAM1X,EAA2BD,aAAoB,SAACxf,GAAK,OAAKA,EAAMyf,wBAAwB,IACxFgS,EAAiBC,aAAgB,SAAC1xB,GAAK,IAAA2xB,EAAA,OAC7B,QAD6BA,EAC3C3xB,EAAMuL,gBAAQ,IAAAomB,OAAA,EAAdA,EAAgB10B,MAAK,SAACgE,GAAW,OAAKA,EAAYK,QAAQS,aAAe0d,CAAwB,GAAC,IAEpG5iB,qBAAU,WACRq6B,EAAahK,cAAc,kBAAiC,OAAduE,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAAY6U,SAAS,GACnFkB,EAAahK,cAAc,YAA2B,OAAduE,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAAYuT,eAAe,GAGnFyC,GAGF,GAAG,CAAe,OAAd1F,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAAY6U,SAClC,CDiJEoB,CAAiC7K,EAAQuK,IAEzC,IAAMO,GAAwCC,mBAAQ,eAAA7gB,EAAA9F,YAAAC,cAAAC,MAAC,SAAA0B,EAAOic,EAAmB+I,GAAuB,IAAAC,EAAAC,EAAA,OAAA7mB,cAAAK,MAAA,SAAAwB,GAAA,cAAAA,EAAAtB,KAAAsB,EAAArB,MAAA,WAClG8gB,GAAkB,CAADzf,EAAArB,KAAA,SAQE,OARFqB,EAAAtB,KAAA,EAEXqmB,EAAiC,CACrCE,kBAAiC,OAAdjG,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,QAAQS,WAC3C41B,WAA0B,OAAdlG,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,QAAQm0B,WACpCmC,cAA6B,OAAdnG,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,QAAQ8zB,cACvClB,MAAO1F,GAETsD,GAAc,GAAKrf,EAAArB,KAAA,EACOymB,YAAkBL,EAAYD,GAAgB,OAAlEE,EAAWhlB,EAAAsU,KAEjBoL,GAAqBsF,EAAYrB,mBACjCpE,GAAYyF,EAAYK,SACxB7F,GAAkBwF,EAAYM,eAActlB,EAAArB,KAAA,iBAAAqB,EAAAtB,KAAA,GAAAsB,EAAAsL,GAAAtL,EAAA,SAE5CuL,QAAQC,MAAKxL,EAAAsL,IAAO,QAEA,OAFAtL,EAAAtB,KAAA,GAEpB2gB,GAAc,GAAMrf,EAAAwkB,OAAA,6BAAAxkB,EAAAnB,OAAA,GAAAiB,EAAA,yBAGzB,gBAAAH,EAAAC,GAAA,OAAAoE,EAAAhF,MAAA,KAAAC,UAAA,EArBqD,GAqBnD,KAMH,OAJA7U,qBAAU,WAAO,IAAD8vB,EACd0K,GAAsC9K,EAAOK,OAAO8B,UAAwB,QAAf/B,EAAEJ,EAAOK,cAAM,IAAAD,OAAA,EAAbA,EAAeqL,gBAChF,GAAG,CAACzL,EAAOK,OAAO8B,UAAwB,QAAf4B,EAAE/D,EAAOK,cAAM,IAAA0D,OAAA,EAAbA,EAAe0H,kBAG1C16B,eAAAD,WAAA,CAAA1E,SAAA,CACEH,cAACuzB,EAAe,CAACC,aAA4B,OAAdyF,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,QAAQV,MAAOsR,IAAmB,OAAduf,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,QAAQK,MAC3FnJ,cAACyzB,EAAgB,CACfK,UAAQ,EACRre,MAAM,iBACN6J,QAASqb,GACT/G,cAA2B,OAAZ+G,SAAY,IAAZA,QAAY,EAAZA,GAAe,GAC9Bn2B,KAAK,kBAGPxE,cAACyzB,EAAgB,CACfC,aACEK,EAAOK,OAAOoL,mBAAkC,OAAdvG,QAAc,IAAdA,GAA2B,QAAblB,EAAdkB,EAAgBtQ,mBAAW,IAAAoP,OAAb,EAAdA,EAA6ByF,SAAO,mOAElE,KAEN9a,UAAWoW,EACXrjB,MAAM,qBACNzS,SAAUs7B,GACVhf,QAAS2a,GACTrG,cAAeyF,EACf70B,KAAK,qBAGa,OAAnBo1B,SAAmB,IAAnBA,IAAqD,QAAlC5B,EAAnB4B,GAAqBa,wCAAgC,IAAAzC,OAAlC,EAAnBA,EAAuDnrB,QAAS,GAC/D7M,cAACyzB,EAAgB,CACfhe,MAAM,gBACN6J,QAASib,GACT3G,cACqB,OAAnBgG,SAAmB,IAAnBA,IAAqD,QAAlC3B,EAAnB2B,GAAqBa,wCAAgC,IAAAxC,GAEpD,QAFoDC,EAArDD,EAAuDxzB,MACrD,SAACg7B,GAAO,OAAKA,EAAQlzB,eAAmC,OAAnBqtB,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqB6D,uBAAsB,WACjF,IAAAvF,OAFkB,EAAnBA,EAEG3rB,YAEL/H,KAAK,0BAITxE,cAAC+0B,EAAqB,CACpBtf,MAAM,0BACNyZ,UAA4C,OAAjC6L,SAAiC,IAAjCA,QAAiC,EAAjCA,GAAmCxuB,cAIjC,OAAd0sB,QAAc,IAAdA,GAA2B,QAAbd,EAAdc,EAAgBtQ,mBAAW,IAAAwP,GAA3BA,EAA6BuH,eAC5B56B,eAAAD,WAAA,CAAA1E,SAAA,CACE2E,eAACuwB,EAA4B,CAAAl1B,SAAA,CAC3BH,cAACqJ,IAAKC,MAAK,CACT9E,KAAK,gBACL+S,KAAK,QACL3R,GAAG,qBACH6P,MAAM,qBACNqG,MAAO6jB,IAAqBC,iBAC5Bp2B,QAASuqB,EAAOK,OAAOyL,gBAAkBF,IAAqBC,iBAC9D58B,SAAU,SAACqzB,GAAK,OAAKtC,EAAOW,cAAc,gBAAiB2B,EAAM/wB,OAAOwW,MAAM,IAEhF9b,cAACqJ,IAAK6rB,QAAO,CACXl0B,UAAU,kBACVuW,KAAK,OACL6d,UAAQ,EACRD,YAA2B,OAAd8D,QAAc,IAAdA,GAA2B,QAAbb,EAAda,EAAgBtQ,mBAAW,IAAAyP,OAAb,EAAdA,EAA6B0H,iBAC1Cpd,SAAUqR,EAAOK,OAAOyL,gBAAkBF,IAAqBC,sBAInE96B,eAACwuB,IAAqB,CAAAnzB,SAAA,CACpBH,cAACqJ,IAAKC,MAAK,CACT9E,KAAK,gBACL+S,KAAK,QACL3R,GAAG,oBACH6P,MAAM,oBACNjM,QAASuqB,EAAOK,OAAOyL,gBAAkBF,IAAqBI,gBAC9DjkB,MAAO6jB,IAAqBI,gBAC5B/8B,SAAU,SAACqzB,GAAK,OAAKtC,EAAOW,cAAc,gBAAiB2B,EAAM/wB,OAAOwW,MAAM,IAGhF9b,cAACw1B,EAAsB,CACrB9S,SAAUqR,EAAOK,OAAOyL,gBAAkBF,IAAqBI,gBAC/DnK,cAA6B,OAAdqD,QAAc,IAAdA,GAA2B,QAAbZ,EAAdY,EAAgBtQ,mBAAW,IAAA0P,OAAb,EAAdA,EAA6B6D,cAC5CzG,gBAA+B,OAAdwD,QAAc,IAAdA,GAA2B,QAAbX,EAAdW,EAAgBtQ,mBAAW,IAAA2P,OAAb,EAAdA,EAA6B0H,aAC9CtK,sBAAqC,OAAduD,QAAc,IAAdA,GAA2B,QAAbV,EAAdU,EAAgBtQ,mBAAW,IAAA4P,OAAb,EAAdA,EAA6B0H,mBACpDtK,oBAAmC,OAAdsD,QAAc,IAAdA,GAA2B,QAAbT,EAAdS,EAAgBtQ,mBAAW,IAAA6P,OAAb,EAAdA,EAA6B0H,4BAMxDlgC,cAACszB,IAAqB,CAAAnzB,SACpB2E,eAACuE,IAAK2rB,MAAK,CAACC,UAAU,YAAW90B,SAAA,CAC/BH,cAACqJ,IAAKgrB,MAAK,CAAAl0B,SAAC,qBACZH,cAACw1B,EAAsB,CACrBC,gBAA+B,OAAdwD,QAAc,IAAdA,GAA2B,QAAbR,EAAdQ,EAAgBtQ,mBAAW,IAAA8P,OAAb,EAAdA,EAA6BuH,aAC9CtK,sBAAqC,OAAduD,QAAc,IAAdA,GAA2B,QAAbP,EAAdO,EAAgBtQ,mBAAW,IAAA+P,OAAb,EAAdA,EAA6BuH,mBACpDtK,oBAAmC,OAAdsD,QAAc,IAAdA,GAA2B,QAAbN,EAAdM,EAAgBtQ,mBAAW,IAAAgQ,OAAb,EAAdA,EAA6BuH,oBAClDtK,cAA6B,OAAdqD,QAAc,IAAdA,GAA2B,QAAbL,EAAdK,EAAgBtQ,mBAAW,IAAAiQ,OAAb,EAAdA,EAA6BsD,qBAMpDl8B,cAAC02B,EAAsB,CACrBO,WAAYA,EACZN,eAAgBA,GAChBC,eAAmC,OAAnBgD,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBmC,WACrCjF,eAA2B,OAAX/vB,SAAW,IAAXA,QAAW,EAAXA,GAAau0B,QAC7BvE,sBAAkC,OAAXhwB,SAAW,IAAXA,QAAW,EAAXA,GAAao1B,sBACpCnF,WAAuB,OAAXjwB,SAAW,IAAXA,QAAW,EAAXA,GAAa60B,WACzB/E,oBACEA,IAAuB9C,EAAOK,OAAO8B,WAA0B,OAAd+C,QAAc,IAAdA,GAA2B,QAAbJ,EAAdI,EAAgBtQ,mBAAW,IAAAkQ,OAAb,EAAdA,EAA6BqD,oBAKxF,E,eEtTaiE,EAAsB7+B,YAAO0D,IAAP1D,CAAcE,MAAAC,YAAA,8F,uCCclC2+B,GARc,SAAH9/B,GAAsF,IAAhF+/B,EAAS//B,EAAT+/B,UAAW3d,EAAQpiB,EAARoiB,SAAUviB,EAAQG,EAARH,SAAaO,EAAK4rB,YAAAhsB,EAAAisB,IACrE,OACEznB,eAACq7B,EAAmBx/B,wBAAA,GAAKD,GAAK,IAAEgiB,SAAU2d,GAAa3d,EAASviB,SAAA,CAC7DA,EACAkgC,GAAargC,cAACqI,IAAO,CAAC,cAAY,UAAUiF,KAAK,KAAKwb,GAAG,OAAOxgB,UAAU,cAGjF,E,qDCNag4B,GAAmB,SAAHhgC,GAAqF,IAA/EsW,EAAOtW,EAAPsW,QAAO2pB,EAAAjgC,EAAEJ,eAAO,IAAAqgC,EAAG,SAAQA,EAAEC,EAAOlgC,EAAPkgC,QAASC,EAAengC,EAAfmgC,gBAAoB//B,EAAK4rB,YAAAhsB,EAAAisB,IAChGtpB,EAAwBC,qBAAW0T,GAAQzT,EAAAC,YAAAH,EAAA,GAApCW,EAAIT,EAAA,GAAEU,EAAOV,EAAA,GAwBpB,OAtBAkB,qBAAU,WACRR,EAAQsoB,QAAQvV,GAClB,GAAG,CAACA,IAEJvS,qBAAU,WACR,IAAIq8B,EACAD,GAAmB78B,IAGrB88B,EAAiBC,YAAW,WAC1B98B,GAAQ,GACD,OAAP28B,QAAO,IAAPA,MACF,GAL2C,kBAApBC,EAA+BA,EAjBxB,MAyBhC,OAAO,WACDC,GACFE,aAAaF,EAEjB,CACF,GAAG,CAACD,EAAiB78B,IAGnBA,GACE5D,cAACC,IAAKU,wBAAA,CACJ,cAAY,kBACZT,QAASA,EACTsgC,QAAS,WACP38B,GAAQ,GACD,OAAP28B,QAAO,IAAPA,MACF,EACAK,aAAW,GACPngC,GAAK,IAAAP,SAERyW,IAIT,E,sCC7BMkqB,GAA6DC,YAAO,CACxE7B,kBAAmB8B,cAASlN,WAAWmN,WAAWC,UAClDhL,UAAW8K,cAASlN,SAAS,YAAYmN,SAAS,YAAYC,UAC9DhE,cAAe8D,cAASlN,WAAWmN,SAAS,YAAYC,UACxD1B,gBAAiBwB,cAASlN,WAAWmN,WAAWC,UAChDrB,cAAesB,cACZrN,WACAsN,MAAM,CAAC,mBAAoB,oBAC9BC,mBAAoBL,cAASlN,WAAWmN,WAAWC,UACnDI,sBAAuBH,gBAKZI,GAAqD,SAAHjhC,GAAoC,IAADy3B,EAAAI,EAAAqJ,EAAApJ,EAAAC,EAA7BS,EAAsBx4B,EAAtBw4B,uBAC7D2I,EAAuBvI,aAAgB,SAAC1xB,GAAK,OAAKA,EAAMi6B,oBAAoB,IAClFzI,EAAuEhS,aACrE,SAACxf,GAAK,MAAK,CAACA,EAAM2f,OAAQ3f,EAAMyf,yBAA0Bzf,EAAM0f,4BAA4B,GAC5Fzf,KACDi6B,EAAAt+B,YAAA41B,EAAA,GAHM7R,EAAMua,EAAA,GAAEza,EAAwBya,EAAA,GAAEC,EAA0BD,EAAA,GAI7DzI,EAAiBC,aAAgB,SAAC1xB,GAAK,IAAA2xB,EAAA,OAC7B,QAD6BA,EAC3C3xB,EAAMuL,gBAAQ,IAAAomB,OAAA,EAAdA,EAAgB10B,MAAK,SAACgE,GAAW,OAAKA,EAAYK,QAAQS,aAAe0d,CAAwB,GAAC,IAG5FqB,EAAoBC,eAApBD,gBACFtM,EAAWC,eACjB5X,qBAAU,WACRs9B,EAA2B,KAC7B,GAAG,CAAC3lB,EAAS4lB,WAEb,IAAMtc,EAAeX,aAAgB,SAACnd,GAAK,OAAKA,EAAM8d,YAAY,IAClEriB,EAAwCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhD4+B,EAAY1+B,EAAA,GAAE2+B,EAAe3+B,EAAA,GACpCG,EAAoDJ,mBAAS,IAAGM,EAAAJ,YAAAE,EAAA,GAAzDy+B,EAAkBv+B,EAAA,GAAEw+B,EAAqBx+B,EAAA,GAChDE,EAA8BR,oBAAS,GAAMS,EAAAP,YAAAM,EAAA,GAAtCmP,EAAOlP,EAAA,GAAEs+B,EAAUt+B,EAAA,GACTu+B,EAAYlZ,aAA2B,OAAdiQ,QAAc,IAAdA,GAA2B,QAAblB,EAAdkB,EAAgBtQ,mBAAW,IAAAoP,OAAb,EAAdA,EAA6BoK,SAA/D5Y,QACF6Y,GACU,OAAdnJ,QAAc,IAAdA,GAA2B,QAAbd,EAAdc,EAAgBtQ,mBAAW,IAAAwP,OAAb,EAAdA,EAA6BkK,SAAUH,EAAU,IAAmB,OAAdjJ,QAAc,IAAdA,GAAuB,QAATuI,EAAdvI,EAAgBnwB,eAAO,IAAA04B,OAAT,EAAdA,EAAyBc,YAAaC,IAAgBC,OAExGC,EAAc,eAAA3gC,EAAAqW,YAAAC,cAAAC,MAAG,SAAAC,EAAO8b,EAA4BsO,GAAgD,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA5qB,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACnGqgB,EAAe,CAADvgB,EAAAE,KAAA,eAAAF,EAAAG,OAAA,iBAwBD,OAtBZ8pB,EAAmC,CACvCzD,kBAAmB9K,EAAO8K,kBAC1BhJ,UACE9B,EAAOyL,gBAAkBF,IAAqBC,iBAC5B,OAAd3G,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAAYzZ,YAC3BklB,EAAO8B,UACd+M,cAAeA,IACfC,UAAU,EACVC,aAAc7d,EACd8d,gBAAiBhP,EAAOkN,sBACxBlE,mBAAoBnE,EAAenwB,QAAQu0B,mBAC3CgG,cAAe,CACbnG,cAAe9I,EAAO8I,cACtBmE,mBAAoBjN,EAAOiN,mBAC3B1E,UAAW1D,EAAenwB,QAAQ8zB,cAClCO,UAAW/I,EAAO8B,WAAa+C,EAAenwB,QAAQ4zB,WACtDU,mBAAoBnE,EAAenwB,QAAQu0B,mBAC3CC,kBAAmBrE,EAAenwB,QAAQS,aAE7CmP,EAAAC,KAAA,EAGCspB,GAAW,GAAKvpB,EAAAE,KAAA,EACkB0qB,YAAaX,EAAYvO,EAAOoL,iBAAgB,OAA5EwD,EAAmBtqB,EAAA6V,KAGI,QAA7BqU,EAAII,EAAoB3wB,aAAK,IAAAuwB,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,GAA9BA,EAAgCla,cAClC+Z,EAAchO,cAAc,YAAasO,EAAoB3wB,MAAM,GAAGsW,YAAYuT,eAClFuF,EAAqB,CACnB9Y,YAAaqa,EAAoB3wB,MAAM,GAAGsW,YAC1Cpd,kBAAmBy3B,EAAoB3wB,MAAM,GAAGvJ,QAAQS,cAIxDo5B,EAAWS,iBACbV,EAAchO,cAAc,wBAAyBiO,EAAWS,iBAIlEpB,GAC2B,QAAzBc,EAAAE,EAAoB3wB,aAAK,IAAAywB,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,OAAL,EAAzBA,EAAgCpa,YAAY4a,kBAAmBP,EAAoBQ,cAAc,IAEnG1B,EAAgBkB,EAAoBS,SAAQ/qB,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAE5C8M,QAAQC,MAAK/M,EAAA6M,IAAO,QAEH,OAFG7M,EAAAC,KAAA,GAEpBspB,GAAW,GAAMvpB,EAAA+lB,OAAA,YAGnBnW,EAAgB,GAADhiB,OAAI8N,OAAOqU,QAAQC,SAAQ,gBAAgB,CACxD,CAAEC,YAAasQ,EAAetQ,YAAaxf,IAAK8vB,EAAenwB,QAAQK,OACvE,yBAAAuP,EAAAI,OAAA,GAAAR,EAAA,yBACH,gBAvDmBS,EAAAC,GAAA,OAAAlX,EAAAmX,MAAA,KAAAC,UAAA,KAyDdwqB,EAAiB,WACrB/B,EAA2B,MAC3BK,EAAsB,GACxB,EAEA,OAAK7a,IAEHnnB,cAAC2jC,IAAQ,CACPxc,OAAQA,IACRyc,mBAAoB,WAClBF,GACF,EAAEvjC,SAEFH,cAAC6jC,IAAM,CACL,cAAY,OACZC,cAAe,CACb5E,kBAAiC,OAAdjG,QAAc,IAAdA,OAAc,EAAdA,EAAgBnwB,QAAQS,WAC3C2sB,UAAyB,OAAd+C,QAAc,IAAdA,GAA2B,QAAbb,EAAda,EAAgBtQ,mBAAW,IAAAyP,OAAb,EAAdA,EAA6B8D,cACxCgB,cAAe,EACfsC,gBAA+B,OAAdvG,QAAc,IAAdA,GAA2B,QAAbZ,EAAdY,EAAgBtQ,mBAAW,IAAA0P,OAAb,EAAdA,EAA6BmF,QAC9CqC,cAAeF,IAAqBI,gBACpCsB,mBAAoBnG,IACpBoG,sBAAuB,MAEzByC,SAAUtB,EACVuB,iBAAkBlD,GAAyB3gC,SAE1C,SAACO,GAAK,OACLoE,eAACuE,IAAI,CAACrI,UAAU,OAAO+iC,SAAUrjC,EAAMujC,aAAa9jC,SAAA,CAClDH,cAAC63B,EAA2B,CAC1BiB,uBAAwBA,EACxBC,gBAAiBkJ,IAGnBjiC,cAACsgC,GAAgB,CACfpgC,QAAS2hC,EAAe,UAAY,SACpCjrB,QAASmrB,EACTvB,QAAS,kBAAMwB,EAAsB,GAAG,EACxCvB,iBAAe,IAGjBzgC,cAACC,IAAK,CAAC2D,MAAoB,OAAdq1B,QAAc,IAAdA,OAAc,EAAdA,EAAgBtQ,YAAYuT,eAAgBx7B,EAAM0zB,OAAO8B,UAAWh2B,QAAQ,SAAQC,SAAC,mCAIlG2E,eAACwuB,IAAqB,CAACtyB,UAAU,iBAAgBb,SAAA,CAC9CiiC,GACCpiC,cAACkkC,KAAkB,CAACvb,YAAasQ,EAAetQ,YAAa5hB,YAAakyB,EAAenwB,UAE3FhE,eAAA,OAAK9D,UAAU,eAAcb,SAAA,CAC1BiiC,GACCpiC,cAACogC,GAAa,CACZ,cAAa,YACbC,UAAWxtB,EACX0E,KAAK,SACLvW,UAAU,gBACVd,QAAQ,UAASC,SAEF,OAAd84B,QAAc,IAAdA,KAAgBtQ,YAAY+W,eAAiB,SAAW,QAI7D1/B,cAACgF,IAAM,CAAC9E,QAAQ,iBAAiB+E,QAAS,kBAAMy+B,GAAgB,EAACvjC,SAAC,mBAKjE,MA9DO,IAmExB,C,mKC3LagkC,EAAuB7iC,IAAOoF,KAAIlF,MAAAC,YAAA,0GASlC2iC,EAAuB9iC,IAAOC,IAAGa,MAAAX,YAAA,sH,OCDjC4iC,EAAqB,CAChC,CAAEC,KAAM,SAAUC,KAAM,sBAAuBC,YAAa,uBAC5D,CAAEF,KAAM,WAAYC,KAAM,iBAAkBC,YAAa,kBACzD,CAAEF,KAAM,aAAcC,KAAM,aAAcC,YAAa,cACvD,CAAEF,KAAM,QAASC,KAAM,6BAA8BC,YAAa,+BAGvDC,EAAiB,SAAHnkC,GAAcA,EAARH,SAAwC,IACjEukC,EAAaC,cACbC,EAAcC,YAAeR,EAAOK,EAAWJ,MAC/C1W,EAAarmB,aAAe,SAACC,GAAK,OAAKA,EAAMomB,UAAU,GAAEnmB,KACzDid,EAASrd,mBACb,oBAAQumB,EAAWkX,gBAAkBlX,EAAWJ,WAAcI,EAAWJ,SAAuB,GAChG,CAACI,EAAWJ,SAAUI,EAAWkX,iBAGnC,OACE9kC,cAAA6E,WAAA,CAAA1E,SACGukB,GACC5f,eAACs/B,EAAoB,CAAAjkC,SAAA,CACnBH,cAACmkC,EAAoB,CAAAhkC,SACnBH,cAAC+kC,IAAI,CAACC,GAAKpX,EAAWJ,SAAsB,IAAX,SAAertB,SAC9CH,cAACmN,IAAe,CAACC,KAAM63B,UAGf,OAAXL,QAAW,IAAXA,OAAW,EAAXA,EAAazgC,KAAI,SAAC+P,EAAMwB,GAAK,OAC5B5Q,eAACqe,WAAQ,CAAAhjB,SAAA,CACPH,cAACmkC,EAAoB,CAAAhkC,SACnBH,cAACmN,IAAe,CAACC,KAAMC,QAExB6G,EAAKowB,KAAOtkC,cAAC+kC,IAAI,CAACC,GAAI9wB,EAAKowB,KAAKnkC,SAAE+T,EAAKqwB,OAAevkC,cAAA,QAAAG,SAAO+T,EAAKqwB,SAJtD7uB,EAKJ,QAMvB,C,yHCxCa1C,EAAc,SAACkyB,GAC1B,IAAMve,EAAYhC,aAAgB,SAACnd,GAAK,OAAKA,EAAMmf,SAAS,IAC5Dwe,EAAyCjM,aAAgB,SAAC1xB,GAAK,MAAK,CAACA,EAAMuL,SAAUvL,EAAM49B,YAAY,GAAE39B,KAAQ49B,EAAAjiC,YAAA+hC,EAAA,GAA1GG,EAAiBD,EAAA,GAAED,EAAWC,EAAA,GAE/BE,EAAmBl+B,mBACvB,kBCVgCwf,EDYhB,OAAZqe,QAAY,IAAZA,OAAY,EAAZA,EAAc/gC,KAAI,SAAC+P,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,ICZRwJ,EDa3CuyB,ECZDze,EAIE9T,EAASoD,QAAO,SAACjC,GAAI,OAAQ,OAAH2S,QAAG,IAAHA,OAAG,EAAHA,EAAKnkB,QAAQwR,EAAKpL,QAAQS,cAAe,CAAC,IAHlE,KAFwB,IAACsd,EAAe9T,CDc5C,GACH,CAACmyB,EAAcI,IAmBjB,OAjBAjhC,qBAAU,WACS,OAAZ6gC,QAAY,IAAZA,KAAcr4B,QAInBu4B,EAAYF,EACd,GAAG,CAACE,EAAaF,IAEjB7gC,qBAAU,WACR,GAAiB,OAAZ6gC,QAAY,IAAZA,KAAcr4B,OAAnB,CAIA,IAAM24B,EAAcN,EAAa/gC,KAAI,SAAC+P,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,IACtEod,EAAU6e,EAHV,CAIF,GAAG,CAACN,EAAcve,IAEX,CAAE5T,SAAUwyB,EACrB,C,0FEhBeE,IAlBK,SAAHnlC,GAAA,IAAAolC,EAAAplC,EAAMO,aAAK,IAAA6kC,EAAG,KAAIA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,KAAIA,EAAKjlC,EAAK4rB,YAAAhsB,EAAAisB,GAAA,OAC1DvsB,cAAC4lC,IAASjlC,wBAAA,CACRC,MAAM,6BACNI,UAAU,4CACVH,MAAOA,EACPC,OAAQA,EACR+kC,QAAQ,YACR9kC,KAAK,gBACDL,GAAK,IAAAP,SAETH,cAAA,QACEkB,SAAS,UACTC,EAAE,qHACF2kC,SAAS,cAED,C,mCClBd,2EAKa32B,EAAsB,WACjC,IAE8B42B,EAA1Bp+B,qBAAWC,KADba,YAAwB1B,EAAWg/B,EAApBj9B,QAAsB6f,EAAWod,EAAXpd,YAAaqd,EAAWD,EAAXC,YAGpD,OACEhmC,cAAA6E,WAAA,CAAA1E,SACG6lC,EACClhC,eAAAD,WAAA,CAAA1E,SAAA,CACG4G,EAAYu7B,WAAaC,IAAgB0D,eACxCnhC,eAAAD,WAAA,CAAA1E,SAAA,CACEH,cAACkmC,IAAkB,CAAA/lC,SACc,IAA9B4G,EAAYk8B,eAAuBl8B,EAAYo/B,sBAElDnmC,cAAComC,IAAS,CAAAjmC,SACRH,cAAA,QAAAG,SAAM,cAKX4G,EAAYu7B,WAAaC,IAAgB0D,eACxCl/B,EAAYu7B,WAAaC,IAAgBC,QACvCxiC,cAAComC,IAAS,CAAAjmC,SACRH,cAAA,QAAAG,SAAO4G,EAAYs/B,sBAIxBt/B,EAAYu7B,WAAaC,IAAgBC,QACxC19B,eAAA,OAAA3E,SAAA,CACGwoB,GAAe3oB,cAACkmC,IAAkB,CAAA/lC,SAAEwoB,EAAY2d,sBAC/C3d,GAAe3oB,cAACkmC,IAAkB,CAAA/lC,SAAE4G,EAAYw/B,yBAKxDvmC,cAACwmC,IAAiB,CAAArmC,SAChBH,cAAA,QAAAG,SAAM,2BAKhB,C,+JCrCasmC,EAAoBnlC,IAAOC,IAAGC,MAAAC,YAAA,0CACvC2kC,KAUSt3B,EAAc,SAAHxO,GAAmD,IAA7CU,EAASV,EAATU,UAAS0lC,EAAApmC,EAAEyO,iBAAS,IAAA23B,EAAG,OAAMA,EAG3BX,EAA1Bp+B,qBAAWC,KADba,YAAwB1B,EAAWg/B,EAApBj9B,QAAsB6f,EAAWod,EAAXpd,YAEjCrhB,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,IAEjE,OACExC,eAAC2hC,EAAiB,CAACzlC,UAAWA,EAAUb,SAAA,CACrC4G,EAAYu7B,WAAaC,IAAgBC,QAAU7Z,GAAeA,EAAY+W,gBAC7E1/B,cAAA,OAAAG,SACEH,cAAComC,IAAS,CACRplC,UAAW+L,IAAW,CAAE45B,MAAqB,UAAd53B,IAC/BwY,MAAOoB,EAAYie,gBAAkB5pB,IAAeD,IAAY5c,SAEhEH,cAAA,QAAAG,SACGwoB,EAAYie,gBAAkBt/B,EAAa,UAAW,WAAaA,EAAa,SAAU,gBAKlGP,EAAYu7B,WAAaC,IAAgB0D,eAAiB9Z,QAAQplB,EAAYgC,cAC7E/I,cAAA,OAAAG,SACEH,cAAComC,IAAS,CAACplC,UAAW+L,IAAW,CAAE45B,MAAqB,UAAd53B,IAAyB5O,SACjEH,cAAA,QAAAG,SAAM,mBAMlB,C,mCCjDA,qEAIa6O,EAAe,WAC1B,IAE8B+2B,EAA1Bp+B,qBAAWC,KADba,YAAwB1B,EAAWg/B,EAApBj9B,QAAsB6f,EAAWod,EAAXpd,YAGvC,OAAO3oB,cAACkkC,IAAkB,CAACn9B,YAAaA,EAAa4hB,YAAaA,GACpE,C,oLCNake,EAAqBvlC,IAAOC,IAAGC,MAAAC,YAAA,6iDAsCpBqb,KAoCO,SAAAxc,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,I,gBC9DrDilC,EAAe,SAAHxmC,GAAmD,IAADymC,EAAAC,EAA5CC,EAAY3mC,EAAZ2mC,aAAcC,EAAK5mC,EAAL4mC,MAAOlkC,EAAQ1C,EAAR0C,SAClDC,EAAwCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAA7Cw4B,EAAYt4B,EAAA,GAAEgkC,EAAehkC,EAAA,GAEpCkB,qBAAU,WACR8iC,EAAgBF,EAClB,GAAG,CAACA,IAEJ,IAAMG,EAAqB,SAACxhC,GAC1BuhC,EAAgBvhC,GACR,OAAR5C,QAAQ,IAARA,KAAW4C,EACb,EAEA,OACE5F,cAAC6mC,EAAkB,CAAC7lC,UAAU,qBAAoBb,SAChD2E,eAACuiC,IAAQ,CAACJ,aAAcxL,EAAc9yB,SAAU,SAAC/C,GAAE,OAAKwhC,EAAmBxhC,EAAG,EAACzF,SAAA,CAC7E2E,eAACuiC,IAASC,OAAM,CACdxe,GAAG,SACHvR,KAAK,SACL5O,SAAU,SAAC/C,GAAE,OAAKwhC,EAAmBxhC,EAAG,EACxC5E,UAAU,iBACVumC,SAAU,EAAEpnC,SAAA,CAEZH,cAAA,QAAAG,SAAsD,QAAtD4mC,EAA+C,QAA/CC,EAAOE,EAAMziC,MAAK,SAACyB,GAAC,OAAKA,EAAEN,KAAO61B,CAAY,WAAC,IAAAuL,OAAA,EAAxCA,EAA0ClrB,aAAK,IAAAirB,IAAI,WAC1D/mC,cAACylC,IAAW,OAEdzlC,cAACqnC,IAASG,KAAI,CAACxmC,UAAU,kBAAiBb,SACvC+mC,EAAM/iC,KAAI,SAAC+P,GAAI,OACdlU,cAACqnC,IAAS15B,KAAI,CACZ45B,SAAU,EACVvmC,UAAS,GAAAsF,OAAKm1B,IAAiBvnB,EAAKtO,IAAM,UAE1C6hC,SAAUvzB,EAAKtO,GAAGzF,SAEjB+T,EAAK4H,OAHD5H,EAAKtO,GAII,UAM5B,E,kBCrDa8hC,EAA0BpmC,YAAOa,IAAPb,CAAeE,MAAAC,YAAA,kSAsBzCkmC,EAAmBrmC,IAAOC,IAAGa,MAAAX,YAAA,u2BAuB7B,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAKnC,SAAAC,GAAQ,OAAAA,EAALH,MAAkBC,OAAOgpB,SAAS,IAE1B,SAAAvoB,GAAQ,OAAAA,EAALV,MAAkBC,OAAOsc,SAAS,IAKhD,SAAA5b,GAAQ,OAAAA,EAALX,MAAkBC,OAAOgmC,oBAAoB,IACrC,SAAA3pB,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOC,OAAO,IAQ9C,SAAAwc,GAAQ,OAAAA,EAAL1c,MAAkBC,OAAO2e,eAAe,I,2BCzD3CsnB,EAAkB,SAAHvnC,GAAsF,IAAhFgW,EAAiBhW,EAAjBgW,kBAAmBwxB,EAAkBxnC,EAAlBwnC,mBAAoBC,EAAMznC,EAANynC,OAAQx0B,EAAUjT,EAAViT,WAC/EtQ,EAAwCC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAAzD+kC,EAAY7kC,EAAA,GAAE8kC,EAAe9kC,EAAA,GAE9B+kC,EAAgBnkC,iBAAO,MAO7B,OACEe,eAAAD,WAAA,CAAA1E,SAAA,CACEH,cAACoF,IAAO,CACNC,WAAW,EACXC,OAAQ4iC,EAAc3iC,QACtBE,OAAQ,kBAAMwiC,GAAgB,EAAM,EACpCrkC,KAAMokC,EACNtiC,UAAU,UACVC,YAAY,EAAMxF,SAElB2E,eAAC4iC,EAAuB,CAAC9hC,GAAG,qBAAqBhC,KAAMokC,EAAa7nC,SAAA,CAClEH,cAAA,SAAAG,SAAO,gBACPH,cAACmoC,IAAK,CACJ5wB,KAAK,SACLuE,MAAOisB,EACP/kC,SAAU,SAAC0G,GACTo+B,EAAmBpxB,OAAOhN,EAAEpE,OAAOwW,OACrC,EACAssB,IAAK70B,IAEPvT,cAACgF,IAAM,CAACC,QAzBK,WACnBqR,EAAkByxB,GAClBE,GAAgB,EAClB,EAsBsC9nC,SAAC,YAGnCH,cAAA,OAAK+E,IAAKmjC,EAAc/nC,SACtBH,cAACqoC,IAAWC,SAAQ,CAACrjC,QAAS,kBAAMgjC,GAAgB,EAAK,QAIjE,E,kHCjCa5xB,EAAS,SAAH/V,GAQJ,IAPbkR,EAAelR,EAAfkR,gBACAgF,EAAqBlW,EAArBkW,sBACAjD,EAAUjT,EAAViT,WACAhC,EAAWjR,EAAXiR,YAAWg3B,EAAAjoC,EACXkoC,0BAAkB,IAAAD,GAAOA,EACzBjyB,EAAiBhW,EAAjBgW,kBACG5V,EAAK4rB,YAAAhsB,EAAAisB,GAERtpB,EAA0CC,mBAAiBqO,EAAc,GAAEpO,EAAAC,YAAAH,EAAA,GAApEwlC,EAAatlC,EAAA,GAAEulC,EAAgBvlC,EAAA,GAEhC2kC,EAAqB,SAACa,GACAD,EAAtBC,EAAUp1B,EAA6BA,EAClCo1B,EAAU,EAAoB,EACjBA,EACxB,EAEMC,EClCyB,SAACr1B,EAAoBhC,EAAqBs3B,GACzE,IAAM3B,EAA6B,IAAI4B,MAAMD,GAC7C,GAAIt1B,EAAas1B,EAAsB,CACrC,IAAK,IAAI3iC,EAAI,EAAGA,EAAIqN,EAAYrN,IAC9BghC,EAAMhhC,GAAKA,EAEb,OAAOghC,CACT,CAOA,IALA,IAAM6B,EAAOC,KAAKZ,IAChB,EACAY,KAAKC,IAAI11B,EAAas1B,EAAsBt3B,EAAcy3B,KAAKE,MAAML,EAAuB,KAGrF3iC,EAAI,EAAGA,EAAI2iC,EAAsB3iC,GAAK,EAE7CghC,EAAMhhC,GAAKA,EAAI6iC,EAajB,OATI7B,EAAM,GAAK,IACbA,EAAM,GAAK,EACXA,EAAM,GAAK,iBAGTA,EAAMA,EAAMr6B,OAAS,GAAK0G,EAAa,IACzC2zB,EAAMA,EAAMr6B,OAAS,GAAK0G,EAAa,EACvC2zB,EAAMA,EAAMr6B,OAAS,GAAK,iBAErBq6B,CACT,CDIoBiC,CAAkB51B,EAAYhC,EAAc,EAAG63B,KAAsBjlC,KAAI,SAAC+P,GAAI,MAC9E,kBAATA,EACLlU,cAACqoC,IAAW16B,KAAI,CAEd6H,OAAQtB,IAAS3C,EACjBtM,QAAS,WACU,OAAjBqR,QAAiB,IAAjBA,KAAoBpC,EAAO,EAC7B,EAAE/T,SAED+T,EAAO,GANHA,GASPlU,cAAC6nC,EAAe,CAEdE,OAAQU,EACRnyB,kBAAmBA,EACnBwxB,mBAAoBA,EACpBv0B,WAAYA,GAJR,WAMP,IAGH,OACEzO,eAAC6iC,EAAgB,CAAAxnC,SAAA,CACdqoC,GACC1jC,eAAA,OAAK9D,UAAU,kBAAiBb,SAAA,CAC9BH,cAAA,UAAAG,SAAQ,sBACRH,cAAC8mC,EAAY,CACXG,aAA6B,OAAfz1B,QAAe,IAAfA,OAAe,EAAfA,EAAiB8F,WAC/B4vB,MAAsB,OAAfmC,UAAe,IAAfA,SAAe,EAAfA,IAAiBllC,KAAI,SAACmJ,GAAI,MAAM,CAAE1H,GAAI0H,EAAKgK,WAAYwE,MAAOxO,EAAKgK,WAAY,IACtFtU,SAAUwT,OAIhBxW,cAACqoC,IAAU1nC,wBAAA,CAACmoB,GAAG,OAAUpoB,GAAK,IAAAP,SAC3ByoC,OAIT,C,oIEzEe,MAA0B,wC,wCCI5BU,EAAmBhoC,YAAOgf,IAAPhf,CAAaE,MAAAC,YAAA,6BAIhC8nC,EAAqBjoC,YAAOgf,IAAM4B,KAAb5gB,CAAkBc,MAAAX,YAAA,+PAUvC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAMnC2nC,EAAmBloC,YAAOgf,IAAMmpB,OAAbnoC,CAAoBuF,MAAApF,YAAA,oKAC9B,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAU5C6nC,EAAcpoC,IAAOoF,KAAImJ,MAAApO,YAAA,+BAIzBkoC,EAAyBroC,YAAOsoC,IAAPtoC,CAAawO,MAAArO,YAAA,q7BAK3B,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAOioC,WAAW,GAClDhtB,IAmBAF,KAmBA,SAAAra,GAAQ,OAAAA,EAALX,MAAkBC,OAAOC,OAAO,GAGzBqb,IAAgBhU,IAW1B4gC,EAA2BxoC,IAAOC,IAAGyO,MAAAvO,YAAA,0IAKvCsb,K,gDC/EEgtB,EAAmB,SAAHzpC,GAAmE,IAA7DqoB,EAAWroB,EAAXqoB,YAAa5hB,EAAWzG,EAAXyG,YAAgBrG,EAAK4rB,YAAAhsB,EAAAisB,GAC7DjlB,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,GAAEG,KAE7DuiC,EAAajjC,EAAYoC,IACzBqqB,EAAezsB,EAAYqB,MAC3B6hC,EAAethB,EAAYuhB,WAEjC,OACEplC,eAACwkC,EAAgB3oC,wBAAA,GAAKD,GAAK,IAAAP,SAAA,CACzBH,cAACwpC,EAAgB,CAACW,aAAW,EAAAhqC,SAAC,gBAC9B2E,eAACykC,EAAkB,CAAAppC,SAAA,CACjB2E,eAAA,OAAA3E,SAAA,CACEH,cAAA,MAAAG,SACEH,cAAA,QAAAG,SAAOqzB,MAET1uB,eAAA,MAAA3E,SAAA,CACEH,cAAA,QAAAG,SACEH,cAAC0pC,EAAW,CAAAvpC,SAAC,YAEd6pC,QAGLllC,eAAC6kC,EAAsB,CAACS,WAAW,KAAKC,OAAK,EAAC/8B,KAAK,KAAInN,SAAA,CACrDH,cAAA,SAAAG,SACE2E,eAAA,MAAA3E,SAAA,CACEH,cAAA,MAAAG,SAAI,eACJH,cAAA,MAAAG,SAAI,SACJH,cAAA,MAAAG,SAAI,SACJH,cAAA,MAAAG,SAAI,eACJH,cAAA,MAAAG,SAAI,qBAGRH,cAAA,SAAAG,SACG8pC,GACCA,EAAa9lC,KAAI,SAAC+P,EAAMwB,GAAK,OAC3B5Q,eAAA,MAAgB9D,UAAWkT,EAAKo2B,aAAe,cAAgB,GAAGnqC,SAAA,CAChEH,cAAA,MAAAG,SAAK+T,EAAKq2B,iBACVvqC,cAAA,MAAAG,SAAKqqC,WAASC,QAAQv2B,EAAKw2B,aAAaC,SAAS,kBAAmB,CAAEC,OAAQ,YAC9E5qC,cAAA,MAAAG,SAAKqqC,WAASC,QAAQv2B,EAAKw2B,aAAaC,SAAS,aAAc,CAAEC,OAAQ,YACzE5qC,cAAA,MAAAG,SAAK+T,EAAK22B,kBACV/lC,eAAA,MAAI9D,UAAU,cAAab,SAAA,CACxB+T,EAAK42B,YAAc9qC,cAAA,QAAMgB,UAAU,YAAWb,SAAC,eAC9C+T,EAAK42B,YAAc9qC,cAAA,QAAAG,SAAM,eAC1B+T,EAAKo2B,cAAgBtqC,cAAA,OAAKgB,UAAU,mBAAmB6M,IAAKk9B,EAAY98B,IAAI,iBARxEyH,EAUJ,SAIb5Q,eAACglC,EAAwB,CAAA3pC,SAAA,CACvB2E,eAAA,QAAA3E,SAAA,CAAM,aAAWmH,EAAa,6BAA8B,WAC5DtH,cAAA,QAAAG,SAAM,mFAKhB,E,uBC1Ea8O,EAAwB,WACnC,IAAAhM,EAA8CC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAtD+nC,EAAe7nC,EAAA,GAAE8nC,EAAkB9nC,EAAA,GAGZ4iC,EAA1Bp+B,qBAAWC,KADba,YAAwB1B,EAAWg/B,EAApBj9B,QAAsB6f,EAAWod,EAAXpd,YAGvC,OACE3oB,cAAA6E,WAAA,CAAA1E,SACGwoB,IAAgBA,EAAYuiB,cAC3BpmC,eAAAD,WAAA,CAAA1E,SAAA,CACE2E,eAACqmC,IAAiB,CAAAhrC,SAAA,CAChBH,cAACorC,IAAkB,CAACC,MAAO1iB,EAAY2iB,aAAcrmC,QAAS,kBAAMgmC,GAAmB,EAAK,EAAC9qC,SAC1FwoB,EAAY2iB,eAEd,YAEHtrC,cAAC+pC,EAAgB,CACfnmC,KAAMonC,EACNvlC,OAAQ,kBAAMwlC,GAAmB,EAAM,EACvC39B,KAAK,KACLi+B,UAAQ,EACR5iB,YAAaA,EACb5hB,YAAaA,EACby5B,QAAS,WACPyK,GAAmB,EACrB,QAMZ,C,8HCjCaO,EAAkBlqC,YAAOgf,IAAPhf,CAAaE,MAAAC,YAAA,8UAIpB,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAgB9C4pC,EAAcnqC,YAAO0D,IAAP1D,CAAcc,MAAAX,YAAA,4GAQ5BiqC,EAA0BpqC,IAAOC,IAAGsF,MAAApF,YAAA,0C,6FCnBpCkqC,EAAc,SAAHrrC,GAA0F,IAApF+P,EAAK/P,EAAL+P,MAAOm0B,EAAWlkC,EAAXkkC,YAAWoH,EAAAtrC,EAAEurC,sBAAc,IAAAD,GAAQA,EAAEnmC,EAAMnF,EAANmF,OAAQqmC,EAAMxrC,EAANwrC,OAAWprC,EAAK4rB,YAAAhsB,EAAAisB,GAChG,OACEznB,eAAC0mC,EAAe7qC,wBAAA,GAAKD,GAAK,IAAEshB,SAAS,SAAS,kBAAgB,gCAAgCupB,UAAQ,EAAAprC,SAAA,CACpGH,cAACsgB,IAAMmpB,OAAM,CAAAtpC,SACXH,cAACsgB,IAAMlY,MAAK,CAAAjI,SAAEkQ,MAEhBrQ,cAACsgB,IAAM4B,KAAI,CAAA/hB,SACT2E,eAACinC,IAAS,CAACC,OAAK,EAAA7rC,SAAA,CACdH,cAACgI,IAAG,CAAA7H,SAAEqkC,IACNxkC,cAACgI,IAAG,CAAA7H,SACD0rC,EACC/mC,eAAC4mC,EAAuB,CAAAvrC,SAAA,CACtBH,cAACyrC,EAAW,CAACxmC,QAASQ,EAAQ6H,KAAK,KAAInN,SAAC,OAGxCH,cAACyrC,EAAW,CAACxmC,QAAS6mC,EAAQx+B,KAAK,KAAInN,SAAC,WAK1CH,cAACyrC,EAAW,CAACxmC,QAASQ,EAAQ6H,KAAK,KAAInN,SAAC,iBAStD,C,+DCpBewW,IAbI,SAAHrW,GAA6B,IAAvBsW,EAAOtW,EAAPsW,QACpB,OACE5W,cAACisC,IAAwB,CAAA9rC,SACvB2E,eAACwK,IAAgB,CAAAnP,SAAA,CACfH,cAAA,OAAK6N,ICZE,k6CDYkBI,IAAI,gBAC7BjO,cAAA,OAAAG,SACEH,cAAA,QAAAG,SAAOyW,UAKjB,C,mCEnBe,QAA0B,wC,mCCAzC,iFAEO,SAASs1B,EAAWC,EAAcxsB,GACvC,OAAO6qB,WAASC,QAAQ0B,GAAMxB,SAAShrB,EACzC,CAEO,IAAM0J,EAAc,SAACF,EAAkBC,EAAkBgjB,GAC9D,IAAMC,EAAaljB,EAAWmjB,YAAa,IAAIhjB,MAAOgjB,UAAYljB,EAAWkjB,WAC7E,OAAOtD,KAAKuD,OAAOH,EAAYE,UAAYD,GAAc,IAC3D,C,6HCPaG,EAAoBlrC,IAAOC,IAAGC,MAAAC,YAAA,8TACrB,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO6qC,cAAc,IAoBnDrkC,EAAQ9G,IAAOorC,GAAEtqC,MAAAX,YAAA,qGACnB,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,G,qICpBjCyoB,EAAgBhpB,IAAOC,IAAGC,MAAAC,YAAA,g5BAgCL,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,GAG9Cqb,IAAgB7L,IAc1Bs7B,EAAoBrrC,IAAOsrC,GAAExqC,MAAAX,YAAA,iLAI7B,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,G,+JCrDnCwJ,EAA2B/J,IAAOC,IAAIiF,OAAM,SAAAlG,GAAA,IAAGU,EAASV,EAATU,UAAS,MAAQ,CAC3EA,UAAW+L,IAAW,wCAAyC/L,GAChE,GAFuCM,CAErCE,MAAAC,YAAA,mZAUsBO,KAcZ6qC,EAA8BvrC,YAAOwL,IAAPxL,CAAgBc,MAAAX,YAAA,kdAE9C,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,G,sIC7BnCkJ,EAAoBzJ,IAAOC,IAAGC,MAAAC,YAAA,uWAiB9B,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAInCirC,EAAgBxrC,YAAOyrC,IAAPzrC,CAAec,MAAAX,YAAA,8P,uFCTtCurC,EAAU,SAAH1sC,EAAAwB,GAGP,IAFFmrC,EAAa3sC,EAAb2sC,cAAeC,EAAS5sC,EAAT4sC,UACf31B,EAAIzV,EAAJyV,KAAMuE,EAAKha,EAALga,MAAOpG,EAAK5T,EAAL4T,MAAOy3B,EAAUrrC,EAAVqrC,WAAYC,EAAgBtrC,EAAhBsrC,iBAElC,OAAQ71B,GACN,IAAK,aAEH,MAAO,CAAE01B,gBAAeC,UADT,IAAIpE,MAAeqE,GAAYpsC,KAAK+a,IAErD,IAAK,gCAEH,MAAO,CAAEmxB,cADTA,EAAgBG,EAAiBhT,MAAK,SAACiT,GAAQ,OAAKA,CAAQ,IACpCH,UAAWE,GACrC,IAAK,aAEH,MAAO,CAAEH,cAAenxB,EAAOoxB,UADJ,OAATA,QAAS,IAATA,OAAS,EAATA,EAAWnsC,KAAK+a,IAEpC,IAAK,aAQH,OANAoxB,EADe,OAALx3B,QAAK,IAALA,IAAS,GACJoG,EACXA,EACFmxB,EAAgBnxB,EACPoxB,EAAUj5B,OAAM,SAACvP,GAAC,OAAMA,CAAC,MAClCuoC,GAAgB,GAEX,CAAEA,gBAAeC,aAC1B,QACE,MAAO,CAAED,gBAAeC,aAE9B,EAEaI,EAAY,SAACC,GACxB,IAAAC,EAA0BC,qBAAWT,EAASO,GAAUG,EAAAtqC,YAAAoqC,EAAA,GAAjDhmC,EAAKkmC,EAAA,GAAEC,EAAQD,EAAA,GAgBtB,MAAO,CACLlmC,QACAiV,OAjBmBpV,mBACnB,iBAAO,CACLumC,UAAW,SAAAvrC,GAAgC,IAA7B8qC,EAAU9qC,EAAV8qC,WAAYU,EAASxrC,EAATwrC,UACxBF,EAAS,CAAEp2B,KAAM,aAAcuE,MAAO+xB,EAAWV,cACnD,EACAW,0BAA2B,SAACV,GAC1BO,EAAS,CAAEp2B,KAAM,gCAAiC61B,oBACpD,EACAW,UAAW,SAACjyB,EAAOpG,GACJi4B,EAAbj4B,GAAS,EAAa,CAAE6B,KAAM,aAAcuE,QAAOpG,SAAoB,CAAE6B,KAAM,aAAcuE,SAC/F,EACD,GACD,CAAC6xB,IAOL,C,kaCzDaK,EAAsB,CACjCC,gBAAiB,kBACjBC,cAAe,eACfC,aAAc,mBACdC,kBAAmB,kBACnBC,cAAe,qBAGJC,EAAc,CACzBC,UAAW,eACXC,IAAK,sBACLC,KAAM,OACNC,eAAgB,kBAChBC,YAAa,eACbC,UAAW,aACXC,YAAa,eACbC,IAAK,sBACLC,qBAAsB,+BACtB7E,WAAY,cACZ8E,cAAe,sBACfC,gBAAiB,mBACjBC,UAAW,aACXC,UAAW,aACXC,gBAAiB,oBAGNC,EAAmB,CAC9BC,WAAY,sBACZC,kBAAmB,sBACnBC,aAAc,iBACdC,SAAU,uBACVC,oBAAqB,wBACrBC,iBAAkB,qBAClBC,mBAAoB,8BACpBC,mBAAoB,yBACpBC,qBAAsB,6BAGXC,EACN,MADMA,EAEN,MAGMC,EACD,WA+DCC,EAA2B,WACtC,IAAIC,EAAYC,UAAUD,WAAaC,UAAUtiB,OAC7CuiB,EAAS,MAMb,OALIF,EAAUG,MAAM,UAAYH,EAAUG,MAAM,YAAcH,EAAUG,MAAM,SAC5ED,EAAS,MACAF,EAAUG,MAAM,cACzBD,EAAS,WAEJA,EAAS,IAAMD,UAAUG,UAClC,EAMaC,EAAiB,SAACC,GAC7B,IADoGt3B,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,GAAAA,UAAA,GAAP,CAAC,GAAtCu3B,YACvC,CACf,IAAQ/nB,EAAagoB,EAAbhoB,SACR8nB,EAAe,GAAAlqC,OAAMoiB,EAAQ,MAAApiB,OAAKkqC,EACpC,CAEAh9B,eAAeK,QAAQm6B,EAAoBI,kBAAmBoC,GAC9DE,EAAeF,gBAAkBA,CACnC,EAaaE,EAAkC,CAC7CC,mBAAoBxoB,YAAwBC,IAAmB4B,4BAC/D4mB,YAAatiC,YAAiB8Z,IAAmB6B,2BACjDumB,gBAAiBh9B,eAAeC,QAAQu6B,EAAoBI,oBAG1DsC,EAAeC,oBAkBZ,WACL,IAAIrxB,EAAU,CACZuxB,oBAAoB,EACpBC,QAAS,IACTC,WAAY,GAGd,SAASC,EAAQC,GACf,IAAIC,EAAY,CACdC,UAAWF,EAAe,UAC1BG,OAAQ,CACNC,SAAUJ,EAAY,OAAY,SAClCK,UAAWL,EAAY,OAAa,UACpCM,SAAUN,EAAY,OAAY,SAClCO,SAAUP,EAAY,OAAY,SAClCQ,MAAOR,EAAY,OAAS,QAGhCz9B,eAAeK,QAAQm6B,EAAoBG,aAAcz5B,KAAKC,UAAUu8B,IAExE19B,eAAeK,QACbH,IAAkBw6B,cAClBx5B,KAAKC,UAAU,CACb+8B,IAAKT,EAAY,OAAY,SAC7BU,KAAMV,EAAY,OAAa,YAGrC,CAEA,SAASxrB,EAAMmsB,GACb,IAAIC,EAAWC,EAAoBF,EAAI1nB,KAAK5S,aAAe,QAC3D9D,eAAeK,QAAQm6B,EAAoBG,aAAcz5B,KAAKC,UAAU,CAAE8Q,MAAOosB,IACnF,CAEA1B,UAAU4B,YAAYC,mBAAmBhB,EAASvrB,EAAOnG,EAC3D,CApDE2yB,GAGK,IAAMC,EAAc,SAACxpB,GAC1BgoB,EAAehoB,SAAWA,EAC1BgoB,EAAeyB,YAxGa,SAACC,EAAkB1pB,GAC/C,IAAI2pB,EAAS,GACb,OAAQ3pB,GACN,KAAK4lB,EAAYQ,IACjB,KAAKR,EAAYU,cACf,MAEF,QACE,OAAgB,OAARoD,QAAQ,IAARA,OAAQ,EAARA,EAAUzjB,eAChB,IAAK,YACH0jB,EAAS,gBACT,MACF,IAAK,IACHA,EAAS,YACT,MACF,IAAK,aACHA,EAAS,cAMjB,IAAIF,EAAczpB,EAQlB,OAPIA,IAAa4lB,EAAYE,IAC3B2D,EAAcpC,EACLrnB,IAAa4lB,EAAYQ,MAClCqD,EAAcpC,GAGF,CAACsC,EAAQF,GAAah8B,QAAO,SAACjC,GAAI,OAAKiY,QAAQjY,EAAK,IACrDo+B,KAAK,MACpB,CAyE+BC,CAAen+B,OAAO4H,SAAS4lB,SAAUlZ,GACtEgoB,EAAe8B,WAxEY,SAAC9pB,GAC5B,OAAQA,GACN,KAAK4lB,EAAYC,UACjB,KAAKD,EAAYG,KACf,OAAOuB,EAET,QACE,OAAOtnB,EAEb,CA+D8B+pB,CAAc/pB,GAC1CgoB,EAAegC,QA9DS,SAAChqB,GACzB,IAAM8nB,EAAkBh9B,eAAeC,QAAQu6B,EAAoBI,mBACnE,OAAQ1lB,GACN,KAAK4lB,EAAYY,UACf,MAAM,eAAN5oC,OAAsBoiB,GACxB,KAAK4lB,EAAYC,UACf,OAA0B,MAAnBiC,EAA0B,0BAA4B,0BAC/D,QACE,OAAO9nB,EAEb,CAoD2BiqB,CAAWjqB,GACpCgoB,EAAekC,UAAY,IAAItpB,IACjC,EAEMwoB,EAAsB,CAC1B,EAAK,oBACL,EAAK,uBACL,EAAK,WAwCA,IAAMe,EAAwB,SAACC,GAAgC,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnE,IAAKN,EACH,MAAO,GAGT,IAAMO,GACmD,QAAvDN,EAAAD,EAAGruC,MAAK,SAACyP,GAAI,OAAKA,EAAKo/B,YAAcC,IAAWC,MAAM,WAAC,IAAAT,GAAgB,QAAhBC,EAAvDD,EAAyDU,sBAAc,IAAAT,GAA+B,QAA/BC,EAAvED,EAAyEvuC,MAAK,SAACyP,GAAI,OAAKA,EAAKw/B,QAAQ,WAAC,IAAAT,OAA/C,EAAvDA,EAAwGruC,QAAS,GAE7G+uC,GACiD,QAArDT,EAAAJ,EAAGruC,MAAK,SAACyP,GAAI,OAAKA,EAAKo/B,YAAcC,IAAWtiB,IAAI,WAAC,IAAAiiB,GAAgB,QAAhBC,EAArDD,EAAuDO,sBAAc,IAAAN,GAA+B,QAA/BC,EAArED,EAAuE1uC,MAAK,SAACyP,GAAI,OAAKA,EAAKw/B,QAAQ,WAAC,IAAAN,OAA/C,EAArDA,EAAsGxuC,QAAS,GAEjH,MAAM,IAAN0B,OAAW,CAAC+sC,EAAaM,GAAYx9B,OAAOgW,SAASmmB,KAAK,KAC5D,EAEO,SAASsB,EAAYC,EAA4BC,EAAkBC,GACxE,IAAIC,EAA+B,GAWnC,OAVS,OAATH,QAAS,IAATA,KAAWI,SAAQ,SAACC,GAAW,IAADC,EAAAC,EACtBC,EAA6B,QAApBF,EAAGD,EAAMvrB,mBAAW,IAAAwrB,OAAA,EAAjBA,EAAmBxnC,GAC/B+M,GAAmB,QAAb06B,EAAAF,EAAMprC,eAAO,IAAAsrC,OAAA,EAAbA,EAAejrC,MAAO+qC,EAAMljB,KAAOkjB,EAAM/qC,IAEjDkrC,EACFL,EAAcM,KAAK,CAAE1uC,GAAG,GAADU,OAAKwtC,EAAQ,KAAAxtC,OAAIytC,EAAU,KAAAztC,OAAI+tC,GAAa36B,IAAKA,IAExEs6B,EAAcM,KAAK,CAAE56B,IAAKA,GAE9B,IACOs6B,CACT,CAEO,SAASO,EAAoBC,GAA0C,IAADC,EAAAC,EAC3E,IAAKF,EACH,MAAO,CAAC,EAGV,IAAMG,EAAc,GACJ,QAAhBF,EAAAD,EAASI,eAAO,IAAAH,GAAhBA,EAAkBR,SAAQ,SAACY,GACzBA,EAAapB,eAAeQ,SAAQ,SAAC99B,GAC/BA,EAAOu9B,UACTiB,EAAYL,KAAIQ,YAAC,CAAC,EAAE3+B,EAAOm9B,UAAYn9B,EAAO4+B,eAElD,GACF,IAEA,IAAM74B,EAAuB,CAC3B84B,YAAaL,EACb/uC,GAAI,GACJqvC,aAAa,GAAD3uC,OAAKkuC,EAASjiC,cAC1B2iC,eAAe,GAAD5uC,OAAKkuC,EAASW,WAGxBC,EAA2B,QAAvBV,EAAGF,EAASzxC,mBAAW,IAAA2xC,OAAA,EAApBA,EAAsBjwC,MAAK,SAACyP,GAAI,IAAAmhC,EAAA,OAAKnhC,EAAKtP,SAAyB,QAApBywC,EAAKb,EAAS/hC,cAAM,IAAA4iC,OAAA,EAAfA,EAAiBzwC,MAAK,IACjFpC,EAAe,OAAJ4yC,QAAI,IAAJA,OAAI,EAAJA,EAAM7xC,KAAK+xC,MAAM,MAAM,GAClCC,GAAgB,OAAJH,QAAI,IAAJA,OAAI,EAAJA,EAAMlwC,aAAcA,IAAUC,IAAM,MAAQ,OAE9D,MAAO,CAAEsN,OAAO,GAADnM,OAAK9D,EAAQ,KAAA8D,OAAIivC,GAAar5B,QAC/C,C,ymBCrQahR,EAAsB5J,IAAOC,IAAGC,MAAAC,YAAA,QAEhC+zC,EAAuBl0C,YAAO0G,KAAKxB,MAAM,CACpDxF,UAAW,cADuBM,CAElCc,MAAAX,YAAA,QAEWg0C,EAAqBn0C,IAAOC,IAAIiF,MAAM,CACjDxF,UAAW,yCADqBM,CAEhCuF,MAAApF,YAAA,4JAMuBO,KAMZ0zC,EAAqBp0C,YAAOyS,IAAK4hC,KAAZr0C,CAAiBuO,MAAApO,YAAA,gHAGxC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAKjCspC,EAAoB7pC,IAAOC,IAAGuO,MAAArO,YAAA,oLAEhCkb,KAQE,SAAA7a,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAKnCqkC,EAAqB5kC,IAAOC,IAAGyO,MAAAvO,YAAA,sDAKtCm0C,EAAel4B,YAAGvN,MAAA1O,YAAA,woBA0CX2kC,EAAY9kC,IAAOC,IAAGyc,MAAAvc,YAAA,2sBAC/Bm0C,GACY,SAAAvzC,GAAQ,OAAAA,EAALklB,OAAqBtK,GAAa,IAKtB,SAAA3a,GAAQ,OAAAA,EAALilB,OAAqBtK,GAAa,IAcpC,SAAAgB,GAAQ,OAAAA,EAALsJ,OAAqBtK,GAAa,IAY7C,SAAAoB,GAAQ,OAAAA,EAALkJ,OAAqBtK,GAAa,IAYhDmuB,GAPuB9pC,YAAOa,IAAPb,CAAe8c,MAAA3c,YAAA,8BAOjBH,IAAO+lB,EAAC1I,MAAAld,YAAA,iBACtC,SAAAqd,GAAQ,OACE,IADFA,EAALusB,OACQ,qFAAA/kC,OAKJqW,IAAS,oBACjB,KAcU/R,GARwBtJ,IAAOmU,MAAKoJ,MAAApd,YAAA,iBAC7C,SAAAsd,GAAe,OACE,IADFA,EAAZ82B,cACe,cAAAvvC,OAEX0W,IAAY,4BAEtB,IAEkC1b,YAAO0D,IAAP1D,CAAcw0C,MAAAr0C,YAAA,6IAI1BO,MAKVgJ,EAA0B1J,IAAOC,IAAGw0C,MAAAt0C,YAAA,uDAKpCu0C,EAAsB10C,IAAOC,IAAG00C,MAAAx0C,YAAA,iCAQhCkJ,GAJyBrJ,IAAOC,IAAG20C,MAAAz0C,YAAA,gCAIFH,IAAOC,IAAG40C,MAAA10C,YAAA,4NAIjCO,IAMnBg0C,IAMS/J,EAA2B3qC,YAAO80C,IAAP90C,CAAkB+0C,MAAA50C,YAAA,uWAUpD0pC,EAIFjF,EAIEiF,GAMO3E,EAAoBllC,IAAOC,IAAG+0C,MAAA70C,YAAA,oE,6HC9N9B80C,EAAY74B,YAAGlc,MAAAC,YAAA,gQAYf20C,EAAa90C,IAAOC,IAAGa,MAAAX,YAAA,gBAChC80C,E,gFCfSC,EAAuB,WAClC,OACE1xC,eAAA,OACElE,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,eACLwmB,MAAM,eACNvmB,UAAU,gCACV6kC,QAAQ,YAAW1lC,SAAA,CAEnBH,cAAA,QAAMmB,EAAE,iIACRnB,cAAA,QAAMmB,EAAE,8JAGd,C,qDCyBewa,IA7Bf,WACE,IAAA1Y,EAAoCC,mBAAqB,CACvDrC,MAAO,EACPC,OAAQ,IACRqC,EAAAC,YAAAH,EAAA,GAHKwzC,EAAUtzC,EAAA,GAAEuzC,EAAavzC,EAAA,GAyBhC,OApBAkB,qBAAU,WACR,IAAMsyC,EAAU,WACdD,EAAc,CACZ71C,MAAOuT,OAAOwiC,WACd91C,OAAQsT,OAAOyiC,aAEnB,EAQA,OALAF,IAEAviC,OAAO0iC,iBAAiB,SAAUH,GAG3B,WACLviC,OAAO2iC,oBAAoB,SAAUJ,EACvC,CAEF,GAAG,IAEIF,CACT,C,2FClCAO,aAAanjC,QAAQojC,IAAyD,QAA/CC,EAAGx8B,SAASy8B,cAAc,6BAAqB,IAAAD,OAAA,EAA7CA,EAAoEp7B,OAE9F,IAAMqO,EAAeqE,YAAiD,QAAxC4oB,EAAC18B,SAASM,eAAe,uBAAe,IAAAo8B,OAAA,EAAvCA,EAAyCC,UAAUC,O,mCCN1E,4xE,iLCOF5/B,EAAc,UASdD,EAAU,eAAAnX,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAUi/B,EAAaC,EAAyB1G,GAAgB,IAAAhvC,EAAAsV,EAAAqgC,EAAAlgC,EAAAmgC,EAAAlD,EAAAmD,EAAAC,EAAAC,EAAAC,EAAA,OAAA1/B,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAwBxF,GAvBMxB,GADkFtV,EACjD01C,GAAS,CAAC,GAA3CpgC,KAAIqgC,EAAA31C,EAAEyV,YAAI,IAAAkgC,EAAG,OAAMA,EAAEC,EAAO51C,EAAP41C,QAG3BA,EAAO/2C,wBAAA,GAAQ+2C,GAAO,GAAA5C,YAAA,GAAGiD,IAAcf,aAAavjC,QAAQwjC,OAE/C,SAAT1/B,IACFmgC,EAAO/2C,wBAAA,GACF+2C,GAAO,IACV,eAAgB,sBAGP,cAATngC,IACFmgC,EAAO/2C,wBAAA,GACF+2C,GAAO,IACV,eAAgB,sDAKhBtgC,GAAiB,SAATG,IACVH,EAAO1C,KAAKC,UAAUyC,KAIpB05B,EAAQ,CAADp4B,EAAAE,KAAA,SAGuD,OAF1D++B,EAAkB,IAAIK,gBAEtBJ,EAAQjX,YAAW,kBAAMgX,EAAgBM,OAAO,GAAEnH,GAAQp4B,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAG7Cs/B,MAAMX,EAAG52C,wBAAA,GAAO62C,GAAK,IAAEpgC,OAAMsgC,UAASS,OAAQR,EAAgBQ,UAAS,QAAxF3D,EAAQ97B,EAAA6V,KAAA7V,EAAAE,KAAA,uBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAAAA,EAAA6M,GAAA,QAIW,OAJX7M,EAAAC,KAAA,GAIRioB,aAAagX,GAAMl/B,EAAA+lB,OAAA,YAAA/lB,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAGJs/B,MAAMX,EAAG52C,wBAAA,GAAO62C,GAAK,IAAEpgC,OAAMsgC,aAAU,QAAxDlD,EAAQ97B,EAAA6V,KAAA,WAIc,MAApBimB,EAAS4D,QAA6D,WAA3ChkC,OAAO4H,SAAS4lB,SAASyW,cAA0B,CAAA3/B,EAAAE,KAAA,SAC4B,OAA5GxE,OAAO4H,SAAS4M,KAAO,oBAAsB0vB,mBAAmBlkC,OAAO4H,SAAS4lB,UAAY,iBAAgBlpB,EAAAG,OAAA,kBAMtD,GAAlDi/B,EAActD,EAASkD,QAAQ5yB,IAAI,iBACrC,oBAAoByzB,KAAKT,GAAa,CAADp/B,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GACvB47B,EAASgE,OAAM,QAA/BX,EAAMn/B,EAAA6V,KAAA7V,EAAAE,KAAA,oBACY,SAATrB,EAAe,CAAAmB,EAAAE,KAAA,SAEX,OAFWF,EAAA+/B,GAAA93C,IAAA+X,EAAAggC,GAAA/3C,YAAA,GAEnB6zC,GAAQ97B,EAAAigC,GAAA,GAAAjgC,EAAAE,KAAA,GACC47B,EAASoE,OAAM,QAAAlgC,EAAAmgC,GAAAngC,EAAA6V,KAAA7V,EAAAogC,GAAA,CAA3B1hC,KAAIsB,EAAAmgC,IAFNhB,GAAM,EAAAn/B,EAAA+/B,IAAA//B,EAAAggC,GAAAhgC,EAAAigC,GAAAjgC,EAAAogC,IAAApgC,EAAAE,KAAA,iBAMO,OANPF,EAAAqgC,GAAAp4C,IAAA+X,EAAAsgC,GAAAr4C,YAAA,GAMD6zC,GAAQ97B,EAAAugC,GAAA,GAAAvgC,EAAAE,KAAA,GACC47B,EAASjQ,OAAM,QAAA7rB,EAAAwgC,GAAAxgC,EAAA6V,KAAA7V,EAAAygC,IAAA,CAA3B/hC,KAAIsB,EAAAwgC,IAFNrB,GAAM,EAAAn/B,EAAAqgC,IAAArgC,EAAAsgC,GAAAtgC,EAAAugC,GAAAvgC,EAAAygC,KAAA,WAMH3E,EAAS4E,GAAG,CAAD1gC,EAAAE,KAAA,eACRi/B,EAAM,eAAAn/B,EAAAG,OAAA,SAGPg/B,GAAM,yBAAAn/B,EAAAI,OAAA,GAAAR,EAAA,yBACd,gBArEsBS,EAAAC,EAAAO,GAAA,OAAAjZ,EAAA2Y,MAAA,KAAAC,UAAA,KAuEV/B,EAAS,eAAA9U,EAAA8V,YAAAC,cAAAC,MAAG,SAAAe,EACvBm+B,EACAC,EACA1G,GAAgB,OAAA14B,cAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,cAAAU,EAAAT,OAAA,SAETpB,EAAsB8/B,EAAG52C,wBAAA,GAAO62C,GAAK,IAAE6B,OAAQ,SAAUvI,IAAQ,wBAAAx3B,EAAAR,OAAA,GAAAM,EAAA,KACzE,gBANqBQ,EAAAC,EAAAK,GAAA,OAAA7X,EAAA4W,MAAA,KAAAC,UAAA,I,kFCrFT5J,E,KAAmBhO,EAAOC,IAAGC,MAAAC,YAAA,iN,mCCF1C,oEAIayN,EAAa,WACxB,IACiByZ,EACbhhB,qBAAWC,KADba,YAAekgB,YAGjB,OACE3oB,cAAA6E,WAAA,CAAA1E,UACc,OAAXwoB,QAAW,IAAXA,OAAW,EAAXA,EAAa0Z,SAAqC,IAA3B1Z,EAAYzZ,YAClCpK,eAACqmC,IAAiB,CAAAhrC,SAAA,CAChBH,cAAA,QAAAG,SAAM,mBACLwoB,EAAYmX,qBAKvB,C,sKCQal4B,EAAiByT,wBAA+B,MAOhDxF,EAAyB,SAAHvV,GAWa,IAV9CmI,EAAWnI,EAAXmI,YACAqN,EAAaxV,EAAbwV,cACAC,EAAWzV,EAAXyV,YACAC,EAAY1V,EAAZ0V,aACA7V,EAAQG,EAARH,SACAm5C,EAAKh5C,EAALg5C,MACAC,EAAcj5C,EAAdi5C,eACA1mC,EAAOvS,EAAPuS,QACA8U,EAAUrnB,EAAVqnB,WACA1gB,EAAS3G,EAAT2G,UAEAhE,EAAsCC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAAvDu2C,EAAWr2C,EAAA,GAAEukB,EAAcvkB,EAAA,GAClCG,EAAkDJ,oBAAS,GAAMM,EAAAJ,YAAAE,EAAA,GAA1Dm2C,EAAiBj2C,EAAA,GAAEk2C,EAAoBl2C,EAAA,GACtCm2C,EAAsBzgB,aAAgB,SAAC1xB,GAAK,OAAKA,CAAK,IAAtDmyC,kBACArxB,EAAoBC,cAApBD,gBAEFvgB,EAAa,eAAAjG,EAAAqW,YAAAC,cAAAC,MAAG,SAAAC,IAAA,IAAAk8B,EAAAoF,EAAA,OAAAxhC,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEQ,OAFRF,EAAAC,KAAA,EAElB+gC,GAAqB,GAAKhhC,EAAAE,KAAA,EACHihC,YAA0B,CAC/Cvc,kBAAmB70B,EAAYK,QAAQS,WACvCuwC,gBAAiBrxC,EAAYK,QAAQC,YACrC6zB,cAAen0B,EAAYK,QAAQ8zB,cACnCmd,YAAatxC,EAAYK,QAAQixC,cACjC,OALIvF,EAAQ97B,EAAA6V,KAMd9lB,EAAYK,QAAQC,YAAcyrC,EAAS5vC,MACrCg1C,EAAanxC,EAAYK,QAAQC,YAAc,mBAAqB,wBAC1Euf,EAAgB,GAADhiB,OAAI8N,OAAOqU,QAAQC,SAAQ,OAAApiB,OAAMszC,GAAc,CAC5D,CAAEjxB,YAAalgB,EAAYkgB,YAAaxf,IAAKV,EAAYK,QAAQK,OAGnEwwC,EAAkBlxC,GAAYiQ,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAE9B8M,QAAQ5F,IAAI,yBAAwBlH,EAAA6M,IAAS,QAElB,OAFkB7M,EAAAC,KAAA,GAE7C+gC,GAAqB,GAAMhhC,EAAA+lB,OAAA,6BAAA/lB,EAAAI,OAAA,GAAAR,EAAA,yBAE9B,kBArBkB,OAAAxW,EAAAmX,MAAA,KAAAC,UAAA,KAuBnB,OACElZ,cAAC4H,EAAeiU,SAAQ,CACtBC,MAAO,CACLrT,cACAqN,gBACA0jC,cACA9xB,iBACA7f,sBAAuB,CACrBC,SAAU2xC,EACV1xC,iBAEFgO,cACAC,eACAsjC,QACAC,iBACA5xB,aACA9U,UACA5L,aACA9G,SAEDA,GAGP,C,6IC1FaqoB,EAAY,SAAHloB,GAAoE,IAA9DsoB,EAAItoB,EAAJsoB,KAAmBzoB,GAAFG,EAAX05C,YAAqB15C,EAARH,UAAU8E,EAAO3E,EAAP2E,QAAYvE,EAAK4rB,YAAAhsB,EAAAisB,GAcxE,OACEvsB,cAAA,IAAAW,wBAAA,CACEioB,KAAMA,EACN3jB,QAAS,SAACyE,GACD,OAAPzE,QAAO,IAAPA,KAAUyE,GAjBE,SAACA,EAAG6tC,GACpB7tC,EAAEuwC,iBAEF,IAAIp5C,EAAQuT,OAAO8lC,OAAOr5C,MAAQ,EAC9BC,EAASsT,OAAO8lC,OAAOp5C,OAAS,EAEpCsT,OAAO+lC,KACL5C,EACA,SAAS,4GAADjxC,OACoGzF,EAAK,YAAAyF,OAAWxF,GAEhI,CAOMs5C,CAAU1wC,EAAGkf,EACf,GACIloB,GAAK,IAAAP,SAERA,IAGP,C,0FC9Ba8rB,E,KAAe3qB,EAAOoF,KAAIlF,MAAAC,YAAA,8oCAKf,SAACf,GAAK,OAAKA,EAAM2qB,eAAe,IAa3C,SAAC3qB,GAAK,OAAKA,EAAMic,SAAS,IAoBP,SAACjc,GAAK,OAAKA,EAAM2qB,eAAe,IAKnC,SAAC3qB,GAAK,OAAKA,EAAM2qB,eAAe,GAGtCppB,KASG,SAACvB,GAAK,OAAKA,EAAM2qB,eAAe,G,4HCpD7CgvB,EAAyB/4C,YAAOmrB,IAAPnrB,CAAyBE,MAAAC,YAAA,uFAElD,SAAAnB,GAAW,OAAAA,EAARmb,SAA2B5Q,KAAO8S,aAAe9S,KAAOyvC,UAAU,IAG9E,SAAAx4C,GAAW,OAAAA,EAAR2Z,SAA2BmC,IAAkB,IAAI,IACpD,SAAAvb,GAAA,IAAGoZ,EAAQpZ,EAARoZ,SAAU9Z,EAAKU,EAALV,MAAK,OAClB8Z,GACAiC,YAAGtb,MAAAX,YAAA,0oBAGoBO,IASVL,EAAMC,OAAOC,QAIbF,EAAMC,OAAOC,QAMH0N,IAWtB,G,mCC/CL,8DASao0B,EAAW,SAAHrjC,GAA+E,IAAzE6mB,EAAM7mB,EAAN6mB,OAAQyc,EAAkBtjC,EAAlBsjC,mBAAoBzjC,EAAQG,EAARH,SAAQo6C,EAAAj6C,EAAEoF,iBAAS,IAAA60C,EAAG,QAAOA,EAClF,OACEv6C,cAACw6C,IAAc,CAAC,cAAY,mBAAmBx5C,UAAS,SAAAsF,OAAWZ,GAAYvF,SAC7EH,cAACy6C,IAAa,CAAC/0C,UAAU,QAAQy0C,KAAMhzB,EAAQuzB,YAAU,EAAC9W,mBAAoBA,EAAmBzjC,SAC9FA,KAIT,C,iICdaw6C,EAAa,SAAHr6C,GAAgF,IAADolC,EAAAplC,EAAzEO,aAAK,IAAA6kC,EAAG,OAAMA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,OAAMA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EAClF,OACE56C,cAAC4lC,IAAS,CAAChlC,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,cAAa1lC,SAC5GH,cAAA,QAAMmB,EAAE,yzFAGd,ECNaqwB,EAAe,SAAHlxB,GAAgF,IAADolC,EAAAplC,EAAzEO,aAAK,IAAA6kC,EAAG,OAAMA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,OAAMA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EACpF,OACE56C,cAAC4lC,IAAS,CAAChlC,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,cAAa1lC,SAC5GH,cAAA,QAAMmB,EAAE,g1DAGd,ECNa05C,EAAc,SAAHv6C,GAAgF,IAADolC,EAAAplC,EAAzEO,aAAK,IAAA6kC,EAAG,OAAMA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,OAAMA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EACnF,OACE56C,cAAC4lC,IAAS,CAAChlC,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,cAAa1lC,SAC5GH,cAAA,QAAMmB,EAAE,03JAGd,ECNa25C,EAAgB,SAAHx6C,GAAgF,IAADolC,EAAAplC,EAAzEO,aAAK,IAAA6kC,EAAG,OAAMA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,OAAMA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EACrF,OACE56C,cAAC4lC,IAAS,CAAChlC,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,cAAa1lC,SAC5GH,cAAA,KAAG+6C,UAAU,mCAAkC56C,SAC7CH,cAAA,QAAMmB,EAAE,+3BAIhB,ECRa65C,EAAgB,SAAH16C,GAAgF,IAADolC,EAAAplC,EAAzEO,aAAK,IAAA6kC,EAAG,OAAMA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,OAAMA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EACrF,OACE56C,cAAC4lC,IAAS,CAAChlC,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,cAAa1lC,SAC5GH,cAAA,KAAG+6C,UAAU,kCAAiC56C,SAC5CH,cAAA,QAAMmB,EAAE,yqBAIhB,ECRa85C,EAAW,SAAH36C,GAAgF,IAADolC,EAAAplC,EAAzEO,aAAK,IAAA6kC,EAAG,OAAMA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,OAAMA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EAChF,OACE56C,cAAC4lC,IAAS,CAAChlC,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,cAAa1lC,SAC5GH,cAAA,KAAG+6C,UAAU,mCAAkC56C,SAC7CH,cAAA,QAAMmB,EAAE,utGAIhB,E,QCRa+5C,EAAO,SAAH56C,GAAgF,IAADolC,EAAAplC,EAAzEO,aAAK,IAAA6kC,EAAG,OAAMA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,OAAMA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EAC5E,OACE56C,cAAC4lC,IAAS,CAAChlC,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,cAAa1lC,SAC5GH,cAAA,KAAG+6C,UAAU,2DAA2D95C,OAAO,OAAMd,SACnFH,cAAA,QACEmB,EAAE,i7BAiBZ,ECfag6C,EAA4B,SAAC32C,GACxC,GAAI42C,kBAAQ52C,GAAO,MAAO,GAE1B,OAAQA,GACN,IAAK,eACH,MAAO,MACT,IAAK,UACH,OAAOxE,cAACsV,IAAO,CAACC,MAAM,WAAWzU,OAAO,SAC1C,IAAK,mBACH,OAAOd,cAACsV,IAAO,CAACC,MAAM,WAAWzU,OAAO,SAC1C,IAAK,kBACH,OAAOd,cAAC86C,EAAa,CAACh6C,OAAO,SAC/B,IAAK,gBACH,OAAOd,cAACg7C,EAAa,CAACl6C,OAAO,SAC/B,IAAK,aACH,OAAOd,cAAC26C,EAAU,CAAC75C,OAAO,OAAOD,MAAM,SACzC,IAAK,eACH,OAAOb,cAACwxB,EAAY,CAAC1wB,OAAO,OAAOD,MAAM,SAC3C,IAAK,eACH,OAAOb,cAAC66C,EAAW,CAAC/5C,OAAO,OAAOD,MAAM,SAC1C,IAAK,kBACH,OAAOb,cAACi7C,EAAQ,CAACn6C,OAAO,OAAOD,MAAM,SACvC,IAAK,QACH,OAAOb,cAACk7C,EAAI,CAACp6C,OAAO,OAAOD,MAAM,SAEnC,QACE,MAAO,GAEb,E,yGCfaw6C,EAA0B/5C,IAAOC,IAAGC,MAAAC,YAAA,QAEpCmN,EAAoB,SAAHtO,GAA6C,IAAvCyG,EAAWzG,EAAXyG,YAAawH,EAAUjO,EAAViO,WAC/C2a,EAGI3hB,cAFa+zC,EAAMpyB,EAArB4E,YAAewtB,OAIXC,GAA2BjtC,EAHf4a,EAAhB5a,kBAGgD,oCAC1CqZ,EAAehgB,qBAAWC,KAA1B+f,WAER1kB,EAA8BC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAA/Cu4C,EAAOr4C,EAAA,GAAEs4C,EAAUt4C,EAAA,GACpBu4C,ECzBoC,SAC1CA,EACAC,EACAC,GAEA,OAAiB,OAAVF,QAAU,IAAVA,OAAU,EAAVA,EAAYvlC,QAAO,SAAC0lC,GACzB,MAAyB,oBAArBA,EAAEC,gBAec,MAAlBF,EAAQh3C,QACPw2C,kBAAQQ,EAAQG,cAAgBH,EAAQG,YAAYptB,gBAAkBgtB,EAAehtB,cAE1F,GACF,CDAqBqtB,CC9BqB,SAACj1C,GAAyB,IAAAk1C,EAAAC,EAA6B,OAARhjC,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,IAAAA,UAAA,GAExE,OAAXnS,QAAW,IAAXA,GAAuB,QAAZk1C,EAAXl1C,EAAao1C,kBAAU,IAAAF,OAAZ,EAAXA,EAAyB9lC,QAAO,SAAC0lC,GAAC,OAAc,IAATA,EAAElvC,KAAayvC,IAA2BttB,SAAS+sB,EAAEC,eAAe,IAChG,OAAX/0C,QAAW,IAAXA,GAAuB,QAAZm1C,EAAXn1C,EAAao1C,kBAAU,IAAAD,OAAZ,EAAXA,EAAyB/lC,QAAO,SAAC0lC,GAAC,OAAc,IAATA,EAAElvC,EAAQ,GAAC,CD4BpD0vC,CAA2Bt1C,EAAa4gB,GACxC5gB,EAAYurB,WACZipB,GAGIe,EAAQ/tC,EAAa,EAAIA,EAAuB,OAAVmtC,QAAU,IAAVA,OAAU,EAAVA,EAAY7uC,OAMxD,OACE7M,cAACq7C,EAAuB,CAAAl7C,SACtB2E,eAACkD,IAAG,CAAChH,UAAU,eAAcb,SAAA,CAC3BH,cAAA6E,WAAA,CAAA1E,SACa,OAAVu7C,QAAU,IAAVA,OAAU,EAAVA,EAAYj5C,MAAM,EAAG+4C,EAAoB,OAAVE,QAAU,IAAVA,OAAU,EAAVA,EAAY7uC,OAASyvC,GAAOn4C,KAAI,SAACuI,EAAGgB,GAAG,OACrE5I,eAACmD,IAAG,CAA0BkJ,GAAI,EAAGnQ,UAAW+L,IAAW,sBAAsB5M,SAAA,CAC/EH,cAACu8C,IAAe,CAAClsC,MAAO3D,EAAE8vC,KAAKr8C,SAC3Bi7C,kBAAQD,EAA0BzuC,EAAEovC,iBACc,GAAAx1C,OAE/CoG,EAAE8vC,KAAI,KAFTx8C,cAAA6E,WAAA,CAAA1E,SAAGg7C,EAA0BzuC,EAAEovC,oBAKvB,QAAXpvC,EAAE8vC,KACDx8C,cAACwoB,IAAS,CAACI,KAAM6zB,YAAYnB,EAAQv0C,GAAcsJ,MAAO,4BAA4BlQ,SACnFuM,EAAEH,cAGLvM,cAAA,QAAMqQ,MAAO3D,EAAEH,YAAYpM,SAAA,GAAAmG,OAAM80C,kBAAQ1uC,EAAEH,aAA+B,MAAhBG,EAAEH,iBAC7D,GAAAjG,OAdUoH,EAAG,KAAApH,OAAIoG,EAAE8vC,MAehB,MAITF,GAAkB,OAAVZ,QAAU,IAAVA,OAAU,EAAVA,EAAY7uC,SACnB7M,cAACiI,IAAG,CAACkJ,GAAI,EAAGnQ,UAAW+L,IAAW,sBAAsB5M,SACtD2E,eAACE,IAAM,CAAC8jB,GAAG,IAAI5oB,QAAQ,OAAOc,UAAU,2BAA2BiE,QA9BvD,WACpBw2C,GAAW,SAAC73C,GAAI,OAAMA,CAAI,GAC5B,EA4BoGzD,SAAA,CACxFH,cAAA,QAAMgB,UAAU,OAAMb,SAAA,QAAAmG,OAAUk1C,EAAU,OAAS,UACnDx7C,cAACmN,IAAe,CAACC,KAAMouC,EAAUkB,IAAcC,eAO7D,C,0GE/EaC,E,KAA6Bt7C,EAAOC,IAAGC,MAAAC,YAAA,oJACzC,SAAAnB,GAAQ,OAAAA,EAALinB,OAAqB5K,GAAS,I,eCK/BkgC,EAAY,SAAHv8C,GAAoC,IAADwB,EAA7BmnB,EAAO3oB,EAAP2oB,QAAS1B,EAAKjnB,EAALinB,MAE7Bu1B,EAAiE,QAA/Ch7C,EADEyF,aAAe,SAACC,GAAK,OAAKA,EAAM8G,gBAAgB,GAC9CyuC,CAAkB,iCAAyB,IAAAj7C,IAAe,EAE9EynB,EAAYP,YAAaC,GAAzBM,QACFpoB,EAAI6nC,KAAKE,MAAM3f,EAAO,OACtByzB,EAAIhU,KAAKE,MAAO3f,EAAO,MAAkB,MACzC0zB,EAAIjU,KAAKE,MAAO3f,EAAU,KAAQ,IAClC2zB,EAAIlU,KAAKE,MAAM3f,EAAU,IAE3B4zB,EAAc,GAYlB,OAXIh8C,IACFg8C,GAAW,GAAA72C,OAAOnF,EAAC,OAEjB67C,IACFG,GAAW,GAAA72C,OAAO02C,EAAC,OAEjBC,IACFE,GAAW,GAAA72C,OAAO22C,EAAC,OAEjB1zB,EAA+B,GAArBuzB,IAAyBK,GAAe,IAAA72C,OAAI42C,EAAC,KAAIz6C,OAAO,IAGpE8mB,EAAU,GACRvpB,cAAC48C,EAA0B,CAACr1B,MAAOA,EAAMpnB,SACvC2E,eAAA,UAAA3E,SAAA,CAASg9C,EAAY,YAI7B,EC5BajZ,EAAqB,SAAH5jC,GAA8C,IAAxCyG,EAAWzG,EAAXyG,YAAa4hB,EAAWroB,EAAXqoB,YAQhD,OACE3oB,cAAA6E,WAAA,CAAA1E,SACG4G,EAAYu7B,WAAaC,IAAgB0D,eAAiBtd,GACzD3oB,cAAC68C,EAAS,CAAC5zB,QAASN,EAAYwZ,QAAS5a,MATzCoB,EAAY+W,gBAAkB/W,EAAYie,gBAAwB5pB,IAClE2L,EAAY+W,iBAAmB/W,EAAYie,gBAAwB7pB,IACnE4L,EAAYuiB,cAAwC,IAAxBnkC,EAAY+1B,QAAsB1f,IAC3DT,OAUX,C,2KCrBaygC,EAAuB97C,YAAOgf,IAAPhf,CAAaE,MAAAC,YAAA,wkBAYzB,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,GAU9C+a,KAEE,SAAA9a,GAAQ,OAAAA,EAALH,MAAkBC,OAAOy7C,cAAc,IAQ5CC,EAA6Bh8C,IAAOu6C,EAACz5C,MAAAX,YAAA,oEAEvCsb,K,OC9BLwgC,EAA4Bj8C,YAAOgf,IAAM4B,KAAb5gB,CAAkBE,MAAAC,YAAA,uDAavC+7C,EAAyB,SAAHl9C,GAKT,IAJxByG,EAAWzG,EAAXyG,YACA02C,EAAgBn9C,EAAhBm9C,iBACAC,EAAmBp9C,EAAnBo9C,oBACAld,EAAOlgC,EAAPkgC,QAEAv9B,EAA8DC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAtE06C,EAAuBx6C,EAAA,GAAEy6C,EAA0Bz6C,EAAA,GAC1DG,EAA4DJ,oBAAS,GAAMM,EAAAJ,YAAAE,EAAA,GAApEu6C,EAAsBr6C,EAAA,GAAEs6C,EAAyBt6C,EAAA,GASlDu6C,EAAgB,eAAAj8C,EAAAqW,YAAAC,cAAAC,MAAG,SAAAC,IAAA,OAAAF,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACS,OAAhCklC,GAA0B,GAAMplC,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEPolC,YAAeP,GAAiB,OAChC,IADT/kC,EAAA6V,KACD3pB,MACX84C,KAEAI,GAA0B,GAC1BF,GAA2B,IAE7Bpd,IAAS9nB,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6M,GAAA7M,EAAA,SAET8M,QAAQ5F,IAAI,0BAAyBlH,EAAA6M,IACrCu4B,GAA0B,GAAK,yBAAAplC,EAAAI,OAAA,GAAAR,EAAA,kBAElC,kBAfqB,OAAAxW,EAAAmX,MAAA,KAAAC,UAAA,KAgBtB,OACEpU,eAAAD,WAAA,CAAA1E,SAAA,CACEH,cAACsgB,IAAMmpB,OAAM,CAACU,aAAW,EAAAhqC,SAAC,mCAC1B2E,eAACy4C,EAAyB,CAAAp9C,SAAA,CACxBH,cAAA,MAAAG,SACE2E,eAAA,QAAA3E,SAAA,CAAM,QAAM4G,EAAYoC,SAE1BrE,eAAA,MAAA3E,SAAA,CACEH,cAAA,QAAAG,SAAM,eACNH,cAAA,KAAGgB,UAAU,gBAAgB4nB,KAAK,IAAI3jB,QAAS,kBAhCrD24C,GAA2B,QAC3BxpC,OAAO+lC,KACL,uDAAyDsD,EAAiBQ,2BAC1E,WA6BkF,EAAC99C,SAAC,gCAIlFH,cAACs9C,EAA0B,CAAAn9C,SAAC,mOAK5BH,cAACs9C,EAA0B,CAAAn9C,SAAC,uHAI3B09C,GACC79C,cAACs9C,EAA0B,CAAAn9C,SAAC,yCAGhC2E,eAACwb,IAAM49B,OAAM,CAAA/9C,SAAA,CACXH,cAAC4K,IAAmB,CAAC8X,UAAWi7B,EAAyB14C,QAAS,kBAAM84C,GAAkB,EAAC59C,SACzFH,cAAA,QAAAG,SAAM,aAERH,cAAC4K,IAAmB,CAAC3F,QAAS,kBAAMu7B,GAAS,EAACrgC,SAC5CH,cAAA,QAAAG,SAAM,mBAKhB,E,0DCrEaiP,EAAuB,WAClC,IAAQivB,EAAmBnF,cAAnBmF,eAEFnX,EAA8BF,aAAoB,SAACxf,GAAK,OAAKA,EAAM0f,2BAA2B,IACpGzb,EAMI9D,qBAAWC,KAAem+B,EAAAt6B,EAL5BhD,YAAwB1B,EAAWg/B,EAApBj9B,QAAsB6f,EAAWod,EAAXpd,YAAa80B,EAAgB1X,EAAhB0X,iBAClDh1C,EAAWgD,EAAXhD,YACAsN,EAAWtK,EAAXsK,YACAD,EAAarK,EAAbqK,cACAE,EAAYvK,EAAZuK,aAGF/S,EAAwEC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhFk7C,EAA4Bh7C,EAAA,GAAEi7C,EAA+Bj7C,EAAA,GACpEG,EAA8CJ,mBAAwB,MAAKM,EAAAJ,YAAAE,EAAA,GAApE+6C,EAAe76C,EAAA,GAAE86C,EAAkB96C,EAAA,GAC1CE,EAAkCR,oBAAS,GAAMS,EAAAP,YAAAM,EAAA,GAA1C66C,EAAS56C,EAAA,GAAE66C,EAAY76C,EAAA,GAExB2D,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,IAChD46B,EAAYlZ,YAAwB,OAAXL,QAAW,IAAXA,OAAW,EAAXA,EAAawZ,SAA/C5Y,QACFwzB,EAAoBx1C,aAAe,SAACC,GAAK,OAAKA,EAAM8G,gBAAgB,IAC1E6S,EAAwCje,oBAAkB,GAAMke,EAAAhe,YAAA+d,EAAA,GAAzDs9B,EAAYr9B,EAAA,GAAEs9B,EAAet9B,EAAA,GAC5Bu9B,EAAkCzlB,aAAgB,SAAC1xB,GAAK,OAAKA,CAAK,IAAlEm3C,8BAERt6C,qBAAU,WACQ,IAAZ69B,GAA4B,OAAXvZ,QAAW,IAAXA,KAAaie,iBAChCvI,EAAe51B,EAGnB,GAAG,CAACy5B,EAAoB,OAAXvZ,QAAW,IAAXA,OAAW,EAAXA,EAAaie,kBAE1B,IAAMgY,EACJj2B,IAAgBA,EAAYuiB,cAAgBnkC,EAAYk8B,cAAgBta,EAAYk2B,aAYhFC,EAAyB/3C,EAAYg4C,mBAAqBtB,KAAqC,OAAhBA,QAAgB,IAAhBA,KAAkBuB,YAEjGC,EAAgB,eAAA3+C,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAOqQ,GAAgB,IAAA6rB,EAAA,OAAAp8B,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAErBsmC,YAAkBv2B,GAAY,OAEzC,QAFN6rB,EAAQ97B,EAAA6V,YAEF,IAARimB,KAAU/Q,QACD,OAAX1tB,QAAW,IAAXA,OAEA2oC,GAAgB,GACjBhmC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6M,GAAA7M,EAAA,SAEDgmC,GAAgB,GAAK,QAEF,OAFEhmC,EAAAC,KAAA,GAErB6lC,GAAa,GAAM9lC,EAAA+lB,OAAA,6BAAA/lB,EAAAI,OAAA,GAAAR,EAAA,wBAEtB,gBAdqBS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KAgBtB,OAAInS,EAAYu7B,WAAaC,IAAgB0D,eAAkBtd,EAK7D7jB,eAAAD,WAAA,CAAA1E,SAAA,CACEH,cAAC2rC,IAAW,CACVt7B,MAAM,eACNm0B,YAAY,gDACZ5gC,KAAM26C,EACN94C,OAAQ,kBAAM+4C,GAAa,EAAM,EACjC1S,OAAQ,kBAAMmT,EAAiBt2B,EAAY,EAC3CkjB,gBAAgB,IAGlB7rC,cAACo9C,EAAoB,CACnBx5C,KAAMu6C,EACN14C,OAAQ,kBAAM24C,GAAgC,EAAM,EACpD9wC,KAAK,KACLi+B,UAAQ,EAAAprC,SAERH,cAACw9C,EAAsB,CACrBz2C,YAAaA,EACb02C,iBAAkBA,EAClBC,oBAAqB,kBAnD3BU,GAAgC,GAChCO,EAA8B,CAAEpzC,kBAA8B,OAAXxE,QAAW,IAAXA,OAAW,EAAXA,EAAawC,WAAYk0C,iBAAkBA,SAC1FY,IAAoBc,IAAcC,IACpCl4B,EAA4BngB,EAAYwC,YAExC6K,OAAO+lC,KAAK,sBAAwBpzC,EAAYwC,WAAY,SA8CH,EACrDi3B,QAAS,WACP4d,GAAgC,EAClC,OAGQ,OAAXz1B,QAAW,IAAXA,OAAW,EAAXA,EAAa0Z,SAAUH,EAAU,GAAKn7B,EAAYu7B,WAAaC,IAAgBC,QAC9E19B,eAAAD,WAAA,CAAA1E,SAAA,CACG2V,GACC6S,EAAY+W,iBACX/W,EAAYie,iBACoD,MAAjEmW,EAAkB,4CAChB/8C,cAAC4K,IAAmB,CAAC1K,QAAQ,SAAS+E,QAAS,kBAAMu5C,GAAa,EAAK,EAACr+C,SACtEH,cAAA,QAAAG,SAAOmH,EAAa,iBAAkB,2BAG5CtH,cAAC4K,IAAmB,CAClB3F,QAAS,YACF0jB,EAAY+W,gBAAkBof,GACjCR,EAAmBa,IAAcC,KACjChB,GAAgC,IAEhCl3B,EAA4BngB,EAAYwC,WAE5C,EAAEpJ,SAEFH,cAAA,QAAAG,SACGwoB,EAAY+W,eAAiBp4B,EAAa,YAAa,aAAeA,EAAa,MAAO,WAI/FtH,cAACgL,IAAuB,CAAA7K,UACV,OAAXwoB,QAAW,IAAXA,OAAW,EAAXA,EAAa02B,SACZv6C,eAACoG,IAAmB,CAAA/K,SAAA,CACjBy+C,GACC95C,eAACqmC,IAAiB,CAAAhrC,SAAA,CAChBH,cAAA,QAAAG,SAAM,sBAAwB,IAAEwoB,EAAYwd,wBAI9Cxd,EAAYuiB,cACZlrC,cAAC4K,IAAmB,CAClB3F,QAAS,WACH65C,GACFR,EAAmBa,IAAcG,KACjClB,GAAgC,IAEhChqC,OAAO+lC,KAAK,sBAAwBpzC,EAAYwC,WAAY,QAEhE,EAAEpJ,SAEFH,cAAA,QAAAG,SAAM,sBAOfs+C,GAAgBz+C,cAACu/C,IAAU,CAAAp/C,SAAE6V,UAjF7B,IAsFX,C,0JCnKawpC,EAAqBl+C,YAAOgf,IAAPhf,CAAaE,MAAAC,YAAA,4VAEvB,SAAAnB,GAAA,IAAGm/C,EAAOn/C,EAAPm/C,QAAS99C,EAAKrB,EAALqB,MAAK,OAAQ89C,EAAU99C,EAAMC,OAAOoqB,YAAc,MAAM,IAC/E,SAAAlqB,GAAA,IAAG29C,EAAO39C,EAAP29C,QAAS99C,EAAKG,EAALH,MAAK,OAAQ89C,EAAU99C,EAAMC,OAAO89C,eAAiB/9C,EAAMC,OAAO+9C,qBAAqB,GAGvFziC,IAAgBhU,GAIhBgU,IAAgBC,K,OCRnCyiC,EAAwB,SAACl/C,GAC7B,IAAAwoB,EAAoC3hB,aAAe,SAACC,GAAK,MAAK,CAACA,EAAMymB,cAAezmB,EAAMwnB,WAAW,GAAEvnB,KAAQo4C,EAAAz8C,YAAA8lB,EAAA,GAAxG+E,EAAa4xB,EAAA,GAAE7wB,EAAU6wB,EAAA,GAEhC,OAAO5xB,GAAiBA,EAAkC,mBACxDnpB,eAAC06C,EAAkB7+C,wBAAA,CAACiD,MAAM,EAAMk8C,YAAY,EAAMr6C,OAAQupB,GAAgBtuB,GAAK,IAAAP,SAAA,CAC7EH,cAACsgB,IAAMmpB,OAAM,CAACU,aAAW,EAAAhqC,SACvBH,cAACsgB,IAAMlY,MAAK,MAEdpI,cAACsgB,IAAM4B,KAAI,CAAA/hB,SACTH,cAAC+rC,IAAS,CAACC,OAAK,EAAA7rC,SACdH,cAACgI,IAAG,CAAA7H,SACFH,cAACiI,IAAG,CAAA9H,SACFH,cAAA,KAAAG,SAAI8tB,EAAkC,iCAOhDjuB,cAAA6E,WAAA,GAEJ,EACek7C,QAAMC,KAAKJ,E,yNCdb/wC,EAAc,WACzB,ICb8B9J,EAA0Ck7C,EDaxEx0C,EAOI9D,qBAAWC,KANb4xC,EAAW/tC,EAAX+tC,YACA9xB,EAAcjc,EAAdic,eACAjf,EAAWgD,EAAXhD,YAAWs9B,EAAAt6B,EACXhD,YACEK,QAAW+F,EAAWk3B,EAAXl3B,YAAatF,EAAUw8B,EAAVx8B,WAAY22C,EAAMna,EAANma,OAGlCC,EAAiBp8C,iBAAwB,MCrBjBgB,EDsBdo7C,ECtBwDF,EDsBxC,kBAAMv4B,GAAe,EAAM,ECrB3DrjB,qBAAU,WACR,SAAS+7C,EAAmB/pB,GACtBtxB,EAAIQ,UAAYR,EAAIQ,QAAQ86C,SAAShqB,EAAM/wB,SAC7C26C,GAEJ,CAEA,OADAvlC,SAASo8B,iBAAiB,YAAasJ,GAChC,WACL1lC,SAASq8B,oBAAoB,YAAaqJ,EAC5C,CACF,GAAG,CAACH,EAAqBl7C,IDYzB,IAAA9B,EAA8BC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAtC4P,EAAO1P,EAAA,GAAE8+B,EAAU9+B,EAAA,GACpBw2C,EAAoBzgB,aAAgB,SAAC1xB,GAAK,OAAKA,EAAMmyC,iBAAiB,IAEpErxB,EAAoBC,cAApBD,gBAEFg4B,EAAYv8C,iBAAO,MACzBM,qBAAU,WACJi8C,GAAaA,EAAU/6C,SAAS+6C,EAAU/6C,QAAQg7C,OACxD,GAAG,CAAC/G,IAEJ,IAAMgH,EAAc,eAAAlgD,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAOmoC,GAAY,OAAAroC,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEtB,OAFsBF,EAAAC,KAAA,EAEtCspB,GAAW,GAAKvpB,EAAAE,KAAA,EACV8nC,YAAgB,CACpBpjB,kBAAmB/zB,EACnBo3C,QAAST,EACTU,MAAOH,IACP,OAEF9G,EACEj9B,YAAQjU,GAAa,SAACo4C,GACpBA,EAAM/3C,QAAQ+F,YAAc4xC,CAC9B,KAEF/4B,GAAe,GAAMhP,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6M,GAAA7M,EAAA,iBAGJ,OAHIA,EAAAC,KAAA,GAGrBspB,GAAW,GAAMvpB,EAAA+lB,OAAA,YAGnBnW,EAAgB,GAADhiB,OACV8N,OAAOqU,QAAQC,SAAQ,gBAC1B,CAAC,CAAEC,YAAalgB,EAAYkgB,YAAaxf,IAAKV,EAAYK,QAAQK,MAClE,CAAE23C,SAAUL,IACb,yBAAA/nC,EAAAI,OAAA,GAAAR,EAAA,wBACF,gBAzBmBS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KA2BpB,OACElZ,cAAC+K,IAAiB,CAAA5K,SACfq5C,EACCx5C,cAAA,OAAAG,SACEH,cAAC6jC,IAAM,CACLC,cAAe,CAAEj1B,YAAaA,GAC9Bk1B,SAAU,SAAC3P,GAAM,OAAKosB,EAAepsB,EAAOvlB,YAAY,EAAC1O,SAExD,SAACO,GAAK,OACLoE,eAAA,QAAM9D,UAAU,YAAY+iC,SAAUrjC,EAAMujC,aAAcl/B,IAAKo7C,EAAehgD,SAAA,CAC5EH,cAACu8C,IAAe,CAAAp8C,SACdH,cAACmN,IAAe,CAACnM,UAAU,OAAOoM,KAAM2b,QAE1C/oB,cAACqJ,IAAK6rB,QAAO,CACXl0B,UAAU,aACVuW,KAAK,OACLvU,SAAUtC,EAAMqgD,aAChB5qB,OAAQz1B,EAAMsgD,WACdllC,MAAOpb,EAAM0zB,OAAOvlB,YACpBrK,KAAK,cACLy8C,UAAW,IACXl8C,IAAKu7C,IAENztC,EACC7S,cAACqI,IAAO,CAACC,UAAU,SAASC,KAAK,WAEjCvI,cAAA,UAAQgB,UAAU,oBAAoBuW,KAAK,SAAQpX,SAAC,WAIjD,MAKbH,cAAA6E,WAAA,CAAA1E,SACG0O,IAAgBgE,GACf/N,eAAA,OAAK9D,UAAS,eAAiBb,SAAA,CAC7BH,cAACu8C,IAAe,CAAAp8C,SACdH,cAACmN,IAAe,CAACnM,UAAU,OAAOoM,KAAM2b,QAE1C/oB,cAACm3B,IAAc,CACbzxB,UAAU,eACV2xB,QACEr3B,cAAC8sC,IAAa,CAAClnC,GAAG,UAAUF,UAAU,aAAYvF,SAChDH,cAAA,QAAAG,SAAO0O,MAEV1O,SAEDH,cAAA,QAAAG,SAAA,IAAAmG,OAAWuI,aAQ3B,C,0KEzGaqyC,EAAiB,SAAH5gD,GAAiC,IAAD86B,EAA1Br0B,EAAWzG,EAAXyG,YACzBiV,EAAWC,cACT0L,EAAehgB,qBAAWC,KAA1B+f,WACFw5B,EAAmF,SAApEhlC,YAAuCH,EAASI,QAAQ6L,QACvEm5B,GAAsBD,GAAgBp6C,EAAYs6C,eAClDC,GAAoBH,GAAgBp6C,EAAYw6C,aAChDC,GAAkBL,IAAiBx5B,EACjClf,EAAgBd,qBAAWC,KAA3Ba,YAER,OACE3D,eAACmL,IAAqB,CAAA9P,SAAA,CACnBihD,GAAsBphD,cAACorB,IAAM,CAAClrB,QAAQ,SAASuV,MAAM,mBAAsB,kBAC3E6rC,GAAoBthD,cAACorB,IAAM,CAAClrB,QAAQ,UAAUuV,MAAM,iBAAoB,gBACxE1O,EAAYg4C,mBACX/+C,cAACorB,IAAM,CACLlrB,QAAQ,UACRuV,MAAM,aACNxQ,QACEwD,EAAYg1C,iBACR,kBACEgE,IAAUC,OACR,uDACEj5C,EAAYg1C,iBAAiBQ,2BAChC,EACH,KAEN5tC,MAAO5H,EAAYg1C,iBAAmB,gCAAkC,KAG3E+D,IACuB,QADTpmB,EACbr0B,EAAY60B,kBAAU,IAAAR,OAAA,EAAtBA,EAAwBj3B,KAAI,SAAC+B,EAAGwH,GAAG,OAAK1N,cAACorB,IAAM,CAAClrB,QAAQ,OAAOuV,MAAOvP,EAAE3C,MAAK,GAAA+C,OAASoH,EAAG,KAAApH,OAAIJ,EAAE3C,MAAU,OAGjH,E,OClCamL,EAAsB,SAAHpO,GAAiC,IAA3BmI,EAAWnI,EAAXmI,YACpCgD,EAA6B9D,qBAAWC,KAAhC0xC,EAAK7tC,EAAL6tC,MAAOryC,EAASwE,EAATxE,UACT06C,EAAaC,YAAUn5C,EAAYK,QAAQS,YACjD,OACEzE,eAACmG,IAAkB,CAACjK,UAAU,0BAAyBb,SAAA,CACpDm5C,EACCt5C,cAAC6hD,IAAQ,CAAA1hD,SAAEsI,EAAYK,QAAQV,QAE/BpI,cAAC8hD,IAAO,CACN78C,QAAS,WACPsrC,YAAe9nC,EAAYK,QAAQV,MAAO,CACxCqoC,aAAa,IAEfj9B,eAAeK,QAAQH,IAAkBC,kBAAmB1M,EAAUqQ,WACxE,EACA0tB,GAAI2c,EAAWxhD,SAEdsI,EAAYK,QAAQV,QAGzBpI,cAACkhD,EAAc,CAACn6C,YAAa0B,EAAYK,YAG/C,C,kFClCai5C,EAAezgD,IAAOC,IAAGC,MAAAC,YAAA,sdAeZ,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOogD,kBAAkB,IAO5C,SAAAlgD,GAAQ,OAAAA,EAALH,MAAkBC,OAAOogD,kBAAkB,I,GAM3C1gD,IAAOC,IAAGa,MAAAX,YAAA,gGAEjB,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAOogD,kBAAkB,I,aCHvDztB,IAvBO,SAAHj0B,GAA0D,IAAjDI,EAAKoF,OAAAm8C,OAAA,IAAAC,YAAA5hD,OAEnBuB,EACRypB,cADF1pB,OAAUC,QAGZ,OACE7B,cAAC+hD,EAAY,CAAA5hD,SACXH,cAACmiD,IAAWxhD,wBAAA,CACVyhD,OAAQ,CAAE/3B,KAAM,SAACg4B,GAAI,OAAA1hD,wBAAA,GAAW0hD,GAAI,IAAEx3C,OAAQA,KAAOC,kBAAgB,GACrEw3C,gBAAgB,gBACZ5hD,GAAK,IACTiB,MAAO,SAACA,GAAK,OAAAhB,wBAAA,GACRgB,GAAK,IACRC,OAAMjB,wBAAA,GACDgB,EAAMC,QAAM,IACfC,QAASA,KACV,MAKX,C,sUCtBa0gD,EAAY,SAACC,GACxB,OAAO,IAAIC,WACRC,gBAAgBF,EAAS,aACzBG,gBAAgBC,YAAYhnC,QAAQ,iBAAkB,KACtD07B,MACL,EAGauL,EAA8B,SAACjO,EAAgCkO,GAA6B,IAADC,EAAAC,EACtG,OAA6D,QAA7DD,EAAOnO,EAAQnwC,MAAK,SAACquC,GAAE,OAAKA,EAAGQ,YAAcwP,CAAe,WAAC,IAAAC,GAAgB,QAAhBC,EAAtDD,EAAwDtP,sBAAc,IAAAuP,OAAhB,EAAtDA,EAAwE5oB,MAAK,SAAC6oB,GAAG,OAAKA,EAAIvP,QAAQ,GAC3G,EAEawP,EAA2B,SACtCtO,EACAkO,EACAK,GACI,IAADC,EAAAC,EACH,OACiD,QADjDD,EAAOxO,EACJnwC,MAAK,SAACquC,GAAE,OAAKA,EAAGQ,YAAcwP,CAAe,WAAC,IAAAM,GAC/B,QAD+BC,EAD1CD,EAEH3P,sBAAc,IAAA4P,OAD+B,EAD1CA,EAEajpB,MAAK,SAAC6oB,GAAG,OAAKA,EAAI3P,YAAc6P,CAAuB,GAC7E,EAEaG,EAAsB,SAAC1O,EAAgCkO,GAA6B,IAADS,EAAAC,EAC9F,OAA6D,QAAtDD,EAAA3O,EAAQnwC,MAAK,SAACquC,GAAE,OAAKA,EAAGQ,YAAcwP,CAAe,WAAC,IAAAS,GAAgB,QAAhBC,EAAtDD,EAAwD9P,sBAAc,IAAA+P,OAAhB,EAAtDA,EAAwE32C,QAAS,CAC1F,EAEa42C,EAAqC,SAChD5L,EACAjD,EACAkO,EACAY,GAKA,OAAIb,EAA4BjO,EAASkO,GAChCjL,EAAO1hC,QAAO,SAACwtC,GAAyB,IAAAC,EAJzBC,EAIyB,OAJzBA,EAKN3tC,YAA2D,QAA3D0tC,EAAKhP,EAAQnwC,MAAK,SAACquC,GAAE,OAAKA,EAAGQ,YAAcwP,CAAe,WAAC,IAAAc,OAAA,EAAtDA,EAAwDnQ,gBAJ7EoQ,EAAgB1tC,QAAO,SAAC8sC,GAAwB,OAAKA,EAAIvP,QAAQ,IAAEvvC,KAAI,SAAC8+C,GAAwB,OAAKA,EAAIr+C,KAAK,KAIhBkqB,SAC1F40B,EAAYC,GACb,IAIE9L,CACT,EAEaiM,EAAuB,SAAClP,GAAmE,IAAD,IAAAmP,EAAA7qC,UAAArM,OAA/Bm3C,EAAgB,IAAAlb,MAAAib,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAhBD,EAAgBC,EAAA,GAAA/qC,UAAA+qC,GACtF,OAAK7I,kBAAQ4I,GAMC,OAAPpP,QAAO,IAAPA,OAAO,EAAPA,EAASX,SAAQ,SAACnB,GAAE,OAAKA,EAAGW,eAAeQ,SAAQ,SAACgP,GAAG,OAAMA,EAAIvP,UAAW,CAAK,GAAE,IALjE,OAAhBsQ,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB/P,SAAQ,SAAC6O,GAAe,OAC/ClO,EAAQnwC,MAAK,SAACquC,GAAE,OAAKA,EAAGQ,YAAcwP,CAAe,IAAGrP,eAAeQ,SAAQ,SAACgP,GAAG,OAAMA,EAAIvP,UAAW,CAAK,GAAE,GAKrH,EAEawQ,EAAuB,SAClCtP,EACAkO,GAEI,IAAD,IAAAqB,EAAAjrC,UAAArM,OADAu3C,EAAc,IAAAtb,MAAAqb,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAdD,EAAcC,EAAA,GAAAnrC,UAAAmrC,GAEjB,OAAOzP,EAAQX,SAAQ,SAAC99B,GAClBA,EAAOm9B,YAAcwP,IACT,OAAdsB,QAAc,IAAdA,KAAgBnQ,SAAQ,SAAChgB,GACnB9d,EAAOs9B,eAAehvC,MAAK,SAAC6/C,GAAW,OAAKA,EAAY1/C,QAAUqvB,CAAa,MACjF9d,EAAOs9B,eAAehvC,MAAK,SAAC6/C,GAAW,OAAKA,EAAY1/C,QAAUqvB,CAAa,IAAEyf,UAAW,EAEhG,IAEJ,GACF,EACa6Q,EAAyB,SACpC3P,EACA4P,EACAC,EACAC,EACA5oC,GAEI,IAAD6oC,EAAAC,EADHC,IAAiB3rC,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,KAAAA,UAAA,GAG0B,QAD3CyrC,EAAA/P,EACGnwC,MAAK,SAACquC,GAAE,OAAKA,EAAGQ,YAAcmR,CAAS,WAAC,IAAAE,GACzB,QADyBC,EAD3CD,EAEIlR,sBAAc,IAAAmR,GAFlBA,EAEoBtQ,KAAK,CACrBwQ,QAASN,EACTlR,UAAWmR,EACX9/C,YAAa+/C,EACb3P,cAAej5B,EACflX,MAAOkX,EACP43B,SAAUmR,EACVE,aAAa,EACbC,UAAW,GAEjB,C,kCChGA,kCAAO,IAAWzR,EAAU,SAAVA,GAAU,OAAVA,EAAU,6BAAVA,EAAU,sBAAVA,EAAU,4CAAVA,EAAU,uBAAVA,EAAU,qBAAVA,EAAU,YAAVA,EAAU,gBAAVA,EAAU,YAAVA,CAAU,K,sHCctB0R,EACI,eADJA,EAEM,aAFNA,EAGM,gBAHNA,EAIO,gBAGA18B,EAAkB,WAC7B,IAAM28B,EAAW39C,aAAe,SAACC,GAAK,OAAKA,EAAMomB,UAAU,IAErDu3B,EAAmB,WAGnB,IAADC,EAAAC,EAFHhvB,EAAwBnd,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,GAAAA,UAAA,GAAG,WAAU5Y,EAAA4Y,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,GAAAA,UAAA,GACuE,CAAC,EAA3GosC,EAAahlD,EAAbglD,cAAgCC,EAAoBjlD,EAArCkwC,gBAAuCqD,EAASvzC,EAATuzC,UAAWiN,EAAQxgD,EAARwgD,SAAU0E,EAAUllD,EAAVklD,WAErE7U,EACND,IADMC,mBAAoBC,EAC1BF,IAD0BE,YAAauB,EACvCzB,IADuCyB,YAAa3B,EACpDE,IADoDF,gBAAiB9nB,EACrEgoB,IADqEhoB,SAAU8pB,EAC/E9B,IAD+E8B,WAAYE,EAC3FhC,IAD2FgC,QAASE,EACpGlC,IADoGkC,UAEtG,GAAKjC,EAAL,CAIA,IAAA8U,EAA0BlR,YAAoBiR,GAAtCtpC,EAAKupC,EAALvpC,MAAOzJ,EAAMgzC,EAANhzC,OACf2B,OAAOsxC,aAAetxC,OAAqB,cAAK,GAChDA,OAAOqU,QAAUrU,OAAgB,SAAK,CAAC,EACvC,IAAM0/B,EAAWoR,EAASS,aAAeC,IAAkBX,EAAuB,QAC5EY,EAA4B,kBAAVxvB,EAAyB,GAAA/vB,OAAM4+C,EAASS,WAAU,KAAAr/C,OAAIg/C,GAAkBJ,EAASS,WAErGG,EAAwB,CAC1BzvB,MAAOA,EACP0vB,OAAQd,EACRnR,SAAUA,EACVkS,SAAUf,EACVgB,UAAWhB,EACXiB,YAAaL,EACbM,UAAWjB,EAAS13B,SACpB2kB,YAAa+S,EAASS,aAAeC,IAAkB,gBAAkBzT,EAAcA,EACvFiU,MAAgC,QAA3BhB,EAAEF,EAASmB,wBAAgB,IAAAjB,OAAA,EAAzBA,EAA2B9tC,WAClCgvC,UAAWpB,EAASqB,UACpB3V,cACA4V,sBAAuBvW,cACvBwW,UAAkC,QAAzBpB,EAAEH,EAAS7rB,sBAAc,IAAAgsB,OAAA,EAAvBA,EAAyB/tC,WACpCovC,YAAaxB,EAASx3B,eACtBhF,SAAU48B,GAAiB58B,EAC3B8pB,WAAYA,EACZE,QAASA,EACTlC,gBAAiB+U,GAAwB/U,EACzCmW,UAAU,IAAIr9B,MAAOgjB,UAAYsG,EAAUtG,UAC3Csa,SAAoB,kBAAVvwB,EAA4B,YAAc,OACpDwwB,SAAU3B,EAAS4B,aACnBC,UAAWjG,EACX5kC,QACAzJ,UAEF2B,OAAOqU,QAAUq9B,EACjB,IAAMkB,EAAWpT,YAAYC,EAAWC,EAAUoR,EAASS,YACrDD,EAAY/kD,wBAAA,GAAQmlD,GAAS,IAAEkB,aACrC5yC,OAAOsxC,aAAapR,KAAKoR,GAEzB9lC,IAAIqnC,OAAM,IAAI39B,MAAO49B,cAAexB,GACtB,aAAVrvB,GAAwB7iB,eAAeC,QAAQu6B,IAAoBI,qBACrE56B,eAAeoB,WAAWo5B,IAAoBI,0BACvCsC,IAAeF,gBA1CxB,CA4CF,EAEMloB,EAAkB+T,uBACtB,SAACmU,EAA0BqD,GAAoE,IAArCiN,GAAoC5nC,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,GAAAA,UAAA,GAAP,CAAC,GAA9B4nC,SACpDtQ,GACFD,YAAeC,GAEjB2U,EAAiB,kBAAmB,CAClC3U,kBACAqD,YACAiN,YAGJ,GACA,IAGIqG,EAAc9qB,uBAAY,SAACwX,GAAsE,IAAvC2R,GAAsCtsC,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,GAAAA,UAAA,GAAP,CAAC,GAAhCssC,WAC9DL,EAAiB,WAAY,CAC3BtR,YACA2R,cAGJ,GAAG,IAUH,MAAO,CAAE2B,cAAaC,iBARG/qB,uBAAY,SAACipB,EAAwBzR,GAC5DsR,EAAiB,gBAAiB,CAChCG,gBACAzR,aAGJ,GAAG,IAEqCvrB,kBAC1C,C,uICvGaxT,EAAmB,SAAHxU,GAAcA,EAARH,SAAqE,IAAxDO,EAAK4rB,YAAAhsB,EAAAisB,GAC3C9Q,EAAa9T,qBAAWyT,KAAxBK,SACR,OAAOzb,cAACq6C,IAAsB15C,YAAA,CAAC8a,SAAUA,EAAUza,UAAU,8BAAiCN,GAChG,C,mCCVA,qFAWa2mD,EAAmB,SAAH/mD,GAAoC,IAA9BuS,EAAOvS,EAAPuS,QAASw4B,EAAK/qC,EAAL+qC,MAC1C,OACErrC,cAAA6E,WAAA,CAAA1E,SACG0S,EACC7S,cAACoV,IAAM,IAEPpV,cAAC+kC,IAAI,CACH/jC,UAAU,kBACViE,QAAS,kBAAMsrC,YAAe,cAAe,CAAEE,aAAa,GAAO,EACnEzL,GAAIsiB,IAAUC,WAAWpnD,SAEzB2E,eAAA,QAAM9D,UAAU,eAAcb,SAAA,CAC5BH,cAACsV,IAAO,CAACC,MAAM,WAAWgS,MAAM,YAAY,sBACrBziB,eAAA,KAAA3E,SAAA,CAAG,IAAO,OAALkrC,QAAK,IAALA,IAAS,EAAE,aAMnD,C,mCC9BA,qFAWamc,EAAiB,SAAHlnD,GAAoC,IAA9BuS,EAAOvS,EAAPuS,QAASw4B,EAAK/qC,EAAL+qC,MACxC,OACErrC,cAAA6E,WAAA,CAAA1E,SACG0S,EACC7S,cAACoV,IAAM,IAEPpV,cAAC+kC,IAAI,CACH/jC,UAAU,kBACViE,QAAS,kBAAMsrC,YAAe,aAAc,CAAEE,aAAa,GAAO,EAClEzL,GAAIsiB,IAAU1Y,UAAUzuC,SAExB2E,eAAA,QAAM9D,UAAU,eAAcb,SAAA,CAC5BH,cAACsV,IAAO,CAACC,MAAM,MAAMgS,MAAM,YAAY,qBACjBziB,eAAA,KAAA3E,SAAA,CAAG,IAAO,OAALkrC,QAAK,IAALA,IAAS,EAAE,aAMlD,C,2LC3Baoc,EAA0BnmD,YAAOa,IAAPb,CAAeE,MAAAC,YAAA,qpBAa9B,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAa9C,SAAAC,GAAQ,OAAAA,EAALH,MAAkBC,OAAOy7C,cAAc,I,qCCb1CqK,EAAoBC,sBAAW,SAAArnD,EAA8CyE,GAAS,IAApDwG,EAAiBjL,EAAjBiL,kBAAmBpC,EAAG7I,EAAH6I,IAAQy+C,EAAIt7B,YAAAhsB,EAAAisB,GAC5Eza,EAAqCC,aAAS,kBAAM81C,YAA4Bt8C,EAAkB,IAA1FsH,EAAOf,EAAPe,QAAei1C,EAASh2C,EAAfK,KAEjB,OACErN,eAAC2iD,EAAuB9mD,wBAAA,CAACiF,GAAG,qBAAqBb,IAAKA,GAAS6iD,GAAI,IAAAznD,SAAA,CACjEH,cAACmC,IAAQiG,MAAK,CAAAjI,SAAC,mBACf2E,eAAC3C,IAAQ0D,QAAO,CAAA1F,SAAA,CAAC,QACTgJ,EACL0J,GAAW7S,cAACoV,IAAM,KACjBvC,IAAoB,OAATi1C,QAAS,IAATA,OAAS,EAATA,EAAWj7C,QAAS,GAC/B7M,cAAA,OAAKgB,UAAU,mBAAkBb,SAC9B2nD,EAAU3jD,KAAI,SAAArC,GAAA,IAAG6K,EAAE7K,EAAF6K,GAAIo7C,EAAmBjmD,EAAnBimD,oBAAqBC,EAAQlmD,EAARkmD,SAAUC,EAAWnmD,EAAXmmD,YAAW,OAC9DjoD,cAAA,OAAuBgB,UAAU,kBAAiBb,SAChD2E,eAAA,OAAK9D,UAAU,gBAAgBiE,QAAS,kBAAMmP,OAAO+lC,KAAK8N,EAAa,WAAW,EAAC9nD,SAAA,GAC9E4nD,GACD/nD,cAACmN,IAAe,CACdC,KACE26C,IAAwBG,IAAiBC,IACrCC,IACAL,IAAwBG,IAAiBG,MACzCC,IACAP,IAAwBG,IAAiBK,MACzCC,IACAC,MAGP,IACFT,MACG,OAAA1hD,OAhBSqG,GAiBX,YAOpB,I,iBClDa+7C,EAAmBpnD,IAAOC,IAAGC,MAAAC,YAAA,qMCM7BknD,EAAa,SAAHroD,GAAqC,IAADsoD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAA9BC,EAAe5oD,EAAf4oD,gBACnB5hD,EAAiBC,aAAe,SAACC,GAAK,OAAKA,CAAK,IAAhDF,aAER,OACEtH,cAAA6E,WAAA,CAAA1E,SACG+oD,GACCpkD,eAAC4jD,EAAgB,CAAAvoD,SAAA,CACf2E,eAAA,OAAK9D,UAAU,OAAMb,SAAA,CACnB2E,eAAA,SAAA3E,SAAA,CAAkC,QAAlCyoD,EAAQthD,EAAa,qBAAa,IAAAshD,IAAI,aAAa,QAClDM,EAAgBC,oBAEnBrkD,eAAA,OAAK9D,UAAU,OAAMb,SAAA,CACnB2E,eAAA,SAAA3E,SAAA,CAA6B,QAA7B0oD,EAAQvhD,EAAa,gBAAQ,IAAAuhD,IAAI,QAAQ,QACxCK,EAAgBE,4BAEnBtkD,eAAA,OAAK9D,UAAU,OAAMb,SAAA,CACnB2E,eAAA,SAAA3E,SAAA,CAA4B,QAA5B2oD,EAAQxhD,EAAa,eAAO,IAAAwhD,IAAI,OAAO,QACtC5c,YAAWgd,EAAgBG,aAAc,WAE5CvkD,eAAA,OAAK9D,UAAU,OAAMb,SAAA,CACnB2E,eAAA,SAAA3E,SAAA,CAAoC,QAApC4oD,EAAQzhD,EAAa,uBAAe,IAAAyhD,IAAI,UAAU,QACjDG,EAAgBI,iBAEnBxkD,eAAA,OAAK9D,UAAU,OAAMb,SAAA,CACnB2E,eAAA,SAAA3E,SAAA,CAAsC,QAAtC6oD,EAAQ1hD,EAAa,yBAAiB,IAAA0hD,IAAI,iBAAiB,QAC1DE,EAAgBK,eAEnBzkD,eAAA,OAAK9D,UAAU,OAAMb,SAAA,CACnB2E,eAAA,SAAA3E,SAAA,CAAwC,QAAxC8oD,EAAQ3hD,EAAa,2BAAmB,IAAA2hD,IAAI,mBAAmB,QAC9DC,EAAgBM,gBAM7B,E,8JCdap/C,EAAqB,SAAH9J,GAAiC,IAA3BmI,EAAWnI,EAAXmI,YAC7BuT,EAAWC,cACXwtC,EAAmF,SAApEttC,YAAuCH,EAASI,QAAQ6L,QACvED,EAAqF,SAApE7L,YAAuCH,EAASI,QAAQ6L,QACvEN,EAAehgB,qBAAWC,KAA1B+f,WAER,OACE7iB,eAACoL,IAAwB,CAAA/P,SAAA,CACvB2E,eAACiL,IAA6B,CAAA5P,SAAA,CAC5BH,cAAA6E,WAAA,CAAA1E,SACEH,cAAC0O,IAAmB,CAACjG,YAAaA,MAEpCzI,cAACiI,IAAG,CAACiB,GAAI,OAAQlI,UAAU,8BAA6Bb,SACtDH,cAACyO,IAAc,CAAChG,YAAaA,SAGjC3D,eAACkD,IAAG,CAAA7H,SAAA,CACF2E,eAACmD,IAAG,CAACC,GAAI,EAAE/H,SAAA,CACT2E,eAAC6J,IAAU,CAAAxO,SAAA,CACRsI,EAAYK,QAAQK,IACpBV,EAAYK,QAAQ4gD,yBAA2BD,GAC9CzpD,cAACm3B,IAAc,CACbzxB,UAAU,SACV0xB,QAAQ,QACR/xB,WAAS,EACTgyB,QAAS,SAAC32B,GAAK,OACbV,cAAC0nD,EAAiB/mD,YAAA,CAChBwI,IAAKV,EAAYK,QAAQK,IACzBoC,kBAAmB9C,EAAYK,QAAQS,YACnC7I,GACJ,EACFP,SAEFH,cAAC2pD,IAAe,CAACzpD,QAAQ,OAAMC,SAC7BH,cAACmN,IAAe,CAACC,KAAMw8C,IAAav5C,MAAM,0CAKlDrQ,cAAC4O,IAAiB,CAAC7H,YAAa0B,EAAYK,UAC5C9I,cAAC6O,IAAW,OAEbmZ,GAAkBvf,EAAYwmC,gBAC7BjvC,cAACiI,IAAG,CAACC,GAAI,EAAE/H,SACTH,cAAC2oD,EAAU,CAACO,gBAAiBzgD,EAAYwmC,oBAG3CjvC,cAAA6E,WAAA,CAAA1E,UACIwnB,GACA3nB,cAACiI,IAAG,CAACC,IAAE,EAAA/H,SACL2E,eAAC6F,IAA8B,CAAAxK,SAAA,CAC7BH,cAACmP,IAAmB,IACpBnP,cAAC8O,IAAW,IACZ9O,cAACiP,IAAqB,IACtBjP,cAAA,OAAKgB,UAAU,UAASb,SACtBH,cAACgP,IAAY,MAEflK,eAACkxC,IAAmB,CAAA71C,SAAA,CAClBH,cAACkP,IAAU,IACXlP,cAACoP,IAAoB,mBAUzC,C,qGC3Fay6C,EAAqBvoD,YAAO0D,IAAP1D,CAAcE,MAAAC,YAAA,6kBAUrC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,GAGjCgJ,KAAO8S,cAEP,SAACjd,GAAK,OAAMA,EAAMkD,KAAO,OAAS,MAAM,IAMxC,SAAA9B,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAKrB,SAAAQ,GAAQ,OAAAA,EAALV,MAAkBC,OAAOC,OAAO,I,OCM/CgV,IAlCM,WACnB,IAAA5T,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhCW,EAAIT,EAAA,GAAEU,EAAOV,EAAA,GAEpBkB,qBAAU,WACR,IAAMylD,EAAgB,WACpB,IAAMC,EAAWrvC,SAASioC,gBAAgBqH,UACtCD,EAAW,IACblmD,GAAQ,GACCkmD,GAAY,KACrBlmD,GAAQ,EAEZ,EAGA,OAFAuQ,OAAO0iC,iBAAiB,SAAUgT,GAE3B,kBAAM11C,OAAO2iC,oBAAoB,SAAU+S,EAAc,CAClE,GAAG,IASH,OACEhlD,eAAC+kD,EAAkB,CAAC7oD,UAAU,eAAeiE,QAR3B,WAClBmP,OAAOC,SAAS,CACdC,IAAK,EACLC,SAAU,UAEd,EAGqE3Q,KAAMA,EAAKzD,SAAA,CAC5EH,cAAA,OAAKgB,UAAU,SAAQb,SACrBH,cAACmN,IAAe,CAACC,KAAMopB,QAEzBx2B,cAAA,QAAAG,SAAM,UAGZ,C,uGClCa8pD,EAAwB3oD,IAAOC,IAAGC,MAAAC,YAAA,wWAWxBO,IAMAuN,KAOV26C,EAAkC5oD,IAAOC,IAAGa,MAAAX,YAAA,0UAInC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOuoD,gBAAgB,IAG1C,SAAAroD,GAAQ,OAAAA,EAALH,MAAkBC,OAAOuoD,gBAAgB,GAO7C56C,KAOV66C,EAA4B9oD,IAAOC,IAAGsF,MAAApF,YAAA,g0BAG7B4b,IACGP,IA8BFvN,IAEIuN,IAIHO,KAIXgtC,EAAqB/oD,IAAOC,IAAGsO,MAAApO,YAAA,4RACtB4b,IASCrb,IAKCqb,K,8BC7FX/S,EAAkB,SAAHhK,GAAkC,IAA5BiK,EAAYjK,EAAZiK,aAKhC,OAJiBhD,aAAe,SAACC,GAAK,OAAKA,EAAMqgB,QAAQ,GAE7BA,CAASC,IAAMwiC,sBAOzCxlD,eAACmlD,EAAqB,CAACjpD,UAAU,SAAQb,SAAA,CACvCH,cAACkqD,EAA+B,CAAA/pD,SAC9BH,cAAA,OAAK6N,IAAK08C,KAAWC,gBAAiBv8C,IAAI,QAE/B,OAAZ1D,QAAY,IAAZA,OAAY,EAAZA,EAAcsC,QAAS,EACtBtC,EAAapG,KAAI,SAAC+P,EAAMwB,GAAK,OAC3B5Q,eAACslD,EAAyB,CAAa/5C,MAAO6D,EAAKtP,MAAMzE,SAAA,CACtD+T,EAAKu2C,MACJzqD,cAAA,OACE6N,IAAK08C,KAAWG,cAAgBx2C,EAAKu2C,KACrCx8C,IAAI,kBACJjN,UAAW,yBAGfhB,cAAA,QAAMgB,UAAU,wBAAuBb,SAAE+T,EAAKtP,QAC9B,QAAfsP,EAAKtP,OAAmBsP,EAAKy2C,YAAc,GAC1C3qD,cAAA,QAAMgB,UAAU,oBAAmBb,SAAE+T,EAAKy2C,eAVdj1C,EAYJ,IAG9B1V,cAACqqD,EAAkB,CAAAlqD,SACjBH,cAAA,QAAMgB,UAAU,mBAAkBb,SAAC,4CA1BlCH,cAAA6E,WAAA,GA+BX,C,iJCIe+lD,EAvDW,WACxB,OACE5qD,cAAA,OAAKY,MAAM,6BAA6BiqD,QAAQ,MAAMhlB,QAAQ,0BAA0B/kC,OAAO,MAAMD,MAAM,MAAKV,SAC9GH,cAAA,KACE2a,MAAO,CAAE5Z,KAAM,OAAQG,SAAU,UAAWD,OAAQ,OAAQ6pD,YAAa,GACzE/P,UAAU,6BACVn1C,GAAG,yBAAwBzF,SAE3BH,cAAA,KAAG4F,GAAG,WAAUzF,SACdH,cAAA,KAAG4F,GAAG,oBAAmBzF,SACvBH,cAAA,KAAG4F,GAAG,wBAAuBzF,SAC3B2E,eAAA,KAAG6V,MAAO,CAAEzZ,SAAU,WAAa0E,GAAG,sBAAqBzF,SAAA,CACzDH,cAAA,KAAG4F,GAAG,QAAOzF,SACX2E,eAAA,KAAGi2C,UAAU,iCAAiCn1C,GAAG,QAAOzF,SAAA,CACtDH,cAAA,KACE2a,MAAO,CAAE5Z,KAAM,OAAQG,SAAU,UAAWD,OAAQ,OAAQ6pD,YAAa,GACzEllD,GAAG,QACHm1C,UAAU,kCAAiC56C,SAE3CH,cAAA,QACE4F,GAAG,SACH+U,MAAO,CAAE5Z,KAAM,WACfI,EAAE,4MAGNnB,cAAA,QACE4F,GAAG,WACH+U,MAAO,CAAE5Z,KAAM,UAAWG,SAAU,UAAWD,OAAQ,OAAQ6pD,YAAa,GAC5E3pD,EAAE,mOAIRnB,cAAA,KAAG4F,GAAG,QAAOzF,SACXH,cAAA,QACEmB,EAAE,oyBACFwZ,MAAO,CAAE5Z,KAAM,WACf6E,GAAG,aAGP5F,cAAA,KAAG4F,GAAG,QAAOzF,SACXH,cAAA,KAAG4F,GAAG,QAAQm1C,UAAU,+BAA+BpgC,MAAO,CAAE5Z,KAAM,WAAYZ,SAChFH,cAAA,QACEmB,EAAE,s2EACFyE,GAAG,kCAWzB,E,SCsDe+D,IAxFmB,SAAHrJ,GAA0E,IAApEyJ,EAAYzJ,EAAZyJ,aAAcE,EAAM3J,EAAN2J,OAAQL,EAAetJ,EAAfsJ,gBAAe4B,EAAAlL,EAAEuJ,aAAK,IAAA2B,GAAQA,EACvFC,EAA8E9D,qBAAW+D,KAAjFC,EAAgBF,EAAhBE,iBAAkBC,EAAaH,EAAbG,cAAeC,EAAeJ,EAAfI,gBAAiBC,EAAeL,EAAfK,gBAC1D7I,EAAoCC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAAxC8nD,EAAU5nD,EAAA,GAAE6nD,EAAa7nD,EAAA,GAChCG,EAAgCJ,mBAAS,IAAGM,EAAAJ,YAAAE,EAAA,GAArC2nD,EAAQznD,EAAA,GAAE0nD,EAAW1nD,EAAA,GAC5BE,EAAwCR,oBAAS,GAAKS,EAAAP,YAAAM,EAAA,GAA/CsI,EAAYrI,EAAA,GAAEsI,EAAetI,EAAA,GAK9BwnD,EAAQzpC,gBAAMzX,EAXL,GAsCf,OAfA5F,qBAAU,WACJ0F,GACFmhD,EAAYnhD,EAEhB,GAAG,CAACA,IAEJ1F,qBAAU,WACR,GAAIwH,GAAmBC,IAAoBlC,EAAiB,CAAC,IAADwhD,EAAAC,EACtD7+C,EAAWvC,EAAOwC,WAAU,SAACC,GAAC,OAAKA,EAAEC,KAAOd,CAAe,IAE/Dq/C,GAA4B,QAAhBE,EAAAnhD,EADZuC,GAAyB,IAAdA,EAAkB,EAAIA,UACL,IAAA4+C,OAAA,EAAhBA,EAAkBt9C,sBAAsC,QAApBu9C,EAAIphD,EAAOuC,UAAS,IAAA6+C,OAAA,EAAhBA,EAAkB/nC,eACxE,CAEF,GAAG,CAACzX,EAAiB5B,IAGnBnF,eAACuG,IAAwB,CAAAlL,SAAA,CACvBH,cAAA,QAAAG,UACS,OAAN8J,QAAM,IAANA,OAAM,EAANA,EAAQ4C,SAAU,IAAMb,EACvBhM,cAAC4qD,EAAU,IAEX5qD,cAAA,OACE6N,IAAKo9C,GAAYlhD,EACjBkE,IAAI,GACJC,QA7BmB,SAACmoB,GAC5BpqB,GAAgB,GAChBoqB,EAAM/wB,OAAOmgB,MAAQ,IACvB,EA2BUxgB,QAAS,WAAO,IAADqmD,EACb1/C,EAAc3B,EAAO9F,KAAI,SAAConD,GAAK,OAAA5qD,wBAAA,GAAW4qD,GAAK,IAAEh/C,YAAa1C,EAAQ,GAAK0hD,EAAMh/C,aAAW,KAC5FZ,IACIs/C,EAC8E,QADtEK,EACVrhD,EAAOxF,MAAK,SAACiI,GAAC,OAAKA,EAAEoB,qBAAuBm9C,GAAYv+C,EAAEqB,WAAak9C,CAAQ,WAAC,IAAAK,OAAA,EAAhFA,EAAkF3+C,GAClF/C,EAEJ,OAIC,OAANK,QAAM,IAANA,OAAM,EAANA,EAAQ4C,QAAS,GAChB7M,cAAC6sC,IAA2B,CAC1B3gC,YAAa6+C,EACbpiD,SAtDa,SAAC8E,GACpBu9C,EAAcv9C,EAChB,EAqDQR,YAAY,EACZD,SAAU,KACVE,SAAUlN,cAACmN,IAAe,CAACC,KAAMC,IAAgBC,KAAK,OACtDC,SAAUvN,cAACmN,IAAe,CAACC,KAAMI,IAAeF,KAAK,OAAQnN,SAE5DgrD,EAAMhnD,KAAI,SAACoN,EAAamE,GAAK,OAC5B1V,cAAC8M,IAASa,KAAI,CAAAxN,SACZH,cAACgI,IAAG,CAAChH,UAAU,OAAMb,SAClBoR,EAAYpN,KAAI,SAAC+P,EAAMwB,GAAK,OAC3B1V,cAACiI,IAAG,CAAajH,UAAU,yBAAwBb,SACjDH,cAAC4N,gBAAa,CACZC,IAAKqG,EAAKpG,oBAAsBoG,EAAKnG,SACrCiW,OAAO,OACP/V,IAAKiG,EAAK3H,YACVtH,QAAS,kBAhEJ,SAACgmD,GACxBC,EAAYD,GACZh/C,GAAgB,EAClB,CA6DmCu/C,CAAiBt3C,EAAKpG,oBAAsBoG,EAAKnG,SAAS,KALnE2H,EAOJ,OAVQA,EAaJ,QAM5B,C,4GCvGa3D,EAAW,SAAI05C,GAAqC,IAAfC,EAAIxyC,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,GAAAA,UAAA,GAAG,GACvDjW,EAA4BC,mBAAuB,CACjD2P,SAAS,IACT1P,EAAAC,YAAAH,EAAA,GAFK40C,EAAM10C,EAAA,GAAEwoD,EAASxoD,EAAA,GAIlByoD,EAAUvvB,sBAAWlkB,YAAAC,cAAAC,MAAC,SAAAC,IAAA,IAAAk8B,EAAA,OAAAp8B,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACrB6yC,EAAG,CAAD/yC,EAAAE,KAAA,eAAAF,EAAAG,OAAA,iBAKL,OAJF8yC,EAAShrD,wBAAC,CAAC,EACNk3C,GAAM,IACTpyB,MAAO,KACP5S,SAAS,KACT6F,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGuB6yC,IAAI,OAArBjX,EAAQ97B,EAAA6V,KACdo9B,EAAU,CACRx5C,KAAMqiC,EACN3hC,SAAS,IACT6F,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAEFizC,EAAShrD,wBAAC,CAAC,EACNk3C,GAAM,IACTpyB,MAAK/M,EAAA6M,GACL1S,SAAS,KACT,yBAAA6F,EAAAI,OAAA,GAAAR,EAAA,mBAEH,CAACmzC,EAAI5T,IAOR,OALAxzC,qBAAU,WACRunD,GAEF,GAAGF,GAEH/qD,wBAAA,GAAYk3C,GAAM,IAAE/kC,QAAS84C,GAC/B,C,kCCrCA,kCAAO,IAAMC,EAAoB,CAC/BC,WAAY,aACZC,SAAU,WACVC,MAAO,QACPC,eAAgB,iBAChBC,sBAAuB,wBACvBC,WAAY,aACZC,eAAgB,iBAChBC,qBAAsB,uBACtBC,WAAY,YACZC,WAAY,YACZC,iBAAkB,mBAClBC,eAAgB,iBAChBC,cAAe,gBACfC,OAAQ,SACRC,kBAAmB,oBACnBC,aAAc,eACdC,kBAAmB,oBACnBC,6BAA8B,+BAC9BC,oBAAqB,sBACrBC,2BAA4B,6BAC5BC,wBAAyB,0BACzBC,WAAY,aACZC,WAAY,aACZC,aAAc,eACdC,qBAAsB,uBACtBC,aAAc,eACdC,QAAS,UACTC,YAAa,cACbC,mBAAoB,qBACpBC,YAAa,c,+oBCPFC,EAAW,eAAAttD,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAO0B,GAA+B,OAAA5B,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAG,OAAA,SACxD1B,YAAS,2BAAqD,CACnEC,KAAM4C,KACN,wBAAAtB,EAAAI,OAAA,GAAAR,EAAA,KACH,gBAJuBS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KAMX20C,EAAwB,eAAA/rD,EAAAqW,YAAAC,cAAAC,MAAG,SAAAe,EAAOY,GAA+B,OAAA5B,cAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,cAAAU,EAAAT,OAAA,SACrE1B,YAAS,wCAAoE,CAClFC,KAAM4C,KACN,wBAAAV,EAAAR,OAAA,GAAAM,EAAA,KACH,gBAJoCJ,GAAA,OAAAlX,EAAAmX,MAAA,KAAAC,UAAA,KAMxB40C,EAAc,eAAAzrD,EAAA8V,YAAAC,cAAAC,MAAG,SAAAoB,EAAOO,GAA+B,OAAA5B,cAAAK,MAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAd,OAAA,SAC3D1B,YAAS,8BAAwD,CACtEC,KAAM4C,KACN,wBAAAL,EAAAb,OAAA,GAAAW,EAAA,KACH,gBAJ0BF,GAAA,OAAAlX,EAAA4W,MAAA,KAAAC,UAAA,KAMdmlB,EAAc,eAAA/7B,EAAA6V,YAAAC,cAAAC,MAAG,SAAA0B,EAAOC,EAAgC+kB,GAAwB,OAAA3mB,cAAAK,MAAA,SAAAwB,GAAA,cAAAA,EAAAtB,KAAAsB,EAAArB,MAAA,cAAAqB,EAAApB,OAAA,SACpF1B,YAAiD,8BAA+B,CACrFC,KAAM4C,EACN09B,QAAS,CACP,mBAAmC,OAAf3Y,QAAe,IAAfA,OAAe,EAAfA,EAAiBznB,eAEvC,wBAAA2C,EAAAnB,OAAA,GAAAiB,EAAA,KACH,gBAP0BH,EAAAC,GAAA,OAAAvX,EAAA2W,MAAA,KAAAC,UAAA,KASd8kC,EAAc,eAAA//B,EAAA9F,YAAAC,cAAAC,MAAG,SAAA01C,EAAO/zC,GAA2B,OAAA5B,cAAAK,MAAA,SAAAu1C,GAAA,cAAAA,EAAAr1C,KAAAq1C,EAAAp1C,MAAA,cAAAo1C,EAAAn1C,OAAA,SACvD1B,YAAiC,8BAA+B,CACrEC,KAAM4C,KACN,wBAAAg0C,EAAAl1C,OAAA,GAAAi1C,EAAA,KACH,gBAJ0B7zC,GAAA,OAAA+D,EAAAhF,MAAA,KAAAC,UAAA,KAMdwnC,EAAe,eAAAriC,EAAAlG,YAAAC,cAAAC,MAAG,SAAA41C,EAAOj0C,GAAqB,OAAA5B,cAAAK,MAAA,SAAAy1C,GAAA,cAAAA,EAAAv1C,KAAAu1C,EAAAt1C,MAAA,cAAAs1C,EAAAr1C,OAAA,SAClD1B,YAAU,+BAAgC,CAC/CC,KAAM4C,KACN,wBAAAk0C,EAAAp1C,OAAA,GAAAm1C,EAAA,KACH,gBAJ2BE,GAAA,OAAA9vC,EAAApF,MAAA,KAAAC,UAAA,KAMfqkB,EAAuB,eAAAze,EAAA3G,YAAAC,cAAAC,MAAG,SAAA+1C,EAAOp0C,EAAyB+kB,GAAwB,OAAA3mB,cAAAK,MAAA,SAAA41C,GAAA,cAAAA,EAAA11C,KAAA01C,EAAAz1C,MAAA,cAAAy1C,EAAAx1C,OAAA,SACtF1B,YAA+B,uCAAwC,CAC5EC,KAAM4C,EACN09B,QAAS,CACP,mBAAmC,OAAf3Y,QAAe,IAAfA,OAAe,EAAfA,EAAiBznB,eAEvC,wBAAA+2C,EAAAv1C,OAAA,GAAAs1C,EAAA,KACH,gBAPmCE,EAAAC,GAAA,OAAAzvC,EAAA7F,MAAA,KAAAC,UAAA,KASvBmmB,EAAiB,eAAAtgB,EAAA5G,YAAAC,cAAAC,MAAG,SAAAm2C,EAAOx0C,EAA6B+kB,GAAwB,OAAA3mB,cAAAK,MAAA,SAAAg2C,GAAA,cAAAA,EAAA91C,KAAA81C,EAAA71C,MAAA,cAAA61C,EAAA51C,OAAA,SACpF1B,YAA+B,iCAAkC,CACtEC,KAAM4C,EACN09B,QAAS,CACP,mBAAmC,OAAf3Y,QAAe,IAAfA,OAAe,EAAfA,EAAiBznB,eAEvC,wBAAAm3C,EAAA31C,OAAA,GAAA01C,EAAA,KACH,gBAP6BE,EAAAC,GAAA,OAAA5vC,EAAA9F,MAAA,KAAAC,UAAA,KASjBoqB,EAAY,eAAA7Y,EAAAtS,YAAAC,cAAAC,MAAG,SAAAu2C,EAAO50C,EAA+B+kB,GAAwB,OAAA3mB,cAAAK,MAAA,SAAAo2C,GAAA,cAAAA,EAAAl2C,KAAAk2C,EAAAj2C,MAAA,cAAAi2C,EAAAh2C,OAAA,SACjF1B,YAAiD,4BAA6B,CACnFC,KAAM4C,EACN09B,QAAS,CACP,mBAAmC,OAAf3Y,QAAe,IAAfA,OAAe,EAAfA,EAAiBznB,eAEvC,wBAAAu3C,EAAA/1C,OAAA,GAAA81C,EAAA,KACH,gBAPwBE,EAAAC,GAAA,OAAAtkC,EAAAxR,MAAA,KAAAC,UAAA,KAQZgmC,EAAiB,eAAAx0B,EAAAvS,YAAAC,cAAAC,MAAG,SAAA22C,EAAOh1C,GAAqB,OAAA5B,cAAAK,MAAA,SAAAw2C,GAAA,cAAAA,EAAAt2C,KAAAs2C,EAAAr2C,MAAA,cAAAq2C,EAAAp2C,OAAA,SACpD1B,YAAkC,iCAAkC,CACzEC,KAAM4C,KACN,wBAAAi1C,EAAAn2C,OAAA,GAAAk2C,EAAA,KACH,gBAJ6BE,GAAA,OAAAxkC,EAAAzR,MAAA,KAAAC,UAAA,KAMjBi2C,EAAqB,eAAAxkC,EAAAxS,YAAAC,cAAAC,MAAG,SAAA+2C,EAAO7jD,GAAyB,OAAA6M,cAAAK,MAAA,SAAA42C,GAAA,cAAAA,EAAA12C,KAAA02C,EAAAz2C,MAAA,cAAAy2C,EAAAx2C,OAAA,SAC5D1B,YAAwB,8BAA+B,CAC5DC,KAAM7L,KACN,wBAAA8jD,EAAAv2C,OAAA,GAAAs2C,EAAA,KACH,gBAJiCE,GAAA,OAAA3kC,EAAA1R,MAAA,KAAAC,UAAA,KAMrBq2C,EAAY,eAAAzkC,EAAA3S,YAAAC,cAAAC,MAAG,SAAAm3C,EAAOC,GAA0B,OAAAr3C,cAAAK,MAAA,SAAAi3C,GAAA,cAAAA,EAAA/2C,KAAA+2C,EAAA92C,MAAA,cAAA82C,EAAA72C,OAAA,SACpD1B,YAAS,6BAAA7Q,OAA+C0R,YAAkB,CAAEy3C,SAAUA,OAAc,wBAAAC,EAAA52C,OAAA,GAAA02C,EAAA,KAC5G,gBAFwBG,GAAA,OAAA7kC,EAAA7R,MAAA,KAAAC,UAAA,KAIZ02C,EAAU,eAAA7kC,EAAA5S,YAAAC,cAAAC,MAAG,SAAAw3C,EAAO19C,GAAwB,OAAAiG,cAAAK,MAAA,SAAAq3C,GAAA,cAAAA,EAAAn3C,KAAAm3C,EAAAl3C,MAAA,cAAAk3C,EAAAj3C,OAAA,SAChD1B,YAA0C,0BAA2B,CAC1EC,KAAMjF,KACN,wBAAA29C,EAAAh3C,OAAA,GAAA+2C,EAAA,KACH,gBAJsBE,GAAA,OAAAhlC,EAAA9R,MAAA,KAAAC,UAAA,KAMV82C,EAAuB,eAAA/kC,EAAA9S,YAAAC,cAAAC,MAAG,SAAA43C,EAAO1kD,GAAyB,OAAA6M,cAAAK,MAAA,SAAAy3C,GAAA,cAAAA,EAAAv3C,KAAAu3C,EAAAt3C,MAAA,cAAAs3C,EAAAr3C,OAAA,SAC9D1B,YAA4B,uCAAwC,CACzEC,KAAM7L,KACN,wBAAA2kD,EAAAp3C,OAAA,GAAAm3C,EAAA,KACH,gBAJmCE,GAAA,OAAAllC,EAAAhS,MAAA,KAAAC,UAAA,KAMvBk3C,EAA6B,WACxC,OAAO34C,YAAU,0CACnB,EAEa44C,EAAqB,eAAAnlC,EAAA/S,YAAAC,cAAAC,MAAG,SAAAi4C,EAAO/kD,GAAyB,OAAA6M,cAAAK,MAAA,SAAA83C,GAAA,cAAAA,EAAA53C,KAAA43C,EAAA33C,MAAA,cAAA23C,EAAA13C,OAAA,SAC5D1B,YAAwB,qCAAsC,CACnEC,KAAM7L,KACN,wBAAAglD,EAAAz3C,OAAA,GAAAw3C,EAAA,KACH,gBAJiCE,GAAA,OAAAtlC,EAAAjS,MAAA,KAAAC,UAAA,KAYrB2uC,EAA2B,eAAA4I,EAAAt4C,YAAAC,cAAAC,MAAG,SAAAq4C,IAAA,IAAA3M,EAAA4M,EAAA1M,EAAA2M,EAAA13C,UAAA,OAAAd,cAAAK,MAAA,SAAAo4C,GAAA,cAAAA,EAAAl4C,KAAAk4C,EAAAj4C,MAAA,WAAAmrC,EAAA6M,EAAA/jD,OAAU8jD,EAAkB,IAAA7nB,MAAAib,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAlB0M,EAAkB1M,GAAA2M,EAAA3M,GAAA,OAAA4M,EAAAh4C,OAAA,SAC9DpB,YAAU,oDAAAnR,OACqCqqD,EACjDxsD,KAAI,SAACyB,GAAE,8BAAAU,OAA6BV,EAAE,IACtC0sC,KAAK,KAAI,oBAAAhsC,OAAmBwqD,IAAaC,0BAC7C,wBAAAF,EAAA/3C,OAAA,GAAA43C,EAAA,KACF,kBANuC,OAAAD,EAAAx3C,MAAA,KAAAC,UAAA,I,kZChI3B8T,EAA+B1rB,IAAOC,IAAGC,MAAAC,YAAA,2XAYhC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAC9C,SAAAC,GAAQ,OAAAA,EAALH,MAAkBC,OAAO6qC,cAAc,IAI/C,SAAC/rC,GAAK,OAAKA,EAAMwrB,WAAa,iBAAiB,IAMrDc,EAA6Bxd,YAAc,+BAEpC,IAAMwhD,EAAuC1vD,IAAOC,IAAGa,MAAAX,YAAA,2lBAiC9DuvD,EAAqCxhD,YAAc,uCAE5C,IAAMG,EAAgCrO,IAAOC,IAAGsF,MAAApF,YAAA,6lBAUhCyb,IAAgBhV,GAKhBgV,IAAgBhU,GAIjC8nD,GAmBNrhD,EAA8BH,YAAc,gCAErC,IAAMyhD,EAA8B3vD,YAAO0D,KAAQwB,OAAM,SAAAnE,GAAA,IAAGrB,EAASqB,EAATrB,UAAWd,EAAOmC,EAAPnC,QAAS0oB,EAAIvmB,EAAJumB,KAAI,MAAQ,CACjG5nB,UAAW,6BAAAsF,OAAsC,OAATtF,QAAS,IAATA,IAAa,IAAKs2C,OAC1Dp3C,QAAgB,OAAPA,QAAO,IAAPA,IAAW,OACpB0oB,KAAU,OAAJA,QAAI,IAAJA,IAAQ,KACf,GAJ0CtnB,CAIxCuO,MAAApO,YAAA,khBAGQ,SAAAa,GAAQ,OAAAA,EAALX,MAAkBC,OAAO2e,eAAe,IAczC,SAAAtC,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOC,OAAO,IAY5B,SAAAwc,GAAQ,OAAAA,EAAL1c,MAAkBC,OAAOC,OAAO,IAM1CkrB,EAA0BzrB,YAAOyqC,KAAWvlC,MAAM,CAC7DwlC,OAAO,GAD8B1qC,CAErCwO,MAAArO,YAAA,8kBAYqByb,IAAgB9L,GAKjC4b,GAcOkkC,EAAwB5vD,IAAOC,IAAGyO,MAAAvO,YAAA,wGAEzB,SAAAqd,GAAQ,OAAAA,EAALnd,MAAkBC,OAAOuvD,6BAA6B,IAIlEC,EAAqB9vD,IAAOC,IAAG4O,MAAA1O,YAAA,6PAKrByb,IAAgBhV,GAGhBgV,IAAgBhU,IAK1BmoD,EAA6B/vD,YAAO4vD,EAAP5vD,CAA6B0c,MAAAvc,YAAA,qCAI1D6vD,EAAoBhwD,IAAOC,IAAG6c,MAAA3c,YAAA,+BAI3C6vD,EAAkB9hD,YAAc,mB,mJC7LnB+hD,EAAejwD,IAAOC,IAAGC,MAAAC,YAAA,iBAClC,SAAAnB,GAAU,OAAAA,EAAP+2B,SACI,yFAIN,IAGQjiB,EAAS,SAAHtT,GAA+E,IAAzE3B,EAAQ2B,EAAR3B,SAAUk3B,EAAOv1B,EAAPu1B,QAAOm6B,EAAA1vD,EAAE5B,eAAO,IAAAsxD,EAAG,UAASA,EAC7D,OACExxD,cAACuxD,EAAY,CAACl6B,QAASA,EAAQl3B,SAC7BH,cAACqI,IAAO,CAACC,UAAU,SAASpI,QAASA,EAAQC,SAC1CA,KAIT,EAEasxD,EAAmBnwD,IAAOC,IAAGa,MAAAX,YAAA,iJAO7BoJ,KAAO6mD,QAGP78C,EAAgB,WAC3B,OACE7U,cAACyxD,EAAgB,CAAAtxD,SACfH,cAACoV,EAAM,CAACiiB,SAAO,KAGrB,C,0ZCtCas6B,EAAsBrwD,YAAOswD,IAAPtwD,CAAuBE,MAAAC,YAAA,gBACtD80C,K,oCCPStrC,EAAqB3J,YAAO0G,IAAP1G,CAAWE,MAAAC,YAAA,QAEhCuH,EAA2B1H,aDQX,SAAHhB,GAA4D,IAAtDH,EAAQG,EAARH,SAAUa,EAASV,EAATU,UAChCyH,EAAgBd,qBAAWC,KAA3Ba,YAEKU,EACTV,EADFK,QAAWK,IAGb,OACEnJ,cAAC2xD,EAAmB,CAClB3wD,UAAWA,EACXmH,OAAQ,IACRrH,OAAQ,IACRq0B,YACErwB,eAAA,OACEc,GAAE,WAAAU,OAAa6C,GACfwR,MAAO,CAAE7Z,OAAQ,KACjBE,UAAU,oDAAmDb,SAAA,CAE5DgJ,EACDnJ,cAACoJ,IAAa,CAACX,YAAaA,OAGhCopD,MAAI,EAAA1xD,SAEHA,GAGP,GClCwCmB,CAAqBc,MAAAX,YAAA,qkEAmCpCO,IAKrBiJ,GASW,SAAA3K,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAOjC,SAAAC,GAAQ,OAAAA,EAALH,MAAkBC,OAAOy7C,cAAc,IAe9C,SAAC38C,GAAK,OAAKA,EAAMiB,MAAMC,OAAOC,OAAO,IAwBrC,SAAAQ,GAAQ,OAAAA,EAALV,MAAkBC,OAAO2e,eAAe,IAyB3C,SAAAje,GAAQ,OAAAA,EAALX,MAAkBC,OAAOy7C,cAAc,IAS1ChzC,EAAkB/I,YAAO2G,IAAP3G,CAAWuF,MAAApF,YAAA,iFAGnBQ,KAKVgO,EAAwB3O,IAAOC,IAAGsO,MAAApO,YAAA,wLAclC86C,EAAkBj7C,IAAOoF,KAAIoJ,MAAArO,YAAA,4DAkB7BkN,GAbgBrN,YAAOyrC,IAAPzrC,CAAe0O,MAAAvO,YAAA,2MAalBH,IAAOC,IAAG4O,MAAA1O,YAAA,uEAEzB,SAAAwc,GAAQ,OAAAA,EAALtc,MAAkBC,OAAO2e,eAAe,KAIzCopC,EAAkBroD,YAAO0D,IAAP1D,CAAc0c,MAAAvc,YAAA,2EAIhC,SAAA4c,GAAQ,OAAAA,EAAL1c,MAAkBC,OAAOC,OAAO,IAGnCggD,EAAWvgD,IAAOoF,KAAI0X,MAAA3c,YAAA,8GAGxB,SAAAqd,GAAQ,OAAAA,EAALnd,MAAkBC,OAAO2e,eAAe,G,yQC9L1Crb,EAAS,SAATA,GAAS,OAATA,IAAS,aAATA,IAAS,eAATA,CAAS,MAKT8/C,EAAS,SAATA,GAAS,OAATA,IAAS,qBAATA,IAAS,uBAATA,IAAS,6BAATA,IAAS,qCAATA,IAAS,2CAATA,IAAS,qBAATA,IAAS,uBAATA,CAAS,MA4CR8M,EAAqBC,aAAA,SAAAD,IAAAE,YAAA,KAAAF,GAAA,KAChCl/C,WAAqB,EAAC,KACtBuiC,SAAmB8c,IAAiB,KACpCv/C,YAAM,OACNw/C,mBAAa,KAmEGC,EAAU,SAAVA,GAAU,OAAVA,EAAU,iCAAVA,EAAU,0BAAVA,EAAU,oBAAVA,CAAU,MAmDhBjK,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,UAAhBA,EAAgB,cAAhBA,EAAgB,cAAhBA,CAAgB,MAMhB4I,EAAY,SAAZA,GAAY,OAAZA,IAAY,2BAAZA,IAAY,uBAAZA,IAAY,yBAAZA,IAAY,mDAAZA,IAAY,qBAAZA,IAAY,6CAAZA,IAAY,2BAAZA,IAAY,iBAAZA,IAAY,qBAAZA,IAAY,8CAAZA,IAAY,cAAZA,IAAY,gDAAZA,IAAY,oDAAZA,IAAY,sCAAZA,IAAY,gDAAZA,IAAY,4BAAZA,IAAY,4BAAZA,IAAY,4BAAZA,IAAY,4CAAZA,IAAY,kCAAZA,IAAY,oDAAZA,CAAY,K,8kBC9KXsB,EAAiB9wD,YAAO2G,IAAP3G,CAAWE,MAAAC,YAAA,yaA0B5B4wD,EAAkB/wD,YAAO0G,IAAP1G,CAAWc,MAAAX,YAAA,4XACzB,SAACf,GAAK,OAAKA,EAAMiB,MAAM2c,MAAMg0C,QAAQ,IAiBzCC,EAAejxD,IAAOC,IAAGsF,MAAApF,YAAA,8LAE3B,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOgpB,SAAS,IAUnC4nC,EAAiBlxD,YAAOyjC,IAAPzjC,CAAYuO,MAAApO,YAAA,yIAI/B,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAO+E,SAAS,IAKnC8rD,EAAkBnxD,YAAOkxD,EAAPlxD,CAAsBwO,MAAArO,YAAA,QAExCixD,EAAgBpxD,YAAOyjC,IAAPzjC,CAAY0O,MAAAvO,YAAA,yBAC9B,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAO+E,SAAS,IAGnCgsD,EAAwBrxD,IAAOC,IAAG4O,MAAA1O,YAAA,oHAQlCmxD,EAAatxD,IAAOuxD,GAAE70C,MAAAvc,YAAA,0HACxB,SAAAa,GAAQ,OAAAA,EAALX,MAAkBC,OAAOC,OAAO,IAOjCixD,EAAaxxD,IAAOC,IAAG6c,MAAA3c,YAAA,0GAKvB,SAAAwc,GAAQ,OAAAA,EAALtc,MAAkBC,OAAO+E,SAAS,IAIrCosD,EAAuBzxD,YAAO2G,IAAP3G,CAAWqd,MAAAld,YAAA,4EAKlCuxD,EAAsB1xD,YAAO2G,IAAP3G,CAAWud,MAAApd,YAAA,yFAQjCwxD,EAAsB3xD,YAAO0G,IAAP1G,CAAWw0C,MAAAr0C,YAAA,sCAIjCyxD,EAAgB5xD,IAAOC,IAAGw0C,MAAAt0C,YAAA,6NAE5B,SAAA4c,GAAQ,OAAAA,EAAL1c,MAAkBC,OAAOgpB,SAAS,IAIxB,SAAA9L,GAAQ,OAAAA,EAALnd,MAAkBC,OAAOuxD,mBAAmB,IACnD,SAAAp0C,GAAQ,OAAAA,EAALpd,MAAkBC,OAAOuxD,mBAAmB,IAQtDC,EAA0B9xD,YAAO2G,IAAP3G,CAAW20C,MAAAx0C,YAAA,mMAO3Byb,IAAgBhU,G,gOCxIjC6D,EAAasmD,EAAQ,IAOdvR,EAAU,SAAHxhD,GAAuD,IAAjD0kC,EAAE1kC,EAAF0kC,GAAI7kC,EAAQG,EAARH,SAAUa,EAASV,EAATU,UAAcN,EAAK4rB,YAAAhsB,EAAAisB,GAGzD,OAFoB+mC,YAActuB,GAGhChlC,cAACuzD,IAAS5yD,wBAAA,CAACqkC,GAAIA,EAAIhkC,UAAW+L,EAAW,WAAY/L,IAAgBN,GAAK,IAAAP,SACvEA,KAGHH,cAACwzD,IAAS7yD,wBAAA,CAACioB,KAAMoc,EAAIhkC,UAAW+L,EAAW/L,IAAgBN,GAAK,IAAAP,SAC7DA,IAGP,EAEa4kC,EAAO,SAAHjjC,GAAuD,IAAjDkjC,EAAEljC,EAAFkjC,GAAI7kC,EAAQ2B,EAAR3B,SAAUa,EAASc,EAATd,UAAcN,EAAK4rB,YAAAxqB,EAAA2xD,GAGtD,OAFoBH,YAActuB,GAGhChlC,cAACuzD,IAAS5yD,wBAAA,CAACqkC,GAAIA,EAAIhkC,UAAW+L,EAAW/L,IAAgBN,GAAK,IAAAP,SAC3DA,KAGHH,cAAA,IAAAW,wBAAA,CAAGioB,KAAMoc,EAAIhkC,UAAW+L,EAAW/L,IAAgBN,GAAK,IAAAP,SACrDA,IAGP,C,kCCrCA,kDAKay3B,EAAW,SAAHt3B,GAAkD,IAA5Cwb,EAAKxb,EAALwb,MAAK43C,EAAApzD,EAAEwoB,GAAI6qC,OAAS,IAAAD,EAAG,MAAKA,EACrD,OAAO1zD,cAAC2zD,EAAS,CAACC,wBAAyB93C,GAAS,CAAE+3C,OAAQ/3C,IAChE,C,kfCJe,SAASg4C,IACtB,IAAQlyB,EAAa3lB,cAAb2lB,SAMR,OAJAv9B,qBAAU,WACR+P,OAAOC,SAAS,EAAG,EACrB,GAAG,CAACutB,IAEG,IACT,C,0FCTamyB,EAAiBzyD,IAAOC,IAAGC,MAAAC,YAAA,QCA3BE,EAAsB,CACjCC,OAAQ,CACNC,QAAS,UACTE,cAAe,UACfmc,UAAW,UACX81C,aAAc,UACdC,YAAa,UACbttD,UAAW,UACX02C,eAAgB,UAChB78B,YAAa,UACboK,UAAW,UACXgd,qBAAsB,UACtBrd,qBAAsB,UACtB4mC,8BAA+B,UAC/B57B,YAAa,oBACb1J,UAAW,UACXC,aAAc,UACdC,aAAc,OACdC,YAAa,UACbR,0BAA2B,UAC3BC,6BAA8B,UAC9BC,6BAA8B,UAC9BC,4BAA6B,UAC7B8gB,eAAgB,QAChBiT,eAAgB,UAChByT,oBAAqB,OACrBe,sBAAuB,UACvB3zC,gBAAiB,UACjBo/B,sBAAuB,UACvBwU,qBAAsB,UACtBnS,mBAAoB,UACpBoS,0BAA2B,UAC3BvqB,YAAa,UACbsgB,iBAAkB,UAClBkK,cAAe,UACfC,gBAAiB,UACjBC,aAAc,UACdC,WAAY,WAEdC,KAAM,CACJ1rB,KAAM,uBACNpC,MAAO,gCAET+tB,OAAQ,CACNC,OAAQ,CACNC,SAAU,GACVC,UAAW,KAGfv2C,MAAO,CACLg0C,SAAU,qBACV/zC,YAAa,qBCnDJu2C,EAAoBxzD,IAAOC,IAAGC,MAAAC,YAAA,Q,QCE9BE,EAAsBozD,gBAAM,CAAC,EAAGC,EAAc,CACzDpzD,OAAQ,CACNC,QAAS,UACTmyD,aAAc,UACdC,YAAa,WAEfQ,KAAM,CACJ1rB,KAAM,uBACNpC,MAAO,kC,oCCSLsuB,GAAcC,YAAiB1zD,MAAAC,YAAA,UAGxB0zD,GAAsB,SAAH70D,GAA8C,IAAxCH,EAAQG,EAARH,SAC9B0tB,EAAStmB,aAAe,SAACC,GAAK,OAAKA,EAAMqmB,MAAM,GAAEpmB,MAEjD9F,EAjBe,SAACuoB,GACtB,OAAQA,GACN,KAAK07B,IACH,OAAOwP,EACT,KAAKC,IACH,OAAOC,EACT,QACE,OAAOF,EAEb,CAQgBG,CAAqB,OAAN1nC,QAAM,IAANA,OAAM,EAANA,EAAQ2uB,MACjCgZ,EAAgBzB,EAEpB,GACO,cADO,OAANlmC,QAAM,IAANA,OAAM,EAANA,EAAQ2uB,MAEZgZ,EAAgBV,EAIpB,OACEhwD,gBAAC2wD,IAAa,CAAC9zD,MAAOA,EAAMxB,SAAA,CAC1BH,eAACi1D,GAAW,IACZj1D,eAACw1D,EAAa,CAAAr1D,SAAEA,MAGtB,E,6CCEeu1D,GAxCS,WACtB,IAAAC,EAA8DhxC,cAAgB,SAACnd,GAAK,OAAKA,CAAK,IAAtF8d,EAAYqwC,EAAZrwC,aAAcP,EAAO4wC,EAAP5wC,QAAS4B,EAASgvC,EAAThvC,UAAWjB,EAAeiwC,EAAfjwC,gBAClC2Y,EAAmBnF,cAAgB,SAAC1xB,GAAK,OAAKA,CAAK,IAAnD62B,eACFu3B,EAAa18B,cAAgB,SAAC1xB,GAAK,OAAKA,EAAMuL,SAAS5O,KAAI,SAAC+P,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,GAAC,IACnGlF,qBAAU,WACR0gB,IACAW,GAEF,GAAG,IAEHrhB,qBAAU,WACHihB,GAILqB,EAAUivC,EAEZ,GAAG,CAACtwC,IAEJjhB,qBAAU,WAC6B,SAAAwxD,IAMpC,OANoCA,EAAA19C,aAAAC,eAAAC,MAArC,SAAAC,IAAA,OAAAF,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACE,IACEqM,EAAEC,WAAW4B,gBAAgBgvC,IAAI,iBAAiBC,GAAG,gBAAiB13B,EACxE,CAAE,MAAO5Y,GACPD,QAAQC,MAAM,yDAChB,CAAC,wBAAA/M,EAAAI,OAAA,GAAAR,EAAA,MACFW,MAAA,KAAAC,UAAA,CAMD,OAJIoM,GATW,WACsBuwC,EAAA58C,MAAC,KAADC,UAAA,CASnC88C,GAGK,WACL/wC,EAAEC,WAAW4B,gBAAgBgvC,IAAI,gBACnC,CAGF,GAAG,CAACxwC,GACN,E,UCvCa2wC,GAA0B30D,YAAOrB,KAAPqB,CAAaE,MAAAC,YAAA,0BACvCoJ,KAAOqrD,aCAPC,GAAoB,WAC/B,IAAAR,EAAwDhxC,cAAgB,SAACnd,GAAK,OAAKA,CAAK,GAAEC,MAAlFqe,EAAmB6vC,EAAnB7vC,oBAAqBY,EAAsBivC,EAAtBjvC,uBAC7B,OACE1mB,eAAA6E,YAAA,CAAA1E,SACG2lB,GACC9lB,eAACi2D,GAAuB,CACtB/1D,QAAQ,SACRsgC,QAAS,kBAAM9Z,GAAuB,EAAM,EAC5Cma,aAAW,EACX7/B,UAAU,kBAAiBb,SAE3B2E,gBAAA,KAAG9D,UAAU,qBAAoBb,SAAA,CAAC,gEAEhCH,eAAA,KAAG4oB,KAAK,sBAAsB3jB,QAAS,kBAAMmP,OAAO4H,SAASo6C,QAAQ,EAACj2D,SAAC,uBAEnE,4BAOhB,E,6BCvBak2D,GAAe/0D,YAAOgf,KAAMmpB,OAAbnoC,CAAoBE,MAAAC,YAAA,gCCMnC60D,GAAgB,SAAHh2D,GAAyD,IAAnDsD,EAAItD,EAAJsD,KAAM2yD,EAAWj2D,EAAXi2D,YAAaC,EAAQl2D,EAARk2D,SACjD,OACEx2D,eAAA6E,YAAA,CAAA1E,SACEH,eAACsgB,KAAK,CAAC1c,KAAMA,EAAM6B,OAAQ8wD,EAAYp2D,SACrCH,eAACq2D,GAAY,CAAClsB,aAAW,EAAAhqC,SAAEq2D,OAInC,E,qICbapuD,GAAQ9G,IAAOorC,GAAElrC,MAAAC,YAAA,uEACnB,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAKjC40D,GAAgBn1D,IAAOo1D,GAAEt0D,MAAAX,YAAA,2HAC3B,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAMjC80D,GAAcr1D,IAAOu6C,EAACh1C,MAAApF,YAAA,gCAItBm1D,GAAgBt1D,IAAOC,IAAGsO,MAAApO,YAAA,0RACjB,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAO6qC,cAAc,IAqBnDoqB,GAAgBv1D,IAAOC,IAAGuO,MAAArO,YAAA,gSAiB1Bq1D,GAAWx1D,IAAOC,IAAGyO,MAAAvO,YAAA,0dAEvB,SAAAa,GAAQ,OAAAA,EAALX,MAAkBC,OAAO2e,eAAe,IA0BzCw2C,GAAoBz1D,YAAO+H,KAAK2rB,MAAZ1zB,CAAkB6O,MAAA1O,YAAA,2BAItCu1D,GAAe11D,YAAO0D,KAAP1D,CAAc0c,MAAAvc,YAAA,2GAQ7Bw1D,GAAe31D,IAAOC,IAAG6c,MAAA3c,YAAA,2GAOzBy1D,GAAiB51D,YAAO+H,KAAK2rB,MAAZ1zB,CAAkBqd,MAAAld,YAAA,yLACrC,SAAAwc,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOC,OAAO,GAOvBqb,KAAgBhU,IAK1BiuD,GAAe71D,IAAO+lB,EAACxI,MAAApd,YAAA,0BCnFvBytC,GAAY,WACvB,IAAckoB,EAAmBrlD,cAAS,kBAAMoH,aAA2B,OAAN0U,QAAM,IAANA,OAAM,EAANA,EAAQlhB,GAAG,IAAxEwF,KACFklD,EAAOC,eACbr0D,EAAkCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA1Cs0D,EAASp0D,EAAA,GAAEq0D,EAAYr0D,EAAA,GAC9BG,EAAwDJ,mBAA2B,IAAGM,EAAAJ,YAAAE,EAAA,GAA/Em0D,EAAoBj0D,EAAA,GAAEk0D,EAAuBl0D,EAAA,GACpDE,EAA0CR,qBAA0BS,EAAAP,YAAAM,EAAA,GAA7Di0D,EAAah0D,EAAA,GAAEi0D,EAAgBj0D,EAAA,GACtCulB,EAA2C3hB,aACzC,SAACC,GAAK,MAAK,CAACA,EAAMomB,WAAYpmB,EAAMF,aAAcE,EAAMqmB,OAAO,GAC/DpmB,MACDo4C,EAAAz8C,YAAA8lB,EAAA,GAHM0E,EAAUiyB,EAAA,GAAEv4C,EAAYu4C,EAAA,GAAEhyB,EAAMgyB,EAAA,GAIvC1+B,EAAoCje,oBAAS,GAAMke,EAAAhe,YAAA+d,EAAA,GAA5C02C,EAAUz2C,EAAA,GAAE02C,EAAa12C,EAAA,GAChCmD,EAAgCrhB,mBAAS,IAAGshB,EAAAphB,YAAAmhB,EAAA,GAArCwzC,EAAQvzC,EAAA,GAAEwzC,EAAWxzC,EAAA,GAC5BsV,EAAgC52B,mBAAS,IAAG62B,EAAA32B,YAAA02B,EAAA,GAArCm+B,EAAQl+B,EAAA,GAAEm+B,EAAWn+B,EAAA,GAC5Bo+B,EAAkCj1D,oBAAS,GAAMk1D,EAAAh1D,YAAA+0D,EAAA,GAA1CE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAG9BG,EAAoCr1D,mBAAqB,CAAE20C,QAAQ,EAAO2gB,UAAW,GAAIC,WAAW,IAAQC,EAAAt1D,YAAAm1D,EAAA,GAArGI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAC1BG,EAAS90D,mBACPojD,EAAgB5+B,eAAhB4+B,YAER9iD,qBAAU,WACRqzD,EAAsC,OAAdN,QAAc,IAAdA,OAAc,EAAdA,EAAgB0B,gBACxC3R,GACF,GAAG,CAACiQ,IAEJ,IAAMnzB,EAAY,eAAA3jC,EAAA6X,aAAAC,eAAAC,MAAG,SAAAC,EAAO+d,GAAK,IAAA0iC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAp/C,EAAA69B,EAAA1lC,EAAA,OAAAiG,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKe,GAJ9Cyd,EAAM4jB,iBACF8e,EAAgBF,EAAOtzD,QAC3BiyD,GAAa,GACPwB,EAAO3iC,EAAMloB,cAAauK,EAAA6M,KACC,OAAboyC,QAAa,IAAbA,KAAe0B,aAAW3gD,EAAA6M,GAAA,CAAA7M,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EAAW0gD,EAAiBP,GAAc,OAAArgD,EAAA6M,GAAA7M,EAAA6V,KAAA,OAAxE,GAAV0qC,EAAUvgD,EAAA6M,IACZyzC,EAAKO,kBAAmBN,EAAU,CAAAvgD,EAAAE,KAAA,SAWnC,OAVGoB,EAA0B,CAC5B29C,cAAeA,EACf6B,UAAWR,EAAKQ,UAAU19C,MAC1B29C,SAAUT,EAAKS,SAAS39C,MACxB49C,MAAOV,EAAKU,MAAM59C,MAClB69C,MAAiB,QAAZT,EAAEF,EAAKW,aAAK,IAAAT,OAAA,EAAVA,EAAYp9C,MACnB89C,QAAqB,QAAdT,EAAEH,EAAKY,eAAO,IAAAT,OAAA,EAAZA,EAAcr9C,MACvBlF,QAASoiD,EAAKpiD,QAAQkF,MACtBpC,IAAa,QAAV0/C,EAAEJ,EAAKhoC,WAAG,IAAAooC,OAAA,EAARA,EAAUt9C,MACfzC,SAAgB,OAANwU,QAAM,IAANA,OAAM,EAANA,EAAQlhB,IACnB+L,EAAAE,KAAA,GAEoBkB,aAAmBE,GAAQ,SAA1C69B,EAAMn/B,EAAA6V,MAGVqqC,EAAc,CAAE/gB,SAAQ2gB,UAAWlxD,EAAa,oBAAqB,qBAAsBmxD,WAAW,KAElGtmD,EAAmB,CACrB0lC,QAAQ,EACR2gB,UAAWlxD,EAAa,eAAgB,gBACxCmxD,WAAW,GAEbG,EAAczmD,IAEhB0nD,EAAeb,GAAK,eAAAtgD,EAAAG,OAAA,mCAAAH,EAAAI,OAAA,GAAAR,EAAA,KAGvB,gBAlCiBS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KA4CZogD,EAAgB,eAAAx3D,EAAAqW,aAAAC,eAAAC,MAAG,SAAAe,EAAO0gD,GAAO,IAAApgD,EAAAqgD,EAAA,OAAA3hD,eAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,OAElB,GADfc,EAAQ,OAAFogD,QAAE,IAAFA,OAAE,EAAFA,EAAIh+C,MACVi+C,GAAU,GAEVC,aAAYtgD,GAAK,CAADJ,EAAAV,KAAA,eAAAU,EAAAV,KAAA,EACFY,aAAgBqU,EAAOlhB,GAAI+M,GAAI,OAA/CqgD,EAAOzgD,EAAAiV,KAAA,OAOR,OAJGwrC,EACFD,EAAGG,kBAAkB,IAErBH,EAAGG,kBAAkB,WACtB3gD,EAAAT,OAAA,SACMkhD,GAAO,wBAAAzgD,EAAAR,OAAA,GAAAM,EAAA,KACf,gBAdqBJ,GAAA,OAAAlX,EAAAmX,MAAA,KAAAC,UAAA,KAgBhBghD,EAAW,eAAA73D,EAAA8V,aAAAC,eAAAC,MAAG,SAAAoB,IAAA,IAAAs/C,EAAA,OAAA3gD,eAAAK,MAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OACgB,GAA9BmgD,EAAgBF,EAAOtzD,SACvBgyD,IAAawB,EAAa,CAAAp/C,EAAAf,KAAA,eAAAe,EAAAf,KAAA,EACH0gD,EAAiBP,GAAc,OAAxCp/C,EAAA4U,KAAA,cAAA5U,EAAAd,OAAA,kCAAAc,EAAAb,OAAA,GAAAW,EAAA,KAInB,kBAPgB,OAAApX,EAAA4W,MAAA,KAAAC,UAAA,KASX2gD,EAAiB,SAACb,GACtBxB,GAAa,GAEbwB,EAAKQ,UAAU19C,MAAQ,GACvBk9C,EAAKS,SAAS39C,MAAQ,GACtBk9C,EAAKU,MAAM59C,MAAQ,GACnBk9C,EAAKW,MAAM79C,MAAQ,GACnBk9C,EAAKY,QAAQ99C,MAAQ,GACrBk9C,EAAKpiD,QAAQkF,MAAQ,GACrB87C,EAAgBj3D,wBAAC,CAAC,EAAIg3D,GAAa,IAAEwC,OAAQ,MAE5B,OAAbxC,QAAa,IAAbA,KAAe0B,cACjBL,EAAKhoC,IAAIlV,MAAQ,GAErB,EACA,OACEhX,gBAACs1D,KAAM,CAAC/pD,MAAM,aAAYlQ,SAAA,CACvBk4D,GAAar4D,eAACs2D,GAAa,CAAC1yD,MAAI,EAAC2yD,YAjGlB,WAAH,OAAS+B,GAAa,EAAM,EAiGmB9B,SAAUyB,IACtEnzD,gBAAC8xD,GAAa,CAAAz2D,SAAA,CACZH,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SACFH,eAACykC,KAAc,QAGnBzkC,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SACFH,eAACoI,GAAK,CAAAjI,SACJH,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBM,sBAIxEnsD,eAAC62D,GAAa,CAAA12D,SACZ2E,gBAACmD,KAAG,CAACC,GAAI,EAAE/H,SAAA,CACTH,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SACFH,eAACy2D,GAAa,CAAAt2D,SACZH,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBW,4BAIxExsD,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAACoJ,GAAI,GAAGlR,SACVH,eAAC22D,GAAW,CAAAx2D,SACVH,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBY,0BAKxEzsD,eAAC82D,GAAQ,CAAC91D,UAAU,OAAMb,SACxB2E,gBAACuE,KAAI,CAACixD,YAAU,EAAC/C,UAAWA,EAAWxzB,SAAUE,EAAa9jC,SAAA,CAC5DH,eAACqJ,KAAKrB,IAAG,CAAA7H,SACPH,eAACqJ,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,GAAGlR,UAC/B,OAAVw4D,QAAU,IAAVA,OAAU,EAAVA,EAAYF,YACXz4D,eAACC,KAAK,CACJC,QAAmB,OAAVy4D,QAAU,IAAVA,KAAY9gB,OAAS,UAAY,SAC1CrX,QAAS,kBAAMo4B,EAAaj4D,wBAAC,CAAC,EAAIg4D,GAAU,IAAEF,WAAW,IAAQ,EACjE53B,aAAW,EAAA1gC,SAEXH,eAAA,KAAAG,SAAc,OAAVw4D,QAAU,IAAVA,OAAU,EAAVA,EAAYH,kBAKxB1zD,gBAACuE,KAAKrB,IAAG,CAAChH,UAAU,OAAMb,SAAA,CACxB2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,EAAG4jB,UAAU,iCAAgC90B,SAAA,CACpFH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,mBACZH,eAACqJ,KAAK6rB,QAAO,CACXpM,GAAG,SACHxb,KAAK,KACL7D,QAAM,EACNzG,SAAU,SAAC0G,GAAC,OAvGL,SAACA,GAC1B,IAAIyI,EAAOslD,EAAqBhzD,MAAK,SAACiI,GAAC,OAAKA,EAAEytD,SAAWzwD,EAAEpE,OAAOwW,KAAK,IACvE87C,EAAiBzlD,GACjB6lD,EAAgB,OAAJ7lD,QAAI,IAAJA,OAAI,EAAJA,EAAMooD,UAClBrC,EAAgB,OAAJ/lD,QAAI,IAAJA,OAAI,EAAJA,EAAMqoD,UAClB1C,IAAkB,OAAJ3lD,QAAI,IAAJA,MAAMknD,aACtB,CAiGqCoB,CAAmB/wD,EAAE,EACtCoS,MAAoB,OAAb67C,QAAa,IAAbA,OAAa,EAAbA,EAAewC,OACtBrmC,UAAQ,EAAA3zB,SAEa,OAApBs3D,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBtzD,KAAI,SAAC+vB,GAAY,IAADwmC,EACrC,OACE16D,eAAA,UAA4B8b,MAAoB,QAAf4+C,EAAExmC,EAAOimC,cAAM,IAAAO,IAAI,GAAGv6D,SACpD+zB,EAAOimC,QADGjmC,EAAOimC,OAIxB,SAGHpC,GACC/3D,eAACk3D,GAAc,CAACpuC,GAAI7gB,KAAI9H,SACtBH,eAACm3D,GAAY,CAAClyD,QApKf,WAAH,OAASqzD,GAAa,EAAK,EAoKWn4D,SAAE43D,SAI1CjzD,gBAACuE,KAAKrB,IAAG,CAAA7H,SAAA,CACP2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,EAAG4jB,UAAU,YAAW90B,SAAA,CAC/DH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,gBACZH,eAACqJ,KAAK6rB,QAAO,CAAC1wB,KAAK,YAAY+S,KAAK,OAAOuc,UAAQ,IACnD9zB,eAACqJ,KAAK6rB,QAAQylC,SAAQ,CAACpjD,KAAK,UAASpX,SAAC,iCAGxC2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,EAAG4jB,UAAU,WAAU90B,SAAA,CAC9DH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,eACZH,eAACqJ,KAAK6rB,QAAO,CAAC1wB,KAAK,WAAW+S,KAAK,OAAOuc,UAAQ,IAClD9zB,eAACqJ,KAAK6rB,QAAQylC,SAAQ,CAACpjD,KAAK,UAASpX,SAAC,mCAG1C2E,gBAACuE,KAAKrB,IAAG,CAAA7H,SAAA,CACP2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,EAAG4jB,UAAU,QAAO90B,SAAA,CAC3DH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,WACZH,eAACqJ,KAAK6rB,QAAO,CAAC1wB,KAAK,QAAQ+S,KAAK,QAAQuc,UAAQ,IAChD9zB,eAACqJ,KAAK6rB,QAAQylC,SAAQ,CAACpjD,KAAK,UAASpX,SAAC,6BAExC2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,EAAG4jB,UAAU,UAAS90B,SAAA,CAC7DH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,YACZH,eAACqJ,KAAK6rB,QAAO,CAAC1wB,KAAK,UAAU+S,KAAK,eAGtCzS,gBAACuE,KAAKrB,IAAG,CAAA7H,SAAA,CACN03D,GACC/yD,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,EAAG4jB,UAAU,MAAK90B,SAAA,CACzDH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,SACZH,eAACqJ,KAAK6rB,QAAO,CACX1wB,KAAK,MACL+S,KAAK,OACL4d,YAAY,QACZpwB,IAAK8zD,EACL71D,SAAUk3D,EACVpmC,UAAQ,IAEV9zB,eAACqJ,KAAK6rB,QAAQylC,SAAQ,CAACpjD,KAAK,UAASpX,SAAC,0BAI1C2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,EAAG4jB,UAAU,QAAO90B,SAAA,CAC3DH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,iBACZH,eAACqJ,KAAK6rB,QAAO,CAAC1wB,KAAK,QAAQ+S,KAAK,eAGpCvX,eAACqJ,KAAKrB,IAAG,CAAA7H,SACP2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,GAAI4jB,UAAU,UAAS90B,SAAA,CAC9DH,eAACqJ,KAAKgrB,MAAK,CAAAl0B,SAAC,aACZH,eAACqJ,KAAK6rB,QAAO,CACX1wB,KAAK,UACLskB,GAAG,WACH8xC,KAAM,EACNzlC,YAAY,0BACZrB,UAAQ,IAEV9zB,eAACqJ,KAAK6rB,QAAQylC,SAAQ,CAACpjD,KAAK,UAASpX,SAAC,gCAG1CH,eAACqJ,KAAKrB,IAAG,CAAA7H,SACP2E,gBAACiyD,GAAiB,CAAC/1D,UAAU,aAAa8nB,GAAI7gB,KAAKiB,GAAI,GAAIiI,GAAI,GAAIE,GAAI,GAAGlR,SAAA,CACxEH,eAACi3D,GAAY,CAAA92D,SACXH,eAACwyD,KAAc,CAACxtB,GAAKpX,EAAWJ,SAAsB,IAAX,SAAertB,SACxDH,eAAC66D,KAAgB,CAACj1D,GAAIimD,KAAkBa,oBAG5C1sD,eAACg3D,GAAY,CAACz/C,KAAK,SAASjK,KAAK,KAAInN,SACnCH,eAAC66D,KAAgB,CAACj1D,GAAIimD,KAAkBc,+BAW9D,E,6BCrSamO,GAAsBx5D,IAAOC,IAAGC,MAAAC,YAAA,k7CAoErB,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAO9Ck5D,GAAkBz5D,IAAOC,IAAGa,MAAAX,YAAA,uVAalByb,KAAgBhU,IAO1B8xD,GAAe15D,YAAO0D,KAAP1D,CAAcuF,MAAApF,YAAA,yE,+CCvF7Bw5D,G,OAAqBr2C,IAAyB,SAACC,EAAKC,GAAG,MAAM,CACxE8vB,QAAS,GACTsmB,cAAe,EAEfC,aAAa,WAAD,IAAAC,EAAAjjD,aAAAC,eAAAC,MAAE,SAAAC,IAAA,IAAA+iD,EAAA,OAAAjjD,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACOg1C,aAAWjtD,YAAC,CAAC,EAAI26D,MAAiC,QAA/DD,EAAI3iD,EAAA6V,OAGR1J,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAEotC,QAAO1+B,aAAMmlD,EAAKE,MAAgCL,cAAeG,EAAK9oD,cAAY,IAC/G,wBAAAmG,EAAAI,OAAA,GAAAR,EAAA,KACF,yBAAA8iD,EAAAniD,MAAA,KAAAC,UAAA,EANY,GAOd,I,2BCDYsiD,GAAY,SAAHl7D,GAAqBA,EAAfm7D,gBAA+B,IACjD7mB,EAAYqmB,IAAmB,SAACzzD,GAAK,OAAKA,CAAK,GAAEC,MAAjDmtC,QACR9iC,EAA0BC,cAAS,kBAAM2pD,cAAmB,IAApD7oD,EAAOf,EAAPe,QAASV,EAAIL,EAAJK,KACX8V,EAAU0zC,cASVC,EAAe,SAAClyD,EAAewK,GAPd,IAAC4+B,GAQtBppC,EAAEuwC,iBACE/lC,EAAKi+C,aAAeA,KAAW0J,kBAC/B3nD,EAAKi+C,aAAeA,KAAW2J,aAC7B5Y,aAAyBtO,EAAS,YAAa1gC,EAAK6nD,WACtD7X,aAAqBtP,EAAS,YAAa1gC,EAAK6nD,WAEhDxX,aACE3P,EACAonB,IAAgCD,UAChC,YACA,YACA7nD,EAAK6nD,WAnBWjpB,EAsBL8B,EArBjBt4B,eACA9I,eAAeK,QAAQH,IAAkBuoD,eAAgBnpB,EAAKp+B,KAAKC,UAAUm+B,GAAM,MAEnF7qB,EAAQqsB,KAAKgT,KAAU4U,eAoBjBhoD,EAAK+zC,aAAavG,kBAAOxtC,EAAK+zC,YAAa/zC,EAAKioD,cAExD,EAEA,OACEn8D,eAAC86D,GAAmB,CAAA36D,SAClBH,eAAC8M,KAAQ,CAACE,SAAU,IAAMovD,MAAM,EAAMC,UAAU,EAAOpvD,YAAgB,OAAJkF,QAAI,IAAJA,OAAI,EAAJA,EAAMtF,QAAS,EAAE1M,SAChF0S,EA0BA/N,gBAACgI,KAASa,KAAI,CAAAxN,SAAA,CACZH,eAAA,OAAKgB,UAAU,gBAAgBiN,IAAK,KACpCjO,eAACoV,IAAM,CAACiiB,SAAO,OA3Bb,OAAJllB,QAAI,IAAJA,OAAI,EAAJA,EAAMhO,KAAI,SAAC+P,EAAMwB,GAAK,OACpB5Q,gBAACgI,KAASa,KAAI,CAAAxN,SAAA,CACZH,eAAC4N,iBAAa,CACZunB,YAAan1B,eAAA,UACbiF,QAAS,SAACyE,GAAC,OAAKkyD,EAAalyD,EAAGwK,EAAK,EACrClT,UAAS,uBAAAsF,OAAyB4N,EAAKi+C,aAAeA,KAAW0J,gBAAkB,aACnFhuD,IAAKqG,EAAKnG,WAEZ/N,eAAC8M,KAASwvD,QAAO,CACf3hD,MACEzG,EAAKi+C,aAAeA,KAAW0J,eAAiB,CAAEU,UAAW,QAASC,cAAe,KAAQ,KAC9Fr8D,SAEA+T,EAAKi+C,aAAeA,KAAW0J,gBAC9B/2D,gBAACi2D,GAAe,CAACpgD,MAAO,CAAE8hD,WAAY,SAAUt8D,SAAA,CAC9CH,eAAA,QAAAG,SAAO+T,EAAKi+C,aAAeA,KAAW2J,YAAc5nD,EAAK6nD,UAAY7nD,EAAK3H,cAC1EvM,eAACg7D,GAAY,CAAC/1D,QAAS,SAACyE,GAAC,OAAKkyD,EAAalyD,EAAGwK,EAAK,EAAC/T,SACjD+T,EAAKi+C,aAAeA,KAAW2J,YAAc,aAAe,sBAhBnDpmD,EAqBJ,OAW5B,E,kDC1FagnD,GAA2Bp7D,IAAOu6C,EAACr6C,MAAAC,YAAA,yTAKrC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOgpB,SAAS,IAgBnC+xC,GAAoBr7D,YAAO0G,MAAKxB,OAAM,SAAA1E,GAAA,IAAGd,EAASc,EAATd,UAAS,MAAQ,CACrEA,UAAW,SAAAsF,OAAkB,OAATtF,QAAS,IAATA,IAAa,IAAKs2C,OACvC,GAFgCh2C,CAE9Bc,MAAAX,YAAA,wRAmBUm7D,GAAgBt7D,YAAOa,KAAPb,CAAeuF,MAAApF,YAAA,oUAqB/Bo7D,GAAav7D,IAAOC,IAAGsO,MAAApO,YAAA,kQAcvB,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAOC,OAAO,I,kECvEnCi7D,GAAc,SAAHx8D,GAAkF,IAA5E2qD,EAAQ3qD,EAAR2qD,SAAU8R,EAASz8D,EAATy8D,UAAWC,EAAI18D,EAAJ08D,KAAMC,EAAU38D,EAAV28D,WAAYC,EAAK58D,EAAL48D,MAAUx8D,EAAK4rB,YAAAhsB,EAAAisB,IAClFtpB,EAAoCC,qBAAwBC,EAAAC,YAAAH,EAAA,GAArD0wC,EAAUxwC,EAAA,GAAEg6D,EAAah6D,EAAA,GAChCG,EAAsCJ,oBAAS,GAAMM,EAAAJ,YAAAE,EAAA,GAA9C85D,EAAW55D,EAAA,GAAE65D,EAAc75D,EAAA,GAMlC,OAJAa,qBAAU,WACR84D,EAAcz8D,EAAM48D,WACtB,GAAG,CAAC58D,EAAM48D,aAGRt9D,eAAC28D,GAAiB,CAAAx8D,SAChB2E,gBAACmD,KAAG,CAAA9H,SAAA,CACFH,eAACgI,KAAG,CACFhH,UAAU,qCACVu8D,aAAc,kBAAMF,GAAe,EAAK,EACxCG,aAAc,kBAAMH,GAAe,EAAM,EAACl9D,SAE1CH,eAACm3B,KAAc,CAEbzxB,UAAU,SACV9B,KAAMw5D,IAAyB,OAAVzpB,QAAU,IAAVA,OAAU,EAAVA,EAAY9mC,QAAS,EAC1CwqB,QACEr3B,eAAC48D,GAAa,CAACh3D,GAAG,gBAAezF,SAC/B2E,gBAAC3C,KAAQ0D,QAAO,CAAC03D,aAAc,kBAAMF,GAAe,EAAK,EAAEG,aAAc,kBAAMH,GAAe,EAAM,EAACl9D,SAAA,CACnG2E,gBAAA,OAAK9D,UAAU,qBAAoBb,SAAA,CACjCH,eAAA,QAAAG,SAAO68D,IACPh9D,eAAA,QAAMgB,UAAU,aAAYb,SAC1BH,eAAA,UAAAG,SAAS48D,SAGb/8D,eAAC68D,GAAU,CAAA18D,SACE,OAAVwzC,QAAU,IAAVA,OAAU,EAAVA,EAAYxvC,KAAI,SAACs5D,EAAW/nD,GAAK,OAChC5Q,gBAAA,OAAA3E,SAAA,CACGs9D,EAAUC,KAAK,OAChB19D,eAAA,QAAAG,SACEH,eAACgF,KAAM,CACL9E,QAAQ,OACR4oB,GAAI,IACJvR,KAAM,KACNtS,QAAc,OAALvE,QAAK,IAALA,OAAK,EAALA,EAAOi9D,2BAA2BC,KAAK,KAAMH,EAAUC,KAAMX,GAAW58D,SAEjFH,eAAA,UAAAG,SAAA,IAAAmG,OAAam3D,EAAUP,MAAK,aATxBxnD,EAYJ,WAKfvV,SAEA8qD,EAAWjrD,eAACqoD,KAAK,CAACx6C,IAAKo9C,IAAejrD,eAACqoD,KAAK,CAACx6C,IAAKgwD,KAAc78D,UAAU,UAAS,WAAAsF,OAjCpEy2D,MAoCpBj4D,gBAAC43D,GAAwB,CAAC17D,UAAS,wBAAAsF,OAA0B2kD,EAAW,GAAK,eAAgB9qD,SAAA,CAC1F48D,EAAU,OACX/8D,eAACgF,KAAM,CAAC9E,QAAQ,OAAO4oB,GAAI,IAAKvR,KAAM,KAAMtS,QAASg4D,EAAW98D,SAAA,IAAAmG,OACzD42D,EAAK,cAMtB,E,SCpEaY,GAAqBx8D,IAAOoF,KAAIlF,MAAAC,YAAA,8CAClC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,I,UCCjCk8D,GAA4Bz8D,IAAOC,IAAIiF,MAAM,CACxDxF,UAAW,kBAD4BM,CAEvCE,MAAAC,YAAA,kNAOqByb,KAAgBhU,IAQvC60D,GAA0BvuD,YAAc,4BAEjC,IAAMwuD,GAAqB18D,IAAOmU,MAAMjP,MAAM,CACnDxF,UAAW,UADqBM,CAEhCc,MAAAX,YAAA,4fAMc,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOsyD,qBAAqB,IAMpD,SAAApyD,GAAQ,OAAAA,EAALH,MAAkBC,OAAOsyD,qBAAqB,IAY5C,SAAA7xD,GAAQ,OAAAA,EAALV,MAAkBC,OAAO6qC,cAAc,IAI5DuxB,GAAmBxuD,YAAc,qBAE1B,IAAMyuD,GAAqB38D,IAAOmU,MAAMjP,OAAM,SAAAlE,GAAA,IAAGtB,EAASsB,EAATtB,UAAS,MAAQ,CACvEA,UAAW,sBAAAsF,OAAsBtF,GAAYs2C,OAC9C,GAFiCh2C,CAE/BuF,MAAApF,YAAA,8BAGHw8D,GAAmBzuD,YAAc,qBAE1B,IAAM0uD,GAAoB58D,IAAOk2C,MAAMhxC,OAC5C,SAAAyX,GAAA,IAAGjd,EAASid,EAATjd,UAAS,MACT,CACCA,UAAW,gBAAAsF,OAAyB,OAATtF,QAAS,IAATA,IAAa,IAAKs2C,OAC7C//B,KAAM,WACP,GAL4BjW,CAMhCuO,MAAApO,YAAA,oiBAKSu8D,IACU,SAAA3/C,GAAQ,OAAAA,EAAL1c,MAAkBC,OAAOC,OAAO,IAGtC,SAAAid,GAAQ,OAAAA,EAALnd,MAAkBC,OAAOC,OAAO,GAM1Co8D,IACK,SAAAl/C,GAAQ,OAAAA,EAALpd,MAAkBC,OAAOC,OAAO,GAMxCm8D,IAEU,SAAAvzC,GAAQ,OAAAA,EAAL9oB,MAAkBC,OAAOsyD,qBAAqB,IAGpD,SAAAxpC,GAAQ,OAAAA,EAAL/oB,MAAkBC,OAAOgpB,SAAS,GAI5CqzC,IACK,SAAAtzC,GAAQ,OAAAA,EAALhpB,MAAkBC,OAAOgpB,SAAS,IAIpDszC,GAAkB1uD,YAAc,oB,uNC3FnB2uD,GAAe,SAAH79D,GAUE,IATzBmV,EAAKnV,EAALmV,MAAK2oD,EAAA99D,EACL+9D,kBAAU,IAAAD,EAAG,CACXE,KAAM,SACNC,MAAO,OACRH,EACDI,EAAQl+D,EAARk+D,SACAC,EAAQn+D,EAARm+D,SACAj1D,EAAOlJ,EAAPkJ,QACG9I,EAAK4rB,YAAAhsB,EAAAisB,IAERtpB,EAAaC,mBAASw7D,mBAAS,QAAxB94D,EAA+BxC,YAAAH,EAAA,GAA7B,GACH07D,EAAct3D,mBAClB,kBAAMg3D,GAAoC,kBAAfA,GAA2BA,EAAWt1B,MAAQs1B,EAAW13B,KAAK,GACzF,CAAC03B,IAEGO,EAAcv3D,mBAClB,kBAAMg3D,GAAoC,kBAAfA,GAA2BA,EAAWC,MAAQD,EAAWE,KAAK,GACzF,CAACF,IASH,OACEv5D,gBAACi5D,GAAyB,CAAA59D,SAAA,CACvBsV,GAASzV,eAAA,QAAAG,SAAOsV,IACM,kBAAf4oD,GAA2BM,GACjC3+D,eAACi+D,GAAkB,CAAC3pC,QAAS1uB,EAAI5E,UAAW,OAAOb,SAChDk+D,EAAWt1B,OAGhB/oC,eAACk+D,GAAiBv9D,YAAA,CAACiF,GAAIA,EAAI5C,SAdV,SAAC0G,GACX,OAALhJ,QAAK,IAALA,KAAOgiB,UAEX+7C,GAAYA,EAAS/0D,EAAEpE,OAAOkE,QAChC,EAUuDA,QAASA,GAAa9I,IACzEV,eAACg+D,GAAkB,CAAC1pC,QAAS1uB,EAAGzF,SAC9BH,eAAA,QAAAG,SAAOq+D,GAAYx+D,eAACmN,KAAe,CAACC,KAAM5D,EAAUq1D,KAAUC,WAE/DT,GACCr+D,eAACi+D,GAAkB,CAAC3pC,QAAS1uB,EAAI5E,UAAW,aAAab,SAChC,kBAAfk+D,EACJM,EACEN,EAAW13B,MACXi4B,EACAp1D,EACE60D,EAAWC,KACXD,EAAWE,MACb,GACFF,MAKd,E,kBC9DaU,GAAsB,SACjCC,EACAC,EACAC,EACAC,GACI,IAADC,EAMC/uB,EALAgvB,EAA8B,OAAhBL,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7oD,QAAO,SAACo1C,GAAK,OAAKA,EAAM+T,aAAeL,CAAU,IACrF,GAAgB,OAAXI,QAAW,IAAXA,KAAaxyD,OA2BlB,OArBIsyD,IACF9uB,EAAQgvB,EAAY56D,MAClB,SAAC8mD,GAAK,IAAAgU,EAAAC,EAAA,OACJjU,EAAMkU,YACwF,QADhFF,EACyE,QADzEC,EACbE,IAAmBj7D,MAAK,SAACw4C,GAAC,OAAKA,EAAE0iB,YAAYhxC,gBAAkBwwC,EAASxwC,aAAa,WAAC,IAAA6wC,OAAA,EAAtFA,EAAwF56D,aAAK,IAAA26D,IAAIJ,EAAS,MAI5G9uB,GAAS6uB,IACZ7uB,EAAQgvB,EAAY56D,MAClB,SAAC8mD,GAAK,IAAAqU,EAAAC,EAAA,OACJtU,EAAMp5B,aACyF,QADhFytC,EACyE,QADzEC,EACdH,IAAmBj7D,MAAK,SAACw4C,GAAC,OAAKA,EAAE0iB,YAAYhxC,gBAAkBuwC,EAAUvwC,aAAa,WAAC,IAAAkxC,OAAA,EAAvFA,EAAyFj7D,aAAK,IAAAg7D,IAAIV,EAAU,KAI9G7uB,IAEHA,EAAQgvB,EAAY56D,MAAK,SAAC8mD,GAAK,OAAKA,EAAMp5B,YAAc2tC,KAAWC,KAAK,KAAKV,EAAY,IAG/E,QAAZD,EAAO/uB,SAAK,IAAA+uB,OAAA,EAALA,EAAOrxD,QAChB,EAEaiyD,GAA6B,SACxCC,EACAC,GAEA,IAAM/pD,EAAS8pD,EAAkBx7D,MAAK,SAAAnE,GAAA,IAAAwB,EAAAsB,YAAA9C,EAAA,GAAE2+D,EAAUn9D,EAAA,GAAGA,EAAA,UAAMm9D,IAAeiB,CAAc,IACxF,OAAK/pD,EAEEgqD,eAAMhqD,EAAO,GAAgChS,KAAI,SAAChD,GAAC,OAAKA,EAAEqyC,MAAM,KAFnD,EAGtB,E,kBCgEM4sB,GAAiB,SAAC54D,EAA8BiV,GAA0D,IAAD4jD,EAC7G,OAAQ5jD,EAAOlF,MACb,IAAK,OACH,IAAM+oD,EAAcC,oBAASrqD,aAAKuG,EAAOqhB,UAEzC,OADAomB,aAAqBoc,EAAa/sB,KAAWgO,aAAc,QACpD+e,EACT,IAAK,SACH,OAAOlsC,iBAAO2gC,gBAAMyL,gBAAMh5D,EAAO,eAAgBg5D,gBAAM/jD,EAAOqhB,QAAS,iBACzE,IAAK,mBACH,IAAM2iC,EAA6B,QAAjBJ,EAAG5jD,EAAOqhB,eAAO,IAAAuiC,IAAI74D,EACvC,OArEoB,SAACotC,GACzB,IAAM8rB,EAAcH,oBAAU3rB,GAU9B,OATAkP,aAAqB4c,GASdA,EAAYv8D,KAAI,SAACgS,GACtB,GAAIA,EAAOm9B,YAAcC,KAAWphB,UAAW,CAAC,IAADwuC,EAAAC,EAAAC,EAAAC,EACvCC,EAKK,QALMJ,EAGd,QAHcC,EACfI,IAA2Bv8D,MACzB,SAACw4C,GAAC,IAAAgkB,EAAAC,EAAA,OAAkB,QAAbD,EAAAhkB,EAAE0iB,mBAAW,IAAAsB,OAAA,EAAbA,EAAe5oB,kBAA0D,QAA7C6oB,EAAKC,IAA4BhvC,UAAU,UAAE,IAAA+uC,OAAA,EAAxCA,EAA0C7oB,cAAa,WAChG,IAAAuoB,GACQ,QADRC,EAFDD,EAGIh8D,aAAK,IAAAi8D,GAAY,QAAZC,EAHTD,EAGWvrB,MAAM,YAAI,IAAAwrB,OADpB,EAFDA,EAIIM,GAAG,UAAE,IAAAT,IAAIQ,IAA4BhvC,UAAU,GAEjDhc,EAAOs9B,eAAehvC,MAAK,SAACyP,GAAI,IAAAmtD,EAAA,OAAe,QAAVA,EAAAntD,EAAKtP,aAAK,IAAAy8D,OAAA,EAAVA,EAAYhpB,kBAA6B,OAAX0oB,QAAW,IAAXA,OAAW,EAAXA,EAAa1oB,cAAa,KAC/FliC,EAAOs9B,eAAetvC,KAAI,SAAC+P,GAAU,IAADotD,GACpB,QAAVA,EAAAptD,EAAKtP,aAAK,IAAA08D,OAAA,EAAVA,EAAYjpB,kBAA6B,OAAX0oB,QAAW,IAAXA,OAAW,EAAXA,EAAa1oB,iBAC7CnkC,EAAKw/B,UAAW,EAEpB,GACJ,CAEA,GAAIv9B,EAAOm9B,YAAcC,KAAWpiB,KAAM,CAAC,IAADowC,EAAAC,EAClCT,EACgG,QADrFQ,EAC8E,QAD9EC,EACfR,IAA2Bv8D,MAAK,SAACw4C,GAAC,OAAKA,EAAE0iB,cAAgBwB,IAA4BhwC,KAAK,EAAE,WAAC,IAAAqwC,OAAA,EAA7FA,EAA+F58D,aAAK,IAAA28D,IACpGJ,IAA4BhwC,KAAK,GAE/Bhb,EAAOs9B,eAAehvC,MAAK,SAACyP,GAAI,OAAKA,EAAKtP,QAAUm8D,CAAW,MACjE5qD,EAAOs9B,eAAehvC,MAAK,SAACyP,GAAI,OAAKA,EAAKtP,QAAUm8D,CAAW,IAAGrtB,UAAW,EACjF,CAEA,OAAOv9B,CACT,GACF,CA8BasrD,CAAiBvrD,aAAKuqD,IAC/B,IAAK,YAEH,OADA3c,aAAqBt8C,GACdA,EACT,QACE,OAAOA,EAEb,EAMak6D,GAAqB,SAAHr/D,GAAqD,IAADs/D,EAA7BC,EAAcv/D,EAA/Bo5D,gBACnCoG,EAAqDv0B,aAAU,CAAEL,eAAe,IAAjE60B,EAAWD,EAAlBr6D,MAA4Bu6D,EAAYF,EAApBplD,OAC5BxZ,EAA4CC,oBAAS,kBAAMi+D,GAA2B,IAACh+D,EAAAC,YAAAH,EAAA,GAAhF++D,EAAc7+D,EAAA,GAAE8+D,EAAiB9+D,EAAA,GACxCqqC,EAAmCC,qBAAW2yB,GAAgB,MAAK1yB,EAAAtqC,YAAAoqC,EAAA,GAA5DoH,EAAOlH,EAAA,GAAEw0B,EAAex0B,EAAA,GAC/BpqC,EAA8CJ,mBAAS,IAAGM,EAAAJ,YAAAE,EAAA,GAAnD6+D,EAAe3+D,EAAA,GAAE4+D,EAAkB5+D,EAAA,GAC1CE,EAAoDR,oBAAS,GAAKS,EAAAP,YAAAM,EAAA,GAA3D2+D,EAAkB1+D,EAAA,GAAE2+D,EAAqB3+D,EAAA,GAChDwd,EAAgDje,mBAAiB,MAAKke,EAAAhe,YAAA+d,EAAA,GAA/DohD,EAAgBnhD,EAAA,GAAEohD,EAAmBphD,EAAA,GACtC6G,EAAU0zC,cAE6DzpD,EAArCH,cAAS,kBAAM0wD,cAAqB,IAApEtwD,KAAM6sD,OAAgB,IAAA9sD,EAAG,GAAEA,EAEnCwwD,EAA8DzH,IAAmB,SAACzzD,GAAK,OAAKA,CAAK,GAAEC,MAAlFk7D,EAAWD,EAApB9tB,QAAqCriC,EAAYmwD,EAA3BxH,cAE9B0H,EAAuD7wD,cAAS,kBAC9D87C,aAAwBltD,YAAC,CAAC,EAAI26D,KAAiC,IADhDuH,EAAcD,EAAvB/vD,QAA+BiwD,EAAWF,EAAjBzwD,KAIzB86B,EAAkB60B,EAAlB70B,cACAc,EAAcg0B,EAAdh0B,UACRg1B,EAA8Cx6C,eAAtCD,EAAey6C,EAAfz6C,gBAAiB8+B,EAAgB2b,EAAhB3b,iBAEzB/iD,qBAAU,WACHw+D,GACHzb,EAAiB/X,KAAiBO,mBAEtC,GAAG,CAACizB,EAAgBzb,IAGpB/iD,qBAAU,WACR,IAAIu9D,GAAmBe,EAAvB,CAEA,IAAM7kC,EAAO5nB,aAAOysD,GAEhBrf,aAAoBxlB,EAASyV,KAAWgO,cAC1C2gB,EAAgB,CAAE3qD,KAAM,OAAQumB,QAASA,KAEzCokC,EAAgB,CAAE3qD,KAAM,mBAAoBumB,QAASA,IACrDwkC,GAAsB,GARkB,CAU5C,GAAG,CAACV,EAAgBe,IAGpBt+D,qBAAU,YACJw+D,GAAmBC,GAEvBb,GAAkB,SAACnvB,GAAE,OAAAnyC,YAAA,GAtFc,SAACi0C,EAAmCkuB,GAezE,OAdAh9D,OAAOk9D,QAAQpuB,GAASX,SAAQ,SAAA3zC,GAAoB,IAADwB,EAAAsB,YAAA9C,EAAA,GAAjBsV,EAAG9T,EAAA,GAAEsyB,EAAMtyB,EAAA,GAC3C8yC,EAAQh/B,GAAIM,aACPke,EAAOje,QAAO,SAAC8sD,GAAO,IAADC,EAAAC,EAKtB,OAH0F,QAAnED,EAA4D,QAA5DC,EAACnC,IAA2Bv8D,MAAK,SAACw4C,GAAC,OAAKA,EAAE0iB,cAAgBsD,CAAC,WAAC,IAAAE,OAAA,EAA3DA,EAA6Dv+D,aAAK,IAAAs+D,IAAID,GAAG3tB,MAAM,KAGjFlb,MAAK,SAAC6oC,GAAC,OAC3BH,EAAY3sD,QAAO,SAAChV,GAAC,OAAKA,EAAEgwB,QAAUvb,IAAQ29B,KAAWpiB,KAAOhwB,EAAEgwB,KAAO,MAAM,IAAEiJ,MAAK,SAACj5B,GAAC,OAAKA,EAAEyU,KAASqtD,CAAC,GAAC,GAE9G,IAEJ,IAEOruB,CACT,CAsEoCwuB,CAA+BtwB,EAAIgwB,GAAY,GACjF,GAAG,CAACD,EAAgBC,IAEpB,IAAMO,EAAmBh8D,mBAAQ,kBAAa,OAAPutC,QAAO,IAAPA,OAAO,EAAPA,EAASnwC,MAAK,SAACyP,GAAI,OAAKA,EAAKo/B,YAAcC,KAAWphB,SAAS,GAAC,GAAE,CAACyiB,IACpG0uB,EAA6Bj8D,mBACjC,kBAAa,OAAPutC,QAAO,IAAPA,OAAO,EAAPA,EAASnwC,MAAK,SAACyP,GAAI,OAAKA,EAAKo/B,YAAcC,KAAWgwB,mBAAmB,GAAC,GAChF,CAAC3uB,IAEG4uB,EAAcn8D,mBAAQ,kBAAa,OAAPutC,QAAO,IAAPA,OAAO,EAAPA,EAASnwC,MAAK,SAACyP,GAAI,OAAKA,EAAKo/B,YAAcC,KAAWpiB,IAAI,GAAC,GAAE,CAACyjB,IAE1FqrB,EAAoB54D,mBAAQ,WAChC,GAAKutC,GAAYkuB,EAAjB,CAEA,IAAIjrB,EAAM3hC,aAAO4sD,GAqCjB,OAnCKT,EA+BHxqB,EAASA,EAAO1hC,QAAO,SAACwtC,GAAC,OAAKA,EAAE8f,cAAc,KA3B9C5rB,EAAS4L,aAAmC5L,EAAQjD,EAASrB,KAAWphB,WAAW,SAACwxB,GAAC,OAAKA,EAAExxB,SAAS,IAGrG0lB,EAAS4L,aACP5L,EACAjD,EACArB,KAAWgwB,qBACX,SAAC5f,GAAC,OAAKA,EAAE4f,mBAAmB,IAI9B1rB,EAAS4L,aAAmC5L,EAAQjD,EAASrB,KAAWpiB,MAAM,SAACwyB,GAAC,OAAKA,EAAExyB,IAAI,IAGnE,KAApBgxC,IAEAtqB,EADEgL,aAA4BjO,EAASrB,KAAWksB,UACzChc,aAAmC5L,EAAQjD,EAASrB,KAAWksB,UAAU,SAAC9b,GAAC,OAAKA,EAAE8b,QAAQ,IAI1F,KAWR35D,OAAOk9D,QAAQU,gBAAM7rB,GAAQ8rB,QAAQ,cAAcz/D,QAAQ,cAAc4X,QAvC5C,CAwCtC,GAAG,CAACgnD,EAAaX,EAAiBvtB,EAASytB,IAErCuB,EAA+B,SAAC1E,GAAuB,IAAD2E,EAAAC,EAE1D1B,EAAmB,IAEnBE,GAAsB,GACtBxe,aAAqBlP,GAErB,IAAMmvB,EAAoF,QAAtEF,EAAG7C,IAA2Bv8D,MAAK,SAACw4C,GAAC,OAAKA,EAAE0iB,cAAgBT,CAAS,WAAC,IAAA2E,GAAO,QAAPC,EAAnED,EAAqEj/D,aAAK,IAAAk/D,OAAP,EAAnEA,EAA4ExuB,MAAM,KAEvGyuB,GACAA,EAAe3pC,MAAK,SAACte,GAAK,IAAAinC,EAAAC,EAAA,OACiC,QADjCD,EACxBnO,EAAQnwC,MAAK,SAACu/D,GAAC,OAAKA,EAAE1wB,YAAcC,KAAWphB,SAAS,WAAC,IAAA4wB,GAAgB,QAAhBC,EAAzDD,EAA2DtP,sBAAc,IAAAuP,OAAhB,EAAzDA,EAA2E5oB,MAAK,SAAC6oB,GAAG,OAAKA,EAAIr+C,QAAUkX,CAAK,GAAC,IAG/GooC,KAAoBjrC,WAAC,EAAD,CAAC27B,EAASrB,KAAWphB,WAAS7rB,OAAA4P,aAAK6tD,KAEvD7f,aAAqBtP,EAASrB,KAAWphB,UAAW+sC,GAGtDsD,EAAoBtD,GACpBhb,aAAqBtP,EAASrB,KAAWpiB,KAAM,OAE/C+wC,EAAgB,CAAE3qD,KAAM,SAAUumB,QAAS8W,IAC3CtsB,EAAgB,iCAADhiB,OAAkC44D,GACnD,EAEM+E,EAAyC,SAACC,GAE9C9B,EAAmB,IAEnBE,GAAsB,GACtBxe,aAAqBlP,GACrBsP,aAAqBtP,EAASrB,KAAWgwB,oBAAqBW,GAC9D1B,EAAoB0B,GACpBhgB,aAAqBtP,EAASrB,KAAWpiB,KAAM,OAE/C+wC,EAAgB,CAAE3qD,KAAM,SAAUumB,QAAS8W,IAC3CtsB,EAAgB,iCAADhiB,OAAkC49D,GACnD,EAEMC,EAA8B,SAAChF,GAAsB,IAADiF,EAAAC,EAExD/B,GAAsB,GACtBxe,aAAqBlP,GACrB4tB,EAAoB,MACpBte,aAAqBtP,EAASrB,KAAWpiB,KAAM,OAG/C,IAAMmzC,EAAsF,QAArEF,EAAGpD,IAA2Bv8D,MAAK,SAACw4C,GAAC,OAAKA,EAAE0iB,cAAgBR,CAAQ,WAAC,IAAAiF,GAAO,QAAPC,EAAlED,EAAoEx/D,aAAK,IAAAy/D,OAAP,EAAlEA,EAA2E/uB,MAAM,KAIzGgvB,GACAA,EAAkBlqC,MAAK,SAACte,GAAK,IAAAsnC,EAAAC,EAAA,OAC6B,QAD7BD,EAC3BxO,EAAQnwC,MAAK,SAACu/D,GAAC,OAAKA,EAAE1wB,YAAcC,KAAWksB,QAAQ,WAAC,IAAArc,GAAgB,QAAhBC,EAAxDD,EAA0D3P,sBAAc,IAAA4P,OAAhB,EAAxDA,EAA0EjpB,MAAK,SAAC6oB,GAAG,OAAKA,EAAIr+C,QAAUkX,CAAK,GAAC,IAG9GooC,KAAoBjrC,WAAC,EAAD,CAAC27B,EAASrB,KAAWksB,UAAQn5D,OAAA4P,aAAKouD,KAEtDpgB,aAAqBtP,EAASrB,KAAWksB,SAAUN,GAGrD+C,EAAgB,CAAE3qD,KAAM,SAAUumB,QAAS8W,IAG3CwtB,EAAmBjD,GACnB72C,EAAgB,iCAADhiB,OAAkC64D,GACnD,EAEMoF,GAA0B,SAACvH,GAC/BsF,GAAsB,GAEtBF,EAAmB,IACnBI,EAAoB,MAEpB1e,aAAqBlP,GACrBsP,aAAqBtP,EAASrB,KAAWpiB,KAAM6rC,GAE/CkF,EAAgB,CAAE3qD,KAAM,SAAUumB,QAAS8W,IAC3CtsB,EAAgB,4BAADhiB,OAA6B+7D,EAAqB,MAAQ,MAAK,MAAA/7D,OAAK02D,GACrF,EAyBMwH,GAAiB,SAAC1xB,GACtBx2B,eACA9I,eAAeK,QAAQH,IAAkBuoD,eAAgBnpB,EAAKp+B,KAAKC,UAAUm+B,GAAM,MACnF,IAAMtC,EAAe,4BAAAlqC,OAA+B+7D,EAAqB,MAAQ,OAAK/7D,OAAGusC,aAAsBC,IAC/GxqB,EAAgBkoB,GAEZ8iB,aAAcmR,gBAAiBx8C,EAAQqsB,KAAKmwB,eAAgB3xB,GAC3D1+B,OAAO4H,SAAS4M,KAAO67C,cAC9B,EAMMC,GAA2B,SAAC3H,GAChCjZ,aAAqBlP,EAASrB,KAAWC,QACzC0Q,KAAoBjrC,WAAC,EAAD,CAAC27B,EAASrB,KAAWC,QAAMltC,OAAA4P,aAAK8pD,GAA2BC,EAAmBlD,MAElGyH,GAAe5vB,EACjB,EAEM+vB,GAAkC,SAACC,EAAmB7H,GAC1DjZ,aAAqBlP,EAASrB,KAAWC,OAAQD,KAAWtiB,MAC5DizB,KAAoBjrC,WAAC,EAAD,CAAC27B,EAASrB,KAAWC,QAAMltC,OAAA4P,aAAK8pD,GAA2BC,EAAmBlD,MAClG7Y,aAAqBtP,EAASrB,KAAWtiB,KAAM2zC,GAE/CJ,GAAe5vB,EACjB,EAEA,OACE9vC,gBAACwsD,KAAiB,CAAAnxD,SAAA,CAChBH,eAACysB,KAAiB,CAChB1X,aAAa,sBACb9P,QAAS,WACP8oC,GAAWd,GACX3kB,EAAgB,gDAADhiB,OAAiD2mC,EAAgB,WAAa,UAC/F,EACAvgB,SAAUugB,EACVtgB,aACGk2C,IACAjB,GACuB,KAAb,OAAXkB,QAAW,IAAXA,OAAW,EAAXA,EAAaj2D,SACX/H,gBAAAD,YAAA,CAAA1E,SAAA,CACEH,eAACgxD,KAAoC,CAAChwD,UAAU,SAAQb,SACtDH,eAACm+D,GAAY,CACX1oD,MAAM,iBACN+oD,UAAQ,EACRH,WAAY,CACVt1B,KAAM,MACNpC,MAAO,OAETn9B,QAAS64D,EACT5D,SA3EkB,SAACoG,GAM7BA,GAEFzC,EAAmB,IACnBI,EAAoB,MAEpB1e,aAAqBlP,GACrBsP,aAAqBtP,EAASrB,KAAWgO,aAAc,QAEvD2gB,EAAgB,CAAE3qD,KAAM,SAAUumB,QAAS8W,KAE3CstB,EAAgB,CAAE3qD,KAAM,qBAG1B+qD,EAAsBuC,GACtBv8C,EAAgB,4BAADhiB,OAA6Bu+D,EAAY,MAAQ,OAClE,MAyDY//D,gBAACksD,KAAoC,CAAChwD,UAAU,SAAQb,SAAA,CACrD6hE,EAAe7vC,UAAUhuB,KAAI,SAAC+6D,EAAWxxD,GAAG,IAAAo3D,EAAAC,EAAA,OAC3C/kE,eAACixD,KAA2B,CAE1BhsD,QAAS2+D,EAA6BhG,KAAK,KAAMsB,GACjD1pD,OACkB,OAAhB6tD,QAAgB,IAAhBA,GAAgC,QAAhByB,EAAhBzB,EAAkB5vB,sBAAc,IAAAqxB,GAI/B,QAJ+BC,EAAhCD,EAAkCrgE,MAAK,SAACugE,GAAE,IAAAC,EAAAC,EAAA,OAGvC,QAHuCD,EACxCjE,IAA2Bv8D,MACzB,SAACw4C,GAAC,IAAAkoB,EAAA,OAAkB,QAAbA,EAAAloB,EAAE0iB,mBAAW,IAAAwF,OAAA,EAAbA,EAAe9sB,kBAA2B,OAAT6mB,QAAS,IAATA,OAAS,EAATA,EAAW7mB,cAAa,WACjE,IAAA4sB,GAAO,QAAPC,EAFDD,EAEGrgE,aAAK,IAAAsgE,OAAP,EAFDA,EAEUp2C,SAASk2C,EAAGpgE,MAAM,WAC7B,IAAAmgE,OAJe,EAAhBA,EAIGrxB,SACJvzC,SAEDH,eAAA,QAAAG,SAAO++D,KAVFxxD,EAWuB,IAE/Bs0D,EAAeuB,oBAAoBp/D,KAAI,SAAC+6D,EAAWxxD,GAAS,IAAD03D,EAAAC,EAAAC,EAAAC,EAAAC,EAEpDC,EACsE,QADzDL,EACkD,QADlDC,EACjBrE,IAA2Bv8D,MAAK,SAACw4C,GAAC,OAAKA,EAAE0iB,cAAgBT,CAAS,WAAC,IAAAmG,OAAA,EAAnEA,EAAqEzgE,aAAK,IAAAwgE,IAAIlG,EAGhF,OAC4B,OAA1BoE,QAA0B,IAA1BA,GAA0C,QAAhBgC,EAA1BhC,EAA4B7vB,sBAAc,IAAA6xB,OAAhB,EAA1BA,EAA4ClrC,MAAK,SAAC4qC,GAAE,OAAKA,EAAGpgE,QAAU6gE,CAAa,MACjFzlE,eAACixD,KAA2B,CAE1BhsD,QAASg/D,EAAuCrG,KAAK,KAAM6H,GAC3DjwD,OAC4B,OAA1B8tD,QAA0B,IAA1BA,GAA0C,QAAhBiC,EAA1BjC,EAA4B7vB,sBAAc,IAAA8xB,GAA0C,QAA1CC,EAA1CD,EAA4C9gE,MAAK,SAACugE,GAAE,OAAKA,EAAGpgE,QAAU6gE,CAAa,WAAC,IAAAD,OAA1D,EAA1BA,EAAsF9xB,SACvFvzC,SAEDH,eAAA,QAAAG,SAAO++D,KANFxxD,EAUb,OAEF5I,gBAACksD,KAAoC,CAAChwD,UAAU,SAAQb,SAAA,CACrD6hE,EAAevC,SAASt7D,KAAI,SAACoT,EAAM7B,GAAK,OACvC1V,eAACixD,KAA2B,CAE1BhsD,QAASk/D,EAA4BvG,KAAK,KAAMrmD,GAChD/B,OAAQ2sD,IAAoB5qD,EAAKpX,SAEjCH,eAAA,QAAAG,SAAOoX,KAJF7B,EAKuB,IAEiB,QAD/CisD,EACDK,EAAe7wC,KAAKhb,QAAO,SAAC28B,GAAE,MAAY,QAAPA,CAAY,WAAC,IAAA6uB,OAAA,EAAhDA,EAAkDx9D,KAAI,SAACoT,EAAM7B,GAAK,IAAAgwD,EAAAC,EAAA,OACjE3lE,eAACixD,KAA2B,CAE1BhsD,QAASs/D,GAAwB3G,KAAK,KAAMrmD,GAC5C/B,OAAmB,OAAXguD,QAAW,IAAXA,GAA2B,QAAhBkC,EAAXlC,EAAa/vB,sBAAc,IAAAiyB,GAAiC,QAAjCC,EAA3BD,EAA6BjhE,MAAK,SAACugE,GAAE,OAAKA,EAAGpgE,QAAU2S,CAAI,WAAC,IAAAouD,OAAjD,EAAXA,EAA8DjyB,SAASvzC,SAE/EH,eAAA,QAAAG,SAAOoX,KAJF7B,EAKuB,UAMxCP,eACIysD,GAAkBiB,IAClB7iE,eAACgxD,KAAoC,CAAChwD,UAAU,SAAQb,SACtD2E,gBAACmsD,KAA2B,CAAChsD,QA5GX,WAC5Bu/D,GAAe,KACjB,EA0GwErkE,SAAA,CAAC,wBACpC2E,gBAACg5D,GAAkB,CAAA39D,SAAA,CAAC,IAAc,OAAZoS,QAAY,IAAZA,IAAgB,EAAE,cAMzEvS,eAACosB,KAAQ,CAACw5C,GAAI34B,EAAc9sC,SAC1B2E,gBAACosD,KAAqB,CAAA/wD,SAAA,EAClB0iE,GAAkBjB,IAAmB5hE,eAACoV,IAAM,CAACiiB,SAAO,KACpDwrC,IAAmBjB,GAAkBxmB,kBAAQ6kB,IAC7CjgE,eAACgI,KAAG,CAAA7H,SACF2E,gBAACmD,KAAG,CAACjH,UAAU,mFAAkFb,SAAA,CAC/FH,eAACmN,KAAe,CAACC,KAAMy4D,KAAO7kE,UAAU,UACxChB,eAAA,OAAAG,SAAMkiE,EAAqByD,IAA2BC,YAK1DlD,IAAmBjB,IAAmBxmB,kBAAQ6kB,IAC9CjgE,eAACoxD,KAAkB,CAAAjxD,SACC,OAAjB8/D,QAAiB,IAAjBA,OAAiB,EAAjBA,EACG9pD,QAAO,SAAA7T,GAAA,IAAA2b,EAAA7a,YAAAd,EAAA,GAAE0jE,EAAE/nD,EAAA,GAAGA,EAAA,SAAa,cAAP+nD,CAAkB,IACvC7hE,KAAI,SAAAka,GAAA,IAAAS,EAAA1b,YAAAib,EAAA,GAAE4gD,EAAUngD,EAAA,GAAEmnD,EAAWnnD,EAAA,UAC5B9e,eAAC88D,GAAW,CAEV7R,SAAU8T,GAAoBC,EAAkBC,EAAYsD,EAAkBJ,GAC9EpF,UAAWkC,EACXjC,KAAMiJ,EAAY,GAAG90C,KACrBmsC,WAAYx3D,OAAOk9D,QACjBU,gBAAMuC,GAAatC,QAAQ,aAAauC,QAAQ,aAAapqD,SAC7D3X,KAAI,SAAA4a,GAAA,IAAA0L,EAAArnB,YAAA2b,EAAA,GAAa,MAAO,CAAE2+C,KAAhBjzC,EAAA,GAAsByyC,MAAfzyC,EAAA,GAA6B,IAChDyyC,MAAkB,OAAX+I,QAAW,IAAXA,OAAW,EAAXA,EAAap5D,OACpBowD,WAAYyH,GAAyB9G,KAAK,KAAMqB,GAChDtB,2BAA4BgH,IAAgC,GAAAr+D,OATpD24D,EAAU,KAAA34D,OAAI2/D,GAUtB,aAQpB,ECnfaE,GAAsB7kE,IAAOC,IAAGC,QAAAC,YAAA,qQAClC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO2e,eAAe,IAOzC,SAAAze,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,I,4GCwBnCukE,GAAc,SAAH9lE,GACZA,EAAVs5C,WAK2C,IAJ3C9wC,EAAOxI,EAAPwI,QAEA3I,GADWG,EAAXqoB,YACQroB,EAARH,UACAkmE,EAAa/lE,EAAb+lE,cAMMC,EAAY1kB,aAAU94C,EAAQS,YAEpC,OACEvJ,eAAC+kC,KAAI,CAACC,GAAIshC,EAAWrhE,QAPH,WAClBsrC,aAAe,4BAADjqC,OAA6B+/D,EAAa,sBAAsB,CAAE51B,aAAa,GAC/F,EAK4CtwC,SACvCA,GAGP,EAEaomE,GAAiB,SAAHzkE,GAAgD,IAADm6C,EAAAC,EAAAsqB,EAAzC/9D,EAAW3G,EAAX2G,YAAa49D,EAAavkE,EAAbukE,cACpChoC,EAAmBnF,eAAnBmF,eAESt3B,EAA6B0B,EAAtCK,QAAsB6f,EAAgBlgB,EAAhBkgB,YACbuZ,EAAYlZ,aAAwB,OAAXL,QAAW,IAAXA,OAAW,EAAXA,EAAawZ,SAA/C5Y,QAEFhC,EAA8B,QAAzB00B,EAAGl1C,EAAYo1C,kBAAU,IAAAF,OAAA,EAAtBA,EAAwBx3C,MAAK,SAACyP,GAAI,MAAmB,mBAAdA,EAAKsoC,MAAyC,IAAZtoC,EAAKvH,EAAQ,IAC9F85D,EAAgC,QAAzBvqB,EAAGn1C,EAAYo1C,kBAAU,IAAAD,OAAA,EAAtBA,EAAwBz3C,MAAK,SAACyP,GAAI,MAAmB,aAAdA,EAAKsoC,MAAmC,IAAZtoC,EAAKvH,EAAQ,IAShG,OAPAtI,qBAAU,WAAO,IAADqiE,EACE,IAAZxkC,GAAwC,QAA3BwkC,EAAIj+D,EAAYkgB,mBAAW,IAAA+9C,GAAvBA,EAAyB9/B,iBAC5CvI,EAAe51B,EAGnB,GAAG,CAACy5B,EAAgC,QAAzBskC,EAAE/9D,EAAYkgB,mBAAW,IAAA69C,OAAA,EAAvBA,EAAyB5/B,kBAGpC5mC,eAACisC,KAAwB,CAAA9rC,SACvB2E,gBAAC0wC,KAAoB,CAAAr1C,SAAA,CACnBH,eAACiI,KAAG,CAACiB,GAAI,EAAE/I,SACTH,eAACy1C,KAAkB,CAAAt1C,SACjBH,eAAComE,GAAW,CACVxsB,WAAW,QACXysB,cAAeA,EACf19C,YAAaA,EACb7f,QAAS/B,EAAY5G,SAErBH,eAAA,OAAK6N,IAAK9G,EAAYgH,SAAUE,IAAI,WAI1CnJ,gBAACmD,KAAG,CAACiB,GAAI,EAAGiI,GAAI,GAAGhR,SAAA,CACjBH,eAAC01C,KAAkB,CAAAv1C,SACjBH,eAAComE,GAAW,CACVxsB,WAAW,QACXysB,cAAeA,EACf19C,YAAaA,EACb7f,QAAS/B,EAAY5G,SAEpB4G,EAAYqB,UAGjBpI,eAACmrC,KAAiB,CAAAhrC,SAAO,OAALonB,QAAK,IAALA,OAAK,EAALA,EAAOhb,cAC3BzH,gBAACqmC,KAAiB,CAAAhrC,SAAA,CAAS,OAAPsmE,QAAO,IAAPA,OAAO,EAAPA,EAASl6D,YAAY,eAE3CvM,eAACiI,KAAG,CAACiB,GAAI,EAAGiI,GAAI,GAAGhR,SACjB2E,gBAAC6F,KAA8B,CAAAxK,SAAA,CAC7B2E,gBAAA,OAAA3E,SAAA,CACEH,eAACmP,KAAmB,IACpBnP,eAAC8O,KAAW,OAEdhK,gBAAA,OAAK9D,UAAU,yBAAwBb,SAAA,CACrCH,eAACiP,KAAqB,IACtBjP,eAACgP,KAAY,gBAO3B,EAEeu3D,M,SC7FF13B,GAAc,SAAHvuC,GAAyC,IAAnCosB,EAAQpsB,EAARosB,SAAUqhB,EAASztC,EAATytC,UACtCj8B,EACEC,cAAS,kBAAM40D,aAAe,IAAI30D,KAAsBC,KAAyB,IAACC,EAAAJ,EAD5EK,KAAIC,OAAA,IAAAF,EAAiD,CAAC,EAACA,EAAxC00D,EAAQx0D,EAAfC,MAA+Bw0D,EAASz0D,EAAvBG,aAAoEu0D,EAAUh1D,EAAnBe,QAEpFu0C,EAAqB7+B,eAArB6+B,iBACU2f,EAAgB/zD,aAAY4zD,GAAtC7zD,SAER1O,qBAAU,WACHyiE,GACH1f,EAAiB/X,KAAiBS,qBAAsB82B,EAE5D,GAAG,CAACE,EAAY1f,EAAkBwf,IAElC,IAAMI,EAAgBC,eAEtB,OAAIH,EACK9mE,eAACoV,IAAM,IAIdtQ,gBAAAD,YAAA,CAAA1E,SAAA,CACE2E,gBAACqhE,GAAmB,CAAClhE,QAAS8oC,EAAU5tC,SAAA,CACrCusB,EAAW1sB,eAACitB,KAAa,IAAMjtB,eAACktB,KAAc,IAC/CltB,eAAA,QAAAG,SAAM,wBACN2E,gBAACigC,KAAI,CACH/jC,UAAU,QACVgkC,GAAIgiC,EACJ/hE,QAAS,SAACoxB,GACRka,aAAe,wCAAyC,CAAEE,aAAa,IACvEpa,EAAM6wC,iBACR,EAAE/mE,SAAA,CACH,IACY,OAAT0mE,QAAS,IAATA,IAAa,EAAE,UAGrB7mE,eAACosB,KAAQ,CAACw5C,GAAIl5C,EAASvsB,SACrBH,eAAA,OAAAG,UACc,OAAX4mE,QAAW,IAAXA,OAAW,EAAXA,EAAal6D,QAAS,EACrBk6D,EAAY5iE,KAAI,SAAC+P,GAAI,OACnBlU,eAAC6V,KAAsB,CAACpN,YAAayL,EAAK/T,SACxCH,eAACumE,GAAc,CAACF,cAAc,cAAc59D,YAAayL,GAAWA,EAAKpL,QAAQS,aADnC2K,EAAKpL,QAAQS,WAEpC,IAG3BvJ,eAAC2W,KAAU,CAACC,QAAQ,sCAMhC,E,UC9Cag4B,GAAY,SAAHtuC,GAAyC,IAAnCosB,EAAQpsB,EAARosB,SAAUqhB,EAASztC,EAATytC,UACpCj8B,EAAwGC,cAAS,kBAC/Go1D,aAAqB,IAAIn1D,KAAsBC,KAAyB,IACzEC,EAAAJ,EAFOK,KAAIC,OAAA,IAAAF,EAAiD,CAAC,EAACA,EAAxCg1B,EAAK90B,EAAZC,MAA4BC,EAAYF,EAA1BG,aAA8DM,EAAOf,EAAPe,QAGpFE,EAAaC,aAAYk0B,GAAzBn0B,SACFzL,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,GAAEG,MAC3D2/C,EAAqB7+B,eAArB6+B,iBAER/iD,qBAAU,WACHwO,GACHu0C,EAAiB/X,KAAiBQ,mBAAoB3I,EAE1D,GAAG,CAACr0B,EAASu0C,EAAkBlgB,IAE/B,IAAMkgC,EAAeC,eAErB,OAAIx0D,EACK7S,eAACoV,IAAM,IAIdtQ,gBAAAD,YAAA,CAAA1E,SAAA,CACE2E,gBAACqhE,GAAmB,CAAClhE,QAAS8oC,EAAU5tC,SAAA,CACrCusB,EAAW1sB,eAACitB,KAAa,IAAMjtB,eAACktB,KAAc,IAC/CltB,eAAA,QAAAG,SAAM,iBACN2E,gBAACigC,KAAI,CACH/jC,UAAU,QACVgkC,GAAIoiC,EACJniE,QAAS,SAACoxB,GACRka,aAAe,sCAAuC,CAAEE,aAAa,IACrEpa,EAAM6wC,iBACR,EAAE/mE,SAAA,CACH,IACe,OAAZmS,QAAY,IAAZA,IAAgB,EAAE,UAGxBtS,eAACosB,KAAQ,CAACw5C,GAAIl5C,EAASvsB,SACrBH,eAAA,OAAAG,UACW,OAAR4S,QAAQ,IAARA,OAAQ,EAARA,EAAUlG,QAAS,EAClBkG,EAAS5O,KAAI,SAAC+P,GAAI,OAChBlU,eAAC6V,KAAsB,CAACpN,YAAayL,EAAK/T,SACxCH,eAACumE,GAAc,CAACF,cAAc,YAAY59D,YAAayL,KADTA,EAAKpL,QAAQS,WAEpC,IAG3BvJ,eAAC2W,KAAU,CACTC,QAAStP,EACP,wBACA,4EAQhB,ECzEMggE,IACW,EAGJC,GAAgB,WAC3B,IAAA1F,EAAqDv0B,aAAU,CAC7DL,cAAeq6B,GACfp6B,UAAW,IAAIpE,MAAM,GAAG/nC,KAAKumE,MAFhBxF,EAAWD,EAAlBr6D,MAA4Bu6D,EAAYF,EAApBplD,OAIpBwwB,EAA6B60B,EAA7B70B,cAAeC,EAAc40B,EAAd50B,UACfa,EAAcg0B,EAAdh0B,UACAzlB,EAAoBC,eAApBD,gBAER,OACExjB,gBAACwsD,KAAiB,CAAAnxD,SAAA,CAChBH,eAACysB,KAAiB,CAChB1X,aAAa,iBACb9P,QAAS,WACP8oC,GAAWd,GACX3kB,EAAgB,2CAADhiB,OAA4C2mC,EAAgB,WAAa,UAC1F,EACAvgB,SAAUugB,IAEZjtC,eAACqxD,KAA0B,CAAAlxD,SACzB2E,gBAACkD,KAAG,CAAA7H,SAAA,CACFH,eAACiI,KAAG,CAACkJ,GAAI,EAAGE,GAAI,IAChBrR,eAACiI,KAAG,CAACkJ,GAAI,GAAIE,GAAI,EAAElR,SACjBH,eAAC6uC,GAAW,CAACniB,SAAUwgB,EAAU,GAAIa,UAAW,kBAAMA,GAAWb,EAAU,GAAI,EAAE,MAEnFltC,eAACiI,KAAG,CAACkJ,GAAI,GAAIE,GAAI,EAAElR,SACjBH,eAAC4uC,GAAS,CAACliB,SAAUwgB,EAAU,GAAIa,UAAW,kBAAMA,GAAWb,EAAU,GAAI,EAAE,MAEjFltC,eAACiI,KAAG,CAACkJ,GAAI,EAAGE,GAAI,WAK1B,E,UC1Cam2D,GAA6BlmE,IAAOC,IAAGC,QAAAC,YAAA,qIAC7BQ,KACjB+qB,MAMOy6C,GAAuBnmE,IAAOC,IAAGa,QAAAX,YAAA,qCCVjCimE,GAAuB,SAACC,EAAmBpwB,GACtD/jC,eAAeoB,WAAWlB,IAAkBk0D,mBAG5C,IAAMC,GADNtwB,EAAMA,EAAI37B,QAAQ,oBAAqB,KACflZ,QAAQ,YAC5BmlE,GAAe,IACjBtwB,EAAMA,EAAIuwB,UAAU,EAAGD,IAGzBr0D,eAAeK,QACbH,IAAkBq0D,gBAClBrzD,KAAKC,UAAU,CACb6vB,YAAamjC,EACbpwB,IAAKA,IAGX,ECIMywB,GAAsB,SAAH1nE,GAA8D,IAAxD2nE,EAAY3nE,EAAZ2nE,aAAc9nE,EAAQG,EAARH,SACrC0nB,EAAWtgB,aAAe,SAACC,GAAK,OAAKA,EAAMqgB,QAAQ,GAAEpgB,MAE3D,OAAOzH,eAAA,OAAKgB,UAAU,eAAcb,UAAc,OAAZ8nE,QAAY,IAAZA,OAAY,EAAZA,EAAc7tC,MAAK,SAAC1L,GAAI,OAAK7G,EAAS6G,EAAK,MAAKvuB,GACxF,EAEaouC,GAAY,WACvB,IAAQ4Y,EAAgB5+B,eAAhB4+B,YACAgU,EAAiBF,IAAmB,SAACzzD,GAAK,OAAKA,CAAK,GAAEC,MAAtD0zD,aACAtoD,EAAYd,cAAS,kBAAMopD,GAAc,IAAzCtoD,QACFmJ,EAAWC,cAcjB,OAZAzB,2BAAgB,WACdpG,OAAOZ,eAAeoB,WAAWlB,IAAkBuoD,gBACnD7nD,OAAOZ,eAAeoB,WAAWlB,IAAkBe,mBACnDizD,GAAqB,YAAa1rD,EAAS4lB,SAC7C,GAAG,IAEHv9B,qBAAU,WACHwO,GACHs0C,GAEJ,GAAG,CAACt0C,EAASs0C,IAGXnnD,eAACo6D,KAAM,CAAC/pD,MAAM,YAAWlQ,SACvBH,eAACwnE,GAA0B,CAAArnE,SACzB2E,gBAACkjE,GAAmB,CAACC,aAAc,CAACngD,IAAMogD,wBAAyBpgD,IAAMqgD,2BAA2BhoE,SAAA,CAClGH,eAACK,KAAoB,CAAAF,SACnBH,eAACynE,GAAoB,CAAAtnE,SACnBH,eAACw7D,GAAS,CAACC,gBAAiB5oD,QAGhC7S,eAACK,KAAoB,CAAAF,SACnBH,eAAC0hE,GAAkB,CAACjG,gBAAiB5oD,MAEvC7S,eAACK,KAAoB,CAAAF,SACnBH,eAACunE,GAAa,YAM1B,EC1Daa,GAAY,SAAH9nE,GAA6B,IAAvBsW,EAAOtW,EAAPsW,QAC1B,OACE5W,eAACo6D,KAAM,CAAAj6D,SACLH,eAACC,KAAK,CAACC,QAAQ,SAAQC,SACrBH,eAAA,KAAGgB,UAAU,qBAAoBb,SAAEyW,OAI3C,E,mBCKayxD,GAAc,SAAH/nE,GAAsB,IAAhBH,EAAQG,EAARH,SACtBk3D,EAAOC,eACb,OACExyD,gBAACutD,KAAe,CAAAlyD,SAAA,CACd2E,gBAACsuD,KAAuB,CAACjiD,GAAI,CAAEzK,KAAM,GAAI4hE,MAAO,GAAKj3D,GAAI,CAAE3K,KAAM,EAAG4hE,MAAO,GAAKl3D,GAAI,CAAE1K,KAAM,GAAIvG,SAAA,CAC9FH,eAACgI,KAAG,IACJhI,eAACizD,KAAmB,CAAA9yD,SAAEA,IACtBH,eAACgI,KAAG,CAAA7H,SACFH,eAACuyD,KAAY,CAAApyD,SACX2E,gBAACkD,KAAG,CAAA7H,SAAA,CACFH,eAACgzD,KAAmB,CAAA7yD,SAClBH,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBO,sBAEpEpsD,eAAC+yD,KAAoB,CAAA5yD,SACnBH,eAACqoD,KAAK,CAACx6C,IAAK06D,mBAMtBzjE,gBAACstD,KAAc,CACbpxD,UAAU,4CACVmQ,GAAI,CAAEzK,KAAM,GAAI4hE,MAAO,GACvBj3D,GAAI,CAAE3K,KAAM,EAAG4hE,MAAO,GACtBl3D,GAAI,CAAE1K,KAAM,GAAIvG,SAAA,CAEhBH,eAACqoD,KAAK,CAACx6C,IAAiB,OAAZsc,WAAY,IAAZA,UAAY,EAAZA,KAAcq+C,mBAAoBx8B,OAAK,EAAChrC,UAAU,8BAC9DhB,eAACqoD,KAAK,CAACx6C,IAAK46D,KAAa7T,SAAU5zD,UAAU,kBAAkBgrC,OAAK,IACpEhsC,eAACqoD,KAAK,CAACx6C,IAAK46D,KAAa5T,UAAW7zD,UAAU,mBAAmBgrC,OAAK,SAI9E,EAEa08B,GAAkB,WAC7B,OACE5jE,gBAAC6tD,KAAqB,CAAAxyD,SAAA,CACpBH,eAACwyD,KAAc,CAACxtB,GAAG,SAAQ7kC,SAAEwoE,MAC7B3oE,eAACwyD,KAAc,CAACxtB,GAAG,WAAU7kC,SAC3BH,eAAC66D,KAAgB,CAACj1D,GAAIimD,KAAkBK,0BAE1ClsD,eAACwyD,KAAc,CAACxtB,GAAG,aAAY7kC,SAC7BH,eAAC66D,KAAgB,CAACj1D,GAAIimD,KAAkBM,eAE1CnsD,eAACwyD,KAAc,CAACxtB,GAAG,QAAO7kC,SAAEyoE,QAGlC,E,UChEaC,GAAuBvnE,YAAO2G,KAAP3G,CAAWE,QAAAC,YAAA,gOAIpC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOgpB,SAAS,IAWnCk+C,GAAuBxnE,IAAO+lB,EAACjlB,QAAAX,YAAA,wGAKjC,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAO+E,SAAS,IAGnCoiE,GAAmBznE,IAAOC,IAAGsF,QAAApF,YAAA,4IAW7BunE,IAHkB1nE,YAAO2nE,KAAP3nE,CAAiBuO,QAAApO,YAAA,kCAGbH,IAAOC,IAAGuO,QAAArO,YAAA,6DAIhCynE,GAAc5nE,IAAOC,IAAGyO,QAAAvO,YAAA,kC,4BCtCxB0nE,GAAsB7nE,IAAOC,IAAGC,QAAAC,YAAA,2GAOhC2nE,GAAiB9nE,IAAOC,IAAGa,QAAAX,YAAA,wDAK3B4nE,GAAY/nE,YAAO2G,KAAP3G,CAAWuF,QAAApF,YAAA,+BAIvB6nE,GAAqBhoE,YAAO0D,KAAP1D,CAAcuO,QAAApO,YAAA,sFCEnC8nE,GAAiB,WAC5B,IAAAtmE,EAA4CC,qBAAmCC,EAAAC,YAAAH,EAAA,GAAxEumE,EAAcrmE,EAAA,GAAEsmE,EAAiBtmE,EAAA,GACxCG,EAA0CJ,qBAAkBM,EAAAJ,YAAAE,EAAA,GAArDomE,EAAalmE,EAAA,GAAEmmE,EAAgBnmE,EAAA,GACtCE,EAAkCR,qBAAmBS,EAAAP,YAAAM,EAAA,GAA9CkmE,EAASjmE,EAAA,GAAEkmE,EAAYlmE,EAAA,GAC9Bwd,EAAkCje,qBAAmBke,EAAAhe,YAAA+d,EAAA,GAA9Ckf,EAASjf,EAAA,GAAE0oD,EAAY1oD,EAAA,GAExB2oD,EAAahmE,mBACbimE,EAAwB,eAAA1pE,EAAA6X,aAAAC,eAAAC,MAAG,SAAAC,EAAO8b,GAAM,IAAAyjB,EAAA,OAAAz/B,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGzB,OAFnB+wD,EAAiB,MACjBG,GAAa,GACbD,GAAa,GAAMnxD,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGIpB,aAAkB4c,EAAO61C,OAAO3yD,YAAW,OAA1DugC,EAAMn/B,EAAA6V,KACZk7C,EAAkB5xB,GAAOn/B,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAEzBqb,EAAOm2C,cAAc,SAAUxxD,EAAA6M,GAAM4kD,SAAQ,QAE1B,OAF0BzxD,EAAAC,KAAA,GAE7CmxD,GAAa,GAAMpxD,EAAA+lB,OAAA,6BAAA/lB,EAAAI,OAAA,GAAAR,EAAA,yBAEtB,gBAb6BS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KAcxBkxD,EAAwB,eAAA/nE,EAAA8V,aAAAC,eAAAC,MAAG,SAAAe,EAAOgb,EAAMtyB,GAAA,IAAA+1C,EAAA,OAAAz/B,eAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,OAE1B,OAFuC9W,EAATuoE,UAAoBvoE,EAATwoE,UAC3DX,EAAiB,MACjBG,GAAa,GAAKxwD,EAAAX,KAAA,EAAAW,EAAAV,KAAA,EAEKjB,aACnByc,EAAO61C,OAAO3yD,WACd8c,EAAOxc,OAAON,WACA,OAAdkyD,QAAc,IAAdA,OAAc,EAAdA,EAAgBe,YACjB,OAJK1yB,EAAMv+B,EAAAiV,KAKZo7C,EAAiB9xB,GAAOv+B,EAAAV,KAAA,iBAAAU,EAAAX,KAAA,GAAAW,EAAAiM,GAAAjM,EAAA,SAExBA,EAAAiM,IAASjM,EAAAiM,GAAM4kD,UAAYlqD,IACvB8T,EAAOm2C,cAAc,SAAU5wD,EAAAiM,GAAM4kD,SACrCp2C,EAAOm2C,cAAc,SAAU5wD,EAAAiM,GAAM4kD,SAAQ,QAE9B,OAF8B7wD,EAAAX,KAAA,GAEjDmxD,GAAa,GAAMxwD,EAAAmlB,OAAA,6BAAAnlB,EAAAR,OAAA,GAAAM,EAAA,yBAEtB,gBAjB6BJ,EAAAO,GAAA,OAAAlX,EAAA4W,MAAA,KAAAC,UAAA,KA+BxB6a,EAASy2C,aAAU,CACvB1mC,cAAe,CACbmmC,OAAQ,GACRryD,OAAQ,IAEV6yD,SAjBe,SAACr2C,GAChB,IAAMQ,EAAc,CAAC,EAQrB,OAPKR,EAAO61C,SACVr1C,EAAOq1C,OAAS,2BAEb71C,EAAOxc,QAAU4xD,IACpB50C,EAAOhd,OAAS,uBAGXgd,CACT,EAQEmP,SAAwB,OAAdylC,QAAc,IAAdA,KAAgBe,WAAaH,EAA2BJ,IAEpE,OACEllE,gBAACujE,GAAW,CAAAloE,SAAA,CACVH,eAAC0qE,KAAM,CAAAvqE,SACLH,eAAA,SAAAG,SAAO,sBAET2E,gBAAC+jE,GAAoB,CAAA1oE,SAAA,CACnBH,eAACgI,KAAG,CAAA7H,SACFH,eAAC4yD,KAAU,CAAAzyD,SAAC,4BAEd2E,gBAACkD,KAAG,CAAA7H,SAAA,CACDupE,EACC1pE,eAACgpE,GAAmB,CAAA7oE,SAAE+f,MAEtBpb,gBAACuE,KAAI,CAACtE,IAAKglE,EAAYhmC,SAAUhQ,EAAOkQ,aAAa9jC,SAAA,CACnDH,eAACkpE,GAAW,CAAA/oE,SAAE6f,MACdhgB,eAAC2qE,KAAS,CACRnmE,KAAK,SACL+S,KAAK,OACLkO,MAAOsO,EAAOa,OAAOq1C,OACrBx0D,MAAM,UACNzS,SAAU+wB,EAAOgtB,aACjBjlC,MAAOiY,EAAOK,OAAO61C,OACrBW,YAAa72C,EAAOa,OAAOq1C,OAC3BvnD,WAAU8mD,EACVxoE,UAAU,oBAEVwoE,IAAmBI,GACnB5pE,eAAC8oE,GAAoB,CAAC7jE,QAAS,kBAAM4kE,GAAa,EAAK,EAAC1pE,SAAC,oBAE1DypE,GACC9kE,gBAACy6C,KAAU,CAAAp/C,SAAA,CAAC,6DACgDH,eAAA,SAAM,kBAInEwpE,GACCxpE,eAAC2qE,KAAS,CACRnmE,KAAK,SACL+S,KAAK,OACLkO,MAAOsO,EAAOa,OAAOhd,OACrBnC,MAAO+zD,EAAeqB,SACtB7nE,SAAU+wB,EAAOgtB,aACjBjlC,MAAOiY,EAAOK,OAAOxc,OACrBgzD,YAAa72C,EAAOa,OAAOhd,SAG/B5X,eAACspE,GAAkB,CAAC/xD,KAAK,SAASmL,SAAU2d,EAAUlgC,SAClDqpE,EAA4B7c,IAAXme,SAIxBzqC,GAAargC,eAAC6U,IAAa,IAC5B7U,eAAC+oE,GAAgB,CAAA5oE,SACfH,eAACyyD,KAAe,CAACzxD,UAAU,aAAagkC,GAAI,SAAS7kC,SAAC,oBAIxDH,eAAC0oE,GAAe,YAK1B,E,sCC3HaqC,GAAQ,WACnB,IAAM1T,EAAOC,eACP0T,EAAYjnE,mBAClBd,EAAwCC,qBAAkBC,EAAAC,YAAAH,EAAA,GAAnD+S,EAAY7S,EAAA,GAAE8nE,EAAe9nE,EAAA,GACpCG,EAAoCJ,mBAAiB,GAAEM,EAAAJ,YAAAE,EAAA,GAAhD4nE,EAAU1nE,EAAA,GAAE2nE,EAAa3nE,EAAA,GAChCE,EAA4DR,oBAAS,GAAMS,EAAAP,YAAAM,EAAA,GAApE0nE,EAAsBznE,EAAA,GAAE0nE,EAAyB1nE,EAAA,GAExD6W,2BAAgB,WACd,IAAM8wD,EAAkB,WACtB,IAAK,IAADl0B,EACIm0B,IAAkD,QAApCn0B,EAAC18B,SAASM,eAAe,mBAAW,IAAAo8B,IAAnCA,EAAqCo0B,QAAQ,uBAClEH,EAA0BE,EAC5B,CAAE,MAAAE,GAAO,CACX,EAEA9qC,WAAW2qC,EAAiB,KAC5B3qC,WAAW2qC,EAAiB,KAC5B3qC,WAAW2qC,EAAiB,IAC9B,GAAG,IAEH,IAIMI,EAAY,eAAA5pE,EAAAqW,aAAAC,eAAAC,MAAG,SAAAC,EAAO8b,EAAM9zB,GAAA,IAAAqrE,EAAAC,EAAA,OAAAxzD,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEX,OAFe+yD,EAAarrE,EAAbqrE,cAAajzD,EAAAC,KAAA,EAE/CsyD,EAAgB,IAAGvyD,EAAAE,KAAA,EACA9B,aAAMsd,EAAOrd,SAASO,WAAY8c,EAAOpd,SAASM,YAAW,OAAtE,GACoC,SADpCoB,EAAA6V,KACDs9C,aAAa98C,oBAA8B,CAAArW,EAAAE,KAAA,QACZ,OAAtCxE,OAAO4H,SAAS4M,KAAO,gBAAelQ,EAAAG,OAAA,iBAGlC+yD,EAAeE,aAAgB13D,OAAO4H,SAAS4M,KAAM,aAAa,GAAM,GAC9EtM,eACAlI,OAAO4H,SAAS4M,KAAOmjD,mBAAmBH,GAAgB,KAAIlzD,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAE9DyyD,EAAcD,EAAa,GAC3BD,EAAgBC,EAAa,EAAInrD,IAAeD,KAAW,QAEvC,OAFuCpH,EAAAC,KAAA,GAE3DgzD,GAAc,GAAMjzD,EAAA+lB,OAAA,6BAAA/lB,EAAAI,OAAA,GAAAR,EAAA,yBAEvB,gBAjBiBS,EAAAC,GAAA,OAAAlX,EAAAmX,MAAA,KAAAC,UAAA,KAmBZ6a,EAASy2C,aAAU,CACvB1mC,cAAe,CACb/sB,SAAU,GACVC,SAAU,IAEZ+sB,SAAU2nC,EACVjB,SA7Be,WACfY,GAA0B,EAC5B,EA4BErnC,iBAAkBgoC,KAAW,CAC3Bj1D,SAAUi1D,OAAal4C,SAAS,0BAChC9c,SAAUg1D,OAAal4C,SAAS,+BAI9Bm4C,EAAsB5kE,mBAC1B,mBACgC,KAA3B0sB,EAAOK,OAAOrd,UAA8C,KAA3Bgd,EAAOK,OAAOpd,YAAqBo0D,GACvEr3C,EAAOm4C,YAAY,GACrB,CAACn4C,EAAQq3C,IAGX,OACEtmE,gBAACujE,GAAW,CAAAloE,SAAA,CACVH,eAAC0qE,KAAM,CAAAvqE,SACLH,eAAA,SAAAG,SAAO,YAETH,eAACmpE,GAAmB,CAAAhpE,SAClBH,eAACqpE,GAAS,CAAAlpE,SACR2E,gBAACkD,KAAG,CAAA7H,SAAA,CACFH,eAAA,OAAAG,SACEH,eAAC4yD,KAAU,CAAAzyD,SACTH,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBC,oBAGtE9rD,eAACkzD,KAAa,CAAA/yD,SACZ2E,gBAACuE,KAAI,CAACixD,YAAU,EAACv1D,IAAKimE,EAAWjnC,SAAUhQ,EAAOkQ,aAAa9jC,SAAA,CAC7D2E,gBAACskE,GAAc,CAAAjpE,SAAA,CACbH,eAAA,QAAAG,SAAM,4BACNH,eAAC0yD,KAAa,CACZ1tB,GAAI,CAAEpD,SAAU,yDAChBt8B,OAAO,SAAQnF,SAChB,mBAKHH,eAAC2qE,KAAS,CACRnmE,KAAK,WACL+S,KAAK,OACL4d,YAAY,gBACZ1P,MAAOsO,EAAOa,OAAO7d,SACrBtB,MAAM,UACNzS,SAAU+wB,EAAOgtB,aACjBjlC,MAAOiY,EAAOK,OAAOrd,SACrB6zD,YAAa72C,EAAOa,OAAO7d,WAE7B/W,eAAC2qE,KAAS,CACRnmE,KAAK,WACL+S,KAAK,WACL4d,YAAY,iBACZ1P,MAAOsO,EAAOa,OAAO5d,SACrBvB,MAAOo2C,KAAkBE,SACzB/oD,SAAU+wB,EAAOgtB,aACjBjlC,MAAOiY,EAAOK,OAAOpd,SACrB4zD,YAAa72C,EAAOa,OAAO5d,SAC3BhW,UAAU,wBAGZhB,eAAC8yD,KAAU,CAAA3yD,SACTH,eAAC+kC,KAAI,CAACC,GAAI,UAAU7kC,SAAC,kCAGvBH,eAACspE,GAAkB,CAAC/xD,KAAK,SAASmL,SAAUupD,EAAoB9rE,SAC9DH,eAAC66D,KAAgB,CAACj1D,GAAIimD,KAAkBG,UAGzCh2C,GAAgBhW,eAACu/C,KAAU,CAAAp/C,SAAE6V,IAE9BhW,eAAC0oE,GAAe,gBAM1B1oE,eAAC4/C,KAAqB,CAACH,SAAS,MAGtC,ECnJa0sB,GAAc7qE,IAAOC,IAAGC,QAAAC,YAAA,qYACf,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO6qC,cAAc,IAyBnDrkC,GAAQ9G,IAAOorC,GAAEtqC,QAAAX,YAAA,qGACnB,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,ICpBjCuqE,GAAU,WACrB,IAAM/U,EAAOC,eACb,OACEt3D,eAACo6D,KAAM,CAAC/pD,MAAM,iBAAgBlQ,SAC5B2E,gBAACqnE,GAAW,CAAAhsE,SAAA,CACVH,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SACFH,eAACykC,KAAc,QAGnBzkC,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SACFH,eAACoI,GAAK,CAAAjI,SACJH,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBK,iCAIxElsD,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBI,wBAI1E,E,UCnBaogB,GAAgB,WAC3B,IAAMhV,EAAOC,eAEb,OACEt3D,eAACo6D,KAAM,CAAC/pD,MAAOs4D,IAAmBxoE,SAChC2E,gBAAC0nC,KAAiB,CAAArsC,SAAA,CAChBH,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SACFH,eAACykC,KAAc,QAGnBzkC,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SACFH,eAACoI,KAAK,CAAAjI,SACJH,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBS,sBAIxEtsD,eAAC43B,KAAQ,CAAC9b,MAAO2T,aAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,KAAkBU,oBAI1E,E,6BCjCa+f,GAAc,SAAC/0B,GAC1B,IAAIg1B,EAAO7xD,SAAS8xD,cAAc,KAClCD,EAAK3jD,KAAO2uB,EACZ78B,SAAStD,KAAKq1D,YAAYF,GAC1BA,EAAKG,QACLhyD,SAAStD,KAAKu1D,YAAYJ,EAC5B,E,4DCuBaK,GAAuB,WAClC,IAAMtlE,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,IACjErE,EAAkCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA1Cs7C,EAASp7C,EAAA,GAAEq7C,EAAYr7C,EAAA,GACxB6Y,EAAWC,cAETkrC,EAAgB5+B,eAAhB4+B,YAaF0lB,EAAqBxwC,sBAAW,eAAA/7B,EAAA6X,aAAAC,eAAAC,MAAC,SAAAC,EAAO0B,GAA8B,IAAAw6B,EAAA,OAAAp8B,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACnDuuD,aAAqBntD,GAAQ,OACwD,OADtGw6B,EAAQ97B,EAAA6V,KACd44B,EAAoB,OAAR3S,QAAQ,IAARA,OAAQ,EAARA,EAAUniC,MAAO,CAAEmzC,WAAY,CAAE/yC,OAAQ+hC,EAAS9hC,OAAQ3P,YAAayxC,EAAShiC,eAAgBkG,EAAAG,OAAA,SACrG27B,GAAQ,wBAAA97B,EAAAI,OAAA,GAAAR,EAAA,KAChB,gBAAAS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,EAJqC,GAInC,IAQH,OANA7U,qBAAU,WACR,IAAMsjE,EAAYrgE,EAAa,eAAgB,iBAE/CogE,GAAqBC,EAAW3rD,EAAS4lB,SAC3C,GAAG,IAGD98B,gBAACs1D,KAAM,CAAC/pD,MAAO,aAAalQ,SAAA,CAC1BH,eAAC2rC,KAAW,CACVt7B,MAAM,iBACNm0B,YAAY,sCACZ5gC,KAAM26C,EACN94C,OAAQ,kBAAM+4C,GAAa,EAAM,IAEnCx+C,eAACoQ,KAAW,CACVC,MAAM,aACNxH,cAAY,EACZyH,cAAeu8D,EACfr8D,mBAAoBm2D,KACpBj+D,mCAAmC,EACnC+H,eAAgB,SAAC46B,GAAK,OACpBrrC,eAAC+kC,KAAI,CACH/jC,UAAU,kBACViE,QAAS,kBAAMsrC,aAAe,cAAe,CAAEE,aAAa,GAAO,EACnEzL,GAAIsiB,KAAUC,WAAWpnD,SAEzB2E,gBAAA,QAAM9D,UAAU,eAAcb,SAAA,CAC5BH,eAACsV,KAAO,CAACC,MAAM,WAAWgS,MAAM,YAAY,sBACrBziB,gBAAA,KAAA3E,SAAA,CAAG,IAAEkrC,EAAM,WAE/B,EAETv6B,eAAgB,SAACY,EAAkBqB,GAAQ,OACzC/S,eAAA,OAAAG,SACE2E,gBAACuiC,KAAQ,CAAC1+B,SAAU,SAACmT,GAAK,OAnDjB,SAACpK,EAA4BqB,EAA0B+I,GACxE,IAAMgxD,EAAWp7D,EAAiByE,QAAO,SAACvQ,GAAE,OAC1CmN,EAAStO,MAAK,SAACyP,GAAI,OAAKA,EAAKpL,QAAQS,aAAe3D,GAAMumB,QAAQjY,EAAKpL,QAAQC,YAAY,GAAC,IAE9F,IAAY,OAAR+jE,QAAQ,IAARA,OAAQ,EAARA,EAAUjgE,QAAS,EAAG,CACxB,IAAM0qC,EAAMw1B,aAAwBD,EAAUhxD,GAC9CwwD,GAAY/0B,EACd,MACEiH,GAAa,EAEjB,CAyCyCwuB,CAAWt7D,EAAkBqB,EAAU+I,EAAe,EAAC3b,SAAA,CACpFH,eAACqnC,KAASC,OAAM,CAACxe,GAAG,MAAK3oB,SACvB2E,gBAAA,QAAM9D,UAAU,8BAA6Bb,SAAA,CAC3CH,eAACw2C,KAAoB,IACrBx2C,eAAA,QAAMgB,UAAU,cAAab,SAAC,wBAE9BH,eAACylC,KAAW,CAAC5kC,MAAM,KAAKC,OAAO,YAGnCgE,gBAACuiC,KAASG,KAAI,CAACxmC,UAAU,gBAAeb,SAAA,CACtCH,eAACqnC,KAAS15B,KAAI,CAAC85B,SAAUwlC,KAAYC,MAAM/sE,SAAC,UAC5CH,eAACqnC,KAAS15B,KAAI,CAAC85B,SAAUwlC,KAAY9kB,IAAIhoD,SAAC,eAG1C,EAER0Q,kBAAmBvJ,EAAa,wBAAyB6lE,IAAwBC,cAGnFptE,eAACK,KAAoB,CAAAF,SACnBH,eAACuhC,KAAgB,CAACzI,wBAAwB,QAIlD,EAEau0C,GAAgB,WAC3B,OACErtE,eAAC+b,KAA0B,CAAA5b,SACzBH,eAAC4sE,GAAoB,KAG3B,ECvGaU,GAAyB,WACpC,IAAMtxD,EAAWC,cACTkrC,EAAgB5+B,eAAhB4+B,YACR9iD,qBAAU,WACRqjE,GAAqB,cAAe1rD,EAAS4lB,SAC/C,GAAG,IAEH,IAAM2rC,EAAuBlxC,sBAAW,eAAA/7B,EAAA6X,aAAAC,eAAAC,MAAC,SAAAC,EAAO0B,GAA8B,IAAAw6B,EAAA,OAAAp8B,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACrD+tD,aAAe3sD,GAAQ,OAC8D,OADtGw6B,EAAQ97B,EAAA6V,KACd44B,EAAoB,OAAR3S,QAAQ,IAARA,OAAQ,EAARA,EAAUniC,MAAO,CAAEmzC,WAAY,CAAE/yC,OAAQ+hC,EAAS9hC,OAAQ3P,YAAayxC,EAAShiC,eAAgBkG,EAAAG,OAAA,SACrG27B,GAAQ,wBAAA97B,EAAAI,OAAA,GAAAR,EAAA,KAChB,gBAAAS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,EAJuC,GAIrC,IAEH,OACEpU,gBAACs1D,KAAM,CAAC/pD,MAAM,cAAalQ,SAAA,CACzBH,eAACoQ,KAAW,CACVC,MAAM,cACNI,eAAgB,SAAC46B,GAAK,OACpBrrC,eAAC+kC,KAAI,CACH/jC,UAAU,kBACViE,QAAS,kBAAMsrC,aAAe,aAAc,CAAEE,aAAa,GAAO,EAClEzL,GAAIsiB,KAAU1Y,UAAUzuC,SAExB2E,gBAAA,QAAM9D,UAAU,eAAcb,SAAA,CAC5BH,eAACsV,KAAO,CAACC,MAAM,MAAMgS,MAAM,YAAY,qBACjBziB,gBAAA,KAAA3E,SAAA,CAAG,IAAEkrC,EAAM,WAE9B,EAET/6B,cAAei9D,EACf/8D,mBAAoB22D,KACpBt2D,kBAAmBs8D,IAAwBK,aAC3C58D,uBAAuB,IAGzB5Q,eAACK,KAAoB,CAAAF,SACnBH,eAACuhC,KAAgB,CAACzI,wBAAwB,QAIlD,EAEa20C,GAAkB,WAC7B,OACEztE,eAAC+b,KAA0B,CAAA5b,SACzBH,eAACstE,GAAsB,KAG7B,E,oBC9DaI,GAAuBpsE,IAAOC,IAAGC,QAAAC,YAAA,QACjCksE,GAAyBrsE,IAAOC,IAAGa,QAAAX,YAAA,4BAInCmsE,GAAkBtsE,IAAOC,IAAGsF,QAAApF,YAAA,mMAGtBisE,GAGfA,IAIS,SAAAptE,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAInCgsE,GAAwBvsE,IAAOC,IAAGsO,QAAApO,YAAA,2GAGZ,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,ICLzDisE,GAAkB,SAAHxtE,GAA0E,IAApEytE,EAAWztE,EAAXytE,YAAa5zB,EAAI75C,EAAJ65C,KAAMplC,EAAYzU,EAAZyU,aAAc/T,EAASV,EAATU,UAAWb,EAAQG,EAARH,SAC5E8C,EAA4BC,mBAA6B,OAAX6qE,QAAW,IAAXA,MAAqB5qE,EAAAC,YAAAH,EAAA,GAA5DkkB,EAAMhkB,EAAA,GAAE6qE,EAAS7qE,EAAA,GASxB,OARAkB,qBAAU,WACR2pE,EAAUD,EACZ,GAAG,CAACA,IAEJ1pE,qBAAU,WACR2pE,GAAU,SAAC9wB,GAAC,OAAS,OAAJ/C,QAAI,IAAJA,IAAQ+C,CAAC,GAC5B,GAAG,CAAC/C,IAGFr1C,gBAAC+oE,GAAqB,CAAA1tE,SAAA,CACpBH,eAAC4tE,GAAe,CAAC3oE,QAAS,kBAAM+oE,GAAU,SAAC7zB,GAAI,OAAMA,CAAI,GAAC,EAAEn5C,UAAW+L,KAAW/L,GAAWb,SAC3F2E,gBAAC4oE,GAAoB,CAAC1sE,UAAU,kBAAiBb,SAAA,CAC/CH,eAAA,QAAAG,SAAO4U,IACP/U,eAAA,QAAMgB,UAAU,cAAab,SAC3BH,eAACmN,KAAe,CAACC,KAAM+Z,EAASw1B,KAAgBtvC,cAItDrN,eAACosB,KAAQ,CAACw5C,GAAIz+C,EAAQ8mD,eAAa,EAAA9tE,SACjCH,eAAC2tE,GAAsB,CAAC3sE,UAAU,oBAAmBb,SAAEA,QAI/D,E,6BCvCa+tE,GAA0B5sE,IAAOC,IAAGC,QAAAC,YAAA,QACpC0sE,GAA0B7sE,IAAOC,IAAGa,QAAAX,YAAA,6EAIpC2sE,GAA2B9sE,IAAOC,IAAGsF,QAAApF,YAAA,mZAMrC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,GAa5C+rE,IAMSS,GAAiC/sE,IAAOC,IAAGsO,QAAApO,YAAA,kLAEtB,SAAAK,GAAA,IAAGwsE,EAAQxsE,EAARwsE,SAAQ,OAAe,OAARA,QAAQ,IAARA,IAAY,CAAC,IASpDC,GAAoBjtE,IAAOC,IAAGuO,QAAArO,YAAA,wOAKvCwqB,MAaSuiD,GAA4BltE,IAAOC,IAAGyO,QAAAvO,YAAA,QACtCgtE,GAAkCntE,IAAOC,IAAG4O,QAAA1O,YAAA,oDAK5CitE,GAA+BptE,IAAOC,IAAGyc,QAAAvc,YAAA,+MAWzCktE,GAAgCrtE,IAAOC,IAAG6c,QAAA3c,YAAA,+BAG1CmtE,GAAwBttE,YAAOwsE,GAAPxsE,CAAuBqd,QAAAld,YAAA,uFAExDisE,IAOSmB,GAAoBvtE,IAAOC,IAAGsd,QAAApd,YAAA,6CAFD,IAO7BqtE,GAAsBxtE,IAAOC,IAAGu0C,QAAAr0C,YAAA,uLAKrB,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAOC,OAAO,ICpG9CktE,GAAgCztE,IAAOC,IAAGC,QAAAC,YAAA,4LAUxC,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO2e,eAAe,IAI7CyuD,GAAwB1tE,YAAO2G,KAAP3G,CAAWc,QAAAX,YAAA,iGASnCwtE,GAAW3tE,YAAO0D,KAAP1D,CAAcuF,QAAApF,YAAA,2HAC3B,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAIjC,SAAAQ,GAAQ,OAAAA,EAALV,MAAkBC,OAAOy7C,cAAc,IAO1C6xB,GAAsB5tE,IAAOC,IAAGsO,QAAApO,YAAA,mVAKhC,SAAAa,GAAQ,OAAAA,EAALX,MAAkBC,OAAOC,OAAO,IAIjC,SAAAoc,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOy7C,cAAc,IAiB5C8xB,GAAkB7tE,YAAO2G,KAAP3G,CAAWwO,QAAArO,YAAA,0CAK7B2tE,GAAqB9tE,YAAO+H,KAAP/H,CAAY0O,QAAAvO,YAAA,2BACjC,SAAA4c,GAAO,OAAAA,EAAJza,KAAmB,QAAU,MAAM,IAGtCyrE,GAAkB/tE,IAAOoF,KAAIyJ,QAAA1O,YAAA,8H,UC3C7B6tE,GAAa,SAAHhvE,GAA2E,IAArEivE,EAAWjvE,EAAXivE,YAAaC,EAAoBlvE,EAApBkvE,qBAAsBC,EAAkBnvE,EAAlBmvE,mBAC9DxsE,EAA4CC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAA7DysE,EAAcvsE,EAAA,GAAEwsE,EAAiBxsE,EAAA,GACxCG,EAAwCJ,oBAAkB,GAAMM,EAAAJ,YAAAE,EAAA,GAAzDm7C,EAAYj7C,EAAA,GAAEk7C,EAAel7C,EAAA,GAG9BosE,GAAgB/nD,EADDtgB,cAAbsgB,UACuBC,IAAM+nD,wBAC7BvnD,EAAoBC,eAApBD,gBACFhhB,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,IAIhE4K,EAFgGH,cAAS,kBACxGw9C,cAAc,IADRp9C,KAAIC,OAAA,IAAAF,EAA2D,CAAC,EAACA,EAAjD49D,EAAc19D,EAAtBgK,OAAwB2zD,EAAI39D,EAAJ29D,KAAMC,EAAS59D,EAAT49D,UAAWC,EAAS79D,EAAT69D,UAInDC,EAAgB,eAAApuE,EAAAqW,aAAAC,eAAAC,MAAG,SAAAC,EAAOktC,GAAuB,OAAAptC,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OASX,OAR1C22D,EAAYt7B,SAAQ,SAAC//B,GACM,QAArBA,EAAKvP,aAAwC,KAAfuP,EAAKtP,QACrCsP,EAAK6gC,cAAgB7gC,EAAKtP,MAC1BsP,EAAKw/B,UAAW,EAChBx/B,EAAKu/B,eAAiB,GACtBv/B,EAAKi8D,SAAWnrB,KAAUorB,SAE9B,IACA9nD,EAAgB,2BAA0B5P,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAElCg3C,aAAW,CAAEhb,QAAS26B,EAAa/pB,eAAa,OACtDmqB,GAAkB,GAAMj3D,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6M,GAAA7M,EAAA,SAExBgmC,GAAgB,GAAK,yBAAAhmC,EAAAI,OAAA,GAAAR,EAAA,kBAExB,gBAhBqBS,GAAA,OAAAjX,EAAAmX,MAAA,KAAAC,UAAA,KA0BtB,OAJA7U,qBAAU,WACRorE,EAAmBC,EACrB,GAAG,CAACD,EAAoBC,IAGtB5qE,gBAACoqE,GAAmB,CAAA/uE,SAAA,CAClB2E,gBAACiqE,GAA6B,CAAA5uE,SAAA,CAC3ByvE,GACC9qE,gBAAAD,YAAA,CAAA1E,SAAA,CACEH,eAACgF,KAAM,CACL9E,QAAQ,OACR+E,QAAS,WACP0qE,GAAkB,EACpB,EAAExvE,SACH,gBAGDH,eAACqvE,GAAe,OAGpBrvE,eAACgF,KAAM,CAAC9E,QAAQ,OAAO+E,QAASuqE,EAAsB9sD,SAAUgtD,EAAevvE,SAAC,yBAKjFyvE,GACC5vE,eAAC6jC,KAAM,CACLC,cAAanjC,wBAAA,GACRmvE,GAAc,IACjBvjE,YAAaiH,eAAeC,QAAQC,IAAkB28D,sBAExDC,oBAAoB,EACpBvsC,SAAU,SAAC3P,GAAM,OAAK87C,EAAiB97C,EAAO,EAACj0B,SAE9C,SAACO,GAAK,OACLoE,gBAACsqE,GAAkB,CAACxrE,KAAM8rE,EAAgBpV,YAAU,EAACv2B,SAAUrjC,EAAMujC,aAAcjjC,UAAU,YAAWb,SAAA,CACtG2E,gBAACuE,KAAK2rB,MAAK,CAACh0B,UAAU,OAAOi0B,UAAU,cAAa90B,SAAA,CAClDH,eAACqJ,KAAK6rB,QAAO,CACX1wB,KAAK,cACLxB,SAAU,SAAC0G,GAAC,OA3CF,SAAC2sB,EAAO31B,GAChCA,EAAMg0B,cAAc,cAAe2B,EAAM/wB,OAAOwW,MAClD,CAyCiCy0D,CAAkB7mE,EAAGhJ,EAAM,EAC5Cob,MAAOpb,EAAM0zB,OAAO7nB,YACpB4oB,YAAY,4BAEdn1B,eAACqJ,KAAK6rB,QAAO,CAAC1wB,KAAK,WAAWgsE,QAAM,EAACr7C,YAAY,+BAEnDn1B,eAACgI,KAAG,CAAA7H,SACF2E,gBAACqqE,GAAe,CAAAhvE,SAAA,CAAC,uBAEfH,eAACqJ,KAAK2rB,MAAK,CAACh0B,UAAU,OAAOi0B,UAAU,WAAU90B,SAC/CH,eAACqJ,KAAKC,MAAK,CACTiO,KAAK,QACL/S,KAAK,WACLiR,MAAM,MACNjM,SAAmC,IAA1B9I,EAAM0zB,OAAOq8C,SACtBztE,SAAU,SAACqzB,GAAK,OAAK31B,EAAMg0B,cAAc,WAAY2B,EAAM/wB,OAAOkE,QAAQ,MAG9ExJ,eAACqJ,KAAK2rB,MAAK,CAACh0B,UAAU,OAAOi0B,UAAU,WAAU90B,SAC/CH,eAACqJ,KAAKC,MAAK,CACTiO,KAAK,QACL/S,KAAK,WACLiR,MAAM,KACNjM,SAAU9I,EAAM0zB,OAAOq8C,SACvBztE,SAAU,SAACqzB,GAAK,OAAK31B,EAAMg0B,cAAc,YAAa2B,EAAM/wB,OAAOkE,QAAQ,WAKlF9I,EAAM0zB,OAAOq8C,UACZ3rE,gBAAAD,YAAA,CAAA1E,SAAA,CACEH,eAACgI,KAAG,CAAChH,UAAU,OAAMb,SACnBH,eAACiI,KAAG,CAAA9H,SACFH,eAAC43B,KAAQ,CAAC9b,MAAOyT,aAAUjoB,EAAa,+BAG5CxC,gBAACkD,KAAG,CAAA7H,SAAA,CACFH,eAACqJ,KAAK2rB,MAAK,CAACh0B,UAAU,OAAO8nB,GAAI7gB,KAAKkJ,GAAI,GAAIjI,GAAI,EAAGmI,GAAI,EAAG4jB,UAAU,kBAAiB90B,SACrFH,eAACqJ,KAAK6rB,QAAO,CACXpM,GAAG,SACHrf,QAAM,EACNjF,KAAK,kBACLxB,SAAUtC,EAAMqgD,aAChBjlC,MAAOpb,EAAM0zB,OAAOs8C,gBAAgBvwE,SAE1B,OAAT6vE,QAAS,IAATA,OAAS,EAATA,EAAW7rE,KAAI,SAAC+vB,GACf,OACEl0B,eAAA,UAAwB8b,MAAOoY,EAAOvnB,GAAGxM,SACtC+zB,EAAO3nB,aADG2nB,EAAOvnB,GAIxB,QAGHjM,EAAM0zB,OAAOs8C,gBAAkB,GAC9B1wE,eAACqJ,KAAK2rB,MAAK,CAACh0B,UAAU,OAAO8nB,GAAI7gB,KAAKkJ,GAAI,GAAIjI,GAAI,EAAGmI,GAAI,EAAG4jB,UAAU,WAAU90B,SAC9EH,eAACqJ,KAAK6rB,QAAO,CACXpM,GAAG,SACHrf,QAAM,EACNjF,KAAK,WACLxB,SAAUtC,EAAMqgD,aAChBjlC,MAAOpb,EAAM0zB,OAAOu8C,SAASxwE,SAExB,OAAJ4vE,QAAI,IAAJA,OAAI,EAAJA,EAAM5rE,KAAI,SAAC+vB,GACV,OACEl0B,eAAA,UAAwB8b,MAAOoY,EAAOvnB,GAAGxM,SACtC+zB,EAAO3nB,aADG2nB,EAAOvnB,GAIxB,QAKN3M,eAACqJ,KAAK2rB,MAAK,CAACh0B,UAAU,OAAO8nB,GAAI7gB,KAAKkJ,GAAI,GAAIjI,GAAI,EAAGmI,GAAI,EAAG4jB,UAAU,0BAAyB90B,SAC7FH,eAACqJ,KAAK6rB,QAAO,CACXpM,GAAG,SACHrf,QAAM,EACNjF,KAAK,0BACLxB,SAAUtC,EAAMqgD,aAChBjlC,MAAOpb,EAAM0zB,OAAOw8C,wBAAwBzwE,SAElC,OAAT8vE,QAAS,IAATA,OAAS,EAATA,EAAW9rE,KAAI,SAAC+vB,GACf,OACEl0B,eAAA,UAAwB8b,MAAOoY,EAAOvnB,GAAGxM,SACtC+zB,EAAO3nB,aADG2nB,EAAOvnB,GAIxB,cAOV3M,eAACgI,KAAG,CAAA7H,SACF2E,gBAACkqE,GAAqB,CAAA7uE,SAAA,CACpBH,eAACivE,GAAQ,CAAC13D,KAAK,SAASmL,UAAWhiB,EAAM0zB,OAAO7nB,YAAarM,QAAQ,OAAMC,SAAC,SAG5EH,eAACgF,KAAM,CAAC9E,QAAQ,OAAO+E,QAAS,kBAAM0qE,GAAkB,EAAM,EAACxvE,SAAC,gBAKpEH,eAACgI,KAAG,CAAA7H,SACFH,eAACiI,KAAG,CAAA9H,SAAEs+C,GAAgBz+C,eAACu/C,KAAU,CAAAp/C,SAAEC,YAElB,MAMjC,E,+BCvNaywE,GAAcvvE,IAAOC,IAAGC,QAAAC,YAAA,6ZAMZ,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAGzC,SAAAC,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAczCivE,GAAcxvE,IAAOC,IAAGa,QAAAX,YAAA,wFAGrB,SAAAY,GAAA,IAAGqT,EAAKrT,EAALqT,MAAOoG,EAAKzZ,EAALyZ,MAAOna,EAAKU,EAALV,MAAK,OAChB,IAAjBma,EAAMjP,QAA0B,IAAV6I,GAAkC,IAAjBoG,EAAMjP,QAA0B,IAAV6I,EAAe/T,EAAMC,OAAOC,QAAU,MAAM,IAIjGkvE,GAAazvE,IAAOoF,KAAIG,QAAApF,YAAA,2IAUxBuvE,GAAe1vE,YAAO2vE,KAAP3vE,CAAmBuO,QAAApO,YAAA,sFAI3CsvE,I,oBC7CEG,GAAc,SAACC,GAAwC,OAAK,SAACzwE,EAAO8G,GAAK,OAE3ExH,eAAC6wE,GAAWlwE,wBAAA,GAAKD,GAAK,IAAAP,SACpBH,eAAA,OAAKgB,UAAU,aAAYb,SAAEgxE,EAAeA,EAAa3pE,EAAM4pE,UAAY5pE,EAAM4pE,aACrE,CACf,EACGC,GAAc,SAAC3wE,EAAO8G,GAAK,OAAKxH,eAAC8wE,GAAWnwE,wBAAA,GAAKD,GAAK,IAAEob,MAAO,CAACtU,EAAMsU,OAAOw1D,OAAQ57D,MAAOlO,EAAMkO,QAAS,EAC3G67D,GAAa,SAAC7wE,GAAK,OAAKV,eAAC+wE,GAAUpwE,YAAA,GAAKD,GAAS,EAM1C8wE,GAAS,SAAHlxE,GAA4C,IAAtC6wE,EAAY7wE,EAAZ6wE,aAAiBzwE,EAAK4rB,YAAAhsB,EAAAisB,IAC7C,OACEvsB,eAACgxE,GAAYrwE,YAAA,CACX0wE,YAAaA,GACbH,YAAaA,GAAYC,GACzBI,WAAYA,IACR7wE,GAGV,E,UCEa+wE,GAAe,SAAHnxE,GAAsC,IAAhC6V,EAAM7V,EAAN6V,OAAQnT,EAAQ1C,EAAR0C,SAErB0uE,EACZnqE,cADFqmB,WAAc8jD,qBAGhBzuE,EAA4CC,mBAAoDiT,GAAOhT,EAAAC,YAAAH,EAAA,GAAhG0uE,EAAcxuE,EAAA,GAAEyuE,EAAiBzuE,EAAA,GAClC0uE,EAAoB,MAAAvrE,OAASqrE,EAAer+B,UAAS,uBAE3DjvC,qBAAU,WACRutE,EAAkBz7D,EACpB,GAAG,CAACA,IAEJ,IAAM27D,EAAsB,SAC1BC,EACAnpE,EACAopE,GAEA,IAAMn6B,EAASn7B,aAAQi1D,GAAgB,SAAC9wB,GACtCA,EAAMpN,eAAeQ,SAAQ,SAAC+wB,GACxBgN,IAAYhN,EAAGtxB,UAAW,GAC1Bq+B,EAAe/M,KAAKA,EAAGtxB,SAAW9qC,EACxC,GACF,IAEQ,OAAR5F,QAAQ,IAARA,KAAW60C,EACb,EAEMo6B,EAA2B,SAACC,EAAgBC,EAAgB/9C,GAChE,IAAMyjB,EAASn7B,aAAQi1D,GAAgB,SAAC9wB,GACtCA,EAAMj8C,MAAQwvB,EAAO,GAAG9c,WACxBupC,EAAMuxB,OAASh+C,EAAO,GAAG9c,WACzBupC,EAAMnN,UAAW,EACjBmN,EAAM9L,cAAa,GAAAzuC,OAAM8tB,EAAO,GAAE,OAAA9tB,OAAM8tB,EAAO,KAE5B,IAAdA,EAAO,IAA0B,IAAdA,EAAO,IAAaA,EAAO,GAAK89C,GAAU99C,EAAO,GAAK+9C,KAC5EtxB,EAAMj8C,MAAQ,GACdi8C,EAAMuxB,OAAS,GACfvxB,EAAMnN,UAAW,EAErB,IAEQ,OAAR1wC,QAAQ,IAARA,KAAW60C,EACb,EAEMw6B,EAAoB,SAACv2D,GACzB,IAAIw2D,EAAgB,KACdz6B,EAASn7B,aAAQi1D,GAAgB,SAAC7+B,GAAQ,IAADy/B,EAAAC,EAC7C1/B,EAAGW,eAAeQ,SAAQ,SAAC+wB,GACrBA,EAAGtxB,WACL4+B,EAAgBtN,EAEpB,IAEAlyB,EAAGluC,MAAQkX,EAAMxE,WACjBw7B,EAAGiC,cAAgB09B,aAAoB3/B,EAAGluC,MAAiB,QAAZ2tE,EAAI,OAAFz/B,QAAE,IAAFA,OAAE,EAAFA,EAAI4/B,cAAM,IAAAH,IAAiB,QAAjBC,EAAIF,SAAa,IAAAE,OAAA,EAAbA,EAAeE,QAC9E5/B,EAAGY,UAAW,CAChB,IAEQ,OAAR1wC,QAAQ,IAARA,KAAW60C,EACb,EAEM86B,EAAkB,SAAC72D,GACvB,IAAIw2D,EAAqC,KACnCz6B,EAASn7B,aAAQi1D,GAAgB,SAAC7+B,GAAQ,IAAD8/B,EAC7C9/B,EAAGW,eAAeQ,SAAQ,SAAC+wB,GACrBA,EAAGtxB,WACLsxB,EAAG0N,OAAS52D,EACZw2D,EAAgBtN,EAEpB,IAEIlpD,IAAU41D,OAC4Cr3D,IAApDy4B,EAAGW,eAAehvC,MAAK,SAACyP,GAAI,OAAKA,EAAKw/B,QAAQ,MAAiBZ,EAAGW,eAAe,GAAGC,UAAW,GAEnGZ,EAAGW,eAAe,GAAGC,UAAW,EAGlCZ,EAAGluC,MAAQkuC,EAAGluC,QAAsB,QAAjBguE,EAAIN,SAAa,IAAAM,OAAA,EAAbA,EAAehuE,OACtCkuC,EAAG4/B,OAAS52D,EACZg3B,EAAGiC,cAAgB09B,aAAqB3/B,EAAGluC,MAA8BkuC,EAAGluC,MAtFtD,QAsF6DkuC,EAAG4/B,QACtF5/B,EAAGY,UAAW,CAChB,IAEQ,OAAR1wC,QAAQ,IAARA,KAAW60C,EACb,EAEMg7B,EAAyB,SAACX,EAAgBC,EAAgB/9C,GAC9D,IAAMyjB,EAASn7B,aAAQi1D,GAAgB,SAAC9wB,GACtCA,EAAMj8C,MAAQya,aAAa+U,EAAO,GAAI,CAAE5U,sBAAuB,IAC/DqhC,EAAMuxB,OAAS/yD,aAAa+U,EAAO,GAAI,CAAE5U,sBAAuB,IAChEqhC,EAAMnN,UAAW,EACjBmN,EAAM9L,cAAa,GAAAzuC,OAAMu6C,EAAMj8C,MAAK,OAAA0B,OAAMu6C,EAAMuxB,SAE7B,IAAdh+C,EAAO,IAA0B,IAAdA,EAAO,IAAaA,EAAO,GAAK89C,GAAU99C,EAAO,GAAK+9C,KAC5EtxB,EAAMj8C,MAAQ,GACdi8C,EAAMuxB,OAAS,GACfvxB,EAAMnN,UAAW,EAErB,IAEQ,OAAR1wC,QAAQ,IAARA,KAAW60C,EACb,EAEA,GAAI85B,EAAehtE,YAAYmuE,WAAW,UACxC,OACEhuE,gBAAC2pE,GAA+B,CAAAtuE,SAAA,CAC9BH,eAAC0uE,GAA4B,CAAAvuE,SAAEwxE,EAAer+B,YAE9CxuC,gBAAC6pE,GAA6B,CAAAxuE,SAAA,CAC3Bi7C,kBAAQu2B,EAAel+B,iBAAmBzzC,eAAA6E,YAAA,CAAA1E,SAAG0xE,KAC5Cz2B,kBAAQu2B,EAAel+B,iBACvBzzC,eAACquE,GAA8B,CAAAluE,SAC5BwxE,EAAel+B,eAAetvC,KAAI,SAAC6gE,EAAIt3D,GAAG,OACzC1N,eAACqJ,KAAKC,MAAK,CAETypE,QAAM,EACNtpE,QAAM,EACN7D,GAAIo/D,EAAGgO,UACPxuE,KAAMwgE,EAAG1xB,UACTx3B,MAAOkpD,EAAGgO,UACVC,eAAgBjO,EAAGtxB,SACnBj+B,MACE3Q,gBAAA,QAAA3E,SAAA,CACG6kE,EAAGjwB,cAAe,IACnBjwC,gBAAA,QAAM9D,UAAU,8CAA6Cb,SAAA,CAAC,IAAE6kE,EAAGkO,aAAa,UAGpFlwE,SAAU,SAAC0G,GAAC,OAAKooE,GAAoB,SAACh/B,GAAE,OAAKA,EAAGkgC,YAAchO,EAAGgO,SAAS,GAAEtpE,EAAEyE,cAAc3E,QAAQ,GAAC,GAAAlD,OAb7F0+D,EAAGgO,UAAS,KAAA1sE,OAAIoH,GAcxB,YAShB,GAAIikE,EAAe7sB,UAAYquB,IAAUhqE,IAAK,CAC5C,IAAMmW,EAAU,GACV8zD,EAAkB,GAMxB,OALAzB,EAAel+B,eAAeQ,SAAQ,SAAC+wB,GACrC1lD,EAAQg1B,KAAK,CAAEx4B,MAAOkpD,EAAGpgE,MAAO6Q,MAAOuvD,EAAGjwB,gBACtCiwB,EAAGtxB,UAAU0/B,EAAgB9+B,KAAK,CAAEx4B,MAAOkpD,EAAGpgE,MAAO6Q,MAAOuvD,EAAGjwB,eACrE,IAGE/0C,eAACu0B,KAAM,CACL,aAAW,aACXjV,QAASA,EACT+zD,cAAc,EACdl+C,YAAY,YACZm+C,SAAS,EACT,oBAAkB,OAClBrsC,aAAcmsC,EACdt3D,MAAOs3D,EACPG,mBAAmB,EACnBvwE,SAAU,SAACsc,GAA2C,OACpDwyD,GAAoB,SAACh/B,GAAE,OAAKxzB,EAAQ8a,MAAK,SAACo5C,GAAG,OAAKA,EAAI13D,QAAUg3B,EAAGluC,KAAK,GAAC,IAAE,GAAM,EAAK,EAExF6uE,iBAAkB,kBAAM,IAAI,GAGlC,CAEA,OAAIr4B,kBAAQu2B,EAAel+B,gBAClBzzC,eAAA6E,YAAA,CAAA1E,SAAG0xE,IAGRF,EAAe5sB,YAEf/kD,eAACquE,GAA8B,CAAAluE,SAC5BwxE,EAAel+B,eAAetvC,KAAI,SAAC6gE,EAAIt3D,GAAG,OACzC1N,eAACqJ,KAAKC,MAAK,CAETypE,QAAM,EACNtpE,QAAM,EACN7D,GAAIo/D,EAAGgO,UACPxuE,KAAMwgE,EAAG1xB,UACTx3B,MAAOkpD,EAAGgO,UACVxpE,QAASw7D,EAAGtxB,SACZj+B,MACE3Q,gBAAA,QAAA3E,SAAA,CACG6kE,EAAGjwB,cAAe,IACnBjwC,gBAAA,QAAM9D,UAAU,8CAA6Cb,SAAA,CAAC,IAAE6kE,EAAGkO,aAAa,UAGpFlwE,SAAU,SAAC0G,GAAC,OAAKooE,GAAoB,SAACh/B,GAAE,OAAKA,EAAGkgC,YAAchO,EAAGgO,SAAS,GAAEtpE,EAAEyE,cAAc3E,QAAQ,GAAC,GAAAlD,OAb7F0+D,EAAGgO,UAAS,KAAA1sE,OAAIoH,GAcxB,MAMNikE,EAAe7sB,UAAYquB,IAAUO,UAErC5uE,gBAAC0pE,GAAyB,CAAAruE,SAAA,CACxB2E,gBAACuE,KAAK2rB,MAAK,CAAClM,GAAI9gB,KAAKiB,WAAS,EAACgsB,UAAU,oBAAmB90B,SAAA,CAC1DH,eAACqJ,KAAKgrB,MAAK,CAACs/C,QAAM,EAACzqE,GAAG,IAAG/I,SAAC,mBAG1BH,eAACiI,KAAG,CAACiB,GAAG,IAAG/I,SACTH,eAACqJ,KAAK6rB,QAAO,CACXC,YAAY,iBACZ8R,aAAc0qC,EAAee,OAC7B1vE,SAAU,SAAC0G,GAAC,OAAKipE,EAAgBjpE,EAAEyE,cAAc2N,MAAM,SAI7D9b,eAACgI,KAAG,CAACiB,WAAS,EAAA9I,SACZH,eAACiI,KAAG,CAAA9H,SACFH,eAACwxE,GAAM,CACLoC,OAAK,EACL3qC,IAAK,EACLb,IAAK,EAELnB,aAAc4sC,IAAkBpnE,WAC9B,SAACC,GAAC,IAAAonE,EAAA,OAAKpnE,EAAE4K,cAAsE,QAA5Dw8D,EAAKnC,EAAel+B,eAAehvC,MAAK,SAACugE,GAAE,OAAKA,EAAGtxB,QAAQ,WAAC,IAAAogC,OAAA,EAAvDA,EAAyDlvE,MAAK,IAExFusE,aAAc,SAACr1D,GAAK,MAElB,CAAC,MAAO,OAAQ,OAAQ,QAAS,QAAS,QAAS,UAAUA,EAAM,EAErE9Y,SAAU,SAAC8Y,GAETu2D,EAAkBwB,IAAkB/3D,GACtC,WAQR61D,EAAe7sB,UAAYquB,IAAUY,oBAErC/zE,eAACwuE,GAAyB,CAAAruE,SACxBH,eAACwxE,GACC,CACAvoC,IAAK,EACLb,IAAK,KAELnB,aACuE,IAArE0qC,EAAel+B,eAAet9B,QAAO,SAAC6uD,GAAE,OAAKA,EAAGtxB,QAAQ,IAAE7mC,OACtD,CAAC,EAAG,MACJ8kE,EAAel+B,eAAet9B,QAAO,SAAC6uD,GAAE,OAAKA,EAAGtxB,QAAQ,IAAEnY,QAAO,SAACb,EAAKs5C,GAIrE,OAHAt5C,EAAI4Z,KAAK0/B,EAAIpvE,OACb81B,EAAI4Z,KAAK0/B,EAAI5B,QAEN13C,CACT,GAAG,IAETu5C,KAAM,IACN9C,aAAc,SAACr1D,GAAK,OAAKuD,aAAavD,EAAM,EAC5C9Y,SAAU,SAAC8Y,GAAe,OAAKm2D,EAAyB,EAAG,KAAQn2D,EAAM,MAM7E61D,EAAe7sB,UAAYquB,IAAUe,qBAErCl0E,eAACwuE,GAAyB,CAAAruE,SACxBH,eAACwuE,GAAyB,CAAAruE,SACxBH,eAACwxE,GACC,CACAvoC,IAAK,EACLb,IAAK,EAELnB,aACuE,IAArE0qC,EAAel+B,eAAet9B,QAAO,SAAC6uD,GAAE,OAAKA,EAAGtxB,QAAQ,IAAE7mC,OACtD,CAAC,EAAK,GACN8kE,EAAel+B,eAAet9B,QAAO,SAAC6uD,GAAE,OAAKA,EAAGtxB,QAAQ,IAAEnY,QAAO,SAACb,EAAKs5C,GAIrE,OAHAt5C,EAAI4Z,KAAK0/B,EAAIpvE,OACb81B,EAAI4Z,KAAK0/B,EAAI5B,QAEN13C,CACT,GAAG,IAETu5C,KAAM,GACN9C,aAAc,SAACr1D,GAAK,OAClBuD,aAAavD,EAAO,CAClB0D,sBAAuB,GACvB,EAEJxc,SAAU,SAAC8Y,GAAe,OAAK+2D,EAAuB,EAAK,EAAK/2D,EAAM,aAzBhF,CA+BF,EC3TasqB,GAAY9kC,IAAOC,IAAGC,QAAAC,YAAA,wXAMb,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,ICC5CsyE,GAAM,SAAH7zE,GAAuD,IAAjD+P,EAAK/P,EAAL+P,MAAOpL,EAAO3E,EAAP2E,QAASjE,EAASV,EAATU,UACpC,OACEhB,eAAComC,GAAS,CAACnhC,QAASA,EAASjE,UAAWA,EAAUb,SAC/CkQ,GAGP,ECba+jE,GAA8B9yE,IAAOC,IAAGC,QAAAC,YAAA,oVAa7B,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOC,OAAO,IAQ9CwyE,GAAqB/yE,IAAOC,IAAGa,QAAAX,YAAA,2PAWpB,SAAAK,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAC9C,SAAAQ,GAAQ,OAAAA,EAALV,MAAkBC,OAAOC,OAAO,ICtBnCyyE,GAAwB,SAAHh0E,GAA0D,IAApDs0C,EAAOt0C,EAAPs0C,QAAS2/B,EAAcj0E,EAAdi0E,eAAgBC,EAAWl0E,EAAXk0E,YAC/DvxE,EAAgCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAxCwxE,EAAQtxE,EAAA,GAAEuxE,EAAWvxE,EAAA,GACtBwxE,GAA6B,OAAP//B,QAAO,IAAPA,OAAO,EAAPA,EAAS/nC,QAAS+nE,IACxCC,EAAkBjgC,EAAQ/nC,OAAS+nE,MAAkCH,EACrEK,EAAkBlgC,EAAQ/nC,OAAS+nE,KAAiCH,EAEpEM,EAAiB,WACrBL,GAAaD,EACf,EAOA,OALAj6D,2BAAgB,WACH,OAAXg6D,QAAW,IAAXA,KAAcC,EAEhB,GAAG,CAACA,IAGF3vE,gBAACsvE,GAA2B,CAAAj0E,SAAA,CAC1BH,eAAA,OAAKgB,UAAU,wBAAuBb,SACnCqT,eAAeC,QAAQC,IAAkB28D,qBAAuB,sBAEnEvrE,gBAACuvE,GAAkB,CAAAl0E,SAAA,CAChBy0C,EAAQnyC,MAAM,EAAGoyE,EAAkBD,IAAgChgC,EAAQ/nC,QAAQ1I,KAAI,SAACgS,GAAM,OAC7FnW,eAACm0E,GAAG,CAEF9jE,MACEvL,gBAAAD,YAAA,CAAA1E,SAAA,CACEH,eAAA,QAAAG,SAAOgW,EAAO4+B,gBAAqB,QACnC/0C,eAACmN,KAAe,CACdnM,UAAU,WACViE,QAAS,kBAAMsvE,EAAep+D,EAAO2uC,QAAS3uC,EAAO68D,UAAU,EAC/D5lE,KAAM4nE,WAPP7+D,EAAO68D,UAWZ,IAGH6B,GACC70E,eAACm0E,GAAG,CACFnzE,UAAU,YACViE,QAAS8vE,EACT1kE,MACEvL,gBAAAD,YAAA,CAAA1E,SAAA,CACE2E,gBAAA,QAAA3E,SAAA,CAAM,QAAMw0E,EAAoB,YAAa,QAC7C30E,eAACmN,KAAe,CAACC,KAAM6nE,YAK9BH,GACC90E,eAACm0E,GAAG,CACFnzE,UAAU,YACViE,QAAS8vE,EACT1kE,MACEvL,gBAAAD,YAAA,CAAA1E,SAAA,CACEH,eAAA,QAAAG,SAAM,eAAiB,QACvBH,eAACmN,KAAe,CAACC,KAAM8nE,iBAQvC,EC1CeC,I,YAAAA,GA5Bf,WAIE,IAAAlyE,EAAsBC,mBAAmB,MAAKC,EAAAC,YAAAH,EAAA,GAAvC8B,EAAG5B,EAAA,GAAEiyE,EAAMjyE,EAAA,GAClBG,EAAwBJ,mBAAe,CACrCrC,MAAO,EACPC,OAAQ,IACR0C,EAAAJ,YAAAE,EAAA,GAHKgK,EAAI9J,EAAA,GAAE6xE,EAAO7xE,EAAA,GAMd8xE,EAAaj5C,uBAAY,WAC7Bg5C,EAAQ,CACNx0E,OAAU,OAAHkE,QAAG,IAAHA,OAAG,EAAHA,EAAKmW,cAAe,EAC3Bpa,QAAW,OAAHiE,QAAG,IAAHA,OAAG,EAAHA,EAAKwwE,eAAgB,GAIjC,GAAG,CAAI,OAAHxwE,QAAG,IAAHA,OAAG,EAAHA,EAAKwwE,aAAiB,OAAHxwE,QAAG,IAAHA,OAAG,EAAHA,EAAKmW,cAO5B,OALAV,2BAAgB,WACd86D,GAEF,GAAG,CAAI,OAAHvwE,QAAG,IAAHA,OAAG,EAAHA,EAAKwwE,aAAiB,OAAHxwE,QAAG,IAAHA,OAAG,EAAHA,EAAKmW,cAErB,CAACk6D,EAAQ9nE,EAAMgoE,EACxB,ECLaE,GAAsBn6D,wBAAmC,MAEzDo6D,GAA8B,SAAHn1E,GAAsB,IAAhBH,EAAQG,EAARH,SACtC6b,EAAWC,cACXC,EAAQC,aAAuCH,EAASI,QACtDzK,EAAqBhK,qBAAW2J,MAAhCK,iBACR1O,EAAgEC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAxEyyE,EAAwBvyE,EAAA,GAAEwyE,EAA2BxyE,EAAA,GAEtDyyE,EAA8C15D,EAAMG,YACtD,GACAmS,aAAUpa,OAAOZ,eAAeC,QAAQC,IAAkBuoD,iBAE9D34D,EAAwCJ,mBACtC0yE,EAAoBj1E,wBAAA,GAEXk1E,KAAc,IACjBC,YAAWn1E,wBAAA,GAAOk1E,IAAeC,aAAW,IAAEC,cAAeH,MAE/DC,KACLryE,EAAAJ,YAAAE,EAAA,GAPMiN,EAAY/M,EAAA,GAAEwyE,EAAexyE,EAAA,GASpCE,EAA0CR,mBACxC0yE,EAAoBj1E,wBAAA,GAEXs1E,KAAiB,IACpBH,YAAWn1E,wBAAA,GAAOs1E,IAAkBH,aAAW,IAAEC,cAAeH,MAElEK,KACLtyE,EAAAP,YAAAM,EAAA,GAPMwyE,EAAavyE,EAAA,GAAEwyE,EAAgBxyE,EAAA,GA4BrCuO,EAHsEH,cACrE,kBAAM67C,aAAYsoB,EAAc,GAChC,CAACA,IAFK/jE,KAAco9D,QAAV,IAAAr9D,EAA0B,CAAC,EAACA,GAAxBqpD,KAShB,OACEv7D,eAACw1E,GAAoB35D,SAAQ,CAC3BC,MAAO,CACLvL,eACA6lE,cA7BgB,SAACxhC,GACrBohC,GACE,SAACK,GAAG,OAAA11E,wBAAA,GAAW01E,GAAG,IAAEP,YAAWn1E,wBAAA,GAAO01E,EAAIP,aAAW,IAAEC,cAAenhC,KAAS,IAEjFuhC,GACE,SAACE,GAAG,OAAA11E,wBAAA,GAAW01E,GAAG,IAAEP,YAAWn1E,wBAAA,GAAO01E,EAAIP,aAAW,IAAEC,cAAenhC,KAAS,IAGjFphC,eAAeK,QAAQH,IAAkBuoD,eAAgBvnD,KAAKC,UAAUigC,IACxEjjC,GAAiB,SAACnK,GAChBA,EAAMkK,iBAAmB,GACzBlK,EAAM+J,YAAc,CACtB,IACAokE,GAA4B,EAC9B,EAgBMpG,cACAmG,2BACAC,8BACAW,8BAZgC,WACpCX,GAA4B,EAC9B,GAWMx1E,SAEDA,GAGP,EC7Dao2E,GAAc,WACzB,IAAMC,EAAsB,CAACrD,IAAU5xB,aAAc4xB,IAAU9xB,eAAgB8xB,IAAUp0B,mBAGzF97C,EAA4CC,mBAAgC,IAAGC,EAAAC,YAAAH,EAAA,GAAxEwzE,EAActzE,EAAA,GAAEuzE,EAAiBvzE,EAAA,GACxCG,EAA0CJ,oBAAS,GAAMM,EAAAJ,YAAAE,EAAA,GAAlDqzE,EAAanzE,EAAA,GAAEozE,EAAgBpzE,EAAA,GACtCE,EAA4CR,oBAAS,GAAMS,EAAAP,YAAAM,EAAA,GAApDmzE,EAAclzE,EAAA,GAAEmzE,EAAiBnzE,EAAA,GAEhC2kB,EAAoBC,eAApBD,gBACRY,EAAuC3hB,cAA/BsgB,EAAQqB,EAARrB,SAAUvZ,EAAgB4a,EAAhB5a,iBAEZyoE,EAAsBlvD,EAASC,IAAMwiC,sBAC3C7+C,EAAuC9D,qBAAW6tE,IAA1CjG,EAAW9jE,EAAX8jE,YAAa6G,EAAa3qE,EAAb2qE,cAEfY,EAA8B,OAAXzH,QAAW,IAAXA,OAAW,EAAXA,EAAap5D,QAAO,SAACjC,GAAI,OAAKA,EAAKvP,YAAYmuE,WAAW,SAAS,IAOtFmE,EAAqBjuC,KAAKZ,MAC5B95B,EAAiB,sCAAwC4oE,KAAiC,EAC5F,GAGM5vE,EAAiBC,cAAjBD,aAEF6vE,EAAuB,SAAChhE,GAC5BugE,GAAkB,SAAC9hC,GAAO,SAAAtuC,OAAA4P,aAAS0+B,EAAQz+B,QAAO,SAACihE,GAAC,OAAKA,EAAEtyB,UAAY3uC,EAAO2uC,OAAO,KAAC,CAAE3uC,GAAM,GAChG,EAEMkhE,EAAsBh7C,uBAC1B,SAAClmB,GAA4B,QAAQA,GAASA,EAAOs9B,eAAerZ,MAAK,SAAC4qC,GAAE,OAAKA,EAAGtxB,QAAQ,GAAS,GACrG,IAgBI4jC,GAA0C,OAAX/H,QAAW,IAAXA,IAAe,IACjDp5D,QAAO,SAACihE,GAAC,OAAKZ,EAAoBp8C,MAAK,SAACx0B,GAAE,OAAKA,IAAOwxE,EAAEtyB,OAAO,GAAC,IAChE1qB,MAAK,SAACg9C,GAAC,OAAKC,EAAoBD,EAAE,IAC/BG,EAAoBF,GAAgC,OAAX9H,QAAW,IAAXA,IAAe,IAAI9qE,MAAK,SAAC2yE,GAAC,OAAKA,EAAEtyB,UAAYquB,IAAUhqE,GAAG,KAEnGquE,EAAY,GAAAlxE,OAAM4P,cAAgB,OAAXq5D,QAAW,IAAXA,IAAe,IAAIprE,KAAI,SAACizE,GAAC,OAAKA,EAAEtyB,OAAO,KAAGxS,KAAK,MAyEtEmlC,EAAW,SAAC7iC,GAChBwhC,EAAcxhC,EAChB,EAoCAvwC,qBAAU,WACHkrE,GAELmH,EACEh6D,aAAQ6yD,GAAa,SAACmI,GACpBA,EAAOzjC,SAAQ,SAACvnC,GACd,IAAI4lE,EAAgB5lE,EAAE+mC,eAAehvC,MACnC,SAACiI,GAAC,OAAKA,EAAEgnC,UAAwB,KAAZhnC,EAAE9H,OAAgB+yE,IAAe7oD,SAASpiB,EAAEo4C,QAAQ,IAGvEwtB,IACF5lE,EAAEgnC,UAAW,EACbhnC,EAAE9H,MAAQ0tE,EAAc1tE,MACxB8H,EAAEgmE,OAASJ,EAAcI,OACzBhmE,EAAE0lE,OAASE,EAAcF,OACzB1lE,EAAEqoC,cAAgBu9B,EAAcv9B,cAEpC,GACF,IAEJ,GAAG,CAACw6B,IAEJ,IAAAqI,EAA4CzC,KAAgB0C,EAAAz0E,YAAAw0E,EAAA,GAArDE,EAASD,EAAA,GAAI/2E,EAAM+2E,EAAA,GAAN/2E,OAAUw0E,EAAUuC,EAAA,GAExC,OACE/yE,gBAAC+pE,GAAiB,CAAA1uE,SAAA,CAChB2E,gBAACopE,GAAuB,CAACnpE,IAAK+yE,EAAU33E,SAAA,CACtCH,eAACgtB,KAA4B,CAAChsB,UAAU,qBAAqBkrB,WAAW,EAAM/rB,SAAC,iBAG/E2E,gBAACqpE,GAAuB,CAACntE,UAAU,gBAAeb,SAAA,CAChDH,eAAA,OAAAG,UACc,OAAXovE,QAAW,IAAXA,OAAW,EAAXA,EAAan1C,MAAK,SAACg9C,GAAC,OAAKA,EAAE3jC,eAAerZ,MAAK,SAAC4qC,GAAE,OAAKA,EAAGtxB,QAAQ,GAAC,MAClE1zC,eAACs0E,GAAqB,CACpB1/B,QAAoB,OAAX26B,QAAW,IAAXA,OAAW,EAAXA,EAAawI,SAAQ,SAACrrE,EAAGgJ,GAAK,OAAKhJ,EAAE+mC,cAAc,IAAEt9B,QAAO,SAACihE,GAAC,OAAoB,IAAfA,EAAE1jC,QAAiB,IAC/F6gC,eAnDW,SAAC/vB,EAASwzB,GACjC,IAAM7hE,EAASsgE,EAAehyE,MAAK,SAAC2yE,GAAC,OAAKA,EAAEtyB,UAAYN,CAAO,IACzD3M,EAASn7B,aAAQvG,GAAQ,SAAC28B,GAC9BA,EAAGY,UAAW,EACdZ,EAAGluC,MAAQ,GACXkuC,EAAGW,eAAeQ,SAAQ,SAAC+wB,GACrBA,EAAGgO,YAAcgF,IACnBhT,EAAGtxB,UAAW,EAElB,GACF,IACa,OAAb0iC,QAAa,IAAbA,KAAa,GAAA9vE,OAAA4P,aAAOugE,EAAetgE,QAAO,SAACihE,GAAC,OAAKA,EAAEtyB,UAAYjN,EAAOiN,OAAO,KAAC,CAAEjN,KAChFrkC,eAAeK,QAAQH,IAAkB28D,mBAAoB,GAC/D,EAuCcmE,YAAac,MAInBt1E,eAACsvE,GAAU,CACTC,YAAakH,EACbjH,qBA5Ec,WACtBh8D,eAAeK,QAAQH,IAAkBukE,cAAe,IACxD,IAAMC,EAAex7D,aAAQ6yD,GAAa,SAAC36B,GACzCA,EAAQX,SAAQ,SAACmjC,GAKf,OAJAA,EAAE3jC,eAAeQ,SAAQ,SAAC+wB,GACxBA,EAAGtxB,UAAW,EACdsxB,EAAGpgE,MAAQ,EACb,IACOwyE,CACT,GACF,IACA5jE,eAAeK,QAAQH,IAAkBuoD,eAAgBvnD,KAAKC,UAAUujE,IACxE1kE,eAAeK,QAAQH,IAAkB28D,mBAAoB,IAC7D/nD,EAAgB,yBAChBouD,EAAkB,IAClBe,EAAS,GACX,EA6DUhI,mBAAoBqH,KAEpBD,GACA72E,eAAA,OAAKgB,UAAU,gCAA+Bb,SAC5CH,eAACgF,KAAM,CAAC9E,QAAQ,kBAAkBc,UAAU,OAAOm3E,OAAK,EAAClzE,QAAS,kBAAMwyE,EAAShB,EAAe,EAACt2E,SAC9FmH,EAAa,SAAU,oBAMlCtH,eAACouE,GAAwB,CAAAjuE,WACpBovE,GACDzqE,gBAACgqE,GAAmB,CAACn0D,MAAO,CAAEy9D,UAAU,gBAAD9xE,OAAkBxF,EZvKzB,GYuK4D,QAAQX,SAAA,CApK1GovE,EACGp5D,QAAO,SAACihE,GAAC,OAAKA,EAAEtyB,UAAYquB,IAAUhqE,GAAG,IACzChF,KAAI,SAACizE,GAAC,IAAAiB,EAAA,OACLr4E,eAAC8tE,GAAe,CAEd/4D,aAAa,aACb/T,UAAW+L,KAAW,CAAE,kBAAmBwqE,IAAqBp3E,SAEhEH,eAACyxE,GAAY,CACXt7D,OAA8D,QAAxDkiE,EAAgB,OAAd5B,QAAc,IAAdA,OAAc,EAAdA,EAAgBhyE,MAAK,SAAC6zE,GAAE,OAAKA,EAAGxzB,UAAYsyB,EAAEtyB,OAAO,WAAC,IAAAuzB,IAAIjB,EAClEp0E,SAAUm0E,KACV,cAAA7wE,OAPiBkxE,GAQH,IAItBjI,EACGp5D,QAAO,SAACihE,GAAC,OAAKZ,EAAoBp8C,MAAK,SAACx0B,GAAE,OAAKA,IAAOwxE,EAAEtyB,OAAO,GAAC,IAChE1qB,MAAK,SAACg9C,GAAC,OAAKA,EAAE3jC,eAAe5mC,OAAS,CAAC,KACxC7M,eAAC8tE,GAAe,CAEd/4D,aAAa,iBACb/T,UAAW+L,KAAW,CACpB,kBAAmBuqE,IAClBn3E,SAEHH,eAACquE,GAA8B,CAACC,SAAU,EAAEnuE,SACzCovE,EACEp5D,QAAO,SAACihE,GAAC,OAAKZ,EAAoBp8C,MAAK,SAACx0B,GAAE,OAAKA,IAAOwxE,EAAEtyB,OAAO,GAAC,IAChE3gD,KACC,SAACizE,GAAC,IAAAmB,EAAAC,EAAA,OACCp9B,kBAAQg8B,EAAE3jC,iBACTzzC,eAACqJ,KAAKC,MAAK,CAETypE,QAAM,EACNtpE,QAAM,EACN7D,GAAIwxE,EAAE3jC,eAAe,GAAGu/B,UACxBxuE,KAAM4yE,EAAE9jC,UACRx3B,MAAOs7D,EAAE3jC,eAAe,GAAGu/B,UAC3BC,eACiF,QADnEsF,GAC2C,QAAvDC,EAAe,OAAd/B,QAAc,IAAdA,OAAc,EAAdA,EAAgBhyE,MAAK,SAAC6zE,GAAE,OAAKA,EAAGxzB,UAAYsyB,EAAEtyB,OAAO,WAAC,IAAA0zB,IAAIpB,GAAG3jC,eAAe,UAAE,IAAA8kC,OAAA,EAA/EA,EAAiF7kC,SAEnFj+B,MACE3Q,gBAACypE,GAAiB,CAAApuE,SAAA,CAChBH,eAACorB,KAAM,CACLlrB,QACEk3E,EAAEtyB,UAAYquB,IAAU5xB,aACpB,UACA61B,EAAEtyB,UAAYquB,IAAU9xB,eACxB,SACA+1B,EAAEtyB,UAAYquB,IAAUp0B,kBACxB,UACA,OAENtpC,MAAO2hE,EAAEtyB,UAAYquB,IAAU9xB,eAAiB,kBAAoB+1B,EAAE9jC,WACjE8jC,EAAE3jC,eAAe,GAAGu/B,WAE3BhzE,eAAA,QAAMgB,UAAU,8CAA6Cb,SAAA,IAAAmG,OACtD8wE,EAAE3jC,eAAe,GAAGy/B,aAAY,UAI3ClwE,SAAU,SAAC0G,GAAC,OAnF4BsuE,EAmFAtuE,EAAEyE,cAAc2N,MAnFG+oD,EAmFIn7D,EAAEyE,cAAc3E,aAlFhFkT,aACb+5D,EAAetgE,QAAO,SAACihE,GAAC,OAAKZ,EAAoBp8C,MAAK,SAACx0B,GAAE,OAAKA,IAAOwxE,EAAEtyB,OAAO,GAAC,KAC/E,SAAClQ,GACCA,EAAQX,SAAQ,SAACmjC,GAAC,OAChBA,EAAE3jC,eAAeQ,SAAQ,SAAC+wB,GAAE,OAAMA,EAAGgO,YAAcgF,EAAahT,EAAGtxB,SAAWmxB,EAAaG,EAAGtxB,QAAQ,GAAE,GAE5G,IAGKO,SAAQ,SAAC0P,GAAC,OAAKwzB,EAAqBxzB,EAAE,IAVnB,IAA8Bq0B,EAAmBnT,CAmF4B,GAAC,GAAAv+D,OA7BhF8wE,EAAE3jC,eAAe,GAAGu/B,WA+B/B,OAEwB,kBAAA1sE,OA9CVkxE,IAoJlBjI,EACEp5D,QAAO,SAACihE,GAAC,OApNEjhE,EAoNkBihE,GAnNjCtyB,UAAYquB,IAAUhqE,MAC5BgN,EAAOxR,YAAYmuE,WAAW,YAC9B0D,EAAoBp8C,MAAK,SAACx0B,GAAE,OAAKA,IAAOuQ,EAAO2uC,OAAO,IAHlC,IAAC3uC,CAoNoB,IAC/B1T,MAAM,EAAGk0E,EAA2B,OAAXpH,QAAW,IAAXA,OAAW,EAAXA,EAAa1iE,OAASoqE,GAC/C9yE,KAAI,SAACizE,EAAG1pE,GAAG,IAAA+qE,EAAA,OACVz4E,eAAC8tE,GAAe,CAEd/4D,aAAcqiE,EAAE9jC,UAChBtyC,UAAW+L,KAAW,CAAE,eAAgBqqE,EAAEtyB,UAAYquB,IAAUx4B,aAAcx6C,SAE9EH,eAACyxE,GAAY,CACXt7D,OAA8D,QAAxDsiE,EAAgB,OAAdhC,QAAc,IAAdA,OAAc,EAAdA,EAAgBhyE,MAAK,SAAC6zE,GAAE,OAAKA,EAAGxzB,UAAYsyB,EAAEtyB,OAAO,WAAC,IAAA2zB,IAAIrB,EAClEp0E,SAAUm0E,KACV,GAAA7wE,OAPM8wE,EAAEtyB,QAAO,KAAAx+C,OAAIkxE,GAQL,IAIrBb,GAAiBI,IAAuC,OAAhBC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBnqE,QAAS,GAClE7M,eAAC4uE,GAAqB,CAEpB75D,aAAc/U,eAAA,OAAK6N,IAAK08C,KAAWC,gBAAiBv8C,IAAI,gBAAiB9N,SAExE62E,EAAiB7yE,KAAI,SAACizE,GAAC,IAAAsB,EAAA,OACtB14E,eAACyxE,GAAY,CACXt7D,OAA8D,QAAxDuiE,EAAgB,OAAdjC,QAAc,IAAdA,OAAc,EAAdA,EAAgBhyE,MAAK,SAAC6zE,GAAE,OAAKA,EAAGxzB,UAAYsyB,EAAEtyB,OAAO,WAAC,IAAA4zB,IAAItB,EAClEp0E,SAAUm0E,GAAqB,aAAA7wE,OACbkxE,GAClB,KACF,iBAAAlxE,OAToBkxE,IAa1Bx3E,eAACgF,KAAM,CAAChE,UAAU,WAAWd,QAAQ,OAAOi4E,OAAK,EAAClzE,QAAS,kBAAM2xE,GAAiB,SAAC15B,GAAC,OAAMA,CAAC,GAAC,EAAC/8C,SAAA,OAAAmG,OACnFqwE,EAAgB,OAAS,OAAM,qBAOrD,E,wCCvSagC,GAA0Br3E,IAAOC,IAAGC,QAAAC,YAAA,kFAC7C44C,KAIAhrC,MAKSupE,GAAqBt3E,YAAO2G,KAAP3G,CAAWc,QAAAX,YAAA,mGACtBQ,MAMV42E,GAAkBv3E,IAAOC,IAAGsF,QAAApF,YAAA,sIACrCkmC,KAImB1lC,M,UC1BV62E,GAA6Bx3E,IAAOC,IAAGC,QAAAC,YAAA,4NAM3Byb,KAAgB9L,GAGhB8L,KAAgBhU,ICL5B6vE,GAAuB,SAAHz4E,GAAyC,IAAnC6mB,EAAM7mB,EAAN6mB,OAAQ6xD,EAAW14E,EAAX04E,YAC7C,OACEh5E,eAAC84E,GAA0B,CAAA34E,SACzBH,eAAC2jC,KAAQ,CAACj+B,UAAU,OAAOyhB,OAAQA,EAAQyc,mBAAoB,kBAAMo1C,GAAa,EAAC74E,SACjFH,eAACu2E,GAAW,OAIpB,ECAe0C,I,GAAAA,GAff,WACE,OACEj5E,eAAA,OACEY,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,KAAK,eACLC,UAAU,eACV6kC,QAAQ,YAAW1lC,SAEnBH,eAAA,QAAMmB,EAAE,wQAGd,ECNa+3E,GAA2B53E,YAAO0D,KAAP1D,CAAcE,QAAAC,YAAA,wQAQ/BQ,KAKED,MCZZm3E,GAAqB,SAAH74E,GAAsC,IAAhC84E,EAAgB94E,EAAhB84E,iBAC3BzD,EAAgChuE,qBAAW6tE,IAA3CG,4BAKR,OACE31E,eAACk5E,GAAwB,CAACl4E,UAAU,cAAc4C,KAAMw1E,EAAkBn0E,QALjD,WACzB0wE,GAA4B,EAC9B,EAGwGx1E,SACpGH,eAACi5E,GAAU,KAGjB,ECeaI,GAA2B,WACtC,IAAMr9D,EAAWC,cACjBxQ,EAAsD9D,qBAAW2J,MAAzDK,EAAgBlG,EAAhBkG,iBAAkB4B,EAAU9H,EAAV8H,WAAYhC,EAAW9F,EAAX8F,YACtC+nE,EAAkF3xE,qBAAW6tE,IAArFjlE,EAAY+oE,EAAZ/oE,aAAcmlE,EAAwB4D,EAAxB5D,yBAA0BY,EAA6BgD,EAA7BhD,8BAGhDptD,EAAyC3hB,aAAe,SAACC,GAAK,MAAK,CAACA,EAAMF,aAAcE,EAAM8G,iBAAiB,IAACuxC,EAAAz8C,YAAA8lB,EAAA,GAAzG5hB,EAAYu4C,EAAA,GAAEvxC,EAAgBuxC,EAAA,GAC/B8nB,EAAYrgE,EAAa,iBAAkB,kBAC3CiyE,EAAgBjyE,EAAa,wBAAyB6lE,IAAwBqM,gBAC9EC,EAAoF,MAA/DnrE,EAAiB,+BAC5CrL,EAAwCC,mBAAsB,CAAE0T,QAAS,GAAI2nC,WAAW,IAAQp7C,EAAAC,YAAAH,EAAA,GAAzFywB,EAAYvwB,EAAA,GAAEu2E,EAAev2E,EAAA,GAE5BgkD,EAAgB5+B,eAAhB4+B,YAERr1C,EACEC,cAAS,kBAAMo1D,aAAqB,IAAIn1D,KAAwB,IAACE,EAAAJ,EAD3DK,KAAsBwnE,QAAlB,IAAAznE,EAAqC,CAAC,EAACA,GAAnCK,aAAyEqnE,EAAqB9nE,EAA9Be,QAEhF+vD,EACE7wD,cAAS,kBAAM40D,aAAe,IAAI30D,KAAwB,IAAC6nE,EAAAjX,EADrDzwD,KAAsB2nE,QAAlB,IAAAD,EAAuC,CAAC,EAACA,GAArCtnE,aAA2EwnE,EAAuBnX,EAAhC/vD,QA2B5EmnE,EAAe39C,sBAAW,eAAA/7B,EAAA6X,aAAAC,eAAAC,MAAC,SAAAC,EAAO0B,GAA+B,IAAAigE,EAAAzlC,EAAA,OAAAp8B,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAC9Ck1C,aAAe9zC,GAAQ,OAiBvC,OAjBDw6B,EAAQ97B,EAAA6V,KACd44B,EAAY3S,EAASniC,MAAO,CAC1BmzC,WAAY,CACV/yC,OAAQ+hC,EAAS9hC,OACjB3P,YAAayxC,EAAShiC,YACtBoiC,QAAgB,OAAP56B,QAAO,IAAPA,GAAoB,QAAbigE,EAAPjgE,EAAS87D,mBAAW,IAAAmE,OAAb,EAAPA,EAAsBlE,cAC/BxjE,aAAciiC,EAASjiC,aACvB4iC,SAAUX,EAASW,YAIvB3hC,eAAeK,QAAQH,IAAkBwmE,cAAe1lC,EAAS5hC,WAAW0E,YAC5E9D,eAAeK,QAAQH,IAAkBymE,UAAW3lC,EAASW,SAAS79B,YACtE9D,eAAeK,QAAQH,IAAkB0mE,aAAc1lE,KAAKC,UAAU6/B,EAAS9hC,SAE/EiuB,YAAW,WACT05C,GACF,GAAG,KAAI3hE,EAAAG,OAAA,SAEA27B,GAAQ,wBAAA97B,EAAAI,OAAA,GAAAR,EAAA,KAChB,gBAAAS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,EArB+B,GAqB7B,IAEGmhE,EAAc,WAClB,IAAI3gE,EAAMlG,eAAeC,QAAQC,IAAkB4mE,eAC/CC,EAAc,EAClB,GAAI7gE,GAAe,KAARA,EAAY,CACrB,IAAI8gE,EAAa9/D,SAASM,eAAe,WAAatB,GAClD+gE,EAAqB,EAE2C,SAAhEjnE,eAAeC,QAAQC,IAAkBC,qBAA+B8mE,EAAqB,KAE7FD,GAAcA,EAAWE,eAAiBF,EAAWE,cAAcA,gBACrEH,EAAcC,EAAWE,cAAcA,cAAcC,UAAYF,GAEnEjnE,eAAeoB,WAAWlB,IAAkB4mE,cAC9C,CAEAlmE,OAAOC,SAAS,CACdC,IAAKimE,EACLhmE,SAAU,QAEd,EAKA,OAHAlQ,qBAAU,WACRqjE,GAAqBC,EAAW3rD,EAAS4lB,SAC3C,GAAG,CAAC+lC,IAEF3nE,eAAC24E,GAAuB,CAAAx4E,SACtB2E,gBAACs1D,KAAM,CAAC/pD,MAAOs3D,EAAUxnE,SAAA,CACtBs5E,GACCz5E,eAAC2rC,KAAW,CACVt7B,MAAM,cACNm0B,YAAyB,OAAZ9Q,QAAY,IAAZA,OAAY,EAAZA,EAAc9c,QAC3BhT,KAAkB,OAAZ8vB,QAAY,IAAZA,OAAY,EAAZA,EAAc6qB,UACpB94C,OAAQ,kBAAMi0E,EAAe/4E,wBAAC,CAAC,EAAI+yB,GAAY,IAAE6qB,WAAW,IAAQ,IAGxEv+C,eAAC64E,GAAe,CAAA14E,SACboT,EAAa,GACZvT,eAACqW,KAAM,CACLmyB,oBAAoB,EACpBj3B,YAAaA,EACbgC,WAAYA,EACZ+C,kBAAmB,SAACy0C,GAAU,OAC5Bp5C,GAAiB,SAACnK,GAChBA,EAAM+J,YAAcw5C,EAAa,CACnC,GAAE,MAKVjmD,gBAACkD,KAAG,CAACiB,WAAS,EAAA9I,SAAA,CACZH,eAAC44E,GAAkB,CAACznE,GAAI,EAAEhR,SACxBH,eAACu2E,GAAW,MAEdv2E,eAACiI,KAAG,CAAA9H,SACFH,eAACoQ,KAAW,CACVC,MACEvL,gBAAAD,YAAA,CAAA1E,SAAA,CACEH,eAACm5E,GAAkB,CAACC,kBAAgB,IAAG,IAAEzR,KAG7C9+D,aAAc4wE,EACdzoE,kBAAgB,EAChBV,cAAe0pE,EACfzpE,aAAcA,EACdE,eAAgB,kBACd3L,gBAAAD,YAAA,CAAA1E,SAAA,CACEH,eAACqnD,KAAgB,CAACx0C,QAASknE,EAAyB1uC,MAAOyuC,IAC3D95E,eAACwnD,KAAc,CAAC30C,QAAS+mE,EAAuBvuC,MAAOsuC,MACtD,EAEL7oE,eACG2oE,EAEG,SAAC/nE,GAAgB,OACf1R,eAAC+kC,KAAI,CAAC/jC,UAAU,kBAAkBgkC,GAAG,IAAI//B,QAAS,kBAzHvC,SAACyM,GAC9B,IAAMkpE,EAA6Bn0D,mBAASnY,EAAiB,0CAE7D,IAAoB,OAAhBoD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7E,QAAS,IAAqB,OAAhB6E,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7E,SAAU+tE,EAA4B,CAC1F,IAAMrjC,EAAG,sDAAAjxC,OAAyDoL,EAAiB4gC,QACnFg6B,GAAY/0B,GACZ5lC,GAAiB,SAACnK,GAChBA,EAAMkK,iBAAmB,EAC3B,GACF,MAAO,IAAoB,OAAhBA,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7E,QAAS+tE,EAA4B,CAChE,IAAIC,EAAcvzE,EAAa,0BAA2B,iDAC1DuzE,EAAcA,EAAYj/D,QAAQ,WAAYg/D,GAC9ClB,EAAgB,CACd9iE,QAASikE,EACTt8B,WAAW,GAEf,MACEm7B,EAAgB,CACd9iE,QAAS,sCACT2nC,WAAW,GAGjB,CAmG4Eu8B,CAAuBppE,EAAiB,EAACvR,SAC/F2E,gBAAA,QAAM9D,UAAU,eAAcb,SAAA,CAC5BH,eAACw2C,KAAoB,IACrBx2C,eAAA,QAAMgB,UAAU,cAAab,SAAEmH,EAAa,kBAAmB,qBAE5D,EAPT,KAUNuJ,kBAAmB0oE,EACnBroE,mBAAoB,CAAEC,GAAI,GAAIE,GAAI,EAAGnJ,GAAI,UAI/ClI,eAACK,KAAoB,CAAAF,SACnBH,eAACuhC,KAAgB,CAACzI,wBAAwB,MAE5C94B,eAAC+4E,GAAoB,CACnB5xD,OAAQuuD,EACRsD,YAAa1C,QAKvB,EAEayE,GAAoB,WAC/B,OACE/6E,eAAC+b,KAA0B,CAAA5b,SACzBH,eAACy1E,GAA2B,CAAAt1E,SAC1BH,eAACq5E,GAAwB,OAIjC,E,oFCvKM2B,GAAiB,SAAH16E,GAAsD,IAAhDooB,EAAQpoB,EAARooB,SAAahoB,EAAK4rB,YAAAhsB,EAAAisB,IAO1C,OANAllB,mBAAQ,WACFqhB,GACFwpB,aAAYxpB,EAEhB,GAAG,CAACA,IAEG1oB,eAACi7E,IAAKt6E,YAAA,GAAKD,GACpB,EAEMw6E,GAAqB,SAAHp5E,GAAkF,IAA5E4mB,EAAQ5mB,EAAR4mB,SAAUu/C,EAAYnmE,EAAZmmE,aAAc9nE,EAAQ2B,EAAR3B,SAAaO,EAAK4rB,YAAAxqB,EAAA2xD,IACtEvqC,EAA0B3hB,aAAe,SAACC,GAAK,MAAK,CAACA,EAAMwmB,MAAOxmB,EAAMqgB,SAAS,GAAEpgB,MAAQo4C,EAAAz8C,YAAA8lB,EAAA,GAApF8E,EAAK6xB,EAAA,GAAEh4B,EAAQg4B,EAAA,GACtB58C,EAA0BC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAA3Ck4E,EAAKh4E,EAAA,GAAEi4E,EAAQj4E,EAAA,GAatB,OAXAuyD,KAEArxD,qBAAU,WACI,OAAZ4jE,QAAY,IAAZA,KAAch0B,SAAQ,SAACvlB,GACjB7G,EAAS6G,IACX0sD,GAAS,EAGb,GACF,GAAG,CAACptD,EAAOi6C,EAAcpgD,IAGvB7nB,eAACg7E,GAAcr6E,wBAAA,CAAC+nB,SAAUA,GAAchoB,GAAK,IAAAP,SACzCg7E,EAGAn7E,eAACq7E,WAAQ,CAACC,SAAUt7E,eAACoV,IAAM,IAAIjV,SAC7BH,eAACK,KAAoB,CAAAF,SAAEA,MAHzBH,eAACooE,GAAS,CAACxxD,QAASuJ,QAQ5B,EAEMo7D,GAAc,SAAHl5E,GAA4C,IAAtClC,EAAQkC,EAARlC,SAAaO,EAAK4rB,YAAAjqB,EAAAm5E,IACvC,OACEx7E,eAACi7E,IAAK,CAAC32C,KAAM5jC,EAAM4jC,KAAKnkC,SACtBH,eAACq7E,WAAQ,CAACC,SAAUt7E,eAACoV,IAAM,IAAIjV,SAC7BH,eAACK,KAAoB,CAAAF,SAAEA,OAI/B,EAEas7E,GAAM,WACjB,IAAAC,EAAqCn0E,aAAe,SAACC,GAAK,MAAK,CAACA,EAAMumB,UAAWvmB,EAAMmmB,gBAAgB,IAACguD,EAAAv4E,YAAAs4E,EAAA,GAAjG3tD,EAAS4tD,EAAA,GAAEhuD,EAAeguD,EAAA,GACjCC,ECtF+B,WAC/B,IAAA1yD,EAAsD3hB,aACpD,SAACC,GAAK,MAAK,CAACA,EAAMomB,WAAYpmB,EAAMmmB,gBAAiBnmB,EAAM2mB,eAAe,GAC1E1mB,MACDo4C,EAAAz8C,YAAA8lB,EAAA,GAHM0E,EAAUiyB,EAAA,GAAElyB,EAAekyB,EAAA,GAAE1xB,EAAc0xB,EAAA,GAKlD/tC,EAA2BC,aAAQoG,aAAAC,eAAAC,MAAC,SAAAC,IAAA,OAAAF,eAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,WAC9B+U,GAA8B,OAAVC,QAAU,IAAVA,KAAYL,OAAM,CAAA7U,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EAClCuV,IAAgB,wBAAAzV,EAAAI,OAAA,GAAAR,EAAA,KAEvB,CAACqV,IAEJ,MAAO,CAAE9a,QANMf,EAAPe,QAMU4S,MANI3T,EAAL2T,MAOnB,CDyEwCo2D,GAArBC,EAAgBF,EAAzB/oE,QACR,GAAIipE,EACF,OAAO97E,eAACoV,IAAM,CAACiiB,SAAO,IAExB,IAAM0kD,EAAMC,gBAAK,kBAAM,mDAAqB,IACtCC,EAAqBD,gBAAK,kBAAM,mDAAoC,IAC1E,OACEh8E,eAAA,OAAAG,SACG4tB,GACC/tB,eAACk8E,KAAY,CAACC,cAAeh5D,WAAUynB,OAAQ,QAASwxC,SAAUruD,EAAU5tB,SAC1E2E,gBAACqwD,GAAmB,CAAAh1D,SAAA,CAClBH,eAAC0qE,KAAM,CAAC2R,cAAc,2BACtBv3E,gBAACwW,IAAqB,CAAAnb,SAAA,CACpBH,eAACm2D,GAAiB,IAClBrxD,gBAACw3E,KAAa,CAAAn8E,SAAA,CACZH,eAAC8zD,EAAW,IACZhvD,gBAACy3E,IAAM,CAAAp8E,SAAA,CACLH,eAACi7E,IAAK,CAAC32C,KAAK,SAAQnkC,SAClBH,eAAC+qE,GAAK,MAER/qE,eAACi7E,IAAK,CAAC32C,KAAK,UAASnkC,SACnBH,eAACupE,GAAc,MAEjBvpE,eAACi7E,IAAK,CAAC32C,KAAK,SAAQnkC,SAClBH,eAACqsE,GAAa,MAEhBrsE,eAACi7E,IAAK,CAAC32C,KAAK,WAAUnkC,SACpBH,eAACosE,GAAO,MAEVpsE,eAACu7E,GAAW,CAACj3C,KAAK,QAAOnkC,SACvBH,eAAC+7E,EAAG,MAEN/7E,eAACg7E,GAAc,CAACtyD,SAAU4lB,KAAYY,UAAW5K,KAAK,aAAYnkC,SAChEH,eAACkvC,GAAS,OAEV4sC,GAAoBnuD,EACpB3tB,eAACikB,KAAqB,CAAA9jB,SACpB2E,gBAACy3E,IAAM,CAAAp8E,SAAA,CACLH,eAACk7E,GAAkB,CACjBxyD,SAAU4lB,KAAYO,YACtBvK,KAAM,CAACgjB,KAAUC,YACjB0gB,aAAc,CAACngD,IAAM00D,sBACrBC,OAAK,EAAAt8E,SAELH,eAACytE,GAAe,MAElBztE,eAACk7E,GAAkB,CACjBxyD,SAAU4lB,KAAYM,UACtBtK,KAAM,CAACgjB,KAAU1Y,WACjBq5B,aAAc,CAACngD,IAAM40D,iBACrBD,OAAK,EAAAt8E,SAELH,eAACqtE,GAAa,MAEhBrtE,eAACk7E,GAAkB,CACjBxyD,SAAU4lB,KAAYQ,IACtBxK,KAAM,CAACgjB,KAAUxY,KACjBm5B,aAAc,CAACngD,IAAM60D,oBAAoBx8E,SAEzCH,eAACi8E,EAAkB,MAErBj8E,eAACk7E,GAAkB,CACjBxyD,SAAU4lB,KAAYC,UACtBjK,KAAM,CAAC,aAAc,KACrB2jC,aAAc,CAACngD,IAAM60D,oBACrBF,OAAK,EAAAt8E,SAELH,eAACuuC,GAAS,MAEZvuC,eAACk7E,GAAkB,CACjBxyD,SAAU4lB,KAAYE,IACtBlK,KAAM,CAAC,WACP2jC,aAAc,CAACngD,IAAM80D,cACrBH,OAAK,EAAAt8E,SAELH,eAAC+6E,GAAiB,MAEpB/6E,eAAC68E,IAAQ,CAAC73C,GAAG,WAIjBhlC,eAAC68E,IAAQ,CACP73C,GAAI,CACFpD,SAAU,SACVxlB,OAAO,cAAD9V,OAAgB8N,OAAO4H,SAAS4lB,UAAQt7B,OAAG8N,OAAO4H,SAASI,0BAYzF,EE7KA0gE,IAASC,OACP/8E,eAAC+/C,IAAMi9B,WAAU,CAAA78E,SACfH,eAACy7E,GAAG,MAEN/gE,SAASM,eAAe,Q,6NCmQbijB,EAAqB,SAAAg/C,GAAAC,YAAAj/C,EAAAg/C,GAAA,IAAAE,EAAAC,YAAAn/C,GAOhC,SAAAA,EAAYiJ,GAAwB,IAADm2C,EASsB,OATtBrrB,YAAA,KAAA/zB,IACjCo/C,EAAAF,EAAAG,KAAA,OAPFC,SAAG,EAAAF,EACHj/C,6BAAuB,EAAAi/C,EACvBl/C,qBAAe,EAAAk/C,EACfn/C,wBAAkB,EAAAm/C,EAClBG,qBAAe,EAIbH,EAAKloC,SAAWjO,EAAMr6B,OACtBwwE,EAAK3qE,OAAS,CACZnP,KAAM,YACNqB,MAAO,YACPM,UAAWA,IAAUC,KAEvBk4E,EAAKn/C,oBAAqB,EAC1Bm/C,EAAKE,IAAMr2C,EAAM/iC,KAAI,SAAC+P,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,IAAC8zE,CACzD,CAAC,OAAAtrB,YAAA9zB,EAAA,CAjB+B,CAAS6zB,KA6G9B9/C,EAAqB,SAAAyrE,GAAAP,YAAAlrE,EAAAyrE,GAAA,IAAAC,EAAAN,YAAAprE,GAChC,SAAAA,EAAYiP,EAAmB8pC,EAAqBt4C,EAAkBkrE,GAAiC,IAADC,EAAAC,EAAAC,EAAAC,EAS1C,OAT0C/rB,YAAA,KAAAhgD,IACpG+rE,EAAAL,EAAAJ,KAAA,OACKnoC,SAAmB,OAARl0B,QAAQ,IAARA,IAAY+8D,IAC5BD,EAAKnrE,WAAuB,OAAVm4C,QAAU,IAAVA,IAAc,EAChCgzB,EAAKrrE,OAAS,CACZnP,KAAkB,QAAdq6E,EAAQ,OAANnrE,QAAM,IAANA,OAAM,EAANA,EAAQlP,YAAI,IAAAq6E,IAAI,YACtB14E,UAA4B,QAAnB24E,EAAQ,OAANprE,QAAM,IAANA,OAAM,EAANA,EAAQvN,iBAAS,IAAA24E,IAAI,EAChCj5E,MAAoB,QAAfk5E,EAAQ,OAANrrE,QAAM,IAANA,OAAM,EAANA,EAAQ7N,aAAK,IAAAk5E,IAAI,cAE1BC,EAAK7rB,cAA6B,OAAbyrB,QAAa,IAAbA,IAAiBM,IAAoBF,CAC5D,CAAC,OAAAhsB,YAAA//C,EAAA,CAX+B,CAAS8/C,KA2CzBgO,EAAU,SAAVA,GAAU,OAAVA,EAAU,cAAVA,EAAU,cAAVA,EAAU,UAAVA,EAAU,0BAAVA,CAAU,MAmBV3gB,EAAa,SAAbA,GAAa,OAAbA,EAAa,UAAbA,EAAa,UAAbA,CAAa,K,s9DC7blByG,EAAkB,WAClByP,EAAqB,WAErBhsB,EAAkB,CAAC,GAAI,GAAI,KAE3B4oB,EAAoB,GACpB+rB,EAAwB,GAExB/rE,EAA0B,EAC1B64D,EAAW,WACXne,EAAS,SAETnrC,EAA0B,EAC1BR,EAAuB,EACvBS,EAAwB,GACxB26B,EAA6B,CAAC,eAAgB,MAAO,mBAAoB,gBACzEh8C,EAAwB,2CACxBgpC,EAAuB,GACvB2O,EAAc,6BACdd,EAAa,2BACb0xB,EAAqB,uBACrBC,EAAM,OACNsV,EAAqB,wBAOrB5iB,EAAyD,CACpE1oD,WAAY,EACZuiC,SAAU,GACVgpC,aAAa,EACbC,gBAAgB,EAChBC,wBAAwB,EACxBd,IAAK,GACLrrB,cAAe,CACbosB,sBAAsB,EACtBC,yBAAyB,GAE3BzI,YAAa,CACX0I,oBAAoB,EACpBzI,cAAe,GACfrjE,OAAQ,GACR+rE,UAAW,KAIF5I,EAAsCl1E,wBAAA,GAC9C26D,GAA8B,IACjC8iB,gBAAgB,EAChBtI,YAAWn1E,wBAAA,GACN26D,EAA+Bwa,aAAW,IAC7C0I,oBAAoB,MAIXvI,EAA+Et1E,YAAA,GACvF26D,GAGQoE,EAA+D,CAC1E,CAAEC,YAAa,UAAW/6D,MAAO,WAGtBo8D,EAAuE,CAClF,CAAErB,YAAa,OAAQ/6D,MAAO,qDAC9B,CAAE+6D,YAAa,QAAS/6D,MAAO,eAC/B,CAAE+6D,YAAa,cAAe/6D,MAAO,2BACrC,CAAE+6D,YAAa,QAAS/6D,MAAO,eAE/B,CAAE+6D,YAAa,iBAAkB/6D,MAAO,wBACxC,CAAE+6D,YAAa,UAAW/6D,MAAO,0EAEjC,CAAE+6D,YAAa,YAAa/6D,MAAO,cACnC,CAAE+6D,YAAa,WAAY/6D,MAAO,aAClC,CAAE+6D,YAAa,sBAAuB/6D,MAAO,0BAGlCu8D,EAAwD,CACnEhvC,UAAW,CAAC,QAAS,QAAS,OAAQ,eACtCoxC,oBAAqB,CAAC,eACtB9D,SAAU,CAAC,iBAAkB,WAC7BtuC,KAAM,CAAC,MAAO,OAAQ,gBAGX40C,EAAuC,yBACvCD,EAA2B,oBAE3BpyD,EAAoB,CAC/BuoD,eAAgB,gBAChBoU,mBAAoB,oBACpBqO,UAAW,WACXzG,cAAe,eACfiC,cAAe,eACfE,aAAc,cACdD,UAAW,WACX1lE,kBAAmB,mBACnBkqE,cAAe,gBACf5W,gBAAiB,qBACjBH,kBAAmB,oBACnBxhD,gCAAiC,8BACjC8nB,cAAe,eACfosC,cAAe,cACf3mE,kBAAmB,mBAGRirE,EAAY,CACvBC,aAAc,gBAGHZ,EAAuB,CAClCK,sBAAsB,EACtBC,yBAAyB,GAGd1zE,EAAS,CACpBi0E,SAAU,GACVh0E,iBAAkB,EAClBwvC,WAAY,EACZjwB,KAAM,GACN1M,aAAc,KACdu4C,YAAa,KACb6oB,MAAO,KACPv0D,aAAc,KACdknC,OAAQ,MAIGnvB,EAAkB,CAC7B0D,cAAe,EACfzD,OAAQ,IAUGw8C,EAAqB,CAChCC,eAAgB,EAChBC,wBAAyB,EACzBC,yBAA0B,EAC1BC,kBAAmB,EACnBC,2BAA4B,EAC5BC,8BAA+B,GAGpBC,EAAoB,CAAC,CAAE/6E,KAAM,gBAAiBg7E,UAAW,CAAC,mBAC1DC,EAA0B,CAAC,iBAE3BhX,EAAe,CAC1B7T,SAAU,uCACVC,UAAW,wCACX6qB,aAAc,iCACdC,cAAe,mCAGC3jB,EAA+B,SAA/BA,GAA+B,OAA/BA,IAA+B,eAA/BA,IAA+B,iBAA/BA,IAA+B,aAA/BA,IAA+B,0BAA/BA,IAA+B,4BAA/BA,IAA+B,4BAA/BA,IAA+B,kCAA/BA,IAA+B,sCAA/BA,IAA+B,4CAA/BA,IAA+B,gDAA/BA,IAA+B,kDAA/BA,IAA+B,8BAA/BA,CAA+B,MAepC4jB,EAAwB,EAExBC,EAAgB,CAK3Bt8E,KAAM,2BACNqB,MAAO,YACPM,UAAW,EACXP,YAAa,SAGF4lD,EAAa,CACxBC,gBAAiB,8CACjBE,cAAe,0BAGJyiB,EAA0B,CACrCC,WAAY,mEACZI,aAAc,0DACdsS,YAAa,gDACbtG,eAAgB,qEAGLvM,EAAc,CACzBC,MAAO,EACP/kB,IAAK,GAGMjtB,EAAkC,EAEnCyE,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,oCAApBA,EAAoB,kCAApBA,CAAoB,MAKnBsD,EAAgB,MAEX/7B,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,YAAlBA,EAAkB,YAAlBA,CAAkB,MAKvBqvB,EAAmB,GAEdwpD,EAAU,SAAVA,GAAU,OAAVA,EAAU,YAAVA,EAAU,gBAAVA,EAAU,UAAVA,CAAU,MAKVC,GAAK,SAALA,GAAK,OAALA,IAAK,qCAALA,IAAK,uCAALA,IAAK,mCAALA,IAAK,qCAALA,IAAK,2BAALA,CAAK,MAQVC,IAAqBC,EAAA,GAAAprC,YAAAorC,EAC/BF,GAAMG,gBAAkB,CAAC,kBAAmB,UAAQrrC,YAAAorC,EACpDF,GAAMI,iBAAmB,CAAC,mBAAoB,UAAQtrC,YAAAorC,EACtDF,GAAMK,eAAiB,CAAC,iBAAkB,UAAQvrC,YAAAorC,EAClDF,GAAMM,gBAAkB,CAAC,kBAAmB,UAAQxrC,YAAAorC,EACpDF,GAAMO,WAAa,CAAC,aAAc,UAAQL,GAGhCM,GAAsB,CAAC,EAAG,EAAG,IAExBC,GAA0B,SAA1BA,GAA0B,OAA1BA,EAA0B,oCAA1BA,EAA0B,oCAA1BA,EAA0B,8CAA1BA,EAA0B,gEAA1BA,EAA0B,sCAA1BA,EAA0B,4CAA1BA,EAA0B,kCAA1BA,EAA0B,gCAA1BA,EAA0B,oCAA1BA,EAA0B,8BAA1BA,EAA0B,0BAA1BA,EAA0B,sCAA1BA,EAA0B,sCAA1BA,CAA0B,MAgB/BvJ,GAAgC,GAChC3zD,GAAiB,CAC5BE,YAAa,4BACbD,WAAY,4BAGDoxD,GAAgC,EAEhCf,GAAoB,CAAC,MAAO,GAAI,GAAI,IAAK,IAAK,IAAK,KAE9C6M,GAAa,SAAbA,GAAa,OAAbA,IAAa,8CAAbA,IAAa,kEAAbA,IAAa,kEAAbA,CAAa,MAMlB/I,GAAiB,CAC5B+I,GAAcC,6BACdD,GAAcE,mBACdF,GAAcG,6B,qICvRT,SAASC,EAAWC,EAAUC,GACnC,GAAIC,kBAAQF,IAAaE,kBAAQD,GAC/B,OAAOA,CAEX,CAEO,IAAME,EAAa,SAAUC,EAAWC,EAAiBC,GAC9D,IAAMC,EAAUF,EAAW30E,WAAU,SAACyH,GAAI,OAAKmtE,EAAYntE,KAAUmtE,EAAYF,EAAO,IACxF,GAAIG,EAAU,EACZ,OAAOF,EAGT,IAAMG,EAAiBrrE,YAAOkrE,GAG9B,OAFAG,EAAkBD,GAAWE,oBAAU,CAAC,EAAGJ,EAAWE,GAAUH,EAAQL,GAEjES,CACT,EAEaE,EAAa,SAAUv8C,EAAmBw8C,EAAkBL,GACvE,IAAMxpC,EAAM3hC,YAAOwrE,GAWnB,OAVAx8C,EAAa+O,SAAQ,SAACktC,GACpB,IAAMG,EAAUI,EAAYj1E,WAAU,SAACyH,GAAI,OAAKmtE,EAAYntE,KAAUmtE,EAAYF,EAAO,IACrFG,EAAU,EACZzpC,EAAOvD,KAAK6sC,GAIdtpC,EAAOypC,GAAWE,oBAAU,CAAC,EAAGL,EAAQO,EAAYJ,GAAUR,EAChE,IAEOjpC,CACT,E,SCPa3e,E,MAAkBtU,IAAsB,SAACC,EAAKC,GAAG,MAAM,CAClE/R,SAAU,GACVqyB,YAAa,SAAC8B,GAAqB,OACjCriB,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GAAW6G,GAAK,IAAEuL,SAAU0uE,EAAWj6E,EAAMuL,SAAUm0B,GAAO,SAAChzB,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,KAAC,GAAI,EAChH80B,eAAe,WAAD,IAAAsjD,EAAAxpE,YAAAC,cAAAC,MAAE,SAAAC,EAAOpE,GAAkB,IAAA4pB,EAAA8jD,EAAAC,EAAAC,EAAAC,EAAA,OAAA3pE,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAMG,OANHF,EAAAC,KAAA,GAE/BmlB,EAAU,IAAIG,IAAsB,CAAC/pB,KACnCgqB,oBAAqB,EAC7BJ,EAAQK,iBAAkB,EAC1BL,EAAQM,yBAA0B,EAClCN,EAAQ0/C,gBAAkB,CAACtpE,EAAKpL,SAAQ4P,EAAAE,KAAA,EAG9BylB,YAAeP,GAAQ,OAAA8jD,EAAAlpE,EAAA6V,KAAAszD,EAAAz+E,YAAAw+E,EAD/BvvE,MAAK,IAAGyvE,EAAWD,EAAA,MAIbE,EAAWphF,wBAAA,GACZmkB,IAAM/R,SAAStO,MAAK,SAACw+D,GAAC,OAAKA,EAAEn6D,QAAQS,aAAe2K,EAAKpL,QAAQS,UAAU,KAAC,IAC/Eof,YAAam5D,EAAYn5D,cAE3B9D,GAAI,SAACrd,GAAK,OAAA7G,wBAAA,GACL6G,GAAK,IACRuL,SAAUmuE,EAAWa,EAAav6E,EAAMuL,UAAU,SAACmB,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,KAAC,KAEvFmP,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAED8M,QAAQC,MAAM,+BAA8B,yBAAA/M,EAAAI,OAAA,GAAAR,EAAA,mBAE/C,gBAAAS,GAAA,OAAA4oE,EAAA1oE,MAAA,KAAAC,UAAA,EAxBc,GAyBfuoB,qBAAsB,SAACvtB,GAAsB,OAC3C2Q,GAAI,SAACrd,GACH,IAAQ+D,EAAmC2I,EAAnC3I,kBAAmBod,EAAgBzU,EAAhByU,YACrBq5D,EAAcrhF,wBAAA,GACf6G,EAAMuL,SAAStO,MAAK,SAACyP,GAAI,OAAKA,EAAKpL,QAAQS,aAAegC,CAAiB,KAAC,IAC/Eod,YAAaA,IAEf,OAAAhoB,wBAAA,GAAY6G,GAAK,IAAEuL,SAAUmuE,EAAWc,EAAgBx6E,EAAMuL,UAAU,SAACmB,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,KAC3G,GAAE,EACJowC,kBAAmB,SAAClxC,GAAyB,OAC3Coc,GAAI,SAACrd,GACH,OAAA7G,wBAAA,GAAY6G,GAAK,IAAEuL,SAAUmuE,EAAWz4E,EAAajB,EAAMuL,UAAU,SAACmB,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,KACxG,GAAE,EACJo1C,8BAA+B,SAACzqC,GAA+B,OAC7D2Q,GAAI,SAACrd,GACH,IAAQ+D,EAAwC2I,EAAxC3I,kBAAmBkyC,EAAqBvpC,EAArBupC,iBACrBukC,EAAcrhF,wBAAA,GACf6G,EAAMuL,SAAStO,MAAK,SAACyP,GAAI,OAAKA,EAAKpL,QAAQS,aAAegC,CAAiB,KAAC,IAC/EkyC,iBAAgB98C,wBAAA,GAAO88C,GAAgB,IAAEuB,YAAY,MAEvD,OAAAr+C,wBAAA,GAAY6G,GAAK,IAAEuL,SAAUmuE,EAAWc,EAAgBx6E,EAAMuL,UAAU,SAACmB,GAAI,OAAKA,EAAKpL,QAAQS,UAAU,KAC3G,GAAE,EACL,G,0MC1EYs7B,EAAiB,SAAjBA,EAAkBR,EAAoBC,GACjD,IAAM29C,EAAY59C,EAAM5/B,MAAK,SAAC4lB,GAC5B,OAAOA,EAAKia,OAASA,CACvB,IAEA,OAAI29C,EACI,GAAN37E,OAAA4P,YAAW2uB,EAAeR,EAAOC,EAAKwjC,UAAU,EAAGxjC,EAAK49C,YAAY,QAAM,CAAED,IAGvE,EACT,EASa3lE,EAAiB,WAC5B9I,eAAeoB,WAAWlB,IAAkBukE,eAC5CzkE,eAAeoB,WAAWlB,IAAkBuoD,gBAC5CzoD,eAAeoB,WAAWlB,IAAkB28D,oBAC5C78D,eAAeoB,WAAWlB,IAAkBwmE,eAC5C1mE,eAAeoB,WAAWlB,IAAkBymE,WAC5C3mE,eAAeoB,WAAWlB,IAAkB0mE,cAC5C5mE,eAAeoB,WAAWlB,IAAkB4mE,eAC5C9mE,eAAeoB,WAAWlB,IAAkBC,kBAC9C,EAEa4I,EAAsB,WACjC,MAAO,CACLhL,YAAakV,SAASjT,eAAeC,QAAQC,IAAkBwmE,iBAAmB,EAClF1oE,gBAAiBiV,SAASjT,eAAeC,QAAQC,IAAkBymE,aAAeloB,IAClFxgD,cAAe+c,YAAUhb,eAAeC,QAAQC,IAAkB0mE,gBAAkByF,IAExF,EAEasC,EAA4B,SAACjuE,GACb,kBAAvBA,EAAKkuE,SAAS7+E,MAChB+Y,GAEJ,C,uOClCaqqD,EAAc,eAAArmE,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAO0B,GAA8B,OAAA5B,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAG,OAAA,SAC1D1B,YAAS,gCAA2D,CACzEC,KAAM4C,KACN,wBAAAtB,EAAAI,OAAA,GAAAR,EAAA,KACH,gBAJ0BS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KAMdiuD,EAAoB,eAAArlE,EAAAqW,YAAAC,cAAAC,MAAG,SAAAe,EAAOY,GAA8B,OAAA5B,cAAAK,MAAA,SAAAa,GAAA,cAAAA,EAAAX,KAAAW,EAAAV,MAAA,cAAAU,EAAAT,OAAA,SAChE1B,YAAS,sCAAiE,CAC/EC,KAAM4C,KACN,wBAAAV,EAAAR,OAAA,GAAAM,EAAA,KACH,gBAJgCJ,GAAA,OAAAlX,EAAAmX,MAAA,KAAAC,UAAA,KAMpB2gC,EAAyB,eAAAx3C,EAAA8V,YAAAC,cAAAC,MAAG,SAAAoB,EAAOO,GAA8B,OAAA5B,cAAAK,MAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAd,OAAA,SACrE1B,YAAS,wCAAiE,CAC/EC,KAAM4C,KACN,wBAAAL,EAAAb,OAAA,GAAAW,EAAA,KACH,gBAJqCF,GAAA,OAAAlX,EAAA4W,MAAA,KAAAC,UAAA,KAYzBwiD,EAAiB,eAAAz9C,EAAA9F,YAAAC,cAAAC,MAAG,SAAA01C,IAAA,OAAA31C,cAAAK,MAAA,SAAAu1C,GAAA,cAAAA,EAAAr1C,KAAAq1C,EAAAp1C,MAAA,cAAAo1C,EAAAn1C,OAAA,SACxBpB,YAAW,qCAAmC,wBAAAu2C,EAAAl1C,OAAA,GAAAi1C,EAAA,KACtD,kBAF6B,OAAA9vC,EAAAhF,MAAA,KAAAC,UAAA,KAIjBupD,EAAsB,WACjC,OAAOhrD,YAAgC,qCACzC,C,mICtCY6vC,EAAS,SAATA,GAAS,OAATA,EAAS,eAATA,EAAS,SAATA,EAAS,uBAATA,EAAS,eAATA,EAAS,iBAATA,EAAS,mBAATA,EAAS,aAATA,EAAS,uBAATA,EAAS,yBAATA,EAAS,kCAATA,EAAS,uBAATA,CAAS,MAcf+6B,EAASv8E,OAAOC,KAAKuhD,GACxBnxC,QAAO,SAACP,GAAG,OAAK0xC,EAAU1xC,GAAK0uB,OAASgjB,EAAUg7B,IAAI,IACtDn+E,KAAI,SAACyR,GACJ,MAAO,CACL0uB,KAAMgjB,EAAU1xC,GAChBpR,KAAMoR,EAEV,IAEc,OAAZuU,UAAY,IAAZA,KAAyB,QAAbo4D,EAAZp4D,IAAc2D,mBAAW,IAAAy0D,GAAzBA,EAA2BC,qBAC7BH,EAAO/tC,KAAK,CACVhQ,KAAMgjB,EAAUg7B,KAChB99E,KAAM,SAGH,IAAMi+E,EAAeJ,EAEf/uB,EAAgB,SAAC1xB,GAC5B,IAAA8gD,EAAe9gD,EAAS0T,MAAM,QAAvBhR,EAA8BlhC,YAAAs/E,EAAA,GAA1B,GACX,OAAOD,EAAaroD,MAAK,SAAClmB,GAAI,OAC5ByuE,YAAUr+C,EAAM,CACdm4C,OAAO,EACPn4C,KAAMpwB,EAAKowB,MACX,GAEN,C,iFCxCasB,E,KAAYtkC,EAAOshF,IAAIp8E,OAAM,SAAAlG,GAAA,IAAGS,EAAIT,EAAJS,KAAWT,EAALqB,MAAK,MAAQ,CAC9DZ,KAAU,OAAJA,QAAI,IAAJA,IAAQ,eACf,GAFwBO,CAEtBE,MAAAC,YAAA,O,gKCJU0a,EAAuB,SAAIC,GACtC,IAAMy/B,EAAI,IAAIxkC,gBAAgB+E,GAExBymE,EAAY,CAAC,EAUnB,OATA/5C,MAAMg6C,KAAKjnC,EAAEmnB,WAAW/uB,SAAQ,SAAA3zC,GAAmB,IAADwB,EAAAsB,YAAA9C,EAAA,GAAhBsV,EAAG9T,EAAA,GAAEga,EAAKha,EAAA,GAC1C,GAAI+gF,EAAOjtE,GAAM,CACf,IAAM6lB,EAAsC,kBAAhBonD,EAAOjtE,GAAoB,CAACitE,EAAOjtE,IAAQitE,EAAOjtE,GAC9EitE,EAAOjtE,GAAI,GAAAtP,OAAA4P,YAAOulB,GAAY,CAAE3f,GAClC,MACE+mE,EAAOjtE,GAAOkG,CAElB,IAEO+mE,CACT,EAEa7qE,EAAoB,WAAkC,IAA9Bg8D,EAAM96D,UAAArM,OAAA,QAAAwN,IAAAnB,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvC2pE,EAAS,IAAIxrE,gBAWnB,OAVAvR,OAAOC,KAAKiuE,GAAK//B,SAAQ,SAACr+B,GACpBkzB,MAAMm4C,QAAQjN,EAAIp+D,IACpBo+D,EAAIp+D,GAAKq+B,SAAQ,SAAC//B,GAChB2uE,EAAOE,OAAOntE,EAAK1B,EACrB,IACqB,MAAZ8/D,EAAIp+D,IACbitE,EAAOE,OAAOntE,EAAKo+D,EAAIp+D,GAE3B,IAEOitE,EAAOvrE,UAChB,EAUaw0D,EAAkB,SAC7BljD,EACAo6D,EACAC,EACAC,GAEA,IACIC,EAAU,OAASH,EAAS,SADRE,EAAkB,GAAK,KACe,MAE1DE,GADQH,EAAa,IAAII,OAAOF,EAAS,KAAO,IAAIE,OAAOF,IAC3CG,KAAK16D,GACzB,OAAe,MAAXw6D,EACK,KAEAA,EAAQ,IAAM,EAEzB,C,+IClDMG,EAAyBzlE,YAAStc,MAAAC,YAAA,qFAKlC+hF,EAAwB1lE,YAAS1b,MAAAX,YAAA,sFAI1B+4C,EAAiBl5C,IAAOC,IAAGsF,MAAApF,YAAA,wmDAuBzBoJ,KAAOk0E,MAaG7hE,IAAgB9L,GAIhB8L,IAAgBhU,GAK1B2B,KAAOk0E,MAgCLyE,EAGAD,GAIJjwD,EAAwBhyB,IAAOC,IAAGsO,MAAApO,YAAA,0kCAWtByb,IAAgBhU,IAuB5B,SAAA5I,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOoqB,WAAW,IAqBvC,SAAAlqB,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,G,kCCxJhD,kCAAO,IAAKimB,EAAK,SAALA,GAAK,OAALA,EAAK,wCAALA,EAAK,4BAALA,EAAK,4CAALA,EAAK,gCAALA,EAAK,8CAALA,EAAK,oDAALA,EAAK,uCAALA,EAAK,0DAALA,EAAK,qDAALA,EAAK,+DAALA,EAAK,wCAALA,EAAK,uDAALA,EAAK,8BAALA,CAAK,K,wGCeX27D,EAAyB,qBAANrvE,OACnBsvE,EAAe,CAAEh3E,EAAG,EAAGmV,EAAG,GAE1B8hE,EAAgB,SAACC,GAAqB,OAAY,OAAPA,QAAO,IAAPA,OAAO,EAAPA,EAASC,uBAAuB,EAE3EC,EAAoB,SAAHxjF,GAQhB,IAPLsjF,EAAOtjF,EAAPsjF,QACAG,EAASzjF,EAATyjF,UACAC,EAAe1jF,EAAf0jF,gBAMA,IAAKP,EACH,OAAOC,EAGT,GAAIK,EACF,MAAO,CAAEr3E,EAAG0H,OAAO6vE,QAASpiE,EAAGzN,OAAO8vE,SAGxC,IAAMC,EAAiBR,GAAqB,OAAPC,QAAO,IAAPA,OAAO,EAAPA,EAASr+E,UAAWmV,SAAStD,MAC5DgtE,EAAoBT,EAA6B,OAAfK,QAAe,IAAfA,OAAe,EAAfA,EAAiBz+E,SAEzD,OAAK4+E,EAIEC,EACH,CACE13E,GAAI03E,EAAkB13E,GAAK,IAAMy3E,EAAez3E,GAAK,GACrDmV,GAAIuiE,EAAkBviE,GAAK,IAAMsiE,EAAetiE,GAAK,IAEvD,CAAEnV,EAAGy3E,EAAep7C,KAAMlnB,EAAGsiE,EAAe7vE,KARvCovE,CASX,EAEaW,EAAoB,SAC/BrgE,EACA0nC,EACAk4B,EACAG,EACAO,EACAN,GAEA,IAAMO,EAAWxgF,iBAAO+/E,EAAkB,CAAEC,YAAWC,qBAEnDQ,EAAiC,KAE/BC,EAAW,WACf,IAAMC,EAAUZ,EAAkB,CAAEF,UAASG,YAAWC,oBACxDhgE,EAAO,CAAE2gE,QAASJ,EAASh/E,QAASm/E,YACpCH,EAASh/E,QAAUm/E,EACnBF,EAAkB,IACpB,EACMxoE,EAAWC,cAEjBzB,2BAAgB,WACdiqE,GACF,GAAG,CAACzoE,EAAS4lB,WAEbpnB,2BAAgB,WACd,GAAKipE,EAAL,CAIA,IAUqBmB,EAVfC,EAAe,WACfP,EACsB,OAApBE,IACFA,EAAkBpwE,OAAOusB,WAAW8jD,EAAUH,IAGhDG,GAEJ,EAEA,GAAIT,EACqB,QAAvBY,EAAAZ,EAAgBz+E,eAAO,IAAAq/E,GAAvBA,EAAyB9tC,iBAAiB,SAAU+tC,EAAc,CAAEC,SAAS,SAE7E1wE,OAAO0iC,iBAAiB,SAAU+tC,EAAc,CAAEC,SAAS,IAG7D,OAAO,WACiB,IAADC,EAAjBf,EACqB,QAAvBe,EAAAf,EAAgBz+E,eAAO,IAAAw/E,GAAvBA,EAAyBhuC,oBAAoB,SAAU8tC,GAEvDzwE,OAAO2iC,oBAAoB,SAAU8tC,GAGnCL,GACF5jD,aAAa4jD,EAEjB,CA5BA,CA6BF,GAAG94B,EACL,EAEA24B,EAAkBW,aAAe,CAC/Bt5B,KAAM,GACNk4B,SAAS,EACTG,WAAW,EACXO,KAAM,KACNN,iBAAiB,G,2KCjHNiB,EAAiB3jF,IAAOC,IAAGC,MAAAC,YAAA,sfAClB,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAO6qC,cAAc,IAiCnDy4C,EAAiB5jF,YAAO0D,IAAP1D,CAAcc,MAAAX,YAAA,kIAS/B0jF,EAAe7jF,IAAOC,IAAGsF,MAAApF,YAAA,6EAMzB2jF,EAAW9jF,IAAOC,IAAGsO,MAAApO,YAAA,6B,gBCtCrB4jF,EAAiB,WAAO,IAADC,EAAAC,EAAAC,EAC5BnuB,EAAOC,cACPhwD,EAAeC,aAAe,SAACC,GAAK,OAAKA,EAAMF,YAAY,IAE3Dm+E,EAAW,eAAAnlF,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAOE,GAAU,IAAAktE,EAAAntE,EAAA,OAAAH,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACS,KAAxCL,EAAqB,OAAZ4R,UAAY,IAAZA,KAAuB,QAAXu7D,EAAZv7D,IAAc+D,iBAAS,IAAAw3D,OAAX,EAAZA,EAAyBC,UAEZ,IAAZptE,EAAa,CAAAG,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EACnBV,YAAWK,EAAQC,GAAW,OACpCpE,OAAO4H,SAASo6C,SAAQ,wBAAA19C,EAAAI,OAAA,GAAAR,EAAA,KAE3B,gBAPgBS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KASX0sE,EAA6B,OAAZz7D,UAAY,IAAZA,KAAuB,QAAXm7D,EAAZn7D,IAAc+D,iBAAS,IAAAo3D,OAAX,EAAZA,EAAyBO,mBAEhD,OACE7lF,cAAA6E,WAAA,CAAA1E,SACE2E,eAACmgF,EAAc,CAAA9kF,SAAA,CACbH,cAACgI,IAAG,CAAA7H,SACFH,cAACiI,IAAG,CAAA9H,SACFH,cAACoI,IAAK,CAAAjI,SACJH,cAAC43B,IAAQ,CAAC9b,MAAO2T,YAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,IAAkBS,sBAIxEtsD,cAAC43B,IAAQ,CAAC9b,MAAO2T,YAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,IAAkBU,gBAClEvsD,cAACmlF,EAAY,CAAAhlF,SACE,OAAZgqB,UAAY,IAAZA,KAAuB,QAAXo7D,EAAZp7D,IAAc+D,iBAAS,IAAAq3D,GAAe,QAAfC,EAAvBD,EAAyBO,qBAAa,IAAAN,OAA1B,EAAZA,EAAwCrhF,KAAI,SAACuI,GAC5C,IAAIgO,EAAqBhO,EAAE4oC,MAAM,KACjC,OACEt1C,cAAColF,EAAQ,CAAAjlF,SACP2E,eAAA,KAAGc,GAAG,cAAcgjB,KAAI,wCAAAtiB,OAA0CoU,EAAS,IAAKva,SAAA,CAC9EH,cAACqoD,IAAK,CAACx6C,IAAI,2BAA2BI,IAAI,aAC1CjO,cAAA,QAAAG,SAAOua,EAAS,SAIxB,MAEDkrE,EACC5lF,cAACgI,IAAG,CAAA7H,SACFH,cAACiI,IAAG,CAAA9H,SACFH,cAACqJ,IAAK2rB,MAAK,CAACh0B,UAAU,OAAOi0B,UAAU,oBAAmB90B,SACxDH,cAACqJ,IAAKC,MAAK,CACTiO,KAAK,WACL9B,MAAOga,YAAMnoB,EAAa,cAAe,KACzCtE,SAAU,kBAAMyiF,GAAY,EAAK,UAMzCzlF,cAACgI,IAAG,CAAA7H,SACFH,cAACiI,IAAG,CAACC,GAAI,CAAExB,KAAM,EAAGyB,OAAQ,GAAKgJ,GAAI,CAAEzK,KAAM,EAAGyB,OAAQ,GAAIhI,SAC1DH,cAACklF,EAAc,CAACjgF,QAAS,kBAAMwgF,GAAY,EAAM,EAAEn4E,KAAK,KAAInN,SACzD2qE,cAQjB,E,+GCxEaib,GAAoBzkF,IAAOC,IAAGC,MAAAC,YAAA,yBAG9B8wD,GAAejxD,IAAOC,IAAGa,MAAAX,YAAA,0aACrB,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkB2c,MAAMC,WAAW,IACvC,SAAAzc,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,IAgCtCmkF,GAAkB1kF,YAAO0G,IAAP1G,CAAWuF,MAAApF,YAAA,qFAGnByb,KAAgBhV,IAI1B+9E,GAAgB3kF,IAAO+lB,EAACxX,MAAApO,YAAA,mFAcxBykF,IATkB5kF,IAAOsrC,GAAE98B,MAAArO,YAAA,iCAINH,IAAOsrC,GAAE58B,MAAAvO,YAAA,uDAKRH,YAAO2G,IAAP3G,CAAW6O,MAAA1O,YAAA,+DAKjC0kF,GAA0B7kF,IAAOC,IAAGyc,MAAAvc,YAAA,6LASb,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAOgpB,SAAS,IAK5Dw7D,GAA4B9kF,YAAO0xD,KAAP1xD,CAA2B8c,MAAA3c,YAAA,sHAQvD4kF,GAAmB/kF,IAAOC,IAAGod,MAAAld,YAAA,wNCnE7By8C,GAAS,WACpB,IAAAh1B,EAAqD3hB,aACnD,SAACC,GAAK,MAAK,CAACA,EAAMomB,WAAYpmB,EAAMF,aAAa,GACjDG,KACDo4C,EAAAz8C,YAAA8lB,EAAA,GAAAo9D,EAAAzmC,EAAA,GAHcx1B,EAAIi8D,EAAV9+C,KAAmB++C,EAAKD,EAAZE,MAAgBl/E,EAAYu4C,EAAA,GAK3CwX,EAAOC,cACb,OACExyD,eAACytD,GAAY,CAAApyD,SAAA,CACXH,cAAC+rC,KAAS,CAAA5rC,SACR2E,eAACkD,IAAG,CAAA7H,SAAA,CACFH,cAACiI,IAAG,CAACC,GAAI,GAAIlH,UAAU,oBAAmBb,SACxCH,cAAA,OAAK4F,GAAG,aAAa5E,UAAU,+BAA8Bb,SAC3D2E,eAAA,MAAI9D,UAAU,4CAA2Cb,SAAA,CAClD,OAAJkqB,QAAI,IAAJA,OAAI,EAAJA,EAAMo8D,SAAStwE,QACd,SAACjC,GAAI,OAAKA,EAAKwyE,YAAcxyE,EAAKuyE,SAAS55E,OAAS,GAAkB,gBAAbqH,EAAKyyE,IAAsB,IACpFxiF,KAAI,SAAC+P,GAAI,OACTpP,eAACihF,GAAiB,CAAA5lF,SAAA,CAChBH,cAACimF,GAAa,CAACr9D,KAAmB,gBAAb1U,EAAKyyE,IAAwB,KAAOzyE,EAAKyyE,IAAIxmF,SAC/D+T,EAAKkuE,SAASzsC,OAEhBzhC,EAAKuyE,UACJzmF,cAAA,MAAIgB,UAAU,SAAQb,SACnB+T,EAAKuyE,SAAStwE,QAAO,SAACywE,GAAC,OAAMnH,IAAwB3wD,SAAS83D,EAAExE,SAAS7+E,KAAK,IAAEY,KAC/E,SAAC0iF,GAAS,OACR7mF,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAI6hD,EAAUF,IAAK1hF,QAAS,kBAAMk9E,aAA0B0E,EAAU,EAAC1mF,SAC7E0mF,EAAUzE,SAASzsC,QAFfkxC,EAAUzE,SAAS7+E,KAIvB,QAZS2Q,EAAKkuE,SAAS7+E,KAiBlB,IAEtBuB,eAACihF,GAAiB,CAAA5lF,SAAA,CAChBH,cAACimF,GAAa,CAAA9lF,SAAC,SACf2E,eAAA,MAAI9D,UAAU,SAAQb,SAAA,CACpBH,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAG,QAAO7kC,SAAEyoE,QAEvB5oE,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAG,SAAQ7kC,SAAEwoE,QAExB3oE,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAG,WAAU7kC,SACnBsvB,YAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,IAAkBK,6BAGtDlsD,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAG,aAAY7kC,SACrBsvB,YAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,IAAkBM,mBAGpD26B,KAAEC,MAAMR,KAAWA,GACnBvmF,cAAA,MAAAG,SACEH,cAAA,KAAG4oB,KAAK,UAASzoB,SAAEmH,GAAgBA,EAAa,SAAU,2BAQxEtH,cAACiI,IAAG,CAACjH,UAAU,YAAYmQ,GAAI,GAAGhR,SAChCH,cAACmmF,GAAuB,CAAAhmF,SACtB2E,eAAA,MAAI9D,UAAU,SAAQb,SAAA,CACpBH,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAG,SAAQ7kC,SAAEwoE,SAEtBme,KAAEC,MAAMR,KAAWA,GACnBvmF,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAG,UAAS7kC,SAAEmH,GAAgBA,EAAa,SAAU,cAGlEtH,cAAA,MAAAG,SACEH,cAAC8hD,KAAO,CAAC9c,GAAG,aAAY7kC,SAAEsvB,YAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,IAAkBM,8BAOvFrnD,eAACkhF,GAAe,CAAA7lF,SAAA,CACdH,cAAComF,GAAyB,CAACj1E,IAAE,EAACjJ,GAAI,EAAE/H,SAClCH,cAAC43B,IAAQ,CAAC9b,MAAO2T,YAAM4nC,EAAKgD,cAAc,CAAEz0D,GAAIimD,IAAkBO,sBAEpEtnD,eAACohF,GAAmB,CAAC/0E,IAAE,EAACjJ,GAAI,EAAGlH,UAAU,iBAAgBb,SAAA,CACvDH,cAAA,OAAK4F,GAAG,iBAAiB5E,UAAU,+CACnChB,cAACqmF,GAAgB,CAAAlmF,SACfH,cAAA,OAAK6N,IAAKm5E,KAAuB/4E,IAAI,eAMjD,E,4BCzGeg5E,I,YAAAA,GAff,SAAsBvmF,GACpB,OACEV,cAAA,MAAAW,0BAAA,CACEM,OAAO,eACPF,KAAK,qBACL+pD,YAAa,EACbjlB,QAAQ,cACRjlC,MAAM,8BACFF,GAAK,IAAAP,SAETH,cAAA,QAAMmB,EAAE,iEAAiEF,OAAO,WAGtF,E,mBCaegmF,GAjBM,SAAH3mF,GAA8B,IAAxBmb,EAAQnb,EAARmb,SACdD,EAAuB7T,qBAAWyT,KAAlCI,mBACA8M,EAAoBC,eAApBD,gBACR,OACEtoB,cAAC4e,KAAkB,CAACnD,SAAUA,EAAStb,SACrCH,cAAA,UACEiF,QAAS,WACPqjB,EAAgB,oBAChB9M,GAAmB,EACrB,EAAErb,SAEFH,cAACknF,GAAU,OAInB,ECTaz9C,GAAS,SAAHnpC,GAAqD,IAAD6mF,EAAA7mF,EAA9C8mF,oBAAY,IAAAD,GAAQA,EAAEnmF,EAASV,EAATU,UAC3BqmF,EAAW1/E,qBAAWyT,KAAhCK,SAEFA,EAAW4rE,GAAUD,EAC3B,OACEtiF,eAAC2Y,KAAY,CACX9C,MAAO,CACL4pE,SAAU6C,EAAe,SAAW,KACpCh0D,QAASg0D,IAAiBC,EAAS,OAAS,MAE9C5rE,SAAUA,EACVza,UAAW+L,KAAW,eAAgB/L,GAAWb,SAAA,CAEjD2E,eAACiZ,KAAc,CAACtC,SAAUA,EAAStb,SAAA,CACjCH,cAAC8hD,KAAO,CAAC9c,GAAG,IAAG7kC,SACbH,cAACqoD,IAAK,CAACrnD,UAAU,YAAY6M,IAAK4N,EAAWgtD,KAAa7T,SAAW6T,KAAaiX,aAAczxE,IAAI,OAEtGjO,cAAC8hD,KAAO,CAAC9c,GAAG,IAAG7kC,SACbH,cAACqoD,IAAK,CACJrnD,UAAU,yBACV6M,IAAK4N,EAAWgtD,KAAa5T,UAAY4T,KAAakX,cACtD1xE,IAAI,UAIVjO,cAACinF,GAAY,CAACxrE,SAAUA,MAG9B,E,2ECzCa6rE,GAAyB,WACpC,IAAM3lF,EAAQ2pB,cAEd,OACEtrB,cAAA,OAAKY,MAAM,6BAA6BilC,QAAQ,cAAc9kC,KAAMY,EAAMC,OAAOC,QAAShB,MAAM,MAAMC,OAAO,MAAKX,SAChHH,cAAA,QAAMmB,EAAE,q6CAGd,ECRaomF,GAAiB,WAC5B,IAAM5lF,EAAQ2pB,cACd,OACEtrB,cAAA,OAAKa,MAAM,MAAMC,OAAO,MAAMC,KAAMY,EAAMC,OAAOC,QAASgkC,QAAQ,YAAYjlC,MAAM,6BAA4BT,SAC9GH,cAAA,QAAMmB,EAAE,oYAGd,ECPaqmF,GAAiB,WAC5B,IAAM7lF,EAAQ2pB,cACd,OACEtrB,cAAA,OACE6qD,QAAQ,MACRjlD,GAAG,SACHhF,MAAM,6BACN6mF,WAAW,+BACX/6E,EAAE,MACFmV,EAAE,MACFgkB,QAAQ,cACR6hD,iBAAiB,kBACjBC,SAAS,WACT9mF,MAAM,MACNC,OAAO,MACPC,KAAMY,EAAMC,OAAOC,QAAQ1B,SAE3B2E,eAAA,KAAGc,GAAG,WAAUzF,SAAA,CACdH,cAAA,QACE4F,GAAG,aACHzE,EAAE,+NAGJnB,cAAA,QACE4F,GAAG,aACHzE,EAAE,4cASZ,ECjCaymF,GAAoB,WAC/B,IAAMjmF,EAAQ2pB,cACd,OACEtrB,cAAA,OACE6qD,QAAQ,MACRjlD,GAAG,SACHhF,MAAM,6BACN6mF,WAAW,+BACX/6E,EAAE,MACFmV,EAAE,MACFgkB,QAAQ,oBACR6hD,iBAAiB,wBACjBC,SAAS,WACT9mF,MAAM,MACNC,OAAO,MACPC,KAAMY,EAAMC,OAAOC,QAAQ1B,SAE3BH,cAAA,KAAAG,SACEH,cAAA,QACEmB,EAAE,2sCAeZ,EC7Ba0mF,GAAW,CACtBC,kBAAmB9nF,cAACmN,KAAe,CAACC,KAAM26E,OAC1CC,oBAAqBhoF,cAACmN,KAAe,CAACC,KAAM26E,OAC5CE,mBAAoBjoF,cAAC4nF,GAAiB,IACtCM,gBAAiBloF,cAACwnF,GAAc,IAChCW,cAAenoF,cAACsV,KAAO,CAACC,MAAM,QAC9B6yE,gBAAiBpoF,cAACunF,GAAc,IAChCc,gBAAiBroF,cAACsV,KAAO,CAACC,MAAM,QAChC+yE,kBAAmBtoF,cAACunF,GAAc,IAClCgB,cAAevoF,cAACmN,KAAe,CAACC,KAAMo7E,OACtCC,cAAezoF,cAACmN,KAAe,CAACu7E,KAAK,aAAat7E,KAAMu7E,OACxDC,oBAAqB5oF,cAACsnF,GAAsB,IAC5C1e,IAAK5oE,cAACmN,KAAe,CAACC,KAAMy7E,OAC5BC,OAAQ9oF,cAACmN,KAAe,CAACC,KAAM27E,Q,4BCLlBC,GAdA,SAACtoF,GAAK,OACnBV,cAAC4lC,KAASjlC,0BAAA,CACRC,MAAM,6BACNC,MAAO,GACPC,OAAQ,GACRC,KAAK,eACLC,UAAU,+BACV6kC,QAAQ,aACJnlC,GAAK,IAAAP,SAETH,cAAA,QAAMmB,EAAE,iPACE,E,mBCVD8nF,GAAiB3nF,IAAOC,IAAGC,QAAAC,YAAA,0UAC7B,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOgpB,SAAS,IASnC,SAAA9oB,GAAQ,OAAAA,EAALH,MAAkBC,OAAOC,OAAO,GAOzBqb,KAAgB7L,IACxB,SAAAhP,GAAO,OAAAA,EAAJuB,KAAmB,OAAS,MAAM,IAKvCslF,GAAuB5nF,IAAOC,IAAGa,QAAAX,YAAA,guCACnC,SAAAa,GAAQ,OAAAA,EAALX,MAAkBC,OAAOgpB,SAAS,IAuCnC,SAAA3M,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOC,OAAO,IA4BnCsnF,GAA0B7nF,IAAOC,IAAGsF,QAAApF,YAAA,kGAItC,SAAA4c,GAAQ,OAAAA,EAAL1c,MAAkBC,OAAOgpB,SAAS,IAGnCw+D,GAAuB9nF,IAAOC,IAAGsO,QAAApO,YAAA,68BAGvByb,KAAgB7L,IACxB,SAAAyN,GAAO,OAAAA,EAAJlb,KAAmB,OAAS,MAAM,IAUjB,SAAAmb,GAAQ,OAAAA,EAALpd,MAAkBC,OAAOsc,SAAS,IAClC,SAAAuM,GAAQ,OAAAA,EAAL9oB,MAAkBC,OAAOsc,SAAS,IAYtD,SAAAwM,GAAQ,OAAAA,EAAL/oB,MAAkBC,OAAOgpB,SAAS,IAkB3C,SAAAD,GAAQ,OAAAA,EAALhpB,MAAkBC,OAAOC,OAAO,IC5HrCwnF,GAAW,SAAC3oF,GACvB,IAAAwoB,EASI3hB,aACF,SAACC,GAAK,MAAM,CACVomB,WAAYpmB,EAAMomB,WAClB/F,SAAUrgB,EAAMqgB,SACjB,GACDpgB,KACD6hF,EAAApgE,EAdC0E,WACY27D,EAAQD,EAAlB97D,SACgBg8D,EAAcF,EAA9B57D,eACkB+7D,EAAgBH,EAAlClwD,iBACOmtD,EAAK+C,EAAZ9C,MACMn8D,EAAIi/D,EAAV9hD,KAEF3f,EAAQqB,EAARrB,SAUI6hE,EAAyB,OAAhBD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBhlF,MAAK,SAACyP,GAAI,OAAKA,EAAK3H,cAAgBi9E,CAAc,IACnFvmF,EAA4CC,mBAAe,OAANwmF,QAAM,IAANA,OAAM,EAANA,EAAQ/8E,IAAGxJ,EAAAC,YAAAH,EAAA,GAAzD0mF,EAAcxmF,EAAA,GAAEymF,EAAiBzmF,EAAA,GACxCG,EAAsDJ,qBAAiCM,EAAAJ,YAAAE,EAAA,GAAhFumF,EAAmBrmF,EAAA,GAAEsmF,EAAsBtmF,EAAA,GAClDE,EAAkCR,oBAAkB,GAAMS,EAAAP,YAAAM,EAAA,GAAnD28B,EAAS18B,EAAA,GAAEmmE,EAAYnmE,EAAA,GACxBomF,EAAY1iF,mBAAQ,kBAAMwgB,EAAS,gBAAgB,GAAE,IAC3DxjB,qBAAU,WACR,IAaM2lF,EAAoB,OAAJ3/D,QAAI,IAAJA,OAAI,EAAJA,EAAMo8D,SAAStiF,KAAI,SAAC84C,GAAC,OAAKA,EAAEwpC,QAAQ,IACvDnV,OACA7sE,MAAK,SAACw4C,GAAC,MAAyB,kBAApBA,EAAEmlC,SAAS7+E,IAAwB,IAClDumF,EAAuB,CAACE,EAhBgB,CACtC5H,SAAU,CACRz1E,GAAI,EACJgpC,KAAM,SACNgxC,IAAK,SACLpjF,KAAM,SACN0mF,QAAS,EACTC,WAAY,IAEdvD,IAAK,SACLD,WAAW,EACXD,SAAU,KAMd,GAAG,CAACp8D,IAEJ,IAAM8/D,EAAwB,eAAA7pF,EAAA6X,YAAAC,cAAAC,MAAG,SAAAC,EAAOwD,GAAa,OAAA1D,cAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAE/C+wE,GAAkB7tE,EAAK,CAAApD,EAAAE,KAAA,eAAAF,EAAAG,OAAA,iBAID,OAJCH,EAAAC,KAAA,EAGzBmxD,GAAa,GACb8f,EAAkB9tE,GAAMpD,EAAAE,KAAA,ECtELhT,EDuEJkW,ECtEZ3E,aAAU,wBAAD7Q,OAAyBV,IDsEhB,OACrBwO,OAAO4H,SAASo6C,SAAQ19C,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6M,GAAA7M,EAAA,SAExB8M,QAAQC,MAAK/M,EAAA6M,IAAK,QAEC,OAFD7M,EAAAC,KAAA,GAElBmxD,GAAa,GAAMpxD,EAAA+lB,OAAA,6BAAA/lB,EAAAI,OC5ED,IAAClT,CD4EA,GAAA0S,EAAA,yBAEtB,gBAd6BS,GAAA,OAAAzY,EAAA2Y,MAAA,KAAAC,UAAA,KAgB9B,OAAKmR,EAKHvlB,eAACskF,GAAoB,CAACxlF,KAAMlD,EAAM0pF,aAAajqF,SAAA,CAC7CH,cAACqqF,KAAG,CAACvhE,GAAI,MAAM3oB,SACbH,cAACqqF,KAAI18E,KAAI,CAACmb,GAAG,MAAK3oB,SAChB2E,eAACulF,KAAItlD,KAAI,CAACjc,GAAIic,KAAMC,GAAI,QAAQ7kC,SAAA,CAC9BH,cAACmN,KAAe,CAACC,KAAMy7E,OAAoB,eAMjD/jF,eAACmkF,GAAc,CAACrlF,KAAMlD,EAAM0pF,aAAajqF,SAAA,CACtCkgC,GAAargC,cAAC6U,KAAa,IAE5B7U,cAACkpF,GAAoB,CAAA/oF,SACnB2E,eAACuiC,KAAQ,CACPijD,YAAU,EACVrjD,aAAc0iD,EACdhhF,SAAU,SAACmT,GAAK,OAAKquE,EAAyBruE,EAAe,EAAC3b,SAAA,CAE9DH,cAACqnC,KAASC,OAAM,CAACxe,GAAG,MAAM9nB,UAAU,eAAcb,SAChD2E,eAAA,OAAK9D,UAAU,WAAUb,SAAA,CACvB2E,eAAA,QAAA3E,SAAA,CACEH,cAACgpF,GAAM,IACNO,KAEHvpF,cAACylC,KAAW,SAGhB3gC,eAACuiC,KAASG,KAAI,CAACxmC,UAAU,oBAAmBb,SAAA,CAC1CH,cAAA,OAAKgB,UAAU,yBAAwBb,SACpCspF,EAAiBtlF,KAAI,SAAC+P,GAAI,OACzBpP,eAACuiC,KAAS15B,KAAI,CACZ3M,UAAS,mBAAAsF,OAAqBqjF,IAAmBz1E,EAAKvH,IAAM,UAE5D86B,SAAUvzB,EAAKvH,GAAGxM,SAAA,CAElBH,cAACmN,KAAe,CAACC,KAAMyxD,OACtB3qD,EAAK3H,cAJD2H,EAAKvH,GAKI,OAGlB45E,GACAzhF,eAAA,OAAK9D,UAAU,qBAAoBb,SAAA,CACjCH,cAAA,SACC+pF,GACCjlF,eAACuiC,KAAS15B,KAAI,CAAC3M,UAAU,0CAA0C4nB,KAAK,oBAAmBzoB,SAAA,CACzFH,cAACmN,KAAe,CAACC,KAAM6nE,OACtB,uBAGe,OAAnB4U,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB1lF,KACpB,SAAC+P,GAAI,QACDA,GACApP,eAACuiC,KAAS15B,KAAI,CACZ3M,UAAU,0CAEVymC,SAAUvzB,EAAKkuE,SAAS7+E,KACxBqlB,KAAM1U,EAAKyyE,IACX1hF,QAAS,kBAAMk9E,aAA0BjuE,EAAK,EAAC/T,SAAA,CAE9C0nF,GAAS3zE,EAAKkuE,SAAS7+E,MACvB2Q,EAAKkuE,SAASzsC,OANVzhC,EAAKkuE,SAAS7+E,KAQtB,eAOfvD,cAACmpF,GAAuB,CAAAhpF,SAAEqpF,UA1EvB,IA8EX,E,UEtJae,GAAU,SAAHjqF,GAAoC,IAA9B4mC,EAAK5mC,EAAL4mC,MAAOjiC,EAAO3E,EAAP2E,QACzBulF,EAAqB,SAAC9gF,GACnB,OAAPzE,QAAO,IAAPA,OACAqX,eACAi0B,aAAe,aAADjqC,OAAcoD,EAAEpE,OAAOs9C,YAAYtL,QACnD,EAEA,OACEt3C,cAACsqB,KAAa,CAAAnqB,SACX+mC,EAAM/iC,KAAI,SAAC+P,GAAI,OACdlU,cAAC2sC,KAAiB,CAAAxsC,SACf+T,EAAKyyE,KACJ7hF,eAACg9C,KAAO,CAAC9c,GAAI9wB,EAAKyyE,IAAK1hF,QAASulF,EAAmBrqF,SAAA,CAChD0nF,GAAS3zE,EAAKkuE,SAAS7+E,MACvB2Q,EAAKkuE,SAASzsC,SAJGzhC,EAAKkuE,SAASz1E,GAOlB,KAI5B,ECPa89E,GAAS,SAAC/pF,GACrB,IAAQkhC,EAAa3lB,cAAb2lB,SACRn2B,EAAgD9D,qBAAWyT,KAAnDG,EAAe9P,EAAf8P,gBAAiBC,EAAkB/P,EAAlB+P,mBACzB0N,EAAuB3hB,aAAe,SAACC,GAAK,MAAK,CAACA,EAAMomB,WAAWkX,eAAgBt9B,EAAMomB,WAAW4Z,KAAK,GAAE//B,KAAQo4C,EAAAz8C,YAAA8lB,EAAA,GAA5GwhE,EAAM7qC,EAAA,GAAEx1B,EAAIw1B,EAAA,GAEb8qC,EAAkB,SAACjhF,GACvB4S,eACAi0B,aAAe,aAADjqC,OAAcoD,EAAEpE,OAAOs9C,YAAYtL,QACnD,EAEA,OACEt3C,cAACwe,KAAY,CAAAre,SACX2E,eAAC2Z,KAAa,CAAC7a,KAAM2X,EAAgBpb,SAAA,CACnCH,cAACgrB,KAAqB,CAAC/lB,QAAS,kBAAMuW,GAAmB,EAAM,EAACrb,SAAC,MACjE2E,eAACulF,KAAG,CAACvhE,GAAG,KAAI3oB,SAAA,CACTuqF,IACK,OAAJrgE,QAAI,IAAJA,OAAI,EAAJA,EAAMo8D,SAAStwE,QACb,SAACjC,GAAI,OAAKA,EAAKwyE,YAAcxyE,EAAKuyE,SAAS55E,OAAS,GAAkB,gBAAbqH,EAAKyyE,IAAsB,IACpFxiF,KAAI,SAAC+P,GAAI,OACTpP,eAACulF,KAAI18E,KAAI,CAA0Bmb,GAAG,MAAK3oB,SAAA,CACzCH,cAAC8hD,KAAO,CAAC9c,GAAiB,gBAAb9wB,EAAKyyE,IAAwB,KAAOzyE,EAAKyyE,IAAK1hF,QAAS0lF,EAAgBxqF,SAClFH,cAAC6qB,KAAmB,CAClB7pB,UAAWkT,EAAKyyE,MAAQ/kD,GAAY1tB,EAAKyyE,IAAIlkF,MAAM,KAAOm/B,EAAW,SAAW,GAAGzhC,SAElF+T,EAAKkuE,SAASzsC,SAGlBzhC,EAAKuyE,UACJzmF,cAACuqF,GAAO,CACNtlF,QAAS,kBAAMuW,GAAmB,EAAM,EACxC0rB,MAAOhzB,EAAKuyE,SAAStwE,QACnB,SAACywE,GAAC,IAAAgE,EAAAC,EAAAC,EAAA,OAGC,QAHDF,IAC6D,QAA7DC,EAACtL,IAAkB96E,MAAK,SAACiF,GAAC,OAAKA,EAAElF,OAAS0P,EAAKkuE,SAAS7+E,IAAI,WAAC,IAAAsnF,GAAW,QAAXC,EAA5DD,EAA8DrL,iBAAS,IAAAsL,GAAvEA,EAAyEh8D,SACxE83D,EAAExE,SAAS7+E,cACZ,IAAAqnF,IAAQ,QAfJ12E,EAAKkuE,SAASzsC,KAmBlB,KAEdp6B,GAAmBvb,cAACqpF,GAAQ,CAACe,aAAc7uE,WAKtD,ECjDa6+C,GAAS,SAAH95D,GAAqC,IAA/B+P,EAAK/P,EAAL+P,MAAOlQ,EAAQG,EAARH,SAC9B+oB,EAAsC3hB,aAAe,SAACC,GAAK,MAAK,CAACA,EAAMomB,WAAYpmB,EAAMmmB,gBAAgB,GAAElmB,KAAQo4C,EAAAz8C,YAAA8lB,EAAA,GAA5G0E,EAAUiyB,EAAA,GAAElyB,EAAekyB,EAAA,GAC1BnkC,EAAgB/T,qBAAWyT,KAA3BM,YAEFqvE,EAAe1jF,mBACnB,oBAAQumB,EAAWkX,gBAAkBlX,EAAWJ,WAAcI,EAAWJ,SAAuB,GAChG,CAACI,EAAWkX,eAAgBlX,EAAWJ,WAGnCxR,EAAWC,cAcjB,OAZAooE,GACE,SAAAviF,GAAkB,IAAf4iF,EAAO5iF,EAAP4iF,QACKsG,EAAetwE,SAASy8B,cAA2B,aAAao+B,aAClEmP,EAAQ7iE,IAAMmpE,EAChBtvE,GAAY,GAEZA,GAAY,EAEhB,GACA,CAACM,EAAS4lB,WAIV98B,eAAC0Y,KAAY,CAAArd,SAAA,CACXH,cAAC0qE,IAAM,CAAAvqE,SACLH,cAAA,SAAAG,SAAQkQ,MAEVrQ,cAACypC,GAAM,CAACzoC,UAAU,aAClBhB,cAACypC,GAAM,CAAC29C,cAAY,IACpBtiF,eAACqZ,KAAgB,CAAAhe,SAAA,CACfH,cAACyqF,GAAM,IACPzqF,cAACqpF,GAAQ,CAACe,cAAc,OAE1BpqF,cAAC0e,KAAU,CAAAve,SAAEwtB,IAAoBC,EAAWkX,eAAiB9kC,cAACqlF,EAAc,IAAMllF,IACjF4qF,GAAgB/qF,cAACk+C,GAAM,IACxBl+C,cAAC4/C,IAAqB,MAG5B,C,mLC1DaqrC,EAAS,SAAH3qF,GAA8E,IAADolC,EAAAplC,EAAvEO,aAAK,IAAA6kC,EAAG,MAAKA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,MAAKA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EAC5E,OACE91C,eAAA,OAAKlE,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,YAAW1lC,SAAA,CACpGH,cAAA,QAAMmB,EAAE,0UACRnB,cAAA,QAAMmB,EAAE,6FAGd,ECPa+pF,EAAW,SAAH5qF,GAA8E,IAADolC,EAAAplC,EAAvEO,aAAK,IAAA6kC,EAAG,MAAKA,EAAAC,EAAArlC,EAAEQ,cAAM,IAAA6kC,EAAG,MAAKA,EAAAiV,EAAAt6C,EAAEinB,aAAK,IAAAqzB,EAAG,eAAcA,EAC9E,OACE91C,eAAA,OAAKlE,MAAM,6BAA6BC,MAAOA,EAAOC,OAAQA,EAAQC,KAAMwmB,EAAOse,QAAQ,YAAW1lC,SAAA,CACpGH,cAAA,QAAMmB,EAAE,0QACRnB,cAAA,QAAMmB,EAAE,4KACRnB,cAAA,QAAMmB,EAAE,mSAGd,E,gDCPagqF,EAAoB7pF,YAAO+H,IAAK6rB,QAAZ5zB,CAAoBE,MAAAC,YAAA,kOAC/B,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOgmC,oBAAoB,IAK1D,SAAA9lC,GAAQ,OAAAA,EAALH,MAAkBC,OAAO2zB,WAAW,IAmBtC61D,GAbsB9pF,YAAO+pF,IAAP/pF,CAAkBc,MAAAX,YAAA,4KAC/B,SAAAY,GAAQ,OAAAA,EAALV,MAAkBC,OAAOgmC,oBAAoB,IAE1D,SAAAtlC,GAAQ,OAAAA,EAALX,MAAkBC,OAAO2zB,WAAW,IAE3B,SAAAtX,GAAQ,OAAAA,EAALtc,MAAkBC,OAAOgmC,oBAAoB,IAQ3CtmC,IAAO4E,EAACW,MAAApF,YAAA,kJ,4ECXxBkpE,EAAY,SAAHrqE,GAAkG,IAA5FkE,EAAIlE,EAAJkE,KAAM+S,EAAIjX,EAAJiX,KAAM4d,EAAW70B,EAAX60B,YAAan0B,EAASV,EAATU,UAAWykB,EAAKnlB,EAALmlB,MAAOtlB,EAAQG,EAARH,SAAUsV,EAAKnV,EAALmV,MAAOqT,EAAExoB,EAAFwoB,GAAOpoB,EAAK4rB,YAAAhsB,EAAAisB,GAClGtpB,EAAwCC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAAzDqoF,EAAYnoF,EAAA,GAAEooF,EAAepoF,EAAA,GAMpC,OACEnD,cAAA6E,WAAA,CAAA1E,SACY,aAAToX,EACCzS,eAACuE,IAAK2rB,MAAK,CAACh0B,UAAS,QAAAsF,OAAUtF,GAAai0B,UAAWzwB,EAAKrE,SAAA,CAC1DH,cAACqJ,IAAKgrB,MAAK,CAAAl0B,SACTH,cAAC66D,IAAgB,CAACj1D,GAAI6P,MAExB3Q,eAACumF,IAAU,CAACG,eAAa,EAAArrF,SAAA,CACvBH,cAACmrF,EAAiBxqF,YAAA,CAChB4W,KAAM+zE,EAAe,OAAS,WAC9Bn2D,YAAaA,EACb3wB,KAAMA,GACF9D,KAEA,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOob,QACN9b,cAACorF,EAAa,CACZnmF,QAAS,WACPsmF,GAAiBD,EACnB,EAAEnrF,SAEDmrF,EACCtrF,cAACirF,EAAM,CAACnqF,OAAO,OAAOD,MAAM,OAAO0mB,MAAM,YAEzCvnB,cAACkrF,EAAQ,CAACpqF,OAAO,OAAOD,MAAM,OAAO0mB,MAAM,cAIjDvnB,cAACqJ,IAAK6rB,QAAQylC,SAAQ,CAACpjD,KAAK,UAASpX,SAAEslB,UAI3C3gB,eAACuE,IAAK2rB,MAAK,CAACh0B,UAAS,QAAAsF,OAAUtF,GAAa8nB,GAAIA,EAAImM,UAAWzwB,EAAKrE,SAAA,CAClEH,cAACqJ,IAAKgrB,MAAK,CAAAl0B,SAAEsV,IAnCH,aAATjR,GAAgC,aAATA,EAqCtBxE,cAACmrF,EAAiBxqF,YAAA,CAAC4W,KAAMA,EAAM4d,YAAaA,EAAa3wB,KAAMA,GAAU9D,IAEzEV,cAACqJ,IAAK6rB,QAAOv0B,YAAA,CAAC4W,KAAMA,EAAM4d,YAAaA,EAAa3wB,KAAMA,GAAU9D,IAErEP,EACDH,cAACqJ,IAAK6rB,QAAQylC,SAAQ,CAACpjD,KAAK,UAASpX,SAAEslB,QAKjD,EClEagmE,EAAmBnqF,IAAOC,IAAGC,MAAAC,YAAA,uDCA7B89C,EAAa,SAAHj/C,GAAsB,IAAhBH,EAAQG,EAARH,SAC3B,OAAOH,cAACyrF,EAAgB,CAACzqF,UAAU,cAAab,SAAEA,GACpD,ECFa20B,EAAyBxzB,IAAOoqF,MAAMllF,MAAM,CACvDxF,UAAW,aADyBM,CAEpCE,MAAAC,YAAA,yBACS,SAAAnB,GAAQ,OAAAA,EAALqB,MAAkBC,OAAOoqB,WAAW,G,kCCLlD,qLAEO,SAASwC,EAA4BgqB,EAAcvR,GACxD,IACE,OAAOvyB,KAAK+a,MAAM+oB,EACpB,CAAE,MAAO/yB,GACP,OAAOwhB,CACT,CACF,CAQO,SAAS+yB,EAAYtgD,GAC1B,OAAuB,MAAb,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK7M,OACd,CAEO,SAASkgE,EAAwBpc,EAA8Bz8B,GACpE,MAAM,aAAN5tB,OACEoQ,OAAOwd,KAAY+4C,KAAYC,MAAQ,iCAAmC,+BAA8B,wBAAA5mE,OACnFqqD,EAAmBre,OAC5C,CAEO,SAASq5C,EAAgB1hF,GAAgB,IAAD2hF,EAAAtgC,EAAAugC,EAM7C,OAJ2F,QAAzFD,EAAqE,QAArEtgC,EAAArhD,EAAOxF,MAAK,SAACo3C,GAAC,MAAuC,kBAAlCA,EAAEiwC,2BAA+C,WAAC,IAAAxgC,OAAA,EAArEA,EAAuEx9C,0BAAkB,IAAA89E,IAChF,QADgFC,EACzF5hF,EAAO,UAAE,IAAA4hF,OAAA,EAATA,EAAWC,6BACP7hF,EAAO,GAAG6D,mBACV,EAER,CAEO,SAAS2kE,EAAoBsZ,EAAQC,GAC1C,MAAM,GAAN1lF,OAAUylF,EAAM,cAAAzlF,OAAa0lF,EAC/B,C,kCCrCA,8LAIavvC,EAAc,SAACwvC,EAAiBllF,GAA+B,IAADmlF,EAAAC,EACrEC,EAAO,GAAA9lF,OAAa,OAAP2lF,QAAO,IAAPA,IAAW,0BAAyB,gBAErD,GAAI7wC,kBAAQr0C,GAAc,OAAOqlF,EAEjCA,GAAO,QAAA9lF,OAAYS,EAAYoC,KAC/B,IAAMuyC,EAAa30C,EAAYo1C,WAAWhmC,QAAO,SAACzJ,GAAC,OAAc,IAATA,EAAEC,EAAQ,IAG9D0/E,EAA6D,QAAzDH,EAAGxwC,EAAWj3C,MAAK,SAACo3C,GAAC,MAA0B,YAArBA,EAAEC,cAA4B,WAAC,IAAAowC,OAAA,EAAtDA,EAAwD3/E,YASnE,OARK6uC,kBAAQixC,KAAOD,GAAO,YAAA9lF,OAAgB6oB,WAAWk9D,EAAKzwE,QAAQ,KAAM,OAGzEywE,EAAkE,QAA9DF,EAAGzwC,EAAWj3C,MAAK,SAACo3C,GAAC,MAA0B,iBAArBA,EAAEC,cAAiC,WAAC,IAAAqwC,OAAA,EAA3DA,EAA6D5/E,YAC/D6uC,kBAAQixC,KAAOD,GAAO,cAAA9lF,OAAkB+lF,IAE7CD,GAAW,aAGb,EAEME,EAAmBngE,SAAShC,IAAaC,eAAemiE,oBACjD3qC,EAAY,SAAC4qC,GACxB,OAAOF,EAAgB,YAAAhmF,OAAekmF,GAAiB,oBAAAlmF,OAAyBkmF,EAClF,EAEanlB,EAAkB,WAAH,OAAUilB,EAAmB,aAAe,qBAAqB,EAChFrlB,EAAoB,WAAH,OAAUqlB,EAAmB,cAAgB,uBAAuB,EACrF7nB,EAAe,WAAH,OAAU6nB,EAAmB,UAAY,WAAW,C","file":"static/js/main.21c17e89.chunk.js","sourcesContent":["import { DEFAULT_ERROR_MESSAGE } from 'common/constants'\r\nimport { PropsWithChildren } from 'react'\r\nimport { Alert } from 'react-bootstrap'\r\nimport { ErrorBoundary, withErrorBoundary } from 'react-error-boundary'\r\n\r\nconst ErrorFallback = () => {\r\n return {DEFAULT_ERROR_MESSAGE}\r\n}\r\n\r\nexport const DefaultErrorBoundary = ({ children }: PropsWithChildren<{}>) => (\r\n {children}\r\n)\r\n\r\nexport function withDefaultErrorBoundary

(component: React.ComponentType

) {\r\n return withErrorBoundary

(component, {\r\n FallbackComponent: ErrorFallback\r\n })\r\n}\r\n","export const ArrowDown = (props) => (\r\n \r\n \r\n \r\n)\r\n","export const ArrowUp = (props) => (\r\n \r\n \r\n \r\n)\r\n","import { extraLargeScreen, largeScreen, smallScreen } from 'common/theme'\r\nimport { Popover } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nconst minWidth = '20rem'\r\n\r\nexport const StyledSort = styled.div`\r\n & {\r\n display: flex;\r\n align-items: center;\r\n }\r\n .sort-label {\r\n font-weight: 600;\r\n margin-right: 0.3rem;\r\n\r\n display: inline-block;\r\n @media (max-width: ${extraLargeScreen}) {\r\n display: none;\r\n }\r\n }\r\n\r\n .btn-current-sort {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n\r\n font-size: 1.6rem;\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.primary};\r\n\r\n background: none;\r\n border: none;\r\n }\r\n\r\n .btn.btn-current-sort:hover,\r\n .btn.btn-current-sort:focus,\r\n .btn.btn-current-sort:active {\r\n color: ${({ theme }) => theme.colors.primaryDarken};\r\n background: none;\r\n border: none;\r\n box-shadow: none;\r\n }\r\n\r\n @media (max-width: ${smallScreen}) {\r\n display: inline-flex;\r\n }\r\n\r\n @media (max-width: ${largeScreen}) {\r\n float: right;\r\n align-items: center;\r\n }\r\n`\r\nexport const StyledSortPopover = styled(Popover)`\r\n & {\r\n min-width: ${minWidth};\r\n }\r\n .sort-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n margin-top: 1.2rem;\r\n font-size: 1.5rem;\r\n }\r\n\r\n .btn-sort {\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n\r\n .sort-button-group .btn-sort.active {\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n color: white;\r\n }\r\n`\r\n","import { ArrowDown } from 'icons/ArrowDown'\r\nimport { ArrowUp } from 'icons/ArrowUp'\r\nimport { groupBy } from 'lodash'\r\nimport { useRef, useState, useEffect } from 'react'\r\nimport { Button, Overlay, Popover } from 'react-bootstrap'\r\nimport { ISortBy, SortOrder } from 'types/baseTypes'\r\n\r\nimport { StyledSort, StyledSortPopover } from './Sort.styled'\r\n\r\ninterface IProps {\r\n currentSort: ISortBy\r\n sortOptions: ISortBy[]\r\n onChange?: (selectedSort: ISortBy) => void\r\n}\r\n\r\nconst parseSortName = (sortName: string) => {\r\n return sortName?.slice(0, sortName.indexOf(' -')) // Remove ' -' from option's name\r\n}\r\n\r\nexport const Sort = ({ currentSort: currentSortProp, sortOptions, onChange }: IProps) => {\r\n const [currentSort, setCurrentSort] = useState(currentSortProp)\r\n const [sortName, setSortName] = useState(currentSortProp?.Name ?? '')\r\n const [show, setShow] = useState(false)\r\n const sortRef = useRef(null)\r\n const containerRef = useRef(null)\r\n const sortFields = groupBy(\r\n sortOptions?.map((so) => ({ ...so, Name: parseSortName(so.Name) })),\r\n 'Name'\r\n )\r\n\r\n const handleSortChange = (sortValue: string) => {\r\n if (sortValue !== currentSort.Name) {\r\n const selectedSort = sortOptions.find((so) => so.Value === sortValue)\r\n setCurrentSort(selectedSort)\r\n setShow(false)\r\n onChange?.(selectedSort)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const name =\r\n currentSort.Name ??\r\n sortOptions?.find((o) => o.DBFieldName === currentSort.DBFieldName && o.Value === currentSort.Value)?.Name ??\r\n ''\r\n setSortName(name)\r\n }, [currentSort, sortOptions])\r\n\r\n return (\r\n <>\r\n {currentSort && (\r\n

\r\n \r\n Sort by\r\n \r\n \r\n setShow(false)}\r\n show={show}\r\n placement=\"bottom\"\r\n transition={false}\r\n >\r\n \r\n \r\n {Object.keys(sortFields).map((sortFieldName) => (\r\n
\r\n
{sortFieldName}
\r\n
\r\n {sortFields[sortFieldName].map((sortOption, i) => (\r\n handleSortChange(sortOption.Value)}\r\n className={`btn-sort ${sortOption.Value === currentSort.Value ? 'active' : ''}`}\r\n >\r\n {sortOption.SortOrder === SortOrder.ASC ? : }\r\n \r\n ))}\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 { Alert } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledUnwatchPlaceholderAlert = styled(Alert).attrs({\r\n variant: 'warning'\r\n})`\r\n min-height: 5rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.4rem;\r\n`\r\n\r\nexport const StyledAddWatchListSpan = styled.span`\r\n color: ${({ theme }) => theme.colors.linkColor};\r\n cursor: pointer;\r\n`\r\n\r\nexport const StyledRemovedWatchListPlaceHolder = styled.div``\r\n","import { VehicleDetailsView } from 'common/constants'\r\nimport { VehicleContext } from 'modules/DealerVehicleManagement/VehicleContext'\r\nimport { useContext, useMemo } from 'react'\r\nimport { Col, Row, Spinner } from 'react-bootstrap'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { IVehicleInfo } from 'types/vehicleTypes'\r\nimport shallow from 'zustand/shallow'\r\n\r\nimport {\r\n StyledAddWatchListSpan,\r\n StyledRemovedWatchListPlaceHolder,\r\n StyledUnwatchPlaceholderAlert\r\n} from './UnwatchPlaceholder.styled'\r\n\r\ninterface IProps {\r\n vehicleInfo: IVehicleInfo\r\n viewStyle?: VehicleDetailsView\r\n}\r\nexport const UnwatchPlaceholder = ({ vehicleInfo, viewStyle = VehicleDetailsView.List }: IProps) => {\r\n const isListView = useMemo(() => viewStyle === VehicleDetailsView.List, [viewStyle])\r\n const getLocalText = useGlobalStore((state) => state.getLocalText, shallow)\r\n const {\r\n vehicleWatchListState: { isSaving, saveWatchList }\r\n } = useContext(VehicleContext)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {vehicleInfo.Title}\r\n {getLocalText('REMOVED_FROM_WATCHLIST', 'removed from Watch List!')}\r\n \r\n \r\n \r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n \r\n {getLocalText('ADD_TO_WATCHLIST', 'Add to watchlist')}\r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { StockwaveData } from 'modules/Stockwave/StockwaveData'\r\nimport { StyledVehicleDetailsColumn } from 'modules/VehicleList'\r\nimport { UnwatchPlaceholder } from 'modules/Watchlist/UnwatchPlaceholder'\r\nimport { useContext } from 'react'\r\nimport { Col, Form, Row } from 'react-bootstrap'\r\nimport { IVehicleData } from '../../types/vehicleTypes'\r\nimport { CarfaxAdvantage } from './CarfaxAdvantage'\r\nimport { VehicleContext } from './VehicleContext'\r\nimport VehicleDetailImage from './VehicleDetailImage'\r\nimport { StyledCarfaxCol, StyledVehicleDetailsCard } from './VehicleDetails.styled'\r\nimport { VehicleInformation } from './VehicleInformation'\r\n\r\nexport interface IVehicleDetailsProps {\r\n vehicleData: IVehicleData\r\n enableRemovedWatchlistPlaceholder: boolean\r\n onSelect?: (e: boolean) => void\r\n showCheckbox?: boolean\r\n isSelected?: boolean\r\n isShowRemoveBidButton?: boolean\r\n}\r\n\r\nexport const VehicleListLayout = ({\r\n vehicleData,\r\n enableRemovedWatchlistPlaceholder,\r\n onSelect,\r\n isSelected,\r\n showCheckbox\r\n}: IVehicleDetailsProps) => {\r\n const { vehicle: vehicleInfo } = vehicleData\r\n const {\r\n vehicleData: {\r\n vehicle: { WatchListID }\r\n }\r\n } = useContext(VehicleContext)\r\n\r\n if (!WatchListID && enableRemovedWatchlistPlaceholder) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n const handleCheckboxClick = (e: any) => {\r\n const { checked } = e.target as HTMLInputElement\r\n onSelect?.(checked)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n {showCheckbox && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \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 { zIndex } from 'common/constants'\r\nimport {\r\n BuyItNowButtonContainer,\r\n BuyItNowButtonGroup,\r\n StyledAuctionButton\r\n} from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { StyledVehicleBidBuyInformation } from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { StyledRemovedWatchListPlaceHolder } from 'modules/Watchlist/UnwatchPlaceholder.styled'\r\nimport styled from 'styled-components'\r\nimport { StyledVehicleAction } from './VehicleActions'\r\nimport { StyledTitleSection, StyledVehicleDetailsCard } from './VehicleDetails.styled'\r\nimport { StyledVehicleNote } from './VehicleNote.styled'\r\n\r\nexport const StyledBidBuyInfoSection = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n`\r\n\r\nexport const StyledVehicleDetailsGridCard = styled(StyledVehicleDetailsCard)`\r\n ${StyledVehicleBidBuyInformation} {\r\n flex: 1;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-end;\r\n }\r\n\r\n ${StyledAuctionButton} {\r\n width: 100%;\r\n margin: 1rem 0 0 0;\r\n }\r\n\r\n row-gap: 0.25rem;\r\n\r\n .vehicle-detail-image-section {\r\n max-width: initial;\r\n position: relative;\r\n\r\n .vehicle-select {\r\n z-index: ${zIndex.floatingControls};\r\n }\r\n }\r\n\r\n .auction-info {\r\n flex-grow: 2;\r\n }\r\n\r\n .vehicle-info {\r\n gap: initial;\r\n }\r\n\r\n .stockwave-light-bulb-container {\r\n margin-left: 4rem;\r\n }\r\n\r\n ${StyledVehicleNote} {\r\n .vehicle-note {\r\n max-width: 20rem;\r\n }\r\n }\r\n\r\n ${BuyItNowButtonContainer} {\r\n flex-direction: column;\r\n row-gap: 0.5rem;\r\n }\r\n\r\n ${StyledTitleSection} {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n\r\n ${BuyItNowButtonGroup} {\r\n width: 100%;\r\n }\r\n\r\n ${StyledRemovedWatchListPlaceHolder} {\r\n .alert {\r\n flex-direction: column;\r\n }\r\n }\r\n\r\n ${StyledVehicleAction} {\r\n justify-content: space-between;\r\n }\r\n\r\n ${StyledTitleSection} {\r\n padding: 0;\r\n }\r\n`\r\n","import styled from 'styled-components'\r\nimport { StyledVehicleDetailImage } from './VehicleDetailImage.style'\r\nimport { zIndex } from 'common/constants'\r\n\r\nexport const StyledVehicleDetailsGridCardImage = styled(StyledVehicleDetailImage)`\r\n img {\r\n max-width: inherit;\r\n max-height: 22rem;\r\n\r\n object-fit: cover;\r\n object-position: center;\r\n\r\n &.img-err {\r\n object-fit: contain;\r\n }\r\n }\r\n\r\n .pill {\r\n border-radius: 0.5rem 0.5rem;\r\n padding: 0 0.5rem;\r\n }\r\n\r\n .page-indicator {\r\n position: absolute;\r\n z-index: ${zIndex.floatingControls};\r\n right: 0;\r\n margin: 0.5rem;\r\n background: #808080;\r\n color: #f0f0f0;\r\n }\r\n\r\n .carousel {\r\n .carousel-item {\r\n span {\r\n width: 100%;\r\n }\r\n\r\n img,\r\n span {\r\n height: 100%;\r\n }\r\n }\r\n\r\n a[class^='carousel-control-'] {\r\n width: 8%;\r\n opacity: 1;\r\n\r\n &:hover {\r\n opacity: 0.5;\r\n }\r\n }\r\n }\r\n .img-load-err {\r\n cursor: default;\r\n }\r\n`\r\n","import 'react-lazy-load-image-component/src/effects/blur.css'\r\n\r\nimport { faChevronLeft, faChevronRight } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport classNames from 'classnames'\r\nimport bmwNewLogo from 'images/bmw-logo-new.png'\r\nimport { useContext, useEffect, useMemo, useState } from 'react'\r\nimport { Carousel } from 'react-bootstrap'\r\nimport { LazyLoadImage } from 'react-lazy-load-image-component'\r\nimport { IVehicleImage } from 'types/vehicleTypes'\r\n\r\nimport { StyledVehicleDetailsGridCardImage } from './VehicleDetailsGridCardImage.styled'\r\nimport { SliderContext } from 'contexts/SliderContext'\r\n\r\ninterface IProps {\r\n images: IVehicleImage[]\r\n vehicleInstanceID: number\r\n isDSI?: boolean\r\n}\r\n\r\ninterface IImage extends IVehicleImage {\r\n CanLoad: boolean\r\n}\r\n\r\nexport const VehicleDetailsGridCardImage = ({ images, vehicleInstanceID, isDSI = false }: IProps) => {\r\n const { setDisplaySlider, setSliderData, selectedImageID, selectedVehicle, showCarousel } = useContext(SliderContext)\r\n const [canLoadImage, setCanLoadImage] = useState(true)\r\n const [activeIndex, setActiveIndex] = useState(0)\r\n const imgList = useMemo(\r\n () => images?.map((img) => ({ ...img, CanLoad: true, Description: isDSI ? '' : img.Description })),\r\n [images]\r\n )\r\n useEffect(() => {\r\n if (selectedImageID && showCarousel && selectedVehicle === vehicleInstanceID) {\r\n let imgIndex = imgList.findIndex((x) => x.ID === selectedImageID)\r\n setActiveIndex(imgIndex === -1 ? 0 : imgIndex)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedImageID, imgList])\r\n\r\n const handleSelect = (selectedIndex: number) => {\r\n setActiveIndex(selectedIndex)\r\n\r\n setCanLoadImage(imgList[selectedIndex].CanLoad)\r\n }\r\n\r\n const handleBrokenImageURL = (id: number) => {\r\n imgList.find((img) => img.ID === id).CanLoad = false\r\n setCanLoadImage(false)\r\n }\r\n\r\n if (!imgList || imgList.length === 0) {\r\n return (\r\n \r\n {/* eslint-disable-next-line jsx-a11y/img-redundant-alt */}\r\n \"No\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {imgList?.length > 1 ? (\r\n <>\r\n {`${activeIndex + 1} / ${imgList.length}`}\r\n }\r\n prevIcon={}\r\n activeIndex={activeIndex}\r\n onSelect={handleSelect}\r\n >\r\n {imgList.map((img, idx) => (\r\n \r\n {\r\n currentTarget.onerror = null\r\n handleBrokenImageURL(img.ID)\r\n }}\r\n onClick={() => {\r\n if (canLoadImage) {\r\n setSliderData(imgList)\r\n setDisplaySlider(!!img.ImageURL, imgList[activeIndex].ID, vehicleInstanceID)\r\n }\r\n }}\r\n />\r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n {\r\n currentTarget.onerror = null\r\n handleBrokenImageURL(imgList[0].ID)\r\n }}\r\n onClick={() => {\r\n if (canLoadImage) {\r\n setSliderData(imgList)\r\n setDisplaySlider(!!imgList[0].ImageURL, imgList[0].ID, vehicleInstanceID)\r\n }\r\n }}\r\n />\r\n )}\r\n \r\n )\r\n}\r\n","import { VehicleDetailsView } from 'common/constants'\r\nimport { UnwatchPlaceholder } from 'modules/Watchlist/UnwatchPlaceholder'\r\nimport { useContext } from 'react'\r\nimport { Form } from 'react-bootstrap'\r\n\r\nimport { StyledBidBuyInfoSection, StyledVehicleDetailsGridCard } from './VehicleDetailsGridCard.styled'\r\nimport { VehicleDetailsGridCardImage } from './VehicleDetailsGridCardImage'\r\nimport { VehicleNote } from './VehicleNote'\r\nimport { StyledVehicleDetailsColumn } from 'modules/VehicleList'\r\nimport { VehicleTitleSection } from './VehicleTitleSection'\r\nimport { VehicleProperties } from './VehicleProperties'\r\nimport { VehicleActions } from './VehicleActions'\r\nimport { VehicleVin } from './VehicleDetails.styled'\r\nimport { IVehicleDetailsProps } from './VehicleDetails'\r\nimport { VehicleContext } from './VehicleContext'\r\nimport { StyledVehicleBidBuyInformation } from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { VehiclePriceSection } from './VehiclePriceSection'\r\nimport { VehicleTags } from './VehicleTags'\r\nimport { VehicleBidHistoryLink } from './VehicleBidHistoryLink'\r\nimport { VehicleTimer } from './VehicleTimer'\r\nimport { VehicleBidBuyActions } from './VehicleBidBuyActions'\r\nimport { UserMaxBid } from './UserMaxBid'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { StockwaveData } from 'modules/Stockwave/StockwaveData'\r\n\r\nexport const VehicleGridLayout = ({\r\n vehicleData,\r\n enableRemovedWatchlistPlaceholder,\r\n onSelect,\r\n isSelected,\r\n showCheckbox\r\n}: IVehicleDetailsProps) => {\r\n const { getSystemSetting } = useGlobalStore()\r\n const { vehicle: vehicleInfo } = vehicleData\r\n const {\r\n vehicleData: {\r\n vehicle: { WatchListID }\r\n }\r\n } = useContext(VehicleContext)\r\n\r\n const fieldLimit = (getSystemSetting('BGD_GRIDVIEW_VEHICLE_DETAILS_DISPLAY_FIELDS_LIMIT') as number) || null\r\n\r\n if (!WatchListID && enableRemovedWatchlistPlaceholder) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const handleCheckboxClick = (e: any) => {\r\n const { checked } = e.target as HTMLInputElement\r\n onSelect?.(checked)\r\n }\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n {showCheckbox && (\r\n \r\n )}\r\n\r\n \r\n
\r\n \r\n \r\n {vehicleData.vehicle.VIN}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\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 styled from 'styled-components'\r\nimport { extraLargeScreen, largeScreen, mediumScreen, smallScreen } from 'common/theme'\r\nimport { StyledHomeSectionHeaderBanner } from 'components/Header/HomeSectionHeader.styled'\r\nimport { StyledNoActivity } from 'modules/BuyerActivity/NoActivity.styled'\r\nimport { StyledRibbonContainer } from 'modules/DealerVehicleManagement/VehicleDetails.styled'\r\nimport { Row } from 'react-bootstrap'\r\nimport { StyledVehicleAction } from 'modules/DealerVehicleManagement/VehicleActions'\r\n\r\nexport const StyledVehicleList = styled.div`\r\n padding: 2.4rem;\r\n\r\n background-color: #f8f8f8;\r\n\r\n .grid-card-col {\r\n display: flex;\r\n }\r\n\r\n ${StyledNoActivity} {\r\n @media (min-width: ${mediumScreen}) {\r\n img {\r\n width: 21rem;\r\n height: 20rem;\r\n }\r\n }\r\n }\r\n`\r\nStyledVehicleList.displayName = 'StyledVehicleList'\r\n\r\nexport const StyledSelectAll = styled.div`\r\n margin: 0.5rem 1.5rem;\r\n`\r\n\r\nexport const StyledStickyHeaderPage = styled.div`\r\n ${StyledHomeSectionHeaderBanner} {\r\n white-space: nowrap;\r\n @media (max-width: ${smallScreen}) {\r\n .navigation-link {\r\n display: none;\r\n }\r\n }\r\n }\r\n`\r\nexport const StyledHeaderActions = styled.div`\r\n display: flex;\r\n align-items: center;\r\n gap: 2rem;\r\n font-size: 1.6rem;\r\n\r\n @media (max-width: ${extraLargeScreen}) {\r\n gap: 1rem;\r\n }\r\n\r\n margin-right: 2.5rem;\r\n\r\n .view-icons {\r\n gap: 1.2rem;\r\n .prism-icon-svg {\r\n opacity: 0.5;\r\n\r\n &.active,\r\n &:hover {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n .right-action,\r\n .prism-icon-svg {\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n\r\n .right-action:hover,\r\n .btn-current-sort:hover {\r\n opacity: 0.5;\r\n }\r\n\r\n .right-action,\r\n .view-icons {\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n }\r\n\r\n @media (max-width: ${smallScreen}) {\r\n .view-icons {\r\n display: none;\r\n }\r\n .export-view {\r\n display: none;\r\n }\r\n }\r\n\r\n .dropdown-toggle:after {\r\n display: none;\r\n }\r\n\r\n .chevron-down-icon {\r\n margin-top: 0.5rem;\r\n }\r\n\r\n .dropdown-item {\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: 600;\r\n height: 2.5rem;\r\n display: flex;\r\n align-items: center;\r\n transition: all 167ms ease-in;\r\n position: relative;\r\n background-color: transparent;\r\n\r\n &:hover {\r\n color: white;\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n }\r\n }\r\n\r\n .dropdown-menu.show {\r\n transform: translate(30px, 26px) !important;\r\n }\r\n`\r\n\r\nexport const StyledVehicleDetailsColumn = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n height: 100%;\r\n`\r\n\r\nexport const StyledVehicleDetailsHeaderRow = styled(Row)`\r\n flex-wrap: unset;\r\n justify-content: space-between;\r\n @media (max-width: ${largeScreen}) {\r\n flex-wrap: wrap;\r\n ${StyledVehicleAction} {\r\n width: 100%;\r\n }\r\n ${StyledRibbonContainer} {\r\n width: 100%;\r\n }\r\n }\r\n`\r\nexport const StyledVehicleDetailsBody = styled.div``\r\n","import { IconSvg } from '@prism/icon'\r\nimport classNames from 'classnames'\r\nimport { DEFAULT_ERROR_MESSAGE, SessionStorageKey, VehicleDetailsView } from 'common/constants'\r\nimport { Loader, OverlayLoader } from 'components/Loader'\r\nimport { Paging } from 'components/Paging'\r\nimport ScrollButton from 'components/ScrollButton/ScrollButton'\r\nimport { Sort } from 'components/Sort/Sort'\r\nimport { useDealerManagedVehicles } from 'hooks/useDealerManagedVehicles'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport NoActivity from 'modules/BuyerActivity/NoActivity'\r\nimport { VehicleContextProvider } from 'modules/DealerVehicleManagement/VehicleContext'\r\nimport React, { ReactElement, ReactNode, useContext, useEffect, useMemo, useState } from 'react'\r\nimport { Col, ColProps, Form, Row } from 'react-bootstrap'\r\nimport { IBaseCollectionRequest, IBaseCollectionResponse, ISortBy } from 'types/baseTypes'\r\nimport { GetBidVehiclesRequest, IGetBidVehiclesResponse, IVehicleData } from 'types/vehicleTypes'\r\n\r\nimport { IVehicleDetailsProps, VehicleListLayout } from 'modules/DealerVehicleManagement/VehicleDetails'\r\nimport { VehicleGridLayout } from 'modules/DealerVehicleManagement/VehicleDetailsGridCard'\r\nimport { StyledHeaderActions, StyledSelectAll, StyledStickyHeaderPage, StyledVehicleList } from './VehicleList.styled'\r\nimport { VehicleListContext } from './VehicleListContext'\r\nimport { SliderContext } from 'contexts/SliderContext'\r\nimport { VehicleStickyBar } from './VehicleStickyBar'\r\n\r\ninterface IProps {\r\n title: ReactNode\r\n queryFunction: (request: IBaseCollectionRequest) => Promise>\r\n queryRequest?: IBaseCollectionRequest\r\n countQueryFunction?: (request: IBaseCollectionRequest) => Promise>\r\n navigationLink?: (count: number) => ReactElement\r\n checkboxAction?: (selectedVehicles: number[], vehicles?: IVehicleData[]) => ReactElement\r\n enableRemovedWatchlistPlaceholder?: boolean\r\n noActivityMessage: string\r\n showCheckbox?: boolean\r\n isShowRemoveBidButton?: boolean\r\n bottomPagination?: boolean\r\n gridLayoutColProps?: ColProps\r\n}\r\nexport const VehicleList = ({\r\n title,\r\n queryFunction,\r\n queryRequest,\r\n countQueryFunction,\r\n navigationLink,\r\n enableRemovedWatchlistPlaceholder = false,\r\n isShowRemoveBidButton = false,\r\n noActivityMessage,\r\n checkboxAction,\r\n showCheckbox,\r\n bottomPagination = true,\r\n gridLayoutColProps = { xs: 12, xl: 3, lg: 4, md: 6 }\r\n}: IProps) => {\r\n const { currentPage, currentPageSize, currentSortBy, selectedVehicles, setVehiclesState } =\r\n useContext(VehicleListContext)\r\n const { setDisplaySlider } = useContext(SliderContext)\r\n const {\r\n loading,\r\n sortOptions,\r\n vehicles,\r\n refetch,\r\n totalRecords: totalRecordsForHeader,\r\n TotalPages\r\n } = useDealerManagedVehicles(\r\n queryFunction,\r\n useMemo(() => {\r\n if (!queryRequest) return new GetBidVehiclesRequest(currentPageSize, currentPage, currentSortBy)\r\n\r\n return {\r\n ...queryRequest,\r\n ...new GetBidVehiclesRequest(currentPageSize, currentPage, currentSortBy)\r\n }\r\n }, [queryRequest, currentPageSize, currentPage, currentSortBy])\r\n )\r\n\r\n const { data: { TotalRecords: totalRecordsForNavlink } = {} as IGetBidVehiclesResponse, loading: countLoading } =\r\n useFetch(() =>\r\n countQueryFunction\r\n ? countQueryFunction(new GetBidVehiclesRequest(currentPageSize, currentPage, currentSortBy))\r\n : Promise.resolve({} as IBaseCollectionResponse)\r\n )\r\n const handleSortChange = (selectedSortBy: ISortBy) => {\r\n setVehiclesState((state) => {\r\n state.currentSortBy = selectedSortBy\r\n state.selectedVehicles = []\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n setVehiclesState((state) => {\r\n state.totalPages = TotalPages\r\n })\r\n }, [TotalPages, setVehiclesState])\r\n\r\n const [viewStyle, setViewStyle] = useState(\r\n (sessionStorage.getItem(SessionStorageKey.VIEW_VEHICLE_LIST) as VehicleDetailsView) || VehicleDetailsView.List\r\n )\r\n useEffect(() => {\r\n sessionStorage.setItem(SessionStorageKey.VIEW_VEHICLE_LIST, viewStyle)\r\n }, [viewStyle, setViewStyle])\r\n\r\n const isSelectAll = vehicles?.every((item) =>\r\n selectedVehicles.find((selectedId) => selectedId === item.vehicle.InstanceID)\r\n )\r\n\r\n const handleSelectAll = () => {\r\n setVehiclesState((state) => {\r\n if (isSelectAll) {\r\n state.selectedVehicles = []\r\n } else {\r\n state.selectedVehicles = vehicles.map((item) => item.vehicle.InstanceID)\r\n }\r\n })\r\n }\r\n const handleSelectVehicle = (instanceID: number, checked: boolean) => {\r\n if (checked && selectedVehicles.indexOf(instanceID) < 0) {\r\n setVehiclesState((state) => {\r\n state.selectedVehicles = [...selectedVehicles, instanceID]\r\n })\r\n }\r\n\r\n if (!checked && selectedVehicles.indexOf(instanceID) >= 0) {\r\n setVehiclesState((state) => {\r\n state.selectedVehicles = selectedVehicles.filter((item) => item !== instanceID)\r\n })\r\n }\r\n }\r\n useEffect(() => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n })\r\n }, [viewStyle])\r\n\r\n let colProps: ColProps\r\n let Card: React.FunctionComponent\r\n if (viewStyle === VehicleDetailsView.List) {\r\n colProps = { xs: 12 }\r\n Card = VehicleListLayout\r\n } else {\r\n colProps = gridLayoutColProps\r\n Card = VehicleGridLayout\r\n }\r\n\r\n const handlePageSizeChanged = (pageSizeSelected: number) => {\r\n setVehiclesState((state) => {\r\n state.currentPage = 0\r\n state.currentPageSize = Number(pageSizeSelected)\r\n })\r\n }\r\n\r\n const paginationClicked = (pageSelected: number) => {\r\n if (pageSelected === currentPage + 1) return\r\n\r\n setVehiclesState((state) => {\r\n state.currentPage = pageSelected - 1\r\n })\r\n }\r\n useEffect(() => {\r\n if (vehicles?.length > 0) {\r\n var vehicleIDs = vehicles.map((item) => item.vehicle.InstanceID)\r\n sessionStorage.setItem(SessionStorageKey.VEHICLE_INSTANCES, JSON.stringify(vehicleIDs))\r\n } else {\r\n sessionStorage.removeItem(SessionStorageKey.VEHICLE_INSTANCES)\r\n }\r\n }, [vehicles])\r\n\r\n useEffect(() => {\r\n setDisplaySlider(false, null, null)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [queryRequest, currentPageSize, currentPage, currentSortBy])\r\n\r\n return (\r\n <>\r\n {loading && }\r\n \r\n \r\n {showCheckbox && checkboxAction?.(selectedVehicles, vehicles)}\r\n {countLoading ? (\r\n \r\n ) : (\r\n navigationLink &&\r\n navigationLink(countQueryFunction ? totalRecordsForNavlink ?? 0 : totalRecordsForHeader ?? 0)\r\n )}\r\n {totalRecordsForHeader > 0 && sortOptions?.length > 0 && (\r\n \r\n )}\r\n \r\n setViewStyle(VehicleDetailsView.List)}\r\n />\r\n setViewStyle(VehicleDetailsView.Grid)}\r\n />\r\n \r\n \r\n }\r\n />\r\n\r\n {vehicles && (\r\n \r\n {vehicles?.length > 0 ? (\r\n <>\r\n {showCheckbox && !!checkboxAction && (\r\n \r\n \r\n \r\n )}\r\n \r\n {vehicles.map((item, index) => (\r\n \r\n \r\n handleSelectVehicle(item.vehicle.InstanceID, checked)}\r\n enableRemovedWatchlistPlaceholder={enableRemovedWatchlistPlaceholder}\r\n vehicleData={item}\r\n isSelected={selectedVehicles.indexOf(item.vehicle.InstanceID) >= 0}\r\n />\r\n \r\n \r\n ))}\r\n \r\n {bottomPagination && (\r\n \r\n )}\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 { DEFAULT_SMALL_PAGE_SIZE } from 'common/constants'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport { useVehicles } from 'hooks/useVehicles'\r\nimport { IBaseCollectionRequest, IBaseCollectionResponse } from 'types/baseTypes'\r\nimport { GetBidVehiclesRequest, IVehicleData } from 'types/vehicleTypes'\r\n\r\nexport const useDealerManagedVehicles = <\r\n TRequest extends IBaseCollectionRequest,\r\n TResponse extends IBaseCollectionResponse\r\n>(\r\n queryFunction: (request: TRequest) => Promise,\r\n getBidVehicleRequest?: TRequest\r\n) => {\r\n const {\r\n data: {\r\n Items,\r\n TotalRecords: totalRecords,\r\n SortOptions: sortOptions,\r\n SortBy: sortBy,\r\n TotalPages,\r\n PageNumber\r\n } = {} as TResponse,\r\n loading,\r\n refetch\r\n } = useFetch(\r\n () => queryFunction(getBidVehicleRequest || (new GetBidVehiclesRequest(DEFAULT_SMALL_PAGE_SIZE) as TRequest)),\r\n [queryFunction, getBidVehicleRequest]\r\n )\r\n const { vehicles } = useVehicles(Items)\r\n\r\n return { refetch, loading, totalRecords, vehicles, sortOptions, sortBy, TotalPages, PageNumber }\r\n}\r\n","import { apiRootPath, fetchAsync, postAsync } from 'common/fetch'\r\nimport { IContactUsReponse } from 'types/contactTypes'\r\nimport { IBuyerAuthorizationResponse, ISecretQuestionResponse } from 'types/rmsAuthModel'\r\nimport { IUserClaimReponse } from 'types/userTypes'\r\nimport { toUrlSearchParams } from 'utils/urlParams'\r\nimport { IContactUsData } from './../types/contactTypes'\r\n\r\nexport const login = (username: string, password: string) => {\r\n const loginData = {\r\n grant_type: 'password',\r\n username: username,\r\n password: password\r\n }\r\n return postAsync<{ access_token: string; isFirstLogin: string }>('/token', {\r\n body: new URLSearchParams(loginData).toString(),\r\n type: 'form-data'\r\n })\r\n}\r\n\r\nexport const validateBuyer = () => {\r\n return postAsync(`${apiRootPath}/auth/validatebuyer`)\r\n}\r\n\r\nexport const getSecretQuestion = (username: string) => {\r\n return fetchAsync(`${apiRootPath}/account/getsecretquestion?username=${username}`)\r\n}\r\nexport const sendPasswordReset = (username: string, answer: string, questionId: number) => {\r\n const passwordReset = {\r\n username: username,\r\n answer: answer,\r\n questionCode: questionId\r\n }\r\n return fetchAsync(`${apiRootPath}/account/sendpasswordreset?${toUrlSearchParams(passwordReset)}`)\r\n}\r\n\r\nexport const getUserClaims = () => {\r\n return fetchAsync(`${apiRootPath}/user/claims`)\r\n}\r\n\r\nexport const getCsrfToken = () => {\r\n return fetchAsync(`${apiRootPath}/auth/csrftoken`)\r\n}\r\n\r\nexport const acceptNews = async (newsID: number, markAccept: boolean) => {\r\n return fetchAsync(`/api/v1/account/acceptNews?ID=${newsID}&markAsAccept=${markAccept}`)\r\n}\r\n\r\nexport const getContactUsDropDown = async (vendorId: number) => {\r\n return fetchAsync(`/api/dashboard/GetContactUsDropDowns?vendorId=${vendorId}`)\r\n}\r\n\r\nexport const getValidatedVin = async (vendorId: number, vin: string) => {\r\n return postAsync(`/api/dashboard/GetValidatedVin?vendorId=${vendorId}&vin=${vin}`)\r\n}\r\n\r\nexport const sendContactUsEmail = async (request: IContactUsData) => {\r\n return postAsync(`/api/dashboard/SendContactUsEmail`, { body: request })\r\n}\r\n","/**\r\n * Author: juliencrn\r\n * Availability: https://usehooks-ts.com/react-hook/use-locked-body\r\n */\r\n\r\nimport { useEffect, useLayoutEffect, useState } from 'react'\r\n\r\nfunction useLockedBody(initialLocked = false) {\r\n const [locked, setLocked] = useState(initialLocked)\r\n\r\n // Do the side effect before render\r\n useLayoutEffect(() => {\r\n if (!locked) {\r\n return\r\n }\r\n\r\n // Save initial body style\r\n const originalOverflow = document.body.style.overflow\r\n const originalPaddingRight = document.body.style.paddingRight\r\n\r\n // Lock body scroll\r\n document.body.style.overflow = 'hidden'\r\n\r\n // Get the scrollBar width\r\n const root = document.getElementById('root')\r\n const scrollBarWidth = root ? root.offsetWidth - root.scrollWidth : 0\r\n\r\n // Avoid width reflow\r\n if (scrollBarWidth) {\r\n document.body.style.paddingRight = `${scrollBarWidth}px`\r\n }\r\n\r\n return () => {\r\n document.body.style.overflow = originalOverflow\r\n\r\n if (scrollBarWidth) {\r\n document.body.style.paddingRight = originalPaddingRight\r\n }\r\n }\r\n }, [locked])\r\n\r\n // Update state if initialValue changes\r\n useEffect(() => {\r\n if (locked !== initialLocked) {\r\n setLocked(initialLocked)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [initialLocked])\r\n\r\n return [locked, setLocked]\r\n}\r\n\r\nexport default useLockedBody\r\n","import { extraLargeScreen } from 'common/theme'\r\nimport useLockedBody from 'hooks/useLockedBody'\r\nimport useWindowSize from 'hooks/useWindowSize'\r\nimport React, { createContext, useLayoutEffect, useState } from 'react'\r\nexport interface ILayoutContext {\r\n showMenuSidebar: boolean\r\n setShowMenuSidebar: (value: boolean) => void\r\n isSticky: boolean\r\n setIsSticky: (sticky: boolean) => void\r\n}\r\n\r\nexport const LayoutContext = createContext({} as ILayoutContext)\r\n\r\nexport const LayoutContextProvider = ({ children }: React.PropsWithChildren<{}>) => {\r\n const [showMenuSidebar, setShowMenuSidebar] = useState(false)\r\n const [isSticky, setIsSticky] = useState(false)\r\n const { width } = useWindowSize()\r\n\r\n useLayoutEffect(() => {\r\n if (width >= Number(extraLargeScreen.replace(/\\D*/g, ''))) {\r\n setShowMenuSidebar(false)\r\n }\r\n }, [width])\r\n\r\n useLockedBody(showMenuSidebar)\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { ISRPSearchParams } from 'contexts/FilterSearchContext'\r\nimport produce from 'immer'\r\nimport { createContext, PropsWithChildren, useMemo, useState } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { ISortBy } from 'types/baseTypes'\r\nimport { getDefaultSRPFilter, resetSRPFilter } from 'utils/menuUtils'\r\nimport { parseUrlSearchParams } from 'utils/urlParams'\r\n\r\nexport interface IVehicleListState {\r\n currentPage: number\r\n totalPages?: number\r\n currentSortBy: ISortBy\r\n currentPageSize: number\r\n selectedVehicles: number[]\r\n}\r\n\r\ntype SetStateAction = (state: T) => void\r\n\r\nexport interface IVehicleListContext extends IVehicleListState {\r\n setVehiclesState: (action: SetStateAction) => void\r\n}\r\n\r\nexport const VehicleListContext = createContext(null)\r\n\r\nexport const VehicleListContextProvider = ({ children }: PropsWithChildren) => {\r\n const location = useLocation()\r\n\r\n useMemo(() => {\r\n const query = parseUrlSearchParams(location.search)\r\n if (query?.clearSearch) {\r\n resetSRPFilter()\r\n }\r\n }, [location.search])\r\n\r\n const [state, setState] = useState({\r\n ...getDefaultSRPFilter(),\r\n selectedVehicles: []\r\n })\r\n\r\n const setVehiclesState = (action: SetStateAction) => {\r\n setState(produce(state, action))\r\n }\r\n return {children}\r\n}\r\n","export const textColor = '#3a3a3a'\r\nexport const textColorLight = '#494949'\r\nexport const textTableHeaderColor = '#fff'\r\nexport const textMenuColor = '#173B68'\r\nexport const borderColorSecondary = '#E3E4E5'\r\nexport const borderColorSecondaryLight = '#f4f4f4'\r\nexport const borderColorPrimary = '#173B68'\r\nexport const colorDanger = '#b11926'\r\nexport const colorWinning = '#26ad77'\r\nexport const colorWatching = '#999'\r\nexport const colorBackgroundMobileMenu = 'rgb(244, 244, 244)'\r\nexport const gridBreakPoints = {\r\n sm: '576px',\r\n md: '768px',\r\n lg: '992px',\r\n xl: '1200px',\r\n xxl: '1400px'\r\n}\r\n\r\nexport const extraExtraLargeScreen = gridBreakPoints.xxl\r\nexport const extraLargeScreen = gridBreakPoints.xl\r\nexport const smallScreen = gridBreakPoints.sm\r\nexport const mediumScreen = gridBreakPoints.md\r\nexport const largeScreen = gridBreakPoints.lg\r\nexport const colorPrimaryDarken = '#004786'\r\nexport const colorWarning = '#f90'\r\nexport const colorBackgroundCarfaxItem = '#fdfbe1'\r\n\r\nexport const extraExtraLargeScreenSize = 1400\r\nexport const extraLargeScreenSize = 1200\r\nexport const largeScreenSize = 992\r\nexport const mediumScreenSize = 768\r\nexport const smallScreenSize = 576\r\nexport const mobileScreenSize = 375\r\n","import { zIndex } from 'common/constants'\r\nimport { gridBreakPoints } from 'common/theme'\r\nimport styled, { css, keyframes } from 'styled-components'\r\nimport { StyledMainNav, StyledNavBar } from './NavBar.styled'\r\n\r\nexport interface StickyProp {\r\n isSticky?: boolean\r\n}\r\nexport const StyledLayout = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n min-height: 100vh;\r\n`\r\n\r\nexport const StyledHeader = styled.div`\r\n width: 100%;\r\n background-color: ${({ isSticky, theme }) => (isSticky ? theme.colors.primary : null)};\r\n ${({ isSticky }) =>\r\n isSticky &&\r\n css`\r\n top: 0;\r\n z-index: ${zIndex.stickyHeader};\r\n max-height: 7.2rem;\r\n `}\r\n display: flex;\r\n align-items: center;\r\n ${({ isSticky }) => (isSticky ? headerAnimation : null)};\r\n`\r\n\r\nconst curtainEffect = keyframes`\r\n from {\r\n transform: translateY(-15rem);\r\n }\r\n`\r\nexport const headerAnimation = css`\r\n animation: ${curtainEffect} 0.6s ease-in-out;\r\n`\r\nexport const StyledBranding = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n flex-grow: 1;\r\n max-height: 12rem;\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n border-bottom: unset;\r\n }\r\n\r\n /*\r\n * Set a fixed height to prevent the logo from resizing\r\n * when transitioning between sticky and normal.\r\n */\r\n img.fixed-height {\r\n max-height: 4.25rem;\r\n }\r\n\r\n ${({ isSticky }) =>\r\n isSticky\r\n ? css`\r\n img {\r\n max-height: 4.25rem;\r\n }\r\n padding: 1rem 3rem;\r\n border-bottom: none;\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n justify-content: center;\r\n }\r\n `\r\n : css`\r\n padding: 2.75rem 2.75rem 1.75rem;\r\n border-bottom: 0.1rem solid ${({ theme }) => theme.colors.secondary};\r\n `}\r\n`\r\nexport const StyledMenuHeader = styled.div.attrs({\r\n className: 'container-fluid'\r\n})`\r\n font-family: ${({ theme }) => theme.fonts.fontRegular};\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 0 3rem;\r\n\r\n @media (min-width: ${gridBreakPoints.lg}) {\r\n ${StyledNavBar} {\r\n ${StyledMainNav} {\r\n .nav .nav-item:first-child > .nav-link {\r\n padding-left: 0;\r\n margin-left: 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n position: absolute;\r\n top: 0;\r\n }\r\n`\r\n\r\nexport const StyledBody = styled.div`\r\n flex-grow: 1;\r\n`\r\n\r\nexport const StyledBurgerButton = styled.div`\r\n width: 3.6rem;\r\n height: 3.6rem;\r\n display: none;\r\n margin-right: 2rem;\r\n\r\n z-index: 100;\r\n button {\r\n width: 100%;\r\n height: 100%;\r\n border: none;\r\n background-color: transparent;\r\n svg {\r\n fill: ${({ isSticky }) => (isSticky ? '#e5e6e4' : 'rgba(0, 0, 0, 0.2)')};\r\n }\r\n &:hover > svg {\r\n transition: all 200ms ease-in;\r\n fill: ${({ isSticky }) => (isSticky ? '#fff' : 'rgba(0, 0, 0, 0.5)')};\r\n }\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n display: block;\r\n }\r\n`\r\n","export const roundUpToNearest = (newValue: number, oldValue: number, roundUpTo) => {\r\n const diff = roundUpTo - ((newValue - oldValue) % roundUpTo)\r\n return diff === roundUpTo ? newValue : newValue + diff\r\n}\r\n\r\nexport const formatNumber = (value: number, options?: Intl.NumberFormatOptions) => {\r\n if (!value && value !== 0) {\r\n return ''\r\n }\r\n\r\n const formatOptions = {\r\n minimumFractionDigits: 0,\r\n ...options\r\n }\r\n\r\n const format = new Intl.NumberFormat('en-US', formatOptions)\r\n\r\n return format.format(value)\r\n}\r\n","import loglevel from 'loglevel'\r\n\r\nif (process.env.NODE_ENV === 'development') {\r\n loglevel.setLevel('info')\r\n}\r\n\r\nexport const log = loglevel\r\nexport default log\r\n","export const AUTH_ERROR = 'Invalid User ID or Password'\r\nexport const AUTH_ERROR_2 = 'The login information is not correct. Please call the Level 1 support desk at 844-266-0437'\r\nexport const FORGOT_LABLE =\r\n 'Please enter the User ID associated to your account and instructions for resetting your password will be sent to you.'\r\nexport const INVALID_USER = 'Invalid User'\r\nexport const RESET_PW =\r\n 'An email was sent to your registered email account containing a link to reset your password. Once you reset your password, you can log in to the system.'\r\nexport const BMW_LOGIN_TITLE = 'WELCOME TO
BMW GROUP DIRECT'\r\nexport const NISSAN_LOGIN_TITLE = 'WELCOME TO
NISSAN'\r\nexport const FORGOT_USER_ID = 'To recover your User ID, please contact Customer Care at: 844-266-0437'\r\nexport const FORBIDDEN_PAGE = 'You are not allowed to access this page'\r\nexport const NO_COMMENT_FROM_API_MESSAGE = 'No Data from API'\r\n","import { Modal } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\ninterface IProps {\r\n carouselSize: number\r\n}\r\n\r\nexport const StyledSlideshowGallery = styled(Modal)`\r\n overflow-x: hidden !important;\r\n overflow-y: hidden !important;\r\n padding-left: 0 !important;\r\n\r\n .modal-dialog {\r\n max-width: unset;\r\n width: 100%;\r\n height: 100%;\r\n margin: 0;\r\n }\r\n\r\n .modal-content {\r\n height: 100%;\r\n border: 0;\r\n .modal-body {\r\n padding: 0;\r\n }\r\n .close-btn {\r\n position: absolute;\r\n right: 2rem;\r\n top: 0;\r\n z-index: 999999;\r\n background: #fff;\r\n border: 0;\r\n border-radius: 0 0 0.5rem 0.5rem;\r\n margin: 0;\r\n font-size: 2rem;\r\n font-weight: bold;\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n height: 5rem;\r\n width: 6rem;\r\n }\r\n }\r\n\r\n .modal-title.h4 {\r\n font-weight: 600;\r\n }\r\n\r\n .image-container {\r\n background-color: black;\r\n height: calc(100vh - 8rem);\r\n\r\n .transform-area,\r\n .react-transform-wrapper {\r\n width: 100%;\r\n height: 100%;\r\n .react-transform-component {\r\n position: absolute;\r\n }\r\n @media screen and (orientation: portrait) {\r\n img {\r\n max-width: 100vw;\r\n }\r\n }\r\n @media screen and (orientation: landscape) {\r\n img {\r\n height: calc(100vh - 8rem);\r\n width: auto;\r\n }\r\n }\r\n }\r\n\r\n .zoom-tools {\r\n position: absolute;\r\n top: 2rem;\r\n left: 2rem;\r\n .zoom-in-btn,\r\n .zoom-out-btn {\r\n font-size: 2rem;\r\n font-weight: bold;\r\n width: 4rem;\r\n z-index: 999999;\r\n border-radius: 0.5rem;\r\n background-color: transparent;\r\n opacity: 0.8;\r\n color: white;\r\n display: block;\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .zoom-out-btn:hover,\r\n .zoom-in-btn:hover {\r\n cursor: pointer;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .previous-btn,\r\n .next-btn {\r\n position: absolute;\r\n width: 4rem;\r\n height: 4rem;\r\n text-align: center;\r\n padding: 0.5rem 0;\r\n border: 0.2rem solid white;\r\n border-radius: 0.5rem;\r\n opacity: 0.5;\r\n color: white;\r\n background-color: black;\r\n top: 40%;\r\n }\r\n\r\n .previous-btn {\r\n left: 2rem;\r\n }\r\n\r\n .next-btn {\r\n right: 2rem;\r\n }\r\n\r\n .previous-btn:hover,\r\n .next-btn:hover {\r\n opacity: 0.7;\r\n cursor: pointer;\r\n }\r\n }\r\n .img-description {\r\n position: absolute;\r\n opacity: 0.5;\r\n color: white;\r\n font-size: 1.6rem;\r\n background: black;\r\n bottom: 15%;\r\n left: 2rem;\r\n }\r\n .slider-container {\r\n background-color: white;\r\n height: 10rem;\r\n bottom: 0;\r\n text-align: center;\r\n svg {\r\n color: ${({ theme }) => theme.colors.primary};\r\n width: 100%;\r\n }\r\n\r\n img {\r\n height: 7rem;\r\n max-width: 9rem;\r\n object-fit: cover;\r\n padding: 0.5rem;\r\n border: 2px solid ${({ theme }) => theme.colors.inputBorder};\r\n &.selected {\r\n border: 2px solid ${({ theme }) => theme.colors.primary};\r\n }\r\n :hover {\r\n cursor: pointer;\r\n }\r\n }\r\n .carousel-control-prev,\r\n .carousel-control-next {\r\n width: 8%;\r\n opacity: 1;\r\n top: 1rem;\r\n }\r\n\r\n .carousel-control-prev:hover,\r\n .carousel-control-next:hover {\r\n opacity: 0.5;\r\n }\r\n .carousel-inner {\r\n margin: 0.5rem 10% 0 10%;\r\n width: auto;\r\n align-items: center;\r\n }\r\n .carousel-item {\r\n .col {\r\n width: calc(100% / ${({ carouselSize }) => carouselSize});\r\n flex-grow: unset;\r\n flex-basis: unset;\r\n }\r\n }\r\n }\r\n`\r\n","import { chunk } from 'lodash'\r\nimport { Fragment, useEffect, useState, useLayoutEffect, useContext } from 'react'\r\nimport { Carousel, Col, Modal, Row } from 'react-bootstrap'\r\nimport { IVehicleImage } from 'types/vehicleTypes'\r\nimport { LazyLoadImage } from 'react-lazy-load-image-component'\r\nimport 'react-lazy-load-image-component/src/effects/blur.css'\r\nimport { StyledSlideshowGallery } from './SlideShowGallery.styled'\r\nimport { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch'\r\nimport { faChevronRight, faChevronLeft } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport useWindowSize from 'hooks/useWindowSize'\r\nimport { BIG_SLIDER_ITEM_SIZE, fullScreenIcon, HUGE_SLIDER_ITEM_SIZE, MEDIUM_SLIDER_ITEM_SIZE } from 'common/constants'\r\nimport { SliderContext } from 'contexts/SliderContext'\r\nimport { extraExtraLargeScreenSize, mediumScreenSize } from 'common/theme'\r\n\r\ninterface ISlideshowGalleryProps {\r\n show: boolean\r\n onHide: any\r\n images: IVehicleImage[]\r\n defaultID: number\r\n showCarousel: boolean\r\n}\r\n\r\nexport const SlideshowGallery = ({ show, onHide, images, defaultID, showCarousel }: ISlideshowGalleryProps) => {\r\n const [selectedImageIndex, setSelectedImageIndex] = useState(0)\r\n const [pageActive, setPageActive] = useState(0)\r\n const [pageSize, setPageSize] = useState(BIG_SLIDER_ITEM_SIZE)\r\n const [pageItems, setPageItems] = useState(null)\r\n const { setCurrentImageID } = useContext(SliderContext)\r\n const { width } = useWindowSize()\r\n\r\n useLayoutEffect(() => {\r\n if (width <= mediumScreenSize) {\r\n setPageSize(MEDIUM_SLIDER_ITEM_SIZE)\r\n } else if (width <= extraExtraLargeScreenSize) {\r\n setPageSize(BIG_SLIDER_ITEM_SIZE)\r\n } else setPageSize(HUGE_SLIDER_ITEM_SIZE)\r\n setPageItems(chunk(images, pageSize))\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [images, pageSize, width])\r\n\r\n useEffect(() => {\r\n const imageIndex = images?.findIndex((x) => x.ID === defaultID)\r\n const pageItemsIndex = pageItems?.findIndex((x) => x.find((y) => y.ID === defaultID))\r\n setSelectedImageIndex(imageIndex === -1 ? 0 : imageIndex)\r\n setPageActive(pageItemsIndex === -1 ? 0 : pageItemsIndex)\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [defaultID, pageItems])\r\n\r\n const handleImageChange = (imageIndex: number) => {\r\n setSelectedImageIndex(pageActive * pageSize + imageIndex)\r\n setCurrentImageID(images[pageActive * pageSize + imageIndex]?.ID)\r\n }\r\n\r\n const handleActivePage = (selectedIndex: number) => {\r\n setPageActive(selectedIndex)\r\n }\r\n\r\n const handleGoNext = () => {\r\n if (selectedImageIndex + 1 >= images.length) {\r\n setSelectedImageIndex(0)\r\n setPageActive(0)\r\n } else {\r\n setSelectedImageIndex(selectedImageIndex + 1)\r\n const imageID = images[selectedImageIndex + 1].ID\r\n setPageActive(pageItems.findIndex((x) => x.find((y) => y.ID === imageID)))\r\n setCurrentImageID(imageID)\r\n }\r\n }\r\n\r\n const handleGoPrevious = () => {\r\n if (selectedImageIndex - 1 < 0) {\r\n setPageActive(pageItems.length - 1)\r\n setSelectedImageIndex(images.length - 1)\r\n setCurrentImageID(images[images.length - 1]?.ID)\r\n } else {\r\n setSelectedImageIndex(selectedImageIndex - 1)\r\n const imageID = images[selectedImageIndex - 1].ID\r\n setPageActive(pageItems.findIndex((x) => x.find((y) => y.ID === imageID)))\r\n setCurrentImageID(imageID)\r\n }\r\n }\r\n\r\n return (\r\n onHide()}\r\n backdrop=\"static\"\r\n carouselSize={pageSize}\r\n isShowCarousel={showCarousel}\r\n >\r\n \r\n \r\n
\r\n \r\n {({ zoomIn, zoomOut, resetTransform }) => (\r\n \r\n
resetTransform(0)}>\r\n \r\n \r\n \r\n
\r\n
\r\n zoomIn()}\r\n />\r\n zoomOut()}\r\n />\r\n
\r\n {\r\n handleGoPrevious()\r\n resetTransform(0)\r\n }}\r\n >\r\n \r\n \r\n {\r\n handleGoNext()\r\n resetTransform(0)\r\n }}\r\n >\r\n \r\n \r\n \r\n {images[selectedImageIndex]?.DamageImageDescription || images[selectedImageIndex]?.Description}\r\n \r\n
\r\n )}\r\n \r\n
\r\n {images?.length > 0 && showCarousel && (\r\n
\r\n }\r\n prevIcon={}\r\n >\r\n {pageItems.map((images, pageIndex) => (\r\n \r\n \r\n {images.map((item, imageIndex) => (\r\n \r\n {\r\n handleImageChange(imageIndex)\r\n }}\r\n title={item.DamageImageDescription || item.Description}\r\n />\r\n \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 { SlideshowGallery } from 'modules/VDP/SlideShowGallery'\r\nimport React, { createContext, useState } from 'react'\r\nimport { IVehicleImage } from 'types/vehicleTypes'\r\nexport interface ISliderContext {\r\n setDisplaySlider: (isShow: boolean, imageID: number, vehicleInstance: number) => void\r\n setSliderData: (images: IVehicleImage[], isShowCarousel?: boolean) => void\r\n setCurrentImageID: (id: number) => void\r\n selectedImageID: number\r\n selectedVehicle: number\r\n showCarousel: boolean\r\n}\r\n\r\nexport const SliderContext = createContext({} as ISliderContext)\r\n\r\nexport const SliderContextProvider = ({ children }: React.PropsWithChildren<{}>) => {\r\n const [showSlider, setShowSlider] = useState(false)\r\n const [images, setImages] = useState(null)\r\n const [selectedImageID, setSelectedImageID] = useState()\r\n const [selectedVehicle, setSelectedVehicle] = useState()\r\n const [showCarousel, setShowCarousel] = useState(true)\r\n\r\n const setDisplaySlider = (isShow: boolean, imageID: number, vehicleInstance: number) => {\r\n setShowSlider(isShow)\r\n setSelectedImageID(imageID)\r\n setSelectedVehicle(vehicleInstance)\r\n }\r\n\r\n const setSliderData = (images: IVehicleImage[], isShowCarousel: boolean = true) => {\r\n setImages(images)\r\n setShowCarousel(isShowCarousel)\r\n }\r\n const setCurrentImageID = (id: number) => {\r\n setSelectedImageID(id)\r\n }\r\n\r\n return (\r\n \r\n {\r\n setShowSlider(false)\r\n setImages([])\r\n }}\r\n images={images}\r\n defaultID={selectedImageID}\r\n showCarousel={showCarousel}\r\n >\r\n {children}\r\n \r\n )\r\n}\r\n","import { SessionStorageKey } from 'common/constants'\r\nimport log from 'utils/logger'\r\nimport create from 'zustand'\r\n\r\nexport interface ISignalRState {\r\n connectionID?: string\r\n showConnectionAlert?: boolean\r\n setShowConnectionAlert: (show?: boolean) => void\r\n connect: () => void\r\n susbcribeEvents: () => void\r\n subscribe: (ids: number[]) => Promise\r\n}\r\n\r\nexport const useSignalRStore = create((set, get) => ({\r\n connect: async () => {\r\n try {\r\n await $.connection.hub.start().promise()\r\n\r\n // SignalR connection id might not be available at this point\r\n if ($.connection.hub.id) {\r\n set((state) => ({ ...state, connectionID: $.connection.hub.id }))\r\n }\r\n } catch (err) {\r\n console.error('SignalR: Could not connect to server')\r\n }\r\n },\r\n susbcribeEvents: async () => {\r\n $.connection.hub.starting(() => {\r\n log.info('SignalR: Connection starting')\r\n set((state) => ({ ...state, showConnectionAlert: false }))\r\n })\r\n\r\n $.connection.hub.connectionSlow(() => {\r\n log.info('SignalR: Slow connection detected')\r\n })\r\n\r\n $.connection.hub.stateChanged((state) => {\r\n const connectionStates = {\r\n 0: 'connecting',\r\n 1: 'connected',\r\n 2: 'reconnecting',\r\n 4: 'disconnected'\r\n }\r\n log.info(\r\n 'SignalR: Connection state changed from: ' +\r\n connectionStates[state.oldState] +\r\n ' to: ' +\r\n connectionStates[state.newState]\r\n )\r\n if (state.newState === 1) {\r\n sessionStorage.removeItem(SessionStorageKey.SIGNAL_R_CONNECTION_TRY_RECOUNT)\r\n set((state) => ({ ...state, showConnectionAlert: false }))\r\n\r\n // SignalR connection id is available at this point\r\n if ($.connection.hub.id) {\r\n set((state) => ({ ...state, connectionID: $.connection.hub.id }))\r\n }\r\n }\r\n })\r\n\r\n $.connection.hub.reconnected(() => {\r\n log.info('SignalR: Reconnected')\r\n set((state) => ({ ...state, showConnectionAlert: false }))\r\n })\r\n\r\n $.connection.hub.disconnected(() => {\r\n var signalRConnectionRetryCount = sessionStorage.getItem(SessionStorageKey.SIGNAL_R_CONNECTION_TRY_RECOUNT)\r\n if (signalRConnectionRetryCount == null) {\r\n signalRConnectionRetryCount = '0'\r\n }\r\n var retryCount = parseInt(signalRConnectionRetryCount)\r\n log.info('SignalR: Reconnecting retry count:' + retryCount)\r\n if (retryCount < 3) {\r\n retryCount++\r\n sessionStorage.setItem(SessionStorageKey.SIGNAL_R_CONNECTION_TRY_RECOUNT, retryCount.toString())\r\n get().connect()\r\n } else {\r\n set((state) => ({ ...state, showConnectionAlert: true }))\r\n }\r\n })\r\n },\r\n setShowConnectionAlert: (show?: boolean) => set((state) => ({ ...state, showConnectionAlert: show })),\r\n subscribe: async (ids: number[]) => {\r\n if (get().connectionID) {\r\n await $.connection.notificationHub.server.subscribe(ids).promise()\r\n }\r\n }\r\n}))\r\n","import create from 'zustand'\r\n\r\ninterface IBiddingSidePanel {\r\n isOpen: () => boolean\r\n biddingVehicleInstanceId?: number\r\n setBiddingVehicleInstanceId: (vehicleInstanceId: number) => void\r\n}\r\n\r\nexport const useBiddingSidePanel = create((set, get) => ({\r\n biddingVehicleInstanceId: null,\r\n setBiddingVehicleInstanceId(vehicle) {\r\n set((state) => ({\r\n ...state,\r\n biddingVehicleInstanceId: vehicle\r\n }))\r\n },\r\n isOpen: () => !!get().biddingVehicleInstanceId\r\n}))\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledWatchListLink = styled.a`\r\n .icon {\r\n margin-right: 0.4rem;\r\n }\r\n`\r\n","import { IconSvg } from '@prism/icon'\r\nimport { useContext } from 'react'\r\nimport { Spinner } from 'react-bootstrap'\r\nimport { StyledWatchListLink } from './WatchlistLink.styled'\r\nimport { VehicleContext } from 'modules/DealerVehicleManagement/VehicleContext'\r\n\r\nexport const WatchlistLink = () => {\r\n const {\r\n vehicleData: {\r\n vehicle: { WatchListID }\r\n },\r\n vehicleWatchListState: { saveWatchList, isSaving }\r\n } = useContext(VehicleContext)\r\n\r\n return (\r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n
\r\n {!WatchListID || WatchListID <= 0 ? (\r\n \r\n \r\n Watch\r\n \r\n ) : (\r\n \r\n \r\n Unwatch\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n )\r\n}\r\n","import { faExternalLinkAlt, faPencilAlt } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { Rules } from 'common/rules'\r\nimport { SystemSettingsCode, isSystemSettingsEnabled } from 'common/systemSettingsCode'\r\nimport { PopupLink } from 'components/Share/PopupLink'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { WatchlistLink } from 'modules/Watchlist/WatchlistLink'\r\nimport { useContext } from 'react'\r\nimport { Button } from 'react-bootstrap'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport styled from 'styled-components'\r\nimport { IVDPSearchParams } from 'types/ISearchParams'\r\nimport { IVehicleData } from 'types/vehicleTypes'\r\nimport { parseUrlSearchParams } from 'utils/urlParams'\r\nimport { VehicleContext } from './VehicleContext'\r\n\r\nexport const StyledVehicleAction = styled.div``\r\ninterface IProps {\r\n vehicleData: IVehicleData\r\n}\r\n\r\nexport const VehicleActions = ({ vehicleData }: IProps) => {\r\n const {\r\n vehicleData: {\r\n vehicle: { VehicleNote }\r\n },\r\n setEditingNote,\r\n retailView\r\n } = useContext(VehicleContext)\r\n const isInRule = useGlobalStore((state) => state.isInRule)\r\n const showCarfax = isInRule(Rules.ENABLE_CARFAX)\r\n const location = useLocation()\r\n const hideBuyOptions = parseUrlSearchParams(location.search).history === 'true'\r\n const showTrue360 = isSystemSettingsEnabled(SystemSettingsCode.SHOW_TRUE_360) && !hideBuyOptions && !retailView\r\n\r\n const { userInteraction } = useDtmAnalytics()\r\n\r\n const handleAnalyticCarfax = () => {\r\n userInteraction(`${window.webData.pageName} : carfax`, [\r\n { auctionInfo: vehicleData.auctionInfo, VIN: vehicleData.vehicle.VIN }\r\n ])\r\n }\r\n\r\n const handleEditNote = () => {\r\n setEditingNote(true)\r\n userInteraction(`${window.webData.pageName} : ${!!VehicleNote ? 'Edit Note' : 'Add Note'}`, [\r\n { auctionInfo: vehicleData.auctionInfo, VIN: vehicleData.vehicle.VIN }\r\n ])\r\n }\r\n\r\n return (\r\n \r\n {showTrue360 && (\r\n \r\n )}\r\n\r\n {showCarfax && (\r\n \r\n CARFAX \r\n \r\n \r\n )}\r\n \r\n {!hideBuyOptions && }\r\n \r\n )\r\n}\r\n","import { useState, useEffect } from 'react'\r\nimport { useInterval } from './useInterval'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { secondsDiff } from 'utils/dateUtils'\r\n\r\nexport const useCountdown = (endDate: Date | string) => {\r\n const { serverTime, clientTime } = useGlobalStore()\r\n\r\n const [seconds, setSeconds] = useState(secondsDiff(serverTime, clientTime, new Date(endDate)))\r\n const [delay, setDelay] = useState(endDate ? 1000 : null)\r\n\r\n useEffect(() => {\r\n if (endDate) {\r\n setDelay(1000)\r\n } else {\r\n setDelay(null)\r\n }\r\n }, [endDate])\r\n useInterval(() => {\r\n const diff = secondsDiff(serverTime, clientTime, new Date(endDate))\r\n\r\n if (diff > 0) {\r\n setSeconds(diff)\r\n } else {\r\n setSeconds(0)\r\n setDelay(null)\r\n }\r\n }, delay)\r\n\r\n return {\r\n seconds\r\n }\r\n}\r\n","import { useEffect, useRef } from 'react'\r\n\r\nexport const useInterval = (callback: () => void, delay: number | null) => {\r\n const savedCallback = useRef(callback)\r\n\r\n // Remember the latest callback if it changes.\r\n useEffect(() => {\r\n savedCallback.current = callback\r\n }, [callback])\r\n\r\n // Set up the interval.\r\n useEffect(() => {\r\n // Don't schedule if no delay is specified.\r\n if (delay === null) {\r\n return\r\n }\r\n\r\n const id = setInterval(() => savedCallback.current(), delay)\r\n\r\n return () => clearInterval(id)\r\n }, [delay])\r\n}\r\n","import { rmsAuthModel } from './rmsGlobal'\r\n\r\nexport const SystemSettingsCode = {\r\n ENABLE_DTM_ANALYTICS_TRACE: 'ENABLE_DTM_ANALYTICS_TRACE',\r\n DTM_ANALYTICS_ENVIRONMENT: 'DTM_ANALYTICS_ENVIRONMENT',\r\n SHOW_TRUE_360: 'SHOW_TRUE_FRAME_ICON'\r\n}\r\n\r\nexport const isSystemSettingsEnabled = (code: string) => {\r\n return rmsAuthModel?.systemSettings[code] === '1'\r\n}\r\n\r\nexport const getSystemSetting = (code: string) => {\r\n return rmsAuthModel?.systemSettings[code]\r\n}\r\n","import styled from 'styled-components'\r\nimport { zIndex } from 'common/constants'\r\nimport { StyledSubMenu } from './SubMenu.styled'\r\nimport { gridBreakPoints } from 'common/theme'\r\n\r\nexport const StyledMainNav = styled.div<{ show?: boolean }>`\r\n display: flex;\r\n justify-content: center;\r\n font-size: 1.6rem;\r\n\r\n z-index: ${zIndex.menu};\r\n\r\n .nav-item:hover ${StyledSubMenu} {\r\n opacity: 1;\r\n transform: translateY(0);\r\n pointer-events: initial;\r\n }\r\n\r\n .nav-link {\r\n margin: 0 1.5rem;\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n .active {\r\n color: ${({ theme }) => theme.colors.primary};\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n }\r\n\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.primary};\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n color: ${({ theme }) => theme.colors.primary}!important;\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n background-color: ${({ theme }) => theme.colors.mobileMenuBackground};\r\n position: fixed;\r\n transform: ${({ show }) => (!!show ? 'translateX(0)' : 'translateX(100%)')};\r\n display: block;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: ${zIndex.navbarMobile};\r\n min-width: 30rem;\r\n box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.15);\r\n transition: all 167ms ease-in;\r\n overflow-y: auto;\r\n ul {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n .nav-item {\r\n width: 100%;\r\n border-top: 0.1rem solid ${({ theme }) => theme.colors.secondary};\r\n border-bottom: 0.1rem solid ${({ theme }) => theme.colors.secondary};\r\n\r\n &:hover > .nav-link {\r\n background-color: white;\r\n }\r\n\r\n > .nav-link {\r\n font-size: 1.8rem;\r\n height: 4rem;\r\n margin: unset;\r\n text-align: center;\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n }\r\n &.active {\r\n background: #d4d4d4;\r\n :after {\r\n content: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const StyledUnderlineSpan = styled.span`\r\n position: relative;\r\n\r\n &.active,\r\n &:hover {\r\n &:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n left: 50%;\r\n bottom: -0.5rem;\r\n width: 80%;\r\n height: 0.4rem;\r\n background: ${({ theme }) => theme.colors.primary};\r\n border-radius: 2.5rem;\r\n\r\n transform: translateX(-50%);\r\n }\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n &.active,\r\n &:hover {\r\n &:after {\r\n background: ${({ theme }) => theme.colors.primary};\r\n }\r\n }\r\n }\r\n`\r\nexport const StyledNavBar = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n`\r\nexport const StyledCloseMenuButton = styled.a`\r\n display: none;\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n display: flex;\r\n font-size: 2.4rem;\r\n text-transform: uppercase;\r\n color: rgba(0, 0, 0, 0.2);\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n width: 3rem;\r\n height: 3rem;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0.3rem;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transition: all 167ms ease-in;\r\n\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n }\r\n }\r\n`\r\nexport const StyledSubNav = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0 1.5rem;\r\n\r\n ul {\r\n display: none;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n list-style: none;\r\n gap: 1.2rem;\r\n color: rgba(0, 0, 0, 0.3);\r\n .nav-link {\r\n font-size: 1.4rem;\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.linkColor};\r\n }\r\n\r\n &.active {\r\n display: flex;\r\n }\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n display: none;\r\n }\r\n`\r\n","import { StyledRibbon } from './Ribbon.styled'\r\nimport { useTheme } from 'styled-components'\r\nimport { useMemo } from 'react'\r\nimport classNames from 'classnames'\r\n\r\ninterface IProps {\r\n label: string\r\n backgroundColor?: string\r\n textColor?: string\r\n className?: string\r\n variant?: 'info' | 'success' | 'warning' | 'danger' | 'custom'\r\n title?: string\r\n onClick?: () => void\r\n}\r\n\r\nexport const Ribbon = ({ label, className, variant, backgroundColor, textColor, title, onClick }: IProps) => {\r\n const theme = useTheme()\r\n const bgColor = useMemo(\r\n () =>\r\n variant === 'info'\r\n ? theme.colors.ribbonInfoBackgroundColor\r\n : variant === 'success'\r\n ? theme.colors.ribbonSuccessBackgroundColor\r\n : variant === 'warning'\r\n ? theme.colors.ribbonWarningBackgroundColor\r\n : variant === 'danger'\r\n ? theme.colors.ribbonDangerBackgroundColor\r\n : backgroundColor,\r\n [\r\n variant,\r\n theme.colors.ribbonInfoBackgroundColor,\r\n theme.colors.ribbonSuccessBackgroundColor,\r\n theme.colors.ribbonWarningBackgroundColor,\r\n theme.colors.ribbonDangerBackgroundColor,\r\n backgroundColor\r\n ]\r\n )\r\n const txtColor = useMemo(\r\n () =>\r\n variant === 'info'\r\n ? theme.colors.infoColor\r\n : variant === 'success'\r\n ? theme.colors.successColor\r\n : variant === 'warning'\r\n ? theme.colors.warningColor\r\n : variant === 'danger'\r\n ? theme.colors.dangerColor\r\n : textColor,\r\n [\r\n variant,\r\n theme.colors.infoColor,\r\n theme.colors.successColor,\r\n theme.colors.warningColor,\r\n theme.colors.dangerColor,\r\n textColor\r\n ]\r\n )\r\n\r\n return (\r\n \r\n
\r\n {label}\r\n
\r\n
\r\n \r\n )\r\n}\r\n","import { CollapseProps, Collapse as BootstrapCollapse } from 'react-bootstrap'\r\n\r\nconst Collapse = ({ children, ...restProps }: CollapseProps) => {\r\n return (\r\n \r\n
{children}
\r\n
\r\n )\r\n}\r\n\r\nexport default Collapse\r\n","import CaretDownFill from 'images/icon/CaretDownFill'\r\nimport CaretRightFill from 'images/icon/CaretRightFill'\r\nimport React from 'react'\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport { ReactNode } from 'react'\r\nimport {\r\n StyledHomeSectionHeaderTitle,\r\n StyledHomeSectionHeader,\r\n StyledHomeSectionHeaderBanner\r\n} from './HomeSectionHeader.styled'\r\n\r\nexport interface IHomeSectionHeaderProps {\r\n sectionTitle: ReactNode\r\n onClick?: any\r\n isExpand?: boolean\r\n displayCollapse?: boolean\r\n itemCount?: number\r\n leftActions?: React.ReactNode\r\n rightActions?: React.ReactNode\r\n leftActionSpan?: number\r\n rightActionSpan?: number\r\n className?: string\r\n}\r\n\r\nexport const HomeSectionHeader = ({\r\n sectionTitle,\r\n className,\r\n onClick,\r\n isExpand,\r\n displayCollapse,\r\n itemCount,\r\n leftActions,\r\n rightActions,\r\n leftActionSpan = 7,\r\n rightActionSpan = 2\r\n}: IHomeSectionHeaderProps) => (\r\n \r\n \r\n \r\n \r\n {displayCollapse ?? (isExpand ? : )}\r\n {sectionTitle}\r\n {itemCount >= 0 && ` (${itemCount})`}\r\n \r\n \r\n {leftActions && (\r\n \r\n {leftActions}\r\n \r\n )}\r\n {rightActions && (\r\n \r\n \r\n {rightActions}\r\n \r\n \r\n )}\r\n \r\n \r\n)\r\n","import { IUserClaimReponse } from 'types/userTypes'\r\n\r\nexport const addDefaultAttributes = (data: IUserClaimReponse) => {\r\n if (typeof newrelic === 'object') {\r\n newrelic.setCustomAttribute('userid', data.UserId?.toString())\r\n newrelic.setCustomAttribute('username', data.Username)\r\n newrelic.setCustomAttribute('buyercode', data.CurrentBuyerCode)\r\n newrelic.setCustomAttribute('buyername', data.DealershipName)\r\n }\r\n}\r\n","import { INewsModel } from './../types/rmsGlobalTypes'\r\nimport { rmsAuthModel } from 'common/rmsGlobal'\r\nimport { IRmsGlobal, IVendorInfo } from 'types/rmsGlobalTypes'\r\nimport { IUserClaimReponse } from 'types/userTypes'\r\nimport { addDefaultAttributes } from 'utils/newrelicUtilts'\r\nimport { parseJson } from 'utils/utils'\r\nimport create from 'zustand'\r\nimport { getUserClaims } from './../apis/userApis'\r\nimport { IAppSettings } from './../types/rmsAuthModel'\r\nimport { ISystemSetting } from '../types/baseTypes'\r\n\r\nexport interface IUserClaimState {\r\n isAuthenticated: boolean\r\n userClaims: IUserClaimReponse\r\n vendor: IVendorInfo\r\n appSettings: IAppSettings\r\n localText: Record\r\n rules: string[]\r\n systemSettings: Record\r\n errorMessages: Record\r\n newsModel: INewsModel\r\n serverTime: Date\r\n clientTime: Date\r\n\r\n fetchUserClaim: () => Promise\r\n getLocalText: (key: string, defaultText?: string) => string\r\n isInRule: (key: string) => boolean\r\n getSystemSetting: (key: string) => string | number | ISystemSetting\r\n clearError: () => void\r\n}\r\n\r\nexport const useGlobalStore = create((set, get) => ({\r\n isAuthenticated: rmsAuthModel?.isAuthenticated as boolean,\r\n userClaims: {} as IUserClaimReponse,\r\n vendor: rmsAuthModel?.vendor as IVendorInfo,\r\n appSettings: rmsAuthModel?.appSettings as IAppSettings,\r\n localText: rmsAuthModel?.localText as Record,\r\n rules: [] as string[],\r\n systemSettings: {} as Record,\r\n errorMessages: rmsAuthModel?.errorMessages as Record,\r\n newsModel: rmsAuthModel?.newsModel,\r\n // In the case when the server time is not fetched yet\r\n serverTime: new Date(),\r\n clientTime: new Date(),\r\n\r\n fetchUserClaim: async () => {\r\n const userClaim = await getUserClaims()\r\n\r\n if (userClaim) {\r\n const rmsGlobal = parseJson(userClaim.RmsGlobal) as IRmsGlobal\r\n addDefaultAttributes(userClaim)\r\n set((state) => ({\r\n ...state,\r\n userClaims: userClaim,\r\n localText: { ...state.localText, ...rmsGlobal.localText },\r\n rules: [...state.rules, ...rmsGlobal.rules, ...userClaim.Rules].map((rule) => rule.toLowerCase()),\r\n systemSettings: rmsGlobal.systemSettings,\r\n serverTime: new Date(userClaim.ServerUTCTime)\r\n }))\r\n }\r\n },\r\n getLocalText: (key, defaultText) => {\r\n const localText = get().localText\r\n if (localText && key) {\r\n return localText[key] || defaultText\r\n }\r\n return defaultText\r\n },\r\n isInRule: (key) => {\r\n const rules = get().rules as string[]\r\n if (rules) {\r\n return rules.includes(key.toLocaleLowerCase())\r\n }\r\n return false\r\n },\r\n getSystemSetting: (key) => {\r\n const systemSettings = get().systemSettings\r\n if (systemSettings) {\r\n return systemSettings[key] || ''\r\n }\r\n return ''\r\n },\r\n\r\n clearError: () => {\r\n set((state) => ({\r\n ...state,\r\n errorMessages: undefined\r\n }))\r\n }\r\n}))\r\n","function CaretDownFill(props) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CaretDownFill\r\n","function CaretRightFill(props) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CaretRightFill\r\n","import { camelCase, startCase } from 'lodash'\r\nimport parse from 'html-react-parser'\r\nimport log from './logger'\r\n\r\nexport const parseNumberWithCommas = (inputText: string) => {\r\n return parseFloat(inputText.replace(/,/g, ''))\r\n}\r\nexport const capitalize = (title: string) => {\r\n return startCase(camelCase(title))\r\n}\r\nexport const parseHtml = (html: string) => {\r\n try {\r\n return parse(html)\r\n } catch (error) {\r\n log.error(error)\r\n }\r\n\r\n return null\r\n}\r\n","import { IVehicleData } from 'types/vehicleTypes'\r\ninterface IProps {\r\n vehicleData: IVehicleData\r\n}\r\n\r\nexport const StockwaveData = ({ vehicleData }: IProps) => {\r\n const stockwaveData = {\r\n Vin: vehicleData?.vehicle?.VIN,\r\n Year: vehicleData?.vehicle?.ModelYear,\r\n Make: vehicleData?.vehicle?.Make,\r\n Model: vehicleData?.vehicle?.Model,\r\n Subseries: vehicleData?.vehicle?.Derivative,\r\n Tranmission: vehicleData?.vehicle?.Transmission,\r\n Seller: vehicleData?.vehicle?.SaleChannelName,\r\n Mileage: vehicleData?.vehicle?.Mileage,\r\n Description: vehicleData?.vehicle?.Title,\r\n Trim: vehicleData?.vehicle?.Derivative,\r\n Color: vehicleData?.vehicle?.ExteriorColour,\r\n Interior_Color: vehicleData?.vehicle?.InteriorTrim,\r\n Facilitation_Location: vehicleData?.vehicle?.VehicleLocationCity,\r\n BodyStyle: vehicleData?.vehicle?.BodyStyle,\r\n Odometer: vehicleData?.vehicle?.Mileage,\r\n Source: vehicleData?.vehicle?.SourceCode,\r\n CRURL: `https://${window.location.hostname}/vehicle/${vehicleData?.vehicle?.InstanceID}`,\r\n VDPURL: `https://${window.location.hostname}/vehicle/${vehicleData?.vehicle?.InstanceID}`,\r\n Displacement: vehicleData?.vehicle?.EngineSize,\r\n CRSCORE: vehicleData?.vehicle?.Condition,\r\n PickupZip: vehicleData?.vehicle?.LocationPostCode,\r\n PickupAddress: `${vehicleData?.vehicle?.LocationAddressDetails}, ${vehicleData?.vehicle?.LocationPostCode}`,\r\n Engine: vehicleData?.vehicle.EngineDescription\r\n }\r\n\r\n return (\r\n
\r\n      {JSON.stringify(stockwaveData)}\r\n    
\r\n )\r\n}\r\n","import styled from 'styled-components'\r\nimport { StyledSlideOutElement } from './SlideOut.styled'\r\n\r\nexport const StyledSlideOutHeading = styled(StyledSlideOutElement)`\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n .title {\r\n font-size: 2.6rem;\r\n }\r\n .vin {\r\n font-size: 1.8rem;\r\n }\r\n`\r\n","import { StyledSlideOutHeading } from './SlideOutHeading.styled'\r\n\r\ninterface IProps {\r\n vehicleTitle: string\r\n vin: string\r\n}\r\nexport const SlideOutHeading = ({ vehicleTitle, vin }: IProps) => {\r\n return (\r\n \r\n

{vehicleTitle}

\r\n

{vin}

\r\n
\r\n )\r\n}\r\n","import Select from 'components/Select/Select'\r\nimport { ValidationErrorMessage } from 'components/Forms'\r\nimport { useFormikContext } from 'formik'\r\nimport { Alert, Form } from 'react-bootstrap'\r\nimport { IDropdownData, IOption } from 'types/baseTypes'\r\nimport { StyledSlideOutElement } from './SlideOut.styled'\r\n\r\ninterface IProps {\r\n label: string\r\n name: string\r\n options: IOption[]\r\n onChange?: (dropdownValue: any) => void\r\n fallbackValue: any\r\n required?: boolean\r\n disabled?: boolean\r\n alertMessage?: string\r\n}\r\n// eslint-disable-next-line prettier/prettier\r\nexport const SlideOutDropdown = ({\r\n alertMessage,\r\n label,\r\n name,\r\n options,\r\n onChange,\r\n disabled = false,\r\n fallbackValue,\r\n required = false\r\n}: IProps) => {\r\n const formik = useFormikContext()\r\n const selectedValue =\r\n options?.find((option) => option.value === formik?.values?.[name]) ||\r\n options?.find((option) => option.value === fallbackValue)\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n ) => {\r\n formik?.setFieldValue(name, option.value)\r\n onChange?.(option.value)\r\n }}\r\n >\r\n {alertMessage && (\r\n \r\n {alertMessage}\r\n \r\n )}\r\n\r\n {formik.errors[name] && formik.touched[name] && (\r\n {formik.errors[name]}\r\n )}\r\n \r\n )\r\n}\r\n","import { Form } from 'react-bootstrap'\r\nimport { StyledSlideOutElement } from './SlideOut.styled'\r\n\r\ninterface IProps {\r\n label: string\r\n inputText: string\r\n}\r\nexport const SlideOutReadOnlyInput = ({ label, inputText }: IProps) => {\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { Button } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\nimport { StyledSlideOutElement } from './SlideOut.styled'\r\n\r\nexport const StyledSlideOutBidAmountInput = styled(StyledSlideOutElement)`\r\n display: flex;\r\n flex-direction: column;\r\n width: 80%;\r\n\r\n .dollar {\r\n position: absolute;\r\n transform: translate(110%, 50%);\r\n }\r\n .amount-input {\r\n position: relative;\r\n display: flex;\r\n flex: 1;\r\n }\r\n\r\n // Hide arrow on input type number\r\n /* Chrome, Safari, Edge, Opera */\r\n .currency-input::-webkit-outer-spin-button,\r\n .currency-input::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n\r\n // Hide arrow on input type number\r\n /* Firefox */\r\n .currency-input {\r\n -moz-appearance: textfield;\r\n }\r\n`\r\n\r\nexport const StyledBidAmountButton = styled(Button)`\r\n background: #fff;\r\n border: ${({ theme }) => theme.colors.borderInput};\r\n padding-left: 1.2rem;\r\n padding-right: 1.2rem;\r\n`\r\n","import { useEffect, useState } from 'react'\r\nimport { StyledBidAmountButton, StyledSlideOutBidAmountInput } from './SlideOutBidAmountInput.styled'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faAngleUp, faAngleDown } from '@fortawesome/free-solid-svg-icons'\r\nimport { Form } from 'react-bootstrap'\r\nimport { useFormikContext } from 'formik'\r\nimport { BidAgainFormValues } from 'types/formikTypes'\r\nimport { BidAmountTypeOptions, EnterKeyCharCode } from 'common/constants'\r\nimport { ValidationErrorMessage } from 'components/Forms'\r\nimport { formatNumber, roundUpToNearest } from 'utils/numberUtils'\r\nimport { parseNumberWithCommas } from 'utils/stringUtils'\r\n\r\ninterface IProps {\r\n bidIncreasement: number\r\n bidIncreasementString: string\r\n nextBidAmountString: string\r\n nextBidAmount: number\r\n disabled?: boolean\r\n}\r\nexport const SlideOutBidAmountInput = ({\r\n bidIncreasement,\r\n bidIncreasementString,\r\n nextBidAmountString,\r\n nextBidAmount,\r\n disabled = false\r\n}: IProps) => {\r\n const formik = useFormikContext()\r\n const [bidAmountText, setBidAmountText] = useState(formatNumber(nextBidAmount))\r\n\r\n function updateBidAmount(bidAmount: number) {\r\n formik?.setFieldValue('BidAmount', bidAmount, false)\r\n setBidAmountText(formatNumber(bidAmount))\r\n }\r\n\r\n const handleBidAmountChange = (bidAmount: number) => {\r\n if (bidAmount > nextBidAmount) {\r\n updateBidAmount(bidAmount)\r\n } else {\r\n // reset to original value\r\n updateBidAmount(nextBidAmount)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setBidAmountText(formatNumber(formik?.values.BidAmount))\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [formik?.values.BidAmount])\r\n\r\n return (\r\n \r\n
\r\n setBidAmountText(e.target.value)}\r\n onBlur={(e) => {\r\n const bidAmount = parseNumberWithCommas(e.target.value)\r\n handleBidAmountChange(roundUpToNearest(bidAmount, formik.values.BidAmount, bidIncreasement))\r\n }}\r\n value={bidAmountText}\r\n onKeyPress={(event) => {\r\n if (event.charCode === EnterKeyCharCode) {\r\n const bidAmount = parseNumberWithCommas(bidAmountText)\r\n handleBidAmountChange(roundUpToNearest(bidAmount, formik.values.BidAmount, bidIncreasement))\r\n }\r\n }}\r\n />\r\n\r\n {\r\n handleBidAmountChange(formik.values.BidAmount + bidIncreasement)\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n handleBidAmountChange(formik.values.BidAmount - bidIncreasement)\r\n }}\r\n >\r\n \r\n \r\n $\r\n
\r\n\r\n {formik.errors.BidAmount && formik.touched.BidAmount && (\r\n {formik.errors.BidAmount}\r\n )}\r\n \r\n {nextBidAmountString} or Higher (Increment {bidIncreasementString})\r\n \r\n
\r\n )\r\n}\r\n","import { StyledSlideOutElement } from './SlideOut.styled'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport parse from 'html-react-parser'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { Spinner, OverlayTrigger, Popover } from 'react-bootstrap'\r\nimport { IIncentive, IVehicleCharges } from 'types/vehicleTypes'\r\nimport { useRef } from 'react'\r\n\r\ninterface IProps {\r\n feeLoading: boolean // loader for generic buyer premium\r\n buyerFeeString: string\r\n deliveryCharge: number\r\n vehicleCharges: IVehicleCharges[]\r\n isIncentiveAccumulate: boolean\r\n incentives: IIncentive[]\r\n estimatedGrossPrice: number\r\n}\r\n\r\nexport const SlideOutPricingDetails = ({\r\n buyerFeeString,\r\n deliveryCharge,\r\n estimatedGrossPrice,\r\n vehicleCharges,\r\n isIncentiveAccumulate,\r\n incentives,\r\n feeLoading\r\n}: IProps) => {\r\n const getLocalText = useGlobalStore((state) => state.getLocalText)\r\n const slideOutElementRef = useRef(null)\r\n return (\r\n \r\n

\r\n Total Transaction Charges:\r\n  \r\n {feeLoading ? : buyerFeeString || 'N/A'}\r\n  \r\n \r\n {getLocalText('VIEW_FEES_TEXT')}\r\n {getLocalText('VIEW_FEES_INFORMATION')}\r\n \r\n }\r\n >\r\n ({getLocalText('VIEW_FEES_TEXT')})\r\n \r\n

\r\n

\r\n Total Delivery Charge: {deliveryCharge || 'N/A'}\r\n

\r\n {vehicleCharges?.map((charge, index) => (\r\n

\r\n {charge.VehicleChargeTypeDescription}: {charge.PriceString}\r\n

\r\n ))}\r\n {!isIncentiveAccumulate &&\r\n incentives?.map((incentive, index) => (\r\n

\r\n {incentive.Name}: {incentive.AmountString}\r\n

\r\n ))}\r\n

\r\n Estimated Gross Price: \r\n {isNaN(estimatedGrossPrice) ? (\r\n 'N/A'\r\n ) : feeLoading ? (\r\n \r\n ) : (\r\n '$' + new Intl.NumberFormat().format(estimatedGrossPrice)\r\n )}\r\n

\r\n \r\n
\r\n )\r\n}\r\n","import { getBaseVehicle, getDetailedDeliveryInfo, getGenericPremium } from 'apis/vehicleApis'\r\nimport { BidAmountTypeOptions, SelfArrangedTransportProviderId } from 'common/constants'\r\nimport { SlideOutHeading } from 'components/SlideOut/SlideOutHeading'\r\nimport { SlideOutDropdown } from 'components/SlideOut/SlideOutDropdown'\r\nimport { SlideOutReadOnlyInput } from 'components/SlideOut/SlideOutReadOnlyInput'\r\nimport { useState, useMemo, useEffect, useCallback } from 'react'\r\nimport { useBiddingSidePanel } from 'store/useBiddingSidePanelStore'\r\nimport { IOption, IDropdownData } from 'types/baseTypes'\r\nimport { DeliveryInformation, GetBaseVehicleRequest, IDeliveryQuote, IVehicleFeeRequest } from 'types/vehicleTypes'\r\nimport shallow from 'zustand/shallow'\r\nimport { StyledSlideOutElement } from 'components/SlideOut/SlideOut.styled'\r\nimport { SlideOutBidAmountInput } from 'components/SlideOut/SlideOutBidAmountInput'\r\nimport { StyledSlideOutBidAmountInput } from 'components/SlideOut/SlideOutBidAmountInput.styled'\r\nimport { Form } from 'react-bootstrap'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { SlideOutPricingDetails } from 'components/SlideOut/SlideOutPricingDetails'\r\nimport { useFormikContext } from 'formik'\r\nimport { BidAgainFormValues } from 'types/formikTypes'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\nimport { debounce } from 'lodash'\r\nimport { useSidePanelRealTimeUpdateDealer } from 'hooks/useSidePanelRealTimeUpdateDealer'\r\nimport { IAccountInfo } from 'types/accountTypes'\r\n\r\ninterface IBiddingSidePanelFormProps {\r\n isDealerShipSelectable: boolean\r\n setFetchLoading: (loading: boolean) => void\r\n}\r\nexport const BiddingSidePanelFormContent: React.FC = ({\r\n isDealerShipSelectable,\r\n setFetchLoading\r\n}) => {\r\n const formik = useFormikContext()\r\n const [biddingVehicleInstanceId] = useBiddingSidePanel((state) => [state.biddingVehicleInstanceId], shallow)\r\n const biddingVehicle = useVehicleStore((state) =>\r\n state.vehicles?.find((vehicleData) => vehicleData.vehicle.InstanceID === biddingVehicleInstanceId)\r\n )\r\n\r\n const { AssociatedBuyers, CurrentBuyerID } = useGlobalStore((state) => state.userClaims)\r\n\r\n const [feeLoading, setFeeLoading] = useState(false)\r\n const [buyerFee, setBuyerFee] = useState(0)\r\n const [buyerFeeString, setBuyerFeeString] = useState('N/A')\r\n const [hasAnyChargeRange, setHasAnyChargeRange] = useState(false)\r\n const [deliveryInformation, setDeliveryInformation] = useState(null)\r\n const [vehicleInfo, setVehicleInfo] = useState(biddingVehicle?.vehicle)\r\n\r\n const dealershipOptions: IOption[] = useMemo(\r\n () =>\r\n AssociatedBuyers.filter((dealership) =>\r\n biddingVehicle?.auctionInfo.SalesSessionStepBuyerTypeIds.some(\r\n (sessionStepBuyerType) => sessionStepBuyerType === dealership.BuyerTypeID\r\n )\r\n ).map((dealership) => ({\r\n item: dealership,\r\n label: dealership.Description,\r\n value: dealership.ID\r\n })),\r\n\r\n [AssociatedBuyers, biddingVehicle?.auctionInfo.SalesSessionStepBuyerTypeIds]\r\n )\r\n\r\n const buyerAccountOptions: IOption[] = useMemo(\r\n () =>\r\n deliveryInformation?.CurrentBuyerAlternateIdentifiers?.map((acc: IAccountInfo) => ({\r\n item: acc,\r\n label: acc.Description,\r\n value: acc.Description\r\n })),\r\n [deliveryInformation?.CurrentBuyerAlternateIdentifiers]\r\n )\r\n\r\n const paymentTypes: IOption[] = useMemo(() => {\r\n return deliveryInformation?.PaymentTypes?.map((paymentType) => ({\r\n item: paymentType,\r\n label: paymentType.Description,\r\n value: paymentType.ID\r\n }))\r\n }, [deliveryInformation?.PaymentTypes])\r\n\r\n const selfArrangeTransportationProvider: IDropdownData = useMemo(\r\n () => deliveryInformation?.TransportProviders.find((provider) => provider.ID === SelfArrangedTransportProviderId),\r\n [deliveryInformation?.TransportProviders]\r\n )\r\n\r\n const estimatedGrossPrice = useMemo(() => {\r\n if (!biddingVehicle?.auctionInfo) {\r\n return undefined\r\n }\r\n\r\n const totalCharges =\r\n vehicleInfo?.Charges?.reduce((accumulator, currentValue) => accumulator + currentValue.Price, 0) || 0\r\n\r\n const promotions =\r\n vehicleInfo?.Incentives?.reduce((accumulator, currentValue) => accumulator + currentValue.Amount, 0) || 0\r\n\r\n let total = 0\r\n const deliveryPrice = deliveryInformation?.QuotePrice || 0 // for now this almost always 0 because we default to self-arranged\r\n\r\n // for now this fee only applicable for Nissan\r\n const titleOptionFee = deliveryInformation?.TitleDeliveryCharge || 0\r\n const nextBidAmount = biddingVehicle.auctionInfo.NextBidAmount\r\n if (vehicleInfo?.IsIncentiveAccumulate) {\r\n total = buyerFee + nextBidAmount + deliveryPrice + titleOptionFee + totalCharges\r\n } else {\r\n total = buyerFee + nextBidAmount + deliveryPrice + titleOptionFee + totalCharges + promotions\r\n }\r\n return total\r\n }, [\r\n biddingVehicle.auctionInfo,\r\n buyerFee,\r\n deliveryInformation?.QuotePrice,\r\n deliveryInformation?.TitleDeliveryCharge,\r\n vehicleInfo?.Charges,\r\n vehicleInfo?.Incentives,\r\n vehicleInfo?.IsIncentiveAccumulate\r\n ])\r\n\r\n const fetchDetailedDeliveryInfo = useCallback(\r\n async (biddingDealerID?: number) => {\r\n if (biddingVehicle?.vehicle && biddingVehicle?.auctionInfo) {\r\n const vehicle = biddingVehicle.vehicle\r\n\r\n const salePrice = biddingVehicle.auctionInfo.NextBidAmount || vehicle.FinalPrice\r\n\r\n const deliveryQuote: IDeliveryQuote = {\r\n ChannelID: vehicle.SaleChannelID,\r\n InterestID: vehicle.OfferID,\r\n InterestStatusID: vehicle.OfferStatusID,\r\n LocationID: vehicle.LocationID,\r\n PaymentTypeID: 0,\r\n SalePrice: salePrice,\r\n SalesSessionStepId: vehicle.SalesSessionStepID,\r\n VehicleInstanceID: vehicle.InstanceID\r\n }\r\n const deliveryInformation = await getDetailedDeliveryInfo(\r\n deliveryQuote,\r\n biddingDealerID || biddingVehicle.auctionInfo.BuyerID\r\n )\r\n\r\n formik.setFieldValue('PaymentTypeID', deliveryInformation.PaymentTypeID, false)\r\n formik.setFieldValue('BuyerAccountReference', deliveryInformation.CurrentBuyerAccountRef, false)\r\n setDeliveryInformation(deliveryInformation)\r\n setBuyerFee(deliveryInformation.BuyerFee)\r\n setBuyerFeeString(deliveryInformation.BuyerFeeString)\r\n setHasAnyChargeRange(deliveryInformation.HasAnyChargeRange)\r\n }\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [biddingVehicle?.auctionInfo, biddingVehicle?.vehicle]\r\n )\r\n\r\n const fetchVehicleInformation = async (biddingDealerID?: number) => {\r\n const payload = new GetBaseVehicleRequest([biddingVehicle])\r\n payload.IncludeAuctionData = true\r\n payload.IncludeBaseData = true\r\n payload.IncludeInspectionReport = false\r\n const {\r\n Items: [vehicleData]\r\n } = await getBaseVehicle(payload, biddingDealerID)\r\n setVehicleInfo(vehicleData.vehicle)\r\n }\r\n const handleDealerChange = async (dealershipId?: number) => {\r\n dealershipId = dealershipId || biddingVehicle.auctionInfo.BuyerID\r\n try {\r\n setFetchLoading(true)\r\n await Promise.all([fetchVehicleInformation(dealershipId), fetchDetailedDeliveryInfo(dealershipId)])\r\n } catch (error) {\r\n } finally {\r\n setFetchLoading(false)\r\n }\r\n }\r\n useSidePanelRealTimeUpdateDealer(formik, handleDealerChange)\r\n\r\n const requestGenericPremiumOnBidMountChange = debounce(async (bidAmount: number, biddingDealerId: number) => {\r\n if (hasAnyChargeRange) {\r\n try {\r\n const feeRequest: IVehicleFeeRequest = {\r\n VehicleInstanceId: biddingVehicle?.vehicle.InstanceID,\r\n LocationId: biddingVehicle?.vehicle.LocationID,\r\n SaleChannelId: biddingVehicle?.vehicle.SaleChannelID,\r\n Price: bidAmount\r\n }\r\n setFeeLoading(true)\r\n const feeResponse = await getGenericPremium(feeRequest, biddingDealerId)\r\n\r\n setHasAnyChargeRange(feeResponse.HasAnyChargeRange)\r\n setBuyerFee(feeResponse.Premium)\r\n setBuyerFeeString(feeResponse.PremiumString)\r\n } catch (error) {\r\n console.error(error)\r\n } finally {\r\n setFeeLoading(false)\r\n }\r\n }\r\n }, 300)\r\n\r\n useEffect(() => {\r\n requestGenericPremiumOnBidMountChange(formik.values.BidAmount, formik.values?.BiddingDealerID)\r\n }, [formik.values.BidAmount, formik.values?.BiddingDealerID])\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n \r\n\r\n {deliveryInformation?.CurrentBuyerAlternateIdentifiers?.length > 1 && (\r\n account.Description === deliveryInformation?.CurrentBuyerAccountRef\r\n )?.Description\r\n }\r\n name=\"BuyerAccountReference\"\r\n >\r\n )}\r\n\r\n \r\n\r\n {/* bid again */}\r\n {biddingVehicle?.auctionInfo?.HasPreviousBid ? (\r\n <>\r\n \r\n formik.setFieldValue('BidAmountType', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n formik.setFieldValue('BidAmountType', event.target.value)}\r\n />\r\n\r\n \r\n \r\n \r\n ) : (\r\n // first bid\r\n \r\n \r\n Enter Bid Amount\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n )\r\n}\r\n","import { BidAgainFormValues } from './../types/formikTypes'\r\nimport { useEffect } from 'react'\r\nimport { FormikHelpers } from 'formik'\r\nimport { useBiddingSidePanel } from 'store/useBiddingSidePanelStore'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\n\r\n// when dealership changed by dealership dropdown manage bids page\r\n// we want all clients of that user (eg: watchlist side panel, other tabs of manage bid) follow the updated BiddingDealerID\r\n// this hook also activate when we open side panel\r\nexport const useSidePanelRealTimeUpdateDealer = (\r\n formikHelper: FormikHelpers,\r\n dealershipUpdatedCallback: () => void\r\n) => {\r\n const biddingVehicleInstanceId = useBiddingSidePanel((state) => state.biddingVehicleInstanceId)\r\n const biddingVehicle = useVehicleStore((state) =>\r\n state.vehicles?.find((vehicleData) => vehicleData.vehicle.InstanceID === biddingVehicleInstanceId)\r\n )\r\n useEffect(() => {\r\n formikHelper.setFieldValue('BiddingDealerID', biddingVehicle?.auctionInfo.BuyerID, false)\r\n formikHelper.setFieldValue('BidAmount', biddingVehicle?.auctionInfo.NextBidAmount, false)\r\n\r\n // fetchDetailedDeliveryInfo()\r\n dealershipUpdatedCallback()\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [biddingVehicle?.auctionInfo.BuyerID])\r\n}\r\n","import { Button, Spinner } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledSpinnerButton = styled(Button)`\r\n .spinner-border {\r\n margin-left: 5px;\r\n width: 1em;\r\n height: 1em;\r\n }\r\n`\r\n","import { ComponentProps, PropsWithChildren } from 'react'\r\nimport { Button as ReactBootStrapButton } from 'react-bootstrap'\r\nimport Spinner from 'react-bootstrap/Spinner'\r\nimport { StyledSpinnerButton } from './SpinnerButton.styled'\r\n\r\nexport interface IButtonProps extends ComponentProps {\r\n isLoading: boolean\r\n}\r\n\r\nexport const SpinnerButton = ({ isLoading, disabled, children, ...props }: PropsWithChildren) => {\r\n return (\r\n \r\n {children}\r\n {isLoading && }\r\n \r\n )\r\n}\r\nexport default SpinnerButton\r\n","import { ComponentProps, useEffect, useState } from 'react'\r\nimport { Alert } from 'react-bootstrap'\r\n\r\nconst DEFAULT_DISMISSABLE_TIMEOUT = 3000\r\ninterface IProps extends ComponentProps {\r\n message: string\r\n variant?: 'danger' | 'success'\r\n autoDismissable?: boolean | number\r\n onClose?: () => void\r\n}\r\nexport const DismissableAlert = ({ message, variant = 'danger', onClose, autoDismissable, ...props }: IProps) => {\r\n const [show, setShow] = useState(!!message)\r\n\r\n useEffect(() => {\r\n setShow(Boolean(message))\r\n }, [message])\r\n\r\n useEffect(() => {\r\n let timeoutHandler\r\n if (autoDismissable && show) {\r\n const timeout = typeof autoDismissable === 'number' ? autoDismissable : DEFAULT_DISMISSABLE_TIMEOUT\r\n\r\n timeoutHandler = setTimeout(() => {\r\n setShow(false)\r\n onClose?.()\r\n }, timeout)\r\n }\r\n\r\n return () => {\r\n if (timeoutHandler) {\r\n clearTimeout(timeoutHandler)\r\n }\r\n }\r\n }, [autoDismissable, show])\r\n\r\n return (\r\n show && (\r\n {\r\n setShow(false)\r\n onClose?.()\r\n }}\r\n dismissible\r\n {...props}\r\n >\r\n {message}\r\n \r\n )\r\n )\r\n}\r\n","import { bidOnVehicle } from 'apis/vehicleApis'\r\nimport { BidAmountTypeOptions, BuyItNowPrice, SelfArrangedTransportProviderId, VehicleStatuses } from 'common/constants'\r\nimport { SlideOut } from 'components/SlideOut/SlideOut'\r\nimport { useEffect, useState } from 'react'\r\nimport { useBiddingSidePanel } from 'store/useBiddingSidePanelStore'\r\nimport { IBidOnVehicleRequest } from 'types/vehicleTypes'\r\nimport shallow from 'zustand/shallow'\r\nimport { Formik, FormikHelpers } from 'formik'\r\nimport { BidAgainFormValues } from 'types/formikTypes'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\nimport { number, object, ObjectSchema, string } from 'yup'\r\nimport { useSignalRStore } from 'store/useSignalRStore'\r\nimport { BiddingSidePanelFormContent } from './BiddingSidePanelFormContent'\r\nimport { Alert, Button, Form } from 'react-bootstrap'\r\nimport SpinnerButton from 'components/Buttons/SpinnerButton'\r\nimport { StyledSlideOutElement } from 'components/SlideOut/SlideOut.styled'\r\nimport { DismissableAlert } from 'components/DismissableAlert/DismissableAlert'\r\nimport { CountDownWithColor } from 'modules/BuyerActivity/CountDownWithColor'\r\nimport { useCountdown } from 'hooks/useCountdown'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { useLocation } from 'react-router-dom'\r\n\r\nconst bidAgainValidationSchema: ObjectSchema = object({\r\n VehicleInstanceId: number().required().positive().integer(),\r\n BidAmount: number().required('Required').positive('Required').integer(),\r\n PaymentTypeID: number().required().positive('Required').integer(),\r\n BiddingDealerID: number().required().positive().integer(),\r\n BidAmountType: string()\r\n .required()\r\n .oneOf(['CurrentBidAmount', 'UpdateBidAmount'] as const),\r\n TransportCompanyID: number().required().positive().integer(),\r\n BuyerAccountReference: string()\r\n})\r\ninterface IBiddingSidePanelProps {\r\n isDealerShipSelectable: boolean\r\n}\r\nexport const BiddingSidePanel: React.FC = ({ isDealerShipSelectable }) => {\r\n const updateVehicleAuction = useVehicleStore((state) => state.updateVehicleAuction)\r\n const [isOpen, biddingVehicleInstanceId, setBiddingVehicleInstaceId] = useBiddingSidePanel(\r\n (state) => [state.isOpen, state.biddingVehicleInstanceId, state.setBiddingVehicleInstanceId],\r\n shallow\r\n )\r\n const biddingVehicle = useVehicleStore((state) =>\r\n state.vehicles?.find((vehicleData) => vehicleData.vehicle.InstanceID === biddingVehicleInstanceId)\r\n )\r\n\r\n const { userInteraction } = useDtmAnalytics()\r\n const location = useLocation()\r\n useEffect(() => {\r\n setBiddingVehicleInstaceId(null)\r\n }, [location.pathname])\r\n\r\n const connectionID = useSignalRStore((state) => state.connectionID)\r\n const [isBidSuccess, setIsBidSuccess] = useState(false)\r\n const [bidResponseMessage, setBidResponseMessage] = useState('')\r\n const [loading, setLoading] = useState(false)\r\n const { seconds: timeOut } = useCountdown(biddingVehicle?.auctionInfo?.EndDate)\r\n const showBidButton =\r\n biddingVehicle?.auctionInfo?.CanBid && timeOut > 0 && biddingVehicle?.vehicle?.StatusID === VehicleStatuses.OnSale\r\n\r\n const biddingHandler = async (values: BidAgainFormValues, formikHelpers: FormikHelpers) => {\r\n if (!biddingVehicle) return\r\n\r\n const bidRequest: IBidOnVehicleRequest = {\r\n VehicleInstanceId: values.VehicleInstanceId,\r\n BidAmount:\r\n values.BidAmountType === BidAmountTypeOptions.CurrentBidAmount\r\n ? biddingVehicle?.auctionInfo.UserMaxBid\r\n : +values.BidAmount,\r\n BuyItNowPrice: BuyItNowPrice,\r\n QuickBid: false,\r\n ConnectionId: connectionID,\r\n ReferenceNumber: values.BuyerAccountReference,\r\n SalesSessionStepId: biddingVehicle.vehicle.SalesSessionStepID,\r\n DeliveryQuote: {\r\n PaymentTypeID: values.PaymentTypeID,\r\n TransportCompanyID: values.TransportCompanyID,\r\n ChannelID: biddingVehicle.vehicle.SaleChannelID,\r\n SalePrice: values.BidAmount || biddingVehicle.vehicle.FinalPrice,\r\n SalesSessionStepId: biddingVehicle.vehicle.SalesSessionStepID,\r\n VehicleInstanceID: biddingVehicle.vehicle.InstanceID\r\n }\r\n }\r\n\r\n try {\r\n setLoading(true)\r\n const vehicleDataResponse = await bidOnVehicle(bidRequest, values.BiddingDealerID)\r\n\r\n // update auctionInfo from response\r\n if (vehicleDataResponse.Items?.[0]?.auctionInfo) {\r\n formikHelpers.setFieldValue('BidAmount', vehicleDataResponse.Items[0].auctionInfo.NextBidAmount)\r\n updateVehicleAuction({\r\n auctionInfo: vehicleDataResponse.Items[0].auctionInfo,\r\n vehicleInstanceID: vehicleDataResponse.Items[0].vehicle.InstanceID\r\n })\r\n }\r\n\r\n if (bidRequest.ReferenceNumber) {\r\n formikHelpers.setFieldValue('BuyerAccountReference', bidRequest.ReferenceNumber)\r\n }\r\n\r\n // show response message\r\n setBidResponseMessage(\r\n vehicleDataResponse.Items?.[0]?.auctionInfo.ResponseMessage || vehicleDataResponse.ErrorMessages[0]\r\n )\r\n setIsBidSuccess(vehicleDataResponse.Success)\r\n } catch (error) {\r\n console.error(error)\r\n } finally {\r\n setLoading(false)\r\n }\r\n //analytics\r\n userInteraction(`${window.webData.pageName} : Place Bid`, [\r\n { auctionInfo: biddingVehicle.auctionInfo, VIN: biddingVehicle.vehicle.VIN }\r\n ])\r\n }\r\n\r\n const resetSidePanel = () => {\r\n setBiddingVehicleInstaceId(null)\r\n setBidResponseMessage('')\r\n }\r\n\r\n if (!isOpen()) return null\r\n return (\r\n {\r\n resetSidePanel()\r\n }}\r\n >\r\n \r\n {(props) => (\r\n
\r\n \r\n\r\n setBidResponseMessage('')}\r\n autoDismissable\r\n >\r\n\r\n props.values.BidAmount} variant=\"danger\">\r\n Current bid amount has changed\r\n \r\n\r\n \r\n {showBidButton && (\r\n \r\n )}\r\n
\r\n {showBidButton && (\r\n \r\n {biddingVehicle?.auctionInfo.HasPreviousBid ? 'Update' : 'Bid'}\r\n \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 styled from 'styled-components'\r\n\r\nexport const StyledBreadCrumbICon = styled.span`\r\n margin-left: 0.5rem;\r\n margin-right: 0.5rem;\r\n\r\n &:first-child {\r\n margin-left: 0;\r\n }\r\n`\r\n\r\nexport const StyledBreadCrumbMenu = styled.div`\r\n display: flex;\r\n margin-bottom: 2.5rem;\r\n align-items: self-end;\r\n\r\n a {\r\n font-size: 1.4rem;\r\n }\r\n`\r\n","import { faChevronRight, faHome } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { Fragment, PropsWithChildren, useMemo } from 'react'\r\nimport { Link, useRouteMatch } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { IMenuInfo } from 'types/userTypes'\r\nimport { findMenuParent } from 'utils/menuUtils'\r\nimport shallow from 'zustand/shallow'\r\nimport { StyledBreadCrumbICon, StyledBreadCrumbMenu } from './BreadcrumbMenu.styled'\r\n\r\nexport const menus: IMenuInfo[] = [\r\n { path: '/terms', text: 'Terms and Condition', description: 'Terms and Condition' },\r\n { path: '/privacy', text: 'Privacy Policy', description: 'Privacy Policy' },\r\n { path: '/contactUs', text: 'Contact Us', description: 'Contact Us' },\r\n { path: '/faqs', text: 'Frequently Asked Questions', description: 'Frequently Asked Questions' }\r\n]\r\n\r\nexport const BreadcrumbMenu = ({ children }: PropsWithChildren) => {\r\n const routematch = useRouteMatch()\r\n const breadcrumbs = findMenuParent(menus, routematch.path)\r\n const userClaims = useGlobalStore((state) => state.userClaims, shallow)\r\n const isShow = useMemo(\r\n () => ((userClaims.IsTermAccepted && userClaims.Username) || !userClaims.Username ? true : false),\r\n [userClaims.Username, userClaims.IsTermAccepted]\r\n )\r\n\r\n return (\r\n <>\r\n {isShow && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {breadcrumbs?.map((item, index) => (\r\n \r\n \r\n \r\n \r\n {item.path ? {item.text} : {item.text}}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import shallow from 'zustand/shallow'\r\nimport { useEffect, useMemo } from 'react'\r\nimport { selectVehiclesByIds } from 'store/selectors'\r\nimport { useSignalRStore } from 'store/useSignalRStore'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\nimport { IVehicleData } from 'types/vehicleTypes'\r\n\r\nexport const useVehicles = (originalData: IVehicleData[]) => {\r\n const subscribe = useSignalRStore((state) => state.subscribe)\r\n const [vehiclesFromStore, addVehicles] = useVehicleStore((state) => [state.vehicles, state.addVehicles], shallow)\r\n\r\n const returnedVehicles = useMemo(\r\n () =>\r\n selectVehiclesByIds(\r\n originalData?.map((item) => item.vehicle.InstanceID),\r\n vehiclesFromStore\r\n ),\r\n [originalData, vehiclesFromStore]\r\n )\r\n useEffect(() => {\r\n if (!originalData?.length) {\r\n return\r\n }\r\n\r\n addVehicles(originalData)\r\n }, [addVehicles, originalData])\r\n\r\n useEffect(() => {\r\n if (!originalData?.length) {\r\n return\r\n }\r\n\r\n const instanceIds = originalData.map((item) => item.vehicle.InstanceID)\r\n subscribe(instanceIds)\r\n }, [originalData, subscribe])\r\n\r\n return { vehicles: returnedVehicles }\r\n}\r\n","import { IVehicleData } from 'types/vehicleTypes'\r\n\r\nexport const selectVehiclesByIds = (ids: number[], vehicles: IVehicleData[]) => {\r\n if (!ids) {\r\n return null\r\n }\r\n\r\n return vehicles.filter((item) => ids?.indexOf(item.vehicle.InstanceID) >= 0)\r\n}\r\n","import { IconProps } from 'core/typing/IconType'\r\nimport { ThemedSvg } from './ThemedSvg.styled'\r\n\r\nconst ChevronDown = ({ width = '16', height = '16', ...props }: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default ChevronDown\r\n","import { VehicleStatuses } from 'common/constants'\r\nimport { StyledAuctionPrice, StyledNoAvailable, StyledTag } from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { useContext } from 'react'\r\nimport { VehicleContext } from './VehicleContext'\r\n\r\nexport const VehiclePriceSection = () => {\r\n const {\r\n vehicleData: { vehicle: vehicleInfo, auctionInfo, IsAvailable }\r\n } = useContext(VehicleContext)\r\n\r\n return (\r\n <>\r\n {IsAvailable ? (\r\n <>\r\n {vehicleInfo.StatusID === VehicleStatuses.SoldNotFunded && (\r\n <>\r\n \r\n {vehicleInfo.BuyItNowPrice !== 0 && vehicleInfo.BuyItNowPriceString}\r\n \r\n \r\n SOLD\r\n \r\n \r\n )}\r\n\r\n {vehicleInfo.StatusID !== VehicleStatuses.SoldNotFunded &&\r\n vehicleInfo.StatusID !== VehicleStatuses.OnSale && (\r\n \r\n {vehicleInfo.StatusDescription}\r\n \r\n )}\r\n\r\n {vehicleInfo.StatusID === VehicleStatuses.OnSale && (\r\n
\r\n {auctionInfo && {auctionInfo.CurrentPriceString}}\r\n {!auctionInfo && {vehicleInfo.FinalPriceString}}\r\n
\r\n )}\r\n \r\n ) : (\r\n \r\n NO LONGER AVAILABLE\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { VehicleStatuses } from 'common/constants'\r\nimport { colorDanger, colorWinning } from 'common/theme'\r\nimport { StyledTag } from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { useContext } from 'react'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport styled from 'styled-components'\r\nimport { VehicleContext } from './VehicleContext'\r\nimport classNames from 'classnames'\r\n\r\nexport const StyledVehicleTags = styled.div`\r\n ${StyledTag} {\r\n width: 10rem;\r\n }\r\n`\r\n\r\ninterface IProps {\r\n direction?: 'left' | 'right'\r\n className?: string\r\n}\r\n\r\nexport const VehicleTags = ({ className, direction = 'left' }: IProps) => {\r\n const {\r\n vehicleData: { vehicle: vehicleInfo, auctionInfo }\r\n } = useContext(VehicleContext)\r\n const getLocalText = useGlobalStore((state) => state.getLocalText)\r\n\r\n return (\r\n \r\n {vehicleInfo.StatusID === VehicleStatuses.OnSale && auctionInfo && auctionInfo.HasPreviousBid && (\r\n
\r\n \r\n \r\n {auctionInfo.IsHighestBidder ? getLocalText('WINNING', 'winning') : getLocalText('OUTBID', 'outbid')}\r\n \r\n \r\n
\r\n )}\r\n {vehicleInfo.StatusID !== VehicleStatuses.SoldNotFunded && Boolean(vehicleInfo.WatchListID) && (\r\n
\r\n \r\n watching\r\n \r\n
\r\n )}\r\n
\r\n )\r\n}\r\n","import { CountDownWithColor } from 'modules/BuyerActivity/CountDownWithColor'\r\nimport { useContext } from 'react'\r\nimport { VehicleContext } from './VehicleContext'\r\n\r\nexport const VehicleTimer = () => {\r\n const {\r\n vehicleData: { vehicle: vehicleInfo, auctionInfo }\r\n } = useContext(VehicleContext)\r\n\r\n return \r\n}\r\n","import { borderColorSecondary } from 'common/theme'\r\nimport { theme } from 'core/skins/BMW/theme'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledDropdownList = styled.div`\r\n & {\r\n user-select: none;\r\n background-color: white;\r\n }\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n .dropdown:focus,\r\n .dropdown:focus-visible,\r\n .dropdown:hover {\r\n background-color: #fff;\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgb(0 112 210 / 25%);\r\n\r\n .dropdown-title {\r\n border-color: #53afff;\r\n }\r\n }\r\n\r\n .dropdown-title {\r\n color: rgba(0, 0, 0, 0.5);\r\n font-weight: 600;\r\n width: 100%;\r\n text-align: left;\r\n background-color: white;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n overflow: hidden;\r\n font-size: 1.4rem;\r\n\r\n /* Keep the number equal bootstrap's default number */\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 0.25rem;\r\n border: 1px solid ${borderColorSecondary};\r\n }\r\n\r\n .dropdown-title:focus-visible {\r\n border-color: #53afff;\r\n background-color: #fff;\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgb(0 112 210 / 25%);\r\n }\r\n\r\n .dropdown-title:after {\r\n display: none;\r\n }\r\n\r\n .dropdown-select {\r\n padding-bottom: 0px;\r\n min-width: 100%;\r\n font-size: 1.4rem;\r\n }\r\n\r\n .dropdown-item {\r\n font-weight: 600;\r\n font-size: 1.4rem;\r\n display: flex;\r\n align-items: center;\r\n color: rgba(0, 0, 0, 0.5);\r\n background-color: transparent;\r\n transition: all 167ms ease-in;\r\n position: relative;\r\n border-bottom: 2px solid white;\r\n }\r\n\r\n .dropdown-item.active,\r\n .dropdown-item:focus-visible,\r\n .dropdown-item:hover {\r\n outline: 0;\r\n border-bottom: 2px solid ${({ theme }) => theme.colors.primary};\r\n }\r\n`\r\n","import { useEffect, useState } from 'react'\r\nimport { Dropdown } from 'react-bootstrap'\r\nimport { StyledDropdownList } from './DropdownList.styled'\r\nimport ChevronDown from 'icons/ChevronDown'\r\n\r\ninterface IProps {\r\n defaultValue: string\r\n items: IDropDownItemProps[]\r\n onChange?: (value) => void\r\n}\r\n\r\ninterface IDropDownItemProps {\r\n id: string\r\n value: string\r\n}\r\n\r\nexport const DropdownList = ({ defaultValue, items, onChange }: IProps) => {\r\n const [currentValue, setCurrentValue] = useState('')\r\n\r\n useEffect(() => {\r\n setCurrentValue(defaultValue)\r\n }, [defaultValue])\r\n\r\n const handleSelectChange = (id) => {\r\n setCurrentValue(id)\r\n onChange?.(id)\r\n }\r\n\r\n return (\r\n \r\n handleSelectChange(id)}>\r\n handleSelectChange(id)}\r\n className=\"dropdown-title\"\r\n tabIndex={0}\r\n >\r\n {items.find((i) => i.id === currentValue)?.value ?? 'Select'}\r\n \r\n \r\n \r\n {items.map((item) => (\r\n \r\n {item.value}\r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { Popover } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledPopOverPagination = styled(Popover)`\r\n label {\r\n font-weight: 600;\r\n margin-right: 1rem;\r\n }\r\n\r\n width: 300px;\r\n display: flex;\r\n padding: 1rem;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n input {\r\n width: 8rem;\r\n margin-right: 1rem;\r\n }\r\n\r\n button {\r\n padding: 0 1rem;\r\n }\r\n`\r\n\r\nexport const StyledPagination = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n @media (max-width: 650px) {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n row-gap: 1rem;\r\n }\r\n .pagination > div > li > a,\r\n .pagination > li > a,\r\n .pagination > li > span {\r\n border: none;\r\n border-radius: 0.3rem;\r\n }\r\n\r\n .page-link {\r\n position: relative;\r\n display: block;\r\n padding: 0.5rem 0.75rem;\r\n margin-left: -1px;\r\n line-height: 1.25;\r\n color: ${({ theme }) => theme.colors.primary};\r\n background-color: transparent;\r\n }\r\n .page-link:hover {\r\n z-index: 2;\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n text-decoration: none;\r\n background-color: ${({ theme }) => theme.colors.secondary};\r\n }\r\n\r\n .page-item.active .page-link {\r\n z-index: 3;\r\n color: ${({ theme }) => theme.colors.inputBackgroundColor};\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n }\r\n\r\n .record-per-page {\r\n display: flex;\r\n align-items: center;\r\n gap: 1rem;\r\n\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n }\r\n`\r\n","import { useRef, useState } from 'react'\r\nimport { FormControl as Input, Button, Overlay, Pagination } from 'react-bootstrap'\r\n\r\nimport { StyledPopOverPagination } from './Paging.styled'\r\n\r\ninterface IOverlayProps {\r\n totalPages: number\r\n onChangedPageValue: (pageSizeSelected: number) => void\r\n toPage: number\r\n handleChangedPage: (pageNum: number) => void\r\n}\r\n\r\nexport const OverlayEllipsis = ({ handleChangedPage, onChangedPageValue, toPage, totalPages }: IOverlayProps) => {\r\n const [showGotoPage, setShowGotoPage] = useState(false)\r\n\r\n const paginationRef = useRef(null)\r\n\r\n const onChangePage = () => {\r\n handleChangedPage(toPage)\r\n setShowGotoPage(false)\r\n }\r\n\r\n return (\r\n <>\r\n setShowGotoPage(false)}\r\n show={showGotoPage}\r\n placement=\"top-end\"\r\n transition={false}\r\n >\r\n \r\n \r\n {\r\n onChangedPageValue(Number(e.target.value))\r\n }}\r\n max={totalPages}\r\n />\r\n \r\n \r\n \r\n
\r\n setShowGotoPage(true)} />\r\n
\r\n \r\n )\r\n}\r\n","import { PageSizeOptions, PAGINATION_ITEM_SIZE } from 'common/constants'\r\nimport { DropdownList } from 'layouts/DropdownList'\r\nimport { useState } from 'react'\r\nimport { Pagination, PaginationProps } from 'react-bootstrap'\r\nimport { generatePageItems } from 'utils/pagingUtils'\r\nimport { StyledPagination } from './Paging.styled'\r\nimport { OverlayEllipsis } from './OverlayEllipsis'\r\n\r\ninterface IProps extends PaginationProps {\r\n currentPageSize?: number\r\n totalPages: number\r\n currentPage: number\r\n showRecordsPerPage?: boolean\r\n handlePageSizeChanged?: (pageSizeSelected: number) => void\r\n handleChangedPage?: (pageNum: number) => void\r\n}\r\n\r\nexport const Paging = ({\r\n currentPageSize,\r\n handlePageSizeChanged,\r\n totalPages,\r\n currentPage,\r\n showRecordsPerPage = true,\r\n handleChangedPage,\r\n ...props\r\n}: IProps) => {\r\n const [goToPageValue, setGoToPageValue] = useState(currentPage + 1)\r\n\r\n const onChangedPageValue = (pageNum: number) => {\r\n if (pageNum > totalPages) setGoToPageValue(totalPages)\r\n else if (pageNum < 1) setGoToPageValue(1)\r\n else setGoToPageValue(pageNum)\r\n }\r\n\r\n const pageCount = generatePageItems(totalPages, currentPage + 1, PAGINATION_ITEM_SIZE).map((item) =>\r\n typeof item === 'number' ? (\r\n {\r\n handleChangedPage?.(item + 1)\r\n }}\r\n >\r\n {item + 1}\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n\r\n return (\r\n \r\n {showRecordsPerPage && (\r\n
\r\n Records per page:\r\n ({ id: size.toString(), value: size.toString() }))}\r\n onChange={handlePageSizeChanged}\r\n />\r\n
\r\n )}\r\n \r\n {pageCount}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport * from './Paging.styled'\r\n","export const generatePageItems = (totalPages: number, currentPage: number, numberOfDisplayItems: number) => {\r\n const items: (string | number)[] = new Array(numberOfDisplayItems)\r\n if (totalPages < numberOfDisplayItems) {\r\n for (let i = 0; i < totalPages; i++) {\r\n items[i] = i\r\n }\r\n return items\r\n }\r\n // get the temp position of current page\r\n const left = Math.max(\r\n 0,\r\n Math.min(totalPages - numberOfDisplayItems, currentPage - Math.floor(numberOfDisplayItems / 2))\r\n )\r\n\r\n for (let i = 0; i < numberOfDisplayItems; i += 1) {\r\n // set position in the paging items line base on numberOfDisplayItems\r\n items[i] = i + left\r\n }\r\n\r\n // replace non-ending items with placeholders\r\n if (items[0] > 0) {\r\n items[0] = 0\r\n items[1] = 'prev-ellipsis'\r\n }\r\n\r\n if (items[items.length - 1] < totalPages - 1) {\r\n items[items.length - 1] = totalPages - 1\r\n items[items.length - 2] = 'next-ellipsis'\r\n }\r\n return items\r\n}\r\n","export default __webpack_public_path__ + \"static/media/winning-bid.822f4ec9.png\";","import { colorDanger, gridBreakPoints, textColor, textTableHeaderColor } from 'common/theme'\r\nimport { Modal, Table } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyleBidsHistory = styled(Modal)`\r\n margin: 2rem 0;\r\n`\r\n\r\nexport const StyledModalContent = styled(Modal.Body)`\r\n width: 100%;\r\n height: 100%;\r\n padding-left: 1rem;\r\n padding-right: 1rem;\r\n h5 {\r\n padding: 0.5rem 0 0 1rem;\r\n }\r\n button {\r\n float: right;\r\n color: ${({ theme }) => theme.colors.primary};\r\n background-color: transparent;\r\n border-color: transparent;\r\n }\r\n`\r\n\r\nexport const StyleModalHeader = styled(Modal.Header)`\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n color: white;\r\n font-size: 1.8rem;\r\n .close span {\r\n font-size: 2rem;\r\n font-weight: normal;\r\n color: white;\r\n }\r\n`\r\n\r\nexport const StyledLabel = styled.span`\r\n font-weight: 600;\r\n`\r\n\r\nexport const StyledBidsHistoryTable = styled(Table)`\r\n tbody {\r\n position: relative;\r\n }\r\n th {\r\n background-color: ${({ theme }) => theme.colors.modalHeader};\r\n color: ${textTableHeaderColor};\r\n font-size: 1.6rem;\r\n font-weight: 400;\r\n padding: 1rem;\r\n text-align: left !important;\r\n }\r\n th:last-child {\r\n width: 18rem;\r\n }\r\n tr {\r\n &:nth-child(odd) {\r\n background-color: #f2f2f2;\r\n }\r\n &.highest-row {\r\n font-weight: bold;\r\n }\r\n }\r\n td {\r\n font-size: 1.6rem;\r\n color: ${textColor};\r\n padding: 0.5rem 1rem;\r\n border-top: 0;\r\n }\r\n th {\r\n text-align: center;\r\n }\r\n\r\n .type-of-bid {\r\n position: relative;\r\n min-width: 19rem;\r\n .winning-bid-icon {\r\n height: 4rem;\r\n position: absolute;\r\n right: -1.4rem;\r\n top: 0;\r\n }\r\n }\r\n .proxy-bid {\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: 900;\r\n }\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n .type-of-bid {\r\n position: unset;\r\n .winning-bid-icon {\r\n position: relative;\r\n left: 2.1rem;\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const StyleBidsHistoryNoteSpan = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n font-size: 1.2rem;\r\n color: ${colorDanger};\r\n font-weight: 700;\r\n`\r\n","import { useGlobalStore } from 'store/useGlobalStore'\r\nimport { IAuctionInfo } from 'types/auctionTypes'\r\nimport { IVehicleInfo } from 'types/vehicleTypes'\r\nimport shallow from 'zustand/shallow'\r\nimport winningBid from '../../images/winning-bid.png'\r\nimport {\r\n StyleBidsHistory,\r\n StyleBidsHistoryNoteSpan,\r\n StyledBidsHistoryTable,\r\n StyledLabel,\r\n StyledModalContent,\r\n StyleModalHeader\r\n} from './BidsHistoryModal.styled'\r\n\r\nimport { DateTime } from 'luxon'\r\nimport { ComponentProps } from 'react'\r\nimport { Modal } from 'react-bootstrap'\r\n\r\ninterface IBidsHistoryProps extends ComponentProps {\r\n auctionInfo: IAuctionInfo\r\n vehicleInfo: IVehicleInfo\r\n}\r\n\r\nexport const BidsHistoryModal = ({ auctionInfo, vehicleInfo, ...props }: IBidsHistoryProps) => {\r\n const getLocalText = useGlobalStore((state) => state.getLocalText, shallow)\r\n\r\n const vehicleVin = vehicleInfo.VIN\r\n const vehicleTitle = vehicleInfo.Title\r\n const bidHistories = auctionInfo.BidHistory\r\n\r\n return (\r\n \r\n Bid History\r\n \r\n
\r\n
\r\n {vehicleTitle}\r\n
\r\n
\r\n \r\n VIN: \r\n \r\n {vehicleVin}\r\n
\r\n
\r\n \r\n \r\n \r\n Dealership\r\n Date\r\n Time\r\n Bid Amount\r\n Type of Bid\r\n \r\n \r\n \r\n {bidHistories &&\r\n bidHistories.map((item, index) => (\r\n \r\n {item.DealerShipName}\r\n {DateTime.fromISO(item.CreatedDate).toFormat('ccc LLL dd yyyy', { locale: 'en-US' })}\r\n {DateTime.fromISO(item.CreatedDate).toFormat('hh:mm:ss a', { locale: 'en-US' })}\r\n {item.BidAmountString}\r\n \r\n {item.IsProxyBid && Proxy Bid}\r\n {!item.IsProxyBid && Manual Bid}\r\n {item.IsHighestBid && \"WINNING\"}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n TIME ZONE {getLocalText('VendorTimeZoneAbbreviation', 'None')}\r\n Note: If two users bid the same amount, the first bid takes priority.\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { BidsHistoryModal } from 'modules/BuyerActivity/BidsHistoryModal'\r\nimport { StyledAuctionText, StyledNumberOfBids } from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { useContext, useState } from 'react'\r\nimport { VehicleContext } from './VehicleContext'\r\n\r\nexport const VehicleBidHistoryLink = () => {\r\n const [showBidsHistory, setShowBidsHistory] = useState(false)\r\n const {\r\n vehicleData: { vehicle: vehicleInfo, auctionInfo }\r\n } = useContext(VehicleContext)\r\n\r\n return (\r\n <>\r\n {auctionInfo && !auctionInfo.IsDirectSale && (\r\n <>\r\n \r\n setShowBidsHistory(true)}>\r\n {auctionInfo.NumberOfBids}\r\n \r\n {' Bids '}\r\n \r\n setShowBidsHistory(false)}\r\n size=\"lg\"\r\n centered\r\n auctionInfo={auctionInfo}\r\n vehicleInfo={vehicleInfo}\r\n onClose={() => {\r\n setShowBidsHistory(false)\r\n }}\r\n />\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Button, Modal } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const ModalSelectView = styled(Modal)`\r\n .modal-header {\r\n border-bottom: none;\r\n color: white;\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n font-weight: 200;\r\n font-size: 1.85rem;\r\n }\r\n .modal-body {\r\n padding-bottom: 1rem;\r\n padding-top: 1.5rem;\r\n }\r\n\r\n .container-fluid {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n }\r\n`\r\n\r\nexport const ButtonPopup = styled(Button)`\r\n padding: 1rem;\r\n font-size: 1.4rem;\r\n width: 70px;\r\n margin-top: 1rem;\r\n line-height: 0.5;\r\n`\r\n\r\nexport const ConfirmationGroupButton = styled.div`\r\n display: flex;\r\n gap: 1rem;\r\n`\r\n","import { ButtonPopup, ConfirmationGroupButton, ModalSelectView } from 'components/AlertDialog/AlertDialog.styled'\r\nimport React from 'react'\r\nimport { Container, Modal, ModalProps, Row } from 'react-bootstrap'\r\n\r\ninterface IProps extends ModalProps {\r\n title?: string\r\n description?: string\r\n onHide: () => void\r\n onSave?: (request: any) => Promise\r\n isConfirmation?: boolean\r\n}\r\n\r\nexport const AlertDialog = ({ title, description, isConfirmation = false, onHide, onSave, ...props }: IProps) => {\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {description}\r\n \r\n {isConfirmation ? (\r\n \r\n \r\n No\r\n \r\n \r\n Yes\r\n \r\n \r\n ) : (\r\n \r\n OK\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { StyledNoActivity } from './NoActivity.styled'\r\nimport NoActivityImg from 'images/no-activity.jpg'\r\nimport { StyledVehicleAuctionInfo } from './VehicleAuction.styled'\r\n\r\ninterface IProps {\r\n message: string\r\n}\r\n\r\nconst NoActivity = ({ message }: IProps) => {\r\n return (\r\n \r\n \r\n \"no\r\n
\r\n {message}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NoActivity\r\n","export default \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAQDAwMDAwQDAwQGBAMEBgcFBAQFBwgGBgcGBggKCAkJCQkICgoMDAwMDAoMDA0NDAwRERERERQUFBQUFBQUFBT/2wBDAQQFBQgHCA8KCg8UDg4OFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCABYAHYDAREAAhEBAxEB/8QAGgABAQEBAQEBAAAAAAAAAAAAAAEEBQMCCP/EADUQAAIBAgIHBgQFBQAAAAAAAAABAgMEEZIFEhQhMVPRExUiQVFScXKRsjM0VGHSIzVCgbH/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A/ZgAAAAAAAAAAAAAAACrgwIAAAAAAAAAAAAAAAAq4MCAAAADFLSltCcoNTbhJxeEW1jF4MCd623tqZGA71tvbUyMB3rbe2pkYDvW29tTIwPe3u6Vy5KmpLV460dXiB7gAAACrgwIAAAAORZwp1LytGpFTj2lV6rx979MAPedxounOVOVDGUHhLCNRrH4pgTa9E8h5KvUBteieQ8lXqBNr0VyHkq9QPGxuqdCMp1sVrYblFt+fkgOhQvKFzJwpa2KWPijKK9PNAaAAACrgwIAAAAOVYfna3z1fvYCjCnU0hWjUipx15eF4ryXo0BouZ6NtZRhUt8Zz3qMXNvBeb8QHvC3sZxU40IuMlivFP8AkBdls/08c0/5ANls/wBPHNP+QGDRj1q1R4Ybmkl+0gOoAAAVcGBAAAAByrD87W+er97Att/ca3zS/wCIDbWs6FxJTqNxmlhrRw3r03gfCvLOm6lKM8I268TfDct6x82Bitb6rO4lWrNxpVcFGm/8Yrg/i/MDr8QOVor8Wfwl9wHVAAAKuDAgAAAA5cbK/hUq1KS1XOc5RknBvCUm1ueIEsoTheSjVlrVd+u3hx3e3cBsvdslBUrODc57pVcUlCP7YviBgjoq6jBQVHwr1cXj8d4H13decp/WPUDfbRuIU1CvDVcd0Xiniv8AQGHRX4s/hL7gOqAAAVcGBAAAAAA5jtL5XFarRg1rSbjPw8Gl6gOx0z75/Sn0Adjpn3z+lPoA7HTPvn9KfQB2OmffP6U+gHpYWle2nJ1YtJprWeG9t4+QG8AAAq4MCAAAAAAAAAAAAAAAAKuDAgAAAAAAAAAAAAAAACrgwPbYrvkVMrAbHd8iplfQBsd3yKmV9AGx3fIqZX0AbHd8iplfQBsd3yKmV9AGx3fIqZX0Amx3fIqZJdAGx3fIqZJdAGx3fIqZJdAGx3fIqZJdAGx3fIqZJdAGx3fIqZJdAGx3fIqZJdAKrO7wf9Cpkl0A/9k=\"","export default __webpack_public_path__ + \"static/media/bmw-logo-new.dbdc79d9.png\";","import { DateTime } from 'luxon'\r\n\r\nexport function formatDate(date: string, format: string) {\r\n return DateTime.fromISO(date).toFormat(format)\r\n}\r\n\r\nexport const secondsDiff = (serverTime: Date, clientTime: Date, saleEndDate: Date) => {\r\n const adjustTime = serverTime.getTime() + (new Date().getTime() - clientTime.getTime())\r\n return Math.round((saleEndDate.getTime() - adjustTime) / 1000)\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const TermConditionBody = styled.div`\r\n background-color: ${({ theme }) => theme.colors.backgroundText};\r\n margin-left: 2.4rem;\r\n margin-right: 2.4rem;\r\n margin-bottom: 2.4rem;\r\n flex: 1;\r\n\r\n p {\r\n background: inherit !important;\r\n }\r\n\r\n span {\r\n font-family: inherit !important;\r\n font-size: inherit !important;\r\n }\r\n\r\n div:not([class]) {\r\n margin-left: 3rem;\r\n }\r\n`\r\n\r\nexport const Title = styled.h2`\r\n color: ${({ theme }) => theme.colors.primary};\r\n text-transform: uppercase;\r\n font-size: 30ps;\r\n margin-bottom: 1.2rem;\r\n`\r\n","// import { colorPrimary, textMenuColor } from 'common/theme'\r\nimport { gridBreakPoints } from 'common/theme'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledSubMenu = styled.div`\r\n box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.15);\r\n border-radius: 0.3rem;\r\n background: white;\r\n position: absolute;\r\n font-size: 1.4rem;\r\n opacity: 0;\r\n transform: translateY(4rem);\r\n pointer-events: none;\r\n transition: all 167ms ease-in;\r\n\r\n &:hover {\r\n display: block;\r\n }\r\n\r\n svg {\r\n margin-right: 1rem;\r\n }\r\n .nav-item .nav-link {\r\n font-size: 1.6rem;\r\n margin-left: 0;\r\n margin-right: 0;\r\n }\r\n\r\n li {\r\n height: 4.2rem;\r\n transition: 167ms ease-in;\r\n border-bottom: 0.2rem solid transparent;\r\n line-height: 2.2;\r\n }\r\n\r\n li:hover {\r\n border-bottom: 0.2rem solid ${({ theme }) => theme.colors.primary};\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n box-shadow: none;\r\n border-radius: unset;\r\n transition: none;\r\n transform: unset;\r\n opacity: unset;\r\n position: unset;\r\n background: transparent;\r\n li:hover {\r\n border-bottom: 0.2rem solid transparent;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledSubMenuItem = styled.li`\r\n white-space: nowrap;\r\n a.nav-link,\r\n a.nav-link:hover {\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n a.nav-link.active:after {\r\n border-bottom-color: transparent !important;\r\n }\r\n`\r\n","import { smallScreen } from '../../common/theme'\r\nimport styled from 'styled-components'\r\nimport { Carousel } from 'react-bootstrap'\r\nimport classNames from 'classnames'\r\nexport const StyledVehicleDetailImage = styled.div.attrs(({ className }) => ({\r\n className: classNames('text-center text-sm-left pb-4 pb-sm-0', className)\r\n}))`\r\n img {\r\n width: 100%;\r\n display: inline-block;\r\n border-radius: 0.3rem;\r\n max-width: 40rem;\r\n aspect-ratio: 4 / 3;\r\n object-fit: cover;\r\n cursor: pointer;\r\n\r\n @media (max-width: ${smallScreen}) {\r\n width: 100%;\r\n }\r\n }\r\n svg {\r\n width: 75%;\r\n height: 75%;\r\n display: block;\r\n margin: auto;\r\n }\r\n .carousel-item-broken-main-img {\r\n max-width: 25%;\r\n }\r\n`\r\nexport const StyledVehicleDetailCarousel = styled(Carousel)`\r\n svg {\r\n color: ${({ theme }) => theme.colors.primary};\r\n width: 100%;\r\n }\r\n width: 100%;\r\n .carousel-control-prev,\r\n .carousel-control-next {\r\n width: 8%;\r\n opacity: 1;\r\n }\r\n\r\n .carousel-control-prev:hover,\r\n .carousel-control-next:hover {\r\n opacity: 0.5;\r\n }\r\n .carousel-inner {\r\n margin: 0.5rem 10% 0 10%;\r\n width: auto;\r\n }\r\n\r\n img {\r\n cursor: pointer;\r\n }\r\n\r\n .carousel-item-img {\r\n max-width: 25%;\r\n max-height: 4rem;\r\n padding: 0;\r\n }\r\n`\r\n","import { Tooltip } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledVehicleNote = styled.div`\r\n .note-form {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.375rem;\r\n .note-input {\r\n width: 30%;\r\n }\r\n }\r\n .vehicle-note {\r\n text-overflow: ellipsis;\r\n white-space: pre;\r\n overflow: hidden;\r\n max-width: 30rem;\r\n }\r\n .save-vehicle-note {\r\n display: contents;\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: bold;\r\n }\r\n`\r\nexport const StyledToolTip = styled(Tooltip)`\r\n .arrow {\r\n display: none;\r\n }\r\n .tooltip-inner {\r\n white-space: pre-wrap;\r\n background-color: #fff;\r\n color: black;\r\n border: 0.1rem solid #ddd;\r\n border-radius: 0.5rem;\r\n max-width: 30rem;\r\n text-align: start;\r\n }\r\n`\r\n","import { useMemo, useReducer } from 'react'\r\n\r\ninterface IExpandAction {\r\n type: string\r\n value?: boolean\r\n index?: number\r\n totalGroup?: number\r\n defaultGroupOpen?: boolean[]\r\n}\r\n\r\ninterface IExpandState {\r\n componentOpen: boolean //parent component\r\n groupOpen: boolean[] //small components in parent component\r\n}\r\n\r\nconst reducer = (\r\n { componentOpen, groupOpen }: IExpandState,\r\n { type, value, index, totalGroup, defaultGroupOpen }: IExpandAction\r\n) => {\r\n switch (type) {\r\n case 'INIT_GROUP':\r\n const groups = new Array(totalGroup).fill(value)\r\n return { componentOpen, groupOpen: groups }\r\n case 'INIT_GROUP_WITH_DEFAULT_ARRAY':\r\n componentOpen = defaultGroupOpen.some((expanded) => expanded)\r\n return { componentOpen, groupOpen: defaultGroupOpen }\r\n case 'AFFECT_ALL':\r\n const newGroups = groupOpen?.fill(value)\r\n return { componentOpen: value, groupOpen: newGroups }\r\n case 'AFFECT_ONE':\r\n const i = index ?? 0\r\n groupOpen[i] = value\r\n if (value) {\r\n componentOpen = value\r\n } else if (groupOpen.every((o) => !o)) {\r\n componentOpen = false\r\n }\r\n return { componentOpen, groupOpen }\r\n default:\r\n return { componentOpen, groupOpen }\r\n }\r\n}\r\n\r\nexport const useExpand = (initState: IExpandState) => {\r\n const [state, dispatch] = useReducer(reducer, initState)\r\n const expandAction = useMemo(\r\n () => ({\r\n initGroup: ({ totalGroup, initValue }) => {\r\n dispatch({ type: 'INIT_GROUP', value: initValue, totalGroup })\r\n },\r\n initGroupWithDefaultArray: (defaultGroupOpen: boolean[]) => {\r\n dispatch({ type: 'INIT_GROUP_WITH_DEFAULT_ARRAY', defaultGroupOpen })\r\n },\r\n setExpand: (value, index?: number) => {\r\n index >= 0 ? dispatch({ type: 'AFFECT_ONE', value, index }) : dispatch({ type: 'AFFECT_ALL', value })\r\n }\r\n }),\r\n [dispatch]\r\n )\r\n\r\n return {\r\n state,\r\n action: expandAction\r\n }\r\n}\r\n","import { SessionStorageKey } from 'common/constants'\r\nimport { srpFilters } from 'common/srpFilters'\r\nimport { getSystemSetting, isSystemSettingsEnabled, SystemSettingsCode } from 'common/systemSettingsCode'\r\nimport { SortOrder } from 'types/baseTypes'\r\nimport { IDtmSearchParams, IListingModel, ISearchData, QueryCriteria, VehicleList } from 'types/dtmTypes'\r\nimport { ISearchFilterResult } from 'types/vehicleTypes'\r\n\r\nexport const AnalyticsStorageKey = {\r\n LOAD_START_TIME: 'LOAD_START_TIME',\r\n USER_LOCATION: 'UserLocation',\r\n GEO_LOCATION: 'GeoLocationValue',\r\n CUSTOM_CLICK_NAME: 'customClickName',\r\n MOBILE_HEADER: 'MobileHeaderValue'\r\n}\r\n\r\nexport const DtmPageName = {\r\n Dashboard: 'My Dashboard',\r\n SRP: 'Search Results Page',\r\n News: 'News',\r\n AdvancedSearch: 'Advanced Search',\r\n SavedSearch: 'Saved Search',\r\n WatchList: 'Watch list',\r\n CurrentBids: 'Current Bids',\r\n VDP: 'Vehicle Detail Page',\r\n PurchaseConfirmation: 'Purchase intent confirmation',\r\n BidHistory: 'Bid History',\r\n VehicleRetail: 'Vehicle Retail Page',\r\n PurchaseHistory: 'Purchase History',\r\n ContactUs: 'Contact Us',\r\n MyProfile: 'My Profile',\r\n AccountSettings: 'Account Settings'\r\n}\r\n\r\nexport const DtmComponentName = {\r\n VDPDetails: 'VDP Vehicle Details',\r\n VDPVehicleHistory: 'VDP Vehicle History',\r\n VDPBuildData: 'VDP Build Data',\r\n VDPTires: 'VDP Tires and Wheels',\r\n VDPSellerDisclaimer: 'VDP Seller Disclaimer',\r\n VDPDamageSummary: 'VDP Damage Summary',\r\n DashboardInventory: 'My Dashboard Inventory View',\r\n DashboardWatchList: 'My Dashboard Watchlist',\r\n DashboardCurrentBids: 'My Dashboard Current Bids'\r\n}\r\n\r\nexport const DtmPageDetails = {\r\n VDP: 'VDP',\r\n SRP: 'SRP'\r\n}\r\n\r\nexport const DtmPageRollup = {\r\n HomePage: 'HomePage'\r\n}\r\n\r\nexport const enum CustomClickNames {\r\n AvailableInventory = 'Available Inventory'\r\n}\r\n\r\nexport const getPageDetails = (pathName: string, pageName: string) => {\r\n let parent = ''\r\n switch (pageName) {\r\n case DtmPageName.VDP:\r\n case DtmPageName.VehicleRetail:\r\n break\r\n\r\n default:\r\n switch (pathName?.toLowerCase()) {\r\n case '/vehicles':\r\n parent = 'Buy A Vehicle'\r\n break\r\n case '/':\r\n parent = 'Dashboard'\r\n break\r\n case '/contactus':\r\n parent = 'My Account'\r\n break\r\n }\r\n break\r\n }\r\n\r\n let pageDetails = pageName\r\n if (pageName === DtmPageName.SRP) {\r\n pageDetails = DtmPageDetails.SRP\r\n } else if (pageName === DtmPageName.VDP) {\r\n pageDetails = DtmPageDetails.VDP\r\n }\r\n\r\n const parts = [parent, pageDetails].filter((item) => Boolean(item))\r\n return parts.join(' - ')\r\n}\r\n\r\nexport const getPageRollup = (pageName: string): string => {\r\n switch (pageName) {\r\n case DtmPageName.Dashboard:\r\n case DtmPageName.News:\r\n return DtmPageRollup.HomePage\r\n\r\n default:\r\n return pageName\r\n }\r\n}\r\n\r\nexport const getTabName = (pageName: string): string => {\r\n const customClickName = sessionStorage.getItem(AnalyticsStorageKey.CUSTOM_CLICK_NAME)\r\n switch (pageName) {\r\n case DtmPageName.ContactUs:\r\n return `My Account: ${pageName}`\r\n case DtmPageName.Dashboard:\r\n return customClickName == null ? 'Dashboard: Landing Page' : 'Dashboard: My Dashboard'\r\n default:\r\n return pageName\r\n }\r\n}\r\n\r\nexport const getApplicationRevisionId = () => {\r\n var userAgent = navigator.userAgent || navigator.vendor\r\n var device = 'web'\r\n if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i) || userAgent.match(/iPod/i)) {\r\n device = 'iOS'\r\n } else if (userAgent.match(/Android/i)) {\r\n device = 'Android'\r\n }\r\n return device + ':' + navigator.appVersion\r\n}\r\n\r\ninterface ICustomClickOptions {\r\n usePageName?: boolean\r\n}\r\n\r\nexport const setCustomClick = (customClickName: string, { usePageName }: ICustomClickOptions = {}) => {\r\n if (usePageName) {\r\n const { pageName } = AnalyticsStore\r\n customClickName = `${pageName}: ${customClickName}`\r\n }\r\n\r\n sessionStorage.setItem(AnalyticsStorageKey.CUSTOM_CLICK_NAME, customClickName)\r\n AnalyticsStore.customClickName = customClickName\r\n}\r\n\r\nexport interface IAnalyticsState {\r\n enableDtmAnalytics: boolean\r\n environment: string\r\n customClickName?: string\r\n pageName?: string\r\n pageDetails?: string\r\n pageRollup?: string\r\n tabName?: string\r\n loadStart?: Date\r\n}\r\n\r\nexport const AnalyticsStore: IAnalyticsState = {\r\n enableDtmAnalytics: isSystemSettingsEnabled(SystemSettingsCode.ENABLE_DTM_ANALYTICS_TRACE),\r\n environment: getSystemSetting(SystemSettingsCode.DTM_ANALYTICS_ENVIRONMENT),\r\n customClickName: sessionStorage.getItem(AnalyticsStorageKey.CUSTOM_CLICK_NAME)\r\n}\r\n\r\nif (AnalyticsStore.enableDtmAnalytics) {\r\n getGeoLocation()\r\n}\r\n\r\nexport const setPageInfo = (pageName: string) => {\r\n AnalyticsStore.pageName = pageName\r\n AnalyticsStore.pageDetails = getPageDetails(window.location.pathname, pageName)\r\n AnalyticsStore.pageRollup = getPageRollup(pageName)\r\n AnalyticsStore.tabName = getTabName(pageName)\r\n AnalyticsStore.loadStart = new Date()\r\n}\r\n\r\nconst geolocationErrorMap = {\r\n '1': 'PERMISSION_DENIED',\r\n '2': 'POSITION_UNAVAILABLE',\r\n '3': 'TIMEOUT'\r\n}\r\n\r\nexport function getGeoLocation() {\r\n var options = {\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 0\r\n }\r\n\r\n function success(pos) {\r\n var geoString = {\r\n timestamp: pos['timestamp'],\r\n coords: {\r\n latitude: pos['coords']['latitude'],\r\n longitude: pos['coords']['longitude'],\r\n accuracy: pos['coords']['accuracy'],\r\n altitude: pos['coords']['altitude'],\r\n speed: pos['coords']['speed']\r\n }\r\n }\r\n sessionStorage.setItem(AnalyticsStorageKey.GEO_LOCATION, JSON.stringify(geoString))\r\n\r\n sessionStorage.setItem(\r\n SessionStorageKey.USER_LOCATION,\r\n JSON.stringify({\r\n lat: pos['coords']['latitude'],\r\n long: pos['coords']['longitude']\r\n })\r\n )\r\n }\r\n\r\n function error(err) {\r\n var errorStr = geolocationErrorMap[err.code.toString()] || 'Error'\r\n sessionStorage.setItem(AnalyticsStorageKey.GEO_LOCATION, JSON.stringify({ error: errorStr }))\r\n }\r\n\r\n navigator.geolocation.getCurrentPosition(success, error, options)\r\n}\r\n\r\nexport const getInventoryClickName = (ft?: ISearchFilterResult[]) => {\r\n if (!ft) {\r\n return ''\r\n }\r\n\r\n const modelFilter =\r\n ft.find((item) => item.FieldName === srpFilters.Series)?.ChildrenFilter?.find((item) => item.Selected)?.Value || ''\r\n\r\n const yearFilter =\r\n ft.find((item) => item.FieldName === srpFilters.Year)?.ChildrenFilter?.find((item) => item.Selected)?.Value || ''\r\n\r\n return `:${[modelFilter, yearFilter].filter(Boolean).join(':')}`\r\n}\r\n\r\nexport function getListings(listModel: IListingModel[], siteCode: string, vendorCode: string) {\r\n let listedVehicle: VehicleList[] = []\r\n listModel?.forEach((model) => {\r\n const auctionID = model.auctionInfo?.ID\r\n const vin = model.vehicle?.VIN || model.Vin || model.VIN\r\n\r\n if (auctionID) {\r\n listedVehicle.push({ id: `${siteCode}.${vendorCode}.${auctionID}`, vin: vin })\r\n } else {\r\n listedVehicle.push({ vin: vin })\r\n }\r\n })\r\n return listedVehicle\r\n}\r\n\r\nexport function getSearchParameters(response: ISearchData): IDtmSearchParams {\r\n if (!response) {\r\n return {}\r\n }\r\n\r\n const allCirteria = []\r\n response.filters?.forEach((filterParent) => {\r\n filterParent.ChildrenFilter.forEach((filter) => {\r\n if (filter.Selected) {\r\n allCirteria.push({ [filter.FieldName]: filter.FriendlyValue })\r\n }\r\n })\r\n })\r\n\r\n const query: QueryCriteria = {\r\n allCriteria: allCirteria,\r\n id: '',\r\n resultsCount: `${response.TotalRecords}`,\r\n resultsPerPage: `${response.PageSize}`\r\n }\r\n\r\n const sort = response.sortOptions?.find((item) => item.Value === response.sortBy?.Value)\r\n const sortName = sort?.Name.split(' -')[0]\r\n const sortOrder = sort?.SortOrder === SortOrder.ASC ? 'ASC' : 'DESC'\r\n\r\n return { sortBy: `${sortName}:${sortOrder}`, query }\r\n}\r\n","import { colorWatching, colorWinning, smallScreen, textColor } from 'common/theme'\r\nimport { StyledCard } from 'components/Share/Card.styled'\r\nimport { Button, Card, Popover, Row } from 'react-bootstrap'\r\nimport styled, { css } from 'styled-components'\r\n\r\nexport const BuyItNowButtonGroup = styled.div``\r\n\r\nexport const StyledAuctionCardRow = styled(Row).attrs({\r\n className: 'no-gutters'\r\n})``\r\n\r\nexport const StyledAuctionImage = styled.div.attrs({\r\n className: 'text-center text-sm-left pb-4 pb-sm-0'\r\n})`\r\n img {\r\n width: 90%;\r\n display: inline-block;\r\n border-radius: 0.3rem;\r\n\r\n @media (max-width: ${smallScreen}) {\r\n width: 100%;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledAuctionTitle = styled(Card.Text)`\r\n font-weight: 600;\r\n font-size: 1.6rem;\r\n color: ${({ theme }) => theme.colors.primary};\r\n min-height: 4.6rem;\r\n line-height: 1.3;\r\n`\r\n\r\nexport const StyledAuctionText = styled.div`\r\n font-size: inherit;\r\n color: ${textColor};\r\n\r\n span,\r\n .invoice-field {\r\n font-weight: 600;\r\n }\r\n a {\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.primary};\r\n cursor: pointer;\r\n }\r\n`\r\n\r\nexport const StyledAuctionPrice = styled.div`\r\n font-size: 2.4rem;\r\n font-weight: bold;\r\n`\r\n\r\nconst StyleBaseTag = css`\r\n font-size: 1.2rem;\r\n text-transform: uppercase;\r\n text-align: center;\r\n color: #fff;\r\n background: #999;\r\n display: inline-block;\r\n\r\n padding: 0.4rem;\r\n position: relative;\r\n\r\n span {\r\n padding-right: 0.5rem;\r\n }\r\n\r\n ::before,\r\n ::after {\r\n content: '';\r\n height: 100%;\r\n\r\n position: absolute;\r\n top: 0;\r\n\r\n border-top: 1.3rem solid transparent;\r\n border-bottom: 1.3rem solid transparent;\r\n }\r\n\r\n ::before {\r\n left: -1.3rem;\r\n display: inline-block;\r\n\r\n border-right: 1.3rem solid #999;\r\n }\r\n\r\n ::after {\r\n right: -1.3rem;\r\n display: none;\r\n\r\n border-left: 1.3rem solid #999;\r\n }\r\n`\r\n\r\nexport const StyledTag = styled.div<{ color?: string }>`\r\n ${StyleBaseTag};\r\n background: ${({ color }) => color || colorWatching};\r\n padding: 0.3rem 2rem;\r\n margin: 0.2rem 0;\r\n\r\n ::before {\r\n border-right: 2rem solid ${({ color }) => color || colorWatching};\r\n left: -2rem;\r\n border-top: 1.2rem solid transparent;\r\n border-bottom: 1.2rem solid;\r\n color: transparent;\r\n }\r\n\r\n &.right {\r\n margin-right: 1.5rem;\r\n &::before {\r\n display: none;\r\n }\r\n &::after {\r\n display: inline-block;\r\n border-left: 2rem solid ${({ color }) => color || colorWatching};\r\n right: -2rem;\r\n border-top: 1.2rem solid transparent;\r\n border-bottom: 1.2rem solid;\r\n color: transparent;\r\n }\r\n }\r\n\r\n @media print {\r\n ::before {\r\n padding-left: 0.1rem;\r\n }\r\n background-color: ${({ color }) => color || colorWatching};\r\n -webkit-print-color-adjust: exact;\r\n }\r\n`\r\n\r\nexport const StyledEasyBidPopover = styled(Popover)`\r\n max-width: none;\r\n`\r\ninterface IStyledNumberOfBidsProps {\r\n count?: number\r\n}\r\n\r\nexport const StyledNumberOfBids = styled.a`\r\n ${({ count }) =>\r\n count === 0 &&\r\n `\r\n pointer-events: none;\r\n cursor: default;\r\n text-decoration: none;\r\n color: ${textColor} !important; \r\n `}\r\n`\r\ninterface IStyledReserveMetLabelProps {\r\n isReserveMet?: number\r\n}\r\n\r\nexport const StyledReserveMetLabel = styled.label`\r\n ${({ isReserveMet }) =>\r\n isReserveMet === 1 &&\r\n `\r\n color: ${colorWinning}; \r\n font-weight: 600;\r\n`}\r\n`\r\nexport const StyledAuctionButton = styled(Button)`\r\n font-size: 1.6rem;\r\n min-width: 16rem;\r\n margin: 0.5rem 0 0 0.5rem;\r\n @media (max-width: ${smallScreen}) {\r\n margin: 1rem 0 0 0;\r\n }\r\n`\r\n\r\nexport const BuyItNowButtonContainer = styled.div`\r\n column-gap: 0.5rem;\r\n padding-top: 1rem;\r\n`\r\n\r\nexport const BidSectionContainer = styled.div`\r\n margin-top: 0.5rem;\r\n`\r\n\r\nexport const StyleCurrentBidSection = styled.div`\r\n margin-top: 0.5em;\r\n`\r\n\r\nexport const StyledVehicleBidBuyInformation = styled.div`\r\n text-align: right;\r\n font-size: 1.4rem;\r\n\r\n @media (max-width: ${smallScreen}) {\r\n button {\r\n width: 100%;\r\n }\r\n }\r\n\r\n ${BidSectionContainer}, .v-timer, .details-grid {\r\n @media print {\r\n display: none;\r\n }\r\n }\r\n`\r\nexport const StyledVehicleAuctionInfo = styled(StyledCard)`\r\n min-height: 17rem;\r\n padding: 2.2rem;\r\n margin-bottom: 2.4rem;\r\n background-color: white;\r\n\r\n .dashboard-auction-button button {\r\n max-width: 45%;\r\n }\r\n .dashboard-reserver-bid {\r\n ${StyledAuctionText} {\r\n display: inline;\r\n }\r\n }\r\n ${StyledAuctionPrice} {\r\n font-size: 2rem;\r\n }\r\n .dashboard-reserver-bid {\r\n ${StyledAuctionText} {\r\n display: inline;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledNoAvailable = styled.div`\r\n font-size: 2.4rem;\r\n font-weight: bold;\r\n color: red;\r\n`\r\n","import styled, { css } from 'styled-components'\r\n\r\nexport const cardStyle = css`\r\n font-size: 1.4rem;\r\n margin: 1.2rem 0;\r\n padding: 2rem;\r\n box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.15);\r\n border-radius: 0.3rem;\r\n transition: 167ms ease-in-out;\r\n\r\n &:hover {\r\n box-shadow: 0 0.4rem 2.4rem rgba(0, 0, 0, 0.1);\r\n }\r\n`\r\nexport const StyledCard = styled.div`\r\n ${cardStyle}\r\n`\r\n","export const FileEarMarkArrowDown = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","/**\r\n * Author: juliencrn\r\n * Availability: https://usehooks-ts.com/react-hook/use-window-size\r\n */\r\nimport { useEffect, useState } from 'react'\r\n\r\ninterface WindowSize {\r\n width: number\r\n height: number\r\n}\r\n\r\nfunction useWindowSize(): WindowSize {\r\n const [windowSize, setWindowSize] = useState({\r\n width: 0,\r\n height: 0\r\n })\r\n\r\n useEffect(() => {\r\n const handler = () => {\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n })\r\n }\r\n\r\n // Set size at the first client-side load\r\n handler()\r\n\r\n window.addEventListener('resize', handler)\r\n\r\n // Remove event listener on cleanup\r\n return () => {\r\n window.removeEventListener('resize', handler)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return windowSize\r\n}\r\n\r\nexport default useWindowSize\r\n","import { IRMSAuthModel } from 'types/rmsAuthModel'\r\nimport { parseJson } from 'utils/utils'\r\nimport { CSRF_TOKEN } from './constants'\r\n\r\nlocalStorage.setItem(CSRF_TOKEN, (document.querySelector('#antiForgery input') as HTMLInputElement)?.value)\r\n\r\nexport const rmsAuthModel = parseJson(document.getElementById('rmsAuthModel')?.innerHTML.trim()) as IRMSAuthModel\r\n","export default \"data:image/png;base64,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\"","import { CSRF_HEADER, CSRF_TOKEN } from './constants'\r\n\r\ninterface IRequestInit extends RequestInit {\r\n body?: T | any\r\n type?: 'json' | 'blob' | 'form-data'\r\n}\r\n\r\nexport const apiRootPath = '/api/v1'\r\n\r\n/**\r\n * Fetching a resource from the network\r\n * @param url\r\n * @param input\r\n * @param timeout - Set timeout for fetch() function, in miliseconds. No timeout will be set if timeout value is null, undefined or 0.\r\n * @returns A promise of type T.\r\n */\r\nexport const fetchAsync = async (url: string, input?: IRequestInit, timeout?: number): Promise => {\r\n let { body, type = 'json', headers } = input || {}\r\n let response: Response\r\n // Construct headers\r\n headers = { ...headers, [CSRF_HEADER]: localStorage.getItem(CSRF_TOKEN) }\r\n\r\n if (type === 'json') {\r\n headers = {\r\n ...headers,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n if (type === 'form-data') {\r\n headers = {\r\n ...headers,\r\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\r\n }\r\n }\r\n\r\n // Construct body\r\n if (body && type === 'json') {\r\n body = JSON.stringify(body)\r\n }\r\n\r\n // Handle timeout\r\n if (timeout) {\r\n const abortController = new AbortController()\r\n\r\n const timer = setTimeout(() => abortController.abort(), timeout)\r\n\r\n try {\r\n response = await fetch(url, { ...input, body, headers, signal: abortController.signal })\r\n } catch (error) {\r\n throw error\r\n } finally {\r\n clearTimeout(timer)\r\n }\r\n } else {\r\n response = await fetch(url, { ...input, body, headers })\r\n }\r\n\r\n // Handle session expired\r\n if (response.status === 401 && window.location.pathname.toUpperCase() !== '/LOGIN') {\r\n window.location.href = '/login?returnUrl=' + encodeURIComponent(window.location.pathname) + '&errorCode=401'\r\n return\r\n }\r\n\r\n // Determine return type\r\n let result: T\r\n const contentType = response.headers.get('content-type')\r\n if (/application\\/json/.test(contentType)) {\r\n result = (await response.json()) as T\r\n } else if (type === 'blob') {\r\n result = {\r\n ...response,\r\n body: await response.blob()\r\n } as any\r\n } else {\r\n result = {\r\n ...response,\r\n body: await response.text()\r\n } as any\r\n }\r\n\r\n if (!response.ok) {\r\n throw result\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport const postAsync = async (\r\n url: string,\r\n input?: IRequestInit,\r\n timeout?: number\r\n): Promise => {\r\n return fetchAsync(url, { ...input, method: 'POST' }, timeout)\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledNoActivity = styled.div`\r\n display: flex;\r\n\r\n img {\r\n width: 14rem;\r\n height: 12rem;\r\n }\r\n\r\n div {\r\n width: 100%;\r\n margin-left: 2.4rem;\r\n\r\n span {\r\n font-size: 1.6rem;\r\n color: gray;\r\n }\r\n }\r\n`\r\n","import { StyledAuctionText } from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { useContext } from 'react'\r\nimport { VehicleContext } from './VehicleContext'\r\n\r\nexport const UserMaxBid = () => {\r\n const {\r\n vehicleData: { auctionInfo }\r\n } = useContext(VehicleContext)\r\n\r\n return (\r\n <>\r\n {auctionInfo?.CanBid && auctionInfo.UserMaxBid !== 0 && (\r\n \r\n Your Max Bid: \r\n {auctionInfo.UserMaxBidString}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { saveVehicleLevelWatchList } from 'apis/dashboardApis'\r\nimport { VehicleDetailsView } from 'common/constants'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { createContext, PropsWithChildren, useState } from 'react'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\nimport { SellerDisclosure } from 'types/inspectionTypes'\r\nimport { IVehicleData } from 'types/vehicleTypes'\r\n\r\nexport interface IVehicleContextProps {\r\n vehicleData: IVehicleData\r\n showRemoveBid?: boolean\r\n onRemoveBid?: () => void\r\n errorMessage?: string\r\n isVDP?: boolean\r\n loading?: boolean\r\n selfInspection?: SellerDisclosure\r\n retailView?: boolean\r\n viewStyle?: VehicleDetailsView\r\n}\r\n\r\nexport interface IVehicleContext extends IVehicleContextProps {\r\n showRemoveBid?: boolean\r\n editingNote: boolean\r\n setEditingNote: (editing: boolean) => void\r\n vehicleWatchListState: IVehicleWatchListState\r\n}\r\n\r\nexport const VehicleContext = createContext(null)\r\n\r\ninterface IVehicleWatchListState {\r\n isSaving?: boolean\r\n saveWatchList: () => void\r\n}\r\n\r\nexport const VehicleContextProvider = ({\r\n vehicleData,\r\n showRemoveBid,\r\n onRemoveBid,\r\n errorMessage,\r\n children,\r\n isVDP,\r\n selfInspection,\r\n loading,\r\n retailView,\r\n viewStyle\r\n}: PropsWithChildren) => {\r\n const [editingNote, setEditingNote] = useState(false)\r\n const [isSavingWatchList, setIsSavingWatchList] = useState(false)\r\n const { updateVehicleData } = useVehicleStore((state) => state)\r\n const { userInteraction } = useDtmAnalytics()\r\n\r\n const saveWatchList = async () => {\r\n try {\r\n setIsSavingWatchList(true)\r\n const response = await saveVehicleLevelWatchList({\r\n VehicleInstanceID: vehicleData.vehicle.InstanceID,\r\n RemoveVehicle: !!vehicleData.vehicle.WatchListID,\r\n SaleChannelID: vehicleData.vehicle.SaleChannelID,\r\n SaleEventID: vehicleData.vehicle.SaleEventID\r\n })\r\n vehicleData.vehicle.WatchListID = response.Value\r\n const customName = vehicleData.vehicle.WatchListID ? 'Add to Watchlist' : 'Remove from Watchlist'\r\n userInteraction(`${window.webData.pageName} : ${customName}`, [\r\n { auctionInfo: vehicleData.auctionInfo, VIN: vehicleData.vehicle.VIN }\r\n ])\r\n\r\n updateVehicleData(vehicleData)\r\n } catch (error) {\r\n console.log('SAVE WATCHLIST ERROR: ' + error)\r\n } finally {\r\n setIsSavingWatchList(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { PropsWithChildren } from 'react'\r\n\r\ninterface IProps extends PropsWithChildren> {\r\n href: string\r\n displayText?: string\r\n}\r\n\r\nexport const PopupLink = ({ href, displayText, children, onClick, ...props }: IProps) => {\r\n const openPopup = (e, url: string) => {\r\n e.preventDefault()\r\n\r\n var width = window.screen.width / 2\r\n var height = window.screen.height / 2\r\n\r\n window.open(\r\n url,\r\n '_blank',\r\n `directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=${width},height=${height}`\r\n )\r\n }\r\n\r\n return (\r\n {\r\n onClick?.(e)\r\n openPopup(e, href)\r\n }}\r\n {...props}\r\n >\r\n {children}\r\n \r\n )\r\n}\r\n","import { colorWinning, largeScreen } from 'common/theme'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledRibbon = styled.span<{ backgroundColor: string; textColor: string }>`\r\n position: relative;\r\n line-height: 2rem !important;\r\n\r\n .ribbon {\r\n background-color: ${(props) => props.backgroundColor};\r\n position: relative;\r\n padding: 0 0.5rem;\r\n display: inline-block;\r\n line-height: 1rem;\r\n margin-left: 0.8rem;\r\n }\r\n\r\n .ribbon-title {\r\n line-height: 2rem;\r\n color: #fff;\r\n white-space: nowrap;\r\n\r\n color: ${(props) => props.textColor};\r\n font-weight: bold;\r\n }\r\n\r\n .ribbon-tail {\r\n position: absolute;\r\n top: 0;\r\n right: -1rem;\r\n }\r\n\r\n .ribbon-tail:after,\r\n .ribbon-tail:before {\r\n content: '';\r\n width: 0;\r\n height: 0;\r\n display: block;\r\n }\r\n\r\n .ribbon-tail:after {\r\n border-right: 1rem solid transparent;\r\n border-bottom: 1rem solid ${(props) => props.backgroundColor};\r\n }\r\n\r\n .ribbon-tail:before {\r\n border-right: 1rem solid transparent;\r\n border-top: 1rem solid ${(props) => props.backgroundColor};\r\n }\r\n\r\n @media (max-width: ${largeScreen}) {\r\n .ribbon {\r\n margin-left: 0;\r\n }\r\n }\r\n\r\n @media print {\r\n text-decoration: none;\r\n .ribbon {\r\n background-color: ${(props) => props.backgroundColor};\r\n -webkit-print-color-adjust: exact;\r\n }\r\n .ribbon-tail {\r\n position: absolute;\r\n top: 0;\r\n right: -1rem;\r\n }\r\n }\r\n &&.clickable {\r\n cursor: pointer;\r\n }\r\n`\r\n","import { zIndex } from 'common/constants'\r\nimport { mediumScreen, smallScreen } from 'common/theme'\r\nimport { HomeSectionHeader } from 'components/Header/HomeSectionHeader'\r\nimport { headerAnimation, StickyProp } from 'layouts/Layout.styled'\r\nimport styled, { css } from 'styled-components'\r\n\r\nexport const StyledVehicleStickyBar = styled(HomeSectionHeader)`\r\n position: sticky;\r\n z-index: ${({ isSticky }) => (isSticky ? zIndex.stickyHeader : zIndex.pageHeader)};\r\n background: #fff;\r\n\r\n ${({ isSticky }) => (isSticky ? headerAnimation : null)};\r\n ${({ isSticky, theme }) =>\r\n isSticky &&\r\n css`\r\n top: 7.2rem;\r\n\r\n @media (max-width: ${smallScreen}) {\r\n top: 6rem;\r\n }\r\n\r\n .header-row {\r\n height: 4.2rem;\r\n white-space: nowrap;\r\n }\r\n .filter-icon {\r\n color: ${theme.colors.primary};\r\n }\r\n .header-toggle {\r\n background: #fff;\r\n color: ${theme.colors.primary};\r\n box-shadow: none;\r\n justify-content: flex-start;\r\n margin-left: 1rem;\r\n }\r\n\r\n @media (max-width: ${mediumScreen}) {\r\n .header-section {\r\n padding: 0;\r\n margin: 0;\r\n }\r\n .header-col,\r\n .right-action-col {\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n }\r\n }\r\n `};\r\n`\r\n","import { StyledSlideOut } from './SlideOut.styled'\r\nimport { default as PrismSlideOut } from '@prism/slideout'\r\nimport { PropsWithChildren } from 'react'\r\n\r\ninterface IProps extends PropsWithChildren<{}> {\r\n isOpen: boolean\r\n onCloseButtonClick: () => void\r\n placement?: 'left' | 'right'\r\n}\r\nexport const SlideOut = ({ isOpen, onCloseButtonClick, children, placement = 'right' }: IProps) => {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n","import { ThemedSvg } from './ThemedSvg.styled'\r\nimport { IconProps } from 'core/typing/IconType'\r\n\r\nexport const DriveTrain = ({ width = '16px', height = '16px', color = 'currentColor' }: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { ThemedSvg } from './ThemedSvg.styled'\r\nimport { IconProps } from 'core/typing/IconType'\r\n\r\nexport const Transmission = ({ width = '16px', height = '16px', color = 'currentColor' }: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { ThemedSvg } from './ThemedSvg.styled'\r\nimport { IconProps } from 'core/typing/IconType'\r\n\r\nexport const SaleChannel = ({ width = '16px', height = '16px', color = 'currentColor' }: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { ThemedSvg } from './ThemedSvg.styled'\r\nimport { IconProps } from 'core/typing/IconType'\r\n\r\nexport const ExteriorColor = ({ width = '16px', height = '16px', color = 'currentColor' }: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { ThemedSvg } from './ThemedSvg.styled'\r\nimport { IconProps } from 'core/typing/IconType'\r\n\r\nexport const InteriorColor = ({ width = '16px', height = '16px', color = 'currentColor' }: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { ThemedSvg } from './ThemedSvg.styled'\r\nimport { IconProps } from 'core/typing/IconType'\r\n\r\nexport const Calendar = ({ width = '16px', height = '16px', color = 'currentColor' }: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { IconProps } from 'core/typing/IconType'\r\nimport { ThemedSvg } from './ThemedSvg.styled'\r\n\r\nexport const Door = ({ width = '16px', height = '16px', color = 'currentColor' }: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { IconSvg } from '@prism/icon'\r\nimport { DriveTrain } from 'icons/DriveTrain'\r\nimport { Transmission } from 'icons/Transmission'\r\nimport { SaleChannel } from 'icons/SaleChannel'\r\nimport { ExteriorColor } from 'icons/ExteriorColor'\r\nimport { InteriorColor } from 'icons/InteriorColor'\r\nimport { Calendar } from 'icons/Calendar'\r\nimport { isEmpty } from 'lodash'\r\nimport { Door } from 'icons/Door'\r\n\r\nexport const getVehicleListingInfoIcon = (name: string) => {\r\n if (isEmpty(name)) return ''\r\n\r\n switch (name) {\r\n case 'DD_CONDITION':\r\n return 'CR:'\r\n case 'MILEAGE':\r\n return \r\n case 'VEHICLE_LOCATION':\r\n return \r\n case 'EXTERIOR_COLOUR':\r\n return \r\n case 'INTERIOR_TRIM':\r\n return \r\n case 'DRIVETRAIN':\r\n return \r\n case 'TRANSMISSION':\r\n return \r\n case 'SALE_CHANNEL':\r\n return \r\n case 'IN_SERVICE_DATE':\r\n return \r\n case 'DOORS':\r\n return \r\n\r\n default:\r\n return ''\r\n }\r\n}\r\n","import classNames from 'classnames'\r\nimport { getVehicleListingInfoIcon } from 'common/vehicleListingInfoIcons'\r\nimport { PopupLink } from 'components/Share/PopupLink'\r\nimport { isEmpty } from 'lodash'\r\nimport { useContext, useState } from 'react'\r\nimport { Button, Col, Row } from 'react-bootstrap'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport styled from 'styled-components'\r\nimport { IVehicleInfo } from 'types/vehicleTypes'\r\nimport { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { buildMMRUrl } from 'utils/urlUtils'\r\n\r\nimport { StyledInfoLabel } from './VehicleDetails.styled'\r\nimport { ISystemSetting } from 'types/baseTypes'\r\nimport { getVehicleDetailProperties, processInServiceDateProperty } from '../../utils/vehicleUtils'\r\nimport { VehicleContext } from './VehicleContext'\r\n\r\ninterface IProps {\r\n vehicleInfo: IVehicleInfo\r\n fieldLimit?: number\r\n}\r\n\r\nexport const StyledVehicleProperties = styled.div``\r\n\r\nexport const VehicleProperties = ({ vehicleInfo, fieldLimit }: IProps) => {\r\n const {\r\n appSettings: { MMRUrl },\r\n getSystemSetting\r\n } = useGlobalStore()\r\n\r\n const showInServiceDateSetting = getSystemSetting('SHOW_INSERVICEDATE_VECHILESOURCE') as ISystemSetting\r\n const { retailView } = useContext(VehicleContext)\r\n\r\n const [showAll, setShowAll] = useState(false)\r\n const properties = processInServiceDateProperty(\r\n getVehicleDetailProperties(vehicleInfo, retailView),\r\n vehicleInfo.SourceCode,\r\n showInServiceDateSetting\r\n )\r\n\r\n const limit = fieldLimit > 0 ? fieldLimit : properties?.length\r\n\r\n const toggleDisplay = () => {\r\n setShowAll((show) => !show)\r\n }\r\n\r\n return (\r\n \r\n \r\n <>\r\n {properties?.slice(0, showAll ? properties?.length : limit).map((x, idx) => (\r\n \r\n \r\n {!isEmpty(getVehicleListingInfoIcon(x.UIConstantName)) ? (\r\n <>{getVehicleListingInfoIcon(x.UIConstantName)}\r\n ) : (\r\n `${x.Code}:`\r\n )}\r\n \r\n {x.Code === 'MMR' ? (\r\n \r\n {x.Description}\r\n \r\n ) : (\r\n {`${!isEmpty(x.Description) ? x.Description : 'N/A'}`}\r\n )}\r\n \r\n ))}\r\n \r\n\r\n {limit < properties?.length && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import { isEmpty } from 'lodash'\r\nimport { IVehicleProperties, IVehicleInfo } from '../types/vehicleTypes'\r\nimport { ISystemSetting } from '../types/baseTypes'\r\nimport { VEHICLE_PROPERTIES_TO_HIDE } from 'common/constants'\r\n\r\nexport const getVehicleDetailProperties = (vehicleInfo: IVehicleInfo, retailView: boolean = false) =>\r\n retailView\r\n ? vehicleInfo?.Properties?.filter((p) => p.ID === 1 && !VEHICLE_PROPERTIES_TO_HIDE.includes(p.UIConstantName))\r\n : vehicleInfo?.Properties?.filter((p) => p.ID === 1)\r\n\r\nexport const processInServiceDateProperty = (\r\n properties: IVehicleProperties[],\r\n vehicleSrcCode: string,\r\n setting: ISystemSetting\r\n) => {\r\n return properties?.filter((p) => {\r\n if (p.UIConstantName !== 'IN_SERVICE_DATE') return true\r\n\r\n /**\r\n * setting\r\n * Value:\r\n * 0 : Hide\r\n * 1 : Show (check setting.ValueString)\r\n *\r\n * ValueString:\r\n * BMWFS : ShowInServiceDateForOffleaseCar\r\n * BMWNA : ShowInServiceDateForCompanyCar\r\n * : ShowInServiceDateForBothOffleaseAndCompanyCars\r\n */\r\n\r\n return (\r\n setting.Value === '1' &&\r\n (isEmpty(setting.ValueString) || setting.ValueString.toLowerCase() === vehicleSrcCode.toLowerCase())\r\n )\r\n })\r\n}\r\n","import { textColor } from 'common/theme'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledAuctionTimeRemaining = styled.div<{ color?: string }>`\r\n color: ${({ color }) => color || textColor};\r\n font-size: 1.4rem;\r\n font-weight: 500;\r\n font-family: sans-serif; /*prevent number jumping when time second change */\r\n`\r\n","import { useCountdown } from 'hooks/useCountdown'\r\nimport { StyledAuctionTimeRemaining } from './CountDown.styled'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\n\r\ninterface IProps {\r\n endDate: string | Date\r\n color?: string\r\n}\r\n\r\nexport const CountDown = ({ endDate, color }: IProps) => {\r\n const getSystemSettings = useGlobalStore((state) => state.getSystemSetting)\r\n const minuteToShowSecond = (getSystemSettings('SHOW_SECONDS_AT_MINUTE') as number) ?? 5\r\n\r\n const { seconds } = useCountdown(endDate)\r\n const d = Math.floor(seconds / (3600 * 24))\r\n const h = Math.floor((seconds % (3600 * 24)) / 3600)\r\n const m = Math.floor((seconds % 3600) / 60)\r\n const s = Math.floor(seconds % 60)\r\n\r\n let displayTime = ''\r\n if (d) {\r\n displayTime += `${d}d `\r\n }\r\n if (h) {\r\n displayTime += `${h}h `\r\n }\r\n if (m) {\r\n displayTime += `${m}m `\r\n }\r\n if (seconds < minuteToShowSecond * 60) displayTime += `0${s}s`.slice(-3)\r\n\r\n return (\r\n seconds > 0 && (\r\n \r\n {displayTime} left\r\n \r\n )\r\n )\r\n}\r\n","import { IAuctionInfo } from 'types/auctionTypes'\r\nimport { IVehicleInfo } from 'types/vehicleTypes'\r\nimport { colorDanger, colorWarning, colorWinning, textColor } from 'common/theme'\r\nimport { VehicleStatuses } from 'common/constants'\r\nimport { CountDown } from './CountDown'\r\n\r\ninterface IProps {\r\n vehicleInfo: IVehicleInfo\r\n auctionInfo: IAuctionInfo\r\n}\r\nexport const CountDownWithColor = ({ vehicleInfo, auctionInfo }: IProps) => {\r\n const timeRemainingColor = () => {\r\n if (auctionInfo.HasPreviousBid && auctionInfo.IsHighestBidder) return colorWinning\r\n if (auctionInfo.HasPreviousBid && !auctionInfo.IsHighestBidder) return colorDanger\r\n if (auctionInfo.IsDirectSale && vehicleInfo.OfferID === 0) return colorWarning\r\n return textColor\r\n }\r\n\r\n return (\r\n <>\r\n {vehicleInfo.StatusID !== VehicleStatuses.SoldNotFunded && auctionInfo && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { colorDanger, textColorLight } from 'common/theme'\r\nimport { Modal } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyleDisclosureModal = styled(Modal)`\r\n padding: 1rem 1.5rem;\r\n font-size: 1.6rem;\r\n .modal-content {\r\n box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.15);\r\n border-radius: 0.3rem;\r\n }\r\n button {\r\n margin: 0.5rem;\r\n align-content: center;\r\n }\r\n .modal-header {\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n color: white;\r\n font-size: 1.8rem;\r\n .close span {\r\n font-size: 2rem;\r\n font-weight: normal;\r\n color: white;\r\n }\r\n }\r\n .modal-body {\r\n color: ${textColorLight};\r\n .document-link {\r\n color: ${({ theme }) => theme.colors.linkColorLight};\r\n }\r\n }\r\n .modal-footer {\r\n border: none;\r\n justify-content: center;\r\n }\r\n`\r\nexport const StyleDisclosureWarningSpan = styled.p`\r\n font-size: 1.6rem;\r\n color: ${colorDanger};\r\n font-weight: bold;\r\n`\r\n","import { saveDisclosure } from 'apis/vehicleApis'\r\nimport { useState } from 'react'\r\nimport { Modal } from 'react-bootstrap'\r\nimport { IDocumentSignInfor, IVehicleInfo } from 'types/vehicleTypes'\r\nimport { StyledAuctionButton } from './VehicleAuction.styled'\r\nimport { StyleDisclosureWarningSpan } from './VehicleDisclosureModal.styled'\r\nimport styled from 'styled-components'\r\n\r\nconst StyledDisclosureModalBody = styled(Modal.Body)`\r\n & > * + * {\r\n margin-top: 1.5rem;\r\n }\r\n`\r\n\r\ninterface IBidsHistoryProps {\r\n vehicleInfo: IVehicleInfo\r\n documentSignInfo: IDocumentSignInfor\r\n handleSubmitSuccess: () => void\r\n onClose: () => void\r\n}\r\n\r\nexport const VehicleDisclosureModal = ({\r\n vehicleInfo,\r\n documentSignInfo,\r\n handleSubmitSuccess,\r\n onClose\r\n}: IBidsHistoryProps) => {\r\n const [enableDisclosureButtons, setEnableDisclosureButtons] = useState(false)\r\n const [displayDisclosureError, setDisplayDisclosureError] = useState(false)\r\n const enableDisclosureControl = () => {\r\n setEnableDisclosureButtons(true)\r\n window.open(\r\n '/resource/GetVehicleInstanceDocumentByID?documentID=' + documentSignInfo.VehicleInstanceDocumentsID,\r\n \"_parent'\"\r\n )\r\n }\r\n\r\n const acceptDisclosure = async () => {\r\n setDisplayDisclosureError(false)\r\n try {\r\n const response = await saveDisclosure(documentSignInfo)\r\n if (response.Value === 0) {\r\n handleSubmitSuccess()\r\n } else {\r\n setDisplayDisclosureError(true)\r\n setEnableDisclosureButtons(true)\r\n }\r\n onClose()\r\n } catch (error) {\r\n console.log('SAVE DISCLOSURE ERROR: ' + error)\r\n setDisplayDisclosureError(true)\r\n }\r\n }\r\n return (\r\n <>\r\n Vehicle Disclosure Information\r\n \r\n
\r\n VIN: {vehicleInfo.VIN}\r\n
\r\n
\r\n Document: \r\n enableDisclosureControl()}>\r\n View Disclosure Document\r\n \r\n
\r\n \r\n Prior Use Disclosure: By clicking \"Accept\", I acknowledge I have received and reviewed the above listed\r\n disclosure document and forfeit any right to arbitrate any dispute based upon the condition stated in this\r\n disclosure.\r\n \r\n \r\n Note: Users can only proceed with the bidding/buying process after reviewing and accepting the disclosure\r\n document\r\n \r\n {displayDisclosureError && (\r\n Request failed. Please try again.\r\n )}\r\n
\r\n \r\n acceptDisclosure()}>\r\n Accept\r\n \r\n onClose()}>\r\n Decline\r\n \r\n \r\n \r\n )\r\n}\r\n","import { hideVehicleBidRow } from 'apis/vehicleApis'\r\nimport { VehicleStatuses } from 'common/constants'\r\nimport { AlertDialog } from 'components/AlertDialog/AlertDialog'\r\nimport {\r\n BuyItNowButtonContainer,\r\n BuyItNowButtonGroup,\r\n StyledAuctionButton,\r\n StyledAuctionText\r\n} from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { VehicleDisclosureModal } from 'modules/BuyerActivity/VehicleDisclosureModal'\r\nimport { StyleDisclosureModal } from 'modules/BuyerActivity/VehicleDisclosureModal.styled'\r\nimport { TextDanger } from 'components/Forms'\r\nimport { useCountdown } from 'hooks/useCountdown'\r\nimport { useContext, useEffect, useState } from 'react'\r\nimport { useBiddingSidePanel } from 'store/useBiddingSidePanelStore'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\nimport { VehicleAction } from 'types/vehicleTypes'\r\nimport { VehicleContext } from './VehicleContext'\r\n\r\nexport const VehicleBidBuyActions = () => {\r\n const { getBaseVehicle } = useVehicleStore()\r\n\r\n const setBiddingVehicleInstanceId = useBiddingSidePanel((state) => state.setBiddingVehicleInstanceId)\r\n const {\r\n vehicleData: { vehicle: vehicleInfo, auctionInfo, documentSignInfo },\r\n vehicleData,\r\n onRemoveBid,\r\n showRemoveBid,\r\n errorMessage\r\n } = useContext(VehicleContext)\r\n\r\n const [showVehicleDisclosureConfirm, setShowVehicleDisclosureConfirm] = useState(false)\r\n const [bidButtonAction, setBidButtonAction] = useState(null)\r\n const [modalShow, setModalShow] = useState(false)\r\n\r\n const getLocalText = useGlobalStore((state) => state.getLocalText)\r\n const { seconds: timeOut } = useCountdown(auctionInfo?.EndDate)\r\n const getSystemSettings = useGlobalStore((state) => state.getSystemSetting)\r\n const [showErrorMsg, setShowErrorMsg] = useState(false)\r\n const { acceptVehicleDocumentSignInfo } = useVehicleStore((state) => state)\r\n\r\n useEffect(() => {\r\n if (timeOut === 0 && auctionInfo?.IsHighestBidder) {\r\n getBaseVehicle(vehicleData)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [timeOut, auctionInfo?.IsHighestBidder])\r\n\r\n const isShowBuyItNowPrice =\r\n auctionInfo && !auctionInfo.IsDirectSale && vehicleInfo.BuyItNowPrice > auctionInfo.CurrentPrice\r\n\r\n const handleDisclosureAccepted = () => {\r\n setShowVehicleDisclosureConfirm(false)\r\n acceptVehicleDocumentSignInfo({ vehicleInstanceID: vehicleInfo?.InstanceID, documentSignInfo: documentSignInfo })\r\n if (bidButtonAction === VehicleAction.BID) {\r\n setBiddingVehicleInstanceId(vehicleInfo.InstanceID)\r\n } else {\r\n window.open('/vehicles#buyItNow/' + vehicleInfo.InstanceID, '_self')\r\n }\r\n }\r\n\r\n const haveToAcceptDisclosure = vehicleInfo.DisclosurePresent && documentSignInfo && !documentSignInfo?.IsAccepted\r\n\r\n const removeBidVehicle = async (auctionInfo: any) => {\r\n try {\r\n const response = await hideVehicleBidRow(auctionInfo)\r\n\r\n if (response?.Success) {\r\n onRemoveBid?.()\r\n } else {\r\n setShowErrorMsg(true)\r\n }\r\n } catch (error) {\r\n setShowErrorMsg(true)\r\n } finally {\r\n setModalShow(false)\r\n }\r\n }\r\n\r\n if (vehicleInfo.StatusID === VehicleStatuses.SoldNotFunded || !auctionInfo) {\r\n return null\r\n }\r\n\r\n return (\r\n <>\r\n setModalShow(false)}\r\n onSave={() => removeBidVehicle(auctionInfo)}\r\n isConfirmation={true}\r\n />\r\n\r\n setShowVehicleDisclosureConfirm(false)}\r\n size=\"md\"\r\n centered\r\n >\r\n handleDisclosureAccepted()}\r\n onClose={() => {\r\n setShowVehicleDisclosureConfirm(false)\r\n }}\r\n />\r\n \r\n {auctionInfo?.CanBid && timeOut > 0 && vehicleInfo.StatusID === VehicleStatuses.OnSale && (\r\n <>\r\n {showRemoveBid &&\r\n auctionInfo.HasPreviousBid &&\r\n !auctionInfo.IsHighestBidder &&\r\n getSystemSettings('ADD_OR_REMOVE_BID_BUTTON_ON_BIDS_SCREEN') === '1' && (\r\n setModalShow(true)}>\r\n {getLocalText('REMOVE_VEHICLE', 'Remove This Vehicle')}\r\n \r\n )}\r\n {\r\n if (!auctionInfo.HasPreviousBid && haveToAcceptDisclosure) {\r\n setBidButtonAction(VehicleAction.BID)\r\n setShowVehicleDisclosureConfirm(true)\r\n } else {\r\n setBiddingVehicleInstanceId(vehicleInfo.InstanceID)\r\n }\r\n }}\r\n >\r\n \r\n {auctionInfo.HasPreviousBid ? getLocalText('BID_AGAIN', 'Bid Again') : getLocalText('BID', 'Bid')}\r\n \r\n \r\n\r\n \r\n {auctionInfo?.CanBuy && (\r\n \r\n {isShowBuyItNowPrice && (\r\n \r\n Buy It Now Price: {auctionInfo.BuyItNowPriceString}\r\n \r\n )}\r\n\r\n {!auctionInfo.IsDirectSale && (\r\n {\r\n if (haveToAcceptDisclosure) {\r\n setBidButtonAction(VehicleAction.BUY)\r\n setShowVehicleDisclosureConfirm(true)\r\n } else {\r\n window.open('/vehicles#buyItNow/' + vehicleInfo.InstanceID, '_self')\r\n }\r\n }}\r\n >\r\n Buy It Now\r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n {showErrorMsg && {errorMessage}}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { gridBreakPoints } from 'common/theme'\r\nimport { Modal } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledWarningModal = styled(Modal)<{ isAlert?: boolean }>`\r\n .modal-content {\r\n background-color: ${({ isAlert, theme }) => (isAlert ? theme.colors.dangerColor : '#fff')};\r\n color: ${({ isAlert, theme }) => (isAlert ? theme.colors.colorTextModal : theme.colors.defaultDealerDeactive)};\r\n font-size: 1.6rem;\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n width: 98%;\r\n }\r\n\r\n @media (min-width: ${gridBreakPoints.xxl}) {\r\n width: 67rem;\r\n }\r\n }\r\n .modal-header {\r\n border-bottom: none;\r\n }\r\n .modal-body {\r\n text-align: center;\r\n padding-bottom: 3rem;\r\n }\r\n`\r\n","import React from 'react'\r\nimport { Col, Container, Modal, Row } from 'react-bootstrap'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport shallow from 'zustand/shallow'\r\nimport { StyledWarningModal } from './GenericMessageWarning.styled'\r\n\r\nconst GenericMessageWarning = (props) => {\r\n const [errorMessages, clearError] = useGlobalStore((state) => [state.errorMessages, state.clearError], shallow)\r\n\r\n return errorMessages && errorMessages['ShowGenericMessage'] ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{errorMessages['ShowGenericMessage']}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n ) : (\r\n <>\r\n )\r\n}\r\nexport default React.memo(GenericMessageWarning)\r\n","import { addVehicleNotes } from 'apis/vehicleApis'\r\nimport { Formik } from 'formik'\r\nimport { useClickOutSide } from 'hooks/useClickOutSide'\r\nimport { useContext, useEffect, useRef, useState } from 'react'\r\nimport { Form, OverlayTrigger, Spinner } from 'react-bootstrap'\r\nimport { StyledInfoLabel } from './VehicleDetails.styled'\r\nimport { StyledToolTip, StyledVehicleNote } from './VehicleNote.styled'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faPencilAlt } from '@fortawesome/free-solid-svg-icons'\r\nimport { VehicleContext } from './VehicleContext'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport produce from 'immer'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\n\r\nexport const VehicleNote = () => {\r\n const {\r\n editingNote,\r\n setEditingNote,\r\n vehicleData,\r\n vehicleData: {\r\n vehicle: { VehicleNote, InstanceID, NoteId }\r\n }\r\n } = useContext(VehicleContext)\r\n const editingFormRef = useRef(null)\r\n useClickOutSide(editingFormRef, () => setEditingNote(false))\r\n const [loading, setLoading] = useState(false)\r\n const updateVehicleData = useVehicleStore((state) => state.updateVehicleData)\r\n\r\n const { userInteraction } = useDtmAnalytics()\r\n\r\n const inputNote = useRef(null)\r\n useEffect(() => {\r\n if (inputNote && inputNote.current) inputNote.current.focus()\r\n }, [editingNote])\r\n\r\n const addVehicleNote = async (note: string) => {\r\n try {\r\n setLoading(true)\r\n await addVehicleNotes({\r\n VehicleInstanceID: InstanceID,\r\n NotesId: NoteId,\r\n Notes: note\r\n })\r\n\r\n updateVehicleData(\r\n produce(vehicleData, (draft) => {\r\n draft.vehicle.VehicleNote = note\r\n })\r\n )\r\n setEditingNote(false)\r\n } catch {\r\n } finally {\r\n setLoading(false)\r\n }\r\n\r\n userInteraction(\r\n `${window.webData.pageName} : save note`,\r\n [{ auctionInfo: vehicleData.auctionInfo, VIN: vehicleData.vehicle.VIN }],\r\n { userNote: note }\r\n )\r\n }\r\n\r\n return (\r\n \r\n {editingNote ? (\r\n
\r\n addVehicleNote(values.VehicleNote)}\r\n >\r\n {(props) => (\r\n
\r\n \r\n \r\n \r\n \r\n {loading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n
\r\n ) : (\r\n <>\r\n {VehicleNote && !loading && (\r\n
\r\n \r\n \r\n \r\n \r\n {VehicleNote}\r\n \r\n }\r\n >\r\n {` ${VehicleNote}`}\r\n \r\n
\r\n )}\r\n \r\n )}\r\n
\r\n )\r\n}\r\n","import { useEffect } from 'react'\r\n\r\nexport const useClickOutSide = (ref: React.MutableRefObject, clickOutsideHandler: () => void) => {\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n clickOutsideHandler()\r\n }\r\n }\r\n document.addEventListener('mousedown', handleClickOutside)\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside)\r\n }\r\n }, [clickOutsideHandler, ref])\r\n}\r\n","import { Ribbon } from 'components/Ribbon/Ribbon'\r\nimport { IVDPSearchParams } from 'types/ISearchParams'\r\nimport { IVehicleInfo } from 'types/vehicleTypes'\r\nimport { parseUrlSearchParams } from 'utils/urlParams'\r\nimport { StyledRibbonContainer } from './VehicleDetails.styled'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { useContext } from 'react'\r\nimport { VehicleContext } from './VehicleContext'\r\nimport FileSaver from 'file-saver'\r\n\r\ninterface IProps {\r\n vehicleInfo: IVehicleInfo\r\n}\r\n\r\nexport const VehicleRibbons = ({ vehicleInfo }: IProps) => {\r\n const location = useLocation()\r\n const { retailView } = useContext(VehicleContext)\r\n const isVDPHistory = parseUrlSearchParams(location.search).history === 'true'\r\n const showPriceReduction = !isVDPHistory && vehicleInfo.DecreasedPrice\r\n const showNewInventory = !isVDPHistory && vehicleInfo.NewInventory\r\n const showPromotions = !isVDPHistory && !retailView\r\n const { vehicleData } = useContext(VehicleContext)\r\n\r\n return (\r\n \r\n {showPriceReduction && }\r\n {showNewInventory && }\r\n {vehicleInfo.DisclosurePresent && (\r\n \r\n FileSaver.saveAs(\r\n '/resource/GetVehicleInstanceDocumentByID?documentID=' +\r\n vehicleData.documentSignInfo.VehicleInstanceDocumentsID\r\n )\r\n : null\r\n }\r\n title={vehicleData.documentSignInfo ? 'Click Here to View Disclosure' : ''}\r\n />\r\n )}\r\n {showPromotions &&\r\n vehicleInfo.Incentives?.map((i, idx) => )}\r\n \r\n )\r\n}\r\n","import { NavLink } from 'components/Share/Link'\r\nimport { useContext } from 'react'\r\nimport { IVehicleData } from 'types/vehicleTypes'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\nimport { getVdpUrl } from 'utils/urlUtils'\r\nimport { VehicleContext } from './VehicleContext'\r\nimport { StyledTitleSection, TitleVDP } from './VehicleDetails.styled'\r\nimport { VehicleRibbons } from './VehicleRibbons'\r\nimport { SessionStorageKey } from 'common/constants'\r\ninterface IProps {\r\n vehicleData: IVehicleData\r\n}\r\n\r\nexport const VehicleTitleSection = ({ vehicleData }: IProps) => {\r\n const { isVDP, viewStyle } = useContext(VehicleContext)\r\n const detailLink = getVdpUrl(vehicleData.vehicle.InstanceID)\r\n return (\r\n \r\n {isVDP ? (\r\n {vehicleData.vehicle.Title}\r\n ) : (\r\n {\r\n setCustomClick(vehicleData.vehicle.Title, {\r\n usePageName: true\r\n })\r\n sessionStorage.setItem(SessionStorageKey.VIEW_VEHICLE_LIST, viewStyle.toString())\r\n }}\r\n to={detailLink}\r\n >\r\n {vehicleData.vehicle.Title}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledSelect = styled.div`\r\n .react-select {\r\n &__dropdown-indicator {\r\n padding: 0 8px;\r\n }\r\n\r\n &__control {\r\n min-height: 29px;\r\n }\r\n\r\n .check-option &__option {\r\n color: #000;\r\n }\r\n\r\n .check-option &__option:hover {\r\n background-color: ${({ theme }) => theme.colors.dropdownHoverColor};\r\n }\r\n\r\n &__menu .check-option .react-select__option--is-selected {\r\n background-color: transparent;\r\n color: #000;\r\n &:hover {\r\n background-color: ${({ theme }) => theme.colors.dropdownHoverColor};\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const StyledSelectAll = styled.div`\r\n &:hover {\r\n background-color: ${({ theme }) => theme.colors.dropdownHoverColor};\r\n }\r\n input {\r\n margin-right: 4px;\r\n }\r\n`\r\n","import { ComponentProps } from 'react'\r\nimport ReactSelect from 'react-select'\r\nimport { useTheme } from 'styled-components'\r\nimport { StyledSelect } from './Select.styled'\r\nimport { zIndex } from 'common/constants'\r\n\r\nexport const Select = ({ ...props }: ComponentProps) => {\r\n const {\r\n colors: { primary }\r\n } = useTheme()\r\n\r\n return (\r\n \r\n ({ ...base, zIndex: zIndex.floatingControls }) }}\r\n classNamePrefix=\"react-select\"\r\n {...props}\r\n theme={(theme) => ({\r\n ...theme,\r\n colors: {\r\n ...theme.colors,\r\n primary: primary\r\n }\r\n })}\r\n />\r\n \r\n )\r\n}\r\n\r\nexport default Select\r\n","import { isEmpty } from 'lodash'\r\nimport { IVehicleSearchDocument, ISearchFilterResult } from 'types/vehicleTypes'\r\nimport { BaseVehicleSearchCriteriaColumn } from './constants'\r\n\r\n// Common\r\nexport const stripHtml = (htmlStr: string): string => {\r\n return new DOMParser()\r\n .parseFromString(htmlStr, 'text/html')\r\n .documentElement.textContent.replace(/\\s{2,}|\\t{1,}/g, ' ')\r\n .trim()\r\n}\r\n\r\n// AvailableInventory\r\nexport const isAnyChilrenFiltersSelected = (filters: ISearchFilterResult[], filterFieldName: string) => {\r\n return filters.find((ft) => ft.FieldName === filterFieldName)?.ChildrenFilter?.some((cft) => cft.Selected)\r\n}\r\n\r\nexport const isAnyChildrenFilterExist = (\r\n filters: ISearchFilterResult[],\r\n filterFieldName: string,\r\n childrenFilterFieldName: string\r\n) => {\r\n return filters\r\n .find((ft) => ft.FieldName === filterFieldName)\r\n ?.ChildrenFilter?.some((cft) => cft.FieldName === childrenFilterFieldName)\r\n}\r\n\r\nexport const hasAnyChilrenFilter = (filters: ISearchFilterResult[], filterFieldName: string) => {\r\n return filters.find((ft) => ft.FieldName === filterFieldName)?.ChildrenFilter?.length > 0\r\n}\r\n\r\nexport const processVehicleSearchDocumentResult = (\r\n result: IVehicleSearchDocument[],\r\n filters: ISearchFilterResult[],\r\n filterFieldName: string,\r\n filterField: (r: IVehicleSearchDocument) => string\r\n) => {\r\n const processFilters = (childrenFilters: ISearchFilterResult[]) =>\r\n childrenFilters.filter((cft: ISearchFilterResult) => cft.Selected).map((cft: ISearchFilterResult) => cft.Value)\r\n\r\n if (isAnyChilrenFiltersSelected(filters, filterFieldName)) {\r\n return result.filter((r: IVehicleSearchDocument) =>\r\n processFilters([...filters.find((ft) => ft.FieldName === filterFieldName)?.ChildrenFilter]).includes(\r\n filterField(r)\r\n )\r\n )\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport const resetChildrenFilters = (filters: ISearchFilterResult[], ...filterFieldNames: string[]) => {\r\n if (!isEmpty(filterFieldNames)) {\r\n return filterFieldNames?.forEach((filterFieldName) =>\r\n filters.find((ft) => ft.FieldName === filterFieldName)!.ChildrenFilter.forEach((cft) => (cft.Selected = false))\r\n )\r\n }\r\n\r\n return filters?.forEach((ft) => ft.ChildrenFilter.forEach((cft) => (cft.Selected = false)))\r\n}\r\n\r\nexport const selectChildrenFilter = (\r\n filters: ISearchFilterResult[],\r\n filterFieldName: string,\r\n ...selectedValues: string[]\r\n) => {\r\n return filters.forEach((filter) => {\r\n if (filter.FieldName === filterFieldName) {\r\n selectedValues?.forEach((selectedValue) => {\r\n if (filter.ChildrenFilter.find((childFilter) => childFilter.Value === selectedValue)) {\r\n filter.ChildrenFilter.find((childFilter) => childFilter.Value === selectedValue).Selected = true\r\n }\r\n })\r\n }\r\n })\r\n}\r\nexport const addDummyChildrenFilter = (\r\n filters: ISearchFilterResult[],\r\n fieldId: BaseVehicleSearchCriteriaColumn,\r\n fieldName: string,\r\n dbFieldName: string,\r\n value: string,\r\n selected: boolean = true\r\n) => {\r\n filters\r\n .find((ft) => ft.FieldName === fieldName)\r\n ?.ChildrenFilter?.push({\r\n FieldId: fieldId,\r\n FieldName: fieldName,\r\n DBFieldName: dbFieldName,\r\n FriendlyValue: value,\r\n Value: value,\r\n Selected: selected,\r\n MultiSelect: true,\r\n Operation: 1\r\n })\r\n}\r\n","export const enum srpFilters {\r\n NewInventory = 'New Inventory',\r\n Promotion = 'Promotion',\r\n AdditionalBodyStyle = 'Additional Body Style',\r\n BodyStyle = 'Body Style',\r\n FuelType = 'Fuel Type',\r\n Make = 'Make',\r\n Series = 'Series',\r\n Year = 'Year'\r\n}\r\n","import { BMW_VENDOR_CODE } from 'common/constants'\r\nimport {\r\n AnalyticsStore,\r\n getApplicationRevisionId,\r\n AnalyticsStorageKey,\r\n setCustomClick,\r\n getListings,\r\n getSearchParameters\r\n} from 'utils/analyticsUtils'\r\nimport { useCallback } from 'react'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { DtmSettings, DtmAnalyticsEvent, SRPDtmInfo, IListingModel, ICustomOptions } from 'types/dtmTypes'\r\nimport log from 'utils/logger'\r\n\r\nconst dtmSettings: DtmSettings = {\r\n events: 'rTEA,SRPView',\r\n siteCode: 'BMW Direct',\r\n platform: 'SinglePageApp',\r\n signature: '#analytics_om'\r\n}\r\n\r\nexport const useDtmAnalytics = () => {\r\n const userData = useGlobalStore((state) => state.userClaims)\r\n\r\n const dtmTraceWebEvent = (\r\n event: DtmAnalyticsEvent = 'pageView',\r\n { componentName, customClickName: alternativeClickName, listModel, userNote, searchData }: ICustomOptions = {}\r\n ) => {\r\n const { enableDtmAnalytics, environment, pageDetails, customClickName, pageName, pageRollup, tabName, loadStart } =\r\n AnalyticsStore\r\n if (!enableDtmAnalytics) {\r\n return\r\n }\r\n\r\n const { query, sortBy } = getSearchParameters(searchData)\r\n window.appEventData = window['appEventData'] || []\r\n window.webData = window['webData'] || {}\r\n const siteCode = userData.VendorCode === BMW_VENDOR_CODE ? dtmSettings.siteCode : 'RMSUS'\r\n const applicationCode = event === 'componentLoad' ? `${userData.VendorCode}:${componentName}` : userData.VendorCode\r\n // geolocation is handled by Adobe analytics framework, so we just need to ask for geolocation permission and not need to send any data\r\n let eventData: SRPDtmInfo = {\r\n event: event,\r\n events: dtmSettings.events,\r\n siteCode: siteCode,\r\n platform: dtmSettings.platform,\r\n signature: dtmSettings.signature,\r\n application: applicationCode,\r\n loginName: userData.Username,\r\n pageDetails: userData.VendorCode === BMW_VENDOR_CODE ? 'BMW Direct - ' + pageDetails : pageDetails,\r\n repID: userData.RepAuctionAccess?.toString(),\r\n sessionId: userData.SessionID,\r\n environment,\r\n applicationRevisionId: getApplicationRevisionId(),\r\n accountID: userData.CurrentBuyerID?.toString(),\r\n accountName: userData.DealershipName,\r\n pageName: componentName || pageName,\r\n pageRollup: pageRollup,\r\n tabName: tabName,\r\n customClickName: alternativeClickName || customClickName,\r\n loadTime: new Date().getTime() - loadStart.getTime(),\r\n pageType: event === 'componentLoad' ? 'component' : 'page',\r\n language: userData.LanguageCode,\r\n userNotes: userNote,\r\n query,\r\n sortBy\r\n } as any\r\n window.webData = eventData\r\n const listings = getListings(listModel, siteCode, userData.VendorCode)\r\n const appEventData = { ...eventData, listings }\r\n window.appEventData.push(appEventData)\r\n\r\n log.debug(new Date().toISOString(), appEventData)\r\n if (event === 'pageView' && sessionStorage.getItem(AnalyticsStorageKey.CUSTOM_CLICK_NAME)) {\r\n sessionStorage.removeItem(AnalyticsStorageKey.CUSTOM_CLICK_NAME)\r\n delete AnalyticsStore.customClickName\r\n }\r\n }\r\n\r\n const userInteraction = useCallback(\r\n (customClickName?: string, listModel?: IListingModel[], { userNote }: ICustomOptions = {}) => {\r\n if (customClickName) {\r\n setCustomClick(customClickName)\r\n }\r\n dtmTraceWebEvent('userInteraction', {\r\n customClickName,\r\n listModel,\r\n userNote\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n },\r\n []\r\n )\r\n\r\n const endPageLoad = useCallback((listModel?: IListingModel[], { searchData }: ICustomOptions = {}) => {\r\n dtmTraceWebEvent('pageView', {\r\n listModel,\r\n searchData\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const endComponentLoad = useCallback((componentName?: string, listModel?: any[]) => {\r\n dtmTraceWebEvent('componentLoad', {\r\n componentName,\r\n listModel\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return { endPageLoad, endComponentLoad, userInteraction }\r\n}\r\n","import { IHomeSectionHeaderProps } from 'components/Header/HomeSectionHeader'\r\nimport { LayoutContext } from 'contexts/LayoutContext'\r\nimport { PropsWithChildren, useContext } from 'react'\r\nimport { StyledVehicleStickyBar } from './VehicleStickyBar.styled'\r\n\r\ninterface IVehicleStickyBarProps extends IHomeSectionHeaderProps {}\r\n\r\nexport const VehicleStickyBar = ({ children, ...props }: PropsWithChildren) => {\r\n const { isSticky } = useContext(LayoutContext)\r\n return \r\n}\r\n","import { AppRoutes } from 'common/routes'\r\nimport { Loader } from 'components/Loader'\r\nimport { Link } from 'react-router-dom'\r\nimport { IconSvg } from '@prism/icon'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\n\r\ninterface Iprops {\r\n loading: boolean\r\n count: number\r\n}\r\n\r\nexport const CurrentBidsCount = ({ loading, count }: Iprops) => {\r\n return (\r\n <>\r\n {loading ? (\r\n \r\n ) : (\r\n setCustomClick('Manage Bids', { usePageName: true })}\r\n to={AppRoutes.ManageBids}\r\n >\r\n \r\n \r\n  Manage Bids ({count ?? 0})\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { AppRoutes } from 'common/routes'\r\nimport { Loader } from 'components/Loader'\r\nimport { Link } from 'react-router-dom'\r\nimport { IconSvg } from '@prism/icon'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\n\r\ninterface Iprops {\r\n loading: boolean\r\n count: number\r\n}\r\n\r\nexport const WatchListCount = ({ loading, count }: Iprops) => {\r\n return (\r\n <>\r\n {loading ? (\r\n \r\n ) : (\r\n setCustomClick('Watch List', { usePageName: true })}\r\n to={AppRoutes.WatchList}\r\n >\r\n \r\n \r\n  Watch List ({count ?? 0})\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Popover } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const AttachFilePopoverStyled = styled(Popover)`\r\n box-shadow: 0 0.2rem 0.5rem rgb(0 0 0 / 25%);\r\n\r\n .popover-body {\r\n margin-top: 0.5rem;\r\n font-size: 1.4rem;\r\n padding: 1rem;\r\n }\r\n &.popover {\r\n min-width: 20%;\r\n max-width: 30%;\r\n }\r\n .popover-header {\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n color: #fff;\r\n font-size: 1.6rem;\r\n }\r\n .arrow {\r\n display: none;\r\n }\r\n\r\n .popover-header::before {\r\n display: none;\r\n }\r\n\r\n .download-link {\r\n color: ${({ theme }) => theme.colors.linkColorLight};\r\n cursor: pointer;\r\n font-size: 1.6rem;\r\n }\r\n\r\n .attachments-list {\r\n padding-top: 1rem;\r\n .attachment-item {\r\n display: block;\r\n padding-bottom: 0.3rem;\r\n margin-top: 0.5rem;\r\n }\r\n }\r\n`\r\n","import { faFile, faFileImage, faFilePdf, faFileVideo } from '@fortawesome/free-regular-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { getMultipleVehicleDocuments } from 'apis/vehicleApis'\r\nimport { Loader } from 'components/Loader'\r\nimport { forwardRef } from 'react'\r\nimport { Popover, PopoverProps } from 'react-bootstrap'\r\nimport { DocumentFileType } from 'types/baseTypes'\r\n\r\nimport { useFetch } from '../hooks/useFetch'\r\nimport { AttachFilePopoverStyled } from './PopoverAttachment.styled'\r\n\r\ninterface IProps extends Omit {\r\n vehicleInstanceID: number\r\n VIN: string\r\n}\r\n\r\nexport const PopoverAttachment = forwardRef(({ vehicleInstanceID, VIN, ...rest }: IProps, ref) => {\r\n const { loading, data: documents } = useFetch(() => getMultipleVehicleDocuments(vehicleInstanceID))\r\n\r\n return (\r\n \r\n Attached Files\r\n \r\n VIN: {VIN}\r\n {loading && }\r\n {!loading && documents?.length > 0 && (\r\n
\r\n {documents.map(({ ID, DocumentDescription, FileName, DocumentURL }) => (\r\n
\r\n
window.open(DocumentURL, \"_parent'\")}>\r\n {!!DocumentDescription && (\r\n \r\n )}{' '}\r\n {FileName}\r\n
\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n )\r\n})\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledVDPHistory = styled.div`\r\n font-size: 1.4rem;\r\n color: #494949;\r\n margin-top: 3rem;\r\n\r\n .item {\r\n margin-bottom: 0.4rem;\r\n\r\n > label {\r\n font-weight: 700;\r\n padding-right: 0.3rem;\r\n }\r\n }\r\n`\r\n","import { useGlobalStore } from 'store/useGlobalStore'\r\nimport { IPurchaseHistory } from 'types/accountTypes'\r\nimport { formatDate } from 'utils/dateUtils'\r\nimport { StyledVDPHistory } from './VDPHistory.styled'\r\n\r\ninterface IProps {\r\n vehiclePurchase: IPurchaseHistory\r\n}\r\nexport const VDPHistory = ({ vehiclePurchase }: IProps) => {\r\n const { getLocalText } = useGlobalStore((state) => state)\r\n\r\n return (\r\n <>\r\n {vehiclePurchase && (\r\n \r\n
\r\n \r\n {vehiclePurchase.TotalPriceString}\r\n
\r\n
\r\n \r\n {vehiclePurchase.PreAdjustmentPriceString}\r\n
\r\n
\r\n \r\n {formatDate(vehiclePurchase.PurchaseDate, 'DD t')}\r\n
\r\n
\r\n \r\n {vehiclePurchase.InvoiceNumber}\r\n
\r\n
\r\n \r\n {vehiclePurchase.PaymentType}\r\n
\r\n
\r\n \r\n {vehiclePurchase.Location}\r\n
\r\n
\r\n )}\r\n \r\n )\r\n}\r\n","import { faPaperclip } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { BidSectionContainer, StyledVehicleBidBuyInformation } from 'modules/BuyerActivity/VehicleAuction.styled'\r\nimport { PopoverAttachment } from 'modules/PopoverAttachment'\r\nimport { VDPHistory } from 'modules/VDP/VDPHistory'\r\nimport { StyledVehicleDetailsBody, StyledVehicleDetailsHeaderRow } from 'modules/VehicleList'\r\nimport { lazy, Suspense, useContext } from 'react'\r\nimport { Col, OverlayTrigger, Row } from 'react-bootstrap'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { IVDPSearchParams } from 'types/ISearchParams'\r\nimport { IVehicleData } from 'types/vehicleTypes'\r\nimport { parseUrlSearchParams } from 'utils/urlParams'\r\n\r\nimport { UserMaxBid } from './UserMaxBid'\r\nimport { VehicleActions } from './VehicleActions'\r\nimport { VehicleBidBuyActions } from './VehicleBidBuyActions'\r\nimport { VehicleBidHistoryLink } from './VehicleBidHistoryLink'\r\nimport { VehicleContext } from './VehicleContext'\r\nimport { PaperClipButton, VehicleVin } from './VehicleDetails.styled'\r\nimport { VehicleNote } from './VehicleNote'\r\nimport { VehiclePriceSection } from './VehiclePriceSection'\r\nimport { VehicleProperties } from './VehicleProperties'\r\nimport { VehicleTags } from './VehicleTags'\r\nimport { VehicleTimer } from './VehicleTimer'\r\nimport { VehicleTitleSection } from './VehicleTitleSection'\r\n\r\nexport interface IProps {\r\n vehicleData: IVehicleData\r\n}\r\nexport const VehicleInformation = ({ vehicleData }: IProps) => {\r\n const location = useLocation()\r\n const isVdpHistory = parseUrlSearchParams(location.search).history === 'true'\r\n const hideBuyOptions = parseUrlSearchParams(location.search).history === 'true'\r\n const { retailView } = useContext(VehicleContext)\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 {vehicleData.vehicle.VIN}\r\n {vehicleData.vehicle.HasExternalAttachments && !isVdpHistory && (\r\n (\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {hideBuyOptions && vehicleData.PurchaseHistory ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {!retailView && (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \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 { Button } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\nimport { zIndex } from 'common/constants'\r\n\r\ninterface IShowProps {\r\n show: boolean\r\n}\r\nexport const StyledScrollButton = styled(Button)`\r\n position: fixed;\r\n bottom: 7rem;\r\n right: 5rem;\r\n width: 4rem;\r\n height: 4rem;\r\n border-radius: 50%;\r\n background-color: #fff;\r\n border: 0.1rem solid #ccc;\r\n box-shadow: 0 0 0.5rem 0.2rem rgb(0 0 0 / 10%);\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-size: 1rem;\r\n font-weight: bold;\r\n z-index: ${zIndex.stickyHeader};\r\n\r\n display: ${(props) => (props.show ? 'flex' : 'none')};\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n &:hover .fa-angle-up {\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n .circle {\r\n border-radius: 50%;\r\n background-color: #fff;\r\n border: 0.2rem solid ${({ theme }) => theme.colors.primary};\r\n width: 2rem;\r\n height: 2rem;\r\n }\r\n`\r\n","import React, { useEffect, useState } from 'react'\r\nimport { faAngleUp } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { StyledScrollButton } from './ScrollButton.styled'\r\n\r\nconst ScrollButton = () => {\r\n const [show, setShow] = useState(false)\r\n\r\n useEffect(() => {\r\n const toggleVisible = () => {\r\n const scrolled = document.documentElement.scrollTop\r\n if (scrolled > 300) {\r\n setShow(true)\r\n } else if (scrolled <= 300) {\r\n setShow(false)\r\n }\r\n }\r\n window.addEventListener('scroll', toggleVisible)\r\n\r\n return () => window.removeEventListener('scroll', toggleVisible)\r\n }, [])\r\n\r\n const scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n TOP\r\n
\r\n )\r\n}\r\n\r\nexport default ScrollButton\r\n","import { borderColorSecondary, colorBackgroundCarfaxItem, mediumScreen, smallScreen } from 'common/theme'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledCarfaxAdvantage = styled.div`\r\n font-family: 'BMWGroup Regular', sans-serif;\r\n font-size: 1.1rem;\r\n\r\n display: flex;\r\n flex: 1;\r\n\r\n .carfax-advanced-icon {\r\n cursor: none;\r\n }\r\n\r\n @media (max-width: ${smallScreen}) {\r\n width: 100%;\r\n font-size: 1rem;\r\n flex-wrap: wrap;\r\n }\r\n\r\n @media (max-width: ${mediumScreen}) {\r\n min-width: auto;\r\n flex-wrap: wrap;\r\n width: 100%;\r\n }\r\n`\r\n\r\nexport const StyledCarfaxAdvantageTitleImage = styled.div`\r\n padding: 1rem 1rem;\r\n height: 4.5rem;\r\n flex-basis: 11.8rem;\r\n background-color: ${({ theme }) => theme.colors.carfaxBackground};\r\n\r\n @media print {\r\n background-color: ${({ theme }) => theme.colors.carfaxBackground};\r\n -webkit-print-color-adjust: exact;\r\n }\r\n img {\r\n width: 10rem;\r\n }\r\n\r\n @media (max-width: ${mediumScreen}) {\r\n width: 100%;\r\n text-align: center;\r\n flex-basis: auto;\r\n }\r\n`\r\n\r\nexport const StyledCarfaxAdvantageItem = styled.div`\r\n width: calc((100% - 11.8rem) / 4);\r\n float: left;\r\n background-color: ${colorBackgroundCarfaxItem};\r\n border: 0.1rem solid ${borderColorSecondary};\r\n height: 4.5rem;\r\n padding-left: 1rem;\r\n overflow-y: hidden;\r\n text-overflow: ellipsis;\r\n\r\n img {\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n float: left;\r\n margin: 1rem 0.5rem;\r\n }\r\n .snapshot-item-content {\r\n display: table-cell;\r\n height: 4.5rem;\r\n vertical-align: middle;\r\n line-height: 2rem;\r\n }\r\n\r\n .carfax-item-count {\r\n background: orange;\r\n color: #fff;\r\n border-radius: 50%;\r\n padding: 0 1rem;\r\n top: -2.5rem;\r\n margin-left: -0.5rem;\r\n float: left;\r\n position: relative;\r\n }\r\n\r\n @media (max-width: ${mediumScreen}) {\r\n width: 50%;\r\n border: 0.1rem solid ${borderColorSecondary};\r\n }\r\n\r\n @media print {\r\n background-color: ${colorBackgroundCarfaxItem};\r\n -webkit-print-color-adjust: exact;\r\n }\r\n`\r\nexport const StyledNoCarfaxItem = styled.div`\r\n background-color: ${colorBackgroundCarfaxItem};\r\n line-height: 4.5rem;\r\n padding-left: 1rem;\r\n flex: 1;\r\n\r\n span {\r\n white-space: nowrap;\r\n }\r\n\r\n @media (max-width: ${smallScreen}) {\r\n width: 100%;\r\n }\r\n\r\n @media print {\r\n background-color: ${colorBackgroundCarfaxItem};\r\n -webkit-print-color-adjust: exact;\r\n }\r\n`\r\n","import {\r\n StyledCarfaxAdvantage,\r\n StyledCarfaxAdvantageItem,\r\n StyledCarfaxAdvantageTitleImage,\r\n StyledNoCarfaxItem\r\n} from './CarfaxAdvantage.styled'\r\nimport { ICarFaxSnapshotItem } from 'types/vehicleTypes'\r\nimport { carfaxIcon } from 'common/constants'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { Rules } from 'common/rules'\r\ninterface IProps {\r\n snapshotList: ICarFaxSnapshotItem[]\r\n}\r\n\r\nexport const CarfaxAdvantage = ({ snapshotList }: IProps) => {\r\n const isInRule = useGlobalStore((state) => state.isInRule)\r\n\r\n const viewCarfaxAdvantage = isInRule(Rules.VIEW_CARFAX_ADVANCED)\r\n\r\n if (!viewCarfaxAdvantage) {\r\n return <>\r\n }\r\n\r\n return (\r\n \r\n \r\n \"\"\r\n \r\n {snapshotList?.length > 0 ? (\r\n snapshotList.map((item, index) => (\r\n \r\n {item.Icon && (\r\n \r\n )}\r\n {item.Value}\r\n {item.Value !== 'N/A' && item.ValueCount >= 0 && (\r\n {item.ValueCount}\r\n )}\r\n \r\n ))\r\n ) : (\r\n \r\n No CARFAX Snapshot items available\r\n \r\n )}\r\n \r\n )\r\n}\r\n","export const BMWIconNew = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default BMWIconNew\r\n","import { chunk } from 'lodash'\r\nimport { faChevronRight, faChevronLeft } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useState, useEffect, useContext } from 'react'\r\nimport { Carousel, Col, Row } from 'react-bootstrap'\r\nimport { LazyLoadImage } from 'react-lazy-load-image-component'\r\nimport { IVehicleImage } from 'types/vehicleTypes'\r\nimport 'react-lazy-load-image-component/src/effects/blur.css'\r\nimport { StyledVehicleDetailCarousel, StyledVehicleDetailImage } from './VehicleDetailImage.style'\r\nimport BMWIconNew from 'images/icon/BMWIconNew'\r\nimport { SliderContext } from 'contexts/SliderContext'\r\ninterface IProps {\r\n mainImageUrl: string\r\n images: IVehicleImage[]\r\n vehicleInstance: number\r\n isDSI?: boolean\r\n}\r\n\r\nconst pageSize = 4\r\n\r\nexport const VehicleDetailImage = ({ mainImageUrl, images, vehicleInstance, isDSI = false }: IProps) => {\r\n const { setDisplaySlider, setSliderData, selectedImageID, selectedVehicle } = useContext(SliderContext)\r\n const [pageNumber, setPageNumber] = useState(0)\r\n const [imageUrl, setImageUrl] = useState('')\r\n const [canLoadImage, setCanLoadImage] = useState(true)\r\n\r\n const handleSelect = (selectedIndex: number) => {\r\n setPageNumber(selectedIndex)\r\n }\r\n const pages = chunk(images, pageSize)\r\n\r\n const handlImageChange = (imageUrl) => {\r\n setImageUrl(imageUrl)\r\n setCanLoadImage(true)\r\n }\r\n\r\n const handleBrokenImageURL = (event) => {\r\n setCanLoadImage(false)\r\n event.target.error = null\r\n }\r\n\r\n useEffect(() => {\r\n if (mainImageUrl) {\r\n setImageUrl(mainImageUrl)\r\n }\r\n }, [mainImageUrl])\r\n\r\n useEffect(() => {\r\n if (selectedImageID && selectedVehicle === vehicleInstance) {\r\n let imgIndex = images.findIndex((x) => x.ID === selectedImageID)\r\n imgIndex = imgIndex === -1 ? 0 : imgIndex\r\n setImageUrl(images[imgIndex]?.LocalThumbImageURL || images[imgIndex]?.LocalImageURL)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedImageID, images])\r\n\r\n return (\r\n \r\n \r\n {images?.length <= 0 || !canLoadImage ? (\r\n \r\n ) : (\r\n {\r\n setSliderData(images.map((image) => ({ ...image, Description: isDSI ? '' : image.Description })))\r\n setDisplaySlider(\r\n !!imageUrl,\r\n images.find((x) => x.LocalThumbImageURL === imageUrl || x.ImageURL === imageUrl)?.ID,\r\n vehicleInstance\r\n )\r\n }}\r\n />\r\n )}\r\n \r\n {images?.length > 1 && (\r\n }\r\n prevIcon={}\r\n >\r\n {pages.map((currentPage, index) => (\r\n \r\n \r\n {currentPage.map((item, index) => (\r\n \r\n handlImageChange(item.LocalThumbImageURL || item.ImageURL)}\r\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 default VehicleDetailImage\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { IApiState } from 'types/baseTypes'\r\n\r\nexport const useFetch = (fn: () => Promise, deps = []) => {\r\n const [result, setResult] = useState>({\r\n loading: true\r\n })\r\n\r\n const doFetch = useCallback(async () => {\r\n if (!fn) return\r\n setResult({\r\n ...result,\r\n error: null,\r\n loading: true\r\n })\r\n\r\n try {\r\n const response = await fn()\r\n setResult({\r\n data: response,\r\n loading: false\r\n })\r\n } catch (error) {\r\n setResult({\r\n ...result,\r\n error,\r\n loading: false\r\n })\r\n }\r\n }, [fn, result])\r\n\r\n useEffect(() => {\r\n doFetch()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, deps)\r\n\r\n return { ...result, refetch: doFetch } as IApiState\r\n}\r\n","export const MultiLanguageCode = {\r\n SITE_TITLE: 'SITE_TITLE',\r\n PASSWORD: 'PASSWORD',\r\n LOGIN: 'LOGIN',\r\n PRIVACY_POLICY: 'PRIVACY_POLICY',\r\n PRIVACY_POLICY_HEADER: 'PRIVACY_POLICY_HEADER',\r\n CONTACT_US: 'CONTACT_US',\r\n COPYRIGHT_TEXT: 'COPYRIGHT_TEXT',\r\n TERMS_AND_CONDITIONS: 'TERMS_AND_CONDITIONS',\r\n TERMS_LINK: 'termsLink',\r\n TERMS_TEXT: 'termsText',\r\n CONTACTUS_HEADER: 'CONTACTUS_HEADER',\r\n CONTACTUS_BODY: 'CONTACTUS_BODY',\r\n CANCEL_BUTTON: 'CANCEL_BUTTON',\r\n SUBMIT: 'SUBMIT',\r\n CONTACTUS_SUCCESS: 'CONTACTUS_SUCCESS',\r\n EMAIL_FAILED: 'EMAIL_FAILED',\r\n ANNOUNCEMENTS_VDP: 'ANNOUNCEMENTS_VDP',\r\n OPEN_RECALL_CLEARING_MESSAGE: 'OPEN_RECALL_CLEARING_MESSAGE',\r\n OPEN_RECALL_DETAILS: 'OPEN_RECALL_DETAILS',\r\n OPEN_RECALL_EFFECTIVE_DATE: 'OPEN_RECALL_EFFECTIVE_DATE',\r\n OPEN_RECALL_CAMPAIGN_ID: 'OPEN_RECALL_CAMPAIGN_ID',\r\n AS_IS_100K: 'AS_IS_100K',\r\n TMU_REASON: 'TMU_REASON',\r\n COMMENT_LINK: 'COMMENT_LINK',\r\n ANNOUNCED_CONDITIONS: 'ANNOUNCED_CONDITIONS',\r\n FRAME_DAMAGE: 'FRAME_DAMAGE',\r\n MILEAGE: 'MILEAGE',\r\n DEFECT_DATE: 'DEFECT_DATE',\r\n DEFECT_DESCRIPTION: 'DEFECT_DESCRIPTION',\r\n DEFECT_CODE: 'DEFECT_CODE'\r\n}\r\n","import { SavedSearchReceive } from './../types/vehicleTypes'\r\nimport { IAuctionInfo } from './../types/auctionTypes'\r\nimport { fetchAsync, postAsync } from 'common/fetch'\r\nimport {\r\n BuyerBaseVehicleSearchCriteria,\r\n DeliveryInformation,\r\n IBidOnVehicleRequest,\r\n IDeliveryQuote,\r\n IDocumentSignInfor,\r\n ISearchVehicleResponse,\r\n ISearchVehiclesRequest,\r\n IVehicleFeeRequest,\r\n IVehicleFeeResponse,\r\n IVehicleNote,\r\n IVehicleSearchDocument,\r\n SavedSearchData,\r\n WidgetConfigurationDetails\r\n} from 'types/vehicleTypes'\r\nimport { DocumentType, VehicleDocument, IBaseCollectionResponse, IBaseResponse } from 'types/baseTypes'\r\nimport { GetBaseVehicleRequest, IVehicleData } from 'types/vehicleTypes'\r\nimport { SellerDisclosure } from 'types/inspectionTypes'\r\nimport { toUrlSearchParams } from 'utils/urlParams'\r\n\r\nexport const quickSearch = async (request: ISearchVehiclesRequest) => {\r\n return postAsync(`/api/vehicle/QuickSearch`, {\r\n body: request\r\n })\r\n}\r\n\r\nexport const searchAvailableInventory = async (request: ISearchVehiclesRequest) => {\r\n return postAsync(`/api/vehicle/SearchAvailableInventory`, {\r\n body: request\r\n })\r\n}\r\n\r\nexport const searchVehicles = async (request: ISearchVehiclesRequest) => {\r\n return postAsync(`/api/vehicle/SearchVehicles`, {\r\n body: request\r\n })\r\n}\r\n\r\nexport const getBaseVehicle = async (request: GetBaseVehicleRequest, biddingDealerId?: number) => {\r\n return postAsync>('/api/vehicle/GetBaseVehicle', {\r\n body: request,\r\n headers: {\r\n 'X-Actuos-BuyerID': biddingDealerId?.toString()\r\n }\r\n })\r\n}\r\n\r\nexport const saveDisclosure = async (request: IDocumentSignInfor) => {\r\n return postAsync>('/api/vehicle/SaveDisclosure', {\r\n body: request\r\n })\r\n}\r\n\r\nexport const addVehicleNotes = async (request: IVehicleNote) => {\r\n return postAsync('/api/vehicle/AddVehicleNotes', {\r\n body: request\r\n })\r\n}\r\n\r\nexport const getDetailedDeliveryInfo = async (request: IDeliveryQuote, biddingDealerId?: number) => {\r\n return postAsync('/api/vehicle/GetDetailedDeliveryInfo', {\r\n body: request,\r\n headers: {\r\n 'X-Actuos-BuyerID': biddingDealerId?.toString()\r\n }\r\n })\r\n}\r\n\r\nexport const getGenericPremium = async (request: IVehicleFeeRequest, biddingDealerId?: number) => {\r\n return postAsync('/api/vehicle/GetGenericPremium', {\r\n body: request,\r\n headers: {\r\n 'X-Actuos-BuyerID': biddingDealerId?.toString()\r\n }\r\n })\r\n}\r\n\r\nexport const bidOnVehicle = async (request: IBidOnVehicleRequest, biddingDealerId?: number) => {\r\n return postAsync>('/api/vehicle/BidOnVehicle', {\r\n body: request,\r\n headers: {\r\n 'X-Actuos-BuyerID': biddingDealerId?.toString()\r\n }\r\n })\r\n}\r\nexport const hideVehicleBidRow = async (request: IAuctionInfo) => {\r\n return postAsync>('/api/vehicle/HideVehicleBidRow', {\r\n body: request\r\n })\r\n}\r\n\r\nexport const getVehicleInformation = async (vehicleInstanceID: number) => {\r\n return postAsync('/api/vehicle/GetVehicleByID', {\r\n body: vehicleInstanceID\r\n })\r\n}\r\n\r\nexport const loadDayFiles = async (searchID?: number | string) => {\r\n return postAsync(`/api/vehicle/LoadDayFiles?${toUrlSearchParams({ searchID: searchID })}`)\r\n}\r\n\r\nexport const saveSearch = async (data: SavedSearchReceive) => {\r\n return postAsync('/api/vehicle/SaveSearch', {\r\n body: data\r\n })\r\n}\r\n\r\nexport const getSellerDisclosureByID = async (vehicleInstanceID: number) => {\r\n return postAsync('/api/vehicle/GetSellerDisclosureByID', {\r\n body: vehicleInstanceID\r\n })\r\n}\r\n\r\nexport const getVDPConfigurationDetails = () => {\r\n return fetchAsync(`/api/vehicle/GetVDPConfigurationDetails`)\r\n}\r\n\r\nexport const getVehicleHistoryByID = async (vehicleInstanceID: number) => {\r\n return postAsync('/api/vehicle/GetVehicleHistoryByID', {\r\n body: vehicleInstanceID\r\n })\r\n}\r\n\r\nexport const getDeliveryInfo = async (request: IDeliveryQuote) => {\r\n return postAsync('/api/vehicle/GetDeliveryInfo', {\r\n body: request\r\n })\r\n}\r\n\r\nexport const getMultipleVehicleDocuments = async (...vehicleInstanceIDs: number[]) => {\r\n return fetchAsync(\r\n `/api/vehicle/GetMultipleVehicleInstanceDocuments?${vehicleInstanceIDs\r\n .map((id) => `vehicleInstanceIDs[]=${id}`)\r\n .join('&')}&documentTypeID=${DocumentType.ExternalNoteAttachment}`\r\n )\r\n}\r\n","import styled from 'styled-components'\r\nimport { Button, Container } from 'react-bootstrap'\r\n\r\nimport { gridBreakPoints } from 'common/theme'\r\nexport const StyledHomeSectionHeaderTitle = styled.div<{ clickable: boolean }>`\r\n padding: 1.6rem 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n font-weight: 500;\r\n font-size: 1.8rem;\r\n text-align: center;\r\n\r\n height: 100%;\r\n\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n color: ${({ theme }) => theme.colors.backgroundText};\r\n border-radius: 0.3rem;\r\n box-shadow: 0 0.2rem 0.2rem rgba(0, 0, 0, 0.25);\r\n :hover {\r\n ${(props) => props.clickable && 'cursor: pointer'}\r\n }\r\n .icon {\r\n margin-right: 0.5rem;\r\n }\r\n`\r\nStyledHomeSectionHeaderTitle.displayName = 'StyledHomeSectionHeaderTitle'\r\n\r\nexport const StyledHomeSectionHeaderActionSection = styled.div`\r\n padding-right: 1.75rem;\r\n\r\n /* v For the divider between section v */\r\n &:not(:first-child) {\r\n position: relative;\r\n\r\n &:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 15%;\r\n width: 0.2rem;\r\n height: 70%;\r\n background: #d4d4d4;\r\n border-radius: 2.5rem;\r\n\r\n padding: 1rem 0;\r\n }\r\n\r\n & > .btn-link:first-child {\r\n margin-left: 2rem;\r\n }\r\n }\r\n\r\n &:not(:last-child) {\r\n & > .btn-link:last-child {\r\n margin-right: 2rem;\r\n }\r\n }\r\n /* ^ For the divider between section ^ */\r\n`\r\nStyledHomeSectionHeaderActionSection.displayName = 'StyledHomeSectionHeaderActionSection'\r\n\r\nexport const StyledHomeSectionHeaderBanner = styled.div`\r\n &,\r\n & > div {\r\n height: 100%;\r\n }\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n /* Styles for mobile view */\r\n @media (max-width: ${gridBreakPoints.md}) {\r\n margin: 0.25rem 0;\r\n padding: 0.75rem 0.75rem;\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n flex-direction: column;\r\n gap: 1rem;\r\n\r\n ${StyledHomeSectionHeaderActionSection} {\r\n &:before {\r\n visibility: hidden;\r\n }\r\n\r\n &:not(:first-child) {\r\n & > .btn-link:first-child {\r\n margin-left: 0;\r\n }\r\n }\r\n\r\n &:not(:last-child) {\r\n & > .btn-link:last-child {\r\n margin-right: 0;\r\n }\r\n }\r\n }\r\n }\r\n`\r\nStyledHomeSectionHeaderBanner.displayName = 'StyledHomeSectionHeaderBanner'\r\n\r\nexport const StyledHomeSectionHeaderLink = styled(Button).attrs(({ className, variant, href }) => ({\r\n className: `d-flex align-items-center ${className ?? ''}`.trim(),\r\n variant: variant ?? 'link',\r\n href: href ?? null\r\n}))`\r\n font-size: 1.6rem;\r\n font-weight: 350;\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n\r\n &:hover,\r\n &:active {\r\n text-decoration: none;\r\n }\r\n\r\n &:focus,\r\n &.focus {\r\n box-shadow: none;\r\n text-decoration: none;\r\n }\r\n\r\n &.active {\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: bold;\r\n position: relative;\r\n\r\n &:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n bottom: -0.1rem;\r\n width: 100%;\r\n height: 0.5rem;\r\n background: ${({ theme }) => theme.colors.primary};\r\n border-radius: 2.5rem;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledHomeSectionHeader = styled(Container).attrs({\r\n fluid: true\r\n})`\r\n border-radius: 0.3rem;\r\n\r\n box-shadow: 0 -0.025rem 0.2rem rgba(0, 0, 0, 0.15), 0 0.3rem 0.2rem rgba(0, 0, 0, 0.125);\r\n /* v Margin to create some space for the box-shadow v */\r\n margin-top: 0.1rem;\r\n margin-bottom: 0.3rem;\r\n /* ^ Margin to create some space for the box-shadow ^ */\r\n .header-col {\r\n height: 100%;\r\n }\r\n\r\n @media (min-width: ${gridBreakPoints.xl}) {\r\n .header-toggle {\r\n min-width: 20%;\r\n }\r\n\r\n ${StyledHomeSectionHeaderTitle} {\r\n padding-left: 1.4rem;\r\n }\r\n }\r\n\r\n @media print {\r\n -webkit-print-color-adjust: exact;\r\n\r\n a {\r\n text-decoration: none;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledHomeSectionBody = styled.div`\r\n padding: 2rem 5rem;\r\n background-color: ${({ theme }) => theme.colors.sectionContentBackgroundColor};\r\n min-height: 15rem;\r\n position: relative;\r\n`\r\nexport const StyledRowInventory = styled.div`\r\n display: grid;\r\n grid-template-columns: repeat(5, 1fr);\r\n column-gap: 5rem;\r\n row-gap: 2rem;\r\n @media (max-width: ${gridBreakPoints.md}) {\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n grid-template-columns: 1fr;\r\n }\r\n`\r\n\r\nexport const StyledBuyerActivitySection = styled(StyledHomeSectionBody)`\r\n background-color: #fff;\r\n`\r\n\r\nexport const StyledHomeSection = styled.div`\r\n overflow: hidden;\r\n`\r\n\r\nStyledHomeSection.displayName = 'StyledHomeSection'\r\n","import { zIndex } from 'common/constants'\r\nimport { PropsWithChildren } from 'react'\r\nimport { Spinner } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\ninterface IProps {\r\n variant?: string\r\n overlay?: boolean\r\n}\r\n\r\ninterface IStyledLoaderProps {\r\n overlay?: boolean\r\n}\r\n\r\nexport const StyledLoader = styled.div`\r\n ${({ overlay }) =>\r\n overlay &&\r\n ` position: absolute;\r\n left: calc(50% - 1rem);\r\n top: calc(50% - 1rem);\r\n `}\r\n`\r\n\r\nexport const Loader = ({ children, overlay, variant = 'primary' }: PropsWithChildren) => {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport const StyledPageLoader = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n z-index: ${zIndex.loader};\r\n`\r\n\r\nexport const OverlayLoader = () => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { cardStyle } from 'components/Share/Card.styled'\r\nimport { VehicleContext } from 'modules/DealerVehicleManagement/VehicleContext'\r\nimport { PropsWithChildren, useContext } from 'react'\r\nimport LazyLoad from 'react-lazyload'\r\nimport styled from 'styled-components'\r\nimport { StockwaveData } from '../Stockwave/StockwaveData'\r\n\r\ninterface IProps {\r\n className?: string\r\n}\r\n\r\nexport const StyledVehicleLoader = styled(LazyLoad as any)`\r\n ${cardStyle}\r\n`\r\n\r\nexport const VehicleLoader = ({ children, className }: PropsWithChildren) => {\r\n const { vehicleData } = useContext(VehicleContext)\r\n const {\r\n vehicle: { VIN }\r\n } = vehicleData\r\n\r\n return (\r\n \r\n {VIN}\r\n \r\n \r\n }\r\n once\r\n >\r\n {children}\r\n \r\n )\r\n}\r\n","import { largeScreen, smallScreen } from 'common/theme'\r\nimport { VehicleLoader } from 'modules/VehicleList/VehicleLoader'\r\nimport { Col, Tooltip, Row, Button } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledTitleSection = styled(Row)``\r\n\r\nexport const StyledVehicleDetailsCard = styled(VehicleLoader)`\r\n background-color: #fff;\r\n flex: 1;\r\n border: 0.1rem solid #ddd;\r\n padding: 1rem 1rem 1rem 1rem;\r\n margin-top: 0;\r\n margin-bottom: 1.6rem;\r\n min-height: 25rem;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n\r\n > .row {\r\n column-gap: 1.5rem;\r\n }\r\n\r\n .vehicle-detail-image-section {\r\n max-width: 40rem;\r\n position: relative;\r\n\r\n .custom-control.custom-checkbox {\r\n position: absolute;\r\n margin: 0.5rem;\r\n }\r\n .nav-link {\r\n padding: 0;\r\n }\r\n\r\n .stockwave-light-bulb-container {\r\n margin-left: 4rem;\r\n }\r\n }\r\n\r\n .carfax-advanced-section {\r\n margin-top: 0.8rem;\r\n @media (max-width: ${smallScreen}) {\r\n padding-left: inherit;\r\n }\r\n }\r\n\r\n ${StyledTitleSection} {\r\n display: flex;\r\n align-items: center;\r\n padding: 0 1.5rem;\r\n margin: 0;\r\n\r\n a {\r\n padding: 0;\r\n font-size: 2.4rem;\r\n color: ${({ theme }) => theme.colors.primary};\r\n\r\n margin-right: 0.8rem;\r\n font-weight: 600;\r\n\r\n &:active,\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.linkColorLight};\r\n }\r\n }\r\n\r\n div[class^='col'] {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n @media screen and (max-width: mediumScreen) {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n }\r\n\r\n .link-col {\r\n color: ${(props) => props.theme.colors.primary};\r\n\r\n display: flex;\r\n align-items: center;\r\n gap: 1.2rem;\r\n\r\n a {\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n opacity: 0.5;\r\n }\r\n }\r\n\r\n .icon {\r\n margin-right: 0.4rem;\r\n }\r\n }\r\n\r\n .vehicle-info {\r\n margin-bottom: 1rem;\r\n gap: 0.8rem 0;\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n\r\n a {\r\n text-decoration: underline;\r\n }\r\n\r\n @media screen and (min-width: mediumScreen) {\r\n .vehicle-properties {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n }\r\n }\r\n\r\n .true-frame-link {\r\n max-width: 8rem;\r\n\r\n &:empty {\r\n display: none;\r\n }\r\n }\r\n\r\n .carfax-link {\r\n font-weight: 500;\r\n color: ${({ theme }) => theme.colors.linkColorLight};\r\n text-transform: uppercase;\r\n\r\n .icon {\r\n margin-right: 0;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledCarfaxCol = styled(Col)`\r\n display: flex;\r\n\r\n @media (max-width: ${largeScreen}) {\r\n width: 100%;\r\n }\r\n`\r\n\r\nexport const StyledRibbonContainer = styled.div`\r\n & span:not(:last-child) .ribbon {\r\n margin-right: 1.5rem;\r\n }\r\n\r\n & span .ribbon {\r\n margin-left: 0;\r\n }\r\n\r\n .ribbon-title {\r\n filter: brightness(0.75);\r\n }\r\n`\r\n\r\nexport const StyledInfoLabel = styled.span`\r\n font-weight: 700;\r\n\r\n margin-right: 0.375rem;\r\n`\r\nexport const StyledToolTip = styled(Tooltip)`\r\n .arrow {\r\n display: none;\r\n }\r\n .tooltip-inner {\r\n background-color: #fff;\r\n color: black;\r\n border: 0.1rem solid #ddd;\r\n border-radius: 0.5rem;\r\n max-width: 30rem;\r\n }\r\n`\r\n\r\nexport const VehicleVin = styled.div`\r\n font-size: 1.6rem;\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n margin-bottom: 1rem;\r\n`\r\n\r\nexport const PaperClipButton = styled(Button)`\r\n margin-left: 1rem;\r\n\r\n .fa-paperclip {\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n`\r\nexport const TitleVDP = styled.span`\r\n padding: 0;\r\n font-size: 2.4rem;\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n\r\n margin-right: 0.8rem;\r\n font-weight: 600;\r\n`\r\n","import { DEFAULT_PAGE_SIZE } from 'common/constants'\r\n\r\nexport enum SortOrder {\r\n ASC = 1,\r\n DESC = 2\r\n}\r\n\r\nexport enum Operation {\r\n EqualTo = 1,\r\n LessThan = 2,\r\n GreaterThan = 3,\r\n LessThanEqualTo = 4,\r\n GreaterThanEqualTo = 5,\r\n Between = 6,\r\n Contains = 7\r\n}\r\nexport interface ISortBy {\r\n Name: string\r\n SortOrder?: SortOrder\r\n Value: string\r\n DBFieldName?: string\r\n}\r\n\r\nexport interface IFilterOptions {\r\n IsReserveMetVehicles: boolean\r\n IsRecentlyAddedVehicles: boolean\r\n}\r\nexport interface IBaseResponse {\r\n Success: boolean\r\n ErrorMessages: string[]\r\n Value: T\r\n}\r\n\r\nexport interface IBaseCollectionResponse {\r\n TotalPages: number\r\n TotalRecords: number\r\n Success: boolean\r\n PageNumber: number\r\n PageSize: number\r\n SortOptions: ISortBy[]\r\n SortBy: ISortBy\r\n ErrorMessages: string[]\r\n Items: T[]\r\n}\r\n\r\nexport interface IBaseCollectionRequest {\r\n PageNumber: number\r\n PageSize: number\r\n SortBy?: ISortBy\r\n FilterOptions?: IFilterOptions\r\n}\r\nexport class BaseCollectionRequest implements IBaseCollectionRequest {\r\n PageNumber: number = 0\r\n PageSize: number = DEFAULT_PAGE_SIZE\r\n SortBy?: ISortBy\r\n FilterOptions: IFilterOptions\r\n}\r\nexport interface DealershipDropdownData extends IDropdownData {\r\n BuyerTypeID: number\r\n}\r\nexport interface IDropdownData {\r\n Code?: string\r\n Description: string\r\n FieldDescription: string\r\n ID: number\r\n}\r\n\r\nexport interface Buyer extends IDropdownData {}\r\n\r\nexport interface ILoadingModel {\r\n isLoading: boolean\r\n errorMessage: string\r\n}\r\n\r\nexport interface IBaseRequest {\r\n ID?: number\r\n}\r\n\r\nexport const DtmPageDetails = {\r\n VDP: 'VDP',\r\n SRP: 'SRP'\r\n}\r\nexport const DtmPageRollup = {\r\n HomePage: 'HomePage'\r\n}\r\n\r\nexport interface IFilterOptions {\r\n IsReserveMetVehicles: boolean\r\n IsRecentlyAddedVehicles: boolean\r\n}\r\n\r\nexport interface IBaseCollectionRequest {\r\n PageNumber: number\r\n PageSize: number\r\n SortBy?: ISortBy\r\n FilterOptions?: IFilterOptions\r\n}\r\n\r\nexport interface IBaseCollectionResponse {\r\n TotalPages: number\r\n TotalRecords: number\r\n Success: boolean\r\n PageNumber: number\r\n PageSize: number\r\n SortOptions: ISortBy[]\r\n SortBy: ISortBy\r\n ErrorMessages: string[]\r\n Items: T[]\r\n}\r\n\r\nexport class FilterOptions implements IFilterOptions {\r\n IsReserveMetVehicles: boolean = false\r\n IsRecentlyAddedVehicles: boolean = false\r\n}\r\n\r\nexport interface IApiState {\r\n data?: T\r\n error?: any\r\n loading?: boolean\r\n refetch?: () => void\r\n}\r\n\r\nexport const enum AdvertType {\r\n NonPromotional = 'Non Promotional',\r\n Promotional = 'Promotional',\r\n Document = 'Document'\r\n}\r\n\r\nexport interface CarouselImage {\r\n ImageURL: string\r\n AdvertType?: string\r\n Order?: number\r\n Promotion?: string\r\n DocumentName?: string\r\n Description?: string\r\n DocumentURL?: string\r\n}\r\n\r\nexport interface FaqItem {\r\n QuestionGroupID: number\r\n QuestionID: number\r\n QuestionGroupName: string\r\n Question: string\r\n Content: string\r\n QuestionGroupOrder: number\r\n QuestionOrder: number\r\n}\r\n\r\nexport interface GroupedFaq {\r\n QuestionGroupID: number\r\n QuestionGroupName: string\r\n Questions: FaqItem[]\r\n}\r\nexport interface IOption {\r\n value?: any\r\n label?: any\r\n key?: any\r\n item?: T\r\n}\r\n\r\nexport interface ISystemSetting {\r\n Value: string\r\n ValueString: string\r\n}\r\n\r\nexport interface VehicleDocument {\r\n ID: number\r\n FileName: string\r\n DocumentURL: string\r\n DocumentDescription?: string\r\n VehicleInstanceID: number\r\n}\r\n\r\nexport enum DocumentFileType {\r\n PDF = 'PDF',\r\n Image = 'Image',\r\n Video = 'Video'\r\n}\r\n\r\nexport enum DocumentType {\r\n /// \r\n /// Complaints\r\n /// \r\n Complaints = 1,\r\n /// \r\n /// Delivery\r\n /// \r\n Delivery = 2,\r\n /// \r\n /// Emissions\r\n /// \r\n Emissions = 3,\r\n /// \r\n /// European COCCVO document\r\n /// \r\n EuropeanCOCCVOdocument = 4,\r\n /// \r\n /// Finance\r\n /// \r\n Finance = 5,\r\n /// \r\n /// Handover Certificate\r\n /// \r\n HandoverCertificate = 6,\r\n /// \r\n /// Inspection\r\n /// \r\n Inspection = 7,\r\n /// \r\n /// Other\r\n /// \r\n Other = 8,\r\n /// \r\n /// Service\r\n /// \r\n Service = 9,\r\n /// \r\n /// Vehicle Registration\r\n /// \r\n VehicleRegistration = 10,\r\n /// \r\n /// VSC\r\n /// \r\n VSC = 11,\r\n /// \r\n /// The vehicle return receipt\r\n /// \r\n VehicleReturnReceipt = 12,\r\n /// \r\n /// The vehicle purchase receipt\r\n /// \r\n VehiclePurchaseReceipt = 13,\r\n /// \r\n /// The gate release pass\r\n /// \r\n GateReleasePass = 14,\r\n /// \r\n /// The purchase confirmation\r\n /// \r\n PurchaseConfirmation = 15,\r\n /// \r\n /// The bill of sale\r\n /// \r\n BillOfSale = 16,\r\n PayoffAuth = 18,\r\n Disclosure = 19,\r\n AcceptedDisclosure = 20,\r\n EWTDisclosure = 21,\r\n ExternalNoteAttachment = 22\r\n}\r\n","import { gridBreakPoints } from 'common/theme'\r\nimport { Col, Row } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom'\r\nimport styled from 'styled-components'\r\n\r\nexport const RightContainer = styled(Col)`\r\n .main-img {\r\n max-height: 100vh;\r\n object-fit: cover;\r\n object-position: center;\r\n }\r\n .img-corner-right {\r\n position: absolute;\r\n border: 0;\r\n top: 0;\r\n right: 0;\r\n height: 6.5%;\r\n margin-right: 4%;\r\n margin-top: 4%;\r\n }\r\n\r\n .img-corner-left {\r\n position: absolute;\r\n border: 0;\r\n top: 0;\r\n left: 0;\r\n height: 9%;\r\n margin-left: 4%;\r\n margin-top: 4%;\r\n }\r\n`\r\nexport const LayoutContainer = styled(Row)`\r\n font-family: ${(props) => props.theme.fonts.fontBase};\r\n font-size: 1.4rem;\r\n margin-right: 0;\r\n margin-left: 0;\r\n input {\r\n font-size: 1.4rem;\r\n }\r\n\r\n input:-webkit-autofill,\r\n input:-webkit-autofill:hover,\r\n input:-webkit-autofill:focus,\r\n input:-webkit-autofill:active {\r\n -webkit-box-shadow: 0 0 0 3rem white inset;\r\n box-shadow: 0 0 0 3rem white inset;\r\n background: #fff;\r\n }\r\n`\r\nexport const StyledFooter = styled.div`\r\n font-size: 1rem;\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n bottom: 0;\r\n width: 100%;\r\n margin-right: 0;\r\n margin-left: 0;\r\n padding-bottom: 2.5rem;\r\n padding-left: 3rem;\r\n padding-right: 0.5rem;\r\n`\r\n\r\nexport const LinkBaseStyled = styled(Link)`\r\n text-align: center;\r\n display: block;\r\n font-size: 1.4rem;\r\n color: ${({ theme }) => theme.colors.linkColor};\r\n font-weight: 500;\r\n padding-bottom: 0.5rem;\r\n`\r\n\r\nexport const BackToLoginLink = styled(LinkBaseStyled)``\r\n\r\nexport const ClickHereLink = styled(Link)`\r\n color: ${({ theme }) => theme.colors.linkColor};\r\n`\r\n\r\nexport const StyledLoginFormFooter = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n margin-top: 2rem;\r\n align-items: center;\r\n`\r\n\r\nexport const LoginTitle = styled.h1`\r\n color: ${({ theme }) => theme.colors.primary};\r\n text-transform: uppercase;\r\n font-size: 4.2rem;\r\n margin-bottom: 1.2rem;\r\n width: inherit;\r\n`\r\n\r\nexport const ForgotLink = styled.div`\r\n display: flex;\r\n justify-content: end;\r\n margin-bottom: 2rem;\r\n a {\r\n color: ${({ theme }) => theme.colors.linkColor};\r\n }\r\n`\r\n\r\nexport const RightFooterContainer = styled(Col)`\r\n display: flex;\r\n justify-content: end;\r\n margin-right: 2rem;\r\n`\r\nexport const LeftFooterContainer = styled(Col)`\r\n display: flex;\r\n align-items: center;\r\n span {\r\n font-size: 1rem;\r\n }\r\n`\r\n\r\nexport const StyledLeftContainer = styled(Row)`\r\n justify-content: center;\r\n`\r\n\r\nexport const FormLoginBody = styled.div`\r\n width: 100%;\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n align-self: start;\r\n\r\n .btn-primary:disabled {\r\n background-color: ${({ theme }) => theme.colors.colorButtonDisabled};\r\n border-color: ${({ theme }) => theme.colors.colorButtonDisabled};\r\n }\r\n\r\n .text-input-password {\r\n margin-bottom: 0.1rem !important;\r\n }\r\n`\r\n\r\nexport const LoginContainerColStyled = styled(Col)`\r\n display: flex;\r\n align-self: flex-end;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n min-height: 100vh;\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n min-height: 80vh;\r\n }\r\n`\r\n","import { isReactRoutes } from 'common/routes'\r\nimport React, { PropsWithChildren } from 'react'\r\nimport { NavLink as BsNavLink } from 'react-bootstrap'\r\nimport { Link as ReactLink } from 'react-router-dom'\r\nconst classNames = require('classnames')\r\n\r\ninterface IProps extends PropsWithChildren<{}> {\r\n to: string\r\n className?: string\r\n onClick?: (e?: any) => void\r\n}\r\nexport const NavLink = ({ to, children, className, ...props }: IProps) => {\r\n const isReactPath = isReactRoutes(to)\r\n\r\n return isReactPath ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const Link = ({ to, children, className, ...props }: IProps) => {\r\n const isReactPath = isReactRoutes(to)\r\n\r\n return isReactPath ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\ninterface IProps {\r\n value: any\r\n as?: React.ElementType\r\n}\r\nexport const HTMLText = ({ value, as: Component = 'div' }: IProps) => {\r\n return \r\n}\r\n","import { useEffect } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation()\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [pathname])\r\n\r\n return null\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const BMWCustomStyle = styled.div``\r\n","import { DefaultTheme } from 'styled-components'\r\n\r\nexport const theme: DefaultTheme = {\r\n colors: {\r\n primary: '#173B68',\r\n primaryDarken: '#0e233e',\r\n secondary: '#E3E4E5',\r\n tableStriped: '#edf8fb',\r\n tableBorder: '#dee2e6',\r\n linkColor: '#4270d2',\r\n linkColorLight: '#0083c6',\r\n inputBorder: '#d4d4d4',\r\n fontColor: '#5b5b5b',\r\n inputBackgroundColor: '#ffffff',\r\n mobileMenuBackground: '#f4f4f4',\r\n sectionContentBackgroundColor: '#f6f6f6',\r\n borderInput: '1px solid #d4d4d4',\r\n infoColor: '#6a8c9c',\r\n successColor: '#26ad77',\r\n warningColor: '#f90',\r\n dangerColor: '#b11926',\r\n ribbonInfoBackgroundColor: '#dae2e6',\r\n ribbonSuccessBackgroundColor: '#c9eadd',\r\n ribbonWarningBackgroundColor: '#ffe5bf',\r\n ribbonDangerBackgroundColor: '#ebc5c9',\r\n backgroundText: 'white',\r\n colorTextModal: '#f2dede',\r\n colorButtonDisabled: '#444',\r\n switchBackgroundColor: '#6f6f6f',\r\n headerFontColor: '#494949',\r\n defaultDealerDeactive: '#A94442',\r\n incentiveHeaderColor: '#3d6a3c',\r\n dropdownHoverColor: '#deebff',\r\n incentiveHeaderHoverColor: '#39a937',\r\n modalHeader: '#818181',\r\n carfaxBackground: '#3777bc',\r\n goodTireColor: '#406a3b',\r\n normalTireColor: '#e3c35e',\r\n badTireColor: '#ba0000',\r\n issueColor: '#b11926'\r\n },\r\n logo: {\r\n left: 'vendor-main-logo.png',\r\n right: 'site_title-new.png?version=2'\r\n },\r\n layout: {\r\n header: {\r\n leftLogo: '',\r\n rightLogo: ''\r\n }\r\n },\r\n fonts: {\r\n fontBase: 'BMWGroup Condensed',\r\n fontRegular: 'BMWGroup Regular'\r\n }\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const NissanCustomStyle = styled.div``\r\n","import { merge } from 'lodash'\r\nimport { DefaultTheme } from 'styled-components'\r\nimport { theme as defaultTheme } from '../BMW/theme'\r\n\r\nexport const theme: DefaultTheme = merge({}, defaultTheme, {\r\n colors: {\r\n primary: '#c3002f',\r\n tableStriped: '#edf8fb',\r\n tableBorder: '#dee2e6'\r\n },\r\n logo: {\r\n left: 'vendor-main-logo.png',\r\n right: 'site_title-new.png?version=2'\r\n }\r\n})\r\n","import { BMW_VENDOR_CODE, NISSAN_VENDOR_CODE } from 'common/constants'\r\nimport { BMWCustomStyle } from 'core/skins/BMW/custom'\r\nimport { theme as BMWTheme } from 'core/skins/BMW/theme'\r\nimport { NissanCustomStyle } from 'core/skins/NISSAN/custom'\r\nimport { theme as NISSANTheme } from 'core/skins/NISSAN/theme'\r\nimport { PropsWithChildren } from 'react'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { createGlobalStyle, ThemeProvider } from 'styled-components'\r\nimport shallow from 'zustand/shallow'\r\n\r\nconst getVendorTheme = (code: string) => {\r\n switch (code) {\r\n case BMW_VENDOR_CODE:\r\n return BMWTheme\r\n case NISSAN_VENDOR_CODE:\r\n return NISSANTheme\r\n default:\r\n return BMWTheme\r\n }\r\n}\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n`\r\n\r\nexport const PortalThemeProvider = ({ children }: PropsWithChildren) => {\r\n const vendor = useGlobalStore((state) => state.vendor, shallow)\r\n\r\n const theme = getVendorTheme(vendor?.Code)\r\n let RootComponent = BMWCustomStyle\r\n\r\n switch (vendor?.Code) {\r\n case 'NISUS001':\r\n RootComponent = NissanCustomStyle\r\n break\r\n }\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { useEffect } from 'react'\r\nimport { useSignalRStore } from 'store/useSignalRStore'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\n\r\nconst useNotification = () => {\r\n const { connectionID, connect, subscribe, susbcribeEvents } = useSignalRStore((state) => state)\r\n const { getBaseVehicle } = useVehicleStore((state) => state)\r\n const vehicleIds = useVehicleStore((state) => state.vehicles.map((item) => item.vehicle.InstanceID))\r\n useEffect(() => {\r\n connect()\r\n susbcribeEvents()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!connectionID) {\r\n return\r\n }\r\n\r\n subscribe(vehicleIds)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [connectionID])\r\n\r\n useEffect(() => {\r\n async function subscribeUpdateVehicle() {\r\n try {\r\n $.connection.notificationHub.off('updateVehicle').on('updateVehicle', getBaseVehicle)\r\n } catch (error) {\r\n console.error('SignalR: Error trying to subscribe to notification hub')\r\n }\r\n }\r\n\r\n if (connectionID) {\r\n subscribeUpdateVehicle()\r\n }\r\n\r\n return () => {\r\n $.connection.notificationHub.off('updateVehicle')\r\n }\r\n // We use dispatch so the callback is always a constant, so we don't need to watch for changes\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [connectionID])\r\n}\r\n\r\nexport default useNotification\r\n","import { Alert } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\nimport { zIndex } from 'common/constants'\r\nexport const StyledAlertNotification = styled(Alert)`\r\n z-index: ${zIndex.stickyAlert};\r\n`\r\n","import { useSignalRStore } from 'store/useSignalRStore'\r\nimport shallow from 'zustand/shallow'\r\nimport { StyledAlertNotification } from './AlertNotification.styled'\r\n\r\nexport const AlertNotification = () => {\r\n const { showConnectionAlert, setShowConnectionAlert } = useSignalRStore((state) => state, shallow)\r\n return (\r\n <>\r\n {showConnectionAlert && (\r\n setShowConnectionAlert(false)}\r\n dismissible\r\n className=\"mb-0 sticky-top\"\r\n >\r\n

\r\n Connection to real time bid information has been lost. Please\r\n window.location.reload()}>\r\n  click here \r\n \r\n to reload this page\r\n

\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Modal } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const HeaderStyled = styled(Modal.Header)`\r\n font-size: 1.6rem;\r\n`\r\n","import { Modal } from 'react-bootstrap'\r\nimport { HeaderStyled } from './LinkNameModal.styled'\r\n\r\ninterface ILinkNameModal {\r\n show: boolean\r\n handleClose: () => void\r\n bodyText: string\r\n}\r\n\r\nexport const LinkNameModal = ({ show, handleClose, bodyText }: ILinkNameModal) => {\r\n return (\r\n <>\r\n \r\n {bodyText}\r\n \r\n \r\n )\r\n}\r\n","import { gridBreakPoints } from 'common/theme'\r\nimport { Button, Form } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const Title = styled.h2`\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-size: 3rem;\r\n margin-bottom: 1.2rem;\r\n`\r\n\r\nexport const ContactHeader = styled.h4`\r\n color: ${({ theme }) => theme.colors.primary};\r\n text-transform: uppercase;\r\n margin-bottom: 1.2rem;\r\n width: inherit;\r\n text-align: center;\r\n`\r\nexport const ContactBody = styled.p`\r\n font-size: 1.6rem;\r\n`\r\n\r\nexport const ContactUsBody = styled.div`\r\n background-color: ${({ theme }) => theme.colors.backgroundText};\r\n margin-left: 2.4rem;\r\n margin-right: 2.4rem;\r\n margin-bottom: 2.4rem;\r\n flex: 1;\r\n\r\n .alert {\r\n width: 100%;\r\n p {\r\n margin-bottom: 0;\r\n }\r\n button {\r\n width: 5rem;\r\n }\r\n }\r\n\r\n textarea {\r\n resize: none;\r\n }\r\n`\r\n\r\nexport const FormContainer = styled.div`\r\n flex-direction: column;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n .custom-select {\r\n background: none;\r\n }\r\n\r\n .custom-select-lg {\r\n height: calc(1.5em + 0.75rem + 0.2rem);\r\n padding: 0.375rem 0.75rem;\r\n font-size: 1.3rem;\r\n }\r\n`\r\n\r\nexport const FormBody = styled.div`\r\n width: 100%;\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n font-size: 1.4rem;\r\n\r\n a {\r\n display: inline-block;\r\n }\r\n\r\n button {\r\n display: inline-block;\r\n width: 10rem;\r\n margin-top: 0;\r\n }\r\n\r\n .was-validated .form-control:valid,\r\n .custom-select:valid,\r\n .custom-select.is-valid .form-control.is-valid {\r\n border-color: #ced4da;\r\n background-image: none;\r\n }\r\n\r\n .was-validated .custom-select:invalid,\r\n .custom-select.is-invalid {\r\n background: none;\r\n }\r\n`\r\n\r\nexport const GroupButtonStyled = styled(Form.Group)`\r\n float: right;\r\n`\r\n\r\nexport const SubmitButton = styled(Button)`\r\n height: 3rem;\r\n font-size: 1.4rem;\r\n width: 100%;\r\n margin-top: 1rem;\r\n line-height: 0.5;\r\n`\r\n\r\nexport const CancelButton = styled.div`\r\n margin-top: auto;\r\n margin-right: 2rem;\r\n display: inline-block;\r\n vertical-align: bottom;\r\n`\r\n\r\nexport const LinkNameStyled = styled(Form.Group)`\r\n color: ${({ theme }) => theme.colors.primary};\r\n text-align: center;\r\n font-size: 1.4rem;\r\n font-weight: 500;\r\n margin: auto;\r\n margin-top: 3rem;\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n margin-top: 0;\r\n }\r\n`\r\n\r\nexport const LinkNameText = styled.a`\r\n float: left;\r\n`\r\n","import { getContactUsDropDown, getValidatedVin, sendContactUsEmail } from 'apis/userApis'\r\nimport { MultiLanguageCode } from 'common/languageCodes'\r\nimport { LinkNameModal } from 'modules/ContactUs/LinkNameModal'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport parse from 'html-react-parser'\r\nimport { BreadcrumbMenu } from 'layouts/BreadcrumbMenu'\r\nimport { Layout } from 'layouts/Layout'\r\nimport { LinkBaseStyled } from 'layouts/LoginLayout.styled'\r\nimport { useEffect, useRef, useState } from 'react'\r\nimport { Alert, Col, Form, Row } from 'react-bootstrap'\r\nimport { FormattedMessage, useIntl } from 'react-intl'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { IContactReason, IContactUsData } from 'types/contactTypes'\r\nimport { validateVin } from 'utils/utils'\r\nimport shallow from 'zustand/shallow'\r\nimport {\r\n CancelButton,\r\n ContactBody,\r\n ContactHeader,\r\n ContactUsBody,\r\n FormBody,\r\n FormContainer,\r\n GroupButtonStyled,\r\n LinkNameStyled,\r\n LinkNameText,\r\n SubmitButton,\r\n Title\r\n} from './ContactUs.styled'\r\n\r\ninterface IAlertData {\r\n textAlert: string\r\n result: boolean\r\n isDisplay: boolean\r\n}\r\n\r\nexport const ContactUs = () => {\r\n const { data: contactReasons } = useFetch(() => getContactUsDropDown(vendor?.ID))\r\n const intl = useIntl()\r\n const [validated, setValidated] = useState(false)\r\n const [contactReasonOptions, setContactReasonOptions] = useState([])\r\n const [contactReason, setContactReason] = useState()\r\n const [userClaims, getLocalText, vendor] = useGlobalStore(\r\n (state) => [state.userClaims, state.getLocalText, state.vendor],\r\n shallow\r\n )\r\n const [displayVin, setDisplayVin] = useState(false)\r\n const [linkName, setLinkName] = useState('')\r\n const [linkText, setLinkText] = useState('')\r\n const [showModal, setShowModal] = useState(false)\r\n const handleClose = () => setShowModal(false)\r\n const handleShow = () => setShowModal(true)\r\n const [alertModel, setAlertModel] = useState({ result: false, textAlert: '', isDisplay: false })\r\n const vinRef = useRef()\r\n const { endPageLoad } = useDtmAnalytics()\r\n\r\n useEffect(() => {\r\n setContactReasonOptions(contactReasons?.ContactReasons)\r\n endPageLoad()\r\n }, [contactReasons])\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault()\r\n let vinDomElement = vinRef.current as any\r\n setValidated(true)\r\n const form = event.currentTarget\r\n const isValidVin = !contactReason?.IsArbitrate || (await checkVinValidity(vinDomElement))\r\n if (form.checkValidity() && isValidVin) {\r\n let request: IContactUsData = {\r\n contactReason: contactReason,\r\n firstName: form.firstName.value,\r\n lastName: form.lastName.value,\r\n email: form.email.value,\r\n phone: form.phone?.value,\r\n company: form.company?.value,\r\n message: form.message.value,\r\n vin: form.Vin?.value,\r\n vendorId: vendor?.ID\r\n }\r\n\r\n const result = await sendContactUsEmail(request)\r\n\r\n if (result) {\r\n setAlertModel({ result, textAlert: getLocalText('CONTACTUS_SUCCESS', 'CONTACTUS_SUCCESS'), isDisplay: true })\r\n } else {\r\n let data: IAlertData = {\r\n result: false,\r\n textAlert: getLocalText('EMAIL_FAILED', 'EMAIL_FAILED'),\r\n isDisplay: true\r\n }\r\n setAlertModel(data)\r\n }\r\n resetFormField(form)\r\n }\r\n return\r\n }\r\n\r\n const selectOptionChange = (e: any) => {\r\n let data = contactReasonOptions.find((x) => x.Reason === e.target.value)\r\n setContactReason(data)\r\n setLinkName(data?.LinkName)\r\n setLinkText(data?.LinkText)\r\n setDisplayVin(data?.IsArbitrate ? true : false)\r\n }\r\n\r\n const checkVinValidity = async (el: any) => {\r\n let vin = el?.value\r\n let isValid = false\r\n\r\n if (validateVin(vin)) {\r\n isValid = await getValidatedVin(vendor.ID, vin)\r\n }\r\n\r\n if (isValid) {\r\n el.setCustomValidity('')\r\n } else {\r\n el.setCustomValidity('invalid')\r\n }\r\n return isValid\r\n }\r\n\r\n const vinOnChange = async () => {\r\n let vinDomElement = vinRef.current as any\r\n if (validated && vinDomElement) {\r\n const isValidVin = await checkVinValidity(vinDomElement)\r\n }\r\n\r\n return\r\n }\r\n\r\n const resetFormField = (form: any) => {\r\n setValidated(false)\r\n\r\n form.firstName.value = ''\r\n form.lastName.value = ''\r\n form.email.value = ''\r\n form.phone.value = ''\r\n form.company.value = ''\r\n form.message.value = ''\r\n setContactReason({ ...contactReason, Reason: '' })\r\n\r\n if (contactReason?.IsArbitrate) {\r\n form.Vin.value = ''\r\n }\r\n }\r\n return (\r\n \r\n {showModal && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <HTMLText value={parse(intl.formatMessage({ id: MultiLanguageCode.CONTACT_US }))} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n {alertModel?.isDisplay && (\r\n setAlertModel({ ...alertModel, isDisplay: false })}\r\n dismissible\r\n >\r\n

{alertModel?.textAlert}

\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n Contact Reason\r\n selectOptionChange(e)}\r\n value={contactReason?.Reason}\r\n required\r\n >\r\n {contactReasonOptions?.map((option) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n {linkName && (\r\n \r\n {linkName}\r\n \r\n )}\r\n \r\n \r\n \r\n First Name*\r\n \r\n Please enter a first name\r\n \r\n\r\n \r\n Last Name*\r\n \r\n Please enter a last name\r\n \r\n \r\n \r\n \r\n Email*\r\n \r\n Please enter an email\r\n \r\n \r\n Company\r\n \r\n \r\n \r\n \r\n {displayVin && (\r\n \r\n VIN*\r\n \r\n Please enter a Vin\r\n \r\n )}\r\n\r\n \r\n Phone Number\r\n \r\n \r\n \r\n \r\n \r\n Message*\r\n \r\n Please enter a message\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import { gridBreakPoints } from 'common/theme'\r\nimport { Button } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledHomeSlideShow = styled.div`\r\n margin: 0 auto;\r\n\r\n .carousel-item:not(.active) {\r\n .carousel-caption {\r\n opacity: 0;\r\n }\r\n }\r\n\r\n .carousel-item {\r\n img {\r\n aspect-ratio: 4/1;\r\n object-fit: cover;\r\n object-position: center;\r\n margin: auto;\r\n animation: skeleton-loading 1s linear infinite alternate;\r\n }\r\n img.clickable {\r\n cursor: pointer;\r\n }\r\n @keyframes skeleton-loading {\r\n 0% {\r\n background: rgba(0, 0, 0, 0.1);\r\n }\r\n 100% {\r\n background: rgba(0, 0, 0, 0.4);\r\n }\r\n }\r\n }\r\n\r\n .carousel-inner {\r\n overflow: visible;\r\n }\r\n .carousel-control-next-icon,\r\n .carousel-control-prev-icon {\r\n background: none;\r\n height: unset;\r\n width: unset;\r\n }\r\n .carousel-control-prev {\r\n left: -4.4rem;\r\n width: 0;\r\n }\r\n .carousel-control-next {\r\n right: -4.4rem;\r\n width: 0;\r\n }\r\n .carousel-control-next-icon::after {\r\n content: '›';\r\n font-size: 7rem;\r\n font-weight: 500;\r\n color: #0070d2;\r\n }\r\n .carousel-control-prev-icon::before {\r\n content: '‹';\r\n font-size: 7rem;\r\n font-weight: 500;\r\n color: #0070d2;\r\n }\r\n .carousel-indicators {\r\n bottom: 0;\r\n }\r\n .carousel-indicators li {\r\n background-color: #808080;\r\n width: 4rem;\r\n border-radius: 0.2rem / 1.2rem;\r\n }\r\n .carousel-indicators .active {\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n }\r\n .carousel-caption {\r\n position: initial;\r\n font-size: 1.6rem;\r\n }\r\n`\r\nexport const StyledPromotion = styled.div`\r\n display: inline-block;\r\n position: relative;\r\n bottom: -4.5rem;\r\n color: #101010;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n padding: 0 2.4rem;\r\n padding-bottom: 2rem;\r\n span {\r\n word-wrap: break-word;\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n flex-direction: column;\r\n span {\r\n width: 100%;\r\n }\r\n }\r\n`\r\nexport const StyledSearch = styled(Button)`\r\n width: 10rem;\r\n font-size: 1.4rem;\r\n margin-left: 2.5rem;\r\n`\r\n","import { quickSearch } from 'apis/vehicleApis'\r\nimport { AVAILABLE_INVENTORY_INIT_QUERY } from 'common/constants'\r\nimport { ISearchFilterResult } from 'types/vehicleTypes'\r\nimport create from 'zustand'\r\n\r\nexport interface ISrpFiltersState {\r\n filters: ISearchFilterResult[]\r\n totalVehicles: number\r\n\r\n fetchFilters: () => Promise\r\n}\r\n\r\nexport const useSrpFiltersStore = create((set, get) => ({\r\n filters: [],\r\n totalVehicles: 0,\r\n\r\n fetchFilters: async () => {\r\n const resp = await quickSearch({ ...AVAILABLE_INVENTORY_INIT_QUERY })\r\n\r\n if (resp) {\r\n set((state) => ({ ...state, filters: [...resp.Data] as ISearchFilterResult[], totalVehicles: resp.TotalRecords }))\r\n }\r\n }\r\n}))\r\n","import { Carousel } from 'react-bootstrap'\r\nimport { LazyLoadImage } from 'react-lazy-load-image-component'\r\nimport { AdvertType, CarouselImage } from '../../types/baseTypes'\r\nimport { StyledHomeSlideShow, StyledPromotion, StyledSearch } from './SlideShow.styled'\r\nimport { Loader } from 'components/Loader'\r\nimport { BaseVehicleSearchCriteriaColumn, SessionStorageKey } from 'common/constants'\r\nimport { ISearchFilterResult } from 'types/vehicleTypes'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport { addDummyChildrenFilter, selectChildrenFilter } from 'common/helpers'\r\nimport { saveAs } from 'file-saver'\r\nimport { useSrpFiltersStore } from 'store/useSrpFiltersStore'\r\nimport { getCarouselImages } from 'apis/dashboardApis'\r\nimport shallow from 'zustand/shallow'\r\nimport { isAnyChildrenFilterExist } from '../../common/helpers'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { AppRoutes } from 'common/routes'\r\nimport { resetSRPFilter } from 'utils/menuUtils'\r\n\r\ninterface IProps {\r\n isFilterLoading: boolean\r\n}\r\n\r\nexport const SlideShow = ({ isFilterLoading }: IProps) => {\r\n const { filters } = useSrpFiltersStore((state) => state, shallow)\r\n const { loading, data } = useFetch(() => getCarouselImages())\r\n const history = useHistory()\r\n\r\n const handleRedirect = (ft?: ISearchFilterResult[]) => {\r\n resetSRPFilter()\r\n sessionStorage.setItem(SessionStorageKey.SEARCH_FILTERS, ft ? JSON.stringify(ft) : null)\r\n\r\n history.push(AppRoutes.SearchResult)\r\n }\r\n\r\n const clickHandler = (e: MouseEvent, item: CarouselImage) => {\r\n e.preventDefault()\r\n if (item.AdvertType === AdvertType.NonPromotional) return\r\n if (item.AdvertType === AdvertType.Promotional) {\r\n if (isAnyChildrenFilterExist(filters, 'Promotion', item.Promotion)) {\r\n selectChildrenFilter(filters, 'Promotion', item.Promotion)\r\n } else {\r\n addDummyChildrenFilter(\r\n filters,\r\n BaseVehicleSearchCriteriaColumn.Promotion,\r\n 'Promotion',\r\n 'promotion',\r\n item.Promotion\r\n )\r\n }\r\n handleRedirect(filters)\r\n } else {\r\n if (item.DocumentURL) saveAs(item.DocumentURL, item.DocumentName)\r\n }\r\n }\r\n\r\n return (\r\n \r\n 1}>\r\n {!loading ? (\r\n data?.map((item, index) => (\r\n \r\n }\r\n onClick={(e) => clickHandler(e, item)}\r\n className={`d-block w-100 h-100 ${item.AdvertType !== AdvertType.NonPromotional && 'clickable'}`}\r\n src={item.ImageURL}\r\n />\r\n \r\n {item.AdvertType !== AdvertType.NonPromotional && (\r\n \r\n {item.AdvertType === AdvertType.Promotional ? item.Promotion : item.Description}\r\n clickHandler(e, item)}>\r\n {item.AdvertType === AdvertType.Promotional ? 'Click Here' : 'Learn More'}\r\n \r\n \r\n )}\r\n \r\n \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 { Popover, Row } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\nexport const StyledModelFigureCaption = styled.p`\r\n font-size: 1.8rem;\r\n font-weight: 600;\r\n text-align: center;\r\n width: 100%;\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n\r\n & a {\r\n display: contents;\r\n font-size: 1.8rem;\r\n font-weight: 600;\r\n margin-left: 0.5rem;\r\n\r\n &:focus,\r\n &.focus {\r\n box-shadow: none;\r\n text-decoration: none;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledModelFigure = styled(Row).attrs(({ className }) => ({\r\n className: `h-100 ${className ?? ''}`.trim()\r\n}))`\r\n display: flex;\r\n justify-content: center;\r\n\r\n & > .col {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n img {\r\n object-fit: contain;\r\n /*\r\n * Make size a little bit smaller to prevent overlap\r\n * to siblings\r\n */\r\n width: 90%;\r\n }\r\n`\r\n\r\nexport const StyledPopover = styled(Popover)`\r\n box-shadow: 0 0.2rem 0.5rem rgb(0 0 0 / 25%);\r\n z-index: 1000;\r\n .car-tooltip-header {\r\n margin-bottom: 1rem;\r\n\r\n .model-type {\r\n margin-top: -0.75rem;\r\n font-size: 1.6rem;\r\n }\r\n }\r\n\r\n .car-tooltip-header span {\r\n display: block;\r\n }\r\n\r\n .popover-body {\r\n font-size: 1.4rem;\r\n }\r\n`\r\n\r\nexport const BodyStyled = styled.div`\r\n display: grid;\r\n grid-template-columns: auto auto auto;\r\n gap: 1.25rem;\r\n\r\n div > span {\r\n a {\r\n font-size: 1.4rem;\r\n display: contents;\r\n padding: 0;\r\n margin: 0;\r\n }\r\n\r\n display: contents;\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n`\r\n","import Image from 'react-bootstrap/Image'\r\nimport { IModelFigure, IModelYear } from '../../types/IModelFigure'\r\nimport { OverlayTrigger, Popover, Col, Row, Button } from 'react-bootstrap'\r\nimport { useEffect, useState } from 'react'\r\nimport { BMW_TEXT } from 'common/constants'\r\nimport { BodyStyled, StyledModelFigure, StyledModelFigureCaption, StyledPopover } from './ModelFigure.styled'\r\nimport defaultModel from 'images/bmw-logo-new.png'\r\n\r\nexport const ModelFigure = ({ imageUrl, modelType, make, onRedirect, total, ...props }: IModelFigure) => {\r\n const [yearFilter, setYearFilter] = useState()\r\n const [showtooltip, setShowtooltip] = useState(false)\r\n\r\n useEffect(() => {\r\n setYearFilter(props.modelYears)\r\n }, [props.modelYears])\r\n\r\n return (\r\n \r\n \r\n setShowtooltip(true)}\r\n onMouseLeave={() => setShowtooltip(false)}\r\n >\r\n 0}\r\n overlay={\r\n \r\n setShowtooltip(true)} onMouseLeave={() => setShowtooltip(false)}>\r\n
\r\n {make}\r\n \r\n {modelType}\r\n \r\n
\r\n \r\n {yearFilter?.map((yearModel, index) => (\r\n
\r\n {yearModel.year} \r\n \r\n \r\n {`(${yearModel.total})`}\r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n }\r\n >\r\n {imageUrl ? : }\r\n \r\n \r\n \r\n {modelType} \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledCountingText = styled.span`\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: 600;\r\n`\r\n","import { gridBreakPoints } from 'common/theme'\r\nimport styled from 'styled-components'\r\nimport { IToggleSwitchProps } from 'types/IToggleSwitchProps'\r\n\r\nexport const StyledToggleSwitchWrapper = styled.div.attrs({\r\n className: 'switch-wrapper'\r\n})`\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n margin-left: 1rem;\r\n margin-right: 2rem;\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n margin: auto 0;\r\n }\r\n\r\n label {\r\n margin-bottom: 0;\r\n }\r\n`\r\nStyledToggleSwitchWrapper.displayName = 'StyledToggleSwitchWrapper'\r\n\r\nexport const StyledToggleSwitch = styled.label.attrs({\r\n className: 'switch'\r\n})`\r\n cursor: pointer;\r\n\r\n position: relative;\r\n min-width: 5rem;\r\n height: 2.4rem;\r\n background: ${({ theme }) => theme.colors.switchBackgroundColor};\r\n border-radius: 2rem;\r\n padding: 0.4rem;\r\n transition: 200ms all;\r\n\r\n & > span {\r\n color: ${({ theme }) => theme.colors.switchBackgroundColor};\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n transition: 200ms all;\r\n position: absolute;\r\n width: 2rem;\r\n height: 2rem;\r\n border-radius: 2rem;\r\n top: 50%;\r\n left: 0.2rem;\r\n background: ${({ theme }) => theme.colors.backgroundText};\r\n transform: translate(0, -50%);\r\n }\r\n`\r\nStyledToggleSwitch.displayName = 'StyledToggleSwitch'\r\n\r\nexport const StyledToggleStatus = styled.label.attrs(({ className }) => ({\r\n className: `switch-status-text ${className}`.trim()\r\n}))`\r\n font-size: 1rem;\r\n`\r\nStyledToggleStatus.displayName = 'StyledToggleStatus'\r\n\r\nexport const StyledToggleInput = styled.input.attrs(\r\n ({ className }) =>\r\n ({\r\n className: `switch-input ${className ?? ''}`.trim(),\r\n type: 'checkbox'\r\n } as IToggleSwitchProps)\r\n)`\r\n opacity: 0;\r\n position: absolute;\r\n\r\n &:checked {\r\n & + ${StyledToggleSwitch} {\r\n background: ${({ theme }) => theme.colors.primary};\r\n\r\n & > span {\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: bold;\r\n transform: translate(2.6rem, -50%);\r\n }\r\n }\r\n\r\n & ~ ${StyledToggleStatus}.with-color {\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: bold;\r\n }\r\n }\r\n\r\n &:disabled {\r\n & + ${StyledToggleSwitch} {\r\n cursor: default;\r\n background: ${({ theme }) => theme.colors.switchBackgroundColor} !important;\r\n\r\n & > span {\r\n color: ${({ theme }) => theme.colors.fontColor} !important;\r\n }\r\n }\r\n\r\n & ~ ${StyledToggleStatus}.with-color {\r\n color: ${({ theme }) => theme.colors.fontColor} !important;\r\n }\r\n }\r\n`\r\nStyledToggleInput.displayName = 'StyledToggleInput'\r\n","import { ChangeEvent, useMemo, useState } from 'react'\r\nimport {\r\n StyledToggleSwitchWrapper,\r\n StyledToggleInput,\r\n StyledToggleSwitch,\r\n StyledToggleStatus\r\n} from './ToggleSwitch.styled'\r\n\r\nimport { uniqueId } from 'lodash'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons'\r\nimport { IToggleSwitchProps } from '../../types/IToggleSwitchProps'\r\n\r\nexport const ToggleSwitch = ({\r\n label,\r\n statusText = {\r\n true: 'ON\\u00a0',\r\n false: 'OFF'\r\n },\r\n showIcon,\r\n onToggle,\r\n checked,\r\n ...props\r\n}: IToggleSwitchProps) => {\r\n const [id] = useState(uniqueId('sw-'))\r\n const isLeftRight = useMemo(\r\n () => statusText && typeof statusText === 'object' && statusText.left && statusText.right,\r\n [statusText]\r\n )\r\n const isTrueFalse = useMemo(\r\n () => statusText && typeof statusText === 'object' && statusText.true && statusText.false,\r\n [statusText]\r\n )\r\n\r\n const handleChange = (e: ChangeEvent) => {\r\n if (props?.disabled) return\r\n\r\n onToggle && onToggle(e.target.checked)\r\n }\r\n\r\n return (\r\n \r\n {label && {label}}\r\n {typeof statusText === 'object' && isLeftRight && (\r\n \r\n {statusText.left}\r\n \r\n )}\r\n \r\n \r\n {showIcon && }\r\n \r\n {statusText && (\r\n \r\n {typeof statusText === 'object'\r\n ? isLeftRight\r\n ? statusText.right\r\n : isTrueFalse\r\n ? checked\r\n ? statusText.true\r\n : statusText.false\r\n : '' /* Fallback */\r\n : statusText}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { IModelGroupImages } from 'types/IModelFigure'\r\nimport { BodyStyles, IVehicleSearchDocument } from 'types/vehicleTypes'\r\nimport { MODEL_GROUP_MAPPER } from 'common/constants'\r\nimport { uniq } from 'lodash'\r\n\r\nexport const findModelGroupImage = (\r\n modelGroupImages: IModelGroupImages[],\r\n modelGroup: string,\r\n bodyStyle?: string,\r\n fuelType?: string\r\n) => {\r\n var groupImages = modelGroupImages?.filter((image) => image.ModelGroup === modelGroup)\r\n if (!groupImages?.length) {\r\n return\r\n }\r\n\r\n let match: IModelGroupImages\r\n\r\n if (fuelType) {\r\n match = groupImages.find(\r\n (image) =>\r\n image.FuelType ===\r\n (MODEL_GROUP_MAPPER.find((m) => m.DisplayText.toLowerCase() === fuelType.toLowerCase())?.Value ?? fuelType)\r\n )\r\n }\r\n\r\n if (!match && bodyStyle) {\r\n match = groupImages.find(\r\n (image) =>\r\n image.BodyStyle ===\r\n (MODEL_GROUP_MAPPER.find((m) => m.DisplayText.toLowerCase() === bodyStyle.toLowerCase())?.Value ?? bodyStyle)\r\n )\r\n }\r\n\r\n if (!match) {\r\n // Default to Sedan if not found, or return first image of the group\r\n match = groupImages.find((image) => image.BodyStyle === BodyStyles.Sedan) || groupImages[0]\r\n }\r\n\r\n return match?.ImageURL\r\n}\r\n\r\nexport const getSeriesBasedOnModelGroup = (\r\n modelGroupFilters: [string, IVehicleSearchDocument[]][],\r\n modelGroupName: string\r\n) => {\r\n const filter = modelGroupFilters.find(([modelGroup, _]) => modelGroup === modelGroupName)\r\n if (!filter) return []\r\n\r\n return uniq((filter[1] as IVehicleSearchDocument[]).map((d) => d.Series))\r\n}\r\n","import { useState, useEffect, useMemo, useReducer } from 'react'\r\nimport { HomeSectionHeader } from '../components/Header/HomeSectionHeader'\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport Collapse from 'components/Collapse'\r\nimport { ModelFigure } from 'components/ModelFigure/ModelFigure'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport { searchAvailableInventory } from 'apis/vehicleApis'\r\nimport { getModelGroupImages } from 'apis/dashboardApis'\r\nimport { ISearchFilterResult, IVehicleSearchDocument } from 'types/vehicleTypes'\r\nimport {\r\n StyledHomeSection,\r\n StyledHomeSectionBody,\r\n StyledHomeSectionHeaderLink,\r\n StyledHomeSectionHeaderActionSection,\r\n StyledRowInventory\r\n} from 'components/Header/HomeSectionHeader.styled'\r\nimport { StyledCountingText } from 'modules/AvailableInventory.styled'\r\nimport { useExpand } from 'hooks/useExpand'\r\nimport {\r\n AVAILABLE_INVENTORY_HEADING,\r\n AVAILABLE_INVENTORY_INIT_QUERY,\r\n AVAILABLE_INVENTORY_MAPPER,\r\n NO_NEW_INVENTORY_MESSAGE,\r\n GENERIC_NO_VEHICLE_AVAILABLE_MESSAGE,\r\n SessionStorageKey\r\n} from 'common/constants'\r\nimport { chain, isEmpty, keyBy, merge, values, cloneDeep } from 'lodash'\r\nimport {\r\n hasAnyChilrenFilter,\r\n isAnyChilrenFiltersSelected,\r\n processVehicleSearchDocumentResult,\r\n resetChildrenFilters,\r\n selectChildrenFilter\r\n} from 'common/helpers'\r\n\r\nimport { ToggleSwitch } from 'components/Switch'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faCar } from '@fortawesome/free-solid-svg-icons'\r\nimport { DtmComponentName, getInventoryClickName } from 'utils/analyticsUtils'\r\nimport { findModelGroupImage, getSeriesBasedOnModelGroup } from 'utils/modelGroupUtils'\r\nimport { Loader } from 'components/Loader'\r\nimport { srpFilters } from 'common/srpFilters'\r\nimport { useSrpFiltersStore } from 'store/useSrpFiltersStore'\r\nimport shallow from 'zustand/shallow'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { getSearchUrl } from 'utils/urlUtils'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { isReactRoutes } from 'common/routes'\r\nimport { resetSRPFilter } from 'utils/menuUtils'\r\n\r\ninterface IFiltersReducerAction {\r\n type: 'INIT' | 'UPDATE' | 'RESET_TO_DEFAULT' | 'RESET_ALL'\r\n payload?: ISearchFilterResult[]\r\n}\r\n\r\nconst setDefaultFilters = (filters: ISearchFilterResult[]): ISearchFilterResult[] => {\r\n const filterClone = cloneDeep(filters) as ISearchFilterResult[]\r\n resetChildrenFilters(filterClone)\r\n\r\n // Set default filters:\r\n //\r\n // Body Style: 'Sedan'\r\n // Make : 'BMW'\r\n //\r\n // Because we only load `HeadingData` once, so these changes only applied\r\n // when the `HeadingData` have value\r\n return filterClone.map((filter) => {\r\n if (filter.FieldName === srpFilters.BodyStyle) {\r\n const filterValue =\r\n AVAILABLE_INVENTORY_MAPPER.find(\r\n (m) => m.DisplayText?.toUpperCase() === AVAILABLE_INVENTORY_HEADING.BodyStyle[0]?.toUpperCase()\r\n )\r\n ?.Value?.split(',')\r\n ?.at(0) ?? AVAILABLE_INVENTORY_HEADING.BodyStyle[0]\r\n\r\n if (filter.ChildrenFilter.find((item) => item.Value?.toUpperCase() === filterValue?.toUpperCase()))\r\n filter.ChildrenFilter.map((item) => {\r\n if (item.Value?.toUpperCase() === filterValue?.toUpperCase()) {\r\n item.Selected = true\r\n }\r\n })\r\n }\r\n\r\n if (filter.FieldName === srpFilters.Make) {\r\n const filterValue =\r\n AVAILABLE_INVENTORY_MAPPER.find((m) => m.DisplayText === AVAILABLE_INVENTORY_HEADING.Make[0])?.Value ??\r\n AVAILABLE_INVENTORY_HEADING.Make[0]\r\n\r\n if (filter.ChildrenFilter.find((item) => item.Value === filterValue))\r\n filter.ChildrenFilter.find((item) => item.Value === filterValue)!.Selected = true\r\n }\r\n\r\n return filter\r\n })\r\n}\r\n\r\nconst filterEmptyResultSearchFilters = (filters: Record, ContentData: IVehicleSearchDocument[]) => {\r\n Object.entries(filters).forEach(([key, values]) => {\r\n filters[key] = [\r\n ...values.filter((v) => {\r\n // 1. Get original value (if have)\r\n const splittedValues = (AVAILABLE_INVENTORY_MAPPER.find((m) => m.DisplayText === v)?.Value ?? v).split(',')\r\n\r\n // 2. Filters from ContentData to check if we have any items\r\n return splittedValues.some((v) =>\r\n ContentData.filter((d) => d.Make === (key === srpFilters.Make ? d.Make : 'BMW')).some((d) => d[key] === v)\r\n )\r\n })\r\n ]\r\n })\r\n\r\n return filters\r\n}\r\n\r\nconst filtersReducer = (state: ISearchFilterResult[], action: IFiltersReducerAction): ISearchFilterResult[] => {\r\n switch (action.type) {\r\n case 'INIT':\r\n const initFilters = cloneDeep([...action.payload]) as ISearchFilterResult[]\r\n selectChildrenFilter(initFilters, srpFilters.NewInventory, 'true')\r\n return initFilters\r\n case 'UPDATE':\r\n return values(merge(keyBy(state, 'DBFieldName'), keyBy(action.payload, 'DBFieldName')))\r\n case 'RESET_TO_DEFAULT':\r\n const takenFilters = action.payload ?? state\r\n return setDefaultFilters([...takenFilters])\r\n case 'RESET_ALL':\r\n resetChildrenFilters(state)\r\n return state\r\n default:\r\n return state\r\n }\r\n}\r\n\r\ninterface IProps {\r\n isFilterLoading: boolean\r\n}\r\n\r\nexport const AvailableInventory = ({ isFilterLoading: HeadingLoading }: IProps) => {\r\n const { state: expandState, action: expandAction } = useExpand({ componentOpen: true } as never)\r\n const [displayFilters, setDisplayFilters] = useState(() => AVAILABLE_INVENTORY_HEADING)\r\n const [filters, dispatchFilters] = useReducer(filtersReducer, null)\r\n const [currentFuelType, setCurrentFuelType] = useState('')\r\n const [isNewInventoryView, setIsNewInventoryView] = useState(true)\r\n const [currentBodyStyle, setCurrentBodyStyle] = useState(null)\r\n const history = useHistory()\r\n\r\n const { data: modelGroupImages = [] } = useFetch(() => getModelGroupImages())\r\n\r\n const { filters: HeadingData, totalVehicles: TotalRecords } = useSrpFiltersStore((state) => state, shallow)\r\n\r\n const { loading: ContentLoading, data: ContentData } = useFetch(() =>\r\n searchAvailableInventory({ ...AVAILABLE_INVENTORY_INIT_QUERY })\r\n )\r\n\r\n const { componentOpen } = expandState\r\n const { setExpand } = expandAction\r\n const { userInteraction, endComponentLoad } = useDtmAnalytics()\r\n\r\n useEffect(() => {\r\n if (!ContentLoading) {\r\n endComponentLoad(DtmComponentName.DashboardInventory)\r\n }\r\n }, [ContentLoading, endComponentLoad])\r\n\r\n // Set default filters\r\n useEffect(() => {\r\n if (HeadingLoading || !HeadingData) return\r\n\r\n const payload = [...HeadingData] as ISearchFilterResult[]\r\n\r\n if (hasAnyChilrenFilter(payload, srpFilters.NewInventory)) {\r\n dispatchFilters({ type: 'INIT', payload: payload })\r\n } else {\r\n dispatchFilters({ type: 'RESET_TO_DEFAULT', payload: payload })\r\n setIsNewInventoryView(false)\r\n }\r\n }, [HeadingLoading, HeadingData])\r\n\r\n // Use to update filters show on UI\r\n useEffect(() => {\r\n if (ContentLoading || !ContentData) return\r\n\r\n setDisplayFilters((ft) => ({ ...filterEmptyResultSearchFilters(ft, ContentData) }))\r\n }, [ContentLoading, ContentData])\r\n\r\n const bodyStyleFilters = useMemo(() => filters?.find((item) => item.FieldName === srpFilters.BodyStyle), [filters])\r\n const additionalBodyStyleFilters = useMemo(\r\n () => filters?.find((item) => item.FieldName === srpFilters.AdditionalBodyStyle),\r\n [filters]\r\n )\r\n const makeFilters = useMemo(() => filters?.find((item) => item.FieldName === srpFilters.Make), [filters])\r\n\r\n const modelGroupFilters = useMemo(() => {\r\n if (!filters || !ContentData) return\r\n\r\n let result = [...ContentData]\r\n\r\n if (!isNewInventoryView) {\r\n // Filters for Available Inventory View\r\n\r\n // 1. Check 'Body Style' filter\r\n result = processVehicleSearchDocumentResult(result, filters, srpFilters.BodyStyle, (r) => r.BodyStyle)\r\n\r\n // 1.1. Check 'Additional Body Style' filter\r\n result = processVehicleSearchDocumentResult(\r\n result,\r\n filters,\r\n srpFilters.AdditionalBodyStyle,\r\n (r) => r.AdditionalBodyStyle\r\n )\r\n\r\n // 2. Check 'Make' filter\r\n result = processVehicleSearchDocumentResult(result, filters, srpFilters.Make, (r) => r.Make)\r\n\r\n // 3. Check 'Fuel Type' filter\r\n if (currentFuelType !== '') {\r\n if (isAnyChilrenFiltersSelected(filters, srpFilters.FuelType)) {\r\n result = processVehicleSearchDocumentResult(result, filters, srpFilters.FuelType, (r) => r.FuelType)\r\n } else {\r\n // Remove all results as we don't have any filters match selected fuel type\r\n // This will make the list empty and the UI will render 'No vehicle available' message\r\n result = []\r\n }\r\n }\r\n } else {\r\n // Filters for New Inventory View\r\n\r\n // Find all vehicle with New Inventory fitlers\r\n result = result.filter((r) => r.IsNewInventory)\r\n }\r\n\r\n // 4. Transform & Return result\r\n return Object.entries(chain(result).orderBy('ModelGroup').groupBy('ModelGroup').value())\r\n }, [ContentData, currentFuelType, filters, isNewInventoryView])\r\n\r\n const handleChangeBodyStyleFilters = (bodyStyle: string) => {\r\n // Reset flag for Fuel Type\r\n setCurrentFuelType('')\r\n\r\n setIsNewInventoryView(false)\r\n resetChildrenFilters(filters)\r\n\r\n const originalValues = AVAILABLE_INVENTORY_MAPPER.find((m) => m.DisplayText === bodyStyle)?.Value?.split(',')\r\n if (\r\n originalValues &&\r\n originalValues.some((value) =>\r\n filters.find((q) => q.FieldName === srpFilters.BodyStyle)?.ChildrenFilter?.some((cft) => cft.Value === value)\r\n )\r\n ) {\r\n selectChildrenFilter(filters, srpFilters.BodyStyle, ...originalValues)\r\n } else {\r\n selectChildrenFilter(filters, srpFilters.BodyStyle, bodyStyle)\r\n }\r\n\r\n setCurrentBodyStyle(bodyStyle)\r\n selectChildrenFilter(filters, srpFilters.Make, 'BMW')\r\n\r\n dispatchFilters({ type: 'UPDATE', payload: filters })\r\n userInteraction(`Dashboard:InventoryView: All: ${bodyStyle}`)\r\n }\r\n\r\n const handleChangeAdditionalBodyStyleFilters = (additionalBodyStyle: string) => {\r\n // Reset flag for Fuel Type\r\n setCurrentFuelType('')\r\n\r\n setIsNewInventoryView(false)\r\n resetChildrenFilters(filters)\r\n selectChildrenFilter(filters, srpFilters.AdditionalBodyStyle, additionalBodyStyle)\r\n setCurrentBodyStyle(additionalBodyStyle)\r\n selectChildrenFilter(filters, srpFilters.Make, 'BMW')\r\n\r\n dispatchFilters({ type: 'UPDATE', payload: filters })\r\n userInteraction(`Dashboard:InventoryView: All: ${additionalBodyStyle}`)\r\n }\r\n\r\n const handleChangeFuelTypeFilters = (fuelType: string) => {\r\n // 0. Reset values\r\n setIsNewInventoryView(false)\r\n resetChildrenFilters(filters)\r\n setCurrentBodyStyle(null)\r\n selectChildrenFilter(filters, srpFilters.Make, 'BMW')\r\n\r\n // 1. Convert value to original value (using MAPPER)\r\n const originalFuelTypes = AVAILABLE_INVENTORY_MAPPER.find((m) => m.DisplayText === fuelType)?.Value?.split(',')\r\n\r\n // 2. If Update query with selected fuel types\r\n if (\r\n originalFuelTypes &&\r\n originalFuelTypes.some((value) =>\r\n filters.find((q) => q.FieldName === srpFilters.FuelType)?.ChildrenFilter?.some((cft) => cft.Value === value)\r\n )\r\n ) {\r\n selectChildrenFilter(filters, srpFilters.FuelType, ...originalFuelTypes)\r\n } else {\r\n selectChildrenFilter(filters, srpFilters.FuelType, fuelType)\r\n }\r\n\r\n dispatchFilters({ type: 'UPDATE', payload: filters })\r\n\r\n // Set Fuel Type flag\r\n setCurrentFuelType(fuelType)\r\n userInteraction(`Dashboard:InventoryView: All: ${fuelType}`)\r\n }\r\n\r\n const handleChangeMakeFilters = (make: string) => {\r\n setIsNewInventoryView(false)\r\n // Reset flag for Fuel Type\r\n setCurrentFuelType('')\r\n setCurrentBodyStyle(null)\r\n\r\n resetChildrenFilters(filters)\r\n selectChildrenFilter(filters, srpFilters.Make, make)\r\n\r\n dispatchFilters({ type: 'UPDATE', payload: filters })\r\n userInteraction(`Dashboard:InventoryView: ${isNewInventoryView ? 'New' : 'All'}: ${make}`)\r\n }\r\n\r\n const handleInventoryViewToggle = (isChecked: boolean) => {\r\n /*\r\n * isChecked == true => New Inventory\r\n * isChecked == false => Available Inventory\r\n */\r\n\r\n if (isChecked) {\r\n // 1. Reset all filters\r\n setCurrentFuelType('') // Reset flag for Fuel Type\r\n setCurrentBodyStyle(null)\r\n\r\n resetChildrenFilters(filters)\r\n selectChildrenFilter(filters, srpFilters.NewInventory, 'true')\r\n\r\n dispatchFilters({ type: 'UPDATE', payload: filters })\r\n } else {\r\n dispatchFilters({ type: 'RESET_TO_DEFAULT' })\r\n }\r\n\r\n setIsNewInventoryView(isChecked)\r\n userInteraction(`Dashboard:InventoryView: ${isChecked ? 'New' : 'All'}`)\r\n }\r\n\r\n const handleRedirect = (ft?: ISearchFilterResult[]) => {\r\n resetSRPFilter()\r\n sessionStorage.setItem(SessionStorageKey.SEARCH_FILTERS, ft ? JSON.stringify(ft) : null)\r\n const customClickName = `Dashboard:InventoryView: ${isNewInventoryView ? 'New' : 'All'}${getInventoryClickName(ft)}`\r\n userInteraction(customClickName)\r\n\r\n if (isReactRoutes(getSearchUrl())) history.push(getSearchUrl(), ft)\r\n else window.location.href = getSearchUrl()\r\n }\r\n\r\n const handleViewAllVehicles = () => {\r\n handleRedirect(null)\r\n }\r\n\r\n const handleRedirectModelGroup = (modelType: string) => {\r\n resetChildrenFilters(filters, srpFilters.Series)\r\n selectChildrenFilter(filters, srpFilters.Series, ...getSeriesBasedOnModelGroup(modelGroupFilters, modelType))\r\n\r\n handleRedirect(filters)\r\n }\r\n\r\n const handleRedirectYearAndModelGroup = (modelYear: string, modelType: string) => {\r\n resetChildrenFilters(filters, srpFilters.Series, srpFilters.Year)\r\n selectChildrenFilter(filters, srpFilters.Series, ...getSeriesBasedOnModelGroup(modelGroupFilters, modelType))\r\n selectChildrenFilter(filters, srpFilters.Year, modelYear)\r\n\r\n handleRedirect(filters)\r\n }\r\n\r\n return (\r\n \r\n {\r\n setExpand(!componentOpen)\r\n userInteraction(`Dashboard:InventoryView: AvailableInventory: ${componentOpen ? 'Collapse' : 'Expand'}`)\r\n }}\r\n isExpand={componentOpen}\r\n leftActions={\r\n !ContentLoading &&\r\n !HeadingLoading &&\r\n ContentData?.length !== 0 && (\r\n <>\r\n \r\n \r\n \r\n \r\n {displayFilters.BodyStyle.map((bodyStyle, idx) => (\r\n \r\n AVAILABLE_INVENTORY_MAPPER.find(\r\n (m) => m.DisplayText?.toUpperCase() === bodyStyle?.toUpperCase()\r\n )?.Value?.includes(cf.Value)\r\n )?.Selected\r\n }\r\n >\r\n {bodyStyle}\r\n \r\n ))}\r\n {displayFilters.AdditionalBodyStyle.map((bodyStyle, idx) => {\r\n /* 1. Get original value */\r\n const originalValue =\r\n AVAILABLE_INVENTORY_MAPPER.find((m) => m.DisplayText === bodyStyle)?.Value ?? bodyStyle\r\n\r\n /* 2. Check with resp to make sure the style exist */\r\n return (\r\n additionalBodyStyleFilters?.ChildrenFilter?.some((cf) => cf.Value === originalValue) && (\r\n cf.Value === originalValue)?.Selected\r\n }\r\n >\r\n {bodyStyle}\r\n \r\n )\r\n )\r\n })}\r\n \r\n \r\n {displayFilters.FuelType.map((type, index) => (\r\n \r\n {type}\r\n \r\n ))}\r\n {displayFilters.Make.filter((ft) => ft !== 'BMW')?.map((type, index) => (\r\n cf.Value === type)?.Selected}\r\n >\r\n {type}\r\n \r\n ))}\r\n \r\n \r\n )\r\n }\r\n rightActions={\r\n !(HeadingLoading || ContentLoading) && (\r\n \r\n \r\n View All Vehicles ({TotalRecords ?? 0})\r\n \r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n {(ContentLoading || HeadingLoading) && }\r\n {!ContentLoading && !HeadingLoading && isEmpty(modelGroupFilters) && (\r\n \r\n \r\n \r\n
{isNewInventoryView ? NO_NEW_INVENTORY_MESSAGE : GENERIC_NO_VEHICLE_AVAILABLE_MESSAGE}
\r\n \r\n
\r\n )}\r\n\r\n {!ContentLoading && !HeadingLoading && !isEmpty(modelGroupFilters) && (\r\n \r\n {modelGroupFilters\r\n ?.filter(([mg, _]) => mg !== 'undefined')\r\n .map(([modelGroup, arrOfSeries]) => (\r\n ({ year, total: count }))}\r\n total={arrOfSeries?.length}\r\n onRedirect={handleRedirectModelGroup.bind(null, modelGroup)}\r\n handleRedirectYearAndModel={handleRedirectYearAndModelGroup}\r\n />\r\n ))}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledActivityTitle = styled.div`\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n font-size: 1.8rem;\r\n font-weight: 600;\r\n cursor: pointer;\r\n\r\n .total {\r\n display: inline;\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n .icon {\r\n margin-bottom: 0.4rem;\r\n margin-right: 0.5rem;\r\n }\r\n .icon:hover {\r\n cursor: pointer;\r\n }\r\n`\r\n","import { Col } from 'react-bootstrap'\r\nimport {\r\n StyledVehicleAuctionInfo,\r\n StyledAuctionCardRow,\r\n StyledAuctionImage,\r\n StyledAuctionTitle,\r\n StyledAuctionText\r\n} from './VehicleAuction.styled'\r\nimport { IVehicleData, IVehicleInfo } from 'types/vehicleTypes'\r\nimport { IAuctionInfo } from 'types/auctionTypes'\r\nimport { PropsWithChildren, useEffect } from 'react'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\nimport { StyledVehicleBidBuyInformation } from './VehicleAuction.styled'\r\nimport { VehiclePriceSection } from 'modules/DealerVehicleManagement/VehiclePriceSection'\r\nimport { VehicleTags } from 'modules/DealerVehicleManagement/VehicleTags'\r\nimport { VehicleBidHistoryLink } from 'modules/DealerVehicleManagement/VehicleBidHistoryLink'\r\nimport { VehicleTimer } from 'modules/DealerVehicleManagement/VehicleTimer'\r\nimport { getVdpUrl } from 'utils/urlUtils'\r\nimport { Link } from 'components/Share/Link'\r\nimport { useVehicleStore } from 'store/useVehicleStore'\r\nimport { useCountdown } from 'hooks/useCountdown'\r\n\r\ninterface IProps {\r\n vehicleData: IVehicleData\r\n vehicleShowOn?: string\r\n}\r\n\r\ninterface IVehicleLinkProps {\r\n vehicle: IVehicleInfo\r\n auctionInfo?: IAuctionInfo\r\n customName: string\r\n vehicleShowOn?: string\r\n}\r\n\r\nexport const VehicleLink = ({\r\n customName,\r\n vehicle,\r\n auctionInfo,\r\n children,\r\n vehicleShowOn\r\n}: PropsWithChildren) => {\r\n const handleClick = () => {\r\n setCustomClick(`Dashboard: BuyerActivity:${vehicleShowOn}:IndividualVehicle`, { usePageName: false })\r\n }\r\n\r\n const detailUrl = getVdpUrl(vehicle.InstanceID)\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const VehicleAuction = ({ vehicleData, vehicleShowOn }: IProps) => {\r\n const { getBaseVehicle } = useVehicleStore()\r\n\r\n const { vehicle: vehicleInfo, auctionInfo } = vehicleData\r\n const { seconds: timeOut } = useCountdown(auctionInfo?.EndDate)\r\n\r\n const color = vehicleInfo.Properties?.find((item) => item.Code === 'Exterior Color' && item.ID === 1)\r\n const mileage = vehicleInfo.Properties?.find((item) => item.Code === 'Odometer' && item.ID === 1)\r\n\r\n useEffect(() => {\r\n if (timeOut === 0 && vehicleData.auctionInfo?.IsHighestBidder) {\r\n getBaseVehicle(vehicleData)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [timeOut, vehicleData.auctionInfo?.IsHighestBidder])\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 {vehicleInfo.Title}\r\n \r\n \r\n {color?.Description}\r\n {mileage?.Description} miles\r\n \r\n \r\n \r\n
\r\n \r\n \r\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 default VehicleAuction\r\n","import { StyledActivityTitle } from 'modules/BuyerActivity.styled'\r\nimport { getBidVehicles } from 'apis/dashboardApis'\r\nimport { GetBidVehiclesRequest, IGetBidVehiclesResponse } from 'types/vehicleTypes'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport Collapse from 'components/Collapse'\r\nimport { useVehicles } from 'hooks/useVehicles'\r\nimport CaretDownFill from 'images/icon/CaretDownFill'\r\nimport CaretRightFill from 'images/icon/CaretRightFill'\r\nimport { DEFAULT_SMALL_PAGE_SIZE } from 'common/constants'\r\nimport NoActivity from 'modules/BuyerActivity/NoActivity'\r\nimport { VehicleAuction } from 'modules/BuyerActivity/VehicleAuction'\r\nimport { Loader } from 'components/Loader'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { useEffect } from 'react'\r\nimport { DtmComponentName, setCustomClick } from 'utils/analyticsUtils'\r\nimport { VehicleContextProvider } from 'modules/DealerVehicleManagement/VehicleContext'\r\nimport { getCurrentBidsUrl } from 'utils/urlUtils'\r\nimport { Link } from 'components/Share/Link'\r\n\r\ninterface IProps {\r\n isExpand?: boolean\r\n setExpand?: any\r\n}\r\nexport const CurrentBids = ({ isExpand, setExpand }: IProps) => {\r\n const { data: { Items: itemBids, TotalRecords: totalBids } = {} as IGetBidVehiclesResponse, loading: loadingBid } =\r\n useFetch(() => getBidVehicles(new GetBidVehiclesRequest(DEFAULT_SMALL_PAGE_SIZE)))\r\n const { endComponentLoad } = useDtmAnalytics()\r\n const { vehicles: vehicleBids } = useVehicles(itemBids)\r\n\r\n useEffect(() => {\r\n if (!loadingBid) {\r\n endComponentLoad(DtmComponentName.DashboardCurrentBids, itemBids)\r\n }\r\n }, [loadingBid, endComponentLoad, itemBids])\r\n\r\n const manageBidsUrl = getCurrentBidsUrl()\r\n\r\n if (loadingBid) {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n \r\n {isExpand ? : }\r\n Your Current Bids: \r\n {\r\n setCustomClick('Dashboard: BuyerActivity: CurrentBids', { usePageName: false })\r\n event.stopPropagation()\r\n }}\r\n >\r\n ({totalBids ?? 0})\r\n \r\n \r\n \r\n
\r\n {vehicleBids?.length > 0 ? (\r\n vehicleBids.map((item) => (\r\n \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 { getWatchListVehicles } from 'apis/dashboardApis'\r\nimport { DEFAULT_SMALL_PAGE_SIZE } from 'common/constants'\r\nimport NoActivity from 'modules/BuyerActivity/NoActivity'\r\nimport VehicleAuction from 'modules/BuyerActivity/VehicleAuction'\r\nimport { VehicleContextProvider } from 'modules/DealerVehicleManagement/VehicleContext'\r\nimport { Loader } from 'components/Loader'\r\nimport { Link } from 'components/Share/Link'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport { useVehicles } from 'hooks/useVehicles'\r\nimport CaretDownFill from 'images/icon/CaretDownFill'\r\nimport CaretRightFill from 'images/icon/CaretRightFill'\r\nimport { useEffect } from 'react'\r\nimport { Collapse } from 'react-bootstrap'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { GetBidVehiclesRequest, IGetBidVehiclesResponse } from 'types/vehicleTypes'\r\nimport { DtmComponentName, setCustomClick } from 'utils/analyticsUtils'\r\nimport { getWatchlistUrl } from 'utils/urlUtils'\r\nimport shallow from 'zustand/shallow'\r\nimport { StyledActivityTitle } from './BuyerActivity.styled'\r\n\r\ninterface IProps {\r\n isExpand?: boolean\r\n setExpand?: any\r\n}\r\n\r\nexport const WatchList = ({ isExpand, setExpand }: IProps) => {\r\n const { data: { Items: items, TotalRecords: totalRecords } = {} as IGetBidVehiclesResponse, loading } = useFetch(() =>\r\n getWatchListVehicles(new GetBidVehiclesRequest(DEFAULT_SMALL_PAGE_SIZE))\r\n )\r\n const { vehicles } = useVehicles(items)\r\n const getLocalText = useGlobalStore((state) => state.getLocalText, shallow)\r\n const { endComponentLoad } = useDtmAnalytics()\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n endComponentLoad(DtmComponentName.DashboardWatchList, items)\r\n }\r\n }, [loading, endComponentLoad, items])\r\n\r\n const watchlistUrl = getWatchlistUrl()\r\n\r\n if (loading) {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n \r\n {isExpand ? : }\r\n Watch List: \r\n {\r\n setCustomClick('Dashboard: BuyerActivity: WatchList', { usePageName: false })\r\n event.stopPropagation()\r\n }}\r\n >\r\n ({totalRecords ?? 0})\r\n \r\n \r\n \r\n
\r\n {vehicles?.length > 0 ? (\r\n vehicles.map((item) => (\r\n \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 { Row, Col } from 'react-bootstrap'\r\nimport { HomeSectionHeader } from 'components/Header/HomeSectionHeader'\r\nimport { CurrentBids } from './CurrentBids'\r\nimport { WatchList } from './WatchList'\r\nimport { StyledBuyerActivitySection, StyledHomeSection } from 'components/Header/HomeSectionHeader.styled'\r\nimport { useExpand } from 'hooks/useExpand'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\n\r\nconst initExpand = {\r\n componentOpen: true\r\n}\r\n\r\nexport const BuyerActivity = () => {\r\n const { state: expandState, action: expandAction } = useExpand({\r\n componentOpen: initExpand.componentOpen,\r\n groupOpen: new Array(2).fill(initExpand.componentOpen)\r\n })\r\n const { componentOpen, groupOpen } = expandState\r\n const { setExpand } = expandAction\r\n const { userInteraction } = useDtmAnalytics()\r\n\r\n return (\r\n \r\n {\r\n setExpand(!componentOpen)\r\n userInteraction(`Dashboard:InventoryView: BuyerActivity: ${componentOpen ? 'Collapse' : 'Expand'}`)\r\n }}\r\n isExpand={componentOpen}\r\n />\r\n \r\n \r\n \r\n \r\n setExpand(!groupOpen[0], 0)} />\r\n \r\n \r\n setExpand(!groupOpen[1], 1)} />\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { largeScreen } from 'common/theme'\r\nimport { StyledHomeSectionHeaderTitle } from 'components/Header/HomeSectionHeader.styled'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledDashboardPlaceholder = styled.div`\r\n @media (min-width: ${largeScreen}) {\r\n ${StyledHomeSectionHeaderTitle} {\r\n justify-content: left;\r\n padding-left: calc(12.5vw - 80px);\r\n }\r\n }\r\n`\r\nexport const StyledDashboardSlide = styled.div`\r\n margin: 1rem auto 3rem;\r\n`\r\n","import { SessionStorageKey } from 'common/constants'\r\n\r\nexport const setListingBreadcrumb = (pageTitle: string, url: string) => {\r\n sessionStorage.removeItem(SessionStorageKey.DETAIL_BREADCRUMB)\r\n\r\n url = url.replace('?clearSearch=true', '')\r\n const filterIndex = url.indexOf('?filters')\r\n if (filterIndex > -1) {\r\n url = url.substring(0, filterIndex)\r\n }\r\n\r\n sessionStorage.setItem(\r\n SessionStorageKey.LIST_BREADCRUMB,\r\n JSON.stringify({\r\n description: pageTitle,\r\n url: url\r\n })\r\n )\r\n}\r\n","import { getCarouselImages } from 'apis/dashboardApis'\r\nimport { Rules } from 'common/rules'\r\nimport { SlideShow } from 'components/SlideShow/SlideShow'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport { Layout } from 'layouts/Layout'\r\nimport { AvailableInventory } from 'modules/AvailableInventory'\r\nimport { BuyerActivity } from 'modules/BuyerActivity'\r\nimport { DefaultErrorBoundary } from 'modules/DefaultErrorBoundary'\r\nimport { PropsWithChildren, useEffect, useLayoutEffect } from 'react'\r\nimport { RouteProps, useLocation } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport shallow from 'zustand/shallow'\r\nimport { StyledDashboardPlaceholder, StyledDashboardSlide } from './Dashboard.styled'\r\nimport { useSrpFiltersStore } from '../store/useSrpFiltersStore'\r\nimport { SessionStorageKey } from '../common/constants'\r\nimport { setListingBreadcrumb } from 'utils/breadcrumbUtils'\r\n\r\ninterface IAuthenticatedRouteProps extends PropsWithChildren {\r\n allowedRules?: Rules[]\r\n}\r\n\r\nconst AuthorizedComponent = ({ allowedRules, children }: IAuthenticatedRouteProps) => {\r\n const isInRule = useGlobalStore((state) => state.isInRule, shallow)\r\n\r\n return
{allowedRules?.some((rule) => isInRule(rule)) && children}
\r\n}\r\n\r\nexport const Dashboard = () => {\r\n const { endPageLoad } = useDtmAnalytics()\r\n const { fetchFilters } = useSrpFiltersStore((state) => state, shallow)\r\n const { loading } = useFetch(() => fetchFilters())\r\n const location = useLocation()\r\n\r\n useLayoutEffect(() => {\r\n window.sessionStorage.removeItem(SessionStorageKey.SEARCH_FILTERS)\r\n window.sessionStorage.removeItem(SessionStorageKey.VEHICLE_INSTANCES)\r\n setListingBreadcrumb('Dashboard', location.pathname)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n endPageLoad()\r\n }\r\n }, [loading, endPageLoad])\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 \r\n \r\n \r\n \r\n )\r\n}\r\n","import { Layout } from 'layouts/Layout'\r\nimport { Alert } from 'react-bootstrap'\r\n\r\ninterface IProps {\r\n message: string\r\n}\r\n\r\nexport const ErrorPage = ({ message }: IProps) => {\r\n return (\r\n \r\n \r\n

{message}

\r\n
\r\n
\r\n )\r\n}\r\n","import { Row, Image } from 'react-bootstrap'\r\nimport {\r\n LayoutContainer,\r\n StyledLeftContainer,\r\n LeftFooterContainer,\r\n StyledLoginFormFooter,\r\n RightContainer,\r\n RightFooterContainer,\r\n StyledFooter,\r\n LoginContainerColStyled,\r\n LinkBaseStyled\r\n} from './LoginLayout.styled'\r\nimport leftIcon from '../images/PRIVATE_STORE_BY_MANHEIM.png'\r\nimport { MultiLanguageCode } from 'common/languageCodes'\r\nimport { FormattedMessage, useIntl } from 'react-intl'\r\nimport parse from 'html-react-parser'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { rmsAuthModel } from 'common/rmsGlobal'\r\nimport { FAQ, TERM_AND_CONDITION, vendorImages } from 'common/constants'\r\n\r\nexport const LoginLayout = ({ children }) => {\r\n const intl = useIntl()\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 LoginFormFooter = () => {\r\n return (\r\n \r\n {TERM_AND_CONDITION}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {FAQ}\r\n \r\n )\r\n}\r\n","import { Col, FormGroup } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledForgotPassword = styled(Col)`\r\n max-width: 36rem;\r\n justify-content: center;\r\n align-items: center;\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n .form {\r\n max-width: 100%;\r\n width: inherit;\r\n }\r\n\r\n .forgot-user-id {\r\n margin-bottom: 0.1rem !important;\r\n }\r\n`\r\n\r\nexport const StyledForgotUserLink = styled.a`\r\n display: flex;\r\n float: right;\r\n margin-bottom: 2rem;\r\n cursor: pointer;\r\n color: ${({ theme }) => theme.colors.linkColor};\r\n`\r\n\r\nexport const LoginLinkWrapper = styled.div`\r\n align-items: center;\r\n text-align: center;\r\n width: 100%;\r\n margin-top: 3rem;\r\n font-weight: bold;\r\n margin-bottom: 2rem;\r\n`\r\nexport const StyledFormGroup = styled(FormGroup)`\r\n margin-bottom: 2rem;\r\n`\r\nexport const StyledResetPassword = styled.div`\r\n justify-content: center;\r\n min-height: 30rem;\r\n`\r\nexport const StyledLable = styled.div`\r\n margin-bottom: 2rem;\r\n`\r\n","import { Button, Col } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledFormContainer = styled.div`\r\n flex-direction: column;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`\r\n\r\nexport const StyledSubTitle = styled.div`\r\n margin-bottom: 3rem;\r\n font-size: 1.8rem;\r\n`\r\n\r\nexport const StyledCol = styled(Col)`\r\n max-width: 36rem;\r\n`\r\n\r\nexport const StyledSubmitButton = styled(Button)`\r\n height: 5rem;\r\n font-size: 1.8rem;\r\n width: 100%;\r\n margin-top: 1rem;\r\n`\r\n","import { getSecretQuestion, sendPasswordReset } from 'apis/userApis'\r\nimport { LoginFormFooter, LoginLayout } from 'layouts/LoginLayout'\r\nimport { useRef, useState } from 'react'\r\nimport { Form, Row } from 'react-bootstrap'\r\nimport {\r\n StyledForgotUserLink,\r\n StyledForgotPassword,\r\n LoginLinkWrapper,\r\n StyledResetPassword,\r\n StyledLable\r\n} from './ForgotPassword.styled'\r\nimport { ISecretQuestionResponse } from 'types/rmsAuthModel'\r\nimport { FORGOT_LABLE, INVALID_USER, RESET_PW } from 'common/messages'\r\nimport { BackToLoginLink, LoginTitle } from 'layouts/LoginLayout.styled'\r\nimport { CONTINUE, SUBMIT } from 'common/constants'\r\nimport { OverlayLoader } from 'components/Loader'\r\nimport { FormInput, TextDanger } from 'components/Forms'\r\nimport { useFormik } from 'formik'\r\nimport { Helmet } from 'react-helmet'\r\nimport { StyledSubmitButton } from './Login.styled'\r\n\r\nexport const ForgotPassword = () => {\r\n const [secretQuestion, setSecretQuestion] = useState()\r\n const [resetPassword, setResetPassword] = useState()\r\n const [showAlert, setShowAlert] = useState()\r\n const [isLoading, setIsLoading] = useState()\r\n\r\n const forgotForm = useRef()\r\n const getSecretQuestionHandler = async (values) => {\r\n setResetPassword(null)\r\n setIsLoading(true)\r\n setShowAlert(false)\r\n\r\n try {\r\n const result = await getSecretQuestion(values.userID.toString())\r\n setSecretQuestion(result)\r\n } catch (error) {\r\n formik.setFieldError('userID', error.Message)\r\n } finally {\r\n setIsLoading(false)\r\n }\r\n }\r\n const sendPasswordResetHandler = async (values, { setStatus, setErrors }) => {\r\n setResetPassword(null)\r\n setIsLoading(true)\r\n try {\r\n const result = await sendPasswordReset(\r\n values.userID.toString(),\r\n values.answer.toString(),\r\n secretQuestion?.QuestionId\r\n )\r\n setResetPassword(result)\r\n } catch (error) {\r\n error && error.Message === INVALID_USER\r\n ? formik.setFieldError('userID', error.Message)\r\n : formik.setFieldError('answer', error.Message)\r\n } finally {\r\n setIsLoading(false)\r\n }\r\n }\r\n\r\n const validate = (values) => {\r\n const errors: any = {}\r\n if (!values.userID) {\r\n errors.userID = 'Please Enter a User ID'\r\n }\r\n if (!values.answer && secretQuestion) {\r\n errors.answer = 'Please Enter answer'\r\n }\r\n\r\n return errors\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n userID: '',\r\n answer: ''\r\n },\r\n validate,\r\n onSubmit: secretQuestion?.QuestionId ? sendPasswordResetHandler : getSecretQuestionHandler\r\n })\r\n return (\r\n \r\n \r\n Forgot Password\r\n \r\n \r\n \r\n Forgot Your Password?\r\n \r\n \r\n {resetPassword ? (\r\n {RESET_PW}\r\n ) : (\r\n
\r\n {FORGOT_LABLE}\r\n \r\n {!secretQuestion && !showAlert && (\r\n setShowAlert(true)}>Forgot User ID?\r\n )}\r\n {showAlert && (\r\n \r\n To recover your User ID, please contact Customer Care at:
\r\n 844-266-0437\r\n
\r\n )}\r\n {secretQuestion && (\r\n \r\n )}\r\n \r\n {!secretQuestion ? CONTINUE : SUBMIT}\r\n \r\n \r\n )}\r\n {isLoading && }\r\n \r\n \r\n Back to Login\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import { MultiLanguageCode } from 'common/languageCodes'\r\nimport { AUTH_ERROR, AUTH_ERROR_2 } from 'common/messages'\r\nimport { FormInput, TextDanger } from 'components/Forms'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { useFormik } from 'formik'\r\nimport parse from 'html-react-parser'\r\nimport { LoginFormFooter, LoginLayout } from 'layouts/LoginLayout'\r\nimport { ClickHereLink, ForgotLink, FormLoginBody, LoginTitle } from 'layouts/LoginLayout.styled'\r\nimport GenericMessageWarning from 'modules/GenericMessageWarning'\r\nimport { useLayoutEffect, useMemo, useRef, useState } from 'react'\r\nimport { Form, Row } from 'react-bootstrap'\r\nimport { Helmet } from 'react-helmet'\r\nimport { FormattedMessage, useIntl } from 'react-intl'\r\nimport { Link } from 'react-router-dom'\r\nimport { resetSRPFilter } from 'utils/menuUtils'\r\nimport { getUrlParameter } from 'utils/urlParams'\r\nimport * as Yup from 'yup'\r\nimport { login } from '../apis/userApis'\r\nimport { StyledCol, StyledFormContainer, StyledSubTitle, StyledSubmitButton } from './Login.styled'\r\n\r\nexport const Login = () => {\r\n const intl = useIntl()\r\n const loginForm = useRef()\r\n const [errorMessage, setErrorMessage] = useState()\r\n const [errorCount, setErrorCount] = useState(0)\r\n const [wasInitiallyAutofilled, setWasInitiallyAutofilled] = useState(false)\r\n\r\n useLayoutEffect(() => {\r\n const checkAutofilled = () => {\r\n try {\r\n const autofilled = !!document.getElementById('username')?.matches('*:-webkit-autofill')\r\n setWasInitiallyAutofilled(autofilled)\r\n } catch {}\r\n }\r\n\r\n setTimeout(checkAutofilled, 100)\r\n setTimeout(checkAutofilled, 500)\r\n setTimeout(checkAutofilled, 1000)\r\n }, [])\r\n\r\n const validate = () => {\r\n setWasInitiallyAutofilled(false)\r\n }\r\n\r\n const loginHandler = async (values, { setSubmitting }) => {\r\n try {\r\n setErrorMessage('')\r\n const data = await login(values.username.toString(), values.password.toString())\r\n if (data.isFirstLogin.toLocaleLowerCase() === 'true') {\r\n window.location.href = '/account?fl=1'\r\n return\r\n }\r\n const redirectLink = getUrlParameter(window.location.href, 'returnUrl', true, true)\r\n resetSRPFilter()\r\n window.location.href = decodeURIComponent(redirectLink || '/')\r\n } catch (error) {\r\n setErrorCount(errorCount + 1)\r\n setErrorMessage(errorCount > 2 ? AUTH_ERROR_2 : AUTH_ERROR)\r\n } finally {\r\n setSubmitting(false)\r\n }\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n username: '',\r\n password: ''\r\n },\r\n onSubmit: loginHandler,\r\n validate,\r\n validationSchema: Yup.object({\r\n username: Yup.string().required('Please enter a User ID'),\r\n password: Yup.string().required('Please enter a password')\r\n })\r\n })\r\n\r\n const disableSubmitButton = useMemo(\r\n () =>\r\n (!(formik.values.username !== '' && formik.values.password !== '') && !wasInitiallyAutofilled) ||\r\n formik.isSubmitting,\r\n [formik, wasInitiallyAutofilled]\r\n )\r\n\r\n return (\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
\r\n \r\n
\r\n \r\n Don't have an account? \r\n \r\n Click here.\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n Forgot User ID or Password?\r\n \r\n\r\n \r\n \r\n \r\n\r\n {errorMessage && {errorMessage}}\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 styled from 'styled-components'\r\n\r\nexport const PrivacyBody = styled.div`\r\n background-color: ${({ theme }) => theme.colors.backgroundText};\r\n margin-left: 2.4rem;\r\n margin-right: 2.4rem;\r\n margin-bottom: 2.4rem;\r\n flex: 1;\r\n\r\n ul {\r\n margin-left: 2rem;\r\n }\r\n\r\n p {\r\n background: inherit !important;\r\n }\r\n\r\n span {\r\n font-family: inherit !important;\r\n color: inherit !important;\r\n font-size: inherit !important;\r\n }\r\n\r\n div:not([class]) {\r\n margin-left: 3rem;\r\n }\r\n`\r\n\r\nexport const Title = styled.h2`\r\n color: ${({ theme }) => theme.colors.primary};\r\n text-transform: uppercase;\r\n font-size: 30ps;\r\n margin-bottom: 1.2rem;\r\n`\r\n","import { MultiLanguageCode } from 'common/languageCodes'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { useIntl } from 'react-intl'\r\nimport parse from 'html-react-parser'\r\nimport { BreadcrumbMenu } from 'layouts/BreadcrumbMenu'\r\nimport { Col, Row } from 'react-bootstrap'\r\nimport { Layout } from 'layouts/Layout'\r\nimport { PrivacyBody, Title } from './Privacy.styled'\r\n\r\nexport const Privacy = () => {\r\n const intl = useIntl()\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 <HTMLText value={parse(intl.formatMessage({ id: MultiLanguageCode.PRIVACY_POLICY_HEADER }))} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { MultiLanguageCode } from 'common/languageCodes'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { useIntl } from 'react-intl'\r\nimport parse from 'html-react-parser'\r\nimport { TermConditionBody, Title } from './TermCondition.styled'\r\nimport { Col, Row } from 'react-bootstrap'\r\nimport { Layout } from 'layouts/Layout'\r\nimport { BreadcrumbMenu } from 'layouts/BreadcrumbMenu'\r\n\r\nimport { TERM_AND_CONDITION } from 'common/constants'\r\n\r\nexport const TermCondition = () => {\r\n const intl = useIntl()\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 <HTMLText value={parse(intl.formatMessage({ id: MultiLanguageCode.TERMS_LINK }))} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","export const downloadURI = (url: string) => {\r\n let link = document.createElement('a')\r\n link.href = url\r\n document.body.appendChild(link)\r\n link.click()\r\n document.body.removeChild(link)\r\n}\r\n","import { getBidVehicles, getWatchListVehicles } from 'apis/dashboardApis'\r\nimport { Link, useLocation } from 'react-router-dom'\r\nimport { VehicleList } from '../modules/VehicleList'\r\nimport { IconSvg } from '@prism/icon'\r\nimport { BUY_VEHICLE_NO_ACTIVITY } from 'common/constants'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { urlDownloadViewVehicles } from 'utils/utils'\r\nimport { downloadURI } from 'utils/exportFileUtil'\r\nimport { useCallback, useContext, useEffect, useState } from 'react'\r\nimport { AlertDialog } from 'components/AlertDialog/AlertDialog'\r\nimport { Dropdown } from 'react-bootstrap'\r\nimport ChevronDown from 'icons/ChevronDown'\r\nimport { FileEarMarkArrowDown } from 'images/icon/FileEarMarkArrowDown'\r\nimport { exportViews } from 'common/constants'\r\nimport { BiddingSidePanel } from 'modules/BiddingSidePanel'\r\nimport { AppRoutes } from 'common/routes'\r\nimport { setListingBreadcrumb } from 'utils/breadcrumbUtils'\r\nimport { Layout } from '../layouts/Layout'\r\nimport {\r\n GetBidVehiclesRequest,\r\n IGetBidVehiclesResponse,\r\n ISearchVehicleResponse,\r\n IVehicleData\r\n} from 'types/vehicleTypes'\r\nimport { VehicleListContextProvider } from 'modules/VehicleList/VehicleListContext'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { DefaultErrorBoundary } from 'modules/DefaultErrorBoundary'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\n\r\nexport const WatchListPageContent = () => {\r\n const getLocalText = useGlobalStore((state) => state.getLocalText)\r\n const [modalShow, setModalShow] = useState(false)\r\n const location = useLocation()\r\n\r\n const { endPageLoad } = useDtmAnalytics()\r\n\r\n const exportView = (selectedVehicles: number[], vehicles: IVehicleData[], value: number) => {\r\n const validIds = selectedVehicles.filter((id) =>\r\n vehicles.find((item) => item.vehicle.InstanceID === id && Boolean(item.vehicle.WatchListID))\r\n )\r\n if (validIds?.length > 0) {\r\n const url = urlDownloadViewVehicles(validIds, value)\r\n downloadURI(url)\r\n } else {\r\n setModalShow(true)\r\n }\r\n }\r\n const handleGetWatchList = useCallback(async (request: GetBidVehiclesRequest) => {\r\n const response = await getWatchListVehicles(request)\r\n endPageLoad(response?.Items, { searchData: { sortBy: response.SortBy, sortOptions: response.SortOptions } })\r\n return response\r\n }, [])\r\n\r\n useEffect(() => {\r\n const pageTitle = getLocalText('MY_WATCHLIST', 'My Watch List')\r\n\r\n setListingBreadcrumb(pageTitle, location.pathname)\r\n }, [])\r\n\r\n return (\r\n \r\n setModalShow(false)}\r\n />\r\n (\r\n setCustomClick('Manage Bids', { usePageName: true })}\r\n to={AppRoutes.ManageBids}\r\n >\r\n \r\n \r\n  Manage Bids ({count})\r\n \r\n \r\n )}\r\n checkboxAction={(selectedVehicles, vehicles) => (\r\n
\r\n exportView(selectedVehicles, vehicles, value as never)}>\r\n \r\n \r\n \r\n   Excel/PDF View\r\n\r\n \r\n \r\n \r\n \r\n Excel\r\n PDF\r\n \r\n \r\n
\r\n )}\r\n noActivityMessage={getLocalText('NO_WATCHLIST_VEHICLES', BUY_VEHICLE_NO_ACTIVITY.WATCH_LIST)}\r\n />\r\n\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport const WatchListPage = () => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { IconSvg } from '@prism/icon'\r\nimport { getBidVehicles, getWatchListVehicles } from 'apis/dashboardApis'\r\nimport { BUY_VEHICLE_NO_ACTIVITY } from 'common/constants'\r\nimport { AppRoutes } from 'common/routes'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { BiddingSidePanel } from 'modules/BiddingSidePanel'\r\nimport { DefaultErrorBoundary } from 'modules/DefaultErrorBoundary'\r\nimport { VehicleListContextProvider } from 'modules/VehicleList/VehicleListContext'\r\nimport { useCallback, useEffect } from 'react'\r\nimport { Link, useLocation } from 'react-router-dom'\r\nimport { GetBidVehiclesRequest } from 'types/vehicleTypes'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\nimport { setListingBreadcrumb } from 'utils/breadcrumbUtils'\r\nimport { Layout } from '../layouts/Layout'\r\nimport { VehicleList } from '../modules/VehicleList'\r\n\r\nexport const CurrentBidsPageContent = () => {\r\n const location = useLocation()\r\n const { endPageLoad } = useDtmAnalytics()\r\n useEffect(() => {\r\n setListingBreadcrumb('Manage Bids', location.pathname)\r\n }, [])\r\n\r\n const handleGetBidVehicles = useCallback(async (request: GetBidVehiclesRequest) => {\r\n const response = await getBidVehicles(request)\r\n endPageLoad(response?.Items, { searchData: { sortBy: response.SortBy, sortOptions: response.SortOptions } })\r\n return response\r\n }, [])\r\n\r\n return (\r\n \r\n (\r\n setCustomClick('Watch List', { usePageName: true })}\r\n to={AppRoutes.WatchList}\r\n >\r\n \r\n \r\n  Watch List ({count})\r\n \r\n \r\n )}\r\n queryFunction={handleGetBidVehicles}\r\n countQueryFunction={getWatchListVehicles}\r\n noActivityMessage={BUY_VEHICLE_NO_ACTIVITY.CURRENT_BIDS}\r\n isShowRemoveBidButton={true}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport const CurrentBidsPage = () => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledAccordionTitle = styled.div``\r\nexport const StyledAccordionContent = styled.div`\r\n padding: 1rem;\r\n`\r\n\r\nexport const StyledAccordion = styled.div`\r\n padding: 1rem;\r\n\r\n &.normal-title ${StyledAccordionTitle} {\r\n text-transform: none;\r\n }\r\n ${StyledAccordionTitle} {\r\n text-transform: uppercase;\r\n font-size: 1.5rem;\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n`\r\n\r\nexport const StyledCustomAccordion = styled.div`\r\n border-bottom: 0.1rem solid #e5e5e5;\r\n &:hover {\r\n border-bottom: 0.25rem solid ${({ theme }) => theme.colors.primary};\r\n }\r\n`\r\n","import { faChevronDown, faChevronRight } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport classNames from 'classnames'\r\nimport { PropsWithChildren, useEffect, useState } from 'react'\r\n\r\nimport {\r\n StyledAccordion,\r\n StyledAccordionContent,\r\n StyledAccordionTitle,\r\n StyledCustomAccordion\r\n} from './CustomAccordion.styled'\r\nimport Collapse from 'components/Collapse'\r\n\r\ninterface IProps extends PropsWithChildren {\r\n defaultOpen?: boolean\r\n open?: boolean\r\n sectionTitle: React.ReactNode\r\n}\r\n\r\nexport const CustomAccordion = ({ defaultOpen, open, sectionTitle, className, children }: IProps) => {\r\n const [isOpen, setIsOpen] = useState(defaultOpen ?? false)\r\n useEffect(() => {\r\n setIsOpen(defaultOpen)\r\n }, [defaultOpen])\r\n\r\n useEffect(() => {\r\n setIsOpen((s) => open ?? s)\r\n }, [open])\r\n\r\n return (\r\n \r\n setIsOpen((open) => !open)} className={classNames(className)}>\r\n \r\n {sectionTitle}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n","import { StyledAccordion, StyledAccordionTitle } from 'components/CustomAccordion/CustomAccordion.styled'\r\nimport { StyledRibbon } from 'components/Ribbon/Ribbon.styled'\r\nimport styled from 'styled-components'\r\nimport { CustomAccordion } from 'components/CustomAccordion/CustomAccordion'\r\n\r\nexport const StyledBuyerSearchHeader = styled.div``\r\nexport const StyledBuyerSearchAction = styled.div`\r\n padding-bottom: 2.5rem;\r\n border-bottom: 0.1rem solid #e5e5e5;\r\n`\r\nexport const StyledBuyerSearchContent = styled.div`\r\n height: 100%;\r\n\r\n .see-more {\r\n font-size: 1.6rem;\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.primary};\r\n }\r\n\r\n .selected-filter-label {\r\n text-transform: uppercase;\r\n color: #999;\r\n display: block;\r\n padding-bottom: 0.2rem;\r\n padding-left: 1rem;\r\n border-top: none;\r\n background-color: #f8f8f8;\r\n }\r\n\r\n ${StyledAccordion} {\r\n &.selected-filter {\r\n border-color: #fff;\r\n }\r\n }\r\n`\r\nexport const StyledMultiSelectFilterSection = styled.div<{ noOfCols?: number }>`\r\n display: flex;\r\n grid-template-columns: repeat(${({ noOfCols }) => noOfCols ?? 3}, 1fr);\r\n gap: 1rem;\r\n max-width: 100%;\r\n flex-wrap: wrap;\r\n\r\n .custom-control-label {\r\n width: 100%;\r\n }\r\n`\r\nexport const StyledRibbonLabel = styled.div`\r\n display: flex;\r\n gap: 2rem;\r\n width: 100%;\r\n\r\n ${StyledRibbon} {\r\n flex-grow: 2;\r\n\r\n .ribbon {\r\n width: 100%;\r\n text-align: center;\r\n\r\n .ribbon-title {\r\n filter: brightness(0.75);\r\n }\r\n }\r\n }\r\n`\r\nexport const StyledSliderFilterSection = styled.div``\r\nexport const StyledCarfaxFilterItemContainer = styled.div`\r\n & + & {\r\n margin-top: 0.75rem;\r\n }\r\n`\r\nexport const StyledCarfaxFilterItemHeader = styled.div`\r\n text-transform: uppercase;\r\n\r\n color: #999;\r\n display: block;\r\n margin-bottom: 0.5rem;\r\n padding-bottom: 0.2rem;\r\n border-bottom: 1px solid #ccc;\r\n border-top: none;\r\n font-weight: bold;\r\n`\r\nexport const StyledCarfaxFilterItemContent = styled.div`\r\n margin-left: 5px;\r\n`\r\nexport const StyledCarfaxAccordion = styled(CustomAccordion)`\r\n background-color: rgb(253, 251, 225);\r\n ${StyledAccordionTitle} img {\r\n width: 10rem;\r\n }\r\n`\r\n\r\nexport const BUYER_SEARCH_OFFSET_HEIGHT = 10\r\n\r\nexport const StyledBuyerSearch = styled.div`\r\n position: sticky;\r\n top: ${BUYER_SEARCH_OFFSET_HEIGHT}px;\r\n`\r\n\r\nexport const StyledFilterSection = styled.div`\r\n max-height: calc(100vh - 28rem);\r\n overflow: auto;\r\n\r\n ::-webkit-scrollbar-thumb {\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n }\r\n\r\n ::-webkit-scrollbar {\r\n width: 0.4rem;\r\n }\r\n`\r\n","import styled from 'styled-components'\r\nimport { Col, Button, Form } from 'react-bootstrap'\r\n\r\nexport const SaveClearAllFilterGroupAction = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n\r\n .btn {\r\n font-size: 1.6rem;\r\n padding-right: 0;\r\n padding-left: 0;\r\n\r\n &:disabled {\r\n color: ${({ theme }) => theme.colors.headerFontColor};\r\n }\r\n }\r\n`\r\nexport const SaveCancelGroupAction = styled(Col)`\r\n display: flex;\r\n justify-content: center;\r\n\r\n .btn {\r\n font-size: 1.4rem;\r\n }\r\n`\r\n\r\nexport const SaveLink = styled(Button)`\r\n color: ${({ theme }) => theme.colors.primary};\r\n\r\n &:active,\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.linkColorLight};\r\n }\r\n\r\n padding-right: 0.5rem;\r\n padding-left: 0;\r\n`\r\n\r\nexport const SaveSearchContainer = styled.div`\r\n background: #fff;\r\n padding: 1rem 0;\r\n\r\n .btn-link {\r\n color: ${({ theme }) => theme.colors.primary};\r\n\r\n &:active,\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.linkColorLight};\r\n }\r\n }\r\n\r\n .form-check-input {\r\n margin-left: -2rem;\r\n }\r\n\r\n .btn {\r\n font-weight: 600;\r\n }\r\n\r\n .btn:is(:hover, :focus, :active) {\r\n box-shadow: none;\r\n text-decoration: none;\r\n }\r\n`\r\nexport const NotifyContainer = styled(Col)`\r\n display: flex;\r\n gap: 2rem;\r\n`\r\n\r\nexport const SaveSearchFormBody = styled(Form)<{ show: boolean }>`\r\n display: ${({ show }) => (show ? 'block' : 'none')};\r\n`\r\n\r\nexport const ActionSeparator = styled.span`\r\n font-weight: 600;\r\n font-size: 1.6rem;\r\n padding: 0.375rem 0.75rem;\r\n\r\n &::before {\r\n content: ' | ';\r\n }\r\n`\r\n","import {\r\n NotifyContainer,\r\n SaveSearchContainer,\r\n SaveClearAllFilterGroupAction,\r\n SaveCancelGroupAction,\r\n SaveLink,\r\n SaveSearchFormBody,\r\n ActionSeparator\r\n} from './SaveSearch.styled'\r\nimport { useEffect, useState } from 'react'\r\nimport { Button, Col, Form, Row } from 'react-bootstrap'\r\nimport { loadDayFiles, saveSearch } from 'apis/vehicleApis'\r\nimport { ISearchResponseData, SavedSearch, SavedSearchData } from 'types/vehicleTypes'\r\nimport { Formik } from 'formik'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport { Operation } from 'types/baseTypes'\r\nimport { TextDanger } from 'components/Forms'\r\nimport { DEFAULT_ERROR_MESSAGE, SessionStorageKey } from 'common/constants'\r\nimport { Rules } from 'common/rules'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { parseHtml } from 'utils/stringUtils'\r\n\r\ninterface IProps {\r\n filtersData: ISearchResponseData[]\r\n onClearFilterClicked?: () => void\r\n onToggleSaveSearch?: (isOpen: boolean) => void\r\n}\r\n\r\nexport const SaveSearch = ({ filtersData, onClearFilterClicked, onToggleSaveSearch }: IProps) => {\r\n const [showSaveSearch, setShowSaveSearch] = useState(false)\r\n const [showErrorMsg, setShowErrorMsg] = useState(false)\r\n\r\n const { isInRule } = useGlobalStore()\r\n const canSaveSearch = isInRule(Rules.VIEW_SAVED_SEARCH_PAGE)\r\n const { userInteraction } = useDtmAnalytics()\r\n const getLocalText = useGlobalStore((state) => state.getLocalText)\r\n\r\n const { data: { search: currrentSearch, days, frequency, durations } = {} as SavedSearchData } = useFetch(() =>\r\n loadDayFiles()\r\n )\r\n\r\n const handleSaveSearch = async (searchData: SavedSearch) => {\r\n filtersData.forEach((item) => {\r\n if (item.DBFieldName === 'VIN' && item.Value !== '') {\r\n item.FriendlyValue = item.Value\r\n item.Selected = true\r\n item.ChildrenFilter = []\r\n item.Operator = Operation.Contains\r\n }\r\n })\r\n userInteraction(`BuyerSearch: SaveSearch`)\r\n try {\r\n await saveSearch({ filters: filtersData, searchData })\r\n setShowSaveSearch(false)\r\n } catch (error) {\r\n setShowErrorMsg(true)\r\n }\r\n }\r\n\r\n const descriptionChange = (event, props) => {\r\n props.setFieldValue('Description', event.target.value)\r\n }\r\n\r\n useEffect(() => {\r\n onToggleSaveSearch(showSaveSearch)\r\n }, [onToggleSaveSearch, showSaveSearch])\r\n\r\n return (\r\n \r\n \r\n {canSaveSearch && (\r\n <>\r\n {\r\n setShowSaveSearch(true)\r\n }}\r\n >\r\n Save Search\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {canSaveSearch && (\r\n handleSaveSearch(values)}\r\n >\r\n {(props) => (\r\n \r\n \r\n descriptionChange(e, props)}\r\n value={props.values.Description}\r\n placeholder=\"Enter Save Search Title\"\r\n />\r\n \r\n \r\n \r\n Notify Me via Email?\r\n \r\n props.setFieldValue('NotifyMe', event.target.checked)}\r\n />\r\n \r\n \r\n props.setFieldValue('NotifyMe', !event.target.checked)}\r\n />\r\n \r\n \r\n \r\n {props.values.NotifyMe && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {frequency?.map((option) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n {props.values.EmailRecurrance > 1 && (\r\n \r\n \r\n {days?.map((option) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {durations?.map((option) => {\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 Save\r\n \r\n \r\n \r\n \r\n \r\n {showErrorMsg && {DEFAULT_ERROR_MESSAGE}}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import styled from 'styled-components'\r\nimport ReactSlider from 'react-slider'\r\n\r\nexport const StyledThumb = styled.div`\r\n height: 2.4rem;\r\n width: 2.4rem;\r\n text-align: center;\r\n background-color: #fff;\r\n color: #000;\r\n border: 0.4rem solid ${({ theme }) => theme.colors.primary};\r\n\r\n // TODO: Find some ways to intervene this instead!!\r\n outline-color: ${({ theme }) => theme.colors.primary};\r\n outline-width: 0;\r\n\r\n border-radius: 50%;\r\n cursor: grab;\r\n\r\n .thumb-text {\r\n vertical-align: middle;\r\n margin-top: 2.5rem;\r\n display: flex;\r\n justify-content: center;\r\n }\r\n`\r\n\r\nexport const StyledTrack = styled.div<{ index: number; value: number[] }>`\r\n top: 1rem;\r\n height: 0.5rem;\r\n background: ${({ index, value, theme }) =>\r\n (value.length === 1 && index === 0) || (value.length === 2 && index === 1) ? theme.colors.primary : '#ddd'};\r\n border-radius: 999px;\r\n`\r\n\r\nexport const StyledMark = styled.span`\r\n padding: inherit;\r\n\r\n width: 1px;\r\n height: 10px;\r\n background-color: #ccc;\r\n cursor: pointer;\r\n vertical-align: middle;\r\n`\r\n\r\nexport const StyledSlider = styled(ReactSlider)`\r\n width: 100%;\r\n height: 5rem;\r\n\r\n ${StyledMark} {\r\n margin: 2rem 1.125rem;\r\n }\r\n`\r\n","import { StyledMark, StyledSlider, StyledThumb, StyledTrack } from './Slider.styled'\r\nimport { ReactSliderProps } from 'react-slider'\r\n\r\nconst renderThumb = (textRenderFn?: (value: number) => string) => (props, state) =>\r\n (\r\n \r\n
{textRenderFn ? textRenderFn(state.valueNow) : state.valueNow}
\r\n
\r\n )\r\nconst renderTrack = (props, state) => \r\nconst renderMark = (props) => \r\n\r\ninterface IProps extends ReactSliderProps {\r\n textRenderFn?: (value: number) => string\r\n}\r\n\r\nexport const Slider = ({ textRenderFn, ...props }: IProps) => {\r\n return (\r\n \r\n )\r\n}\r\n","import { BaseVehicleSearchCriteriaColumn as DBFieldId, PROXIMITY_FILTERS } from 'common/constants'\r\nimport Select from 'components/Select/Select'\r\nimport { Slider } from 'components/Slider/Slider'\r\nimport produce from 'immer'\r\nimport { isEmpty } from 'lodash'\r\nimport { useEffect, useState } from 'react'\r\nimport { Col, Form, Row } from 'react-bootstrap'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { formatNumber } from 'utils/numberUtils'\r\nimport { formatDistanceLabel } from 'utils/utils'\r\n\r\nimport { ISearchFilterResult, ISearchResponseData } from '../../types/vehicleTypes'\r\nimport {\r\n StyledCarfaxFilterItemContainer,\r\n StyledCarfaxFilterItemContent,\r\n StyledCarfaxFilterItemHeader,\r\n StyledMultiSelectFilterSection,\r\n StyledSliderFilterSection\r\n} from './BuyerSearch.styled'\r\n\r\nconst ANY_DISTANCE_OPTION = '99999'\r\n\r\ninterface IProps {\r\n filter: ISearchResponseData | ISearchFilterResult\r\n onChange?: (filter: ISearchResponseData | ISearchFilterResult) => void\r\n}\r\n\r\nexport const SearchFilter = ({ filter, onChange }: IProps) => {\r\n const {\r\n userClaims: { CurrentBuyerPostCode }\r\n } = useGlobalStore()\r\n\r\n const [internalFilter, setInternalFilter] = useState(filter)\r\n const NO_FILTER_APPLICABLE = `No ${internalFilter.FieldName} filters applicable`\r\n\r\n useEffect(() => {\r\n setInternalFilter(filter)\r\n }, [filter])\r\n\r\n const onMultiSelectChange = (\r\n childPredicate: (filter: ISearchFilterResult) => boolean,\r\n isSelected: boolean,\r\n resetFirst?: boolean\r\n ) => {\r\n const result = produce(internalFilter, (draft) => {\r\n draft.ChildrenFilter.forEach((cf) => {\r\n if (resetFirst) cf.Selected = false\r\n if (childPredicate(cf)) cf.Selected = isSelected\r\n })\r\n })\r\n\r\n onChange?.(result)\r\n }\r\n\r\n const onMultiValueSliderChange = (minVal: number, maxVal: number, values: number[]) => {\r\n const result = produce(internalFilter, (draft) => {\r\n draft.Value = values[0].toString()\r\n draft.Value3 = values[1].toString()\r\n draft.Selected = true\r\n draft.FriendlyValue = `${values[0]} - ${values[1]}`\r\n\r\n if ((values[0] === 0 && values[1] === 0) || values[0] < minVal || values[1] > maxVal) {\r\n draft.Value = ''\r\n draft.Value3 = ''\r\n draft.Selected = false\r\n }\r\n })\r\n\r\n onChange?.(result)\r\n }\r\n\r\n const onProximityChange = (value: number) => {\r\n let selectedChild = null\r\n const result = produce(internalFilter, (ft) => {\r\n ft.ChildrenFilter.forEach((cf) => {\r\n if (cf.Selected) {\r\n selectedChild = cf\r\n }\r\n })\r\n\r\n ft.Value = value.toString()\r\n ft.FriendlyValue = formatDistanceLabel(ft.Value, ft?.Value2 ?? selectedChild?.Value2)\r\n ft.Selected = true\r\n })\r\n\r\n onChange?.(result)\r\n }\r\n\r\n const onZipCodeChange = (value: string) => {\r\n let selectedChild: ISearchFilterResult = null\r\n const result = produce(internalFilter, (ft) => {\r\n ft.ChildrenFilter.forEach((cf) => {\r\n if (cf.Selected) {\r\n cf.Value2 = value\r\n selectedChild = cf\r\n }\r\n })\r\n\r\n if (value !== CurrentBuyerPostCode) {\r\n if (ft.ChildrenFilter.find((item) => item.Selected) === undefined) ft.ChildrenFilter[0].Selected = true\r\n } else {\r\n ft.ChildrenFilter[0].Selected = false\r\n }\r\n\r\n ft.Value = ft.Value || selectedChild?.Value\r\n ft.Value2 = value\r\n ft.FriendlyValue = formatDistanceLabel(!ft.Value ? ANY_DISTANCE_OPTION : ft.Value, ft.Value2)\r\n ft.Selected = true\r\n })\r\n\r\n onChange?.(result)\r\n }\r\n\r\n const onConditionGradeChange = (minVal: number, maxVal: number, values: number[]) => {\r\n const result = produce(internalFilter, (draft) => {\r\n draft.Value = formatNumber(values[0], { minimumFractionDigits: 1 })\r\n draft.Value3 = formatNumber(values[1], { minimumFractionDigits: 1 })\r\n draft.Selected = true\r\n draft.FriendlyValue = `${draft.Value} - ${draft.Value3}`\r\n\r\n if ((values[0] === 0 && values[1] === 0) || values[0] < minVal || values[1] > maxVal) {\r\n draft.Value = ''\r\n draft.Value3 = ''\r\n draft.Selected = false\r\n }\r\n })\r\n\r\n onChange?.(result)\r\n }\r\n\r\n if (internalFilter.DBFieldName.startsWith('carfax')) {\r\n return (\r\n \r\n {internalFilter.FieldName}\r\n\r\n \r\n {isEmpty(internalFilter.ChildrenFilter) && <>{NO_FILTER_APPLICABLE}}\r\n {!isEmpty(internalFilter.ChildrenFilter) && (\r\n \r\n {internalFilter.ChildrenFilter.map((cf, idx) => (\r\n \r\n {cf.FriendlyValue}{' '}\r\n ({cf.VehicleCount})\r\n \r\n }\r\n onChange={(e) => onMultiSelectChange((ft) => ft.FilterKey === cf.FilterKey, e.currentTarget.checked)}\r\n />\r\n ))}\r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n\r\n if (internalFilter.FieldId === DBFieldId.VIN) {\r\n const options = []\r\n const selectedOptions = []\r\n internalFilter.ChildrenFilter.forEach((cf) => {\r\n options.push({ value: cf.Value, label: cf.FriendlyValue })\r\n if (cf.Selected) selectedOptions.push({ value: cf.Value, label: cf.FriendlyValue })\r\n })\r\n\r\n return (\r\n \r\n onMultiSelectChange((ft) => options.some((opt) => opt.value === ft.Value), true, true)\r\n }\r\n noOptionsMessage={() => null}\r\n />\r\n )\r\n }\r\n\r\n if (isEmpty(internalFilter.ChildrenFilter)) {\r\n return <>{NO_FILTER_APPLICABLE}\r\n }\r\n\r\n if (internalFilter.MultiSelect) {\r\n return (\r\n \r\n {internalFilter.ChildrenFilter.map((cf, idx) => (\r\n \r\n {cf.FriendlyValue}{' '}\r\n ({cf.VehicleCount})\r\n \r\n }\r\n onChange={(e) => onMultiSelectChange((ft) => ft.FilterKey === cf.FilterKey, e.currentTarget.checked)}\r\n />\r\n ))}\r\n \r\n )\r\n }\r\n\r\n if (internalFilter.FieldId === DBFieldId.Proximity) {\r\n return (\r\n \r\n \r\n \r\n Enter Zip Code\r\n \r\n \r\n onZipCodeChange(e.currentTarget.value)}\r\n />\r\n \r\n \r\n \r\n \r\n x.toString() === internalFilter.ChildrenFilter.find((cf) => cf.Selected)?.Value\r\n )}\r\n textRenderFn={(value) =>\r\n // Ref from `AzureSearchManager.cs:873`\r\n ['Any', '25mi', '50mi', '100mi', '200mi', '500mi', '1000mi'][value]\r\n }\r\n onChange={(value) => {\r\n // Ref from `AzureSearchManager.cs:899`\r\n onProximityChange(PROXIMITY_FILTERS[value])\r\n }}\r\n />\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n if (internalFilter.FieldId === DBFieldId.OdometerCustomRange) {\r\n return (\r\n \r\n cf.Selected).length === 0\r\n ? [0, 150000]\r\n : internalFilter.ChildrenFilter.filter((cf) => cf.Selected).reduce((acc, obj) => {\r\n acc.push(obj.Value)\r\n acc.push(obj.Value3)\r\n\r\n return acc\r\n }, [])\r\n }\r\n step={10000}\r\n textRenderFn={(value) => formatNumber(value)}\r\n onChange={(value: number[]) => onMultiValueSliderChange(0, 150000, value)}\r\n />\r\n \r\n )\r\n }\r\n\r\n if (internalFilter.FieldId === DBFieldId.VehicleConditionCode) {\r\n return (\r\n \r\n \r\n cf.Selected).length === 0\r\n ? [0.0, 5.0]\r\n : internalFilter.ChildrenFilter.filter((cf) => cf.Selected).reduce((acc, obj) => {\r\n acc.push(obj.Value)\r\n acc.push(obj.Value3)\r\n\r\n return acc\r\n }, [])\r\n }\r\n step={0.1}\r\n textRenderFn={(value) =>\r\n formatNumber(value, {\r\n minimumFractionDigits: 1\r\n })\r\n }\r\n onChange={(value: number[]) => onConditionGradeChange(0.0, 5.0, value)}\r\n />\r\n \r\n \r\n )\r\n }\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledTag = styled.div`\r\n font-size: 13px;\r\n height: auto;\r\n padding: 2px 8px 2px 12px;\r\n margin: 8px 8px 0 0;\r\n border-radius: 18px;\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n overflow: visible;\r\n text-transform: none;\r\n max-width: 200px;\r\n transition: background-color 0.2s ease;\r\n border: 0;\r\n outline: 0;\r\n vertical-align: middle;\r\n color: #fff;\r\n display: flex;\r\n align-items: center;\r\n`\r\n","import { ReactNode } from 'react'\r\nimport { StyledTag } from './Tag.styled'\r\n\r\nexport interface IReactTagProps {\r\n title: ReactNode\r\n className?: string\r\n onClick?: () => void\r\n}\r\n\r\nexport const Tag = ({ title, onClick, className }: IReactTagProps) => {\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const StyledSelectedSearchFilters = styled.div`\r\n border-bottom: 1px solid #e5e5e5;\r\n padding: 1.6rem 0;\r\n max-height: 25rem;\r\n overflow: auto;\r\n\r\n .selected-filter-label {\r\n padding-left: 1.6rem;\r\n color: #666;\r\n text-transform: uppercase;\r\n }\r\n\r\n ::-webkit-scrollbar-thumb {\r\n background-color: ${({ theme }) => theme.colors.primary};\r\n }\r\n\r\n ::-webkit-scrollbar {\r\n width: 0.4rem;\r\n }\r\n`\r\n\r\nexport const StyledTagContainer = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n margin-left: 1.2rem;\r\n\r\n .tag-icon,\r\n .show-more {\r\n cursor: pointer;\r\n }\r\n .show-more {\r\n background-color: #ffffff;\r\n border: 1px solid ${({ theme }) => theme.colors.primary};\r\n color: ${({ theme }) => theme.colors.primary};\r\n cursor: pointer;\r\n }\r\n`\r\n","import { SELECTED_SEARCH_FILTERS_LIMIT, SessionStorageKey } from 'common/constants'\r\nimport { Tag } from 'components/Tag/Tag'\r\nimport { ISearchFilterResult } from 'types/vehicleTypes'\r\nimport { useLayoutEffect, useState } from 'react'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTimesCircle, faPlus, faMinus } from '@fortawesome/free-solid-svg-icons'\r\nimport { StyledSelectedSearchFilters, StyledTagContainer } from './SelectedSearchFilters.styled'\r\n\r\ninterface IProps {\r\n filters: ISearchFilterResult[]\r\n onRemoveFilter?: (fieldId: number, filterKey: string) => void\r\n onCollapsed?: (show: boolean) => void\r\n}\r\nexport const SelectedSearchFilters = ({ filters, onRemoveFilter, onCollapsed }: IProps) => {\r\n const [showMore, setShowMore] = useState(false)\r\n const hiddenFiltersLength = filters?.length - SELECTED_SEARCH_FILTERS_LIMIT\r\n const displayShowMore = filters.length > SELECTED_SEARCH_FILTERS_LIMIT && !showMore\r\n const disPlayShowLess = filters.length > SELECTED_SEARCH_FILTERS_LIMIT && showMore\r\n\r\n const handleCollapse = () => {\r\n setShowMore(!showMore)\r\n }\r\n\r\n useLayoutEffect(() => {\r\n onCollapsed?.(showMore)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [showMore])\r\n\r\n return (\r\n \r\n
\r\n {sessionStorage.getItem(SessionStorageKey.SEARCH_DESCRIPTION) || 'SELECTED FILTERS:'}\r\n
\r\n \r\n {filters.slice(0, displayShowMore ? SELECTED_SEARCH_FILTERS_LIMIT : filters.length).map((filter) => (\r\n \r\n {filter.FriendlyValue}  \r\n onRemoveFilter(filter.FieldId, filter.FilterKey)}\r\n icon={faTimesCircle}\r\n />\r\n \r\n }\r\n />\r\n ))}\r\n\r\n {displayShowMore && (\r\n \r\n Show {hiddenFiltersLength} more  \r\n \r\n \r\n }\r\n />\r\n )}\r\n {disPlayShowLess && (\r\n \r\n Show less  \r\n \r\n \r\n }\r\n />\r\n )}\r\n \r\n
\r\n )\r\n}\r\n","import { useCallback, useLayoutEffect, useState } from 'react'\r\n\r\ninterface Size {\r\n width: number\r\n height: number\r\n}\r\n\r\nfunction useElementSize(): [(node: T | null) => void, Size, () => void] {\r\n // Mutable values like 'ref.current' aren't valid dependencies\r\n // because mutating them doesn't re-render the component.\r\n // Instead, we use a state as a ref to be reactive.\r\n const [ref, setRef] = useState(null)\r\n const [size, setSize] = useState({\r\n width: 0,\r\n height: 0\r\n })\r\n\r\n // Prevent too many rendering using useCallback\r\n const handleSize = useCallback(() => {\r\n setSize({\r\n width: ref?.offsetWidth || 0,\r\n height: ref?.offsetHeight || 0\r\n })\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [ref?.offsetHeight, ref?.offsetWidth])\r\n\r\n useLayoutEffect(() => {\r\n handleSize()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [ref?.offsetHeight, ref?.offsetWidth])\r\n\r\n return [setRef, size, handleSize]\r\n}\r\n\r\nexport default useElementSize\r\n","import { quickSearch } from 'apis/vehicleApis'\r\nimport { SessionStorageKey, SRP_FILTERS_QUERY, SRP_INIT_QUERY } from 'common/constants'\r\nimport { useFetch } from 'hooks/useFetch'\r\nimport { useState, createContext } from 'react'\r\nimport {\r\n ISearchFilterResult,\r\n ISearchResponseData,\r\n ISearchVehicleResponse,\r\n ISearchVehiclesRequest\r\n} from 'types/vehicleTypes'\r\nimport { parseUrlSearchParams } from 'utils/urlParams'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { parseJson } from 'utils/utils'\r\nimport { useContext } from 'react'\r\nimport { VehicleListContext } from 'modules/VehicleList'\r\n\r\nexport interface IVehicleSearchState {\r\n queryRequest: ISearchVehiclesRequest\r\n updateFilters: (filters: ISearchResponseData[]) => void\r\n filtersData: ISearchResponseData[]\r\n showSlideOutFilterSearch: boolean\r\n setShowSlideOutFilterSearch: (value: boolean) => void\r\n closeShowSlideOutFilterSearch: () => void\r\n}\r\nexport interface ISRPSearchParams {\r\n clearSearch?: string\r\n}\r\n\r\nexport const FilterSearchContext = createContext(null)\r\n\r\nexport const FilterSearchContextProvider = ({ children }) => {\r\n const location = useLocation()\r\n const query = parseUrlSearchParams(location.search)\r\n const { setVehiclesState } = useContext(VehicleListContext)\r\n const [showSlideOutFilterSearch, setShowSlideOutFilterSearch] = useState(false)\r\n\r\n const sessionSearchFilters: ISearchFilterResult[] = query.clearSearch\r\n ? []\r\n : parseJson(window.sessionStorage.getItem(SessionStorageKey.SEARCH_FILTERS))\r\n\r\n const [queryRequest, setQueryRequest] = useState(\r\n sessionSearchFilters\r\n ? {\r\n ...SRP_INIT_QUERY,\r\n SearchQuery: { ...SRP_INIT_QUERY.SearchQuery, SearchFilters: sessionSearchFilters }\r\n }\r\n : SRP_INIT_QUERY\r\n )\r\n\r\n const [filterRequest, setFilterRequest] = useState(\r\n sessionSearchFilters\r\n ? {\r\n ...SRP_FILTERS_QUERY,\r\n SearchQuery: { ...SRP_FILTERS_QUERY.SearchQuery, SearchFilters: sessionSearchFilters }\r\n }\r\n : SRP_FILTERS_QUERY\r\n )\r\n\r\n const updateFilters = (filters: ISearchResponseData[]) => {\r\n setQueryRequest(\r\n (req) => ({ ...req, SearchQuery: { ...req.SearchQuery, SearchFilters: filters } } as ISearchVehiclesRequest)\r\n )\r\n setFilterRequest(\r\n (req) => ({ ...req, SearchQuery: { ...req.SearchQuery, SearchFilters: filters } } as ISearchVehiclesRequest)\r\n )\r\n\r\n sessionStorage.setItem(SessionStorageKey.SEARCH_FILTERS, JSON.stringify(filters))\r\n setVehiclesState((state) => {\r\n state.selectedVehicles = []\r\n state.currentPage = 0\r\n })\r\n setShowSlideOutFilterSearch(false)\r\n }\r\n\r\n const { data: { Data: filtersData } = {} as ISearchVehicleResponse } = useFetch(\r\n () => quickSearch(filterRequest),\r\n [filterRequest]\r\n )\r\n\r\n const closeShowSlideOutFilterSearch = () => {\r\n setShowSlideOutFilterSearch(false)\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import {\r\n BaseVehicleSearchCriteriaColumn as DBFieldId,\r\n carfaxIcon,\r\n DEFAULT_EXPAND_FILTERS_NUMBER,\r\n RANGE_FIELD_ID,\r\n SessionStorageKey\r\n} from 'common/constants'\r\nimport { Rules } from 'common/rules'\r\nimport { CustomAccordion } from 'components/CustomAccordion/CustomAccordion'\r\nimport { StyledHomeSectionHeaderTitle } from 'components/Header/HomeSectionHeader.styled'\r\nimport { Ribbon } from 'components/Ribbon/Ribbon'\r\nimport produce from 'immer'\r\nimport { isEmpty } from 'lodash'\r\nimport { useEffect, useState, useCallback, useContext } from 'react'\r\nimport { Button, Form } from 'react-bootstrap'\r\nimport { useGlobalStore } from '../../store/useGlobalStore'\r\nimport { ISearchResponseData } from '../../types/vehicleTypes'\r\nimport {\r\n StyledFilterSection,\r\n StyledBuyerSearch,\r\n StyledBuyerSearchAction,\r\n StyledBuyerSearchContent,\r\n StyledBuyerSearchHeader,\r\n StyledCarfaxAccordion,\r\n StyledMultiSelectFilterSection,\r\n StyledRibbonLabel,\r\n BUYER_SEARCH_OFFSET_HEIGHT\r\n} from './BuyerSearch.styled'\r\nimport { SaveSearch } from './SaveSearch'\r\nimport { SearchFilter } from './SearchFilter'\r\nimport classNames from 'classnames'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { SelectedSearchFilters } from './SelectedSearchFilters'\r\nimport useElementSize from 'hooks/useElementSize'\r\nimport { FilterSearchContext } from 'contexts/FilterSearchContext'\r\n\r\nexport const BuyerSearch = () => {\r\n const vehicleEventFilters = [DBFieldId.NewInventory, DBFieldId.DecreasedPrice, DBFieldId.DisclosurePresent]\r\n\r\n // This is a clone of `filterData`, use as data when \"Search\" button is clicked\r\n const [appliedFilters, setAppliedFilters] = useState([])\r\n const [seeMoreFilter, setSeeMoreFilter] = useState(false)\r\n const [saveSearchOpen, setSaveSearchOpen] = useState(false)\r\n\r\n const { userInteraction } = useDtmAnalytics()\r\n const { isInRule, getSystemSetting } = useGlobalStore()\r\n\r\n const viewCarfaxAdvantage = isInRule(Rules.VIEW_CARFAX_ADVANCED)\r\n const { filtersData, updateFilters } = useContext(FilterSearchContext)\r\n\r\n const searchCarfaxData = filtersData?.filter((item) => item.DBFieldName.startsWith('carfax'))\r\n const isNormalFilter = (filter: ISearchResponseData) =>\r\n filter.FieldId !== DBFieldId.VIN &&\r\n !filter.DBFieldName.startsWith('carfax') &&\r\n !vehicleEventFilters.some((id) => id === filter.FieldId)\r\n\r\n // -2 because always show Vin & Vehicle Events filters. Should always be >= 0\r\n const defaultExpandLimit = Math.max(\r\n (+getSystemSetting('SRP_FILTER_PRIORITIZE_FIELD_LIMIT') || DEFAULT_EXPAND_FILTERS_NUMBER) - 2,\r\n 0\r\n )\r\n\r\n const { getLocalText } = useGlobalStore()\r\n\r\n const onSearchFilterChange = (filter: ISearchResponseData) => {\r\n setAppliedFilters((filters) => [...filters.filter((f) => f.FieldId !== filter.FieldId), filter])\r\n }\r\n\r\n const hasAnySelectedChild = useCallback(\r\n (filter?: ISearchResponseData) => (!!filter ? filter.ChildrenFilter.some((cf) => cf.Selected) : false),\r\n []\r\n )\r\n\r\n const onMultiSelectChange = (filter: ISearchResponseData, filterKey: string, isChecked: boolean) => {\r\n const result = produce(\r\n appliedFilters.filter((f) => vehicleEventFilters.some((id) => id === f.FieldId)),\r\n (filters) => {\r\n filters.forEach((f) =>\r\n f.ChildrenFilter.forEach((cf) => (cf.FilterKey === filterKey ? (cf.Selected = isChecked) : cf.Selected))\r\n )\r\n }\r\n )\r\n\r\n result.forEach((r) => onSearchFilterChange(r))\r\n }\r\n\r\n const hasAnySelectedVehicleEvents = (filtersData ?? [])\r\n .filter((f) => vehicleEventFilters.some((id) => id === f.FieldId))\r\n .some((f) => hasAnySelectedChild(f))\r\n const hasAnySelectedVin = hasAnySelectedChild((filtersData ?? []).find((f) => f.FieldId === DBFieldId.VIN))\r\n\r\n const accordionKey = `${[...(filtersData ?? []).map((f) => f.FieldId)].join('-')}`\r\n\r\n const renderVinAccordion = () =>\r\n filtersData\r\n .filter((f) => f.FieldId === DBFieldId.VIN)\r\n .map((f) => (\r\n \r\n ap.FieldId === f.FieldId) ?? f}\r\n onChange={onSearchFilterChange}\r\n />\r\n \r\n ))\r\n\r\n const renderVehicleEventAccordion = () =>\r\n filtersData\r\n .filter((f) => vehicleEventFilters.some((id) => id === f.FieldId))\r\n .some((f) => f.ChildrenFilter.length > 0) && (\r\n \r\n \r\n {filtersData\r\n .filter((f) => vehicleEventFilters.some((id) => id === f.FieldId))\r\n .map(\r\n (f) =>\r\n !isEmpty(f.ChildrenFilter) && (\r\n ap.FieldId === f.FieldId) ?? f).ChildrenFilter[0]?.Selected\r\n }\r\n label={\r\n \r\n \r\n \r\n {`(${f.ChildrenFilter[0].VehicleCount})`}\r\n \r\n \r\n }\r\n onChange={(e) => onMultiSelectChange(f, e.currentTarget.value, e.currentTarget.checked)}\r\n />\r\n )\r\n )}\r\n \r\n \r\n )\r\n\r\n const doSearch = (filters) => {\r\n updateFilters(filters)\r\n }\r\n\r\n const onClearAllClick = () => {\r\n sessionStorage.setItem(SessionStorageKey.QUERY_FILTERS, '')\r\n const resettedData = produce(filtersData, (filters) => {\r\n filters.forEach((f) => {\r\n f.ChildrenFilter.forEach((cf) => {\r\n cf.Selected = false\r\n cf.Value = ''\r\n })\r\n return f\r\n })\r\n })\r\n sessionStorage.setItem(SessionStorageKey.SEARCH_FILTERS, JSON.stringify(resettedData))\r\n sessionStorage.setItem(SessionStorageKey.SEARCH_DESCRIPTION, '')\r\n userInteraction(`BuyerSearch: ClearAll`)\r\n setAppliedFilters([])\r\n doSearch([])\r\n }\r\n\r\n const deleteTagHandler = (fieldId, filterKey) => {\r\n const filter = appliedFilters.find((f) => f.FieldId === fieldId)\r\n const result = produce(filter, (ft) => {\r\n ft.Selected = false\r\n ft.Value = ''\r\n ft.ChildrenFilter.forEach((cf) => {\r\n if (cf.FilterKey === filterKey) {\r\n cf.Selected = false\r\n }\r\n })\r\n })\r\n updateFilters?.([...appliedFilters.filter((f) => f.FieldId !== result.FieldId), result])\r\n sessionStorage.setItem(SessionStorageKey.SEARCH_DESCRIPTION, '')\r\n }\r\n\r\n // Handle when filterData changed\r\n useEffect(() => {\r\n if (!filtersData) return\r\n\r\n setAppliedFilters(\r\n produce(filtersData, (drafts) => {\r\n drafts.forEach((x) => {\r\n let selectedChild = x.ChildrenFilter.find(\r\n (x) => x.Selected && x.Value !== '' && RANGE_FIELD_ID.includes(x.FieldId)\r\n )\r\n\r\n if (selectedChild) {\r\n x.Selected = true\r\n x.Value = selectedChild.Value\r\n x.Value2 = selectedChild.Value2\r\n x.Value3 = selectedChild.Value3\r\n x.FriendlyValue = selectedChild.FriendlyValue\r\n }\r\n })\r\n })\r\n )\r\n }, [filtersData])\r\n\r\n const [headerRef, { height }, handleSize] = useElementSize()\r\n\r\n return (\r\n \r\n \r\n \r\n Buyer Search\r\n \r\n \r\n
\r\n {filtersData?.some((f) => f.ChildrenFilter.some((cf) => cf.Selected)) && (\r\n x.ChildrenFilter).filter((f) => f.Selected === true)}\r\n onRemoveFilter={deleteTagHandler}\r\n onCollapsed={handleSize}\r\n >\r\n )}\r\n
\r\n \r\n {!saveSearchOpen && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n {!!filtersData && (\r\n \r\n {renderVinAccordion()}\r\n {renderVehicleEventAccordion()}\r\n\r\n {filtersData\r\n .filter((f) => isNormalFilter(f))\r\n .slice(0, seeMoreFilter ? filtersData?.length : defaultExpandLimit)\r\n .map((f, idx) => (\r\n \r\n ap.FieldId === f.FieldId) ?? f}\r\n onChange={onSearchFilterChange}\r\n />\r\n \r\n ))}\r\n\r\n {/* Carfax filters group*/}\r\n {seeMoreFilter && viewCarfaxAdvantage && searchCarfaxData?.length > 0 && (\r\n }\r\n >\r\n {searchCarfaxData.map((f) => (\r\n ap.FieldId === f.FieldId) ?? f}\r\n onChange={onSearchFilterChange}\r\n key={`f.FieldId ${accordionKey}`}\r\n />\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 { largeScreen } from 'common/theme'\r\nimport { StyledPagination } from 'components/Paging'\r\nimport { StyledVehicleList } from 'modules/VehicleList'\r\nimport { StyledVehicleStickyBar } from 'modules/VehicleList/VehicleStickyBar.styled'\r\nimport { Col } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledSearchResultsPage = styled.div`\r\n ${StyledVehicleStickyBar} {\r\n border-radius: 0;\r\n }\r\n\r\n ${StyledVehicleList} {\r\n padding: 2rem;\r\n }\r\n`\r\n\r\nexport const SearchFilterColumn = styled(Col)`\r\n @media (max-width: ${largeScreen}) {\r\n display: none;\r\n }\r\n border-right: 1px solid #e5e5e5;\r\n`\r\n\r\nexport const StyledTopPaging = styled.div`\r\n ${StyledPagination} {\r\n justify-content: flex-end;\r\n margin-right: 3rem;\r\n }\r\n @media (max-width: ${largeScreen}) {\r\n display: none;\r\n }\r\n`\r\n","import { gridBreakPoints } from 'common/theme'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledSlideOutSearchFilter = styled.div`\r\n .slide-out-close {\r\n margin-top: -1.5rem;\r\n }\r\n .slide-out-content {\r\n left: 0;\r\n @media (max-width: ${gridBreakPoints.xl}) {\r\n width: 50%;\r\n }\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n width: 100%;\r\n }\r\n }\r\n`\r\n","import { SlideOut } from 'components/SlideOut/SlideOut'\r\nimport { BuyerSearch } from './BuyerSearch'\r\nimport { StyledSlideOutSearchFilter } from './SlideOutSearchFilter.styled'\r\ninterface IProps {\r\n isOpen: boolean\r\n closeFilter?: () => void\r\n}\r\nexport const SlideOutSearchFilter = ({ isOpen, closeFilter }: IProps) => {\r\n return (\r\n \r\n closeFilter()}>\r\n \r\n \r\n \r\n )\r\n}\r\n","function FilterIcon() {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FilterIcon\r\n","import styled from 'styled-components'\r\nimport { Button } from 'react-bootstrap'\r\nimport { largeScreen, smallScreen } from 'common/theme'\r\n\r\ninterface IShowProps {\r\n show: boolean\r\n}\r\nexport const StyledSearchFilterButton = styled(Button)`\r\n display: none;\r\n flex-wrap: wrap;\r\n color: #fff;\r\n font-size: 1.6rem;\r\n background: none;\r\n border: none;\r\n\r\n @media (max-width: ${largeScreen}) {\r\n display: flex;\r\n }\r\n\r\n .filter-text {\r\n @media (max-width: ${smallScreen}) {\r\n display: none;\r\n }\r\n }\r\n`\r\n","import { FilterSearchContext } from 'contexts/FilterSearchContext'\r\nimport FilterIcon from 'images/icon/FilterIcon'\r\nimport { useContext } from 'react'\r\nimport { StyledSearchFilterButton } from './SearchFilterButton.styled'\r\n\r\ninterface IProps {\r\n showFilterSearch: boolean\r\n}\r\nexport const SearchFilterButton = ({ showFilterSearch }: IProps) => {\r\n const { setShowSlideOutFilterSearch } = useContext(FilterSearchContext)\r\n const handlerClickSearch = () => {\r\n setShowSlideOutFilterSearch(true)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { getBidVehicles, getWatchListVehicles } from 'apis/dashboardApis'\r\nimport { searchVehicles } from 'apis/vehicleApis'\r\nimport { BUY_VEHICLE_NO_ACTIVITY, SessionStorageKey } from 'common/constants'\r\nimport { AlertDialog } from 'components/AlertDialog/AlertDialog'\r\nimport { BuyerSearch } from 'modules/SRP/BuyerSearch'\r\nimport { CurrentBidsCount } from 'modules/Watchlist/CurrentBidsCount'\r\nimport { WatchListCount } from 'modules/Watchlist/WatchListCount'\r\nimport { FileEarMarkArrowDown } from 'images/icon/FileEarMarkArrowDown'\r\nimport { Layout } from 'layouts/Layout'\r\nimport { parseInt } from 'lodash'\r\nimport { BiddingSidePanel } from 'modules/BiddingSidePanel'\r\nimport { VehicleList } from 'modules/VehicleList'\r\nimport { useCallback, useContext, useEffect, useState } from 'react'\r\nimport { Col, Row } from 'react-bootstrap'\r\nimport { Link, useLocation } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { GetBidVehiclesRequest, IGetBidVehiclesResponse, ISearchVehiclesRequest } from 'types/vehicleTypes'\r\nimport { setListingBreadcrumb } from 'utils/breadcrumbUtils'\r\nimport { downloadURI } from 'utils/exportFileUtil'\r\nimport { useFetch } from '../hooks/useFetch'\r\nimport { SearchFilterColumn, StyledSearchResultsPage, StyledTopPaging } from './SearchResultsPage.styled'\r\nimport { VehicleListContext, VehicleListContextProvider } from 'modules/VehicleList/VehicleListContext'\r\nimport { Paging } from 'components/Paging'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\nimport { DefaultErrorBoundary } from 'modules/DefaultErrorBoundary'\r\nimport { SlideOutSearchFilter } from 'modules/SRP/SlideOutSearchFilter'\r\nimport { FilterSearchContext, FilterSearchContextProvider } from 'contexts/FilterSearchContext'\r\nimport { SearchFilterButton } from 'modules/SRP/SearchFilterButton'\r\n\r\nexport interface IAlertProps {\r\n message: string\r\n modalShow: boolean\r\n}\r\n\r\nexport const SearchResultsPageContent = () => {\r\n const location = useLocation()\r\n const { setVehiclesState, totalPages, currentPage } = useContext(VehicleListContext)\r\n const { queryRequest, showSlideOutFilterSearch, closeShowSlideOutFilterSearch } = useContext(FilterSearchContext)\r\n\r\n // Hooks & Contexts\r\n const [getLocalText, getSystemSetting] = useGlobalStore((state) => [state.getLocalText, state.getSystemSetting])\r\n const pageTitle = getLocalText('SEARCH_RESULTS', 'Search Results')\r\n const noVehicleText = getLocalText('NO_VEHICLE_FOUND_BODY', BUY_VEHICLE_NO_ACTIVITY.SEARCH_RESULTS)\r\n const showRetailViewOpt = (getSystemSetting('SHOW_SRP_RETAIL_VIEW_OPTION') as string) === '1'\r\n const [alertMessage, setAlertMessage] = useState({ message: '', modalShow: false })\r\n\r\n const { endPageLoad } = useDtmAnalytics()\r\n // WL/CB data\r\n const { data: { TotalRecords: watchListCount } = {} as IGetBidVehiclesResponse, loading: watchListCountLoading } =\r\n useFetch(() => getWatchListVehicles(new GetBidVehiclesRequest()))\r\n const { data: { TotalRecords: currentBidsCount } = {} as IGetBidVehiclesResponse, loading: currentBidsCountLoading } =\r\n useFetch(() => getBidVehicles(new GetBidVehiclesRequest()))\r\n\r\n const getSRPRetailViewReport = (selectedVehicles) => {\r\n const maxVehiclesNumberSRPRetail = parseInt(getSystemSetting('SRP_RETAIL_VIEW_MAX_VEHICLES_SELECTED') as string)\r\n\r\n if (selectedVehicles?.length > 0 && selectedVehicles?.length <= maxVehiclesNumberSRPRetail) {\r\n const url = `resource/GetSRPRetailViewReport?vehicleInstanceIds=${selectedVehicles.join()}`\r\n downloadURI(url)\r\n setVehiclesState((state) => {\r\n state.selectedVehicles = []\r\n })\r\n } else if (selectedVehicles?.length > maxVehiclesNumberSRPRetail) {\r\n let warningText = getLocalText('SRP_RETAIL_VIEW_WARNING', 'You cannot select more than %NUMBER% vehicles')\r\n warningText = warningText.replace('%NUMBER%', maxVehiclesNumberSRPRetail as never)\r\n setAlertMessage({\r\n message: warningText,\r\n modalShow: true\r\n })\r\n } else {\r\n setAlertMessage({\r\n message: 'Please select one or more vehicles.',\r\n modalShow: true\r\n })\r\n }\r\n }\r\n\r\n const handleSearch = useCallback(async (request: ISearchVehiclesRequest) => {\r\n const response = await searchVehicles(request)\r\n endPageLoad(response.Items, {\r\n searchData: {\r\n sortBy: response.SortBy,\r\n sortOptions: response.SortOptions,\r\n filters: request?.SearchQuery?.SearchFilters,\r\n TotalRecords: response.TotalRecords,\r\n PageSize: response.PageSize\r\n }\r\n })\r\n\r\n sessionStorage.setItem(SessionStorageKey.PAGE_SELECTED, response.PageNumber.toString())\r\n sessionStorage.setItem(SessionStorageKey.PAGE_SIZE, response.PageSize.toString())\r\n sessionStorage.setItem(SessionStorageKey.SESSION_SORT, JSON.stringify(response.SortBy))\r\n\r\n setTimeout(() => {\r\n scrollToVin()\r\n }, 500)\r\n\r\n return response\r\n }, [])\r\n\r\n const scrollToVin = () => {\r\n var vin = sessionStorage.getItem(SessionStorageKey.SCROLL_TO_VIN)\r\n let topPosition = 0\r\n if (vin && vin !== '') {\r\n let elementDiv = document.getElementById('vehicle_' + vin)\r\n let adjustmentPosition = 0\r\n\r\n if (sessionStorage.getItem(SessionStorageKey.VIEW_VEHICLE_LIST) === 'grid') adjustmentPosition = 220\r\n\r\n if (elementDiv && elementDiv.parentElement && elementDiv.parentElement.parentElement) {\r\n topPosition = elementDiv.parentElement.parentElement.offsetTop + adjustmentPosition\r\n }\r\n sessionStorage.removeItem(SessionStorageKey.SCROLL_TO_VIN)\r\n }\r\n\r\n window.scrollTo({\r\n top: topPosition,\r\n behavior: 'auto'\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n setListingBreadcrumb(pageTitle, location.pathname)\r\n }, [pageTitle])\r\n return (\r\n \r\n \r\n {showRetailViewOpt && (\r\n setAlertMessage({ ...alertMessage, modalShow: false })}\r\n />\r\n )}\r\n \r\n {totalPages > 0 && (\r\n \r\n setVehiclesState((state) => {\r\n state.currentPage = pageNumber - 1\r\n })\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pageTitle}\r\n \r\n }\r\n showCheckbox={showRetailViewOpt}\r\n bottomPagination\r\n queryFunction={handleSearch}\r\n queryRequest={queryRequest}\r\n navigationLink={() => (\r\n <>\r\n \r\n \r\n \r\n )}\r\n checkboxAction={\r\n !showRetailViewOpt\r\n ? null\r\n : (selectedVehicles) => (\r\n getSRPRetailViewReport(selectedVehicles)}>\r\n \r\n \r\n {getLocalText('SRP_RETAIL_VIEW', 'Retail View')}\r\n \r\n \r\n )\r\n }\r\n noActivityMessage={noVehicleText}\r\n gridLayoutColProps={{ xs: 12, lg: 4, md: 6 }}\r\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 SearchResultsPage = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { FORBIDDEN_PAGE } from 'common/messages'\r\nimport { Rules } from 'common/rules'\r\nimport { Loader } from 'components/Loader'\r\nimport ScrollToTop from 'components/Share/ScrollToTop'\r\nimport { LayoutContextProvider } from 'contexts/LayoutContext'\r\nimport { PortalThemeProvider } from 'core/theme/ThemeProvider'\r\nimport { useFetchUserClaim } from 'hooks/useFetchUserClaim'\r\nimport useNotification from 'hooks/useNotification'\r\nimport { AlertNotification } from 'components/AlertNotification/AlertNotification'\r\nimport { ContactUs } from 'pages/ContactUs'\r\nimport { Dashboard } from 'pages/Dashboard'\r\nimport { ErrorPage } from 'pages/ErrorPage'\r\nimport { ForgotPassword } from 'pages/ForgotPassword'\r\nimport { Login } from 'pages/Login'\r\nimport { Privacy } from 'pages/Privacy'\r\nimport { TermCondition } from 'pages/TermCondition'\r\nimport { Fragment, lazy, PropsWithChildren, Suspense, useEffect, useState } from 'react'\r\nimport { useMemo } from 'react'\r\nimport { Helmet } from 'react-helmet'\r\nimport { IntlProvider } from 'react-intl'\r\nimport { BrowserRouter, Redirect, Route, RouteProps, Switch } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { DtmPageName, setPageInfo } from 'utils/analyticsUtils'\r\nimport shallow from 'zustand/shallow'\r\nimport { WatchListPage } from 'pages/WatchListPage'\r\nimport { CurrentBidsPage } from 'pages/CurrentBidsPage'\r\nimport { SearchResultsPage } from 'pages/SearchResultsPage'\r\nimport { AppRoutes } from './common/routes'\r\nimport { SliderContextProvider } from 'contexts/SliderContext'\r\nimport { DefaultErrorBoundary } from 'modules/DefaultErrorBoundary'\r\n\r\ninterface IAuthenticatedRouteProps extends PropsWithChildren {\r\n allowedRules?: Rules[]\r\n pageName?: string\r\n}\r\n\r\ninterface IAnalyticsRouteProps extends RouteProps {\r\n pageName?: string\r\n}\r\n\r\nconst AnalyticsRoute = ({ pageName, ...props }: IAnalyticsRouteProps) => {\r\n useMemo(() => {\r\n if (pageName) {\r\n setPageInfo(pageName)\r\n }\r\n }, [pageName])\r\n\r\n return \r\n}\r\n\r\nconst AuthenticatedRoute = ({ pageName, allowedRules, children, ...props }: IAuthenticatedRouteProps) => {\r\n const [rules, isInRule] = useGlobalStore((state) => [state.rules, state.isInRule], shallow)\r\n const [allow, setAllow] = useState(false)\r\n\r\n useNotification()\r\n\r\n useEffect(() => {\r\n allowedRules?.forEach((rule) => {\r\n if (isInRule(rule)) {\r\n setAllow(true)\r\n return\r\n }\r\n })\r\n }, [rules, allowedRules, isInRule])\r\n\r\n return (\r\n \r\n {!allow ? (\r\n \r\n ) : (\r\n }>\r\n {children}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nconst PublicRoute = ({ children, ...props }: RouteProps) => {\r\n return (\r\n \r\n }>\r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport const App = () => {\r\n const [localText, isAuthenticated] = useGlobalStore((state) => [state.localText, state.isAuthenticated])\r\n const { loading: userClaimLoading } = useFetchUserClaim()\r\n if (userClaimLoading) {\r\n return \r\n }\r\n const Faq = lazy(() => import('./pages/Faq'))\r\n const VehicleDetailsPage = lazy(() => import('./pages/VehicleDetailsPage'))\r\n return (\r\n
\r\n {localText && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!userClaimLoading && isAuthenticated ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\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 { useFetch } from './useFetch'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport shallow from 'zustand/shallow'\r\n\r\nexport const useFetchUserClaim = () => {\r\n const [userClaims, isAuthenticated, fetchUserClaim] = useGlobalStore(\r\n (state) => [state.userClaims, state.isAuthenticated, state.fetchUserClaim],\r\n shallow\r\n )\r\n\r\n const { loading, error } = useFetch(async () => {\r\n if (isAuthenticated && !userClaims?.UserId) {\r\n await fetchUserClaim()\r\n }\r\n }, [isAuthenticated])\r\n\r\n return { loading, error }\r\n}\r\n","/* eslint-disable import/first */\r\nimport 'react-app-polyfill/ie11'\r\nimport 'core-js/es/array'\r\nimport 'core-js/es/object'\r\nimport React from 'react'\r\n\r\nimport ReactDOM from 'react-dom'\r\nimport { App } from 'App'\r\nif ((process.env.NODE_ENV as any) === 'mock') {\r\n const { worker } = require('./mocks/browser')\r\n worker.start()\r\n}\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n)\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\n// reportWebVitals();\r\n","import { SaveSearch } from '../modules/SRP/SaveSearch'\r\nimport { DefaultFilterOptions, DEFAULT_BIG_PAGE_SIZE } from 'common/constants'\r\nimport {\r\n BaseCollectionRequest,\r\n IBaseCollectionRequest,\r\n IBaseCollectionResponse,\r\n IBaseRequest,\r\n IDropdownData,\r\n IFilterOptions,\r\n ISortBy,\r\n Operation,\r\n SortOrder\r\n} from './baseTypes'\r\nimport { IAccountInfo, IPurchaseHistory } from './accountTypes'\r\nimport { IAuctionInfo } from './auctionTypes'\r\nimport { IUserProfile } from './userTypes'\r\nimport { DateTime } from 'luxon'\r\n\r\nexport interface IVehicleInfo {\r\n InstanceID: number\r\n Model: string\r\n ModelYear: number\r\n ImageURL: string\r\n Title: string\r\n VIN: string\r\n Mileage: number\r\n Properties: IVehicleProperties[]\r\n SaleChannelID: number\r\n SaleChannelTypeID: number\r\n SaleEventID: number\r\n LocationID: number\r\n SalesSessionStepID: number\r\n WatchListID: number\r\n StatusID: number\r\n BuyItNowPriceString: string\r\n BuyItNowPrice: number\r\n FinalPriceString: string\r\n FinalPrice: number\r\n OfferID: number\r\n OfferStatusID: number\r\n PointBalance: number\r\n GroundingCompletionDate?: string\r\n groundingTimeLeft?: string\r\n StatusDescription: string\r\n DirectSaleVehicleId: number\r\n ReserveMet: number\r\n OfferTag?: string\r\n SaleChannelName: string\r\n InteriorTrim: string\r\n Derivative: string\r\n ExteriorColour: string\r\n Images: IVehicleImage[]\r\n Is360Eligible: boolean\r\n IsT8Eligible: boolean\r\n IsWaiveEnabled: boolean\r\n IsMandatory: boolean\r\n VehicleNote: string\r\n NoteId: number\r\n IsRecentlyAdded: boolean\r\n DecreasedPrice: boolean\r\n NewInventory: boolean\r\n DisclosurePresent: boolean\r\n DisclosureNote: string\r\n DisclosureIndicator: boolean\r\n Incentives: IIncentive[]\r\n IsIncentiveAccumulate: boolean\r\n ThumbImageURL: string\r\n CanBuyItNow: boolean\r\n Charges: IVehicleCharges[]\r\n WheelType: string\r\n Defects: IDefect[]\r\n SourceCode: string\r\n IsSellerDisclosure: boolean\r\n Make: string\r\n Condition: string\r\n Transmission: string\r\n BodyStyle: string\r\n VehicleLocationCity: string\r\n LocationAddressDetails: string\r\n LocationPostCode: string\r\n EngineSize: string\r\n EngineDescription: string\r\n HasExternalAttachments: boolean\r\n}\r\n\r\nexport interface IVehicleCharges {\r\n ID: number\r\n VehicleInstanceID: number\r\n VehicleChargeTypeID: number\r\n VehicleChargeTypeDescription: string\r\n IsAddhoc: boolean\r\n Price: number\r\n PriceString: string\r\n VatRate: number\r\n Vat: number\r\n VatWithoutCalc: number\r\n ChargeID: number\r\n GrossPrice: number\r\n}\r\n\r\nexport interface IIncentive {\r\n Name: string\r\n Amount: number\r\n AmountString: string\r\n}\r\nexport interface IVehicleImage {\r\n ID: number\r\n Description: string\r\n ImageURL: string\r\n ImageType: string\r\n LocalImageURL: string\r\n LocalThumbImageURL: string\r\n VehicleImageTypeDescription: string\r\n DamageImageDescription: string\r\n VehicleDamageID: number\r\n}\r\n\r\nexport interface IVehicleProperties {\r\n ID: number\r\n Code: string\r\n Description: string\r\n UIConstantName: string\r\n}\r\nexport interface IVehicleData {\r\n CanBid: boolean\r\n EndDate: string\r\n HasPayment: boolean\r\n IsAvailable: boolean\r\n accountList: IAccountInfo[]\r\n auctionInfo?: IAuctionInfo\r\n curAccount: number\r\n isVisible: boolean\r\n vehicle: IVehicleInfo\r\n notes: string[]\r\n inspect: IVehicleInspect\r\n carfaxSnapshotList: ICarFaxSnapshotItem[]\r\n documentSignInfo: IDocumentSignInfor\r\n SalesSessionStepId: number\r\n Recalls: Recall\r\n uniquePackages: IPackageGroup[]\r\n uniqueTypes: IBaseList[]\r\n PurchaseHistory: IPurchaseHistory\r\n}\r\n\r\nexport interface IBaseList {\r\n Description: string\r\n IntegerValue: number\r\n}\r\n\r\nexport interface IDefect {\r\n Code: string\r\n Description: string\r\n ClaimDate: DateTime\r\n Mileage: string\r\n}\r\n\r\nexport interface IPackageGroup {\r\n Description: string\r\n Option: string[]\r\n}\r\n\r\nexport interface IVehicleInspect {\r\n VehicleDamage: IVehicleDamage[]\r\n uniquePackages: IPackageGroup[]\r\n FrameDamage: boolean\r\n AnnouncedConditions: string\r\n Comments: string\r\n AsIs100K: string\r\n TMUReason: string\r\n VehicleTyreDetails?: IVehicleTyreInspectionDetail[]\r\n\r\n InspectionDate: string\r\n BasicWarranty: string\r\n PowertrainWarranty: string\r\n NonRunner: boolean\r\n NumberOfKeys: number\r\n MasterKeyExists: boolean\r\n Odor: string\r\n InspectionCompany: string\r\n}\r\n\r\nexport interface IVehicleDamage extends IVehicleImage {\r\n ID: number\r\n Description: any\r\n Area: string\r\n Region: string\r\n Repaired: boolean\r\n Chargeable: boolean\r\n ImageURL: string\r\n Type: string\r\n}\r\n\r\nexport class IDamageSummary {\r\n DamageArea: string\r\n DamageItems: IDamageItem[]\r\n}\r\n\r\nexport class IDamageItem {\r\n ID: number\r\n DamageDescription: string\r\n ImageURL: string\r\n DamageType: string\r\n IsImageLoaded: boolean\r\n Repaired: string\r\n DamageCondition: string\r\n}\r\nexport interface IVehicleTyreInspectionDetail {\r\n ID: number\r\n VehicleInstanceID: number\r\n VehicleInspectionID: number\r\n Description: string\r\n IsLegal: boolean\r\n Depth: number\r\n Make: string\r\n DOT: string\r\n NSpec: string\r\n Size: string\r\n Specification: string\r\n CreatedBy: number\r\n ModifiedBy: number\r\n CreatedDate: DateTime\r\n ModifiedDate: DateTime\r\n IsActive: boolean\r\n}\r\n\r\nexport interface RecallDetail {\r\n OpenRecallCampaignID: string\r\n RecallEffectiveDate: DateTime\r\n RecallDetails: string\r\n}\r\n\r\nexport interface Recall {\r\n RecallDetails: RecallDetail[]\r\n RecallStatusType: number\r\n}\r\nexport interface ISearchVehiclesRequest extends IBaseCollectionRequest {\r\n QuickSearch: boolean\r\n ReturnVehicles: boolean\r\n Ids: number[]\r\n SearchQuery: SearchQuery\r\n ReturnZeroCountFilters?: boolean\r\n}\r\n\r\nexport interface IDeliveryChargeRequest {\r\n DeliveryQuote: IDeliveryQuote\r\n InvoiceDealerID: number\r\n VehicleInstanceId: number\r\n SalesSessionStepId: number\r\n QuickBid?: boolean\r\n}\r\n\r\nexport interface IBidOnVehicleRequest {\r\n VehicleInstanceId: Number\r\n BidAmount: Number\r\n QuickBid: Boolean\r\n BuyItNowPrice: Number\r\n SalesSessionStepId: Number\r\n DeliveryQuote: IDeliveryQuote\r\n ReferenceNumber: string\r\n PaymentTypeOther?: string\r\n ConnectionId: string\r\n}\r\nexport interface IVehicleFeeRequest {\r\n Price: number\r\n VehicleInstanceId: number\r\n SaleChannelId: number\r\n LocationId: number\r\n}\r\nexport interface IVehicleFeeResponse {\r\n ID: number\r\n Premium: number\r\n PremiumString: string\r\n IsRange: boolean\r\n HasAnyChargeRange: boolean\r\n}\r\n\r\nexport class GetBaseVehicleRequest extends BaseCollectionRequest {\r\n Ids: number[]\r\n IncludeInspectionReport?: boolean\r\n IncludeBaseData?: boolean\r\n IncludeAuctionData?: boolean\r\n VehicleBaseData?: IVehicleInfo[]\r\n\r\n constructor(items: IVehicleData[]) {\r\n super()\r\n this.PageSize = items.length\r\n this.SortBy = {\r\n Name: 'Title ASC',\r\n Value: 'Title ASC',\r\n SortOrder: SortOrder.ASC\r\n }\r\n this.IncludeAuctionData = true\r\n this.Ids = items.map((item) => item.vehicle.InstanceID)\r\n }\r\n}\r\n\r\nexport interface IDeliveryQuote {\r\n ChannelID?: number\r\n LocationID?: number\r\n SalesSessionStepId?: number\r\n VehicleInstanceID: number\r\n AddressID?: number\r\n PaymentTypeID?: number\r\n InterestStatusID?: number\r\n InterestID?: number\r\n SalePrice?: number\r\n TransportCompanyID?: number\r\n PaymentTypeOther?: string\r\n}\r\n\r\nexport interface ISearchResponseData {\r\n FieldId: number\r\n FieldName: string\r\n DBFieldName: string\r\n Value: string\r\n Value2?: string\r\n Value3?: string\r\n SearchCriteriaFieldTypeID: number\r\n MultiSelect: boolean\r\n Selected: boolean\r\n ChildrenFilter: ISearchFilterResult[]\r\n FilterKey?: string\r\n VehicleCount?: number\r\n OrderNumber?: number\r\n GroupName?: string\r\n FriendlyValue?: string\r\n DisplayFriendlyValue?: string\r\n Operator?: Operation\r\n verified?: boolean\r\n}\r\n\r\nexport interface ISearchFilterResult {\r\n FieldId: number\r\n FieldName: string\r\n DBFieldName: string\r\n FriendlyValue: string\r\n VehicleCount?: number\r\n Value: string\r\n Value2?: string\r\n Value3?: string\r\n SelectedItem?: string\r\n Selected: boolean\r\n SearchCriteriaFieldTypeID?: number\r\n ChildrenFilter?: ISearchFilterResult[]\r\n MultiSelect: boolean\r\n Operation: Operation\r\n FilterKey?: string\r\n CurrentBuyerDefaultPostCode?: string\r\n}\r\n\r\nexport class SearchQuery {\r\n ReturnOnlyVehicles: boolean = false\r\n SearchFilters: ISearchFilterResult[] = []\r\n SortBy: string[] = []\r\n StatusIds: string[] = []\r\n}\r\n\r\nexport class FilterOptions {\r\n IsReserveMetVehicles: boolean = false\r\n IsRecentlyAddedVehicles: boolean = false\r\n}\r\n\r\nexport interface IVehicleSearchDocument {\r\n BodyStyle: string\r\n AdditionalBodyStyle: string\r\n Series: string\r\n ModelYear: number\r\n ModelGroup: string\r\n VehicleInstanceId: number\r\n FuelType: string\r\n Make: string\r\n IsNewInventory: boolean\r\n}\r\n\r\nexport interface ISearchVehicleResponse extends IBaseCollectionResponse {\r\n Data: ISearchResponseData[]\r\n}\r\n\r\nexport interface IDeliveryChargeInfo {\r\n DisplayCharge: string\r\n DeliveryCharge?: number\r\n DeliveryLocation?: string\r\n HasError?: boolean\r\n}\r\n\r\nexport class GetBidVehiclesRequest extends BaseCollectionRequest {\r\n constructor(pageSize?: number, pageNumber?: number, sortBy?: ISortBy, filterOptions?: IFilterOptions) {\r\n super()\r\n this.PageSize = pageSize ?? DEFAULT_BIG_PAGE_SIZE\r\n this.PageNumber = pageNumber ?? 0\r\n this.SortBy = {\r\n Name: sortBy?.Name ?? 'Model ASC',\r\n SortOrder: sortBy?.SortOrder ?? 1,\r\n Value: sortBy?.Value ?? ' Model ASC'\r\n }\r\n this.FilterOptions = filterOptions ?? DefaultFilterOptions\r\n }\r\n}\r\n\r\nexport interface IGetBidVehiclesResponse extends IBaseCollectionResponse {\r\n Items: IVehicleData[]\r\n Data?: ISearchResponseData[]\r\n}\r\n\r\nexport interface IGetBidsHistoryRequest {\r\n Id: number\r\n}\r\nexport interface IBaseWatchList {\r\n VehicleInstanceID: number\r\n SaleChannelID: number\r\n SaleEventID: number\r\n ID?: number\r\n VIN?: string\r\n}\r\nexport interface ISaveWatchlistRequest extends IBaseWatchList {\r\n RemoveVehicle: boolean\r\n}\r\n\r\nexport interface IGetWatchListResponse extends IBaseCollectionResponse {\r\n Items: IBaseWatchList[]\r\n}\r\n\r\nexport interface ICarFaxSnapshotItem {\r\n Icon: string\r\n Value: string\r\n ValueCount: number\r\n}\r\n\r\nexport const enum BodyStyles {\r\n Sedan = 'Sedan',\r\n Coupe = 'Coupe',\r\n SAV = 'SAV',\r\n Convertible = 'Convertible'\r\n}\r\nexport interface IDocumentSignInfor {\r\n DocumentURL: string\r\n DocumentTypeID: number\r\n IsAccepted: boolean\r\n VehicleInstanceDocumentsID: number\r\n VehicleInstanceDocumentsSignInfoID: number\r\n}\r\nexport interface IVehicleNote {\r\n VehicleInstanceID: number\r\n NotesId: number\r\n Notes: string\r\n}\r\n\r\nexport const enum VehicleAction {\r\n BID = 'BID',\r\n BUY = 'BUY'\r\n}\r\n\r\nexport interface DeliveryInformation {\r\n PaymentTypes: IDropdownData[]\r\n TransportProviders: IDropdownData[]\r\n Contacts: IDropdownData[]\r\n Countries: IDropdownData[]\r\n PickUpAddres: string\r\n PickUpZIP: string\r\n VehicleInstanceID: number\r\n AddressID: number\r\n TransportCompanyID: number\r\n HasQuote: boolean\r\n QuotePrice: number\r\n DeliveryInfo: DeliveryQuote\r\n QuoteExpiryDate: Date\r\n DeliveryAddress: DeliveryAddress\r\n SalesSessionStepID: number\r\n ContactID: number\r\n PaymentTypeID: number\r\n ApplyToPurchase: boolean\r\n PendingPurchaseID: number\r\n ChannelID: number\r\n LocationID: number\r\n Instructions: string\r\n TitleDeliveryCharge: number\r\n BuyerFeeString: string\r\n PaymentTypeOther: string\r\n BuyerFee: number\r\n HasAnyChargeRange: boolean\r\n UserProfile: IUserProfile\r\n CurrentBuyerAccountRef: string\r\n CurrentBuyerAlternateIdentifiers: IDropdownData[]\r\n}\r\ninterface DeliveryQuote {\r\n VehicleInstanceID: number\r\n PickUpZIP: string\r\n AddressID: number\r\n TransportCompanyID: number\r\n DeliveryAddress: DeliveryAddress\r\n SalesSessionStepID: number\r\n ContactID: number\r\n PaymentTypeID: number\r\n ApplyToPurchase: boolean\r\n PendingPurchaseID: number\r\n ChannelID: number\r\n LocationID: number\r\n Instructions: string\r\n}\r\ninterface DeliveryAddress {\r\n AddressLineOne: string\r\n AddressLineTwo: string\r\n BuildingNbrNm: string\r\n Town: string\r\n CountryId: number\r\n PostCode: string\r\n StateId: number\r\n}\r\n\r\nexport interface SavedSearch {\r\n ID: number\r\n NotifyMe: boolean\r\n Email: string\r\n EmailFormat: string\r\n EmailRecurrance: number\r\n EmailDay: number\r\n EmailRecurranceDuration: number\r\n VendorID: number\r\n Description: string\r\n UserID: number\r\n HostID: number\r\n verified: boolean\r\n}\r\n\r\nexport interface DropdownData {\r\n ID: number\r\n Code: string\r\n FieldDescription: string\r\n Description: string\r\n}\r\n\r\nexport interface SavedSearchData {\r\n search: SavedSearch\r\n frequency: DropdownData[]\r\n durations: DropdownData[]\r\n days: DropdownData[]\r\n}\r\n\r\nexport interface SavedSearchReceive {\r\n filters: ISearchResponseData[]\r\n searchData: SavedSearch\r\n}\r\n\r\nexport interface BuyerBaseVehicleSearchCriteria {\r\n verified: boolean\r\n}\r\n\r\nexport interface WidgetConfigurationDetails {\r\n ControlName: string\r\n ControlDescription: string\r\n OrderNumber: number\r\n}\r\n","import { ISearchVehiclesRequest } from 'types/vehicleTypes'\r\n\r\nexport const BMW_VENDOR_CODE = 'BMWUS001'\r\nexport const NISSAN_VENDOR_CODE = 'NISUS001'\r\n\r\nexport const PageSizeOptions = [25, 50, 100]\r\nexport const RECORDS_PER_PAGE_TEXT = 'Records per page:'\r\nexport const DEFAULT_PAGE_SIZE = 25\r\nexport const DEFAULT_BIG_PAGE_SIZE = 50\r\nexport const DEFAULT_HUGE_PAGE_SIZE = 100\r\nexport const DEFAULT_SMALL_PAGE_SIZE = 5\r\nexport const CONTINUE = 'Continue'\r\nexport const SUBMIT = 'Submit'\r\nexport const BMW_TEXT = 'BMW'\r\nexport const MEDIUM_SLIDER_ITEM_SIZE = 4\r\nexport const BIG_SLIDER_ITEM_SIZE = 8\r\nexport const HUGE_SLIDER_ITEM_SIZE = 12\r\nexport const VEHICLE_PROPERTIES_TO_HIDE = ['DD_CONDITION', 'MMR', 'VEHICLE_LOCATION', 'SALE_CHANNEL']\r\nexport const DEFAULT_ERROR_MESSAGE = 'An error has occurred. Please try again.'\r\nexport const PAGINATION_ITEM_SIZE = 10\r\nexport const CSRF_HEADER = '__RequestVerificationToken'\r\nexport const CSRF_TOKEN = 'RequestVerificationToken'\r\nexport const TERM_AND_CONDITION = 'Terms And Conditions'\r\nexport const FAQ = 'FAQs'\r\nexport const FRAME_DAMAGE_LABEL = 'Frame Damage: '\r\n\r\nexport const CHARGEABLE_DAMAGE = 'ChargeableDamage'\r\nexport const NON_CHARGEABLE_DAMAGE = 'NonChargeableDamage'\r\nexport const UNKNOWN_CHARGEABLE_DAMAGE = 'UnknownChargeableDamage'\r\n\r\n// Initial query payload for the SearchVehicle request\r\nexport const AVAILABLE_INVENTORY_INIT_QUERY: ISearchVehiclesRequest = {\r\n PageNumber: 0,\r\n PageSize: 25,\r\n QuickSearch: false,\r\n ReturnVehicles: false,\r\n ReturnZeroCountFilters: false,\r\n Ids: [],\r\n FilterOptions: {\r\n IsReserveMetVehicles: false,\r\n IsRecentlyAddedVehicles: false\r\n },\r\n SearchQuery: {\r\n ReturnOnlyVehicles: false,\r\n SearchFilters: [],\r\n SortBy: [],\r\n StatusIds: []\r\n }\r\n}\r\n\r\nexport const SRP_INIT_QUERY: ISearchVehiclesRequest = {\r\n ...AVAILABLE_INVENTORY_INIT_QUERY,\r\n ReturnVehicles: true,\r\n SearchQuery: {\r\n ...AVAILABLE_INVENTORY_INIT_QUERY.SearchQuery,\r\n ReturnOnlyVehicles: true\r\n }\r\n}\r\n\r\nexport const SRP_FILTERS_QUERY: Omit = {\r\n ...AVAILABLE_INVENTORY_INIT_QUERY\r\n}\r\n\r\nexport const MODEL_GROUP_MAPPER: { DisplayText: string; Value: string }[] = [\r\n { DisplayText: 'Hybrids', Value: 'Hybrid' }\r\n]\r\n\r\nexport const AVAILABLE_INVENTORY_MAPPER: { DisplayText: string; Value: string }[] = [\r\n { DisplayText: 'SAVs', Value: 'SAV,SPORTS ACTIVITY VEHICLE,SPORT UTILITY VEHICLE' },\r\n { DisplayText: 'Sedan', Value: 'SEDAN,Sedan' },\r\n { DisplayText: 'Convertible', Value: 'CONVERTIBLE,Convertible' },\r\n { DisplayText: 'Coupe', Value: 'COUPE,Coupe' },\r\n\r\n { DisplayText: 'Fully Electric', Value: 'Electric Fuel System' },\r\n { DisplayText: 'Hybrids', Value: 'Gas/Electric Hybrid,Gasoline/Mild Electric Hybrid,Plug-In Electric/Gas' },\r\n\r\n { DisplayText: 'BodyStyle', Value: 'Body Style' },\r\n { DisplayText: 'FuelType', Value: 'Fuel Type' },\r\n { DisplayText: 'AdditionalBodyStyle', Value: 'Additional Body Style' }\r\n]\r\n\r\nexport const AVAILABLE_INVENTORY_HEADING: Record = {\r\n BodyStyle: ['Sedan', 'Coupe', 'SAVs', 'Convertible'],\r\n AdditionalBodyStyle: ['Convertible'],\r\n FuelType: ['Fully Electric', 'Hybrids'],\r\n Make: ['BMW', 'MINI', 'Rolls-Royce']\r\n}\r\n\r\nexport const GENERIC_NO_VEHICLE_AVAILABLE_MESSAGE = 'No vehicles available.'\r\nexport const NO_NEW_INVENTORY_MESSAGE = 'No new inventory.'\r\n\r\nexport const SessionStorageKey = {\r\n SEARCH_FILTERS: 'SearchFilters',\r\n SEARCH_DESCRIPTION: 'SearchDescription',\r\n SEARCH_ID: 'SearchID',\r\n QUERY_FILTERS: 'QueryFilters',\r\n PAGE_SELECTED: 'PageSelected',\r\n SESSION_SORT: 'SessionSort',\r\n PAGE_SIZE: 'PageSize',\r\n VEHICLE_INSTANCES: 'vehicleInstances',\r\n FILTER_OPTION: 'FilterOptions',\r\n LIST_BREADCRUMB: 'breadCrumb_Listing',\r\n DETAIL_BREADCRUMB: 'breadCrumb_Detail',\r\n SIGNAL_R_CONNECTION_TRY_RECOUNT: 'signalRConnectionRetryCount',\r\n USER_LOCATION: 'UserLocation',\r\n SCROLL_TO_VIN: 'ScrollToVin',\r\n VIEW_VEHICLE_LIST: 'ViewVehicleMode'\r\n}\r\n\r\nexport const ImageType = {\r\n DAMAGE_IMAGE: 'Damage Image'\r\n}\r\n\r\nexport const DefaultFilterOptions = {\r\n IsReserveMetVehicles: false,\r\n IsRecentlyAddedVehicles: false\r\n}\r\n\r\nexport const zIndex = {\r\n elevated: 10,\r\n floatingControls: 2, // This layer stays above Bootstrap custom controls and carousel navigators\r\n pageHeader: 3,\r\n menu: 20,\r\n stickyHeader: 1020,\r\n stickyAlert: 1021,\r\n modal: 1050,\r\n navbarMobile: 1300,\r\n loader: 1400\r\n // carousel-indicators: 15\r\n} as const\r\n\r\nexport const VehicleStatuses = {\r\n SoldNotFunded: 4,\r\n OnSale: 36\r\n}\r\nexport const VehicleOfferStatuses = {\r\n OfferCountered: 3\r\n}\r\n\r\nexport const VehicleOffers = {\r\n AWAITING: 1\r\n}\r\n\r\nexport const DashboardGrounding = {\r\n PENDING_OFFERS: 0,\r\n GROUNDING_EXPIRING_SOON: 1,\r\n GROUNDING_EXPIRING_TODAY: 2,\r\n GROUNDING_OVERDUE: 3,\r\n GROUNDING_AWAITING_PRICING: 4,\r\n GROUNDING_AWAITING_INSPECTION: 5\r\n}\r\n\r\nexport const MenuExclusionList = [{ name: 'RDP_MyAccount', childrens: ['RDP_MyProfile'] }]\r\nexport const FooterMenuExclusionList = ['RDP_ContactUs']\r\n\r\nexport const vendorImages = {\r\n leftLogo: '/content/img/bmw/logo-left-white.png',\r\n rightLogo: '/content/img/bmw/logo-right-white.png',\r\n leftLogoDark: '/content/img/bmw/logo-left.png',\r\n rightLogoDark: '/content/img/bmw/logo-right.png'\r\n}\r\n\r\nexport const enum BaseVehicleSearchCriteriaColumn {\r\n Make = 1,\r\n Model = 3,\r\n VIN = 6,\r\n ModelYear = 79,\r\n Proximity = 1016,\r\n Promotion = 1027,\r\n NewInventory = 1028,\r\n DecreasedPrice = 1029,\r\n DisclosurePresent = 1030,\r\n OdometerCustomRange = 1032,\r\n VehicleConditionCode = 1033,\r\n DriveTrain = 1019\r\n}\r\n\r\nexport const MIN_MATCH_CHAR_LENGTH = 2\r\n\r\nexport const DefaultSortBy = {\r\n // Unset the name by default, so that we can query\r\n // and using the name returned from the API\r\n //\r\n // This will prevent hardcoded name not match with user's language pref\r\n Name: 'Vehicle Details - ↑',\r\n Value: 'Title ASC',\r\n SortOrder: 1,\r\n DBFieldName: 'Title'\r\n}\r\n\r\nexport const carfaxIcon = {\r\n carfaxTitleLogo: '/content/img/partners/carfax-title-logo.png',\r\n carfaxBaseUrl: '/content/img/partners/'\r\n}\r\n\r\nexport const BUY_VEHICLE_NO_ACTIVITY = {\r\n WATCH_LIST: 'Once you add vehicles to your watch list, they will appear here.',\r\n CURRENT_BIDS: 'Once you place bids on vehicles, they will appear here.',\r\n SAVE_SEARCH: 'You do not have any searches currently saved.',\r\n SEARCH_RESULTS: 'We were not able to find any vehicles that matched your criteria.'\r\n}\r\n\r\nexport const exportViews = {\r\n Excel: 1,\r\n PDF: 2\r\n}\r\nexport const SELECT_DISPLAY_LIMIT = 3\r\nexport const SelfArrangedTransportProviderId = 3\r\n\r\nexport enum BidAmountTypeOptions {\r\n CurrentBidAmount = 'CurrentBidAmount',\r\n UpdateBidAmount = 'UpdateBidAmount'\r\n}\r\n\r\nexport const BuyItNowPrice = 99999\r\n\r\nexport const enum VehicleDetailsView {\r\n List = 'list',\r\n Grid = 'grid'\r\n}\r\n\r\nexport const EnterKeyCharCode = 13\r\n\r\nexport const enum TyreStatus {\r\n GOOD = 'good',\r\n NORMAL = 'normal',\r\n BAD = 'bad'\r\n}\r\nexport const enum Tyres {\r\n FRONT_LEFT_TIRE,\r\n FRONT_RIGHT_TIRE,\r\n REAR_LEFT_TIRE,\r\n REAR_RIGHT_TIRE,\r\n SPARE_TIRE\r\n}\r\n\r\nexport const TyresDescriptionValue = {\r\n [Tyres.FRONT_LEFT_TIRE]: ['FRONT LEFT TIRE', 'LFRNT'],\r\n [Tyres.FRONT_RIGHT_TIRE]: ['FRONT RIGHT TIRE', 'RFRNT'],\r\n [Tyres.REAR_LEFT_TIRE]: ['REAR LEFT TIRE', 'LREAR'],\r\n [Tyres.REAR_RIGHT_TIRE]: ['REAR RIGHT TIRE', 'RREAR'],\r\n [Tyres.SPARE_TIRE]: ['SPARE TIRE', 'SPARE']\r\n}\r\n\r\nexport const TireTreadDepthRange = [4, 6, 32]\r\n\r\nexport const enum WidgetConfigurationDetails {\r\n WIDGET_SPECIFICS = 'Widget_Specifics',\r\n WIDGET_EQUIOMENT = 'Widget_Equipment',\r\n WIDGET_DAMAGEUPSTREAM = 'Widget_DamageUpstream',\r\n WIDGET_DAMAGEGROUNDEDEXCLUSIVE = 'Widget_DamageGroundedExclusive',\r\n WIDGET_PROMOTIONS = 'Widget_Promotions',\r\n WIDGET_ANNOUNCEMENTS = 'Widget_Announcements',\r\n WIDGET_PACKAGES = 'Widget_Packages',\r\n WIDGET_HISTORY = 'Widget_History',\r\n WIDGET_CONDITION = 'Widget_Condition',\r\n WIDGET_DAMAGE = 'Widget_Damage',\r\n WIDGET_TIRE = 'Widget_Tire',\r\n WIDGET_ADDITIONAL = 'Widget_Additional',\r\n WIDGET_DISCLAIMER = 'Widget_Disclaimer'\r\n}\r\n\r\nexport const DEFAULT_EXPAND_FILTERS_NUMBER = 10\r\nexport const fullScreenIcon = {\r\n zoomOutLogo: '/content/img/zoom_out.png',\r\n zoomInLogo: '/content/img/zoom_in.png'\r\n}\r\n\r\nexport const SELECTED_SEARCH_FILTERS_LIMIT = 5\r\n\r\nexport const PROXIMITY_FILTERS = [99999, 25, 50, 100, 200, 500, 1000]\r\n\r\nexport const enum RangeFieldIds {\r\n PROXIMITY_FIELD_ID = 1016,\r\n ODOMETERCUSTOMRANGE_FIELD_ID = 1032,\r\n VEHICLECONDITONCODE_FIELD_ID = 1033\r\n}\r\n\r\nexport const RANGE_FIELD_ID = [\r\n RangeFieldIds.ODOMETERCUSTOMRANGE_FIELD_ID,\r\n RangeFieldIds.PROXIMITY_FIELD_ID,\r\n RangeFieldIds.VEHICLECONDITONCODE_FIELD_ID\r\n]\r\n","import { isArray, mergeWith } from 'lodash'\r\n\r\nexport function customizer(objValue, srcValue) {\r\n if (isArray(objValue) && isArray(srcValue)) {\r\n return srcValue\r\n }\r\n}\r\n\r\nexport const updateItem = (entity: T, collection: T[], keySelector: (entity: T) => TKey): T[] => {\r\n const itemIdx = collection.findIndex((item) => keySelector(item) === keySelector(entity))\r\n if (itemIdx < 0) {\r\n return collection\r\n }\r\n\r\n const updatedCollection = [...collection]\r\n updatedCollection[itemIdx] = mergeWith({}, collection[itemIdx], entity, customizer)\r\n\r\n return updatedCollection\r\n}\r\n\r\nexport const mergeItems = (originalData: T[], updatedData: T[], keySelector: (entity: T) => TKey): T[] => {\r\n const result = [...updatedData]\r\n originalData.forEach((entity) => {\r\n const itemIdx = updatedData.findIndex((item) => keySelector(item) === keySelector(entity))\r\n if (itemIdx < 0) {\r\n result.push(entity)\r\n return\r\n }\r\n\r\n result[itemIdx] = mergeWith({}, entity, updatedData[itemIdx], customizer)\r\n })\r\n\r\n return result\r\n}\r\n","import { getBaseVehicle } from 'apis/vehicleApis'\r\nimport { IAuctionInfo } from 'types/auctionTypes'\r\nimport { GetBaseVehicleRequest, IVehicleData } from 'types/vehicleTypes'\r\nimport { mergeItems, updateItem } from 'utils/collectionUtils'\r\nimport create from 'zustand'\r\nimport { IDocumentSignInfor } from './../types/vehicleTypes'\r\n\r\nexport interface IVehicleState {\r\n vehicles: IVehicleData[]\r\n addVehicles: (items: IVehicleData[]) => void\r\n getBaseVehicle: (item: IVehicleData) => void\r\n updateVehicleAuction: (item: IAuctionUpdating) => void\r\n updateVehicleData: (item: IVehicleData) => void\r\n acceptVehicleDocumentSignInfo: (item: IDocumentSignInfoUpdating) => void\r\n}\r\n\r\nexport interface IAuctionUpdating {\r\n vehicleInstanceID: Number\r\n auctionInfo: IAuctionInfo\r\n}\r\n\r\nexport interface IDocumentSignInfoUpdating {\r\n vehicleInstanceID: number\r\n documentSignInfo: IDocumentSignInfor\r\n}\r\n\r\nexport const useVehicleStore = create((set, get) => ({\r\n vehicles: [],\r\n addVehicles: (items: IVehicleData[]) =>\r\n set((state) => ({ ...state, vehicles: mergeItems(state.vehicles, items, (item) => item.vehicle.InstanceID) })),\r\n getBaseVehicle: async (item: IVehicleData) => {\r\n try {\r\n const payload = new GetBaseVehicleRequest([item])\r\n payload.IncludeAuctionData = true\r\n payload.IncludeBaseData = false\r\n payload.IncludeInspectionReport = false\r\n payload.VehicleBaseData = [item.vehicle]\r\n const {\r\n Items: [baseVehicle]\r\n } = await getBaseVehicle(payload)\r\n\r\n if (baseVehicle) {\r\n const updatedItem = {\r\n ...get().vehicles.find((v) => v.vehicle.InstanceID === item.vehicle.InstanceID),\r\n auctionInfo: baseVehicle.auctionInfo\r\n }\r\n set((state) => ({\r\n ...state,\r\n vehicles: updateItem(updatedItem, state.vehicles, (item) => item.vehicle.InstanceID)\r\n }))\r\n }\r\n } catch (error) {\r\n console.error('Error fetching base vehicle')\r\n }\r\n },\r\n updateVehicleAuction: (item: IAuctionUpdating) =>\r\n set((state) => {\r\n const { vehicleInstanceID, auctionInfo } = item\r\n const updatedVehicle = {\r\n ...state.vehicles.find((item) => item.vehicle.InstanceID === vehicleInstanceID),\r\n auctionInfo: auctionInfo\r\n }\r\n return { ...state, vehicles: updateItem(updatedVehicle, state.vehicles, (item) => item.vehicle.InstanceID) }\r\n }),\r\n updateVehicleData: (vehicleData: IVehicleData) =>\r\n set((state: IVehicleState) => {\r\n return { ...state, vehicles: updateItem(vehicleData, state.vehicles, (item) => item.vehicle.InstanceID) }\r\n }),\r\n acceptVehicleDocumentSignInfo: (item: IDocumentSignInfoUpdating) =>\r\n set((state) => {\r\n const { vehicleInstanceID, documentSignInfo } = item\r\n const updatedVehicle = {\r\n ...state.vehicles.find((item) => item.vehicle.InstanceID === vehicleInstanceID),\r\n documentSignInfo: { ...documentSignInfo, IsAccepted: true }\r\n }\r\n return { ...state, vehicles: updateItem(updatedVehicle, state.vehicles, (item) => item.vehicle.InstanceID) }\r\n })\r\n}))\r\n","import { DEFAULT_PAGE_SIZE, DefaultSortBy, SessionStorageKey } from 'common/constants'\r\nimport { IMenuInfo, IPortalMenuResponse } from 'types/userTypes'\r\nimport { parseJson } from './utils'\r\nexport const findMenuParent = (menus: IMenuInfo[], path: string): IMenuInfo[] => {\r\n const firstNode = menus.find((menu) => {\r\n return menu.path === path\r\n })\r\n\r\n if (firstNode) {\r\n return [...findMenuParent(menus, path.substring(0, path.lastIndexOf('/'))), firstNode]\r\n }\r\n\r\n return []\r\n}\r\n\r\nexport const mapChildMenus = (topLevelMenu: IMenuInfo[], allMenus: IMenuInfo[]): IMenuInfo[] => {\r\n return topLevelMenu.map((item) => {\r\n const children = allMenus.filter((child) => child.parentID === item.id)\r\n return { ...item, children }\r\n })\r\n}\r\n\r\nexport const resetSRPFilter = () => {\r\n sessionStorage.removeItem(SessionStorageKey.QUERY_FILTERS)\r\n sessionStorage.removeItem(SessionStorageKey.SEARCH_FILTERS)\r\n sessionStorage.removeItem(SessionStorageKey.SEARCH_DESCRIPTION)\r\n sessionStorage.removeItem(SessionStorageKey.PAGE_SELECTED)\r\n sessionStorage.removeItem(SessionStorageKey.PAGE_SIZE)\r\n sessionStorage.removeItem(SessionStorageKey.SESSION_SORT)\r\n sessionStorage.removeItem(SessionStorageKey.SCROLL_TO_VIN)\r\n sessionStorage.removeItem(SessionStorageKey.VIEW_VEHICLE_LIST)\r\n}\r\n\r\nexport const getDefaultSRPFilter = () => {\r\n return {\r\n currentPage: parseInt(sessionStorage.getItem(SessionStorageKey.PAGE_SELECTED)) || 0,\r\n currentPageSize: parseInt(sessionStorage.getItem(SessionStorageKey.PAGE_SIZE)) || DEFAULT_PAGE_SIZE,\r\n currentSortBy: parseJson(sessionStorage.getItem(SessionStorageKey.SESSION_SORT)) || DefaultSortBy\r\n }\r\n}\r\n\r\nexport const handlePortalMenuItemClick = (item: IPortalMenuResponse) => {\r\n if (item.MenuItem.Name === 'RDP_MyProfile') {\r\n resetSRPFilter()\r\n }\r\n}\r\n","import { fetchAsync, postAsync } from 'common/fetch'\r\nimport { IBaseResponse } from 'types/baseTypes'\r\nimport {\r\n GetBidVehiclesRequest,\r\n IGetBidVehiclesResponse,\r\n ISaveWatchlistRequest,\r\n ISearchVehicleResponse\r\n} from 'types/vehicleTypes'\r\nimport { CarouselImage } from 'types/baseTypes'\r\nimport { IModelGroupImages } from 'types/IModelFigure'\r\n\r\nexport const getBidVehicles = async (request: GetBidVehiclesRequest) => {\r\n return postAsync(`/api/dashboard/GetBidVehicles`, {\r\n body: request\r\n })\r\n}\r\n\r\nexport const getWatchListVehicles = async (request: GetBidVehiclesRequest) => {\r\n return postAsync(`/api/dashboard/GetWatchListVehicles`, {\r\n body: request\r\n })\r\n}\r\n\r\nexport const saveVehicleLevelWatchList = async (request: ISaveWatchlistRequest) => {\r\n return postAsync>(`/api/dashboard/SaveVehicleToWatchList`, {\r\n body: request\r\n })\r\n}\r\n\r\nexport const getDirectSaleVehicles = async (request: GetBidVehiclesRequest) => {\r\n return postAsync(`/api/dashboard/GetDirectSaleVehicles`, {\r\n body: request\r\n })\r\n}\r\n\r\nexport const getCarouselImages = async (): Promise => {\r\n return fetchAsync(`/api/dashboard/GetCarouselImages`)\r\n}\r\n\r\nexport const getModelGroupImages = () => {\r\n return fetchAsync('/api/dashboard/GetModelGroupImages')\r\n}\r\n\r\nexport const saveWatchlist = async (request: ISaveWatchlistRequest) => {\r\n return postAsync('/api/dashboard/SaveVehicleToWatchList', {\r\n body: request\r\n })\r\n}\r\n","import { rmsAuthModel } from './rmsGlobal'\r\nimport { matchPath } from 'react-router'\r\n\r\nexport enum AppRoutes {\r\n Login = '/login',\r\n Home = '/',\r\n ContactUs = '/contactUs',\r\n Terms = '/terms',\r\n Forgot = '/forgot',\r\n Privacy = '/privacy',\r\n FAQs = '/faqs',\r\n WatchList = '/watchlist',\r\n ManageBids = '/managebids',\r\n VDP = '/vehicle/:vehicleInstanceId',\r\n SearchResult = '/search'\r\n}\r\n\r\nconst routes = Object.keys(AppRoutes)\r\n .filter((key) => AppRoutes[key].path !== AppRoutes.Home)\r\n .map((key) => {\r\n return {\r\n path: AppRoutes[key],\r\n name: key\r\n }\r\n })\r\n\r\nif (rmsAuthModel?.appSettings?.UseNewDashboardPage) {\r\n routes.push({\r\n path: AppRoutes.Home,\r\n name: 'Home'\r\n })\r\n}\r\nexport const REACT_ROUTES = routes\r\n\r\nexport const isReactRoutes = (pathname: string) => {\r\n const [path] = pathname.split(/[?#]/)\r\n return REACT_ROUTES.some((item) =>\r\n matchPath(path, {\r\n exact: true,\r\n path: item.path\r\n })\r\n )\r\n}\r\n","import styled from 'styled-components'\r\n\r\nexport const ThemedSvg = styled.svg.attrs(({ fill, theme }) => ({\r\n fill: fill ?? 'currentColor'\r\n}))``\r\n","export const parseUrlSearchParams = (search: string): T => {\r\n const p = new URLSearchParams(search)\r\n\r\n const output: T = {} as T\r\n Array.from(p.entries()).forEach(([key, value]) => {\r\n if (output[key]) {\r\n const currentValue = typeof output[key] === 'string' ? [output[key]] : output[key]\r\n output[key] = [...currentValue, value]\r\n } else {\r\n output[key] = value\r\n }\r\n })\r\n\r\n return output\r\n}\r\n\r\nexport const toUrlSearchParams = (obj: T = {} as T): string => {\r\n const output = new URLSearchParams()\r\n Object.keys(obj).forEach((key) => {\r\n if (Array.isArray(obj[key])) {\r\n obj[key].forEach((item) => {\r\n output.append(key, item)\r\n })\r\n } else if (obj[key] != null) {\r\n output.append(key, obj[key])\r\n }\r\n })\r\n\r\n return output.toString()\r\n}\r\n\r\nexport const getCommandUrl = (cmd: string, queryParams?: any) => {\r\n let params = { cmd }\r\n if (queryParams) {\r\n params = { ...params, ...queryParams }\r\n }\r\n return `/ContentHandler.aspx?${toUrlSearchParams(params)}`\r\n}\r\n\r\nexport const getUrlParameter = (\r\n href: string,\r\n sParam: string,\r\n ignoreCase?: boolean,\r\n includeFragment?: boolean\r\n): string => {\r\n let fragmentSeparator = includeFragment ? '' : '#'\r\n let pattern = '[?&]' + sParam + '=([^&' + fragmentSeparator + ']*)'\r\n var regex = ignoreCase ? new RegExp(pattern, 'i') : new RegExp(pattern)\r\n var results = regex.exec(href)\r\n if (results == null) {\r\n return null\r\n } else {\r\n return results[1] || ''\r\n }\r\n}\r\n","import { zIndex } from 'common/constants'\r\nimport { gridBreakPoints } from 'common/theme'\r\nimport styled, { css, keyframes } from 'styled-components'\r\n\r\nconst slideInFromRightEffect = keyframes`\r\n 0% {transform: translate(100%);}\r\n 100% { transform: translateX(0%); }\r\n`\r\n\r\nconst slideInFromLeftEffect = keyframes`\r\n 0% {transform: translate(-100%);}\r\n 100% { transform: translateX(0%); }\r\n`\r\nexport const StyledSlideOut = styled.div`\r\n .close_button {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin-top: 10px;\r\n margin-right: 10px;\r\n border: hidden;\r\n background-color: white;\r\n }\r\n .close_icon:hover {\r\n fill: black;\r\n }\r\n .slide-out-wrapper {\r\n background-color: rgba(0, 0, 0, 0.5);\r\n cursor: pointer;\r\n height: 100%;\r\n right: 0;\r\n opacity: 1;\r\n position: fixed;\r\n top: 0;\r\n transition: opacity 0.25s linear;\r\n width: 100%;\r\n z-index: ${zIndex.modal};\r\n }\r\n\r\n .slide-out-content {\r\n background-color: #fff;\r\n border: 1px solid #4a4a4a;\r\n bottom: 0;\r\n max-width: 100vw;\r\n padding: 4rem 2.4rem 2.4rem;\r\n position: fixed;\r\n top: 0;\r\n width: 30vw;\r\n\r\n @media (max-width: ${gridBreakPoints.xl}) {\r\n width: 40%;\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n width: 100%;\r\n }\r\n\r\n right: 0;\r\n z-index: ${zIndex.modal};\r\n overflow: auto;\r\n .slide-out-body {\r\n height: 100%;\r\n }\r\n box-shadow: rgb(0 0 0 / 20%) -1px 4px 9px 6px;\r\n .form {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n .form-check {\r\n margin-bottom: 0.3rem;\r\n .form-check-input {\r\n top: -1px;\r\n }\r\n }\r\n }\r\n .action-buttons {\r\n margin-top: auto;\r\n display: flex;\r\n flex-direction: column;\r\n .button-group {\r\n margin-top: 0.4rem;\r\n display: flex;\r\n .btn {\r\n width: 16rem;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.place-left .slide-out-content {\r\n animation: ${slideInFromLeftEffect} 0.3s cubic-bezier(0, 0, 0.2, 1);\r\n }\r\n &.place-right .slide-out-content {\r\n animation: ${slideInFromRightEffect} 0.3s cubic-bezier(0, 0, 0.2, 1);\r\n }\r\n`\r\n\r\nexport const StyledSlideOutElement = styled.div`\r\n margin-bottom: 1.6rem;\r\n .form-group {\r\n margin-bottom: 0;\r\n }\r\n .form-btn {\r\n padding: 0.6rem 3rem;\r\n }\r\n .form-check-label {\r\n margin-left: 0.4rem;\r\n\r\n @media (max-width: ${gridBreakPoints.sm}) {\r\n margin-left: 0.8rem;\r\n }\r\n }\r\n .dropdown-alert {\r\n padding: 0.5rem 1.25rem;\r\n .alert-heading {\r\n font-weight: 700;\r\n margin-bottom: 0;\r\n font-size: 1.1rem;\r\n white-space: pre-line;\r\n }\r\n .close {\r\n padding: 0.2rem 1.25rem;\r\n }\r\n }\r\n\r\n .read-only-input:not(:disabled),\r\n .react-select__control--is-disabled {\r\n background-color: #fff;\r\n }\r\n .required::after {\r\n content: '*';\r\n color: ${({ theme }) => theme.colors.dangerColor};\r\n font-weight: bold;\r\n margin-left: 0.2rem;\r\n }\r\n .read-only-input {\r\n padding: 1.8rem 0.75rem;\r\n }\r\n .currency-input {\r\n padding: 1.8rem 1.75rem;\r\n }\r\n\r\n .react-select__menu {\r\n margin-top: 0;\r\n }\r\n .react-select__input-container {\r\n padding: 0.5rem;\r\n }\r\n .react-select__control--is-disabled .react-select__indicators {\r\n display: none;\r\n }\r\n .fee-info {\r\n color: ${({ theme }) => theme.colors.primary};\r\n cursor: pointer;\r\n }\r\n`\r\n","export enum Rules {\r\n PAGE_RDP_Dashboard = 'PAGE_RDP_Dashboard',\r\n PAGE_RDP_SRP = 'PAGE_RDP_SRP',\r\n PAGE_RDP_CurrentBids = 'PAGE_RDP_CurrentBids',\r\n VIEW_WATCH_LIST = 'ViewWatchList',\r\n VIEW_SAVED_SEARCH_PAGE = 'PAGE_RDP_SavedSearch',\r\n VIEW_ADVANCED_SEARCH_PAGE = 'PAGE_RDP_AdvancedSearch',\r\n VIEW_SEARCH_RESULT_PAGE = 'PAGE_RDP_SRP',\r\n VIEW_GROUNDING_ACTIVITY = 'ViewBuyerGroundingConfiguartion',\r\n VIEW_GROUNDING_QUICK_START = 'ViewGroundingQuickStart',\r\n VIEW_DASHBOARD_GROUNDING_STATUS = 'ViewDashboardGroundingStatus',\r\n VIEW_CARFAX_ADVANCED = 'Carfax Advantage',\r\n VIEW_CHECKOUT_AT_MANHEIMCOM = 'viewCheckoutAtManheimCom',\r\n ENABLE_CARFAX = 'ENABLE_CARFAX'\r\n}\r\n","import { useRef, DependencyList, MutableRefObject, useLayoutEffect } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\n\r\ninterface IPosition {\r\n x: number\r\n y: number\r\n}\r\n\r\ninterface IScrollProps {\r\n prevPos: IPosition\r\n currPos: IPosition\r\n}\r\n\r\ntype ElementRef = MutableRefObject\r\n\r\nconst isBrowser = typeof window !== `undefined`\r\nconst zeroPosition = { x: 0, y: 0 }\r\n\r\nconst getClientRect = (element?: HTMLElement) => element?.getBoundingClientRect()\r\n\r\nconst getScrollPosition = ({\r\n element,\r\n useWindow,\r\n boundingElement\r\n}: {\r\n element?: ElementRef\r\n boundingElement?: ElementRef\r\n useWindow?: boolean\r\n}) => {\r\n if (!isBrowser) {\r\n return zeroPosition\r\n }\r\n\r\n if (useWindow) {\r\n return { x: window.scrollX, y: window.scrollY }\r\n }\r\n\r\n const targetPosition = getClientRect(element?.current || document.body)\r\n const containerPosition = getClientRect(boundingElement?.current)\r\n\r\n if (!targetPosition) {\r\n return zeroPosition\r\n }\r\n\r\n return containerPosition\r\n ? {\r\n x: (containerPosition.x || 0) - (targetPosition.x || 0),\r\n y: (containerPosition.y || 0) - (targetPosition.y || 0)\r\n }\r\n : { x: targetPosition.left, y: targetPosition.top }\r\n}\r\n\r\nexport const useScrollPosition = (\r\n effect: (props: IScrollProps) => void,\r\n deps?: DependencyList,\r\n element?: ElementRef,\r\n useWindow?: boolean,\r\n wait?: number,\r\n boundingElement?: ElementRef\r\n): void => {\r\n const position = useRef(getScrollPosition({ useWindow, boundingElement }))\r\n\r\n let throttleTimeout: number | null = null\r\n\r\n const callBack = () => {\r\n const currPos = getScrollPosition({ element, useWindow, boundingElement })\r\n effect({ prevPos: position.current, currPos })\r\n position.current = currPos\r\n throttleTimeout = null\r\n }\r\n const location = useLocation()\r\n\r\n useLayoutEffect(() => {\r\n callBack()\r\n }, [location.pathname])\r\n\r\n useLayoutEffect(() => {\r\n if (!isBrowser) {\r\n return undefined\r\n }\r\n\r\n const handleScroll = () => {\r\n if (wait) {\r\n if (throttleTimeout === null) {\r\n throttleTimeout = window.setTimeout(callBack, wait)\r\n }\r\n } else {\r\n callBack()\r\n }\r\n }\r\n\r\n if (boundingElement) {\r\n boundingElement.current?.addEventListener('scroll', handleScroll, { passive: true })\r\n } else {\r\n window.addEventListener('scroll', handleScroll, { passive: true })\r\n }\r\n\r\n return () => {\r\n if (boundingElement) {\r\n boundingElement.current?.removeEventListener('scroll', handleScroll)\r\n } else {\r\n window.removeEventListener('scroll', handleScroll)\r\n }\r\n\r\n if (throttleTimeout) {\r\n clearTimeout(throttleTimeout)\r\n }\r\n }\r\n }, deps)\r\n}\r\n\r\nuseScrollPosition.defaultProps = {\r\n deps: [],\r\n element: false,\r\n useWindow: false,\r\n wait: null,\r\n boundingElement: false\r\n}\r\n","import { Button } from 'react-bootstrap'\r\nimport styled from 'styled-components'\r\n\r\nexport const AcceptenceBody = styled.div`\r\n background-color: ${({ theme }) => theme.colors.backgroundText};\r\n margin-left: 2.4rem;\r\n margin-right: 2.4rem;\r\n margin-bottom: 2.4rem;\r\n flex: 1;\r\n font-size: 1.6rem;\r\n\r\n p {\r\n background: inherit !important;\r\n }\r\n\r\n span {\r\n font-family: inherit !important;\r\n font-size: inherit !important;\r\n }\r\n\r\n div:not([class]) {\r\n margin-left: 3rem;\r\n }\r\n\r\n .form-check {\r\n margin-left: 3rem;\r\n }\r\n\r\n .form-check-label {\r\n margin-left: 1rem;\r\n }\r\n\r\n input[type='checkbox'] {\r\n position: relative;\r\n }\r\n`\r\n\r\nexport const ContinueButton = styled(Button)`\r\n height: 3rem;\r\n font-size: 1.4rem;\r\n margin-top: 1rem;\r\n line-height: 0.5;\r\n width: 15rem;\r\n font-size: 1.6rem;\r\n`\r\n\r\nexport const DocumentList = styled.div`\r\n margin-left: 3rem;\r\n margin-top: 1rem;\r\n margin-bottom: 1rem;\r\n`\r\n\r\nexport const Document = styled.div`\r\n display: block;\r\n`\r\n","import { acceptNews } from 'apis/userApis'\r\nimport { CONTINUE } from 'common/constants'\r\nimport { MultiLanguageCode } from 'common/languageCodes'\r\nimport { rmsAuthModel } from 'common/rmsGlobal'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport parse from 'html-react-parser'\r\nimport _ from 'lodash'\r\nimport { Col, Form, Image, Row } from 'react-bootstrap'\r\nimport { useIntl } from 'react-intl'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { AcceptenceBody, ContinueButton, Document, DocumentList } from './AcceptenceTerm.styled'\r\nimport { Title } from '../pages/TermCondition.styled'\r\nimport shallow from 'zustand/shallow'\r\n\r\nexport const AcceptenceTerm = () => {\r\n const intl = useIntl()\r\n const getLocalText = useGlobalStore((state) => state.getLocalText)\r\n\r\n const newsHandler = async (markAccept) => {\r\n let newsID = rmsAuthModel?.newsModel?.NewsID\r\n\r\n if (newsID && newsID !== -1) {\r\n await acceptNews(newsID, markAccept)\r\n window.location.reload()\r\n }\r\n }\r\n\r\n const requiresAccept = rmsAuthModel?.newsModel?.RequiresAcceptance\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n <HTMLText value={parse(intl.formatMessage({ id: MultiLanguageCode.TERMS_LINK }))} />\r\n \r\n \r\n \r\n \r\n \r\n {rmsAuthModel?.newsModel?.newsDocuments?.map((x) => {\r\n let document: string[] = x.split('|')\r\n return (\r\n \r\n \r\n \"Download\"\r\n {document[1]}\r\n \r\n \r\n )\r\n })}\r\n \r\n {requiresAccept ? (\r\n \r\n \r\n \r\n newsHandler(true)}\r\n />\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n newsHandler(false)} size=\"lg\">\r\n {CONTINUE}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import styled from 'styled-components'\r\nimport { Col, Row } from 'react-bootstrap'\r\nimport { LeftFooterContainer } from './LoginLayout.styled'\r\nimport { gridBreakPoints } from 'common/theme'\r\n\r\nexport const StyledMainNavItem = styled.div`\r\n width: 25%;\r\n`\r\nexport const StyledFooter = styled.div`\r\n font-family: ${({ theme }) => theme.fonts.fontRegular};\r\n background: ${({ theme }) => theme.colors.primary};\r\n font-size: 1.4rem;\r\n padding: 2.4rem 0 1.6rem;\r\n width: 100%;\r\n\r\n nav {\r\n justify-content: flex-end;\r\n }\r\n\r\n .nav-list {\r\n display: flex;\r\n }\r\n\r\n ul {\r\n list-style: none;\r\n padding-inline-start: 0;\r\n }\r\n\r\n a {\r\n color: #fff;\r\n text-decoration: none;\r\n }\r\n\r\n .subnav li {\r\n padding-top: 0.375rem;\r\n }\r\n\r\n .nav-link {\r\n padding: 0;\r\n }\r\n`\r\n\r\nexport const StyledFooterRow = styled(Row)`\r\n margin: 0;\r\n\r\n @media (min-width: ${gridBreakPoints.md}) {\r\n margin-top: -1.5rem;\r\n }\r\n`\r\nexport const StyledNavItem = styled.a`\r\n font-weight: 800;\r\n display: inline-block;\r\n margin-bottom: 1.5rem;\r\n`\r\nexport const StyledFooterNav = styled.li`\r\n margin-top: 0.4rem;\r\n`\r\n\r\nexport const StyledFooterLogout = styled.li`\r\n margin-top: 2.75rem;\r\n font-weight: 600;\r\n`\r\n\r\nexport const StyledLogoContainer = styled(Col)`\r\n align-self: flex-end;\r\n padding-right: 2.75rem;\r\n`\r\n\r\nexport const StyledSubNavSmallScreen = styled.div`\r\n ul {\r\n display: flex;\r\n justify-content: center;\r\n\r\n li {\r\n padding: 0 1rem;\r\n\r\n &:last-child {\r\n border-left: 0.1rem solid ${({ theme }) => theme.colors.fontColor};\r\n }\r\n }\r\n }\r\n`\r\nexport const LayoutLeftFooterContainer = styled(LeftFooterContainer)`\r\n color: #fff;\r\n display: flex;\r\n align-items: flex-end;\r\n padding-left: 2.75rem;\r\n font-size: 1.1rem;\r\n`\r\n\r\nexport const StyledFooterLogo = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 0;\r\n > img {\r\n max-height: 5rem;\r\n filter: brightness(0) invert(1);\r\n }\r\n\r\n @media print {\r\n > img {\r\n filter: none;\r\n }\r\n }\r\n`\r\n","import { FAQ, FooterMenuExclusionList, TERM_AND_CONDITION } from 'common/constants'\r\nimport { MultiLanguageCode } from 'common/languageCodes'\r\nimport { HTMLText } from 'components/Share/HtmlText'\r\nimport { NavLink } from 'components/Share/Link'\r\nimport parse from 'html-react-parser'\r\nimport privatestorebymanheim from 'images/PRIVATE_STORE_BY_MANHEIM.png'\r\nimport _ from 'lodash'\r\nimport { Col, Container, Row } from 'react-bootstrap'\r\nimport { useIntl } from 'react-intl'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { handlePortalMenuItemClick } from 'utils/menuUtils'\r\nimport shallow from 'zustand/shallow'\r\nimport {\r\n LayoutLeftFooterContainer,\r\n StyledFooter,\r\n StyledFooterLogo,\r\n StyledFooterRow,\r\n StyledLogoContainer,\r\n StyledMainNavItem,\r\n StyledNavItem,\r\n StyledSubNavSmallScreen\r\n} from './Footer.styled'\r\n\r\nexport const Footer = () => {\r\n const [{ Menu: menu, IsSSO: isSSO }, getLocalText] = useGlobalStore(\r\n (state) => [state.userClaims, state.getLocalText],\r\n shallow\r\n )\r\n\r\n const intl = useIntl()\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 {TERM_AND_CONDITION}\r\n
  • \r\n {!_.isNil(isSSO) && !isSSO && (\r\n
  • \r\n {getLocalText && getLocalText('LOGOUT', 'Logout')}\r\n
  • \r\n )}\r\n
  • \r\n {parse(intl.formatMessage({ id: MultiLanguageCode.CONTACT_US }))}\r\n
  • \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","function BurgerButton(props) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default BurgerButton\r\n","import React, { useContext } from 'react'\r\nimport BurgerIcon from 'images/icon/BurgerIcon'\r\nimport { LayoutContext } from 'contexts/LayoutContext'\r\nimport { StyledBurgerButton } from './Layout.styled'\r\nimport { useDtmAnalytics } from 'hooks/useDtmAnalytics'\r\n\r\ninterface IProps {\r\n isSticky?: boolean\r\n}\r\nconst BurgerButton = ({ isSticky }: IProps) => {\r\n const { setShowMenuSidebar } = useContext(LayoutContext)\r\n const { userInteraction } = useDtmAnalytics()\r\n return (\r\n \r\n {\r\n userInteraction('Ham Menu Clicked')\r\n setShowMenuSidebar(true)\r\n }}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default BurgerButton\r\n","import classNames from 'classnames'\r\nimport { vendorImages } from 'common/constants'\r\nimport { NavLink } from 'components/Share/Link'\r\nimport { LayoutContext } from 'contexts/LayoutContext'\r\nimport { useContext } from 'react'\r\nimport Image from 'react-bootstrap/Image'\r\n\r\nimport BurgerButton from './BurgerButton'\r\nimport { StyledBranding, StyledHeader } from './Layout.styled'\r\n\r\ninterface IProps {\r\n enableSticky?: boolean\r\n className?: string\r\n}\r\n\r\nexport const Header = ({ enableSticky = false, className }: IProps) => {\r\n const { isSticky: sticky } = useContext(LayoutContext)\r\n\r\n const isSticky = sticky && enableSticky\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","import { useTheme } from 'styled-components'\r\n\r\nexport const RDP_AccountSettingIcon = () => {\r\n const theme = useTheme()\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { useTheme } from 'styled-components'\r\n\r\nexport const CurrentBidIcon = () => {\r\n const theme = useTheme()\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { useTheme } from 'styled-components'\r\n\r\nexport const SaveSearchIcon = () => {\r\n const theme = useTheme()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { IconProps } from 'core/typing/IconType'\r\nimport { useTheme } from 'styled-components'\r\n\r\nexport const AdvanceSearchIcon = () => {\r\n const theme = useTheme()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { faPhone, faQuestionCircle, faSearch, faSignOutAlt, faUser } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { IconSvg } from '@prism/icon'\r\nimport { RDP_AccountSettingIcon } from 'images/icon/AccountSettingIcon'\r\nimport { CurrentBidIcon } from 'images/icon/CurrentBidIcon'\r\nimport { SaveSearchIcon } from 'images/icon/SaveSearchIcon'\r\nimport { AdvanceSearchIcon } from '../images/icon/AdvanceSearchIcon'\r\n\r\nexport const iconDict = {\r\n RDP_SearchResults: ,\r\n RDP_SearchResults_2: ,\r\n RDP_AdvancedSearch: ,\r\n RDP_SavedSearch: ,\r\n RDP_WatchList: ,\r\n RDP_CurrentBids: ,\r\n RDP_WatchList_2: ,\r\n RDP_CurrentBids_2: ,\r\n RDP_MyProfile: ,\r\n RDP_ContactUs: ,\r\n RDP_AccountSettings: ,\r\n FAQ: ,\r\n Logout: \r\n}\r\n","import { ThemedSvg } from './ThemedSvg.styled'\r\n\r\nconst Person = (props) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default Person\r\n","import { gridBreakPoints } from 'common/theme'\r\nimport styled from 'styled-components'\r\n\r\nexport const StyledUserMenu = styled.div<{ show: boolean }>`\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n display: flex;\r\n flex-direction: column;\r\n align-items: end;\r\n padding: 0.8rem 0;\r\n\r\n .username {\r\n font-size: 1.6rem;\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.primary};\r\n\r\n svg {\r\n display: inline-block;\r\n }\r\n }\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n display: ${({ show }) => (show ? 'flex' : 'none')};\r\n align-items: center;\r\n }\r\n`\r\n\r\nexport const StyledDealerDropdown = styled.div`\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n font-size: 1.4rem;\r\n cursor: pointer;\r\n\r\n .current-user {\r\n display: flex;\r\n justify-content: space-between;\r\n flex-direction: column;\r\n align-items: center;\r\n }\r\n\r\n .current-user::after {\r\n display: none;\r\n }\r\n .dealership-select.dropdown-menu {\r\n box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.15);\r\n font-size: inherit;\r\n border: none;\r\n border-radius: 0.3rem;\r\n padding: 0;\r\n display: block;\r\n transition: all 167ms ease-in;\r\n transform: translate(0.0015625rem, 6.2rem);\r\n inset: 0 0 auto auto !important;\r\n\r\n &.show {\r\n opacity: 1;\r\n }\r\n\r\n hr {\r\n margin: 0;\r\n }\r\n\r\n .associated-dealerships {\r\n max-height: 50rem;\r\n overflow: auto;\r\n }\r\n }\r\n .dealership-item {\r\n color: ${({ theme }) => theme.colors.primary};\r\n font-weight: 600;\r\n height: 2.5rem;\r\n display: flex;\r\n align-items: center;\r\n transition: all 167ms ease-in;\r\n position: relative;\r\n background-color: transparent;\r\n\r\n svg {\r\n visibility: hidden;\r\n margin-right: 1rem;\r\n }\r\n &:hover,\r\n &.active,\r\n &.show-icon {\r\n svg {\r\n visibility: visible;\r\n }\r\n }\r\n\r\n &.functionality {\r\n height: auto;\r\n margin: 0.625rem 0;\r\n }\r\n }\r\n`\r\n\r\nexport const StyledCurrentDealership = styled.div`\r\n padding-left: 2rem;\r\n padding-right: 1.825rem;\r\n text-align: right;\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n`\r\n\r\nexport const RightActionContainer = styled.div<{ show: boolean }>`\r\n display: flex;\r\n\r\n @media (max-width: ${gridBreakPoints.lg}) {\r\n display: ${({ show }) => (show ? 'flex' : 'none')};\r\n flex-direction: column;\r\n\r\n & > div.nav {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n .nav-item {\r\n width: 100%;\r\n border-top: 0.1rem solid ${({ theme }) => theme.colors.secondary};\r\n border-bottom: 0.1rem solid ${({ theme }) => theme.colors.secondary};\r\n\r\n &:hover > .nav-link {\r\n background-color: white;\r\n }\r\n\r\n > .nav-link {\r\n font-size: 1.8rem;\r\n height: 4rem;\r\n margin: unset;\r\n text-align: center;\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.fontColor};\r\n }\r\n &.active {\r\n background: #d4d4d4;\r\n :after {\r\n content: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n & > div.nav {\r\n .nav-link {\r\n justify-content: center;\r\n font-size: 1.6rem;\r\n font-weight: 600;\r\n color: ${({ theme }) => theme.colors.primary};\r\n padding: 0.8rem 0;\r\n margin-right: 1.5rem;\r\n }\r\n }\r\n`\r\n","import { faQuestionCircle } from '@fortawesome/free-regular-svg-icons'\r\nimport { faCheck, faPlus } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { setBuyer } from 'apis/serviceApis'\r\nimport { iconDict } from 'common/menuIcons'\r\nimport { OverlayLoader } from 'components/Loader'\r\nimport ChevronDown from 'icons/ChevronDown'\r\nimport Person from 'icons/Person'\r\nimport { useEffect, useMemo, useState } from 'react'\r\nimport { Dropdown, Nav } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { IPortalMenuResponse } from 'types/userTypes'\r\nimport { handlePortalMenuItemClick } from 'utils/menuUtils'\r\nimport shallow from 'zustand/shallow'\r\n\r\nimport { RightActionContainer, StyledCurrentDealership, StyledDealerDropdown, StyledUserMenu } from './UserMenu.styled'\r\n\r\ninterface IProps {\r\n showInMobile: boolean\r\n}\r\n\r\nexport const UserMenu = (props: IProps) => {\r\n const {\r\n userClaims: {\r\n Username: userName,\r\n DealershipName: dealerShipName,\r\n AssociatedBuyers: associatedBuyers,\r\n IsSSO: isSSO,\r\n Menu: menu\r\n },\r\n isInRule\r\n } = useGlobalStore(\r\n (state) => ({\r\n userClaims: state.userClaims,\r\n isInRule: state.isInRule\r\n }),\r\n shallow\r\n )\r\n\r\n // TODO: Use ID instead of name\r\n const dealer = associatedBuyers?.find((item) => item.Description === dealerShipName)\r\n const [currentBuyerId, setCurrentBuyerId] = useState(dealer?.ID)\r\n const [userFunctionalities, setUserFunctionalities] = useState()\r\n const [isLoading, setIsLoading] = useState(false)\r\n const isOveUser = useMemo(() => isInRule('OVE Colisting'), [])\r\n useEffect(() => {\r\n const logoutLink: IPortalMenuResponse = {\r\n MenuItem: {\r\n ID: 0,\r\n Text: 'Logout',\r\n URL: '/login',\r\n Name: 'Logout',\r\n OrderNo: 0,\r\n ParentName: ''\r\n },\r\n URL: '/login', // login endpoint will clear the session, meaning: logout\r\n IsWebMenu: true,\r\n Children: []\r\n }\r\n const myAccountLink = menu?.Children.map((m) => m.Children)\r\n .flat()\r\n .find((m) => m.MenuItem.Name === 'RDP_MyProfile')\r\n setUserFunctionalities([myAccountLink, logoutLink])\r\n }, [menu])\r\n\r\n const handleChangeCurrentBuyer = async (value: number) => {\r\n // If user select the same buyer, we won't need to do anything\r\n if (currentBuyerId == value) return\r\n\r\n try {\r\n setIsLoading(true)\r\n setCurrentBuyerId(value)\r\n await setBuyer(value)\r\n window.location.reload()\r\n } catch (err) {\r\n console.error(err)\r\n } finally {\r\n setIsLoading(false)\r\n }\r\n }\r\n\r\n if (!menu) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {isLoading && }\r\n\r\n \r\n handleChangeCurrentBuyer(value as never)}\r\n >\r\n \r\n
\r\n \r\n \r\n {userName}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n {associatedBuyers.map((item) => (\r\n \r\n \r\n {item.Description}\r\n \r\n ))}\r\n
\r\n {!isSSO && (\r\n
\r\n
\r\n {isOveUser && (\r\n \r\n \r\n {'Add Dealership(s)'}\r\n \r\n )}\r\n {userFunctionalities?.map(\r\n (item) =>\r\n !!item && (\r\n handlePortalMenuItemClick(item)}\r\n >\r\n {iconDict[item.MenuItem.Name]}\r\n {item.MenuItem.Text}\r\n \r\n )\r\n )}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {dealerShipName}\r\n
\r\n
\r\n )\r\n}\r\n","import { postAsync } from 'common/fetch'\r\n\r\nexport const setBuyer = (id: number) => {\r\n return postAsync(`/service/setbuyer?id=${id}`)\r\n}\r\n","import { iconDict } from 'common/menuIcons'\r\nimport { NavLink } from 'components/Share/Link'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\nimport { resetSRPFilter } from 'utils/menuUtils'\r\nimport { IPortalMenuResponse } from '../types/userTypes'\r\nimport { StyledSubMenu, StyledSubMenuItem } from './SubMenu.styled'\r\ninterface IProps {\r\n items: IPortalMenuResponse[]\r\n onClick?: () => void\r\n}\r\n\r\nexport const SubMenu = ({ items, onClick }: IProps) => {\r\n const handleSubMenuClick = (e: any) => {\r\n onClick?.()\r\n resetSRPFilter()\r\n setCustomClick(`Ham menu: ${e.target.textContent.trim()}`)\r\n }\r\n\r\n return (\r\n \r\n {items.map((item) => (\r\n \r\n {item.URL && (\r\n \r\n {iconDict[item.MenuItem.Name]}\r\n {item.MenuItem.Text}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n","/* eslint-disable no-script-url */\r\nimport { MenuExclusionList } from 'common/constants'\r\nimport { NavLink } from 'components/Share/Link'\r\nimport { LayoutContext } from 'contexts/LayoutContext'\r\nimport { useContext } from 'react'\r\nimport { Nav } from 'react-bootstrap'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport { setCustomClick } from 'utils/analyticsUtils'\r\nimport shallow from 'zustand/shallow'\r\n\r\nimport { IPortalMenuResponse } from '../types/userTypes'\r\nimport { StyledCloseMenuButton, StyledMainNav, StyledNavBar, StyledUnderlineSpan } from './NavBar.styled'\r\nimport { UserMenu } from './UserMenu'\r\nimport { SubMenu } from './SubMenu'\r\nimport { resetSRPFilter } from 'utils/menuUtils'\r\n\r\nconst isActiveItem = (item: IPortalMenuResponse, pathname: string): boolean => {\r\n if (item.URL && (item.URL === pathname || item.URL.slice(2) === pathname)) {\r\n return true\r\n }\r\n return Boolean(item.Children?.find((child) => isActiveItem(child, pathname)))\r\n}\r\ninterface IProps {}\r\n\r\nexport const NavBar = (props: IProps) => {\r\n const { pathname } = useLocation()\r\n const { showMenuSidebar, setShowMenuSidebar } = useContext(LayoutContext)\r\n const [isTerm, menu] = useGlobalStore((state) => [state.userClaims.IsTermAccepted, state.userClaims.Menu], shallow)\r\n\r\n const handleMenuClick = (e: any) => {\r\n resetSRPFilter()\r\n setCustomClick(`Tab Menu: ${e.target.textContent.trim()}`)\r\n }\r\n\r\n return (\r\n \r\n \r\n setShowMenuSidebar(false)}>x\r\n \r\n \r\n \r\n )\r\n}\r\n","import { LayoutContext } from 'contexts/LayoutContext'\r\nimport { useScrollPosition } from 'hooks/useScrollPosition'\r\nimport { AcceptenceTerm } from 'modules/AcceptenceTerm'\r\nimport GenericMessageWarning from 'modules/GenericMessageWarning'\r\nimport { ReactNode, useContext, useMemo } from 'react'\r\nimport { Helmet } from 'react-helmet'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { useGlobalStore } from 'store/useGlobalStore'\r\nimport shallow from 'zustand/shallow'\r\n\r\nimport { Footer } from './Footer'\r\nimport { Header } from './Header'\r\nimport { StyledBody, StyledLayout, StyledMenuHeader } from './Layout.styled'\r\nimport { NavBar } from './NavBar'\r\nimport { UserMenu } from './UserMenu'\r\n\r\ninterface IProps {\r\n title?: string\r\n children: ReactNode\r\n}\r\n\r\nexport const Layout = ({ title, children }: IProps) => {\r\n const [userClaims, isAuthenticated] = useGlobalStore((state) => [state.userClaims, state.isAuthenticated], shallow)\r\n const { setIsSticky } = useContext(LayoutContext)\r\n\r\n const isShowFooter = useMemo(\r\n () => ((userClaims.IsTermAccepted && userClaims.Username) || !userClaims.Username ? true : false),\r\n [userClaims.IsTermAccepted, userClaims.Username]\r\n )\r\n\r\n const location = useLocation()\r\n\r\n useScrollPosition(\r\n ({ currPos }) => {\r\n const headerHeight = document.querySelector('.main-nav').offsetHeight\r\n if (currPos.y <= -headerHeight) {\r\n setIsSticky(true)\r\n } else {\r\n setIsSticky(false)\r\n }\r\n },\r\n [location.pathname]\r\n )\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {isAuthenticated && !userClaims.IsTermAccepted ? : children}\r\n {isShowFooter &&