{"version":3,"sources":["assets/timezoneConfig.js","constants.ts","utils/memory-storage.ts","utils/cookie-storage.ts","utils/storage-strategy.ts","utils/helpers.ts","utils/api-client.ts","setup.service.ts","conversation.service.tsx","reducer.ts","actions.ts","io.ts","utils/context.service.ts","AppContext.tsx","Styles.tsx","utils/utils.service.ts","widget-container/widget-toggle.tsx","assets/images/bots-28.svg","utils/color-set.ts","widget-container/widget-header/widget-header.tsx","widget-container/widget-footer/SendButtonIcon.tsx","widget-container/constants.ts","widget-container/widget-footer/date-input/date-input.tsx","widget-container/widget-footer/datetime-input/datetime-input.tsx","widget-container/widget-footer/time-input/time-input.tsx","widget-container/common-components/chat-button/chat-button.tsx","widget-container/widget-footer/select-list.tsx","widget-container/widget-modal/widget-modal.tsx","widget-container/widget-body/widget-message/message-helpers/interaction-multi-select/interaction-multi-select.tsx","widget-container/widget-footer/text-input.tsx","widget-container/widget-footer/phone-input/phone-input.tsx","widget-container/widget-footer/email-input/email-input.tsx","widget-container/widget-footer/widget-footer.tsx","assets/images/bots.svg","widget-container/widget-body/widget-message/action-interactions/end-conversation/end-conversation.tsx","widget-container/widget-body/widget-message/message-helpers/interaction-single-select/interaction-single-select.tsx","widget-container/widget-body/widget-message/message-helpers/text-message/text-message.tsx","widget-container/widget-body/widget-message/message-helpers/video-message/video-message.tsx","assets/images/play-button.png","widget-container/widget-body/widget-message/message-helpers/image-message/image-message.tsx","assets/images/document-icon.svg","widget-container/widget-body/widget-message/message-helpers/document-message/document-message.tsx","assets/images/url-default.svg","widget-container/widget-body/widget-message/message-helpers/url-message/url-message.tsx","utils/timezone.service.ts","widget-container/common-components/select-list-with-filter/select-list-with-filter.tsx","widget-container/common-components/select-list-with-filter/select-option.ts","widget-container/common-components/timezone-popup/timezone-popup.tsx","assets/images/no_Times.svg","assets/images/Error_icon.svg","assets/images/double_booking_icon.svg","widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type.ts","widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.service.ts","widget-container/common-components/loader/loader.tsx","widget-container/widget-body/widget-message/action-interactions/schedule-action/schedule-action.tsx","widget-container/widget-body/widget-message/action-interactions/live-chat-action/live-chat-action.tsx","widget-container/widget-body/widget-message/action-interactions/require-consent/require-consent.tsx","widget-container/widget-body/widget-message/action-interactions/require-consent/consent-buttons.tsx","widget-container/widget-body/widget-message/question-interactions/timezone-question/timezone-question.tsx","utils/timeago.ts","widget-container/widget-body/widget-message/chat-timestamp/chat-timestamp.tsx","widget-container/widget-body/widget-message/action-interactions/deny-consent/view-again-button.tsx","widget-container/widget-body/widget-message/action-interactions/deny-consent/deny-consent.tsx","widget-container/widget-body/widget-message/widget-message.tsx","widget-container/widget-body/widget-body.tsx","widget-container/widget-notification/notification-message/notification-message.tsx","widget-container/widget-notification/widget-notification.tsx","widget-container/widget.tsx","App.tsx","registerServiceWorker.ts","index.tsx"],"names":["module","exports","TimeZones","Id","ShortName","Country","Region","CityList","TimeZone","DisplayOrder","HasDayLightSavings","CountryCallingCode","offset","startTimeMili","endTimeMili","PriorityCountryId","ConversationState","NotificationStyle","LIVE_CHAT_CHANNEL","CONTACT_COOKIE_HEADER_KEY","SESSION_COOKIE_HEADER_KEY","ANALYTIC_COOKIE_HEADER_KEY","MemoryStorage","this","currentSession","storageData","analyticCookie","getAnalytics","sessionCookie","value","currentContact","contactCookie","currentAnalytics","analyticsSetting","CookieStorage","storage","window","parent","postMessage","type","values","name","expiry","expires","same_site","path","cookiesValues","push","StorageStrategy","strategy","createGuid","_p8","s","p","Math","random","toString","substr","ApiClient","url","options","client","updateOptions","credentials","httpVerb","fetchOptions","method","headers","body","JSON","stringify","fetch","updatedOptions","setupWidget","a","getStrategy","chSessionId","preview","getSession","chContactId","getContact","chAnalytics","post","process","pageUrl","pageTitle","websiteId","botId","directBot","response","json","success","sessionId","sessionCookieData","parse","get","e","contactCookieData","analyticCookieData","setValues","status","data","bot_id","accountId","account_id","conversationId","conversation_id","isFirstTime","is_first_time","conversationState","conversation_state","showClosedWidgetInteractions","show_closed_widget_interactions","welcomeDisplayStyle","welcome_display_style","settings","getWebsiteSetting","session_timeout","oncehubBrandingUrl","branding_url","showPromotionalMessage","show_promotional_message","id","botName","bot_name","companyName","company_name","colour","textColour","text_colour","shape","widgetIcon","widget_icon","botIcon","bot_icon","fetchConverasation","page","Error","total","pageSize","response_interactions","map","item","log_id","reverse","welcomeInteractions","i","length","message","sent_by","is_read","parseInt","SocketStatus","reducer","state","action","startedAt","socket","messageFailed","messages","Date","now","Restarting","CONNECTED","CONNECTING","DISCONNECTED","Active","liveChatchannel","liveChatUsers","messageHistory","open","Initialised","interaction","interaction_type","action_type","schedule_status","schedule_fallback_message","schedule_confirm_data","liveChatObj","Finished","bot","hasCloseNotifications","time_zone_id","timezoneId","messageIds","Set","nextMessages","has","filter","getWebsiteId","currentInteractionId","interactionId","external_id","contactFieldId","contact_field_id","randomId","createActions","dispatch","getState","lastAnswer","retryAnswerTimeout","nextMessageAt","ping","finished","connect","URL","io","protocol","host","pathname","transports","connectSocket","on","then","addNextMessage","interaction_time","toISOString","text","error","setTimeout","endConversation","max","clearTimeout","answer_id","ms","time","payload","eventId","website_id","current_interaction_id","session","done","sessionSocket","emit","close","send","connected","nextInteraction","answer","content","liveChatResponse","user","question_type","setLiveChatResponse","liveChatChannel","user_name","liveChatHistory","liveChatAnswer","liveChatTimeout","finishConversation","updateTimezone","closeWidget","openWidget","isAnswerFromVisitor","interactionSeen","restart","resendLastMessage","scheduleResponse","initLiveChat","closeNotifications","cleanDoubleBookingError","heartbeat","timeout","loadPage","nextPage","ceil","openNewBot","Context","instance","AppContext","React","createContext","notificationStyle","NotificationBadgeWithWelcomeInteraction","ConversationContext","SocketServiceContext","add","remove","Promise","all","conversation","AppContextProvider","children","startTime","setInstance","useReducer","useEffect","cancelled","fetchData","widgetLoadingFinished","appContext","useMemo","conversationContext","socketService","stateRef","useRef","current","ref","useSocketService","Provider","className","style","Styles","useContext","color","textColor","memo","UtilsService","indexOf","split","IS_MOBILE","test","navigator","userAgent","cookieEnabled","document","cookie","disabled","SHORT_DAY_NAMES","MONTH_NAMES","SHORT_MONTH_NAMES","WidgetToggle","count","actions","data-testid","onClick","xmlns","width","height","fill","fillRule","stroke","d","ColorSet","WidgetHeader","alt","src","botImg","SendButton","active","viewBox","version","strokeWidth","transform","points","strokeLinecap","VADLIDATION_MESSAGES","dateFormatError","futureDateError","DEFAULT_TIMEZONE_ID","EMAILREGEXPATTERN","DATE_MASK","DATE_REGEX","DateInput","maskedInputRef","createRef","pipe","config","setValidation","props","date","substring","month","year","getFullYear","getMonth","getDate","allowOnlyFutureDate","getTime","onChange","keydown","event","keyCode","onSubmit","inputElement","focus","mask","placeholder","keepCharPositions","autoComplete","autoCorrect","guide","placeholderChar","onKeyDown","Component","DATETIME_MASK","DATE_TIME_REGEX","DatetimeInput","toUpperCase","hours","minutes","am","setHours","setMinutes","TIME_MASK","TIME_REGEX","TimeInput","ChatButton","title","classNames","clickHandler","isDisabled","SelectList","useState","setHeight","el","querySelector","parentElement","updateHeight","clientHeight","addEventListener","removeEventListener","useListHeight","setFilter","regex","RegExp","replace","filteredOptions","items","option_text","selected","setSelected","onOptionClick","single","onSelect","selectedItem","container","listener","target","contains","input","HTMLInputElement","chatContainer","createPortal","maxHeight","key","checked","currentTarget","WidgetModal","closeModal","show","modalMessage","optionMessage","errorMessage","min","InteractionMultiSelect","setError","option","datatype","Boolean","selection","TextInput","textarea","heightDiv","innerText","endsWith","trim","clientWidth","shiftKey","preventDefault","tabIndex","contentEditable","COUNTRY_OPTIONS","Object","keys","COUNTRY","PhoneInput","question","welcomePhoneQuestion","setPhone","onError","visitorCountry","country","visitorCountryObject","getDefaultCountry","visitorCountryCode","getCountryCallingCode","countryList","setCountryList","setCountry","setValue","invalid","setInvalid","selectCountry","useCallback","code","inputEl","selectionStart","selectionEnd","formatter","AsYouType","formattedInput","phoneNumber","getNumber","countryInfo","isValid","sort","x","y","EmailInput","emailInput","findActiveQuestion","SelectInput","sendAnswer","selectProps","interaction_options","interaction_option_id","multi_choice_minimum","multi_choice_maximum","option_order","join","multi_interaction_options_answer_ids","multi_choice_type","createElement","Input","openSelectList","questionId","readOnly","require_in_future","checkValidation","questionType","errorMsg","phone","validatePhone","WidgetFooter","connecting","openEmoji","setState","updateState","next","showValidationMessage","welcomeMessage","welcomeQuestion","emojiDisabled","isEmojiDisabled","selectBox","editableBox","sendVisitorResponseInLiveChat","validationOption","messageText","newMessage","userType","sendMessage","notifyNewMessage","updateConversation","lastMessage","updatedAt","floor","selectList","hidden","border","SendButtonIcon","href","rel","native","perLine","showPreview","emoji","EndConversation","firstName","InteractionSingleSelect","TextMessageComponent","messageId","VideoMessage","parameters","isFullScreen","isOpen","isPaused","autoPlay","playerRef","togglePlay","hasPlayerRef","video","play","pause","currentTime","mute","subscribeToStateChange","handleFullScreen","bind","prevState","isFullscreen","videoTitle","description","muted","showBotName","playsInline","videoUrl","mp4","ogg","disableDefaultControls","renderTitleBox","ImageMessage","imageRef","theme","arrow","backgroundColor","opacity","transition","arrow__direction__left","marginLeft","arrow__direction__right","marginRight","arrow__size__medium","borderRadius","marginTop","padding","background","footer","footerCount","toggleLightbox","setAttribute","top","images","imageUrl","caption","imageTitle","onClose","showImageCount","isNotificationInteraction","renderLightbox","undefined","DocumentMessage","fileName","documentUrl","pop","decodeURIComponent","download","appendChild","click","removeChild","DocumentIcon","MessageUrl","openLink","urlProps","display","urlDefaultImage","extractHostName","TimezoneService","convertNumberToMinutes","numberString","convertOffsetToDisplayString","hrs","mins","offsetMinute","getFullTimezoneString","hasDST","region","offsetString","getTimezoneStringByTimezoneId","tzId","timezone","TIMEZONES","tzString","timezoneObj","getTimezoneSettings","getSelectOptionRegionString","hasDst","eachDST","getOffsetAndDST","timeNow","timeZoneData","tzOffset","activeDST","find","DST","Number","getRegionData","tz","displayOrder","shortName","countryName","regionWithGMTAndDST","getTimezoneData","tzData","allCountriesString","regions","b","topCountriesString","TOP_COUNTRIES_IDS","reduce","prevArr","countryId","allCountriesData","topCountriesData","SelectListWithFilter","inputRef","customUlRef","customSelectDivRef","dropDownToggler","ulElm","selectedElm","scrollIntoView","customOuterDivElm","windowHeight","innerHeight","customOuterDimensions","getBoundingClientRect","lowerSectionHeight","parentDiv","classList","onCustomOptionClick","index","customSelectConfig","onOptionChange","optionValue","selectItems","forEach","optionText","filterItems","allOptions","placeholderText","selectedOptionText","showValidation","validationMessage","hasSelection","SelectListOption","params","TimezonePopup","tempSelectedCountry","tempSelectedRegionDetail","tempRegionList","dropdownCountryWithRegionList","dropdownRegionList","seperatorOption","selectOptionsForCountryList","selectOptionsForRegionList","placeholderTextForRegionsList","getStatesObj","selectedRegionDetails","selectedCountryName","selectedRegionNameWithGMTAndDST","showRegionValidation","getSelectedRegionsByTimezoneId","t","some","setDropdownCountryWithRegionList","concat","countryData","setDropdownRegionList","regionData","onCountryChange","newValue","resetRegionValidation","setCountryAndRegionByIndex","countryIndex","regionIndex","newRegionSelection","setRegionByIndex","selectedRegion","onRegionChange","onContinueBtnClick","timezoneString","closePopup","onCloseButtonClick","initializePopup","nextProps","stateObj","float","margin","dateToString","stringToDate","parts","nextDay","setDate","request","lastAvailableDay","part","slots","dateSlots","pm","duration","confirmSlot","Loader","doubleBooking","confirmAPIPromise","findNextAvailableDay","selectedDatePosition","selectedSlot","blockTrackingId","firstDate","changeInDays","start","end","nextDate","position","slot","promise","buttonText","smsChecked","modal","openModal","isNaN","DelayedLoader","setText","BackArrow","NextArrow","SlotDate","dates","getDay","Slots","setIndex","outerWidth","setPageSize","disableNext","disablePrev","viewNextAvailableDay","slice","timeStr","areSlotsAvailable","CalenderContent","timeZoneId","fetchSlots","block","displayedDates","selectedDate","selectedDaySlots","nextDatesVisibility","changeSelectedDatePosition","prevDates","nextDates","emptyDate","fetchDate","lastDateForSlot","slotOnDate","ConfirmSlotContent","dateObjSummary","confirmationFullText","schedule_confirmation_title","confirmationText","smsNotificationToggle","schedule_sms_notification","smsOptInText","schedule_sms_opt_in_text","confirmationTextLength","smsOptInTextLength","selectTimeSlotView","isChecked","smsConsent","schedule_confirmation_button","confirming","confirm","back","ConfirmationContent","confirmEventData","email","isCalendarEventCreated","dateObjSummarySplit","fullMonth","dayOfMonth","ErrorWhileFetchingContent","NoTimesIcon","ConversationEndedContent","ErrorWhileConfirmingContent","CONFIRM_ERROR_ICON","ErrorDoubleBookingContent","DOUBLE_BOOKING_ERROR_ICON","ScheduleAction","last","refs","initial_load","calendarVisible","startDate","endDate","catch","schedule_timeslot_fallback_button_text","shouldRenderheading","trackingid","timeZoneString","resourcesLinkId","resourceLinkId","enableSmsNotification","contactInfo","contact_info","blockSlot","meetingLowerBoundary","meetingUpperBoundary","panelTrackingId","interaction_text","schedule_action_event_type_meeting_length","LiveChatActionComponent","OhLiveChat","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","getConversationDetail","liveChatConversation","contactId","contact","timeout_period","acceptedBy","createConversation","timeoutInterval","setInterval","clearInterval","createContact","sendMessageHistory","notifyLiveChatRequest","setLiveChatHistory","creationTime","subscribeMessages","liveChatResponseForWidget","getAllMessages","allLiveChatMessages","userId","getUserDetail","userDetail","messageObject","oldMessageArray","sentByMessage","image_url","message_type","document_url","video_mp4","video_ogv","setLiveChatObj","RequireConsent","consentRef","bodyText","link","linkText","ConsentButtons","consented","onConsentClick","consentText","onMessageSent","requireConsent","messageContainer","closest","yesText","noText","TimeZoneQuestion","showModal","timezoneName","Timeago","ChatTimestamp","sentBy","ContactTimestamp","failed","words","allowFuture","substitute","stringOrFunction","num","strings","str","isFunction","dateDifference","numbers","nowTime","timestrings","day","days","hour","minute","months","prefixAgo","prefixFromNow","seconds","suffixAgo","suffixFromNow","wordSeparator","years","abs","separator","prefix","suffix","round","functionToCheck","call","ViewAgainButton","viewed","viewAgainText","DenyConsent","Select","setSticky","resizeCount","setResizeCount","hasContent","useLayoutEffect","getElementById","renderMessageBody","video_ogg","renderImageMessage","renderDocumentMessage","renderUrlMessage","button_text","privacy_policy_link","privacy_policy_link_text","MessageExtras","deny_button_text","accept_button_text","view_again_button_text","twoDigits","messageTitle","startOfDay","getHours","getMinutes","toLocaleDateString","WidgetMessage","showTimestamp","sticky","select","endChatWithoutMessage","lastName","colorCode","r","g","profileImage","TypingIndication","isConvEnded","convEnded","WidgetBody","ended","showTimestampFactory","textAlign","isBotTyping","ID_PREFIX","renderTextComponent","NotificationMessage","renderMessageInteraction","renderQuestion","HorizontalTrack","WidgetNotification","unread","upperDiv","lowerDiv","isTyping","lower","upper","observer","ResizeObserver","observe","disconnect","autoHide","renderTrackHorizontal","findPos","header","chatHeaderHeight","Widget","result","notifications","NotificationBadgeOnly","shouldShouldNotifications","restarting","scrollBar","firstMessageId","scrollId","firstMessageIdRef","lastMessageId","bar","pos","scrollTop","getScrollHeight","getScrollTop","scrollToBottom","useScrollManager","notificationEffect","removeWidget","openWidgetOnPreview","sessionDuration","hearbeat","work","visibilityState","timeoutEffect","onScrollFrame","App","location","hostname","match","analyticCookieCommand","callType","xmlhttp","XMLHttpRequest","onreadystatechange","readyState","getResponseHeader","setAnalytics","withCredentials","setRequestHeader","website_slug","cookieType","page_url","element","ReactDOM","unmountComponentAtNode","render","page_title","direct_bot","start_time","REACT_APP_ENV","attributes","REACT_APP_WEBSITE_ID","REACT_APP_WIDGET_PREVIEW","REACT_APP_BOT_ID","serviceWorker","ready","registration","unregister","setStrategy"],"mappings":"+FAAAA,EAAOC,QAAU,CACfC,UAAW,CACT,CACE,EAAK,CACH,CACEC,GAAI,IACJC,UAAW,GACXC,QAAS,YACTC,OAAQ,GACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,KAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,iBACTC,OAAQ,YACRC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,mBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,cACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,EAAK,CACH,CACER,GAAI,IACJC,UAAW,KACXC,QAAS,sBACTC,OAAQ,YACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,sBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,cACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,4BACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,6CACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,6BACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,YACTC,OACE,4EACFC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,gCACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,+BACRC,SAAU,GACVC,SAAU,KACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,mBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,SAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,cACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,SAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,yBACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,0CACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,gDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,uDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,2CACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,yDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,oBACTC,OAAQ,sBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,gCACRC,SAAU,GACVC,UAAW,IACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,OACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,uCACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,mDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,mDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,0BACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,uDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,oCACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,oDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,4BACRC,SAAU,GACVC,UAAW,EACXC,aAAc,GACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,mDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,2BACRC,SAAU,GACVC,UAAW,EACXC,aAAc,GACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,QACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,iBACTC,OAAQ,cACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,2BACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,wBACTC,OAAQ,gBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,6BACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,mBACTC,OAAQ,iBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,0BACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,wCACTC,OAAQ,qDACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,wCACTC,OAAQ,qBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,YACRC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,iBACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,qBACTC,OAAQ,gBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,QACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,8BACTC,OAAQ,oBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,eACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,oBACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,8BACTC,OAAQ,eACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,UACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,mBACTC,OAAQ,kBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,mBACTC,OAAQ,oBACRC,SAAU,GACVC,UAAW,IACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,mBACTC,OACE,8EACFC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,0BACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,kDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,mBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,mBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,gBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,iBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,iBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,iBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,iBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,cACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,iDACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,oDACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,4BACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,qCACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,4BACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,MACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,kBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,sBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,GAAM,CACJ,CACER,GAAI,KACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,gCACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,eACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,wBACTC,OAAQ,iBACRC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,gDACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,wCACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,wCACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,qBACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,kCACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,yBACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,6CACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,eACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,eACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,mBACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OACE,gEACFC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,mDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,4CACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,sBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,+CACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,kCACTC,OAAQ,qCACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,kCACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,MACXC,QAAS,wBACTC,OAAQ,iBACRC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,uBACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,oCACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,kCACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,6BACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,KACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,mBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,uBACTC,OAAQ,uDACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,uBACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,UACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,QACRC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,iBACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,2BACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,qBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,wBACTC,OAAQ,iBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,cACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,mBACTC,OAAQ,eACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,OACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,MACXC,QAAS,WACTC,OAAQ,YACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,iBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,wBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,kBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,qBACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,EACVC,aAAc,GACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,yBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,GACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,qBACTC,OAAQ,mBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,gBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,0DACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,cACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,GACXC,QAAS,qBACTC,OAAQ,2BACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,qBACTC,OAAQ,4BACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,mBACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,wBACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,WACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,4BACTC,OAAQ,eACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,mCACTC,OAAQ,YACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,wBACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,gBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,iBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,cACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,aACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,kBACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,oCACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,iBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,0DACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,IACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,yBACTC,OAAQ,eACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,uBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,uBACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,+BACTC,OAAQ,gBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,cACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,OACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,sBACTC,OAAQ,gBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,mBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,eACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,2BACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,SAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,UACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,OACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,uBACTC,OAAQ,mBACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,iBACTC,OAAQ,8BACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,IACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,eACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,eACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,UACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,gBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,eACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,4BACRC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,CAClB,CACEE,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,iBAEf,CACEF,OAAQ,KACRC,cAAe,gBACfC,YAAa,kBAGjBH,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,gBACTC,OAAQ,SACRC,SAAU,GACVC,UAAW,GACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,aACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,aACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,YACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,YACTC,OAAQ,UACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,UACTC,OAAQ,0BACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,OAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,0BACTC,OAAQ,YACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,uBACTC,OAAQ,oBACRC,SAAU,GACVC,UAAW,EACXC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,MAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,MACXC,QAAS,qBACTC,OAAQ,eACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,oBACTC,OAAQ,WACRC,SAAU,GACVC,SAAU,GACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAO,CACL,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,UAK5BI,kBAAmB,CACjB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,S,8iKCvoRQC,EAQAC,E,iHARAD,K,gBAAAA,E,0BAAAA,E,mBAAAA,E,yBAAAA,M,cAQAC,K,sFAAAA,E,iDAAAA,M,KAoCL,IAQMC,EAAoB,YA4BpBC,EAA4B,wBAC5BC,EAA4B,wBAC5BC,EAA6B,yB,eCnF7BC,EAAb,+FAME,WACE,OAAOC,KAAKC,iBAPhB,uBAUE,SAAwBC,GACtB,IAAMC,EAAiBH,KAAKI,eAC5BJ,KAAKC,eAAiBC,EAAYG,cAAcC,MAChDN,KAAKO,eAAiBL,EAAYM,cAAcF,MAChDN,KAAKS,iBAAmBN,GAAkBD,EAAYC,eAAeG,QAdzE,wBAiBE,WACE,OAAON,KAAKO,iBAlBhB,0BAqBE,SAA2BL,GACzB,IAAMC,EAAiBH,KAAKI,eAC5BJ,KAAKO,eAAiBL,EAAYM,cAAcF,MAChDN,KAAKS,iBAAmBN,GAAkBD,EAAYC,eAAeG,QAxBzE,0BA2BE,WACE,OAAON,KAAKS,qBA5BhB,KAAaV,EACJE,oB,EADIF,EAEJQ,oB,EAFIR,EAGJU,sB,EAHIV,EAIJW,sB,ECFF,IAAMC,EAAb,+FAME,WACE,OAAOX,KAAKC,iBAPhB,wBAUE,WACE,OAAOD,KAAKO,iBAXhB,0BAiBE,SAA2BK,GACzBZ,KAAKS,iBAAmBG,EAAQT,eAAeG,MAC/CO,OAAOC,OAAOC,YACZ,CACEC,KAAM,YACNC,OAAQ,CACN,CACEC,KAAMN,EAAQT,eAAee,KAC7BC,OAAQP,EAAQT,eAAeiB,QAC/Bd,MAAOM,EAAQT,eAAeG,MAC9Be,UAAWT,EAAQT,eAAekB,UAClCC,KAAMV,EAAQT,eAAemB,MAE/B,CACEJ,KAAMN,EAAQJ,cAAcU,KAC5BC,OAAQP,EAAQJ,cAAcY,QAC9Bd,MAAOM,EAAQJ,cAAcF,MAC7Be,UAAWT,EAAQT,eAAekB,UAClCC,KAAMV,EAAQT,eAAemB,QAInC,OAvCN,0BA8CE,WACE,OAAOtB,KAAKS,mBA/ChB,uBAkDE,SAAwBP,GACtB,IAAIqB,EAA2B,GAE3BrB,EAAYG,gBACdL,KAAKC,eAAiBC,EAAYG,cAAcC,MAEhDiB,EAAcC,KAAK,CACjBN,KAAMhB,EAAYG,cAAca,KAChCC,OAAQjB,EAAYG,cAAce,QAClCd,MAAON,KAAKC,eACZoB,UAAWnB,EAAYG,cAAcgB,UACrCC,KAAMpB,EAAYG,cAAciB,QAIhCpB,EAAYM,gBACdR,KAAKO,eAAiBL,EAAYM,cAAcF,MAEhDiB,EAAcC,KAAK,CACjBN,KAAMhB,EAAYM,cAAcU,KAChCC,OAAQjB,EAAYM,cAAcY,QAClCd,MAAON,KAAKO,eACZc,UAAWnB,EAAYM,cAAca,UACrCC,KAAMpB,EAAYM,cAAcc,QAIhCpB,EAAYC,iBACdH,KAAKS,iBAAmBP,EAAYC,eAAeG,MAEnDiB,EAAcC,KAAK,CACjBN,KAAMhB,EAAYC,eAAee,KACjCC,OAAQjB,EAAYC,eAAeiB,QACnCd,MAAON,KAAKS,iBACZY,UAAWnB,EAAYC,eAAekB,UACtCC,KAAMpB,EAAYC,eAAemB,QAIrCT,OAAOC,OAAOC,YACZ,CACEC,KAAM,YACNC,OAAQM,GAEV,SA9FN,KAAaZ,EACJD,sB,EADIC,EAEJV,oB,EAFIU,EAGJJ,oB,EAHII,EAIJF,sB,ECJF,IAAMgB,EAAb,gGAGE,WACE,OAAOA,EAAgBC,WAJ3B,yBAOE,WAGED,EAAgBC,SAAWf,MAV/B,KAAac,EACIC,SAA0C3B,E,WCJpD,SAAS4B,IACd,SAASC,EAAIC,GACX,IAAIC,GAAKC,KAAKC,SAASC,SAAS,IAAM,aAAaC,OAAO,EAAG,GAC7D,OAAOL,EAAI,IAAMC,EAAEI,OAAO,EAAG,GAAK,IAAMJ,EAAEI,OAAO,EAAG,GAAKJ,EAE3D,OAAOF,GAAI,GAASA,GAAI,GAAQA,GAAI,GAAQA,GAAI,GCU3C,IAAMO,EAAb,wFACE,SAAWC,EAAaC,GACtB,OAAOrC,KAAKsC,OACVF,EACApC,KAAKuC,cAAcF,GACnB,MACAA,EAAQG,cAAe,KAN7B,kBAUE,SAAYJ,EAAaC,GACvB,OAAOrC,KAAKsC,OACVF,EACApC,KAAKuC,cAAcF,GACnB,OACAA,EAAQG,cAAe,KAf7B,oBAmBE,SACEJ,EACAC,EACAI,EACAD,GAEA,IAAIE,EAA6B,CAC/BC,OAAQF,EACRG,QAASP,EAAQO,QACjBC,KAAMC,KAAKC,UAAUV,EAAQQ,OAK/B,OAHIL,IACFE,EAAaF,YAAc,WAEtBQ,MAAMZ,EAAKM,KAjCtB,2BAoCE,SAA6BL,GAC3B,IAAIY,EAAc,eAAQZ,GAK1B,OAJAY,EAAeL,QAAf,2BACKP,EAAQO,SADb,IAEE,eAAgBjB,MAEXsB,MA1CX,KCDO,SAAeC,EAAtB,kC,4CAAO,WACLb,GADK,mCAAAc,EAAA,6DAGCvC,EAAUa,EAAgB2B,cAC5BC,EAAchB,EAAQiB,QAAU,KAAO1C,EAAQ2C,aAC/CC,EAAcnB,EAAQiB,QAAU,KAAO1C,EAAQ6C,aAC/CC,EAAcrB,EAAQiB,QAAU,KAAO1C,EAAQR,eAN9C,SAOkB+B,EAAUwB,KAC/BC,8CACA,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAM,CACJgB,QAASxB,EAAQwB,QACjBC,UAAWzB,EAAQyB,UACnBC,UAAW1B,EAAQ0B,UACnBC,MAAO3B,EAAQ2B,MACfV,QAASjB,EAAQiB,QACjBW,UAAW5B,EAAQ4B,UACnBT,cACAE,cACAL,eAEFb,aAAa,IAxBZ,cAOC0B,EAPD,gBA4BcA,EAASC,OA5BvB,WA6BgB,KADfA,EA5BD,QA6BIC,QA7BJ,0CA6B6B,MA7B7B,QA+BDC,EAAY,KAKhB,IACEC,EAAoBxB,KAAKyB,MACvBL,EAAStB,QAAQ4B,IAAI3E,IAA8B,IAErDwE,EAAYC,EAAkBhE,MAC9B,MAAOmE,GACPH,EAAoB,KAGtB,IACEI,EAAoB5B,KAAKyB,MACvBL,EAAStB,QAAQ4B,IAAI5E,IAA8B,IAErD,MAAO6E,GACPC,EAAoB,KAGtB,IACEC,EAAqB7B,KAAKyB,MACxBL,EAAStB,QAAQ4B,IAAI1E,IAA+B,IAEtD,MAAO2E,GACPE,EAAqB,KA1DlB,GA6DDzE,EAAc,GAGhBA,EADEmC,EAAQiB,QACI,CACZ9C,cAAekE,EACfrE,cAAeiE,GAGH,CACZ9D,cAAekE,EACfrE,cAAeiE,EACfnE,eAAgBwE,GAIpB/D,EAAQgE,UAAU1E,GAEM,MAApBgE,EAASW,QAAsC,MAApBX,EAASW,OA9EnC,0CA+EI,CACLb,MAAOG,EAAKW,KAAKC,QAAU,KAC3BC,UAAWb,EAAKW,KAAKG,WACrBC,eAAgBf,EAAKW,KAAKK,gBAC1B9B,YAAagB,EACbe,YAAajB,EAAKW,KAAKO,cACvBC,kBAAmBnB,EAAKW,KAAKS,mBAC7BC,6BAA8BrB,EAAKW,KAAKW,gCACxCC,oBAAqBvB,EAAKW,KAAKa,sBAC/BC,SAAUC,EAAkB1B,EAAKW,KAAKc,SAAUvD,EAAQ0B,WACxD+B,gBAAiB3B,EAAKW,KAAKgB,gBAC3BC,mBAAoB5B,EAAKW,KAAKkB,aAC9BC,uBAAwB9B,EAAKW,KAAKoB,2BA3FjC,iCA8FI,MA9FJ,6C,sBAkGP,SAASL,EAAkBf,EAAMf,GAC/B,MAAO,CACLoC,GAAIpC,EACJqC,QAAO,OAAEtB,QAAF,IAAEA,OAAF,EAAEA,EAAMuB,SACfC,YAAW,OAAExB,QAAF,IAAEA,OAAF,EAAEA,EAAMyB,aACnBC,OAAM,OAAE1B,QAAF,IAAEA,OAAF,EAAEA,EAAM0B,OACdC,WAAU,OAAE3B,QAAF,IAAEA,OAAF,EAAEA,EAAM4B,YAClBC,MAAK,OAAE7B,QAAF,IAAEA,OAAF,EAAEA,EAAM6B,MACbC,WAAU,OAAE9B,QAAF,IAAEA,OAAF,EAAEA,EAAM+B,YAClBC,QAAO,OAAEhC,QAAF,IAAEA,OAAF,EAAEA,EAAMiC,UCnHZ,SAAeC,EAAtB,kC,4CAAO,WACLjD,GADK,6CAAAZ,EAAA,6DAEL8D,EAFK,+BAEU,EAETrG,EAAUa,EAAgB2B,cAC1BhB,EACJwB,6DAEAqD,EACA,eACAlD,EACA,kBACAnD,EAAQ2C,aAZL,SAakBpB,EAAUqC,IAAIpC,EAAK,CACxCQ,QAAS,CACP,eAAgB,sBAff,UAkBmB,OALlBsB,EAbD,QAkBQW,OAlBR,sBAmBG,IAAIqC,MAAM,mCAnBb,UAqBCC,EAAQjD,EAAStB,QAAQ4B,IAAI,SAC7B4C,EAAWlD,EAAStB,QAAQ4B,IAAI,YACzB,MAAT2C,GAA6B,MAAZC,EAvBhB,uBAuBwC,IAAIF,MAvB5C,yBAwBchD,EAASC,OAxBvB,QA+BL,KAPMA,EAxBD,QAyBAkD,sBAAwBlD,EAAKkD,sBAAsBC,KAAI,SAAAC,GAAI,kCAC3DA,GAD2D,IAE9DpB,GAAIoB,EAAKC,OAAOvF,gBAElBkC,EAAKkD,sBAAsBI,UACrBC,EAA4D,GACzDC,EAAIxD,EAAKkD,sBAAsBO,OAAS,EAAGD,GAAK,EAAGA,IAElC,SADlBE,EAAU1D,EAAKkD,sBAAsBM,IAC/BG,SAAsBD,EAAQE,SACxCL,EAAoBlG,KAAKqG,GAlCxB,yBAqCE,CACLR,sBAAuBlD,EAAKkD,sBAC5BK,oBAAqBA,EAAoBD,UACzCN,MAAOa,SAASb,GAChBC,SAAUY,SAASZ,KAzChB,6C,0BCQKa,E,QAuHL,SAASC,EAAQC,EAAiBC,GACvC,OAAQA,EAAOpH,MACb,IAAK,QACH,OAAO,2BACFoH,EAAOtD,MADZ,IAEEmC,KAAM,EACNjC,UAAWoD,EAAOtD,KAAKE,UACvBE,eAAgBkD,EAAOtD,KAAKI,eAC5BmD,UAAWF,EAAME,UACjBC,OAAQH,EAAMG,OACdC,eAAe,IAEnB,IAAK,UACH,OAAO,2BACFJ,GADL,IAEEK,SAAU,GACVvB,KAAM,EACNoB,UAAWI,KAAKC,MAChBvB,MAAO,EACPgB,MAAO1I,EAAkBkJ,WACzBJ,eAAe,IAEnB,IAAK,iBACH,OAAO,2BACFJ,GADL,IAEEG,OAAQL,EAAaW,YAEzB,IAAK,oBACH,OAAO,2BACFT,GADL,IAEEG,OAAQL,EAAaY,aAEzB,IAAK,oBACH,OAAO,2BACFV,GADL,IAEEG,OAAQL,EAAaa,eAEzB,IAAK,YACH,OAAO,2BACFX,GADL,IAEEA,MAAO1I,EAAkBsJ,SAE7B,IAAK,cACH,OAAO,2BACFZ,GADL,IAEEa,gBAAiBZ,EAAOY,gBACxBC,cAAeb,EAAOa,cACtBV,eAAe,EACfpB,MAAOgB,EAAMhB,MAAQ,EACrBqB,SAAS,GAAD,mBAAML,EAAMK,UAAZ,CAAsBJ,EAAOP,YAEzC,IAAK,oBACH,OAAO,2BACFM,GADL,IAEEc,cAAeb,EAAOa,cACtBD,gBAAiBZ,EAAOY,gBACxB7B,MAAOgB,EAAMhB,MAAQiB,EAAOc,eAAetB,OAC3CY,SAAS,GAAD,mBAAML,EAAMK,UAAZ,YAAyBJ,EAAOc,mBAE5C,IAAK,cACH,OAAO,2BACFf,GADL,IAEEgB,MAAM,EACNhB,MACEA,EAAMA,QAAU1I,EAAkB2J,YAC9B3J,EAAkBsJ,OAClBZ,EAAMA,QAEhB,IAAK,mBACH,OAAO,2BACFA,GADL,IAEEgB,MAAM,EACNX,SAAU,GACVvB,KAAM,EACNE,MAAO,EACPgB,MAAO1I,EAAkBsJ,OACzBR,eAAe,IAEnB,IAAK,eACH,OAAO,2BACFJ,GADL,IAEEgB,MAAM,IAEV,IAAK,iBACH,OAAO,2BACFhB,GADL,IAEEI,eAAe,IAEnB,IAAK,oBACH,IAAMC,EAAQ,YAAOL,EAAMK,UACrBX,EAAO,eAAQW,EAASA,EAASZ,OAAS,IAChD,GAAwB,QAApBC,EAAQC,QAAmB,MAAM,IAAIZ,MACzC,IAAMmC,EAAW,eAAQxB,EAAQ/C,MACjC,GAAqC,WAAjCuE,EAAYC,iBAA+B,MAAM,IAAIpC,MACzD,GAAgC,aAA5BmC,EAAYE,YAA4B,MAAM,IAAIrC,MAWtD,MAVI,oBAAqBkB,EAAOlE,UAC9BmF,EAAYG,gBAAkBpB,EAAOlE,SAASsF,gBAC9CH,EAAYI,0BACVrB,EAAOlE,SAASuF,4BAElBJ,EAAYG,gBAAkB,YAC9BH,EAAYK,sBAAwBtB,EAAOlE,UAE7C2D,EAAQ/C,KAAOuE,EACfb,EAASA,EAASZ,OAAS,GAAKC,EACzB,2BAAKM,GAAZ,IAAmBK,aAErB,IAAK,iBACH,OAAO,2BAAKL,GAAZ,IAAmBwB,YAAavB,EAAOuB,cAEzC,IAAK,oBACH,OAAO,2BAAKxB,GAAZ,IAAmBwB,YAAa,KAAMX,gBAAiB,OACzD,IAAK,6BACH,IAAMR,EAAQ,YAAOL,EAAMK,UACrBX,EAAO,eAAQW,EAASA,EAASZ,OAAS,IAChD,GAAwB,QAApBC,EAAQC,QAAmB,MAAM,IAAIZ,MACzC,IAAMmC,EAAW,eAAQxB,EAAQ/C,MACjC,GAAqC,WAAjCuE,EAAYC,iBAA+B,MAAM,IAAIpC,MACzD,GAAgC,aAA5BmC,EAAYE,YAA4B,MAAM,IAAIrC,MAItD,cAHOmC,EAAYG,gBACnB3B,EAAQ/C,KAAOuE,EACfb,EAASA,EAASZ,OAAS,GAAKC,EACzB,2BAAKM,GAAZ,IAAmBK,aAErB,IAAK,mBACH,OAAO,2BAAKL,GAAZ,IAAmBA,MAAO1I,EAAkBmK,WAC9C,IAAK,mBACH,OAAO,2BACFzB,GADL,IAEEK,SAAUL,EAAMK,SAASlB,KAAI,SAAAO,GAC3B,MAAwB,YAApBA,EAAQC,UACY,IAApBD,EAAQE,QAD8BF,EAEnC,2BAAKA,GAAZ,IAAqBE,SAAS,SAGpC,IAAK,uBACH,OAAO,2BACFI,GADL,IAEE0B,IAAK1B,EAAM0B,KAAN,2BACA1B,EAAM0B,KADN,IAEHC,uBAAuB,MAG7B,IAAK,mBACH,OAAO,2BACF3B,GADL,IAEEK,SAAUL,EAAMK,SAASlB,KAAI,SAAAO,GAAO,OAClCA,EAAQ1B,KAAOiC,EAAOjC,GAClB0B,EADJ,2BAGSA,GAHT,IAIME,SAAS,SAIrB,IAAK,sBACH,OAAO,2BACFI,GADL,IAEEI,eAAe,IAEnB,IAAK,kBACH,IAAIC,EAAWL,EAAMK,SACfX,EAAUW,EAASA,EAASZ,OAAS,GAC3C,GAAwB,YAApBC,EAAQC,QAAuB,OAAOK,EAC1C,IAAMkB,EAAcxB,EAAQ/C,KAC5B,MAAqC,WAAjCuE,EAAYC,kBACgB,aAA5BD,EAAYE,YADsCpB,IAEtDK,EAAQ,YAAOA,IACNA,EAASZ,OAAS,GAA3B,2BACKC,GADL,IAEE/C,KAAK,2BAAMuE,GAAP,IAAoBU,aAAc3B,EAAO4B,eAExC,2BAAK7B,GAAZ,IAAmBK,cAErB,IAAK,wBAKH,IAJA,IAAMA,EAAQ,YAAOL,EAAMK,UACrByB,EAAa,IAAIC,IAAI1B,EAASlB,KAAI,SAAAO,GAAO,OAAIA,EAAQ1B,OACrDgE,EAAe/B,EAAOI,SACxBrB,EAAQgB,EAAMhB,MACTQ,EAAIwC,EAAavC,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACjD,IAAME,EAAUsC,EAAaxC,GACL,QAApBE,EAAQC,SAAsBmC,EAAWG,IAAIvC,EAAQ1B,MACvDqC,EAAShH,KAAKqG,GACdV,KAGJ,OAAO,2BAAKgB,GAAZ,IAAmBK,WAAUrB,UAE/B,IAAK,oBACH,OAAO,2BAAKgB,GAAZ,IAAmBlB,KAAMkB,EAAMlB,KAAO,IAExC,IAAK,YACH,IAAMuB,EAAQ,YAAOL,EAAMK,UACrByB,EAAa,IAAIC,IAAI1B,EAASlB,KAAI,SAAAO,GAAO,OAAIA,EAAQ1B,OACrDgE,EAAe/B,EAAOI,SAAS6B,QACnC,SAAAxC,GAAO,OAAKoC,EAAWG,IAAIvC,EAAQ1B,OAErC,OAAO,2BACFgC,GADL,IAEEK,SAAS,GAAD,mBAAM2B,GAAN,YAAuBhC,EAAMK,WACrCrB,MAAOgB,EAAMhB,QAGjB,QACE,MAAM,IAAID,MAAM,kBAAoBpE,KAAKC,UAAUqF,EAAQ,KAAM,KAyBhE,SAASkC,EAAanC,GAC3B,GAAuB,OAAnBA,EAAMvC,SAAmB,MAAM,IAAIsB,MACvC,OAAOiB,EAAMvC,SAASO,GAGjB,SAASoE,EAAqBpC,GAGnC,IAFA,IAAMK,EAAWL,EAAMK,SACnBgC,EAA+B,KAC1B7C,EAAIa,EAASZ,OAAS,EAAGD,GAAK,GAAuB,OAAlB6C,EAAwB7C,IAAK,CACvE,IAAME,EAAUW,EAASb,GAEH,QAApBE,EAAQC,SAC0C,MAAjDD,EAAQ/C,KAAqBwE,mBAE9BkB,EAAiB3C,EAAQ/C,KAAqB2F,aAGlD,OAAOD,EAIF,SAASE,EAAevC,GAG7B,IAFA,IAAMK,EAAWL,EAAMK,SACnBmC,EAAkC,KAC7BhD,EAAIa,EAASZ,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC7C,IAAME,EAAUW,EAASb,GACzB,GAAwB,QAApBE,EAAQC,QAAmB,CAC7B6C,EAAoB9C,EAAQ/C,KAAkB6F,iBAC9C,OAGJ,OAAOA,G,SA3XG1C,O,yBAAAA,I,+BAAAA,I,4BAAAA,M,oCCmEZ,SAAS2C,IACP,OACoB,WAAhB7I,KAAKC,WAA2B,GAAGC,SAAS,KAC5B,WAAhBF,KAAKC,WAA2B,GAAGC,SAAS,IAY3C,SAAS4I,EACdC,EACAC,GAEA,IAAIzC,EAAwB,KACxB0C,EAAiC,KACjCC,EAA0B,KAC1BC,EAAgBzC,KAAKC,MACrByC,EAAO,KACPC,GAAW,EACXxK,EAAUa,EAAgB2B,cAE9B,SAASiI,IA2EP,OA1EA/C,EC1GG,WACL,IAAMlG,EAAM,IAAIkJ,IAAI1H,uCAKpB,OAJe2H,IAAGnJ,EAAIoJ,SAAW,KAAOpJ,EAAIqJ,KAAM,CAChDnK,KAAMc,EAAIsJ,SAAW,YACrBC,WAAY,CAAC,YAAa,aDsGjBC,GAETd,EAAS,CAAE9J,KAAM,sBAEjBsH,EAAOuD,GAAG,WAAW,kBAAMf,EAAS,CAAE9J,KAAM,sBAE5CsH,EAAOuD,GAAG,cAAc,kBAAMf,EAAS,CAAE9J,KAAM,yBAE/CsH,EAAOuD,GAAG,aAAa,WACrBf,EAAS,CAAE9J,KAAM,mBACjBgG,EAAmBsD,EAAaS,MAAae,MAAK,SAAAhH,GAAI,OACpDgG,EAAS,CACP9J,KAAM,wBACNwH,SAAU1D,EAAKuC,8BAKrBiB,EAAOuD,GAAG,0BAA0B,kBAAMf,EAAS,CAAE9J,KAAM,iBAE3DsH,EAAOuD,GACL,mBACA,SAACxC,GAAD,OACE0C,EAAe,CACb5F,GAAIkD,EAAY7B,OAAOvF,WACvB6F,QAAS,MACThD,KAAMuE,EACNtB,SAAS,EACTiE,kBAAkB,IAAIvD,MAAOwD,mBAInC3D,EAAOuD,GAAG,gBAAgB,SAAA/G,GAAI,OAC5BiH,EAAe,CACb5F,GAAIrB,EAAK0C,OAAOvF,WAChB6F,QAAS,MACThD,KAAM,CACJoH,KAAMpH,EAAKoH,MAEbnE,SAAS,EACTiE,kBAAkB,IAAIvD,MAAOwD,mBAIjC3D,EAAOuD,GAAG,qBAAqB,SAAA/G,GAAI,OACjCiH,EAAe,CACb5F,GAAIrB,EAAK0C,OAAOvF,WAChB6F,QAAS,MACThD,KAAM,CACJoH,KAAMpH,EAAKqH,OAEbpE,SAAS,EACTiE,kBAAkB,IAAIvD,MAAOwD,mBAIjC3D,EAAOuD,GAAG,oBAAoB,WAC5BO,WAAWC,EAAiBtK,KAAKuK,IAAI,EAAGpB,EAAgBzC,KAAKC,WAG/DJ,EAAOuD,GAAG,oBAAoB,SAAA/G,GACD,OAAvBmG,GAA6BsB,aAAatB,GAC9CH,EAAS,CAAE9J,KAAM,mBAAoBmF,GAAIrB,EAAK0H,YAC9CtB,EAAgBzC,KAAKC,MAAQ,OAG/BJ,EAAOuD,GAAG,yBAAyB,WACjCO,WAAWC,EAAiBtK,KAAKuK,IAAI,EAAGpB,EAAgBzC,KAAKC,WAG/DJ,EAAOuD,GAAG,QAAQ,SAACY,GACjBtB,EAAOsB,KAGFnE,EAGT,SAASyD,EAAelE,GACtB,IAAM6E,EAAOxB,EAAgBzC,KAAKC,MAC9BgE,GAAQ,GACVxB,EAAgBzC,KAAKC,MAAQ,IAC7BoC,EAAS,CAAE9J,KAAM,cAAe6G,cAEhCqD,GAAiB,IACjBkB,YAAW,kBAAMtB,EAAS,CAAE9J,KAAM,cAAe6G,cAAY6E,IAIjE,SAASlL,EAAT,GAA+C,IAA/BR,EAA8B,EAA9BA,KAAS8D,EAAqB,wBAC5C,IAAIsG,EAAJ,CACA,IAAI/G,EAAYzD,EAAQ2C,aACxB,GAAKc,EAAL,CAIe,OAAXiE,IACFA,EAAS+C,KAEX,IAAMlD,EAAQ4C,IACR4B,EAAO,2BACR7H,GADQ,IAEX8H,QAAShC,IACTiC,WAAYvC,EAAanC,GACzB2E,uBAAwBvC,EAAqBpC,GAC7CwC,iBAAkBD,EAAevC,GACjC4E,QAAS1I,IAEP2I,GAAO,EACLC,EAAgB3E,EACtBA,EAAO4E,KAAKlM,EAAM2L,GAAS,WACzBK,GAAO,EACH5B,GAAU6B,EAAcE,WAY9Bf,YAVa,SAAPgB,IACA9E,IAAW2E,GAAiBD,IAC5B1E,EAAO+E,WACT/E,EAAO4E,KAAKlM,EAAM2L,GAAS,WACzBK,GAAO,EACH5B,GAAU6B,EAAcE,WAGhCf,WAAWgB,EAAa,EAAPjC,MAEK,EAAPA,QA/BfkB,KA4JJ,SAASiB,IACP9L,EAAK,CAAER,KAAM,qBA6Hf,SAASqL,IACPvB,EAAS,CAAE9J,KAAM,qBA6BnB,MAAO,CACLuM,OAvRF,SAAgBA,GACd,IAAMpF,EAAQ4C,IAAW5C,MAEvBA,IAAU1I,EAAkBsJ,QAC5BZ,IAAU1I,EAAkB2J,cAS9B5H,EALAwJ,EAAU,aACRhK,KAAM,SACNwL,UAAW5B,KACR2C,IAGLzC,EAAS,CACP9J,KAAM,cACN6G,QAAS,CACPC,QAAS,UACT3B,GAAI6E,EAAWwB,UACfzE,SAAS,EACTjD,KAAM,CACJoH,KAAMqB,EAAOC,SAEfxB,kBAAkB,IAAIvD,MAAOwD,iBAGjChB,EAAqBmB,YACnB,kBAAMtB,EAAS,CAAE9J,KAAM,qBThLO,OS6ahCyM,iBA/OF,SAA0BvJ,EAAkB2D,EAASoB,GACnD,IAAMwE,EAmBR,SAA6B5F,EAAS3D,GACpC,IAAMwJ,EAAc7F,EAAQ6F,KAC5B,OAAQ7F,EAAQ7G,MACd,IAAK,WACH,MAAO,CACLkL,KAAM,GACN5C,iBAAkB,SAClBC,YAAa,mBACbmE,KAAMA,GAGV,IAAK,eAQL,QACE,MAAO,CACLxB,KAAMhI,EAASsJ,QACflE,iBAAkB,WAClBqE,cAAe,OACfD,KAAMA,IA3CkBE,CAAoB/F,EAAS3D,GACrD2J,EACa,aAAjBhG,EAAQ7G,KAAsB,GAAKrB,EACrCmL,EAAS,CACP9J,KAAM,cACNgI,gBAAiB6E,EACjB5E,cAAeA,EACfpB,QAAS,CACPC,QAAS,MACTgG,UAAW,QACX3H,GAAIyE,IACJ7C,SAAS,EACTjD,KAAM2I,EACNzB,kBAAkB,IAAIvD,MAAOwD,iBAGZ,aAAjBpE,EAAQ7G,MAAqBqL,KA+NjC0B,gBAzPF,SAAyBvF,EAAUS,EAAe4E,GAChD/C,EAAS,CACP9J,KAAM,oBACNkI,eAAgBV,EAChBS,cAAeA,EACfD,gBAAiB6E,KAqPnBG,eA/LF,SAAwBT,EAAgBvE,EAAiBC,GACvD,IAAMd,EAAQ4C,IAAW5C,MAEvBA,IAAU1I,EAAkBsJ,QAC5BZ,IAAU1I,EAAkB2J,cAI9B4B,EAAU,aACRhK,KAAM,SACNwL,UAAW5B,KACR2C,GAGLzC,EAAS,CACP9J,KAAM,cACNgI,gBAAiBA,EACjBC,cAAeA,EACfpB,QAAS,CACPC,QAAS,UACTgG,UAAW,UACX3H,GAAI6E,EAAWwB,UACfzE,SAAS,EACTjD,KAAM,CACJoH,KAAMqB,EAAOC,SAEfxB,kBAAkB,IAAIvD,MAAOwD,mBAsKjCgC,gBA7CF,WACEnD,EAAS,CAAE9J,KAAM,sBACjBsM,KA4CAA,kBACAY,mBA/JF,WACE1M,EAAK,CAAER,KAAM,wBACboK,GAAW,GA8JX+C,eAlJF,SAAwBpE,GACtBvI,EAAK,CAAER,KAAM,kBAAmB+I,iBAChCe,EAAS,CAAE9J,KAAM,kBAAmBgJ,WAAYD,KAiJhDqE,YA9IF,WACEtD,EAAS,CAAE9J,KAAM,kBA8IjBqN,WA3IF,WAAuB,IAAD,EACyBtD,IAArCvC,EADY,EACZA,SAAUL,EADE,EACFA,MAAOa,EADL,EACKA,gBACzB,GAAa,MAATb,EAAJ,CAIA,IAAMN,EAAUW,EAASA,EAASZ,OAAS,GAC3C,GAAe,MAAXC,EAAJ,CAIA,IAAMyG,EAA0C,QAApBzG,EAAQC,SAAqBD,EAAQE,QAMjE,IAJKiB,GAAmBsF,GAEtBhB,IAEsB,QAApBzF,EAAQC,QAAmB,CAC7B,IAAMuB,EAAcxB,EAAQ/C,KACS,YAAjCuE,EAAYC,iBACdgE,IAC0C,WAAjCjE,EAAYC,mBACW,aAA5BD,EAAYE,aACVF,EAAYG,iBACsB,kBAAhCH,EAAYG,iBACd8D,IAI0B,qBAA5BjE,EAAYE,aACd6C,WAAWC,EAAiBtK,KAAKuK,IAAI,EAAGpB,EAAgBzC,KAAKC,SAInEoC,EAAS,CAAE9J,KAAM,qBA1BfsM,SALAxC,EAAS,CAAE9J,KAAM,iBAyInBuN,gBAvGF,WACE/M,EAAK,CAAER,KAAM,qBACb8J,EAAS,CAAE9J,KAAM,sBAsGjBwN,QAnGF,WACEpD,GAAW,EACP9C,IACFA,EAAO6E,QACP7E,EAAS,MAEXwC,EAAS,CAAE9J,KAAM,aA8FjByN,kBAjFF,WACE,GAAmB,OAAfzD,EAAqB,MAAM,IAAI9D,MACnCgE,EAAgBzC,KAAKC,MAAQ,IAC7BoC,EAAS,CAAE9J,KAAM,wBACjBkK,EAAgBzC,KAAKC,MAAQ,IAC7BlH,EAAKwJ,GACLC,EAAqBmB,YACnB,kBAAMtB,EAAS,CAAE9J,KAAM,qBT9WO,MSybhC0N,iBAtEF,SACExK,GAMA4G,EAAS,CAAE9J,KAAM,oBAAqBkD,aACtCgH,EAAgBzC,KAAKC,MAAQ,IAC7B4E,KA8DAqB,aA3DF,SAAsBhF,GACpBmB,EAAS,CAAE9J,KAAM,iBAAkB2I,iBA2DnCiF,mBAnDF,WACE9D,EAAS,CAAE9J,KAAM,yBACjBQ,EAAK,CAAER,KAAM,iCAkDb6N,wBA3CF,WACE/D,EAAS,CAAE9J,KAAM,gCA2CjB8N,UAxCF,WACEtN,EAAK,CAAER,KAAM,eAwCb+N,QAtKF,WACE3D,GAAW,EACXN,EAAS,CAAE9J,KAAM,qBACF,OAAXsH,IACFA,EAAO6E,QACP7E,EAAS,OAkKX0G,SAtCF,WACE,IAAM7G,EAAQ4C,IACd,GAAI5C,EAAMhB,QAAUgB,EAAMK,SAASZ,OAAnC,CACA,IAAIqH,EACF9G,EAAMK,SAASZ,OAASO,EAAMf,WAAa,EACvCe,EAAMK,SAASZ,OAASO,EAAMf,SAAW,EACzCrF,KAAKmN,KAAK/G,EAAMK,SAASZ,OAASO,EAAMf,UAC1Ce,EAAMlB,OAASgI,IACnBnE,EAAS,CAAE9J,KAAM,oBAAqBiG,KAAMgI,IACtB,MAAlB9G,EAAMvC,UACVoB,EAAmBmB,EAAMvC,SAASO,GAAI8I,GAAUnD,MAAK,SAAAhH,GAAI,OACvDgG,EAAS,CACP9J,KAAM,YACNwH,SAAU1D,EAAKuC,8BA0BnB8H,WAnGF,WACM/D,IACFA,GAAW,EACP9C,IACFA,EAAO6E,QACP7E,EAAS,SEtbV,IAAM8G,EAAb,WAGE,WACSrL,EACAT,EACAO,EACAC,EACAE,EACAC,GACN,yBANMF,YAMP,KALOT,UAKP,KAJOO,UAIP,KAHOC,YAGP,KAFOE,QAEP,KADOC,YATX,oDAYE,WACE,OAAOmL,EAAQC,WAbnB,yBAgBE,SAA0BhN,GACxB+M,EAAQC,SAAW,IAAID,EACrB/M,EAAQ0B,UACR1B,EAAQiB,QACRjB,EAAQwB,QACRxB,EAAQyB,UACRzB,EAAQ2B,MACR3B,EAAQ4B,eAvBd,KAAamL,EACIC,c,EC+BV,IAAMC,EAAaC,IAAMC,cAA2B,CACzD3F,IAAK,CACH1D,GAAI,WACJL,gBAAiB,IACjBgE,uBAAuB,EACvB2F,kBAAmB/P,EAAkBgQ,yCAEvC1K,UAAW,GACXE,eAAgB,GAChBiE,MAAM,EACN7F,SAAS,EACTsC,SAAU,CACRO,GAAI,aACJC,QAAS,OACTI,OAAQ,UACRF,YAAa,UACbK,MAAO,SACPF,WAAY,OACZG,WAAY,mBACZE,QAAS,MAEXqB,MAAO1I,EAAkBsJ,OACzBT,OAAQL,EAAaW,UACrB7C,mBAAoB,GACpBE,wBAAwB,IAGb0J,EAAsBJ,IAAMC,cAAoC,CAC3EhH,SAAU,GACVd,oBAAqB,GACrBa,eAAe,EACfnB,SAAU,GACVD,MAAO,IAGIyI,EAAuBL,IAAMC,cACxC3E,GACE,kBAAM,QACN,iBAAO,CACLxC,UAAW,EACXwB,IAAK,CACH1D,GAAI,SACJsJ,kBACE/P,EAAkBgQ,wCACpB5F,uBAAuB,EACvBhE,gBAAiB,KAEnBd,UAAW,aACXE,eAAgB,kBAChBU,SAAU,CACRO,GAAI,aACJC,QAAS,OACTI,OAAQ,UACRF,YAAa,UACbK,MAAO,SACPF,WAAY,OACZG,WAAY,mBACZE,QAAS,MAEX0B,SAAU,GACVvB,KAAM,EACNE,MAAO,EACPC,SAAU,GACVe,MAAO1I,EAAkB2J,YACzBd,OAAQL,EAAaW,UACrBO,MAAM,EACNZ,eAAe,EACfxC,mBAAoB,GACpBE,wBAAwB,O,4CAK9B,WACElC,EACAT,EACAO,EACAC,EACAE,GALF,qCAAAb,EAAA,6DAMEgG,EANF,gCAOElF,EAPF,gCAsBOX,GACHzC,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACN6O,IAAK5L,EAAY,GAAK,CAAC,UACvB6L,OAAQ7L,EAAY,CAAC,UAAY,IAEnC,KA7BN,SAiCqBf,EAAY,CAC7Ba,YACAT,UACAQ,YACAD,UACAG,QACAC,cAvCJ,UAyCe,QARPa,EAjCR,iDAyC4B,MAzC5B,UA2CEjE,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACN6O,IAAK/K,EAAKd,OAASC,EAAY,GAAK,CAAC,UACrC6L,OAAQhL,EAAKd,OAASC,EAAY,CAAC,UAAY,IAEjD,KAGgB,MAAda,EAAKd,MApDX,0CAqDW,CACL6F,IAAK,CACH1D,GAAIrB,EAAKd,MACT8F,uBAAuB,EACvBhE,gBAAiB,IACjB2J,kBAAmB3K,EAAKY,qBAE1BV,UAAWF,EAAKE,UAChBE,eAAgBJ,EAAKI,eACrBU,SAAUd,EAAKc,SACf4C,SAAU,GACVd,oBAAqB,GACrBP,MAAO,EACPgB,MAAOrD,EAAKQ,kBACZ6D,KAAMA,EACN/B,SAAU,GACVrB,mBAAoBjB,EAAKiB,mBACzBE,uBAAwBnB,EAAKmB,yBAtEnC,yBA0E+B8J,QAAQC,IAAI,CAAChJ,EAAmBjD,KA1E/D,uCA0ESkM,EA1ET,MA2EM3M,EA3EN,0CA4EW,CACLuG,IAAK,CACH1D,GAAIrB,EAAKd,MACT8F,uBAAuB,EACvBhE,gBAAiB,IACjB2J,kBAAmB3K,EAAKY,qBAE1BV,UAAWF,EAAKE,UAChBE,eAAgBJ,EAAKI,eACrBU,SAAUd,EAAKc,SACf4C,SAAUyH,EAAa5I,sBACvBF,MAAO8I,EAAa5I,sBAAsBO,OAC1CO,MAAOrD,EAAKQ,kBACZ6D,MAAM,EACN/B,SAAU,GACVrB,mBAAoBjB,EAAKiB,mBACzBE,uBAAwBnB,EAAKmB,yBA5FnC,iCA+FW,CACL4D,IAAK,CACH1D,GAAIrB,EAAKd,MACT8F,uBAAwBhF,EAAKU,6BAC7BM,gBAAwC,IAAvBhB,EAAKgB,gBACtB2J,kBAAmB3K,EAAKY,qBAE1BV,UAAWF,EAAKE,UAChBE,eAAgBJ,EAAKI,eACrBU,SAAUd,EAAKc,SACf4C,SAAUyH,EAAa5I,sBACvBK,oBAAqBuI,EAAavI,oBAClCP,MAAO8I,EAAa9I,MACpBgB,MAAOrD,EAAKQ,kBACZ6D,KAAMA,EACN/B,SAAU6I,EAAa7I,SACvBrB,mBAAoBjB,EAAKiB,mBACzBE,uBAAwBnB,EAAKmB,yBAhHnC,6C,sBA+HO,SAASiK,EAAT,GAUI,IATTlM,EASQ,EATRA,MACAD,EAQQ,EARRA,UACAT,EAOQ,EAPRA,QACAO,EAMQ,EANRA,QACAC,EAKQ,EALRA,UACAqM,EAIQ,EAJRA,SACAhH,EAGQ,EAHRA,KACAlF,EAEQ,EAFRA,UACAmM,EACQ,EADRA,UAEM/N,EAA0B,CAC9B2B,MAAOA,EACPH,QAASA,EACTE,UAAWA,EACXT,QAASA,EACTQ,UAAWA,EACXG,UAAWA,GAEbmL,EAAQiB,YAAYhO,GATZ,MAUkBiO,qBAAWpI,EJwF9B,CACL2B,IAAK,KACL7E,UAAW,GACXE,eAAgB,GAChBU,SAAU,KACV4C,SAAU,GACVd,oBAAqB,GACrBT,KAAM,EACNE,MAAO,EACPC,SAAU,GACVe,MAAO1I,EAAkB2J,YACzBf,UAAWI,KAAKC,MAChBJ,OAAQL,EAAaa,aACrBK,MAAM,EACNZ,eAAe,EACfxC,mBAAoB,GACpBE,wBAAwB,IIlHlB,mBAUDkC,EAVC,KAUM2C,EAVN,KAYRyF,qBAAU,WAAO,IAAD,KACVtM,IAAc,UAACkE,EAAM0B,WAAP,aAAC,EAAW1D,KAAMnC,KAAK,UAAKmE,EAAM0B,WAAX,aAAK,EAAW1D,KACvD2E,EAAS,CAAE9J,KAAM,kBAElB,CAACoP,IAEJG,qBAAU,WACR,IAAKjN,GAAWU,EAAO,CAAC,IAAD,EACrB,IAAI,UAAAmE,EAAM0B,WAAN,eAAW1D,MAAOnC,EACpB,OAEA8G,EAAS,CAAE9J,KAAM,qBAIrB,IAAIwP,GAAY,EAqBhB,O,mDApBAC,CACE1M,EACAT,EACAO,EACAC,EACAE,EACAmF,EACAlF,GACA6H,MAAK,SAAAhH,GACD0L,GACQ,MAAR1L,IACJgG,EAAS,CACP9J,KAAM,QACN8D,SAEFjE,OAAOC,OAAOC,YACZ,CAAE2P,sBAAuB,yBACzB,SAGG,WACLF,GAAY,KAEb,CAACzM,EAAWT,EAASO,EAASC,EAAWE,EAAOmE,EAAME,YAEzD,IAAMsI,EAAiCC,mBACrC,kBACEzI,EAAM0B,KACN1B,EAAMvC,UAAY,CAChBtC,UACAuG,IAAK1B,EAAM0B,IACX7E,UAAWmD,EAAMnD,UACjBE,eAAgBiD,EAAMjD,eACtB8D,gBAAiBb,EAAMa,gBACvBC,cAAed,EAAMc,cACrBU,YAAaxB,EAAMwB,YACnB/D,SAAUuC,EAAMvC,SAChBuC,MAAOA,EAAMA,MACbG,OAAQH,EAAMG,OACda,KAAMhB,EAAMgB,KACZpD,mBAAoBoC,EAAMpC,mBAC1BE,uBAAwBkC,EAAMlC,0BAElC,CACE3C,EACA6E,EAAM0B,IACN1B,EAAMnD,UACNmD,EAAMjD,eACNiD,EAAMa,gBACNb,EAAMc,cACNd,EAAMwB,YACNxB,EAAMgB,KACNhB,EAAMvC,SACNuC,EAAMA,MACNA,EAAMG,OACNH,EAAMpC,mBACNoC,EAAMlC,yBAGJ4K,EAAsBD,mBAC1B,iBAAO,CACLzJ,MAAOgB,EAAMhB,MACbqB,SAAUL,EAAMK,SAChBd,oBAAqBS,EAAMT,qBAAuB,GAClDN,SAAUe,EAAMf,SAChBmB,cAAeJ,EAAMI,iBAEvB,CACEJ,EAAMhB,MACNgB,EAAMK,SACNL,EAAMT,oBACNS,EAAMf,SACNe,EAAMI,gBAGJuI,EA3HR,SAA0B3I,EAAiB2C,GACzC,IAAIiG,EAAWC,iBAAiB7I,GAChC4I,EAASE,QAAU9I,EACnB,IAAI+I,EAAMF,iBAAuB,MAIjC,OAHoB,OAAhBE,EAAID,UACNC,EAAID,QAAUpG,EAAcC,GAAU,kBAAMiG,EAASE,YAEhDC,EAAID,QAoHWE,CAAiBhJ,EAAO2C,GAQ9C,OAPAyF,qBAAU,WACJpH,IACF2H,EAAc3B,aACd2B,EAAczC,gBAEf,CAAClG,EAAM0B,MAGR8G,GACE,kBAACf,EAAqBwB,SAAtB,CAA+B9Q,MAAOwQ,GACpC,kBAACxB,EAAW8B,SAAZ,CAAqB9Q,MAAOqQ,GAC1B,kBAAChB,EAAoByB,SAArB,CAA8B9Q,MAAOuQ,GACnC,yBACEQ,UAAU,MACVC,MACE,CACE,gBAAiBX,EAAW/K,SAASY,OACrC,eAAgBmK,EAAW/K,SAASa,aAIvC0J,MC9Wf,SAASoB,IAAU,IAAD,EACiCC,qBAC/ClC,GACA1J,SAFc6L,EADA,EACRjL,OAA2BkL,EADnB,EACOjL,WAGvB,OACE,sFAE4BgL,EAF5B,mGAK0BA,EAL1B,0HASsBA,EATtB,yFAY0BA,EAZ1B,+FAe0BA,EAf1B,uDAgB4BA,EAhB5B,wDAiB6BA,EAjB7B,gFAoBeA,EApBf,gFAuBcA,EAvBd,gFA0BiBC,EA1BjB,+EA6BcA,EA7Bd,+EAgCgBD,EAhChB,mFAmCkBA,EAnClB,4BAyCWlC,UAAMoC,KAASJ,G,SCjDjBK,EAAb,oGACE,SAAuBxP,GAerB,OAXIA,EAAIyP,QAAQ,OAAS,EACZzP,EAAI0P,MAAM,KAAK,GAEf1P,EAAI0P,MAAM,KAAK,IAIRA,MAAM,KAAK,GAEXA,MAAM,KAAK,OAdnC,KAqCaC,GAhBJ,iCAAiCC,KAAKnR,OAAOoR,UAAUC,WAGlB,WAC5C,GAAyB,qBAAdD,WAA6B,kBAAmBA,UACzD,OAAOA,UAAUE,cAEnBC,SAASC,OAAS,wBAClB,IAAMC,GAA6D,IAAlDF,SAASC,OAAOR,QAAQ,qBACpCS,IACHF,SAASC,OACP,gEARwC,GAarB,4DAA4DL,KACnFC,UAAUC,YAaCK,EAAkB,CAC7B,MACA,MACA,MACA,MACA,MACA,MACA,OAGWC,EAAc,CACzB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGWC,GAAoB,CAC/B,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,O,OCjFF,SAASC,GAAT,GAAyC,IAAjBC,EAAgB,EAAhBA,MAAgB,EAIlCnB,qBAAWlC,GAFbnG,EAFoC,EAEpCA,KAFoC,IAGpCvD,SAAYe,EAHwB,EAGxBA,MAAOF,EAHiB,EAGjBA,WAAYG,EAHK,EAGLA,WAE3BgM,EAAUpB,qBAAW5B,GAC3B,OACE,yBACEiD,cAAY,aACZC,QAAS3J,EAAOyJ,EAAQxE,YAAcwE,EAAQvE,WAC9CgD,UAAS,qCAAgC1K,EAAhC,YAAyCwC,EAAO,SAAW,KAEpE,0BAAMkI,UAAW,0BAA4BzK,IAC7C,0BAAMyK,UAAU,mBACd,yBAAK0B,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,MACxD,uBAAGC,KAAMzM,EAAY0M,SAAS,WAC5B,0BACEC,OAAQ3M,EACR4M,EAAE,oDAEJ,0BACED,OAAQ3M,EACR4M,EAAE,sDAKTV,EAAQ,GAAK,0BAAMtB,UAAU,cAAcsB,IAKnCpD,WAAMoC,KAAYe,ICvClB,I,OAAA,IAA0B,qCCA5BY,GAAW,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCnDF,SAASC,KAAgB,IAAD,EACW/B,qBAAWlC,GAAY1J,SAAhDkB,EADc,EACdA,QAASR,EADK,EACLA,YACT8H,EAAgBoD,qBAAW5B,GAA3BxB,YACQqD,EAAUD,qBAAWlC,GAAY1J,SAAzCY,OACR,OACE,yBACEL,GAAG,cACHkL,UAAS,+CACsB,IAA7BiC,GAASzB,QAAQJ,GAAgB,gBAAkB,KAGrD,0BAAMJ,UAAU,iBACd,2BACE,yBAAKmC,IAAI,GAAGC,IAAK3M,GAAW4M,OAGhC,gCAAMpN,EAAN,KACA,0BAAM+K,UAAU,oBAAoByB,QAAS1E,GAC3C,8BAMOmB,WAAMoC,KAAS4B,I,wBCtB9B,SAASI,GAAT,GAAwC,IAAlBC,EAAiB,EAAjBA,OACdnC,EAAQD,qBAAWlC,GAAY1J,SAASY,OAC9C,OAAOoN,EACL,yBACEZ,MAAM,OACNC,OAAO,OACPY,QAAQ,YACRC,QAAQ,MACRf,MAAM,8BAEN,uCACA,+BACA,uBACE5M,GAAG,SACHiN,OAAO,OACPW,YAAY,IACZb,KAAK,OACLC,SAAS,WAET,uBACEhN,GAAG,kBACH6N,UAAU,sCACVb,SAAS,WAET,uBAAGhN,GAAG,QAAQ6N,UAAU,qCACtB,6BACE7N,GAAG,SACHiN,QAAqC,IAA7BE,GAASzB,QAAQJ,GAAgB,UAAYA,EACrDsC,YAAY,MACZE,OAAO,gDAET,0BACEZ,EAAE,aACFlN,GAAG,OACHiN,QAAqC,IAA7BE,GAASzB,QAAQJ,GAAgB,UAAYA,EACrDsC,YAAY,IACZG,cAAc,eAOxB,yBACElB,MAAM,OACNC,OAAO,OACPY,QAAQ,YACRC,QAAQ,MACRf,MAAM,8BAEN,uCACA,+BACA,uBACE5M,GAAG,SACHiN,OAAO,OACPW,YAAY,IACZb,KAAK,OACLC,SAAS,WAET,uBACEhN,GAAG,cACH6N,UAAU,sCACVb,SAAS,UACTC,OAAO,WAEP,uBAAGjN,GAAG,UAAU6N,UAAU,qCACxB,6BACE7N,GAAG,SACH4N,YAAY,MACZE,OAAO,4DAET,0BACEZ,EAAE,aACFlN,GAAG,OACH4N,YAAY,IACZG,cAAc,eASb3E,WAAMoC,KAAYgC,I,+CCzFpBQ,GACL,CACJC,gBAAiB,uDACjBC,gBAAiB,6CAHRF,GAKD,CACRC,gBACE,oEACFC,gBAAiB,iDARRF,GAUJ,qCAVIA,GAWJ,oCAXIA,GAYL,qDAqBKG,GAAsB,MAGtBC,GAAoB,yJC5BjC,IAAMC,GAAY,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MAE1DC,GAAa,0BAIbC,GAAb,oC,8bAAA,8JACEC,eAA+CpF,IAAMqF,YADvD,EAaUC,KAAO,SAACvU,EAAewU,GAC7B,IAAMC,EAAgB,EAAKC,MAAMD,cAC3BX,EAAkBD,GAA0BC,gBAC5Ca,EAAOjN,SAAS1H,EAAM4U,UAAU,EAAG,IACzC,GAAID,EAAO,GAET,OADAF,EAAcX,IACP,EAET,IAAMe,EAAQnN,SAAS1H,EAAM4U,UAAU,EAAG,IAC1C,GAAIC,EAAQ,GAEV,OADAJ,EAAcX,IACP,EAET,IAAMgB,EAAOpN,SAAS1H,EAAM4U,UAAU,EAAG,KACzC,IAAKT,GAAWzC,KAAK1R,GAEnB,OADAyU,EAAc,MACPzU,EAET,IAAMoM,EAAO,IAAIjE,KAAK2M,EAAMD,EAAQ,EAAGF,GAKvC,OAHEvI,EAAK2I,gBAAkBD,GACvB1I,EAAK4I,aAAeH,EAAQ,GAC5BF,IAASvI,EAAK6I,UAIL,EAAKP,MAAMQ,qBAAuB9I,EAAK+I,WAAahN,KAAKC,OAClEqM,EAAcZ,GAA0BE,iBACjC/T,IAEPyU,EAAc,MACd,EAAKC,MAAMU,SAASpV,GACbA,IARPyU,EAAcX,IACP,IAtCb,EAmEEuB,QAAU,SAACC,GACa,KAAlBA,EAAMC,SACR,EAAKb,MAAMc,YArEjB,wDAGE,WAEI9V,KAAK2U,gBACL3U,KAAK2U,eAAe1D,SACpBjR,KAAK2U,eAAe1D,QAAQ8E,cAE5B/V,KAAK2U,eAAe1D,QAAQ8E,aAAaC,UAT/C,oBAiDE,WACE,OACE,kBAAC,KAAD,CACEnB,KAAM7U,KAAK6U,KACX3D,IAAKlR,KAAK2U,eACVsB,KAAMzB,GACN0B,YAAY,aACZC,mBAAmB,EACnBhQ,GAAG,aACHiQ,aAAa,MACbC,YAAY,MACZC,OAAO,EACPC,gBA/DgB,SAgEhBC,UAAWxW,KAAK2V,cA9DxB,GAA+BpG,IAAMkH,WCNrC,IAAMC,GAAgB,CACpB,KACA,KACA,IACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,IACA,KACA,KACA,IACA,UACA,OAGWC,GAAkB,mDAIlBC,GAAb,oC,8bAAA,8JACEjC,eAA+CpF,IAAMqF,YADvD,EAaUC,KAAO,SAACvU,EAAewU,GAC7BxU,EAAQA,EAAMuW,cACd,IAAM9B,EAAgB,EAAKC,MAAMD,cAC3BX,EAAkBD,GAA8BC,gBAChDa,EAAOjN,SAAS1H,EAAM4U,UAAU,EAAG,IACzC,GAAID,EAAO,GAET,OADAF,EAAcX,IACP,EAET,IAAMe,EAAQnN,SAAS1H,EAAM4U,UAAU,EAAG,IAC1C,GAAIC,EAAQ,GAEV,OADAJ,EAAcX,IACP,EAET,IAAMgB,EAAOpN,SAAS1H,EAAM4U,UAAU,EAAG,KACnC4B,EAAQ9O,SAAS1H,EAAM4U,UAAU,GAAI,KAC3C,GAAI4B,EAAQ,GAEV,OADA/B,EAAcX,IACP,EAET,IAAM2C,EAAU/O,SAAS1H,EAAM4U,UAAU,GAAI,KAC7C,GAAI6B,EAAU,GAEZ,OADAhC,EAAcX,IACP,EAET,IAAM4C,EAAiC,OAA5B1W,EAAM4U,UAAU,GAAI,IAC/B,IAAKyB,GAAgB3E,KAAK1R,GAExB,OADAyU,EAAc,MACPzU,EAET,IAAMoM,EAAO,IAAIjE,KAAK2M,EAAMD,EAAQ,EAAGF,GAKvC,OAHEvI,EAAK2I,gBAAkBD,GACvB1I,EAAK4I,aAAeH,EAAQ,GAC5BF,IAASvI,EAAK6I,WAKZyB,EACFtK,EAAKuK,SAASH,GAEdpK,EAAKuK,SAAmB,KAAVH,EAAe,GAAK,GAAKA,GAEzCpK,EAAKwK,WAAWH,GACZ,EAAK/B,MAAMQ,qBAAuB9I,EAAK+I,WAAahN,KAAKC,OAC3DqM,EAAcZ,GAA8BE,iBACrC/T,IAEPyU,EAAc,MACd,EAAKC,MAAMU,SAASpV,GACbA,KAfPyU,EAAcX,IACP,IAlDb,EAsFEuB,QAAU,SAACC,GACa,KAAlBA,EAAMC,SACR,EAAKb,MAAMc,YAxFjB,wDAGE,WAEI9V,KAAK2U,gBACL3U,KAAK2U,eAAe1D,SACpBjR,KAAK2U,eAAe1D,QAAQ8E,cAE5B/V,KAAK2U,eAAe1D,QAAQ8E,aAAaC,UAT/C,oBAoEE,WACE,OACE,kBAAC,KAAD,CACEnB,KAAM7U,KAAK6U,KACX3D,IAAKlR,KAAK2U,eACVsB,KAAMS,GACNR,YAAY,sBACZC,mBAAmB,EACnBhQ,GAAG,iBACHiQ,aAAa,MACbC,YAAY,MACZC,OAAO,EACPC,gBAlFgB,SAmFhBC,UAAWxW,KAAK2V,cAjFxB,GAAmCpG,IAAMkH,WC3BzC,IAAMU,GAAY,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,UAAW,OAEnDC,GAAa,2BAIbC,GAAb,oC,8bAAA,8JACE1C,eAA+CpF,IAAMqF,YADvD,EAaUC,KAAO,SAACvU,EAAewU,GAC7BxU,EAAQA,EAAMuW,cACd,IAAM9B,EAAgB,EAAKC,MAAMD,cAC3B5I,EAAQgI,GACR2C,EAAQ9O,SAAS1H,EAAM4U,UAAU,EAAG,IAC1C,OAAI4B,EAAQ,IAII9O,SAAS1H,EAAM4U,UAAU,EAAG,IAC9B,IAJZH,EAAc5I,IACP,GAOJiL,GAAWpF,KAAK1R,IAIP,IAAVwW,EACF/B,EAAc5I,GAEd,EAAK6I,MAAMU,SAASpV,GAEfA,IARLyU,EAAc,MACPzU,IA7Bb,EAyDEqV,QAAU,SAACC,GACa,KAAlBA,EAAMC,SACR,EAAKb,MAAMc,YA3DjB,wDAGE,WAEI9V,KAAK2U,gBACL3U,KAAK2U,eAAe1D,SACpBjR,KAAK2U,eAAe1D,QAAQ8E,cAE5B/V,KAAK2U,eAAe1D,QAAQ8E,aAAaC,UAT/C,oBAuCE,WACE,OACE,kBAAC,KAAD,CACEnB,KAAM7U,KAAK6U,KACX3D,IAAKlR,KAAK2U,eACVsB,KAAMkB,GACNjB,YAAY,WACZC,mBAAmB,EACnBhQ,GAAG,aACHiQ,aAAa,MACbC,YAAY,MACZC,OAAO,EACPC,gBArDgB,SAsDhBC,UAAWxW,KAAK2V,cApDxB,GAA+BpG,IAAMkH,WCJxBa,I,qBAAa,SAACtC,GAAD,OACxB,0BACEuC,MAAOvC,EAAMuC,MACbvW,KAAK,SACLqQ,UAAS,+EACP2D,EAAMwC,WAAaxC,EAAMwC,WAAa,MAExC1E,QAASkC,EAAMyC,aACfnF,SAAU0C,EAAM0C,YAEf1C,EAAM9I,QCmIIyL,OA1Gf,SAAiD3C,GAC/C,IAAM/B,EAjBR,WAAkC,IAAD,EACH2E,mBAAiB,GADd,mBACxB3E,EADwB,KAChB4E,EADgB,KAa/B,OAXAtH,qBAAU,WACR,IAAIuH,EAAK1F,SAAS2F,cAAc,iBAEhC,GADAD,EAAKA,GAAMA,EAAGE,cACd,CAGA,IAAMC,EAAe,kBAAMJ,EAAWC,EAAmBI,aAAe,IAGxE,OAFAD,IACApX,OAAOsX,iBAAiB,SAAUF,GAC3B,kBAAMpX,OAAOuX,oBAAoB,SAAUH,QAE7ChF,EAIQoF,GAD2D,EAE9CT,mBAAiB,IAF6B,mBAEnEvN,EAFmE,KAE3DiO,EAF2D,KAGpEC,EAAQ,IAAIC,OAAOnO,EAAOoO,QAAQ,sBAAuB,QAAS,KACxDhH,EAAUD,qBAAWlC,GAAY1J,SAAzCY,OACFkS,EAAkB1D,EAAM2D,MAAMtO,QAAO,SAAA9C,GAAI,OAC7CgR,EAAMvG,KAAKzK,EAAKqR,gBANwD,EAQ1ChB,mBAAoC,IARM,mBAQnEiB,EARmE,KAQzDC,EARyD,KASpEC,EAAgB,SAACxR,GACjByN,EAAMgE,OACRhE,EAAMiE,SAAS1R,GAEfuR,GAAY,SAAAI,GAAY,kCACnBA,GADmB,IAEtB,CAAC3R,EAAKpB,KAAM+S,EAAa3R,EAAKpB,UAI9BgT,EAAYnI,iBAAuB,MACnC7D,EAAQ6H,EAAM7H,MACpBoD,qBAAU,WACR,IAAM6I,EAAW,SAACxD,GACI,MAAhBA,EAAMyD,QAAuC,MAArBF,EAAUlI,UAEpCkI,EAAUlI,UAAY2E,EAAMyD,QAC5BF,EAAUlI,QAAQqI,SAAS1D,EAAMyD,SAInClM,MAGF,OADAiF,SAAS+F,iBAAiB,YAAaiB,GAChC,kBAAMhH,SAASgG,oBAAoB,YAAagB,MACtD,CAACjM,IACJoD,qBAAU,WACR,GAAK4I,EAAUlI,QAAf,CACA,IAAMsI,EAAQJ,EAAUlI,QAAQ8G,cAAc,oBAC1CwB,GAASA,aAAiBC,kBAAkBD,EAAMvD,YAExD,IAAMyD,EAAgBzI,iBAA2B,MAGjD,OAF8B,OAA1ByI,EAAcxI,UAChBwI,EAAcxI,QAAUmB,SAAS2F,cAAc,iBAE/C0B,EAAcxI,SACdyI,uBACE,yBACExI,IAAKiI,EACLhT,GAAG,oBACHkL,UAAS,wBACsB,IAA7BiC,GAASzB,QAAQJ,GAAgB,gBAAkB,KAGrD,wBAAIH,MAAO,CAAEqI,UAAW1G,IACrB+B,EAAMgE,OACHN,EAAgBpR,KAAI,SAAAC,GAAI,OACtB,wBAAIqS,IAAKrS,EAAKpB,GAAI2M,QAAS,kBAAMiG,EAAcxR,KAC5CA,EAAKqR,gBAGVF,EAAgBpR,KAAI,SAAAC,GAAI,OACtB,wBAAIqS,IAAKrS,EAAKpB,IACZ,2BAAOkL,UAAU,sBACd9J,EAAKqR,YACN,2BACE5X,KAAK,WACL6Y,UAAWhB,EAAStR,EAAKpB,IACzBuP,SAAU,kBAAMqD,EAAcxR,MAEhC,0BACE8J,UAAS,qBACsB,IAA7BiC,GAASzB,QAAQJ,GAAgB,gBAAkB,YAOnE,yBACEJ,UACE2D,EAAMgE,OACF,0BACA,gDAGN,2BACEhY,KAAK,OACLV,MAAO+J,EACP6L,YAAY,iBACZR,SAAU,SAAAE,GAAK,OAAI0C,EAAU1C,EAAMkE,cAAcxZ,WAEjD0U,EAAMgE,QACN,kBAAC,GAAD,CACE9M,KAAK,OACLuL,aAAc,kBACZzC,EAAMiE,SAASjE,EAAM2D,MAAMtO,QAAO,SAAA9C,GAAI,OAAIsR,EAAStR,EAAKpB,aAMlEsT,EAAcxI,U,OCzIb,IAAM8I,GAAb,oC,8bAAA,8JACEC,WAAa,WACX,EAAKhF,MAAMgF,cAFf,4CAKE,WACE,IAAMb,EAAY/G,SAAS2F,cAAc,gBACzC,OACE/X,KAAKgV,MAAMiF,MACXd,GACAO,uBACE,6BACE,yBAAKrI,UAAU,kBAAkBlL,GAAG,cAClC,yBAAKkL,UAAU,iBACb,0BACEwB,cAAY,kBACZxB,UAAU,cACVyB,QAAS9S,KAAKga,YAEd,6BAEF,2BAAIha,KAAKgV,MAAMkF,eAEjB,yBAAK7I,UAAU,gBACZiG,GAAW,CACVpL,KAAM,SACNuL,aAAczX,KAAKga,eAIzB,yBAAK3I,UAAW,oBAAqBlL,GAAG,iBAE1CgT,OAhCR,GAAiC5J,IAAMkH,W,OCShC,SAAS0D,GAAcxH,GAC5B,OAAc,IAAVA,EACK,WAED,GAAN,OAAUA,EAAV,YAIG,SAASyH,GACdC,EACA/N,EACAuM,GAEA,OAAY,OAARvM,EACEuM,EAAWwB,EACP,4BAAN,OAAmCF,GAAcE,IAE1C,KAGLxB,GAAYwB,GAAOxB,GAAYvM,EAC1B,KAED,4BAAN,OAAmC6N,GACjCE,GADF,8BAEuBF,GAAc7N,IAK3C,SAASgO,GAAT,GAAyE,IAAvCjY,EAAsC,EAAtCA,QAAS4W,EAA6B,EAA7BA,SAAUoB,EAAmB,EAAnBA,IAAK/N,EAAc,EAAdA,IAAc,EACtCsL,mBAAoC,IADE,mBAC/DiB,EAD+D,KACrDC,EADqD,OAE5ClB,mBAAwB,MAFoB,mBAE/DzL,EAF+D,KAExDoO,EAFwD,KAatD9I,EAAUD,qBAAWlC,GAAY1J,SAAzCY,OACR,OACE,6BACE,kBAAC,GAAD,CACE0T,aAAc/N,EACd8N,KAAgB,OAAV9N,EACN6N,WAAY,kBAAMO,EAAS,SAE7B,yBAAKlJ,UAAU,sBACb,wBAAIA,UAAU,+BACXhP,EAAQiF,KAAI,SAAAkT,GAAM,OACjB,wBACEnJ,UAAS,yCACsB,IAA7BiC,GAASzB,QAAQJ,GACb,4BACA,IAENmI,IAAKY,EAAOrU,GACZsU,SAAUD,EAAO5B,aAEjB,2BAAOvH,UAAU,sBACdmJ,EAAO5B,YACR,2BACE5X,KAAK,WACL0U,SAAU,kBAlCVvP,EAkCuBqU,EAAOrU,GAjC5C2S,GAAY,SAAAD,GAAQ,kCAAUA,GAAV,IAAoB,CAAC1S,IAAM0S,EAAS1S,QAD3C,IAACA,GAmCA0T,QAASa,QAAQ7B,EAAS2B,EAAOrU,OAEnC,0BACEkL,UACEqJ,QAAQ7B,EAAS2B,EAAOrU,KACpB,uBACA,oBAOhB,yBACEkL,UAAS,qCACsB,IAA7BiC,GAASzB,QAAQJ,GAAgB,4BAA8B,KAGjE,kBAAC,GAAD,CAAYvF,KAAK,OAAOuL,aAnDjB,WACb,IAAMkD,EAAYtY,EAAQgI,QAAO,SAAAmQ,GAAM,OAAIE,QAAQ7B,EAAS2B,EAAOrU,QAC7DgG,EAAQiO,GAAaC,GAAO,EAAG/N,EAAKqO,EAAU/S,QACpD2S,EAASpO,GACK,OAAVA,GACF8M,EAAS0B,SAqDApL,WAAMoC,KAAY2I,ICxGjC,SAASM,GAAT,GAA0D,IAArCta,EAAoC,EAApCA,MAAOoV,EAA6B,EAA7BA,SAAUI,EAAmB,EAAnBA,SAC9B+E,EAAW7J,iBAA4B,MACvC8J,EAAY9J,iBAAuB,MACnC7H,EAAOqI,qBAAWlC,GAAYnG,KACpCoH,qBAAU,WACJsK,EAAS5J,SACX4J,EAAS5J,QAAQ+E,UAElB,IACHzF,qBAAU,WACHpH,GACC2R,EAAU7J,SAAW4J,EAAS5J,UACpC6J,EAAU7J,QAAQ8J,UAChBza,EAAM0a,SAAS,OAAiC,IAAxB1a,EAAM2a,OAAOrT,OAAetH,EAAQ,IAAMA,EACpEwa,EAAU7J,QAAQK,MAAM0B,MAAQ6H,EAAS5J,QAAQiK,YAAc,KAC/DL,EAAS5J,QAAQK,MAAM2B,OAAS6H,EAAU7J,QAAQiH,aAAe,QAChE,CAAC/O,EAAM7I,IASV,OACE,oCACE,8BACE4Q,IAAK2J,EACLva,MAAOA,EACPkW,UAbY,SAACZ,GACjB,GAAsB,KAAlBA,EAAMC,QACV,OAAKD,EAAMuF,cAAX,GACEvF,EAAMwF,sBACNtF,MAUEJ,SAAU,SAAAE,GAAK,OAAIF,EAASE,EAAMkE,cAAcxZ,UAElD,yBACE+a,UAAW,EACXC,iBAAe,EACfpK,IAAK4J,EACLzJ,UAAU,uBAMH9B,WAAMoC,KAAYiJ,I,8BC9B3BW,I,OAAmCC,OAAOC,KAAKC,IAASpU,KAE5D,SAAAnB,GAAE,MAAK,CAAEA,KAAIyS,YAAa8C,GAAQvV,QAuBpC,SAASwV,GAAT,GAMW,IALTC,EAKQ,EALRA,SACAC,EAIQ,EAJRA,qBACAC,EAGQ,EAHRA,SACAC,EAEQ,EAFRA,QACAjG,EACQ,EADRA,SAEMkG,EAlBR,SAA2BC,GAEzB,IADA,IAAIC,EACKvU,EAAI,EAAGA,EAAI4T,GAAgB3T,OAAQD,IAC1C,GAAIsU,GAAWV,GAAgB5T,GAAGiR,cAAgBqD,EAAS,CACzDC,EAAuBX,GAAgB5T,GACvC,MAGJ,OAAOuU,EAUgBC,CACrBP,EAASK,UACNJ,EAAuBA,EAAsBI,QAAU,OAEtDG,EAAqBJ,EAAc,WACjCK,aAAsBL,EAAe7V,KACzC,GAPI,EAQ8ByR,oBAAkB,GARhD,mBAQD0E,EARC,KAQYC,EARZ,OASsB3E,mBACpBoE,GAVF,mBASDC,EATC,KASQO,EATR,OAYkB5E,mBAAuBwE,GAZzC,mBAYD9b,EAZC,KAYMmc,EAZN,OAasB7E,oBAAkB,GAbxC,mBAaD8E,EAbC,KAaQC,EAbR,KAcFpD,EAAQvI,iBAAyB,MACjC4L,EAAgBC,uBAAY,SAACZ,GACjCO,EAAWP,GACXM,GAAe,GACfT,EAAS,IACTa,GAAW,GACX,IAAMG,EAAOT,aAAsBJ,EAAQ9V,IAC3CsW,EAAS,IAAMK,GACf1Q,YAAW,WACT,IAAI2Q,EAAUxD,EAAMtI,QACJ,OAAZ8L,IACAA,GAASA,EAAQ/G,QACrB+G,EAAQC,eAAiBD,EAAQE,aAAeF,EAAQzc,MAAMsH,UAC7D,OACF,IACH2I,qBAAU,WACJgJ,EAAMtI,SAAW+K,GACnBzC,EAAMtI,QAAQ+E,WAuClB,OACE,yBAAK3E,UAAU,gBACb,yBAAKA,UAAU,QAAQyB,QArCX,WACE,OAAZmJ,EACFM,GAAe,GACNhD,EAAMtI,SACfsI,EAAMtI,QAAQ+E,UAkCZ,yBAAK3E,UAAU,gBAAgByB,QAAS,kBAAMyJ,GAAe,KAC1DN,GAAW,0BAAM5K,UAAU,QAAQ4K,EAAQ9V,IAC5C,0BAAMkL,UAAU,WAElB,2BAAOA,UAAU,eACf,2BACErQ,KAAK,MACLkQ,IAAKqI,EACLjZ,MAAOA,EACP+Q,UAAU,SACV6E,YAAY,qBACZ5D,UAAW2J,EACXvG,SA3CK,SAACE,GACd,IAAMsH,EAAY,IAAIC,KAChBC,EAAiBF,EAAU3D,MAAM3D,EAAMkE,cAAcxZ,OACrD+c,EAAcH,EAAUI,YACxBC,EAAcL,EAAUjB,QAC1BS,GAAU,GACVa,GAAiBtB,GAAWA,EAAQ9V,KAAOoX,GAC7Cf,EAAW,CACTrW,GAAIoX,EACJ3E,YAAa8C,GAAQ6B,KAGrBF,GAAeA,EAAYG,YAC7Bd,GAAU,GAEZC,EAAWD,GACNA,GAASX,EAAQ,MACtBU,EAASW,GACTtB,EAASsB,IA0BD5G,UAxBQ,SAACZ,GACK,KAAlBA,EAAMC,UACN6G,EACFX,EAAQ5H,IAER2B,UAuBCwG,GACC,kBAAC,GAAD,CACEtD,QAAM,EACNL,MAAO4C,GACPpO,MAAO,kBAAMoP,GAAe,IAC5BtD,SAAU2D,KA1HpBrB,GAAgBkC,MAAK,SAACC,EAAGC,GACvB,OAAID,EAAE9E,YAAc+E,EAAE/E,YACb,EACE8E,EAAE9E,YAAc+E,EAAE/E,aACnB,EAED,KA2HIrJ,WAAMoC,KAAYgK,IC/IjC,SAASiC,GAAT,GAA6D,IAAvClI,EAAsC,EAAtCA,SAAUqG,EAA4B,EAA5BA,QAASjG,EAAmB,EAAnBA,SAAmB,EAChC8B,mBAAiB,IADe,mBACnDtX,EADmD,KAC5Cmc,EAD4C,OAE5B7E,oBAAkB,GAFU,mBAEnD8E,EAFmD,KAE1CC,EAF0C,KAGpDpD,EAAQvI,iBAAyB,MACvCT,qBAAU,WACR,IAAIwM,EAAUxD,EAAMtI,QACJ,OAAZ8L,GACAA,GAASA,EAAQ/G,UACpB,IAwBH,OACE,2BACEhV,KAAK,QACLkQ,IAAKqI,EACLjZ,MAAOA,EACP4V,YAAY,sBACZR,SA7BW,SAACE,GACd,IAAMiI,EAAajI,EAAMkE,cAAcxZ,MACnCoc,GAAU,EACVmB,EACFnB,GAAWnI,GAAkBvC,KAAK6L,GAElC9B,EAAQ,MAEVY,EAAWD,GACNA,GAASX,EAAQ,MACtBU,EAASoB,GACTnI,EAASmI,IAmBPrH,UAjBc,SAACZ,GACK,KAAlBA,EAAMC,UACJ6G,EACFX,EAAQ5H,KAER4H,EAAQ,MACRjG,SAgBOvG,ICkBX5F,GDlBW4F,OAAMoC,KAAYiM,ICoBjC,SAASE,GACP3V,EACAN,GAEA,GAAIM,IAAU1I,EAAkBsJ,OAAQ,OAAO,KAC/C,GAAe,MAAXlB,EAAiB,OAAO,KAC5B,GAAwB,QAApBA,EAAQC,QAAmB,OAAO,KACtC,IAAMuB,EAA2BxB,EAAQ/C,KACzC,MAAqC,aAAjCuE,EAAYC,iBAAwC,KACjDD,EAsBT,SAAS0U,GAAT,GAIsB,IAHpBnC,EAGmB,EAHnBA,SACYrO,EAEO,EAFnByQ,WACA7Q,EACmB,EADnBA,MACmB,EACOyK,mBAAwB,MAD/B,mBACZzL,EADY,KACLoO,EADK,KAEb0D,EAAcrN,mBAAQ,WAC1B,MAA+B,kBAA3BgL,EAASjO,cACJ,CACLqL,QAAQ,EACRL,MAAOiD,EAASsC,oBAChBjF,SAAU,SAAAuB,GAAM,OACdjN,EAAO,CACLC,QAASgN,EAAO5B,YAChBuF,sBAAuB3D,EAAOrU,MAElCgH,SAGK,CACL6L,QAAQ,EACRL,MAAOiD,EAASsC,oBAChBjF,SAAU,SAAA5W,GACR,IAAM8J,EAAQiO,GACZwB,EAASwC,sBAAwB,EACjCxC,EAASyC,qBACThc,EAAQuF,QAEV2S,EAASpO,GACK,OAAVA,IACF9J,EAAQob,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEY,aAAeX,EAAEW,gBAC1C/Q,EAAO,CACLC,QAASnL,EAAQiF,KAAI,SAAAkT,GAAM,OAAIA,EAAO5B,eAAa2F,KAAK,MACxDC,qCAAsCnc,EAAQiF,KAC5C,SAAAkT,GAAM,OAAIA,EAAOrU,UAKzBgH,WAGH,CAACI,EAAQJ,EAAOyO,IACnB,MAAmC,SAA/BA,EAAS6C,kBAAqC,KAEhD,oCACE,kBAAC,GAAD,CACEvE,aAAc/N,EACd8N,KAAgB,OAAV9N,EACN6N,WAAY,kBAAMO,EAAS,SAE5BhL,IAAMmP,cAAc/G,GAAYsG,IAKvC,SAASU,GAAT,GAQgB,IAPdre,EAOa,EAPbA,MACAsb,EAMa,EANbA,SACAC,EAKa,EALbA,qBACAnG,EAIa,EAJbA,SACAqG,EAGa,EAHbA,QACAjG,EAEa,EAFbA,SACA8I,EACa,EADbA,eAEI5I,GAAQ,EACN6I,EAAajD,GAAYA,EAASnR,YAClCkG,EAAaa,qBAAWlC,GAO9B,GANAiB,qBAAU,WACR,GAAIyF,EAAO,CACT,IAAMuD,EAAQnH,SAAS2F,cAAc,sBACvB,OAAVwB,GAAkBA,aAAiBC,kBAAkBD,EAAMvD,WAEhE,CAAC6I,EAAY7I,IACC,OAAb4F,IAAsBjL,EAAW3H,gBACnC,OAAO,2BAAOsJ,UAAU,EAAMhS,MAAM,KAC/B,GAAiB,OAAbsb,GAAqBjL,EAAW3H,gBACzC,OAAO,kBAAC,GAAD,CAAW1I,MAAOA,EAAOoV,SAAUA,EAAUI,SAAUA,IACzD,GACJ8F,GAAuC,iBAA3BA,EAASjO,eACrBiO,GAAuC,kBAA3BA,EAASjO,cAEtB,MAAmC,SAA/BiO,EAAS6C,kBAET,2BAAOpN,UAAU,iBACf,2BACErQ,KAAK,MACLqQ,UAAU,SACV6E,YAAY,qBACZ4I,UAAU,EACVhM,QAAS8L,KAKR,2BAAOtM,UAAU,EAAMhS,MAAM,KAEjC,GAAIsb,GAAuC,SAA3BA,EAASjO,cAC9B,OACE,kBAAC,GAAD,CACE+H,SAAUA,EACVX,cAAegH,EACfjG,SAAUA,EACVN,oBAAqBoG,EAASmD,oBAG7B,GAAInD,GAAuC,aAA3BA,EAASjO,cAC9B,OACE,kBAAC,GAAD,CACE+H,SAAUA,EACVX,cAAegH,EACfjG,SAAUA,EACVN,oBAAqBoG,EAASmD,oBAG7B,GAAInD,GAAuC,SAA3BA,EAASjO,cAC9B,OACE,kBAAC,GAAD,CACE+H,SAAUA,EACVX,cAAegH,EACfjG,SAAUA,IAGT,GAAI8F,GAAuC,UAA3BA,EAASjO,cAC9B,OACE,kBAAC,GAAD,CACEiO,SAAUA,EACVC,qBAAsBA,EACtB/F,SAAUA,EACViG,QAASA,EACTD,SAAUpG,IAGT,GAAIkG,GAAuC,UAA3BA,EAASjO,cAC9B,OACE,kBAAC,GAAD,CAAYmI,SAAUA,EAAUiG,QAASA,EAASrG,SAAUA,IAQhE,OADAM,GAAQ,EACJ4F,GAAuC,WAA3BA,EAASjO,cAErB,2BACE3M,KAAK,SACLV,MAAOA,EACP4V,YAAY,iBACZR,SAXc,SAACE,GAAD,OAClBF,EAASE,EAAMkE,cAAcxZ,QAWzBkW,UAVY,SAACZ,GAAD,OACE,KAAlBA,EAAMC,SAAkBC,OAYf8F,GAAuC,SAA3BA,EAASjO,cACvB,kBAAC,GAAD,CAAWrN,MAAOA,EAAOoV,SAAUA,EAAUI,SAAUA,IACrD8F,GAAuC,cAA3BA,EAASjO,eAC9BqI,GAAQ,EACD,2BAAO1D,UAAU,EAAMhS,MAAM,OAEpC0V,GAAQ,EACD,MAmBX,SAASgJ,GACPC,EACA1F,GAEA,GAAqB,IAAjBA,EAAM3R,OAAV,CACA,IAAI8U,EAA6B,CAAEc,SAAS,EAAO0B,SAAU,IAC7D,OAAQD,GACN,IAAK,QACHvC,EAAQc,SAAWjJ,GAAkBvC,KAAKuH,GAC1CmD,EAAQwC,SAAW/K,GACnB,MACF,IAAK,QACHuI,EAAQc,SAxBd,SAAuB2B,GACrB,IAAMjC,EAAY,IAAIC,KACtBD,EAAU3D,MAAM4F,GAChB,IAAM9B,EAAcH,EAAUI,YAC9B,QAAOD,GAAcA,EAAYG,UAoBV4B,CAAc7F,GACjCmD,EAAQwC,SAAW/K,GAGvB,OAAOuI,GAGT,SAAS2C,KACP,IAAM1O,EAAaa,qBAAWlC,GACxBmC,EAAQd,EAAW/K,SAASY,OAC5B8Y,EAAa3O,EAAWrI,SAAWL,EAAaY,WAHhC,EAII+O,mBAAS,CACjC2H,WAAW,EACXrT,KAAM,GACNC,MAAO,KACPyS,gBAAgB,IARI,mBAIfzW,EAJe,KAIRqX,EAJQ,KAUhBC,EAAc5C,uBAClB,SAAC6C,GAAD,OAA0BF,GAAS,SAAArX,GAAK,kCAAUA,GAAUuX,QAC5D,IAEIC,EAAwC,OAAhBxX,EAAMgE,MAC5B3D,EAAagJ,qBAAW7B,GAAxBnH,SACAd,EAAwB8J,qBAAW7B,GAAnCjI,oBACFG,EAAUW,EAASA,EAASZ,OAAS,GACrCgY,EAAiBlY,EACnBA,EAAoBA,EAAoBE,OAAS,GACjD,KACEgU,EAAWkC,GAAmBnN,EAAWxI,MAAON,GAChDgY,EAAkB/B,GAAmBnN,EAAWxI,MAAOyX,GACvD/D,EACJgE,GAAqD,UAAlCA,EAAgBlS,cAC/BkS,EACA,KACAZ,EAAerD,GAAYA,EAASjO,cACpCmS,EArPR,SACEb,GAEA,OAAQA,GACN,KAAK,KACL,IAAK,eACL,IAAK,gBACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,QACH,OAAO,EACT,QACE,OAAO,GAsOWc,CAAgBd,GAChCe,EACa,kBAAjBf,GAAqD,iBAAjBA,EAClCgB,EACe,SAAjBhB,GACiB,WAAjBA,GACiB,UAAjBA,GACiB,SAAjBA,GACiB,aAAjBA,GACiB,SAAjBA,GACiB,UAAjBA,GACiB,cAAjBA,EACE3M,EACW,OAAbsJ,GAAqBoE,GAA0C,IAA7B7X,EAAM+D,KAAK+O,OAAOrT,OAClD+I,EAAW3H,kBACbsJ,EAAwC,IAA7BnK,EAAM+D,KAAK+O,OAAOrT,OAC7BqY,GAAc,GAEhB,IAAM3X,EAASkJ,qBAAW5B,GAC1BjG,GAAcgH,EAAWhH,YACzB,IAAMqU,EAAa,WACjB,IAAMxQ,EAAUrF,EAAM+D,KAAK+O,OAC3B,GAAIzN,EAAQ5F,QAAU+I,EAAW3H,gBAC/BkX,EAA8B1S,GAC9BgS,EAAS,CACPrT,MAAO,KACPoT,WAAW,EACXrT,KAAM,GACN0S,gBAAgB,QAEb,KAAKpR,EAAQ5F,QAAU+I,EAAW3H,gBACvC,OAEA,IAAMmX,EAAmBnB,GAAgBC,EAAczR,GACvD,GAAI2S,EAAkB3C,QAEpB,YADAiC,EAAY,CAAEtT,MAAOgU,EAAkBjB,WAGrB,OAAhB/W,EAAMgE,OACR7D,EAAOiF,OAAO,CAAEC,YAElBgS,EAAS,CACPrT,MAAO,KACPoT,WAAW,EACXrT,KAAM,GACN0S,gBAAgB,MAKhBsB,EAAgC,SAAAE,GACpC,GAAKzP,EAAW3H,gBAAhB,CAIA,IAAMqX,EAAuB,CAC3Brf,KAAM,eACNkL,KAAMkU,EACNE,SAAU,WAEZ3W,GAAY4W,YACV5P,EAAW3L,UACX2L,EAAWzL,eACXmb,GAEF1W,GAAY6W,iBACV7P,EAAW3L,UACX2L,EAAWzL,eACXmb,GAEF1W,GAAY8W,mBACV9P,EAAW3L,UACX2L,EAAWzL,eACX,CACEwb,YAAaL,EACbM,UAAW5e,KAAK6e,OAAM,IAAInY,MAAOgN,UAAY,SAM7CoL,EAAajQ,mBAAyB,WAC1C,OAAKzI,EAAMyW,gBAA8B,MAAZhD,EAEA,kBAA3BA,EAASjO,eACkB,iBAA3BiO,EAASjO,cAEF,KAGP,kBAACoQ,GAAD,CACEnC,SAAUA,EACVoC,WAAY,SAAAzQ,GACViS,EAAS,CACPrT,MAAO,KACPoT,WAAW,EACXrT,KAAM,GACN0S,gBAAgB,IAElBtW,EAAOiF,OAAOA,IAEhBJ,MAAO,kBAAMsS,EAAY,CAAEb,gBAAgB,OAnBO,OAsBrD,CAACzW,EAAMyW,eAAgBhD,EAAUtT,EAAQmX,IAC5C,OACE,oCACGoB,EACD,yBAAKxP,UAAU,eACb,yBAAKyP,QAASnB,EAAuBtO,UAAU,iBAC7C,8BAAOlJ,EAAMgE,QAKf,yBACEmF,MAAO,CACLyP,QAC4B,IAA1BpB,EACI,oBACA,qBAERtO,UAAS,oBACNiB,GAAY3B,EAAW3H,gBAAkB,SAAW,GAD9C,YAEL2W,EAAwB,YAAc,GAFjC,YAGPK,EAAY,aAAe,GAHpB,uBAKNC,EAA8B,GAAhB,gBAEjB,kBAACtB,GAAD,CACEre,MAAO6H,EAAM+D,KACb0P,SAAUA,EACVC,qBAAsBA,EACtB/F,SAAUkI,EACVY,eAtDa,kBAAMa,EAAY,CAAEb,gBAAgB,KAuDjDlJ,SAAU,SAAAxJ,GAAI,OAAIuT,EAAY,CAAEvT,UAEhC6P,QAAS,SAAA5P,GAAK,OAAIsT,EAAY,CAAEtT,aAElC,4BACEnL,KAAK,SACLsR,SAAUA,EACVjB,UAAU,YACVyB,QAASkL,GAET,kBAACgD,GAAD,CAAgBpN,QAAStB,MAG7B,yBACEjB,UAAS,uBAAkByO,EAAgB,WAAa,WAExD,0BACEzO,UAAU,cACVyB,QAAS,kBACNgN,GACDN,EAAS,2BAAKrX,GAAN,IAAaoX,WAAYpX,EAAMoX,gBAIzC5O,EAAW5K,oBACT,uBAAG+a,OAAQxB,GAAX,aAEE,uBACEjO,UAAU,qBACV4P,KAAMtQ,EAAW5K,mBACjBmb,IAAI,sBACJ7H,OAAO,UAJT,YAWN,uBAAGhI,UAAU,SAASyP,QAASxB,GAA/B,eAIDnX,EAAMoX,WACL,yBAAKlO,UAAU,0BACb,kBAAC,KAAD,CACE8P,QAAQ,EACR1P,MAAOA,EACP8F,MAAM,WACN6J,QAAS,EACTC,aAAa,EACbvO,QAAS,SAAAwO,GACP9B,EAAS,2BACJrX,GADG,IAENoX,WAAW,EACXrT,KAAM/D,EAAM+D,KAAQoV,EAAcH,gBAWrC5R,WAAMoC,KAAS0N,ICrhBf,OAA0B,iCCM5BkC,I,cAAkB,SAACvM,GAAD,OAC7B,uBAAK3D,UAAU,WACb,uBAAKA,UAAU,gBACZ2D,EAAMnN,SACLmN,EAAMnN,QAAQ6F,MACX,wCAFJ,OAGGsH,EAAMnN,QAAQ6F,KAAK8T,YAErBxM,EAAMnN,SAAW,8CAClBmN,EAAMnN,UACJmN,EAAMnN,QAAQ6F,MACf,kD,cCLR,SAAS+T,GAAT,GAAgE,IAA7Bpf,EAA4B,EAA5BA,QAAS4W,EAAmB,EAAnBA,SAC1BxH,EAAUD,qBAAWlC,GAAY1J,SAAzCY,OACR,OACE,wBAAI6K,UAAU,uEACXhP,EAAQiF,KAAI,SAAAkT,GAAM,OACjB,wBACEZ,IAAKY,EAAOrU,GACZ2M,QAAS,kBAAMmG,EAASuB,IACxBnJ,UAAS,yCACsB,IAA7BiC,GAASzB,QAAQJ,GAAgB,4BAA8B,KAGhE+I,EAAO5B,iBAOHrJ,WAAMoC,KAAY8P,ICxBjC,SAASC,GAAqB1M,GAC5B,OACE,wBACE7O,GAAI6O,EAAM2M,UACVtQ,UACE2D,EAAM9I,MAAQ8I,EAAM9I,KAAKtE,OAAS,EAC9B,8EACA,uDAGLoN,EAAM9I,MAKEqD,cAA8BmS,I,wBCEtC,IAAME,GAAb,oC,8bAAA,IAUE,WAAYC,GAAiC,IAAD,8BAC1C,cAAMA,IAPC1Z,MAA4B,CACnC2Z,cAAc,EACdC,QAAQ,EACRC,UAAW,EAAKhN,MAAMiN,UAGoB,EAD5CC,eAC4C,IA6D5CC,WAAa,WACX,GAAI,EAAKC,eAAgB,CAAC,IAChBC,EAAU,EAAKH,UAAUjR,QAAzBoR,MACJ,EAAKla,MAAM6Z,SACb,EAAKM,KAAKD,GAEV,EAAKE,MAAMF,KAjEf,EAAKH,UAAY3S,cAFyB,EAV9C,qDAcE,WAAqB,IAAD,OACdvP,KAAKgV,MAAMiN,UACb7V,YAAW,WACT,GAAI,EAAKgW,eAAgB,CAAC,IAChBC,EAAU,EAAKH,UAAUjR,QAAzBoR,MACJ,EAAKrN,MAAMwN,cACZH,EAAMA,MAA2BG,YAAc,EAAKxN,MAAMwN,aAE7D,EAAKC,KAAKJ,GACV,EAAKC,KAAKD,MAEX,KAEDriB,KAAKoiB,gBACPpiB,KAAKkiB,UAAUjR,QAAQyR,uBACrB1iB,KAAK2iB,iBAAiBC,KAAK5iB,SA7BnC,8BAkCE,SAAiBmI,EAAO0a,GACtB7iB,KAAKwf,SAAS,CAAEsC,aAAc3Z,EAAM2Z,eAChC3Z,EAAM2a,eAAiBD,EAAUC,aACnCjiB,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACN6O,IAAK,CAAC,yBACNC,OAAQ,CAAC,mBAEX,MAEQ3H,EAAM2a,cAAgBD,EAAUC,cAC1CjiB,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACN6O,IAAK,CAAC,kBACNC,OAAQ,CAAC,0BAEX,OApDR,4BAyDE,WACE,OAAI9P,KAAKgV,MAAM+N,WAEX,uBAAK1R,UAAU,YACb,8BACGrR,KAAKgV,MAAM+N,WACX/iB,KAAKgV,MAAMgO,cAKb,OApEX,kBAkFE,SAAKX,GACHA,EAAMY,OAAQ,IAnFlB,kBAsFE,SAAKZ,GACHA,EAAMC,OACNtiB,KAAKwf,SAAS,CACZwC,UAAU,MAzFhB,mBA6FE,SAAMK,GACJA,EAAME,QACNviB,KAAKwf,SAAS,CACZwC,UAAU,MAhGhB,oBAoGE,WACE,OACE,uBAAK3Q,UAAU,eAAelL,GAAInG,KAAKgV,MAAM7O,IAC3C,wBAAMkL,UAAS,uDACb,uBAAKA,UAAU,cACZrR,KAAKgV,MAAMkO,aACV,0BAAQ7R,UAAU,YAAYrR,KAAKgV,MAAM5O,SAE3C,uBAAKiL,UAAU,sBACb,gBAAC,UAAD,CAAQH,IAAKlR,KAAKkiB,UAAWiB,aAAa,GACxC,0BAAQ1P,IAAKzT,KAAKgV,MAAMoO,SAASC,MACjC,0BAAQ5P,IAAKzT,KAAKgV,MAAMoO,SAASE,MACjC,gBAAC,iBAAD,CAAehR,UAAU,IACzB,gBAAC,cAAD,CAAYiR,uBAAwBvjB,KAAKmI,MAAM6Z,YAEjD,uBACE3Q,UAAWrR,KAAKmI,MAAM6Z,SAAW,YAAc,SAC/ClP,QAAS9S,KAAKmiB,YAEd,uBAAK3O,IAAI,OAAOC,IC/IjB,isED+IqCT,MAAM,KAAKC,OAAO,UAI3DjT,KAAKwjB,qBA3HhB,0BAiIE,WACE,OAAkC,OAA3BxjB,KAAKkiB,UAAUjR,YAlI1B,GAAkC1B,iB,8BEP3B,IAAMkU,GAAb,oC,8bAAA,8JAIEC,SAA8CnU,cAJhD,EAKWpH,MAA4B,CACnC4Z,QAAQ,GANZ,EAQW4B,MAAQ,CAEfC,MAAO,CACLC,gBAAiB,2BACjB3Q,KAAM,OACN4Q,QAAS,GACTC,WAAY,gBAEZ,SAAU,CACRD,QAAS,IAGbE,uBAAwB,CAAEC,WAAY,IACtCC,wBAAyB,CAAEC,YAAa,IACxCC,oBAAqB,CACnBC,aAAc,GACdpR,OAAQ,GACRqR,WAAY,GAEZ,4BAA6B,CAC3BrR,OAAQ,GACRsR,QAAS,KAIbpX,MAAO,CACL,SAAU,CACR2W,QAAS,GAEX5Q,KAAM,UACN4Q,QAAS,GACTC,WAAY,aAEd5K,UAAW,CACTqL,WAAY,4BAIdC,OAAQ,CACNhT,MAAO,SAETiT,YAAa,CACXjT,MAAO,uBAlDb,EAsDEkT,eAAiB,WACf,IAAM5C,GAAU,EAAK5Z,MAAM4Z,OAC3B,EAAKvC,SACH,CACEuC,WAEF,WACE3V,YAAW,WACTgG,SAASvP,KAAK+hB,aAAa,QAAS,OAEtC/jB,OAAOgkB,IAAI9jB,YACT,CACEC,KAAM,eACN6O,IAAKkS,EAAS,CAAC,wBAA0B,CAAC,kBAC1CjS,OAAQiS,EAAS,CAAC,kBAAoB,CAAC,yBAEzC,SAtEV,oDA4EE,WACE,OACE,gBAAC,KAAD,CACE+C,OAAQ,CACN,CAAErR,IAAKzT,KAAKgV,MAAM+P,SAAUC,QAAShlB,KAAKgV,MAAMiQ,YAAc,KAEhElD,OAAQ/hB,KAAKmI,MAAM4Z,OACnBmD,QAASllB,KAAK2kB,eACdQ,gBAAgB,EAChBxB,MAAO3jB,KAAK2jB,UArFpB,oBA0FE,WACE,OACE,uBAAKtS,UAAU,eAAelL,GAAInG,KAAKgV,MAAM7O,IAC3C,wBAAMkL,UAAU,0EACZrR,KAAKgV,MAAMoQ,2BAA6BplB,KAAKqlB,iBAC9CrlB,KAAKgV,MAAMkO,aACV,0BAAQ7R,UAAU,YAAYrR,KAAKgV,MAAM5O,SAE3C,uBACEoN,IAAKxT,KAAKgV,MAAMiQ,YAAc,GAC9B/T,IAAKlR,KAAK0jB,SACVjQ,IAAKzT,KAAKgV,MAAM+P,SAChBjS,QACE9S,KAAKgV,MAAMoQ,+BACPE,EACAtlB,KAAK2kB,uBAzGvB,GAAkCpV,iBCjBnB,I,OAAA,IAA0B,2CCe5BgW,GAAkB,SAACvQ,GAC9B,IAUIwQ,EAAWxQ,EAAMyQ,YAAY3T,MAAM,KAAK4T,MAE5C,OADAF,EAAWA,EAAWG,mBAAmBH,GAAY,KAEnD,uBAAKnU,UAAU,eAAelL,GAAI6O,EAAM7O,IACtC,wBACEoR,MAAM,oBACNlG,UAAU,iFAET2D,EAAMkO,aACL,0BAAQ7R,UAAU,YAAY2D,EAAM5O,SAGtC,0BACEiL,UAAU,+CACVyB,QAxBa,WACnB,IAAM3P,EAAIiP,SAASsM,cAAc,KACjCvb,EAAE8d,KAAOjM,EAAMyQ,YACftiB,EAAEkW,OAAS,SACXlW,EAAE+d,IAAM,sBACR/d,EAAEyiB,SAAW5Q,EAAMuC,OAAS,GAC5BnF,SAASvP,KAAKgjB,YAAY1iB,GAC1BA,EAAE2iB,QACF1T,SAASvP,KAAKkjB,YAAY5iB,KAkBpB,yBACE,uBAAKsQ,IAAKuS,GAAcxS,IAAI,mBAE9B,4BACE,qBAAGyN,KAAK,uBAAuBjM,EAAMuC,OACrC,qBAAGlG,UAAU,YAAYmU,QC/CtB,I,OAAA,IAA0B,yCCmBlC,IAAMS,GAAb,oC,8bAAA,8JACEvC,SAA8CnU,cADhD,EAGE2W,SAAW,WACT,IAAM/iB,EAAIiP,SAASsM,cAAc,KACjCvb,EAAE8d,KAAO,EAAKjM,MAAMmR,SAAS/jB,IAC7Be,EAAEkW,OAAS,SACXlW,EAAE+d,IAAM,sBACR/d,EAAEmO,MAAM8U,QAAU,OAClBhU,SAASvP,KAAKgjB,YAAY1iB,GAC1BA,EAAE2iB,QACF1T,SAASvP,KAAKkjB,YAAY5iB,IAX9B,4CAcE,WACE,OACE,uBAAKkO,UAAU,eAAelL,GAAInG,KAAKgV,MAAM7O,IAC3C,wBACEkL,UAAU,oFACVyB,QAAS9S,KAAKkmB,UAEd,2BACGlmB,KAAKgV,MAAMkO,aACV,0BAAQ7R,UAAU,YAAYrR,KAAKgV,MAAM5O,SAE3C,uBACEoN,IAAI,GACJtC,IAAKlR,KAAK0jB,SACVjQ,IAAKzT,KAAKgV,MAAM+P,UAAYsB,MAGhC,0BAAQhV,UAAU,4BAChB,wBAAMA,UAAU,YAAYkG,MAAOvX,KAAKgV,MAAMmR,SAAS5O,OACpDvX,KAAKgV,MAAMmR,SAAS5O,OAEvB,qBACE0J,KAAK,sBACL5P,UAAU,WACVkG,MAAM,aAEL3F,EAAa0U,gBAAgBtmB,KAAKgV,MAAMmR,SAAS/jB,aAxChE,GAAgCmN,iB,UCanBgX,GAAb,kCAAaA,GACIC,uBAAyB,SAACC,GACvC,OAA4B,IAAxBA,EAAa7e,SACL6e,EAAe,GAAM,IAAIxkB,aAEzBwkB,EAAe,IAAO,IAAIxkB,YAL7BskB,GASIG,6BAA+B,SAACrnB,GAA6B,IAAD,EACrDA,EAAO4C,WAAW6P,MAAM,KAD6B,mBAClE6U,EADkE,KAC7DC,EAD6D,KAErEC,EAAuB,KAI3B,OAHID,IACFC,EAAeN,GAAgBC,uBAAuBI,IAElD,GAAN,OAAUvnB,EAAS,EAAI,IAAMsnB,EAAMA,EAAnC,YAA0CE,IAfjCN,GAkBJO,sBAAwB,SAC7BznB,EACA0nB,EACA9K,EACA+K,GAEA,IAAMC,EAAeV,GAAgBG,6BAA6BrnB,GAClE,OAAI2nB,EACI,OAAN,OAAcC,EAAd,YACEF,EAAS,UAAY,GADvB,YAEI9K,EAFJ,aAEgB+K,GAEV,OAAN,OAAcC,EAAd,YAA8BF,EAAS,WAAa,IAApD,YAA2D9K,IA9BpDsK,GAkCJW,8BAAgC,SAACC,GAAkB,IACjDC,EADgD,YACpCC,aAAU,GAAGF,GAAQ7S,IADe,MAEnDgT,EAAW,GACf,GAAIF,EAAU,CACZ,IAAMG,EAAcH,EADR,EAEeb,GAAgBiB,oBACzCD,GADMloB,EAFI,EAEJA,OAAQ0nB,EAFJ,EAEIA,OAGhBO,EAAWf,GAAgBO,sBACzBznB,EACA0nB,EACAQ,EAAYzoB,QACZyoB,EAAYxoB,QAGhB,OAAOuoB,GAjDEf,GAoDJkB,4BAA8B,SAACT,EAAQ3nB,EAAgBqoB,GAC5D,IAAMT,EAAeV,GAAgBG,6BAA6BrnB,GAClE,MAAO,UAAG2nB,EAAH,gBAAiBC,EAAjB,YAAiCS,EAAS,SAAW,IAAKzM,QAtDxDsL,GAyDJiB,oBAAsB,SAACJ,GAC5B,IAAI/nB,EAAS+nB,EAASnoB,SAClB8nB,GAAS,EACb,GAAIK,EAASjoB,oBAAsBioB,EAASjoB,mBAAmByI,OAAQ,CACrE,IAAM4a,EAAc/Z,KAAKC,MAD4C,uBAErE,YAAsB0e,EAASjoB,mBAA/B,+CAAmD,CAAC,IAAzCwoB,EAAwC,QAE/CnF,IAAgBmF,EAAQroB,eACxBkjB,IAAgBmF,EAAQpoB,cAExBwnB,GAAS,EACT1nB,GAAUsoB,EAAQtoB,SAR+C,mFAYvE,MAAO,CACLA,SACA0nB,WA1EOR,GA8EJqB,gBAAkB,SAACC,EAAiBC,GACzC,IAAIC,EAAWD,EAAa7oB,SAASgD,WACjC8kB,GAAS,EACb,GACEe,EAAa3oB,oBACb2oB,EAAa3oB,mBAAmByI,OAChC,CACA,IAAMogB,EAAYF,EAAa3oB,mBAAmB8oB,MAChD,SAAAC,GAAG,OACDC,OAAOD,EAAI5oB,gBAAkBuoB,GAC7BA,GAAWM,OAAOD,EAAI3oB,gBAEtByoB,IACFD,EAAWC,EAAU3oB,OACrB0nB,GAAS,GAGb,MAAO,CAAE1nB,OAAQ0oB,EAAUhB,WA/FlBR,GAkGJ6B,cAAgB,SAACpe,GACtB,IAAMrL,EAA4C0oB,aAAU,GACtDQ,EAAUpf,KAAKC,MACf2f,EAAK1pB,GAAaA,EAAUqL,IAAerL,EAAUqL,GAAY,GAHX,EAIjCuc,GAAgBqB,gBAAgBC,EAASQ,GAA5DtB,EAJoD,EAIpDA,OAAQ1nB,EAJ4C,EAI5CA,OAEhB,MAAO,CACLipB,aAAcD,EAAGnpB,aACjB8K,WAAYqe,EAAGzpB,GACfooB,OAAQqB,EAAGtpB,OACXwpB,UAAWF,EAAGxpB,UACdQ,SACAqY,YAAY,EACZ8Q,YAAaH,EAAGvpB,QAChB2pB,oBAAqBlC,GAAgBkB,4BACnCY,EAAGtpB,OACHM,EACA0nB,KAnHKR,GAwHJmC,gBAAkB,WACvB,IAAM/pB,EAA4C0oB,aAAU,GACtDsB,EAEF,GAEJ,IAAK,IAAM/O,KAAOjb,EAChB,GAAIib,KAAOjb,EAAW,CACpB,IAAM0pB,EAAK1pB,GAAaA,EAAUib,IAAQjb,EAAUib,GAAK,GACrDyO,GAAMA,EAAGvpB,UACX6pB,EAAON,EAAGvpB,SAAW6pB,EAAON,EAAGvpB,UAAY,GAC3C6pB,EAAON,EAAGvpB,SAAS0C,KAAK+kB,GAAgB6B,cAAcxO,KAM5D,IAAMgP,EAAqBpN,OAAOC,KAAKkN,GAAQlL,OAC/C,IAAK,IAAMxB,KAAW0M,EACpB,GAAI1M,KAAW0M,EAAQ,CACrB,IAAME,EAAUF,EAAO1M,GACnB4M,GAAWA,EAAQjhB,OAAS,GAC9BihB,EAAQpL,MAAK,SAACta,EAAG2lB,GACf,OAAO3lB,EAAEmlB,aAAeQ,EAAER,gBAKlC,IAAMS,EAAqBC,qBAAkBC,QAC3C,SAACC,EAAmBC,EAAWxhB,GAQ7B,OANEhJ,EAAUwqB,IACVxqB,EAAUwqB,GAAWvhB,SACiC,IAAtDshB,EAAQrX,QAAQlT,EAAUwqB,GAAW,GAAGrqB,UAExCoqB,EAAQ1nB,KAAK7C,EAAUwqB,GAAW,GAAGrqB,SAEhCoqB,IAET,IAEIE,EAAsCR,EAAmBthB,KAC7D,SAAAkhB,GACE,OAAOG,EAAOH,MAQlB,MAAO,CACLa,iBAN0CN,EAAmBzhB,KAC7D,SAAAkhB,GACE,OAAOG,EAAOH,MAKhBY,qB,OCxLC,IAAME,GAAb,oC,8bAAA,IAUE,WAAYtU,GAAuC,IAAD,uBAChD,cAAMA,IAPAuU,SAA8Cha,cAMJ,EAL1Cia,YAAiDja,cAKP,EAJ1Cka,mBAEJla,cAE8C,EAsB1Cma,gBAAkB,WACxB,EAAKlK,UACH,SAAAqD,GACE,MAAO,CACLd,QAASc,EAAUd,WAGvB,WAEE,GADkB,EAAK5Z,MAAM4Z,OACd,CACb,IAAM4H,EAAQ,EAAKH,YAAYvY,QAC/B,GAAI0Y,EAAO,CACT,IAAMC,EAAcD,EAAM5R,cAAc,eACpC6R,GACFA,EAAYC,iBAEd,IAAMC,EAAoB,EAAKL,mBAAmBxY,QAClD,GAAI6Y,EAAmB,CACrB,IAAMC,EAAelpB,OAAOmpB,YACtBC,EAAwBH,EAAkBI,wBAG1CC,EACJJ,EAHqBE,EAAsBpF,IACnBoF,EAAsBhX,OAG1CmX,EAAYT,EAAM3R,cACpBoS,IACET,EAAMzR,aAAeiS,GACvBC,EAAUC,UAAUva,OAAO,YAC3Bsa,EAAUC,UAAUxa,IAAI,iBAExBua,EAAUC,UAAUva,OAAO,eAC3Bsa,EAAUC,UAAUxa,IAAI,qBArDU,EA+D1Cya,oBAAsB,SAAC9P,EAA6B+P,EAAO9lB,GACjE,EAAK+a,SAAS,CACZuC,QAAQ,IAEN,EAAK/M,MAAMwV,oBACb,EAAKxV,MAAMwV,mBAAmBC,eAC5BjQ,EAAOkQ,YACPH,EACA9lB,IArEJ,IAAMkmB,EAA6B,GAFa,OAGhD,EAAK3V,MAAM2V,YAAYC,SAAQ,SAACpQ,EAAQ+P,GACtCI,EAAYnpB,KACV,sBAAIoY,IAAK2Q,EAAO9P,SAAUD,EAAOqQ,YAC/B,4BAAOrQ,EAAOqQ,iBAIpB,EAAK1iB,MAAQ,CACX2iB,YAAaH,EACb5I,QAAQ,GAZsC,EAVpD,qDA0BE,WACM/hB,KAAKupB,UAAYvpB,KAAKupB,SAAStY,SAChCjR,KAAKupB,SAAStY,QAAwB+E,UA5B7C,oBAsFE,WAAU,IAAD,SAOHhW,KAAKgV,MAAMwV,mBALbO,EAFK,EAELA,WACAC,EAHK,EAGLA,gBACAC,EAJK,EAILA,mBACAC,EALK,EAKLA,eACAC,EANK,EAMLA,kBAEIC,EACJprB,KAAKgV,MAAMwV,mBAAmBS,mBAAmBrjB,OAAS,EAC5D,OACE,2BACE,uBACEyJ,UAAS,gCACPrR,KAAKmI,MAAM4Z,OAAS,SAAW,IAEjCjP,QAASiY,EAAWnjB,OAAS,EAAI5H,KAAK0pB,qBAAkBpE,IAG1D,yBACEjU,UAAS,wBACe,IAAtB0Z,EAAWnjB,OAAe,WAAa,GADhC,YAEL5H,KAAKmI,MAAM4Z,OAAS,WAAa,IACrC5b,GAAG,yBAEH,uBACE+K,IAAKlR,KAAKypB,mBACVpY,UAAU,sBACVyB,QAASiY,EAAWnjB,OAAS,EAAI5H,KAAK0pB,qBAAkBpE,GAExD,qBACEjU,UAAS,mBACPrR,KAAKmI,MAAM4Z,OAAS,iBAAmB,KAGxCqJ,EAAeH,EAAqBD,GAEvC,uBACE3Z,UAAU,oCACVyP,QAASoK,GAERC,IAGL,uBAAK9Z,UAAU,kDACb,sBAAIH,IAAKlR,KAAKwpB,aACXuB,EAAWzjB,KAAI,SAACkT,EAAQ+P,GACvB,OACE,sBACE3Q,IAAK2Q,EACLlZ,UAAS,kCACP+Z,GAAgBH,IAAuBzQ,EAAOqQ,WAC1C,WACA,GAHG,YAILrQ,EAAO9C,WAAa,WAAa,IACrC5E,QACE0H,EAAO9C,WACH,KACA,EAAK4S,oBAAoB1H,KAAK,EAAMpI,EAAQ+P,IAGjD/P,EAAOqQ,uBAnJ5B,GAA6Ctb,aCrBhC8b,GAIX,WAAYC,GAIR,yBAPJ5T,gBAOG,OANHmT,gBAMG,OALHH,iBAKG,EACD1qB,KAAK0X,WAAa4T,EAAO5T,WACzB1X,KAAK6qB,WAAaS,EAAOT,WACzB7qB,KAAK0qB,YAAcY,EAAOZ,aCCvB,IAAMa,GAAb,oC,8bAAA,IA4BE,WAAYvW,GAA6B,IAAD,uBACtC,cAAMA,IAzBAwW,yBAwBgC,IAvBhCC,8BAuBgC,IAtBhCC,oBAsBgC,IArBhCC,8BAAmD,GAqBnB,EApBhCC,mBAAsC,GAoBN,EAnBhCC,gBAAmC,CACzC,CACErD,YAAa,wCACb9Q,YAAY,EACZ4Q,aAAc,EACdjpB,OAAQ,GACR2nB,OAAQ,GACRuB,UAAW,GACXve,WAAY,GACZye,oBAAqB,KAUe,EAPhCqD,4BAEJ,GAKoC,EAJhCC,2BAEJ,GAEoC,EADxCC,8BAAgC,iCACQ,EAgCxCC,aAAe,SACbC,GAEA,MAAO,CACLC,oBAAqBD,EAAsB1D,YAC3C4D,gCACEF,EAAsBzD,oBACxByD,wBACAG,sBAAsB,IAxCc,EA4CxCC,+BAAiC,SAACnF,GAChC,OAAO,EAAKwE,8BAA8B1D,MAAK,SAAAsE,GAE7C,OAD2BA,EAAEC,MAAK,SAAA/nB,GAAC,OAAIA,EAAEuF,aAAemd,SA9CpB,EAmDxCsF,iCAAmC,WAAO,IAAD,EAInClG,GAAgBmC,kBAFlBU,EAFqC,EAErCA,iBACAC,EAHqC,EAGrCA,iBAEF,EAAKsC,8BAAgCtC,EAAiBqD,OACpD,CAAC,EAAKb,iBACNzC,GAEF,EAAK0C,4BAA8B,EAAKH,8BAA8BrkB,KACpE,SAACqlB,EAAapC,GAMZ,OALe,IAAIc,GAAiB,CAClC3T,WAAYiV,EAAY,GAAGjV,WAC3BmT,WAAY8B,EAAY,GAAGnE,YAC3BkC,YAAaiC,EAAY,SAjEO,EAwExCC,sBAAwB,SAACzF,GACvB,EAAKyE,mBAAqB,EAAKU,+BAC7BnF,GAEF,EAAK4E,2BAA6B,EAAKH,mBAAmBtkB,KACxD,SAACulB,EAAYtC,GAMX,OALe,IAAIc,GAAiB,CAClC3T,WAAYmV,EAAWnV,WACvBmT,WAAYgC,EAAWpE,oBACvBiC,YAAamC,QAjFmB,EAwFxCC,gBAAkB,SAACC,EAAyBxC,GAC1C,EAAKyC,wBACL,EAAKC,2BAA2B1C,IA1FM,EA6FxC0C,2BAA6B,SAACC,GAA2C,IAArBC,EAAoB,uDAAN,EAC1DC,EAAqB,EAAKzB,8BAA8BuB,GAC5DC,GAEF,EAAKvB,mBAAqB,EAAKD,8BAA8BuB,GAC7D,EAAKnB,2BAA6B,EAAKH,mBAAmBtkB,KACxD,SAACulB,EAAYtC,GAMX,OALe,IAAIc,GAAiB,CAClC3T,WAAYmV,EAAWnV,WACvBmT,WAAYgC,EAAWpE,oBACvBiC,YAAamC,OAKnB,EAAKrN,SAAS,CACZ2M,oBAAqBiB,EAAmB5E,cAEtC,EAAKoD,mBAAmBhkB,OAAS,EACnC,EAAK4X,SAAS,CACZ4M,gCAAiC,KAGnC,EAAKiB,iBAAiB,IApHc,EAwHxCA,iBAAmB,SAACF,GAClB,IAAMG,EAAiB,EAAK1B,mBAAmBuB,GAC/C,EAAK3N,SAAS,CACZ4M,gCAAiCkB,EAAe7E,oBAChDyD,sBAAuBoB,KA5Ha,EAgIxCC,eAAiB,SAACR,EAAyBxC,GACzC,EAAKyC,wBACL,EAAKK,iBAAiB9C,IAlIgB,EAqIxCyC,sBAAwB,WACtB,EAAKxN,SAAS,CACZ6M,sBAAsB,KAvIc,EA2IxCmB,mBAAqB,WACnB,GACE,EAAKrlB,MAAMgkB,qBACX,EAAKhkB,MAAMikB,gCACX,CACA,IAAMjF,EAAO,EAAKhf,MAAM+jB,sBAAsBliB,WACxCyjB,EAAiBlH,GAAgBW,8BACrCC,GAEF,EAAKqE,oBAAsB,EAAKrjB,MAAMgkB,oBACtC,EAAKV,yBAA2B,EAAKtjB,MAAM+jB,sBAC3C,EAAKR,eAAiB,EAAKE,mBAC3B,EAAK5W,MAAM0Y,WAAWvG,EAAMsG,QAE5B,EAAKjO,SAAS,CACZ6M,sBAAsB,KA1JY,EA+JxCsB,mBAAqB,WACnB,EAAKnO,SAAS,CACZ2M,oBAAqB,EAAKX,oBAC1BU,sBAAuB,EAAKT,yBAC5BW,gCAAiC,EAAKX,yBACnChD,sBAEL,EAAKmD,mBAAqB,EAAKF,eAC/B,EAAK1W,MAAM0Y,cArKX,EAAKE,gBAAgB5Y,GACrB,IAAMkX,EAAwB3F,GAAgB6B,cAC5CpT,EAAMhL,YAJ8B,OAMtC,EAAK7B,MAAQ,EAAK8jB,aAAaC,GAC/B,EAAKV,oBAAsB,EAAKrjB,MAAMgkB,oBACtC,EAAKV,yBAA2B,EAAKtjB,MAAM+jB,sBAC3C,EAAKR,eAAiB,EAAKE,mBATW,EA5B1C,mDAwCE,SAAgB5W,GACdhV,KAAKysB,mCACLzsB,KAAK4sB,sBAAsB5X,EAAMhL,cA1CrC,gCA6CE,SAAmB6jB,GAEjB,GADwBA,EAAU7jB,aAAehK,KAAKgV,MAAMhL,WACvC,CACnBhK,KAAK4sB,sBAAsBiB,EAAU7jB,YACrC,IAAMkiB,EAAwB3F,GAAgB6B,cAC5CyF,EAAU7jB,YAEN8jB,EAAW9tB,KAAKisB,aAAaC,GACnClsB,KAAKwrB,oBAAsBsC,EAAS3B,oBACpCnsB,KAAKyrB,yBAA2BqC,EAAS5B,sBACzClsB,KAAK0rB,eAAiB1rB,KAAK4rB,mBAC3B5rB,KAAKwf,SAASsO,MAxDpB,oBAqME,WACE,IAAM3U,EAAY/G,SAAS2F,cAAc,gBACzC,OACEoB,GACAO,uBACE,uBAAKrI,UAAU,kBAAkBwB,cAAY,kBAC3C,uBAAKxB,UAAU,kBACb,2CAEE,wBAAMA,UAAU,cAAcyB,QAAS9S,KAAK2tB,sBAE9C,qFACA,gBAAC,GAAD,CACEhD,YAAa,GACbH,mBAAoB,CAClBS,mBAAoBjrB,KAAKmI,MAAMgkB,oBAC/BpB,WAAY/qB,KAAK8rB,4BACjBrB,eAAgBzqB,KAAK8sB,gBACrB9B,gBAAiB,GACjBE,gBAAgB,KAIpB,gBAAC,GAAD,CACEP,YAAa,GACbH,mBAAoB,CAClBS,mBAAoBjrB,KAAKmI,MAAMikB,gCAC/BrB,WAAY/qB,KAAK+rB,2BACjBtB,eAAgBzqB,KAAKutB,eACrBvC,gBAAiB,iCACjBE,eAAgBlrB,KAAKmI,MAAMkkB,qBAC3BlB,kBAAmB,yCAGvB,uBAAK7Z,MAAO,CAAEyc,MAAO,QAASC,OAAQ,YACpC,gBAAC,GAAD,CACE9hB,KAAK,WACLuL,aAAczX,KAAKwtB,wBAK3BrU,OA/OR,GAAmC5J,aCZpB,OAA0B,qCCA1B,OAA0B,uCCA1B,OAA0B,gD,OC8FlC,SAAS0e,GAAahZ,GAC3B,OAAOA,EAAKI,cAAgB,IAAMJ,EAAKK,WAAa,IAAML,EAAKM,UAG1D,SAAS2Y,GAAajZ,GAC3B,IAAMkZ,EAAQlZ,EAAKnD,MAAM,KACzB,OAAO,IAAIrJ,KAAKT,SAASmmB,EAAM,IAAKnmB,SAASmmB,EAAM,IAAKnmB,SAASmmB,EAAM,KAGlE,SAASC,GAAQnZ,GACtB,IAAMyK,EAAOwO,GAAajZ,GAE1B,OADAyK,EAAK2O,QAAQ3O,EAAKnK,UAAY,GACvB0Y,GAAavO,G,4DC9Ff,WACLrd,GADK,uCAAAc,EAAA,yDAGCvC,EAAUa,EAAgB2B,cAEb,OADbC,EAAczC,EAAQ2C,cAJvB,sBAMG,IAAI2D,MAAM,qBANb,uBAQiB/E,EAAUwB,KAAV,UACjBC,kCADiB,8BAEpB,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAK,2BAAMR,GAAP,IAAgBgB,kBAdnB,cAQCirB,EARD,gBAiBcA,EAAQnqB,OAjBtB,WAiBCA,EAjBD,QAkBKC,QAlBL,0CAmBID,GAnBJ,QA8BL,IAAW8Q,KATLsZ,EAIFpqB,EAAKW,KAAKypB,iBACXzc,MAAM,KACNxK,KAAI,SAACknB,GAAD,OAAkBxmB,SAASwmB,OACjB/mB,UACXgnB,EAAoC,GACvBtqB,EAAKW,KAAK2pB,MAAO,CASlC,IARMC,EAAoB,GADQ,EAELvqB,EAAKW,KAAK2pB,MAAMxZ,GAArC+B,EAF0B,EAE1BA,GAAI2X,EAFsB,EAEtBA,GAAIC,EAFkB,EAElBA,SACZ5X,GACF0X,EAAUltB,KAAV,MAAAktB,EAAS,YAAS1X,IAEhB2X,GACFD,EAAUltB,KAAV,MAAAktB,EAAS,YAASC,IAEXhnB,EAAI+mB,EAAU9mB,OAAS,EAAGD,GAAK,EAAGA,IACzC+mB,EAAU/mB,GAAGinB,SAAWA,EAE1BH,EAAMxZ,GAAQyZ,EA1CX,yBA6CE,CACLD,QACArqB,SAAS,EACTmqB,iBAAiB,aAAK9lB,KAAN,YAAc8lB,MAhD3B,6C,sBAoDA,SAAeM,GAAtB,mC,8CAAO,WACLxsB,GADK,qBAAAc,EAAA,yDAGCvC,EAAUa,EAAgB2B,cAEb,OADbC,EAAczC,EAAQ2C,cAJvB,sBAMG,IAAI2D,MAAM,qBANb,uBAQiB/E,EAAUwB,KAAV,UACjBC,kCADiB,0BAEpB,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAK,2BAAMR,GAAP,IAAgBgB,kBAdnB,cAQCirB,EARD,gBAiBcA,EAAQnqB,OAjBtB,cAiBCA,EAjBD,yBAkBEA,EAAKW,MAlBP,6C,oEAqBA,WACLzC,GADK,qBAAAc,EAAA,yDAGCvC,EAAUa,EAAgB2B,cAEb,OADbC,EAAczC,EAAQ2C,cAJvB,sBAMG,IAAI2D,MAAM,qBANb,uBAQiB/E,EAAUwB,KAAV,UACjBC,kCADiB,qCAEpB,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAK,2BAAMR,GAAP,IAAgBgB,kBAdnB,cAQCirB,EARD,gBAiBcA,EAAQnqB,OAjBtB,cAiBCA,EAjBD,yBAkBEA,EAAKW,MAlBP,6C,iCCjFMgqB,GAAS,SAAC9Z,GACrB,OACE,uBAAK3D,UAAU,mBACb,2BACE,uBAAKA,UAAU,WACb,qBAAGA,UAAU,8CAEf,8BAAM2D,EAAM9I,KAAO8I,EAAM9I,KAAO,OCqFxC,SAAShE,GAAQC,EAAcC,GAC7B,OAAQA,EAAOpH,MACb,IAAK,cACH,OAAO,2BACFmH,GADL,IAEEomB,iBAAkB,KAClBE,MAAO,GACPM,cAAe,KACfC,kBAAmB,KACnBC,sBAAsB,EACtBC,qBAAsB,EACtBC,aAAc,KACdC,gBAAiB,KACjBC,UAAWpB,GAAa,IAAIxlB,QAGhC,IAAK,oBACH,IAAMwM,EAAOiZ,GAAa/lB,EAAMknB,WAEhC,OADApa,EAAKoZ,QAAQpZ,EAAKM,UAAYnN,EAAOknB,cAC9B,2BACFnnB,GADL,IAEE+mB,qBAAsB,EACtBG,UAAWpB,GAAahZ,KAG5B,IAAK,QAMH,IALA,IAAMyK,EAAW,2BACZvX,GADY,IAEfomB,iBAAkBnmB,EAAOtD,KAAKypB,iBAC9BE,MAAM,2BAAMtmB,EAAMsmB,OAAUrmB,EAAOtD,KAAK2pB,SAEjCxZ,EAAO7M,EAAOmnB,MAAOta,IAAS7M,EAAOonB,KAAO,CACnD9P,EAAK+O,MAAMxZ,GAAQyK,EAAK+O,MAAMxZ,IAAS,GACvC,IAAMwa,EAAWvB,GAAajZ,GAC9Bwa,EAASpB,QAAQoB,EAASla,UAAY,GACtCN,EAAOgZ,GAAawB,GAEtB,OAAO/P,EAET,IAAK,gBAKH,IAJA,IAAMA,EAAW,2BACZvX,GADY,IAEfsmB,MAAM,eAAMtmB,EAAMsmB,SAEXxZ,EAAO7M,EAAOmnB,MAAOta,IAAS7M,EAAOonB,KAAO,CACnD9P,EAAK+O,MAAMxZ,GAAQ,KACnB,IAAMwa,EAAWvB,GAAajZ,GAC9Bwa,EAASpB,QAAQoB,EAASla,UAAY,GACtCN,EAAOgZ,GAAawB,GAEtB,OAAO/P,EAET,IAAK,yBACH,OAAO,2BAAKvX,GAAZ,IAAmB+mB,qBAAsB9mB,EAAOsnB,WAClD,IAAK,cACH,OAAO,2BAAKvnB,GAAZ,IAAmBgnB,aAAc/mB,EAAOunB,OAC1C,IAAK,qBACH,OAAO,2BAAKxnB,GAAZ,IAAmB6mB,kBAAmB5mB,EAAOwnB,UAC/C,IAAK,aACH,OAAO,2BAAKznB,GAAZ,IAAmBinB,gBAAiBhnB,EAAOtD,OAC7C,IAAK,iBACH,OAAO,2BACFqD,GADL,IAEE4mB,cAAe,CACblnB,QAASO,EAAOP,QAChBgoB,WAAYznB,EAAOynB,YAErBV,aAAc,KACdH,kBAAmB,OAGvB,IAAK,sBACH,OAAO,2BACF7mB,GADL,IAEE4mB,cAAe,KACfC,kBAAmB,KACnBG,aAAc,KACdV,MAAO,KAGX,IAAK,0BACH,OAAO,2BAAKtmB,GAAZ,IAAmB8mB,qBAAsB7mB,EAAO9H,QAClD,IAAK,iBACH,IAAMovB,GAAYvnB,EAAM+mB,qBAAuB9mB,EAAOsnB,UAAY,EAC5Dza,EAAOiZ,GAAa9lB,EAAO9H,OAEjC,OADA2U,EAAKoZ,QAAQpZ,EAAKM,UAAYma,GACvB,2BACFvnB,GADL,IAEEknB,UAAWpB,GAAahZ,GACxBia,qBAAsBQ,IAE1B,IAAK,UACH,OAAO,2BAAKvnB,GAAZ,IAAmB2nB,WAAY1nB,EAAO9H,QACxC,QACE,MAAM,IAAI4G,OAIhB,SAASjI,GAAS+V,GAChB,IAAMpC,EAAUpB,qBAAW5B,GACrBe,EAAaa,qBAAWlC,GACxB8X,EAAWxW,mBACf,kBAAM2V,GAAgBW,8BAA8BlS,EAAMhL,cAC1D,CAACgL,EAAMhL,aALsC,EAOpB4N,oBAAkB,GAPE,mBAOxCmY,EAPwC,KAOjCC,EAPiC,KAQ/Czf,qBAAU,WACHI,EAAWxH,MACd6mB,GAAU,KAEX,CAACrf,IACJ,IAAM+c,EAAa7Q,uBACjB,SAAC7S,GACmB,MAAdA,GACF4I,EAAQzE,eAAenE,GAEzBgmB,GAAU,KAEZ,CAACpd,IAGH,OAAIqd,MAAMjoB,SAASgN,EAAMhL,cACvB4I,EAAQzE,eAAemG,IAChB,MAGP,yBAAKjD,UAAU,uBACZ0e,GACC,kBAAC,GAAD,CACE/lB,WAAYgL,EAAMhL,WAAW/H,WAC7ByrB,WAAYA,IAGhB,wBAAI5a,QAAS,kBAAMkd,GAAU,KAAQ5I,GACrC,yBAAK/V,UAAU,WAAW+V,IAKhC,SAAS8I,KAAiB,IAAD,EACCtY,mBAAiB,IADlB,mBAChB1L,EADgB,KACVikB,EADU,KAQvB,OANA5f,qBAAU,WACR,IAAMxB,EAAU3C,YAAW,WACzB+jB,EAAQ,0DACP,KACH,OAAO,kBAAM5jB,aAAawC,MACzB,IACI,kBAAC,GAAD,CAAQ7C,KAAMA,IAGvB,SAASkkB,GAAUpb,GACjB,IAAM0C,EAAa1C,EAAM1C,SACzB,OACE,4BACEjB,UAAS,wBAAmBqG,EAAa,WAAa,IACtD5E,QAAU4E,OAA6B4N,EAAhBtQ,EAAMlC,QAC7ByE,MAAQG,EAA6D,GAAhD,+CAErB,yBAAK1E,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACFH,KAAMwE,EAAa,UAAY,GAC/BrG,UAAWqG,EAAa,GAAK,kBAC7BvE,SAAS,cAOnB,SAASkd,GAAUrb,GACjB,IAAM1C,EAAW0C,EAAM1C,SACvB,OACE,4BACEjB,UAAS,oBAAeiB,EAAW,WAAa,IAChDQ,QAAUR,OAA2BgT,EAAhBtQ,EAAMlC,QAC3ByE,MAAQjF,EAAuD,GAA5C,2CAEnB,yBAAKU,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACFhC,UAAWiB,EAAW,GAAK,kBAC3BY,KAAMZ,EAAW,UAAY,GAC7Ba,SAAS,cAenB,SAASmd,GAAStb,GAChB,IAAM1C,EAAW0C,EAAM1C,SACjB2C,EAAOiZ,GAAalZ,EAAMub,MAAMvb,EAAM0a,WAC5C,OACE,wBAAIre,UAAYiB,EAAwB,GAAb,YACzB,gCAASC,EAAgB0C,EAAKub,WAC9B,uBACEnf,UACE2D,EAAM6D,WAAa7D,EAAM0a,SACrB,mCACA,GAEN5c,QAAS,kBAAMkC,EAAMlC,QAAQkC,EAAM0a,YAElCza,EAAKM,YAMd,SAASkb,GAAMzb,GAKX,IAAD,EACyB4C,mBAAiB,GAD1C,mBACM2S,EADN,KACamG,EADb,OAE+B9Y,mBAC9B/W,OAAO8vB,YAAc,IAAM,EAAI,GAHhC,mBAEMvpB,EAFN,KAEgBwpB,EAFhB,KAKDrgB,qBAAU,WACR,IAAM6I,EAAW,WACfwX,EAAY/vB,OAAO8vB,YAAc,IAAM,EAAI,IAG7C,OADA9vB,OAAOsX,iBAAiB,SAAUiB,GAC3B,WACLvY,OAAOuX,oBAAoB,SAAUgB,MAEtC,IACH,IAAMT,EAAQ3D,EAAM2D,MACdkY,EAActG,EAAQnjB,GAAYuR,EAAM/Q,OACxCkpB,EAAcvG,EAAQnjB,EAAW,EACvC,OACE,oCACE,yBAAKiK,UAAU,mBACK,IAAjBsH,EAAM/Q,OACL,yBACEyJ,UACE2D,EAAM+b,qBACF,mCACA,qBAGN,8DACA,4BACI/b,EAAM+b,sBACN,uBACE9P,KAAK,qBACLnO,QAAS,kBACPkC,EAAMlK,SAAS,CACb9J,KAAM,0BACNV,OAAO,MALb,6BAeN,4BACGqY,EAAMqY,MAAMzG,EAAOA,EAAQnjB,GAAUE,KAAI,SAACC,EAAMgjB,GAAP,OACxC,wBACElZ,UAAU,8DACVyB,QAAS,kBAAMkC,EAAMiE,SAAS1R,IAC9BqS,IAAK2Q,GAEJhjB,EAAK0pB,cAMhB,yBAAK5f,UAAU,eACb,4BACEA,UAAWyf,EAAc,WAAa,GACtChe,QAASge,OAAcxL,EAAY,kBAAMoL,EAASnG,EAAQnjB,KAF5D,iBAMA,4BACEiK,UAAS,UAAKwf,EAAc,WAAa,GAAhC,cACT/d,QAAS+d,OAAcvL,EAAY,kBAAMoL,EAASnG,EAAQnjB,KAF5D,iBAyBR,SAAS8pB,GAAkBzC,GACzB,OAAc,OAAVA,QAA4BnJ,IAAVmJ,GACE,IAAjBA,EAAM7mB,OAGf,SAASupB,GAAT,GAU0B,IATxBrmB,EASuB,EATvBA,SACA2jB,EAQuB,EARvBA,MACAF,EAOuB,EAPvBA,iBACAU,EAMuB,EANvBA,qBACAI,EAKuB,EALvBA,UACA+B,EAIuB,EAJvBA,WACAC,EAGuB,EAHvBA,WACAnC,EAEuB,EAFvBA,qBACAoC,EACuB,EADvBA,MAEMC,EAAiB3gB,mBAAQ,WAC7B,IAAM2gB,EAA2B,CAAClC,EAAWjB,GAAQiB,IAErD,OADAkC,EAAe,GAAKnD,GAAQmD,EAAe,IACpCA,IACN,CAAClC,IACEmC,EAAeD,EAAerC,GAC9Bja,EAAOiZ,GAAasD,GACpBC,EAAmBhD,EAAM+C,GAKzBE,EACJnD,GACAA,EAAiB9Y,UACfyY,GAAaqD,EAAeA,EAAe3pB,OAAS,IAAI6N,UACtDkc,EAA6B,SAACjC,GAAD,OACjC5kB,EAAS,CAAE9J,KAAM,yBAA0B0uB,cACzCkC,OAAsCtM,EACtCuM,OAAsCvM,EACtC4I,GAAamB,GAAW5Z,UAAYhN,KAAKC,QAC3CkpB,EAAY,kBAAM9mB,EAAS,CAAE9J,KAAM,oBAAqBsuB,cAAe,MAErEoC,IACFG,EAAY,kBAAM/mB,EAAS,CAAE9J,KAAM,oBAAqBsuB,aAAc,MAExE,IAAMwC,EAAYP,EAAetJ,MAAK,SAAAhT,GAAI,OAAKwZ,EAAMxZ,MAC/C8c,EACJD,QAAkCxM,IAArBmJ,EAAMqD,GAA2BA,EAAY,KACxDL,GAAoBxC,GACtBnkB,EAAS,CAAE9J,KAAM,0BAA2BV,OAAO,IAGrD,IADA,IAAI0xB,EAAkB,EACbrqB,EAAI4pB,EAAe3pB,OAAS,EAAGD,GAAK,EAAGA,IAC9C,GAAIupB,GAAkBzC,EAAM8C,EAAe5pB,KAAM,CAC/CqqB,EAAkBrqB,EAClB,MA0BJ,OAvBA4I,qBAAU,WACJwhB,GACFV,EAAWU,KAEZ,CAACA,EAAWV,IACf9gB,qBAAU,WACR,GAAK0e,EAGL,IAFA,IAAIha,EAAOuc,EACP9B,EAAW,IACF,CACX,IAAMuC,EAAaxD,EAAMxZ,GACzB,QAAmBqQ,IAAf2M,EACF,OAAOnnB,EAAS,CAAE9J,KAAM,iBAAkBV,MAAO2U,EAAMya,aAClD,GAAmB,OAAfuC,EACT,OACK,GAA0B,IAAtBA,EAAWrqB,OAGpB,OAAOkD,EAAS,CAAE9J,KAAM,iBAAkBV,MAAO2U,EAAMya,aAFvDza,EAAOmZ,GAAQnZ,GAIjBya,OAED,CAAC5kB,EAAUmkB,EAAsBuC,EAAc/C,IAEhD,yBAAKpd,UAAU,oBACb,kBAACpS,GAAD,CAAU+K,WAAYonB,IACtB,yBAAK/f,UAAU,mBACVygB,GAAa,kBAAC5B,GAAD,OACd4B,GAAaL,GACb,oCACE,4BACGjf,EAAYyC,EAAKK,YADpB,IACkCL,EAAKI,eAEvC,yBAAKhE,UAAU,yBACb,kBAAC+e,GAAD,CAAW9d,UAAWsf,EAAW9e,QAAS8e,IAC1C,4BACE,kBAACtB,GAAD,CACEZ,SAAU,EACVa,MAAOgB,EACPjf,SAAU4e,GAAkBzC,EAAM8C,EAAe,KACjD1Y,SAAUqW,EACVpc,QAAS6e,IAEX,kBAACrB,GAAD,CACEZ,SAAU,EACVa,MAAOgB,EACPjf,SAAU4e,GAAkBzC,EAAM8C,EAAe,KACjD1Y,SAAUqW,EACVpc,QAAS6e,IAEX,kBAACrB,GAAD,CACEZ,SAAU,EACVa,MAAOgB,EACPjf,SAAU4e,GAAkBzC,EAAM8C,EAAe,KACjD1Y,SAAUqW,EACVpc,QAAS6e,KAGb,kBAACtB,GAAD,CAAW/d,UAAWuf,EAAW/e,QAAS+e,KAE5C,kBAACpB,GAAD,CACE9X,MAAO8Y,EACPxY,SA7FO,SAAC0W,GAClB2B,EAAM3B,GACN7kB,EAAS,CAAE9J,KAAM,cAAe2uB,UA4FtB7kB,SAAUA,EACV8O,IAAK2X,EAAerC,GACpB6B,sBACGW,GAAuBxC,GAAwB8C,OAsBhE,SAASE,GAAmBld,GAAiC,IACnD2a,EAAqB3a,EAArB2a,KAAM3lB,EAAegL,EAAfhL,WACRod,EAAWb,GAAgBW,8BAA8Bld,GACzDmoB,EAAiBxC,EAAKwC,eAAergB,MAAM,KAC3CpF,EAAOylB,EAAezM,MACtBzQ,EAAOkd,EAAe5T,KAAK,KACjB9M,EAAUD,qBAAWlC,GAAY1J,SAAzCY,OACF4rB,EAAuBpd,EAAM3L,YAAYgpB,4BAC3CC,EAAmBtd,EAAM3L,YAAYgpB,4BACnCE,EAAwBvd,EAAM3L,YAAYmpB,0BAC5CC,EAAezd,EAAM3L,YAAYqpB,yBAC/BC,GAA0BL,GAAoB,IAAIrwB,WAAW2F,OAC7DgrB,GAAsBH,GAAgB,IAAIxwB,WAAW2F,OACrDwnB,EAAkBpa,EAAMoa,gBACxByD,EACJ,yBACExhB,UAAS,kDACPshB,GAA0B,GAAK,mBAAqB,KAGtD,yBAAKthB,UAAU,mBACb,yBAAKA,UAAU,mBACb,wBAAIkG,MAAO6a,GACRE,EACD,4BAAQxR,OAAQ6R,EAAyB,IAAzC,QAEF,2BAAI1d,GACJ,2BAAIvI,GACJ,yBACE6K,MAAO6P,EACP/V,UAAS,oBACPkhB,EAAwB,mBAAqB,KAG/C,gCAASnL,IAGVmL,EACC,yBAAKlhB,UAAU,0BACb,+BACE,2BACErQ,KAAK,WACL6Y,QAAS7E,EAAM8d,UACfpd,SAAU,kBAAMV,EAAM+d,gBAExB,gCACGN,EACD,yBAAK3R,OAAQ8R,EAAqB,IAAlC,UAVc,GAiBtB,kBAAC,GAAD,CACErb,MAAOvC,EAAM3L,YAAY2pB,6BACzB9mB,KACE8I,EAAMie,WACJ,kBAAC/C,GAAD,MAEAlb,EAAM3L,YAAY2pB,6BAGtBtb,WAAY1C,EAAMie,WAClBzb,WAAU,iCACRxC,EAAMie,WAAa,iBAAmB,IAExCxb,aAAc,kBAAMzC,EAAMke,QAAQle,EAAM2a,YAWlD,OAJIgD,EAAyB,IAAMC,EAAqB,MACtDN,GAAoBA,GAAoB,IAAItB,MAAM,EAAG,IACrDyB,GAAgBA,GAAgB,IAAIzB,MAAM,EAAG,KAG7C,yBAAK3f,UAAU,gCACb,yBAAKA,UAAU,uBACb,4BACEA,UAAS,WACN+d,GAAmBpa,EAAMie,WACtB,wBACA,YAENngB,SACGsc,GAAmBpa,EAAMie,gBAAa3N,EAAYtQ,EAAMme,MAG3D,yBAAKngB,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACFhC,UAAS,WACsB,IAA7BiC,GAASzB,QAAQJ,GAAgB,UAAY,gBAE/CyB,KAAK,GACLC,SAAS,aAjBf,QAsBA,8BAEAic,EAAyCyD,EAAvB,kBAAC,GAAD,CAAQ3mB,KAAM,MAKxC,SAASknB,GAAoBpe,GAAgD,IAAD,EAMtEA,EAAMqe,iBAJRC,EAFwE,EAExEA,MACAlC,EAHwE,EAGxEA,WACAe,EAJwE,EAIxEA,eACAoB,EALwE,EAKxEA,uBAEInM,EAAWb,GAAgBW,8BAA8BkK,GACzDoC,EAAsBrB,EAAergB,MAAM,KAC3CpF,EAAO8mB,EAAoB9N,MAC3BzQ,EAAOue,EAAoBjV,KAAK,KAChCkV,EACJjhB,EAAYC,GAAkBZ,QAAQsgB,EAAejd,UAAU,EAAG,KAC9Dwe,EAAa1rB,SAASmqB,EAAejd,UAAU,EAAG,KACxD,OACE,yBAAK7D,UAAU,kDACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,oBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,sBACb,yBAAKA,UAAU,YACb,4BAAKoiB,GACL,4BAAKC,GACL,4BAAQriB,UAAU,2BAGtB,0DACA,2BAAI4D,GACJ,2BAAIvI,GACJ,yBAAK2E,UAAU,aACb,gCAAS+V,GACT,yBAAK/V,UAAU,qBAAqB+V,IAEtC,yBAAK/V,UAAU,qBACZkiB,EACG,2CACA,4BACH,IACD,yBAAKliB,UAAU,aACb,gCAASiiB,GACT,yBAAKjiB,UAAU,gBAAgBiiB,UAWjD,SAASK,KACP,OACE,yBAAKtiB,UAAU,6EACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBAAKoC,IAAKmgB,GAAapgB,IAAI,MAE7B,gEACA,iFAQZ,SAASqgB,KACP,OACE,yBAAKxiB,UAAU,6EACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBAAKoC,IAAKmgB,GAAapgB,IAAI,MAE7B,8EACA,uGAWZ,SAASsgB,GAAT,GAAyE,IAAlCjsB,EAAiC,EAAjCA,QACrC,OACE,yBAAKwJ,UAAU,6EACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBAAKoC,IAAKsgB,GAAoBvgB,IAAI,MAEpC,4BAAK3L,OAQjB,SAASmsB,GAA0Bhf,GAKjC,OACE,yBAAK3D,UAAU,gCACb,yBAAKA,UAAU,wBACb,4BACEA,UAAU,WACVyB,QAAS,kBAAMkC,EAAMlK,SAAS,CAAE9J,KAAM,0BAEtC,yBAAKgS,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACFhC,UAAU,eACV6B,KAAK,GACLC,SAAS,aATf,QAcA,8BAEF,yBAAK9B,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBACEmC,IAAI,GACJnC,UAAU,kBACVoC,IAAKwgB,MAGT,4BAAKjf,EAAMnN,SACX,kBAAC,GAAD,CACEqE,KAAM8I,EAAM6a,YAAc,oBAC1BpY,aAAc,kBACZzC,EAAMlK,SAAS,CAAE9J,KAAM,yBAEzBwW,WAAW,+CASzB,SAAS0c,GAAT,GAAuD,IAA7B7qB,EAA4B,EAA5BA,YAAa8qB,EAAe,EAAfA,KAC/BxjB,EAAaa,qBAAWlC,GACxBsD,EAAUpB,qBAAW5B,GAFyB,EAG1BU,qBAAWpI,GAAS,CAC5CumB,MAAO,GACPF,iBAAkB,KAClBc,UAAWpB,GAAa,IAAIxlB,MAC5BymB,qBAAsB,EACtBC,aAAc,KACdH,kBAAmB,KACnBI,gBAAiB,KACjBL,cAAe,KACfe,YAAY,EACZb,sBAAsB,IAb4B,mBAG7C9mB,EAH6C,KAGtC2C,EAHsC,KAe9CspB,EAAOpjB,iBAIV,CACDqjB,cAAc,EACdtqB,aAAcV,EAAYU,aAC1BuqB,iBAAiB,IAEnBF,EAAKnjB,QAAQlH,aAAeV,EAAYU,aACxC,IAwDM/G,EAAQ6Z,uBACZ,SAAC5H,GACC,IAAMsa,EAAQrB,GAAajZ,GAC3Bsa,EAAMlB,QAAQkB,EAAMha,UAAY,GAChC,IAAMia,EAAM,IAAI/mB,KAAK8mB,EAAM9Z,WAC3B+Z,EAAInB,QAAQmB,EAAIja,UAAY,GAC5BzK,EAAS,CACP9J,KAAM,gBACNuuB,MAAOta,EACPua,IAAKvB,GAAauB,KFl4BnB,SAAP,mCEo4BM6B,CAAW,CACTttB,UAAW4M,EAAW/K,SAASO,GAC/BirB,WAAY/nB,EAAYU,aACxBS,cAAenB,EAAYoB,YAC3B8pB,UAAWhF,EAAM9Z,UACjB+e,QAAShF,EAAI/Z,UACb4e,aAAcD,EAAKnjB,QAAQojB,eAE1BvoB,MAAK,SAAAhH,GACA,oBAAqBA,EAErBsvB,EAAKnjB,QAAQqjB,iBACbjrB,EAAYU,eAAiBqqB,EAAKnjB,QAAQlH,cAE1C6I,EAAQlE,iBAAiB5J,GAG3BgG,EAAS,CACP9J,KAAM,QACN8D,OACAyqB,MAAOtB,GAAasB,GACpBC,IAAKvB,GAAauB,QAIvBiF,OAAM,WACL7hB,EAAQlE,iBAAiB,CACvBlF,gBAAiB,6BACjBC,0BAA2B,4BAGjC2qB,EAAKnjB,QAAQojB,cAAe,IAE9B,CACEzhB,EACAjC,EAAW/K,SAASO,GACpBkD,EAAYoB,YACZpB,EAAYU,eAGhBwG,qBAAU,kBAAMzF,EAAS,CAAE9J,KAAM,kBAAkB,CACjDqI,EAAYU,eAEdwG,qBAAU,WACR,GAA+B,MAA3BpI,EAAM6mB,kBAAV,CACA,IAAIxe,GAAY,EAwBhB,OAvBArI,EAAM6mB,kBACHljB,MAAK,SAAAhH,GACA0L,IAEF,oBAAqB1L,GACI,yBAAzBA,EAAK0E,gBAELsB,EAAS,CACP9J,KAAM,iBACN6G,QAAS/C,EAAK2E,0BACdomB,WAAY/qB,EAAK4vB,yCAGnB9hB,EAAQlE,iBAAiB5J,OAG5B2vB,OAAM,WACDjkB,GACJoC,EAAQlE,iBAAiB,CACvBlF,gBAAiB,yBACjBC,0BAA2B,4BAG1B,WACL+G,GAAY,MAEb,CAACoC,EAASzK,EAAM6mB,oBACnB,IAAI2F,GAA+B,EAC/BnnB,EAA2B,KAqE/B,MApEoC,+BAAhCnE,EAAYG,gBACdgE,EAAU,kBAACmmB,GAAD,MAEsB,2BAAhCtqB,EAAYG,iBACoB,8BAAhCH,EAAYG,gBAEZgE,EACE,kBAACsmB,GAAD,CACEjsB,QAASwB,EAAYI,4BAGhBJ,EAAYK,uBACrBirB,GAAsB,EACtBnnB,EACE,kBAAC4lB,GAAD,CACEC,iBAAkBhqB,EAAYK,yBAGzBiH,EAAWxI,QAAU1I,EAAkBsJ,OAChDyE,EAAU,kBAACqmB,GAAD,MACD1rB,EAAM4mB,cACfvhB,EACE,kBAACwmB,GAAD,CACElpB,SAAUA,EACVjD,QAASM,EAAM4mB,cAAclnB,QAC7BgoB,WAAY1nB,EAAM4mB,cAAcc,aAG3B1nB,EAAMgnB,aACf3hB,EACE,kBAAC0kB,GAAD,CACEgB,QA7KU,SAACvD,GAAD,OACd7kB,EAAS,CACP9J,KAAM,qBACN4uB,QAASf,GAAY,CACnB+F,WAAYzsB,EAAMinB,gBAClBR,SAAUe,EAAKf,SACfxe,UAAWuf,EAAKvf,UAChBrM,UAAW4M,EAAW/K,SAASO,GAC/BgsB,eAAgBxC,EAAKwC,eACrBf,WAAY/nB,EAAYU,aACxB8qB,eAAgBtO,GAAgBW,8BAC9B7d,EAAYU,cAEd+qB,gBAAiBnF,EAAKoF,eACtBC,sBAAuB7sB,EAAM2nB,WAC7BtlB,cAAenB,EAAYoB,YAC3BwqB,YAAa5rB,EAAY6rB,kBA8JzBvF,KAAMxnB,EAAMgnB,aACZnlB,WAAYX,EAAYU,aACxBV,YAAaA,EACb4pB,WAAwC,OAA5B9qB,EAAM6mB,kBAClBmE,KAAM,WACJroB,EAAS,CAAE9J,KAAM,cAAe2uB,KAAM,OACtC7kB,EAAS,CACP9J,KAAM,aACN8D,KAAM,MAGViuB,WAAY,WACV5qB,EAAM2nB,WACFhlB,EAAS,CAAE9J,KAAM,UAAWV,OAAO,IACnCwK,EAAS,CAAE9J,KAAM,UAAWV,OAAO,KAEzCwyB,UAAW3qB,EAAM2nB,WACjBV,gBAAiBjnB,EAAMinB,kBAGlB+E,IACTC,EAAKnjB,QAAQqjB,iBAAkB,EAC/B9mB,EACE,kBAAC2jB,GAAD,CACErmB,SAAUA,EACV2jB,MAAOtmB,EAAMsmB,MACb4C,WAAYruB,EACZqsB,UAAWlnB,EAAMknB,UACjB+B,WAAY/nB,EAAYU,aACxBwkB,iBAAkBpmB,EAAMomB,iBACxBW,qBAAsB/mB,EAAM+mB,qBAC5BD,qBAAsB9mB,EAAM8mB,qBAC5BqC,MA1LQ,SAAC3B,IF5wBV,SAAP,oCE6wBIwF,CAAU,CACRvG,SAAUe,EAAKf,SACfwG,qBAAsBzF,EAAKvf,UAC3BilB,qBAAsB1F,EAAKvf,UAAYuf,EAAKf,SAC5CuD,eAAgBxC,EAAKwC,eACrB2C,gBAAiBnF,EAAKoF,eACtBvqB,cAAenB,EAAYoB,YAC3BwqB,YAAa5rB,EAAY6rB,eAExBppB,MAAK,SAAAhH,GACA,oBAAqBA,EACM,yBAAzBA,EAAK0E,gBACPsB,EAAS,CACP9J,KAAM,iBACN6G,QAAS/C,EAAK2E,0BACdomB,WAAY/qB,EAAK4vB,yCAEe,8BAAzB5vB,EAAK0E,iBACdoJ,EAAQlE,iBAAiB5J,GAEhB,oBAAqBA,GAChCgG,EAAS,CACP9J,KAAM,aACN8D,KAAMA,EAAKwwB,qBAIhBb,OAAM,WACL7hB,EAAQlE,iBAAiB,CACvBlF,gBAAiB,4BACjBC,0BAA2B,gCAgKjC,yBAAK4H,UAAU,sBACb,yBAAKA,UAAU,qBACZsjB,GACC,wBAAItjB,UAAU,0CACZ,4BAAQA,UAAU,kBACfhI,EAAYksB,kBAEf,4BAAQlkB,UAAU,mBAAlB,KACKhI,EAAYmsB,0CADjB,aAKHhoB,IAMM+B,ICriCX5F,GDqiCW4F,OAAMoC,KAAYuiB,I,UC7hCjC,SAASuB,GAAT,GAA+E,IAA5CpsB,EAA2C,EAA3CA,YAAa8qB,EAA8B,EAA9BA,KACxCxjB,EAAaa,qBAAWlC,GACxBhH,EAASkJ,qBAAW5B,GACtB3G,EAAgB0H,EAAW1H,eAAiB,GACxCT,EAAagJ,qBAAW7B,GAAxBnH,SAEFmG,EAAY,uCAAG,sCAAAxL,EAAA,6DACf6B,EAAY2L,EAAW3L,UACvBE,EAAiByL,EAAWzL,eAChCyE,GAAc,IAAI+rB,cAAW,CAC3BC,OAAQ/xB,oCACRgyB,WAAYhyB,oCACZiyB,YAAajyB,oCACbkyB,UAAWlyB,oCACXmyB,cAAenyB,oCACfoyB,kBACEpyB,oCACFqyB,MAAOryB,sCAXU,SAciB+F,GAAYusB,sBAC9ClxB,EACAE,GAhBiB,cAcbixB,EAda,UAoBXlmB,EAA8B,CAClC9J,GAAIjB,EACJkxB,UAAW/sB,EAAYgtB,QAAQlwB,GAC/B4I,QAAS1F,EAAYitB,eACrBzxB,OAAQ,YACR0xB,WAAY,GACZ7V,YAAa,CACX1f,KAAM,eACNkL,KAAM1D,EAASZ,OACXY,EAASA,EAASZ,OAAS,GAAG9C,KAA9B,iBACA,GACJwb,SAAU,UACV8V,UAAW,aAGfzsB,GAAY6sB,mBAAmBxxB,EAAWiL,GACpCwmB,EAAkBC,aAAY,WAEhCpuB,EAAO2F,kBAET0oB,cAAcF,KACgB,IAA7BptB,EAAYitB,gBACf3sB,GAAYitB,cAAc5xB,EAAWqE,EAAYgtB,SACjDQ,KAEFltB,GAAYmtB,sBAAsB9xB,EAAWE,GACzCixB,IACFY,EAAmB/xB,EAAWE,GACzBixB,EAAqBI,aAClBE,EAAkBC,aAAY,WAEhCpuB,EAAO2F,kBAET0oB,cAAcF,KACb,IAAIhuB,KAAK0tB,EAAqBa,cAAgB,IAAIvhB,UAAyC,IAA7BpM,EAAYitB,gBAAwB,IAAI7tB,MAAOgN,aAIpH9L,GAAYstB,kBACVjyB,EACAE,EACAgyB,GA7DiB,kBA+DZvtB,IA/DY,4CAAH,qDAN0D,SAwE7DotB,EAxE6D,gFAwE5E,WAAkC/xB,EAAWE,GAA7C,yBAAA/B,EAAA,6DACQ+F,EAA4B,GADpC,SAEqCS,GAAYwtB,eAC7CnyB,EACAE,GAJJ,OAEQkyB,EAFR,OAMQ3b,EAAOD,OAAOC,KAAK2b,GAChBzvB,EAAI,EAPf,YAOkBA,EAAI8T,EAAK7T,QAP3B,oBAS6B,WADnBC,EAAUuvB,EAAoB3b,EAAK9T,KAC7B2Y,SAThB,qBAUUrX,EAAcpB,EAAQwvB,QAVhC,iBAWQxvB,EAAQ6F,KAAOzE,EAAcpB,EAAQwvB,QAX7C,yCAaiC1tB,GAAY2tB,cACnC3mB,EAAW3L,UACX6C,EAAQwvB,QAflB,QAacE,EAbd,OAiBQtuB,EAAcpB,EAAQwvB,QAAUE,EAChC1vB,EAAQ6F,KAAO6pB,GAAc,GAlBrC,QAoBMruB,EAAe1H,KAAK,CAClBsG,QAAS,MACTgG,UAAW,QACX3H,GAAIyE,IACJ7C,SAAS,EACTjD,KAAM,CACJywB,iBAAkB1tB,EAAQqE,KAC1B5C,iBAAkB,WAClBqE,cAAe,OACfD,KAAM7F,EAAQ6F,KACdjD,YAAa,GACbE,iBAAkB,IAEpBqB,kBAAkB,IAAIvD,MAAOwD,gBAjCrC,wBAmCoC,YAArBpE,EAAQyY,UACjBpX,EAAe1H,KAAK,CAClBsG,QAAS,UACTgG,UAAW,UACX3H,GAAIyE,IACJ7C,SAAS,EACTjD,KAAM,CACJoH,KAAMrE,EAAQqE,MAEhBF,kBAAkB,IAAIvD,MAAOwD,gBA5CrC,QAOmCtE,IAPnC,uBAgDEW,EAAOyF,gBACL7E,EACAD,EACAC,EAAetB,OAASjI,EAAoB,IAnDhD,6CAxE4E,sBA+H5E,SAASiL,IACP,OACoB,WAAhB7I,KAAKC,WAA2B,GAAGC,SAAS,KAC5B,WAAhBF,KAAKC,WAA2B,GAAGC,SAAS,IAIlD,IAAM40B,EAAqB,WACzB,IAIIW,EAJAxyB,EAAY2L,EAAW3L,UACvBE,EAAiByL,EAAWzL,eAE5BuyB,EAAkB,GAEtBjvB,EAASoiB,SAAQ,SAAC/iB,GAChB,IAAI6vB,EACkB,YAApB7vB,EAAQC,QAAwB,cAAgB,YAEhDD,EAAQ/C,KAAK6yB,WACiB,kBAA9B9vB,EAAQ/C,KAAK8yB,cAEbJ,EAAgB,CACdx2B,KAAM6G,EAAQ/C,KAAK8yB,aACnBtX,SAAUoX,EACVtB,UAAW,OACXuB,UAAW9vB,EAAQ/C,KAAK6yB,UACxBX,aAAcnvB,EAAQmE,kBAExByrB,EAAgBj2B,KAAKg2B,IAErB3vB,EAAQ/C,KAAK6yB,WACiB,QAA9B9vB,EAAQ/C,KAAK8yB,cAEbJ,EAAgB,CACdx2B,KAAM6G,EAAQ/C,KAAK8yB,aACnBtX,SAAUoX,EACVtB,UAAW,OACXh0B,IAAKyF,EAAQ/C,KAAK1C,IAClBu1B,UAAW9vB,EAAQ/C,KAAK6yB,UACxBpgB,MAAO1P,EAAQ/C,KAAKyS,MACpByf,aAAcnvB,EAAQmE,kBAExByrB,EAAgBj2B,KAAKg2B,IAErB3vB,EAAQ/C,KAAK+yB,cACiB,qBAA9BhwB,EAAQ/C,KAAK8yB,cAEbJ,EAAgB,CACdx2B,KAAM6G,EAAQ/C,KAAK8yB,aACnBtX,SAAUoX,EACVtB,UAAW,OACXyB,aAAchwB,EAAQ/C,KAAK+yB,aAC3BtgB,MAAO1P,EAAQ/C,KAAKyS,MACpByf,aAAcnvB,EAAQmE,kBAExByrB,EAAgBj2B,KAAKg2B,IAErB3vB,EAAQ/C,KAAKgzB,WACiB,kBAA9BjwB,EAAQ/C,KAAK8yB,cAEbJ,EAAgB,CACdx2B,KAAM6G,EAAQ/C,KAAK8yB,aACnBtX,SAAUoX,EACVtB,UAAW,OACX0B,UAAWjwB,EAAQ/C,KAAKgzB,UACxBC,UAAWlwB,EAAQ/C,KAAKizB,UACxBf,aAAcnvB,EAAQmE,kBAExByrB,EAAgBj2B,KAAKg2B,IACiB,aAA7B3vB,EAAQ/C,KAAKyE,aACtBiuB,EAAgB,CACdx2B,KAAM6G,EAAQ/C,KAAKyE,YACnB+W,SAAUoX,EACVtB,UAAW,OACXlB,aAAcrtB,EAAQ/C,KAAKowB,aAC3BK,iBAAkB1tB,EAAQ/C,KAAKywB,iBAC/BxrB,aAAclC,EAAQ/C,KAAKiF,aAC3BN,0BAA2B5B,EAAQ/C,KAAK2E,0BACxC+rB,0CACE3tB,EAAQ/C,KAAK0wB,0CACfhsB,gBAAiB3B,EAAQ/C,KAAK0E,gBAC9B6oB,4BAA6BxqB,EAAQ/C,KAAKutB,4BAC1CW,6BACEnrB,EAAQ/C,KAAKkuB,6BACfR,0BAA2B3qB,EAAQ/C,KAAK0tB,0BACxCE,yBAA0B7qB,EAAQ/C,KAAK4tB,yBACvCsE,aAAcnvB,EAAQmE,kBAEpBnE,EAAQ/C,KAAK4E,wBACf8tB,EAAc9tB,sBACZ7B,EAAQ/C,KAAK4E,uBAEjB+tB,EAAgBj2B,KAAKg2B,KAErBA,EAAgB,CACdx2B,KAAM,eACNsf,SAAUoX,EACVtB,UAAW,OACXlqB,KAAMrE,EAAQ/C,KAAKywB,iBACf1tB,EAAQ/C,KAAKywB,iBACb1tB,EAAQ/C,KAAKoH,KACjB8qB,aAAcnvB,EAAQmE,kBAExByrB,EAAgBj2B,KAAKg2B,OAGzB7tB,GAAYktB,mBAAmB7xB,EAAWE,EAAgBuyB,IAGtDP,EAAyB,uCAAG,WAAMrvB,GAAN,eAAA1E,EAAA,yDACP,UAArB0E,EAAQyY,SADoB,qBAG1BrX,EAAcpB,EAAQwvB,QAHI,gBAI5BxvB,EAAQ6F,KAAOzE,EAAcpB,EAAQwvB,QAJT,uCAMH1tB,GAAY2tB,cACnC3mB,EAAW3L,UACX6C,EAAQwvB,QARkB,OAMtBE,EANsB,OAU5BtuB,EAAcpB,EAAQwvB,QAAUE,EAChC1vB,EAAQ6F,KAAO6pB,GAAc,GAXD,QAa9BjvB,EAAOmF,iBACL,CAAED,QAAS3F,EAAQqE,MACnBrE,EACAoB,GAhB4B,wBAmB9BX,EAAO0F,eACL,CAAER,QAAS3F,EAAQqE,MACnBvM,EACAgR,EAAW1H,eAtBiB,4CAAH,sDA2C/B,OAhBAsH,qBAAU,WAAM,4CAEd,4BAAApN,EAAA,4FAQ4BwL,IAR5B,OAQQhF,EARR,OASErB,EAAOqG,aAAahF,GATtB,4CAFc,sBACTwqB,GADS,mCAad6D,KACC,CAAC1vB,IAGF,0BACE+I,UACEhI,EAAYksB,kBAAoBlsB,EAAYksB,iBAAiB3tB,OAAS,EAClE,+FACA,wEAGLyB,EAAYksB,kBAKJhmB,WAAMoC,KAA2B8jB,IC9SzC,IAAMwC,GAAb,oC,8bAAA,8JAIEC,WAA2C3oB,cAJ7C,4CAME,WACE,OACE,wBACEpJ,GAAInG,KAAKgV,MAAM7O,GACfkL,UAAU,8FAEV,wBAAMA,UAAU,uBACd,8BAASrR,KAAKgV,MAAMuC,QAEtB,wBAAMlG,UAAU,sBAAsBrR,KAAKgV,MAAMmjB,UACjD,8BACGn4B,KAAKgV,MAAMojB,MAAQp4B,KAAKgV,MAAMqjB,UAC7B,qBACEhnB,UAAU,kBACV4P,KAAMjhB,KAAKgV,MAAMojB,KACjBlX,IAAI,sBACJ7H,OAAO,UAENrZ,KAAKgV,MAAMqjB,gBAxB1B,GAAoC9oB,iB,OCI7B,IAAM+oB,GAAb,oC,8bAAA,8JAIWnwB,MAA8B,CACrCowB,WAAW,GALf,EAiBEC,eAAiB,SAACC,GAChB,EAAKzjB,MAAM0jB,cAAcD,GACzB,EAAKjZ,SAAS,CACZ+Y,WAAW,KApBjB,uDAQE,WACE,IAAMI,EAAiBvmB,SAAS2F,cAAc,oBAC9C,GAAI4gB,EAAgB,CAClB,IAAMC,EAAmBD,EAAeE,QAAQ,sBAC5CD,GACFA,EAAiB/O,oBAbzB,oBAuBE,WACE,OACG7pB,KAAKmI,MAAMowB,WACV,0BAAMlnB,UAAU,oBACd,uBACEA,UAAU,kDACVyB,QAAS9S,KAAKw4B,eAAe5V,KAAK5iB,KAAMA,KAAKgV,MAAM8jB,UAElD94B,KAAKgV,MAAM8jB,SAEd,uBAAGhmB,QAAS9S,KAAKw4B,eAAe5V,KAAK5iB,KAAMA,KAAKgV,MAAM+jB,SACnD/4B,KAAKgV,MAAM+jB,aAlCxB,GAAoCxpB,IAAMkH,W,OCA1C,SAASuiB,GAAiBhkB,GACxB,IAAMpC,EAAUpB,qBAAW5B,GACrB0C,EACJd,qBAAWlC,GAAYnH,QAAU1I,EAAkBsJ,QAAUiM,EAAM1C,SAHd,EAI5BsF,oBAAS,GAJmB,mBAIhDmY,EAJgD,KAIzCkJ,EAJyC,KAcvD,OACE,0BAAM5nB,UAAU,sDACd,2BAAI2D,EAAM9I,MACV,4BACEoG,SAAUA,EACVjB,UAAU,mCACVyB,QAAS,kBAAMmmB,GAAU,KAExBjkB,EAAM6a,aAEPvd,GAAYyd,GACZ,kBAAC,GAAD,CACE/lB,WAAYsK,GACZoZ,WAtBa,SAAC1jB,EAAqBkvB,GACzCD,GAAU,GACLjvB,GAAekvB,IACpBtmB,EAAQzE,eAAenE,GACvB4I,EAAQrF,OAAO,CACbC,QAAS0rB,EACTnvB,aAAcC,SAuBLuF,WAAMoC,KAA6BqnB,IChDrCG,GAAb,kCCeA,SAASC,GAAcpkB,GACrB,IAAM5O,EAAUoL,qBAAWlC,GAAY1J,SAASQ,QAChD,OACE,uBAAGiL,UAAU,mBACO,QAAjB2D,EAAMqkB,QACL,oCACGjzB,EADH,KACc+yB,GAAQ30B,IAAIwQ,EAAMtI,OAGhB,YAAjBsI,EAAMqkB,QACL,kBAACC,GAAD,CAAkBvxB,QAASiN,EAAMjN,QAAS2E,KAAMsI,EAAMtI,QAM9D,SAAS4sB,GAAiBtkB,GACxB,IAAMukB,EAAS/nB,qBAAW7B,GAAqBpH,cACzCjD,EAAoBkM,qBAAWlC,GAAYnH,MAC3CyK,EAAUpB,qBAAW5B,GAC3B,OAAIoF,EAAMjN,QACD,YAAcoxB,GAAQ30B,IAAIwQ,EAAMtI,MAC9B6sB,EACLj0B,IAAsB7F,EAAkBmK,SAExC,oCACE,4BAAQyH,UAAU,iCAAlB,mBAOF,oCACE,4BAAQA,UAAU,iCAAlB,wBAEU,IACV,4BACEA,UAAU,uBACVyB,QAASF,EAAQnE,mBAFnB,mBAUC,aD9DE0qB,GACJ30B,IAAM,SAAC+U,GAAyD,IA+BjEigB,EA/BuBC,EAAyC,wDAC9DC,EAAa,SAACC,EAAuBC,EAAaC,GACtD,IAAMC,EAAMX,GAAQY,WAAWJ,GAC3BA,EAAiBC,EAAKI,GACtBL,EACEr5B,EAASu5B,EAAQI,SAAWJ,EAAQI,QAAQL,IAASA,EAC3D,OAAOE,EAAIrhB,QAAQ,MAAOnY,IAEtB45B,GAAU,IAAIzxB,MAAOgN,UACrBR,EAAO,IAAIxM,KAAK8Q,GAAO9D,UAGvB0kB,EAAc,CAClBC,IAAK,QACLC,KAAM,UACNC,KAAM,UACNxjB,MAAO,WACPyjB,OAAQ,WACRxjB,QAAS,aACT5B,MAAO,UACPqlB,OAAQ,YACRC,UAAW,KACXC,cAAe,KACfC,QAAS,WACTC,UAAW,MACXC,cAAe,WACfC,mBAAexV,EACflQ,KAAM,SACN2lB,MAAO,YAEHf,EAAiBE,EAAUjlB,EAE3B0lB,EAAU54B,KAAKi5B,IAAIhB,GAAkB,IACrCjjB,EAAU4jB,EAAU,GACpB7jB,EAAQC,EAAU,GAClBsjB,EAAOvjB,EAAQ,GACfikB,EAAQV,EAAO,IACfY,OAC0B3V,IAA9B6U,EAAYW,cAA8B,IAAMX,EAAYW,cAG1DI,EAASf,EAAYM,UACrBU,EAAShB,EAAYS,UA2BzB,OAzBInB,GACEO,EAAiB,IACnBkB,EAASf,EAAYO,cACrBS,EAAShB,EAAYU,eAsBR,cAlBjBrB,EACGmB,EAAU,IACTjB,EAAWS,EAAYQ,QAAS54B,KAAKq5B,MAAMT,GAAUR,IACtDQ,EAAU,IAAMjB,EAAWS,EAAYI,OAAQ,EAAGJ,IAClDpjB,EAAU,IACT2iB,EAAWS,EAAYpjB,QAAShV,KAAKq5B,MAAMrkB,GAAUojB,IACtDpjB,EAAU,IAAM2iB,EAAWS,EAAYG,KAAM,EAAGH,IAChDrjB,EAAQ,IACP4iB,EAAWS,EAAYrjB,MAAO/U,KAAKq5B,MAAMtkB,GAAQqjB,IAClDrjB,EAAQ,IAAM4iB,EAAWS,EAAYC,IAAK,EAAGD,IAC7CE,EAAO,IACNX,EAAWS,EAAYE,KAAMt4B,KAAKq5B,MAAMf,GAAOF,IAChDE,EAAO,IAAMX,EAAWS,EAAYhlB,MAAO,EAAGglB,IAC9CE,EAAO,KACNX,EAAWS,EAAYK,OAAQz4B,KAAKq5B,MAAMf,EAAO,IAAKF,IACvDY,EAAQ,KAAOrB,EAAWS,EAAY/kB,KAAM,EAAG+kB,IAChDT,EAAWS,EAAYY,MAAOh5B,KAAKq5B,MAAML,GAAQZ,IAG/C,CAACe,EAAQ1B,GAAOjb,KAAK0c,GACrB,CAACC,EAAQ1B,EAAO2B,GAAQ5c,KAAK0c,IAxExB9B,GAgFJY,WAAa,SAACsB,GACnB,OACEA,GACsC,sBAAtC,GAAGp5B,SAASq5B,KAAKD,ICjBR9rB,WAAMoC,KAA0BynB,ICpDxC,IAAMmC,GAAb,oC,8bAAA,8JAIWpzB,MAA+B,CACtCqzB,QAAQ,GALZ,EAiBEhD,eAAiB,SAACC,GAChB,EAAKzjB,MAAM0jB,cAAcD,GACzB,EAAKjZ,SAAS,CACZgc,QAAQ,KApBd,uDAQE,WACE,IAAM7C,EAAiBvmB,SAAS2F,cAAc,oBAC9C,GAAI4gB,EAAgB,CAClB,IAAMC,EAAmBD,EAAeE,QAAQ,sBAC5CD,GACFA,EAAiB/O,oBAbzB,oBAuBE,WACE,OACG7pB,KAAKmI,MAAMqzB,QACV,0BAAMnqB,UAAU,8BACd,uBACEA,UAAU,kDACVyB,QAAS9S,KAAKw4B,eAAe5V,KAAK5iB,KAAMA,KAAKgV,MAAMymB,gBAElDz7B,KAAKgV,MAAMymB,oBA/BxB,GAAqClsB,IAAMkH,WCPpC,IAAMilB,GAAb,oC,8bAAA,8JACExD,WAA2C3oB,cAD7C,4CAGE,WACE,OACE,wBACEpJ,GAAInG,KAAKgV,MAAM7O,GACfkL,UAAU,8FAEV,4BAAOrR,KAAKgV,MAAMmjB,eAT1B,GAAiC5oB,iBC8BjC,SAASosB,GAAT,GAAuE,IAArD9zB,EAAoD,EAApDA,QAASmW,EAA2C,EAA3CA,WAAY4d,EAA+B,EAA/BA,UAC/BjrB,EAAaa,qBAAWlC,GADsC,EAE9BsI,mBAAS,GAFqB,mBAE7DikB,EAF6D,KAEhDC,EAFgD,KAG9D3yB,EAAOwH,EAAWxH,MAAQwH,EAAWxI,QAAU1I,EAAkBsJ,OACnEgzB,GAAa,EAejB,GAdAxrB,qBAAU,WACR,GAAKpH,EAAL,CACA,IAAMiQ,EAAW,kBAAM0iB,GAAe,SAAAnpB,GAAK,OAAIA,EAAQ,MAEvD,OADA9R,OAAOsX,iBAAiB,SAAUiB,GAC3B,kBAAMvY,OAAOuX,oBAAoB,SAAUgB,OACjD,CAACjQ,IACJ6yB,2BAAgB,WACd,GAAK7yB,GAAS4yB,EAAd,CACA,IAAM5iB,EAAY/G,SAAS6pB,eAAe,4BACpCrD,EAAmBxmB,SAAS6pB,eAAep0B,EAAQ1B,IACvC,OAAdgT,GAA2C,OAArByf,GAC1BgD,EAAUhD,EAAiB1gB,aAAeiB,EAAUjB,aAAe,OAClE,CAAC/O,EAAMtB,EAAQ1B,GAAI41B,EAAYH,EAAWC,IAC7CtrB,qBAAU,kBAAM,kBAAMqrB,GAAU,MAAQ,CAACA,KACpCzyB,EAAM,OAAO,KAClB,GAAwB,QAApBtB,EAAQC,QACV,OAAO,KAET,IAAMuB,EAAcxB,EAAQ/C,KAC5B,MAAqC,aAAjCuE,EAAYC,iBAAwC,KACtB,kBAA9BD,EAAYsE,eACdouB,EAA+C,kBAAlC1yB,EAAYoV,oBAGrB,kBAAC,GAAD,CACEpc,QAASgH,EAAY6U,oBACrBjF,SAAU,SAAAuB,GAAM,OACdwD,EAAW,CACTxQ,QAASgN,EAAO5B,YAChBuF,sBAAuB3D,EAAOrU,QAMD,iBAA9BkD,EAAYsE,eACrBouB,EAA+C,kBAAlC1yB,EAAYoV,kBAEW,kBAAlCpV,EAAYoV,mBACV,kBAAC,GAAD,CACExF,SAAU,SAAA5W,GAAO,OACf2b,EAAW,CACTxQ,QAASnL,EAAQiF,KAAI,SAAAkT,GAAM,OAAIA,EAAO5B,eAAa2F,KAAK,MACxDC,qCAAsCnc,EAAQiF,KAC5C,SAAAkT,GAAM,OAAIA,EAAOrU,SAIvBkU,IAAKhR,EAAY+U,qBACjB9R,IAAKjD,EAAYgV,qBACjBhc,QAASgH,EAAY6U,uBAKpB,KA+CX,SAASge,GAAkBr0B,EAAkBssB,GAC3C,GAAwB,YAApBtsB,EAAQC,QACV,OACE,kBAAC,GAAD,CAAsB6Z,UAAW9Z,EAAQ1B,GAAI+F,KAAMrE,EAAQ/C,KAAKoH,OAGpE,IAjD0B/F,EAAY2xB,EAAmBqE,EAiDnD9yB,EAAcxB,EAAQ/C,KAC5B,GAAI,SAAUuE,EACZ,OACE,kBAAC,GAAD,CAAsBsY,UAAW9Z,EAAQ1B,GAAI+F,KAAM7C,EAAY6C,OAGnE,GAAqC,YAAjC7C,EAAYC,iBACd,MAAiC,kBAA7BD,EAAYuuB,cAxDQzxB,EA0DpB0B,EAAQ1B,GA1DwB2xB,EA2DhCzuB,EAAYyuB,UA3DuCqE,EA4DnD9yB,EAAY0uB,UA1DhB,6BACE,kBAAC,GAAD,CACE9V,UAAU,EACVmB,SAAU,CACRC,IAAKyU,EACLxU,IAAK6Y,GAEPh2B,GAAIA,EACJqc,YAAa,MAoDuB,kBAA7BnZ,EAAYuuB,aA9C3B,SAA4BzxB,EAAYsN,EAAa8D,GACnD,OAAO,kBAAC,GAAD,CAAcwN,SAAUtR,EAAKwR,WAAY1N,EAAOpR,GAAIA,IA8ChDi2B,CACLv0B,EAAQ1B,GACRkD,EAAYsuB,UACZtuB,EAAYkO,OAEwB,qBAA7BlO,EAAYuuB,aAhD3B,SAA+BzxB,EAAY/D,EAAamV,GACtD,OAAO,kBAAC,GAAD,CAAiBpR,GAAIA,EAAIsf,YAAarjB,EAAKmV,MAAOA,IAgD9C8kB,CACLx0B,EAAQ1B,GACRkD,EAAYwuB,aACZxuB,EAAYkO,OAEwB,QAA7BlO,EAAYuuB,aAlD3B,SACEzxB,EACA/D,EACA2iB,EACAxN,GAEA,OACE,kBAAC,GAAD,CACE0N,WAAW,GACXF,SAAUA,EACVoB,SAAU,CACR5O,MAAOA,GAAS,GAChBnV,IAAKA,GAEP+D,GAAIA,IAqCGm2B,CACLz0B,EAAQ1B,GACRkD,EAAYjH,IACZiH,EAAYsuB,UACZtuB,EAAYkO,OAIZ,kBAAC,GAAD,CACEoK,UAAW9Z,EAAQ1B,GACnB+F,KAAM7C,EAAYksB,mBAInB,GAAqC,aAAjClsB,EAAYC,iBACrB,MAAkC,cAA9BD,EAAYsE,cAEZ,kBAAC,GAAD,CACE2E,UAAW6hB,EACXjoB,KAAM7C,EAAYksB,iBAClB1F,WAAYxmB,EAAYkzB,cAK1B,kBAAC,GAAD,CACE5a,UAAW9Z,EAAQ1B,GACnB+F,KAAM7C,EAAYksB,mBAKxB,GAAgC,aAA5BlsB,EAAYE,YACd,OAAO,kBAAC,GAAD,CAAgBF,YAAaA,EAAa8qB,KAAMA,IAClD,GAAgC,gBAA5B9qB,EAAYE,YACrB,OACE,kBAAC,GAAD,CACE4uB,SAAU9uB,EAAYksB,iBACtBhe,MAAOlO,EAAYkO,MACnB6gB,KAAM/uB,EAAYmzB,oBAClBnE,SAAUhvB,EAAYozB,yBACtBt2B,GAAI0B,EAAQ1B,KAGX,GAAgC,iBAA5BkD,EAAYE,YACrB,OACE,kBAAC,GAAD,CAAa4uB,SAAU9uB,EAAYksB,iBAAkBpvB,GAAI0B,EAAQ1B,KAE9D,GAAgC,qBAA5BkD,EAAYE,YACrB,OACE,kBAAC,GAAD,CACEoY,UAAW9Z,EAAQ1B,GACnB+F,KAAM7C,EAAYksB,mBAGjB,GAAgC,aAA5BlsB,EAAYE,YACrB,OAAO,kBAAC,GAAD,CAAgBF,YAAaA,EAAa8qB,KAAMA,IAEvD,MAAM,IAAIjtB,MAAM,mBAKtB,SAASw1B,GAAT,GAMI,IALF70B,EAKC,EALDA,QACAmW,EAIC,EAJDA,WAKA,GAAwB,YAApBnW,EAAQC,QAAuB,OAAO,KAC1C,IAAMuB,EAAcxB,EAAQ/C,KAC5B,MAAqC,WAAjCuE,EAAYC,iBAAsC,KACtB,gBAA5BD,EAAYE,YAEZ,kBAAC,GAAD,CACEwvB,OAAQ1vB,EAAYszB,iBACpBjE,cAAe,SAAAlrB,GAAO,OAAIwQ,EAAW,CAAExQ,aACvCsrB,QAASzvB,EAAYuzB,qBAGY,iBAA5BvzB,EAAYE,YAEnB,kBAAC,GAAD,CACEkyB,cAAepyB,EAAYwzB,uBAC3BnE,cAAe,SAAAlrB,GAAO,OAAIwQ,EAAW,CAAExQ,eAIpC,KAIX,SAASsvB,GAAUpf,GACjB,OAAOA,EAAI,EAAIA,EAAEzb,WAAa,IAAMyb,EAAEzb,WAGxC,SAAS86B,GAAal1B,GACpB,GAAwB,QAApBA,EAAQC,QAAmB,CAC7B,IAAMuB,EAAcxB,EAAQ/C,KAC5B,GAAqC,WAAjCuE,EAAYC,kBACkB,aAA5BD,EAAYE,YAA4B,OAGhD,IAAM0L,EAAO,IAAIxM,KAAKZ,EAAQmE,kBACxBgxB,EAAa,IAAIv0B,KACrBwM,EAAKI,cACLJ,EAAKK,WACLL,EAAKM,WAEDuB,EAAQ7B,EAAKgoB,WACbvwB,EAAI,UAAMowB,GACJ,IAAVhmB,EAAc,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,GADrC,YAELgmB,GAAU7nB,EAAKioB,cAFV,YAE2BpmB,GAAS,GAAK,KAAO,MAC1D,OAAI7B,EAAKQ,UAAYunB,EAAWvnB,UACvBR,EAAKkoB,qBAAuB,IAAMzwB,EAElCA,EAqBX,SAAS0wB,GAAT,GAA+E,IAAtDt4B,EAAqD,EAArDA,KAAMqvB,EAA+C,EAA/CA,KAAMrtB,EAAyC,EAAzCA,QAASwB,EAAgC,EAAhCA,OAAQ+0B,EAAwB,EAAxBA,cAC9C1sB,EAAaa,qBAAWlC,GACxBzH,EAAU/C,EAAKA,KAFuD,EAGhD8S,oBAAkB,GAH8B,mBAGrE0lB,EAHqE,KAG7D1B,EAH6D,KAItE2B,EAASpJ,GACb,kBAACwH,GAAD,CAAQ9zB,QAAS/C,EAAMkZ,WAAY1V,EAAOiF,OAAQquB,UAAWA,IAE/D,GAxBF,SAA+B92B,GAC7B,IAAMuE,EAAcvE,EAAKA,KACzB,GAAgC,qBAA5BuE,EAAYE,YAAoC,CAClD,IAAM2C,EAAO7C,EAAYksB,iBACzB,GAAa,OAATrpB,QAA0BoZ,IAATpZ,GAA+B,KAATA,EACzC,OAAO,EAGX,OAAO,EAgBHsxB,CAAsB14B,GACxB,OAAO,wBAAIuM,UAAU,WARqD,IANrDmQ,EAAmBic,EAiBpCC,EADoB/sB,EAAW/K,SAA7BY,OACgBiS,QAAQ,IAAK,IAC/BklB,EAAI31B,SAAS01B,EAAUxoB,UAAU,EAAG,GAAI,IAAM,IAC9C0oB,EAAI51B,SAAS01B,EAAUxoB,UAAU,EAAG,GAAI,IAAM,IAC9C4T,EAAI9gB,SAAS01B,EAAUxoB,UAAU,EAAG,GAAI,IAAM,IACpD,OACE,wBACE7D,UAAS,UACU,QAAjBvM,EAAKgD,QAAL,mBACgBw1B,EAAS,iBAAmB,IACxC,YAHG,YAIL,KAAQK,EAAI,KAAQC,EAAI,KAAQ9U,GAAK,GAAM,GAAK,eAEpD,yBAAKzX,UAAS,UAAKisB,EAAS,uBAAyB,gBACjC,QAAjBx4B,EAAKgD,UAAsBhD,EAAKgJ,WAC/B,0BAAMuD,UAAU,WACd,yBAAKmC,IAAI,MAAMC,IAAK3M,KAGJ,UAAnBhC,EAAKgJ,WACJjG,EAAQ6F,MACR7F,EAAQ6F,KAAKmwB,cACX,0BAAMxsB,UAAU,sBACd,yBAAKmC,IAAI,MAAMC,IAAK5L,EAAQ6F,MAAQ7F,EAAQ6F,KAAKmwB,gBAGnC,UAAnB/4B,EAAKgJ,WACJjG,EAAQ6F,OACP7F,EAAQ6F,KAAKmwB,cACZ,0BAAMxsB,UAAU,0BA7CHmQ,EA8CM3Z,EAAQ6F,KAAK8T,UA9CAic,EA8CW51B,EAAQ6F,KAAK+vB,WA7C1Djc,EAAYA,EAAU,GAAK,KAC3Bic,EAAWA,EAAS,GAAK,KAClB5mB,gBA8CT,yBAAKxF,UAAU,oBAAoBkG,MAAOwlB,GAAaj4B,IACpDu4B,GACC,kBAAC,GAAD,CACE3wB,KAAMjE,KAAKlE,MAAMO,EAAKkH,kBACtBqtB,OAAQv0B,EAAKgD,QACbC,SAAUosB,GAAQrvB,EAAKiD,UAG3B,yBAAKsJ,UAAU,kBAAkB6qB,GAAkBp3B,EAAMqvB,KAE1DA,GAAQ,kBAACuI,GAAD,CAAe70B,QAAS/C,EAAMkZ,WAAY1V,EAAOiF,UAE3DgwB,GAKQhuB,WAAMoC,KAAYyrB,IC/UjC,SAASU,GAAT,GAA6D,IAAjCh3B,EAAgC,EAAhCA,QAC1B,OACE,wBAAIuK,UAAU,YACZ,0BAAMA,UAAU,WACd,yBAAKmC,IAAI,MAAMC,IAAK3M,KAEtB,yBAAKuK,UAAU,qBACb,0BAAMA,UAAU,uDACd,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,yBAmDzB,SAAS0sB,GAAY10B,GACnB,IAAI20B,GAAY,EAIhB,OAHI30B,GAAgD,WAAjCA,EAAYC,mBAC7B00B,EAAwC,qBAA5B30B,EAAYE,aAEnBy0B,EAGT,SAASC,GAAWjpB,GAClB,IAOI3L,EAPEsH,EAAaa,qBAAWlC,GACxBhH,EAASkJ,qBAAW5B,GACpB9I,EAAU6J,EAAW/K,SAASkB,SAAW4M,GAHf,EAIJlC,qBAAW7B,GAA/BnH,EAJwB,EAIxBA,SAAUrB,EAJc,EAIdA,MACZgB,EAAQqJ,qBAAWlC,GAAYnH,MACjC+1B,EAAQ/1B,IAAU1I,EAAkBmK,SAClC8W,EAAclY,EAASA,EAASZ,OAAS,GAE3C8Y,IACFrX,EAAcqX,EAAY5b,MAG1B6L,EAAWrN,SACXqN,EAAWxI,QAAU1I,EAAkBmK,UAClB,eAArB+G,EAAWxI,QAEX+1B,EAAQH,GAAY10B,IAElBA,GAAeA,EAAYqE,OAC7BwwB,EAAQH,GAAY10B,IAEtB,IA/GAtD,EACAiG,EA8GMqxB,EAhDR,SAA8B70B,GAG5B,IAFA,IAAIqB,GAAO,EACPwsB,GAAW,EAET1uB,EAAIa,EAASZ,OAAS,EAC1BD,GAAK,KAAe,IAATkC,IAA2B,IAAbwsB,GACzB1uB,IAE4B,YAAxBa,EAASb,GAAGG,QACduuB,EAAU1uB,EACuB,QAAxBa,EAASb,GAAGG,UACrB+B,EAAMlC,GAGV,OAAO,SAAC4iB,GAAD,OACJ1gB,GAAO0gB,GAAS8L,GAAW9L,GAAW8L,GAAW9L,GAAS1gB,GAAO0gB,GAiC9C4T,CAAqB31B,GAC3BiJ,EAAUD,qBAAWlC,GAAY1J,SAAzCY,OACR,OACE,yBACE6K,UAAS,wBACsB,IAA7BiC,GAASzB,QAAQJ,GAAgB,gBAAkB,KAGrD,yBAAKqP,OAAQtY,EAASZ,SAAWT,EAAOmK,MAAO,CAAE8sB,UAAW,WAA5D,eAGA,wBAAI/sB,UAAU,sBACX7I,EAASlB,KAAI,SAACO,EAAS0iB,GAAV,OACZ,kBAAC,GAAD,CACE3Q,IAAK2Q,EACLzlB,KAAM+C,EACNS,OAAQA,EACR6rB,KAAMtsB,IAAY6Y,EAClB2c,cAAeA,EAAc9S,GAC7BzjB,QAAS6J,EAAW/K,SAASkB,SAAW4M,SAG1CwqB,GACU,OAAV/1B,GAjGV,SAAqBN,EAAmBgG,GACtC,GAAIA,EAAiB,OAAO,EAC5B,GAAgB,OAAZhG,EAAkB,OAAO,EAC7B,GAAIA,GAA+B,YAApBA,EAAQC,QAAuB,OAAOD,EAAQE,QAC7D,GAAIF,EAAS,CACX,IAAMwB,EAAcxB,EAAQ/C,KAC5B,GAAoC,MAAhCuE,EAAYC,iBAA0B,OAAO,EACjD,GAAqC,aAAjCD,EAAYC,iBAAiC,OAAO,EACxD,GAAqC,YAAjCD,EAAYC,iBAAgC,OAAO,EACvD,GAAgC,aAA5BD,EAAYE,YAA4B,OAAO,EACnD,GAAgC,aAA5BF,EAAYE,YAA4B,CAC1C,GACkC,kBAAhCF,EAAYG,iBACoB,yBAAhCH,EAAYG,gBAEZ,OAAO,EACT,GACkC,OAAhCH,EAAYG,sBACoB8b,IAAhCjc,EAAYG,gBAEZ,OAAO,GAGb,OAAO,EA2EC60B,CAAY3d,EAAa/P,EAAW3H,kBAClC,kBAAC80B,GAAD,CAAkBh3B,QAASA,KAGhCo3B,GAAS,kBAAC,GAAD,CAAiBr2B,QAASwB,IACnC60B,GAECvtB,EAAW1K,wBACT,wBAAIoL,UAAU,sBACZ,kBAAC,GAAD,CACEvM,MAjJZiB,EAmJgB4K,EAAW5K,mBAlJ3BiG,EAmJgB0U,EAAY1U,iBAjJrB,CACL7F,GAAI,sBACJrB,KAAM,CACJ8yB,aAAc,MACdtuB,iBAAkB,UAClBiO,MAAO,WACP9M,YAAa,sBACbktB,UACE,iFACFv1B,IAAK2D,GAEPiG,iBAAkBA,EAClBjE,SAAS,EACTD,QAAS,QAuICQ,OAAQA,EACR6rB,MAAM,EACNkJ,eAAe,EACfv2B,QAAS6J,EAAW/K,SAASkB,SAAW4M,OAQvCnE,WAAMoC,KAAYssB,I,UC5J3BK,I,cAAY,KAElB,SAASC,GAAoBp4B,EAAY+F,EAAc4G,GACrD,OAAK5G,EAEH,yBAAKmF,UAAU,kBACb,0BAAMA,UAAU,eAAelL,GAAIm4B,GAAYn4B,EAAI2M,QAASA,GAC1D,2BAAI5G,KAJQ,KA6HpB,SAASsyB,GAAT,GAA8E,IAA/C32B,EAA8C,EAA9CA,QAAS0F,EAAqC,EAArCA,OAAQc,EAA6B,EAA7BA,WAAYuF,EAAiB,EAAjBA,OACpDvK,EAAcxB,EAAQ/C,KAC5B,OAAoC,MAAhCuE,EAAYC,iBACPi1B,GACL12B,EAAQ1B,GACP0B,EAAQ/C,KAA0BoH,KACnCmC,GAEwC,YAAjChF,EAAYC,iBAEnB,yBAAK+H,UAAU,kBA7HrB,SACElL,EACAkD,EACAyJ,GAEA,MAAiC,kBAA7BzJ,EAAYuuB,aAEZ,kBAAC,GAAD,CACE3V,UAAU,EACVmB,SAAU,CACRC,IAAKha,EAAYyuB,UACjBxU,IAAKja,EAAY0uB,WAEnB5xB,GAAIm4B,GAAYn4B,IAGkB,qBAA7BkD,EAAYuuB,aAEnB,0BAAM9kB,QAASA,GACb,kBAAC,GAAD,CACE2S,YAAapc,EAAYwuB,aACzBtgB,MAAOlO,EAAYkO,MACnBpR,GAAIm4B,GAAYn4B,KAIgB,kBAA7BkD,EAAYuuB,aAEnB,0BAAM9kB,QAASA,GACb,kBAAC,GAAD,CACEsS,2BAA2B,EAC3BL,SAAU1b,EAAYsuB,UACtB1S,WAAY5b,EAAYkO,MACxBpR,GAAIm4B,GAAYn4B,KAIgB,QAA7BkD,EAAYuuB,aAEnB,0BAAM9kB,QAASA,GACb,kBAAC,GAAD,CACEmS,WAAY5b,EAAYkO,MACxBwN,SAAU1b,EAAYsuB,UACtBxR,SAAU,CACR5O,MAAOlO,EAAYkO,MACnBnV,IAAKiH,EAAYjH,KAEnB+D,GAAIm4B,GAAYn4B,KAMpB,0BAAMkL,UAAU,eAAelL,GAAIm4B,GAAYn4B,EAAI2M,QAASA,GAC1D,2BAAIzJ,EAAYksB,mBAwEfkJ,CAAyB52B,EAAQ1B,GAAIkD,EAAagF,IAGb,aAAjChF,EAAYC,iBArEzB,SACEnD,EACAkD,EACAyJ,EACAc,EACAoK,GAEA,IAAM9R,EAAOqyB,GAAoBp4B,EAAIkD,EAAYksB,iBAAkBziB,GACnE,OAAKc,EAEoC,kBAA9BvK,EAAYsE,cAEnB,oCACGzB,EACkC,kBAAlC7C,EAAYoV,mBACX,kBAAC,GAAD,CACEpc,QAASgH,EAAY6U,oBACrBjF,SAAU,SAAAuB,GACRwD,EAAW,CACTxQ,QAASgN,EAAO5B,YAChBuF,sBAAuB3D,EAAOrU,KAEhC2M,QAM6B,iBAA9BzJ,EAAYsE,cAEnB,oCACG4wB,GAAoBp4B,EAAIkD,EAAYksB,iBAAkBziB,GACpB,kBAAlCzJ,EAAYoV,mBACX,kBAAC,GAAD,CACExF,SAAU,SAAA5W,GACR2b,EAAW,CACTxQ,QAASnL,EAAQiF,KAAI,SAAAkT,GAAM,OAAIA,EAAO5B,eAAa2F,KAAK,MACxDC,qCAAsCnc,EAAQiF,KAC5C,SAAAkT,GAAM,OAAIA,EAAOrU,QAGrB2M,KAEFuH,IAAKhR,EAAY+U,qBACjB9R,IAAKjD,EAAYgV,qBACjBhc,QAASgH,EAAY6U,uBAMtBhS,EA1CAA,EA6DAwyB,CAAe72B,EAAQ1B,GAAIkD,EAAagF,EAAYuF,EAAQrG,GAE5DgxB,GACL12B,EAAQ1B,GACRkD,EAAYksB,iBACZlnB,GAKSkB,WAAMoC,KAAY6sB,IC9JjC,SAASG,GAAgB3pB,GACvB,OACE,yCAASA,EAAT,CAAgB1D,MAAO,CAAE8U,QAAS,QAAU/U,UAAU,sBAI1D,SAASysB,KACP,OACE,yBAAKzsB,UAAU,qBACb,0BAAMA,UAAU,gBACd,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,wBA8BvB,SAASutB,GAAT,GAAgD,IAAlBC,EAAiB,EAAjBA,OAAiB,EACMrtB,qBACjD5B,GADMhB,EADqC,EACrCA,mBAAoBP,EADiB,EACjBA,WAAYd,EADK,EACLA,OADK,EAInBiE,qBAAWlC,GAA7BhH,EAJqC,EAIrCA,OAAQH,EAJ6B,EAI7BA,MACRK,EAAagJ,qBAAW7B,GAAxBnH,SACFs2B,EAAW9tB,iBAAuB,MAClC+tB,EAAW/tB,iBAAuB,MAClCguB,EACJ12B,IAAWL,EAAaW,WAjC5B,SAAqBf,GACnB,GAAgB,OAAZA,EAAkB,OAAO,EAC7B,GAAIA,GAA+B,YAApBA,EAAQC,QAAuB,OAAOD,EAAQE,QAC7D,GAAIF,EAAS,CACX,IAAMwB,EAAcxB,EAAQ/C,KAC5B,GAAoC,MAAhCuE,EAAYC,iBAA0B,OAAO,EACjD,GAAqC,aAAjCD,EAAYC,iBAAiC,OAAO,EACxD,GAAqC,YAAjCD,EAAYC,iBAAgC,OAAO,EACvD,GAAgC,aAA5BD,EAAYE,YAA4B,CAC1C,GACkC,kBAAhCF,EAAYG,iBACoB,yBAAhCH,EAAYG,gBAEZ,OAAO,EACT,GACkC,OAAhCH,EAAYG,sBACoB8b,IAAhCjc,EAAYG,gBAEZ,OAAO,GAGb,OAAO,EAaL60B,CAAY71B,EAASA,EAASZ,OAAS,IACnCgM,EACJzL,IAAU1I,EAAkB2J,aAC5BjB,IAAU1I,EAAkBsJ,OAC9BwH,qBAAU,WACR,IAAM0uB,EAAQF,EAAS9tB,QACjBiuB,EAAQJ,EAAS7tB,QACvB,GAAc,OAAVguB,GAA+B,OAAbH,EAAtB,CAEA,IAAMK,EAAW,IAAIC,MAAe,WAClC,IAAInsB,EAAS,GACbA,GAAUgsB,EAAM/mB,aACF,OAAVgnB,IACFA,EAAM5tB,MAAM2B,OAASA,EAAS,MAEhCpS,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACN6O,IAAK,CAAC,0BACNC,OAAQ,CAAC,iBAAkB,mBAC3BmD,OAAQA,EAAS,GAAK,MAExB,QAIJ,OADAksB,EAASE,QAAQJ,GACV,WACLE,EAASG,iBAEV,IACH,IAEM5B,EAFalsB,qBAAWlC,GACO1J,SAA7BY,OACgBiS,QAAQ,IAAK,IAC/BklB,EAAI31B,SAAS01B,EAAUxoB,UAAU,EAAG,GAAI,IAAM,IAC9C0oB,EAAI51B,SAAS01B,EAAUxoB,UAAU,EAAG,GAAI,IAAM,IAC9C4T,EAAI9gB,SAAS01B,EAAUxoB,UAAU,EAAG,GAAI,IAAM,IACpD,OACE,yBACEhE,IAAK4tB,EACLztB,UAAS,sBACP,KAAQssB,EAAI,KAAQC,EAAI,KAAQ9U,GAAK,GAAM,GAAK,eAGlD,0BAAMzX,UAAU,aAAayB,QAASlE,GACpC,uBAAGyC,UAAU,uBAEf,yBAAKA,UAAU,gCACb,kBAAC,aAAD,CAAYkuB,UAAU,EAAMC,sBAAuBb,IACjD,yBAAKztB,IAAK6tB,EAAU1tB,UAAU,wBAC3BwtB,EAAOv3B,KAAI,SAAAO,GAAO,OACjB,kBAAC,GAAD,CACE+R,IAAK/R,EAAQ1B,GACboH,OAAQA,EACRqG,OAAQA,EACR/L,QAASA,EACTwG,WAAYA,OAGf2wB,GAAY,kBAAC,GAAD,UAQVzvB,WAAMoC,KAAYitB,ICrHjC,SAASD,GAAgB3pB,GACvB,OACE,yCAASA,EAAT,CAAgB1D,MAAO,CAAE8U,QAAS,QAAU/U,UAAU,sBAI1D,SAASouB,GAAQt5B,GACf,IAAKA,EAAI,OAAO,EAChB,IAAM2R,EAAK1F,SAAS6pB,eAAe91B,GACnC,IAAK2R,EAAI,OAAO,EAChB,IAAM4nB,EAASttB,SAAS6pB,eAAe,eACvC,GAAIyD,EAAQ,CACV,IACMC,EAAmBD,EAAOxnB,aAEhC,OACEJ,EAAGoS,wBAAwBrF,KAJR,GAKH8a,GAHE,EAOtB,OAAO,EA8LT,SAASC,KACP,IAAMjvB,EAAaa,qBAAWlC,GACxBsD,EAAUpB,qBAAW5B,GACnBpH,EAAagJ,qBAAW7B,GAAxBnH,SACFq2B,EAAuBjuB,mBAAQ,WAEnC,IADA,IAAMivB,EAAuB,GACpBl4B,EAAIa,EAASZ,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC7C,IAAME,EAAUW,EAASb,GACD,QAApBE,EAAQC,SAAsBD,EAAQE,SACxC83B,EAAOr+B,KAAKqG,GAIhB,OADAg4B,EAAOp4B,UACAo4B,IACN,CAACr3B,IACEkY,EAAclY,EAASA,EAASZ,OAAS,GACzCk4B,EA3MR,SAAmCnvB,GACjC,OAAIA,EAAWrN,UACXqN,EAAWxH,MAEbwH,EAAW9G,IAAI4F,oBAAsB/P,EAAkBqgC,uBAGrDpvB,EAAWxI,QAAU1I,EAAkBkJ,aACnCgI,EAAW9G,IAAIC,sBAoMrBk2B,CAA0BrvB,IAAekuB,EAAOj3B,OAAS,EACrDq4B,EAAatvB,EAAWxI,QAAU1I,EAAkBkJ,WAKpDu3B,EAvMR,SACErB,EACA12B,EACAgB,EACAuX,EACAyf,GAEA,IAAMD,EAAYlvB,iBAAmB,MAC/BovB,EAAWpvB,iBAAsB,MAClC7H,GAA0B,IAAlB01B,EAAOj3B,SAClBw4B,EAASnvB,QAAU4tB,EAAO,GAAG14B,IAE/B,IAAMk6B,EAAoBrvB,iBAAsB,MAC1CsvB,EAAgB5f,GAAeA,EAAYva,GAC3C4B,EAAU2Y,GAAeA,EAAY3Y,QACvCD,EAAU,UACd,GAAI4Y,GAAuC,QAAxBA,EAAY5Y,QAAmB,CAChDA,EAAU,MACV,IAAMuB,EAAcqX,EAAY5b,KACK,WAAjCuE,EAAYC,kBACkB,aAA5BD,EAAYE,aAEZF,EAAYG,iBACoB,kBAAhCH,EAAYG,kBAEZ1B,EAAU,WAuDlB,OAlDAyI,qBAAU,WACR,GAAKpH,EAAL,CACA,IAAMo3B,EAAML,EAAUjvB,QACtB,GAAY,OAARsvB,GACAJ,EAAJ,CACE,GACgC,OAA9BE,EAAkBpvB,SAClBovB,EAAkBpvB,UAAYkvB,EAC9B,CACA,IAAMK,EAAMf,GAAQY,EAAkBpvB,SAOtC,OANY,IAARuvB,EACFD,EAAIE,UAAUF,EAAIG,mBAElBH,EAAIE,UAAUF,EAAII,eAAiBH,QAErCH,EAAkBpvB,QAAUkvB,GAOhC,GAJEE,EAAkBpvB,QAAUkvB,EAId,YAAZr4B,EAGF,OAFAy4B,EAAIK,sBACJR,EAASnvB,QAAU,MAGrB,GAAyB,OAArBmvB,EAASnvB,QAAkB,CAC7B,IAAMuvB,EAAMf,GAAQW,EAASnvB,SAS7B,OARY,IAARuvB,EACFD,EAAIE,UAAUF,EAAIG,mBAElBH,EAAIE,UAAUF,EAAII,eAAiBH,QAEjCz4B,IACFq4B,EAASnvB,QAAU,OAIvB,GAAI9I,IAAU1I,EAAkBmK,SAC9B22B,EAAIK,qBACC,CACL,IAAMJ,EAAMf,GAAQa,GACR,IAARE,EACFD,EAAIE,UAAUF,EAAIG,mBAElBH,EAAIE,UAAUF,EAAII,eAAiBH,QAGtC,CAACr3B,EAAMm3B,EAAex4B,EAASK,EAAOJ,EAASo4B,IAC3CD,EAuHWW,CAChBhC,EACAluB,EAAWxI,MACXwI,EAAWxH,KACXuX,EACAlY,EAAS,GAAKA,EAAS,GAAGrC,GAAK,MA0BjC,OAxBAoK,qBACE,kBA9CJ,SACEpH,EACA01B,EACA12B,EACAyK,GAEKzJ,IACD01B,GACFjsB,EAAQrE,kBAENpG,IAAU1I,EAAkBmK,UAC9BgJ,EAAQ1E,sBAoCNf,CAAMwD,EAAWxH,KAAwB,IAAlB01B,EAAOj3B,OAAc+I,EAAWxI,MAAOyK,KAChE,CAACisB,EAAOj3B,OAAQ+I,EAAWxH,KAAMwH,EAAWxI,MAAOyK,EAAS8N,IAE9DnQ,qBAAU,kBAhIZ,SAA4BpH,EAAe22B,GACrC32B,EACFtI,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACN6O,IAAK,CAAC,kBACNC,OAAQ,CAAC,kBAAmB,2BAE9B,KAEQgwB,GACVj/B,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACN6O,IAAK,CAAC,mBACNC,OAAQ,CAAC,iBAAkB,2BAE7B,KA+GYgxB,CAAmBnwB,EAAWxH,KAAM22B,KAAgB,CAClEnvB,EAAWxH,KACX22B,IAEFvvB,qBACE,kBA7EJ,SACEpI,EACAgB,EACA7F,EACAsP,GAEItP,IACE6F,EACEhB,IAAU1I,EAAkB2J,aAC9BwJ,EAAQvE,aAGVxN,OAAOC,OAAOC,YACZ,CACEggC,aAAc,gBAEhB,MA8DFC,CACErwB,EAAWxI,MACXwI,EAAWxH,KACXwH,EAAWrN,QACXsP,KAEJ,CAACjC,EAAWxI,MAAOwI,EAAWxH,KAAMwH,EAAWrN,QAASsP,IAE1DrC,qBACE,kBAzHJ,SACEpI,EACA84B,EACAruB,GAEA,GAAIzK,IAAU1I,EAAkB2J,aAG5BjB,IAAU1I,EAAkBsJ,OAAhC,CAGA,IAAIm4B,EAAkC,KAClCnyB,EAAiC,KAC/BoyB,EAAO,WACsB,YAA7B/uB,SAASgvB,iBACK,OAAZryB,GACFxC,aAAawC,GAEf6D,EAAQ9D,YACRoyB,EAAWxK,aAAY,WACrB9jB,EAAQ9D,cACPmyB,EAAkB,IACiB,WAA7B7uB,SAASgvB,kBACD,OAAbF,GACFvK,cAAcuK,GAEhBnyB,EAAU3C,WAAWwG,EAAQ7D,QAASkyB,KAK1C,OAFAE,IACA/uB,SAAS+F,iBAAiB,mBAAoBgpB,GACvC,kBAAM/uB,SAASgG,oBAAoB,mBAAoB+oB,KA2F1DE,CAAc1wB,EAAWxI,MAAOwI,EAAW9G,IAAI/D,gBAAiB8M,KAClE,CAACA,EAASjC,EAAW9G,IAAI/D,gBAAiB6K,EAAWxI,QAGrD,yBACEkJ,UACEU,EAAY,uCAAyC,kBAGtDpB,EAAWrN,SACV,6BACE,4BACE+N,UAAU,iBACVyB,QAASF,EAAQpE,QACjB8D,SAAU2tB,GAETA,EAAa,gBAAkB,YAItC,kBAAC,GAAD,CAActtB,MAAOksB,EAAOj3B,SAC5B,yBAAKyJ,UAAWV,EAAWxH,KAAO,cAAgB,UAChD,kBAAC,GAAD,MACA,kBAAC,aAAD,CACEm4B,cAxDS,SAACrgC,GACZA,EAAOw/B,UAAY,KACvB7tB,EAAQ5D,YAuDF7I,GAAG,2BACH+K,IAAKgvB,EACLV,sBAAuBb,GACvBY,UAAU,GAEY,OAArB5uB,EAAWxI,OACV,yBAAKkJ,UAAU,WACb,yBAAKA,UAAU,iBACb,uBAAGA,UAAU,iBAAb,yDAMN,kBAAC,GAAD,OAEF,kBAAC,GAAD,OAEDyuB,GAAiB,kBAAC,GAAD,CAAoBjB,OAAQA,KAKrCtvB,WAAMoC,KAASiuB,ICzRf2B,OA3Bf,YASW,IARTj+B,EAQQ,EARRA,QACAO,EAOQ,EAPRA,QACAE,EAMQ,EANRA,UACAD,EAKQ,EALRA,UACAE,EAIQ,EAJRA,MACAmF,EAGQ,EAHRA,KACAlF,EAEQ,EAFRA,UACAmM,EACQ,EADRA,UAEA,OACE,kBAACF,EAAD,CACElM,MAAOA,EACPV,QAASA,EACTS,UAAWA,EACXF,QAASA,EACTC,UAAWA,EACXqF,KAAMA,IAAQ,EACdlF,UAAWA,IAAa,EACxBmM,UAAWA,QAAakV,GAExB,kBAAC,GAAD,MACA,kBAAC,EAAD,Q,cClCc5K,QACW,cAA7B7Z,OAAO2gC,SAASC,UAEe,UAA7B5gC,OAAO2gC,SAASC,UAEhB5gC,OAAO2gC,SAASC,SAASC,MACvB,2DCkBN7gC,OAAOsX,iBACL,WACA,YAAgD,IAA7CrT,EAA4C,EAA5CA,KACKlE,EAAUa,EAAgB2B,cAChC,GAAI0B,GAAQA,EAAK+H,YAAc/H,EAAK68B,sBAAuB,CACzD,IAAMC,EAAW98B,EAAK68B,sBAChB90B,EAAa/H,EAAK+H,WAClBzK,EACJwB,mCACc,WAAbg+B,EACG,0BACA,4BAEFC,EAAU,IAAIC,eAClBD,EAAQE,mBAAqB,WAC3B,GAA2B,IAAvBF,EAAQG,YAAuC,MAAnBH,EAAQh9B,OAAgB,CACtD,IAAM3E,EAAc,CAClBM,cAAesC,KAAKyB,MAClBs9B,EAAQI,kBAAkBriC,IAA8B,IAE1DO,eAAgB2C,KAAKyB,MACnBs9B,EAAQI,kBAAkBniC,IAA+B,KAG7Dc,EAAQshC,aAAahiC,KAGzB2hC,EAAQ14B,KAAkB,WAAby4B,EAAwB,OAAS,SAAUx/B,GACxDy/B,EAAQM,iBAAkB,EAC1BN,EAAQO,iBACN,eACA,mCAEFP,EAAQz0B,KACNtK,KAAKC,UAAU,CACbs/B,aAAcx1B,EACdrJ,YAAa5C,EAAQ6C,oBAK7B,GAGF5C,OAAOsX,iBACL,WACA,YAAqC,IAAlCrT,EAAiC,EAAjCA,KACKlE,EAAUa,EAAgB2B,cAC5B0B,GAAQA,EAAKw9B,YAAkC,qBAApBx9B,EAAKw9B,WAClC1hC,EAAQX,eAAiB6E,EAAKxE,MAE9BwE,GACAA,EAAKw9B,YACe,qBAApBx9B,EAAKw9B,WAEL1hC,EAAQL,eAAiBuE,EAAKxE,MAE9BwE,GACAA,EAAKw9B,YACe,uBAApBx9B,EAAKw9B,aAEL1hC,EAAQH,iBAAmBqE,EAAKxE,UAGpC,GAGFO,OAAOsX,iBACL,WACA,YAA6C,IAA1CrT,EAAyC,EAAzCA,KACD,GAAIA,GAAQA,EAAK+H,YAAc/H,EAAKy9B,SAAU,CAC5C,GAAIz9B,EAAKxB,QAAS,CAChB,IAAMk/B,EAAUpwB,SAAS6pB,eAAe,aACxCwG,IAASC,uBAAuBF,GAElCC,IAASE,OACP,kBAAC,GAAD,CACE5+B,UAAWe,EAAK+H,WAChBvJ,QAASwB,EAAKxB,QACdU,MAAOc,EAAKC,OACZjB,UAAWgB,EAAK89B,WAChB/+B,QAASiB,EAAKy9B,SACdp5B,KAAMrE,EAAKqE,KACXlF,UAAWa,EAAK+9B,WAChBzyB,UAAWtL,EAAKg+B,aAElB1wB,SAAS6pB,eAAe,kBAI9B,GAGgC,UAA9Br4B,sxBAAYm/B,eACd3wB,SAAS+F,iBAAiB,SAAS,SAACvC,GAC9BA,EAAMyD,QAAUzD,EAAMyD,OAAO2pB,WAAW,iBAC1CptB,EAAMwF,iBACNva,OAAOE,YACL,CACEwhC,SAAU,YACVK,WAAY,OACZ/1B,WAAYjJ,sxBAAYq/B,qBACxB3/B,QAAkD,SAAzCM,sxBAAYs/B,yBACrBn+B,OAAQ6Q,EAAMyD,OAAO2pB,WAAW,eAAe1iC,MAC/C6I,MAAM,EACN05B,YAAY,EACZC,WAAYr6B,KAAKC,OAEnB,SAKN7H,OAAOE,YACL,CACEwhC,SAAU,YACVK,WAAY,OACZ/1B,WAAYjJ,sxBAAYq/B,qBACxB3/B,QAAkD,SAAzCM,sxBAAYs/B,yBACrBn+B,OAAQnB,sxBAAYu/B,kBAEtB,MAGFtiC,OAAOC,OAAOC,YAAY,CAAEC,KAAM,YAAc,KD1C5C,kBAAmBiR,WACrBA,UAAUmxB,cAAcC,MAAMv3B,MAAK,SAAAw3B,GACjCA,EAAaC,gBC4CnB9hC,EAAgB+hC,gB","file":"static/js/main.89defd86.chunk.js","sourcesContent":["module.exports = {\n TimeZones: [\n {\n \"1\": [\n {\n Id: \"1\",\n ShortName: \"\",\n Country: \"(UTC/GMT)\",\n Region: \"\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"\"\n }\n ],\n \"2\": [\n {\n Id: \"2\",\n ShortName: \"AF\",\n Country: \"Afghanistan\",\n Region: \"Kabul\",\n CityList: \"\",\n TimeZone: 4.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"93\"\n }\n ],\n \"3\": [\n {\n Id: \"3\",\n ShortName: \"AL\",\n Country: \"Albania\",\n Region: \"Tirane\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"355\"\n }\n ],\n \"4\": [\n {\n Id: \"4\",\n ShortName: \"DZ\",\n Country: \"Algeria\",\n Region: \"Algiers\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"213\"\n }\n ],\n \"5\": [\n {\n Id: \"5\",\n ShortName: \"AS\",\n Country: \"American Samoa\",\n Region: \"Pago Pago\",\n CityList: \"\",\n TimeZone: -11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1684\"\n }\n ],\n \"6\": [\n {\n Id: \"6\",\n ShortName: \"AD\",\n Country: \"Andorra\",\n Region: \"Andorra La Vella\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"376\"\n }\n ],\n \"7\": [\n {\n Id: \"7\",\n ShortName: \"AO\",\n Country: \"Angola\",\n Region: \"Luanda\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"244\"\n }\n ],\n \"8\": [\n {\n Id: \"8\",\n ShortName: \"AI\",\n Country: \"Anguilla\",\n Region: \"Crocus Hill\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1264\"\n }\n ],\n \"9\": [\n {\n Id: \"9\",\n ShortName: \"AG\",\n Country: \"Antigua and Barbuda\",\n Region: \"St. Johns\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1268\"\n }\n ],\n \"10\": [\n {\n Id: \"10\",\n ShortName: \"AR\",\n Country: \"Argentina\",\n Region: \"East (Buenos Aires)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"54\"\n }\n ],\n \"290\": [\n {\n Id: \"290\",\n ShortName: \"AR\",\n Country: \"Argentina\",\n Region: \"San Luis\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"54\"\n }\n ],\n \"291\": [\n {\n Id: \"291\",\n ShortName: \"AR\",\n Country: \"Argentina\",\n Region: \"West, Jujuy\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"54\"\n }\n ],\n \"11\": [\n {\n Id: \"11\",\n ShortName: \"AM\",\n Country: \"Armenia\",\n Region: \"Yerevan\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"374\"\n }\n ],\n \"12\": [\n {\n Id: \"12\",\n ShortName: \"AW\",\n Country: \"Aruba\",\n Region: \"Oranjestad\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"297\"\n }\n ],\n \"13\": [\n {\n Id: \"13\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Western Australia (Perth)\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 6,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\"\n }\n ],\n \"14\": [\n {\n Id: \"14\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Northern Territory (Darwin, Alice Springs)\",\n CityList: \"\",\n TimeZone: 9.5,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\"\n }\n ],\n \"15\": [\n {\n Id: \"15\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"South Australia (Adelaide)\",\n CityList: \"\",\n TimeZone: 9.5,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"10.5\",\n startTimeMili: \"1349541000000\",\n endTimeMili: \"1365265800000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1380990600000\",\n endTimeMili: \"1396715400000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1412440200000\",\n endTimeMili: \"1428165000000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1443889800000\",\n endTimeMili: \"1459614600000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1475339400000\",\n endTimeMili: \"1491064200000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1506789000000\",\n endTimeMili: \"1522513800000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1538843400000\",\n endTimeMili: \"1554568200000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1570293000000\",\n endTimeMili: \"1586017800000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1601742600000\",\n endTimeMili: \"1617467400000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1633192200000\",\n endTimeMili: \"1648917000000\"\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1664641800000\",\n endTimeMili: \"1680366600000\"\n }\n ],\n CountryCallingCode: \"61\"\n }\n ],\n \"16\": [\n {\n Id: \"16\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region:\n \"New South Wales, Victoria, Tasmania (Sydney, Melbourne, Canberra, Hobart)\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"11\",\n startTimeMili: \"1349539200000\",\n endTimeMili: \"1365264000000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1380988800000\",\n endTimeMili: \"1396713600000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1412438400000\",\n endTimeMili: \"1428163200000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1443888000000\",\n endTimeMili: \"1459612800000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1475337600000\",\n endTimeMili: \"1491062400000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1506787200000\",\n endTimeMili: \"1522512000000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1538841600000\",\n endTimeMili: \"1554566400000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1570291200000\",\n endTimeMili: \"1586016000000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1601740800000\",\n endTimeMili: \"1617465600000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1633190400000\",\n endTimeMili: \"1648915200000\"\n },\n {\n offset: \"11\",\n startTimeMili: \"1664640000000\",\n endTimeMili: \"1680364800000\"\n }\n ],\n CountryCallingCode: \"61\"\n }\n ],\n \"17\": [\n {\n Id: \"17\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Queensland (Brisbane, Cairns)\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\"\n }\n ],\n \"302\": [\n {\n Id: \"302\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Central Western Time (Eucla)\",\n CityList: \"\",\n TimeZone: 8.75,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\"\n }\n ],\n \"18\": [\n {\n Id: \"18\",\n ShortName: \"AT\",\n Country: \"Austria\",\n Region: \"Vienna, Salzburg\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"43\"\n }\n ],\n \"19\": [\n {\n Id: \"19\",\n ShortName: \"AZ\",\n Country: \"Azerbaijan\",\n Region: \"Baku\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"994\"\n }\n ],\n \"20\": [\n {\n Id: \"20\",\n ShortName: \"BS\",\n Country: \"Bahamas\",\n Region: \"Nassau\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\"\n }\n ],\n CountryCallingCode: \"1242\"\n }\n ],\n \"21\": [\n {\n Id: \"21\",\n ShortName: \"BH\",\n Country: \"Bahrain\",\n Region: \"Manama\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"973\"\n }\n ],\n \"22\": [\n {\n Id: \"22\",\n ShortName: \"BD\",\n Country: \"Bangladesh\",\n Region: \"Dhaka\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"880\"\n }\n ],\n \"23\": [\n {\n Id: \"23\",\n ShortName: \"BB\",\n Country: \"Barbados\",\n Region: \"Bridgetown\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"24\": [\n {\n Id: \"24\",\n ShortName: \"BY\",\n Country: \"Belarus\",\n Region: \"Minsk\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"375\"\n }\n ],\n \"25\": [\n {\n Id: \"25\",\n ShortName: \"BE\",\n Country: \"Belgium\",\n Region: \"Brussels\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"32\"\n }\n ],\n \"26\": [\n {\n Id: \"26\",\n ShortName: \"BZ\",\n Country: \"Belize\",\n Region: \"Belize City\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"501\"\n }\n ],\n \"27\": [\n {\n Id: \"27\",\n ShortName: \"BJ\",\n Country: \"Benin\",\n Region: \"Cotonou\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"229\"\n }\n ],\n \"28\": [\n {\n Id: \"28\",\n ShortName: \"BM\",\n Country: \"Bermuda\",\n Region: \"Hamilton\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1331445600000\",\n endTimeMili: \"1352005200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1362895200000\",\n endTimeMili: \"1383454800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1394344800000\",\n endTimeMili: \"1414904400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1425794400000\",\n endTimeMili: \"1446354000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1457848800000\",\n endTimeMili: \"1478408400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1489298400000\",\n endTimeMili: \"1509858000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\"\n }\n ],\n CountryCallingCode: \"1441\"\n }\n ],\n \"29\": [\n {\n Id: \"29\",\n ShortName: \"BT\",\n Country: \"Bhutan\",\n Region: \"Thimphu\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"975\"\n }\n ],\n \"30\": [\n {\n Id: \"30\",\n ShortName: \"BO\",\n Country: \"Bolivia\",\n Region: \"La Paz\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"591\"\n }\n ],\n \"31\": [\n {\n Id: \"31\",\n ShortName: \"BA\",\n Country: \"Bosnia and Herzegovina\",\n Region: \"Sarajevo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"387\"\n }\n ],\n \"32\": [\n {\n Id: \"32\",\n ShortName: \"BW\",\n Country: \"Botswana\",\n Region: \"Gaborone\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"267\"\n }\n ],\n \"33\": [\n {\n Id: \"33\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Fernando de Noronha (Vila dos Remedios)\",\n CityList: \"\",\n TimeZone: -2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\"\n }\n ],\n \"34\": [\n {\n Id: \"34\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Eastern Brazil (Fortaleza , Recife, Salvador)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\"\n }\n ],\n \"35\": [\n {\n Id: \"35\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Central Brazil (Rio de Janeiro, Sao Paulo, Brasilia)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\"\n }\n ],\n \"36\": [\n {\n Id: \"36\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Northern Brazil (Porto Velho, Boa Vista)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\"\n }\n ],\n \"37\": [\n {\n Id: \"37\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Mato Grosso, Mato Grosso do Sul (Cuiaba, Campo Grande)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 6,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\"\n }\n ],\n \"301\": [\n {\n Id: \"301\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Santarem\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\"\n }\n ],\n \"39\": [\n {\n Id: \"39\",\n ShortName: \"BN\",\n Country: \"Brunei Darussalam\",\n Region: \"Bandar Seri Begawan\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"673\"\n }\n ],\n \"40\": [\n {\n Id: \"40\",\n ShortName: \"BG\",\n Country: \"Bulgaria\",\n Region: \"Sofia\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"359\"\n }\n ],\n \"41\": [\n {\n Id: \"41\",\n ShortName: \"BF\",\n Country: \"Burkina Faso\",\n Region: \"Ouagadougou\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"226\"\n }\n ],\n \"42\": [\n {\n Id: \"42\",\n ShortName: \"BI\",\n Country: \"Burundi\",\n Region: \"Bujumbura\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"257\"\n }\n ],\n \"43\": [\n {\n Id: \"43\",\n ShortName: \"KH\",\n Country: \"Cambodia\",\n Region: \"Phnom Penh\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"855\"\n }\n ],\n \"44\": [\n {\n Id: \"44\",\n ShortName: \"CM\",\n Country: \"Cameroon\",\n Region: \"Yaounde\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"237\"\n }\n ],\n \"46\": [\n {\n Id: \"46\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Newfoundland Time (St. Johns)\",\n CityList: \"\",\n TimeZone: -3.5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-2.5\",\n startTimeMili: \"1331443800000\",\n endTimeMili: \"1352003400000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1362893400000\",\n endTimeMili: \"1383453000000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1394343000000\",\n endTimeMili: \"1414902600000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1425792600000\",\n endTimeMili: \"1446352200000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1457847000000\",\n endTimeMili: \"1478406600000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1489296600000\",\n endTimeMili: \"1509856200000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1520746200000\",\n endTimeMili: \"1541305800000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1552195800000\",\n endTimeMili: \"1572755400000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1583645400000\",\n endTimeMili: \"1604205000000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1615699800000\",\n endTimeMili: \"1636259400000\"\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1647149400000\",\n endTimeMili: \"1667709000000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"47\": [\n {\n Id: \"47\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Atlantic Time (Halifax, Fredericton)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1331445600000\",\n endTimeMili: \"1352005200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1362895200000\",\n endTimeMili: \"1383454800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1394344800000\",\n endTimeMili: \"1414904400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1425794400000\",\n endTimeMili: \"1446354000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1457848800000\",\n endTimeMili: \"1478408400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1489298400000\",\n endTimeMili: \"1509858000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"49\": [\n {\n Id: \"49\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Atlantic Time - not observing DST (Blanc-Sablon)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"50\": [\n {\n Id: \"50\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Eastern Time (Toronto, Montreal, Quebec, Ottawa)\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 4,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"51\": [\n {\n Id: \"51\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Central Time (Winnipeg)\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 6,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1331452800000\",\n endTimeMili: \"1351839600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1362902400000\",\n endTimeMili: \"1383462000000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1394352000000\",\n endTimeMili: \"1414911600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1425801600000\",\n endTimeMili: \"1446364800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1457856000000\",\n endTimeMili: \"1478419200000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1489305600000\",\n endTimeMili: \"1509868800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1520755200000\",\n endTimeMili: \"1541314800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1552204800000\",\n endTimeMili: \"1572764400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1583654400000\",\n endTimeMili: \"1604214000000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1615708800000\",\n endTimeMili: \"1636268400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1647158400000\",\n endTimeMili: \"1667718000000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"53\": [\n {\n Id: \"53\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Central Time - not observing DST (Regina, Saskatoon)\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 7,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"55\": [\n {\n Id: \"55\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Mountain Time (Edmonton, Calgary)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 8,\n HasDayLightSavings: [\n {\n offset: \"-6\",\n startTimeMili: \"1331456400000\",\n endTimeMili: \"1352016000000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1362906000000\",\n endTimeMili: \"1383465600000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1394355600000\",\n endTimeMili: \"1414915200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1425805200000\",\n endTimeMili: \"1446364800000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1457859600000\",\n endTimeMili: \"1478419200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1489309200000\",\n endTimeMili: \"1509868800000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1520758800000\",\n endTimeMili: \"1541318400000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1552208400000\",\n endTimeMili: \"1572768000000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1583658000000\",\n endTimeMili: \"1604217600000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1615712400000\",\n endTimeMili: \"1636272000000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1647162000000\",\n endTimeMili: \"1667721600000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"56\": [\n {\n Id: \"56\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Mountain Time - not observing DST (Fort St. John)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 9,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"57\": [\n {\n Id: \"57\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Pacific Time (Whitehorse)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 10,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"303\": [\n {\n Id: \"303\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Eastern Time - not observing DST (Coral Harbour)\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"304\": [\n {\n Id: \"304\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Pacific Time (Vancouver)\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 11,\n HasDayLightSavings: [\n {\n offset: \"-7\",\n startTimeMili: \"1331460000000\",\n endTimeMili: \"1352019600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1362909600000\",\n endTimeMili: \"1383469200000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1394359200000\",\n endTimeMili: \"1414918800000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1425808800000\",\n endTimeMili: \"1446368400000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1457863200000\",\n endTimeMili: \"1478422800000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1489312800000\",\n endTimeMili: \"1509872400000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1520762400000\",\n endTimeMili: \"1541322000000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1552212000000\",\n endTimeMili: \"1572771600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1583661600000\",\n endTimeMili: \"1604221200000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1615716000000\",\n endTimeMili: \"1636275600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1647165600000\",\n endTimeMili: \"1667725200000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"58\": [\n {\n Id: \"58\",\n ShortName: \"CV\",\n Country: \"Cape Verde\",\n Region: \"Praia\",\n CityList: \"\",\n TimeZone: -1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"238\"\n }\n ],\n \"59\": [\n {\n Id: \"59\",\n ShortName: \"KY\",\n Country: \"Cayman Islands\",\n Region: \"George Town\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"60\": [\n {\n Id: \"60\",\n ShortName: \"CF\",\n Country: \"Central African Republic\",\n Region: \"Bangui\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"236\"\n }\n ],\n \"61\": [\n {\n Id: \"61\",\n ShortName: \"TD\",\n Country: \"Chad\",\n Region: \"NDjamena\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"235\"\n }\n ],\n \"62\": [\n {\n Id: \"62\",\n ShortName: \"CL\",\n Country: \"Chile\",\n Region: \"Santiago\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1410062400000\",\n endTimeMili: \"1463281200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1471147200000\",\n endTimeMili: \"1494730800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1502596800000\",\n endTimeMili: \"1526176800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1534050000000\",\n endTimeMili: \"1554602400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1567918800000\",\n endTimeMili: \"1586052000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1599368400000\",\n endTimeMili: \"1617501600000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1630818000000\",\n endTimeMili: \"1648951200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1662267600000\",\n endTimeMili: \"1680400800000\"\n }\n ],\n CountryCallingCode: \"56\"\n }\n ],\n \"63\": [\n {\n Id: \"63\",\n ShortName: \"CL\",\n Country: \"Chile - Easter Island\",\n Region: \"Easter Island\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1410062400000\",\n endTimeMili: \"1463281200000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1471147200000\",\n endTimeMili: \"1494730800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1502596800000\",\n endTimeMili: \"1526180400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1534042800000\",\n endTimeMili: \"1554606000000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1567911600000\",\n endTimeMili: \"1586055600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1599361200000\",\n endTimeMili: \"1617505200000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1630810800000\",\n endTimeMili: \"1648954800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1662260400000\",\n endTimeMili: \"1680404400000\"\n }\n ],\n CountryCallingCode: \"56\"\n }\n ],\n \"64\": [\n {\n Id: \"64\",\n ShortName: \"CN\",\n Country: \"China\",\n Region: \"Beijing, Shanghai, Chengdu\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"86\"\n }\n ],\n \"65\": [\n {\n Id: \"65\",\n ShortName: \"CX\",\n Country: \"Christmas Island\",\n Region: \"The Settlement\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\"\n }\n ],\n \"66\": [\n {\n Id: \"66\",\n ShortName: \"CC\",\n Country: \"Cocos (Keeling) Islands\",\n Region: \"West Island\",\n CityList: \"\",\n TimeZone: 6.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\"\n }\n ],\n \"67\": [\n {\n Id: \"67\",\n ShortName: \"CO\",\n Country: \"Colombia\",\n Region: \"Bogota\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"57\"\n }\n ],\n \"68\": [\n {\n Id: \"68\",\n ShortName: \"KM\",\n Country: \"Comoros\",\n Region: \"Moroni\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"269\"\n }\n ],\n \"69\": [\n {\n Id: \"69\",\n ShortName: \"CD\",\n Country: \"Congo\",\n Region: \"Brazzaville\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"242\"\n }\n ],\n \"70\": [\n {\n Id: \"70\",\n ShortName: \"CD\",\n Country: \"Congo, The Democratic Republic of the\",\n Region: \"Eastern (Kananga, Kolwezi, Lubumbashi, Mbuji-Mayi)\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"243\"\n }\n ],\n \"71\": [\n {\n Id: \"71\",\n ShortName: \"CD\",\n Country: \"Congo, The Democratic Republic of the\",\n Region: \"Western (Kinshasa)\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"243\"\n }\n ],\n \"72\": [\n {\n Id: \"72\",\n ShortName: \"CK\",\n Country: \"Cook Islands\",\n Region: \"Rarotonga\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"682\"\n }\n ],\n \"73\": [\n {\n Id: \"73\",\n ShortName: \"CR\",\n Country: \"Costa Rica\",\n Region: \"San Jose\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"506\"\n }\n ],\n \"75\": [\n {\n Id: \"75\",\n ShortName: \"HR\",\n Country: \"Croatia\",\n Region: \"Zagreb\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"385\"\n }\n ],\n \"76\": [\n {\n Id: \"76\",\n ShortName: \"CU\",\n Country: \"Cuba\",\n Region: \"Havana\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1362891600000\",\n endTimeMili: \"1383454800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394341200000\",\n endTimeMili: \"1414904400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425790800000\",\n endTimeMili: \"1446354000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457845200000\",\n endTimeMili: \"1478408400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489294800000\",\n endTimeMili: \"1509858000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\"\n }\n ],\n CountryCallingCode: \"53\"\n }\n ],\n \"293\": [\n {\n Id: \"293\",\n ShortName: \"CW\",\n Country: \"Curacao\",\n Region: \"Willemstad\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"599\"\n }\n ],\n \"77\": [\n {\n Id: \"77\",\n ShortName: \"CY\",\n Country: \"Cyprus\",\n Region: \"Nicosia\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"357\"\n }\n ],\n \"78\": [\n {\n Id: \"78\",\n ShortName: \"CZ\",\n Country: \"Czech Republic\",\n Region: \"Prague\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"420\"\n }\n ],\n \"79\": [\n {\n Id: \"79\",\n ShortName: \"DK\",\n Country: \"Denmark\",\n Region: \"Copenhagen\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"45\"\n }\n ],\n \"80\": [\n {\n Id: \"80\",\n ShortName: \"DJ\",\n Country: \"Djibouti\",\n Region: \"Djibouti\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"253\"\n }\n ],\n \"81\": [\n {\n Id: \"81\",\n ShortName: \"DM\",\n Country: \"Dominica\",\n Region: \"Roseau\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1767\"\n }\n ],\n \"82\": [\n {\n Id: \"82\",\n ShortName: \"DO\",\n Country: \"Dominican Republic\",\n Region: \"Santo Domingo\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1809\"\n }\n ],\n \"83\": [\n {\n Id: \"83\",\n ShortName: \"EC\",\n Country: \"Ecuador\",\n Region: \"Quito\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"593\"\n }\n ],\n \"84\": [\n {\n Id: \"84\",\n ShortName: \"EC\",\n Country: \"Ecuador - Galapagos Islands\",\n Region: \"Galapagos Islands\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"593\"\n }\n ],\n \"85\": [\n {\n Id: \"85\",\n ShortName: \"EG\",\n Country: \"Egypt\",\n Region: \"Cairo\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"20\"\n }\n ],\n \"86\": [\n {\n Id: \"86\",\n ShortName: \"SV\",\n Country: \"El Salvador\",\n Region: \"San Salvador\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"503\"\n }\n ],\n \"87\": [\n {\n Id: \"87\",\n ShortName: \"GQ\",\n Country: \"Equatorial Guinea\",\n Region: \"Malabo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"240\"\n }\n ],\n \"88\": [\n {\n Id: \"88\",\n ShortName: \"ER\",\n Country: \"Eritrea\",\n Region: \"Asmara\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"291\"\n }\n ],\n \"89\": [\n {\n Id: \"89\",\n ShortName: \"EE\",\n Country: \"Estonia\",\n Region: \"Tallinn\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"372\"\n }\n ],\n \"90\": [\n {\n Id: \"90\",\n ShortName: \"ET\",\n Country: \"Ethiopia\",\n Region: \"Addis Ababa\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"251\"\n }\n ],\n \"91\": [\n {\n Id: \"91\",\n ShortName: \"FK\",\n Country: \"Falkland Islands (Malvinas)\",\n Region: \"Port Stanley\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"500\"\n }\n ],\n \"92\": [\n {\n Id: \"92\",\n ShortName: \"FO\",\n Country: \"Faroe Islands\",\n Region: \"Torshaven\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"298\"\n }\n ],\n \"93\": [\n {\n Id: \"93\",\n ShortName: \"FJ\",\n Country: \"Fiji\",\n Region: \"Suva\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"13\",\n startTimeMili: \"1319292000000\",\n endTimeMili: \"1327154400000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1350741600000\",\n endTimeMili: \"1358604000000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1382796000000\",\n endTimeMili: \"1390053600000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1414245600000\",\n endTimeMili: \"1422108000000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1445695200000\",\n endTimeMili: \"1453557600000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1478354400000\",\n endTimeMili: \"1484402400000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1509804000000\",\n endTimeMili: \"1515852000000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1541253600000\",\n endTimeMili: \"1547301600000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1573308000000\",\n endTimeMili: \"1578751200000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1608386400000\",\n endTimeMili: \"1610805600000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1636812000000\",\n endTimeMili: \"1642255200000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1668261600000\",\n endTimeMili: \"1673704800000\"\n }\n ],\n CountryCallingCode: \"679\"\n }\n ],\n \"94\": [\n {\n Id: \"94\",\n ShortName: \"FI\",\n Country: \"Finland\",\n Region: \"Helsinki\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"358\"\n }\n ],\n \"95\": [\n {\n Id: \"95\",\n ShortName: \"FR\",\n Country: \"France\",\n Region: \"Paris\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"33\"\n }\n ],\n \"96\": [\n {\n Id: \"96\",\n ShortName: \"GF\",\n Country: \"French Guiana\",\n Region: \"Cayenne\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"594\"\n }\n ],\n \"97\": [\n {\n Id: \"97\",\n ShortName: \"PF\",\n Country: \"French Polynesia\",\n Region: \"Gambier Islands\",\n CityList: \"\",\n TimeZone: -9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"689\"\n }\n ],\n \"98\": [\n {\n Id: \"98\",\n ShortName: \"PF\",\n Country: \"French Polynesia\",\n Region: \"Marquesas Islands\",\n CityList: \"\",\n TimeZone: -9.5,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"689\"\n }\n ],\n \"99\": [\n {\n Id: \"99\",\n ShortName: \"PF\",\n Country: \"French Polynesia\",\n Region:\n \"Society Archipelago (including Tahiti), Tuamotu Archipelago, Tubuai Islands\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"689\"\n }\n ],\n \"100\": [\n {\n Id: \"100\",\n ShortName: \"GA\",\n Country: \"Gabon\",\n Region: \"Libreville\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"241\"\n }\n ],\n \"101\": [\n {\n Id: \"101\",\n ShortName: \"GM\",\n Country: \"Gambia\",\n Region: \"Banjul\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"220\"\n }\n ],\n \"102\": [\n {\n Id: \"102\",\n ShortName: \"GE\",\n Country: \"Georgia\",\n Region: \"Tbilisi\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"995\"\n }\n ],\n \"103\": [\n {\n Id: \"103\",\n ShortName: \"DE\",\n Country: \"Germany\",\n Region: \"Berlin, Bonn, Frankfurt\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"49\"\n }\n ],\n \"104\": [\n {\n Id: \"104\",\n ShortName: \"GH\",\n Country: \"Ghana\",\n Region: \"Accra\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"233\"\n }\n ],\n \"105\": [\n {\n Id: \"105\",\n ShortName: \"GI\",\n Country: \"Gibraltar\",\n Region: \"Gibraltar\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351382400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445731200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"350\"\n }\n ],\n \"106\": [\n {\n Id: \"106\",\n ShortName: \"GR\",\n Country: \"Greece\",\n Region: \"Athens\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"30\"\n }\n ],\n \"107\": [\n {\n Id: \"107\",\n ShortName: \"GL\",\n Country: \"Greenland\",\n Region: \"Ittoqqortoormiit, Nerlerit Inaat (Scoresbysund)\",\n CityList: \"\",\n TimeZone: -1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"0\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1521943200000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1553997600000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1585447200000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1616896800000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1648346400000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"299\"\n }\n ],\n \"108\": [\n {\n Id: \"108\",\n ShortName: \"GL\",\n Country: \"Greenland\",\n Region: \"Greenland (Nuuk)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1521936000000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1553990400000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1585440000000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1616889600000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1648339200000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"299\"\n }\n ],\n \"109\": [\n {\n Id: \"109\",\n ShortName: \"GL\",\n Country: \"Greenland\",\n Region: \"Pituffik (Thule)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1331445600000\",\n endTimeMili: \"1352005200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1362895200000\",\n endTimeMili: \"1383454800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1394344800000\",\n endTimeMili: \"1414904400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1425794400000\",\n endTimeMili: \"1446354000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1457848800000\",\n endTimeMili: \"1478408400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1489298400000\",\n endTimeMili: \"1509858000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\"\n }\n ],\n CountryCallingCode: \"299\"\n }\n ],\n \"110\": [\n {\n Id: \"110\",\n ShortName: \"GD\",\n Country: \"Grenada\",\n Region: \"Saint Georges\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1473\"\n }\n ],\n \"111\": [\n {\n Id: \"111\",\n ShortName: \"GP\",\n Country: \"Guadeloupe\",\n Region: \"Pointe-a-Pitre\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"590\"\n }\n ],\n \"112\": [\n {\n Id: \"112\",\n ShortName: \"GU\",\n Country: \"Guam\",\n Region: \"Hagatna\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1671\"\n }\n ],\n \"113\": [\n {\n Id: \"113\",\n ShortName: \"GT\",\n Country: \"Guatemala\",\n Region: \"Guatemala City\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"502\"\n }\n ],\n \"298\": [\n {\n Id: \"298\",\n ShortName: \"GG\",\n Country: \"Guernsey\",\n Region: \"St. Peter Port\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"44\"\n }\n ],\n \"114\": [\n {\n Id: \"114\",\n ShortName: \"GN\",\n Country: \"Guinea\",\n Region: \"Conakry\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"224\"\n }\n ],\n \"115\": [\n {\n Id: \"115\",\n ShortName: \"GW\",\n Country: \"Guinea-Bissau\",\n Region: \"Bissau\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"245\"\n }\n ],\n \"116\": [\n {\n Id: \"116\",\n ShortName: \"GY\",\n Country: \"Guyana\",\n Region: \"Georgetown\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"592\"\n }\n ],\n \"117\": [\n {\n Id: \"117\",\n ShortName: \"HT\",\n Country: \"Haiti\",\n Region: \"Port-au-Prince\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\"\n }\n ],\n CountryCallingCode: \"509\"\n }\n ],\n \"118\": [\n {\n Id: \"118\",\n ShortName: \"HN\",\n Country: \"Honduras\",\n Region: \"Tegucigalpa\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"504\"\n }\n ],\n \"119\": [\n {\n Id: \"119\",\n ShortName: \"HK\",\n Country: \"Hong Kong\",\n Region: \"Hong Kong\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"852\"\n }\n ],\n \"120\": [\n {\n Id: \"120\",\n ShortName: \"HU\",\n Country: \"Hungary\",\n Region: \"Budapest\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"36\"\n }\n ],\n \"121\": [\n {\n Id: \"121\",\n ShortName: \"IS\",\n Country: \"Iceland\",\n Region: \"Reykjavik\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"354\"\n }\n ],\n \"122\": [\n {\n Id: \"122\",\n ShortName: \"IN\",\n Country: \"India\",\n Region: \"New Delhi, Bangalore, Kolkata, Chennai, Mumbai\",\n CityList: \"\",\n TimeZone: 5.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"91\"\n }\n ],\n \"123\": [\n {\n Id: \"123\",\n ShortName: \"ID\",\n Country: \"Indonesia\",\n Region: \"Central (Denpasar, Banjarmasin, Kupang, Makassar)\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"62\"\n }\n ],\n \"124\": [\n {\n Id: \"124\",\n ShortName: \"ID\",\n Country: \"Indonesia\",\n Region: \"Eastern (Ambon, Jayapura)\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"62\"\n }\n ],\n \"125\": [\n {\n Id: \"125\",\n ShortName: \"ID\",\n Country: \"Indonesia\",\n Region: \"Western (Jakarta, Medan, Surabaya)\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"62\"\n }\n ],\n \"126\": [\n {\n Id: \"126\",\n ShortName: \"IR\",\n Country: \"Iran, Islamic Republic of\",\n Region: \"Tehran\",\n CityList: \"\",\n TimeZone: 3.5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"4.5\",\n startTimeMili: \"1332275400000\",\n endTimeMili: \"1348169400000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1363897800000\",\n endTimeMili: \"1379791800000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1395433800000\",\n endTimeMili: \"1411327800000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1426969800000\",\n endTimeMili: \"1442863800000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1458505800000\",\n endTimeMili: \"1474399800000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1490128200000\",\n endTimeMili: \"1506022200000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1521667800000\",\n endTimeMili: \"1537554600000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1553203800000\",\n endTimeMili: \"1569090600000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1584739800000\",\n endTimeMili: \"1600626600000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1616362200000\",\n endTimeMili: \"1632249000000\"\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1647898200000\",\n endTimeMili: \"1663785000000\"\n }\n ],\n CountryCallingCode: \"98\"\n }\n ],\n \"127\": [\n {\n Id: \"127\",\n ShortName: \"IQ\",\n Country: \"Iraq\",\n Region: \"Baghdad\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"964\"\n }\n ],\n \"128\": [\n {\n Id: \"128\",\n ShortName: \"IE\",\n Country: \"Ireland\",\n Region: \"Dublin, Belfast\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"353\"\n }\n ],\n \"299\": [\n {\n Id: \"299\",\n ShortName: \"IM\",\n Country: \"Isle of Man\",\n Region: \"Douglas\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"44\"\n }\n ],\n \"129\": [\n {\n Id: \"129\",\n ShortName: \"IL\",\n Country: \"Israel\",\n Region: \"Jerusalem, Tel Aviv\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333065600000\",\n endTimeMili: \"1348354800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364515200000\",\n endTimeMili: \"1382828400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1395964800000\",\n endTimeMili: \"1414278000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427414400000\",\n endTimeMili: \"1445727600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1458864000000\",\n endTimeMili: \"1477782000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490313600000\",\n endTimeMili: \"1509231600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521763200000\",\n endTimeMili: \"1540681200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553817600000\",\n endTimeMili: \"1572130800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585267200000\",\n endTimeMili: \"1603580400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616716800000\",\n endTimeMili: \"1635634800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648166400000\",\n endTimeMili: \"1667084400000\"\n }\n ],\n CountryCallingCode: \"972\"\n }\n ],\n \"130\": [\n {\n Id: \"130\",\n ShortName: \"IT\",\n Country: \"Italy\",\n Region: \"Milan, Rome\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"39\"\n }\n ],\n \"74\": [\n {\n Id: \"74\",\n ShortName: \"CI\",\n Country: \"Ivory Coast\",\n Region: \"Abidjan\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"225\"\n }\n ],\n \"131\": [\n {\n Id: \"131\",\n ShortName: \"JM\",\n Country: \"Jamaica\",\n Region: \"Kingston\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"132\": [\n {\n Id: \"132\",\n ShortName: \"JP\",\n Country: \"Japan\",\n Region: \"Kyoto, Osaka, Tokyo, Yokohama\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"81\"\n }\n ],\n \"300\": [\n {\n Id: \"300\",\n ShortName: \"JE\",\n Country: \"Jersey\",\n Region: \"Saint Helier\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"44\"\n }\n ],\n \"133\": [\n {\n Id: \"133\",\n ShortName: \"US\",\n Country: \"Johnston Atoll (U.S.)\",\n Region: \"Johnston Atoll\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"134\": [\n {\n Id: \"134\",\n ShortName: \"JO\",\n Country: \"Jordan\",\n Region: \"Amman\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333058400000\",\n endTimeMili: \"1387490400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1395957600000\",\n endTimeMili: \"1414706400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427407200000\",\n endTimeMili: \"1446156000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459461600000\",\n endTimeMili: \"1477605600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490911200000\",\n endTimeMili: \"1509055200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1522364400000\",\n endTimeMili: \"1540504800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553814000000\",\n endTimeMili: \"1571954400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585263600000\",\n endTimeMili: \"1604008800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616713200000\",\n endTimeMili: \"1635458400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648767600000\",\n endTimeMili: \"1666908000000\"\n }\n ],\n CountryCallingCode: \"962\"\n }\n ],\n \"135\": [\n {\n Id: \"135\",\n ShortName: \"KZ\",\n Country: \"Kazakhstan\",\n Region: \"Eastern (Astana, Almaty, Qostanay, Qyzylorda)\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"136\": [\n {\n Id: \"136\",\n ShortName: \"KZ\",\n Country: \"Kazakhstan\",\n Region: \"Western (Aktobe, Aktau, Atyrau, Oral)\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"137\": [\n {\n Id: \"137\",\n ShortName: \"KE\",\n Country: \"Kenya\",\n Region: \"Nairobi\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"254\"\n }\n ],\n \"138\": [\n {\n Id: \"138\",\n ShortName: \"KI\",\n Country: \"Kiribati\",\n Region: \"Tarawa\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"686\"\n }\n ],\n \"139\": [\n {\n Id: \"139\",\n ShortName: \"KP\",\n Country: \"Korea, Democratic Peoples Republic of\",\n Region: \"Pyongyang\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"850\"\n }\n ],\n \"140\": [\n {\n Id: \"140\",\n ShortName: \"KR\",\n Country: \"Korea, Republic of\",\n Region: \"Seoul\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"82\"\n }\n ],\n \"292\": [\n {\n Id: \"292\",\n ShortName: \"RS\",\n Country: \"Kosovo\",\n Region: \"Pristina\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1333155600000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"381\"\n }\n ],\n \"141\": [\n {\n Id: \"141\",\n ShortName: \"KW\",\n Country: \"Kuwait\",\n Region: \"Kuwait City\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"965\"\n }\n ],\n \"142\": [\n {\n Id: \"142\",\n ShortName: \"KG\",\n Country: \"Kyrgyzstan\",\n Region: \"Bishkek\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"996\"\n }\n ],\n \"143\": [\n {\n Id: \"143\",\n ShortName: \"LA\",\n Country: \"Lao Peoples Democratic Republic\",\n Region: \"Vientiane\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"856\"\n }\n ],\n \"144\": [\n {\n Id: \"144\",\n ShortName: \"LV\",\n Country: \"Latvia\",\n Region: \"Riga\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"371\"\n }\n ],\n \"145\": [\n {\n Id: \"145\",\n ShortName: \"LB\",\n Country: \"Lebanon\",\n Region: \"Beirut\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332626400000\",\n endTimeMili: \"1351371600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364680800000\",\n endTimeMili: \"1382821200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396130400000\",\n endTimeMili: \"1414270800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427580000000\",\n endTimeMili: \"1445720400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459029600000\",\n endTimeMili: \"1477774800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490479200000\",\n endTimeMili: \"1509224400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521932400000\",\n endTimeMili: \"1540670400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553986800000\",\n endTimeMili: \"1572120000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585436400000\",\n endTimeMili: \"1603569600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616886000000\",\n endTimeMili: \"1635624000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648335600000\",\n endTimeMili: \"1667073600000\"\n }\n ],\n CountryCallingCode: \"961\"\n }\n ],\n \"146\": [\n {\n Id: \"146\",\n ShortName: \"LS\",\n Country: \"Lesotho\",\n Region: \"Maseru\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"266\"\n }\n ],\n \"147\": [\n {\n Id: \"147\",\n ShortName: \"LR\",\n Country: \"Liberia\",\n Region: \"Monrovia\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"231\"\n }\n ],\n \"148\": [\n {\n Id: \"148\",\n ShortName: \"LY\",\n Country: \"Libyan Arab Jamahiriya\",\n Region: \"Tripoli\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"218\"\n }\n ],\n \"149\": [\n {\n Id: \"149\",\n ShortName: \"LI\",\n Country: \"Liechtenstein\",\n Region: \"Vaduz\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351382400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"423\"\n }\n ],\n \"150\": [\n {\n Id: \"150\",\n ShortName: \"LT\",\n Country: \"Lithuania\",\n Region: \"Vilnius\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"370\"\n }\n ],\n \"151\": [\n {\n Id: \"151\",\n ShortName: \"LU\",\n Country: \"Luxembourg\",\n Region: \"Luxembourg\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"352\"\n }\n ],\n \"152\": [\n {\n Id: \"152\",\n ShortName: \"MO\",\n Country: \"Macau\",\n Region: \"Macao\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"853\"\n }\n ],\n \"153\": [\n {\n Id: \"153\",\n ShortName: \"MK\",\n Country: \"Macedonia, The Former Yugoslav Republic Of\",\n Region: \"Skopje\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"389\"\n }\n ],\n \"154\": [\n {\n Id: \"154\",\n ShortName: \"MG\",\n Country: \"Madagascar\",\n Region: \"Antananarivo\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"261\"\n }\n ],\n \"155\": [\n {\n Id: \"155\",\n ShortName: \"MW\",\n Country: \"Malawi\",\n Region: \"Lilongwe\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"265\"\n }\n ],\n \"156\": [\n {\n Id: \"156\",\n ShortName: \"MY\",\n Country: \"Malaysia\",\n Region: \"Kuala Lumpur\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"60\"\n }\n ],\n \"157\": [\n {\n Id: \"157\",\n ShortName: \"MV\",\n Country: \"Maldives\",\n Region: \"Male\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"960\"\n }\n ],\n \"158\": [\n {\n Id: \"158\",\n ShortName: \"ML\",\n Country: \"Mali\",\n Region: \"Bamako\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"223\"\n }\n ],\n \"159\": [\n {\n Id: \"159\",\n ShortName: \"MT\",\n Country: \"Malta\",\n Region: \"Valletta\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"356\"\n }\n ],\n \"160\": [\n {\n Id: \"160\",\n ShortName: \"MH\",\n Country: \"Marshall Islands\",\n Region: \"Majuro\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"692\"\n }\n ],\n \"161\": [\n {\n Id: \"161\",\n ShortName: \"MQ\",\n Country: \"Martinique\",\n Region: \"Maputo\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"596\"\n }\n ],\n \"162\": [\n {\n Id: \"162\",\n ShortName: \"MR\",\n Country: \"Mauritania\",\n Region: \"Nouakchott\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"222\"\n }\n ],\n \"163\": [\n {\n Id: \"163\",\n ShortName: \"MU\",\n Country: \"Mauritius\",\n Region: \"Port Louis\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"230\"\n }\n ],\n \"164\": [\n {\n Id: \"164\",\n ShortName: \"YT\",\n Country: \"Mayotte\",\n Region: \"Mamoudzou\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"262\"\n }\n ],\n \"165\": [\n {\n Id: \"165\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region:\n \"South, central and eastern (Mexico City, Guadalajara, Puebla)\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1333267200000\",\n endTimeMili: \"1351407600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1365321600000\",\n endTimeMili: \"1382857200000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1396771200000\",\n endTimeMili: \"1414306800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1428220800000\",\n endTimeMili: \"1445756400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1459670400000\",\n endTimeMili: \"1477810800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1491120000000\",\n endTimeMili: \"1509260400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1522569600000\",\n endTimeMili: \"1540710000000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1554624000000\",\n endTimeMili: \"1572159600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1586073600000\",\n endTimeMili: \"1603609200000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1617523200000\",\n endTimeMili: \"1635663600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1648972800000\",\n endTimeMili: \"1667113200000\"\n }\n ],\n CountryCallingCode: \"52\"\n }\n ],\n \"166\": [\n {\n Id: \"166\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Baja California Sur, Chihuahua, Nayarit, Sinaloa\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"-6\",\n startTimeMili: \"1333270800000\",\n endTimeMili: \"1351411200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1362906000000\",\n endTimeMili: \"1383465600000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1394355600000\",\n endTimeMili: \"1414915200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1425805200000\",\n endTimeMili: \"1446364800000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1457859600000\",\n endTimeMili: \"1478419200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1489309200000\",\n endTimeMili: \"1509868800000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1522573200000\",\n endTimeMili: \"1540713600000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1554627600000\",\n endTimeMili: \"1572163200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1586077200000\",\n endTimeMili: \"1603612800000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1617526800000\",\n endTimeMili: \"1635667200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1648976400000\",\n endTimeMili: \"1667116800000\"\n }\n ],\n CountryCallingCode: \"52\"\n }\n ],\n \"167\": [\n {\n Id: \"167\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Baja California Norte (Ensenada, Tijuana)\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 5,\n HasDayLightSavings: [\n {\n offset: \"-7\",\n startTimeMili: \"1331460000000\",\n endTimeMili: \"1352019600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1362909600000\",\n endTimeMili: \"1383469200000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1394359200000\",\n endTimeMili: \"1414918800000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1425808800000\",\n endTimeMili: \"1446368400000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1457863200000\",\n endTimeMili: \"1478422800000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1489312800000\",\n endTimeMili: \"1509872400000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1520762400000\",\n endTimeMili: \"1541322000000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1552212000000\",\n endTimeMili: \"1572771600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1583661600000\",\n endTimeMili: \"1604221200000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1615716000000\",\n endTimeMili: \"1636275600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1647165600000\",\n endTimeMili: \"1667725200000\"\n }\n ],\n CountryCallingCode: \"52\"\n }\n ],\n \"168\": [\n {\n Id: \"168\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Sonora (Hermosillo)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"52\"\n }\n ],\n \"296\": [\n {\n Id: \"296\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Quintana Roo (Cancun, Cozumel, Isla Mujeres)\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"52\"\n }\n ],\n \"169\": [\n {\n Id: \"169\",\n ShortName: \"FM\",\n Country: \"Micronesia, Federated States Of\",\n Region: \"Kosrae, Pohnpei (Palikir, Kolonia)\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"691\"\n }\n ],\n \"170\": [\n {\n Id: \"170\",\n ShortName: \"FM\",\n Country: \"Micronesia, Federated States Of\",\n Region: \"Yap, Chuuk\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"691\"\n }\n ],\n \"171\": [\n {\n Id: \"171\",\n ShortName: \"001\",\n Country: \"Midway Islands (U.S.)\",\n Region: \"Midway Islands\",\n CityList: \"\",\n TimeZone: -11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"808\"\n }\n ],\n \"172\": [\n {\n Id: \"172\",\n ShortName: \"MD\",\n Country: \"Moldova, Republic of\",\n Region: \"Chisinau\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521936000000\",\n endTimeMili: \"1540684800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553990400000\",\n endTimeMili: \"1572134400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585440000000\",\n endTimeMili: \"1603584000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616889600000\",\n endTimeMili: \"1635638400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648339200000\",\n endTimeMili: \"1667088000000\"\n }\n ],\n CountryCallingCode: \"373\"\n }\n ],\n \"173\": [\n {\n Id: \"173\",\n ShortName: \"MC\",\n Country: \"Monaco\",\n Region: \"Monte Carlo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"377\"\n }\n ],\n \"174\": [\n {\n Id: \"174\",\n ShortName: \"MN\",\n Country: \"Mongolia\",\n Region: \"Central and Eastern (Ulaanbaatar)\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"976\"\n }\n ],\n \"175\": [\n {\n Id: \"175\",\n ShortName: \"MN\",\n Country: \"Mongolia\",\n Region: \"Western (Olgiy, Hovd, Ulaangom)\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"976\"\n }\n ],\n \"176\": [\n {\n Id: \"176\",\n ShortName: \"ME\",\n Country: \"Montenegro\",\n Region: \"Podgorica\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"382\"\n }\n ],\n \"177\": [\n {\n Id: \"177\",\n ShortName: \"MS\",\n Country: \"Montserrat\",\n Region: \"Plymouth\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1664\"\n }\n ],\n \"178\": [\n {\n Id: \"178\",\n ShortName: \"MA\",\n Country: \"Morocco\",\n Region: \"Rabat, Casablanca, Tangier\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1376100000000\",\n endTimeMili: \"1380420000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1396144800000\",\n endTimeMili: \"1404007200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1406599200000\",\n endTimeMili: \"1411869600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1427594400000\",\n endTimeMili: \"1434592800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1437184800000\",\n endTimeMili: \"1445738400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1459044000000\",\n endTimeMili: \"1465092000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1468116000000\",\n endTimeMili: \"1477792800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490493600000\",\n endTimeMili: \"1495850400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1498442400000\",\n endTimeMili: \"1509242400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1498874400000\",\n endTimeMili: \"1509242400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521943200000\",\n endTimeMili: \"1526176800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1529200800000\",\n endTimeMili: \"1540692000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1560045600000\",\n endTimeMili: \"1587261600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1590890400000\",\n endTimeMili: \"1618106400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1621130400000\",\n endTimeMili: \"1648346400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1651975200000\",\n endTimeMili: \"1679191200000\"\n }\n ],\n CountryCallingCode: \"212\"\n }\n ],\n \"179\": [\n {\n Id: \"179\",\n ShortName: \"MZ\",\n Country: \"Mozambique\",\n Region: \"Maputo\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"258\"\n }\n ],\n \"180\": [\n {\n Id: \"180\",\n ShortName: \"MM\",\n Country: \"Myanmar\",\n Region: \"Rangoon\",\n CityList: \"\",\n TimeZone: 6.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"95\"\n }\n ],\n \"181\": [\n {\n Id: \"181\",\n ShortName: \"NA\",\n Country: \"Namibia\",\n Region: \"Windhoek\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"264\"\n }\n ],\n \"182\": [\n {\n Id: \"182\",\n ShortName: \"NR\",\n Country: \"Nauru\",\n Region: \"Nauro\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"674\"\n }\n ],\n \"295\": [\n {\n Id: \"295\",\n ShortName: \"NP\",\n Country: \"Nepal\",\n Region: \"Kathmandu\",\n CityList: \"\",\n TimeZone: 5.75,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"977\"\n }\n ],\n \"183\": [\n {\n Id: \"183\",\n ShortName: \"NL\",\n Country: \"Netherlands\",\n Region: \"Amsterdam, Hague\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"31\"\n }\n ],\n \"184\": [\n {\n Id: \"184\",\n ShortName: \"AN\",\n Country: \"Netherlands Antilles\",\n Region: \"Bonaire, Curacao, Saba, Sint Eustatius, Sint Maarten\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"599\"\n }\n ],\n \"185\": [\n {\n Id: \"185\",\n ShortName: \"NC\",\n Country: \"New Caledonia\",\n Region: \"Noumea\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"687\"\n }\n ],\n \"186\": [\n {\n Id: \"186\",\n ShortName: \"NZ\",\n Country: \"New Zealand\",\n Region: \"Auckland, Wellington\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"13\",\n startTimeMili: \"1316872800000\",\n endTimeMili: \"1333202400000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1348927200000\",\n endTimeMili: \"1365256800000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1380376800000\",\n endTimeMili: \"1396706400000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1411826400000\",\n endTimeMili: \"1428156000000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1443276000000\",\n endTimeMili: \"1459605600000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1474725600000\",\n endTimeMili: \"1491055200000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1506175200000\",\n endTimeMili: \"1522504800000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1538229600000\",\n endTimeMili: \"1554559200000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1569679200000\",\n endTimeMili: \"1586008800000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1601128800000\",\n endTimeMili: \"1617458400000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1632578400000\",\n endTimeMili: \"1648908000000\"\n },\n {\n offset: \"13\",\n startTimeMili: \"1664028000000\",\n endTimeMili: \"1680357600000\"\n }\n ],\n CountryCallingCode: \"64\"\n }\n ],\n \"187\": [\n {\n Id: \"187\",\n ShortName: \"NI\",\n Country: \"Nicaragua\",\n Region: \"Managua\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"505\"\n }\n ],\n \"188\": [\n {\n Id: \"188\",\n ShortName: \"NE\",\n Country: \"Niger\",\n Region: \"Niamey\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"227\"\n }\n ],\n \"189\": [\n {\n Id: \"189\",\n ShortName: \"NG\",\n Country: \"Nigeria\",\n Region: \"Abuja, Kano\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"234\"\n }\n ],\n \"190\": [\n {\n Id: \"190\",\n ShortName: \"NU\",\n Country: \"Niue\",\n Region: \"Alofi\",\n CityList: \"\",\n TimeZone: -11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"683\"\n }\n ],\n \"191\": [\n {\n Id: \"191\",\n ShortName: \"NF\",\n Country: \"Norfolk Island\",\n Region: \"Kingston\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"12\",\n startTimeMili: \"1570287600000\",\n endTimeMili: \"1586012400000\"\n },\n {\n offset: \"12\",\n startTimeMili: \"1601737200000\",\n endTimeMili: \"1617462000000\"\n },\n {\n offset: \"12\",\n startTimeMili: \"1633186800000\",\n endTimeMili: \"1648911600000\"\n },\n {\n offset: \"12\",\n startTimeMili: \"1664636400000\",\n endTimeMili: \"1680361200000\"\n }\n ],\n CountryCallingCode: \"672\"\n }\n ],\n \"192\": [\n {\n Id: \"192\",\n ShortName: \"MP\",\n Country: \"Northern Mariana Islands\",\n Region: \"Saipan\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1670\"\n }\n ],\n \"193\": [\n {\n Id: \"193\",\n ShortName: \"NO\",\n Country: \"Norway\",\n Region: \"Oslo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"47\"\n }\n ],\n \"194\": [\n {\n Id: \"194\",\n ShortName: \"OM\",\n Country: \"Oman\",\n Region: \"Muscat\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"968\"\n }\n ],\n \"195\": [\n {\n Id: \"195\",\n ShortName: \"PK\",\n Country: \"Pakistan\",\n Region: \"Islamabad, Karachi\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"92\"\n }\n ],\n \"196\": [\n {\n Id: \"196\",\n ShortName: \"PW\",\n Country: \"Palau\",\n Region: \"Koror\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"680\"\n }\n ],\n \"197\": [\n {\n Id: \"197\",\n ShortName: \"PS\",\n Country: \"Palestinian Territory\",\n Region: \"Gaza, Ramallah\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333058400000\",\n endTimeMili: \"1349049600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364508000000\",\n endTimeMili: \"1380232800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1395957600000\",\n endTimeMili: \"1411682400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427407200000\",\n endTimeMili: \"1443128400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1458946800000\",\n endTimeMili: \"1477692000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459461600000\",\n endTimeMili: \"1474578000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490396400000\",\n endTimeMili: \"1509141600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490911200000\",\n endTimeMili: \"1506027600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521846000000\",\n endTimeMili: \"1540591200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553814000000\",\n endTimeMili: \"1572040800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585350000000\",\n endTimeMili: \"1603490400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616799600000\",\n endTimeMili: \"1635544800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648249200000\",\n endTimeMili: \"1666994400000\"\n }\n ],\n CountryCallingCode: \"970\"\n }\n ],\n \"198\": [\n {\n Id: \"198\",\n ShortName: \"PA\",\n Country: \"Panama\",\n Region: \"Panama City\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"507\"\n }\n ],\n \"199\": [\n {\n Id: \"199\",\n ShortName: \"PG\",\n Country: \"Papua New Guinea\",\n Region: \"Port Moresby\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"675\"\n }\n ],\n \"200\": [\n {\n Id: \"200\",\n ShortName: \"PY\",\n Country: \"Paraguay\",\n Region: \"Asuncion\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1349582400000\",\n endTimeMili: \"1364094000000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1381032000000\",\n endTimeMili: \"1395543600000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1412481600000\",\n endTimeMili: \"1426993200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1443931200000\",\n endTimeMili: \"1459047600000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1475380800000\",\n endTimeMili: \"1490497200000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1506830400000\",\n endTimeMili: \"1521946800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1538888400000\",\n endTimeMili: \"1553392800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1570338000000\",\n endTimeMili: \"1584842400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1601787600000\",\n endTimeMili: \"1616896800000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1633237200000\",\n endTimeMili: \"1648346400000\"\n },\n {\n offset: \"-3\",\n startTimeMili: \"1664686800000\",\n endTimeMili: \"1679796000000\"\n }\n ],\n CountryCallingCode: \"595\"\n }\n ],\n \"201\": [\n {\n Id: \"201\",\n ShortName: \"PE\",\n Country: \"Peru\",\n Region: \"Lima\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"51\"\n }\n ],\n \"202\": [\n {\n Id: \"202\",\n ShortName: \"PH\",\n Country: \"Philippines\",\n Region: \"Manila\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"63\"\n }\n ],\n \"203\": [\n {\n Id: \"203\",\n ShortName: \"001\",\n Country: \"Pitcairn\",\n Region: \"Adamstown\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"870\"\n }\n ],\n \"204\": [\n {\n Id: \"204\",\n ShortName: \"PL\",\n Country: \"Poland\",\n Region: \"Warsaw, Krakow\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"48\"\n }\n ],\n \"205\": [\n {\n Id: \"205\",\n ShortName: \"PT\",\n Country: \"Portugal\",\n Region: \"Azores, Ponta Delgada\",\n CityList: \"\",\n TimeZone: -1,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"0\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1521943200000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1553997600000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1585447200000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1616896800000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"0\",\n startTimeMili: \"1648346400000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"351\"\n }\n ],\n \"206\": [\n {\n Id: \"206\",\n ShortName: \"PT\",\n Country: \"Portugal\",\n Region: \"Lisbon, Funchal\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"351\"\n }\n ],\n \"207\": [\n {\n Id: \"207\",\n ShortName: \"PR\",\n Country: \"Puerto Rico\",\n Region: \"San Juan\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"208\": [\n {\n Id: \"208\",\n ShortName: \"QA\",\n Country: \"Qatar\",\n Region: \"Doha\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"974\"\n }\n ],\n \"209\": [\n {\n Id: \"209\",\n ShortName: \"RE\",\n Country: \"Reunion\",\n Region: \"Saint Denis\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"262\"\n }\n ],\n \"210\": [\n {\n Id: \"210\",\n ShortName: \"RO\",\n Country: \"Romania\",\n Region: \"Bucharest\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"40\"\n }\n ],\n \"211\": [\n {\n Id: \"211\",\n ShortName: \"RU\",\n Country: \"Russian Federation\",\n Region: \"Kaliningrad\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 11,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"212\": [\n {\n Id: \"212\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Moscow, St. Petersburg\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 10,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"213\": [\n {\n Id: \"213\",\n ShortName: \"RU\",\n Country: \"Russian Federation\",\n Region: \"Samara, Udmurtia\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 9,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"214\": [\n {\n Id: \"214\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Yekaterinburg\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 8,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"215\": [\n {\n Id: \"215\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Krasnoyarsk, Novosibirsk, Altai Republic, Altaskiy Kray\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 6,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"216\": [\n {\n Id: \"216\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Omsk\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 7,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"217\": [\n {\n Id: \"217\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Irkutsk\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"218\": [\n {\n Id: \"218\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Yakutsk\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"219\": [\n {\n Id: \"219\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Vladivistok\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"220\": [\n {\n Id: \"220\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Magadan, Sakha (Eastern)\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"221\": [\n {\n Id: \"221\",\n ShortName: \"RU\",\n Country: \"Russian Federation\",\n Region: \"Chukot, Kamchatka, Koryak\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\"\n }\n ],\n \"222\": [\n {\n Id: \"222\",\n ShortName: \"RW\",\n Country: \"Rwanda\",\n Region: \"Kigali\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"250\"\n }\n ],\n \"223\": [\n {\n Id: \"223\",\n ShortName: \"GP\",\n Country: \"Saint Barthelemy\",\n Region: \"Gustavia\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"590\"\n }\n ],\n \"224\": [\n {\n Id: \"224\",\n ShortName: \"SH\",\n Country: \"Saint Helena\",\n Region: \"Jamestown\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"290\"\n }\n ],\n \"225\": [\n {\n Id: \"225\",\n ShortName: \"KN\",\n Country: \"Saint Kitts and Nevis\",\n Region: \"Basseterre\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1869\"\n }\n ],\n \"226\": [\n {\n Id: \"226\",\n ShortName: \"LC\",\n Country: \"Saint Lucia\",\n Region: \"Castries\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1758\"\n }\n ],\n \"227\": [\n {\n Id: \"227\",\n ShortName: \"PM\",\n Country: \"Saint Pierre and Miquelon\",\n Region: \"Saint Pierre\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-2\",\n startTimeMili: \"1331442000000\",\n endTimeMili: \"1352001600000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1362891600000\",\n endTimeMili: \"1383451200000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1394341200000\",\n endTimeMili: \"1414900800000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1425790800000\",\n endTimeMili: \"1446350400000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1457845200000\",\n endTimeMili: \"1478404800000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1489294800000\",\n endTimeMili: \"1509854400000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1520744400000\",\n endTimeMili: \"1541304000000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1552194000000\",\n endTimeMili: \"1572753600000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1583643600000\",\n endTimeMili: \"1604203200000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1615698000000\",\n endTimeMili: \"1636257600000\"\n },\n {\n offset: \"-2\",\n startTimeMili: \"1647147600000\",\n endTimeMili: \"1667707200000\"\n }\n ],\n CountryCallingCode: \"508\"\n }\n ],\n \"228\": [\n {\n Id: \"228\",\n ShortName: \"VC\",\n Country: \"Saint Vincent and The Grenadines\",\n Region: \"Kingstown\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1784\"\n }\n ],\n \"229\": [\n {\n Id: \"229\",\n ShortName: \"WS\",\n Country: \"Samoa\",\n Region: \"Apia\",\n CityList: \"\",\n TimeZone: 13,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"14\",\n startTimeMili: \"1380376800000\",\n endTimeMili: \"1396706400000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1411826400000\",\n endTimeMili: \"1428156000000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1443276000000\",\n endTimeMili: \"1459605600000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1474725600000\",\n endTimeMili: \"1491055200000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1506175200000\",\n endTimeMili: \"1522504800000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1538229600000\",\n endTimeMili: \"1554559200000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1569679200000\",\n endTimeMili: \"1586008800000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1601128800000\",\n endTimeMili: \"1617458400000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1632578400000\",\n endTimeMili: \"1648908000000\"\n },\n {\n offset: \"14\",\n startTimeMili: \"1664028000000\",\n endTimeMili: \"1680357600000\"\n }\n ],\n CountryCallingCode: \"685\"\n }\n ],\n \"230\": [\n {\n Id: \"230\",\n ShortName: \"SM\",\n Country: \"San Marino\",\n Region: \"San Marino\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"378\"\n }\n ],\n \"231\": [\n {\n Id: \"231\",\n ShortName: \"ST\",\n Country: \"Sao Tome and Principe\",\n Region: \"Sao Tome\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"239\"\n }\n ],\n \"232\": [\n {\n Id: \"232\",\n ShortName: \"SA\",\n Country: \"Saudi Arabia\",\n Region: \"Riyadh, Mecca\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"966\"\n }\n ],\n \"233\": [\n {\n Id: \"233\",\n ShortName: \"SN\",\n Country: \"Senegal\",\n Region: \"Dakar\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"221\"\n }\n ],\n \"234\": [\n {\n Id: \"234\",\n ShortName: \"RS\",\n Country: \"Serbia\",\n Region: \"Belgrade\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"381\"\n }\n ],\n \"235\": [\n {\n Id: \"235\",\n ShortName: \"SC\",\n Country: \"Seychelles\",\n Region: \"Victoria\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"248\"\n }\n ],\n \"236\": [\n {\n Id: \"236\",\n ShortName: \"SL\",\n Country: \"Sierra Leone\",\n Region: \"Freetown\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"232\"\n }\n ],\n \"237\": [\n {\n Id: \"237\",\n ShortName: \"SG\",\n Country: \"Singapore\",\n Region: \"Singapore City\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"65\"\n }\n ],\n \"294\": [\n {\n Id: \"294\",\n ShortName: \"SX\",\n Country: \"Sint Maarten\",\n Region: \"Philipsburg\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"238\": [\n {\n Id: \"238\",\n ShortName: \"SK\",\n Country: \"Slovakia\",\n Region: \"Bratislava\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"421\"\n }\n ],\n \"239\": [\n {\n Id: \"239\",\n ShortName: \"SI\",\n Country: \"Slovenia\",\n Region: \"Ljubljana\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"386\"\n }\n ],\n \"240\": [\n {\n Id: \"240\",\n ShortName: \"SB\",\n Country: \"Solomon Islands\",\n Region: \"Honiara\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"677\"\n }\n ],\n \"241\": [\n {\n Id: \"241\",\n ShortName: \"SO\",\n Country: \"Somalia\",\n Region: \"Mogadishu\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"252\"\n }\n ],\n \"242\": [\n {\n Id: \"242\",\n ShortName: \"ZA\",\n Country: \"South Africa\",\n Region: \"Cape Town, Johannesburg, Pretoria\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"27\"\n }\n ],\n \"243\": [\n {\n Id: \"243\",\n ShortName: \"ES\",\n Country: \"Spain\",\n Region: \"Canary Islands\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"34\"\n }\n ],\n \"244\": [\n {\n Id: \"244\",\n ShortName: \"ES\",\n Country: \"Spain\",\n Region: \"Mainland (Madrid, Barcelona), Baleares, Melilla, Ceuta\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"34\"\n }\n ],\n \"245\": [\n {\n Id: \"245\",\n ShortName: \"LK\",\n Country: \"Sri Lanka\",\n Region: \"Colombo\",\n CityList: \"\",\n TimeZone: 5.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"94\"\n }\n ],\n \"246\": [\n {\n Id: \"246\",\n ShortName: \"SD\",\n Country: \"Sudan\",\n Region: \"Khartoum\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"249\"\n }\n ],\n \"247\": [\n {\n Id: \"247\",\n ShortName: \"SR\",\n Country: \"Suriname\",\n Region: \"Paramaribo\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"597\"\n }\n ],\n \"248\": [\n {\n Id: \"248\",\n ShortName: \"SJ\",\n Country: \"Svalbard and Jan Mayen\",\n Region: \"Longyearbyen\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"47\"\n }\n ],\n \"249\": [\n {\n Id: \"249\",\n ShortName: \"SZ\",\n Country: \"Swaziland\",\n Region: \"Mbabane\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"268\"\n }\n ],\n \"250\": [\n {\n Id: \"250\",\n ShortName: \"SE\",\n Country: \"Sweden\",\n Region: \"Stockholm\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"46\"\n }\n ],\n \"251\": [\n {\n Id: \"251\",\n ShortName: \"CH\",\n Country: \"Switzerland\",\n Region: \"Zurich, Bern, Geneva\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"41\"\n }\n ],\n \"252\": [\n {\n Id: \"252\",\n ShortName: \"SY\",\n Country: \"Syrian Arab Republic\",\n Region: \"Damascus\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333058400000\",\n endTimeMili: \"1351202400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364508000000\",\n endTimeMili: \"1383253200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1395957600000\",\n endTimeMili: \"1414702800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427407200000\",\n endTimeMili: \"1446152400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1458856800000\",\n endTimeMili: \"1477602000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490911200000\",\n endTimeMili: \"1509051600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1522364400000\",\n endTimeMili: \"1540497600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553814000000\",\n endTimeMili: \"1571947200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585263600000\",\n endTimeMili: \"1604001600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616713200000\",\n endTimeMili: \"1635451200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648162800000\",\n endTimeMili: \"1666900800000\"\n }\n ],\n CountryCallingCode: \"963\"\n }\n ],\n \"253\": [\n {\n Id: \"253\",\n ShortName: \"TW\",\n Country: \"Taiwan\",\n Region: \"Taipei\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"886\"\n }\n ],\n \"254\": [\n {\n Id: \"254\",\n ShortName: \"TJ\",\n Country: \"Tajikistan\",\n Region: \"Dushanbe\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"992\"\n }\n ],\n \"255\": [\n {\n Id: \"255\",\n ShortName: \"TZ\",\n Country: \"Tanzania, United Republic of\",\n Region: \"Dar es Salaam\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"255\"\n }\n ],\n \"256\": [\n {\n Id: \"256\",\n ShortName: \"TH\",\n Country: \"Thailand\",\n Region: \"Bangkok\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"66\"\n }\n ],\n \"257\": [\n {\n Id: \"257\",\n ShortName: \"TL\",\n Country: \"Timor-Leste\",\n Region: \"Dili\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"670\"\n }\n ],\n \"258\": [\n {\n Id: \"258\",\n ShortName: \"TG\",\n Country: \"Togo\",\n Region: \"Lome\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"228\"\n }\n ],\n \"259\": [\n {\n Id: \"259\",\n ShortName: \"TK\",\n Country: \"Tokelau\",\n Region: \"Fakaofo\",\n CityList: \"\",\n TimeZone: 13,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"690\"\n }\n ],\n \"260\": [\n {\n Id: \"260\",\n ShortName: \"TT\",\n Country: \"Trinidad and Tobago\",\n Region: \"Port-of-Spain\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"261\": [\n {\n Id: \"261\",\n ShortName: \"TN\",\n Country: \"Tunisia\",\n Region: \"Tunis\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"216\"\n }\n ],\n \"262\": [\n {\n Id: \"262\",\n ShortName: \"TR\",\n Country: \"Turkey\",\n Region: \"Istanbul, Ankara\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"90\"\n }\n ],\n \"263\": [\n {\n Id: \"263\",\n ShortName: \"TM\",\n Country: \"Turkmenistan\",\n Region: \"Ashgabat\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"993\"\n }\n ],\n \"264\": [\n {\n Id: \"264\",\n ShortName: \"TC\",\n Country: \"Turks and Caicos Islands\",\n Region: \"Grand Turk\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\"\n }\n ],\n CountryCallingCode: \"1649\"\n }\n ],\n \"265\": [\n {\n Id: \"265\",\n ShortName: \"TV\",\n Country: \"Tuvalu\",\n Region: \"Funafuti\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"688\"\n }\n ],\n \"266\": [\n {\n Id: \"266\",\n ShortName: \"UG\",\n Country: \"Uganda\",\n Region: \"Kampala\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"256\"\n }\n ],\n \"267\": [\n {\n Id: \"267\",\n ShortName: \"UA\",\n Country: \"Ukraine\",\n Region: \"Kiev\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"380\"\n }\n ],\n \"268\": [\n {\n Id: \"268\",\n ShortName: \"AE\",\n Country: \"United Arab Emirates\",\n Region: \"Abu Dhabi, Dubai\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"971\"\n }\n ],\n \"269\": [\n {\n Id: \"269\",\n ShortName: \"GB\",\n Country: \"United Kingdom\",\n Region: \"London, Birmingham, Glasgow\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\"\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\"\n }\n ],\n CountryCallingCode: \"44\"\n }\n ],\n \"270\": [\n {\n Id: \"270\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Eastern time\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\"\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"271\": [\n {\n Id: \"271\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Central time\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1331452800000\",\n endTimeMili: \"1352012400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1362902400000\",\n endTimeMili: \"1383462000000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1394352000000\",\n endTimeMili: \"1414911600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1425801600000\",\n endTimeMili: \"1446361200000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1457856000000\",\n endTimeMili: \"1478415600000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1489305600000\",\n endTimeMili: \"1509865200000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1520755200000\",\n endTimeMili: \"1541314800000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1552204800000\",\n endTimeMili: \"1572764400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1583654400000\",\n endTimeMili: \"1604214000000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1615708800000\",\n endTimeMili: \"1636268400000\"\n },\n {\n offset: \"-5\",\n startTimeMili: \"1647158400000\",\n endTimeMili: \"1667718000000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"272\": [\n {\n Id: \"272\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Arizona\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"273\": [\n {\n Id: \"273\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Mountain time\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"-6\",\n startTimeMili: \"1331456400000\",\n endTimeMili: \"1352016000000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1362906000000\",\n endTimeMili: \"1383465600000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1394355600000\",\n endTimeMili: \"1414915200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1425805200000\",\n endTimeMili: \"1446364800000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1457859600000\",\n endTimeMili: \"1478419200000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1489309200000\",\n endTimeMili: \"1509868800000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1520758800000\",\n endTimeMili: \"1541318400000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1552208400000\",\n endTimeMili: \"1572768000000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1583658000000\",\n endTimeMili: \"1604217600000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1615712400000\",\n endTimeMili: \"1636272000000\"\n },\n {\n offset: \"-6\",\n startTimeMili: \"1647162000000\",\n endTimeMili: \"1667721600000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"274\": [\n {\n Id: \"274\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Pacific time\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 5,\n HasDayLightSavings: [\n {\n offset: \"-7\",\n startTimeMili: \"1331460000000\",\n endTimeMili: \"1352019600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1362909600000\",\n endTimeMili: \"1383469200000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1394359200000\",\n endTimeMili: \"1414918800000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1425808800000\",\n endTimeMili: \"1446368400000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1457863200000\",\n endTimeMili: \"1478422800000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1489312800000\",\n endTimeMili: \"1509872400000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1520762400000\",\n endTimeMili: \"1541322000000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1552212000000\",\n endTimeMili: \"1572771600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1583661600000\",\n endTimeMili: \"1604221200000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1615716000000\",\n endTimeMili: \"1636275600000\"\n },\n {\n offset: \"-7\",\n startTimeMili: \"1647165600000\",\n endTimeMili: \"1667725200000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"275\": [\n {\n Id: \"275\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Alaska\",\n CityList: \"\",\n TimeZone: -9,\n DisplayOrder: 6,\n HasDayLightSavings: [\n {\n offset: \"-8\",\n startTimeMili: \"1331463600000\",\n endTimeMili: \"1352023200000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1362913200000\",\n endTimeMili: \"1383472800000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1394362800000\",\n endTimeMili: \"1414922400000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1425812400000\",\n endTimeMili: \"1446372000000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1457866800000\",\n endTimeMili: \"1478426400000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1489316400000\",\n endTimeMili: \"1509876000000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1520766000000\",\n endTimeMili: \"1541325600000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1552215600000\",\n endTimeMili: \"1572775200000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1583665200000\",\n endTimeMili: \"1604224800000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1615719600000\",\n endTimeMili: \"1636279200000\"\n },\n {\n offset: \"-8\",\n startTimeMili: \"1647169200000\",\n endTimeMili: \"1667728800000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"276\": [\n {\n Id: \"276\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Alaska (Aleutian Islands)\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 7,\n HasDayLightSavings: [\n {\n offset: \"-9\",\n startTimeMili: \"1394366400000\",\n endTimeMili: \"1414926000000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1425816000000\",\n endTimeMili: \"1446375600000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1457870400000\",\n endTimeMili: \"1478430000000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1489320000000\",\n endTimeMili: \"1509879600000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1520769600000\",\n endTimeMili: \"1541329200000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1552219200000\",\n endTimeMili: \"1572778800000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1583668800000\",\n endTimeMili: \"1604228400000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1615723200000\",\n endTimeMili: \"1636282800000\"\n },\n {\n offset: \"-9\",\n startTimeMili: \"1647172800000\",\n endTimeMili: \"1667732400000\"\n }\n ],\n CountryCallingCode: \"1\"\n }\n ],\n \"277\": [\n {\n Id: \"277\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Hawaii\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 8,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"278\": [\n {\n Id: \"278\",\n ShortName: \"UY\",\n Country: \"Uruguay\",\n Region: \"Montevideo\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"598\"\n }\n ],\n \"279\": [\n {\n Id: \"279\",\n ShortName: \"UZ\",\n Country: \"Uzbekistan\",\n Region: \"Tashkent\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"998\"\n }\n ],\n \"280\": [\n {\n Id: \"280\",\n ShortName: \"VU\",\n Country: \"Vanuatu\",\n Region: \"Port-Vila\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"678\"\n }\n ],\n \"281\": [\n {\n Id: \"281\",\n ShortName: \"VE\",\n Country: \"Venezuela\",\n Region: \"Caracas\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"58\"\n }\n ],\n \"282\": [\n {\n Id: \"282\",\n ShortName: \"VN\",\n Country: \"Vietnam\",\n Region: \"Hanoi, Ho Chi Minh City\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"84\"\n }\n ],\n \"283\": [\n {\n Id: \"283\",\n ShortName: \"VG\",\n Country: \"Virgin Islands, British\",\n Region: \"Road Town\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"284\": [\n {\n Id: \"284\",\n ShortName: \"VI\",\n Country: \"Virgin Islands, U.S.\",\n Region: \"Charlotte Amamlie\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\"\n }\n ],\n \"285\": [\n {\n Id: \"285\",\n ShortName: \"001\",\n Country: \"Wake Island (U.S.)\",\n Region: \"Wake Islands\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"808\"\n }\n ],\n \"286\": [\n {\n Id: \"286\",\n ShortName: \"WF\",\n Country: \"Wallis and Futuna\",\n Region: \"Mata-Utu\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"681\"\n }\n ],\n \"287\": [\n {\n Id: \"287\",\n ShortName: \"YE\",\n Country: \"Yemen\",\n Region: \"Sanaa\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"967\"\n }\n ],\n \"288\": [\n {\n Id: \"288\",\n ShortName: \"ZM\",\n Country: \"Zambia\",\n Region: \"Lusaka\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"260\"\n }\n ],\n \"289\": [\n {\n Id: \"289\",\n ShortName: \"ZW\",\n Country: \"Zimbabwe\",\n Region: \"Harare\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"263\"\n }\n ]\n }\n ],\n PriorityCountryId: [\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"45\",\n \"46\",\n \"47\",\n \"48\",\n \"49\",\n \"50\",\n \"51\",\n \"52\",\n \"53\",\n \"54\",\n \"55\",\n \"56\",\n \"57\",\n \"95\",\n \"103\",\n \"269\",\n \"270\",\n \"271\",\n \"272\",\n \"273\",\n \"274\",\n \"275\",\n \"276\",\n \"277\"\n ]\n};\n","import { Interaction, Message, WebsiteSettings } from \"./interaction.interface\";\n\nexport enum ConversationState {\n Active = \"active\",\n Initialised = \"initialised\",\n /* these two status are not sent by server */\n Finished = \"finshed\",\n Restarting = \"Restarting\"\n}\n\nexport enum NotificationStyle {\n NotificationBadgeWithWelcomeInteraction = \"notification_badge_and_welcome_interactions\",\n NotificationBadgeOnly = \"notification_badge_only\"\n}\n\nexport interface IWidgetOptions {\n botId: null | string;\n pageUrl: string;\n websiteId: string;\n preview: boolean;\n pageTitle: string;\n directBot: boolean;\n}\n\nexport interface ISetupWidgetResponse {\n botId: null | string;\n accountId: string;\n conversationId: string;\n isFirstTime: boolean;\n chSessionId: null | string;\n conversationState: ConversationState;\n showClosedWidgetInteractions: boolean;\n welcomeDisplayStyle: NotificationStyle;\n settings: WebsiteSettings;\n session_timeout: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n}\n\nexport interface FetchConversationResponse {\n response_interactions: Message[];\n welcomeInteractions: (Interaction & { log_id: number })[];\n total: number;\n pageSize: number;\n}\n\nexport const LOCAL_STORAGE_SESSION_KEY_PREFIX = \"ch_session\";\n\nexport const LOCAL_STORAGE_CONTACT_KEY_PREFIX = \"ch_contact\";\n\nexport const ANALYTICS_KEY_PREFIX = \"ch_analytics\";\nexport const CONSENT_ANALYTIC_COOKIE_VALUE = \"Analytics_is_ON_after_consent\";\nexport const ANALYTIC_COOKIE_VALUE = \"Analytics_is_ON\";\n\nexport const LIVE_CHAT_CHANNEL = \"live_chat\";\n\nexport interface Socket {\n on(event: string, fn: Function): void;\n emit(event: string, ...args: any[]): void;\n close(): void;\n connected: boolean;\n}\n\nexport interface Analytics {\n analytics_on_consent: boolean;\n}\n\nexport interface StorageData {\n contactCookie: CookieData;\n sessionCookie: CookieData;\n analyticCookie: CookieData;\n}\n\nexport interface CookieData {\n name: string;\n value: string;\n expires: string;\n same_site: string;\n path: string;\n secure: string;\n}\n\nexport const CONTACT_COOKIE_HEADER_KEY = \"set-co-contact-cookie\";\nexport const SESSION_COOKIE_HEADER_KEY = \"set-co-session-cookie\";\nexport const ANALYTIC_COOKIE_HEADER_KEY = \"set-co-analytic-cookie\";\n\nexport const RETRY_ANSWER_TIMEOUT = 10000;\n\nexport const mockSessionCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_session_web-test\",\n value: \"test-session\",\n expires: \"2020-09-18T06:30:00.464Z\"\n};\nexport const mockContactCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_contact_web-test\",\n value: \"test-contact\",\n expires: \"2020-12-17T06:00:00.463Z\"\n};\nexport const mockAnalyticCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_analytic_web-test\",\n value: \"test-analytic\",\n expires: \"2020-12-17T06:00:00.463Z\"\n};\n","import { Analytics, StorageData } from \"../constants\";\nexport class MemoryStorage {\n static currentSession: string;\n static currentContact: string;\n static currentAnalytics: string;\n static analyticsSetting: Analytics;\n\n public static getSession() {\n return this.currentSession;\n }\n\n public static setValues(storageData: StorageData) {\n const analyticCookie = this.getAnalytics();\n this.currentSession = storageData.sessionCookie.value;\n this.currentContact = storageData.contactCookie.value;\n this.currentAnalytics = analyticCookie || storageData.analyticCookie.value;\n }\n\n public static getContact() {\n return this.currentContact;\n }\n\n public static setAnalytics(storageData: StorageData) {\n const analyticCookie = this.getAnalytics();\n this.currentContact = storageData.contactCookie.value;\n this.currentAnalytics = analyticCookie || storageData.analyticCookie.value;\n }\n\n public static getAnalytics() {\n return this.currentAnalytics;\n }\n}\n","import { Analytics, StorageData } from \"../constants\";\nimport { ICookie } from \"../interfaces/cookie\";\n\nexport class CookieStorage {\n static analyticsSetting: Analytics;\n static currentSession: string;\n static currentContact: string;\n static currentAnalytics: string;\n\n public static getSession(): string {\n return this.currentSession;\n }\n\n public static getContact(): string {\n return this.currentContact;\n }\n\n /**\n * Sets the analytics cookie\n */\n public static setAnalytics(storage: StorageData) {\n this.currentAnalytics = storage.analyticCookie.value;\n window.parent.postMessage(\n {\n type: \"setCookie\",\n values: [\n {\n name: storage.analyticCookie.name,\n expiry: storage.analyticCookie.expires,\n value: storage.analyticCookie.value,\n same_site: storage.analyticCookie.same_site,\n path: storage.analyticCookie.path\n },\n {\n name: storage.contactCookie.name,\n expiry: storage.contactCookie.expires,\n value: storage.contactCookie.value,\n same_site: storage.analyticCookie.same_site,\n path: storage.analyticCookie.path\n }\n ]\n },\n \"*\"\n );\n }\n\n /**\n * Gets the analytics cookie\n */\n public static getAnalytics(): string {\n return this.currentAnalytics;\n }\n\n public static setValues(storageData: StorageData) {\n let cookiesValues: ICookie[] = [];\n\n if (storageData.sessionCookie) {\n this.currentSession = storageData.sessionCookie.value;\n\n cookiesValues.push({\n name: storageData.sessionCookie.name,\n expiry: storageData.sessionCookie.expires,\n value: this.currentSession,\n same_site: storageData.sessionCookie.same_site,\n path: storageData.sessionCookie.path\n });\n }\n\n if (storageData.contactCookie) {\n this.currentContact = storageData.contactCookie.value;\n\n cookiesValues.push({\n name: storageData.contactCookie.name,\n expiry: storageData.contactCookie.expires,\n value: this.currentContact,\n same_site: storageData.contactCookie.same_site,\n path: storageData.contactCookie.path\n });\n }\n\n if (storageData.analyticCookie) {\n this.currentAnalytics = storageData.analyticCookie.value;\n\n cookiesValues.push({\n name: storageData.analyticCookie.name,\n expiry: storageData.analyticCookie.expires,\n value: this.currentAnalytics,\n same_site: storageData.analyticCookie.same_site,\n path: storageData.analyticCookie.path\n });\n }\n\n window.parent.postMessage(\n {\n type: \"setCookie\",\n values: cookiesValues\n },\n \"*\"\n );\n }\n}\n","import { MemoryStorage } from \"./memory-storage\";\nimport { CookieStorage } from \"./cookie-storage\";\n\nexport class StorageStrategy {\n private static strategy: MemoryStorage | CookieStorage = MemoryStorage;\n\n public static getStrategy(): any {\n return StorageStrategy.strategy;\n }\n\n public static setStrategy(): void {\n // As we are using first party cookies\n // We can always set cookies in normal and incognito mode\n StorageStrategy.strategy = CookieStorage;\n // if (navigator.cookieEnabled) {\n // StorageStrategy.strategy = CookieStorage;\n // } else {\n // StorageStrategy.strategy = MemoryStorage;\n // }\n }\n}\n","export function createGuid() {\n function _p8(s) {\n var p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(false) + _p8(true) + _p8(true) + _p8(false);\n}\n","import { createGuid } from \"./helpers\";\n\ninterface apiOptions {\n headers: {};\n body?: {};\n credentials?: boolean;\n}\n\ninterface fetchOptions {\n method: string;\n headers: {};\n body: string;\n credentials?: \"include\";\n}\n\nexport class ApiClient {\n static get(url: string, options: apiOptions) {\n return this.client(\n url,\n this.updateOptions(options),\n \"get\",\n options.credentials || false\n );\n }\n\n static post(url: string, options: apiOptions) {\n return this.client(\n url,\n this.updateOptions(options),\n \"post\",\n options.credentials || false\n );\n }\n\n private static client(\n url,\n options: apiOptions,\n httpVerb: string,\n credentials: boolean\n ) {\n let fetchOptions: fetchOptions = {\n method: httpVerb,\n headers: options.headers,\n body: JSON.stringify(options.body)\n };\n if (credentials) {\n fetchOptions.credentials = \"include\";\n }\n return fetch(url, fetchOptions);\n }\n\n private static updateOptions(options: any) {\n let updatedOptions = { ...options };\n updatedOptions.headers = {\n ...options.headers,\n \"x-request-id\": createGuid()\n };\n return updatedOptions;\n }\n}\n","import {\n IWidgetOptions,\n ISetupWidgetResponse,\n ANALYTIC_COOKIE_HEADER_KEY,\n CONTACT_COOKIE_HEADER_KEY,\n SESSION_COOKIE_HEADER_KEY\n} from \"./constants\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { ApiClient } from \"./utils/api-client\";\n\n/**\n * Gets bot in current session\n * If botId is not found in response then there is no active bot and all other fields will be empty\n */\nexport async function setupWidget(\n options: IWidgetOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n let chSessionId = options.preview ? null : storage.getSession();\n let chContactId = options.preview ? null : storage.getContact();\n let chAnalytics = options.preview ? null : storage.getAnalytics();\n const response = await ApiClient.post(\n process.env.REACT_APP_SETTINGS_API + \"setup-widget\",\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: {\n pageUrl: options.pageUrl,\n pageTitle: options.pageTitle,\n websiteId: options.websiteId,\n botId: options.botId,\n preview: options.preview,\n directBot: options.directBot,\n chContactId,\n chAnalytics,\n chSessionId\n },\n credentials: true\n }\n );\n\n const json = await response.json();\n if (json.success !== true) return null;\n\n let sessionId = null;\n let sessionCookieData;\n let contactCookieData;\n let analyticCookieData;\n\n try {\n sessionCookieData = JSON.parse(\n response.headers.get(SESSION_COOKIE_HEADER_KEY) || \"\"\n );\n sessionId = sessionCookieData.value;\n } catch (e) {\n sessionCookieData = null;\n }\n\n try {\n contactCookieData = JSON.parse(\n response.headers.get(CONTACT_COOKIE_HEADER_KEY) || \"\"\n );\n } catch (e) {\n contactCookieData = null;\n }\n\n try {\n analyticCookieData = JSON.parse(\n response.headers.get(ANALYTIC_COOKIE_HEADER_KEY) || \"\"\n );\n } catch (e) {\n analyticCookieData = null;\n }\n\n let storageData = {};\n\n if (options.preview) {\n storageData = {\n contactCookie: contactCookieData,\n sessionCookie: sessionCookieData\n };\n } else {\n storageData = {\n contactCookie: contactCookieData,\n sessionCookie: sessionCookieData,\n analyticCookie: analyticCookieData\n };\n }\n\n storage.setValues(storageData);\n\n if (response.status === 200 || response.status === 209) {\n return {\n botId: json.data.bot_id || null,\n accountId: json.data.account_id,\n conversationId: json.data.conversation_id,\n chSessionId: sessionId,\n isFirstTime: json.data.is_first_time,\n conversationState: json.data.conversation_state,\n showClosedWidgetInteractions: json.data.show_closed_widget_interactions,\n welcomeDisplayStyle: json.data.welcome_display_style,\n settings: getWebsiteSetting(json.data.settings, options.websiteId),\n session_timeout: json.data.session_timeout,\n oncehubBrandingUrl: json.data.branding_url,\n showPromotionalMessage: json.data.show_promotional_message\n };\n } else {\n return null;\n }\n}\n\nfunction getWebsiteSetting(data, websiteId) {\n return {\n id: websiteId,\n botName: data?.bot_name,\n companyName: data?.company_name,\n colour: data?.colour,\n textColour: data?.text_colour,\n shape: data?.shape,\n widgetIcon: data?.widget_icon,\n botIcon: data?.bot_icon\n };\n}\n","import { FetchConversationResponse } from \"./constants\";\nimport { ApiClient } from \"./utils/api-client\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { Interaction } from \"./interaction.interface\";\n\n/** Fetches current conversation. In preview we don't fetch conversation */\nexport async function fetchConverasation(\n websiteId: string,\n page: number = 1\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const url =\n process.env.REACT_APP_SETTINGS_API +\n \"response-interactions?page=\" +\n page +\n \"&website_id=\" +\n websiteId +\n \"&ch_session_id=\" +\n storage.getSession();\n const response = await ApiClient.get(url, {\n headers: {\n \"content-type\": \"application/json\"\n }\n });\n if (response.status !== 200) {\n throw new Error(\"Unexpected response from server\");\n }\n const total = response.headers.get(\"total\");\n const pageSize = response.headers.get(\"per-page\");\n if (total == null || pageSize == null) throw new Error();\n const json = await response.json();\n json.response_interactions = json.response_interactions.map(item => ({\n ...item,\n id: item.log_id.toString()\n }));\n json.response_interactions.reverse();\n const welcomeInteractions: (Interaction & { log_id: number })[] = [];\n for (let i = json.response_interactions.length - 1; i >= 0; i--) {\n const message = json.response_interactions[i];\n if (message.sent_by === \"bot\" && !message.is_read) {\n welcomeInteractions.push(message);\n }\n }\n return {\n response_interactions: json.response_interactions,\n welcomeInteractions: welcomeInteractions.reverse(),\n total: parseInt(total),\n pageSize: parseInt(pageSize)\n };\n}\n","import {\n Message,\n Interaction,\n ConfirmEventData,\n WebsiteSettings,\n Question // release toggle name MakeBotsWorkAtScale\n} from \"./interaction.interface\";\nimport { NotificationStyle, ConversationState } from \"./constants\";\nimport {\n ErrorWhileBlocking,\n ErrorWhileConfirming,\n FetchSlotsAPIErrorResponse\n} from \"./widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type\";\n\nexport enum SocketStatus {\n CONNECTED,\n DISCONNECTED,\n CONNECTING\n}\n\nexport interface Bot {\n id: string | null;\n session_timeout: number;\n hasCloseNotifications: boolean;\n notificationStyle: NotificationStyle;\n}\n\nexport interface IAppContext {\n preview: boolean;\n settings: WebsiteSettings;\n bot: Bot;\n accountId: string;\n conversationId: string;\n state: ConversationState | null;\n socket: SocketStatus;\n open: boolean;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n liveChatchannel?: any;\n liveChatUsers?: {};\n liveChatObj?: any;\n}\n\nexport interface IConversationContext {\n messages: Message[];\n welcomeInteractions?: [];\n messageFailed: boolean;\n pageSize: number;\n total: number;\n}\n\nexport interface AppState {\n liveChatUsers?: {};\n startedAt: number;\n bot: null | Bot;\n accountId: string;\n conversationId: string;\n settings: null | WebsiteSettings;\n liveChatchannel?: any;\n liveChatObj?: any;\n messages: Message[];\n welcomeInteractions?: [];\n page: number;\n total: number;\n state: ConversationState | null;\n socket: SocketStatus;\n open: boolean;\n messageFailed: boolean;\n pageSize: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n}\n\nexport type AppAction =\n | {\n type: \"SETUP\";\n data: {\n bot: Bot;\n accountId: string;\n conversationId: string;\n settings: WebsiteSettings;\n messages: Message[];\n total: number;\n state: ConversationState;\n open: boolean;\n pageSize: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n };\n }\n | { type: \"RESTART\" }\n | { type: \"SOCKET_CONNECT\" }\n | { type: \"SOCKET_CONNECTING\" }\n | { type: \"SOCKET_DISCONNECT\" }\n | {\n type: \"NEW_MESSAGE\";\n liveChatchannel?: any;\n liveChatUsers?: any;\n message: Message;\n }\n | {\n type: \"LIVE_CHAT_HISTORY\";\n messageHistory: Message[];\n liveChatUsers?: any;\n liveChatchannel?: any;\n }\n | { type: \"BOT_RESPONSE\" }\n | { type: \"INITIATED\" }\n | { type: \"OPEN_WIDGET\" }\n | { type: \"OPEN_WIDGET_LINK\" }\n | { type: \"CLOSE_WIDGET\" }\n | { type: \"MESSAGE_FAILED\" }\n | {\n type: \"SCHEDULE_RESPONSE\";\n response:\n | ErrorWhileConfirming\n | ConfirmEventData\n | FetchSlotsAPIErrorResponse\n | ErrorWhileBlocking;\n }\n | { type: \"INIT_LIVE_CHAT\"; liveChatObj: any }\n | { type: \"LIVE_CHAT_TIMEOUT\" }\n | { type: \"END_CONVERSATION\" }\n | { type: \"INTERACTION_SEEN\" }\n | { type: \"CLOSED_NOTIFICATIONS\" }\n | { type: \"ANSWER_DELIVERED\"; id: string }\n | { type: \"RESEND_LAST_MESSAGE\" }\n | { type: \"UPDATE_TIMEZONE\"; timezoneId: string }\n | { type: \"CLEAN_DOUBLE_BOOKING_ERROR\" }\n | { type: \"APPEND_MISSED_MESSAGE\"; messages: Message[] }\n | { type: \"LOADING_NEXT_PAGE\"; page: number }\n | { type: \"LOAD_PAGE\"; messages: Message[] };\n\nexport function reducer(state: AppState, action: AppAction): AppState {\n switch (action.type) {\n case \"SETUP\":\n return {\n ...action.data,\n page: 1,\n accountId: action.data.accountId,\n conversationId: action.data.conversationId,\n startedAt: state.startedAt,\n socket: state.socket,\n messageFailed: false\n };\n case \"RESTART\":\n return {\n ...state,\n messages: [],\n page: 0,\n startedAt: Date.now(),\n total: 0,\n state: ConversationState.Restarting,\n messageFailed: false\n };\n case \"SOCKET_CONNECT\":\n return {\n ...state,\n socket: SocketStatus.CONNECTED\n };\n case \"SOCKET_CONNECTING\":\n return {\n ...state,\n socket: SocketStatus.CONNECTING\n };\n case \"SOCKET_DISCONNECT\":\n return {\n ...state,\n socket: SocketStatus.DISCONNECTED\n };\n case \"INITIATED\":\n return {\n ...state,\n state: ConversationState.Active\n };\n case \"NEW_MESSAGE\":\n return {\n ...state,\n liveChatchannel: action.liveChatchannel,\n liveChatUsers: action.liveChatUsers,\n messageFailed: false,\n total: state.total + 1,\n messages: [...state.messages, action.message]\n };\n case \"LIVE_CHAT_HISTORY\":\n return {\n ...state,\n liveChatUsers: action.liveChatUsers,\n liveChatchannel: action.liveChatchannel,\n total: state.total + action.messageHistory.length,\n messages: [...state.messages, ...action.messageHistory]\n };\n case \"OPEN_WIDGET\":\n return {\n ...state,\n open: true,\n state:\n state.state === ConversationState.Initialised\n ? ConversationState.Active\n : state.state\n };\n case \"OPEN_WIDGET_LINK\":\n return {\n ...state,\n open: true,\n messages: [],\n page: 0,\n total: 0,\n state: ConversationState.Active,\n messageFailed: false\n };\n case \"CLOSE_WIDGET\":\n return {\n ...state,\n open: false\n };\n case \"MESSAGE_FAILED\":\n return {\n ...state,\n messageFailed: true\n };\n case \"SCHEDULE_RESPONSE\": {\n const messages = [...state.messages];\n const message = { ...messages[messages.length - 1] };\n if (message.sent_by !== \"bot\") throw new Error();\n const interaction = { ...message.data } as Interaction;\n if (interaction.interaction_type !== \"action\") throw new Error();\n if (interaction.action_type !== \"schedule\") throw new Error();\n if (\"schedule_status\" in action.response) {\n interaction.schedule_status = action.response.schedule_status;\n interaction.schedule_fallback_message =\n action.response.schedule_fallback_message;\n } else {\n interaction.schedule_status = \"confirmed\";\n interaction.schedule_confirm_data = action.response;\n }\n message.data = interaction;\n messages[messages.length - 1] = message;\n return { ...state, messages };\n }\n case \"INIT_LIVE_CHAT\": {\n return { ...state, liveChatObj: action.liveChatObj };\n }\n case \"LIVE_CHAT_TIMEOUT\":\n return { ...state, liveChatObj: null, liveChatchannel: null };\n case \"CLEAN_DOUBLE_BOOKING_ERROR\": {\n const messages = [...state.messages];\n const message = { ...messages[messages.length - 1] };\n if (message.sent_by !== \"bot\") throw new Error();\n const interaction = { ...message.data } as Interaction;\n if (interaction.interaction_type !== \"action\") throw new Error();\n if (interaction.action_type !== \"schedule\") throw new Error();\n delete interaction.schedule_status;\n message.data = interaction;\n messages[messages.length - 1] = message;\n return { ...state, messages };\n }\n case \"END_CONVERSATION\":\n return { ...state, state: ConversationState.Finished };\n case \"INTERACTION_SEEN\":\n return {\n ...state,\n messages: state.messages.map(message => {\n if (message.sent_by === \"contact\") return message;\n if (message.is_read === true) return message;\n return { ...message, is_read: true };\n })\n };\n case \"CLOSED_NOTIFICATIONS\":\n return {\n ...state,\n bot: state.bot && {\n ...state.bot,\n hasCloseNotifications: true\n }\n };\n case \"ANSWER_DELIVERED\":\n return {\n ...state,\n messages: state.messages.map(message =>\n message.id !== action.id\n ? message\n : {\n ...message,\n is_read: true\n }\n )\n };\n case \"RESEND_LAST_MESSAGE\":\n return {\n ...state,\n messageFailed: false\n };\n case \"UPDATE_TIMEZONE\": {\n let messages = state.messages;\n const message = messages[messages.length - 1];\n if (message.sent_by === \"contact\") return state;\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"action\") return state;\n if (interaction.action_type !== \"schedule\") return state;\n messages = [...messages];\n messages[messages.length - 1] = {\n ...message,\n data: { ...interaction, time_zone_id: action.timezoneId }\n };\n return { ...state, messages };\n }\n case \"APPEND_MISSED_MESSAGE\": {\n const messages = [...state.messages];\n const messageIds = new Set(messages.map(message => message.id));\n const nextMessages = action.messages;\n let total = state.total;\n for (let i = nextMessages.length - 1; i >= 0; i--) {\n const message = nextMessages[i];\n if (message.sent_by === \"bot\" && !messageIds.has(message.id)) {\n messages.push(message);\n total++;\n }\n }\n return { ...state, messages, total };\n }\n case \"LOADING_NEXT_PAGE\": {\n return { ...state, page: state.page + 1 };\n }\n case \"LOAD_PAGE\": {\n const messages = [...state.messages];\n const messageIds = new Set(messages.map(message => message.id));\n const nextMessages = action.messages.filter(\n message => !messageIds.has(message.id)\n );\n return {\n ...state,\n messages: [...nextMessages, ...state.messages],\n total: state.total\n };\n }\n default:\n throw new Error(\"Unknown action \" + JSON.stringify(action, null, 4));\n }\n}\n\nexport function initialAppState(): AppState {\n return {\n bot: null,\n accountId: \"\",\n conversationId: \"\",\n settings: null,\n messages: [],\n welcomeInteractions: [],\n page: 0,\n total: 0,\n pageSize: 15,\n state: ConversationState.Initialised,\n startedAt: Date.now(),\n socket: SocketStatus.DISCONNECTED,\n open: false,\n messageFailed: false,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false\n };\n}\n\nexport function getWebsiteId(state: AppState): string {\n if (state.settings === null) throw new Error();\n return state.settings.id;\n}\n\nexport function currentInteractionId(state: AppState): null | string {\n const messages = state.messages;\n let interactionId: string | null = null;\n for (let i = messages.length - 1; i >= 0 && interactionId === null; i--) {\n const message = messages[i];\n if (\n message.sent_by === \"bot\" &&\n (message.data as Interaction).interaction_type != null\n ) {\n interactionId = (message.data as Interaction).external_id;\n }\n }\n return interactionId;\n}\n\n// release toggle name MakeBotsWorkAtScale\nexport function contactFieldId(state: AppState): null | string {\n const messages = state.messages;\n let contact_field_id: string | null = null;\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i];\n if (message.sent_by === \"bot\") {\n contact_field_id = (message.data as Question).contact_field_id;\n break;\n }\n }\n return contact_field_id;\n}\n","import {\n AppAction,\n AppState,\n currentInteractionId,\n contactFieldId, // release toggle name MakeBotsWorkAtScale\n getWebsiteId\n} from \"./reducer\";\nimport {\n Interaction,\n Message,\n ConfirmEventData\n} from \"./interaction.interface\";\nimport { Dispatch } from \"react\";\nimport {\n ErrorWhileBlocking,\n ErrorWhileConfirming,\n FetchSlotsAPIErrorResponse\n} from \"./widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type\";\nimport { fetchConverasation } from \"./conversation.service\";\nimport {\n ConversationState,\n Socket,\n RETRY_ANSWER_TIMEOUT,\n LIVE_CHAT_CHANNEL\n} from \"./constants\";\nimport { connectSocket } from \"./io\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { IUser } from \"./interaction.interface\";\n\nexport type ServerEvent =\n | {\n type: \"conversation_initiated\";\n }\n | {\n type: \"new_interaction\";\n }\n | {\n type: \"bot_response\";\n }\n | {\n type: \"interaction_error\";\n }\n | { type: \"end_conversation\" }\n | {\n type: \"all_interactions_send\";\n }\n | {\n type: \"answer_delivered\";\n };\n\ninterface AnswerEvent {\n type: \"answer\";\n answer_id: string;\n content?: string;\n time_zone_id?: string;\n interaction_option_id?: number;\n multi_interaction_options_answer_ids?: number[];\n}\n\ntype ClientEvent =\n | AnswerEvent\n | {\n type: \"next_interaction\";\n }\n | {\n type: \"welcome_interactions_closed\";\n }\n | {\n type: \"finish_conversation\";\n }\n | {\n type: \"update_timezone\";\n time_zone_id: string;\n }\n | {\n type: \"interaction_seen\";\n }\n | {\n type: \"heartbeat\";\n };\n\nfunction randomId(): string {\n return (\n ((Math.random() * 1073741824) >>> 0).toString(36) +\n ((Math.random() * 1073741824) >>> 0).toString(36)\n );\n}\n\nexport type Actions = ReturnType;\n\nexport type Answer =\n | { content: string }\n | { content: string; interaction_option_id: number }\n | { content: string; multi_interaction_options_answer_ids: number[] }\n | { content: string; time_zone_id: string };\n\nexport function createActions(\n dispatch: Dispatch,\n getState: () => AppState\n) {\n let socket: null | Socket = null;\n let lastAnswer: AnswerEvent | null = null;\n let retryAnswerTimeout: any = null;\n let nextMessageAt = Date.now();\n let ping = 2500;\n let finished = false;\n let storage = StorageStrategy.getStrategy();\n\n function connect() {\n socket = connectSocket();\n\n dispatch({ type: \"SOCKET_CONNECTING\" });\n\n socket.on(\"connect\", () => dispatch({ type: \"SOCKET_CONNECT\" }));\n\n socket.on(\"disconnect\", () => dispatch({ type: \"SOCKET_DISCONNECT\" }));\n\n socket.on(\"reconnect\", () => {\n dispatch({ type: \"SOCKET_CONNECT\" });\n fetchConverasation(getWebsiteId(getState())).then(data =>\n dispatch({\n type: \"APPEND_MISSED_MESSAGE\",\n messages: data.response_interactions\n })\n );\n });\n\n socket.on(\"conversation_initiated\", () => dispatch({ type: \"INITIATED\" }));\n\n socket.on(\n \"new_interaction\",\n (interaction: Interaction & { log_id: number }) =>\n addNextMessage({\n id: interaction.log_id.toString(),\n sent_by: \"bot\",\n data: interaction,\n is_read: false,\n interaction_time: new Date().toISOString()\n })\n );\n\n socket.on(\"bot_response\", data =>\n addNextMessage({\n id: data.log_id.toString(),\n sent_by: \"bot\",\n data: {\n text: data.text\n },\n is_read: false,\n interaction_time: new Date().toISOString()\n })\n );\n\n socket.on(\"interaction_error\", data =>\n addNextMessage({\n id: data.log_id.toString(),\n sent_by: \"bot\",\n data: {\n text: data.error\n },\n is_read: false,\n interaction_time: new Date().toISOString()\n })\n );\n\n socket.on(\"end_conversation\", () => {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n });\n\n socket.on(\"answer_delivered\", data => {\n if (retryAnswerTimeout !== null) clearTimeout(retryAnswerTimeout);\n dispatch({ type: \"ANSWER_DELIVERED\", id: data.answer_id });\n nextMessageAt = Date.now() + 500; // Display the typing indicator for atleast 0.5 second before sending the next interaction\n });\n\n socket.on(\"all_interactions_send\", () => {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n });\n\n socket.on(\"pong\", (ms: number) => {\n ping = ms;\n });\n\n return socket;\n }\n\n function addNextMessage(message: Message) {\n const time = nextMessageAt - Date.now();\n if (time <= 0) {\n nextMessageAt = Date.now() + 1000;\n dispatch({ type: \"NEW_MESSAGE\", message });\n } else {\n nextMessageAt += 1000;\n setTimeout(() => dispatch({ type: \"NEW_MESSAGE\", message }), time);\n }\n }\n\n function push({ type, ...data }: ClientEvent) {\n if (finished) return;\n let sessionId = storage.getSession();\n if (!sessionId) {\n endConversation();\n return;\n }\n if (socket === null) {\n socket = connect();\n }\n const state = getState();\n const payload = {\n ...data,\n eventId: randomId(),\n website_id: getWebsiteId(state),\n current_interaction_id: currentInteractionId(state),\n contact_field_id: contactFieldId(state), // release toggle name MakeBotsWorkAtScale\n session: sessionId\n };\n let done = false;\n const sessionSocket = socket;\n socket.emit(type, payload, () => {\n done = true;\n if (finished) sessionSocket.close();\n });\n const send = () => {\n if (socket !== sessionSocket || done) return;\n if (socket.connected) {\n socket.emit(type, payload, () => {\n done = true;\n if (finished) sessionSocket.close();\n });\n }\n setTimeout(send, ping * 2);\n };\n setTimeout(send, ping * 2);\n }\n\n function answer(answer: Answer) {\n const state = getState().state;\n if (\n state !== ConversationState.Active &&\n state !== ConversationState.Initialised\n ) {\n return;\n }\n lastAnswer = {\n type: \"answer\",\n answer_id: randomId(),\n ...answer\n };\n push(lastAnswer);\n dispatch({\n type: \"NEW_MESSAGE\",\n message: {\n sent_by: \"contact\",\n id: lastAnswer.answer_id,\n is_read: false,\n data: {\n text: answer.content\n },\n interaction_time: new Date().toISOString()\n }\n });\n retryAnswerTimeout = setTimeout(\n () => dispatch({ type: \"MESSAGE_FAILED\" }),\n RETRY_ANSWER_TIMEOUT\n );\n }\n\n function liveChatHistory(messages, liveChatUsers, liveChatChannel) {\n dispatch({\n type: \"LIVE_CHAT_HISTORY\",\n messageHistory: messages,\n liveChatUsers: liveChatUsers,\n liveChatchannel: liveChatChannel\n });\n }\n\n function liveChatResponse(response: Answer, message, liveChatUsers) {\n const liveChatResponse: any = setLiveChatResponse(message, response);\n const liveChatChannel =\n message.type === \"end_chat\" ? \"\" : LIVE_CHAT_CHANNEL;\n dispatch({\n type: \"NEW_MESSAGE\",\n liveChatchannel: liveChatChannel,\n liveChatUsers: liveChatUsers,\n message: {\n sent_by: \"bot\",\n user_name: \"Admin\",\n id: randomId(),\n is_read: true,\n data: liveChatResponse,\n interaction_time: new Date().toISOString()\n }\n });\n if (message.type === \"end_chat\") endConversation();\n }\n\n function setLiveChatResponse(message, response) {\n const user: IUser = message.user;\n switch (message.type) {\n case \"end_chat\": {\n return {\n text: \"\",\n interaction_type: \"action\",\n action_type: \"end_conversation\",\n user: user\n };\n }\n case \"text_message\": {\n return {\n text: response.content,\n interaction_type: \"question\",\n question_type: \"text\",\n user: user\n };\n }\n default: {\n return {\n text: response.content,\n interaction_type: \"question\",\n question_type: \"text\",\n user: user\n };\n }\n }\n }\n\n function liveChatAnswer(answer: Answer, liveChatchannel, liveChatUsers) {\n const state = getState().state;\n if (\n state !== ConversationState.Active &&\n state !== ConversationState.Initialised\n ) {\n return;\n }\n lastAnswer = {\n type: \"answer\",\n answer_id: randomId(),\n ...answer\n };\n // push(lastAnswer);\n dispatch({\n type: \"NEW_MESSAGE\",\n liveChatchannel: liveChatchannel,\n liveChatUsers: liveChatUsers,\n message: {\n sent_by: \"contact\",\n user_name: \"Visitor\",\n id: lastAnswer.answer_id,\n is_read: true,\n data: {\n text: answer.content\n },\n interaction_time: new Date().toISOString()\n }\n });\n }\n\n function nextInteraction() {\n push({ type: \"next_interaction\" });\n }\n\n function finishConversation() {\n push({ type: \"finish_conversation\" });\n finished = true;\n }\n\n function timeout() {\n finished = true;\n dispatch({ type: \"END_CONVERSATION\" });\n if (socket !== null) {\n socket.close();\n socket = null;\n }\n }\n\n function updateTimezone(time_zone_id: string) {\n push({ type: \"update_timezone\", time_zone_id });\n dispatch({ type: \"UPDATE_TIMEZONE\", timezoneId: time_zone_id });\n }\n\n function closeWidget() {\n dispatch({ type: \"CLOSE_WIDGET\" });\n }\n\n function openWidget() {\n const { messages, state, liveChatchannel } = getState();\n if (state == null) {\n dispatch({ type: \"OPEN_WIDGET\" });\n return;\n }\n const message = messages[messages.length - 1];\n if (message == null) {\n nextInteraction();\n return;\n }\n const isAnswerFromVisitor = message.sent_by !== \"bot\" && message.is_read;\n\n if (!liveChatchannel && isAnswerFromVisitor) {\n // Catch for instant refresh after answering\n nextInteraction();\n }\n if (message.sent_by === \"bot\") {\n const interaction = message.data as Interaction;\n if (interaction.interaction_type === \"message\") {\n nextInteraction();\n } else if (interaction.interaction_type === \"action\") {\n if (interaction.action_type === \"schedule\") {\n if (interaction.schedule_status) {\n if (interaction.schedule_status !== \"slots_fetched\") {\n nextInteraction();\n }\n }\n }\n if (interaction.action_type === \"end_conversation\") {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n }\n }\n }\n dispatch({ type: \"OPEN_WIDGET\" });\n }\n\n function interactionSeen() {\n push({ type: \"interaction_seen\" });\n dispatch({ type: \"INTERACTION_SEEN\" });\n }\n\n function restart() {\n finished = false;\n if (socket) {\n socket.close();\n socket = null;\n }\n dispatch({ type: \"RESTART\" });\n }\n\n function openNewBot() {\n if (finished) {\n finished = false;\n if (socket) {\n socket.close();\n socket = null;\n }\n }\n }\n\n function resendLastMessage() {\n if (lastAnswer === null) throw new Error();\n nextMessageAt = Date.now() + 1000;\n dispatch({ type: \"RESEND_LAST_MESSAGE\" });\n nextMessageAt = Date.now() + 1000;\n push(lastAnswer);\n retryAnswerTimeout = setTimeout(\n () => dispatch({ type: \"MESSAGE_FAILED\" }),\n RETRY_ANSWER_TIMEOUT\n );\n }\n\n function scheduleResponse(\n response:\n | ErrorWhileConfirming\n | ConfirmEventData\n | FetchSlotsAPIErrorResponse\n | ErrorWhileBlocking\n ) {\n dispatch({ type: \"SCHEDULE_RESPONSE\", response });\n nextMessageAt = Date.now() + 2000;\n nextInteraction();\n }\n\n function initLiveChat(liveChatObj) {\n dispatch({ type: \"INIT_LIVE_CHAT\", liveChatObj });\n }\n\n function liveChatTimeout() {\n dispatch({ type: \"LIVE_CHAT_TIMEOUT\" });\n nextInteraction();\n }\n\n function closeNotifications() {\n dispatch({ type: \"CLOSED_NOTIFICATIONS\" });\n push({ type: \"welcome_interactions_closed\" });\n }\n\n function endConversation() {\n dispatch({ type: \"END_CONVERSATION\" });\n }\n\n function cleanDoubleBookingError() {\n dispatch({ type: \"CLEAN_DOUBLE_BOOKING_ERROR\" });\n }\n\n function heartbeat() {\n push({ type: \"heartbeat\" });\n }\n\n function loadPage() {\n const state = getState();\n if (state.total === state.messages.length) return;\n let nextPage =\n state.messages.length % state.pageSize === 0\n ? state.messages.length / state.pageSize + 1\n : Math.ceil(state.messages.length / state.pageSize);\n if (state.page === nextPage) return;\n dispatch({ type: \"LOADING_NEXT_PAGE\", page: nextPage });\n if (state.settings == null) return;\n fetchConverasation(state.settings.id, nextPage).then(data =>\n dispatch({\n type: \"LOAD_PAGE\",\n messages: data.response_interactions\n })\n );\n }\n\n return {\n answer,\n liveChatResponse,\n liveChatHistory,\n liveChatAnswer,\n liveChatTimeout,\n nextInteraction,\n finishConversation,\n updateTimezone,\n closeWidget,\n openWidget,\n interactionSeen,\n restart,\n resendLastMessage,\n scheduleResponse,\n initLiveChat,\n closeNotifications,\n cleanDoubleBookingError,\n heartbeat,\n timeout,\n loadPage,\n openNewBot\n };\n}\n","import io from \"socket.io-client\";\nimport { Socket } from \"./constants\";\n\nexport function connectSocket(): Socket {\n const url = new URL(process.env.REACT_APP_SOCKET_API as string);\n const socket = io(url.protocol + \"//\" + url.host, {\n path: url.pathname + \"socket.io\",\n transports: [\"websocket\", \"polling\"]\n });\n return socket;\n}\n","import { IWidgetOptions } from \"../constants\";\n\nexport class Context {\n private static instance: Context;\n\n private constructor(\n public websiteId,\n public preview,\n public pageUrl,\n public pageTitle,\n public botId,\n public directBot\n ) {}\n\n public static getInstance(): Context {\n return Context.instance;\n }\n\n public static setInstance(options: IWidgetOptions): void {\n Context.instance = new Context(\n options.websiteId,\n options.preview,\n options.pageUrl,\n options.pageTitle,\n options.botId,\n options.directBot\n );\n }\n}\n","import React, { useReducer, useMemo, useEffect, useRef, Dispatch } from \"react\";\nimport { setupWidget } from \"./setup.service\";\nimport { Message, WebsiteSettings } from \"./interaction.interface\";\nimport { fetchConverasation } from \"./conversation.service\";\nimport {\n IAppContext,\n Bot,\n reducer,\n IConversationContext,\n initialAppState,\n AppAction,\n AppState,\n SocketStatus\n} from \"./reducer\";\nimport { Actions, createActions } from \"./actions\";\nimport {\n ConversationState,\n IWidgetOptions,\n NotificationStyle\n} from \"./constants\";\nimport { Context } from \"./utils/context.service\";\n\ninterface Props {\n botId: null | string;\n preview: boolean;\n pageUrl: string;\n websiteId: string;\n pageTitle: string;\n children: React.ReactNode;\n open: boolean;\n directBot: boolean;\n startTime?: number;\n}\n\nexport const AppContext = React.createContext({\n bot: {\n id: \"test-bot\",\n session_timeout: 600,\n hasCloseNotifications: false,\n notificationStyle: NotificationStyle.NotificationBadgeWithWelcomeInteraction\n },\n accountId: \"\",\n conversationId: \"\",\n open: false,\n preview: false,\n settings: {\n id: \"website-id\",\n botName: \"Test\",\n colour: \"#bf23af\",\n companyName: \"Default\",\n shape: \"speech\",\n textColour: \"#fff\",\n widgetIcon: \"co-widget-icon-1\",\n botIcon: null\n },\n state: ConversationState.Active,\n socket: SocketStatus.CONNECTED,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false\n});\n\nexport const ConversationContext = React.createContext({\n messages: [],\n welcomeInteractions: [],\n messageFailed: false,\n pageSize: 15,\n total: 0\n});\n\nexport const SocketServiceContext = React.createContext(\n createActions(\n () => null,\n () => ({\n startedAt: 0,\n bot: {\n id: \"bot-id\",\n notificationStyle:\n NotificationStyle.NotificationBadgeWithWelcomeInteraction,\n hasCloseNotifications: false,\n session_timeout: 600\n },\n accountId: \"account-id\",\n conversationId: \"conversation-id\",\n settings: {\n id: \"website-id\",\n botName: \"Test\",\n colour: \"#bf23af\",\n companyName: \"Default\",\n shape: \"speech\",\n textColour: \"#fff\",\n widgetIcon: \"co-widget-icon-1\",\n botIcon: null\n },\n messages: [],\n page: 0,\n total: 0,\n pageSize: 15,\n state: ConversationState.Initialised,\n socket: SocketStatus.CONNECTED,\n open: false,\n messageFailed: false,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false\n })\n )\n);\n\nasync function fetchData(\n websiteId: string,\n preview: boolean,\n pageUrl: string,\n pageTitle: string,\n botId: null | string,\n open: boolean = false,\n directBot: boolean = false\n): Promise {\n if (!preview) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: directBot ? [] : [\"no-bot\"],\n remove: directBot ? [\"no-bot\"] : []\n },\n \"*\"\n );\n }\n\n const data = await setupWidget({\n websiteId,\n preview,\n pageTitle,\n pageUrl,\n botId,\n directBot\n });\n if (data === null) return null;\n\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: data.botId || directBot ? [] : [\"no-bot\"],\n remove: data.botId || directBot ? [\"no-bot\"] : []\n },\n \"*\"\n );\n\n if (data.botId == null) {\n return {\n bot: {\n id: data.botId,\n hasCloseNotifications: false,\n session_timeout: 60 * 10 * 1000,\n notificationStyle: data.welcomeDisplayStyle\n },\n accountId: data.accountId,\n conversationId: data.conversationId,\n settings: data.settings,\n messages: [],\n welcomeInteractions: [],\n total: 0,\n state: data.conversationState,\n open: open,\n pageSize: 15,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage\n };\n }\n\n const [conversation] = await Promise.all([fetchConverasation(websiteId)]);\n if (preview) {\n return {\n bot: {\n id: data.botId,\n hasCloseNotifications: false,\n session_timeout: 60 * 10 * 1000,\n notificationStyle: data.welcomeDisplayStyle\n },\n accountId: data.accountId,\n conversationId: data.conversationId,\n settings: data.settings,\n messages: conversation.response_interactions,\n total: conversation.response_interactions.length,\n state: data.conversationState,\n open: true,\n pageSize: 15,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage\n };\n } else {\n return {\n bot: {\n id: data.botId,\n hasCloseNotifications: !data.showClosedWidgetInteractions,\n session_timeout: data.session_timeout * 1000,\n notificationStyle: data.welcomeDisplayStyle\n },\n accountId: data.accountId,\n conversationId: data.conversationId,\n settings: data.settings,\n messages: conversation.response_interactions,\n welcomeInteractions: conversation.welcomeInteractions,\n total: conversation.total,\n state: data.conversationState,\n open: open,\n pageSize: conversation.pageSize,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage\n };\n }\n}\n\nfunction useSocketService(state: AppState, dispatch: Dispatch) {\n let stateRef = useRef(state);\n stateRef.current = state;\n let ref = useRef(null);\n if (ref.current === null) {\n ref.current = createActions(dispatch, () => stateRef.current);\n }\n return ref.current;\n}\n\nexport function AppContextProvider({\n botId,\n websiteId,\n preview,\n pageUrl,\n pageTitle,\n children,\n open,\n directBot,\n startTime\n}: Props) {\n const options: IWidgetOptions = {\n botId: botId,\n pageUrl: pageUrl,\n websiteId: websiteId,\n preview: preview,\n pageTitle: pageTitle,\n directBot: directBot\n };\n Context.setInstance(options);\n const [state, dispatch] = useReducer(reducer, initialAppState());\n\n useEffect(() => {\n if (directBot && (!state.bot?.id || botId === state.bot?.id)) {\n dispatch({ type: \"OPEN_WIDGET\" });\n }\n }, [startTime]);\n\n useEffect(() => {\n if (!preview && botId) {\n if (state.bot?.id === botId) {\n return; // return if same bot link is clicked again\n } else {\n dispatch({ type: \"OPEN_WIDGET_LINK\" }); // Open new direct bot link\n }\n }\n\n let cancelled = false;\n fetchData(\n websiteId,\n preview,\n pageUrl,\n pageTitle,\n botId,\n open,\n directBot\n ).then(data => {\n if (cancelled) return;\n if (data == null) return;\n dispatch({\n type: \"SETUP\",\n data\n });\n window.parent.postMessage(\n { widgetLoadingFinished: \"widgetLoadingFinished\" },\n \"*\"\n );\n });\n return () => {\n cancelled = true;\n };\n }, [websiteId, preview, pageUrl, pageTitle, botId, state.startedAt]);\n\n const appContext: null | IAppContext = useMemo(\n () =>\n state.bot &&\n state.settings && {\n preview,\n bot: state.bot,\n accountId: state.accountId,\n conversationId: state.conversationId,\n liveChatchannel: state.liveChatchannel,\n liveChatUsers: state.liveChatUsers,\n liveChatObj: state.liveChatObj,\n settings: state.settings,\n state: state.state,\n socket: state.socket,\n open: state.open,\n oncehubBrandingUrl: state.oncehubBrandingUrl,\n showPromotionalMessage: state.showPromotionalMessage\n },\n [\n preview,\n state.bot,\n state.accountId,\n state.conversationId,\n state.liveChatchannel,\n state.liveChatUsers,\n state.liveChatObj,\n state.open,\n state.settings,\n state.state,\n state.socket,\n state.oncehubBrandingUrl,\n state.showPromotionalMessage\n ]\n );\n const conversationContext = useMemo(\n () => ({\n total: state.total,\n messages: state.messages,\n welcomeInteractions: state.welcomeInteractions || [],\n pageSize: state.pageSize,\n messageFailed: state.messageFailed\n }),\n [\n state.total,\n state.messages,\n state.welcomeInteractions,\n state.pageSize,\n state.messageFailed\n ]\n );\n const socketService = useSocketService(state, dispatch);\n useEffect(() => {\n if (open) {\n socketService.openNewBot();\n socketService.openWidget();\n }\n }, [state.bot]);\n\n return (\n appContext && (\n \n \n \n \n {children}\n \n \n \n \n )\n );\n}\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"./AppContext\";\n\nfunction Styles() {\n const { colour: color, textColour: textColor } = useContext(\n AppContext\n ).settings;\n return (\n \n );\n}\n\nexport default React.memo<{}>(Styles);\n","export class UtilsService {\n static extractHostName(url): string {\n let hostname;\n // find & remove protocol (http, ftp, etc.) and get hostname\n\n if (url.indexOf(\"//\") > -1) {\n hostname = url.split(\"/\")[2];\n } else {\n hostname = url.split(\"/\")[0];\n }\n\n // find & remove port number\n hostname = hostname.split(\":\")[0];\n // find & remove \"?\"\n hostname = hostname.split(\"?\")[0];\n\n return hostname;\n }\n}\n\nexport const BROWSER_IS_SAFARI = (() => {\n return /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);\n})();\n\nexport const ARE_COOKIES_DISABLED: boolean = (() => {\n if (typeof navigator !== \"undefined\" && \"cookieEnabled\" in navigator) {\n return navigator.cookieEnabled;\n }\n document.cookie = \"is_cookie_enabled=yes\";\n const disabled = document.cookie.indexOf(\"is_cookie_enabled\") === -1;\n if (!disabled) {\n document.cookie =\n \"is_cookie_enabled=yes; expires=Thu, 01-Jan-1970 00:00:00 GMT\";\n }\n return disabled;\n})();\n\nexport const IS_MOBILE = /(iphone|ipod|android|blackberry|windows ce|palm|symbian)/i.test(\n navigator.userAgent\n);\n\nexport const DAY_NAMES = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\nexport const SHORT_DAY_NAMES = [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n];\n\nexport const MONTH_NAMES = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const SHORT_MONTH_NAMES = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n","import React, { useContext } from \"react\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\n\ninterface Props {\n count: number;\n}\n\nfunction WidgetToggle({ count }: Props) {\n const {\n open,\n settings: { shape, textColour, widgetIcon }\n } = useContext(AppContext);\n const actions = useContext(SocketServiceContext);\n return (\n \n \n \n \n \n \n \n \n \n \n {count > 0 && {count}}\n \n );\n}\n\nexport default React.memo(WidgetToggle);\n","export default __webpack_public_path__ + \"static/media/bots-28.aebca506.svg\";","export const ColorSet = [\n \"#ffffff\",\n \"#fff4fe\",\n \"#fffaff\",\n \"#fffbff\",\n \"#fffcff\",\n \"#fffdff\",\n \"#fffeff\",\n \"#FFFAF0\",\n \"#F8F8FF\",\n \"#FFFFF0\",\n \"#FFFAFA\",\n \"#fffdf0\",\n \"#fffdf1\",\n \"#fffdf2\",\n \"#fffdf3\",\n \"#fffdf4\",\n \"#fffdf5\",\n \"#fffdf6\",\n \"#fffdf7\",\n \"#fffdf8\",\n \"#fffdf9\",\n \"#f9f8f4\",\n \"#fdfdfc\",\n \"#f9f9f9\",\n \"#f9f9f7\",\n \"#fdfdfc\",\n \"#fffffd\",\n \"#fffefb\",\n \"#fdfdfb\",\n \"#fbfbfb\",\n \"#fff8fe\",\n \"#fff7fe\",\n \"#fbfafb\",\n \"#fdf7fc\",\n \"#fdfdfd\",\n \"#fff9fe\",\n \"#fff5fe\",\n \"#fdfcfd\",\n \"#fdf9fd\",\n \"#fdfbfd\",\n \"#fbf3fa\",\n \"#fbfcfd\",\n \"#fdffec\",\n \"#feffff\",\n \"#fef9ff\",\n \"#fff9fd\",\n \"#fff5fb\",\n \"#fff8f6\",\n \"#fff6f6\",\n \"#fffaf9\",\n \"#fcffe9\",\n \"#fdfffe\",\n \"#fdfdff\",\n \"#f9fbff\",\n \"#fffaf6\",\n \"#e9fff4\",\n \"#f7f7f7\"\n];\n","import React, { useContext } from \"react\";\nimport \"./widget-header.scss\";\nimport botImg from \"../../assets/images/bots-28.svg\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\nfunction WidgetHeader() {\n const { botIcon, companyName } = useContext(AppContext).settings;\n const { closeWidget } = useContext(SocketServiceContext);\n const { colour: color } = useContext(AppContext).settings;\n return (\n \n \n \n \"\"\n \n \n

{companyName}

\n \n \n \n \n );\n}\n\nexport default React.memo<{}>(WidgetHeader);\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ninterface Props {\n active: boolean;\n}\n\nfunction SendButton({ active }: Props) {\n const color = useContext(AppContext).settings.colour;\n return active ? (\n \n Send\n \n \n \n \n \n \n \n \n \n \n ) : (\n \n Send\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default React.memo(SendButton);\n","/* tslint:disable */\nimport { IMaskedInputs, IValidationMessage } from \"./widget-footer/input.model\";\n\nexport const VADLIDATION_MESSAGES: IValidationMessage = {\n date: {\n dateFormatError: \"Please enter a valid date with the format DD/MM/YYYY\",\n futureDateError: \"Please enter a date that is in the future\"\n },\n dateTime: {\n dateFormatError:\n \"Please enter a valid datetime with the format DD/MM/YYYY HH:MM PM\",\n futureDateError: \"Please enter a datetime that is in the future\"\n },\n email: \"Please enter a valid email address\",\n phone: \"Please enter a valid phone number\",\n time: \"Please enter a valid time with the format HH:MM PM\"\n};\n\nexport const MASKEDINPUTS_PROPS: IMaskedInputs = {\n date: {\n guide: true,\n placeholder: \"DD/MM/YYYY\",\n placeholderChar: \"\\u2000\"\n },\n dateTime: {\n guide: true,\n placeholder: \"DD/MM/YYYY HH:MM PM\",\n placeholderChar: \"\\u2000\"\n },\n time: {\n guide: true,\n placeholder: \"HH:MM PM\",\n placeholderChar: \"\\u2000\"\n }\n};\nexport const ID_PREFIX: string = \"co-message-\";\nexport const DEFAULT_TIMEZONE_ID = \"270\";\nexport const TIMEZONE_ID_COOKIE = \"timezoneId\";\n// eslint-disable-next-line\nexport const EMAILREGEXPATTERN = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface IDateInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n allowOnlyFutureDate: boolean;\n onSubmit(): void;\n}\n\nconst DATE_MASK = [/\\d/, /\\d/, \"/\", /\\d/, /\\d/, \"/\", /\\d/, /\\d/, /\\d/, /\\d/];\n\nexport const DATE_REGEX = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class DateInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n const setValidation = this.props.setValidation;\n const dateFormatError = VADLIDATION_MESSAGES.date.dateFormatError;\n const date = parseInt(value.substring(0, 2));\n if (date > 31) {\n setValidation(dateFormatError);\n return false;\n }\n const month = parseInt(value.substring(3, 5));\n if (month > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const year = parseInt(value.substring(6, 10));\n if (!DATE_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n const time = new Date(year, month - 1, date);\n const validity =\n time.getFullYear() === year &&\n time.getMonth() === month - 1 &&\n date === time.getDate();\n if (!validity) {\n setValidation(dateFormatError);\n return false;\n } else if (this.props.allowOnlyFutureDate && time.getTime() <= Date.now()) {\n setValidation(VADLIDATION_MESSAGES.date.futureDateError);\n return value;\n } else {\n setValidation(null);\n this.props.onChange(value);\n return value;\n }\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface IDatetimeInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n allowOnlyFutureDate: boolean;\n onSubmit(): void;\n}\n\nconst DATETIME_MASK = [\n /\\d/,\n /\\d/,\n \"/\",\n /\\d/,\n /\\d/,\n \"/\",\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n \" \",\n /\\d/,\n /\\d/,\n \":\",\n /\\d/,\n /\\d/,\n \" \",\n /a|A|p|P/,\n /m|M/\n];\n\nexport const DATE_TIME_REGEX = /\\d{1,2}\\/\\d{1,2}\\/\\d{4} \\d{1,2}:\\d{1,2} (?:A|P)M/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class DatetimeInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n value = value.toUpperCase();\n const setValidation = this.props.setValidation;\n const dateFormatError = VADLIDATION_MESSAGES.dateTime.dateFormatError;\n const date = parseInt(value.substring(0, 2));\n if (date > 31) {\n setValidation(dateFormatError);\n return false;\n }\n const month = parseInt(value.substring(3, 5));\n if (month > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const year = parseInt(value.substring(6, 10));\n const hours = parseInt(value.substring(11, 13));\n if (hours > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const minutes = parseInt(value.substring(14, 16));\n if (minutes > 60) {\n setValidation(dateFormatError);\n return false;\n }\n const am = value.substring(17, 18) === \"AM\";\n if (!DATE_TIME_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n const time = new Date(year, month - 1, date);\n const validity =\n time.getFullYear() === year &&\n time.getMonth() === month - 1 &&\n date === time.getDate();\n if (!validity) {\n setValidation(dateFormatError);\n return false;\n }\n if (am) {\n time.setHours(hours);\n } else {\n time.setHours(hours === 12 ? 12 : 12 + hours);\n }\n time.setMinutes(minutes);\n if (this.props.allowOnlyFutureDate && time.getTime() <= Date.now()) {\n setValidation(VADLIDATION_MESSAGES.dateTime.futureDateError);\n return value;\n } else {\n setValidation(null);\n this.props.onChange(value);\n return value;\n }\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface TimeInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n onSubmit: () => void;\n}\n\nconst TIME_MASK = [/\\d/, /\\d/, \":\", /\\d/, /\\d/, \" \", /a|A|p|P/, /m|M/];\n\nexport const TIME_REGEX = /\\d{1,2}:\\d{1,2} (?:A|P)M/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class TimeInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n value = value.toUpperCase();\n const setValidation = this.props.setValidation;\n const error = VADLIDATION_MESSAGES.time;\n const hours = parseInt(value.substring(0, 2));\n if (hours > 12) {\n setValidation(error);\n return false;\n }\n const minutes = parseInt(value.substring(3, 5));\n if (minutes > 60) {\n setValidation(error);\n return false;\n }\n if (!TIME_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n if (hours === 0) {\n setValidation(error);\n } else {\n this.props.onChange(value);\n }\n return value;\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import \"./chat-button.scss\";\nimport * as React from \"react\";\n\ninterface IChatButtonProps {\n clickHandler: () => void;\n title?: any;\n text: any;\n isDisabled?: boolean;\n isLoading?: boolean;\n classNames?: string;\n}\n\nexport const ChatButton = (props: IChatButtonProps) => (\n \n {props.text}\n \n);\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"../common-components/select-list-with-filter/select-list-with-filter.scss\";\nimport \"./select-list.scss\";\nimport { ChatButton } from \"../common-components/chat-button/chat-button\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport { AppContext } from \"src/AppContext\";\n\ninterface InteractionOption {\n id: number | string;\n option_text: string;\n}\n\ninterface SingleSelectProps {\n single: true;\n items: T[];\n onSelect: (item: T) => void;\n close: () => void;\n}\n\ninterface MultiSelectProps {\n single: false;\n items: T[];\n onSelect: (items: T[]) => void;\n close: () => void;\n}\n\nexport type SelectListProps =\n | SingleSelectProps\n | MultiSelectProps;\n\nfunction useListHeight(): number {\n const [height, setHeight] = useState(0);\n useEffect(() => {\n let el = document.querySelector(\".chat-content\");\n el = el && el.parentElement;\n if (!el) {\n return;\n }\n const updateHeight = () => setHeight((el as HTMLElement).clientHeight / 2);\n updateHeight();\n window.addEventListener(\"resize\", updateHeight);\n return () => window.removeEventListener(\"resize\", updateHeight);\n });\n return height;\n}\n\nfunction SelectList(props: SelectListProps) {\n const height = useListHeight();\n const [filter, setFilter] = useState(\"\");\n const regex = new RegExp(filter.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"), \"i\");\n const { colour: color } = useContext(AppContext).settings;\n const filteredOptions = props.items.filter(item =>\n regex.test(item.option_text)\n );\n const [selected, setSelected] = useState<{ [id: string]: boolean }>({});\n const onOptionClick = (item: T): void => {\n if (props.single) {\n props.onSelect(item);\n } else {\n setSelected(selectedItem => ({\n ...selectedItem,\n [item.id]: !selectedItem[item.id]\n }));\n }\n };\n const container = useRef(null);\n const close = props.close;\n useEffect(() => {\n const listener = (event: Event) => {\n if (event.target == null || container.current == null) return;\n if (\n container.current === event.target ||\n container.current.contains(event.target as any)\n ) {\n return;\n }\n close();\n };\n document.addEventListener(\"mousedown\", listener);\n return () => document.removeEventListener(\"mousedown\", listener);\n }, [close]);\n useEffect(() => {\n if (!container.current) return;\n const input = container.current.querySelector(\"input[type=text]\");\n if (input && input instanceof HTMLInputElement) input.focus();\n });\n const chatContainer = useRef(null);\n if (chatContainer.current === null)\n chatContainer.current = document.querySelector(\".chat-window\");\n return (\n chatContainer.current &&\n createPortal(\n \n
    \n {props.single\n ? filteredOptions.map(item => (\n
  • onOptionClick(item)}>\n {item.option_text}\n
  • \n ))\n : filteredOptions.map(item => (\n
  • \n \n
  • \n ))}\n
\n \n setFilter(event.currentTarget.value)}\n />\n {!props.single && (\n \n props.onSelect(props.items.filter(item => selected[item.id]))\n }\n />\n )}\n \n ,\n chatContainer.current\n )\n );\n}\n\nexport default SelectList;\n","import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"./widget-modal.scss\";\nimport { ChatButton } from \"../common-components/chat-button/chat-button\";\n\ninterface IWidgetModalProp {\n modalMessage: null | string;\n show: boolean;\n closeModal: () => void;\n}\n\nexport class WidgetModal extends React.Component {\n closeModal = () => {\n this.props.closeModal();\n };\n\n render() {\n const container = document.querySelector(\".chat-window\");\n return (\n this.props.show &&\n container &&\n createPortal(\n
\n
\n
\n \n \n \n

{this.props.modalMessage}

\n
\n
\n {ChatButton({\n text: \"Got it\",\n clickHandler: this.closeModal\n })}\n
\n
\n
\n
,\n container\n )\n );\n }\n}\n","import React, { useState, useContext } from \"react\";\nimport { ChatButton } from \"src/widget-container/common-components/chat-button/chat-button\";\nimport { WidgetModal } from \"src/widget-container/widget-modal/widget-modal\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport { AppContext } from \"src/AppContext\";\n\nimport \"./interaction-multi-select.scss\";\n\ninterface Option {\n id: number;\n option_text: string;\n}\n\ninterface Props {\n min: null | number;\n max: null | number;\n options: Option[];\n onSelect: (selected: Option[]) => void;\n}\n\nexport function optionMessage(count: number): string {\n if (count === 1) {\n return \"1 option\";\n } else {\n return `${count} options`;\n }\n}\n\nexport function errorMessage(\n min: number,\n max: number | null,\n selected: number\n): null | string {\n if (max === null) {\n if (selected < min) {\n return `You must select at least ${optionMessage(min)}`;\n } else {\n return null;\n }\n } else {\n if (selected >= min && selected <= max) {\n return null;\n } else {\n return `You must select at least ${optionMessage(\n min\n )} and not more than ${optionMessage(max)}`;\n }\n }\n}\n\nfunction InteractionMultiSelect({ options, onSelect, min, max }: Props) {\n const [selected, setSelected] = useState<{ [id: number]: boolean }>({});\n const [error, setError] = useState(null);\n const toggle = (id: number) =>\n setSelected(selected => ({ ...selected, [id]: !selected[id] }));\n const select = () => {\n const selection = options.filter(option => Boolean(selected[option.id]));\n const error = errorMessage(min || 1, max, selection.length);\n setError(error);\n if (error === null) {\n onSelect(selection);\n }\n };\n const { colour: color } = useContext(AppContext).settings;\n return (\n
\n setError(null)}\n />\n
\n
    \n {options.map(option => (\n \n \n \n ))}\n
\n \n \n
\n
\n
\n );\n}\n\nexport default React.memo(InteractionMultiSelect);\n","import React, { useEffect, useRef, useContext } from \"react\";\nimport { AppContext } from \"src/AppContext\";\n\ninterface Props {\n value: string;\n onChange: (value: string) => void;\n onSubmit: () => void;\n}\n\nfunction TextInput({ value, onChange, onSubmit }: Props) {\n const textarea = useRef(null);\n const heightDiv = useRef(null);\n const open = useContext(AppContext).open;\n useEffect(() => {\n if (textarea.current) {\n textarea.current.focus();\n }\n }, []);\n useEffect(() => {\n if (!open) return;\n if (!(heightDiv.current && textarea.current)) return;\n heightDiv.current.innerText =\n value.endsWith(\"\\n\") || value.trim().length === 0 ? value + \"A\" : value;\n heightDiv.current.style.width = textarea.current.clientWidth + \"px\";\n textarea.current.style.height = heightDiv.current.clientHeight + \"px\";\n }, [open, value]);\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode !== 13) return;\n if (!event.shiftKey) {\n event.preventDefault();\n onSubmit();\n return;\n }\n };\n return (\n <>\n onChange(event.currentTarget.value)}\n />\n \n \n );\n}\n\nexport default React.memo(TextInput);\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { AsYouType, getCountryCallingCode } from \"libphonenumber-js\";\nimport COUNTRY from \"src/country-code.json\";\n\nimport SelectList from \"../select-list\";\n\nimport \"./phone-input.scss\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\nimport { PhoneQuestion } from \"src/interaction.interface\";\n\ninterface Props {\n question: PhoneQuestion;\n welcomePhoneQuestion: PhoneQuestion | null;\n onError: (message: null | string) => void;\n setPhone: (text: string) => void;\n onSubmit(): void;\n}\n\ninterface CountryOption {\n id: string;\n option_text: string;\n}\nconst COUNTRY_OPTIONS: CountryOption[] = Object.keys(COUNTRY).map<\n CountryOption\n>(id => ({ id, option_text: COUNTRY[id] }));\n\nCOUNTRY_OPTIONS.sort((x, y) => {\n if (x.option_text > y.option_text) {\n return 1;\n } else if (x.option_text < y.option_text) {\n return -1;\n } else {\n return 1;\n }\n});\n\nfunction getDefaultCountry(country) {\n let visitorCountryObject;\n for (let i = 0; i < COUNTRY_OPTIONS.length; i++) {\n if (country && COUNTRY_OPTIONS[i].option_text === country) {\n visitorCountryObject = COUNTRY_OPTIONS[i];\n break;\n }\n }\n return visitorCountryObject;\n}\n\nfunction PhoneInput({\n question,\n welcomePhoneQuestion,\n setPhone,\n onError,\n onSubmit\n}: Props) {\n const visitorCountry = getDefaultCountry(\n question.country ||\n (welcomePhoneQuestion ? welcomePhoneQuestion!.country : null)\n );\n const visitorCountryCode = visitorCountry\n ? `+${getCountryCallingCode(visitorCountry.id as any) as string}`\n : \"\";\n const [countryList, setCountryList] = useState(false);\n const [country, setCountry] = useState(\n null || visitorCountry\n );\n const [value, setValue] = useState(\"\" || visitorCountryCode);\n const [invalid, setInvalid] = useState(true);\n const input = useRef(null);\n const selectCountry = useCallback((country: CountryOption) => {\n setCountry(country);\n setCountryList(false);\n setPhone(\"\");\n setInvalid(true);\n const code = getCountryCallingCode(country.id as any) as string;\n setValue(\"+\" + code);\n setTimeout(() => {\n let inputEl = input.current;\n if (inputEl === null) return;\n if (inputEl) inputEl.focus();\n inputEl.selectionStart = inputEl.selectionEnd = inputEl.value.length;\n }, 300);\n }, []);\n useEffect(() => {\n if (input.current && visitorCountry) {\n input.current.focus();\n }\n });\n\n const onClick = () => {\n if (country === null) {\n setCountryList(true);\n } else if (input.current) {\n input.current.focus();\n }\n };\n const change = (event: React.ChangeEvent) => {\n const formatter = new AsYouType();\n const formattedInput = formatter.input(event.currentTarget.value);\n const phoneNumber = formatter.getNumber();\n const countryInfo = formatter.country;\n let invalid = true;\n if (countryInfo && (!country || country.id !== countryInfo)) {\n setCountry({\n id: countryInfo as string,\n option_text: COUNTRY[countryInfo]\n });\n }\n if (phoneNumber && phoneNumber.isValid()) {\n invalid = false;\n }\n setInvalid(invalid);\n if (!invalid) onError(null);\n setValue(formattedInput);\n setPhone(formattedInput);\n };\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode !== 13) return;\n if (invalid) {\n onError(VADLIDATION_MESSAGES.phone);\n } else {\n onSubmit();\n }\n };\n return (\n
\n
\n
setCountryList(true)}>\n {country && {country.id}}\n \n
\n \n
\n {countryList && (\n setCountryList(false)}\n onSelect={selectCountry}\n />\n )}\n
\n );\n}\n\nexport default React.memo(PhoneInput);\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n VADLIDATION_MESSAGES,\n EMAILREGEXPATTERN\n} from \"src/widget-container/constants\";\n\nexport interface Props {\n onError: (message: null | string) => void;\n onChange: (text: string) => void;\n onSubmit(): void;\n}\n\nfunction EmailInput({ onChange, onError, onSubmit }: Props) {\n const [value, setValue] = useState(\"\");\n const [invalid, setInvalid] = useState(true);\n const input = useRef(null);\n useEffect(() => {\n let inputEl = input.current;\n if (inputEl === null) return;\n if (inputEl) inputEl.focus();\n }, []);\n const change = (event: React.ChangeEvent) => {\n const emailInput = event.currentTarget.value;\n let invalid = true;\n if (emailInput) {\n invalid = !EMAILREGEXPATTERN.test(emailInput);\n } else {\n onError(null);\n }\n setInvalid(invalid);\n if (!invalid) onError(null);\n setValue(emailInput);\n onChange(emailInput);\n };\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 13) {\n if (invalid) {\n onError(VADLIDATION_MESSAGES.email);\n } else {\n onError(null);\n onSubmit();\n }\n }\n };\n return (\n \n );\n}\n\nexport default React.memo(EmailInput);\n","import React, {\n useState,\n useContext,\n useCallback,\n useMemo,\n useEffect\n} from \"react\";\nimport { Picker } from \"emoji-mart\";\nimport \"emoji-mart/css/emoji-mart.css\";\n\nimport {\n AppContext,\n ConversationContext,\n SocketServiceContext\n} from \"src/AppContext\";\nimport {\n Message,\n Interaction,\n Question,\n SingleChoiceQuestion,\n MultiChoiceQuestion,\n InteractionOption,\n PhoneQuestion\n} from \"src/interaction.interface\";\nimport { SocketStatus } from \"src/reducer\";\nimport { Answer } from \"src/actions\";\nimport { ConversationState } from \"src/constants\";\n\nimport \"./widget-footer.scss\";\nimport SendButtonIcon from \"./SendButtonIcon\";\nimport { DateInput } from \"./date-input/date-input\";\nimport { DatetimeInput } from \"./datetime-input/datetime-input\";\nimport { TimeInput } from \"./time-input/time-input\";\nimport SelectList, { SelectListProps } from \"./select-list\";\nimport { errorMessage } from \"../widget-body/widget-message/message-helpers/interaction-multi-select/interaction-multi-select\";\nimport { WidgetModal } from \"../widget-modal/widget-modal\";\nimport TextInput from \"./text-input\";\nimport PhoneInput from \"./phone-input/phone-input\";\nimport EmailInput from \"./email-input/email-input\";\nimport {\n VADLIDATION_MESSAGES,\n EMAILREGEXPATTERN\n} from \"src/widget-container/constants\";\nimport { AsYouType } from \"libphonenumber-js\";\n// Enable this for development only\n// import { OhLiveChat, IMessage } from \"src/live-chat\";\nimport { OhLiveChat, IMessage } from \"@oncehub/live-chat-util\";\n\ninterface ValidationOptions {\n isValid: boolean;\n errorMsg: string;\n}\nexport interface State {\n openEmoji: boolean;\n text: string;\n validationMessage: null | string;\n}\n\ninterface InputProps {\n value: string;\n question: null | Question;\n welcomePhoneQuestion: null | PhoneQuestion;\n onSubmit: () => void;\n onChange: (value: string) => void;\n onError: (error: null | string) => void;\n openSelectList: () => void;\n}\n\ninterface SelectInputProps {\n question: SingleChoiceQuestion | MultiChoiceQuestion;\n sendAnswer: (answer: Answer) => void;\n close: () => void;\n}\n\nlet liveChatObj: OhLiveChat;\n\nfunction findActiveQuestion(\n state: ConversationState | null,\n message?: Message | null\n): null | Question {\n if (state !== ConversationState.Active) return null;\n if (message == null) return null;\n if (message.sent_by !== \"bot\") return null;\n const interaction: Interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"question\") return null;\n return interaction;\n}\n\nfunction isEmojiDisabled(\n questionType: null | Question[\"question_type\"]\n): boolean {\n switch (questionType) {\n case null:\n case \"multi_choice\":\n case \"single_choice\":\n case \"number\":\n case \"phone\":\n case \"date\":\n case \"time\":\n case \"datetime\":\n case \"email\":\n return true;\n default:\n return false;\n }\n}\n\nfunction SelectInput({\n question,\n sendAnswer: answer,\n close\n}: SelectInputProps) {\n const [error, setError] = useState(null);\n const selectProps = useMemo((): SelectListProps => {\n if (question.question_type === \"single_choice\") {\n return {\n single: true,\n items: question.interaction_options,\n onSelect: option =>\n answer({\n content: option.option_text,\n interaction_option_id: option.id as number\n }),\n close\n };\n } else {\n return {\n single: false,\n items: question.interaction_options,\n onSelect: options => {\n const error = errorMessage(\n question.multi_choice_minimum || 1,\n question.multi_choice_maximum,\n options.length\n );\n setError(error);\n if (error === null) {\n options.sort((x, y) => x.option_order - y.option_order);\n answer({\n content: options.map(option => option.option_text).join(\", \"),\n multi_interaction_options_answer_ids: options.map(\n option => option.id\n )\n });\n }\n },\n close\n };\n }\n }, [answer, close, question]);\n if (question.multi_choice_type !== \"list\") return null;\n return (\n <>\n setError(null)}\n />\n {React.createElement(SelectList, selectProps)}\n \n );\n}\n\nfunction Input({\n value,\n question,\n welcomePhoneQuestion,\n onChange,\n onError,\n onSubmit,\n openSelectList\n}: InputProps) {\n let focus = false;\n const questionId = question && question.external_id;\n const appContext = useContext(AppContext);\n useEffect(() => {\n if (focus) {\n const input = document.querySelector(\".chat-footer input\");\n if (input !== null && input instanceof HTMLInputElement) input.focus();\n }\n }, [questionId, focus]);\n if (question === null && !appContext.liveChatchannel) {\n return ;\n } else if (question === null && appContext.liveChatchannel) {\n return ;\n } else if (\n (question && question.question_type === \"multi_choice\") ||\n (question && question.question_type === \"single_choice\")\n ) {\n if (question.multi_choice_type === \"list\") {\n return (\n \n );\n } else {\n return ;\n }\n } else if (question && question.question_type === \"date\") {\n return (\n \n );\n } else if (question && question.question_type === \"datetime\") {\n return (\n \n );\n } else if (question && question.question_type === \"time\") {\n return (\n \n );\n } else if (question && question.question_type === \"phone\") {\n return (\n \n );\n } else if (question && question.question_type === \"email\") {\n return (\n \n );\n }\n const changeValue = (event: React.SyntheticEvent) =>\n onChange(event.currentTarget.value);\n const onKeyDown = (event: React.KeyboardEvent) =>\n event.keyCode === 13 && onSubmit();\n focus = true;\n if (question && question.question_type === \"number\") {\n return (\n \n );\n } else if (question && question.question_type === \"text\") {\n return ;\n } else if (question && question.question_type === \"time_zone\") {\n focus = false;\n return ;\n } else {\n focus = false;\n return null;\n }\n}\n/**\n *\n * @param phone validate phone number validation\n */\nfunction validatePhone(phone) {\n const formatter = new AsYouType();\n formatter.input(phone);\n const phoneNumber = formatter.getNumber();\n return phoneNumber ? phoneNumber.isValid() : false;\n}\n/**\n *\n * @param questionType to identify the question type\n * @param input\n * Validating the input and returning object with error message and boolean isValid.\n */\nfunction checkValidation(\n questionType: null | Question[\"question_type\"],\n input\n) {\n if (input.length === 0) return;\n let invalid: ValidationOptions = { isValid: false, errorMsg: \"\" };\n switch (questionType) {\n case \"email\":\n invalid.isValid = !EMAILREGEXPATTERN.test(input);\n invalid.errorMsg = VADLIDATION_MESSAGES.email;\n break;\n case \"phone\":\n invalid.isValid = !validatePhone(input);\n invalid.errorMsg = VADLIDATION_MESSAGES.phone;\n break;\n }\n return invalid;\n}\n\nfunction WidgetFooter() {\n const appContext = useContext(AppContext);\n const color = appContext.settings.colour;\n const connecting = appContext.socket === SocketStatus.CONNECTING;\n const [state, setState] = useState({\n openEmoji: false,\n text: \"\",\n error: null,\n openSelectList: false\n });\n const updateState = useCallback(\n (next: Partial) => setState(state => ({ ...state, ...next })),\n []\n );\n const showValidationMessage = state.error !== null;\n const { messages } = useContext(ConversationContext);\n const { welcomeInteractions } = useContext(ConversationContext);\n const message = messages[messages.length - 1];\n const welcomeMessage = welcomeInteractions\n ? welcomeInteractions[welcomeInteractions.length - 1]\n : null;\n const question = findActiveQuestion(appContext.state, message);\n const welcomeQuestion = findActiveQuestion(appContext.state, welcomeMessage);\n const welcomePhoneQuestion: PhoneQuestion | null =\n welcomeQuestion && welcomeQuestion.question_type === \"phone\"\n ? welcomeQuestion\n : null;\n const questionType = question && question.question_type;\n const emojiDisabled = isEmojiDisabled(questionType);\n const selectBox =\n questionType === \"single_choice\" || questionType === \"multi_choice\";\n let editableBox =\n questionType === \"text\" ||\n questionType === \"number\" ||\n questionType === \"email\" ||\n questionType === \"time\" ||\n questionType === \"datetime\" ||\n questionType === \"date\" ||\n questionType === \"phone\" ||\n questionType === \"time_zone\";\n let disabled =\n question === null || selectBox || state.text.trim().length === 0;\n if (appContext.liveChatchannel) {\n disabled = state.text.trim().length === 0;\n editableBox = true;\n }\n const socket = useContext(SocketServiceContext);\n liveChatObj = appContext.liveChatObj;\n const sendAnswer = () => {\n const content = state.text.trim();\n if (content.length && appContext.liveChatchannel) {\n sendVisitorResponseInLiveChat(content);\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false\n });\n } else if (!content.length && appContext.liveChatchannel) {\n return;\n } else {\n const validationOption = checkValidation(questionType, content);\n if (validationOption!.isValid) {\n updateState({ error: validationOption!.errorMsg } as any);\n return;\n }\n if (state.error === null) {\n socket.answer({ content });\n }\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false\n });\n }\n };\n\n const sendVisitorResponseInLiveChat = messageText => {\n if (!appContext.liveChatchannel) {\n return;\n }\n\n const newMessage: IMessage = {\n type: \"text_message\",\n text: messageText,\n userType: \"Visitor\"\n };\n liveChatObj.sendMessage(\n appContext.accountId,\n appContext.conversationId,\n newMessage\n );\n liveChatObj.notifyNewMessage(\n appContext.accountId,\n appContext.conversationId,\n newMessage\n );\n liveChatObj.updateConversation(\n appContext.accountId,\n appContext.conversationId,\n {\n lastMessage: newMessage,\n updatedAt: Math.floor(new Date().getTime() / 1000)\n }\n );\n };\n\n const openSelectList = () => updateState({ openSelectList: true } as any);\n const selectList = useMemo(() => {\n if (!state.openSelectList || question == null) return null;\n if (\n question.question_type !== \"single_choice\" &&\n question.question_type !== \"multi_choice\"\n ) {\n return null;\n }\n return (\n {\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false\n });\n socket.answer(answer);\n }}\n close={() => updateState({ openSelectList: false } as any)}\n />\n );\n }, [state.openSelectList, question, socket, updateState]);\n return (\n <>\n {selectList}\n
\n \n {/*
\n \n
*/}\n \n updateState({ text })}\n // @ts-ignore\n onError={error => updateState({ error })}\n />\n \n \n \n
\n \n \n !emojiDisabled &&\n setState({ ...state, openEmoji: !state.openEmoji })\n }\n />\n {process.env.REACT_APP_SOLO_PHASE_ONE_TOGGLE === \"true\" &&\n appContext.oncehubBrandingUrl && (\n \n )}\n\n \n \n {state.openEmoji && (\n
\n {\n setState({\n ...state,\n openEmoji: false,\n text: state.text + (emoji as any).native\n });\n }}\n />\n
\n )}\n \n \n );\n}\n\nexport default React.memo<{}>(WidgetFooter);\n","export default __webpack_public_path__ + \"static/media/bots.aebca506.svg\";","import * as React from \"react\";\nimport \"./end-conversation.scss\";\n\ninterface IEndChatProps {\n message: any;\n}\nexport const EndConversation = (props: IEndChatProps) => (\n
\n
\n {props.message &&\n props.message.user &&\n `${\"This conversation has been closed by \"}${\n props.message.user.firstName\n }`}\n {!props.message && \"This conversation has been ended by the bot\"}\n {props.message &&\n !props.message.user &&\n \"This conversation has been ended by the bot\"}\n
\n
\n);\n","import React, { useContext } from \"react\";\nimport { InteractionOption } from \"src/interaction.interface\";\n\nimport \"./interaction-single-select.scss\";\nimport { AppContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ninterface Props {\n options: InteractionOption[];\n onSelect: (option: InteractionOption) => void;\n}\n\nfunction InteractionSingleSelect({ options, onSelect }: Props) {\n const { colour: color } = useContext(AppContext).settings;\n return (\n
    \n {options.map(option => (\n onSelect(option)}\n className={`border-primary text-secondary ${\n ColorSet.indexOf(color) !== -1 ? \"border-enable light-color\" : \"\"\n }`}\n >\n {option.option_text}\n \n ))}\n
\n );\n}\n\nexport default React.memo(InteractionSingleSelect);\n","import * as React from \"react\";\n\nexport interface ITextMessageProps {\n messageId: string;\n text: string;\n}\n\nfunction TextMessageComponent(props: ITextMessageProps) {\n return (\n 7\n ? \"chat-message chat-message-align-left bg-primary text-primary border-primary\"\n : \"chat-message bg-primary text-primary border-primary\"\n }\n >\n {props.text}\n
\n );\n}\n\nexport default React.memo(TextMessageComponent);\n","import * as React from \"react\";\nimport { Player, BigPlayButton, ControlBar } from \"video-react\";\n\nimport \"./video-message.scss\";\nimport \"video-react/dist/video-react.css\";\nimport PlayButtonImg from \"../../../../../assets/images/play-button.png\";\n\ninterface IVideoMessageProps {\n description?: string;\n videoTitle?: string;\n videoUrl: any;\n autoPlay: boolean;\n botName?: string;\n id: string;\n currentTime?: number;\n showBotName?: boolean;\n}\n\ninterface IVideoMessageState {\n isOpen: boolean;\n isPaused: boolean;\n isFullScreen: boolean;\n}\n\nexport class VideoMessage extends React.PureComponent<\n IVideoMessageProps,\n IVideoMessageState\n> {\n readonly state: IVideoMessageState = {\n isFullScreen: false,\n isOpen: false,\n isPaused: !this.props.autoPlay\n };\n playerRef: any;\n constructor(parameters: IVideoMessageProps) {\n super(parameters);\n this.playerRef = React.createRef();\n }\n componentDidMount() {\n if (this.props.autoPlay) {\n setTimeout(() => {\n if (this.hasPlayerRef()) {\n const { video } = this.playerRef.current;\n if (this.props.currentTime) {\n (video.video as HTMLVideoElement).currentTime = this.props.currentTime;\n }\n this.mute(video);\n this.play(video);\n }\n }, 200);\n }\n if (this.hasPlayerRef()) {\n this.playerRef.current.subscribeToStateChange(\n this.handleFullScreen.bind(this)\n );\n }\n }\n\n handleFullScreen(state, prevState) {\n this.setState({ isFullScreen: state.isFullScreen });\n if (state.isFullscreen && !prevState.isFullscreen) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: [\"co-iframe-full-screen\"],\n remove: [\"co-iframe-open\"]\n },\n \"*\"\n );\n } else if (!state.isFullscreen && prevState.isFullscreen) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: [\"co-iframe-open\"],\n remove: [\"co-iframe-full-screen\"]\n },\n \"*\"\n );\n }\n }\n\n renderTitleBox() {\n if (this.props.videoTitle) {\n return (\n
\n \n {this.props.videoTitle}\n {this.props.description}\n \n
\n );\n }\n return null;\n }\n\n togglePlay = () => {\n if (this.hasPlayerRef()) {\n const { video } = this.playerRef.current;\n if (this.state.isPaused) {\n this.play(video);\n } else {\n this.pause(video);\n }\n }\n };\n\n mute(video: HTMLVideoElement) {\n video.muted = true;\n }\n\n play(video: HTMLVideoElement) {\n video.play();\n this.setState({\n isPaused: false\n });\n }\n\n pause(video: HTMLVideoElement) {\n video.pause();\n this.setState({\n isPaused: true\n });\n }\n\n render() {\n return (\n
\n \n
\n {this.props.showBotName && (\n {this.props.botName}\n )}\n
\n \n \n \n \n \n \n \n \"Play\"\n
\n
\n
\n {this.renderTitleBox()}\n \n \n );\n }\n\n private hasPlayerRef() {\n return this.playerRef.current !== null ? true : false;\n }\n}\n","export default \"data:image/png;base64,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\"","import * as React from \"react\";\nimport \"./image-message.scss\";\nimport Lightbox from \"react-images\";\n\nexport interface IImageMessageProps {\n imageTitle: null | string;\n imageUrl: string;\n isNotificationInteraction?: boolean;\n botName?: string;\n id: string;\n showBotName?: boolean;\n}\n\nexport interface IImageMessageState {\n isOpen: boolean;\n}\n\nexport class ImageMessage extends React.PureComponent<\n IImageMessageProps,\n IImageMessageState\n> {\n imageRef: React.RefObject = React.createRef();\n readonly state: IImageMessageState = {\n isOpen: false\n };\n readonly theme = {\n // arrows\n arrow: {\n backgroundColor: \"rgba(255, 255, 255, 0.8)\",\n fill: \"#222\",\n opacity: 0.6,\n transition: \"opacity 200ms\",\n\n \":hover\": {\n opacity: 1\n }\n },\n arrow__direction__left: { marginLeft: 10 },\n arrow__direction__right: { marginRight: 10 },\n arrow__size__medium: {\n borderRadius: 40,\n height: 40,\n marginTop: -20,\n\n \"@media (min-width: 768px)\": {\n height: 70,\n padding: 15\n }\n },\n // container\n close: {\n \":hover\": {\n opacity: 1\n },\n fill: \"#000000\",\n opacity: 0.6,\n transition: \"all 200ms\"\n },\n container: {\n background: \"rgba(255, 255, 255, 0.8)\"\n },\n\n // footer\n footer: {\n color: \"black\"\n },\n footerCount: {\n color: \"rgba(0, 0, 0, 0.6)\"\n }\n };\n\n toggleLightbox = () => {\n const isOpen = !this.state.isOpen;\n this.setState(\n {\n isOpen\n },\n () => {\n setTimeout(() => {\n document.body.setAttribute(\"style\", \"\");\n });\n window.top.postMessage(\n {\n type: \"updateIframe\",\n add: isOpen ? [\"co-iframe-fullscreen\"] : [\"co-iframe-open\"],\n remove: isOpen ? [\"co-iframe-open\"] : [\"co-iframe-fullscreen\"]\n },\n \"*\"\n );\n }\n );\n };\n\n renderLightbox() {\n return (\n \n );\n }\n\n render() {\n return (\n
\n \n {!this.props.isNotificationInteraction && this.renderLightbox()}\n {this.props.showBotName && (\n {this.props.botName}\n )}\n \n \n
\n );\n }\n}\n","export default __webpack_public_path__ + \"static/media/document-icon.4b0f83a1.svg\";","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable no-script-url */\nimport * as React from \"react\";\nimport \"./../image-message/image-message.scss\";\nimport \"./document-message.scss\";\nimport DocumentIcon from \"./../../../../../assets/images/document-icon.svg\";\n\nexport interface IMessageDocumentProp {\n title: null | string;\n documentUrl: string;\n botName?: string;\n id: string;\n showBotName?: boolean;\n}\n\nexport const DocumentMessage = (props: IMessageDocumentProp) => {\n const downloadFile = () => {\n const a = document.createElement(\"a\");\n a.href = props.documentUrl;\n a.target = \"_blank\";\n a.rel = \"noreferrer noopener\";\n a.download = props.title || \"\";\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n };\n let fileName = props.documentUrl.split(\"/\").pop();\n fileName = fileName ? decodeURIComponent(fileName) : \"NA\";\n return (\n
\n \n {props.showBotName && (\n {props.botName}\n )}\n\n \n \n \"document\n \n \n {props.title}\n

{fileName}

\n
\n \n \n
\n );\n};\n","export default __webpack_public_path__ + \"static/media/url-default.a4938810.svg\";","/* eslint-disable no-script-url */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport * as React from \"react\";\nimport \"./url-message.scss\";\nimport urlDefaultImage from \"src/assets/images/url-default.svg\";\nimport { UtilsService } from \"./../../../../../utils/utils.service\";\n\nexport interface IMessageUrlProp {\n urlProps: {\n title: string;\n url: string;\n };\n id: string;\n imageTitle?: string;\n imageUrl: null | string;\n botName?: string;\n showBotName?: boolean;\n}\n\nexport class MessageUrl extends React.PureComponent {\n imageRef: React.RefObject = React.createRef();\n\n openLink = () => {\n const a = document.createElement(\"a\");\n a.href = this.props.urlProps.url;\n a.target = \"_blank\";\n a.rel = \"noreferrer noopener\";\n a.style.display = \"none\";\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n };\n\n render() {\n return (\n
\n \n
\n {this.props.showBotName && (\n {this.props.botName}\n )}\n \n
\n \n \n {this.props.urlProps.title}\n \n \n {UtilsService.extractHostName(this.props.urlProps.url)}\n \n \n \n
\n );\n }\n}\n","import {\n TimeZones as TIMEZONES,\n PriorityCountryId as TOP_COUNTRIES_IDS\n} from \"src/assets/timezoneConfig.js\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\n\nexport interface ITimezone {\n Id: string;\n ShortName: string;\n Country: string;\n Region: string;\n CityList: string;\n TimeZone: number;\n DisplayOrder: number;\n HasDayLightSavings: Array<{\n offset: string;\n startTimeMili: string;\n endTimeMili: string;\n }>;\n CountryCallingCode: string;\n}\n\nexport interface ITimezoneData {\n displayOrder: number;\n timezoneId: string;\n region: string;\n shortName: string;\n offset: string;\n isDisabled: boolean;\n countryName: string;\n regionWithGMTAndDST: string;\n}\nexport class TimezoneService {\n private static convertNumberToMinutes = (numberString: string) => {\n if (numberString.length === 1) {\n return ((+numberString / 10) * 60).toString();\n } else {\n return ((+numberString / 100) * 60).toString();\n }\n };\n\n private static convertOffsetToDisplayString = (offset: number | string) => {\n const [hrs, mins] = offset.toString().split(\".\");\n let offsetMinute: string = \"00\";\n if (mins) {\n offsetMinute = TimezoneService.convertNumberToMinutes(mins);\n }\n return `${offset > 0 ? \"+\" + hrs : hrs}:${offsetMinute}`;\n };\n\n static getFullTimezoneString = (\n offset: number,\n hasDST: boolean,\n country: string,\n region: string\n ) => {\n const offsetString = TimezoneService.convertOffsetToDisplayString(offset);\n if (region) {\n return `(GMT${offsetString})${\n hasDST ? \" [DST] \" : \"\"\n } ${country}; ${region}`;\n } else {\n return `(GMT${offsetString})${hasDST ? \" [DST]; \" : \";\"} ${country}`;\n }\n };\n\n static getTimezoneStringByTimezoneId = (tzId: string) => {\n const [timezone] = TIMEZONES[0][tzId || DEFAULT_TIMEZONE_ID];\n let tzString = \"\";\n if (timezone) {\n const timezoneObj = timezone as ITimezone;\n const { offset, hasDST } = TimezoneService.getTimezoneSettings(\n timezoneObj\n );\n tzString = TimezoneService.getFullTimezoneString(\n offset,\n hasDST,\n timezoneObj.Country,\n timezoneObj.Region\n );\n }\n return tzString;\n };\n\n static getSelectOptionRegionString = (region, offset: string, hasDst) => {\n const offsetString = TimezoneService.convertOffsetToDisplayString(offset);\n return `${region} (GMT${offsetString})${hasDst ? \" [DST]\" : \"\"}`.trim();\n };\n\n static getTimezoneSettings = (timezone: ITimezone) => {\n let offset = timezone.TimeZone;\n let hasDST = false;\n if (timezone.HasDayLightSavings && timezone.HasDayLightSavings.length) {\n const currentTime = Date.now();\n for (const eachDST of timezone.HasDayLightSavings) {\n if (\n currentTime >= +eachDST.startTimeMili &&\n currentTime <= +eachDST.endTimeMili\n ) {\n hasDST = true;\n offset = +eachDST.offset;\n }\n }\n }\n return {\n offset,\n hasDST\n };\n };\n\n static getOffsetAndDST = (timeNow: number, timeZoneData: ITimezone) => {\n let tzOffset = timeZoneData.TimeZone.toString();\n let hasDST = false;\n if (\n timeZoneData.HasDayLightSavings &&\n timeZoneData.HasDayLightSavings.length\n ) {\n const activeDST = timeZoneData.HasDayLightSavings.find(\n DST =>\n Number(DST.startTimeMili) <= timeNow &&\n timeNow <= Number(DST.endTimeMili)\n );\n if (activeDST) {\n tzOffset = activeDST.offset;\n hasDST = true;\n }\n }\n return { offset: tzOffset, hasDST };\n };\n\n static getRegionData = (timezoneId: string): ITimezoneData => {\n const TimeZones: { [key: string]: ITimezone[] } = TIMEZONES[0];\n const timeNow = Date.now();\n const tz = TimeZones && TimeZones[timezoneId] && TimeZones[timezoneId][0];\n const { hasDST, offset } = TimezoneService.getOffsetAndDST(timeNow, tz);\n\n return {\n displayOrder: tz.DisplayOrder,\n timezoneId: tz.Id,\n region: tz.Region,\n shortName: tz.ShortName,\n offset,\n isDisabled: false,\n countryName: tz.Country,\n regionWithGMTAndDST: TimezoneService.getSelectOptionRegionString(\n tz.Region,\n offset,\n hasDST\n )\n };\n };\n\n static getTimezoneData = () => {\n const TimeZones: { [key: string]: ITimezone[] } = TIMEZONES[0];\n const tzData: {\n [key: string]: ITimezoneData[];\n } = {};\n\n for (const key in TimeZones) {\n if (key in TimeZones) {\n const tz = TimeZones && TimeZones[key] && TimeZones[key][0];\n if (tz && tz.Country) {\n tzData[tz.Country] = tzData[tz.Country] || [];\n tzData[tz.Country].push(TimezoneService.getRegionData(key));\n }\n }\n }\n\n // sort in display order and alphabetically\n const allCountriesString = Object.keys(tzData).sort();\n for (const country in tzData) {\n if (country in tzData) {\n const regions = tzData[country];\n if (regions && regions.length > 1) {\n regions.sort((a, b) => {\n return a.displayOrder - b.displayOrder;\n });\n }\n }\n }\n const topCountriesString = TOP_COUNTRIES_IDS.reduce(\n (prevArr: string[], countryId, i) => {\n if (\n TimeZones[countryId] &&\n TimeZones[countryId].length &&\n prevArr.indexOf(TimeZones[countryId][0].Country) === -1\n ) {\n prevArr.push(TimeZones[countryId][0].Country);\n }\n return prevArr;\n },\n []\n );\n const allCountriesData: ITimezoneData[][] = allCountriesString.map(\n countryName => {\n return tzData[countryName];\n }\n );\n const topCountriesData: ITimezoneData[][] = topCountriesString.map(\n countryName => {\n return tzData[countryName];\n }\n );\n return {\n topCountriesData,\n allCountriesData\n };\n };\n}\n","import * as React from \"react\";\nimport \"./select-list-with-filter.scss\";\nimport { SelectListOption } from \"./select-option\";\n\nexport interface ISelectListWithFilterProps {\n selectItems: any[];\n customSelectConfig: {\n selectedOptionText: string;\n allOptions: Array>;\n onOptionChange: (newOption: T, index, event?) => void;\n placeholderText: string;\n showValidation?: boolean;\n validationMessage?: string;\n };\n}\n\ninterface ISelectListWithFilterState {\n filterItems: JSX.Element[];\n isOpen: boolean;\n}\n\nexport class SelectListWithFilter extends React.Component<\n ISelectListWithFilterProps,\n ISelectListWithFilterState\n> {\n private inputRef: React.RefObject = React.createRef();\n private customUlRef: React.RefObject = React.createRef();\n private customSelectDivRef: React.RefObject<\n HTMLDivElement\n > = React.createRef();\n\n constructor(props: ISelectListWithFilterProps) {\n super(props);\n const selectItems: JSX.Element[] = [];\n this.props.selectItems.forEach((option, index) => {\n selectItems.push(\n
  • \n {option.optionText}\n
  • \n );\n });\n this.state = {\n filterItems: selectItems,\n isOpen: false\n };\n }\n\n componentDidMount() {\n if (this.inputRef && this.inputRef.current) {\n (this.inputRef.current as HTMLElement).focus();\n }\n }\n\n private dropDownToggler = () => {\n this.setState(\n prevState => {\n return {\n isOpen: !prevState.isOpen\n };\n },\n () => {\n const nowIsOpen = this.state.isOpen;\n if (nowIsOpen) {\n const ulElm = this.customUlRef.current;\n if (ulElm) {\n const selectedElm = ulElm.querySelector(\"li.selected\");\n if (selectedElm) {\n selectedElm.scrollIntoView();\n }\n const customOuterDivElm = this.customSelectDivRef.current;\n if (customOuterDivElm) {\n const windowHeight = window.innerHeight;\n const customOuterDimensions = customOuterDivElm.getBoundingClientRect();\n const customOuterTop = customOuterDimensions.top;\n const customOuterHeight = customOuterDimensions.height;\n const lowerSectionHeight =\n windowHeight - customOuterTop - customOuterHeight;\n const parentDiv = ulElm.parentElement;\n if (parentDiv) {\n if (ulElm.clientHeight < lowerSectionHeight) {\n parentDiv.classList.remove(\"open-top\");\n parentDiv.classList.add(\"open-bottom\");\n } else {\n parentDiv.classList.remove(\"open-bottom\");\n parentDiv.classList.add(\"open-top\");\n }\n }\n }\n }\n }\n }\n );\n };\n\n private onCustomOptionClick = (option: SelectListOption, index, e) => {\n this.setState({\n isOpen: false\n });\n if (this.props.customSelectConfig) {\n this.props.customSelectConfig.onOptionChange(\n option.optionValue,\n index,\n e\n );\n }\n };\n\n render() {\n const {\n allOptions,\n placeholderText,\n selectedOptionText,\n showValidation,\n validationMessage\n } = this.props.customSelectConfig;\n const hasSelection =\n this.props.customSelectConfig.selectedOptionText.length > 0;\n return (\n
    \n 1 ? this.dropDownToggler : undefined}\n />\n\n \n 1 ? this.dropDownToggler : undefined}\n >\n \n {hasSelection ? selectedOptionText : placeholderText}\n

    \n
    \n \n
    \n
      \n {allOptions.map((option, index) => {\n return (\n \n {option.optionText}\n \n );\n })}\n
    \n
    \n \n \n );\n }\n}\n","export class SelectListOption {\n isDisabled: boolean;\n optionText: string;\n optionValue: T;\n constructor(params: {\n isDisabled: boolean;\n optionText: string;\n optionValue: T;\n }) {\n this.isDisabled = params.isDisabled;\n this.optionText = params.optionText;\n this.optionValue = params.optionValue;\n }\n}\n","import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"./timezone-popup.scss\";\nimport {\n ITimezonePopupProps,\n ITimezonePopupStates\n} from \"./timezone-popup.interface\";\nimport { TimezoneService, ITimezoneData } from \"src/utils/timezone.service\";\nimport { ChatButton } from \"../chat-button/chat-button\";\nimport { SelectListWithFilter } from \"../select-list-with-filter/select-list-with-filter\";\nimport { SelectListOption } from \"../select-list-with-filter/select-option\";\n\nexport class TimezonePopup extends React.Component<\n ITimezonePopupProps,\n ITimezonePopupStates\n> {\n private tempSelectedCountry: string;\n private tempSelectedRegionDetail: ITimezoneData;\n private tempRegionList: ITimezoneData[];\n private dropdownCountryWithRegionList: ITimezoneData[][] = [];\n private dropdownRegionList: ITimezoneData[] = [];\n private seperatorOption: ITimezoneData[] = [\n {\n countryName: \"-------------------------------------\",\n isDisabled: true,\n displayOrder: 0,\n offset: \"\",\n region: \"\",\n shortName: \"\",\n timezoneId: \"\",\n regionWithGMTAndDST: \"\"\n }\n ];\n private selectOptionsForCountryList: Array<\n SelectListOption\n > = [];\n private selectOptionsForRegionList: Array<\n SelectListOption\n > = [];\n placeholderTextForRegionsList = \"Please select time zone region\";\n constructor(props: ITimezonePopupProps) {\n super(props);\n this.initializePopup(props);\n const selectedRegionDetails = TimezoneService.getRegionData(\n props.timezoneId\n );\n this.state = this.getStatesObj(selectedRegionDetails);\n this.tempSelectedCountry = this.state.selectedCountryName;\n this.tempSelectedRegionDetail = this.state.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n }\n\n initializePopup(props: ITimezonePopupProps) {\n this.setDropdownCountryWithRegionList();\n this.setDropdownRegionList(props.timezoneId);\n }\n\n componentDidUpdate(nextProps: ITimezonePopupProps) {\n const timezoneChanged = nextProps.timezoneId !== this.props.timezoneId;\n if (timezoneChanged) {\n this.setDropdownRegionList(nextProps.timezoneId);\n const selectedRegionDetails = TimezoneService.getRegionData(\n nextProps.timezoneId\n );\n const stateObj = this.getStatesObj(selectedRegionDetails);\n this.tempSelectedCountry = stateObj.selectedCountryName;\n this.tempSelectedRegionDetail = stateObj.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n this.setState(stateObj);\n }\n }\n\n getStatesObj = (\n selectedRegionDetails: ITimezoneData\n ): ITimezonePopupStates => {\n return {\n selectedCountryName: selectedRegionDetails.countryName,\n selectedRegionNameWithGMTAndDST:\n selectedRegionDetails.regionWithGMTAndDST,\n selectedRegionDetails,\n showRegionValidation: false\n };\n };\n\n getSelectedRegionsByTimezoneId = (tzId: string) => {\n return this.dropdownCountryWithRegionList.find(t => {\n const hasSelectedRegions = t.some(e => e.timezoneId === tzId);\n return hasSelectedRegions;\n });\n };\n\n setDropdownCountryWithRegionList = () => {\n const {\n allCountriesData,\n topCountriesData\n } = TimezoneService.getTimezoneData();\n this.dropdownCountryWithRegionList = topCountriesData.concat(\n [this.seperatorOption],\n allCountriesData\n );\n this.selectOptionsForCountryList = this.dropdownCountryWithRegionList.map(\n (countryData, index) => {\n const option = new SelectListOption({\n isDisabled: countryData[0].isDisabled,\n optionText: countryData[0].countryName,\n optionValue: countryData[0]\n });\n return option;\n }\n );\n };\n\n setDropdownRegionList = (tzId: string) => {\n this.dropdownRegionList = this.getSelectedRegionsByTimezoneId(\n tzId\n ) as ITimezoneData[];\n this.selectOptionsForRegionList = this.dropdownRegionList.map(\n (regionData, index) => {\n const option = new SelectListOption({\n isDisabled: regionData.isDisabled,\n optionText: regionData.regionWithGMTAndDST,\n optionValue: regionData\n });\n return option;\n }\n );\n };\n\n onCountryChange = (newValue: ITimezoneData, index: number) => {\n this.resetRegionValidation();\n this.setCountryAndRegionByIndex(index);\n };\n\n setCountryAndRegionByIndex = (countryIndex: number, regionIndex = 0) => {\n const newRegionSelection = this.dropdownCountryWithRegionList[countryIndex][\n regionIndex\n ];\n this.dropdownRegionList = this.dropdownCountryWithRegionList[countryIndex];\n this.selectOptionsForRegionList = this.dropdownRegionList.map(\n (regionData, index) => {\n const option = new SelectListOption({\n isDisabled: regionData.isDisabled,\n optionText: regionData.regionWithGMTAndDST,\n optionValue: regionData\n });\n return option;\n }\n );\n this.setState({\n selectedCountryName: newRegionSelection.countryName\n });\n if (this.dropdownRegionList.length > 1) {\n this.setState({\n selectedRegionNameWithGMTAndDST: \"\"\n });\n } else {\n this.setRegionByIndex(0);\n }\n };\n\n setRegionByIndex = (regionIndex: number) => {\n const selectedRegion = this.dropdownRegionList[regionIndex];\n this.setState({\n selectedRegionNameWithGMTAndDST: selectedRegion.regionWithGMTAndDST,\n selectedRegionDetails: selectedRegion\n });\n };\n\n onRegionChange = (newValue: ITimezoneData, index: number) => {\n this.resetRegionValidation();\n this.setRegionByIndex(index);\n };\n\n resetRegionValidation = () => {\n this.setState({\n showRegionValidation: false\n });\n };\n\n onContinueBtnClick = () => {\n if (\n this.state.selectedCountryName &&\n this.state.selectedRegionNameWithGMTAndDST\n ) {\n const tzId = this.state.selectedRegionDetails.timezoneId;\n const timezoneString = TimezoneService.getTimezoneStringByTimezoneId(\n tzId\n );\n this.tempSelectedCountry = this.state.selectedCountryName;\n this.tempSelectedRegionDetail = this.state.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n this.props.closePopup(tzId, timezoneString);\n } else {\n this.setState({\n showRegionValidation: true\n });\n }\n };\n\n onCloseButtonClick = () => {\n this.setState({\n selectedCountryName: this.tempSelectedCountry,\n selectedRegionDetails: this.tempSelectedRegionDetail,\n selectedRegionNameWithGMTAndDST: this.tempSelectedRegionDetail\n .regionWithGMTAndDST\n });\n this.dropdownRegionList = this.tempRegionList;\n this.props.closePopup();\n };\n render() {\n const container = document.querySelector(\".chat-window\");\n return (\n container &&\n createPortal(\n
    \n
    \n

    \n Your time zone\n \n

    \n

    All times will be displayed according to your time zone:

    \n \n\n \n
    \n \n
    \n
    \n
    ,\n container\n )\n );\n }\n}\n","export default __webpack_public_path__ + \"static/media/no_Times.d9349db9.svg\";","export default __webpack_public_path__ + \"static/media/Error_icon.3dda98a7.svg\";","export default __webpack_public_path__ + \"static/media/double_booking_icon.3bf28f2f.svg\";","import { ConfirmEventData, ContactInfo } from \"src/interaction.interface\";\n\nexport interface FetchSlotsOptions {\n startDate: number;\n endDate: number;\n timeZoneId: string;\n websiteId: string;\n interactionId: string;\n initial_load: boolean;\n}\n\nexport interface Slot {\n timeStr: string;\n startTime: number;\n duration: number;\n dateString: string;\n dateObjSummary: string;\n resourceLinkId: any;\n}\n\nexport type FetchSlotsAPISuccessResponse = {\n success: true;\n slots: {\n [date: string]: Slot[];\n };\n /** date in d/m/yyyy format */\n lastAvailableDay: Date;\n};\n\nexport type FetchSlotsAPIErrorResponse = {\n schedule_status: \"error_while_fetching_slots\";\n schedule_fallback_message: string;\n};\n\nexport type FetchSlotsAPIResponse =\n | FetchSlotsAPISuccessResponse\n | FetchSlotsAPIErrorResponse;\n\nexport interface ConfirmOptions {\n trackingid?: any;\n duration: number;\n timeZoneId: string;\n timeZoneString: string;\n startTime: number;\n websiteId: string;\n interactionId: string;\n dateObjSummary: string;\n resourcesLinkId: any;\n enableSmsNotification: boolean;\n contactInfo: ContactInfo;\n}\n\nexport interface BlockOptions {\n meetingIds?: any;\n duration: number;\n dateObjSummary: string;\n resourcesLinkId: any;\n meetingLowerBoundary: number;\n meetingUpperBoundary: number;\n interactionId: string;\n contactInfo: ContactInfo;\n}\n\nexport interface DoubleBookingResponse {\n schedule_status: \"error_double_booking\";\n schedule_fallback_message: string;\n schedule_timeslot_fallback_button_text: string;\n}\n\nexport interface ErrorWhileConfirming {\n schedule_status: \"error_while_confirming\";\n schedule_fallback_message: string;\n}\n\nexport interface ErrorWhileBlocking {\n schedule_status: \"error_while_blocking_time\";\n schedule_fallback_message: string;\n}\n\nexport type ConfirmAPIResponse =\n | DoubleBookingResponse\n | ErrorWhileConfirming\n | ConfirmEventData;\n\nexport type BlockAPIResponse =\n | DoubleBookingResponse\n | ErrorWhileBlocking\n | BlockAPIData;\n\nexport type BlockAPIData = {\n bookingTrackingId: string;\n panelTrackingId: string;\n};\n\nexport function dateToString(date: Date): string {\n return date.getFullYear() + \"-\" + date.getMonth() + \"-\" + date.getDate();\n}\n\nexport function stringToDate(date: string): Date {\n const parts = date.split(\"-\");\n return new Date(parseInt(parts[0]), parseInt(parts[1]), parseInt(parts[2]));\n}\n\nexport function nextDay(date: string) {\n const next = stringToDate(date);\n next.setDate(next.getDate() + 1);\n return dateToString(next);\n}\n","import { ApiClient } from \"../../../../../utils/api-client\";\nimport {\n Slot,\n FetchSlotsOptions,\n FetchSlotsAPIResponse,\n ConfirmOptions,\n ConfirmAPIResponse,\n BlockOptions,\n BlockAPIResponse\n} from \"./slots.type\";\nimport { StorageStrategy } from \"../../../../../utils/storage-strategy\";\n\nexport async function fetchSlots(\n options: FetchSlotsOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/fetch-times`,\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: { ...options, chSessionId }\n }\n );\n const json = await request.json();\n if (!json.success) {\n return json;\n }\n const lastAvailableDay: [\n number,\n number,\n number\n ] = json.data.lastAvailableDay\n .split(\"-\")\n .map((part: string) => parseInt(part));\n lastAvailableDay.reverse();\n const slots: { [date: string]: Slot[] } = {};\n for (const date in json.data.slots) {\n const dateSlots: Slot[] = [];\n const { am, pm, duration } = json.data.slots[date];\n if (am) {\n dateSlots.push(...am);\n }\n if (pm) {\n dateSlots.push(...pm);\n }\n for (let i = dateSlots.length - 1; i >= 0; i--) {\n dateSlots[i].duration = duration;\n }\n slots[date] = dateSlots;\n }\n\n return {\n slots,\n success: true,\n lastAvailableDay: new Date(...lastAvailableDay)\n };\n}\n\nexport async function confirmSlot(\n options: ConfirmOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/confirm`,\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: { ...options, chSessionId }\n }\n );\n const json = await request.json();\n return json.data;\n}\n\nexport async function blockSlot(\n options: BlockOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/block-meeting-time`,\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: { ...options, chSessionId }\n }\n );\n const json = await request.json();\n return json.data;\n}\n","import * as React from \"react\";\nimport \"./loader.scss\";\nimport { ILoaderProps } from \"./loader.interface\";\n\nexport const Loader = (props: ILoaderProps) => {\n return (\n
    \n
    \n
    \n \n
    \n
    {props.text ? props.text : \"\"}
    \n
    \n
    \n );\n};\n","/* eslint-disable jsx-a11y/heading-has-content */\n/* eslint-disable no-script-url */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {\n useReducer,\n useMemo,\n useState,\n useCallback,\n useContext,\n useEffect,\n useRef,\n Dispatch\n} from \"react\";\n\nimport {\n ScheduleInteraction,\n ConfirmEventData\n} from \"src/interaction.interface\";\nimport { TimezoneService } from \"src/utils/timezone.service\";\nimport { TimezonePopup } from \"src/widget-container/common-components/timezone-popup/timezone-popup\";\nimport { SocketServiceContext, AppContext } from \"src/AppContext\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\nimport NoTimesIcon from \"src/assets/images/no_Times.svg\";\nimport CONFIRM_ERROR_ICON from \"src/assets/images/Error_icon.svg\";\nimport DOUBLE_BOOKING_ERROR_ICON from \"src/assets/images/double_booking_icon.svg\";\n\nimport \"./schedule-action.scss\";\n\nimport {\n Slot,\n nextDay,\n stringToDate,\n dateToString,\n ConfirmAPIResponse,\n FetchSlotsAPISuccessResponse\n} from \"./slots.type\";\n\nimport { confirmSlot, fetchSlots, blockSlot } from \"./slots.service\";\nimport { Loader } from \"src/widget-container/common-components/loader/loader\";\nimport { ChatButton } from \"src/widget-container/common-components/chat-button/chat-button\";\nimport {\n MONTH_NAMES,\n SHORT_MONTH_NAMES,\n SHORT_DAY_NAMES\n} from \"src/utils/utils.service\";\nimport { ConversationState } from \"src/constants\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ntype SelectedDatePosition = 0 | 1 | 2;\n\ninterface Props {\n last: boolean;\n interaction: ScheduleInteraction;\n}\n\ninterface State {\n lastAvailableDay: null | Date;\n findNextAvailableDay: boolean;\n slots: {\n [date: string]: undefined | null | Slot[];\n };\n firstDate: string;\n selectedDatePosition: SelectedDatePosition;\n selectedSlot: null | Slot;\n confirmAPIPromise: null | Promise;\n blockTrackingId: null | String;\n doubleBooking: null | {\n message: string;\n buttonText: string;\n };\n smsChecked: boolean;\n}\n\ntype Action =\n | { type: \"RESET_SLOTS\" }\n | { type: \"CHANGE_FIRST_DATE\"; changeInDays: number }\n | { type: \"SET_FIRST_DATE\"; value: string; position: number }\n | {\n type: \"SLOTS\";\n data: FetchSlotsAPISuccessResponse;\n start: string;\n end: string;\n }\n | { type: \"LOADING_SLOTS\"; start: string; end: string }\n | {\n type: \"SELECTED_DATE_POSITION\";\n position: SelectedDatePosition;\n }\n | { type: \"START_CONFIRMATION\"; promise: Promise }\n | { type: \"BLOCK_SLOT\"; data: String }\n | { type: \"SELECT_SLOT\"; slot: null | Slot }\n | { type: \"DOUBLE_BOOKING\"; message: string; buttonText: string }\n | { type: \"BACK_DOUBLE_BOOKING\" }\n | { type: \"SET_SMS\"; value: boolean }\n | { type: \"FIND_NEXT_AVAILABLE_DAY\"; value: boolean };\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case \"RESET_SLOTS\": {\n return {\n ...state,\n lastAvailableDay: null,\n slots: {},\n doubleBooking: null,\n confirmAPIPromise: null,\n findNextAvailableDay: true,\n selectedDatePosition: 0,\n selectedSlot: null,\n blockTrackingId: null,\n firstDate: dateToString(new Date())\n };\n }\n case \"CHANGE_FIRST_DATE\": {\n const date = stringToDate(state.firstDate);\n date.setDate(date.getDate() + action.changeInDays);\n return {\n ...state,\n selectedDatePosition: 0,\n firstDate: dateToString(date)\n };\n }\n case \"SLOTS\": {\n const next: State = {\n ...state,\n lastAvailableDay: action.data.lastAvailableDay,\n slots: { ...state.slots, ...action.data.slots }\n };\n for (let date = action.start; date !== action.end; ) {\n next.slots[date] = next.slots[date] || [];\n const nextDate = stringToDate(date);\n nextDate.setDate(nextDate.getDate() + 1);\n date = dateToString(nextDate);\n }\n return next;\n }\n case \"LOADING_SLOTS\": {\n const next: State = {\n ...state,\n slots: { ...state.slots }\n };\n for (let date = action.start; date !== action.end; ) {\n next.slots[date] = null;\n const nextDate = stringToDate(date);\n nextDate.setDate(nextDate.getDate() + 1);\n date = dateToString(nextDate);\n }\n return next;\n }\n case \"SELECTED_DATE_POSITION\":\n return { ...state, selectedDatePosition: action.position };\n case \"SELECT_SLOT\":\n return { ...state, selectedSlot: action.slot };\n case \"START_CONFIRMATION\":\n return { ...state, confirmAPIPromise: action.promise };\n case \"BLOCK_SLOT\":\n return { ...state, blockTrackingId: action.data };\n case \"DOUBLE_BOOKING\": {\n return {\n ...state,\n doubleBooking: {\n message: action.message,\n buttonText: action.buttonText\n },\n selectedSlot: null,\n confirmAPIPromise: null\n };\n }\n case \"BACK_DOUBLE_BOOKING\": {\n return {\n ...state,\n doubleBooking: null,\n confirmAPIPromise: null,\n selectedSlot: null,\n slots: {}\n };\n }\n case \"FIND_NEXT_AVAILABLE_DAY\":\n return { ...state, findNextAvailableDay: action.value };\n case \"SET_FIRST_DATE\":\n const position = (state.selectedDatePosition + action.position) % 3;\n const date = stringToDate(action.value);\n date.setDate(date.getDate() - position);\n return {\n ...state,\n firstDate: dateToString(date),\n selectedDatePosition: position as any\n };\n case \"SET_SMS\":\n return { ...state, smsChecked: action.value };\n default:\n throw new Error();\n }\n}\n\nfunction TimeZone(props: { timezoneId: string }) {\n const actions = useContext(SocketServiceContext);\n const appContext = useContext(AppContext);\n const timezone = useMemo(\n () => TimezoneService.getTimezoneStringByTimezoneId(props.timezoneId),\n [props.timezoneId]\n );\n const [modal, openModal] = useState(false);\n useEffect(() => {\n if (!appContext.open) {\n openModal(false);\n }\n }, [appContext]);\n const closePopup = useCallback(\n (timezoneId: string) => {\n if (timezoneId != null) {\n actions.updateTimezone(timezoneId);\n }\n openModal(false);\n },\n [actions]\n );\n /** remove this when time_zone_id issue is resolved */\n if (isNaN(parseInt(props.timezoneId))) {\n actions.updateTimezone(DEFAULT_TIMEZONE_ID);\n return null;\n }\n return (\n
    \n {modal && (\n \n )}\n

    openModal(true)}>{timezone}

    \n
    {timezone}
    \n
    \n );\n}\n\nfunction DelayedLoader() {\n const [text, setText] = useState(\"\");\n useEffect(() => {\n const timeout = setTimeout(() => {\n setText(\"Still retrieving... this may take a few more seconds\");\n }, 5000);\n return () => clearTimeout(timeout);\n }, []);\n return ;\n}\n\nfunction BackArrow(props: { disabled: boolean; onClick?: () => void }) {\n const isDisabled = props.disabled;\n return (\n \n \n \n \n \n );\n}\n\nfunction NextArrow(props: { disabled: boolean; onClick?: () => void }) {\n const disabled = props.disabled;\n return (\n \n \n \n \n \n );\n}\n\ninterface SlotDateProps {\n dates: string[];\n position: number;\n selected: number;\n disabled: boolean;\n onClick: (position: number) => void;\n}\n\nfunction SlotDate(props: SlotDateProps) {\n const disabled = props.disabled;\n const date = stringToDate(props.dates[props.position]);\n return (\n
  • \n {SHORT_DAY_NAMES[date.getDay()]}\n props.onClick(props.position)}\n >\n {date.getDate()}\n \n
  • \n );\n}\n\nfunction Slots(props: {\n items: Slot[];\n onSelect: (item: Slot) => void;\n dispatch: Dispatch;\n viewNextAvailableDay: boolean;\n}) {\n const [index, setIndex] = useState(0);\n const [pageSize, setPageSize] = useState(\n window.outerWidth <= 650 ? 4 : 6\n );\n useEffect(() => {\n const listener = () => {\n setPageSize(window.outerWidth <= 650 ? 4 : 6);\n };\n window.addEventListener(\"resize\", listener);\n return () => {\n window.removeEventListener(\"resize\", listener);\n };\n }, []);\n const items = props.items;\n const disableNext = index + pageSize >= items.length;\n const disablePrev = index - pageSize < 0;\n return (\n <>\n
    \n {items.length === 0 ? (\n \n
    No times available on this day
    \n

    \n {!props.viewNextAvailableDay && (\n \n props.dispatch({\n type: \"FIND_NEXT_AVAILABLE_DAY\",\n value: true\n })\n }\n >\n View next available day\n \n )}\n

    \n
    \n ) : (\n
      \n {items.slice(index, index + pageSize).map((item, index) => (\n props.onSelect(item)}\n key={index}\n >\n {item.timeStr}\n \n ))}\n
    \n )}\n \n
    \n setIndex(index - pageSize)}\n >\n Earlier times\n \n setIndex(index + pageSize)}\n >\n Later times\n \n
    \n \n );\n}\n\ninterface CalenderContentProps {\n slots: {\n [date: string]: undefined | null | Slot[];\n };\n firstDate: string;\n timeZoneId: string;\n selectedDatePosition: SelectedDatePosition;\n fetchSlots: (date: string) => void;\n dispatch: Dispatch;\n lastAvailableDay: null | Date;\n findNextAvailableDay: boolean;\n block: (slot: Slot) => void;\n}\n\nfunction areSlotsAvailable(slots: null | undefined | Slot[]): boolean {\n if (slots === null || slots === undefined) return true;\n return slots.length !== 0;\n}\n\nfunction CalenderContent({\n dispatch,\n slots,\n lastAvailableDay,\n findNextAvailableDay,\n firstDate,\n timeZoneId,\n fetchSlots,\n selectedDatePosition,\n block\n}: CalenderContentProps) {\n const displayedDates = useMemo(() => {\n const displayedDates: string[] = [firstDate, nextDay(firstDate)];\n displayedDates[2] = nextDay(displayedDates[1]);\n return displayedDates;\n }, [firstDate]);\n const selectedDate = displayedDates[selectedDatePosition];\n const date = stringToDate(selectedDate);\n const selectedDaySlots = slots[selectedDate];\n const selectSlot = (slot: Slot) => {\n block(slot);\n dispatch({ type: \"SELECT_SLOT\", slot });\n };\n const nextDatesVisibility =\n lastAvailableDay &&\n lastAvailableDay.getTime() >\n stringToDate(displayedDates[displayedDates.length - 1]).getTime();\n const changeSelectedDatePosition = (position: SelectedDatePosition) =>\n dispatch({ type: \"SELECTED_DATE_POSITION\", position });\n let prevDates: undefined | { (): void } = undefined;\n let nextDates: undefined | { (): void } = undefined;\n if (stringToDate(firstDate).getTime() > Date.now()) {\n prevDates = () => dispatch({ type: \"CHANGE_FIRST_DATE\", changeInDays: -3 });\n }\n if (nextDatesVisibility) {\n nextDates = () => dispatch({ type: \"CHANGE_FIRST_DATE\", changeInDays: 3 });\n }\n const emptyDate = displayedDates.find(date => !slots[date]);\n const fetchDate =\n emptyDate && slots[emptyDate] === undefined ? emptyDate : null;\n if (selectedDaySlots && findNextAvailableDay) {\n dispatch({ type: \"FIND_NEXT_AVAILABLE_DAY\", value: false });\n }\n let lastDateForSlot = 0;\n for (let i = displayedDates.length - 1; i >= 0; i--) {\n if (areSlotsAvailable(slots[displayedDates[i]])) {\n lastDateForSlot = i;\n break;\n }\n }\n useEffect(() => {\n if (fetchDate) {\n fetchSlots(fetchDate);\n }\n }, [fetchDate, fetchSlots]);\n useEffect(() => {\n if (!findNextAvailableDay) return;\n let date = selectedDate;\n let position = 0;\n while (true) {\n const slotOnDate = slots[date];\n if (slotOnDate === undefined) {\n return dispatch({ type: \"SET_FIRST_DATE\", value: date, position });\n } else if (slotOnDate === null) {\n return;\n } else if (slotOnDate.length === 0) {\n date = nextDay(date);\n } else {\n return dispatch({ type: \"SET_FIRST_DATE\", value: date, position });\n }\n position++;\n }\n }, [dispatch, findNextAvailableDay, selectedDate, slots]);\n return (\n
    \n \n
    \n {!!emptyDate && }\n {!emptyDate && selectedDaySlots && (\n <>\n

    \n {MONTH_NAMES[date.getMonth()]} {date.getFullYear()}\n

    \n
    \n \n
      \n \n \n \n
    \n \n
    \n = lastDateForSlot\n }\n />\n \n )}\n
    \n
    \n );\n}\n\ninterface ConfirmSlotContentProps {\n slot: Slot;\n back: () => void;\n confirming: boolean;\n timezoneId: string;\n interaction: ScheduleInteraction;\n confirm: (slot: Slot) => void;\n isChecked: boolean;\n smsConsent: () => void;\n blockTrackingId: any;\n}\n\nfunction ConfirmSlotContent(props: ConfirmSlotContentProps) {\n const { slot, timezoneId } = props;\n const timezone = TimezoneService.getTimezoneStringByTimezoneId(timezoneId);\n const dateObjSummary = slot.dateObjSummary.split(\",\");\n const time = dateObjSummary.pop();\n const date = dateObjSummary.join(\",\");\n const { colour: color } = useContext(AppContext).settings;\n const confirmationFullText = props.interaction.schedule_confirmation_title;\n let confirmationText = props.interaction.schedule_confirmation_title;\n const smsNotificationToggle = props.interaction.schedule_sms_notification;\n let smsOptInText = props.interaction.schedule_sms_opt_in_text;\n const confirmationTextLength = (confirmationText || \"\").toString().length;\n const smsOptInTextLength = (smsOptInText || \"\").toString().length;\n const blockTrackingId = props.blockTrackingId;\n const selectTimeSlotView = (\n = 32 ? \"multi-line-title\" : \"\"\n }`}\n >\n
    \n
    \n
    \n {confirmationText}\n \n
    \n

    {date}

    \n

    {time}

    \n \n {timezone}\n {/*
    {timezone}
    */}\n
    \n {smsNotificationToggle ? (\n
    \n \n
    \n ) : (\n ``\n )}\n \n ) : (\n props.interaction.schedule_confirmation_button\n )\n }\n isDisabled={props.confirming}\n classNames={`confirm-meeting-button ${\n props.confirming ? \"loading-button\" : \"\"\n }`}\n clickHandler={() => props.confirm(props.slot)}\n />\n
    \n \n \n );\n\n if (confirmationTextLength > 70 || smsOptInTextLength > 56) {\n confirmationText = (confirmationText || \"\").slice(0, 70);\n smsOptInText = (smsOptInText || \"\").slice(0, 56);\n }\n return (\n
    \n
    \n \n \n \n \n Back\n \n
    \n
    \n {!blockTrackingId ? : selectTimeSlotView}\n
    \n );\n}\n\nfunction ConfirmationContent(props: { confirmEventData: ConfirmEventData }) {\n const {\n email,\n timeZoneId,\n dateObjSummary,\n isCalendarEventCreated\n } = props.confirmEventData;\n const timezone = TimezoneService.getTimezoneStringByTimezoneId(timeZoneId);\n const dateObjSummarySplit = dateObjSummary.split(\",\");\n const time = dateObjSummarySplit.pop();\n const date = dateObjSummarySplit.join(\",\");\n const fullMonth =\n MONTH_NAMES[SHORT_MONTH_NAMES.indexOf(dateObjSummary.substring(5, 8))];\n const dayOfMonth = parseInt(dateObjSummary.substring(9, 11));\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    {fullMonth}

    \n

    {dayOfMonth}

    \n \n
    \n
    \n
    Your meeting is confirmed!
    \n

    {date}

    \n

    {time}

    \n
    \n {timezone}\n
    {timezone}
    \n
    \n
    \n {isCalendarEventCreated\n ? \"An event has been added to your calendar\"\n : \"An email has been sent to\"}\n {\":\"}\n
    \n {email}\n
    {email}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorWhileFetchingContent() {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    No times are currently available
    \n

    We will contact you to arrange a time to meet.

    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ConversationEndedContent() {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    Due to inactivity, this conversation has ended
    \n

    \n Please refresh the page to renew the chat and schedule your\n meeting.\n

    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorWhileConfirmingContent({ message }: { message?: string }) {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    {message}
    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorDoubleBookingContent(props: {\n message: string;\n dispatch: Dispatch;\n buttonText?: string;\n}) {\n return (\n
    \n
    \n props.dispatch({ type: \"BACK_DOUBLE_BOOKING\" })}\n >\n \n \n \n Back\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    {props.message}
    \n \n props.dispatch({ type: \"BACK_DOUBLE_BOOKING\" })\n }\n classNames=\"confirm-meeting-button select-new-time\"\n />\n
    \n
    \n
    \n
    \n );\n}\n\nfunction ScheduleAction({ interaction, last }: Props) {\n const appContext = useContext(AppContext);\n const actions = useContext(SocketServiceContext);\n const [state, dispatch] = useReducer(reducer, {\n slots: {},\n lastAvailableDay: null,\n firstDate: dateToString(new Date()),\n selectedDatePosition: 0,\n selectedSlot: null,\n confirmAPIPromise: null,\n blockTrackingId: null,\n doubleBooking: null,\n smsChecked: false,\n findNextAvailableDay: true\n });\n const refs = useRef<{\n initial_load: boolean;\n time_zone_id: string;\n calendarVisible: boolean;\n }>({\n initial_load: true,\n time_zone_id: interaction.time_zone_id,\n calendarVisible: false\n });\n refs.current.time_zone_id = interaction.time_zone_id;\n const confirm = (slot: Slot) =>\n dispatch({\n type: \"START_CONFIRMATION\",\n promise: confirmSlot({\n trackingid: state.blockTrackingId,\n duration: slot.duration,\n startTime: slot.startTime,\n websiteId: appContext.settings.id,\n dateObjSummary: slot.dateObjSummary,\n timeZoneId: interaction.time_zone_id,\n timeZoneString: TimezoneService.getTimezoneStringByTimezoneId(\n interaction.time_zone_id\n ),\n resourcesLinkId: slot.resourceLinkId,\n enableSmsNotification: state.smsChecked,\n interactionId: interaction.external_id,\n contactInfo: interaction.contact_info\n })\n });\n\n const block = (slot: Slot) => {\n blockSlot({\n duration: slot.duration,\n meetingLowerBoundary: slot.startTime,\n meetingUpperBoundary: slot.startTime + slot.duration,\n dateObjSummary: slot.dateObjSummary,\n resourcesLinkId: slot.resourceLinkId,\n interactionId: interaction.external_id,\n contactInfo: interaction.contact_info\n })\n .then(data => {\n if (\"schedule_status\" in data) {\n if (data.schedule_status === \"error_double_booking\") {\n dispatch({\n type: \"DOUBLE_BOOKING\",\n message: data.schedule_fallback_message,\n buttonText: data.schedule_timeslot_fallback_button_text\n });\n } else if (data.schedule_status === \"error_while_blocking_time\") {\n actions.scheduleResponse(data);\n }\n } else if (!(\"schedule_status\" in data)) {\n dispatch({\n type: \"BLOCK_SLOT\",\n data: data.panelTrackingId\n });\n }\n })\n .catch(() => {\n actions.scheduleResponse({\n schedule_status: \"error_while_blocking_time\",\n schedule_fallback_message: \"Something went wrong\"\n });\n });\n };\n\n const fetch = useCallback(\n (date: string) => {\n const start = stringToDate(date);\n start.setDate(start.getDate() - 1);\n const end = new Date(start.getTime());\n end.setDate(end.getDate() + 7);\n dispatch({\n type: \"LOADING_SLOTS\",\n start: date,\n end: dateToString(end)\n });\n fetchSlots({\n websiteId: appContext.settings.id,\n timeZoneId: interaction.time_zone_id,\n interactionId: interaction.external_id,\n startDate: start.getTime(),\n endDate: end.getTime(),\n initial_load: refs.current.initial_load\n })\n .then(data => {\n if (\"schedule_status\" in data) {\n if (\n refs.current.calendarVisible &&\n interaction.time_zone_id === refs.current.time_zone_id\n ) {\n actions.scheduleResponse(data);\n }\n } else {\n dispatch({\n type: \"SLOTS\",\n data,\n start: dateToString(start),\n end: dateToString(end)\n });\n }\n })\n .catch(() => {\n actions.scheduleResponse({\n schedule_status: \"error_while_fetching_slots\",\n schedule_fallback_message: \"Something went wrong\"\n });\n });\n refs.current.initial_load = false;\n },\n [\n actions,\n appContext.settings.id,\n interaction.external_id,\n interaction.time_zone_id\n ]\n );\n useEffect(() => dispatch({ type: \"RESET_SLOTS\" }), [\n interaction.time_zone_id\n ]);\n useEffect(() => {\n if (state.confirmAPIPromise == null) return;\n let cancelled = false;\n state.confirmAPIPromise\n .then(data => {\n if (cancelled) return;\n if (\n \"schedule_status\" in data &&\n data.schedule_status === \"error_double_booking\"\n ) {\n dispatch({\n type: \"DOUBLE_BOOKING\",\n message: data.schedule_fallback_message,\n buttonText: data.schedule_timeslot_fallback_button_text\n });\n } else {\n actions.scheduleResponse(data);\n }\n })\n .catch(() => {\n if (cancelled) return;\n actions.scheduleResponse({\n schedule_status: \"error_while_confirming\",\n schedule_fallback_message: \"Something went wrong\"\n });\n });\n return () => {\n cancelled = true;\n };\n }, [actions, state.confirmAPIPromise]);\n let shouldRenderheading: boolean = true;\n let content: React.ReactNode = null;\n if (interaction.schedule_status === \"error_while_fetching_slots\") {\n content = ;\n } else if (\n interaction.schedule_status === \"error_while_confirming\" ||\n interaction.schedule_status === \"error_while_blocking_time\"\n ) {\n content = (\n \n );\n } else if (interaction.schedule_confirm_data) {\n shouldRenderheading = false;\n content = (\n \n );\n } else if (appContext.state !== ConversationState.Active) {\n content = ;\n } else if (state.doubleBooking) {\n content = (\n \n );\n } else if (state.selectedSlot) {\n content = (\n {\n dispatch({ type: \"SELECT_SLOT\", slot: null });\n dispatch({\n type: \"BLOCK_SLOT\",\n data: \"\"\n });\n }}\n smsConsent={() => {\n state.smsChecked\n ? dispatch({ type: \"SET_SMS\", value: false })\n : dispatch({ type: \"SET_SMS\", value: true });\n }}\n isChecked={state.smsChecked}\n blockTrackingId={state.blockTrackingId}\n />\n );\n } else if (last) {\n refs.current.calendarVisible = true;\n content = (\n \n );\n }\n return (\n
    \n
    \n {shouldRenderheading && (\n

    \n \n {interaction.interaction_text}\n \n \n | {interaction.schedule_action_event_type_meeting_length} minutes\n \n

    \n )}\n {content}\n
    \n
    \n );\n}\n\nexport default React.memo(ScheduleAction);\n","import React, { useContext, useEffect } from \"react\";\nimport { LIVE_CHAT_CHANNEL } from \"src/constants\";\nimport {\n AppContext,\n SocketServiceContext,\n ConversationContext\n} from \"src/AppContext\";\n\nimport { HandOff, Message } from \"src/interaction.interface\";\n// Enable this for development only\n// import { IConversation, OhLiveChat } from \"src/live-chat-util\";\nimport { IConversation, OhLiveChat, IMessage } from \"@oncehub/live-chat-util\";\n\nlet liveChatObj: OhLiveChat;\n\ninterface ILiveChatActionProps {\n last: boolean;\n interaction: HandOff;\n}\nconst conversationAccepted = false;\n\nfunction LiveChatActionComponent({ interaction, last }: ILiveChatActionProps) {\n const appContext = useContext(AppContext);\n const socket = useContext(SocketServiceContext);\n let liveChatUsers = appContext.liveChatUsers || {};\n const { messages } = useContext(ConversationContext);\n\n const initLiveChat = async () => {\n let accountId = appContext.accountId;\n let conversationId = appContext.conversationId;\n liveChatObj = new OhLiveChat({\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY || \"\",\n authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN || \"\",\n databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL || \"\",\n projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID || \"\",\n storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET || \"\",\n messagingSenderId:\n process.env.REACT_APP_FIREBASE_MESSAGEING_SENDER_ID || \"\",\n appId: process.env.REACT_APP_FIREBASE_APP_ID || \"\"\n });\n\n const liveChatConversation = (await liveChatObj.getConversationDetail(\n accountId,\n conversationId\n )) as IConversation;\n\n if (!liveChatConversation) {\n const conversation: IConversation = {\n id: conversationId,\n contactId: interaction.contact.id,\n timeout: interaction.timeout_period,\n status: \"initiated\",\n acceptedBy: \"\",\n lastMessage: {\n type: \"text_message\",\n text: messages.length\n ? messages[messages.length - 1].data[\"interaction_text\"]\n : \"\",\n userType: \"Visitor\",\n contactId: \"CTC-1234\"\n }\n };\n liveChatObj.createConversation(accountId, conversation);\n const timeoutInterval = setInterval(() => {\n if (!conversationAccepted) {\n socket.liveChatTimeout();\n }\n clearInterval(timeoutInterval);\n }, interaction.timeout_period * 1000);\n liveChatObj.createContact(accountId, interaction.contact);\n sendMessageHistory();\n }\n liveChatObj.notifyLiveChatRequest(accountId, conversationId);\n if (liveChatConversation) {\n setLiveChatHistory(accountId, conversationId);\n if (!liveChatConversation.acceptedBy) {\n const timeoutInterval = setInterval(() => {\n if (!conversationAccepted) {\n socket.liveChatTimeout();\n }\n clearInterval(timeoutInterval);\n }, new Date(liveChatConversation.creationTime || \"\").getTime() + interaction.timeout_period * 1000 - new Date().getTime());\n }\n }\n\n liveChatObj.subscribeMessages(\n accountId,\n conversationId,\n liveChatResponseForWidget\n );\n return liveChatObj;\n };\n\n async function setLiveChatHistory(accountId, conversationId) {\n const messageHistory: Message[] = [];\n const allLiveChatMessages = (await liveChatObj.getAllMessages(\n accountId,\n conversationId\n )) as any;\n const keys = Object.keys(allLiveChatMessages);\n for (let i = 0; i < keys.length; i++) {\n const message = allLiveChatMessages[keys[i]];\n if (message.userType === \"Admin\") {\n if (liveChatUsers[message.userId]) {\n message.user = liveChatUsers[message.userId];\n } else {\n const userDetail = await liveChatObj.getUserDetail(\n appContext.accountId,\n message.userId\n );\n liveChatUsers[message.userId] = userDetail;\n message.user = userDetail || {};\n }\n messageHistory.push({\n sent_by: \"bot\",\n user_name: \"Admin\",\n id: randomId(),\n is_read: true,\n data: {\n interaction_text: message.text,\n interaction_type: \"question\",\n question_type: \"text\",\n user: message.user,\n external_id: \"\",\n contact_field_id: \"\"\n },\n interaction_time: new Date().toISOString()\n });\n } else if (message.userType === \"Visitor\") {\n messageHistory.push({\n sent_by: \"contact\",\n user_name: \"Visitor\",\n id: randomId(),\n is_read: true,\n data: {\n text: message.text\n },\n interaction_time: new Date().toISOString()\n });\n }\n }\n socket.liveChatHistory(\n messageHistory,\n liveChatUsers,\n messageHistory.length ? LIVE_CHAT_CHANNEL : \"\"\n );\n }\n\n function randomId(): string {\n return (\n ((Math.random() * 1073741824) >>> 0).toString(36) +\n ((Math.random() * 1073741824) >>> 0).toString(36)\n );\n }\n\n const sendMessageHistory = () => {\n let accountId = appContext.accountId;\n let conversationId = appContext.conversationId;\n // save previous message before Live Chat\n let oldMessageArray = [] as any;\n let messageObject: IMessage;\n messages.forEach((message: any) => {\n let sentByMessage: any =\n message.sent_by === \"contact\" ? \"Bot_Visitor\" : \"Bot_Agent\";\n if (\n message.data.image_url &&\n message.data.message_type === \"image_message\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n image_url: message.data.image_url,\n creationTime: message.interaction_time\n };\n oldMessageArray.push(messageObject);\n } else if (\n message.data.image_url &&\n message.data.message_type === \"url\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n url: message.data.url,\n image_url: message.data.image_url,\n title: message.data.title,\n creationTime: message.interaction_time\n };\n oldMessageArray.push(messageObject);\n } else if (\n message.data.document_url &&\n message.data.message_type === \"document_message\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n document_url: message.data.document_url,\n title: message.data.title,\n creationTime: message.interaction_time\n };\n oldMessageArray.push(messageObject);\n } else if (\n message.data.video_mp4 &&\n message.data.message_type === \"video_message\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n video_mp4: message.data.video_mp4,\n video_ogv: message.data.video_ogv,\n creationTime: message.interaction_time\n };\n oldMessageArray.push(messageObject);\n } else if (message.data.action_type === \"schedule\") {\n messageObject = {\n type: message.data.action_type,\n userType: sentByMessage,\n contactId: \"test\",\n contact_info: message.data.contact_info,\n interaction_text: message.data.interaction_text,\n time_zone_id: message.data.time_zone_id,\n schedule_fallback_message: message.data.schedule_fallback_message,\n schedule_action_event_type_meeting_length:\n message.data.schedule_action_event_type_meeting_length,\n schedule_status: message.data.schedule_status,\n schedule_confirmation_title: message.data.schedule_confirmation_title,\n schedule_confirmation_button:\n message.data.schedule_confirmation_button,\n schedule_sms_notification: message.data.schedule_sms_notification,\n schedule_sms_opt_in_text: message.data.schedule_sms_opt_in_text,\n creationTime: message.interaction_time\n };\n if (message.data.schedule_confirm_data) {\n messageObject.schedule_confirm_data =\n message.data.schedule_confirm_data;\n }\n oldMessageArray.push(messageObject);\n } else {\n messageObject = {\n type: \"text_message\",\n userType: sentByMessage,\n contactId: \"test\",\n text: message.data.interaction_text\n ? message.data.interaction_text\n : message.data.text,\n creationTime: message.interaction_time\n };\n oldMessageArray.push(messageObject);\n }\n });\n liveChatObj.sendMessageHistory(accountId, conversationId, oldMessageArray);\n };\n\n const liveChatResponseForWidget = async message => {\n if (message.userType === \"Admin\") {\n // Fetch user's information\n if (liveChatUsers[message.userId]) {\n message.user = liveChatUsers[message.userId];\n } else {\n const userDetail = await liveChatObj.getUserDetail(\n appContext.accountId,\n message.userId\n );\n liveChatUsers[message.userId] = userDetail;\n message.user = userDetail || {};\n }\n socket.liveChatResponse(\n { content: message.text },\n message,\n liveChatUsers\n );\n } else {\n socket.liveChatAnswer(\n { content: message.text },\n LIVE_CHAT_CHANNEL,\n appContext.liveChatUsers\n );\n }\n };\n\n useEffect(() => {\n if (!last) return; // If live interaction is the last message in conversation\n async function setLiveChatObj() {\n if (!process.env.REACT_APP_FIREBASE_DATABASE_URL) {\n console.log(\n \"Firebase credentials are not set. Not initiating live chat!!\"\n );\n return;\n }\n\n const liveChatObj = await initLiveChat();\n socket.initLiveChat(liveChatObj);\n }\n setLiveChatObj();\n }, [socket]);\n\n return (\n 7\n ? \"live-chat-action chat-message chat-message-align-left bg-primary text-primary border-primary\"\n : \"live-chat-action chat-message bg-primary text-primary border-primary\"\n }\n >\n {interaction.interaction_text}\n \n );\n}\n\nexport default React.memo(LiveChatActionComponent);\n","import * as React from \"react\";\n\ninterface IRequireConsentProps {\n bodyText: string;\n title: string;\n link: string;\n linkText: string;\n id: string;\n}\n\nexport class RequireConsent extends React.PureComponent<\n IRequireConsentProps,\n any\n> {\n consentRef: React.RefObject = React.createRef();\n\n render() {\n return (\n \n \n {this.props.title}\n \n {this.props.bodyText}\n \n {this.props.link && this.props.linkText && (\n \n {this.props.linkText}\n \n )}\n \n \n );\n }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\nimport \"./require-consent.scss\";\n\ninterface IConsentButtonsProps {\n onMessageSent: (message: string) => void;\n noText: string;\n yesText: string;\n}\n\ninterface IConsentButtonsState {\n consented: boolean;\n}\n\nexport class ConsentButtons extends React.Component<\n IConsentButtonsProps,\n IConsentButtonsState\n> {\n readonly state: IConsentButtonsState = {\n consented: false\n };\n\n componentDidMount() {\n const requireConsent = document.querySelector(\".require-consent\");\n if (requireConsent) {\n const messageContainer = requireConsent.closest(\".message-container\");\n if (messageContainer) {\n messageContainer.scrollIntoView();\n }\n }\n }\n onConsentClick = (consentText: string) => {\n this.props.onMessageSent(consentText);\n this.setState({\n consented: true\n });\n };\n render() {\n return (\n !this.state.consented && (\n \n \n {this.props.yesText}\n \n \n {this.props.noText}\n \n \n )\n );\n }\n}\n","import React, { useState, useContext } from \"react\";\nimport { TimezonePopup } from \"src/widget-container/common-components/timezone-popup/timezone-popup\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\nimport { SocketServiceContext, AppContext } from \"src/AppContext\";\nimport { ConversationState } from \"src/constants\";\n\nimport \"./timezone-question.scss\";\n\nexport interface ITimezoneQuestionProps {\n text: string;\n buttonText: string;\n disabled: boolean;\n}\n\nfunction TimeZoneQuestion(props: ITimezoneQuestionProps) {\n const actions = useContext(SocketServiceContext);\n const disabled =\n useContext(AppContext).state !== ConversationState.Active || props.disabled;\n const [modal, showModal] = useState(false);\n const onClosePopup = (timezoneId?: string, timezoneName?: string) => {\n showModal(false);\n if (!timezoneId || !timezoneName) return;\n actions.updateTimezone(timezoneId);\n actions.answer({\n content: timezoneName,\n time_zone_id: timezoneId\n });\n };\n return (\n \n

    {props.text}

    \n showModal(true)}\n >\n {props.buttonText}\n \n {!disabled && modal && (\n \n )}\n
    \n );\n}\n\nexport default React.memo(TimeZoneQuestion);\n","export class Timeago {\n static get = (input: number, allowFuture: boolean = false): string => {\n const substitute = (stringOrFunction: any, num: number, strings: any) => {\n const str = Timeago.isFunction(stringOrFunction)\n ? stringOrFunction(num, dateDifference)\n : stringOrFunction;\n const value = (strings.numbers && strings.numbers[num]) || num;\n return str.replace(/%d/i, value);\n };\n const nowTime = new Date().getTime();\n const date = new Date(input).getTime();\n // refreshMillis= 6e4, //A minute\n\n const timestrings = {\n day: \"a day\",\n days: \"%d days\",\n hour: \"an hour\",\n hours: \"%d hours\",\n minute: \"a minute\",\n minutes: \"%d minutes\",\n month: \"a month\",\n months: \"%d months\",\n prefixAgo: null,\n prefixFromNow: null,\n seconds: \"just now\",\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n wordSeparator: undefined,\n year: \"a year\",\n years: \"%d years\"\n };\n const dateDifference = nowTime - date;\n let words;\n const seconds = Math.abs(dateDifference) / 1000;\n const minutes = seconds / 60;\n const hours = minutes / 60;\n const days = hours / 24;\n const years = days / 365;\n const separator =\n timestrings.wordSeparator === undefined ? \" \" : timestrings.wordSeparator;\n\n // var timestrings = this.settings.timestrings;\n let prefix = timestrings.prefixAgo;\n let suffix = timestrings.suffixAgo;\n\n if (allowFuture) {\n if (dateDifference < 0) {\n prefix = timestrings.prefixFromNow;\n suffix = timestrings.suffixFromNow;\n }\n }\n\n words =\n (seconds < 45 &&\n substitute(timestrings.seconds, Math.round(seconds), timestrings)) ||\n (seconds < 90 && substitute(timestrings.minute, 1, timestrings)) ||\n (minutes < 45 &&\n substitute(timestrings.minutes, Math.round(minutes), timestrings)) ||\n (minutes < 90 && substitute(timestrings.hour, 1, timestrings)) ||\n (hours < 24 &&\n substitute(timestrings.hours, Math.round(hours), timestrings)) ||\n (hours < 42 && substitute(timestrings.day, 1, timestrings)) ||\n (days < 30 &&\n substitute(timestrings.days, Math.round(days), timestrings)) ||\n (days < 45 && substitute(timestrings.month, 1, timestrings)) ||\n (days < 365 &&\n substitute(timestrings.months, Math.round(days / 30), timestrings)) ||\n (years < 1.5 && substitute(timestrings.year, 1, timestrings)) ||\n substitute(timestrings.years, Math.round(years), timestrings);\n\n return words === \"just now\"\n ? [prefix, words].join(separator)\n : [prefix, words, suffix].join(separator);\n // conditional based on optional argument\n // if (somethingElse) {\n // out = out.toUpperCase();\n // }\n // return out;\n };\n\n static isFunction = (functionToCheck: any) => {\n return (\n functionToCheck &&\n {}.toString.call(functionToCheck) === \"[object Function]\"\n );\n };\n}\n","import React, { useContext } from \"react\";\nimport { Timeago } from \"src/utils/timeago\";\nimport {\n AppContext,\n ConversationContext,\n SocketServiceContext\n} from \"src/AppContext\";\nimport { ConversationState } from \"../../../../constants\";\n\ninterface IChatTimestampProps {\n sentBy: \"bot\" | \"contact\";\n time: number;\n is_read: boolean;\n}\n\nfunction ChatTimestamp(props: IChatTimestampProps) {\n const botName = useContext(AppContext).settings.botName;\n return (\n

    \n {props.sentBy === \"bot\" && (\n <>\n {botName}, {Timeago.get(props.time)}\n \n )}\n {props.sentBy === \"contact\" && (\n \n )}\n

    \n );\n}\n\nfunction ContactTimestamp(props: { time: number; is_read: boolean }): any {\n const failed = useContext(ConversationContext).messageFailed;\n const conversationState = useContext(AppContext).state;\n const actions = useContext(SocketServiceContext);\n if (props.is_read) {\n return \"Delivered\" + Timeago.get(props.time);\n } else if (failed) {\n if (conversationState === ConversationState.Finished) {\n return (\n <>\n \n Sending failed\n \n \n );\n } else {\n return (\n <>\n \n Sending failed…\n {\" \"}\n \n Click to retry\n \n \n );\n }\n } else {\n return \"Sending...\";\n }\n}\n\nexport default React.memo(ChatTimestamp);\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\n\nimport \"../require-consent/require-consent.scss\";\n\ninterface IViewAgainButtonProps {\n onMessageSent: (message: string) => void;\n viewAgainText: string;\n}\n\ninterface IViewAgainButtonState {\n viewed: boolean;\n}\n\nexport class ViewAgainButton extends React.Component<\n IViewAgainButtonProps,\n IViewAgainButtonState\n> {\n readonly state: IViewAgainButtonState = {\n viewed: false\n };\n\n componentDidMount() {\n const requireConsent = document.querySelector(\".require-consent\");\n if (requireConsent) {\n const messageContainer = requireConsent.closest(\".message-container\");\n if (messageContainer) {\n messageContainer.scrollIntoView();\n }\n }\n }\n onConsentClick = (consentText: string) => {\n this.props.onMessageSent(consentText);\n this.setState({\n viewed: true\n });\n };\n render() {\n return (\n !this.state.viewed && (\n \n \n {this.props.viewAgainText}\n \n \n )\n );\n }\n}\n","import * as React from \"react\";\n\ninterface IDenyConsentProps {\n bodyText: string;\n id: string;\n}\n\nexport class DenyConsent extends React.PureComponent {\n consentRef: React.RefObject = React.createRef();\n\n render() {\n return (\n \n {this.props.bodyText}\n \n );\n }\n}\n","import React, { useState, useContext, useLayoutEffect, useEffect } from \"react\";\nimport { Message, Interaction, TextQuestion } from \"src/interaction.interface\";\nimport { AppContext } from \"src/AppContext\";\nimport { Actions, Answer } from \"src/actions\";\n\nimport \"./widget-message.scss\";\nimport InteractionSingleSelect from \"./message-helpers/interaction-single-select/interaction-single-select\";\nimport InteractionMultiSelect from \"./message-helpers/interaction-multi-select/interaction-multi-select\";\nimport TextMessageComponent from \"./message-helpers/text-message/text-message\";\nimport { VideoMessage } from \"./message-helpers/video-message/video-message\";\nimport { ImageMessage } from \"./message-helpers/image-message/image-message\";\nimport { DocumentMessage } from \"./message-helpers/document-message/document-message\";\nimport { MessageUrl } from \"./message-helpers/url-message/url-message\";\nimport ScheduleAction from \"./action-interactions/schedule-action/schedule-action\";\nimport LiveChatAction from \"./action-interactions/live-chat-action/live-chat-action\";\nimport { RequireConsent } from \"./action-interactions/require-consent/require-consent\";\nimport { ConsentButtons } from \"./action-interactions/require-consent/consent-buttons\";\nimport TimezoneQuestion from \"./question-interactions/timezone-question/timezone-question\";\nimport ChatTimestamp from \"./chat-timestamp/chat-timestamp\";\nimport { ViewAgainButton } from \"./action-interactions/deny-consent/view-again-button\";\nimport { DenyConsent } from \"./action-interactions/deny-consent/deny-consent\";\nimport { ConversationState } from \"src/constants\";\n\ninterface Props {\n last: boolean;\n data: Message;\n botIcon: string;\n socket: Actions;\n showTimestamp: boolean;\n}\n\ninterface SelectProps {\n message: Message;\n sendAnswer: (answer: Answer) => void;\n setSticky: (sticky: boolean) => void;\n}\n\nfunction Select({ message, sendAnswer, setSticky }: SelectProps): any {\n const appContext = useContext(AppContext);\n const [resizeCount, setResizeCount] = useState(0);\n const open = appContext.open && appContext.state === ConversationState.Active;\n let hasContent = false;\n useEffect(() => {\n if (!open) return;\n const listener = () => setResizeCount(count => count + 1);\n window.addEventListener(\"resize\", listener);\n return () => window.removeEventListener(\"resize\", listener);\n }, [open]);\n useLayoutEffect(() => {\n if (!open || !hasContent) return;\n const container = document.getElementById(\"message-scroll-container\");\n const messageContainer = document.getElementById(message.id);\n if (container === null || messageContainer === null) return;\n setSticky(messageContainer.clientHeight / container.clientHeight < 0.6);\n }, [open, message.id, hasContent, setSticky, resizeCount]);\n useEffect(() => () => setSticky(false), [setSticky]);\n if (!open) return null;\n if (message.sent_by !== \"bot\") {\n return null;\n }\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"question\") return null;\n if (interaction.question_type === \"single_choice\") {\n hasContent = interaction.multi_choice_type === \"quick_replies\";\n return (\n hasContent && (\n \n sendAnswer({\n content: option.option_text,\n interaction_option_id: option.id\n })\n }\n />\n )\n );\n } else if (interaction.question_type === \"multi_choice\") {\n hasContent = interaction.multi_choice_type === \"quick_replies\";\n return (\n interaction.multi_choice_type === \"quick_replies\" && (\n \n sendAnswer({\n content: options.map(option => option.option_text).join(\", \"),\n multi_interaction_options_answer_ids: options.map(\n option => option.id\n )\n })\n }\n min={interaction.multi_choice_minimum}\n max={interaction.multi_choice_maximum}\n options={interaction.interaction_options}\n />\n )\n );\n } else {\n return null;\n }\n}\n\nfunction renderVideoMessage(id: string, video_mp4: string, video_ogg: string) {\n return (\n
    \n \n
    \n );\n}\n\nfunction renderImageMessage(id: string, src: string, title: null | string) {\n return ;\n}\n\nfunction renderDocumentMessage(id: string, url: string, title: null | string) {\n return ;\n}\n\nfunction renderUrlMessage(\n id: string,\n url: string,\n imageUrl: string | null,\n title: string\n) {\n return (\n \n );\n}\n\nfunction renderMessageBody(message: Message, last: boolean): JSX.Element {\n if (message.sent_by === \"contact\") {\n return (\n \n );\n }\n const interaction = message.data;\n if (\"text\" in interaction) {\n return (\n \n );\n }\n if (interaction.interaction_type === \"message\") {\n if (interaction.message_type === \"video_message\") {\n return renderVideoMessage(\n message.id,\n interaction.video_mp4,\n interaction.video_ogv\n );\n } else if (interaction.message_type === \"image_message\") {\n return renderImageMessage(\n message.id,\n interaction.image_url,\n interaction.title\n );\n } else if (interaction.message_type === \"document_message\") {\n return renderDocumentMessage(\n message.id,\n interaction.document_url,\n interaction.title\n );\n } else if (interaction.message_type === \"url\") {\n return renderUrlMessage(\n message.id,\n interaction.url,\n interaction.image_url,\n interaction.title\n );\n } else {\n return (\n \n );\n }\n } else if (interaction.interaction_type === \"question\") {\n if (interaction.question_type === \"time_zone\") {\n return (\n \n );\n } else {\n return (\n \n );\n }\n } else {\n if (interaction.action_type === \"schedule\") {\n return ;\n } else if (interaction.action_type === \"ask_consent\") {\n return (\n \n );\n } else if (interaction.action_type === \"deny_consent\") {\n return (\n \n );\n } else if (interaction.action_type === \"end_conversation\") {\n return (\n \n );\n } else if (interaction.action_type === \"hand_off\") {\n return ;\n } else {\n throw new Error(\"Unknown message\");\n }\n }\n}\n\nfunction MessageExtras({\n message,\n sendAnswer\n}: {\n message: Message;\n sendAnswer: (answer: Answer) => void;\n}) {\n if (message.sent_by === \"contact\") return null;\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"action\") return null;\n if (interaction.action_type === \"ask_consent\") {\n return (\n sendAnswer({ content })}\n yesText={interaction.accept_button_text}\n />\n );\n } else if (interaction.action_type === \"deny_consent\") {\n return (\n sendAnswer({ content })}\n />\n );\n } else {\n return null;\n }\n}\n\nfunction twoDigits(x: number): string {\n return x > 9 ? x.toString() : \"0\" + x.toString();\n}\n\nfunction messageTitle(message: Message): string | undefined {\n if (message.sent_by === \"bot\") {\n const interaction = message.data as Interaction;\n if (interaction.interaction_type === \"action\") {\n if (interaction.action_type === \"schedule\") return;\n }\n }\n const date = new Date(message.interaction_time);\n const startOfDay = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n const hours = date.getHours();\n const time = `${twoDigits(\n hours === 0 ? 12 : hours > 12 ? hours - 12 : hours\n )}:${twoDigits(date.getMinutes())} ${hours >= 12 ? \"PM\" : \"AM\"}`;\n if (date.getTime() < startOfDay.getTime()) {\n return date.toLocaleDateString() + \" \" + time;\n } else {\n return time;\n }\n}\n\nfunction endChatWithoutMessage(data): boolean {\n const interaction = data.data;\n if (interaction.action_type === \"end_conversation\") {\n const text = interaction.interaction_text;\n if (text === null || text === undefined || text === \"\") {\n return true;\n }\n }\n return false;\n}\n\nfunction getNameInitials(firstName: string, lastName: string) {\n let f = firstName ? firstName[0] : \"\";\n let l = lastName ? lastName[0] : \"\";\n return (f + l).toUpperCase();\n}\n\nfunction WidgetMessage({ data, last, botIcon, socket, showTimestamp }: Props) {\n const appContext = useContext(AppContext);\n const message = data.data as TextQuestion;\n const [sticky, setSticky] = useState(false);\n const select = last && (\n