@vanira/sdk 0.0.82 → 0.0.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,17 +1,17 @@
1
- var zf=Object.defineProperty;var Jf=(HA,gA,de)=>gA in HA?zf(HA,gA,{enumerable:!0,configurable:!0,writable:!0,value:de}):HA[gA]=de;var p=(HA,gA,de)=>Jf(HA,typeof gA!="symbol"?gA+"":gA,de);(function(){"use strict";var HA=typeof document<"u"?document.currentScript:null;const gA="https://api.vanira.io";class de{static async fetchWidgetConfig(A,e){var r;const t={"Content-Type":"application/json"};e&&(t["X-API-Key"]=e);try{const s=await fetch(`${gA}/assistant/widget/${A}/config`,{method:"GET",headers:t});if(!s.ok)throw new Error(`Widget config fetch failed: HTTP ${s.status}`);const i=await s.json();return(r=i.agent)!=null&&r.client&&(i.client=i.agent.client),i}catch(s){throw s}}}let ke="https://inboxapi.vanira.io";const Na="https://coredb.travelr.club/v1/graphql";class KA{static setChatUrl(A){ke=A}static async createChatProspect(A){var t,r;const e=`
1
+ var Aw=Object.defineProperty;var ew=(HA,gA,de)=>gA in HA?Aw(HA,gA,{enumerable:!0,configurable:!0,writable:!0,value:de}):HA[gA]=de;var p=(HA,gA,de)=>ew(HA,typeof gA!="symbol"?gA+"":gA,de);(function(){"use strict";var HA=typeof document<"u"?document.currentScript:null;const gA="https://api.vanira.io";class de{static async fetchWidgetConfig(A,e){var r;const t={"Content-Type":"application/json"};e&&(t["X-API-Key"]=e);try{const s=await fetch(`${gA}/assistant/widget/${A}/config`,{method:"GET",headers:t});if(!s.ok)throw new Error(`Widget config fetch failed: HTTP ${s.status}`);const i=await s.json();return(r=i.agent)!=null&&r.client&&(i.client=i.agent.client),i}catch(s){throw s}}}let ke="https://inboxapi.vanira.io";const Ja="https://coredb.travelr.club/v1/graphql";class KA{static setChatUrl(A){ke=A}static async createChatProspect(A){var t,r;const e=`
2
2
  mutation CreateChatProspect($prospectGroupId: uuid!, $name: String!) {
3
3
  insert_prospects_one(object: {prospect_group_id: $prospectGroupId, name: $name, source: WEBSITE_WIDGET}) {
4
4
  id
5
5
  }
6
6
  }
7
- `;try{const i=await(await fetch(Na,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,variables:{prospectGroupId:A,name:`Widget Guest ${new Date().toLocaleString()}`}})})).json();return i.errors?`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`:((r=(t=i.data)==null?void 0:t.insert_prospects_one)==null?void 0:r.id)||`anon_${Date.now()}`}catch{return`anon_${Date.now()}`}}static async fetchWelcomeMessage(A,e,t,r){try{const s={"Content-Type":"application/json"},i=await fetch(`${ke}/widget/chat`,{method:"POST",headers:s,body:JSON.stringify({agent_id:A,...t?{widget_id:t}:{},message:"",prospect_id:e,stream:!1})});if(!i.ok)throw new Error("Failed to fetch welcome message");const o=await i.json();let a=o.response||"Hey! how can I help you ?",l;const c=o.chat_id||o.inbox_id,d=o.conversation_id||null;return o.widget&&(l=o.widget),{role:"assistant",content:a,widget:l,chatId:c,conversationId:d}}catch{return{role:"assistant",content:"Hey! how can I help you ?"}}}static async sendChatMessage(A,e,t,r,s,i,o,a,l){var c,d,h,u;try{const g={"Content-Type":"application/json"},B={agent_id:A,message:t,prospect_id:e,stream:!0};r&&(B.inbox_id=r),a&&(B.widget_id=a);const f=await fetch(`${ke}/widget/chat`,{method:"POST",headers:g,body:JSON.stringify(B)});if(!f.ok)throw new Error("Chat request failed");const m=(c=f.body)==null?void 0:c.getReader(),w=new TextDecoder;if(!m)throw new Error("No reader");let v="",C="",y=null,Q=null;for(;;){const{done:x,value:F}=await m.read();if(x)break;C+=w.decode(F,{stream:!0});const I=C.split(`
8
- `);C=I.pop()||"";for(const L of I){const O=L.trim();if(O&&O.startsWith("data: ")){const K=O.slice(6);if(K==="[DONE]"){o(y,Q);return}try{const M=JSON.parse(K);if(M.type==="metadata"){(M.chat_id||M.inbox_id)&&(y=M.chat_id||M.inbox_id),M.conversation_id&&(Q=M.conversation_id);continue}const Z=(u=(h=(d=M.choices)==null?void 0:d[0])==null?void 0:h.delta)==null?void 0:u.content;Z&&(v+=Z,s(v)),M.widget&&i(M.widget),M.chat_id&&!y&&(y=M.chat_id),M.conversation_id&&!Q&&(Q=M.conversation_id)}catch{}}}}o(y,Q)}catch{s("Sorry, I encountered an error. Please try again."),o(null,null)}}static listenForAdminReplies(A,e,t){const r=`${ke}/inbox/stream?inbox_id=${A}&sender=${encodeURIComponent(e)}`;let s=null,i=0,o=!1;const a=()=>{o||(s=new EventSource(r),s.onopen=()=>{i=0},s.onmessage=l=>{try{const c=JSON.parse(l.data),d=c.direction==="outgoing",h=!!c.content,u=c.source!=="ai";d&&h&&u&&t(c.content)}catch{}},s.onerror=l=>{if(s&&(s.close(),s=null),o)return;const c=Math.min(2e3*Math.pow(2,i),3e4);i++,setTimeout(a,c)})};return a(),{close:()=>{o=!0,s&&(s.close(),s=null)}}}static async createCall(A,e,t,r,s){try{const i={"Content-Type":"application/json"};s&&(i["X-API-Key"]=s);const o=await fetch(`${gA}/calls/create`,{method:"POST",headers:i,body:JSON.stringify({agent_id:A,prospect_id:t||void 0,type:"web"})}),a=await o.json();if(!o.ok)throw new Error(`[VaniraAI] Call creation failed HTTP ${o.status}`);if(!a.worker_url)throw new Error("[VaniraAI] Worker URL missing from response. Call cannot proceed.");return{callId:a.call_id||a.id||`web_${Date.now()}`,workerUrl:a.worker_url}}catch(i){throw i}}static async resolveConversation(A){try{if(!(await fetch(`${ke}/inbox/conversations/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation_id:A})})).ok)throw new Error("Failed to resolve conversation")}catch(e){throw e}}}class Oa{constructor(A){p(this,"config");p(this,"root",null);this.config=A}async initialize(A,e){this.config=A}isCallActive(){return!1}updateContext(A){return!1}triggerInterrupt(A,e){return!1}sendToolResult(A,e){return!1}}const b={Form:"vanira_form",Calendar:"vanira_calendar",Navigate:"vanira_navigate",Upload:"vanira_upload",Camera:"vanira_camera",HighlightElement:"vanira_highlight_element",ClickElement:"vanira_click_element",SelectOption:"vanira_select_option",SetDate:"vanira_set_date",TypeText:"vanira_type_text",EraseText:"vanira_erase_text",Draw:"vanira_draw",EraseDraw:"vanira_erase_draw",LiveVision:"vanira_live_vision",CloseLiveCamera:"vanira_close_live_camera",LiveScreen:"vanira_live_screen",CloseLiveScreen:"vanira_close_live_screen",ClipRegion:"vanira_clip_region",TabScreenshot:"vanira_tab_screenshot",ScreenInk:"vanira_screen_ink",ScreenCursor:"vanira_screen_cursor",ScreenClick:"vanira_screen_click",ClearScreenOverlay:"vanira_clear_screen_overlay",PageScan:"vanira_page_scan",PointAt:"vanira_point_at",OutlineTargets:"vanira_outline_targets",ClearGuide:"vanira_clear_guide"},Ra=Object.values(b),Ga=new Set(Ra),Va=new Set([b.Camera,b.LiveVision,b.LiveScreen]),_a=new Set([b.TypeText,b.EraseText,b.Draw,b.EraseDraw]);function LA(n){return!!n&&Ga.has(n)}function as(n){return LA(n)&&_a.has(n)}function Tn(n){return LA(n)&&Va.has(n)}const Ya=new Set([b.Form,b.Calendar]);function Mn(n){return LA(n)&&Ya.has(n)}function ls(n,A,e){return e!=null&&e.action_name?String(e.action_name):n===b.Calendar?"calendar_slot_selected":`user_submitted_${A||"collect_user_data"}`}function cs(n){return LA(n)&&!Tn(n)&&!Mn(n)}const ds=new Set([b.ScreenInk,b.ScreenCursor,b.ScreenClick,b.ClearScreenOverlay,b.PointAt,b.OutlineTargets,b.ClearGuide]),za=new Set([...ds,b.PageScan,b.TabScreenshot]);function Ja(n){return LA(n)&&ds.has(n)}function Xa(n){return LA(n)&&za.has(n)}function hs(n){if(typeof n=="string")try{return JSON.parse(n)}catch{return{}}return n&&typeof n=="object"?n:{}}const us={type_on_whiteboard:b.TypeText,write_on_whiteboard:b.TypeText,write_on_white_board:b.TypeText,dom_typing_simulation:b.TypeText,erase_text:b.EraseText,dom_erase:b.EraseText,draw_on_board:b.Draw,erase_drawing_board:b.EraseDraw,open_live_camera:b.LiveVision,live_vision:b.LiveVision,close_live_camera:b.CloseLiveCamera,stop_live_camera:b.CloseLiveCamera,open_live_screen:b.LiveScreen,close_live_screen:b.CloseLiveScreen,screen_ink:b.ScreenInk,screen_cursor:b.ScreenCursor,screen_click:b.ScreenClick,clear_screen_overlay:b.ClearScreenOverlay,tab_screenshot:b.TabScreenshot,capture_tab:b.TabScreenshot,capture_tab_screenshot:b.TabScreenshot,screenshot_tab:b.TabScreenshot,page_scan:b.PageScan,scan_page:b.PageScan,point_at:b.PointAt,outline_targets:b.OutlineTargets,outline_elements:b.OutlineTargets,clear_guide:b.ClearGuide};function gs(n,A){const e=n.text_to_type??(A==null?void 0:A.text_to_type)??n.text??(A==null?void 0:A.text)??n.value??(A==null?void 0:A.value);return typeof e=="string"&&e.trim().length>0}function Wa(n,A){const e=n.fields??(A==null?void 0:A.fields);return Array.isArray(e)?e.length>0:typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean).length>0:!1}function ja(n,A){const e=n==null?void 0:n.preset_id;if(typeof e=="string"&&LA(e))return e;const r=hs(A).preset_id;if(typeof r=="string"&&LA(r))return r}function pt(n,A,e){const t=hs(A);let r=ja(n,t);if(r===b.Form&&gs(t,n)&&!Wa(t,n))return b.TypeText;if(r)return r;const s=String(e??"").trim().toLowerCase();if(s&&us[s])return us[s];if(gs(t,n))return b.TypeText}const Bt="vanira_latest_call_id",kn="vanira_prospect_id";function ft(n){return`vanira_latest_call_id_${n}`}function wt(n){return`vanira_prospect_id_${n}`}function ps(n){return`vanira_call_meta_${n}`}function NA(n,A){if(!n)return null;try{return n.getItem(A)}catch{return null}}function mt(n){if(typeof window>"u"||!n)return null;const A=[],e=NA(window.localStorage,ps(n));if(e)try{const o=JSON.parse(e);o!=null&&o.callId&&A.push({callId:o.callId,prospectId:o.prospectId,updatedAt:o.updatedAt||0})}catch{}const t=(o,a,l)=>{o&&A.push({callId:o,prospectId:a||void 0,updatedAt:l})},r=NA(window.localStorage,wt(n)),s=NA(window.sessionStorage,wt(n)),i=NA(window.localStorage,kn);return t(NA(window.localStorage,ft(n)),r||i,2),t(NA(window.sessionStorage,ft(n)),s||i,1),t(NA(window.localStorage,Bt),i,0),t(NA(window.sessionStorage,Bt),i,0),A.length?(A.sort((o,a)=>a.updatedAt-o.updatedAt),A[0]):null}function Bs(n,A,e){var r,s,i,o,a,l,c,d,h;if(typeof window>"u"||!n||!A)return;const t={callId:A,prospectId:e,updatedAt:Date.now()};try{(r=window.localStorage)==null||r.setItem(ps(n),JSON.stringify(t)),(s=window.localStorage)==null||s.setItem(ft(n),A),(i=window.sessionStorage)==null||i.setItem(ft(n),A),e&&((o=window.localStorage)==null||o.setItem(wt(n),e),(a=window.sessionStorage)==null||a.setItem(wt(n),e)),(l=window.localStorage)==null||l.setItem(Bt,A),(c=window.sessionStorage)==null||c.setItem(Bt,A),e&&((d=window.localStorage)==null||d.setItem(kn,e),(h=window.sessionStorage)==null||h.setItem(kn,e))}catch{}}function fs(n){var A;return!!((A=mt(n))!=null&&A.callId)}const Za=new Set(["client_tool_call","clearAudio","client_tool_cancel"]);function qa(n){if(!n||typeof n!="object")return!1;const A=n.event;return typeof A=="string"&&Za.has(A)}const Dn=16*1024,$a=256*1024;function Pn(n,A){return(n==null?void 0:n.readyState)==="open"&&(A==null?void 0:A.readyState)==="open"}function Al(n,A){return{control:(n==null?void 0:n.readyState)??"missing",mediaBytes:(A==null?void 0:A.readyState)??"missing"}}async function el(n,A,e=8e3){if(Pn(n,A))return!0;const t=Date.now()+e;for(;Date.now()<t;){if(Pn(n,A))return!0;await new Promise(r=>setTimeout(r,50))}return Pn(n,A)}async function ws(n){for(;n.bufferedAmount>$a;)await new Promise(A=>setTimeout(A,10))}async function tl(n){const{bytes:A,filename:e,contentType:t,reason:r,message:s,callId:i,mediaBytesChannel:o,sendControlEvent:a,uploadId:l=crypto.randomUUID(),uploadKind:c="media"}=n,d=A.byteLength,h=d===0?0:Math.ceil(d/Dn);a("client_media_upload_start",{data:{upload_id:l,call_id:i,reason:r,message:s,filename:e,content_type:t,size:d,chunk_count:h,upload_kind:c}});const u=new Uint8Array(A);for(let g=0;g<d;g+=Dn){await ws(o);const B=Math.min(g+Dn,d);o.send(u.subarray(g,B))}return await ws(o),a("client_media_upload_complete",{data:{upload_id:l,call_id:i,reason:r,message:s,chunk_count:h,upload_kind:c}}),{media_id:l,url:"",content_type:t}}async function nl(n){return typeof n.arrayBuffer=="function"?n.arrayBuffer():new Response(n).arrayBuffer()}let qA=null;const rl=4e3;function ms(n){if(typeof window>"u")return n||"/";const A=(n||"/").trim();if(!A)return"/";try{const e=new URL(A,window.location.origin);return e.origin!==window.location.origin?A:`${e.pathname}${e.search}${e.hash}`||"/"}catch{return A.startsWith("/")?A:`/${A}`}}function sl(n,A){qA={targetRoute:ms(n),presetId:A==null?void 0:A.presetId,toolName:A==null?void 0:A.toolName,expiresAt:Date.now()+rl}}function il(n){if(!qA)return null;if(Date.now()>qA.expiresAt)return qA=null,null;const A=ms(n),e=qA.targetRoute;if(!(A===e||A.startsWith(e.split("#")[0])||e.startsWith(A.split("#")[0])))return null;const r=qA;return qA=null,r}function Ct(){return typeof window>"u"?"/":`${window.location.pathname}${window.location.search}${window.location.hash}`||"/"}class ol{constructor(A){p(this,"active",!1);p(this,"initialSent",!1);p(this,"lastRoute","");p(this,"sendContext");p(this,"isReady");p(this,"cleanupFns",[]);p(this,"initialRetryTimer",null);p(this,"routePollTimer",null);p(this,"originalPushState",null);p(this,"originalReplaceState",null);this.sendContext=A.sendContext,this.isReady=A.isReady??(()=>!0)}start(){typeof window>"u"||this.active||(this.active=!0,this.initialSent=!1,this.lastRoute=Ct(),this.attachListeners(),this.scheduleInitialContextSend())}stop(){if(!(!this.active&&this.cleanupFns.length===0)){this.active=!1,this.initialSent=!1,this.initialRetryTimer!==null&&(clearTimeout(this.initialRetryTimer),this.initialRetryTimer=null),this.routePollTimer!==null&&(clearInterval(this.routePollTimer),this.routePollTimer=null);for(const A of this.cleanupFns)try{A()}catch{}this.cleanupFns.length=0,this.originalPushState&&(history.pushState=this.originalPushState,this.originalPushState=null),this.originalReplaceState&&(history.replaceState=this.originalReplaceState,this.originalReplaceState=null)}}onChannelReady(){this.scheduleInitialContextSend()}scheduleInitialContextSend(A=0){if(!(!this.active||this.initialSent)){if(this.isReady()){this.sendRouteContext("call_started"),this.initialSent=!0;return}A>=30||(this.initialRetryTimer=window.setTimeout(()=>this.scheduleInitialContextSend(A+1),100))}}attachListeners(){const A=(s,i=0)=>{const o=()=>{const a=Ct();a!==this.lastRoute&&this.handleRouteChange(a,s)};i>0?window.setTimeout(o,i):queueMicrotask(o)},e=()=>A("popstate"),t=()=>A("hashchange"),r=s=>{const i=s.detail;if((i==null?void 0:i.initiated_by)==="agent"){A("vanira_navigate_agent",120);return}A("vanira_navigate",120)};window.addEventListener("popstate",e),window.addEventListener("hashchange",t),window.addEventListener("vanira:navigate",r),this.cleanupFns.push(()=>window.removeEventListener("popstate",e),()=>window.removeEventListener("hashchange",t),()=>window.removeEventListener("vanira:navigate",r)),this.originalPushState=history.pushState.bind(history),this.originalReplaceState=history.replaceState.bind(history),history.pushState=(...s)=>{this.originalPushState(...s),A("pushState")},history.replaceState=(...s)=>{this.originalReplaceState(...s),A("replaceState")},this.routePollTimer=window.setInterval(()=>{if(!this.active)return;const s=Ct();s!==this.lastRoute&&this.handleRouteChange(s,"location_poll")},1e3)}handleRouteChange(A,e){if(!this.active)return;const t=this.lastRoute;if(t===A)return;if(this.lastRoute=A,!this.initialSent){this.scheduleInitialContextSend();return}!this.isReady()||il(A)||this.sendRouteContext("route_changed",t,e,"user")}sendRouteContext(A,e,t,r="user"){const s=Ct();this.lastRoute=s;const i={ui_state:"page_navigation",navigation_led_by:r,current_route:s,current_page:s,user_action:A==="call_started"?"call_started_on_page":"user_navigated"};A==="call_started"?i.message=`User started the call while viewing ${s}.`:(i.previous_route=e??"",i.message=`User navigated from ${e||"(unknown)"} to ${s}.`,t&&(i.navigation_source=t));try{this.sendContext(i)}catch{}}}const PA=class PA{constructor(A){p(this,"serverUrl");p(this,"agentId");p(this,"callId");p(this,"prospectId");p(this,"apiKey");p(this,"backendUrl");p(this,"token");p(this,"onConnected");p(this,"onDisconnected");p(this,"onError");p(this,"onTranscription");p(this,"onLocalStream");p(this,"onRemoteTrack");p(this,"onClientToolCall");p(this,"onSessionStarted");p(this,"sessionStartedEmitted",!1);p(this,"pc",null);p(this,"dataChannel",null);p(this,"mediaBytesChannel",null);p(this,"audioElement",null);p(this,"localStream",null);p(this,"micMuted",!1);p(this,"connected",!1);p(this,"icePollInterval",null);p(this,"appliedRemoteCandidates",new Set);p(this,"iceServers");p(this,"callSessionLoaded",!1);p(this,"connectGeneration",0);p(this,"runtime");p(this,"sessionBehavior");p(this,"routeTracker",null);p(this,"_status","idle");p(this,"listeners",new Map);p(this,"liveVision");p(this,"liveVisionAutoStarted",!1);if(!A.agentId)throw new Error("agentId is required");const e=!!(A.apiKey||A.token),t=!!(A.serverUrl&&A.callId),r=PA.normalizeIceServers(A.iceServers);if(!e&&!t)throw new Error("apiKey or token is required — or pass serverUrl and callId from a prior POST /calls/create");this.agentId=A.agentId,this.sessionBehavior=A.sessionBehavior,this.serverUrl=(A.serverUrl||"").replace(/\/$/,""),this.apiKey=A.apiKey,this.token=A.token,this.backendUrl=(A.backendUrl||gA).replace(/\/$/,""),r.length&&(this.iceServers=r),t&&(this.callSessionLoaded=!0);const s=typeof window<"u";this.prospectId=A.prospectId;const i=A.sessionBehavior==="continue";if(i&&s&&!A.callId){const a=mt(this.agentId);a&&(A.callId||(this.callId=a.callId),!this.prospectId&&a.prospectId&&(this.prospectId=a.prospectId))}if(!this.prospectId&&s)try{const a=mt(this.agentId);this.prospectId=(a==null?void 0:a.prospectId)||window.sessionStorage&&window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage&&window.localStorage.getItem("vanira_prospect_id")||void 0}catch{}A.callId?this.callId=A.callId:i||(this.callId=void 0);const o=A.onSessionStarted;this.onSessionStarted=a=>{o==null||o(a),this.emit("session_started",a)},this.liveVision=A.liveVision,this.onConnected=()=>{var a;this._status="connected",(a=A.onConnected)==null||a.call(A),this.emit("connected"),this.maybeAutoStartLiveCamera()},this.onDisconnected=()=>{var a;this._status="disconnected",(a=A.onDisconnected)==null||a.call(A),this.emit("disconnected")},this.onError=a=>{var c;this._status="error";const l=typeof a=="string"?a:(a==null?void 0:a.message)||"Connection error";(c=A.onError)==null||c.call(A,a),this.emit("error",l)},this.onTranscription=(a,l)=>{var c;(c=A.onTranscription)==null||c.call(A,a,l),this.emit("transcription",{text:a,isFinal:l})},this.onLocalStream=A.onLocalStream||(()=>{}),this.onRemoteTrack=(a,l)=>{var c;(c=A.onRemoteTrack)==null||c.call(A,a,l),this.emit("track",{track:a,stream:l})},this.onClientToolCall=a=>{var d;(d=A.onClientToolCall)==null||d.call(A,a);const l=(a==null?void 0:a.data)||a,c={name:String(l.name||l.tool_name||""),arguments:l.arguments||l.args||{},tool_call_id:String(l.tool_call_id||l.call_id||""),execution_mode:l.execution_mode==="blocking"?"blocking":"fire_and_forget",client_fields:l.client_fields||{}};c.name&&c.tool_call_id&&this.emit("tool_call",c)},this.runtime=A.runtime,typeof window<"u"&&A.trackRouteContext!==!1&&(this.routeTracker=new ol({sendContext:a=>this.sendContextUpdate(a),isReady:()=>{var a;return((a=this.dataChannel)==null?void 0:a.readyState)==="open"}}))}async createCall(){return this.connect()}async connect(){var e;this._status="connecting";const A=++this.connectGeneration;if(await this.loadCallSession(),!this.isConnectCancelled(A)){if(!this.serverUrl)throw new Error("[VaniraClient] worker_url missing from /calls/create");if(!this.callId)throw new Error("[VaniraClient] call_id missing — must come from POST /calls/create");if(this.onSessionStarted&&this.prospectId&&this.callId&&!this.sessionStartedEmitted)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch{}try{this.appliedRemoteCandidates.clear(),this.stopRemoteIcePolling();const t=this.getIceServers();this.pc=new RTCPeerConnection({iceServers:t,iceTransportPolicy:"all"});let r;try{r=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:{ideal:16e3},channelCount:1}})}catch(d){if(d.name==="NotAllowedError"||d.name==="PermissionDeniedError"||(e=d.message)!=null&&e.includes("Permission denied")){const h=navigator.userAgent,u=/iPad|iPhone|iPod/.test(h)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;let g="Microphone access denied. Please allow microphone access in your browser settings.";u&&(h.includes("CriOS")?g="Microphone access blocked. Please enable it in iOS Settings > Chrome > Microphone, then reload the page.":h.includes("FxiOS")?g="Microphone access blocked. Please enable it in iOS Settings > Firefox > Microphone, then reload the page.":g="Microphone access blocked. Please enable it in iOS Settings > Safari > Microphone (or tap 'aA' > Website Settings > Allow Microphone).");const B=new Error(g);throw B.name=d.name,B}throw d}if(this.isConnectCancelled(A)){r.getTracks().forEach(d=>d.stop());return}if(this.localStream=r,!this.pc||this.isConnectCancelled(A)){r.getTracks().forEach(d=>d.stop());return}if(this.onLocalStream(r),r.getTracks().forEach(d=>{var h;(h=this.pc)==null||h.addTrack(d,r)}),!this.pc)throw new Error("RTCPeerConnection was closed unexpectedly");this.dataChannel=this.pc.createDataChannel("control"),this.dataChannel.onopen=()=>{var d;(d=this.routeTracker)==null||d.onChannelReady()},this.dataChannel.onmessage=d=>{if(typeof d.data=="string")try{this.handleControlEvent(JSON.parse(d.data))}catch{}else if(d.data instanceof ArrayBuffer)try{const h=new TextDecoder().decode(d.data);try{const u=JSON.parse(h);qa(u)&&this.handleControlEvent(u)}catch{}}catch{}else d.data instanceof Blob&&d.data.text().then(h=>{try{this.handleControlEvent(JSON.parse(h))}catch{}})},this.dataChannel.onerror=d=>{},this.mediaBytesChannel=this.pc.createDataChannel("media-bytes",{ordered:!0}),this.mediaBytesChannel.binaryType="arraybuffer",this.mediaBytesChannel.onopen=()=>{},this.mediaBytesChannel.onerror=d=>{},this.pc.ontrack=d=>{const h=d.track,u=d.streams[0];h.kind==="audio"?(this.audioElement=new Audio,this.audioElement.srcObject=u,this.audioElement.play().catch(g=>{}),this.audioElement.onended=()=>{this.sendEvent("playedStream"),typeof window<"u"&&window.dispatchEvent(new CustomEvent("vanira:agent-playback-ended"))},this.onRemoteTrack(h,u)):h.kind==="video"&&this.onRemoteTrack(h,u)};const s=()=>{var u,g,B,f,m,w,v,C,y,Q,x;const d=((u=this.pc)==null?void 0:u.connectionState)==="connected"||((g=this.pc)==null?void 0:g.iceConnectionState)==="connected"||((B=this.pc)==null?void 0:B.iceConnectionState)==="completed",h=((f=this.pc)==null?void 0:f.connectionState)==="failed"||((m=this.pc)==null?void 0:m.iceConnectionState)==="failed"||((w=this.pc)==null?void 0:w.connectionState)==="closed"||((v=this.pc)==null?void 0:v.iceConnectionState)==="closed"||((C=this.pc)==null?void 0:C.connectionState)==="disconnected"||((y=this.pc)==null?void 0:y.iceConnectionState)==="disconnected";((Q=this.pc)==null?void 0:Q.connectionState)==="connected"&&this.stopRemoteIcePolling(),d&&!this.connected?(this.connected=!0,(x=this.routeTracker)==null||x.start(),this.onConnected()):h&&this.connected&&(this.connected=!1,this.liveVisionAutoStarted=!1,this.onDisconnected())};this.pc.onconnectionstatechange=s,this.pc.oniceconnectionstatechange=s;const i=this.getIceTrickleUrl();this.pc.onicecandidate=d=>{d.candidate&&fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({candidate:d.candidate.toJSON()})}).catch(h=>{})};const o=await this.pc.createOffer();if(this.isConnectCancelled(A)||(await this.pc.setLocalDescription(o),this.isConnectCancelled(A)))return;const a=this.serverUrl.includes("?")?this.serverUrl:`${this.serverUrl}/webrtc?agent=${this.agentId}_${this.callId}`,l=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({offer:this.pc.localDescription,agentId:this.agentId,callId:this.callId})});if(this.isConnectCancelled(A))return;if(!l.ok){const d=await l.json();throw new Error(d.error||`HTTP ${l.status}`)}const{answer:c}=await l.json();if(this.isConnectCancelled(A)||!this.pc||(await this.pc.setRemoteDescription(c),this.isConnectCancelled(A)))return;this.startRemoteIcePolling(i)}catch(t){if(this.isConnectCancelled(A))return;throw this.disconnect(),this.onError(t.message||t),t}}}createCallCacheKey(A,e){const t=this.apiKey?`key:${this.apiKey.slice(0,16)}`:`token:${(this.token||"").slice(-16)}`;return[this.backendUrl,this.agentId,A,e||"",this.prospectId||"",t].join("|")}async postCreateCall(A,e,t){var o,a,l;const r=await fetch(`${this.backendUrl}/calls/create`,{method:"POST",headers:A,body:JSON.stringify({agent_id:this.agentId,type:((o=this.runtime)==null?void 0:o.callType)||"web",mode:e,...(a=this.runtime)!=null&&a.runtimeName?{runtime:this.runtime.runtimeName}:{},prospect_id:this.prospectId,...t?{call_id:t}:{}})});if(!r.ok){const c=await r.json().catch(()=>({}));throw new Error(`[VaniraClient] createCall failed (${r.status}): ${((l=c==null?void 0:c.detail)==null?void 0:l.message)||(c==null?void 0:c.message)||r.statusText}`)}const s=await r.json();if(!s.call_id||!s.worker_url)throw new Error("[VaniraClient] /calls/create response missing call_id or worker_url");const i=PA.normalizeIceServers(s.ice_servers);if(!i.length)throw new Error("[VaniraClient] /calls/create response missing ice_servers");return{callId:s.call_id,prospectId:s.prospect_id||this.prospectId,serverUrl:s.worker_url.replace(/\/$/,""),iceServers:i}}applyCreateCallSession(A){if(this.callId=A.callId,this.prospectId=A.prospectId||this.prospectId,this.serverUrl=A.serverUrl,this.iceServers=A.iceServers,this.callSessionLoaded=!0,Bs(this.agentId,this.callId||"",this.prospectId),this.onSessionStarted&&this.prospectId&&this.callId&&!this.sessionStartedEmitted)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch{}}async loadCallSession(){if(this.callSessionLoaded)return;if(this.serverUrl&&this.callId){this.callSessionLoaded=!0;return}if(!this.apiKey&&!this.token)throw new Error("[VaniraClient] apiKey or token is required to create a call session");const A={"Content-Type":"application/json"};this.apiKey?A["X-API-Key"]=this.apiKey:this.token&&(A.Authorization=this.token.startsWith("Bearer ")?this.token:`Bearer ${this.token}`);const e=this.sessionBehavior==="continue"?this.callId:void 0,t=this.sessionBehavior==="continue"?"continue":"new",r=this.createCallCacheKey(t,e);let s=PA.inflightCreates.get(r);s||(s=this.postCreateCall(A,t,e),PA.inflightCreates.set(r,s),s.finally(()=>{PA.inflightCreates.get(r)===s&&PA.inflightCreates.delete(r)}));const i=await s;this.applyCreateCallSession(i)}getIceServers(){var A;if((A=this.iceServers)!=null&&A.length)return this.iceServers;throw new Error("[VaniraClient] ice_servers missing — pass iceServers from POST /calls/create")}static normalizeIceServers(A){if(!Array.isArray(A))return[];const e=[];for(const t of A){const r=t==null?void 0:t.urls,s=Array.isArray(r)?r.filter(Boolean):typeof r=="string"&&r.trim()?[r.trim()]:[];if(!s.length)continue;const i={urls:s.length===1?s[0]:s},o=t.username,a=t.credential;o&&(i.username=o),a&&(i.credential=a),e.push(i)}return e}getWorkerOrigin(){var A;if(!((A=this.serverUrl)!=null&&A.trim()))return"";try{return new URL(this.serverUrl).origin}catch{return this.serverUrl.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}}getIceTrickleUrl(){try{const A=new URL(this.serverUrl);return A.pathname.endsWith("/webrtc")?A.pathname=`${A.pathname}/ice`:A.pathname="/webrtc/ice",A.toString()}catch{return`${this.getWorkerOrigin()}/webrtc/ice?agent_id=${this.agentId}&call_id=${this.callId}`}}startRemoteIcePolling(A){this.stopRemoteIcePolling(),this.icePollInterval=setInterval(async()=>{if(!this.pc){this.stopRemoteIcePolling();return}if(this.pc.connectionState==="connected"){this.stopRemoteIcePolling();return}try{const e=await fetch(A);if(!e.ok)return;const{candidates:t}=await e.json();for(const r of t||[]){const s=JSON.stringify(r);if(!this.appliedRemoteCandidates.has(s)){this.appliedRemoteCandidates.add(s);try{await this.pc.addIceCandidate(r)}catch{}}}}catch{}},150)}stopRemoteIcePolling(){this.icePollInterval!==null&&(clearInterval(this.icePollInterval),this.icePollInterval=null)}sendEvent(A,e={}){var t;if(((t=this.dataChannel)==null?void 0:t.readyState)==="open"){const r={event:A,...e};this.dataChannel.send(JSON.stringify(r))}}async sendEventWhenReady(A,e={},t=1e4){var s;const r=Date.now()+t;for(;Date.now()<r;){if(((s=this.dataChannel)==null?void 0:s.readyState)==="open")return this.sendEvent(A,e),!0;await new Promise(i=>setTimeout(i,50))}return!1}startLiveCamera(A={}){const e={...this.liveVision,...A};this.emit("tool_call",this.buildOpenLiveCameraToolCall(e))}buildOpenLiveCameraToolCall(A={}){const e=A.scope??"until_call_end";return{name:"open_live_camera",tool_call_id:`lv_${crypto.randomUUID()}`,execution_mode:"fire_and_forget",client_fields:{preset_id:b.LiveVision},arguments:{mode:"live",scope:e,target_fps:A.target_fps??1,max_fps:A.max_fps??3,max_width:A.max_width??640,reason:A.reason??"camera_capture",facing_mode:A.facing_mode??"environment",show_preview:A.show_preview??!0,...e==="timed"&&A.duration_sec?{duration_sec:A.duration_sec}:{}}}}maybeAutoStartLiveCamera(){const A=this.liveVision;!(A!=null&&A.enabled)||A.scope!=="full_call"||this.liveVisionAutoStarted||(this.liveVisionAutoStarted=!0,this.emit("tool_call",this.buildOpenLiveCameraToolCall(A)))}handleControlEvent(A){var e;switch(A.event){case"clearAudio":break;case"transcription":this.onTranscription(A.text,A.isFinal);break;case"mark":break;case"client_tool_cancel":{const r=(A.data||A).tool_call_id||A.tool_call_id;this.dispatchBoardAbort("Tool cancelled by server",r);break}case"client_tool_call":{const t=A.tool_call||A.data||A,r=(t==null?void 0:t.tool_call_id)||(t==null?void 0:t.call_id)||A.tool_call_id||"";r&&((e=this.dataChannel)==null?void 0:e.readyState)==="open"&&this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:r}}));const s=(t==null?void 0:t.arguments)||(t==null?void 0:t.args)||{},i=(t==null?void 0:t.client_fields)||{},o=(t==null?void 0:t.name)||(t==null?void 0:t.tool_name)||"",a=pt(i,s,o);if(o==="end_call"){r&&this.sendToolResult(r,{status:"client_ack_end_call",message:"Ending call."}),window.setTimeout(()=>this.disconnect(),120);break}if(a){window.dispatchEvent(new CustomEvent("vanira:preset",{detail:{toolCall:t,client:this}})),this.onClientToolCall(t);break}this.onClientToolCall(t);break}}}disconnect(){var A;this.connectGeneration++,this.stopRemoteIcePolling(),this.appliedRemoteCandidates.clear(),this.audioElement&&(this.audioElement.pause(),this.audioElement.srcObject=null),this.dataChannel&&(this.dataChannel.close(),this.dataChannel=null),this.mediaBytesChannel&&(this.mediaBytesChannel.close(),this.mediaBytesChannel=null),this.pc&&(this.pc.getSenders().forEach(e=>{e.track&&e.track.stop()}),this.pc.close(),this.pc=null),this.localStream&&(this.localStream.getTracks().forEach(e=>{try{e.stop()}catch{}}),this.localStream=null),this.connected=!1,(A=this.routeTracker)==null||A.stop(),this.callSessionLoaded=!1,this.sessionStartedEmitted=!1,this.serverUrl="",this.callId=void 0,this.micMuted=!1,this.iceServers=void 0,this.onDisconnected()}setMicrophoneMuted(A){var e,t;this.micMuted=A,(e=this.localStream)==null||e.getAudioTracks().forEach(r=>{r.enabled=!A}),(t=this.pc)==null||t.getSenders().forEach(r=>{var s;((s=r.track)==null?void 0:s.kind)==="audio"&&(r.track.enabled=!A)})}isMicrophoneMuted(){return this.micMuted}toggleMicrophoneMuted(){return this.setMicrophoneMuted(!this.micMuted),this.micMuted}isConnectCancelled(A){return A!==this.connectGeneration}dispatchBoardAbort(A,e){typeof window>"u"||window.dispatchEvent(new CustomEvent("vanira:board_abort",{detail:{reason:A,toolCallId:e}}))}sendToolResult(A,e){this.callId,this.sendEvent("client_tool_result",{call_id:this.callId,data:{tool_call_id:A,result:e},result:e})}sendToolAck(A){var e;((e=this.dataChannel)==null?void 0:e.readyState)==="open"&&this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:A}}))}sendContextUpdate(A){this.sendEvent("client_context_update",{data:{context:A}})}sendActionTrigger(A,e={}){this.sendEvent("client_action_trigger",{data:{action_name:A,data:e}})}triggerActionInterrupt(){this.sendEvent("action_interrupt")}async uploadMediaForToolResult(A,e="general"){return this._postMediaUpload(A,e)}async uploadMedia(A,e="general",t=""){return await el(this.dataChannel,this.mediaBytesChannel)?this._uploadMediaViaDataChannel(A,e,t):(Al(this.dataChannel,this.mediaBytesChannel),this._uploadMediaViaHTTP(A,e,t))}async uploadMediaFrame(A,e="camera_capture",t){const r=t&&!(A instanceof File)?new File([A],t,{type:A.type||"image/jpeg"}):A,{media_id:s,url:i,contentType:o}=await this._postMediaUpload(r,e,!0);if(!s||!i)throw new Error("Frame upload failed: server response missing media_id or url");return{media_id:s,url:i,content_type:o}}async _uploadBytesViaDataChannel(A,e,t,r,s){if(!this.callId||!this.mediaBytesChannel)throw new Error("Upload failed: call not ready for WebRTC media upload.");const i=s||(A instanceof File?A.name:r==="frame"?"frame.jpg":"upload.bin"),o=A.type||(r==="frame"?"image/jpeg":"application/octet-stream"),a=await nl(A);return tl({bytes:a,filename:i,contentType:o,reason:e,message:t,callId:this.callId,mediaBytesChannel:this.mediaBytesChannel,sendControlEvent:(l,c)=>this.sendEvent(l,c),uploadKind:r})}async _uploadMediaViaDataChannel(A,e,t){const r=await this._uploadBytesViaDataChannel(A,e,t,"media");return{media_id:r.media_id,url:r.url}}async _uploadMediaViaHTTP(A,e="general",t=""){const{media_id:r,url:s,contentType:i}=await this._postMediaUpload(A,e,!0);if(this.dataChannel&&this.dataChannel.readyState==="open"){const o={event:"client_media_update",data:{media_id:r,media_url:s,content_type:i,reason:e,message:t}};this.dataChannel.send(JSON.stringify(o))}return{media_id:r,url:s}}async _postMediaUpload(A,e,t=!1){if(!this.serverUrl)throw new Error("Upload failed: serverUrl is not set. Connect the VaniraClient first.");if(!this.callId)throw new Error("Upload failed: callId is missing.");const r=this.getWorkerOrigin();if(!r)throw new Error("Upload failed: worker_url is not set. Connect the call before uploading media.");const s=`${r}/media/upload`,i=new FormData;i.append("file",A),i.append("call_id",this.callId),i.append("reason",e);const o=await fetch(s,{method:"POST",body:i});if(!o.ok){let h=`HTTP ${o.status}`;try{h=(await o.json()).error||h}catch{}throw new Error(`Upload failed: ${h}`)}const a=await o.json(),l=a.media_id,c=a.url,d=a.content_type||A.type;if(!l||!c)throw new Error("Upload failed: server response missing media_id or url");return t?{media_id:l,url:c,contentType:d}:{media_id:l,url:c,contentType:d}}get status(){return this._status}get isConnected(){return this._status==="connected"}on(A,e){return this.listeners.has(A)||this.listeners.set(A,new Set),this.listeners.get(A).add(e),this}off(A,e){var t;return(t=this.listeners.get(A))==null||t.delete(e),this}emit(A,e){var t;(t=this.listeners.get(A))==null||t.forEach(r=>r(e))}async start(){return await this.connect(),{callId:this.callId||"",prospectId:this.prospectId||"",serverUrl:this.serverUrl||""}}stop(){this.disconnect(),this._status="disconnected"}sendToolError(A,e){this.sendToolResult(A,{status:"error",error:e})}updateContext(A){this.sendContextUpdate(A)}triggerInterrupt(A,e={}){this.triggerActionInterrupt(),this.sendActionTrigger(A,e)}interruptAudioOnly(){this.triggerActionInterrupt()}};p(PA,"inflightCreates",new Map);let he=PA;const Le=class Le{constructor(A){p(this,"tabId");p(this,"sessionKey");p(this,"channelName");p(this,"channel",null);p(this,"heartbeatTimer",null);p(this,"listeners",new Map);const e=A.replace(/[^a-z0-9_-]/gi,"_");this.sessionKey=`vaniraai_session_${e}`,this.channelName=`vaniraai_channel_${e}`,this.tabId=this._getOrCreateTabId(),this._setupChannel()}getTabId(){return this.tabId}claimSession(){const A=this._loadSession();if(A){const r=Date.now()-A.lastActive,s=A.tabId===this.tabId,i=r>Le.HEARTBEAT_TIMEOUT_MS;if(s)return this._startHeartbeat(),this._emit("session_restored"),!0;if(!i)return this._emit("tab_conflict"),!1}const e=A?{...A,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId});const t=!!(A!=null&&A.prospectId);return this._emit(t?"session_restored":"session_claimed"),!0}forceClaimSession(){const A=this._loadSession(),e=A?{...A,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId}),this._emit("session_claimed")}saveIds(A,e,t){const r=this._loadSession()??this._blankSession();this._saveSession({...r,prospectId:A,chatId:e,conversationId:t??r.conversationId??null,tabId:this.tabId,lastActive:Date.now()})}pushMessage(A,e){const t=this._loadSession()??this._blankSession();t.messages.push({role:A,content:e,timestamp:Date.now()}),t.messages.length>100&&(t.messages=t.messages.slice(-100)),this._saveSession({...t,tabId:this.tabId,lastActive:Date.now()})}updateLastAssistantMessage(A){const e=this._loadSession()??this._blankSession(),t=e.messages;let r=!1;for(let s=t.length-1;s>=0;s--)if(t[s].role==="assistant"&&t[s].content===""){t[s].content=A,r=!0;break}if(!r){for(let s=t.length-1;s>=0;s--)if(t[s].role==="assistant"){t[s].content=A,r=!0;break}}r||t.push({role:"assistant",content:A,timestamp:Date.now()}),this._saveSession({...e,tabId:this.tabId,lastActive:Date.now()})}getSession(){return this._loadSession()}clearSession(){localStorage.removeItem(this.sessionKey),this._broadcast({type:"session_cleared",tabId:this.tabId}),this._emit("session_cleared")}clearChatKeepProspect(){const A=this._loadSession();A&&this._saveSession({...A,chatId:null,conversationId:null,messages:[],lastActive:Date.now()})}destroy(){this._stopHeartbeat(),this.channel&&(this.channel.close(),this.channel=null)}on(A,e){return this.listeners.has(A)||this.listeners.set(A,new Set),this.listeners.get(A).add(e),this}off(A,e){var t;return(t=this.listeners.get(A))==null||t.delete(e),this}_getOrCreateTabId(){let A=sessionStorage.getItem("vaniraai_tab_id");return A||(A=`tab_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,sessionStorage.setItem("vaniraai_tab_id",A)),A}_setupChannel(){typeof BroadcastChannel>"u"||(this.channel=new BroadcastChannel(this.channelName),this.channel.onmessage=A=>{const e=A.data;e.tabId!==this.tabId&&(e.type==="took_over"&&(this._stopHeartbeat(),this._emit("tab_took_over")),e.type,e.type==="session_cleared"&&this._emit("session_cleared"))})}_broadcast(A){var e;(e=this.channel)==null||e.postMessage(A)}_startHeartbeat(){this._stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{const A=this._loadSession();A&&A.tabId===this.tabId&&(this._saveSession({...A,lastActive:Date.now()}),this._broadcast({type:"heartbeat",tabId:this.tabId}))},Le.HEARTBEAT_INTERVAL_MS)}_stopHeartbeat(){this.heartbeatTimer!==null&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}_loadSession(){try{const A=localStorage.getItem(this.sessionKey);return A?JSON.parse(A):null}catch{return null}}_saveSession(A){try{localStorage.setItem(this.sessionKey,JSON.stringify(A))}catch{}}_blankSession(){return{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()}}_emit(A){var e;(e=this.listeners.get(A))==null||e.forEach(t=>t())}};p(Le,"HEARTBEAT_INTERVAL_MS",5e3),p(Le,"HEARTBEAT_TIMEOUT_MS",15e3);let Kn=Le;const Cs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAIABJREFUeF7snQecVNX1x3/3zWzvSxM0RkzUJMYKGEtiizVG2Fn/S+wisLOoKcaaxCRumolJ1CTWfYNIVEx0ZWcBFVsECwqyi2KX3hHZXmZ32rt/7rLoAltm5vX3zv18+JDIu+ee+z135v3mvXPPZaBGBIgAESACRIAIuI4Ac92MacJEgAgQASJABIgASADQIiACRIAIEAEi4EICJABcGHSaMhEgAkSACBABEgC0BogAESACRIAIuJAACQAXBp2mTASIABEgAkSABACtASJABIgAESACLiRAAsCFQacpEwEiQASIABEgAUBrgAgQASJABIiACwmQAHBh0GnKRIAIEAEiQARIANAaIAIGEzj//PPzs7OzxyiKMpwxNgLASM55IWPMwznP38edOIA2RVF6/jNjrI0xtgPA516vdyuAJgDxnJyc2IYNG2KLFy+OGTwdGo4IEAGbEiABYNPAkdvWJ3DOOefk5ObmjuOcnwDgCACH9/49SkPvuxljn3POhRjYAGAdgNWMsU9jsdj6jIyM7u7u7mh7e3uExIGG1MkUEXAAARIADggiTcEaBMQNPysr60xJks7lnJ/MGDsKgNdE7yKc81WMsfcVRflAkqT3IpHIR+np6R3xeLyrra2ti0SBidGhoYmAyQRIAJgcABre3gTKysqKo9HojwBMYoydBiDT4jPqBvAJ5/xdxtiyeDy+LCMjYzuALvGnuro6YnH/yT0iQAQ0IkACQCOQZMY9BMrKyjzxePwCzvlVAH4IIN3Gs1c456sBvC1J0nIASwFsCYfD3Z2dneIJgRAM1IgAEXAgARIADgwqTUkfAmVlZbnRaPRSxtiNve/z9RnIfKubOecrANQzxl5jjK3Kysrq3Lp1a4heGZgfHPKACGhFgASAViTJjmMJ9Cbz3cA5/zmAIsdOdICJMcY2cs7fjMfjr3HOX/d6vTtjsVjHggULxGsD7jYeNF8i4BQCJACcEkmah+YETj/9dG9RUdF0AL8FMFrzAexpUOQIiFcFr0uStJhz/qHH4wkB6KD8AXsGlLx2LwESAO6NPc18EAIlJSXHMsZkABMI1KAEtjLG3hBPCCKRyCuSJH0Wi8XaFy5cGCZuRIAIWJsACQBrx4e8M5hAWVlZViwW+zOAHwPwGDy83YcT2w6XAVgo/jDGtnm93vbq6mrxqoAaESACFiNAAsBiASF3zCPg8/m+CeC/AI42zwvHjCwqGK7sFQI1nPMtJAYcE1uaiEMIkABwSCBpGuoIlJSUTGGMPQAgS50l6t0PAZE38AZj7LlwOPxCenr69ubm5lbaUUBrhQiYS4AEgLn8aXSTCVRWVkorV668c1cS200mu+KK4TnnIjdgMWPsKa/X+3I4HG6eP39+B+0mcEX4aZIWI0ACwGIBIXeMIzBlypTM1tbWJwFMNG5UGqkPAVFv4CkAT8Xj8XWjR49ulWU5SoSIABEwhgAJAGM40ygWIyD29ufk5AQBnG0x19zoTlwkDzLGnmSMzYtGozsXLFggthZSIwJEQEcCJAB0hEumrUlAVPSLxWLPAzjFmh661yvG2CYAjzPGHguFQtsWLlzY5l4aNHMioC8BEgD68iXrFiNQVlaWHovF5u2qeX+exVwjd/Ym0MwYmxOJRGZyzjc9++yzLZQnQEuECGhLgASAtjzJmoUJ9Cb8VQMotbCb5NreBMQTgMcYY7MURVlXW1vbSkKAlggR0IYACQBtOJIVGxDw+XyiwM8vbOAqubg/AZET8ATn/P68vLzVjz32WCdBIgJEQB0BEgDq+FFvmxAoLS29lHM+xybukpsDExBPBB7wer2iTPNWOn+AlgoRSJ0ACYDU2VFPmxAoLS09lHP+DoB8m7hMbg5BoPeEwt95vd5njjzyyMbKykqFoBEBIpAcARIAyfGiq21GoKyszNN7jO3JNnOd3E2MwDOMsd9Ho9EPaetgYsDoKiKwhwAJAFoLjibg8/nEUb6/c/QkaXJtQgR4PJ5Hq6urGyhJkBYEEUiMAAmAxDjRVTYkUFpaOkEcUwvAa0P3yeXkCQQlSfrVsGHD1lJFweThUQ/3ESAB4L6Yu2LGvVv+lgKY4IoJ0yT3EFinKMq1iqK8Tq8EaFEQgcEJkACgFeJIAr2n+z3iyMnRpAYlwBjrYIz9LBQKPU2VBGmxEIGBCZAAoNXhOAK9pX5XARjtuMnRhBIiwDmPAfhtNBp96Nlnn21OqBNdRARcRoAEgMsC7obp+ny+PwK4zQ1zpTkOSoADuCMrK+uuJ554gkQALRYisA8BEgC0JBxFoKSkpLD3QJk8R02MJpMyAcbYHR6P56/V1dWijDA1IkAEegmQAKCl4CgCPp9P/PIXTwCoEYE9BLgkSbdGIpH7KTGQFgUR+JIACQBaDY4hMGXKlMzW1tYNAEY5ZlI0Ea0IRDjnV2zevDlYX18f1coo2SECdiZAAsDO0SPf9yJQWlo6nXMeICxEoD8CnPMdiqKcP3/+fFEWmhoRcD0BEgCuXwLOAeDz+d4CcKJzZkQz0YHAq1lZWT5KCtSBLJm0HQESALYLGTncH4GLLrroSEVRPiA6RGAoAoyxWzdu3HgPvQoYihT9u9MJkABweoRdMj+fz/dXADe7ZLo0TXUEmtLT00968sknRa0IakTAtQRIALg29M6auM/nWwPga86aFc1GLwKMsZlNTU3XLF68WBQMokYEXEmABIArw+6sSV900UVHK4qy0lmzotnoTCDk9XqPqa6uFsKRGhFwJQESAK4Mu7MmXVpaeiPn/O/OmhXNRm8CnPM/H3vssb+urKxU9B6L7BMBKxIgAWDFqLjMp7KysqxoNHoygBMYY+MBjOmt45/fB0UIwCYAW3v/fg9AfXNz8ydFRUVPA5jkMmw0XfUEtvQ+BWhSb4osEAH7ESABYL+YOcbjkpKS03fdzKcyxsTNu+/NPpk5CmHg3VXzPT2ZTnQtERAEJEm6Yu7cuY8TDSLgRgIkANwYdZPn7PP5visOaQHwPZNdoeFdToAx9kRNTc3lAMTBQdSIgKsIkABwVbjNnWxvqd7K3u16krne0OhEoIfA9ubm5sMXL17cQTyIgNsIkABwW8RNmm9ZWdkB0Wh0Qe87fpO8oGGJwP4EFEU5dd68ea8TGyLgNgIkANwWcRPmW1pa+lUAizjnY00YnoYkAoMSYIzdVlNTI15JUSMCriJAAsBV4TZ+smVlZcWxWGwJgG8YPzqNSASGJsA5f6K2tvayoa+kK4iAswiQAHBWPK02G+bz+V4AcLbVHCN/iMAeArt2obxTU1MzjhIBaU24jQAJALdF3MD5+ny+n+/a3ne3gUPSUEQgaQKMsc5PPvmk+KOPPook3Zk6EAEbEyABYOPgWdn1srKyg2Ox2CcAsqzsJ/lGBAQBr9d7UHV1tSgyRY0IuIYACQDXhNrYiZaUlMxhjF1q7Kg0GhFIjYCiKCfOmzdvWWq9qRcRsCcBEgD2jJulvb7ooouOVBTlfQC0viwdKXJuDwGPx1Py9NNPzyMiRMBNBOgL2k3RNmiuPp/vYVHi16DhaBgioJoA57yitrZWVm2IDBABGxEgAWCjYNnBVZ/PN6z3wJ4MO/hLPhIBQYAxdlNNTc1dRIMIuIkACQA3RduAufp8vhkAHjRgKBqCCGhGgHP+m9ra2j9qZpAMEQEbECABYIMg2clFn8/3KoBT7eQz+UoExOFUwWDwNiJBBNxEgASAm6Kt81wvuOCCovT09J0APDoPReaJgKYEJEm6Z+7cuTdoapSMEQGLEyABYPEA2cm9kpKSyYyxJ+3kM/lKBHoJ/CsYDP6MaBABNxEgAeCmaOs8V5/PJ979ixwAakTAbgTuDwaDP7ab0+QvEVBDgASAGnrUdy8CPp+vHsDxhIUI2I2AJEn3z507lwSA3QJH/qoiQAJAFT7qvIfAlClTMltbW9sApBEVImA3AoqiPDRv3rxr7OY3+UsE1BAgAaCGHvX9gsCkSZO+JUnSh4SECNiRAGPsvpqamp/Y0XfymQikSoAEQKrkqN++j/9/CGABYSECNiVwTzAYpF0ANg0euZ0aARIAqXGjXvsQ8Pl8PwXwTwJDBGxK4G/BYPAWm/pObhOBlAiQAEgJG3Xal0BJSck9jLHriQwRsCmBvwSDwV/a1HdymwikRIAEQErYqNO+BHw+nzhJbSKRIQI2JfD7YDB4u019J7eJQEoESACkhI069SMAxFnqJxAZImBHAoyx39bU1PzBjr6Tz0QgVQIkAFIlR/32IuDz+cQOgG8RFiJgRwKc81/V1tb+2Y6+k89EIFUCJABSJUf99hUAGwB81Q5YJAYo3A6eko9GEeCcX19bW0tJrEYBp3EsQYAEgCXCYH8nfD5fA4BhdpjJ+eOzsLCuyw6uko/GEZgWDAZnGTccjUQEzCdAAsD8GDjCA5/PFwKQZYfJzLp+GG57tAXbm+J2cJd8NICAJEk/mjt37lMGDEVDEAHLECABYJlQ2NeRyspKaeXKlba4m44q9ODB64rxyspu3PdMu32hk+eaElAU5YJ58+Y9p6lRMkYELE6ABIDFA2QT95jP5xMCwPLr6ZRvZeBGXz7iCsfNs1qwYUfMJojJTT0JKIpy6rx5817XcwyyTQSsRsDyX9hWA0b+9E/A5/OFAaRbnc+Us3Iw8TvZPW6u2R7DrY80g1NCoNXDprt/Xq/3uOrq6nd1H4gGIAIWIkACwELBsLMrPp+vFUC+1efwxysK8a2Dvzyw8OEXO/DsckoItHrc9PYvHo8fNn/+/DV6j0P2iYCVCJAAsFI0bOyLz+f7HMAIK0/BIzE8duMwZKZ/ueyjMd6TECieBlBzNYFRwWBQrGFqRMA1BEgAuCbU+k7U5/NtAXCgvqOosz52lBd3TS/az0hDm4IbZzajvUtRNwD1tisB3tzcnL548WJSgXaNIPmdEgESAClho077EvD5fKsAHGZlMmcdm4lrL8jr18WPNkXxh/+2IhylhAArx1An3zqCwWD/C0OnAcksEbACARIAVoiCA3woLS1dwjk/2cpTETd/IQIGaivXR3DHU20QrwWouYcAY2xTTU2NLapYuicqNFMjCJAAMIKyC8YoLS0Ncs5LrDzVu6cX4ZBR3kFdfPPjMO6pbUOc3gZYOZSa+sY5f7+2tvZoTY2SMSJgAwIkAGwQJDu4WFpaWsU591vV1+wMCY/eOAziHICh2nvrI/jr3DaEwvQkYChWDvn3xcFg8AyHzIWmQQQSJpDA12HCtuhCFxMoLS39A+f811ZFcOyhafjtJYUJu7dpZwx/erIVO1vpUUDC0Ox7YTAYDJba133ynAikRoAEQGrcqNc+BHw+308BWPY0tYtPzcHk7+0uAJRoa2pX8Ne5rVi1lZLDE2Vmx+sYYw/X1NRMt6Pv5DMRUEOABIAaetT3CwI+n0/8gpprVSSVlxbg6LHJFyoUJYPnLulC9RuhnvLB1BxJ4I5gMHibI2dGkyICgxAgAUDLQxMCJSUlxzLG3tHEmMZG+isAlOwQolDQP+e1Y2sjPQ1Ilp3Vr+ec/6S2tvY+q/tJ/hEBrQmQANCaqEvtTZw4Mc/j8bRZcfqHHuDF36ftXwAoWV9FjYAnXw/1lA6mrYLJ0rPu9ZIk/d/cuXMt+/TKuuTIM7sTIAFg9whayH+fz7cDwEgLudTjygUTsjDtnFzN3NrREsecRZ1Y8nGYDhLSjKp5hhRFOWXevHlvmucBjUwEzCFAAsAc7o4c1efzvQXgRKtN7uaL8nHSNzI0d2vt9hhmv9yBDzdFNbdNBo0jwBj7Wk1NzTrjRqSRiIA1CJAAsEYcHOGFz+d7bNcpu5dbaTKMAY9cPxz52fot9XfWRlC7NIT3N5AQsFLsE/Wls7Mz98UXX+xM9Hq6jgg4hYB+34pOIUTzSJhASUnJLYyxOxPuYMCFXxnuwT8rig0YCRBPBER+gKgmGKFywoYwVzsI57yztrZWu/dDah2i/kTAQAIkAAyE7fShLrroonMVRXneSvM8f3wWys819vu9o0vB4vfDeOW9bmzYQbsGrLQe+vFldTAYPNziPpJ7REAXAiQAdMHqTqNlZWUHxGKx7Vaa/U2l+Tj5m9q//090jpt3xvDGR2G8+XGEthAmCs3A6xhji2pqas40cEgaighYhgAJAMuEwhmOWGkngHj/P+tnw1CQI1kC7ramOOpWR3r+fLw5QgcOWSIq+HcwGJxiDVfICyJgLAESAMbydvxoPp/vRQBnW2GiXxnhxT/96vf/6zGX7gjHp1uj+GBjFB9ujGLt9iiicT1GIptDEPh9MBi8nSgRATcSIAHgxqjrOOeSkpLfM8Z+o+MQCZs+b1wm/OflJXy9mReK44c3fh7D6m1CDMSxYUcUWxrjEELBSS07g2FYnoTinj8eZGUwPLe8y7QpMsaurqmpmW2aAzQwETCRAAkAE+E7ceiSkpLzGWPPWWFuvyjLxwmHm/f+Xy0DzoGdrfEeIbDusxi2NcbR2K6goS0OcVCRqExolSaOWc7NklCYw5CfLfW8dhF/8rMYCrIlDMvffcPPTN//K+cv1a3Y0mDO4w/O+Rm1tbWLrcKR/CACRhIgAWAkbReMVVJSUsgYawRg6ot3jwT8+4ZhyM4w1Q3NIt7epaC9a+8bfldEQXuI9/z3ji6OtpCCUFjpeWrQFUHPVkTxv8NRBQpnPX/vaV0R3lPF0OsB0r17fw2I/+/1sJ5f52kSkJYmITtd/M2Qnc4gfsXnZEnIydj9v3v+f6YEkXORSlv0XjfmLgml0lV1HyoCpBohGbAxgRQ/sjaeMbmuOwGfz/cBgCN1H2iQAb51cBr+eEWhmS5oOnZ/AkDTAUw01tmt4LZHWxGLG/5EQ/F6vVnV1dURE6dPQxMB0wiQADANvXMH9vl8DwGoMHOGl52eg4tOyTbTBU3HdrIAEKBmvtCBd9cZfh/eHgwGx2gaKDJGBGxEgASAjYJlF1dLSkouYow9baa/f5tahK+N9prpgqZjO10AfLAhiocWtmvKLAFjbweDwe8kcB1dQgQcSYAEgCPDau6kevMAdgIw5Q4sktAeuX5Yyu+kzaXX/+hOFwBxheM3j7X25DEY1YRIrampKTNqPBqHCFiNAAkAq0XEIf74fD5xvOpJZkzne0dm4Ocl+WYMrduYThcAAlztWyG8/G63bgz7Mfz3YDB4s5ED0lhEwEoESABYKRoO8qWkpOR2xlilGVP66cQ8nH5UphlD6zamGwTAloYY/lLdphvDfQ1LkvSTuXPn3mfYgDQQEbAYARIAFguIU9yZNGnSyZIkLTF6PmI/+qzrh/XsRXdSc4MAEPGqnNOChjbDXgNcGAwGn3HSOqG5EIFkCJAASIYWXZswgdNPP91bVFTUAKAg4U4aXOi07X97kLhFAIh6AKIugEHtqGAwKLasUiMCriRAAsCVYTdm0j6frwaAz5jRdo9y9dm5uPCELCOHNGQstwiANdti+Mc8Q14DiBoAudXV1ebVITZk5dAgRGBgAiQAaHXoRqCkpOQaxtgDug3Qj+EHryvGqEKPkUMaMpZbBICoTnjbv1vQ1qXvawDG2KaampqvGhI8GoQIWJQACQCLBsYJbk2cOPHrHo9ntVFzOWSUF3dPt+bpf2oZuEUACE5PLA7hzY91fw3wSjAY/L7auFB/ImBnAiQA7Bw9G/ju8/nWAjjUCFd/dGoOfvQ951T/68vMTQLAiKJAjLEHa2pqrjViXdIYRMCqBEgAWDUyDvHLyLLAd00vwthRptQe0j1abhIAsV2HGP1idgu6dTztUJKk6+fOnftP3QNHAxABCxMgAWDh4DjBNZ/PVwpgrt5zGZ4voerHzqr+59YnAGLeep8NwDn/QW1t7UK91yXZJwJWJkACwMrRcYBvvWWBxXZAXTPzfCdl44ozcxxArP8puOkJgCDwxofd+O9r+h0RTMcAO/ajQhNLggAJgCRg0aWpEfD5fG8BODG13on1uqe8CF8d6czH/4KA2wRAY1sct89pTSz4yV8V7T0GOJ58V+pBBJxDgASAc2Jp2ZmUlJT8njH2G70cFO/9xft/Jze3CQARSx2rAn4aDAa/4eT1QnMjAokQIAGQCCW6RhWBSZMmfU+SpNdUGRmks1OL//SdshsFwH9e7cSSj8KaLxvG2IKampqJmhsmg0TAZgRIANgsYHZ0t7cscCMAzY/o80gMgZ8WozDHWbX/942zGwXAO+siePiFDs2XPOf8rtra2ps0N0wGiYDNCJAAsFnA7Oquz+ebB0DzX13Hfy0dv77Y0OMGTAmBGwVAV5jj1keaoXDtkO86oRKcc38wGAxoZ5UsEQF7EiABYM+42c5rn893HQDNj179eUk+vndkhu14JOuwGwWAYPT3mjZs2BFLFtdQ158eDAZfHeoi+nci4HQCJACcHmGLzM/n8x0O4FMt3cnJZJj502HISHP+MnarAHjm7S48X6/5eT2jgsHg51quRbJFBOxIwPnfnHaMikN99vl8GwBodgDLD0/IwtSzcx1Ka+9puVUAfLolinsXtGsZ453BYHCklgbJFhGwKwESAHaNnEX95u/MOARx5SIAx4PjIDCIL1txskvHn6tbD1q+KnKIFq4zBtw7oxhjinWtL6SFq5rYcKsACEc4bhZ5ABodDnjIKG/7zaX5r6d5pQ8kxoPDzpi5VJMAkREiYEMCJABsGDQrusw/uDYXXbG7wDBtoKp/b34c7nmnq0U79tB0/PYS5yf/7WHlVgEg5v+3p1uxcac2NXvOODoTF53y5YFREsMyJYprDvzBw+9osS7JBhGwEwESAHaKlkV95YumZCI//X/gOHkwFzu6FEy5p1GTrO7bLy3AMWPTLUpEe7fcLADmLglh0XvaHA986ek5OPmb+yWNdnZHlYu/dsEjz2gfObJIBKxLgASAdWNjG894vf9OcNySiMO3zGrGmu3qsroPEZX/phVBvAZwS3OzANCyHsBNpfkQ62ffpnC0NjZLJxx7cWCVW9YUzZMIuOgrlIKtBwG+9Cf58Ia37tqxlVA23hOLO/H0EnWHvNzoy8cp33L+1r++8XKzAGgLKfjVv1tUL18hGP86tRBZ6f0XjQpH+VOHXjDrR6oHIgNEwCYESADYJFBWdZMvr5gExmsT9e/DTVH85rHUv8xF0t+/ZhRDctnKdbMAEGvrd0+0YGerukzAYfkSfndZ4YBLlSs88uH66FfOveYx2iKY6AearrM1AZd9jdo6VpZ0ntf7bwdHZaLOxeLAlXc3oDuSWnm3n03Kx2nfdtevf8HW7QLg8UWdWPqJunMBjjokHRXnD/6gKhqTLj/kB4E5ia5nuo4I2JkACQA7R88CvvN6/73g+HEyrtzxVCvqVkeS6dJzrVt//ZMAAMQOEvH6SE0757hMTDzxyx0AA9i688BzHv6FmnGoLxGwCwESAHaJlEX95HX+2QCuSsY9Ud1t1kvJH/Li1l//JACArQ0x/Lla3RbSKWflYvxhg+8ckcD/O/qcWZcks57pWiJgVwIkAOwaOYv4zev8TwEoS8adLQ1x/LSqKZkuGC3e/VcUQZz+58bm9lcA4kCgm2Y2IxJL7dWRWDO/mlyAMcMGLxzllVA76qyHfW5cYzRn9xFw57ep++Ks24x5nV/snb4g2QH89zahoS3x4i5u/vVPTwB2r667gm1Y/1lqW0glCbh7WhG83sG/8tLT2PMjzph5frLrma4nAnYkQALAjlGzkM+8zv8KgDOSden+Z9rxv5WJFXdx+69/EgC7V1f16yG8+kFia2bf9XjQcA9+UTZ05ciMNCwefsbDSa/nZNc/XU8ErECABIAVomBjH3idX9RS/06yU3jjozDuDib2Ttftv/5JAOxeXW9/Gsajr6SWCHjiNzJw+Rk5Qy7TnEwsKzz14ROHvJAuIAIOIEACwAFBNHMKvM4vaqgfm6wPorjL1f9oBB/ilS79+t9N1u05AILB9qYY/vRkYqJx3/VY9t1snHZU5pDLNCeDvVN42szjh7yQLiACDiBAAsABQTRzCny5fzkYxqfiw82zmrF2iLLAP52Yh9MT+OJOZXw79SEBgB6xePPDzeiOJp8IeP2kfHx9zP4lgPddA3mZ0vL8UwMn2GltkK9EIFUCJABSJUf9egjwev+SoQ4BGgjVnMWdEAe9DNQ8EvDfW4e7NvO/LxcSALtp/KO2LemzJEQJ4L9NLUJm+tBfd0XZ0pLs7wa+Sx9vIuAGAkN/ItxAgeaYMgFeV74IYKenYuCjTVH8eoiywI9cPwwFOf3Xbk9lTLv2IQGwO3KpJAKOLJDw20sHLgHcd00U50mLsk4KnGnXdUJ+E4FkCJAASIYWXbsfAV7nfwHAOamgEXu7p9zdgI7ugR/p/vmqQhxxUFoq5h3VhwTA7nAu+SiM/7yaXCLg8V9Px9SzEzqrCsMLpBcyvhM4z1GLhyZDBAYgQAKAloYqAryuYgHAf5iqkb/NbcNbg9R4F+9uT3Vh7f99eZIA2E1kw44Y/l6TXCLgpBOzcPZxWQkt0ZGFngVpJ8gTE7qYLiICNidAAsDmATTbfb7c/18wpHyE6svvduGBZwcuC3zJaTkQGdxubyQAdq+AcITjplnNQ+4e6btervthHr75lcSeIo0plv7Dxgcudft6o/m7gwAJAHfEWbdZ8rqK+wF+baoDNLUrKL934O2AZxydiZ9cmJeqecf0IwHwZSiTPRpYvEbKyx46j0QknY4q8tzHxsk/cczCoYkQgUEIkACg5aGKAK8r/wPAfq3GyA0zm3se7fbXvnFQGu64KrEELjU+WL0vCYAvIzTzhQ68uy6x0ySL8yT8/vLE1k+6l2F4vuf3bHzV7VZfD+QfEdCCAAkALSi62Aav918PjnvUIHjslU4E3+p/O2BuJsOjNw5XY94RfUkAfBnG55aH8FxdYiWBj/taOqadk1gCYGYaQ3G+9HM2Tv6HIxYNTYIIDEGABAAtEVUE+PKKK8H4v9UY+WBjBL99vHVAE7OuH4Z1K8ILAAAgAElEQVRCl28FJAHw5fJYsSaS8HHSpSdn48xjhq4AKKznZDAUZHuuYhOqHlWznqkvEbALARIAdomURf3kdX5xEqA4ETDlFleAq+5uQCjc/3bA311WiKMOSSyJK2UnLN6RBMCXAdrWGMcdTw0sGPuGMtEKgKJPfraE3CxpIhtXtcDiy4HcIwKaECABoAlG9xrh9dPHgUt1agnc+XQrln3a/3vd6efm4gfjE9vGpdYPq/YnAfBlZKIxDpE3MtQ5ElJvBcCMBCoACuuFOQzZmRjPxs2st+o6IL+IgJYESABoSdOFtnidX7yg36l26i+9040Hn2vv18x547LgPy+x97hq/bBqfxIAe0fm9jktaGxTBg3XmGESfjU5sQRAYWh4voR0KW00O+GBz6y6DsgvIqAlARIAWtJ0qS1e5xcb+Yc+a3UQPo1iO+C/Gvu94lsHp+GPVyT+Re7EMJAA2Duq9z/Tho83979zZM+Vp3wrA6KORKJtVKEU82xoyWSTq+OJ9qHriICdCZAAsHP0LOI7r/N/DOAbat35WVUTNjfs/92blyXh3zcMU2ve1v1JAOwdvqffCGHx+4PvBLj09Byc/M2MhOIuvghHF3s2s/HywQl1oIuIgAMIkABwQBDNnoKa8wD6+v7v/3Vg3tKufqfj9p0AJAD2Xhavvt+N6jcGPklSXP3LsnwcOHzoI4DFtV4JGFnoXcrGV51k9ueJxicCRhEgAWAUaQePw5f7q8DgVzvF99ZHUPlE/9ndlZcW4Oix6WqHsG1/EgB7h+799RFUPT9wCemMNIa/Ti1M+CjpDC8wLN/7FBtflXJZa9suLnLctQRIALg29NpNnNdV3ADwu9RajCsc0//VhNbO/ZO73L4TgATA3qtrqK2AXx/txfUl+QkvSVFwKj9H+hMbJ6uqapnwgHQhEbAAARIAFgiC3V3g9RXngfOFWsxDfr4Dz9fv/xrg3OOzUHG+e3cCkADYe3V1RRTc/HDLgEtOFP8RRYASbbu3ALKr2bjA7ET70HVEwO4ESADYPYIW8J/X+UXi1EYtXPloUxS/fmz/L3aR0X2jL/FfdFr4YiUbJAD2j8Yts5oHLB4lnhgde2jir4xG5EtI83i+yyY8tMRKcSdfiICeBEgA6EnXJbY5B0O9X7y8V31snyjuct2DTfisee/dABMOz+hJ6nJrIwGwf+TvDrZh3Wf7bwU88qtpmHF+HlgS326jizxg6dIodsxDn7t1jdG83UcgiY+I++DQjBMnwOv8SwF8J/EeA1/52gdh/GNe214XlJyUjSvPTHxPtxZ+WMkGCYD9o7FmWwxVz7ejK8x7bvbD8iSI0/+mnJXbU9Y30dZzDHChp4WNl4sS7UPXEQEnECAB4IQoWmAOfLn/PjBcp4Ur4inAg8914P0NERTkSBg7yosrzsxBdoZ7lysJgP5XVjjCsaMljsJcKambfl9rPacA5kqvsQnyaVqsX7JBBOxCwL3fqHaJkE385PUVl4Pzx2ziru3cJAGgX8h6dwDcx8bJP9FvFLJMBKxHgASA9WJiS494nf9rANbY0nkbOE0CQL8gFeVKyMpgFWycLOs3ClkmAtYjQALAejGxrUe8zr8DwEjbTsDCjpMA0C84PTsA0qWT2fFVb+k3ClkmAtYjQALAejGxrUe8rrwaYP9n2wlY2HESAPoER2IMowqlCIvmFLKT7+m/DrU+Q5NVImA6ARIApofAOQ7w5eVXgLFHnTMj68yEBIA+sRAlg4flSm+xCfLJ+oxAVomAdQmQALBubGznGX9zWjHSPeI1QGInsNhuhuY5TAJAH/Z5WQx5WZ6/s/FVN+szAlklAtYlQALAurGxpWe8ruJ/AD/Tls5b2GkSAPoER9QOyPBiEpsQmK/PCGSVCFiXAAkA68bGlp7x5RWXgPEnbOm8hZ0mAaB9cMSX3wFFni6W3jWCHfNYp/YjkEUiYG0CJACsHR/becfr/GkAVgD4tu2ct7DDJAC0D05WOkNRnjSfjZMnaW+dLBIB6xMgAWD9GNnOQ17nLwPwlO0ct7DDJAC0D87u/f+gEwC1R0sWbUKABIBNAmUnN/kHZenoLtoCYISd/LayryQAtI1O7+P/KIvGD2AnP9ykrXWyRgTsQYAEgD3iZDsveV3F/QC/1naOW9RhEgDaBibDCwwr8LzMxslna2uZrBEB+xAgAWCfWNnKU17nPwPAK7Zy2sLOkgDQNjj5WQy52dItbJz8N20tkzUiYB8CJADsEytbecqfKvPg0KLt9BpAm7CRANCG4x4rIws88KaxY9nxVSu1tUzWiIB9CJAAsE+sbOcpr/M/AOAa2zluQYdJAGgXFK+HYWSBtA3j5IMYA9fOMlkiAvYiQALAXvGylbe8fvr3wKXXbOW0RZ0lAaBdYHIyGApy2ENsfIDEqXZYyZINCZAAsGHQ7OIy55US6rdtAPAVu/hsVT9JAGgXmd3V/6QL2ISq57SzSpaIgP0IkACwX8xs5TGvq/g1wP9gK6ct6CwJAG2CIjFgVKGniXVEDmRnzO7WxipZIQL2JEACwJ5xs43XvQcEbQaQbRunLegoCQBtgpKbyZCfLd3Fxss3aWORrBAB+xIgAWDf2NnGc15XIQO83DYOW9BREgDaBGVkgcS96dIR7Liq1dpYJCtEwL4ESADYN3a28Zy/M+MQxJWPAWTaxmmLOUoCQH1AMtMYinOlBWyCPFG9NbJABOxPgASA/WNoixnw5f5KMNxuC2ct6CQJAHVBEV90Iws9EY9HOZaNmynEKDUi4HoCJABcvwSMAbD7lED2GsBPNGZEZ41CAkBdPAuyJeRkMar8pw4j9XYYARIADguolafDV1w9Akra6wCOsLKfVvSNBEDqUcnOYCjM8QQwrqqCCv+kzpF6Oo8ACQDnxdTSM+LvXVOEaHw2OOg9bBKRIgGQBKzeS8WXW142i+Rmen6LcaP/xlilkrwV6kEEnEuABIBzY2vpmfEVFadC4RcDOB6AF+BNgLSaThDsP2wkAAZezqKyX3s3Ho8r/KA0hrHeNLA0L1ufk8FeTc/0yOzYh7Za+sNAzn1BoKys7MB4PH4m5/wIzvnBjDGRONzBGFsDYLOiKJs9Hs/WvLy8zbNnUx0HtUuHBIBagtRfMwKcg6He/5nI19LMqEMMkQDoP5CisM8BRZ4Q2scUsDMqYw4Jt6um4ff703bu3HkJgOsATACQ6H3pc875VkmStnDONwEQf2+RJGmToihbw+HwloULF4ZdBTPJySYKOkmzdDkRSI0Ar/MHAZSk1tu5vUgA9B/bDC8wLN+7lI2vOsm50XfszFhpaelVAP7OOR+m0yx3iicH4g/nfL0kSas556sZY6tqamo26jSmbcySALBNqNzhKK8rvwlgdEb7PuEmAdD/+s/LYsjLkh5k4+Vr3fEJccYsJ06c+HWv1/ss5/xwE2f0OYAljLGfu1UMkAAwcfXR0PsT4PXTTwSX3iI2exMgAdD/iijOlZCZAT8bFwjQmrEHgcmTJ98Yi8Xu5Jx7zPTY6/WGc3JynkpPT79fluVlZvpi1tgkAMwiT+P2S2B3vQC00NkBJAAS+YgcUOSB5GET2PFVdYlcT9eYSoBNnjx5bjQa9ZnpBWMMOTk5yMrK+sINxthSRVEqA4HAC2b6ZvTYJACMJk7jDUmA1/sXg+O0IS900QX0BGD/YHulnup+MbRH8uhkP2t/GMrKytIBrIzFYt8w09OMjAzk5uZCkqR+3WCMPcMYm/HQQ+7YOUICwMzVSGP3/xSg3v9HcNxGeL4kQAJg/9Wwu8CPtJKNl4+ltWJdAlOmTMkMhUKfRqPRg83yUtzwxa/+zMyEjiNpZoxdXVVVNc8sf40alwSAUaRpnIQJ8PrpZ4JL/0u4gwsuJAGwf5CLciVkZbD72Dj5Jy5YAracYu/Nf000Gj3QrAl4vV7k5+fD40kq5UAUjaqUZfmPALhZvus9LgkAvQmT/aQJ8EVTMpGX3gTgy5d0SVtxVgcSAPvHc1ShBI/EJrPxcrWzou2M2ZSVlXk8Hs/H4XD4MLNmJN7zi0f+qTbO+TzG2FWyLLemasPK/UgAWDk6LvaNL/e/DIbvuxjBXlMnAbD3SvBIwKjCnl90Y9h4eTutE+sRuPTSS//X1dV1phmeiUS/vLw8iHf+GrTVkiSVPvTQQx9oYMtSJkgAWCoc5MweAryu/JcAu4OI7CZAAmDvldD7/v9TNl42NamM1mf/BC6//PK7QqHQDZwb//RcvO8vLCxM9pH/UKHs2FVA6LJAIDB/qAvt9O8kAOwULRf5yt8unwCJve2iKQ86VRIAe+Ppef+fLgXY+Co/rRFrEbjyyit/2NnZuWDXtjrDHRPv+cXNf6Asf5UOxQHcIMvyv1TasUx3EgCWCQU50pcAf6rMg0OLRBnPIiJDTwD2XQM9+//Br2QTAo/R+rAOgWnTphV3dHRsiUQihufvpKen9zz21+nm3xeyPGbMmOsqK+1/9gQJAOt8dsiTfQjwuooagJtaNMQqQaEnAF9GIs0DjCjoef//VTZeFofAULMGAXbZZZetDIVCRxntjtjeJ27+RjWRHJibm3vJPffc02XUmHqMQwJAD6pkUxMCfHnFNDA+UxNjNjdCAuDLAPbW//+AjZcNv9HYfBnp6v7UqVN/1dLS8iej3/sbffPvA3FRLBabNGvWrHZdweponASAjnDJtDoCfOWMkYgqIsO7/7Jd6szbqjcJgC/DJX79p0m4g02QqViURVax3+8/uLW1dW0kEvEa6ZKJN/890xQlqM+XZbnByHlrNRYJAK1Ikh1dCPC6ircAfqIuxm1klATA7mBJDBDv/8GUk9i4mUttFEJHu3rllVcub29vH2/kJC1w898z3Y9isdjZs2bN2mbk/LUYiwSAFhTJhm4EeL3/V+D4k24D2MQwCYDdgerd/vc5xo0ZzVil8WnmNlkvRro5ffr0y5ubmx8zMutf7O8X7/zFfn+LtFUATpdle9WksAw9iwSR3LAYAb58xrfBlPct5pbh7pAA2I285/jfNPYImyBPNTwINOB+BESp31gstr2zs7PQKDyitK/Y6mehm/+eqX/q9XpPf+CBBz4zioXacUgAqCVI/XUnwOv8qwF8XfeBLDwACQBAfFmJx/9M4qVsXCBo4XC5xrXp06dXNjc3327Ur3+xxa+oqMiIrX6pxvC9eDx+xsMPPyxKmVu+kQCwfIjIQV5X8Q+A/8zNJEgAfPH4vxuZ3hHs2w90uHk9WGHu11xzTVFbW9u2UCiU0BF7an0Wv/jFL3/xBMDi7R2Px/P9Bx98sNnifvaIampEwNIE+IqKk6DwNy3tpM7OkQAAhuV5kJGGajZenqwzbjKfAIGrr776gdbW1muM2vYnTvTTqLZ/ArNTfckbOTk551i9TgAJANVxJgNGEOB1/k8BHG7EWFYcw+0CoM/j/wvZuMAzVoyRm3yaMWPGga2trRu6u7sN+TmenZ2NnJwcuyGeO2bMmMmVldZNViUBYLcl5VJ/+XJ/JRhud+n0XX8Y0BfZ/8BBbLwcdes6sMq8p06d+kRzc/MlRvgjHvmL9/42bXfJsnyTVX0nAWDVyJBfexHg9dO+Du4RW21cuWbd/gSgt/jPP9gE+ef00TCXwLXXXvuVlpaW9V1dXT31mPVs4r2/uPmLQ35s3H4sy/L9VvTflV+mVgwE+TQ0AV7nF4VfvjP0lc67ws0CIM3DMKJAArh0PJvw0DvOi669ZjRt2jS5ubm53Ih3/zZ77z9QIOOc81IrHiVMAsBenz1Xe8uX+38MhnvdCMHNAqAgW0JOJvuQjZe/7cbYW2nOM2bMGNne3r41FArp/u5fJPwJAeCQ1s4YO7GqquojK82HBICVokG+DEqAr7h6BJS0LQDS3YbKrQJAfEGNEkf/Mn4zGx/4u9vibrX5Tps27e6Wlpaf673v3wb7/VMJzapYLDbeSocHkQBIJYzUxzQCvK7icYBfZpoDJg3sVgHQm/zXiXjaV9l37m80CT8NC8Dv9xeEQiFR9S9LbyC5ubnIytJ9GL2n0Z/9/8qybEjyZCKTIwGQCCW6xjIEeP30ceCSOIHLVc2tAqAn+c/D/snGV13vqoBbcLLl5eW3Njc3/yUej+vqXVpaWk/BHwe3GbIsV1lhfiQArBAF8iEpArzevwQcJyfVyeYXu1EAZKQxDMuTxN3mCDZeXmvzENra/crKSmnDhg1bW1tbD9BzIjaq9qcGQ1hRlFNmzpxZr8aIFn1JAGhBkWwYSoDXl08GZ08aOqjJg7lRAPQe/PMkmyBfbDJ+1w9fUVFxYUtLy/xIJKIrC/HYXzz+d0Fb29XVdcxjjz3WaeZcSQCYSZ/GTokAf6rMg0OLxAFBY1MyYMNObhMAX2z9A05k4+VlNgyZo1yeNm3aq01NTafqOSnx67+4uNjKB/1oOn3G2D+rqsx9tUUCQNOQkjGjCPDl/lvAcKdR45k9jtsEQFGuhKx0LGbjA2eYzd7t40+bNu3r3d3dq0KhkK73C5uW+1WzPBQAp8my/IYaI2r66hpQNY5RXyIwGAH+3jVFiMQ3AHDMRuHB5usmAeCRgJEFnl2Vn/kP2ITAQvokmEtgV/b/PY2NjdfrufXPbb/++0T044yMjOPuvffesBlRJgFgBnUaUxMCvK7idwD/rSbGLG7ETQKg591/uvQ6G1+l6yNni4fcEu75/f60SCTS0NraqqvQFgf9iCcALm1/kmX512bMnQSAGdRpTE0I8Dp/AYD1AGx7UkiiINwiANI8gNj6B4Wfwk4IuPoI6ETXhp7XlZeX/7Cjo2NBd3e3bsM4tOhPMryijLEJVVVVK5PppMW1JAC0oEg2TCPA6/2/AsefTHPAoIHdIgCG50tI97JaNl72GYSWhhmEwPTp06ubmpr+T8+6/y58998f8TdlWf4uAG7kgiQBYCRtGktzAnzRlEzkpX8M4BDNjVvIoBsEQFY6Q1GuFIaHHcWOqxK7PKiZSGDq1Kl5sVisob29XdfS28OGDXNN5v9g4WSMXVRVVVVjZMhJABhJm8bShYAb6gI4XQCIL6KRhR54JPZ7Nr7qdl0WChlNikBFRcWVLS0t/9Zz739mZiby8vKS8svBF68B8C1ZlqNGzZEEgFGkaRzdCHAOhhX+ReA4TbdBTDbsdAHQe+KfyOf4Nhsvh0zGTcPvrv3/ckNDw/f1fPwv9v17PB7i3UuAMTa9qqrqYaOAkAAwijSNoysBvqz8cHjYuwAceYKIkwVAb+KfAi59n014aLGuC4WMJ0RAHPwTDocb29radLs7e71eFBU5Pn83Id59LtrY3Nx8eHV1tb4lF/cIjmS9o+uJgFUJ8Dr/LwD82ar+qfHLqQJA/AIRWf9eD7+XjQ/8VA0j6qsdgfLy8skdHR1P6pn9Lx79i1cA1PYmwDmfFggEZhnBhZ4AGEGZxjCEAF9U6Y1lbW32epnjiok7VQD0Pvr/BGld49kx5tZFN2SR2mSQ8vLyx5uami7Tq/iPiwv/JLIC1jY3Nx9RXV2t77GLAEgAJBIOusY2BD5/6coVwwozj5MctrKdKAB66/13Q+EnsRMC4vUNNQsQKCsr8+Tm5ja0tLTodiYvJf8NHmjGWFlVVdXTei8Hh31N6o2L7FudwPYXrnwrI106sShP151LhmNwogDoOe43n13NxgVmGw6UBhyQwIwZM05pb29/IxTSLxezsLAQaWlpFIWBCbwry/LxetcFIAFAS9BRBIQAAPiJedle5GQ55wvGiQIgrijbDj7vkQMdtQAdMBm/3//H1tbW2/Ta/ice/4u9/+JvagMTYIydU1VV9ZKejCgCetIl24YT2CMAxMCFuenIzNAtidnQuTlNAEQiCtpD4beOnvzEyYaCpMGGJOD3+19vaGj4rl7b/7KyspCb67g0nSG5JnsBYyxYVVVVmmy/ZK4nAZAMLbrW8gT6CgAGhqKCdKR7Jcv7PZSDThIA0ZiC1o4IGMObR5fNOWWoudO/G0dAHP4Ti8XampubdUvPp8f/CcczpijK2JkzZ25JuEeSF5IASBIYXW5tAn0FgPBUPGUsystAepq9RYBTBMCem7+oeM4kEgBW+zT5/f7vdHV1Le3o6NDFNXHwjyj+Q4//E8b7O1mWKxO+OskLSQAkCYwutzaBfQWAU0SAEwRANKqgtTMK8N3nnZAAsN5nqby8/Gft7e3/CIf1OZ4+IyMD+fm6nixsPajqPNooy/JYvZIBSQCoCw71thiB/gTAHhFQkJuGzHSvxTxOzB27C4CweOcvbv59DjsjAZBY7I28qqKi4snGxsbJ8bg+W9Cp+E/y0ew9Krgu+Z5D9yABMDQjusJGBAYSAHumkJvlRW62/XYH2FkAdIVj6OyK7XfQKQkA632wysvL1zU0NIhfnLo0OvkveayMsT9XVVX9KvmeQ/cgATA0I7rCRgSGEgBiKtmZXuQLEWCj1W9XARDqiiHUHet3BZEAsNYHa8qUKZkej6ejqalJl60zVPs/5Xh/IsvyN1PuPUhHG30F6jF9suk0AokIADFnsT1QvBIQOwXs0OwmAMRr/vZQDJFI/zd/wZwEgLVWXnl5+ZHRaPSD1tZWXRyj7X+pY1UU5YCZM2fuSN1C/z3t8e2n9azJnmMJJCoABIC0NAmiYqBkg4IkdhIAirj5d0QgMv4HayQArPUxLC8v93V3d9fotQNAJP+JJEBqyRNgjE2sqqpakHzPwXuQANCaKNkzlUAyAkA46vUwFOZl9Pxt5WYXARCPK2jrjCIe353pTwJgKArW+Xe/339Le3v7nXqdAEjv/1XF+g5Zlm9TZaGfztb+1tN6tmTP8QSSFQACiNiTXJCTZumqgXYQAJFIHO1dMXDxCCCBRk8AEoBk4CV+vz/Q1tY2XY8tgB6Pp2f/P7WUCVTLsjw55d4DdCQBoDVRsmcqgVQEwB6He5IDc6y5Q8DqAqAn2S+8f6Y/PQEw9eOQ1OB+v39eS0vLxGhUbNfUttHpf+p4cs6XBAKB76qzsn9vEgBaEyV7phJQIwCE46JioDhDQLLYecJWFQAK52jvjCEaTX7fOD0BMPWjst/gfr//lZaWljP0EACi9r9IAqSWMoH1siwfmnJvegKgNTqyZ0UCn7141VucKyeq8c0jsR4RIJIErdKsKABEkp8o7qMk+Mh/X5ZMwltHl82hw4Asssj8fn9dc3PzuFhs4J0bqbpK9f9TJfdFvx2yLB+g2so+BugJgNZEyZ5pBLZu3Xo1izbcx9bPykakSaUfDLlZnp4jha2wScBqAqCnuE9IxY0ivRCx0Rd1SRlF1x933HGyymBRdw0I+P3+VY2NjYcpyuC7N1IZavjw4VT/PxVwX/bZIsvyV9SZ2L83CQCtiZI9Uwj03PwZmwlAQjwEtulxoGOtal+8HgkF4mmA19yPilUEgMju7whFh9ziNyj47IPAR08CvNngnIt3B9eSCFC9VFUb8Pv92xsbGw/QWgBQAqDq0AgD9ApAE4xkxHEE9rr575kdj4NtfwZofFOT+eZmpSE327xzBEwXABzoisR7S/omluXfL/jCY8BHfh9gXxabIxGgyRJVbUQIgIaGhgN472FNqg32GqADgDQhuUKW5XGaWOpjxNyfNVrPhuy5jkC/N/++FJqWgW2bB/T80FTXxFMA8TRAPBUwupkpAMTeflHVLzZEYZ9BmYgb/sjTwQuP7/cyEgFGr6j9x/P7/Wt37typeaJZdnY2cnJyzJ+gvT14Upbli7WeAgkArYmSPcMIDHnz3+NJx2qwjY8DSrcmvuVkigOFvIa+0zRDAIhfgqHuOLoGqOWfMExPJjBmInj2VwftQiIgYaK6XOj3+99raGg4SusnAHQCoCbh+pMsy7/WxBI9AdAaI9kzmkDCN/9ex1ikEdjwCBDeqYmrYptgXpYXWRleQw4VMlQAcKA7EkNndzzhoj4DQk0vAj+wFEhPrAgMiQBNlmdKRioqKt5qaGg4UescgIKCAqSnp6fkE3XaTYBzfkkgEPiv1jzoCYDWRMme7gSSvfl/4VC8C9j0OFjHGs18FK8D8rK9yEjX5QC1L/w0SgCIan7iV38srkEmeM5Y8DEXAlJy9d9JBGi2PJMy5Pf7FzY1NZ0Xj6t/XdZ3YCoBnFQYBrp4jCzL2zWxRE8AtMZI9owikPLNf4+DXAF2vAC2c7GmLouaAbmZachI1yc/QG8BIAr5dIbjiEU1uPGLXyxF44ARp/cc+ZdKIxGQCjV1ffx+/32tra3XRSIRdYb63mAYg9gCSE0VAToOWBU+6uwIAqpv/n0pNL0Ntq1Wk+TAvma9XoaczDRkpns0rR+glwDojsTRrdUvfgFCJPuNOhu84CjVa45EgGqESRkoLy//WWdn5z+6urqS6jfYxbQFUBOU98my/BNNLO1jhF4B6EGVbGpOQNOb/x7vQhvBNj4KxDo091ccMZyV6UV2hgceDU4a1FIAxBWOcDgOcfNPtYpfv8A82eBjJgLZ2tUrIRGg+dIc0KDf778gHA4/09bWptmgaWlpEFUAqaki8D1Zlt9QZWGAziQA9KBKNjUloMvNf4+HkcbdIqD7M019/sIYA9I9Us9Jg5kZXqR6xIBaASBq9keicYQjHNFYHFCxlb8/UDxjBHCgD0gr0JwjiQDNkfZrcPr06WMBrGtsbNRsQKoBoBrlJlmWDxFv1VRb6scACQA9qJJNzQjoevPf46USBtv8JND2oWZ+92+IId3LehIGRa6AV5IS3kGQigCIxXnPIT2RmIKoRu/2+51X7tfAD7gA8CSX7JcMbBIBydBK/Vq/37++sbHxEC13AoinAF6vt2cnAO0GSC42nPM7A4HAL5LrlfjVJAASZ0VXGkzAkJv/F3PiwI6XwT5/2bBZiq2EaV6p54/Xw5DmkSAOIkI/n8rBBQCHSNwWZXpF9n5MUXpK9Yp8R30bAy8+ARj+PWia8DCA0yQC9I2msF5eXj6zra1tmpaJgH29ZoxBCII9okAIA90tO3oAACAASURBVEkIYWr9EeCc828EAoFVeuEhAaAXWbKrioCxN/8vXWWtK4HN1QDX/kz0RICIg4dE/oDIGxB/iy9M8d86w0BHl4LdVVo5xCN98b/Fbj1Fiy17iTi31ze5F/yAc4H8byXbU9X1JAJU4Ruyc0VFxSVdXV1PtLe3D3mtVhcIASCEgEgYFH/E/xd/9vxvrcZJxo4ohrTnj3gaIv6I/y+2SIq/xf8XPosqh3o1zvlzgUDgAr3sC7skAPSkS7ZTImDWzf8LZ0Vy4KbHgKhxX4JDgers5hB/rNC4NxcYUwJkjTbFHRIB+mH3+/0FnPNtjY2N2VpXBEzVayEGdgvh3bcr8Xff/9b33/qO0Z//e/7bnlcce/7u+9/33PiH8reoqKhHBOjVOOc/CAQCC/WyTwJAT7JkOyUCpt/893gda9udHBjanNI8tO5kGQGQMXJ3Zb+0PK2nmJQ9EgFJ4UrqYr/fX9Xe3u7v7tamdHZSg9vk4qysLOTm5urp7aoxY8Z8s7KyUtcXefQEQM8Qku2kCFjm5r/Hax4D2/I00PJOUvPQ42IrCACedwQw+nyApekxxaRtkghIGllCHSoqKo6JxWLvNjU1JXS92y4STxyKi4t1zV1gjE2tqqp6RG+2JAD0Jkz2EyJguZv/F15zsJ2vAjueFwW5E5qLHheZKwAY+LCTgOEnW+6tIYkAPVYbIMoCt7S0nBeNmpMLo8+stLEqTjbU890/gI0ADpNlWXf4JAC0WRNkRQUB6978+0yq9X2wLU8BinZlUpNBZpoAkNLBR/8AyD0sGXcNvZZEgPa4Z8yYcWA0Gv2oqakpX3vr9rUocg/Er/89+Qh6zIRzfl0gEHhAD9v72iQBYARlGmNAAra4+fd6z0SxoI2zgUiz4RE1RQCk5YGP8QGZowyfb7IDkghIltjQ15eXl5eHQiE5FAoNfbFLrjDgaOPtkUjk0NmzZxuSgEECwCUL14rT3LFjx6h4PC6y7KzxUjkRSGJnwKZHwUKbErlas2sMFwDZB4GPmQR49NvmpBmcLw2FX3nllW/Pnz9/w+LFi2M62HedSb/f/2hTU9MVWp8QaEeQBp1r8GNZlu83ig8JAKNI0zj7Eaivr/9mcXHxnIyMjONshYfHwbbWAM11hrltpADgBUcDo87afbCPjVooFIp8/vnnwXXr1v3njTfeqI/FYq3z58+3zl5OG7Hc4+q1116bGw6H65qamo6wofuaulxQUKB3JcONGRkZR9x7771hTR0fxBgJAKNI0zg9BBYtWpSZl5d3IWPMzzk/S7xLGzVqlK4ZtXqhZ41LgO3PwICSez01AHSvAyCO7h3+XfDi7+iFTDe74heqyFrfs587Fot92Nra+mR9fX1w7dq1271eb0t1dbW2B93rNhtrGfb7/V8LhULvdHZ2mrv300QsooSxEAB6Ns75tEAgMEvPMfa1TQLASNouHqu+vn4c5/xKAFcAKOqLQmTU2vbEsPZPwTb/B4hrd4Rqf8tEdwHgydhdzz/3a7Zcpa2trQiH9//hxDnv7Orqeubzzz+vff7551+NRqOtCxYsoJfaSUZ5xowZp7S0tLwaDoft9VgoyXkOdLneRX8AiH3/R1ZWVhr66ooEgEYLhMzsT2Dp0qX5aWlpF3POKwAcPxijESNG9NQHt2WLNIBtmA2Ed+rmvp4CgKcXAqK4T/ow3fzX07DYqtbcPHRiZjweX9PR0VH79ttvz9mwYYNI4milpwKJR6a8vPyi5ubm6ng87qr7RmZmJkTyn85tsizL1TqPsZ95VwXSaLhuHU/82lcUxc8YuxRAQuWyxM1/+PDhum6v0TUe8S6wTY8DHWt0GUYvAcBzDgFGXwh4MnXxW2+j4pG/ePSfTJIa5zwcDocXff755/9dvHjxi42NjU0LFy407L2r3kz0tH/VVVf529vbq6xSJljPuQrb4hXlsGHDdP1e2lXy9+1AIHCiXkf+DsaIBIDeK8gl9uvq6goYYz/inF8L4JhUpi3esYkiG7ZtPN6TE8Aa39R8CroIgMJjwEd+33bJfn3hii1qHR0dKfOOxWLrOjs7az788MM5H3744frq6mqRNKhr+dWUnbVIx8svv/yGUCh0lxtEgCj3K8r+6tkURTl15syZr+s5xkC2SQCYQd1BY/b5tX85AFV7xuycELhXSJuWgW2bBwhBoFHTVAAwD/jI04HCQd/KaOS5fmb2TfxTM5KiKJFIJPLKjh07/vPiiy++2NHR0UxPBQYmetlll10bCoXus1xpSDWLYJ++Bm37q5Vl2aeh20mZIgGQFC66WBB47733iqLRaBnn/CcAvq0lFVsnBPYF0bl+94mCsU5N8GgmADxZ4GMmAtkHa+KXmUYGSvxT61M8Ht/Q0dHx9Jo1a5547bXX1i5cuFA8FTCvDrTaCenU/+KLL/5RNBp9QlEUSachTDVrwLa/OGPs6Kqqqo/MmigJALPI22xczrlUV1d3piRJV3LO/w+Abs/FbJ0Q2Deu4UawTf8GuneojrYmAiBjBPiBJUBaoWp/zDaQaOKfGj8559FwOPy/lpaWmoULF85ftWpVU319ve712dX4bHTfyy677Jyurq5nOef6nYtr9KSAnv3+em/7A1Aly/IME6b3xZAkAMykb4Ox33777QMkSboKQDkAQ/aI2T4hsG9c42Fg83/A2j9WFW3VAiBnLPjoH9o22a8vvFQS/1TBF0kBivJZKBRasHbt2odff/31j+bPny8SD+ipgNjXe8UVY7u6upbG4/GRajlbob94FSm2/YlXADq2Dq/Xe9gDDzzwmY5jDGmaBMCQiNx3wZ5f+6JYD4ASM0r12j4hcK87lgLseAFs5+KUF5MaAcCLxgEjzhApzSmPb6WOahP/VM4lHo1Gl7W0tPznpZdeenrDhg0NVHa45/TAtObm5pdisdhpKvma3l0k/YnkP53b72RZrtR5jCHNO+MbYchp0gWJEFixYsUYRVFEoR7xWOqQRProdY1jEgL7AGIt7wJbqgGefK2PlASASPYbdQ5QoGmahl4hT8iulol/CQ04yEWKonze1dVVu3nz5odfeumlD6jAEHDxxRf/NBKJ3M051/Xns9rYDdRfnPYnfv2Lv3Vsn/X++k99+4pGzpEA0AikXc089dRTnrFjx57R+2tfZKNa5l2eYxIC+4qA0EZgo0gOTK5EfdICIC0XfPQkIGuMXZdmv37rlfinBhLnXInFYktbW1vnLFu2bO62bdsa3Fxg6JJLLhnFOX8xHA4frYarGX0NOO1PTGuGLMtVZsxv3zFJAFghCib4sHTp0oO8Xu9lAMS+fcumhDsmIbBvjKOtYBv/DXRtTTjySQmAnmS/UiDNWUe5G5H4l3BABrgwHo83dHd312zdunX2Cy+8sNLNTwWuvPLKqfF4/J5wOJyfTKEmtTFItb945y9+/Yunjzq2T8eMGfNto0v+DjQfXWeqI0QynQKBDz74IL27u3sSAFGT/3wAln9M56iEwL4xUyJgm/8LtH2YUCQTFgB5R4AfcD4g2bSs8gA0zEj8SygwA/vb81Sgs7Nz7urVq+dEo9GdlZWVriswNGXKlEKPx3NXKBS6uru729L3G3EeiQHlyH2yLNeqWVta9rV0QLScqJttLVu27HCPxzMVwNUAbJep66iEwL0WIgfb+Srw2fNDJpQPLQAYePEJwPDvOSbZry8qkxP/VH19KIrSFg6Hn2tsbHyourp6qRsLDE2fPv3EeDz+aEdHx2GxWPI5MKoCkEDnjIwM5Ofr/sTsDVmWv5eAO4ZdQgLAMNTGDrR69eqM1tbWib3H7n7fzhW7nJgQuNdqaFkJtrUaUAbeYj6oAJDSdv/qz3Pmke1WSvxT+ykWxxR3d3c/vmbNmtm33HKLKBDhmq2ElZWV3l35ET/u6ur6cygUylQUazwQMWjbnziq+pRAIKB9nXAVi5IEgAp4VuxaV1f3DQBTAEwDMNyKPqbikxMTAvfi0L1994mC0ZZ+8QwoALy5u9/3Z45KBast+lgx8U8tOEVR2sPh8LMdHR3yq6++Kn4ZuqbA0LXXXvuV7u7u2buqLX47Go2a/kRSnD8ivl/0bJzzpwOBQJmeY6RimwRAKtQs1mfRokWZeXl5Fzrh1/5gaB2ZENh3wtE2sE2PAqHN+2HoTwBwkeE/WlT2s/EBSkN8luyQ+Kf260A8FYhEIo+tWrXq3255KjBjxozjOjs7H+no6Ejp4DC1zPf0NyjxL8oYO7Kqqmq1Vn5rZYcEgFYkTbCzYsWKbymKIhL6RJW+YhNcMHRIxyYE9qXI42Bb5wLN9Xux3VcA8LxvAqPPBZizkv32QpHCUb+GLkiNB+Ocd0QikWfa29sDsiy/5uQCQ9OnTx/b0dGxNhwOm3oPMqDev1gl98myLM5NsVwzFb7laNjAoTfeeCMvKyvrEs65uPGfYgOXNXXRuQmBe2NijUuA7QsAvvsV8ZcCgIEPOwkY7vzQ2znxT+2iF08FotFodUtLy8yrrroq8f2iagc2qP/UqVOfbG5unmzQcP0OY1DiX7uiKIfNnDlT/YEgOsAiAaADVD1M9jl291IAutep1GMOWth0fEJgX0jtn4Bt/g8Q794tAKJpwOgLwHO+rgVKS9twUuKfGtCc83A0Gv1fLBabOWfOnPlOKDBUXl5+eGdn58ddXV26ltsbjLtRiX8AbpNl+Q41a0DPviQA9KSr0nZdXV0BY+xHnPNrAByr0pxjujs+IbBPpJRIs9K97vFQZ7fC4sPPzZLSi0370jRyATkx8U8tv3g8vpZz/t+tW7c+VF5evkWtPbP6T506dWFzc/N5Zo0vxjUi8Q/ANgCHybIcMnOugwohqzrmZr/q6+vFXtFyvY/dtTNjxycE9ganW2G46dMiINyBWw/YigzJ+bvG3JD4p/Kz1x2NRp+LRqMPz5kz5wU7PRWYPn36uI6OjrpwOKwSQerdReJfcbH+KVOc82mBQGBW6p7q35OeAOjPOKER3nnnnUJFUSZzzq8DYLsa2glNUsOLXJEQCOD+TXlY1JwFqbsdp2U3oGxUp4YUrWfKbhX/zCaoKMr6eDw+R1GUhy688ELL5wpcffXVS1paWk42k5tBiX8fjxkz5mirlPwdiDcJADNXIoA+7/bFKXxZJrtjq+GdnhC4vC0Dd64v6ImJEABSuB3+g9rx7Vznbhl3c+Kfmg8f5zwqDuCJx+OB5cuXL7Bi2eGKiorzWlpaFkYiETVTVdVX/HAQJX/1boyxC6qqqp7Texy19kkAqCWYQv+lS5eO8nq9oljPdADOz+hKgVEiXZycENgak3Djp8Voie1+5S8EAAu3I8/D8cuxLcjzOu9VACX+JbLqh74mHo9vBFAdj8cf/OEPf7hu6B76X+H3+7PD4fCatra20fqP1v8IRiX+McZeqaqqEtVXLd9IABgUIs65VFdXd2bvsbslAJy7gdsgpmIYpyYE/mV9Iera0r8guUcAiP9wdG4E5QeZfpS45lGmxD/NkcYBvMUYCyxZsuQJMx9HT58+/e8tLS03mnkqoPiuEMl/OjfB/DhZlt/XeRxNzJMA0ATjwEbq6uqE4hV79isAjNV5OFead1pC4IuNWZC35O0Vy74CQPzD5Qd04juF5iVSab3QKPFPa6L72RP70J/0eDz/+v73v79W99H6DFBeXn5kKBR6LxQKmbaDRZKknsQ/nY/6FbO+X5blHxvJV81YJADU0BugL+ec1dfXnw1AbN+70A7H7uqAwTCTTkoI/CzswU2riiGy//u2fQVABgNuPbQVI9LEDw57N0r8My5+nPM4Y+xZxtifzz777KUGjMymTp26tKWl5QQRZ7OaOOlPFP7RuTUDOHyXAGjQeRzNzJMA0Awl0Fulb1rvvv3DNTRNpoYg4ISEwDgHfrO2GKs6vfvNdl8BIC44NCuGnx3cBsnmn2JK/DPn4805f93j8fz1rLPOekYvD8rLy8tbW1tl8YTHrJaeng7x/WBA+5ksy/8yYBzNhrD5V4dmHFQZWrFixYh4PH4dY0zUe9Z/g6kqb53Z2QkJgU99loOndvT/jrI/ASAiOWlEF84a1mXboFLinyVC9zGAf65fv35WRUWFZnfqGTNmHNjZ2flpR0eH7i/eB6JoVOIfgE9Eeo7dTnUkAaDi8ydu/Iqi3Nb7fj9ThSnqqgEBOycEruvy4lerixEb4CnpQALAy4CfH9yKg7Ps+SqAEv80WPjamdjEGPvLWWedVcUYU1SaZdOnT3+5ubn5TEVRayp1T3Jzc5GVpf/uas75DwKBwMLUPTWnJwmAFLivXLkyJxqNikSPXwIw5NlSCm66sosdEwLDCsPNq4qwLbz/o/89QRxIAIh/PyAjjlu+2oY0m1UJpMQ/y35EVzPGfnn22WfPTdXD8vLyn7S1tf3LzD3/Rj3655w/FwgELkiVlZn9SAAkQb+uri6NMXb1riS/34nv3SS60qUGEbBjQmBgax5eaBj8V8pgAkCgPbO4G76Rli05vl/0KfHPoA+EimEkSXodwI1nnXXW8mTMVFRUHNbV1fV+e3u77ll3gz36F1n/Ivtf5yaqGh0jy7J4BWC7RgIggZCJrP4VK1Zcyjn/A23lSwCYyZfYKSFwZXs6/riuEEPlRw8lAEQi4LUHteGInJjJ9BMbnhL/EuNkgvaniraPMnJUkSTwQ2DeVPZWWltGnTJpH1P8HMrP+8vDxkZhryVvYPsiz/diguVv13EgBDRGb58uVHAJB3VXc61apBJL/2JmCXhMD2mIQbVhWjOTr0r5ShBIAgUOhV8Muxrcj2DCUnzF0xlPhnLv8URxeZpn9saWm5c/LkyQMmnFRUVPy6ubn5D2Zm/YvtfmLbnwFtVSQSOWb27NndBoylyxAkAAbAKh73A7hh1z9XAjBESuoSYZcatUNC4N0bC/BmS2JPSRMRACLU4/MiuOpAa1cJpMQ/W38oPxSn3J177rnL9p1FeXn5sV1dXXWdnZ0es2YoHvkXFRUZ8eifK4py2syZM8VrEts2EgD9hG7FihUnKYoS2FVP+0jbRpYch5UTAsUJf+Kkv0RbogJA2Lt6TCeOz7dmlUBK/Es04pa+TrxneiAtLe3WM844o+fX7xVXXJGTlpb2XktLy6FmPvoXB/2IPCADWpUsyzMMGEfXIUgA9MG7dOnSfI/HcwdjTFTwG/q5rK6hIeNqCVg1IfDzyO5qf6F44h+/ZARAliQODGpFUZp526/6ix0l/qld0dbqzxj7xOPxTD/zzDOX+P3+R5uamq5wQa1/EYTtHo/nyAcffFBU/rN1S/wbyNbTHNr5FStWjFcU5UlRYG3oq+kKuxCwWkKgwoHfrSvChx3J/UpJRgCI2HwjO4prD26HlT7glPhnl09NUn7GP/744xeWLl36g+5u816Fe73enkf/RjTOeWkgEAgaMZbeY1jp+0HvuQ5ov76+3s85FyUcE3sha5qnNHCyBKyWEBj8PAdztidfGC1ZASA4XTQqhNOLzPtS7hsrSvxLduXa4/qOjg4888wzaG4278ewgdX+xGFCz1RVVYnzXRzRXC0Aeh/5iwz/HzkimjSJfglYJSFwQ5cXv1hdhBhP/mOXigAQVQJv+moLDsw0/1UAJf4578MpKvy98MIL2LhxI8x872/glr82RVGOnDlz5hanRDP5byKHzLy+vn6c2N8K4GsOmRJNYxACZicEipv+rauLsbErtQTpVASAwHFQRhw3HtIGLzNvayAl/jnzo/nuu+9i+fLliMXMqz0h9voLAWBQmyHLcpVBYxkyjCsFQF1d3bW7SvjeAyDdEMo0iOkEzE4InL0tF8/szE6ZQ6oCQAx4dnEXJo4058AgSvxLOeSW7rht2za8+OKL6OoyZ10JOB6Pp+e9v3gFYEBbNGbMmLMqKyvNf5ym4WQNIaehv6pMiYp+dXV1tzPGbldliDrbkoBZCYEf7Ur4q1xXBJEAmGpTIwBElcAff6UNh2Ub/0uNEv9Sjbh1+4mYPvvss2hoMO/YeyPf+wNo7T3pb8hKiNaNWv+euUYALFq0KDM3N3c2ve+32xLVzl8zEgI74ww3flqMhmhqj/73zF6NABA2hqUpuPWQVmQZWCWQEv+0W7tWsSRi+vLLL2PDhg0w85Q/IebFYT9GNM75lYFA4DEjxjJ6DFcIgGXLlg3zeDy1AL5rNGAaz1oEjE4I/MfGfLzRor6QpFoBIKJwUkEYl47uNCwglPhnGGrDBhLv/FeuXAkzS/2Kz3BOTvI7aVKBxDmfFwgESlLpa4c+jhcA9fX1XxfHNQI4zA4BIR/1J2BUQuDS1gz8fYM2p0VrIQAE2aljOnBcvjjATN9GiX/68jXD+vr16/Hqq6+a+t5f/OoXdf4Neu+/U1GUo2bOnLnDDN5GjOloAdBb0vcZAMVGwKQx7EHAiITApqgHN3xahI64NgUltRIAOR6OXx7SgoI0FQkJQ4SZEv/s8TlIxsuWlhY899xzEE91zGoG1vnvmSLn/MJAICDuH45tjhUAvdv8XgJgTHkoxy4RZ05Mz4RAcWu9Y10h3mnX7h2lVgJARPObOVFc8xX9qgRS4p+zPjORSATPP/88ROa/Wfv9xS9+8Zk1qM6/eMIQqKqq8jsrkvvPxpECoK6u7vhd7/tfppu/05dv6vPTMyFQbPcT2/60bFoKAOHXjw7oxHcLtT8wiBL/tIy6NWyJx/6ffvopzKzzn5ubi6ysLKOArI/FYsfMmjWr3agBzRrHcQJg+fLlxzHGxM2fHvubtapsMq4eCYFbur24ZXURIoq2Hy2tBUA6A24d24qR6QMe7Z5SFCnxLyVslu30wQcfYNmyZRBPAcxqGRkZPe/9DWriA3G6LMtvGDSeqcNo+y1l6lSAt99++1hJkv5HN3+TA2Gj4bVMCIxx4NdrirEm5NWcgNYCQDj4lYw4bjikFaJksBaNEv+0oGgdG+KRv9jy19lp3M6RfWcvDvkRR/walPQnXnHcGQgEfmGdKOjriUYffX2dTMQ6/fJPhBJdsy8BLRMCxSE/4rAfPZoeAkD4+YNhXTh/hPpqbpT4p0fUzbMpnuSI9/5NTU2mOWFwsR8xz3cyMjJOuvfee7V/N2YaxcEHdoQAeOeddw6Jx+NLAYyyKGdyy8IEtEgI/KQzDb9dq67a32CI9BIAHgb8/OBWfDVL3asASvyz8AJP0jXxuF8c8rN161bTkv6Ey+KXv1FJfwDEY47xsix/kiQuW19uewEgTvTzer3ifc1Rto4EOW8aAfFLQ7wKEI8bU2mhuISbVxdhR1hdtT8zBIAYU+QB3HJIGzKk1LYGihuG2CZGzf4ExJOcxYsXY/Xq1W5K+hNCx7HV/gZblbYWAHV1dWkAnhXnndj/o0czMJOA2GM8fPjwpEVAe1zCH9YWYl1XauIh0Tnr9QRgz/gn5EdwxZiO/2/vbMCrqs58/659TkK+IQFCIPIVvuVLFKlAUQjn7IM4Puhzq525d+p0Ov24ve1MfdSZ6nRsue3QsZ0yQzuDg1Fb295xRqy0dhyLIoIVMOTsE0QR+TIIwWAIycnnSXKSc9b1PRIqEJJzzt5rr7XPftfz5MFH9l7rfX9rh/VfX++brDkXn8NMcJgLXtb1sJQNpheGJHDgwAGora1106E/5PHzqqqqz7vx03C6AHgUAL7qxo4jn60ngCIAlx0xxWgyBQf9fz09Ek73iJv5D9ghWgBgOyuLe+DO0ghg8qBkCs38k6HknGdOnTqVmP3jdo6sYvehPwA40d/ff70brvwN1qdJ/qrL+hyu3m4wGPwbxtgP1LOMLHI6Abx2hLHG8c/BTh/jwP9Kcy680pJrKsNfKpzsEABoz+y8PrhrfARKs65+JgBn/ZgGVmYq2FTY0bPDE2hubk7s+7sp0h8A9GqatnTLli0HhieUmU84UgCEQqE7Oee/AgBr4qxmZt+SVyYJ4IoAzkgGzgZgIJQnW8qhJmLbneSLHtglALBBPBh4bX4U5hf0wbQRvVDs7Uss8ePAj7N+mXfCTXYpvT4IgZ6eHvjd734HjY2NUrdybD70h+L+rx577LF/cfNH4TgBEAwGKxhjtQBgTZYVN/c++Z4ygZb4CPiHllnQy+3VnnYKgAEoEzw98PmR74P4DY6Uu4FesIgAitqdO3cCJvqRmd63sLAw6a03i1z/76qqqtsx5L9F9TmyGkcJADz0xzl/jTG21JG0yeiMIPB6z1h4tqPcVl/sFgBZjMOXik7CaI+8CHC2AnZpY3v27IF33303sbojq+B2G0bltLGcycrKum7z5s3NNrapZFNOEwA/AoD7lSRJRrmGAE4ZHm2dBkf7Cm3z2W4BcHv+h3DdCLraZ1sHS2jo4MGDiRP/uAUgq9gc5hfdjMfjcf8TTzzxqiyfVWrXMQIgGAzeyhjDK3+OsVmljiZbrCVg91aAnQJgdnYn3FVwxlpgVJtSBOrq6uD1119324l/7INvV1VVfU+pzpBojCMG0+rq6nFer/cgRfqT+KVQ01cQsHMrwC4BkM9i8JWRdZCvmYsMSJ+LugSamprg5Zdfhvb2dmlGDly59XhsPWGyMxwOB5599ln6uC/0vPICgHOuhUIhzO63StrXSg0TgUEI2LkVYIcAwH8M/rjgDEzPTj0gEH0gziDQ0dGROPGPMf5lBm+y+8Q/ANQDwPVVVVXnndFT9lipvAAwDOP/AMBme3BQK0QgNQJ2bQXYIQCWjAhDIL8xNQD0tGMI4PVNnPljjH+Xnfjv45yvfPzxx/c5prNsMlRpAWAYxngAOIx5IWziQc0QgZQJ2LEVIFoAjPVE4S+KTgKe/qeSeQRwwMcofydOnJAa41/CiX+87//Vxx57bEvm9ap5j1QXANsA4E7zblINREAcATu2AkQKAC8D+ELhSRjndU0WVHEfg4I141L//v374dChQ9DX1yfNQgkn/tHXX1ZVVd0jzWnFG1ZWABiGcdtH6RlfUJwfmUcEEgSaY9nwSHi2sABBIgWAL/ccLM2VIOa7TgAAIABJREFUl/edPiGxBPC6XygUgt5eeQIP0/pi2u3BQmsL9P5tALipqqpKXnIDgc5ZUbWSAuBCit93AOAaK5ykOoiAHQREbgWIEgCTvN1wT9EpultrxwcioQ0Vrvvhif/i4mLAP20sHQCwpKqq6oiNbTquKSUFgGEYeOgPD/9RIQKOISByK0CEAMhh8US0v1EeecvCjulcBxp69uxZePXVV6Ve98MZP574H8inYRNGzjm/6/HHH3/OpvYc24xyAqC2tnZhPB7HWP+2ykXH9iAZrhQBUVsBIgTAnQUNMC9b3l1wpTouw4zBa347duyAcDgs9bpfUVFRIqumzeWHVVVV37S5TUc2p5wAMAxjOwAEHEmTjCYCACBiK8BqATB/RDvckd9A/ZWBBDo7OxPX/c6dOyd18Jdx4v+j6367y8vL/evXr5eX3MBB35RSAqCmpuYWTdN2O4gfmUoEriAgYivASgFQxPrgyyNPQq4Wp97LMAJ40A9n/rLv+ks68d/g9XpvePTRRz/MsG4V5o4yAoBzzkKhEAZquEmYt1QxEbCJgNVbAVYJAI0B/K+C0zAliw5G2/Qp2NYMpvbdtWtXIrWvzOx+kk7898Xj8dVPPPHE67YBz4CGlBEAhmHcBQBbM4ApuUAEEgSs3AqwSgAsz2mGyrwm6qEMI4B3/ffu3QtHjhyRetcfD/vhdT+bT/zDmDFj/u/3v//99RnWrcLdUUIAbN261VNRUYF3NucI95gaIAI2EbByK8AKAVDm6YU/LzoJGPiHSuYQwMHfMAx46623AMP9yiqSrvvB9OnTYdGiRS/7/X46O5Zi5yvxT0EoFPoy5/yxFG2nx4mA8gSs2gowKwC8wOELRRjtT94AoXxnOdRAHPgx0E9PT480D/C6H878cfnfzjJmzBi4+eabEysOnHM9EAjssLN9p7clXQBcmP0f/Shk4zSnwyT7icBgBKzYCjArANbkNcKNOWHqoAwjgEv+GOY3EpF7pgMH/+zsbFvp5uXlwerVqy9eM2SM7fH7/StsNcLhjUkXAMFg8DOMsWcdzpHMJwJXJRDnAN9qngdd3Js2JTMCoJD1wzeKT1C0v7Tpq/niqVOn4Pe//z3gtT+ZpbCwEHJycmw1wePxwMqVKxMRBj9ZGGNL/X5/ta3GOLgxFQTAPuw0BzMk04nAsAQeOL8Aojz92FZmBEAei8H9xceHtZEecA6BhoaGxIn/9na5gZxk3PXH7YYlS5bAxIkTr+gwxtg2v9//P5zTk3ItlSoAampqbtQ0rUYuAmqdCIglwIHBvU0LwUyiXTMCAA/9PVRMIdHF9rJ9tTc1NcErr7wCbW1tUgP9SLrrD7NmzYL58+dfDXhM07SZPp+vzr4ecW5LUgVAKBT6Feec1Jpzvx+yPAkCkbgHHmy+6j9YSdQAYEYAYAMPlRwFPAhIxdkEcNDHQD/nz5+XOvhLuusPpaWlsGLFiiGzCmqa9qjP5/uas3vaHuulCYD9+/dP9Xg8uC7pscdVaoUIyCHQEsuG9S3XmmrcrAC4b9RxyNdipmygl+USGAjxiysA8bi8KI6y7voXFBQkDv0lcdOgq6CgYNKyZcsox/Uwn6w0AWAYxiYA+IbcXylqnQiIJ9DQnwOPhGebasisAPjayDoo8dAVQFOdIPFlPOWPy/6Y4U/m4I/X7TC7Hx7Cs7Og6KisrARMLpRM8Xq9366srPxeMs+6+RkpAuDQoUPZPT09HwDAGDfDJ9/dQaCuLx82tc4w5axZAfDFopMw3ttrygZ6WQ6B7u5u2LlzJ+DBPwz3K6tISu2bcHfZsmUwYcKEpF2Px+OnAoHAVMYY7XsNQU2KAAiFQndyzrcl3Zv0IBFwMIHD0SLY0lZhygOzAuBzhRT/31QHSHoZk/u8+uqrUF9fL3XwR/dx5p/E8rvlpBYuXAgzZqQuoHNyclbefPPNr1luUAZVKEUAGIaBg/+dGcSRXCECVyVQ21sMT7VPNkXIrAC4u+AMzMqWe1/cFAAXvtzX15cY/E+fPi01uQ+ix/333Nxc23thypQpsHjx4nTb/bmu659P92U3vGe7AHjrrbeKo9HoWQAY4QbA5CMR2Ns9Gp7pvPLOcipkzAqAdQVnYUF2WypN0rMSCWA2Pwzy895770kf/GXc9Uf0nwzzm05XcM47otFo2e233y43TGI6xtv0ju0CwDCM/w0A/2aTf9QMEZBOYGekFJ7vSn7/cjCDzQoACgUs/TNI2gDc5x8Y/HEVQGaRddcfVxxWrVp1McxvugwYY3/m9/t/ke77mf6e7QIgFArt5Zwvy3Sw5B8RGCDwYlcZbI+UmQJiVgCsym2CT+c2m7KBXhZPAE/4Y1rfY8eOSc3sh55ibH+M8W93wXZx8McQw2YL53xHIBDQzdaTqe/bKgAMw8CEP3j339Z2M7XzyC9nENjWWQ67u8eaMtasAFie0wyVeU2mbKCXxRLAwX/fvn1w9OhR6YO/rLv+eM0QA/2MHWvu9+UTPYXXJibput4gtvecWbutA7FhGA8AwD86ExVZTQTSI/B0xySo7ilJ7+ULb5kVAItHhOHW/EZTNtDL4gjg4P/GG28kBn88+S+z4B1/PPGPg7Hd5frrr4eKCnM3Zi63WdO0e30+34/t9sUJ7dktAHYCQKUTwJCNRMAqAk+2TYGD0VGmqjMrAOaPaIc78mkSZKoTBL2s0uCPd/0xw57dgX4Q7cyZM2HBggWWU2aMbff7/bdaXnEGVGibADh06FBBT0/PeTr9nwFfDbmQEoHNrdPgaJ+5/UyzAmBmdhd8tqA+JbvpYfEEBgb/I0eOSF/2xxk/7vnj8r/dpaysDJYvXz5kjP90beKcR7Kzs0evWrWqJ906MvU92wSAYRh3AMCvMxUk+UUErkZgY3gmnOrPMwXIrACY7I3APUWnTdlAL1tLQKXBHz2TFegH2125cqVQ4eH1em+rrKx80doedH5ttgmAYDD4GGPsy85HRh4QgdQIbGiZDY2xnNReuuxpswKgzNMLXxp50pQN9LJ1BFQb/DHGPl75s7tgcCGM8S86yBBlCBy8Z20TAIZhnMLTmHZ/YNQeEZBN4OHmudAWzzJlhlkBUKxF4eujKEW6qU6w6GXVBn9ZUf5wqwFn/rgCYEM5ruv6TBvacVQTtgiAYDA4jzH2tqPIkLFEwCICD5xfAFFu7kS1WQGQx2JwfzHewKUikwAG+amurgYV9vyRg6wof3jeABP84N6/XUXTtFk+n++YXe05oR1bBIBhGJj2F9P/UiECriLAgcG9TQvBbEoyswLAywAeKj5iC3sc5Nrb26Grqwswh300GoWBiHZ4unzgB5eccQDCGWheXp6Ua2e2ALnQCIb3xSA/GN5X9lU/NAmX3ZG9jILx/THOv51F07Rv+Hy+n9jZpupt2SUAngaAP1EdBtlHBKwmEIl74MHm+aarNSsA0ICHSo6C17QUudQVXM4Oh8OJn9bW1sRPW1tbIn49Dvz4Jz6DP5zzxClv/MGCs0AUA7gUjFnm8AQ6LgcP/GAwGBl30U131iAVIIvXX38dTp48eVEMiWgn2TpzcnIsibSXbHuffG7OnDkwd+7cdF419Q5j7N/9fv+fmqokw162SwCcAACMAkiFCLiKQEssG9a3XGvaZysEwH2jjkO+Zj6fPM7sz507B42NjYk/BwZ6nOXjgD/wk47TOODjDwoCnJ3iYDFr1iyhJ8TTsTOVd3C2/9prryWy+smO7Y9248oLhtkdEGKp+GL22YkTJ8KSJUuktA0AR3Rdn2PWh0x6X7gA2LdvX0l2djbe/xfeViZ1DPmSGQQa+nPgkfBs085YIQC+NrIOSjzRlG3BmXtLSwucOXMGGhoaEkv7OKPHwQwHNxQA+IyIgoMUrgzgoIER4mQMWmb86u7uhl27dsEHH3wgPasf+oGrLbjCIoNjaWkpfPrTn5a5qhMrKioquemmm9rN9GkmvSt8UA6FQgHO+fZMgka+EIFkCdT15cOm1hnJPn7V56wQAF8sOgnjvcmHmcWl/Pr6+sTMNRKJJAawgQEf/9vOgqsCA8FiME2sEwoKJRz8z549q8Tgj9stGOVPxuCP1wwxwQ+u7MgsmqbpPp9vh0wbVGpbuAAwDOPhj7b7vquS02QLEbCLwOFoEWxpMx/b3AoB8LnC0zAla+jU6Diwnzp1KnFQDQ/y4YG+np6exMCP/y27YKa4+fPnA8aMlxGxLln/kd3u3bvhww8/VIKbzPj+dt31T6ZvvF7vtysrK7+XzLNueEa4AAgGg79ljN3uBpjkIxG4nEBtbzE81T7ZNBgrBMDdBWdgVnbnoLbgbB8H/YF9ahz08cfumX6yoHA5GWeUJSXmkiwl214qzzU3N8Pvf/97aGpqUmLwxxk/LvvLEEw23/UftpsYY7/1+/3rhn3QJQ8IFwCGYWAGkvEu4UluEoFLCOztHg3PdE40TcUKAbCu4CwsyG67aAvu2+PyNOaeP3/+fGKwwj1rnO3jHr/qBWeWS5cuTSSRkbGsPRgfPCOBV/3wzIQKDGUO/tg2xve3865/Et/sGV3Xzf9CJtGQEx4RKgAMwxgJAK1OAEE2EgERBHZGSuH5rgmmq7ZCAKzJa4Qbc8KJA3t4oA+D0eDMHw/z4R4/HuZzWsGlbdwS+NSnPiXzcFkCG66g1NTUJJiKOhSZav/Iiu+Pg/8NN9xg+13/JPhwznlhIBDoSuLZjH9EtAC4HgBCGU+RHCQCVyHwYlcZbI+Yj3ZmhQBYldMIE5veTAz8HR0diZn+wOE+J3cgDjYYVAa3BGTEs8fB/t1334Xa2tpE4CMVBn9kglf9ZPDAb2nevHkwe7b52y+CvstFuq6/KahuR1UrWgDcBQBbHUWEjCUCFhLY1lkOu7vHmq7RlADgHIrOHYZJJ3dCLNKeMQP/5VBxqXn16tWAJ87tKrjMHwwG4ejRo4nrkaoUWcl90P8ZM2bAwoULVUFxhR2Msc/6/X4al0TfzTcM45sA8IiyXwIZRgQEE3i6YxJU95g/qJauAMhrrYfSEzsgt70hMfDjIKXCaX5R2PGam9/vh9GjR4tq4mK9uHWyb98+qKurSxyYVKXgzB8j/ckoGOgHt2MUL9/Sdf37ittoi3lCVwAoBbAtfUiNKEzgybYpcDBqPttZqgIgu7sFxr63C4qajkB/X19i4HfiHn86XYuzX13XAUMJiyq41L9nz55EgB+VuMrK7IecFQj0k1R3a5r2pM/n+2JSD2f4Q6IFwCuMsdUZzpDcIwJXJbC5dRoc7Ss0TShZAaDF+2F03Wswun4/8Fh/Yo8fT/a7raAICAQCICJoEN7tx5k/XvdT6ZqkrMx++G3hysstt9wi5aphGt/2q7qu07hkwxbASQCwN+VTGl8DvUIERBHYGJ4Jp/rzTFefjADIbzkJZUdfhOzucGLgV2lP2jSANCrAEMK4HWDVSgAe7sO9/gMHDih10h/RyBz8cdVB1gHMND4LfKVO13XKTSNSAHDOtVAohHFHvWl2Er1GBBxPYEPLbGiMmd+PHUoAePp7YOyJnVB89k3oi0YTJ/wzeZ8/lY8CZ6Zr1qxJBMIxU5AnnvLHGxS4/K9SkZnWF9vGwR/TOTulcM6jgUBghFPsFWmnsC2At956qzgajbaINJ7qJgKqE3i4eS60xc3HP7+aABjZ+A6MO/YSaNGuxIzfjcv9Q30DeB0OtwFuvfXWxCw5nYJcMbgP7verdNgPfZE5+GNcfxz87bx1kU7/DfZOUVHRSEoKJDBD3/79+6d6PJ46qzqM6iECTiTwwPkFEOWaadMvFwBafy+UnngFihsOJE7346xUhchzph0VVAGeTsftgFTvxWPAJLzmh5ESVdrvR0x40h9P/MsoGIBpxYoVQs5Y2OGPx+OZsnr16lN2tKVyG8JWAGpqaq7TNO2Ays6TbURAJAEODO5tWghWJMr9pADAK30T3vk1ZEVaaNafZAfigIXphCsrK5OKGIgn+3Gv/8SJE0qKKxQyOPjLCIGMbS5btgzGj3d0hHcKBiTyDEBNTc0tmqbtTvL3kx4jAhlHIBL3wIPN8y3xCwWA1tsOJafegLF1uyHe35fI1qfarNQSZwVVgkvW1113HSxevHjIFjCJz/79+xPJfFRb8kfDZQ/+iob4Temr4ZyvDgQCr6b0UgY+LGwFIBgMrmOM/SYDmZFLRCApAi2xbFjfcm1Szw73UFbHObim9heQ3/Jx0BlVQs4OZ7dqf4975jfffHNiNeDyggf9Dh8+DIcOHVL2ICWmQ8bbDbIKCqjp06fLat6ydhljn/H7/c9ZVqFDKxIpAO5hjP3coVzIbCJgmkBDfw48EjYfDz278xxMeeNRyOpovBjD37RxEivAJWScjeMPDmiapiWy59kVQx8Prd12222X3AzArIi45I+zfrxCqWJBXjj4y1j2Rx6Kx/dPqcsYY3/h9/t/mtJLGfiwMAFgGMZfAsBPMpAZuUQEkiJQ15cPm1pnJPXs1R4qOHcEJtY8Aay3M3H33KlL/rgHj4M9Ll/jQHZ5wRUNO28wlJeXw9q1axPbKDjrr6+vT6yqqMrX6/UmBIuswR9TLi9YsMDUt6zSy5qmPeDz+TaqZJMMW4QJgFAo9Lec8w0ynKI2iYAKBA5Hi2BL25VLzcnaNqq+BspDv4D+aG9ioHLaKX8c6HHAxx+c5Q9VcOANh8PJojH9HA6oKAIwZgJe88ObFKoW2YM/bpcsWrRImvgQ1C/f1XX9O4Lqdky1wgSAYRjfA4C/cwwJMpQIWEygtrcYnmqfnFatJSdfh/Fv/if0XRj87VoeT8vYT7yUyqB/eVutra2ACXbsKrgqoXrAJBz8cdl/OAElitmkSZNgyZIloqqXVi9jbIPf73f9+CRSAPwIAO6X1sPUMBGQTGBv92h4pnNiylaMPfYSjHvneccc9sPBCe+k4wE7MwMVzsJxpYPKxwRQoOCyvxmmZlhOmDABli5dmmkz/wEkP9R1HbPVuroIEwDBYPBfGWNfczVdct7VBHZGSuH5rgkpMRhdtxvGH9ya2A9XLeTs5Y7gbB8H/VSD61wNCK5yYIIdp6x2pNSxKT4se/DHzH7Lly9PiJAMLf+k67rrJ6jCBEAoFHqSc/6FDP14yC0iMCyBF7vKYHukbNjnBh4ort+f2PPv6e5O7E2rWPAQ2sBsX8TggCsAKu/H29Ensgf/0aNHJ6L84fZDBpef6Lr+jQz2LynXhAkAwzCeBoA/ScoKeogIZCCBbZ3lsLs7uZz0hR++DZOrH4Peno8Hf9VmwQMDPyZ9EbkkjRH48LaDW4vswR+3HDBOAt7YyOSiadqjPp/P9SvUIgXArwHgjkz+iMg3IjAUgac7JkF1T8mwkEZ0NkLF7h9CPNIOeBBOpYIDPy7z48Bv1xU0jLuvmgCyo09kD/6Y1nflypWJFZ5ML4yxx/1+/5cz3c/h/BMmAILB4O8YY2uGM4D+nghkKoEn26bAwejQaWg9fd1QsfsH4G07mxj8Vbnqh7N8HPjxx66Bf+A7wBUQFUPwivxOVRj8b7nllkR/u6Ewxn7m9/tdv0UtTACEQqHdnPNb3PAxkY9EYDACm1unwdG+obO1XWP8DEaerkkM/qoEocEZIKbOFbnUP9QX47ZtANlX/XB1B2f++KeLyi91Xb/HRf4O6qowAWAYxn4AyLwLpG7/Ysj/pAlsDM+EU/1X/0e16IMDMKnm8cRpfzuj4F3NARyIcBl4sEh9STtt0YNu2QZQYfDHmT8KPjcVzvl/BgIB159REykADgJA5sSOdNNvB/lqCYENLbOhMTb4fqqnvwemv7weeMd56YfecKaPsz+Vln/xICCuBGRykR3hD/sbZ/5uG/zxm9I07Vc+n++uTP6+kvFNpAA4BgDmAqEn4wE9QwQUJfBw81xoi18Z9x7NHf/2r6Dk+M5EEhyZ+/643I+zfrv3+YfrMifEQRjOh6H+XnZiHxz8ceaPfe/Ggplq/X7/nW70/ZM+ixQA9QBwjdsBk//uJfDA+QUQ5VfGwM+KtMDMHd+BSEe7tMxzOOvHf/ytCuJjdS/bnRvAavuHqg+v2GFGQlmiy+2D/4UVgBd8Pt/tdva7im2JFABNADBGRafJJiIgmgAHBvc2LQQ+SEMY6a/4xKu2psD9pBk46OPgL+uQX7LsMSqgzNWRZO1M5TlkX1hYKG3wx/Zx5o8CxM2FMbbd7/ff6mYG6LtIAdAJAO46WeL2r4n8v0ggEvfAg83zryCixaIw+8UHobut2fbZP844cfBRddZ/OaxMiwooe7uFBv8/fGGc81cCgYDf7f9kiRQA/ZjPwu2AyX93EmiJZcP6lmuvcH5UfRDw6p/dp9zxwBnO+kSE7xXVw5l0DgCX3WXut9Pgf8VX+pqu6ytFfbtOqVeIADh06FB2T0+Pugm2ndI7ZKdjCTT058Aj4dlX2H9N8KeQ+95eW7PeyV52TrcTMTWwapER0/EFb1jIPGmPBw5x2R/D/FL5mABjbI/f71/hdh5CBEB1dXWR1+t1b0Bvt39V5D/U9eXDptYrL8HM3v630H2u3rZId7IHH7OfQlMTHiVybsFZv8zrlSj+MLEPDf5XfEPVuq4vde6XZY3logTAOK/X+6E1JlItRMB5BA5Hi2BLW8Ulhnv6IjDnhQcSh/9isZhQp3C/H5f8nZ7UJRwOKxMhMZUOU+G8BZ45wMQ+bj/wd5V+C+m6vjiVPs3EZ4UIgAMHDkyJxWInMxEY+UQEkiFQ21sMT7VPvuTR7K4mmPHStxP7/yILnu7HGZ+T9vuvxsOJeQFw8B85cqTUiIo0+A/9G8YYe9Pv9y8S+XvohLqFCADDMHDz810nACAbiYAIAnu7R8MznRMvqXpE+1moeHl9YgVAVMmkwR8ZOe0gIPLHwR8PXcoqdM8/KfKHdF2/8ppOUq9mzkNCBEAwGFzEGKvNHEzkCRFIjcDOSCk83zXhkpeyelph+gvfFCYAnHjSfziqTkoMJDuuP7LEw4a45y/zxsFwfarC3zPGjvj9/jkq2CLTBiECoKamZpmmaXtlOkZtEwGZBF7sKoPtkbJLTeAcZr1wP7SexSCZ1hYVBh9rPfq4NgwEhAGBVC8q3LTAQd9NKX1NfhMndF13fah6IQIgFApVcs53muwgep0IOJbAts5y2N099gr7J1dvgeihXZZGuMvUwX8Ant0xE1L96GTf8Ud7McATHviTeeMgVW4yn+ecvx8IBKbKtEGFtoUIAMMwbgOAF1RwkGwgAjIIPN0xCap7Sq5oeuyxlyD3jV9Cb681YTLwoB8e+FM9rK+ZPlD5JgAOvHjgTmbBU/44+Mu2QyaDNNo+o+v6pYd00qjE6a8IEQDBYPAzjLFnnQ6H7CcC6RJ4sm0KHIxeGXgl//xxGPfSBujq6kq36ovvZdqBv6sBUTEkMLLHgReD7MgsKP5wz98p4Z1lsvpk24yxD/1+/3hV7JFlhxABEAqF/pRz/ktZTlG7REA2gc2t0+BoX+EVZmAugOnb/hLawuZuAuBVM/zHX+Zpc7sYd3Z2Jm4DqFIwtgLO/GWvuhQXFycGf6fHepDUr026rpdKaluZZkUJgC9xzquU8ZIMIQI2E9gYngmn+vMGbbVi5waI1B0EzgfLFZicoXjVzC3/8KtyFRBFF0ZWxB/ZZezYsbB8+XJXCEBBrFt1XS8WVLdjqhUiAAzD+CsA+LFjKJChRMBiAhtaZkNjbPC94fEHnwEt9Ju0I9zh0rOblnzxvARuA8gsONvHWb8KomvChAnwqU99KiMCPcnqU855RyAQcHdOZFHpgIPB4N8wxn4gq3OpXSIgm8DDzXOhLT74/vCo+hoYtftf01rWdnps/3T6RXZSINznR9Ele8kf2U2ePBkWL16MyWzSQUnv/IFAt67r8pdyJPeIkK8oFAp956PlzfWSfaPmiYA0Ag+cXwBRrg3aPoYEnvTbbwKGuU2l4ECES/9u+8cf8yaIjJ44VB/gtToMrqMC8+nTp8PChQuVsCWV71bRZ/t0Xc9W1DbbzBIiAAzD+AcAeNA2L6ghIqAQAQ4M7m1aCEPt8M/47X3Q/mHyAYFw9llSUuLKf/xlBANSackfxce8efNg1qxZCn3lzjaFcx4PBAIeZ3th3npRAmATAHzDvHlUAxFwHoFI3AMPNg8dZnzyG/8GvYd2JX0Q0E2H/gbrcTvTAqsUUhkH/0WLFkFFxaWZJZ33W6GexX6/38MYi6tnmX0WCREAwWDwMcbYl+1zg1oiAuoQaIllw/qWa4c0CAMC5ez7BWCs++GKG/f9L2eC4YBxJUB0USGq34CPuAqBh/3Ky8tFu+3K+vv7+3PWrl1rTUQuhxIUIgAMw/g5ANzjUCZkNhEwRaChPwceCWNCzKuXZAMC4WwU7/ursAdtCorJl/EMAJ4FEFWQL57yV+V2Bfb7smXLoLTU9VfVRXU5HsItWrduXWoHcYRZI6diUQJgKwDcJcclapUIyCVQ15cPm1qHzjPC+nth+nNfh/a21iGNxcFfdrQ5uTQ/bl1kOGAMp4xbLPinCgVFCAb4wb6nIo5Abm5uyYoVK8LiWlC/ZlEC4L8A4I/Ud58sJALWEzgcLYItbcPv2U596TsQOXX4qgaotBxtPaXUahQlADB+PmbRU2WFBW3BAD+4GkFFLAHO+bhAIHBObCtq1y5EAIRCoR2cc5/arpN1REAMgdreYniqffKwlWNAIF7z3KAHAd186n8wcK2trYDxAKwqOODjYKtSAp3Ro0cnlv1V2YawirWq9fT3909cu3btGVXts8MuIQLAMIw9ALDcDgeoDSKgGoG93aPhmc7hE42NrK+Bwlc2DTqwuS3a33B92NbWltSByeHqwb/HpX7kq1IeBTzot2TJEmW2IZLh6PRnYrHY1FtvvfV9p/thxn5RAiAEANebMYzeJQJOJbAzUgrPd00Y1vzsyHmY8Nx9V0QExD1/2v+9FJ9VGQFxdo3L66os+aOXGODnuuuuG/Z7oQc3yOPOAAATFElEQVSsJRCPx2esWbPmhLW1Oqs2UQLgHQAY+h6UsziRtUQgaQIvdpXB9khZUs9PffarEAmfv+RZOvh3JTqzAkDFJX+645/Ur4iwhzRNm+vz+a5+CEdYy+pULEoA1AHAVHXcJEuIgH0EtnWWw+7usUk1OHH3Rogeq774LCabwRPpVC4lYCYlsEqBfQa8omt+8r9wTdMW+ny+t+RbIs8CUQLgLAAkNwWS5zu1TASEEHi6YxJU95QkVXfxydche8dPLj6L4X5VuY6WlAM2PYR5E3p6elJuTcUlf7zdgSf9aZsn5e609AXO+eJAIIDb1a4togQA3q2kS6yu/azc7fiTbVPgYDS5zz+rtx1K//0ridTAOFjh4TQqVxJIdQVAtcA+Ax7hoI+DP4oAKnIJMMaW+v3+Pyy/yTVHSuuiBABK9RFSPKJGiYBkAptbp8HRvuTvcZf/+n7obzoNxcXFSp1Ml4zxkua7urogEokkZZKKS/5o+MSJExOpfGmFJ6luFP5QVlbWilWrVuGNNdcWywUA51wLhUL9AGB53a7tJXLcUQQ2hmfCqf7kU40XnQ7CyFc30d7/EL2Mgz+KgOGKSul7B2wdyOY3c+ZMpW4fDMcy0/8+Ho9XrlmzZlem+zmUf5YP0oZh4L98w/+mupk6+Z7RBDa0zIbGWE5KPlbs3AB57R+k9I6bHh5uBUDVJX881IkJfcaNG+em7nKKrwFd1192irEi7LRcAOzbt68kOzu7WYSxVCcRcAKBh5vnQls8KyVTC84dgSl7/3AYMKWXXfDwUCsAGDcB7/artrSO+/1Lly6F/Px8F/SQ81z0er23VVZWvug8y62z2HIB8Oabb5b39/e7Oryidd1DNTmRwAPnF0CUaymbfo3xFIyqr0n5PTe80N3dDXgQ8PKCqZLxR6XAPmgj7vffcMMNdKZD4Y+TMXaH3+9/XmEThZtmuQAIhULTOefHhVtODRABBQlwYHBv00LgadjmiXbCzB3fBfyTyqUE8AogXgUcKJgrAW9MqJYpkfb7nfPlapp2l8/n+5VzLLbeUssFQDAYnMcYe9t6U6lGIqA+gUjcAw82z0/b0KIPDsCk4BMAPB0JkXazyr8YjUYB8wFgwX11HPxVm/WjXRjPv6yMQqAo/0EBgKZpf+Lz+f7TCbaKstFyAVBTU3Ojpmm0jimqx6hepQm0xLJhfYu5KNhlbz8HY07sVNpPu42LxWLQ0tKS2E/HJX/VCmbyw8Gf9vtV65kh7blH1/VfOspii421XADU1tbeHI/HX7PYTqqOCDiCQEN/DjwSnm3KVhaPwZTX/xnyWzCiNpUBAhgsSaUMfmgXrkLMmTMn8aPaigR9OUMTYIx9we/3/8zNnCwXAIZh6ADwkpuhku/uJVDXlw+bWmeYBoDnACpe2wgjOhtN10UViCGAKxE46x8zZoyYBqhWoQQ4518JBAJVQhtRvHLLBUAwGFzHGPuN4n6TeURACIHD0SLY0lZhSd2YLnjq7h8BhgumohaB8vLyxCl/3Pen4kwCXq/3a5WVlY8603prrBYhAP6YMfYf1phHtRABZxGo7S2Gp9onW2Z0Tvg0VOzZBFp/6olwLDOCKrpIALcgrrvuOpgyZQpRcTgBTdPu9fl8P3a4G6bMt1wAhEKhP+ec/9SUVfQyEXAogb3do+GZzomWWp/XXAeT9/0LePp7La2XKkuNAAb2uemmm6CgoCC1F+lpJQlomvaAz+fbqKRxNhlluQAwDOOrAODqZRWb+o6aUZDAzkgpPN81wXLL8hrfhcnBJ8DT12153VTh0ATwcB/G8Z87dy5eHSNcmUPgQV3Xf5A57qTuiQgBcB8AuFpVpd4N9EamEHixqwy2R6y/B671dEBu0zGYdPBpEgE2fiw427/xxhsBr/lRySwCHo/n4dWrV/99ZnmVmjeWC4BgMPgtxpiroabWBfR0JhHY1lkOu7vHWu4SCgDW2wHZ3WGY+OZ/QHZ3i+VtUIWXEpg8eTIsWrRIuauH1E+WEfiuruvfsaw2B1ZkuQAwDOO7APCwA1mQyUTANIGnOyZBdU+J6Xour2BAAOD/x22AiW89A7ltlHLDctAAkJOTkzjhP378eBHVU52KEGCMbfD7/X+niDlSzBAhAL4HAK6GKqUnqVElCDzZNgUORkdZbssnBQBWzmJRKD/8PBQ2HbW8LTdXeM0118D1119P1/tc8BF4PJ6/X716tasnqyIEwP8FgG+74PshF4nAFQQ2t06Do32FlpO5XAAkGuAcxtRXw5gTrwJLK/2Q5WY6tkK83rdw4UKYOnWqY30gw1MmQFsAKSMb5oVQKPQdzvl6q+ul+oiAEwhsDM+EU/3Wx6ofVABcAFLQfALK3/k1aHRNMK1PpLS0NHHQLzc3N6336SVnEvB6vd+urKzEFWvXFhErALikgucAqBAB1xHY0DIbGmM5lvs9lADAxkZEmmHCoW2QQ6GDk2bv8Xhg3rx5MH36dIrjnzS1jHrwW7qufz+jPErRGREC4H4A+FGKdtDjRCAjCDzcPBfa4lmW+zKcAMAGMYlQ6YlXoORM0PL2M63CkSNHJmb9GNyHijsJMMbu8/v9/+xO7z/22nIBEAqFPss5d3WOZTd/UG73/a/PL4Bebn2wmGQEwAD7oqYjUHbkvylewCAfIwb1mT17diJ7HwX1cfdvK2PsM36//zk3U7BcANTW1i6Nx+P73AyVfHcnAQ4M7m1aKOQ4XioCAOl7ol0w/sgLUHj+uDs7YxCv8/PzE7N+yt5Hn8QFAjfqum64mYblAqC6uvoar9db72ao5Ls7CUTiHniweb4Q51MVAAkjOIfihgOJbQEtFhVilxMqxVl/RUUFzJ8/n4L6OKHDbLIxKytr7KpVq87b1JySzVguALZu3eqpqKiIAADlyVSyy8koUQRaYtmwvuVaIdWnJQAuWJLV2wGlx14C3BpwW6GgPm7r8aT97dJ13fVZnSwXAIg/FArVcM5vTLor6EEikAEEGvpz4JHwbCGemBEAAwbhdsC4Y9shq6dNiI2qVVpeXp6I6JedTXMR1fpGtj2MsTf8fv8y2XbIbl+IADAM4ycA8JeynaP2iYCdBOr68mFT6wwhTVohANAw3AoYU/da4qYA43EhtsquNCsrKxHDf9KkSbJNofYVJaBp2o99Pt+9ippnm1miBMD/BIB/t80LaogIKEDgcLQItrRVCLHEKgEwYNyIzkYYf/R3GZdPAOP3YyhfCuoj5DPMmEo1Tftjn8/3TMY4lKYjQgRAMBisYIy9l6ZN9BoRcCSB2t5ieKp9shDbrRYAaCSGD/aFX4PmIyHo7u4WYrddlY4YMSIx68dY/lSIQBIEynVdb0jiuYx+RIgAQGKGYRwGgDkZTY+cIwKfILC3ezQ80zlRCBMRAgANXVdwFuZ6WuC9996DI0eOQDTqrNsCeMIfl/oXLFgAKAKoEIHhCDDG3vb7/QuGe84Nfy9SAFBWQDd8QeTjRQI7I6XwfNcEIURECYA1eY1wY044YXN/f39CCLz77ruJ/1a9FBQUJGb948aNU91Usk8tAt/TdZ0S1omIBDjQz6FQaAHn/KBa/U7WEAFxBF7sKoPtkTIhDYgSAJW5TbA8t/kSm3t6ehIi4P3334dYLCbEHzOVYgx/jOY3a9YsiuZnBqRL383KypqzatUq992JHaS/ha0AYFuGYbwLAGLuRbn04yW31SWwrbMcdnePFWKgKAGwPKcZKvOaBrW5r68vIQKOHTumzBkB3OPHgD4Y1Y8KEUiDwDu6rs9L472MfEW0AHgAAP4xI8mRU0TgMgJPd0yC6p4SIVxECYDFI8Jwa37jkDbH43Gor6+H48ePQ2trqxD/hqu0rKwsMfBjEh8qRCBdApqm3e/z+f4p3fcz7T2hAqC6urrI6/WeBgD6rc20L4f8uYLAk21T4GBUTHY5UQJg/oh2uCM/+cPQzc3NcObMGWhoaICuri7hXwHO+HG5n7L2CUed8Q0wxlojkcikdevWdWS8s0k6KFQAoA2GYWwEgPuStIceIwKOJbC5dRoc7SsUYr8oATAzuws+W5Be6o5wOAwffPABNDY2Av63VSUvLw8mT56c+MGDflSIgEUEfqjr+jctqisjqrFDAGA4rhMAYH2S9IzoAnIiUwhsDM+EU/15QtwRJQAmeyNwTxEu0pkreH3w3Llz0NTUlNgmaGtrS/omAV7lwxl+aWkp4FL/2LFizlGY85DedjiBXgCooLv/l/aicAFwYRVgEwB8w+EfEJlPBIYksKFlNjTGcoRQEiUAyjy98KWRJy23mXOe2CLo7OwEvFWAgYY+ebUQ4/PjTB8P8xUVFVGWPst7gCq8jMA/6bp+P1GRIAAOHDgwKhaLHQMAkvb0BWYsgYeb50JbXMxClygBUKxF4euj6jK2T8gxIgAAjUVFRTNvuummdqIhQQBgk8Fg8CuMsS3UAUQgUwn89fkF0Ms1Ie6JEgD5LAb3FR8XYjNVSgQUIfAlXdefUMQWpcywZQsAPd66datn2rRpb1CaYKX6n4yxiAAHBvc2LQRuUX2XVyNKAHgZwEPFFBNFULdRtfIJVGPaX8aYqF9N+R6asMA2AYA2GoYxDQBqAaDIhM30KhFQjkAk7oEHm+cLs0uUAECDHyo5Cl5h0kUYEqqYCAxJgHPe7vV6r1+9ejUlprsKKVsFANoQDAbvYYz9nL5dIpBJBFpi2bC+5VphLokUAPeNOg75mnohf4XBpIrdQuDPdV1/yi3OpuOn7QLgggj4JWPsT9MxmN4hAioSaOjPgUfC4qJeixQAXxtZByUeZ2UBVPEbIJuUIvBzXdc/r5RFChojRQDs27cvNzs7+2UA+LSCTMgkIpAygbq+fNjUOiPl95J9QaQA+GLRSRjvxWvSVIiA8wkwxt7wer2Vq1at6nG+N2I9kCIA0KV9+/aVZGdn7wGAOWJdpNqJgHgCh6NFsKWtQlhDIgXA5wpPw5SsiDDbqWIiYBcBxtjR/Pz8ZcuWLWuxq00ntyNNACC0AwcOTInFYvsAYLyTIZLtRKC2txieap8sDIRIAXB3wRmYld0pzHaqmAjYRKDB4/EsW7169Smb2nN8M1IFANILBoMVjDHcDsAbAlSIgCMJ7O0eDc90ThRmu0gBsK7gLCzIbhNmO1VMBEQTYIzVe71efdWqVXSnNQXY0gUA2moYBq4AbAeABSnYTo8SAWUI7IyUwvNdE4TZI1IArMlrhBtzrEvmIwwCVUwEBiGAy/4f7Srrfr/ffFILlxFWQgAg8/3794/WNO2/GGNLXdYH5G4GEHixqwy2R8qEeSJSAFTmNsHy3GZhtlPFREAggX25ubl/tGLFClKwaUBWRgCg7bt27fIWFhb+PQD8DQAoZVsabOkVFxHY1lkOu7vFpboQKQCW5zRDZV6Ti3qLXM0AApwx9kQ4HP763XffTXdY0+xQJQfZYDC4jjH2MwAoTtMveo0I2Erg6Y5JUN1TIqxNkQJg8Ygw3JrfKMx2qpgIWEyglTH2Rb/f/5zF9bquOiUFwIUtgakej+ffACDgul4hhx1H4Mm2KXAwOkqY3SIFwPwR7XBHfoMw26liImAVAc75DgD4SiAQsD6HtVVGOqgeZQXAAMNQKHQ75/xfAEDcHSsHdRiZqiaBza3T4GhfoTDjRAqAmdld8NmCemG2U8VEwCwBxtiHAPBNv9//C7N10ft/IKC8AEBTDx06VNDd3f0QY+zrlEiIPl8VCWwMz4RT/XnCTBMpACZ7I3BPER2gFtZ5VHHaBDChD6aR55x/NxAIdKVdEb04KAFHCIABy/fs2VOYk5PzBQB4EADEHbmmj4UIpEhgQ8tsaIzlpPhW8o+LFABlnl740khaUU2+N+hJ0QQ45y14yK+goOAHFNVPHG1HCYABDLgi0NPTcw8AfO6j+AE3icNDNROB5Ag83DwX2uJZyT2cxlMiBUCxFoWvj6pLwyp6hQhYSoADQEjTtP8Xi8WeoBm/pWydvwIwmAcHDhyYEYvFMLPg3QAgLh2b+L6gFhxM4K/PL4BergnzQKQAyGcxuK/4uDDbqWIiMBQBDOTDOf+Npmk/9fl8x4iWfQQcuQJwNTy1tbUTOOer8AcAbgYAzM7isQ8nteRGAhwY3Nu0EHD6IqqIFABeBvBQMUVQFdV3VO8lBGKc8/cZY/vi8fiueDy+Y+3atWeIkRwCGSUALkd4/PjxEeFweLrH45nFOZ/JOR/HGCsAgJGc80JN07xysFOrmUSgO655NrdOWyjSJ97bzVhfRNjv658VvHfIy4RqGJF4qG61CPQDQGc8Hm/TNK0rFot96PF4UGEejkajR9euXUu5pxXpL2H/oCjiH5lBBIgAESACRIAIDEKABAB9FkSACBABIkAEXEiABIALO51cJgJEgAgQASJAAoC+ASJABIgAESACLiRAAsCFnU4uEwEiQASIABEgAUDfABEgAkSACBABFxIgAeDCTieXiQARIAJEgAiQAKBvgAgQASJABIiACwmQAHBhp5PLRIAIEAEiQARIANA3QASIABEgAkTAhQT+P3+hxe9DY0HcAAAAAElFTkSuQmCC",ys="data:image/png;base64,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",vs=n=>{n=n.replace(/^#/,"");let A,e,t;return n.length===3?(A=parseInt(n.charAt(0)+n.charAt(0),16),e=parseInt(n.charAt(1)+n.charAt(1),16),t=parseInt(n.charAt(2)+n.charAt(2),16)):(A=parseInt(n.substring(0,2),16),e=parseInt(n.substring(2,4),16),t=parseInt(n.substring(4,6),16)),isNaN(A)||isNaN(e)||isNaN(t)?"0, 0, 0":`${A}, ${e}, ${t}`},al=(n,A)=>{const e=vs(n),t=vs(A||n);return`
7
+ `;try{const i=await(await fetch(Ja,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,variables:{prospectGroupId:A,name:`Widget Guest ${new Date().toLocaleString()}`}})})).json();return i.errors?`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`:((r=(t=i.data)==null?void 0:t.insert_prospects_one)==null?void 0:r.id)||`anon_${Date.now()}`}catch{return`anon_${Date.now()}`}}static async fetchWelcomeMessage(A,e,t,r){try{const s={"Content-Type":"application/json"},i=await fetch(`${ke}/widget/chat`,{method:"POST",headers:s,body:JSON.stringify({agent_id:A,...t?{widget_id:t}:{},message:"",prospect_id:e,stream:!1})});if(!i.ok)throw new Error("Failed to fetch welcome message");const o=await i.json();let a=o.response||"Hey! how can I help you ?",l;const d=o.chat_id||o.inbox_id,c=o.conversation_id||null;return o.widget&&(l=o.widget),{role:"assistant",content:a,widget:l,chatId:d,conversationId:c}}catch{return{role:"assistant",content:"Hey! how can I help you ?"}}}static async sendChatMessage(A,e,t,r,s,i,o,a,l){var d,c,h,u;try{const g={"Content-Type":"application/json"},B={agent_id:A,message:t,prospect_id:e,stream:!0};r&&(B.inbox_id=r),a&&(B.widget_id=a);const f=await fetch(`${ke}/widget/chat`,{method:"POST",headers:g,body:JSON.stringify(B)});if(!f.ok)throw new Error("Chat request failed");const m=(d=f.body)==null?void 0:d.getReader(),w=new TextDecoder;if(!m)throw new Error("No reader");let v="",C="",y=null,Q=null;for(;;){const{done:E,value:F}=await m.read();if(E)break;C+=w.decode(F,{stream:!0});const I=C.split(`
8
+ `);C=I.pop()||"";for(const L of I){const O=L.trim();if(O&&O.startsWith("data: ")){const K=O.slice(6);if(K==="[DONE]"){o(y,Q);return}try{const M=JSON.parse(K);if(M.type==="metadata"){(M.chat_id||M.inbox_id)&&(y=M.chat_id||M.inbox_id),M.conversation_id&&(Q=M.conversation_id);continue}const Z=(u=(h=(c=M.choices)==null?void 0:c[0])==null?void 0:h.delta)==null?void 0:u.content;Z&&(v+=Z,s(v)),M.widget&&i(M.widget),M.chat_id&&!y&&(y=M.chat_id),M.conversation_id&&!Q&&(Q=M.conversation_id)}catch{}}}}o(y,Q)}catch{s("Sorry, I encountered an error. Please try again."),o(null,null)}}static listenForAdminReplies(A,e,t){const r=`${ke}/inbox/stream?inbox_id=${A}&sender=${encodeURIComponent(e)}`;let s=null,i=0,o=!1;const a=()=>{o||(s=new EventSource(r),s.onopen=()=>{i=0},s.onmessage=l=>{try{const d=JSON.parse(l.data),c=d.direction==="outgoing",h=!!d.content,u=d.source!=="ai";c&&h&&u&&t(d.content)}catch{}},s.onerror=l=>{if(s&&(s.close(),s=null),o)return;const d=Math.min(2e3*Math.pow(2,i),3e4);i++,setTimeout(a,d)})};return a(),{close:()=>{o=!0,s&&(s.close(),s=null)}}}static async createCall(A,e,t,r,s){try{const i={"Content-Type":"application/json"};s&&(i["X-API-Key"]=s);const o=await fetch(`${gA}/calls/create`,{method:"POST",headers:i,body:JSON.stringify({agent_id:A,prospect_id:t||void 0,type:"web"})}),a=await o.json();if(!o.ok)throw new Error(`[VaniraAI] Call creation failed HTTP ${o.status}`);if(!a.worker_url)throw new Error("[VaniraAI] Worker URL missing from response. Call cannot proceed.");return{callId:a.call_id||a.id||`web_${Date.now()}`,workerUrl:a.worker_url}}catch(i){throw i}}static async resolveConversation(A){try{if(!(await fetch(`${ke}/inbox/conversations/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation_id:A})})).ok)throw new Error("Failed to resolve conversation")}catch(e){throw e}}}class Xa{constructor(A){p(this,"config");p(this,"root",null);this.config=A}async initialize(A,e){this.config=A}isCallActive(){return!1}updateContext(A){return!1}triggerInterrupt(A,e){return!1}sendToolResult(A,e){return!1}}const b={Form:"vanira_form",Calendar:"vanira_calendar",Navigate:"vanira_navigate",Upload:"vanira_upload",Camera:"vanira_camera",HighlightElement:"vanira_highlight_element",ClickElement:"vanira_click_element",SelectOption:"vanira_select_option",SetDate:"vanira_set_date",TypeText:"vanira_type_text",EraseText:"vanira_erase_text",Draw:"vanira_draw",EraseDraw:"vanira_erase_draw",LiveVision:"vanira_live_vision",CloseLiveCamera:"vanira_close_live_camera",LiveScreen:"vanira_live_screen",CloseLiveScreen:"vanira_close_live_screen",ClipRegion:"vanira_clip_region",TabScreenshot:"vanira_tab_screenshot",ScreenInk:"vanira_screen_ink",ScreenCursor:"vanira_screen_cursor",ScreenClick:"vanira_screen_click",ClearScreenOverlay:"vanira_clear_screen_overlay",PageScan:"vanira_page_scan",PointAt:"vanira_point_at",OutlineTargets:"vanira_outline_targets",ClearGuide:"vanira_clear_guide"},Wa=Object.values(b),ja=new Set(Wa),Za=new Set([b.Camera,b.LiveVision,b.LiveScreen]),qa=new Set([b.TypeText,b.EraseText,b.Draw,b.EraseDraw]);function LA(n){return!!n&&ja.has(n)}function ds(n){return LA(n)&&qa.has(n)}function kn(n){return LA(n)&&Za.has(n)}const $a=new Set([b.Form,b.Calendar]);function Dn(n){return LA(n)&&$a.has(n)}function hs(n,A,e){return e!=null&&e.action_name?String(e.action_name):n===b.Calendar?"calendar_slot_selected":`user_submitted_${A||"collect_user_data"}`}function us(n){return LA(n)&&!kn(n)&&!Dn(n)}const gs=new Set([b.ScreenInk,b.ScreenCursor,b.ScreenClick,b.ClearScreenOverlay,b.PointAt,b.OutlineTargets,b.ClearGuide]),Al=new Set([...gs,b.PageScan,b.TabScreenshot]);function el(n){return LA(n)&&gs.has(n)}function tl(n){return LA(n)&&Al.has(n)}function ps(n){if(typeof n=="string")try{return JSON.parse(n)}catch{return{}}return n&&typeof n=="object"?n:{}}const Bs={type_on_whiteboard:b.TypeText,write_on_whiteboard:b.TypeText,write_on_white_board:b.TypeText,dom_typing_simulation:b.TypeText,erase_text:b.EraseText,dom_erase:b.EraseText,draw_on_board:b.Draw,erase_drawing_board:b.EraseDraw,open_live_camera:b.LiveVision,live_vision:b.LiveVision,close_live_camera:b.CloseLiveCamera,stop_live_camera:b.CloseLiveCamera,open_live_screen:b.LiveScreen,close_live_screen:b.CloseLiveScreen,screen_ink:b.ScreenInk,screen_cursor:b.ScreenCursor,screen_click:b.ScreenClick,clear_screen_overlay:b.ClearScreenOverlay,tab_screenshot:b.TabScreenshot,capture_tab:b.TabScreenshot,capture_tab_screenshot:b.TabScreenshot,screenshot_tab:b.TabScreenshot,page_scan:b.PageScan,scan_page:b.PageScan,point_at:b.PointAt,outline_targets:b.OutlineTargets,outline_elements:b.OutlineTargets,clear_guide:b.ClearGuide};function fs(n,A){const e=n.text_to_type??(A==null?void 0:A.text_to_type)??n.text??(A==null?void 0:A.text)??n.value??(A==null?void 0:A.value);return typeof e=="string"&&e.trim().length>0}function nl(n,A){const e=n.fields??(A==null?void 0:A.fields);return Array.isArray(e)?e.length>0:typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean).length>0:!1}function rl(n,A){const e=n==null?void 0:n.preset_id;if(typeof e=="string"&&LA(e))return e;const r=ps(A).preset_id;if(typeof r=="string"&&LA(r))return r}function pt(n,A,e){const t=ps(A);let r=rl(n,t);if(r===b.Form&&fs(t,n)&&!nl(t,n))return b.TypeText;if(r)return r;const s=String(e??"").trim().toLowerCase();if(s&&Bs[s])return Bs[s];if(fs(t,n))return b.TypeText}const Bt="vanira_latest_call_id",Pn="vanira_prospect_id";function ft(n){return`vanira_latest_call_id_${n}`}function wt(n){return`vanira_prospect_id_${n}`}function ws(n){return`vanira_call_meta_${n}`}function NA(n,A){if(!n)return null;try{return n.getItem(A)}catch{return null}}function mt(n){if(typeof window>"u"||!n)return null;const A=[],e=NA(window.localStorage,ws(n));if(e)try{const o=JSON.parse(e);o!=null&&o.callId&&A.push({callId:o.callId,prospectId:o.prospectId,updatedAt:o.updatedAt||0})}catch{}const t=(o,a,l)=>{o&&A.push({callId:o,prospectId:a||void 0,updatedAt:l})},r=NA(window.localStorage,wt(n)),s=NA(window.sessionStorage,wt(n)),i=NA(window.localStorage,Pn);return t(NA(window.localStorage,ft(n)),r||i,2),t(NA(window.sessionStorage,ft(n)),s||i,1),t(NA(window.localStorage,Bt),i,0),t(NA(window.sessionStorage,Bt),i,0),A.length?(A.sort((o,a)=>a.updatedAt-o.updatedAt),A[0]):null}function ms(n,A,e){var r,s,i,o,a,l,d,c,h;if(typeof window>"u"||!n||!A)return;const t={callId:A,prospectId:e,updatedAt:Date.now()};try{(r=window.localStorage)==null||r.setItem(ws(n),JSON.stringify(t)),(s=window.localStorage)==null||s.setItem(ft(n),A),(i=window.sessionStorage)==null||i.setItem(ft(n),A),e&&((o=window.localStorage)==null||o.setItem(wt(n),e),(a=window.sessionStorage)==null||a.setItem(wt(n),e)),(l=window.localStorage)==null||l.setItem(Bt,A),(d=window.sessionStorage)==null||d.setItem(Bt,A),e&&((c=window.localStorage)==null||c.setItem(Pn,e),(h=window.sessionStorage)==null||h.setItem(Pn,e))}catch{}}function Cs(n){var A;return!!((A=mt(n))!=null&&A.callId)}const sl=new Set(["client_tool_call","clearAudio","client_tool_cancel"]);function il(n){if(!n||typeof n!="object")return!1;const A=n.event;return typeof A=="string"&&sl.has(A)}const Kn=16*1024,ol=256*1024;function Nn(n,A){return(n==null?void 0:n.readyState)==="open"&&(A==null?void 0:A.readyState)==="open"}function al(n,A){return{control:(n==null?void 0:n.readyState)??"missing",mediaBytes:(A==null?void 0:A.readyState)??"missing"}}async function ll(n,A,e=8e3){if(Nn(n,A))return!0;const t=Date.now()+e;for(;Date.now()<t;){if(Nn(n,A))return!0;await new Promise(r=>setTimeout(r,50))}return Nn(n,A)}async function ys(n){for(;n.bufferedAmount>ol;)await new Promise(A=>setTimeout(A,10))}async function cl(n){const{bytes:A,filename:e,contentType:t,reason:r,message:s,callId:i,mediaBytesChannel:o,sendControlEvent:a,uploadId:l=crypto.randomUUID(),uploadKind:d="media"}=n,c=A.byteLength,h=c===0?0:Math.ceil(c/Kn);a("client_media_upload_start",{data:{upload_id:l,call_id:i,reason:r,message:s,filename:e,content_type:t,size:c,chunk_count:h,upload_kind:d}});const u=new Uint8Array(A);for(let g=0;g<c;g+=Kn){await ys(o);const B=Math.min(g+Kn,c);o.send(u.subarray(g,B))}return await ys(o),a("client_media_upload_complete",{data:{upload_id:l,call_id:i,reason:r,message:s,chunk_count:h,upload_kind:d}}),{media_id:l,url:"",content_type:t}}async function dl(n){return typeof n.arrayBuffer=="function"?n.arrayBuffer():new Response(n).arrayBuffer()}let qA=null;const hl=4e3;function vs(n){if(typeof window>"u")return n||"/";const A=(n||"/").trim();if(!A)return"/";try{const e=new URL(A,window.location.origin);return e.origin!==window.location.origin?A:`${e.pathname}${e.search}${e.hash}`||"/"}catch{return A.startsWith("/")?A:`/${A}`}}function ul(n,A){qA={targetRoute:vs(n),presetId:A==null?void 0:A.presetId,toolName:A==null?void 0:A.toolName,expiresAt:Date.now()+hl}}function gl(n){if(!qA)return null;if(Date.now()>qA.expiresAt)return qA=null,null;const A=vs(n),e=qA.targetRoute;if(!(A===e||A.startsWith(e.split("#")[0])||e.startsWith(A.split("#")[0])))return null;const r=qA;return qA=null,r}function Ct(){return typeof window>"u"?"/":`${window.location.pathname}${window.location.search}${window.location.hash}`||"/"}class pl{constructor(A){p(this,"active",!1);p(this,"initialSent",!1);p(this,"lastRoute","");p(this,"sendContext");p(this,"isReady");p(this,"cleanupFns",[]);p(this,"initialRetryTimer",null);p(this,"routePollTimer",null);p(this,"originalPushState",null);p(this,"originalReplaceState",null);this.sendContext=A.sendContext,this.isReady=A.isReady??(()=>!0)}start(){typeof window>"u"||this.active||(this.active=!0,this.initialSent=!1,this.lastRoute=Ct(),this.attachListeners(),this.scheduleInitialContextSend())}stop(){if(!(!this.active&&this.cleanupFns.length===0)){this.active=!1,this.initialSent=!1,this.initialRetryTimer!==null&&(clearTimeout(this.initialRetryTimer),this.initialRetryTimer=null),this.routePollTimer!==null&&(clearInterval(this.routePollTimer),this.routePollTimer=null);for(const A of this.cleanupFns)try{A()}catch{}this.cleanupFns.length=0,this.originalPushState&&(history.pushState=this.originalPushState,this.originalPushState=null),this.originalReplaceState&&(history.replaceState=this.originalReplaceState,this.originalReplaceState=null)}}onChannelReady(){this.scheduleInitialContextSend()}scheduleInitialContextSend(A=0){if(!(!this.active||this.initialSent)){if(this.isReady()){this.sendRouteContext("call_started"),this.initialSent=!0;return}A>=30||(this.initialRetryTimer=window.setTimeout(()=>this.scheduleInitialContextSend(A+1),100))}}attachListeners(){const A=(s,i=0)=>{const o=()=>{const a=Ct();a!==this.lastRoute&&this.handleRouteChange(a,s)};i>0?window.setTimeout(o,i):queueMicrotask(o)},e=()=>A("popstate"),t=()=>A("hashchange"),r=s=>{const i=s.detail;if((i==null?void 0:i.initiated_by)==="agent"){A("vanira_navigate_agent",120);return}A("vanira_navigate",120)};window.addEventListener("popstate",e),window.addEventListener("hashchange",t),window.addEventListener("vanira:navigate",r),this.cleanupFns.push(()=>window.removeEventListener("popstate",e),()=>window.removeEventListener("hashchange",t),()=>window.removeEventListener("vanira:navigate",r)),this.originalPushState=history.pushState.bind(history),this.originalReplaceState=history.replaceState.bind(history),history.pushState=(...s)=>{this.originalPushState(...s),A("pushState")},history.replaceState=(...s)=>{this.originalReplaceState(...s),A("replaceState")},this.routePollTimer=window.setInterval(()=>{if(!this.active)return;const s=Ct();s!==this.lastRoute&&this.handleRouteChange(s,"location_poll")},1e3)}handleRouteChange(A,e){if(!this.active)return;const t=this.lastRoute;if(t===A)return;if(this.lastRoute=A,!this.initialSent){this.scheduleInitialContextSend();return}!this.isReady()||gl(A)||this.sendRouteContext("route_changed",t,e,"user")}sendRouteContext(A,e,t,r="user"){const s=Ct();this.lastRoute=s;const i={ui_state:"page_navigation",navigation_led_by:r,current_route:s,current_page:s,user_action:A==="call_started"?"call_started_on_page":"user_navigated"};A==="call_started"?i.message=`User started the call while viewing ${s}.`:(i.previous_route=e??"",i.message=`User navigated from ${e||"(unknown)"} to ${s}.`,t&&(i.navigation_source=t));try{this.sendContext(i)}catch{}}}const PA=class PA{constructor(A){p(this,"serverUrl");p(this,"agentId");p(this,"callId");p(this,"prospectId");p(this,"apiKey");p(this,"backendUrl");p(this,"token");p(this,"onConnected");p(this,"onDisconnected");p(this,"onError");p(this,"onTranscription");p(this,"onLocalStream");p(this,"onRemoteTrack");p(this,"onClientToolCall");p(this,"onSessionStarted");p(this,"sessionStartedEmitted",!1);p(this,"pc",null);p(this,"dataChannel",null);p(this,"mediaBytesChannel",null);p(this,"audioElement",null);p(this,"localStream",null);p(this,"micMuted",!1);p(this,"connected",!1);p(this,"icePollInterval",null);p(this,"appliedRemoteCandidates",new Set);p(this,"iceServers");p(this,"callSessionLoaded",!1);p(this,"connectGeneration",0);p(this,"runtime");p(this,"sessionBehavior");p(this,"routeTracker",null);p(this,"_status","idle");p(this,"listeners",new Map);p(this,"liveVision");p(this,"liveVisionAutoStarted",!1);if(!A.agentId)throw new Error("agentId is required");const e=!!(A.apiKey||A.token),t=!!(A.serverUrl&&A.callId),r=PA.normalizeIceServers(A.iceServers);if(!e&&!t)throw new Error("apiKey or token is required — or pass serverUrl and callId from a prior POST /calls/create");this.agentId=A.agentId,this.sessionBehavior=A.sessionBehavior,this.serverUrl=(A.serverUrl||"").replace(/\/$/,""),this.apiKey=A.apiKey,this.token=A.token,this.backendUrl=(A.backendUrl||gA).replace(/\/$/,""),r.length&&(this.iceServers=r),t&&(this.callSessionLoaded=!0);const s=typeof window<"u";this.prospectId=A.prospectId;const i=A.sessionBehavior==="continue";if(i&&s&&!A.callId){const a=mt(this.agentId);a&&(A.callId||(this.callId=a.callId),!this.prospectId&&a.prospectId&&(this.prospectId=a.prospectId))}if(!this.prospectId&&s)try{const a=mt(this.agentId);this.prospectId=(a==null?void 0:a.prospectId)||window.sessionStorage&&window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage&&window.localStorage.getItem("vanira_prospect_id")||void 0}catch{}A.callId?this.callId=A.callId:i||(this.callId=void 0);const o=A.onSessionStarted;this.onSessionStarted=a=>{o==null||o(a),this.emit("session_started",a)},this.liveVision=A.liveVision,this.onConnected=()=>{var a;this._status="connected",(a=A.onConnected)==null||a.call(A),this.emit("connected"),this.maybeAutoStartLiveCamera()},this.onDisconnected=()=>{var a;this._status="disconnected",(a=A.onDisconnected)==null||a.call(A),this.emit("disconnected")},this.onError=a=>{var d;this._status="error";const l=typeof a=="string"?a:(a==null?void 0:a.message)||"Connection error";(d=A.onError)==null||d.call(A,a),this.emit("error",l)},this.onTranscription=(a,l)=>{var d;(d=A.onTranscription)==null||d.call(A,a,l),this.emit("transcription",{text:a,isFinal:l})},this.onLocalStream=A.onLocalStream||(()=>{}),this.onRemoteTrack=(a,l)=>{var d;(d=A.onRemoteTrack)==null||d.call(A,a,l),this.emit("track",{track:a,stream:l})},this.onClientToolCall=a=>{var c;(c=A.onClientToolCall)==null||c.call(A,a);const l=(a==null?void 0:a.data)||a,d={name:String(l.name||l.tool_name||""),arguments:l.arguments||l.args||{},tool_call_id:String(l.tool_call_id||l.call_id||""),execution_mode:l.execution_mode==="blocking"?"blocking":"fire_and_forget",client_fields:l.client_fields||{}};d.name&&d.tool_call_id&&this.emit("tool_call",d)},this.runtime=A.runtime,typeof window<"u"&&A.trackRouteContext!==!1&&(this.routeTracker=new pl({sendContext:a=>this.sendContextUpdate(a),isReady:()=>{var a;return((a=this.dataChannel)==null?void 0:a.readyState)==="open"}}))}async createCall(){return this.connect()}async connect(){var e;this._status="connecting";const A=++this.connectGeneration;if(await this.loadCallSession(),!this.isConnectCancelled(A)){if(!this.serverUrl)throw new Error("[VaniraClient] worker_url missing from /calls/create");if(!this.callId)throw new Error("[VaniraClient] call_id missing — must come from POST /calls/create");if(this.onSessionStarted&&this.prospectId&&this.callId&&!this.sessionStartedEmitted)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch{}try{this.appliedRemoteCandidates.clear(),this.stopRemoteIcePolling();const t=this.getIceServers();this.pc=new RTCPeerConnection({iceServers:t,iceTransportPolicy:"all"});let r;try{r=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:{ideal:16e3},channelCount:1}})}catch(c){if(c.name==="NotAllowedError"||c.name==="PermissionDeniedError"||(e=c.message)!=null&&e.includes("Permission denied")){const h=navigator.userAgent,u=/iPad|iPhone|iPod/.test(h)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;let g="Microphone access denied. Please allow microphone access in your browser settings.";u&&(h.includes("CriOS")?g="Microphone access blocked. Please enable it in iOS Settings > Chrome > Microphone, then reload the page.":h.includes("FxiOS")?g="Microphone access blocked. Please enable it in iOS Settings > Firefox > Microphone, then reload the page.":g="Microphone access blocked. Please enable it in iOS Settings > Safari > Microphone (or tap 'aA' > Website Settings > Allow Microphone).");const B=new Error(g);throw B.name=c.name,B}throw c}if(this.isConnectCancelled(A)){r.getTracks().forEach(c=>c.stop());return}if(this.localStream=r,!this.pc||this.isConnectCancelled(A)){r.getTracks().forEach(c=>c.stop());return}if(this.onLocalStream(r),r.getTracks().forEach(c=>{var h;(h=this.pc)==null||h.addTrack(c,r)}),!this.pc)throw new Error("RTCPeerConnection was closed unexpectedly");this.dataChannel=this.pc.createDataChannel("control"),this.dataChannel.onopen=()=>{var c;(c=this.routeTracker)==null||c.onChannelReady()},this.dataChannel.onmessage=c=>{if(typeof c.data=="string")try{this.handleControlEvent(JSON.parse(c.data))}catch{}else if(c.data instanceof ArrayBuffer)try{const h=new TextDecoder().decode(c.data);try{const u=JSON.parse(h);il(u)&&this.handleControlEvent(u)}catch{}}catch{}else c.data instanceof Blob&&c.data.text().then(h=>{try{this.handleControlEvent(JSON.parse(h))}catch{}})},this.dataChannel.onerror=c=>{},this.mediaBytesChannel=this.pc.createDataChannel("media-bytes",{ordered:!0}),this.mediaBytesChannel.binaryType="arraybuffer",this.mediaBytesChannel.onopen=()=>{},this.mediaBytesChannel.onerror=c=>{},this.pc.ontrack=c=>{const h=c.track,u=c.streams[0];h.kind==="audio"?(this.audioElement=new Audio,this.audioElement.srcObject=u,this.audioElement.play().catch(g=>{}),this.audioElement.onended=()=>{this.sendEvent("playedStream"),typeof window<"u"&&window.dispatchEvent(new CustomEvent("vanira:agent-playback-ended"))},this.onRemoteTrack(h,u)):h.kind==="video"&&this.onRemoteTrack(h,u)};const s=()=>{var u,g,B,f,m,w,v,C,y,Q,E;const c=((u=this.pc)==null?void 0:u.connectionState)==="connected"||((g=this.pc)==null?void 0:g.iceConnectionState)==="connected"||((B=this.pc)==null?void 0:B.iceConnectionState)==="completed",h=((f=this.pc)==null?void 0:f.connectionState)==="failed"||((m=this.pc)==null?void 0:m.iceConnectionState)==="failed"||((w=this.pc)==null?void 0:w.connectionState)==="closed"||((v=this.pc)==null?void 0:v.iceConnectionState)==="closed"||((C=this.pc)==null?void 0:C.connectionState)==="disconnected"||((y=this.pc)==null?void 0:y.iceConnectionState)==="disconnected";((Q=this.pc)==null?void 0:Q.connectionState)==="connected"&&this.stopRemoteIcePolling(),c&&!this.connected?(this.connected=!0,(E=this.routeTracker)==null||E.start(),this.onConnected()):h&&this.connected&&(this.connected=!1,this.liveVisionAutoStarted=!1,this.onDisconnected())};this.pc.onconnectionstatechange=s,this.pc.oniceconnectionstatechange=s;const i=this.getIceTrickleUrl();this.pc.onicecandidate=c=>{c.candidate&&fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({candidate:c.candidate.toJSON()})}).catch(h=>{})};const o=await this.pc.createOffer();if(this.isConnectCancelled(A)||(await this.pc.setLocalDescription(o),this.isConnectCancelled(A)))return;const a=this.serverUrl.includes("?")?this.serverUrl:`${this.serverUrl}/webrtc?agent=${this.agentId}_${this.callId}`,l=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({offer:this.pc.localDescription,agentId:this.agentId,callId:this.callId})});if(this.isConnectCancelled(A))return;if(!l.ok){const c=await l.json();throw new Error(c.error||`HTTP ${l.status}`)}const{answer:d}=await l.json();if(this.isConnectCancelled(A)||!this.pc||(await this.pc.setRemoteDescription(d),this.isConnectCancelled(A)))return;this.startRemoteIcePolling(i)}catch(t){if(this.isConnectCancelled(A))return;throw this.disconnect(),this.onError(t.message||t),t}}}createCallCacheKey(A,e){const t=this.apiKey?`key:${this.apiKey.slice(0,16)}`:`token:${(this.token||"").slice(-16)}`;return[this.backendUrl,this.agentId,A,e||"",this.prospectId||"",t].join("|")}async postCreateCall(A,e,t){var o,a,l;const r=await fetch(`${this.backendUrl}/calls/create`,{method:"POST",headers:A,body:JSON.stringify({agent_id:this.agentId,type:((o=this.runtime)==null?void 0:o.callType)||"web",mode:e,...(a=this.runtime)!=null&&a.runtimeName?{runtime:this.runtime.runtimeName}:{},prospect_id:this.prospectId,...t?{call_id:t}:{}})});if(!r.ok){const d=await r.json().catch(()=>({}));throw new Error(`[VaniraClient] createCall failed (${r.status}): ${((l=d==null?void 0:d.detail)==null?void 0:l.message)||(d==null?void 0:d.message)||r.statusText}`)}const s=await r.json();if(!s.call_id||!s.worker_url)throw new Error("[VaniraClient] /calls/create response missing call_id or worker_url");const i=PA.normalizeIceServers(s.ice_servers);if(!i.length)throw new Error("[VaniraClient] /calls/create response missing ice_servers");return{callId:s.call_id,prospectId:s.prospect_id||this.prospectId,serverUrl:s.worker_url.replace(/\/$/,""),iceServers:i}}applyCreateCallSession(A){if(this.callId=A.callId,this.prospectId=A.prospectId||this.prospectId,this.serverUrl=A.serverUrl,this.iceServers=A.iceServers,this.callSessionLoaded=!0,ms(this.agentId,this.callId||"",this.prospectId),this.onSessionStarted&&this.prospectId&&this.callId&&!this.sessionStartedEmitted)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch{}}async loadCallSession(){if(this.callSessionLoaded)return;if(this.serverUrl&&this.callId){this.callSessionLoaded=!0;return}if(!this.apiKey&&!this.token)throw new Error("[VaniraClient] apiKey or token is required to create a call session");const A={"Content-Type":"application/json"};this.apiKey?A["X-API-Key"]=this.apiKey:this.token&&(A.Authorization=this.token.startsWith("Bearer ")?this.token:`Bearer ${this.token}`);const e=this.sessionBehavior==="continue"?this.callId:void 0,t=this.sessionBehavior==="continue"?"continue":"new",r=this.createCallCacheKey(t,e);let s=PA.inflightCreates.get(r);s||(s=this.postCreateCall(A,t,e),PA.inflightCreates.set(r,s),s.finally(()=>{PA.inflightCreates.get(r)===s&&PA.inflightCreates.delete(r)}));const i=await s;this.applyCreateCallSession(i)}getIceServers(){var A;if((A=this.iceServers)!=null&&A.length)return this.iceServers;throw new Error("[VaniraClient] ice_servers missing — pass iceServers from POST /calls/create")}static normalizeIceServers(A){if(!Array.isArray(A))return[];const e=[];for(const t of A){const r=t==null?void 0:t.urls,s=Array.isArray(r)?r.filter(Boolean):typeof r=="string"&&r.trim()?[r.trim()]:[];if(!s.length)continue;const i={urls:s.length===1?s[0]:s},o=t.username,a=t.credential;o&&(i.username=o),a&&(i.credential=a),e.push(i)}return e}getWorkerOrigin(){var A;if(!((A=this.serverUrl)!=null&&A.trim()))return"";try{return new URL(this.serverUrl).origin}catch{return this.serverUrl.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}}getIceTrickleUrl(){try{const A=new URL(this.serverUrl);return A.pathname.endsWith("/webrtc")?A.pathname=`${A.pathname}/ice`:A.pathname="/webrtc/ice",A.toString()}catch{return`${this.getWorkerOrigin()}/webrtc/ice?agent_id=${this.agentId}&call_id=${this.callId}`}}startRemoteIcePolling(A){this.stopRemoteIcePolling(),this.icePollInterval=setInterval(async()=>{if(!this.pc){this.stopRemoteIcePolling();return}if(this.pc.connectionState==="connected"){this.stopRemoteIcePolling();return}try{const e=await fetch(A);if(!e.ok)return;const{candidates:t}=await e.json();for(const r of t||[]){const s=JSON.stringify(r);if(!this.appliedRemoteCandidates.has(s)){this.appliedRemoteCandidates.add(s);try{await this.pc.addIceCandidate(r)}catch{}}}}catch{}},150)}stopRemoteIcePolling(){this.icePollInterval!==null&&(clearInterval(this.icePollInterval),this.icePollInterval=null)}sendEvent(A,e={}){var t;if(((t=this.dataChannel)==null?void 0:t.readyState)==="open"){const r={event:A,...e};this.dataChannel.send(JSON.stringify(r))}}async sendEventWhenReady(A,e={},t=1e4){var s;const r=Date.now()+t;for(;Date.now()<r;){if(((s=this.dataChannel)==null?void 0:s.readyState)==="open")return this.sendEvent(A,e),!0;await new Promise(i=>setTimeout(i,50))}return!1}startLiveCamera(A={}){const e={...this.liveVision,...A};this.emit("tool_call",this.buildOpenLiveCameraToolCall(e))}buildOpenLiveCameraToolCall(A={}){const e=A.scope??"until_call_end";return{name:"open_live_camera",tool_call_id:`lv_${crypto.randomUUID()}`,execution_mode:"fire_and_forget",client_fields:{preset_id:b.LiveVision},arguments:{mode:"live",scope:e,target_fps:A.target_fps??1,max_fps:A.max_fps??3,max_width:A.max_width??640,reason:A.reason??"camera_capture",facing_mode:A.facing_mode??"environment",show_preview:A.show_preview??!0,...e==="timed"&&A.duration_sec?{duration_sec:A.duration_sec}:{}}}}maybeAutoStartLiveCamera(){const A=this.liveVision;!(A!=null&&A.enabled)||A.scope!=="full_call"||this.liveVisionAutoStarted||(this.liveVisionAutoStarted=!0,this.emit("tool_call",this.buildOpenLiveCameraToolCall(A)))}handleControlEvent(A){var e;switch(A.event){case"clearAudio":break;case"transcription":this.onTranscription(A.text,A.isFinal);break;case"mark":break;case"client_tool_cancel":{const r=(A.data||A).tool_call_id||A.tool_call_id;this.dispatchBoardAbort("Tool cancelled by server",r);break}case"client_tool_call":{const t=A.tool_call||A.data||A,r=(t==null?void 0:t.tool_call_id)||(t==null?void 0:t.call_id)||A.tool_call_id||"";r&&((e=this.dataChannel)==null?void 0:e.readyState)==="open"&&this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:r}}));const s=(t==null?void 0:t.arguments)||(t==null?void 0:t.args)||{},i=(t==null?void 0:t.client_fields)||{},o=(t==null?void 0:t.name)||(t==null?void 0:t.tool_name)||"",a=pt(i,s,o);if(o==="end_call"){r&&this.sendToolResult(r,{status:"client_ack_end_call",message:"Ending call."}),window.setTimeout(()=>this.disconnect(),120);break}if(a){window.dispatchEvent(new CustomEvent("vanira:preset",{detail:{toolCall:t,client:this}})),this.onClientToolCall(t);break}this.onClientToolCall(t);break}}}disconnect(){var A;this.connectGeneration++,this.stopRemoteIcePolling(),this.appliedRemoteCandidates.clear(),this.audioElement&&(this.audioElement.pause(),this.audioElement.srcObject=null),this.dataChannel&&(this.dataChannel.close(),this.dataChannel=null),this.mediaBytesChannel&&(this.mediaBytesChannel.close(),this.mediaBytesChannel=null),this.pc&&(this.pc.getSenders().forEach(e=>{e.track&&e.track.stop()}),this.pc.close(),this.pc=null),this.localStream&&(this.localStream.getTracks().forEach(e=>{try{e.stop()}catch{}}),this.localStream=null),this.connected=!1,(A=this.routeTracker)==null||A.stop(),this.callSessionLoaded=!1,this.sessionStartedEmitted=!1,this.serverUrl="",this.callId=void 0,this.micMuted=!1,this.iceServers=void 0,this.onDisconnected()}setMicrophoneMuted(A){var e,t;this.micMuted=A,(e=this.localStream)==null||e.getAudioTracks().forEach(r=>{r.enabled=!A}),(t=this.pc)==null||t.getSenders().forEach(r=>{var s;((s=r.track)==null?void 0:s.kind)==="audio"&&(r.track.enabled=!A)})}isMicrophoneMuted(){return this.micMuted}toggleMicrophoneMuted(){return this.setMicrophoneMuted(!this.micMuted),this.micMuted}isConnectCancelled(A){return A!==this.connectGeneration}dispatchBoardAbort(A,e){typeof window>"u"||window.dispatchEvent(new CustomEvent("vanira:board_abort",{detail:{reason:A,toolCallId:e}}))}sendToolResult(A,e){this.callId,this.sendEvent("client_tool_result",{call_id:this.callId,data:{tool_call_id:A,result:e},result:e})}sendToolAck(A){var e;((e=this.dataChannel)==null?void 0:e.readyState)==="open"&&this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:A}}))}sendContextUpdate(A){this.sendEvent("client_context_update",{data:{context:A}})}sendActionTrigger(A,e={}){this.sendEvent("client_action_trigger",{data:{action_name:A,data:e}})}triggerActionInterrupt(){this.sendEvent("action_interrupt")}async uploadMediaForToolResult(A,e="general"){return this._postMediaUpload(A,e)}async uploadMedia(A,e="general",t=""){return await ll(this.dataChannel,this.mediaBytesChannel)?this._uploadMediaViaDataChannel(A,e,t):(al(this.dataChannel,this.mediaBytesChannel),this._uploadMediaViaHTTP(A,e,t))}async uploadMediaFrame(A,e="camera_capture",t){const r=t&&!(A instanceof File)?new File([A],t,{type:A.type||"image/jpeg"}):A,{media_id:s,url:i,contentType:o}=await this._postMediaUpload(r,e,!0);if(!s||!i)throw new Error("Frame upload failed: server response missing media_id or url");return{media_id:s,url:i,content_type:o}}async _uploadBytesViaDataChannel(A,e,t,r,s){if(!this.callId||!this.mediaBytesChannel)throw new Error("Upload failed: call not ready for WebRTC media upload.");const i=s||(A instanceof File?A.name:r==="frame"?"frame.jpg":"upload.bin"),o=A.type||(r==="frame"?"image/jpeg":"application/octet-stream"),a=await dl(A);return cl({bytes:a,filename:i,contentType:o,reason:e,message:t,callId:this.callId,mediaBytesChannel:this.mediaBytesChannel,sendControlEvent:(l,d)=>this.sendEvent(l,d),uploadKind:r})}async _uploadMediaViaDataChannel(A,e,t){const r=await this._uploadBytesViaDataChannel(A,e,t,"media");return{media_id:r.media_id,url:r.url}}async _uploadMediaViaHTTP(A,e="general",t=""){const{media_id:r,url:s,contentType:i}=await this._postMediaUpload(A,e,!0);if(this.dataChannel&&this.dataChannel.readyState==="open"){const o={event:"client_media_update",data:{media_id:r,media_url:s,content_type:i,reason:e,message:t}};this.dataChannel.send(JSON.stringify(o))}return{media_id:r,url:s}}async _postMediaUpload(A,e,t=!1){if(!this.serverUrl)throw new Error("Upload failed: serverUrl is not set. Connect the VaniraClient first.");if(!this.callId)throw new Error("Upload failed: callId is missing.");const r=this.getWorkerOrigin();if(!r)throw new Error("Upload failed: worker_url is not set. Connect the call before uploading media.");const s=`${r}/media/upload`,i=new FormData;i.append("file",A),i.append("call_id",this.callId),i.append("reason",e);const o=await fetch(s,{method:"POST",body:i});if(!o.ok){let h=`HTTP ${o.status}`;try{h=(await o.json()).error||h}catch{}throw new Error(`Upload failed: ${h}`)}const a=await o.json(),l=a.media_id,d=a.url,c=a.content_type||A.type;if(!l||!d)throw new Error("Upload failed: server response missing media_id or url");return t?{media_id:l,url:d,contentType:c}:{media_id:l,url:d,contentType:c}}get status(){return this._status}get isConnected(){return this._status==="connected"}on(A,e){return this.listeners.has(A)||this.listeners.set(A,new Set),this.listeners.get(A).add(e),this}off(A,e){var t;return(t=this.listeners.get(A))==null||t.delete(e),this}emit(A,e){var t;(t=this.listeners.get(A))==null||t.forEach(r=>r(e))}async start(){return await this.connect(),{callId:this.callId||"",prospectId:this.prospectId||"",serverUrl:this.serverUrl||""}}stop(){this.disconnect(),this._status="disconnected"}sendToolError(A,e){this.sendToolResult(A,{status:"error",error:e})}updateContext(A){this.sendContextUpdate(A)}triggerInterrupt(A,e={}){this.triggerActionInterrupt(),this.sendActionTrigger(A,e)}interruptAudioOnly(){this.triggerActionInterrupt()}};p(PA,"inflightCreates",new Map);let he=PA;const Le=class Le{constructor(A){p(this,"tabId");p(this,"sessionKey");p(this,"channelName");p(this,"channel",null);p(this,"heartbeatTimer",null);p(this,"listeners",new Map);const e=A.replace(/[^a-z0-9_-]/gi,"_");this.sessionKey=`vaniraai_session_${e}`,this.channelName=`vaniraai_channel_${e}`,this.tabId=this._getOrCreateTabId(),this._setupChannel()}getTabId(){return this.tabId}claimSession(){const A=this._loadSession();if(A){const r=Date.now()-A.lastActive,s=A.tabId===this.tabId,i=r>Le.HEARTBEAT_TIMEOUT_MS;if(s)return this._startHeartbeat(),this._emit("session_restored"),!0;if(!i)return this._emit("tab_conflict"),!1}const e=A?{...A,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId});const t=!!(A!=null&&A.prospectId);return this._emit(t?"session_restored":"session_claimed"),!0}forceClaimSession(){const A=this._loadSession(),e=A?{...A,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId}),this._emit("session_claimed")}saveIds(A,e,t){const r=this._loadSession()??this._blankSession();this._saveSession({...r,prospectId:A,chatId:e,conversationId:t??r.conversationId??null,tabId:this.tabId,lastActive:Date.now()})}pushMessage(A,e){const t=this._loadSession()??this._blankSession();t.messages.push({role:A,content:e,timestamp:Date.now()}),t.messages.length>100&&(t.messages=t.messages.slice(-100)),this._saveSession({...t,tabId:this.tabId,lastActive:Date.now()})}updateLastAssistantMessage(A){const e=this._loadSession()??this._blankSession(),t=e.messages;let r=!1;for(let s=t.length-1;s>=0;s--)if(t[s].role==="assistant"&&t[s].content===""){t[s].content=A,r=!0;break}if(!r){for(let s=t.length-1;s>=0;s--)if(t[s].role==="assistant"){t[s].content=A,r=!0;break}}r||t.push({role:"assistant",content:A,timestamp:Date.now()}),this._saveSession({...e,tabId:this.tabId,lastActive:Date.now()})}getSession(){return this._loadSession()}clearSession(){localStorage.removeItem(this.sessionKey),this._broadcast({type:"session_cleared",tabId:this.tabId}),this._emit("session_cleared")}clearChatKeepProspect(){const A=this._loadSession();A&&this._saveSession({...A,chatId:null,conversationId:null,messages:[],lastActive:Date.now()})}destroy(){this._stopHeartbeat(),this.channel&&(this.channel.close(),this.channel=null)}on(A,e){return this.listeners.has(A)||this.listeners.set(A,new Set),this.listeners.get(A).add(e),this}off(A,e){var t;return(t=this.listeners.get(A))==null||t.delete(e),this}_getOrCreateTabId(){let A=sessionStorage.getItem("vaniraai_tab_id");return A||(A=`tab_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,sessionStorage.setItem("vaniraai_tab_id",A)),A}_setupChannel(){typeof BroadcastChannel>"u"||(this.channel=new BroadcastChannel(this.channelName),this.channel.onmessage=A=>{const e=A.data;e.tabId!==this.tabId&&(e.type==="took_over"&&(this._stopHeartbeat(),this._emit("tab_took_over")),e.type,e.type==="session_cleared"&&this._emit("session_cleared"))})}_broadcast(A){var e;(e=this.channel)==null||e.postMessage(A)}_startHeartbeat(){this._stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{const A=this._loadSession();A&&A.tabId===this.tabId&&(this._saveSession({...A,lastActive:Date.now()}),this._broadcast({type:"heartbeat",tabId:this.tabId}))},Le.HEARTBEAT_INTERVAL_MS)}_stopHeartbeat(){this.heartbeatTimer!==null&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}_loadSession(){try{const A=localStorage.getItem(this.sessionKey);return A?JSON.parse(A):null}catch{return null}}_saveSession(A){try{localStorage.setItem(this.sessionKey,JSON.stringify(A))}catch{}}_blankSession(){return{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()}}_emit(A){var e;(e=this.listeners.get(A))==null||e.forEach(t=>t())}};p(Le,"HEARTBEAT_INTERVAL_MS",5e3),p(Le,"HEARTBEAT_TIMEOUT_MS",15e3);let On=Le;const bs="data:image/png;base64,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",Qs="data:image/png;base64,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",xs=n=>{n=n.replace(/^#/,"");let A,e,t;return n.length===3?(A=parseInt(n.charAt(0)+n.charAt(0),16),e=parseInt(n.charAt(1)+n.charAt(1),16),t=parseInt(n.charAt(2)+n.charAt(2),16)):(A=parseInt(n.substring(0,2),16),e=parseInt(n.substring(2,4),16),t=parseInt(n.substring(4,6),16)),isNaN(A)||isNaN(e)||isNaN(t)?"0, 0, 0":`${A}, ${e}, ${t}`},Bl=(n,A)=>{const e=xs(n),t=xs(A||n);return`
9
9
  --primary: ${n};
10
10
  --primary-rgb: ${e};
11
11
  --primary-hover: ${A||n};
12
12
  --secondary: ${A||n};
13
13
  --secondary-rgb: ${t};
14
- `},ll=`
14
+ `},fl=`
15
15
  :host(.vanira-portal) {
16
16
  position: fixed !important;
17
17
  bottom: 0 !important;
@@ -2080,7 +2080,7 @@ var zf=Object.defineProperty;var Jf=(HA,gA,de)=>gA in HA?zf(HA,gA,{enumerable:!0
2080
2080
  <div style="width: 3px; height: 22px; background: white; border-radius: 10px; animation: voice-bars-orb 1.2s infinite ease-in-out; animation-delay: 0.1s;"></div>
2081
2081
  <div style="width: 3px; height: 12px; background: white; border-radius: 10px; animation: voice-bars-orb 1.2s infinite ease-in-out; animation-delay: 0.3s;"></div>
2082
2082
  </div>
2083
- `},bs={automotive:`
2083
+ `},Es={automotive:`
2084
2084
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2085
2085
  <path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"/>
2086
2086
  <circle cx="7" cy="17" r="2"/>
@@ -2194,7 +2194,7 @@ var zf=Object.defineProperty;var Jf=(HA,gA,de)=>gA in HA?zf(HA,gA,{enumerable:!0
2194
2194
  <rect width="18" height="12" x="3" y="4" rx="2" ry="2"/>
2195
2195
  <line x1="2" x2="22" y1="20" y2="20"/>
2196
2196
  </svg>
2197
- `},yt={...bs,default_chat:G.chat,default_voice:G.mic,voice_orb:G.voice_orb,male:`<img src="${Cs}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`,female:`<img src="${ys}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`};Object.entries(bs).forEach(([n,A])=>{yt[`male_${n} `]=`
2197
+ `},yt={...Es,default_chat:G.chat,default_voice:G.mic,voice_orb:G.voice_orb,male:`<img src="${bs}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`,female:`<img src="${Qs}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`};Object.entries(Es).forEach(([n,A])=>{yt[`male_${n} `]=`
2198
2198
  < div style = "position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: white; border-radius: 50%;" >
2199
2199
  <div style="width: 60%; height: 60%; color: #000000;" >
2200
2200
  ${A}
@@ -2211,7 +2211,7 @@ border: 2px solid white;
2211
2211
  box - shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2212
2212
  overflow: hidden;
2213
2213
  ">
2214
- < img src = "${Cs}" style = "width: 100%; height: 100%; object-fit: cover;" />
2214
+ < img src = "${bs}" style = "width: 100%; height: 100%; object-fit: cover;" />
2215
2215
  </div>
2216
2216
  </div>
2217
2217
  `,yt[`female_${n} `]=`
@@ -2231,10 +2231,10 @@ border: 2px solid white;
2231
2231
  box - shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2232
2232
  overflow: hidden;
2233
2233
  ">
2234
- < img src = "${ys}" style = "width: 100%; height: 100%; object-fit: cover;" />
2234
+ < img src = "${Qs}" style = "width: 100%; height: 100%; object-fit: cover;" />
2235
2235
  </div>
2236
2236
  </div>
2237
- `});class Qs{constructor(A,e,t,r=G.chat){p(this,"element");p(this,"iconContainer");p(this,"posX",0);p(this,"posY",0);p(this,"isDragging",!1);p(this,"startX",0);p(this,"startY",0);p(this,"currentX",0);p(this,"currentY",0);p(this,"hasMoved",!1);this.onClick=A,this.onMove=e,this.onMoveEnd=t,this.element=document.createElement("button"),this.element.className="widget-fab",this.element.onpointerdown=this.dragStart.bind(this),this.iconContainer=document.createElement("div"),this.iconContainer.style.cssText="display:flex; align-items:center; justify-content:center; width:100%; height:100%;",this.iconContainer.innerHTML=r,this.element.appendChild(this.iconContainer)}dragStart(A){if(A.button!==0)return;const e=this.element.getBoundingClientRect();this.isDragging=!0,this.hasMoved=!1,this.startX=A.clientX,this.startY=A.clientY,this.currentX=e.left,this.currentY=e.top,this.element.setPointerCapture(A.pointerId),this.element.style.transition="none",this.element.style.cursor="grabbing";const t=s=>{var a;if(!this.isDragging)return;const i=s.clientX-this.startX,o=s.clientY-this.startY;(Math.abs(i)>5||Math.abs(o)>5)&&(this.hasMoved=!0),this.hasMoved&&(this.posX=this.currentX+i,this.posY=this.currentY+o,this.posX=Math.max(0,Math.min(this.posX,window.innerWidth-this.element.offsetWidth)),this.posY=Math.max(0,Math.min(this.posY,window.innerHeight-this.element.offsetHeight)),this.element.style.left=`${this.posX}px`,this.element.style.top=`${this.posY}px`,this.element.style.right="auto",this.element.style.bottom="auto",(a=this.onMove)==null||a.call(this,this.posX,this.posY))},r=s=>{var i;this.isDragging=!1,this.element.hasPointerCapture(s.pointerId)&&this.element.releasePointerCapture(s.pointerId),this.element.style.transition="all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",this.element.style.cursor="pointer",window.removeEventListener("pointermove",t),window.removeEventListener("pointerup",r),this.hasMoved?(i=this.onMoveEnd)==null||i.call(this,this.posX,this.posY):this.onClick()};window.addEventListener("pointermove",t),window.addEventListener("pointerup",r)}getElement(){return this.element}setIcon(A){this.iconContainer.innerHTML=A}setPosition(A){this.element.style.cssText="",A.split(";").filter(t=>t.trim()).forEach(t=>{const[r,s]=t.split(":").map(i=>i.trim());r&&s&&(this.element.style[r]=s)}),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}updateCoordinates(A,e){this.element.style.left=`${A}px`,this.element.style.top=`${e}px`,this.element.style.right="auto",this.element.style.bottom="auto"}static get styles(){return`
2237
+ `});class Us{constructor(A,e,t,r=G.chat){p(this,"element");p(this,"iconContainer");p(this,"posX",0);p(this,"posY",0);p(this,"isDragging",!1);p(this,"startX",0);p(this,"startY",0);p(this,"currentX",0);p(this,"currentY",0);p(this,"hasMoved",!1);this.onClick=A,this.onMove=e,this.onMoveEnd=t,this.element=document.createElement("button"),this.element.className="widget-fab",this.element.onpointerdown=this.dragStart.bind(this),this.iconContainer=document.createElement("div"),this.iconContainer.style.cssText="display:flex; align-items:center; justify-content:center; width:100%; height:100%;",this.iconContainer.innerHTML=r,this.element.appendChild(this.iconContainer)}dragStart(A){if(A.button!==0)return;const e=this.element.getBoundingClientRect();this.isDragging=!0,this.hasMoved=!1,this.startX=A.clientX,this.startY=A.clientY,this.currentX=e.left,this.currentY=e.top,this.element.setPointerCapture(A.pointerId),this.element.style.transition="none",this.element.style.cursor="grabbing";const t=s=>{var a;if(!this.isDragging)return;const i=s.clientX-this.startX,o=s.clientY-this.startY;(Math.abs(i)>5||Math.abs(o)>5)&&(this.hasMoved=!0),this.hasMoved&&(this.posX=this.currentX+i,this.posY=this.currentY+o,this.posX=Math.max(0,Math.min(this.posX,window.innerWidth-this.element.offsetWidth)),this.posY=Math.max(0,Math.min(this.posY,window.innerHeight-this.element.offsetHeight)),this.element.style.left=`${this.posX}px`,this.element.style.top=`${this.posY}px`,this.element.style.right="auto",this.element.style.bottom="auto",(a=this.onMove)==null||a.call(this,this.posX,this.posY))},r=s=>{var i;this.isDragging=!1,this.element.hasPointerCapture(s.pointerId)&&this.element.releasePointerCapture(s.pointerId),this.element.style.transition="all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",this.element.style.cursor="pointer",window.removeEventListener("pointermove",t),window.removeEventListener("pointerup",r),this.hasMoved?(i=this.onMoveEnd)==null||i.call(this,this.posX,this.posY):this.onClick()};window.addEventListener("pointermove",t),window.addEventListener("pointerup",r)}getElement(){return this.element}setIcon(A){this.iconContainer.innerHTML=A}setPosition(A){this.element.style.cssText="",A.split(";").filter(t=>t.trim()).forEach(t=>{const[r,s]=t.split(":").map(i=>i.trim());r&&s&&(this.element.style[r]=s)}),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}updateCoordinates(A,e){this.element.style.left=`${A}px`,this.element.style.top=`${e}px`,this.element.style.right="auto",this.element.style.bottom="auto"}static get styles(){return`
2238
2238
  .widget-fab {
2239
2239
  position: fixed;
2240
2240
  z-index: 9999;
@@ -2269,9 +2269,9 @@ overflow: hidden;
2269
2269
  height: 26px;
2270
2270
  color: white;
2271
2271
  }
2272
- `}}class xs{constructor(A,e="Assistant",t){p(this,"element");p(this,"header");p(this,"titleElement");p(this,"contentArea");p(this,"collapseBtn",null);p(this,"closeBtn");this.onClose=A,this.title=e,this.onMinimize=t,this.element=document.createElement("div"),this.element.className="widget-panel hidden",this.header=document.createElement("div"),this.header.className="widget-header",this.titleElement=document.createElement("h3"),this.titleElement.className="widget-title",this.titleElement.textContent=this.title,this.header.appendChild(this.titleElement);const r=document.createElement("div");r.style.display="flex",r.style.alignItems="center",r.style.gap="8px",r.style.marginLeft="auto",this.onMinimize&&(this.collapseBtn=document.createElement("button"),this.collapseBtn.className="close-btn collapse-panel-btn",this.collapseBtn.innerHTML=G.minimize2,this.collapseBtn.setAttribute("aria-label","Minimize to voice pill"),this.collapseBtn.onclick=()=>this.onMinimize(),r.appendChild(this.collapseBtn)),this.closeBtn=document.createElement("button"),this.closeBtn.className="close-btn",this.closeBtn.innerHTML=G.close,this.closeBtn.setAttribute("aria-label","Close widget"),this.closeBtn.onclick=this.onClose,r.appendChild(this.closeBtn),this.header.appendChild(r),this.contentArea=document.createElement("div"),this.contentArea.className="widget-body",this.contentArea.style.flex="1",this.contentArea.style.display="flex",this.contentArea.style.flexDirection="column",this.contentArea.style.overflow="hidden",this.contentArea.style.padding="0",this.element.appendChild(this.header),this.element.appendChild(this.contentArea)}getElement(){return this.element}setContent(A){this.contentArea.innerHTML="",this.contentArea.appendChild(A)}addToContent(A){this.contentArea.appendChild(A)}setTitle(A){this.titleElement.textContent=A}open(A){this.element.classList.remove("hidden"),this.updatePosition(A)}updatePosition(A){this.element.style.top="auto",this.element.style.bottom="auto",this.element.style.left="auto",this.element.style.right="auto",Object.assign(this.element.style,A),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}close(){this.element.classList.add("hidden")}static get styles(){return`
2272
+ `}}class Fs{constructor(A,e="Assistant",t){p(this,"element");p(this,"header");p(this,"titleElement");p(this,"contentArea");p(this,"collapseBtn",null);p(this,"closeBtn");this.onClose=A,this.title=e,this.onMinimize=t,this.element=document.createElement("div"),this.element.className="widget-panel hidden",this.header=document.createElement("div"),this.header.className="widget-header",this.titleElement=document.createElement("h3"),this.titleElement.className="widget-title",this.titleElement.textContent=this.title,this.header.appendChild(this.titleElement);const r=document.createElement("div");r.style.display="flex",r.style.alignItems="center",r.style.gap="8px",r.style.marginLeft="auto",this.onMinimize&&(this.collapseBtn=document.createElement("button"),this.collapseBtn.className="close-btn collapse-panel-btn",this.collapseBtn.innerHTML=G.minimize2,this.collapseBtn.setAttribute("aria-label","Minimize to voice pill"),this.collapseBtn.onclick=()=>this.onMinimize(),r.appendChild(this.collapseBtn)),this.closeBtn=document.createElement("button"),this.closeBtn.className="close-btn",this.closeBtn.innerHTML=G.close,this.closeBtn.setAttribute("aria-label","Close widget"),this.closeBtn.onclick=this.onClose,r.appendChild(this.closeBtn),this.header.appendChild(r),this.contentArea=document.createElement("div"),this.contentArea.className="widget-body",this.contentArea.style.flex="1",this.contentArea.style.display="flex",this.contentArea.style.flexDirection="column",this.contentArea.style.overflow="hidden",this.contentArea.style.padding="0",this.element.appendChild(this.header),this.element.appendChild(this.contentArea)}getElement(){return this.element}setContent(A){this.contentArea.innerHTML="",this.contentArea.appendChild(A)}addToContent(A){this.contentArea.appendChild(A)}setTitle(A){this.titleElement.textContent=A}open(A){this.element.classList.remove("hidden"),this.updatePosition(A)}updatePosition(A){this.element.style.top="auto",this.element.style.bottom="auto",this.element.style.left="auto",this.element.style.right="auto",Object.assign(this.element.style,A),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}close(){this.element.classList.add("hidden")}static get styles(){return`
2273
2273
  /* Panel Styles handled in widget.css.ts mostly, specific overrides here */
2274
- `}}class Es{constructor(A,e="#000000",t="#111111",r){p(this,"element");p(this,"contentContainer");p(this,"orbWrapper");p(this,"connectingRing");p(this,"errorRing");p(this,"waveLayers",[]);p(this,"outerGlow");p(this,"wave1");p(this,"wave2");p(this,"wave3");p(this,"centerIcon");p(this,"connectingOrb");p(this,"statusArea");p(this,"connectingLabel");p(this,"connectedBadge");p(this,"connectedStatusBars");p(this,"connectedStatusText");p(this,"errorLabel");p(this,"giveItAMinuteLabel");p(this,"retryBtn");p(this,"timerEl");p(this,"transcriptionEl");p(this,"hangupBtn");p(this,"muteBtn");p(this,"onToggleMute");p(this,"videoContainer");p(this,"videoElement");p(this,"prepareBadge");p(this,"statusBadge");p(this,"startTime",null);p(this,"timerInterval",null);p(this,"isAvatarMode",!1);p(this,"callStartedAt",null);p(this,"liveActivity","listening");this.onHangup=A,this.primaryColor=e,this.secondaryColor=t,this.onCallEnded=r,this.element=document.createElement("div"),this.element.id="voice-active-overlay",this.element.style.setProperty("--voice-primary",this.primaryColor),this.element.style.setProperty("--voice-secondary",this.secondaryColor),this.contentContainer=document.createElement("div"),this.contentContainer.className="voice-content-container",this.videoContainer=document.createElement("div"),this.videoContainer.className="voice-video-container",this.videoContainer.style.cssText=`
2274
+ `}}class Is{constructor(A,e="#000000",t="#111111",r){p(this,"element");p(this,"contentContainer");p(this,"orbWrapper");p(this,"connectingRing");p(this,"errorRing");p(this,"waveLayers",[]);p(this,"outerGlow");p(this,"wave1");p(this,"wave2");p(this,"wave3");p(this,"centerIcon");p(this,"connectingOrb");p(this,"statusArea");p(this,"connectingLabel");p(this,"connectedBadge");p(this,"connectedStatusBars");p(this,"connectedStatusText");p(this,"errorLabel");p(this,"giveItAMinuteLabel");p(this,"retryBtn");p(this,"timerEl");p(this,"transcriptionEl");p(this,"hangupBtn");p(this,"muteBtn");p(this,"onToggleMute");p(this,"videoContainer");p(this,"videoElement");p(this,"prepareBadge");p(this,"statusBadge");p(this,"startTime",null);p(this,"timerInterval",null);p(this,"isAvatarMode",!1);p(this,"callStartedAt",null);p(this,"liveActivity","listening");this.onHangup=A,this.primaryColor=e,this.secondaryColor=t,this.onCallEnded=r,this.element=document.createElement("div"),this.element.id="voice-active-overlay",this.element.style.setProperty("--voice-primary",this.primaryColor),this.element.style.setProperty("--voice-secondary",this.secondaryColor),this.contentContainer=document.createElement("div"),this.contentContainer.className="voice-content-container",this.videoContainer=document.createElement("div"),this.videoContainer.className="voice-video-container",this.videoContainer.style.cssText=`
2275
2275
  display: none; position: relative; width: 100%; max-width: 260px;
2276
2276
  aspect-ratio: 1/1; margin-bottom: 16px; overflow: hidden;
2277
2277
  border-radius: 16px;
@@ -2283,7 +2283,7 @@ overflow: hidden;
2283
2283
  </svg>
2284
2284
  </span>
2285
2285
  <span class="voice-hangup-label">End call</span>
2286
- `,this.hangupBtn.onclick=()=>{const l=this.callStartedAt?Date.now()-this.callStartedAt:0,c=this.callStartedAt??Date.now();this.onCallEnded&&l>0&&this.onCallEnded(l,c),this.onHangup()},a.appendChild(this.muteBtn),a.appendChild(this.hangupBtn),this.element.appendChild(a)}bindMicMuteToggle(A){this.onToggleMute=A}setMicMuted(A){this.muteBtn.classList.toggle("is-muted",A),this.muteBtn.setAttribute("aria-label",A?"Unmute microphone":"Mute microphone");const e=this.muteBtn.querySelector(".voice-mute-icon");e&&(e.innerHTML=A?G.micOff:G.mic);const t=this.muteBtn.querySelector(".voice-mute-label");t&&(t.textContent=A?"Unmute":"Mute")}setMicMuteEnabled(A){this.muteBtn.disabled=!A}applyCenterIcon(A){this.centerIcon.classList.remove("is-error"),A==="error"&&this.centerIcon.classList.add("is-error")}getElement(){return this.element}setMode(A){this.isAvatarMode=A==="avatar"}setVideoTrack(A){if(this.isAvatarMode=!0,A.kind==="video"&&this.videoElement){const e=new MediaStream([A]);this.videoElement.srcObject=e,this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.connectingLabel.style.display="none",this.timerEl.style.display="none",this.videoElement.onplaying=()=>{this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"},this.videoElement.play().catch(t=>{})}}setStatus(A,e){A==="connecting"?(this.muteBtn.disabled=!0,this.connectingOrb.style.display="flex",this.centerIcon.style.display="none",this.isAvatarMode?(this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.prepareBadge.textContent="CONNECTING...",this.prepareBadge.style.display="block",this.statusBadge.style.display="none",this.connectingLabel.style.display="none"):(this.orbWrapper.style.display="flex",this.videoContainer.style.display="none",this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(t=>t.style.display="none"),this.connectingLabel.style.display="block",this.giveItAMinuteLabel.style.display="block",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none"),this.stopTimer()):A==="connected"?(this.muteBtn.disabled=!1,this.connectingOrb.style.display="none",this.centerIcon.style.display="flex",this.applyCenterIcon("audio"),this.isAvatarMode?this.videoElement&&!this.videoElement.paused&&this.videoElement.readyState>2?(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"):(this.prepareBadge.textContent="AGENT IS ON THE WAY...",this.prepareBadge.style.display="block",setTimeout(()=>{this.prepareBadge.style.display!=="none"&&(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex")},5e3)):(this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(t=>{t.style.display="block"}),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="flex",this.setActivity("listening"),this.timerEl.style.display="block",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.startTimer())):A==="error"&&(this.muteBtn.disabled=!0,this.connectingOrb.style.display="none",this.centerIcon.style.display="flex",this.applyCenterIcon("error"),this.connectingRing.style.display="none",this.errorRing.style.display="block",this.waveLayers.forEach(t=>t.style.display="none"),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.textContent=e||"Connection failed",this.errorLabel.style.display="block",this.retryBtn.style.display="block",this.stopTimer())}setActivity(A){this.liveActivity!==A&&(this.liveActivity=A,this.connectedBadge.classList.remove("is-listening","is-speaking"),this.connectedBadge.classList.add(A==="speaking"?"is-speaking":"is-listening"),this.connectedStatusBars.classList.remove("listening","speaking"),this.connectedStatusBars.classList.add(A),this.connectedStatusText.textContent=A==="speaking"?"Speaking…":"Listening…")}setTranscription(A,e){this.transcriptionEl.textContent=`"${A}"`,this.transcriptionEl.style.color=e?"#1f2937":"#9ca3af",this.transcriptionEl.style.fontStyle=e?"normal":"italic"}show(){this.callStartedAt=Date.now(),this.element.style.display="flex",this.setStatus("connecting")}hide(){this.element.style.display="none",this.reset()}reset(){this.videoElement&&(this.videoElement.srcObject=null),this.isAvatarMode=!1,this.callStartedAt=null,this.stopTimer(),this.transcriptionEl.textContent="",this.videoContainer.style.display="none",this.orbWrapper.style.display="flex",this.connectingOrb.style.display="none",this.centerIcon.style.display="flex",this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(A=>A.style.display="none"),this.connectingLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.prepareBadge.style.display="none",this.statusBadge.style.display="none",this.giveItAMinuteLabel.style.display="none",this.muteBtn.disabled=!0,this.setMicMuted(!1),this.applyCenterIcon("audio")}startTimer(){this.timerInterval&&clearInterval(this.timerInterval),this.startTime=Date.now(),this.timerEl.textContent="00:00",this.timerInterval=setInterval(()=>{if(!this.startTime)return;const A=Math.floor((Date.now()-this.startTime)/1e3),e=Math.floor(A/60).toString().padStart(2,"0"),t=(A%60).toString().padStart(2,"0");this.timerEl.textContent=`${e}:${t}`},1e3)}stopTimer(){this.timerInterval&&(clearInterval(this.timerInterval),this.timerInterval=null),this.timerEl.textContent=""}setFullScreen(A){A?(this.videoContainer.style.position="absolute",this.videoContainer.style.top="0",this.videoContainer.style.left="0",this.videoContainer.style.width="100%",this.videoContainer.style.height="100%",this.videoContainer.style.maxWidth="none",this.videoContainer.style.borderRadius="0",this.videoContainer.style.margin="0",this.videoContainer.style.zIndex="0"):(this.videoContainer.style.position="relative",this.videoContainer.style.width="100%",this.videoContainer.style.maxWidth="260px",this.videoContainer.style.height="auto",this.videoContainer.style.aspectRatio="1/1",this.videoContainer.style.borderRadius="16px",this.videoContainer.style.marginBottom="16px")}}class Us{constructor(A){p(this,"element");p(this,"messageContainer");p(this,"inputArea");p(this,"input");p(this,"sendBtn");p(this,"typingIndicator",null);p(this,"resolveBar",null);this.onSend=A,this.element=document.createElement("div"),this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.flex="1",this.element.style.overflow="hidden",this.element.style.minHeight="0",this.messageContainer=document.createElement("div"),this.messageContainer.className="chat-messages",this.inputArea=document.createElement("div"),this.inputArea.className="chat-input-area",this.input=document.createElement("input"),this.input.className="chat-input",this.input.placeholder="Type a message...",this.input.addEventListener("keypress",t=>{t.key==="Enter"&&this.handleSend()}),this.sendBtn=document.createElement("button"),this.sendBtn.className="chat-send-btn",this.sendBtn.innerHTML=G.send,this.sendBtn.onclick=()=>this.handleSend(),this.inputArea.appendChild(this.input),this.inputArea.appendChild(this.sendBtn);const e=document.createElement("div");e.className="branding-footer",e.innerHTML="Technology Powered by <b>Vanira AI</b>",this.element.appendChild(this.messageContainer),this.element.appendChild(this.inputArea),this.element.appendChild(e)}getElement(){return this.element}formatTime(A=new Date){return A.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}addMessage(A,e,t){const r=document.createElement("div");r.style.cssText=`
2286
+ `,this.hangupBtn.onclick=()=>{const l=this.callStartedAt?Date.now()-this.callStartedAt:0,d=this.callStartedAt??Date.now();this.onCallEnded&&l>0&&this.onCallEnded(l,d),this.onHangup()},a.appendChild(this.muteBtn),a.appendChild(this.hangupBtn),this.element.appendChild(a)}bindMicMuteToggle(A){this.onToggleMute=A}setMicMuted(A){this.muteBtn.classList.toggle("is-muted",A),this.muteBtn.setAttribute("aria-label",A?"Unmute microphone":"Mute microphone");const e=this.muteBtn.querySelector(".voice-mute-icon");e&&(e.innerHTML=A?G.micOff:G.mic);const t=this.muteBtn.querySelector(".voice-mute-label");t&&(t.textContent=A?"Unmute":"Mute")}setMicMuteEnabled(A){this.muteBtn.disabled=!A}applyCenterIcon(A){this.centerIcon.classList.remove("is-error"),A==="error"&&this.centerIcon.classList.add("is-error")}getElement(){return this.element}setMode(A){this.isAvatarMode=A==="avatar"}setVideoTrack(A){if(this.isAvatarMode=!0,A.kind==="video"&&this.videoElement){const e=new MediaStream([A]);this.videoElement.srcObject=e,this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.connectingLabel.style.display="none",this.timerEl.style.display="none",this.videoElement.onplaying=()=>{this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"},this.videoElement.play().catch(t=>{})}}setStatus(A,e){A==="connecting"?(this.muteBtn.disabled=!0,this.connectingOrb.style.display="flex",this.centerIcon.style.display="none",this.isAvatarMode?(this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.prepareBadge.textContent="CONNECTING...",this.prepareBadge.style.display="block",this.statusBadge.style.display="none",this.connectingLabel.style.display="none"):(this.orbWrapper.style.display="flex",this.videoContainer.style.display="none",this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(t=>t.style.display="none"),this.connectingLabel.style.display="block",this.giveItAMinuteLabel.style.display="block",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none"),this.stopTimer()):A==="connected"?(this.muteBtn.disabled=!1,this.connectingOrb.style.display="none",this.centerIcon.style.display="flex",this.applyCenterIcon("audio"),this.isAvatarMode?this.videoElement&&!this.videoElement.paused&&this.videoElement.readyState>2?(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"):(this.prepareBadge.textContent="AGENT IS ON THE WAY...",this.prepareBadge.style.display="block",setTimeout(()=>{this.prepareBadge.style.display!=="none"&&(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex")},5e3)):(this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(t=>{t.style.display="block"}),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="flex",this.setActivity("listening"),this.timerEl.style.display="block",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.startTimer())):A==="error"&&(this.muteBtn.disabled=!0,this.connectingOrb.style.display="none",this.centerIcon.style.display="flex",this.applyCenterIcon("error"),this.connectingRing.style.display="none",this.errorRing.style.display="block",this.waveLayers.forEach(t=>t.style.display="none"),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.textContent=e||"Connection failed",this.errorLabel.style.display="block",this.retryBtn.style.display="block",this.stopTimer())}setActivity(A){this.liveActivity!==A&&(this.liveActivity=A,this.connectedBadge.classList.remove("is-listening","is-speaking"),this.connectedBadge.classList.add(A==="speaking"?"is-speaking":"is-listening"),this.connectedStatusBars.classList.remove("listening","speaking"),this.connectedStatusBars.classList.add(A),this.connectedStatusText.textContent=A==="speaking"?"Speaking…":"Listening…")}setTranscription(A,e){this.transcriptionEl.textContent=`"${A}"`,this.transcriptionEl.style.color=e?"#1f2937":"#9ca3af",this.transcriptionEl.style.fontStyle=e?"normal":"italic"}show(){this.callStartedAt=Date.now(),this.element.style.display="flex",this.setStatus("connecting")}hide(){this.element.style.display="none",this.reset()}reset(){this.videoElement&&(this.videoElement.srcObject=null),this.isAvatarMode=!1,this.callStartedAt=null,this.stopTimer(),this.transcriptionEl.textContent="",this.videoContainer.style.display="none",this.orbWrapper.style.display="flex",this.connectingOrb.style.display="none",this.centerIcon.style.display="flex",this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(A=>A.style.display="none"),this.connectingLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.prepareBadge.style.display="none",this.statusBadge.style.display="none",this.giveItAMinuteLabel.style.display="none",this.muteBtn.disabled=!0,this.setMicMuted(!1),this.applyCenterIcon("audio")}startTimer(){this.timerInterval&&clearInterval(this.timerInterval),this.startTime=Date.now(),this.timerEl.textContent="00:00",this.timerInterval=setInterval(()=>{if(!this.startTime)return;const A=Math.floor((Date.now()-this.startTime)/1e3),e=Math.floor(A/60).toString().padStart(2,"0"),t=(A%60).toString().padStart(2,"0");this.timerEl.textContent=`${e}:${t}`},1e3)}stopTimer(){this.timerInterval&&(clearInterval(this.timerInterval),this.timerInterval=null),this.timerEl.textContent=""}setFullScreen(A){A?(this.videoContainer.style.position="absolute",this.videoContainer.style.top="0",this.videoContainer.style.left="0",this.videoContainer.style.width="100%",this.videoContainer.style.height="100%",this.videoContainer.style.maxWidth="none",this.videoContainer.style.borderRadius="0",this.videoContainer.style.margin="0",this.videoContainer.style.zIndex="0"):(this.videoContainer.style.position="relative",this.videoContainer.style.width="100%",this.videoContainer.style.maxWidth="260px",this.videoContainer.style.height="auto",this.videoContainer.style.aspectRatio="1/1",this.videoContainer.style.borderRadius="16px",this.videoContainer.style.marginBottom="16px")}}class Ss{constructor(A){p(this,"element");p(this,"messageContainer");p(this,"inputArea");p(this,"input");p(this,"sendBtn");p(this,"typingIndicator",null);p(this,"resolveBar",null);this.onSend=A,this.element=document.createElement("div"),this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.flex="1",this.element.style.overflow="hidden",this.element.style.minHeight="0",this.messageContainer=document.createElement("div"),this.messageContainer.className="chat-messages",this.inputArea=document.createElement("div"),this.inputArea.className="chat-input-area",this.input=document.createElement("input"),this.input.className="chat-input",this.input.placeholder="Type a message...",this.input.addEventListener("keypress",t=>{t.key==="Enter"&&this.handleSend()}),this.sendBtn=document.createElement("button"),this.sendBtn.className="chat-send-btn",this.sendBtn.innerHTML=G.send,this.sendBtn.onclick=()=>this.handleSend(),this.inputArea.appendChild(this.input),this.inputArea.appendChild(this.sendBtn);const e=document.createElement("div");e.className="branding-footer",e.innerHTML="Technology Powered by <b>Vanira AI</b>",this.element.appendChild(this.messageContainer),this.element.appendChild(this.inputArea),this.element.appendChild(e)}getElement(){return this.element}formatTime(A=new Date){return A.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}addMessage(A,e,t){const r=document.createElement("div");r.style.cssText=`
2287
2287
  display: flex;
2288
2288
  flex-direction: column;
2289
2289
  align-items: ${A==="user"?"flex-end":"flex-start"};
@@ -2315,7 +2315,7 @@ overflow: hidden;
2315
2315
  <span style="margin-left:6px;">${s}</span>
2316
2316
  </span>
2317
2317
  </div>
2318
- `,this.messageContainer.appendChild(i),this.scrollToBottom()}clearMessages(){this.messageContainer.innerHTML=""}setResolveCallback(A){this.resolveBar&&this.resolveBar.remove(),this.resolveBar=document.createElement("div"),this.resolveBar.className="chat-resolve-bar";const e=document.createElement("button");e.className="chat-resolve-link",e.textContent="Mark as resolved, start new",e.onclick=()=>{confirm("Are you sure you want to mark this conversation as resolved and start fresh?")&&A()},this.resolveBar.appendChild(e),this.element.insertBefore(this.resolveBar,this.inputArea)}scrollToBottom(){this.messageContainer.scrollTop=this.messageContainer.scrollHeight}}class cl{constructor(A){p(this,"element");p(this,"videoElement");p(this,"placeholderContainer");this.element=document.createElement("div"),this.element.className="avatar-container",this.element.style.position="relative",this.element.style.width="100%",this.element.style.height="100%",this.element.style.background="#ffffff",this.element.style.borderRadius="16px",this.element.style.overflow="hidden",this.placeholderContainer=document.createElement("div"),this.placeholderContainer.style.width="100%",this.placeholderContainer.style.height="100%",this.placeholderContainer.style.display="flex",this.placeholderContainer.style.alignItems="center",this.placeholderContainer.style.justifyContent="center";const e=A||"https://www.simli.com/jenna.mp4",t=e.endsWith(".mp4")||e.endsWith(".webm");let r;if(t){const s=document.createElement("video");s.src=e,s.muted=!0,s.loop=!0,s.autoplay=!0,s.playsInline=!0,r=s}else{const s=document.createElement("img");s.src=e,r=s}r.style.width="140px",r.style.height="140px",r.style.borderRadius="50%",r.style.objectFit="cover",r.style.backgroundColor="#f3f4f6",this.placeholderContainer.appendChild(r),this.element.appendChild(this.placeholderContainer),this.videoElement=document.createElement("video"),this.videoElement.className="avatar-video",this.videoElement.autoplay=!0,this.videoElement.playsInline=!0,this.videoElement.muted=!0,this.videoElement.style.display="none",this.element.appendChild(this.videoElement)}getElement(){return this.element}setStream(A){this.videoElement.srcObject=A,this.videoElement.style.display="block",this.placeholderContainer.style.display="none"}}class dl{constructor(A,e){p(this,"element");p(this,"showSessionSelector",!1);this.onClick=A,this.agentId=e,this.element=document.createElement("div"),this.element.className="voice-mode-container";const t=this.agentId?fs(this.agentId):typeof window<"u"&&!!((window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage.getItem("vanira_prospect_id"))&&(window.sessionStorage.getItem("vanira_latest_call_id")||window.localStorage.getItem("vanira_latest_call_id")));this.render(t)}doodleSquiggle(A){return`
2318
+ `,this.messageContainer.appendChild(i),this.scrollToBottom()}clearMessages(){this.messageContainer.innerHTML=""}setResolveCallback(A){this.resolveBar&&this.resolveBar.remove(),this.resolveBar=document.createElement("div"),this.resolveBar.className="chat-resolve-bar";const e=document.createElement("button");e.className="chat-resolve-link",e.textContent="Mark as resolved, start new",e.onclick=()=>{confirm("Are you sure you want to mark this conversation as resolved and start fresh?")&&A()},this.resolveBar.appendChild(e),this.element.insertBefore(this.resolveBar,this.inputArea)}scrollToBottom(){this.messageContainer.scrollTop=this.messageContainer.scrollHeight}}class wl{constructor(A){p(this,"element");p(this,"videoElement");p(this,"placeholderContainer");this.element=document.createElement("div"),this.element.className="avatar-container",this.element.style.position="relative",this.element.style.width="100%",this.element.style.height="100%",this.element.style.background="#ffffff",this.element.style.borderRadius="16px",this.element.style.overflow="hidden",this.placeholderContainer=document.createElement("div"),this.placeholderContainer.style.width="100%",this.placeholderContainer.style.height="100%",this.placeholderContainer.style.display="flex",this.placeholderContainer.style.alignItems="center",this.placeholderContainer.style.justifyContent="center";const e=A||"https://www.simli.com/jenna.mp4",t=e.endsWith(".mp4")||e.endsWith(".webm");let r;if(t){const s=document.createElement("video");s.src=e,s.muted=!0,s.loop=!0,s.autoplay=!0,s.playsInline=!0,r=s}else{const s=document.createElement("img");s.src=e,r=s}r.style.width="140px",r.style.height="140px",r.style.borderRadius="50%",r.style.objectFit="cover",r.style.backgroundColor="#f3f4f6",this.placeholderContainer.appendChild(r),this.element.appendChild(this.placeholderContainer),this.videoElement=document.createElement("video"),this.videoElement.className="avatar-video",this.videoElement.autoplay=!0,this.videoElement.playsInline=!0,this.videoElement.muted=!0,this.videoElement.style.display="none",this.element.appendChild(this.videoElement)}getElement(){return this.element}setStream(A){this.videoElement.srcObject=A,this.videoElement.style.display="block",this.placeholderContainer.style.display="none"}}class ml{constructor(A,e){p(this,"element");p(this,"showSessionSelector",!1);this.onClick=A,this.agentId=e,this.element=document.createElement("div"),this.element.className="voice-mode-container";const t=this.agentId?Cs(this.agentId):typeof window<"u"&&!!((window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage.getItem("vanira_prospect_id"))&&(window.sessionStorage.getItem("vanira_latest_call_id")||window.localStorage.getItem("vanira_latest_call_id")));this.render(t)}doodleSquiggle(A){return`
2319
2319
  <svg class="voice-doodle-squiggle ${A}" viewBox="0 0 48 24" fill="none" aria-hidden="true">
2320
2320
  <path d="M3 14C10 4 18 20 26 10C32 4 38 8 45 12" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/>
2321
2321
  </svg>
@@ -2347,7 +2347,7 @@ overflow: hidden;
2347
2347
  </div>
2348
2348
  </div>
2349
2349
  </div>
2350
- `;const e=this.element.querySelector(".central-orb-container"),t=this.element.querySelector(".session-selector-container"),r=this.element.querySelector(".voice-status-text"),s=this.element.querySelector(".voice-status-subtext");e&&(e.onclick=()=>{A&&!this.showSessionSelector?(this.showSessionSelector=!0,this.element.classList.add("has-session-choice"),r&&(r.textContent="Welcome back"),s&&(s.style.display="none"),t&&(t.style.display="flex",t.offsetHeight,t.style.opacity="1")):this.onClick("continue")});const i=this.element.querySelectorAll(".session-option");i.forEach(o=>{o.addEventListener("click",a=>{a.stopPropagation(),i.forEach(c=>c.classList.remove("active")),o.classList.add("active");const l=o.getAttribute("data-behavior");this.onClick(l)})})}getElement(){return this.element}}class Fs{constructor(A){p(this,"element");p(this,"chips",[]);this.onChipClick=A,this.element=document.createElement("div"),this.element.className="welcome-chips-container"}setChips(A){this.chips=A,this.render()}getElement(){return this.element}setPosition(A){this.element.style.cssText="",A.split(";").filter(t=>t.trim()).forEach(t=>{const[r,s]=t.split(":").map(i=>i.trim());r&&s&&(this.element.style[r]=s)}),this.element.style.bottom?this.element.style.bottom=parseInt(this.element.style.bottom)+76+"px":this.element.style.top&&(this.element.style.top=parseInt(this.element.style.top)+76+"px"),this.element.style.position="fixed",this.element.style.zIndex="2147483646",this.element.style.alignItems=this.element.style.left?"flex-start":"flex-end"}updateCoordinates(A,e,t=!0){this.element.style.left=`${A}px`,t?(this.element.style.top="auto",this.element.style.bottom=`${window.innerHeight-e+16}px`):(this.element.style.bottom="auto",this.element.style.top=`${e+76}px`),this.element.style.right="auto"}render(){this.element.innerHTML="",this.chips.forEach((A,e)=>{const t=document.createElement("button");t.className="welcome-chip-btn",t.textContent=A.title,t.onclick=r=>{r.stopPropagation(),this.onChipClick(A.title)},t.style.animationDelay=`${e*.1}s`,this.element.appendChild(t)})}static get styles(){return`
2350
+ `;const e=this.element.querySelector(".central-orb-container"),t=this.element.querySelector(".session-selector-container"),r=this.element.querySelector(".voice-status-text"),s=this.element.querySelector(".voice-status-subtext");e&&(e.onclick=()=>{A&&!this.showSessionSelector?(this.showSessionSelector=!0,this.element.classList.add("has-session-choice"),r&&(r.textContent="Welcome back"),s&&(s.style.display="none"),t&&(t.style.display="flex",t.offsetHeight,t.style.opacity="1")):this.onClick("continue")});const i=this.element.querySelectorAll(".session-option");i.forEach(o=>{o.addEventListener("click",a=>{a.stopPropagation(),i.forEach(d=>d.classList.remove("active")),o.classList.add("active");const l=o.getAttribute("data-behavior");this.onClick(l)})})}getElement(){return this.element}}class Hs{constructor(A){p(this,"element");p(this,"chips",[]);this.onChipClick=A,this.element=document.createElement("div"),this.element.className="welcome-chips-container"}setChips(A){this.chips=A,this.render()}getElement(){return this.element}setPosition(A){this.element.style.cssText="",A.split(";").filter(t=>t.trim()).forEach(t=>{const[r,s]=t.split(":").map(i=>i.trim());r&&s&&(this.element.style[r]=s)}),this.element.style.bottom?this.element.style.bottom=parseInt(this.element.style.bottom)+76+"px":this.element.style.top&&(this.element.style.top=parseInt(this.element.style.top)+76+"px"),this.element.style.position="fixed",this.element.style.zIndex="2147483646",this.element.style.alignItems=this.element.style.left?"flex-start":"flex-end"}updateCoordinates(A,e,t=!0){this.element.style.left=`${A}px`,t?(this.element.style.top="auto",this.element.style.bottom=`${window.innerHeight-e+16}px`):(this.element.style.bottom="auto",this.element.style.top=`${e+76}px`),this.element.style.right="auto"}render(){this.element.innerHTML="",this.chips.forEach((A,e)=>{const t=document.createElement("button");t.className="welcome-chip-btn",t.textContent=A.title,t.onclick=r=>{r.stopPropagation(),this.onChipClick(A.title)},t.style.animationDelay=`${e*.1}s`,this.element.appendChild(t)})}static get styles(){return`
2351
2351
  .welcome-chips-container {
2352
2352
  position: fixed;
2353
2353
  z-index: 9998;
@@ -2403,11 +2403,11 @@ overflow: hidden;
2403
2403
  transform: translateY(0);
2404
2404
  }
2405
2405
  }
2406
- `}}const hl=`
2406
+ `}}const Cl=`
2407
2407
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2408
2408
  <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.6 1.18h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.91 8.77a16 16 0 0 0 6.29 6.29l.87-.87a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z"/>
2409
2409
  </svg>
2410
- `;class ul{constructor(A,e,t="Voice chat"){p(this,"element");p(this,"statusEl");p(this,"titleEl");p(this,"barsEl");p(this,"muteBtn");p(this,"activity","idle");p(this,"onToggleMute");this.onExpand=A,this.onHangup=e,this.element=document.createElement("div"),this.element.className="widget-voice-pill hidden",this.element.setAttribute("role","group"),this.element.setAttribute("aria-label","Active voice call");const r=document.createElement("button");r.type="button",r.className="widget-voice-pill-main",r.setAttribute("aria-label","Expand voice chat");const s=document.createElement("div");s.className="widget-voice-pill-icon",s.innerHTML=G.phone;const i=document.createElement("div");i.className="widget-voice-pill-text",this.titleEl=document.createElement("span"),this.titleEl.className="widget-voice-pill-title",this.titleEl.textContent=t;const o=document.createElement("span");o.className="widget-voice-pill-status-row",this.barsEl=document.createElement("span"),this.barsEl.className="widget-voice-pill-bars",this.barsEl.innerHTML="<i></i><i></i><i></i>",this.barsEl.setAttribute("aria-hidden","true"),this.statusEl=document.createElement("span"),this.statusEl.className="widget-voice-pill-status",o.appendChild(this.barsEl),o.appendChild(this.statusEl),i.appendChild(this.titleEl),i.appendChild(o),r.appendChild(s),r.appendChild(i),r.onclick=()=>this.onExpand(),this.muteBtn=document.createElement("button"),this.muteBtn.type="button",this.muteBtn.className="widget-voice-pill-mute",this.muteBtn.setAttribute("aria-label","Mute microphone"),this.muteBtn.disabled=!0,this.muteBtn.innerHTML=G.mic,this.muteBtn.onclick=l=>{l.stopPropagation(),this.onToggleMute&&this.setMicMuted(this.onToggleMute())};const a=document.createElement("button");a.type="button",a.className="widget-voice-pill-hangup",a.setAttribute("aria-label","End call"),a.innerHTML=hl,a.onclick=l=>{l.stopPropagation(),this.onHangup()},this.element.appendChild(r),this.element.appendChild(this.muteBtn),this.element.appendChild(a),this.setActivity("idle")}bindMicMuteToggle(A){this.onToggleMute=A}setMicMuted(A){this.muteBtn.classList.toggle("is-muted",A),this.muteBtn.setAttribute("aria-label",A?"Unmute microphone":"Mute microphone"),this.muteBtn.innerHTML=A?G.micOff:G.mic}setMicMuteEnabled(A){this.muteBtn.disabled=!A}getElement(){return this.element}setTitle(A){this.titleEl.textContent=A}setActivity(A){this.activity=A,this.element.classList.remove("is-connecting","is-listening","is-speaking","is-error"),this.barsEl.classList.remove("listening","speaking","hidden"),A==="connecting"?(this.statusEl.textContent="Connecting…",this.element.classList.add("is-connecting"),this.barsEl.classList.add("listening"),this.muteBtn.disabled=!0):A==="speaking"?(this.statusEl.textContent="Speaking…",this.element.classList.add("is-speaking"),this.barsEl.classList.add("speaking"),this.muteBtn.disabled=!1):A==="listening"?(this.statusEl.textContent="Listening…",this.element.classList.add("is-listening"),this.barsEl.classList.add("listening"),this.muteBtn.disabled=!1):A==="error"?(this.statusEl.textContent="Connection issue",this.element.classList.add("is-error"),this.barsEl.classList.add("hidden"),this.muteBtn.disabled=!0):(this.statusEl.textContent="Voice chat",this.barsEl.classList.add("hidden"),this.muteBtn.disabled=!0,this.setMicMuted(!1))}setStatus(A){A==="connecting"?this.setActivity("connecting"):A==="connected"?this.setActivity("listening"):A==="error"?this.setActivity("error"):this.setActivity("idle")}getActivity(){return this.activity}show(){this.element.classList.remove("hidden")}hide(){this.element.classList.add("hidden")}}class gl{constructor(A,e={}){p(this,"element");this.onOpen=A;const t=e.greeting||"Hi there!",r=e.subtitle||"I'm here to help";this.element=document.createElement("button"),this.element.type="button",this.element.className="human-presence-launcher",this.element.setAttribute("aria-label",`${t} ${r}`),this.element.innerHTML=`
2410
+ `;class yl{constructor(A,e,t="Voice chat"){p(this,"element");p(this,"statusEl");p(this,"titleEl");p(this,"barsEl");p(this,"muteBtn");p(this,"activity","idle");p(this,"onToggleMute");this.onExpand=A,this.onHangup=e,this.element=document.createElement("div"),this.element.className="widget-voice-pill hidden",this.element.setAttribute("role","group"),this.element.setAttribute("aria-label","Active voice call");const r=document.createElement("button");r.type="button",r.className="widget-voice-pill-main",r.setAttribute("aria-label","Expand voice chat");const s=document.createElement("div");s.className="widget-voice-pill-icon",s.innerHTML=G.phone;const i=document.createElement("div");i.className="widget-voice-pill-text",this.titleEl=document.createElement("span"),this.titleEl.className="widget-voice-pill-title",this.titleEl.textContent=t;const o=document.createElement("span");o.className="widget-voice-pill-status-row",this.barsEl=document.createElement("span"),this.barsEl.className="widget-voice-pill-bars",this.barsEl.innerHTML="<i></i><i></i><i></i>",this.barsEl.setAttribute("aria-hidden","true"),this.statusEl=document.createElement("span"),this.statusEl.className="widget-voice-pill-status",o.appendChild(this.barsEl),o.appendChild(this.statusEl),i.appendChild(this.titleEl),i.appendChild(o),r.appendChild(s),r.appendChild(i),r.onclick=()=>this.onExpand(),this.muteBtn=document.createElement("button"),this.muteBtn.type="button",this.muteBtn.className="widget-voice-pill-mute",this.muteBtn.setAttribute("aria-label","Mute microphone"),this.muteBtn.disabled=!0,this.muteBtn.innerHTML=G.mic,this.muteBtn.onclick=l=>{l.stopPropagation(),this.onToggleMute&&this.setMicMuted(this.onToggleMute())};const a=document.createElement("button");a.type="button",a.className="widget-voice-pill-hangup",a.setAttribute("aria-label","End call"),a.innerHTML=Cl,a.onclick=l=>{l.stopPropagation(),this.onHangup()},this.element.appendChild(r),this.element.appendChild(this.muteBtn),this.element.appendChild(a),this.setActivity("idle")}bindMicMuteToggle(A){this.onToggleMute=A}setMicMuted(A){this.muteBtn.classList.toggle("is-muted",A),this.muteBtn.setAttribute("aria-label",A?"Unmute microphone":"Mute microphone"),this.muteBtn.innerHTML=A?G.micOff:G.mic}setMicMuteEnabled(A){this.muteBtn.disabled=!A}getElement(){return this.element}setTitle(A){this.titleEl.textContent=A}setActivity(A){this.activity=A,this.element.classList.remove("is-connecting","is-listening","is-speaking","is-error"),this.barsEl.classList.remove("listening","speaking","hidden"),A==="connecting"?(this.statusEl.textContent="Connecting…",this.element.classList.add("is-connecting"),this.barsEl.classList.add("listening"),this.muteBtn.disabled=!0):A==="speaking"?(this.statusEl.textContent="Speaking…",this.element.classList.add("is-speaking"),this.barsEl.classList.add("speaking"),this.muteBtn.disabled=!1):A==="listening"?(this.statusEl.textContent="Listening…",this.element.classList.add("is-listening"),this.barsEl.classList.add("listening"),this.muteBtn.disabled=!1):A==="error"?(this.statusEl.textContent="Connection issue",this.element.classList.add("is-error"),this.barsEl.classList.add("hidden"),this.muteBtn.disabled=!0):(this.statusEl.textContent="Voice chat",this.barsEl.classList.add("hidden"),this.muteBtn.disabled=!0,this.setMicMuted(!1))}setStatus(A){A==="connecting"?this.setActivity("connecting"):A==="connected"?this.setActivity("listening"):A==="error"?this.setActivity("error"):this.setActivity("idle")}getActivity(){return this.activity}show(){this.element.classList.remove("hidden")}hide(){this.element.classList.add("hidden")}}class vl{constructor(A,e={}){p(this,"element");this.onOpen=A;const t=e.greeting||"Hi there!",r=e.subtitle||"I'm here to help";this.element=document.createElement("button"),this.element.type="button",this.element.className="human-presence-launcher",this.element.setAttribute("aria-label",`${t} ${r}`),this.element.innerHTML=`
2411
2411
  <span class="human-presence-wave-icon" aria-hidden="true">
2412
2412
  <span class="human-presence-wave-emoji">👋</span>
2413
2413
  </span>
@@ -2415,7 +2415,7 @@ overflow: hidden;
2415
2415
  <span class="human-presence-greeting">${t}</span>
2416
2416
  <span class="human-presence-subtitle">${r}</span>
2417
2417
  </span>
2418
- `,this.element.onclick=s=>{s.stopPropagation(),this.onOpen()}}getElement(){return this.element}show(){this.element.style.display="flex"}hide(){this.element.style.display="none"}}class Is{constructor(A,e,t="#000000",r="#111111",s){p(this,"element");p(this,"overlay");p(this,"onStartCall");p(this,"onHangup");p(this,"primaryColor");p(this,"secondaryColor");p(this,"onCallEnded");this.onStartCall=A,this.onHangup=e,this.primaryColor=t,this.secondaryColor=r,this.onCallEnded=s,this.element=document.createElement("div"),this.element.style.height="100%",this.element.style.position="relative"}initOverlay(){this.overlay=new Es(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}getElement(){return this.element}setCallActive(A){A?this.overlay.show():this.overlay.hide()}setStatus(A,e){this.overlay.setStatus(A,e)}setActivity(A){this.overlay.setActivity(A)}setTranscription(A,e){this.overlay.setTranscription(A,e)}setVideoTrack(A){this.overlay.setVideoTrack(A)}bindMicMuteToggle(A){this.overlay.bindMicMuteToggle(A)}setMicMuted(A){this.overlay.setMicMuted(A)}setMicMuteEnabled(A){this.overlay.setMicMuteEnabled(A)}}class pl extends Is{constructor(e,t,r="#000000",s="#111111",i,o){super(e,t,r,s,i);p(this,"voiceOrb");this.element.style.background="#f9fafb",this.voiceOrb=new dl(a=>{this.onStartCall(a)},o),this.element.appendChild(this.voiceOrb.getElement()),this.initOverlay()}}class Bl{constructor(A){p(this,"element");p(this,"chatWindow");this.onSendMessage=A,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.width="100%",this.element.style.minHeight="0",this.element.style.display="flex",this.element.style.flexDirection="column",this.chatWindow=new Us(e=>this.onSendMessage(e)),this.element.appendChild(this.chatWindow.getElement())}getElement(){return this.element}getChatWindow(){return this.chatWindow}}class Ss{constructor(A,e,t,r="#000000",s="#111111",i){p(this,"element");p(this,"chatWindow");p(this,"overlay");p(this,"voiceTrigger");this.onSendMessage=A,this.onStartCall=e,this.onHangup=t,this.primaryColor=r,this.secondaryColor=s,this.onCallEnded=i,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.minHeight="0",this.element.style.position="relative"}setupChat(){this.chatWindow=new Us(e=>this.onSendMessage(e));const A=this.chatWindow.getElement();A.style.flex="1",this.element.appendChild(A),this.injectVoiceTrigger(),this.overlay=new Es(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}injectVoiceTrigger(){const A=document.createElement("button");this.voiceTrigger=A,A.className="voice-btn-simple",A.innerHTML=`<div class="voice-btn-icon">${G.audioLines}</div>`,A.onclick=()=>this.onStartCall();const e=this.chatWindow.getElement().querySelector(".chat-input-area");e&&e.insertBefore(this.voiceTrigger,e.firstChild)}getElement(){return this.element}getChatWindow(){return this.chatWindow}setCallActive(A){A?(this.overlay.show(),this.chatWindow&&(this.chatWindow.getElement().style.display="none")):(this.overlay.hide(),this.chatWindow&&(this.chatWindow.getElement().style.display="flex"))}setStatus(A,e){this.overlay.setStatus(A,e)}setActivity(A){this.overlay.setActivity(A)}setTranscription(A,e){this.overlay.setTranscription(A,e)}setVideoTrack(A){this.overlay.setVideoTrack(A)}bindMicMuteToggle(A){this.overlay.bindMicMuteToggle(A)}setMicMuted(A){this.overlay.setMicMuted(A)}setMicMuteEnabled(A){this.overlay.setMicMuteEnabled(A)}}class fl extends Ss{constructor(A,e,t,r="#000000",s="#111111",i){super(A,e,t,r,s,i),this.setupChat()}}class wl extends Is{constructor(e,t,r="#000000",s="#111111",i){super(e,t,r,s,i);p(this,"avatarView");p(this,"startCallBtn");p(this,"controlsContainer");this.element.style.display="flex",this.element.style.flexDirection="column",this.avatarView=new cl;const o=this.avatarView.getElement();o.style.width="100%",o.style.maxWidth="300px",o.style.aspectRatio="1/1",o.style.borderRadius="16px",o.style.overflow="hidden",o.style.margin="auto",o.style.position="relative",this.element.appendChild(o),this.controlsContainer=document.createElement("div"),this.controlsContainer.className="widget-body",this.controlsContainer.style.position="absolute",this.controlsContainer.style.bottom="20px",this.controlsContainer.style.width="100%",this.controlsContainer.style.zIndex="10";const a=document.createElement("div");a.className="controls",this.startCallBtn=document.createElement("button"),this.startCallBtn.className="control-btn primary",this.startCallBtn.innerHTML=`${G.phone} <span>Start Call</span>`,this.startCallBtn.onclick=()=>this.onStartCall(),a.appendChild(this.startCallBtn),this.controlsContainer.appendChild(a),this.element.appendChild(this.controlsContainer),this.initOverlay(),this.overlay.setMode("avatar")}getAvatarView(){return this.avatarView}setCallActive(e){e&&this.overlay.setMode("avatar"),super.setCallActive(e),e?this.controlsContainer.style.display="none":this.controlsContainer.style.display="block"}}class ml extends Ss{constructor(A,e,t,r="#000000",s="#111111",i){super(A,e,t,r,s,i),this.setupChat(),this.overlay.setMode("avatar")}injectVoiceTrigger(){const A=document.createElement("button");this.voiceTrigger=A,A.className="voice-btn-simple",A.style.overflow="hidden",A.style.padding="0",A.style.border="1.5px solid #e5e7eb",A.innerHTML=`
2418
+ `,this.element.onclick=s=>{s.stopPropagation(),this.onOpen()}}getElement(){return this.element}show(){this.element.style.display="flex"}hide(){this.element.style.display="none"}}class Ls{constructor(A,e,t="#000000",r="#111111",s){p(this,"element");p(this,"overlay");p(this,"onStartCall");p(this,"onHangup");p(this,"primaryColor");p(this,"secondaryColor");p(this,"onCallEnded");this.onStartCall=A,this.onHangup=e,this.primaryColor=t,this.secondaryColor=r,this.onCallEnded=s,this.element=document.createElement("div"),this.element.style.height="100%",this.element.style.position="relative"}initOverlay(){this.overlay=new Is(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}getElement(){return this.element}setCallActive(A){A?this.overlay.show():this.overlay.hide()}setStatus(A,e){this.overlay.setStatus(A,e)}setActivity(A){this.overlay.setActivity(A)}setTranscription(A,e){this.overlay.setTranscription(A,e)}setVideoTrack(A){this.overlay.setVideoTrack(A)}bindMicMuteToggle(A){this.overlay.bindMicMuteToggle(A)}setMicMuted(A){this.overlay.setMicMuted(A)}setMicMuteEnabled(A){this.overlay.setMicMuteEnabled(A)}}class bl extends Ls{constructor(e,t,r="#000000",s="#111111",i,o){super(e,t,r,s,i);p(this,"voiceOrb");this.element.style.background="#f9fafb",this.voiceOrb=new ml(a=>{this.onStartCall(a)},o),this.element.appendChild(this.voiceOrb.getElement()),this.initOverlay()}}class Ql{constructor(A){p(this,"element");p(this,"chatWindow");this.onSendMessage=A,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.width="100%",this.element.style.minHeight="0",this.element.style.display="flex",this.element.style.flexDirection="column",this.chatWindow=new Ss(e=>this.onSendMessage(e)),this.element.appendChild(this.chatWindow.getElement())}getElement(){return this.element}getChatWindow(){return this.chatWindow}}class Ts{constructor(A,e,t,r="#000000",s="#111111",i){p(this,"element");p(this,"chatWindow");p(this,"overlay");p(this,"voiceTrigger");this.onSendMessage=A,this.onStartCall=e,this.onHangup=t,this.primaryColor=r,this.secondaryColor=s,this.onCallEnded=i,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.minHeight="0",this.element.style.position="relative"}setupChat(){this.chatWindow=new Ss(e=>this.onSendMessage(e));const A=this.chatWindow.getElement();A.style.flex="1",this.element.appendChild(A),this.injectVoiceTrigger(),this.overlay=new Is(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}injectVoiceTrigger(){const A=document.createElement("button");this.voiceTrigger=A,A.className="voice-btn-simple",A.innerHTML=`<div class="voice-btn-icon">${G.audioLines}</div>`,A.onclick=()=>this.onStartCall();const e=this.chatWindow.getElement().querySelector(".chat-input-area");e&&e.insertBefore(this.voiceTrigger,e.firstChild)}getElement(){return this.element}getChatWindow(){return this.chatWindow}setCallActive(A){A?(this.overlay.show(),this.chatWindow&&(this.chatWindow.getElement().style.display="none")):(this.overlay.hide(),this.chatWindow&&(this.chatWindow.getElement().style.display="flex"))}setStatus(A,e){this.overlay.setStatus(A,e)}setActivity(A){this.overlay.setActivity(A)}setTranscription(A,e){this.overlay.setTranscription(A,e)}setVideoTrack(A){this.overlay.setVideoTrack(A)}bindMicMuteToggle(A){this.overlay.bindMicMuteToggle(A)}setMicMuted(A){this.overlay.setMicMuted(A)}setMicMuteEnabled(A){this.overlay.setMicMuteEnabled(A)}}class xl extends Ts{constructor(A,e,t,r="#000000",s="#111111",i){super(A,e,t,r,s,i),this.setupChat()}}class El extends Ls{constructor(e,t,r="#000000",s="#111111",i){super(e,t,r,s,i);p(this,"avatarView");p(this,"startCallBtn");p(this,"controlsContainer");this.element.style.display="flex",this.element.style.flexDirection="column",this.avatarView=new wl;const o=this.avatarView.getElement();o.style.width="100%",o.style.maxWidth="300px",o.style.aspectRatio="1/1",o.style.borderRadius="16px",o.style.overflow="hidden",o.style.margin="auto",o.style.position="relative",this.element.appendChild(o),this.controlsContainer=document.createElement("div"),this.controlsContainer.className="widget-body",this.controlsContainer.style.position="absolute",this.controlsContainer.style.bottom="20px",this.controlsContainer.style.width="100%",this.controlsContainer.style.zIndex="10";const a=document.createElement("div");a.className="controls",this.startCallBtn=document.createElement("button"),this.startCallBtn.className="control-btn primary",this.startCallBtn.innerHTML=`${G.phone} <span>Start Call</span>`,this.startCallBtn.onclick=()=>this.onStartCall(),a.appendChild(this.startCallBtn),this.controlsContainer.appendChild(a),this.element.appendChild(this.controlsContainer),this.initOverlay(),this.overlay.setMode("avatar")}getAvatarView(){return this.avatarView}setCallActive(e){e&&this.overlay.setMode("avatar"),super.setCallActive(e),e?this.controlsContainer.style.display="none":this.controlsContainer.style.display="block"}}class Ul extends Ts{constructor(A,e,t,r="#000000",s="#111111",i){super(A,e,t,r,s,i),this.setupChat(),this.overlay.setMode("avatar")}injectVoiceTrigger(){const A=document.createElement("button");this.voiceTrigger=A,A.className="voice-btn-simple",A.style.overflow="hidden",A.style.padding="0",A.style.border="1.5px solid #e5e7eb",A.innerHTML=`
2419
2419
  <video
2420
2420
  src="https://www.simli.com/jenna.mp4"
2421
2421
  autoplay loop muted pip="false" playsinline
@@ -2424,8 +2424,8 @@ overflow: hidden;
2424
2424
  <div style="position: absolute; bottom: -2px; right: -2px; background: white; border-radius: 50%; padding: 2px; box-shadow: 0 1px 2px rgba(0,0,0,0.1);">
2425
2425
  ${G.audioLines.replace('width="24"','width="12"').replace('height="24"','height="12"')}
2426
2426
  </div>
2427
- `;const e=A.querySelector("div");if(e){const s=e.querySelector("svg");s&&(s.style.width="12px",s.style.height="12px")}A.onclick=()=>this.onStartCall();const t=this.chatWindow.getElement().querySelector(".chat-input-area"),r=t==null?void 0:t.querySelector(".chat-send-btn");t&&r&&t.insertBefore(this.voiceTrigger,r)}}class Cl{async sendMessage(A,e,t,r,s,i,o,a,l){return KA.sendChatMessage(e,t,A,r,c=>{i&&i(c)},s,(c,d)=>{o&&c&&o(c,d||void 0)},a,l)}async sendFile(A){throw new Error("Method not implemented.")}async likeDislike(A,e){}}const vt="vanira:clip-region-active";function Nn(n){typeof window>"u"||window.dispatchEvent(new CustomEvent(vt,{detail:{active:n}}))}const yl="vanira:board-active";function Wf(n){}function On(n,A=!1){typeof window>"u"||window.dispatchEvent(new CustomEvent(yl,{detail:{active:n,reduced:A}}))}const vl="vnr-clip-overlay";function bl(n){var A;return((A=n.classList)==null?void 0:A.contains(vl))??!1}function Ql(n){var e;return((e=n.tagName)==null?void 0:e.toLowerCase())==="vanira-convai"?!0:typeof n.closest=="function"&&!!n.closest("vanira-convai")}function Hs(n){var A;return bl(n)||Ql(n)||(A=n.classList)!=null&&A.contains("vnr-screen-overlay-root")?!0:typeof n.closest=="function"&&!!n.closest(".vnr-screen-overlay-root")}async function Ls(){const n=document.documentElement.clientWidth,A=document.documentElement.clientHeight;return Ms({left:0,top:0,width:n,height:A})}function Ts(n,A){if(n.width<=A)return n;const e=A/n.width,t=document.createElement("canvas");t.width=A,t.height=Math.round(n.height*e);const r=t.getContext("2d");return r?(r.drawImage(n,0,0,t.width,t.height),t):n}async function Ms(n){const{default:A}=await Promise.resolve().then(()=>Vf),e=window.devicePixelRatio||1,t=window.scrollX+n.left,r=window.scrollY+n.top;return A(document.body,{x:t,y:r,width:n.width,height:n.height,windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight,scrollX:-window.scrollX,scrollY:-window.scrollY,useCORS:!0,allowTaint:!1,scale:e,ignoreElements:s=>Hs(s),logging:!1})}async function Rn(n,A=.88){try{const e=await new Promise(t=>n.toBlob(r=>t(r),"image/jpeg",A));if(!e)throw new Error("Failed to encode clip as JPEG");return e}catch(e){const t=e instanceof Error?e.message:String(e);throw/tainted|security|cross-origin/i.test(t)?new Error("Could not export this page region (cross-origin content). Try selecting a simpler area."):e}}const bt="vnr-clip-overlay",ks="2147483647",xl="rgba(0, 0, 0, 0.28)";function El(n={}){const A=n.minSizePx??24,e=n.hint??"Drag to select an area — release to clip.";return new Promise(t=>{let r=!1,s=!1,i=0,o=0,a=!1,l={left:0,top:0,width:0,height:0},c=!1,d=null;const h=T=>{r||(r=!0,M(),t(T))},u=document.createElement("div");u.className=bt,u.style.cssText=["position:fixed","inset:0",`z-index:${ks}`,"cursor:crosshair","user-select:none","touch-action:none","background:transparent","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif"].join(";");const g=document.createElement("div");g.style.cssText=["position:absolute","display:none","pointer-events:none","border:2px solid #6366f1","border-radius:2px","background:transparent","box-shadow:none"].join(";");const B=document.createElement("div");B.style.cssText=["position:absolute","display:none","pointer-events:none","padding:2px 6px","border-radius:4px","font-size:11px","font-weight:600","color:#fff","background:rgba(15,23,42,0.82)","white-space:nowrap"].join(";");const f=document.createElement("div");f.className=bt,f.style.cssText=["position:fixed","top:16px","left:50%","transform:translateX(-50%)",`z-index:${ks}`,"display:flex","align-items:center","gap:10px","padding:10px 14px","border-radius:14px","background:#0f172a","border:1px solid rgba(255,255,255,0.12)","box-shadow:0 8px 24px rgba(0,0,0,0.25)","max-width:min(520px,calc(100vw - 32px))"].join(";");const m=document.createElement("span");m.style.cssText="flex:1;font-size:13px;color:#e2e8f0;line-height:1.4",m.textContent=e;const w=document.createElement("button");w.type="button",w.textContent="Cancel",w.style.cssText=["padding:8px 12px","border:1px solid rgba(255,255,255,0.15)","border-radius:10px","background:transparent","color:#e2e8f0","font-size:13px","font-weight:600","cursor:pointer"].join(";"),f.appendChild(m),f.appendChild(w);const v=T=>{T.key==="Escape"&&!s&&h(null)},C=()=>c&&l.width>=A&&l.height>=A,y=()=>{c=!1,l={left:0,top:0,width:0,height:0},Q()},Q=()=>{if(!c||l.width<1||l.height<1){g.style.display="none",B.style.display="none";return}g.style.display="block",g.style.left=`${l.left}px`,g.style.top=`${l.top}px`,g.style.width=`${l.width}px`,g.style.height=`${l.height}px`,g.style.boxShadow=`0 0 0 9999px ${xl}`,B.style.display="block",B.textContent=`${Math.round(l.width)} × ${Math.round(l.height)}`,B.style.left=`${l.left}px`,B.style.top=`${Math.max(8,l.top-26)}px`},x=T=>{const k=T instanceof Error?T.message:"Capture failed";m.textContent=k.length>120?`${k.slice(0,117)}…`:k,m.style.color="#fca5a5",window.setTimeout(()=>{m.textContent=e,m.style.color="#e2e8f0"},4500)},F=async T=>{if(!(s||r)){s=!0,w.disabled=!0,m.textContent="Clipping…",m.style.color="#e2e8f0",u.style.visibility="hidden",f.style.visibility="hidden";try{const k=await Ms(T),AA=await Rn(k),iA=document.documentElement.clientWidth,oA=document.documentElement.clientHeight;h({blob:AA,region:{x:T.left/iA,y:T.top/oA,w:T.width/iA,h:T.height/oA},viewport:{width:iA,height:oA},pixelSize:{width:k.width,height:k.height}})}catch(k){s=!1,w.disabled=!1,u.style.visibility="visible",f.style.visibility="visible",x(k),y()}}},I=T=>{const k=T??d;if(k!==null)try{u.releasePointerCapture(k)}catch{}d=null},L=T=>{if(!(!a||s)){if(a=!1,I(T==null?void 0:T.pointerId),C()){F({...l});return}y()}},O=T=>{s||T.target.closest(`.${bt}`)!==f&&(a=!0,c=!0,i=T.clientX,o=T.clientY,l={left:i,top:o,width:0,height:0},d=T.pointerId,u.setPointerCapture(T.pointerId),Q())},K=T=>{if(!a||s)return;const k=Math.min(i,T.clientX),AA=Math.min(o,T.clientY),iA=Math.max(i,T.clientX),oA=Math.max(o,T.clientY);l={left:k,top:AA,width:iA-k,height:oA-AA},Q()},M=()=>{Nn(!1),document.removeEventListener("keydown",v),window.removeEventListener("pointerup",Z,!0),window.removeEventListener("pointercancel",Z,!0),u.removeEventListener("pointerdown",O),u.removeEventListener("pointermove",K),u.removeEventListener("pointerup",L),u.removeEventListener("pointercancel",L),I(),u.remove(),f.remove()},Z=T=>L(T);w.addEventListener("click",()=>h(null)),Nn(!0),u.appendChild(g),u.appendChild(B),document.body.appendChild(u),document.body.appendChild(f),document.addEventListener("keydown",v),window.addEventListener("pointerup",Z,!0),window.addEventListener("pointercancel",Z,!0),u.addEventListener("pointerdown",O),u.addEventListener("pointermove",K),u.addEventListener("pointerup",L),u.addEventListener("pointercancel",L)})}function Gn(){document.querySelectorAll(`.${bt}`).forEach(n=>n.remove()),Nn(!1)}const Ul=["a[href]","button:not([disabled])",'input:not([type="hidden"]):not([disabled])',"select:not([disabled])","textarea:not([disabled])",'[role="button"]','[role="link"]','[role="tab"]','[role="menuitem"]','[role="checkbox"]','[role="radio"]',"label","h1","h2","h3","h4","h5","h6","img[alt]","[data-testid]","[aria-label]","[onclick]"].join(", "),Fl='[id]:not([id=""]), svg[id], polygon[id]',Il="svg[id], polygon[id], svg[data-vanira-static-diagram], svg[data-vanira-static-diagram] polygon",Ds=new Set(["root","app","__next"]);function Ps(n,A,e){const t=n.getScreenCTM(),r=n.ownerSVGElement;if(!t||!r)return[];const s=[];for(let i=0;i<n.points.length;i++){const o=n.points.getItem(i),a=r.createSVGPoint();a.x=o.x,a.y=o.y;const l=a.matrixTransform(t);s.push({x:l.x/A,y:l.y/e})}return s}function Ks(n,A,e){if(n instanceof SVGPolygonElement){const t=Ps(n,A,e);return t.length>=2?t:void 0}if(n instanceof SVGSVGElement){const t=n.querySelector("polygon");if(!t)return;const r=Ps(t,A,e);return r.length>=2?r:void 0}}function Sl(n,A=40){return n.elements.slice(0,A).map(e=>{var r;let t=`${e.css_selector} (${e.tag}) "${e.label.slice(0,48)}" center=(${e.center_x.toFixed(3)},${e.center_y.toFixed(3)}) bbox=(${e.x.toFixed(3)},${e.y.toFixed(3)},${e.width.toFixed(3)},${e.height.toFixed(3)})`;if((r=e.stroke_points)!=null&&r.length){const s=e.stroke_points.map(i=>[Number(i.x.toFixed(3)),Number(i.y.toFixed(3))]);t+=` stroke_points=${JSON.stringify(s)} close=true`}return t}).join(`
2428
- `)}function Ns(n,A="#f97316"){const e=document.querySelector(n);if(!e)return null;const t=document.documentElement.clientWidth,r=document.documentElement.clientHeight,s=Ks(e,t,r);if(s!=null&&s.length)return{points:s.map(o=>[o.x,o.y]),close:!0,color:A};const i=e.getBoundingClientRect();return i.width<1||i.height<1?null:{points:[[i.left/t,i.top/r],[(i.left+i.width)/t,i.top/r],[(i.left+i.width)/t,(i.top+i.height)/r],[i.left/t,(i.top+i.height)/r]],close:!0,color:A}}function Os(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/([^\w-])/g,"\\$1")}function Hl(n){if(n.id){const r=`#${Os(n.id)}`;try{if(document.querySelectorAll(r).length===1)return r}catch{}}const A=n.getAttribute("data-testid");if(A){const r=`[data-testid="${A.replace(/"/g,'\\"')}"]`;try{if(document.querySelectorAll(r).length===1)return r}catch{}}const e=[];let t=n;for(;t&&t!==document.body&&t!==document.documentElement;){let r=t.tagName.toLowerCase();if(t.classList.length>0){const i=[...t.classList].filter(o=>!o.startsWith("vnr-")).slice(0,2).map(o=>`.${Os(o)}`).join("");r+=i}const s=t.parentElement;if(s){const i=[...s.children].filter(o=>o.tagName===t.tagName);i.length>1&&(r+=`:nth-of-type(${i.indexOf(t)+1})`)}e.unshift(r);try{const i=e.join(" > ");if(document.querySelectorAll(i).length===1)return i}catch{}if(t=t.parentElement,e.length>=8)break}return e.join(" > ")||n.tagName.toLowerCase()}function Rs(n,A,e){const t=n.getBoundingClientRect();if(t.width<2||t.height<2||t.bottom<=0||t.right<=0||t.top>=e||t.left>=A)return!1;if(n instanceof SVGElement||n instanceof HTMLElement){const r=window.getComputedStyle(n);if(r.display==="none"||r.visibility==="hidden"||Number(r.opacity)===0)return!1}else return!1;return n.getAttribute("aria-hidden")!=="true"}function Ll(n,A,e){var o;const t=((o=n.id)==null?void 0:o.toLowerCase())??"";if(Ds.has(t)||n===document.body||n===document.documentElement)return!0;const r=n.tagName.toLowerCase();if(r!=="div"&&r!=="main")return!1;const s=n.getBoundingClientRect();return s.width*s.height/Math.max(1,A*e)>.9}function Gs(n){return Hs(n)?!0:typeof n.closest!="function"?!1:!!n.closest("script, style, noscript, template, head")}function Tl(n,A){const e=n.tagName.toLowerCase();return e==="svg"||e==="polygon"?"diagram":e==="button"||A==="button"?"button":e==="a"||A==="link"?"link":e==="input"||e==="select"||e==="textarea"?"input":/^h[1-6]$/.test(e)?"heading":e==="img"?"image":e==="label"?"label":A?"interactive":"text"}function Ml(n){const A=n.getAttribute("aria-label")||n.getAttribute("title")||"";if(A.trim())return A.trim().replace(/\s+/g," ").slice(0,240);if(n instanceof SVGPolygonElement&&n.id)return n.id.replace(/-/g," ").slice(0,240);if(n instanceof SVGSVGElement&&n.id)return(A.trim()||n.id.replace(/-/g," ")).slice(0,240);if(!(n instanceof HTMLElement))return n.id?n.id.replace(/-/g," ").slice(0,240):"";if(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement){const t=n.getAttribute("placeholder")||n.getAttribute("name")||"";if(t.trim())return t.trim().slice(0,240)}return n instanceof HTMLImageElement&&n.alt.trim()?n.alt.trim().slice(0,240):(n.innerText||n.textContent||"").replace(/\s+/g," ").trim().slice(0,240)}function kl(n){var A,e;if(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLSelectElement){const t=(A=n.value)==null?void 0:A.trim();return t?t.slice(0,240):void 0}if(n instanceof HTMLAnchorElement){const t=(e=n.getAttribute("href"))==null?void 0:e.trim();return t?t.slice(0,240):void 0}}function Dl(n,A,e){const t=Math.round(n.left),r=Math.round(n.top),s=Math.round(n.width),i=Math.round(n.height),o=t+s/2,a=r+i/2;return{x:n.left/A,y:n.top/e,width:n.width/A,height:n.height/e,center_x:o/A,center_y:a/e,px:{left:t,top:r,width:s,height:i,center_x:Math.round(o),center_y:Math.round(a)}}}function Vs(n){var e;let A=n.label?2:0;switch(n.kind){case"diagram":A+=22;break;case"button":case"link":case"input":A+=12;break;case"heading":A+=9;break;case"interactive":A+=8;break;case"image":case"label":A+=5;break;default:A+=3}return n.kind!=="text"&&(A+=Math.min(4,n.px.width*n.px.height/12e3)),(e=n.stroke_points)!=null&&e.length&&(A+=18),n.id&&Ds.has(n.id.toLowerCase())&&(A-=50),A}function Qt(n,A,e,t,r){if(Gs(n)||Ll(n,t,r)||!Rs(n,t,r))return;const s=Ml(n),i=kl(n),o=Ks(n,t,r),a=n.id||void 0;if(!s&&!i&&!a&&!o&&n.tagName.toLowerCase()!=="input")return;const l=(n.getAttribute("role")||"").trim()||void 0,c=Hl(n);if(e.has(c))return;e.add(c);const d=Dl(n.getBoundingClientRect(),t,r);A.push({tag:n.tagName.toLowerCase(),kind:Tl(n,l??""),role:l,label:s||i||a||c,value:i,id:a,css_selector:c,stroke_points:o,...d})}function Pl(n,A,e,t){for(const r of document.querySelectorAll(Il))Qt(r,n,A,e,t);for(const r of document.querySelectorAll("svg"))if(!(Gs(r)||!Rs(r,e,t)))for(const s of r.querySelectorAll("polygon"))Qt(s,n,A,e,t)}function _s(n){const A=Math.max(1,Math.min(200,(n==null?void 0:n.maxElements)??80)),e=document.documentElement.clientWidth,t=document.documentElement.clientHeight,r=new Set,s=[];Pl(s,r,e,t);for(const o of document.querySelectorAll(Ul))Qt(o,s,r,e,t);for(const o of document.querySelectorAll(Fl))Qt(o,s,r,e,t);s.sort((o,a)=>Vs(a)-Vs(o));const i=s.slice(0,A).map((o,a)=>({...o,element_id:`e${a+1}`}));return{url:window.location.href,title:document.title,viewport:{width:e,height:t},scroll:{x:window.scrollX,y:window.scrollY},coordinate_system:"normalized_viewport",elements:i}}function Kl(n){if(n instanceof SVGPathElement&&typeof n.getTotalLength=="function"){const A=n.getTotalLength();if(A>0)return A}if(n instanceof SVGLineElement){const A=Number(n.getAttribute("x1")),e=Number(n.getAttribute("y1")),t=Number(n.getAttribute("x2")),r=Number(n.getAttribute("y2"));return Math.hypot(t-A,r-e)}if(n instanceof SVGCircleElement){const A=Number(n.getAttribute("r"));return 2*Math.PI*A}if(n instanceof SVGEllipseElement){const A=Number(n.getAttribute("rx")),e=Number(n.getAttribute("ry"));return Math.PI*(3*(A+e)-Math.sqrt((3*A+e)*(A+3*e)))}if(n instanceof SVGRectElement){const A=Number(n.getAttribute("width")),e=Number(n.getAttribute("height"));return 2*(A+e)}return 100}function Ys(n){n.style.strokeDasharray="",n.style.strokeDashoffset="",n.style.transition="",n.removeAttribute("stroke-dasharray"),n.removeAttribute("stroke-dashoffset")}function Vn(n,A){if(A<=0)return Ys(n),Promise.resolve();n instanceof SVGLineElement&&(n.style.vectorEffect="none");const e=Math.max(1,Kl(n));return n.setAttribute("stroke-dasharray",String(e)),n.setAttribute("stroke-dashoffset",String(e)),n.getBoundingClientRect(),new Promise(t=>{requestAnimationFrame(()=>{n.style.transition=`stroke-dashoffset ${A}ms ease-out`,n.setAttribute("stroke-dashoffset","0"),setTimeout(()=>{Ys(n),t()},A+30)})})}function _n(n){return new Promise(A=>setTimeout(A,n))}const De=4,Yn=750,zs=90,Nl="2147483647";let Js=!1;function Ol(){if(Js||typeof document>"u")return;Js=!0;const n=document.createElement("style");n.id="vnr-screen-overlay-styles",n.textContent=`
2427
+ `;const e=A.querySelector("div");if(e){const s=e.querySelector("svg");s&&(s.style.width="12px",s.style.height="12px")}A.onclick=()=>this.onStartCall();const t=this.chatWindow.getElement().querySelector(".chat-input-area"),r=t==null?void 0:t.querySelector(".chat-send-btn");t&&r&&t.insertBefore(this.voiceTrigger,r)}}class Fl{async sendMessage(A,e,t,r,s,i,o,a,l){return KA.sendChatMessage(e,t,A,r,d=>{i&&i(d)},s,(d,c)=>{o&&d&&o(d,c||void 0)},a,l)}async sendFile(A){throw new Error("Method not implemented.")}async likeDislike(A,e){}}const vt="vanira:clip-region-active";function Rn(n){typeof window>"u"||window.dispatchEvent(new CustomEvent(vt,{detail:{active:n}}))}const Il="vanira:board-active";function nw(n){}function Gn(n,A=!1){typeof window>"u"||window.dispatchEvent(new CustomEvent(Il,{detail:{active:n,reduced:A}}))}const Sl="vnr-clip-overlay";function Hl(n){var A;return((A=n.classList)==null?void 0:A.contains(Sl))??!1}function Ll(n){var e;return((e=n.tagName)==null?void 0:e.toLowerCase())==="vanira-convai"?!0:typeof n.closest=="function"&&!!n.closest("vanira-convai")}function Ms(n){var A;return Hl(n)||Ll(n)||(A=n.classList)!=null&&A.contains("vnr-screen-overlay-root")?!0:typeof n.closest=="function"&&!!n.closest(".vnr-screen-overlay-root")}async function ks(){const n=document.documentElement.clientWidth,A=document.documentElement.clientHeight;return Ps({left:0,top:0,width:n,height:A})}function Ds(n,A){if(n.width<=A)return n;const e=A/n.width,t=document.createElement("canvas");t.width=A,t.height=Math.round(n.height*e);const r=t.getContext("2d");return r?(r.drawImage(n,0,0,t.width,t.height),t):n}async function Ps(n){const{default:A}=await Promise.resolve().then(()=>Zf),e=window.devicePixelRatio||1,t=window.scrollX+n.left,r=window.scrollY+n.top;return A(document.body,{x:t,y:r,width:n.width,height:n.height,windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight,scrollX:-window.scrollX,scrollY:-window.scrollY,useCORS:!0,allowTaint:!1,scale:e,ignoreElements:s=>Ms(s),logging:!1})}async function Vn(n,A=.88){try{const e=await new Promise(t=>n.toBlob(r=>t(r),"image/jpeg",A));if(!e)throw new Error("Failed to encode clip as JPEG");return e}catch(e){const t=e instanceof Error?e.message:String(e);throw/tainted|security|cross-origin/i.test(t)?new Error("Could not export this page region (cross-origin content). Try selecting a simpler area."):e}}const bt="vnr-clip-overlay",Ks="2147483647",Tl="rgba(0, 0, 0, 0.28)";function Ml(n={}){const A=n.minSizePx??24,e=n.hint??"Drag to select an area — release to clip.";return new Promise(t=>{let r=!1,s=!1,i=0,o=0,a=!1,l={left:0,top:0,width:0,height:0},d=!1,c=null;const h=T=>{r||(r=!0,M(),t(T))},u=document.createElement("div");u.className=bt,u.style.cssText=["position:fixed","inset:0",`z-index:${Ks}`,"cursor:crosshair","user-select:none","touch-action:none","background:transparent","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif"].join(";");const g=document.createElement("div");g.style.cssText=["position:absolute","display:none","pointer-events:none","border:2px solid #6366f1","border-radius:2px","background:transparent","box-shadow:none"].join(";");const B=document.createElement("div");B.style.cssText=["position:absolute","display:none","pointer-events:none","padding:2px 6px","border-radius:4px","font-size:11px","font-weight:600","color:#fff","background:rgba(15,23,42,0.82)","white-space:nowrap"].join(";");const f=document.createElement("div");f.className=bt,f.style.cssText=["position:fixed","top:16px","left:50%","transform:translateX(-50%)",`z-index:${Ks}`,"display:flex","align-items:center","gap:10px","padding:10px 14px","border-radius:14px","background:#0f172a","border:1px solid rgba(255,255,255,0.12)","box-shadow:0 8px 24px rgba(0,0,0,0.25)","max-width:min(520px,calc(100vw - 32px))"].join(";");const m=document.createElement("span");m.style.cssText="flex:1;font-size:13px;color:#e2e8f0;line-height:1.4",m.textContent=e;const w=document.createElement("button");w.type="button",w.textContent="Cancel",w.style.cssText=["padding:8px 12px","border:1px solid rgba(255,255,255,0.15)","border-radius:10px","background:transparent","color:#e2e8f0","font-size:13px","font-weight:600","cursor:pointer"].join(";"),f.appendChild(m),f.appendChild(w);const v=T=>{T.key==="Escape"&&!s&&h(null)},C=()=>d&&l.width>=A&&l.height>=A,y=()=>{d=!1,l={left:0,top:0,width:0,height:0},Q()},Q=()=>{if(!d||l.width<1||l.height<1){g.style.display="none",B.style.display="none";return}g.style.display="block",g.style.left=`${l.left}px`,g.style.top=`${l.top}px`,g.style.width=`${l.width}px`,g.style.height=`${l.height}px`,g.style.boxShadow=`0 0 0 9999px ${Tl}`,B.style.display="block",B.textContent=`${Math.round(l.width)} × ${Math.round(l.height)}`,B.style.left=`${l.left}px`,B.style.top=`${Math.max(8,l.top-26)}px`},E=T=>{const k=T instanceof Error?T.message:"Capture failed";m.textContent=k.length>120?`${k.slice(0,117)}…`:k,m.style.color="#fca5a5",window.setTimeout(()=>{m.textContent=e,m.style.color="#e2e8f0"},4500)},F=async T=>{if(!(s||r)){s=!0,w.disabled=!0,m.textContent="Clipping…",m.style.color="#e2e8f0",u.style.visibility="hidden",f.style.visibility="hidden";try{const k=await Ps(T),AA=await Vn(k),iA=document.documentElement.clientWidth,oA=document.documentElement.clientHeight;h({blob:AA,region:{x:T.left/iA,y:T.top/oA,w:T.width/iA,h:T.height/oA},viewport:{width:iA,height:oA},pixelSize:{width:k.width,height:k.height}})}catch(k){s=!1,w.disabled=!1,u.style.visibility="visible",f.style.visibility="visible",E(k),y()}}},I=T=>{const k=T??c;if(k!==null)try{u.releasePointerCapture(k)}catch{}c=null},L=T=>{if(!(!a||s)){if(a=!1,I(T==null?void 0:T.pointerId),C()){F({...l});return}y()}},O=T=>{s||T.target.closest(`.${bt}`)!==f&&(a=!0,d=!0,i=T.clientX,o=T.clientY,l={left:i,top:o,width:0,height:0},c=T.pointerId,u.setPointerCapture(T.pointerId),Q())},K=T=>{if(!a||s)return;const k=Math.min(i,T.clientX),AA=Math.min(o,T.clientY),iA=Math.max(i,T.clientX),oA=Math.max(o,T.clientY);l={left:k,top:AA,width:iA-k,height:oA-AA},Q()},M=()=>{Rn(!1),document.removeEventListener("keydown",v),window.removeEventListener("pointerup",Z,!0),window.removeEventListener("pointercancel",Z,!0),u.removeEventListener("pointerdown",O),u.removeEventListener("pointermove",K),u.removeEventListener("pointerup",L),u.removeEventListener("pointercancel",L),I(),u.remove(),f.remove()},Z=T=>L(T);w.addEventListener("click",()=>h(null)),Rn(!0),u.appendChild(g),u.appendChild(B),document.body.appendChild(u),document.body.appendChild(f),document.addEventListener("keydown",v),window.addEventListener("pointerup",Z,!0),window.addEventListener("pointercancel",Z,!0),u.addEventListener("pointerdown",O),u.addEventListener("pointermove",K),u.addEventListener("pointerup",L),u.addEventListener("pointercancel",L)})}function _n(){document.querySelectorAll(`.${bt}`).forEach(n=>n.remove()),Rn(!1)}const kl=["a[href]","button:not([disabled])",'input:not([type="hidden"]):not([disabled])',"select:not([disabled])","textarea:not([disabled])",'[role="button"]','[role="link"]','[role="tab"]','[role="menuitem"]','[role="checkbox"]','[role="radio"]',"label","h1","h2","h3","h4","h5","h6","img[alt]","[data-testid]","[aria-label]","[onclick]"].join(", "),Dl='[id]:not([id=""]), svg[id], polygon[id]',Pl="svg[id], polygon[id], svg[data-vanira-static-diagram], svg[data-vanira-static-diagram] polygon",Ns=new Set(["root","app","__next"]);function Os(n,A,e){const t=n.getScreenCTM(),r=n.ownerSVGElement;if(!t||!r)return[];const s=[];for(let i=0;i<n.points.length;i++){const o=n.points.getItem(i),a=r.createSVGPoint();a.x=o.x,a.y=o.y;const l=a.matrixTransform(t);s.push({x:l.x/A,y:l.y/e})}return s}function Rs(n,A,e){if(n instanceof SVGPolygonElement){const t=Os(n,A,e);return t.length>=2?t:void 0}if(n instanceof SVGSVGElement){const t=n.querySelector("polygon");if(!t)return;const r=Os(t,A,e);return r.length>=2?r:void 0}}function Kl(n,A=40){return n.elements.slice(0,A).map(e=>{var r;let t=`${e.css_selector} (${e.tag}) "${e.label.slice(0,48)}" center=(${e.center_x.toFixed(3)},${e.center_y.toFixed(3)}) bbox=(${e.x.toFixed(3)},${e.y.toFixed(3)},${e.width.toFixed(3)},${e.height.toFixed(3)})`;if((r=e.stroke_points)!=null&&r.length){const s=e.stroke_points.map(i=>[Number(i.x.toFixed(3)),Number(i.y.toFixed(3))]);t+=` stroke_points=${JSON.stringify(s)} close=true`}return t}).join(`
2428
+ `)}function Gs(n,A="#f97316"){const e=document.querySelector(n);if(!e)return null;const t=document.documentElement.clientWidth,r=document.documentElement.clientHeight,s=Rs(e,t,r);if(s!=null&&s.length)return{points:s.map(o=>[o.x,o.y]),close:!0,color:A};const i=e.getBoundingClientRect();return i.width<1||i.height<1?null:{points:[[i.left/t,i.top/r],[(i.left+i.width)/t,i.top/r],[(i.left+i.width)/t,(i.top+i.height)/r],[i.left/t,(i.top+i.height)/r]],close:!0,color:A}}function Vs(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/([^\w-])/g,"\\$1")}function Nl(n){if(n.id){const r=`#${Vs(n.id)}`;try{if(document.querySelectorAll(r).length===1)return r}catch{}}const A=n.getAttribute("data-testid");if(A){const r=`[data-testid="${A.replace(/"/g,'\\"')}"]`;try{if(document.querySelectorAll(r).length===1)return r}catch{}}const e=[];let t=n;for(;t&&t!==document.body&&t!==document.documentElement;){let r=t.tagName.toLowerCase();if(t.classList.length>0){const i=[...t.classList].filter(o=>!o.startsWith("vnr-")).slice(0,2).map(o=>`.${Vs(o)}`).join("");r+=i}const s=t.parentElement;if(s){const i=[...s.children].filter(o=>o.tagName===t.tagName);i.length>1&&(r+=`:nth-of-type(${i.indexOf(t)+1})`)}e.unshift(r);try{const i=e.join(" > ");if(document.querySelectorAll(i).length===1)return i}catch{}if(t=t.parentElement,e.length>=8)break}return e.join(" > ")||n.tagName.toLowerCase()}function _s(n,A,e){const t=n.getBoundingClientRect();if(t.width<2||t.height<2||t.bottom<=0||t.right<=0||t.top>=e||t.left>=A)return!1;if(n instanceof SVGElement||n instanceof HTMLElement){const r=window.getComputedStyle(n);if(r.display==="none"||r.visibility==="hidden"||Number(r.opacity)===0)return!1}else return!1;return n.getAttribute("aria-hidden")!=="true"}function Ol(n,A,e){var o;const t=((o=n.id)==null?void 0:o.toLowerCase())??"";if(Ns.has(t)||n===document.body||n===document.documentElement)return!0;const r=n.tagName.toLowerCase();if(r!=="div"&&r!=="main")return!1;const s=n.getBoundingClientRect();return s.width*s.height/Math.max(1,A*e)>.9}function Ys(n){return Ms(n)?!0:typeof n.closest!="function"?!1:!!n.closest("script, style, noscript, template, head")}function Rl(n,A){const e=n.tagName.toLowerCase();return e==="svg"||e==="polygon"?"diagram":e==="button"||A==="button"?"button":e==="a"||A==="link"?"link":e==="input"||e==="select"||e==="textarea"?"input":/^h[1-6]$/.test(e)?"heading":e==="img"?"image":e==="label"?"label":A?"interactive":"text"}function Gl(n){const A=n.getAttribute("aria-label")||n.getAttribute("title")||"";if(A.trim())return A.trim().replace(/\s+/g," ").slice(0,240);if(n instanceof SVGPolygonElement&&n.id)return n.id.replace(/-/g," ").slice(0,240);if(n instanceof SVGSVGElement&&n.id)return(A.trim()||n.id.replace(/-/g," ")).slice(0,240);if(!(n instanceof HTMLElement))return n.id?n.id.replace(/-/g," ").slice(0,240):"";if(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement){const t=n.getAttribute("placeholder")||n.getAttribute("name")||"";if(t.trim())return t.trim().slice(0,240)}return n instanceof HTMLImageElement&&n.alt.trim()?n.alt.trim().slice(0,240):(n.innerText||n.textContent||"").replace(/\s+/g," ").trim().slice(0,240)}function Vl(n){var A,e;if(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLSelectElement){const t=(A=n.value)==null?void 0:A.trim();return t?t.slice(0,240):void 0}if(n instanceof HTMLAnchorElement){const t=(e=n.getAttribute("href"))==null?void 0:e.trim();return t?t.slice(0,240):void 0}}function _l(n,A,e){const t=Math.round(n.left),r=Math.round(n.top),s=Math.round(n.width),i=Math.round(n.height),o=t+s/2,a=r+i/2;return{x:n.left/A,y:n.top/e,width:n.width/A,height:n.height/e,center_x:o/A,center_y:a/e,px:{left:t,top:r,width:s,height:i,center_x:Math.round(o),center_y:Math.round(a)}}}function zs(n){var e;let A=n.label?2:0;switch(n.kind){case"diagram":A+=22;break;case"button":case"link":case"input":A+=12;break;case"heading":A+=9;break;case"interactive":A+=8;break;case"image":case"label":A+=5;break;default:A+=3}return n.kind!=="text"&&(A+=Math.min(4,n.px.width*n.px.height/12e3)),(e=n.stroke_points)!=null&&e.length&&(A+=18),n.id&&Ns.has(n.id.toLowerCase())&&(A-=50),A}function Qt(n,A,e,t,r){if(Ys(n)||Ol(n,t,r)||!_s(n,t,r))return;const s=Gl(n),i=Vl(n),o=Rs(n,t,r),a=n.id||void 0;if(!s&&!i&&!a&&!o&&n.tagName.toLowerCase()!=="input")return;const l=(n.getAttribute("role")||"").trim()||void 0,d=Nl(n);if(e.has(d))return;e.add(d);const c=_l(n.getBoundingClientRect(),t,r);A.push({tag:n.tagName.toLowerCase(),kind:Rl(n,l??""),role:l,label:s||i||a||d,value:i,id:a,css_selector:d,stroke_points:o,...c})}function Yl(n,A,e,t){for(const r of document.querySelectorAll(Pl))Qt(r,n,A,e,t);for(const r of document.querySelectorAll("svg"))if(!(Ys(r)||!_s(r,e,t)))for(const s of r.querySelectorAll("polygon"))Qt(s,n,A,e,t)}function Js(n){const A=Math.max(1,Math.min(200,(n==null?void 0:n.maxElements)??80)),e=document.documentElement.clientWidth,t=document.documentElement.clientHeight,r=new Set,s=[];Yl(s,r,e,t);for(const o of document.querySelectorAll(kl))Qt(o,s,r,e,t);for(const o of document.querySelectorAll(Dl))Qt(o,s,r,e,t);s.sort((o,a)=>zs(a)-zs(o));const i=s.slice(0,A).map((o,a)=>({...o,element_id:`e${a+1}`}));return{url:window.location.href,title:document.title,viewport:{width:e,height:t},scroll:{x:window.scrollX,y:window.scrollY},coordinate_system:"normalized_viewport",elements:i}}function zl(n){if(n instanceof SVGPathElement&&typeof n.getTotalLength=="function"){const A=n.getTotalLength();if(A>0)return A}if(n instanceof SVGLineElement){const A=Number(n.getAttribute("x1")),e=Number(n.getAttribute("y1")),t=Number(n.getAttribute("x2")),r=Number(n.getAttribute("y2"));return Math.hypot(t-A,r-e)}if(n instanceof SVGCircleElement){const A=Number(n.getAttribute("r"));return 2*Math.PI*A}if(n instanceof SVGEllipseElement){const A=Number(n.getAttribute("rx")),e=Number(n.getAttribute("ry"));return Math.PI*(3*(A+e)-Math.sqrt((3*A+e)*(A+3*e)))}if(n instanceof SVGRectElement){const A=Number(n.getAttribute("width")),e=Number(n.getAttribute("height"));return 2*(A+e)}return 100}function Xs(n){n.style.strokeDasharray="",n.style.strokeDashoffset="",n.style.transition="",n.removeAttribute("stroke-dasharray"),n.removeAttribute("stroke-dashoffset")}function Yn(n,A){if(A<=0)return Xs(n),Promise.resolve();n instanceof SVGLineElement&&(n.style.vectorEffect="none");const e=Math.max(1,zl(n));return n.setAttribute("stroke-dasharray",String(e)),n.setAttribute("stroke-dashoffset",String(e)),n.getBoundingClientRect(),new Promise(t=>{requestAnimationFrame(()=>{n.style.transition=`stroke-dashoffset ${A}ms ease-out`,n.setAttribute("stroke-dashoffset","0"),setTimeout(()=>{Xs(n),t()},A+30)})})}function zn(n){return new Promise(A=>setTimeout(A,n))}const De=4,Jn=750,Ws=90,Jl="2147483647";let js=!1;function Xl(){if(js||typeof document>"u")return;js=!0;const n=document.createElement("style");n.id="vnr-screen-overlay-styles",n.textContent=`
2429
2429
  @keyframes vnr-screen-ripple {
2430
2430
  0% { transform: translate(-50%, -50%) scale(0.35); opacity: 0.95; }
2431
2431
  100% { transform: translate(-50%, -50%) scale(2.4); opacity: 0; }
@@ -2437,7 +2437,7 @@ overflow: hidden;
2437
2437
  .vnr-screen-overlay-root {
2438
2438
  position: fixed;
2439
2439
  inset: 0;
2440
- z-index: ${Nl};
2440
+ z-index: ${Jl};
2441
2441
  pointer-events: none;
2442
2442
  overflow: hidden;
2443
2443
  }
@@ -2505,21 +2505,21 @@ overflow: hidden;
2505
2505
  white-space: nowrap;
2506
2506
  pointer-events: none;
2507
2507
  }
2508
- `,document.head.appendChild(n)}function q(n,A){const e=Number(n);return Number.isFinite(e)?e:A}function X(n,A=""){return typeof n=="string"?n:A}function pA(n){if(n===!0||n===1)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="true"||A==="1"||A==="yes"}return!1}function Xs(n){if(n===!1||n===0)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="false"||A==="0"||A==="no"}return!1}function yA(n,A){return n>=0&&n<=1?n*A:n}function $A(n,A){const e=window.innerWidth,t=window.innerHeight;return{px:yA(n,e),py:yA(A,t)}}function zn(n){const A=document.querySelector(n);if(!A)return null;const e=A.getBoundingClientRect();return{px:e.left+e.width/2,py:e.top+e.height/2}}function Rl(n){const A=X(n.css_selector||n.selector);if(A){const r=zn(A);if(r)return r}const e=n.x??n.client_x,t=n.y??n.client_y;return e==null||t==null?null:$A(q(e,NaN),q(t,NaN))}function Ws(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const t=JSON.parse(A);if(Array.isArray(t))return t.length>0&&Array.isArray(t[0])?[{points:t,close:!0}]:t}catch{}const e=A.split(/\s+/).map(t=>{const[r,s]=t.split(","),i=Number(r),o=Number(s);return Number.isFinite(i)&&Number.isFinite(o)?[i,o]:null}).filter(t=>t!=null);if(e.length>=2)return[{points:e,close:!0}]}return[]}function Gl(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const e=JSON.parse(A);return Array.isArray(e)?e:[]}catch{return[]}}return[]}function Jn(n,A){const e=X(n,A).trim().toLowerCase();return!e||e==="#000"||e==="#000000"||e==="black"?"#ece6d9":X(n,A)}function js(n,A){if(!n||typeof n!="object")return null;const e=n,t=X(e.text??e.label??e.annotation??(typeof e.annotations=="string"?e.annotations:"")).trim();if(!t)return null;let r=e.x??e.client_x,s=e.y??e.client_y;if((r==null||s==null)&&Array.isArray(e.points)&&e.points.length>0){const a=Xn(e.points[0]);if(a){const l=window.innerWidth,c=window.innerHeight;r=a.px/l,s=a.py/c}}if(r==null||s==null)return null;const i=Number(r),o=Number(s);return!Number.isFinite(i)||!Number.isFinite(o)?null:{x:i,y:o,text:t,color:Jn(e.color,A),font_size:e.font_size!=null?q(e.font_size,18):void 0}}function Vl(n,A){if(!n||typeof n!="object")return null;const e=n;return e.text!=null||e.label!=null||e.annotation!=null||typeof e.annotations=="string"?js(n,A):null}function _l(n){return Array.isArray(n)&&n.length>0&&Array.isArray(n[0])?{points:n,close:!0}:n}function Yl(n){return yA(n,Math.min(window.innerWidth,window.innerHeight))}function zl(n){if(n.length<2)return null;const A=window.innerWidth,e=window.innerHeight,t=n.map(l=>l.px),r=n.map(l=>l.py),s=(Math.min(...t)+Math.max(...t))/2,i=(Math.min(...r)+Math.max(...r))/2,o=Math.max(...n.map(l=>Math.hypot(l.px-s,l.py-i))),a=Math.min(A,e);return{cx:s/A,cy:i/e,r:o/a}}function Jl(n,A,e,t){const r=X(n.kind||n.shape).toLowerCase(),s=r==="circle"||r==="ellipse"||n.r!=null||n.radius!=null||n.rx!=null||n.ry!=null;let i=n.cx??n.center_x??n.x,o=n.cy??n.center_y??n.y,a=n.r??n.radius;const l=n.rx,c=n.ry;if(Array.isArray(t)&&t.length>=3){const g=[];for(const f of t){const m=Xn(f);m&&g.push(m)}const B=zl(g);B&&(s||pA(n.close)&&g.length>=8)&&(i=i??B.cx,o=o??B.cy,a=a??B.r)}if(i==null||o==null)return null;const d=Number(i),h=Number(o);if(!Number.isFinite(d)||!Number.isFinite(h))return null;const u={kind:r==="ellipse"||l!=null||c!=null?"ellipse":"circle",cx:d,cy:h,color:X(n.color,A),stroke_width:n.stroke_width!=null?q(n.stroke_width,e):e};return l!=null||c!=null?(u.rx=Number(l??c),u.ry=Number(c??l),u):a!=null&&Number.isFinite(Number(a))?(u.r=Number(a),u):null}function Zs(n,A,e){if(!n||typeof n!="object")return null;const t=n,r=X(t.path_d||t.path||t.d),s=X(t.color,A),i=t.stroke_width!=null?q(t.stroke_width,e):e;if(r)return{path_d:r,close:pA(t.close),color:s,stroke_width:i,css_selector:X(t.css_selector)||void 0};const o=X(t.css_selector||t.selector),a=t.points,l=Jl(t,A,e,a);if(l)return l;if(o&&!Array.isArray(a))return{css_selector:o,color:s,stroke_width:i};let c=a;if(!Array.isArray(c)){const d=t.from_x,h=t.from_y,u=t.to_x,g=t.to_y;d!=null&&h!=null&&u!=null&&g!=null&&(c=[[d,h],[u,g]])}if(Array.isArray(c)&&c.length>=2){const d=X(t.kind),h=pA(t.close)||d==="triangle"||d==="polygon";return{points:c,close:h,color:s,stroke_width:i,css_selector:o||void 0}}return o?{css_selector:o,color:s,stroke_width:i}:null}function Xn(n){if(Array.isArray(n)&&n.length>=2){const A=Number(n[0]),e=Number(n[1]);return!Number.isFinite(A)||!Number.isFinite(e)?null:$A(A,e)}if(n&&typeof n=="object"&&"x"in n&&"y"in n){const A=Number(n.x),e=Number(n.y);return!Number.isFinite(A)||!Number.isFinite(e)?null:$A(A,e)}return null}function Xl(n){const A=n.points;if(!Array.isArray(A))return[];const e=[];for(const t of A){const r=Xn(t);r&&e.push(r)}return e}function Pe(n,A){return{class:"vnr-screen-ink-stroke",fill:"none",stroke:n,"stroke-width":String(A),"stroke-linecap":"round","stroke-linejoin":"round"}}function Ke(n,A){for(const[e,t]of Object.entries(A))n.setAttribute(e,t)}function Wl(n,A){if(n.length===0)return"";const e=n.map((t,r)=>`${r===0?"M":"L"} ${t.px} ${t.py}`).join(" ");return A&&n.length>=3?`${e} Z`:e}function jl(n){return`<svg class="vnr-screen-cursor" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2508
+ `,document.head.appendChild(n)}function q(n,A){const e=Number(n);return Number.isFinite(e)?e:A}function X(n,A=""){return typeof n=="string"?n:A}function pA(n){if(n===!0||n===1)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="true"||A==="1"||A==="yes"}return!1}function Zs(n){if(n===!1||n===0)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="false"||A==="0"||A==="no"}return!1}function yA(n,A){return n>=0&&n<=1?n*A:n}function $A(n,A){const e=window.innerWidth,t=window.innerHeight;return{px:yA(n,e),py:yA(A,t)}}function Xn(n){const A=document.querySelector(n);if(!A)return null;const e=A.getBoundingClientRect();return{px:e.left+e.width/2,py:e.top+e.height/2}}function Wl(n){const A=X(n.css_selector||n.selector);if(A){const r=Xn(A);if(r)return r}const e=n.x??n.client_x,t=n.y??n.client_y;return e==null||t==null?null:$A(q(e,NaN),q(t,NaN))}function qs(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const t=JSON.parse(A);if(Array.isArray(t))return t.length>0&&Array.isArray(t[0])?[{points:t,close:!0}]:t}catch{}const e=A.split(/\s+/).map(t=>{const[r,s]=t.split(","),i=Number(r),o=Number(s);return Number.isFinite(i)&&Number.isFinite(o)?[i,o]:null}).filter(t=>t!=null);if(e.length>=2)return[{points:e,close:!0}]}return[]}function jl(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const e=JSON.parse(A);return Array.isArray(e)?e:[]}catch{return[]}}return[]}function Wn(n,A){const e=X(n,A).trim().toLowerCase();return!e||e==="#000"||e==="#000000"||e==="black"?"#ece6d9":X(n,A)}function $s(n,A){if(!n||typeof n!="object")return null;const e=n,t=X(e.text??e.label??e.annotation??(typeof e.annotations=="string"?e.annotations:"")).trim();if(!t)return null;let r=e.x??e.client_x,s=e.y??e.client_y;if((r==null||s==null)&&Array.isArray(e.points)&&e.points.length>0){const a=jn(e.points[0]);if(a){const l=window.innerWidth,d=window.innerHeight;r=a.px/l,s=a.py/d}}if(r==null||s==null)return null;const i=Number(r),o=Number(s);return!Number.isFinite(i)||!Number.isFinite(o)?null:{x:i,y:o,text:t,color:Wn(e.color,A),font_size:e.font_size!=null?q(e.font_size,18):void 0}}function Zl(n,A){if(!n||typeof n!="object")return null;const e=n;return e.text!=null||e.label!=null||e.annotation!=null||typeof e.annotations=="string"?$s(n,A):null}function ql(n){return Array.isArray(n)&&n.length>0&&Array.isArray(n[0])?{points:n,close:!0}:n}function $l(n){return yA(n,Math.min(window.innerWidth,window.innerHeight))}function Ac(n){if(n.length<2)return null;const A=window.innerWidth,e=window.innerHeight,t=n.map(l=>l.px),r=n.map(l=>l.py),s=(Math.min(...t)+Math.max(...t))/2,i=(Math.min(...r)+Math.max(...r))/2,o=Math.max(...n.map(l=>Math.hypot(l.px-s,l.py-i))),a=Math.min(A,e);return{cx:s/A,cy:i/e,r:o/a}}function ec(n,A,e,t){const r=X(n.kind||n.shape).toLowerCase(),s=r==="circle"||r==="ellipse"||n.r!=null||n.radius!=null||n.rx!=null||n.ry!=null;let i=n.cx??n.center_x??n.x,o=n.cy??n.center_y??n.y,a=n.r??n.radius;const l=n.rx,d=n.ry;if(Array.isArray(t)&&t.length>=3){const g=[];for(const f of t){const m=jn(f);m&&g.push(m)}const B=Ac(g);B&&(s||pA(n.close)&&g.length>=8)&&(i=i??B.cx,o=o??B.cy,a=a??B.r)}if(i==null||o==null)return null;const c=Number(i),h=Number(o);if(!Number.isFinite(c)||!Number.isFinite(h))return null;const u={kind:r==="ellipse"||l!=null||d!=null?"ellipse":"circle",cx:c,cy:h,color:X(n.color,A),stroke_width:n.stroke_width!=null?q(n.stroke_width,e):e};return l!=null||d!=null?(u.rx=Number(l??d),u.ry=Number(d??l),u):a!=null&&Number.isFinite(Number(a))?(u.r=Number(a),u):null}function Ai(n,A,e){if(!n||typeof n!="object")return null;const t=n,r=X(t.path_d||t.path||t.d),s=X(t.color,A),i=t.stroke_width!=null?q(t.stroke_width,e):e;if(r)return{path_d:r,close:pA(t.close),color:s,stroke_width:i,css_selector:X(t.css_selector)||void 0};const o=X(t.css_selector||t.selector),a=t.points,l=ec(t,A,e,a);if(l)return l;if(o&&!Array.isArray(a))return{css_selector:o,color:s,stroke_width:i};let d=a;if(!Array.isArray(d)){const c=t.from_x,h=t.from_y,u=t.to_x,g=t.to_y;c!=null&&h!=null&&u!=null&&g!=null&&(d=[[c,h],[u,g]])}if(Array.isArray(d)&&d.length>=2){const c=X(t.kind),h=pA(t.close)||c==="triangle"||c==="polygon";return{points:d,close:h,color:s,stroke_width:i,css_selector:o||void 0}}return o?{css_selector:o,color:s,stroke_width:i}:null}function jn(n){if(Array.isArray(n)&&n.length>=2){const A=Number(n[0]),e=Number(n[1]);return!Number.isFinite(A)||!Number.isFinite(e)?null:$A(A,e)}if(n&&typeof n=="object"&&"x"in n&&"y"in n){const A=Number(n.x),e=Number(n.y);return!Number.isFinite(A)||!Number.isFinite(e)?null:$A(A,e)}return null}function tc(n){const A=n.points;if(!Array.isArray(A))return[];const e=[];for(const t of A){const r=jn(t);r&&e.push(r)}return e}function Pe(n,A){return{class:"vnr-screen-ink-stroke",fill:"none",stroke:n,"stroke-width":String(A),"stroke-linecap":"round","stroke-linejoin":"round"}}function Ke(n,A){for(const[e,t]of Object.entries(A))n.setAttribute(e,t)}function nc(n,A){if(n.length===0)return"";const e=n.map((t,r)=>`${r===0?"M":"L"} ${t.px} ${t.py}`).join(" ");return A&&n.length>=3?`${e} Z`:e}function rc(n){return`<svg class="vnr-screen-cursor" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2509
2509
  <path d="M4 4L4 19L9 14L13 20L15 19L11 13L17 13L4 4Z" fill="${n}" stroke="#fff" stroke-width="1.2"/>
2510
- </svg>`}class Zl{constructor(){p(this,"root",null);p(this,"inkSvg",null);p(this,"labelsLayer",null);p(this,"cursorEl",null);p(this,"cursorTimer",null);p(this,"lastCursorPoint",null);p(this,"flyFrameId",null);p(this,"userDrawActive",!1);p(this,"userDrawColor","#f97316");p(this,"userStrokeWidth",De);p(this,"userDrawPath",null);p(this,"userDrawPoints",[]);p(this,"userDrawBound",!1);p(this,"userDrawLayer",null);p(this,"onUserPointerDown",A=>this.handleUserPointerDown(A));p(this,"onUserPointerMove",A=>this.handleUserPointerMove(A));p(this,"onUserPointerUp",A=>this.handleUserPointerUp(A))}ensureRoot(){var A;return Ol(),(A=this.root)!=null&&A.isConnected?this.root:(this.root=document.createElement("div"),this.root.className="vnr-screen-overlay-root",this.root.setAttribute("aria-hidden","true"),document.body.appendChild(this.root),this.root)}clear(){this.disableUserDrawing(),this.cursorTimer&&(clearTimeout(this.cursorTimer),this.cursorTimer=null),this.root&&(this.root.remove(),this.root=null),this.inkSvg=null,this.cursorEl=null,this.labelsLayer=null}clearInk(){this.inkSvg&&(this.inkSvg.remove(),this.inkSvg=null),this.labelsLayer&&(this.labelsLayer.remove(),this.labelsLayer=null)}addTextLabels(A,e="#ece6d9"){var s;if(A.length===0)return 0;const t=this.ensureRoot();(s=this.labelsLayer)!=null&&s.isConnected||(this.labelsLayer=document.createElement("div"),this.labelsLayer.className="vnr-screen-labels-layer",t.appendChild(this.labelsLayer));const r=this.labelsLayer;for(const i of A){const o=$A(i.x,i.y),a=document.createElement("div");a.className="vnr-screen-ink-label",a.textContent=i.text;const l=Jn(i.color,e),c=i.font_size??20;a.style.cssText=`left:${o.px}px;top:${o.py}px;color:${l};font-size:${c}px;`,r.appendChild(a)}return A.length}hideCursor(){this.cancelFly(),this.cursorTimer&&(clearTimeout(this.cursorTimer),this.cursorTimer=null),this.cursorEl&&(this.cursorEl.remove(),this.cursorEl=null)}getLastCursorPoint(){return this.lastCursorPoint}cancelFly(){this.flyFrameId!=null&&(cancelAnimationFrame(this.flyFrameId),this.flyFrameId=null)}defaultFlyStart(){if(this.lastCursorPoint)return this.lastCursorPoint;const A=window.innerWidth,e=window.innerHeight;return{px:A*.82,py:e*.86}}placeCursorWrap(A,e,t,r){if(A.style.cssText=`position:absolute;left:${e.px}px;top:${e.py}px;`,A.innerHTML=jl(t),r){const s=document.createElement("div");s.className="vnr-screen-cursor-label",s.style.background=t,s.textContent=r,A.appendChild(s)}}async flyCursorTo(A,e={}){this.cancelFly(),this.cursorTimer&&(clearTimeout(this.cursorTimer),this.cursorTimer=null);const t=e.from??this.defaultFlyStart(),r=X(e.color,"#f97316"),s=q(e.fly_duration_ms,680),i=this.ensureRoot();this.hideCursor();const o=document.createElement("div");this.placeCursorWrap(o,t,r);const a=o.querySelector(".vnr-screen-cursor");a&&a.classList.add("vnr-screen-cursor-flying"),i.appendChild(o),this.cursorEl=o;const l=Math.max(72,Math.abs(t.py-A.py)*.38),c={px:(t.px+A.px)/2,py:Math.min(t.py,A.py)-l};await new Promise(u=>{const g=performance.now(),B=f=>{const m=Math.min(1,(f-g)/s),w=m<.5?2*m*m:1-Math.pow(-2*m+2,2)/2,v=1-w,C=v*v*t.px+2*v*w*c.px+w*w*A.px,y=v*v*t.py+2*v*w*c.py+w*w*A.py;o.style.left=`${C}px`,o.style.top=`${y}px`;const Q=A.px-C,x=A.py-y;if(a&&Math.hypot(Q,x)>6){const F=Math.atan2(x,Q)*180/Math.PI;a.style.transform=`rotate(${F-45}deg)`,a.style.transformOrigin="2px 2px"}m<1?this.flyFrameId=requestAnimationFrame(B):(o.style.left=`${A.px}px`,o.style.top=`${A.py}px`,this.flyFrameId=null,u())};this.flyFrameId=requestAnimationFrame(B)}),a&&a.classList.remove("vnr-screen-cursor-flying");const d=X(e.label);if(d){let u=o.querySelector(".vnr-screen-cursor-label");u||(u=document.createElement("div"),u.className="vnr-screen-cursor-label",o.appendChild(u)),u.style.background=r,u.textContent=d}this.lastCursorPoint=A;const h=q(e.duration_ms,0);return h>0&&(this.cursorTimer=setTimeout(()=>this.hideCursor(),h)),A}async outlineSelectors(A,e="#f97316",t={}){const r=A.map(s=>({css_selector:s,close:!0,color:e})).filter(s=>!!s.css_selector);return r.length===0?0:this.addStrokes(r,e,{animate:t.animate!==!1,duration_ms:t.duration_ms??600,gap_ms:t.gap_ms??60,stroke_width:t.stroke_width??De})}syncInkSvgViewport(A){const e=window.innerWidth,t=window.innerHeight;A.setAttribute("width",String(e)),A.setAttribute("height",String(t)),A.setAttribute("viewBox",`0 0 ${e} ${t}`)}ensureInkSvg(){var t;const A=this.ensureRoot();if((t=this.inkSvg)!=null&&t.isConnected)return this.syncInkSvgViewport(this.inkSvg),this.inkSvg;const e=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.setAttribute("class","vnr-screen-ink-svg"),e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("preserveAspectRatio","none"),this.syncInkSvgViewport(e),A.appendChild(e),this.inkSvg=e,e}createCircleElement(A,e,t){if(A.cx==null||A.cy==null)return null;const r=window.innerWidth,s=window.innerHeight,i=yA(A.cx,r),o=yA(A.cy,s),a="http://www.w3.org/2000/svg";if(A.kind==="ellipse"||A.rx!=null||A.ry!=null){const c=A.rx??A.r,d=A.ry??A.r;if(c==null||d==null)return null;const h=document.createElementNS(a,"ellipse");return h.setAttribute("cx",String(i)),h.setAttribute("cy",String(o)),h.setAttribute("rx",String(yA(Number(c),r))),h.setAttribute("ry",String(yA(Number(d),s))),Ke(h,Pe(e,t)),h}if(A.r==null)return null;const l=document.createElementNS(a,"circle");return l.setAttribute("cx",String(i)),l.setAttribute("cy",String(o)),l.setAttribute("r",String(Yl(Number(A.r)))),Ke(l,Pe(e,t)),l}createFreeformElement(A,e,t){const r=X(A.color,e),s=A.stroke_width!=null?q(A.stroke_width,t):t;if(A.kind==="circle"||A.kind==="ellipse"||A.r!=null||A.rx!=null||A.ry!=null)return this.createCircleElement(A,r,s);const o=document.createElementNS("http://www.w3.org/2000/svg","path"),a=X(A.path_d);if(a)return o.setAttribute("d",a),Ke(o,Pe(r,s)),o;let l=A;if(A.css_selector){const d=Ns(A.css_selector,r);d&&(l={...A,points:d.points,close:d.close,color:d.color})}const c=Xl(l);return c.length<2?null:(o.setAttribute("d",Wl(c,pA(l.close))),Ke(o,Pe(r,s)),o)}async addStrokes(A,e="#f97316",t={}){const r=this.ensureInkSvg(),s=t.animate!==!1,i=t.duration_ms??Yn,o=t.gap_ms??zs,a=t.stroke_width??De;let l=0;for(const c of A){const d=this.createFreeformElement(c,e,a);d&&(r.appendChild(d),l+=1,s&&await Vn(d,i),s&&o>0&&await _n(o))}return l}async addInk(A,e,t){return this.addStrokes(A,e,t)}enableUserDrawing(A){const e=this.ensureRoot();if(this.userDrawActive=!0,this.userDrawColor=X(A==null?void 0:A.color,"#f97316"),this.userStrokeWidth=q(A==null?void 0:A.stroke_width,De),A!=null&&A.region){const t=window.innerWidth,r=window.innerHeight,s=A.region,i=yA(s.x,t),o=yA(s.y,r),a=yA(s.width,t),l=yA(s.height,r),c=document.createElement("div");c.className="vnr-screen-user-draw-layer",c.style.cssText=`position:fixed;left:${i}px;top:${o}px;width:${a}px;height:${l}px;pointer-events:auto;cursor:crosshair;touch-action:none;z-index:1;`,e.appendChild(c),this.userDrawLayer=c,this.bindUserDrawEvents(c)}else e.classList.add("vnr-screen-overlay-interactive"),this.bindUserDrawEvents(e)}bindUserDrawEvents(A){this.userDrawBound||(A.addEventListener("pointerdown",this.onUserPointerDown),A.addEventListener("pointermove",this.onUserPointerMove),A.addEventListener("pointerup",this.onUserPointerUp),A.addEventListener("pointercancel",this.onUserPointerUp),this.userDrawBound=!0)}unbindUserDrawEvents(A){!A||!this.userDrawBound||(A.removeEventListener("pointerdown",this.onUserPointerDown),A.removeEventListener("pointermove",this.onUserPointerMove),A.removeEventListener("pointerup",this.onUserPointerUp),A.removeEventListener("pointercancel",this.onUserPointerUp),this.userDrawBound=!1)}disableUserDrawing(){this.userDrawActive=!1,this.userDrawPath=null,this.userDrawPoints=[],this.userDrawLayer?(this.unbindUserDrawEvents(this.userDrawLayer),this.userDrawLayer.remove(),this.userDrawLayer=null):this.root&&(this.unbindUserDrawEvents(this.root),this.root.classList.remove("vnr-screen-overlay-interactive"))}handleUserPointerDown(A){if(!this.userDrawActive||A.button!==0)return;A.preventDefault(),A.stopPropagation();const e=A.currentTarget??this.root;e==null||e.setPointerCapture(A.pointerId);const t=this.ensureInkSvg(),r=document.createElementNS("http://www.w3.org/2000/svg","path");Ke(r,Pe(this.userDrawColor,this.userStrokeWidth)),this.userDrawPath=r,this.userDrawPoints=[`M ${A.clientX} ${A.clientY}`],r.setAttribute("d",this.userDrawPoints.join(" ")),t.appendChild(r)}handleUserPointerMove(A){!this.userDrawActive||!this.userDrawPath||(A.preventDefault(),this.userDrawPoints.push(`L ${A.clientX} ${A.clientY}`),this.userDrawPath.setAttribute("d",this.userDrawPoints.join(" ")))}async handleUserPointerUp(A){var t;if(!this.userDrawPath)return;A.preventDefault();const e=this.userDrawPath;this.userDrawPath=null,this.userDrawPoints=[];try{(t=A.currentTarget)==null||t.releasePointerCapture(A.pointerId)}catch{}await Vn(e,Yn)}showCursor(A,e="#f97316"){const t=A,r=Rl(t);if(!r)return null;const s=X(A.color,e),i=X(A.label)||void 0;if(pA(A.fly)||pA(t.fly))return this.flyCursorTo(r,{color:s,label:i,fly_duration_ms:q(A.fly_duration_ms??t.fly_duration_ms,680),duration_ms:q(A.duration_ms,0)}),r;this.hideCursor();const a=this.ensureRoot(),l=document.createElement("div");this.placeCursorWrap(l,r,s,i),a.appendChild(l),this.cursorEl=l,this.lastCursorPoint=r;const c=q(A.duration_ms,2500);return c>0&&(this.cursorTimer=setTimeout(()=>this.hideCursor(),c)),r}showClickRipple(A,e,t="#f97316"){const r=this.ensureRoot(),s=document.createElement("div");s.className="vnr-screen-click-ripple",s.style.cssText=`left:${A}px;top:${e}px;color:${t};`,r.appendChild(s),setTimeout(()=>s.remove(),700)}async applyInkFromArgs(A,e){const t=X(A.color||e.color,"#f97316"),r=Jn(A.label_color??e.label_color,"#ece6d9"),s=pA(A.clear)||pA(A.clear_before)||pA(e.clear_before),i=!Xs(A.animate)&&!Xs(e.animate),o=q(A.duration_ms??e.duration_ms,Yn),a=q(A.gap_ms??e.gap_ms,zs),l=q(A.stroke_width??e.stroke_width,De),c=pA(A.interactive)||pA(A.user_draw)||pA(e.interactive),d=A.interactive_region??e.interactive_region;let h;if(d&&typeof d=="object"){const w=d;h={x:q(w.x,0),y:q(w.y,0),width:q(w.width??w.w,1),height:q(w.height??w.h,1)}}const u=[];for(const w of Gl(A.labels??e.labels)){const v=js(w,r);v&&u.push(v)}let g=Ws(A.strokes??e.strokes);g.length===0&&(g=Ws(A.annotations??e.annotations));const B=[];for(const w of g){const v=_l(w),C=Vl(v,r);if(C){u.push(C);continue}const y=Zs(v,t,l);y&&B.push(y)}if(B.length===0){const w=X(A.css_selector??A.selector??e.css_selector??e.selector);if(w){const v=Ns(w,t);v&&B.push({css_selector:w,...v,stroke_width:l})}}if(B.length===0){const w=Zs({kind:A.kind??A.shape??e.kind,cx:A.cx??A.center_x??e.cx,cy:A.cy??A.center_y??e.cy,r:A.r??A.radius??e.r,rx:A.rx??e.rx,ry:A.ry??e.ry,points:A.points??e.points,path_d:A.path_d??A.path??A.d??e.path_d??e.path,close:A.close??e.close,css_selector:A.css_selector??A.selector??e.css_selector??e.selector,from_x:A.from_x??e.from_x,from_y:A.from_y??e.from_y,to_x:A.to_x??e.to_x,to_y:A.to_y??e.to_y,color:t,stroke_width:l},t,l);w&&B.push(w)}s&&this.clearInk();let f=0;B.length>0&&(f=await this.addStrokes(B,t,{animate:i,duration_ms:o,gap_ms:a,stroke_width:l}));const m=this.addTextLabels(u,r);return c&&this.enableUserDrawing({color:t,stroke_width:l,region:h}),{strokes:f,labels:m}}}let ue=null;function Ne(){return ue||(ue=new Zl),ue}function Wn(){ue==null||ue.clear()}function ql(n,A){const e=document.elementsFromPoint(n,A);for(const t of e)if(t instanceof HTMLElement&&!t.closest(".vnr-screen-overlay-root"))return t;return null}function $l(n){try{n.focus({preventScroll:!0})}catch{}const A=n.tagName.toLowerCase(),e=A==="input"?n.type.toLowerCase():"";if((A==="button"||A==="a"||["submit","button","checkbox","radio","reset"].includes(e))&&typeof n.click=="function"){n.click();return}const r={bubbles:!0,cancelable:!0,view:window,button:0,buttons:1};n.dispatchEvent(new MouseEvent("mousedown",r)),n.dispatchEvent(new MouseEvent("mouseup",r)),n.dispatchEvent(new MouseEvent("click",r))}const jn=new Map,Zn=new Map;function Oe(n,A=""){return typeof n=="string"?n:A}function Ac(n){jn.clear(),Zn.clear();for(const A of n.elements)A.element_id&&jn.set(A.element_id,A),Zn.set(A.css_selector,A)}function ec(n){return jn.get(n.trim())}function tc(n,A=48){return n.elements.slice(0,A).map(e=>{var i;const t=e.element_id??"?",r=e.label.slice(0,56).replace(/\s+/g," ");let s=`${t} ${e.kind} "${r}" center=(${e.center_x.toFixed(3)},${e.center_y.toFixed(3)}) sel=${e.css_selector}`;if((i=e.stroke_points)!=null&&i.length){const o=e.stroke_points.map(a=>[Number(a.x.toFixed(3)),Number(a.y.toFixed(3))]);s+=` stroke_points=${JSON.stringify(o)}`}return s}).join(`
2511
- `)}function nc(n){if(n.length===0)return null;let A=0,e=0;for(const s of n)A+=s.x,e+=s.y;const t=A/n.length,r=e/n.length;return $A(t,r)}function xt(n,A={}){var i;const e=Oe(n.element_id??n.target??n.element??A.element_id??A.target).trim();if(e){const o=ec(e);if(o){const a=(i=o.stroke_points)!=null&&i.length?nc(o.stroke_points):null,l=a?null:zn(o.css_selector),c=a??l??$A(o.center_x,o.center_y);return{element_id:o.element_id,css_selector:o.css_selector,point:c,label:Oe(n.label,o.label),kind:o.kind}}}const t=Oe(n.css_selector??n.selector??A.css_selector??A.selector).trim();if(t){const o=zn(t);if(o){const a=Zn.get(t);return{css_selector:t,point:o,label:Oe(n.label,(a==null?void 0:a.label)??""),element_id:a==null?void 0:a.element_id,kind:a==null?void 0:a.kind}}}const r=n.x??n.client_x??A.x,s=n.y??n.client_y??A.y;if(r!=null&&s!=null){const o=Number(r),a=Number(s);if(Number.isFinite(o)&&Number.isFinite(a))return{point:$A(o,a),label:Oe(n.label)}}return null}function rc(n,A={}){const e=n.targets??n.element_ids??n.elements??A.targets??A.element_ids;if(Array.isArray(e)){const r=[];for(const s of e)if(typeof s=="string"){const i=xt({element_id:s},A);i&&r.push(i)}else if(s&&typeof s=="object"){const i=xt(s,A);i&&r.push(i)}if(r.length>0)return r}const t=xt(n,A);return t?[t]:[]}function Re(n,A=""){return typeof n=="string"?n:A}function ge(n,A=!0){if(n==null)return A;if(n===!0||n===1)return!0;if(n===!1||n===0)return!1;const e=String(n).trim().toLowerCase();return e==="true"||e==="1"||e==="yes"?!0:e==="false"||e==="0"||e==="no"?!1:A}function sc(n,A,e,t){const r=n.args??{},s=n.clientFields??{},i=Re(r.prompt??r.message??s.default_prompt).trim(),o=Number(r.max_elements??s.max_elements??64),a=ge(r.include_image??s.include_image,!1),l=Number(r.max_width??s.max_width??1280),c=Re(r.reason??s.reason,"page_scan");if(typeof document>"u"){e("Page scan is only available in browser environments");return}(async()=>{try{const d=_s({maxElements:Number.isFinite(o)?o:64});Ac(d);const h=tc(d),g=`${i?`Page scanned. Context: ${i}`:"Visible page scanned — use element ids below for point_at and outline_targets."}
2510
+ </svg>`}class sc{constructor(){p(this,"root",null);p(this,"inkSvg",null);p(this,"labelsLayer",null);p(this,"cursorEl",null);p(this,"cursorTimer",null);p(this,"lastCursorPoint",null);p(this,"flyFrameId",null);p(this,"userDrawActive",!1);p(this,"userDrawColor","#f97316");p(this,"userStrokeWidth",De);p(this,"userDrawPath",null);p(this,"userDrawPoints",[]);p(this,"userDrawBound",!1);p(this,"userDrawLayer",null);p(this,"onUserPointerDown",A=>this.handleUserPointerDown(A));p(this,"onUserPointerMove",A=>this.handleUserPointerMove(A));p(this,"onUserPointerUp",A=>this.handleUserPointerUp(A))}ensureRoot(){var A;return Xl(),(A=this.root)!=null&&A.isConnected?this.root:(this.root=document.createElement("div"),this.root.className="vnr-screen-overlay-root",this.root.setAttribute("aria-hidden","true"),document.body.appendChild(this.root),this.root)}clear(){this.disableUserDrawing(),this.cursorTimer&&(clearTimeout(this.cursorTimer),this.cursorTimer=null),this.root&&(this.root.remove(),this.root=null),this.inkSvg=null,this.cursorEl=null,this.labelsLayer=null}clearInk(){this.inkSvg&&(this.inkSvg.remove(),this.inkSvg=null),this.labelsLayer&&(this.labelsLayer.remove(),this.labelsLayer=null)}addTextLabels(A,e="#ece6d9"){var s;if(A.length===0)return 0;const t=this.ensureRoot();(s=this.labelsLayer)!=null&&s.isConnected||(this.labelsLayer=document.createElement("div"),this.labelsLayer.className="vnr-screen-labels-layer",t.appendChild(this.labelsLayer));const r=this.labelsLayer;for(const i of A){const o=$A(i.x,i.y),a=document.createElement("div");a.className="vnr-screen-ink-label",a.textContent=i.text;const l=Wn(i.color,e),d=i.font_size??20;a.style.cssText=`left:${o.px}px;top:${o.py}px;color:${l};font-size:${d}px;`,r.appendChild(a)}return A.length}hideCursor(){this.cancelFly(),this.cursorTimer&&(clearTimeout(this.cursorTimer),this.cursorTimer=null),this.cursorEl&&(this.cursorEl.remove(),this.cursorEl=null)}getLastCursorPoint(){return this.lastCursorPoint}cancelFly(){this.flyFrameId!=null&&(cancelAnimationFrame(this.flyFrameId),this.flyFrameId=null)}defaultFlyStart(){if(this.lastCursorPoint)return this.lastCursorPoint;const A=window.innerWidth,e=window.innerHeight;return{px:A*.82,py:e*.86}}placeCursorWrap(A,e,t,r){if(A.style.cssText=`position:absolute;left:${e.px}px;top:${e.py}px;`,A.innerHTML=rc(t),r){const s=document.createElement("div");s.className="vnr-screen-cursor-label",s.style.background=t,s.textContent=r,A.appendChild(s)}}async flyCursorTo(A,e={}){this.cancelFly(),this.cursorTimer&&(clearTimeout(this.cursorTimer),this.cursorTimer=null);const t=e.from??this.defaultFlyStart(),r=X(e.color,"#f97316"),s=q(e.fly_duration_ms,680),i=this.ensureRoot();this.hideCursor();const o=document.createElement("div");this.placeCursorWrap(o,t,r);const a=o.querySelector(".vnr-screen-cursor");a&&a.classList.add("vnr-screen-cursor-flying"),i.appendChild(o),this.cursorEl=o;const l=Math.max(72,Math.abs(t.py-A.py)*.38),d={px:(t.px+A.px)/2,py:Math.min(t.py,A.py)-l};await new Promise(u=>{const g=performance.now(),B=f=>{const m=Math.min(1,(f-g)/s),w=m<.5?2*m*m:1-Math.pow(-2*m+2,2)/2,v=1-w,C=v*v*t.px+2*v*w*d.px+w*w*A.px,y=v*v*t.py+2*v*w*d.py+w*w*A.py;o.style.left=`${C}px`,o.style.top=`${y}px`;const Q=A.px-C,E=A.py-y;if(a&&Math.hypot(Q,E)>6){const F=Math.atan2(E,Q)*180/Math.PI;a.style.transform=`rotate(${F-45}deg)`,a.style.transformOrigin="2px 2px"}m<1?this.flyFrameId=requestAnimationFrame(B):(o.style.left=`${A.px}px`,o.style.top=`${A.py}px`,this.flyFrameId=null,u())};this.flyFrameId=requestAnimationFrame(B)}),a&&a.classList.remove("vnr-screen-cursor-flying");const c=X(e.label);if(c){let u=o.querySelector(".vnr-screen-cursor-label");u||(u=document.createElement("div"),u.className="vnr-screen-cursor-label",o.appendChild(u)),u.style.background=r,u.textContent=c}this.lastCursorPoint=A;const h=q(e.duration_ms,0);return h>0&&(this.cursorTimer=setTimeout(()=>this.hideCursor(),h)),A}async outlineSelectors(A,e="#f97316",t={}){const r=A.map(s=>({css_selector:s,close:!0,color:e})).filter(s=>!!s.css_selector);return r.length===0?0:this.addStrokes(r,e,{animate:t.animate!==!1,duration_ms:t.duration_ms??600,gap_ms:t.gap_ms??60,stroke_width:t.stroke_width??De})}syncInkSvgViewport(A){const e=window.innerWidth,t=window.innerHeight;A.setAttribute("width",String(e)),A.setAttribute("height",String(t)),A.setAttribute("viewBox",`0 0 ${e} ${t}`)}ensureInkSvg(){var t;const A=this.ensureRoot();if((t=this.inkSvg)!=null&&t.isConnected)return this.syncInkSvgViewport(this.inkSvg),this.inkSvg;const e=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.setAttribute("class","vnr-screen-ink-svg"),e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("preserveAspectRatio","none"),this.syncInkSvgViewport(e),A.appendChild(e),this.inkSvg=e,e}createCircleElement(A,e,t){if(A.cx==null||A.cy==null)return null;const r=window.innerWidth,s=window.innerHeight,i=yA(A.cx,r),o=yA(A.cy,s),a="http://www.w3.org/2000/svg";if(A.kind==="ellipse"||A.rx!=null||A.ry!=null){const d=A.rx??A.r,c=A.ry??A.r;if(d==null||c==null)return null;const h=document.createElementNS(a,"ellipse");return h.setAttribute("cx",String(i)),h.setAttribute("cy",String(o)),h.setAttribute("rx",String(yA(Number(d),r))),h.setAttribute("ry",String(yA(Number(c),s))),Ke(h,Pe(e,t)),h}if(A.r==null)return null;const l=document.createElementNS(a,"circle");return l.setAttribute("cx",String(i)),l.setAttribute("cy",String(o)),l.setAttribute("r",String($l(Number(A.r)))),Ke(l,Pe(e,t)),l}createFreeformElement(A,e,t){const r=X(A.color,e),s=A.stroke_width!=null?q(A.stroke_width,t):t;if(A.kind==="circle"||A.kind==="ellipse"||A.r!=null||A.rx!=null||A.ry!=null)return this.createCircleElement(A,r,s);const o=document.createElementNS("http://www.w3.org/2000/svg","path"),a=X(A.path_d);if(a)return o.setAttribute("d",a),Ke(o,Pe(r,s)),o;let l=A;if(A.css_selector){const c=Gs(A.css_selector,r);c&&(l={...A,points:c.points,close:c.close,color:c.color})}const d=tc(l);return d.length<2?null:(o.setAttribute("d",nc(d,pA(l.close))),Ke(o,Pe(r,s)),o)}async addStrokes(A,e="#f97316",t={}){const r=this.ensureInkSvg(),s=t.animate!==!1,i=t.duration_ms??Jn,o=t.gap_ms??Ws,a=t.stroke_width??De;let l=0;for(const d of A){const c=this.createFreeformElement(d,e,a);c&&(r.appendChild(c),l+=1,s&&await Yn(c,i),s&&o>0&&await zn(o))}return l}async addInk(A,e,t){return this.addStrokes(A,e,t)}enableUserDrawing(A){const e=this.ensureRoot();if(this.userDrawActive=!0,this.userDrawColor=X(A==null?void 0:A.color,"#f97316"),this.userStrokeWidth=q(A==null?void 0:A.stroke_width,De),A!=null&&A.region){const t=window.innerWidth,r=window.innerHeight,s=A.region,i=yA(s.x,t),o=yA(s.y,r),a=yA(s.width,t),l=yA(s.height,r),d=document.createElement("div");d.className="vnr-screen-user-draw-layer",d.style.cssText=`position:fixed;left:${i}px;top:${o}px;width:${a}px;height:${l}px;pointer-events:auto;cursor:crosshair;touch-action:none;z-index:1;`,e.appendChild(d),this.userDrawLayer=d,this.bindUserDrawEvents(d)}else e.classList.add("vnr-screen-overlay-interactive"),this.bindUserDrawEvents(e)}bindUserDrawEvents(A){this.userDrawBound||(A.addEventListener("pointerdown",this.onUserPointerDown),A.addEventListener("pointermove",this.onUserPointerMove),A.addEventListener("pointerup",this.onUserPointerUp),A.addEventListener("pointercancel",this.onUserPointerUp),this.userDrawBound=!0)}unbindUserDrawEvents(A){!A||!this.userDrawBound||(A.removeEventListener("pointerdown",this.onUserPointerDown),A.removeEventListener("pointermove",this.onUserPointerMove),A.removeEventListener("pointerup",this.onUserPointerUp),A.removeEventListener("pointercancel",this.onUserPointerUp),this.userDrawBound=!1)}disableUserDrawing(){this.userDrawActive=!1,this.userDrawPath=null,this.userDrawPoints=[],this.userDrawLayer?(this.unbindUserDrawEvents(this.userDrawLayer),this.userDrawLayer.remove(),this.userDrawLayer=null):this.root&&(this.unbindUserDrawEvents(this.root),this.root.classList.remove("vnr-screen-overlay-interactive"))}handleUserPointerDown(A){if(!this.userDrawActive||A.button!==0)return;A.preventDefault(),A.stopPropagation();const e=A.currentTarget??this.root;e==null||e.setPointerCapture(A.pointerId);const t=this.ensureInkSvg(),r=document.createElementNS("http://www.w3.org/2000/svg","path");Ke(r,Pe(this.userDrawColor,this.userStrokeWidth)),this.userDrawPath=r,this.userDrawPoints=[`M ${A.clientX} ${A.clientY}`],r.setAttribute("d",this.userDrawPoints.join(" ")),t.appendChild(r)}handleUserPointerMove(A){!this.userDrawActive||!this.userDrawPath||(A.preventDefault(),this.userDrawPoints.push(`L ${A.clientX} ${A.clientY}`),this.userDrawPath.setAttribute("d",this.userDrawPoints.join(" ")))}async handleUserPointerUp(A){var t;if(!this.userDrawPath)return;A.preventDefault();const e=this.userDrawPath;this.userDrawPath=null,this.userDrawPoints=[];try{(t=A.currentTarget)==null||t.releasePointerCapture(A.pointerId)}catch{}await Yn(e,Jn)}showCursor(A,e="#f97316"){const t=A,r=Wl(t);if(!r)return null;const s=X(A.color,e),i=X(A.label)||void 0;if(pA(A.fly)||pA(t.fly))return this.flyCursorTo(r,{color:s,label:i,fly_duration_ms:q(A.fly_duration_ms??t.fly_duration_ms,680),duration_ms:q(A.duration_ms,0)}),r;this.hideCursor();const a=this.ensureRoot(),l=document.createElement("div");this.placeCursorWrap(l,r,s,i),a.appendChild(l),this.cursorEl=l,this.lastCursorPoint=r;const d=q(A.duration_ms,2500);return d>0&&(this.cursorTimer=setTimeout(()=>this.hideCursor(),d)),r}showClickRipple(A,e,t="#f97316"){const r=this.ensureRoot(),s=document.createElement("div");s.className="vnr-screen-click-ripple",s.style.cssText=`left:${A}px;top:${e}px;color:${t};`,r.appendChild(s),setTimeout(()=>s.remove(),700)}async applyInkFromArgs(A,e){const t=X(A.color||e.color,"#f97316"),r=Wn(A.label_color??e.label_color,"#ece6d9"),s=pA(A.clear)||pA(A.clear_before)||pA(e.clear_before),i=!Zs(A.animate)&&!Zs(e.animate),o=q(A.duration_ms??e.duration_ms,Jn),a=q(A.gap_ms??e.gap_ms,Ws),l=q(A.stroke_width??e.stroke_width,De),d=pA(A.interactive)||pA(A.user_draw)||pA(e.interactive),c=A.interactive_region??e.interactive_region;let h;if(c&&typeof c=="object"){const w=c;h={x:q(w.x,0),y:q(w.y,0),width:q(w.width??w.w,1),height:q(w.height??w.h,1)}}const u=[];for(const w of jl(A.labels??e.labels)){const v=$s(w,r);v&&u.push(v)}let g=qs(A.strokes??e.strokes);g.length===0&&(g=qs(A.annotations??e.annotations));const B=[];for(const w of g){const v=ql(w),C=Zl(v,r);if(C){u.push(C);continue}const y=Ai(v,t,l);y&&B.push(y)}if(B.length===0){const w=X(A.css_selector??A.selector??e.css_selector??e.selector);if(w){const v=Gs(w,t);v&&B.push({css_selector:w,...v,stroke_width:l})}}if(B.length===0){const w=Ai({kind:A.kind??A.shape??e.kind,cx:A.cx??A.center_x??e.cx,cy:A.cy??A.center_y??e.cy,r:A.r??A.radius??e.r,rx:A.rx??e.rx,ry:A.ry??e.ry,points:A.points??e.points,path_d:A.path_d??A.path??A.d??e.path_d??e.path,close:A.close??e.close,css_selector:A.css_selector??A.selector??e.css_selector??e.selector,from_x:A.from_x??e.from_x,from_y:A.from_y??e.from_y,to_x:A.to_x??e.to_x,to_y:A.to_y??e.to_y,color:t,stroke_width:l},t,l);w&&B.push(w)}s&&this.clearInk();let f=0;B.length>0&&(f=await this.addStrokes(B,t,{animate:i,duration_ms:o,gap_ms:a,stroke_width:l}));const m=this.addTextLabels(u,r);return d&&this.enableUserDrawing({color:t,stroke_width:l,region:h}),{strokes:f,labels:m}}}let ue=null;function Ne(){return ue||(ue=new sc),ue}function Zn(){ue==null||ue.clear()}function ic(n,A){const e=document.elementsFromPoint(n,A);for(const t of e)if(t instanceof HTMLElement&&!t.closest(".vnr-screen-overlay-root"))return t;return null}function oc(n){try{n.focus({preventScroll:!0})}catch{}const A=n.tagName.toLowerCase(),e=A==="input"?n.type.toLowerCase():"";if((A==="button"||A==="a"||["submit","button","checkbox","radio","reset"].includes(e))&&typeof n.click=="function"){n.click();return}const r={bubbles:!0,cancelable:!0,view:window,button:0,buttons:1};n.dispatchEvent(new MouseEvent("mousedown",r)),n.dispatchEvent(new MouseEvent("mouseup",r)),n.dispatchEvent(new MouseEvent("click",r))}const qn=new Map,$n=new Map;function Oe(n,A=""){return typeof n=="string"?n:A}function ac(n){qn.clear(),$n.clear();for(const A of n.elements)A.element_id&&qn.set(A.element_id,A),$n.set(A.css_selector,A)}function lc(n){return qn.get(n.trim())}function cc(n,A=48){return n.elements.slice(0,A).map(e=>{var i;const t=e.element_id??"?",r=e.label.slice(0,56).replace(/\s+/g," ");let s=`${t} ${e.kind} "${r}" center=(${e.center_x.toFixed(3)},${e.center_y.toFixed(3)}) sel=${e.css_selector}`;if((i=e.stroke_points)!=null&&i.length){const o=e.stroke_points.map(a=>[Number(a.x.toFixed(3)),Number(a.y.toFixed(3))]);s+=` stroke_points=${JSON.stringify(o)}`}return s}).join(`
2511
+ `)}function dc(n){if(n.length===0)return null;let A=0,e=0;for(const s of n)A+=s.x,e+=s.y;const t=A/n.length,r=e/n.length;return $A(t,r)}function xt(n,A={}){var i;const e=Oe(n.element_id??n.target??n.element??A.element_id??A.target).trim();if(e){const o=lc(e);if(o){const a=(i=o.stroke_points)!=null&&i.length?dc(o.stroke_points):null,l=a?null:Xn(o.css_selector),d=a??l??$A(o.center_x,o.center_y);return{element_id:o.element_id,css_selector:o.css_selector,point:d,label:Oe(n.label,o.label),kind:o.kind}}}const t=Oe(n.css_selector??n.selector??A.css_selector??A.selector).trim();if(t){const o=Xn(t);if(o){const a=$n.get(t);return{css_selector:t,point:o,label:Oe(n.label,(a==null?void 0:a.label)??""),element_id:a==null?void 0:a.element_id,kind:a==null?void 0:a.kind}}}const r=n.x??n.client_x??A.x,s=n.y??n.client_y??A.y;if(r!=null&&s!=null){const o=Number(r),a=Number(s);if(Number.isFinite(o)&&Number.isFinite(a))return{point:$A(o,a),label:Oe(n.label)}}return null}function hc(n,A={}){const e=n.targets??n.element_ids??n.elements??A.targets??A.element_ids;if(Array.isArray(e)){const r=[];for(const s of e)if(typeof s=="string"){const i=xt({element_id:s},A);i&&r.push(i)}else if(s&&typeof s=="object"){const i=xt(s,A);i&&r.push(i)}if(r.length>0)return r}const t=xt(n,A);return t?[t]:[]}function Re(n,A=""){return typeof n=="string"?n:A}function ge(n,A=!0){if(n==null)return A;if(n===!0||n===1)return!0;if(n===!1||n===0)return!1;const e=String(n).trim().toLowerCase();return e==="true"||e==="1"||e==="yes"?!0:e==="false"||e==="0"||e==="no"?!1:A}function uc(n,A,e,t){const r=n.args??{},s=n.clientFields??{},i=Re(r.prompt??r.message??s.default_prompt).trim(),o=Number(r.max_elements??s.max_elements??64),a=ge(r.include_image??s.include_image,!1),l=Number(r.max_width??s.max_width??1280),d=Re(r.reason??s.reason,"page_scan");if(typeof document>"u"){e("Page scan is only available in browser environments");return}(async()=>{try{const c=Js({maxElements:Number.isFinite(o)?o:64});ac(c);const h=cc(c),g=`${i?`Page scanned. Context: ${i}`:"Visible page scanned — use element ids below for point_at and outline_targets."}
2512
2512
 
2513
2513
  DOM-FIRST GUIDE (better than screenshot-only tutors):
2514
2514
  - Call point_at with element_id (e.g. e3) from this scan — cursor flies to the live element.
2515
2515
  - Call outline_targets with element_ids to draw animated outlines on the real DOM.
2516
2516
  - Prefer element_id or css_selector; raw x/y only as fallback.
2517
2517
 
2518
- viewport=${d.viewport.width}x${d.viewport.height} · ${d.elements.length} elements
2519
- coordinate_system=${d.coordinate_system}
2518
+ viewport=${c.viewport.width}x${c.viewport.height} · ${c.elements.length} elements
2519
+ coordinate_system=${c.coordinate_system}
2520
2520
 
2521
2521
  CATALOG (id kind "label" center sel):
2522
- ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count:d.elements.length,catalog:h,elements:d.elements,coordinate_system:d.coordinate_system,message:g,guide:'Next: point_at { element_id: "eN", label: "..." } or outline_targets { targets: ["e1","e5"] }'}),a&&(t!=null&&t.uploadMediaForToolResult)&&(async()=>{try{let B=await Ls();Number.isFinite(l)&&l>0&&(B=Ts(B,l));const f=await Rn(B),m=new File([f],`page-scan-${Date.now()}.jpg`,{type:"image/jpeg"});await t.uploadMediaForToolResult(m,c)}catch{}})()}catch(d){const h=d instanceof Error?d.message:"Page scan failed";e(h,{status:"cancelled"})}})()}function ic(n,A,e){const t=n.args??{},r=n.clientFields??{},s=Re(t.color??r.color,"#f97316"),i=ge(t.fly??r.fly,!0),o=ge(t.outline??r.outline,!0),a=Number(t.fly_duration_ms??r.fly_duration_ms??680),l=Number(t.duration_ms??r.duration_ms??0),c=ge(t.clear_before??r.clear_before,!1),d=xt(t,r);if(!d){e("No valid target — provide element_id from page_scan, css_selector, or x/y");return}const h=Re(t.label,d.label)||void 0,u=Ne();(async()=>(c&&u.clearInk(),o&&d.css_selector&&await u.outlineSelectors([d.css_selector],s,{animate:!0,duration_ms:520,gap_ms:0}),i?await u.flyCursorTo(d.point,{color:s,label:h,fly_duration_ms:a,duration_ms:l}):u.showCursor({x:d.point.px/window.innerWidth,y:d.point.py/window.innerHeight,label:h,color:s,duration_ms:l}),A({status:"success",preset_id:b.PointAt,message:h?`Pointing at: ${h}`:"Cursor placed on target",element_id:d.element_id,css_selector:d.css_selector,x:d.point.px,y:d.point.py,label:h})))()}function oc(n,A,e){const t=n.args??{},r=n.clientFields??{},s=Re(t.color??r.color,"#f97316"),i=ge(t.animate??r.animate,!0),o=Number(t.duration_ms??r.duration_ms??600),a=ge(t.clear_before??r.clear_before,!1),l=rc(t,r);if(l.length===0){e('No valid targets — provide targets: ["e1","e3"] or element_id / css_selector');return}const c=l.map(h=>h.css_selector).filter(h=>!!h);if(c.length===0){e("Targets resolved but no live css_selector — run page_scan first");return}const d=Ne();(async()=>{a&&d.clearInk();const h=await d.outlineSelectors(c,s,{animate:i,duration_ms:o,gap_ms:50});A({status:"success",preset_id:b.OutlineTargets,message:`Outlined ${h} element(s) on the live page`,outlined_count:h,element_ids:l.map(u=>u.element_id).filter(Boolean),selectors:c})})()}function ac(n,A){Wn(),A({status:"success",preset_id:b.ClearGuide,message:"Guide overlay cleared (cursor, ink, outlines)"})}const qs="vanira:agent-playback-ended",lc="You might have missed the whiteboard — call type_on_whiteboard or draw_on_board so the student can see what you explained. if you are on other task or waiting for user to show something then fine";function cc(n){return!!(n.has_notes_on_board||n.has_diagram_geometry)}class dc{constructor(A,e){p(this,"active",!1);p(this,"sendContext",null);p(this,"getSnapshot");p(this,"isBoardBusy");p(this,"onAgentTurnEnd");this.getSnapshot=A,this.isBoardBusy=e,this.onAgentTurnEnd=()=>this.checkAfterAgentTurn()}start(A){if(this.active){this.sendContext=A;return}this.active=!0,this.sendContext=A,window.addEventListener(qs,this.onAgentTurnEnd)}stop(){this.active&&(this.active=!1,this.sendContext=null,window.removeEventListener(qs,this.onAgentTurnEnd))}checkAfterAgentTurn(){if(!this.active||!this.sendContext||this.isBoardBusy())return;const A=this.getSnapshot();if(cc(A))return;const e={board_turn_check:{has_whiteboard:!1,...A,message:lc}};try{this.sendContext(e)}catch{}}}function $s(){var n;if(typeof window>"u")return!1;try{if(window.__VANIRA_DEBUG__===!0||localStorage.getItem("vanira:debug")==="1"||new URLSearchParams(window.location.search).has("vanira_debug"))return!0}catch{}try{if(((n={url:HA&&HA.tagName.toUpperCase()==="SCRIPT"&&HA.src||new URL("vanira-sdk.js",document.baseURI).href}.env)==null?void 0:n.DEV)===!0)return!0}catch{}return!1}let Et=null;function Ai(){return Et===null&&(Et=$s()),Et}function hc(){Et=$s()}function ei(n,A,e){if(!(typeof window>"u"))try{const t=window.__VANIRA_DEBUG_LOG__??[];for(t.push({t:Date.now(),tag:n,message:A,data:e});t.length>250;)t.shift();window.__VANIRA_DEBUG_LOG__=t}catch{}}function BA(n,A,e){Ai()&&ei(n,A,e)}function uc(n,A,e){Ai()&&ei(n,`WARN ${A}`,e)}const OA=800,RA=500,gc="#4A9EFF",Ge=2e3,ti=80;function ni(n){if(!document.getElementById("vnr-board-line-styles")){const e=document.createElement("style");e.id="vnr-board-line-styles",e.textContent=`
2522
+ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:c.viewport,element_count:c.elements.length,catalog:h,elements:c.elements,coordinate_system:c.coordinate_system,message:g,guide:'Next: point_at { element_id: "eN", label: "..." } or outline_targets { targets: ["e1","e5"] }'}),a&&(t!=null&&t.uploadMediaForToolResult)&&(async()=>{try{let B=await ks();Number.isFinite(l)&&l>0&&(B=Ds(B,l));const f=await Vn(B),m=new File([f],`page-scan-${Date.now()}.jpg`,{type:"image/jpeg"});await t.uploadMediaForToolResult(m,d)}catch{}})()}catch(c){const h=c instanceof Error?c.message:"Page scan failed";e(h,{status:"cancelled"})}})()}function gc(n,A,e){const t=n.args??{},r=n.clientFields??{},s=Re(t.color??r.color,"#f97316"),i=ge(t.fly??r.fly,!0),o=ge(t.outline??r.outline,!0),a=Number(t.fly_duration_ms??r.fly_duration_ms??680),l=Number(t.duration_ms??r.duration_ms??0),d=ge(t.clear_before??r.clear_before,!1),c=xt(t,r);if(!c){e("No valid target — provide element_id from page_scan, css_selector, or x/y");return}const h=Re(t.label,c.label)||void 0,u=Ne();(async()=>(d&&u.clearInk(),o&&c.css_selector&&await u.outlineSelectors([c.css_selector],s,{animate:!0,duration_ms:520,gap_ms:0}),i?await u.flyCursorTo(c.point,{color:s,label:h,fly_duration_ms:a,duration_ms:l}):u.showCursor({x:c.point.px/window.innerWidth,y:c.point.py/window.innerHeight,label:h,color:s,duration_ms:l}),A({status:"success",preset_id:b.PointAt,message:h?`Pointing at: ${h}`:"Cursor placed on target",element_id:c.element_id,css_selector:c.css_selector,x:c.point.px,y:c.point.py,label:h})))()}function pc(n,A,e){const t=n.args??{},r=n.clientFields??{},s=Re(t.color??r.color,"#f97316"),i=ge(t.animate??r.animate,!0),o=Number(t.duration_ms??r.duration_ms??600),a=ge(t.clear_before??r.clear_before,!1),l=hc(t,r);if(l.length===0){e('No valid targets — provide targets: ["e1","e3"] or element_id / css_selector');return}const d=l.map(h=>h.css_selector).filter(h=>!!h);if(d.length===0){e("Targets resolved but no live css_selector — run page_scan first");return}const c=Ne();(async()=>{a&&c.clearInk();const h=await c.outlineSelectors(d,s,{animate:i,duration_ms:o,gap_ms:50});A({status:"success",preset_id:b.OutlineTargets,message:`Outlined ${h} element(s) on the live page`,outlined_count:h,element_ids:l.map(u=>u.element_id).filter(Boolean),selectors:d})})()}function Bc(n,A){Zn(),A({status:"success",preset_id:b.ClearGuide,message:"Guide overlay cleared (cursor, ink, outlines)"})}const ei="vanira:agent-playback-ended",fc="You might have missed the whiteboard — call type_on_whiteboard or draw_on_board so the student can see what you explained. if you are on other task or waiting for user to show something then fine";function wc(n){return!!(n.has_notes_on_board||n.has_diagram_geometry)}class mc{constructor(A,e){p(this,"active",!1);p(this,"sendContext",null);p(this,"getSnapshot");p(this,"isBoardBusy");p(this,"onAgentTurnEnd");this.getSnapshot=A,this.isBoardBusy=e,this.onAgentTurnEnd=()=>this.checkAfterAgentTurn()}start(A){if(this.active){this.sendContext=A;return}this.active=!0,this.sendContext=A,window.addEventListener(ei,this.onAgentTurnEnd)}stop(){this.active&&(this.active=!1,this.sendContext=null,window.removeEventListener(ei,this.onAgentTurnEnd))}checkAfterAgentTurn(){if(!this.active||!this.sendContext||this.isBoardBusy())return;const A=this.getSnapshot();if(wc(A))return;const e={board_turn_check:{has_whiteboard:!1,...A,message:fc}};try{this.sendContext(e)}catch{}}}function ti(){var n;if(typeof window>"u")return!1;try{if(window.__VANIRA_DEBUG__===!0||localStorage.getItem("vanira:debug")==="1"||new URLSearchParams(window.location.search).has("vanira_debug"))return!0}catch{}try{if(((n={url:HA&&HA.tagName.toUpperCase()==="SCRIPT"&&HA.src||new URL("vanira-sdk.js",document.baseURI).href}.env)==null?void 0:n.DEV)===!0)return!0}catch{}return!1}let Et=null;function ni(){return Et===null&&(Et=ti()),Et}function Cc(){Et=ti()}function ri(n,A,e){if(!(typeof window>"u"))try{const t=window.__VANIRA_DEBUG_LOG__??[];for(t.push({t:Date.now(),tag:n,message:A,data:e});t.length>250;)t.shift();window.__VANIRA_DEBUG_LOG__=t}catch{}}function BA(n,A,e){ni()&&ri(n,A,e)}function si(n,A,e){ni()&&ri(n,`WARN ${A}`,e)}const OA=800,RA=500,yc="#4A9EFF",Ge=2e3,ii=80;function oi(n){if(!document.getElementById("vnr-board-line-styles")){const e=document.createElement("style");e.id="vnr-board-line-styles",e.textContent=`
2523
2523
  .vnr-whiteboard-draw-layer path.vnr-board-stroke,
2524
2524
  .vnr-whiteboard-draw-layer line.vnr-board-stroke,
2525
2525
  .vnr-whiteboard-draw-layer circle.vnr-board-stroke,
@@ -2537,7 +2537,7 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2537
2537
  font-size: 28px;
2538
2538
  paint-order: stroke fill;
2539
2539
  }
2540
- `,document.head.appendChild(e)}if(n.querySelector("#vnr-chalk-defs"))return;const A=document.createElementNS("http://www.w3.org/2000/svg","defs");A.id="vnr-chalk-defs",n.appendChild(A)}function Ae(n){let A=n.querySelector(".vnr-whiteboard-draw-layer");return A||(A=document.createElementNS("http://www.w3.org/2000/svg","svg"),A.setAttribute("class","vnr-whiteboard-draw-layer"),A.setAttribute("viewBox",`0 0 ${OA} ${RA}`),A.setAttribute("preserveAspectRatio","xMidYMid meet"),A.style.position="absolute",A.style.inset="0",A.style.width="100%",A.style.height="100%",A.style.pointerEvents="none",A.style.zIndex="0",ni(A),n.insertBefore(A,n.firstChild),A)}function Ut(n){[...n.childNodes].forEach(A=>{A instanceof SVGDefsElement||A.remove()})}function ri(n){ni(n)}const Ft=6,pc="#ffffff";function eA(n,A){if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"&&n.trim()!==""){const e=Number(n);if(Number.isFinite(e))return e}return A}function fA(n,A=""){return typeof n=="string"?n:A}function pe(n){if(n===!0||n===1)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="true"||A==="1"||A==="yes"}return!1}function si(n){if(n===!1||n===0)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="false"||A==="0"||A==="no"}return!1}function ii(n){if(n===!0||n===1)return!0;if(n===!1||n===0||n===null||n===void 0||n==="")return!1;const A=String(n).trim().toLowerCase();return A==="true"||A==="1"||A==="yes"}function ee(n,A){return n>=0&&n<=1?n*A:n}function qn(n,A){return{bx:ee(n,OA),by:ee(A,RA)}}function oi(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const t=JSON.parse(A);if(Array.isArray(t))return t.length>0&&Array.isArray(t[0])?[{points:t,close:!0}]:t}catch{}const e=A.split(/\s+/).map(t=>{const[r,s]=t.split(","),i=Number(r),o=Number(s);return Number.isFinite(i)&&Number.isFinite(o)?[i,o]:null}).filter(t=>t!=null);if(e.length>=2)return[{points:e,close:!0}]}return[]}function Bc(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const e=JSON.parse(A);return Array.isArray(e)?e:[]}catch{return[]}}return[]}function ai(n,A){const e=fA(n,A).trim().toLowerCase();return!e||e==="#000"||e==="#000000"||e==="black"?A:fA(n,A)}function li(n,A){if(!n||typeof n!="object")return null;const e=n,t=fA(e.text??e.label??e.label_text??e.annotation??(typeof e.annotations=="string"?e.annotations:"")).trim();if(!t)return null;const r=e.x??e.label_x??e.client_x,s=e.y??e.label_y??e.client_y;if(r==null||s==null)return null;const i=Number(r),o=Number(s);return!Number.isFinite(i)||!Number.isFinite(o)?null:{x:i,y:o,text:t,color:ai(e.color??e.label_color,A),font_size:e.font_size!=null?eA(e.font_size,28):void 0}}function fc(n,A){if(!n||typeof n!="object")return null;const e=n;return e.text!=null||e.label!=null||e.label_text!=null||e.annotation!=null||typeof e.annotations=="string"?li(n,A):null}function wc(n){return Array.isArray(n)&&n.length>0&&Array.isArray(n[0])?{points:n,close:!0}:n}function ci(n){if(Array.isArray(n)&&n.length>=2){const A=Number(n[0]),e=Number(n[1]);return!Number.isFinite(A)||!Number.isFinite(e)?null:qn(A,e)}if(n&&typeof n=="object"&&"x"in n&&"y"in n){const A=Number(n.x),e=Number(n.y);return!Number.isFinite(A)||!Number.isFinite(e)?null:qn(A,e)}return null}function mc(n){return ee(n,Math.min(OA,RA))}function Cc(n,A,e,t){const r=fA(n.kind||n.shape).toLowerCase(),s=r==="circle"||r==="ellipse"||n.r!=null||n.radius!=null||n.rx!=null||n.ry!=null;let i=n.cx??n.center_x??n.x,o=n.cy??n.center_y??n.y,a=n.r??n.radius;const l=n.rx,c=n.ry;if(Array.isArray(t)&&t.length>=3){const g=[];for(const B of t){const f=ci(B);f&&g.push(f)}if(g.length>=8&&s){const B=g.map(C=>C.bx),f=g.map(C=>C.by),m=(Math.min(...B)+Math.max(...B))/2,w=(Math.min(...f)+Math.max(...f))/2,v=Math.max(...g.map(C=>Math.hypot(C.bx-m,C.by-w)));i=i??m/OA,o=o??w/RA,a=a??v/Math.min(OA,RA)}}if(!s||i==null||o==null)return null;const d=Number(i),h=Number(o);if(!Number.isFinite(d)||!Number.isFinite(h))return null;const u={kind:r==="ellipse"||l!=null||c!=null?"ellipse":"circle",cx:d,cy:h,color:fA(n.color,A),stroke_width:n.stroke_width!=null?eA(n.stroke_width,e):e};return l!=null||c!=null?(u.rx=Number(l??c),u.ry=Number(c??l),u):a!=null&&Number.isFinite(Number(a))?(u.r=Number(a),u):null}function $n(n,A,e){if(!n||typeof n!="object")return null;const t=n,r=fA(t.path_d||t.path||t.d),s=fA(t.color,A),i=t.stroke_width!=null?eA(t.stroke_width,e):e;if(r)return{path_d:r,close:pe(t.close),color:s,stroke_width:i};const o=t.points,a=Cc(t,A,e,o);if(a)return a;let l=o;if(!Array.isArray(l)){const c=t.from_x??t.p1_x??t.x1,d=t.from_y??t.p1_y??t.y1,h=t.to_x??t.p2_x??t.x2,u=t.to_y??t.p2_y??t.y2;c!=null&&d!=null&&h!=null&&u!=null&&(l=[[c,d],[h,u]])}if(Array.isArray(l)&&l.length>=2){const c=fA(t.kind||t.shape_type||t.type).toLowerCase(),d=pe(t.close??t.close_path)||c==="triangle"||c==="polygon"||c==="rectangle";return{points:l,close:d,color:s,stroke_width:i}}return null}function Ar(n,A,e,t,r){const s=eA(n[A])??(t?eA(n[t]):void 0),i=eA(n[e])??(r?eA(n[r]):void 0);return s===void 0||i===void 0?null:[s,i]}function yc(n,A,e){const t=[],r=[],s=fA(n.label_text??n.text).trim(),i=eA(n.label_x??n.x),o=eA(n.label_y??n.y);s&&i!=null&&o!=null&&r.push({x:i,y:o,text:s,color:e});const a=Ar(n,"p1_x","p1_y","x1","y1"),l=Ar(n,"p2_x","p2_y","x2","y2"),c=Ar(n,"p3_x","p3_y","x3","y3");if(a&&l&&c)return t.push({points:[a,l,c],close:!0,color:A}),{strokes:t,labels:r};if(a&&l)return t.push({points:[a,l],close:!1,color:A}),{strokes:t,labels:r};const d=$n({...n,color:n.color??A},A,eA(n.stroke_width,Ft)??Ft);if(d)return t.push(d),{strokes:t,labels:r};const h=eA(n.rect_x),u=eA(n.rect_y),g=eA(n.rect_width??n.width),B=eA(n.rect_height??n.height);return h!=null&&u!=null&&g!=null&&B!=null&&t.push({points:[[h,u],[h+g,u],[h+g,u+B],[h,u+B]],close:!0,color:A}),{strokes:t,labels:r}}function vc(n,A={}){const e={...A,...n},t=fA(e.color??A.color,pc),r=ai(e.label_color??A.label_color,gc),s=eA(e.stroke_width??A.stroke_width,Ft)??Ft,i=ii(e.clear_old_diagrams_on_board)||ii(e.clear_drawings)||pe(e.clear)||pe(e.clear_before)||pe(A.clear_before),o=si(e.animate)||si(A.animate);let a=Math.max(0,eA(e.shape_duration_ms??e.duration_ms??A.duration_ms,Ge)??Ge),l=Math.max(0,eA(e.shape_gap_ms??e.gap_ms??A.gap_ms,ti)??ti),c=!o;c&&a>0&&a<Ge&&(a=Ge),a>=Ge&&(c=!0);const d=[];for(const B of Bc(e.labels??A.labels)){const f=li(B,r);f&&d.push(f)}let h=oi(e.strokes??A.strokes);h.length===0&&(h=oi(e.annotations??A.annotations));const u=[];for(const B of h){const f=wc(B),m=fc(f,r);if(m){d.push(m);continue}const w=$n(f,t,s);w&&u.push(w)}if(u.length===0){const B=e.points??A.points;if(B!=null){const f=$n({points:B,close:e.close??e.close_path??!0,color:t},t,s);f&&u.push(f)}}const g=yc(e,t,r);for(const B of g.labels)d.some(f=>f.text===B.text&&f.x===B.x&&f.y===B.y)||d.push(B);return u.length===0&&u.push(...g.strokes),{strokes:u,labels:d,clearBefore:i,animate:c,durationMs:a,gapMs:l,strokeWidth:s,strokeColor:t,labelColor:r}}function bc(n){const A=n.points;if(!Array.isArray(A))return[];const e=[];for(const t of A){const r=ci(t);r&&e.push(r)}return e}function Qc(n,A){if(n.length===0)return"";const e=n.map((t,r)=>`${r===0?"M":"L"} ${t.bx} ${t.by}`).join(" ");return A&&n.length>=3?`${e} Z`:e}function It(n,A){return{class:"vnr-board-stroke",fill:"none",stroke:n,"stroke-width":String(A),"stroke-linecap":"round","stroke-linejoin":"round"}}function St(n,A){for(const[e,t]of Object.entries(A))n.setAttribute(e,t)}function xc(n,A,e){if(n.cx==null||n.cy==null)return null;const t=ee(n.cx,OA),r=ee(n.cy,RA),s="http://www.w3.org/2000/svg";if(n.kind==="ellipse"||n.rx!=null||n.ry!=null){const o=n.rx??n.r,a=n.ry??n.r;if(o==null||a==null)return null;const l=document.createElementNS(s,"ellipse");return l.setAttribute("cx",String(t)),l.setAttribute("cy",String(r)),l.setAttribute("rx",String(ee(Number(o),OA))),l.setAttribute("ry",String(ee(Number(a),RA))),St(l,It(A,e)),l}if(n.r==null)return null;const i=document.createElementNS(s,"circle");return i.setAttribute("cx",String(t)),i.setAttribute("cy",String(r)),i.setAttribute("r",String(mc(Number(n.r)))),St(i,It(A,e)),i}function di(n,A,e){const t=fA(n.color,A),r=n.stroke_width!=null?eA(n.stroke_width,e)??e:e;if(n.kind==="circle"||n.kind==="ellipse"||n.r!=null||n.rx!=null||n.ry!=null)return xc(n,t,r);const i=document.createElementNS("http://www.w3.org/2000/svg","path"),o=fA(n.path_d);if(o)return i.setAttribute("d",o),St(i,It(t,r)),i;const a=bc(n);return a.length<2?null:(i.setAttribute("d",Qc(a,pe(n.close))),St(i,It(t,r)),i)}function hi(n,A){const e="http://www.w3.org/2000/svg",t=qn(n.x,n.y),r=document.createElementNS(e,"text");return r.setAttribute("class","vnr-board-label"),r.setAttribute("x",String(t.bx)),r.setAttribute("y",String(t.by)),r.setAttribute("fill",n.color||A),r.setAttribute("font-size",String(n.font_size??28)),r.setAttribute("font-family","'Architects Daughter', 'Caveat', cursive, sans-serif"),r.setAttribute("text-anchor","middle"),r.setAttribute("dominant-baseline","hanging"),r.textContent=n.text,r}function Ec(n,A){return A<=0?(n.style.opacity="1",Promise.resolve()):(n.style.opacity="0",n.getBoundingClientRect(),n.style.transition=`opacity ${Math.min(A,400)}ms ease-out`,n.style.opacity="1",_n(Math.min(A,400)))}function ui(n,A,e){ri(n),Ut(n);for(const t of A.strokes){const r=di(t,e.strokeColor,e.strokeWidth);r&&n.appendChild(r)}for(const t of A.labels)n.appendChild(hi(t,e.labelColor))}async function Uc(n,A,e,t){ri(n);let r=0,s=0;for(const i of A){if(t.isAborted())break;const o=di(i,t.strokeColor,t.strokeWidth);o&&(n.appendChild(o),r+=1,t.animate&&t.durationMs>0&&(await Vn(o,t.durationMs),t.gapMs>0&&await _n(t.gapMs)))}for(const i of e){if(t.isAborted())break;const o=hi(i,t.labelColor);n.appendChild(o),s+=1,t.animate&&t.durationMs>0&&await Ec(o,t.durationMs)}return{strokesDrawn:r,labelsDrawn:s}}function Ht(){return{strokes:[],labels:[]}}function Ve(n){return n.toLowerCase().replace(/[^a-z0-9]/g,"_")}function Fc(n){const A=n==null?void 0:n.toLowerCase().trim();if(A){if(A==="tel")return"phone";if(A==="dropdown"||A==="drop_down"||A==="picklist"||A==="combobox")return"select";if(["text","textarea","select","radio","checkbox","email","phone","number","date"].includes(A))return A}}function gi(n,A,e=[]){const t=Fc(A);return t||(e.length>0?"select":n.includes("email")?"email":n.includes("phone")?"phone":n.includes("date")&&!n.includes("update")?"date":"text")}function Ic(n){return n?Array.isArray(n)?n.map(A=>{if(typeof A=="string")return A;if(A&&typeof A=="object"){const e=A;return{label:String(e.label??e.value??""),value:String(e.value??e.label??"")}}return String(A)}):typeof n=="string"?n.split(",").map(A=>A.trim()).filter(Boolean):[]:[]}function Sc(n){const A=n.value??n.default??n.defaultValue??n.prefill;if(!(A==null||A===""))return String(A)}function er(n){const A=String(n.label??n.name??n.title??n.field??n.id??n.key??"").trim();if(!A)return null;const e=String(n.id??n.key??Ve(A)),t=Ic(n.options??n.choices??n.values),r=gi(e,String(n.type??""),t);return{id:e,label:A,type:r,required:n.required!==!1,placeholder:n.placeholder?String(n.placeholder):void 0,value:Sc(n),options:t}}function pi(n){const A=n.trim(),e=Ve(A);return{id:e,label:A,type:gi(e),required:!0,placeholder:`Enter your ${A.toLowerCase()}`,options:[]}}function Lt(n){const A=n.trim();return A?A.startsWith("[")||A.startsWith("{")||A.startsWith('"')?!0:A.includes('"type"')||A.includes('"options"')||A.includes('"label"'):!1}function Hc(n){let A=n.trim();for(let e=0;e<3&&typeof A=="string";e++){const t=A.trim();if(!Lt(t))break;try{A=JSON.parse(t)}catch{break}}return A}function Tt(n){const A=Hc(n);if(Array.isArray(A)||A&&typeof A=="object")return A;if(typeof A=="string"){const e=A.trim();if(e.startsWith("{")&&!e.startsWith("["))try{return JSON.parse(`[${e}]`)}catch{return null}}return null}function Lc(n){return n.length<2?!1:n.every(A=>typeof A=="string"&&(A.includes('"')||A.includes("{")||A.includes("[")))}function Tc(n){return Tt(n.map(A=>A.trim()).join(","))}function _e(n){if(n==null)return[];if(typeof n=="string"){const A=n.trim();if(!A)return[];if(Lt(A)){const e=Tt(A);return e!==null?_e(e):[]}return A.split(",").map(e=>e.trim()).filter(Boolean).map(pi)}if(Array.isArray(n)){if(n.length===1&&typeof n[0]=="string"){const e=n[0].trim();if(Lt(e)){const t=Tt(e);if(t!==null)return _e(t)}}if(Lc(n)){const e=Tc(n);if(e!==null)return _e(e)}const A=[];for(const e of n){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{"))try{const r=er(JSON.parse(t));if(r){A.push(r);continue}}catch{}if(Lt(t)){const r=Tt(t);if(r!==null){A.push(..._e(r));continue}}A.push(pi(e));continue}if(e&&typeof e=="object"){const t=er(e);t&&A.push(t)}}return A}if(typeof n=="object"){const A=er(n);return A?[A]:[]}return[]}const Mc=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,kc=/^\+?[0-9\s\-().]{7,20}$/,Dc=/^\d{4}-\d{2}-\d{2}$/;function Bi(n,A){const e=n[A.id];return A.type==="checkbox"?e===!0||e==="true"?"true":"false":String(e??"").trim()}function Pc(n,A){const e={};for(const t of n){const r=Bi(A,t);if(t.type==="checkbox"){t.required&&r!=="true"&&(e[t.id]=`${t.label} is required`);continue}if(t.required&&!r){e[t.id]=`${t.label} is required`;continue}if(!r)continue;const s=Kc(t.type,r,t.label);s&&(e[t.id]=s),(t.type==="select"||t.type==="radio")&&t.options.length>0&&(t.options.map(o=>typeof o=="string"?o:o.value).includes(r)||(e[t.id]=`Select a valid ${t.label}`))}return e}function Kc(n,A,e){switch(n){case"email":return Mc.test(A)?null:`Enter a valid ${e}`;case"phone":return kc.test(A)?null:`Enter a valid phone number for ${e}`;case"number":return Number.isFinite(Number(A))?null:`${e} must be a number`;case"date":return Dc.test(A)?Number.isNaN(Date.parse(A))?`Enter a valid ${e}`:null:`${e} must be YYYY-MM-DD`;default:return null}}function Nc(n,A){const e={};for(const t of n)e[t.id]=Bi(A,t);return e}function fi(n){if(n==null)return{};if(typeof n=="string"){const A=n.trim();if(!A)return{};try{return fi(JSON.parse(A))}catch{return{}}}return typeof n=="object"&&!Array.isArray(n)?n:{}}function Oc(n,A){const e=n.prefill??n.values??n.initial_values??n.defaults??A.prefill??A.values??A.initial_values??A.defaults;return fi(e)}function tr(n,A){if(n.type==="checkbox"){if(typeof A=="boolean")return A;const e=String(A).trim().toLowerCase();return e==="true"||e==="1"||e==="yes"||e==="on"}return String(A??"").trim()}function Rc(n,A){const e=[n.id,n.label,n.label.toLowerCase()];for(const r of e){if(!(r in A))continue;const s=A[r];if(!(s==null||s===""))return tr(n,s)}const t=Ve(n.label);for(const[r,s]of Object.entries(A))if(!(s==null||s==="")&&(r===t||Ve(r)===t||Ve(r)===n.id))return tr(n,s)}function Gc(n,A={}){const e={};for(const t of n){if(t.value!==void 0){e[t.id]=tr(t,t.value);continue}const r=Rc(t,A);e[t.id]=r!==void 0?r:t.type==="checkbox"?!1:""}return e}const wi="vanira:board_abort";function nr(n){if(!n)return"";if(typeof n=="string"){if(n.includes("T")||!isNaN(Date.parse(n)))try{return new Date(n).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}catch{}return n}if(typeof n=="object"){const A=n.start||n.startTime||n.time||n.slot,e=n.end||n.endTime;if(A){let t=String(A),r=e?String(e):"";try{(t.includes("T")||!isNaN(Date.parse(t)))&&(t=new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})),r&&(r.includes("T")||!isNaN(Date.parse(r)))&&(r=new Date(r).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}))}catch{}return r?`${t} - ${r}`:t}}return String(n)}function Vc(n,A,e,t){let r=Date.UTC(n,A,e,0,0,0,0),s=Date.UTC(n,A,e,23,59,59,999);if(t)try{const i=new Date(Date.UTC(n,A,e,12,0,0)),a=new Intl.DateTimeFormat("en-US",{timeZone:t,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(i),l=v=>{var C;return(C=a.find(y=>y.type===v))==null?void 0:C.value},c=parseInt(l("year")||"0",10),d=parseInt(l("month")||"0",10)-1,h=parseInt(l("day")||"0",10),u=parseInt(l("hour")||"0",10),g=parseInt(l("minute")||"0",10),B=parseInt(l("second")||"0",10),f=u===24?0:u,w=Date.UTC(c,d,h,f,g,B,0)-i.getTime();r=Date.UTC(n,A,e,0,0,0,0)-w,s=Date.UTC(n,A,e,23,59,59,999)-w}catch{}return{start:new Date(r),end:new Date(s)}}function _c(n,A){if(!A){const e=-n.getTimezoneOffset(),t=e>=0?"+":"-",r=i=>String(i).padStart(2,"0"),s=i=>String(i).padStart(3,"0");return n.getFullYear()+"-"+r(n.getMonth()+1)+"-"+r(n.getDate())+"T"+r(n.getHours())+":"+r(n.getMinutes())+":"+r(n.getSeconds())+"."+s(n.getMilliseconds())+t+r(Math.floor(Math.abs(e)/60))+":"+r(Math.abs(e)%60)}try{const t=new Intl.DateTimeFormat("en-US",{timeZone:A,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(n),r=x=>{var F;return((F=t.find(I=>I.type===x))==null?void 0:F.value)||"0"},s=r("year"),i=r("month").padStart(2,"0"),o=r("day").padStart(2,"0");let a=parseInt(r("hour"),10);a===24&&(a=0);const l=String(a).padStart(2,"0"),c=r("minute").padStart(2,"0"),d=r("second").padStart(2,"0"),h=String(n.getMilliseconds()).padStart(3,"0"),u=parseInt(s,10),g=parseInt(i,10)-1,B=parseInt(o,10),m=Date.UTC(u,g,B,a,parseInt(c,10),parseInt(d,10),n.getMilliseconds())-n.getTime(),w=Math.round(m/6e4),v=w>=0?"+":"-",C=Math.abs(w),y=String(Math.floor(C/60)).padStart(2,"0"),Q=String(C%60).padStart(2,"0");return`${s}-${i}-${o}T${l}:${c}:${d}.${h}${v}${y}:${Q}`}catch{return n.toISOString()}}const Yc=`
2540
+ `,document.head.appendChild(e)}if(n.querySelector("#vnr-chalk-defs"))return;const A=document.createElementNS("http://www.w3.org/2000/svg","defs");A.id="vnr-chalk-defs",n.appendChild(A)}function Ae(n){let A=n.querySelector(".vnr-whiteboard-draw-layer");return A||(A=document.createElementNS("http://www.w3.org/2000/svg","svg"),A.setAttribute("class","vnr-whiteboard-draw-layer"),A.setAttribute("viewBox",`0 0 ${OA} ${RA}`),A.setAttribute("preserveAspectRatio","xMidYMid meet"),A.style.position="absolute",A.style.inset="0",A.style.width="100%",A.style.height="100%",A.style.pointerEvents="none",A.style.zIndex="0",oi(A),n.insertBefore(A,n.firstChild),A)}function Ut(n){[...n.childNodes].forEach(A=>{A instanceof SVGDefsElement||A.remove()})}function ai(n){oi(n)}const Ft=6,vc="#ffffff";function eA(n,A){if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"&&n.trim()!==""){const e=Number(n);if(Number.isFinite(e))return e}return A}function fA(n,A=""){return typeof n=="string"?n:A}function pe(n){if(n===!0||n===1)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="true"||A==="1"||A==="yes"}return!1}function li(n){if(n===!1||n===0)return!0;if(typeof n=="string"){const A=n.trim().toLowerCase();return A==="false"||A==="0"||A==="no"}return!1}function ci(n){if(n===!0||n===1)return!0;if(n===!1||n===0||n===null||n===void 0||n==="")return!1;const A=String(n).trim().toLowerCase();return A==="true"||A==="1"||A==="yes"}function ee(n,A){return n>=0&&n<=1?n*A:n}function Ar(n,A){return{bx:ee(n,OA),by:ee(A,RA)}}function di(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const t=JSON.parse(A);if(Array.isArray(t))return t.length>0&&Array.isArray(t[0])?[{points:t,close:!0}]:t}catch{}const e=A.split(/\s+/).map(t=>{const[r,s]=t.split(","),i=Number(r),o=Number(s);return Number.isFinite(i)&&Number.isFinite(o)?[i,o]:null}).filter(t=>t!=null);if(e.length>=2)return[{points:e,close:!0}]}return[]}function bc(n){if(Array.isArray(n))return n;if(typeof n=="string"){const A=n.trim();if(!A)return[];try{const e=JSON.parse(A);return Array.isArray(e)?e:[]}catch{return[]}}return[]}function hi(n,A){const e=fA(n,A).trim().toLowerCase();return!e||e==="#000"||e==="#000000"||e==="black"?A:fA(n,A)}function ui(n,A){if(!n||typeof n!="object")return null;const e=n,t=fA(e.text??e.label??e.label_text??e.annotation??(typeof e.annotations=="string"?e.annotations:"")).trim();if(!t)return null;const r=e.x??e.label_x??e.client_x,s=e.y??e.label_y??e.client_y;if(r==null||s==null)return null;const i=Number(r),o=Number(s);return!Number.isFinite(i)||!Number.isFinite(o)?null:{x:i,y:o,text:t,color:hi(e.color??e.label_color,A),font_size:e.font_size!=null?eA(e.font_size,28):void 0}}function Qc(n,A){if(!n||typeof n!="object")return null;const e=n;return e.text!=null||e.label!=null||e.label_text!=null||e.annotation!=null||typeof e.annotations=="string"?ui(n,A):null}function xc(n){return Array.isArray(n)&&n.length>0&&Array.isArray(n[0])?{points:n,close:!0}:n}function gi(n){if(Array.isArray(n)&&n.length>=2){const A=Number(n[0]),e=Number(n[1]);return!Number.isFinite(A)||!Number.isFinite(e)?null:Ar(A,e)}if(n&&typeof n=="object"&&"x"in n&&"y"in n){const A=Number(n.x),e=Number(n.y);return!Number.isFinite(A)||!Number.isFinite(e)?null:Ar(A,e)}return null}function Ec(n){return ee(n,Math.min(OA,RA))}function Uc(n,A,e,t){const r=fA(n.kind||n.shape).toLowerCase(),s=r==="circle"||r==="ellipse"||n.r!=null||n.radius!=null||n.rx!=null||n.ry!=null;let i=n.cx??n.center_x??n.x,o=n.cy??n.center_y??n.y,a=n.r??n.radius;const l=n.rx,d=n.ry;if(Array.isArray(t)&&t.length>=3){const g=[];for(const B of t){const f=gi(B);f&&g.push(f)}if(g.length>=8&&s){const B=g.map(C=>C.bx),f=g.map(C=>C.by),m=(Math.min(...B)+Math.max(...B))/2,w=(Math.min(...f)+Math.max(...f))/2,v=Math.max(...g.map(C=>Math.hypot(C.bx-m,C.by-w)));i=i??m/OA,o=o??w/RA,a=a??v/Math.min(OA,RA)}}if(!s||i==null||o==null)return null;const c=Number(i),h=Number(o);if(!Number.isFinite(c)||!Number.isFinite(h))return null;const u={kind:r==="ellipse"||l!=null||d!=null?"ellipse":"circle",cx:c,cy:h,color:fA(n.color,A),stroke_width:n.stroke_width!=null?eA(n.stroke_width,e):e};return l!=null||d!=null?(u.rx=Number(l??d),u.ry=Number(d??l),u):a!=null&&Number.isFinite(Number(a))?(u.r=Number(a),u):null}function er(n,A,e){if(!n||typeof n!="object")return null;const t=n,r=fA(t.path_d||t.path||t.d),s=fA(t.color,A),i=t.stroke_width!=null?eA(t.stroke_width,e):e;if(r)return{path_d:r,close:pe(t.close),color:s,stroke_width:i};const o=t.points,a=Uc(t,A,e,o);if(a)return a;let l=o;if(!Array.isArray(l)){const d=t.from_x??t.p1_x??t.x1,c=t.from_y??t.p1_y??t.y1,h=t.to_x??t.p2_x??t.x2,u=t.to_y??t.p2_y??t.y2;d!=null&&c!=null&&h!=null&&u!=null&&(l=[[d,c],[h,u]])}if(Array.isArray(l)&&l.length>=2){const d=fA(t.kind||t.shape_type||t.type).toLowerCase(),c=pe(t.close??t.close_path)||d==="triangle"||d==="polygon"||d==="rectangle";return{points:l,close:c,color:s,stroke_width:i}}return null}function tr(n,A,e,t,r){const s=eA(n[A])??(t?eA(n[t]):void 0),i=eA(n[e])??(r?eA(n[r]):void 0);return s===void 0||i===void 0?null:[s,i]}function Fc(n,A,e){const t=[],r=[],s=fA(n.label_text??n.text).trim(),i=eA(n.label_x??n.x),o=eA(n.label_y??n.y);s&&i!=null&&o!=null&&r.push({x:i,y:o,text:s,color:e});const a=tr(n,"p1_x","p1_y","x1","y1"),l=tr(n,"p2_x","p2_y","x2","y2"),d=tr(n,"p3_x","p3_y","x3","y3");if(a&&l&&d)return t.push({points:[a,l,d],close:!0,color:A}),{strokes:t,labels:r};if(a&&l)return t.push({points:[a,l],close:!1,color:A}),{strokes:t,labels:r};const c=er({...n,color:n.color??A},A,eA(n.stroke_width,Ft)??Ft);if(c)return t.push(c),{strokes:t,labels:r};const h=eA(n.rect_x),u=eA(n.rect_y),g=eA(n.rect_width??n.width),B=eA(n.rect_height??n.height);return h!=null&&u!=null&&g!=null&&B!=null&&t.push({points:[[h,u],[h+g,u],[h+g,u+B],[h,u+B]],close:!0,color:A}),{strokes:t,labels:r}}function Ic(n,A={}){const e={...A,...n},t=fA(e.color??A.color,vc),r=hi(e.label_color??A.label_color,yc),s=eA(e.stroke_width??A.stroke_width,Ft)??Ft,i=ci(e.clear_old_diagrams_on_board)||ci(e.clear_drawings)||pe(e.clear)||pe(e.clear_before)||pe(A.clear_before),o=li(e.animate)||li(A.animate);let a=Math.max(0,eA(e.shape_duration_ms??e.duration_ms??A.duration_ms,Ge)??Ge),l=Math.max(0,eA(e.shape_gap_ms??e.gap_ms??A.gap_ms,ii)??ii),d=!o;d&&a>0&&a<Ge&&(a=Ge),a>=Ge&&(d=!0);const c=[];for(const B of bc(e.labels??A.labels)){const f=ui(B,r);f&&c.push(f)}let h=di(e.strokes??A.strokes);h.length===0&&(h=di(e.annotations??A.annotations));const u=[];for(const B of h){const f=xc(B),m=Qc(f,r);if(m){c.push(m);continue}const w=er(f,t,s);w&&u.push(w)}if(u.length===0){const B=e.points??A.points;if(B!=null){const f=er({points:B,close:e.close??e.close_path??!0,color:t},t,s);f&&u.push(f)}}const g=Fc(e,t,r);for(const B of g.labels)c.some(f=>f.text===B.text&&f.x===B.x&&f.y===B.y)||c.push(B);return u.length===0&&u.push(...g.strokes),{strokes:u,labels:c,clearBefore:i,animate:d,durationMs:a,gapMs:l,strokeWidth:s,strokeColor:t,labelColor:r}}function Sc(n){const A=n.points;if(!Array.isArray(A))return[];const e=[];for(const t of A){const r=gi(t);r&&e.push(r)}return e}function Hc(n,A){if(n.length===0)return"";const e=n.map((t,r)=>`${r===0?"M":"L"} ${t.bx} ${t.by}`).join(" ");return A&&n.length>=3?`${e} Z`:e}function It(n,A){return{class:"vnr-board-stroke",fill:"none",stroke:n,"stroke-width":String(A),"stroke-linecap":"round","stroke-linejoin":"round"}}function St(n,A){for(const[e,t]of Object.entries(A))n.setAttribute(e,t)}function Lc(n,A,e){if(n.cx==null||n.cy==null)return null;const t=ee(n.cx,OA),r=ee(n.cy,RA),s="http://www.w3.org/2000/svg";if(n.kind==="ellipse"||n.rx!=null||n.ry!=null){const o=n.rx??n.r,a=n.ry??n.r;if(o==null||a==null)return null;const l=document.createElementNS(s,"ellipse");return l.setAttribute("cx",String(t)),l.setAttribute("cy",String(r)),l.setAttribute("rx",String(ee(Number(o),OA))),l.setAttribute("ry",String(ee(Number(a),RA))),St(l,It(A,e)),l}if(n.r==null)return null;const i=document.createElementNS(s,"circle");return i.setAttribute("cx",String(t)),i.setAttribute("cy",String(r)),i.setAttribute("r",String(Ec(Number(n.r)))),St(i,It(A,e)),i}function pi(n,A,e){const t=fA(n.color,A),r=n.stroke_width!=null?eA(n.stroke_width,e)??e:e;if(n.kind==="circle"||n.kind==="ellipse"||n.r!=null||n.rx!=null||n.ry!=null)return Lc(n,t,r);const i=document.createElementNS("http://www.w3.org/2000/svg","path"),o=fA(n.path_d);if(o)return i.setAttribute("d",o),St(i,It(t,r)),i;const a=Sc(n);return a.length<2?null:(i.setAttribute("d",Hc(a,pe(n.close))),St(i,It(t,r)),i)}function Bi(n,A){const e="http://www.w3.org/2000/svg",t=Ar(n.x,n.y),r=document.createElementNS(e,"text");return r.setAttribute("class","vnr-board-label"),r.setAttribute("x",String(t.bx)),r.setAttribute("y",String(t.by)),r.setAttribute("fill",n.color||A),r.setAttribute("font-size",String(n.font_size??28)),r.setAttribute("font-family","'Architects Daughter', 'Caveat', cursive, sans-serif"),r.setAttribute("text-anchor","middle"),r.setAttribute("dominant-baseline","hanging"),r.textContent=n.text,r}function Tc(n,A){return A<=0?(n.style.opacity="1",Promise.resolve()):(n.style.opacity="0",n.getBoundingClientRect(),n.style.transition=`opacity ${Math.min(A,400)}ms ease-out`,n.style.opacity="1",zn(Math.min(A,400)))}function fi(n,A,e){ai(n),Ut(n);for(const t of A.strokes){const r=pi(t,e.strokeColor,e.strokeWidth);r&&n.appendChild(r)}for(const t of A.labels)n.appendChild(Bi(t,e.labelColor))}async function Mc(n,A,e,t){ai(n);let r=0,s=0;for(const i of A){if(t.isAborted())break;const o=pi(i,t.strokeColor,t.strokeWidth);o&&(n.appendChild(o),r+=1,t.animate&&t.durationMs>0&&(await Yn(o,t.durationMs),t.gapMs>0&&await zn(t.gapMs)))}for(const i of e){if(t.isAborted())break;const o=Bi(i,t.labelColor);n.appendChild(o),s+=1,t.animate&&t.durationMs>0&&await Tc(o,t.durationMs)}return{strokesDrawn:r,labelsDrawn:s}}function Ht(){return{strokes:[],labels:[]}}function Ve(n){return n.toLowerCase().replace(/[^a-z0-9]/g,"_")}function kc(n){const A=n==null?void 0:n.toLowerCase().trim();if(A){if(A==="tel")return"phone";if(A==="dropdown"||A==="drop_down"||A==="picklist"||A==="combobox")return"select";if(["text","textarea","select","radio","checkbox","email","phone","number","date"].includes(A))return A}}function wi(n,A,e=[]){const t=kc(A);return t||(e.length>0?"select":n.includes("email")?"email":n.includes("phone")?"phone":n.includes("date")&&!n.includes("update")?"date":"text")}function Dc(n){return n?Array.isArray(n)?n.map(A=>{if(typeof A=="string")return A;if(A&&typeof A=="object"){const e=A;return{label:String(e.label??e.value??""),value:String(e.value??e.label??"")}}return String(A)}):typeof n=="string"?n.split(",").map(A=>A.trim()).filter(Boolean):[]:[]}function Pc(n){const A=n.value??n.default??n.defaultValue??n.prefill;if(!(A==null||A===""))return String(A)}function nr(n){const A=String(n.label??n.name??n.title??n.field??n.id??n.key??"").trim();if(!A)return null;const e=String(n.id??n.key??Ve(A)),t=Dc(n.options??n.choices??n.values),r=wi(e,String(n.type??""),t);return{id:e,label:A,type:r,required:n.required!==!1,placeholder:n.placeholder?String(n.placeholder):void 0,value:Pc(n),options:t}}function mi(n){const A=n.trim(),e=Ve(A);return{id:e,label:A,type:wi(e),required:!0,placeholder:`Enter your ${A.toLowerCase()}`,options:[]}}function Lt(n){const A=n.trim();return A?A.startsWith("[")||A.startsWith("{")||A.startsWith('"')?!0:A.includes('"type"')||A.includes('"options"')||A.includes('"label"'):!1}function Kc(n){let A=n.trim();for(let e=0;e<3&&typeof A=="string";e++){const t=A.trim();if(!Lt(t))break;try{A=JSON.parse(t)}catch{break}}return A}function Tt(n){const A=Kc(n);if(Array.isArray(A)||A&&typeof A=="object")return A;if(typeof A=="string"){const e=A.trim();if(e.startsWith("{")&&!e.startsWith("["))try{return JSON.parse(`[${e}]`)}catch{return null}}return null}function Nc(n){return n.length<2?!1:n.every(A=>typeof A=="string"&&(A.includes('"')||A.includes("{")||A.includes("[")))}function Oc(n){return Tt(n.map(A=>A.trim()).join(","))}function _e(n){if(n==null)return[];if(typeof n=="string"){const A=n.trim();if(!A)return[];if(Lt(A)){const e=Tt(A);return e!==null?_e(e):[]}return A.split(",").map(e=>e.trim()).filter(Boolean).map(mi)}if(Array.isArray(n)){if(n.length===1&&typeof n[0]=="string"){const e=n[0].trim();if(Lt(e)){const t=Tt(e);if(t!==null)return _e(t)}}if(Nc(n)){const e=Oc(n);if(e!==null)return _e(e)}const A=[];for(const e of n){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{"))try{const r=nr(JSON.parse(t));if(r){A.push(r);continue}}catch{}if(Lt(t)){const r=Tt(t);if(r!==null){A.push(..._e(r));continue}}A.push(mi(e));continue}if(e&&typeof e=="object"){const t=nr(e);t&&A.push(t)}}return A}if(typeof n=="object"){const A=nr(n);return A?[A]:[]}return[]}const Rc=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Gc=/^\+?[0-9\s\-().]{7,20}$/,Vc=/^\d{4}-\d{2}-\d{2}$/;function Ci(n,A){const e=n[A.id];return A.type==="checkbox"?e===!0||e==="true"?"true":"false":String(e??"").trim()}function _c(n,A){const e={};for(const t of n){const r=Ci(A,t);if(t.type==="checkbox"){t.required&&r!=="true"&&(e[t.id]=`${t.label} is required`);continue}if(t.required&&!r){e[t.id]=`${t.label} is required`;continue}if(!r)continue;const s=Yc(t.type,r,t.label);s&&(e[t.id]=s),(t.type==="select"||t.type==="radio")&&t.options.length>0&&(t.options.map(o=>typeof o=="string"?o:o.value).includes(r)||(e[t.id]=`Select a valid ${t.label}`))}return e}function Yc(n,A,e){switch(n){case"email":return Rc.test(A)?null:`Enter a valid ${e}`;case"phone":return Gc.test(A)?null:`Enter a valid phone number for ${e}`;case"number":return Number.isFinite(Number(A))?null:`${e} must be a number`;case"date":return Vc.test(A)?Number.isNaN(Date.parse(A))?`Enter a valid ${e}`:null:`${e} must be YYYY-MM-DD`;default:return null}}function zc(n,A){const e={};for(const t of n)e[t.id]=Ci(A,t);return e}function yi(n){if(n==null)return{};if(typeof n=="string"){const A=n.trim();if(!A)return{};try{return yi(JSON.parse(A))}catch{return{}}}return typeof n=="object"&&!Array.isArray(n)?n:{}}function Jc(n,A){const e=n.prefill??n.values??n.initial_values??n.defaults??A.prefill??A.values??A.initial_values??A.defaults;return yi(e)}function rr(n,A){if(n.type==="checkbox"){if(typeof A=="boolean")return A;const e=String(A).trim().toLowerCase();return e==="true"||e==="1"||e==="yes"||e==="on"}return String(A??"").trim()}function Xc(n,A){const e=[n.id,n.label,n.label.toLowerCase()];for(const r of e){if(!(r in A))continue;const s=A[r];if(!(s==null||s===""))return rr(n,s)}const t=Ve(n.label);for(const[r,s]of Object.entries(A))if(!(s==null||s==="")&&(r===t||Ve(r)===t||Ve(r)===n.id))return rr(n,s)}function Wc(n,A={}){const e={};for(const t of n){if(t.value!==void 0){e[t.id]=rr(t,t.value);continue}const r=Xc(t,A);e[t.id]=r!==void 0?r:t.type==="checkbox"?!1:""}return e}const vi="vanira:board_abort";function sr(n){if(!n)return"";if(typeof n=="string"){if(n.includes("T")||!isNaN(Date.parse(n)))try{return new Date(n).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}catch{}return n}if(typeof n=="object"){const A=n.start||n.startTime||n.time||n.slot,e=n.end||n.endTime;if(A){let t=String(A),r=e?String(e):"";try{(t.includes("T")||!isNaN(Date.parse(t)))&&(t=new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})),r&&(r.includes("T")||!isNaN(Date.parse(r)))&&(r=new Date(r).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}))}catch{}return r?`${t} - ${r}`:t}}return String(n)}function jc(n,A,e,t){let r=Date.UTC(n,A,e,0,0,0,0),s=Date.UTC(n,A,e,23,59,59,999);if(t)try{const i=new Date(Date.UTC(n,A,e,12,0,0)),a=new Intl.DateTimeFormat("en-US",{timeZone:t,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(i),l=v=>{var C;return(C=a.find(y=>y.type===v))==null?void 0:C.value},d=parseInt(l("year")||"0",10),c=parseInt(l("month")||"0",10)-1,h=parseInt(l("day")||"0",10),u=parseInt(l("hour")||"0",10),g=parseInt(l("minute")||"0",10),B=parseInt(l("second")||"0",10),f=u===24?0:u,w=Date.UTC(d,c,h,f,g,B,0)-i.getTime();r=Date.UTC(n,A,e,0,0,0,0)-w,s=Date.UTC(n,A,e,23,59,59,999)-w}catch{}return{start:new Date(r),end:new Date(s)}}function Zc(n,A){if(!A){const e=-n.getTimezoneOffset(),t=e>=0?"+":"-",r=i=>String(i).padStart(2,"0"),s=i=>String(i).padStart(3,"0");return n.getFullYear()+"-"+r(n.getMonth()+1)+"-"+r(n.getDate())+"T"+r(n.getHours())+":"+r(n.getMinutes())+":"+r(n.getSeconds())+"."+s(n.getMilliseconds())+t+r(Math.floor(Math.abs(e)/60))+":"+r(Math.abs(e)%60)}try{const t=new Intl.DateTimeFormat("en-US",{timeZone:A,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(n),r=E=>{var F;return((F=t.find(I=>I.type===E))==null?void 0:F.value)||"0"},s=r("year"),i=r("month").padStart(2,"0"),o=r("day").padStart(2,"0");let a=parseInt(r("hour"),10);a===24&&(a=0);const l=String(a).padStart(2,"0"),d=r("minute").padStart(2,"0"),c=r("second").padStart(2,"0"),h=String(n.getMilliseconds()).padStart(3,"0"),u=parseInt(s,10),g=parseInt(i,10)-1,B=parseInt(o,10),m=Date.UTC(u,g,B,a,parseInt(d,10),parseInt(c,10),n.getMilliseconds())-n.getTime(),w=Math.round(m/6e4),v=w>=0?"+":"-",C=Math.abs(w),y=String(Math.floor(C/60)).padStart(2,"0"),Q=String(C%60).padStart(2,"0");return`${s}-${i}-${o}T${l}:${d}:${c}.${h}${v}${y}:${Q}`}catch{return n.toISOString()}}const qc=`
2541
2541
  .vnr-overlay {
2542
2542
  position: fixed; inset: 0; z-index: 2147483647;
2543
2543
  background: rgba(0,0,0,0.45);
@@ -2727,9 +2727,9 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2727
2727
  color: #fecaca;
2728
2728
  }
2729
2729
  .vnr-whiteboard-action-btn.is-close:hover { background: rgba(239,68,68,0.2); }
2730
- `,zc='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M4 14h6v6"/><path d="M20 10h-6V4"/><path d="M14 10l7-7"/><path d="M3 21l7-7"/></svg>',Jc='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><polyline points="15 3 21 3 21 9"/><polyline points="9 21 3 21 3 15"/><line x1="21" y1="3" x2="14" y2="10"/><line x1="3" y1="21" x2="10" y2="14"/></svg>',Xc='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',Wc="vanira:board-size",jc={small:{maxWidth:"min(440px, 94vw)",height:"min(340px, 58vh)"},medium:{maxWidth:"min(680px, 96vw)",height:"min(520px, 78vh)"},large:{maxWidth:"min(920px, 98vw)",height:"min(680px, 88vh)"}};function Zc(){try{const n=localStorage.getItem(Wc);if(n==="small"||n==="medium"||n==="large")return n}catch{}return"medium"}function mi(n,A){return A===1?n:n.replace(/(\d+(?:\.\d+)?)(px|vw|vh)/g,(e,t,r)=>{const s=Number(t)*A;return`${r==="px"?Math.round(s):s}${r}`})}class qc{constructor(A){p(this,"overlay",null);p(this,"styleInjected",!1);p(this,"chalkboardContent","");p(this,"boardChapterTitle","");p(this,"boardDrawInProgress",!1);p(this,"boardInk",Ht());p(this,"calViewYear",0);p(this,"calViewMonth",0);p(this,"calSelectedTs",null);p(this,"calSelectedTime",null);p(this,"lvSessionId",null);p(this,"lvStream",null);p(this,"lvCaptureInterval",null);p(this,"lvAutoStopTimeout",null);p(this,"lvFrameSeq",0);p(this,"lvVideo",null);p(this,"lvCanvas",null);p(this,"lvPip",null);p(this,"lvPermissionBanner",null);p(this,"lsSessionId",null);p(this,"lsStream",null);p(this,"lsCaptureInterval",null);p(this,"lsAutoStopTimeout",null);p(this,"lsFrameSeq",0);p(this,"lsVideo",null);p(this,"lsCanvas",null);p(this,"lsPip",null);p(this,"lsPermissionBanner",null);p(this,"captureActive",!1);p(this,"captureStream",null);p(this,"captureLivenessInterval",null);p(this,"activePresetGeneration",0);p(this,"boardQueue",[]);p(this,"boardQueueActive",null);p(this,"boardAnimTimer",null);p(this,"settledBoardToolCallIds",new Set);p(this,"activeNavigate",null);p(this,"settledNavigateToolCallIds",new Set);p(this,"activeModalPreset",null);p(this,"boardClient",null);p(this,"boardTurnMonitor",new dc(()=>this.buildBoardVerification(),()=>this.boardQueueActive!==null||this.boardQueue.length>0||this.boardDrawInProgress||this.activeBoardProgress!==null));p(this,"activeBoardProgress",null);p(this,"boardSizePreset",Zc());p(this,"boardViewMode","expanded");p(this,"boardDragPosition",null);p(this,"boardDragWiredModal",null)}resetChalkboard(){this.chalkboardContent="",this.boardChapterTitle=""}resetBoardSession(){this.boardTurnMonitor.stop(),this.boardDragPosition=null,this.boardDragWiredModal=null,this.activePresetGeneration++,On(!1),this.clearBoardAnimTimer(),this.boardQueue=[],this.boardQueueActive=null,this.settledBoardToolCallIds.clear(),this.activeBoardProgress=null,this.boardClient=null,this.chalkboardContent="",this.boardChapterTitle="",this.boardDrawInProgress=!1,this.boardInk=Ht(),this.closeBoardUi()}getChalkboardContent(){return this.chalkboardContent}hasActiveBoardSession(){return!!document.querySelector(".vnr-whiteboard-modal")||this.chalkboardContent.length>0||this.boardInk.strokes.length>0||this.boardInk.labels.length>0||this.boardQueue.length>0||this.boardQueueActive!==null}syncChalkboardNotes(){const A=document.querySelector(".vnr-whiteboard-textarea");A&&(A.value.length>this.chalkboardContent.length?this.chalkboardContent=A.value:this.chalkboardContent!==A.value&&(A.value=this.chalkboardContent,A.scrollTop=A.scrollHeight))}buildBoardVerification(){this.syncChalkboardNotes();const A=this.chalkboardContent,e=this.boardInk.strokes.length>0;return{notes_char_count:A.length,notes_preview:A.slice(0,200)||null,has_notes_on_board:A.length>0,has_diagram_geometry:e,strokes_on_board:this.boardInk.strokes.length,labels_on_board:this.boardInk.labels.length,chapter_title:this.boardChapterTitle||null,verification_hint:"Do NOT tell the student notes or diagrams are visible unless has_notes_on_board or has_diagram_geometry is true in this tool result."}}splitChapterHeading(A){const e=A.trim(),t=e.split(`
2730
+ `,$c='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M4 14h6v6"/><path d="M20 10h-6V4"/><path d="M14 10l7-7"/><path d="M3 21l7-7"/></svg>',Ad='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><polyline points="15 3 21 3 21 9"/><polyline points="9 21 3 21 3 15"/><line x1="21" y1="3" x2="14" y2="10"/><line x1="3" y1="21" x2="10" y2="14"/></svg>',ed='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',td="vanira:board-size",nd={small:{maxWidth:"min(440px, 94vw)",height:"min(340px, 58vh)"},medium:{maxWidth:"min(680px, 96vw)",height:"min(520px, 78vh)"},large:{maxWidth:"min(920px, 98vw)",height:"min(680px, 88vh)"}};function rd(){try{const n=localStorage.getItem(td);if(n==="small"||n==="medium"||n==="large")return n}catch{}return"medium"}function bi(n,A){return A===1?n:n.replace(/(\d+(?:\.\d+)?)(px|vw|vh)/g,(e,t,r)=>{const s=Number(t)*A;return`${r==="px"?Math.round(s):s}${r}`})}function Qi(n){n.style.cssText=["position:fixed","left:-2000px","top:0","width:640px","height:480px","opacity:0.01","pointer-events:none","z-index:-1"].join(";")}async function Mt(n,A=8e3){return await n.play().catch(()=>{}),n.videoWidth>0&&n.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&await xi(n,1500)?!0:new Promise(e=>{let t=!1;const r=async o=>{if(!t){if(t=!0,n.removeEventListener("loadeddata",s),n.removeEventListener("playing",s),clearTimeout(i),!o){e(!1);return}e(await xi(n,1500))}},s=()=>{n.videoWidth>0&&r(!0)};n.addEventListener("loadeddata",s),n.addEventListener("playing",s);const i=setTimeout(()=>void r(n.videoWidth>0),A);s()})}function xi(n,A){const e=n.requestVideoFrameCallback;return typeof e!="function"?Promise.resolve(n.videoWidth>0):new Promise(t=>{const r=setTimeout(()=>t(!1),A);e.call(n,()=>{clearTimeout(r),t(n.videoWidth>0)})})}function kt(n,A){if(A){const e=A.querySelector("video");if(e&&e.videoWidth>0)return e}return n}function Ei(n,A,e){const t=Math.min(A,48),r=Math.min(e,48);if(t<=0||r<=0)return!0;const{data:s}=n.getImageData(0,0,t,r);let i=0;const o=s.length/4;for(let a=0;a<s.length;a+=4)i+=s[a]*.299+s[a+1]*.587+s[a+2]*.114;return i/o<14}async function sd(n,A,e=.75){if(!n||n.videoWidth===0)return null;const t=n.videoWidth,r=n.videoHeight,s=Math.min(1,A/t),i=document.createElement("canvas");i.width=Math.round(t*s),i.height=Math.round(r*s);const o=i.getContext("2d",{willReadFrequently:!0});return!o||(o.drawImage(n,0,0,i.width,i.height),Ei(o,i.width,i.height))?null:await new Promise(a=>{i.toBlob(l=>a(l),"image/jpeg",e)})}async function ir(n,A,e,t=.75){const r=await sd(n,e,t);if(r)return r;const s=A==null?void 0:A.getVideoTracks()[0];if(!s||s.readyState!=="live"||typeof ImageCapture>"u")return null;try{const o=await new ImageCapture(s).grabFrame(),a=Math.min(1,e/o.width),l=Math.round(o.width*a),d=Math.round(o.height*a),c=document.createElement("canvas");c.width=l,c.height=d;const h=c.getContext("2d",{willReadFrequently:!0});return h?(h.drawImage(o,0,0,l,d),o.close(),Ei(h,l,d)?null:await new Promise(u=>{c.toBlob(g=>u(g),"image/jpeg",t)})):(o.close(),null)}catch(i){return si("[LiveCapture]",`ImageCapture failed: ${i instanceof Error?i.message:String(i)}`),null}}async function Ui(n,A,e,t=20,r=250){for(let s=0;s<t;s++){if(await ir(n,A,e,.6))return!0;await new Promise(o=>setTimeout(o,r))}return!1}class id{constructor(A){p(this,"overlay",null);p(this,"styleInjected",!1);p(this,"chalkboardContent","");p(this,"boardChapterTitle","");p(this,"boardDrawInProgress",!1);p(this,"boardInk",Ht());p(this,"calViewYear",0);p(this,"calViewMonth",0);p(this,"calSelectedTs",null);p(this,"calSelectedTime",null);p(this,"lvSessionId",null);p(this,"lvStream",null);p(this,"lvCaptureInterval",null);p(this,"lvAutoStopTimeout",null);p(this,"lvFrameSeq",0);p(this,"lvVideo",null);p(this,"lvCanvas",null);p(this,"lvPip",null);p(this,"lvPermissionBanner",null);p(this,"lsSessionId",null);p(this,"lsStream",null);p(this,"lsCaptureInterval",null);p(this,"lsAutoStopTimeout",null);p(this,"lsFrameSeq",0);p(this,"lsVideo",null);p(this,"lsCanvas",null);p(this,"lsPip",null);p(this,"lsPermissionBanner",null);p(this,"captureActive",!1);p(this,"captureStream",null);p(this,"captureLivenessInterval",null);p(this,"activePresetGeneration",0);p(this,"boardQueue",[]);p(this,"boardQueueActive",null);p(this,"boardAnimTimer",null);p(this,"settledBoardToolCallIds",new Set);p(this,"activeNavigate",null);p(this,"settledNavigateToolCallIds",new Set);p(this,"activeModalPreset",null);p(this,"boardClient",null);p(this,"boardTurnMonitor",new mc(()=>this.buildBoardVerification(),()=>this.boardQueueActive!==null||this.boardQueue.length>0||this.boardDrawInProgress||this.activeBoardProgress!==null));p(this,"activeBoardProgress",null);p(this,"boardSizePreset",rd());p(this,"boardViewMode","expanded");p(this,"boardDragPosition",null);p(this,"boardDragWiredModal",null)}resetChalkboard(){this.chalkboardContent="",this.boardChapterTitle=""}resetBoardSession(){this.boardTurnMonitor.stop(),this.boardDragPosition=null,this.boardDragWiredModal=null,this.activePresetGeneration++,Gn(!1),this.clearBoardAnimTimer(),this.boardQueue=[],this.boardQueueActive=null,this.settledBoardToolCallIds.clear(),this.activeBoardProgress=null,this.boardClient=null,this.chalkboardContent="",this.boardChapterTitle="",this.boardDrawInProgress=!1,this.boardInk=Ht(),this.closeBoardUi()}getChalkboardContent(){return this.chalkboardContent}hasActiveBoardSession(){return!!document.querySelector(".vnr-whiteboard-modal")||this.chalkboardContent.length>0||this.boardInk.strokes.length>0||this.boardInk.labels.length>0||this.boardQueue.length>0||this.boardQueueActive!==null}syncChalkboardNotes(){const A=document.querySelector(".vnr-whiteboard-textarea");A&&(A.value.length>this.chalkboardContent.length?this.chalkboardContent=A.value:this.chalkboardContent!==A.value&&(A.value=this.chalkboardContent,A.scrollTop=A.scrollHeight))}buildBoardVerification(){this.syncChalkboardNotes();const A=this.chalkboardContent,e=this.boardInk.strokes.length>0;return{notes_char_count:A.length,notes_preview:A.slice(0,200)||null,has_notes_on_board:A.length>0,has_diagram_geometry:e,strokes_on_board:this.boardInk.strokes.length,labels_on_board:this.boardInk.labels.length,chapter_title:this.boardChapterTitle||null,verification_hint:"Do NOT tell the student notes or diagrams are visible unless has_notes_on_board or has_diagram_geometry is true in this tool result."}}splitChapterHeading(A){const e=A.trim(),t=e.split(`
2731
2731
  `);if(!/^chapter\s*:/i.test(t[0]??""))return{chapterTitle:null,body:e};const r=t[0].replace(/^chapter\s*:\s*/i,"").trim()||t[0].trim(),s=t.slice(1).join(`
2732
- `).trim();return{chapterTitle:r,body:s}}getBoardSnapshot(){this.syncChalkboardNotes();const A=this.boardInk.strokes.length>0||this.boardInk.labels.length>0,e=this.chalkboardContent;return{board_layout:A?"diagram_top_notes_bottom":"notes_full",has_diagram:A,strokes_on_board:this.boardInk.strokes.length,labels_on_board:this.boardInk.labels.length,board_size:{width:OA,height:RA},coordinate_system:"board_normalized_or_pixels",notes_content:e,notes_char_count:e.length,chapter_title:this.boardChapterTitle||null,agent_hint:A?"TOP = diagram (800×500), BOTTOM = notes. strokes:[{points,close}] — right △: [[0.15,0.25],[0.15,0.75],[0.55,0.75]]. labels below (y≥0.78). clear_old_diagrams_on_board:true wipes.":'draw_on_board: strokes:[{points:[[0.15,0.25],[0.15,0.75],[0.55,0.75]],close:true}] for right triangle. labels:[{x:0.35,y:0.82,text:"..."}]. NOT bare points string or centered apex.'}}syncDiagramLayer(A){ui(A,this.boardInk,{strokeColor:"#ffffff",labelColor:"#4A9EFF",strokeWidth:6})}getBoardProgressSnapshot(){const A=this.activeBoardProgress;if(!A||A.plannedUnits<=0)return null;const e=this.chalkboardContent,t=A.mode==="type"?e.slice(A.textAtStart.length):e;return{write_progress_pct:Math.min(100,Math.round(A.unitsDone/A.plannedUnits*100)),characters_written:A.unitsDone,characters_planned:A.plannedUnits,partial_text_this_command:t}}getNavigateTerminalResult(A,e,t){return{status:A,reason:e||(A==="interrupted"?"Server interrupted":"Navigation cancelled"),preset_id:b.Navigate,navigated_to:t,target_url:t}}completeNavigate(A={}){const e=this.activeNavigate;if(!e||e.settled)return;const t=e.ctx.toolCallId;t&&this.settledNavigateToolCallIds.has(t)||(e.settled=!0,t&&this.settledNavigateToolCallIds.add(t),this.activeNavigate=null,e.onComplete({status:"success",preset_id:b.Navigate,navigated_to:e.targetUrl,target_url:e.targetUrl,...A}))}cancelNavigate(A,e){const t=this.activeNavigate;if(!t||t.settled)return;const r=t.ctx.toolCallId;r&&this.settledNavigateToolCallIds.has(r)||(t.settled=!0,r&&this.settledNavigateToolCallIds.add(r),this.activeNavigate=null,t.onCancel(A,{status:e}))}bindActiveModalPreset(A,e,t,r){this.activeModalPreset={ctx:A,presetId:e,onComplete:t,onCancel:r}}clearActiveModalPreset(){this.activeModalPreset&&(this.activeModalPreset.settled=!0,this.activeModalPreset=null)}cancelActiveModalPreset(A,e){const t=this.activeModalPreset;!t||t.settled||(t.settled=!0,this.activeModalPreset=null,this.overlay&&(this.overlay.remove(),this.overlay=null),this.stopCaptureCamera(),t.onCancel(A,{status:e}))}getBoardTerminalResult(A,e,t){const r={status:A,reason:e||(A==="interrupted"?"Server interrupted":"User dismissed"),...t?{preset_id:t}:{}};if(!t||!as(t))return r;const s=this.chalkboardContent,i=this.getBoardProgressSnapshot();return{...r,text_written:s,whiteboard_content:s,board_snapshot:this.getBoardSnapshot(),...i||{}}}flushBoardContext(A){if(this.boardClient)try{typeof this.boardClient.sendContextUpdate=="function"?this.boardClient.sendContextUpdate(A):typeof this.boardClient.updateContext=="function"&&this.boardClient.updateContext(A)}catch{}}clearActiveBoardProgress(){this.activeBoardProgress=null}syncBoardProgressUnits(A){this.activeBoardProgress&&(this.activeBoardProgress.unitsDone=A)}buildBoardContextPayload(A,e,t){const r=this.activeBoardProgress,s=(r==null?void 0:r.ctx.toolCallId)===A.toolCallId;let i,o,a,l;s&&r&&(o=r.unitsDone,a=r.plannedUnits,i=r.plannedUnits>0?Math.min(100,Math.round(r.unitsDone/r.plannedUnits*100)):100,r.mode==="type"?l=e.slice(r.textAtStart.length):l=e);const c={ui_state:"whiteboard_active",tool_status:"interrupted",visible_preset:A.presetId,tool_call_id:A.toolCallId,interrupted:!0,interrupt_reason:t||"Server interrupted",whiteboard_content:e};if(i!==void 0){c.write_progress_pct=i,c.characters_written=o,c.characters_planned=a,c.partial_text_this_command=l??"";const d=(r==null?void 0:r.mode)==="erase"?"erase":"write",h=(l??"").length>120?`${(l??"").slice(0,120)}…`:l??"",u=(r==null?void 0:r.mode)==="erase"?"The board already reflects this partial erase — continue from here; do not repeat earlier steps.":"The board already contains this content — continue typing from here; do not repeat what is already on the board.";c.message=`Whiteboard ${d} interrupted at ${i}% (${o}/${a} characters this command). Partial text this turn: "${h}". `+u}return c}sendBoardContextUpdate(A,e,t){this.flushBoardContext(this.buildBoardContextPayload(A,e,t))}handle(A,e,t,r){const s=A.data||A;let i={};const o=s.arguments||s.args;if(typeof o=="string")try{i=JSON.parse(o)}catch{i={}}else o&&typeof o=="object"&&(i=o);const a=s.client_fields||{},l=pt(a,o,s.name||s.tool_name);if(!l||!LA(l))return!1;const c={...i,...a},d={toolCallId:s.tool_call_id||s.call_id||"",presetId:l,clientFields:c,args:i,toolCall:s};this.injectStyles();const h=!!document.querySelector(".vnr-whiteboard-modal");switch(as(l)?h||this.dismissNonBoardUi():Ja(l)||Xa(l)||this.dismiss(),l){case b.Calendar:return this.renderCalendar(d,e,t),!0;case b.Form:return this.renderForm(d,e,t),!0;case b.Camera:return this.renderCamera(d,e,t,r),!0;case b.Upload:return this.renderUpload(d,e,t,r),!0;case b.ClipRegion:return this.renderClipRegion(d,e,t,r),!0;case b.TabScreenshot:return this.renderTabScreenshot(d,e,t,r),!0;case b.Navigate:return this.renderNavigate(d,e,t),!0;case b.HighlightElement:return this.renderHighlight(d,e,t),!0;case b.ClickElement:return this.renderClickElement(d,e,t),!0;case b.SelectOption:return this.renderSelectOption(d,e,t),!0;case b.SetDate:return this.renderSetDate(d,e,t),!0;case b.TypeText:return this.enqueueBoardCommand({ctx:d,presetId:b.TypeText,onComplete:e,onCancel:t},r),!0;case b.EraseText:return this.enqueueBoardCommand({ctx:d,presetId:b.EraseText,onComplete:e,onCancel:t},r),!0;case b.Draw:return this.enqueueBoardCommand({ctx:d,presetId:b.Draw,onComplete:e,onCancel:t},r),!0;case b.EraseDraw:return this.enqueueBoardCommand({ctx:d,presetId:b.EraseDraw,onComplete:e,onCancel:t},r),!0;case b.LiveVision:return this.handleOpenLiveCamera(c,r,d.toolCallId),e({status:"success",preset_id:b.LiveVision,message:"Live camera session started"}),!0;case b.CloseLiveCamera:return this.handleCloseLiveCamera(r),e({status:"success",preset_id:b.CloseLiveCamera,message:"Live camera stopped"}),!0;case b.LiveScreen:return this.handleOpenLiveScreen(c,r,d.toolCallId),e({status:"success",preset_id:b.LiveScreen,message:"Live screen share started"}),!0;case b.CloseLiveScreen:return this.handleCloseLiveScreen(r),e({status:"success",preset_id:b.CloseLiveScreen,message:"Live screen share stopped"}),!0;case b.ScreenInk:return this.renderScreenInk(d,e,t),!0;case b.ScreenCursor:return this.renderScreenCursor(d,e,t),!0;case b.ScreenClick:return this.renderScreenClick(d,e,t),!0;case b.ClearScreenOverlay:return Wn(),e({status:"success",preset_id:b.ClearScreenOverlay,message:"Screen overlay cleared"}),!0;case b.PageScan:return sc(d,e,t,r),!0;case b.PointAt:return ic(d,e,t),!0;case b.OutlineTargets:return oc(d,e,t),!0;case b.ClearGuide:return ac(d,e),!0;default:return!1}}abortBoardTools(A="Interrupted",e){const t=this.activeNavigate;t&&!t.settled&&(!e||t.ctx.toolCallId===e)&&this.cancelNavigate(A,"interrupted");const r=this.activeModalPreset;r&&!r.settled&&(!e||r.ctx.toolCallId===e)&&this.cancelActiveModalPreset(A,"interrupted");const s=o=>!e||o.ctx.toolCallId===e;if(this.boardQueueActive&&s(this.boardQueueActive)||this.boardQueue.some(s)){if(this.clearBoardAnimTimer(),this.activePresetGeneration++,this.boardQueueActive&&s(this.boardQueueActive)){const o=this.boardQueueActive;this.boardQueueActive=null,this.settleBoardCancel(o,A,"interrupted")}this.boardQueue=this.boardQueue.filter(o=>s(o)?(this.settleBoardCancel(o,A,"interrupted"),!1):!0)}}dismiss(){this.activeNavigate&&!this.activeNavigate.settled&&this.cancelNavigate("Session ended","interrupted"),this.activeModalPreset=null,this.resetBoardSession(),this.stopCaptureCamera(),this.handleCloseLiveCamera(null),this.handleCloseLiveScreen(null),Gn(),this.overlay&&(this.overlay.remove(),this.overlay=null)}teardownSession(){this.dismiss(),Wn()}enqueueBoardCommand(A,e){var r;e&&(this.boardClient=e),this.boardClient&&document.querySelector(".vnr-whiteboard-modal")&&this.ensureBoardTurnMonitor();const t=A.ctx.toolCallId;t&&(this.settledBoardToolCallIds.has(t)||((r=this.boardQueueActive)==null?void 0:r.ctx.toolCallId)===t||this.boardQueue.some(s=>s.ctx.toolCallId===t))||(this.boardQueue.push(A),BA("Board:Queue",`Enqueued ${A.presetId}`,{pending:this.boardQueue.length,toolCallId:A.ctx.toolCallId}),this.processBoardQueue())}processBoardQueue(){if(this.boardQueueActive||this.boardQueue.length===0)return;const A=this.boardQueue.shift();this.boardQueueActive=A,BA("Board:Queue",`Running ${A.presetId}`,{toolCallId:A.ctx.toolCallId});const e=(s,i)=>{if(this.boardQueueActive===A){if(A.settled||A.aborted){this.boardQueueActive=null;return}this.boardQueueActive=null,i!==void 0?this.settleBoardCancel(A,i):this.settleBoardComplete(A,s||{}),this.processBoardQueue()}},t=s=>e(s),r=s=>{this.activePresetGeneration++,e(null,s||"Cancelled"),!this.boardQueueActive&&this.boardQueue.length===0&&this.closeBoardUi()};A.presetId===b.TypeText?this.renderTypeText(A.ctx,t,r):A.presetId===b.Draw?this.renderDrawShapes(A.ctx,t,r):A.presetId===b.EraseDraw?this.renderEraseDrawingBoard(A.ctx,t,r):this.renderEraseText(A.ctx,t,r)}closeBoardUi(){this.boardTurnMonitor.stop(),this.boardViewMode="expanded",On(!1),this.dismissWhiteboard(),this.overlay&&(!document.body.contains(this.overlay)||!this.overlay.childElementCount)&&(this.overlay.remove(),this.overlay=null)}getBoardOverlay(){const A=document.querySelector(".vnr-whiteboard-modal");return(A==null?void 0:A.closest(".vnr-overlay"))??this.overlay}applyBoardLayoutMode(A,e){const t=A??this.getBoardOverlay(),r=e??document.querySelector(".vnr-whiteboard-modal");if(!t||!r)return;const s=this.boardViewMode==="reduced";t.classList.remove("vnr-whiteboard-overlay-hidden"),t.classList.add("vnr-whiteboard-overlay"),t.classList.toggle("vnr-whiteboard-overlay-reduced",s),t.classList.toggle("vnr-whiteboard-overlay-expanded",!s),this.syncBoardResizeButton(r.querySelector(".vnr-whiteboard-resize-btn")),On(!0,s),this.syncBoardDragLayout(r),this.ensureBoardTurnMonitor()}clearBoardDragStyles(A){A.style.removeProperty("position"),A.style.removeProperty("left"),A.style.removeProperty("top"),A.style.removeProperty("right"),A.style.removeProperty("bottom"),A.style.removeProperty("margin"),A.style.removeProperty("transform")}clampBoardDragPosition(A,e,t){const s=Math.max(8,window.innerWidth-A.offsetWidth-8),i=Math.max(8,window.innerHeight-A.offsetHeight-8);return{x:Math.min(s,Math.max(8,e)),y:Math.min(i,Math.max(8,t))}}applyBoardDragPosition(A,e,t){const r=this.clampBoardDragPosition(A,e,t);A.style.setProperty("position","fixed","important"),A.style.setProperty("left",`${r.x}px`,"important"),A.style.setProperty("top",`${r.y}px`,"important"),A.style.setProperty("right","auto","important"),A.style.setProperty("bottom","auto","important"),A.style.setProperty("margin","0","important"),A.style.setProperty("transform","none","important"),this.boardDragPosition=r}defaultReducedBoardPosition(A){const t=Math.max(96,20+(typeof window<"u"?Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue("env(safe-area-inset-bottom)")||"0",10):0));return this.clampBoardDragPosition(A,window.innerWidth-A.offsetWidth-16,window.innerHeight-A.offsetHeight-t)}syncBoardDragLayout(A){if(this.boardViewMode==="reduced"){const e=this.boardDragPosition??this.defaultReducedBoardPosition(A);this.applyBoardDragPosition(A,e.x,e.y)}else this.clearBoardDragStyles(A)}wireBoardDrag(A,e){if(this.boardDragWiredModal===e)return;this.boardDragWiredModal=e;let t=!1,r=0,s=0,i=0,o=0;const a=d=>{if(this.boardViewMode!=="reduced"||d.target.closest("button"))return;t=!0,A.setPointerCapture(d.pointerId);const h=e.getBoundingClientRect();r=d.clientX,s=d.clientY,i=h.left,o=h.top,A.classList.add("is-dragging"),d.preventDefault()},l=d=>{t&&this.applyBoardDragPosition(e,i+(d.clientX-r),o+(d.clientY-s))},c=d=>{t&&(t=!1,A.classList.remove("is-dragging"),A.hasPointerCapture(d.pointerId)&&A.releasePointerCapture(d.pointerId))};A.addEventListener("pointerdown",a),A.addEventListener("pointermove",l),A.addEventListener("pointerup",c),A.addEventListener("pointercancel",c)}ensureBoardTurnMonitor(){this.boardClient&&this.boardTurnMonitor.start(A=>this.flushBoardContext(A))}revealBoardUi(A){this.applyBoardLayoutMode(this.getBoardOverlay(),A)}dismissNonBoardUi(){this.stopCaptureCamera(),this.handleCloseLiveCamera(null),this.handleCloseLiveScreen(null),Gn(),this.overlay&&!this.overlay.querySelector(".vnr-whiteboard-modal")&&(this.overlay.remove(),this.overlay=null)}settleBoardCancel(A,e,t="cancelled"){if(A.settled)return;A.aborted=!0,A.settled=!0;const r=A.ctx.toolCallId;r&&this.settledBoardToolCallIds.add(r);const s=this.chalkboardContent;t==="interrupted"&&this.sendBoardContextUpdate(A.ctx,s,e),A.onCancel(e,{status:t}),this.clearActiveBoardProgress()}settleBoardComplete(A,e){if(A.settled||A.aborted)return;A.settled=!0;const t=A.ctx.toolCallId;t&&this.settledBoardToolCallIds.add(t);const r=this.chalkboardContent;A.onComplete({status:"success",preset_id:A.presetId,tool_call_id:A.ctx.toolCallId,text_written:r,whiteboard_content:r,...this.buildBoardVerification(),...e}),this.clearActiveBoardProgress()}clearBoardAnimTimer(){this.boardAnimTimer&&(clearTimeout(this.boardAnimTimer),this.boardAnimTimer=null)}scheduleBoardAnim(A,e){this.clearBoardAnimTimer(),this.boardAnimTimer=setTimeout(()=>{this.boardAnimTimer=null,A()},e)}dismissWhiteboard(){document.querySelectorAll(".vnr-whiteboard-modal").forEach(A=>{var e;(e=A.closest(".vnr-overlay"))==null||e.remove()}),this.overlay&&!document.body.contains(this.overlay)&&(this.overlay=null)}stopCaptureCamera(){var A;this.captureActive=!1,this.captureLivenessInterval&&(clearInterval(this.captureLivenessInterval),this.captureLivenessInterval=null),(A=this.captureStream)==null||A.getTracks().forEach(e=>e.stop()),this.captureStream=null}getBrowserPermissionHint(){const A=navigator.userAgent;return/iPhone|iPad/i.test(A)?"Open Settings → Safari → Camera and allow access for this site.":/Android/i.test(A)?"Tap the lock icon in the address bar → Permissions → Camera → Allow.":"Click the camera icon in your browser's address bar and allow access."}fillCameraPermissionPrompt(A,e){A.style.display="flex",A.innerHTML=`
2732
+ `).trim();return{chapterTitle:r,body:s}}getBoardSnapshot(){this.syncChalkboardNotes();const A=this.boardInk.strokes.length>0||this.boardInk.labels.length>0,e=this.chalkboardContent;return{board_layout:A?"diagram_top_notes_bottom":"notes_full",has_diagram:A,strokes_on_board:this.boardInk.strokes.length,labels_on_board:this.boardInk.labels.length,board_size:{width:OA,height:RA},coordinate_system:"board_normalized_or_pixels",notes_content:e,notes_char_count:e.length,chapter_title:this.boardChapterTitle||null,agent_hint:A?"TOP = diagram (800×500), BOTTOM = notes. strokes:[{points,close}] — right △: [[0.15,0.25],[0.15,0.75],[0.55,0.75]]. labels below (y≥0.78). clear_old_diagrams_on_board:true wipes.":'draw_on_board: strokes:[{points:[[0.15,0.25],[0.15,0.75],[0.55,0.75]],close:true}] for right triangle. labels:[{x:0.35,y:0.82,text:"..."}]. NOT bare points string or centered apex.'}}syncDiagramLayer(A){fi(A,this.boardInk,{strokeColor:"#ffffff",labelColor:"#4A9EFF",strokeWidth:6})}getBoardProgressSnapshot(){const A=this.activeBoardProgress;if(!A||A.plannedUnits<=0)return null;const e=this.chalkboardContent,t=A.mode==="type"?e.slice(A.textAtStart.length):e;return{write_progress_pct:Math.min(100,Math.round(A.unitsDone/A.plannedUnits*100)),characters_written:A.unitsDone,characters_planned:A.plannedUnits,partial_text_this_command:t}}getNavigateTerminalResult(A,e,t){return{status:A,reason:e||(A==="interrupted"?"Server interrupted":"Navigation cancelled"),preset_id:b.Navigate,navigated_to:t,target_url:t}}completeNavigate(A={}){const e=this.activeNavigate;if(!e||e.settled)return;const t=e.ctx.toolCallId;t&&this.settledNavigateToolCallIds.has(t)||(e.settled=!0,t&&this.settledNavigateToolCallIds.add(t),this.activeNavigate=null,e.onComplete({status:"success",preset_id:b.Navigate,navigated_to:e.targetUrl,target_url:e.targetUrl,...A}))}cancelNavigate(A,e){const t=this.activeNavigate;if(!t||t.settled)return;const r=t.ctx.toolCallId;r&&this.settledNavigateToolCallIds.has(r)||(t.settled=!0,r&&this.settledNavigateToolCallIds.add(r),this.activeNavigate=null,t.onCancel(A,{status:e}))}bindActiveModalPreset(A,e,t,r){this.activeModalPreset={ctx:A,presetId:e,onComplete:t,onCancel:r}}clearActiveModalPreset(){this.activeModalPreset&&(this.activeModalPreset.settled=!0,this.activeModalPreset=null)}cancelActiveModalPreset(A,e){const t=this.activeModalPreset;!t||t.settled||(t.settled=!0,this.activeModalPreset=null,this.overlay&&(this.overlay.remove(),this.overlay=null),this.stopCaptureCamera(),t.onCancel(A,{status:e}))}getBoardTerminalResult(A,e,t){const r={status:A,reason:e||(A==="interrupted"?"Server interrupted":"User dismissed"),...t?{preset_id:t}:{}};if(!t||!ds(t))return r;const s=this.chalkboardContent,i=this.getBoardProgressSnapshot();return{...r,text_written:s,whiteboard_content:s,board_snapshot:this.getBoardSnapshot(),...i||{}}}flushBoardContext(A){if(this.boardClient)try{typeof this.boardClient.sendContextUpdate=="function"?this.boardClient.sendContextUpdate(A):typeof this.boardClient.updateContext=="function"&&this.boardClient.updateContext(A)}catch{}}clearActiveBoardProgress(){this.activeBoardProgress=null}syncBoardProgressUnits(A){this.activeBoardProgress&&(this.activeBoardProgress.unitsDone=A)}buildBoardContextPayload(A,e,t){const r=this.activeBoardProgress,s=(r==null?void 0:r.ctx.toolCallId)===A.toolCallId;let i,o,a,l;s&&r&&(o=r.unitsDone,a=r.plannedUnits,i=r.plannedUnits>0?Math.min(100,Math.round(r.unitsDone/r.plannedUnits*100)):100,r.mode==="type"?l=e.slice(r.textAtStart.length):l=e);const d={ui_state:"whiteboard_active",tool_status:"interrupted",visible_preset:A.presetId,tool_call_id:A.toolCallId,interrupted:!0,interrupt_reason:t||"Server interrupted",whiteboard_content:e};if(i!==void 0){d.write_progress_pct=i,d.characters_written=o,d.characters_planned=a,d.partial_text_this_command=l??"";const c=(r==null?void 0:r.mode)==="erase"?"erase":"write",h=(l??"").length>120?`${(l??"").slice(0,120)}…`:l??"",u=(r==null?void 0:r.mode)==="erase"?"The board already reflects this partial erase — continue from here; do not repeat earlier steps.":"The board already contains this content — continue typing from here; do not repeat what is already on the board.";d.message=`Whiteboard ${c} interrupted at ${i}% (${o}/${a} characters this command). Partial text this turn: "${h}". `+u}return d}sendBoardContextUpdate(A,e,t){this.flushBoardContext(this.buildBoardContextPayload(A,e,t))}handle(A,e,t,r){const s=A.data||A;let i={};const o=s.arguments||s.args;if(typeof o=="string")try{i=JSON.parse(o)}catch{i={}}else o&&typeof o=="object"&&(i=o);const a=s.client_fields||{},l=pt(a,o,s.name||s.tool_name);if(!l||!LA(l))return!1;const d={...i,...a},c={toolCallId:s.tool_call_id||s.call_id||"",presetId:l,clientFields:d,args:i,toolCall:s};this.injectStyles();const h=!!document.querySelector(".vnr-whiteboard-modal");switch(ds(l)?h||this.dismissNonBoardUi():el(l)||tl(l)||this.dismiss(),l){case b.Calendar:return this.renderCalendar(c,e,t),!0;case b.Form:return this.renderForm(c,e,t),!0;case b.Camera:return this.renderCamera(c,e,t,r),!0;case b.Upload:return this.renderUpload(c,e,t,r),!0;case b.ClipRegion:return this.renderClipRegion(c,e,t,r),!0;case b.TabScreenshot:return this.renderTabScreenshot(c,e,t,r),!0;case b.Navigate:return this.renderNavigate(c,e,t),!0;case b.HighlightElement:return this.renderHighlight(c,e,t),!0;case b.ClickElement:return this.renderClickElement(c,e,t),!0;case b.SelectOption:return this.renderSelectOption(c,e,t),!0;case b.SetDate:return this.renderSetDate(c,e,t),!0;case b.TypeText:return this.enqueueBoardCommand({ctx:c,presetId:b.TypeText,onComplete:e,onCancel:t},r),!0;case b.EraseText:return this.enqueueBoardCommand({ctx:c,presetId:b.EraseText,onComplete:e,onCancel:t},r),!0;case b.Draw:return this.enqueueBoardCommand({ctx:c,presetId:b.Draw,onComplete:e,onCancel:t},r),!0;case b.EraseDraw:return this.enqueueBoardCommand({ctx:c,presetId:b.EraseDraw,onComplete:e,onCancel:t},r),!0;case b.LiveVision:return this.handleOpenLiveCamera(d,r,c.toolCallId),e({status:"success",preset_id:b.LiveVision,message:"Live camera session started"}),!0;case b.CloseLiveCamera:return this.handleCloseLiveCamera(r),e({status:"success",preset_id:b.CloseLiveCamera,message:"Live camera stopped"}),!0;case b.LiveScreen:return this.handleOpenLiveScreen(d,r,c.toolCallId),e({status:"success",preset_id:b.LiveScreen,message:"Live screen share started"}),!0;case b.CloseLiveScreen:return this.handleCloseLiveScreen(r),e({status:"success",preset_id:b.CloseLiveScreen,message:"Live screen share stopped"}),!0;case b.ScreenInk:return this.renderScreenInk(c,e,t),!0;case b.ScreenCursor:return this.renderScreenCursor(c,e,t),!0;case b.ScreenClick:return this.renderScreenClick(c,e,t),!0;case b.ClearScreenOverlay:return Zn(),e({status:"success",preset_id:b.ClearScreenOverlay,message:"Screen overlay cleared"}),!0;case b.PageScan:return uc(c,e,t,r),!0;case b.PointAt:return gc(c,e,t),!0;case b.OutlineTargets:return pc(c,e,t),!0;case b.ClearGuide:return Bc(c,e),!0;default:return!1}}abortBoardTools(A="Interrupted",e){const t=this.activeNavigate;t&&!t.settled&&(!e||t.ctx.toolCallId===e)&&this.cancelNavigate(A,"interrupted");const r=this.activeModalPreset;r&&!r.settled&&(!e||r.ctx.toolCallId===e)&&this.cancelActiveModalPreset(A,"interrupted");const s=o=>!e||o.ctx.toolCallId===e;if(this.boardQueueActive&&s(this.boardQueueActive)||this.boardQueue.some(s)){if(this.clearBoardAnimTimer(),this.activePresetGeneration++,this.boardQueueActive&&s(this.boardQueueActive)){const o=this.boardQueueActive;this.boardQueueActive=null,this.settleBoardCancel(o,A,"interrupted")}this.boardQueue=this.boardQueue.filter(o=>s(o)?(this.settleBoardCancel(o,A,"interrupted"),!1):!0)}}dismiss(){this.activeNavigate&&!this.activeNavigate.settled&&this.cancelNavigate("Session ended","interrupted"),this.activeModalPreset=null,this.resetBoardSession(),this.stopCaptureCamera(),this.handleCloseLiveCamera(null),this.handleCloseLiveScreen(null),_n(),this.overlay&&(this.overlay.remove(),this.overlay=null)}teardownSession(){this.dismiss(),Zn()}enqueueBoardCommand(A,e){var r;e&&(this.boardClient=e),this.boardClient&&document.querySelector(".vnr-whiteboard-modal")&&this.ensureBoardTurnMonitor();const t=A.ctx.toolCallId;t&&(this.settledBoardToolCallIds.has(t)||((r=this.boardQueueActive)==null?void 0:r.ctx.toolCallId)===t||this.boardQueue.some(s=>s.ctx.toolCallId===t))||(this.boardQueue.push(A),BA("Board:Queue",`Enqueued ${A.presetId}`,{pending:this.boardQueue.length,toolCallId:A.ctx.toolCallId}),this.processBoardQueue())}processBoardQueue(){if(this.boardQueueActive||this.boardQueue.length===0)return;const A=this.boardQueue.shift();this.boardQueueActive=A,BA("Board:Queue",`Running ${A.presetId}`,{toolCallId:A.ctx.toolCallId});const e=(s,i)=>{if(this.boardQueueActive===A){if(A.settled||A.aborted){this.boardQueueActive=null;return}this.boardQueueActive=null,i!==void 0?this.settleBoardCancel(A,i):this.settleBoardComplete(A,s||{}),this.processBoardQueue()}},t=s=>e(s),r=s=>{this.activePresetGeneration++,e(null,s||"Cancelled"),!this.boardQueueActive&&this.boardQueue.length===0&&this.closeBoardUi()};A.presetId===b.TypeText?this.renderTypeText(A.ctx,t,r):A.presetId===b.Draw?this.renderDrawShapes(A.ctx,t,r):A.presetId===b.EraseDraw?this.renderEraseDrawingBoard(A.ctx,t,r):this.renderEraseText(A.ctx,t,r)}closeBoardUi(){this.boardTurnMonitor.stop(),this.boardViewMode="expanded",Gn(!1),this.dismissWhiteboard(),this.overlay&&(!document.body.contains(this.overlay)||!this.overlay.childElementCount)&&(this.overlay.remove(),this.overlay=null)}getBoardOverlay(){const A=document.querySelector(".vnr-whiteboard-modal");return(A==null?void 0:A.closest(".vnr-overlay"))??this.overlay}applyBoardLayoutMode(A,e){const t=A??this.getBoardOverlay(),r=e??document.querySelector(".vnr-whiteboard-modal");if(!t||!r)return;const s=this.boardViewMode==="reduced";t.classList.remove("vnr-whiteboard-overlay-hidden"),t.classList.add("vnr-whiteboard-overlay"),t.classList.toggle("vnr-whiteboard-overlay-reduced",s),t.classList.toggle("vnr-whiteboard-overlay-expanded",!s),this.syncBoardResizeButton(r.querySelector(".vnr-whiteboard-resize-btn")),Gn(!0,s),this.syncBoardDragLayout(r),this.ensureBoardTurnMonitor()}clearBoardDragStyles(A){A.style.removeProperty("position"),A.style.removeProperty("left"),A.style.removeProperty("top"),A.style.removeProperty("right"),A.style.removeProperty("bottom"),A.style.removeProperty("margin"),A.style.removeProperty("transform")}clampBoardDragPosition(A,e,t){const s=Math.max(8,window.innerWidth-A.offsetWidth-8),i=Math.max(8,window.innerHeight-A.offsetHeight-8);return{x:Math.min(s,Math.max(8,e)),y:Math.min(i,Math.max(8,t))}}applyBoardDragPosition(A,e,t){const r=this.clampBoardDragPosition(A,e,t);A.style.setProperty("position","fixed","important"),A.style.setProperty("left",`${r.x}px`,"important"),A.style.setProperty("top",`${r.y}px`,"important"),A.style.setProperty("right","auto","important"),A.style.setProperty("bottom","auto","important"),A.style.setProperty("margin","0","important"),A.style.setProperty("transform","none","important"),this.boardDragPosition=r}defaultReducedBoardPosition(A){const t=Math.max(96,20+(typeof window<"u"?Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue("env(safe-area-inset-bottom)")||"0",10):0));return this.clampBoardDragPosition(A,window.innerWidth-A.offsetWidth-16,window.innerHeight-A.offsetHeight-t)}syncBoardDragLayout(A){if(this.boardViewMode==="reduced"){const e=this.boardDragPosition??this.defaultReducedBoardPosition(A);this.applyBoardDragPosition(A,e.x,e.y)}else this.clearBoardDragStyles(A)}wireBoardDrag(A,e){if(this.boardDragWiredModal===e)return;this.boardDragWiredModal=e;let t=!1,r=0,s=0,i=0,o=0;const a=c=>{if(this.boardViewMode!=="reduced"||c.target.closest("button"))return;t=!0,A.setPointerCapture(c.pointerId);const h=e.getBoundingClientRect();r=c.clientX,s=c.clientY,i=h.left,o=h.top,A.classList.add("is-dragging"),c.preventDefault()},l=c=>{t&&this.applyBoardDragPosition(e,i+(c.clientX-r),o+(c.clientY-s))},d=c=>{t&&(t=!1,A.classList.remove("is-dragging"),A.hasPointerCapture(c.pointerId)&&A.releasePointerCapture(c.pointerId))};A.addEventListener("pointerdown",a),A.addEventListener("pointermove",l),A.addEventListener("pointerup",d),A.addEventListener("pointercancel",d)}ensureBoardTurnMonitor(){this.boardClient&&this.boardTurnMonitor.start(A=>this.flushBoardContext(A))}revealBoardUi(A){this.applyBoardLayoutMode(this.getBoardOverlay(),A)}dismissNonBoardUi(){this.stopCaptureCamera(),this.handleCloseLiveCamera(null),this.handleCloseLiveScreen(null),_n(),this.overlay&&!this.overlay.querySelector(".vnr-whiteboard-modal")&&(this.overlay.remove(),this.overlay=null)}settleBoardCancel(A,e,t="cancelled"){if(A.settled)return;A.aborted=!0,A.settled=!0;const r=A.ctx.toolCallId;r&&this.settledBoardToolCallIds.add(r);const s=this.chalkboardContent;t==="interrupted"&&this.sendBoardContextUpdate(A.ctx,s,e),A.onCancel(e,{status:t}),this.clearActiveBoardProgress()}settleBoardComplete(A,e){if(A.settled||A.aborted)return;A.settled=!0;const t=A.ctx.toolCallId;t&&this.settledBoardToolCallIds.add(t);const r=this.chalkboardContent;A.onComplete({status:"success",preset_id:A.presetId,tool_call_id:A.ctx.toolCallId,text_written:r,whiteboard_content:r,...this.buildBoardVerification(),...e}),this.clearActiveBoardProgress()}clearBoardAnimTimer(){this.boardAnimTimer&&(clearTimeout(this.boardAnimTimer),this.boardAnimTimer=null)}scheduleBoardAnim(A,e){this.clearBoardAnimTimer(),this.boardAnimTimer=setTimeout(()=>{this.boardAnimTimer=null,A()},e)}dismissWhiteboard(){document.querySelectorAll(".vnr-whiteboard-modal").forEach(A=>{var e;(e=A.closest(".vnr-overlay"))==null||e.remove()}),this.overlay&&!document.body.contains(this.overlay)&&(this.overlay=null)}stopCaptureCamera(){var A;this.captureActive=!1,this.captureLivenessInterval&&(clearInterval(this.captureLivenessInterval),this.captureLivenessInterval=null),(A=this.captureStream)==null||A.getTracks().forEach(e=>e.stop()),this.captureStream=null}getBrowserPermissionHint(){const A=navigator.userAgent;return/iPhone|iPad/i.test(A)?"Open Settings → Safari → Camera and allow access for this site.":/Android/i.test(A)?"Tap the lock icon in the address bar → Permissions → Camera → Allow.":"Click the camera icon in your browser's address bar and allow access."}fillCameraPermissionPrompt(A,e){A.style.display="flex",A.innerHTML=`
2733
2733
  <div style="display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;width:100%;height:100%;box-sizing:border-box">
2734
2734
  <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#f87171" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
2735
2735
  <path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/>
@@ -2751,14 +2751,14 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2751
2751
  <button type="button" id="vnr-lv-perm-retry" style="flex:1;padding:9px 14px;border:none;border-radius:10px;background:#6366f1;color:#fff;font-size:13px;font-weight:600;cursor:pointer">Try Again</button>
2752
2752
  <button type="button" id="vnr-lv-perm-dismiss" style="padding:9px 14px;border:1px solid rgba(255,255,255,0.15);border-radius:10px;background:transparent;color:#e2e8f0;font-size:13px;font-weight:600;cursor:pointer">Dismiss</button>
2753
2753
  </div>
2754
- `,t.querySelector("#vnr-lv-perm-retry").addEventListener("click",A),t.querySelector("#vnr-lv-perm-dismiss").addEventListener("click",e),document.body.appendChild(t),this.lvPermissionBanner=t}async sendClientEvent(A,e,t){if(typeof(A==null?void 0:A.sendEventWhenReady)=="function"){await A.sendEventWhenReady(e,t);return}if(A!=null&&A.sendEvent){A.sendEvent(e,t);return}}handleOpenLiveCamera(A,e,t){this.handleCloseLiveScreen(e),this.handleCloseLiveCamera(e);const r=A.scope??"until_call_end",s=Math.min(Number(A.target_fps??1),Number(A.max_fps??3)),i=Number(A.max_width??640),o=A.reason??"camera_capture",a=Number(A.duration_sec??0),l=A.facing_mode??"environment",c=A.show_preview!==!1&&A.show_preview!=="false",d=`lv_${crypto.randomUUID()}`;this.lvSessionId=d,this.lvFrameSeq=0;const h=document.createElement("video");h.autoplay=!0,h.playsInline=!0,h.muted=!0,h.style.display="none",document.body.appendChild(h),this.lvVideo=h;const u=document.createElement("canvas");u.style.display="none",document.body.appendChild(u),this.lvCanvas=u,c&&(this.lvPip=this.createLivePip(l,()=>this.handleCloseLiveCamera(e))),(()=>{navigator.mediaDevices.getUserMedia({video:{facingMode:l,width:{ideal:i*2}}}).then(async B=>{var m;if(!this.lvSessionId){B.getTracks().forEach(w=>w.stop());return}if((m=this.lvPermissionBanner)==null||m.remove(),this.lvPermissionBanner=null,this.lvStream=B,h.srcObject=B,this.lvPip){const w=this.lvPip.querySelector("video");w&&(w.srcObject=B)}await this.sendClientEvent(e,"client_live_camera_started",{data:{session_id:d,scope:r,...r==="timed"&&a>0?{duration_sec:a}:{},reason:o,target_fps:s}});const f=Math.round(1e3/s);this.lvCaptureInterval=setInterval(()=>{this.captureAndSendFrame(e,d,i,o)},f),r==="timed"&&a>0&&(this.lvAutoStopTimeout=setTimeout(()=>{this.handleCloseLiveCamera(e)},a*1e3))}).catch(B=>{var f,m;this.lvSessionId=null,(f=this.lvStream)==null||f.getTracks().forEach(w=>w.stop()),this.lvStream=null,(m=this.lvPip)==null||m.remove(),this.lvPip=null,h.remove(),this.lvVideo=null,u.remove(),this.lvCanvas=null,this.notifyCameraPermissionDenied(e,t),this.showLiveCameraPermissionBanner(()=>this.handleOpenLiveCamera(A,e,t),()=>{var w;(w=this.lvPermissionBanner)==null||w.remove(),this.lvPermissionBanner=null})})})()}handleCloseLiveCamera(A){var t,r,s,i,o;const e=this.lvSessionId;this.lvSessionId=null,this.lvCaptureInterval&&(clearInterval(this.lvCaptureInterval),this.lvCaptureInterval=null),this.lvAutoStopTimeout&&(clearTimeout(this.lvAutoStopTimeout),this.lvAutoStopTimeout=null),(t=this.lvStream)==null||t.getTracks().forEach(a=>a.stop()),this.lvStream=null,(r=this.lvVideo)==null||r.remove(),this.lvVideo=null,(s=this.lvCanvas)==null||s.remove(),this.lvCanvas=null,(i=this.lvPip)==null||i.remove(),this.lvPip=null,(o=this.lvPermissionBanner)==null||o.remove(),this.lvPermissionBanner=null,e&&A&&this.sendClientEvent(A,"client_live_camera_stopped",{data:{session_id:e}})}classifyLiveScreenShareFailure(A){if(A instanceof DOMException){if(A.name==="AbortError")return"cancelled";if(A.name==="NotAllowedError"){const t=(A.message||"").toLowerCase();return t.includes("dismiss")||t.includes("cancel")||t.includes("abort")?"cancelled":"denied"}}const e=A instanceof Error?(A.message||"").toLowerCase():"";return e.includes("cancel")||e.includes("dismiss")||e.includes("abort")?"cancelled":"denied"}emitLiveScreenShareFailure(A,e,t,r,s,i){const o=s instanceof DOMException||s instanceof Error?s.name:void 0,a=i??(r==="cancelled"?"User cancelled screen share without selecting a source.":"Screen share permission was not granted."),l=r==="cancelled"?"client_live_screen_cancelled":"client_live_screen_denied";if(A!=null&&A.sendEvent&&A.sendEvent(l,{data:{...e?{session_id:e}:{},...t?{tool_call_id:t}:{},message:a,...o?{error_name:o}:{}}}),A!=null&&A.sendToolError&&t)try{A.sendToolError(t,a)}catch{}}notifyScreenShareUnavailable(A,e){this.emitLiveScreenShareFailure(A,null,e,"denied",void 0,"Screen sharing is not supported in this browser or device.")}showLiveScreenPermissionBanner(A,e,t){var o;(o=this.lsPermissionBanner)==null||o.remove();const r=A==="cancelled"?"Screen share cancelled":"Screen share blocked",s=A==="cancelled"?"You closed the picker without sharing. Try again when you are ready to show your screen.":"Choose a screen, window, or browser tab when prompted to share with the agent.",i=document.createElement("div");i.id="vnr-live-screen-perm-banner",i.style.cssText=["position:fixed","bottom:24px","left:50%","transform:translateX(-50%)","z-index:2147483647","max-width:360px","width:calc(100% - 32px)","padding:16px 18px","border-radius:16px","background:#0f172a","border:1px solid rgba(96,165,250,0.35)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif"].join(";"),i.innerHTML=`
2754
+ `,t.querySelector("#vnr-lv-perm-retry").addEventListener("click",A),t.querySelector("#vnr-lv-perm-dismiss").addEventListener("click",e),document.body.appendChild(t),this.lvPermissionBanner=t}async sendClientEvent(A,e,t){if(typeof(A==null?void 0:A.sendEventWhenReady)=="function"){await A.sendEventWhenReady(e,t);return}if(A!=null&&A.sendEvent){A.sendEvent(e,t);return}}handleOpenLiveCamera(A,e,t){this.handleCloseLiveScreen(e),this.handleCloseLiveCamera(e);const r=A.scope??"until_call_end",s=Math.min(Number(A.target_fps??1),Number(A.max_fps??3)),i=Number(A.max_width??640),o=A.reason??"camera_capture",a=Number(A.duration_sec??0),l=A.facing_mode??"environment",d=A.show_preview!==!1&&A.show_preview!=="false",c=`lv_${crypto.randomUUID()}`;this.lvSessionId=c,this.lvFrameSeq=0;const h=document.createElement("video");h.autoplay=!0,h.playsInline=!0,h.muted=!0,Qi(h),document.body.appendChild(h),this.lvVideo=h;const u=document.createElement("canvas");u.style.display="none",document.body.appendChild(u),this.lvCanvas=u,d&&(this.lvPip=this.createLivePip(l,()=>this.handleCloseLiveCamera(e))),(()=>{navigator.mediaDevices.getUserMedia({video:{facingMode:l,width:{ideal:i*2}}}).then(async B=>{var w;if(!this.lvSessionId){B.getTracks().forEach(v=>v.stop());return}if((w=this.lvPermissionBanner)==null||w.remove(),this.lvPermissionBanner=null,this.lvStream=B,h.srcObject=B,this.lvPip){const v=this.lvPip.querySelector("video");v&&(v.srcObject=B,await Mt(v))}await Mt(h);const f=kt(h,this.lvPip)??h;await Ui(f,B,i),await this.sendClientEvent(e,"client_live_camera_started",{data:{session_id:c,scope:r,...r==="timed"&&a>0?{duration_sec:a}:{},reason:o,target_fps:s}});const m=Math.round(1e3/s);this.lvCaptureInterval=setInterval(()=>{this.captureAndSendFrame(e,c,i,o)},m),r==="timed"&&a>0&&(this.lvAutoStopTimeout=setTimeout(()=>{this.handleCloseLiveCamera(e)},a*1e3))}).catch(B=>{var f,m;this.lvSessionId=null,(f=this.lvStream)==null||f.getTracks().forEach(w=>w.stop()),this.lvStream=null,(m=this.lvPip)==null||m.remove(),this.lvPip=null,h.remove(),this.lvVideo=null,u.remove(),this.lvCanvas=null,this.notifyCameraPermissionDenied(e,t),this.showLiveCameraPermissionBanner(()=>this.handleOpenLiveCamera(A,e,t),()=>{var w;(w=this.lvPermissionBanner)==null||w.remove(),this.lvPermissionBanner=null})})})()}handleCloseLiveCamera(A){var t,r,s,i,o;const e=this.lvSessionId;this.lvSessionId=null,this.lvCaptureInterval&&(clearInterval(this.lvCaptureInterval),this.lvCaptureInterval=null),this.lvAutoStopTimeout&&(clearTimeout(this.lvAutoStopTimeout),this.lvAutoStopTimeout=null),(t=this.lvStream)==null||t.getTracks().forEach(a=>a.stop()),this.lvStream=null,(r=this.lvVideo)==null||r.remove(),this.lvVideo=null,(s=this.lvCanvas)==null||s.remove(),this.lvCanvas=null,(i=this.lvPip)==null||i.remove(),this.lvPip=null,(o=this.lvPermissionBanner)==null||o.remove(),this.lvPermissionBanner=null,e&&A&&this.sendClientEvent(A,"client_live_camera_stopped",{data:{session_id:e}})}classifyLiveScreenShareFailure(A){if(A instanceof DOMException){if(A.name==="AbortError")return"cancelled";if(A.name==="NotAllowedError"){const t=(A.message||"").toLowerCase();return t.includes("dismiss")||t.includes("cancel")||t.includes("abort")?"cancelled":"denied"}}const e=A instanceof Error?(A.message||"").toLowerCase():"";return e.includes("cancel")||e.includes("dismiss")||e.includes("abort")?"cancelled":"denied"}emitLiveScreenShareFailure(A,e,t,r,s,i){const o=s instanceof DOMException||s instanceof Error?s.name:void 0,a=i??(r==="cancelled"?"User cancelled screen share without selecting a source.":"Screen share permission was not granted."),l=r==="cancelled"?"client_live_screen_cancelled":"client_live_screen_denied";if(A!=null&&A.sendEvent&&A.sendEvent(l,{data:{...e?{session_id:e}:{},...t?{tool_call_id:t}:{},message:a,...o?{error_name:o}:{}}}),A!=null&&A.sendToolError&&t)try{A.sendToolError(t,a)}catch{}}notifyScreenShareUnavailable(A,e){this.emitLiveScreenShareFailure(A,null,e,"denied",void 0,"Screen sharing is not supported in this browser or device.")}showLiveScreenPermissionBanner(A,e,t){var o;(o=this.lsPermissionBanner)==null||o.remove();const r=A==="cancelled"?"Screen share cancelled":"Screen share blocked",s=A==="cancelled"?"You closed the picker without sharing. Try again when you are ready to show your screen.":"Choose a screen, window, or browser tab when prompted to share with the agent.",i=document.createElement("div");i.id="vnr-live-screen-perm-banner",i.style.cssText=["position:fixed","bottom:24px","left:50%","transform:translateX(-50%)","z-index:2147483647","max-width:360px","width:calc(100% - 32px)","padding:16px 18px","border-radius:16px","background:#0f172a","border:1px solid rgba(96,165,250,0.35)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif"].join(";"),i.innerHTML=`
2755
2755
  <p style="margin:0 0 6px;font-size:13px;font-weight:700;color:#60a5fa">${r}</p>
2756
2756
  <p style="margin:0 0 12px;font-size:12px;color:#94a3b8;line-height:1.5">${s}</p>
2757
2757
  <div style="display:flex;gap:8px">
2758
2758
  <button type="button" id="vnr-ls-perm-retry" style="flex:1;padding:9px 14px;border:none;border-radius:10px;background:#6366f1;color:#fff;font-size:13px;font-weight:600;cursor:pointer">Try Again</button>
2759
2759
  <button type="button" id="vnr-ls-perm-dismiss" style="padding:9px 14px;border:1px solid rgba(255,255,255,0.15);border-radius:10px;background:transparent;color:#e2e8f0;font-size:13px;font-weight:600;cursor:pointer">Dismiss</button>
2760
2760
  </div>
2761
- `,i.querySelector("#vnr-ls-perm-retry").addEventListener("click",e),i.querySelector("#vnr-ls-perm-dismiss").addEventListener("click",t),document.body.appendChild(i),this.lsPermissionBanner=i}handleOpenLiveScreen(A,e,t){var B;if(this.handleCloseLiveScreen(e),this.handleCloseLiveCamera(e),!((B=navigator.mediaDevices)!=null&&B.getDisplayMedia)){this.notifyScreenShareUnavailable(e,t);return}const r=A.scope??"until_call_end",s=Math.min(Number(A.target_fps??1),Number(A.max_fps??3)),i=Number(A.max_width??1280),o=A.reason??"screen_capture",a=Number(A.duration_sec??0),l=A.prefer_current_tab===!0||A.prefer_current_tab==="true",c=A.show_preview!==!1&&A.show_preview!=="false",d=`ls_${crypto.randomUUID()}`;this.lsSessionId=d,this.lsFrameSeq=0;const h=document.createElement("video");h.autoplay=!0,h.playsInline=!0,h.muted=!0,h.style.display="none",document.body.appendChild(h),this.lsVideo=h;const u=document.createElement("canvas");u.style.display="none",document.body.appendChild(u),this.lsCanvas=u,c&&(this.lsPip=this.createLiveScreenPip(()=>this.handleCloseLiveScreen(e))),(()=>{const f=l?{displaySurface:"browser"}:!0;navigator.mediaDevices.getDisplayMedia({video:f,audio:!1}).then(async m=>{var y,Q;if(!this.lsSessionId){m.getTracks().forEach(x=>x.stop());return}(y=this.lsPermissionBanner)==null||y.remove(),this.lsPermissionBanner=null,this.lsStream=m,h.srcObject=m;const w=m.getVideoTracks()[0];if(w&&(w.onended=()=>{this.handleCloseLiveScreen(e)}),this.lsPip){const x=this.lsPip.querySelector("video");x&&(x.srcObject=m)}const v=((Q=w==null?void 0:w.getSettings)==null?void 0:Q.call(w).displaySurface)??"unknown";await this.sendClientEvent(e,"client_live_screen_started",{data:{session_id:d,scope:r,...r==="timed"&&a>0?{duration_sec:a}:{},display_surface:v,reason:o,target_fps:s}});const C=Math.round(1e3/s);this.lsCaptureInterval=setInterval(()=>{this.captureAndSendScreenFrame(e,d,i,o)},C),r==="timed"&&a>0&&(this.lsAutoStopTimeout=setTimeout(()=>{this.handleCloseLiveScreen(e)},a*1e3))}).catch(m=>{var v,C;const w=this.classifyLiveScreenShareFailure(m);this.lsSessionId=null,(v=this.lsStream)==null||v.getTracks().forEach(y=>y.stop()),this.lsStream=null,(C=this.lsPip)==null||C.remove(),this.lsPip=null,h.remove(),this.lsVideo=null,u.remove(),this.lsCanvas=null,this.emitLiveScreenShareFailure(e,d,t,w,m),this.showLiveScreenPermissionBanner(w,()=>this.handleOpenLiveScreen(A,e,t),()=>{var y;(y=this.lsPermissionBanner)==null||y.remove(),this.lsPermissionBanner=null})})})()}handleCloseLiveScreen(A){var t,r,s,i,o;const e=this.lsSessionId;this.lsSessionId=null,this.lsCaptureInterval&&(clearInterval(this.lsCaptureInterval),this.lsCaptureInterval=null),this.lsAutoStopTimeout&&(clearTimeout(this.lsAutoStopTimeout),this.lsAutoStopTimeout=null),(t=this.lsStream)==null||t.getTracks().forEach(a=>a.stop()),this.lsStream=null,(r=this.lsVideo)==null||r.remove(),this.lsVideo=null,(s=this.lsCanvas)==null||s.remove(),this.lsCanvas=null,(i=this.lsPip)==null||i.remove(),this.lsPip=null,(o=this.lsPermissionBanner)==null||o.remove(),this.lsPermissionBanner=null,e&&A&&this.sendClientEvent(A,"client_live_screen_stopped",{data:{session_id:e}})}async uploadLiveStreamFrame(A,e,t,r){const s=`frame_${t}.jpg`;if(typeof A.uploadMediaFrame=="function")return A.uploadMediaFrame(e,r,s);const i=A.serverUrl||"";let o="";try{o=new URL(i).origin}catch{o=i.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}const a=A.callId||"",l=`${o}/media/upload`,c=new FormData;c.append("file",e,s),c.append("call_id",a),c.append("reason",r);const d=await fetch(l,{method:"POST",body:c});if(!d.ok)throw new Error(`Upload HTTP ${d.status}`);const h=await d.json();if(!h.media_id||!h.url)throw new Error("Upload response missing media_id/url");return{media_id:h.media_id,url:h.url,content_type:h.content_type||"image/jpeg"}}async captureAndSendScreenFrame(A,e,t,r){if(!A||!this.lsVideo||!this.lsCanvas||!this.lsSessionId)return;const s=this.lsVideo;if(s.readyState<2)return;const i=this.lsCanvas,o=s.videoWidth||t,a=s.videoHeight||t,l=Math.min(1,t/o);i.width=Math.round(o*l),i.height=Math.round(a*l);const c=i.getContext("2d");if(!c)return;c.drawImage(s,0,0,i.width,i.height);let d;try{d=await new Promise((h,u)=>i.toBlob(g=>g?h(g):u(new Error("toBlob failed")),"image/jpeg",.75))}catch{return}try{const{media_id:h,url:u,content_type:g}=await this.uploadLiveStreamFrame(A,d,e,r);if(!this.lsSessionId||this.lsSessionId!==e||!h||!u)return;const B=++this.lsFrameSeq;await this.sendClientEvent(A,"client_media_frame",{data:{session_id:e,source:"screen",frame_seq:B,media_id:h,media_url:u,content_type:g,reason:r,viewport:{width:i.width,height:i.height}}})}catch{}}createLiveScreenPip(A){const e=document.createElement("div");if(e.id="vnr-live-screen-pip",e.style.cssText=["position:fixed","bottom:24px","right:24px","z-index:2147483647","width:220px","height:124px","border-radius:16px","overflow:hidden","background:#0f172a","border:1px solid rgba(96,165,250,0.25)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif","transition:transform 0.2s ease"].join(";"),e.innerHTML=`
2761
+ `,i.querySelector("#vnr-ls-perm-retry").addEventListener("click",e),i.querySelector("#vnr-ls-perm-dismiss").addEventListener("click",t),document.body.appendChild(i),this.lsPermissionBanner=i}handleOpenLiveScreen(A,e,t){var B;if(this.handleCloseLiveScreen(e),this.handleCloseLiveCamera(e),!((B=navigator.mediaDevices)!=null&&B.getDisplayMedia)){this.notifyScreenShareUnavailable(e,t);return}const r=A.scope??"until_call_end",s=Math.min(Number(A.target_fps??1),Number(A.max_fps??3)),i=Number(A.max_width??1280),o=A.reason??"screen_capture",a=Number(A.duration_sec??0),l=A.prefer_current_tab===!0||A.prefer_current_tab==="true",d=A.show_preview!==!1&&A.show_preview!=="false",c=`ls_${crypto.randomUUID()}`;this.lsSessionId=c,this.lsFrameSeq=0;const h=document.createElement("video");h.autoplay=!0,h.playsInline=!0,h.muted=!0,Qi(h),document.body.appendChild(h),this.lsVideo=h;const u=document.createElement("canvas");u.style.display="none",document.body.appendChild(u),this.lsCanvas=u,d&&(this.lsPip=this.createLiveScreenPip(()=>this.handleCloseLiveScreen(e))),(()=>{const f=l?{displaySurface:"browser"}:!0;navigator.mediaDevices.getDisplayMedia({video:f,audio:!1}).then(async m=>{var Q,E;if(!this.lsSessionId){m.getTracks().forEach(F=>F.stop());return}(Q=this.lsPermissionBanner)==null||Q.remove(),this.lsPermissionBanner=null,this.lsStream=m,h.srcObject=m;const w=m.getVideoTracks()[0];if(w&&(w.onended=()=>{this.handleCloseLiveScreen(e)}),this.lsPip){const F=this.lsPip.querySelector("video");F&&(F.srcObject=m,await Mt(F))}await Mt(h);const v=kt(h,this.lsPip)??h;await Ui(v,m,i,12,200);const C=((E=w==null?void 0:w.getSettings)==null?void 0:E.call(w).displaySurface)??"unknown";await this.sendClientEvent(e,"client_live_screen_started",{data:{session_id:c,scope:r,...r==="timed"&&a>0?{duration_sec:a}:{},display_surface:C,reason:o,target_fps:s}});const y=Math.round(1e3/s);this.lsCaptureInterval=setInterval(()=>{this.captureAndSendScreenFrame(e,c,i,o)},y),r==="timed"&&a>0&&(this.lsAutoStopTimeout=setTimeout(()=>{this.handleCloseLiveScreen(e)},a*1e3))}).catch(m=>{var v,C;const w=this.classifyLiveScreenShareFailure(m);this.lsSessionId=null,(v=this.lsStream)==null||v.getTracks().forEach(y=>y.stop()),this.lsStream=null,(C=this.lsPip)==null||C.remove(),this.lsPip=null,h.remove(),this.lsVideo=null,u.remove(),this.lsCanvas=null,this.emitLiveScreenShareFailure(e,c,t,w,m),this.showLiveScreenPermissionBanner(w,()=>this.handleOpenLiveScreen(A,e,t),()=>{var y;(y=this.lsPermissionBanner)==null||y.remove(),this.lsPermissionBanner=null})})})()}handleCloseLiveScreen(A){var t,r,s,i,o;const e=this.lsSessionId;this.lsSessionId=null,this.lsCaptureInterval&&(clearInterval(this.lsCaptureInterval),this.lsCaptureInterval=null),this.lsAutoStopTimeout&&(clearTimeout(this.lsAutoStopTimeout),this.lsAutoStopTimeout=null),(t=this.lsStream)==null||t.getTracks().forEach(a=>a.stop()),this.lsStream=null,(r=this.lsVideo)==null||r.remove(),this.lsVideo=null,(s=this.lsCanvas)==null||s.remove(),this.lsCanvas=null,(i=this.lsPip)==null||i.remove(),this.lsPip=null,(o=this.lsPermissionBanner)==null||o.remove(),this.lsPermissionBanner=null,e&&A&&this.sendClientEvent(A,"client_live_screen_stopped",{data:{session_id:e}})}async uploadLiveStreamFrame(A,e,t,r){const s=`frame_${t}.jpg`;if(typeof A.uploadMediaFrame=="function")return A.uploadMediaFrame(e,r,s);const i=A.serverUrl||"";let o="";try{o=new URL(i).origin}catch{o=i.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}const a=A.callId||"",l=`${o}/media/upload`,d=new FormData;d.append("file",e,s),d.append("call_id",a),d.append("reason",r);const c=await fetch(l,{method:"POST",body:d});if(!c.ok)throw new Error(`Upload HTTP ${c.status}`);const h=await c.json();if(!h.media_id||!h.url)throw new Error("Upload response missing media_id/url");return{media_id:h.media_id,url:h.url,content_type:h.content_type||"image/jpeg"}}async captureAndSendScreenFrame(A,e,t,r){if(!A||!this.lsVideo||!this.lsCanvas||!this.lsSessionId)return;const s=kt(this.lsVideo,this.lsPip);if(!s||s.readyState<2||s.videoWidth===0)return;let i;try{i=await ir(s,this.lsStream,t,.75)}catch{return}if(!i)return;const o=this.lsCanvas,a=s.videoWidth||t,l=s.videoHeight||t,d=Math.min(1,t/a);o.width=Math.round(a*d),o.height=Math.round(l*d);try{const{media_id:c,url:h,content_type:u}=await this.uploadLiveStreamFrame(A,i,e,r);if(!this.lsSessionId||this.lsSessionId!==e||!c||!h)return;const g=++this.lsFrameSeq;await this.sendClientEvent(A,"client_media_frame",{data:{session_id:e,source:"screen",frame_seq:g,media_id:c,media_url:h,content_type:u,reason:r,viewport:{width:o.width,height:o.height}}})}catch{}}createLiveScreenPip(A){const e=document.createElement("div");if(e.id="vnr-live-screen-pip",e.style.cssText=["position:fixed","bottom:24px","right:24px","z-index:2147483647","width:220px","height:124px","border-radius:16px","overflow:hidden","background:#0f172a","border:1px solid rgba(96,165,250,0.25)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif","transition:transform 0.2s ease"].join(";"),e.innerHTML=`
2762
2762
  <video autoplay playsinline muted style="width:100%;height:100%;object-fit:contain;display:block;background:#020617"></video>
2763
2763
  <div style="position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:6px;padding:3px 8px;border-radius:6px;background:rgba(15,23,42,0.8);border:1px solid rgba(255,255,255,0.1);font-size:10px;font-weight:700;color:#f8fafc;text-transform:uppercase;letter-spacing:0.04em;pointer-events:none;">
2764
2764
  <span style="width:6px;height:6px;border-radius:50%;background:#3b82f6;flex-shrink:0;animation:vnr-pip-pulse 1.5s ease-in-out infinite;"></span>
@@ -2769,7 +2769,7 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2769
2769
  @keyframes vnr-pip-pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.2);}}
2770
2770
  #vnr-live-screen-pip:hover { transform: scale(1.02); }
2771
2771
  #vnr-screen-pip-stop:hover { background: rgba(239,68,68,0.9) !important; transform: scale(1.1); }
2772
- `,document.head.appendChild(t)}return e.querySelector("#vnr-screen-pip-stop").addEventListener("click",()=>A()),document.body.appendChild(e),e}async captureAndSendFrame(A,e,t,r){if(!A||!this.lvVideo||!this.lvCanvas||!this.lvSessionId)return;const s=this.lvVideo;if(s.readyState<2)return;const i=this.lvCanvas,o=s.videoWidth||t,a=s.videoHeight||t,l=Math.min(1,t/o);i.width=Math.round(o*l),i.height=Math.round(a*l);const c=i.getContext("2d");if(!c)return;c.drawImage(s,0,0,i.width,i.height);let d;try{d=await new Promise((h,u)=>i.toBlob(g=>g?h(g):u(new Error("toBlob failed")),"image/jpeg",.75))}catch{return}try{const{media_id:h,url:u,content_type:g}=await this.uploadLiveStreamFrame(A,d,e,r);if(!this.lvSessionId||this.lvSessionId!==e||!h||!u)return;const B=++this.lvFrameSeq;await this.sendClientEvent(A,"client_media_frame",{data:{session_id:e,frame_seq:B,media_id:h,media_url:u,content_type:g,reason:r}})}catch{}}createLivePip(A,e){const t=document.createElement("div");t.id="vnr-live-pip";const r=A==="user";if(t.style.cssText=["position:fixed","bottom:24px","right:24px","z-index:2147483647","width:180px","height:135px","border-radius:16px","overflow:hidden","background:#0f172a","border:1px solid rgba(255,255,255,0.15)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif","transition:transform 0.2s ease"].join(";"),t.innerHTML=`
2772
+ `,document.head.appendChild(t)}return e.querySelector("#vnr-screen-pip-stop").addEventListener("click",()=>A()),document.body.appendChild(e),e}async captureAndSendFrame(A,e,t,r){if(!A||!this.lvVideo||!this.lvCanvas||!this.lvSessionId)return;const s=kt(this.lvVideo,this.lvPip);if(!s||s.readyState<2||s.videoWidth===0)return;let i;try{i=await ir(s,this.lvStream,t,.75)}catch{return}if(!i)return;const o=this.lvCanvas,a=s.videoWidth||t,l=s.videoHeight||t,d=Math.min(1,t/a);o.width=Math.round(a*d),o.height=Math.round(l*d);try{const{media_id:c,url:h,content_type:u}=await this.uploadLiveStreamFrame(A,i,e,r);if(!this.lvSessionId||this.lvSessionId!==e||!c||!h)return;const g=++this.lvFrameSeq;await this.sendClientEvent(A,"client_media_frame",{data:{session_id:e,frame_seq:g,media_id:c,media_url:h,content_type:u,reason:r}})}catch{}}createLivePip(A,e){const t=document.createElement("div");t.id="vnr-live-pip";const r=A==="user";if(t.style.cssText=["position:fixed","bottom:24px","right:24px","z-index:2147483647","width:180px","height:135px","border-radius:16px","overflow:hidden","background:#0f172a","border:1px solid rgba(255,255,255,0.15)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif","transition:transform 0.2s ease"].join(";"),t.innerHTML=`
2773
2773
  <video autoplay playsinline muted style="width:100%;height:100%;object-fit:cover;display:block;${r?"transform:scaleX(-1);":""}"></video>
2774
2774
  <div style="position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:6px;padding:3px 8px;border-radius:6px;background:rgba(15,23,42,0.8);border:1px solid rgba(255,255,255,0.1);font-size:10px;font-weight:700;color:#f8fafc;text-transform:uppercase;letter-spacing:0.04em;pointer-events:none;">
2775
2775
  <span style="width:6px;height:6px;border-radius:50%;background:#ef4444;flex-shrink:0;animation:vnr-pip-pulse 1.5s ease-in-out infinite;"></span>
@@ -2780,7 +2780,7 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2780
2780
  @keyframes vnr-pip-pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.2);}}
2781
2781
  #vnr-live-pip:hover { transform: scale(1.02); }
2782
2782
  #vnr-pip-stop:hover { background: rgba(239,68,68,0.9) !important; transform: scale(1.1); }
2783
- `,document.head.appendChild(s)}return t.querySelector("#vnr-pip-stop").addEventListener("click",()=>e()),document.body.appendChild(t),t}injectStyles(){if(this.styleInjected||document.getElementById("vnr-preset-styles"))return;const A=document.createElement("style");A.id="vnr-preset-styles",A.textContent=Yc,document.head.appendChild(A),this.styleInjected=!0}createOverlay(){const A=document.createElement("div");return A.className="vnr-overlay",document.body.appendChild(A),this.overlay=A,A}createModal(A,e,t){const r=document.createElement("div");return r.className="vnr-modal",r.style.position="relative",r.innerHTML=`
2783
+ `,document.head.appendChild(s)}return t.querySelector("#vnr-pip-stop").addEventListener("click",()=>e()),document.body.appendChild(t),t}injectStyles(){if(this.styleInjected||document.getElementById("vnr-preset-styles"))return;const A=document.createElement("style");A.id="vnr-preset-styles",A.textContent=qc,document.head.appendChild(A),this.styleInjected=!0}createOverlay(){const A=document.createElement("div");return A.className="vnr-overlay",document.body.appendChild(A),this.overlay=A,A}createModal(A,e,t){const r=document.createElement("div");return r.className="vnr-modal",r.style.position="relative",r.innerHTML=`
2784
2784
  <button class="vnr-close-btn" aria-label="Close">
2785
2785
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
2786
2786
  <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
@@ -2793,13 +2793,13 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2793
2793
  </svg>
2794
2794
  <span>${t}</span>
2795
2795
  </div>
2796
- `,A.appendChild(r),r}renderCalendar(A,e,t){this.bindActiveModalPreset(A,b.Calendar,e,t);const r=f=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Calendar,...f})},s=f=>{this.clearActiveModalPreset(),t(f,{status:"cancelled"})},i=new Date;i.setHours(0,0,0,0),this.calViewYear=i.getFullYear(),this.calViewMonth=i.getMonth(),this.calSelectedTs=null,this.calSelectedTime=null;const o=A.clientFields.title||"Select Date & Time",a=A.args.reason||"Please select a preferred time for your appointment.",l=this.createOverlay(),c=this.createModal(l,o,a);c.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),s("User closed the preset")});const d=document.createElement("div");c.appendChild(d);const h=document.createElement("div");h.style.display="none",c.appendChild(h);const u=document.createElement("div");u.className="vnr-actions",u.innerHTML=`
2796
+ `,A.appendChild(r),r}renderCalendar(A,e,t){this.bindActiveModalPreset(A,b.Calendar,e,t);const r=f=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Calendar,...f})},s=f=>{this.clearActiveModalPreset(),t(f,{status:"cancelled"})},i=new Date;i.setHours(0,0,0,0),this.calViewYear=i.getFullYear(),this.calViewMonth=i.getMonth(),this.calSelectedTs=null,this.calSelectedTime=null;const o=A.clientFields.title||"Select Date & Time",a=A.args.reason||"Please select a preferred time for your appointment.",l=this.createOverlay(),d=this.createModal(l,o,a);d.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),s("User closed the preset")});const c=document.createElement("div");d.appendChild(c);const h=document.createElement("div");h.style.display="none",d.appendChild(h);const u=document.createElement("div");u.className="vnr-actions",u.innerHTML=`
2797
2797
  <button class="vnr-cancel-btn">Cancel</button>
2798
2798
  <button class="vnr-confirm-btn" disabled>
2799
2799
  <svg width="13" height="13" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" viewBox="0 0 24 24"><polyline points="20 6 9 17 4 12"/></svg>
2800
2800
  Confirm
2801
2801
  </button>
2802
- `,c.appendChild(u);const g=u.querySelector(".vnr-confirm-btn");u.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),s("User cancelled")}),g.addEventListener("click",()=>{if(!this.calSelectedTs||!this.calSelectedTime)return;const f=new Date(this.calSelectedTs),m=nr(this.calSelectedTime),w=f.getFullYear(),v=String(f.getMonth()+1).padStart(2,"0"),C=String(f.getDate()).padStart(2,"0"),y=`${w}-${v}-${C}`,Q=A.clientFields.timezone||"";let x=typeof this.calSelectedTime=="object"?{...this.calSelectedTime}:void 0;if(x){for(const F of["start","startTime","end","endTime"])if(x[F]&&typeof x[F]=="string"&&(x[F].includes("T")||!isNaN(Date.parse(x[F]))))try{x[F]=_c(new Date(x[F]),Q)}catch{}}this.dismiss(),r({date:y,time:m,timestamp:this.calSelectedTs,formatted:`${f.toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"})} at ${m}`,slot_data:x})});const B=()=>{const f=new Date;f.setHours(0,0,0,0);const m=new Date(this.calViewYear,this.calViewMonth,1).getDay(),w=new Date(this.calViewYear,this.calViewMonth+1,0).getDate(),v=new Date(this.calViewYear,this.calViewMonth,1).toLocaleDateString("en-US",{month:"long",year:"numeric"}),C=this.calViewYear===f.getFullYear()&&this.calViewMonth===f.getMonth();d.innerHTML=`
2802
+ `,d.appendChild(u);const g=u.querySelector(".vnr-confirm-btn");u.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),s("User cancelled")}),g.addEventListener("click",()=>{if(!this.calSelectedTs||!this.calSelectedTime)return;const f=new Date(this.calSelectedTs),m=sr(this.calSelectedTime),w=f.getFullYear(),v=String(f.getMonth()+1).padStart(2,"0"),C=String(f.getDate()).padStart(2,"0"),y=`${w}-${v}-${C}`,Q=A.clientFields.timezone||"";let E=typeof this.calSelectedTime=="object"?{...this.calSelectedTime}:void 0;if(E){for(const F of["start","startTime","end","endTime"])if(E[F]&&typeof E[F]=="string"&&(E[F].includes("T")||!isNaN(Date.parse(E[F]))))try{E[F]=Zc(new Date(E[F]),Q)}catch{}}this.dismiss(),r({date:y,time:m,timestamp:this.calSelectedTs,formatted:`${f.toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"})} at ${m}`,slot_data:E})});const B=()=>{const f=new Date;f.setHours(0,0,0,0);const m=new Date(this.calViewYear,this.calViewMonth,1).getDay(),w=new Date(this.calViewYear,this.calViewMonth+1,0).getDate(),v=new Date(this.calViewYear,this.calViewMonth,1).toLocaleDateString("en-US",{month:"long",year:"numeric"}),C=this.calViewYear===f.getFullYear()&&this.calViewMonth===f.getMonth();c.innerHTML=`
2803
2803
  <div class="vnr-month-nav">
2804
2804
  <button class="vnr-nav-btn" id="vnr-prev" ${C?"disabled":""}>
2805
2805
  <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><polyline points="15 18 9 12 15 6"/></svg>
@@ -2810,17 +2810,17 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2810
2810
  </button>
2811
2811
  </div>
2812
2812
  <div class="vnr-cal-grid" id="vnr-grid"></div>
2813
- `,d.querySelector("#vnr-prev").addEventListener("click",()=>{this.calViewMonth===0?(this.calViewMonth=11,this.calViewYear--):this.calViewMonth--,B()}),d.querySelector("#vnr-next").addEventListener("click",()=>{this.calViewMonth===11?(this.calViewMonth=0,this.calViewYear++):this.calViewMonth++,B()});const y=d.querySelector("#vnr-grid");["Su","Mo","Tu","We","Th","Fr","Sa"].forEach(Q=>{const x=document.createElement("div");x.className="vnr-wd",x.textContent=Q,y.appendChild(x)});for(let Q=0;Q<m;Q++){const x=document.createElement("div");y.appendChild(x)}for(let Q=1;Q<=w;Q++){const x=new Date(this.calViewYear,this.calViewMonth,Q).getTime(),F=x<f.getTime(),I=x===f.getTime(),L=this.calSelectedTs===x,O=document.createElement("div");O.style.textAlign="center";const K=document.createElement("button");K.className="vnr-day-btn",F&&K.classList.add("vnr-day-past"),I&&!L&&K.classList.add("vnr-day-today"),L&&K.classList.add("vnr-day-sel"),K.disabled=F,K.textContent=String(Q),K.addEventListener("click",()=>{this.calSelectedTs=x,this.calSelectedTime=null,g.disabled=!0,B(),this.loadSlots(A,h,g)}),O.appendChild(K),y.appendChild(O)}};B()}loadSlots(A,e,t){const r=A.clientFields.slots_api_url;if(!this.calSelectedTs||!r){this.renderSlots(e,["09:00 AM","10:30 AM","01:00 PM","02:30 PM","04:00 PM"],t);return}const s=new Date(this.calSelectedTs),i=s.getFullYear(),o=String(s.getMonth()+1).padStart(2,"0"),a=String(s.getDate()).padStart(2,"0"),l=`${i}-${o}-${a}`,c=A.clientFields.timezone||"",d=Vc(i,s.getMonth(),s.getDate(),c),h=d.start,u=d.end,g=C=>{if(typeof C!="string")return C;let y=C.replace(/\{\{date\}\}/g,l).replace(/\{\{timezone\}\}/g,c).replace(/\{\{start_of_day\}\}/g,h.toISOString()).replace(/\{\{end_of_day\}\}/g,u.toISOString());return Object.entries(A.clientFields).forEach(([Q,x])=>{if(x!=null){const F=Q.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),I=new RegExp(`\\{\\{${F}\\}\\}`,"g");y=y.replace(I,String(x))}}),y},B=(A.clientFields.slots_api_method||"GET").toUpperCase();let f={"Content-Type":"application/json"};try{Object.entries(JSON.parse(A.clientFields.slots_api_headers||"{}")).forEach(([C,y])=>{f[C]=g(String(y))})}catch{}let m={};try{Object.entries(JSON.parse(A.clientFields.slots_api_body||"{}")).forEach(([C,y])=>{m[C]=g(String(y))})}catch{}let w=g(r);const v={method:B,headers:f};if(B==="GET"){const C=new URLSearchParams(Object.entries(m).map(([y,Q])=>[y,String(Q)])).toString();C&&(w+=(w.includes("?")?"&":"?")+C)}else v.body=JSON.stringify(m);e.style.display="block",e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Loading slots…</div>',fetch(w,v).then(C=>{if(!C.ok)throw new Error(`HTTP ${C.status}`);return C.json()}).then(C=>{let y=[];if(Array.isArray(C))y=C;else if(C&&typeof C=="object"){for(const Q of["slots","free_slots","times","data","available_slots"])if(Array.isArray(C[Q])){y=C[Q];break}}this.renderSlots(e,y,t)}).catch(()=>{e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center" style="color:#ef4444">Failed to load slots. Please try again.</div>'})}renderSlots(A,e,t){const r=this.calSelectedTs?new Date(this.calSelectedTs).toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"}):"Available Times",s=e.some(o=>nr(o).length>8)?2:3;if(A.style.display="block",A.innerHTML=`
2813
+ `,c.querySelector("#vnr-prev").addEventListener("click",()=>{this.calViewMonth===0?(this.calViewMonth=11,this.calViewYear--):this.calViewMonth--,B()}),c.querySelector("#vnr-next").addEventListener("click",()=>{this.calViewMonth===11?(this.calViewMonth=0,this.calViewYear++):this.calViewMonth++,B()});const y=c.querySelector("#vnr-grid");["Su","Mo","Tu","We","Th","Fr","Sa"].forEach(Q=>{const E=document.createElement("div");E.className="vnr-wd",E.textContent=Q,y.appendChild(E)});for(let Q=0;Q<m;Q++){const E=document.createElement("div");y.appendChild(E)}for(let Q=1;Q<=w;Q++){const E=new Date(this.calViewYear,this.calViewMonth,Q).getTime(),F=E<f.getTime(),I=E===f.getTime(),L=this.calSelectedTs===E,O=document.createElement("div");O.style.textAlign="center";const K=document.createElement("button");K.className="vnr-day-btn",F&&K.classList.add("vnr-day-past"),I&&!L&&K.classList.add("vnr-day-today"),L&&K.classList.add("vnr-day-sel"),K.disabled=F,K.textContent=String(Q),K.addEventListener("click",()=>{this.calSelectedTs=E,this.calSelectedTime=null,g.disabled=!0,B(),this.loadSlots(A,h,g)}),O.appendChild(K),y.appendChild(O)}};B()}loadSlots(A,e,t){const r=A.clientFields.slots_api_url;if(!this.calSelectedTs||!r){this.renderSlots(e,["09:00 AM","10:30 AM","01:00 PM","02:30 PM","04:00 PM"],t);return}const s=new Date(this.calSelectedTs),i=s.getFullYear(),o=String(s.getMonth()+1).padStart(2,"0"),a=String(s.getDate()).padStart(2,"0"),l=`${i}-${o}-${a}`,d=A.clientFields.timezone||"",c=jc(i,s.getMonth(),s.getDate(),d),h=c.start,u=c.end,g=C=>{if(typeof C!="string")return C;let y=C.replace(/\{\{date\}\}/g,l).replace(/\{\{timezone\}\}/g,d).replace(/\{\{start_of_day\}\}/g,h.toISOString()).replace(/\{\{end_of_day\}\}/g,u.toISOString());return Object.entries(A.clientFields).forEach(([Q,E])=>{if(E!=null){const F=Q.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),I=new RegExp(`\\{\\{${F}\\}\\}`,"g");y=y.replace(I,String(E))}}),y},B=(A.clientFields.slots_api_method||"GET").toUpperCase();let f={"Content-Type":"application/json"};try{Object.entries(JSON.parse(A.clientFields.slots_api_headers||"{}")).forEach(([C,y])=>{f[C]=g(String(y))})}catch{}let m={};try{Object.entries(JSON.parse(A.clientFields.slots_api_body||"{}")).forEach(([C,y])=>{m[C]=g(String(y))})}catch{}let w=g(r);const v={method:B,headers:f};if(B==="GET"){const C=new URLSearchParams(Object.entries(m).map(([y,Q])=>[y,String(Q)])).toString();C&&(w+=(w.includes("?")?"&":"?")+C)}else v.body=JSON.stringify(m);e.style.display="block",e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Loading slots…</div>',fetch(w,v).then(C=>{if(!C.ok)throw new Error(`HTTP ${C.status}`);return C.json()}).then(C=>{let y=[];if(Array.isArray(C))y=C;else if(C&&typeof C=="object"){for(const Q of["slots","free_slots","times","data","available_slots"])if(Array.isArray(C[Q])){y=C[Q];break}}this.renderSlots(e,y,t)}).catch(()=>{e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center" style="color:#ef4444">Failed to load slots. Please try again.</div>'})}renderSlots(A,e,t){const r=this.calSelectedTs?new Date(this.calSelectedTs).toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"}):"Available Times",s=e.some(o=>sr(o).length>8)?2:3;if(A.style.display="block",A.innerHTML=`
2814
2814
  <div class="vnr-divider"></div>
2815
2815
  <div class="vnr-section-label">${r}</div>
2816
2816
  ${e.length===0?'<div class="vnr-center">No slots available for this date.</div>':`<div class="vnr-slots-grid" style="grid-template-columns:repeat(${s},1fr)"></div>`}
2817
- `,e.length===0)return;const i=A.querySelector(".vnr-slots-grid");e.forEach(o=>{const a=document.createElement("button");a.className="vnr-slot-btn",this.calSelectedTime!==null&&(typeof o=="object"&&typeof this.calSelectedTime=="object"?JSON.stringify(o)===JSON.stringify(this.calSelectedTime):o===this.calSelectedTime)&&a.classList.add("vnr-slot-sel"),a.textContent=nr(o),a.addEventListener("click",()=>{this.calSelectedTime=o,t.disabled=!1,i.querySelectorAll(".vnr-slot-btn").forEach(c=>c.classList.remove("vnr-slot-sel")),a.classList.add("vnr-slot-sel")}),i.appendChild(a)})}collectFormFieldValues(A,e){const t={};for(const r of e){if(r.type==="checkbox"){const i=A.querySelector(`#vnr_${r.id}`);t[r.id]=!!(i!=null&&i.checked);continue}if(r.type==="radio"){const i=A.querySelector(`input[name="vnr_${r.id}"]:checked`);t[r.id]=(i==null?void 0:i.value)??"";continue}const s=A.querySelector(`#vnr_${r.id}`);t[r.id]=String((s==null?void 0:s.value)??"").trim()}return t}appendFormFieldElement(A,e,t){const r=document.createElement("div");r.className="vnr-field-wrap",r.dataset.fieldId=e.id;const s=e.placeholder||`Enter your ${e.label.toLowerCase()}`,i=l=>typeof l=="string"?l:l.value,o=l=>typeof l=="string"?l:l.label;if(e.type!=="checkbox"){const l=document.createElement("label");l.className="vnr-field-label",l.htmlFor=`vnr_${e.id}`,l.textContent=e.required?`${e.label} *`:e.label,r.appendChild(l)}switch(e.type){case"textarea":{const l=document.createElement("textarea");l.className="vnr-input vnr-textarea",l.id=`vnr_${e.id}`,l.rows=4,l.placeholder=s,typeof t=="string"&&(l.value=t),r.appendChild(l);break}case"select":{const l=document.createElement("select");l.className="vnr-input",l.id=`vnr_${e.id}`;const c=document.createElement("option");c.value="",c.textContent="Select…",l.appendChild(c);for(const d of e.options){const h=document.createElement("option");h.value=i(d),h.textContent=o(d),l.appendChild(h)}typeof t=="string"&&t&&(l.value=t),r.appendChild(l);break}case"radio":{const l=document.createElement("div");l.className="vnr-radio-group";const c=typeof t=="string"?t:"";e.options.forEach((d,h)=>{const u=document.createElement("label");u.className="vnr-radio-row";const g=document.createElement("input");g.type="radio",g.name=`vnr_${e.id}`,g.id=`vnr_${e.id}_${h}`;const B=i(d);g.value=B,c&&c===B&&(g.checked=!0);const f=document.createElement("span");f.textContent=o(d),u.appendChild(g),u.appendChild(f),l.appendChild(u)}),r.appendChild(l);break}case"checkbox":{const l=document.createElement("label");l.className="vnr-checkbox-row";const c=document.createElement("input");c.type="checkbox",c.id=`vnr_${e.id}`,c.checked=t===!0||t==="true";const d=document.createElement("span");d.textContent=e.required?`${e.label} *`:e.label,l.appendChild(c),l.appendChild(d),r.appendChild(l);break}default:{const l=document.createElement("input");l.className="vnr-input",l.id=`vnr_${e.id}`,l.placeholder=s,e.type==="phone"?l.type="tel":e.type==="email"||e.type==="number"||e.type==="date"?l.type=e.type:l.type="text",typeof t=="string"&&(l.value=t),r.appendChild(l);break}}const a=document.createElement("p");a.className="vnr-field-error",a.style.display="none",r.appendChild(a),A.appendChild(r)}showFormFieldErrors(A,e){A.querySelectorAll(".vnr-field-wrap").forEach(t=>{var o,a;const r=t.dataset.fieldId;if(!r)return;const s=t.querySelector(".vnr-field-error"),i=e[r];i&&s?(s.textContent=i,s.style.display="block",(o=t.querySelector(".vnr-input, .vnr-textarea"))==null||o.classList.add("vnr-input-error")):s&&(s.style.display="none",(a=t.querySelector(".vnr-input, .vnr-textarea"))==null||a.classList.remove("vnr-input-error"))})}renderForm(A,e,t){this.bindActiveModalPreset(A,b.Form,e,t);const r=f=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Form,...f})},s=f=>{this.clearActiveModalPreset(),t(f,{status:"cancelled"})},i=A.args.title||A.clientFields.title||"Please fill out this form",o=A.args.reason||"Please provide the following information.",a=_e(A.args.fields??A.clientFields.fields),l=Gc(a,Oc(A.args,A.clientFields)),c=this.createOverlay(),d=this.createModal(c,i,o);d.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),s("User closed")});const h=document.createElement("div");if(h.className="vnr-fields",a.length===0){const f=document.createElement("p");f.className="vnr-form-error",f.style.color="#dc2626",f.style.fontSize="13px",f.textContent="No form fields configured.",h.appendChild(f)}else a.forEach(f=>this.appendFormFieldElement(h,f,l[f.id]));d.appendChild(h);const u=document.createElement("p");u.className="vnr-form-error",u.style.cssText="display:none;color:#dc2626;font-size:13px;margin:8px 0 0;",d.appendChild(u);const g=document.createElement("div");g.className="vnr-actions",g.style.marginTop="16px",g.innerHTML=`
2817
+ `,e.length===0)return;const i=A.querySelector(".vnr-slots-grid");e.forEach(o=>{const a=document.createElement("button");a.className="vnr-slot-btn",this.calSelectedTime!==null&&(typeof o=="object"&&typeof this.calSelectedTime=="object"?JSON.stringify(o)===JSON.stringify(this.calSelectedTime):o===this.calSelectedTime)&&a.classList.add("vnr-slot-sel"),a.textContent=sr(o),a.addEventListener("click",()=>{this.calSelectedTime=o,t.disabled=!1,i.querySelectorAll(".vnr-slot-btn").forEach(d=>d.classList.remove("vnr-slot-sel")),a.classList.add("vnr-slot-sel")}),i.appendChild(a)})}collectFormFieldValues(A,e){const t={};for(const r of e){if(r.type==="checkbox"){const i=A.querySelector(`#vnr_${r.id}`);t[r.id]=!!(i!=null&&i.checked);continue}if(r.type==="radio"){const i=A.querySelector(`input[name="vnr_${r.id}"]:checked`);t[r.id]=(i==null?void 0:i.value)??"";continue}const s=A.querySelector(`#vnr_${r.id}`);t[r.id]=String((s==null?void 0:s.value)??"").trim()}return t}appendFormFieldElement(A,e,t){const r=document.createElement("div");r.className="vnr-field-wrap",r.dataset.fieldId=e.id;const s=e.placeholder||`Enter your ${e.label.toLowerCase()}`,i=l=>typeof l=="string"?l:l.value,o=l=>typeof l=="string"?l:l.label;if(e.type!=="checkbox"){const l=document.createElement("label");l.className="vnr-field-label",l.htmlFor=`vnr_${e.id}`,l.textContent=e.required?`${e.label} *`:e.label,r.appendChild(l)}switch(e.type){case"textarea":{const l=document.createElement("textarea");l.className="vnr-input vnr-textarea",l.id=`vnr_${e.id}`,l.rows=4,l.placeholder=s,typeof t=="string"&&(l.value=t),r.appendChild(l);break}case"select":{const l=document.createElement("select");l.className="vnr-input",l.id=`vnr_${e.id}`;const d=document.createElement("option");d.value="",d.textContent="Select…",l.appendChild(d);for(const c of e.options){const h=document.createElement("option");h.value=i(c),h.textContent=o(c),l.appendChild(h)}typeof t=="string"&&t&&(l.value=t),r.appendChild(l);break}case"radio":{const l=document.createElement("div");l.className="vnr-radio-group";const d=typeof t=="string"?t:"";e.options.forEach((c,h)=>{const u=document.createElement("label");u.className="vnr-radio-row";const g=document.createElement("input");g.type="radio",g.name=`vnr_${e.id}`,g.id=`vnr_${e.id}_${h}`;const B=i(c);g.value=B,d&&d===B&&(g.checked=!0);const f=document.createElement("span");f.textContent=o(c),u.appendChild(g),u.appendChild(f),l.appendChild(u)}),r.appendChild(l);break}case"checkbox":{const l=document.createElement("label");l.className="vnr-checkbox-row";const d=document.createElement("input");d.type="checkbox",d.id=`vnr_${e.id}`,d.checked=t===!0||t==="true";const c=document.createElement("span");c.textContent=e.required?`${e.label} *`:e.label,l.appendChild(d),l.appendChild(c),r.appendChild(l);break}default:{const l=document.createElement("input");l.className="vnr-input",l.id=`vnr_${e.id}`,l.placeholder=s,e.type==="phone"?l.type="tel":e.type==="email"||e.type==="number"||e.type==="date"?l.type=e.type:l.type="text",typeof t=="string"&&(l.value=t),r.appendChild(l);break}}const a=document.createElement("p");a.className="vnr-field-error",a.style.display="none",r.appendChild(a),A.appendChild(r)}showFormFieldErrors(A,e){A.querySelectorAll(".vnr-field-wrap").forEach(t=>{var o,a;const r=t.dataset.fieldId;if(!r)return;const s=t.querySelector(".vnr-field-error"),i=e[r];i&&s?(s.textContent=i,s.style.display="block",(o=t.querySelector(".vnr-input, .vnr-textarea"))==null||o.classList.add("vnr-input-error")):s&&(s.style.display="none",(a=t.querySelector(".vnr-input, .vnr-textarea"))==null||a.classList.remove("vnr-input-error"))})}renderForm(A,e,t){this.bindActiveModalPreset(A,b.Form,e,t);const r=f=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Form,...f})},s=f=>{this.clearActiveModalPreset(),t(f,{status:"cancelled"})},i=A.args.title||A.clientFields.title||"Please fill out this form",o=A.args.reason||"Please provide the following information.",a=_e(A.args.fields??A.clientFields.fields),l=Wc(a,Jc(A.args,A.clientFields)),d=this.createOverlay(),c=this.createModal(d,i,o);c.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),s("User closed")});const h=document.createElement("div");if(h.className="vnr-fields",a.length===0){const f=document.createElement("p");f.className="vnr-form-error",f.style.color="#dc2626",f.style.fontSize="13px",f.textContent="No form fields configured.",h.appendChild(f)}else a.forEach(f=>this.appendFormFieldElement(h,f,l[f.id]));c.appendChild(h);const u=document.createElement("p");u.className="vnr-form-error",u.style.cssText="display:none;color:#dc2626;font-size:13px;margin:8px 0 0;",c.appendChild(u);const g=document.createElement("div");g.className="vnr-actions",g.style.marginTop="16px",g.innerHTML=`
2818
2818
  <button class="vnr-cancel-btn">Cancel</button>
2819
2819
  <button class="vnr-confirm-btn">
2820
2820
  <svg width="13" height="13" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" viewBox="0 0 24 24"><polyline points="20 6 9 17 4 12"/></svg>
2821
2821
  Submit
2822
2822
  </button>
2823
- `,d.appendChild(g),g.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),s("User cancelled")});const B=g.querySelector(".vnr-confirm-btn");a.length===0&&(B.disabled=!0),B.addEventListener("click",()=>{if(a.length===0){u.textContent="No form fields configured.",u.style.display="block";return}const f=this.collectFormFieldValues(d,a),m=Pc(a,f);if(Object.keys(m).length>0){this.showFormFieldErrors(d,m),u.textContent="Please fix the highlighted fields.",u.style.display="block";const v=Object.keys(m)[0],C=d.querySelector(`[data-field-id="${v}"]`),y=C==null?void 0:C.querySelector("input, textarea, select");y==null||y.focus();return}u.style.display="none",this.showFormFieldErrors(d,{}),B.disabled=!0,B.innerHTML='<div class="vnr-spinner"></div>';const w=Nc(a,f);setTimeout(()=>{this.dismiss(),r(w)},300)})}renderCamera(A,e,t,r){this.bindActiveModalPreset(A,b.Camera,e,t);const s=k=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Camera,...k})},i=(k,AA="cancelled")=>{this.clearActiveModalPreset(),t(k,{status:AA})},o=this,a=A.clientFields.title||"Take a Photo",l=A.clientFields.description||"Point your camera at the subject, then tap capture.",c=A.clientFields.facing_mode||A.args.facing_mode||"environment",d=A.clientFields.reason||"camera_capture",h=A.clientFields.liveness_check===!0||A.clientFields.liveness_check==="true"||A.args.liveness_check===!0||A.args.liveness_check==="true";let u=null,g=null;this.stopCaptureCamera(),this.captureActive=!0;const B=this.createOverlay(),f=document.createElement("div");f.className="vnr-modal",f.style.cssText="position:relative;max-width:480px;width:100%",f.innerHTML=`
2823
+ `,c.appendChild(g),g.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),s("User cancelled")});const B=g.querySelector(".vnr-confirm-btn");a.length===0&&(B.disabled=!0),B.addEventListener("click",()=>{if(a.length===0){u.textContent="No form fields configured.",u.style.display="block";return}const f=this.collectFormFieldValues(c,a),m=_c(a,f);if(Object.keys(m).length>0){this.showFormFieldErrors(c,m),u.textContent="Please fix the highlighted fields.",u.style.display="block";const v=Object.keys(m)[0],C=c.querySelector(`[data-field-id="${v}"]`),y=C==null?void 0:C.querySelector("input, textarea, select");y==null||y.focus();return}u.style.display="none",this.showFormFieldErrors(c,{}),B.disabled=!0,B.innerHTML='<div class="vnr-spinner"></div>';const w=zc(a,f);setTimeout(()=>{this.dismiss(),r(w)},300)})}renderCamera(A,e,t,r){this.bindActiveModalPreset(A,b.Camera,e,t);const s=k=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Camera,...k})},i=(k,AA="cancelled")=>{this.clearActiveModalPreset(),t(k,{status:AA})},o=this,a=A.clientFields.title||"Take a Photo",l=A.clientFields.description||"Point your camera at the subject, then tap capture.",d=A.clientFields.facing_mode||A.args.facing_mode||"environment",c=A.clientFields.reason||"camera_capture",h=A.clientFields.liveness_check===!0||A.clientFields.liveness_check==="true"||A.args.liveness_check===!0||A.args.liveness_check==="true";let u=null,g=null;this.stopCaptureCamera(),this.captureActive=!0;const B=this.createOverlay(),f=document.createElement("div");f.className="vnr-modal",f.style.cssText="position:relative;max-width:480px;width:100%",f.innerHTML=`
2824
2824
  <button class="vnr-close-btn" aria-label="Close">
2825
2825
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
2826
2826
  </button>
@@ -2867,15 +2867,15 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2867
2867
  Capture & Send
2868
2868
  </button>
2869
2869
  </div>
2870
- `,B.appendChild(f);const m=f.querySelector("#vnr-cam-video"),w=f.querySelector("#vnr-cam-canvas"),v=f.querySelector("#vnr-cam-overlay"),C=f.querySelector("#vnr-cam-status"),y=f.querySelector("#vnr-cam-capture"),Q=f.querySelector("#vnr-cam-liveness-toggle"),x=f.querySelector("#vnr-liveness-progress-container"),F=f.querySelector("#vnr-liveness-bar"),I=f.querySelector("#vnr-liveness-pct"),L=f.querySelector("#vnr-cam-guide"),O=f.querySelector("#vnr-cam-guide-text"),K=()=>{g&&(clearInterval(g),g=null),this.captureLivenessInterval=null,u==null||u.getTracks().forEach(k=>k.stop()),u=null,o.captureStream=null,m.srcObject=null};f.querySelector(".vnr-close-btn").addEventListener("click",()=>{K(),this.captureActive=!1,this.dismiss(),i("User closed")}),f.querySelector("#vnr-cam-cancel").addEventListener("click",()=>{K(),this.captureActive=!1,this.dismiss(),i("User cancelled")});const M=()=>{this.captureActive&&(v.style.display="flex",v.innerHTML=`
2870
+ `,B.appendChild(f);const m=f.querySelector("#vnr-cam-video"),w=f.querySelector("#vnr-cam-canvas"),v=f.querySelector("#vnr-cam-overlay"),C=f.querySelector("#vnr-cam-status"),y=f.querySelector("#vnr-cam-capture"),Q=f.querySelector("#vnr-cam-liveness-toggle"),E=f.querySelector("#vnr-liveness-progress-container"),F=f.querySelector("#vnr-liveness-bar"),I=f.querySelector("#vnr-liveness-pct"),L=f.querySelector("#vnr-cam-guide"),O=f.querySelector("#vnr-cam-guide-text"),K=()=>{g&&(clearInterval(g),g=null),this.captureLivenessInterval=null,u==null||u.getTracks().forEach(k=>k.stop()),u=null,o.captureStream=null,m.srcObject=null};f.querySelector(".vnr-close-btn").addEventListener("click",()=>{K(),this.captureActive=!1,this.dismiss(),i("User closed")}),f.querySelector("#vnr-cam-cancel").addEventListener("click",()=>{K(),this.captureActive=!1,this.dismiss(),i("User cancelled")});const M=()=>{this.captureActive&&(v.style.display="flex",v.innerHTML=`
2871
2871
  <div class="vnr-spinner" style="width:32px;height:32px;border-width:3px;border-color:rgba(255,255,255,.15);border-top-color:#fff"></div>
2872
2872
  <p style="margin:0;font-size:13px;color:#94a3b8">Opening camera…</p>
2873
- `,y.disabled=!0,navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:c}},audio:!1}).then(k=>{if(!this.captureActive){k.getTracks().forEach(AA=>AA.stop());return}return u=k,o.captureStream=k,m.srcObject=k,m.play().catch(()=>{})}).then(()=>{if(!(!this.captureActive||!u)){if(v.style.display="none",!f.querySelector(".vnr-live-badge")){const k=document.createElement("div");k.className="vnr-live-badge",k.innerHTML='<span class="vnr-live-dot"></span>LIVE',f.querySelector("#vnr-cam-wrap").appendChild(k)}Q.checked=h,Z()}}).catch(()=>{this.captureActive&&(this.notifyCameraPermissionDenied(r,A.toolCallId),this.fillCameraPermissionPrompt(v,{onRetry:M,onDismiss:()=>{K(),this.captureActive=!1,this.dismiss(),i("Camera permission denied","cancelled")}}))}))};M();function Z(){g&&(clearInterval(g),g=null,o.captureLivenessInterval=null),Q.checked?(x.style.display="block",L.style.display="block",y.disabled=!0,T()):(x.style.display="none",L.style.display="none",y.disabled=!1)}Q.addEventListener("change",Z);function T(){let k=null;const AA=[];let iA=1,oA=0,ZA=0,Sn=0,Pa=!1;const is=document.createElement("canvas"),Ka=is.getContext("2d");is.width=80,is.height=60,F.style.width="0%",F.style.backgroundColor="#6366f1",I.style.color="#6366f1",I.innerText="0%",L.style.borderColor="rgba(255,255,255,0.45)",L.style.boxShadow="0 0 0 9999px rgba(15,23,42,0.6)",O.innerText="Align your face in center",O.style.color="#fff",g=setInterval(()=>{if(!u||m.paused||m.ended)return;Ka.drawImage(m,0,0,80,60);const Me=Ka.getImageData(0,0,80,60).data;if(k){let Hn=0;for(let hA=0;hA<Me.length;hA+=4)Hn+=Math.abs(Me[hA]-k[hA]),Hn+=Math.abs(Me[hA+1]-k[hA+1]),Hn+=Math.abs(Me[hA+2]-k[hA+2]);const Ln=Hn/(Me.length/4*3);if(ZA===0){Sn++,AA.push(Ln);const hA=Math.min(100,Math.round(Sn/15*100));F.style.width=`${hA*.3}%`,I.innerText=`${Math.round(hA*.3)}%`,O.innerText="Hold still to calibrate…",O.style.color="#a5b4fc",Sn>=15&&(iA=AA.reduce((_f,Yf)=>_f+Yf,0)/AA.length,iA<.2&&(iA=.2),ZA=1,Sn=0,F.style.width="30%",I.innerText="30%")}else if(ZA===1){O.innerText="Now blink or turn head slightly",O.style.color="#ffd2d2";const hA=Math.max(3,iA*3.5);if(Ln>hA&&Ln<30){oA+=15,oA>70&&(oA=70,Pa=!0);const os=30+oA;F.style.width=`${os}%`,I.innerText=`${os}%`}else Pa&&Ln<=hA*1.5&&(ZA=2,F.style.width="100%",F.style.backgroundColor="#10b981",I.innerText="100%",I.style.color="#10b981",O.innerText="✓ Liveness Verified! Click Capture & Send.",O.style.color="#10b981",L.style.borderColor="#10b981",L.style.boxShadow="0 0 0 9999px rgba(16,185,129,0.2)",y.disabled=!1,g&&(clearInterval(g),g=null,o.captureLivenessInterval=null))}}k=Me},100),o.captureLivenessInterval=g}y.addEventListener("click",async()=>{if(!u||m.videoWidth===0)return;w.width=m.videoWidth,w.height=m.videoHeight,w.getContext("2d").drawImage(m,0,0),K(),f.querySelector("#vnr-cam-wrap").setAttribute("style","display:none"),f.querySelector(".vnr-liveness-toggle-wrap")&&(f.querySelector(".vnr-liveness-toggle-wrap").style.display="none"),x.style.display="none",y.disabled=!0,C.style.display="block",C.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Sending photo…</div>';try{const AA=await new Promise(oA=>w.toBlob(ZA=>oA(ZA),"image/jpeg",.85));if(!AA)throw new Error("Capture failed");const iA=new File([AA],`capture-${Date.now()}.jpg`,{type:"image/jpeg"});if(r&&typeof r.uploadMedia=="function"){const{media_id:oA,url:ZA}=await r.uploadMedia(iA,d,"User captured a photo via camera");C.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ Photo sent!</div>',setTimeout(()=>{this.dismiss(),s({file_name:iA.name,file_type:iA.type,file_size:iA.size,media_id:oA,url:ZA,message:"User captured and sent a photo."})},400)}else{const oA=w.toDataURL("image/jpeg",.85);C.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ Photo ready!</div>',setTimeout(()=>{this.dismiss(),s({file_name:iA.name,data_url:oA,message:"User captured a photo."})},400)}}catch(AA){C.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(AA==null?void 0:AA.message)||"Capture failed"}</div>`}})}renderClipRegion(A,e,t,r){const s=A.args??{},i=String(s.reason??A.clientFields.reason??"page_clip"),o=String(s.prompt??s.message??A.clientFields.default_prompt??"").trim(),a=String(A.clientFields.hint??(o?`Select the area to answer: "${o}"`:"Drag to select an area — release to clip.")),l=Number(A.clientFields.min_region_px??24),c=d=>{Gn(),t(d,{status:"cancelled"})};if(typeof document>"u"){c("Page clip is only available in browser environments");return}El({hint:a,minSizePx:l}).then(async d=>{if(!d){c("User cancelled region selection");return}const h=new File([d.blob],`clip-${Date.now()}.jpg`,{type:"image/jpeg"}),u=o?`User clipped a page region and asked: ${o}`:"User clipped a region of the page and sent it for analysis.";try{await this.completeBlockingMediaTool(r,h,i,{preset_id:b.ClipRegion,region:d.region,viewport:d.viewport,pixel_size:d.pixelSize,prompt:o||void 0,message:u},e)}catch(g){const B=g instanceof Error?g.message:"Clip upload failed";t(B,{status:"cancelled"})}}).catch(d=>{c(d instanceof Error?d.message:"Region clip failed")})}async completeBlockingMediaTool(A,e,t,r,s){const i=A==null?void 0:A.uploadMediaForToolResult;let o,a;if(i&&typeof i=="function")try{const c=await i.call(A,e,t);o=c.media_id,a=c.url}catch{}if(o&&a){s({status:"success",media_id:o,url:a,...r});return}const l=await new Promise((c,d)=>{const h=new FileReader;h.onload=()=>c(String(h.result)),h.onerror=()=>d(new Error("Failed to read media blob")),h.readAsDataURL(e)});s({status:"success",data_url:l,...r})}renderTabScreenshot(A,e,t,r){const s=A.args??{},i=String(s.reason??A.clientFields.reason??"tab_screenshot"),o=String(s.prompt??s.message??A.clientFields.default_prompt??"").trim(),a=Number(s.max_width??A.clientFields.max_width??1280),l=Number(s.max_elements??A.clientFields.max_elements??80);if(typeof document>"u"){t("Tab screenshot is only available in browser environments");return}(async()=>{try{const c=_s({maxElements:Number.isFinite(l)?l:80}),d=Sl(c),u=`${o?`Tab snapshot captured. Context: ${o}`:"Tab snapshot of the visible page captured."}
2873
+ `,y.disabled=!0,navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:d}},audio:!1}).then(k=>{if(!this.captureActive){k.getTracks().forEach(AA=>AA.stop());return}return u=k,o.captureStream=k,m.srcObject=k,m.play().catch(()=>{})}).then(()=>{if(!(!this.captureActive||!u)){if(v.style.display="none",!f.querySelector(".vnr-live-badge")){const k=document.createElement("div");k.className="vnr-live-badge",k.innerHTML='<span class="vnr-live-dot"></span>LIVE',f.querySelector("#vnr-cam-wrap").appendChild(k)}Q.checked=h,Z()}}).catch(()=>{this.captureActive&&(this.notifyCameraPermissionDenied(r,A.toolCallId),this.fillCameraPermissionPrompt(v,{onRetry:M,onDismiss:()=>{K(),this.captureActive=!1,this.dismiss(),i("Camera permission denied","cancelled")}}))}))};M();function Z(){g&&(clearInterval(g),g=null,o.captureLivenessInterval=null),Q.checked?(E.style.display="block",L.style.display="block",y.disabled=!0,T()):(E.style.display="none",L.style.display="none",y.disabled=!1)}Q.addEventListener("change",Z);function T(){let k=null;const AA=[];let iA=1,oA=0,ZA=0,Ln=0,Ya=!1;const ls=document.createElement("canvas"),za=ls.getContext("2d");ls.width=80,ls.height=60,F.style.width="0%",F.style.backgroundColor="#6366f1",I.style.color="#6366f1",I.innerText="0%",L.style.borderColor="rgba(255,255,255,0.45)",L.style.boxShadow="0 0 0 9999px rgba(15,23,42,0.6)",O.innerText="Align your face in center",O.style.color="#fff",g=setInterval(()=>{if(!u||m.paused||m.ended)return;za.drawImage(m,0,0,80,60);const Me=za.getImageData(0,0,80,60).data;if(k){let Tn=0;for(let hA=0;hA<Me.length;hA+=4)Tn+=Math.abs(Me[hA]-k[hA]),Tn+=Math.abs(Me[hA+1]-k[hA+1]),Tn+=Math.abs(Me[hA+2]-k[hA+2]);const Mn=Tn/(Me.length/4*3);if(ZA===0){Ln++,AA.push(Mn);const hA=Math.min(100,Math.round(Ln/15*100));F.style.width=`${hA*.3}%`,I.innerText=`${Math.round(hA*.3)}%`,O.innerText="Hold still to calibrate…",O.style.color="#a5b4fc",Ln>=15&&(iA=AA.reduce((qf,$f)=>qf+$f,0)/AA.length,iA<.2&&(iA=.2),ZA=1,Ln=0,F.style.width="30%",I.innerText="30%")}else if(ZA===1){O.innerText="Now blink or turn head slightly",O.style.color="#ffd2d2";const hA=Math.max(3,iA*3.5);if(Mn>hA&&Mn<30){oA+=15,oA>70&&(oA=70,Ya=!0);const cs=30+oA;F.style.width=`${cs}%`,I.innerText=`${cs}%`}else Ya&&Mn<=hA*1.5&&(ZA=2,F.style.width="100%",F.style.backgroundColor="#10b981",I.innerText="100%",I.style.color="#10b981",O.innerText="✓ Liveness Verified! Click Capture & Send.",O.style.color="#10b981",L.style.borderColor="#10b981",L.style.boxShadow="0 0 0 9999px rgba(16,185,129,0.2)",y.disabled=!1,g&&(clearInterval(g),g=null,o.captureLivenessInterval=null))}}k=Me},100),o.captureLivenessInterval=g}y.addEventListener("click",async()=>{if(!u||m.videoWidth===0)return;w.width=m.videoWidth,w.height=m.videoHeight,w.getContext("2d").drawImage(m,0,0),K(),f.querySelector("#vnr-cam-wrap").setAttribute("style","display:none"),f.querySelector(".vnr-liveness-toggle-wrap")&&(f.querySelector(".vnr-liveness-toggle-wrap").style.display="none"),E.style.display="none",y.disabled=!0,C.style.display="block",C.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Sending photo…</div>';try{const AA=await new Promise(oA=>w.toBlob(ZA=>oA(ZA),"image/jpeg",.85));if(!AA)throw new Error("Capture failed");const iA=new File([AA],`capture-${Date.now()}.jpg`,{type:"image/jpeg"});if(r&&typeof r.uploadMedia=="function"){const{media_id:oA,url:ZA}=await r.uploadMedia(iA,c,"User captured a photo via camera");C.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ Photo sent!</div>',setTimeout(()=>{this.dismiss(),s({file_name:iA.name,file_type:iA.type,file_size:iA.size,media_id:oA,url:ZA,message:"User captured and sent a photo."})},400)}else{const oA=w.toDataURL("image/jpeg",.85);C.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ Photo ready!</div>',setTimeout(()=>{this.dismiss(),s({file_name:iA.name,data_url:oA,message:"User captured a photo."})},400)}}catch(AA){C.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(AA==null?void 0:AA.message)||"Capture failed"}</div>`}})}renderClipRegion(A,e,t,r){const s=A.args??{},i=String(s.reason??A.clientFields.reason??"page_clip"),o=String(s.prompt??s.message??A.clientFields.default_prompt??"").trim(),a=String(A.clientFields.hint??(o?`Select the area to answer: "${o}"`:"Drag to select an area — release to clip.")),l=Number(A.clientFields.min_region_px??24),d=c=>{_n(),t(c,{status:"cancelled"})};if(typeof document>"u"){d("Page clip is only available in browser environments");return}Ml({hint:a,minSizePx:l}).then(async c=>{if(!c){d("User cancelled region selection");return}const h=new File([c.blob],`clip-${Date.now()}.jpg`,{type:"image/jpeg"}),u=o?`User clipped a page region and asked: ${o}`:"User clipped a region of the page and sent it for analysis.";try{await this.completeBlockingMediaTool(r,h,i,{preset_id:b.ClipRegion,region:c.region,viewport:c.viewport,pixel_size:c.pixelSize,prompt:o||void 0,message:u},e)}catch(g){const B=g instanceof Error?g.message:"Clip upload failed";t(B,{status:"cancelled"})}}).catch(c=>{d(c instanceof Error?c.message:"Region clip failed")})}async completeBlockingMediaTool(A,e,t,r,s){const i=A==null?void 0:A.uploadMediaForToolResult;let o,a;if(i&&typeof i=="function")try{const d=await i.call(A,e,t);o=d.media_id,a=d.url}catch{}if(o&&a){s({status:"success",media_id:o,url:a,...r});return}const l=await new Promise((d,c)=>{const h=new FileReader;h.onload=()=>d(String(h.result)),h.onerror=()=>c(new Error("Failed to read media blob")),h.readAsDataURL(e)});s({status:"success",data_url:l,...r})}renderTabScreenshot(A,e,t,r){const s=A.args??{},i=String(s.reason??A.clientFields.reason??"tab_screenshot"),o=String(s.prompt??s.message??A.clientFields.default_prompt??"").trim(),a=Number(s.max_width??A.clientFields.max_width??1280),l=Number(s.max_elements??A.clientFields.max_elements??80);if(typeof document>"u"){t("Tab screenshot is only available in browser environments");return}(async()=>{try{const d=Js({maxElements:Number.isFinite(l)?l:80}),c=Kl(d),u=`${o?`Tab snapshot captured. Context: ${o}`:"Tab snapshot of the visible page captured."}
2874
2874
 
2875
- COORDINATES ARE NORMALIZED VIEWPORT (0–1), NOT JPEG PIXELS. viewport=${c.viewport.width}x${c.viewport.height}
2875
+ COORDINATES ARE NORMALIZED VIEWPORT (0–1), NOT JPEG PIXELS. viewport=${d.viewport.width}x${d.viewport.height}
2876
2876
 
2877
2877
  For screen_ink prefer css_selector (live DOM) OR copy stroke_points from below:
2878
- ${d}`,g={layout:c,elements:c.elements,element_count:c.elements.length,layout_summary:d,coordinate_system:c.coordinate_system,drawing_guide:"Use screen_ink with css_selector for exact placement, or strokes:[{ points: element.stroke_points, close:true }]. Coords are 0–1 viewport fractions."};e({status:"success",preset_id:b.TabScreenshot,viewport:c.viewport,prompt:o||void 0,message:u,...g}),(async()=>{try{let B=await Ls();Number.isFinite(a)&&a>0&&(B=Ts(B,a));const f=await Rn(B),m=new File([f],`tab-${Date.now()}.jpg`,{type:"image/jpeg"}),w=r==null?void 0:r.uploadMediaForToolResult;w&&typeof w=="function"&&await w.call(r,m,i)}catch{}})()}catch(c){const d=c instanceof Error?c.message:"Tab screenshot failed";t(d,{status:"cancelled"})}})()}renderUpload(A,e,t,r){this.bindActiveModalPreset(A,b.Upload,e,t);const s=C=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Upload,...C})},i=C=>{this.clearActiveModalPreset(),t(C,{status:"cancelled"})},o=A.clientFields.title||"Upload a File",a=A.clientFields.description||"Drop or select a file to send to your agent.",l=A.clientFields.reason||"upload",c=A.clientFields.accept||"image/*,application/pdf,text/plain,text/csv";let d=null;const h=this.createOverlay(),u=document.createElement("div");u.className="vnr-modal",u.style.cssText="position:relative;max-width:480px;width:100%",u.innerHTML=`
2878
+ ${c}`,g={layout:d,elements:d.elements,element_count:d.elements.length,layout_summary:c,coordinate_system:d.coordinate_system,drawing_guide:"Use screen_ink with css_selector for exact placement, or strokes:[{ points: element.stroke_points, close:true }]. Coords are 0–1 viewport fractions."};e({status:"success",preset_id:b.TabScreenshot,viewport:d.viewport,prompt:o||void 0,message:u,...g}),(async()=>{try{let B=await ks();Number.isFinite(a)&&a>0&&(B=Ds(B,a));const f=await Vn(B),m=new File([f],`tab-${Date.now()}.jpg`,{type:"image/jpeg"}),w=r==null?void 0:r.uploadMediaForToolResult;w&&typeof w=="function"&&await w.call(r,m,i)}catch{}})()}catch(d){const c=d instanceof Error?d.message:"Tab screenshot failed";t(c,{status:"cancelled"})}})()}renderUpload(A,e,t,r){this.bindActiveModalPreset(A,b.Upload,e,t);const s=C=>{this.clearActiveModalPreset(),e({status:"success",preset_id:b.Upload,...C})},i=C=>{this.clearActiveModalPreset(),t(C,{status:"cancelled"})},o=A.clientFields.title||"Upload a File",a=A.clientFields.description||"Drop or select a file to send to your agent.",l=A.clientFields.reason||"upload",d=A.clientFields.accept||"image/*,application/pdf,text/plain,text/csv";let c=null;const h=this.createOverlay(),u=document.createElement("div");u.className="vnr-modal",u.style.cssText="position:relative;max-width:480px;width:100%",u.innerHTML=`
2879
2879
  <button class="vnr-close-btn" aria-label="Close">
2880
2880
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
2881
2881
  </button>
@@ -2888,7 +2888,7 @@ ${d}`,g={layout:c,elements:c.elements,element_count:c.elements.length,layout_sum
2888
2888
  <span style="display:inline-block;padding:7px 16px;background:#111;color:#fff;border-radius:9px;font-size:13px;font-weight:600">Choose File</span>
2889
2889
  <p style="margin:12px 0 0;font-size:11px;color:#9ca3af">Images, PDF, CSV, Docs · Max 10 MB</p>
2890
2890
  </div>
2891
- <input id="vnr-file-input" type="file" accept="${c}" style="display:none">
2891
+ <input id="vnr-file-input" type="file" accept="${d}" style="display:none">
2892
2892
  <div id="vnr-file-preview" style="display:none;border:1px solid #e5e7eb;border-radius:12px;padding:14px;background:#f9fafb"></div>
2893
2893
  <div id="vnr-upload-status" style="display:none"></div>
2894
2894
  <div class="vnr-actions" style="margin-top:14px">
@@ -2898,7 +2898,7 @@ ${d}`,g={layout:c,elements:c.elements,element_count:c.elements.length,layout_sum
2898
2898
  Upload & Send
2899
2899
  </button>
2900
2900
  </div>
2901
- `,h.appendChild(u);const g=u.querySelector("#vnr-drop-zone"),B=u.querySelector("#vnr-file-input"),f=u.querySelector("#vnr-file-preview"),m=u.querySelector("#vnr-upload-status"),w=u.querySelector("#vnr-up-submit");u.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed")}),u.querySelector("#vnr-up-cancel").addEventListener("click",()=>{this.dismiss(),i("User cancelled")});const v=C=>{d=C,g.style.display="none";const y=C.type.startsWith("image/")?"🖼️":C.type.includes("pdf")?"📄":"📁",Q=(C.size/1024).toFixed(1);f.style.display="block",f.innerHTML=`
2901
+ `,h.appendChild(u);const g=u.querySelector("#vnr-drop-zone"),B=u.querySelector("#vnr-file-input"),f=u.querySelector("#vnr-file-preview"),m=u.querySelector("#vnr-upload-status"),w=u.querySelector("#vnr-up-submit");u.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed")}),u.querySelector("#vnr-up-cancel").addEventListener("click",()=>{this.dismiss(),i("User cancelled")});const v=C=>{c=C,g.style.display="none";const y=C.type.startsWith("image/")?"🖼️":C.type.includes("pdf")?"📄":"📁",Q=(C.size/1024).toFixed(1);f.style.display="block",f.innerHTML=`
2902
2902
  <div style="display:flex;align-items:center;gap:10px">
2903
2903
  <span style="font-size:28px">${y}</span>
2904
2904
  <div style="flex:1;min-width:0">
@@ -2909,18 +2909,18 @@ ${d}`,g={layout:c,elements:c.elements,element_count:c.elements.length,layout_sum
2909
2909
  <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
2910
2910
  </button>
2911
2911
  </div>
2912
- `,f.querySelector("#vnr-remove-file").addEventListener("click",()=>{d=null,f.style.display="none",g.style.display="block",w.disabled=!0}),w.disabled=!1};g.addEventListener("click",()=>B.click()),g.addEventListener("dragover",C=>{C.preventDefault(),g.classList.add("drag")}),g.addEventListener("dragleave",()=>g.classList.remove("drag")),g.addEventListener("drop",C=>{var Q;C.preventDefault(),g.classList.remove("drag");const y=(Q=C.dataTransfer)==null?void 0:Q.files[0];y&&v(y)}),B.addEventListener("change",()=>{var y;const C=(y=B.files)==null?void 0:y[0];C&&v(C)}),w.addEventListener("click",async()=>{if(!d)return;const C=d;g.style.display="none",f.style.display="none",m.style.display="block",m.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Uploading…</div>',w.disabled=!0;try{if(r&&typeof r.uploadMedia=="function"){const{media_id:y,url:Q}=await r.uploadMedia(C,l,`User uploaded: ${C.name}`);m.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ File sent!</div>',setTimeout(()=>{this.dismiss(),s({file_name:C.name,file_type:C.type,file_size:C.size,media_id:y,url:Q,message:`User uploaded: ${C.name}`})},400)}else{const y=new FileReader;y.onload=Q=>{m.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ File ready!</div>',setTimeout(()=>{this.dismiss(),s({file_name:C.name,file_type:C.type,file_size:C.size,data_url:Q.target.result,message:`User uploaded: ${C.name}`})},400)},y.readAsDataURL(C)}}catch(y){m.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(y==null?void 0:y.message)||"Upload failed. Please try again."}</div>`,w.disabled=!1,this.dismiss(),this.clearActiveModalPreset(),t((y==null?void 0:y.message)||"Upload failed",{status:"cancelled"})}})}extractElementRoute(A){const e=A.args||{},t=A.clientFields||{};return String(e.route||t.route||e.target_route||t.target_route||"").trim()}normalizeRouteForCompare(A){const e=(A.trim()||"/").split("#")[0],t=e.startsWith("/")?e:`/${e}`;try{const r=new URL(t,window.location.origin);return`${r.pathname}${r.search}`||"/"}catch{return t||"/"}}isCurrentRoute(A){const e=this.normalizeRouteForCompare(A);return(`${window.location.pathname}${window.location.search}`||"/")===e}parseDomTarget(A){const e=A.trim();return e?/^[.#\[]/.test(e)||e.includes(" ")||e.includes(">")?{selector:e}:{elementId:e.replace(/^#/,"")}:{}}findDomTarget(A){if(A.selector)try{const e=document.querySelector(A.selector);if(e)return e}catch{}return A.elementId?document.getElementById(A.elementId.replace(/^#/,"")):null}waitForRouteReady(A,e,t=6e3,r=100){return new Promise(s=>{const i=Date.now()+t,o=!!(e.elementId||e.selector),a=()=>{const l=this.isCurrentRoute(A),c=o?!!this.findDomTarget(e):!0;if(l&&c){s(!0);return}if(Date.now()>=i){s(l);return}window.setTimeout(a,r)};window.setTimeout(a,80)})}dispatchAgentNavigate(A,e){sl(A,{presetId:e.presetId,toolName:e.toolName});const t={url:A,path:A,handled:!1,initiated_by:"agent",preset_id:e.presetId};return window.dispatchEvent(new CustomEvent("vanira:navigate",{detail:t,cancelable:!0})),t}async withElementRoute(A,e,t,r,s){if(!A){r({navigated:!1});return}if(this.isCurrentRoute(A)){r({navigated:!1,route:A});return}const i=this.resolveNavigateTarget(A);if("external"in i){t("Element route must be a same-origin path");return}const o=i.internal;if(!this.dispatchAgentNavigate(o,{presetId:s,toolName:"element_route"}).handled){window.location.assign(o);return}if(!await this.waitForRouteReady(o,e)){t(`Timed out navigating to ${o} for element action`);return}r({navigated:!0,route:o})}resolveNavigateTarget(A){const e=A.trim()||"/";if(e.startsWith("http://")||e.startsWith("https://"))try{const t=new URL(e);return t.origin===window.location.origin?{internal:`${t.pathname}${t.search}${t.hash}`||"/"}:{external:e}}catch{return{internal:e}}return{internal:e}}renderNavigate(A,e,t){var l,c;const r=String(((l=A.clientFields)==null?void 0:l.target_url)||((c=A.args)==null?void 0:c.target_url)||"/"),s=A.toolCallId;if(s&&this.settledNavigateToolCallIds.has(s))return;this.activeNavigate={ctx:A,onComplete:e,onCancel:t,targetUrl:r};const i=this.resolveNavigateTarget(r);if("external"in i){window.open(i.external,"_blank","noopener,noreferrer"),this.completeNavigate({navigation_type:"external"});return}const o=i.internal;if(!this.dispatchAgentNavigate(o,{presetId:b.Navigate,toolName:"vanira_navigate"}).handled){this.cancelNavigate("No SPA listener handled vanira:navigate","cancelled");return}this.completeNavigate({path:o,navigation_type:"internal"})}renderHighlight(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.css_selector||s.css_selector||r.selector||s.selector||""),o=String(r.highlight_color||s.highlight_color||r.color||s.color||"#a855f7"),a=Number(r.duration_ms||s.duration_ms||3e3);if(!i){t("No css_selector provided for highlight");return}const l=document.querySelector(i);if(!l){t(`Element not found for selector: "${i}"`);return}const c=l.style.outline,d=l.style.outlineOffset,h=l.style.boxShadow,u=l.style.transition,g=l.style.scrollMarginTop;l.style.transition="outline 0.2s ease, box-shadow 0.2s ease",l.style.outline=`3px solid ${o}`,l.style.outlineOffset="6px",l.style.boxShadow=`0 0 0 8px ${o}33, 0 0 32px ${o}88`,l.style.scrollMarginTop="100px",l.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{l.style.outline=c,l.style.outlineOffset=d,l.style.boxShadow=h,l.style.transition=u,l.style.scrollMarginTop=g},a),e({status:"success",preset_id:b.HighlightElement,message:`Element highlighted: ${i}`})}renderScreenInk(A,e,t){const r=A.args||{},s=A.clientFields||{},i=Ne(),o=r.interactive===!0||r.user_draw===!0||s.interactive===!0||String(r.interactive??s.interactive??"").toLowerCase()==="true";(async()=>{const a=await i.applyInkFromArgs(r,s),l=a.strokes+a.labels;if(l===0&&!o){t("No valid strokes or labels (provide strokes[], labels[], or points)");return}const c=[];a.strokes>0&&c.push(`${a.strokes} stroke(s)`),a.labels>0&&c.push(`${a.labels} label(s)`),e({status:"success",preset_id:b.ScreenInk,message:o?`Drew ${c.join(" and ")}; user can freehand draw until cleared`:`Drew ${c.join(" and ")}`,stroke_count:a.strokes,label_count:a.labels,annotation_count:l,interactive:o||void 0})})()}renderScreenCursor(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.color||s.color||"#f97316"),o=String(r.label||s.label||""),a=Number(r.duration_ms??s.duration_ms??2500),c=Ne().showCursor({x:r.x??s.x,y:r.y??s.y,css_selector:String(r.css_selector||s.css_selector||r.selector||s.selector||"")||void 0,label:o||void 0,color:i,duration_ms:a});if(!c){t("No valid position for screen cursor (provide x/y or css_selector)");return}e({status:"success",preset_id:b.ScreenCursor,message:"Screen cursor shown",x:c.px,y:c.py})}renderScreenClick(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.color||s.color||"#f97316"),o=r.show_ripple??s.show_ripple??!0,a=r.show_cursor??s.show_cursor??!0,l=r.perform_click??s.perform_click??!0,c=String(r.css_selector||s.css_selector||r.selector||s.selector||"").trim();let d,h;if(c){const f=document.querySelector(c);if(!f){t(`Element not found for selector: "${c}"`);return}const m=f.getBoundingClientRect();d=m.left+m.width/2,h=m.top+m.height/2}else{const f=r.x??s.x,m=r.y??s.y;if(f==null||m==null){t("No valid position for screen click (provide x/y or css_selector)");return}const w=window.innerWidth,v=window.innerHeight,C=Number(f),y=Number(m);d=C>=0&&C<=1?C*w:C,h=y>=0&&y<=1?y*v:y}const u=Ne();a&&u.showCursor({x:d,y:h,color:i,duration_ms:800}),o&&u.showClickRipple(d,h,i);let g="",B="";if(l){const f=ql(d,h);f&&($l(f),g=f.tagName.toLowerCase(),B=f.id||"")}e({status:"success",preset_id:b.ScreenClick,message:l&&g?`Clicked ${g}${B?`#${B}`:""} at (${Math.round(d)}, ${Math.round(h)})`:`Click ripple at (${Math.round(d)}, ${Math.round(h)})`,x:d,y:h,clicked_tag:g||void 0,clicked_id:B||void 0})}renderClickElement(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.id||s.id||"").trim().replace(/^#/,""),o=r.scroll_before_click??s.scroll_before_click??!0,a=this.extractElementRoute(A);if(!i){t("No element_id provided for click");return}this.withElementRoute(a,{elementId:i},t,l=>{this.executeClickElement(i,o,l,e,t)},b.ClickElement)}executeClickElement(A,e,t,r,s){const i=document.getElementById(A);if(!i){s(`Element not found for id: "${A}"`);return}if(!this.isElementClickable(i)){s(`Element matched but is not clickable: "#${A}"`);return}e!==!1&&e!=="false"&&i.scrollIntoView({behavior:"smooth",block:"center"}),i.classList.add("vnr-click-pulse"),window.setTimeout(()=>i.classList.remove("vnr-click-pulse"),450),this.programmaticClick(i),r({status:"success",preset_id:b.ClickElement,element_id:A,...t.route?{route:t.route}:{},...t.navigated?{navigated_to_route:t.route}:{},message:`Clicked element: #${A}`,tag_name:i.tagName.toLowerCase(),element_text:(i.textContent||"").trim().slice(0,120)})}renderSelectOption(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.id||s.id||"").trim().replace(/^#/,""),o=this.extractElementRoute(A),a=String(r.option_value||s.option_value||"").trim(),l=String(r.option_label||s.option_label||r.option_text||s.option_text||"").trim();if(!i){t("No element_id provided for select");return}if(!a&&!l){t("Provide option_value or option_label");return}this.withElementRoute(o,{elementId:i},t,c=>{this.executeSelectOption(i,a,l,c,e,t)},b.SelectOption)}async executeSelectOption(A,e,t,r,s,i){var c,d,h,u;const o=document.getElementById(A);if(!o){i(`Element not found for id: "${A}"`);return}o.scrollIntoView({behavior:"smooth",block:"center"});let a="",l="";if(o instanceof HTMLSelectElement){if(!this.setNativeSelectValue(o,e,t)){i(`No matching option in #${A}`);return}a=o.value,l=((d=(c=o.options[o.selectedIndex])==null?void 0:c.text)==null?void 0:d.trim())||a}else{const g=o.querySelector("select");if(g instanceof HTMLSelectElement){if(!this.setNativeSelectValue(g,e,t)){i(`No matching option in #${A} select`);return}a=g.value,l=((u=(h=g.options[g.selectedIndex])==null?void 0:h.text)==null?void 0:u.trim())||a}else{if(!await this.selectCustomDropdownOption(o,e,t)){i(`Could not select option in #${A}`);return}a=e||t,l=t||e}}s({status:"success",preset_id:b.SelectOption,element_id:A,option_value:a||e,option_label:l||t,...r.route?{route:r.route}:{},...r.navigated?{navigated_to_route:r.route}:{},message:`Selected option in #${A}`})}setNativeSelectValue(A,e,t){const r=e.trim();if(r&&this.applyNativeSelectMatch(A,r,{matchValue:!0,matchLabel:!0}))return!0;const s=t.trim();return!!(s&&this.applyNativeSelectMatch(A,s,{matchValue:!0,matchLabel:!0}))}applyNativeSelectMatch(A,e,t){const r=e.trim();if(!r)return!1;const s=r.toLowerCase();for(const i of Array.from(A.options))if(t.matchValue&&i.value===r)return A.value=i.value,this.dispatchInputChange(A),!0;if(t.matchLabel)for(const i of Array.from(A.options)){const o=i.text.trim().toLowerCase();if(o===s||o.includes(s))return A.value=i.value,this.dispatchInputChange(A),!0}return!1}async selectCustomDropdownOption(A,e,t){this.programmaticClick(A),await new Promise(i=>window.setTimeout(i,200));const r=(t||e||"").trim().toLowerCase(),s=Array.from(document.querySelectorAll('[role="option"], [role="menuitem"], [role="menuitemradio"], li, button, a, div'));for(const i of s){if(!i.offsetParent&&i!==document.activeElement)continue;const o=(i.textContent||"").trim().toLowerCase(),a=i.getAttribute("data-value")||i.getAttribute("value")||"";if(e&&a===e)return this.programmaticClick(i),!0;if(r&&o&&(o===r||o.includes(r)))return this.programmaticClick(i),!0}return!1}renderSetDate(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.id||s.id||"").trim().replace(/^#/,""),o=this.extractElementRoute(A),a=String(r.date||s.date||"").trim(),l=String(r.input_kind||s.input_kind||"text").trim().toLowerCase(),c=String(r.text_format||s.text_format||"YYYY-MM-DD").trim();if(!i){t("No element_id provided for set date");return}if(!this.parseIsoDate(a)){t("date must be ISO YYYY-MM-DD");return}this.withElementRoute(o,{elementId:i},t,d=>{this.executeSetDate(i,a,l,c,d,e,t)},b.SetDate)}executeSetDate(A,e,t,r,s,i,o){const a=document.getElementById(A);if(!a){o(`Element not found for id: "${A}"`);return}if(!(a instanceof HTMLInputElement)&&!(a instanceof HTMLTextAreaElement)){o(`Element #${A} is not an input or textarea`);return}a.scrollIntoView({behavior:"smooth",block:"center"}),a.focus({preventScroll:!0});const l=t==="native_date"||a.type==="date",c=l?e:this.formatIsoDate(e,r);this.setNativeInputValue(a,c),i({status:"success",preset_id:b.SetDate,element_id:A,date:e,formatted_value:c,input_kind:l?"native_date":"text",text_format:l?"YYYY-MM-DD":r,...s.route?{route:s.route}:{},...s.navigated?{navigated_to_route:s.route}:{},message:`Set date on #${A}`})}parseIsoDate(A){const e=String(A).trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!e)return null;const t=parseInt(e[1],10),r=parseInt(e[2],10),s=parseInt(e[3],10);return r<1||r>12||s<1||s>31?null:{y:e[1],mo:e[2],d:e[3],year:t,month:r,day:s}}formatIsoDate(A,e){const t=this.parseIsoDate(A);if(!t)return A;const{y:r,mo:s,d:i,month:o,day:a}=t,l=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];switch(e){case"DD/MM/YYYY":return`${i}/${s}/${r}`;case"MM/DD/YYYY":return`${s}/${i}/${r}`;case"DD-MM-YYYY":return`${i}-${s}-${r}`;case"D MMM YYYY":return`${a} ${l[o-1]} ${r}`;case"YYYY-MM-DD":default:return A}}setNativeInputValue(A,e){var s;const t=A instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,r=(s=Object.getOwnPropertyDescriptor(t,"value"))==null?void 0:s.set;r?r.call(A,e):A.value=e,this.dispatchInputChange(A)}dispatchInputChange(A){A.dispatchEvent(new Event("input",{bubbles:!0})),A.dispatchEvent(new Event("change",{bubbles:!0}))}isElementClickable(A){if(A.hasAttribute("disabled")||"disabled"in A&&A.disabled)return!1;const e=window.getComputedStyle(A);return!(e.display==="none"||e.visibility==="hidden"||e.pointerEvents==="none")}programmaticClick(A){try{A.focus({preventScroll:!0})}catch{}const e=A.tagName.toLowerCase(),t=e==="input"?A.type.toLowerCase():"";if((e==="button"||e==="a"||["submit","button","checkbox","radio","reset"].includes(t))&&typeof A.click=="function"){A.click();return}const s={bubbles:!0,cancelable:!0,view:window,button:0,buttons:1};A.dispatchEvent(new MouseEvent("mousedown",s)),A.dispatchEvent(new MouseEvent("mouseup",s)),A.dispatchEvent(new MouseEvent("click",s))}applyBoardSizeToModal(A){const e=jc[this.boardSizePreset],t=this.boardViewMode==="reduced"?.5:1,r=mi(e.maxWidth,t),s=mi(e.height,t);A.style.setProperty("width",r,"important"),A.style.setProperty("max-width",r,"important"),A.style.setProperty("height",s,"important"),A.style.setProperty("max-height",s,"important"),A.classList.toggle("is-reduced",t<1),this.boardViewMode==="reduced"&&this.syncBoardDragLayout(A)}syncBoardResizeButton(A){if(!A)return;const e=this.boardViewMode==="reduced";A.innerHTML=e?Jc:zc,A.setAttribute("aria-label",e?"Restore board size":"Shrink board to half size"),A.title=e?"Restore board size":"Shrink board to half size"}toggleBoardReduced(A){const e=this.boardViewMode==="reduced";this.boardViewMode=e?"expanded":"reduced",e||(this.boardDragPosition=null),this.applyBoardSizeToModal(A),this.applyBoardLayoutMode(this.getBoardOverlay(),A)}wireChalkboardChrome(A,e){let t=A.querySelector(".vnr-whiteboard-header");if(t){const r=t.querySelector(".vnr-whiteboard-resize-btn");r&&(r.onclick=()=>this.toggleBoardReduced(A));const s=t.querySelector(".vnr-whiteboard-close-btn");s&&(s.onclick=()=>{if(this.activePresetGeneration++,e)try{e()}catch{}this.closeBoardUi()})}else{t=document.createElement("div"),t.className="vnr-whiteboard-header";const r=document.createElement("button");r.type="button",r.className="vnr-whiteboard-action-btn vnr-whiteboard-resize-btn",r.onclick=()=>this.toggleBoardReduced(A);const s=document.createElement("button");s.type="button",s.className="vnr-whiteboard-action-btn is-close vnr-whiteboard-close-btn",s.innerHTML=Xc,s.setAttribute("aria-label","Close board"),s.title="Close board",s.onclick=()=>{if(this.activePresetGeneration++,e)try{e()}catch{}this.closeBoardUi()},t.appendChild(r),t.appendChild(s);const i=A.querySelector(".vnr-whiteboard-canvas-wrap");i?A.insertBefore(t,i):A.prepend(t)}this.applyBoardSizeToModal(A),this.applyBoardLayoutMode(this.getBoardOverlay(),A),t&&this.wireBoardDrag(t,A)}wireChalkboardCloseButton(A,e){this.wireChalkboardChrome(A,e)}styleChalkboardTextarea(A){A.style.width="100%",A.style.height="100%",A.style.flex="1",A.style.position="relative",A.style.zIndex="1",A.style.background="transparent",A.style.border="none",A.style.padding="20px 28px 24px",A.style.fontSize="22px",A.style.lineHeight="1.55",A.style.fontFamily="'Architects Daughter', 'Caveat', 'Chalkboard SE', 'Chalkboard', cursive, sans-serif",A.style.color="#ffffff",A.style.textShadow="0 0 3px rgba(255, 255, 255, 0.45), 0 0 8px rgba(255, 255, 255, 0.15)",A.style.outline="none",A.style.resize="none",A.style.boxSizing="border-box"}applySplitBoardLayout(A,e){let t=A.querySelector(".vnr-whiteboard-draw-zone");if(t)return t;BA("Board","Applying split layout — diagram top, notes below");const r=A.querySelector(".vnr-whiteboard-draw-layer");t=document.createElement("div"),t.className="vnr-whiteboard-draw-zone",t.style.flex="0 0 42%",t.style.minHeight="0",t.style.position="relative",t.style.width="100%",t.style.borderBottom="1px solid rgba(255,255,255,0.1)",t.style.background="#08080a";const s=document.createElement("div");for(s.className="vnr-whiteboard-text-zone",s.style.flex="1",s.style.minHeight="0",s.style.display="flex",s.style.flexDirection="column",s.style.position="relative",s.style.background="#0a0a0c",s.style.overflow="hidden";A.firstChild;)A.removeChild(A.firstChild);return A.appendChild(t),A.appendChild(s),s.appendChild(e),r?t.appendChild(r):Ae(t),this.styleChalkboardTextarea(e),this.syncBoardLayout(A),t}syncBoardLayout(A){const e=A.querySelector(".vnr-whiteboard-draw-zone");if(!e)return;const t=this.boardInk.strokes.length>0||this.boardInk.labels.length>0||this.boardDrawInProgress;e.style.display=t?"":"none",e.style.flex=t?"0 0 42%":"0 0 0",e.style.minHeight=t?"200px":"0",this.syncBoardChapterTitle(e),BA("Board:Layout",t?"diagram top + notes below":"notes full board",{strokes:this.boardInk.strokes.length,labels:this.boardInk.labels.length})}syncBoardChapterTitle(A){const e=A??document.querySelector(".vnr-whiteboard-draw-zone");if(!e)return;let t=e.querySelector(".vnr-board-chapter-title");if(!this.boardChapterTitle){t==null||t.remove();return}t||(t=document.createElement("div"),t.className="vnr-board-chapter-title",t.style.cssText=["position:absolute","top:10px","left:12px","right:12px","z-index:3","pointer-events:none","text-align:center","color:#4A9EFF",'font-family:"Architects Daughter","Caveat",cursive,sans-serif',"font-size:22px","line-height:1.3","text-shadow:none"].join(";"),e.appendChild(t)),t.textContent=this.boardChapterTitle}getBoardDrawZone(A){const e=this.upgradeChalkboardCanvas(A),t=this.applySplitBoardLayout(e,A);return this.syncBoardLayout(e),t}upgradeChalkboardCanvas(A){let e=A.closest(".vnr-whiteboard-canvas-wrap");if(e)return e;BA("Board","Upgrading legacy chalkboard — adding draw layer");const t=A.parentElement;if(!t)return A;e=document.createElement("div"),e.className="vnr-whiteboard-canvas-wrap",e.style.display="flex",e.style.flexDirection="column",e.style.flex="1",e.style.height="100%",e.style.position="relative",t.insertBefore(e,A),e.appendChild(A),A.style.position="relative",A.style.zIndex="1",A.style.background="transparent",this.applySplitBoardLayout(e,A);const r=e.querySelector(".vnr-whiteboard-draw-zone");return(this.boardInk.strokes.length>0||this.boardInk.labels.length>0)&&this.syncDiagramLayer(Ae(r)),e}ensureChalkboardTextarea(A){let e=document.querySelector(".vnr-whiteboard-textarea");if(e){this.syncChalkboardNotes();const i=this.upgradeChalkboardCanvas(e);this.applySplitBoardLayout(i,e);const o=i.querySelector(".vnr-whiteboard-draw-zone"),a=Ae(o);a.childElementCount<=1&&(this.boardInk.strokes.length>0||this.boardInk.labels.length>0)&&this.syncDiagramLayer(a);const l=e.closest(".vnr-whiteboard-modal");return l&&(this.wireChalkboardChrome(l,A),this.revealBoardUi(l)),this.syncBoardLayout(i),e}if(!document.getElementById("vnr-chalk-font")){const i=document.createElement("link");i.id="vnr-chalk-font",i.rel="stylesheet",i.href="https://fonts.googleapis.com/css2?family=Architects+Daughter&family=Caveat:wght@400;700&display=swap",document.head.appendChild(i)}const t=this.createOverlay();t.classList.add("vnr-whiteboard-overlay","vnr-whiteboard-overlay-expanded");const r=document.createElement("div");r.className="vnr-modal vnr-whiteboard-modal",r.style.position="relative",r.style.display="flex",r.style.flexDirection="column",r.style.background="#0d0e12",r.style.border="12px solid #5c4033",r.style.borderRadius="16px",r.style.boxShadow="0 25px 60px rgba(0,0,0,0.65), inset 0 0 30px rgba(0,0,0,0.95)",r.style.padding="0",r.style.overflow="hidden",this.applyBoardSizeToModal(r);const s=document.createElement("div");if(s.className="vnr-whiteboard-canvas-wrap",s.style.display="flex",s.style.flexDirection="column",s.style.flex="1",s.style.minHeight="0",s.style.height="auto",s.style.position="relative",e=document.createElement("textarea"),e.className="vnr-whiteboard-textarea",e.placeholder="Notes appear here…",e.value=this.chalkboardContent,e.addEventListener("input",()=>{this.chalkboardContent=e.value}),s.appendChild(e),this.applySplitBoardLayout(s,e),this.syncBoardLayout(s),this.boardInk.strokes.length>0||this.boardInk.labels.length>0){const i=s.querySelector(".vnr-whiteboard-draw-zone");this.syncDiagramLayer(Ae(i))}return r.appendChild(s),t.appendChild(r),this.wireChalkboardChrome(r,A),e}eraseChalkboardInMemory(A,e){return A==="words"?this.eraseLastWords(this.chalkboardContent,e):(this.boardChapterTitle="","")}renderEraseDrawingBoard(A,e,t){this.syncChalkboardNotes();const r=this.boardInk.strokes.length,s=this.boardInk.labels.length,i=r>0||s>0,o=document.querySelector(".vnr-whiteboard-textarea");if(o){const a=this.getBoardDrawZone(o),l=Ae(a);Ut(l);const c=o.closest(".vnr-whiteboard-canvas-wrap");c&&this.syncBoardLayout(c)}else if(i){this.ensureChalkboardTextarea(()=>t("User dismissed chalkboard"));const a=document.querySelector(".vnr-whiteboard-textarea");if(a){const l=this.getBoardDrawZone(a);Ut(Ae(l));const c=a.closest(".vnr-whiteboard-canvas-wrap");c&&this.syncBoardLayout(c)}}this.boardInk=Ht(),this.boardDrawInProgress=!1,this.boardChapterTitle="",BA("Board:EraseDraw","Cleared diagram panel (notes kept)",{strokesCleared:r,labelsCleared:s}),e({status:"success",preset_id:b.EraseDraw,message:i?`Cleared ${r} stroke(s) and ${s} label(s) from the diagram panel. Written notes were kept.`:"Diagram panel was already empty. Written notes were not changed.",strokes_cleared:r,labels_cleared:s,shapes_cleared:r+s,diagram_cleared:!0,notes_preserved:!0,whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,board_snapshot:this.getBoardSnapshot(),...this.buildBoardVerification()})}renderDrawShapes(A,e,t){const r={...A.clientFields||{},...A.args||{}};this.syncChalkboardNotes();const s=vc(r,A.clientFields||{}),i=this.activePresetGeneration;if(BA("Board:Draw","draw_on_board invoked",{toolCallId:A.toolCallId,strokes:s.strokes.length,labels:s.labels.length,clearBefore:s.clearBefore,animate:s.animate,shape_duration_ms:s.durationMs}),!s.clearBefore&&s.strokes.length===0&&s.labels.length===0){uc("Board:Draw","No strokes or labels",r),e({status:"error",preset_id:b.Draw,message:"Provide strokes[] or labels[] (same as vanira_screen_ink), or flat points/path_d/label_text+coords. Use clear_old_diagrams_on_board:true to wipe the diagram.",board_snapshot:this.getBoardSnapshot()});return}const o=this.ensureChalkboardTextarea(()=>t("User dismissed chalkboard"));if(!o){e({status:"error",message:"Could not open chalkboard"});return}this.syncChalkboardNotes();const a=this.getBoardDrawZone(o),l=Ae(a);if(s.clearBefore){Ut(l),this.boardInk=Ht();const h=o.closest(".vnr-whiteboard-canvas-wrap");h&&this.syncBoardLayout(h),BA("Board:Draw","Cleared old diagrams on board (notes kept)")}if(s.strokes.length===0&&s.labels.length===0){e({status:"success",preset_id:b.Draw,message:"Old diagrams cleared from board",strokes_drawn:0,labels_drawn:0,shapes_drawn:0,clear_old_diagrams_on_board:!0,clear_drawings:!0,board_snapshot:this.getBoardSnapshot(),...this.buildBoardVerification()});return}const c=(h,u,g={})=>{this.boardDrawInProgress=!1;const B=i!==this.activePresetGeneration,f=o.closest(".vnr-whiteboard-canvas-wrap");f&&this.syncBoardLayout(f);const m={status:B?"cancelled":"success",preset_id:b.Draw,message:B?`Draw interrupted (${h} stroke(s), ${u} label(s) on board)`:`Drew ${h} stroke(s) and ${u} label(s) on chalkboard`,strokes_drawn:h,labels_drawn:u,shapes_drawn:h+u,shape_duration_ms:s.durationMs,clear_old_diagrams_on_board:s.clearBefore,clear_drawings:s.clearBefore,whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,board_snapshot:this.getBoardSnapshot(),...this.buildBoardVerification(),...g};BA("Board:Draw","finished",m),e(m)};this.boardDrawInProgress=!0;const d=o.closest(".vnr-whiteboard-canvas-wrap");if(d&&this.syncBoardLayout(d),!s.animate||s.durationMs<=0){this.boardInk.strokes.push(...s.strokes),this.boardInk.labels.push(...s.labels),this.syncDiagramLayer(l),c(s.strokes.length,s.labels.length);return}(this.boardInk.strokes.length>0||this.boardInk.labels.length>0)&&ui(l,this.boardInk,{strokeColor:s.strokeColor,labelColor:s.labelColor,strokeWidth:s.strokeWidth}),Uc(l,s.strokes,s.labels,{strokeColor:s.strokeColor,labelColor:s.labelColor,strokeWidth:s.strokeWidth,animate:!0,durationMs:s.durationMs,gapMs:s.gapMs,isAborted:()=>i!==this.activePresetGeneration}).then(({strokesDrawn:h,labelsDrawn:u})=>{this.boardInk.strokes.push(...s.strokes),this.boardInk.labels.push(...s.labels);const g={};(h<s.strokes.length||u<s.labels.length)&&(g.flushed_remaining=!0),c(h,u,g)})}renderTypeText(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.css_selector||s.css_selector||r.selector||s.selector||"").trim(),o=i?this.extractElementRoute(A):"",a=l=>{this.executeTypeText(A,e,t,i,l)};if(!o){a({navigated:!1});return}this.withElementRoute(o,this.parseDomTarget(i),t,a,b.TypeText)}executeTypeText(A,e,t,r,s){const i=A.args||{},o=A.clientFields||{};let a=String(i.text_to_type||o.text_to_type||i.text||o.text||i.value||o.value||i.search_query||o.search_query||i.query||o.query||"");const{chapterTitle:l,body:c}=this.splitChapterHeading(a),d=Number(i.delay_ms!==void 0?i.delay_ms:o.delay_ms!==void 0?o.delay_ms:50),h=this.resolveTypingMode(A),u=x=>{const F={...x,...s.route?{route:s.route}:{},...s.navigated?{navigated_to_route:s.route}:{}};if(document.querySelector(".vnr-whiteboard-modal")){F.board_snapshot=this.getBoardSnapshot();const I=document.querySelector(".vnr-whiteboard-canvas-wrap");I&&this.syncBoardLayout(I)}e(F)};let g=null;r&&!l&&(g=this.findDomTarget(this.parseDomTarget(r)));const B=()=>{BA("Board:Type","Using chalkboard fallback",{toolCallId:A.toolCallId,textPreview:(c||a).slice(0,80),sessionChars:this.chalkboardContent.length});const x=this.ensureChalkboardTextarea(()=>t("User dismissed typing popup"));if(!x){u({status:"error",message:"Could not open chalkboard"});return}x.focus(),l&&(this.boardChapterTitle=l);const F=l&&!c?a.trim().split(`
2913
- `)[0].trim():c||a;let I=this.chalkboardContent||"";const L=I?`
2914
- ${F}`:F,O=this.activePresetGeneration,K=d<=0;if(this.activeBoardProgress={ctx:A,mode:"type",textAtStart:I,plannedUnits:L.length,unitsDone:0},K){this.chalkboardContent=I+L,x.value=this.chalkboardContent,x.scrollTop=x.scrollHeight;const M=x.closest(".vnr-whiteboard-canvas-wrap");if(M){const Z=M.querySelector(".vnr-whiteboard-draw-zone");this.syncBoardChapterTitle(Z),this.syncBoardLayout(M)}this.syncBoardProgressUnits(L.length),BA("Board:Type","Chalkboard typed (instant)",{chars:this.chalkboardContent.length,preview:this.chalkboardContent.slice(0,120),chapter:l}),u({status:"success",preset_id:b.TypeText,typing_mode:"append",message:"Typed on chalkboard",whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,...this.buildBoardVerification()})}else{let M=I,Z=0;const T=()=>{if(O!==this.activePresetGeneration){this.chalkboardContent=M,x.value=M;return}document.body.contains(x)&&(Z<L.length?(M+=L[Z],this.chalkboardContent=M,x.value=M,x.scrollTop=x.scrollHeight,Z++,this.syncBoardProgressUnits(Z),this.scheduleBoardAnim(T,d)):(this.syncBoardProgressUnits(L.length),u({status:"success",preset_id:b.TypeText,typing_mode:"append",message:"Typed on chalkboard",whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,...this.buildBoardVerification()})))};T()}};if(!g){B();return}if(g.focus(),!(g instanceof HTMLInputElement||g instanceof HTMLTextAreaElement||"value"in g)){g.textContent=a,u({status:"success"});return}const m=g;let w=m.value||"";if(h==="replace"&&w&&(this.setNativeInputValue(m,""),w=""),d<=0){m.value=w+a,this.dispatchInputChange(m),u({status:"success",preset_id:b.TypeText,typing_mode:h,message:`Typed into ${r||"input"}`});return}let v=w,C=0;const y=this.activePresetGeneration,Q=()=>{y===this.activePresetGeneration&&document.body.contains(m)&&(C<a.length?(v+=a[C],m.value=v,m.dispatchEvent(new Event("input",{bubbles:!0})),C++,this.scheduleBoardAnim(Q,d)):(m.dispatchEvent(new Event("change",{bubbles:!0})),u({status:"success",preset_id:b.TypeText,typing_mode:h,message:`Typed into ${r||"input"}`})))};Q()}resolveTypingMode(A){const e=A.args||{},t=A.clientFields||{},r=String(e.typing_mode||t.typing_mode||"append").trim().toLowerCase();return r==="replace"||r==="clear"||r==="clear_first"||r==="erase_and_type"?"replace":"append"}renderEraseText(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.css_selector||s.css_selector||r.selector||s.selector||"").trim(),o=i?this.extractElementRoute(A):"",a=l=>{this.executeEraseText(A,e,t,i,l)};if(!o){a({navigated:!1});return}this.withElementRoute(o,this.parseDomTarget(i),t,a,b.EraseText)}executeEraseText(A,e,t,r,s){const i=A.args||{},o=A.clientFields||{},a=String(i.mode||o.mode||"all").trim().toLowerCase(),l=Number(i.num_words!==void 0?i.num_words:i.words_count!==void 0?i.words_count:i.count!==void 0?i.count:1),c=Number(i.delay_ms!==void 0?i.delay_ms:o.delay_ms!==void 0?o.delay_ms:50),d=C=>{e({...C,...s.route?{route:s.route}:{},...s.navigated?{navigated_to_route:s.route}:{}})};let h=null;if(r&&(h=this.findDomTarget(this.parseDomTarget(r))),h||(h=document.querySelector(".vnr-whiteboard-textarea")),!h&&this.chalkboardContent&&(h=this.ensureChalkboardTextarea(()=>t("User dismissed chalkboard"))),!h){if(this.chalkboardContent){this.chalkboardContent=this.eraseChalkboardInMemory(a,l),d({status:"success",erased_from_memory:!0});return}d({status:"error",message:"Target element not found"});return}if(h.classList.contains("vnr-whiteboard-textarea")){const C=h.closest(".vnr-whiteboard-modal");C&&this.wireChalkboardCloseButton(C,()=>t("User dismissed chalkboard"))}if(!(h instanceof HTMLInputElement)&&!(h instanceof HTMLTextAreaElement)){if(a==="words"){const C=h.textContent||"";h.textContent=this.eraseLastWords(C,l)}else h.textContent="";d({status:"success"});return}const u=h,g=u.value||"";let B="";if(a==="words"?B=this.eraseLastWords(g,l):B="",c<=0){if(u.value=B,u.classList.contains("vnr-whiteboard-textarea")){this.chalkboardContent=B;const C=Math.max(0,g.length-B.length);this.activeBoardProgress={ctx:A,mode:"erase",textAtStart:g,plannedUnits:C,unitsDone:C}}u.dispatchEvent(new Event("input",{bubbles:!0})),u.dispatchEvent(new Event("change",{bubbles:!0})),d({status:"success"});return}const f=this.activePresetGeneration,m=u.classList.contains("vnr-whiteboard-textarea"),w=Math.max(0,g.length-B.length);m&&(this.activeBoardProgress={ctx:A,mode:"erase",textAtStart:g,plannedUnits:w,unitsDone:0});const v=()=>{f===this.activePresetGeneration&&document.body.contains(u)&&(u.value.length>B.length?(u.value=u.value.slice(0,-1),m&&(this.chalkboardContent=u.value,this.syncBoardProgressUnits(g.length-u.value.length)),u.dispatchEvent(new Event("input",{bubbles:!0})),u.classList.contains("vnr-whiteboard-textarea")&&(u.scrollTop=u.scrollHeight),this.scheduleBoardAnim(v,Math.max(10,c/2))):(u.dispatchEvent(new Event("change",{bubbles:!0})),d({status:"success"})))};v()}eraseLastWords(A,e){if(!A)return"";const t=A.trimEnd();if(!t)return"";let r=t;for(let s=0;s<e;s++){const i=r.lastIndexOf(" "),o=r.lastIndexOf(`
2915
- `),a=Math.max(i,o);if(a===-1){r="";break}else r=r.slice(0,a).trimEnd()}return r}}const Te=class Te extends Oa{constructor(e){super(e);p(this,"vaniraClient",null);p(this,"currentView",null);p(this,"presetRenderer",null);p(this,"boardAbortHandler",null);p(this,"clipRegionHandler",null);p(this,"isPanelOpen",!1);p(this,"callActive",!1);p(this,"callStatus","disconnected");p(this,"micMuted",!1);p(this,"eventSource",null);p(this,"pillAudioCtx",null);p(this,"pillAgentAnalyser",null);p(this,"pillAgentData",null);p(this,"pillActivityRaf",null);p(this,"pillLastTranscriptionAt",0);p(this,"pillActivityState","idle");p(this,"floatingButton",null);p(this,"floatingWelcomeChips",null);p(this,"voiceChatPill",null);p(this,"cleanCardLauncher",null);p(this,"humanPresenceLauncher",null);p(this,"panel",null);p(this,"welcomeChipsData",[]);p(this,"chatAdapter");p(this,"sessionManager",null);p(this,"sessionActive",!1);p(this,"widgetMode","voice_only");p(this,"agentId","");p(this,"prospectGroupId","");p(this,"chatServerUrl","");p(this,"prospectId","");p(this,"chatId",null);p(this,"conversationId",null);p(this,"widgetId","");p(this,"pkKey","");p(this,"chatInitialized",!1);p(this,"primaryColor","#000000");p(this,"secondaryColor","#111111");p(this,"gradient",null);p(this,"positionType","fixed");p(this,"position","bottom-right");p(this,"widgetIcon",null);p(this,"iconConfig",null);p(this,"chatWelcomeMessage",null);this.chatAdapter=new Cl,this.processConfig(e)}initSessionManager(){const e=this.widgetId||this.agentId||"default";this.sessionManager=new Kn(e),this.sessionManager.on("tab_took_over",()=>{this.sessionActive=!1,this.showTabConflictBanner("taken_over")}),this.sessionManager.on("session_cleared",()=>{});const t=this.sessionManager.claimSession();return this.sessionActive=t,t}restoreSessionMessages(){var a,l,c;const e=(a=this.sessionManager)==null?void 0:a.getSession();if(!e)return;const t=(c=(l=this.currentView)==null?void 0:l.getChatWindow)==null?void 0:c.call(l);if(!t)return;const r=e.messages.filter(d=>d.content.trim()!==""),s=`vanira_calls_${this.widgetId||this.agentId}`,i=JSON.parse(localStorage.getItem(s)||"[]");if(r.length===0&&i.length===0)return;t.clearMessages();const o=[...r.map((d,h)=>({type:"msg",role:d.role,content:d.content,ts:d.timestamp??h})),...i.map(d=>({type:"call",durationMs:d.durationMs,startedAt:d.startedAt,ts:d.startedAt}))];o.sort((d,h)=>d.ts-h.ts),o.forEach(d=>{d.type==="msg"?t.addMessage(d.role,d.content,d.ts):t.addCallRecord(d.durationMs,d.startedAt)})}showTabConflictBanner(e){var t,r;this.root&&((t=this.root.querySelector(".vanira-tab-conflict-banner"))==null||t.remove(),e==="conflict"&&((r=this.sessionManager)==null||r.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&this.initializeChatSession(!1)))}playMessageSound(e){try{if(!Te.audioContext){const o=window.AudioContext||window.webkitAudioContext;if(!o)return;Te.audioContext=new o}const t=Te.audioContext;t.state==="suspended"&&t.resume().catch(()=>{});const r=t.createOscillator(),s=t.createGain();r.connect(s),s.connect(t.destination);const i=t.currentTime;e==="send"?(r.type="sine",r.frequency.setValueAtTime(300,i),r.frequency.exponentialRampToValueAtTime(500,i+.05),s.gain.setValueAtTime(0,i),s.gain.linearRampToValueAtTime(.1,i+.01),s.gain.exponentialRampToValueAtTime(.001,i+.1),r.start(i),r.stop(i+.1)):(r.type="sine",r.frequency.setValueAtTime(500,i),r.frequency.exponentialRampToValueAtTime(800,i+.1),s.gain.setValueAtTime(0,i),s.gain.linearRampToValueAtTime(.15,i+.02),s.gain.exponentialRampToValueAtTime(.001,i+.2),r.start(i),r.stop(i+.2))}catch{}}handleWelcomePayload(e,t="assistant"){var i,o,a,l,c,d,h,u;if(!e||this.widgetMode==="voice_only")return;e.buttons&&Array.isArray(e.buttons)?this.welcomeChipsData=e.buttons:((i=e.widget)==null?void 0:i.type)==="button_list"&&((o=e.widget.data)!=null&&o.buttons)&&(this.welcomeChipsData=e.widget.data.buttons),this.updateWelcomeChipsVisibility();const r=(l=(a=this.currentView)==null?void 0:a.getChatWindow)==null?void 0:l.call(a);let s=e.text||e.response||e.content||e.message||"";if(!s&&!this.welcomeChipsData.length&&(s="Hey! how can I help you ?"),!s&&typeof e=="string"&&e.trim().startsWith("{"))try{const g=JSON.parse(e);s=g.text||g.response||g.content||g.message||"",((c=g.widget)==null?void 0:c.type)==="button_list"&&((d=g.widget.data)!=null&&d.buttons)&&(this.welcomeChipsData=g.widget.data.buttons)}catch{}if(r){if(!s&&this.welcomeChipsData.length===0)return;const g=(h=this.sessionManager)==null?void 0:h.getSession();(g==null?void 0:g.messages.some(f=>f.content===s&&f.role===t))||(s&&(r.addMessage(t,s),(u=this.sessionManager)==null||u.pushMessage(t,s)),this.welcomeChipsData.length>0&&r.addButtons(this.welcomeChipsData))}}async initializeChatSession(e=!1){var t,r,s,i,o;if(this.sessionActive&&!this.chatInitialized){this.chatInitialized=!0;try{KA.setChatUrl(this.chatServerUrl);const a=(t=this.sessionManager)==null?void 0:t.getSession();if(!e&&(a!=null&&a.prospectId)){this.prospectId=a.prospectId,this.chatId=a.chatId,this.conversationId=a.conversationId||null,this.restoreSessionMessages(),this.chatId&&!this.eventSource&&(this.eventSource=KA.listenForAdminReplies(this.chatId,this.prospectId,c=>{var d,h,u;(h=(d=this.currentView)==null?void 0:d.getChatWindow)==null||h.call(d).addMessage("assistant",c),(u=this.sessionManager)==null||u.pushMessage("assistant",c),this.playMessageSound("receive")}));return}this.prospectId||(this.prospectGroupId?this.prospectId=await KA.createChatProspect(this.prospectGroupId):this.prospectId=`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`);const l=await KA.fetchWelcomeMessage(this.agentId,this.prospectId,this.widgetId||void 0,this.pkKey||void 0);l&&(this.handleWelcomePayload(l),l.chatId&&!this.chatId&&(this.chatId=l.chatId,this.eventSource||(this.eventSource=KA.listenForAdminReplies(this.chatId,this.prospectId,c=>{var d,h,u;(h=(d=this.currentView)==null?void 0:d.getChatWindow)==null||h.call(d).addMessage("assistant",c),(u=this.sessionManager)==null||u.pushMessage("assistant",c),this.playMessageSound("receive")}))),l.conversationId&&(this.conversationId=l.conversationId)),(r=this.sessionManager)==null||r.saveIds(this.prospectId,this.chatId,this.conversationId)}catch{const l="Hey! how can I help you ?";(i=(s=this.currentView)==null?void 0:s.getChatWindow)==null||i.call(s).addMessage("assistant",l),(o=this.sessionManager)==null||o.pushMessage("assistant",l)}}}async initialize(e,t){await super.initialize(e),this.processConfig(e),t&&(this.root=t),this.root&&this.ui_renderer(this.root)}processConfig(e){var t,r;if(this.widgetId=e.widgetId||e.widget_id||this.widgetId||"",this.agentId=e.agentId||e.agent_id||this.agentId||"",this.prospectGroupId=e.prospectGroupId||((t=e.client)==null?void 0:t.base_prospect_group_id)||this.prospectGroupId||"",this.widgetMode=e.widgetMode||e.mode||this.widgetMode||"voice_only",this.pkKey=e.pkKey||e.pk_key||e.publicKey||e.public_key||this.pkKey||"",this.primaryColor=e.primaryColor||e.primary_color||"#000000",this.secondaryColor=e.secondaryColor||e.secondary_color||"#111111",this.gradient=e.gradient||null,this.position=e.position||"bottom-right",this.positionType=e.positionType||"fixed",this.widgetIcon=e.widgetIcon||e.icon||null,this.iconConfig=e.iconConfig||e.icon_config||null,this.chatWelcomeMessage=e.chatWelcomeMessage||e.chat_welcome_message||((r=e.agent)==null?void 0:r.chat_welcome_message)||null,typeof this.chatWelcomeMessage=="string")try{this.chatWelcomeMessage=JSON.parse(this.chatWelcomeMessage)}catch{}this.chatServerUrl=e.serverUrl||e.chatServerUrl||"https://inboxapi.vanira.io",this.updateWelcomeChipsVisibility()}async create_call(e="continue"){var t,r,s,i;if(!(this.callActive||!this.agentId)){this.sessionActive||((t=this.sessionManager)==null||t.forceClaimSession(),this.sessionActive=!0),e==="new"&&((r=this.presetRenderer)==null||r.resetBoardSession());try{if(this.callActive=!0,this.micMuted=!1,this.syncMicMuteUi(),this.updateViewCallState(!0),this.updateViewStatus("connecting"),this.updateLauncherVisibility(),this.isPanelOpen&&this.minimizePanel(),!this.pkKey)throw new Error("[VaniraAI Widget] pk-key is required for voice calls");const o=((s=this.config)==null?void 0:s.serverUrl)||((i=this.config)==null?void 0:i.chatServerUrl),a=o&&!o.includes("travelr.club")?o:gA,l=e==="continue"?mt(this.agentId):null,c=new he({agentId:this.agentId,apiKey:this.pkKey,sessionBehavior:e,prospectId:this.prospectId||(l==null?void 0:l.prospectId)||void 0,callId:e==="continue"?l==null?void 0:l.callId:void 0,backendUrl:a});c.on("session_started",({prospectId:d,callId:h})=>{var u;d&&(this.prospectId=d,(u=this.sessionManager)==null||u.saveIds(d,this.chatId)),h&&Bs(this.agentId,h,d)}),c.on("connected",()=>this.updateViewStatus("connected")).on("disconnected",()=>this.end_call()).on("error",d=>{this.updateViewStatus("error",d)}).on("transcription",({text:d,isFinal:h})=>{var u,g;d.trim()&&(this.pillLastTranscriptionAt=Date.now()),(g=(u=this.currentView)==null?void 0:u.setTranscription)==null||g.call(u,d,h)}).on("track",({track:d})=>{var h;d.kind==="audio"&&this.setupPillAgentAudio(d),this.widgetMode.includes("avatar")&&d.kind==="video"&&((h=this.currentView)!=null&&h.setVideoTrack)&&this.currentView.setVideoTrack(d)}).on("tool_call",d=>{var g,B,f;if((g=this.presetRenderer)==null?void 0:g.handle(d,m=>{const w=pt(d.client_fields,d.arguments||d.args,d.name),v=d.tool_call_id;if(cs(w)&&v){const C=typeof m=="object"&&m!==null?m:{response:m};if(C.status==="cancelled")return;try{c.sendToolResult(v,C)}catch{}return}if(!(m&&(m.media_id||m.url)&&Tn(w))){if(Mn(w)&&w){const C=typeof m=="object"&&m!==null?m:{response:m};if(C.status==="cancelled")return;const y=ls(w,d.name,d.client_fields);c.triggerActionInterrupt(),c.sendActionTrigger(y,C);return}if(w){const C=ls(w,d.name,d.client_fields);c.triggerInterrupt(C,m)}}},(m,w)=>{var y,Q,x;const v=pt(d.client_fields,d.arguments||d.args,d.name),C=d.tool_call_id;if(cs(v)&&C){const F=(w==null?void 0:w.status)??"cancelled",I=String(((y=d.client_fields)==null?void 0:y.target_url)||(d.arguments||d.args||{}).target_url||"");try{const L=v===b.Navigate?((Q=this.presetRenderer)==null?void 0:Q.getNavigateTerminalResult(F,m,I||void 0))??{status:F,reason:m||"Navigation cancelled",preset_id:v,target_url:I||void 0}:((x=this.presetRenderer)==null?void 0:x.getBoardTerminalResult(F,m,v))??{status:F,reason:m||"User dismissed",preset_id:v};c.sendToolResult(C,L)}catch{}return}if(Tn(v)&&C){try{c.sendToolResult(C,{status:"cancelled",reason:m||"User dismissed",preset_id:v})}catch{}return}if(Mn(v)&&C){try{c.sendToolResult(C,{status:"cancelled",reason:m||"User dismissed",preset_id:v})}catch{}return}try{c.sendToolResult(C,{status:"cancelled",reason:"User dismissed"})}catch{}},c))return;const u=new CustomEvent("vaniraai:tool_call",{detail:d,bubbles:!0,composed:!0});(f=(B=this.root)==null?void 0:B.host)==null||f.dispatchEvent(u)}),this.vaniraClient=c,await c.start(),this.boardAbortHandler=d=>{var u;const h=d.detail||{};(u=this.presetRenderer)==null||u.abortBoardTools(h.reason||"Server interrupted",h.toolCallId)},window.addEventListener(wi,this.boardAbortHandler)}catch(o){this.updateViewStatus("error",(o==null?void 0:o.message)||String(o))}}}isCallActive(){var e;return this.callActive&&!!((e=this.vaniraClient)!=null&&e.isConnected)}updateContext(e){if(!this.isCallActive()||!this.vaniraClient)return!1;try{return this.vaniraClient.updateContext(e),!0}catch{return!1}}triggerInterrupt(e,t={}){if(!this.isCallActive()||!this.vaniraClient)return!1;try{return this.vaniraClient.triggerInterrupt(e,t),!0}catch{return!1}}sendToolResult(e,t){var r;if(!((r=this.vaniraClient)!=null&&r.isConnected)||!e)return!1;try{return this.vaniraClient.sendToolResult(e,t),!0}catch{return!1}}end_call(){var r,s;this.boardAbortHandler&&(window.removeEventListener(wi,this.boardAbortHandler),this.boardAbortHandler=null),this.clipRegionHandler&&(window.removeEventListener(vt,this.clipRegionHandler),this.clipRegionHandler=null);const e=(r=this.root)==null?void 0:r.host;e==null||e.classList.remove("vanira-clip-suppressed"),this.callActive=!1,this.callStatus="disconnected",this.micMuted=!1,this.syncMicMuteUi(),this.stopPillActivityMonitor();const t=this.vaniraClient;this.vaniraClient=null,t&&t.stop(),(s=this.presetRenderer)==null||s.teardownSession(),this.updateViewCallState(!1),this.updateLauncherVisibility()}updateViewCallState(e){var t;(t=this.currentView)!=null&&t.setCallActive&&this.currentView.setCallActive(e)}toggleMicMute(){return this.vaniraClient?(this.micMuted=this.vaniraClient.toggleMicrophoneMuted(),this.syncMicMuteUi(),this.micMuted):this.micMuted}syncMicMuteUi(){var e,t,r;(e=this.voiceChatPill)==null||e.setMicMuted(this.micMuted),(r=(t=this.currentView)==null?void 0:t.setMicMuted)==null||r.call(t,this.micMuted)}wireMicMuteControls(){var t,r,s;const e=()=>this.toggleMicMute();(t=this.voiceChatPill)==null||t.bindMicMuteToggle(e),(s=(r=this.currentView)==null?void 0:r.bindMicMuteToggle)==null||s.call(r,e)}updateViewStatus(e,t){var r,s,i,o,a;e==="connecting"?this.callStatus="connecting":e==="connected"?this.callStatus="connected":e==="error"?this.callStatus="error":this.callStatus="disconnected",(r=this.currentView)!=null&&r.setStatus&&this.currentView.setStatus(e,t),this.voiceChatPill&&this.callActive&&!this.isPanelOpen?e==="connected"?(this.pillActivityState="listening",this.voiceChatPill.setActivity("listening"),(i=(s=this.currentView)==null?void 0:s.setActivity)==null||i.call(s,"listening"),this.startPillActivityLoop()):this.voiceChatPill.setStatus(this.callStatus):e==="connected"&&(this.pillActivityState="listening",(a=(o=this.currentView)==null?void 0:o.setActivity)==null||a.call(o,"listening"),this.startPillActivityLoop())}setupPillAgentAudio(e){try{this.pillAudioCtx||(this.pillAudioCtx=new AudioContext),this.pillAudioCtx.state==="suspended"&&this.pillAudioCtx.resume();const t=new MediaStream([e]),r=this.pillAudioCtx.createMediaStreamSource(t);this.pillAgentAnalyser=this.pillAudioCtx.createAnalyser(),this.pillAgentAnalyser.fftSize=256,r.connect(this.pillAgentAnalyser),this.pillAgentData=new Uint8Array(this.pillAgentAnalyser.frequencyBinCount),this.startPillActivityLoop()}catch{}}readPillAgentLevel(){if(!this.pillAgentAnalyser||!this.pillAgentData)return 0;this.pillAgentAnalyser.getByteFrequencyData(this.pillAgentData);let e=0;const t=Math.min(48,this.pillAgentData.length);for(let r=0;r<t;r++)e+=this.pillAgentData[r];return t>0?e/t/255:0}startPillActivityLoop(){if(this.pillActivityRaf!==null)return;const e=()=>{var o,a;if(this.pillActivityRaf=requestAnimationFrame(e),!this.callActive||this.callStatus!=="connected")return;const t=this.readPillAgentLevel(),r=Date.now()-this.pillLastTranscriptionAt<1200,i=t>.06||r?"speaking":"listening";i!==this.pillActivityState&&(this.pillActivityState=i,this.voiceChatPill&&!this.isPanelOpen&&this.voiceChatPill.setActivity(i),(a=(o=this.currentView)==null?void 0:o.setActivity)==null||a.call(o,i))};this.pillActivityRaf=requestAnimationFrame(e)}stopPillActivityMonitor(){this.pillActivityRaf!==null&&(cancelAnimationFrame(this.pillActivityRaf),this.pillActivityRaf=null),this.pillAgentAnalyser=null,this.pillAgentData=null,this.pillLastTranscriptionAt=0,this.pillActivityState="idle",this.pillAudioCtx&&(this.pillAudioCtx.close().catch(()=>{}),this.pillAudioCtx=null)}ui_renderer(e){var l,c,d,h,u;this.root=e,this.root.innerHTML="",this.presetRenderer=new qc(e),this.root.host&&(this.positionType==="fixed"?this.root.host.classList.add("vanira-portal"):this.root.host.classList.remove("vanira-portal")),this.clipRegionHandler&&window.removeEventListener(vt,this.clipRegionHandler),this.clipRegionHandler=g=>{var m,w;const B=!!((m=g.detail)!=null&&m.active),f=(w=this.root)==null?void 0:w.host;f&&f.classList.toggle("vanira-clip-suppressed",B)},window.addEventListener(vt,this.clipRegionHandler);const t=document.createElement("style");t.textContent=`@keyframes vanira-slide-up {
2912
+ `,f.querySelector("#vnr-remove-file").addEventListener("click",()=>{c=null,f.style.display="none",g.style.display="block",w.disabled=!0}),w.disabled=!1};g.addEventListener("click",()=>B.click()),g.addEventListener("dragover",C=>{C.preventDefault(),g.classList.add("drag")}),g.addEventListener("dragleave",()=>g.classList.remove("drag")),g.addEventListener("drop",C=>{var Q;C.preventDefault(),g.classList.remove("drag");const y=(Q=C.dataTransfer)==null?void 0:Q.files[0];y&&v(y)}),B.addEventListener("change",()=>{var y;const C=(y=B.files)==null?void 0:y[0];C&&v(C)}),w.addEventListener("click",async()=>{if(!c)return;const C=c;g.style.display="none",f.style.display="none",m.style.display="block",m.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Uploading…</div>',w.disabled=!0;try{if(r&&typeof r.uploadMedia=="function"){const{media_id:y,url:Q}=await r.uploadMedia(C,l,`User uploaded: ${C.name}`);m.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ File sent!</div>',setTimeout(()=>{this.dismiss(),s({file_name:C.name,file_type:C.type,file_size:C.size,media_id:y,url:Q,message:`User uploaded: ${C.name}`})},400)}else{const y=new FileReader;y.onload=Q=>{m.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ File ready!</div>',setTimeout(()=>{this.dismiss(),s({file_name:C.name,file_type:C.type,file_size:C.size,data_url:Q.target.result,message:`User uploaded: ${C.name}`})},400)},y.readAsDataURL(C)}}catch(y){m.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(y==null?void 0:y.message)||"Upload failed. Please try again."}</div>`,w.disabled=!1,this.dismiss(),this.clearActiveModalPreset(),t((y==null?void 0:y.message)||"Upload failed",{status:"cancelled"})}})}extractElementRoute(A){const e=A.args||{},t=A.clientFields||{};return String(e.route||t.route||e.target_route||t.target_route||"").trim()}normalizeRouteForCompare(A){const e=(A.trim()||"/").split("#")[0],t=e.startsWith("/")?e:`/${e}`;try{const r=new URL(t,window.location.origin);return`${r.pathname}${r.search}`||"/"}catch{return t||"/"}}isCurrentRoute(A){const e=this.normalizeRouteForCompare(A);return(`${window.location.pathname}${window.location.search}`||"/")===e}parseDomTarget(A){const e=A.trim();return e?/^[.#\[]/.test(e)||e.includes(" ")||e.includes(">")?{selector:e}:{elementId:e.replace(/^#/,"")}:{}}findDomTarget(A){if(A.selector)try{const e=document.querySelector(A.selector);if(e)return e}catch{}return A.elementId?document.getElementById(A.elementId.replace(/^#/,"")):null}waitForRouteReady(A,e,t=6e3,r=100){return new Promise(s=>{const i=Date.now()+t,o=!!(e.elementId||e.selector),a=()=>{const l=this.isCurrentRoute(A),d=o?!!this.findDomTarget(e):!0;if(l&&d){s(!0);return}if(Date.now()>=i){s(l);return}window.setTimeout(a,r)};window.setTimeout(a,80)})}dispatchAgentNavigate(A,e){ul(A,{presetId:e.presetId,toolName:e.toolName});const t={url:A,path:A,handled:!1,initiated_by:"agent",preset_id:e.presetId};return window.dispatchEvent(new CustomEvent("vanira:navigate",{detail:t,cancelable:!0})),t}async withElementRoute(A,e,t,r,s){if(!A){r({navigated:!1});return}if(this.isCurrentRoute(A)){r({navigated:!1,route:A});return}const i=this.resolveNavigateTarget(A);if("external"in i){t("Element route must be a same-origin path");return}const o=i.internal;if(!this.dispatchAgentNavigate(o,{presetId:s,toolName:"element_route"}).handled){window.location.assign(o);return}if(!await this.waitForRouteReady(o,e)){t(`Timed out navigating to ${o} for element action`);return}r({navigated:!0,route:o})}resolveNavigateTarget(A){const e=A.trim()||"/";if(e.startsWith("http://")||e.startsWith("https://"))try{const t=new URL(e);return t.origin===window.location.origin?{internal:`${t.pathname}${t.search}${t.hash}`||"/"}:{external:e}}catch{return{internal:e}}return{internal:e}}renderNavigate(A,e,t){var l,d;const r=String(((l=A.clientFields)==null?void 0:l.target_url)||((d=A.args)==null?void 0:d.target_url)||"/"),s=A.toolCallId;if(s&&this.settledNavigateToolCallIds.has(s))return;this.activeNavigate={ctx:A,onComplete:e,onCancel:t,targetUrl:r};const i=this.resolveNavigateTarget(r);if("external"in i){window.open(i.external,"_blank","noopener,noreferrer"),this.completeNavigate({navigation_type:"external"});return}const o=i.internal;if(!this.dispatchAgentNavigate(o,{presetId:b.Navigate,toolName:"vanira_navigate"}).handled){this.cancelNavigate("No SPA listener handled vanira:navigate","cancelled");return}this.completeNavigate({path:o,navigation_type:"internal"})}renderHighlight(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.css_selector||s.css_selector||r.selector||s.selector||""),o=String(r.highlight_color||s.highlight_color||r.color||s.color||"#a855f7"),a=Number(r.duration_ms||s.duration_ms||3e3);if(!i){t("No css_selector provided for highlight");return}const l=document.querySelector(i);if(!l){t(`Element not found for selector: "${i}"`);return}const d=l.style.outline,c=l.style.outlineOffset,h=l.style.boxShadow,u=l.style.transition,g=l.style.scrollMarginTop;l.style.transition="outline 0.2s ease, box-shadow 0.2s ease",l.style.outline=`3px solid ${o}`,l.style.outlineOffset="6px",l.style.boxShadow=`0 0 0 8px ${o}33, 0 0 32px ${o}88`,l.style.scrollMarginTop="100px",l.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{l.style.outline=d,l.style.outlineOffset=c,l.style.boxShadow=h,l.style.transition=u,l.style.scrollMarginTop=g},a),e({status:"success",preset_id:b.HighlightElement,message:`Element highlighted: ${i}`})}renderScreenInk(A,e,t){const r=A.args||{},s=A.clientFields||{},i=Ne(),o=r.interactive===!0||r.user_draw===!0||s.interactive===!0||String(r.interactive??s.interactive??"").toLowerCase()==="true";(async()=>{const a=await i.applyInkFromArgs(r,s),l=a.strokes+a.labels;if(l===0&&!o){t("No valid strokes or labels (provide strokes[], labels[], or points)");return}const d=[];a.strokes>0&&d.push(`${a.strokes} stroke(s)`),a.labels>0&&d.push(`${a.labels} label(s)`),e({status:"success",preset_id:b.ScreenInk,message:o?`Drew ${d.join(" and ")}; user can freehand draw until cleared`:`Drew ${d.join(" and ")}`,stroke_count:a.strokes,label_count:a.labels,annotation_count:l,interactive:o||void 0})})()}renderScreenCursor(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.color||s.color||"#f97316"),o=String(r.label||s.label||""),a=Number(r.duration_ms??s.duration_ms??2500),d=Ne().showCursor({x:r.x??s.x,y:r.y??s.y,css_selector:String(r.css_selector||s.css_selector||r.selector||s.selector||"")||void 0,label:o||void 0,color:i,duration_ms:a});if(!d){t("No valid position for screen cursor (provide x/y or css_selector)");return}e({status:"success",preset_id:b.ScreenCursor,message:"Screen cursor shown",x:d.px,y:d.py})}renderScreenClick(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.color||s.color||"#f97316"),o=r.show_ripple??s.show_ripple??!0,a=r.show_cursor??s.show_cursor??!0,l=r.perform_click??s.perform_click??!0,d=String(r.css_selector||s.css_selector||r.selector||s.selector||"").trim();let c,h;if(d){const f=document.querySelector(d);if(!f){t(`Element not found for selector: "${d}"`);return}const m=f.getBoundingClientRect();c=m.left+m.width/2,h=m.top+m.height/2}else{const f=r.x??s.x,m=r.y??s.y;if(f==null||m==null){t("No valid position for screen click (provide x/y or css_selector)");return}const w=window.innerWidth,v=window.innerHeight,C=Number(f),y=Number(m);c=C>=0&&C<=1?C*w:C,h=y>=0&&y<=1?y*v:y}const u=Ne();a&&u.showCursor({x:c,y:h,color:i,duration_ms:800}),o&&u.showClickRipple(c,h,i);let g="",B="";if(l){const f=ic(c,h);f&&(oc(f),g=f.tagName.toLowerCase(),B=f.id||"")}e({status:"success",preset_id:b.ScreenClick,message:l&&g?`Clicked ${g}${B?`#${B}`:""} at (${Math.round(c)}, ${Math.round(h)})`:`Click ripple at (${Math.round(c)}, ${Math.round(h)})`,x:c,y:h,clicked_tag:g||void 0,clicked_id:B||void 0})}renderClickElement(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.id||s.id||"").trim().replace(/^#/,""),o=r.scroll_before_click??s.scroll_before_click??!0,a=this.extractElementRoute(A);if(!i){t("No element_id provided for click");return}this.withElementRoute(a,{elementId:i},t,l=>{this.executeClickElement(i,o,l,e,t)},b.ClickElement)}executeClickElement(A,e,t,r,s){const i=document.getElementById(A);if(!i){s(`Element not found for id: "${A}"`);return}if(!this.isElementClickable(i)){s(`Element matched but is not clickable: "#${A}"`);return}e!==!1&&e!=="false"&&i.scrollIntoView({behavior:"smooth",block:"center"}),i.classList.add("vnr-click-pulse"),window.setTimeout(()=>i.classList.remove("vnr-click-pulse"),450),this.programmaticClick(i),r({status:"success",preset_id:b.ClickElement,element_id:A,...t.route?{route:t.route}:{},...t.navigated?{navigated_to_route:t.route}:{},message:`Clicked element: #${A}`,tag_name:i.tagName.toLowerCase(),element_text:(i.textContent||"").trim().slice(0,120)})}renderSelectOption(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.id||s.id||"").trim().replace(/^#/,""),o=this.extractElementRoute(A),a=String(r.option_value||s.option_value||"").trim(),l=String(r.option_label||s.option_label||r.option_text||s.option_text||"").trim();if(!i){t("No element_id provided for select");return}if(!a&&!l){t("Provide option_value or option_label");return}this.withElementRoute(o,{elementId:i},t,d=>{this.executeSelectOption(i,a,l,d,e,t)},b.SelectOption)}async executeSelectOption(A,e,t,r,s,i){var d,c,h,u;const o=document.getElementById(A);if(!o){i(`Element not found for id: "${A}"`);return}o.scrollIntoView({behavior:"smooth",block:"center"});let a="",l="";if(o instanceof HTMLSelectElement){if(!this.setNativeSelectValue(o,e,t)){i(`No matching option in #${A}`);return}a=o.value,l=((c=(d=o.options[o.selectedIndex])==null?void 0:d.text)==null?void 0:c.trim())||a}else{const g=o.querySelector("select");if(g instanceof HTMLSelectElement){if(!this.setNativeSelectValue(g,e,t)){i(`No matching option in #${A} select`);return}a=g.value,l=((u=(h=g.options[g.selectedIndex])==null?void 0:h.text)==null?void 0:u.trim())||a}else{if(!await this.selectCustomDropdownOption(o,e,t)){i(`Could not select option in #${A}`);return}a=e||t,l=t||e}}s({status:"success",preset_id:b.SelectOption,element_id:A,option_value:a||e,option_label:l||t,...r.route?{route:r.route}:{},...r.navigated?{navigated_to_route:r.route}:{},message:`Selected option in #${A}`})}setNativeSelectValue(A,e,t){const r=e.trim();if(r&&this.applyNativeSelectMatch(A,r,{matchValue:!0,matchLabel:!0}))return!0;const s=t.trim();return!!(s&&this.applyNativeSelectMatch(A,s,{matchValue:!0,matchLabel:!0}))}applyNativeSelectMatch(A,e,t){const r=e.trim();if(!r)return!1;const s=r.toLowerCase();for(const i of Array.from(A.options))if(t.matchValue&&i.value===r)return A.value=i.value,this.dispatchInputChange(A),!0;if(t.matchLabel)for(const i of Array.from(A.options)){const o=i.text.trim().toLowerCase();if(o===s||o.includes(s))return A.value=i.value,this.dispatchInputChange(A),!0}return!1}async selectCustomDropdownOption(A,e,t){this.programmaticClick(A),await new Promise(i=>window.setTimeout(i,200));const r=(t||e||"").trim().toLowerCase(),s=Array.from(document.querySelectorAll('[role="option"], [role="menuitem"], [role="menuitemradio"], li, button, a, div'));for(const i of s){if(!i.offsetParent&&i!==document.activeElement)continue;const o=(i.textContent||"").trim().toLowerCase(),a=i.getAttribute("data-value")||i.getAttribute("value")||"";if(e&&a===e)return this.programmaticClick(i),!0;if(r&&o&&(o===r||o.includes(r)))return this.programmaticClick(i),!0}return!1}renderSetDate(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.id||s.id||"").trim().replace(/^#/,""),o=this.extractElementRoute(A),a=String(r.date||s.date||"").trim(),l=String(r.input_kind||s.input_kind||"text").trim().toLowerCase(),d=String(r.text_format||s.text_format||"YYYY-MM-DD").trim();if(!i){t("No element_id provided for set date");return}if(!this.parseIsoDate(a)){t("date must be ISO YYYY-MM-DD");return}this.withElementRoute(o,{elementId:i},t,c=>{this.executeSetDate(i,a,l,d,c,e,t)},b.SetDate)}executeSetDate(A,e,t,r,s,i,o){const a=document.getElementById(A);if(!a){o(`Element not found for id: "${A}"`);return}if(!(a instanceof HTMLInputElement)&&!(a instanceof HTMLTextAreaElement)){o(`Element #${A} is not an input or textarea`);return}a.scrollIntoView({behavior:"smooth",block:"center"}),a.focus({preventScroll:!0});const l=t==="native_date"||a.type==="date",d=l?e:this.formatIsoDate(e,r);this.setNativeInputValue(a,d),i({status:"success",preset_id:b.SetDate,element_id:A,date:e,formatted_value:d,input_kind:l?"native_date":"text",text_format:l?"YYYY-MM-DD":r,...s.route?{route:s.route}:{},...s.navigated?{navigated_to_route:s.route}:{},message:`Set date on #${A}`})}parseIsoDate(A){const e=String(A).trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!e)return null;const t=parseInt(e[1],10),r=parseInt(e[2],10),s=parseInt(e[3],10);return r<1||r>12||s<1||s>31?null:{y:e[1],mo:e[2],d:e[3],year:t,month:r,day:s}}formatIsoDate(A,e){const t=this.parseIsoDate(A);if(!t)return A;const{y:r,mo:s,d:i,month:o,day:a}=t,l=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];switch(e){case"DD/MM/YYYY":return`${i}/${s}/${r}`;case"MM/DD/YYYY":return`${s}/${i}/${r}`;case"DD-MM-YYYY":return`${i}-${s}-${r}`;case"D MMM YYYY":return`${a} ${l[o-1]} ${r}`;case"YYYY-MM-DD":default:return A}}setNativeInputValue(A,e){var s;const t=A instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,r=(s=Object.getOwnPropertyDescriptor(t,"value"))==null?void 0:s.set;r?r.call(A,e):A.value=e,this.dispatchInputChange(A)}dispatchInputChange(A){A.dispatchEvent(new Event("input",{bubbles:!0})),A.dispatchEvent(new Event("change",{bubbles:!0}))}isElementClickable(A){if(A.hasAttribute("disabled")||"disabled"in A&&A.disabled)return!1;const e=window.getComputedStyle(A);return!(e.display==="none"||e.visibility==="hidden"||e.pointerEvents==="none")}programmaticClick(A){try{A.focus({preventScroll:!0})}catch{}const e=A.tagName.toLowerCase(),t=e==="input"?A.type.toLowerCase():"";if((e==="button"||e==="a"||["submit","button","checkbox","radio","reset"].includes(t))&&typeof A.click=="function"){A.click();return}const s={bubbles:!0,cancelable:!0,view:window,button:0,buttons:1};A.dispatchEvent(new MouseEvent("mousedown",s)),A.dispatchEvent(new MouseEvent("mouseup",s)),A.dispatchEvent(new MouseEvent("click",s))}applyBoardSizeToModal(A){const e=nd[this.boardSizePreset],t=this.boardViewMode==="reduced"?.5:1,r=bi(e.maxWidth,t),s=bi(e.height,t);A.style.setProperty("width",r,"important"),A.style.setProperty("max-width",r,"important"),A.style.setProperty("height",s,"important"),A.style.setProperty("max-height",s,"important"),A.classList.toggle("is-reduced",t<1),this.boardViewMode==="reduced"&&this.syncBoardDragLayout(A)}syncBoardResizeButton(A){if(!A)return;const e=this.boardViewMode==="reduced";A.innerHTML=e?Ad:$c,A.setAttribute("aria-label",e?"Restore board size":"Shrink board to half size"),A.title=e?"Restore board size":"Shrink board to half size"}toggleBoardReduced(A){const e=this.boardViewMode==="reduced";this.boardViewMode=e?"expanded":"reduced",e||(this.boardDragPosition=null),this.applyBoardSizeToModal(A),this.applyBoardLayoutMode(this.getBoardOverlay(),A)}wireChalkboardChrome(A,e){let t=A.querySelector(".vnr-whiteboard-header");if(t){const r=t.querySelector(".vnr-whiteboard-resize-btn");r&&(r.onclick=()=>this.toggleBoardReduced(A));const s=t.querySelector(".vnr-whiteboard-close-btn");s&&(s.onclick=()=>{if(this.activePresetGeneration++,e)try{e()}catch{}this.closeBoardUi()})}else{t=document.createElement("div"),t.className="vnr-whiteboard-header";const r=document.createElement("button");r.type="button",r.className="vnr-whiteboard-action-btn vnr-whiteboard-resize-btn",r.onclick=()=>this.toggleBoardReduced(A);const s=document.createElement("button");s.type="button",s.className="vnr-whiteboard-action-btn is-close vnr-whiteboard-close-btn",s.innerHTML=ed,s.setAttribute("aria-label","Close board"),s.title="Close board",s.onclick=()=>{if(this.activePresetGeneration++,e)try{e()}catch{}this.closeBoardUi()},t.appendChild(r),t.appendChild(s);const i=A.querySelector(".vnr-whiteboard-canvas-wrap");i?A.insertBefore(t,i):A.prepend(t)}this.applyBoardSizeToModal(A),this.applyBoardLayoutMode(this.getBoardOverlay(),A),t&&this.wireBoardDrag(t,A)}wireChalkboardCloseButton(A,e){this.wireChalkboardChrome(A,e)}styleChalkboardTextarea(A){A.style.width="100%",A.style.height="100%",A.style.flex="1",A.style.position="relative",A.style.zIndex="1",A.style.background="transparent",A.style.border="none",A.style.padding="20px 28px 24px",A.style.fontSize="22px",A.style.lineHeight="1.55",A.style.fontFamily="'Architects Daughter', 'Caveat', 'Chalkboard SE', 'Chalkboard', cursive, sans-serif",A.style.color="#ffffff",A.style.textShadow="0 0 3px rgba(255, 255, 255, 0.45), 0 0 8px rgba(255, 255, 255, 0.15)",A.style.outline="none",A.style.resize="none",A.style.boxSizing="border-box"}applySplitBoardLayout(A,e){let t=A.querySelector(".vnr-whiteboard-draw-zone");if(t)return t;BA("Board","Applying split layout — diagram top, notes below");const r=A.querySelector(".vnr-whiteboard-draw-layer");t=document.createElement("div"),t.className="vnr-whiteboard-draw-zone",t.style.flex="0 0 42%",t.style.minHeight="0",t.style.position="relative",t.style.width="100%",t.style.borderBottom="1px solid rgba(255,255,255,0.1)",t.style.background="#08080a";const s=document.createElement("div");for(s.className="vnr-whiteboard-text-zone",s.style.flex="1",s.style.minHeight="0",s.style.display="flex",s.style.flexDirection="column",s.style.position="relative",s.style.background="#0a0a0c",s.style.overflow="hidden";A.firstChild;)A.removeChild(A.firstChild);return A.appendChild(t),A.appendChild(s),s.appendChild(e),r?t.appendChild(r):Ae(t),this.styleChalkboardTextarea(e),this.syncBoardLayout(A),t}syncBoardLayout(A){const e=A.querySelector(".vnr-whiteboard-draw-zone");if(!e)return;const t=this.boardInk.strokes.length>0||this.boardInk.labels.length>0||this.boardDrawInProgress;e.style.display=t?"":"none",e.style.flex=t?"0 0 42%":"0 0 0",e.style.minHeight=t?"200px":"0",this.syncBoardChapterTitle(e),BA("Board:Layout",t?"diagram top + notes below":"notes full board",{strokes:this.boardInk.strokes.length,labels:this.boardInk.labels.length})}syncBoardChapterTitle(A){const e=A??document.querySelector(".vnr-whiteboard-draw-zone");if(!e)return;let t=e.querySelector(".vnr-board-chapter-title");if(!this.boardChapterTitle){t==null||t.remove();return}t||(t=document.createElement("div"),t.className="vnr-board-chapter-title",t.style.cssText=["position:absolute","top:10px","left:12px","right:12px","z-index:3","pointer-events:none","text-align:center","color:#4A9EFF",'font-family:"Architects Daughter","Caveat",cursive,sans-serif',"font-size:22px","line-height:1.3","text-shadow:none"].join(";"),e.appendChild(t)),t.textContent=this.boardChapterTitle}getBoardDrawZone(A){const e=this.upgradeChalkboardCanvas(A),t=this.applySplitBoardLayout(e,A);return this.syncBoardLayout(e),t}upgradeChalkboardCanvas(A){let e=A.closest(".vnr-whiteboard-canvas-wrap");if(e)return e;BA("Board","Upgrading legacy chalkboard — adding draw layer");const t=A.parentElement;if(!t)return A;e=document.createElement("div"),e.className="vnr-whiteboard-canvas-wrap",e.style.display="flex",e.style.flexDirection="column",e.style.flex="1",e.style.height="100%",e.style.position="relative",t.insertBefore(e,A),e.appendChild(A),A.style.position="relative",A.style.zIndex="1",A.style.background="transparent",this.applySplitBoardLayout(e,A);const r=e.querySelector(".vnr-whiteboard-draw-zone");return(this.boardInk.strokes.length>0||this.boardInk.labels.length>0)&&this.syncDiagramLayer(Ae(r)),e}ensureChalkboardTextarea(A){let e=document.querySelector(".vnr-whiteboard-textarea");if(e){this.syncChalkboardNotes();const i=this.upgradeChalkboardCanvas(e);this.applySplitBoardLayout(i,e);const o=i.querySelector(".vnr-whiteboard-draw-zone"),a=Ae(o);a.childElementCount<=1&&(this.boardInk.strokes.length>0||this.boardInk.labels.length>0)&&this.syncDiagramLayer(a);const l=e.closest(".vnr-whiteboard-modal");return l&&(this.wireChalkboardChrome(l,A),this.revealBoardUi(l)),this.syncBoardLayout(i),e}if(!document.getElementById("vnr-chalk-font")){const i=document.createElement("link");i.id="vnr-chalk-font",i.rel="stylesheet",i.href="https://fonts.googleapis.com/css2?family=Architects+Daughter&family=Caveat:wght@400;700&display=swap",document.head.appendChild(i)}const t=this.createOverlay();t.classList.add("vnr-whiteboard-overlay","vnr-whiteboard-overlay-expanded");const r=document.createElement("div");r.className="vnr-modal vnr-whiteboard-modal",r.style.position="relative",r.style.display="flex",r.style.flexDirection="column",r.style.background="#0d0e12",r.style.border="12px solid #5c4033",r.style.borderRadius="16px",r.style.boxShadow="0 25px 60px rgba(0,0,0,0.65), inset 0 0 30px rgba(0,0,0,0.95)",r.style.padding="0",r.style.overflow="hidden",this.applyBoardSizeToModal(r);const s=document.createElement("div");if(s.className="vnr-whiteboard-canvas-wrap",s.style.display="flex",s.style.flexDirection="column",s.style.flex="1",s.style.minHeight="0",s.style.height="auto",s.style.position="relative",e=document.createElement("textarea"),e.className="vnr-whiteboard-textarea",e.placeholder="Notes appear here…",e.value=this.chalkboardContent,e.addEventListener("input",()=>{this.chalkboardContent=e.value}),s.appendChild(e),this.applySplitBoardLayout(s,e),this.syncBoardLayout(s),this.boardInk.strokes.length>0||this.boardInk.labels.length>0){const i=s.querySelector(".vnr-whiteboard-draw-zone");this.syncDiagramLayer(Ae(i))}return r.appendChild(s),t.appendChild(r),this.wireChalkboardChrome(r,A),e}eraseChalkboardInMemory(A,e){return A==="words"?this.eraseLastWords(this.chalkboardContent,e):(this.boardChapterTitle="","")}renderEraseDrawingBoard(A,e,t){this.syncChalkboardNotes();const r=this.boardInk.strokes.length,s=this.boardInk.labels.length,i=r>0||s>0,o=document.querySelector(".vnr-whiteboard-textarea");if(o){const a=this.getBoardDrawZone(o),l=Ae(a);Ut(l);const d=o.closest(".vnr-whiteboard-canvas-wrap");d&&this.syncBoardLayout(d)}else if(i){this.ensureChalkboardTextarea(()=>t("User dismissed chalkboard"));const a=document.querySelector(".vnr-whiteboard-textarea");if(a){const l=this.getBoardDrawZone(a);Ut(Ae(l));const d=a.closest(".vnr-whiteboard-canvas-wrap");d&&this.syncBoardLayout(d)}}this.boardInk=Ht(),this.boardDrawInProgress=!1,this.boardChapterTitle="",BA("Board:EraseDraw","Cleared diagram panel (notes kept)",{strokesCleared:r,labelsCleared:s}),e({status:"success",preset_id:b.EraseDraw,message:i?`Cleared ${r} stroke(s) and ${s} label(s) from the diagram panel. Written notes were kept.`:"Diagram panel was already empty. Written notes were not changed.",strokes_cleared:r,labels_cleared:s,shapes_cleared:r+s,diagram_cleared:!0,notes_preserved:!0,whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,board_snapshot:this.getBoardSnapshot(),...this.buildBoardVerification()})}renderDrawShapes(A,e,t){const r={...A.clientFields||{},...A.args||{}};this.syncChalkboardNotes();const s=Ic(r,A.clientFields||{}),i=this.activePresetGeneration;if(BA("Board:Draw","draw_on_board invoked",{toolCallId:A.toolCallId,strokes:s.strokes.length,labels:s.labels.length,clearBefore:s.clearBefore,animate:s.animate,shape_duration_ms:s.durationMs}),!s.clearBefore&&s.strokes.length===0&&s.labels.length===0){si("Board:Draw","No strokes or labels",r),e({status:"error",preset_id:b.Draw,message:"Provide strokes[] or labels[] (same as vanira_screen_ink), or flat points/path_d/label_text+coords. Use clear_old_diagrams_on_board:true to wipe the diagram.",board_snapshot:this.getBoardSnapshot()});return}const o=this.ensureChalkboardTextarea(()=>t("User dismissed chalkboard"));if(!o){e({status:"error",message:"Could not open chalkboard"});return}this.syncChalkboardNotes();const a=this.getBoardDrawZone(o),l=Ae(a);if(s.clearBefore){Ut(l),this.boardInk=Ht();const h=o.closest(".vnr-whiteboard-canvas-wrap");h&&this.syncBoardLayout(h),BA("Board:Draw","Cleared old diagrams on board (notes kept)")}if(s.strokes.length===0&&s.labels.length===0){e({status:"success",preset_id:b.Draw,message:"Old diagrams cleared from board",strokes_drawn:0,labels_drawn:0,shapes_drawn:0,clear_old_diagrams_on_board:!0,clear_drawings:!0,board_snapshot:this.getBoardSnapshot(),...this.buildBoardVerification()});return}const d=(h,u,g={})=>{this.boardDrawInProgress=!1;const B=i!==this.activePresetGeneration,f=o.closest(".vnr-whiteboard-canvas-wrap");f&&this.syncBoardLayout(f);const m={status:B?"cancelled":"success",preset_id:b.Draw,message:B?`Draw interrupted (${h} stroke(s), ${u} label(s) on board)`:`Drew ${h} stroke(s) and ${u} label(s) on chalkboard`,strokes_drawn:h,labels_drawn:u,shapes_drawn:h+u,shape_duration_ms:s.durationMs,clear_old_diagrams_on_board:s.clearBefore,clear_drawings:s.clearBefore,whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,board_snapshot:this.getBoardSnapshot(),...this.buildBoardVerification(),...g};BA("Board:Draw","finished",m),e(m)};this.boardDrawInProgress=!0;const c=o.closest(".vnr-whiteboard-canvas-wrap");if(c&&this.syncBoardLayout(c),!s.animate||s.durationMs<=0){this.boardInk.strokes.push(...s.strokes),this.boardInk.labels.push(...s.labels),this.syncDiagramLayer(l),d(s.strokes.length,s.labels.length);return}(this.boardInk.strokes.length>0||this.boardInk.labels.length>0)&&fi(l,this.boardInk,{strokeColor:s.strokeColor,labelColor:s.labelColor,strokeWidth:s.strokeWidth}),Mc(l,s.strokes,s.labels,{strokeColor:s.strokeColor,labelColor:s.labelColor,strokeWidth:s.strokeWidth,animate:!0,durationMs:s.durationMs,gapMs:s.gapMs,isAborted:()=>i!==this.activePresetGeneration}).then(({strokesDrawn:h,labelsDrawn:u})=>{this.boardInk.strokes.push(...s.strokes),this.boardInk.labels.push(...s.labels);const g={};(h<s.strokes.length||u<s.labels.length)&&(g.flushed_remaining=!0),d(h,u,g)})}renderTypeText(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.css_selector||s.css_selector||r.selector||s.selector||"").trim(),o=i?this.extractElementRoute(A):"",a=l=>{this.executeTypeText(A,e,t,i,l)};if(!o){a({navigated:!1});return}this.withElementRoute(o,this.parseDomTarget(i),t,a,b.TypeText)}executeTypeText(A,e,t,r,s){const i=A.args||{},o=A.clientFields||{};let a=String(i.text_to_type||o.text_to_type||i.text||o.text||i.value||o.value||i.search_query||o.search_query||i.query||o.query||"");const{chapterTitle:l,body:d}=this.splitChapterHeading(a),c=Number(i.delay_ms!==void 0?i.delay_ms:o.delay_ms!==void 0?o.delay_ms:50),h=this.resolveTypingMode(A),u=E=>{const F={...E,...s.route?{route:s.route}:{},...s.navigated?{navigated_to_route:s.route}:{}};if(document.querySelector(".vnr-whiteboard-modal")){F.board_snapshot=this.getBoardSnapshot();const I=document.querySelector(".vnr-whiteboard-canvas-wrap");I&&this.syncBoardLayout(I)}e(F)};let g=null;r&&!l&&(g=this.findDomTarget(this.parseDomTarget(r)));const B=()=>{BA("Board:Type","Using chalkboard fallback",{toolCallId:A.toolCallId,textPreview:(d||a).slice(0,80),sessionChars:this.chalkboardContent.length});const E=this.ensureChalkboardTextarea(()=>t("User dismissed typing popup"));if(!E){u({status:"error",message:"Could not open chalkboard"});return}E.focus(),l&&(this.boardChapterTitle=l);const F=l&&!d?a.trim().split(`
2913
+ `)[0].trim():d||a;let I=this.chalkboardContent||"";const L=I?`
2914
+ ${F}`:F,O=this.activePresetGeneration,K=c<=0;if(this.activeBoardProgress={ctx:A,mode:"type",textAtStart:I,plannedUnits:L.length,unitsDone:0},K){this.chalkboardContent=I+L,E.value=this.chalkboardContent,E.scrollTop=E.scrollHeight;const M=E.closest(".vnr-whiteboard-canvas-wrap");if(M){const Z=M.querySelector(".vnr-whiteboard-draw-zone");this.syncBoardChapterTitle(Z),this.syncBoardLayout(M)}this.syncBoardProgressUnits(L.length),BA("Board:Type","Chalkboard typed (instant)",{chars:this.chalkboardContent.length,preview:this.chalkboardContent.slice(0,120),chapter:l}),u({status:"success",preset_id:b.TypeText,typing_mode:"append",message:"Typed on chalkboard",whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,...this.buildBoardVerification()})}else{let M=I,Z=0;const T=()=>{if(O!==this.activePresetGeneration){this.chalkboardContent=M,E.value=M;return}document.body.contains(E)&&(Z<L.length?(M+=L[Z],this.chalkboardContent=M,E.value=M,E.scrollTop=E.scrollHeight,Z++,this.syncBoardProgressUnits(Z),this.scheduleBoardAnim(T,c)):(this.syncBoardProgressUnits(L.length),u({status:"success",preset_id:b.TypeText,typing_mode:"append",message:"Typed on chalkboard",whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,...this.buildBoardVerification()})))};T()}};if(!g){B();return}if(g.focus(),!(g instanceof HTMLInputElement||g instanceof HTMLTextAreaElement||"value"in g)){g.textContent=a,u({status:"success"});return}const m=g;let w=m.value||"";if(h==="replace"&&w&&(this.setNativeInputValue(m,""),w=""),c<=0){m.value=w+a,this.dispatchInputChange(m),u({status:"success",preset_id:b.TypeText,typing_mode:h,message:`Typed into ${r||"input"}`});return}let v=w,C=0;const y=this.activePresetGeneration,Q=()=>{y===this.activePresetGeneration&&document.body.contains(m)&&(C<a.length?(v+=a[C],m.value=v,m.dispatchEvent(new Event("input",{bubbles:!0})),C++,this.scheduleBoardAnim(Q,c)):(m.dispatchEvent(new Event("change",{bubbles:!0})),u({status:"success",preset_id:b.TypeText,typing_mode:h,message:`Typed into ${r||"input"}`})))};Q()}resolveTypingMode(A){const e=A.args||{},t=A.clientFields||{},r=String(e.typing_mode||t.typing_mode||"append").trim().toLowerCase();return r==="replace"||r==="clear"||r==="clear_first"||r==="erase_and_type"?"replace":"append"}renderEraseText(A,e,t){const r=A.args||{},s=A.clientFields||{},i=String(r.element_id||s.element_id||r.css_selector||s.css_selector||r.selector||s.selector||"").trim(),o=i?this.extractElementRoute(A):"",a=l=>{this.executeEraseText(A,e,t,i,l)};if(!o){a({navigated:!1});return}this.withElementRoute(o,this.parseDomTarget(i),t,a,b.EraseText)}executeEraseText(A,e,t,r,s){const i=A.args||{},o=A.clientFields||{},a=String(i.mode||o.mode||"all").trim().toLowerCase(),l=Number(i.num_words!==void 0?i.num_words:i.words_count!==void 0?i.words_count:i.count!==void 0?i.count:1),d=Number(i.delay_ms!==void 0?i.delay_ms:o.delay_ms!==void 0?o.delay_ms:50),c=C=>{e({...C,...s.route?{route:s.route}:{},...s.navigated?{navigated_to_route:s.route}:{}})};let h=null;if(r&&(h=this.findDomTarget(this.parseDomTarget(r))),h||(h=document.querySelector(".vnr-whiteboard-textarea")),!h&&this.chalkboardContent&&(h=this.ensureChalkboardTextarea(()=>t("User dismissed chalkboard"))),!h){if(this.chalkboardContent){this.chalkboardContent=this.eraseChalkboardInMemory(a,l),c({status:"success",erased_from_memory:!0});return}c({status:"error",message:"Target element not found"});return}if(h.classList.contains("vnr-whiteboard-textarea")){const C=h.closest(".vnr-whiteboard-modal");C&&this.wireChalkboardCloseButton(C,()=>t("User dismissed chalkboard"))}if(!(h instanceof HTMLInputElement)&&!(h instanceof HTMLTextAreaElement)){if(a==="words"){const C=h.textContent||"";h.textContent=this.eraseLastWords(C,l)}else h.textContent="";c({status:"success"});return}const u=h,g=u.value||"";let B="";if(a==="words"?B=this.eraseLastWords(g,l):B="",d<=0){if(u.value=B,u.classList.contains("vnr-whiteboard-textarea")){this.chalkboardContent=B;const C=Math.max(0,g.length-B.length);this.activeBoardProgress={ctx:A,mode:"erase",textAtStart:g,plannedUnits:C,unitsDone:C}}u.dispatchEvent(new Event("input",{bubbles:!0})),u.dispatchEvent(new Event("change",{bubbles:!0})),c({status:"success"});return}const f=this.activePresetGeneration,m=u.classList.contains("vnr-whiteboard-textarea"),w=Math.max(0,g.length-B.length);m&&(this.activeBoardProgress={ctx:A,mode:"erase",textAtStart:g,plannedUnits:w,unitsDone:0});const v=()=>{f===this.activePresetGeneration&&document.body.contains(u)&&(u.value.length>B.length?(u.value=u.value.slice(0,-1),m&&(this.chalkboardContent=u.value,this.syncBoardProgressUnits(g.length-u.value.length)),u.dispatchEvent(new Event("input",{bubbles:!0})),u.classList.contains("vnr-whiteboard-textarea")&&(u.scrollTop=u.scrollHeight),this.scheduleBoardAnim(v,Math.max(10,d/2))):(u.dispatchEvent(new Event("change",{bubbles:!0})),c({status:"success"})))};v()}eraseLastWords(A,e){if(!A)return"";const t=A.trimEnd();if(!t)return"";let r=t;for(let s=0;s<e;s++){const i=r.lastIndexOf(" "),o=r.lastIndexOf(`
2915
+ `),a=Math.max(i,o);if(a===-1){r="";break}else r=r.slice(0,a).trimEnd()}return r}}const Te=class Te extends Xa{constructor(e){super(e);p(this,"vaniraClient",null);p(this,"currentView",null);p(this,"presetRenderer",null);p(this,"boardAbortHandler",null);p(this,"clipRegionHandler",null);p(this,"isPanelOpen",!1);p(this,"callActive",!1);p(this,"callStatus","disconnected");p(this,"micMuted",!1);p(this,"eventSource",null);p(this,"pillAudioCtx",null);p(this,"pillAgentAnalyser",null);p(this,"pillAgentData",null);p(this,"pillActivityRaf",null);p(this,"pillLastTranscriptionAt",0);p(this,"pillActivityState","idle");p(this,"floatingButton",null);p(this,"floatingWelcomeChips",null);p(this,"voiceChatPill",null);p(this,"cleanCardLauncher",null);p(this,"humanPresenceLauncher",null);p(this,"panel",null);p(this,"welcomeChipsData",[]);p(this,"chatAdapter");p(this,"sessionManager",null);p(this,"sessionActive",!1);p(this,"widgetMode","voice_only");p(this,"agentId","");p(this,"prospectGroupId","");p(this,"chatServerUrl","");p(this,"prospectId","");p(this,"chatId",null);p(this,"conversationId",null);p(this,"widgetId","");p(this,"pkKey","");p(this,"chatInitialized",!1);p(this,"primaryColor","#000000");p(this,"secondaryColor","#111111");p(this,"gradient",null);p(this,"positionType","fixed");p(this,"position","bottom-right");p(this,"widgetIcon",null);p(this,"iconConfig",null);p(this,"chatWelcomeMessage",null);this.chatAdapter=new Fl,this.processConfig(e)}initSessionManager(){const e=this.widgetId||this.agentId||"default";this.sessionManager=new On(e),this.sessionManager.on("tab_took_over",()=>{this.sessionActive=!1,this.showTabConflictBanner("taken_over")}),this.sessionManager.on("session_cleared",()=>{});const t=this.sessionManager.claimSession();return this.sessionActive=t,t}restoreSessionMessages(){var a,l,d;const e=(a=this.sessionManager)==null?void 0:a.getSession();if(!e)return;const t=(d=(l=this.currentView)==null?void 0:l.getChatWindow)==null?void 0:d.call(l);if(!t)return;const r=e.messages.filter(c=>c.content.trim()!==""),s=`vanira_calls_${this.widgetId||this.agentId}`,i=JSON.parse(localStorage.getItem(s)||"[]");if(r.length===0&&i.length===0)return;t.clearMessages();const o=[...r.map((c,h)=>({type:"msg",role:c.role,content:c.content,ts:c.timestamp??h})),...i.map(c=>({type:"call",durationMs:c.durationMs,startedAt:c.startedAt,ts:c.startedAt}))];o.sort((c,h)=>c.ts-h.ts),o.forEach(c=>{c.type==="msg"?t.addMessage(c.role,c.content,c.ts):t.addCallRecord(c.durationMs,c.startedAt)})}showTabConflictBanner(e){var t,r;this.root&&((t=this.root.querySelector(".vanira-tab-conflict-banner"))==null||t.remove(),e==="conflict"&&((r=this.sessionManager)==null||r.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&this.initializeChatSession(!1)))}playMessageSound(e){try{if(!Te.audioContext){const o=window.AudioContext||window.webkitAudioContext;if(!o)return;Te.audioContext=new o}const t=Te.audioContext;t.state==="suspended"&&t.resume().catch(()=>{});const r=t.createOscillator(),s=t.createGain();r.connect(s),s.connect(t.destination);const i=t.currentTime;e==="send"?(r.type="sine",r.frequency.setValueAtTime(300,i),r.frequency.exponentialRampToValueAtTime(500,i+.05),s.gain.setValueAtTime(0,i),s.gain.linearRampToValueAtTime(.1,i+.01),s.gain.exponentialRampToValueAtTime(.001,i+.1),r.start(i),r.stop(i+.1)):(r.type="sine",r.frequency.setValueAtTime(500,i),r.frequency.exponentialRampToValueAtTime(800,i+.1),s.gain.setValueAtTime(0,i),s.gain.linearRampToValueAtTime(.15,i+.02),s.gain.exponentialRampToValueAtTime(.001,i+.2),r.start(i),r.stop(i+.2))}catch{}}handleWelcomePayload(e,t="assistant"){var i,o,a,l,d,c,h,u;if(!e||this.widgetMode==="voice_only")return;e.buttons&&Array.isArray(e.buttons)?this.welcomeChipsData=e.buttons:((i=e.widget)==null?void 0:i.type)==="button_list"&&((o=e.widget.data)!=null&&o.buttons)&&(this.welcomeChipsData=e.widget.data.buttons),this.updateWelcomeChipsVisibility();const r=(l=(a=this.currentView)==null?void 0:a.getChatWindow)==null?void 0:l.call(a);let s=e.text||e.response||e.content||e.message||"";if(!s&&!this.welcomeChipsData.length&&(s="Hey! how can I help you ?"),!s&&typeof e=="string"&&e.trim().startsWith("{"))try{const g=JSON.parse(e);s=g.text||g.response||g.content||g.message||"",((d=g.widget)==null?void 0:d.type)==="button_list"&&((c=g.widget.data)!=null&&c.buttons)&&(this.welcomeChipsData=g.widget.data.buttons)}catch{}if(r){if(!s&&this.welcomeChipsData.length===0)return;const g=(h=this.sessionManager)==null?void 0:h.getSession();(g==null?void 0:g.messages.some(f=>f.content===s&&f.role===t))||(s&&(r.addMessage(t,s),(u=this.sessionManager)==null||u.pushMessage(t,s)),this.welcomeChipsData.length>0&&r.addButtons(this.welcomeChipsData))}}async initializeChatSession(e=!1){var t,r,s,i,o;if(this.sessionActive&&!this.chatInitialized){this.chatInitialized=!0;try{KA.setChatUrl(this.chatServerUrl);const a=(t=this.sessionManager)==null?void 0:t.getSession();if(!e&&(a!=null&&a.prospectId)){this.prospectId=a.prospectId,this.chatId=a.chatId,this.conversationId=a.conversationId||null,this.restoreSessionMessages(),this.chatId&&!this.eventSource&&(this.eventSource=KA.listenForAdminReplies(this.chatId,this.prospectId,d=>{var c,h,u;(h=(c=this.currentView)==null?void 0:c.getChatWindow)==null||h.call(c).addMessage("assistant",d),(u=this.sessionManager)==null||u.pushMessage("assistant",d),this.playMessageSound("receive")}));return}this.prospectId||(this.prospectGroupId?this.prospectId=await KA.createChatProspect(this.prospectGroupId):this.prospectId=`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`);const l=await KA.fetchWelcomeMessage(this.agentId,this.prospectId,this.widgetId||void 0,this.pkKey||void 0);l&&(this.handleWelcomePayload(l),l.chatId&&!this.chatId&&(this.chatId=l.chatId,this.eventSource||(this.eventSource=KA.listenForAdminReplies(this.chatId,this.prospectId,d=>{var c,h,u;(h=(c=this.currentView)==null?void 0:c.getChatWindow)==null||h.call(c).addMessage("assistant",d),(u=this.sessionManager)==null||u.pushMessage("assistant",d),this.playMessageSound("receive")}))),l.conversationId&&(this.conversationId=l.conversationId)),(r=this.sessionManager)==null||r.saveIds(this.prospectId,this.chatId,this.conversationId)}catch{const l="Hey! how can I help you ?";(i=(s=this.currentView)==null?void 0:s.getChatWindow)==null||i.call(s).addMessage("assistant",l),(o=this.sessionManager)==null||o.pushMessage("assistant",l)}}}async initialize(e,t){await super.initialize(e),this.processConfig(e),t&&(this.root=t),this.root&&this.ui_renderer(this.root)}processConfig(e){var t,r;if(this.widgetId=e.widgetId||e.widget_id||this.widgetId||"",this.agentId=e.agentId||e.agent_id||this.agentId||"",this.prospectGroupId=e.prospectGroupId||((t=e.client)==null?void 0:t.base_prospect_group_id)||this.prospectGroupId||"",this.widgetMode=e.widgetMode||e.mode||this.widgetMode||"voice_only",this.pkKey=e.pkKey||e.pk_key||e.publicKey||e.public_key||this.pkKey||"",this.primaryColor=e.primaryColor||e.primary_color||"#000000",this.secondaryColor=e.secondaryColor||e.secondary_color||"#111111",this.gradient=e.gradient||null,this.position=e.position||"bottom-right",this.positionType=e.positionType||"fixed",this.widgetIcon=e.widgetIcon||e.icon||null,this.iconConfig=e.iconConfig||e.icon_config||null,this.chatWelcomeMessage=e.chatWelcomeMessage||e.chat_welcome_message||((r=e.agent)==null?void 0:r.chat_welcome_message)||null,typeof this.chatWelcomeMessage=="string")try{this.chatWelcomeMessage=JSON.parse(this.chatWelcomeMessage)}catch{}this.chatServerUrl=e.serverUrl||e.chatServerUrl||"https://inboxapi.vanira.io",this.updateWelcomeChipsVisibility()}async create_call(e="continue"){var t,r,s,i;if(!(this.callActive||!this.agentId)){this.sessionActive||((t=this.sessionManager)==null||t.forceClaimSession(),this.sessionActive=!0),e==="new"&&((r=this.presetRenderer)==null||r.resetBoardSession());try{if(this.callActive=!0,this.micMuted=!1,this.syncMicMuteUi(),this.updateViewCallState(!0),this.updateViewStatus("connecting"),this.updateLauncherVisibility(),this.isPanelOpen&&this.minimizePanel(),!this.pkKey)throw new Error("[VaniraAI Widget] pk-key is required for voice calls");const o=((s=this.config)==null?void 0:s.serverUrl)||((i=this.config)==null?void 0:i.chatServerUrl),a=o&&!o.includes("travelr.club")?o:gA,l=e==="continue"?mt(this.agentId):null,d=new he({agentId:this.agentId,apiKey:this.pkKey,sessionBehavior:e,prospectId:this.prospectId||(l==null?void 0:l.prospectId)||void 0,callId:e==="continue"?l==null?void 0:l.callId:void 0,backendUrl:a});d.on("session_started",({prospectId:c,callId:h})=>{var u;c&&(this.prospectId=c,(u=this.sessionManager)==null||u.saveIds(c,this.chatId)),h&&ms(this.agentId,h,c)}),d.on("connected",()=>this.updateViewStatus("connected")).on("disconnected",()=>this.end_call()).on("error",c=>{this.updateViewStatus("error",c)}).on("transcription",({text:c,isFinal:h})=>{var u,g;c.trim()&&(this.pillLastTranscriptionAt=Date.now()),(g=(u=this.currentView)==null?void 0:u.setTranscription)==null||g.call(u,c,h)}).on("track",({track:c})=>{var h;c.kind==="audio"&&this.setupPillAgentAudio(c),this.widgetMode.includes("avatar")&&c.kind==="video"&&((h=this.currentView)!=null&&h.setVideoTrack)&&this.currentView.setVideoTrack(c)}).on("tool_call",c=>{var g,B,f;if((g=this.presetRenderer)==null?void 0:g.handle(c,m=>{const w=pt(c.client_fields,c.arguments||c.args,c.name),v=c.tool_call_id;if(us(w)&&v){const C=typeof m=="object"&&m!==null?m:{response:m};if(C.status==="cancelled")return;try{d.sendToolResult(v,C)}catch{}return}if(!(m&&(m.media_id||m.url)&&kn(w))){if(Dn(w)&&w){const C=typeof m=="object"&&m!==null?m:{response:m};if(C.status==="cancelled")return;const y=hs(w,c.name,c.client_fields);d.triggerActionInterrupt(),d.sendActionTrigger(y,C);return}if(w){const C=hs(w,c.name,c.client_fields);d.triggerInterrupt(C,m)}}},(m,w)=>{var y,Q,E;const v=pt(c.client_fields,c.arguments||c.args,c.name),C=c.tool_call_id;if(us(v)&&C){const F=(w==null?void 0:w.status)??"cancelled",I=String(((y=c.client_fields)==null?void 0:y.target_url)||(c.arguments||c.args||{}).target_url||"");try{const L=v===b.Navigate?((Q=this.presetRenderer)==null?void 0:Q.getNavigateTerminalResult(F,m,I||void 0))??{status:F,reason:m||"Navigation cancelled",preset_id:v,target_url:I||void 0}:((E=this.presetRenderer)==null?void 0:E.getBoardTerminalResult(F,m,v))??{status:F,reason:m||"User dismissed",preset_id:v};d.sendToolResult(C,L)}catch{}return}if(kn(v)&&C){try{d.sendToolResult(C,{status:"cancelled",reason:m||"User dismissed",preset_id:v})}catch{}return}if(Dn(v)&&C){try{d.sendToolResult(C,{status:"cancelled",reason:m||"User dismissed",preset_id:v})}catch{}return}try{d.sendToolResult(C,{status:"cancelled",reason:"User dismissed"})}catch{}},d))return;const u=new CustomEvent("vaniraai:tool_call",{detail:c,bubbles:!0,composed:!0});(f=(B=this.root)==null?void 0:B.host)==null||f.dispatchEvent(u)}),this.vaniraClient=d,await d.start(),this.boardAbortHandler=c=>{var u;const h=c.detail||{};(u=this.presetRenderer)==null||u.abortBoardTools(h.reason||"Server interrupted",h.toolCallId)},window.addEventListener(vi,this.boardAbortHandler)}catch(o){this.updateViewStatus("error",(o==null?void 0:o.message)||String(o))}}}isCallActive(){var e;return this.callActive&&!!((e=this.vaniraClient)!=null&&e.isConnected)}updateContext(e){if(!this.isCallActive()||!this.vaniraClient)return!1;try{return this.vaniraClient.updateContext(e),!0}catch{return!1}}triggerInterrupt(e,t={}){if(!this.isCallActive()||!this.vaniraClient)return!1;try{return this.vaniraClient.triggerInterrupt(e,t),!0}catch{return!1}}sendToolResult(e,t){var r;if(!((r=this.vaniraClient)!=null&&r.isConnected)||!e)return!1;try{return this.vaniraClient.sendToolResult(e,t),!0}catch{return!1}}end_call(){var r,s;this.boardAbortHandler&&(window.removeEventListener(vi,this.boardAbortHandler),this.boardAbortHandler=null),this.clipRegionHandler&&(window.removeEventListener(vt,this.clipRegionHandler),this.clipRegionHandler=null);const e=(r=this.root)==null?void 0:r.host;e==null||e.classList.remove("vanira-clip-suppressed"),this.callActive=!1,this.callStatus="disconnected",this.micMuted=!1,this.syncMicMuteUi(),this.stopPillActivityMonitor();const t=this.vaniraClient;this.vaniraClient=null,t&&t.stop(),(s=this.presetRenderer)==null||s.teardownSession(),this.updateViewCallState(!1),this.updateLauncherVisibility()}updateViewCallState(e){var t;(t=this.currentView)!=null&&t.setCallActive&&this.currentView.setCallActive(e)}toggleMicMute(){return this.vaniraClient?(this.micMuted=this.vaniraClient.toggleMicrophoneMuted(),this.syncMicMuteUi(),this.micMuted):this.micMuted}syncMicMuteUi(){var e,t,r;(e=this.voiceChatPill)==null||e.setMicMuted(this.micMuted),(r=(t=this.currentView)==null?void 0:t.setMicMuted)==null||r.call(t,this.micMuted)}wireMicMuteControls(){var t,r,s;const e=()=>this.toggleMicMute();(t=this.voiceChatPill)==null||t.bindMicMuteToggle(e),(s=(r=this.currentView)==null?void 0:r.bindMicMuteToggle)==null||s.call(r,e)}updateViewStatus(e,t){var r,s,i,o,a;e==="connecting"?this.callStatus="connecting":e==="connected"?this.callStatus="connected":e==="error"?this.callStatus="error":this.callStatus="disconnected",(r=this.currentView)!=null&&r.setStatus&&this.currentView.setStatus(e,t),this.voiceChatPill&&this.callActive&&!this.isPanelOpen?e==="connected"?(this.pillActivityState="listening",this.voiceChatPill.setActivity("listening"),(i=(s=this.currentView)==null?void 0:s.setActivity)==null||i.call(s,"listening"),this.startPillActivityLoop()):this.voiceChatPill.setStatus(this.callStatus):e==="connected"&&(this.pillActivityState="listening",(a=(o=this.currentView)==null?void 0:o.setActivity)==null||a.call(o,"listening"),this.startPillActivityLoop())}setupPillAgentAudio(e){try{this.pillAudioCtx||(this.pillAudioCtx=new AudioContext),this.pillAudioCtx.state==="suspended"&&this.pillAudioCtx.resume();const t=new MediaStream([e]),r=this.pillAudioCtx.createMediaStreamSource(t);this.pillAgentAnalyser=this.pillAudioCtx.createAnalyser(),this.pillAgentAnalyser.fftSize=256,r.connect(this.pillAgentAnalyser),this.pillAgentData=new Uint8Array(this.pillAgentAnalyser.frequencyBinCount),this.startPillActivityLoop()}catch{}}readPillAgentLevel(){if(!this.pillAgentAnalyser||!this.pillAgentData)return 0;this.pillAgentAnalyser.getByteFrequencyData(this.pillAgentData);let e=0;const t=Math.min(48,this.pillAgentData.length);for(let r=0;r<t;r++)e+=this.pillAgentData[r];return t>0?e/t/255:0}startPillActivityLoop(){if(this.pillActivityRaf!==null)return;const e=()=>{var o,a;if(this.pillActivityRaf=requestAnimationFrame(e),!this.callActive||this.callStatus!=="connected")return;const t=this.readPillAgentLevel(),r=Date.now()-this.pillLastTranscriptionAt<1200,i=t>.06||r?"speaking":"listening";i!==this.pillActivityState&&(this.pillActivityState=i,this.voiceChatPill&&!this.isPanelOpen&&this.voiceChatPill.setActivity(i),(a=(o=this.currentView)==null?void 0:o.setActivity)==null||a.call(o,i))};this.pillActivityRaf=requestAnimationFrame(e)}stopPillActivityMonitor(){this.pillActivityRaf!==null&&(cancelAnimationFrame(this.pillActivityRaf),this.pillActivityRaf=null),this.pillAgentAnalyser=null,this.pillAgentData=null,this.pillLastTranscriptionAt=0,this.pillActivityState="idle",this.pillAudioCtx&&(this.pillAudioCtx.close().catch(()=>{}),this.pillAudioCtx=null)}ui_renderer(e){var l,d,c,h,u;this.root=e,this.root.innerHTML="",this.presetRenderer=new id(e),this.root.host&&(this.positionType==="fixed"?this.root.host.classList.add("vanira-portal"):this.root.host.classList.remove("vanira-portal")),this.clipRegionHandler&&window.removeEventListener(vt,this.clipRegionHandler),this.clipRegionHandler=g=>{var m,w;const B=!!((m=g.detail)!=null&&m.active),f=(w=this.root)==null?void 0:w.host;f&&f.classList.toggle("vanira-clip-suppressed",B)},window.addEventListener(vt,this.clipRegionHandler);const t=document.createElement("style");t.textContent=`@keyframes vanira-slide-up {
2916
2916
  from { opacity:0; transform:translateY(16px); }
2917
2917
  to { opacity:1; transform:translateY(0); }
2918
2918
  }`,this.root.appendChild(t);const r=document.createElement("style");r.textContent=`
2919
- ${ll}
2920
- :host { ${al(this.primaryColor,this.secondaryColor)} }
2921
- ${Qs.styles}
2919
+ ${fl}
2920
+ :host { ${Bl(this.primaryColor,this.secondaryColor)} }
2921
+ ${Us.styles}
2922
+ ${Hs.styles}
2922
2923
  ${Fs.styles}
2923
- ${xs.styles}
2924
2924
  ${this.gradient?`.widget-fab { background: ${this.gradient} !important; }`:""}
2925
2925
  .clean-card-launcher {
2926
2926
  position: fixed;
@@ -2999,7 +2999,7 @@ ${F}`:F,O=this.activePresetGeneration,K=d<=0;if(this.activeBoardProgress={ctx:A,
2999
2999
  height: 12px;
3000
3000
  fill: currentColor;
3001
3001
  }
3002
- `,this.root.appendChild(r);const s=`vanira_pos_${this.widgetId||this.agentId}`,i=localStorage.getItem(s);let o=null;if(i)try{o=JSON.parse(i)}catch{}if(this.floatingButton=new Qs(()=>this.togglePanel(),(g,B)=>{var f,m;(f=this.floatingWelcomeChips)==null||f.updateCoordinates(g,B,B>window.innerHeight/2),this.isPanelOpen&&((m=this.panel)==null||m.updatePosition({left:`${Math.max(20,Math.min(g-170,window.innerWidth-420))}px`,top:B>window.innerHeight/2?"auto":`${B+80}px`,bottom:B>window.innerHeight/2?`${window.innerHeight-B+20}px`:"auto"}))},(g,B)=>{localStorage.setItem(s,JSON.stringify({x:g,y:B}))}),this.floatingButton.setIcon(this.getFabIcon()),o?this.floatingButton.updateCoordinates(o.x,o.y):this.floatingButton.setPosition(this.getPosStyle()),this.floatingWelcomeChips=new Fs(g=>this.handleFloatingChipClick(g)),o?this.floatingWelcomeChips.updateCoordinates(o.x,o.y,o.y>window.innerHeight/2):this.floatingWelcomeChips.setPosition(this.getPosStyle()),this.panel=new xs(()=>this.handlePanelClose(),this.getPanelTitle(),()=>this.minimizePanel()),this.voiceChatPill=new ul(()=>this.openPanel(),()=>this.end_call(),"Voice chat"),this.root.appendChild(this.voiceChatPill.getElement()),this.root.appendChild(this.floatingWelcomeChips.getElement()),this.widgetIcon==="clean_assistant"){const g=((l=this.iconConfig)==null?void 0:l.logo_text)||"vanira",B=((c=this.iconConfig)==null?void 0:c.title)||"Vanira Voice AI Assistant",f=((d=this.iconConfig)==null?void 0:d.button_text)||"Begin Call",m=fs(this.agentId);let w=!1;const v=document.createElement("div");v.className="clean-card-launcher",v.innerHTML=`
3002
+ `,this.root.appendChild(r);const s=`vanira_pos_${this.widgetId||this.agentId}`,i=localStorage.getItem(s);let o=null;if(i)try{o=JSON.parse(i)}catch{}if(this.floatingButton=new Us(()=>this.togglePanel(),(g,B)=>{var f,m;(f=this.floatingWelcomeChips)==null||f.updateCoordinates(g,B,B>window.innerHeight/2),this.isPanelOpen&&((m=this.panel)==null||m.updatePosition({left:`${Math.max(20,Math.min(g-170,window.innerWidth-420))}px`,top:B>window.innerHeight/2?"auto":`${B+80}px`,bottom:B>window.innerHeight/2?`${window.innerHeight-B+20}px`:"auto"}))},(g,B)=>{localStorage.setItem(s,JSON.stringify({x:g,y:B}))}),this.floatingButton.setIcon(this.getFabIcon()),o?this.floatingButton.updateCoordinates(o.x,o.y):this.floatingButton.setPosition(this.getPosStyle()),this.floatingWelcomeChips=new Hs(g=>this.handleFloatingChipClick(g)),o?this.floatingWelcomeChips.updateCoordinates(o.x,o.y,o.y>window.innerHeight/2):this.floatingWelcomeChips.setPosition(this.getPosStyle()),this.panel=new Fs(()=>this.handlePanelClose(),this.getPanelTitle(),()=>this.minimizePanel()),this.voiceChatPill=new yl(()=>this.openPanel(),()=>this.end_call(),"Voice chat"),this.root.appendChild(this.voiceChatPill.getElement()),this.root.appendChild(this.floatingWelcomeChips.getElement()),this.widgetIcon==="clean_assistant"){const g=((l=this.iconConfig)==null?void 0:l.logo_text)||"vanira",B=((d=this.iconConfig)==null?void 0:d.title)||"Vanira Voice AI Assistant",f=((c=this.iconConfig)==null?void 0:c.button_text)||"Begin Call",m=Cs(this.agentId);let w=!1;const v=document.createElement("div");v.className="clean-card-launcher",v.innerHTML=`
3003
3003
  <div class="clean-card-header">
3004
3004
  <div class="clean-card-logo">${g}</div>
3005
3005
  <div class="clean-card-title">${B}</div>
@@ -3023,9 +3023,9 @@ ${F}`:F,O=this.activePresetGeneration,K=d<=0;if(this.activeBoardProgress={ctx:A,
3023
3023
  </svg>
3024
3024
  ${f}
3025
3025
  </button>
3026
- `;const C=v.querySelector(".session-selector-container"),y=v.querySelector(".clean-card-welcome"),Q=v.querySelector(".clean-card-btn"),x=L=>{v.style.display="none",this.create_call(L)},F=()=>{w=!0,v.classList.add("has-session-choice"),y&&(y.style.display=""),C&&(C.style.display="flex"),Q&&(Q.style.display="none")},I=v.querySelectorAll(".session-option");I.forEach(L=>{L.addEventListener("click",O=>{if(O.stopPropagation(),!w)return;I.forEach(M=>M.classList.remove("active")),L.classList.add("active");const K=L.getAttribute("data-behavior");x(K)})}),Q==null||Q.addEventListener("click",L=>{if(L.stopPropagation(),m&&!w){F();return}m||x("continue")}),this.root.appendChild(v),this.cleanCardLauncher=v}else this.widgetIcon==="human_presence"?(this.humanPresenceLauncher=new gl(()=>this.openPanel(),{greeting:((h=this.iconConfig)==null?void 0:h.greeting)||"Hi there!",subtitle:((u=this.iconConfig)==null?void 0:u.subtitle)||"I'm here to help"}),this.root.appendChild(this.humanPresenceLauncher.getElement())):this.root.appendChild(this.floatingButton.getElement());this.root.appendChild(this.panel.getElement()),this.setupPanelContent(),this.chatWelcomeMessage&&!this.widgetMode.includes("chat")&&this.handleWelcomePayload(this.chatWelcomeMessage),this.initSessionManager()?this.widgetMode.includes("chat")&&this.initializeChatSession():this.showTabConflictBanner("conflict"),this.updateLauncherVisibility()}getFabIcon(){return this.widgetIcon&&yt[this.widgetIcon]?yt[this.widgetIcon]:this.widgetMode.includes("chat")?G.chat:G.voice_orb}getPanelTitle(){return"Assistant"}getPosStyle(){const e={"bottom-right":"bottom: 24px; right: 24px;","bottom-left":"bottom: 24px; left: 24px;","top-right":"top: 24px; right: 24px;","top-left":"top: 24px; left: 24px;"};return e[this.position]||e["bottom-right"]}setupPanelContent(){var t,r;const e=(s,i)=>{var c,d;const o=(d=(c=this.currentView)==null?void 0:c.getChatWindow)==null?void 0:d.call(c);o&&o.addCallRecord(s,i);const a=`vanira_calls_${this.widgetId||this.agentId}`,l=JSON.parse(localStorage.getItem(a)||"[]");l.push({durationMs:s,startedAt:i}),l.length>50&&l.splice(0,l.length-50),localStorage.setItem(a,JSON.stringify(l))};switch(this.widgetMode){case"chat_only":this.currentView=new Bl(s=>this.handleChatSend(s));break;case"chat_voice":this.currentView=new fl(s=>this.handleChatSend(s),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"avatar_only":this.currentView=new wl(()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"chat_avatar":this.currentView=new ml(s=>this.handleChatSend(s),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"voice_only":default:this.currentView=new pl(s=>this.create_call(s),()=>this.end_call(),this.primaryColor,this.secondaryColor,e,this.agentId);break}if(this.currentView&&this.panel){this.panel.setContent(this.currentView.getElement()),this.widgetMode==="voice_only"?this.panel.getElement().classList.add("voice-only-panel"):this.panel.getElement().classList.remove("voice-only-panel");const s=(r=(t=this.currentView).getChatWindow)==null?void 0:r.call(t);s&&s.setResolveCallback(()=>this.resolveActiveConversation())}this.wireMicMuteControls()}async handleChatSend(e){var r,s,i,o,a;if(!e)return;this.sessionActive||((r=this.sessionManager)==null||r.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&await this.initializeChatSession(!1));const t=(i=(s=this.currentView)==null?void 0:s.getChatWindow)==null?void 0:i.call(s);if(t){this.chatId&&!this.eventSource&&(this.eventSource=KA.listenForAdminReplies(this.chatId,this.prospectId,l=>{var c,d,h;(d=(c=this.currentView)==null?void 0:c.getChatWindow)==null||d.call(c).addMessage("assistant",l),(h=this.sessionManager)==null||h.pushMessage("assistant",l),this.playMessageSound("receive")})),t.addMessage("user",e),(o=this.sessionManager)==null||o.pushMessage("user",e),t.setTyping(!0),(a=this.sessionManager)==null||a.pushMessage("assistant","");try{let l=!1;await this.chatAdapter.sendMessage(e,this.agentId,this.prospectId,this.chatId,c=>{var d;l||(this.playMessageSound("receive"),l=!0),t.setTyping(!1),(c==null?void 0:c.type)==="button_list"&&((d=c.data)!=null&&d.buttons)&&(t.addButtons(c.data.buttons),this.welcomeChipsData=c.data.buttons,this.updateWelcomeChipsVisibility())},c=>{var d;l||(this.playMessageSound("receive"),l=!0),t.setTyping(!1),t.updateLastAssistantMessage(c),(d=this.sessionManager)==null||d.updateLastAssistantMessage(c)},(c,d)=>{var h;c&&(this.chatId=c),d&&(this.conversationId=d),(c||d)&&((h=this.sessionManager)==null||h.saveIds(this.prospectId,this.chatId,this.conversationId))},this.widgetId||void 0,this.pkKey||void 0)}catch{t.setTyping(!1),t.addMessage("assistant","Error sending message.")}}}minimizePanel(){this.closePanel()}handlePanelClose(){if(this.callActive){this.minimizePanel();return}this.closePanel()}updateLauncherVisibility(){var s,i,o;const e=this.callActive&&!this.isPanelOpen,t=!this.isPanelOpen&&!e;this.voiceChatPill&&(e?(this.callStatus==="connected"?(this.pillActivityState=this.pillActivityState==="speaking"?"speaking":"listening",this.voiceChatPill.setActivity(this.pillActivityState),this.startPillActivityLoop()):this.voiceChatPill.setStatus(this.callStatus),this.voiceChatPill.show()):(this.voiceChatPill.hide(),this.isPanelOpen&&this.callStatus==="connected"&&((i=(s=this.currentView)==null?void 0:s.setActivity)==null||i.call(s,this.pillActivityState==="speaking"?"speaking":"listening")))),this.callActive&&this.callStatus==="connected"&&this.startPillActivityLoop();const r=(o=this.floatingButton)==null?void 0:o.getElement();if(r){const a=this.isPanelOpen||e||this.widgetIcon==="clean_assistant"||this.widgetIcon==="human_presence";r.classList.toggle("hidden-launcher",a)}this.cleanCardLauncher&&(this.cleanCardLauncher.style.display=t&&this.widgetIcon==="clean_assistant"?"":"none"),this.humanPresenceLauncher&&(t&&this.widgetIcon==="human_presence"?this.humanPresenceLauncher.show():this.humanPresenceLauncher.hide()),this.updateWelcomeChipsVisibility()}togglePanel(){this.isPanelOpen?this.closePanel():this.openPanel()}openPanel(){var r,s,i,o;this.isPanelOpen=!0,this.updateWelcomeChipsVisibility();const e=(r=this.floatingButton)==null?void 0:r.getElement().getBoundingClientRect();if(e&&e.width>0){const a=e.top>window.innerHeight/2;(s=this.panel)==null||s.open({left:`${Math.max(20,Math.min(e.left-170,window.innerWidth-420))}px`,bottom:a?`${window.innerHeight-e.top+20}px`:void 0,top:a?void 0:`${e.top+80}px`})}else(i=this.panel)==null||i.open({bottom:"90px",right:"20px",left:"auto",top:"auto"});(o=this.root)!=null&&o.host&&this.root.host.classList.add("vanira-panel-open"),this.updateLauncherVisibility()}closePanel(){var e,t;this.isPanelOpen=!1,this.updateWelcomeChipsVisibility(),(e=this.panel)==null||e.close(),(t=this.root)!=null&&t.host&&this.root.host.classList.remove("vanira-panel-open"),this.updateLauncherVisibility()}updateWelcomeChipsVisibility(){if(!this.floatingWelcomeChips)return;!this.isPanelOpen&&!this.callActive&&this.welcomeChipsData.length>0?(this.floatingWelcomeChips.setChips(this.welcomeChipsData),this.floatingWelcomeChips.getElement().style.display="flex"):this.floatingWelcomeChips.getElement().style.display="none"}handleFloatingChipClick(e){this.openPanel(),this.handleChatSend(e)}async resolveActiveConversation(){var t,r,s;if(this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.conversationId)try{await KA.resolveConversation(this.conversationId)}catch{}(t=this.sessionManager)==null||t.clearChatKeepProspect(),this.conversationId=null,this.chatId=null;const e=(s=(r=this.currentView)==null?void 0:r.getChatWindow)==null?void 0:s.call(r);e&&e.clearMessages(),this.chatInitialized=!1,await this.initializeChatSession(!0)}};p(Te,"audioContext",null);let rr=Te;class $c{static getProvider(A){return new rr(A)}}class Ci extends HTMLElement{constructor(){super();p(this,"shadow");p(this,"provider",null);p(this,"widgetId","");p(this,"agentId","");p(this,"pkKey","");p(this,"serverUrl","https://inboxapi.vanira.io");p(this,"position","bottom-right");p(this,"primaryColor","");p(this,"secondaryColor","");p(this,"gradient",null);p(this,"positionType","fixed");p(this,"widgetIcon",null);this.shadow=this.attachShadow({mode:"open"})}static get observedAttributes(){return["widget-id","agent-id","position","primary-color","secondary-color","server-url","gradient","position-type","pk-key","icon","widget-icon"]}connectedCallback(){this.readAttributes(),this.provider=$c.getProvider(this.buildInitialConfig()),!!(this.widgetId&&!this.agentId)?this.initializeExpandedConfig():this.provider&&this.provider.ui_renderer(this.shadow)}readAttributes(){this.widgetId=this.getAttribute("widget-id")||"",this.agentId=this.getAttribute("agent-id")||"",this.pkKey=this.getAttribute("pk-key")||"",this.serverUrl=this.getAttribute("server-url")||"https://inboxapi.vanira.io",this.position=this.getAttribute("position")||"bottom-right",this.primaryColor=this.getAttribute("primary-color")||"",this.secondaryColor=this.getAttribute("secondary-color")||"",this.gradient=this.getAttribute("gradient"),this.positionType=this.getAttribute("position-type")||"fixed",this.widgetIcon=this.getAttribute("icon")||this.getAttribute("widget-icon")}buildInitialConfig(){const e={widgetId:this.widgetId,agentId:this.agentId,pkKey:this.pkKey,serverUrl:this.serverUrl,position:this.position,positionType:this.positionType,gradient:this.gradient};return this.hasAttribute("primary-color")&&(e.primaryColor=this.primaryColor,e.primary_color=this.primaryColor),this.hasAttribute("secondary-color")&&(e.secondaryColor=this.secondaryColor,e.secondary_color=this.secondaryColor),(this.hasAttribute("icon")||this.hasAttribute("widget-icon"))&&(e.icon=this.widgetIcon,e.widgetIcon=this.widgetIcon),e}buildMergedConfig(e){return{...e,...this.hasAttribute("primary-color")?{primary_color:this.primaryColor,primaryColor:this.primaryColor}:{},...this.hasAttribute("secondary-color")?{secondary_color:this.secondaryColor,secondaryColor:this.secondaryColor}:{},...this.hasAttribute("icon")||this.hasAttribute("widget-icon")?{icon:this.widgetIcon,widgetIcon:this.widgetIcon}:{}}}async initializeExpandedConfig(){try{const e=await de.fetchWidgetConfig(this.widgetId,this.pkKey||void 0);this.provider&&await this.provider.initialize(this.buildMergedConfig(e),this.shadow)}catch{this.provider&&await this.provider.initialize(this.buildInitialConfig(),this.shadow)}}isCallActive(){var e;return((e=this.provider)==null?void 0:e.isCallActive())??!1}updateContext(e){var r;const t=((r=this.provider)==null?void 0:r.updateContext(e))??!1;return t&&this.dispatchHostEvent("vaniraai:context_updated",{context:e}),t}triggerInterrupt(e,t={}){var s;const r=((s=this.provider)==null?void 0:s.triggerInterrupt(e,t))??!1;return r&&this.dispatchHostEvent("vaniraai:action_triggered",{actionName:e,data:t}),r}sendToolResult(e,t){var s;return((s=this.provider)==null?void 0:s.sendToolResult(e,t))??!1}dispatchHostEvent(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}}if(customElements.get("vanira-convai")||customElements.define("vanira-convai",Ci),typeof window<"u"){window.VaniraConvAI=Ci,window.VaniraClient=he,window.VaniraAI=he,window.WebRTCClient=he;try{new URLSearchParams(window.location.search).has("vanira_debug")&&localStorage.setItem("vanira:debug","1"),hc(),localStorage.getItem("vanira:debug")==="1"&&BA("SDK","Debug logging on — inspect window.__VANIRA_DEBUG_LOG__")}catch{}}const $=document.currentScript;if($){const n=$.getAttribute("data-widget-id")||$.getAttribute("widget-id"),A=$.getAttribute("data-agent-id")||$.getAttribute("agent-id");if(n||A){const e=$.getAttribute("data-position")||$.getAttribute("position"),t=$.getAttribute("data-primary-color")||$.getAttribute("primary-color"),r=$.getAttribute("data-secondary-color")||$.getAttribute("secondary-color"),s=$.getAttribute("data-gradient")||$.getAttribute("gradient"),i=$.getAttribute("data-server-url")||$.getAttribute("server-url"),o=$.getAttribute("data-pk-key")||$.getAttribute("pk-key"),a=$.getAttribute("icon")||$.getAttribute("widget-icon"),l=document.createElement("vanira-convai");n&&l.setAttribute("widget-id",n),A&&l.setAttribute("agent-id",A),o&&l.setAttribute("pk-key",o),a&&l.setAttribute("icon",a),e&&l.setAttribute("position",e),t&&l.setAttribute("primary-color",t),r&&l.setAttribute("secondary-color",r),s&&l.setAttribute("gradient",s),i&&l.setAttribute("server-url",i),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>document.body.appendChild(l)):document.body.appendChild(l),l.addEventListener("vaniraai:tool_call",c=>{const d=c.detail,h=d==null?void 0:d.tool_call_id;typeof window.__vaniraai_tool_handler=="function"&&window.__vaniraai_tool_handler(d,{sendResult:u=>{h&&l.sendToolResult(h,u)}})})}}class rA{constructor(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}add(A,e,t,r){return new rA(this.left+A,this.top+e,this.width+t,this.height+r)}static fromClientRect(A,e){return new rA(e.left+A.windowBounds.left,e.top+A.windowBounds.top,e.width,e.height)}static fromDOMRectList(A,e){const t=Array.from(e);let r=t.find(s=>s.width!==0);return r||(r=t.find(s=>s.height!==0)),!r&&t.length>0&&(r=t[0]),r?new rA(r.left+A.windowBounds.left,r.top+A.windowBounds.top,r.width,r.height):rA.EMPTY}}rA.EMPTY=new rA(0,0,0,0);const Mt=(n,A)=>rA.fromClientRect(n,A.getBoundingClientRect()),Ad=n=>{const A=n.body,e=n.documentElement;if(!A||!e)throw new Error("Unable to get document size");const t=Math.max(Math.max(A.scrollWidth,e.scrollWidth),Math.max(A.offsetWidth,e.offsetWidth),Math.max(A.clientWidth,e.clientWidth)),r=Math.max(Math.max(A.scrollHeight,e.scrollHeight),Math.max(A.offsetHeight,e.offsetHeight),Math.max(A.clientHeight,e.clientHeight));return new rA(0,0,t,r)};for(var kt=function(n){for(var A=[],e=0,t=n.length;e<t;){var r=n.charCodeAt(e++);if(r>=55296&&r<=56319&&e<t){var s=n.charCodeAt(e++);(s&64512)===56320?A.push(((r&1023)<<10)+(s&1023)+65536):(A.push(r),e--)}else A.push(r)}return A},z=function(){for(var n=[],A=0;A<arguments.length;A++)n[A]=arguments[A];if(String.fromCodePoint)return String.fromCodePoint.apply(String,n);var e=n.length;if(!e)return"";for(var t=[],r=-1,s="";++r<e;){var i=n[r];i<=65535?t.push(i):(i-=65536,t.push((i>>10)+55296,i%1024+56320)),(r+1===e||t.length>16384)&&(s+=String.fromCharCode.apply(String,t),t.length=0)}return s},yi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ed=typeof Uint8Array>"u"?[]:new Uint8Array(256),Dt=0;Dt<yi.length;Dt++)ed[yi.charCodeAt(Dt)]=Dt;for(var vi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ye=typeof Uint8Array>"u"?[]:new Uint8Array(256),Pt=0;Pt<vi.length;Pt++)Ye[vi.charCodeAt(Pt)]=Pt;for(var td=function(n){var A=n.length*.75,e=n.length,t,r=0,s,i,o,a;n[n.length-1]==="="&&(A--,n[n.length-2]==="="&&A--);var l=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(A):new Array(A),c=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t<e;t+=4)s=Ye[n.charCodeAt(t)],i=Ye[n.charCodeAt(t+1)],o=Ye[n.charCodeAt(t+2)],a=Ye[n.charCodeAt(t+3)],c[r++]=s<<2|i>>4,c[r++]=(i&15)<<4|o>>2,c[r++]=(o&3)<<6|a&63;return l},nd=function(n){for(var A=n.length,e=[],t=0;t<A;t+=2)e.push(n[t+1]<<8|n[t]);return e},rd=function(n){for(var A=n.length,e=[],t=0;t<A;t+=4)e.push(n[t+3]<<24|n[t+2]<<16|n[t+1]<<8|n[t]);return e},te=5,sr=11,ir=2,sd=sr-te,bi=65536>>te,id=1<<te,or=id-1,od=1024>>te,ad=bi+od,ld=ad,cd=32,dd=ld+cd,hd=65536>>sr,ud=1<<sd,gd=ud-1,Qi=function(n,A,e){return n.slice?n.slice(A,e):new Uint16Array(Array.prototype.slice.call(n,A,e))},pd=function(n,A,e){return n.slice?n.slice(A,e):new Uint32Array(Array.prototype.slice.call(n,A,e))},Bd=function(n,A){var e=td(n),t=Array.isArray(e)?rd(e):new Uint32Array(e),r=Array.isArray(e)?nd(e):new Uint16Array(e),s=24,i=Qi(r,s/2,t[4]/2),o=t[5]===2?Qi(r,(s+t[4])/2):pd(t,Math.ceil((s+t[4])/4));return new fd(t[0],t[1],t[2],t[3],i,o)},fd=function(){function n(A,e,t,r,s,i){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=s,this.data=i}return n.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=this.index[A>>te],e=(e<<ir)+(A&or),this.data[e];if(A<=65535)return e=this.index[bi+(A-55296>>te)],e=(e<<ir)+(A&or),this.data[e];if(A<this.highStart)return e=dd-hd+(A>>sr),e=this.index[e],e+=A>>te&gd,e=this.index[e],e=(e<<ir)+(A&or),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},n}(),xi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",wd=typeof Uint8Array>"u"?[]:new Uint8Array(256),Kt=0;Kt<xi.length;Kt++)wd[xi.charCodeAt(Kt)]=Kt;var md="KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==",Ei=50,Cd=1,Ui=2,Fi=3,yd=4,vd=5,Ii=7,Si=8,Hi=9,GA=10,ar=11,Li=12,lr=13,bd=14,ze=15,cr=16,Nt=17,Je=18,Qd=19,Ti=20,dr=21,Xe=22,hr=23,Be=24,uA=25,We=26,je=27,fe=28,xd=29,ne=30,Ed=31,Ot=32,Rt=33,ur=34,gr=35,pr=36,Ze=37,Br=38,Gt=39,Vt=40,fr=41,Mi=42,Ud=43,Fd=[9001,65288],ki="!",D="×",_t="÷",wr=Bd(md),TA=[ne,pr],mr=[Cd,Ui,Fi,vd],Di=[GA,Si],Pi=[je,We],Id=mr.concat(Di),Ki=[Br,Gt,Vt,ur,gr],Sd=[ze,lr],Hd=function(n,A){A===void 0&&(A="strict");var e=[],t=[],r=[];return n.forEach(function(s,i){var o=wr.get(s);if(o>Ei?(r.push(!0),o-=Ei):r.push(!1),["normal","auto","loose"].indexOf(A)!==-1&&[8208,8211,12316,12448].indexOf(s)!==-1)return t.push(i),e.push(cr);if(o===yd||o===ar){if(i===0)return t.push(i),e.push(ne);var a=e[i-1];return Id.indexOf(a)===-1?(t.push(t[i-1]),e.push(a)):(t.push(i),e.push(ne))}if(t.push(i),o===Ed)return e.push(A==="strict"?dr:Ze);if(o===Mi||o===xd)return e.push(ne);if(o===Ud)return s>=131072&&s<=196605||s>=196608&&s<=262141?e.push(Ze):e.push(ne);e.push(o)}),[t,e,r]},Cr=function(n,A,e,t){var r=t[e];if(Array.isArray(n)?n.indexOf(r)!==-1:n===r)for(var s=e;s<=t.length;){s++;var i=t[s];if(i===A)return!0;if(i!==GA)break}if(r===GA)for(var s=e;s>0;){s--;var o=t[s];if(Array.isArray(n)?n.indexOf(o)!==-1:n===o)for(var a=e;a<=t.length;){a++;var i=t[a];if(i===A)return!0;if(i!==GA)break}if(o!==GA)break}return!1},Ni=function(n,A){for(var e=n;e>=0;){var t=A[e];if(t===GA)e--;else return t}return 0},Ld=function(n,A,e,t,r){if(e[t]===0)return D;var s=t-1;if(Array.isArray(r)&&r[s]===!0)return D;var i=s-1,o=s+1,a=A[s],l=i>=0?A[i]:0,c=A[o];if(a===Ui&&c===Fi)return D;if(mr.indexOf(a)!==-1)return ki;if(mr.indexOf(c)!==-1||Di.indexOf(c)!==-1)return D;if(Ni(s,A)===Si)return _t;if(wr.get(n[s])===ar||(a===Ot||a===Rt)&&wr.get(n[o])===ar||a===Ii||c===Ii||a===Hi||[GA,lr,ze].indexOf(a)===-1&&c===Hi||[Nt,Je,Qd,Be,fe].indexOf(c)!==-1||Ni(s,A)===Xe||Cr(hr,Xe,s,A)||Cr([Nt,Je],dr,s,A)||Cr(Li,Li,s,A))return D;if(a===GA)return _t;if(a===hr||c===hr)return D;if(c===cr||a===cr)return _t;if([lr,ze,dr].indexOf(c)!==-1||a===bd||l===pr&&Sd.indexOf(a)!==-1||a===fe&&c===pr||c===Ti||TA.indexOf(c)!==-1&&a===uA||TA.indexOf(a)!==-1&&c===uA||a===je&&[Ze,Ot,Rt].indexOf(c)!==-1||[Ze,Ot,Rt].indexOf(a)!==-1&&c===We||TA.indexOf(a)!==-1&&Pi.indexOf(c)!==-1||Pi.indexOf(a)!==-1&&TA.indexOf(c)!==-1||[je,We].indexOf(a)!==-1&&(c===uA||[Xe,ze].indexOf(c)!==-1&&A[o+1]===uA)||[Xe,ze].indexOf(a)!==-1&&c===uA||a===uA&&[uA,fe,Be].indexOf(c)!==-1)return D;if([uA,fe,Be,Nt,Je].indexOf(c)!==-1)for(var d=s;d>=0;){var h=A[d];if(h===uA)return D;if([fe,Be].indexOf(h)!==-1)d--;else break}if([je,We].indexOf(c)!==-1)for(var d=[Nt,Je].indexOf(a)!==-1?i:s;d>=0;){var h=A[d];if(h===uA)return D;if([fe,Be].indexOf(h)!==-1)d--;else break}if(Br===a&&[Br,Gt,ur,gr].indexOf(c)!==-1||[Gt,ur].indexOf(a)!==-1&&[Gt,Vt].indexOf(c)!==-1||[Vt,gr].indexOf(a)!==-1&&c===Vt||Ki.indexOf(a)!==-1&&[Ti,We].indexOf(c)!==-1||Ki.indexOf(c)!==-1&&a===je||TA.indexOf(a)!==-1&&TA.indexOf(c)!==-1||a===Be&&TA.indexOf(c)!==-1||TA.concat(uA).indexOf(a)!==-1&&c===Xe&&Fd.indexOf(n[o])===-1||TA.concat(uA).indexOf(c)!==-1&&a===Je)return D;if(a===fr&&c===fr){for(var u=e[s],g=1;u>0&&(u--,A[u]===fr);)g++;if(g%2!==0)return D}return a===Ot&&c===Rt?D:_t},Td=function(n,A){A||(A={lineBreak:"normal",wordBreak:"normal"});var e=Hd(n,A.lineBreak),t=e[0],r=e[1],s=e[2];(A.wordBreak==="break-all"||A.wordBreak==="break-word")&&(r=r.map(function(o){return[uA,ne,Mi].indexOf(o)!==-1?Ze:o}));var i=A.wordBreak==="keep-all"?s.map(function(o,a){return o&&n[a]>=19968&&n[a]<=40959}):void 0;return[t,r,i]},Md=function(){function n(A,e,t,r){this.codePoints=A,this.required=e===ki,this.start=t,this.end=r}return n.prototype.slice=function(){return z.apply(void 0,this.codePoints.slice(this.start,this.end))},n}(),kd=function(n,A){var e=kt(n),t=Td(e,A),r=t[0],s=t[1],i=t[2],o=e.length,a=0,l=0;return{next:function(){if(l>=o)return{done:!0,value:null};for(var c=D;l<o&&(c=Ld(e,s,r,++l,i))===D;);if(c!==D||l===o){var d=new Md(e,c,a,l);return a=l,{value:d,done:!1}}return{done:!0,value:null}}}};const Dd=1,Pd=2,we=4,Oi=8,Yt=10,Ri=47,qe=92,Kd=9,Nd=32,zt=34,$e=61,Od=35,Rd=36,Gd=37,Jt=39,Xt=40,At=41,Vd=95,aA=45,_d=33,Yd=60,zd=62,Jd=64,Xd=91,Wd=93,jd=61,Zd=123,Wt=63,qd=125,Gi=124,$d=126,Ah=128,Vi=65533,yr=42,re=43,eh=44,th=58,nh=59,et=46,rh=0,sh=8,ih=11,oh=14,ah=31,lh=127,xA=-1,_i=48,Yi=97,zi=101,ch=102,dh=117,hh=122,Ji=65,Xi=69,Wi=70,uh=85,gh=90,sA=n=>n>=_i&&n<=57,ph=n=>n>=55296&&n<=57343,me=n=>sA(n)||n>=Ji&&n<=Wi||n>=Yi&&n<=ch,Bh=n=>n>=Yi&&n<=hh,fh=n=>n>=Ji&&n<=gh,wh=n=>Bh(n)||fh(n),mh=n=>n>=Ah,jt=n=>n===Yt||n===Kd||n===Nd,Zt=n=>wh(n)||mh(n)||n===Vd,ji=n=>Zt(n)||sA(n)||n===aA,Ch=n=>n>=rh&&n<=sh||n===ih||n>=oh&&n<=ah||n===lh,VA=(n,A)=>n!==qe?!1:A!==Yt,qt=(n,A,e)=>n===aA?Zt(A)||VA(A,e):Zt(n)?!0:!!(n===qe&&VA(n,A)),vr=(n,A,e)=>n===re||n===aA?sA(A)?!0:A===et&&sA(e):sA(n===et?A:n),yh=n=>{let A=0,e=1;(n[A]===re||n[A]===aA)&&(n[A]===aA&&(e=-1),A++);const t=[];for(;sA(n[A]);)t.push(n[A++]);const r=t.length?parseInt(z(...t),10):0;n[A]===et&&A++;const s=[];for(;sA(n[A]);)s.push(n[A++]);const i=s.length,o=i?parseInt(z(...s),10):0;(n[A]===Xi||n[A]===zi)&&A++;let a=1;(n[A]===re||n[A]===aA)&&(n[A]===aA&&(a=-1),A++);const l=[];for(;sA(n[A]);)l.push(n[A++]);const c=l.length?parseInt(z(...l),10):0;return e*(r+o*Math.pow(10,-i))*Math.pow(10,a*c)},vh={type:2},bh={type:3},Qh={type:4},xh={type:13},Eh={type:8},Uh={type:21},Fh={type:9},Ih={type:10},Sh={type:11},Hh={type:12},Lh={type:14},$t={type:23},Th={type:1},Mh={type:25},kh={type:24},Dh={type:26},Ph={type:27},Kh={type:28},Nh={type:29},Oh={type:31},br={type:32};class Zi{constructor(){this._value=[]}write(A){this._value=this._value.concat(kt(A))}read(){const A=[];let e=this.consumeToken();for(;e!==br;)A.push(e),e=this.consumeToken();return A}consumeToken(){const A=this.consumeCodePoint();switch(A){case zt:return this.consumeStringToken(zt);case Od:const e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(ji(e)||VA(t,r)){const u=qt(e,t,r)?Pd:Dd;return{type:5,value:this.consumeName(),flags:u}}break;case Rd:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),xh;break;case Jt:return this.consumeStringToken(Jt);case Xt:return vh;case At:return bh;case yr:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Lh;break;case re:if(vr(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case eh:return Qh;case aA:const s=A,i=this.peekCodePoint(0),o=this.peekCodePoint(1);if(vr(s,i,o))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(qt(s,i,o))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(i===aA&&o===zd)return this.consumeCodePoint(),this.consumeCodePoint(),kh;break;case et:if(vr(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case Ri:if(this.peekCodePoint(0)===yr)for(this.consumeCodePoint();;){let u=this.consumeCodePoint();if(u===yr&&(u=this.consumeCodePoint(),u===Ri))return this.consumeToken();if(u===xA)return this.consumeToken()}break;case th:return Dh;case nh:return Ph;case Yd:if(this.peekCodePoint(0)===_d&&this.peekCodePoint(1)===aA&&this.peekCodePoint(2)===aA)return this.consumeCodePoint(),this.consumeCodePoint(),Mh;break;case Jd:const a=this.peekCodePoint(0),l=this.peekCodePoint(1),c=this.peekCodePoint(2);if(qt(a,l,c))return{type:7,value:this.consumeName()};break;case Xd:return Kh;case qe:if(VA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case Wd:return Nh;case jd:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Eh;break;case Zd:return Sh;case qd:return Hh;case dh:case uh:const d=this.peekCodePoint(0),h=this.peekCodePoint(1);return d===re&&(me(h)||h===Wt)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case Gi:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Fh;if(this.peekCodePoint(0)===Gi)return this.consumeCodePoint(),Uh;break;case $d:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Ih;break;case xA:return br}return jt(A)?(this.consumeWhiteSpace(),Oh):sA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):Zt(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:z(A)}}consumeCodePoint(){const A=this._value.shift();return typeof A>"u"?-1:A}reconsumeCodePoint(A){this._value.unshift(A)}peekCodePoint(A){return A>=this._value.length?-1:this._value[A]}consumeUnicodeRangeToken(){const A=[];let e=this.consumeCodePoint();for(;me(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();let t=!1;for(;e===Wt&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t){const s=parseInt(z(...A.map(o=>o===Wt?_i:o)),16),i=parseInt(z(...A.map(o=>o===Wt?Wi:o)),16);return{type:30,start:s,end:i}}const r=parseInt(z(...A),16);if(this.peekCodePoint(0)===aA&&me(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();const s=[];for(;me(e)&&s.length<6;)s.push(e),e=this.consumeCodePoint();const i=parseInt(z(...s),16);return{type:30,start:r,end:i}}else return{type:30,start:r,end:r}}consumeIdentLikeToken(){const A=this.consumeName();return A.toLowerCase()==="url"&&this.peekCodePoint(0)===Xt?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===Xt?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}}consumeUrlToken(){const A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===xA)return{type:22,value:""};const e=this.peekCodePoint(0);if(e===Jt||e===zt){const t=this.consumeStringToken(this.consumeCodePoint());return t.type===0&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===xA||this.peekCodePoint(0)===At)?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),$t)}for(;;){const t=this.consumeCodePoint();if(t===xA||t===At)return{type:22,value:z(...A)};if(jt(t))return this.consumeWhiteSpace(),this.peekCodePoint(0)===xA||this.peekCodePoint(0)===At?(this.consumeCodePoint(),{type:22,value:z(...A)}):(this.consumeBadUrlRemnants(),$t);if(t===zt||t===Jt||t===Xt||Ch(t))return this.consumeBadUrlRemnants(),$t;if(t===qe)if(VA(t,this.peekCodePoint(0)))A.push(this.consumeEscapedCodePoint());else return this.consumeBadUrlRemnants(),$t;else A.push(t)}}consumeWhiteSpace(){for(;jt(this.peekCodePoint(0));)this.consumeCodePoint()}consumeBadUrlRemnants(){for(;;){const A=this.consumeCodePoint();if(A===At||A===xA)return;VA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}}consumeStringSlice(A){let t="";for(;A>0;){const r=Math.min(5e4,A);t+=z(...this._value.splice(0,r)),A-=r}return this._value.shift(),t}consumeStringToken(A){let e="",t=0;do{const r=this._value[t];if(r===xA||r===void 0||r===A)return e+=this.consumeStringSlice(t),{type:0,value:e};if(r===Yt)return this._value.splice(0,t),Th;if(r===qe){const s=this._value[t+1];s!==xA&&s!==void 0&&(s===Yt?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):VA(r,s)&&(e+=this.consumeStringSlice(t),e+=z(this.consumeEscapedCodePoint()),t=-1))}t++}while(!0)}consumeNumber(){const A=[];let e=we,t=this.peekCodePoint(0);for((t===re||t===aA)&&A.push(this.consumeCodePoint());sA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);let r=this.peekCodePoint(1);if(t===et&&sA(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=Oi;sA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);const s=this.peekCodePoint(2);if((t===Xi||t===zi)&&((r===re||r===aA)&&sA(s)||sA(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=Oi;sA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[yh(A),e]}consumeNumericToken(){const[A,e]=this.consumeNumber(),t=this.peekCodePoint(0),r=this.peekCodePoint(1),s=this.peekCodePoint(2);if(qt(t,r,s)){const i=this.consumeName();return{type:15,number:A,flags:e,unit:i}}return t===Gd?(this.consumeCodePoint(),{type:16,number:A,flags:e}):{type:17,number:A,flags:e}}consumeEscapedCodePoint(){const A=this.consumeCodePoint();if(me(A)){let e=z(A);for(;me(this.peekCodePoint(0))&&e.length<6;)e+=z(this.consumeCodePoint());jt(this.peekCodePoint(0))&&this.consumeCodePoint();const t=parseInt(e,16);return t===0||ph(t)||t>1114111?Vi:t}return A===xA?Vi:A}consumeName(){let A="";for(;;){const e=this.consumeCodePoint();if(ji(e))A+=z(e);else if(VA(e,this.peekCodePoint(0)))A+=z(this.consumeEscapedCodePoint());else return this.reconsumeCodePoint(e),A}}}class Ce{constructor(A){this._tokens=A}static create(A){const e=new Zi;return e.write(A),new Ce(e.read())}static parseValue(A){return Ce.create(A).parseComponentValue()}static parseValues(A){return Ce.create(A).parseComponentValues()}parseComponentValue(){let A=this.consumeToken();for(;A.type===31;)A=this.consumeToken();if(A.type===32)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);const e=this.consumeComponentValue();do A=this.consumeToken();while(A.type===31);if(A.type===32)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")}parseComponentValues(){const A=[];for(;;){const e=this.consumeComponentValue();if(e.type===32)return A;A.push(e),A.push()}}consumeComponentValue(){const A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A}consumeSimpleBlock(A){const e={type:A,values:[]};let t=this.consumeToken();for(;;){if(t.type===32||Gh(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}}consumeFunction(A){const e={name:A.value,values:[],type:18};for(;;){const t=this.consumeToken();if(t.type===32||t.type===3)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}}consumeToken(){const A=this._tokens.shift();return typeof A>"u"?br:A}reconsumeToken(A){this._tokens.unshift(A)}}const EA=n=>n.type===15,W=n=>n.type===17,H=n=>n.type===20,Rh=n=>n.type===0,tt=(n,A)=>H(n)&&n.value===A,An=n=>n.type!==31,tA=n=>n.type!==31&&n.type!==4,vA=n=>{const A=[];let e=[];return n.forEach(t=>{if(t.type===4){if(e.length===0)throw new Error("Error parsing function args, zero tokens for arg");A.push(e),e=[];return}t.type!==31&&e.push(t)}),e.length&&A.push(e),A},Gh=(n,A)=>A===11&&n.type===12||A===28&&n.type===29?!0:A===2&&n.type===3,Y=(n,A,e)=>Math.min(Math.max(n,A),e),lA=(n,A)=>[n[0]*A[0]+n[1]*A[1]+n[2]*A[2],n[3]*A[0]+n[4]*A[1]+n[5]*A[2],n[6]*A[0]+n[7]*A[1]+n[8]*A[2]],_A=n=>lA([3.2409699419045226,-1.537383177570094,-.4986107602930034,-.9692436362808796,1.8759675015077202,.04155505740717559,.05563007969699366,-.20397695888897652,1.0569715142428786],n),Qr=n=>lA([.41239079926595934,.357584339383878,.1804807884018343,.21263900587151027,.715168678767756,.07219231536073371,.01933081871559182,.11919477979462598,.9505321522496607],n),se=n=>n.map(A=>{const e=A<0?-1:1,t=Math.abs(A);return t>.0031308?e*(1.055*t**(1/2.4)-.055):12.92*A}),xr=n=>n.map(A=>{const e=A<0?-1:1,t=Math.abs(A);return t<=.04045?A/12.92:e*((t+.055)/1.055)**2.4}),Vh=n=>{const[A,e,t]=se(_A([n[0],n[1],n[2]]));return[A,e,t,n[3]]},_h=n=>{const[A,e,t]=_A([n[0],n[1],n[2]]);return[Y(Math.round(A*255),0,255),Y(Math.round(e*255),0,255),Y(Math.round(t*255),0,255),n[3]]},YA=n=>n.type===17||n.type===15,N=n=>n.type===16||YA(n),Yh=n=>n.type===18&&n.name==="calc",zh=(n,A=0)=>{const e=t=>{let r="";for(const s of t)if(s.type!==31){if(s.type===18)if(s.name==="calc"){const i=e(s.values);if(i===null)return null;r+=`(${i})`}else return null;else if(s.type===17)r+=s.number.toString();else if(s.type===15)s.unit==="px"?r+=s.number.toString():s.unit==="rem"||s.unit==="em"?r+=(s.number*16).toString():r+=s.number.toString();else if(s.type===16)r+=(s.number/100*A).toString();else if(s.type===6){const i=s.value;i==="+"||i==="-"||i==="*"||i==="/"?r+=` ${i} `:i==="("?r+="(":i===")"&&(r+=")")}}return r};try{const t=e(n.values);if(t===null||t.trim()==="")return null;const r=new Function("return "+t)();if(typeof r=="number"&&!isNaN(r))return{type:17,number:r,flags:we}}catch{return null}return null},qi=n=>n.length>1?[n[0],n[1]]:[n[0]],j={type:17,number:0,flags:we},ie={type:16,number:50,flags:we},UA={type:16,number:100,flags:we},nt=(n,A,e)=>{const[t,r]=n;return[S(t,A),S(typeof r<"u"?r:t,e)]},S=(n,A)=>{if(n.type===16)return n.number/100*A;if(EA(n))switch(n.unit){case"rem":case"em":return 16*n.number;case"px":default:return n.number}return n.number},$i="deg",Ao="grad",eo="rad",to="turn",ye={name:"angle",parse:(n,A)=>{if(A.type===15)switch(A.unit){case $i:return Math.PI*A.number/180;case Ao:return Math.PI/200*A.number;case eo:return A.number;case to:return Math.PI*2*A.number}throw new Error("Unsupported angle type")}},no=n=>n.type===15&&(n.unit===$i||n.unit===Ao||n.unit===eo||n.unit===to),ro=n=>{switch(n.filter(H).map(e=>e.value).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[j,j];case"to top":case"bottom":return wA(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[j,UA];case"to right":case"left":return wA(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[UA,UA];case"to bottom":case"top":return wA(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[UA,j];case"to left":case"right":return wA(270)}return 0},wA=n=>Math.PI*n/180,zA=n=>(255&n)===0,R=n=>{const A=255&n,e=255&n>>8,t=255&n>>16,r=255&n>>24;return A<255?`rgba(${r},${t},${e},${A/255})`:`rgb(${r},${t},${e})`},bA=(n,A,e,t)=>(n<<24|A<<16|e<<8|Math.round(t*255)<<0)>>>0,JA=(n,A)=>{if(n.type===17)return n.number;if(n.type===16){const e=A===3?1:255;return A===3?n.number/100*e:Math.round(n.number/100*e)}return 0},oe=n=>(n[0].type===20?n[0].value:"unknown")==="from",Jh=n=>bA(Y(Math.round(n[0]*255),0,255),Y(Math.round(n[1]*255),0,255),Y(Math.round(n[2]*255),0,255),Y(n[3],0,1)),Er=([n,A,e,t])=>{const r=se([n,A,e]);return bA(Y(Math.round(r[0]*255),0,255),Y(Math.round(r[1]*255),0,255),Y(Math.round(r[2]*255),0,255),t)},rt=n=>{const A=_A([n[0],n[1],n[2]]);return Er([A[0],A[1],A[2],n[3]])},Xh=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for lab()");const[e,t,r,s]=en(A),i=se(_A(rn([e,t,r])));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},Wh=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for oklab()");const[e,t,r,s]=en(A),i=se(_A(nn([e,t,r])));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},jh=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for oklch()");const[e,t,r,s]=ao(A),i=se(_A(nn(tn([e,t,r]))));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},Zh=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for lch()");const[e,t,r,s]=oo(A),i=se(_A(rn(tn([e,t,r]))));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},so=(n,A)=>{const e=A.filter(tA),[t,r,s,i]=e,o=(t.type===17?wA(t.number):ye.parse(n,t))/(Math.PI*2),a=N(r)?r.number/100:0,l=N(s)?s.number/100:0,c=typeof i<"u"&&N(i)?S(i,1):1;return[o,a,l,c]},io=(n,A)=>{if(oe(A))throw new Error("Relative color not supported for hsl()");const[e,t,r,s]=so(n,A),i=co([e,t,r]);return bA(i[0]*255,i[1]*255,i[2]*255,t===0?1:s)},oo=n=>{const A=n.filter(tA),e=N(A[0])?A[0].number:0,t=N(A[1])?A[1].number:0,r=W(A[2])||EA(A[2])?A[2].number:0,s=typeof A[4]<"u"&&N(A[4])?S(A[4],1):1;return[e,t,r,s]},en=n=>{const A=n.filter(tA),e=A[0].type===16?A[0].number/100:W(A[0])?A[0].number:0,t=A[1].type===16?A[1].number/100:W(A[1])?A[1].number:0,r=W(A[2])||EA(A[2])?A[2].number:0,s=typeof A[4]<"u"&&N(A[4])?S(A[4],1):1;return[e,t,r,s]},ao=n=>{const A=n.filter(tA),e=A[0].type===16?A[0].number/100:W(A[0])?A[0].number:0,t=A[1].type===16?A[1].number/100:W(A[1])?A[1].number:0,r=W(A[2])||EA(A[2])?A[2].number:0,s=typeof A[4]<"u"&&N(A[4])?S(A[4],1):1;return[e,t,r,s]},lo=n=>lA([1.0479297925449969,.022946870601609652,-.05019226628920524,.02962780877005599,.9904344267538799,-.017073799063418826,-.009243040646204504,.015055191490298152,.7518742814281371],n),Ur=n=>lA([.955473421488075,-.02309845494876471,.06325924320057072,-.0283697093338637,1.0099953980813041,.021041441191917323,.012314014864481998,-.020507649298898964,1.330365926242124],n),Fr=(n,A,e)=>(e<0&&(e+=1),e>=1&&(e-=1),e<1/6?(A-n)*e*6+n:e<1/2?A:e<2/3?(A-n)*6*(2/3-e)+n:n),co=([n,A,e])=>{if(A===0)return[e*255,e*255,e*255];const t=e<=.5?e*(A+1):e+A-e*A,r=e*2-t,s=Fr(r,t,n+1/3),i=Fr(r,t,n),o=Fr(r,t,n-1/3);return[s,i,o]},tn=([n,A,e])=>(A<0&&(A=0),isNaN(e)&&(e=0),[n,A*Math.cos(e*Math.PI/180),A*Math.sin(e*Math.PI/180)]),nn=n=>{const A=lA([1,.3963377773761749,.2158037573099136,1,-.1055613458156586,-.0638541728258133,1,-.0894841775298119,-1.2914855480194092],n),e=A.map(t=>t**3);return lA([1.2268798758459243,-.5578149944602171,.2813910456659647,-.0405757452148008,1.112286803280317,-.0717110580655164,-.0763729366746601,-.4214933324022432,1.5869240198367816],e)},rn=n=>{const A=(n[0]+16)/116,e=n[1]/500+A,t=A-n[2]/200,r=24389/27,s=24/116,i=[(e>s?e**3:(116*e-16)/r)*.3457/.3585,n[0]>8?A**3:n[0]/r,(t>s?t**3:(116*t-16)/r)*(1-.3457-.3585)/.3585];return Ur([i[0],i[1],i[2]])},qh=(n,A)=>{const e=A.filter(tA);if(e.length===3){const[t,r,s]=e.map(JA),i=xr([t/255,r/255,s/255]),[o,a,l]=Qr([i[0],i[1],i[2]]);return[o,a,l,1]}if(e.length===4){const[t,r,s,i]=e.map(JA),o=xr([t/255,r/255,s/255]),[a,l,c]=Qr([o[0],o[1],o[2]]);return[a,l,c,i]}return[0,0,0,1]},$h=(n,A)=>{const[e,t,r,s]=so(n,A),i=xr(co([e,t,r])),[o,a,l]=Qr([i[0],i[1],i[2]]);return[o,a,l,s]},Au=(n,A)=>{const[e,t,r,s]=en(A),[i,o,a]=rn([e,t,r]);return[i,o,a,s]},eu=(n,A)=>{const[e,t,r,s]=oo(A),[i,o,a]=rn(tn([e,t,r]));return[i,o,a,s]},tu=(n,A)=>{const[e,t,r,s]=ao(A),[i,o,a]=nn(tn([e,t,r]));return[i,o,a,s]},nu=(n,A)=>{const[e,t,r,s]=en(A),[i,o,a]=nn([e,t,r]);return[i,o,a,s]},ru=n=>Ur([n[0],n[1],n[2]]),ho=n=>n,su=n=>{const[A,e,t]=lo([n[0],n[2],n[3]]);return[A,e,t,n[3]]},uo=n=>rt([n[0],n[1],n[2],n[3]]),iu=n=>{const A=ru([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},ou=n=>lA([.4865709486482162,.26566769316909306,.1982172852343625,.2289745640697488,.6917385218365064,.079286914093745,0,.04511338185890264,1.043944368900976],n),au=n=>lA([2.493496911941425,-.9313836179191239,-.40271078445071684,-.8294889695615747,1.7626640603183463,.023624685841943577,.03584583024378447,-.07617238926804182,.9568845240076872],n),lu=n=>n.map(A=>{const e=A<0?-1:1;return A*e<=.04045?A/12.92:e*((A+.055)/1.055)**2.4||0}),cu=n=>se(n),du=n=>{const A=lu([n[0],n[1],n[2]]);return ou([A[0],A[1],A[2]])},hu=n=>{const[A,e,t]=cu(au([n[0],n[1],n[2]]));return[A,e,t,n[3]]},uu=n=>{const A=du([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},gu=n=>lA([2.0415879038107465,-.5650069742788596,-.34473135077832956,-.9692436362808795,1.8759675015077202,.04155505740717557,.013444280632031142,-.11836239223101838,1.0151749943912054],n),pu=n=>lA([.5766690429101305,.1855582379065463,.1882286462349947,.29734497525053605,.6273635662554661,.0752914584939978,.02703136138641234,.07068885253582723,.9913375368376388],n),Bu=n=>{const A=n.map(e=>{const t=e<0?-1:1,r=Math.abs(e);return t*r**2.19921875});return[A[0],A[1],A[2]]},fu=n=>{const A=n.map(e=>{const t=e<0?-1:1,r=Math.abs(e);return t*r**.4547069271758437});return[A[0],A[1],A[2]]},wu=n=>{const[A,e,t]=fu(gu([n[0],n[1],n[2]]));return[A,e,t,n[3]]},mu=n=>{const A=_A(pu(Bu([n[0],n[1],n[2]])));return Er([A[0],A[1],A[2],n[3]])},Cu=n=>lA([.7977666449006423,.13518129740053308,.0313477341283922,.2880748288194013,.711835234241873,8993693872564e-17,0,0,.8251046025104602],n),yu=n=>lA([1.3457868816471583,-.25557208737979464,-.05110186497554526,-.5446307051249019,1.5082477428451468,.02052744743642139,0,0,1.2119675456389452],n),vu=n=>n.map(A=>A<16/512?A/16:A**1.8),bu=n=>n.map(A=>A>1/512?A**(1/1.8):A*16),Qu=n=>{const A=vu([n[0],n[1],n[2]]);return Ur(Cu([A[0],A[1],A[2]]))},xu=n=>{const[A,e,t]=bu(yu(lo([n[0],n[1],n[2]])));return[A,e,t,n[3]]},Eu=n=>{const A=Qu([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},sn=1.09929682680944,go=.018053968510807,Uu=n=>n.map(function(A){return A<go*4.5?A/4.5:Math.pow((A+sn-1)/sn,1/.45)}),Fu=n=>n.map(function(A){return A>=go?sn*Math.pow(A,.45)-(sn-1):4.5*A}),Iu=n=>lA([.6369580483012914,.14461690358620832,.1688809751641721,.2627002120112671,.6779980715188708,.05930171646986196,0,.028072693049087428,1.060985057710791],n),Su=n=>lA([1.716651187971268,-.355670783776392,-.25336628137366,-.666684351832489,1.616481236634939,.0157685458139111,.017639857445311,-.042770613257809,.942103121235474],n),Hu=n=>{const A=Uu([n[0],n[1],n[2]]);return Iu([A[0],A[1],A[2]])},Lu=n=>{const[A,e,t]=Fu(Su([n[0],n[1],n[2]]));return[A,e,t,n[3]]},Tu=n=>{const A=Hu([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},XA={name:"color",parse:(n,A)=>{if(A.type===18){const e=Pu[A.name];if(typeof e>"u")throw new Error(`Attempting to parse an unsupported color function "${A.name}"`);return e(n,A.values)}if(A.type===5){const[e,t,r,s]=po(A);return bA(e,t,r,s)}if(A.type===20){const e=FA[A.value.toUpperCase()];if(typeof e<"u")return e}return FA.TRANSPARENT}},po=n=>{if(n.value.length===3){const A=n.value.substring(0,1),e=n.value.substring(1,2),t=n.value.substring(2,3);return[parseInt(A+A,16),parseInt(e+e,16),parseInt(t+t,16),1]}if(n.value.length===4){const A=n.value.substring(0,1),e=n.value.substring(1,2),t=n.value.substring(2,3),r=n.value.substring(3,4);return[parseInt(A+A,16),parseInt(e+e,16),parseInt(t+t,16),parseInt(r+r,16)/255]}if(n.value.length===6){const A=n.value.substring(0,2),e=n.value.substring(2,4),t=n.value.substring(4,6);return[parseInt(A,16),parseInt(e,16),parseInt(t,16),1]}if(n.value.length===8){const A=n.value.substring(0,2),e=n.value.substring(2,4),t=n.value.substring(4,6),r=n.value.substring(6,8);return[parseInt(A,16),parseInt(e,16),parseInt(t,16),parseInt(r,16)/255]}return[0,0,0,1]},Bo=(n,A)=>{const e=A.filter(tA);if(oe(e))throw new Error("Relative color not supported for rgb()");if(e.length===3){const[t,r,s]=e.map(JA);return bA(t,r,s,1)}if(e.length===4){const[t,r,s,i]=e.map(JA);return bA(t,r,s,i)}if(e.length===5&&e[3].type===6&&e[3].value==="/"){const t=JA(e[0],0),r=JA(e[1],1),s=JA(e[2],2),i=JA(e[4],3);return bA(t,r,s,i)}return 0},Mu=(n,A)=>{const e=A.filter(tA),t=e[0].type===20?e[0].value:"unknown";if(!oe(e)){const s=t,i=fo[s];if(typeof i>"u")throw new Error(`Attempting to parse an unsupported color space "${s}" for color() function`);const o=W(e[1])?e[1].number:0,a=W(e[2])?e[2].number:0,l=W(e[3])?e[3].number:0,c=e.length>4&&e[4].type===6&&e[4].value==="/"&&W(e[5])?e[5].number:1;return i([o,a,l,c])}else{const s=(w,v)=>{if(W(v))return v.number;const C=Q=>Q==="r"||Q==="x"?0:Q==="g"||Q==="y"?1:2;if(H(v)){const Q=C(v.value);return w[Q]}const y=Q=>{const x=Q.filter(tA);let F="(";for(const I of x)F+=I.type===18&&I.name==="calc"?y(I.values):W(I)?I.number:I.type===6||H(I)?I.value:"";return F+=")",F};if(v.type===18){const Q=v.values.filter(tA);if(v.name==="calc"){const x=y(Q).replace(/r|x/,w[0].toString()).replace(/g|y/,w[1].toString()).replace(/b|z/,w[2].toString());return new Function("return "+x)()}}return null},i=e[1].type===18?e[1].name:H(e[1])||e[1].type===5?"rgb":"unknown",o=H(e[2])?e[2].value:"unknown";let a=e[1].type===18?e[1].values:H(e[1])?[e[1]]:[];if(H(e[1])){if(typeof FA[e[1].value.toUpperCase()]>"u")throw new Error("Attempting to use unknown color in relative color 'from'");{const v=ve(n,e[1].value),C=255&v,y=255&v>>8,Q=255&v>>16;a=[{type:17,number:255&v>>24,flags:1},{type:17,number:Q,flags:1},{type:17,number:y,flags:1},{type:17,number:C>1?C/255:C,flags:1}]}}else if(e[1].type===5){const[w,v,C,y]=po(e[1]);a=[{type:17,number:w,flags:1},{type:17,number:v,flags:1},{type:17,number:C,flags:1},{type:17,number:y>1?y/255:y,flags:1}]}if(a.length===0)throw new Error("Attempting to use unknown color in relative color 'from'");if(o==="unknown")throw new Error("Attempting to use unknown colorspace in relative color 'to'");const l=ku[i],c=Du[o],d=fo[o];if(typeof l>"u")throw new Error(`Attempting to parse an unsupported color space "${i}" for color() function`);if(typeof c>"u")throw new Error(`Attempting to parse an unsupported color space "${o}" for color() function`);const h=l(n,a),u=c(h),g=s(u,e[3]),B=s(u,e[4]),f=s(u,e[5]),m=e.length>6&&e[6].type===6&&e[6].value==="/"&&W(e[7])?e[7].number:1;if(g===null||B===null||f===null)throw new Error("Invalid relative color in color() function");return d([g,B,f,m])}},fo={srgb:Jh,"srgb-linear":Er,"display-p3":uu,"a98-rgb":mu,"prophoto-rgb":Eu,xyz:uo,"xyz-d50":iu,"xyz-d65":uo,rec2020:Tu},ku={rgb:qh,hsl:$h,lab:Au,lch:eu,oklab:nu,oklch:tu},Du={srgb:Vh,"srgb-linear":_h,"display-p3":hu,"a98-rgb":wu,"prophoto-rgb":xu,xyz:ho,"xyz-d50":su,"xyz-d65":ho,rec2020:Lu},Pu={hsl:io,hsla:io,rgb:Bo,rgba:Bo,lch:Zh,oklch:jh,oklab:Wh,lab:Xh,color:Mu},ve=(n,A)=>XA.parse(n,Ce.create(A).parseComponentValue()),FA={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Ku={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:(n,A)=>A.map(e=>{if(H(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0})},Nu={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},on=(n,A)=>{const e=XA.parse(n,A[0]),t=A[1];return t&&N(t)?{color:e,stop:t}:{color:e,stop:null}},wo=(n,A)=>{const e=n[0],t=n[n.length-1];e.stop===null&&(e.stop=j),t.stop===null&&(t.stop=UA);const r=[];let s=0;for(let o=0;o<n.length;o++){const a=n[o].stop;if(a!==null){const l=S(a,A);l>s?r.push(l):r.push(s),s=l}else r.push(null)}let i=null;for(let o=0;o<r.length;o++){const a=r[o];if(a===null)i===null&&(i=o);else if(i!==null){const l=o-i,c=r[i-1],d=(a-c)/(l+1);for(let h=1;h<=l;h++)r[i+h-1]=d*h;i=null}}return n.map(({color:o},a)=>({color:o,stop:Math.max(Math.min(1,r[a]/A),0)}))},Ou=(n,A,e)=>{const t=A/2,r=e/2,s=S(n[0],A)-t,i=r-S(n[1],e);return(Math.atan2(i,s)+Math.PI*2)%(Math.PI*2)},Ru=(n,A,e)=>{const t=typeof n=="number"?n:Ou(n,A,e),r=Math.abs(A*Math.sin(t))+Math.abs(e*Math.cos(t)),s=A/2,i=e/2,o=r/2,a=Math.sin(t-Math.PI/2)*o,l=Math.cos(t-Math.PI/2)*o;return[r,s-l,s+l,i-a,i+a]},QA=(n,A)=>Math.sqrt(n*n+A*A),mo=(n,A,e,t,r)=>[[0,0],[0,A],[n,0],[n,A]].reduce((i,o)=>{const[a,l]=o,c=QA(e-a,t-l);return(r?c<i.optimumDistance:c>i.optimumDistance)?{optimumCorner:o,optimumDistance:c}:i},{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner,Gu=(n,A,e,t,r)=>{let s=0,i=0;switch(n.size){case 0:n.shape===0?s=i=Math.min(Math.abs(A),Math.abs(A-t),Math.abs(e),Math.abs(e-r)):n.shape===1&&(s=Math.min(Math.abs(A),Math.abs(A-t)),i=Math.min(Math.abs(e),Math.abs(e-r)));break;case 2:if(n.shape===0)s=i=Math.min(QA(A,e),QA(A,e-r),QA(A-t,e),QA(A-t,e-r));else if(n.shape===1){const o=Math.min(Math.abs(e),Math.abs(e-r))/Math.min(Math.abs(A),Math.abs(A-t)),[a,l]=mo(t,r,A,e,!0);s=QA(a-A,(l-e)/o),i=o*s}break;case 1:n.shape===0?s=i=Math.max(Math.abs(A),Math.abs(A-t),Math.abs(e),Math.abs(e-r)):n.shape===1&&(s=Math.max(Math.abs(A),Math.abs(A-t)),i=Math.max(Math.abs(e),Math.abs(e-r)));break;case 3:if(n.shape===0)s=i=Math.max(QA(A,e),QA(A,e-r),QA(A-t,e),QA(A-t,e-r));else if(n.shape===1){const o=Math.max(Math.abs(e),Math.abs(e-r))/Math.max(Math.abs(A),Math.abs(A-t)),[a,l]=mo(t,r,A,e,!1);s=QA(a-A,(l-e)/o),i=o*s}break}return Array.isArray(n.size)&&(s=S(n.size[0],t),i=n.size.length===2?S(n.size[1],r):s),[s,i]},Vu=(n,A)=>{let e=wA(180);const t=[];return vA(A).forEach((r,s)=>{if(s===0){const o=r[0];if(o.type===20&&o.value==="to"){e=ro(r);return}else if(no(o)){e=ye.parse(n,o);return}}const i=on(n,r);t.push(i)}),{angle:e,stops:t,type:1}},an=(n,A)=>{let e=wA(180);const t=[];return vA(A).forEach((r,s)=>{if(s===0){const o=r[0];if(o.type===20&&["top","left","right","bottom"].indexOf(o.value)!==-1){e=ro(r);return}else if(no(o)){e=(ye.parse(n,o)+wA(270))%wA(360);return}}const i=on(n,r);t.push(i)}),{angle:e,stops:t,type:1}},_u=(n,A)=>{const e=wA(180),t=[];let r=1;const s=0,i=3,o=[];return vA(A).forEach((a,l)=>{const c=a[0];if(l===0){if(H(c)&&c.value==="linear"){r=1;return}else if(H(c)&&c.value==="radial"){r=2;return}}if(c.type===18){if(c.name==="from"){const d=XA.parse(n,c.values[0]);t.push({stop:j,color:d})}else if(c.name==="to"){const d=XA.parse(n,c.values[0]);t.push({stop:UA,color:d})}else if(c.name==="color-stop"){const d=c.values.filter(tA);if(d.length===2){const h=XA.parse(n,d[1]),u=d[0];W(u)&&t.push({stop:{type:16,number:u.number*100,flags:u.flags},color:h})}}}}),r===1?{angle:(e+wA(180))%wA(360),stops:t,type:r}:{size:i,shape:s,stops:t,position:o,type:r}},Co="closest-side",yo="farthest-side",vo="closest-corner",bo="farthest-corner",Qo="circle",xo="ellipse",Eo="cover",Uo="contain",Yu=(n,A)=>{let e=0,t=3;const r=[],s=[];return vA(A).forEach((i,o)=>{let a=!0;if(o===0){let l=!1;a=i.reduce((c,d)=>{if(l)if(H(d))switch(d.value){case"center":return s.push(ie),c;case"top":case"left":return s.push(j),c;case"right":case"bottom":return s.push(UA),c}else(N(d)||YA(d))&&s.push(d);else if(H(d))switch(d.value){case Qo:return e=0,!1;case xo:return e=1,!1;case"at":return l=!0,!1;case Co:return t=0,!1;case Eo:case yo:return t=1,!1;case Uo:case vo:return t=2,!1;case bo:return t=3,!1}else if(YA(d)||N(d))return Array.isArray(t)||(t=[]),t.push(d),!1;return c},a)}if(a){const l=on(n,i);r.push(l)}}),{size:t,shape:e,stops:r,position:s,type:2}},ln=(n,A)=>{let e=0,t=3;const r=[],s=[];return vA(A).forEach((i,o)=>{let a=!0;if(o===0?a=i.reduce((l,c)=>{if(H(c))switch(c.value){case"center":return s.push(ie),!1;case"top":case"left":return s.push(j),!1;case"right":case"bottom":return s.push(UA),!1}else if(N(c)||YA(c))return s.push(c),!1;return l},a):o===1&&(a=i.reduce((l,c)=>{if(H(c))switch(c.value){case Qo:return e=0,!1;case xo:return e=1,!1;case Uo:case Co:return t=0,!1;case yo:return t=1,!1;case vo:return t=2,!1;case Eo:case bo:return t=3,!1}else if(YA(c)||N(c))return Array.isArray(t)||(t=[]),t.push(c),!1;return l},a)),a){const l=on(n,i);r.push(l)}}),{size:t,shape:e,stops:r,position:s,type:2}},zu=n=>n.type===1,Ju=n=>n.type===2,Ir={name:"image",parse:(n,A)=>{if(A.type===22){const e={url:A.value,type:0};return n.cache.addImage(A.value),e}if(A.type===18){const e=Fo[A.name];if(typeof e>"u")throw new Error(`Attempting to parse an unsupported image function "${A.name}"`);return e(n,A.values)}throw new Error(`Unsupported image type ${A.type}`)}};function Xu(n){return!(n.type===20&&n.value==="none")&&(n.type!==18||!!Fo[n.name])}const Fo={"linear-gradient":Vu,"-moz-linear-gradient":an,"-ms-linear-gradient":an,"-o-linear-gradient":an,"-webkit-linear-gradient":an,"radial-gradient":Yu,"-moz-radial-gradient":ln,"-ms-radial-gradient":ln,"-o-radial-gradient":ln,"-webkit-radial-gradient":ln,"-webkit-gradient":_u},Wu={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>{if(A.length===0)return[];const e=A[0];return e.type===20&&e.value==="none"?[]:A.filter(t=>tA(t)&&Xu(t)).map(t=>Ir.parse(n,t))}},ju={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:(n,A)=>A.map(e=>{if(H(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0})},Zu={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:(n,A)=>vA(A).map(e=>e.map(t=>Yh(t)?zh(t,0):N(t)?t:null).filter(t=>t!==null)).map(qi)},qu={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:(n,A)=>vA(A).map(e=>e.filter(H).map(t=>t.value).join(" ")).map($u)},$u=n=>{switch(n){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;case"repeat":default:return 0}};var be;(function(n){n.AUTO="auto",n.CONTAIN="contain",n.COVER="cover"})(be||(be={}));const Ag={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:(n,A)=>vA(A).map(e=>e.filter(eg))},eg=n=>H(n)||N(n),cn=n=>({name:`border-${n}-color`,initialValue:"transparent",prefix:!1,type:3,format:"color"}),tg=cn("top"),ng=cn("right"),rg=cn("bottom"),sg=cn("left"),dn=n=>({name:`border-radius-${n}`,initialValue:"0 0",prefix:!1,type:1,parse:(A,e)=>qi(e.filter(N))}),ig=dn("top-left"),og=dn("top-right"),ag=dn("bottom-right"),lg=dn("bottom-left"),hn=n=>({name:`border-${n}-style`,initialValue:"solid",prefix:!1,type:2,parse:(A,e)=>{switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}),cg=hn("top"),dg=hn("right"),hg=hn("bottom"),ug=hn("left"),un=n=>({name:`border-${n}-width`,initialValue:"0",type:0,prefix:!1,parse:(A,e)=>EA(e)?e.number:0}),gg=un("top"),pg=un("right"),Bg=un("bottom"),fg=un("left"),Sr={type:0},Hr=n=>{const[A]=n;return A?H(A)?A.value==="farthest-side"?"farthest-side":"closest-side":N(A)?A:"closest-side":"closest-side"},Io=n=>{let A=null,e=null;for(const t of n)if(H(t))switch(t.value){case"left":A=j;break;case"right":A=UA;break;case"top":e=j;break;case"bottom":e=UA;break;case"center":A===null?A=ie:e===null&&(e=ie);break}else N(t)&&(A===null?A=t:e===null&&(e=t));return{cx:A??ie,cy:e??ie}},wg=n=>{const A=[];for(const i of n)if(i.type!==31){if(H(i)&&i.value==="round")break;N(i)&&A.push(i)}const e=A[0]??j,t=A[1]??e,r=A[2]??e,s=A[3]??t;return{type:1,top:e,right:t,bottom:r,left:s}},mg=n=>{const A=n.filter(An),e=A.findIndex(s=>tt(s,"at")),t=e===-1?A:A.slice(0,e),r=e===-1?[]:A.slice(e+1);return{type:2,radius:Hr(t),...Io(r)}},Cg=n=>{const A=n.filter(An),e=A.findIndex(s=>tt(s,"at")),t=e===-1?A:A.slice(0,e),r=e===-1?[]:A.slice(e+1);return{type:3,rx:Hr(t.slice(0,1)),ry:Hr(t.slice(1,2)),...Io(r)}},yg=n=>{const A=vA(n),e=[];for(const t of A){if(t.length===1&&H(t[0]))continue;const r=t.filter(N);r.length>=2&&e.push([r[0],r[1]])}return{type:4,points:e}},vg=n=>{const A=n.find(e=>e.type===0);return A?{type:5,d:A.value}:Sr},bg={name:"clip-path",initialValue:"none",prefix:!1,type:0,parse:(n,A)=>{if(H(A)&&A.value==="none")return Sr;if(A.type===18)switch(A.name){case"inset":return wg(A.values);case"circle":return mg(A.values);case"ellipse":return Cg(A.values);case"polygon":return yg(A.values);case"path":return vg(A.values)}return Sr}},Qg={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},xg={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"rtl":return 1;case"ltr":default:return 0}}},Eg={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:(n,A)=>A.filter(H).reduce((e,t)=>e|Ug(t.value),0)},Ug=n=>{switch(n){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},Fg={name:"float",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Ig={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:(n,A)=>A.type===20&&A.value==="normal"?0:A.type===17||A.type===15?A.number:0};var gn;(function(n){n.NORMAL="normal",n.STRICT="strict"})(gn||(gn={}));const Sg={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"strict":return gn.STRICT;case"normal":default:return gn.NORMAL}}},Hg={name:"line-height",initialValue:"normal",prefix:!1,type:4},So=(n,A)=>H(n)&&n.value==="normal"?1.2*A:n.type===17?A*n.number:N(n)?S(n,A):A,Lg={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:(n,A)=>A.type===20&&A.value==="none"?null:Ir.parse(n,A)},Tg={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"inside":return 0;case"outside":default:return 1}}},Lr={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":return 22;case"hebrew":return 52;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;case"none":default:return-1}}},pn=n=>({name:`margin-${n}`,initialValue:"0",prefix:!1,type:4}),Mg=pn("top"),kg=pn("right"),Dg=pn("bottom"),Pg=pn("left"),Kg={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:(n,A)=>A.filter(H).map(e=>{switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;case"visible":default:return 0}})},Ng={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"break-word":return"break-word";case"normal":default:return"normal"}}},Bn=n=>({name:`padding-${n}`,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}),Og=Bn("top"),Rg=Bn("right"),Gg=Bn("bottom"),Vg=Bn("left"),_g={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"right":return 2;case"center":case"justify":return 1;case"left":default:return 0}}},Yg={name:"position",initialValue:"static",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},zg={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>A.length===1&&tt(A[0],"none")?[]:vA(A).map(e=>{const t={color:FA.TRANSPARENT,offsetX:j,offsetY:j,blur:j};let r=0;for(let s=0;s<e.length;s++){const i=e[s];YA(i)?(r===0?t.offsetX=i:r===1?t.offsetY=i:t.blur=i,r++):t.color=XA.parse(n,i)}return t})},Jg={name:"text-transform",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"uppercase":return 2;case"lowercase":return 1;case"capitalize":return 3}return 0}},Xg={name:"transform",initialValue:"none",prefix:!0,type:0,parse:(n,A)=>{if(A.type===20&&A.value==="none")return null;if(A.type===18){const e=Wg[A.name];if(typeof e>"u")throw new Error(`Attempting to parse an unsupported transform function "${A.name}"`);return e(n,A.values)}return null}},Wg={matrix:(n,A)=>{const e=A.filter(t=>t.type===17).map(t=>t.number);return e.length===6?e:null},matrix3d:(n,A)=>{const e=A.filter(l=>l.type===17).map(l=>l.number),[t,r,{},{},s,i,{},{},{},{},{},{},o,a]=e;return e.length===16?[t,r,s,i,o,a]:null},rotate:(n,A)=>{if(A.length!==1)return null;const e=A[0];let t=0;if(e.type===17&&e.number===0)t=0;else if(e.type===15)t=ye.parse(n,e);else return null;const r=Math.cos(t),s=Math.sin(t);return[r,s,-s,r,0,0]}},Ho={type:16,number:50,flags:we},jg=[Ho,Ho],Zg={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:(n,A)=>{const e=A.filter(N);return e.length!==2?jg:[e[0],e[1]]}},qg={name:"rotate",initialValue:"none",prefix:!1,type:0,parse:(n,A)=>A.type===20&&A.value==="none"?null:A.type===17&&A.number===0?0:A.type===15?ye.parse(n,A)*180/Math.PI:null},$g={name:"visible",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"hidden":return 1;case"collapse":return 2;case"visible":default:return 0}}};var st;(function(n){n.NORMAL="normal",n.BREAK_ALL="break-all",n.KEEP_ALL="keep-all"})(st||(st={}));const Ap={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"break-all":return st.BREAK_ALL;case"keep-all":return st.KEEP_ALL;case"normal":default:return st.NORMAL}}},IA=n=>n!==0,ep=n=>n===3||n===4,tp={name:"writing-mode",initialValue:"horizontal-tb",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"vertical-rl":return 1;case"vertical-lr":return 2;case"sideways-rl":return 3;case"sideways-lr":return 4;case"horizontal-tb":default:return 0}}},np={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:(n,A)=>{if(A.type===20)return{auto:!0,order:0};if(W(A))return{auto:!1,order:A.number};throw new Error("Invalid z-index number parsed")}},Lo={name:"time",parse:(n,A)=>{if(A.type===15)switch(A.unit.toLowerCase()){case"s":return 1e3*A.number;case"ms":return A.number}throw new Error("Unsupported time type")}},rp={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:(n,A)=>W(A)?A.number:1},sp={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ip={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:(n,A)=>A.filter(H).map(e=>{switch(e.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(e=>e!==0)},op={name:"text-decoration-style",initialValue:"solid",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"double":return 1;case"dotted":return 2;case"dashed":return 3;case"wavy":return 4;case"solid":default:return 0}}},ap={name:"text-decoration-thickness",initialValue:"auto",prefix:!1,type:0,parse:(n,A)=>{if(H(A))switch(A.value){case"auto":return"auto";case"from-font":return"from-font"}return EA(A)?A.number:"auto"}},lp={name:"text-underline-offset",initialValue:"auto",prefix:!1,type:0,parse:(n,A)=>H(A)&&A.value==="auto"?"auto":EA(A)?A.number:"auto"},cp={name:"font-family",initialValue:"",prefix:!1,type:1,parse:(n,A)=>{const e=[],t=[];return A.forEach(r=>{switch(r.type){case 20:case 0:e.push(r.value);break;case 17:e.push(r.number.toString());break;case 4:t.push(e.join(" ")),e.length=0;break}}),e.length&&t.push(e.join(" ")),t.map(r=>r.indexOf(" ")===-1?r:`'${r}'`)}},dp={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},hp={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:(n,A)=>{if(W(A))return A.number;if(H(A))switch(A.value){case"bold":return 700;case"normal":default:return 400}return 400}},up={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>A.filter(H).map(e=>e.value)},gp={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"oblique":return"oblique";case"italic":return"italic";case"normal":default:return"normal"}}},_=(n,A)=>(n&A)!==0,pp={name:"content",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>{if(A.length===0)return[];const e=A[0];return e.type===20&&e.value==="none"?[]:A}},Bp={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:(n,A)=>{if(A.length===0)return null;const e=A[0];if(e.type===20&&e.value==="none")return null;const t=[],r=A.filter(An);for(let s=0;s<r.length;s++){const i=r[s],o=r[s+1];if(i.type===20){const a=o&&W(o)?o.number:1;t.push({counter:i.value,increment:a})}}return t}},fp={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:(n,A)=>{if(A.length===0)return[];const e=[],t=A.filter(An);for(let r=0;r<t.length;r++){const s=t[r],i=t[r+1];if(H(s)&&s.value!=="none"){const o=i&&W(i)?i.number:0;e.push({counter:s.value,reset:o})}}return e}},wp={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:(n,A)=>A.filter(EA).map(e=>Lo.parse(n,e))},mp={name:"quotes",initialValue:"none",prefix:!0,type:1,parse:(n,A)=>{if(A.length===0)return null;const e=A[0];if(e.type===20&&e.value==="none")return null;const t=[],r=A.filter(Rh);if(r.length%2!==0)return null;for(let s=0;s<r.length;s+=2){const i=r[s].value,o=r[s+1].value;t.push({open:i,close:o})}return t}},To=(n,A,e)=>{if(!n)return"";const t=n[Math.min(A,n.length-1)];return t?e?t.open:t.close:""},Cp={name:"box-shadow",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>A.length===1&&tt(A[0],"none")?[]:vA(A).map(e=>{const t={color:255,offsetX:j,offsetY:j,blur:j,spread:j,inset:!1};let r=0;for(let s=0;s<e.length;s++){const i=e[s];tt(i,"inset")?t.inset=!0:YA(i)?(r===0?t.offsetX=i:r===1?t.offsetY=i:r===2?t.blur=i:t.spread=i,r++):t.color=XA.parse(n,i)}return t})},yp={name:"paint-order",initialValue:"normal",prefix:!1,type:1,parse:(n,A)=>{const e=[0,1,2],t=[];return A.filter(H).forEach(r=>{switch(r.value){case"stroke":t.push(1);break;case"fill":t.push(0);break;case"markers":t.push(2);break}}),e.forEach(r=>{t.indexOf(r)===-1&&t.push(r)}),t}},vp={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},bp={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:(n,A)=>EA(A)?A.number:0},Qp={name:"-webkit-line-clamp",initialValue:"none",prefix:!0,type:0,parse:(n,A)=>A.type===20&&A.value==="none"?0:A.type===17?Math.max(0,Math.floor(A.number)):0},xp={name:"objectFit",initialValue:"fill",prefix:!1,type:1,parse:(n,A)=>A.filter(H).reduce((e,t)=>e|Ep(t.value),0)},Ep=n=>{switch(n){case"contain":return 2;case"cover":return 4;case"none":return 8;case"scale-down":return 16}return 0},Up={name:"text-overflow",initialValue:"clip",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"ellipsis":return 1;case"clip":default:return 0}}};var cA;(function(n){n[n.AUTO=0]="AUTO",n[n.CRISP_EDGES=1]="CRISP_EDGES",n[n.PIXELATED=2]="PIXELATED",n[n.SMOOTH=3]="SMOOTH"})(cA||(cA={}));const Fp={name:"image-rendering",initialValue:"auto",prefix:!1,type:2,parse:(n,A)=>{switch(A.toLowerCase()){case"crisp-edges":case"-webkit-crisp-edges":case"-moz-crisp-edges":return cA.CRISP_EDGES;case"pixelated":case"-webkit-optimize-contrast":return cA.PIXELATED;case"smooth":case"high-quality":return cA.SMOOTH;case"auto":default:return cA.AUTO}}};class Ip{constructor(A,e){this.animationDuration=E(A,wp,e.animationDuration),this.backgroundClip=E(A,Ku,e.backgroundClip),this.backgroundColor=E(A,Nu,e.backgroundColor),this.backgroundImage=E(A,Wu,e.backgroundImage),this.backgroundOrigin=E(A,ju,e.backgroundOrigin),this.backgroundPosition=E(A,Zu,e.backgroundPosition),this.backgroundRepeat=E(A,qu,e.backgroundRepeat),this.backgroundSize=E(A,Ag,e.backgroundSize),this.borderTopColor=E(A,tg,e.borderTopColor),this.borderRightColor=E(A,ng,e.borderRightColor),this.borderBottomColor=E(A,rg,e.borderBottomColor),this.borderLeftColor=E(A,sg,e.borderLeftColor),this.borderTopLeftRadius=E(A,ig,e.borderTopLeftRadius),this.borderTopRightRadius=E(A,og,e.borderTopRightRadius),this.borderBottomRightRadius=E(A,ag,e.borderBottomRightRadius),this.borderBottomLeftRadius=E(A,lg,e.borderBottomLeftRadius),this.borderTopStyle=E(A,cg,e.borderTopStyle),this.borderRightStyle=E(A,dg,e.borderRightStyle),this.borderBottomStyle=E(A,hg,e.borderBottomStyle),this.borderLeftStyle=E(A,ug,e.borderLeftStyle),this.borderTopWidth=E(A,gg,e.borderTopWidth),this.borderRightWidth=E(A,pg,e.borderRightWidth),this.borderBottomWidth=E(A,Bg,e.borderBottomWidth),this.borderLeftWidth=E(A,fg,e.borderLeftWidth),this.boxShadow=E(A,Cp,e.boxShadow),this.clipPath=E(A,bg,e.clipPath),this.color=E(A,Qg,e.color),this.direction=E(A,xg,e.direction),this.display=E(A,Eg,e.display),this.float=E(A,Fg,e.cssFloat),this.fontFamily=E(A,cp,e.fontFamily),this.fontSize=E(A,dp,e.fontSize),this.fontStyle=E(A,gp,e.fontStyle),this.fontVariant=E(A,up,e.fontVariant),this.fontWeight=E(A,hp,e.fontWeight),this.letterSpacing=E(A,Ig,e.letterSpacing),this.lineBreak=E(A,Sg,e.lineBreak),this.lineHeight=E(A,Hg,e.lineHeight),this.listStyleImage=E(A,Lg,e.listStyleImage),this.listStylePosition=E(A,Tg,e.listStylePosition),this.listStyleType=E(A,Lr,e.listStyleType),this.marginTop=E(A,Mg,e.marginTop),this.marginRight=E(A,kg,e.marginRight),this.marginBottom=E(A,Dg,e.marginBottom),this.marginLeft=E(A,Pg,e.marginLeft),this.opacity=E(A,rp,e.opacity);const t=E(A,Kg,e.overflow);this.overflowX=t[0],this.overflowY=t[t.length>1?1:0],this.overflowWrap=E(A,Ng,e.overflowWrap),this.paddingTop=E(A,Og,e.paddingTop),this.paddingRight=E(A,Rg,e.paddingRight),this.paddingBottom=E(A,Gg,e.paddingBottom),this.paddingLeft=E(A,Vg,e.paddingLeft),this.paintOrder=E(A,yp,e.paintOrder),this.position=E(A,Yg,e.position),this.textAlign=E(A,_g,e.textAlign),this.textDecorationColor=E(A,sp,e.textDecorationColor??e.color),this.textDecorationLine=E(A,ip,e.textDecorationLine??e.textDecoration),this.textDecorationStyle=E(A,op,e.textDecorationStyle),this.textDecorationThickness=E(A,ap,e.textDecorationThickness),this.textUnderlineOffset=E(A,lp,e.textUnderlineOffset),this.textShadow=E(A,zg,e.textShadow),this.textTransform=E(A,Jg,e.textTransform),this.textOverflow=E(A,Up,e.textOverflow),this.transform=E(A,Xg,e.transform),this.transformOrigin=E(A,Zg,e.transformOrigin),this.rotate=E(A,qg,e.rotate),this.visibility=E(A,$g,e.visibility),this.webkitTextStrokeColor=E(A,vp,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=E(A,bp,e.webkitTextStrokeWidth),this.webkitLineClamp=E(A,Qp,e.webkitLineClamp),this.wordBreak=E(A,Ap,e.wordBreak),this.writingMode=E(A,tp,e.writingMode),this.zIndex=E(A,np,e.zIndex),this.objectFit=E(A,xp,e.objectFit),this.imageRendering=E(A,Fp,e.imageRendering)}isVisible(){return this.display>0&&this.opacity>0&&this.visibility===0}isTransparent(){return zA(this.backgroundColor)}isTransformed(){return this.transform!==null||this.rotate!==null}isPositioned(){return this.position!==0}isPositionedWithZIndex(){return this.isPositioned()&&!this.zIndex.auto}isFloating(){return this.float!==0}isInlineLevel(){return _(this.display,4)||_(this.display,33554432)||_(this.display,268435456)||_(this.display,536870912)||_(this.display,67108864)||_(this.display,134217728)}}class Sp{constructor(A,e){this.content=E(A,pp,e.content),this.quotes=E(A,mp,e.quotes)}}class Mo{constructor(A,e){this.counterIncrement=E(A,Bp,e.counterIncrement),this.counterReset=E(A,fp,e.counterReset)}}const E=(n,A,e)=>{const t=new Zi,r=e!==null&&typeof e<"u"?e.toString():A.initialValue;t.write(r);const s=new Ce(t.read());switch(A.type){case 2:const i=s.parseComponentValue();return A.parse(n,H(i)?i.value:A.initialValue);case 0:return A.parse(n,s.parseComponentValue());case 1:return A.parse(n,s.parseComponentValues());case 4:return s.parseComponentValue();case 3:switch(A.format){case"angle":return ye.parse(n,s.parseComponentValue());case"color":return XA.parse(n,s.parseComponentValue());case"image":return Ir.parse(n,s.parseComponentValue());case"length":const o=s.parseComponentValue();return YA(o)?o:j;case"length-percentage":const a=s.parseComponentValue();return N(a)?a:j;case"time":return Lo.parse(n,s.parseComponentValue())}break}},MA=n=>n.nodeType===Node.ELEMENT_NODE,ko=n=>n.nodeType===Node.TEXT_NODE,Qe=n=>typeof n.className=="object",it=n=>MA(n)&&typeof n.style<"u"&&!Qe(n),Hp=n=>n.tagName==="LI",Lp=n=>n.tagName==="OL",Do=n=>!Qe(n)&&n.tagName.indexOf("-")>0,Tp="data-html2canvas-debug",Mp=n=>{if(typeof n.getAttribute!="function")return 0;switch(n.getAttribute(Tp)){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}},Tr=(n,A)=>{const e=Mp(n);return e===1||A===e};class Po{static normalizeElement(A,e){const t={};return it(A)&&(e.animationDuration.some(r=>r>0)&&(t.animationDuration=A.style.animationDuration,A.style.animationDuration="0s"),e.transform!==null&&(t.transform=A.style.transform,A.style.transform="translate(0, 0)"),e.rotate!==null&&(t.rotate=A.style.rotate,A.style.rotate="0deg",t.transform===void 0&&(t.transform=A.style.transform,A.style.transform="translate(0, 0)"))),t}static restoreElement(A,e){it(A)&&(e.animationDuration!==void 0&&(A.style.animationDuration=e.animationDuration),e.transform!==void 0&&(A.style.transform=e.transform),e.rotate!==void 0&&(A.style.rotate=e.rotate))}}class SA{constructor(A,e,t={}){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,Tr(e,3),this.styles=new Ip(A,A.config.window.getComputedStyle(e,null)),t.normalizeDom!==!1&&it(e)&&(this.originalStyles=Po.normalizeElement(e,this.styles),this.originalElement=e),this.bounds=Mt(this.context,e),Tr(e,4)&&(this.flags|=16)}restore(){this.originalStyles&&this.originalElement&&(Po.restoreElement(this.originalElement,this.originalStyles),this.originalStyles=void 0,this.originalElement=void 0)}restoreTree(){this.restore();for(const A of this.elements)A.restoreTree()}}for(var kp="AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=",Ko="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=typeof Uint8Array>"u"?[]:new Uint8Array(256),fn=0;fn<Ko.length;fn++)ot[Ko.charCodeAt(fn)]=fn;for(var Dp=function(n){var A=n.length*.75,e=n.length,t,r=0,s,i,o,a;n[n.length-1]==="="&&(A--,n[n.length-2]==="="&&A--);var l=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(A):new Array(A),c=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t<e;t+=4)s=ot[n.charCodeAt(t)],i=ot[n.charCodeAt(t+1)],o=ot[n.charCodeAt(t+2)],a=ot[n.charCodeAt(t+3)],c[r++]=s<<2|i>>4,c[r++]=(i&15)<<4|o>>2,c[r++]=(o&3)<<6|a&63;return l},Pp=function(n){for(var A=n.length,e=[],t=0;t<A;t+=2)e.push(n[t+1]<<8|n[t]);return e},Kp=function(n){for(var A=n.length,e=[],t=0;t<A;t+=4)e.push(n[t+3]<<24|n[t+2]<<16|n[t+1]<<8|n[t]);return e},ae=5,Mr=11,kr=2,Np=Mr-ae,No=65536>>ae,Op=1<<ae,Dr=Op-1,Rp=1024>>ae,Gp=No+Rp,Vp=Gp,_p=32,Yp=Vp+_p,zp=65536>>Mr,Jp=1<<Np,Xp=Jp-1,Oo=function(n,A,e){return n.slice?n.slice(A,e):new Uint16Array(Array.prototype.slice.call(n,A,e))},Wp=function(n,A,e){return n.slice?n.slice(A,e):new Uint32Array(Array.prototype.slice.call(n,A,e))},jp=function(n,A){var e=Dp(n),t=Array.isArray(e)?Kp(e):new Uint32Array(e),r=Array.isArray(e)?Pp(e):new Uint16Array(e),s=24,i=Oo(r,s/2,t[4]/2),o=t[5]===2?Oo(r,(s+t[4])/2):Wp(t,Math.ceil((s+t[4])/4));return new Zp(t[0],t[1],t[2],t[3],i,o)},Zp=function(){function n(A,e,t,r,s,i){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=s,this.data=i}return n.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=this.index[A>>ae],e=(e<<kr)+(A&Dr),this.data[e];if(A<=65535)return e=this.index[No+(A-55296>>ae)],e=(e<<kr)+(A&Dr),this.data[e];if(A<this.highStart)return e=Yp-zp+(A>>Mr),e=this.index[e],e+=A>>ae&Xp,e=this.index[e],e=(e<<kr)+(A&Dr),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},n}(),Ro="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",qp=typeof Uint8Array>"u"?[]:new Uint8Array(256),wn=0;wn<Ro.length;wn++)qp[Ro.charCodeAt(wn)]=wn;var $p=1,Pr=2,Kr=3,Go=4,Vo=5,AB=7,_o=8,Nr=9,Or=10,Yo=11,zo=12,Jo=13,Xo=14,Rr=15,eB=function(n){for(var A=[],e=0,t=n.length;e<t;){var r=n.charCodeAt(e++);if(r>=55296&&r<=56319&&e<t){var s=n.charCodeAt(e++);(s&64512)===56320?A.push(((r&1023)<<10)+(s&1023)+65536):(A.push(r),e--)}else A.push(r)}return A},tB=function(){for(var n=[],A=0;A<arguments.length;A++)n[A]=arguments[A];if(String.fromCodePoint)return String.fromCodePoint.apply(String,n);var e=n.length;if(!e)return"";for(var t=[],r=-1,s="";++r<e;){var i=n[r];i<=65535?t.push(i):(i-=65536,t.push((i>>10)+55296,i%1024+56320)),(r+1===e||t.length>16384)&&(s+=String.fromCharCode.apply(String,t),t.length=0)}return s},nB=jp(kp),mA="×",Gr="÷",rB=function(n){return nB.get(n)},sB=function(n,A,e){var t=e-2,r=A[t],s=A[e-1],i=A[e];if(s===Pr&&i===Kr)return mA;if(s===Pr||s===Kr||s===Go||i===Pr||i===Kr||i===Go)return Gr;if(s===_o&&[_o,Nr,Yo,zo].indexOf(i)!==-1||(s===Yo||s===Nr)&&(i===Nr||i===Or)||(s===zo||s===Or)&&i===Or||i===Jo||i===Vo||i===AB||s===$p)return mA;if(s===Jo&&i===Xo){for(;r===Vo;)r=A[--t];if(r===Xo)return mA}if(s===Rr&&i===Rr){for(var o=0;r===Rr;)o++,r=A[--t];if(o%2===0)return mA}return Gr},iB=function(n){var A=eB(n),e=A.length,t=0,r=0,s=A.map(rB);return{next:function(){if(t>=e)return{done:!0,value:null};for(var i=mA;t<e&&(i=sB(A,s,++t))===mA;);if(i!==mA||t===e){var o=tB.apply(null,A.slice(r,t));return r=t,{value:o,done:!1}}return{done:!0,value:null}}}},oB=function(n){for(var A=iB(n),e=[],t;!(t=A.next()).done;)t.value&&e.push(t.value.slice());return e};const aB=n=>{if(n.createRange){const e=n.createRange();if(e.getBoundingClientRect){const t=n.createElement("boundtest");t.style.height="123px",t.style.display="block",n.body.appendChild(t),e.selectNode(t);const r=e.getBoundingClientRect(),s=Math.round(r.height);if(n.body.removeChild(t),s===123)return!0}}return!1},lB=n=>{const A=n.createElement("boundtest");A.style.width="50px",A.style.display="block",A.style.fontSize="12px",A.style.letterSpacing="0px",A.style.wordSpacing="0px",n.body.appendChild(A);const e=n.createRange();A.innerHTML=typeof"".repeat=="function"?"&#128104;".repeat(10):"";const t=A.firstChild,r=kt(t.data).map(a=>z(a));let s=0,i={};const o=r.every((a,l)=>{e.setStart(t,s),e.setEnd(t,s+a.length);const c=e.getBoundingClientRect();s+=a.length;const d=c.x>i.x||c.y>i.y;return i=c,l===0?!0:d});return n.body.removeChild(A),o},cB=()=>typeof new Image().crossOrigin<"u",dB=()=>typeof new XMLHttpRequest().responseType=="string",hB=n=>{const A=new Image,e=n.createElement("canvas"),t=e.getContext("2d");if(!t)return!1;A.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{t.drawImage(A,0,0),e.toDataURL()}catch{return!1}return!0},Wo=n=>n[0]===0&&n[1]===255&&n[2]===0&&n[3]===255,uB=n=>{const A=n.createElement("canvas"),e=100;A.width=e,A.height=e;const t=A.getContext("2d");if(!t)return Promise.reject(!1);t.fillStyle="rgb(0, 255, 0)",t.fillRect(0,0,e,e);const r=new Image,s=A.toDataURL();r.src=s;const i=Vr(e,e,0,0,r);return t.fillStyle="red",t.fillRect(0,0,e,e),jo(i).then(o=>{t.drawImage(o,0,0);const a=t.getImageData(0,0,e,e).data;t.fillStyle="red",t.fillRect(0,0,e,e);const l=n.createElement("div");return l.style.backgroundImage=`url(${s})`,l.style.height=`${e}px`,Wo(a)?jo(Vr(e,e,0,0,l)):Promise.reject(!1)}).then(o=>(t.drawImage(o,0,0),Wo(t.getImageData(0,0,e,e).data))).catch(()=>!1)},Vr=(n,A,e,t,r)=>{const s="http://www.w3.org/2000/svg",i=document.createElementNS(s,"svg"),o=document.createElementNS(s,"foreignObject");return i.setAttributeNS(null,"width",n.toString()),i.setAttributeNS(null,"height",A.toString()),o.setAttributeNS(null,"width","100%"),o.setAttributeNS(null,"height","100%"),o.setAttributeNS(null,"x",e.toString()),o.setAttributeNS(null,"y",t.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),i.appendChild(o),o.appendChild(r),i},jo=n=>new Promise((A,e)=>{const t=new Image;t.onload=()=>A(t),t.onerror=e,t.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(n))}`}),nA={get SUPPORT_RANGE_BOUNDS(){const n=aB(document);return Object.defineProperty(nA,"SUPPORT_RANGE_BOUNDS",{value:n}),n},get SUPPORT_WORD_BREAKING(){const n=nA.SUPPORT_RANGE_BOUNDS&&lB(document);return Object.defineProperty(nA,"SUPPORT_WORD_BREAKING",{value:n}),n},get SUPPORT_SVG_DRAWING(){const n=hB(document);return Object.defineProperty(nA,"SUPPORT_SVG_DRAWING",{value:n}),n},get SUPPORT_FOREIGNOBJECT_DRAWING(){const n=typeof Array.from=="function"&&typeof window.fetch=="function"?uB(document):Promise.resolve(!1);return Object.defineProperty(nA,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:n}),n},get SUPPORT_CORS_IMAGES(){const n=cB();return Object.defineProperty(nA,"SUPPORT_CORS_IMAGES",{value:n}),n},get SUPPORT_RESPONSE_TYPE(){const n=dB();return Object.defineProperty(nA,"SUPPORT_RESPONSE_TYPE",{value:n}),n},get SUPPORT_CORS_XHR(){const n="withCredentials"in new XMLHttpRequest;return Object.defineProperty(nA,"SUPPORT_CORS_XHR",{value:n}),n},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){const n=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(nA,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:n}),n}};class le{constructor(A,e){this.text=A,this.bounds=e}}const gB=(n,A,e,t)=>{const r=fB(A,e),s=[];let i=0;return r.forEach(o=>{if(e.textDecorationLine.length||o.trim().length>0)if(nA.SUPPORT_RANGE_BOUNDS){const a=Zo(t,i,o.length).getClientRects();if(a.length>1){const l=xe(o);let c=0;l.forEach(d=>{s.push(new le(d,rA.fromDOMRectList(n,Zo(t,c+i,d.length).getClientRects()))),c+=d.length})}else s.push(new le(o,rA.fromDOMRectList(n,a)))}else{const a=t.splitText(o.length);s.push(new le(o,pB(n,t))),t=a}else nA.SUPPORT_RANGE_BOUNDS||(t=t.splitText(o.length));i+=o.length}),s},pB=(n,A)=>{const e=A.ownerDocument;if(e){const t=e.createElement("html2canvaswrapper");t.appendChild(A.cloneNode(!0));const r=A.parentNode;if(r){r.replaceChild(t,A);const s=Mt(n,t);return t.firstChild&&r.replaceChild(t.firstChild,t),s}}return rA.EMPTY},Zo=(n,A,e)=>{const t=n.ownerDocument;if(!t)throw new Error("Node has no owner document");const r=t.createRange();return r.setStart(n,A),r.setEnd(n,A+e),r},xe=n=>{if(nA.SUPPORT_NATIVE_TEXT_SEGMENTATION){const A=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(A.segment(n)).map(e=>e.segment)}return oB(n)},BB=(n,A)=>{if(nA.SUPPORT_NATIVE_TEXT_SEGMENTATION){const e=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(e.segment(n)).map(t=>t.segment)}return mB(n,A)},fB=(n,A)=>IA(A.writingMode)||A.letterSpacing!==0?xe(n):BB(n,A),wB=[32,160,4961,65792,65793,4153,4241],mB=(n,A)=>{const e=kd(n,{lineBreak:A.lineBreak,wordBreak:A.overflowWrap==="break-word"?"break-word":A.wordBreak}),t=[];let r;for(;!(r=e.next()).done;)if(r.value){const s=r.value.slice(),i=kt(s);let o="";i.forEach(a=>{wB.indexOf(a)===-1?o+=z(a):(o.length&&t.push(o),t.push(z(a)),o="")}),o.length&&t.push(o)}return t};class CB{constructor(A,e,t){this.text=yB(e.data,t.textTransform),this.text.length!==e.data.length&&(e.data=this.text),this.textBounds=gB(A,this.text,t,e)}}const yB=(n,A)=>{switch(A){case 1:return n.toLowerCase();case 3:return n.replace(vB,bB);case 2:return n.toUpperCase();default:return n}},vB=/(^|\s|:|-|\(|\))([a-z])/g,bB=(n,A,e)=>n.length>0?A+e.toUpperCase():n;class qo extends SA{constructor(A,e){super(A,e),this.src=e.currentSrc||e.src,this.intrinsicWidth=e.naturalWidth,this.intrinsicHeight=e.naturalHeight,this.context.cache.addImage(this.src)}}class $o extends SA{constructor(A,e){super(A,e),this.canvas=e,this.intrinsicWidth=e.width,this.intrinsicHeight=e.height}}class Aa extends SA{constructor(A,e){super(A,e);const t=new XMLSerializer,r=Mt(A,e);e.setAttribute("width",`${r.width}px`),e.setAttribute("height",`${r.height}px`),this.svg=`data:image/svg+xml,${encodeURIComponent(t.serializeToString(e))}`,this.intrinsicWidth=e.width.baseVal.value,this.intrinsicHeight=e.height.baseVal.value,this.context.cache.addImage(this.svg)}}class ea extends SA{constructor(A,e){super(A,e),this.value=e.value}}class _r extends SA{constructor(A,e){super(A,e),this.start=e.start,this.reversed=typeof e.reversed=="boolean"&&e.reversed===!0}}const QB=[{type:15,flags:0,unit:"px",number:3}],xB=[{type:16,flags:0,number:50}],EB=n=>n.width>n.height?new rA(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width<n.height?new rA(n.left,n.top+(n.height-n.width)/2,n.width,n.width):n,UB=n=>{const A=n.type===IB?new Array(n.value.length+1).join("•"):n.value;return A.length===0?n.placeholder||"":A},FB=n=>n.value.length===0&&!!n.placeholder,mn="checkbox",Cn="radio",IB="password",ta=707406591,SB=1970632191;class at extends SA{constructor(A,e){switch(super(A,e),this.type=e.type.toLowerCase(),this.checked=e.checked,this.value=UB(e),this.isPlaceholder=FB(e),(this.type===mn||this.type===Cn)&&(this.styles.backgroundColor=3739148031,this.styles.borderTopColor=this.styles.borderRightColor=this.styles.borderBottomColor=this.styles.borderLeftColor=2779096575,this.styles.borderTopWidth=this.styles.borderRightWidth=this.styles.borderBottomWidth=this.styles.borderLeftWidth=1,this.styles.borderTopStyle=this.styles.borderRightStyle=this.styles.borderBottomStyle=this.styles.borderLeftStyle=1,this.styles.backgroundClip=[0],this.styles.backgroundOrigin=[0],this.bounds=EB(this.bounds)),this.type){case mn:this.styles.borderTopRightRadius=this.styles.borderTopLeftRadius=this.styles.borderBottomRightRadius=this.styles.borderBottomLeftRadius=QB;break;case Cn:this.styles.borderTopRightRadius=this.styles.borderTopLeftRadius=this.styles.borderBottomRightRadius=this.styles.borderBottomLeftRadius=xB;break}}}class na extends SA{constructor(A,e){super(A,e);const t=e.options[e.selectedIndex||0];this.value=t&&t.text||""}}class ra extends SA{constructor(A,e){super(A,e),this.value=e.value}}class sa extends SA{constructor(A,e,t){super(A,e),this.src=e.src,this.width=parseInt(e.width,10)||0,this.height=parseInt(e.height,10)||0,this.backgroundColor=this.styles.backgroundColor,this.parseTreeFn=t;try{if(e.contentWindow&&e.contentWindow.document&&e.contentWindow.document.documentElement&&this.parseTreeFn){this.tree=this.parseTreeFn(A,e.contentWindow.document.documentElement);const r=e.contentWindow.document.documentElement?ve(A,getComputedStyle(e.contentWindow.document.documentElement).backgroundColor):FA.TRANSPARENT,s=e.contentWindow.document.body?ve(A,getComputedStyle(e.contentWindow.document.body).backgroundColor):FA.TRANSPARENT;this.backgroundColor=zA(r)?zA(s)?this.styles.backgroundColor:s:r}}catch{}}}const HB=["OL","UL","MENU"],yn=(n,A,e,t)=>{for(let r=A.firstChild,s;r;r=s)if(s=r.nextSibling,ko(r)&&r.data.length>0)e.textNodes.push(new CB(n,r,e.styles));else if(MA(r))if(lt(r)&&r.assignedNodes)r.assignedNodes().forEach(i=>yn(n,i,e,t));else{const i=ia(n,r);i.styles.isVisible()&&(LB(r,i,t)?i.flags|=4:TB(i.styles)&&(i.flags|=2),HB.indexOf(r.tagName)!==-1&&(i.flags|=8),e.elements.push(i),r.slot,r.shadowRoot?yn(n,r.shadowRoot,i,t):!vn(r)&&!aa(r)&&!bn(r)&&yn(n,r,i,t))}},ia=(n,A)=>zr(A)?new qo(n,A):la(A)?new $o(n,A):aa(A)?new Aa(n,A):Hp(A)?new ea(n,A):Lp(A)?new _r(n,A):MB(A)?new at(n,A):bn(A)?new na(n,A):vn(A)?new ra(n,A):da(A)?new sa(n,A,oa):new SA(n,A),oa=(n,A)=>{const e=ia(n,A);return e.flags|=4,yn(n,A,e,e),e},LB=(n,A,e)=>A.styles.isPositionedWithZIndex()||A.styles.opacity<1||A.styles.isTransformed()||Yr(n)&&e.styles.isTransparent(),TB=n=>n.isPositioned()||n.isFloating()?!0:_(n.display,268435456)||_(n.display,33554432)||_(n.display,536870912)||_(n.display,134217728),MB=n=>n.tagName==="INPUT",kB=n=>n.tagName==="HTML",aa=n=>n.tagName==="svg",Yr=n=>n.tagName==="BODY",la=n=>n.tagName==="CANVAS",ca=n=>n.tagName==="VIDEO",zr=n=>n.tagName==="IMG",da=n=>n.tagName==="IFRAME",Jr=n=>n.tagName==="STYLE",ha=n=>n.tagName==="SCRIPT",vn=n=>n.tagName==="TEXTAREA",bn=n=>n.tagName==="SELECT",lt=n=>n.tagName==="SLOT";class DB{constructor(){this.counters={}}getCounterValue(A){const e=this.counters[A];return e&&e.length?e[e.length-1]:1}getCounterValues(A){const e=this.counters[A];return e||[]}pop(A){A.forEach(e=>this.counters[e].pop())}parse(A){const e=A.counterIncrement,t=A.counterReset;let r=!0;e!==null&&e.forEach(i=>{const o=this.counters[i.counter];o&&i.increment!==0&&(r=!1,o.length||o.push(1),o[Math.max(0,o.length-1)]+=i.increment)});const s=[];return r&&t.forEach(i=>{let o=this.counters[i.counter];s.push(i.counter),o||(o=this.counters[i.counter]=[]),o.push(i.reset)}),s}}const ua={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},ga={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},PB={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},KB={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Ee=(n,A,e,t,r,s)=>n<A||n>e?dt(n,r,s.length>0):t.integers.reduce((i,o,a)=>{for(;n>=o;)n-=o,i+=t.values[a];return i},"")+s,pa=(n,A,e,t)=>{let r="";do e||n--,r=t(n)+r,n/=A;while(n*A>=A);return r},J=(n,A,e,t,r)=>{const s=e-A+1;return(n<0?"-":"")+(pa(Math.abs(n),s,t,i=>z(Math.floor(i%s)+A))+r)},ce=(n,A,e=". ")=>{const t=A.length;return pa(Math.abs(n),t,!1,r=>A[Math.floor(r%t)])+e},Ue=1,WA=2,jA=4,ct=8,kA=(n,A,e,t,r,s)=>{if(n<-9999||n>9999)return dt(n,4,r.length>0);let i=Math.abs(n),o=r;if(i===0)return A[0]+o;for(let a=0;i>0&&a<=4;a++){const l=i%10;l===0&&_(s,Ue)&&o!==""?o=A[l]+o:l>1||l===1&&a===0||l===1&&a===1&&_(s,WA)||l===1&&a===1&&_(s,jA)&&n>100||l===1&&a>1&&_(s,ct)?o=A[l]+(a>0?e[a-1]:"")+o:l===1&&a>0&&(o=e[a-1]+o),i=Math.floor(i/10)}return(n<0?t:"")+o},Ba="十百千萬",fa="拾佰仟萬",wa="マイナス",Xr="마이너스",dt=(n,A,e)=>{const t=e?". ":"",r=e?"、":"",s=e?", ":"",i=e?" ":"";switch(A){case 0:return"•"+i;case 1:return"◦"+i;case 2:return"◾"+i;case 5:const o=J(n,48,57,!0,t);return o.length<4?`0${o}`:o;case 4:return ce(n,"〇一二三四五六七八九",r);case 6:return Ee(n,1,3999,ua,3,t).toLowerCase();case 7:return Ee(n,1,3999,ua,3,t);case 8:return J(n,945,969,!1,t);case 9:return J(n,97,122,!1,t);case 10:return J(n,65,90,!1,t);case 11:return J(n,1632,1641,!0,t);case 12:case 49:return Ee(n,1,9999,ga,3,t);case 35:return Ee(n,1,9999,ga,3,t).toLowerCase();case 13:return J(n,2534,2543,!0,t);case 14:case 30:return J(n,6112,6121,!0,t);case 15:return ce(n,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return ce(n,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return kA(n,"零一二三四五六七八九",Ba,"負",r,WA|jA|ct);case 47:return kA(n,"零壹貳參肆伍陸柒捌玖",fa,"負",r,Ue|WA|jA|ct);case 42:return kA(n,"零一二三四五六七八九",Ba,"负",r,WA|jA|ct);case 41:return kA(n,"零壹贰叁肆伍陆柒捌玖",fa,"负",r,Ue|WA|jA|ct);case 26:return kA(n,"〇一二三四五六七八九","十百千万",wa,r,0);case 25:return kA(n,"零壱弐参四伍六七八九","拾百千万",wa,r,Ue|WA|jA);case 31:return kA(n,"영일이삼사오육칠팔구","십백천만",Xr,s,Ue|WA|jA);case 33:return kA(n,"零一二三四五六七八九","十百千萬",Xr,s,0);case 32:return kA(n,"零壹貳參四五六七八九","拾百千",Xr,s,Ue|WA|jA);case 18:return J(n,2406,2415,!0,t);case 20:return Ee(n,1,19999,KB,3,t);case 21:return J(n,2790,2799,!0,t);case 22:return J(n,2662,2671,!0,t);case 52:return Ee(n,1,10999,PB,3,t);case 23:return ce(n,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return ce(n,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return J(n,3302,3311,!0,t);case 28:return ce(n,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return ce(n,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return J(n,3792,3801,!0,t);case 37:return J(n,6160,6169,!0,t);case 38:return J(n,4160,4169,!0,t);case 39:return J(n,2918,2927,!0,t);case 40:return J(n,1776,1785,!0,t);case 43:return J(n,3046,3055,!0,t);case 44:return J(n,3174,3183,!0,t);case 45:return J(n,3664,3673,!0,t);case 46:return J(n,3872,3881,!0,t);case 3:default:return J(n,48,57,!0,t)}},Wr="data-html2canvas-ignore",NB=n=>{let A=n;for(;A;){if(A.parentNode&&A.parentNode.host)return A.parentNode;const e=A.getRootNode();if(e&&e!==A.ownerDocument&&e.host)return e;A=A.parentNode}return null};class ma{constructor(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new DB,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");if(!this.options.iframeContainer){const r=NB(e);r&&(this.options.iframeContainer=r)}this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}toIFrame(A,e){var h,u;const t=OB(A,e,this.options.iframeContainer);if(!t.contentWindow)throw new Error("Unable to find iframe window");const r=A.defaultView.pageXOffset,s=A.defaultView.pageYOffset,i=t.contentWindow,o=i.document,a=VB(t).then(async()=>{this.scrolledElements.forEach(JB),i&&(i.scrollTo(e.left,e.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(i.scrollY!==e.top||i.scrollX!==e.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(i.scrollX-e.left,i.scrollY-e.top,0,0)));const g=this.options.onclone,B=this.clonedReferenceElement;if(typeof B>"u")throw new Error(`Error finding the ${this.referenceElement.nodeName} in the cloned document`);return o.fonts&&o.fonts.ready&&await o.fonts.ready,/(AppleWebKit)/g.test(navigator.userAgent)&&await GB(o),typeof g=="function"?Promise.resolve().then(()=>g(o,B)).then(()=>t):t}),l=A.baseURI;o.open();const c=YB(document.doctype)+"<html></html>";try{const g=(h=this.referenceElement.ownerDocument)==null?void 0:h.defaultView,B=g&&g.trustedTypes;let f=(u=B==null?void 0:B.getPolicy)==null?void 0:u.call(B,"html2canvas-pro");!f&&B&&(f=B.createPolicy("html2canvas-pro",{createHTML:m=>m})),f?o.write(f.createHTML(c)):o.write(c)}catch{o.write(c)}zB(this.referenceElement.ownerDocument,r,s),o.close();const d=o.adoptNode(this.documentElement);return qB(d,l),o.replaceChild(d,o.documentElement),a}createElementClone(A){if(Tr(A,2),la(A))return this.createCanvasClone(A);if(ca(A))return this.createVideoClone(A);if(Jr(A))return this.createStyleClone(A);const e=A.cloneNode(!1);return zr(e)&&(zr(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),e.loading==="lazy"&&(e.loading="eager")),Do(e)&&!Qe(e)?this.createCustomElementClone(e):e}createCustomElementClone(A){const e=document.createElement("div");if(e.className=A.className,jr(A.style,e),A.shadowRoot)try{e.attachShadow({mode:"open"})}catch(t){this.context.logger.error("Failed to attach shadow root to custom element clone:",t)}return e}createStyleClone(A){try{const t=A.sheet;if(t&&t.cssRules){const r=[].slice.call(t.cssRules,0).reduce((i,o)=>o&&typeof o.cssText=="string"?i+o.cssText:i,""),s=A.cloneNode(!1);return s.textContent=r,this.options.cspNonce&&(s.nonce=this.options.cspNonce),s}}catch(t){if(this.context.logger.error("Unable to access cssRules property",t),t.name!=="SecurityError")throw t}const e=A.cloneNode(!1);return this.options.cspNonce&&(e.nonce=this.options.cspNonce),e}createCanvasClone(A){if(this.options.inlineImages&&A.ownerDocument){const t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}const e=A.cloneNode(!1);try{e.width=A.width,e.height=A.height;const t=A.getContext("2d"),r=e.getContext("2d",{willReadFrequently:!0});if(r)if(!this.options.allowTaint&&t)r.putImageData(t.getImageData(0,0,A.width,A.height),0,0);else{const s=A.getContext("webgl2")??A.getContext("webgl");if(s){const i=s.getContextAttributes();(i==null?void 0:i.preserveDrawingBuffer)===!1&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}r.drawImage(A,0,0)}return e}catch{this.context.logger.info("Unable to clone canvas as it is tainted",A)}return e}createVideoClone(A){const e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;const t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch{this.context.logger.info("Unable to clone video as it is tainted",A)}const r=A.ownerDocument.createElement("canvas");return r.width=A.offsetWidth,r.height=A.offsetHeight,r}appendChildNode(A,e,t){(!MA(e)||!ha(e)&&!e.hasAttribute(Wr)&&(typeof this.options.ignoreElements!="function"||!this.options.ignoreElements(e)))&&(!this.options.copyStyles||!MA(e)||!Jr(e))&&A.appendChild(this.cloneNode(e,t))}shouldCloneChild(A){return!MA(A)||!ha(A)&&!A.hasAttribute(Wr)&&(typeof this.options.ignoreElements!="function"||!this.options.ignoreElements(A))}shouldCloneStyleElement(A){return!this.options.copyStyles||!MA(A)||!Jr(A)}safeAppendClonedChild(A,e,t){this.shouldCloneChild(e)&&this.shouldCloneStyleElement(e)&&A.appendChild(this.cloneNode(e,t))}cloneAssignedNodes(A,e,t){A.forEach(r=>{this.safeAppendClonedChild(e,r,t)})}cloneSlotFallbackContent(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)this.safeAppendClonedChild(e,r,t)}cloneSlotElement(A,e,t){if(!lt(A))return;const r=A;if(typeof r.assignedNodes!="function"){this.context.logger.warn("HTMLSlotElement.assignedNodes is not available",A),this.cloneSlotFallbackContent(A,e,t);return}const s=r.assignedNodes();if(!s||!Array.isArray(s)){this.context.logger.warn("assignedNodes() did not return a valid array",A),this.cloneSlotFallbackContent(A,e,t);return}s.length>0?this.cloneAssignedNodes(s,e,t):this.cloneSlotFallbackContent(A,e,t)}cloneShadowDOMChildren(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)MA(r)&&lt(r)?this.cloneSlotElement(r,e,t):this.safeAppendClonedChild(e,r,t)}cloneLightDOMChildren(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)this.appendChildNode(e,r,t)}cloneSlotElementAsLightDOM(A,e,t){if(!lt(A))return;const r=A;if(typeof r.assignedNodes!="function"){for(let i=A.firstChild;i;i=i.nextSibling)this.appendChildNode(e,i,t);return}const s=r.assignedNodes();if(s&&Array.isArray(s)&&s.length>0)s.forEach(i=>this.appendChildNode(e,i,t));else for(let i=A.firstChild;i;i=i.nextSibling)this.appendChildNode(e,i,t)}cloneShadowDOMAsLightDOM(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)MA(r)&&lt(r)?this.cloneSlotElementAsLightDOM(r,e,t):this.appendChildNode(e,r,t)}cloneChildNodes(A,e,t){A.shadowRoot&&e.shadowRoot?(this.cloneShadowDOMChildren(A.shadowRoot,e.shadowRoot,t),this.cloneLightDOMChildren(A,e,t)):A.shadowRoot&&!e.shadowRoot?this.cloneShadowDOMAsLightDOM(A.shadowRoot,e,t):this.cloneLightDOMChildren(A,e,t)}cloneNode(A,e){if(ko(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);const t=A.ownerDocument.defaultView;if(t&&MA(A)&&(it(A)||Qe(A))){const r=this.createElementClone(A);r.style.transitionProperty="none";const s=t.getComputedStyle(A),i=t.getComputedStyle(A,":before"),o=t.getComputedStyle(A,":after");this.referenceElement===A&&it(r)&&(this.clonedReferenceElement=r),Yr(r)&&jB(r,this.options.cspNonce);const a=this.counters.parse(new Mo(this.context,s)),l=this.resolvePseudoContent(A,r,i,ht.BEFORE);Do(A)&&(e=!0),ca(A)||this.cloneChildNodes(A,r,e),l&&r.insertBefore(l,r.firstChild);const c=this.resolvePseudoContent(A,r,o,ht.AFTER);return c&&r.appendChild(c),this.counters.pop(a),(s&&(this.options.copyStyles||Qe(A))&&!da(A)||e)&&jr(s,r),(A.scrollTop!==0||A.scrollLeft!==0)&&this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(vn(A)||bn(A))&&(vn(r)||bn(r))&&(r.value=A.value),r}return A.cloneNode(!1)}resolvePseudoContent(A,e,t,r){if(!t)return;const s=t.content,i=e.ownerDocument;if(!i||!s||s==="none"||s==="-moz-alt-content"||t.display==="none")return;this.counters.parse(new Mo(this.context,t));const o=new Sp(this.context,t),a=i.createElement("html2canvaspseudoelement");jr(t,a),o.content.forEach(c=>{if(c.type===0)a.appendChild(i.createTextNode(c.value));else if(c.type===22){const d=i.createElement("img");d.src=c.value,d.style.opacity="1",a.appendChild(d)}else if(c.type===18){if(c.name==="attr"){const d=c.values.filter(H);d.length&&a.appendChild(i.createTextNode(A.getAttribute(d[0].value)||""))}else if(c.name==="counter"){const[d,h]=c.values.filter(tA);if(d&&H(d)){const u=this.counters.getCounterValue(d.value),g=h&&H(h)?Lr.parse(this.context,h.value):3;a.appendChild(i.createTextNode(dt(u,g,!1)))}}else if(c.name==="counters"){const[d,h,u]=c.values.filter(tA);if(d&&H(d)){const g=this.counters.getCounterValues(d.value),B=u&&H(u)?Lr.parse(this.context,u.value):3,f=h&&h.type===0?h.value:"",m=g.map(w=>dt(w,B,!1)).join(f);a.appendChild(i.createTextNode(m))}}}else if(c.type===20)switch(c.value){case"open-quote":a.appendChild(i.createTextNode(To(o.quotes,this.quoteDepth++,!0)));break;case"close-quote":a.appendChild(i.createTextNode(To(o.quotes,--this.quoteDepth,!1)));break;default:a.appendChild(i.createTextNode(c.value))}}),a.className=`${Zr} ${qr}`;const l=r===ht.BEFORE?` ${Zr}`:` ${qr}`;return Qe(e)?e.className.baseValue+=l:e.className+=l,a}static destroy(A){return A.parentNode?(A.parentNode.removeChild(A),!0):!1}}var ht;(function(n){n[n.BEFORE=0]="BEFORE",n[n.AFTER=1]="AFTER"})(ht||(ht={}));const OB=(n,A,e)=>{const t=n.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=A.width.toString(),t.height=A.height.toString(),t.scrolling="no",t.setAttribute(Wr,"true"),(e||n.body).appendChild(t),t},RB=n=>new Promise(A=>{if(n.complete){A();return}if(!n.src){A();return}n.onload=A,n.onerror=A}),GB=n=>Promise.all([].slice.call(n.images,0).map(RB)),VB=n=>new Promise((A,e)=>{const t=n.contentWindow;if(!t)return e("No window assigned for iframe");const r=t.document;t.onload=n.onload=()=>{t.onload=n.onload=null;const s=setInterval(()=>{r.body.childNodes.length>0&&r.readyState==="complete"&&(clearInterval(s),A(n))},50)}}),_B=["all","d","content"],jr=(n,A)=>{for(let e=n.length-1;e>=0;e--){const t=n.item(e);_B.indexOf(t)===-1&&!t.startsWith("--")&&A.style.setProperty(t,n.getPropertyValue(t))}return A},YB=n=>{let A="";return n&&(A+="<!DOCTYPE ",n.name&&(A+=n.name),n.internalSubset&&(A+=" "+n.internalSubset.replace(/"/g,"&quot;").replace(/>/g,"&gt;")),n.publicId?(A+=' PUBLIC "'+n.publicId.replace(/"/g,"&quot;")+'"',n.systemId&&(A+=' "'+n.systemId.replace(/"/g,"&quot;")+'"')):n.systemId&&(A+=' SYSTEM "'+n.systemId.replace(/"/g,"&quot;")+'"'),A+=">"),A},zB=(n,A,e)=>{n&&n.defaultView&&(A!==n.defaultView.pageXOffset||e!==n.defaultView.pageYOffset)&&n.defaultView.scrollTo(A,e)},JB=([n,A,e])=>{n.scrollLeft=A,n.scrollTop=e},XB=":before",WB=":after",Zr="___html2canvas___pseudoelement_before",qr="___html2canvas___pseudoelement_after",Ca=`{
3026
+ `;const C=v.querySelector(".session-selector-container"),y=v.querySelector(".clean-card-welcome"),Q=v.querySelector(".clean-card-btn"),E=L=>{v.style.display="none",this.create_call(L)},F=()=>{w=!0,v.classList.add("has-session-choice"),y&&(y.style.display=""),C&&(C.style.display="flex"),Q&&(Q.style.display="none")},I=v.querySelectorAll(".session-option");I.forEach(L=>{L.addEventListener("click",O=>{if(O.stopPropagation(),!w)return;I.forEach(M=>M.classList.remove("active")),L.classList.add("active");const K=L.getAttribute("data-behavior");E(K)})}),Q==null||Q.addEventListener("click",L=>{if(L.stopPropagation(),m&&!w){F();return}m||E("continue")}),this.root.appendChild(v),this.cleanCardLauncher=v}else this.widgetIcon==="human_presence"?(this.humanPresenceLauncher=new vl(()=>this.openPanel(),{greeting:((h=this.iconConfig)==null?void 0:h.greeting)||"Hi there!",subtitle:((u=this.iconConfig)==null?void 0:u.subtitle)||"I'm here to help"}),this.root.appendChild(this.humanPresenceLauncher.getElement())):this.root.appendChild(this.floatingButton.getElement());this.root.appendChild(this.panel.getElement()),this.setupPanelContent(),this.chatWelcomeMessage&&!this.widgetMode.includes("chat")&&this.handleWelcomePayload(this.chatWelcomeMessage),this.initSessionManager()?this.widgetMode.includes("chat")&&this.initializeChatSession():this.showTabConflictBanner("conflict"),this.updateLauncherVisibility()}getFabIcon(){return this.widgetIcon&&yt[this.widgetIcon]?yt[this.widgetIcon]:this.widgetMode.includes("chat")?G.chat:G.voice_orb}getPanelTitle(){return"Assistant"}getPosStyle(){const e={"bottom-right":"bottom: 24px; right: 24px;","bottom-left":"bottom: 24px; left: 24px;","top-right":"top: 24px; right: 24px;","top-left":"top: 24px; left: 24px;"};return e[this.position]||e["bottom-right"]}setupPanelContent(){var t,r;const e=(s,i)=>{var d,c;const o=(c=(d=this.currentView)==null?void 0:d.getChatWindow)==null?void 0:c.call(d);o&&o.addCallRecord(s,i);const a=`vanira_calls_${this.widgetId||this.agentId}`,l=JSON.parse(localStorage.getItem(a)||"[]");l.push({durationMs:s,startedAt:i}),l.length>50&&l.splice(0,l.length-50),localStorage.setItem(a,JSON.stringify(l))};switch(this.widgetMode){case"chat_only":this.currentView=new Ql(s=>this.handleChatSend(s));break;case"chat_voice":this.currentView=new xl(s=>this.handleChatSend(s),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"avatar_only":this.currentView=new El(()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"chat_avatar":this.currentView=new Ul(s=>this.handleChatSend(s),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"voice_only":default:this.currentView=new bl(s=>this.create_call(s),()=>this.end_call(),this.primaryColor,this.secondaryColor,e,this.agentId);break}if(this.currentView&&this.panel){this.panel.setContent(this.currentView.getElement()),this.widgetMode==="voice_only"?this.panel.getElement().classList.add("voice-only-panel"):this.panel.getElement().classList.remove("voice-only-panel");const s=(r=(t=this.currentView).getChatWindow)==null?void 0:r.call(t);s&&s.setResolveCallback(()=>this.resolveActiveConversation())}this.wireMicMuteControls()}async handleChatSend(e){var r,s,i,o,a;if(!e)return;this.sessionActive||((r=this.sessionManager)==null||r.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&await this.initializeChatSession(!1));const t=(i=(s=this.currentView)==null?void 0:s.getChatWindow)==null?void 0:i.call(s);if(t){this.chatId&&!this.eventSource&&(this.eventSource=KA.listenForAdminReplies(this.chatId,this.prospectId,l=>{var d,c,h;(c=(d=this.currentView)==null?void 0:d.getChatWindow)==null||c.call(d).addMessage("assistant",l),(h=this.sessionManager)==null||h.pushMessage("assistant",l),this.playMessageSound("receive")})),t.addMessage("user",e),(o=this.sessionManager)==null||o.pushMessage("user",e),t.setTyping(!0),(a=this.sessionManager)==null||a.pushMessage("assistant","");try{let l=!1;await this.chatAdapter.sendMessage(e,this.agentId,this.prospectId,this.chatId,d=>{var c;l||(this.playMessageSound("receive"),l=!0),t.setTyping(!1),(d==null?void 0:d.type)==="button_list"&&((c=d.data)!=null&&c.buttons)&&(t.addButtons(d.data.buttons),this.welcomeChipsData=d.data.buttons,this.updateWelcomeChipsVisibility())},d=>{var c;l||(this.playMessageSound("receive"),l=!0),t.setTyping(!1),t.updateLastAssistantMessage(d),(c=this.sessionManager)==null||c.updateLastAssistantMessage(d)},(d,c)=>{var h;d&&(this.chatId=d),c&&(this.conversationId=c),(d||c)&&((h=this.sessionManager)==null||h.saveIds(this.prospectId,this.chatId,this.conversationId))},this.widgetId||void 0,this.pkKey||void 0)}catch{t.setTyping(!1),t.addMessage("assistant","Error sending message.")}}}minimizePanel(){this.closePanel()}handlePanelClose(){if(this.callActive){this.minimizePanel();return}this.closePanel()}updateLauncherVisibility(){var s,i,o;const e=this.callActive&&!this.isPanelOpen,t=!this.isPanelOpen&&!e;this.voiceChatPill&&(e?(this.callStatus==="connected"?(this.pillActivityState=this.pillActivityState==="speaking"?"speaking":"listening",this.voiceChatPill.setActivity(this.pillActivityState),this.startPillActivityLoop()):this.voiceChatPill.setStatus(this.callStatus),this.voiceChatPill.show()):(this.voiceChatPill.hide(),this.isPanelOpen&&this.callStatus==="connected"&&((i=(s=this.currentView)==null?void 0:s.setActivity)==null||i.call(s,this.pillActivityState==="speaking"?"speaking":"listening")))),this.callActive&&this.callStatus==="connected"&&this.startPillActivityLoop();const r=(o=this.floatingButton)==null?void 0:o.getElement();if(r){const a=this.isPanelOpen||e||this.widgetIcon==="clean_assistant"||this.widgetIcon==="human_presence";r.classList.toggle("hidden-launcher",a)}this.cleanCardLauncher&&(this.cleanCardLauncher.style.display=t&&this.widgetIcon==="clean_assistant"?"":"none"),this.humanPresenceLauncher&&(t&&this.widgetIcon==="human_presence"?this.humanPresenceLauncher.show():this.humanPresenceLauncher.hide()),this.updateWelcomeChipsVisibility()}togglePanel(){this.isPanelOpen?this.closePanel():this.openPanel()}openPanel(){var r,s,i,o;this.isPanelOpen=!0,this.updateWelcomeChipsVisibility();const e=(r=this.floatingButton)==null?void 0:r.getElement().getBoundingClientRect();if(e&&e.width>0){const a=e.top>window.innerHeight/2;(s=this.panel)==null||s.open({left:`${Math.max(20,Math.min(e.left-170,window.innerWidth-420))}px`,bottom:a?`${window.innerHeight-e.top+20}px`:void 0,top:a?void 0:`${e.top+80}px`})}else(i=this.panel)==null||i.open({bottom:"90px",right:"20px",left:"auto",top:"auto"});(o=this.root)!=null&&o.host&&this.root.host.classList.add("vanira-panel-open"),this.updateLauncherVisibility()}closePanel(){var e,t;this.isPanelOpen=!1,this.updateWelcomeChipsVisibility(),(e=this.panel)==null||e.close(),(t=this.root)!=null&&t.host&&this.root.host.classList.remove("vanira-panel-open"),this.updateLauncherVisibility()}updateWelcomeChipsVisibility(){if(!this.floatingWelcomeChips)return;!this.isPanelOpen&&!this.callActive&&this.welcomeChipsData.length>0?(this.floatingWelcomeChips.setChips(this.welcomeChipsData),this.floatingWelcomeChips.getElement().style.display="flex"):this.floatingWelcomeChips.getElement().style.display="none"}handleFloatingChipClick(e){this.openPanel(),this.handleChatSend(e)}async resolveActiveConversation(){var t,r,s;if(this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.conversationId)try{await KA.resolveConversation(this.conversationId)}catch{}(t=this.sessionManager)==null||t.clearChatKeepProspect(),this.conversationId=null,this.chatId=null;const e=(s=(r=this.currentView)==null?void 0:r.getChatWindow)==null?void 0:s.call(r);e&&e.clearMessages(),this.chatInitialized=!1,await this.initializeChatSession(!0)}};p(Te,"audioContext",null);let or=Te;class od{static getProvider(A){return new or(A)}}class Fi extends HTMLElement{constructor(){super();p(this,"shadow");p(this,"provider",null);p(this,"widgetId","");p(this,"agentId","");p(this,"pkKey","");p(this,"serverUrl","https://inboxapi.vanira.io");p(this,"position","bottom-right");p(this,"primaryColor","");p(this,"secondaryColor","");p(this,"gradient",null);p(this,"positionType","fixed");p(this,"widgetIcon",null);this.shadow=this.attachShadow({mode:"open"})}static get observedAttributes(){return["widget-id","agent-id","position","primary-color","secondary-color","server-url","gradient","position-type","pk-key","icon","widget-icon"]}connectedCallback(){this.readAttributes(),this.provider=od.getProvider(this.buildInitialConfig()),!!(this.widgetId&&!this.agentId)?this.initializeExpandedConfig():this.provider&&this.provider.ui_renderer(this.shadow)}readAttributes(){this.widgetId=this.getAttribute("widget-id")||"",this.agentId=this.getAttribute("agent-id")||"",this.pkKey=this.getAttribute("pk-key")||"",this.serverUrl=this.getAttribute("server-url")||"https://inboxapi.vanira.io",this.position=this.getAttribute("position")||"bottom-right",this.primaryColor=this.getAttribute("primary-color")||"",this.secondaryColor=this.getAttribute("secondary-color")||"",this.gradient=this.getAttribute("gradient"),this.positionType=this.getAttribute("position-type")||"fixed",this.widgetIcon=this.getAttribute("icon")||this.getAttribute("widget-icon")}buildInitialConfig(){const e={widgetId:this.widgetId,agentId:this.agentId,pkKey:this.pkKey,serverUrl:this.serverUrl,position:this.position,positionType:this.positionType,gradient:this.gradient};return this.hasAttribute("primary-color")&&(e.primaryColor=this.primaryColor,e.primary_color=this.primaryColor),this.hasAttribute("secondary-color")&&(e.secondaryColor=this.secondaryColor,e.secondary_color=this.secondaryColor),(this.hasAttribute("icon")||this.hasAttribute("widget-icon"))&&(e.icon=this.widgetIcon,e.widgetIcon=this.widgetIcon),e}buildMergedConfig(e){return{...e,...this.hasAttribute("primary-color")?{primary_color:this.primaryColor,primaryColor:this.primaryColor}:{},...this.hasAttribute("secondary-color")?{secondary_color:this.secondaryColor,secondaryColor:this.secondaryColor}:{},...this.hasAttribute("icon")||this.hasAttribute("widget-icon")?{icon:this.widgetIcon,widgetIcon:this.widgetIcon}:{}}}async initializeExpandedConfig(){try{const e=await de.fetchWidgetConfig(this.widgetId,this.pkKey||void 0);this.provider&&await this.provider.initialize(this.buildMergedConfig(e),this.shadow)}catch{this.provider&&await this.provider.initialize(this.buildInitialConfig(),this.shadow)}}isCallActive(){var e;return((e=this.provider)==null?void 0:e.isCallActive())??!1}updateContext(e){var r;const t=((r=this.provider)==null?void 0:r.updateContext(e))??!1;return t&&this.dispatchHostEvent("vaniraai:context_updated",{context:e}),t}triggerInterrupt(e,t={}){var s;const r=((s=this.provider)==null?void 0:s.triggerInterrupt(e,t))??!1;return r&&this.dispatchHostEvent("vaniraai:action_triggered",{actionName:e,data:t}),r}sendToolResult(e,t){var s;return((s=this.provider)==null?void 0:s.sendToolResult(e,t))??!1}dispatchHostEvent(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}}if(customElements.get("vanira-convai")||customElements.define("vanira-convai",Fi),typeof window<"u"){window.VaniraConvAI=Fi,window.VaniraClient=he,window.VaniraAI=he,window.WebRTCClient=he;try{new URLSearchParams(window.location.search).has("vanira_debug")&&localStorage.setItem("vanira:debug","1"),Cc(),localStorage.getItem("vanira:debug")==="1"&&BA("SDK","Debug logging on — inspect window.__VANIRA_DEBUG_LOG__")}catch{}}const $=document.currentScript;if($){const n=$.getAttribute("data-widget-id")||$.getAttribute("widget-id"),A=$.getAttribute("data-agent-id")||$.getAttribute("agent-id");if(n||A){const e=$.getAttribute("data-position")||$.getAttribute("position"),t=$.getAttribute("data-primary-color")||$.getAttribute("primary-color"),r=$.getAttribute("data-secondary-color")||$.getAttribute("secondary-color"),s=$.getAttribute("data-gradient")||$.getAttribute("gradient"),i=$.getAttribute("data-server-url")||$.getAttribute("server-url"),o=$.getAttribute("data-pk-key")||$.getAttribute("pk-key"),a=$.getAttribute("icon")||$.getAttribute("widget-icon"),l=document.createElement("vanira-convai");n&&l.setAttribute("widget-id",n),A&&l.setAttribute("agent-id",A),o&&l.setAttribute("pk-key",o),a&&l.setAttribute("icon",a),e&&l.setAttribute("position",e),t&&l.setAttribute("primary-color",t),r&&l.setAttribute("secondary-color",r),s&&l.setAttribute("gradient",s),i&&l.setAttribute("server-url",i),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>document.body.appendChild(l)):document.body.appendChild(l),l.addEventListener("vaniraai:tool_call",d=>{const c=d.detail,h=c==null?void 0:c.tool_call_id;typeof window.__vaniraai_tool_handler=="function"&&window.__vaniraai_tool_handler(c,{sendResult:u=>{h&&l.sendToolResult(h,u)}})})}}class rA{constructor(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}add(A,e,t,r){return new rA(this.left+A,this.top+e,this.width+t,this.height+r)}static fromClientRect(A,e){return new rA(e.left+A.windowBounds.left,e.top+A.windowBounds.top,e.width,e.height)}static fromDOMRectList(A,e){const t=Array.from(e);let r=t.find(s=>s.width!==0);return r||(r=t.find(s=>s.height!==0)),!r&&t.length>0&&(r=t[0]),r?new rA(r.left+A.windowBounds.left,r.top+A.windowBounds.top,r.width,r.height):rA.EMPTY}}rA.EMPTY=new rA(0,0,0,0);const Dt=(n,A)=>rA.fromClientRect(n,A.getBoundingClientRect()),ad=n=>{const A=n.body,e=n.documentElement;if(!A||!e)throw new Error("Unable to get document size");const t=Math.max(Math.max(A.scrollWidth,e.scrollWidth),Math.max(A.offsetWidth,e.offsetWidth),Math.max(A.clientWidth,e.clientWidth)),r=Math.max(Math.max(A.scrollHeight,e.scrollHeight),Math.max(A.offsetHeight,e.offsetHeight),Math.max(A.clientHeight,e.clientHeight));return new rA(0,0,t,r)};for(var Pt=function(n){for(var A=[],e=0,t=n.length;e<t;){var r=n.charCodeAt(e++);if(r>=55296&&r<=56319&&e<t){var s=n.charCodeAt(e++);(s&64512)===56320?A.push(((r&1023)<<10)+(s&1023)+65536):(A.push(r),e--)}else A.push(r)}return A},z=function(){for(var n=[],A=0;A<arguments.length;A++)n[A]=arguments[A];if(String.fromCodePoint)return String.fromCodePoint.apply(String,n);var e=n.length;if(!e)return"";for(var t=[],r=-1,s="";++r<e;){var i=n[r];i<=65535?t.push(i):(i-=65536,t.push((i>>10)+55296,i%1024+56320)),(r+1===e||t.length>16384)&&(s+=String.fromCharCode.apply(String,t),t.length=0)}return s},Ii="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ld=typeof Uint8Array>"u"?[]:new Uint8Array(256),Kt=0;Kt<Ii.length;Kt++)ld[Ii.charCodeAt(Kt)]=Kt;for(var Si="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ye=typeof Uint8Array>"u"?[]:new Uint8Array(256),Nt=0;Nt<Si.length;Nt++)Ye[Si.charCodeAt(Nt)]=Nt;for(var cd=function(n){var A=n.length*.75,e=n.length,t,r=0,s,i,o,a;n[n.length-1]==="="&&(A--,n[n.length-2]==="="&&A--);var l=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(A):new Array(A),d=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t<e;t+=4)s=Ye[n.charCodeAt(t)],i=Ye[n.charCodeAt(t+1)],o=Ye[n.charCodeAt(t+2)],a=Ye[n.charCodeAt(t+3)],d[r++]=s<<2|i>>4,d[r++]=(i&15)<<4|o>>2,d[r++]=(o&3)<<6|a&63;return l},dd=function(n){for(var A=n.length,e=[],t=0;t<A;t+=2)e.push(n[t+1]<<8|n[t]);return e},hd=function(n){for(var A=n.length,e=[],t=0;t<A;t+=4)e.push(n[t+3]<<24|n[t+2]<<16|n[t+1]<<8|n[t]);return e},te=5,ar=11,lr=2,ud=ar-te,Hi=65536>>te,gd=1<<te,cr=gd-1,pd=1024>>te,Bd=Hi+pd,fd=Bd,wd=32,md=fd+wd,Cd=65536>>ar,yd=1<<ud,vd=yd-1,Li=function(n,A,e){return n.slice?n.slice(A,e):new Uint16Array(Array.prototype.slice.call(n,A,e))},bd=function(n,A,e){return n.slice?n.slice(A,e):new Uint32Array(Array.prototype.slice.call(n,A,e))},Qd=function(n,A){var e=cd(n),t=Array.isArray(e)?hd(e):new Uint32Array(e),r=Array.isArray(e)?dd(e):new Uint16Array(e),s=24,i=Li(r,s/2,t[4]/2),o=t[5]===2?Li(r,(s+t[4])/2):bd(t,Math.ceil((s+t[4])/4));return new xd(t[0],t[1],t[2],t[3],i,o)},xd=function(){function n(A,e,t,r,s,i){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=s,this.data=i}return n.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=this.index[A>>te],e=(e<<lr)+(A&cr),this.data[e];if(A<=65535)return e=this.index[Hi+(A-55296>>te)],e=(e<<lr)+(A&cr),this.data[e];if(A<this.highStart)return e=md-Cd+(A>>ar),e=this.index[e],e+=A>>te&vd,e=this.index[e],e=(e<<lr)+(A&cr),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},n}(),Ti="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ed=typeof Uint8Array>"u"?[]:new Uint8Array(256),Ot=0;Ot<Ti.length;Ot++)Ed[Ti.charCodeAt(Ot)]=Ot;var Ud="KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==",Mi=50,Fd=1,ki=2,Di=3,Id=4,Sd=5,Pi=7,Ki=8,Ni=9,GA=10,dr=11,Oi=12,hr=13,Hd=14,ze=15,ur=16,Rt=17,Je=18,Ld=19,Ri=20,gr=21,Xe=22,pr=23,Be=24,uA=25,We=26,je=27,fe=28,Td=29,ne=30,Md=31,Gt=32,Vt=33,Br=34,fr=35,wr=36,Ze=37,mr=38,_t=39,Yt=40,Cr=41,Gi=42,kd=43,Dd=[9001,65288],Vi="!",D="×",zt="÷",yr=Qd(Ud),TA=[ne,wr],vr=[Fd,ki,Di,Sd],_i=[GA,Ki],Yi=[je,We],Pd=vr.concat(_i),zi=[mr,_t,Yt,Br,fr],Kd=[ze,hr],Nd=function(n,A){A===void 0&&(A="strict");var e=[],t=[],r=[];return n.forEach(function(s,i){var o=yr.get(s);if(o>Mi?(r.push(!0),o-=Mi):r.push(!1),["normal","auto","loose"].indexOf(A)!==-1&&[8208,8211,12316,12448].indexOf(s)!==-1)return t.push(i),e.push(ur);if(o===Id||o===dr){if(i===0)return t.push(i),e.push(ne);var a=e[i-1];return Pd.indexOf(a)===-1?(t.push(t[i-1]),e.push(a)):(t.push(i),e.push(ne))}if(t.push(i),o===Md)return e.push(A==="strict"?gr:Ze);if(o===Gi||o===Td)return e.push(ne);if(o===kd)return s>=131072&&s<=196605||s>=196608&&s<=262141?e.push(Ze):e.push(ne);e.push(o)}),[t,e,r]},br=function(n,A,e,t){var r=t[e];if(Array.isArray(n)?n.indexOf(r)!==-1:n===r)for(var s=e;s<=t.length;){s++;var i=t[s];if(i===A)return!0;if(i!==GA)break}if(r===GA)for(var s=e;s>0;){s--;var o=t[s];if(Array.isArray(n)?n.indexOf(o)!==-1:n===o)for(var a=e;a<=t.length;){a++;var i=t[a];if(i===A)return!0;if(i!==GA)break}if(o!==GA)break}return!1},Ji=function(n,A){for(var e=n;e>=0;){var t=A[e];if(t===GA)e--;else return t}return 0},Od=function(n,A,e,t,r){if(e[t]===0)return D;var s=t-1;if(Array.isArray(r)&&r[s]===!0)return D;var i=s-1,o=s+1,a=A[s],l=i>=0?A[i]:0,d=A[o];if(a===ki&&d===Di)return D;if(vr.indexOf(a)!==-1)return Vi;if(vr.indexOf(d)!==-1||_i.indexOf(d)!==-1)return D;if(Ji(s,A)===Ki)return zt;if(yr.get(n[s])===dr||(a===Gt||a===Vt)&&yr.get(n[o])===dr||a===Pi||d===Pi||a===Ni||[GA,hr,ze].indexOf(a)===-1&&d===Ni||[Rt,Je,Ld,Be,fe].indexOf(d)!==-1||Ji(s,A)===Xe||br(pr,Xe,s,A)||br([Rt,Je],gr,s,A)||br(Oi,Oi,s,A))return D;if(a===GA)return zt;if(a===pr||d===pr)return D;if(d===ur||a===ur)return zt;if([hr,ze,gr].indexOf(d)!==-1||a===Hd||l===wr&&Kd.indexOf(a)!==-1||a===fe&&d===wr||d===Ri||TA.indexOf(d)!==-1&&a===uA||TA.indexOf(a)!==-1&&d===uA||a===je&&[Ze,Gt,Vt].indexOf(d)!==-1||[Ze,Gt,Vt].indexOf(a)!==-1&&d===We||TA.indexOf(a)!==-1&&Yi.indexOf(d)!==-1||Yi.indexOf(a)!==-1&&TA.indexOf(d)!==-1||[je,We].indexOf(a)!==-1&&(d===uA||[Xe,ze].indexOf(d)!==-1&&A[o+1]===uA)||[Xe,ze].indexOf(a)!==-1&&d===uA||a===uA&&[uA,fe,Be].indexOf(d)!==-1)return D;if([uA,fe,Be,Rt,Je].indexOf(d)!==-1)for(var c=s;c>=0;){var h=A[c];if(h===uA)return D;if([fe,Be].indexOf(h)!==-1)c--;else break}if([je,We].indexOf(d)!==-1)for(var c=[Rt,Je].indexOf(a)!==-1?i:s;c>=0;){var h=A[c];if(h===uA)return D;if([fe,Be].indexOf(h)!==-1)c--;else break}if(mr===a&&[mr,_t,Br,fr].indexOf(d)!==-1||[_t,Br].indexOf(a)!==-1&&[_t,Yt].indexOf(d)!==-1||[Yt,fr].indexOf(a)!==-1&&d===Yt||zi.indexOf(a)!==-1&&[Ri,We].indexOf(d)!==-1||zi.indexOf(d)!==-1&&a===je||TA.indexOf(a)!==-1&&TA.indexOf(d)!==-1||a===Be&&TA.indexOf(d)!==-1||TA.concat(uA).indexOf(a)!==-1&&d===Xe&&Dd.indexOf(n[o])===-1||TA.concat(uA).indexOf(d)!==-1&&a===Je)return D;if(a===Cr&&d===Cr){for(var u=e[s],g=1;u>0&&(u--,A[u]===Cr);)g++;if(g%2!==0)return D}return a===Gt&&d===Vt?D:zt},Rd=function(n,A){A||(A={lineBreak:"normal",wordBreak:"normal"});var e=Nd(n,A.lineBreak),t=e[0],r=e[1],s=e[2];(A.wordBreak==="break-all"||A.wordBreak==="break-word")&&(r=r.map(function(o){return[uA,ne,Gi].indexOf(o)!==-1?Ze:o}));var i=A.wordBreak==="keep-all"?s.map(function(o,a){return o&&n[a]>=19968&&n[a]<=40959}):void 0;return[t,r,i]},Gd=function(){function n(A,e,t,r){this.codePoints=A,this.required=e===Vi,this.start=t,this.end=r}return n.prototype.slice=function(){return z.apply(void 0,this.codePoints.slice(this.start,this.end))},n}(),Vd=function(n,A){var e=Pt(n),t=Rd(e,A),r=t[0],s=t[1],i=t[2],o=e.length,a=0,l=0;return{next:function(){if(l>=o)return{done:!0,value:null};for(var d=D;l<o&&(d=Od(e,s,r,++l,i))===D;);if(d!==D||l===o){var c=new Gd(e,d,a,l);return a=l,{value:c,done:!1}}return{done:!0,value:null}}}};const _d=1,Yd=2,we=4,Xi=8,Jt=10,Wi=47,qe=92,zd=9,Jd=32,Xt=34,$e=61,Xd=35,Wd=36,jd=37,Wt=39,jt=40,At=41,Zd=95,aA=45,qd=33,$d=60,Ah=62,eh=64,th=91,nh=93,rh=61,sh=123,Zt=63,ih=125,ji=124,oh=126,ah=128,Zi=65533,Qr=42,re=43,lh=44,ch=58,dh=59,et=46,hh=0,uh=8,gh=11,ph=14,Bh=31,fh=127,xA=-1,qi=48,$i=97,Ao=101,wh=102,mh=117,Ch=122,eo=65,to=69,no=70,yh=85,vh=90,sA=n=>n>=qi&&n<=57,bh=n=>n>=55296&&n<=57343,me=n=>sA(n)||n>=eo&&n<=no||n>=$i&&n<=wh,Qh=n=>n>=$i&&n<=Ch,xh=n=>n>=eo&&n<=vh,Eh=n=>Qh(n)||xh(n),Uh=n=>n>=ah,qt=n=>n===Jt||n===zd||n===Jd,$t=n=>Eh(n)||Uh(n)||n===Zd,ro=n=>$t(n)||sA(n)||n===aA,Fh=n=>n>=hh&&n<=uh||n===gh||n>=ph&&n<=Bh||n===fh,VA=(n,A)=>n!==qe?!1:A!==Jt,An=(n,A,e)=>n===aA?$t(A)||VA(A,e):$t(n)?!0:!!(n===qe&&VA(n,A)),xr=(n,A,e)=>n===re||n===aA?sA(A)?!0:A===et&&sA(e):sA(n===et?A:n),Ih=n=>{let A=0,e=1;(n[A]===re||n[A]===aA)&&(n[A]===aA&&(e=-1),A++);const t=[];for(;sA(n[A]);)t.push(n[A++]);const r=t.length?parseInt(z(...t),10):0;n[A]===et&&A++;const s=[];for(;sA(n[A]);)s.push(n[A++]);const i=s.length,o=i?parseInt(z(...s),10):0;(n[A]===to||n[A]===Ao)&&A++;let a=1;(n[A]===re||n[A]===aA)&&(n[A]===aA&&(a=-1),A++);const l=[];for(;sA(n[A]);)l.push(n[A++]);const d=l.length?parseInt(z(...l),10):0;return e*(r+o*Math.pow(10,-i))*Math.pow(10,a*d)},Sh={type:2},Hh={type:3},Lh={type:4},Th={type:13},Mh={type:8},kh={type:21},Dh={type:9},Ph={type:10},Kh={type:11},Nh={type:12},Oh={type:14},en={type:23},Rh={type:1},Gh={type:25},Vh={type:24},_h={type:26},Yh={type:27},zh={type:28},Jh={type:29},Xh={type:31},Er={type:32};class so{constructor(){this._value=[]}write(A){this._value=this._value.concat(Pt(A))}read(){const A=[];let e=this.consumeToken();for(;e!==Er;)A.push(e),e=this.consumeToken();return A}consumeToken(){const A=this.consumeCodePoint();switch(A){case Xt:return this.consumeStringToken(Xt);case Xd:const e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(ro(e)||VA(t,r)){const u=An(e,t,r)?Yd:_d;return{type:5,value:this.consumeName(),flags:u}}break;case Wd:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Th;break;case Wt:return this.consumeStringToken(Wt);case jt:return Sh;case At:return Hh;case Qr:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Oh;break;case re:if(xr(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case lh:return Lh;case aA:const s=A,i=this.peekCodePoint(0),o=this.peekCodePoint(1);if(xr(s,i,o))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(An(s,i,o))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(i===aA&&o===Ah)return this.consumeCodePoint(),this.consumeCodePoint(),Vh;break;case et:if(xr(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case Wi:if(this.peekCodePoint(0)===Qr)for(this.consumeCodePoint();;){let u=this.consumeCodePoint();if(u===Qr&&(u=this.consumeCodePoint(),u===Wi))return this.consumeToken();if(u===xA)return this.consumeToken()}break;case ch:return _h;case dh:return Yh;case $d:if(this.peekCodePoint(0)===qd&&this.peekCodePoint(1)===aA&&this.peekCodePoint(2)===aA)return this.consumeCodePoint(),this.consumeCodePoint(),Gh;break;case eh:const a=this.peekCodePoint(0),l=this.peekCodePoint(1),d=this.peekCodePoint(2);if(An(a,l,d))return{type:7,value:this.consumeName()};break;case th:return zh;case qe:if(VA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case nh:return Jh;case rh:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Mh;break;case sh:return Kh;case ih:return Nh;case mh:case yh:const c=this.peekCodePoint(0),h=this.peekCodePoint(1);return c===re&&(me(h)||h===Zt)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case ji:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Dh;if(this.peekCodePoint(0)===ji)return this.consumeCodePoint(),kh;break;case oh:if(this.peekCodePoint(0)===$e)return this.consumeCodePoint(),Ph;break;case xA:return Er}return qt(A)?(this.consumeWhiteSpace(),Xh):sA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):$t(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:z(A)}}consumeCodePoint(){const A=this._value.shift();return typeof A>"u"?-1:A}reconsumeCodePoint(A){this._value.unshift(A)}peekCodePoint(A){return A>=this._value.length?-1:this._value[A]}consumeUnicodeRangeToken(){const A=[];let e=this.consumeCodePoint();for(;me(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();let t=!1;for(;e===Zt&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t){const s=parseInt(z(...A.map(o=>o===Zt?qi:o)),16),i=parseInt(z(...A.map(o=>o===Zt?no:o)),16);return{type:30,start:s,end:i}}const r=parseInt(z(...A),16);if(this.peekCodePoint(0)===aA&&me(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();const s=[];for(;me(e)&&s.length<6;)s.push(e),e=this.consumeCodePoint();const i=parseInt(z(...s),16);return{type:30,start:r,end:i}}else return{type:30,start:r,end:r}}consumeIdentLikeToken(){const A=this.consumeName();return A.toLowerCase()==="url"&&this.peekCodePoint(0)===jt?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===jt?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}}consumeUrlToken(){const A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===xA)return{type:22,value:""};const e=this.peekCodePoint(0);if(e===Wt||e===Xt){const t=this.consumeStringToken(this.consumeCodePoint());return t.type===0&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===xA||this.peekCodePoint(0)===At)?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),en)}for(;;){const t=this.consumeCodePoint();if(t===xA||t===At)return{type:22,value:z(...A)};if(qt(t))return this.consumeWhiteSpace(),this.peekCodePoint(0)===xA||this.peekCodePoint(0)===At?(this.consumeCodePoint(),{type:22,value:z(...A)}):(this.consumeBadUrlRemnants(),en);if(t===Xt||t===Wt||t===jt||Fh(t))return this.consumeBadUrlRemnants(),en;if(t===qe)if(VA(t,this.peekCodePoint(0)))A.push(this.consumeEscapedCodePoint());else return this.consumeBadUrlRemnants(),en;else A.push(t)}}consumeWhiteSpace(){for(;qt(this.peekCodePoint(0));)this.consumeCodePoint()}consumeBadUrlRemnants(){for(;;){const A=this.consumeCodePoint();if(A===At||A===xA)return;VA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}}consumeStringSlice(A){let t="";for(;A>0;){const r=Math.min(5e4,A);t+=z(...this._value.splice(0,r)),A-=r}return this._value.shift(),t}consumeStringToken(A){let e="",t=0;do{const r=this._value[t];if(r===xA||r===void 0||r===A)return e+=this.consumeStringSlice(t),{type:0,value:e};if(r===Jt)return this._value.splice(0,t),Rh;if(r===qe){const s=this._value[t+1];s!==xA&&s!==void 0&&(s===Jt?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):VA(r,s)&&(e+=this.consumeStringSlice(t),e+=z(this.consumeEscapedCodePoint()),t=-1))}t++}while(!0)}consumeNumber(){const A=[];let e=we,t=this.peekCodePoint(0);for((t===re||t===aA)&&A.push(this.consumeCodePoint());sA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);let r=this.peekCodePoint(1);if(t===et&&sA(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=Xi;sA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);const s=this.peekCodePoint(2);if((t===to||t===Ao)&&((r===re||r===aA)&&sA(s)||sA(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=Xi;sA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[Ih(A),e]}consumeNumericToken(){const[A,e]=this.consumeNumber(),t=this.peekCodePoint(0),r=this.peekCodePoint(1),s=this.peekCodePoint(2);if(An(t,r,s)){const i=this.consumeName();return{type:15,number:A,flags:e,unit:i}}return t===jd?(this.consumeCodePoint(),{type:16,number:A,flags:e}):{type:17,number:A,flags:e}}consumeEscapedCodePoint(){const A=this.consumeCodePoint();if(me(A)){let e=z(A);for(;me(this.peekCodePoint(0))&&e.length<6;)e+=z(this.consumeCodePoint());qt(this.peekCodePoint(0))&&this.consumeCodePoint();const t=parseInt(e,16);return t===0||bh(t)||t>1114111?Zi:t}return A===xA?Zi:A}consumeName(){let A="";for(;;){const e=this.consumeCodePoint();if(ro(e))A+=z(e);else if(VA(e,this.peekCodePoint(0)))A+=z(this.consumeEscapedCodePoint());else return this.reconsumeCodePoint(e),A}}}class Ce{constructor(A){this._tokens=A}static create(A){const e=new so;return e.write(A),new Ce(e.read())}static parseValue(A){return Ce.create(A).parseComponentValue()}static parseValues(A){return Ce.create(A).parseComponentValues()}parseComponentValue(){let A=this.consumeToken();for(;A.type===31;)A=this.consumeToken();if(A.type===32)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);const e=this.consumeComponentValue();do A=this.consumeToken();while(A.type===31);if(A.type===32)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")}parseComponentValues(){const A=[];for(;;){const e=this.consumeComponentValue();if(e.type===32)return A;A.push(e),A.push()}}consumeComponentValue(){const A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A}consumeSimpleBlock(A){const e={type:A,values:[]};let t=this.consumeToken();for(;;){if(t.type===32||jh(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}}consumeFunction(A){const e={name:A.value,values:[],type:18};for(;;){const t=this.consumeToken();if(t.type===32||t.type===3)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}}consumeToken(){const A=this._tokens.shift();return typeof A>"u"?Er:A}reconsumeToken(A){this._tokens.unshift(A)}}const EA=n=>n.type===15,W=n=>n.type===17,H=n=>n.type===20,Wh=n=>n.type===0,tt=(n,A)=>H(n)&&n.value===A,tn=n=>n.type!==31,tA=n=>n.type!==31&&n.type!==4,vA=n=>{const A=[];let e=[];return n.forEach(t=>{if(t.type===4){if(e.length===0)throw new Error("Error parsing function args, zero tokens for arg");A.push(e),e=[];return}t.type!==31&&e.push(t)}),e.length&&A.push(e),A},jh=(n,A)=>A===11&&n.type===12||A===28&&n.type===29?!0:A===2&&n.type===3,Y=(n,A,e)=>Math.min(Math.max(n,A),e),lA=(n,A)=>[n[0]*A[0]+n[1]*A[1]+n[2]*A[2],n[3]*A[0]+n[4]*A[1]+n[5]*A[2],n[6]*A[0]+n[7]*A[1]+n[8]*A[2]],_A=n=>lA([3.2409699419045226,-1.537383177570094,-.4986107602930034,-.9692436362808796,1.8759675015077202,.04155505740717559,.05563007969699366,-.20397695888897652,1.0569715142428786],n),Ur=n=>lA([.41239079926595934,.357584339383878,.1804807884018343,.21263900587151027,.715168678767756,.07219231536073371,.01933081871559182,.11919477979462598,.9505321522496607],n),se=n=>n.map(A=>{const e=A<0?-1:1,t=Math.abs(A);return t>.0031308?e*(1.055*t**(1/2.4)-.055):12.92*A}),Fr=n=>n.map(A=>{const e=A<0?-1:1,t=Math.abs(A);return t<=.04045?A/12.92:e*((t+.055)/1.055)**2.4}),Zh=n=>{const[A,e,t]=se(_A([n[0],n[1],n[2]]));return[A,e,t,n[3]]},qh=n=>{const[A,e,t]=_A([n[0],n[1],n[2]]);return[Y(Math.round(A*255),0,255),Y(Math.round(e*255),0,255),Y(Math.round(t*255),0,255),n[3]]},YA=n=>n.type===17||n.type===15,N=n=>n.type===16||YA(n),$h=n=>n.type===18&&n.name==="calc",Au=(n,A=0)=>{const e=t=>{let r="";for(const s of t)if(s.type!==31){if(s.type===18)if(s.name==="calc"){const i=e(s.values);if(i===null)return null;r+=`(${i})`}else return null;else if(s.type===17)r+=s.number.toString();else if(s.type===15)s.unit==="px"?r+=s.number.toString():s.unit==="rem"||s.unit==="em"?r+=(s.number*16).toString():r+=s.number.toString();else if(s.type===16)r+=(s.number/100*A).toString();else if(s.type===6){const i=s.value;i==="+"||i==="-"||i==="*"||i==="/"?r+=` ${i} `:i==="("?r+="(":i===")"&&(r+=")")}}return r};try{const t=e(n.values);if(t===null||t.trim()==="")return null;const r=new Function("return "+t)();if(typeof r=="number"&&!isNaN(r))return{type:17,number:r,flags:we}}catch{return null}return null},io=n=>n.length>1?[n[0],n[1]]:[n[0]],j={type:17,number:0,flags:we},ie={type:16,number:50,flags:we},UA={type:16,number:100,flags:we},nt=(n,A,e)=>{const[t,r]=n;return[S(t,A),S(typeof r<"u"?r:t,e)]},S=(n,A)=>{if(n.type===16)return n.number/100*A;if(EA(n))switch(n.unit){case"rem":case"em":return 16*n.number;case"px":default:return n.number}return n.number},oo="deg",ao="grad",lo="rad",co="turn",ye={name:"angle",parse:(n,A)=>{if(A.type===15)switch(A.unit){case oo:return Math.PI*A.number/180;case ao:return Math.PI/200*A.number;case lo:return A.number;case co:return Math.PI*2*A.number}throw new Error("Unsupported angle type")}},ho=n=>n.type===15&&(n.unit===oo||n.unit===ao||n.unit===lo||n.unit===co),uo=n=>{switch(n.filter(H).map(e=>e.value).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[j,j];case"to top":case"bottom":return wA(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[j,UA];case"to right":case"left":return wA(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[UA,UA];case"to bottom":case"top":return wA(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[UA,j];case"to left":case"right":return wA(270)}return 0},wA=n=>Math.PI*n/180,zA=n=>(255&n)===0,R=n=>{const A=255&n,e=255&n>>8,t=255&n>>16,r=255&n>>24;return A<255?`rgba(${r},${t},${e},${A/255})`:`rgb(${r},${t},${e})`},bA=(n,A,e,t)=>(n<<24|A<<16|e<<8|Math.round(t*255)<<0)>>>0,JA=(n,A)=>{if(n.type===17)return n.number;if(n.type===16){const e=A===3?1:255;return A===3?n.number/100*e:Math.round(n.number/100*e)}return 0},oe=n=>(n[0].type===20?n[0].value:"unknown")==="from",eu=n=>bA(Y(Math.round(n[0]*255),0,255),Y(Math.round(n[1]*255),0,255),Y(Math.round(n[2]*255),0,255),Y(n[3],0,1)),Ir=([n,A,e,t])=>{const r=se([n,A,e]);return bA(Y(Math.round(r[0]*255),0,255),Y(Math.round(r[1]*255),0,255),Y(Math.round(r[2]*255),0,255),t)},rt=n=>{const A=_A([n[0],n[1],n[2]]);return Ir([A[0],A[1],A[2],n[3]])},tu=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for lab()");const[e,t,r,s]=nn(A),i=se(_A(on([e,t,r])));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},nu=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for oklab()");const[e,t,r,s]=nn(A),i=se(_A(sn([e,t,r])));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},ru=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for oklch()");const[e,t,r,s]=fo(A),i=se(_A(sn(rn([e,t,r]))));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},su=(n,A)=>{if(oe(A.filter(tA)))throw new Error("Relative color not supported for lch()");const[e,t,r,s]=Bo(A),i=se(_A(on(rn([e,t,r]))));return bA(Y(Math.round(i[0]*255),0,255),Y(Math.round(i[1]*255),0,255),Y(Math.round(i[2]*255),0,255),s)},go=(n,A)=>{const e=A.filter(tA),[t,r,s,i]=e,o=(t.type===17?wA(t.number):ye.parse(n,t))/(Math.PI*2),a=N(r)?r.number/100:0,l=N(s)?s.number/100:0,d=typeof i<"u"&&N(i)?S(i,1):1;return[o,a,l,d]},po=(n,A)=>{if(oe(A))throw new Error("Relative color not supported for hsl()");const[e,t,r,s]=go(n,A),i=mo([e,t,r]);return bA(i[0]*255,i[1]*255,i[2]*255,t===0?1:s)},Bo=n=>{const A=n.filter(tA),e=N(A[0])?A[0].number:0,t=N(A[1])?A[1].number:0,r=W(A[2])||EA(A[2])?A[2].number:0,s=typeof A[4]<"u"&&N(A[4])?S(A[4],1):1;return[e,t,r,s]},nn=n=>{const A=n.filter(tA),e=A[0].type===16?A[0].number/100:W(A[0])?A[0].number:0,t=A[1].type===16?A[1].number/100:W(A[1])?A[1].number:0,r=W(A[2])||EA(A[2])?A[2].number:0,s=typeof A[4]<"u"&&N(A[4])?S(A[4],1):1;return[e,t,r,s]},fo=n=>{const A=n.filter(tA),e=A[0].type===16?A[0].number/100:W(A[0])?A[0].number:0,t=A[1].type===16?A[1].number/100:W(A[1])?A[1].number:0,r=W(A[2])||EA(A[2])?A[2].number:0,s=typeof A[4]<"u"&&N(A[4])?S(A[4],1):1;return[e,t,r,s]},wo=n=>lA([1.0479297925449969,.022946870601609652,-.05019226628920524,.02962780877005599,.9904344267538799,-.017073799063418826,-.009243040646204504,.015055191490298152,.7518742814281371],n),Sr=n=>lA([.955473421488075,-.02309845494876471,.06325924320057072,-.0283697093338637,1.0099953980813041,.021041441191917323,.012314014864481998,-.020507649298898964,1.330365926242124],n),Hr=(n,A,e)=>(e<0&&(e+=1),e>=1&&(e-=1),e<1/6?(A-n)*e*6+n:e<1/2?A:e<2/3?(A-n)*6*(2/3-e)+n:n),mo=([n,A,e])=>{if(A===0)return[e*255,e*255,e*255];const t=e<=.5?e*(A+1):e+A-e*A,r=e*2-t,s=Hr(r,t,n+1/3),i=Hr(r,t,n),o=Hr(r,t,n-1/3);return[s,i,o]},rn=([n,A,e])=>(A<0&&(A=0),isNaN(e)&&(e=0),[n,A*Math.cos(e*Math.PI/180),A*Math.sin(e*Math.PI/180)]),sn=n=>{const A=lA([1,.3963377773761749,.2158037573099136,1,-.1055613458156586,-.0638541728258133,1,-.0894841775298119,-1.2914855480194092],n),e=A.map(t=>t**3);return lA([1.2268798758459243,-.5578149944602171,.2813910456659647,-.0405757452148008,1.112286803280317,-.0717110580655164,-.0763729366746601,-.4214933324022432,1.5869240198367816],e)},on=n=>{const A=(n[0]+16)/116,e=n[1]/500+A,t=A-n[2]/200,r=24389/27,s=24/116,i=[(e>s?e**3:(116*e-16)/r)*.3457/.3585,n[0]>8?A**3:n[0]/r,(t>s?t**3:(116*t-16)/r)*(1-.3457-.3585)/.3585];return Sr([i[0],i[1],i[2]])},iu=(n,A)=>{const e=A.filter(tA);if(e.length===3){const[t,r,s]=e.map(JA),i=Fr([t/255,r/255,s/255]),[o,a,l]=Ur([i[0],i[1],i[2]]);return[o,a,l,1]}if(e.length===4){const[t,r,s,i]=e.map(JA),o=Fr([t/255,r/255,s/255]),[a,l,d]=Ur([o[0],o[1],o[2]]);return[a,l,d,i]}return[0,0,0,1]},ou=(n,A)=>{const[e,t,r,s]=go(n,A),i=Fr(mo([e,t,r])),[o,a,l]=Ur([i[0],i[1],i[2]]);return[o,a,l,s]},au=(n,A)=>{const[e,t,r,s]=nn(A),[i,o,a]=on([e,t,r]);return[i,o,a,s]},lu=(n,A)=>{const[e,t,r,s]=Bo(A),[i,o,a]=on(rn([e,t,r]));return[i,o,a,s]},cu=(n,A)=>{const[e,t,r,s]=fo(A),[i,o,a]=sn(rn([e,t,r]));return[i,o,a,s]},du=(n,A)=>{const[e,t,r,s]=nn(A),[i,o,a]=sn([e,t,r]);return[i,o,a,s]},hu=n=>Sr([n[0],n[1],n[2]]),Co=n=>n,uu=n=>{const[A,e,t]=wo([n[0],n[2],n[3]]);return[A,e,t,n[3]]},yo=n=>rt([n[0],n[1],n[2],n[3]]),gu=n=>{const A=hu([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},pu=n=>lA([.4865709486482162,.26566769316909306,.1982172852343625,.2289745640697488,.6917385218365064,.079286914093745,0,.04511338185890264,1.043944368900976],n),Bu=n=>lA([2.493496911941425,-.9313836179191239,-.40271078445071684,-.8294889695615747,1.7626640603183463,.023624685841943577,.03584583024378447,-.07617238926804182,.9568845240076872],n),fu=n=>n.map(A=>{const e=A<0?-1:1;return A*e<=.04045?A/12.92:e*((A+.055)/1.055)**2.4||0}),wu=n=>se(n),mu=n=>{const A=fu([n[0],n[1],n[2]]);return pu([A[0],A[1],A[2]])},Cu=n=>{const[A,e,t]=wu(Bu([n[0],n[1],n[2]]));return[A,e,t,n[3]]},yu=n=>{const A=mu([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},vu=n=>lA([2.0415879038107465,-.5650069742788596,-.34473135077832956,-.9692436362808795,1.8759675015077202,.04155505740717557,.013444280632031142,-.11836239223101838,1.0151749943912054],n),bu=n=>lA([.5766690429101305,.1855582379065463,.1882286462349947,.29734497525053605,.6273635662554661,.0752914584939978,.02703136138641234,.07068885253582723,.9913375368376388],n),Qu=n=>{const A=n.map(e=>{const t=e<0?-1:1,r=Math.abs(e);return t*r**2.19921875});return[A[0],A[1],A[2]]},xu=n=>{const A=n.map(e=>{const t=e<0?-1:1,r=Math.abs(e);return t*r**.4547069271758437});return[A[0],A[1],A[2]]},Eu=n=>{const[A,e,t]=xu(vu([n[0],n[1],n[2]]));return[A,e,t,n[3]]},Uu=n=>{const A=_A(bu(Qu([n[0],n[1],n[2]])));return Ir([A[0],A[1],A[2],n[3]])},Fu=n=>lA([.7977666449006423,.13518129740053308,.0313477341283922,.2880748288194013,.711835234241873,8993693872564e-17,0,0,.8251046025104602],n),Iu=n=>lA([1.3457868816471583,-.25557208737979464,-.05110186497554526,-.5446307051249019,1.5082477428451468,.02052744743642139,0,0,1.2119675456389452],n),Su=n=>n.map(A=>A<16/512?A/16:A**1.8),Hu=n=>n.map(A=>A>1/512?A**(1/1.8):A*16),Lu=n=>{const A=Su([n[0],n[1],n[2]]);return Sr(Fu([A[0],A[1],A[2]]))},Tu=n=>{const[A,e,t]=Hu(Iu(wo([n[0],n[1],n[2]])));return[A,e,t,n[3]]},Mu=n=>{const A=Lu([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},an=1.09929682680944,vo=.018053968510807,ku=n=>n.map(function(A){return A<vo*4.5?A/4.5:Math.pow((A+an-1)/an,1/.45)}),Du=n=>n.map(function(A){return A>=vo?an*Math.pow(A,.45)-(an-1):4.5*A}),Pu=n=>lA([.6369580483012914,.14461690358620832,.1688809751641721,.2627002120112671,.6779980715188708,.05930171646986196,0,.028072693049087428,1.060985057710791],n),Ku=n=>lA([1.716651187971268,-.355670783776392,-.25336628137366,-.666684351832489,1.616481236634939,.0157685458139111,.017639857445311,-.042770613257809,.942103121235474],n),Nu=n=>{const A=ku([n[0],n[1],n[2]]);return Pu([A[0],A[1],A[2]])},Ou=n=>{const[A,e,t]=Du(Ku([n[0],n[1],n[2]]));return[A,e,t,n[3]]},Ru=n=>{const A=Nu([n[0],n[1],n[2]]);return rt([A[0],A[1],A[2],n[3]])},XA={name:"color",parse:(n,A)=>{if(A.type===18){const e=Yu[A.name];if(typeof e>"u")throw new Error(`Attempting to parse an unsupported color function "${A.name}"`);return e(n,A.values)}if(A.type===5){const[e,t,r,s]=bo(A);return bA(e,t,r,s)}if(A.type===20){const e=FA[A.value.toUpperCase()];if(typeof e<"u")return e}return FA.TRANSPARENT}},bo=n=>{if(n.value.length===3){const A=n.value.substring(0,1),e=n.value.substring(1,2),t=n.value.substring(2,3);return[parseInt(A+A,16),parseInt(e+e,16),parseInt(t+t,16),1]}if(n.value.length===4){const A=n.value.substring(0,1),e=n.value.substring(1,2),t=n.value.substring(2,3),r=n.value.substring(3,4);return[parseInt(A+A,16),parseInt(e+e,16),parseInt(t+t,16),parseInt(r+r,16)/255]}if(n.value.length===6){const A=n.value.substring(0,2),e=n.value.substring(2,4),t=n.value.substring(4,6);return[parseInt(A,16),parseInt(e,16),parseInt(t,16),1]}if(n.value.length===8){const A=n.value.substring(0,2),e=n.value.substring(2,4),t=n.value.substring(4,6),r=n.value.substring(6,8);return[parseInt(A,16),parseInt(e,16),parseInt(t,16),parseInt(r,16)/255]}return[0,0,0,1]},Qo=(n,A)=>{const e=A.filter(tA);if(oe(e))throw new Error("Relative color not supported for rgb()");if(e.length===3){const[t,r,s]=e.map(JA);return bA(t,r,s,1)}if(e.length===4){const[t,r,s,i]=e.map(JA);return bA(t,r,s,i)}if(e.length===5&&e[3].type===6&&e[3].value==="/"){const t=JA(e[0],0),r=JA(e[1],1),s=JA(e[2],2),i=JA(e[4],3);return bA(t,r,s,i)}return 0},Gu=(n,A)=>{const e=A.filter(tA),t=e[0].type===20?e[0].value:"unknown";if(!oe(e)){const s=t,i=xo[s];if(typeof i>"u")throw new Error(`Attempting to parse an unsupported color space "${s}" for color() function`);const o=W(e[1])?e[1].number:0,a=W(e[2])?e[2].number:0,l=W(e[3])?e[3].number:0,d=e.length>4&&e[4].type===6&&e[4].value==="/"&&W(e[5])?e[5].number:1;return i([o,a,l,d])}else{const s=(w,v)=>{if(W(v))return v.number;const C=Q=>Q==="r"||Q==="x"?0:Q==="g"||Q==="y"?1:2;if(H(v)){const Q=C(v.value);return w[Q]}const y=Q=>{const E=Q.filter(tA);let F="(";for(const I of E)F+=I.type===18&&I.name==="calc"?y(I.values):W(I)?I.number:I.type===6||H(I)?I.value:"";return F+=")",F};if(v.type===18){const Q=v.values.filter(tA);if(v.name==="calc"){const E=y(Q).replace(/r|x/,w[0].toString()).replace(/g|y/,w[1].toString()).replace(/b|z/,w[2].toString());return new Function("return "+E)()}}return null},i=e[1].type===18?e[1].name:H(e[1])||e[1].type===5?"rgb":"unknown",o=H(e[2])?e[2].value:"unknown";let a=e[1].type===18?e[1].values:H(e[1])?[e[1]]:[];if(H(e[1])){if(typeof FA[e[1].value.toUpperCase()]>"u")throw new Error("Attempting to use unknown color in relative color 'from'");{const v=ve(n,e[1].value),C=255&v,y=255&v>>8,Q=255&v>>16;a=[{type:17,number:255&v>>24,flags:1},{type:17,number:Q,flags:1},{type:17,number:y,flags:1},{type:17,number:C>1?C/255:C,flags:1}]}}else if(e[1].type===5){const[w,v,C,y]=bo(e[1]);a=[{type:17,number:w,flags:1},{type:17,number:v,flags:1},{type:17,number:C,flags:1},{type:17,number:y>1?y/255:y,flags:1}]}if(a.length===0)throw new Error("Attempting to use unknown color in relative color 'from'");if(o==="unknown")throw new Error("Attempting to use unknown colorspace in relative color 'to'");const l=Vu[i],d=_u[o],c=xo[o];if(typeof l>"u")throw new Error(`Attempting to parse an unsupported color space "${i}" for color() function`);if(typeof d>"u")throw new Error(`Attempting to parse an unsupported color space "${o}" for color() function`);const h=l(n,a),u=d(h),g=s(u,e[3]),B=s(u,e[4]),f=s(u,e[5]),m=e.length>6&&e[6].type===6&&e[6].value==="/"&&W(e[7])?e[7].number:1;if(g===null||B===null||f===null)throw new Error("Invalid relative color in color() function");return c([g,B,f,m])}},xo={srgb:eu,"srgb-linear":Ir,"display-p3":yu,"a98-rgb":Uu,"prophoto-rgb":Mu,xyz:yo,"xyz-d50":gu,"xyz-d65":yo,rec2020:Ru},Vu={rgb:iu,hsl:ou,lab:au,lch:lu,oklab:du,oklch:cu},_u={srgb:Zh,"srgb-linear":qh,"display-p3":Cu,"a98-rgb":Eu,"prophoto-rgb":Tu,xyz:Co,"xyz-d50":uu,"xyz-d65":Co,rec2020:Ou},Yu={hsl:po,hsla:po,rgb:Qo,rgba:Qo,lch:su,oklch:ru,oklab:nu,lab:tu,color:Gu},ve=(n,A)=>XA.parse(n,Ce.create(A).parseComponentValue()),FA={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},zu={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:(n,A)=>A.map(e=>{if(H(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0})},Ju={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ln=(n,A)=>{const e=XA.parse(n,A[0]),t=A[1];return t&&N(t)?{color:e,stop:t}:{color:e,stop:null}},Eo=(n,A)=>{const e=n[0],t=n[n.length-1];e.stop===null&&(e.stop=j),t.stop===null&&(t.stop=UA);const r=[];let s=0;for(let o=0;o<n.length;o++){const a=n[o].stop;if(a!==null){const l=S(a,A);l>s?r.push(l):r.push(s),s=l}else r.push(null)}let i=null;for(let o=0;o<r.length;o++){const a=r[o];if(a===null)i===null&&(i=o);else if(i!==null){const l=o-i,d=r[i-1],c=(a-d)/(l+1);for(let h=1;h<=l;h++)r[i+h-1]=c*h;i=null}}return n.map(({color:o},a)=>({color:o,stop:Math.max(Math.min(1,r[a]/A),0)}))},Xu=(n,A,e)=>{const t=A/2,r=e/2,s=S(n[0],A)-t,i=r-S(n[1],e);return(Math.atan2(i,s)+Math.PI*2)%(Math.PI*2)},Wu=(n,A,e)=>{const t=typeof n=="number"?n:Xu(n,A,e),r=Math.abs(A*Math.sin(t))+Math.abs(e*Math.cos(t)),s=A/2,i=e/2,o=r/2,a=Math.sin(t-Math.PI/2)*o,l=Math.cos(t-Math.PI/2)*o;return[r,s-l,s+l,i-a,i+a]},QA=(n,A)=>Math.sqrt(n*n+A*A),Uo=(n,A,e,t,r)=>[[0,0],[0,A],[n,0],[n,A]].reduce((i,o)=>{const[a,l]=o,d=QA(e-a,t-l);return(r?d<i.optimumDistance:d>i.optimumDistance)?{optimumCorner:o,optimumDistance:d}:i},{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner,ju=(n,A,e,t,r)=>{let s=0,i=0;switch(n.size){case 0:n.shape===0?s=i=Math.min(Math.abs(A),Math.abs(A-t),Math.abs(e),Math.abs(e-r)):n.shape===1&&(s=Math.min(Math.abs(A),Math.abs(A-t)),i=Math.min(Math.abs(e),Math.abs(e-r)));break;case 2:if(n.shape===0)s=i=Math.min(QA(A,e),QA(A,e-r),QA(A-t,e),QA(A-t,e-r));else if(n.shape===1){const o=Math.min(Math.abs(e),Math.abs(e-r))/Math.min(Math.abs(A),Math.abs(A-t)),[a,l]=Uo(t,r,A,e,!0);s=QA(a-A,(l-e)/o),i=o*s}break;case 1:n.shape===0?s=i=Math.max(Math.abs(A),Math.abs(A-t),Math.abs(e),Math.abs(e-r)):n.shape===1&&(s=Math.max(Math.abs(A),Math.abs(A-t)),i=Math.max(Math.abs(e),Math.abs(e-r)));break;case 3:if(n.shape===0)s=i=Math.max(QA(A,e),QA(A,e-r),QA(A-t,e),QA(A-t,e-r));else if(n.shape===1){const o=Math.max(Math.abs(e),Math.abs(e-r))/Math.max(Math.abs(A),Math.abs(A-t)),[a,l]=Uo(t,r,A,e,!1);s=QA(a-A,(l-e)/o),i=o*s}break}return Array.isArray(n.size)&&(s=S(n.size[0],t),i=n.size.length===2?S(n.size[1],r):s),[s,i]},Zu=(n,A)=>{let e=wA(180);const t=[];return vA(A).forEach((r,s)=>{if(s===0){const o=r[0];if(o.type===20&&o.value==="to"){e=uo(r);return}else if(ho(o)){e=ye.parse(n,o);return}}const i=ln(n,r);t.push(i)}),{angle:e,stops:t,type:1}},cn=(n,A)=>{let e=wA(180);const t=[];return vA(A).forEach((r,s)=>{if(s===0){const o=r[0];if(o.type===20&&["top","left","right","bottom"].indexOf(o.value)!==-1){e=uo(r);return}else if(ho(o)){e=(ye.parse(n,o)+wA(270))%wA(360);return}}const i=ln(n,r);t.push(i)}),{angle:e,stops:t,type:1}},qu=(n,A)=>{const e=wA(180),t=[];let r=1;const s=0,i=3,o=[];return vA(A).forEach((a,l)=>{const d=a[0];if(l===0){if(H(d)&&d.value==="linear"){r=1;return}else if(H(d)&&d.value==="radial"){r=2;return}}if(d.type===18){if(d.name==="from"){const c=XA.parse(n,d.values[0]);t.push({stop:j,color:c})}else if(d.name==="to"){const c=XA.parse(n,d.values[0]);t.push({stop:UA,color:c})}else if(d.name==="color-stop"){const c=d.values.filter(tA);if(c.length===2){const h=XA.parse(n,c[1]),u=c[0];W(u)&&t.push({stop:{type:16,number:u.number*100,flags:u.flags},color:h})}}}}),r===1?{angle:(e+wA(180))%wA(360),stops:t,type:r}:{size:i,shape:s,stops:t,position:o,type:r}},Fo="closest-side",Io="farthest-side",So="closest-corner",Ho="farthest-corner",Lo="circle",To="ellipse",Mo="cover",ko="contain",$u=(n,A)=>{let e=0,t=3;const r=[],s=[];return vA(A).forEach((i,o)=>{let a=!0;if(o===0){let l=!1;a=i.reduce((d,c)=>{if(l)if(H(c))switch(c.value){case"center":return s.push(ie),d;case"top":case"left":return s.push(j),d;case"right":case"bottom":return s.push(UA),d}else(N(c)||YA(c))&&s.push(c);else if(H(c))switch(c.value){case Lo:return e=0,!1;case To:return e=1,!1;case"at":return l=!0,!1;case Fo:return t=0,!1;case Mo:case Io:return t=1,!1;case ko:case So:return t=2,!1;case Ho:return t=3,!1}else if(YA(c)||N(c))return Array.isArray(t)||(t=[]),t.push(c),!1;return d},a)}if(a){const l=ln(n,i);r.push(l)}}),{size:t,shape:e,stops:r,position:s,type:2}},dn=(n,A)=>{let e=0,t=3;const r=[],s=[];return vA(A).forEach((i,o)=>{let a=!0;if(o===0?a=i.reduce((l,d)=>{if(H(d))switch(d.value){case"center":return s.push(ie),!1;case"top":case"left":return s.push(j),!1;case"right":case"bottom":return s.push(UA),!1}else if(N(d)||YA(d))return s.push(d),!1;return l},a):o===1&&(a=i.reduce((l,d)=>{if(H(d))switch(d.value){case Lo:return e=0,!1;case To:return e=1,!1;case ko:case Fo:return t=0,!1;case Io:return t=1,!1;case So:return t=2,!1;case Mo:case Ho:return t=3,!1}else if(YA(d)||N(d))return Array.isArray(t)||(t=[]),t.push(d),!1;return l},a)),a){const l=ln(n,i);r.push(l)}}),{size:t,shape:e,stops:r,position:s,type:2}},Ag=n=>n.type===1,eg=n=>n.type===2,Lr={name:"image",parse:(n,A)=>{if(A.type===22){const e={url:A.value,type:0};return n.cache.addImage(A.value),e}if(A.type===18){const e=Do[A.name];if(typeof e>"u")throw new Error(`Attempting to parse an unsupported image function "${A.name}"`);return e(n,A.values)}throw new Error(`Unsupported image type ${A.type}`)}};function tg(n){return!(n.type===20&&n.value==="none")&&(n.type!==18||!!Do[n.name])}const Do={"linear-gradient":Zu,"-moz-linear-gradient":cn,"-ms-linear-gradient":cn,"-o-linear-gradient":cn,"-webkit-linear-gradient":cn,"radial-gradient":$u,"-moz-radial-gradient":dn,"-ms-radial-gradient":dn,"-o-radial-gradient":dn,"-webkit-radial-gradient":dn,"-webkit-gradient":qu},ng={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>{if(A.length===0)return[];const e=A[0];return e.type===20&&e.value==="none"?[]:A.filter(t=>tA(t)&&tg(t)).map(t=>Lr.parse(n,t))}},rg={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:(n,A)=>A.map(e=>{if(H(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0})},sg={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:(n,A)=>vA(A).map(e=>e.map(t=>$h(t)?Au(t,0):N(t)?t:null).filter(t=>t!==null)).map(io)},ig={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:(n,A)=>vA(A).map(e=>e.filter(H).map(t=>t.value).join(" ")).map(og)},og=n=>{switch(n){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;case"repeat":default:return 0}};var be;(function(n){n.AUTO="auto",n.CONTAIN="contain",n.COVER="cover"})(be||(be={}));const ag={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:(n,A)=>vA(A).map(e=>e.filter(lg))},lg=n=>H(n)||N(n),hn=n=>({name:`border-${n}-color`,initialValue:"transparent",prefix:!1,type:3,format:"color"}),cg=hn("top"),dg=hn("right"),hg=hn("bottom"),ug=hn("left"),un=n=>({name:`border-radius-${n}`,initialValue:"0 0",prefix:!1,type:1,parse:(A,e)=>io(e.filter(N))}),gg=un("top-left"),pg=un("top-right"),Bg=un("bottom-right"),fg=un("bottom-left"),gn=n=>({name:`border-${n}-style`,initialValue:"solid",prefix:!1,type:2,parse:(A,e)=>{switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}),wg=gn("top"),mg=gn("right"),Cg=gn("bottom"),yg=gn("left"),pn=n=>({name:`border-${n}-width`,initialValue:"0",type:0,prefix:!1,parse:(A,e)=>EA(e)?e.number:0}),vg=pn("top"),bg=pn("right"),Qg=pn("bottom"),xg=pn("left"),Tr={type:0},Mr=n=>{const[A]=n;return A?H(A)?A.value==="farthest-side"?"farthest-side":"closest-side":N(A)?A:"closest-side":"closest-side"},Po=n=>{let A=null,e=null;for(const t of n)if(H(t))switch(t.value){case"left":A=j;break;case"right":A=UA;break;case"top":e=j;break;case"bottom":e=UA;break;case"center":A===null?A=ie:e===null&&(e=ie);break}else N(t)&&(A===null?A=t:e===null&&(e=t));return{cx:A??ie,cy:e??ie}},Eg=n=>{const A=[];for(const i of n)if(i.type!==31){if(H(i)&&i.value==="round")break;N(i)&&A.push(i)}const e=A[0]??j,t=A[1]??e,r=A[2]??e,s=A[3]??t;return{type:1,top:e,right:t,bottom:r,left:s}},Ug=n=>{const A=n.filter(tn),e=A.findIndex(s=>tt(s,"at")),t=e===-1?A:A.slice(0,e),r=e===-1?[]:A.slice(e+1);return{type:2,radius:Mr(t),...Po(r)}},Fg=n=>{const A=n.filter(tn),e=A.findIndex(s=>tt(s,"at")),t=e===-1?A:A.slice(0,e),r=e===-1?[]:A.slice(e+1);return{type:3,rx:Mr(t.slice(0,1)),ry:Mr(t.slice(1,2)),...Po(r)}},Ig=n=>{const A=vA(n),e=[];for(const t of A){if(t.length===1&&H(t[0]))continue;const r=t.filter(N);r.length>=2&&e.push([r[0],r[1]])}return{type:4,points:e}},Sg=n=>{const A=n.find(e=>e.type===0);return A?{type:5,d:A.value}:Tr},Hg={name:"clip-path",initialValue:"none",prefix:!1,type:0,parse:(n,A)=>{if(H(A)&&A.value==="none")return Tr;if(A.type===18)switch(A.name){case"inset":return Eg(A.values);case"circle":return Ug(A.values);case"ellipse":return Fg(A.values);case"polygon":return Ig(A.values);case"path":return Sg(A.values)}return Tr}},Lg={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Tg={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"rtl":return 1;case"ltr":default:return 0}}},Mg={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:(n,A)=>A.filter(H).reduce((e,t)=>e|kg(t.value),0)},kg=n=>{switch(n){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},Dg={name:"float",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Pg={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:(n,A)=>A.type===20&&A.value==="normal"?0:A.type===17||A.type===15?A.number:0};var Bn;(function(n){n.NORMAL="normal",n.STRICT="strict"})(Bn||(Bn={}));const Kg={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"strict":return Bn.STRICT;case"normal":default:return Bn.NORMAL}}},Ng={name:"line-height",initialValue:"normal",prefix:!1,type:4},Ko=(n,A)=>H(n)&&n.value==="normal"?1.2*A:n.type===17?A*n.number:N(n)?S(n,A):A,Og={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:(n,A)=>A.type===20&&A.value==="none"?null:Lr.parse(n,A)},Rg={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"inside":return 0;case"outside":default:return 1}}},kr={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":return 22;case"hebrew":return 52;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;case"none":default:return-1}}},fn=n=>({name:`margin-${n}`,initialValue:"0",prefix:!1,type:4}),Gg=fn("top"),Vg=fn("right"),_g=fn("bottom"),Yg=fn("left"),zg={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:(n,A)=>A.filter(H).map(e=>{switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;case"visible":default:return 0}})},Jg={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"break-word":return"break-word";case"normal":default:return"normal"}}},wn=n=>({name:`padding-${n}`,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}),Xg=wn("top"),Wg=wn("right"),jg=wn("bottom"),Zg=wn("left"),qg={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"right":return 2;case"center":case"justify":return 1;case"left":default:return 0}}},$g={name:"position",initialValue:"static",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Ap={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>A.length===1&&tt(A[0],"none")?[]:vA(A).map(e=>{const t={color:FA.TRANSPARENT,offsetX:j,offsetY:j,blur:j};let r=0;for(let s=0;s<e.length;s++){const i=e[s];YA(i)?(r===0?t.offsetX=i:r===1?t.offsetY=i:t.blur=i,r++):t.color=XA.parse(n,i)}return t})},ep={name:"text-transform",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"uppercase":return 2;case"lowercase":return 1;case"capitalize":return 3}return 0}},tp={name:"transform",initialValue:"none",prefix:!0,type:0,parse:(n,A)=>{if(A.type===20&&A.value==="none")return null;if(A.type===18){const e=np[A.name];if(typeof e>"u")throw new Error(`Attempting to parse an unsupported transform function "${A.name}"`);return e(n,A.values)}return null}},np={matrix:(n,A)=>{const e=A.filter(t=>t.type===17).map(t=>t.number);return e.length===6?e:null},matrix3d:(n,A)=>{const e=A.filter(l=>l.type===17).map(l=>l.number),[t,r,{},{},s,i,{},{},{},{},{},{},o,a]=e;return e.length===16?[t,r,s,i,o,a]:null},rotate:(n,A)=>{if(A.length!==1)return null;const e=A[0];let t=0;if(e.type===17&&e.number===0)t=0;else if(e.type===15)t=ye.parse(n,e);else return null;const r=Math.cos(t),s=Math.sin(t);return[r,s,-s,r,0,0]}},No={type:16,number:50,flags:we},rp=[No,No],sp={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:(n,A)=>{const e=A.filter(N);return e.length!==2?rp:[e[0],e[1]]}},ip={name:"rotate",initialValue:"none",prefix:!1,type:0,parse:(n,A)=>A.type===20&&A.value==="none"?null:A.type===17&&A.number===0?0:A.type===15?ye.parse(n,A)*180/Math.PI:null},op={name:"visible",initialValue:"none",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"hidden":return 1;case"collapse":return 2;case"visible":default:return 0}}};var st;(function(n){n.NORMAL="normal",n.BREAK_ALL="break-all",n.KEEP_ALL="keep-all"})(st||(st={}));const ap={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"break-all":return st.BREAK_ALL;case"keep-all":return st.KEEP_ALL;case"normal":default:return st.NORMAL}}},IA=n=>n!==0,lp=n=>n===3||n===4,cp={name:"writing-mode",initialValue:"horizontal-tb",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"vertical-rl":return 1;case"vertical-lr":return 2;case"sideways-rl":return 3;case"sideways-lr":return 4;case"horizontal-tb":default:return 0}}},dp={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:(n,A)=>{if(A.type===20)return{auto:!0,order:0};if(W(A))return{auto:!1,order:A.number};throw new Error("Invalid z-index number parsed")}},Oo={name:"time",parse:(n,A)=>{if(A.type===15)switch(A.unit.toLowerCase()){case"s":return 1e3*A.number;case"ms":return A.number}throw new Error("Unsupported time type")}},hp={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:(n,A)=>W(A)?A.number:1},up={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},gp={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:(n,A)=>A.filter(H).map(e=>{switch(e.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(e=>e!==0)},pp={name:"text-decoration-style",initialValue:"solid",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"double":return 1;case"dotted":return 2;case"dashed":return 3;case"wavy":return 4;case"solid":default:return 0}}},Bp={name:"text-decoration-thickness",initialValue:"auto",prefix:!1,type:0,parse:(n,A)=>{if(H(A))switch(A.value){case"auto":return"auto";case"from-font":return"from-font"}return EA(A)?A.number:"auto"}},fp={name:"text-underline-offset",initialValue:"auto",prefix:!1,type:0,parse:(n,A)=>H(A)&&A.value==="auto"?"auto":EA(A)?A.number:"auto"},wp={name:"font-family",initialValue:"",prefix:!1,type:1,parse:(n,A)=>{const e=[],t=[];return A.forEach(r=>{switch(r.type){case 20:case 0:e.push(r.value);break;case 17:e.push(r.number.toString());break;case 4:t.push(e.join(" ")),e.length=0;break}}),e.length&&t.push(e.join(" ")),t.map(r=>r.indexOf(" ")===-1?r:`'${r}'`)}},mp={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},Cp={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:(n,A)=>{if(W(A))return A.number;if(H(A))switch(A.value){case"bold":return 700;case"normal":default:return 400}return 400}},yp={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>A.filter(H).map(e=>e.value)},vp={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"oblique":return"oblique";case"italic":return"italic";case"normal":default:return"normal"}}},_=(n,A)=>(n&A)!==0,bp={name:"content",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>{if(A.length===0)return[];const e=A[0];return e.type===20&&e.value==="none"?[]:A}},Qp={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:(n,A)=>{if(A.length===0)return null;const e=A[0];if(e.type===20&&e.value==="none")return null;const t=[],r=A.filter(tn);for(let s=0;s<r.length;s++){const i=r[s],o=r[s+1];if(i.type===20){const a=o&&W(o)?o.number:1;t.push({counter:i.value,increment:a})}}return t}},xp={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:(n,A)=>{if(A.length===0)return[];const e=[],t=A.filter(tn);for(let r=0;r<t.length;r++){const s=t[r],i=t[r+1];if(H(s)&&s.value!=="none"){const o=i&&W(i)?i.number:0;e.push({counter:s.value,reset:o})}}return e}},Ep={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:(n,A)=>A.filter(EA).map(e=>Oo.parse(n,e))},Up={name:"quotes",initialValue:"none",prefix:!0,type:1,parse:(n,A)=>{if(A.length===0)return null;const e=A[0];if(e.type===20&&e.value==="none")return null;const t=[],r=A.filter(Wh);if(r.length%2!==0)return null;for(let s=0;s<r.length;s+=2){const i=r[s].value,o=r[s+1].value;t.push({open:i,close:o})}return t}},Ro=(n,A,e)=>{if(!n)return"";const t=n[Math.min(A,n.length-1)];return t?e?t.open:t.close:""},Fp={name:"box-shadow",initialValue:"none",type:1,prefix:!1,parse:(n,A)=>A.length===1&&tt(A[0],"none")?[]:vA(A).map(e=>{const t={color:255,offsetX:j,offsetY:j,blur:j,spread:j,inset:!1};let r=0;for(let s=0;s<e.length;s++){const i=e[s];tt(i,"inset")?t.inset=!0:YA(i)?(r===0?t.offsetX=i:r===1?t.offsetY=i:r===2?t.blur=i:t.spread=i,r++):t.color=XA.parse(n,i)}return t})},Ip={name:"paint-order",initialValue:"normal",prefix:!1,type:1,parse:(n,A)=>{const e=[0,1,2],t=[];return A.filter(H).forEach(r=>{switch(r.value){case"stroke":t.push(1);break;case"fill":t.push(0);break;case"markers":t.push(2);break}}),e.forEach(r=>{t.indexOf(r)===-1&&t.push(r)}),t}},Sp={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},Hp={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:(n,A)=>EA(A)?A.number:0},Lp={name:"-webkit-line-clamp",initialValue:"none",prefix:!0,type:0,parse:(n,A)=>A.type===20&&A.value==="none"?0:A.type===17?Math.max(0,Math.floor(A.number)):0},Tp={name:"objectFit",initialValue:"fill",prefix:!1,type:1,parse:(n,A)=>A.filter(H).reduce((e,t)=>e|Mp(t.value),0)},Mp=n=>{switch(n){case"contain":return 2;case"cover":return 4;case"none":return 8;case"scale-down":return 16}return 0},kp={name:"text-overflow",initialValue:"clip",prefix:!1,type:2,parse:(n,A)=>{switch(A){case"ellipsis":return 1;case"clip":default:return 0}}};var cA;(function(n){n[n.AUTO=0]="AUTO",n[n.CRISP_EDGES=1]="CRISP_EDGES",n[n.PIXELATED=2]="PIXELATED",n[n.SMOOTH=3]="SMOOTH"})(cA||(cA={}));const Dp={name:"image-rendering",initialValue:"auto",prefix:!1,type:2,parse:(n,A)=>{switch(A.toLowerCase()){case"crisp-edges":case"-webkit-crisp-edges":case"-moz-crisp-edges":return cA.CRISP_EDGES;case"pixelated":case"-webkit-optimize-contrast":return cA.PIXELATED;case"smooth":case"high-quality":return cA.SMOOTH;case"auto":default:return cA.AUTO}}};class Pp{constructor(A,e){this.animationDuration=x(A,Ep,e.animationDuration),this.backgroundClip=x(A,zu,e.backgroundClip),this.backgroundColor=x(A,Ju,e.backgroundColor),this.backgroundImage=x(A,ng,e.backgroundImage),this.backgroundOrigin=x(A,rg,e.backgroundOrigin),this.backgroundPosition=x(A,sg,e.backgroundPosition),this.backgroundRepeat=x(A,ig,e.backgroundRepeat),this.backgroundSize=x(A,ag,e.backgroundSize),this.borderTopColor=x(A,cg,e.borderTopColor),this.borderRightColor=x(A,dg,e.borderRightColor),this.borderBottomColor=x(A,hg,e.borderBottomColor),this.borderLeftColor=x(A,ug,e.borderLeftColor),this.borderTopLeftRadius=x(A,gg,e.borderTopLeftRadius),this.borderTopRightRadius=x(A,pg,e.borderTopRightRadius),this.borderBottomRightRadius=x(A,Bg,e.borderBottomRightRadius),this.borderBottomLeftRadius=x(A,fg,e.borderBottomLeftRadius),this.borderTopStyle=x(A,wg,e.borderTopStyle),this.borderRightStyle=x(A,mg,e.borderRightStyle),this.borderBottomStyle=x(A,Cg,e.borderBottomStyle),this.borderLeftStyle=x(A,yg,e.borderLeftStyle),this.borderTopWidth=x(A,vg,e.borderTopWidth),this.borderRightWidth=x(A,bg,e.borderRightWidth),this.borderBottomWidth=x(A,Qg,e.borderBottomWidth),this.borderLeftWidth=x(A,xg,e.borderLeftWidth),this.boxShadow=x(A,Fp,e.boxShadow),this.clipPath=x(A,Hg,e.clipPath),this.color=x(A,Lg,e.color),this.direction=x(A,Tg,e.direction),this.display=x(A,Mg,e.display),this.float=x(A,Dg,e.cssFloat),this.fontFamily=x(A,wp,e.fontFamily),this.fontSize=x(A,mp,e.fontSize),this.fontStyle=x(A,vp,e.fontStyle),this.fontVariant=x(A,yp,e.fontVariant),this.fontWeight=x(A,Cp,e.fontWeight),this.letterSpacing=x(A,Pg,e.letterSpacing),this.lineBreak=x(A,Kg,e.lineBreak),this.lineHeight=x(A,Ng,e.lineHeight),this.listStyleImage=x(A,Og,e.listStyleImage),this.listStylePosition=x(A,Rg,e.listStylePosition),this.listStyleType=x(A,kr,e.listStyleType),this.marginTop=x(A,Gg,e.marginTop),this.marginRight=x(A,Vg,e.marginRight),this.marginBottom=x(A,_g,e.marginBottom),this.marginLeft=x(A,Yg,e.marginLeft),this.opacity=x(A,hp,e.opacity);const t=x(A,zg,e.overflow);this.overflowX=t[0],this.overflowY=t[t.length>1?1:0],this.overflowWrap=x(A,Jg,e.overflowWrap),this.paddingTop=x(A,Xg,e.paddingTop),this.paddingRight=x(A,Wg,e.paddingRight),this.paddingBottom=x(A,jg,e.paddingBottom),this.paddingLeft=x(A,Zg,e.paddingLeft),this.paintOrder=x(A,Ip,e.paintOrder),this.position=x(A,$g,e.position),this.textAlign=x(A,qg,e.textAlign),this.textDecorationColor=x(A,up,e.textDecorationColor??e.color),this.textDecorationLine=x(A,gp,e.textDecorationLine??e.textDecoration),this.textDecorationStyle=x(A,pp,e.textDecorationStyle),this.textDecorationThickness=x(A,Bp,e.textDecorationThickness),this.textUnderlineOffset=x(A,fp,e.textUnderlineOffset),this.textShadow=x(A,Ap,e.textShadow),this.textTransform=x(A,ep,e.textTransform),this.textOverflow=x(A,kp,e.textOverflow),this.transform=x(A,tp,e.transform),this.transformOrigin=x(A,sp,e.transformOrigin),this.rotate=x(A,ip,e.rotate),this.visibility=x(A,op,e.visibility),this.webkitTextStrokeColor=x(A,Sp,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=x(A,Hp,e.webkitTextStrokeWidth),this.webkitLineClamp=x(A,Lp,e.webkitLineClamp),this.wordBreak=x(A,ap,e.wordBreak),this.writingMode=x(A,cp,e.writingMode),this.zIndex=x(A,dp,e.zIndex),this.objectFit=x(A,Tp,e.objectFit),this.imageRendering=x(A,Dp,e.imageRendering)}isVisible(){return this.display>0&&this.opacity>0&&this.visibility===0}isTransparent(){return zA(this.backgroundColor)}isTransformed(){return this.transform!==null||this.rotate!==null}isPositioned(){return this.position!==0}isPositionedWithZIndex(){return this.isPositioned()&&!this.zIndex.auto}isFloating(){return this.float!==0}isInlineLevel(){return _(this.display,4)||_(this.display,33554432)||_(this.display,268435456)||_(this.display,536870912)||_(this.display,67108864)||_(this.display,134217728)}}class Kp{constructor(A,e){this.content=x(A,bp,e.content),this.quotes=x(A,Up,e.quotes)}}class Go{constructor(A,e){this.counterIncrement=x(A,Qp,e.counterIncrement),this.counterReset=x(A,xp,e.counterReset)}}const x=(n,A,e)=>{const t=new so,r=e!==null&&typeof e<"u"?e.toString():A.initialValue;t.write(r);const s=new Ce(t.read());switch(A.type){case 2:const i=s.parseComponentValue();return A.parse(n,H(i)?i.value:A.initialValue);case 0:return A.parse(n,s.parseComponentValue());case 1:return A.parse(n,s.parseComponentValues());case 4:return s.parseComponentValue();case 3:switch(A.format){case"angle":return ye.parse(n,s.parseComponentValue());case"color":return XA.parse(n,s.parseComponentValue());case"image":return Lr.parse(n,s.parseComponentValue());case"length":const o=s.parseComponentValue();return YA(o)?o:j;case"length-percentage":const a=s.parseComponentValue();return N(a)?a:j;case"time":return Oo.parse(n,s.parseComponentValue())}break}},MA=n=>n.nodeType===Node.ELEMENT_NODE,Vo=n=>n.nodeType===Node.TEXT_NODE,Qe=n=>typeof n.className=="object",it=n=>MA(n)&&typeof n.style<"u"&&!Qe(n),Np=n=>n.tagName==="LI",Op=n=>n.tagName==="OL",_o=n=>!Qe(n)&&n.tagName.indexOf("-")>0,Rp="data-html2canvas-debug",Gp=n=>{if(typeof n.getAttribute!="function")return 0;switch(n.getAttribute(Rp)){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}},Dr=(n,A)=>{const e=Gp(n);return e===1||A===e};class Yo{static normalizeElement(A,e){const t={};return it(A)&&(e.animationDuration.some(r=>r>0)&&(t.animationDuration=A.style.animationDuration,A.style.animationDuration="0s"),e.transform!==null&&(t.transform=A.style.transform,A.style.transform="translate(0, 0)"),e.rotate!==null&&(t.rotate=A.style.rotate,A.style.rotate="0deg",t.transform===void 0&&(t.transform=A.style.transform,A.style.transform="translate(0, 0)"))),t}static restoreElement(A,e){it(A)&&(e.animationDuration!==void 0&&(A.style.animationDuration=e.animationDuration),e.transform!==void 0&&(A.style.transform=e.transform),e.rotate!==void 0&&(A.style.rotate=e.rotate))}}class SA{constructor(A,e,t={}){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,Dr(e,3),this.styles=new Pp(A,A.config.window.getComputedStyle(e,null)),t.normalizeDom!==!1&&it(e)&&(this.originalStyles=Yo.normalizeElement(e,this.styles),this.originalElement=e),this.bounds=Dt(this.context,e),Dr(e,4)&&(this.flags|=16)}restore(){this.originalStyles&&this.originalElement&&(Yo.restoreElement(this.originalElement,this.originalStyles),this.originalStyles=void 0,this.originalElement=void 0)}restoreTree(){this.restore();for(const A of this.elements)A.restoreTree()}}for(var Vp="AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=",zo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=typeof Uint8Array>"u"?[]:new Uint8Array(256),mn=0;mn<zo.length;mn++)ot[zo.charCodeAt(mn)]=mn;for(var _p=function(n){var A=n.length*.75,e=n.length,t,r=0,s,i,o,a;n[n.length-1]==="="&&(A--,n[n.length-2]==="="&&A--);var l=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(A):new Array(A),d=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t<e;t+=4)s=ot[n.charCodeAt(t)],i=ot[n.charCodeAt(t+1)],o=ot[n.charCodeAt(t+2)],a=ot[n.charCodeAt(t+3)],d[r++]=s<<2|i>>4,d[r++]=(i&15)<<4|o>>2,d[r++]=(o&3)<<6|a&63;return l},Yp=function(n){for(var A=n.length,e=[],t=0;t<A;t+=2)e.push(n[t+1]<<8|n[t]);return e},zp=function(n){for(var A=n.length,e=[],t=0;t<A;t+=4)e.push(n[t+3]<<24|n[t+2]<<16|n[t+1]<<8|n[t]);return e},ae=5,Pr=11,Kr=2,Jp=Pr-ae,Jo=65536>>ae,Xp=1<<ae,Nr=Xp-1,Wp=1024>>ae,jp=Jo+Wp,Zp=jp,qp=32,$p=Zp+qp,AB=65536>>Pr,eB=1<<Jp,tB=eB-1,Xo=function(n,A,e){return n.slice?n.slice(A,e):new Uint16Array(Array.prototype.slice.call(n,A,e))},nB=function(n,A,e){return n.slice?n.slice(A,e):new Uint32Array(Array.prototype.slice.call(n,A,e))},rB=function(n,A){var e=_p(n),t=Array.isArray(e)?zp(e):new Uint32Array(e),r=Array.isArray(e)?Yp(e):new Uint16Array(e),s=24,i=Xo(r,s/2,t[4]/2),o=t[5]===2?Xo(r,(s+t[4])/2):nB(t,Math.ceil((s+t[4])/4));return new sB(t[0],t[1],t[2],t[3],i,o)},sB=function(){function n(A,e,t,r,s,i){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=s,this.data=i}return n.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=this.index[A>>ae],e=(e<<Kr)+(A&Nr),this.data[e];if(A<=65535)return e=this.index[Jo+(A-55296>>ae)],e=(e<<Kr)+(A&Nr),this.data[e];if(A<this.highStart)return e=$p-AB+(A>>Pr),e=this.index[e],e+=A>>ae&tB,e=this.index[e],e=(e<<Kr)+(A&Nr),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},n}(),Wo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",iB=typeof Uint8Array>"u"?[]:new Uint8Array(256),Cn=0;Cn<Wo.length;Cn++)iB[Wo.charCodeAt(Cn)]=Cn;var oB=1,Or=2,Rr=3,jo=4,Zo=5,aB=7,qo=8,Gr=9,Vr=10,$o=11,Aa=12,ea=13,ta=14,_r=15,lB=function(n){for(var A=[],e=0,t=n.length;e<t;){var r=n.charCodeAt(e++);if(r>=55296&&r<=56319&&e<t){var s=n.charCodeAt(e++);(s&64512)===56320?A.push(((r&1023)<<10)+(s&1023)+65536):(A.push(r),e--)}else A.push(r)}return A},cB=function(){for(var n=[],A=0;A<arguments.length;A++)n[A]=arguments[A];if(String.fromCodePoint)return String.fromCodePoint.apply(String,n);var e=n.length;if(!e)return"";for(var t=[],r=-1,s="";++r<e;){var i=n[r];i<=65535?t.push(i):(i-=65536,t.push((i>>10)+55296,i%1024+56320)),(r+1===e||t.length>16384)&&(s+=String.fromCharCode.apply(String,t),t.length=0)}return s},dB=rB(Vp),mA="×",Yr="÷",hB=function(n){return dB.get(n)},uB=function(n,A,e){var t=e-2,r=A[t],s=A[e-1],i=A[e];if(s===Or&&i===Rr)return mA;if(s===Or||s===Rr||s===jo||i===Or||i===Rr||i===jo)return Yr;if(s===qo&&[qo,Gr,$o,Aa].indexOf(i)!==-1||(s===$o||s===Gr)&&(i===Gr||i===Vr)||(s===Aa||s===Vr)&&i===Vr||i===ea||i===Zo||i===aB||s===oB)return mA;if(s===ea&&i===ta){for(;r===Zo;)r=A[--t];if(r===ta)return mA}if(s===_r&&i===_r){for(var o=0;r===_r;)o++,r=A[--t];if(o%2===0)return mA}return Yr},gB=function(n){var A=lB(n),e=A.length,t=0,r=0,s=A.map(hB);return{next:function(){if(t>=e)return{done:!0,value:null};for(var i=mA;t<e&&(i=uB(A,s,++t))===mA;);if(i!==mA||t===e){var o=cB.apply(null,A.slice(r,t));return r=t,{value:o,done:!1}}return{done:!0,value:null}}}},pB=function(n){for(var A=gB(n),e=[],t;!(t=A.next()).done;)t.value&&e.push(t.value.slice());return e};const BB=n=>{if(n.createRange){const e=n.createRange();if(e.getBoundingClientRect){const t=n.createElement("boundtest");t.style.height="123px",t.style.display="block",n.body.appendChild(t),e.selectNode(t);const r=e.getBoundingClientRect(),s=Math.round(r.height);if(n.body.removeChild(t),s===123)return!0}}return!1},fB=n=>{const A=n.createElement("boundtest");A.style.width="50px",A.style.display="block",A.style.fontSize="12px",A.style.letterSpacing="0px",A.style.wordSpacing="0px",n.body.appendChild(A);const e=n.createRange();A.innerHTML=typeof"".repeat=="function"?"&#128104;".repeat(10):"";const t=A.firstChild,r=Pt(t.data).map(a=>z(a));let s=0,i={};const o=r.every((a,l)=>{e.setStart(t,s),e.setEnd(t,s+a.length);const d=e.getBoundingClientRect();s+=a.length;const c=d.x>i.x||d.y>i.y;return i=d,l===0?!0:c});return n.body.removeChild(A),o},wB=()=>typeof new Image().crossOrigin<"u",mB=()=>typeof new XMLHttpRequest().responseType=="string",CB=n=>{const A=new Image,e=n.createElement("canvas"),t=e.getContext("2d");if(!t)return!1;A.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{t.drawImage(A,0,0),e.toDataURL()}catch{return!1}return!0},na=n=>n[0]===0&&n[1]===255&&n[2]===0&&n[3]===255,yB=n=>{const A=n.createElement("canvas"),e=100;A.width=e,A.height=e;const t=A.getContext("2d");if(!t)return Promise.reject(!1);t.fillStyle="rgb(0, 255, 0)",t.fillRect(0,0,e,e);const r=new Image,s=A.toDataURL();r.src=s;const i=zr(e,e,0,0,r);return t.fillStyle="red",t.fillRect(0,0,e,e),ra(i).then(o=>{t.drawImage(o,0,0);const a=t.getImageData(0,0,e,e).data;t.fillStyle="red",t.fillRect(0,0,e,e);const l=n.createElement("div");return l.style.backgroundImage=`url(${s})`,l.style.height=`${e}px`,na(a)?ra(zr(e,e,0,0,l)):Promise.reject(!1)}).then(o=>(t.drawImage(o,0,0),na(t.getImageData(0,0,e,e).data))).catch(()=>!1)},zr=(n,A,e,t,r)=>{const s="http://www.w3.org/2000/svg",i=document.createElementNS(s,"svg"),o=document.createElementNS(s,"foreignObject");return i.setAttributeNS(null,"width",n.toString()),i.setAttributeNS(null,"height",A.toString()),o.setAttributeNS(null,"width","100%"),o.setAttributeNS(null,"height","100%"),o.setAttributeNS(null,"x",e.toString()),o.setAttributeNS(null,"y",t.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),i.appendChild(o),o.appendChild(r),i},ra=n=>new Promise((A,e)=>{const t=new Image;t.onload=()=>A(t),t.onerror=e,t.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(n))}`}),nA={get SUPPORT_RANGE_BOUNDS(){const n=BB(document);return Object.defineProperty(nA,"SUPPORT_RANGE_BOUNDS",{value:n}),n},get SUPPORT_WORD_BREAKING(){const n=nA.SUPPORT_RANGE_BOUNDS&&fB(document);return Object.defineProperty(nA,"SUPPORT_WORD_BREAKING",{value:n}),n},get SUPPORT_SVG_DRAWING(){const n=CB(document);return Object.defineProperty(nA,"SUPPORT_SVG_DRAWING",{value:n}),n},get SUPPORT_FOREIGNOBJECT_DRAWING(){const n=typeof Array.from=="function"&&typeof window.fetch=="function"?yB(document):Promise.resolve(!1);return Object.defineProperty(nA,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:n}),n},get SUPPORT_CORS_IMAGES(){const n=wB();return Object.defineProperty(nA,"SUPPORT_CORS_IMAGES",{value:n}),n},get SUPPORT_RESPONSE_TYPE(){const n=mB();return Object.defineProperty(nA,"SUPPORT_RESPONSE_TYPE",{value:n}),n},get SUPPORT_CORS_XHR(){const n="withCredentials"in new XMLHttpRequest;return Object.defineProperty(nA,"SUPPORT_CORS_XHR",{value:n}),n},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){const n=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(nA,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:n}),n}};class le{constructor(A,e){this.text=A,this.bounds=e}}const vB=(n,A,e,t)=>{const r=xB(A,e),s=[];let i=0;return r.forEach(o=>{if(e.textDecorationLine.length||o.trim().length>0)if(nA.SUPPORT_RANGE_BOUNDS){const a=sa(t,i,o.length).getClientRects();if(a.length>1){const l=xe(o);let d=0;l.forEach(c=>{s.push(new le(c,rA.fromDOMRectList(n,sa(t,d+i,c.length).getClientRects()))),d+=c.length})}else s.push(new le(o,rA.fromDOMRectList(n,a)))}else{const a=t.splitText(o.length);s.push(new le(o,bB(n,t))),t=a}else nA.SUPPORT_RANGE_BOUNDS||(t=t.splitText(o.length));i+=o.length}),s},bB=(n,A)=>{const e=A.ownerDocument;if(e){const t=e.createElement("html2canvaswrapper");t.appendChild(A.cloneNode(!0));const r=A.parentNode;if(r){r.replaceChild(t,A);const s=Dt(n,t);return t.firstChild&&r.replaceChild(t.firstChild,t),s}}return rA.EMPTY},sa=(n,A,e)=>{const t=n.ownerDocument;if(!t)throw new Error("Node has no owner document");const r=t.createRange();return r.setStart(n,A),r.setEnd(n,A+e),r},xe=n=>{if(nA.SUPPORT_NATIVE_TEXT_SEGMENTATION){const A=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(A.segment(n)).map(e=>e.segment)}return pB(n)},QB=(n,A)=>{if(nA.SUPPORT_NATIVE_TEXT_SEGMENTATION){const e=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(e.segment(n)).map(t=>t.segment)}return UB(n,A)},xB=(n,A)=>IA(A.writingMode)||A.letterSpacing!==0?xe(n):QB(n,A),EB=[32,160,4961,65792,65793,4153,4241],UB=(n,A)=>{const e=Vd(n,{lineBreak:A.lineBreak,wordBreak:A.overflowWrap==="break-word"?"break-word":A.wordBreak}),t=[];let r;for(;!(r=e.next()).done;)if(r.value){const s=r.value.slice(),i=Pt(s);let o="";i.forEach(a=>{EB.indexOf(a)===-1?o+=z(a):(o.length&&t.push(o),t.push(z(a)),o="")}),o.length&&t.push(o)}return t};class FB{constructor(A,e,t){this.text=IB(e.data,t.textTransform),this.text.length!==e.data.length&&(e.data=this.text),this.textBounds=vB(A,this.text,t,e)}}const IB=(n,A)=>{switch(A){case 1:return n.toLowerCase();case 3:return n.replace(SB,HB);case 2:return n.toUpperCase();default:return n}},SB=/(^|\s|:|-|\(|\))([a-z])/g,HB=(n,A,e)=>n.length>0?A+e.toUpperCase():n;class ia extends SA{constructor(A,e){super(A,e),this.src=e.currentSrc||e.src,this.intrinsicWidth=e.naturalWidth,this.intrinsicHeight=e.naturalHeight,this.context.cache.addImage(this.src)}}class oa extends SA{constructor(A,e){super(A,e),this.canvas=e,this.intrinsicWidth=e.width,this.intrinsicHeight=e.height}}class aa extends SA{constructor(A,e){super(A,e);const t=new XMLSerializer,r=Dt(A,e);e.setAttribute("width",`${r.width}px`),e.setAttribute("height",`${r.height}px`),this.svg=`data:image/svg+xml,${encodeURIComponent(t.serializeToString(e))}`,this.intrinsicWidth=e.width.baseVal.value,this.intrinsicHeight=e.height.baseVal.value,this.context.cache.addImage(this.svg)}}class la extends SA{constructor(A,e){super(A,e),this.value=e.value}}class Jr extends SA{constructor(A,e){super(A,e),this.start=e.start,this.reversed=typeof e.reversed=="boolean"&&e.reversed===!0}}const LB=[{type:15,flags:0,unit:"px",number:3}],TB=[{type:16,flags:0,number:50}],MB=n=>n.width>n.height?new rA(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width<n.height?new rA(n.left,n.top+(n.height-n.width)/2,n.width,n.width):n,kB=n=>{const A=n.type===PB?new Array(n.value.length+1).join("•"):n.value;return A.length===0?n.placeholder||"":A},DB=n=>n.value.length===0&&!!n.placeholder,yn="checkbox",vn="radio",PB="password",ca=707406591,KB=1970632191;class at extends SA{constructor(A,e){switch(super(A,e),this.type=e.type.toLowerCase(),this.checked=e.checked,this.value=kB(e),this.isPlaceholder=DB(e),(this.type===yn||this.type===vn)&&(this.styles.backgroundColor=3739148031,this.styles.borderTopColor=this.styles.borderRightColor=this.styles.borderBottomColor=this.styles.borderLeftColor=2779096575,this.styles.borderTopWidth=this.styles.borderRightWidth=this.styles.borderBottomWidth=this.styles.borderLeftWidth=1,this.styles.borderTopStyle=this.styles.borderRightStyle=this.styles.borderBottomStyle=this.styles.borderLeftStyle=1,this.styles.backgroundClip=[0],this.styles.backgroundOrigin=[0],this.bounds=MB(this.bounds)),this.type){case yn:this.styles.borderTopRightRadius=this.styles.borderTopLeftRadius=this.styles.borderBottomRightRadius=this.styles.borderBottomLeftRadius=LB;break;case vn:this.styles.borderTopRightRadius=this.styles.borderTopLeftRadius=this.styles.borderBottomRightRadius=this.styles.borderBottomLeftRadius=TB;break}}}class da extends SA{constructor(A,e){super(A,e);const t=e.options[e.selectedIndex||0];this.value=t&&t.text||""}}class ha extends SA{constructor(A,e){super(A,e),this.value=e.value}}class ua extends SA{constructor(A,e,t){super(A,e),this.src=e.src,this.width=parseInt(e.width,10)||0,this.height=parseInt(e.height,10)||0,this.backgroundColor=this.styles.backgroundColor,this.parseTreeFn=t;try{if(e.contentWindow&&e.contentWindow.document&&e.contentWindow.document.documentElement&&this.parseTreeFn){this.tree=this.parseTreeFn(A,e.contentWindow.document.documentElement);const r=e.contentWindow.document.documentElement?ve(A,getComputedStyle(e.contentWindow.document.documentElement).backgroundColor):FA.TRANSPARENT,s=e.contentWindow.document.body?ve(A,getComputedStyle(e.contentWindow.document.body).backgroundColor):FA.TRANSPARENT;this.backgroundColor=zA(r)?zA(s)?this.styles.backgroundColor:s:r}}catch{}}}const NB=["OL","UL","MENU"],bn=(n,A,e,t)=>{for(let r=A.firstChild,s;r;r=s)if(s=r.nextSibling,Vo(r)&&r.data.length>0)e.textNodes.push(new FB(n,r,e.styles));else if(MA(r))if(lt(r)&&r.assignedNodes)r.assignedNodes().forEach(i=>bn(n,i,e,t));else{const i=ga(n,r);i.styles.isVisible()&&(OB(r,i,t)?i.flags|=4:RB(i.styles)&&(i.flags|=2),NB.indexOf(r.tagName)!==-1&&(i.flags|=8),e.elements.push(i),r.slot,r.shadowRoot?bn(n,r.shadowRoot,i,t):!Qn(r)&&!Ba(r)&&!xn(r)&&bn(n,r,i,t))}},ga=(n,A)=>Wr(A)?new ia(n,A):fa(A)?new oa(n,A):Ba(A)?new aa(n,A):Np(A)?new la(n,A):Op(A)?new Jr(n,A):GB(A)?new at(n,A):xn(A)?new da(n,A):Qn(A)?new ha(n,A):ma(A)?new ua(n,A,pa):new SA(n,A),pa=(n,A)=>{const e=ga(n,A);return e.flags|=4,bn(n,A,e,e),e},OB=(n,A,e)=>A.styles.isPositionedWithZIndex()||A.styles.opacity<1||A.styles.isTransformed()||Xr(n)&&e.styles.isTransparent(),RB=n=>n.isPositioned()||n.isFloating()?!0:_(n.display,268435456)||_(n.display,33554432)||_(n.display,536870912)||_(n.display,134217728),GB=n=>n.tagName==="INPUT",VB=n=>n.tagName==="HTML",Ba=n=>n.tagName==="svg",Xr=n=>n.tagName==="BODY",fa=n=>n.tagName==="CANVAS",wa=n=>n.tagName==="VIDEO",Wr=n=>n.tagName==="IMG",ma=n=>n.tagName==="IFRAME",jr=n=>n.tagName==="STYLE",Ca=n=>n.tagName==="SCRIPT",Qn=n=>n.tagName==="TEXTAREA",xn=n=>n.tagName==="SELECT",lt=n=>n.tagName==="SLOT";class _B{constructor(){this.counters={}}getCounterValue(A){const e=this.counters[A];return e&&e.length?e[e.length-1]:1}getCounterValues(A){const e=this.counters[A];return e||[]}pop(A){A.forEach(e=>this.counters[e].pop())}parse(A){const e=A.counterIncrement,t=A.counterReset;let r=!0;e!==null&&e.forEach(i=>{const o=this.counters[i.counter];o&&i.increment!==0&&(r=!1,o.length||o.push(1),o[Math.max(0,o.length-1)]+=i.increment)});const s=[];return r&&t.forEach(i=>{let o=this.counters[i.counter];s.push(i.counter),o||(o=this.counters[i.counter]=[]),o.push(i.reset)}),s}}const ya={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},va={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},YB={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},zB={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Ee=(n,A,e,t,r,s)=>n<A||n>e?dt(n,r,s.length>0):t.integers.reduce((i,o,a)=>{for(;n>=o;)n-=o,i+=t.values[a];return i},"")+s,ba=(n,A,e,t)=>{let r="";do e||n--,r=t(n)+r,n/=A;while(n*A>=A);return r},J=(n,A,e,t,r)=>{const s=e-A+1;return(n<0?"-":"")+(ba(Math.abs(n),s,t,i=>z(Math.floor(i%s)+A))+r)},ce=(n,A,e=". ")=>{const t=A.length;return ba(Math.abs(n),t,!1,r=>A[Math.floor(r%t)])+e},Ue=1,WA=2,jA=4,ct=8,kA=(n,A,e,t,r,s)=>{if(n<-9999||n>9999)return dt(n,4,r.length>0);let i=Math.abs(n),o=r;if(i===0)return A[0]+o;for(let a=0;i>0&&a<=4;a++){const l=i%10;l===0&&_(s,Ue)&&o!==""?o=A[l]+o:l>1||l===1&&a===0||l===1&&a===1&&_(s,WA)||l===1&&a===1&&_(s,jA)&&n>100||l===1&&a>1&&_(s,ct)?o=A[l]+(a>0?e[a-1]:"")+o:l===1&&a>0&&(o=e[a-1]+o),i=Math.floor(i/10)}return(n<0?t:"")+o},Qa="十百千萬",xa="拾佰仟萬",Ea="マイナス",Zr="마이너스",dt=(n,A,e)=>{const t=e?". ":"",r=e?"、":"",s=e?", ":"",i=e?" ":"";switch(A){case 0:return"•"+i;case 1:return"◦"+i;case 2:return"◾"+i;case 5:const o=J(n,48,57,!0,t);return o.length<4?`0${o}`:o;case 4:return ce(n,"〇一二三四五六七八九",r);case 6:return Ee(n,1,3999,ya,3,t).toLowerCase();case 7:return Ee(n,1,3999,ya,3,t);case 8:return J(n,945,969,!1,t);case 9:return J(n,97,122,!1,t);case 10:return J(n,65,90,!1,t);case 11:return J(n,1632,1641,!0,t);case 12:case 49:return Ee(n,1,9999,va,3,t);case 35:return Ee(n,1,9999,va,3,t).toLowerCase();case 13:return J(n,2534,2543,!0,t);case 14:case 30:return J(n,6112,6121,!0,t);case 15:return ce(n,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return ce(n,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return kA(n,"零一二三四五六七八九",Qa,"負",r,WA|jA|ct);case 47:return kA(n,"零壹貳參肆伍陸柒捌玖",xa,"負",r,Ue|WA|jA|ct);case 42:return kA(n,"零一二三四五六七八九",Qa,"负",r,WA|jA|ct);case 41:return kA(n,"零壹贰叁肆伍陆柒捌玖",xa,"负",r,Ue|WA|jA|ct);case 26:return kA(n,"〇一二三四五六七八九","十百千万",Ea,r,0);case 25:return kA(n,"零壱弐参四伍六七八九","拾百千万",Ea,r,Ue|WA|jA);case 31:return kA(n,"영일이삼사오육칠팔구","십백천만",Zr,s,Ue|WA|jA);case 33:return kA(n,"零一二三四五六七八九","十百千萬",Zr,s,0);case 32:return kA(n,"零壹貳參四五六七八九","拾百千",Zr,s,Ue|WA|jA);case 18:return J(n,2406,2415,!0,t);case 20:return Ee(n,1,19999,zB,3,t);case 21:return J(n,2790,2799,!0,t);case 22:return J(n,2662,2671,!0,t);case 52:return Ee(n,1,10999,YB,3,t);case 23:return ce(n,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return ce(n,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return J(n,3302,3311,!0,t);case 28:return ce(n,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return ce(n,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return J(n,3792,3801,!0,t);case 37:return J(n,6160,6169,!0,t);case 38:return J(n,4160,4169,!0,t);case 39:return J(n,2918,2927,!0,t);case 40:return J(n,1776,1785,!0,t);case 43:return J(n,3046,3055,!0,t);case 44:return J(n,3174,3183,!0,t);case 45:return J(n,3664,3673,!0,t);case 46:return J(n,3872,3881,!0,t);case 3:default:return J(n,48,57,!0,t)}},qr="data-html2canvas-ignore",JB=n=>{let A=n;for(;A;){if(A.parentNode&&A.parentNode.host)return A.parentNode;const e=A.getRootNode();if(e&&e!==A.ownerDocument&&e.host)return e;A=A.parentNode}return null};class Ua{constructor(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new _B,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");if(!this.options.iframeContainer){const r=JB(e);r&&(this.options.iframeContainer=r)}this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}toIFrame(A,e){var h,u;const t=XB(A,e,this.options.iframeContainer);if(!t.contentWindow)throw new Error("Unable to find iframe window");const r=A.defaultView.pageXOffset,s=A.defaultView.pageYOffset,i=t.contentWindow,o=i.document,a=ZB(t).then(async()=>{this.scrolledElements.forEach(ef),i&&(i.scrollTo(e.left,e.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(i.scrollY!==e.top||i.scrollX!==e.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(i.scrollX-e.left,i.scrollY-e.top,0,0)));const g=this.options.onclone,B=this.clonedReferenceElement;if(typeof B>"u")throw new Error(`Error finding the ${this.referenceElement.nodeName} in the cloned document`);return o.fonts&&o.fonts.ready&&await o.fonts.ready,/(AppleWebKit)/g.test(navigator.userAgent)&&await jB(o),typeof g=="function"?Promise.resolve().then(()=>g(o,B)).then(()=>t):t}),l=A.baseURI;o.open();const d=$B(document.doctype)+"<html></html>";try{const g=(h=this.referenceElement.ownerDocument)==null?void 0:h.defaultView,B=g&&g.trustedTypes;let f=(u=B==null?void 0:B.getPolicy)==null?void 0:u.call(B,"html2canvas-pro");!f&&B&&(f=B.createPolicy("html2canvas-pro",{createHTML:m=>m})),f?o.write(f.createHTML(d)):o.write(d)}catch{o.write(d)}Af(this.referenceElement.ownerDocument,r,s),o.close();const c=o.adoptNode(this.documentElement);return of(c,l),o.replaceChild(c,o.documentElement),a}createElementClone(A){if(Dr(A,2),fa(A))return this.createCanvasClone(A);if(wa(A))return this.createVideoClone(A);if(jr(A))return this.createStyleClone(A);const e=A.cloneNode(!1);return Wr(e)&&(Wr(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),e.loading==="lazy"&&(e.loading="eager")),_o(e)&&!Qe(e)?this.createCustomElementClone(e):e}createCustomElementClone(A){const e=document.createElement("div");if(e.className=A.className,$r(A.style,e),A.shadowRoot)try{e.attachShadow({mode:"open"})}catch(t){this.context.logger.error("Failed to attach shadow root to custom element clone:",t)}return e}createStyleClone(A){try{const t=A.sheet;if(t&&t.cssRules){const r=[].slice.call(t.cssRules,0).reduce((i,o)=>o&&typeof o.cssText=="string"?i+o.cssText:i,""),s=A.cloneNode(!1);return s.textContent=r,this.options.cspNonce&&(s.nonce=this.options.cspNonce),s}}catch(t){if(this.context.logger.error("Unable to access cssRules property",t),t.name!=="SecurityError")throw t}const e=A.cloneNode(!1);return this.options.cspNonce&&(e.nonce=this.options.cspNonce),e}createCanvasClone(A){if(this.options.inlineImages&&A.ownerDocument){const t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}const e=A.cloneNode(!1);try{e.width=A.width,e.height=A.height;const t=A.getContext("2d"),r=e.getContext("2d",{willReadFrequently:!0});if(r)if(!this.options.allowTaint&&t)r.putImageData(t.getImageData(0,0,A.width,A.height),0,0);else{const s=A.getContext("webgl2")??A.getContext("webgl");if(s){const i=s.getContextAttributes();(i==null?void 0:i.preserveDrawingBuffer)===!1&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}r.drawImage(A,0,0)}return e}catch{this.context.logger.info("Unable to clone canvas as it is tainted",A)}return e}createVideoClone(A){const e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;const t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch{this.context.logger.info("Unable to clone video as it is tainted",A)}const r=A.ownerDocument.createElement("canvas");return r.width=A.offsetWidth,r.height=A.offsetHeight,r}appendChildNode(A,e,t){(!MA(e)||!Ca(e)&&!e.hasAttribute(qr)&&(typeof this.options.ignoreElements!="function"||!this.options.ignoreElements(e)))&&(!this.options.copyStyles||!MA(e)||!jr(e))&&A.appendChild(this.cloneNode(e,t))}shouldCloneChild(A){return!MA(A)||!Ca(A)&&!A.hasAttribute(qr)&&(typeof this.options.ignoreElements!="function"||!this.options.ignoreElements(A))}shouldCloneStyleElement(A){return!this.options.copyStyles||!MA(A)||!jr(A)}safeAppendClonedChild(A,e,t){this.shouldCloneChild(e)&&this.shouldCloneStyleElement(e)&&A.appendChild(this.cloneNode(e,t))}cloneAssignedNodes(A,e,t){A.forEach(r=>{this.safeAppendClonedChild(e,r,t)})}cloneSlotFallbackContent(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)this.safeAppendClonedChild(e,r,t)}cloneSlotElement(A,e,t){if(!lt(A))return;const r=A;if(typeof r.assignedNodes!="function"){this.context.logger.warn("HTMLSlotElement.assignedNodes is not available",A),this.cloneSlotFallbackContent(A,e,t);return}const s=r.assignedNodes();if(!s||!Array.isArray(s)){this.context.logger.warn("assignedNodes() did not return a valid array",A),this.cloneSlotFallbackContent(A,e,t);return}s.length>0?this.cloneAssignedNodes(s,e,t):this.cloneSlotFallbackContent(A,e,t)}cloneShadowDOMChildren(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)MA(r)&&lt(r)?this.cloneSlotElement(r,e,t):this.safeAppendClonedChild(e,r,t)}cloneLightDOMChildren(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)this.appendChildNode(e,r,t)}cloneSlotElementAsLightDOM(A,e,t){if(!lt(A))return;const r=A;if(typeof r.assignedNodes!="function"){for(let i=A.firstChild;i;i=i.nextSibling)this.appendChildNode(e,i,t);return}const s=r.assignedNodes();if(s&&Array.isArray(s)&&s.length>0)s.forEach(i=>this.appendChildNode(e,i,t));else for(let i=A.firstChild;i;i=i.nextSibling)this.appendChildNode(e,i,t)}cloneShadowDOMAsLightDOM(A,e,t){for(let r=A.firstChild;r;r=r.nextSibling)MA(r)&&lt(r)?this.cloneSlotElementAsLightDOM(r,e,t):this.appendChildNode(e,r,t)}cloneChildNodes(A,e,t){A.shadowRoot&&e.shadowRoot?(this.cloneShadowDOMChildren(A.shadowRoot,e.shadowRoot,t),this.cloneLightDOMChildren(A,e,t)):A.shadowRoot&&!e.shadowRoot?this.cloneShadowDOMAsLightDOM(A.shadowRoot,e,t):this.cloneLightDOMChildren(A,e,t)}cloneNode(A,e){if(Vo(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);const t=A.ownerDocument.defaultView;if(t&&MA(A)&&(it(A)||Qe(A))){const r=this.createElementClone(A);r.style.transitionProperty="none";const s=t.getComputedStyle(A),i=t.getComputedStyle(A,":before"),o=t.getComputedStyle(A,":after");this.referenceElement===A&&it(r)&&(this.clonedReferenceElement=r),Xr(r)&&rf(r,this.options.cspNonce);const a=this.counters.parse(new Go(this.context,s)),l=this.resolvePseudoContent(A,r,i,ht.BEFORE);_o(A)&&(e=!0),wa(A)||this.cloneChildNodes(A,r,e),l&&r.insertBefore(l,r.firstChild);const d=this.resolvePseudoContent(A,r,o,ht.AFTER);return d&&r.appendChild(d),this.counters.pop(a),(s&&(this.options.copyStyles||Qe(A))&&!ma(A)||e)&&$r(s,r),(A.scrollTop!==0||A.scrollLeft!==0)&&this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(Qn(A)||xn(A))&&(Qn(r)||xn(r))&&(r.value=A.value),r}return A.cloneNode(!1)}resolvePseudoContent(A,e,t,r){if(!t)return;const s=t.content,i=e.ownerDocument;if(!i||!s||s==="none"||s==="-moz-alt-content"||t.display==="none")return;this.counters.parse(new Go(this.context,t));const o=new Kp(this.context,t),a=i.createElement("html2canvaspseudoelement");$r(t,a),o.content.forEach(d=>{if(d.type===0)a.appendChild(i.createTextNode(d.value));else if(d.type===22){const c=i.createElement("img");c.src=d.value,c.style.opacity="1",a.appendChild(c)}else if(d.type===18){if(d.name==="attr"){const c=d.values.filter(H);c.length&&a.appendChild(i.createTextNode(A.getAttribute(c[0].value)||""))}else if(d.name==="counter"){const[c,h]=d.values.filter(tA);if(c&&H(c)){const u=this.counters.getCounterValue(c.value),g=h&&H(h)?kr.parse(this.context,h.value):3;a.appendChild(i.createTextNode(dt(u,g,!1)))}}else if(d.name==="counters"){const[c,h,u]=d.values.filter(tA);if(c&&H(c)){const g=this.counters.getCounterValues(c.value),B=u&&H(u)?kr.parse(this.context,u.value):3,f=h&&h.type===0?h.value:"",m=g.map(w=>dt(w,B,!1)).join(f);a.appendChild(i.createTextNode(m))}}}else if(d.type===20)switch(d.value){case"open-quote":a.appendChild(i.createTextNode(Ro(o.quotes,this.quoteDepth++,!0)));break;case"close-quote":a.appendChild(i.createTextNode(Ro(o.quotes,--this.quoteDepth,!1)));break;default:a.appendChild(i.createTextNode(d.value))}}),a.className=`${As} ${es}`;const l=r===ht.BEFORE?` ${As}`:` ${es}`;return Qe(e)?e.className.baseValue+=l:e.className+=l,a}static destroy(A){return A.parentNode?(A.parentNode.removeChild(A),!0):!1}}var ht;(function(n){n[n.BEFORE=0]="BEFORE",n[n.AFTER=1]="AFTER"})(ht||(ht={}));const XB=(n,A,e)=>{const t=n.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=A.width.toString(),t.height=A.height.toString(),t.scrolling="no",t.setAttribute(qr,"true"),(e||n.body).appendChild(t),t},WB=n=>new Promise(A=>{if(n.complete){A();return}if(!n.src){A();return}n.onload=A,n.onerror=A}),jB=n=>Promise.all([].slice.call(n.images,0).map(WB)),ZB=n=>new Promise((A,e)=>{const t=n.contentWindow;if(!t)return e("No window assigned for iframe");const r=t.document;t.onload=n.onload=()=>{t.onload=n.onload=null;const s=setInterval(()=>{r.body.childNodes.length>0&&r.readyState==="complete"&&(clearInterval(s),A(n))},50)}}),qB=["all","d","content"],$r=(n,A)=>{for(let e=n.length-1;e>=0;e--){const t=n.item(e);qB.indexOf(t)===-1&&!t.startsWith("--")&&A.style.setProperty(t,n.getPropertyValue(t))}return A},$B=n=>{let A="";return n&&(A+="<!DOCTYPE ",n.name&&(A+=n.name),n.internalSubset&&(A+=" "+n.internalSubset.replace(/"/g,"&quot;").replace(/>/g,"&gt;")),n.publicId?(A+=' PUBLIC "'+n.publicId.replace(/"/g,"&quot;")+'"',n.systemId&&(A+=' "'+n.systemId.replace(/"/g,"&quot;")+'"')):n.systemId&&(A+=' SYSTEM "'+n.systemId.replace(/"/g,"&quot;")+'"'),A+=">"),A},Af=(n,A,e)=>{n&&n.defaultView&&(A!==n.defaultView.pageXOffset||e!==n.defaultView.pageYOffset)&&n.defaultView.scrollTo(A,e)},ef=([n,A,e])=>{n.scrollLeft=A,n.scrollTop=e},tf=":before",nf=":after",As="___html2canvas___pseudoelement_before",es="___html2canvas___pseudoelement_after",Fa=`{
3027
3027
  content: "" !important;
3028
3028
  display: none !important;
3029
- }`,jB=(n,A)=>{ZB(n,`.${Zr}${XB}${Ca}
3030
- .${qr}${WB}${Ca}`,A)},ZB=(n,A,e)=>{const t=n.ownerDocument;if(t){const r=t.createElement("style");r.textContent=A,e&&(r.nonce=e),n.appendChild(r)}},qB=(n,A)=>{const e=n.ownerDocument.createElement("base");e.href=A;const t=n.getElementsByTagName("head").item(0);t==null||t.insertBefore(e,(t==null?void 0:t.firstChild)??null)};class U{constructor(A,e){this.type=0,this.x=A,this.y=e}add(A,e){return new U(this.x+A,this.y+e)}}const Fe=(n,A,e)=>new U(n.x+(A.x-n.x)*e,n.y+(A.y-n.y)*e);class DA{constructor(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}subdivide(A,e){const t=Fe(this.start,this.startControl,A),r=Fe(this.startControl,this.endControl,A),s=Fe(this.endControl,this.end,A),i=Fe(t,r,A),o=Fe(r,s,A),a=Fe(i,o,A);return e?new DA(this.start,t,i,a):new DA(a,o,s,this.end)}add(A,e){return new DA(this.start.add(A,e),this.startControl.add(A,e),this.endControl.add(A,e),this.end.add(A,e))}reverse(){return new DA(this.end,this.endControl,this.startControl,this.start)}}const dA=n=>n.type===1;class $B{constructor(A){const e=A.styles,t=A.bounds;let[r,s]=nt(e.borderTopLeftRadius,t.width,t.height),[i,o]=nt(e.borderTopRightRadius,t.width,t.height),[a,l]=nt(e.borderBottomRightRadius,t.width,t.height),[c,d]=nt(e.borderBottomLeftRadius,t.width,t.height);const h=[];h.push((r+i)/t.width),h.push((c+a)/t.width),h.push((s+d)/t.height),h.push((o+l)/t.height);const u=Math.max(...h);u>1&&(r/=u,s/=u,i/=u,o/=u,a/=u,l/=u,c/=u,d/=u);const g=t.width-i,B=t.height-l,f=t.width-a,m=t.height-d,w=e.borderTopWidth,v=e.borderRightWidth,C=e.borderBottomWidth,y=e.borderLeftWidth,Q=S(e.paddingTop,A.bounds.width),x=S(e.paddingRight,A.bounds.width),F=S(e.paddingBottom,A.bounds.width),I=S(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||s>0?V(t.left+y/3,t.top+w/3,r-y/3,s-w/3,P.TOP_LEFT):new U(t.left+y/3,t.top+w/3),this.topRightBorderDoubleOuterBox=r>0||s>0?V(t.left+g,t.top+w/3,i-v/3,o-w/3,P.TOP_RIGHT):new U(t.left+t.width-v/3,t.top+w/3),this.bottomRightBorderDoubleOuterBox=a>0||l>0?V(t.left+f,t.top+B,a-v/3,l-C/3,P.BOTTOM_RIGHT):new U(t.left+t.width-v/3,t.top+t.height-C/3),this.bottomLeftBorderDoubleOuterBox=c>0||d>0?V(t.left+y/3,t.top+m,c-y/3,d-C/3,P.BOTTOM_LEFT):new U(t.left+y/3,t.top+t.height-C/3),this.topLeftBorderDoubleInnerBox=r>0||s>0?V(t.left+y*2/3,t.top+w*2/3,r-y*2/3,s-w*2/3,P.TOP_LEFT):new U(t.left+y*2/3,t.top+w*2/3),this.topRightBorderDoubleInnerBox=r>0||s>0?V(t.left+g,t.top+w*2/3,i-v*2/3,o-w*2/3,P.TOP_RIGHT):new U(t.left+t.width-v*2/3,t.top+w*2/3),this.bottomRightBorderDoubleInnerBox=a>0||l>0?V(t.left+f,t.top+B,a-v*2/3,l-C*2/3,P.BOTTOM_RIGHT):new U(t.left+t.width-v*2/3,t.top+t.height-C*2/3),this.bottomLeftBorderDoubleInnerBox=c>0||d>0?V(t.left+y*2/3,t.top+m,c-y*2/3,d-C*2/3,P.BOTTOM_LEFT):new U(t.left+y*2/3,t.top+t.height-C*2/3),this.topLeftBorderStroke=r>0||s>0?V(t.left+y/2,t.top+w/2,r-y/2,s-w/2,P.TOP_LEFT):new U(t.left+y/2,t.top+w/2),this.topRightBorderStroke=r>0||s>0?V(t.left+g,t.top+w/2,i-v/2,o-w/2,P.TOP_RIGHT):new U(t.left+t.width-v/2,t.top+w/2),this.bottomRightBorderStroke=a>0||l>0?V(t.left+f,t.top+B,a-v/2,l-C/2,P.BOTTOM_RIGHT):new U(t.left+t.width-v/2,t.top+t.height-C/2),this.bottomLeftBorderStroke=c>0||d>0?V(t.left+y/2,t.top+m,c-y/2,d-C/2,P.BOTTOM_LEFT):new U(t.left+y/2,t.top+t.height-C/2),this.topLeftBorderBox=r>0||s>0?V(t.left,t.top,r,s,P.TOP_LEFT):new U(t.left,t.top),this.topRightBorderBox=i>0||o>0?V(t.left+g,t.top,i,o,P.TOP_RIGHT):new U(t.left+t.width,t.top),this.bottomRightBorderBox=a>0||l>0?V(t.left+f,t.top+B,a,l,P.BOTTOM_RIGHT):new U(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=c>0||d>0?V(t.left,t.top+m,c,d,P.BOTTOM_LEFT):new U(t.left,t.top+t.height),this.topLeftPaddingBox=r>0||s>0?V(t.left+y,t.top+w,Math.max(0,r-y),Math.max(0,s-w),P.TOP_LEFT):new U(t.left+y,t.top+w),this.topRightPaddingBox=i>0||o>0?V(t.left+Math.min(g,t.width-v),t.top+w,g>t.width+v?0:Math.max(0,i-v),Math.max(0,o-w),P.TOP_RIGHT):new U(t.left+t.width-v,t.top+w),this.bottomRightPaddingBox=a>0||l>0?V(t.left+Math.min(f,t.width-y),t.top+Math.min(B,t.height-C),Math.max(0,a-v),Math.max(0,l-C),P.BOTTOM_RIGHT):new U(t.left+t.width-v,t.top+t.height-C),this.bottomLeftPaddingBox=c>0||d>0?V(t.left+y,t.top+Math.min(m,t.height-C),Math.max(0,c-y),Math.max(0,d-C),P.BOTTOM_LEFT):new U(t.left+y,t.top+t.height-C),this.topLeftContentBox=r>0||s>0?V(t.left+y+I,t.top+w+Q,Math.max(0,r-(y+I)),Math.max(0,s-(w+Q)),P.TOP_LEFT):new U(t.left+y+I,t.top+w+Q),this.topRightContentBox=i>0||o>0?V(t.left+Math.min(g,t.width+y+I),t.top+w+Q,g>t.width+y+I?0:i-y+I,o-(w+Q),P.TOP_RIGHT):new U(t.left+t.width-(v+x),t.top+w+Q),this.bottomRightContentBox=a>0||l>0?V(t.left+Math.min(f,t.width-(y+I)),t.top+Math.min(B,t.height+w+Q),Math.max(0,a-(v+x)),l-(C+F),P.BOTTOM_RIGHT):new U(t.left+t.width-(v+x),t.top+t.height-(C+F)),this.bottomLeftContentBox=c>0||d>0?V(t.left+y+I,t.top+m,Math.max(0,c-(y+I)),d-(C+F),P.BOTTOM_LEFT):new U(t.left+y+I,t.top+t.height-(C+F))}}var P;(function(n){n[n.TOP_LEFT=0]="TOP_LEFT",n[n.TOP_RIGHT=1]="TOP_RIGHT",n[n.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",n[n.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(P||(P={}));const V=(n,A,e,t,r)=>{const s=4*((Math.sqrt(2)-1)/3),i=e*s,o=t*s,a=n+e,l=A+t;switch(r){case P.TOP_LEFT:return new DA(new U(n,l),new U(n,l-o),new U(a-i,A),new U(a,A));case P.TOP_RIGHT:return new DA(new U(n,A),new U(n+i,A),new U(a,l-o),new U(a,l));case P.BOTTOM_RIGHT:return new DA(new U(a,A),new U(a,A+o),new U(n+i,l),new U(n,l));case P.BOTTOM_LEFT:default:return new DA(new U(a,l),new U(a-i,l),new U(n,A+o),new U(n,A))}},Qn=n=>[n.topLeftBorderBox,n.topRightBorderBox,n.bottomRightBorderBox,n.bottomLeftBorderBox],Af=n=>[n.topLeftContentBox,n.topRightContentBox,n.bottomRightContentBox,n.bottomLeftContentBox],xn=n=>[n.topLeftPaddingBox,n.topRightPaddingBox,n.bottomRightPaddingBox,n.bottomLeftPaddingBox];class ya{constructor(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6}}class En{constructor(A,e){this.path=A,this.target=e,this.type=1}}class ef{constructor(A){this.opacity=A,this.type=2,this.target=6}}class ut{constructor(A){this.applyClip=A,this.type=3,this.target=6}}const tf=n=>n.type===0,va=n=>n.type===1,nf=n=>n.type===2,rf=n=>n.type===3,ba=(n,A)=>n.length===A.length?n.some((e,t)=>e===A[t]):!1,sf=(n,A,e,t,r)=>n.map((s,i)=>{switch(i){case 0:return s.add(A,e);case 1:return s.add(A+t,e);case 2:return s.add(A+t,e+r);case 3:return s.add(A,e+r)}return s});class Qa{constructor(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}class xa{constructor(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new $B(this.container),this.container.styles.opacity<1&&this.effects.push(new ef(this.container.styles.opacity)),this.container.styles.rotate!==null){const t=this.container.styles.transformOrigin,r=this.container.bounds.left+S(t[0],this.container.bounds.width),s=this.container.bounds.top+S(t[1],this.container.bounds.height),o=this.container.styles.rotate*Math.PI/180,a=Math.cos(o),l=Math.sin(o),c=[a,l,-l,a,0,0];this.effects.push(new ya(r,s,c))}if(this.container.styles.transform!==null){const t=this.container.styles.transformOrigin,r=this.container.bounds.left+S(t[0],this.container.bounds.width),s=this.container.bounds.top+S(t[1],this.container.bounds.height),i=this.container.styles.transform;this.effects.push(new ya(r,s,i))}if(this.container.styles.overflowX!==0){const t=Qn(this.curves),r=xn(this.curves);ba(t,r)?this.effects.push(new En(t,6)):(this.effects.push(new En(t,2)),this.effects.push(new En(r,4)))}if(this.container.styles.clipPath.type!==0){const t=of(this.container.styles.clipPath,this.container.bounds);t&&this.effects.push(t)}}getEffects(A){let e=[2,3].indexOf(this.container.styles.position)===-1,t=this.parent;const r=this.effects.slice(0);for(;t;){const s=t.effects.filter(i=>!va(i));if(e||t.container.styles.position!==0||!t.parent){if(e=[2,3].indexOf(t.container.styles.position)===-1,t.container.styles.overflowX!==0){const i=Qn(t.curves),o=xn(t.curves);ba(i,o)||r.unshift(new En(o,6))}r.unshift(...s)}else r.unshift(...s);t=t.parent}return r.filter(s=>_(s.target,A))}}const Ea=(n,A,e,t,r)=>n==="closest-side"?Math.min(A-e,t-A):n==="farthest-side"?Math.max(A-e,t-A):S(n,r),of=(n,A)=>{const{left:e,top:t,width:r,height:s}=A;switch(n.type){case 1:{const i=S(n.left,r),o=S(n.top,s),a=e+i,l=t+o,c=Math.max(0,r-i-S(n.right,r)),d=Math.max(0,s-o-S(n.bottom,s));return new ut(h=>{h.beginPath(),h.rect(a,l,c,d),h.clip()})}case 2:{const i=e+S(n.cx,r),o=t+S(n.cy,s);let a;return n.radius==="closest-side"?a=Math.min(i-e,o-t,e+r-i,t+s-o):n.radius==="farthest-side"?a=Math.max(i-e,o-t,e+r-i,t+s-o):a=S(n.radius,Math.sqrt(r*r+s*s)/Math.SQRT2),new ut(l=>{l.beginPath(),l.arc(i,o,Math.max(0,a),0,Math.PI*2),l.clip()})}case 3:{const i=e+S(n.cx,r),o=t+S(n.cy,s),a=Ea(n.rx,i,e,e+r,r),l=Ea(n.ry,o,t,t+s,s);return new ut(c=>{c.beginPath(),c.ellipse(i,o,Math.max(0,a),Math.max(0,l),0,0,Math.PI*2),c.clip()})}case 4:{const i=n.points.map(([o,a])=>[e+S(o,r),t+S(a,s)]);return new ut(o=>{if(o.beginPath(),i.length>0){o.moveTo(i[0][0],i[0][1]);for(let a=1;a<i.length;a++)o.lineTo(i[a][0],i[a][1]);o.closePath()}o.clip()})}case 5:{const{d:i}=n;return new ut(o=>{try{const a=o.getTransform();o.translate(e,t),o.clip(new Path2D(i)),o.setTransform(a)}catch{}})}case 0:return null;default:return null}},$r=(n,A,e,t)=>{n.container.elements.forEach(r=>{const s=_(r.flags,4),i=_(r.flags,2),o=new xa(r,n);_(r.styles.display,2048)&&t.push(o);const a=_(r.flags,8)?[]:t;if(s||i){const l=s||r.styles.isPositioned()?e:A,c=new Qa(o);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){const d=r.styles.zIndex.order;if(d<0){let h=0;l.negativeZIndex.some((u,g)=>d>u.element.container.styles.zIndex.order?(h=g,!1):h>0),l.negativeZIndex.splice(h,0,c)}else if(d>0){let h=0;l.positiveZIndex.some((u,g)=>d>=u.element.container.styles.zIndex.order?(h=g+1,!1):h>0),l.positiveZIndex.splice(h,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else r.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);$r(o,c,s?c:e,a)}else r.styles.isInlineLevel()?A.inlineLevel.push(o):A.nonInlineLevel.push(o),$r(o,A,e,a);_(r.flags,8)&&Ua(r,a)})},Ua=(n,A)=>{let e=n instanceof _r?n.start:1;const t=n instanceof _r?n.reversed:!1;for(let r=0;r<A.length;r++){const s=A[r];s.container instanceof ea&&typeof s.container.value=="number"&&s.container.value!==0&&(e=s.container.value),s.listValue=dt(e,s.container.styles.listStyleType,!0),e+=t?-1:1}},af=n=>{const A=new xa(n,null),e=new Qa(A),t=[];return $r(A,e,e,t),Ua(A.container,t),e},Fa=n=>{const A=n.bounds,e=n.styles;return A.add(e.borderLeftWidth,e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth),-(e.borderTopWidth+e.borderBottomWidth))},gt=n=>{const A=n.styles,e=n.bounds,t=S(A.paddingLeft,e.width),r=S(A.paddingRight,e.width),s=S(A.paddingTop,e.width),i=S(A.paddingBottom,e.width);return e.add(t+A.borderLeftWidth,s+A.borderTopWidth,-(A.borderRightWidth+A.borderLeftWidth+t+r),-(A.borderTopWidth+A.borderBottomWidth+s+i))},lf=(n,A)=>n===0?A.bounds:n===2?gt(A):Fa(A),cf=(n,A)=>n===0?A.bounds:n===2?gt(A):Fa(A),As=(n,A,e)=>{const t=lf(Se(n.styles.backgroundOrigin,A),n),r=cf(Se(n.styles.backgroundClip,A),n),s=df(Se(n.styles.backgroundSize,A),e,t);let[i,o]=s;const a=nt(Se(n.styles.backgroundPosition,A),t.width-i,t.height-o),l=hf(Se(n.styles.backgroundRepeat,A),a,s,t,r),c=Math.round(t.left+a[0]),d=Math.round(t.top+a[1]);return i=Math.max(1,i),o=Math.max(1,o),[l,c,d,i,o]},Ie=n=>H(n)&&n.value===be.AUTO,Un=n=>typeof n=="number",df=(n,[A,e,t],r)=>{const[s,i]=n;if(!s)return[0,0];if(N(s)&&i&&N(i))return[S(s,r.width),S(i,r.height)];const o=Un(t);if(H(s)&&(s.value===be.CONTAIN||s.value===be.COVER))return Un(t)?r.width/r.height<t!=(s.value===be.COVER)?[r.width,r.width/t]:[r.height*t,r.height]:[r.width,r.height];const a=Un(A),l=Un(e),c=a||l;if(Ie(s)&&(!i||Ie(i))){if(a&&l)return[A,e];if(!o&&!c)return[r.width,r.height];if(c&&o){const B=a?A:e*t,f=l?e:A/t;return[B,f]}const u=a?A:r.width,g=l?e:r.height;return[u,g]}if(o){let u=0,g=0;return N(s)?u=S(s,r.width):N(i)&&(g=S(i,r.height)),Ie(s)?u=g*t:(!i||Ie(i))&&(g=u/t),[u,g]}let d=null,h=null;if(N(s)?d=S(s,r.width):i&&N(i)&&(h=S(i,r.height)),d!==null&&(!i||Ie(i))&&(h=a&&l?d/A*e:r.height),h!==null&&Ie(s)&&(d=a&&l?h/e*A:r.width),d!==null&&h!==null)return[d,h];throw new Error("Unable to calculate background-size for element")},Se=(n,A)=>{const e=n[A];return typeof e>"u"?n[0]:e},hf=(n,[A,e],[t,r],s,i)=>{switch(n){case 2:return[new U(Math.round(s.left),Math.round(s.top+e)),new U(Math.round(s.left+s.width),Math.round(s.top+e)),new U(Math.round(s.left+s.width),Math.round(r+s.top+e)),new U(Math.round(s.left),Math.round(r+s.top+e))];case 3:return[new U(Math.round(s.left+A),Math.round(s.top)),new U(Math.round(s.left+A+t),Math.round(s.top)),new U(Math.round(s.left+A+t),Math.round(s.height+s.top)),new U(Math.round(s.left+A),Math.round(s.height+s.top))];case 1:return[new U(Math.round(s.left+A),Math.round(s.top+e)),new U(Math.round(s.left+A+t),Math.round(s.top+e)),new U(Math.round(s.left+A+t),Math.round(s.top+e+r)),new U(Math.round(s.left+A),Math.round(s.top+e+r))];default:return[new U(Math.round(i.left),Math.round(i.top)),new U(Math.round(i.left+i.width),Math.round(i.top)),new U(Math.round(i.left+i.width),Math.round(i.height+i.top)),new U(Math.round(i.left),Math.round(i.height+i.top))]}},uf="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",Ia="Hidden Text";class gf{constructor(A){this._data={},this._document=A}parseMetrics(A,e){const t=this._document.createElement("div"),r=this._document.createElement("img"),s=this._document.createElement("span"),i=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",t.style.whiteSpace="nowrap",i.appendChild(t),r.src=uf,r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",s.style.fontFamily=A,s.style.fontSize=e,s.style.margin="0",s.style.padding="0",s.appendChild(this._document.createTextNode(Ia)),t.appendChild(s),t.appendChild(r);const o=r.offsetTop-s.offsetTop+2;t.removeChild(s),t.appendChild(this._document.createTextNode(Ia)),t.style.lineHeight="normal",r.style.verticalAlign="super";const a=r.offsetTop-t.offsetTop+2;return i.removeChild(t),{baseline:o,middle:a}}getMetrics(A,e){const t=`${A} ${e}`;return typeof this._data[t]>"u"&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]}}class Sa{constructor(A,e){this.context=A,this.options=e}}class pf{constructor(A){this.ctx=A.ctx,this.context=A.context,this.canvas=A.canvas}async renderBackgroundImage(A){let e=A.styles.backgroundImage.length-1;for(const t of A.styles.backgroundImage.slice(0).reverse())t.type===0?await this.renderBackgroundURLImage(A,t,e):zu(t)?this.renderLinearGradient(A,t,e):Ju(t)&&this.renderRadialGradient(A,t,e),e--}async renderBackgroundURLImage(A,e,t){let r;const s=e.url;try{r=await this.context.cache.match(s)}catch{this.context.logger.error(`Error loading background-image ${s}`)}if(r){const i=isNaN(r.width)||r.width===0?1:r.width,o=isNaN(r.height)||r.height===0?1:r.height,[a,l,c,d,h]=As(A,t,[i,o,i/o]),u=this.ctx.createPattern(this.resizeImage(r,d,h,A.styles.imageRendering),"repeat");this.renderRepeat(a,u,l,c)}}renderLinearGradient(A,e,t){const[r,s,i,o,a]=As(A,t,[null,null,null]),[l,c,d,h,u]=Ru(e.angle,o,a),B=(this.canvas.ownerDocument??document).createElement("canvas");B.width=o,B.height=a;const f=B.getContext("2d"),m=f.createLinearGradient(c,h,d,u);if(wo(e.stops,l||1).forEach(w=>m.addColorStop(w.stop,R(w.color))),f.fillStyle=m,f.fillRect(0,0,o,a),o>0&&a>0){const w=this.ctx.createPattern(B,"repeat");this.renderRepeat(r,w,s,i)}}renderRadialGradient(A,e,t){const[r,s,i,o,a]=As(A,t,[null,null,null]),l=e.position.length===0?[ie]:e.position,c=S(l[0],o),d=S(l[l.length-1],a);let[h,u]=Gu(e,c,d,o,a);if((h===0||u===0)&&(h=Math.max(h,.01),u=Math.max(u,.01)),h>0&&u>0){const g=this.ctx.createRadialGradient(s+c,i+d,0,s+c,i+d,h);if(wo(e.stops,h*2).forEach(B=>g.addColorStop(B.stop,R(B.color))),this.path(r),this.ctx.fillStyle=g,h!==u){const B=A.bounds.left+.5*A.bounds.width,f=A.bounds.top+.5*A.bounds.height,m=u/h,w=1/m;this.ctx.save(),this.ctx.translate(B,f),this.ctx.transform(1,0,0,m,0,0),this.ctx.translate(-B,-f),this.ctx.fillRect(s,w*(i-f)+f,o,a*w),this.ctx.restore()}else this.ctx.fill()}}renderRepeat(A,e,t,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)}resizeImage(A,e,t,r){const i=(this.canvas.ownerDocument??document).createElement("canvas");i.width=Math.max(1,e),i.height=Math.max(1,t);const o=i.getContext("2d");return r===cA.PIXELATED||r===cA.CRISP_EDGES?(this.context.logger.debug("Disabling image smoothing for background image due to CSS image-rendering"),o.imageSmoothingEnabled=!1):r===cA.SMOOTH?(this.context.logger.debug("Enabling image smoothing for background image due to CSS image-rendering: smooth"),o.imageSmoothingEnabled=!0):o.imageSmoothingEnabled=this.ctx.imageSmoothingEnabled,this.ctx.imageSmoothingQuality&&(o.imageSmoothingQuality=this.ctx.imageSmoothingQuality),o.drawImage(A,0,0,A.width,A.height,0,0,e,t),i}path(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()}formatPath(A){A.forEach((e,t)=>{const r=dA(e)?e.start:e;t===0?this.ctx.moveTo(r.x,r.y):this.ctx.lineTo(r.x,r.y),dA(e)&&this.ctx.bezierCurveTo(e.startControl.x,e.startControl.y,e.endControl.x,e.endControl.y,e.end.x,e.end.y)})}}const Ha=(n,A)=>{switch(A){case 0:return CA(n.topLeftBorderBox,n.topLeftPaddingBox,n.topRightBorderBox,n.topRightPaddingBox);case 1:return CA(n.topRightBorderBox,n.topRightPaddingBox,n.bottomRightBorderBox,n.bottomRightPaddingBox);case 2:return CA(n.bottomRightBorderBox,n.bottomRightPaddingBox,n.bottomLeftBorderBox,n.bottomLeftPaddingBox);case 3:default:return CA(n.bottomLeftBorderBox,n.bottomLeftPaddingBox,n.topLeftBorderBox,n.topLeftPaddingBox)}},Bf=(n,A)=>{switch(A){case 0:return CA(n.topLeftBorderBox,n.topLeftBorderDoubleOuterBox,n.topRightBorderBox,n.topRightBorderDoubleOuterBox);case 1:return CA(n.topRightBorderBox,n.topRightBorderDoubleOuterBox,n.bottomRightBorderBox,n.bottomRightBorderDoubleOuterBox);case 2:return CA(n.bottomRightBorderBox,n.bottomRightBorderDoubleOuterBox,n.bottomLeftBorderBox,n.bottomLeftBorderDoubleOuterBox);case 3:default:return CA(n.bottomLeftBorderBox,n.bottomLeftBorderDoubleOuterBox,n.topLeftBorderBox,n.topLeftBorderDoubleOuterBox)}},ff=(n,A)=>{switch(A){case 0:return CA(n.topLeftBorderDoubleInnerBox,n.topLeftPaddingBox,n.topRightBorderDoubleInnerBox,n.topRightPaddingBox);case 1:return CA(n.topRightBorderDoubleInnerBox,n.topRightPaddingBox,n.bottomRightBorderDoubleInnerBox,n.bottomRightPaddingBox);case 2:return CA(n.bottomRightBorderDoubleInnerBox,n.bottomRightPaddingBox,n.bottomLeftBorderDoubleInnerBox,n.bottomLeftPaddingBox);case 3:default:return CA(n.bottomLeftBorderDoubleInnerBox,n.bottomLeftPaddingBox,n.topLeftBorderDoubleInnerBox,n.topLeftPaddingBox)}},wf=(n,A)=>{switch(A){case 0:return Fn(n.topLeftBorderStroke,n.topRightBorderStroke);case 1:return Fn(n.topRightBorderStroke,n.bottomRightBorderStroke);case 2:return Fn(n.bottomRightBorderStroke,n.bottomLeftBorderStroke);case 3:default:return Fn(n.bottomLeftBorderStroke,n.topLeftBorderStroke)}},Fn=(n,A)=>{const e=[];return dA(n)?e.push(n.subdivide(.5,!1)):e.push(n),dA(A)?e.push(A.subdivide(.5,!0)):e.push(A),e},CA=(n,A,e,t)=>{const r=[];return dA(n)?r.push(n.subdivide(.5,!1)):r.push(n),dA(e)?r.push(e.subdivide(.5,!0)):r.push(e),dA(t)?r.push(t.subdivide(.5,!0).reverse()):r.push(t),dA(A)?r.push(A.subdivide(.5,!1).reverse()):r.push(A),r};class mf{constructor(A,e){this.ctx=A.ctx,this.pathCallbacks=e}async renderSolidBorder(A,e,t){this.pathCallbacks.path(Ha(t,e)),this.ctx.fillStyle=R(A),this.ctx.fill()}async renderDoubleBorder(A,e,t,r){if(e<3){await this.renderSolidBorder(A,t,r);return}const s=Bf(r,t);this.pathCallbacks.path(s),this.ctx.fillStyle=R(A),this.ctx.fill();const i=ff(r,t);this.pathCallbacks.path(i),this.ctx.fill()}async renderDashedDottedBorder(A,e,t,r,s){this.ctx.save();const i=wf(r,t),o=Ha(r,t);s===2&&(this.pathCallbacks.path(o),this.ctx.clip());let a,l,c,d;dA(o[0])?(a=o[0].start.x,l=o[0].start.y):(a=o[0].x,l=o[0].y),dA(o[1])?(c=o[1].end.x,d=o[1].end.y):(c=o[1].x,d=o[1].y);let h;t===0||t===2?h=Math.abs(a-c):h=Math.abs(l-d),this.ctx.beginPath(),s===3?this.pathCallbacks.formatPath(i):this.pathCallbacks.formatPath(o.slice(0,2));let u=e<3?e*3:e*2,g=e<3?e*2:e;s===3&&(u=e,g=e);let B=!0;if(h<=u*2)B=!1;else if(h<=u*2+g){const f=h/(2*u+g);u*=f,g*=f}else{const f=Math.floor((h+g)/(u+g)),m=(h-f*u)/(f-1),w=(h-(f+1)*u)/f;g=w<=0||Math.abs(g-m)<Math.abs(g-w)?m:w}if(B&&(s===3?this.ctx.setLineDash([0,u+g]):this.ctx.setLineDash([u,g])),s===3?(this.ctx.lineCap="round",this.ctx.lineWidth=e):this.ctx.lineWidth=e*2+1.1,this.ctx.strokeStyle=R(A),this.ctx.stroke(),this.ctx.setLineDash([]),s===2){if(dA(o[0])){const f=o[3],m=o[0];this.ctx.beginPath(),this.pathCallbacks.formatPath([new U(f.end.x,f.end.y),new U(m.start.x,m.start.y)]),this.ctx.stroke()}if(dA(o[1])){const f=o[1],m=o[2];this.ctx.beginPath(),this.pathCallbacks.formatPath([new U(f.end.x,f.end.y),new U(m.start.x,m.start.y)]),this.ctx.stroke()}}this.ctx.restore()}}class Cf{constructor(A,e){this.activeEffects=[],this.ctx=A.ctx,this.pathCallback=e}applyEffects(A){for(;this.activeEffects.length;)this.popEffect();A.forEach(e=>this.applyEffect(e))}applyEffect(A){this.ctx.save(),nf(A)?this.ctx.globalAlpha=A.opacity:tf(A)?(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)):va(A)?(this.pathCallback.path(A.path),this.ctx.clip()):rf(A)&&A.applyClip(this.ctx),this.activeEffects.push(A)}popEffect(){this.activeEffects.pop(),this.ctx.restore()}getActiveEffectCount(){return this.activeEffects.length}hasActiveEffects(){return this.activeEffects.length>0}}const yf=["-apple-system","system-ui"],vf=/[\u2E80-\u2FFF\u3000-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uAC00-\uD7AF\uF900-\uFAFF\uFF01-\uFFEF]/,es=n=>vf.test(n),bf=()=>{if(typeof navigator>"u")return null;const n=navigator.userAgent,A=/iPhone|iPad|iPod/.test(n),e=/Macintosh/.test(n)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>1;if(!A&&!e)return null;const t=[/(?:iPhone|CPU(?:\siPhone)?)\sOS\s(\d+)[\._](\d+)/,/Version\/(\d+)\.(\d+)/];for(const r of t){const s=n.match(r);if(s&&s[1])return parseInt(s[1],10)}return null},Qf=n=>{const A=bf();return A!==null&&A>=15&&A<17?n.map(e=>yf.indexOf(e)!==-1?'-apple-system, "Helvetica Neue", Arial, sans-serif':e):n};class xf{constructor(A){this.ctx=A.ctx,this.options=A.options}iterateLettersWithLetterSpacing(A,e,t,r,s){if(IA(r)){this.iterateVerticalGlyphs(A,e,t,r,s);return}const i=xe(A.text),o=A.bounds.top+t;let a=A.bounds.left;for(const l of i){if(es(l)){const c=this.ctx.textBaseline;this.ctx.textBaseline="ideographic",s(l,a,o),this.ctx.textBaseline=c}else s(l,a,o);a+=this.ctx.measureText(l).width+e}}iterateVerticalGlyphs(A,e,t,r,s){const i=xe(A.text);let o=A.bounds.top;for(const a of i){if(ep(r)||!es(a)&&a.trim().length>0)this.ctx.save(),this.ctx.translate(A.bounds.left+t,o),this.ctx.rotate(r===4?-Math.PI/2:Math.PI/2),s(a,0,0),this.ctx.restore();else{const l=this.ctx.textBaseline;es(a)&&(this.ctx.textBaseline="ideographic"),s(a,A.bounds.left,o+t),this.ctx.textBaseline=l}o+=this.ctx.measureText(a).width+e}}renderTextWithLetterSpacing(A,e,t,r=0){e===0&&!IA(r)?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+t):this.iterateLettersWithLetterSpacing(A,e,t,r,(s,i,o)=>{this.ctx.fillText(s,i,o)})}renderTextBoundWithPaintOrder(A,e,t){t.forEach(r=>{switch(r){case 0:this.ctx.fillStyle=R(e.color),this.renderTextWithLetterSpacing(A,e.letterSpacing,e.fontSize.number,e.writingMode);break;case 1:e.webkitTextStrokeWidth&&A.text.trim().length&&(this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(A.text,A.bounds.left,A.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(A,e.letterSpacing,e.fontSize.number,e.writingMode,(s,i,o)=>this.ctx.strokeText(s,i,o)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}})}renderTextDecoration(A,e){this.ctx.fillStyle=R(e.textDecorationColor||e.color);let t=1;typeof e.textDecorationThickness=="number"?t=e.textDecorationThickness:e.textDecorationThickness==="from-font"&&(t=Math.max(1,Math.floor(e.fontSize.number*.05)));let r=0;typeof e.textUnderlineOffset=="number"&&(r=e.textUnderlineOffset);const s=e.textDecorationStyle;e.textDecorationLine.forEach(i=>{let o=0;switch(i){case 1:o=A.top+A.height-t+r;break;case 2:o=A.top;break;case 3:o=A.top+(A.height/2-t/2);break;default:return}this.drawDecorationLine(A.left,o,A.width,t,s)})}drawDecorationLine(A,e,t,r,s){switch(s){case 0:this.ctx.fillRect(A,e,t,r);break;case 1:const i=Math.max(1,r);this.ctx.fillRect(A,e,t,r),this.ctx.fillRect(A,e+r+i,t,r);break;case 2:this.ctx.save(),this.ctx.beginPath(),this.ctx.setLineDash([r,r*2]),this.ctx.lineWidth=r,this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.moveTo(A,e+r/2),this.ctx.lineTo(A+t,e+r/2),this.ctx.stroke(),this.ctx.restore();break;case 3:this.ctx.save(),this.ctx.beginPath(),this.ctx.setLineDash([r*3,r*2]),this.ctx.lineWidth=r,this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.moveTo(A,e+r/2),this.ctx.lineTo(A+t,e+r/2),this.ctx.stroke(),this.ctx.restore();break;case 4:this.ctx.save(),this.ctx.beginPath(),this.ctx.lineWidth=r,this.ctx.strokeStyle=this.ctx.fillStyle;const o=r*2,a=r*4;let l=A;for(this.ctx.moveTo(l,e+r/2);l<A+t;){const c=Math.min(l+a/2,A+t);if(this.ctx.quadraticCurveTo(l+a/4,e+r/2-o,c,e+r/2),l=c,l<A+t){const d=Math.min(l+a/2,A+t);this.ctx.quadraticCurveTo(l+a/4,e+r/2+o,d,e+r/2),l=d}}this.ctx.stroke(),this.ctx.restore();break;default:this.ctx.fillRect(A,e,t,r)}}truncateTextWithEllipsis(A,e,t){const r="…",s=this.ctx.measureText(r).width,i=xe(A);if(t===0){const o=c=>this.ctx.measureText(i.slice(0,c).join("")).width+s<=e;let a=0,l=i.length;for(;a<l;){const c=a+l+1>>1;o(c)?a=c:l=c-1}return i.slice(0,a).join("")+r}else{let o=s;const a=[];for(const l of i){const c=this.ctx.measureText(l).width;if(o+c>e)break;a.push(l),o+=c+t}return a.join("")+r}}createFontStyle(A){const e=A.fontVariant.filter(s=>s==="normal"||s==="small-caps").join(""),t=Qf(A.fontFamily).join(", "),r=EA(A.fontSize)?`${A.fontSize.number}${A.fontSize.unit}`:`${A.fontSize.number}px`;return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]}async renderTextNode(A,e,t){const[r]=this.createFontStyle(e);this.ctx.font=r,this.ctx.direction=e.direction===1?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic";const s=e.paintOrder,i=e.fontSize.number*1.5;if(e.webkitLineClamp>0&&(e.display&2)!==0&&e.overflowY===1&&A.textBounds.length>0){const d=[];let h=[],u=A.textBounds[0].bounds.top;A.textBounds.forEach(B=>{Math.abs(B.bounds.top-u)>=i*.5?(h.length>0&&d.push(h),h=[B],u=B.bounds.top):h.push(B)}),h.length>0&&d.push(h);const g=e.webkitLineClamp;if(d.length>g){for(let f=0;f<g-1;f++)d[f].forEach(m=>{this.renderTextBoundWithPaintOrder(m,e,s)});const B=d[g-1];if(B&&B.length>0&&t){const f=B.map(y=>y.text).join(""),m=B[0],w=t.width-(m.bounds.left-t.left),v=this.truncateTextWithEllipsis(f,w,e.letterSpacing),C=new le(v,m.bounds);s.forEach(y=>{switch(y){case 0:this.ctx.fillStyle=R(e.color),e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.fillText(v,m.bounds.left,m.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(C,e.letterSpacing,e.fontSize.number,e.writingMode,(Q,x,F)=>this.ctx.fillText(Q,x,F));break;case 1:e.webkitTextStrokeWidth&&v.trim().length&&(this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(v,m.bounds.left,m.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(C,e.letterSpacing,e.fontSize.number,e.writingMode,(Q,x,F)=>this.ctx.strokeText(Q,x,F)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}})}return}}const a=e.textOverflow===1&&t&&e.overflowX===1&&A.textBounds.length>0;let l=!1,c="";if(a){const d=A.textBounds[0].bounds.top;if(A.textBounds.every(u=>Math.abs(u.bounds.top-d)<i*.5)){let u=A.textBounds.map(f=>f.text).join("");u=u.replace(/\s+/g," ").trim();const g=this.ctx.measureText(u).width,B=t.width;g>B&&(l=!0,c=this.truncateTextWithEllipsis(u,B,e.letterSpacing))}}if(l){const d=A.textBounds[0],h=new le(c,d.bounds);s.forEach(u=>{switch(u){case 0:{this.ctx.fillStyle=R(e.color),e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.fillText(c,d.bounds.left,d.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(h,e.letterSpacing,e.fontSize.number,e.writingMode,(B,f,m)=>this.ctx.fillText(B,f,m));const g=e.textShadow;g.length&&c.trim().length&&(g.slice(0).reverse().forEach(B=>{this.ctx.shadowColor=R(B.color),this.ctx.shadowOffsetX=B.offsetX.number*this.options.scale,this.ctx.shadowOffsetY=B.offsetY.number*this.options.scale,this.ctx.shadowBlur=B.blur.number,e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.fillText(c,d.bounds.left,d.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(h,e.letterSpacing,e.fontSize.number,e.writingMode,(f,m,w)=>this.ctx.fillText(f,m,w))}),this.ctx.shadowColor="",this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.ctx.shadowBlur=0);break}case 1:e.webkitTextStrokeWidth&&c.trim().length&&(this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(c,d.bounds.left,d.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(h,e.letterSpacing,e.fontSize.number,e.writingMode,(g,B,f)=>this.ctx.strokeText(g,B,f)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}});return}A.textBounds.forEach(d=>{s.forEach(h=>{switch(h){case 0:{this.ctx.fillStyle=R(e.color),this.renderTextWithLetterSpacing(d,e.letterSpacing,e.fontSize.number,e.writingMode);const u=e.textShadow;u.length&&d.text.trim().length&&(u.slice(0).reverse().forEach(g=>{this.ctx.shadowColor=R(g.color),this.ctx.shadowOffsetX=g.offsetX.number*this.options.scale,this.ctx.shadowOffsetY=g.offsetY.number*this.options.scale,this.ctx.shadowBlur=g.blur.number,this.renderTextWithLetterSpacing(d,e.letterSpacing,e.fontSize.number,e.writingMode)}),this.ctx.shadowColor="",this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.ctx.shadowBlur=0),e.textDecorationLine.length&&this.renderTextDecoration(d.bounds,e);break}case 1:{if(e.webkitTextStrokeWidth&&d.text.trim().length){this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round";const u=e.fontSize.number;e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(d.text,d.bounds.left,d.bounds.top+u):this.iterateLettersWithLetterSpacing(d,e.letterSpacing,u,e.writingMode,(g,B,f)=>this.ctx.strokeText(g,B,f)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter"}break}}})})}}const Ef=1e4;class ts extends Sa{constructor(A,e){super(A,e),this.canvas=e.canvas?e.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),e.canvas||(this.canvas.width=Math.floor(e.width*e.scale),this.canvas.height=Math.floor(e.height*e.scale),this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`),this.fontMetrics=new gf(document),this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-e.x,-e.y),this.ctx.textBaseline="bottom",e.imageSmoothing!==void 0&&(this.ctx.imageSmoothingEnabled=e.imageSmoothing),e.imageSmoothingQuality&&(this.ctx.imageSmoothingQuality=e.imageSmoothingQuality),this.backgroundRenderer=new pf({ctx:this.ctx,context:this.context,canvas:this.canvas,options:{width:e.width,height:e.height,scale:e.scale}}),this.borderRenderer=new mf({ctx:this.ctx},{path:t=>this.path(t),formatPath:t=>this.formatPath(t)}),this.effectsRenderer=new Cf({ctx:this.ctx},{path:t=>this.path(t)}),this.textRenderer=new xf({ctx:this.ctx,context:this.context,options:{scale:e.scale}}),this.context.logger.debug(`Canvas renderer initialized (${e.width}x${e.height}) with scale ${e.scale}`)}async renderStack(A){A.element.container.styles.isVisible()&&await this.renderStackContent(A)}async renderNode(A){_(A.container.flags,16),A.container.styles.isVisible()&&(await this.renderNodeBackgroundAndBorders(A),await this.renderNodeContent(A))}renderReplacedElement(A,e,t){const r=t.naturalWidth||A.intrinsicWidth,s=t.naturalHeight||A.intrinsicHeight;if(t&&r>0&&s>0){const i=gt(A),o=xn(e);this.path(o),this.ctx.save(),this.ctx.clip();let a=0,l=0,c=r,d=s,h=i.left,u=i.top,g=i.width,B=i.height;const{objectFit:f}=A.styles,m=g/B,w=c/d;if(f===2)w>m?(B=g/w,u+=(i.height-B)/2):(g=B*w,h+=(i.width-g)/2);else if(f===4)w>m?(c=d*m,a+=(r-c)/2):(d=c/m,l+=(s-d)/2);else if(f===8)c>g?(a+=(c-g)/2,c=g):(h+=(g-c)/2,g=c),d>B?(l+=(d-B)/2,d=B):(u+=(B-d)/2,B=d);else if(f===16){const v=w>m?g:B*w,C=c>g?c:g;v<C?w>m?(B=g/w,u+=(i.height-B)/2):(g=B*w,h+=(i.width-g)/2):(c>g?(a+=(c-g)/2,c=g):(h+=(g-c)/2,g=c),d>B?(l+=(d-B)/2,d=B):(u+=(B-d)/2,B=d))}this.ctx.drawImage(t,a,l,c,d,h,u,g,B),this.ctx.restore()}}async renderNodeContent(A){this.effectsRenderer.applyEffects(A.getEffects(4));const e=A.container,t=A.curves,r=e.styles,s=gt(e);for(const i of e.textNodes)await this.textRenderer.renderTextNode(i,r,s);if(e instanceof qo)try{const i=await this.context.cache.match(e.src),o=this.ctx.imageSmoothingEnabled;r.imageRendering===cA.PIXELATED||r.imageRendering===cA.CRISP_EDGES?(this.context.logger.debug(`Disabling image smoothing for ${e.src} due to CSS image-rendering: ${r.imageRendering===cA.PIXELATED?"pixelated":"crisp-edges"}`),this.ctx.imageSmoothingEnabled=!1):r.imageRendering===cA.SMOOTH&&(this.context.logger.debug(`Enabling image smoothing for ${e.src} due to CSS image-rendering: smooth`),this.ctx.imageSmoothingEnabled=!0),this.renderReplacedElement(e,t,i),this.ctx.imageSmoothingEnabled=o}catch{this.context.logger.error(`Error loading image ${e.src}`)}if(e instanceof $o&&this.renderReplacedElement(e,t,e.canvas),e instanceof Aa)try{const i=await this.context.cache.match(e.svg);this.renderReplacedElement(e,t,i)}catch{this.context.logger.error(`Error loading svg ${e.svg.substring(0,255)}`)}if(e instanceof sa&&e.tree){const o=await new ts(this.context,{scale:this.options.scale,backgroundColor:e.backgroundColor,x:0,y:0,width:e.width,height:e.height}).render(e.tree);e.width&&e.height&&this.ctx.drawImage(o,0,0,e.width,e.height,e.bounds.left,e.bounds.top,e.bounds.width,e.bounds.height)}if(e instanceof at){const i=Math.min(e.bounds.width,e.bounds.height);e.type===mn?e.checked&&(this.ctx.save(),this.path([new U(e.bounds.left+i*.39363,e.bounds.top+i*.79),new U(e.bounds.left+i*.16,e.bounds.top+i*.5549),new U(e.bounds.left+i*.27347,e.bounds.top+i*.44071),new U(e.bounds.left+i*.39694,e.bounds.top+i*.5649),new U(e.bounds.left+i*.72983,e.bounds.top+i*.23),new U(e.bounds.left+i*.84,e.bounds.top+i*.34085),new U(e.bounds.left+i*.39363,e.bounds.top+i*.79)]),this.ctx.fillStyle=R(ta),this.ctx.fill(),this.ctx.restore()):e.type===Cn&&e.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(e.bounds.left+i/2,e.bounds.top+i/2,i/4,0,Math.PI*2,!0),this.ctx.fillStyle=R(ta),this.ctx.fill(),this.ctx.restore())}if(Uf(e)&&e.value.length){const[i,o,a]=this.textRenderer.createFontStyle(r),{baseline:l}=this.fontMetrics.getMetrics(o,a);this.ctx.font=i;const c=e instanceof at&&e.isPlaceholder;this.ctx.fillStyle=R(c?SB:r.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=If(e.styles.textAlign);const d=gt(e);let h=0;switch(e.styles.textAlign){case 1:h+=d.width/2;break;case 2:h+=d.width;break}let u=0;if(e instanceof at){const B=S(r.fontSize,0);u=(d.height-B)/2}const g=d.add(h,u,0,0);this.ctx.save(),this.path([new U(d.left,d.top),new U(d.left+d.width,d.top),new U(d.left+d.width,d.top+d.height),new U(d.left,d.top+d.height)]),this.ctx.clip(),this.textRenderer.renderTextWithLetterSpacing(new le(e.value,g),r.letterSpacing,l,r.writingMode),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(_(e.styles.display,2048)){if(e.styles.listStyleImage!==null){const i=e.styles.listStyleImage;if(i.type===0){let o;const a=i.url;try{o=await this.context.cache.match(a),this.ctx.drawImage(o,e.bounds.left-(o.width+10),e.bounds.top)}catch{this.context.logger.error(`Error loading list-style-image ${a}`)}}}else if(A.listValue&&e.styles.listStyleType!==-1){const[i]=this.textRenderer.createFontStyle(r);this.ctx.font=i,this.ctx.fillStyle=R(r.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right";const o=new rA(e.bounds.left,e.bounds.top+S(e.styles.paddingTop,e.bounds.width),e.bounds.width,So(r.lineHeight,r.fontSize.number)/2+1);this.textRenderer.renderTextWithLetterSpacing(new le(A.listValue,o),r.letterSpacing,So(r.lineHeight,r.fontSize.number)/2+2,r.writingMode),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"}}}async renderStackContent(A){_(A.element.container.flags,16),await this.renderNodeBackgroundAndBorders(A.element);for(const e of A.negativeZIndex)await this.renderStack(e);await this.renderNodeContent(A.element);for(const e of A.nonInlineLevel)await this.renderNode(e);for(const e of A.nonPositionedFloats)await this.renderStack(e);for(const e of A.nonPositionedInlineLevel)await this.renderStack(e);for(const e of A.inlineLevel)await this.renderNode(e);for(const e of A.zeroOrAutoZIndexOrTransformedOrOpacity)await this.renderStack(e);for(const e of A.positiveZIndex)await this.renderStack(e)}mask(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.options.width,0),this.ctx.lineTo(this.options.width,this.options.height),this.ctx.lineTo(0,this.options.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()}path(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()}formatPath(A){A.forEach((e,t)=>{const r=dA(e)?e.start:e;t===0?this.ctx.moveTo(r.x,r.y):this.ctx.lineTo(r.x,r.y),dA(e)&&this.ctx.bezierCurveTo(e.startControl.x,e.startControl.y,e.endControl.x,e.endControl.y,e.end.x,e.end.y)})}async renderNodeBackgroundAndBorders(A){this.effectsRenderer.applyEffects(A.getEffects(2));const e=A.container.styles,t=!zA(e.backgroundColor)||e.backgroundImage.length,r=[{style:e.borderTopStyle,color:e.borderTopColor,width:e.borderTopWidth},{style:e.borderRightStyle,color:e.borderRightColor,width:e.borderRightWidth},{style:e.borderBottomStyle,color:e.borderBottomColor,width:e.borderBottomWidth},{style:e.borderLeftStyle,color:e.borderLeftColor,width:e.borderLeftWidth}],s=Ff(Se(e.backgroundClip,0),A.curves);(t||e.boxShadow.length)&&(this.ctx.save(),this.path(s),this.ctx.clip(),zA(e.backgroundColor)||(this.ctx.fillStyle=R(e.backgroundColor),this.ctx.fill()),await this.backgroundRenderer.renderBackgroundImage(A.container),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach(o=>{this.ctx.save();const a=Qn(A.curves),l=o.inset?0:Ef,c=sf(a,-l+(o.inset?1:-1)*o.spread.number,(o.inset?1:-1)*o.spread.number,o.spread.number*(o.inset?-2:2),o.spread.number*(o.inset?-2:2));o.inset?(this.path(a),this.ctx.clip(),this.mask(c)):(this.mask(a),this.ctx.clip(),this.path(c)),this.ctx.shadowOffsetX=o.offsetX.number+l,this.ctx.shadowOffsetY=o.offsetY.number,this.ctx.shadowColor=R(o.color),this.ctx.shadowBlur=o.blur.number,this.ctx.fillStyle=o.inset?R(o.color):"rgba(0,0,0,1)",this.ctx.fill(),this.ctx.restore()}));let i=0;for(const o of r)o.style!==0&&!zA(o.color)&&o.width>0&&(o.style===2?await this.borderRenderer.renderDashedDottedBorder(o.color,o.width,i,A.curves,2):o.style===3?await this.borderRenderer.renderDashedDottedBorder(o.color,o.width,i,A.curves,3):o.style===4?await this.borderRenderer.renderDoubleBorder(o.color,o.width,i,A.curves):await this.borderRenderer.renderSolidBorder(o.color,i,A.curves)),i++}async render(A){this.options.backgroundColor&&(this.ctx.fillStyle=R(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height));const e=af(A);return await this.renderStack(e),this.effectsRenderer.applyEffects([]),this.canvas}}const Uf=n=>n instanceof ra||n instanceof na?!0:n instanceof at&&n.type!==Cn&&n.type!==mn,Ff=(n,A)=>{switch(n){case 0:return Qn(A);case 2:return Af(A);case 1:default:return xn(A)}},If=n=>{switch(n){case 1:return"center";case 2:return"right";case 0:default:return"left"}};class Sf extends Sa{constructor(A,e){super(A,e),this.canvas=e.canvas?e.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.options=e,this.canvas.width=Math.floor(e.width*e.scale),this.canvas.height=Math.floor(e.height*e.scale),this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`,this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-e.x,-e.y),this.context.logger.debug(`EXPERIMENTAL ForeignObject renderer initialized (${e.width}x${e.height} at ${e.x},${e.y}) with scale ${e.scale}`)}async render(A){const e=Vr(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,A),t=await Hf(e);return this.options.backgroundColor&&(this.ctx.fillStyle=R(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(t,-this.options.x*this.options.scale,-this.options.y*this.options.scale),this.canvas}}const Hf=n=>new Promise((A,e)=>{const t=new Image;t.onload=()=>{A(t)},t.onerror=e,t.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(n))}`});class La{constructor({id:A,enabled:e}){this.id=A,this.enabled=e,this.start=Date.now()}debug(...A){this.enabled&&(typeof window<"u"&&window.console&&typeof console.debug=="function"||this.info(...A))}getTime(){return Date.now()-this.start}info(...A){this.enabled&&typeof window<"u"&&window.console}warn(...A){this.enabled&&(typeof window<"u"&&window.console&&typeof console.warn=="function"||this.info(...A))}error(...A){this.enabled&&(typeof window<"u"&&window.console&&typeof console.error=="function"||this.info(...A))}}La.instances={};class Lf{constructor(A,e){if(this.context=A,this._options=e,this._cache=new Map,this._pendingOperations=new Map,this.maxSize=e.maxCacheSize??100,this.maxSize<1)throw new Error("Cache maxSize must be at least 1");this.maxSize>1e4&&this.context.logger.warn(`Cache maxSize ${this.maxSize} is very large and may cause memory issues. Consider using a smaller value (recommended: 100-1000).`)}addImage(A){const e=this._pendingOperations.get(A);if(e)return e;if(this.has(A)){const t=this._cache.get(A);return t&&(t.lastAccessed=Date.now()),Promise.resolve()}if(rs(A)||Df(A)){const t=this._addImageInternal(A);return this._pendingOperations.set(A,t),t.finally(()=>{this._pendingOperations.delete(A)}),t}return Promise.resolve()}async _addImageInternal(A){const e=this._options.imageTimeout??15e3,t=new Promise((s,i)=>{setTimeout(()=>{i(new Error(`Image load timeout after ${e}ms: ${A}`))},e)}),r=Promise.race([this.loadImage(A),t]);r.catch(s=>{this.context.logger.error(`Failed to load image ${A}: ${s instanceof Error?s.message:"Unknown error"}`)}),this.set(A,r)}match(A){const e=this._cache.get(A);if(e)return e.lastAccessed=Date.now(),e.value}set(A,e){if(this._cache.has(A)){const t=this._cache.get(A);t.value=e,t.lastAccessed=Date.now();return}this._cache.size>=this.maxSize&&this.evictLRU(),this._cache.set(A,{value:e,lastAccessed:Date.now()})}evictLRU(){let A=null,e=1/0;for(const[t,r]of this._cache.entries())r.lastAccessed<e&&(e=r.lastAccessed,A=t);A&&(this._cache.delete(A),this.context.logger.debug(`Cache: Evicted LRU entry: ${A}`))}size(){return this._cache.size}getMaxSize(){return this.maxSize}clear(){this._cache.clear()}async loadImage(A){const e=this.context.originChecker,t=a=>e.isSameOrigin(a),r=typeof this._options.customIsSameOrigin=="function"?await this._options.customIsSameOrigin(A,t):t(A),s=!ns(A)&&this._options.useCORS===!0&&nA.SUPPORT_CORS_IMAGES&&!r,i=!ns(A)&&!r&&!rs(A)&&typeof this._options.proxy=="string"&&nA.SUPPORT_CORS_XHR&&!s;if(!r&&this._options.allowTaint===!1&&!ns(A)&&!rs(A)&&!i&&!s)return;let o=A;return i&&(o=await this.proxy(o)),this.context.logger.debug(`Added image ${A.substring(0,256)}`),await new Promise((a,l)=>{const c=new Image;c.onload=()=>a(c),c.onerror=l,(Pf(o)||s)&&(c.crossOrigin="anonymous"),c.src=o,c.complete===!0&&setTimeout(()=>a(c),500),this._options.imageTimeout>0&&setTimeout(()=>l(`Timed out (${this._options.imageTimeout}ms) loading image`),this._options.imageTimeout)})}has(A){return this._cache.has(A)}keys(){return Promise.resolve(Object.keys(this._cache))}proxy(A){const e=this._options.proxy;if(!e)throw new Error("No proxy defined");const t=A.substring(0,256);return new Promise((r,s)=>{const i=nA.SUPPORT_RESPONSE_TYPE?"blob":"text",o=new XMLHttpRequest;o.onload=()=>{if(o.status===200)if(i==="text")r(o.response);else{const l=new FileReader;l.addEventListener("load",()=>r(l.result),!1),l.addEventListener("error",c=>s(c),!1),l.readAsDataURL(o.response)}else s(`Failed to proxy resource ${t} with status code ${o.status}`)},o.onerror=s;const a=e.indexOf("?")>-1?"&":"?";if(o.open("GET",`${e}${a}url=${encodeURIComponent(A)}&responseType=${i}`),i!=="text"&&o instanceof XMLHttpRequest&&(o.responseType=i),this._options.imageTimeout){const l=this._options.imageTimeout;o.timeout=l,o.ontimeout=()=>s(`Timed out (${l}ms) proxying ${t}`)}o.send()})}}const Tf=/^data:image\/svg\+xml/i,Mf=/^data:image\/.*;base64,/i,kf=/^data:image\/.*/i,Df=n=>nA.SUPPORT_SVG_DRAWING||!Kf(n),ns=n=>kf.test(n),Pf=n=>Mf.test(n),rs=n=>n.substr(0,4)==="blob",Kf=n=>n.substr(-3).toLowerCase()==="svg"||Tf.test(n);class Nf{constructor(A){if(!A||!A.document)throw new Error("Valid window object required for OriginChecker");if(!A.location||!A.location.href)throw new Error("Window object must have valid location");this.link=A.document.createElement("a"),this.origin=this.getOrigin(A.location.href)}getOrigin(A){return this.link.href=A,this.link.href=this.link.href,this.link.protocol+this.link.hostname+this.link.port}isSameOrigin(A){return this.getOrigin(A)===this.origin}getContextOrigin(){return this.origin}}class In{constructor(A,e,t){this.windowBounds=e,this.instanceName=`#${In.instanceCount++}`,this.config=t,this.logger=new La({id:this.instanceName,enabled:A.logging}),this.originChecker=new Nf(t.window),this.cache=A.cache??t.cache??new Lf(this,A)}}In.instanceCount=1;class He{constructor(A={}){if(this.window=A.window||(typeof window<"u"?window:null),!this.window)throw new Error("Window object is required but not available");this.cspNonce=A.cspNonce,this.cache=A.cache}static fromElement(A,e={}){const t=A.ownerDocument;if(!t)throw new Error("Element is not attached to a document");const r=t.defaultView;if(!r)throw new Error("Document is not attached to a window");return new He({window:r,...e})}clone(A={}){return new He({window:A.window||this.window,cspNonce:A.cspNonce??this.cspNonce,cache:A.cache??this.cache})}}function $f(n){}class Ta{constructor(A={}){this.config={maxImageTimeout:3e5,allowDataUrls:!0,...A}}validateUrl(A,e="general"){if(!A||typeof A!="string")return{valid:!1,error:"URL must be a non-empty string"};if(A.startsWith("data:"))return this.config.allowDataUrls?{valid:!0,sanitized:A}:{valid:!1,error:"Data URLs are not allowed"};if(A.startsWith("blob:"))return{valid:!0,sanitized:A};try{const t=new URL(A);if(!["http:","https:"].includes(t.protocol))return{valid:!1,error:`Protocol ${t.protocol} is not allowed. Only http and https are permitted.`};if(e==="proxy"&&this.config.allowedProxyDomains&&this.config.allowedProxyDomains.length>0){const r=t.hostname.toLowerCase();if(!this.config.allowedProxyDomains.some(i=>{const o=i.toLowerCase();return r===o||r.endsWith("."+o)}))return{valid:!1,error:`Proxy domain ${t.hostname} is not in the allowed list`}}if(e==="proxy"){if(!this.config.allowLocalhostProxy){const r=t.hostname.toLowerCase();if(r==="localhost"||r==="127.0.0.1"||r==="::1")return{valid:!1,error:"Localhost is not allowed for proxy URLs"};if(this.isPrivateIP(r))return{valid:!1,error:"Private IP addresses are not allowed for proxy URLs"};if(r.startsWith("169.254.")||r.startsWith("fe80:"))return{valid:!1,error:"Link-local addresses are not allowed for proxy URLs"}}return{valid:!0,sanitized:A,requiresRuntimeCheck:!0}}return{valid:!0,sanitized:A}}catch(t){return{valid:!1,error:`Invalid URL format: ${t instanceof Error?t.message:"Unknown error"}`}}}isPrivateIP(A){return[/^0\./,/^10\./,/^100\.(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-7])\./,/^127\./,/^169\.254\./,/^172\.(1[6-9]|2[0-9]|3[0-1])\./,/^192\.0\.0\./,/^192\.0\.2\./,/^192\.168\./,/^198\.(1[8-9])\./,/^198\.51\.100\./,/^203\.0\.113\./,/^2(2[4-9]|3[0-9])\./,/^24[0-9]\./,/^255\.255\.255\.255$/].some(t=>t.test(A))?!0:A.includes(":")?this.isPrivateIPv6(A):!1}isPrivateIPv6(A){const r=A.toLowerCase().trim().replace(/^\[|\]$/g,"").split("%")[0];if(/^(0:){7}1$/.test(r)||r==="::1"||/^(0:){7}0$/.test(r)||r==="::")return!0;const s=this.expandIPv6(r);if(!s)return this.isPrivateIPv6Prefix(r);const i=parseInt(s.substring(0,2),16);if(i>=252&&i<=253)return!0;if(i===254){const o=parseInt(s.substring(2,4),16);if(o>=128&&o<=191)return!0}return i===255}expandIPv6(A){try{if(A.includes("::")){const e=A.split("::");if(e.length>2)return null;const t=e[0]?e[0].split(":"):[],r=e[1]?e[1].split(":"):[],s=8-t.length-r.length;if(s<0)return null;const i=Array(s).fill("0000");return[...t,...i,...r].map(a=>a.padStart(4,"0")).join(":")}else{const e=A.split(":");return e.length!==8?null:e.map(t=>t.padStart(4,"0")).join(":")}}catch{return null}}isPrivateIPv6Prefix(A){return!!(/^fc[0-9a-f]{0,2}:?/i.test(A)||/^fd[0-9a-f]{0,2}:?/i.test(A)||/^fe[89ab][0-9a-f]:?/i.test(A)||/^ff[0-9a-f]{0,2}:?/i.test(A))}validateCspNonce(A){return!A||typeof A!="string"?{valid:!1,error:"CSP nonce must be a non-empty string"}:A.length<16?{valid:!1,error:"CSP nonce is too short (minimum 16 characters recommended)"}:/^[A-Za-z0-9+/=_-]+$/.test(A)?{valid:!0,sanitized:A}:{valid:!1,error:"CSP nonce contains invalid characters"}}validateImageTimeout(A){return typeof A!="number"||isNaN(A)?{valid:!1,error:"Image timeout must be a number"}:A<0?{valid:!1,error:"Image timeout cannot be negative"}:this.config.maxImageTimeout&&A>this.config.maxImageTimeout?{valid:!1,error:`Image timeout ${A}ms exceeds maximum allowed ${this.config.maxImageTimeout}ms`}:{valid:!0,sanitized:A}}validateDimensions(A,e){if(typeof A!="number"||typeof e!="number")return{valid:!1,error:"Dimensions must be numbers"};if(isNaN(A)||isNaN(e))return{valid:!1,error:"Dimensions cannot be NaN"};if(A<=0||e<=0)return{valid:!1,error:"Dimensions must be positive"};const t=32767;return A>t||e>t?{valid:!1,error:`Dimensions exceed maximum allowed (${t}px)`}:{valid:!0,sanitized:{width:A,height:e}}}validateScale(A){return typeof A!="number"||isNaN(A)?{valid:!1,error:"Scale must be a number"}:A<=0?{valid:!1,error:"Scale must be positive"}:A>10?{valid:!1,error:"Scale factor too large (maximum 10x)"}:{valid:!0,sanitized:A}}validateElement(A){return A?typeof A!="object"?{valid:!1,error:"Element must be an object"}:typeof HTMLElement<"u"&&A instanceof HTMLElement?A.ownerDocument?{valid:!0}:{valid:!1,error:"Element must be attached to a document"}:A.ownerDocument?A.ownerDocument.defaultView?{valid:!0}:{valid:!1,error:"Document must be attached to a window (ownerDocument.defaultView required)"}:{valid:!1,error:"Element must be attached to a document (ownerDocument required)"}:{valid:!1,error:"Element is required"}}validateOptions(A){const e=[],t=A.proxy;if(t!=null&&typeof t=="string"&&t.length>0){const r=this.validateUrl(t,"proxy");r.valid||e.push(`Proxy: ${r.error}`)}if(A.imageTimeout!==void 0){const r=this.validateImageTimeout(A.imageTimeout);r.valid||e.push(`Image timeout: ${r.error}`)}if(A.width!==void 0||A.height!==void 0){const r=A.width??800,s=A.height??600,i=this.validateDimensions(r,s);i.valid||e.push(`Dimensions: ${i.error}`)}if(A.scale!==void 0){const r=this.validateScale(A.scale);r.valid||e.push(`Scale: ${r.error}`)}if(A.cspNonce!==void 0){const r=this.validateCspNonce(A.cspNonce);r.valid||e.push(`CSP nonce: ${r.error}`)}if(this.config.customValidator){const r=this.config.customValidator(A,"options");r.valid||e.push(`Custom validation: ${r.error}`)}return e.length>0?{valid:!1,error:e.join("; ")}:{valid:!0}}}function Ma(n={}){return new Ta({allowDataUrls:!0,maxImageTimeout:3e5,...n})}class ka{constructor(A,e=!0){this.context=A,this.activeMetrics=new Map,this.completedMetrics=[],this.enabled=e,this.getTime=typeof performance<"u"&&typeof performance.now=="function"?()=>performance.now():()=>Date.now()}start(A,e){var t;this.enabled&&(this.activeMetrics.has(A)&&((t=this.context)==null||t.logger.warn(`Performance metric '${A}' already started. Overwriting.`)),this.activeMetrics.set(A,{name:A,startTime:this.getTime(),metadata:e}))}end(A){var t,r;if(!this.enabled)return;const e=this.activeMetrics.get(A);if(!e){(t=this.context)==null||t.logger.warn(`Performance metric '${A}' not found. Was start() called?`);return}return e.endTime=this.getTime(),e.duration=e.endTime-e.startTime,this.completedMetrics.push(e),this.activeMetrics.delete(A),(r=this.context)==null||r.logger.debug(`⏱️ ${A}: ${e.duration.toFixed(2)}ms`,e.metadata),e}measure(A,e,t){this.start(A,t);try{const r=e();return this.end(A),r}catch(r){throw this.end(A),r}}async measureAsync(A,e,t){this.start(A,t);try{const r=await e();return this.end(A),r}catch(r){throw this.end(A),r}}getMetrics(){return[...this.completedMetrics]}getMetric(A){return this.completedMetrics.find(e=>e.name===A)}getSummary(){const A=this.completedMetrics.reduce((t,r)=>t+(r.duration||0),0),e=this.completedMetrics.map(t=>({name:t.name,duration:t.duration||0,percentage:A>0?((t.duration||0)/A*100).toFixed(1)+"%":"0%"}));return{totalDuration:A,metrics:this.getMetrics(),breakdown:e}}logSummary(){if(!this.enabled||this.completedMetrics.length===0||!this.context)return;const A=this.getSummary();this.context.logger.info(`
3031
- 📊 Performance Summary (Total: ${A.totalDuration.toFixed(2)}ms):`),A.breakdown.sort((e,t)=>t.duration-e.duration).forEach(e=>{this.context.logger.info(` ${e.name.padEnd(20)} ${e.duration.toFixed(2).padStart(8)}ms ${e.percentage.padStart(6)}`)})}clear(){this.activeMetrics.clear(),this.completedMetrics.splice(0)}isEnabled(){return this.enabled}getActiveMetrics(){return Array.from(this.activeMetrics.keys())}}const ss=(n,A={},e)=>{const t=e||He.fromElement(n,{cspNonce:A.cspNonce,cache:A.cache});return Rf(n,A,t)},Da=n=>{typeof window<"u"&&(new He({window,cspNonce:n}),void 0)};ss.setCspNonce=Da;const Of=n=>{["scale","width","height","imageTimeout","x","y","windowWidth","windowHeight","scrollX","scrollY"].forEach(e=>{const t=n[e];if(t!=null&&typeof t!="number"){const r=Number(t);Number.isNaN(r)||(n[e]=r)}})},Rf=async(n,A,e)=>{if(Of(A),!A.skipValidation){const M=A.validator||Ma(),Z=M.validateElement(n);if(!Z.valid)throw new Error(Z.error);const T=M.validateOptions(A);if(!T.valid)throw new Error(`Invalid options: ${T.error}`)}if(!n||typeof n!="object")throw new Error("Invalid element provided as first argument");const t=n.ownerDocument;if(!t)throw new Error("Element is not attached to a Document");const r=t.defaultView;if(!r)throw new Error("Document is not attached to a Window");const s={allowTaint:A.allowTaint??!1,imageTimeout:A.imageTimeout??15e3,proxy:A.proxy,useCORS:A.useCORS??!1,customIsSameOrigin:A.customIsSameOrigin},i={logging:A.logging??!0,cache:A.cache??e.cache,...s},o=800,a=600,l=0,c=r,d={windowWidth:A.windowWidth??c.innerWidth??o,windowHeight:A.windowHeight??c.innerHeight??a,scrollX:A.scrollX??c.pageXOffset??l,scrollY:A.scrollY??c.pageYOffset??l},h=new rA(d.scrollX,d.scrollY,d.windowWidth,d.windowHeight),u=new In(i,h,e),g=A.enablePerformanceMonitoring??A.logging??!1,B=new ka(u,g);B.start("total",{width:d.windowWidth,height:d.windowHeight});const f=A.foreignObjectRendering??!1,m={allowTaint:A.allowTaint??!1,onclone:A.onclone,ignoreElements:A.ignoreElements,iframeContainer:A.iframeContainer,inlineImages:f,copyStyles:f,cspNonce:A.cspNonce??e.cspNonce};u.logger.debug(`Starting document clone with size ${h.width}x${h.height} scrolled to ${-h.left},${-h.top}`),B.start("clone");const w=new ma(u,n,m),v=w.clonedReferenceElement;if(!v)throw new Error("Unable to find element in cloned iframe");const C=await w.toIFrame(t,h);B.end("clone");const{width:y,height:Q,left:x,top:F}=Yr(v)||kB(v)?Ad(v.ownerDocument):Mt(u,v),I=Gf(u,v,A.backgroundColor),L={canvas:A.canvas,backgroundColor:I,scale:A.scale??r.devicePixelRatio??1,x:(A.x??0)+x,y:(A.y??0)+F,width:A.width??Math.ceil(y),height:A.height??Math.ceil(Q),imageSmoothing:A.imageSmoothing,imageSmoothingQuality:A.imageSmoothingQuality};let O,K;try{return f?(u.logger.debug("Document cloned, using foreign object rendering"),B.start("render-foreignobject"),O=await new Sf(u,L).render(v),B.end("render-foreignobject")):(u.logger.debug(`Document cloned, element located at ${x},${F} with size ${y}x${Q} using computed rendering`),u.logger.debug("Starting DOM parsing"),B.start("parse"),K=oa(u,v),B.end("parse"),I===K.styles.backgroundColor&&(K.styles.backgroundColor=FA.TRANSPARENT),u.logger.debug(`Starting renderer for element at ${L.x},${L.y} with size ${L.width}x${L.height}`),B.start("render"),O=await new ts(u,L).render(K),B.end("render")),B.start("cleanup"),(A.removeContainer??!0)&&(ma.destroy(C)||u.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")),B.end("cleanup"),B.end("total"),u.logger.debug("Finished rendering"),g&&B.logSummary(),O}finally{K&&K.restoreTree()}},Gf=(n,A,e)=>{const t=A.ownerDocument,r=t.documentElement?ve(n,getComputedStyle(t.documentElement).backgroundColor):FA.TRANSPARENT,s=t.body?ve(n,getComputedStyle(t.body).backgroundColor):FA.TRANSPARENT,i=typeof e=="string"?ve(n,e):e===null?FA.TRANSPARENT:4294967295;return A===t.documentElement?zA(r)?zA(s)?i:s:r:i},Vf=Object.freeze(Object.defineProperty({__proto__:null,Html2CanvasConfig:He,get IMAGE_RENDERING(){return cA},PerformanceMonitor:ka,Validator:Ta,createDefaultValidator:Ma,default:ss,html2canvas:ss,setCspNonce:Da},Symbol.toStringTag,{value:"Module"}))})();
3029
+ }`,rf=(n,A)=>{sf(n,`.${As}${tf}${Fa}
3030
+ .${es}${nf}${Fa}`,A)},sf=(n,A,e)=>{const t=n.ownerDocument;if(t){const r=t.createElement("style");r.textContent=A,e&&(r.nonce=e),n.appendChild(r)}},of=(n,A)=>{const e=n.ownerDocument.createElement("base");e.href=A;const t=n.getElementsByTagName("head").item(0);t==null||t.insertBefore(e,(t==null?void 0:t.firstChild)??null)};class U{constructor(A,e){this.type=0,this.x=A,this.y=e}add(A,e){return new U(this.x+A,this.y+e)}}const Fe=(n,A,e)=>new U(n.x+(A.x-n.x)*e,n.y+(A.y-n.y)*e);class DA{constructor(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}subdivide(A,e){const t=Fe(this.start,this.startControl,A),r=Fe(this.startControl,this.endControl,A),s=Fe(this.endControl,this.end,A),i=Fe(t,r,A),o=Fe(r,s,A),a=Fe(i,o,A);return e?new DA(this.start,t,i,a):new DA(a,o,s,this.end)}add(A,e){return new DA(this.start.add(A,e),this.startControl.add(A,e),this.endControl.add(A,e),this.end.add(A,e))}reverse(){return new DA(this.end,this.endControl,this.startControl,this.start)}}const dA=n=>n.type===1;class af{constructor(A){const e=A.styles,t=A.bounds;let[r,s]=nt(e.borderTopLeftRadius,t.width,t.height),[i,o]=nt(e.borderTopRightRadius,t.width,t.height),[a,l]=nt(e.borderBottomRightRadius,t.width,t.height),[d,c]=nt(e.borderBottomLeftRadius,t.width,t.height);const h=[];h.push((r+i)/t.width),h.push((d+a)/t.width),h.push((s+c)/t.height),h.push((o+l)/t.height);const u=Math.max(...h);u>1&&(r/=u,s/=u,i/=u,o/=u,a/=u,l/=u,d/=u,c/=u);const g=t.width-i,B=t.height-l,f=t.width-a,m=t.height-c,w=e.borderTopWidth,v=e.borderRightWidth,C=e.borderBottomWidth,y=e.borderLeftWidth,Q=S(e.paddingTop,A.bounds.width),E=S(e.paddingRight,A.bounds.width),F=S(e.paddingBottom,A.bounds.width),I=S(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||s>0?V(t.left+y/3,t.top+w/3,r-y/3,s-w/3,P.TOP_LEFT):new U(t.left+y/3,t.top+w/3),this.topRightBorderDoubleOuterBox=r>0||s>0?V(t.left+g,t.top+w/3,i-v/3,o-w/3,P.TOP_RIGHT):new U(t.left+t.width-v/3,t.top+w/3),this.bottomRightBorderDoubleOuterBox=a>0||l>0?V(t.left+f,t.top+B,a-v/3,l-C/3,P.BOTTOM_RIGHT):new U(t.left+t.width-v/3,t.top+t.height-C/3),this.bottomLeftBorderDoubleOuterBox=d>0||c>0?V(t.left+y/3,t.top+m,d-y/3,c-C/3,P.BOTTOM_LEFT):new U(t.left+y/3,t.top+t.height-C/3),this.topLeftBorderDoubleInnerBox=r>0||s>0?V(t.left+y*2/3,t.top+w*2/3,r-y*2/3,s-w*2/3,P.TOP_LEFT):new U(t.left+y*2/3,t.top+w*2/3),this.topRightBorderDoubleInnerBox=r>0||s>0?V(t.left+g,t.top+w*2/3,i-v*2/3,o-w*2/3,P.TOP_RIGHT):new U(t.left+t.width-v*2/3,t.top+w*2/3),this.bottomRightBorderDoubleInnerBox=a>0||l>0?V(t.left+f,t.top+B,a-v*2/3,l-C*2/3,P.BOTTOM_RIGHT):new U(t.left+t.width-v*2/3,t.top+t.height-C*2/3),this.bottomLeftBorderDoubleInnerBox=d>0||c>0?V(t.left+y*2/3,t.top+m,d-y*2/3,c-C*2/3,P.BOTTOM_LEFT):new U(t.left+y*2/3,t.top+t.height-C*2/3),this.topLeftBorderStroke=r>0||s>0?V(t.left+y/2,t.top+w/2,r-y/2,s-w/2,P.TOP_LEFT):new U(t.left+y/2,t.top+w/2),this.topRightBorderStroke=r>0||s>0?V(t.left+g,t.top+w/2,i-v/2,o-w/2,P.TOP_RIGHT):new U(t.left+t.width-v/2,t.top+w/2),this.bottomRightBorderStroke=a>0||l>0?V(t.left+f,t.top+B,a-v/2,l-C/2,P.BOTTOM_RIGHT):new U(t.left+t.width-v/2,t.top+t.height-C/2),this.bottomLeftBorderStroke=d>0||c>0?V(t.left+y/2,t.top+m,d-y/2,c-C/2,P.BOTTOM_LEFT):new U(t.left+y/2,t.top+t.height-C/2),this.topLeftBorderBox=r>0||s>0?V(t.left,t.top,r,s,P.TOP_LEFT):new U(t.left,t.top),this.topRightBorderBox=i>0||o>0?V(t.left+g,t.top,i,o,P.TOP_RIGHT):new U(t.left+t.width,t.top),this.bottomRightBorderBox=a>0||l>0?V(t.left+f,t.top+B,a,l,P.BOTTOM_RIGHT):new U(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=d>0||c>0?V(t.left,t.top+m,d,c,P.BOTTOM_LEFT):new U(t.left,t.top+t.height),this.topLeftPaddingBox=r>0||s>0?V(t.left+y,t.top+w,Math.max(0,r-y),Math.max(0,s-w),P.TOP_LEFT):new U(t.left+y,t.top+w),this.topRightPaddingBox=i>0||o>0?V(t.left+Math.min(g,t.width-v),t.top+w,g>t.width+v?0:Math.max(0,i-v),Math.max(0,o-w),P.TOP_RIGHT):new U(t.left+t.width-v,t.top+w),this.bottomRightPaddingBox=a>0||l>0?V(t.left+Math.min(f,t.width-y),t.top+Math.min(B,t.height-C),Math.max(0,a-v),Math.max(0,l-C),P.BOTTOM_RIGHT):new U(t.left+t.width-v,t.top+t.height-C),this.bottomLeftPaddingBox=d>0||c>0?V(t.left+y,t.top+Math.min(m,t.height-C),Math.max(0,d-y),Math.max(0,c-C),P.BOTTOM_LEFT):new U(t.left+y,t.top+t.height-C),this.topLeftContentBox=r>0||s>0?V(t.left+y+I,t.top+w+Q,Math.max(0,r-(y+I)),Math.max(0,s-(w+Q)),P.TOP_LEFT):new U(t.left+y+I,t.top+w+Q),this.topRightContentBox=i>0||o>0?V(t.left+Math.min(g,t.width+y+I),t.top+w+Q,g>t.width+y+I?0:i-y+I,o-(w+Q),P.TOP_RIGHT):new U(t.left+t.width-(v+E),t.top+w+Q),this.bottomRightContentBox=a>0||l>0?V(t.left+Math.min(f,t.width-(y+I)),t.top+Math.min(B,t.height+w+Q),Math.max(0,a-(v+E)),l-(C+F),P.BOTTOM_RIGHT):new U(t.left+t.width-(v+E),t.top+t.height-(C+F)),this.bottomLeftContentBox=d>0||c>0?V(t.left+y+I,t.top+m,Math.max(0,d-(y+I)),c-(C+F),P.BOTTOM_LEFT):new U(t.left+y+I,t.top+t.height-(C+F))}}var P;(function(n){n[n.TOP_LEFT=0]="TOP_LEFT",n[n.TOP_RIGHT=1]="TOP_RIGHT",n[n.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",n[n.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(P||(P={}));const V=(n,A,e,t,r)=>{const s=4*((Math.sqrt(2)-1)/3),i=e*s,o=t*s,a=n+e,l=A+t;switch(r){case P.TOP_LEFT:return new DA(new U(n,l),new U(n,l-o),new U(a-i,A),new U(a,A));case P.TOP_RIGHT:return new DA(new U(n,A),new U(n+i,A),new U(a,l-o),new U(a,l));case P.BOTTOM_RIGHT:return new DA(new U(a,A),new U(a,A+o),new U(n+i,l),new U(n,l));case P.BOTTOM_LEFT:default:return new DA(new U(a,l),new U(a-i,l),new U(n,A+o),new U(n,A))}},En=n=>[n.topLeftBorderBox,n.topRightBorderBox,n.bottomRightBorderBox,n.bottomLeftBorderBox],lf=n=>[n.topLeftContentBox,n.topRightContentBox,n.bottomRightContentBox,n.bottomLeftContentBox],Un=n=>[n.topLeftPaddingBox,n.topRightPaddingBox,n.bottomRightPaddingBox,n.bottomLeftPaddingBox];class Ia{constructor(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6}}class Fn{constructor(A,e){this.path=A,this.target=e,this.type=1}}class cf{constructor(A){this.opacity=A,this.type=2,this.target=6}}class ut{constructor(A){this.applyClip=A,this.type=3,this.target=6}}const df=n=>n.type===0,Sa=n=>n.type===1,hf=n=>n.type===2,uf=n=>n.type===3,Ha=(n,A)=>n.length===A.length?n.some((e,t)=>e===A[t]):!1,gf=(n,A,e,t,r)=>n.map((s,i)=>{switch(i){case 0:return s.add(A,e);case 1:return s.add(A+t,e);case 2:return s.add(A+t,e+r);case 3:return s.add(A,e+r)}return s});class La{constructor(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}class Ta{constructor(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new af(this.container),this.container.styles.opacity<1&&this.effects.push(new cf(this.container.styles.opacity)),this.container.styles.rotate!==null){const t=this.container.styles.transformOrigin,r=this.container.bounds.left+S(t[0],this.container.bounds.width),s=this.container.bounds.top+S(t[1],this.container.bounds.height),o=this.container.styles.rotate*Math.PI/180,a=Math.cos(o),l=Math.sin(o),d=[a,l,-l,a,0,0];this.effects.push(new Ia(r,s,d))}if(this.container.styles.transform!==null){const t=this.container.styles.transformOrigin,r=this.container.bounds.left+S(t[0],this.container.bounds.width),s=this.container.bounds.top+S(t[1],this.container.bounds.height),i=this.container.styles.transform;this.effects.push(new Ia(r,s,i))}if(this.container.styles.overflowX!==0){const t=En(this.curves),r=Un(this.curves);Ha(t,r)?this.effects.push(new Fn(t,6)):(this.effects.push(new Fn(t,2)),this.effects.push(new Fn(r,4)))}if(this.container.styles.clipPath.type!==0){const t=pf(this.container.styles.clipPath,this.container.bounds);t&&this.effects.push(t)}}getEffects(A){let e=[2,3].indexOf(this.container.styles.position)===-1,t=this.parent;const r=this.effects.slice(0);for(;t;){const s=t.effects.filter(i=>!Sa(i));if(e||t.container.styles.position!==0||!t.parent){if(e=[2,3].indexOf(t.container.styles.position)===-1,t.container.styles.overflowX!==0){const i=En(t.curves),o=Un(t.curves);Ha(i,o)||r.unshift(new Fn(o,6))}r.unshift(...s)}else r.unshift(...s);t=t.parent}return r.filter(s=>_(s.target,A))}}const Ma=(n,A,e,t,r)=>n==="closest-side"?Math.min(A-e,t-A):n==="farthest-side"?Math.max(A-e,t-A):S(n,r),pf=(n,A)=>{const{left:e,top:t,width:r,height:s}=A;switch(n.type){case 1:{const i=S(n.left,r),o=S(n.top,s),a=e+i,l=t+o,d=Math.max(0,r-i-S(n.right,r)),c=Math.max(0,s-o-S(n.bottom,s));return new ut(h=>{h.beginPath(),h.rect(a,l,d,c),h.clip()})}case 2:{const i=e+S(n.cx,r),o=t+S(n.cy,s);let a;return n.radius==="closest-side"?a=Math.min(i-e,o-t,e+r-i,t+s-o):n.radius==="farthest-side"?a=Math.max(i-e,o-t,e+r-i,t+s-o):a=S(n.radius,Math.sqrt(r*r+s*s)/Math.SQRT2),new ut(l=>{l.beginPath(),l.arc(i,o,Math.max(0,a),0,Math.PI*2),l.clip()})}case 3:{const i=e+S(n.cx,r),o=t+S(n.cy,s),a=Ma(n.rx,i,e,e+r,r),l=Ma(n.ry,o,t,t+s,s);return new ut(d=>{d.beginPath(),d.ellipse(i,o,Math.max(0,a),Math.max(0,l),0,0,Math.PI*2),d.clip()})}case 4:{const i=n.points.map(([o,a])=>[e+S(o,r),t+S(a,s)]);return new ut(o=>{if(o.beginPath(),i.length>0){o.moveTo(i[0][0],i[0][1]);for(let a=1;a<i.length;a++)o.lineTo(i[a][0],i[a][1]);o.closePath()}o.clip()})}case 5:{const{d:i}=n;return new ut(o=>{try{const a=o.getTransform();o.translate(e,t),o.clip(new Path2D(i)),o.setTransform(a)}catch{}})}case 0:return null;default:return null}},ts=(n,A,e,t)=>{n.container.elements.forEach(r=>{const s=_(r.flags,4),i=_(r.flags,2),o=new Ta(r,n);_(r.styles.display,2048)&&t.push(o);const a=_(r.flags,8)?[]:t;if(s||i){const l=s||r.styles.isPositioned()?e:A,d=new La(o);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){const c=r.styles.zIndex.order;if(c<0){let h=0;l.negativeZIndex.some((u,g)=>c>u.element.container.styles.zIndex.order?(h=g,!1):h>0),l.negativeZIndex.splice(h,0,d)}else if(c>0){let h=0;l.positiveZIndex.some((u,g)=>c>=u.element.container.styles.zIndex.order?(h=g+1,!1):h>0),l.positiveZIndex.splice(h,0,d)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(d)}else r.styles.isFloating()?l.nonPositionedFloats.push(d):l.nonPositionedInlineLevel.push(d);ts(o,d,s?d:e,a)}else r.styles.isInlineLevel()?A.inlineLevel.push(o):A.nonInlineLevel.push(o),ts(o,A,e,a);_(r.flags,8)&&ka(r,a)})},ka=(n,A)=>{let e=n instanceof Jr?n.start:1;const t=n instanceof Jr?n.reversed:!1;for(let r=0;r<A.length;r++){const s=A[r];s.container instanceof la&&typeof s.container.value=="number"&&s.container.value!==0&&(e=s.container.value),s.listValue=dt(e,s.container.styles.listStyleType,!0),e+=t?-1:1}},Bf=n=>{const A=new Ta(n,null),e=new La(A),t=[];return ts(A,e,e,t),ka(A.container,t),e},Da=n=>{const A=n.bounds,e=n.styles;return A.add(e.borderLeftWidth,e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth),-(e.borderTopWidth+e.borderBottomWidth))},gt=n=>{const A=n.styles,e=n.bounds,t=S(A.paddingLeft,e.width),r=S(A.paddingRight,e.width),s=S(A.paddingTop,e.width),i=S(A.paddingBottom,e.width);return e.add(t+A.borderLeftWidth,s+A.borderTopWidth,-(A.borderRightWidth+A.borderLeftWidth+t+r),-(A.borderTopWidth+A.borderBottomWidth+s+i))},ff=(n,A)=>n===0?A.bounds:n===2?gt(A):Da(A),wf=(n,A)=>n===0?A.bounds:n===2?gt(A):Da(A),ns=(n,A,e)=>{const t=ff(Se(n.styles.backgroundOrigin,A),n),r=wf(Se(n.styles.backgroundClip,A),n),s=mf(Se(n.styles.backgroundSize,A),e,t);let[i,o]=s;const a=nt(Se(n.styles.backgroundPosition,A),t.width-i,t.height-o),l=Cf(Se(n.styles.backgroundRepeat,A),a,s,t,r),d=Math.round(t.left+a[0]),c=Math.round(t.top+a[1]);return i=Math.max(1,i),o=Math.max(1,o),[l,d,c,i,o]},Ie=n=>H(n)&&n.value===be.AUTO,In=n=>typeof n=="number",mf=(n,[A,e,t],r)=>{const[s,i]=n;if(!s)return[0,0];if(N(s)&&i&&N(i))return[S(s,r.width),S(i,r.height)];const o=In(t);if(H(s)&&(s.value===be.CONTAIN||s.value===be.COVER))return In(t)?r.width/r.height<t!=(s.value===be.COVER)?[r.width,r.width/t]:[r.height*t,r.height]:[r.width,r.height];const a=In(A),l=In(e),d=a||l;if(Ie(s)&&(!i||Ie(i))){if(a&&l)return[A,e];if(!o&&!d)return[r.width,r.height];if(d&&o){const B=a?A:e*t,f=l?e:A/t;return[B,f]}const u=a?A:r.width,g=l?e:r.height;return[u,g]}if(o){let u=0,g=0;return N(s)?u=S(s,r.width):N(i)&&(g=S(i,r.height)),Ie(s)?u=g*t:(!i||Ie(i))&&(g=u/t),[u,g]}let c=null,h=null;if(N(s)?c=S(s,r.width):i&&N(i)&&(h=S(i,r.height)),c!==null&&(!i||Ie(i))&&(h=a&&l?c/A*e:r.height),h!==null&&Ie(s)&&(c=a&&l?h/e*A:r.width),c!==null&&h!==null)return[c,h];throw new Error("Unable to calculate background-size for element")},Se=(n,A)=>{const e=n[A];return typeof e>"u"?n[0]:e},Cf=(n,[A,e],[t,r],s,i)=>{switch(n){case 2:return[new U(Math.round(s.left),Math.round(s.top+e)),new U(Math.round(s.left+s.width),Math.round(s.top+e)),new U(Math.round(s.left+s.width),Math.round(r+s.top+e)),new U(Math.round(s.left),Math.round(r+s.top+e))];case 3:return[new U(Math.round(s.left+A),Math.round(s.top)),new U(Math.round(s.left+A+t),Math.round(s.top)),new U(Math.round(s.left+A+t),Math.round(s.height+s.top)),new U(Math.round(s.left+A),Math.round(s.height+s.top))];case 1:return[new U(Math.round(s.left+A),Math.round(s.top+e)),new U(Math.round(s.left+A+t),Math.round(s.top+e)),new U(Math.round(s.left+A+t),Math.round(s.top+e+r)),new U(Math.round(s.left+A),Math.round(s.top+e+r))];default:return[new U(Math.round(i.left),Math.round(i.top)),new U(Math.round(i.left+i.width),Math.round(i.top)),new U(Math.round(i.left+i.width),Math.round(i.height+i.top)),new U(Math.round(i.left),Math.round(i.height+i.top))]}},yf="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",Pa="Hidden Text";class vf{constructor(A){this._data={},this._document=A}parseMetrics(A,e){const t=this._document.createElement("div"),r=this._document.createElement("img"),s=this._document.createElement("span"),i=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",t.style.whiteSpace="nowrap",i.appendChild(t),r.src=yf,r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",s.style.fontFamily=A,s.style.fontSize=e,s.style.margin="0",s.style.padding="0",s.appendChild(this._document.createTextNode(Pa)),t.appendChild(s),t.appendChild(r);const o=r.offsetTop-s.offsetTop+2;t.removeChild(s),t.appendChild(this._document.createTextNode(Pa)),t.style.lineHeight="normal",r.style.verticalAlign="super";const a=r.offsetTop-t.offsetTop+2;return i.removeChild(t),{baseline:o,middle:a}}getMetrics(A,e){const t=`${A} ${e}`;return typeof this._data[t]>"u"&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]}}class Ka{constructor(A,e){this.context=A,this.options=e}}class bf{constructor(A){this.ctx=A.ctx,this.context=A.context,this.canvas=A.canvas}async renderBackgroundImage(A){let e=A.styles.backgroundImage.length-1;for(const t of A.styles.backgroundImage.slice(0).reverse())t.type===0?await this.renderBackgroundURLImage(A,t,e):Ag(t)?this.renderLinearGradient(A,t,e):eg(t)&&this.renderRadialGradient(A,t,e),e--}async renderBackgroundURLImage(A,e,t){let r;const s=e.url;try{r=await this.context.cache.match(s)}catch{this.context.logger.error(`Error loading background-image ${s}`)}if(r){const i=isNaN(r.width)||r.width===0?1:r.width,o=isNaN(r.height)||r.height===0?1:r.height,[a,l,d,c,h]=ns(A,t,[i,o,i/o]),u=this.ctx.createPattern(this.resizeImage(r,c,h,A.styles.imageRendering),"repeat");this.renderRepeat(a,u,l,d)}}renderLinearGradient(A,e,t){const[r,s,i,o,a]=ns(A,t,[null,null,null]),[l,d,c,h,u]=Wu(e.angle,o,a),B=(this.canvas.ownerDocument??document).createElement("canvas");B.width=o,B.height=a;const f=B.getContext("2d"),m=f.createLinearGradient(d,h,c,u);if(Eo(e.stops,l||1).forEach(w=>m.addColorStop(w.stop,R(w.color))),f.fillStyle=m,f.fillRect(0,0,o,a),o>0&&a>0){const w=this.ctx.createPattern(B,"repeat");this.renderRepeat(r,w,s,i)}}renderRadialGradient(A,e,t){const[r,s,i,o,a]=ns(A,t,[null,null,null]),l=e.position.length===0?[ie]:e.position,d=S(l[0],o),c=S(l[l.length-1],a);let[h,u]=ju(e,d,c,o,a);if((h===0||u===0)&&(h=Math.max(h,.01),u=Math.max(u,.01)),h>0&&u>0){const g=this.ctx.createRadialGradient(s+d,i+c,0,s+d,i+c,h);if(Eo(e.stops,h*2).forEach(B=>g.addColorStop(B.stop,R(B.color))),this.path(r),this.ctx.fillStyle=g,h!==u){const B=A.bounds.left+.5*A.bounds.width,f=A.bounds.top+.5*A.bounds.height,m=u/h,w=1/m;this.ctx.save(),this.ctx.translate(B,f),this.ctx.transform(1,0,0,m,0,0),this.ctx.translate(-B,-f),this.ctx.fillRect(s,w*(i-f)+f,o,a*w),this.ctx.restore()}else this.ctx.fill()}}renderRepeat(A,e,t,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)}resizeImage(A,e,t,r){const i=(this.canvas.ownerDocument??document).createElement("canvas");i.width=Math.max(1,e),i.height=Math.max(1,t);const o=i.getContext("2d");return r===cA.PIXELATED||r===cA.CRISP_EDGES?(this.context.logger.debug("Disabling image smoothing for background image due to CSS image-rendering"),o.imageSmoothingEnabled=!1):r===cA.SMOOTH?(this.context.logger.debug("Enabling image smoothing for background image due to CSS image-rendering: smooth"),o.imageSmoothingEnabled=!0):o.imageSmoothingEnabled=this.ctx.imageSmoothingEnabled,this.ctx.imageSmoothingQuality&&(o.imageSmoothingQuality=this.ctx.imageSmoothingQuality),o.drawImage(A,0,0,A.width,A.height,0,0,e,t),i}path(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()}formatPath(A){A.forEach((e,t)=>{const r=dA(e)?e.start:e;t===0?this.ctx.moveTo(r.x,r.y):this.ctx.lineTo(r.x,r.y),dA(e)&&this.ctx.bezierCurveTo(e.startControl.x,e.startControl.y,e.endControl.x,e.endControl.y,e.end.x,e.end.y)})}}const Na=(n,A)=>{switch(A){case 0:return CA(n.topLeftBorderBox,n.topLeftPaddingBox,n.topRightBorderBox,n.topRightPaddingBox);case 1:return CA(n.topRightBorderBox,n.topRightPaddingBox,n.bottomRightBorderBox,n.bottomRightPaddingBox);case 2:return CA(n.bottomRightBorderBox,n.bottomRightPaddingBox,n.bottomLeftBorderBox,n.bottomLeftPaddingBox);case 3:default:return CA(n.bottomLeftBorderBox,n.bottomLeftPaddingBox,n.topLeftBorderBox,n.topLeftPaddingBox)}},Qf=(n,A)=>{switch(A){case 0:return CA(n.topLeftBorderBox,n.topLeftBorderDoubleOuterBox,n.topRightBorderBox,n.topRightBorderDoubleOuterBox);case 1:return CA(n.topRightBorderBox,n.topRightBorderDoubleOuterBox,n.bottomRightBorderBox,n.bottomRightBorderDoubleOuterBox);case 2:return CA(n.bottomRightBorderBox,n.bottomRightBorderDoubleOuterBox,n.bottomLeftBorderBox,n.bottomLeftBorderDoubleOuterBox);case 3:default:return CA(n.bottomLeftBorderBox,n.bottomLeftBorderDoubleOuterBox,n.topLeftBorderBox,n.topLeftBorderDoubleOuterBox)}},xf=(n,A)=>{switch(A){case 0:return CA(n.topLeftBorderDoubleInnerBox,n.topLeftPaddingBox,n.topRightBorderDoubleInnerBox,n.topRightPaddingBox);case 1:return CA(n.topRightBorderDoubleInnerBox,n.topRightPaddingBox,n.bottomRightBorderDoubleInnerBox,n.bottomRightPaddingBox);case 2:return CA(n.bottomRightBorderDoubleInnerBox,n.bottomRightPaddingBox,n.bottomLeftBorderDoubleInnerBox,n.bottomLeftPaddingBox);case 3:default:return CA(n.bottomLeftBorderDoubleInnerBox,n.bottomLeftPaddingBox,n.topLeftBorderDoubleInnerBox,n.topLeftPaddingBox)}},Ef=(n,A)=>{switch(A){case 0:return Sn(n.topLeftBorderStroke,n.topRightBorderStroke);case 1:return Sn(n.topRightBorderStroke,n.bottomRightBorderStroke);case 2:return Sn(n.bottomRightBorderStroke,n.bottomLeftBorderStroke);case 3:default:return Sn(n.bottomLeftBorderStroke,n.topLeftBorderStroke)}},Sn=(n,A)=>{const e=[];return dA(n)?e.push(n.subdivide(.5,!1)):e.push(n),dA(A)?e.push(A.subdivide(.5,!0)):e.push(A),e},CA=(n,A,e,t)=>{const r=[];return dA(n)?r.push(n.subdivide(.5,!1)):r.push(n),dA(e)?r.push(e.subdivide(.5,!0)):r.push(e),dA(t)?r.push(t.subdivide(.5,!0).reverse()):r.push(t),dA(A)?r.push(A.subdivide(.5,!1).reverse()):r.push(A),r};class Uf{constructor(A,e){this.ctx=A.ctx,this.pathCallbacks=e}async renderSolidBorder(A,e,t){this.pathCallbacks.path(Na(t,e)),this.ctx.fillStyle=R(A),this.ctx.fill()}async renderDoubleBorder(A,e,t,r){if(e<3){await this.renderSolidBorder(A,t,r);return}const s=Qf(r,t);this.pathCallbacks.path(s),this.ctx.fillStyle=R(A),this.ctx.fill();const i=xf(r,t);this.pathCallbacks.path(i),this.ctx.fill()}async renderDashedDottedBorder(A,e,t,r,s){this.ctx.save();const i=Ef(r,t),o=Na(r,t);s===2&&(this.pathCallbacks.path(o),this.ctx.clip());let a,l,d,c;dA(o[0])?(a=o[0].start.x,l=o[0].start.y):(a=o[0].x,l=o[0].y),dA(o[1])?(d=o[1].end.x,c=o[1].end.y):(d=o[1].x,c=o[1].y);let h;t===0||t===2?h=Math.abs(a-d):h=Math.abs(l-c),this.ctx.beginPath(),s===3?this.pathCallbacks.formatPath(i):this.pathCallbacks.formatPath(o.slice(0,2));let u=e<3?e*3:e*2,g=e<3?e*2:e;s===3&&(u=e,g=e);let B=!0;if(h<=u*2)B=!1;else if(h<=u*2+g){const f=h/(2*u+g);u*=f,g*=f}else{const f=Math.floor((h+g)/(u+g)),m=(h-f*u)/(f-1),w=(h-(f+1)*u)/f;g=w<=0||Math.abs(g-m)<Math.abs(g-w)?m:w}if(B&&(s===3?this.ctx.setLineDash([0,u+g]):this.ctx.setLineDash([u,g])),s===3?(this.ctx.lineCap="round",this.ctx.lineWidth=e):this.ctx.lineWidth=e*2+1.1,this.ctx.strokeStyle=R(A),this.ctx.stroke(),this.ctx.setLineDash([]),s===2){if(dA(o[0])){const f=o[3],m=o[0];this.ctx.beginPath(),this.pathCallbacks.formatPath([new U(f.end.x,f.end.y),new U(m.start.x,m.start.y)]),this.ctx.stroke()}if(dA(o[1])){const f=o[1],m=o[2];this.ctx.beginPath(),this.pathCallbacks.formatPath([new U(f.end.x,f.end.y),new U(m.start.x,m.start.y)]),this.ctx.stroke()}}this.ctx.restore()}}class Ff{constructor(A,e){this.activeEffects=[],this.ctx=A.ctx,this.pathCallback=e}applyEffects(A){for(;this.activeEffects.length;)this.popEffect();A.forEach(e=>this.applyEffect(e))}applyEffect(A){this.ctx.save(),hf(A)?this.ctx.globalAlpha=A.opacity:df(A)?(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)):Sa(A)?(this.pathCallback.path(A.path),this.ctx.clip()):uf(A)&&A.applyClip(this.ctx),this.activeEffects.push(A)}popEffect(){this.activeEffects.pop(),this.ctx.restore()}getActiveEffectCount(){return this.activeEffects.length}hasActiveEffects(){return this.activeEffects.length>0}}const If=["-apple-system","system-ui"],Sf=/[\u2E80-\u2FFF\u3000-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uAC00-\uD7AF\uF900-\uFAFF\uFF01-\uFFEF]/,rs=n=>Sf.test(n),Hf=()=>{if(typeof navigator>"u")return null;const n=navigator.userAgent,A=/iPhone|iPad|iPod/.test(n),e=/Macintosh/.test(n)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>1;if(!A&&!e)return null;const t=[/(?:iPhone|CPU(?:\siPhone)?)\sOS\s(\d+)[\._](\d+)/,/Version\/(\d+)\.(\d+)/];for(const r of t){const s=n.match(r);if(s&&s[1])return parseInt(s[1],10)}return null},Lf=n=>{const A=Hf();return A!==null&&A>=15&&A<17?n.map(e=>If.indexOf(e)!==-1?'-apple-system, "Helvetica Neue", Arial, sans-serif':e):n};class Tf{constructor(A){this.ctx=A.ctx,this.options=A.options}iterateLettersWithLetterSpacing(A,e,t,r,s){if(IA(r)){this.iterateVerticalGlyphs(A,e,t,r,s);return}const i=xe(A.text),o=A.bounds.top+t;let a=A.bounds.left;for(const l of i){if(rs(l)){const d=this.ctx.textBaseline;this.ctx.textBaseline="ideographic",s(l,a,o),this.ctx.textBaseline=d}else s(l,a,o);a+=this.ctx.measureText(l).width+e}}iterateVerticalGlyphs(A,e,t,r,s){const i=xe(A.text);let o=A.bounds.top;for(const a of i){if(lp(r)||!rs(a)&&a.trim().length>0)this.ctx.save(),this.ctx.translate(A.bounds.left+t,o),this.ctx.rotate(r===4?-Math.PI/2:Math.PI/2),s(a,0,0),this.ctx.restore();else{const l=this.ctx.textBaseline;rs(a)&&(this.ctx.textBaseline="ideographic"),s(a,A.bounds.left,o+t),this.ctx.textBaseline=l}o+=this.ctx.measureText(a).width+e}}renderTextWithLetterSpacing(A,e,t,r=0){e===0&&!IA(r)?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+t):this.iterateLettersWithLetterSpacing(A,e,t,r,(s,i,o)=>{this.ctx.fillText(s,i,o)})}renderTextBoundWithPaintOrder(A,e,t){t.forEach(r=>{switch(r){case 0:this.ctx.fillStyle=R(e.color),this.renderTextWithLetterSpacing(A,e.letterSpacing,e.fontSize.number,e.writingMode);break;case 1:e.webkitTextStrokeWidth&&A.text.trim().length&&(this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(A.text,A.bounds.left,A.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(A,e.letterSpacing,e.fontSize.number,e.writingMode,(s,i,o)=>this.ctx.strokeText(s,i,o)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}})}renderTextDecoration(A,e){this.ctx.fillStyle=R(e.textDecorationColor||e.color);let t=1;typeof e.textDecorationThickness=="number"?t=e.textDecorationThickness:e.textDecorationThickness==="from-font"&&(t=Math.max(1,Math.floor(e.fontSize.number*.05)));let r=0;typeof e.textUnderlineOffset=="number"&&(r=e.textUnderlineOffset);const s=e.textDecorationStyle;e.textDecorationLine.forEach(i=>{let o=0;switch(i){case 1:o=A.top+A.height-t+r;break;case 2:o=A.top;break;case 3:o=A.top+(A.height/2-t/2);break;default:return}this.drawDecorationLine(A.left,o,A.width,t,s)})}drawDecorationLine(A,e,t,r,s){switch(s){case 0:this.ctx.fillRect(A,e,t,r);break;case 1:const i=Math.max(1,r);this.ctx.fillRect(A,e,t,r),this.ctx.fillRect(A,e+r+i,t,r);break;case 2:this.ctx.save(),this.ctx.beginPath(),this.ctx.setLineDash([r,r*2]),this.ctx.lineWidth=r,this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.moveTo(A,e+r/2),this.ctx.lineTo(A+t,e+r/2),this.ctx.stroke(),this.ctx.restore();break;case 3:this.ctx.save(),this.ctx.beginPath(),this.ctx.setLineDash([r*3,r*2]),this.ctx.lineWidth=r,this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.moveTo(A,e+r/2),this.ctx.lineTo(A+t,e+r/2),this.ctx.stroke(),this.ctx.restore();break;case 4:this.ctx.save(),this.ctx.beginPath(),this.ctx.lineWidth=r,this.ctx.strokeStyle=this.ctx.fillStyle;const o=r*2,a=r*4;let l=A;for(this.ctx.moveTo(l,e+r/2);l<A+t;){const d=Math.min(l+a/2,A+t);if(this.ctx.quadraticCurveTo(l+a/4,e+r/2-o,d,e+r/2),l=d,l<A+t){const c=Math.min(l+a/2,A+t);this.ctx.quadraticCurveTo(l+a/4,e+r/2+o,c,e+r/2),l=c}}this.ctx.stroke(),this.ctx.restore();break;default:this.ctx.fillRect(A,e,t,r)}}truncateTextWithEllipsis(A,e,t){const r="…",s=this.ctx.measureText(r).width,i=xe(A);if(t===0){const o=d=>this.ctx.measureText(i.slice(0,d).join("")).width+s<=e;let a=0,l=i.length;for(;a<l;){const d=a+l+1>>1;o(d)?a=d:l=d-1}return i.slice(0,a).join("")+r}else{let o=s;const a=[];for(const l of i){const d=this.ctx.measureText(l).width;if(o+d>e)break;a.push(l),o+=d+t}return a.join("")+r}}createFontStyle(A){const e=A.fontVariant.filter(s=>s==="normal"||s==="small-caps").join(""),t=Lf(A.fontFamily).join(", "),r=EA(A.fontSize)?`${A.fontSize.number}${A.fontSize.unit}`:`${A.fontSize.number}px`;return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]}async renderTextNode(A,e,t){const[r]=this.createFontStyle(e);this.ctx.font=r,this.ctx.direction=e.direction===1?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic";const s=e.paintOrder,i=e.fontSize.number*1.5;if(e.webkitLineClamp>0&&(e.display&2)!==0&&e.overflowY===1&&A.textBounds.length>0){const c=[];let h=[],u=A.textBounds[0].bounds.top;A.textBounds.forEach(B=>{Math.abs(B.bounds.top-u)>=i*.5?(h.length>0&&c.push(h),h=[B],u=B.bounds.top):h.push(B)}),h.length>0&&c.push(h);const g=e.webkitLineClamp;if(c.length>g){for(let f=0;f<g-1;f++)c[f].forEach(m=>{this.renderTextBoundWithPaintOrder(m,e,s)});const B=c[g-1];if(B&&B.length>0&&t){const f=B.map(y=>y.text).join(""),m=B[0],w=t.width-(m.bounds.left-t.left),v=this.truncateTextWithEllipsis(f,w,e.letterSpacing),C=new le(v,m.bounds);s.forEach(y=>{switch(y){case 0:this.ctx.fillStyle=R(e.color),e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.fillText(v,m.bounds.left,m.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(C,e.letterSpacing,e.fontSize.number,e.writingMode,(Q,E,F)=>this.ctx.fillText(Q,E,F));break;case 1:e.webkitTextStrokeWidth&&v.trim().length&&(this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(v,m.bounds.left,m.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(C,e.letterSpacing,e.fontSize.number,e.writingMode,(Q,E,F)=>this.ctx.strokeText(Q,E,F)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}})}return}}const a=e.textOverflow===1&&t&&e.overflowX===1&&A.textBounds.length>0;let l=!1,d="";if(a){const c=A.textBounds[0].bounds.top;if(A.textBounds.every(u=>Math.abs(u.bounds.top-c)<i*.5)){let u=A.textBounds.map(f=>f.text).join("");u=u.replace(/\s+/g," ").trim();const g=this.ctx.measureText(u).width,B=t.width;g>B&&(l=!0,d=this.truncateTextWithEllipsis(u,B,e.letterSpacing))}}if(l){const c=A.textBounds[0],h=new le(d,c.bounds);s.forEach(u=>{switch(u){case 0:{this.ctx.fillStyle=R(e.color),e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.fillText(d,c.bounds.left,c.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(h,e.letterSpacing,e.fontSize.number,e.writingMode,(B,f,m)=>this.ctx.fillText(B,f,m));const g=e.textShadow;g.length&&d.trim().length&&(g.slice(0).reverse().forEach(B=>{this.ctx.shadowColor=R(B.color),this.ctx.shadowOffsetX=B.offsetX.number*this.options.scale,this.ctx.shadowOffsetY=B.offsetY.number*this.options.scale,this.ctx.shadowBlur=B.blur.number,e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.fillText(d,c.bounds.left,c.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(h,e.letterSpacing,e.fontSize.number,e.writingMode,(f,m,w)=>this.ctx.fillText(f,m,w))}),this.ctx.shadowColor="",this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.ctx.shadowBlur=0);break}case 1:e.webkitTextStrokeWidth&&d.trim().length&&(this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(d,c.bounds.left,c.bounds.top+e.fontSize.number):this.iterateLettersWithLetterSpacing(h,e.letterSpacing,e.fontSize.number,e.writingMode,(g,B,f)=>this.ctx.strokeText(g,B,f)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}});return}A.textBounds.forEach(c=>{s.forEach(h=>{switch(h){case 0:{this.ctx.fillStyle=R(e.color),this.renderTextWithLetterSpacing(c,e.letterSpacing,e.fontSize.number,e.writingMode);const u=e.textShadow;u.length&&c.text.trim().length&&(u.slice(0).reverse().forEach(g=>{this.ctx.shadowColor=R(g.color),this.ctx.shadowOffsetX=g.offsetX.number*this.options.scale,this.ctx.shadowOffsetY=g.offsetY.number*this.options.scale,this.ctx.shadowBlur=g.blur.number,this.renderTextWithLetterSpacing(c,e.letterSpacing,e.fontSize.number,e.writingMode)}),this.ctx.shadowColor="",this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.ctx.shadowBlur=0),e.textDecorationLine.length&&this.renderTextDecoration(c.bounds,e);break}case 1:{if(e.webkitTextStrokeWidth&&c.text.trim().length){this.ctx.strokeStyle=R(e.webkitTextStrokeColor),this.ctx.lineWidth=e.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round";const u=e.fontSize.number;e.letterSpacing===0&&!IA(e.writingMode)?this.ctx.strokeText(c.text,c.bounds.left,c.bounds.top+u):this.iterateLettersWithLetterSpacing(c,e.letterSpacing,u,e.writingMode,(g,B,f)=>this.ctx.strokeText(g,B,f)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter"}break}}})})}}const Mf=1e4;class ss extends Ka{constructor(A,e){super(A,e),this.canvas=e.canvas?e.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),e.canvas||(this.canvas.width=Math.floor(e.width*e.scale),this.canvas.height=Math.floor(e.height*e.scale),this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`),this.fontMetrics=new vf(document),this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-e.x,-e.y),this.ctx.textBaseline="bottom",e.imageSmoothing!==void 0&&(this.ctx.imageSmoothingEnabled=e.imageSmoothing),e.imageSmoothingQuality&&(this.ctx.imageSmoothingQuality=e.imageSmoothingQuality),this.backgroundRenderer=new bf({ctx:this.ctx,context:this.context,canvas:this.canvas,options:{width:e.width,height:e.height,scale:e.scale}}),this.borderRenderer=new Uf({ctx:this.ctx},{path:t=>this.path(t),formatPath:t=>this.formatPath(t)}),this.effectsRenderer=new Ff({ctx:this.ctx},{path:t=>this.path(t)}),this.textRenderer=new Tf({ctx:this.ctx,context:this.context,options:{scale:e.scale}}),this.context.logger.debug(`Canvas renderer initialized (${e.width}x${e.height}) with scale ${e.scale}`)}async renderStack(A){A.element.container.styles.isVisible()&&await this.renderStackContent(A)}async renderNode(A){_(A.container.flags,16),A.container.styles.isVisible()&&(await this.renderNodeBackgroundAndBorders(A),await this.renderNodeContent(A))}renderReplacedElement(A,e,t){const r=t.naturalWidth||A.intrinsicWidth,s=t.naturalHeight||A.intrinsicHeight;if(t&&r>0&&s>0){const i=gt(A),o=Un(e);this.path(o),this.ctx.save(),this.ctx.clip();let a=0,l=0,d=r,c=s,h=i.left,u=i.top,g=i.width,B=i.height;const{objectFit:f}=A.styles,m=g/B,w=d/c;if(f===2)w>m?(B=g/w,u+=(i.height-B)/2):(g=B*w,h+=(i.width-g)/2);else if(f===4)w>m?(d=c*m,a+=(r-d)/2):(c=d/m,l+=(s-c)/2);else if(f===8)d>g?(a+=(d-g)/2,d=g):(h+=(g-d)/2,g=d),c>B?(l+=(c-B)/2,c=B):(u+=(B-c)/2,B=c);else if(f===16){const v=w>m?g:B*w,C=d>g?d:g;v<C?w>m?(B=g/w,u+=(i.height-B)/2):(g=B*w,h+=(i.width-g)/2):(d>g?(a+=(d-g)/2,d=g):(h+=(g-d)/2,g=d),c>B?(l+=(c-B)/2,c=B):(u+=(B-c)/2,B=c))}this.ctx.drawImage(t,a,l,d,c,h,u,g,B),this.ctx.restore()}}async renderNodeContent(A){this.effectsRenderer.applyEffects(A.getEffects(4));const e=A.container,t=A.curves,r=e.styles,s=gt(e);for(const i of e.textNodes)await this.textRenderer.renderTextNode(i,r,s);if(e instanceof ia)try{const i=await this.context.cache.match(e.src),o=this.ctx.imageSmoothingEnabled;r.imageRendering===cA.PIXELATED||r.imageRendering===cA.CRISP_EDGES?(this.context.logger.debug(`Disabling image smoothing for ${e.src} due to CSS image-rendering: ${r.imageRendering===cA.PIXELATED?"pixelated":"crisp-edges"}`),this.ctx.imageSmoothingEnabled=!1):r.imageRendering===cA.SMOOTH&&(this.context.logger.debug(`Enabling image smoothing for ${e.src} due to CSS image-rendering: smooth`),this.ctx.imageSmoothingEnabled=!0),this.renderReplacedElement(e,t,i),this.ctx.imageSmoothingEnabled=o}catch{this.context.logger.error(`Error loading image ${e.src}`)}if(e instanceof oa&&this.renderReplacedElement(e,t,e.canvas),e instanceof aa)try{const i=await this.context.cache.match(e.svg);this.renderReplacedElement(e,t,i)}catch{this.context.logger.error(`Error loading svg ${e.svg.substring(0,255)}`)}if(e instanceof ua&&e.tree){const o=await new ss(this.context,{scale:this.options.scale,backgroundColor:e.backgroundColor,x:0,y:0,width:e.width,height:e.height}).render(e.tree);e.width&&e.height&&this.ctx.drawImage(o,0,0,e.width,e.height,e.bounds.left,e.bounds.top,e.bounds.width,e.bounds.height)}if(e instanceof at){const i=Math.min(e.bounds.width,e.bounds.height);e.type===yn?e.checked&&(this.ctx.save(),this.path([new U(e.bounds.left+i*.39363,e.bounds.top+i*.79),new U(e.bounds.left+i*.16,e.bounds.top+i*.5549),new U(e.bounds.left+i*.27347,e.bounds.top+i*.44071),new U(e.bounds.left+i*.39694,e.bounds.top+i*.5649),new U(e.bounds.left+i*.72983,e.bounds.top+i*.23),new U(e.bounds.left+i*.84,e.bounds.top+i*.34085),new U(e.bounds.left+i*.39363,e.bounds.top+i*.79)]),this.ctx.fillStyle=R(ca),this.ctx.fill(),this.ctx.restore()):e.type===vn&&e.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(e.bounds.left+i/2,e.bounds.top+i/2,i/4,0,Math.PI*2,!0),this.ctx.fillStyle=R(ca),this.ctx.fill(),this.ctx.restore())}if(kf(e)&&e.value.length){const[i,o,a]=this.textRenderer.createFontStyle(r),{baseline:l}=this.fontMetrics.getMetrics(o,a);this.ctx.font=i;const d=e instanceof at&&e.isPlaceholder;this.ctx.fillStyle=R(d?KB:r.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=Pf(e.styles.textAlign);const c=gt(e);let h=0;switch(e.styles.textAlign){case 1:h+=c.width/2;break;case 2:h+=c.width;break}let u=0;if(e instanceof at){const B=S(r.fontSize,0);u=(c.height-B)/2}const g=c.add(h,u,0,0);this.ctx.save(),this.path([new U(c.left,c.top),new U(c.left+c.width,c.top),new U(c.left+c.width,c.top+c.height),new U(c.left,c.top+c.height)]),this.ctx.clip(),this.textRenderer.renderTextWithLetterSpacing(new le(e.value,g),r.letterSpacing,l,r.writingMode),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(_(e.styles.display,2048)){if(e.styles.listStyleImage!==null){const i=e.styles.listStyleImage;if(i.type===0){let o;const a=i.url;try{o=await this.context.cache.match(a),this.ctx.drawImage(o,e.bounds.left-(o.width+10),e.bounds.top)}catch{this.context.logger.error(`Error loading list-style-image ${a}`)}}}else if(A.listValue&&e.styles.listStyleType!==-1){const[i]=this.textRenderer.createFontStyle(r);this.ctx.font=i,this.ctx.fillStyle=R(r.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right";const o=new rA(e.bounds.left,e.bounds.top+S(e.styles.paddingTop,e.bounds.width),e.bounds.width,Ko(r.lineHeight,r.fontSize.number)/2+1);this.textRenderer.renderTextWithLetterSpacing(new le(A.listValue,o),r.letterSpacing,Ko(r.lineHeight,r.fontSize.number)/2+2,r.writingMode),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"}}}async renderStackContent(A){_(A.element.container.flags,16),await this.renderNodeBackgroundAndBorders(A.element);for(const e of A.negativeZIndex)await this.renderStack(e);await this.renderNodeContent(A.element);for(const e of A.nonInlineLevel)await this.renderNode(e);for(const e of A.nonPositionedFloats)await this.renderStack(e);for(const e of A.nonPositionedInlineLevel)await this.renderStack(e);for(const e of A.inlineLevel)await this.renderNode(e);for(const e of A.zeroOrAutoZIndexOrTransformedOrOpacity)await this.renderStack(e);for(const e of A.positiveZIndex)await this.renderStack(e)}mask(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.options.width,0),this.ctx.lineTo(this.options.width,this.options.height),this.ctx.lineTo(0,this.options.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()}path(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()}formatPath(A){A.forEach((e,t)=>{const r=dA(e)?e.start:e;t===0?this.ctx.moveTo(r.x,r.y):this.ctx.lineTo(r.x,r.y),dA(e)&&this.ctx.bezierCurveTo(e.startControl.x,e.startControl.y,e.endControl.x,e.endControl.y,e.end.x,e.end.y)})}async renderNodeBackgroundAndBorders(A){this.effectsRenderer.applyEffects(A.getEffects(2));const e=A.container.styles,t=!zA(e.backgroundColor)||e.backgroundImage.length,r=[{style:e.borderTopStyle,color:e.borderTopColor,width:e.borderTopWidth},{style:e.borderRightStyle,color:e.borderRightColor,width:e.borderRightWidth},{style:e.borderBottomStyle,color:e.borderBottomColor,width:e.borderBottomWidth},{style:e.borderLeftStyle,color:e.borderLeftColor,width:e.borderLeftWidth}],s=Df(Se(e.backgroundClip,0),A.curves);(t||e.boxShadow.length)&&(this.ctx.save(),this.path(s),this.ctx.clip(),zA(e.backgroundColor)||(this.ctx.fillStyle=R(e.backgroundColor),this.ctx.fill()),await this.backgroundRenderer.renderBackgroundImage(A.container),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach(o=>{this.ctx.save();const a=En(A.curves),l=o.inset?0:Mf,d=gf(a,-l+(o.inset?1:-1)*o.spread.number,(o.inset?1:-1)*o.spread.number,o.spread.number*(o.inset?-2:2),o.spread.number*(o.inset?-2:2));o.inset?(this.path(a),this.ctx.clip(),this.mask(d)):(this.mask(a),this.ctx.clip(),this.path(d)),this.ctx.shadowOffsetX=o.offsetX.number+l,this.ctx.shadowOffsetY=o.offsetY.number,this.ctx.shadowColor=R(o.color),this.ctx.shadowBlur=o.blur.number,this.ctx.fillStyle=o.inset?R(o.color):"rgba(0,0,0,1)",this.ctx.fill(),this.ctx.restore()}));let i=0;for(const o of r)o.style!==0&&!zA(o.color)&&o.width>0&&(o.style===2?await this.borderRenderer.renderDashedDottedBorder(o.color,o.width,i,A.curves,2):o.style===3?await this.borderRenderer.renderDashedDottedBorder(o.color,o.width,i,A.curves,3):o.style===4?await this.borderRenderer.renderDoubleBorder(o.color,o.width,i,A.curves):await this.borderRenderer.renderSolidBorder(o.color,i,A.curves)),i++}async render(A){this.options.backgroundColor&&(this.ctx.fillStyle=R(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height));const e=Bf(A);return await this.renderStack(e),this.effectsRenderer.applyEffects([]),this.canvas}}const kf=n=>n instanceof ha||n instanceof da?!0:n instanceof at&&n.type!==vn&&n.type!==yn,Df=(n,A)=>{switch(n){case 0:return En(A);case 2:return lf(A);case 1:default:return Un(A)}},Pf=n=>{switch(n){case 1:return"center";case 2:return"right";case 0:default:return"left"}};class Kf extends Ka{constructor(A,e){super(A,e),this.canvas=e.canvas?e.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.options=e,this.canvas.width=Math.floor(e.width*e.scale),this.canvas.height=Math.floor(e.height*e.scale),this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`,this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-e.x,-e.y),this.context.logger.debug(`EXPERIMENTAL ForeignObject renderer initialized (${e.width}x${e.height} at ${e.x},${e.y}) with scale ${e.scale}`)}async render(A){const e=zr(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,A),t=await Nf(e);return this.options.backgroundColor&&(this.ctx.fillStyle=R(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(t,-this.options.x*this.options.scale,-this.options.y*this.options.scale),this.canvas}}const Nf=n=>new Promise((A,e)=>{const t=new Image;t.onload=()=>{A(t)},t.onerror=e,t.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(n))}`});class Oa{constructor({id:A,enabled:e}){this.id=A,this.enabled=e,this.start=Date.now()}debug(...A){this.enabled&&(typeof window<"u"&&window.console&&typeof console.debug=="function"||this.info(...A))}getTime(){return Date.now()-this.start}info(...A){this.enabled&&typeof window<"u"&&window.console}warn(...A){this.enabled&&(typeof window<"u"&&window.console&&typeof console.warn=="function"||this.info(...A))}error(...A){this.enabled&&(typeof window<"u"&&window.console&&typeof console.error=="function"||this.info(...A))}}Oa.instances={};class Of{constructor(A,e){if(this.context=A,this._options=e,this._cache=new Map,this._pendingOperations=new Map,this.maxSize=e.maxCacheSize??100,this.maxSize<1)throw new Error("Cache maxSize must be at least 1");this.maxSize>1e4&&this.context.logger.warn(`Cache maxSize ${this.maxSize} is very large and may cause memory issues. Consider using a smaller value (recommended: 100-1000).`)}addImage(A){const e=this._pendingOperations.get(A);if(e)return e;if(this.has(A)){const t=this._cache.get(A);return t&&(t.lastAccessed=Date.now()),Promise.resolve()}if(os(A)||_f(A)){const t=this._addImageInternal(A);return this._pendingOperations.set(A,t),t.finally(()=>{this._pendingOperations.delete(A)}),t}return Promise.resolve()}async _addImageInternal(A){const e=this._options.imageTimeout??15e3,t=new Promise((s,i)=>{setTimeout(()=>{i(new Error(`Image load timeout after ${e}ms: ${A}`))},e)}),r=Promise.race([this.loadImage(A),t]);r.catch(s=>{this.context.logger.error(`Failed to load image ${A}: ${s instanceof Error?s.message:"Unknown error"}`)}),this.set(A,r)}match(A){const e=this._cache.get(A);if(e)return e.lastAccessed=Date.now(),e.value}set(A,e){if(this._cache.has(A)){const t=this._cache.get(A);t.value=e,t.lastAccessed=Date.now();return}this._cache.size>=this.maxSize&&this.evictLRU(),this._cache.set(A,{value:e,lastAccessed:Date.now()})}evictLRU(){let A=null,e=1/0;for(const[t,r]of this._cache.entries())r.lastAccessed<e&&(e=r.lastAccessed,A=t);A&&(this._cache.delete(A),this.context.logger.debug(`Cache: Evicted LRU entry: ${A}`))}size(){return this._cache.size}getMaxSize(){return this.maxSize}clear(){this._cache.clear()}async loadImage(A){const e=this.context.originChecker,t=a=>e.isSameOrigin(a),r=typeof this._options.customIsSameOrigin=="function"?await this._options.customIsSameOrigin(A,t):t(A),s=!is(A)&&this._options.useCORS===!0&&nA.SUPPORT_CORS_IMAGES&&!r,i=!is(A)&&!r&&!os(A)&&typeof this._options.proxy=="string"&&nA.SUPPORT_CORS_XHR&&!s;if(!r&&this._options.allowTaint===!1&&!is(A)&&!os(A)&&!i&&!s)return;let o=A;return i&&(o=await this.proxy(o)),this.context.logger.debug(`Added image ${A.substring(0,256)}`),await new Promise((a,l)=>{const d=new Image;d.onload=()=>a(d),d.onerror=l,(Yf(o)||s)&&(d.crossOrigin="anonymous"),d.src=o,d.complete===!0&&setTimeout(()=>a(d),500),this._options.imageTimeout>0&&setTimeout(()=>l(`Timed out (${this._options.imageTimeout}ms) loading image`),this._options.imageTimeout)})}has(A){return this._cache.has(A)}keys(){return Promise.resolve(Object.keys(this._cache))}proxy(A){const e=this._options.proxy;if(!e)throw new Error("No proxy defined");const t=A.substring(0,256);return new Promise((r,s)=>{const i=nA.SUPPORT_RESPONSE_TYPE?"blob":"text",o=new XMLHttpRequest;o.onload=()=>{if(o.status===200)if(i==="text")r(o.response);else{const l=new FileReader;l.addEventListener("load",()=>r(l.result),!1),l.addEventListener("error",d=>s(d),!1),l.readAsDataURL(o.response)}else s(`Failed to proxy resource ${t} with status code ${o.status}`)},o.onerror=s;const a=e.indexOf("?")>-1?"&":"?";if(o.open("GET",`${e}${a}url=${encodeURIComponent(A)}&responseType=${i}`),i!=="text"&&o instanceof XMLHttpRequest&&(o.responseType=i),this._options.imageTimeout){const l=this._options.imageTimeout;o.timeout=l,o.ontimeout=()=>s(`Timed out (${l}ms) proxying ${t}`)}o.send()})}}const Rf=/^data:image\/svg\+xml/i,Gf=/^data:image\/.*;base64,/i,Vf=/^data:image\/.*/i,_f=n=>nA.SUPPORT_SVG_DRAWING||!zf(n),is=n=>Vf.test(n),Yf=n=>Gf.test(n),os=n=>n.substr(0,4)==="blob",zf=n=>n.substr(-3).toLowerCase()==="svg"||Rf.test(n);class Jf{constructor(A){if(!A||!A.document)throw new Error("Valid window object required for OriginChecker");if(!A.location||!A.location.href)throw new Error("Window object must have valid location");this.link=A.document.createElement("a"),this.origin=this.getOrigin(A.location.href)}getOrigin(A){return this.link.href=A,this.link.href=this.link.href,this.link.protocol+this.link.hostname+this.link.port}isSameOrigin(A){return this.getOrigin(A)===this.origin}getContextOrigin(){return this.origin}}class Hn{constructor(A,e,t){this.windowBounds=e,this.instanceName=`#${Hn.instanceCount++}`,this.config=t,this.logger=new Oa({id:this.instanceName,enabled:A.logging}),this.originChecker=new Jf(t.window),this.cache=A.cache??t.cache??new Of(this,A)}}Hn.instanceCount=1;class He{constructor(A={}){if(this.window=A.window||(typeof window<"u"?window:null),!this.window)throw new Error("Window object is required but not available");this.cspNonce=A.cspNonce,this.cache=A.cache}static fromElement(A,e={}){const t=A.ownerDocument;if(!t)throw new Error("Element is not attached to a document");const r=t.defaultView;if(!r)throw new Error("Document is not attached to a window");return new He({window:r,...e})}clone(A={}){return new He({window:A.window||this.window,cspNonce:A.cspNonce??this.cspNonce,cache:A.cache??this.cache})}}function ow(n){}class Ra{constructor(A={}){this.config={maxImageTimeout:3e5,allowDataUrls:!0,...A}}validateUrl(A,e="general"){if(!A||typeof A!="string")return{valid:!1,error:"URL must be a non-empty string"};if(A.startsWith("data:"))return this.config.allowDataUrls?{valid:!0,sanitized:A}:{valid:!1,error:"Data URLs are not allowed"};if(A.startsWith("blob:"))return{valid:!0,sanitized:A};try{const t=new URL(A);if(!["http:","https:"].includes(t.protocol))return{valid:!1,error:`Protocol ${t.protocol} is not allowed. Only http and https are permitted.`};if(e==="proxy"&&this.config.allowedProxyDomains&&this.config.allowedProxyDomains.length>0){const r=t.hostname.toLowerCase();if(!this.config.allowedProxyDomains.some(i=>{const o=i.toLowerCase();return r===o||r.endsWith("."+o)}))return{valid:!1,error:`Proxy domain ${t.hostname} is not in the allowed list`}}if(e==="proxy"){if(!this.config.allowLocalhostProxy){const r=t.hostname.toLowerCase();if(r==="localhost"||r==="127.0.0.1"||r==="::1")return{valid:!1,error:"Localhost is not allowed for proxy URLs"};if(this.isPrivateIP(r))return{valid:!1,error:"Private IP addresses are not allowed for proxy URLs"};if(r.startsWith("169.254.")||r.startsWith("fe80:"))return{valid:!1,error:"Link-local addresses are not allowed for proxy URLs"}}return{valid:!0,sanitized:A,requiresRuntimeCheck:!0}}return{valid:!0,sanitized:A}}catch(t){return{valid:!1,error:`Invalid URL format: ${t instanceof Error?t.message:"Unknown error"}`}}}isPrivateIP(A){return[/^0\./,/^10\./,/^100\.(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-7])\./,/^127\./,/^169\.254\./,/^172\.(1[6-9]|2[0-9]|3[0-1])\./,/^192\.0\.0\./,/^192\.0\.2\./,/^192\.168\./,/^198\.(1[8-9])\./,/^198\.51\.100\./,/^203\.0\.113\./,/^2(2[4-9]|3[0-9])\./,/^24[0-9]\./,/^255\.255\.255\.255$/].some(t=>t.test(A))?!0:A.includes(":")?this.isPrivateIPv6(A):!1}isPrivateIPv6(A){const r=A.toLowerCase().trim().replace(/^\[|\]$/g,"").split("%")[0];if(/^(0:){7}1$/.test(r)||r==="::1"||/^(0:){7}0$/.test(r)||r==="::")return!0;const s=this.expandIPv6(r);if(!s)return this.isPrivateIPv6Prefix(r);const i=parseInt(s.substring(0,2),16);if(i>=252&&i<=253)return!0;if(i===254){const o=parseInt(s.substring(2,4),16);if(o>=128&&o<=191)return!0}return i===255}expandIPv6(A){try{if(A.includes("::")){const e=A.split("::");if(e.length>2)return null;const t=e[0]?e[0].split(":"):[],r=e[1]?e[1].split(":"):[],s=8-t.length-r.length;if(s<0)return null;const i=Array(s).fill("0000");return[...t,...i,...r].map(a=>a.padStart(4,"0")).join(":")}else{const e=A.split(":");return e.length!==8?null:e.map(t=>t.padStart(4,"0")).join(":")}}catch{return null}}isPrivateIPv6Prefix(A){return!!(/^fc[0-9a-f]{0,2}:?/i.test(A)||/^fd[0-9a-f]{0,2}:?/i.test(A)||/^fe[89ab][0-9a-f]:?/i.test(A)||/^ff[0-9a-f]{0,2}:?/i.test(A))}validateCspNonce(A){return!A||typeof A!="string"?{valid:!1,error:"CSP nonce must be a non-empty string"}:A.length<16?{valid:!1,error:"CSP nonce is too short (minimum 16 characters recommended)"}:/^[A-Za-z0-9+/=_-]+$/.test(A)?{valid:!0,sanitized:A}:{valid:!1,error:"CSP nonce contains invalid characters"}}validateImageTimeout(A){return typeof A!="number"||isNaN(A)?{valid:!1,error:"Image timeout must be a number"}:A<0?{valid:!1,error:"Image timeout cannot be negative"}:this.config.maxImageTimeout&&A>this.config.maxImageTimeout?{valid:!1,error:`Image timeout ${A}ms exceeds maximum allowed ${this.config.maxImageTimeout}ms`}:{valid:!0,sanitized:A}}validateDimensions(A,e){if(typeof A!="number"||typeof e!="number")return{valid:!1,error:"Dimensions must be numbers"};if(isNaN(A)||isNaN(e))return{valid:!1,error:"Dimensions cannot be NaN"};if(A<=0||e<=0)return{valid:!1,error:"Dimensions must be positive"};const t=32767;return A>t||e>t?{valid:!1,error:`Dimensions exceed maximum allowed (${t}px)`}:{valid:!0,sanitized:{width:A,height:e}}}validateScale(A){return typeof A!="number"||isNaN(A)?{valid:!1,error:"Scale must be a number"}:A<=0?{valid:!1,error:"Scale must be positive"}:A>10?{valid:!1,error:"Scale factor too large (maximum 10x)"}:{valid:!0,sanitized:A}}validateElement(A){return A?typeof A!="object"?{valid:!1,error:"Element must be an object"}:typeof HTMLElement<"u"&&A instanceof HTMLElement?A.ownerDocument?{valid:!0}:{valid:!1,error:"Element must be attached to a document"}:A.ownerDocument?A.ownerDocument.defaultView?{valid:!0}:{valid:!1,error:"Document must be attached to a window (ownerDocument.defaultView required)"}:{valid:!1,error:"Element must be attached to a document (ownerDocument required)"}:{valid:!1,error:"Element is required"}}validateOptions(A){const e=[],t=A.proxy;if(t!=null&&typeof t=="string"&&t.length>0){const r=this.validateUrl(t,"proxy");r.valid||e.push(`Proxy: ${r.error}`)}if(A.imageTimeout!==void 0){const r=this.validateImageTimeout(A.imageTimeout);r.valid||e.push(`Image timeout: ${r.error}`)}if(A.width!==void 0||A.height!==void 0){const r=A.width??800,s=A.height??600,i=this.validateDimensions(r,s);i.valid||e.push(`Dimensions: ${i.error}`)}if(A.scale!==void 0){const r=this.validateScale(A.scale);r.valid||e.push(`Scale: ${r.error}`)}if(A.cspNonce!==void 0){const r=this.validateCspNonce(A.cspNonce);r.valid||e.push(`CSP nonce: ${r.error}`)}if(this.config.customValidator){const r=this.config.customValidator(A,"options");r.valid||e.push(`Custom validation: ${r.error}`)}return e.length>0?{valid:!1,error:e.join("; ")}:{valid:!0}}}function Ga(n={}){return new Ra({allowDataUrls:!0,maxImageTimeout:3e5,...n})}class Va{constructor(A,e=!0){this.context=A,this.activeMetrics=new Map,this.completedMetrics=[],this.enabled=e,this.getTime=typeof performance<"u"&&typeof performance.now=="function"?()=>performance.now():()=>Date.now()}start(A,e){var t;this.enabled&&(this.activeMetrics.has(A)&&((t=this.context)==null||t.logger.warn(`Performance metric '${A}' already started. Overwriting.`)),this.activeMetrics.set(A,{name:A,startTime:this.getTime(),metadata:e}))}end(A){var t,r;if(!this.enabled)return;const e=this.activeMetrics.get(A);if(!e){(t=this.context)==null||t.logger.warn(`Performance metric '${A}' not found. Was start() called?`);return}return e.endTime=this.getTime(),e.duration=e.endTime-e.startTime,this.completedMetrics.push(e),this.activeMetrics.delete(A),(r=this.context)==null||r.logger.debug(`⏱️ ${A}: ${e.duration.toFixed(2)}ms`,e.metadata),e}measure(A,e,t){this.start(A,t);try{const r=e();return this.end(A),r}catch(r){throw this.end(A),r}}async measureAsync(A,e,t){this.start(A,t);try{const r=await e();return this.end(A),r}catch(r){throw this.end(A),r}}getMetrics(){return[...this.completedMetrics]}getMetric(A){return this.completedMetrics.find(e=>e.name===A)}getSummary(){const A=this.completedMetrics.reduce((t,r)=>t+(r.duration||0),0),e=this.completedMetrics.map(t=>({name:t.name,duration:t.duration||0,percentage:A>0?((t.duration||0)/A*100).toFixed(1)+"%":"0%"}));return{totalDuration:A,metrics:this.getMetrics(),breakdown:e}}logSummary(){if(!this.enabled||this.completedMetrics.length===0||!this.context)return;const A=this.getSummary();this.context.logger.info(`
3031
+ 📊 Performance Summary (Total: ${A.totalDuration.toFixed(2)}ms):`),A.breakdown.sort((e,t)=>t.duration-e.duration).forEach(e=>{this.context.logger.info(` ${e.name.padEnd(20)} ${e.duration.toFixed(2).padStart(8)}ms ${e.percentage.padStart(6)}`)})}clear(){this.activeMetrics.clear(),this.completedMetrics.splice(0)}isEnabled(){return this.enabled}getActiveMetrics(){return Array.from(this.activeMetrics.keys())}}const as=(n,A={},e)=>{const t=e||He.fromElement(n,{cspNonce:A.cspNonce,cache:A.cache});return Wf(n,A,t)},_a=n=>{typeof window<"u"&&(new He({window,cspNonce:n}),void 0)};as.setCspNonce=_a;const Xf=n=>{["scale","width","height","imageTimeout","x","y","windowWidth","windowHeight","scrollX","scrollY"].forEach(e=>{const t=n[e];if(t!=null&&typeof t!="number"){const r=Number(t);Number.isNaN(r)||(n[e]=r)}})},Wf=async(n,A,e)=>{if(Xf(A),!A.skipValidation){const M=A.validator||Ga(),Z=M.validateElement(n);if(!Z.valid)throw new Error(Z.error);const T=M.validateOptions(A);if(!T.valid)throw new Error(`Invalid options: ${T.error}`)}if(!n||typeof n!="object")throw new Error("Invalid element provided as first argument");const t=n.ownerDocument;if(!t)throw new Error("Element is not attached to a Document");const r=t.defaultView;if(!r)throw new Error("Document is not attached to a Window");const s={allowTaint:A.allowTaint??!1,imageTimeout:A.imageTimeout??15e3,proxy:A.proxy,useCORS:A.useCORS??!1,customIsSameOrigin:A.customIsSameOrigin},i={logging:A.logging??!0,cache:A.cache??e.cache,...s},o=800,a=600,l=0,d=r,c={windowWidth:A.windowWidth??d.innerWidth??o,windowHeight:A.windowHeight??d.innerHeight??a,scrollX:A.scrollX??d.pageXOffset??l,scrollY:A.scrollY??d.pageYOffset??l},h=new rA(c.scrollX,c.scrollY,c.windowWidth,c.windowHeight),u=new Hn(i,h,e),g=A.enablePerformanceMonitoring??A.logging??!1,B=new Va(u,g);B.start("total",{width:c.windowWidth,height:c.windowHeight});const f=A.foreignObjectRendering??!1,m={allowTaint:A.allowTaint??!1,onclone:A.onclone,ignoreElements:A.ignoreElements,iframeContainer:A.iframeContainer,inlineImages:f,copyStyles:f,cspNonce:A.cspNonce??e.cspNonce};u.logger.debug(`Starting document clone with size ${h.width}x${h.height} scrolled to ${-h.left},${-h.top}`),B.start("clone");const w=new Ua(u,n,m),v=w.clonedReferenceElement;if(!v)throw new Error("Unable to find element in cloned iframe");const C=await w.toIFrame(t,h);B.end("clone");const{width:y,height:Q,left:E,top:F}=Xr(v)||VB(v)?ad(v.ownerDocument):Dt(u,v),I=jf(u,v,A.backgroundColor),L={canvas:A.canvas,backgroundColor:I,scale:A.scale??r.devicePixelRatio??1,x:(A.x??0)+E,y:(A.y??0)+F,width:A.width??Math.ceil(y),height:A.height??Math.ceil(Q),imageSmoothing:A.imageSmoothing,imageSmoothingQuality:A.imageSmoothingQuality};let O,K;try{return f?(u.logger.debug("Document cloned, using foreign object rendering"),B.start("render-foreignobject"),O=await new Kf(u,L).render(v),B.end("render-foreignobject")):(u.logger.debug(`Document cloned, element located at ${E},${F} with size ${y}x${Q} using computed rendering`),u.logger.debug("Starting DOM parsing"),B.start("parse"),K=pa(u,v),B.end("parse"),I===K.styles.backgroundColor&&(K.styles.backgroundColor=FA.TRANSPARENT),u.logger.debug(`Starting renderer for element at ${L.x},${L.y} with size ${L.width}x${L.height}`),B.start("render"),O=await new ss(u,L).render(K),B.end("render")),B.start("cleanup"),(A.removeContainer??!0)&&(Ua.destroy(C)||u.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")),B.end("cleanup"),B.end("total"),u.logger.debug("Finished rendering"),g&&B.logSummary(),O}finally{K&&K.restoreTree()}},jf=(n,A,e)=>{const t=A.ownerDocument,r=t.documentElement?ve(n,getComputedStyle(t.documentElement).backgroundColor):FA.TRANSPARENT,s=t.body?ve(n,getComputedStyle(t.body).backgroundColor):FA.TRANSPARENT,i=typeof e=="string"?ve(n,e):e===null?FA.TRANSPARENT:4294967295;return A===t.documentElement?zA(r)?zA(s)?i:s:r:i},Zf=Object.freeze(Object.defineProperty({__proto__:null,Html2CanvasConfig:He,get IMAGE_RENDERING(){return cA},PerformanceMonitor:Va,Validator:Ra,createDefaultValidator:Ga,default:as,html2canvas:as,setCspNonce:_a},Symbol.toStringTag,{value:"Module"}))})();