{"version":3,"file":"BKLGroupComponent.BO3P_mLm.mjs","names":["useMemo","BooklaSDK","useState","uuid","error","useRef","FormView","_Fragment","DatePicker","ResourcePicker","TimePicker","CodeField","AcceptTerms","useState","adjustToSize","size","Minus","Plus","useState","GroupPicker"],"sources":["https:/framerusercontent.com/modules/aAISrJOcNslmECdBIuH6/AKTKkLf6BZ4QmHnPWkI2/BaseBooklaComponent.js","https:/framerusercontent.com/modules/GEgFac3mxoIEYB5jiwCg/7y8aLkbBbW14UogKsrnM/GroupPicker.js","https:/framerusercontent.com/modules/F4om8nkS6yTHnfHZh6RT/GuzofOuNc21wQgz3ZeJ4/BKLGroupComponent.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import DatePicker from\"https://framerusercontent.com/modules/ONd2gzYdinvDzO8zXcxq/HUpgD3MmPwqVqdWAMhIU/DatePicker.js\";import TimePicker from\"https://framerusercontent.com/modules/R1swBv2gZiy9nRMk3H4s/epMav99GGmGqXlPhmToZ/TimePicker.js\";import FormView,{customFormPropertyControls}from\"https://framerusercontent.com/modules/6HKiEuZG4q1lGPyooYq3/N967MtppcHrnoZWelKWP/FormView.js\";import ResourcePicker from\"https://framerusercontent.com/modules/KbLkPmFoswCXpce2Acyb/sbrQ8BQ5ktgGdAQNvik8/ResourcePicker.js\";import{useState,useEffect,useMemo,useRef}from\"react\";import{ControlType}from\"framer\";import{adjustToSize,getRouteId}from\"https://framerusercontent.com/modules/yMu9AtrvZjKjtSUz4NJg/xChxVXI0xYCscQVZjf7o/Utils.js\";import{headline2,spinnerStyle}from\"https://framerusercontent.com/modules/1Jy8oQunPSXjUAa9kZlG/GPOK7OB59hHCUkIPhV7u/Styles.js\";import AcceptTerms,{acceptTermsPropertyControls}from\"https://framerusercontent.com/modules/aOva5I3JJ3g24FlkcCDD/Q3etssMjmMohELUw00cL/AcceptTerms.js\";import CodeField,{CodeValidationState}from\"https://framerusercontent.com/modules/qYb8X84BeoOu1h0BvHkM/0BwZMhl4wckEu0lXQWEM/CodeField.js\";import{BooklaSDK}from\"https://esm.sh/@bookla-app/react-client-sdk@0.3.14\";import{v4 as uuid}from\"uuid\";// @ts-ignore\nimport{useRouter}from\"framer\";// Singleton instance of SDK\nlet sdkInstance=null;export const useBookla=(apiUrl,apiKey)=>{return useMemo(()=>{if(sdkInstance){sdkInstance=null;}// Create new instance with updated credentials\nsdkInstance=new BooklaSDK({apiUrl:apiUrl,apiKey:apiKey,debug:false,retry:{maxAttempts:3,delayMs:1e3,statusCodesToRetry:[408,429,500,502,503,504]}});return sdkInstance;},[apiUrl,apiKey])// Add dependencies to trigger reinitialization\n;};export var BaseComponentStep;(function(BaseComponentStep){BaseComponentStep[BaseComponentStep[\"Date\"]=0]=\"Date\";BaseComponentStep[BaseComponentStep[\"CustomForm\"]=1]=\"CustomForm\";BaseComponentStep[BaseComponentStep[\"TicketSelect\"]=2]=\"TicketSelect\";BaseComponentStep[BaseComponentStep[\"Guest\"]=3]=\"Guest\";BaseComponentStep[BaseComponentStep[\"Form\"]=4]=\"Form\";BaseComponentStep[BaseComponentStep[\"Success\"]=5]=\"Success\";BaseComponentStep[BaseComponentStep[\"Pending\"]=6]=\"Pending\";BaseComponentStep[BaseComponentStep[\"Error\"]=7]=\"Error\";})(BaseComponentStep||(BaseComponentStep={}));// Custom hook for common Bookla functionality\nexport const useBooklaBase=props=>{const{navigate,routes}=useRouter();const region=props.prodMode===undefined||props.prodMode===true?props.bkla.apiRegion:\"dev-api\";const apiUrl=\"https://\"+region+\".bookla.com/api\";const bookla=useBookla(apiUrl,props.bkla.apiKey);const[loading,setLoading]=useState(false);const[submiting,setSubmiting]=useState(false);const[timeSlots,setTimeSlots]=useState([]);const[selectedTime,setSelectedTime]=useState(null);const[clientData,setClientData]=useState(undefined);const[resources,setResources]=useState([]);const[timeZone,setTimeZone]=useState(Intl.DateTimeFormat().resolvedOptions().timeZone);const[error,setError]=useState(null);//code-related state\nconst[code,setCodeInternal]=useState(\"\");const[codeValidationState,setCodeValidationState]=useState(CodeValidationState.None);const[booklaClientId,setBooklaClientId]=useState(\"\");const[booklaClientEmail,setBooklaClientEmail]=useState(\"\");const preselectedDate=()=>{if(props.selectedDate===undefined){return new Date;}let presDate=new Date(props.selectedDate);let curDate=new Date;return presDate.getTime()<curDate.getTime()?curDate:presDate;};const[availableDates,setAvailableDates]=useState([]);const[selectedDate,setSelectedDate]=useState(preselectedDate());const[selectedResourceID,setSelectedResourceID]=useState(props.selectedResourceID&&props.selectedResourceID!==\"\"?props.selectedResourceID:null);const[termsAccepted,setTermsAccepted]=useState(false);const clientUUID=uuid();const[isAuthorized,setIsAuthorized]=useState(false);const[formRef,setFormRef]=useState(null);const[formData,setFormData]=useState({});const validateAndProceed=()=>{if(props.customForm?.fields?.length>0){const validation=formRef?.validateForm?.();if(!validation?.isValid){return false;}}return true;};const handleClientDataChange=data=>{if(data.email!==\"\"){data.id=clientUUID;setClientData(data);}else{setClientData(null);}};const handleFormDataChange=data=>{handleClientDataChange({email:data[\"email\"]??\"\",firstName:data[\"firstName\"],lastName:data[\"lastName\"]});delete data[\"email\"];delete data[\"firstName\"];delete data[\"lastName\"];setFormData(data);};const getServiceData=async()=>{if(props.bkla.companyID===\"\"||props.serviceID===\"\"){return;}setLoading(true);setError(null);try{const response=await bookla.services.get(props.bkla.companyID,props.serviceID);setResources(response.resources??[]);if(response.timeZone&&props.localTime===true){setTimeZone(response.timeZone);}return response;}catch(err){setError(\"Failed to load service data: \"+err);}finally{setLoading(false);}};const proceedToRoute=route=>{let routeId=getRouteId(routes,route);if(routeId===\"\"){routeId=getRouteId(routes,\"/\");}navigate(routeId,\"\");};const fetchAvailableDates=async(duration,participants,tickets)=>{if(props.bkla.companyID===\"\"||props.serviceID===\"\"){setAvailableDates([]);return;}try{const today=new Date;today.setHours(0,0,0,0);const threeMonthsLater=new Date(today);threeMonthsLater.setMonth(today.getMonth()+3);threeMonthsLater.setHours(23,59,59,999);const params={from:today.toISOString(),to:threeMonthsLater.toISOString()};if(selectedResourceID){params.resourceIDs=[selectedResourceID];}if(duration){params.duration=duration;}if(participants){params.spots=participants;}if(tickets){params.tickets=tickets;}const response=await bookla.services.getDates(props.bkla.companyID,props.serviceID,params);const allDates=Object.values(response.dates).flat();const uniqueDates=[...new Set(allDates)].sort();setAvailableDates(uniqueDates);}catch(err){console.error(\"Failed to load available dates:\",err);setAvailableDates([]);}};const setCode=async(codeValue,tickets)=>{setCodeInternal(codeValue);if(!codeValue.trim()){setCodeValidationState(CodeValidationState.None);setBooklaClientId(\"\");setBooklaClientEmail(\"\");return;}// Set loading state\nsetCodeValidationState(CodeValidationState.Loading);try{// Validate code using bookla SDK\nconst req={companyID:props.bkla.companyID,serviceID:props.serviceID,resourceID:selectedTime?.resourceID||\"\",startTime:selectedTime?new Date(selectedTime.timeSlot.startTime).toISOString():new Date().toISOString(),spots:1,...tickets&&{tickets}};const response=await bookla.codes.validateCode(codeValue.trim(),req);if(response.canApply){setCodeValidationState(CodeValidationState.Valid);if(response.clientID&&response.clientID!==\"\"&&response.email&&response.email!==\"\"){// If the code is valid and has a client ID, set the Bookla Client ID\nsetBooklaClientId(response.clientID);setBooklaClientEmail(response.clientEmail||\"\");}}else{setCodeValidationState(CodeValidationState.Invalid);setBooklaClientId(\"\");setBooklaClientEmail(\"\");}}catch(error){console.error(\"Code validation failed:\",error);setCodeValidationState(CodeValidationState.Invalid);setBooklaClientId(\"\");setBooklaClientEmail(\"\");}};// Check if user is authorized (including Bookla client ID from code)\nconst isAuthorizedWithCode=()=>{if(booklaClientId&&booklaClientId!==\"\"){return true;}return isAuthorized;};useEffect(()=>{const checkAuth=async()=>{if(props.clientTokens){bookla.setAuthTokens(props.clientTokens);const authState=await bookla.isAuthenticated();setIsAuthorized(authState.isAuthenticated);}else{bookla.clearAuth();setIsAuthorized(false);}};checkAuth();},[props.clientTokens,setIsAuthorized]);return{bookla,loading,setLoading,submiting,setSubmiting,timeSlots,setTimeSlots,selectedTime,setSelectedTime,clientData,resources,error,setError,selectedDate,setSelectedDate,selectedResourceID,setSelectedResourceID,isAuthorized,handleClientDataChange,getServiceData,proceedToRoute,termsAccepted,setTermsAccepted,timeZone,formData,setFormData,formRef,validateAndProceed,availableDates,fetchAvailableDates,handleFormDataChange,code,setCode,codeValidationState,booklaClientId,booklaClientEmail,isAuthorizedWithCode};};export function formatSlots(response){const times=response[\"times\"];const resourceIDs=Object.keys(times);let timeSlots=resourceIDs.flatMap(resourceID=>{return times[resourceID].map(time=>{return{timeSlot:time,resourceID:resourceID};});});// Sort by time first\ntimeSlots=timeSlots.sort((a,b)=>{return new Date(a.timeSlot.startTime).getTime()-new Date(b.timeSlot.startTime).getTime();});// Group slots by time using timestamp as key\nconst uniqueTimeSlots=new Map;timeSlots.forEach(slot=>{const timeKey=new Date(slot.timeSlot.startTime).getTime();if(!uniqueTimeSlots.has(timeKey)){uniqueTimeSlots.set(timeKey,[]);}uniqueTimeSlots.get(timeKey).push(slot);});// Randomly pick one slot from each time group\nconst result=Array.from(uniqueTimeSlots.entries()).sort((a,b)=>a[0]-b[0])// Sort by timestamp to maintain order\n.map(([timestamp,slotsAtSameTime])=>{const randomIndex=Math.floor(Math.random()*slotsAtSameTime.length);const selected=slotsAtSameTime[randomIndex];return selected;});return result;}// Base component with common UI elements\nexport const BooklaBaseComponent=({props,state,onTimeChange,onResourceChange,onDateChange,proceedToNextStep,onBack,currentStep,buttonTitle,additionalControls,tickets})=>{const datePickerRef=useRef(null);const bookButtonEnabled=!state.submiting&&(state.isAuthorizedWithCode()||props.guestMode)&&state.selectedTime!==null&&(!props.showTerms||state.termsAccepted);const formRef=useRef();const containerStyle={height:\"100%\",width:\"100%\",justifyContent:\"center\",alignItems:\"center\",overflow:\"hidden\"};const buttonStyle=isDisabled=>({...headline2,fontFamily:props.fontFamily!==\"\"?props.fontFamily:null,width:\"100%\",margin:\"0 auto\",border:\"none\",padding:adjustToSize(16,props.size),backgroundColor:props.button.bgColor,color:props.button.textColor,fontSize:adjustToSize(17,props.size),borderRadius:props.button.borderRadius,opacity:isDisabled||state.submiting?.2:1,cursor:state.submiting?\"not-allowed\":\"pointer\"});const handleProceed=()=>{if(currentStep===4){const validation=formRef.current?.validateForm();if(!validation?.isValid){return;}}proceedToNextStep();};return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                @keyframes spin {\n                    0% { transform: translateY(-50%) rotate(0deg); }\n                    100% { transform: translateY(-50%) rotate(360deg); }\n                }\n                `}),currentStep===4?/*#__PURE__*/_jsx(FormView,{ref:formRef,size:props.size,backgroundColor:props.backgroundColor,primaryColor:props.primaryColor,secondaryColor:props.secondaryColor,padding:props.blocks.padding,border:props.blocks.border,borderRadius:props.blocks.borderRadius,itemTextColor:props.primaryColor,itemBgColor:props.item.bgColor,itemBorderRadius:props.item.borderRadius,enabled:!state.submiting,onDataChange:state.handleFormDataChange,error:state.error,fields:props.customForm.fields,fontFamily:props.fontFamily,title:props.guestMode?props.guestModeTexts.title:props.customForm.formTitle,subtitle:props.guestMode?props.guestModeTexts.subtitle:props.customForm.formSubtitle,firstName:props.guestModeTexts.firstName,lastName:props.guestModeTexts.lastName,email:props.guestModeTexts.email,onBack:onBack,guestFormEnabled:props.guestMode,booklaClientId:state.booklaClientId,isClientAuthenticated:state.isAuthorized}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(DatePicker,{ref:datePickerRef,size:props.size,padding:props.blocks.padding,startOnMonday:true,primary:props.primaryColor,onDateChange:onDateChange,border:props.blocks.border,borderRadius:props.blocks.borderRadius,backgroundColor:props.backgroundColor,itemBgColor:props.item.bgColor,itemSelectColor:props.item.selectColor,itemTextColor:props.primaryColor,itemSecondaryTextColor:props.secondaryColor,itemSelectedTextColor:props.item.selectedTextColor,itemSelectedSecondaryTextColor:props.item.selectedSecondaryTextColor,itemBorderRadius:props.item.borderRadius,fontFamily:props.fontFamily,value:state.selectedDate,locale:props.locale,minDates:props.datesCount?.min??3,maxDates:props.datesCount?.max??7,availableDates:state.availableDates}),additionalControls,props.resourcePicker.visible&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{padding:adjustToSize(props.blocks.gap,props.size)}}),/*#__PURE__*/_jsx(ResourcePicker,{size:props.size,padding:props.blocks.padding,title:props.resourcePicker.selectResourceText,backgroundColor:props.backgroundColor,border:props.blocks.border,borderRadius:props.blocks.borderRadius,itemBgColor:props.item.bgColor,itemSelectColor:props.item.selectColor,itemSecondaryTextColor:props.secondaryColor,itemTextColor:props.primaryColor,itemBorderRadius:props.item.borderRadius,itemSelectedTextColor:props.item.selectedTextColor,anyResourceText:props.resourcePicker.anyResourceText,fontFamily:props.fontFamily,resources:state.resources,selectedResourceID:props.selectedResourceID,onResourceChange:onResourceChange})]}),/*#__PURE__*/_jsx(\"div\",{style:{padding:adjustToSize(props.blocks.gap,props.size)}}),/*#__PURE__*/_jsx(TimePicker,{size:props.size,padding:props.blocks.padding,isLoading:state.loading,backgroundColor:props.backgroundColor,border:props.blocks.border,borderRadius:props.blocks.borderRadius,itemBgColor:props.item.bgColor,itemSelectColor:props.item.selectColor,itemTextColor:props.primaryColor,itemSecondaryTextColor:props.secondaryColor,itemSelectedTextColor:props.item.selectedTextColor,itemSelectedSecondaryTextColor:props.item.selectedSecondaryTextColor,itemBorderRadius:props.item.borderRadius,fontFamily:props.fontFamily,locale:props.locale,times:state.timeSlots,timeZone:state.timeZone,noTimesText:props.texts.noTimes,onTimeChange:onTimeChange,priceConfig:props.priceConfig??{showPrice:true,showComparedPrice:true,showDecimalPlaces:true},availableDates:state.availableDates,selectedDate:state.selectedDate,onDateChange:newDate=>{// Call the DatePicker's doChangeDate method directly\ndatePickerRef.current?.doChangeDate(newDate);// Also call the original onDateChange\nonDateChange(newDate);}}),props.codeField&&props.codeField.enabled&&state.selectedTime&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{padding:adjustToSize(props.blocks.gap,props.size)}}),/*#__PURE__*/_jsx(CodeField,{size:props.size,backgroundColor:props.backgroundColor,border:props.blocks.border,borderRadius:props.blocks.borderRadius,padding:props.blocks.padding,itemBgColor:props.item.bgColor,itemTextColor:props.primaryColor,itemSecondaryTextColor:props.secondaryColor,itemBorderRadius:props.item.borderRadius,fontFamily:props.fontFamily,code:state.code,codeValidationState:state.codeValidationState,onCodeChange:codeValue=>state.setCode(codeValue,tickets),fieldLabel:props.codeField.fieldLabel,fieldPlaceholder:props.codeField.fieldPlaceholder,fieldError:props.codeField.fieldError,notFoundError:props.codeField.notFoundError,enabled:props.codeField.enabled})]}),props.showTerms&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{padding:adjustToSize(props.blocks.gap,props.size)}}),/*#__PURE__*/_jsx(AcceptTerms,{padding:props.blocks.padding,size:props.size,borderRadius:props.blocks.borderRadius,backgroundColor:props.backgroundColor,itemBgColor:props.item.bgColor,itemSelectColor:props.item.selectColor,itemTextColor:props.primaryColor,itemSecondaryTextColor:props.secondaryColor,fontFamily:props.fontFamily,text:props.terms.text,highlightedText:props.terms.highlightedText,termsLink:props.terms.termsLink,accepted:state.termsAccepted,onAcceptChange:state.setTermsAccepted})]})]}),/*#__PURE__*/_jsx(\"div\",{style:{padding:adjustToSize(props.blocks.gap,props.size)}}),state.isAuthorizedWithCode()||props.guestMode?/*#__PURE__*/_jsxs(\"button\",{style:buttonStyle(!bookButtonEnabled),disabled:!bookButtonEnabled,onClick:handleProceed,children:[buttonTitle(),state.submiting&&/*#__PURE__*/_jsx(\"div\",{style:spinnerStyle(props.item.selectedTextColor)})]}):/*#__PURE__*/_jsx(\"button\",{style:buttonStyle(false),onClick:()=>{window.location.href=\"/login\";},children:props.texts.loginToBook})]});};const formInputTypes=[\"checkbox\",\"text\",\"number\",\"select\",\"radio\"];// Base property controls that are common to all Bookla components\nexport const basePropertyControls={size:{type:ControlType.Enum,title:\"Size\",defaultValue:\"md\",options:[\"sm\",\"md\",\"lg\"],optionTitles:[\"Small\",\"Medium\",\"Large\"]},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"white\"},primaryColor:{type:ControlType.Color,title:\"Primary\",defaultValue:\"black\"},secondaryColor:{type:ControlType.Color,title:\"Secondary\",defaultValue:\"#666\"},fontFamily:{type:ControlType.String,title:\"Font Family\",defaultValue:\"Inter\"},item:{type:ControlType.Object,title:\"Item\",controls:{bgColor:{type:ControlType.Color,title:\"Bg Color\",defaultValue:\"#f5f5f5\"},selectColor:{type:ControlType.Color,title:\"Brand\",defaultValue:\"black\"},selectedTextColor:{type:ControlType.Color,title:\"Primary On Brand\",defaultValue:\"white\"},selectedSecondaryTextColor:{type:ControlType.Color,title:\"Secondary On Brand\",defaultValue:\"white\"},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:\"8px\",step:1}}},blocks:{type:ControlType.Object,title:\"Blocks\",controls:{gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"20px\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#F5F5F5\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:\"16px\",step:1}}},button:{type:ControlType.Object,title:\"Button\",controls:{bgColor:{type:ControlType.Color,title:\"Bg Color\",defaultValue:\"black\"},textColor:{type:ControlType.Color,title:\"Text color\",defaultValue:\"white\"},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:\"32px\",step:1}}},datesCount:{type:ControlType.Object,title:\"Dates count\",controls:{min:{type:ControlType.Number,title:\"Min\",defaultValue:3},max:{type:ControlType.Number,title:\"Max\",defaultValue:7}}},locale:{type:ControlType.String,title:\"Locale\",defaultValue:\"en-US\"},localTime:{type:ControlType.Boolean,title:\"Use local time\",defaultValue:true},guestMode:{type:ControlType.Boolean,title:\"Guest mode\",defaultValue:true},guestModeTexts:{type:ControlType.Object,title:\"Guest texts\",hidden(props){return props.guestMode===false;},controls:{title:{type:ControlType.String,title:\"Title\",defaultValue:\"Client's data\"},subtitle:{type:ControlType.String,title:\"Subtitle\",defaultValue:\"Please fill the form below\"},firstName:{type:ControlType.String,title:\"First Name\",defaultValue:\"First Name\"},lastName:{type:ControlType.String,title:\"Last Name\",defaultValue:\"Last Name\"},email:{type:ControlType.String,title:\"Email\",defaultValue:\"Email\"}}},resourcePicker:{type:ControlType.Object,title:\"Resource selector\",controls:{visible:{type:ControlType.Boolean,title:\"Visible\",defaultValue:true},selectResourceText:{type:ControlType.String,title:\"Select resource\",defaultValue:\"Select resource\"},anyResourceText:{type:ControlType.String,title:\"Any resource\",defaultValue:\"Any resource\"}}},codeField:{type:ControlType.Object,title:\"Code Field\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:false},fieldLabel:{type:ControlType.String,title:\"Field Label\",defaultValue:\"Promo Code\",hidden:props=>props.enabled===false},fieldPlaceholder:{type:ControlType.String,title:\"Field Placeholder\",defaultValue:\"XXXX-XXXX\",hidden:props=>props.enabled===false},fieldError:{type:ControlType.String,title:\"Field Error\",defaultValue:\"This field is required\",hidden:props=>props.enabled===false},notFoundError:{type:ControlType.String,title:\"Not Found Error\",defaultValue:\"Code not found or invalid\",hidden:props=>props.enabled===false}}},priceConfig:{type:ControlType.Object,title:\"Price Config\",controls:{showPrice:{type:ControlType.Boolean,title:\"Price\",defaultValue:true},showComparedPrice:{type:ControlType.Boolean,title:\"Compared Price\",defaultValue:true},showDecimalPlaces:{type:ControlType.Boolean,title:\"Decimal Places\",defaultValue:true}}},...acceptTermsPropertyControls,routes:{type:ControlType.Object,title:\"Routes\",controls:{confirmed:{type:ControlType.Link,title:\"Confirmed\",defaultValue:\"/\"},pending:{type:ControlType.Link,title:\"Pending\",defaultValue:\"/\"}}},texts:{type:ControlType.Object,title:\"Texts\",controls:{noTimes:{type:ControlType.String,title:\"No times message\",defaultValue:\"Sorry, but no times are available for this date\"},continue:{type:ControlType.String,title:\"Continue\",defaultValue:\"Continue\"},makeBooking:{type:ControlType.String,title:\"Book\",defaultValue:\"Make booking\"},loginToBook:{type:ControlType.String,title:\"Login button\",defaultValue:\"Please login to book\"}}},...customFormPropertyControls,bkla:{type:ControlType.Object,title:\"Bookla\",controls:{apiRegion:{type:ControlType.Enum,title:\"API region\",defaultValue:\"us\",options:[\"us\",\"eu\"],optionTitles:[\"U.S.\",\"Europe\"]},apiKey:{type:ControlType.String,title:\"API Key\",defaultValue:\"\"},companyID:{type:ControlType.String,title:\"Company ID\",defaultValue:\"\"}}},prodMode:{type:ControlType.Boolean,title:\"Prod mode\",hidden:props=>props.texts.loginToBook!==\"dev\",defaultValue:true},serviceID:{type:ControlType.String,title:\"Service ID\",defaultValue:\"\"},selectedResourceID:{type:ControlType.String,title:\"Resource ID\",defaultValue:\"\",description:\"This property can be used to pre-select specific resource.\"}};// Helper function to merge property controls\nexport const mergePropertyControls=(baseControls,additionalControls,componentType)=>{const filteredBaseControls={...baseControls};if(componentType===\"days\"){// Remove locale control for days component\ndelete filteredBaseControls.locale;// Remove datesCount control for days component\ndelete filteredBaseControls.datesCount;}return{...filteredBaseControls,...additionalControls,// Special handling for nested objects that need to be merged\ntexts:additionalControls.texts?{...baseControls.texts,controls:{...baseControls.texts.controls,...additionalControls.texts.controls}}:baseControls.texts};};\nexport const __FramerMetadata__ = {\"exports\":{\"formatSlots\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BaseComponentStep\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useBookla\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"basePropertyControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BooklaBaseComponent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mergePropertyControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BooklaBaseProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useBooklaBase\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BaseBooklaComponent.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState}from\"react\";import{ControlType}from\"framer\";import{Minus,Plus}from\"lucide-react\";import{body2}from\"https://framerusercontent.com/modules/1Jy8oQunPSXjUAa9kZlG/GPOK7OB59hHCUkIPhV7u/Styles.js\";const GroupPicker=({title,size,backgroundColor,borderRadius,padding,border,itemBgColor,itemSelectColor,itemTextColor,itemSecondaryTextColor,itemBorderRadius,fontFamily,isLoading=false,minParticipants=1,maxParticipants=10,onParticipantsChange})=>{const[participants,setParticipants]=useState(minParticipants);const adjustToSize=(baseSize,size)=>{const sizeMultiplier={sm:.8,md:1,lg:1.2};return`${baseSize*sizeMultiplier[size]}px`;};const handleParticipantsChange=increment=>{const newValue=increment?participants+1:participants-1;if(newValue>=minParticipants&&newValue<=maxParticipants){setParticipants(newValue);onParticipantsChange?.(newValue);}};const containerStyle={width:\"100%\",padding:padding,backgroundColor:backgroundColor,borderRadius:borderRadius,borderColor:border.borderColor,borderWidth:border.borderWidth,borderStyle:border.borderStyle};const contentStyle={display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:adjustToSize(16,size),[\"@media (max-width: 320px)\"]:{flexDirection:\"column\",alignItems:\"flex-start\"}};const titleStyle={...body2,fontFamily:fontFamily!==\"\"?fontFamily:null,fontSize:adjustToSize(17,size),color:itemSecondaryTextColor,flex:\"1\",[\"@media (max-width: 320px)\"]:{marginBottom:adjustToSize(4,size)}};const controlsContainerStyle={display:\"flex\",alignItems:\"center\",gap:adjustToSize(8,size),backgroundColor:itemBgColor,padding:adjustToSize(4,size),borderRadius:itemBorderRadius,border:\"none\"};const buttonStyle=enabled=>({display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:adjustToSize(6,size),backgroundColor:\"transparent\",border:\"none\",borderRadius:adjustToSize(4,size),cursor:enabled?\"pointer\":\"not-allowed\",opacity:enabled?1:.5,color:itemTextColor,transition:\"all 0.2s ease\",\"&:hover\":enabled?{backgroundColor:itemSelectColor,color:\"#ffffff\"}:{}});const participantsDisplayStyle={padding:`${adjustToSize(4,size)} ${adjustToSize(8,size)}`,fontSize:adjustToSize(14,size),fontWeight:\"500\",color:itemTextColor,minWidth:adjustToSize(40,size),textAlign:\"center\"};if(isLoading){return null;}const canDecrement=participants>minParticipants;const canIncrement=participants<maxParticipants;return /*#__PURE__*/_jsx(\"div\",{style:containerStyle,children:/*#__PURE__*/_jsxs(\"div\",{style:contentStyle,className:\"group-picker-content\",children:[/*#__PURE__*/_jsx(\"div\",{style:titleStyle,className:\"group-picker-title\",children:title}),/*#__PURE__*/_jsxs(\"div\",{style:controlsContainerStyle,children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>handleParticipantsChange(false),style:buttonStyle(canDecrement),disabled:!canDecrement,\"aria-label\":\"Decrease participants\",children:/*#__PURE__*/_jsx(Minus,{size:16})}),/*#__PURE__*/_jsx(\"div\",{style:participantsDisplayStyle,children:participants}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>handleParticipantsChange(true),style:buttonStyle(canIncrement),disabled:!canIncrement,\"aria-label\":\"Increase participants\",children:/*#__PURE__*/_jsx(Plus,{size:16})})]})]})});};export default function GroupPickerComponent(props){return /*#__PURE__*/_jsx(GroupPicker,{title:props.title,size:props.size,backgroundColor:props.backgroundColor,borderRadius:props.borderRadius,border:props.border,itemBgColor:props.itemBgColor,itemSelectColor:props.itemSelectColor,itemBorderRadius:props.itemBorderRadius,itemTextColor:props.itemTextColor,isLoading:props.isLoading,minParticipants:props.minParticipants,maxParticipants:props.maxParticipants,onParticipantsChange:props.onParticipantsChange,fontFamily:props.fontFamily,itemSecondaryTextColor:props.itemSecondaryTextColor,padding:props.padding});}GroupPickerComponent.propertyControls={title:{type:ControlType.String,title:\"Title\",defaultValue:\"Number of Participants\"},size:{type:ControlType.Enum,title:\"Size\",defaultValue:\"md\",options:[\"sm\",\"md\",\"lg\"],optionTitles:[\"Small\",\"Medium\",\"Large\"]},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#ffffff\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#e2e8f0\"}},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:8,step:1},itemBgColor:{type:ControlType.Color,title:\"Controls Background\",defaultValue:\"#ffffff\"},itemSelectColor:{type:ControlType.Color,title:\"Button Hover Color\",defaultValue:\"#4299e1\"},itemTextColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#2d3748\"},minParticipants:{type:ControlType.Number,title:\"Min Participants\",defaultValue:1,min:1,step:1},maxParticipants:{type:ControlType.Number,title:\"Max Participants\",defaultValue:10,min:1,step:1},itemSecondaryTextColor:{type:ControlType.Color,title:\"Button Hover Color\",defaultValue:\"#4299e1\"}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GroupPickerComponent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GroupPicker.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useBooklaBase,formatSlots,BooklaBaseComponent,basePropertyControls,mergePropertyControls,BaseComponentStep}from\"https://framerusercontent.com/modules/aAISrJOcNslmECdBIuH6/AKTKkLf6BZ4QmHnPWkI2/BaseBooklaComponent.js\";import{useState,useEffect}from\"react\";import{ControlType}from\"framer\";import{adjustToSize,getTimezoneOffset}from\"https://framerusercontent.com/modules/yMu9AtrvZjKjtSUz4NJg/xChxVXI0xYCscQVZjf7o/Utils.js\";import GroupPicker from\"https://framerusercontent.com/modules/GEgFac3mxoIEYB5jiwCg/7y8aLkbBbW14UogKsrnM/GroupPicker.js\";import{CodeValidationState}from\"https://framerusercontent.com/modules/qYb8X84BeoOu1h0BvHkM/0BwZMhl4wckEu0lXQWEM/CodeField.js\";function BKLGroupComponent(props){const baseState=useBooklaBase(props);const[currentStep,setCurrentStep]=useState(BaseComponentStep.Date);const[currentParticipants,setCurrentParticipants]=useState(props.participants.min);const[currentService,setCurrentService]=useState(null);const onDateChange=async date=>{if(props.bkla.companyID===\"\"||props.serviceID===\"\"){return;}baseState.setSelectedDate(date);baseState.setLoading(true);baseState.setError(null);baseState.setSelectedTime(null);const startOfTheDay=new Date(date.setHours(0,0,0));const endOfTheDay=new Date(startOfTheDay);endOfTheDay.setDate(startOfTheDay.getDate()+1);if(props.localTime===true){const offsetMinutes=getTimezoneOffset(baseState.timeZone,date);startOfTheDay.setTime(startOfTheDay.getTime()-offsetMinutes*60*1e3);endOfTheDay.setTime(endOfTheDay.getTime()-offsetMinutes*60*1e3);}try{const response=await baseState.bookla.services.getTimes(props.bkla.companyID,props.serviceID,{from:startOfTheDay.toISOString(),to:endOfTheDay.toISOString(),resourceIDs:baseState.selectedResourceID?[baseState.selectedResourceID]:[],spots:currentParticipants});const slots=formatSlots(response);baseState.setTimeSlots(slots);}catch(err){baseState.setError(\"Failed to load times: \"+err);}finally{baseState.setLoading(false);}};const makeBooking=async()=>{if(baseState.selectedTime===null){return;}baseState.setSubmiting(true);baseState.setError(null);try{let data={companyID:props.bkla.companyID,serviceID:props.serviceID,resourceID:baseState.selectedTime.resourceID,spots:currentParticipants,startTime:new Date(baseState.selectedTime.timeSlot.startTime).toISOString()};if(Object.keys(baseState.formData).length>0){data.metaData=baseState.formData;}if(props.guestMode){if(baseState.booklaClientId&&baseState.booklaClientId!==\"\"){// If we have a Bookla client ID from code validation, use it\ndata.client={booklaID:baseState.booklaClientId,email:baseState.booklaClientEmail};}else{// Use regular guest client data\ndata.client=baseState.clientData;}}if(baseState.code&&baseState.codeValidationState===CodeValidationState.Valid){data.code=baseState.code;}const response=await baseState.bookla.bookings.request(data);if(response.paymentURL&&response.paymentURL.length>0){window.location.href=response.paymentURL;}else if(response.status===\"confirmed\"){setCurrentStep(BaseComponentStep.Success);}else if(response.status===\"pending\"){setCurrentStep(BaseComponentStep.Pending);}}catch(err){baseState.setError(\"Failed to request booking: \"+err);}finally{baseState.setSubmiting(false);}};const proceedToNextStep=()=>{if(currentStep===BaseComponentStep.Date){if(props.customForm.fields?.length>0||props.guestMode&&!baseState.isAuthorizedWithCode()){return setCurrentStep(BaseComponentStep.Form);}return makeBooking();}if(currentStep===BaseComponentStep.Form){return makeBooking();}};const proceedToPreviousStep=()=>{if(currentStep===BaseComponentStep.Form){setCurrentStep(BaseComponentStep.Date);return;}};const hasFormStep=()=>{if(props.customForm.fields.length>0){return true;}return props.guestMode&&!baseState.isAuthorizedWithCode();};useEffect(()=>{onDateChange(baseState.selectedDate);},[baseState.selectedDate,baseState.selectedResourceID,currentParticipants]);useEffect(()=>{if(currentStep===BaseComponentStep.Success){baseState.proceedToRoute(props.routes.confirmed);}else if(currentStep===BaseComponentStep.Pending){baseState.proceedToRoute(props.routes.pending);}},[currentStep]);useEffect(()=>{const loadService=async()=>{const service=await baseState.getServiceData();setCurrentService(service);};loadService();},[]);useEffect(()=>{baseState.fetchAvailableDates(undefined,currentParticipants);},[baseState.selectedResourceID,currentParticipants]);if(currentService===null&&baseState.loading){return /*#__PURE__*/_jsx(\"div\",{});}return /*#__PURE__*/_jsx(BooklaBaseComponent,{props:props,state:baseState,onTimeChange:slot=>baseState.setSelectedTime(slot),onResourceChange:resource=>baseState.setSelectedResourceID(resource?resource.id:null),onDateChange:onDateChange,proceedToNextStep:proceedToNextStep,onBack:()=>proceedToPreviousStep(),currentStep:currentStep,buttonTitle:()=>{if(hasFormStep()&&currentStep===BaseComponentStep.Date||currentStep===BaseComponentStep.CustomForm){return props.texts.continue;}return props.texts.makeBooking;},additionalControls:/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{padding:adjustToSize(props.blocks.gap,props.size)}}),/*#__PURE__*/_jsx(GroupPicker,{size:props.size,title:props.texts.participantsText,backgroundColor:props.backgroundColor,border:props.blocks.border,borderRadius:props.blocks.borderRadius,itemBgColor:props.item.bgColor,itemSelectColor:props.item.selectColor,itemTextColor:props.primaryColor,itemBorderRadius:props.item.borderRadius,minParticipants:props.participants.min,maxParticipants:props.participants.max,onParticipantsChange:setCurrentParticipants,fontFamily:props.fontFamily,itemSecondaryTextColor:props.secondaryColor,padding:props.blocks.padding})]})});}BKLGroupComponent.propertyControls=mergePropertyControls(basePropertyControls,{participants:{type:ControlType.Object,title:\"Participants\",controls:{min:{type:ControlType.Number,title:\"Min\",defaultValue:1,min:1,step:1},max:{type:ControlType.Number,title:\"Max\",defaultValue:10,min:1,step:1}}},selectedDate:{type:ControlType.Date,title:\"Selected date\",defaultValue:undefined},texts:{type:ControlType.Object,title:\"Texts\",controls:{participantsText:{type:ControlType.String,title:\"Participants\",defaultValue:\"Number of Participants\"}}}},\"group\");export default BKLGroupComponent;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BKLGroupComponent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"kdAUu5B,SAAgB,EAAY,EAAS,CAAC,IAAM,EAAM,EAAS,MAAkD,EAAvB,OAAO,KAAK,EAAM,CAA2B,QAAQ,GAAoB,EAAM,GAAY,IAAI,IAAa,CAAC,SAAS,EAAgB,aAAW,EAAG,CAAG,CACpoC,EAAU,EAAU,MAAM,EAAE,IAAY,IAAI,KAAK,EAAE,SAAS,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,SAAS,UAAU,CAAC,SAAS,CAAG,CAC5H,IAAM,EAAgB,IAAI,IAE6I,OAFzI,EAAU,QAAQ,GAAM,CAAC,IAAM,EAAQ,IAAI,KAAK,EAAK,SAAS,UAAU,CAAC,SAAS,CAAK,EAAgB,IAAI,EAAQ,EAAE,EAAgB,IAAI,EAAQ,EAAE,CAAC,CAAE,EAAgB,IAAI,EAAQ,CAAC,KAAK,EAAK,EAAG,CACjN,MAAM,KAAK,EAAgB,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CACxE,KAAK,CAAC,EAAU,KAAsG,EAAhE,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAgB,OAAO,EAA+D,qCAdvF,IAAsH,IAAsH,IAA8I,IAA8H,IAAqD,IAAgC,IAA8H,IAA8H,IAAqJ,IAAyI,IAA0E,IAA6B,CAEzxC,EAAY,KAAkB,GAAW,EAAO,IAAiBA,OAAa,AAAgB,IAAY,KAC9G,EAAY,IAAIC,EAAU,CAAQ,SAAc,SAAO,MAAM,GAAM,MAAM,CAAC,YAAY,EAAE,QAAQ,IAAI,mBAAmB,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAQ,GAAc,CAAC,EAAO,EAAO,CAAC,EACxJ,SAAS,EAAkB,CAAC,EAAkB,EAAkB,KAAQ,GAAG,OAAO,EAAkB,EAAkB,WAAc,GAAG,aAAa,EAAkB,EAAkB,aAAgB,GAAG,eAAe,EAAkB,EAAkB,MAAS,GAAG,QAAQ,EAAkB,EAAkB,KAAQ,GAAG,OAAO,EAAkB,EAAkB,QAAW,GAAG,UAAU,EAAkB,EAAkB,QAAW,GAAG,UAAU,EAAkB,EAAkB,MAAS,GAAG,UAAW,AAAoB,IAAkB,EAAE,CAAE,CACzjB,EAAc,GAAO,CAAC,GAAK,CAAC,WAAS,UAAQ,GAAW,CAAsJ,EAAO,EAAjD,YAA9F,EAAM,WAAW,IAAA,IAAW,EAAM,WAAW,GAAK,EAAM,KAAK,UAAU,WAAyC,kBAAgD,EAAM,KAAK,OAAO,CAAM,CAAC,EAAQ,GAAYC,EAAS,GAAM,CAAM,CAAC,EAAU,GAAcA,EAAS,GAAM,CAAM,CAAC,EAAU,GAAcA,EAAS,EAAE,CAAC,CAAM,CAAC,EAAa,GAAiBA,EAAS,KAAK,CAAM,CAAC,EAAW,GAAeA,EAAS,IAAA,GAAU,CAAM,CAAC,EAAU,GAAcA,EAAS,EAAE,CAAC,CAAM,CAAC,EAAS,GAAaA,EAAS,KAAK,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAM,CAAC,EAAM,GAAUA,EAAS,KAAK,CACjpB,CAAC,EAAK,GAAiBA,EAAS,GAAG,CAAM,CAAC,EAAoB,GAAwBA,EAAS,EAAoB,KAAK,CAAM,CAAC,EAAe,GAAmBA,EAAS,GAAG,CAAM,CAAC,EAAkB,GAAsBA,EAAS,GAAG,CAAO,MAAoB,CAAC,GAAG,EAAM,eAAe,IAAA,GAAW,OAAO,IAAI,KAAM,IAAI,EAAS,IAAI,KAAK,EAAM,aAAa,CAAK,EAAQ,IAAI,KAAK,OAAO,EAAS,SAAS,CAAC,EAAQ,SAAS,CAAC,EAAQ,GAAgB,CAAC,EAAe,GAAmBA,EAAS,EAAE,CAAC,CAAM,CAAC,EAAa,GAAiBA,EAAS,GAAiB,CAAC,CAAM,CAAC,EAAmB,GAAuBA,EAAS,EAAM,oBAAoB,EAAM,qBAAqB,GAAG,EAAM,mBAAmB,KAAK,CAAM,CAAC,EAAc,GAAkBA,EAAS,GAAM,CAAO,EAAWC,IAAM,CAAM,CAAC,EAAa,GAAiBD,EAAS,GAAM,CAAM,CAAC,EAAQ,GAAYA,EAAS,KAAK,CAAM,CAAC,EAAS,GAAaA,EAAS,EAAE,CAAC,CAAO,MAAwB,EAAG,EAAM,YAAY,QAAQ,OAAO,GAAiD,CAA7B,GAAS,gBAAgB,EAAiB,SAA4C,EAAuB,GAAM,CAAI,EAAK,QAAQ,GAAiD,EAAc,KAAK,EAAhE,EAAK,GAAG,EAAW,EAAc,EAAK,GAInwB,OAA1S,MAAc,EAAiB,SAAS,CAAI,EAAM,cAAc,EAAO,cAAc,EAAM,aAAa,CAAgD,GAA/B,MAAM,EAAO,iBAAiB,EAA2B,gBAAgB,GAAO,EAAO,WAAW,CAAC,EAAgB,GAAM,KAAe,EAAG,CAAC,EAAM,aAAa,EAAgB,CAAC,CAAO,CAAC,SAAO,UAAQ,aAAW,YAAU,eAAa,YAAU,eAAa,eAAa,kBAAgB,aAAW,YAAU,QAAM,WAAS,eAAa,kBAAgB,qBAAmB,wBAAsB,eAAa,yBAAuB,eAJgyB,SAAS,CAAI,OAAM,KAAK,YAAY,IAAI,EAAM,YAAY,IAA6B,CAAjB,EAAW,GAAK,CAAC,EAAS,KAAK,CAAC,GAAG,CAAC,IAAM,EAAS,MAAM,EAAO,SAAS,IAAI,EAAM,KAAK,UAAU,EAAM,UAAU,CAAoH,OAAnH,EAAa,EAAS,WAAW,EAAE,CAAC,CAAI,EAAS,UAAU,EAAM,YAAY,IAAM,EAAY,EAAS,SAAS,CAAS,QAAgB,EAAI,CAAC,EAAS,gCAAgC,EAAI,QAAS,CAAC,EAAW,GAAM,IAIjqC,eAJ0rC,GAAO,CAAC,IAAI,EAAQ,EAAW,EAAO,EAAM,CAAI,IAAU,KAAI,EAAQ,EAAW,EAAO,IAAI,EAAE,EAAS,EAAQ,GAAG,EAI7xC,gBAAc,mBAAiB,WAAS,WAAS,cAAY,UAAQ,qBAAmB,iBAAe,oBAJmtC,MAAM,EAAS,EAAa,IAAU,CAAC,GAAG,EAAM,KAAK,YAAY,IAAI,EAAM,YAAY,GAAG,CAAC,EAAkB,EAAE,CAAC,CAAC,OAAQ,GAAG,CAAC,IAAM,EAAM,IAAI,KAAK,EAAM,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAiB,IAAI,KAAK,EAAM,CAAC,EAAiB,SAAS,EAAM,UAAU,CAAC,EAAE,CAAC,EAAiB,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAM,EAAO,CAAC,KAAK,EAAM,aAAa,CAAC,GAAG,EAAiB,aAAa,CAAC,CAAI,IAAoB,EAAO,YAAY,CAAC,EAAmB,EAAK,IAAU,EAAO,SAAS,GAAa,IAAc,EAAO,MAAM,GAAiB,IAAS,EAAO,QAAQ,GAAS,IAAM,EAAS,MAAM,EAAO,SAAS,SAAS,EAAM,KAAK,UAAU,EAAM,UAAU,EAAO,CAAO,EAAS,OAAO,OAAO,EAAS,MAAM,CAAC,MAAM,CAAiD,EAA9B,CAAC,GAAG,IAAI,IAAI,EAAS,CAAC,CAAC,MAAM,CAA+B,OAAQ,EAAI,CAAC,QAAQ,MAAM,kCAAkC,EAAI,CAAC,EAAkB,EAAE,CAAC,GAI3hE,qBAJya,GAAM,CAAC,EAAuB,CAAC,MAAM,EAAK,OAAU,GAAG,UAAU,EAAK,UAAa,SAAS,EAAK,SAAY,CAAC,CAAC,OAAO,EAAK,MAAS,OAAO,EAAK,UAAa,OAAO,EAAK,SAAY,EAAY,EAAK,EAI1lB,OAAK,QAJmhE,MAAM,EAAU,IAAU,CAA4B,GAA3B,EAAgB,EAAU,CAAI,CAAC,EAAU,MAAM,CAAC,CAAC,EAAuB,EAAoB,KAAK,CAAC,EAAkB,GAAG,CAAC,EAAqB,GAAG,CAAC,OACjgG,EAAuB,EAAoB,QAAQ,CAAC,GAAG,CACvD,IAAM,EAAI,CAAC,UAAU,EAAM,KAAK,UAAU,UAAU,EAAM,UAAU,WAAW,GAAc,YAAY,GAAG,UAAU,EAAa,IAAI,KAAK,EAAa,SAAS,UAAU,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,GAAS,CAAC,UAAQ,CAAC,CAAO,EAAS,MAAM,EAAO,MAAM,aAAa,EAAU,MAAM,CAAC,EAAI,CAAI,EAAS,UAAU,EAAuB,EAAoB,MAAM,CAAI,EAAS,UAAU,EAAS,WAAW,IAAI,EAAS,OAAO,EAAS,QAAQ,KAC/c,EAAkB,EAAS,SAAS,CAAC,EAAqB,EAAS,aAAa,GAAG,IAAQ,EAAuB,EAAoB,QAAQ,CAAC,EAAkB,GAAG,CAAC,EAAqB,GAAG,QAASE,EAAM,CAAC,QAAQ,MAAM,0BAA0BA,EAAM,CAAC,EAAuB,EAAoB,QAAQ,CAAC,EAAkB,GAAG,CAAC,EAAqB,GAAG,GAC4e,sBAAoB,iBAAe,oBAAkB,yBAA51B,GAAgB,IAAiB,GAAW,GAAa,EAAwzB,EAKv4B,GAAqB,CAAC,QAAM,QAAM,eAAa,mBAAiB,eAAa,oBAAkB,SAAO,cAAY,cAAY,qBAAmB,aAAW,CAAC,IAAM,EAAcC,EAAO,KAAK,CAAO,EAAkB,CAAC,EAAM,YAAY,EAAM,sBAAsB,EAAE,EAAM,YAAY,EAAM,eAAe,OAAO,CAAC,EAAM,WAAW,EAAM,eAAqB,EAAQA,GAAQ,CAAO,EAAe,CAAC,OAAO,OAAO,MAAM,OAAO,eAAe,SAAS,WAAW,SAAS,SAAS,SAAS,CAAO,EAAY,IAAa,CAAC,GAAG,EAAU,WAAW,EAAM,aAAa,GAAoB,KAAjB,EAAM,WAAgB,MAAM,OAAO,OAAO,SAAS,OAAO,OAAO,QAAQ,EAAa,GAAG,EAAM,KAAK,CAAC,gBAAgB,EAAM,OAAO,QAAQ,MAAM,EAAM,OAAO,UAAU,SAAS,EAAa,GAAG,EAAM,KAAK,CAAC,aAAa,EAAM,OAAO,aAAa,QAAQ,GAAY,EAAM,UAAU,GAAG,EAAE,OAAO,EAAM,UAAU,cAAc,UAAU,EAAwJ,OAAoB,EAAM,MAAM,CAAC,MAAM,EAAe,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS;;;;;kBAKnnC,CAAC,CAAC,IAAc,EAAe,EAAKC,EAAS,CAAC,IAAI,EAAQ,KAAK,EAAM,KAAK,gBAAgB,EAAM,gBAAgB,aAAa,EAAM,aAAa,eAAe,EAAM,eAAe,QAAQ,EAAM,OAAO,QAAQ,OAAO,EAAM,OAAO,OAAO,aAAa,EAAM,OAAO,aAAa,cAAc,EAAM,aAAa,YAAY,EAAM,KAAK,QAAQ,iBAAiB,EAAM,KAAK,aAAa,QAAQ,CAAC,EAAM,UAAU,aAAa,EAAM,qBAAqB,MAAM,EAAM,MAAM,OAAO,EAAM,WAAW,OAAO,WAAW,EAAM,WAAW,MAAM,EAAM,UAAU,EAAM,eAAe,MAAM,EAAM,WAAW,UAAU,SAAS,EAAM,UAAU,EAAM,eAAe,SAAS,EAAM,WAAW,aAAa,UAAU,EAAM,eAAe,UAAU,SAAS,EAAM,eAAe,SAAS,MAAM,EAAM,eAAe,MAAa,SAAO,iBAAiB,EAAM,UAAU,eAAe,EAAM,eAAe,sBAAsB,EAAM,aAAa,CAAC,CAAc,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAKC,EAAW,CAAC,IAAI,EAAc,KAAK,EAAM,KAAK,QAAQ,EAAM,OAAO,QAAQ,cAAc,GAAK,QAAQ,EAAM,aAA0B,eAAa,OAAO,EAAM,OAAO,OAAO,aAAa,EAAM,OAAO,aAAa,gBAAgB,EAAM,gBAAgB,YAAY,EAAM,KAAK,QAAQ,gBAAgB,EAAM,KAAK,YAAY,cAAc,EAAM,aAAa,uBAAuB,EAAM,eAAe,sBAAsB,EAAM,KAAK,kBAAkB,+BAA+B,EAAM,KAAK,2BAA2B,iBAAiB,EAAM,KAAK,aAAa,WAAW,EAAM,WAAW,MAAM,EAAM,aAAa,OAAO,EAAM,OAAO,SAAS,EAAM,YAAY,KAAK,EAAE,SAAS,EAAM,YAAY,KAAK,EAAE,eAAe,EAAM,eAAe,CAAC,CAAC,EAAmB,EAAM,eAAe,SAAsB,EAAMD,EAAU,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAa,EAAM,OAAO,IAAI,EAAM,KAAK,CAAC,CAAC,CAAC,CAAc,EAAKE,EAAe,CAAC,KAAK,EAAM,KAAK,QAAQ,EAAM,OAAO,QAAQ,MAAM,EAAM,eAAe,mBAAmB,gBAAgB,EAAM,gBAAgB,OAAO,EAAM,OAAO,OAAO,aAAa,EAAM,OAAO,aAAa,YAAY,EAAM,KAAK,QAAQ,gBAAgB,EAAM,KAAK,YAAY,uBAAuB,EAAM,eAAe,cAAc,EAAM,aAAa,iBAAiB,EAAM,KAAK,aAAa,sBAAsB,EAAM,KAAK,kBAAkB,gBAAgB,EAAM,eAAe,gBAAgB,WAAW,EAAM,WAAW,UAAU,EAAM,UAAU,mBAAmB,EAAM,mBAAoC,mBAAiB,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAa,EAAM,OAAO,IAAI,EAAM,KAAK,CAAC,CAAC,CAAC,CAAc,EAAKC,EAAW,CAAC,KAAK,EAAM,KAAK,QAAQ,EAAM,OAAO,QAAQ,UAAU,EAAM,QAAQ,gBAAgB,EAAM,gBAAgB,OAAO,EAAM,OAAO,OAAO,aAAa,EAAM,OAAO,aAAa,YAAY,EAAM,KAAK,QAAQ,gBAAgB,EAAM,KAAK,YAAY,cAAc,EAAM,aAAa,uBAAuB,EAAM,eAAe,sBAAsB,EAAM,KAAK,kBAAkB,+BAA+B,EAAM,KAAK,2BAA2B,iBAAiB,EAAM,KAAK,aAAa,WAAW,EAAM,WAAW,OAAO,EAAM,OAAO,MAAM,EAAM,UAAU,SAAS,EAAM,SAAS,YAAY,EAAM,MAAM,QAAqB,eAAa,YAAY,EAAM,aAAa,CAAC,UAAU,GAAK,kBAAkB,GAAK,kBAAkB,GAAK,CAAC,eAAe,EAAM,eAAe,aAAa,EAAM,aAAa,aAAa,GAAS,CAC56G,EAAc,SAAS,aAAa,EAAQ,CAC5C,EAAa,EAAQ,EAAG,CAAC,CAAC,EAAM,WAAW,EAAM,UAAU,SAAS,EAAM,cAA2B,EAAMH,EAAU,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAa,EAAM,OAAO,IAAI,EAAM,KAAK,CAAC,CAAC,CAAC,CAAc,EAAKI,EAAU,CAAC,KAAK,EAAM,KAAK,gBAAgB,EAAM,gBAAgB,OAAO,EAAM,OAAO,OAAO,aAAa,EAAM,OAAO,aAAa,QAAQ,EAAM,OAAO,QAAQ,YAAY,EAAM,KAAK,QAAQ,cAAc,EAAM,aAAa,uBAAuB,EAAM,eAAe,iBAAiB,EAAM,KAAK,aAAa,WAAW,EAAM,WAAW,KAAK,EAAM,KAAK,oBAAoB,EAAM,oBAAoB,aAAa,GAAW,EAAM,QAAQ,EAAU,EAAQ,CAAC,WAAW,EAAM,UAAU,WAAW,iBAAiB,EAAM,UAAU,iBAAiB,WAAW,EAAM,UAAU,WAAW,cAAc,EAAM,UAAU,cAAc,QAAQ,EAAM,UAAU,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAM,WAAwB,EAAMJ,EAAU,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAa,EAAM,OAAO,IAAI,EAAM,KAAK,CAAC,CAAC,CAAC,CAAc,EAAKK,EAAY,CAAC,QAAQ,EAAM,OAAO,QAAQ,KAAK,EAAM,KAAK,aAAa,EAAM,OAAO,aAAa,gBAAgB,EAAM,gBAAgB,YAAY,EAAM,KAAK,QAAQ,gBAAgB,EAAM,KAAK,YAAY,cAAc,EAAM,aAAa,uBAAuB,EAAM,eAAe,WAAW,EAAM,WAAW,KAAK,EAAM,MAAM,KAAK,gBAAgB,EAAM,MAAM,gBAAgB,UAAU,EAAM,MAAM,UAAU,SAAS,EAAM,cAAc,eAAe,EAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAa,EAAM,OAAO,IAAI,EAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAM,sBAAsB,EAAE,EAAM,UAAuB,EAAM,SAAS,CAAC,MAAM,EAAY,CAAC,EAAkB,CAAC,SAAS,CAAC,EAAkB,YAPh0B,CAAI,IAAc,GAAuD,CAAnC,EAAQ,SAAS,cAAc,EAAiB,SAAkB,GAAmB,EAO2tB,SAAS,CAAC,GAAa,CAAC,EAAM,WAAwB,EAAK,MAAM,CAAC,MAAM,EAAa,EAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,SAAS,CAAC,MAAM,EAAY,GAAM,CAAC,YAAY,CAAC,EAAO,SAAS,KAAK,UAAW,SAAS,EAAM,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,EAC3+D,EAAqB,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,aAAa,KAAK,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,aAAa,CAAC,QAAQ,SAAS,QAAQ,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAY,MAAM,MAAM,YAAY,aAAa,OAAO,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,UAAU,CAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAY,MAAM,MAAM,mBAAmB,aAAa,QAAQ,CAAC,2BAA2B,CAAC,KAAK,EAAY,MAAM,MAAM,qBAAqB,aAAa,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAY,aAAa,MAAM,gBAAgB,aAAa,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,OAAO,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,UAAU,CAAC,CAAC,aAAa,CAAC,KAAK,EAAY,aAAa,MAAM,gBAAgB,aAAa,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAY,aAAa,MAAM,gBAAgB,aAAa,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,SAAS,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,GAAK,CAAC,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAK,CAAC,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,IAAQ,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,6BAA6B,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,aAAa,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,YAAY,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,oBAAoB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAK,CAAC,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,aAAa,kBAAkB,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAM,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,aAAa,OAAO,GAAO,EAAM,UAAU,GAAM,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,oBAAoB,aAAa,YAAY,OAAO,GAAO,EAAM,UAAU,GAAM,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,yBAAyB,OAAO,GAAO,EAAM,UAAU,GAAM,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,aAAa,4BAA4B,OAAO,GAAO,EAAM,UAAU,GAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,GAAK,CAAC,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,GAAK,CAAC,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,GAAK,CAAC,CAAC,CAAC,GAAG,EAA4B,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,aAAa,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,aAAa,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,aAAa,kDAAkD,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,WAAW,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,eAAe,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,uBAAuB,CAAC,CAAC,CAAC,GAAG,EAA2B,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,aAAa,KAAK,QAAQ,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,OAAO,GAAO,EAAM,MAAM,cAAc,MAAM,aAAa,GAAK,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,GAAG,YAAY,6DAA6D,CAAC,CACplK,GAAuB,EAAa,EAAmB,IAAgB,CAAC,IAAM,EAAqB,CAAC,GAAG,EAAa,CAEzF,OAF6F,IAAgB,SACrJ,OAAO,EAAqB,OAC5B,OAAO,EAAqB,YAAkB,CAAC,GAAG,EAAqB,GAAG,EAC1E,MAAM,EAAmB,MAAM,CAAC,GAAG,EAAa,MAAM,SAAS,CAAC,GAAG,EAAa,MAAM,SAAS,GAAG,EAAmB,MAAM,SAAS,CAAC,CAAC,EAAa,MAAM,KC3Bo/F,SAAwB,EAAqB,EAAM,CAAC,OAAoB,EAAK,EAAY,CAAC,MAAM,EAAM,MAAM,KAAK,EAAM,KAAK,gBAAgB,EAAM,gBAAgB,aAAa,EAAM,aAAa,OAAO,EAAM,OAAO,YAAY,EAAM,YAAY,gBAAgB,EAAM,gBAAgB,iBAAiB,EAAM,iBAAiB,cAAc,EAAM,cAAc,UAAU,EAAM,UAAU,gBAAgB,EAAM,gBAAgB,gBAAgB,EAAM,gBAAgB,qBAAqB,EAAM,qBAAqB,WAAW,EAAM,WAAW,uBAAuB,EAAM,uBAAuB,QAAQ,EAAM,QAAQ,CAAC,qBAArrH,IAA4B,IAAgC,IAAqC,IAA6G,CAAM,GAAa,CAAC,QAAM,OAAK,kBAAgB,eAAa,UAAQ,SAAO,cAAY,kBAAgB,gBAAc,yBAAuB,mBAAiB,aAAW,YAAU,GAAM,kBAAgB,EAAE,kBAAgB,GAAG,0BAAwB,CAAC,GAAK,CAAC,EAAa,GAAiBC,EAAS,EAAgB,CAAOC,GAAc,EAAS,IAAuD,GAAG,EAA7B,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAkCC,GAAM,IAAY,EAAyB,GAAW,CAAC,IAAM,EAAS,EAAU,EAAa,EAAE,EAAa,EAAK,GAAU,GAAiB,GAAU,IAAiB,EAAgB,EAAS,CAAC,IAAuB,EAAS,GAAU,EAAe,CAAC,MAAM,OAAe,UAAwB,kBAA6B,eAAa,YAAY,EAAO,YAAY,YAAY,EAAO,YAAY,YAAY,EAAO,YAAY,CAAO,EAAa,CAAC,QAAQ,OAAO,cAAc,MAAM,WAAW,SAAS,IAAID,EAAa,GAAG,EAAK,CAAE,4BAA6B,CAAC,cAAc,SAAS,WAAW,aAAa,CAAC,CAAO,EAAW,CAAC,GAAG,EAAM,WAAW,IAAa,GAAc,KAAX,EAAgB,SAASA,EAAa,GAAG,EAAK,CAAC,MAAM,EAAuB,KAAK,IAAK,4BAA6B,CAAC,aAAaA,EAAa,EAAE,EAAK,CAAC,CAAC,CAAO,EAAuB,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAIA,EAAa,EAAE,EAAK,CAAC,gBAAgB,EAAY,QAAQA,EAAa,EAAE,EAAK,CAAC,aAAa,EAAiB,OAAO,OAAO,CAAO,EAAY,IAAU,CAAC,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,QAAQA,EAAa,EAAE,EAAK,CAAC,gBAAgB,cAAc,OAAO,OAAO,aAAaA,EAAa,EAAE,EAAK,CAAC,OAAO,EAAQ,UAAU,cAAc,QAAQ,EAAQ,EAAE,GAAG,MAAM,EAAc,WAAW,gBAAgB,UAAU,EAAQ,CAAC,gBAAgB,EAAgB,MAAM,UAAU,CAAC,EAAE,CAAC,EAAQ,EAAyB,CAAC,QAAQ,GAAGA,EAAa,EAAE,EAAK,CAAC,GAAGA,EAAa,EAAE,EAAK,GAAG,SAASA,EAAa,GAAG,EAAK,CAAC,WAAW,MAAM,MAAM,EAAc,SAASA,EAAa,GAAG,EAAK,CAAC,UAAU,SAAS,CAAC,GAAG,EAAW,OAAO,KAAM,IAAM,EAAa,EAAa,EAAsB,EAAa,EAAa,EAAgB,OAAoB,EAAK,MAAM,CAAC,MAAM,EAAe,SAAsB,EAAM,MAAM,CAAC,MAAM,EAAa,UAAU,uBAAuB,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAW,UAAU,qBAAqB,SAAS,EAAM,CAAC,CAAc,EAAM,MAAM,CAAC,MAAM,EAAuB,SAAS,CAAc,EAAK,SAAS,CAAC,YAAY,EAAyB,GAAM,CAAC,MAAM,EAAY,EAAa,CAAC,SAAS,CAAC,EAAa,aAAa,wBAAwB,SAAsB,EAAKE,EAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,EAAyB,SAAS,EAAa,CAAC,CAAc,EAAK,SAAS,CAAC,YAAY,EAAyB,GAAK,CAAC,MAAM,EAAY,EAAa,CAAC,SAAS,CAAC,EAAa,aAAa,wBAAwB,SAAsB,EAAKC,EAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAsmB,EAAqB,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,aAAa,KAAK,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,aAAa,CAAC,QAAQ,SAAS,QAAQ,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,UAAU,CAAC,CAAC,aAAa,CAAC,KAAK,EAAY,aAAa,MAAM,gBAAgB,aAAa,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,sBAAsB,aAAa,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,qBAAqB,aAAa,UAAU,CAAC,cAAc,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,aAAa,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAY,MAAM,MAAM,qBAAqB,aAAa,UAAU,CAAC,ICAvlI,SAAS,GAAkB,EAAM,CAAC,IAAM,EAAU,EAAc,EAAM,CAAM,CAAC,EAAY,GAAgBC,EAAS,EAAkB,KAAK,CAAM,CAAC,EAAoB,GAAwBA,EAAS,EAAM,aAAa,IAAI,CAAM,CAAC,EAAe,GAAmBA,EAAS,KAAK,CAAO,EAAa,KAAM,IAAM,CAAC,GAAG,EAAM,KAAK,YAAY,IAAI,EAAM,YAAY,GAAI,OAAQ,EAAU,gBAAgB,EAAK,CAAC,EAAU,WAAW,GAAK,CAAC,EAAU,SAAS,KAAK,CAAC,EAAU,gBAAgB,KAAK,CAAC,IAAM,EAAc,IAAI,KAAK,EAAK,SAAS,EAAE,EAAE,EAAE,CAAC,CAAO,EAAY,IAAI,KAAK,EAAc,CAAgD,GAA/C,EAAY,QAAQ,EAAc,SAAS,CAAC,EAAE,CAAI,EAAM,YAAY,GAAK,CAAC,IAAM,EAAc,EAAkB,EAAU,SAAS,EAAK,CAAC,EAAc,QAAQ,EAAc,SAAS,CAAC,EAAc,GAAG,IAAI,CAAC,EAAY,QAAQ,EAAY,SAAS,CAAC,EAAc,GAAG,IAAI,CAAE,GAAG,CAAoQ,IAAM,EAAM,EAAhQ,MAAM,EAAU,OAAO,SAAS,SAAS,EAAM,KAAK,UAAU,EAAM,UAAU,CAAC,KAAK,EAAc,aAAa,CAAC,GAAG,EAAY,aAAa,CAAC,YAAY,EAAU,mBAAmB,CAAC,EAAU,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAoB,CAAC,CAAkC,CAAC,EAAU,aAAa,EAAM,OAAQ,EAAI,CAAC,EAAU,SAAS,yBAAyB,EAAI,QAAS,CAAC,EAAU,WAAW,GAAM,GAAU,EAAY,SAAS,CAAI,KAAU,eAAe,KAA2C,CAA7B,EAAU,aAAa,GAAK,CAAC,EAAU,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,EAAK,CAAC,UAAU,EAAM,KAAK,UAAU,UAAU,EAAM,UAAU,WAAW,EAAU,aAAa,WAAW,MAAM,EAAoB,UAAU,IAAI,KAAK,EAAU,aAAa,SAAS,UAAU,CAAC,aAAa,CAAC,CAAI,OAAO,KAAK,EAAU,SAAS,CAAC,OAAO,IAAG,EAAK,SAAS,EAAU,UAAa,EAAM,YAAc,EAAU,gBAAgB,EAAU,iBAAiB,GACt8E,EAAK,OAAO,CAAC,SAAS,EAAU,eAAe,MAAM,EAAU,kBAAkB,CACjF,EAAK,OAAO,EAAU,YAAgB,EAAU,MAAM,EAAU,sBAAsB,EAAoB,QAAO,EAAK,KAAK,EAAU,MAAM,IAAM,EAAS,MAAM,EAAU,OAAO,SAAS,QAAQ,EAAK,CAAI,EAAS,YAAY,EAAS,WAAW,OAAO,EAAG,EAAO,SAAS,KAAK,EAAS,WAAoB,EAAS,SAAS,YAAa,EAAe,EAAkB,QAAQ,CAAU,EAAS,SAAS,WAAW,EAAe,EAAkB,QAAQ,OAAS,EAAI,CAAC,EAAU,SAAS,8BAA8B,EAAI,QAAS,CAAC,EAAU,aAAa,GAAM,IAAU,MAAsB,CAAC,GAAG,IAAc,EAAkB,KAA+I,OAAtI,EAAM,WAAW,QAAQ,OAAO,GAAG,EAAM,WAAW,CAAC,EAAU,sBAAsB,CAAS,EAAe,EAAkB,KAAK,CAAS,GAAa,CAAE,GAAG,IAAc,EAAkB,KAAM,OAAO,GAAa,EAAU,MAA0B,CAAC,GAAG,IAAc,EAAkB,KAAK,CAAC,EAAe,EAAkB,KAAK,CAAC,SAAgB,MAAoB,EAAM,WAAW,OAAO,OAAO,EAAU,GAAa,EAAM,WAAW,CAAC,EAAU,sBAAsB,CAAisB,OAA9rB,MAAc,CAAC,EAAa,EAAU,aAAa,EAAG,CAAC,EAAU,aAAa,EAAU,mBAAmB,EAAoB,CAAC,CAAC,MAAc,CAAI,IAAc,EAAkB,QAAS,EAAU,eAAe,EAAM,OAAO,UAAU,CAAU,IAAc,EAAkB,SAAS,EAAU,eAAe,EAAM,OAAO,QAAQ,EAAI,CAAC,EAAY,CAAC,CAAC,MAAc,EAAmB,SAAS,CAAgD,EAAjC,MAAM,EAAU,gBAAgB,CAA2B,IAAgB,EAAG,EAAE,CAAC,CAAC,MAAc,CAAC,EAAU,oBAAoB,IAAA,GAAU,EAAoB,EAAG,CAAC,EAAU,mBAAmB,EAAoB,CAAC,CAAI,IAAiB,MAAM,EAAU,QAA6B,EAAK,MAAM,EAAE,CAAC,CAAsB,EAAK,EAAoB,CAAO,QAAM,MAAM,EAAU,aAAa,GAAM,EAAU,gBAAgB,EAAK,CAAC,iBAAiB,GAAU,EAAU,sBAAsB,EAAS,EAAS,GAAG,KAAK,CAAc,eAA+B,oBAAkB,WAAW,GAAuB,CAAa,cAAY,gBAAoB,GAAa,EAAE,IAAc,EAAkB,MAAM,IAAc,EAAkB,WAAmB,EAAM,MAAM,SAAiB,EAAM,MAAM,YAAc,mBAAgC,EAAM,MAAM,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAa,EAAM,OAAO,IAAI,EAAM,KAAK,CAAC,CAAC,CAAC,CAAc,EAAKC,EAAY,CAAC,KAAK,EAAM,KAAK,MAAM,EAAM,MAAM,iBAAiB,gBAAgB,EAAM,gBAAgB,OAAO,EAAM,OAAO,OAAO,aAAa,EAAM,OAAO,aAAa,YAAY,EAAM,KAAK,QAAQ,gBAAgB,EAAM,KAAK,YAAY,cAAc,EAAM,aAAa,iBAAiB,EAAM,KAAK,aAAa,gBAAgB,EAAM,aAAa,IAAI,gBAAgB,EAAM,aAAa,IAAI,qBAAqB,EAAuB,WAAW,EAAM,WAAW,uBAAuB,EAAM,eAAe,QAAQ,EAAM,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAF35F,KAA+N,IAAsC,IAAgC,IAAqI,KAAwH,IAA8H,CAE6vE,GAAkB,iBAAiB,EAAsB,EAAqB,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,SAAS,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAY,KAAK,MAAM,gBAAgB,aAAa,IAAA,GAAU,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,yBAAyB,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAgB"}