@vanira/sdk 0.0.83 → 0.0.85

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 Dv=Object.defineProperty;var Pv=(Et,et,xA)=>et in Et?Dv(Et,et,{enumerable:!0,configurable:!0,writable:!0,value:xA}):Et[et]=xA;var v=(Et,et,xA)=>Pv(Et,typeof et!="symbol"?et+"":et,xA);(function(){"use strict";var Et=typeof document<"u"?document.currentScript:null;const et="https://api.vanira.io";class xA{static async fetchWidgetConfig(e,t){var n;const A={"Content-Type":"application/json"};t&&(A["X-API-Key"]=t);try{const i=await fetch(`${et}/assistant/widget/${e}/config`,{method:"GET",headers:A});if(!i.ok)throw new Error(`Widget config fetch failed: HTTP ${i.status}`);const s=await i.json();return(n=s.agent)!=null&&n.client&&(s.client=s.agent.client),s}catch(i){throw i}}}let qA="https://inboxapi.vanira.io";const Yd="https://coredb.travelr.club/v1/graphql";class zt{static setChatUrl(e){qA=e}static async createChatProspect(e){var A,n;const t=`
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,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",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`
9
- --primary: ${n};
10
- --primary-rgb: ${e};
11
- --primary-hover: ${A||n};
12
- --secondary: ${A||n};
13
- --secondary-rgb: ${t};
14
- `},ll=`
7
+ `;try{const s=await(await fetch(Yd,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:t,variables:{prospectGroupId:e,name:`Widget Guest ${new Date().toLocaleString()}`}})})).json();return s.errors?`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`:((n=(A=s.data)==null?void 0:A.insert_prospects_one)==null?void 0:n.id)||`anon_${Date.now()}`}catch{return`anon_${Date.now()}`}}static async fetchWelcomeMessage(e,t,A,n){try{const i={"Content-Type":"application/json"},s=await fetch(`${qA}/widget/chat`,{method:"POST",headers:i,body:JSON.stringify({agent_id:e,...A?{widget_id:A}:{},message:"",prospect_id:t,stream:!1})});if(!s.ok)throw new Error("Failed to fetch welcome message");const a=await s.json();let o=a.response||"Hey! how can I help you ?",l;const c=a.chat_id||a.inbox_id,d=a.conversation_id||null;return a.widget&&(l=a.widget),{role:"assistant",content:o,widget:l,chatId:c,conversationId:d}}catch{return{role:"assistant",content:"Hey! how can I help you ?"}}}static async sendChatMessage(e,t,A,n,i,s,a,o,l){var c,d,g,p;try{const m={"Content-Type":"application/json"},B={agent_id:e,message:A,prospect_id:t,stream:!0};n&&(B.inbox_id=n),o&&(B.widget_id=o);const y=await fetch(`${qA}/widget/chat`,{method:"POST",headers:m,body:JSON.stringify(B)});if(!y.ok)throw new Error("Chat request failed");const x=(c=y.body)==null?void 0:c.getReader(),C=new TextDecoder;if(!x)throw new Error("No reader");let I="",E="",F=null,M=null;for(;;){const{done:H,value:L}=await x.read();if(H)break;E+=C.decode(L,{stream:!0});const N=E.split(`
8
+ `);E=N.pop()||"";for(const Y of N){const q=Y.trim();if(q&&q.startsWith("data: ")){const W=q.slice(6);if(W==="[DONE]"){a(F,M);return}try{const re=JSON.parse(W);if(re.type==="metadata"){(re.chat_id||re.inbox_id)&&(F=re.chat_id||re.inbox_id),re.conversation_id&&(M=re.conversation_id);continue}const oe=(p=(g=(d=re.choices)==null?void 0:d[0])==null?void 0:g.delta)==null?void 0:p.content;oe&&(I+=oe,i(I)),re.widget&&s(re.widget),re.chat_id&&!F&&(F=re.chat_id),re.conversation_id&&!M&&(M=re.conversation_id)}catch{}}}}a(F,M)}catch{i("Sorry, I encountered an error. Please try again."),a(null,null)}}static listenForAdminReplies(e,t,A){const n=`${qA}/inbox/stream?inbox_id=${e}&sender=${encodeURIComponent(t)}`;let i=null,s=0,a=!1;const o=()=>{a||(i=new EventSource(n),i.onopen=()=>{s=0},i.onmessage=l=>{try{const c=JSON.parse(l.data),d=c.direction==="outgoing",g=!!c.content,p=c.source!=="ai";d&&g&&p&&A(c.content)}catch{}},i.onerror=l=>{if(i&&(i.close(),i=null),a)return;const c=Math.min(2e3*Math.pow(2,s),3e4);s++,setTimeout(o,c)})};return o(),{close:()=>{a=!0,i&&(i.close(),i=null)}}}static async createCall(e,t,A,n,i){try{const s={"Content-Type":"application/json"};i&&(s["X-API-Key"]=i);const a=await fetch(`${et}/calls/create`,{method:"POST",headers:s,body:JSON.stringify({agent_id:e,prospect_id:A||void 0,type:"web"})}),o=await a.json();if(!a.ok)throw new Error(`[VaniraAI] Call creation failed HTTP ${a.status}`);if(!o.worker_url)throw new Error("[VaniraAI] Worker URL missing from response. Call cannot proceed.");return{callId:o.call_id||o.id||`web_${Date.now()}`,workerUrl:o.worker_url}}catch(s){throw s}}static async resolveConversation(e){try{if(!(await fetch(`${qA}/inbox/conversations/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation_id:e})})).ok)throw new Error("Failed to resolve conversation")}catch(t){throw t}}}class Wd{constructor(e){v(this,"config");v(this,"root",null);this.config=e}async initialize(e,t){this.config=e}isCallActive(){return!1}updateContext(e){return!1}triggerInterrupt(e,t){return!1}sendToolResult(e,t){return!1}}const k={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",WriteLatexText:"vanira_write_latex_text",EraseText:"vanira_erase_text",LiveVision:"vanira_live_vision",CloseLiveCamera:"vanira_close_live_camera",LiveScreen:"vanira_live_screen",CloseLiveScreen:"vanira_close_live_screen",ClipRegion:"vanira_clip_region",ScreenVision:"vanira_screen_vision",PointAt:"vanira_point_at",DrawOnScreen:"vanira_draw_on_screen",ClearScreenDraw:"vanira_clear_screen_draw",HighlightOnScreen:"vanira_highlight_on_screen"},Xd=Object.values(k),Jd=new Set(Xd),_d=new Set([k.Camera,k.LiveVision,k.LiveScreen]),qd=new Set([k.TypeText,k.WriteLatexText,k.EraseText]);function Gt(r){return!!r&&Jd.has(r)}function Pa(r){return Gt(r)&&qd.has(r)}function Ci(r){return Gt(r)&&_d.has(r)}const jd=new Set([k.Form,k.Calendar]);function xi(r){return Gt(r)&&jd.has(r)}function Na(r,e,t){return t!=null&&t.action_name?String(t.action_name):r===k.Calendar?"calendar_slot_selected":`user_submitted_${e||"collect_user_data"}`}function Oa(r){return Gt(r)&&!Ci(r)&&!xi(r)}const Zd=new Set([k.ScreenVision,k.PointAt,k.DrawOnScreen,k.ClearScreenDraw,k.HighlightOnScreen]);function $d(r){return Gt(r)&&Zd.has(r)}function Ra(r){if(typeof r=="string")try{return JSON.parse(r)}catch{return{}}return r&&typeof r=="object"?r:{}}const Ka={type_on_whiteboard:k.TypeText,write_on_whiteboard:k.TypeText,write_on_white_board:k.TypeText,dom_typing_simulation:k.TypeText,write_latex_text:k.WriteLatexText,write_latex_on_board:k.WriteLatexText,latex_on_whiteboard:k.WriteLatexText,erase_text:k.EraseText,dom_erase:k.EraseText,open_live_camera:k.LiveVision,live_vision:k.LiveVision,close_live_camera:k.CloseLiveCamera,stop_live_camera:k.CloseLiveCamera,open_live_screen:k.LiveScreen,close_live_screen:k.CloseLiveScreen,screen_vision:k.ScreenVision,capture_screen_vision:k.ScreenVision,capture_screen:k.ScreenVision,tab_screenshot:k.ScreenVision,capture_tab:k.ScreenVision,capture_tab_screenshot:k.ScreenVision,screenshot_tab:k.ScreenVision,point_at:k.PointAt,point_at_screen:k.PointAt,draw_on_screen:k.DrawOnScreen,screen_draw:k.DrawOnScreen,clear_screen_draw:k.ClearScreenDraw,clear_screen_annotations:k.ClearScreenDraw,highlight_on_screen:k.HighlightOnScreen,highlight_element_on_screen:k.HighlightOnScreen,highlight_screen_element:k.HighlightOnScreen},za={vanira_tab_screenshot:k.ScreenVision};function eh(r,e){const t=r.latex_text??(e==null?void 0:e.latex_text);return typeof t=="string"&&t.trim().length>0}function Ga(r,e){const t=r.text_to_type??(e==null?void 0:e.text_to_type)??r.text??(e==null?void 0:e.text)??r.value??(e==null?void 0:e.value);return typeof t=="string"&&t.trim().length>0}function th(r,e){const t=r.fields??(e==null?void 0:e.fields);return Array.isArray(t)?t.length>0:typeof t=="string"?t.split(",").map(A=>A.trim()).filter(Boolean).length>0:!1}function Ah(r,e){const t=r==null?void 0:r.preset_id;if(typeof t=="string"){if(Gt(t))return t;const i=za[t];if(i)return i}const n=Ra(e).preset_id;if(typeof n=="string"){if(Gt(n))return n;const i=za[n];if(i)return i}}function Lr(r,e,t){const A=Ra(e);let n=Ah(r,A);if(n===k.Form&&Ga(A,r)&&!th(A,r))return k.TypeText;if(n)return n;const i=String(t??"").trim().toLowerCase();if(i&&Ka[i])return Ka[i];if(eh(A,r))return k.WriteLatexText;if(Ga(A,r))return k.TypeText}const Dr="vanira_latest_call_id",Qi="vanira_prospect_id";function Pr(r){return`vanira_latest_call_id_${r}`}function Nr(r){return`vanira_prospect_id_${r}`}function Va(r){return`vanira_call_meta_${r}`}function Vt(r,e){if(!r)return null;try{return r.getItem(e)}catch{return null}}function Or(r){if(typeof window>"u"||!r)return null;const e=[],t=Vt(window.localStorage,Va(r));if(t)try{const a=JSON.parse(t);a!=null&&a.callId&&e.push({callId:a.callId,prospectId:a.prospectId,updatedAt:a.updatedAt||0})}catch{}const A=(a,o,l)=>{a&&e.push({callId:a,prospectId:o||void 0,updatedAt:l})},n=Vt(window.localStorage,Nr(r)),i=Vt(window.sessionStorage,Nr(r)),s=Vt(window.localStorage,Qi);return A(Vt(window.localStorage,Pr(r)),n||s,2),A(Vt(window.sessionStorage,Pr(r)),i||s,1),A(Vt(window.localStorage,Dr),s,0),A(Vt(window.sessionStorage,Dr),s,0),e.length?(e.sort((a,o)=>o.updatedAt-a.updatedAt),e[0]):null}function Ya(r,e,t){var n,i,s,a,o,l,c,d,g;if(typeof window>"u"||!r||!e)return;const A={callId:e,prospectId:t,updatedAt:Date.now()};try{(n=window.localStorage)==null||n.setItem(Va(r),JSON.stringify(A)),(i=window.localStorage)==null||i.setItem(Pr(r),e),(s=window.sessionStorage)==null||s.setItem(Pr(r),e),t&&((a=window.localStorage)==null||a.setItem(Nr(r),t),(o=window.sessionStorage)==null||o.setItem(Nr(r),t)),(l=window.localStorage)==null||l.setItem(Dr,e),(c=window.sessionStorage)==null||c.setItem(Dr,e),t&&((d=window.localStorage)==null||d.setItem(Qi,t),(g=window.sessionStorage)==null||g.setItem(Qi,t))}catch{}}function Wa(r){var e;return!!((e=Or(r))!=null&&e.callId)}const rh=new Set(["client_tool_call","clearAudio","client_tool_cancel"]);function nh(r){if(!r||typeof r!="object")return!1;const e=r.event;return typeof e=="string"&&rh.has(e)}const Ei=16*1024,ih=256*1024;function Ui(r,e){return(r==null?void 0:r.readyState)==="open"&&(e==null?void 0:e.readyState)==="open"}function sh(r,e){return{control:(r==null?void 0:r.readyState)??"missing",mediaBytes:(e==null?void 0:e.readyState)??"missing"}}async function ah(r,e,t=8e3){if(Ui(r,e))return!0;const A=Date.now()+t;for(;Date.now()<A;){if(Ui(r,e))return!0;await new Promise(n=>setTimeout(n,50))}return Ui(r,e)}async function Xa(r){for(;r.bufferedAmount>ih;)await new Promise(e=>setTimeout(e,10))}async function oh(r){const{bytes:e,filename:t,contentType:A,reason:n,message:i,callId:s,mediaBytesChannel:a,sendControlEvent:o,uploadId:l=crypto.randomUUID(),uploadKind:c="media"}=r,d=e.byteLength,g=d===0?0:Math.ceil(d/Ei);o("client_media_upload_start",{data:{upload_id:l,call_id:s,reason:n,message:i,filename:t,content_type:A,size:d,chunk_count:g,upload_kind:c}});const p=new Uint8Array(e);for(let m=0;m<d;m+=Ei){await Xa(a);const B=Math.min(m+Ei,d);a.send(p.subarray(m,B))}return await Xa(a),o("client_media_upload_complete",{data:{upload_id:l,call_id:s,reason:n,message:i,chunk_count:g,upload_kind:c}}),{media_id:l,url:"",content_type:A}}async function lh(r){return typeof r.arrayBuffer=="function"?r.arrayBuffer():new Response(r).arrayBuffer()}let oA=null;const ch=4e3;function Ja(r){if(typeof window>"u")return r||"/";const e=(r||"/").trim();if(!e)return"/";try{const t=new URL(e,window.location.origin);return t.origin!==window.location.origin?e:`${t.pathname}${t.search}${t.hash}`||"/"}catch{return e.startsWith("/")?e:`/${e}`}}function dh(r,e){oA={targetRoute:Ja(r),presetId:e==null?void 0:e.presetId,toolName:e==null?void 0:e.toolName,expiresAt:Date.now()+ch}}function hh(r){if(!oA)return null;if(Date.now()>oA.expiresAt)return oA=null,null;const e=Ja(r),t=oA.targetRoute;if(!(e===t||e.startsWith(t.split("#")[0])||t.startsWith(e.split("#")[0])))return null;const n=oA;return oA=null,n}function Rr(){return typeof window>"u"?"/":`${window.location.pathname}${window.location.search}${window.location.hash}`||"/"}class uh{constructor(e){v(this,"active",!1);v(this,"initialSent",!1);v(this,"lastRoute","");v(this,"sendContext");v(this,"isReady");v(this,"cleanupFns",[]);v(this,"initialRetryTimer",null);v(this,"routePollTimer",null);v(this,"originalPushState",null);v(this,"originalReplaceState",null);this.sendContext=e.sendContext,this.isReady=e.isReady??(()=>!0)}start(){typeof window>"u"||this.active||(this.active=!0,this.initialSent=!1,this.lastRoute=Rr(),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 e of this.cleanupFns)try{e()}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(e=0){if(!(!this.active||this.initialSent)){if(this.isReady()){this.sendRouteContext("call_started"),this.initialSent=!0;return}e>=30||(this.initialRetryTimer=window.setTimeout(()=>this.scheduleInitialContextSend(e+1),100))}}attachListeners(){const e=(i,s=0)=>{const a=()=>{const o=Rr();o!==this.lastRoute&&this.handleRouteChange(o,i)};s>0?window.setTimeout(a,s):queueMicrotask(a)},t=()=>e("popstate"),A=()=>e("hashchange"),n=i=>{const s=i.detail;if((s==null?void 0:s.initiated_by)==="agent"){e("vanira_navigate_agent",120);return}e("vanira_navigate",120)};window.addEventListener("popstate",t),window.addEventListener("hashchange",A),window.addEventListener("vanira:navigate",n),this.cleanupFns.push(()=>window.removeEventListener("popstate",t),()=>window.removeEventListener("hashchange",A),()=>window.removeEventListener("vanira:navigate",n)),this.originalPushState=history.pushState.bind(history),this.originalReplaceState=history.replaceState.bind(history),history.pushState=(...i)=>{this.originalPushState(...i),e("pushState")},history.replaceState=(...i)=>{this.originalReplaceState(...i),e("replaceState")},this.routePollTimer=window.setInterval(()=>{if(!this.active)return;const i=Rr();i!==this.lastRoute&&this.handleRouteChange(i,"location_poll")},1e3)}handleRouteChange(e,t){if(!this.active)return;const A=this.lastRoute;if(A===e)return;if(this.lastRoute=e,!this.initialSent){this.scheduleInitialContextSend();return}!this.isReady()||hh(e)||this.sendRouteContext("route_changed",A,t,"user")}sendRouteContext(e,t,A,n="user"){const i=Rr();this.lastRoute=i;const s={ui_state:"page_navigation",navigation_led_by:n,current_route:i,current_page:i,user_action:e==="call_started"?"call_started_on_page":"user_navigated"};e==="call_started"?s.message=`User started the call while viewing ${i}.`:(s.previous_route=t??"",s.message=`User navigated from ${t||"(unknown)"} to ${i}.`,A&&(s.navigation_source=A));try{this.sendContext(s)}catch{}}}const Ot=class Ot{constructor(e){v(this,"serverUrl");v(this,"agentId");v(this,"callId");v(this,"prospectId");v(this,"apiKey");v(this,"backendUrl");v(this,"token");v(this,"onConnected");v(this,"onDisconnected");v(this,"onError");v(this,"onTranscription");v(this,"onLocalStream");v(this,"onRemoteTrack");v(this,"onClientToolCall");v(this,"onSessionStarted");v(this,"sessionStartedEmitted",!1);v(this,"pc",null);v(this,"dataChannel",null);v(this,"mediaBytesChannel",null);v(this,"audioElement",null);v(this,"localStream",null);v(this,"micMuted",!1);v(this,"connected",!1);v(this,"icePollInterval",null);v(this,"appliedRemoteCandidates",new Set);v(this,"iceServers");v(this,"callSessionLoaded",!1);v(this,"connectGeneration",0);v(this,"runtime");v(this,"sessionBehavior");v(this,"routeTracker",null);v(this,"_status","idle");v(this,"listeners",new Map);v(this,"liveVision");v(this,"liveVisionAutoStarted",!1);if(!e.agentId)throw new Error("agentId is required");const t=!!(e.apiKey||e.token),A=!!(e.serverUrl&&e.callId),n=Ot.normalizeIceServers(e.iceServers);if(!t&&!A)throw new Error("apiKey or token is required — or pass serverUrl and callId from a prior POST /calls/create");this.agentId=e.agentId,this.sessionBehavior=e.sessionBehavior,this.serverUrl=(e.serverUrl||"").replace(/\/$/,""),this.apiKey=e.apiKey,this.token=e.token,this.backendUrl=(e.backendUrl||et).replace(/\/$/,""),n.length&&(this.iceServers=n),A&&(this.callSessionLoaded=!0);const i=typeof window<"u";this.prospectId=e.prospectId;const s=e.sessionBehavior==="continue";if(s&&i&&!e.callId){const o=Or(this.agentId);o&&(e.callId||(this.callId=o.callId),!this.prospectId&&o.prospectId&&(this.prospectId=o.prospectId))}if(!this.prospectId&&i)try{const o=Or(this.agentId);this.prospectId=(o==null?void 0:o.prospectId)||window.sessionStorage&&window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage&&window.localStorage.getItem("vanira_prospect_id")||void 0}catch{}e.callId?this.callId=e.callId:s||(this.callId=void 0);const a=e.onSessionStarted;this.onSessionStarted=o=>{a==null||a(o),this.emit("session_started",o)},this.liveVision=e.liveVision,this.onConnected=()=>{var o;this._status="connected",(o=e.onConnected)==null||o.call(e),this.emit("connected"),this.maybeAutoStartLiveCamera()},this.onDisconnected=()=>{var o;this._status="disconnected",(o=e.onDisconnected)==null||o.call(e),this.emit("disconnected")},this.onError=o=>{var c;this._status="error";const l=typeof o=="string"?o:(o==null?void 0:o.message)||"Connection error";(c=e.onError)==null||c.call(e,o),this.emit("error",l)},this.onTranscription=(o,l)=>{var c;(c=e.onTranscription)==null||c.call(e,o,l),this.emit("transcription",{text:o,isFinal:l})},this.onLocalStream=e.onLocalStream||(()=>{}),this.onRemoteTrack=(o,l)=>{var c;(c=e.onRemoteTrack)==null||c.call(e,o,l),this.emit("track",{track:o,stream:l})},this.onClientToolCall=o=>{var d;(d=e.onClientToolCall)==null||d.call(e,o);const l=(o==null?void 0:o.data)||o,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=e.runtime,typeof window<"u"&&e.trackRouteContext!==!1&&(this.routeTracker=new uh({sendContext:o=>this.sendContextUpdate(o),isReady:()=>{var o;return((o=this.dataChannel)==null?void 0:o.readyState)==="open"}}))}async createCall(){return this.connect()}async connect(){var t;this._status="connecting";const e=++this.connectGeneration;if(await this.loadCallSession(),!this.isConnectCancelled(e)){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 A=this.getIceServers();this.pc=new RTCPeerConnection({iceServers:A,iceTransportPolicy:"all"});let n;try{n=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"||(t=d.message)!=null&&t.includes("Permission denied")){const g=navigator.userAgent,p=/iPad|iPhone|iPod/.test(g)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;let m="Microphone access denied. Please allow microphone access in your browser settings.";p&&(g.includes("CriOS")?m="Microphone access blocked. Please enable it in iOS Settings > Chrome > Microphone, then reload the page.":g.includes("FxiOS")?m="Microphone access blocked. Please enable it in iOS Settings > Firefox > Microphone, then reload the page.":m="Microphone access blocked. Please enable it in iOS Settings > Safari > Microphone (or tap 'aA' > Website Settings > Allow Microphone).");const B=new Error(m);throw B.name=d.name,B}throw d}if(this.isConnectCancelled(e)){n.getTracks().forEach(d=>d.stop());return}if(this.localStream=n,!this.pc||this.isConnectCancelled(e)){n.getTracks().forEach(d=>d.stop());return}if(this.onLocalStream(n),n.getTracks().forEach(d=>{var g;(g=this.pc)==null||g.addTrack(d,n)}),!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 g=new TextDecoder().decode(d.data);try{const p=JSON.parse(g);nh(p)&&this.handleControlEvent(p)}catch{}}catch{}else d.data instanceof Blob&&d.data.text().then(g=>{try{this.handleControlEvent(JSON.parse(g))}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 g=d.track,p=d.streams[0];g.kind==="audio"?(this.audioElement=new Audio,this.audioElement.srcObject=p,this.audioElement.play().catch(m=>{}),this.audioElement.onended=()=>{this.sendEvent("playedStream"),typeof window<"u"&&window.dispatchEvent(new CustomEvent("vanira:agent-playback-ended"))},this.onRemoteTrack(g,p)):g.kind==="video"&&this.onRemoteTrack(g,p)};const i=()=>{var p,m,B,y,x,C,I,E,F,M,H;const d=((p=this.pc)==null?void 0:p.connectionState)==="connected"||((m=this.pc)==null?void 0:m.iceConnectionState)==="connected"||((B=this.pc)==null?void 0:B.iceConnectionState)==="completed",g=((y=this.pc)==null?void 0:y.connectionState)==="failed"||((x=this.pc)==null?void 0:x.iceConnectionState)==="failed"||((C=this.pc)==null?void 0:C.connectionState)==="closed"||((I=this.pc)==null?void 0:I.iceConnectionState)==="closed"||((E=this.pc)==null?void 0:E.connectionState)==="disconnected"||((F=this.pc)==null?void 0:F.iceConnectionState)==="disconnected";((M=this.pc)==null?void 0:M.connectionState)==="connected"&&this.stopRemoteIcePolling(),d&&!this.connected?(this.connected=!0,(H=this.routeTracker)==null||H.start(),this.onConnected()):g&&this.connected&&(this.connected=!1,this.liveVisionAutoStarted=!1,this.onDisconnected())};this.pc.onconnectionstatechange=i,this.pc.oniceconnectionstatechange=i;const s=this.getIceTrickleUrl();this.pc.onicecandidate=d=>{d.candidate&&fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({candidate:d.candidate.toJSON()})}).catch(g=>{})};const a=await this.pc.createOffer();if(this.isConnectCancelled(e)||(await this.pc.setLocalDescription(a),this.isConnectCancelled(e)))return;const o=this.serverUrl.includes("?")?this.serverUrl:`${this.serverUrl}/webrtc?agent=${this.agentId}_${this.callId}`,l=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({offer:this.pc.localDescription,agentId:this.agentId,callId:this.callId})});if(this.isConnectCancelled(e))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(e)||!this.pc||(await this.pc.setRemoteDescription(c),this.isConnectCancelled(e)))return;this.startRemoteIcePolling(s)}catch(A){if(this.isConnectCancelled(e))return;throw this.disconnect(),this.onError(A.message||A),A}}}createCallCacheKey(e,t){const A=this.apiKey?`key:${this.apiKey.slice(0,16)}`:`token:${(this.token||"").slice(-16)}`;return[this.backendUrl,this.agentId,e,t||"",this.prospectId||"",A].join("|")}async postCreateCall(e,t,A){var a,o,l;const n=await fetch(`${this.backendUrl}/calls/create`,{method:"POST",headers:e,body:JSON.stringify({agent_id:this.agentId,type:((a=this.runtime)==null?void 0:a.callType)||"web",mode:t,...(o=this.runtime)!=null&&o.runtimeName?{runtime:this.runtime.runtimeName}:{},prospect_id:this.prospectId,...A?{call_id:A}:{}})});if(!n.ok){const c=await n.json().catch(()=>({}));throw new Error(`[VaniraClient] createCall failed (${n.status}): ${((l=c==null?void 0:c.detail)==null?void 0:l.message)||(c==null?void 0:c.message)||n.statusText}`)}const i=await n.json();if(!i.call_id||!i.worker_url)throw new Error("[VaniraClient] /calls/create response missing call_id or worker_url");const s=Ot.normalizeIceServers(i.ice_servers);if(!s.length)throw new Error("[VaniraClient] /calls/create response missing ice_servers");return{callId:i.call_id,prospectId:i.prospect_id||this.prospectId,serverUrl:i.worker_url.replace(/\/$/,""),iceServers:s}}applyCreateCallSession(e){if(this.callId=e.callId,this.prospectId=e.prospectId||this.prospectId,this.serverUrl=e.serverUrl,this.iceServers=e.iceServers,this.callSessionLoaded=!0,Ya(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 e={"Content-Type":"application/json"};this.apiKey?e["X-API-Key"]=this.apiKey:this.token&&(e.Authorization=this.token.startsWith("Bearer ")?this.token:`Bearer ${this.token}`);const t=this.sessionBehavior==="continue"?this.callId:void 0,A=this.sessionBehavior==="continue"?"continue":"new",n=this.createCallCacheKey(A,t);let i=Ot.inflightCreates.get(n);i||(i=this.postCreateCall(e,A,t),Ot.inflightCreates.set(n,i),i.finally(()=>{Ot.inflightCreates.get(n)===i&&Ot.inflightCreates.delete(n)}));const s=await i;this.applyCreateCallSession(s)}getIceServers(){var e;if((e=this.iceServers)!=null&&e.length)return this.iceServers;throw new Error("[VaniraClient] ice_servers missing — pass iceServers from POST /calls/create")}static normalizeIceServers(e){if(!Array.isArray(e))return[];const t=[];for(const A of e){const n=A==null?void 0:A.urls,i=Array.isArray(n)?n.filter(Boolean):typeof n=="string"&&n.trim()?[n.trim()]:[];if(!i.length)continue;const s={urls:i.length===1?i[0]:i},a=A.username,o=A.credential;a&&(s.username=a),o&&(s.credential=o),t.push(s)}return t}getWorkerOrigin(){var e;if(!((e=this.serverUrl)!=null&&e.trim()))return"";try{return new URL(this.serverUrl).origin}catch{return this.serverUrl.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}}getIceTrickleUrl(){try{const e=new URL(this.serverUrl);return e.pathname.endsWith("/webrtc")?e.pathname=`${e.pathname}/ice`:e.pathname="/webrtc/ice",e.toString()}catch{return`${this.getWorkerOrigin()}/webrtc/ice?agent_id=${this.agentId}&call_id=${this.callId}`}}startRemoteIcePolling(e){this.stopRemoteIcePolling(),this.icePollInterval=setInterval(async()=>{if(!this.pc){this.stopRemoteIcePolling();return}if(this.pc.connectionState==="connected"){this.stopRemoteIcePolling();return}try{const t=await fetch(e);if(!t.ok)return;const{candidates:A}=await t.json();for(const n of A||[]){const i=JSON.stringify(n);if(!this.appliedRemoteCandidates.has(i)){this.appliedRemoteCandidates.add(i);try{await this.pc.addIceCandidate(n)}catch{}}}}catch{}},150)}stopRemoteIcePolling(){this.icePollInterval!==null&&(clearInterval(this.icePollInterval),this.icePollInterval=null)}sendEvent(e,t={}){var A;if(((A=this.dataChannel)==null?void 0:A.readyState)==="open"){const n={event:e,...t};this.dataChannel.send(JSON.stringify(n))}}async sendEventWhenReady(e,t={},A=1e4){var i;const n=Date.now()+A;for(;Date.now()<n;){if(((i=this.dataChannel)==null?void 0:i.readyState)==="open")return this.sendEvent(e,t),!0;await new Promise(s=>setTimeout(s,50))}return!1}startLiveCamera(e={}){const t={...this.liveVision,...e};this.emit("tool_call",this.buildOpenLiveCameraToolCall(t))}buildOpenLiveCameraToolCall(e={}){const t=e.scope??"until_call_end";return{name:"open_live_camera",tool_call_id:`lv_${crypto.randomUUID()}`,execution_mode:"fire_and_forget",client_fields:{preset_id:k.LiveVision},arguments:{mode:"live",scope:t,target_fps:e.target_fps??1,max_fps:e.max_fps??3,max_width:e.max_width??640,reason:e.reason??"camera_capture",facing_mode:e.facing_mode??"environment",show_preview:e.show_preview??!0,...t==="timed"&&e.duration_sec?{duration_sec:e.duration_sec}:{}}}}maybeAutoStartLiveCamera(){const e=this.liveVision;!(e!=null&&e.enabled)||e.scope!=="full_call"||this.liveVisionAutoStarted||(this.liveVisionAutoStarted=!0,this.emit("tool_call",this.buildOpenLiveCameraToolCall(e)))}handleControlEvent(e){var t;switch(e.event){case"clearAudio":break;case"transcription":this.onTranscription(e.text,e.isFinal);break;case"mark":break;case"client_tool_cancel":{const n=(e.data||e).tool_call_id||e.tool_call_id;this.dispatchBoardAbort("Tool cancelled by server",n);break}case"client_tool_call":{const A=e.tool_call||e.data||e,n=(A==null?void 0:A.tool_call_id)||(A==null?void 0:A.call_id)||e.tool_call_id||"";n&&((t=this.dataChannel)==null?void 0:t.readyState)==="open"&&this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:n}}));const i=(A==null?void 0:A.arguments)||(A==null?void 0:A.args)||{},s=(A==null?void 0:A.client_fields)||{},a=(A==null?void 0:A.name)||(A==null?void 0:A.tool_name)||"",o=Lr(s,i,a);if(a==="end_call"){n&&this.sendToolResult(n,{status:"client_ack_end_call",message:"Ending call."}),window.setTimeout(()=>this.disconnect(),120);break}if(o){window.dispatchEvent(new CustomEvent("vanira:preset",{detail:{toolCall:A,client:this}})),this.onClientToolCall(A);break}this.onClientToolCall(A);break}}}disconnect(){var e;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(t=>{t.track&&t.track.stop()}),this.pc.close(),this.pc=null),this.localStream&&(this.localStream.getTracks().forEach(t=>{try{t.stop()}catch{}}),this.localStream=null),this.connected=!1,(e=this.routeTracker)==null||e.stop(),this.callSessionLoaded=!1,this.sessionStartedEmitted=!1,this.serverUrl="",this.callId=void 0,this.micMuted=!1,this.iceServers=void 0,this.onDisconnected()}setMicrophoneMuted(e){var t,A;this.micMuted=e,(t=this.localStream)==null||t.getAudioTracks().forEach(n=>{n.enabled=!e}),(A=this.pc)==null||A.getSenders().forEach(n=>{var i;((i=n.track)==null?void 0:i.kind)==="audio"&&(n.track.enabled=!e)})}isMicrophoneMuted(){return this.micMuted}toggleMicrophoneMuted(){return this.setMicrophoneMuted(!this.micMuted),this.micMuted}isConnectCancelled(e){return e!==this.connectGeneration}dispatchBoardAbort(e,t){typeof window>"u"||window.dispatchEvent(new CustomEvent("vanira:board_abort",{detail:{reason:e,toolCallId:t}}))}sendToolResult(e,t){this.callId,this.sendEvent("client_tool_result",{call_id:this.callId,data:{tool_call_id:e,result:t},result:t})}sendToolAck(e){var t;((t=this.dataChannel)==null?void 0:t.readyState)==="open"&&this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:e}}))}sendContextUpdate(e){this.sendEvent("client_context_update",{data:{context:e}})}sendActionTrigger(e,t={}){this.sendEvent("client_action_trigger",{data:{action_name:e,data:t}})}triggerActionInterrupt(){this.sendEvent("action_interrupt")}sendMediaUpdate(e){if(!this.dataChannel||this.dataChannel.readyState!=="open")return!1;const t={event:"client_media_update",data:{media_id:e.media_id,media_url:e.media_url,content_type:e.content_type,reason:e.reason,message:e.message??""}};return this.dataChannel.send(JSON.stringify(t)),!0}async uploadMediaForToolResult(e,t="general"){return this._postMediaUpload(e,t)}async uploadMedia(e,t="general",A=""){return await ah(this.dataChannel,this.mediaBytesChannel)?this._uploadMediaViaDataChannel(e,t,A):(sh(this.dataChannel,this.mediaBytesChannel),this._uploadMediaViaHTTP(e,t,A))}async uploadMediaFrame(e,t="camera_capture",A){const n=A&&!(e instanceof File)?new File([e],A,{type:e.type||"image/jpeg"}):e,{media_id:i,url:s,contentType:a}=await this._postMediaUpload(n,t,!0);if(!i||!s)throw new Error("Frame upload failed: server response missing media_id or url");return{media_id:i,url:s,content_type:a}}async _uploadBytesViaDataChannel(e,t,A,n,i){if(!this.callId||!this.mediaBytesChannel)throw new Error("Upload failed: call not ready for WebRTC media upload.");const s=i||(e instanceof File?e.name:n==="frame"?"frame.jpg":"upload.bin"),a=e.type||(n==="frame"?"image/jpeg":"application/octet-stream"),o=await lh(e);return oh({bytes:o,filename:s,contentType:a,reason:t,message:A,callId:this.callId,mediaBytesChannel:this.mediaBytesChannel,sendControlEvent:(l,c)=>this.sendEvent(l,c),uploadKind:n})}async _uploadMediaViaDataChannel(e,t,A){const n=await this._uploadBytesViaDataChannel(e,t,A,"media");return{media_id:n.media_id,url:n.url}}async _uploadMediaViaHTTP(e,t="general",A=""){const{media_id:n,url:i,contentType:s}=await this._postMediaUpload(e,t,!0);return this.sendMediaUpdate({media_id:n,media_url:i,content_type:s,reason:t,message:A}),{media_id:n,url:i}}async _postMediaUpload(e,t,A=!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 n=this.getWorkerOrigin();if(!n)throw new Error("Upload failed: worker_url is not set. Connect the call before uploading media.");const i=`${n}/media/upload`,s=new FormData;s.append("file",e),s.append("call_id",this.callId),s.append("reason",t);const a=await fetch(i,{method:"POST",body:s});if(!a.ok){let g=`HTTP ${a.status}`;try{g=(await a.json()).error||g}catch{}throw new Error(`Upload failed: ${g}`)}const o=await a.json(),l=o.media_id,c=o.url,d=o.content_type||e.type;if(!l||!c)throw new Error("Upload failed: server response missing media_id or url");return A?{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(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),this}off(e,t){var A;return(A=this.listeners.get(e))==null||A.delete(t),this}emit(e,t){var A;(A=this.listeners.get(e))==null||A.forEach(n=>n(t))}async start(){return await this.connect(),{callId:this.callId||"",prospectId:this.prospectId||"",serverUrl:this.serverUrl||""}}stop(){this.disconnect(),this._status="disconnected"}sendToolError(e,t){this.sendToolResult(e,{status:"error",error:t})}updateContext(e){this.sendContextUpdate(e)}triggerInterrupt(e,t={}){this.triggerActionInterrupt(),this.sendActionTrigger(e,t)}interruptAudioOnly(){this.triggerActionInterrupt()}};v(Ot,"inflightCreates",new Map);let QA=Ot;const XA=class XA{constructor(e){v(this,"tabId");v(this,"sessionKey");v(this,"channelName");v(this,"channel",null);v(this,"heartbeatTimer",null);v(this,"listeners",new Map);const t=e.replace(/[^a-z0-9_-]/gi,"_");this.sessionKey=`vaniraai_session_${t}`,this.channelName=`vaniraai_channel_${t}`,this.tabId=this._getOrCreateTabId(),this._setupChannel()}getTabId(){return this.tabId}claimSession(){const e=this._loadSession();if(e){const n=Date.now()-e.lastActive,i=e.tabId===this.tabId,s=n>XA.HEARTBEAT_TIMEOUT_MS;if(i)return this._startHeartbeat(),this._emit("session_restored"),!0;if(!s)return this._emit("tab_conflict"),!1}const t=e?{...e,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(t),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId});const A=!!(e!=null&&e.prospectId);return this._emit(A?"session_restored":"session_claimed"),!0}forceClaimSession(){const e=this._loadSession(),t=e?{...e,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(t),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId}),this._emit("session_claimed")}saveIds(e,t,A){const n=this._loadSession()??this._blankSession();this._saveSession({...n,prospectId:e,chatId:t,conversationId:A??n.conversationId??null,tabId:this.tabId,lastActive:Date.now()})}pushMessage(e,t){const A=this._loadSession()??this._blankSession();A.messages.push({role:e,content:t,timestamp:Date.now()}),A.messages.length>100&&(A.messages=A.messages.slice(-100)),this._saveSession({...A,tabId:this.tabId,lastActive:Date.now()})}updateLastAssistantMessage(e){const t=this._loadSession()??this._blankSession(),A=t.messages;let n=!1;for(let i=A.length-1;i>=0;i--)if(A[i].role==="assistant"&&A[i].content===""){A[i].content=e,n=!0;break}if(!n){for(let i=A.length-1;i>=0;i--)if(A[i].role==="assistant"){A[i].content=e,n=!0;break}}n||A.push({role:"assistant",content:e,timestamp:Date.now()}),this._saveSession({...t,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 e=this._loadSession();e&&this._saveSession({...e,chatId:null,conversationId:null,messages:[],lastActive:Date.now()})}destroy(){this._stopHeartbeat(),this.channel&&(this.channel.close(),this.channel=null)}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),this}off(e,t){var A;return(A=this.listeners.get(e))==null||A.delete(t),this}_getOrCreateTabId(){let e=sessionStorage.getItem("vaniraai_tab_id");return e||(e=`tab_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,sessionStorage.setItem("vaniraai_tab_id",e)),e}_setupChannel(){typeof BroadcastChannel>"u"||(this.channel=new BroadcastChannel(this.channelName),this.channel.onmessage=e=>{const t=e.data;t.tabId!==this.tabId&&(t.type==="took_over"&&(this._stopHeartbeat(),this._emit("tab_took_over")),t.type,t.type==="session_cleared"&&this._emit("session_cleared"))})}_broadcast(e){var t;(t=this.channel)==null||t.postMessage(e)}_startHeartbeat(){this._stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{const e=this._loadSession();e&&e.tabId===this.tabId&&(this._saveSession({...e,lastActive:Date.now()}),this._broadcast({type:"heartbeat",tabId:this.tabId}))},XA.HEARTBEAT_INTERVAL_MS)}_stopHeartbeat(){this.heartbeatTimer!==null&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}_loadSession(){try{const e=localStorage.getItem(this.sessionKey);return e?JSON.parse(e):null}catch{return null}}_saveSession(e){try{localStorage.setItem(this.sessionKey,JSON.stringify(e))}catch{}}_blankSession(){return{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()}}_emit(e){var t;(t=this.listeners.get(e))==null||t.forEach(A=>A())}};v(XA,"HEARTBEAT_INTERVAL_MS",5e3),v(XA,"HEARTBEAT_TIMEOUT_MS",15e3);let Fi=XA;const _a="data:image/png;base64,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",qa="data:image/png;base64,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",ja=r=>{r=r.replace(/^#/,"");let e,t,A;return r.length===3?(e=parseInt(r.charAt(0)+r.charAt(0),16),t=parseInt(r.charAt(1)+r.charAt(1),16),A=parseInt(r.charAt(2)+r.charAt(2),16)):(e=parseInt(r.substring(0,2),16),t=parseInt(r.substring(2,4),16),A=parseInt(r.substring(4,6),16)),isNaN(e)||isNaN(t)||isNaN(A)?"0, 0, 0":`${e}, ${t}, ${A}`},ph=(r,e)=>{const t=ja(r),A=ja(e||r);return`
9
+ --primary: ${r};
10
+ --primary-rgb: ${t};
11
+ --primary-hover: ${e||r};
12
+ --secondary: ${e||r};
13
+ --secondary-rgb: ${A};
14
+ `},gh=`
15
15
  :host(.vanira-portal) {
16
16
  position: fixed !important;
17
17
  bottom: 0 !important;
@@ -2016,7 +2016,7 @@ var zf=Object.defineProperty;var Jf=(HA,gA,de)=>gA in HA?zf(HA,gA,{enumerable:!0
2016
2016
  width: 15px !important;
2017
2017
  height: 15px !important;
2018
2018
  }
2019
- `,G={phone:`
2019
+ `,ue={phone:`
2020
2020
  <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">
2021
2021
  <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/>
2022
2022
  </svg>
@@ -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
+ `},Za={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,10 +2194,10 @@ 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
+ `},Kr={...Za,default_chat:ue.chat,default_voice:ue.mic,voice_orb:ue.voice_orb,male:`<img src="${_a}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`,female:`<img src="${qa}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`};Object.entries(Za).forEach(([r,e])=>{Kr[`male_${r} `]=`
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
- ${A}
2200
+ ${e}
2201
2201
  </div>
2202
2202
  < div style = "
2203
2203
  position: absolute;
@@ -2211,13 +2211,13 @@ 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 = "${_a}" style = "width: 100%; height: 100%; object-fit: cover;" />
2215
2215
  </div>
2216
2216
  </div>
2217
- `,yt[`female_${n} `]=`
2217
+ `,Kr[`female_${r} `]=`
2218
2218
  < div style = "position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: white; border-radius: 50%;" >
2219
2219
  <div style="width: 60%; height: 60%; color: #000000;" >
2220
- ${A}
2220
+ ${e}
2221
2221
  </div>
2222
2222
  < div style = "
2223
2223
  position: absolute;
@@ -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 = "${qa}" 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 $a{constructor(e,t,A,n=ue.chat){v(this,"element");v(this,"iconContainer");v(this,"posX",0);v(this,"posY",0);v(this,"isDragging",!1);v(this,"startX",0);v(this,"startY",0);v(this,"currentX",0);v(this,"currentY",0);v(this,"hasMoved",!1);this.onClick=e,this.onMove=t,this.onMoveEnd=A,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=n,this.element.appendChild(this.iconContainer)}dragStart(e){if(e.button!==0)return;const t=this.element.getBoundingClientRect();this.isDragging=!0,this.hasMoved=!1,this.startX=e.clientX,this.startY=e.clientY,this.currentX=t.left,this.currentY=t.top,this.element.setPointerCapture(e.pointerId),this.element.style.transition="none",this.element.style.cursor="grabbing";const A=i=>{var o;if(!this.isDragging)return;const s=i.clientX-this.startX,a=i.clientY-this.startY;(Math.abs(s)>5||Math.abs(a)>5)&&(this.hasMoved=!0),this.hasMoved&&(this.posX=this.currentX+s,this.posY=this.currentY+a,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",(o=this.onMove)==null||o.call(this,this.posX,this.posY))},n=i=>{var s;this.isDragging=!1,this.element.hasPointerCapture(i.pointerId)&&this.element.releasePointerCapture(i.pointerId),this.element.style.transition="all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",this.element.style.cursor="pointer",window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",n),this.hasMoved?(s=this.onMoveEnd)==null||s.call(this,this.posX,this.posY):this.onClick()};window.addEventListener("pointermove",A),window.addEventListener("pointerup",n)}getElement(){return this.element}setIcon(e){this.iconContainer.innerHTML=e}setPosition(e){this.element.style.cssText="",e.split(";").filter(A=>A.trim()).forEach(A=>{const[n,i]=A.split(":").map(s=>s.trim());n&&i&&(this.element.style[n]=i)}),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}updateCoordinates(e,t){this.element.style.left=`${e}px`,this.element.style.top=`${t}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,34 +2269,34 @@ 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 eo{constructor(e,t="Assistant",A){v(this,"element");v(this,"header");v(this,"titleElement");v(this,"contentArea");v(this,"collapseBtn",null);v(this,"closeBtn");this.onClose=e,this.title=t,this.onMinimize=A,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 n=document.createElement("div");n.style.display="flex",n.style.alignItems="center",n.style.gap="8px",n.style.marginLeft="auto",this.onMinimize&&(this.collapseBtn=document.createElement("button"),this.collapseBtn.className="close-btn collapse-panel-btn",this.collapseBtn.innerHTML=ue.minimize2,this.collapseBtn.setAttribute("aria-label","Minimize to voice pill"),this.collapseBtn.onclick=()=>this.onMinimize(),n.appendChild(this.collapseBtn)),this.closeBtn=document.createElement("button"),this.closeBtn.className="close-btn",this.closeBtn.innerHTML=ue.close,this.closeBtn.setAttribute("aria-label","Close widget"),this.closeBtn.onclick=this.onClose,n.appendChild(this.closeBtn),this.header.appendChild(n),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(e){this.contentArea.innerHTML="",this.contentArea.appendChild(e)}addToContent(e){this.contentArea.appendChild(e)}setTitle(e){this.titleElement.textContent=e}open(e){this.element.classList.remove("hidden"),this.updatePosition(e)}updatePosition(e){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,e),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 to{constructor(e,t="#000000",A="#111111",n){v(this,"element");v(this,"contentContainer");v(this,"orbWrapper");v(this,"connectingRing");v(this,"errorRing");v(this,"waveLayers",[]);v(this,"outerGlow");v(this,"wave1");v(this,"wave2");v(this,"wave3");v(this,"centerIcon");v(this,"connectingOrb");v(this,"statusArea");v(this,"connectingLabel");v(this,"connectedBadge");v(this,"connectedStatusBars");v(this,"connectedStatusText");v(this,"errorLabel");v(this,"giveItAMinuteLabel");v(this,"retryBtn");v(this,"timerEl");v(this,"transcriptionEl");v(this,"hangupBtn");v(this,"muteBtn");v(this,"onToggleMute");v(this,"videoContainer");v(this,"videoElement");v(this,"prepareBadge");v(this,"statusBadge");v(this,"startTime",null);v(this,"timerInterval",null);v(this,"isAvatarMode",!1);v(this,"callStartedAt",null);v(this,"liveActivity","listening");this.onHangup=e,this.primaryColor=t,this.secondaryColor=A,this.onCallEnded=n,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;
2278
2278
  box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25), 0 0 0 1px rgba(17,24,39,0.05);
2279
- `,this.videoElement=document.createElement("video"),this.videoElement.style.cssText="width:100%; height:100%; object-fit:cover; background:black;",this.videoElement.autoplay=!0,this.videoElement.playsInline=!0,this.videoElement.muted=!0,this.videoContainer.appendChild(this.videoElement),this.contentContainer.appendChild(this.videoContainer),this.orbWrapper=document.createElement("div"),this.orbWrapper.className="voice-orb-wrapper",this.connectingRing=document.createElement("div"),this.connectingRing.className="voice-orb-connecting-ring",this.orbWrapper.appendChild(this.connectingRing),this.errorRing=document.createElement("div"),this.errorRing.className="voice-orb-error-ring",this.orbWrapper.appendChild(this.errorRing),this.outerGlow=document.createElement("div"),this.outerGlow.className="voice-orb-ring-outer",this.orbWrapper.appendChild(this.outerGlow),this.wave1=document.createElement("div"),this.wave1.className="voice-orb-ring-mid",this.orbWrapper.appendChild(this.wave1),this.wave2=document.createElement("div"),this.wave2.className="voice-orb-disc",this.orbWrapper.appendChild(this.wave2),this.wave3=document.createElement("div"),this.wave3.style.display="none";const s=document.createElement("div");s.className="voice-orb-shine",s.id="voice-shine",this.orbWrapper.appendChild(s),this.waveLayers=[this.outerGlow,this.wave1,this.wave2,s],this.connectingOrb=document.createElement("div"),this.connectingOrb.className="voice-connecting-orb",this.connectingOrb.innerHTML=G.voice_orb,this.orbWrapper.appendChild(this.connectingOrb),this.centerIcon=document.createElement("div"),this.centerIcon.className="voice-orb-center",this.centerIcon.innerHTML=G.audioLines,this.orbWrapper.appendChild(this.centerIcon),this.contentContainer.appendChild(this.orbWrapper),this.statusArea=document.createElement("div"),this.statusArea.className="voice-status-area",this.connectingLabel=document.createElement("p"),this.connectingLabel.className="voice-connecting-label",this.connectingLabel.textContent="Connecting",this.statusArea.appendChild(this.connectingLabel),this.giveItAMinuteLabel=document.createElement("p"),this.giveItAMinuteLabel.className="voice-connecting-hint",this.giveItAMinuteLabel.textContent="This may take a moment",this.statusArea.appendChild(this.giveItAMinuteLabel),this.connectedBadge=document.createElement("div"),this.connectedBadge.className="voice-connected-badge is-listening",this.connectedStatusBars=document.createElement("span"),this.connectedStatusBars.className="voice-live-status-bars listening",this.connectedStatusBars.innerHTML="<i></i><i></i><i></i>",this.connectedStatusBars.setAttribute("aria-hidden","true"),this.connectedStatusText=document.createElement("span"),this.connectedStatusText.className="voice-live-status-text",this.connectedStatusText.textContent="Listening",this.connectedBadge.appendChild(this.connectedStatusBars),this.connectedBadge.appendChild(this.connectedStatusText),this.statusArea.appendChild(this.connectedBadge),this.timerEl=document.createElement("div"),this.timerEl.className="voice-timer",this.timerEl.textContent="00:00",this.statusArea.appendChild(this.timerEl),this.errorLabel=document.createElement("p"),this.errorLabel.className="voice-error-label",this.errorLabel.textContent="Connection failed",this.statusArea.appendChild(this.errorLabel),this.retryBtn=document.createElement("button"),this.retryBtn.className="voice-retry-btn",this.retryBtn.textContent="Retry",this.statusArea.appendChild(this.retryBtn),this.prepareBadge=document.createElement("p"),this.prepareBadge.style.cssText="display:none; font-size:11px; font-weight:600; color:#a855f7; text-transform:uppercase; letter-spacing:0.1em; margin:0; animation:pulse 1.5s infinite;",this.statusArea.appendChild(this.prepareBadge),this.statusBadge=document.createElement("div"),this.statusBadge.style.cssText="display:none; align-items:center; gap:8px; padding:5px 16px; background:#f0fdf4; border-radius:9999px; border:1px solid #dcfce7;";const i=document.createElement("div");i.style.cssText="width:8px; height:8px; border-radius:50%; background:#22c55e; flex-shrink:0; padding:0 !important; animation:pulse 2s infinite;";const o=document.createElement("span");o.textContent="Connected",o.style.cssText="font-size:11px; font-weight:600; color:#15803d; text-transform:uppercase; letter-spacing:0.1em;",this.statusBadge.appendChild(i),this.statusBadge.appendChild(o),this.statusArea.appendChild(this.statusBadge),this.contentContainer.appendChild(this.statusArea),this.transcriptionEl=document.createElement("div"),this.transcriptionEl.className="voice-transcription",this.contentContainer.appendChild(this.transcriptionEl),this.element.appendChild(this.contentContainer);const a=document.createElement("div");a.className="voice-footer",this.muteBtn=document.createElement("button"),this.muteBtn.type="button",this.muteBtn.className="voice-mute-btn",this.muteBtn.setAttribute("aria-label","Mute microphone"),this.muteBtn.disabled=!0,this.muteBtn.innerHTML=`<span class="voice-mute-icon">${G.mic}</span><span class="voice-mute-label">Mute</span>`,this.muteBtn.onclick=()=>{this.onToggleMute&&this.setMicMuted(this.onToggleMute())},this.hangupBtn=document.createElement("button"),this.hangupBtn.className="voice-hangup-btn",this.hangupBtn.setAttribute("aria-label","End call"),this.hangupBtn.innerHTML=`
2279
+ `,this.videoElement=document.createElement("video"),this.videoElement.style.cssText="width:100%; height:100%; object-fit:cover; background:black;",this.videoElement.autoplay=!0,this.videoElement.playsInline=!0,this.videoElement.muted=!0,this.videoContainer.appendChild(this.videoElement),this.contentContainer.appendChild(this.videoContainer),this.orbWrapper=document.createElement("div"),this.orbWrapper.className="voice-orb-wrapper",this.connectingRing=document.createElement("div"),this.connectingRing.className="voice-orb-connecting-ring",this.orbWrapper.appendChild(this.connectingRing),this.errorRing=document.createElement("div"),this.errorRing.className="voice-orb-error-ring",this.orbWrapper.appendChild(this.errorRing),this.outerGlow=document.createElement("div"),this.outerGlow.className="voice-orb-ring-outer",this.orbWrapper.appendChild(this.outerGlow),this.wave1=document.createElement("div"),this.wave1.className="voice-orb-ring-mid",this.orbWrapper.appendChild(this.wave1),this.wave2=document.createElement("div"),this.wave2.className="voice-orb-disc",this.orbWrapper.appendChild(this.wave2),this.wave3=document.createElement("div"),this.wave3.style.display="none";const i=document.createElement("div");i.className="voice-orb-shine",i.id="voice-shine",this.orbWrapper.appendChild(i),this.waveLayers=[this.outerGlow,this.wave1,this.wave2,i],this.connectingOrb=document.createElement("div"),this.connectingOrb.className="voice-connecting-orb",this.connectingOrb.innerHTML=ue.voice_orb,this.orbWrapper.appendChild(this.connectingOrb),this.centerIcon=document.createElement("div"),this.centerIcon.className="voice-orb-center",this.centerIcon.innerHTML=ue.audioLines,this.orbWrapper.appendChild(this.centerIcon),this.contentContainer.appendChild(this.orbWrapper),this.statusArea=document.createElement("div"),this.statusArea.className="voice-status-area",this.connectingLabel=document.createElement("p"),this.connectingLabel.className="voice-connecting-label",this.connectingLabel.textContent="Connecting",this.statusArea.appendChild(this.connectingLabel),this.giveItAMinuteLabel=document.createElement("p"),this.giveItAMinuteLabel.className="voice-connecting-hint",this.giveItAMinuteLabel.textContent="This may take a moment",this.statusArea.appendChild(this.giveItAMinuteLabel),this.connectedBadge=document.createElement("div"),this.connectedBadge.className="voice-connected-badge is-listening",this.connectedStatusBars=document.createElement("span"),this.connectedStatusBars.className="voice-live-status-bars listening",this.connectedStatusBars.innerHTML="<i></i><i></i><i></i>",this.connectedStatusBars.setAttribute("aria-hidden","true"),this.connectedStatusText=document.createElement("span"),this.connectedStatusText.className="voice-live-status-text",this.connectedStatusText.textContent="Listening",this.connectedBadge.appendChild(this.connectedStatusBars),this.connectedBadge.appendChild(this.connectedStatusText),this.statusArea.appendChild(this.connectedBadge),this.timerEl=document.createElement("div"),this.timerEl.className="voice-timer",this.timerEl.textContent="00:00",this.statusArea.appendChild(this.timerEl),this.errorLabel=document.createElement("p"),this.errorLabel.className="voice-error-label",this.errorLabel.textContent="Connection failed",this.statusArea.appendChild(this.errorLabel),this.retryBtn=document.createElement("button"),this.retryBtn.className="voice-retry-btn",this.retryBtn.textContent="Retry",this.statusArea.appendChild(this.retryBtn),this.prepareBadge=document.createElement("p"),this.prepareBadge.style.cssText="display:none; font-size:11px; font-weight:600; color:#a855f7; text-transform:uppercase; letter-spacing:0.1em; margin:0; animation:pulse 1.5s infinite;",this.statusArea.appendChild(this.prepareBadge),this.statusBadge=document.createElement("div"),this.statusBadge.style.cssText="display:none; align-items:center; gap:8px; padding:5px 16px; background:#f0fdf4; border-radius:9999px; border:1px solid #dcfce7;";const s=document.createElement("div");s.style.cssText="width:8px; height:8px; border-radius:50%; background:#22c55e; flex-shrink:0; padding:0 !important; animation:pulse 2s infinite;";const a=document.createElement("span");a.textContent="Connected",a.style.cssText="font-size:11px; font-weight:600; color:#15803d; text-transform:uppercase; letter-spacing:0.1em;",this.statusBadge.appendChild(s),this.statusBadge.appendChild(a),this.statusArea.appendChild(this.statusBadge),this.contentContainer.appendChild(this.statusArea),this.transcriptionEl=document.createElement("div"),this.transcriptionEl.className="voice-transcription",this.contentContainer.appendChild(this.transcriptionEl),this.element.appendChild(this.contentContainer);const o=document.createElement("div");o.className="voice-footer",this.muteBtn=document.createElement("button"),this.muteBtn.type="button",this.muteBtn.className="voice-mute-btn",this.muteBtn.setAttribute("aria-label","Mute microphone"),this.muteBtn.disabled=!0,this.muteBtn.innerHTML=`<span class="voice-mute-icon">${ue.mic}</span><span class="voice-mute-label">Mute</span>`,this.muteBtn.onclick=()=>{this.onToggleMute&&this.setMicMuted(this.onToggleMute())},this.hangupBtn=document.createElement("button"),this.hangupBtn.className="voice-hangup-btn",this.hangupBtn.setAttribute("aria-label","End call"),this.hangupBtn.innerHTML=`
2280
2280
  <span class="voice-hangup-icon">
2281
2281
  <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">
2282
2282
  <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"/>
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,c=this.callStartedAt??Date.now();this.onCallEnded&&l>0&&this.onCallEnded(l,c),this.onHangup()},o.appendChild(this.muteBtn),o.appendChild(this.hangupBtn),this.element.appendChild(o)}bindMicMuteToggle(e){this.onToggleMute=e}setMicMuted(e){this.muteBtn.classList.toggle("is-muted",e),this.muteBtn.setAttribute("aria-label",e?"Unmute microphone":"Mute microphone");const t=this.muteBtn.querySelector(".voice-mute-icon");t&&(t.innerHTML=e?ue.micOff:ue.mic);const A=this.muteBtn.querySelector(".voice-mute-label");A&&(A.textContent=e?"Unmute":"Mute")}setMicMuteEnabled(e){this.muteBtn.disabled=!e}applyCenterIcon(e){this.centerIcon.classList.remove("is-error"),e==="error"&&this.centerIcon.classList.add("is-error")}getElement(){return this.element}setMode(e){this.isAvatarMode=e==="avatar"}setVideoTrack(e){if(this.isAvatarMode=!0,e.kind==="video"&&this.videoElement){const t=new MediaStream([e]);this.videoElement.srcObject=t,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(A=>{})}}setStatus(e,t){e==="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(A=>A.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()):e==="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(A=>{A.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())):e==="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(A=>A.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=t||"Connection failed",this.errorLabel.style.display="block",this.retryBtn.style.display="block",this.stopTimer())}setActivity(e){this.liveActivity!==e&&(this.liveActivity=e,this.connectedBadge.classList.remove("is-listening","is-speaking"),this.connectedBadge.classList.add(e==="speaking"?"is-speaking":"is-listening"),this.connectedStatusBars.classList.remove("listening","speaking"),this.connectedStatusBars.classList.add(e),this.connectedStatusText.textContent=e==="speaking"?"Speaking":"Listening..")}setTranscription(e,t){this.transcriptionEl.textContent=`"${e}"`,this.transcriptionEl.style.color=t?"#1f2937":"#9ca3af",this.transcriptionEl.style.fontStyle=t?"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(e=>e.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 e=Math.floor((Date.now()-this.startTime)/1e3),t=Math.floor(e/60).toString().padStart(2,"0"),A=(e%60).toString().padStart(2,"0");this.timerEl.textContent=`${t}:${A}`},1e3)}stopTimer(){this.timerInterval&&(clearInterval(this.timerInterval),this.timerInterval=null),this.timerEl.textContent=""}setFullScreen(e){e?(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 Ao{constructor(e){v(this,"element");v(this,"messageContainer");v(this,"inputArea");v(this,"input");v(this,"sendBtn");v(this,"typingIndicator",null);v(this,"resolveBar",null);this.onSend=e,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",A=>{A.key==="Enter"&&this.handleSend()}),this.sendBtn=document.createElement("button"),this.sendBtn.className="chat-send-btn",this.sendBtn.innerHTML=ue.send,this.sendBtn.onclick=()=>this.handleSend(),this.inputArea.appendChild(this.input),this.inputArea.appendChild(this.sendBtn);const t=document.createElement("div");t.className="branding-footer",t.innerHTML="Technology Powered by <b>Vanira AI</b>",this.element.appendChild(this.messageContainer),this.element.appendChild(this.inputArea),this.element.appendChild(t)}getElement(){return this.element}formatTime(e=new Date){return e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}addMessage(e,t,A){const n=document.createElement("div");n.style.cssText=`
2287
2287
  display: flex;
2288
2288
  flex-direction: column;
2289
- align-items: ${A==="user"?"flex-end":"flex-start"};
2289
+ align-items: ${e==="user"?"flex-end":"flex-start"};
2290
2290
  margin-bottom: 2px;
2291
- `;const s=document.createElement("div");s.className=`chat-message ${A}`,s.textContent=e,r.appendChild(s);const i=document.createElement("span");i.style.cssText=`
2291
+ `;const i=document.createElement("div");i.className=`chat-message ${e}`,i.textContent=t,n.appendChild(i);const s=document.createElement("span");s.style.cssText=`
2292
2292
  font-size: 10px;
2293
2293
  color: #9ca3af;
2294
2294
  margin: 2px 4px 6px;
2295
2295
  display: block;
2296
- `,i.textContent=this.formatTime(t?new Date(t):void 0),r.appendChild(i),this.messageContainer.appendChild(r),this.scrollToBottom()}updateLastAssistantMessage(A){const e=this.messageContainer.lastElementChild;if(e){const t=e.querySelector(".chat-message.assistant");if(t){t.textContent=A,this.scrollToBottom();return}}this.addMessage("assistant",A)}addButtons(A){const e=document.createElement("div");e.className="chat-buttons-container",e.style.display="flex",e.style.flexWrap="wrap",e.style.gap="8px",e.style.marginTop="8px",e.style.marginBottom="12px",e.style.justifyContent="flex-start",A.forEach(t=>{const r=document.createElement("button");r.className="chat-suggestion-chip",r.textContent=t.title,r.style.padding="6px 12px",r.style.borderRadius="16px",r.style.border="1px solid #e5e7eb",r.style.backgroundColor="white",r.style.fontSize="12px",r.style.color="#4b5563",r.style.cursor="pointer",r.style.transition="all 0.2s",r.onmouseenter=()=>{r.style.backgroundColor="#f3f4f6",r.style.borderColor="#d1d5db"},r.onmouseleave=()=>{r.style.backgroundColor="white",r.style.borderColor="#e5e7eb"},r.onclick=()=>{this.handleSend(t.payload)},e.appendChild(r)}),this.messageContainer.appendChild(e),this.scrollToBottom()}handleSend(A){const e=A||this.input.value.trim();e&&(this.onSend(e),A||(this.input.value=""))}setTyping(A){if(this.typingIndicator&&(this.typingIndicator.remove(),this.typingIndicator=null),A){this.typingIndicator=document.createElement("div"),this.typingIndicator.className="typing-indicator";for(let e=0;e<3;e++){const t=document.createElement("div");t.className="typing-dot",this.typingIndicator.appendChild(t)}this.messageContainer.appendChild(this.typingIndicator),this.scrollToBottom()}}addCallRecord(A,e=Date.now()){const t=Math.floor(A/6e4),r=Math.floor(A%6e4/1e3),s=t>0?`${t}m ${r}s`:`${r}s`,i=document.createElement("div");i.dataset.callTimestamp=String(e),i.style.cssText=`
2296
+ `,s.textContent=this.formatTime(A?new Date(A):void 0),n.appendChild(s),this.messageContainer.appendChild(n),this.scrollToBottom()}updateLastAssistantMessage(e){const t=this.messageContainer.lastElementChild;if(t){const A=t.querySelector(".chat-message.assistant");if(A){A.textContent=e,this.scrollToBottom();return}}this.addMessage("assistant",e)}addButtons(e){const t=document.createElement("div");t.className="chat-buttons-container",t.style.display="flex",t.style.flexWrap="wrap",t.style.gap="8px",t.style.marginTop="8px",t.style.marginBottom="12px",t.style.justifyContent="flex-start",e.forEach(A=>{const n=document.createElement("button");n.className="chat-suggestion-chip",n.textContent=A.title,n.style.padding="6px 12px",n.style.borderRadius="16px",n.style.border="1px solid #e5e7eb",n.style.backgroundColor="white",n.style.fontSize="12px",n.style.color="#4b5563",n.style.cursor="pointer",n.style.transition="all 0.2s",n.onmouseenter=()=>{n.style.backgroundColor="#f3f4f6",n.style.borderColor="#d1d5db"},n.onmouseleave=()=>{n.style.backgroundColor="white",n.style.borderColor="#e5e7eb"},n.onclick=()=>{this.handleSend(A.payload)},t.appendChild(n)}),this.messageContainer.appendChild(t),this.scrollToBottom()}handleSend(e){const t=e||this.input.value.trim();t&&(this.onSend(t),e||(this.input.value=""))}setTyping(e){if(this.typingIndicator&&(this.typingIndicator.remove(),this.typingIndicator=null),e){this.typingIndicator=document.createElement("div"),this.typingIndicator.className="typing-indicator";for(let t=0;t<3;t++){const A=document.createElement("div");A.className="typing-dot",this.typingIndicator.appendChild(A)}this.messageContainer.appendChild(this.typingIndicator),this.scrollToBottom()}}addCallRecord(e,t=Date.now()){const A=Math.floor(e/6e4),n=Math.floor(e%6e4/1e3),i=A>0?`${A}m ${n}s`:`${n}s`,s=document.createElement("div");s.dataset.callTimestamp=String(t),s.style.cssText=`
2297
2297
  display: flex; justify-content: center;
2298
2298
  margin: 10px 16px;
2299
- `,i.innerHTML=`
2299
+ `,s.innerHTML=`
2300
2300
  <div style="
2301
2301
  display: flex; align-items: center; gap: 8px;
2302
2302
  background: #f3f4f6; border: 1px solid #e5e7eb;
@@ -2312,14 +2312,14 @@ overflow: hidden;
2312
2312
  <span>
2313
2313
  <span style="font-weight:500; color:#374151;">Voice call ended</span>
2314
2314
  <span style="margin-left:6px; color:#9ca3af;">·</span>
2315
- <span style="margin-left:6px;">${s}</span>
2315
+ <span style="margin-left:6px;">${i}</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`
2319
- <svg class="voice-doodle-squiggle ${A}" viewBox="0 0 48 24" fill="none" aria-hidden="true">
2318
+ `,this.messageContainer.appendChild(s),this.scrollToBottom()}clearMessages(){this.messageContainer.innerHTML=""}setResolveCallback(e){this.resolveBar&&this.resolveBar.remove(),this.resolveBar=document.createElement("div"),this.resolveBar.className="chat-resolve-bar";const t=document.createElement("button");t.className="chat-resolve-link",t.textContent="Mark as resolved, start new",t.onclick=()=>{confirm("Are you sure you want to mark this conversation as resolved and start fresh?")&&e()},this.resolveBar.appendChild(t),this.element.insertBefore(this.resolveBar,this.inputArea)}scrollToBottom(){this.messageContainer.scrollTop=this.messageContainer.scrollHeight}}class fh{constructor(e){v(this,"element");v(this,"videoElement");v(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 t=e||"https://www.simli.com/jenna.mp4",A=t.endsWith(".mp4")||t.endsWith(".webm");let n;if(A){const i=document.createElement("video");i.src=t,i.muted=!0,i.loop=!0,i.autoplay=!0,i.playsInline=!0,n=i}else{const i=document.createElement("img");i.src=t,n=i}n.style.width="140px",n.style.height="140px",n.style.borderRadius="50%",n.style.objectFit="cover",n.style.backgroundColor="#f3f4f6",this.placeholderContainer.appendChild(n),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(e){this.videoElement.srcObject=e,this.videoElement.style.display="block",this.placeholderContainer.style.display="none"}}class mh{constructor(e,t){v(this,"element");v(this,"showSessionSelector",!1);this.onClick=e,this.agentId=t,this.element=document.createElement("div"),this.element.className="voice-mode-container";const A=this.agentId?Wa(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(A)}doodleSquiggle(e){return`
2319
+ <svg class="voice-doodle-squiggle ${e}" 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>
2322
- `}render(A){this.element.innerHTML=`
2322
+ `}render(e){this.element.innerHTML=`
2323
2323
  <div class="voice-idle-stack">
2324
2324
  <div class="voice-doodle-stage">
2325
2325
  ${this.doodleSquiggle("voice-doodle-squiggle-1")}
@@ -2338,16 +2338,16 @@ overflow: hidden;
2338
2338
  <div class="voice-status-subtext">Start a conversation</div>
2339
2339
  <div class="session-selector-container" style="display: none; opacity: 0; transition: opacity 0.3s ease;">
2340
2340
  <div class="session-option active" data-behavior="continue">
2341
- <span class="session-icon" aria-hidden="true">${G.sessionContinue}</span>
2341
+ <span class="session-icon" aria-hidden="true">${ue.sessionContinue}</span>
2342
2342
  <span class="session-title">Continue</span>
2343
2343
  </div>
2344
2344
  <div class="session-option" data-behavior="new">
2345
- <span class="session-icon" aria-hidden="true">${G.sessionRestart}</span>
2345
+ <span class="session-icon" aria-hidden="true">${ue.sessionRestart}</span>
2346
2346
  <span class="session-title">Restart</span>
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 t=this.element.querySelector(".central-orb-container"),A=this.element.querySelector(".session-selector-container"),n=this.element.querySelector(".voice-status-text"),i=this.element.querySelector(".voice-status-subtext");t&&(t.onclick=()=>{e&&!this.showSessionSelector?(this.showSessionSelector=!0,this.element.classList.add("has-session-choice"),n&&(n.textContent="Welcome back"),i&&(i.style.display="none"),A&&(A.style.display="flex",A.offsetHeight,A.style.opacity="1")):this.onClick("continue")});const s=this.element.querySelectorAll(".session-option");s.forEach(a=>{a.addEventListener("click",o=>{o.stopPropagation(),s.forEach(c=>c.classList.remove("active")),a.classList.add("active");const l=a.getAttribute("data-behavior");this.onClick(l)})})}getElement(){return this.element}}class ro{constructor(e){v(this,"element");v(this,"chips",[]);this.onChipClick=e,this.element=document.createElement("div"),this.element.className="welcome-chips-container"}setChips(e){this.chips=e,this.render()}getElement(){return this.element}setPosition(e){this.element.style.cssText="",e.split(";").filter(A=>A.trim()).forEach(A=>{const[n,i]=A.split(":").map(s=>s.trim());n&&i&&(this.element.style[n]=i)}),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(e,t,A=!0){this.element.style.left=`${e}px`,A?(this.element.style.top="auto",this.element.style.bottom=`${window.innerHeight-t+16}px`):(this.element.style.bottom="auto",this.element.style.top=`${t+76}px`),this.element.style.right="auto"}render(){this.element.innerHTML="",this.chips.forEach((e,t)=>{const A=document.createElement("button");A.className="welcome-chip-btn",A.textContent=e.title,A.onclick=n=>{n.stopPropagation(),this.onChipClick(e.title)},A.style.animationDelay=`${t*.1}s`,this.element.appendChild(A)})}static get styles(){return`
2351
2351
  .welcome-chips-container {
2352
2352
  position: fixed;
2353
2353
  z-index: 9998;
@@ -2403,141 +2403,365 @@ overflow: hidden;
2403
2403
  transform: translateY(0);
2404
2404
  }
2405
2405
  }
2406
- `}}const hl=`
2406
+ `}}const wh=`
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 Bh{constructor(e,t,A="Voice chat"){v(this,"element");v(this,"statusEl");v(this,"titleEl");v(this,"barsEl");v(this,"muteBtn");v(this,"activity","idle");v(this,"onToggleMute");this.onExpand=e,this.onHangup=t,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 n=document.createElement("button");n.type="button",n.className="widget-voice-pill-main",n.setAttribute("aria-label","Expand voice chat");const i=document.createElement("div");i.className="widget-voice-pill-icon",i.innerHTML=ue.phone;const s=document.createElement("div");s.className="widget-voice-pill-text",this.titleEl=document.createElement("span"),this.titleEl.className="widget-voice-pill-title",this.titleEl.textContent=A;const a=document.createElement("span");a.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",a.appendChild(this.barsEl),a.appendChild(this.statusEl),s.appendChild(this.titleEl),s.appendChild(a),n.appendChild(i),n.appendChild(s),n.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=ue.mic,this.muteBtn.onclick=l=>{l.stopPropagation(),this.onToggleMute&&this.setMicMuted(this.onToggleMute())};const o=document.createElement("button");o.type="button",o.className="widget-voice-pill-hangup",o.setAttribute("aria-label","End call"),o.innerHTML=wh,o.onclick=l=>{l.stopPropagation(),this.onHangup()},this.element.appendChild(n),this.element.appendChild(this.muteBtn),this.element.appendChild(o),this.setActivity("idle")}bindMicMuteToggle(e){this.onToggleMute=e}setMicMuted(e){this.muteBtn.classList.toggle("is-muted",e),this.muteBtn.setAttribute("aria-label",e?"Unmute microphone":"Mute microphone"),this.muteBtn.innerHTML=e?ue.micOff:ue.mic}setMicMuteEnabled(e){this.muteBtn.disabled=!e}getElement(){return this.element}setTitle(e){this.titleEl.textContent=e}setActivity(e){this.activity=e,this.element.classList.remove("is-connecting","is-listening","is-speaking","is-error"),this.barsEl.classList.remove("listening","speaking","hidden"),e==="connecting"?(this.statusEl.textContent="Connecting",this.element.classList.add("is-connecting"),this.barsEl.classList.add("listening"),this.muteBtn.disabled=!0):e==="speaking"?(this.statusEl.textContent="Speaking",this.element.classList.add("is-speaking"),this.barsEl.classList.add("speaking"),this.muteBtn.disabled=!1):e==="listening"?(this.statusEl.textContent="Listening",this.element.classList.add("is-listening"),this.barsEl.classList.add("listening"),this.muteBtn.disabled=!1):e==="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(e){e==="connecting"?this.setActivity("connecting"):e==="connected"?this.setActivity("listening"):e==="error"?this.setActivity("error"):this.setActivity("idle")}getActivity(){return this.activity}show(){this.element.classList.remove("hidden")}hide(){this.element.classList.add("hidden")}}class vh{constructor(e,t={}){v(this,"element");this.onOpen=e;const A=t.greeting||"Hi there!",n=t.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",`${A} ${n}`),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>
2414
2414
  <span class="human-presence-copy">
2415
- <span class="human-presence-greeting">${t}</span>
2416
- <span class="human-presence-subtitle">${r}</span>
2415
+ <span class="human-presence-greeting">${A}</span>
2416
+ <span class="human-presence-subtitle">${n}</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=i=>{i.stopPropagation(),this.onOpen()}}getElement(){return this.element}show(){this.element.style.display="flex"}hide(){this.element.style.display="none"}}class no{constructor(e,t,A="#000000",n="#111111",i){v(this,"element");v(this,"overlay");v(this,"onStartCall");v(this,"onHangup");v(this,"primaryColor");v(this,"secondaryColor");v(this,"onCallEnded");this.onStartCall=e,this.onHangup=t,this.primaryColor=A,this.secondaryColor=n,this.onCallEnded=i,this.element=document.createElement("div"),this.element.style.height="100%",this.element.style.position="relative"}initOverlay(){this.overlay=new to(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}getElement(){return this.element}setCallActive(e){e?this.overlay.show():this.overlay.hide()}setStatus(e,t){this.overlay.setStatus(e,t)}setActivity(e){this.overlay.setActivity(e)}setTranscription(e,t){this.overlay.setTranscription(e,t)}setVideoTrack(e){this.overlay.setVideoTrack(e)}bindMicMuteToggle(e){this.overlay.bindMicMuteToggle(e)}setMicMuted(e){this.overlay.setMicMuted(e)}setMicMuteEnabled(e){this.overlay.setMicMuteEnabled(e)}}class yh extends no{constructor(t,A,n="#000000",i="#111111",s,a){super(t,A,n,i,s);v(this,"voiceOrb");this.element.style.background="#f9fafb",this.voiceOrb=new mh(o=>{this.onStartCall(o)},a),this.element.appendChild(this.voiceOrb.getElement()),this.initOverlay()}}class bh{constructor(e){v(this,"element");v(this,"chatWindow");this.onSendMessage=e,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 Ao(t=>this.onSendMessage(t)),this.element.appendChild(this.chatWindow.getElement())}getElement(){return this.element}getChatWindow(){return this.chatWindow}}class io{constructor(e,t,A,n="#000000",i="#111111",s){v(this,"element");v(this,"chatWindow");v(this,"overlay");v(this,"voiceTrigger");this.onSendMessage=e,this.onStartCall=t,this.onHangup=A,this.primaryColor=n,this.secondaryColor=i,this.onCallEnded=s,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 Ao(t=>this.onSendMessage(t));const e=this.chatWindow.getElement();e.style.flex="1",this.element.appendChild(e),this.injectVoiceTrigger(),this.overlay=new to(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}injectVoiceTrigger(){const e=document.createElement("button");this.voiceTrigger=e,e.className="voice-btn-simple",e.innerHTML=`<div class="voice-btn-icon">${ue.audioLines}</div>`,e.onclick=()=>this.onStartCall();const t=this.chatWindow.getElement().querySelector(".chat-input-area");t&&t.insertBefore(this.voiceTrigger,t.firstChild)}getElement(){return this.element}getChatWindow(){return this.chatWindow}setCallActive(e){e?(this.overlay.show(),this.chatWindow&&(this.chatWindow.getElement().style.display="none")):(this.overlay.hide(),this.chatWindow&&(this.chatWindow.getElement().style.display="flex"))}setStatus(e,t){this.overlay.setStatus(e,t)}setActivity(e){this.overlay.setActivity(e)}setTranscription(e,t){this.overlay.setTranscription(e,t)}setVideoTrack(e){this.overlay.setVideoTrack(e)}bindMicMuteToggle(e){this.overlay.bindMicMuteToggle(e)}setMicMuted(e){this.overlay.setMicMuted(e)}setMicMuteEnabled(e){this.overlay.setMicMuteEnabled(e)}}class Ch extends io{constructor(e,t,A,n="#000000",i="#111111",s){super(e,t,A,n,i,s),this.setupChat()}}class xh extends no{constructor(t,A,n="#000000",i="#111111",s){super(t,A,n,i,s);v(this,"avatarView");v(this,"startCallBtn");v(this,"controlsContainer");this.element.style.display="flex",this.element.style.flexDirection="column",this.avatarView=new fh;const a=this.avatarView.getElement();a.style.width="100%",a.style.maxWidth="300px",a.style.aspectRatio="1/1",a.style.borderRadius="16px",a.style.overflow="hidden",a.style.margin="auto",a.style.position="relative",this.element.appendChild(a),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 o=document.createElement("div");o.className="controls",this.startCallBtn=document.createElement("button"),this.startCallBtn.className="control-btn primary",this.startCallBtn.innerHTML=`${ue.phone} <span>Start Call</span>`,this.startCallBtn.onclick=()=>this.onStartCall(),o.appendChild(this.startCallBtn),this.controlsContainer.appendChild(o),this.element.appendChild(this.controlsContainer),this.initOverlay(),this.overlay.setMode("avatar")}getAvatarView(){return this.avatarView}setCallActive(t){t&&this.overlay.setMode("avatar"),super.setCallActive(t),t?this.controlsContainer.style.display="none":this.controlsContainer.style.display="block"}}class Qh extends io{constructor(e,t,A,n="#000000",i="#111111",s){super(e,t,A,n,i,s),this.setupChat(),this.overlay.setMode("avatar")}injectVoiceTrigger(){const e=document.createElement("button");this.voiceTrigger=e,e.className="voice-btn-simple",e.style.overflow="hidden",e.style.padding="0",e.style.border="1.5px solid #e5e7eb",e.innerHTML=`
2419
2419
  <video
2420
2420
  src="https://www.simli.com/jenna.mp4"
2421
2421
  autoplay loop muted pip="false" playsinline
2422
2422
  style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%;">
2423
2423
  </video>
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
- ${G.audioLines.replace('width="24"','width="12"').replace('height="24"','height="12"')}
2425
+ ${ue.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=`
2429
- @keyframes vnr-screen-ripple {
2430
- 0% { transform: translate(-50%, -50%) scale(0.35); opacity: 0.95; }
2431
- 100% { transform: translate(-50%, -50%) scale(2.4); opacity: 0; }
2432
- }
2433
- @keyframes vnr-screen-cursor-pulse {
2434
- 0%, 100% { transform: translate(0, 0) scale(1); }
2435
- 50% { transform: translate(0, 0) scale(1.08); }
2436
- }
2437
- .vnr-screen-overlay-root {
2438
- position: fixed;
2439
- inset: 0;
2440
- z-index: ${Nl};
2441
- pointer-events: none;
2442
- overflow: hidden;
2443
- }
2444
- .vnr-screen-overlay-root.vnr-screen-overlay-interactive {
2445
- pointer-events: auto;
2446
- cursor: crosshair;
2447
- touch-action: none;
2448
- }
2449
- .vnr-screen-ink-svg {
2450
- position: absolute;
2451
- inset: 0;
2452
- width: 100%;
2453
- height: 100%;
2454
- overflow: visible;
2455
- }
2456
- .vnr-screen-ink-stroke {
2457
- fill: none;
2458
- stroke-linecap: round;
2459
- stroke-linejoin: round;
2460
- }
2461
- .vnr-screen-cursor {
2462
- position: absolute;
2463
- width: 28px;
2464
- height: 28px;
2465
- margin-left: -2px;
2466
- margin-top: -2px;
2467
- filter: drop-shadow(0 1px 3px rgba(0,0,0,0.45));
2468
- animation: vnr-screen-cursor-pulse 1.2s ease-in-out infinite;
2469
- }
2470
- .vnr-screen-cursor.vnr-screen-cursor-flying {
2471
- animation: none;
2472
- }
2473
- .vnr-screen-cursor-label {
2474
- position: absolute;
2475
- margin-top: 22px;
2476
- margin-left: 8px;
2477
- padding: 4px 8px;
2478
- border-radius: 6px;
2479
- font-size: 12px;
2480
- font-weight: 600;
2481
- color: #fff;
2482
- white-space: nowrap;
2483
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
2484
- }
2485
- .vnr-screen-click-ripple {
2486
- position: absolute;
2487
- width: 48px;
2488
- height: 48px;
2489
- border-radius: 50%;
2490
- border: 3px solid currentColor;
2491
- animation: vnr-screen-ripple 650ms ease-out forwards;
2492
- }
2493
- .vnr-screen-labels-layer {
2494
- position: absolute;
2495
- inset: 0;
2496
- pointer-events: none;
2497
- }
2498
- .vnr-screen-ink-label {
2499
- position: absolute;
2500
- transform: translate(-50%, -50%);
2501
- font-family: Georgia, "Times New Roman", serif;
2502
- font-weight: 600;
2503
- line-height: 1;
2504
- text-shadow: 1px 1px 0 rgba(0,0,0,0.35);
2505
- white-space: nowrap;
2506
- pointer-events: none;
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">
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."}
2512
-
2513
- DOM-FIRST GUIDE (better than screenshot-only tutors):
2514
- - Call point_at with element_id (e.g. e3) from this scan — cursor flies to the live element.
2515
- - Call outline_targets with element_ids to draw animated outlines on the real DOM.
2516
- - Prefer element_id or css_selector; raw x/y only as fallback.
2517
-
2518
- viewport=${d.viewport.width}x${d.viewport.height} · ${d.elements.length} elements
2519
- coordinate_system=${d.coordinate_system}
2520
-
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=`
2523
- .vnr-whiteboard-draw-layer path.vnr-board-stroke,
2524
- .vnr-whiteboard-draw-layer line.vnr-board-stroke,
2525
- .vnr-whiteboard-draw-layer circle.vnr-board-stroke,
2526
- .vnr-whiteboard-draw-layer ellipse.vnr-board-stroke {
2527
- fill: none;
2528
- stroke: #ffffff;
2529
- stroke-width: 6px;
2530
- stroke-linecap: round;
2531
- stroke-linejoin: round;
2532
- vector-effect: non-scaling-stroke;
2533
- }
2534
- .vnr-whiteboard-draw-layer text.vnr-board-label {
2535
- fill: #4A9EFF !important;
2536
- font-family: 'Architects Daughter', 'Caveat', cursive, sans-serif;
2537
- font-size: 28px;
2538
- paint-order: stroke fill;
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=`
2427
+ `;const t=e.querySelector("div");if(t){const i=t.querySelector("svg");i&&(i.style.width="12px",i.style.height="12px")}e.onclick=()=>this.onStartCall();const A=this.chatWindow.getElement().querySelector(".chat-input-area"),n=A==null?void 0:A.querySelector(".chat-send-btn");A&&n&&A.insertBefore(this.voiceTrigger,n)}}class Eh{async sendMessage(e,t,A,n,i,s,a,o,l){return zt.sendChatMessage(t,A,e,n,c=>{s&&s(c)},i,(c,d)=>{a&&c&&a(c,d||void 0)},o,l)}async sendFile(e){throw new Error("Method not implemented.")}async likeDislike(e,t){}}const zr="vanira:clip-region-active";function Ii(r){typeof window>"u"||window.dispatchEvent(new CustomEvent(zr,{detail:{active:r}}))}const Uh="vanira:board-active";function Ov(r){}function Si(r,e=!1){typeof window>"u"||window.dispatchEvent(new CustomEvent(Uh,{detail:{active:r,reduced:e}}))}class Ne{constructor(e,t,A,n){this.left=e,this.top=t,this.width=A,this.height=n}add(e,t,A,n){return new Ne(this.left+e,this.top+t,this.width+A,this.height+n)}static fromClientRect(e,t){return new Ne(t.left+e.windowBounds.left,t.top+e.windowBounds.top,t.width,t.height)}static fromDOMRectList(e,t){const A=Array.from(t);let n=A.find(i=>i.width!==0);return n||(n=A.find(i=>i.height!==0)),!n&&A.length>0&&(n=A[0]),n?new Ne(n.left+e.windowBounds.left,n.top+e.windowBounds.top,n.width,n.height):Ne.EMPTY}}Ne.EMPTY=new Ne(0,0,0,0);const Gr=(r,e)=>Ne.fromClientRect(r,e.getBoundingClientRect()),Fh=r=>{const e=r.body,t=r.documentElement;if(!e||!t)throw new Error("Unable to get document size");const A=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),n=Math.max(Math.max(e.scrollHeight,t.scrollHeight),Math.max(e.offsetHeight,t.offsetHeight),Math.max(e.clientHeight,t.clientHeight));return new Ne(0,0,A,n)};for(var Vr=function(r){for(var e=[],t=0,A=r.length;t<A;){var n=r.charCodeAt(t++);if(n>=55296&&n<=56319&&t<A){var i=r.charCodeAt(t++);(i&64512)===56320?e.push(((n&1023)<<10)+(i&1023)+65536):(e.push(n),t--)}else e.push(n)}return e},Ce=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,r);var t=r.length;if(!t)return"";for(var A=[],n=-1,i="";++n<t;){var s=r[n];s<=65535?A.push(s):(s-=65536,A.push((s>>10)+55296,s%1024+56320)),(n+1===t||A.length>16384)&&(i+=String.fromCharCode.apply(String,A),A.length=0)}return i},so="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ih=typeof Uint8Array>"u"?[]:new Uint8Array(256),Yr=0;Yr<so.length;Yr++)Ih[so.charCodeAt(Yr)]=Yr;for(var ao="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",jA=typeof Uint8Array>"u"?[]:new Uint8Array(256),Wr=0;Wr<ao.length;Wr++)jA[ao.charCodeAt(Wr)]=Wr;for(var Sh=function(r){var e=r.length*.75,t=r.length,A,n=0,i,s,a,o;r[r.length-1]==="="&&(e--,r[r.length-2]==="="&&e--);var l=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(e):new Array(e),c=Array.isArray(l)?l:new Uint8Array(l);for(A=0;A<t;A+=4)i=jA[r.charCodeAt(A)],s=jA[r.charCodeAt(A+1)],a=jA[r.charCodeAt(A+2)],o=jA[r.charCodeAt(A+3)],c[n++]=i<<2|s>>4,c[n++]=(s&15)<<4|a>>2,c[n++]=(a&3)<<6|o&63;return l},Mh=function(r){for(var e=r.length,t=[],A=0;A<e;A+=2)t.push(r[A+1]<<8|r[A]);return t},kh=function(r){for(var e=r.length,t=[],A=0;A<e;A+=4)t.push(r[A+3]<<24|r[A+2]<<16|r[A+1]<<8|r[A]);return t},lA=5,Mi=11,ki=2,Hh=Mi-lA,oo=65536>>lA,Th=1<<lA,Hi=Th-1,Lh=1024>>lA,Dh=oo+Lh,Ph=Dh,Nh=32,Oh=Ph+Nh,Rh=65536>>Mi,Kh=1<<Hh,zh=Kh-1,lo=function(r,e,t){return r.slice?r.slice(e,t):new Uint16Array(Array.prototype.slice.call(r,e,t))},Gh=function(r,e,t){return r.slice?r.slice(e,t):new Uint32Array(Array.prototype.slice.call(r,e,t))},Vh=function(r,e){var t=Sh(r),A=Array.isArray(t)?kh(t):new Uint32Array(t),n=Array.isArray(t)?Mh(t):new Uint16Array(t),i=24,s=lo(n,i/2,A[4]/2),a=A[5]===2?lo(n,(i+A[4])/2):Gh(A,Math.ceil((i+A[4])/4));return new Yh(A[0],A[1],A[2],A[3],s,a)},Yh=function(){function r(e,t,A,n,i,s){this.initialValue=e,this.errorValue=t,this.highStart=A,this.highValueIndex=n,this.index=i,this.data=s}return r.prototype.get=function(e){var t;if(e>=0){if(e<55296||e>56319&&e<=65535)return t=this.index[e>>lA],t=(t<<ki)+(e&Hi),this.data[t];if(e<=65535)return t=this.index[oo+(e-55296>>lA)],t=(t<<ki)+(e&Hi),this.data[t];if(e<this.highStart)return t=Oh-Rh+(e>>Mi),t=this.index[t],t+=e>>lA&zh,t=this.index[t],t=(t<<ki)+(e&Hi),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},r}(),co="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wh=typeof Uint8Array>"u"?[]:new Uint8Array(256),Xr=0;Xr<co.length;Xr++)Wh[co.charCodeAt(Xr)]=Xr;var Xh="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==",ho=50,Jh=1,uo=2,po=3,_h=4,qh=5,go=7,fo=8,mo=9,Yt=10,Ti=11,wo=12,Li=13,jh=14,ZA=15,Di=16,Jr=17,$A=18,Zh=19,Bo=20,Pi=21,er=22,Ni=23,EA=24,_e=25,tr=26,Ar=27,UA=28,$h=29,cA=30,eu=31,_r=32,qr=33,Oi=34,Ri=35,Ki=36,rr=37,zi=38,jr=39,Zr=40,Gi=41,vo=42,tu=43,Au=[9001,65288],yo="!",ne="×",$r="÷",Vi=Vh(Xh),Ut=[cA,Ki],Yi=[Jh,uo,po,qh],bo=[Yt,fo],Co=[Ar,tr],ru=Yi.concat(bo),xo=[zi,jr,Zr,Oi,Ri],nu=[ZA,Li],iu=function(r,e){e===void 0&&(e="strict");var t=[],A=[],n=[];return r.forEach(function(i,s){var a=Vi.get(i);if(a>ho?(n.push(!0),a-=ho):n.push(!1),["normal","auto","loose"].indexOf(e)!==-1&&[8208,8211,12316,12448].indexOf(i)!==-1)return A.push(s),t.push(Di);if(a===_h||a===Ti){if(s===0)return A.push(s),t.push(cA);var o=t[s-1];return ru.indexOf(o)===-1?(A.push(A[s-1]),t.push(o)):(A.push(s),t.push(cA))}if(A.push(s),a===eu)return t.push(e==="strict"?Pi:rr);if(a===vo||a===$h)return t.push(cA);if(a===tu)return i>=131072&&i<=196605||i>=196608&&i<=262141?t.push(rr):t.push(cA);t.push(a)}),[A,t,n]},Wi=function(r,e,t,A){var n=A[t];if(Array.isArray(r)?r.indexOf(n)!==-1:r===n)for(var i=t;i<=A.length;){i++;var s=A[i];if(s===e)return!0;if(s!==Yt)break}if(n===Yt)for(var i=t;i>0;){i--;var a=A[i];if(Array.isArray(r)?r.indexOf(a)!==-1:r===a)for(var o=t;o<=A.length;){o++;var s=A[o];if(s===e)return!0;if(s!==Yt)break}if(a!==Yt)break}return!1},Qo=function(r,e){for(var t=r;t>=0;){var A=e[t];if(A===Yt)t--;else return A}return 0},su=function(r,e,t,A,n){if(t[A]===0)return ne;var i=A-1;if(Array.isArray(n)&&n[i]===!0)return ne;var s=i-1,a=i+1,o=e[i],l=s>=0?e[s]:0,c=e[a];if(o===uo&&c===po)return ne;if(Yi.indexOf(o)!==-1)return yo;if(Yi.indexOf(c)!==-1||bo.indexOf(c)!==-1)return ne;if(Qo(i,e)===fo)return $r;if(Vi.get(r[i])===Ti||(o===_r||o===qr)&&Vi.get(r[a])===Ti||o===go||c===go||o===mo||[Yt,Li,ZA].indexOf(o)===-1&&c===mo||[Jr,$A,Zh,EA,UA].indexOf(c)!==-1||Qo(i,e)===er||Wi(Ni,er,i,e)||Wi([Jr,$A],Pi,i,e)||Wi(wo,wo,i,e))return ne;if(o===Yt)return $r;if(o===Ni||c===Ni)return ne;if(c===Di||o===Di)return $r;if([Li,ZA,Pi].indexOf(c)!==-1||o===jh||l===Ki&&nu.indexOf(o)!==-1||o===UA&&c===Ki||c===Bo||Ut.indexOf(c)!==-1&&o===_e||Ut.indexOf(o)!==-1&&c===_e||o===Ar&&[rr,_r,qr].indexOf(c)!==-1||[rr,_r,qr].indexOf(o)!==-1&&c===tr||Ut.indexOf(o)!==-1&&Co.indexOf(c)!==-1||Co.indexOf(o)!==-1&&Ut.indexOf(c)!==-1||[Ar,tr].indexOf(o)!==-1&&(c===_e||[er,ZA].indexOf(c)!==-1&&e[a+1]===_e)||[er,ZA].indexOf(o)!==-1&&c===_e||o===_e&&[_e,UA,EA].indexOf(c)!==-1)return ne;if([_e,UA,EA,Jr,$A].indexOf(c)!==-1)for(var d=i;d>=0;){var g=e[d];if(g===_e)return ne;if([UA,EA].indexOf(g)!==-1)d--;else break}if([Ar,tr].indexOf(c)!==-1)for(var d=[Jr,$A].indexOf(o)!==-1?s:i;d>=0;){var g=e[d];if(g===_e)return ne;if([UA,EA].indexOf(g)!==-1)d--;else break}if(zi===o&&[zi,jr,Oi,Ri].indexOf(c)!==-1||[jr,Oi].indexOf(o)!==-1&&[jr,Zr].indexOf(c)!==-1||[Zr,Ri].indexOf(o)!==-1&&c===Zr||xo.indexOf(o)!==-1&&[Bo,tr].indexOf(c)!==-1||xo.indexOf(c)!==-1&&o===Ar||Ut.indexOf(o)!==-1&&Ut.indexOf(c)!==-1||o===EA&&Ut.indexOf(c)!==-1||Ut.concat(_e).indexOf(o)!==-1&&c===er&&Au.indexOf(r[a])===-1||Ut.concat(_e).indexOf(c)!==-1&&o===$A)return ne;if(o===Gi&&c===Gi){for(var p=t[i],m=1;p>0&&(p--,e[p]===Gi);)m++;if(m%2!==0)return ne}return o===_r&&c===qr?ne:$r},au=function(r,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=iu(r,e.lineBreak),A=t[0],n=t[1],i=t[2];(e.wordBreak==="break-all"||e.wordBreak==="break-word")&&(n=n.map(function(a){return[_e,cA,vo].indexOf(a)!==-1?rr:a}));var s=e.wordBreak==="keep-all"?i.map(function(a,o){return a&&r[o]>=19968&&r[o]<=40959}):void 0;return[A,n,s]},ou=function(){function r(e,t,A,n){this.codePoints=e,this.required=t===yo,this.start=A,this.end=n}return r.prototype.slice=function(){return Ce.apply(void 0,this.codePoints.slice(this.start,this.end))},r}(),lu=function(r,e){var t=Vr(r),A=au(t,e),n=A[0],i=A[1],s=A[2],a=t.length,o=0,l=0;return{next:function(){if(l>=a)return{done:!0,value:null};for(var c=ne;l<a&&(c=su(t,i,n,++l,s))===ne;);if(c!==ne||l===a){var d=new ou(t,c,o,l);return o=l,{value:d,done:!1}}return{done:!0,value:null}}}};const cu=1,du=2,FA=4,Eo=8,en=10,Uo=47,nr=92,hu=9,uu=32,tn=34,ir=61,pu=35,gu=36,fu=37,An=39,rn=40,sr=41,mu=95,Ve=45,wu=33,Bu=60,vu=62,yu=64,bu=91,Cu=93,xu=61,Qu=123,nn=63,Eu=125,Fo=124,Uu=126,Fu=128,Io=65533,Xi=42,dA=43,Iu=44,Su=58,Mu=59,ar=46,ku=0,Hu=8,Tu=11,Lu=14,Du=31,Pu=127,gt=-1,So=48,Mo=97,ko=101,Nu=102,Ou=117,Ru=122,Ho=65,To=69,Lo=70,Ku=85,zu=90,Oe=r=>r>=So&&r<=57,Gu=r=>r>=55296&&r<=57343,IA=r=>Oe(r)||r>=Ho&&r<=Lo||r>=Mo&&r<=Nu,Vu=r=>r>=Mo&&r<=Ru,Yu=r=>r>=Ho&&r<=zu,Wu=r=>Vu(r)||Yu(r),Xu=r=>r>=Fu,sn=r=>r===en||r===hu||r===uu,an=r=>Wu(r)||Xu(r)||r===mu,Do=r=>an(r)||Oe(r)||r===Ve,Ju=r=>r>=ku&&r<=Hu||r===Tu||r>=Lu&&r<=Du||r===Pu,Wt=(r,e)=>r!==nr?!1:e!==en,on=(r,e,t)=>r===Ve?an(e)||Wt(e,t):an(r)?!0:!!(r===nr&&Wt(r,e)),Ji=(r,e,t)=>r===dA||r===Ve?Oe(e)?!0:e===ar&&Oe(t):Oe(r===ar?e:r),_u=r=>{let e=0,t=1;(r[e]===dA||r[e]===Ve)&&(r[e]===Ve&&(t=-1),e++);const A=[];for(;Oe(r[e]);)A.push(r[e++]);const n=A.length?parseInt(Ce(...A),10):0;r[e]===ar&&e++;const i=[];for(;Oe(r[e]);)i.push(r[e++]);const s=i.length,a=s?parseInt(Ce(...i),10):0;(r[e]===To||r[e]===ko)&&e++;let o=1;(r[e]===dA||r[e]===Ve)&&(r[e]===Ve&&(o=-1),e++);const l=[];for(;Oe(r[e]);)l.push(r[e++]);const c=l.length?parseInt(Ce(...l),10):0;return t*(n+a*Math.pow(10,-s))*Math.pow(10,o*c)},qu={type:2},ju={type:3},Zu={type:4},$u={type:13},ep={type:8},tp={type:21},Ap={type:9},rp={type:10},np={type:11},ip={type:12},sp={type:14},ln={type:23},ap={type:1},op={type:25},lp={type:24},cp={type:26},dp={type:27},hp={type:28},up={type:29},pp={type:31},_i={type:32};class Po{constructor(){this._value=[]}write(e){this._value=this._value.concat(Vr(e))}read(){const e=[];let t=this.consumeToken();for(;t!==_i;)e.push(t),t=this.consumeToken();return e}consumeToken(){const e=this.consumeCodePoint();switch(e){case tn:return this.consumeStringToken(tn);case pu:const t=this.peekCodePoint(0),A=this.peekCodePoint(1),n=this.peekCodePoint(2);if(Do(t)||Wt(A,n)){const p=on(t,A,n)?du:cu;return{type:5,value:this.consumeName(),flags:p}}break;case gu:if(this.peekCodePoint(0)===ir)return this.consumeCodePoint(),$u;break;case An:return this.consumeStringToken(An);case rn:return qu;case sr:return ju;case Xi:if(this.peekCodePoint(0)===ir)return this.consumeCodePoint(),sp;break;case dA:if(Ji(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case Iu:return Zu;case Ve:const i=e,s=this.peekCodePoint(0),a=this.peekCodePoint(1);if(Ji(i,s,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(on(i,s,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(s===Ve&&a===vu)return this.consumeCodePoint(),this.consumeCodePoint(),lp;break;case ar:if(Ji(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case Uo:if(this.peekCodePoint(0)===Xi)for(this.consumeCodePoint();;){let p=this.consumeCodePoint();if(p===Xi&&(p=this.consumeCodePoint(),p===Uo))return this.consumeToken();if(p===gt)return this.consumeToken()}break;case Su:return cp;case Mu:return dp;case Bu:if(this.peekCodePoint(0)===wu&&this.peekCodePoint(1)===Ve&&this.peekCodePoint(2)===Ve)return this.consumeCodePoint(),this.consumeCodePoint(),op;break;case yu:const o=this.peekCodePoint(0),l=this.peekCodePoint(1),c=this.peekCodePoint(2);if(on(o,l,c))return{type:7,value:this.consumeName()};break;case bu:return hp;case nr:if(Wt(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case Cu:return up;case xu:if(this.peekCodePoint(0)===ir)return this.consumeCodePoint(),ep;break;case Qu:return np;case Eu:return ip;case Ou:case Ku:const d=this.peekCodePoint(0),g=this.peekCodePoint(1);return d===dA&&(IA(g)||g===nn)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case Fo:if(this.peekCodePoint(0)===ir)return this.consumeCodePoint(),Ap;if(this.peekCodePoint(0)===Fo)return this.consumeCodePoint(),tp;break;case Uu:if(this.peekCodePoint(0)===ir)return this.consumeCodePoint(),rp;break;case gt:return _i}return sn(e)?(this.consumeWhiteSpace(),pp):Oe(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):an(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:Ce(e)}}consumeCodePoint(){const e=this._value.shift();return typeof e>"u"?-1:e}reconsumeCodePoint(e){this._value.unshift(e)}peekCodePoint(e){return e>=this._value.length?-1:this._value[e]}consumeUnicodeRangeToken(){const e=[];let t=this.consumeCodePoint();for(;IA(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();let A=!1;for(;t===nn&&e.length<6;)e.push(t),t=this.consumeCodePoint(),A=!0;if(A){const i=parseInt(Ce(...e.map(a=>a===nn?So:a)),16),s=parseInt(Ce(...e.map(a=>a===nn?Lo:a)),16);return{type:30,start:i,end:s}}const n=parseInt(Ce(...e),16);if(this.peekCodePoint(0)===Ve&&IA(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();const i=[];for(;IA(t)&&i.length<6;)i.push(t),t=this.consumeCodePoint();const s=parseInt(Ce(...i),16);return{type:30,start:n,end:s}}else return{type:30,start:n,end:n}}consumeIdentLikeToken(){const e=this.consumeName();return e.toLowerCase()==="url"&&this.peekCodePoint(0)===rn?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===rn?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}}consumeUrlToken(){const e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===gt)return{type:22,value:""};const t=this.peekCodePoint(0);if(t===An||t===tn){const A=this.consumeStringToken(this.consumeCodePoint());return A.type===0&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===gt||this.peekCodePoint(0)===sr)?(this.consumeCodePoint(),{type:22,value:A.value}):(this.consumeBadUrlRemnants(),ln)}for(;;){const A=this.consumeCodePoint();if(A===gt||A===sr)return{type:22,value:Ce(...e)};if(sn(A))return this.consumeWhiteSpace(),this.peekCodePoint(0)===gt||this.peekCodePoint(0)===sr?(this.consumeCodePoint(),{type:22,value:Ce(...e)}):(this.consumeBadUrlRemnants(),ln);if(A===tn||A===An||A===rn||Ju(A))return this.consumeBadUrlRemnants(),ln;if(A===nr)if(Wt(A,this.peekCodePoint(0)))e.push(this.consumeEscapedCodePoint());else return this.consumeBadUrlRemnants(),ln;else e.push(A)}}consumeWhiteSpace(){for(;sn(this.peekCodePoint(0));)this.consumeCodePoint()}consumeBadUrlRemnants(){for(;;){const e=this.consumeCodePoint();if(e===sr||e===gt)return;Wt(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}}consumeStringSlice(e){let A="";for(;e>0;){const n=Math.min(5e4,e);A+=Ce(...this._value.splice(0,n)),e-=n}return this._value.shift(),A}consumeStringToken(e){let t="",A=0;do{const n=this._value[A];if(n===gt||n===void 0||n===e)return t+=this.consumeStringSlice(A),{type:0,value:t};if(n===en)return this._value.splice(0,A),ap;if(n===nr){const i=this._value[A+1];i!==gt&&i!==void 0&&(i===en?(t+=this.consumeStringSlice(A),A=-1,this._value.shift()):Wt(n,i)&&(t+=this.consumeStringSlice(A),t+=Ce(this.consumeEscapedCodePoint()),A=-1))}A++}while(!0)}consumeNumber(){const e=[];let t=FA,A=this.peekCodePoint(0);for((A===dA||A===Ve)&&e.push(this.consumeCodePoint());Oe(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0);let n=this.peekCodePoint(1);if(A===ar&&Oe(n))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=Eo;Oe(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0),n=this.peekCodePoint(1);const i=this.peekCodePoint(2);if((A===To||A===ko)&&((n===dA||n===Ve)&&Oe(i)||Oe(n)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=Eo;Oe(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[_u(e),t]}consumeNumericToken(){const[e,t]=this.consumeNumber(),A=this.peekCodePoint(0),n=this.peekCodePoint(1),i=this.peekCodePoint(2);if(on(A,n,i)){const s=this.consumeName();return{type:15,number:e,flags:t,unit:s}}return A===fu?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}}consumeEscapedCodePoint(){const e=this.consumeCodePoint();if(IA(e)){let t=Ce(e);for(;IA(this.peekCodePoint(0))&&t.length<6;)t+=Ce(this.consumeCodePoint());sn(this.peekCodePoint(0))&&this.consumeCodePoint();const A=parseInt(t,16);return A===0||Gu(A)||A>1114111?Io:A}return e===gt?Io:e}consumeName(){let e="";for(;;){const t=this.consumeCodePoint();if(Do(t))e+=Ce(t);else if(Wt(t,this.peekCodePoint(0)))e+=Ce(this.consumeEscapedCodePoint());else return this.reconsumeCodePoint(t),e}}}let No=class bi{constructor(e){this._tokens=e}static create(e){const t=new Po;return t.write(e),new bi(t.read())}static parseValue(e){return bi.create(e).parseComponentValue()}static parseValues(e){return bi.create(e).parseComponentValues()}parseComponentValue(){let e=this.consumeToken();for(;e.type===31;)e=this.consumeToken();if(e.type===32)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);const t=this.consumeComponentValue();do e=this.consumeToken();while(e.type===31);if(e.type===32)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")}parseComponentValues(){const e=[];for(;;){const t=this.consumeComponentValue();if(t.type===32)return e;e.push(t),e.push()}}consumeComponentValue(){const e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e}consumeSimpleBlock(e){const t={type:e,values:[]};let A=this.consumeToken();for(;;){if(A.type===32||fp(A,e))return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue()),A=this.consumeToken()}}consumeFunction(e){const t={name:e.value,values:[],type:18};for(;;){const A=this.consumeToken();if(A.type===32||A.type===3)return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue())}}consumeToken(){const e=this._tokens.shift();return typeof e>"u"?_i:e}reconsumeToken(e){this._tokens.unshift(e)}};const ft=r=>r.type===15,Ee=r=>r.type===17,te=r=>r.type===20,gp=r=>r.type===0,or=(r,e)=>te(r)&&r.value===e,cn=r=>r.type!==31,Le=r=>r.type!==31&&r.type!==4,lt=r=>{const e=[];let t=[];return r.forEach(A=>{if(A.type===4){if(t.length===0)throw new Error("Error parsing function args, zero tokens for arg");e.push(t),t=[];return}A.type!==31&&t.push(A)}),t.length&&e.push(t),e},fp=(r,e)=>e===11&&r.type===12||e===28&&r.type===29?!0:e===2&&r.type===3,ye=(r,e,t)=>Math.min(Math.max(r,e),t),Ye=(r,e)=>[r[0]*e[0]+r[1]*e[1]+r[2]*e[2],r[3]*e[0]+r[4]*e[1]+r[5]*e[2],r[6]*e[0]+r[7]*e[1]+r[8]*e[2]],Xt=r=>Ye([3.2409699419045226,-1.537383177570094,-.4986107602930034,-.9692436362808796,1.8759675015077202,.04155505740717559,.05563007969699366,-.20397695888897652,1.0569715142428786],r),qi=r=>Ye([.41239079926595934,.357584339383878,.1804807884018343,.21263900587151027,.715168678767756,.07219231536073371,.01933081871559182,.11919477979462598,.9505321522496607],r),hA=r=>r.map(e=>{const t=e<0?-1:1,A=Math.abs(e);return A>.0031308?t*(1.055*A**(1/2.4)-.055):12.92*e}),ji=r=>r.map(e=>{const t=e<0?-1:1,A=Math.abs(e);return A<=.04045?e/12.92:t*((A+.055)/1.055)**2.4}),mp=r=>{const[e,t,A]=hA(Xt([r[0],r[1],r[2]]));return[e,t,A,r[3]]},wp=r=>{const[e,t,A]=Xt([r[0],r[1],r[2]]);return[ye(Math.round(e*255),0,255),ye(Math.round(t*255),0,255),ye(Math.round(A*255),0,255),r[3]]},Jt=r=>r.type===17||r.type===15,le=r=>r.type===16||Jt(r),Bp=r=>r.type===18&&r.name==="calc",vp=(r,e=0)=>{const t=A=>{let n="";for(const i of A)if(i.type!==31){if(i.type===18)if(i.name==="calc"){const s=t(i.values);if(s===null)return null;n+=`(${s})`}else return null;else if(i.type===17)n+=i.number.toString();else if(i.type===15)i.unit==="px"?n+=i.number.toString():i.unit==="rem"||i.unit==="em"?n+=(i.number*16).toString():n+=i.number.toString();else if(i.type===16)n+=(i.number/100*e).toString();else if(i.type===6){const s=i.value;s==="+"||s==="-"||s==="*"||s==="/"?n+=` ${s} `:s==="("?n+="(":s===")"&&(n+=")")}}return n};try{const A=t(r.values);if(A===null||A.trim()==="")return null;const n=new Function("return "+A)();if(typeof n=="number"&&!isNaN(n))return{type:17,number:n,flags:FA}}catch{return null}return null},Oo=r=>r.length>1?[r[0],r[1]]:[r[0]],Ue={type:17,number:0,flags:FA},uA={type:16,number:50,flags:FA},mt={type:16,number:100,flags:FA},lr=(r,e,t)=>{const[A,n]=r;return[ee(A,e),ee(typeof n<"u"?n:A,t)]},ee=(r,e)=>{if(r.type===16)return r.number/100*e;if(ft(r))switch(r.unit){case"rem":case"em":return 16*r.number;case"px":default:return r.number}return r.number},Ro="deg",Ko="grad",zo="rad",Go="turn",SA={name:"angle",parse:(r,e)=>{if(e.type===15)switch(e.unit){case Ro:return Math.PI*e.number/180;case Ko:return Math.PI/200*e.number;case zo:return e.number;case Go:return Math.PI*2*e.number}throw new Error("Unsupported angle type")}},Vo=r=>r.type===15&&(r.unit===Ro||r.unit===Ko||r.unit===zo||r.unit===Go),Yo=r=>{switch(r.filter(te).map(t=>t.value).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Ue,Ue];case"to top":case"bottom":return tt(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Ue,mt];case"to right":case"left":return tt(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[mt,mt];case"to bottom":case"top":return tt(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[mt,Ue];case"to left":case"right":return tt(270)}return 0},tt=r=>Math.PI*r/180,_t=r=>(255&r)===0,he=r=>{const e=255&r,t=255&r>>8,A=255&r>>16,n=255&r>>24;return e<255?`rgba(${n},${A},${t},${e/255})`:`rgb(${n},${A},${t})`},ct=(r,e,t,A)=>(r<<24|e<<16|t<<8|Math.round(A*255)<<0)>>>0,qt=(r,e)=>{if(r.type===17)return r.number;if(r.type===16){const t=e===3?1:255;return e===3?r.number/100*t:Math.round(r.number/100*t)}return 0},pA=r=>(r[0].type===20?r[0].value:"unknown")==="from",yp=r=>ct(ye(Math.round(r[0]*255),0,255),ye(Math.round(r[1]*255),0,255),ye(Math.round(r[2]*255),0,255),ye(r[3],0,1)),Zi=([r,e,t,A])=>{const n=hA([r,e,t]);return ct(ye(Math.round(n[0]*255),0,255),ye(Math.round(n[1]*255),0,255),ye(Math.round(n[2]*255),0,255),A)},cr=r=>{const e=Xt([r[0],r[1],r[2]]);return Zi([e[0],e[1],e[2],r[3]])},bp=(r,e)=>{if(pA(e.filter(Le)))throw new Error("Relative color not supported for lab()");const[t,A,n,i]=dn(e),s=hA(Xt(pn([t,A,n])));return ct(ye(Math.round(s[0]*255),0,255),ye(Math.round(s[1]*255),0,255),ye(Math.round(s[2]*255),0,255),i)},Cp=(r,e)=>{if(pA(e.filter(Le)))throw new Error("Relative color not supported for oklab()");const[t,A,n,i]=dn(e),s=hA(Xt(un([t,A,n])));return ct(ye(Math.round(s[0]*255),0,255),ye(Math.round(s[1]*255),0,255),ye(Math.round(s[2]*255),0,255),i)},xp=(r,e)=>{if(pA(e.filter(Le)))throw new Error("Relative color not supported for oklch()");const[t,A,n,i]=_o(e),s=hA(Xt(un(hn([t,A,n]))));return ct(ye(Math.round(s[0]*255),0,255),ye(Math.round(s[1]*255),0,255),ye(Math.round(s[2]*255),0,255),i)},Qp=(r,e)=>{if(pA(e.filter(Le)))throw new Error("Relative color not supported for lch()");const[t,A,n,i]=Jo(e),s=hA(Xt(pn(hn([t,A,n]))));return ct(ye(Math.round(s[0]*255),0,255),ye(Math.round(s[1]*255),0,255),ye(Math.round(s[2]*255),0,255),i)},Wo=(r,e)=>{const t=e.filter(Le),[A,n,i,s]=t,a=(A.type===17?tt(A.number):SA.parse(r,A))/(Math.PI*2),o=le(n)?n.number/100:0,l=le(i)?i.number/100:0,c=typeof s<"u"&&le(s)?ee(s,1):1;return[a,o,l,c]},Xo=(r,e)=>{if(pA(e))throw new Error("Relative color not supported for hsl()");const[t,A,n,i]=Wo(r,e),s=jo([t,A,n]);return ct(s[0]*255,s[1]*255,s[2]*255,A===0?1:i)},Jo=r=>{const e=r.filter(Le),t=le(e[0])?e[0].number:0,A=le(e[1])?e[1].number:0,n=Ee(e[2])||ft(e[2])?e[2].number:0,i=typeof e[4]<"u"&&le(e[4])?ee(e[4],1):1;return[t,A,n,i]},dn=r=>{const e=r.filter(Le),t=e[0].type===16?e[0].number/100:Ee(e[0])?e[0].number:0,A=e[1].type===16?e[1].number/100:Ee(e[1])?e[1].number:0,n=Ee(e[2])||ft(e[2])?e[2].number:0,i=typeof e[4]<"u"&&le(e[4])?ee(e[4],1):1;return[t,A,n,i]},_o=r=>{const e=r.filter(Le),t=e[0].type===16?e[0].number/100:Ee(e[0])?e[0].number:0,A=e[1].type===16?e[1].number/100:Ee(e[1])?e[1].number:0,n=Ee(e[2])||ft(e[2])?e[2].number:0,i=typeof e[4]<"u"&&le(e[4])?ee(e[4],1):1;return[t,A,n,i]},qo=r=>Ye([1.0479297925449969,.022946870601609652,-.05019226628920524,.02962780877005599,.9904344267538799,-.017073799063418826,-.009243040646204504,.015055191490298152,.7518742814281371],r),$i=r=>Ye([.955473421488075,-.02309845494876471,.06325924320057072,-.0283697093338637,1.0099953980813041,.021041441191917323,.012314014864481998,-.020507649298898964,1.330365926242124],r),es=(r,e,t)=>(t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-r)*t*6+r:t<1/2?e:t<2/3?(e-r)*6*(2/3-t)+r:r),jo=([r,e,t])=>{if(e===0)return[t*255,t*255,t*255];const A=t<=.5?t*(e+1):t+e-t*e,n=t*2-A,i=es(n,A,r+1/3),s=es(n,A,r),a=es(n,A,r-1/3);return[i,s,a]},hn=([r,e,t])=>(e<0&&(e=0),isNaN(t)&&(t=0),[r,e*Math.cos(t*Math.PI/180),e*Math.sin(t*Math.PI/180)]),un=r=>{const e=Ye([1,.3963377773761749,.2158037573099136,1,-.1055613458156586,-.0638541728258133,1,-.0894841775298119,-1.2914855480194092],r),t=e.map(A=>A**3);return Ye([1.2268798758459243,-.5578149944602171,.2813910456659647,-.0405757452148008,1.112286803280317,-.0717110580655164,-.0763729366746601,-.4214933324022432,1.5869240198367816],t)},pn=r=>{const e=(r[0]+16)/116,t=r[1]/500+e,A=e-r[2]/200,n=24389/27,i=24/116,s=[(t>i?t**3:(116*t-16)/n)*.3457/.3585,r[0]>8?e**3:r[0]/n,(A>i?A**3:(116*A-16)/n)*(1-.3457-.3585)/.3585];return $i([s[0],s[1],s[2]])},Ep=(r,e)=>{const t=e.filter(Le);if(t.length===3){const[A,n,i]=t.map(qt),s=ji([A/255,n/255,i/255]),[a,o,l]=qi([s[0],s[1],s[2]]);return[a,o,l,1]}if(t.length===4){const[A,n,i,s]=t.map(qt),a=ji([A/255,n/255,i/255]),[o,l,c]=qi([a[0],a[1],a[2]]);return[o,l,c,s]}return[0,0,0,1]},Up=(r,e)=>{const[t,A,n,i]=Wo(r,e),s=ji(jo([t,A,n])),[a,o,l]=qi([s[0],s[1],s[2]]);return[a,o,l,i]},Fp=(r,e)=>{const[t,A,n,i]=dn(e),[s,a,o]=pn([t,A,n]);return[s,a,o,i]},Ip=(r,e)=>{const[t,A,n,i]=Jo(e),[s,a,o]=pn(hn([t,A,n]));return[s,a,o,i]},Sp=(r,e)=>{const[t,A,n,i]=_o(e),[s,a,o]=un(hn([t,A,n]));return[s,a,o,i]},Mp=(r,e)=>{const[t,A,n,i]=dn(e),[s,a,o]=un([t,A,n]);return[s,a,o,i]},kp=r=>$i([r[0],r[1],r[2]]),Zo=r=>r,Hp=r=>{const[e,t,A]=qo([r[0],r[2],r[3]]);return[e,t,A,r[3]]},$o=r=>cr([r[0],r[1],r[2],r[3]]),Tp=r=>{const e=kp([r[0],r[1],r[2]]);return cr([e[0],e[1],e[2],r[3]])},Lp=r=>Ye([.4865709486482162,.26566769316909306,.1982172852343625,.2289745640697488,.6917385218365064,.079286914093745,0,.04511338185890264,1.043944368900976],r),Dp=r=>Ye([2.493496911941425,-.9313836179191239,-.40271078445071684,-.8294889695615747,1.7626640603183463,.023624685841943577,.03584583024378447,-.07617238926804182,.9568845240076872],r),Pp=r=>r.map(e=>{const t=e<0?-1:1;return e*t<=.04045?e/12.92:t*((e+.055)/1.055)**2.4||0}),Np=r=>hA(r),Op=r=>{const e=Pp([r[0],r[1],r[2]]);return Lp([e[0],e[1],e[2]])},Rp=r=>{const[e,t,A]=Np(Dp([r[0],r[1],r[2]]));return[e,t,A,r[3]]},Kp=r=>{const e=Op([r[0],r[1],r[2]]);return cr([e[0],e[1],e[2],r[3]])},zp=r=>Ye([2.0415879038107465,-.5650069742788596,-.34473135077832956,-.9692436362808795,1.8759675015077202,.04155505740717557,.013444280632031142,-.11836239223101838,1.0151749943912054],r),Gp=r=>Ye([.5766690429101305,.1855582379065463,.1882286462349947,.29734497525053605,.6273635662554661,.0752914584939978,.02703136138641234,.07068885253582723,.9913375368376388],r),Vp=r=>{const e=r.map(t=>{const A=t<0?-1:1,n=Math.abs(t);return A*n**2.19921875});return[e[0],e[1],e[2]]},Yp=r=>{const e=r.map(t=>{const A=t<0?-1:1,n=Math.abs(t);return A*n**.4547069271758437});return[e[0],e[1],e[2]]},Wp=r=>{const[e,t,A]=Yp(zp([r[0],r[1],r[2]]));return[e,t,A,r[3]]},Xp=r=>{const e=Xt(Gp(Vp([r[0],r[1],r[2]])));return Zi([e[0],e[1],e[2],r[3]])},Jp=r=>Ye([.7977666449006423,.13518129740053308,.0313477341283922,.2880748288194013,.711835234241873,8993693872564e-17,0,0,.8251046025104602],r),_p=r=>Ye([1.3457868816471583,-.25557208737979464,-.05110186497554526,-.5446307051249019,1.5082477428451468,.02052744743642139,0,0,1.2119675456389452],r),qp=r=>r.map(e=>e<16/512?e/16:e**1.8),jp=r=>r.map(e=>e>1/512?e**(1/1.8):e*16),Zp=r=>{const e=qp([r[0],r[1],r[2]]);return $i(Jp([e[0],e[1],e[2]]))},$p=r=>{const[e,t,A]=jp(_p(qo([r[0],r[1],r[2]])));return[e,t,A,r[3]]},eg=r=>{const e=Zp([r[0],r[1],r[2]]);return cr([e[0],e[1],e[2],r[3]])},gn=1.09929682680944,e0=.018053968510807,tg=r=>r.map(function(e){return e<e0*4.5?e/4.5:Math.pow((e+gn-1)/gn,1/.45)}),Ag=r=>r.map(function(e){return e>=e0?gn*Math.pow(e,.45)-(gn-1):4.5*e}),rg=r=>Ye([.6369580483012914,.14461690358620832,.1688809751641721,.2627002120112671,.6779980715188708,.05930171646986196,0,.028072693049087428,1.060985057710791],r),ng=r=>Ye([1.716651187971268,-.355670783776392,-.25336628137366,-.666684351832489,1.616481236634939,.0157685458139111,.017639857445311,-.042770613257809,.942103121235474],r),ig=r=>{const e=tg([r[0],r[1],r[2]]);return rg([e[0],e[1],e[2]])},sg=r=>{const[e,t,A]=Ag(ng([r[0],r[1],r[2]]));return[e,t,A,r[3]]},ag=r=>{const e=ig([r[0],r[1],r[2]]);return cr([e[0],e[1],e[2],r[3]])},jt={name:"color",parse:(r,e)=>{if(e.type===18){const t=dg[e.name];if(typeof t>"u")throw new Error(`Attempting to parse an unsupported color function "${e.name}"`);return t(r,e.values)}if(e.type===5){const[t,A,n,i]=t0(e);return ct(t,A,n,i)}if(e.type===20){const t=wt[e.value.toUpperCase()];if(typeof t<"u")return t}return wt.TRANSPARENT}},t0=r=>{if(r.value.length===3){const e=r.value.substring(0,1),t=r.value.substring(1,2),A=r.value.substring(2,3);return[parseInt(e+e,16),parseInt(t+t,16),parseInt(A+A,16),1]}if(r.value.length===4){const e=r.value.substring(0,1),t=r.value.substring(1,2),A=r.value.substring(2,3),n=r.value.substring(3,4);return[parseInt(e+e,16),parseInt(t+t,16),parseInt(A+A,16),parseInt(n+n,16)/255]}if(r.value.length===6){const e=r.value.substring(0,2),t=r.value.substring(2,4),A=r.value.substring(4,6);return[parseInt(e,16),parseInt(t,16),parseInt(A,16),1]}if(r.value.length===8){const e=r.value.substring(0,2),t=r.value.substring(2,4),A=r.value.substring(4,6),n=r.value.substring(6,8);return[parseInt(e,16),parseInt(t,16),parseInt(A,16),parseInt(n,16)/255]}return[0,0,0,1]},A0=(r,e)=>{const t=e.filter(Le);if(pA(t))throw new Error("Relative color not supported for rgb()");if(t.length===3){const[A,n,i]=t.map(qt);return ct(A,n,i,1)}if(t.length===4){const[A,n,i,s]=t.map(qt);return ct(A,n,i,s)}if(t.length===5&&t[3].type===6&&t[3].value==="/"){const A=qt(t[0],0),n=qt(t[1],1),i=qt(t[2],2),s=qt(t[4],3);return ct(A,n,i,s)}return 0},og=(r,e)=>{const t=e.filter(Le),A=t[0].type===20?t[0].value:"unknown";if(!pA(t)){const i=A,s=r0[i];if(typeof s>"u")throw new Error(`Attempting to parse an unsupported color space "${i}" for color() function`);const a=Ee(t[1])?t[1].number:0,o=Ee(t[2])?t[2].number:0,l=Ee(t[3])?t[3].number:0,c=t.length>4&&t[4].type===6&&t[4].value==="/"&&Ee(t[5])?t[5].number:1;return s([a,o,l,c])}else{const i=(C,I)=>{if(Ee(I))return I.number;const E=M=>M==="r"||M==="x"?0:M==="g"||M==="y"?1:2;if(te(I)){const M=E(I.value);return C[M]}const F=M=>{const H=M.filter(Le);let L="(";for(const N of H)L+=N.type===18&&N.name==="calc"?F(N.values):Ee(N)?N.number:N.type===6||te(N)?N.value:"";return L+=")",L};if(I.type===18){const M=I.values.filter(Le);if(I.name==="calc"){const H=F(M).replace(/r|x/,C[0].toString()).replace(/g|y/,C[1].toString()).replace(/b|z/,C[2].toString());return new Function("return "+H)()}}return null},s=t[1].type===18?t[1].name:te(t[1])||t[1].type===5?"rgb":"unknown",a=te(t[2])?t[2].value:"unknown";let o=t[1].type===18?t[1].values:te(t[1])?[t[1]]:[];if(te(t[1])){if(typeof wt[t[1].value.toUpperCase()]>"u")throw new Error("Attempting to use unknown color in relative color 'from'");{const I=MA(r,t[1].value),E=255&I,F=255&I>>8,M=255&I>>16;o=[{type:17,number:255&I>>24,flags:1},{type:17,number:M,flags:1},{type:17,number:F,flags:1},{type:17,number:E>1?E/255:E,flags:1}]}}else if(t[1].type===5){const[C,I,E,F]=t0(t[1]);o=[{type:17,number:C,flags:1},{type:17,number:I,flags:1},{type:17,number:E,flags:1},{type:17,number:F>1?F/255:F,flags:1}]}if(o.length===0)throw new Error("Attempting to use unknown color in relative color 'from'");if(a==="unknown")throw new Error("Attempting to use unknown colorspace in relative color 'to'");const l=lg[s],c=cg[a],d=r0[a];if(typeof l>"u")throw new Error(`Attempting to parse an unsupported color space "${s}" for color() function`);if(typeof c>"u")throw new Error(`Attempting to parse an unsupported color space "${a}" for color() function`);const g=l(r,o),p=c(g),m=i(p,t[3]),B=i(p,t[4]),y=i(p,t[5]),x=t.length>6&&t[6].type===6&&t[6].value==="/"&&Ee(t[7])?t[7].number:1;if(m===null||B===null||y===null)throw new Error("Invalid relative color in color() function");return d([m,B,y,x])}},r0={srgb:yp,"srgb-linear":Zi,"display-p3":Kp,"a98-rgb":Xp,"prophoto-rgb":eg,xyz:$o,"xyz-d50":Tp,"xyz-d65":$o,rec2020:ag},lg={rgb:Ep,hsl:Up,lab:Fp,lch:Ip,oklab:Mp,oklch:Sp},cg={srgb:mp,"srgb-linear":wp,"display-p3":Rp,"a98-rgb":Wp,"prophoto-rgb":$p,xyz:Zo,"xyz-d50":Hp,"xyz-d65":Zo,rec2020:sg},dg={hsl:Xo,hsla:Xo,rgb:A0,rgba:A0,lch:Qp,oklch:xp,oklab:Cp,lab:bp,color:og},MA=(r,e)=>jt.parse(r,No.create(e).parseComponentValue()),wt={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},hg={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:(r,e)=>e.map(t=>{if(te(t))switch(t.value){case"padding-box":return 1;case"content-box":return 2}return 0})},ug={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},fn=(r,e)=>{const t=jt.parse(r,e[0]),A=e[1];return A&&le(A)?{color:t,stop:A}:{color:t,stop:null}},n0=(r,e)=>{const t=r[0],A=r[r.length-1];t.stop===null&&(t.stop=Ue),A.stop===null&&(A.stop=mt);const n=[];let i=0;for(let a=0;a<r.length;a++){const o=r[a].stop;if(o!==null){const l=ee(o,e);l>i?n.push(l):n.push(i),i=l}else n.push(null)}let s=null;for(let a=0;a<n.length;a++){const o=n[a];if(o===null)s===null&&(s=a);else if(s!==null){const l=a-s,c=n[s-1],d=(o-c)/(l+1);for(let g=1;g<=l;g++)n[s+g-1]=d*g;s=null}}return r.map(({color:a},o)=>({color:a,stop:Math.max(Math.min(1,n[o]/e),0)}))},pg=(r,e,t)=>{const A=e/2,n=t/2,i=ee(r[0],e)-A,s=n-ee(r[1],t);return(Math.atan2(s,i)+Math.PI*2)%(Math.PI*2)},gg=(r,e,t)=>{const A=typeof r=="number"?r:pg(r,e,t),n=Math.abs(e*Math.sin(A))+Math.abs(t*Math.cos(A)),i=e/2,s=t/2,a=n/2,o=Math.sin(A-Math.PI/2)*a,l=Math.cos(A-Math.PI/2)*a;return[n,i-l,i+l,s-o,s+o]},dt=(r,e)=>Math.sqrt(r*r+e*e),i0=(r,e,t,A,n)=>[[0,0],[0,e],[r,0],[r,e]].reduce((s,a)=>{const[o,l]=a,c=dt(t-o,A-l);return(n?c<s.optimumDistance:c>s.optimumDistance)?{optimumCorner:a,optimumDistance:c}:s},{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner,fg=(r,e,t,A,n)=>{let i=0,s=0;switch(r.size){case 0:r.shape===0?i=s=Math.min(Math.abs(e),Math.abs(e-A),Math.abs(t),Math.abs(t-n)):r.shape===1&&(i=Math.min(Math.abs(e),Math.abs(e-A)),s=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(r.shape===0)i=s=Math.min(dt(e,t),dt(e,t-n),dt(e-A,t),dt(e-A,t-n));else if(r.shape===1){const a=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-A)),[o,l]=i0(A,n,e,t,!0);i=dt(o-e,(l-t)/a),s=a*i}break;case 1:r.shape===0?i=s=Math.max(Math.abs(e),Math.abs(e-A),Math.abs(t),Math.abs(t-n)):r.shape===1&&(i=Math.max(Math.abs(e),Math.abs(e-A)),s=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(r.shape===0)i=s=Math.max(dt(e,t),dt(e,t-n),dt(e-A,t),dt(e-A,t-n));else if(r.shape===1){const a=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-A)),[o,l]=i0(A,n,e,t,!1);i=dt(o-e,(l-t)/a),s=a*i}break}return Array.isArray(r.size)&&(i=ee(r.size[0],A),s=r.size.length===2?ee(r.size[1],n):i),[i,s]},mg=(r,e)=>{let t=tt(180);const A=[];return lt(e).forEach((n,i)=>{if(i===0){const a=n[0];if(a.type===20&&a.value==="to"){t=Yo(n);return}else if(Vo(a)){t=SA.parse(r,a);return}}const s=fn(r,n);A.push(s)}),{angle:t,stops:A,type:1}},mn=(r,e)=>{let t=tt(180);const A=[];return lt(e).forEach((n,i)=>{if(i===0){const a=n[0];if(a.type===20&&["top","left","right","bottom"].indexOf(a.value)!==-1){t=Yo(n);return}else if(Vo(a)){t=(SA.parse(r,a)+tt(270))%tt(360);return}}const s=fn(r,n);A.push(s)}),{angle:t,stops:A,type:1}},wg=(r,e)=>{const t=tt(180),A=[];let n=1;const i=0,s=3,a=[];return lt(e).forEach((o,l)=>{const c=o[0];if(l===0){if(te(c)&&c.value==="linear"){n=1;return}else if(te(c)&&c.value==="radial"){n=2;return}}if(c.type===18){if(c.name==="from"){const d=jt.parse(r,c.values[0]);A.push({stop:Ue,color:d})}else if(c.name==="to"){const d=jt.parse(r,c.values[0]);A.push({stop:mt,color:d})}else if(c.name==="color-stop"){const d=c.values.filter(Le);if(d.length===2){const g=jt.parse(r,d[1]),p=d[0];Ee(p)&&A.push({stop:{type:16,number:p.number*100,flags:p.flags},color:g})}}}}),n===1?{angle:(t+tt(180))%tt(360),stops:A,type:n}:{size:s,shape:i,stops:A,position:a,type:n}},s0="closest-side",a0="farthest-side",o0="closest-corner",l0="farthest-corner",c0="circle",d0="ellipse",h0="cover",u0="contain",Bg=(r,e)=>{let t=0,A=3;const n=[],i=[];return lt(e).forEach((s,a)=>{let o=!0;if(a===0){let l=!1;o=s.reduce((c,d)=>{if(l)if(te(d))switch(d.value){case"center":return i.push(uA),c;case"top":case"left":return i.push(Ue),c;case"right":case"bottom":return i.push(mt),c}else(le(d)||Jt(d))&&i.push(d);else if(te(d))switch(d.value){case c0:return t=0,!1;case d0:return t=1,!1;case"at":return l=!0,!1;case s0:return A=0,!1;case h0:case a0:return A=1,!1;case u0:case o0:return A=2,!1;case l0:return A=3,!1}else if(Jt(d)||le(d))return Array.isArray(A)||(A=[]),A.push(d),!1;return c},o)}if(o){const l=fn(r,s);n.push(l)}}),{size:A,shape:t,stops:n,position:i,type:2}},wn=(r,e)=>{let t=0,A=3;const n=[],i=[];return lt(e).forEach((s,a)=>{let o=!0;if(a===0?o=s.reduce((l,c)=>{if(te(c))switch(c.value){case"center":return i.push(uA),!1;case"top":case"left":return i.push(Ue),!1;case"right":case"bottom":return i.push(mt),!1}else if(le(c)||Jt(c))return i.push(c),!1;return l},o):a===1&&(o=s.reduce((l,c)=>{if(te(c))switch(c.value){case c0:return t=0,!1;case d0:return t=1,!1;case u0:case s0:return A=0,!1;case a0:return A=1,!1;case o0:return A=2,!1;case h0:case l0:return A=3,!1}else if(Jt(c)||le(c))return Array.isArray(A)||(A=[]),A.push(c),!1;return l},o)),o){const l=fn(r,s);n.push(l)}}),{size:A,shape:t,stops:n,position:i,type:2}},vg=r=>r.type===1,yg=r=>r.type===2,ts={name:"image",parse:(r,e)=>{if(e.type===22){const t={url:e.value,type:0};return r.cache.addImage(e.value),t}if(e.type===18){const t=p0[e.name];if(typeof t>"u")throw new Error(`Attempting to parse an unsupported image function "${e.name}"`);return t(r,e.values)}throw new Error(`Unsupported image type ${e.type}`)}};function bg(r){return!(r.type===20&&r.value==="none")&&(r.type!==18||!!p0[r.name])}const p0={"linear-gradient":mg,"-moz-linear-gradient":mn,"-ms-linear-gradient":mn,"-o-linear-gradient":mn,"-webkit-linear-gradient":mn,"radial-gradient":Bg,"-moz-radial-gradient":wn,"-ms-radial-gradient":wn,"-o-radial-gradient":wn,"-webkit-radial-gradient":wn,"-webkit-gradient":wg},Cg={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:(r,e)=>{if(e.length===0)return[];const t=e[0];return t.type===20&&t.value==="none"?[]:e.filter(A=>Le(A)&&bg(A)).map(A=>ts.parse(r,A))}},xg={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:(r,e)=>e.map(t=>{if(te(t))switch(t.value){case"padding-box":return 1;case"content-box":return 2}return 0})},Qg={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:(r,e)=>lt(e).map(t=>t.map(A=>Bp(A)?vp(A,0):le(A)?A:null).filter(A=>A!==null)).map(Oo)},Eg={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:(r,e)=>lt(e).map(t=>t.filter(te).map(A=>A.value).join(" ")).map(Ug)},Ug=r=>{switch(r){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 kA;(function(r){r.AUTO="auto",r.CONTAIN="contain",r.COVER="cover"})(kA||(kA={}));const Fg={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:(r,e)=>lt(e).map(t=>t.filter(Ig))},Ig=r=>te(r)||le(r),Bn=r=>({name:`border-${r}-color`,initialValue:"transparent",prefix:!1,type:3,format:"color"}),Sg=Bn("top"),Mg=Bn("right"),kg=Bn("bottom"),Hg=Bn("left"),vn=r=>({name:`border-radius-${r}`,initialValue:"0 0",prefix:!1,type:1,parse:(e,t)=>Oo(t.filter(le))}),Tg=vn("top-left"),Lg=vn("top-right"),Dg=vn("bottom-right"),Pg=vn("bottom-left"),yn=r=>({name:`border-${r}-style`,initialValue:"solid",prefix:!1,type:2,parse:(e,t)=>{switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}),Ng=yn("top"),Og=yn("right"),Rg=yn("bottom"),Kg=yn("left"),bn=r=>({name:`border-${r}-width`,initialValue:"0",type:0,prefix:!1,parse:(e,t)=>ft(t)?t.number:0}),zg=bn("top"),Gg=bn("right"),Vg=bn("bottom"),Yg=bn("left"),As={type:0},rs=r=>{const[e]=r;return e?te(e)?e.value==="farthest-side"?"farthest-side":"closest-side":le(e)?e:"closest-side":"closest-side"},g0=r=>{let e=null,t=null;for(const A of r)if(te(A))switch(A.value){case"left":e=Ue;break;case"right":e=mt;break;case"top":t=Ue;break;case"bottom":t=mt;break;case"center":e===null?e=uA:t===null&&(t=uA);break}else le(A)&&(e===null?e=A:t===null&&(t=A));return{cx:e??uA,cy:t??uA}},Wg=r=>{const e=[];for(const s of r)if(s.type!==31){if(te(s)&&s.value==="round")break;le(s)&&e.push(s)}const t=e[0]??Ue,A=e[1]??t,n=e[2]??t,i=e[3]??A;return{type:1,top:t,right:A,bottom:n,left:i}},Xg=r=>{const e=r.filter(cn),t=e.findIndex(i=>or(i,"at")),A=t===-1?e:e.slice(0,t),n=t===-1?[]:e.slice(t+1);return{type:2,radius:rs(A),...g0(n)}},Jg=r=>{const e=r.filter(cn),t=e.findIndex(i=>or(i,"at")),A=t===-1?e:e.slice(0,t),n=t===-1?[]:e.slice(t+1);return{type:3,rx:rs(A.slice(0,1)),ry:rs(A.slice(1,2)),...g0(n)}},_g=r=>{const e=lt(r),t=[];for(const A of e){if(A.length===1&&te(A[0]))continue;const n=A.filter(le);n.length>=2&&t.push([n[0],n[1]])}return{type:4,points:t}},qg=r=>{const e=r.find(t=>t.type===0);return e?{type:5,d:e.value}:As},jg={name:"clip-path",initialValue:"none",prefix:!1,type:0,parse:(r,e)=>{if(te(e)&&e.value==="none")return As;if(e.type===18)switch(e.name){case"inset":return Wg(e.values);case"circle":return Xg(e.values);case"ellipse":return Jg(e.values);case"polygon":return _g(e.values);case"path":return qg(e.values)}return As}},Zg={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},$g={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"rtl":return 1;case"ltr":default:return 0}}},e1={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:(r,e)=>e.filter(te).reduce((t,A)=>t|t1(A.value),0)},t1=r=>{switch(r){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},A1={name:"float",initialValue:"none",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},r1={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:(r,e)=>e.type===20&&e.value==="normal"?0:e.type===17||e.type===15?e.number:0};var Cn;(function(r){r.NORMAL="normal",r.STRICT="strict"})(Cn||(Cn={}));const n1={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"strict":return Cn.STRICT;case"normal":default:return Cn.NORMAL}}},i1={name:"line-height",initialValue:"normal",prefix:!1,type:4},f0=(r,e)=>te(r)&&r.value==="normal"?1.2*e:r.type===17?e*r.number:le(r)?ee(r,e):e,s1={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:(r,e)=>e.type===20&&e.value==="none"?null:ts.parse(r,e)},a1={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"inside":return 0;case"outside":default:return 1}}},ns={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:(r,e)=>{switch(e){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}}},xn=r=>({name:`margin-${r}`,initialValue:"0",prefix:!1,type:4}),o1=xn("top"),l1=xn("right"),c1=xn("bottom"),d1=xn("left"),h1={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:(r,e)=>e.filter(te).map(t=>{switch(t.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;case"visible":default:return 0}})},u1={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"break-word":return"break-word";case"normal":default:return"normal"}}},Qn=r=>({name:`padding-${r}`,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}),p1=Qn("top"),g1=Qn("right"),f1=Qn("bottom"),m1=Qn("left"),w1={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"right":return 2;case"center":case"justify":return 1;case"left":default:return 0}}},B1={name:"position",initialValue:"static",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},v1={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:(r,e)=>e.length===1&&or(e[0],"none")?[]:lt(e).map(t=>{const A={color:wt.TRANSPARENT,offsetX:Ue,offsetY:Ue,blur:Ue};let n=0;for(let i=0;i<t.length;i++){const s=t[i];Jt(s)?(n===0?A.offsetX=s:n===1?A.offsetY=s:A.blur=s,n++):A.color=jt.parse(r,s)}return A})},y1={name:"text-transform",initialValue:"none",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"uppercase":return 2;case"lowercase":return 1;case"capitalize":return 3}return 0}},b1={name:"transform",initialValue:"none",prefix:!0,type:0,parse:(r,e)=>{if(e.type===20&&e.value==="none")return null;if(e.type===18){const t=C1[e.name];if(typeof t>"u")throw new Error(`Attempting to parse an unsupported transform function "${e.name}"`);return t(r,e.values)}return null}},C1={matrix:(r,e)=>{const t=e.filter(A=>A.type===17).map(A=>A.number);return t.length===6?t:null},matrix3d:(r,e)=>{const t=e.filter(l=>l.type===17).map(l=>l.number),[A,n,{},{},i,s,{},{},{},{},{},{},a,o]=t;return t.length===16?[A,n,i,s,a,o]:null},rotate:(r,e)=>{if(e.length!==1)return null;const t=e[0];let A=0;if(t.type===17&&t.number===0)A=0;else if(t.type===15)A=SA.parse(r,t);else return null;const n=Math.cos(A),i=Math.sin(A);return[n,i,-i,n,0,0]}},m0={type:16,number:50,flags:FA},x1=[m0,m0],Q1={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:(r,e)=>{const t=e.filter(le);return t.length!==2?x1:[t[0],t[1]]}},E1={name:"rotate",initialValue:"none",prefix:!1,type:0,parse:(r,e)=>e.type===20&&e.value==="none"?null:e.type===17&&e.number===0?0:e.type===15?SA.parse(r,e)*180/Math.PI:null},U1={name:"visible",initialValue:"none",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"hidden":return 1;case"collapse":return 2;case"visible":default:return 0}}};var dr;(function(r){r.NORMAL="normal",r.BREAK_ALL="break-all",r.KEEP_ALL="keep-all"})(dr||(dr={}));const F1={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"break-all":return dr.BREAK_ALL;case"keep-all":return dr.KEEP_ALL;case"normal":default:return dr.NORMAL}}},Bt=r=>r!==0,I1=r=>r===3||r===4,S1={name:"writing-mode",initialValue:"horizontal-tb",prefix:!1,type:2,parse:(r,e)=>{switch(e){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}}},M1={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:(r,e)=>{if(e.type===20)return{auto:!0,order:0};if(Ee(e))return{auto:!1,order:e.number};throw new Error("Invalid z-index number parsed")}},w0={name:"time",parse:(r,e)=>{if(e.type===15)switch(e.unit.toLowerCase()){case"s":return 1e3*e.number;case"ms":return e.number}throw new Error("Unsupported time type")}},k1={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:(r,e)=>Ee(e)?e.number:1},H1={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},T1={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:(r,e)=>e.filter(te).map(t=>{switch(t.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(t=>t!==0)},L1={name:"text-decoration-style",initialValue:"solid",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"double":return 1;case"dotted":return 2;case"dashed":return 3;case"wavy":return 4;case"solid":default:return 0}}},D1={name:"text-decoration-thickness",initialValue:"auto",prefix:!1,type:0,parse:(r,e)=>{if(te(e))switch(e.value){case"auto":return"auto";case"from-font":return"from-font"}return ft(e)?e.number:"auto"}},P1={name:"text-underline-offset",initialValue:"auto",prefix:!1,type:0,parse:(r,e)=>te(e)&&e.value==="auto"?"auto":ft(e)?e.number:"auto"},N1={name:"font-family",initialValue:"",prefix:!1,type:1,parse:(r,e)=>{const t=[],A=[];return e.forEach(n=>{switch(n.type){case 20:case 0:t.push(n.value);break;case 17:t.push(n.number.toString());break;case 4:A.push(t.join(" ")),t.length=0;break}}),t.length&&A.push(t.join(" ")),A.map(n=>n.indexOf(" ")===-1?n:`'${n}'`)}},O1={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},R1={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:(r,e)=>{if(Ee(e))return e.number;if(te(e))switch(e.value){case"bold":return 700;case"normal":default:return 400}return 400}},K1={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:(r,e)=>e.filter(te).map(t=>t.value)},z1={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"oblique":return"oblique";case"italic":return"italic";case"normal":default:return"normal"}}},me=(r,e)=>(r&e)!==0,G1={name:"content",initialValue:"none",type:1,prefix:!1,parse:(r,e)=>{if(e.length===0)return[];const t=e[0];return t.type===20&&t.value==="none"?[]:e}},V1={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:(r,e)=>{if(e.length===0)return null;const t=e[0];if(t.type===20&&t.value==="none")return null;const A=[],n=e.filter(cn);for(let i=0;i<n.length;i++){const s=n[i],a=n[i+1];if(s.type===20){const o=a&&Ee(a)?a.number:1;A.push({counter:s.value,increment:o})}}return A}},Y1={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:(r,e)=>{if(e.length===0)return[];const t=[],A=e.filter(cn);for(let n=0;n<A.length;n++){const i=A[n],s=A[n+1];if(te(i)&&i.value!=="none"){const a=s&&Ee(s)?s.number:0;t.push({counter:i.value,reset:a})}}return t}},W1={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:(r,e)=>e.filter(ft).map(t=>w0.parse(r,t))},X1={name:"quotes",initialValue:"none",prefix:!0,type:1,parse:(r,e)=>{if(e.length===0)return null;const t=e[0];if(t.type===20&&t.value==="none")return null;const A=[],n=e.filter(gp);if(n.length%2!==0)return null;for(let i=0;i<n.length;i+=2){const s=n[i].value,a=n[i+1].value;A.push({open:s,close:a})}return A}},B0=(r,e,t)=>{if(!r)return"";const A=r[Math.min(e,r.length-1)];return A?t?A.open:A.close:""},J1={name:"box-shadow",initialValue:"none",type:1,prefix:!1,parse:(r,e)=>e.length===1&&or(e[0],"none")?[]:lt(e).map(t=>{const A={color:255,offsetX:Ue,offsetY:Ue,blur:Ue,spread:Ue,inset:!1};let n=0;for(let i=0;i<t.length;i++){const s=t[i];or(s,"inset")?A.inset=!0:Jt(s)?(n===0?A.offsetX=s:n===1?A.offsetY=s:n===2?A.blur=s:A.spread=s,n++):A.color=jt.parse(r,s)}return A})},_1={name:"paint-order",initialValue:"normal",prefix:!1,type:1,parse:(r,e)=>{const t=[0,1,2],A=[];return e.filter(te).forEach(n=>{switch(n.value){case"stroke":A.push(1);break;case"fill":A.push(0);break;case"markers":A.push(2);break}}),t.forEach(n=>{A.indexOf(n)===-1&&A.push(n)}),A}},q1={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},j1={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:(r,e)=>ft(e)?e.number:0},Z1={name:"-webkit-line-clamp",initialValue:"none",prefix:!0,type:0,parse:(r,e)=>e.type===20&&e.value==="none"?0:e.type===17?Math.max(0,Math.floor(e.number)):0},$1={name:"objectFit",initialValue:"fill",prefix:!1,type:1,parse:(r,e)=>e.filter(te).reduce((t,A)=>t|ef(A.value),0)},ef=r=>{switch(r){case"contain":return 2;case"cover":return 4;case"none":return 8;case"scale-down":return 16}return 0},tf={name:"text-overflow",initialValue:"clip",prefix:!1,type:2,parse:(r,e)=>{switch(e){case"ellipsis":return 1;case"clip":default:return 0}}};var qe;(function(r){r[r.AUTO=0]="AUTO",r[r.CRISP_EDGES=1]="CRISP_EDGES",r[r.PIXELATED=2]="PIXELATED",r[r.SMOOTH=3]="SMOOTH"})(qe||(qe={}));const Af={name:"image-rendering",initialValue:"auto",prefix:!1,type:2,parse:(r,e)=>{switch(e.toLowerCase()){case"crisp-edges":case"-webkit-crisp-edges":case"-moz-crisp-edges":return qe.CRISP_EDGES;case"pixelated":case"-webkit-optimize-contrast":return qe.PIXELATED;case"smooth":case"high-quality":return qe.SMOOTH;case"auto":default:return qe.AUTO}}};class rf{constructor(e,t){this.animationDuration=R(e,W1,t.animationDuration),this.backgroundClip=R(e,hg,t.backgroundClip),this.backgroundColor=R(e,ug,t.backgroundColor),this.backgroundImage=R(e,Cg,t.backgroundImage),this.backgroundOrigin=R(e,xg,t.backgroundOrigin),this.backgroundPosition=R(e,Qg,t.backgroundPosition),this.backgroundRepeat=R(e,Eg,t.backgroundRepeat),this.backgroundSize=R(e,Fg,t.backgroundSize),this.borderTopColor=R(e,Sg,t.borderTopColor),this.borderRightColor=R(e,Mg,t.borderRightColor),this.borderBottomColor=R(e,kg,t.borderBottomColor),this.borderLeftColor=R(e,Hg,t.borderLeftColor),this.borderTopLeftRadius=R(e,Tg,t.borderTopLeftRadius),this.borderTopRightRadius=R(e,Lg,t.borderTopRightRadius),this.borderBottomRightRadius=R(e,Dg,t.borderBottomRightRadius),this.borderBottomLeftRadius=R(e,Pg,t.borderBottomLeftRadius),this.borderTopStyle=R(e,Ng,t.borderTopStyle),this.borderRightStyle=R(e,Og,t.borderRightStyle),this.borderBottomStyle=R(e,Rg,t.borderBottomStyle),this.borderLeftStyle=R(e,Kg,t.borderLeftStyle),this.borderTopWidth=R(e,zg,t.borderTopWidth),this.borderRightWidth=R(e,Gg,t.borderRightWidth),this.borderBottomWidth=R(e,Vg,t.borderBottomWidth),this.borderLeftWidth=R(e,Yg,t.borderLeftWidth),this.boxShadow=R(e,J1,t.boxShadow),this.clipPath=R(e,jg,t.clipPath),this.color=R(e,Zg,t.color),this.direction=R(e,$g,t.direction),this.display=R(e,e1,t.display),this.float=R(e,A1,t.cssFloat),this.fontFamily=R(e,N1,t.fontFamily),this.fontSize=R(e,O1,t.fontSize),this.fontStyle=R(e,z1,t.fontStyle),this.fontVariant=R(e,K1,t.fontVariant),this.fontWeight=R(e,R1,t.fontWeight),this.letterSpacing=R(e,r1,t.letterSpacing),this.lineBreak=R(e,n1,t.lineBreak),this.lineHeight=R(e,i1,t.lineHeight),this.listStyleImage=R(e,s1,t.listStyleImage),this.listStylePosition=R(e,a1,t.listStylePosition),this.listStyleType=R(e,ns,t.listStyleType),this.marginTop=R(e,o1,t.marginTop),this.marginRight=R(e,l1,t.marginRight),this.marginBottom=R(e,c1,t.marginBottom),this.marginLeft=R(e,d1,t.marginLeft),this.opacity=R(e,k1,t.opacity);const A=R(e,h1,t.overflow);this.overflowX=A[0],this.overflowY=A[A.length>1?1:0],this.overflowWrap=R(e,u1,t.overflowWrap),this.paddingTop=R(e,p1,t.paddingTop),this.paddingRight=R(e,g1,t.paddingRight),this.paddingBottom=R(e,f1,t.paddingBottom),this.paddingLeft=R(e,m1,t.paddingLeft),this.paintOrder=R(e,_1,t.paintOrder),this.position=R(e,B1,t.position),this.textAlign=R(e,w1,t.textAlign),this.textDecorationColor=R(e,H1,t.textDecorationColor??t.color),this.textDecorationLine=R(e,T1,t.textDecorationLine??t.textDecoration),this.textDecorationStyle=R(e,L1,t.textDecorationStyle),this.textDecorationThickness=R(e,D1,t.textDecorationThickness),this.textUnderlineOffset=R(e,P1,t.textUnderlineOffset),this.textShadow=R(e,v1,t.textShadow),this.textTransform=R(e,y1,t.textTransform),this.textOverflow=R(e,tf,t.textOverflow),this.transform=R(e,b1,t.transform),this.transformOrigin=R(e,Q1,t.transformOrigin),this.rotate=R(e,E1,t.rotate),this.visibility=R(e,U1,t.visibility),this.webkitTextStrokeColor=R(e,q1,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=R(e,j1,t.webkitTextStrokeWidth),this.webkitLineClamp=R(e,Z1,t.webkitLineClamp),this.wordBreak=R(e,F1,t.wordBreak),this.writingMode=R(e,S1,t.writingMode),this.zIndex=R(e,M1,t.zIndex),this.objectFit=R(e,$1,t.objectFit),this.imageRendering=R(e,Af,t.imageRendering)}isVisible(){return this.display>0&&this.opacity>0&&this.visibility===0}isTransparent(){return _t(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 me(this.display,4)||me(this.display,33554432)||me(this.display,268435456)||me(this.display,536870912)||me(this.display,67108864)||me(this.display,134217728)}}class nf{constructor(e,t){this.content=R(e,G1,t.content),this.quotes=R(e,X1,t.quotes)}}class v0{constructor(e,t){this.counterIncrement=R(e,V1,t.counterIncrement),this.counterReset=R(e,Y1,t.counterReset)}}const R=(r,e,t)=>{const A=new Po,n=t!==null&&typeof t<"u"?t.toString():e.initialValue;A.write(n);const i=new No(A.read());switch(e.type){case 2:const s=i.parseComponentValue();return e.parse(r,te(s)?s.value:e.initialValue);case 0:return e.parse(r,i.parseComponentValue());case 1:return e.parse(r,i.parseComponentValues());case 4:return i.parseComponentValue();case 3:switch(e.format){case"angle":return SA.parse(r,i.parseComponentValue());case"color":return jt.parse(r,i.parseComponentValue());case"image":return ts.parse(r,i.parseComponentValue());case"length":const a=i.parseComponentValue();return Jt(a)?a:Ue;case"length-percentage":const o=i.parseComponentValue();return le(o)?o:Ue;case"time":return w0.parse(r,i.parseComponentValue())}break}},Ft=r=>r.nodeType===Node.ELEMENT_NODE,y0=r=>r.nodeType===Node.TEXT_NODE,HA=r=>typeof r.className=="object",hr=r=>Ft(r)&&typeof r.style<"u"&&!HA(r),sf=r=>r.tagName==="LI",af=r=>r.tagName==="OL",b0=r=>!HA(r)&&r.tagName.indexOf("-")>0,of="data-html2canvas-debug",lf=r=>{if(typeof r.getAttribute!="function")return 0;switch(r.getAttribute(of)){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}},is=(r,e)=>{const t=lf(r);return t===1||e===t};class C0{static normalizeElement(e,t){const A={};return hr(e)&&(t.animationDuration.some(n=>n>0)&&(A.animationDuration=e.style.animationDuration,e.style.animationDuration="0s"),t.transform!==null&&(A.transform=e.style.transform,e.style.transform="translate(0, 0)"),t.rotate!==null&&(A.rotate=e.style.rotate,e.style.rotate="0deg",A.transform===void 0&&(A.transform=e.style.transform,e.style.transform="translate(0, 0)"))),A}static restoreElement(e,t){hr(e)&&(t.animationDuration!==void 0&&(e.style.animationDuration=t.animationDuration),t.transform!==void 0&&(e.style.transform=t.transform),t.rotate!==void 0&&(e.style.rotate=t.rotate))}}class vt{constructor(e,t,A={}){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,is(t,3),this.styles=new rf(e,e.config.window.getComputedStyle(t,null)),A.normalizeDom!==!1&&hr(t)&&(this.originalStyles=C0.normalizeElement(t,this.styles),this.originalElement=t),this.bounds=Gr(this.context,t),is(t,4)&&(this.flags|=16)}restore(){this.originalStyles&&this.originalElement&&(C0.restoreElement(this.originalElement,this.originalStyles),this.originalStyles=void 0,this.originalElement=void 0)}restoreTree(){this.restore();for(const e of this.elements)e.restoreTree()}}for(var cf="AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=",x0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ur=typeof Uint8Array>"u"?[]:new Uint8Array(256),En=0;En<x0.length;En++)ur[x0.charCodeAt(En)]=En;for(var df=function(r){var e=r.length*.75,t=r.length,A,n=0,i,s,a,o;r[r.length-1]==="="&&(e--,r[r.length-2]==="="&&e--);var l=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(e):new Array(e),c=Array.isArray(l)?l:new Uint8Array(l);for(A=0;A<t;A+=4)i=ur[r.charCodeAt(A)],s=ur[r.charCodeAt(A+1)],a=ur[r.charCodeAt(A+2)],o=ur[r.charCodeAt(A+3)],c[n++]=i<<2|s>>4,c[n++]=(s&15)<<4|a>>2,c[n++]=(a&3)<<6|o&63;return l},hf=function(r){for(var e=r.length,t=[],A=0;A<e;A+=2)t.push(r[A+1]<<8|r[A]);return t},uf=function(r){for(var e=r.length,t=[],A=0;A<e;A+=4)t.push(r[A+3]<<24|r[A+2]<<16|r[A+1]<<8|r[A]);return t},gA=5,ss=11,as=2,pf=ss-gA,Q0=65536>>gA,gf=1<<gA,os=gf-1,ff=1024>>gA,mf=Q0+ff,wf=mf,Bf=32,vf=wf+Bf,yf=65536>>ss,bf=1<<pf,Cf=bf-1,E0=function(r,e,t){return r.slice?r.slice(e,t):new Uint16Array(Array.prototype.slice.call(r,e,t))},xf=function(r,e,t){return r.slice?r.slice(e,t):new Uint32Array(Array.prototype.slice.call(r,e,t))},Qf=function(r,e){var t=df(r),A=Array.isArray(t)?uf(t):new Uint32Array(t),n=Array.isArray(t)?hf(t):new Uint16Array(t),i=24,s=E0(n,i/2,A[4]/2),a=A[5]===2?E0(n,(i+A[4])/2):xf(A,Math.ceil((i+A[4])/4));return new Ef(A[0],A[1],A[2],A[3],s,a)},Ef=function(){function r(e,t,A,n,i,s){this.initialValue=e,this.errorValue=t,this.highStart=A,this.highValueIndex=n,this.index=i,this.data=s}return r.prototype.get=function(e){var t;if(e>=0){if(e<55296||e>56319&&e<=65535)return t=this.index[e>>gA],t=(t<<as)+(e&os),this.data[t];if(e<=65535)return t=this.index[Q0+(e-55296>>gA)],t=(t<<as)+(e&os),this.data[t];if(e<this.highStart)return t=vf-yf+(e>>ss),t=this.index[t],t+=e>>gA&Cf,t=this.index[t],t=(t<<as)+(e&os),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},r}(),U0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Uf=typeof Uint8Array>"u"?[]:new Uint8Array(256),Un=0;Un<U0.length;Un++)Uf[U0.charCodeAt(Un)]=Un;var Ff=1,ls=2,cs=3,F0=4,I0=5,If=7,S0=8,ds=9,hs=10,M0=11,k0=12,H0=13,T0=14,us=15,Sf=function(r){for(var e=[],t=0,A=r.length;t<A;){var n=r.charCodeAt(t++);if(n>=55296&&n<=56319&&t<A){var i=r.charCodeAt(t++);(i&64512)===56320?e.push(((n&1023)<<10)+(i&1023)+65536):(e.push(n),t--)}else e.push(n)}return e},Mf=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,r);var t=r.length;if(!t)return"";for(var A=[],n=-1,i="";++n<t;){var s=r[n];s<=65535?A.push(s):(s-=65536,A.push((s>>10)+55296,s%1024+56320)),(n+1===t||A.length>16384)&&(i+=String.fromCharCode.apply(String,A),A.length=0)}return i},kf=Qf(cf),At="×",ps="÷",Hf=function(r){return kf.get(r)},Tf=function(r,e,t){var A=t-2,n=e[A],i=e[t-1],s=e[t];if(i===ls&&s===cs)return At;if(i===ls||i===cs||i===F0||s===ls||s===cs||s===F0)return ps;if(i===S0&&[S0,ds,M0,k0].indexOf(s)!==-1||(i===M0||i===ds)&&(s===ds||s===hs)||(i===k0||i===hs)&&s===hs||s===H0||s===I0||s===If||i===Ff)return At;if(i===H0&&s===T0){for(;n===I0;)n=e[--A];if(n===T0)return At}if(i===us&&s===us){for(var a=0;n===us;)a++,n=e[--A];if(a%2===0)return At}return ps},Lf=function(r){var e=Sf(r),t=e.length,A=0,n=0,i=e.map(Hf);return{next:function(){if(A>=t)return{done:!0,value:null};for(var s=At;A<t&&(s=Tf(e,i,++A))===At;);if(s!==At||A===t){var a=Mf.apply(null,e.slice(n,A));return n=A,{value:a,done:!1}}return{done:!0,value:null}}}},Df=function(r){for(var e=Lf(r),t=[],A;!(A=e.next()).done;)A.value&&t.push(A.value.slice());return t};const Pf=r=>{if(r.createRange){const t=r.createRange();if(t.getBoundingClientRect){const A=r.createElement("boundtest");A.style.height="123px",A.style.display="block",r.body.appendChild(A),t.selectNode(A);const n=t.getBoundingClientRect(),i=Math.round(n.height);if(r.body.removeChild(A),i===123)return!0}}return!1},Nf=r=>{const e=r.createElement("boundtest");e.style.width="50px",e.style.display="block",e.style.fontSize="12px",e.style.letterSpacing="0px",e.style.wordSpacing="0px",r.body.appendChild(e);const t=r.createRange();e.innerHTML=typeof"".repeat=="function"?"&#128104;".repeat(10):"";const A=e.firstChild,n=Vr(A.data).map(o=>Ce(o));let i=0,s={};const a=n.every((o,l)=>{t.setStart(A,i),t.setEnd(A,i+o.length);const c=t.getBoundingClientRect();i+=o.length;const d=c.x>s.x||c.y>s.y;return s=c,l===0?!0:d});return r.body.removeChild(e),a},Of=()=>typeof new Image().crossOrigin<"u",Rf=()=>typeof new XMLHttpRequest().responseType=="string",Kf=r=>{const e=new Image,t=r.createElement("canvas"),A=t.getContext("2d");if(!A)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{A.drawImage(e,0,0),t.toDataURL()}catch{return!1}return!0},L0=r=>r[0]===0&&r[1]===255&&r[2]===0&&r[3]===255,zf=r=>{const e=r.createElement("canvas"),t=100;e.width=t,e.height=t;const A=e.getContext("2d");if(!A)return Promise.reject(!1);A.fillStyle="rgb(0, 255, 0)",A.fillRect(0,0,t,t);const n=new Image,i=e.toDataURL();n.src=i;const s=gs(t,t,0,0,n);return A.fillStyle="red",A.fillRect(0,0,t,t),D0(s).then(a=>{A.drawImage(a,0,0);const o=A.getImageData(0,0,t,t).data;A.fillStyle="red",A.fillRect(0,0,t,t);const l=r.createElement("div");return l.style.backgroundImage=`url(${i})`,l.style.height=`${t}px`,L0(o)?D0(gs(t,t,0,0,l)):Promise.reject(!1)}).then(a=>(A.drawImage(a,0,0),L0(A.getImageData(0,0,t,t).data))).catch(()=>!1)},gs=(r,e,t,A,n)=>{const i="http://www.w3.org/2000/svg",s=document.createElementNS(i,"svg"),a=document.createElementNS(i,"foreignObject");return s.setAttributeNS(null,"width",r.toString()),s.setAttributeNS(null,"height",e.toString()),a.setAttributeNS(null,"width","100%"),a.setAttributeNS(null,"height","100%"),a.setAttributeNS(null,"x",t.toString()),a.setAttributeNS(null,"y",A.toString()),a.setAttributeNS(null,"externalResourcesRequired","true"),s.appendChild(a),a.appendChild(n),s},D0=r=>new Promise((e,t)=>{const A=new Image;A.onload=()=>e(A),A.onerror=t,A.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(r))}`}),De={get SUPPORT_RANGE_BOUNDS(){const r=Pf(document);return Object.defineProperty(De,"SUPPORT_RANGE_BOUNDS",{value:r}),r},get SUPPORT_WORD_BREAKING(){const r=De.SUPPORT_RANGE_BOUNDS&&Nf(document);return Object.defineProperty(De,"SUPPORT_WORD_BREAKING",{value:r}),r},get SUPPORT_SVG_DRAWING(){const r=Kf(document);return Object.defineProperty(De,"SUPPORT_SVG_DRAWING",{value:r}),r},get SUPPORT_FOREIGNOBJECT_DRAWING(){const r=typeof Array.from=="function"&&typeof window.fetch=="function"?zf(document):Promise.resolve(!1);return Object.defineProperty(De,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:r}),r},get SUPPORT_CORS_IMAGES(){const r=Of();return Object.defineProperty(De,"SUPPORT_CORS_IMAGES",{value:r}),r},get SUPPORT_RESPONSE_TYPE(){const r=Rf();return Object.defineProperty(De,"SUPPORT_RESPONSE_TYPE",{value:r}),r},get SUPPORT_CORS_XHR(){const r="withCredentials"in new XMLHttpRequest;return Object.defineProperty(De,"SUPPORT_CORS_XHR",{value:r}),r},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){const r=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(De,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:r}),r}};class fA{constructor(e,t){this.text=e,this.bounds=t}}const Gf=(r,e,t,A)=>{const n=Wf(e,t),i=[];let s=0;return n.forEach(a=>{if(t.textDecorationLine.length||a.trim().length>0)if(De.SUPPORT_RANGE_BOUNDS){const o=P0(A,s,a.length).getClientRects();if(o.length>1){const l=TA(a);let c=0;l.forEach(d=>{i.push(new fA(d,Ne.fromDOMRectList(r,P0(A,c+s,d.length).getClientRects()))),c+=d.length})}else i.push(new fA(a,Ne.fromDOMRectList(r,o)))}else{const o=A.splitText(a.length);i.push(new fA(a,Vf(r,A))),A=o}else De.SUPPORT_RANGE_BOUNDS||(A=A.splitText(a.length));s+=a.length}),i},Vf=(r,e)=>{const t=e.ownerDocument;if(t){const A=t.createElement("html2canvaswrapper");A.appendChild(e.cloneNode(!0));const n=e.parentNode;if(n){n.replaceChild(A,e);const i=Gr(r,A);return A.firstChild&&n.replaceChild(A.firstChild,A),i}}return Ne.EMPTY},P0=(r,e,t)=>{const A=r.ownerDocument;if(!A)throw new Error("Node has no owner document");const n=A.createRange();return n.setStart(r,e),n.setEnd(r,e+t),n},TA=r=>{if(De.SUPPORT_NATIVE_TEXT_SEGMENTATION){const e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(r)).map(t=>t.segment)}return Df(r)},Yf=(r,e)=>{if(De.SUPPORT_NATIVE_TEXT_SEGMENTATION){const t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(r)).map(A=>A.segment)}return Jf(r,e)},Wf=(r,e)=>Bt(e.writingMode)||e.letterSpacing!==0?TA(r):Yf(r,e),Xf=[32,160,4961,65792,65793,4153,4241],Jf=(r,e)=>{const t=lu(r,{lineBreak:e.lineBreak,wordBreak:e.overflowWrap==="break-word"?"break-word":e.wordBreak}),A=[];let n;for(;!(n=t.next()).done;)if(n.value){const i=n.value.slice(),s=Vr(i);let a="";s.forEach(o=>{Xf.indexOf(o)===-1?a+=Ce(o):(a.length&&A.push(a),A.push(Ce(o)),a="")}),a.length&&A.push(a)}return A};class _f{constructor(e,t,A){this.text=qf(t.data,A.textTransform),this.text.length!==t.data.length&&(t.data=this.text),this.textBounds=Gf(e,this.text,A,t)}}const qf=(r,e)=>{switch(e){case 1:return r.toLowerCase();case 3:return r.replace(jf,Zf);case 2:return r.toUpperCase();default:return r}},jf=/(^|\s|:|-|\(|\))([a-z])/g,Zf=(r,e,t)=>r.length>0?e+t.toUpperCase():r;class N0 extends vt{constructor(e,t){super(e,t),this.src=t.currentSrc||t.src,this.intrinsicWidth=t.naturalWidth,this.intrinsicHeight=t.naturalHeight,this.context.cache.addImage(this.src)}}class O0 extends vt{constructor(e,t){super(e,t),this.canvas=t,this.intrinsicWidth=t.width,this.intrinsicHeight=t.height}}class R0 extends vt{constructor(e,t){super(e,t);const A=new XMLSerializer,n=Gr(e,t);t.setAttribute("width",`${n.width}px`),t.setAttribute("height",`${n.height}px`),this.svg=`data:image/svg+xml,${encodeURIComponent(A.serializeToString(t))}`,this.intrinsicWidth=t.width.baseVal.value,this.intrinsicHeight=t.height.baseVal.value,this.context.cache.addImage(this.svg)}}class K0 extends vt{constructor(e,t){super(e,t),this.value=t.value}}class fs extends vt{constructor(e,t){super(e,t),this.start=t.start,this.reversed=typeof t.reversed=="boolean"&&t.reversed===!0}}const $f=[{type:15,flags:0,unit:"px",number:3}],em=[{type:16,flags:0,number:50}],tm=r=>r.width>r.height?new Ne(r.left+(r.width-r.height)/2,r.top,r.height,r.height):r.width<r.height?new Ne(r.left,r.top+(r.height-r.width)/2,r.width,r.width):r,Am=r=>{const e=r.type===nm?new Array(r.value.length+1).join("•"):r.value;return e.length===0?r.placeholder||"":e},rm=r=>r.value.length===0&&!!r.placeholder,Fn="checkbox",In="radio",nm="password",z0=707406591,im=1970632191;class pr extends vt{constructor(e,t){switch(super(e,t),this.type=t.type.toLowerCase(),this.checked=t.checked,this.value=Am(t),this.isPlaceholder=rm(t),(this.type===Fn||this.type===In)&&(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=tm(this.bounds)),this.type){case Fn:this.styles.borderTopRightRadius=this.styles.borderTopLeftRadius=this.styles.borderBottomRightRadius=this.styles.borderBottomLeftRadius=$f;break;case In:this.styles.borderTopRightRadius=this.styles.borderTopLeftRadius=this.styles.borderBottomRightRadius=this.styles.borderBottomLeftRadius=em;break}}}class G0 extends vt{constructor(e,t){super(e,t);const A=t.options[t.selectedIndex||0];this.value=A&&A.text||""}}class V0 extends vt{constructor(e,t){super(e,t),this.value=t.value}}class Y0 extends vt{constructor(e,t,A){super(e,t),this.src=t.src,this.width=parseInt(t.width,10)||0,this.height=parseInt(t.height,10)||0,this.backgroundColor=this.styles.backgroundColor,this.parseTreeFn=A;try{if(t.contentWindow&&t.contentWindow.document&&t.contentWindow.document.documentElement&&this.parseTreeFn){this.tree=this.parseTreeFn(e,t.contentWindow.document.documentElement);const n=t.contentWindow.document.documentElement?MA(e,getComputedStyle(t.contentWindow.document.documentElement).backgroundColor):wt.TRANSPARENT,i=t.contentWindow.document.body?MA(e,getComputedStyle(t.contentWindow.document.body).backgroundColor):wt.TRANSPARENT;this.backgroundColor=_t(n)?_t(i)?this.styles.backgroundColor:i:n}}catch{}}}const sm=["OL","UL","MENU"],Sn=(r,e,t,A)=>{for(let n=e.firstChild,i;n;n=i)if(i=n.nextSibling,y0(n)&&n.data.length>0)t.textNodes.push(new _f(r,n,t.styles));else if(Ft(n))if(gr(n)&&n.assignedNodes)n.assignedNodes().forEach(s=>Sn(r,s,t,A));else{const s=W0(r,n);s.styles.isVisible()&&(am(n,s,A)?s.flags|=4:om(s.styles)&&(s.flags|=2),sm.indexOf(n.tagName)!==-1&&(s.flags|=8),t.elements.push(s),n.slot,n.shadowRoot?Sn(r,n.shadowRoot,s,A):!Mn(n)&&!J0(n)&&!kn(n)&&Sn(r,n,s,A))}},W0=(r,e)=>ws(e)?new N0(r,e):_0(e)?new O0(r,e):J0(e)?new R0(r,e):sf(e)?new K0(r,e):af(e)?new fs(r,e):lm(e)?new pr(r,e):kn(e)?new G0(r,e):Mn(e)?new V0(r,e):j0(e)?new Y0(r,e,X0):new vt(r,e),X0=(r,e)=>{const t=W0(r,e);return t.flags|=4,Sn(r,e,t,t),t},am=(r,e,t)=>e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||ms(r)&&t.styles.isTransparent(),om=r=>r.isPositioned()||r.isFloating()?!0:me(r.display,268435456)||me(r.display,33554432)||me(r.display,536870912)||me(r.display,134217728),lm=r=>r.tagName==="INPUT",cm=r=>r.tagName==="HTML",J0=r=>r.tagName==="svg",ms=r=>r.tagName==="BODY",_0=r=>r.tagName==="CANVAS",q0=r=>r.tagName==="VIDEO",ws=r=>r.tagName==="IMG",j0=r=>r.tagName==="IFRAME",Bs=r=>r.tagName==="STYLE",Z0=r=>r.tagName==="SCRIPT",Mn=r=>r.tagName==="TEXTAREA",kn=r=>r.tagName==="SELECT",gr=r=>r.tagName==="SLOT";class dm{constructor(){this.counters={}}getCounterValue(e){const t=this.counters[e];return t&&t.length?t[t.length-1]:1}getCounterValues(e){const t=this.counters[e];return t||[]}pop(e){e.forEach(t=>this.counters[t].pop())}parse(e){const t=e.counterIncrement,A=e.counterReset;let n=!0;t!==null&&t.forEach(s=>{const a=this.counters[s.counter];a&&s.increment!==0&&(n=!1,a.length||a.push(1),a[Math.max(0,a.length-1)]+=s.increment)});const i=[];return n&&A.forEach(s=>{let a=this.counters[s.counter];i.push(s.counter),a||(a=this.counters[s.counter]=[]),a.push(s.reset)}),i}}const $0={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"]},el={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:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},hm={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:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},um={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:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},LA=(r,e,t,A,n,i)=>r<e||r>t?mr(r,n,i.length>0):A.integers.reduce((s,a,o)=>{for(;r>=a;)r-=a,s+=A.values[o];return s},"")+i,tl=(r,e,t,A)=>{let n="";do t||r--,n=A(r)+n,r/=e;while(r*e>=e);return n},xe=(r,e,t,A,n)=>{const i=t-e+1;return(r<0?"-":"")+(tl(Math.abs(r),i,A,s=>Ce(Math.floor(s%i)+e))+n)},mA=(r,e,t=". ")=>{const A=e.length;return tl(Math.abs(r),A,!1,n=>e[Math.floor(n%A)])+t},DA=1,Zt=2,$t=4,fr=8,It=(r,e,t,A,n,i)=>{if(r<-9999||r>9999)return mr(r,4,n.length>0);let s=Math.abs(r),a=n;if(s===0)return e[0]+a;for(let o=0;s>0&&o<=4;o++){const l=s%10;l===0&&me(i,DA)&&a!==""?a=e[l]+a:l>1||l===1&&o===0||l===1&&o===1&&me(i,Zt)||l===1&&o===1&&me(i,$t)&&r>100||l===1&&o>1&&me(i,fr)?a=e[l]+(o>0?t[o-1]:"")+a:l===1&&o>0&&(a=t[o-1]+a),s=Math.floor(s/10)}return(r<0?A:"")+a},Al="十百千萬",rl="拾佰仟萬",nl="マイナス",vs="마이너스",mr=(r,e,t)=>{const A=t?". ":"",n=t?"、":"",i=t?", ":"",s=t?" ":"";switch(e){case 0:return"•"+s;case 1:return"◦"+s;case 2:return"◾"+s;case 5:const a=xe(r,48,57,!0,A);return a.length<4?`0${a}`:a;case 4:return mA(r,"〇一二三四五六七八九",n);case 6:return LA(r,1,3999,$0,3,A).toLowerCase();case 7:return LA(r,1,3999,$0,3,A);case 8:return xe(r,945,969,!1,A);case 9:return xe(r,97,122,!1,A);case 10:return xe(r,65,90,!1,A);case 11:return xe(r,1632,1641,!0,A);case 12:case 49:return LA(r,1,9999,el,3,A);case 35:return LA(r,1,9999,el,3,A).toLowerCase();case 13:return xe(r,2534,2543,!0,A);case 14:case 30:return xe(r,6112,6121,!0,A);case 15:return mA(r,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return mA(r,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return It(r,"零一二三四五六七八九",Al,"負",n,Zt|$t|fr);case 47:return It(r,"零壹貳參肆伍陸柒捌玖",rl,"負",n,DA|Zt|$t|fr);case 42:return It(r,"零一二三四五六七八九",Al,"负",n,Zt|$t|fr);case 41:return It(r,"零壹贰叁肆伍陆柒捌玖",rl,"负",n,DA|Zt|$t|fr);case 26:return It(r,"〇一二三四五六七八九","十百千万",nl,n,0);case 25:return It(r,"零壱弐参四伍六七八九","拾百千万",nl,n,DA|Zt|$t);case 31:return It(r,"영일이삼사오육칠팔구","십백천만",vs,i,DA|Zt|$t);case 33:return It(r,"零一二三四五六七八九","十百千萬",vs,i,0);case 32:return It(r,"零壹貳參四五六七八九","拾百千",vs,i,DA|Zt|$t);case 18:return xe(r,2406,2415,!0,A);case 20:return LA(r,1,19999,um,3,A);case 21:return xe(r,2790,2799,!0,A);case 22:return xe(r,2662,2671,!0,A);case 52:return LA(r,1,10999,hm,3,A);case 23:return mA(r,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return mA(r,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return xe(r,3302,3311,!0,A);case 28:return mA(r,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return mA(r,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return xe(r,3792,3801,!0,A);case 37:return xe(r,6160,6169,!0,A);case 38:return xe(r,4160,4169,!0,A);case 39:return xe(r,2918,2927,!0,A);case 40:return xe(r,1776,1785,!0,A);case 43:return xe(r,3046,3055,!0,A);case 44:return xe(r,3174,3183,!0,A);case 45:return xe(r,3664,3673,!0,A);case 46:return xe(r,3872,3881,!0,A);case 3:default:return xe(r,48,57,!0,A)}},ys="data-html2canvas-ignore",pm=r=>{let e=r;for(;e;){if(e.parentNode&&e.parentNode.host)return e.parentNode;const t=e.getRootNode();if(t&&t!==e.ownerDocument&&t.host)return t;e=e.parentNode}return null};class il{constructor(e,t,A){if(this.context=e,this.options=A,this.scrolledElements=[],this.referenceElement=t,this.counters=new dm,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");if(!this.options.iframeContainer){const n=pm(t);n&&(this.options.iframeContainer=n)}this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}toIFrame(e,t){var g,p;const A=gm(e,t,this.options.iframeContainer);if(!A.contentWindow)throw new Error("Unable to find iframe window");const n=e.defaultView.pageXOffset,i=e.defaultView.pageYOffset,s=A.contentWindow,a=s.document,o=wm(A).then(async()=>{this.scrolledElements.forEach(bm),s&&(s.scrollTo(t.left,t.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(s.scrollY!==t.top||s.scrollX!==t.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(s.scrollX-t.left,s.scrollY-t.top,0,0)));const m=this.options.onclone,B=this.clonedReferenceElement;if(typeof B>"u")throw new Error(`Error finding the ${this.referenceElement.nodeName} in the cloned document`);return a.fonts&&a.fonts.ready&&await a.fonts.ready,/(AppleWebKit)/g.test(navigator.userAgent)&&await mm(a),typeof m=="function"?Promise.resolve().then(()=>m(a,B)).then(()=>A):A}),l=e.baseURI;a.open();const c=vm(document.doctype)+"<html></html>";try{const m=(g=this.referenceElement.ownerDocument)==null?void 0:g.defaultView,B=m&&m.trustedTypes;let y=(p=B==null?void 0:B.getPolicy)==null?void 0:p.call(B,"html2canvas-pro");!y&&B&&(y=B.createPolicy("html2canvas-pro",{createHTML:x=>x})),y?a.write(y.createHTML(c)):a.write(c)}catch{a.write(c)}ym(this.referenceElement.ownerDocument,n,i),a.close();const d=a.adoptNode(this.documentElement);return Um(d,l),a.replaceChild(d,a.documentElement),o}createElementClone(e){if(is(e,2),_0(e))return this.createCanvasClone(e);if(q0(e))return this.createVideoClone(e);if(Bs(e))return this.createStyleClone(e);const t=e.cloneNode(!1);return ws(t)&&(ws(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),t.loading==="lazy"&&(t.loading="eager")),b0(t)&&!HA(t)?this.createCustomElementClone(t):t}createCustomElementClone(e){const t=document.createElement("div");if(t.className=e.className,bs(e.style,t),e.shadowRoot)try{t.attachShadow({mode:"open"})}catch(A){this.context.logger.error("Failed to attach shadow root to custom element clone:",A)}return t}createStyleClone(e){try{const A=e.sheet;if(A&&A.cssRules){const n=[].slice.call(A.cssRules,0).reduce((s,a)=>a&&typeof a.cssText=="string"?s+a.cssText:s,""),i=e.cloneNode(!1);return i.textContent=n,this.options.cspNonce&&(i.nonce=this.options.cspNonce),i}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),A.name!=="SecurityError")throw A}const t=e.cloneNode(!1);return this.options.cspNonce&&(t.nonce=this.options.cspNonce),t}createCanvasClone(e){if(this.options.inlineImages&&e.ownerDocument){const A=e.ownerDocument.createElement("img");try{return A.src=e.toDataURL(),A}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}const t=e.cloneNode(!1);try{t.width=e.width,t.height=e.height;const A=e.getContext("2d"),n=t.getContext("2d",{willReadFrequently:!0});if(n)if(!this.options.allowTaint&&A)n.putImageData(A.getImageData(0,0,e.width,e.height),0,0);else{const i=e.getContext("webgl2")??e.getContext("webgl");if(i){const s=i.getContextAttributes();(s==null?void 0:s.preserveDrawingBuffer)===!1&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}n.drawImage(e,0,0)}return t}catch{this.context.logger.info("Unable to clone canvas as it is tainted",e)}return t}createVideoClone(e){const t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;const A=t.getContext("2d");try{return A&&(A.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||A.getImageData(0,0,t.width,t.height)),t}catch{this.context.logger.info("Unable to clone video as it is tainted",e)}const n=e.ownerDocument.createElement("canvas");return n.width=e.offsetWidth,n.height=e.offsetHeight,n}appendChildNode(e,t,A){(!Ft(t)||!Z0(t)&&!t.hasAttribute(ys)&&(typeof this.options.ignoreElements!="function"||!this.options.ignoreElements(t)))&&(!this.options.copyStyles||!Ft(t)||!Bs(t))&&e.appendChild(this.cloneNode(t,A))}shouldCloneChild(e){return!Ft(e)||!Z0(e)&&!e.hasAttribute(ys)&&(typeof this.options.ignoreElements!="function"||!this.options.ignoreElements(e))}shouldCloneStyleElement(e){return!this.options.copyStyles||!Ft(e)||!Bs(e)}safeAppendClonedChild(e,t,A){this.shouldCloneChild(t)&&this.shouldCloneStyleElement(t)&&e.appendChild(this.cloneNode(t,A))}cloneAssignedNodes(e,t,A){e.forEach(n=>{this.safeAppendClonedChild(t,n,A)})}cloneSlotFallbackContent(e,t,A){for(let n=e.firstChild;n;n=n.nextSibling)this.safeAppendClonedChild(t,n,A)}cloneSlotElement(e,t,A){if(!gr(e))return;const n=e;if(typeof n.assignedNodes!="function"){this.context.logger.warn("HTMLSlotElement.assignedNodes is not available",e),this.cloneSlotFallbackContent(e,t,A);return}const i=n.assignedNodes();if(!i||!Array.isArray(i)){this.context.logger.warn("assignedNodes() did not return a valid array",e),this.cloneSlotFallbackContent(e,t,A);return}i.length>0?this.cloneAssignedNodes(i,t,A):this.cloneSlotFallbackContent(e,t,A)}cloneShadowDOMChildren(e,t,A){for(let n=e.firstChild;n;n=n.nextSibling)Ft(n)&&gr(n)?this.cloneSlotElement(n,t,A):this.safeAppendClonedChild(t,n,A)}cloneLightDOMChildren(e,t,A){for(let n=e.firstChild;n;n=n.nextSibling)this.appendChildNode(t,n,A)}cloneSlotElementAsLightDOM(e,t,A){if(!gr(e))return;const n=e;if(typeof n.assignedNodes!="function"){for(let s=e.firstChild;s;s=s.nextSibling)this.appendChildNode(t,s,A);return}const i=n.assignedNodes();if(i&&Array.isArray(i)&&i.length>0)i.forEach(s=>this.appendChildNode(t,s,A));else for(let s=e.firstChild;s;s=s.nextSibling)this.appendChildNode(t,s,A)}cloneShadowDOMAsLightDOM(e,t,A){for(let n=e.firstChild;n;n=n.nextSibling)Ft(n)&&gr(n)?this.cloneSlotElementAsLightDOM(n,t,A):this.appendChildNode(t,n,A)}cloneChildNodes(e,t,A){e.shadowRoot&&t.shadowRoot?(this.cloneShadowDOMChildren(e.shadowRoot,t.shadowRoot,A),this.cloneLightDOMChildren(e,t,A)):e.shadowRoot&&!t.shadowRoot?this.cloneShadowDOMAsLightDOM(e.shadowRoot,t,A):this.cloneLightDOMChildren(e,t,A)}cloneNode(e,t){if(y0(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);const A=e.ownerDocument.defaultView;if(A&&Ft(e)&&(hr(e)||HA(e))){const n=this.createElementClone(e);n.style.transitionProperty="none";const i=A.getComputedStyle(e),s=A.getComputedStyle(e,":before"),a=A.getComputedStyle(e,":after");this.referenceElement===e&&hr(n)&&(this.clonedReferenceElement=n),ms(n)&&Qm(n,this.options.cspNonce);const o=this.counters.parse(new v0(this.context,i)),l=this.resolvePseudoContent(e,n,s,wr.BEFORE);b0(e)&&(t=!0),q0(e)||this.cloneChildNodes(e,n,t),l&&n.insertBefore(l,n.firstChild);const c=this.resolvePseudoContent(e,n,a,wr.AFTER);return c&&n.appendChild(c),this.counters.pop(o),(i&&(this.options.copyStyles||HA(e))&&!j0(e)||t)&&bs(i,n),(e.scrollTop!==0||e.scrollLeft!==0)&&this.scrolledElements.push([n,e.scrollLeft,e.scrollTop]),(Mn(e)||kn(e))&&(Mn(n)||kn(n))&&(n.value=e.value),n}return e.cloneNode(!1)}resolvePseudoContent(e,t,A,n){if(!A)return;const i=A.content,s=t.ownerDocument;if(!s||!i||i==="none"||i==="-moz-alt-content"||A.display==="none")return;this.counters.parse(new v0(this.context,A));const a=new nf(this.context,A),o=s.createElement("html2canvaspseudoelement");bs(A,o),a.content.forEach(c=>{if(c.type===0)o.appendChild(s.createTextNode(c.value));else if(c.type===22){const d=s.createElement("img");d.src=c.value,d.style.opacity="1",o.appendChild(d)}else if(c.type===18){if(c.name==="attr"){const d=c.values.filter(te);d.length&&o.appendChild(s.createTextNode(e.getAttribute(d[0].value)||""))}else if(c.name==="counter"){const[d,g]=c.values.filter(Le);if(d&&te(d)){const p=this.counters.getCounterValue(d.value),m=g&&te(g)?ns.parse(this.context,g.value):3;o.appendChild(s.createTextNode(mr(p,m,!1)))}}else if(c.name==="counters"){const[d,g,p]=c.values.filter(Le);if(d&&te(d)){const m=this.counters.getCounterValues(d.value),B=p&&te(p)?ns.parse(this.context,p.value):3,y=g&&g.type===0?g.value:"",x=m.map(C=>mr(C,B,!1)).join(y);o.appendChild(s.createTextNode(x))}}}else if(c.type===20)switch(c.value){case"open-quote":o.appendChild(s.createTextNode(B0(a.quotes,this.quoteDepth++,!0)));break;case"close-quote":o.appendChild(s.createTextNode(B0(a.quotes,--this.quoteDepth,!1)));break;default:o.appendChild(s.createTextNode(c.value))}}),o.className=`${Cs} ${xs}`;const l=n===wr.BEFORE?` ${Cs}`:` ${xs}`;return HA(t)?t.className.baseValue+=l:t.className+=l,o}static destroy(e){return e.parentNode?(e.parentNode.removeChild(e),!0):!1}}var wr;(function(r){r[r.BEFORE=0]="BEFORE",r[r.AFTER=1]="AFTER"})(wr||(wr={}));const gm=(r,e,t)=>{const A=r.createElement("iframe");return A.className="html2canvas-container",A.style.visibility="hidden",A.style.position="fixed",A.style.left="-10000px",A.style.top="0px",A.style.border="0",A.width=e.width.toString(),A.height=e.height.toString(),A.scrolling="no",A.setAttribute(ys,"true"),(t||r.body).appendChild(A),A},fm=r=>new Promise(e=>{if(r.complete){e();return}if(!r.src){e();return}r.onload=e,r.onerror=e}),mm=r=>Promise.all([].slice.call(r.images,0).map(fm)),wm=r=>new Promise((e,t)=>{const A=r.contentWindow;if(!A)return t("No window assigned for iframe");const n=A.document;A.onload=r.onload=()=>{A.onload=r.onload=null;const i=setInterval(()=>{n.body.childNodes.length>0&&n.readyState==="complete"&&(clearInterval(i),e(r))},50)}}),Bm=["all","d","content"],bs=(r,e)=>{for(let t=r.length-1;t>=0;t--){const A=r.item(t);Bm.indexOf(A)===-1&&!A.startsWith("--")&&e.style.setProperty(A,r.getPropertyValue(A))}return e},vm=r=>{let e="";return r&&(e+="<!DOCTYPE ",r.name&&(e+=r.name),r.internalSubset&&(e+=" "+r.internalSubset.replace(/"/g,"&quot;").replace(/>/g,"&gt;")),r.publicId?(e+=' PUBLIC "'+r.publicId.replace(/"/g,"&quot;")+'"',r.systemId&&(e+=' "'+r.systemId.replace(/"/g,"&quot;")+'"')):r.systemId&&(e+=' SYSTEM "'+r.systemId.replace(/"/g,"&quot;")+'"'),e+=">"),e},ym=(r,e,t)=>{r&&r.defaultView&&(e!==r.defaultView.pageXOffset||t!==r.defaultView.pageYOffset)&&r.defaultView.scrollTo(e,t)},bm=([r,e,t])=>{r.scrollLeft=e,r.scrollTop=t},Cm=":before",xm=":after",Cs="___html2canvas___pseudoelement_before",xs="___html2canvas___pseudoelement_after",sl=`{
2428
+ content: "" !important;
2429
+ display: none !important;
2430
+ }`,Qm=(r,e)=>{Em(r,`.${Cs}${Cm}${sl}
2431
+ .${xs}${xm}${sl}`,e)},Em=(r,e,t)=>{const A=r.ownerDocument;if(A){const n=A.createElement("style");n.textContent=e,t&&(n.nonce=t),r.appendChild(n)}},Um=(r,e)=>{const t=r.ownerDocument.createElement("base");t.href=e;const A=r.getElementsByTagName("head").item(0);A==null||A.insertBefore(t,(A==null?void 0:A.firstChild)??null)};class K{constructor(e,t){this.type=0,this.x=e,this.y=t}add(e,t){return new K(this.x+e,this.y+t)}}const PA=(r,e,t)=>new K(r.x+(e.x-r.x)*t,r.y+(e.y-r.y)*t);class St{constructor(e,t,A,n){this.type=1,this.start=e,this.startControl=t,this.endControl=A,this.end=n}subdivide(e,t){const A=PA(this.start,this.startControl,e),n=PA(this.startControl,this.endControl,e),i=PA(this.endControl,this.end,e),s=PA(A,n,e),a=PA(n,i,e),o=PA(s,a,e);return t?new St(this.start,A,s,o):new St(o,a,i,this.end)}add(e,t){return new St(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))}reverse(){return new St(this.end,this.endControl,this.startControl,this.start)}}const We=r=>r.type===1;class Fm{constructor(e){const t=e.styles,A=e.bounds;let[n,i]=lr(t.borderTopLeftRadius,A.width,A.height),[s,a]=lr(t.borderTopRightRadius,A.width,A.height),[o,l]=lr(t.borderBottomRightRadius,A.width,A.height),[c,d]=lr(t.borderBottomLeftRadius,A.width,A.height);const g=[];g.push((n+s)/A.width),g.push((c+o)/A.width),g.push((i+d)/A.height),g.push((a+l)/A.height);const p=Math.max(...g);p>1&&(n/=p,i/=p,s/=p,a/=p,o/=p,l/=p,c/=p,d/=p);const m=A.width-s,B=A.height-l,y=A.width-o,x=A.height-d,C=t.borderTopWidth,I=t.borderRightWidth,E=t.borderBottomWidth,F=t.borderLeftWidth,M=ee(t.paddingTop,e.bounds.width),H=ee(t.paddingRight,e.bounds.width),L=ee(t.paddingBottom,e.bounds.width),N=ee(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||i>0?pe(A.left+F/3,A.top+C/3,n-F/3,i-C/3,ae.TOP_LEFT):new K(A.left+F/3,A.top+C/3),this.topRightBorderDoubleOuterBox=n>0||i>0?pe(A.left+m,A.top+C/3,s-I/3,a-C/3,ae.TOP_RIGHT):new K(A.left+A.width-I/3,A.top+C/3),this.bottomRightBorderDoubleOuterBox=o>0||l>0?pe(A.left+y,A.top+B,o-I/3,l-E/3,ae.BOTTOM_RIGHT):new K(A.left+A.width-I/3,A.top+A.height-E/3),this.bottomLeftBorderDoubleOuterBox=c>0||d>0?pe(A.left+F/3,A.top+x,c-F/3,d-E/3,ae.BOTTOM_LEFT):new K(A.left+F/3,A.top+A.height-E/3),this.topLeftBorderDoubleInnerBox=n>0||i>0?pe(A.left+F*2/3,A.top+C*2/3,n-F*2/3,i-C*2/3,ae.TOP_LEFT):new K(A.left+F*2/3,A.top+C*2/3),this.topRightBorderDoubleInnerBox=n>0||i>0?pe(A.left+m,A.top+C*2/3,s-I*2/3,a-C*2/3,ae.TOP_RIGHT):new K(A.left+A.width-I*2/3,A.top+C*2/3),this.bottomRightBorderDoubleInnerBox=o>0||l>0?pe(A.left+y,A.top+B,o-I*2/3,l-E*2/3,ae.BOTTOM_RIGHT):new K(A.left+A.width-I*2/3,A.top+A.height-E*2/3),this.bottomLeftBorderDoubleInnerBox=c>0||d>0?pe(A.left+F*2/3,A.top+x,c-F*2/3,d-E*2/3,ae.BOTTOM_LEFT):new K(A.left+F*2/3,A.top+A.height-E*2/3),this.topLeftBorderStroke=n>0||i>0?pe(A.left+F/2,A.top+C/2,n-F/2,i-C/2,ae.TOP_LEFT):new K(A.left+F/2,A.top+C/2),this.topRightBorderStroke=n>0||i>0?pe(A.left+m,A.top+C/2,s-I/2,a-C/2,ae.TOP_RIGHT):new K(A.left+A.width-I/2,A.top+C/2),this.bottomRightBorderStroke=o>0||l>0?pe(A.left+y,A.top+B,o-I/2,l-E/2,ae.BOTTOM_RIGHT):new K(A.left+A.width-I/2,A.top+A.height-E/2),this.bottomLeftBorderStroke=c>0||d>0?pe(A.left+F/2,A.top+x,c-F/2,d-E/2,ae.BOTTOM_LEFT):new K(A.left+F/2,A.top+A.height-E/2),this.topLeftBorderBox=n>0||i>0?pe(A.left,A.top,n,i,ae.TOP_LEFT):new K(A.left,A.top),this.topRightBorderBox=s>0||a>0?pe(A.left+m,A.top,s,a,ae.TOP_RIGHT):new K(A.left+A.width,A.top),this.bottomRightBorderBox=o>0||l>0?pe(A.left+y,A.top+B,o,l,ae.BOTTOM_RIGHT):new K(A.left+A.width,A.top+A.height),this.bottomLeftBorderBox=c>0||d>0?pe(A.left,A.top+x,c,d,ae.BOTTOM_LEFT):new K(A.left,A.top+A.height),this.topLeftPaddingBox=n>0||i>0?pe(A.left+F,A.top+C,Math.max(0,n-F),Math.max(0,i-C),ae.TOP_LEFT):new K(A.left+F,A.top+C),this.topRightPaddingBox=s>0||a>0?pe(A.left+Math.min(m,A.width-I),A.top+C,m>A.width+I?0:Math.max(0,s-I),Math.max(0,a-C),ae.TOP_RIGHT):new K(A.left+A.width-I,A.top+C),this.bottomRightPaddingBox=o>0||l>0?pe(A.left+Math.min(y,A.width-F),A.top+Math.min(B,A.height-E),Math.max(0,o-I),Math.max(0,l-E),ae.BOTTOM_RIGHT):new K(A.left+A.width-I,A.top+A.height-E),this.bottomLeftPaddingBox=c>0||d>0?pe(A.left+F,A.top+Math.min(x,A.height-E),Math.max(0,c-F),Math.max(0,d-E),ae.BOTTOM_LEFT):new K(A.left+F,A.top+A.height-E),this.topLeftContentBox=n>0||i>0?pe(A.left+F+N,A.top+C+M,Math.max(0,n-(F+N)),Math.max(0,i-(C+M)),ae.TOP_LEFT):new K(A.left+F+N,A.top+C+M),this.topRightContentBox=s>0||a>0?pe(A.left+Math.min(m,A.width+F+N),A.top+C+M,m>A.width+F+N?0:s-F+N,a-(C+M),ae.TOP_RIGHT):new K(A.left+A.width-(I+H),A.top+C+M),this.bottomRightContentBox=o>0||l>0?pe(A.left+Math.min(y,A.width-(F+N)),A.top+Math.min(B,A.height+C+M),Math.max(0,o-(I+H)),l-(E+L),ae.BOTTOM_RIGHT):new K(A.left+A.width-(I+H),A.top+A.height-(E+L)),this.bottomLeftContentBox=c>0||d>0?pe(A.left+F+N,A.top+x,Math.max(0,c-(F+N)),d-(E+L),ae.BOTTOM_LEFT):new K(A.left+F+N,A.top+A.height-(E+L))}}var ae;(function(r){r[r.TOP_LEFT=0]="TOP_LEFT",r[r.TOP_RIGHT=1]="TOP_RIGHT",r[r.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",r[r.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(ae||(ae={}));const pe=(r,e,t,A,n)=>{const i=4*((Math.sqrt(2)-1)/3),s=t*i,a=A*i,o=r+t,l=e+A;switch(n){case ae.TOP_LEFT:return new St(new K(r,l),new K(r,l-a),new K(o-s,e),new K(o,e));case ae.TOP_RIGHT:return new St(new K(r,e),new K(r+s,e),new K(o,l-a),new K(o,l));case ae.BOTTOM_RIGHT:return new St(new K(o,e),new K(o,e+a),new K(r+s,l),new K(r,l));case ae.BOTTOM_LEFT:default:return new St(new K(o,l),new K(o-s,l),new K(r,e+a),new K(r,e))}},Hn=r=>[r.topLeftBorderBox,r.topRightBorderBox,r.bottomRightBorderBox,r.bottomLeftBorderBox],Im=r=>[r.topLeftContentBox,r.topRightContentBox,r.bottomRightContentBox,r.bottomLeftContentBox],Tn=r=>[r.topLeftPaddingBox,r.topRightPaddingBox,r.bottomRightPaddingBox,r.bottomLeftPaddingBox];class al{constructor(e,t,A){this.offsetX=e,this.offsetY=t,this.matrix=A,this.type=0,this.target=6}}class Ln{constructor(e,t){this.path=e,this.target=t,this.type=1}}class Sm{constructor(e){this.opacity=e,this.type=2,this.target=6}}class Br{constructor(e){this.applyClip=e,this.type=3,this.target=6}}const Mm=r=>r.type===0,ol=r=>r.type===1,km=r=>r.type===2,Hm=r=>r.type===3,ll=(r,e)=>r.length===e.length?r.some((t,A)=>t===e[A]):!1,Tm=(r,e,t,A,n)=>r.map((i,s)=>{switch(s){case 0:return i.add(e,t);case 1:return i.add(e+A,t);case 2:return i.add(e+A,t+n);case 3:return i.add(e,t+n)}return i});class cl{constructor(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}class dl{constructor(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new Fm(this.container),this.container.styles.opacity<1&&this.effects.push(new Sm(this.container.styles.opacity)),this.container.styles.rotate!==null){const A=this.container.styles.transformOrigin,n=this.container.bounds.left+ee(A[0],this.container.bounds.width),i=this.container.bounds.top+ee(A[1],this.container.bounds.height),a=this.container.styles.rotate*Math.PI/180,o=Math.cos(a),l=Math.sin(a),c=[o,l,-l,o,0,0];this.effects.push(new al(n,i,c))}if(this.container.styles.transform!==null){const A=this.container.styles.transformOrigin,n=this.container.bounds.left+ee(A[0],this.container.bounds.width),i=this.container.bounds.top+ee(A[1],this.container.bounds.height),s=this.container.styles.transform;this.effects.push(new al(n,i,s))}if(this.container.styles.overflowX!==0){const A=Hn(this.curves),n=Tn(this.curves);ll(A,n)?this.effects.push(new Ln(A,6)):(this.effects.push(new Ln(A,2)),this.effects.push(new Ln(n,4)))}if(this.container.styles.clipPath.type!==0){const A=Lm(this.container.styles.clipPath,this.container.bounds);A&&this.effects.push(A)}}getEffects(e){let t=[2,3].indexOf(this.container.styles.position)===-1,A=this.parent;const n=this.effects.slice(0);for(;A;){const i=A.effects.filter(s=>!ol(s));if(t||A.container.styles.position!==0||!A.parent){if(t=[2,3].indexOf(A.container.styles.position)===-1,A.container.styles.overflowX!==0){const s=Hn(A.curves),a=Tn(A.curves);ll(s,a)||n.unshift(new Ln(a,6))}n.unshift(...i)}else n.unshift(...i);A=A.parent}return n.filter(i=>me(i.target,e))}}const hl=(r,e,t,A,n)=>r==="closest-side"?Math.min(e-t,A-e):r==="farthest-side"?Math.max(e-t,A-e):ee(r,n),Lm=(r,e)=>{const{left:t,top:A,width:n,height:i}=e;switch(r.type){case 1:{const s=ee(r.left,n),a=ee(r.top,i),o=t+s,l=A+a,c=Math.max(0,n-s-ee(r.right,n)),d=Math.max(0,i-a-ee(r.bottom,i));return new Br(g=>{g.beginPath(),g.rect(o,l,c,d),g.clip()})}case 2:{const s=t+ee(r.cx,n),a=A+ee(r.cy,i);let o;return r.radius==="closest-side"?o=Math.min(s-t,a-A,t+n-s,A+i-a):r.radius==="farthest-side"?o=Math.max(s-t,a-A,t+n-s,A+i-a):o=ee(r.radius,Math.sqrt(n*n+i*i)/Math.SQRT2),new Br(l=>{l.beginPath(),l.arc(s,a,Math.max(0,o),0,Math.PI*2),l.clip()})}case 3:{const s=t+ee(r.cx,n),a=A+ee(r.cy,i),o=hl(r.rx,s,t,t+n,n),l=hl(r.ry,a,A,A+i,i);return new Br(c=>{c.beginPath(),c.ellipse(s,a,Math.max(0,o),Math.max(0,l),0,0,Math.PI*2),c.clip()})}case 4:{const s=r.points.map(([a,o])=>[t+ee(a,n),A+ee(o,i)]);return new Br(a=>{if(a.beginPath(),s.length>0){a.moveTo(s[0][0],s[0][1]);for(let o=1;o<s.length;o++)a.lineTo(s[o][0],s[o][1]);a.closePath()}a.clip()})}case 5:{const{d:s}=r;return new Br(a=>{try{const o=a.getTransform();a.translate(t,A),a.clip(new Path2D(s)),a.setTransform(o)}catch{}})}case 0:return null;default:return null}},Qs=(r,e,t,A)=>{r.container.elements.forEach(n=>{const i=me(n.flags,4),s=me(n.flags,2),a=new dl(n,r);me(n.styles.display,2048)&&A.push(a);const o=me(n.flags,8)?[]:A;if(i||s){const l=i||n.styles.isPositioned()?t:e,c=new cl(a);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){const d=n.styles.zIndex.order;if(d<0){let g=0;l.negativeZIndex.some((p,m)=>d>p.element.container.styles.zIndex.order?(g=m,!1):g>0),l.negativeZIndex.splice(g,0,c)}else if(d>0){let g=0;l.positiveZIndex.some((p,m)=>d>=p.element.container.styles.zIndex.order?(g=m+1,!1):g>0),l.positiveZIndex.splice(g,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);Qs(a,c,i?c:t,o)}else n.styles.isInlineLevel()?e.inlineLevel.push(a):e.nonInlineLevel.push(a),Qs(a,e,t,o);me(n.flags,8)&&ul(n,o)})},ul=(r,e)=>{let t=r instanceof fs?r.start:1;const A=r instanceof fs?r.reversed:!1;for(let n=0;n<e.length;n++){const i=e[n];i.container instanceof K0&&typeof i.container.value=="number"&&i.container.value!==0&&(t=i.container.value),i.listValue=mr(t,i.container.styles.listStyleType,!0),t+=A?-1:1}},Dm=r=>{const e=new dl(r,null),t=new cl(e),A=[];return Qs(e,t,t,A),ul(e.container,A),t},pl=r=>{const e=r.bounds,t=r.styles;return e.add(t.borderLeftWidth,t.borderTopWidth,-(t.borderRightWidth+t.borderLeftWidth),-(t.borderTopWidth+t.borderBottomWidth))},vr=r=>{const e=r.styles,t=r.bounds,A=ee(e.paddingLeft,t.width),n=ee(e.paddingRight,t.width),i=ee(e.paddingTop,t.width),s=ee(e.paddingBottom,t.width);return t.add(A+e.borderLeftWidth,i+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+A+n),-(e.borderTopWidth+e.borderBottomWidth+i+s))},Pm=(r,e)=>r===0?e.bounds:r===2?vr(e):pl(e),Nm=(r,e)=>r===0?e.bounds:r===2?vr(e):pl(e),Es=(r,e,t)=>{const A=Pm(OA(r.styles.backgroundOrigin,e),r),n=Nm(OA(r.styles.backgroundClip,e),r),i=Om(OA(r.styles.backgroundSize,e),t,A);let[s,a]=i;const o=lr(OA(r.styles.backgroundPosition,e),A.width-s,A.height-a),l=Rm(OA(r.styles.backgroundRepeat,e),o,i,A,n),c=Math.round(A.left+o[0]),d=Math.round(A.top+o[1]);return s=Math.max(1,s),a=Math.max(1,a),[l,c,d,s,a]},NA=r=>te(r)&&r.value===kA.AUTO,Dn=r=>typeof r=="number",Om=(r,[e,t,A],n)=>{const[i,s]=r;if(!i)return[0,0];if(le(i)&&s&&le(s))return[ee(i,n.width),ee(s,n.height)];const a=Dn(A);if(te(i)&&(i.value===kA.CONTAIN||i.value===kA.COVER))return Dn(A)?n.width/n.height<A!=(i.value===kA.COVER)?[n.width,n.width/A]:[n.height*A,n.height]:[n.width,n.height];const o=Dn(e),l=Dn(t),c=o||l;if(NA(i)&&(!s||NA(s))){if(o&&l)return[e,t];if(!a&&!c)return[n.width,n.height];if(c&&a){const B=o?e:t*A,y=l?t:e/A;return[B,y]}const p=o?e:n.width,m=l?t:n.height;return[p,m]}if(a){let p=0,m=0;return le(i)?p=ee(i,n.width):le(s)&&(m=ee(s,n.height)),NA(i)?p=m*A:(!s||NA(s))&&(m=p/A),[p,m]}let d=null,g=null;if(le(i)?d=ee(i,n.width):s&&le(s)&&(g=ee(s,n.height)),d!==null&&(!s||NA(s))&&(g=o&&l?d/e*t:n.height),g!==null&&NA(i)&&(d=o&&l?g/t*e:n.width),d!==null&&g!==null)return[d,g];throw new Error("Unable to calculate background-size for element")},OA=(r,e)=>{const t=r[e];return typeof t>"u"?r[0]:t},Rm=(r,[e,t],[A,n],i,s)=>{switch(r){case 2:return[new K(Math.round(i.left),Math.round(i.top+t)),new K(Math.round(i.left+i.width),Math.round(i.top+t)),new K(Math.round(i.left+i.width),Math.round(n+i.top+t)),new K(Math.round(i.left),Math.round(n+i.top+t))];case 3:return[new K(Math.round(i.left+e),Math.round(i.top)),new K(Math.round(i.left+e+A),Math.round(i.top)),new K(Math.round(i.left+e+A),Math.round(i.height+i.top)),new K(Math.round(i.left+e),Math.round(i.height+i.top))];case 1:return[new K(Math.round(i.left+e),Math.round(i.top+t)),new K(Math.round(i.left+e+A),Math.round(i.top+t)),new K(Math.round(i.left+e+A),Math.round(i.top+t+n)),new K(Math.round(i.left+e),Math.round(i.top+t+n))];default:return[new K(Math.round(s.left),Math.round(s.top)),new K(Math.round(s.left+s.width),Math.round(s.top)),new K(Math.round(s.left+s.width),Math.round(s.height+s.top)),new K(Math.round(s.left),Math.round(s.height+s.top))]}},Km="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",gl="Hidden Text";class zm{constructor(e){this._data={},this._document=e}parseMetrics(e,t){const A=this._document.createElement("div"),n=this._document.createElement("img"),i=this._document.createElement("span"),s=this._document.body;A.style.visibility="hidden",A.style.fontFamily=e,A.style.fontSize=t,A.style.margin="0",A.style.padding="0",A.style.whiteSpace="nowrap",s.appendChild(A),n.src=Km,n.width=1,n.height=1,n.style.margin="0",n.style.padding="0",n.style.verticalAlign="baseline",i.style.fontFamily=e,i.style.fontSize=t,i.style.margin="0",i.style.padding="0",i.appendChild(this._document.createTextNode(gl)),A.appendChild(i),A.appendChild(n);const a=n.offsetTop-i.offsetTop+2;A.removeChild(i),A.appendChild(this._document.createTextNode(gl)),A.style.lineHeight="normal",n.style.verticalAlign="super";const o=n.offsetTop-A.offsetTop+2;return s.removeChild(A),{baseline:a,middle:o}}getMetrics(e,t){const A=`${e} ${t}`;return typeof this._data[A]>"u"&&(this._data[A]=this.parseMetrics(e,t)),this._data[A]}}class fl{constructor(e,t){this.context=e,this.options=t}}class Gm{constructor(e){this.ctx=e.ctx,this.context=e.context,this.canvas=e.canvas}async renderBackgroundImage(e){let t=e.styles.backgroundImage.length-1;for(const A of e.styles.backgroundImage.slice(0).reverse())A.type===0?await this.renderBackgroundURLImage(e,A,t):vg(A)?this.renderLinearGradient(e,A,t):yg(A)&&this.renderRadialGradient(e,A,t),t--}async renderBackgroundURLImage(e,t,A){let n;const i=t.url;try{n=await this.context.cache.match(i)}catch{this.context.logger.error(`Error loading background-image ${i}`)}if(n){const s=isNaN(n.width)||n.width===0?1:n.width,a=isNaN(n.height)||n.height===0?1:n.height,[o,l,c,d,g]=Es(e,A,[s,a,s/a]),p=this.ctx.createPattern(this.resizeImage(n,d,g,e.styles.imageRendering),"repeat");this.renderRepeat(o,p,l,c)}}renderLinearGradient(e,t,A){const[n,i,s,a,o]=Es(e,A,[null,null,null]),[l,c,d,g,p]=gg(t.angle,a,o),B=(this.canvas.ownerDocument??document).createElement("canvas");B.width=a,B.height=o;const y=B.getContext("2d"),x=y.createLinearGradient(c,g,d,p);if(n0(t.stops,l||1).forEach(C=>x.addColorStop(C.stop,he(C.color))),y.fillStyle=x,y.fillRect(0,0,a,o),a>0&&o>0){const C=this.ctx.createPattern(B,"repeat");this.renderRepeat(n,C,i,s)}}renderRadialGradient(e,t,A){const[n,i,s,a,o]=Es(e,A,[null,null,null]),l=t.position.length===0?[uA]:t.position,c=ee(l[0],a),d=ee(l[l.length-1],o);let[g,p]=fg(t,c,d,a,o);if((g===0||p===0)&&(g=Math.max(g,.01),p=Math.max(p,.01)),g>0&&p>0){const m=this.ctx.createRadialGradient(i+c,s+d,0,i+c,s+d,g);if(n0(t.stops,g*2).forEach(B=>m.addColorStop(B.stop,he(B.color))),this.path(n),this.ctx.fillStyle=m,g!==p){const B=e.bounds.left+.5*e.bounds.width,y=e.bounds.top+.5*e.bounds.height,x=p/g,C=1/x;this.ctx.save(),this.ctx.translate(B,y),this.ctx.transform(1,0,0,x,0,0),this.ctx.translate(-B,-y),this.ctx.fillRect(i,C*(s-y)+y,a,o*C),this.ctx.restore()}else this.ctx.fill()}}renderRepeat(e,t,A,n){this.path(e),this.ctx.fillStyle=t,this.ctx.translate(A,n),this.ctx.fill(),this.ctx.translate(-A,-n)}resizeImage(e,t,A,n){const s=(this.canvas.ownerDocument??document).createElement("canvas");s.width=Math.max(1,t),s.height=Math.max(1,A);const a=s.getContext("2d");return n===qe.PIXELATED||n===qe.CRISP_EDGES?(this.context.logger.debug("Disabling image smoothing for background image due to CSS image-rendering"),a.imageSmoothingEnabled=!1):n===qe.SMOOTH?(this.context.logger.debug("Enabling image smoothing for background image due to CSS image-rendering: smooth"),a.imageSmoothingEnabled=!0):a.imageSmoothingEnabled=this.ctx.imageSmoothingEnabled,this.ctx.imageSmoothingQuality&&(a.imageSmoothingQuality=this.ctx.imageSmoothingQuality),a.drawImage(e,0,0,e.width,e.height,0,0,t,A),s}path(e){this.ctx.beginPath(),this.formatPath(e),this.ctx.closePath()}formatPath(e){e.forEach((t,A)=>{const n=We(t)?t.start:t;A===0?this.ctx.moveTo(n.x,n.y):this.ctx.lineTo(n.x,n.y),We(t)&&this.ctx.bezierCurveTo(t.startControl.x,t.startControl.y,t.endControl.x,t.endControl.y,t.end.x,t.end.y)})}}const ml=(r,e)=>{switch(e){case 0:return rt(r.topLeftBorderBox,r.topLeftPaddingBox,r.topRightBorderBox,r.topRightPaddingBox);case 1:return rt(r.topRightBorderBox,r.topRightPaddingBox,r.bottomRightBorderBox,r.bottomRightPaddingBox);case 2:return rt(r.bottomRightBorderBox,r.bottomRightPaddingBox,r.bottomLeftBorderBox,r.bottomLeftPaddingBox);case 3:default:return rt(r.bottomLeftBorderBox,r.bottomLeftPaddingBox,r.topLeftBorderBox,r.topLeftPaddingBox)}},Vm=(r,e)=>{switch(e){case 0:return rt(r.topLeftBorderBox,r.topLeftBorderDoubleOuterBox,r.topRightBorderBox,r.topRightBorderDoubleOuterBox);case 1:return rt(r.topRightBorderBox,r.topRightBorderDoubleOuterBox,r.bottomRightBorderBox,r.bottomRightBorderDoubleOuterBox);case 2:return rt(r.bottomRightBorderBox,r.bottomRightBorderDoubleOuterBox,r.bottomLeftBorderBox,r.bottomLeftBorderDoubleOuterBox);case 3:default:return rt(r.bottomLeftBorderBox,r.bottomLeftBorderDoubleOuterBox,r.topLeftBorderBox,r.topLeftBorderDoubleOuterBox)}},Ym=(r,e)=>{switch(e){case 0:return rt(r.topLeftBorderDoubleInnerBox,r.topLeftPaddingBox,r.topRightBorderDoubleInnerBox,r.topRightPaddingBox);case 1:return rt(r.topRightBorderDoubleInnerBox,r.topRightPaddingBox,r.bottomRightBorderDoubleInnerBox,r.bottomRightPaddingBox);case 2:return rt(r.bottomRightBorderDoubleInnerBox,r.bottomRightPaddingBox,r.bottomLeftBorderDoubleInnerBox,r.bottomLeftPaddingBox);case 3:default:return rt(r.bottomLeftBorderDoubleInnerBox,r.bottomLeftPaddingBox,r.topLeftBorderDoubleInnerBox,r.topLeftPaddingBox)}},Wm=(r,e)=>{switch(e){case 0:return Pn(r.topLeftBorderStroke,r.topRightBorderStroke);case 1:return Pn(r.topRightBorderStroke,r.bottomRightBorderStroke);case 2:return Pn(r.bottomRightBorderStroke,r.bottomLeftBorderStroke);case 3:default:return Pn(r.bottomLeftBorderStroke,r.topLeftBorderStroke)}},Pn=(r,e)=>{const t=[];return We(r)?t.push(r.subdivide(.5,!1)):t.push(r),We(e)?t.push(e.subdivide(.5,!0)):t.push(e),t},rt=(r,e,t,A)=>{const n=[];return We(r)?n.push(r.subdivide(.5,!1)):n.push(r),We(t)?n.push(t.subdivide(.5,!0)):n.push(t),We(A)?n.push(A.subdivide(.5,!0).reverse()):n.push(A),We(e)?n.push(e.subdivide(.5,!1).reverse()):n.push(e),n};class Xm{constructor(e,t){this.ctx=e.ctx,this.pathCallbacks=t}async renderSolidBorder(e,t,A){this.pathCallbacks.path(ml(A,t)),this.ctx.fillStyle=he(e),this.ctx.fill()}async renderDoubleBorder(e,t,A,n){if(t<3){await this.renderSolidBorder(e,A,n);return}const i=Vm(n,A);this.pathCallbacks.path(i),this.ctx.fillStyle=he(e),this.ctx.fill();const s=Ym(n,A);this.pathCallbacks.path(s),this.ctx.fill()}async renderDashedDottedBorder(e,t,A,n,i){this.ctx.save();const s=Wm(n,A),a=ml(n,A);i===2&&(this.pathCallbacks.path(a),this.ctx.clip());let o,l,c,d;We(a[0])?(o=a[0].start.x,l=a[0].start.y):(o=a[0].x,l=a[0].y),We(a[1])?(c=a[1].end.x,d=a[1].end.y):(c=a[1].x,d=a[1].y);let g;A===0||A===2?g=Math.abs(o-c):g=Math.abs(l-d),this.ctx.beginPath(),i===3?this.pathCallbacks.formatPath(s):this.pathCallbacks.formatPath(a.slice(0,2));let p=t<3?t*3:t*2,m=t<3?t*2:t;i===3&&(p=t,m=t);let B=!0;if(g<=p*2)B=!1;else if(g<=p*2+m){const y=g/(2*p+m);p*=y,m*=y}else{const y=Math.floor((g+m)/(p+m)),x=(g-y*p)/(y-1),C=(g-(y+1)*p)/y;m=C<=0||Math.abs(m-x)<Math.abs(m-C)?x:C}if(B&&(i===3?this.ctx.setLineDash([0,p+m]):this.ctx.setLineDash([p,m])),i===3?(this.ctx.lineCap="round",this.ctx.lineWidth=t):this.ctx.lineWidth=t*2+1.1,this.ctx.strokeStyle=he(e),this.ctx.stroke(),this.ctx.setLineDash([]),i===2){if(We(a[0])){const y=a[3],x=a[0];this.ctx.beginPath(),this.pathCallbacks.formatPath([new K(y.end.x,y.end.y),new K(x.start.x,x.start.y)]),this.ctx.stroke()}if(We(a[1])){const y=a[1],x=a[2];this.ctx.beginPath(),this.pathCallbacks.formatPath([new K(y.end.x,y.end.y),new K(x.start.x,x.start.y)]),this.ctx.stroke()}}this.ctx.restore()}}class Jm{constructor(e,t){this.activeEffects=[],this.ctx=e.ctx,this.pathCallback=t}applyEffects(e){for(;this.activeEffects.length;)this.popEffect();e.forEach(t=>this.applyEffect(t))}applyEffect(e){this.ctx.save(),km(e)?this.ctx.globalAlpha=e.opacity:Mm(e)?(this.ctx.translate(e.offsetX,e.offsetY),this.ctx.transform(e.matrix[0],e.matrix[1],e.matrix[2],e.matrix[3],e.matrix[4],e.matrix[5]),this.ctx.translate(-e.offsetX,-e.offsetY)):ol(e)?(this.pathCallback.path(e.path),this.ctx.clip()):Hm(e)&&e.applyClip(this.ctx),this.activeEffects.push(e)}popEffect(){this.activeEffects.pop(),this.ctx.restore()}getActiveEffectCount(){return this.activeEffects.length}hasActiveEffects(){return this.activeEffects.length>0}}const _m=["-apple-system","system-ui"],qm=/[\u2E80-\u2FFF\u3000-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uAC00-\uD7AF\uF900-\uFAFF\uFF01-\uFFEF]/,Us=r=>qm.test(r),jm=()=>{if(typeof navigator>"u")return null;const r=navigator.userAgent,e=/iPhone|iPad|iPod/.test(r),t=/Macintosh/.test(r)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>1;if(!e&&!t)return null;const A=[/(?:iPhone|CPU(?:\siPhone)?)\sOS\s(\d+)[\._](\d+)/,/Version\/(\d+)\.(\d+)/];for(const n of A){const i=r.match(n);if(i&&i[1])return parseInt(i[1],10)}return null},Zm=r=>{const e=jm();return e!==null&&e>=15&&e<17?r.map(t=>_m.indexOf(t)!==-1?'-apple-system, "Helvetica Neue", Arial, sans-serif':t):r};class $m{constructor(e){this.ctx=e.ctx,this.options=e.options}iterateLettersWithLetterSpacing(e,t,A,n,i){if(Bt(n)){this.iterateVerticalGlyphs(e,t,A,n,i);return}const s=TA(e.text),a=e.bounds.top+A;let o=e.bounds.left;for(const l of s){if(Us(l)){const c=this.ctx.textBaseline;this.ctx.textBaseline="ideographic",i(l,o,a),this.ctx.textBaseline=c}else i(l,o,a);o+=this.ctx.measureText(l).width+t}}iterateVerticalGlyphs(e,t,A,n,i){const s=TA(e.text);let a=e.bounds.top;for(const o of s){if(I1(n)||!Us(o)&&o.trim().length>0)this.ctx.save(),this.ctx.translate(e.bounds.left+A,a),this.ctx.rotate(n===4?-Math.PI/2:Math.PI/2),i(o,0,0),this.ctx.restore();else{const l=this.ctx.textBaseline;Us(o)&&(this.ctx.textBaseline="ideographic"),i(o,e.bounds.left,a+A),this.ctx.textBaseline=l}a+=this.ctx.measureText(o).width+t}}renderTextWithLetterSpacing(e,t,A,n=0){t===0&&!Bt(n)?this.ctx.fillText(e.text,e.bounds.left,e.bounds.top+A):this.iterateLettersWithLetterSpacing(e,t,A,n,(i,s,a)=>{this.ctx.fillText(i,s,a)})}renderTextBoundWithPaintOrder(e,t,A){A.forEach(n=>{switch(n){case 0:this.ctx.fillStyle=he(t.color),this.renderTextWithLetterSpacing(e,t.letterSpacing,t.fontSize.number,t.writingMode);break;case 1:t.webkitTextStrokeWidth&&e.text.trim().length&&(this.ctx.strokeStyle=he(t.webkitTextStrokeColor),this.ctx.lineWidth=t.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",t.letterSpacing===0&&!Bt(t.writingMode)?this.ctx.strokeText(e.text,e.bounds.left,e.bounds.top+t.fontSize.number):this.iterateLettersWithLetterSpacing(e,t.letterSpacing,t.fontSize.number,t.writingMode,(i,s,a)=>this.ctx.strokeText(i,s,a)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}})}renderTextDecoration(e,t){this.ctx.fillStyle=he(t.textDecorationColor||t.color);let A=1;typeof t.textDecorationThickness=="number"?A=t.textDecorationThickness:t.textDecorationThickness==="from-font"&&(A=Math.max(1,Math.floor(t.fontSize.number*.05)));let n=0;typeof t.textUnderlineOffset=="number"&&(n=t.textUnderlineOffset);const i=t.textDecorationStyle;t.textDecorationLine.forEach(s=>{let a=0;switch(s){case 1:a=e.top+e.height-A+n;break;case 2:a=e.top;break;case 3:a=e.top+(e.height/2-A/2);break;default:return}this.drawDecorationLine(e.left,a,e.width,A,i)})}drawDecorationLine(e,t,A,n,i){switch(i){case 0:this.ctx.fillRect(e,t,A,n);break;case 1:const s=Math.max(1,n);this.ctx.fillRect(e,t,A,n),this.ctx.fillRect(e,t+n+s,A,n);break;case 2:this.ctx.save(),this.ctx.beginPath(),this.ctx.setLineDash([n,n*2]),this.ctx.lineWidth=n,this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.moveTo(e,t+n/2),this.ctx.lineTo(e+A,t+n/2),this.ctx.stroke(),this.ctx.restore();break;case 3:this.ctx.save(),this.ctx.beginPath(),this.ctx.setLineDash([n*3,n*2]),this.ctx.lineWidth=n,this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.moveTo(e,t+n/2),this.ctx.lineTo(e+A,t+n/2),this.ctx.stroke(),this.ctx.restore();break;case 4:this.ctx.save(),this.ctx.beginPath(),this.ctx.lineWidth=n,this.ctx.strokeStyle=this.ctx.fillStyle;const a=n*2,o=n*4;let l=e;for(this.ctx.moveTo(l,t+n/2);l<e+A;){const c=Math.min(l+o/2,e+A);if(this.ctx.quadraticCurveTo(l+o/4,t+n/2-a,c,t+n/2),l=c,l<e+A){const d=Math.min(l+o/2,e+A);this.ctx.quadraticCurveTo(l+o/4,t+n/2+a,d,t+n/2),l=d}}this.ctx.stroke(),this.ctx.restore();break;default:this.ctx.fillRect(e,t,A,n)}}truncateTextWithEllipsis(e,t,A){const n="…",i=this.ctx.measureText(n).width,s=TA(e);if(A===0){const a=c=>this.ctx.measureText(s.slice(0,c).join("")).width+i<=t;let o=0,l=s.length;for(;o<l;){const c=o+l+1>>1;a(c)?o=c:l=c-1}return s.slice(0,o).join("")+n}else{let a=i;const o=[];for(const l of s){const c=this.ctx.measureText(l).width;if(a+c>t)break;o.push(l),a+=c+A}return o.join("")+n}}createFontStyle(e){const t=e.fontVariant.filter(i=>i==="normal"||i==="small-caps").join(""),A=Zm(e.fontFamily).join(", "),n=ft(e.fontSize)?`${e.fontSize.number}${e.fontSize.unit}`:`${e.fontSize.number}px`;return[[e.fontStyle,t,e.fontWeight,n,A].join(" "),A,n]}async renderTextNode(e,t,A){const[n]=this.createFontStyle(t);this.ctx.font=n,this.ctx.direction=t.direction===1?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic";const i=t.paintOrder,s=t.fontSize.number*1.5;if(t.webkitLineClamp>0&&(t.display&2)!==0&&t.overflowY===1&&e.textBounds.length>0){const d=[];let g=[],p=e.textBounds[0].bounds.top;e.textBounds.forEach(B=>{Math.abs(B.bounds.top-p)>=s*.5?(g.length>0&&d.push(g),g=[B],p=B.bounds.top):g.push(B)}),g.length>0&&d.push(g);const m=t.webkitLineClamp;if(d.length>m){for(let y=0;y<m-1;y++)d[y].forEach(x=>{this.renderTextBoundWithPaintOrder(x,t,i)});const B=d[m-1];if(B&&B.length>0&&A){const y=B.map(F=>F.text).join(""),x=B[0],C=A.width-(x.bounds.left-A.left),I=this.truncateTextWithEllipsis(y,C,t.letterSpacing),E=new fA(I,x.bounds);i.forEach(F=>{switch(F){case 0:this.ctx.fillStyle=he(t.color),t.letterSpacing===0&&!Bt(t.writingMode)?this.ctx.fillText(I,x.bounds.left,x.bounds.top+t.fontSize.number):this.iterateLettersWithLetterSpacing(E,t.letterSpacing,t.fontSize.number,t.writingMode,(M,H,L)=>this.ctx.fillText(M,H,L));break;case 1:t.webkitTextStrokeWidth&&I.trim().length&&(this.ctx.strokeStyle=he(t.webkitTextStrokeColor),this.ctx.lineWidth=t.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",t.letterSpacing===0&&!Bt(t.writingMode)?this.ctx.strokeText(I,x.bounds.left,x.bounds.top+t.fontSize.number):this.iterateLettersWithLetterSpacing(E,t.letterSpacing,t.fontSize.number,t.writingMode,(M,H,L)=>this.ctx.strokeText(M,H,L)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}})}return}}const o=t.textOverflow===1&&A&&t.overflowX===1&&e.textBounds.length>0;let l=!1,c="";if(o){const d=e.textBounds[0].bounds.top;if(e.textBounds.every(p=>Math.abs(p.bounds.top-d)<s*.5)){let p=e.textBounds.map(y=>y.text).join("");p=p.replace(/\s+/g," ").trim();const m=this.ctx.measureText(p).width,B=A.width;m>B&&(l=!0,c=this.truncateTextWithEllipsis(p,B,t.letterSpacing))}}if(l){const d=e.textBounds[0],g=new fA(c,d.bounds);i.forEach(p=>{switch(p){case 0:{this.ctx.fillStyle=he(t.color),t.letterSpacing===0&&!Bt(t.writingMode)?this.ctx.fillText(c,d.bounds.left,d.bounds.top+t.fontSize.number):this.iterateLettersWithLetterSpacing(g,t.letterSpacing,t.fontSize.number,t.writingMode,(B,y,x)=>this.ctx.fillText(B,y,x));const m=t.textShadow;m.length&&c.trim().length&&(m.slice(0).reverse().forEach(B=>{this.ctx.shadowColor=he(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,t.letterSpacing===0&&!Bt(t.writingMode)?this.ctx.fillText(c,d.bounds.left,d.bounds.top+t.fontSize.number):this.iterateLettersWithLetterSpacing(g,t.letterSpacing,t.fontSize.number,t.writingMode,(y,x,C)=>this.ctx.fillText(y,x,C))}),this.ctx.shadowColor="",this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.ctx.shadowBlur=0);break}case 1:t.webkitTextStrokeWidth&&c.trim().length&&(this.ctx.strokeStyle=he(t.webkitTextStrokeColor),this.ctx.lineWidth=t.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round",t.letterSpacing===0&&!Bt(t.writingMode)?this.ctx.strokeText(c,d.bounds.left,d.bounds.top+t.fontSize.number):this.iterateLettersWithLetterSpacing(g,t.letterSpacing,t.fontSize.number,t.writingMode,(m,B,y)=>this.ctx.strokeText(m,B,y)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter");break}});return}e.textBounds.forEach(d=>{i.forEach(g=>{switch(g){case 0:{this.ctx.fillStyle=he(t.color),this.renderTextWithLetterSpacing(d,t.letterSpacing,t.fontSize.number,t.writingMode);const p=t.textShadow;p.length&&d.text.trim().length&&(p.slice(0).reverse().forEach(m=>{this.ctx.shadowColor=he(m.color),this.ctx.shadowOffsetX=m.offsetX.number*this.options.scale,this.ctx.shadowOffsetY=m.offsetY.number*this.options.scale,this.ctx.shadowBlur=m.blur.number,this.renderTextWithLetterSpacing(d,t.letterSpacing,t.fontSize.number,t.writingMode)}),this.ctx.shadowColor="",this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.ctx.shadowBlur=0),t.textDecorationLine.length&&this.renderTextDecoration(d.bounds,t);break}case 1:{if(t.webkitTextStrokeWidth&&d.text.trim().length){this.ctx.strokeStyle=he(t.webkitTextStrokeColor),this.ctx.lineWidth=t.webkitTextStrokeWidth,this.ctx.lineJoin=typeof window<"u"&&window.chrome?"miter":"round";const p=t.fontSize.number;t.letterSpacing===0&&!Bt(t.writingMode)?this.ctx.strokeText(d.text,d.bounds.left,d.bounds.top+p):this.iterateLettersWithLetterSpacing(d,t.letterSpacing,p,t.writingMode,(m,B,y)=>this.ctx.strokeText(m,B,y)),this.ctx.strokeStyle="",this.ctx.lineWidth=0,this.ctx.lineJoin="miter"}break}}})})}}const e4=1e4;class Fs extends fl{constructor(e,t){super(e,t),this.canvas=t.canvas?t.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),t.canvas||(this.canvas.width=Math.floor(t.width*t.scale),this.canvas.height=Math.floor(t.height*t.scale),this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`),this.fontMetrics=new zm(document),this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-t.x,-t.y),this.ctx.textBaseline="bottom",t.imageSmoothing!==void 0&&(this.ctx.imageSmoothingEnabled=t.imageSmoothing),t.imageSmoothingQuality&&(this.ctx.imageSmoothingQuality=t.imageSmoothingQuality),this.backgroundRenderer=new Gm({ctx:this.ctx,context:this.context,canvas:this.canvas,options:{width:t.width,height:t.height,scale:t.scale}}),this.borderRenderer=new Xm({ctx:this.ctx},{path:A=>this.path(A),formatPath:A=>this.formatPath(A)}),this.effectsRenderer=new Jm({ctx:this.ctx},{path:A=>this.path(A)}),this.textRenderer=new $m({ctx:this.ctx,context:this.context,options:{scale:t.scale}}),this.context.logger.debug(`Canvas renderer initialized (${t.width}x${t.height}) with scale ${t.scale}`)}async renderStack(e){e.element.container.styles.isVisible()&&await this.renderStackContent(e)}async renderNode(e){me(e.container.flags,16),e.container.styles.isVisible()&&(await this.renderNodeBackgroundAndBorders(e),await this.renderNodeContent(e))}renderReplacedElement(e,t,A){const n=A.naturalWidth||e.intrinsicWidth,i=A.naturalHeight||e.intrinsicHeight;if(A&&n>0&&i>0){const s=vr(e),a=Tn(t);this.path(a),this.ctx.save(),this.ctx.clip();let o=0,l=0,c=n,d=i,g=s.left,p=s.top,m=s.width,B=s.height;const{objectFit:y}=e.styles,x=m/B,C=c/d;if(y===2)C>x?(B=m/C,p+=(s.height-B)/2):(m=B*C,g+=(s.width-m)/2);else if(y===4)C>x?(c=d*x,o+=(n-c)/2):(d=c/x,l+=(i-d)/2);else if(y===8)c>m?(o+=(c-m)/2,c=m):(g+=(m-c)/2,m=c),d>B?(l+=(d-B)/2,d=B):(p+=(B-d)/2,B=d);else if(y===16){const I=C>x?m:B*C,E=c>m?c:m;I<E?C>x?(B=m/C,p+=(s.height-B)/2):(m=B*C,g+=(s.width-m)/2):(c>m?(o+=(c-m)/2,c=m):(g+=(m-c)/2,m=c),d>B?(l+=(d-B)/2,d=B):(p+=(B-d)/2,B=d))}this.ctx.drawImage(A,o,l,c,d,g,p,m,B),this.ctx.restore()}}async renderNodeContent(e){this.effectsRenderer.applyEffects(e.getEffects(4));const t=e.container,A=e.curves,n=t.styles,i=vr(t);for(const s of t.textNodes)await this.textRenderer.renderTextNode(s,n,i);if(t instanceof N0)try{const s=await this.context.cache.match(t.src),a=this.ctx.imageSmoothingEnabled;n.imageRendering===qe.PIXELATED||n.imageRendering===qe.CRISP_EDGES?(this.context.logger.debug(`Disabling image smoothing for ${t.src} due to CSS image-rendering: ${n.imageRendering===qe.PIXELATED?"pixelated":"crisp-edges"}`),this.ctx.imageSmoothingEnabled=!1):n.imageRendering===qe.SMOOTH&&(this.context.logger.debug(`Enabling image smoothing for ${t.src} due to CSS image-rendering: smooth`),this.ctx.imageSmoothingEnabled=!0),this.renderReplacedElement(t,A,s),this.ctx.imageSmoothingEnabled=a}catch{this.context.logger.error(`Error loading image ${t.src}`)}if(t instanceof O0&&this.renderReplacedElement(t,A,t.canvas),t instanceof R0)try{const s=await this.context.cache.match(t.svg);this.renderReplacedElement(t,A,s)}catch{this.context.logger.error(`Error loading svg ${t.svg.substring(0,255)}`)}if(t instanceof Y0&&t.tree){const a=await new Fs(this.context,{scale:this.options.scale,backgroundColor:t.backgroundColor,x:0,y:0,width:t.width,height:t.height}).render(t.tree);t.width&&t.height&&this.ctx.drawImage(a,0,0,t.width,t.height,t.bounds.left,t.bounds.top,t.bounds.width,t.bounds.height)}if(t instanceof pr){const s=Math.min(t.bounds.width,t.bounds.height);t.type===Fn?t.checked&&(this.ctx.save(),this.path([new K(t.bounds.left+s*.39363,t.bounds.top+s*.79),new K(t.bounds.left+s*.16,t.bounds.top+s*.5549),new K(t.bounds.left+s*.27347,t.bounds.top+s*.44071),new K(t.bounds.left+s*.39694,t.bounds.top+s*.5649),new K(t.bounds.left+s*.72983,t.bounds.top+s*.23),new K(t.bounds.left+s*.84,t.bounds.top+s*.34085),new K(t.bounds.left+s*.39363,t.bounds.top+s*.79)]),this.ctx.fillStyle=he(z0),this.ctx.fill(),this.ctx.restore()):t.type===In&&t.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(t.bounds.left+s/2,t.bounds.top+s/2,s/4,0,Math.PI*2,!0),this.ctx.fillStyle=he(z0),this.ctx.fill(),this.ctx.restore())}if(t4(t)&&t.value.length){const[s,a,o]=this.textRenderer.createFontStyle(n),{baseline:l}=this.fontMetrics.getMetrics(a,o);this.ctx.font=s;const c=t instanceof pr&&t.isPlaceholder;this.ctx.fillStyle=he(c?im:n.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=r4(t.styles.textAlign);const d=vr(t);let g=0;switch(t.styles.textAlign){case 1:g+=d.width/2;break;case 2:g+=d.width;break}let p=0;if(t instanceof pr){const B=ee(n.fontSize,0);p=(d.height-B)/2}const m=d.add(g,p,0,0);this.ctx.save(),this.path([new K(d.left,d.top),new K(d.left+d.width,d.top),new K(d.left+d.width,d.top+d.height),new K(d.left,d.top+d.height)]),this.ctx.clip(),this.textRenderer.renderTextWithLetterSpacing(new fA(t.value,m),n.letterSpacing,l,n.writingMode),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(me(t.styles.display,2048)){if(t.styles.listStyleImage!==null){const s=t.styles.listStyleImage;if(s.type===0){let a;const o=s.url;try{a=await this.context.cache.match(o),this.ctx.drawImage(a,t.bounds.left-(a.width+10),t.bounds.top)}catch{this.context.logger.error(`Error loading list-style-image ${o}`)}}}else if(e.listValue&&t.styles.listStyleType!==-1){const[s]=this.textRenderer.createFontStyle(n);this.ctx.font=s,this.ctx.fillStyle=he(n.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right";const a=new Ne(t.bounds.left,t.bounds.top+ee(t.styles.paddingTop,t.bounds.width),t.bounds.width,f0(n.lineHeight,n.fontSize.number)/2+1);this.textRenderer.renderTextWithLetterSpacing(new fA(e.listValue,a),n.letterSpacing,f0(n.lineHeight,n.fontSize.number)/2+2,n.writingMode),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"}}}async renderStackContent(e){me(e.element.container.flags,16),await this.renderNodeBackgroundAndBorders(e.element);for(const t of e.negativeZIndex)await this.renderStack(t);await this.renderNodeContent(e.element);for(const t of e.nonInlineLevel)await this.renderNode(t);for(const t of e.nonPositionedFloats)await this.renderStack(t);for(const t of e.nonPositionedInlineLevel)await this.renderStack(t);for(const t of e.inlineLevel)await this.renderNode(t);for(const t of e.zeroOrAutoZIndexOrTransformedOrOpacity)await this.renderStack(t);for(const t of e.positiveZIndex)await this.renderStack(t)}mask(e){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(e.slice(0).reverse()),this.ctx.closePath()}path(e){this.ctx.beginPath(),this.formatPath(e),this.ctx.closePath()}formatPath(e){e.forEach((t,A)=>{const n=We(t)?t.start:t;A===0?this.ctx.moveTo(n.x,n.y):this.ctx.lineTo(n.x,n.y),We(t)&&this.ctx.bezierCurveTo(t.startControl.x,t.startControl.y,t.endControl.x,t.endControl.y,t.end.x,t.end.y)})}async renderNodeBackgroundAndBorders(e){this.effectsRenderer.applyEffects(e.getEffects(2));const t=e.container.styles,A=!_t(t.backgroundColor)||t.backgroundImage.length,n=[{style:t.borderTopStyle,color:t.borderTopColor,width:t.borderTopWidth},{style:t.borderRightStyle,color:t.borderRightColor,width:t.borderRightWidth},{style:t.borderBottomStyle,color:t.borderBottomColor,width:t.borderBottomWidth},{style:t.borderLeftStyle,color:t.borderLeftColor,width:t.borderLeftWidth}],i=A4(OA(t.backgroundClip,0),e.curves);(A||t.boxShadow.length)&&(this.ctx.save(),this.path(i),this.ctx.clip(),_t(t.backgroundColor)||(this.ctx.fillStyle=he(t.backgroundColor),this.ctx.fill()),await this.backgroundRenderer.renderBackgroundImage(e.container),this.ctx.restore(),t.boxShadow.slice(0).reverse().forEach(a=>{this.ctx.save();const o=Hn(e.curves),l=a.inset?0:e4,c=Tm(o,-l+(a.inset?1:-1)*a.spread.number,(a.inset?1:-1)*a.spread.number,a.spread.number*(a.inset?-2:2),a.spread.number*(a.inset?-2:2));a.inset?(this.path(o),this.ctx.clip(),this.mask(c)):(this.mask(o),this.ctx.clip(),this.path(c)),this.ctx.shadowOffsetX=a.offsetX.number+l,this.ctx.shadowOffsetY=a.offsetY.number,this.ctx.shadowColor=he(a.color),this.ctx.shadowBlur=a.blur.number,this.ctx.fillStyle=a.inset?he(a.color):"rgba(0,0,0,1)",this.ctx.fill(),this.ctx.restore()}));let s=0;for(const a of n)a.style!==0&&!_t(a.color)&&a.width>0&&(a.style===2?await this.borderRenderer.renderDashedDottedBorder(a.color,a.width,s,e.curves,2):a.style===3?await this.borderRenderer.renderDashedDottedBorder(a.color,a.width,s,e.curves,3):a.style===4?await this.borderRenderer.renderDoubleBorder(a.color,a.width,s,e.curves):await this.borderRenderer.renderSolidBorder(a.color,s,e.curves)),s++}async render(e){this.options.backgroundColor&&(this.ctx.fillStyle=he(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height));const t=Dm(e);return await this.renderStack(t),this.effectsRenderer.applyEffects([]),this.canvas}}const t4=r=>r instanceof V0||r instanceof G0?!0:r instanceof pr&&r.type!==In&&r.type!==Fn,A4=(r,e)=>{switch(r){case 0:return Hn(e);case 2:return Im(e);case 1:default:return Tn(e)}},r4=r=>{switch(r){case 1:return"center";case 2:return"right";case 0:default:return"left"}};class n4 extends fl{constructor(e,t){super(e,t),this.canvas=t.canvas?t.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.options=t,this.canvas.width=Math.floor(t.width*t.scale),this.canvas.height=Math.floor(t.height*t.scale),this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`,this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-t.x,-t.y),this.context.logger.debug(`EXPERIMENTAL ForeignObject renderer initialized (${t.width}x${t.height} at ${t.x},${t.y}) with scale ${t.scale}`)}async render(e){const t=gs(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,e),A=await i4(t);return this.options.backgroundColor&&(this.ctx.fillStyle=he(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(A,-this.options.x*this.options.scale,-this.options.y*this.options.scale),this.canvas}}const i4=r=>new Promise((e,t)=>{const A=new Image;A.onload=()=>{e(A)},A.onerror=t,A.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(r))}`});class wl{constructor({id:e,enabled:t}){this.id=e,this.enabled=t,this.start=Date.now()}debug(...e){this.enabled&&(typeof window<"u"&&window.console&&typeof console.debug=="function"||this.info(...e))}getTime(){return Date.now()-this.start}info(...e){this.enabled&&typeof window<"u"&&window.console}warn(...e){this.enabled&&(typeof window<"u"&&window.console&&typeof console.warn=="function"||this.info(...e))}error(...e){this.enabled&&(typeof window<"u"&&window.console&&typeof console.error=="function"||this.info(...e))}}wl.instances={};class s4{constructor(e,t){if(this.context=e,this._options=t,this._cache=new Map,this._pendingOperations=new Map,this.maxSize=t.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(e){const t=this._pendingOperations.get(e);if(t)return t;if(this.has(e)){const A=this._cache.get(e);return A&&(A.lastAccessed=Date.now()),Promise.resolve()}if(Ss(e)||c4(e)){const A=this._addImageInternal(e);return this._pendingOperations.set(e,A),A.finally(()=>{this._pendingOperations.delete(e)}),A}return Promise.resolve()}async _addImageInternal(e){const t=this._options.imageTimeout??15e3,A=new Promise((i,s)=>{setTimeout(()=>{s(new Error(`Image load timeout after ${t}ms: ${e}`))},t)}),n=Promise.race([this.loadImage(e),A]);n.catch(i=>{this.context.logger.error(`Failed to load image ${e}: ${i instanceof Error?i.message:"Unknown error"}`)}),this.set(e,n)}match(e){const t=this._cache.get(e);if(t)return t.lastAccessed=Date.now(),t.value}set(e,t){if(this._cache.has(e)){const A=this._cache.get(e);A.value=t,A.lastAccessed=Date.now();return}this._cache.size>=this.maxSize&&this.evictLRU(),this._cache.set(e,{value:t,lastAccessed:Date.now()})}evictLRU(){let e=null,t=1/0;for(const[A,n]of this._cache.entries())n.lastAccessed<t&&(t=n.lastAccessed,e=A);e&&(this._cache.delete(e),this.context.logger.debug(`Cache: Evicted LRU entry: ${e}`))}size(){return this._cache.size}getMaxSize(){return this.maxSize}clear(){this._cache.clear()}async loadImage(e){const t=this.context.originChecker,A=o=>t.isSameOrigin(o),n=typeof this._options.customIsSameOrigin=="function"?await this._options.customIsSameOrigin(e,A):A(e),i=!Is(e)&&this._options.useCORS===!0&&De.SUPPORT_CORS_IMAGES&&!n,s=!Is(e)&&!n&&!Ss(e)&&typeof this._options.proxy=="string"&&De.SUPPORT_CORS_XHR&&!i;if(!n&&this._options.allowTaint===!1&&!Is(e)&&!Ss(e)&&!s&&!i)return;let a=e;return s&&(a=await this.proxy(a)),this.context.logger.debug(`Added image ${e.substring(0,256)}`),await new Promise((o,l)=>{const c=new Image;c.onload=()=>o(c),c.onerror=l,(d4(a)||i)&&(c.crossOrigin="anonymous"),c.src=a,c.complete===!0&&setTimeout(()=>o(c),500),this._options.imageTimeout>0&&setTimeout(()=>l(`Timed out (${this._options.imageTimeout}ms) loading image`),this._options.imageTimeout)})}has(e){return this._cache.has(e)}keys(){return Promise.resolve(Object.keys(this._cache))}proxy(e){const t=this._options.proxy;if(!t)throw new Error("No proxy defined");const A=e.substring(0,256);return new Promise((n,i)=>{const s=De.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=()=>{if(a.status===200)if(s==="text")n(a.response);else{const l=new FileReader;l.addEventListener("load",()=>n(l.result),!1),l.addEventListener("error",c=>i(c),!1),l.readAsDataURL(a.response)}else i(`Failed to proxy resource ${A} with status code ${a.status}`)},a.onerror=i;const o=t.indexOf("?")>-1?"&":"?";if(a.open("GET",`${t}${o}url=${encodeURIComponent(e)}&responseType=${s}`),s!=="text"&&a instanceof XMLHttpRequest&&(a.responseType=s),this._options.imageTimeout){const l=this._options.imageTimeout;a.timeout=l,a.ontimeout=()=>i(`Timed out (${l}ms) proxying ${A}`)}a.send()})}}const a4=/^data:image\/svg\+xml/i,o4=/^data:image\/.*;base64,/i,l4=/^data:image\/.*/i,c4=r=>De.SUPPORT_SVG_DRAWING||!h4(r),Is=r=>l4.test(r),d4=r=>o4.test(r),Ss=r=>r.substr(0,4)==="blob",h4=r=>r.substr(-3).toLowerCase()==="svg"||a4.test(r);class u4{constructor(e){if(!e||!e.document)throw new Error("Valid window object required for OriginChecker");if(!e.location||!e.location.href)throw new Error("Window object must have valid location");this.link=e.document.createElement("a"),this.origin=this.getOrigin(e.location.href)}getOrigin(e){return this.link.href=e,this.link.href=this.link.href,this.link.protocol+this.link.hostname+this.link.port}isSameOrigin(e){return this.getOrigin(e)===this.origin}getContextOrigin(){return this.origin}}class Nn{constructor(e,t,A){this.windowBounds=t,this.instanceName=`#${Nn.instanceCount++}`,this.config=A,this.logger=new wl({id:this.instanceName,enabled:e.logging}),this.originChecker=new u4(A.window),this.cache=e.cache??A.cache??new s4(this,e)}}Nn.instanceCount=1;class yr{constructor(e={}){if(this.window=e.window||(typeof window<"u"?window:null),!this.window)throw new Error("Window object is required but not available");this.cspNonce=e.cspNonce,this.cache=e.cache}static fromElement(e,t={}){const A=e.ownerDocument;if(!A)throw new Error("Element is not attached to a document");const n=A.defaultView;if(!n)throw new Error("Document is not attached to a window");return new yr({window:n,...t})}clone(e={}){return new yr({window:e.window||this.window,cspNonce:e.cspNonce??this.cspNonce,cache:e.cache??this.cache})}}function Gv(r){}class p4{constructor(e={}){this.config={maxImageTimeout:3e5,allowDataUrls:!0,...e}}validateUrl(e,t="general"){if(!e||typeof e!="string")return{valid:!1,error:"URL must be a non-empty string"};if(e.startsWith("data:"))return this.config.allowDataUrls?{valid:!0,sanitized:e}:{valid:!1,error:"Data URLs are not allowed"};if(e.startsWith("blob:"))return{valid:!0,sanitized:e};try{const A=new URL(e);if(!["http:","https:"].includes(A.protocol))return{valid:!1,error:`Protocol ${A.protocol} is not allowed. Only http and https are permitted.`};if(t==="proxy"&&this.config.allowedProxyDomains&&this.config.allowedProxyDomains.length>0){const n=A.hostname.toLowerCase();if(!this.config.allowedProxyDomains.some(s=>{const a=s.toLowerCase();return n===a||n.endsWith("."+a)}))return{valid:!1,error:`Proxy domain ${A.hostname} is not in the allowed list`}}if(t==="proxy"){if(!this.config.allowLocalhostProxy){const n=A.hostname.toLowerCase();if(n==="localhost"||n==="127.0.0.1"||n==="::1")return{valid:!1,error:"Localhost is not allowed for proxy URLs"};if(this.isPrivateIP(n))return{valid:!1,error:"Private IP addresses are not allowed for proxy URLs"};if(n.startsWith("169.254.")||n.startsWith("fe80:"))return{valid:!1,error:"Link-local addresses are not allowed for proxy URLs"}}return{valid:!0,sanitized:e,requiresRuntimeCheck:!0}}return{valid:!0,sanitized:e}}catch(A){return{valid:!1,error:`Invalid URL format: ${A instanceof Error?A.message:"Unknown error"}`}}}isPrivateIP(e){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(A=>A.test(e))?!0:e.includes(":")?this.isPrivateIPv6(e):!1}isPrivateIPv6(e){const n=e.toLowerCase().trim().replace(/^\[|\]$/g,"").split("%")[0];if(/^(0:){7}1$/.test(n)||n==="::1"||/^(0:){7}0$/.test(n)||n==="::")return!0;const i=this.expandIPv6(n);if(!i)return this.isPrivateIPv6Prefix(n);const s=parseInt(i.substring(0,2),16);if(s>=252&&s<=253)return!0;if(s===254){const a=parseInt(i.substring(2,4),16);if(a>=128&&a<=191)return!0}return s===255}expandIPv6(e){try{if(e.includes("::")){const t=e.split("::");if(t.length>2)return null;const A=t[0]?t[0].split(":"):[],n=t[1]?t[1].split(":"):[],i=8-A.length-n.length;if(i<0)return null;const s=Array(i).fill("0000");return[...A,...s,...n].map(o=>o.padStart(4,"0")).join(":")}else{const t=e.split(":");return t.length!==8?null:t.map(A=>A.padStart(4,"0")).join(":")}}catch{return null}}isPrivateIPv6Prefix(e){return!!(/^fc[0-9a-f]{0,2}:?/i.test(e)||/^fd[0-9a-f]{0,2}:?/i.test(e)||/^fe[89ab][0-9a-f]:?/i.test(e)||/^ff[0-9a-f]{0,2}:?/i.test(e))}validateCspNonce(e){return!e||typeof e!="string"?{valid:!1,error:"CSP nonce must be a non-empty string"}:e.length<16?{valid:!1,error:"CSP nonce is too short (minimum 16 characters recommended)"}:/^[A-Za-z0-9+/=_-]+$/.test(e)?{valid:!0,sanitized:e}:{valid:!1,error:"CSP nonce contains invalid characters"}}validateImageTimeout(e){return typeof e!="number"||isNaN(e)?{valid:!1,error:"Image timeout must be a number"}:e<0?{valid:!1,error:"Image timeout cannot be negative"}:this.config.maxImageTimeout&&e>this.config.maxImageTimeout?{valid:!1,error:`Image timeout ${e}ms exceeds maximum allowed ${this.config.maxImageTimeout}ms`}:{valid:!0,sanitized:e}}validateDimensions(e,t){if(typeof e!="number"||typeof t!="number")return{valid:!1,error:"Dimensions must be numbers"};if(isNaN(e)||isNaN(t))return{valid:!1,error:"Dimensions cannot be NaN"};if(e<=0||t<=0)return{valid:!1,error:"Dimensions must be positive"};const A=32767;return e>A||t>A?{valid:!1,error:`Dimensions exceed maximum allowed (${A}px)`}:{valid:!0,sanitized:{width:e,height:t}}}validateScale(e){return typeof e!="number"||isNaN(e)?{valid:!1,error:"Scale must be a number"}:e<=0?{valid:!1,error:"Scale must be positive"}:e>10?{valid:!1,error:"Scale factor too large (maximum 10x)"}:{valid:!0,sanitized:e}}validateElement(e){return e?typeof e!="object"?{valid:!1,error:"Element must be an object"}:typeof HTMLElement<"u"&&e instanceof HTMLElement?e.ownerDocument?{valid:!0}:{valid:!1,error:"Element must be attached to a document"}:e.ownerDocument?e.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(e){const t=[],A=e.proxy;if(A!=null&&typeof A=="string"&&A.length>0){const n=this.validateUrl(A,"proxy");n.valid||t.push(`Proxy: ${n.error}`)}if(e.imageTimeout!==void 0){const n=this.validateImageTimeout(e.imageTimeout);n.valid||t.push(`Image timeout: ${n.error}`)}if(e.width!==void 0||e.height!==void 0){const n=e.width??800,i=e.height??600,s=this.validateDimensions(n,i);s.valid||t.push(`Dimensions: ${s.error}`)}if(e.scale!==void 0){const n=this.validateScale(e.scale);n.valid||t.push(`Scale: ${n.error}`)}if(e.cspNonce!==void 0){const n=this.validateCspNonce(e.cspNonce);n.valid||t.push(`CSP nonce: ${n.error}`)}if(this.config.customValidator){const n=this.config.customValidator(e,"options");n.valid||t.push(`Custom validation: ${n.error}`)}return t.length>0?{valid:!1,error:t.join("; ")}:{valid:!0}}}function g4(r={}){return new p4({allowDataUrls:!0,maxImageTimeout:3e5,...r})}class f4{constructor(e,t=!0){this.context=e,this.activeMetrics=new Map,this.completedMetrics=[],this.enabled=t,this.getTime=typeof performance<"u"&&typeof performance.now=="function"?()=>performance.now():()=>Date.now()}start(e,t){var A;this.enabled&&(this.activeMetrics.has(e)&&((A=this.context)==null||A.logger.warn(`Performance metric '${e}' already started. Overwriting.`)),this.activeMetrics.set(e,{name:e,startTime:this.getTime(),metadata:t}))}end(e){var A,n;if(!this.enabled)return;const t=this.activeMetrics.get(e);if(!t){(A=this.context)==null||A.logger.warn(`Performance metric '${e}' not found. Was start() called?`);return}return t.endTime=this.getTime(),t.duration=t.endTime-t.startTime,this.completedMetrics.push(t),this.activeMetrics.delete(e),(n=this.context)==null||n.logger.debug(`⏱️ ${e}: ${t.duration.toFixed(2)}ms`,t.metadata),t}measure(e,t,A){this.start(e,A);try{const n=t();return this.end(e),n}catch(n){throw this.end(e),n}}async measureAsync(e,t,A){this.start(e,A);try{const n=await t();return this.end(e),n}catch(n){throw this.end(e),n}}getMetrics(){return[...this.completedMetrics]}getMetric(e){return this.completedMetrics.find(t=>t.name===e)}getSummary(){const e=this.completedMetrics.reduce((A,n)=>A+(n.duration||0),0),t=this.completedMetrics.map(A=>({name:A.name,duration:A.duration||0,percentage:e>0?((A.duration||0)/e*100).toFixed(1)+"%":"0%"}));return{totalDuration:e,metrics:this.getMetrics(),breakdown:t}}logSummary(){if(!this.enabled||this.completedMetrics.length===0||!this.context)return;const e=this.getSummary();this.context.logger.info(`
2432
+ 📊 Performance Summary (Total: ${e.totalDuration.toFixed(2)}ms):`),e.breakdown.sort((t,A)=>A.duration-t.duration).forEach(t=>{this.context.logger.info(` ${t.name.padEnd(20)} ${t.duration.toFixed(2).padStart(8)}ms ${t.percentage.padStart(6)}`)})}clear(){this.activeMetrics.clear(),this.completedMetrics.splice(0)}isEnabled(){return this.enabled}getActiveMetrics(){return Array.from(this.activeMetrics.keys())}}const Bl=(r,e={},t)=>{const A=t||yr.fromElement(r,{cspNonce:e.cspNonce,cache:e.cache});return B4(r,e,A)},m4=r=>{typeof window<"u"&&(new yr({window,cspNonce:r}),void 0)};Bl.setCspNonce=m4;const w4=r=>{["scale","width","height","imageTimeout","x","y","windowWidth","windowHeight","scrollX","scrollY"].forEach(t=>{const A=r[t];if(A!=null&&typeof A!="number"){const n=Number(A);Number.isNaN(n)||(r[t]=n)}})},B4=async(r,e,t)=>{if(w4(e),!e.skipValidation){const re=e.validator||g4(),oe=re.validateElement(r);if(!oe.valid)throw new Error(oe.error);const j=re.validateOptions(e);if(!j.valid)throw new Error(`Invalid options: ${j.error}`)}if(!r||typeof r!="object")throw new Error("Invalid element provided as first argument");const A=r.ownerDocument;if(!A)throw new Error("Element is not attached to a Document");const n=A.defaultView;if(!n)throw new Error("Document is not attached to a Window");const i={allowTaint:e.allowTaint??!1,imageTimeout:e.imageTimeout??15e3,proxy:e.proxy,useCORS:e.useCORS??!1,customIsSameOrigin:e.customIsSameOrigin},s={logging:e.logging??!0,cache:e.cache??t.cache,...i},a=800,o=600,l=0,c=n,d={windowWidth:e.windowWidth??c.innerWidth??a,windowHeight:e.windowHeight??c.innerHeight??o,scrollX:e.scrollX??c.pageXOffset??l,scrollY:e.scrollY??c.pageYOffset??l},g=new Ne(d.scrollX,d.scrollY,d.windowWidth,d.windowHeight),p=new Nn(s,g,t),m=e.enablePerformanceMonitoring??e.logging??!1,B=new f4(p,m);B.start("total",{width:d.windowWidth,height:d.windowHeight});const y=e.foreignObjectRendering??!1,x={allowTaint:e.allowTaint??!1,onclone:e.onclone,ignoreElements:e.ignoreElements,iframeContainer:e.iframeContainer,inlineImages:y,copyStyles:y,cspNonce:e.cspNonce??t.cspNonce};p.logger.debug(`Starting document clone with size ${g.width}x${g.height} scrolled to ${-g.left},${-g.top}`),B.start("clone");const C=new il(p,r,x),I=C.clonedReferenceElement;if(!I)throw new Error("Unable to find element in cloned iframe");const E=await C.toIFrame(A,g);B.end("clone");const{width:F,height:M,left:H,top:L}=ms(I)||cm(I)?Fh(I.ownerDocument):Gr(p,I),N=v4(p,I,e.backgroundColor),Y={canvas:e.canvas,backgroundColor:N,scale:e.scale??n.devicePixelRatio??1,x:(e.x??0)+H,y:(e.y??0)+L,width:e.width??Math.ceil(F),height:e.height??Math.ceil(M),imageSmoothing:e.imageSmoothing,imageSmoothingQuality:e.imageSmoothingQuality};let q,W;try{return y?(p.logger.debug("Document cloned, using foreign object rendering"),B.start("render-foreignobject"),q=await new n4(p,Y).render(I),B.end("render-foreignobject")):(p.logger.debug(`Document cloned, element located at ${H},${L} with size ${F}x${M} using computed rendering`),p.logger.debug("Starting DOM parsing"),B.start("parse"),W=X0(p,I),B.end("parse"),N===W.styles.backgroundColor&&(W.styles.backgroundColor=wt.TRANSPARENT),p.logger.debug(`Starting renderer for element at ${Y.x},${Y.y} with size ${Y.width}x${Y.height}`),B.start("render"),q=await new Fs(p,Y).render(W),B.end("render")),B.start("cleanup"),(e.removeContainer??!0)&&(il.destroy(E)||p.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")),B.end("cleanup"),B.end("total"),p.logger.debug("Finished rendering"),m&&B.logSummary(),q}finally{W&&W.restoreTree()}},v4=(r,e,t)=>{const A=e.ownerDocument,n=A.documentElement?MA(r,getComputedStyle(A.documentElement).backgroundColor):wt.TRANSPARENT,i=A.body?MA(r,getComputedStyle(A.body).backgroundColor):wt.TRANSPARENT,s=typeof t=="string"?MA(r,t):t===null?wt.TRANSPARENT:4294967295;return e===A.documentElement?_t(n)?_t(i)?s:i:n:s},y4="vnr-clip-overlay";function RA(){const r=window.visualViewport;return{width:Math.round((r==null?void 0:r.width)??document.documentElement.clientWidth),height:Math.round((r==null?void 0:r.height)??document.documentElement.clientHeight),scrollX:window.scrollX,scrollY:window.scrollY}}function b4(r){var e;return((e=r.classList)==null?void 0:e.contains(y4))??!1}function C4(r){var t;return((t=r.tagName)==null?void 0:t.toLowerCase())==="vanira-convai"?!0:typeof r.closest=="function"&&!!r.closest("vanira-convai")}function vl(r){var e,t;return b4(r)||C4(r)||(e=r.classList)!=null&&e.contains("vnr-screen-overlay-root")||(t=r.classList)!=null&&t.contains("vnr-screen-vision-root")?!0:typeof r.closest=="function"&&(!!r.closest(".vnr-screen-overlay-root")||!!r.closest(".vnr-screen-vision-root"))}function x4(r,e){if(r.width<=e)return r;const t=e/r.width,A=document.createElement("canvas");A.width=e,A.height=Math.round(r.height*t);const n=A.getContext("2d");return n?(n.drawImage(r,0,0,A.width,A.height),A):r}async function yl(r){const e=window.scrollX+r.left,t=window.scrollY+r.top;return Bl(document.body,{x:e,y:t,width:r.width,height:r.height,windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight,scrollX:-window.scrollX,scrollY:-window.scrollY,useCORS:!0,allowTaint:!1,scale:1,ignoreElements:A=>vl(A),logging:!1})}async function bl(r,e=.88){try{const t=await new Promise(A=>r.toBlob(n=>A(n),"image/jpeg",e));if(!t)throw new Error("Failed to encode clip as JPEG");return t}catch(t){const A=t instanceof Error?t.message:String(t);throw/tainted|security|cross-origin/i.test(A)?new Error("Could not export this page region (cross-origin content). Try selecting a simpler area."):t}}const On="vnr-clip-overlay",Cl="2147483647",Q4="rgba(0, 0, 0, 0.28)";function E4(r={}){const e=r.minSizePx??24,t=r.hint??"Drag to select an area — release to clip.";return new Promise(A=>{let n=!1,i=!1,s=0,a=0,o=!1,l={left:0,top:0,width:0,height:0},c=!1,d=null;const g=j=>{n||(n=!0,re(),A(j))},p=document.createElement("div");p.className=On,p.style.cssText=["position:fixed","inset:0",`z-index:${Cl}`,"cursor:crosshair","user-select:none","touch-action:none","background:transparent","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif"].join(";");const m=document.createElement("div");m.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 y=document.createElement("div");y.className=On,y.style.cssText=["position:fixed","top:16px","left:50%","transform:translateX(-50%)",`z-index:${Cl}`,"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 x=document.createElement("span");x.style.cssText="flex:1;font-size:13px;color:#e2e8f0;line-height:1.4",x.textContent=t;const C=document.createElement("button");C.type="button",C.textContent="Cancel",C.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(";"),y.appendChild(x),y.appendChild(C);const I=j=>{j.key==="Escape"&&!i&&g(null)},E=()=>c&&l.width>=e&&l.height>=e,F=()=>{c=!1,l={left:0,top:0,width:0,height:0},M()},M=()=>{if(!c||l.width<1||l.height<1){m.style.display="none",B.style.display="none";return}m.style.display="block",m.style.left=`${l.left}px`,m.style.top=`${l.top}px`,m.style.width=`${l.width}px`,m.style.height=`${l.height}px`,m.style.boxShadow=`0 0 0 9999px ${Q4}`,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`},H=j=>{const Z=j instanceof Error?j.message:"Capture failed";x.textContent=Z.length>120?`${Z.slice(0,117)}…`:Z,x.style.color="#fca5a5",window.setTimeout(()=>{x.textContent=t,x.style.color="#e2e8f0"},4500)},L=async j=>{if(!(i||n)){i=!0,C.disabled=!0,x.textContent="Clipping…",x.style.color="#e2e8f0",p.style.visibility="hidden",y.style.visibility="hidden";try{const Z=await yl(j),ce=await bl(Z),ve=document.documentElement.clientWidth,Se=document.documentElement.clientHeight;g({blob:ce,region:{x:j.left/ve,y:j.top/Se,w:j.width/ve,h:j.height/Se},viewport:{width:ve,height:Se},pixelSize:{width:Z.width,height:Z.height}})}catch(Z){i=!1,C.disabled=!1,p.style.visibility="visible",y.style.visibility="visible",H(Z),F()}}},N=j=>{const Z=j??d;if(Z!==null)try{p.releasePointerCapture(Z)}catch{}d=null},Y=j=>{if(!(!o||i)){if(o=!1,N(j==null?void 0:j.pointerId),E()){L({...l});return}F()}},q=j=>{i||j.target.closest(`.${On}`)!==y&&(o=!0,c=!0,s=j.clientX,a=j.clientY,l={left:s,top:a,width:0,height:0},d=j.pointerId,p.setPointerCapture(j.pointerId),M())},W=j=>{if(!o||i)return;const Z=Math.min(s,j.clientX),ce=Math.min(a,j.clientY),ve=Math.max(s,j.clientX),Se=Math.max(a,j.clientY);l={left:Z,top:ce,width:ve-Z,height:Se-ce},M()},re=()=>{Ii(!1),document.removeEventListener("keydown",I),window.removeEventListener("pointerup",oe,!0),window.removeEventListener("pointercancel",oe,!0),p.removeEventListener("pointerdown",q),p.removeEventListener("pointermove",W),p.removeEventListener("pointerup",Y),p.removeEventListener("pointercancel",Y),N(),p.remove(),y.remove()},oe=j=>Y(j);C.addEventListener("click",()=>g(null)),Ii(!0),p.appendChild(m),p.appendChild(B),document.body.appendChild(p),document.body.appendChild(y),document.addEventListener("keydown",I),window.addEventListener("pointerup",oe,!0),window.addEventListener("pointercancel",oe,!0),p.addEventListener("pointerdown",q),p.addEventListener("pointermove",W),p.addEventListener("pointerup",Y),p.addEventListener("pointercancel",Y)})}function Ms(){document.querySelectorAll(`.${On}`).forEach(r=>r.remove()),Ii(!1)}const U4=["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(", "),F4='[id]:not([id=""]), svg[id], polygon[id]',I4="svg[id], polygon[id], svg[data-vanira-static-diagram], svg[data-vanira-static-diagram] polygon",xl=new Set(["root","app","__next"]);function Ql(r,e,t){const A=r.getScreenCTM(),n=r.ownerSVGElement;if(!A||!n)return[];const i=[];for(let s=0;s<r.points.length;s++){const a=r.points.getItem(s),o=n.createSVGPoint();o.x=a.x,o.y=a.y;const l=o.matrixTransform(A);i.push({x:l.x/e,y:l.y/t})}return i}function S4(r,e,t){if(r instanceof SVGPolygonElement){const A=Ql(r,e,t);return A.length>=2?A:void 0}if(r instanceof SVGSVGElement){const A=r.querySelector("polygon");if(!A)return;const n=Ql(A,e,t);return n.length>=2?n:void 0}}function El(r){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(r):r.replace(/([^\w-])/g,"\\$1")}function M4(r){if(r.id){const n=`#${El(r.id)}`;try{if(document.querySelectorAll(n).length===1)return n}catch{}}const e=r.getAttribute("data-testid");if(e){const n=`[data-testid="${e.replace(/"/g,'\\"')}"]`;try{if(document.querySelectorAll(n).length===1)return n}catch{}}const t=[];let A=r;for(;A&&A!==document.body&&A!==document.documentElement;){let n=A.tagName.toLowerCase();if(A.classList.length>0){const s=[...A.classList].filter(a=>!a.startsWith("vnr-")).slice(0,2).map(a=>`.${El(a)}`).join("");n+=s}const i=A.parentElement;if(i){const s=[...i.children].filter(a=>a.tagName===A.tagName);s.length>1&&(n+=`:nth-of-type(${s.indexOf(A)+1})`)}t.unshift(n);try{const s=t.join(" > ");if(document.querySelectorAll(s).length===1)return s}catch{}if(A=A.parentElement,t.length>=8)break}return t.join(" > ")||r.tagName.toLowerCase()}function Ul(r,e,t){const A=r.getBoundingClientRect();if(A.width<2||A.height<2||A.bottom<=0||A.right<=0||A.top>=t||A.left>=e)return!1;if(r instanceof SVGElement||r instanceof HTMLElement){const n=window.getComputedStyle(r);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1}else return!1;return r.getAttribute("aria-hidden")!=="true"}function k4(r,e,t){var a;const A=((a=r.id)==null?void 0:a.toLowerCase())??"";if(xl.has(A)||r===document.body||r===document.documentElement)return!0;const n=r.tagName.toLowerCase();if(n!=="div"&&n!=="main")return!1;const i=r.getBoundingClientRect();return i.width*i.height/Math.max(1,e*t)>.9}function Fl(r){return vl(r)?!0:typeof r.closest!="function"?!1:!!r.closest("script, style, noscript, template, head")}function H4(r,e){const t=r.tagName.toLowerCase();return t==="svg"||t==="polygon"?"diagram":t==="button"||e==="button"?"button":t==="a"||e==="link"?"link":t==="input"||t==="select"||t==="textarea"?"input":/^h[1-6]$/.test(t)?"heading":t==="img"?"image":t==="label"?"label":e?"interactive":"text"}function T4(r){const e=r.getAttribute("aria-label")||r.getAttribute("title")||"";if(e.trim())return e.trim().replace(/\s+/g," ").slice(0,240);if(r instanceof SVGPolygonElement&&r.id)return r.id.replace(/-/g," ").slice(0,240);if(r instanceof SVGSVGElement&&r.id)return(e.trim()||r.id.replace(/-/g," ")).slice(0,240);if(!(r instanceof HTMLElement))return r.id?r.id.replace(/-/g," ").slice(0,240):"";if(r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement){const A=r.getAttribute("placeholder")||r.getAttribute("name")||"";if(A.trim())return A.trim().slice(0,240)}return r instanceof HTMLImageElement&&r.alt.trim()?r.alt.trim().slice(0,240):(r.innerText||r.textContent||"").replace(/\s+/g," ").trim().slice(0,240)}function L4(r){var e,t;if(r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement||r instanceof HTMLSelectElement){const A=(e=r.value)==null?void 0:e.trim();return A?A.slice(0,240):void 0}if(r instanceof HTMLAnchorElement){const A=(t=r.getAttribute("href"))==null?void 0:t.trim();return A?A.slice(0,240):void 0}}function D4(r,e,t){const A=Math.round(r.left),n=Math.round(r.top),i=Math.round(r.width),s=Math.round(r.height),a=A+i/2,o=n+s/2;return{x:r.left/e,y:r.top/t,width:r.width/e,height:r.height/t,center_x:a/e,center_y:o/t,px:{left:A,top:n,width:i,height:s,center_x:Math.round(a),center_y:Math.round(o)}}}function Il(r){var t;let e=r.label?2:0;switch(r.kind){case"diagram":e+=22;break;case"button":case"link":case"input":e+=12;break;case"heading":e+=9;break;case"interactive":e+=8;break;case"image":case"label":e+=5;break;default:e+=3}return r.kind!=="text"&&(e+=Math.min(4,r.px.width*r.px.height/12e3)),(t=r.stroke_points)!=null&&t.length&&(e+=18),r.id&&xl.has(r.id.toLowerCase())&&(e-=50),e}function Rn(r,e,t,A,n){if(Fl(r)||k4(r,A,n)||!Ul(r,A,n))return;const i=T4(r),s=L4(r),a=S4(r,A,n),o=r.id||void 0;if(!i&&!s&&!o&&!a&&r.tagName.toLowerCase()!=="input")return;const l=(r.getAttribute("role")||"").trim()||void 0,c=M4(r);if(t.has(c))return;t.add(c);const d=D4(r.getBoundingClientRect(),A,n);e.push({tag:r.tagName.toLowerCase(),kind:H4(r,l??""),role:l,label:i||s||o||c,value:s,id:o,css_selector:c,stroke_points:a,...d})}function P4(r,e,t,A){for(const n of document.querySelectorAll(I4))Rn(n,r,e,t,A);for(const n of document.querySelectorAll("svg"))if(!(Fl(n)||!Ul(n,t,A)))for(const i of n.querySelectorAll("polygon"))Rn(i,r,e,t,A)}function ks(r){const e=Math.max(1,Math.min(200,(r==null?void 0:r.maxElements)??80)),{width:t,height:A}=(()=>{const a=window.visualViewport;return{width:Math.round((a==null?void 0:a.width)??document.documentElement.clientWidth),height:Math.round((a==null?void 0:a.height)??document.documentElement.clientHeight)}})(),n=new Set,i=[];P4(i,n,t,A);for(const a of document.querySelectorAll(U4))Rn(a,i,n,t,A);for(const a of document.querySelectorAll(F4))Rn(a,i,n,t,A);i.sort((a,o)=>Il(o)-Il(a));const s=i.slice(0,e).map((a,o)=>({...a,element_id:`e${o+1}`}));return{url:window.location.href,title:document.title,viewport:{width:t,height:A},scroll:{x:window.scrollX,y:window.scrollY},coordinate_system:"normalized_viewport",elements:s}}function Sl(r,e,t){const A=Math.max(1,e),n=Math.max(1,t);return Math.round(r/A*n)}function Ml(r){return r.replace(/\s+/g," ").trim().toLowerCase()}function N4(r){try{const e=document.querySelector(r);return e?!!e.closest('[role="dialog"], dialog, [aria-modal="true"], .modal, .vnr-modal'):!1}catch{return!1}}function O4(){return!!document.querySelector('[role="dialog"], dialog[open], [aria-modal="true"]')}function R4(r,e){const t=Ml(e),A=Ml(r.label);return!t||!A?0:A===t?1e3:A.startsWith(t)&&t.length>=2?850:A.split(/[\s/|,;:()]+/).filter(Boolean).some(i=>i===t)?800:t.split(/[\s/|,;:()]+/).some(i=>i===A&&A.length>=3)?750:t.length>=3&&A.includes(t)?500:t.length>=4&&A.length>=4&&t.includes(A)?450:0}function Kn(r,e,t){const A=r.viewport.width,n=r.viewport.height;return r.elements.map(i=>({element_id:i.element_id??i.css_selector,label:i.label,kind:i.kind,css_selector:i.css_selector,screenshot_x:Sl(i.px.center_x,A,e),screenshot_y:Sl(i.px.center_y,n,t),viewport_x:i.px.center_x,viewport_y:i.px.center_y,in_modal:N4(i.css_selector)}))}function K4(r,e,t,A=45){const n=Kn(r,e,t);return n.length===0?"(no interactive elements detected in viewport)":n.slice(0,A).map(i=>{const s=i.in_modal?" [modal]":"";return`- ${i.element_id}: "${i.label}" (${i.kind})${s} → point_at label="${i.label}" OR highlight_on_screen element_id="${i.element_id}"`}).join(`
2433
+ `)}function z4(r){const e=Number(r);return!Number.isFinite(e)||e<=0||e===960?0:Math.round(e)}function kl(r,e){const t=e.trim().toLowerCase();return!t||!(r!=null&&r.length)?null:r.find(A=>A.element_id.toLowerCase()===t)??null}function G4(r){const e=r.trim();if(!e)return null;const t=RA(),A=ks({maxElements:100}),n=Kn(A,t.width,t.height);return kl(n,e)}function Hs(r,e){if(!(r!=null&&r.length)||!e.trim())return null;const t=O4();let A=null,n=0;for(const i of r){let s=R4(i,e);s!==0&&(e.length<=12&&(i.kind==="button"||i.kind==="link"||i.kind==="interactive")&&(s+=30),t&&i.in_modal&&(s+=200),t&&!i.in_modal&&(s-=100),s>n&&(n=s,A=i))}return n>=450?A:null}function Hl(r){const e=RA(),t=ks({maxElements:100}),A=Kn(t,e.width,e.height),n=Hs(A,r);return n?{element:n,viewportWidth:e.width,viewportHeight:e.height}:null}function Tl(r){const e=RA(),t=e.width,A=e.height;if(r.label){const o=Hl(r.label);if(o)return{x:o.element.viewport_x,y:o.element.viewport_y,label:o.element.label,source:"live_layout",screenshotWidth:o.viewportWidth,screenshotHeight:o.viewportHeight,viewportWidthCss:o.viewportWidth,viewportHeightCss:o.viewportHeight};const l=Hs(r.staleLayoutElements,r.label);if(l){const c=r.captureScreenshotWidth??t,d=r.captureScreenshotHeight??A,g=r.captureViewportWidth??t,p=r.captureViewportHeight??A;return{x:l.screenshot_x/c*g,y:l.screenshot_y/d*p,label:l.label,source:"stale_layout",screenshotWidth:c,screenshotHeight:d,viewportWidthCss:g,viewportHeightCss:p}}}const n=Math.max(1,r.captureScreenshotWidth??t),i=Math.max(1,r.captureScreenshotHeight??A),s=r.captureViewportWidth??t,a=r.captureViewportHeight??A;return{x:r.modelX/n*s,y:r.modelY/i*a,label:r.label??"",source:"model",screenshotWidth:n,screenshotHeight:i,viewportWidthCss:s,viewportHeightCss:a}}async function V4(r,e,t){if(!r.videoWidth||!r.videoHeight)return null;const A=r.videoWidth,n=r.videoHeight,i=e>0?Math.min(1,e/A):1,s=Math.round(A*i),a=Math.round(n*i),o=document.createElement("canvas");o.width=s,o.height=a;const l=o.getContext("2d");if(!l)return null;l.drawImage(r,0,0,s,a);const c=await new Promise(d=>{o.toBlob(g=>d(g),"image/jpeg",t)});return c?{blob:c,widthPx:s,heightPx:a}:null}async function Y4(r,e=24,t=125){for(let A=0;A<e;A++){if(r.readyState>=2&&r.videoWidth>0)return;await new Promise(n=>setTimeout(n,t))}}function W4(r){return r==="browser"?"user's browser tab (cursor is here — primary focus)":r==="window"?"shared application window (primary focus)":"user's screen (cursor is here — primary focus)"}async function X4(r,e){const t=RA();let A=await yl({left:0,top:0,width:t.width,height:t.height});return r>0&&A.width>r&&(A=x4(A,r)),{blob:await bl(A,e),widthPx:A.width,heightPx:A.height,viewportWidthCss:t.width,viewportHeightCss:t.height,label:"user's page (visible tab — cursor is here — primary focus)",displaySurface:"browser",isPrimary:!0}}async function J4(r){var s,a,o;const e=r.maxWidth>0?r.maxWidth:0,t=r.quality??.72;let A=null,n=r.existingVideo??null;const i=()=>{A&&(A.getTracks().forEach(l=>l.stop()),A=null),n&&!r.existingVideo&&(n.remove(),n=null)};try{if(!r.existingStream&&!n){if(!((s=navigator.mediaDevices)!=null&&s.getDisplayMedia))throw new Error("Display capture is not supported in this browser");A=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1}),n=document.createElement("video"),n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.style.cssText="position:fixed;opacity:0;pointer-events:none;width:1px;height:1px",document.body.appendChild(n),n.srcObject=A,await n.play().catch(()=>{})}else r.existingStream&&!n&&(n=document.createElement("video"),n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.style.cssText="position:fixed;opacity:0;pointer-events:none;width:1px;height:1px",document.body.appendChild(n),n.srcObject=r.existingStream,await n.play().catch(()=>{}));if(!n)throw new Error("No video source for display capture");await Y4(n);const l=await V4(n,e,t);if(!l)throw new Error("Display capture produced a blank frame");const c=(a=r.existingStream??A)==null?void 0:a.getVideoTracks()[0],d=((o=c==null?void 0:c.getSettings)==null?void 0:o.call(c).displaySurface)??"unknown";return{capture:{blob:l.blob,widthPx:l.widthPx,heightPx:l.heightPx,viewportWidthCss:l.widthPx,viewportHeightCss:l.heightPx,label:W4(d),displaySurface:d,isPrimary:!0},release:i}}catch(l){throw i(),l}}async function _4(r){const e=r.mode??"tab",t=r.quality??.72,A=r.maxWidth&&r.maxWidth>0?r.maxWidth:0;return e==="tab"&&!r.existingStream?{capture:await X4(A,t),release:()=>{}}:J4(r)}const Ts="#3380FF",q4=3,Ll=null,Dl=1e3,j4=8e3,Z4=24;let $4=0;function V(r){const e=Number(r);return Number.isFinite(e)?e:null}function ew(r,e=1){const t=r.stroke??Ts,A=r.stroke_width??q4,n=r.fill??"none",i=r.opacity??1,s=Math.max(0,Math.min(1,i*e));return`stroke="${t}" stroke-width="${A}" fill="${n}" stroke-opacity="${s.toFixed(3)}" fill-opacity="${s.toFixed(3)}"`}function ie(r,e,t){return Ds({x:r,y:e},t.screenshotWidth,t.screenshotHeight,t.viewportWidthCss,t.viewportHeightCss)}function tw(r){const e=r.trim();return!e||e.length>4e3||!/^[MLHVCSQTAZmlhvcsqtaz0-9.,\s+\-eE]+$/.test(e)?null:e}function Pl(r){if(!Array.isArray(r)||r.length<2)return null;const e=[];for(const t of r){if(Array.isArray(t)&&t.length>=2){const A=V(t[0]),n=V(t[1]);if(A===null||n===null)return null;e.push([A,n]);continue}if(t&&typeof t=="object"){const A=V(t.x),n=V(t.y);if(A===null||n===null)return null;e.push([A,n]);continue}return null}return e.length>=2?e:null}function Ls(r,e,t,A,n=0){const i=n*Math.PI/180,s=[];for(let a=0;a<A;a++){const o=i-Math.PI/2+a*2*Math.PI/A;s.push([r+t*Math.cos(o),e+t*Math.sin(o)])}return s}function Nl(r){if(typeof r=="string"&&r.trim()){const t=r.trim().toUpperCase();if(t.length===1&&t>="A"&&t<="Z")return t.charCodeAt(0)-65}const e=V(r);return e!==null?Math.round(e):null}function Aw(r,e){return Array.isArray(r)?r.slice(0,e).map((t,A)=>String(t??String.fromCharCode(65+A))):Array.from({length:e},(t,A)=>String.fromCharCode(65+A))}function Ol(r){let e=[];if(typeof r=="string")try{const A=JSON.parse(r);e=Array.isArray(A)?A:[A]}catch{return[]}else if(Array.isArray(r))e=r;else if(r&&typeof r=="object"&&"op"in r)e=[r];else return[];const t=[];for(const A of e){if(!A||typeof A!="object")continue;const n=A,i=String(n.op??n.type??"").toLowerCase().trim(),s={stroke:typeof n.stroke=="string"?n.stroke:void 0,stroke_width:V(n.stroke_width??n.strokeWidth)??void 0,fill:typeof n.fill=="string"?n.fill:void 0,opacity:V(n.opacity)??void 0};if(i==="line"){const a=V(n.x1),o=V(n.y1),l=V(n.x2),c=V(n.y2);a!==null&&o!==null&&l!==null&&c!==null&&t.push({op:"line",x1:a,y1:o,x2:l,y2:c,...s})}else if(i==="polygon"){const a=Pl(n.points);a&&a.length>=3&&t.push({op:"polygon",points:a,...s})}else if(i==="regular_polygon"){const a=V(n.cx),o=V(n.cy),l=V(n.radius??n.r),c=V(n.sides);a!==null&&o!==null&&l!==null&&c!==null&&c>=3&&t.push({op:"regular_polygon",cx:a,cy:o,radius:l,sides:Math.min(64,Math.round(c)),rotation_deg:V(n.rotation_deg??n.rotationDeg)??0,...s})}else if(i==="circle"){const a=V(n.cx),o=V(n.cy),l=V(n.r??n.radius);a!==null&&o!==null&&l!==null&&t.push({op:"circle",cx:a,cy:o,r:l,...s})}else if(i==="ellipse"){const a=V(n.cx),o=V(n.cy),l=V(n.rx),c=V(n.ry);a!==null&&o!==null&&l!==null&&c!==null&&t.push({op:"ellipse",cx:a,cy:o,rx:l,ry:c,rotation_deg:V(n.rotation_deg??n.rotationDeg)??0,...s})}else if(i==="arrow"){const a=V(n.x1),o=V(n.y1),l=V(n.x2),c=V(n.y2);a!==null&&o!==null&&l!==null&&c!==null&&t.push({op:"arrow",x1:a,y1:o,x2:l,y2:c,...s})}else if(i==="underline"){const a=V(n.x),o=V(n.y),l=V(n.width??n.w);a!==null&&o!==null&&l!==null&&t.push({op:"underline",x:a,y:o,width:l,...s})}else if(i==="highlight_box"||i==="element_highlight"){const a=V(n.x),o=V(n.y),l=V(n.width??n.w),c=V(n.height??n.h);a!==null&&o!==null&&l!==null&&c!==null&&l>0&&c>0&&t.push({op:"highlight_box",x:a,y:o,width:l,height:c,rx:V(n.rx)??void 0,fill:typeof n.fill=="string"?n.fill:"rgba(59,130,246,0.14)",...s})}else if(i==="label"){const a=V(n.x),o=V(n.y),l=String(n.text??"").trim();a!==null&&o!==null&&l&&t.push({op:"label",x:a,y:o,text:l.slice(0,120),font_size:V(n.font_size??n.fontSize)??void 0,...s})}else if(i==="parabola"){const a=V(n.h),o=V(n.k),l=V(n.a),c=V(n.x_min??n.xMin),d=V(n.x_max??n.xMax);a!==null&&o!==null&&l!==null&&c!==null&&d!==null&&d>c&&t.push({op:"parabola",h:a,k:o,a:l,x_min:c,x_max:d,samples:V(n.samples)??void 0,...s})}else if(i==="hyperbola"){const a=V(n.cx),o=V(n.cy),l=V(n.a),c=V(n.b);a!==null&&o!==null&&l!==null&&c!==null&&l>0&&c>0&&t.push({op:"hyperbola",cx:a,cy:o,a:l,b:c,t_min:V(n.t_min??n.tMin)??-2.5,t_max:V(n.t_max??n.tMax)??2.5,samples:V(n.samples)??void 0,...s})}else if(i==="bezier"){const a=Pl(n.points);a&&a.length>=3&&t.push({op:"bezier",points:a,closed:n.closed===!0,...s})}else if(i==="path"){const a=tw(String(n.d??""));a&&t.push({op:"path",d:a,...s})}else if(i==="vertex_labels"){const a=V(n.cx),o=V(n.cy),l=V(n.radius??n.r),c=V(n.sides);if(a!==null&&o!==null&&l!==null&&c!==null&&c>=3){const d=Math.min(64,Math.round(c)),g=V(n.rotation_deg??n.rotationDeg)??0,p=V(n.label_offset??n.offset)??28,m=Ls(a,o,l,d,g),B=Aw(n.labels,d);for(let y=0;y<d;y++){const[x,C]=m[y],I=x-a,E=C-o,F=Math.hypot(I,E)||1;t.push({op:"label",x:x+I/F*p,y:C+E/F*p,text:B[y].slice(0,12),font_size:V(n.font_size??n.fontSize)??void 0,...s})}}}else if(i==="vertex_line"){const a=V(n.cx),o=V(n.cy),l=V(n.radius??n.r),c=V(n.sides);let d=Nl(n.from_vertex??n.fromVertex??n.from_label??n.fromLabel),g=Nl(n.to_vertex??n.toVertex??n.to_label??n.toLabel);if(a!==null&&o!==null&&l!==null&&c!==null&&c>=3&&d!==null&&g!==null){const p=Math.min(64,Math.round(c)),m=V(n.rotation_deg??n.rotationDeg)??0,B=Ls(a,o,l,p,m),y=B[(d%p+p)%p],x=B[(g%p+p)%p];y&&x&&t.push({op:"line",x1:y[0],y1:y[1],x2:x[0],y2:x[1],...s})}}}return t.slice(0,Z4)}function br(r,e=!1){if(!r.length)return"";const[t,...A]=r;let n=`M ${t.x.toFixed(2)} ${t.y.toFixed(2)}`;for(const i of A)n+=` L ${i.x.toFixed(2)} ${i.y.toFixed(2)}`;return e&&(n+=" Z"),n}function rw(r,e){const t=Math.max(8,Math.min(120,r.samples??48)),A=[];for(let n=0;n<=t;n++){const i=r.x_min+(r.x_max-r.x_min)*n/t,s=r.a*(i-r.h)**2+r.k;A.push(ie(i,s,e))}return br(A)}function nw(r,e){const t=Math.max(8,Math.min(120,r.samples??40)),A=r.t_min??-2.5,n=r.t_max??2.5,i=[],s=[];for(let a=0;a<=t;a++){const o=A+(n-A)*a/t,l=Math.cosh(o),c=Math.sinh(o);i.push(ie(r.cx+r.a*l,r.cy+r.b*c,e)),s.push(ie(r.cx-r.a*l,r.cy+r.b*c,e))}return`${br(i)} ${br(s)}`}function Rl(r){return Ls(r.cx,r.cy,r.radius,r.sides,r.rotation_deg??0)}function iw(r,e,t,A,n){const i=Math.atan2(A-e,t-r),s=14,a=[];for(const o of[-1,1]){const l=t-s*Math.cos(i+o*(28*Math.PI)/180),c=A-s*Math.sin(i+o*(28*Math.PI)/180);a.push(`<line x1="${t}" y1="${A}" x2="${l.toFixed(2)}" y2="${c.toFixed(2)}" ${n} stroke-linecap="round"/>`)}return a.join("")}function sw(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function aw(r){return 1-(1-r)**3}function ow(r,e){if(r.op==="line"||r.op==="arrow"){const t=ie(r.x1,r.y1,e),A=ie(r.x2,r.y2,e);return Math.hypot(A.x-t.x,A.y-t.y)+(r.op==="arrow"?28:0)}if(r.op==="underline"){const t=ie(r.x,r.y,e),A=ie(r.x+r.width,r.y,e);return Math.hypot(A.x-t.x,A.y-t.y)}if(r.op==="highlight_box"){const t=ie(r.x,r.y,e),A=ie(r.x+r.width,r.y+r.height,e);return 2*(Math.abs(A.x-t.x)+Math.abs(A.y-t.y))}if(r.op==="circle"){const t=ie(r.cx,r.cy,e),A=ie(r.cx+r.r,r.cy,e),n=Math.max(4,Math.hypot(A.x-t.x,A.y-t.y));return 2*Math.PI*n}if(r.op==="ellipse"){const t=ie(r.cx,r.cy,e),A=ie(r.cx+r.rx,r.cy,e),n=ie(r.cx,r.cy+r.ry,e),i=Math.abs(A.x-t.x),s=Math.abs(n.y-t.y);return Math.PI*(3*(i+s)-Math.sqrt((3*i+s)*(i+3*s)))}if(r.op==="polygon"||r.op==="regular_polygon"){const t=r.op==="polygon"?r.points.map(([n,i])=>ie(n,i,e)):Rl(r).map(([n,i])=>ie(n,i,e));let A=0;for(let n=0;n<t.length;n++){const i=t[n],s=t[(n+1)%t.length];A+=Math.hypot(s.x-i.x,s.y-i.y)}return A}if(r.op==="parabola"){const t=Math.max(8,Math.min(120,r.samples??48));let A=0,n=ie(r.x_min,r.a*(r.x_min-r.h)**2+r.k,e);for(let i=1;i<=t;i++){const s=r.x_min+(r.x_max-r.x_min)*i/t,a=r.a*(s-r.h)**2+r.k,o=ie(s,a,e);A+=Math.hypot(o.x-n.x,o.y-n.y),n=o}return A}if(r.op==="hyperbola")return 200;if(r.op==="bezier"){const t=r.points.map(([n,i])=>ie(n,i,e));let A=0;for(let n=1;n<t.length;n++)A+=Math.hypot(t[n].x-t[n-1].x,t[n].y-t[n-1].y);return A*1.2}return r.op==="path"?Math.max(80,r.d.length*.4):0}function lw(r,e,t){const A=aw(Math.max(0,Math.min(1,t)));if(e.isLabel||e.pathLength<=0)return`<g opacity="${A.toFixed(3)}">${r}</g>`;const n=e.pathLength.toFixed(2),i=(e.pathLength*(1-A)).toFixed(2),s=`stroke-dasharray="${n}" stroke-dashoffset="${i}"`;return r.replace(/<(path|line|circle|ellipse)(\s)/g,`<$1 ${s}$2`)}function cw(r,e,t=1){const A=`${ew(r,t)} stroke-linecap="round" stroke-linejoin="round"`;if(r.op==="line"){const n=ie(r.x1,r.y1,e),i=ie(r.x2,r.y2,e);return`<line x1="${n.x}" y1="${n.y}" x2="${i.x}" y2="${i.y}" ${A}/>`}if(r.op==="arrow"){const n=ie(r.x1,r.y1,e),i=ie(r.x2,r.y2,e);return[`<line x1="${n.x}" y1="${n.y}" x2="${i.x}" y2="${i.y}" ${A}/>`,iw(n.x,n.y,i.x,i.y,A)].join("")}if(r.op==="underline"){const n=ie(r.x,r.y,e),i=ie(r.x+r.width,r.y,e),s=A.replace(/stroke-width="[^"]+"/,'stroke-width="4"');return`<line x1="${n.x}" y1="${n.y}" x2="${i.x}" y2="${i.y}" ${s}/>`}if(r.op==="highlight_box"){const n=ie(r.x,r.y,e),i=ie(r.x+r.width,r.y+r.height,e),s=Math.max(4,i.x-n.x),a=Math.max(4,i.y-n.y),o=Math.min(r.rx??10,s/2,a/2),l=r.fill??"rgba(59,130,246,0.14)",c=r.stroke??Ts;return[`<rect x="${n.x.toFixed(2)}" y="${n.y.toFixed(2)}" width="${s.toFixed(2)}" height="${a.toFixed(2)}"`,` rx="${o.toFixed(1)}" ${A.replace(/fill="[^"]+"/,`fill="${l}"`)}`,` filter="drop-shadow(0 0 6px ${c}88)"/>`].join("")}if(r.op==="circle"){const n=ie(r.cx,r.cy,e),i=ie(r.cx+r.r,r.cy,e),s=Math.max(4,Math.hypot(i.x-n.x,i.y-n.y));return`<circle cx="${n.x}" cy="${n.y}" r="${s.toFixed(2)}" ${A}/>`}if(r.op==="ellipse"){const n=ie(r.cx,r.cy,e),i=ie(r.cx+r.rx,r.cy,e),s=ie(r.cx,r.cy+r.ry,e),a=Math.max(2,Math.abs(i.x-n.x)),o=Math.max(2,Math.abs(s.y-n.y)),l=r.rotation_deg??0;return l?`<ellipse cx="${n.x}" cy="${n.y}" rx="${a}" ry="${o}" transform="rotate(${l} ${n.x} ${n.y})" ${A}/>`:`<ellipse cx="${n.x}" cy="${n.y}" rx="${a}" ry="${o}" ${A}/>`}if(r.op==="polygon"){const n=r.points.map(([i,s])=>ie(i,s,e));return`<path d="${br(n,!0)}" ${A}/>`}if(r.op==="regular_polygon"){const n=Rl(r).map(([i,s])=>ie(i,s,e));return`<path d="${br(n,!0)}" ${A}/>`}if(r.op==="parabola")return`<path d="${rw(r,e)}" ${A} fill="none"/>`;if(r.op==="hyperbola")return`<path d="${nw(r,e)}" ${A} fill="none"/>`;if(r.op==="bezier"){const n=r.points.map(([s,a])=>ie(s,a,e));let i=`M ${n[0].x.toFixed(2)} ${n[0].y.toFixed(2)}`;if(n.length===3)i+=` Q ${n[1].x.toFixed(2)} ${n[1].y.toFixed(2)} ${n[2].x.toFixed(2)} ${n[2].y.toFixed(2)}`;else if(n.length>=4){i+=` C ${n[1].x.toFixed(2)} ${n[1].y.toFixed(2)} ${n[2].x.toFixed(2)} ${n[2].y.toFixed(2)} ${n[3].x.toFixed(2)} ${n[3].y.toFixed(2)}`;for(let s=4;s+2<n.length;s+=2)i+=` S ${n[s].x.toFixed(2)} ${n[s].y.toFixed(2)} ${n[s+1].x.toFixed(2)} ${n[s+1].y.toFixed(2)}`}else i+=` L ${n[1].x.toFixed(2)} ${n[1].y.toFixed(2)}`;return r.closed&&(i+=" Z"),`<path d="${i}" ${A}/>`}if(r.op==="path")return`<path d="${r.d}" ${A}/>`;if(r.op==="label"){const n=ie(r.x,r.y,e),i=r.font_size??11,s=r.stroke??Ts,a=sw(r.text),o=Math.min(280,Math.max(40,a.length*7+16)),l=i+8,c=t.toFixed(3);return[`<rect x="${n.x}" y="${n.y-l/2}" width="${o}" height="${l}" rx="6"`,` fill="rgba(15,23,42,${(.92*t).toFixed(3)})" stroke="${s}" stroke-opacity="${(.5*t).toFixed(3)}" stroke-width="1"/>`,`<text x="${n.x+8}" y="${n.y+i/3}" fill="#f8fafc" fill-opacity="${c}"`,` font-family="-apple-system,BlinkMacSystemFont,sans-serif" font-size="${i}" font-weight="600">${a}</text>`].join("")}return""}function dw(r,e,t){const A=(t==null?void 0:t.born)??performance.now(),n=(t==null?void 0:t.ttlMs)!==void 0?t.ttlMs:Ll,i=Math.max(200,Math.min(j4,(t==null?void 0:t.animateMs)??Dl)),s=[];return r.forEach((a,o)=>{const l=cw(a,e);l&&s.push({id:`draw-${++$4}`,svg:l,born:A+o*i,ttl:n,animateMs:i,pathLength:ow(a,e),isLabel:a.op==="label"})}),s}const hw=`
2434
+ Screen drawing (draw_on_screen) coordinates in last capture_screen_vision screenshot pixels:
2435
+
2436
+ Ops (pass as JSON array in "commands"):
2437
+ - line: { op:"line", x1,y1,x2,y2 }
2438
+ - arrow: { op:"arrow", x1,y1,x2,y2 }
2439
+ - polygon: { op:"polygon", points:[[x,y],...] } (3+ vertices)
2440
+ - regular_polygon: { op:"regular_polygon", cx,cy,radius,sides } (sides=3 triangle, 8 octagon, 10 decagon)
2441
+ - circle: { op:"circle", cx,cy,r }
2442
+ - ellipse: { op:"ellipse", cx,cy,rx,ry, rotation_deg? }
2443
+ - underline: { op:"underline", x,y,width }
2444
+ - highlight_box: { op:"highlight_box", x,y,width,height, rx? } — rounded highlight rect (used by highlight_on_screen)
2445
+ - label: { op:"label", x,y,text }
2446
+ - parabola: { op:"parabola", h,k,a, x_min,x_max } — y=a(x-h)²+k
2447
+ - hyperbola: { op:"hyperbola", cx,cy,a,b, t_min?,t_max? } — horizontal hyperbola branches
2448
+ - bezier: { op:"bezier", points:[[x,y],...], closed? } — 3=quadratic, 4+=cubic
2449
+ - path: { op:"path", d:"M ... L ..." } — SVG path escape hatch
2450
+ - vertex_labels: { op:"vertex_labels", cx,cy,radius,sides, label_offset? } — auto A,B,C… at each vertex (A=top, clockwise). Use alone — do NOT also add manual label ops for the same vertices.
2451
+ - vertex_line: { op:"vertex_line", cx,cy,radius,sides, from_label:"A", to_label:"C" } — chord/diagonal between vertices (exact geometry)
2452
+
2453
+ Overlap: default strict — if any filled shape overlaps another filled shape or label overlaps another label, the batch is REJECTED (nothing drawn) and the tool returns overlap_detected:true. Lines/arrows always draw (diagonals may cross shapes). Labels may overlap area shapes. Set allow_overlap:true to draw at exact coords on top of anything.
2454
+
2455
+ Optional per command: stroke, stroke_width, fill, opacity.
2456
+ draw_on_screen params: animate_ms (default 1000), clear (default false), allow_overlap (default false), ttl_ms (optional). clear_screen_draw removes all.`,uw=/\[POINT:(?:none|(\d+)\s*,\s*(\d+)(?::([^\]:\s][^\]:]*?))?(?::screen(\d+))?)\]\s*$/;function pw(r){var l;const e=r.match(uw);if(!e)return{spokenText:r,coordinate:null,elementLabel:null,screenNumber:null};const t=r.slice(0,e.index).trim(),A=e[1],n=e[2];if(!A||!n)return{spokenText:t,coordinate:null,elementLabel:"none",screenNumber:null};const i=Number(A),s=Number(n);if(!Number.isFinite(i)||!Number.isFinite(s))return{spokenText:t,coordinate:null,elementLabel:null,screenNumber:null};const a=((l=e[3])==null?void 0:l.trim())||null,o=e[4]?Number(e[4]):null;return{spokenText:t,coordinate:{x:i,y:s},elementLabel:a,screenNumber:Number.isFinite(o)?o:null}}function Ds(r,e,t,A,n){const i=Math.max(1,e),s=Math.max(1,t),a=Math.max(1,A),o=Math.max(1,n),l=Math.max(0,Math.min(r.x,i)),c=Math.max(0,Math.min(r.y,s));return{x:l/i*a,y:c/s*o}}function gw(r){const{prompt:e,captures:t,layoutSummary:A}=r,n=e?`Screen vision capture complete. Context: ${e}`:"Screen vision capture complete.",i=t.map((d,g)=>{const p=g+1,B=d.viewportWidthCss===d.widthPx&&d.viewportHeightCss===d.heightPx?" (1:1 with viewport — screenshot pixels equal CSS layout pixels)":d.viewportWidthCss&&d.viewportHeightCss?` (image downscaled from ${d.viewportWidthCss}x${d.viewportHeightCss} viewport)`:"";return`- screen ${p}: ${d.label} — image ${d.widthPx}x${d.heightPx} pixels${B}`}).join(`
2457
+ `),s=t[0],a=(s==null?void 0:s.widthPx)??1,o=(s==null?void 0:s.heightPx)??1,l=(s==null?void 0:s.viewportWidthCss)===(s==null?void 0:s.widthPx)&&(s==null?void 0:s.viewportHeightCss)===(s==null?void 0:s.heightPx),c=A!=null&&A.trim()?`
2458
+
2459
+ DOM layout scan (USE THESE COORDINATES for point_at — do NOT guess from the image):
2460
+ Each line gives exact screenshot pixel center for point_at_screen.
2461
+ Match the user's target by label text, then copy x,y from that line.
2462
+
2463
+ ${A}`:"";return`${n}
2464
+
2465
+ The attached image is ONLY the visible web page (no browser tabs, address bar, or OS chrome).
2466
+ Image size: ${a}x${o} pixels. Coordinate origin: top-left; x increases right; y increases down.
2467
+ ${l?"Screenshot pixels match viewport CSS pixels 1:1.":"Coordinates are in IMAGE pixel space (see layout scan below)."}
2468
+
2469
+ ${i}${c}
2470
+
2471
+ Element pointing:
2472
+ 1. Prefer DOM layout scan coordinates above — find the label, use its x,y.
2473
+ 2. Call point_at_screen with label set to the visible button/tab text (e.g. label="Cancel") — the client rescans the live page, including modals opened after capture.
2474
+ 3. If a modal or dialog opened after capture, call capture_screen_vision again OR use point_at with an exact label — live DOM scan will find modal buttons.
2475
+ 4. Only guess x,y from the image if the element is missing from the layout scan.
2476
+
2477
+ The blue buddy cursor flies to the coordinate visually — it does not click.
2478
+
2479
+ Element highlighting (highlight_on_screen) — after capture_screen_vision:
2480
+ 1. Prefer layout scan ids: highlight_on_screen with element_id="e4" OR label="Switch to Media tab".
2481
+ 2. Client live-rescans DOM, draws a glowing box around the element bbox on the overlay.
2482
+ 3. Persists until clear_screen_draw (same as draw_on_screen). Set point_at:false to skip buddy cursor.
2483
+
2484
+ ${hw}`}function fw(r,e,t,A,n){const i=A/Math.max(1,e),s=n/Math.max(1,t);return{x:Math.round(r.left*i),y:Math.round(r.top*s),width:Math.max(4,Math.round(r.width*i)),height:Math.max(4,Math.round(r.height*s))}}function mw(r){var n,i,s,a;const e=(n=r.css_selector)==null?void 0:n.trim();if(e)return{element_id:"",label:((i=r.label)==null?void 0:i.trim())||e,kind:"interactive",css_selector:e,screenshot_x:0,screenshot_y:0,viewport_x:0,viewport_y:0};const t=(s=r.element_id)==null?void 0:s.trim();if(t){const o=G4(t);return o||kl(r.staleLayoutElements,t)}const A=(a=r.label)==null?void 0:a.trim();if(A){const o=Hl(A);return o?o.element:Hs(r.staleLayoutElements,A)}return null}function ww(r,e=8){try{const t=document.querySelector(r);if(!t)return null;const A=t.getBoundingClientRect();if(A.width<1||A.height<1)return null;const n=RA(),i=Math.max(0,A.left-e),s=Math.max(0,A.top-e),a=Math.min(n.width,A.right+e),o=Math.min(n.height,A.bottom+e);return new DOMRect(i,s,Math.max(4,a-i),Math.max(4,o-s))}catch{return null}}function Kl(r){const e=mw(r);if(!(e!=null&&e.css_selector))return null;const t=Number.isFinite(r.padding)?Math.max(0,r.padding):8,A=ww(e.css_selector,t);if(!A)return null;const n=RA(),i=r.captureCtx,s=(i==null?void 0:i.widthPx)??n.width,a=(i==null?void 0:i.heightPx)??n.height,o=(i==null?void 0:i.viewportWidthCss)??n.width,l=(i==null?void 0:i.viewportHeightCss)??n.height,c=fw({left:A.left,top:A.top,width:A.width,height:A.height},o,l,s,a),d=r.stroke??"#3b82f6";return{command:{op:"highlight_box",x:c.x,y:c.y,width:c.width,height:c.height,rx:r.rx??10,stroke:d,stroke_width:3,fill:"rgba(59,130,246,0.14)",opacity:.95},css_selector:e.css_selector,label:e.label,center_x:Math.round(c.x+c.width/2),center_y:Math.round(c.y+c.height/2),bbox:c}}const Fe=8,zn=new Set(["line","arrow"]);function Bw(r,e){return r.x<e.x+e.w+Fe&&r.x+r.w+Fe>e.x&&r.y<e.y+e.h+Fe&&r.y+r.h+Fe>e.y}function Te(r,e,t){return Ds({x:r,y:e},t.screenshotWidth,t.screenshotHeight,t.viewportWidthCss,t.viewportHeightCss)}function wA(r,e=Fe){if(!r.length)return null;let t=1/0,A=1/0,n=-1/0,i=-1/0;for(const s of r)t=Math.min(t,s.x),A=Math.min(A,s.y),n=Math.max(n,s.x),i=Math.max(i,s.y);return{x:t-e,y:A-e,w:n-t+e*2,h:i-A+e*2}}function zl(r,e){if(r.op==="line"||r.op==="arrow")return wA([Te(r.x1,r.y1,e),Te(r.x2,r.y2,e)],12);if(r.op==="underline")return wA([Te(r.x,r.y,e),Te(r.x+r.width,r.y,e)],10);if(r.op==="highlight_box"){const t=Te(r.x,r.y,e),A=Te(r.x+r.width,r.y+r.height,e),n=Math.min(t.x,A.x)-Fe,i=Math.min(t.y,A.y)-Fe;return{x:n,y:i,w:Math.abs(A.x-t.x)+Fe*2,h:Math.abs(A.y-t.y)+Fe*2}}if(r.op==="circle"){const t=Te(r.cx,r.cy,e),A=Te(r.cx+r.r,r.cy,e),n=Math.max(4,Math.hypot(A.x-t.x,A.y-t.y));return{x:t.x-n-Fe,y:t.y-n-Fe,w:n*2+Fe*2,h:n*2+Fe*2}}if(r.op==="ellipse"){const t=Te(r.cx,r.cy,e),A=Te(r.cx+r.rx,r.cy,e),n=Te(r.cx,r.cy+r.ry,e),i=Math.abs(A.x-t.x),s=Math.abs(n.y-t.y);return{x:t.x-i-Fe,y:t.y-s-Fe,w:i*2+Fe*2,h:s*2+Fe*2}}if(r.op==="regular_polygon"){const t=(r.rotation_deg??0)*Math.PI/180,A=[];for(let n=0;n<r.sides;n++){const i=t-Math.PI/2+n*2*Math.PI/r.sides;A.push(Te(r.cx+r.radius*Math.cos(i),r.cy+r.radius*Math.sin(i),e))}return wA(A)}if(r.op==="polygon")return wA(r.points.map(([t,A])=>Te(t,A,e)));if(r.op==="label"){const t=Te(r.x,r.y,e),A=r.font_size??11,n=Math.min(280,Math.max(40,r.text.length*7+16)),i=A+8;return{x:t.x,y:t.y-i/2-Fe,w:n+Fe,h:i+Fe*2}}if(r.op==="parabola"){const t=[];for(let n=0;n<=24;n++){const i=r.x_min+(r.x_max-r.x_min)*n/24,s=r.a*(i-r.h)**2+r.k;t.push(Te(i,s,e))}return wA(t)}if(r.op==="hyperbola"){const t=[],A=r.t_min??-2.5,n=r.t_max??2.5;for(let i=0;i<=20;i++){const s=A+(n-A)*i/20;t.push(Te(r.cx+r.a*Math.cosh(s),r.cy+r.b*Math.sinh(s),e)),t.push(Te(r.cx-r.a*Math.cosh(s),r.cy+r.b*Math.sinh(s),e))}return wA(t)}return r.op==="bezier"?wA(r.points.map(([t,A])=>Te(t,A,e))):null}function vw(r,e){return!(zn.has(r)||zn.has(e)||r==="label"&&e!=="label"||e==="label"&&r!=="label")}function Gl(r,e){const t=[];for(const A of r){if(zn.has(A.op))continue;const n=zl(A,e);n&&t.push(n)}return t}function yw(r,e,t){const A=t.map((i,s)=>({bounds:i,index:-(s+1),op:"existing"})),n=[];for(let i=0;i<r.length;i++){const s=r[i],a=zl(s,e);if(!a||zn.has(s.op)){a&&A.push({bounds:a,index:i,op:s.op});continue}for(const o of A)vw(s.op,o.op)&&Bw(a,o.bounds)&&n.push({commandIndex:i,op:s.op,conflictsWithIndex:o.index,conflictsWithOp:o.op});A.push({bounds:a,index:i,op:s.op})}return n.length>0?{ok:!1,conflicts:n}:{ok:!0,commands:r,bounds:Gl(r,e)}}function bw(r){const e=r[0],A=e.conflictsWithIndex<0?"an existing on-screen annotation":`command #${e.conflictsWithIndex} (${e.conflictsWithOp})`,n=r.length>1?` (+${r.length-1} more)`:"";return`Draw rejected: overlap detected between command #${e.commandIndex} (${e.op}) and ${A}${n}. Adjust coordinates, call clear_screen_draw, or set allow_overlap:true.`}class Cw{constructor(){v(this,"svg",null);v(this,"items",[]);v(this,"occupiedBounds",[]);v(this,"frameId",null);v(this,"mountedRoot",null)}mount(e){if(this.svg&&this.mountedRoot===e)return;this.unmount();const t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("class","vnr-screen-draw-layer"),t.setAttribute("aria-hidden","true"),t.style.cssText=["position:absolute","inset:0","width:100%","height:100%","pointer-events:none","overflow:visible"].join(";"),e.insertBefore(t,e.firstChild),this.svg=t,this.mountedRoot=e}unmount(){var e;this.stopFrame(),this.items=[],this.occupiedBounds=[],(e=this.svg)==null||e.remove(),this.svg=null,this.mountedRoot=null}clear(){this.items=[],this.occupiedBounds=[],this.svg&&(this.svg.innerHTML=""),this.stopFrame()}drawCommands(e,t={}){const A=Ol(e);if(!A.length||!this.svg)return{drawn:0,message:"No draw commands"};t.clearExisting&&this.clear();const n=this.resolveCoordContext(t);if(!(t.allowOverlap===!0)){const a=yw(A,n,this.occupiedBounds);if(!a.ok){const o=bw(a.conflicts);return{drawn:0,rejected:!0,overlapDetected:!0,conflicts:a.conflicts,message:o}}return this.occupiedBounds.push(...a.bounds),this.renderCommands(a.commands,n,t)}const s=Gl(A,n);return this.occupiedBounds.push(...s),this.renderCommands(A,n,t)}drawParsed(e,t={}){return this.drawCommands(e,t)}renderCommands(e,t,A){const n=A.animateMs??Dl,i=A.ttlMs!==void 0?A.ttlMs:Ll,s=dw(e,t,{ttlMs:i,animateMs:n});return this.items.push(...s),this.scheduleFrame(),{drawn:s.length}}resolveCoordContext(e){const t=e.screenshotWidth??window.innerWidth,A=e.screenshotHeight??window.innerHeight,n=e.viewportWidthCss??window.innerWidth,i=e.viewportHeightCss??window.innerHeight;return{screenshotWidth:t,screenshotHeight:A,viewportWidthCss:n,viewportHeightCss:i}}scheduleFrame(){if(this.frameId!==null)return;const e=()=>{this.frameId=null,this.render(),this.items.length>0&&this.needsAnimationFrame()&&(this.frameId=requestAnimationFrame(e))};this.frameId=requestAnimationFrame(e)}needsAnimationFrame(){const e=performance.now();return this.items.some(t=>{const A=e-t.born;return A<0||A<t.animateMs||t.ttl!==null&&A>t.ttl*.75})}stopFrame(){this.frameId!==null&&(cancelAnimationFrame(this.frameId),this.frameId=null)}render(){if(!this.svg)return;const e=performance.now(),t=[],A=[];for(const n of this.items){const i=e-n.born;if(i<0){t.push(n);continue}if(n.ttl!==null&&i>n.ttl)continue;t.push(n);let s=1;n.ttl!==null&&i>n.ttl*.75&&(s=Math.max(0,1-(i-n.ttl*.75)/(n.ttl*.25)));const a=Math.min(1,i/n.animateMs);let o=lw(n.svg,n,a);s<.999&&(o=`<g opacity="${s.toFixed(3)}">${o}</g>`),A.push(o)}this.items=t,this.svg.innerHTML=A.join(""),t.length===0&&(this.occupiedBounds=[])}}function xw(){const r=window.innerWidth,e=window.innerHeight,t=Math.round(r*.5),A=Math.round(e*.45);eA().drawOnScreen([{op:"regular_polygon",cx:t,cy:A-80,radius:50,sides:3,stroke:"#3380FF"},{op:"regular_polygon",cx:t-160,cy:A,radius:45,sides:8,stroke:"#22c55e"},{op:"regular_polygon",cx:t+160,cy:A,radius:45,sides:10,stroke:"#f59e0b"},{op:"parabola",h:t,k:A+120,a:.003,x_min:t-200,x_max:t+200,stroke:"#ec4899"},{op:"hyperbola",cx:t,cy:A+140,a:40,b:28,stroke:"#8b5cf6"},{op:"arrow",x1:t-120,y1:A+200,x2:t+40,y2:A+60,stroke:"#3380FF"},{op:"label",x:t-80,y:A+220,text:"Tier B demo"}],{clear:!0,screenshotWidth:r,screenshotHeight:e,viewportWidthCss:r,viewportHeightCss:e,ttlMs:12e3,animateMs:800})}function Qw(){typeof window>"u"||(window.__vnrDrawDemo=xw)}const Vl="#3b82f6",Yl=["right here!","this one!","over here!","look here!"];class Ew{constructor(){v(this,"root",null);v(this,"buddy",null);v(this,"bubble",null);v(this,"spinner",null);v(this,"waveform",null);v(this,"visible",!1);v(this,"voiceState","idle");v(this,"buddyMode","following");v(this,"position",{x:120,y:120});v(this,"followTimer",null);v(this,"animTimer",null);v(this,"returnTimer",null);v(this,"lastCapture",null);v(this,"opacity",0);v(this,"drawLayer",new Cw)}ensureMounted(){if(typeof document>"u"||this.root)return;const e=document.createElement("div");e.className="vnr-screen-vision-root",e.setAttribute("aria-hidden","true"),e.style.cssText=["position:fixed","inset:0","z-index:2147483640","pointer-events:none","overflow:hidden"].join(";");const t=document.createElement("div");t.className="vnr-screen-vision-buddy",t.style.cssText=["position:absolute","width:0","height:0","opacity:0","transition:opacity 0.25s ease","will-change:transform,left,top"].join(";"),t.innerHTML=`
2485
+ <div class="vnr-buddy-triangle" style="
2486
+ width:0;height:0;
2487
+ border-left:14px solid transparent;
2488
+ border-right:14px solid transparent;
2489
+ border-bottom:24px solid ${Vl};
2490
+ filter:drop-shadow(0 0 8px ${Vl});
2491
+ transform:rotate(-35deg);
2492
+ transform-origin:50% 80%;
2493
+ "></div>
2494
+ `;const A=document.createElement("div");A.className="vnr-buddy-bubble",A.style.cssText=["position:absolute","left:28px","top:-8px","max-width:220px","padding:8px 12px","border-radius:12px","background:rgba(15,23,42,0.92)","border:1px solid rgba(255,255,255,0.12)","color:#f8fafc","font:600 12px/1.35 -apple-system,BlinkMacSystemFont,sans-serif","white-space:nowrap","opacity:0","transform:scale(0.92)","transition:opacity 0.2s ease, transform 0.2s ease"].join(";");const n=document.createElement("div");n.className="vnr-buddy-spinner",n.style.cssText=["position:absolute","left:-6px","top:-6px","width:28px","height:28px","border-radius:50%","border:3px solid rgba(59,130,246,0.25)","border-top-color:#3b82f6","animation:vnr-sv-spin 0.8s linear infinite","opacity:0"].join(";");const i=document.createElement("div");i.className="vnr-buddy-waveform",i.style.cssText=["position:absolute","left:-4px","top:2px","display:flex","gap:3px","align-items:flex-end","height:18px","opacity:0"].join(";");for(let s=0;s<4;s++){const a=document.createElement("span");a.style.cssText=["display:block","width:3px","height:8px","border-radius:2px","background:#3b82f6",`animation:vnr-sv-wave 0.9s ease-in-out ${s*.12}s infinite alternate`].join(";"),i.appendChild(a)}if(!document.getElementById("vnr-screen-vision-styles")){const s=document.createElement("style");s.id="vnr-screen-vision-styles",s.textContent=`
2495
+ @keyframes vnr-sv-spin { to { transform: rotate(360deg); } }
2496
+ @keyframes vnr-sv-wave {
2497
+ from { height: 6px; opacity: 0.55; }
2498
+ to { height: 16px; opacity: 1; }
2499
+ }
2500
+ `,document.head.appendChild(s)}t.appendChild(A),t.appendChild(n),t.appendChild(i),e.appendChild(t),document.body.appendChild(e),this.root=e,this.drawLayer.mount(e),this.buddy=t,this.bubble=A,this.spinner=n,this.waveform=i,this.seedFromCursor(),this.startFollowing()}setCaptureContext(e){this.lastCapture=e}getCaptureContext(){return this.lastCapture}setVoiceState(e){this.voiceState=e,this.syncAffordances()}show(){this.ensureMounted(),this.visible=!0,this.opacity=1,this.applyBuddyOpacity()}hide(){this.visible=!1,this.opacity=0,this.applyBuddyOpacity(),this.hideBubble(),this.buddyMode="following",this.clearAnimTimer()}destroy(){var e;this.stopFollowing(),this.clearAnimTimer(),this.drawLayer.unmount(),this.returnTimer&&clearTimeout(this.returnTimer),(e=this.root)==null||e.remove(),this.root=null,this.buddy=null,this.bubble=null,this.spinner=null,this.waveform=null}pointAtScreenshotPixels(e,t,A){var c,d,g,p;this.ensureMounted(),this.show();const n=(A==null?void 0:A.screenshotWidth)??((c=this.lastCapture)==null?void 0:c.widthPx)??window.innerWidth,i=(A==null?void 0:A.screenshotHeight)??((d=this.lastCapture)==null?void 0:d.heightPx)??window.innerHeight,s=(A==null?void 0:A.viewportWidthCss)??((g=this.lastCapture)==null?void 0:g.viewportWidthCss)??window.innerWidth,a=(A==null?void 0:A.viewportHeightCss)??((p=this.lastCapture)==null?void 0:p.viewportHeightCss)??window.innerHeight,o=Ds({x:e,y:t},n,i,s,a),l={x:Math.max(20,Math.min(o.x+8,window.innerWidth-20)),y:Math.max(20,Math.min(o.y+12,window.innerHeight-20))};this.buddyMode="navigating",this.animateBezierFlight(this.position,l,()=>{this.buddyMode="pointing";const m=(A==null?void 0:A.bubbleText)||(A!=null&&A.label?A.label:Yl[Math.floor(Math.random()*Yl.length)]);this.showBubble(m),this.returnTimer&&clearTimeout(this.returnTimer),this.returnTimer=setTimeout(()=>this.flyBackToCursor(),3e3)})}dismissPointing(){this.returnTimer&&clearTimeout(this.returnTimer),this.hideBubble(),this.buddyMode="following",this.clearAnimTimer()}drawOnScreen(e,t){this.ensureMounted(),this.show();const A=this.lastCapture;return this.drawLayer.drawCommands(e,{screenshotWidth:(t==null?void 0:t.screenshotWidth)??(A==null?void 0:A.widthPx),screenshotHeight:(t==null?void 0:t.screenshotHeight)??(A==null?void 0:A.heightPx),viewportWidthCss:(t==null?void 0:t.viewportWidthCss)??(A==null?void 0:A.viewportWidthCss),viewportHeightCss:(t==null?void 0:t.viewportHeightCss)??(A==null?void 0:A.viewportHeightCss),ttlMs:t==null?void 0:t.ttlMs,animateMs:t==null?void 0:t.animateMs,clearExisting:(t==null?void 0:t.clear)===!0||(t==null?void 0:t.clearExisting)===!0,allowOverlap:t==null?void 0:t.allowOverlap})}clearDrawings(){this.drawLayer.clear()}seedFromCursor(){const e=Math.min(window.innerWidth-40,Math.max(40,window.innerWidth*.5)),t=Math.min(window.innerHeight-40,Math.max(40,window.innerHeight*.5));this.position={x:e+35,y:t+25},this.applyPosition()}startFollowing(){this.followTimer||(this.followTimer=setInterval(()=>{if(!this.visible||this.buddyMode!=="following")return;const e=Math.max(20,Math.min(window.innerWidth-20,this.getMouseX())),t=Math.max(20,Math.min(window.innerHeight-20,this.getMouseY()));this.position={x:e+35,y:t+25},this.applyPosition()},16))}stopFollowing(){this.followTimer&&clearInterval(this.followTimer),this.followTimer=null}getMouseX(){return window.__vnrLastMouseX??window.innerWidth/2}getMouseY(){return window.__vnrLastMouseY??window.innerHeight/2}applyPosition(){this.buddy&&(this.buddy.style.left=`${this.position.x}px`,this.buddy.style.top=`${this.position.y}px`)}applyBuddyOpacity(){this.buddy&&(this.buddy.style.opacity=this.visible?String(this.opacity):"0")}syncAffordances(){if(!this.spinner||!this.waveform||!this.buddy)return;const e=this.buddy.querySelector(".vnr-buddy-triangle");this.spinner.style.opacity=this.voiceState==="processing"?"1":"0",this.waveform.style.opacity=this.voiceState==="listening"?"1":"0",e&&(e.style.opacity=this.voiceState==="idle"||this.voiceState==="responding"?"1":"0.15")}showBubble(e){this.bubble&&(this.bubble.textContent=e,this.bubble.style.opacity="1",this.bubble.style.transform="scale(1)")}hideBubble(){this.bubble&&(this.bubble.style.opacity="0",this.bubble.style.transform="scale(0.92)")}flyBackToCursor(){this.hideBubble(),this.buddyMode="navigating";const e={x:this.getMouseX()+35,y:this.getMouseY()+25};this.animateBezierFlight(this.position,e,()=>{this.buddyMode="following"})}clearAnimTimer(){this.animTimer&&clearInterval(this.animTimer),this.animTimer=null}animateBezierFlight(e,t,A){this.clearAnimTimer();const n=Math.hypot(t.x-e.x,t.y-e.y),i=Math.max(600,Math.min(1400,600+n*.8)),s=performance.now(),a={x:(e.x+t.x)/2,y:Math.min(e.y,t.y)-Math.min(120,n*.35)};this.animTimer=setInterval(()=>{const o=performance.now()-s,l=Math.min(1,o/i),c=1-l,d=c*c*e.x+2*c*l*a.x+l*l*t.x,g=c*c*e.y+2*c*l*a.y+l*l*t.y;this.position={x:d,y:g},this.applyPosition(),l>=1&&(this.clearAnimTimer(),A())},16)}}function Uw(){if(typeof window>"u")return()=>{};const r=e=>{window.__vnrLastMouseX=e.clientX,window.__vnrLastMouseY=e.clientY};return window.addEventListener("mousemove",r,{passive:!0}),()=>window.removeEventListener("mousemove",r)}let Ps=null;function eA(){return Ps||(Ps=new Ew,Uw(),Qw()),Ps}class je{constructor(e,t,A){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=A}static range(e,t){return t?!e||!e.loc||!t.loc||e.loc.lexer!==t.loc.lexer?null:new je(e.loc.lexer,e.loc.start,t.loc.end):e&&e.loc}}class nt{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new nt(t,je.range(this,e))}}class P{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var A="KaTeX parse error: "+e,n,i,s=t&&t.loc;if(s&&s.start<=s.end){var a=s.lexer.input;n=s.start,i=s.end,n===a.length?A+=" at end of input: ":A+=" at position "+(n+1)+": ";var o=a.slice(n,i).replace(/[^]/g,"$&̲"),l;n>15?l="…"+a.slice(n-15,n):l=a.slice(0,n);var c;i+15<a.length?c=a.slice(i,i+15)+"…":c=a.slice(i),A+=l+o+c}var d=new Error(A);return d.name="ParseError",d.__proto__=P.prototype,d.position=n,n!=null&&i!=null&&(d.length=i-n),d.rawMessage=e,d}}P.prototype.__proto__=Error.prototype;var Fw=function(e,t){return e.indexOf(t)!==-1},Iw=function(e,t){return e===void 0?t:e},Sw=/([A-Z])/g,Mw=function(e){return e.replace(Sw,"-$1").toLowerCase()},kw={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},Hw=/[&><"']/g;function Tw(r){return String(r).replace(Hw,e=>kw[e])}var Wl=function r(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?r(e.body[0]):e:e.type==="font"?r(e.body):e},Lw=function(e){var t=Wl(e);return t.type==="mathord"||t.type==="textord"||t.type==="atom"},Dw=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},Pw=function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},X={contains:Fw,deflt:Iw,escape:Tw,hyphenate:Mw,getBaseElem:Wl,isCharacterBox:Lw,protocolFromUrl:Pw},Gn={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:r=>"#"+r},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(r,e)=>(e.push(r),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:r=>Math.max(0,r),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:r=>Math.max(0,r),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:r=>Math.max(0,r),cli:"-e, --max-expand <n>",cliProcessor:r=>r==="Infinity"?1/0:parseInt(r)},globalGroup:{type:"boolean",cli:!1}};function Nw(r){if(r.default)return r.default;var e=r.type,t=Array.isArray(e)?e[0]:e;if(typeof t!="string")return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class Ns{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var t in Gn)if(Gn.hasOwnProperty(t)){var A=Gn[t];this[t]=e[t]!==void 0?A.processor?A.processor(e[t]):e[t]:Nw(A)}}reportNonstrict(e,t,A){var n=this.strict;if(typeof n=="function"&&(n=n(e,t,A)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new P("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),A);typeof console<"u"}}useStrictBehavior(e,t,A){var n=this.strict;if(typeof n=="function")try{n=n(e,t,A)}catch{n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:(typeof console<"u",!1)}isTrusted(e){if(e.url&&!e.protocol){var t=X.protocolFromUrl(e.url);if(t==null)return!1;e.protocol=t}var A=typeof this.trust=="function"?this.trust(e):this.trust;return!!A}}class tA{constructor(e,t,A){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=A}sup(){return yt[Ow[this.id]]}sub(){return yt[Rw[this.id]]}fracNum(){return yt[Kw[this.id]]}fracDen(){return yt[zw[this.id]]}cramp(){return yt[Gw[this.id]]}text(){return yt[Vw[this.id]]}isTight(){return this.size>=2}}var Os=0,Vn=1,KA=2,Mt=3,Cr=4,it=5,zA=6,Re=7,yt=[new tA(Os,0,!1),new tA(Vn,0,!0),new tA(KA,1,!1),new tA(Mt,1,!0),new tA(Cr,2,!1),new tA(it,2,!0),new tA(zA,3,!1),new tA(Re,3,!0)],Ow=[Cr,it,Cr,it,zA,Re,zA,Re],Rw=[it,it,it,it,Re,Re,Re,Re],Kw=[KA,Mt,Cr,it,zA,Re,zA,Re],zw=[Mt,Mt,it,it,Re,Re,Re,Re],Gw=[Vn,Vn,Mt,Mt,it,it,Re,Re],Vw=[Os,Vn,KA,Mt,KA,Mt,KA,Mt],J={DISPLAY:yt[Os],TEXT:yt[KA],SCRIPT:yt[Cr],SCRIPTSCRIPT:yt[zA]},Rs=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function Yw(r){for(var e=0;e<Rs.length;e++)for(var t=Rs[e],A=0;A<t.blocks.length;A++){var n=t.blocks[A];if(r>=n[0]&&r<=n[1])return t.name}return null}var Yn=[];Rs.forEach(r=>r.blocks.forEach(e=>Yn.push(...e)));function Xl(r){for(var e=0;e<Yn.length;e+=2)if(r>=Yn[e]&&r<=Yn[e+1])return!0;return!1}var GA=80,Ww=function(e,t){return"M95,"+(622+e+t)+`
2501
+ c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
2502
+ c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
2503
+ c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
2504
+ s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
2505
+ c69,-144,104.5,-217.7,106.5,-221
2506
+ l`+e/2.075+" -"+e+`
2507
+ c5.3,-9.3,12,-14,20,-14
2508
+ H400000v`+(40+e)+`H845.2724
2509
+ s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
2510
+ c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
2511
+ M`+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Xw=function(e,t){return"M263,"+(601+e+t)+`c0.7,0,18,39.7,52,119
2512
+ c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120
2513
+ c340,-704.7,510.7,-1060.3,512,-1067
2514
+ l`+e/2.084+" -"+e+`
2515
+ c4.7,-7.3,11,-11,19,-11
2516
+ H40000v`+(40+e)+`H1012.3
2517
+ s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232
2518
+ c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1
2519
+ s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26
2520
+ c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z
2521
+ M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Jw=function(e,t){return"M983 "+(10+e+t)+`
2522
+ l`+e/3.13+" -"+e+`
2523
+ c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+`
2524
+ H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7
2525
+ s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744
2526
+ c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30
2527
+ c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722
2528
+ c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5
2529
+ c53.7,-170.3,84.5,-266.8,92.5,-289.5z
2530
+ M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},_w=function(e,t){return"M424,"+(2398+e+t)+`
2531
+ c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514
2532
+ c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20
2533
+ s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121
2534
+ s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081
2535
+ l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000
2536
+ v`+(40+e)+`H1014.6
2537
+ s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185
2538
+ c-2,6,-10,9,-24,9
2539
+ c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+t+`
2540
+ h400000v`+(40+e)+"h-400000z"},qw=function(e,t){return"M473,"+(2713+e+t)+`
2541
+ c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+`
2542
+ c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7
2543
+ s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9
2544
+ c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200
2545
+ c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26
2546
+ s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,
2547
+ 606zM`+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"},jw=function(e){var t=e/2;return"M400000 "+e+" H0 L"+t+" 0 l65 45 L145 "+(e-80)+" H400000z"},Zw=function(e,t,A){var n=A-54-t-e;return"M702 "+(e+t)+"H400000"+(40+e)+`
2548
+ H742v`+n+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1
2549
+ h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170
2550
+ c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667
2551
+ 219 661 l218 661zM702 `+t+"H400000v"+(40+e)+"H742z"},$w=function(e,t,A){t=1e3*t;var n="";switch(e){case"sqrtMain":n=Ww(t,GA);break;case"sqrtSize1":n=Xw(t,GA);break;case"sqrtSize2":n=Jw(t,GA);break;case"sqrtSize3":n=_w(t,GA);break;case"sqrtSize4":n=qw(t,GA);break;case"sqrtTall":n=Zw(t,GA,A)}return n},e2=function(e,t){switch(e){case"⎜":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"∣":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"∥":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z");case"⎟":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"⎢":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"⎥":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"⎪":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"⏐":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"‖":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z");default:return""}},Jl={doubleleftarrow:`M262 157
2552
+ l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3
2553
+ 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28
2554
+ 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5
2555
+ c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5
2556
+ 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87
2557
+ -86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7
2558
+ -2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z
2559
+ m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l
2560
+ -10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5
2561
+ 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88
2562
+ -33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68
2563
+ -17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18
2564
+ -13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782
2565
+ c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3
2566
+ -107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120
2567
+ 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8
2568
+ -5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247
2569
+ c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208
2570
+ 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3
2571
+ 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202
2572
+ l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117
2573
+ -45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7
2574
+ 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13
2575
+ 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688
2576
+ 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7
2577
+ -331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80
2578
+ H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0
2579
+ 435 0h399565z`,leftgroupunder:`M400000 262
2580
+ H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219
2581
+ 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3
2582
+ -3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5
2583
+ -18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7
2584
+ -196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5
2585
+ 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3
2586
+ -4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7
2587
+ -10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z
2588
+ m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333
2589
+ 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5
2590
+ 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667
2591
+ -152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12
2592
+ 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7
2593
+ -2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0
2594
+ v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5
2595
+ -83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3
2596
+ -68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21
2597
+ 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z
2598
+ M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z
2599
+ M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23
2600
+ -.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8
2601
+ c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3
2602
+ 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z
2603
+ M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334
2604
+ c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14
2605
+ -53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7
2606
+ 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11
2607
+ 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214
2608
+ c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14
2609
+ 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3
2610
+ 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0
2611
+ -5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6
2612
+ -320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z
2613
+ m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8
2614
+ 60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8
2615
+ -451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z
2616
+ m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2
2617
+ c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6
2618
+ -480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z
2619
+ m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0
2620
+ 85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8
2621
+ -707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z
2622
+ m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1
2623
+ c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128
2624
+ -16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20
2625
+ 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7
2626
+ 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85
2627
+ -40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
2628
+ -12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
2629
+ 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l
2630
+ -6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5
2631
+ s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1
2632
+ c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3
2633
+ 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237
2634
+ -174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0
2635
+ 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18
2636
+ 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3
2637
+ -3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2
2638
+ -10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58
2639
+ 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11
2640
+ -18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7
2641
+ 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z
2642
+ m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8
2643
+ 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5
2644
+ -7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95
2645
+ -27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8
2646
+ 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3
2647
+ 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3
2648
+ -64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z
2649
+ m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3
2650
+ 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0
2651
+ -13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21
2652
+ 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z
2653
+ M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23
2654
+ 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32
2655
+ -52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142
2656
+ -167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40
2657
+ 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69
2658
+ -70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3
2659
+ -40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19
2660
+ -37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101
2661
+ 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167
2662
+ c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3
2663
+ 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42
2664
+ 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333
2665
+ -19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70
2666
+ 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7
2667
+ -2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0
2668
+ 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0
2669
+ 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128
2670
+ -68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418
2671
+ -8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9
2672
+ 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114
2673
+ c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751
2674
+ 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457
2675
+ -11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0
2676
+ 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697
2677
+ 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696
2678
+ -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345
2679
+ -11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409
2680
+ 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9
2681
+ 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409
2682
+ -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
2683
+ 3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
2684
+ 10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
2685
+ -1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
2686
+ -7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
2687
+ H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
2688
+ c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22
2689
+ c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10
2690
+ -11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10
2691
+ -11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10
2692
+ -11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,
2693
+ -5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
2694
+ -11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
2695
+ -11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
2696
+ -11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202
2697
+ c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5
2698
+ c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130
2699
+ s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47
2700
+ 121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6
2701
+ s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11
2702
+ c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z
2703
+ M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32
2704
+ -27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0
2705
+ 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39
2706
+ -84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5
2707
+ -119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
2708
+ -12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
2709
+ 151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
2710
+ c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17
2711
+ c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21
2712
+ c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40
2713
+ c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z
2714
+ M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0
2715
+ c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
2716
+ -231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
2717
+ c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
2718
+ M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
2719
+ c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,
2720
+ 1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,
2721
+ -152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z
2722
+ M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0
2723
+ c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
2724
+ -231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
2725
+ c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
2726
+ M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},t2=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v1759 h347 v-84
2727
+ H403z M403 1759 V0 H319 V1759 v`+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v1759 H0 v84 H347z
2728
+ M347 1759 V0 H263 V1759 v`+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15
2729
+ c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15
2730
+ c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15
2731
+ c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15
2732
+ c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+` v585 h43z
2733
+ M367 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15
2734
+ c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15
2735
+ c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+` v1715 h263 v84 H319z
2736
+ MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+` v1799 H0 v-84 H319z
2737
+ MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v602 h84z
2738
+ M403 1759 V0 H319 V1759 v`+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v602 h84z
2739
+ M347 1759 V0 h-84 V1759 v`+t+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
2740
+ c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
2741
+ -36,557 l0,`+(t+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
2742
+ 949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
2743
+ c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
2744
+ -544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
2745
+ l0,-`+(t+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
2746
+ -210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
2747
+ 63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
2748
+ c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(t+9)+`
2749
+ c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
2750
+ c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11
2751
+ c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
2752
+ c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
2753
+ l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
2754
+ -470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class xr{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return X.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),t=0;t<this.children.length;t++)e.appendChild(this.children[t].toNode());return e}toMarkup(){for(var e="",t=0;t<this.children.length;t++)e+=this.children[t].toMarkup();return e}toText(){var e=t=>t.toText();return this.children.map(e).join("")}}var bt={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Wn={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},_l={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function A2(r,e){bt[r]=e}function Ks(r,e,t){if(!bt[e])throw new Error("Font metrics not found for font: "+e+".");var A=r.charCodeAt(0),n=bt[e][A];if(!n&&r[0]in _l&&(A=_l[r[0]].charCodeAt(0),n=bt[e][A]),!n&&t==="text"&&Xl(A)&&(n=bt[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var zs={};function r2(r){var e;if(r>=5?e=0:r>=3?e=1:e=2,!zs[e]){var t=zs[e]={cssEmPerMu:Wn.quad[e]/18};for(var A in Wn)Wn.hasOwnProperty(A)&&(t[A]=Wn[A][e])}return zs[e]}var n2=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],ql=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],jl=function(e,t){return t.size<2?e:n2[e-1][t.size-1]};class kt{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||kt.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=ql[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var A in e)e.hasOwnProperty(A)&&(t[A]=e[A]);return new kt(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:jl(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:ql[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=jl(kt.BASESIZE,e);return this.size===t&&this.textSize===kt.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==kt.BASESIZE?["sizing","reset-size"+this.size,"size"+kt.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=r2(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}kt.BASESIZE=6;var Gs={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},i2={ex:!0,em:!0,mu:!0},Zl=function(e){return typeof e!="string"&&(e=e.unit),e in Gs||e in i2||e==="ex"},we=function(e,t){var A;if(e.unit in Gs)A=Gs[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit==="mu")A=t.fontMetrics().cssEmPerMu;else{var n;if(t.style.isTight()?n=t.havingStyle(t.style.text()):n=t,e.unit==="ex")A=n.fontMetrics().xHeight;else if(e.unit==="em")A=n.fontMetrics().quad;else throw new P("Invalid unit: '"+e.unit+"'");n!==t&&(A*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*A,t.maxSize)},O=function(e){return+e.toFixed(4)+"em"},AA=function(e){return e.filter(t=>t).join(" ")},$l=function(e,t,A){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=A||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},ec=function(e){var t=document.createElement(e);t.className=AA(this.classes);for(var A in this.style)this.style.hasOwnProperty(A)&&(t.style[A]=this.style[A]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var i=0;i<this.children.length;i++)t.appendChild(this.children[i].toNode());return t},tc=function(e){var t="<"+e;this.classes.length&&(t+=' class="'+X.escape(AA(this.classes))+'"');var A="";for(var n in this.style)this.style.hasOwnProperty(n)&&(A+=X.hyphenate(n)+":"+this.style[n]+";");A&&(t+=' style="'+X.escape(A)+'"');for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&(t+=" "+i+'="'+X.escape(this.attributes[i])+'"');t+=">";for(var s=0;s<this.children.length;s++)t+=this.children[s].toMarkup();return t+="</"+e+">",t};class Qr{constructor(e,t,A,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,$l.call(this,e,A,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return X.contains(this.classes,e)}toNode(){return ec.call(this,"span")}toMarkup(){return tc.call(this,"span")}}class Vs{constructor(e,t,A,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,$l.call(this,t,n),this.children=A||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return X.contains(this.classes,e)}toNode(){return ec.call(this,"a")}toMarkup(){return tc.call(this,"a")}}class s2{constructor(e,t,A){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=A}hasClass(e){return X.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e='<img src="'+X.escape(this.src)+'"'+(' alt="'+X.escape(this.alt)+'"'),t="";for(var A in this.style)this.style.hasOwnProperty(A)&&(t+=X.hyphenate(A)+":"+this.style[A]+";");return t&&(e+=' style="'+X.escape(t)+'"'),e+="'/>",e}}var a2={î:"ı̂",ï:"ı̈",í:"ı́",ì:"ı̀"};class st{constructor(e,t,A,n,i,s,a,o){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=e,this.height=t||0,this.depth=A||0,this.italic=n||0,this.skew=i||0,this.width=s||0,this.classes=a||[],this.style=o||{},this.maxFontSize=0;var l=Yw(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[îïíì]/.test(this.text)&&(this.text=a2[this.text])}hasClass(e){return X.contains(this.classes,e)}toNode(){var e=document.createTextNode(this.text),t=null;this.italic>0&&(t=document.createElement("span"),t.style.marginRight=O(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=AA(this.classes));for(var A in this.style)this.style.hasOwnProperty(A)&&(t=t||document.createElement("span"),t.style[A]=this.style[A]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="<span";this.classes.length&&(e=!0,t+=' class="',t+=X.escape(AA(this.classes)),t+='"');var A="";this.italic>0&&(A+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(A+=X.hyphenate(n)+":"+this.style[n]+";");A&&(e=!0,t+=' style="'+X.escape(A)+'"');var i=X.escape(this.text);return e?(t+=">",t+=i,t+="</span>",t):i}}class Ht{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");for(var A in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,A)&&t.setAttribute(A,this.attributes[A]);for(var n=0;n<this.children.length;n++)t.appendChild(this.children[n].toNode());return t}toMarkup(){var e='<svg xmlns="http://www.w3.org/2000/svg"';for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+'="'+X.escape(this.attributes[t])+'"');e+=">";for(var A=0;A<this.children.length;A++)e+=this.children[A].toMarkup();return e+="</svg>",e}}class rA{constructor(e,t){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=t}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"path");return this.alternate?t.setAttribute("d",this.alternate):t.setAttribute("d",Jl[this.pathName]),t}toMarkup(){return this.alternate?'<path d="'+X.escape(this.alternate)+'"/>':'<path d="'+X.escape(Jl[this.pathName])+'"/>'}}class Ys{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"line");for(var A in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,A)&&t.setAttribute(A,this.attributes[A]);return t}toMarkup(){var e="<line";for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+'="'+X.escape(this.attributes[t])+'"');return e+="/>",e}}function Ac(r){if(r instanceof st)return r;throw new Error("Expected symbolNode but got "+String(r)+".")}function o2(r){if(r instanceof Qr)return r;throw new Error("Expected span<HtmlDomNode> but got "+String(r)+".")}var l2={bin:1,close:1,inner:1,open:1,punct:1,rel:1},c2={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},ge={math:{},text:{}};function h(r,e,t,A,n,i){ge[r][n]={font:e,group:t,replace:A},i&&A&&(ge[r][A]=ge[r][n])}var u="math",T="text",f="main",b="ams",fe="accent-token",G="bin",Ke="close",VA="inner",_="mathord",Ie="op-token",Ze="open",Xn="punct",Q="rel",Tt="spacing",U="textord";h(u,f,Q,"≡","\\equiv",!0),h(u,f,Q,"≺","\\prec",!0),h(u,f,Q,"≻","\\succ",!0),h(u,f,Q,"∼","\\sim",!0),h(u,f,Q,"⊥","\\perp"),h(u,f,Q,"⪯","\\preceq",!0),h(u,f,Q,"⪰","\\succeq",!0),h(u,f,Q,"≃","\\simeq",!0),h(u,f,Q,"∣","\\mid",!0),h(u,f,Q,"≪","\\ll",!0),h(u,f,Q,"≫","\\gg",!0),h(u,f,Q,"≍","\\asymp",!0),h(u,f,Q,"∥","\\parallel"),h(u,f,Q,"⋈","\\bowtie",!0),h(u,f,Q,"⌣","\\smile",!0),h(u,f,Q,"⊑","\\sqsubseteq",!0),h(u,f,Q,"⊒","\\sqsupseteq",!0),h(u,f,Q,"≐","\\doteq",!0),h(u,f,Q,"⌢","\\frown",!0),h(u,f,Q,"∋","\\ni",!0),h(u,f,Q,"∝","\\propto",!0),h(u,f,Q,"⊢","\\vdash",!0),h(u,f,Q,"⊣","\\dashv",!0),h(u,f,Q,"∋","\\owns"),h(u,f,Xn,".","\\ldotp"),h(u,f,Xn,"⋅","\\cdotp"),h(u,f,U,"#","\\#"),h(T,f,U,"#","\\#"),h(u,f,U,"&","\\&"),h(T,f,U,"&","\\&"),h(u,f,U,"ℵ","\\aleph",!0),h(u,f,U,"∀","\\forall",!0),h(u,f,U,"ℏ","\\hbar",!0),h(u,f,U,"∃","\\exists",!0),h(u,f,U,"∇","\\nabla",!0),h(u,f,U,"♭","\\flat",!0),h(u,f,U,"ℓ","\\ell",!0),h(u,f,U,"♮","\\natural",!0),h(u,f,U,"♣","\\clubsuit",!0),h(u,f,U,"℘","\\wp",!0),h(u,f,U,"♯","\\sharp",!0),h(u,f,U,"♢","\\diamondsuit",!0),h(u,f,U,"ℜ","\\Re",!0),h(u,f,U,"♡","\\heartsuit",!0),h(u,f,U,"ℑ","\\Im",!0),h(u,f,U,"♠","\\spadesuit",!0),h(u,f,U,"§","\\S",!0),h(T,f,U,"§","\\S"),h(u,f,U,"¶","\\P",!0),h(T,f,U,"¶","\\P"),h(u,f,U,"†","\\dag"),h(T,f,U,"†","\\dag"),h(T,f,U,"†","\\textdagger"),h(u,f,U,"‡","\\ddag"),h(T,f,U,"‡","\\ddag"),h(T,f,U,"‡","\\textdaggerdbl"),h(u,f,Ke,"⎱","\\rmoustache",!0),h(u,f,Ze,"⎰","\\lmoustache",!0),h(u,f,Ke,"⟯","\\rgroup",!0),h(u,f,Ze,"⟮","\\lgroup",!0),h(u,f,G,"∓","\\mp",!0),h(u,f,G,"⊖","\\ominus",!0),h(u,f,G,"⊎","\\uplus",!0),h(u,f,G,"⊓","\\sqcap",!0),h(u,f,G,"∗","\\ast"),h(u,f,G,"⊔","\\sqcup",!0),h(u,f,G,"◯","\\bigcirc",!0),h(u,f,G,"∙","\\bullet",!0),h(u,f,G,"‡","\\ddagger"),h(u,f,G,"≀","\\wr",!0),h(u,f,G,"⨿","\\amalg"),h(u,f,G,"&","\\And"),h(u,f,Q,"⟵","\\longleftarrow",!0),h(u,f,Q,"⇐","\\Leftarrow",!0),h(u,f,Q,"⟸","\\Longleftarrow",!0),h(u,f,Q,"⟶","\\longrightarrow",!0),h(u,f,Q,"⇒","\\Rightarrow",!0),h(u,f,Q,"⟹","\\Longrightarrow",!0),h(u,f,Q,"↔","\\leftrightarrow",!0),h(u,f,Q,"⟷","\\longleftrightarrow",!0),h(u,f,Q,"⇔","\\Leftrightarrow",!0),h(u,f,Q,"⟺","\\Longleftrightarrow",!0),h(u,f,Q,"↦","\\mapsto",!0),h(u,f,Q,"⟼","\\longmapsto",!0),h(u,f,Q,"↗","\\nearrow",!0),h(u,f,Q,"↩","\\hookleftarrow",!0),h(u,f,Q,"↪","\\hookrightarrow",!0),h(u,f,Q,"↘","\\searrow",!0),h(u,f,Q,"↼","\\leftharpoonup",!0),h(u,f,Q,"⇀","\\rightharpoonup",!0),h(u,f,Q,"↙","\\swarrow",!0),h(u,f,Q,"↽","\\leftharpoondown",!0),h(u,f,Q,"⇁","\\rightharpoondown",!0),h(u,f,Q,"↖","\\nwarrow",!0),h(u,f,Q,"⇌","\\rightleftharpoons",!0),h(u,b,Q,"≮","\\nless",!0),h(u,b,Q,"","\\@nleqslant"),h(u,b,Q,"","\\@nleqq"),h(u,b,Q,"⪇","\\lneq",!0),h(u,b,Q,"≨","\\lneqq",!0),h(u,b,Q,"","\\@lvertneqq"),h(u,b,Q,"⋦","\\lnsim",!0),h(u,b,Q,"⪉","\\lnapprox",!0),h(u,b,Q,"⊀","\\nprec",!0),h(u,b,Q,"⋠","\\npreceq",!0),h(u,b,Q,"⋨","\\precnsim",!0),h(u,b,Q,"⪹","\\precnapprox",!0),h(u,b,Q,"≁","\\nsim",!0),h(u,b,Q,"","\\@nshortmid"),h(u,b,Q,"∤","\\nmid",!0),h(u,b,Q,"⊬","\\nvdash",!0),h(u,b,Q,"⊭","\\nvDash",!0),h(u,b,Q,"⋪","\\ntriangleleft"),h(u,b,Q,"⋬","\\ntrianglelefteq",!0),h(u,b,Q,"⊊","\\subsetneq",!0),h(u,b,Q,"","\\@varsubsetneq"),h(u,b,Q,"⫋","\\subsetneqq",!0),h(u,b,Q,"","\\@varsubsetneqq"),h(u,b,Q,"≯","\\ngtr",!0),h(u,b,Q,"","\\@ngeqslant"),h(u,b,Q,"","\\@ngeqq"),h(u,b,Q,"⪈","\\gneq",!0),h(u,b,Q,"≩","\\gneqq",!0),h(u,b,Q,"","\\@gvertneqq"),h(u,b,Q,"⋧","\\gnsim",!0),h(u,b,Q,"⪊","\\gnapprox",!0),h(u,b,Q,"⊁","\\nsucc",!0),h(u,b,Q,"⋡","\\nsucceq",!0),h(u,b,Q,"⋩","\\succnsim",!0),h(u,b,Q,"⪺","\\succnapprox",!0),h(u,b,Q,"≆","\\ncong",!0),h(u,b,Q,"","\\@nshortparallel"),h(u,b,Q,"∦","\\nparallel",!0),h(u,b,Q,"⊯","\\nVDash",!0),h(u,b,Q,"⋫","\\ntriangleright"),h(u,b,Q,"⋭","\\ntrianglerighteq",!0),h(u,b,Q,"","\\@nsupseteqq"),h(u,b,Q,"⊋","\\supsetneq",!0),h(u,b,Q,"","\\@varsupsetneq"),h(u,b,Q,"⫌","\\supsetneqq",!0),h(u,b,Q,"","\\@varsupsetneqq"),h(u,b,Q,"⊮","\\nVdash",!0),h(u,b,Q,"⪵","\\precneqq",!0),h(u,b,Q,"⪶","\\succneqq",!0),h(u,b,Q,"","\\@nsubseteqq"),h(u,b,G,"⊴","\\unlhd"),h(u,b,G,"⊵","\\unrhd"),h(u,b,Q,"↚","\\nleftarrow",!0),h(u,b,Q,"↛","\\nrightarrow",!0),h(u,b,Q,"⇍","\\nLeftarrow",!0),h(u,b,Q,"⇏","\\nRightarrow",!0),h(u,b,Q,"↮","\\nleftrightarrow",!0),h(u,b,Q,"⇎","\\nLeftrightarrow",!0),h(u,b,Q,"△","\\vartriangle"),h(u,b,U,"ℏ","\\hslash"),h(u,b,U,"▽","\\triangledown"),h(u,b,U,"◊","\\lozenge"),h(u,b,U,"Ⓢ","\\circledS"),h(u,b,U,"®","\\circledR"),h(T,b,U,"®","\\circledR"),h(u,b,U,"∡","\\measuredangle",!0),h(u,b,U,"∄","\\nexists"),h(u,b,U,"℧","\\mho"),h(u,b,U,"Ⅎ","\\Finv",!0),h(u,b,U,"⅁","\\Game",!0),h(u,b,U,"‵","\\backprime"),h(u,b,U,"▲","\\blacktriangle"),h(u,b,U,"▼","\\blacktriangledown"),h(u,b,U,"■","\\blacksquare"),h(u,b,U,"⧫","\\blacklozenge"),h(u,b,U,"★","\\bigstar"),h(u,b,U,"∢","\\sphericalangle",!0),h(u,b,U,"∁","\\complement",!0),h(u,b,U,"ð","\\eth",!0),h(T,f,U,"ð","ð"),h(u,b,U,"╱","\\diagup"),h(u,b,U,"╲","\\diagdown"),h(u,b,U,"□","\\square"),h(u,b,U,"□","\\Box"),h(u,b,U,"◊","\\Diamond"),h(u,b,U,"¥","\\yen",!0),h(T,b,U,"¥","\\yen",!0),h(u,b,U,"✓","\\checkmark",!0),h(T,b,U,"✓","\\checkmark"),h(u,b,U,"ℶ","\\beth",!0),h(u,b,U,"ℸ","\\daleth",!0),h(u,b,U,"ℷ","\\gimel",!0),h(u,b,U,"ϝ","\\digamma",!0),h(u,b,U,"ϰ","\\varkappa"),h(u,b,Ze,"┌","\\@ulcorner",!0),h(u,b,Ke,"┐","\\@urcorner",!0),h(u,b,Ze,"└","\\@llcorner",!0),h(u,b,Ke,"┘","\\@lrcorner",!0),h(u,b,Q,"≦","\\leqq",!0),h(u,b,Q,"⩽","\\leqslant",!0),h(u,b,Q,"⪕","\\eqslantless",!0),h(u,b,Q,"≲","\\lesssim",!0),h(u,b,Q,"⪅","\\lessapprox",!0),h(u,b,Q,"≊","\\approxeq",!0),h(u,b,G,"⋖","\\lessdot"),h(u,b,Q,"⋘","\\lll",!0),h(u,b,Q,"≶","\\lessgtr",!0),h(u,b,Q,"⋚","\\lesseqgtr",!0),h(u,b,Q,"⪋","\\lesseqqgtr",!0),h(u,b,Q,"≑","\\doteqdot"),h(u,b,Q,"≓","\\risingdotseq",!0),h(u,b,Q,"≒","\\fallingdotseq",!0),h(u,b,Q,"∽","\\backsim",!0),h(u,b,Q,"⋍","\\backsimeq",!0),h(u,b,Q,"⫅","\\subseteqq",!0),h(u,b,Q,"⋐","\\Subset",!0),h(u,b,Q,"⊏","\\sqsubset",!0),h(u,b,Q,"≼","\\preccurlyeq",!0),h(u,b,Q,"⋞","\\curlyeqprec",!0),h(u,b,Q,"≾","\\precsim",!0),h(u,b,Q,"⪷","\\precapprox",!0),h(u,b,Q,"⊲","\\vartriangleleft"),h(u,b,Q,"⊴","\\trianglelefteq"),h(u,b,Q,"⊨","\\vDash",!0),h(u,b,Q,"⊪","\\Vvdash",!0),h(u,b,Q,"⌣","\\smallsmile"),h(u,b,Q,"⌢","\\smallfrown"),h(u,b,Q,"≏","\\bumpeq",!0),h(u,b,Q,"≎","\\Bumpeq",!0),h(u,b,Q,"≧","\\geqq",!0),h(u,b,Q,"⩾","\\geqslant",!0),h(u,b,Q,"⪖","\\eqslantgtr",!0),h(u,b,Q,"≳","\\gtrsim",!0),h(u,b,Q,"⪆","\\gtrapprox",!0),h(u,b,G,"⋗","\\gtrdot"),h(u,b,Q,"⋙","\\ggg",!0),h(u,b,Q,"≷","\\gtrless",!0),h(u,b,Q,"⋛","\\gtreqless",!0),h(u,b,Q,"⪌","\\gtreqqless",!0),h(u,b,Q,"≖","\\eqcirc",!0),h(u,b,Q,"≗","\\circeq",!0),h(u,b,Q,"≜","\\triangleq",!0),h(u,b,Q,"∼","\\thicksim"),h(u,b,Q,"≈","\\thickapprox"),h(u,b,Q,"⫆","\\supseteqq",!0),h(u,b,Q,"⋑","\\Supset",!0),h(u,b,Q,"⊐","\\sqsupset",!0),h(u,b,Q,"≽","\\succcurlyeq",!0),h(u,b,Q,"⋟","\\curlyeqsucc",!0),h(u,b,Q,"≿","\\succsim",!0),h(u,b,Q,"⪸","\\succapprox",!0),h(u,b,Q,"⊳","\\vartriangleright"),h(u,b,Q,"⊵","\\trianglerighteq"),h(u,b,Q,"⊩","\\Vdash",!0),h(u,b,Q,"∣","\\shortmid"),h(u,b,Q,"∥","\\shortparallel"),h(u,b,Q,"≬","\\between",!0),h(u,b,Q,"⋔","\\pitchfork",!0),h(u,b,Q,"∝","\\varpropto"),h(u,b,Q,"◀","\\blacktriangleleft"),h(u,b,Q,"∴","\\therefore",!0),h(u,b,Q,"∍","\\backepsilon"),h(u,b,Q,"▶","\\blacktriangleright"),h(u,b,Q,"∵","\\because",!0),h(u,b,Q,"⋘","\\llless"),h(u,b,Q,"⋙","\\gggtr"),h(u,b,G,"⊲","\\lhd"),h(u,b,G,"⊳","\\rhd"),h(u,b,Q,"≂","\\eqsim",!0),h(u,f,Q,"⋈","\\Join"),h(u,b,Q,"≑","\\Doteq",!0),h(u,b,G,"∔","\\dotplus",!0),h(u,b,G,"∖","\\smallsetminus"),h(u,b,G,"⋒","\\Cap",!0),h(u,b,G,"⋓","\\Cup",!0),h(u,b,G,"⩞","\\doublebarwedge",!0),h(u,b,G,"⊟","\\boxminus",!0),h(u,b,G,"⊞","\\boxplus",!0),h(u,b,G,"⋇","\\divideontimes",!0),h(u,b,G,"⋉","\\ltimes",!0),h(u,b,G,"⋊","\\rtimes",!0),h(u,b,G,"⋋","\\leftthreetimes",!0),h(u,b,G,"⋌","\\rightthreetimes",!0),h(u,b,G,"⋏","\\curlywedge",!0),h(u,b,G,"⋎","\\curlyvee",!0),h(u,b,G,"⊝","\\circleddash",!0),h(u,b,G,"⊛","\\circledast",!0),h(u,b,G,"⋅","\\centerdot"),h(u,b,G,"⊺","\\intercal",!0),h(u,b,G,"⋒","\\doublecap"),h(u,b,G,"⋓","\\doublecup"),h(u,b,G,"⊠","\\boxtimes",!0),h(u,b,Q,"⇢","\\dashrightarrow",!0),h(u,b,Q,"⇠","\\dashleftarrow",!0),h(u,b,Q,"⇇","\\leftleftarrows",!0),h(u,b,Q,"⇆","\\leftrightarrows",!0),h(u,b,Q,"⇚","\\Lleftarrow",!0),h(u,b,Q,"↞","\\twoheadleftarrow",!0),h(u,b,Q,"↢","\\leftarrowtail",!0),h(u,b,Q,"↫","\\looparrowleft",!0),h(u,b,Q,"⇋","\\leftrightharpoons",!0),h(u,b,Q,"↶","\\curvearrowleft",!0),h(u,b,Q,"↺","\\circlearrowleft",!0),h(u,b,Q,"↰","\\Lsh",!0),h(u,b,Q,"⇈","\\upuparrows",!0),h(u,b,Q,"↿","\\upharpoonleft",!0),h(u,b,Q,"⇃","\\downharpoonleft",!0),h(u,f,Q,"⊶","\\origof",!0),h(u,f,Q,"⊷","\\imageof",!0),h(u,b,Q,"⊸","\\multimap",!0),h(u,b,Q,"↭","\\leftrightsquigarrow",!0),h(u,b,Q,"⇉","\\rightrightarrows",!0),h(u,b,Q,"⇄","\\rightleftarrows",!0),h(u,b,Q,"↠","\\twoheadrightarrow",!0),h(u,b,Q,"↣","\\rightarrowtail",!0),h(u,b,Q,"↬","\\looparrowright",!0),h(u,b,Q,"↷","\\curvearrowright",!0),h(u,b,Q,"↻","\\circlearrowright",!0),h(u,b,Q,"↱","\\Rsh",!0),h(u,b,Q,"⇊","\\downdownarrows",!0),h(u,b,Q,"↾","\\upharpoonright",!0),h(u,b,Q,"⇂","\\downharpoonright",!0),h(u,b,Q,"⇝","\\rightsquigarrow",!0),h(u,b,Q,"⇝","\\leadsto"),h(u,b,Q,"⇛","\\Rrightarrow",!0),h(u,b,Q,"↾","\\restriction"),h(u,f,U,"‘","`"),h(u,f,U,"$","\\$"),h(T,f,U,"$","\\$"),h(T,f,U,"$","\\textdollar"),h(u,f,U,"%","\\%"),h(T,f,U,"%","\\%"),h(u,f,U,"_","\\_"),h(T,f,U,"_","\\_"),h(T,f,U,"_","\\textunderscore"),h(u,f,U,"∠","\\angle",!0),h(u,f,U,"∞","\\infty",!0),h(u,f,U,"′","\\prime"),h(u,f,U,"△","\\triangle"),h(u,f,U,"Γ","\\Gamma",!0),h(u,f,U,"Δ","\\Delta",!0),h(u,f,U,"Θ","\\Theta",!0),h(u,f,U,"Λ","\\Lambda",!0),h(u,f,U,"Ξ","\\Xi",!0),h(u,f,U,"Π","\\Pi",!0),h(u,f,U,"Σ","\\Sigma",!0),h(u,f,U,"Υ","\\Upsilon",!0),h(u,f,U,"Φ","\\Phi",!0),h(u,f,U,"Ψ","\\Psi",!0),h(u,f,U,"Ω","\\Omega",!0),h(u,f,U,"A","Α"),h(u,f,U,"B","Β"),h(u,f,U,"E","Ε"),h(u,f,U,"Z","Ζ"),h(u,f,U,"H","Η"),h(u,f,U,"I","Ι"),h(u,f,U,"K","Κ"),h(u,f,U,"M","Μ"),h(u,f,U,"N","Ν"),h(u,f,U,"O","Ο"),h(u,f,U,"P","Ρ"),h(u,f,U,"T","Τ"),h(u,f,U,"X","Χ"),h(u,f,U,"¬","\\neg",!0),h(u,f,U,"¬","\\lnot"),h(u,f,U,"⊤","\\top"),h(u,f,U,"⊥","\\bot"),h(u,f,U,"∅","\\emptyset"),h(u,b,U,"∅","\\varnothing"),h(u,f,_,"α","\\alpha",!0),h(u,f,_,"β","\\beta",!0),h(u,f,_,"γ","\\gamma",!0),h(u,f,_,"δ","\\delta",!0),h(u,f,_,"ϵ","\\epsilon",!0),h(u,f,_,"ζ","\\zeta",!0),h(u,f,_,"η","\\eta",!0),h(u,f,_,"θ","\\theta",!0),h(u,f,_,"ι","\\iota",!0),h(u,f,_,"κ","\\kappa",!0),h(u,f,_,"λ","\\lambda",!0),h(u,f,_,"μ","\\mu",!0),h(u,f,_,"ν","\\nu",!0),h(u,f,_,"ξ","\\xi",!0),h(u,f,_,"ο","\\omicron",!0),h(u,f,_,"π","\\pi",!0),h(u,f,_,"ρ","\\rho",!0),h(u,f,_,"σ","\\sigma",!0),h(u,f,_,"τ","\\tau",!0),h(u,f,_,"υ","\\upsilon",!0),h(u,f,_,"ϕ","\\phi",!0),h(u,f,_,"χ","\\chi",!0),h(u,f,_,"ψ","\\psi",!0),h(u,f,_,"ω","\\omega",!0),h(u,f,_,"ε","\\varepsilon",!0),h(u,f,_,"ϑ","\\vartheta",!0),h(u,f,_,"ϖ","\\varpi",!0),h(u,f,_,"ϱ","\\varrho",!0),h(u,f,_,"ς","\\varsigma",!0),h(u,f,_,"φ","\\varphi",!0),h(u,f,G,"∗","*",!0),h(u,f,G,"+","+"),h(u,f,G,"−","-",!0),h(u,f,G,"⋅","\\cdot",!0),h(u,f,G,"∘","\\circ",!0),h(u,f,G,"÷","\\div",!0),h(u,f,G,"±","\\pm",!0),h(u,f,G,"×","\\times",!0),h(u,f,G,"∩","\\cap",!0),h(u,f,G,"∪","\\cup",!0),h(u,f,G,"∖","\\setminus",!0),h(u,f,G,"∧","\\land"),h(u,f,G,"∨","\\lor"),h(u,f,G,"∧","\\wedge",!0),h(u,f,G,"∨","\\vee",!0),h(u,f,U,"√","\\surd"),h(u,f,Ze,"⟨","\\langle",!0),h(u,f,Ze,"∣","\\lvert"),h(u,f,Ze,"∥","\\lVert"),h(u,f,Ke,"?","?"),h(u,f,Ke,"!","!"),h(u,f,Ke,"⟩","\\rangle",!0),h(u,f,Ke,"∣","\\rvert"),h(u,f,Ke,"∥","\\rVert"),h(u,f,Q,"=","="),h(u,f,Q,":",":"),h(u,f,Q,"≈","\\approx",!0),h(u,f,Q,"≅","\\cong",!0),h(u,f,Q,"≥","\\ge"),h(u,f,Q,"≥","\\geq",!0),h(u,f,Q,"←","\\gets"),h(u,f,Q,">","\\gt",!0),h(u,f,Q,"∈","\\in",!0),h(u,f,Q,"","\\@not"),h(u,f,Q,"⊂","\\subset",!0),h(u,f,Q,"⊃","\\supset",!0),h(u,f,Q,"⊆","\\subseteq",!0),h(u,f,Q,"⊇","\\supseteq",!0),h(u,b,Q,"⊈","\\nsubseteq",!0),h(u,b,Q,"⊉","\\nsupseteq",!0),h(u,f,Q,"⊨","\\models"),h(u,f,Q,"←","\\leftarrow",!0),h(u,f,Q,"≤","\\le"),h(u,f,Q,"≤","\\leq",!0),h(u,f,Q,"<","\\lt",!0),h(u,f,Q,"→","\\rightarrow",!0),h(u,f,Q,"→","\\to"),h(u,b,Q,"≱","\\ngeq",!0),h(u,b,Q,"≰","\\nleq",!0),h(u,f,Tt," ","\\ "),h(u,f,Tt," ","\\space"),h(u,f,Tt," ","\\nobreakspace"),h(T,f,Tt," ","\\ "),h(T,f,Tt," "," "),h(T,f,Tt," ","\\space"),h(T,f,Tt," ","\\nobreakspace"),h(u,f,Tt,null,"\\nobreak"),h(u,f,Tt,null,"\\allowbreak"),h(u,f,Xn,",",","),h(u,f,Xn,";",";"),h(u,b,G,"⊼","\\barwedge",!0),h(u,b,G,"⊻","\\veebar",!0),h(u,f,G,"⊙","\\odot",!0),h(u,f,G,"⊕","\\oplus",!0),h(u,f,G,"⊗","\\otimes",!0),h(u,f,U,"∂","\\partial",!0),h(u,f,G,"⊘","\\oslash",!0),h(u,b,G,"⊚","\\circledcirc",!0),h(u,b,G,"⊡","\\boxdot",!0),h(u,f,G,"△","\\bigtriangleup"),h(u,f,G,"▽","\\bigtriangledown"),h(u,f,G,"†","\\dagger"),h(u,f,G,"⋄","\\diamond"),h(u,f,G,"⋆","\\star"),h(u,f,G,"◃","\\triangleleft"),h(u,f,G,"▹","\\triangleright"),h(u,f,Ze,"{","\\{"),h(T,f,U,"{","\\{"),h(T,f,U,"{","\\textbraceleft"),h(u,f,Ke,"}","\\}"),h(T,f,U,"}","\\}"),h(T,f,U,"}","\\textbraceright"),h(u,f,Ze,"{","\\lbrace"),h(u,f,Ke,"}","\\rbrace"),h(u,f,Ze,"[","\\lbrack",!0),h(T,f,U,"[","\\lbrack",!0),h(u,f,Ke,"]","\\rbrack",!0),h(T,f,U,"]","\\rbrack",!0),h(u,f,Ze,"(","\\lparen",!0),h(u,f,Ke,")","\\rparen",!0),h(T,f,U,"<","\\textless",!0),h(T,f,U,">","\\textgreater",!0),h(u,f,Ze,"⌊","\\lfloor",!0),h(u,f,Ke,"⌋","\\rfloor",!0),h(u,f,Ze,"⌈","\\lceil",!0),h(u,f,Ke,"⌉","\\rceil",!0),h(u,f,U,"\\","\\backslash"),h(u,f,U,"∣","|"),h(u,f,U,"∣","\\vert"),h(T,f,U,"|","\\textbar",!0),h(u,f,U,"∥","\\|"),h(u,f,U,"∥","\\Vert"),h(T,f,U,"∥","\\textbardbl"),h(T,f,U,"~","\\textasciitilde"),h(T,f,U,"\\","\\textbackslash"),h(T,f,U,"^","\\textasciicircum"),h(u,f,Q,"↑","\\uparrow",!0),h(u,f,Q,"⇑","\\Uparrow",!0),h(u,f,Q,"↓","\\downarrow",!0),h(u,f,Q,"⇓","\\Downarrow",!0),h(u,f,Q,"↕","\\updownarrow",!0),h(u,f,Q,"⇕","\\Updownarrow",!0),h(u,f,Ie,"∐","\\coprod"),h(u,f,Ie,"⋁","\\bigvee"),h(u,f,Ie,"⋀","\\bigwedge"),h(u,f,Ie,"⨄","\\biguplus"),h(u,f,Ie,"⋂","\\bigcap"),h(u,f,Ie,"⋃","\\bigcup"),h(u,f,Ie,"∫","\\int"),h(u,f,Ie,"∫","\\intop"),h(u,f,Ie,"∬","\\iint"),h(u,f,Ie,"∭","\\iiint"),h(u,f,Ie,"∏","\\prod"),h(u,f,Ie,"∑","\\sum"),h(u,f,Ie,"⨂","\\bigotimes"),h(u,f,Ie,"⨁","\\bigoplus"),h(u,f,Ie,"⨀","\\bigodot"),h(u,f,Ie,"∮","\\oint"),h(u,f,Ie,"∯","\\oiint"),h(u,f,Ie,"∰","\\oiiint"),h(u,f,Ie,"⨆","\\bigsqcup"),h(u,f,Ie,"∫","\\smallint"),h(T,f,VA,"…","\\textellipsis"),h(u,f,VA,"…","\\mathellipsis"),h(T,f,VA,"…","\\ldots",!0),h(u,f,VA,"…","\\ldots",!0),h(u,f,VA,"⋯","\\@cdots",!0),h(u,f,VA,"⋱","\\ddots",!0),h(u,f,U,"⋮","\\varvdots"),h(u,f,fe,"ˊ","\\acute"),h(u,f,fe,"ˋ","\\grave"),h(u,f,fe,"¨","\\ddot"),h(u,f,fe,"~","\\tilde"),h(u,f,fe,"ˉ","\\bar"),h(u,f,fe,"˘","\\breve"),h(u,f,fe,"ˇ","\\check"),h(u,f,fe,"^","\\hat"),h(u,f,fe,"⃗","\\vec"),h(u,f,fe,"˙","\\dot"),h(u,f,fe,"˚","\\mathring"),h(u,f,_,"","\\@imath"),h(u,f,_,"","\\@jmath"),h(u,f,U,"ı","ı"),h(u,f,U,"ȷ","ȷ"),h(T,f,U,"ı","\\i",!0),h(T,f,U,"ȷ","\\j",!0),h(T,f,U,"ß","\\ss",!0),h(T,f,U,"æ","\\ae",!0),h(T,f,U,"œ","\\oe",!0),h(T,f,U,"ø","\\o",!0),h(T,f,U,"Æ","\\AE",!0),h(T,f,U,"Œ","\\OE",!0),h(T,f,U,"Ø","\\O",!0),h(T,f,fe,"ˊ","\\'"),h(T,f,fe,"ˋ","\\`"),h(T,f,fe,"ˆ","\\^"),h(T,f,fe,"˜","\\~"),h(T,f,fe,"ˉ","\\="),h(T,f,fe,"˘","\\u"),h(T,f,fe,"˙","\\."),h(T,f,fe,"¸","\\c"),h(T,f,fe,"˚","\\r"),h(T,f,fe,"ˇ","\\v"),h(T,f,fe,"¨",'\\"'),h(T,f,fe,"˝","\\H"),h(T,f,fe,"◯","\\textcircled");var rc={"--":!0,"---":!0,"``":!0,"''":!0};h(T,f,U,"–","--",!0),h(T,f,U,"–","\\textendash"),h(T,f,U,"—","---",!0),h(T,f,U,"—","\\textemdash"),h(T,f,U,"‘","`",!0),h(T,f,U,"‘","\\textquoteleft"),h(T,f,U,"’","'",!0),h(T,f,U,"’","\\textquoteright"),h(T,f,U,"“","``",!0),h(T,f,U,"“","\\textquotedblleft"),h(T,f,U,"”","''",!0),h(T,f,U,"”","\\textquotedblright"),h(u,f,U,"°","\\degree",!0),h(T,f,U,"°","\\degree"),h(T,f,U,"°","\\textdegree",!0),h(u,f,U,"£","\\pounds"),h(u,f,U,"£","\\mathsterling",!0),h(T,f,U,"£","\\pounds"),h(T,f,U,"£","\\textsterling",!0),h(u,b,U,"✠","\\maltese"),h(T,b,U,"✠","\\maltese");for(var nc='0123456789/@."',Ws=0;Ws<nc.length;Ws++){var ic=nc.charAt(Ws);h(u,f,U,ic,ic)}for(var sc='0123456789!@*()-=+";:?/.,',Xs=0;Xs<sc.length;Xs++){var ac=sc.charAt(Xs);h(T,f,U,ac,ac)}for(var Jn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Js=0;Js<Jn.length;Js++){var _n=Jn.charAt(Js);h(u,f,_,_n,_n),h(T,f,U,_n,_n)}h(u,b,U,"C","ℂ"),h(T,b,U,"C","ℂ"),h(u,b,U,"H","ℍ"),h(T,b,U,"H","ℍ"),h(u,b,U,"N","ℕ"),h(T,b,U,"N","ℕ"),h(u,b,U,"P","ℙ"),h(T,b,U,"P","ℙ"),h(u,b,U,"Q","ℚ"),h(T,b,U,"Q","ℚ"),h(u,b,U,"R","ℝ"),h(T,b,U,"R","ℝ"),h(u,b,U,"Z","ℤ"),h(T,b,U,"Z","ℤ"),h(u,f,_,"h","ℎ"),h(T,f,_,"h","ℎ");for(var $="",ze=0;ze<Jn.length;ze++){var be=Jn.charAt(ze);$=String.fromCharCode(55349,56320+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56372+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56424+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56580+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56684+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56736+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56788+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56840+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56944+ze),h(u,f,_,be,$),h(T,f,U,be,$),ze<26&&($=String.fromCharCode(55349,56632+ze),h(u,f,_,be,$),h(T,f,U,be,$),$=String.fromCharCode(55349,56476+ze),h(u,f,_,be,$),h(T,f,U,be,$))}$="𝕜",h(u,f,_,"k",$),h(T,f,U,"k",$);for(var BA=0;BA<10;BA++){var nA=BA.toString();$=String.fromCharCode(55349,57294+BA),h(u,f,_,nA,$),h(T,f,U,nA,$),$=String.fromCharCode(55349,57314+BA),h(u,f,_,nA,$),h(T,f,U,nA,$),$=String.fromCharCode(55349,57324+BA),h(u,f,_,nA,$),h(T,f,U,nA,$),$=String.fromCharCode(55349,57334+BA),h(u,f,_,nA,$),h(T,f,U,nA,$)}for(var _s="ÐÞþ",qs=0;qs<_s.length;qs++){var qn=_s.charAt(qs);h(u,f,_,qn,qn),h(T,f,U,qn,qn)}var jn=[["mathbf","textbf","Main-Bold"],["mathbf","textbf","Main-Bold"],["mathnormal","textit","Math-Italic"],["mathnormal","textit","Math-Italic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["mathscr","textscr","Script-Regular"],["","",""],["","",""],["","",""],["mathfrak","textfrak","Fraktur-Regular"],["mathfrak","textfrak","Fraktur-Regular"],["mathbb","textbb","AMS-Regular"],["mathbb","textbb","AMS-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathitsf","textitsf","SansSerif-Italic"],["mathitsf","textitsf","SansSerif-Italic"],["","",""],["","",""],["mathtt","texttt","Typewriter-Regular"],["mathtt","texttt","Typewriter-Regular"]],oc=[["mathbf","textbf","Main-Bold"],["","",""],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathtt","texttt","Typewriter-Regular"]],d2=function(e,t){var A=e.charCodeAt(0),n=e.charCodeAt(1),i=(A-55296)*1024+(n-56320)+65536,s=t==="math"?0:1;if(119808<=i&&i<120484){var a=Math.floor((i-119808)/26);return[jn[a][2],jn[a][s]]}else if(120782<=i&&i<=120831){var o=Math.floor((i-120782)/10);return[oc[o][2],oc[o][s]]}else{if(i===120485||i===120486)return[jn[0][2],jn[0][s]];if(120486<i&&i<120782)return["",""];throw new P("Unsupported character: "+e)}},Zn=function(e,t,A){return ge[A][e]&&ge[A][e].replace&&(e=ge[A][e].replace),{value:e,metrics:Ks(e,t,A)}},ht=function(e,t,A,n,i){var s=Zn(e,t,A),a=s.metrics;e=s.value;var o;if(a){var l=a.italic;(A==="text"||n&&n.font==="mathit")&&(l=0),o=new st(e,a.height,a.depth,l,a.skew,a.width,i)}else typeof console<"u",o=new st(e,0,0,0,0,0,i);if(n){o.maxFontSize=n.sizeMultiplier,n.style.isTight()&&o.classes.push("mtight");var c=n.getColor();c&&(o.style.color=c)}return o},h2=function(e,t,A,n){return n===void 0&&(n=[]),A.font==="boldsymbol"&&Zn(e,"Main-Bold",t).metrics?ht(e,"Main-Bold",t,A,n.concat(["mathbf"])):e==="\\"||ge[t][e].font==="main"?ht(e,"Main-Regular",t,A,n):ht(e,"AMS-Regular",t,A,n.concat(["amsrm"]))},u2=function(e,t,A,n,i){return i!=="textord"&&Zn(e,"Math-BoldItalic",t).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"}},p2=function(e,t,A){var n=e.mode,i=e.text,s=["mord"],a=n==="math"||n==="text"&&t.font,o=a?t.font:t.fontFamily,l="",c="";if(i.charCodeAt(0)===55349&&([l,c]=d2(i,n)),l.length>0)return ht(i,l,n,t,s.concat(c));if(o){var d,g;if(o==="boldsymbol"){var p=u2(i,n,t,s,A);d=p.fontName,g=[p.fontClass]}else a?(d=dc[o].fontName,g=[o]):(d=$n(o,t.fontWeight,t.fontShape),g=[o,t.fontWeight,t.fontShape]);if(Zn(i,d,n).metrics)return ht(i,d,n,t,s.concat(g));if(rc.hasOwnProperty(i)&&d.slice(0,10)==="Typewriter"){for(var m=[],B=0;B<i.length;B++)m.push(ht(i[B],d,n,t,s.concat(g)));return cc(m)}}if(A==="mathord")return ht(i,"Math-Italic",n,t,s.concat(["mathnormal"]));if(A==="textord"){var y=ge[n][i]&&ge[n][i].font;if(y==="ams"){var x=$n("amsrm",t.fontWeight,t.fontShape);return ht(i,x,n,t,s.concat("amsrm",t.fontWeight,t.fontShape))}else if(y==="main"||!y){var C=$n("textrm",t.fontWeight,t.fontShape);return ht(i,C,n,t,s.concat(t.fontWeight,t.fontShape))}else{var I=$n(y,t.fontWeight,t.fontShape);return ht(i,I,n,t,s.concat(I,t.fontWeight,t.fontShape))}}else throw new Error("unexpected type: "+A+" in makeOrd")},g2=(r,e)=>{if(AA(r.classes)!==AA(e.classes)||r.skew!==e.skew||r.maxFontSize!==e.maxFontSize)return!1;if(r.classes.length===1){var t=r.classes[0];if(t==="mbin"||t==="mord")return!1}for(var A in r.style)if(r.style.hasOwnProperty(A)&&r.style[A]!==e.style[A])return!1;for(var n in e.style)if(e.style.hasOwnProperty(n)&&r.style[n]!==e.style[n])return!1;return!0},f2=r=>{for(var e=0;e<r.length-1;e++){var t=r[e],A=r[e+1];t instanceof st&&A instanceof st&&g2(t,A)&&(t.text+=A.text,t.height=Math.max(t.height,A.height),t.depth=Math.max(t.depth,A.depth),t.italic=A.italic,r.splice(e+1,1),e--)}return r},js=function(e){for(var t=0,A=0,n=0,i=0;i<e.children.length;i++){var s=e.children[i];s.height>t&&(t=s.height),s.depth>A&&(A=s.depth),s.maxFontSize>n&&(n=s.maxFontSize)}e.height=t,e.depth=A,e.maxFontSize=n},Xe=function(e,t,A,n){var i=new Qr(e,t,A,n);return js(i),i},lc=(r,e,t,A)=>new Qr(r,e,t,A),m2=function(e,t,A){var n=Xe([e],[],t);return n.height=Math.max(A||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=O(n.height),n.maxFontSize=1,n},w2=function(e,t,A,n){var i=new Vs(e,t,A,n);return js(i),i},cc=function(e){var t=new xr(e);return js(t),t},B2=function(e,t){return e instanceof xr?Xe([],[e],t):e},v2=function(e){if(e.positionType==="individualShift"){for(var t=e.children,A=[t[0]],n=-t[0].shift-t[0].elem.depth,i=n,s=1;s<t.length;s++){var a=-t[s].shift-i-t[s].elem.depth,o=a-(t[s-1].elem.height+t[s-1].elem.depth);i=i+a,A.push({type:"kern",size:o}),A.push(t[s])}return{children:A,depth:n}}var l;if(e.positionType==="top"){for(var c=e.positionData,d=0;d<e.children.length;d++){var g=e.children[d];c-=g.type==="kern"?g.size:g.elem.height+g.elem.depth}l=c}else if(e.positionType==="bottom")l=-e.positionData;else{var p=e.children[0];if(p.type!=="elem")throw new Error('First child must have type "elem".');if(e.positionType==="shift")l=-p.elem.depth-e.positionData;else if(e.positionType==="firstBaseline")l=-p.elem.depth;else throw new Error("Invalid positionType "+e.positionType+".")}return{children:e.children,depth:l}},y2=function(e,t){for(var{children:A,depth:n}=v2(e),i=0,s=0;s<A.length;s++){var a=A[s];if(a.type==="elem"){var o=a.elem;i=Math.max(i,o.maxFontSize,o.height)}}i+=2;var l=Xe(["pstrut"],[]);l.style.height=O(i);for(var c=[],d=n,g=n,p=n,m=0;m<A.length;m++){var B=A[m];if(B.type==="kern")p+=B.size;else{var y=B.elem,x=B.wrapperClasses||[],C=B.wrapperStyle||{},I=Xe(x,[l,y],void 0,C);I.style.top=O(-i-p-y.depth),B.marginLeft&&(I.style.marginLeft=B.marginLeft),B.marginRight&&(I.style.marginRight=B.marginRight),c.push(I),p+=y.height+y.depth}d=Math.min(d,p),g=Math.max(g,p)}var E=Xe(["vlist"],c);E.style.height=O(g);var F;if(d<0){var M=Xe([],[]),H=Xe(["vlist"],[M]);H.style.height=O(-d);var L=Xe(["vlist-s"],[new st("​")]);F=[Xe(["vlist-r"],[E,L]),Xe(["vlist-r"],[H])]}else F=[Xe(["vlist-r"],[E])];var N=Xe(["vlist-t"],F);return F.length===2&&N.classes.push("vlist-t2"),N.height=g,N.depth=-d,N},b2=(r,e)=>{var t=Xe(["mspace"],[],e),A=we(r,e);return t.style.marginRight=O(A),t},$n=function(e,t,A){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}var i;return t==="textbf"&&A==="textit"?i="BoldItalic":t==="textbf"?i="Bold":t==="textit"?i="Italic":i="Regular",n+"-"+i},dc={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},hc={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},C2=function(e,t){var[A,n,i]=hc[e],s=new rA(A),a=new Ht([s],{width:O(n),height:O(i),style:"width:"+O(n),viewBox:"0 0 "+1e3*n+" "+1e3*i,preserveAspectRatio:"xMinYMin"}),o=lc(["overlay"],[a],t);return o.height=i,o.style.height=O(i),o.style.width=O(n),o},S={fontMap:dc,makeSymbol:ht,mathsym:h2,makeSpan:Xe,makeSvgSpan:lc,makeLineSpan:m2,makeAnchor:w2,makeFragment:cc,wrapFragment:B2,makeVList:y2,makeOrd:p2,makeGlue:b2,staticSvg:C2,svgData:hc,tryCombineChars:f2},Be={number:3,unit:"mu"},vA={number:4,unit:"mu"},Lt={number:5,unit:"mu"},x2={mord:{mop:Be,mbin:vA,mrel:Lt,minner:Be},mop:{mord:Be,mop:Be,mrel:Lt,minner:Be},mbin:{mord:vA,mop:vA,mopen:vA,minner:vA},mrel:{mord:Lt,mop:Lt,mopen:Lt,minner:Lt},mopen:{},mclose:{mop:Be,mbin:vA,mrel:Lt,minner:Be},mpunct:{mord:Be,mop:Be,mrel:Lt,mopen:Be,mclose:Be,mpunct:Be,minner:Be},minner:{mord:Be,mop:Be,mbin:vA,mrel:Lt,mopen:Be,mpunct:Be,minner:Be}},Q2={mord:{mop:Be},mop:{mord:Be,mop:Be},mbin:{},mrel:{},mopen:{},mclose:{mop:Be},mpunct:{},minner:{mop:Be}},uc={},ei={},ti={};function z(r){for(var{type:e,names:t,props:A,handler:n,htmlBuilder:i,mathmlBuilder:s}=r,a={type:e,numArgs:A.numArgs,argTypes:A.argTypes,allowedInArgument:!!A.allowedInArgument,allowedInText:!!A.allowedInText,allowedInMath:A.allowedInMath===void 0?!0:A.allowedInMath,numOptionalArgs:A.numOptionalArgs||0,infix:!!A.infix,primitive:!!A.primitive,handler:n},o=0;o<t.length;++o)uc[t[o]]=a;e&&(i&&(ei[e]=i),s&&(ti[e]=s))}function yA(r){var{type:e,htmlBuilder:t,mathmlBuilder:A}=r;z({type:e,names:[],props:{numArgs:0},handler(){throw new Error("Should never be called.")},htmlBuilder:t,mathmlBuilder:A})}var Ai=function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},Qe=function(e){return e.type==="ordgroup"?e.body:[e]},Dt=S.makeSpan,E2=["leftmost","mbin","mopen","mrel","mop","mpunct"],U2=["rightmost","mrel","mclose","mpunct"],F2={display:J.DISPLAY,text:J.TEXT,script:J.SCRIPT,scriptscript:J.SCRIPTSCRIPT},I2={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Me=function(e,t,A,n){n===void 0&&(n=[null,null]);for(var i=[],s=0;s<e.length;s++){var a=se(e[s],t);if(a instanceof xr){var o=a.children;i.push(...o)}else i.push(a)}if(S.tryCombineChars(i),!A)return i;var l=t;if(e.length===1){var c=e[0];c.type==="sizing"?l=t.havingSize(c.size):c.type==="styling"&&(l=t.havingStyle(F2[c.style]))}var d=Dt([n[0]||"leftmost"],[],t),g=Dt([n[1]||"rightmost"],[],t),p=A==="root";return pc(i,(m,B)=>{var y=B.classes[0],x=m.classes[0];y==="mbin"&&X.contains(U2,x)?B.classes[0]="mord":x==="mbin"&&X.contains(E2,y)&&(m.classes[0]="mord")},{node:d},g,p),pc(i,(m,B)=>{var y=Zs(B),x=Zs(m),C=y&&x?m.hasClass("mtight")?Q2[y][x]:x2[y][x]:null;if(C)return S.makeGlue(C,l)},{node:d},g,p),i},pc=function r(e,t,A,n,i){n&&e.push(n);for(var s=0;s<e.length;s++){var a=e[s],o=gc(a);if(o){r(o.children,t,A,null,i);continue}var l=!a.hasClass("mspace");if(l){var c=t(a,A.node);c&&(A.insertAfter?A.insertAfter(c):(e.unshift(c),s++))}l?A.node=a:i&&a.hasClass("newline")&&(A.node=Dt(["leftmost"])),A.insertAfter=(d=>g=>{e.splice(d+1,0,g),s++})(s)}n&&e.pop()},gc=function(e){return e instanceof xr||e instanceof Vs||e instanceof Qr&&e.hasClass("enclosing")?e:null},S2=function r(e,t){var A=gc(e);if(A){var n=A.children;if(n.length){if(t==="right")return r(n[n.length-1],"right");if(t==="left")return r(n[0],"left")}}return e},Zs=function(e,t){return e?(t&&(e=S2(e,t)),I2[e.classes[0]]||null):null},Er=function(e,t){var A=["nulldelimiter"].concat(e.baseSizingClasses());return Dt(t.concat(A))},se=function(e,t,A){if(!e)return Dt();if(ei[e.type]){var n=ei[e.type](e,t);if(A&&t.size!==A.size){n=Dt(t.sizingClasses(A),[n],t);var i=t.sizeMultiplier/A.sizeMultiplier;n.height*=i,n.depth*=i}return n}else throw new P("Got group of unknown type: '"+e.type+"'")};function ri(r,e){var t=Dt(["base"],r,e),A=Dt(["strut"]);return A.style.height=O(t.height+t.depth),t.depth&&(A.style.verticalAlign=O(-t.depth)),t.children.unshift(A),t}function $s(r,e){var t=null;r.length===1&&r[0].type==="tag"&&(t=r[0].tag,r=r[0].body);var A=Me(r,e,"root"),n;A.length===2&&A[1].hasClass("tag")&&(n=A.pop());for(var i=[],s=[],a=0;a<A.length;a++)if(s.push(A[a]),A[a].hasClass("mbin")||A[a].hasClass("mrel")||A[a].hasClass("allowbreak")){for(var o=!1;a<A.length-1&&A[a+1].hasClass("mspace")&&!A[a+1].hasClass("newline");)a++,s.push(A[a]),A[a].hasClass("nobreak")&&(o=!0);o||(i.push(ri(s,e)),s=[])}else A[a].hasClass("newline")&&(s.pop(),s.length>0&&(i.push(ri(s,e)),s=[]),i.push(A[a]));s.length>0&&i.push(ri(s,e));var l;t?(l=ri(Me(t,e,!0)),l.classes=["tag"],i.push(l)):n&&i.push(n);var c=Dt(["katex-html"],i);if(c.setAttribute("aria-hidden","true"),l){var d=l.children[0];d.style.height=O(c.height+c.depth),c.depth&&(d.style.verticalAlign=O(-c.depth))}return c}function fc(r){return new xr(r)}class at{constructor(e,t,A){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=A||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=AA(this.classes));for(var A=0;A<this.children.length;A++)e.appendChild(this.children[A].toNode());return e}toMarkup(){var e="<"+this.type;for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+'="',e+=X.escape(this.attributes[t]),e+='"');this.classes.length>0&&(e+=' class ="'+X.escape(AA(this.classes))+'"'),e+=">";for(var A=0;A<this.children.length;A++)e+=this.children[A].toMarkup();return e+="</"+this.type+">",e}toText(){return this.children.map(e=>e.toText()).join("")}}class Ur{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return X.escape(this.toText())}toText(){return this.text}}class M2{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",O(this.width)),e}toMarkup(){return this.character?"<mtext>"+this.character+"</mtext>":'<mspace width="'+O(this.width)+'"/>'}toText(){return this.character?this.character:" "}}var D={MathNode:at,TextNode:Ur,SpaceNode:M2,newDocumentFragment:fc},ot=function(e,t,A){return ge[t][e]&&ge[t][e].replace&&e.charCodeAt(0)!==55349&&!(rc.hasOwnProperty(e)&&A&&(A.fontFamily&&A.fontFamily.slice(4,6)==="tt"||A.font&&A.font.slice(4,6)==="tt"))&&(e=ge[t][e].replace),new D.TextNode(e)},ea=function(e){return e.length===1?e[0]:new D.MathNode("mrow",e)},ta=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";var A=t.font;if(!A||A==="mathnormal")return null;var n=e.mode;if(A==="mathit")return"italic";if(A==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(A==="mathbf")return"bold";if(A==="mathbb")return"double-struck";if(A==="mathfrak")return"fraktur";if(A==="mathscr"||A==="mathcal")return"script";if(A==="mathsf")return"sans-serif";if(A==="mathtt")return"monospace";var i=e.text;if(X.contains(["\\imath","\\jmath"],i))return null;ge[n][i]&&ge[n][i].replace&&(i=ge[n][i].replace);var s=S.fontMap[A].fontName;return Ks(i,s,n)?S.fontMap[A].variant:null},Je=function(e,t,A){if(e.length===1){var n=de(e[0],t);return A&&n instanceof at&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var i=[],s,a=0;a<e.length;a++){var o=de(e[a],t);if(o instanceof at&&s instanceof at){if(o.type==="mtext"&&s.type==="mtext"&&o.getAttribute("mathvariant")===s.getAttribute("mathvariant")){s.children.push(...o.children);continue}else if(o.type==="mn"&&s.type==="mn"){s.children.push(...o.children);continue}else if(o.type==="mi"&&o.children.length===1&&s.type==="mn"){var l=o.children[0];if(l instanceof Ur&&l.text==="."){s.children.push(...o.children);continue}}else if(s.type==="mi"&&s.children.length===1){var c=s.children[0];if(c instanceof Ur&&c.text==="̸"&&(o.type==="mo"||o.type==="mi"||o.type==="mn")){var d=o.children[0];d instanceof Ur&&d.text.length>0&&(d.text=d.text.slice(0,1)+"̸"+d.text.slice(1),i.pop())}}}i.push(o),s=o}return i},iA=function(e,t,A){return ea(Je(e,t,A))},de=function(e,t){if(!e)return new D.MathNode("mrow");if(ti[e.type]){var A=ti[e.type](e,t);return A}else throw new P("Got group of unknown type: '"+e.type+"'")};function mc(r,e,t,A,n){var i=Je(r,t),s;i.length===1&&i[0]instanceof at&&X.contains(["mrow","mtable"],i[0].type)?s=i[0]:s=new D.MathNode("mrow",i);var a=new D.MathNode("annotation",[new D.TextNode(e)]);a.setAttribute("encoding","application/x-tex");var o=new D.MathNode("semantics",[s,a]),l=new D.MathNode("math",[o]);l.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),A&&l.setAttribute("display","block");var c=n?"katex":"katex-mathml";return S.makeSpan([c],[l])}var wc=function(e){return new kt({style:e.displayMode?J.DISPLAY:J.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Bc=function(e,t){if(t.displayMode){var A=["katex-display"];t.leqno&&A.push("leqno"),t.fleqn&&A.push("fleqn"),e=S.makeSpan(A,[e])}return e},k2=function(e,t,A){var n=wc(A),i;if(A.output==="mathml")return mc(e,t,n,A.displayMode,!0);if(A.output==="html"){var s=$s(e,n);i=S.makeSpan(["katex"],[s])}else{var a=mc(e,t,n,A.displayMode,!1),o=$s(e,n);i=S.makeSpan(["katex"],[a,o])}return Bc(i,A)},H2=function(e,t,A){var n=wc(A),i=$s(e,n),s=S.makeSpan(["katex"],[i]);return Bc(s,A)},T2={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},L2=function(e){var t=new D.MathNode("mo",[new D.TextNode(T2[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},D2={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},P2=function(e){return e.type==="ordgroup"?e.body.length:1},N2=function(e,t){function A(){var a=4e5,o=e.label.slice(1);if(X.contains(["widehat","widecheck","widetilde","utilde"],o)){var l=e,c=P2(l.base),d,g,p;if(c>5)o==="widehat"||o==="widecheck"?(d=420,a=2364,p=.42,g=o+"4"):(d=312,a=2340,p=.34,g="tilde4");else{var m=[1,1,2,2,3,3][c];o==="widehat"||o==="widecheck"?(a=[0,1062,2364,2364,2364][m],d=[0,239,300,360,420][m],p=[0,.24,.3,.3,.36,.42][m],g=o+m):(a=[0,600,1033,2339,2340][m],d=[0,260,286,306,312][m],p=[0,.26,.286,.3,.306,.34][m],g="tilde"+m)}var B=new rA(g),y=new Ht([B],{width:"100%",height:O(p),viewBox:"0 0 "+a+" "+d,preserveAspectRatio:"none"});return{span:S.makeSvgSpan([],[y],t),minWidth:0,height:p}}else{var x=[],C=D2[o],[I,E,F]=C,M=F/1e3,H=I.length,L,N;if(H===1){var Y=C[3];L=["hide-tail"],N=[Y]}else if(H===2)L=["halfarrow-left","halfarrow-right"],N=["xMinYMin","xMaxYMin"];else if(H===3)L=["brace-left","brace-center","brace-right"],N=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support
2755
+ `+H+" children.");for(var q=0;q<H;q++){var W=new rA(I[q]),re=new Ht([W],{width:"400em",height:O(M),viewBox:"0 0 "+a+" "+F,preserveAspectRatio:N[q]+" slice"}),oe=S.makeSvgSpan([L[q]],[re],t);if(H===1)return{span:oe,minWidth:E,height:M};oe.style.height=O(M),x.push(oe)}return{span:S.makeSpan(["stretchy"],x,t),minWidth:E,height:M}}}var{span:n,minWidth:i,height:s}=A();return n.height=s,n.style.height=O(s),i>0&&(n.style.minWidth=O(i)),n},O2=function(e,t,A,n,i){var s,a=e.height+e.depth+A+n;if(/fbox|color|angl/.test(t)){if(s=S.makeSpan(["stretchy",t],[],i),t==="fbox"){var o=i.color&&i.getColor();o&&(s.style.borderColor=o)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new Ys({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new Ys({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var c=new Ht(l,{width:"100%",height:O(a)});s=S.makeSvgSpan([],[c],i)}return s.height=a,s.style.height=O(a),s},Pt={encloseSpan:O2,mathMLnode:L2,svgSpan:N2};function Ae(r,e){if(!r||r.type!==e)throw new Error("Expected node of type "+e+", but got "+(r?"node of type "+r.type:String(r)));return r}function Aa(r){var e=ni(r);if(!e)throw new Error("Expected node of symbol group type, but got "+(r?"node of type "+r.type:String(r)));return e}function ni(r){return r&&(r.type==="atom"||c2.hasOwnProperty(r.type))?r:null}var ra=(r,e)=>{var t,A,n;r&&r.type==="supsub"?(A=Ae(r.base,"accent"),t=A.base,r.base=t,n=o2(se(r,e)),r.base=A):(A=Ae(r,"accent"),t=A.base);var i=se(t,e.havingCrampedStyle()),s=A.isShifty&&X.isCharacterBox(t),a=0;if(s){var o=X.getBaseElem(t),l=se(o,e.havingCrampedStyle());a=Ac(l).skew}var c=A.label==="\\c",d=c?i.height+i.depth:Math.min(i.height,e.fontMetrics().xHeight),g;if(A.isStretchy)g=Pt.svgSpan(A,e),g=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:g,wrapperClasses:["svg-align"],wrapperStyle:a>0?{width:"calc(100% - "+O(2*a)+")",marginLeft:O(2*a)}:void 0}]},e);else{var p,m;A.label==="\\vec"?(p=S.staticSvg("vec",e),m=S.svgData.vec[1]):(p=S.makeOrd({mode:A.mode,text:A.label},e,"textord"),p=Ac(p),p.italic=0,m=p.width,c&&(d+=p.depth)),g=S.makeSpan(["accent-body"],[p]);var B=A.label==="\\textcircled";B&&(g.classes.push("accent-full"),d=i.height);var y=a;B||(y-=m/2),g.style.left=O(y),A.label==="\\textcircled"&&(g.style.top=".2em"),g=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-d},{type:"elem",elem:g}]},e)}var x=S.makeSpan(["mord","accent"],[g],e);return n?(n.children[0]=x,n.height=Math.max(x.height,n.height),n.classes[0]="mord",n):x},vc=(r,e)=>{var t=r.isStretchy?Pt.mathMLnode(r.label):new D.MathNode("mo",[ot(r.label,r.mode)]),A=new D.MathNode("mover",[de(r.base,e),t]);return A.setAttribute("accent","true"),A},R2=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(r=>"\\"+r).join("|"));z({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(r,e)=>{var t=Ai(e[0]),A=!R2.test(r.funcName),n=!A||r.funcName==="\\widehat"||r.funcName==="\\widetilde"||r.funcName==="\\widecheck";return{type:"accent",mode:r.parser.mode,label:r.funcName,isStretchy:A,isShifty:n,base:t}},htmlBuilder:ra,mathmlBuilder:vc}),z({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(r,e)=>{var t=e[0],A=r.parser.mode;return A==="math"&&(r.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+r.funcName+" works only in text mode"),A="text"),{type:"accent",mode:A,label:r.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:ra,mathmlBuilder:vc}),z({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=e[0];return{type:"accentUnder",mode:t.mode,label:A,base:n}},htmlBuilder:(r,e)=>{var t=se(r.base,e),A=Pt.svgSpan(r,e),n=r.label==="\\utilde"?.12:0,i=S.makeVList({positionType:"top",positionData:t.height,children:[{type:"elem",elem:A,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:t}]},e);return S.makeSpan(["mord","accentunder"],[i],e)},mathmlBuilder:(r,e)=>{var t=Pt.mathMLnode(r.label),A=new D.MathNode("munder",[de(r.base,e),t]);return A.setAttribute("accentunder","true"),A}});var ii=r=>{var e=new D.MathNode("mpadded",r?[r]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};z({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:A,funcName:n}=r;return{type:"xArrow",mode:A.mode,label:n,body:e[0],below:t[0]}},htmlBuilder(r,e){var t=e.style,A=e.havingStyle(t.sup()),n=S.wrapFragment(se(r.body,A,e),e),i=r.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(i+"-arrow-pad");var s;r.below&&(A=e.havingStyle(t.sub()),s=S.wrapFragment(se(r.below,A,e),e),s.classes.push(i+"-arrow-pad"));var a=Pt.svgSpan(r,e),o=-e.fontMetrics().axisHeight+.5*a.height,l=-e.fontMetrics().axisHeight-.5*a.height-.111;(n.depth>.25||r.label==="\\xleftequilibrium")&&(l-=n.depth);var c;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*a.height+.111;c=S.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:l},{type:"elem",elem:a,shift:o},{type:"elem",elem:s,shift:d}]},e)}else c=S.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:l},{type:"elem",elem:a,shift:o}]},e);return c.children[0].children[0].children[1].classes.push("svg-align"),S.makeSpan(["mrel","x-arrow"],[c],e)},mathmlBuilder(r,e){var t=Pt.mathMLnode(r.label);t.setAttribute("minsize",r.label.charAt(0)==="x"?"1.75em":"3.0em");var A;if(r.body){var n=ii(de(r.body,e));if(r.below){var i=ii(de(r.below,e));A=new D.MathNode("munderover",[t,i,n])}else A=new D.MathNode("mover",[t,n])}else if(r.below){var s=ii(de(r.below,e));A=new D.MathNode("munder",[t,s])}else A=ii(),A=new D.MathNode("mover",[t,A]);return A}});var K2=S.makeSpan;function yc(r,e){var t=Me(r.body,e,!0);return K2([r.mclass],t,e)}function bc(r,e){var t,A=Je(r.body,e);return r.mclass==="minner"?t=new D.MathNode("mpadded",A):r.mclass==="mord"?r.isCharacterBox?(t=A[0],t.type="mi"):t=new D.MathNode("mi",A):(r.isCharacterBox?(t=A[0],t.type="mo"):t=new D.MathNode("mo",A),r.mclass==="mbin"?(t.attributes.lspace="0.22em",t.attributes.rspace="0.22em"):r.mclass==="mpunct"?(t.attributes.lspace="0em",t.attributes.rspace="0.17em"):r.mclass==="mopen"||r.mclass==="mclose"?(t.attributes.lspace="0em",t.attributes.rspace="0em"):r.mclass==="minner"&&(t.attributes.lspace="0.0556em",t.attributes.width="+0.1111em")),t}z({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(r,e){var{parser:t,funcName:A}=r,n=e[0];return{type:"mclass",mode:t.mode,mclass:"m"+A.slice(5),body:Qe(n),isCharacterBox:X.isCharacterBox(n)}},htmlBuilder:yc,mathmlBuilder:bc});var si=r=>{var e=r.type==="ordgroup"&&r.body.length?r.body[0]:r;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};z({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(r,e){var{parser:t}=r;return{type:"mclass",mode:t.mode,mclass:si(e[0]),body:Qe(e[1]),isCharacterBox:X.isCharacterBox(e[1])}}}),z({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(r,e){var{parser:t,funcName:A}=r,n=e[1],i=e[0],s;A!=="\\stackrel"?s=si(n):s="mrel";var a={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:A!=="\\stackrel",body:Qe(n)},o={type:"supsub",mode:i.mode,base:a,sup:A==="\\underset"?null:i,sub:A==="\\underset"?i:null};return{type:"mclass",mode:t.mode,mclass:s,body:[o],isCharacterBox:X.isCharacterBox(o)}},htmlBuilder:yc,mathmlBuilder:bc}),z({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"pmb",mode:t.mode,mclass:si(e[0]),body:Qe(e[0])}},htmlBuilder(r,e){var t=Me(r.body,e,!0),A=S.makeSpan([r.mclass],t,e);return A.style.textShadow="0.02em 0.01em 0.04px",A},mathmlBuilder(r,e){var t=Je(r.body,e),A=new D.MathNode("mstyle",t);return A.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),A}});var z2={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Cc=()=>({type:"styling",body:[],mode:"math",style:"display"}),xc=r=>r.type==="textord"&&r.text==="@",G2=(r,e)=>(r.type==="mathord"||r.type==="atom")&&r.text===e;function V2(r,e,t){var A=z2[r];switch(A){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return t.callFunction(A,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var n=t.callFunction("\\\\cdleft",[e[0]],[]),i={type:"atom",text:A,mode:"math",family:"rel"},s=t.callFunction("\\Big",[i],[]),a=t.callFunction("\\\\cdright",[e[1]],[]),o={type:"ordgroup",mode:"math",body:[n,s,a]};return t.callFunction("\\\\cdparent",[o],[])}case"\\\\cdlongequal":return t.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var l={type:"textord",text:"\\Vert",mode:"math"};return t.callFunction("\\Big",[l],[])}default:return{type:"textord",text:" ",mode:"math"}}}function Y2(r){var e=[];for(r.gullet.beginGroup(),r.gullet.macros.set("\\cr","\\\\\\relax"),r.gullet.beginGroup();;){e.push(r.parseExpression(!1,"\\\\")),r.gullet.endGroup(),r.gullet.beginGroup();var t=r.fetch().text;if(t==="&"||t==="\\\\")r.consume();else if(t==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new P("Expected \\\\ or \\cr or \\end",r.nextToken)}for(var A=[],n=[A],i=0;i<e.length;i++){for(var s=e[i],a=Cc(),o=0;o<s.length;o++)if(!xc(s[o]))a.body.push(s[o]);else{A.push(a),o+=1;var l=Aa(s[o]).text,c=new Array(2);if(c[0]={type:"ordgroup",mode:"math",body:[]},c[1]={type:"ordgroup",mode:"math",body:[]},!("=|.".indexOf(l)>-1))if("<>AV".indexOf(l)>-1)for(var d=0;d<2;d++){for(var g=!0,p=o+1;p<s.length;p++){if(G2(s[p],l)){g=!1,o=p;break}if(xc(s[p]))throw new P("Missing a "+l+" character to complete a CD arrow.",s[p]);c[d].body.push(s[p])}if(g)throw new P("Missing a "+l+" character to complete a CD arrow.",s[o])}else throw new P('Expected one of "<>AV=|." after @',s[o]);var m=V2(l,c,r),B={type:"styling",body:[m],mode:"math",style:"display"};A.push(B),a=Cc()}i%2===0?A.push(a):A.shift(),A=[],n.push(A)}r.gullet.endGroup(),r.gullet.endGroup();var y=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:y,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}z({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:A}=r;return{type:"cdlabel",mode:t.mode,side:A.slice(4),label:e[0]}},htmlBuilder(r,e){var t=e.havingStyle(e.style.sup()),A=S.wrapFragment(se(r.label,t,e),e);return A.classes.push("cd-label-"+r.side),A.style.bottom=O(.8-A.depth),A.height=0,A.depth=0,A},mathmlBuilder(r,e){var t=new D.MathNode("mrow",[de(r.label,e)]);return t=new D.MathNode("mpadded",[t]),t.setAttribute("width","0"),r.side==="left"&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),t=new D.MathNode("mstyle",[t]),t.setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}}),z({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(r,e){var{parser:t}=r;return{type:"cdlabelparent",mode:t.mode,fragment:e[0]}},htmlBuilder(r,e){var t=S.wrapFragment(se(r.fragment,e),e);return t.classes.push("cd-vert-arrow"),t},mathmlBuilder(r,e){return new D.MathNode("mrow",[de(r.fragment,e)])}}),z({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(r,e){for(var{parser:t}=r,A=Ae(e[0],"ordgroup"),n=A.body,i="",s=0;s<n.length;s++){var a=Ae(n[s],"textord");i+=a.text}var o=parseInt(i),l;if(isNaN(o))throw new P("\\@char has non-numeric argument "+i);if(o<0||o>=1114111)throw new P("\\@char with invalid code point "+i);return o<=65535?l=String.fromCharCode(o):(o-=65536,l=String.fromCharCode((o>>10)+55296,(o&1023)+56320)),{type:"textord",mode:t.mode,text:l}}});var Qc=(r,e)=>{var t=Me(r.body,e.withColor(r.color),!1);return S.makeFragment(t)},Ec=(r,e)=>{var t=Je(r.body,e.withColor(r.color)),A=new D.MathNode("mstyle",t);return A.setAttribute("mathcolor",r.color),A};z({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(r,e){var{parser:t}=r,A=Ae(e[0],"color-token").color,n=e[1];return{type:"color",mode:t.mode,color:A,body:Qe(n)}},htmlBuilder:Qc,mathmlBuilder:Ec}),z({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(r,e){var{parser:t,breakOnTokenText:A}=r,n=Ae(e[0],"color-token").color;t.gullet.macros.set("\\current@color",n);var i=t.parseExpression(!0,A);return{type:"color",mode:t.mode,color:n,body:i}},htmlBuilder:Qc,mathmlBuilder:Ec}),z({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(r,e,t){var{parser:A}=r,n=A.gullet.future().text==="["?A.parseSizeGroup(!0):null,i=!A.settings.displayMode||!A.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:A.mode,newLine:i,size:n&&Ae(n,"size").value}},htmlBuilder(r,e){var t=S.makeSpan(["mspace"],[],e);return r.newLine&&(t.classes.push("newline"),r.size&&(t.style.marginTop=O(we(r.size,e)))),t},mathmlBuilder(r,e){var t=new D.MathNode("mspace");return r.newLine&&(t.setAttribute("linebreak","newline"),r.size&&t.setAttribute("height",O(we(r.size,e)))),t}});var na={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Uc=r=>{var e=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new P("Expected a control sequence",r);return e},W2=r=>{var e=r.gullet.popToken();return e.text==="="&&(e=r.gullet.popToken(),e.text===" "&&(e=r.gullet.popToken())),e},Fc=(r,e,t,A)=>{var n=r.gullet.macros.get(t.text);n==null&&(t.noexpand=!0,n={tokens:[t],numArgs:0,unexpandable:!r.gullet.isExpandable(t.text)}),r.gullet.macros.set(e,n,A)};z({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e,funcName:t}=r;e.consumeSpaces();var A=e.fetch();if(na[A.text])return(t==="\\global"||t==="\\\\globallong")&&(A.text=na[A.text]),Ae(e.parseFunction(),"internal");throw new P("Invalid token after macro prefix",A)}}),z({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,A=e.gullet.popToken(),n=A.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new P("Expected a control sequence",A);for(var i=0,s,a=[[]];e.gullet.future().text!=="{";)if(A=e.gullet.popToken(),A.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),a[i].push("{");break}if(A=e.gullet.popToken(),!/^[1-9]$/.test(A.text))throw new P('Invalid argument number "'+A.text+'"');if(parseInt(A.text)!==i+1)throw new P('Argument number "'+A.text+'" out of order');i++,a.push([])}else{if(A.text==="EOF")throw new P("Expected a macro definition");a[i].push(A.text)}var{tokens:o}=e.gullet.consumeArg();return s&&o.unshift(s),(t==="\\edef"||t==="\\xdef")&&(o=e.gullet.expandTokens(o),o.reverse()),e.gullet.macros.set(n,{tokens:o,numArgs:i,delimiters:a},t===na[t]),{type:"internal",mode:e.mode}}}),z({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,A=Uc(e.gullet.popToken());e.gullet.consumeSpaces();var n=W2(e);return Fc(e,A,n,t==="\\\\globallet"),{type:"internal",mode:e.mode}}}),z({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,A=Uc(e.gullet.popToken()),n=e.gullet.popToken(),i=e.gullet.popToken();return Fc(e,A,i,t==="\\\\globalfuture"),e.gullet.pushToken(i),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}});var Fr=function(e,t,A){var n=ge.math[e]&&ge.math[e].replace,i=Ks(n||e,t,A);if(!i)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return i},ia=function(e,t,A,n){var i=A.havingBaseStyle(t),s=S.makeSpan(n.concat(i.sizingClasses(A)),[e],A),a=i.sizeMultiplier/A.sizeMultiplier;return s.height*=a,s.depth*=a,s.maxFontSize=i.sizeMultiplier,s},Ic=function(e,t,A){var n=t.havingBaseStyle(A),i=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=O(i),e.height-=i,e.depth+=i},X2=function(e,t,A,n,i,s){var a=S.makeSymbol(e,"Main-Regular",i,n),o=ia(a,t,n,s);return A&&Ic(o,n,t),o},J2=function(e,t,A,n){return S.makeSymbol(e,"Size"+t+"-Regular",A,n)},Sc=function(e,t,A,n,i,s){var a=J2(e,t,i,n),o=ia(S.makeSpan(["delimsizing","size"+t],[a],n),J.TEXT,n,s);return A&&Ic(o,n,J.TEXT),o},sa=function(e,t,A){var n;t==="Size1-Regular"?n="delim-size1":n="delim-size4";var i=S.makeSpan(["delimsizinginner",n],[S.makeSpan([],[S.makeSymbol(e,t,A)])]);return{type:"elem",elem:i}},aa=function(e,t,A){var n=bt["Size4-Regular"][e.charCodeAt(0)]?bt["Size4-Regular"][e.charCodeAt(0)][4]:bt["Size1-Regular"][e.charCodeAt(0)][4],i=new rA("inner",e2(e,Math.round(1e3*t))),s=new Ht([i],{width:O(n),height:O(t),style:"width:"+O(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),a=S.makeSvgSpan([],[s],A);return a.height=t,a.style.height=O(t),a.style.width=O(n),{type:"elem",elem:a}},oa=.008,ai={type:"kern",size:-1*oa},_2=["|","\\lvert","\\rvert","\\vert"],q2=["\\|","\\lVert","\\rVert","\\Vert"],Mc=function(e,t,A,n,i,s){var a,o,l,c,d="",g=0;a=l=c=e,o=null;var p="Size1-Regular";e==="\\uparrow"?l=c="⏐":e==="\\Uparrow"?l=c="‖":e==="\\downarrow"?a=l="⏐":e==="\\Downarrow"?a=l="‖":e==="\\updownarrow"?(a="\\uparrow",l="⏐",c="\\downarrow"):e==="\\Updownarrow"?(a="\\Uparrow",l="‖",c="\\Downarrow"):X.contains(_2,e)?(l="∣",d="vert",g=333):X.contains(q2,e)?(l="∥",d="doublevert",g=556):e==="["||e==="\\lbrack"?(a="⎡",l="⎢",c="⎣",p="Size4-Regular",d="lbrack",g=667):e==="]"||e==="\\rbrack"?(a="⎤",l="⎥",c="⎦",p="Size4-Regular",d="rbrack",g=667):e==="\\lfloor"||e==="⌊"?(l=a="⎢",c="⎣",p="Size4-Regular",d="lfloor",g=667):e==="\\lceil"||e==="⌈"?(a="⎡",l=c="⎢",p="Size4-Regular",d="lceil",g=667):e==="\\rfloor"||e==="⌋"?(l=a="⎥",c="⎦",p="Size4-Regular",d="rfloor",g=667):e==="\\rceil"||e==="⌉"?(a="⎤",l=c="⎥",p="Size4-Regular",d="rceil",g=667):e==="("||e==="\\lparen"?(a="⎛",l="⎜",c="⎝",p="Size4-Regular",d="lparen",g=875):e===")"||e==="\\rparen"?(a="⎞",l="⎟",c="⎠",p="Size4-Regular",d="rparen",g=875):e==="\\{"||e==="\\lbrace"?(a="⎧",o="⎨",c="⎩",l="⎪",p="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(a="⎫",o="⎬",c="⎭",l="⎪",p="Size4-Regular"):e==="\\lgroup"||e==="⟮"?(a="⎧",c="⎩",l="⎪",p="Size4-Regular"):e==="\\rgroup"||e==="⟯"?(a="⎫",c="⎭",l="⎪",p="Size4-Regular"):e==="\\lmoustache"||e==="⎰"?(a="⎧",c="⎭",l="⎪",p="Size4-Regular"):(e==="\\rmoustache"||e==="⎱")&&(a="⎫",c="⎩",l="⎪",p="Size4-Regular");var m=Fr(a,p,i),B=m.height+m.depth,y=Fr(l,p,i),x=y.height+y.depth,C=Fr(c,p,i),I=C.height+C.depth,E=0,F=1;if(o!==null){var M=Fr(o,p,i);E=M.height+M.depth,F=2}var H=B+I+E,L=Math.max(0,Math.ceil((t-H)/(F*x))),N=H+L*F*x,Y=n.fontMetrics().axisHeight;A&&(Y*=n.sizeMultiplier);var q=N/2-Y,W=[];if(d.length>0){var re=N-B-I,oe=Math.round(N*1e3),j=t2(d,Math.round(re*1e3)),Z=new rA(d,j),ce=(g/1e3).toFixed(3)+"em",ve=(oe/1e3).toFixed(3)+"em",Se=new Ht([Z],{width:ce,height:ve,viewBox:"0 0 "+g+" "+oe}),Pe=S.makeSvgSpan([],[Se],n);Pe.height=oe/1e3,Pe.style.width=ce,Pe.style.height=ve,W.push({type:"elem",elem:Pe})}else{if(W.push(sa(c,p,i)),W.push(ai),o===null){var $e=N-B-I+2*oa;W.push(aa(l,$e,n))}else{var Ge=(N-B-I-E)/2+2*oa;W.push(aa(l,Ge,n)),W.push(ai),W.push(sa(o,p,i)),W.push(ai),W.push(aa(l,Ge,n))}W.push(ai),W.push(sa(a,p,i))}var Rt=n.havingBaseStyle(J.TEXT),_A=S.makeVList({positionType:"bottom",positionData:q,children:W},Rt);return ia(S.makeSpan(["delimsizing","mult"],[_A],Rt),J.TEXT,n,s)},la=80,ca=.08,da=function(e,t,A,n,i){var s=$w(e,n,A),a=new rA(e,s),o=new Ht([a],{width:"400em",height:O(t),viewBox:"0 0 400000 "+A,preserveAspectRatio:"xMinYMin slice"});return S.makeSvgSpan(["hide-tail"],[o],i)},j2=function(e,t){var A=t.havingBaseSizing(),n=Lc("\\surd",e*A.sizeMultiplier,Tc,A),i=A.sizeMultiplier,s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),a,o=0,l=0,c=0,d;return n.type==="small"?(c=1e3+1e3*s+la,e<1?i=1:e<1.4&&(i=.7),o=(1+s+ca)/i,l=(1+s)/i,a=da("sqrtMain",o,c,s,t),a.style.minWidth="0.853em",d=.833/i):n.type==="large"?(c=(1e3+la)*Ir[n.size],l=(Ir[n.size]+s)/i,o=(Ir[n.size]+s+ca)/i,a=da("sqrtSize"+n.size,o,c,s,t),a.style.minWidth="1.02em",d=1/i):(o=e+s+ca,l=e+s,c=Math.floor(1e3*e+s)+la,a=da("sqrtTall",o,c,s,t),a.style.minWidth="0.742em",d=1.056),a.height=l,a.style.height=O(o),{span:a,advanceWidth:d,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*i}},kc=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],Z2=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],Hc=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Ir=[0,1.2,1.8,2.4,3],$2=function(e,t,A,n,i){if(e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle"),X.contains(kc,e)||X.contains(Hc,e))return Sc(e,t,!1,A,n,i);if(X.contains(Z2,e))return Mc(e,Ir[t],!1,A,n,i);throw new P("Illegal delimiter: '"+e+"'")},eB=[{type:"small",style:J.SCRIPTSCRIPT},{type:"small",style:J.SCRIPT},{type:"small",style:J.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],tB=[{type:"small",style:J.SCRIPTSCRIPT},{type:"small",style:J.SCRIPT},{type:"small",style:J.TEXT},{type:"stack"}],Tc=[{type:"small",style:J.SCRIPTSCRIPT},{type:"small",style:J.SCRIPT},{type:"small",style:J.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],AB=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Lc=function(e,t,A,n){for(var i=Math.min(2,3-n.style.size),s=i;s<A.length&&A[s].type!=="stack";s++){var a=Fr(e,AB(A[s]),"math"),o=a.height+a.depth;if(A[s].type==="small"){var l=n.havingBaseStyle(A[s].style);o*=l.sizeMultiplier}if(o>t)return A[s]}return A[A.length-1]},Dc=function(e,t,A,n,i,s){e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle");var a;X.contains(Hc,e)?a=eB:X.contains(kc,e)?a=Tc:a=tB;var o=Lc(e,t,a,n);return o.type==="small"?X2(e,o.style,A,n,i,s):o.type==="large"?Sc(e,o.size,A,n,i,s):Mc(e,t,A,n,i,s)},rB=function(e,t,A,n,i,s){var a=n.fontMetrics().axisHeight*n.sizeMultiplier,o=901,l=5/n.fontMetrics().ptPerEm,c=Math.max(t-a,A+a),d=Math.max(c/500*o,2*c-l);return Dc(e,d,!0,n,i,s)},Nt={sqrtImage:j2,sizedDelim:$2,sizeToMaxHeight:Ir,customSizedDelim:Dc,leftRightDelim:rB},Pc={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},nB=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function oi(r,e){var t=ni(r);if(t&&X.contains(nB,t.text))return t;throw t?new P("Invalid delimiter '"+t.text+"' after '"+e.funcName+"'",r):new P("Invalid delimiter type '"+r.type+"'",r)}z({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(r,e)=>{var t=oi(e[0],r);return{type:"delimsizing",mode:r.parser.mode,size:Pc[r.funcName].size,mclass:Pc[r.funcName].mclass,delim:t.text}},htmlBuilder:(r,e)=>r.delim==="."?S.makeSpan([r.mclass]):Nt.sizedDelim(r.delim,r.size,e,r.mode,[r.mclass]),mathmlBuilder:r=>{var e=[];r.delim!=="."&&e.push(ot(r.delim,r.mode));var t=new D.MathNode("mo",e);r.mclass==="mopen"||r.mclass==="mclose"?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true");var A=O(Nt.sizeToMaxHeight[r.size]);return t.setAttribute("minsize",A),t.setAttribute("maxsize",A),t}});function Nc(r){if(!r.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}z({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=r.parser.gullet.macros.get("\\current@color");if(t&&typeof t!="string")throw new P("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:r.parser.mode,delim:oi(e[0],r).text,color:t}}}),z({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=oi(e[0],r),A=r.parser;++A.leftrightDepth;var n=A.parseExpression(!1);--A.leftrightDepth,A.expect("\\right",!1);var i=Ae(A.parseFunction(),"leftright-right");return{type:"leftright",mode:A.mode,body:n,left:t.text,right:i.delim,rightColor:i.color}},htmlBuilder:(r,e)=>{Nc(r);for(var t=Me(r.body,e,!0,["mopen","mclose"]),A=0,n=0,i=!1,s=0;s<t.length;s++)t[s].isMiddle?i=!0:(A=Math.max(t[s].height,A),n=Math.max(t[s].depth,n));A*=e.sizeMultiplier,n*=e.sizeMultiplier;var a;if(r.left==="."?a=Er(e,["mopen"]):a=Nt.leftRightDelim(r.left,A,n,e,r.mode,["mopen"]),t.unshift(a),i)for(var o=1;o<t.length;o++){var l=t[o],c=l.isMiddle;c&&(t[o]=Nt.leftRightDelim(c.delim,A,n,c.options,r.mode,[]))}var d;if(r.right===".")d=Er(e,["mclose"]);else{var g=r.rightColor?e.withColor(r.rightColor):e;d=Nt.leftRightDelim(r.right,A,n,g,r.mode,["mclose"])}return t.push(d),S.makeSpan(["minner"],t,e)},mathmlBuilder:(r,e)=>{Nc(r);var t=Je(r.body,e);if(r.left!=="."){var A=new D.MathNode("mo",[ot(r.left,r.mode)]);A.setAttribute("fence","true"),t.unshift(A)}if(r.right!=="."){var n=new D.MathNode("mo",[ot(r.right,r.mode)]);n.setAttribute("fence","true"),r.rightColor&&n.setAttribute("mathcolor",r.rightColor),t.push(n)}return ea(t)}}),z({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=oi(e[0],r);if(!r.parser.leftrightDepth)throw new P("\\middle without preceding \\left",t);return{type:"middle",mode:r.parser.mode,delim:t.text}},htmlBuilder:(r,e)=>{var t;if(r.delim===".")t=Er(e,[]);else{t=Nt.sizedDelim(r.delim,1,e,r.mode,[]);var A={delim:r.delim,options:e};t.isMiddle=A}return t},mathmlBuilder:(r,e)=>{var t=r.delim==="\\vert"||r.delim==="|"?ot("|","text"):ot(r.delim,r.mode),A=new D.MathNode("mo",[t]);return A.setAttribute("fence","true"),A.setAttribute("lspace","0.05em"),A.setAttribute("rspace","0.05em"),A}});var ha=(r,e)=>{var t=S.wrapFragment(se(r.body,e),e),A=r.label.slice(1),n=e.sizeMultiplier,i,s=0,a=X.isCharacterBox(r.body);if(A==="sout")i=S.makeSpan(["stretchy","sout"]),i.height=e.fontMetrics().defaultRuleThickness/n,s=-.5*e.fontMetrics().xHeight;else if(A==="phase"){var o=we({number:.6,unit:"pt"},e),l=we({number:.35,unit:"ex"},e),c=e.havingBaseSizing();n=n/c.sizeMultiplier;var d=t.height+t.depth+o+l;t.style.paddingLeft=O(d/2+o);var g=Math.floor(1e3*d*n),p=jw(g),m=new Ht([new rA("phase",p)],{width:"400em",height:O(g/1e3),viewBox:"0 0 400000 "+g,preserveAspectRatio:"xMinYMin slice"});i=S.makeSvgSpan(["hide-tail"],[m],e),i.style.height=O(d),s=t.depth+o+l}else{/cancel/.test(A)?a||t.classes.push("cancel-pad"):A==="angl"?t.classes.push("anglpad"):t.classes.push("boxpad");var B=0,y=0,x=0;/box/.test(A)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),B=e.fontMetrics().fboxsep+(A==="colorbox"?0:x),y=B):A==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),B=4*x,y=Math.max(0,.25-t.depth)):(B=a?.2:0,y=B),i=Pt.encloseSpan(t,A,B,y,e),/fbox|boxed|fcolorbox/.test(A)?(i.style.borderStyle="solid",i.style.borderWidth=O(x)):A==="angl"&&x!==.049&&(i.style.borderTopWidth=O(x),i.style.borderRightWidth=O(x)),s=t.depth+y,r.backgroundColor&&(i.style.backgroundColor=r.backgroundColor,r.borderColor&&(i.style.borderColor=r.borderColor))}var C;if(r.backgroundColor)C=S.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:s},{type:"elem",elem:t,shift:0}]},e);else{var I=/cancel|phase/.test(A)?["svg-align"]:[];C=S.makeVList({positionType:"individualShift",children:[{type:"elem",elem:t,shift:0},{type:"elem",elem:i,shift:s,wrapperClasses:I}]},e)}return/cancel/.test(A)&&(C.height=t.height,C.depth=t.depth),/cancel/.test(A)&&!a?S.makeSpan(["mord","cancel-lap"],[C],e):S.makeSpan(["mord"],[C],e)},ua=(r,e)=>{var t=0,A=new D.MathNode(r.label.indexOf("colorbox")>-1?"mpadded":"menclose",[de(r.body,e)]);switch(r.label){case"\\cancel":A.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":A.setAttribute("notation","downdiagonalstrike");break;case"\\phase":A.setAttribute("notation","phasorangle");break;case"\\sout":A.setAttribute("notation","horizontalstrike");break;case"\\fbox":A.setAttribute("notation","box");break;case"\\angl":A.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(t=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,A.setAttribute("width","+"+2*t+"pt"),A.setAttribute("height","+"+2*t+"pt"),A.setAttribute("lspace",t+"pt"),A.setAttribute("voffset",t+"pt"),r.label==="\\fcolorbox"){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);A.setAttribute("style","border: "+n+"em solid "+String(r.borderColor))}break;case"\\xcancel":A.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return r.backgroundColor&&A.setAttribute("mathbackground",r.backgroundColor),A};z({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(r,e,t){var{parser:A,funcName:n}=r,i=Ae(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:A.mode,label:n,backgroundColor:i,body:s}},htmlBuilder:ha,mathmlBuilder:ua}),z({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(r,e,t){var{parser:A,funcName:n}=r,i=Ae(e[0],"color-token").color,s=Ae(e[1],"color-token").color,a=e[2];return{type:"enclose",mode:A.mode,label:n,backgroundColor:s,borderColor:i,body:a}},htmlBuilder:ha,mathmlBuilder:ua}),z({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\fbox",body:e[0]}}}),z({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:A}=r,n=e[0];return{type:"enclose",mode:t.mode,label:A,body:n}},htmlBuilder:ha,mathmlBuilder:ua}),z({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\angl",body:e[0]}}});var Oc={};function Ct(r){for(var{type:e,names:t,props:A,handler:n,htmlBuilder:i,mathmlBuilder:s}=r,a={type:e,numArgs:A.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},o=0;o<t.length;++o)Oc[t[o]]=a;i&&(ei[e]=i),s&&(ti[e]=s)}var Rc={};function w(r,e){Rc[r]=e}function Kc(r){var e=[];r.consumeSpaces();var t=r.fetch().text;for(t==="\\relax"&&(r.consume(),r.consumeSpaces(),t=r.fetch().text);t==="\\hline"||t==="\\hdashline";)r.consume(),e.push(t==="\\hdashline"),r.consumeSpaces(),t=r.fetch().text;return e}var li=r=>{var e=r.parser.settings;if(!e.displayMode)throw new P("{"+r.envName+"} can be used only in display mode.")};function pa(r){if(r.indexOf("ed")===-1)return r.indexOf("*")===-1}function sA(r,e,t){var{hskipBeforeAndAfter:A,addJot:n,cols:i,arraystretch:s,colSeparationType:a,autoTag:o,singleRow:l,emptySingleRow:c,maxNumCols:d,leqno:g}=e;if(r.gullet.beginGroup(),l||r.gullet.macros.set("\\cr","\\\\\\relax"),!s){var p=r.gullet.expandMacroAsText("\\arraystretch");if(p==null)s=1;else if(s=parseFloat(p),!s||s<0)throw new P("Invalid \\arraystretch: "+p)}r.gullet.beginGroup();var m=[],B=[m],y=[],x=[],C=o!=null?[]:void 0;function I(){o&&r.gullet.macros.set("\\@eqnsw","1",!0)}function E(){C&&(r.gullet.macros.get("\\df@tag")?(C.push(r.subparse([new nt("\\df@tag")])),r.gullet.macros.set("\\df@tag",void 0,!0)):C.push(!!o&&r.gullet.macros.get("\\@eqnsw")==="1"))}for(I(),x.push(Kc(r));;){var F=r.parseExpression(!1,l?"\\end":"\\\\");r.gullet.endGroup(),r.gullet.beginGroup(),F={type:"ordgroup",mode:r.mode,body:F},t&&(F={type:"styling",mode:r.mode,style:t,body:[F]}),m.push(F);var M=r.fetch().text;if(M==="&"){if(d&&m.length===d){if(l||a)throw new P("Too many tab characters: &",r.nextToken);r.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}r.consume()}else if(M==="\\end"){E(),m.length===1&&F.type==="styling"&&F.body[0].body.length===0&&(B.length>1||!c)&&B.pop(),x.length<B.length+1&&x.push([]);break}else if(M==="\\\\"){r.consume();var H=void 0;r.gullet.future().text!==" "&&(H=r.parseSizeGroup(!0)),y.push(H?H.value:null),E(),x.push(Kc(r)),m=[],B.push(m),I()}else throw new P("Expected & or \\\\ or \\cr or \\end",r.nextToken)}return r.gullet.endGroup(),r.gullet.endGroup(),{type:"array",mode:r.mode,addJot:n,arraystretch:s,body:B,cols:i,rowGaps:y,hskipBeforeAndAfter:A,hLinesBeforeRow:x,colSeparationType:a,tags:C,leqno:g}}function ga(r){return r.slice(0,1)==="d"?"display":"text"}var xt=function(e,t){var A,n,i=e.body.length,s=e.hLinesBeforeRow,a=0,o=new Array(i),l=[],c=Math.max(t.fontMetrics().arrayRuleWidth,t.minRuleThickness),d=1/t.fontMetrics().ptPerEm,g=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var p=t.havingStyle(J.SCRIPT).sizeMultiplier;g=.2778*(p/t.sizeMultiplier)}var m=e.colSeparationType==="CD"?we({number:3,unit:"ex"},t):12*d,B=3*d,y=e.arraystretch*m,x=.7*y,C=.3*y,I=0;function E(vi){for(var yi=0;yi<vi.length;++yi)yi>0&&(I+=.25),l.push({pos:I,isDashed:vi[yi]})}for(E(s[0]),A=0;A<e.body.length;++A){var F=e.body[A],M=x,H=C;a<F.length&&(a=F.length);var L=new Array(F.length);for(n=0;n<F.length;++n){var N=se(F[n],t);H<N.depth&&(H=N.depth),M<N.height&&(M=N.height),L[n]=N}var Y=e.rowGaps[A],q=0;Y&&(q=we(Y,t),q>0&&(q+=C,H<q&&(H=q),q=0)),e.addJot&&(H+=B),L.height=M,L.depth=H,I+=M,L.pos=I,I+=H+q,o[A]=L,E(s[A+1])}var W=I/2+t.fontMetrics().axisHeight,re=e.cols||[],oe=[],j,Z,ce=[];if(e.tags&&e.tags.some(vi=>vi))for(A=0;A<i;++A){var ve=o[A],Se=ve.pos-W,Pe=e.tags[A],$e=void 0;Pe===!0?$e=S.makeSpan(["eqn-num"],[],t):Pe===!1?$e=S.makeSpan([],[],t):$e=S.makeSpan([],Me(Pe,t,!0),t),$e.depth=ve.depth,$e.height=ve.height,ce.push({type:"elem",elem:$e,shift:Se})}for(n=0,Z=0;n<a||Z<re.length;++n,++Z){for(var Ge=re[Z]||{},Rt=!0;Ge.type==="separator";){if(Rt||(j=S.makeSpan(["arraycolsep"],[]),j.style.width=O(t.fontMetrics().doubleRuleSep),oe.push(j)),Ge.separator==="|"||Ge.separator===":"){var _A=Ge.separator==="|"?"solid":"dashed",CA=S.makeSpan(["vertical-separator"],[],t);CA.style.height=O(I),CA.style.borderRightWidth=O(c),CA.style.borderRightStyle=_A,CA.style.margin="0 "+O(-c/2);var Kt=I-W;Kt&&(CA.style.verticalAlign=O(-Kt)),oe.push(CA)}else throw new P("Invalid separator type: "+Ge.separator);Z++,Ge=re[Z]||{},Rt=!1}if(!(n>=a)){var ut=void 0;(n>0||e.hskipBeforeAndAfter)&&(ut=X.deflt(Ge.pregap,g),ut!==0&&(j=S.makeSpan(["arraycolsep"],[]),j.style.width=O(ut),oe.push(j)));var pt=[];for(A=0;A<i;++A){var He=o[A],aA=He[n];if(aA){var Ha=He.pos-W;aA.depth=He.depth,aA.height=He.height,pt.push({type:"elem",elem:aA,shift:Ha})}}pt=S.makeVList({positionType:"individualShift",children:pt},t),pt=S.makeSpan(["col-align-"+(Ge.align||"c")],[pt]),oe.push(pt),(n<a-1||e.hskipBeforeAndAfter)&&(ut=X.deflt(Ge.postgap,g),ut!==0&&(j=S.makeSpan(["arraycolsep"],[]),j.style.width=O(ut),oe.push(j)))}}if(o=S.makeSpan(["mtable"],oe),l.length>0){for(var Ta=S.makeLineSpan("hline",t,c),Lv=S.makeLineSpan("hdashline",t,c),La=[{type:"elem",elem:o,shift:0}];l.length>0;){var Gd=l.pop(),Vd=Gd.pos-W;Gd.isDashed?La.push({type:"elem",elem:Lv,shift:Vd}):La.push({type:"elem",elem:Ta,shift:Vd})}o=S.makeVList({positionType:"individualShift",children:La},t)}if(ce.length===0)return S.makeSpan(["mord"],[o],t);var Da=S.makeVList({positionType:"individualShift",children:ce},t);return Da=S.makeSpan(["tag"],[Da],t),S.makeFragment([o,Da])},iB={c:"center ",l:"left ",r:"right "},Qt=function(e,t){for(var A=[],n=new D.MathNode("mtd",[],["mtr-glue"]),i=new D.MathNode("mtd",[],["mml-eqn-num"]),s=0;s<e.body.length;s++){for(var a=e.body[s],o=[],l=0;l<a.length;l++)o.push(new D.MathNode("mtd",[de(a[l],t)]));e.tags&&e.tags[s]&&(o.unshift(n),o.push(n),e.leqno?o.unshift(i):o.push(i)),A.push(new D.MathNode("mtr",o))}var c=new D.MathNode("mtable",A),d=e.arraystretch===.5?.1:.16+e.arraystretch-1+(e.addJot?.09:0);c.setAttribute("rowspacing",O(d));var g="",p="";if(e.cols&&e.cols.length>0){var m=e.cols,B="",y=!1,x=0,C=m.length;m[0].type==="separator"&&(g+="top ",x=1),m[m.length-1].type==="separator"&&(g+="bottom ",C-=1);for(var I=x;I<C;I++)m[I].type==="align"?(p+=iB[m[I].align],y&&(B+="none "),y=!0):m[I].type==="separator"&&y&&(B+=m[I].separator==="|"?"solid ":"dashed ",y=!1);c.setAttribute("columnalign",p.trim()),/[sd]/.test(B)&&c.setAttribute("columnlines",B.trim())}if(e.colSeparationType==="align"){for(var E=e.cols||[],F="",M=1;M<E.length;M++)F+=M%2?"0em ":"1em ";c.setAttribute("columnspacing",F.trim())}else e.colSeparationType==="alignat"||e.colSeparationType==="gather"?c.setAttribute("columnspacing","0em"):e.colSeparationType==="small"?c.setAttribute("columnspacing","0.2778em"):e.colSeparationType==="CD"?c.setAttribute("columnspacing","0.5em"):c.setAttribute("columnspacing","1em");var H="",L=e.hLinesBeforeRow;g+=L[0].length>0?"left ":"",g+=L[L.length-1].length>0?"right ":"";for(var N=1;N<L.length-1;N++)H+=L[N].length===0?"none ":L[N][0]?"dashed ":"solid ";return/[sd]/.test(H)&&c.setAttribute("rowlines",H.trim()),g!==""&&(c=new D.MathNode("menclose",[c]),c.setAttribute("notation",g.trim())),e.arraystretch&&e.arraystretch<1&&(c=new D.MathNode("mstyle",[c]),c.setAttribute("scriptlevel","1")),c},zc=function(e,t){e.envName.indexOf("ed")===-1&&li(e);var A=[],n=e.envName.indexOf("at")>-1?"alignat":"align",i=e.envName==="split",s=sA(e.parser,{cols:A,addJot:!0,autoTag:i?void 0:pa(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:i?2:void 0,leqno:e.parser.settings.leqno},"display"),a,o=0,l={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&t[0].type==="ordgroup"){for(var c="",d=0;d<t[0].body.length;d++){var g=Ae(t[0].body[d],"textord");c+=g.text}a=Number(c),o=a*2}var p=!o;s.body.forEach(function(x){for(var C=1;C<x.length;C+=2){var I=Ae(x[C],"styling"),E=Ae(I.body[0],"ordgroup");E.body.unshift(l)}if(p)o<x.length&&(o=x.length);else{var F=x.length/2;if(a<F)throw new P("Too many math in a row: "+("expected "+a+", but got "+F),x[0])}});for(var m=0;m<o;++m){var B="r",y=0;m%2===1?B="l":m>0&&p&&(y=1),A[m]={type:"align",align:B,pregap:y,postgap:0}}return s.colSeparationType=p?"align":"alignat",s};Ct({type:"array",names:["array","darray"],props:{numArgs:1},handler(r,e){var t=ni(e[0]),A=t?[e[0]]:Ae(e[0],"ordgroup").body,n=A.map(function(s){var a=Aa(s),o=a.text;if("lcr".indexOf(o)!==-1)return{type:"align",align:o};if(o==="|")return{type:"separator",separator:"|"};if(o===":")return{type:"separator",separator:":"};throw new P("Unknown column alignment: "+o,s)}),i={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return sA(r.parser,i,ga(r.envName))},htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(r){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[r.envName.replace("*","")],t="c",A={hskipBeforeAndAfter:!1,cols:[{type:"align",align:t}]};if(r.envName.charAt(r.envName.length-1)==="*"){var n=r.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),t=n.fetch().text,"lcr".indexOf(t)===-1)throw new P("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),A.cols=[{type:"align",align:t}]}}var i=sA(r.parser,A,ga(r.envName)),s=Math.max(0,...i.body.map(a=>a.length));return i.cols=new Array(s).fill({type:"align",align:t}),e?{type:"leftright",mode:r.mode,body:[i],left:e[0],right:e[1],rightColor:void 0}:i},htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(r){var e={arraystretch:.5},t=sA(r.parser,e,"script");return t.colSeparationType="small",t},htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["subarray"],props:{numArgs:1},handler(r,e){var t=ni(e[0]),A=t?[e[0]]:Ae(e[0],"ordgroup").body,n=A.map(function(s){var a=Aa(s),o=a.text;if("lc".indexOf(o)!==-1)return{type:"align",align:o};throw new P("Unknown column alignment: "+o,s)});if(n.length>1)throw new P("{subarray} can contain only one column");var i={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(i=sA(r.parser,i,"script"),i.body.length>0&&i.body[0].length>1)throw new P("{subarray} can contain only one column");return i},htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(r){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},t=sA(r.parser,e,ga(r.envName));return{type:"leftright",mode:r.mode,body:[t],left:r.envName.indexOf("r")>-1?".":"\\{",right:r.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:zc,htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(r){X.contains(["gather","gather*"],r.envName)&&li(r);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:pa(r.envName),emptySingleRow:!0,leqno:r.parser.settings.leqno};return sA(r.parser,e,"display")},htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:zc,htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(r){li(r);var e={autoTag:pa(r.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:r.parser.settings.leqno};return sA(r.parser,e,"display")},htmlBuilder:xt,mathmlBuilder:Qt}),Ct({type:"array",names:["CD"],props:{numArgs:0},handler(r){return li(r),Y2(r.parser)},htmlBuilder:xt,mathmlBuilder:Qt}),w("\\nonumber","\\gdef\\@eqnsw{0}"),w("\\notag","\\nonumber"),z({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(r,e){throw new P(r.funcName+" valid only within array environment")}});var Gc=Oc;z({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(r,e){var{parser:t,funcName:A}=r,n=e[0];if(n.type!=="ordgroup")throw new P("Invalid environment name",n);for(var i="",s=0;s<n.body.length;++s)i+=Ae(n.body[s],"textord").text;if(A==="\\begin"){if(!Gc.hasOwnProperty(i))throw new P("No such environment: "+i,n);var a=Gc[i],{args:o,optArgs:l}=t.parseArguments("\\begin{"+i+"}",a),c={mode:t.mode,envName:i,parser:t},d=a.handler(c,o,l);t.expect("\\end",!1);var g=t.nextToken,p=Ae(t.parseFunction(),"environment");if(p.name!==i)throw new P("Mismatch: \\begin{"+i+"} matched by \\end{"+p.name+"}",g);return d}return{type:"environment",mode:t.mode,name:i,nameGroup:n}}});var Vc=(r,e)=>{var t=r.font,A=e.withFont(t);return se(r.body,A)},Yc=(r,e)=>{var t=r.font,A=e.withFont(t);return de(r.body,A)},Wc={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};z({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=Ai(e[0]),i=A;return i in Wc&&(i=Wc[i]),{type:"font",mode:t.mode,font:i.slice(1),body:n}},htmlBuilder:Vc,mathmlBuilder:Yc}),z({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(r,e)=>{var{parser:t}=r,A=e[0],n=X.isCharacterBox(A);return{type:"mclass",mode:t.mode,mclass:si(A),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:A}],isCharacterBox:n}}}),z({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:A,breakOnTokenText:n}=r,{mode:i}=t,s=t.parseExpression(!0,n),a="math"+A.slice(1);return{type:"font",mode:i,font:a,body:{type:"ordgroup",mode:t.mode,body:s}}},htmlBuilder:Vc,mathmlBuilder:Yc});var Xc=(r,e)=>{var t=e;return r==="display"?t=t.id>=J.SCRIPT.id?t.text():J.DISPLAY:r==="text"&&t.size===J.DISPLAY.size?t=J.TEXT:r==="script"?t=J.SCRIPT:r==="scriptscript"&&(t=J.SCRIPTSCRIPT),t},fa=(r,e)=>{var t=Xc(r.size,e.style),A=t.fracNum(),n=t.fracDen(),i;i=e.havingStyle(A);var s=se(r.numer,i,e);if(r.continued){var a=8.5/e.fontMetrics().ptPerEm,o=3.5/e.fontMetrics().ptPerEm;s.height=s.height<a?a:s.height,s.depth=s.depth<o?o:s.depth}i=e.havingStyle(n);var l=se(r.denom,i,e),c,d,g;r.hasBarLine?(r.barSize?(d=we(r.barSize,e),c=S.makeLineSpan("frac-line",e,d)):c=S.makeLineSpan("frac-line",e),d=c.height,g=c.height):(c=null,d=0,g=e.fontMetrics().defaultRuleThickness);var p,m,B;t.size===J.DISPLAY.size||r.size==="display"?(p=e.fontMetrics().num1,d>0?m=3*g:m=7*g,B=e.fontMetrics().denom1):(d>0?(p=e.fontMetrics().num2,m=g):(p=e.fontMetrics().num3,m=3*g),B=e.fontMetrics().denom2);var y;if(c){var C=e.fontMetrics().axisHeight;p-s.depth-(C+.5*d)<m&&(p+=m-(p-s.depth-(C+.5*d))),C-.5*d-(l.height-B)<m&&(B+=m-(C-.5*d-(l.height-B)));var I=-(C-.5*d);y=S.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:B},{type:"elem",elem:c,shift:I},{type:"elem",elem:s,shift:-p}]},e)}else{var x=p-s.depth-(l.height-B);x<m&&(p+=.5*(m-x),B+=.5*(m-x)),y=S.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:B},{type:"elem",elem:s,shift:-p}]},e)}i=e.havingStyle(t),y.height*=i.sizeMultiplier/e.sizeMultiplier,y.depth*=i.sizeMultiplier/e.sizeMultiplier;var E;t.size===J.DISPLAY.size?E=e.fontMetrics().delim1:t.size===J.SCRIPTSCRIPT.size?E=e.havingStyle(J.SCRIPT).fontMetrics().delim2:E=e.fontMetrics().delim2;var F,M;return r.leftDelim==null?F=Er(e,["mopen"]):F=Nt.customSizedDelim(r.leftDelim,E,!0,e.havingStyle(t),r.mode,["mopen"]),r.continued?M=S.makeSpan([]):r.rightDelim==null?M=Er(e,["mclose"]):M=Nt.customSizedDelim(r.rightDelim,E,!0,e.havingStyle(t),r.mode,["mclose"]),S.makeSpan(["mord"].concat(i.sizingClasses(e)),[F,S.makeSpan(["mfrac"],[y]),M],e)},ma=(r,e)=>{var t=new D.MathNode("mfrac",[de(r.numer,e),de(r.denom,e)]);if(!r.hasBarLine)t.setAttribute("linethickness","0px");else if(r.barSize){var A=we(r.barSize,e);t.setAttribute("linethickness",O(A))}var n=Xc(r.size,e.style);if(n.size!==e.style.size){t=new D.MathNode("mstyle",[t]);var i=n.size===J.DISPLAY.size?"true":"false";t.setAttribute("displaystyle",i),t.setAttribute("scriptlevel","0")}if(r.leftDelim!=null||r.rightDelim!=null){var s=[];if(r.leftDelim!=null){var a=new D.MathNode("mo",[new D.TextNode(r.leftDelim.replace("\\",""))]);a.setAttribute("fence","true"),s.push(a)}if(s.push(t),r.rightDelim!=null){var o=new D.MathNode("mo",[new D.TextNode(r.rightDelim.replace("\\",""))]);o.setAttribute("fence","true"),s.push(o)}return ea(s)}return t};z({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=e[0],i=e[1],s,a=null,o=null,l="auto";switch(A){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,a="(",o=")";break;case"\\\\bracefrac":s=!1,a="\\{",o="\\}";break;case"\\\\brackfrac":s=!1,a="[",o="]";break;default:throw new Error("Unrecognized genfrac command")}switch(A){case"\\dfrac":case"\\dbinom":l="display";break;case"\\tfrac":case"\\tbinom":l="text";break}return{type:"genfrac",mode:t.mode,continued:!1,numer:n,denom:i,hasBarLine:s,leftDelim:a,rightDelim:o,size:l,barSize:null}},htmlBuilder:fa,mathmlBuilder:ma}),z({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=e[0],i=e[1];return{type:"genfrac",mode:t.mode,continued:!0,numer:n,denom:i,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),z({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(r){var{parser:e,funcName:t,token:A}=r,n;switch(t){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:n,token:A}}});var Jc=["display","text","script","scriptscript"],_c=function(e){var t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};z({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(r,e){var{parser:t}=r,A=e[4],n=e[5],i=Ai(e[0]),s=i.type==="atom"&&i.family==="open"?_c(i.text):null,a=Ai(e[1]),o=a.type==="atom"&&a.family==="close"?_c(a.text):null,l=Ae(e[2],"size"),c,d=null;l.isBlank?c=!0:(d=l.value,c=d.number>0);var g="auto",p=e[3];if(p.type==="ordgroup"){if(p.body.length>0){var m=Ae(p.body[0],"textord");g=Jc[Number(m.text)]}}else p=Ae(p,"textord"),g=Jc[Number(p.text)];return{type:"genfrac",mode:t.mode,numer:A,denom:n,continued:!1,hasBarLine:c,barSize:d,leftDelim:s,rightDelim:o,size:g}},htmlBuilder:fa,mathmlBuilder:ma}),z({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(r,e){var{parser:t,funcName:A,token:n}=r;return{type:"infix",mode:t.mode,replaceWith:"\\\\abovefrac",size:Ae(e[0],"size").value,token:n}}}),z({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=e[0],i=Dw(Ae(e[1],"infix").size),s=e[2],a=i.number>0;return{type:"genfrac",mode:t.mode,numer:n,denom:s,continued:!1,hasBarLine:a,barSize:i,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:fa,mathmlBuilder:ma});var qc=(r,e)=>{var t=e.style,A,n;r.type==="supsub"?(A=r.sup?se(r.sup,e.havingStyle(t.sup()),e):se(r.sub,e.havingStyle(t.sub()),e),n=Ae(r.base,"horizBrace")):n=Ae(r,"horizBrace");var i=se(n.base,e.havingBaseStyle(J.DISPLAY)),s=Pt.svgSpan(n,e),a;if(n.isOver?(a=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:.1},{type:"elem",elem:s}]},e),a.children[0].children[0].children[1].classes.push("svg-align")):(a=S.makeVList({positionType:"bottom",positionData:i.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:i}]},e),a.children[0].children[0].children[0].classes.push("svg-align")),A){var o=S.makeSpan(["mord",n.isOver?"mover":"munder"],[a],e);n.isOver?a=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.2},{type:"elem",elem:A}]},e):a=S.makeVList({positionType:"bottom",positionData:o.depth+.2+A.height+A.depth,children:[{type:"elem",elem:A},{type:"kern",size:.2},{type:"elem",elem:o}]},e)}return S.makeSpan(["mord",n.isOver?"mover":"munder"],[a],e)},sB=(r,e)=>{var t=Pt.mathMLnode(r.label);return new D.MathNode(r.isOver?"mover":"munder",[de(r.base,e),t])};z({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:A}=r;return{type:"horizBrace",mode:t.mode,label:A,isOver:/^\\over/.test(A),base:e[0]}},htmlBuilder:qc,mathmlBuilder:sB}),z({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,A=e[1],n=Ae(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:t.mode,href:n,body:Qe(A)}:t.formatUnsupportedCmd("\\href")},htmlBuilder:(r,e)=>{var t=Me(r.body,e,!1);return S.makeAnchor(r.href,[],t,e)},mathmlBuilder:(r,e)=>{var t=iA(r.body,e);return t instanceof at||(t=new at("mrow",[t])),t.setAttribute("href",r.href),t}}),z({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,A=Ae(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:A}))return t.formatUnsupportedCmd("\\url");for(var n=[],i=0;i<A.length;i++){var s=A[i];s==="~"&&(s="\\textasciitilde"),n.push({type:"textord",mode:"text",text:s})}var a={type:"text",mode:t.mode,font:"\\texttt",body:n};return{type:"href",mode:t.mode,href:A,body:Qe(a)}}}),z({type:"hbox",names:["\\hbox"],props:{numArgs:1,argTypes:["text"],allowedInText:!0,primitive:!0},handler(r,e){var{parser:t}=r;return{type:"hbox",mode:t.mode,body:Qe(e[0])}},htmlBuilder(r,e){var t=Me(r.body,e,!1);return S.makeFragment(t)},mathmlBuilder(r,e){return new D.MathNode("mrow",Je(r.body,e))}}),z({type:"html",names:["\\htmlClass","\\htmlId","\\htmlStyle","\\htmlData"],props:{numArgs:2,argTypes:["raw","original"],allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:A,token:n}=r,i=Ae(e[0],"raw").string,s=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var a,o={};switch(A){case"\\htmlClass":o.class=i,a={command:"\\htmlClass",class:i};break;case"\\htmlId":o.id=i,a={command:"\\htmlId",id:i};break;case"\\htmlStyle":o.style=i,a={command:"\\htmlStyle",style:i};break;case"\\htmlData":{for(var l=i.split(","),c=0;c<l.length;c++){var d=l[c].split("=");if(d.length!==2)throw new P("Error parsing key-value for \\htmlData");o["data-"+d[0].trim()]=d[1].trim()}a={command:"\\htmlData",attributes:o};break}default:throw new Error("Unrecognized html command")}return t.settings.isTrusted(a)?{type:"html",mode:t.mode,attributes:o,body:Qe(s)}:t.formatUnsupportedCmd(A)},htmlBuilder:(r,e)=>{var t=Me(r.body,e,!1),A=["enclosing"];r.attributes.class&&A.push(...r.attributes.class.trim().split(/\s+/));var n=S.makeSpan(A,t,e);for(var i in r.attributes)i!=="class"&&r.attributes.hasOwnProperty(i)&&n.setAttribute(i,r.attributes[i]);return n},mathmlBuilder:(r,e)=>iA(r.body,e)}),z({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"htmlmathml",mode:t.mode,html:Qe(e[0]),mathml:Qe(e[1])}},htmlBuilder:(r,e)=>{var t=Me(r.html,e,!1);return S.makeFragment(t)},mathmlBuilder:(r,e)=>iA(r.mathml,e)});var wa=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new P("Invalid size: '"+e+"' in \\includegraphics");var A={number:+(t[1]+t[2]),unit:t[3]};if(!Zl(A))throw new P("Invalid unit: '"+A.unit+"' in \\includegraphics.");return A};z({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(r,e,t)=>{var{parser:A}=r,n={number:0,unit:"em"},i={number:.9,unit:"em"},s={number:0,unit:"em"},a="";if(t[0])for(var o=Ae(t[0],"raw").string,l=o.split(","),c=0;c<l.length;c++){var d=l[c].split("=");if(d.length===2){var g=d[1].trim();switch(d[0].trim()){case"alt":a=g;break;case"width":n=wa(g);break;case"height":i=wa(g);break;case"totalheight":s=wa(g);break;default:throw new P("Invalid key: '"+d[0]+"' in \\includegraphics.")}}}var p=Ae(e[0],"url").url;return a===""&&(a=p,a=a.replace(/^.*[\\/]/,""),a=a.substring(0,a.lastIndexOf("."))),A.settings.isTrusted({command:"\\includegraphics",url:p})?{type:"includegraphics",mode:A.mode,alt:a,width:n,height:i,totalheight:s,src:p}:A.formatUnsupportedCmd("\\includegraphics")},htmlBuilder:(r,e)=>{var t=we(r.height,e),A=0;r.totalheight.number>0&&(A=we(r.totalheight,e)-t);var n=0;r.width.number>0&&(n=we(r.width,e));var i={height:O(t+A)};n>0&&(i.width=O(n)),A>0&&(i.verticalAlign=O(-A));var s=new s2(r.src,r.alt,i);return s.height=t,s.depth=A,s},mathmlBuilder:(r,e)=>{var t=new D.MathNode("mglyph",[]);t.setAttribute("alt",r.alt);var A=we(r.height,e),n=0;if(r.totalheight.number>0&&(n=we(r.totalheight,e)-A,t.setAttribute("valign",O(-n))),t.setAttribute("height",O(A+n)),r.width.number>0){var i=we(r.width,e);t.setAttribute("width",O(i))}return t.setAttribute("src",r.src),t}}),z({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:A}=r,n=Ae(e[0],"size");if(t.settings.strict){var i=A[1]==="m",s=n.value.unit==="mu";i?(s||t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+A+" supports only mu units, "+("not "+n.value.unit+" units")),t.mode!=="math"&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+A+" works only in math mode")):s&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+A+" doesn't support mu units")}return{type:"kern",mode:t.mode,dimension:n.value}},htmlBuilder(r,e){return S.makeGlue(r.dimension,e)},mathmlBuilder(r,e){var t=we(r.dimension,e);return new D.SpaceNode(t)}}),z({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=e[0];return{type:"lap",mode:t.mode,alignment:A.slice(5),body:n}},htmlBuilder:(r,e)=>{var t;r.alignment==="clap"?(t=S.makeSpan([],[se(r.body,e)]),t=S.makeSpan(["inner"],[t],e)):t=S.makeSpan(["inner"],[se(r.body,e)]);var A=S.makeSpan(["fix"],[]),n=S.makeSpan([r.alignment],[t,A],e),i=S.makeSpan(["strut"]);return i.style.height=O(n.height+n.depth),n.depth&&(i.style.verticalAlign=O(-n.depth)),n.children.unshift(i),n=S.makeSpan(["thinbox"],[n],e),S.makeSpan(["mord","vbox"],[n],e)},mathmlBuilder:(r,e)=>{var t=new D.MathNode("mpadded",[de(r.body,e)]);if(r.alignment!=="rlap"){var A=r.alignment==="llap"?"-1":"-0.5";t.setAttribute("lspace",A+"width")}return t.setAttribute("width","0px"),t}}),z({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){var{funcName:t,parser:A}=r,n=A.mode;A.switchMode("math");var i=t==="\\("?"\\)":"$",s=A.parseExpression(!1,i);return A.expect(i),A.switchMode(n),{type:"styling",mode:A.mode,style:"text",body:s}}}),z({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){throw new P("Mismatched "+r.funcName)}});var jc=(r,e)=>{switch(e.style.size){case J.DISPLAY.size:return r.display;case J.TEXT.size:return r.text;case J.SCRIPT.size:return r.script;case J.SCRIPTSCRIPT.size:return r.scriptscript;default:return r.text}};z({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"mathchoice",mode:t.mode,display:Qe(e[0]),text:Qe(e[1]),script:Qe(e[2]),scriptscript:Qe(e[3])}},htmlBuilder:(r,e)=>{var t=jc(r,e),A=Me(t,e,!1);return S.makeFragment(A)},mathmlBuilder:(r,e)=>{var t=jc(r,e);return iA(t,e)}});var Zc=(r,e,t,A,n,i,s)=>{r=S.makeSpan([],[r]);var a=t&&X.isCharacterBox(t),o,l;if(e){var c=se(e,A.havingStyle(n.sup()),A);l={elem:c,kern:Math.max(A.fontMetrics().bigOpSpacing1,A.fontMetrics().bigOpSpacing3-c.depth)}}if(t){var d=se(t,A.havingStyle(n.sub()),A);o={elem:d,kern:Math.max(A.fontMetrics().bigOpSpacing2,A.fontMetrics().bigOpSpacing4-d.height)}}var g;if(l&&o){var p=A.fontMetrics().bigOpSpacing5+o.elem.height+o.elem.depth+o.kern+r.depth+s;g=S.makeVList({positionType:"bottom",positionData:p,children:[{type:"kern",size:A.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:O(-i)},{type:"kern",size:o.kern},{type:"elem",elem:r},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:O(i)},{type:"kern",size:A.fontMetrics().bigOpSpacing5}]},A)}else if(o){var m=r.height-s;g=S.makeVList({positionType:"top",positionData:m,children:[{type:"kern",size:A.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:O(-i)},{type:"kern",size:o.kern},{type:"elem",elem:r}]},A)}else if(l){var B=r.depth+s;g=S.makeVList({positionType:"bottom",positionData:B,children:[{type:"elem",elem:r},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:O(i)},{type:"kern",size:A.fontMetrics().bigOpSpacing5}]},A)}else return r;var y=[g];if(o&&i!==0&&!a){var x=S.makeSpan(["mspace"],[],A);x.style.marginRight=O(i),y.unshift(x)}return S.makeSpan(["mop","op-limits"],y,A)},$c=["\\smallint"],YA=(r,e)=>{var t,A,n=!1,i;r.type==="supsub"?(t=r.sup,A=r.sub,i=Ae(r.base,"op"),n=!0):i=Ae(r,"op");var s=e.style,a=!1;s.size===J.DISPLAY.size&&i.symbol&&!X.contains($c,i.name)&&(a=!0);var o;if(i.symbol){var l=a?"Size2-Regular":"Size1-Regular",c="";if((i.name==="\\oiint"||i.name==="\\oiiint")&&(c=i.name.slice(1),i.name=c==="oiint"?"\\iint":"\\iiint"),o=S.makeSymbol(i.name,l,"math",e,["mop","op-symbol",a?"large-op":"small-op"]),c.length>0){var d=o.italic,g=S.staticSvg(c+"Size"+(a?"2":"1"),e);o=S.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:g,shift:a?.08:0}]},e),i.name="\\"+c,o.classes.unshift("mop"),o.italic=d}}else if(i.body){var p=Me(i.body,e,!0);p.length===1&&p[0]instanceof st?(o=p[0],o.classes[0]="mop"):o=S.makeSpan(["mop"],p,e)}else{for(var m=[],B=1;B<i.name.length;B++)m.push(S.mathsym(i.name[B],i.mode,e));o=S.makeSpan(["mop"],m,e)}var y=0,x=0;return(o instanceof st||i.name==="\\oiint"||i.name==="\\oiiint")&&!i.suppressBaseShift&&(y=(o.height-o.depth)/2-e.fontMetrics().axisHeight,x=o.italic),n?Zc(o,t,A,e,s,x,y):(y&&(o.style.position="relative",o.style.top=O(y)),o)},Sr=(r,e)=>{var t;if(r.symbol)t=new at("mo",[ot(r.name,r.mode)]),X.contains($c,r.name)&&t.setAttribute("largeop","false");else if(r.body)t=new at("mo",Je(r.body,e));else{t=new at("mi",[new Ur(r.name.slice(1))]);var A=new at("mo",[ot("⁡","text")]);r.parentIsSupSub?t=new at("mrow",[t,A]):t=fc([t,A])}return t},aB={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};z({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=A;return n.length===1&&(n=aB[n]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:YA,mathmlBuilder:Sr}),z({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var{parser:t}=r,A=e[0];return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Qe(A)}},htmlBuilder:YA,mathmlBuilder:Sr});var oB={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};z({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:YA,mathmlBuilder:Sr}),z({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:YA,mathmlBuilder:Sr}),z({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r,A=t;return A.length===1&&(A=oB[A]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:A}},htmlBuilder:YA,mathmlBuilder:Sr});var ed=(r,e)=>{var t,A,n=!1,i;r.type==="supsub"?(t=r.sup,A=r.sub,i=Ae(r.base,"operatorname"),n=!0):i=Ae(r,"operatorname");var s;if(i.body.length>0){for(var a=i.body.map(d=>{var g=d.text;return typeof g=="string"?{type:"textord",mode:d.mode,text:g}:d}),o=Me(a,e.withFont("mathrm"),!0),l=0;l<o.length;l++){var c=o[l];c instanceof st&&(c.text=c.text.replace(/\u2212/,"-").replace(/\u2217/,"*"))}s=S.makeSpan(["mop"],o,e)}else s=S.makeSpan(["mop"],[],e);return n?Zc(s,t,A,e,e.style,0,0):s},lB=(r,e)=>{for(var t=Je(r.body,e.withFont("mathrm")),A=!0,n=0;n<t.length;n++){var i=t[n];if(!(i instanceof D.SpaceNode))if(i instanceof D.MathNode)switch(i.type){case"mi":case"mn":case"ms":case"mspace":case"mtext":break;case"mo":{var s=i.children[0];i.children.length===1&&s instanceof D.TextNode?s.text=s.text.replace(/\u2212/,"-").replace(/\u2217/,"*"):A=!1;break}default:A=!1}else A=!1}if(A){var a=t.map(c=>c.toText()).join("");t=[new D.TextNode(a)]}var o=new D.MathNode("mi",t);o.setAttribute("mathvariant","normal");var l=new D.MathNode("mo",[ot("⁡","text")]);return r.parentIsSupSub?new D.MathNode("mrow",[o,l]):D.newDocumentFragment([o,l])};z({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:A}=r,n=e[0];return{type:"operatorname",mode:t.mode,body:Qe(n),alwaysHandleSupSub:A==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:ed,mathmlBuilder:lB}),w("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@"),yA({type:"ordgroup",htmlBuilder(r,e){return r.semisimple?S.makeFragment(Me(r.body,e,!1)):S.makeSpan(["mord"],Me(r.body,e,!0),e)},mathmlBuilder(r,e){return iA(r.body,e,!0)}}),z({type:"overline",names:["\\overline"],props:{numArgs:1},handler(r,e){var{parser:t}=r,A=e[0];return{type:"overline",mode:t.mode,body:A}},htmlBuilder(r,e){var t=se(r.body,e.havingCrampedStyle()),A=S.makeLineSpan("overline-line",e),n=e.fontMetrics().defaultRuleThickness,i=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:A},{type:"kern",size:n}]},e);return S.makeSpan(["mord","overline"],[i],e)},mathmlBuilder(r,e){var t=new D.MathNode("mo",[new D.TextNode("‾")]);t.setAttribute("stretchy","true");var A=new D.MathNode("mover",[de(r.body,e),t]);return A.setAttribute("accent","true"),A}}),z({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,A=e[0];return{type:"phantom",mode:t.mode,body:Qe(A)}},htmlBuilder:(r,e)=>{var t=Me(r.body,e.withPhantom(),!1);return S.makeFragment(t)},mathmlBuilder:(r,e)=>{var t=Je(r.body,e);return new D.MathNode("mphantom",t)}}),z({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,A=e[0];return{type:"hphantom",mode:t.mode,body:A}},htmlBuilder:(r,e)=>{var t=S.makeSpan([],[se(r.body,e.withPhantom())]);if(t.height=0,t.depth=0,t.children)for(var A=0;A<t.children.length;A++)t.children[A].height=0,t.children[A].depth=0;return t=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t}]},e),S.makeSpan(["mord"],[t],e)},mathmlBuilder:(r,e)=>{var t=Je(Qe(r.body),e),A=new D.MathNode("mphantom",t),n=new D.MathNode("mpadded",[A]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}}),z({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,A=e[0];return{type:"vphantom",mode:t.mode,body:A}},htmlBuilder:(r,e)=>{var t=S.makeSpan(["inner"],[se(r.body,e.withPhantom())]),A=S.makeSpan(["fix"],[]);return S.makeSpan(["mord","rlap"],[t,A],e)},mathmlBuilder:(r,e)=>{var t=Je(Qe(r.body),e),A=new D.MathNode("mphantom",t),n=new D.MathNode("mpadded",[A]);return n.setAttribute("width","0px"),n}}),z({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r,A=Ae(e[0],"size").value,n=e[1];return{type:"raisebox",mode:t.mode,dy:A,body:n}},htmlBuilder(r,e){var t=se(r.body,e),A=we(r.dy,e);return S.makeVList({positionType:"shift",positionData:-A,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){var t=new D.MathNode("mpadded",[de(r.body,e)]),A=r.dy.number+r.dy.unit;return t.setAttribute("voffset",A),t}}),z({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e}=r;return{type:"internal",mode:e.mode}}}),z({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(r,e,t){var{parser:A}=r,n=t[0],i=Ae(e[0],"size"),s=Ae(e[1],"size");return{type:"rule",mode:A.mode,shift:n&&Ae(n,"size").value,width:i.value,height:s.value}},htmlBuilder(r,e){var t=S.makeSpan(["mord","rule"],[],e),A=we(r.width,e),n=we(r.height,e),i=r.shift?we(r.shift,e):0;return t.style.borderRightWidth=O(A),t.style.borderTopWidth=O(n),t.style.bottom=O(i),t.width=A,t.height=n+i,t.depth=-i,t.maxFontSize=n*1.125*e.sizeMultiplier,t},mathmlBuilder(r,e){var t=we(r.width,e),A=we(r.height,e),n=r.shift?we(r.shift,e):0,i=e.color&&e.getColor()||"black",s=new D.MathNode("mspace");s.setAttribute("mathbackground",i),s.setAttribute("width",O(t)),s.setAttribute("height",O(A));var a=new D.MathNode("mpadded",[s]);return n>=0?a.setAttribute("height",O(n)):(a.setAttribute("height",O(n)),a.setAttribute("depth",O(-n))),a.setAttribute("voffset",O(n)),a}});function td(r,e,t){for(var A=Me(r,e,!1),n=e.sizeMultiplier/t.sizeMultiplier,i=0;i<A.length;i++){var s=A[i].classes.indexOf("sizing");s<0?Array.prototype.push.apply(A[i].classes,e.sizingClasses(t)):A[i].classes[s+1]==="reset-size"+e.size&&(A[i].classes[s+1]="reset-size"+t.size),A[i].height*=n,A[i].depth*=n}return S.makeFragment(A)}var Ad=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],cB=(r,e)=>{var t=e.havingSize(r.size);return td(r.body,t,e)};z({type:"sizing",names:Ad,props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{breakOnTokenText:t,funcName:A,parser:n}=r,i=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:Ad.indexOf(A)+1,body:i}},htmlBuilder:cB,mathmlBuilder:(r,e)=>{var t=e.havingSize(r.size),A=Je(r.body,t),n=new D.MathNode("mstyle",A);return n.setAttribute("mathsize",O(t.sizeMultiplier)),n}}),z({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(r,e,t)=>{var{parser:A}=r,n=!1,i=!1,s=t[0]&&Ae(t[0],"ordgroup");if(s)for(var a="",o=0;o<s.body.length;++o){var l=s.body[o];if(a=l.text,a==="t")n=!0;else if(a==="b")i=!0;else{n=!1,i=!1;break}}else n=!0,i=!0;var c=e[0];return{type:"smash",mode:A.mode,body:c,smashHeight:n,smashDepth:i}},htmlBuilder:(r,e)=>{var t=S.makeSpan([],[se(r.body,e)]);if(!r.smashHeight&&!r.smashDepth)return t;if(r.smashHeight&&(t.height=0,t.children))for(var A=0;A<t.children.length;A++)t.children[A].height=0;if(r.smashDepth&&(t.depth=0,t.children))for(var n=0;n<t.children.length;n++)t.children[n].depth=0;var i=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t}]},e);return S.makeSpan(["mord"],[i],e)},mathmlBuilder:(r,e)=>{var t=new D.MathNode("mpadded",[de(r.body,e)]);return r.smashHeight&&t.setAttribute("height","0px"),r.smashDepth&&t.setAttribute("depth","0px"),t}}),z({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:A}=r,n=t[0],i=e[0];return{type:"sqrt",mode:A.mode,body:i,index:n}},htmlBuilder(r,e){var t=se(r.body,e.havingCrampedStyle());t.height===0&&(t.height=e.fontMetrics().xHeight),t=S.wrapFragment(t,e);var A=e.fontMetrics(),n=A.defaultRuleThickness,i=n;e.style.id<J.TEXT.id&&(i=e.fontMetrics().xHeight);var s=n+i/4,a=t.height+t.depth+s+n,{span:o,ruleWidth:l,advanceWidth:c}=Nt.sqrtImage(a,e),d=o.height-l;d>t.height+t.depth+s&&(s=(s+d-t.height-t.depth)/2);var g=o.height-t.height-s-l;t.style.paddingLeft=O(c);var p=S.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t,wrapperClasses:["svg-align"]},{type:"kern",size:-(t.height+g)},{type:"elem",elem:o},{type:"kern",size:l}]},e);if(r.index){var m=e.havingStyle(J.SCRIPTSCRIPT),B=se(r.index,m,e),y=.6*(p.height-p.depth),x=S.makeVList({positionType:"shift",positionData:-y,children:[{type:"elem",elem:B}]},e),C=S.makeSpan(["root"],[x]);return S.makeSpan(["mord","sqrt"],[C,p],e)}else return S.makeSpan(["mord","sqrt"],[p],e)},mathmlBuilder(r,e){var{body:t,index:A}=r;return A?new D.MathNode("mroot",[de(t,e),de(A,e)]):new D.MathNode("msqrt",[de(t,e)])}});var rd={display:J.DISPLAY,text:J.TEXT,script:J.SCRIPT,scriptscript:J.SCRIPTSCRIPT};z({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r,e){var{breakOnTokenText:t,funcName:A,parser:n}=r,i=n.parseExpression(!0,t),s=A.slice(1,A.length-5);return{type:"styling",mode:n.mode,style:s,body:i}},htmlBuilder(r,e){var t=rd[r.style],A=e.havingStyle(t).withFont("");return td(r.body,A,e)},mathmlBuilder(r,e){var t=rd[r.style],A=e.havingStyle(t),n=Je(r.body,A),i=new D.MathNode("mstyle",n),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},a=s[r.style];return i.setAttribute("scriptlevel",a[0]),i.setAttribute("displaystyle",a[1]),i}});var dB=function(e,t){var A=e.base;if(A)if(A.type==="op"){var n=A.limits&&(t.style.size===J.DISPLAY.size||A.alwaysHandleSupSub);return n?YA:null}else if(A.type==="operatorname"){var i=A.alwaysHandleSupSub&&(t.style.size===J.DISPLAY.size||A.limits);return i?ed:null}else{if(A.type==="accent")return X.isCharacterBox(A.base)?ra:null;if(A.type==="horizBrace"){var s=!e.sub;return s===A.isOver?qc:null}else return null}else return null};yA({type:"supsub",htmlBuilder(r,e){var t=dB(r,e);if(t)return t(r,e);var{base:A,sup:n,sub:i}=r,s=se(A,e),a,o,l=e.fontMetrics(),c=0,d=0,g=A&&X.isCharacterBox(A);if(n){var p=e.havingStyle(e.style.sup());a=se(n,p,e),g||(c=s.height-p.fontMetrics().supDrop*p.sizeMultiplier/e.sizeMultiplier)}if(i){var m=e.havingStyle(e.style.sub());o=se(i,m,e),g||(d=s.depth+m.fontMetrics().subDrop*m.sizeMultiplier/e.sizeMultiplier)}var B;e.style===J.DISPLAY?B=l.sup1:e.style.cramped?B=l.sup3:B=l.sup2;var y=e.sizeMultiplier,x=O(.5/l.ptPerEm/y),C=null;if(o){var I=r.base&&r.base.type==="op"&&r.base.name&&(r.base.name==="\\oiint"||r.base.name==="\\oiiint");(s instanceof st||I)&&(C=O(-s.italic))}var E;if(a&&o){c=Math.max(c,B,a.depth+.25*l.xHeight),d=Math.max(d,l.sub2);var F=l.defaultRuleThickness,M=4*F;if(c-a.depth-(o.height-d)<M){d=M-(c-a.depth)+o.height;var H=.8*l.xHeight-(c-a.depth);H>0&&(c+=H,d-=H)}var L=[{type:"elem",elem:o,shift:d,marginRight:x,marginLeft:C},{type:"elem",elem:a,shift:-c,marginRight:x}];E=S.makeVList({positionType:"individualShift",children:L},e)}else if(o){d=Math.max(d,l.sub1,o.height-.8*l.xHeight);var N=[{type:"elem",elem:o,marginLeft:C,marginRight:x}];E=S.makeVList({positionType:"shift",positionData:d,children:N},e)}else if(a)c=Math.max(c,B,a.depth+.25*l.xHeight),E=S.makeVList({positionType:"shift",positionData:-c,children:[{type:"elem",elem:a,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var Y=Zs(s,"right")||"mord";return S.makeSpan([Y],[s,S.makeSpan(["msupsub"],[E])],e)},mathmlBuilder(r,e){var t=!1,A,n;r.base&&r.base.type==="horizBrace"&&(n=!!r.sup,n===r.base.isOver&&(t=!0,A=r.base.isOver)),r.base&&(r.base.type==="op"||r.base.type==="operatorname")&&(r.base.parentIsSupSub=!0);var i=[de(r.base,e)];r.sub&&i.push(de(r.sub,e)),r.sup&&i.push(de(r.sup,e));var s;if(t)s=A?"mover":"munder";else if(r.sub)if(r.sup){var l=r.base;l&&l.type==="op"&&l.limits&&e.style===J.DISPLAY||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(e.style===J.DISPLAY||l.limits)?s="munderover":s="msubsup"}else{var o=r.base;o&&o.type==="op"&&o.limits&&(e.style===J.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||e.style===J.DISPLAY)?s="munder":s="msub"}else{var a=r.base;a&&a.type==="op"&&a.limits&&(e.style===J.DISPLAY||a.alwaysHandleSupSub)||a&&a.type==="operatorname"&&a.alwaysHandleSupSub&&(a.limits||e.style===J.DISPLAY)?s="mover":s="msup"}return new D.MathNode(s,i)}}),yA({type:"atom",htmlBuilder(r,e){return S.mathsym(r.text,r.mode,e,["m"+r.family])},mathmlBuilder(r,e){var t=new D.MathNode("mo",[ot(r.text,r.mode)]);if(r.family==="bin"){var A=ta(r,e);A==="bold-italic"&&t.setAttribute("mathvariant",A)}else r.family==="punct"?t.setAttribute("separator","true"):(r.family==="open"||r.family==="close")&&t.setAttribute("stretchy","false");return t}});var nd={mi:"italic",mn:"normal",mtext:"normal"};yA({type:"mathord",htmlBuilder(r,e){return S.makeOrd(r,e,"mathord")},mathmlBuilder(r,e){var t=new D.MathNode("mi",[ot(r.text,r.mode,e)]),A=ta(r,e)||"italic";return A!==nd[t.type]&&t.setAttribute("mathvariant",A),t}}),yA({type:"textord",htmlBuilder(r,e){return S.makeOrd(r,e,"textord")},mathmlBuilder(r,e){var t=ot(r.text,r.mode,e),A=ta(r,e)||"normal",n;return r.mode==="text"?n=new D.MathNode("mtext",[t]):/[0-9]/.test(r.text)?n=new D.MathNode("mn",[t]):r.text==="\\prime"?n=new D.MathNode("mo",[t]):n=new D.MathNode("mi",[t]),A!==nd[n.type]&&n.setAttribute("mathvariant",A),n}});var Ba={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},va={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};yA({type:"spacing",htmlBuilder(r,e){if(va.hasOwnProperty(r.text)){var t=va[r.text].className||"";if(r.mode==="text"){var A=S.makeOrd(r,e,"textord");return A.classes.push(t),A}else return S.makeSpan(["mspace",t],[S.mathsym(r.text,r.mode,e)],e)}else{if(Ba.hasOwnProperty(r.text))return S.makeSpan(["mspace",Ba[r.text]],[],e);throw new P('Unknown type of space "'+r.text+'"')}},mathmlBuilder(r,e){var t;if(va.hasOwnProperty(r.text))t=new D.MathNode("mtext",[new D.TextNode(" ")]);else{if(Ba.hasOwnProperty(r.text))return new D.MathNode("mspace");throw new P('Unknown type of space "'+r.text+'"')}return t}});var id=()=>{var r=new D.MathNode("mtd",[]);return r.setAttribute("width","50%"),r};yA({type:"tag",mathmlBuilder(r,e){var t=new D.MathNode("mtable",[new D.MathNode("mtr",[id(),new D.MathNode("mtd",[iA(r.body,e)]),id(),new D.MathNode("mtd",[iA(r.tag,e)])])]);return t.setAttribute("width","100%"),t}});var sd={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},ad={"\\textbf":"textbf","\\textmd":"textmd"},hB={"\\textit":"textit","\\textup":"textup"},od=(r,e)=>{var t=r.font;if(t){if(sd[t])return e.withTextFontFamily(sd[t]);if(ad[t])return e.withTextFontWeight(ad[t]);if(t==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(hB[t])};z({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:A}=r,n=e[0];return{type:"text",mode:t.mode,body:Qe(n),font:A}},htmlBuilder(r,e){var t=od(r,e),A=Me(r.body,t,!0);return S.makeSpan(["mord","text"],A,t)},mathmlBuilder(r,e){var t=od(r,e);return iA(r.body,t)}}),z({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"underline",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=se(r.body,e),A=S.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,i=S.makeVList({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:A},{type:"kern",size:3*n},{type:"elem",elem:t}]},e);return S.makeSpan(["mord","underline"],[i],e)},mathmlBuilder(r,e){var t=new D.MathNode("mo",[new D.TextNode("‾")]);t.setAttribute("stretchy","true");var A=new D.MathNode("munder",[de(r.body,e),t]);return A.setAttribute("accentunder","true"),A}}),z({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"vcenter",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=se(r.body,e),A=e.fontMetrics().axisHeight,n=.5*(t.height-A-(t.depth+A));return S.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){return new D.MathNode("mpadded",[de(r.body,e)],["vcenter"])}}),z({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(r,e,t){throw new P("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(r,e){for(var t=ld(r),A=[],n=e.havingStyle(e.style.text()),i=0;i<t.length;i++){var s=t[i];s==="~"&&(s="\\textasciitilde"),A.push(S.makeSymbol(s,"Typewriter-Regular",r.mode,n,["mord","texttt"]))}return S.makeSpan(["mord","text"].concat(n.sizingClasses(e)),S.tryCombineChars(A),n)},mathmlBuilder(r,e){var t=new D.TextNode(ld(r)),A=new D.MathNode("mtext",[t]);return A.setAttribute("mathvariant","monospace"),A}});var ld=r=>r.body.replace(/ /g,r.star?"␣":" "),bA=uc,cd=`[ \r
2756
+ ]`,uB="\\\\[a-zA-Z@]+",pB="\\\\[^\uD800-\uDFFF]",gB="("+uB+")"+cd+"*",fB=`\\\\(
2757
+ |[ \r ]+
2758
+ ?)[ \r ]*`,ya="[̀-ͯ]",mB=new RegExp(ya+"+$"),wB="("+cd+"+)|"+(fB+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(ya+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(ya+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+gB)+("|"+pB+")");class dd{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(wB,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new nt("EOF",new je(this,t,t));var A=this.tokenRegex.exec(e);if(A===null||A.index!==t)throw new P("Unexpected character: '"+e[t]+"'",new nt(e[t],new je(this,t,t+1)));var n=A[6]||A[3]||(A[2]?"\\ ":" ");if(this.catcodes[n]===14){var i=e.indexOf(`
2759
+ `,this.tokenRegex.lastIndex);return i===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=i+1,this.lex()}return new nt(n,new je(this,t,this.tokenRegex.lastIndex))}}class BB{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new P("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(e[t]==null?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,A){if(A===void 0&&(A=!1),A){for(var n=0;n<this.undefStack.length;n++)delete this.undefStack[n][e];this.undefStack.length>0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var i=this.undefStack[this.undefStack.length-1];i&&!i.hasOwnProperty(e)&&(i[e]=this.current[e])}t==null?delete this.current[e]:this.current[e]=t}}var vB=Rc;w("\\noexpand",function(r){var e=r.popToken();return r.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}}),w("\\expandafter",function(r){var e=r.popToken();return r.expandOnce(!0),{tokens:[e],numArgs:0}}),w("\\@firstoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[0],numArgs:0}}),w("\\@secondoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[1],numArgs:0}}),w("\\@ifnextchar",function(r){var e=r.consumeArgs(3);r.consumeSpaces();var t=r.future();return e[0].length===1&&e[0][0].text===t.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}}),w("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),w("\\TextOrMath",function(r){var e=r.consumeArgs(2);return r.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var hd={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};w("\\char",function(r){var e=r.popToken(),t,A="";if(e.text==="'")t=8,e=r.popToken();else if(e.text==='"')t=16,e=r.popToken();else if(e.text==="`")if(e=r.popToken(),e.text[0]==="\\")A=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new P("\\char` missing argument");A=e.text.charCodeAt(0)}else t=10;if(t){if(A=hd[e.text],A==null||A>=t)throw new P("Invalid base-"+t+" digit "+e.text);for(var n;(n=hd[r.future().text])!=null&&n<t;)A*=t,A+=n,r.popToken()}return"\\@char{"+A+"}"});var ba=(r,e,t)=>{var A=r.consumeArg().tokens;if(A.length!==1)throw new P("\\newcommand's first argument must be a macro name");var n=A[0].text,i=r.isDefined(n);if(i&&!e)throw new P("\\newcommand{"+n+"} attempting to redefine "+(n+"; use \\renewcommand"));if(!i&&!t)throw new P("\\renewcommand{"+n+"} when command "+n+" does not yet exist; use \\newcommand");var s=0;if(A=r.consumeArg().tokens,A.length===1&&A[0].text==="["){for(var a="",o=r.expandNextToken();o.text!=="]"&&o.text!=="EOF";)a+=o.text,o=r.expandNextToken();if(!a.match(/^\s*[0-9]+\s*$/))throw new P("Invalid number of arguments: "+a);s=parseInt(a),A=r.consumeArg().tokens}return r.macros.set(n,{tokens:A,numArgs:s}),""};w("\\newcommand",r=>ba(r,!1,!0)),w("\\renewcommand",r=>ba(r,!0,!1)),w("\\providecommand",r=>ba(r,!0,!0)),w("\\message",r=>{var e=r.consumeArgs(1)[0];return""}),w("\\errmessage",r=>{var e=r.consumeArgs(1)[0];return""}),w("\\show",r=>{var e=r.popToken(),t=e.text;return""}),w("\\bgroup","{"),w("\\egroup","}"),w("~","\\nobreakspace"),w("\\lq","`"),w("\\rq","'"),w("\\aa","\\r a"),w("\\AA","\\r A"),w("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}"),w("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"),w("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),w("ℬ","\\mathscr{B}"),w("ℰ","\\mathscr{E}"),w("ℱ","\\mathscr{F}"),w("ℋ","\\mathscr{H}"),w("ℐ","\\mathscr{I}"),w("ℒ","\\mathscr{L}"),w("ℳ","\\mathscr{M}"),w("ℛ","\\mathscr{R}"),w("ℭ","\\mathfrak{C}"),w("ℌ","\\mathfrak{H}"),w("ℨ","\\mathfrak{Z}"),w("\\Bbbk","\\Bbb{k}"),w("·","\\cdotp"),w("\\llap","\\mathllap{\\textrm{#1}}"),w("\\rlap","\\mathrlap{\\textrm{#1}}"),w("\\clap","\\mathclap{\\textrm{#1}}"),w("\\mathstrut","\\vphantom{(}"),w("\\underbar","\\underline{\\text{#1}}"),w("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'),w("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),w("\\ne","\\neq"),w("≠","\\neq"),w("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),w("∉","\\notin"),w("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),w("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),w("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),w("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),w("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),w("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),w("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),w("⟂","\\perp"),w("‼","\\mathclose{!\\mkern-0.8mu!}"),w("∌","\\notni"),w("⌜","\\ulcorner"),w("⌝","\\urcorner"),w("⌞","\\llcorner"),w("⌟","\\lrcorner"),w("©","\\copyright"),w("®","\\textregistered"),w("️","\\textregistered"),w("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),w("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),w("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),w("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),w("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}"),w("⋮","\\vdots"),w("\\varGamma","\\mathit{\\Gamma}"),w("\\varDelta","\\mathit{\\Delta}"),w("\\varTheta","\\mathit{\\Theta}"),w("\\varLambda","\\mathit{\\Lambda}"),w("\\varXi","\\mathit{\\Xi}"),w("\\varPi","\\mathit{\\Pi}"),w("\\varSigma","\\mathit{\\Sigma}"),w("\\varUpsilon","\\mathit{\\Upsilon}"),w("\\varPhi","\\mathit{\\Phi}"),w("\\varPsi","\\mathit{\\Psi}"),w("\\varOmega","\\mathit{\\Omega}"),w("\\substack","\\begin{subarray}{c}#1\\end{subarray}"),w("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"),w("\\boxed","\\fbox{$\\displaystyle{#1}$}"),w("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),w("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),w("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");var ud={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};w("\\dots",function(r){var e="\\dotso",t=r.expandAfterFuture().text;return t in ud?e=ud[t]:(t.slice(0,4)==="\\not"||t in ge.math&&X.contains(["bin","rel"],ge.math[t].group))&&(e="\\dotsb"),e});var Ca={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};w("\\dotso",function(r){var e=r.future().text;return e in Ca?"\\ldots\\,":"\\ldots"}),w("\\dotsc",function(r){var e=r.future().text;return e in Ca&&e!==","?"\\ldots\\,":"\\ldots"}),w("\\cdots",function(r){var e=r.future().text;return e in Ca?"\\@cdots\\,":"\\@cdots"}),w("\\dotsb","\\cdots"),w("\\dotsm","\\cdots"),w("\\dotsi","\\!\\cdots"),w("\\dotsx","\\ldots\\,"),w("\\DOTSI","\\relax"),w("\\DOTSB","\\relax"),w("\\DOTSX","\\relax"),w("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),w("\\,","\\tmspace+{3mu}{.1667em}"),w("\\thinspace","\\,"),w("\\>","\\mskip{4mu}"),w("\\:","\\tmspace+{4mu}{.2222em}"),w("\\medspace","\\:"),w("\\;","\\tmspace+{5mu}{.2777em}"),w("\\thickspace","\\;"),w("\\!","\\tmspace-{3mu}{.1667em}"),w("\\negthinspace","\\!"),w("\\negmedspace","\\tmspace-{4mu}{.2222em}"),w("\\negthickspace","\\tmspace-{5mu}{.277em}"),w("\\enspace","\\kern.5em "),w("\\enskip","\\hskip.5em\\relax"),w("\\quad","\\hskip1em\\relax"),w("\\qquad","\\hskip2em\\relax"),w("\\tag","\\@ifstar\\tag@literal\\tag@paren"),w("\\tag@paren","\\tag@literal{({#1})}"),w("\\tag@literal",r=>{if(r.macros.get("\\df@tag"))throw new P("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),w("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),w("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),w("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),w("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),w("\\newline","\\\\\\relax"),w("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var pd=O(bt["Main-Regular"][84][1]-.7*bt["Main-Regular"][65][1]);w("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+pd+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}"),w("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+pd+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}"),w("\\hspace","\\@ifstar\\@hspacer\\@hspace"),w("\\@hspace","\\hskip #1\\relax"),w("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),w("\\ordinarycolon",":"),w("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),w("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),w("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),w("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),w("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),w("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),w("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),w("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),w("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),w("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),w("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),w("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),w("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),w("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),w("∷","\\dblcolon"),w("∹","\\eqcolon"),w("≔","\\coloneqq"),w("≕","\\eqqcolon"),w("⩴","\\Coloneqq"),w("\\ratio","\\vcentcolon"),w("\\coloncolon","\\dblcolon"),w("\\colonequals","\\coloneqq"),w("\\coloncolonequals","\\Coloneqq"),w("\\equalscolon","\\eqqcolon"),w("\\equalscoloncolon","\\Eqqcolon"),w("\\colonminus","\\coloneq"),w("\\coloncolonminus","\\Coloneq"),w("\\minuscolon","\\eqcolon"),w("\\minuscoloncolon","\\Eqcolon"),w("\\coloncolonapprox","\\Colonapprox"),w("\\coloncolonsim","\\Colonsim"),w("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),w("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),w("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),w("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),w("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),w("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),w("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),w("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),w("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),w("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),w("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),w("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),w("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),w("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),w("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),w("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),w("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),w("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),w("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),w("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),w("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),w("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),w("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),w("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),w("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),w("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),w("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),w("\\imath","\\html@mathml{\\@imath}{ı}"),w("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),w("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),w("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),w("⟦","\\llbracket"),w("⟧","\\rrbracket"),w("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),w("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),w("⦃","\\lBrace"),w("⦄","\\rBrace"),w("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),w("⦵","\\minuso"),w("\\darr","\\downarrow"),w("\\dArr","\\Downarrow"),w("\\Darr","\\Downarrow"),w("\\lang","\\langle"),w("\\rang","\\rangle"),w("\\uarr","\\uparrow"),w("\\uArr","\\Uparrow"),w("\\Uarr","\\Uparrow"),w("\\N","\\mathbb{N}"),w("\\R","\\mathbb{R}"),w("\\Z","\\mathbb{Z}"),w("\\alef","\\aleph"),w("\\alefsym","\\aleph"),w("\\Alpha","\\mathrm{A}"),w("\\Beta","\\mathrm{B}"),w("\\bull","\\bullet"),w("\\Chi","\\mathrm{X}"),w("\\clubs","\\clubsuit"),w("\\cnums","\\mathbb{C}"),w("\\Complex","\\mathbb{C}"),w("\\Dagger","\\ddagger"),w("\\diamonds","\\diamondsuit"),w("\\empty","\\emptyset"),w("\\Epsilon","\\mathrm{E}"),w("\\Eta","\\mathrm{H}"),w("\\exist","\\exists"),w("\\harr","\\leftrightarrow"),w("\\hArr","\\Leftrightarrow"),w("\\Harr","\\Leftrightarrow"),w("\\hearts","\\heartsuit"),w("\\image","\\Im"),w("\\infin","\\infty"),w("\\Iota","\\mathrm{I}"),w("\\isin","\\in"),w("\\Kappa","\\mathrm{K}"),w("\\larr","\\leftarrow"),w("\\lArr","\\Leftarrow"),w("\\Larr","\\Leftarrow"),w("\\lrarr","\\leftrightarrow"),w("\\lrArr","\\Leftrightarrow"),w("\\Lrarr","\\Leftrightarrow"),w("\\Mu","\\mathrm{M}"),w("\\natnums","\\mathbb{N}"),w("\\Nu","\\mathrm{N}"),w("\\Omicron","\\mathrm{O}"),w("\\plusmn","\\pm"),w("\\rarr","\\rightarrow"),w("\\rArr","\\Rightarrow"),w("\\Rarr","\\Rightarrow"),w("\\real","\\Re"),w("\\reals","\\mathbb{R}"),w("\\Reals","\\mathbb{R}"),w("\\Rho","\\mathrm{P}"),w("\\sdot","\\cdot"),w("\\sect","\\S"),w("\\spades","\\spadesuit"),w("\\sub","\\subset"),w("\\sube","\\subseteq"),w("\\supe","\\supseteq"),w("\\Tau","\\mathrm{T}"),w("\\thetasym","\\vartheta"),w("\\weierp","\\wp"),w("\\Zeta","\\mathrm{Z}"),w("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),w("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),w("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),w("\\bra","\\mathinner{\\langle{#1}|}"),w("\\ket","\\mathinner{|{#1}\\rangle}"),w("\\braket","\\mathinner{\\langle{#1}\\rangle}"),w("\\Bra","\\left\\langle#1\\right|"),w("\\Ket","\\left|#1\\right\\rangle");var gd=r=>e=>{var t=e.consumeArg().tokens,A=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,s=e.macros.get("|"),a=e.macros.get("\\|");e.macros.beginGroup();var o=d=>g=>{r&&(g.macros.set("|",s),n.length&&g.macros.set("\\|",a));var p=d;if(!d&&n.length){var m=g.future();m.text==="|"&&(g.popToken(),p=!0)}return{tokens:p?n:A,numArgs:0}};e.macros.set("|",o(!1)),n.length&&e.macros.set("\\|",o(!0));var l=e.consumeArg().tokens,c=e.expandTokens([...i,...l,...t]);return e.macros.endGroup(),{tokens:c.reverse(),numArgs:0}};w("\\bra@ket",gd(!1)),w("\\bra@set",gd(!0)),w("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),w("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),w("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),w("\\angln","{\\angl n}"),w("\\blue","\\textcolor{##6495ed}{#1}"),w("\\orange","\\textcolor{##ffa500}{#1}"),w("\\pink","\\textcolor{##ff00af}{#1}"),w("\\red","\\textcolor{##df0030}{#1}"),w("\\green","\\textcolor{##28ae7b}{#1}"),w("\\gray","\\textcolor{gray}{#1}"),w("\\purple","\\textcolor{##9d38bd}{#1}"),w("\\blueA","\\textcolor{##ccfaff}{#1}"),w("\\blueB","\\textcolor{##80f6ff}{#1}"),w("\\blueC","\\textcolor{##63d9ea}{#1}"),w("\\blueD","\\textcolor{##11accd}{#1}"),w("\\blueE","\\textcolor{##0c7f99}{#1}"),w("\\tealA","\\textcolor{##94fff5}{#1}"),w("\\tealB","\\textcolor{##26edd5}{#1}"),w("\\tealC","\\textcolor{##01d1c1}{#1}"),w("\\tealD","\\textcolor{##01a995}{#1}"),w("\\tealE","\\textcolor{##208170}{#1}"),w("\\greenA","\\textcolor{##b6ffb0}{#1}"),w("\\greenB","\\textcolor{##8af281}{#1}"),w("\\greenC","\\textcolor{##74cf70}{#1}"),w("\\greenD","\\textcolor{##1fab54}{#1}"),w("\\greenE","\\textcolor{##0d923f}{#1}"),w("\\goldA","\\textcolor{##ffd0a9}{#1}"),w("\\goldB","\\textcolor{##ffbb71}{#1}"),w("\\goldC","\\textcolor{##ff9c39}{#1}"),w("\\goldD","\\textcolor{##e07d10}{#1}"),w("\\goldE","\\textcolor{##a75a05}{#1}"),w("\\redA","\\textcolor{##fca9a9}{#1}"),w("\\redB","\\textcolor{##ff8482}{#1}"),w("\\redC","\\textcolor{##f9685d}{#1}"),w("\\redD","\\textcolor{##e84d39}{#1}"),w("\\redE","\\textcolor{##bc2612}{#1}"),w("\\maroonA","\\textcolor{##ffbde0}{#1}"),w("\\maroonB","\\textcolor{##ff92c6}{#1}"),w("\\maroonC","\\textcolor{##ed5fa6}{#1}"),w("\\maroonD","\\textcolor{##ca337c}{#1}"),w("\\maroonE","\\textcolor{##9e034e}{#1}"),w("\\purpleA","\\textcolor{##ddd7ff}{#1}"),w("\\purpleB","\\textcolor{##c6b9fc}{#1}"),w("\\purpleC","\\textcolor{##aa87ff}{#1}"),w("\\purpleD","\\textcolor{##7854ab}{#1}"),w("\\purpleE","\\textcolor{##543b78}{#1}"),w("\\mintA","\\textcolor{##f5f9e8}{#1}"),w("\\mintB","\\textcolor{##edf2df}{#1}"),w("\\mintC","\\textcolor{##e0e5cc}{#1}"),w("\\grayA","\\textcolor{##f6f7f7}{#1}"),w("\\grayB","\\textcolor{##f0f1f2}{#1}"),w("\\grayC","\\textcolor{##e3e5e6}{#1}"),w("\\grayD","\\textcolor{##d6d8da}{#1}"),w("\\grayE","\\textcolor{##babec2}{#1}"),w("\\grayF","\\textcolor{##888d93}{#1}"),w("\\grayG","\\textcolor{##626569}{#1}"),w("\\grayH","\\textcolor{##3b3e40}{#1}"),w("\\grayI","\\textcolor{##21242c}{#1}"),w("\\kaBlue","\\textcolor{##314453}{#1}"),w("\\kaGreen","\\textcolor{##71B307}{#1}");var fd={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class yB{constructor(e,t,A){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new BB(vB,t.macros),this.mode=A,this.stack=[]}feed(e){this.lexer=new dd(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,A,n;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;t=this.popToken(),{tokens:n,end:A}=this.consumeArg(["]"])}else({tokens:n,start:t,end:A}=this.consumeArg());return this.pushToken(new nt("EOF",A.loc)),this.pushTokens(n),t.range(A,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var t=[],A=e&&e.length>0;A||this.consumeSpaces();var n=this.future(),i,s=0,a=0;do{if(i=this.popToken(),t.push(i),i.text==="{")++s;else if(i.text==="}"){if(--s,s===-1)throw new P("Extra }",i)}else if(i.text==="EOF")throw new P("Unexpected end of input in a macro argument, expected '"+(e&&A?e[a]:"}")+"'",i);if(e&&A)if((s===0||s===1&&e[a]==="{")&&i.text===e[a]){if(++a,a===e.length){t.splice(-a,a);break}}else a=0}while(s!==0||A);return n.text==="{"&&t[t.length-1].text==="}"&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:n,end:i}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new P("The length of delimiters doesn't match the number of args!");for(var A=t[0],n=0;n<A.length;n++){var i=this.popToken();if(A[n]!==i.text)throw new P("Use of the macro doesn't match its definition",i)}}for(var s=[],a=0;a<e;a++)s.push(this.consumeArg(t&&t[a+1]).tokens);return s}countExpansion(e){if(this.expansionCount+=e,this.expansionCount>this.settings.maxExpand)throw new P("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),A=t.text,n=t.noexpand?null:this._getExpansion(A);if(n==null||e&&n.unexpandable){if(e&&n==null&&A[0]==="\\"&&!this.isDefined(A))throw new P("Undefined control sequence: "+A);return this.pushToken(t),!1}this.countExpansion(1);var i=n.tokens,s=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){i=i.slice();for(var a=i.length-1;a>=0;--a){var o=i[a];if(o.text==="#"){if(a===0)throw new P("Incomplete placeholder at end of macro body",o);if(o=i[--a],o.text==="#")i.splice(a+1,1);else if(/^[1-9]$/.test(o.text))i.splice(a,2,...s[+o.text-1]);else throw new P("Not a valid argument number",o)}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new nt(e)]):void 0}expandTokens(e){var t=[],A=this.stack.length;for(this.pushTokens(e);this.stack.length>A;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(A=>A.text).join("")}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var A=this.lexer.catcodes[e];if(A!=null&&A!==13)return}var n=typeof t=="function"?t(this):t;if(typeof n=="string"){var i=0;if(n.indexOf("#")!==-1)for(var s=n.replace(/##/g,"");s.indexOf("#"+(i+1))!==-1;)++i;for(var a=new dd(n,this.settings),o=[],l=a.lex();l.text!=="EOF";)o.push(l),l=a.lex();o.reverse();var c={tokens:o,numArgs:i};return c}return n}isDefined(e){return this.macros.has(e)||bA.hasOwnProperty(e)||ge.math.hasOwnProperty(e)||ge.text.hasOwnProperty(e)||fd.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t=="string"||typeof t=="function"||!t.unexpandable:bA.hasOwnProperty(e)&&!bA[e].primitive}}var md=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,ci=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),xa={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},wd={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class di{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new yB(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new P("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new nt("}")),this.gullet.pushTokens(e);var A=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,A}parseExpression(e,t){for(var A=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(di.endOfExpression.indexOf(n.text)!==-1||t&&n.text===t||e&&bA[n.text]&&bA[n.text].infix)break;var i=this.parseAtom(t);if(i){if(i.type==="internal")continue}else break;A.push(i)}return this.mode==="text"&&this.formLigatures(A),this.handleInfixNodes(A)}handleInfixNodes(e){for(var t=-1,A,n=0;n<e.length;n++)if(e[n].type==="infix"){if(t!==-1)throw new P("only one infix operator per group",e[n].token);t=n,A=e[n].replaceWith}if(t!==-1&&A){var i,s,a=e.slice(0,t),o=e.slice(t+1);a.length===1&&a[0].type==="ordgroup"?i=a[0]:i={type:"ordgroup",mode:this.mode,body:a},o.length===1&&o[0].type==="ordgroup"?s=o[0]:s={type:"ordgroup",mode:this.mode,body:o};var l;return A==="\\\\abovefrac"?l=this.callFunction(A,[i,e[t],s],[]):l=this.callFunction(A,[i,s],[]),[l]}else return e}handleSupSubscript(e){var t=this.fetch(),A=t.text;this.consume(),this.consumeSpaces();var n=this.parseGroup(e);if(!n)throw new P("Expected group after '"+A+"'",t);return n}formatUnsupportedCmd(e){for(var t=[],A=0;A<e.length;A++)t.push({type:"textord",mode:"text",text:e[A]});var n={type:"text",mode:this.mode,body:t},i={type:"color",mode:this.mode,color:this.settings.errorColor,body:[n]};return i}parseAtom(e){var t=this.parseGroup("atom",e);if(this.mode==="text")return t;for(var A,n;;){this.consumeSpaces();var i=this.fetch();if(i.text==="\\limits"||i.text==="\\nolimits"){if(t&&t.type==="op"){var s=i.text==="\\limits";t.limits=s,t.alwaysHandleSupSub=!0}else if(t&&t.type==="operatorname")t.alwaysHandleSupSub&&(t.limits=i.text==="\\limits");else throw new P("Limit controls must follow a math operator",i);this.consume()}else if(i.text==="^"){if(A)throw new P("Double superscript",i);A=this.handleSupSubscript("superscript")}else if(i.text==="_"){if(n)throw new P("Double subscript",i);n=this.handleSupSubscript("subscript")}else if(i.text==="'"){if(A)throw new P("Double superscript",i);var a={type:"textord",mode:this.mode,text:"\\prime"},o=[a];for(this.consume();this.fetch().text==="'";)o.push(a),this.consume();this.fetch().text==="^"&&o.push(this.handleSupSubscript("superscript")),A={type:"ordgroup",mode:this.mode,body:o}}else if(ci[i.text]){var l=md.test(i.text),c=[];for(c.push(new nt(ci[i.text])),this.consume();;){var d=this.fetch().text;if(!ci[d]||md.test(d)!==l)break;c.unshift(new nt(ci[d])),this.consume()}var g=this.subparse(c);l?n={type:"ordgroup",mode:"math",body:g}:A={type:"ordgroup",mode:"math",body:g}}else break}return A||n?{type:"supsub",mode:this.mode,base:t,sup:A,sub:n}:t}parseFunction(e,t){var A=this.fetch(),n=A.text,i=bA[n];if(!i)return null;if(this.consume(),t&&t!=="atom"&&!i.allowedInArgument)throw new P("Got function '"+n+"' with no arguments"+(t?" as "+t:""),A);if(this.mode==="text"&&!i.allowedInText)throw new P("Can't use function '"+n+"' in text mode",A);if(this.mode==="math"&&i.allowedInMath===!1)throw new P("Can't use function '"+n+"' in math mode",A);var{args:s,optArgs:a}=this.parseArguments(n,i);return this.callFunction(n,s,a,A,e)}callFunction(e,t,A,n,i){var s={funcName:e,parser:this,token:n,breakOnTokenText:i},a=bA[e];if(a&&a.handler)return a.handler(s,t,A);throw new P("No function handler for "+e)}parseArguments(e,t){var A=t.numArgs+t.numOptionalArgs;if(A===0)return{args:[],optArgs:[]};for(var n=[],i=[],s=0;s<A;s++){var a=t.argTypes&&t.argTypes[s],o=s<t.numOptionalArgs;(t.primitive&&a==null||t.type==="sqrt"&&s===1&&i[0]==null)&&(a="primitive");var l=this.parseGroupOfType("argument to '"+e+"'",a,o);if(o)i.push(l);else if(l!=null)n.push(l);else throw new P("Null argument, please report this as a bug")}return{args:n,optArgs:i}}parseGroupOfType(e,t,A){switch(t){case"color":return this.parseColorGroup(A);case"size":return this.parseSizeGroup(A);case"url":return this.parseUrlGroup(A);case"math":case"text":return this.parseArgumentGroup(A,t);case"hbox":{var n=this.parseArgumentGroup(A,"text");return n!=null?{type:"styling",mode:n.mode,body:[n],style:"text"}:null}case"raw":{var i=this.parseStringGroup("raw",A);return i!=null?{type:"raw",mode:"text",string:i.text}:null}case"primitive":{if(A)throw new P("A primitive argument cannot be optional");var s=this.parseGroup(e);if(s==null)throw new P("Expected group as "+e,this.fetch());return s}case"original":case null:case void 0:return this.parseArgumentGroup(A);default:throw new P("Unknown group type as "+e,this.fetch())}}consumeSpaces(){for(;this.fetch().text===" ";)this.consume()}parseStringGroup(e,t){var A=this.gullet.scanArgument(t);if(A==null)return null;for(var n="",i;(i=this.fetch()).text!=="EOF";)n+=i.text,this.consume();return this.consume(),A.text=n,A}parseRegexGroup(e,t){for(var A=this.fetch(),n=A,i="",s;(s=this.fetch()).text!=="EOF"&&e.test(i+s.text);)n=s,i+=n.text,this.consume();if(i==="")throw new P("Invalid "+t+": '"+A.text+"'",A);return A.range(n,i)}parseColorGroup(e){var t=this.parseStringGroup("color",e);if(t==null)return null;var A=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(t.text);if(!A)throw new P("Invalid color: '"+t.text+"'",t);var n=A[0];return/^[0-9a-f]{6}$/i.test(n)&&(n="#"+n),{type:"color-token",mode:this.mode,color:n}}parseSizeGroup(e){var t,A=!1;if(this.gullet.consumeSpaces(),!e&&this.gullet.future().text!=="{"?t=this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size"):t=this.parseStringGroup("size",e),!t)return null;!e&&t.text.length===0&&(t.text="0pt",A=!0);var n=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!n)throw new P("Invalid size: '"+t.text+"'",t);var i={number:+(n[1]+n[2]),unit:n[3]};if(!Zl(i))throw new P("Invalid unit: '"+i.unit+"'",t);return{type:"size",mode:this.mode,value:i,isBlank:A}}parseUrlGroup(e){this.gullet.lexer.setCatcode("%",13),this.gullet.lexer.setCatcode("~",12);var t=this.parseStringGroup("url",e);if(this.gullet.lexer.setCatcode("%",14),this.gullet.lexer.setCatcode("~",13),t==null)return null;var A=t.text.replace(/\\([#$%&~_^{}])/g,"$1");return{type:"url",mode:this.mode,url:A}}parseArgumentGroup(e,t){var A=this.gullet.scanArgument(e);if(A==null)return null;var n=this.mode;t&&this.switchMode(t),this.gullet.beginGroup();var i=this.parseExpression(!1,"EOF");this.expect("EOF"),this.gullet.endGroup();var s={type:"ordgroup",mode:this.mode,loc:A.loc,body:i};return t&&this.switchMode(n),s}parseGroup(e,t){var A=this.fetch(),n=A.text,i;if(n==="{"||n==="\\begingroup"){this.consume();var s=n==="{"?"}":"\\endgroup";this.gullet.beginGroup();var a=this.parseExpression(!1,s),o=this.fetch();this.expect(s),this.gullet.endGroup(),i={type:"ordgroup",mode:this.mode,loc:je.range(A,o),body:a,semisimple:n==="\\begingroup"||void 0}}else if(i=this.parseFunction(t,e)||this.parseSymbol(),i==null&&n[0]==="\\"&&!fd.hasOwnProperty(n)){if(this.settings.throwOnError)throw new P("Undefined control sequence: "+n,A);i=this.formatUnsupportedCmd(n),this.consume()}return i}formLigatures(e){for(var t=e.length-1,A=0;A<t;++A){var n=e[A],i=n.text;i==="-"&&e[A+1].text==="-"&&(A+1<t&&e[A+2].text==="-"?(e.splice(A,3,{type:"textord",mode:"text",loc:je.range(n,e[A+2]),text:"---"}),t-=2):(e.splice(A,2,{type:"textord",mode:"text",loc:je.range(n,e[A+1]),text:"--"}),t-=1)),(i==="'"||i==="`")&&e[A+1].text===i&&(e.splice(A,2,{type:"textord",mode:"text",loc:je.range(n,e[A+1]),text:i+i}),t-=1)}}parseSymbol(){var e=this.fetch(),t=e.text;if(/^\\verb[^a-zA-Z]/.test(t)){this.consume();var A=t.slice(5),n=A.charAt(0)==="*";if(n&&(A=A.slice(1)),A.length<2||A.charAt(0)!==A.slice(-1))throw new P(`\\verb assertion failed --
2760
+ please report what input caused this bug`);return A=A.slice(1,-1),{type:"verb",mode:"text",body:A,star:n}}wd.hasOwnProperty(t[0])&&!ge[this.mode][t[0]]&&(this.settings.strict&&this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Accented Unicode text character "'+t[0]+'" used in math mode',e),t=wd[t[0]]+t.slice(1));var i=mB.exec(t);i&&(t=t.substring(0,i.index),t==="i"?t="ı":t==="j"&&(t="ȷ"));var s;if(ge[this.mode][t]){this.settings.strict&&this.mode==="math"&&_s.indexOf(t)>=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var a=ge[this.mode][t].group,o=je.range(e),l;if(l2.hasOwnProperty(a)){var c=a;l={type:"atom",mode:this.mode,family:c,loc:o,text:t}}else l={type:a,mode:this.mode,loc:o,text:t};s=l}else if(t.charCodeAt(0)>=128)this.settings.strict&&(Xl(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:je.range(e),text:t};else return null;if(this.consume(),i)for(var d=0;d<i[0].length;d++){var g=i[0][d];if(!xa[g])throw new P("Unknown accent ' "+g+"'",e);var p=xa[g][this.mode]||xa[g].text;if(!p)throw new P("Accent "+g+" unsupported in "+this.mode+" mode",e);s={type:"accent",mode:this.mode,loc:je.range(e),label:p,isStretchy:!1,isShifty:!0,base:s}}return s}}di.endOfExpression=["}","\\endgroup","\\end","\\right","&"];var Qa=function(e,t){if(!(typeof e=="string"||e instanceof String))throw new TypeError("KaTeX can only parse string typed expression");var A=new di(e,t);delete A.gullet.macros.current["\\df@tag"];var n=A.parse();if(delete A.gullet.macros.current["\\current@color"],delete A.gullet.macros.current["\\color"],A.gullet.macros.get("\\df@tag")){if(!t.displayMode)throw new P("\\tag works only in display equations");n=[{type:"tag",mode:"text",body:n,tag:A.subparse([new nt("\\df@tag")])}]}return n},Bd=function(e,t,A){t.textContent="";var n=Ea(e,A).toNode();t.appendChild(n)};typeof document<"u"&&document.compatMode!=="CSS1Compat"&&(typeof console<"u",Bd=function(){throw new P("KaTeX doesn't work in quirks mode.")});var bB=function(e,t){var A=Ea(e,t).toMarkup();return A},CB=function(e,t){var A=new Ns(t);return Qa(e,A)},vd=function(e,t,A){if(A.throwOnError||!(e instanceof P))throw e;var n=S.makeSpan(["katex-error"],[new st(t)]);return n.setAttribute("title",e.toString()),n.setAttribute("style","color:"+A.errorColor),n},Ea=function(e,t){var A=new Ns(t);try{var n=Qa(e,A);return k2(n,e,A)}catch(i){return vd(i,e,A)}},xB=function(e,t){var A=new Ns(t);try{var n=Qa(e,A);return H2(n,e,A)}catch(i){return vd(i,e,A)}},Mr={version:"0.16.11",render:Bd,renderToString:bB,ParseError:P,SETTINGS_SCHEMA:Gn,__parse:CB,__renderToDomTree:Ea,__renderToHTMLTree:xB,__setFontMetrics:A2,__defineSymbol:h,__defineFunction:z,__defineMacro:w,__domTree:{Span:Qr,Anchor:Vs,SymbolNode:st,SvgNode:Ht,PathNode:rA,LineNode:Ys}},QB=function(e,t,A){for(var n=A,i=0,s=e.length;n<t.length;){var a=t[n];if(i<=0&&t.slice(n,n+s)===e)return n;a==="\\"?n++:a==="{"?i++:a==="}"&&i--,n++}return-1},EB=function(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")},UB=/^\\begin{/,FB=function(e,t){for(var A,n=[],i=new RegExp("("+t.map(l=>EB(l.left)).join("|")+")");A=e.search(i),A!==-1;){A>0&&(n.push({type:"text",data:e.slice(0,A)}),e=e.slice(A));var s=t.findIndex(l=>e.startsWith(l.left));if(A=QB(t[s].right,e,t[s].left.length),A===-1)break;var a=e.slice(0,A+t[s].right.length),o=UB.test(a)?a:e.slice(t[s].left.length,A);n.push({type:"math",data:o,rawData:a,display:t[s].display}),e=e.slice(A+t[s].right.length)}return e!==""&&n.push({type:"text",data:e}),n},IB=function(e,t){var A=FB(e,t.delimiters);if(A.length===1&&A[0].type==="text")return null;for(var n=document.createDocumentFragment(),i=0;i<A.length;i++)if(A[i].type==="text")n.appendChild(document.createTextNode(A[i].data));else{var s=document.createElement("span"),a=A[i].data;t.displayMode=A[i].display;try{t.preProcess&&(a=t.preProcess(a)),Mr.render(a,s,t)}catch(o){if(!(o instanceof Mr.ParseError))throw o;t.errorCallback("KaTeX auto-render: Failed to parse `"+A[i].data+"` with ",o),n.appendChild(document.createTextNode(A[i].rawData));continue}n.appendChild(s)}return n},SB=function r(e,t){for(var A=0;A<e.childNodes.length;A++){var n=e.childNodes[A];if(n.nodeType===3){for(var i=n.textContent,s=n.nextSibling,a=0;s&&s.nodeType===Node.TEXT_NODE;)i+=s.textContent,s=s.nextSibling,a++;var o=IB(i,t);if(o){for(var l=0;l<a;l++)n.nextSibling.remove();A+=o.childNodes.length-1,e.replaceChild(o,n)}else A+=a}else n.nodeType===1&&function(){var c=" "+n.className+" ",d=t.ignoredTags.indexOf(n.nodeName.toLowerCase())===-1&&t.ignoredClasses.every(g=>c.indexOf(" "+g+" ")===-1);d&&r(n,t)}()}},MB=function(e,t){if(!e)throw new Error("No element provided to render");var A={};for(var n in t)t.hasOwnProperty(n)&&(A[n]=t[n]);A.delimiters=A.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],A.ignoredTags=A.ignoredTags||["script","noscript","style","textarea","pre","code","option"],A.ignoredClasses=A.ignoredClasses||[],A.errorCallback=A.errorCallback||console.error,A.macros=A.macros||{},SB(e,A)};function kB(r){if(!r||!r.includes("\\"))return r;const e=[];for(let t=0;t<r.length;t++){const A=r[t];if(A!=="\\"){e.push(A);continue}const n=r[t+1];if(n===" "||n===" "||n===":"||n===";"||n===","||n==="!"){e.push(n),t+=1;continue}e.push("\\")}return e.join("")}function HB(r){if(!r||/\$/.test(r)||yd(r))return r;const e=r.match(/^(.+?:\s*)([a-zA-Z]_\{?\d+\}?[\s\S]+)$/);if(!e)return r;const[,t,A]=e;if(!/[+\-=*^]|\\cdots|\.\.\.|\\ldots/.test(A)||!/[a-zA-Z]_(\{?\d+\}?|\{)/.test(A))return r;const n=A.trim().replace(/\.\.\./g,"\\cdots");return`${t}$${n}$`}function TB(r){return/\$\$[\s\S]+\$\$/.test(r)||/\$[^$\n]+\$/.test(r)||/\\\([\s\S]+\\\)/.test(r)||/\\\[[\s\S]+\\\]/.test(r)}const LB=/\\(?:frac|text|int|sum|sqrt|begin|end|sin|cos|tan|cot|sec|csc|log|ln|lim|partial|infty|alpha|beta|theta|pi|sigma|omega|phi|psi|Delta|Gamma|Lambda|cdot|times|pm|mp|leq|geq|neq|approx|equiv|left|right|mathbf|mathrm|mathit|mathbb|mathcal|dfrac|tfrac|binom|vec|hat|bar|overline|underline|quad|qquad|dots|ldots|operatorname|tag|label|ref|iint|oint|det|gcd|max|min|mod|exp|arg|Re|Im|Pr|sinh|cosh|tanh|arcsin|arccos|arctan)[\s{[(\\]|\\[{}]/;function yd(r){const e=r.trim();return!e||TB(e)?!1:LB.test(e)||/^\\[a-zA-Z]+/.test(e)}function hi(r){if(!r)return r;const e=kB(r);if(!e.includes("\\")&&!e.includes("_"))return e;const t=e.split(`
2761
+ `),A=[];let n=[];const i=()=>{if(n.length===0)return;const s=n.join(`
2762
+ `).trim();s&&A.push(`$$${s}$$`),n=[]};for(const s of t){const a=HB(s);if(yd(a)){n.push(a);continue}i(),A.push(a)}return i(),A.join(`
2763
+ `)}function DB(r,e){return r.trim()?hi(r):r}const PB="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css",bd=[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1}];function NB(){if(typeof document>"u"||document.getElementById("vnr-katex-css"))return;const r=document.createElement("link");r.id="vnr-katex-css",r.rel="stylesheet",r.href=PB,r.crossOrigin="anonymous",document.head.appendChild(r)}function Cd(r){return/(\$\$[\s\S]+?\$\$|\$[^$\n]+?\$|\\\[[\s\S]+?\\\]|\\\([\s\S]+?\\\)|\\begin\{)/.test(r)||/\\(?:frac|text|int|sum|sqrt|begin|end|sin|cos|tan)\b/.test(r)}function ui(r){let e=0,t=r.length,A="none",n=0;for(;e<r.length;){if(r.startsWith("$$",e)){if(A==="double"){A="none",e+=2;continue}if(A==="none"){A="double",n=e,e+=2;continue}}if(A==="none"&&r[e]==="$"&&!r.startsWith("$$",e)){A="dollar",n=e,e+=1;continue}if(A==="dollar"&&r[e]==="$"){A="none",e+=1;continue}if(A==="none"&&r.startsWith("\\[",e)){A="bracket",n=e,e+=2;continue}if(A==="bracket"&&r.startsWith("\\]",e)){A="none",e+=2;continue}if(A==="none"&&r.startsWith("\\(",e)){A="paren",n=e,e+=2;continue}if(A==="paren"&&r.startsWith("\\)",e)){A="none",e+=2;continue}e+=1}return A!=="none"&&(t=n),r.slice(0,t)}function pi(r){const e=hi(r),t=[];let A=0;for(;A<e.length;){let n=null;for(const a of bd){const o=e.indexOf(a.left,A);o!==-1&&(!n||o<n.start||o===n.start&&a.left.length>n.open.length)&&(n={open:a.left,close:a.right,display:a.display,start:o})}if(!n){const a=e.slice(A);a&&t.push({kind:"plain",text:a});break}n.start>A&&t.push({kind:"plain",text:e.slice(A,n.start)});const i=n.start+n.open.length,s=e.indexOf(n.close,i);if(s===-1){t.push({kind:"plain",text:e.slice(n.start)});break}t.push({kind:"math",latex:e.slice(i,s).trim(),display:n.display}),A=s+n.close.length}return t}function OB(r,e){const t=e.split(`
2764
+ `);t.forEach((A,n)=>{A&&r.appendChild(document.createTextNode(A)),n<t.length-1&&r.appendChild(document.createElement("br"))})}function RB(r,e){try{return Mr.renderToString(r,{displayMode:e,throwOnError:!1,strict:"ignore"})}catch{return Mr.renderToString(String.raw`\text{?}`,{displayMode:e,throwOnError:!1})}}function xd(r){const e=document.createElement("span");e.className="vnr-chalk-cursor",e.setAttribute("aria-hidden","true"),e.textContent="|",r.appendChild(e)}function Qd(r,e,t){const A=pi(e);if(r.innerHTML="",r.dataset.empty=e.trim().length===0?"true":"false",A.length===0){if(t!=null&&t.showCursor){const i=document.createElement("div");i.className="vnr-chalk-board-content",xd(i),r.appendChild(i)}return A}const n=document.createElement("div");return n.className="vnr-chalk-board-content",A.forEach((i,s)=>{const a=i.kind==="math"&&i.display,o=document.createElement(a?"div":"span");if(o.className=["vnr-chalk-segment",`vnr-chalk-${i.kind}`,i.kind==="math"?i.display?"vnr-chalk-math-display":"vnr-chalk-math-inline":""].filter(Boolean).join(" "),s===(t==null?void 0:t.revealingSegmentIndex)&&i.kind==="math"){const l=t.revealMs??Math.max(120,i.latex.length*42);o.classList.add("vnr-chalk-revealing"),o.style.setProperty("--vnr-chalk-reveal-ms",`${l}ms`)}i.kind==="plain"?OB(o,i.text):o.innerHTML=RB(i.latex,i.display),n.appendChild(o)}),t!=null&&t.showCursor&&xd(n),r.appendChild(n),A}function KB(r,e,t=!1){const A=hi(r);if(e.textContent=A,e.dataset.empty=r.trim().length===0?"true":"false",t){const n=document.createElement("span");n.className="vnr-chalk-cursor",n.textContent="|",e.appendChild(n)}try{MB(e,{delimiters:[...bd],throwOnError:!1,errorColor:"#ff8a8a",strict:"ignore"})}catch{}}const zB=1.75;function GB(r,e){return Math.max(180,r.latex.length*e*zB)}function VB(r){for(let e=r.length-1;e>=0;e--)if(r[e].kind==="math")return e;return-1}function YB(r){const{surface:e,initialText:t,appendText:A,delayMs:n,schedule:i,shouldContinue:s,onSourceChar:a,onComplete:o}=r;let l=0,c=t;const d=(p,m)=>{const B=ui(p);Qd(e,B,{showCursor:!0,revealingSegmentIndex:m==null?void 0:m.segmentIndex,revealMs:m==null?void 0:m.revealMs}),e.scrollTop=e.scrollHeight},g=()=>{if(!s()||!document.body.contains(e)){d(c);return}if(l>=A.length){d(c),o();return}const p=ui(c),B=pi(p).filter(I=>I.kind==="math").length;c+=A[l],l+=1,a(l);const y=ui(c),x=pi(y);if(x.filter(I=>I.kind==="math").length>B){const I=VB(x),E=x[I];if((E==null?void 0:E.kind)==="math"){const F=GB(E,n);d(c,{segmentIndex:I,revealMs:F}),i(g,F);return}}d(c),i(g,n)};d(c),i(g,n)}const WB="LaTeX did not render — nothing was written on the chalkboard. Use plain text lines for Telugu/English headings. Put each formula on its own line inside $$...$$ (display) or $...$ (inline). Do not send naked \\\\frac, \\\\text, or \\\\int without delimiters. Fix the errors below and call write_latex_text again.",XB=/\\[a-zA-Z]+/;function JB(r){let e=0,t=!1;for(;e<r.length;){if(r.startsWith("$$",e)){t=!t,e+=2;continue}e+=1}return t}function _B(r){try{return Mr.renderToString(r.latex,{displayMode:r.display,throwOnError:!0,strict:"ignore"}),null}catch(e){return{code:"katex_parse_error",message:e instanceof Error?e.message:"KaTeX parse error",snippet:r.latex.slice(0,160)}}}function qB(r){const e=r.trim();if(!e)return{ok:!1,normalized:"",errors:[{code:"unrendered_latex",message:"latex_text is empty",snippet:""}],agent_message:"latex_text was empty — pass content to write on the chalkboard."};const t=[];JB(e)&&t.push({code:"unclosed_delimiter",message:"Unclosed $$ delimiter — every $$ must be paired",snippet:e.slice(0,160)});const A=hi(e),n=pi(e);for(const i of n){if(i.kind==="plain"){XB.test(i.text)&&t.push({code:"unrendered_latex",message:"LaTeX commands appear as plain text (fix delimiters or syntax)",snippet:i.text.trim().slice(0,160)});continue}const s=_B(i);s&&t.push(s)}return{ok:t.length===0,normalized:A,errors:t,agent_message:t.length>0?`${WB} Errors: ${t.map(i=>i.message).join("; ")}`:""}}function jB(r,e,t){return{status:"error",preset_id:"vanira_write_latex_text",latex_render_ok:!1,board_written:!1,latex_errors:r,message:e,has_notes_on_board:t>0,notes_char_count:t,verification_hint:"Nothing new was written — do NOT tell the student the formula is visible. Fix LaTeX format and call write_latex_text again."}}const Ed="vanira:agent-playback-ended",ZB="You might have missed the whiteboard — call write_latex_text (or type_on_whiteboard for plain text) so the student can see what you explained. if you are on other task or waiting for user to show something then fine";function $B(r){return!!r.has_notes_on_board}class ev{constructor(e,t){v(this,"active",!1);v(this,"sendContext",null);v(this,"getSnapshot");v(this,"isBoardBusy");v(this,"onAgentTurnEnd");this.getSnapshot=e,this.isBoardBusy=t,this.onAgentTurnEnd=()=>this.checkAfterAgentTurn()}start(e){if(this.active){this.sendContext=e;return}this.active=!0,this.sendContext=e,window.addEventListener(Ed,this.onAgentTurnEnd)}stop(){this.active&&(this.active=!1,this.sendContext=null,window.removeEventListener(Ed,this.onAgentTurnEnd))}checkAfterAgentTurn(){if(!this.active||!this.sendContext||this.isBoardBusy())return;const e=this.getSnapshot();if($B(e))return;const t={board_turn_check:{has_whiteboard:!1,...e,message:ZB}};try{this.sendContext(t)}catch{}}}function Ud(){var r,e;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{const t={url:Et&&Et.tagName.toUpperCase()==="SCRIPT"&&Et.src||new URL("vanira-sdk.js",document.baseURI).href};if(((r=t.env)==null?void 0:r.DEV)===!0||((e=t.env)==null?void 0:e.VANIRA_SDK_DEV)===!0)return!0}catch{}return!1}let gi=null;function Fd(){return gi===null&&(gi=Ud()),gi}function tv(){gi=Ud()}function Id(r,e,t){if(!(typeof window>"u"))try{const A=window.__VANIRA_DEBUG_LOG__??[];for(A.push({t:Date.now(),tag:r,message:e,data:t});A.length>250;)A.shift();window.__VANIRA_DEBUG_LOG__=A}catch{}}function WA(r,e,t){Fd()&&Id(r,e,t)}function Av(r,e,t){Fd()&&Id(r,`WARN ${e}`,t)}function kr(r){return r.toLowerCase().replace(/[^a-z0-9]/g,"_")}function rv(r){const e=r==null?void 0:r.toLowerCase().trim();if(e){if(e==="tel")return"phone";if(e==="dropdown"||e==="drop_down"||e==="picklist"||e==="combobox")return"select";if(["text","textarea","select","radio","checkbox","email","phone","number","date"].includes(e))return e}}function Sd(r,e,t=[]){const A=rv(e);return A||(t.length>0?"select":r.includes("email")?"email":r.includes("phone")?"phone":r.includes("date")&&!r.includes("update")?"date":"text")}function nv(r){return r?Array.isArray(r)?r.map(e=>{if(typeof e=="string")return e;if(e&&typeof e=="object"){const t=e;return{label:String(t.label??t.value??""),value:String(t.value??t.label??"")}}return String(e)}):typeof r=="string"?r.split(",").map(e=>e.trim()).filter(Boolean):[]:[]}function iv(r){const e=r.value??r.default??r.defaultValue??r.prefill;if(!(e==null||e===""))return String(e)}function Ua(r){const e=String(r.label??r.name??r.title??r.field??r.id??r.key??"").trim();if(!e)return null;const t=String(r.id??r.key??kr(e)),A=nv(r.options??r.choices??r.values),n=Sd(t,String(r.type??""),A);return{id:t,label:e,type:n,required:r.required!==!1,placeholder:r.placeholder?String(r.placeholder):void 0,value:iv(r),options:A}}function Md(r){const e=r.trim(),t=kr(e);return{id:t,label:e,type:Sd(t),required:!0,placeholder:`Enter your ${e.toLowerCase()}`,options:[]}}function fi(r){const e=r.trim();return e?e.startsWith("[")||e.startsWith("{")||e.startsWith('"')?!0:e.includes('"type"')||e.includes('"options"')||e.includes('"label"'):!1}function sv(r){let e=r.trim();for(let t=0;t<3&&typeof e=="string";t++){const A=e.trim();if(!fi(A))break;try{e=JSON.parse(A)}catch{break}}return e}function mi(r){const e=sv(r);if(Array.isArray(e)||e&&typeof e=="object")return e;if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")&&!t.startsWith("["))try{return JSON.parse(`[${t}]`)}catch{return null}}return null}function av(r){return r.length<2?!1:r.every(e=>typeof e=="string"&&(e.includes('"')||e.includes("{")||e.includes("[")))}function ov(r){return mi(r.map(e=>e.trim()).join(","))}function Hr(r){if(r==null)return[];if(typeof r=="string"){const e=r.trim();if(!e)return[];if(fi(e)){const t=mi(e);return t!==null?Hr(t):[]}return e.split(",").map(t=>t.trim()).filter(Boolean).map(Md)}if(Array.isArray(r)){if(r.length===1&&typeof r[0]=="string"){const t=r[0].trim();if(fi(t)){const A=mi(t);if(A!==null)return Hr(A)}}if(av(r)){const t=ov(r);if(t!==null)return Hr(t)}const e=[];for(const t of r){if(typeof t=="string"){const A=t.trim();if(A.startsWith("{"))try{const n=Ua(JSON.parse(A));if(n){e.push(n);continue}}catch{}if(fi(A)){const n=mi(A);if(n!==null){e.push(...Hr(n));continue}}e.push(Md(t));continue}if(t&&typeof t=="object"){const A=Ua(t);A&&e.push(A)}}return e}if(typeof r=="object"){const e=Ua(r);return e?[e]:[]}return[]}const lv=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,cv=/^\+?[0-9\s\-().]{7,20}$/,dv=/^\d{4}-\d{2}-\d{2}$/;function kd(r,e){const t=r[e.id];return e.type==="checkbox"?t===!0||t==="true"?"true":"false":String(t??"").trim()}function hv(r,e){const t={};for(const A of r){const n=kd(e,A);if(A.type==="checkbox"){A.required&&n!=="true"&&(t[A.id]=`${A.label} is required`);continue}if(A.required&&!n){t[A.id]=`${A.label} is required`;continue}if(!n)continue;const i=uv(A.type,n,A.label);i&&(t[A.id]=i),(A.type==="select"||A.type==="radio")&&A.options.length>0&&(A.options.map(a=>typeof a=="string"?a:a.value).includes(n)||(t[A.id]=`Select a valid ${A.label}`))}return t}function uv(r,e,t){switch(r){case"email":return lv.test(e)?null:`Enter a valid ${t}`;case"phone":return cv.test(e)?null:`Enter a valid phone number for ${t}`;case"number":return Number.isFinite(Number(e))?null:`${t} must be a number`;case"date":return dv.test(e)?Number.isNaN(Date.parse(e))?`Enter a valid ${t}`:null:`${t} must be YYYY-MM-DD`;default:return null}}function pv(r,e){const t={};for(const A of r)t[A.id]=kd(e,A);return t}function Hd(r){if(r==null)return{};if(typeof r=="string"){const e=r.trim();if(!e)return{};try{return Hd(JSON.parse(e))}catch{return{}}}return typeof r=="object"&&!Array.isArray(r)?r:{}}function gv(r,e){const t=r.prefill??r.values??r.initial_values??r.defaults??e.prefill??e.values??e.initial_values??e.defaults;return Hd(t)}function Fa(r,e){if(r.type==="checkbox"){if(typeof e=="boolean")return e;const t=String(e).trim().toLowerCase();return t==="true"||t==="1"||t==="yes"||t==="on"}return String(e??"").trim()}function fv(r,e){const t=[r.id,r.label,r.label.toLowerCase()];for(const n of t){if(!(n in e))continue;const i=e[n];if(!(i==null||i===""))return Fa(r,i)}const A=kr(r.label);for(const[n,i]of Object.entries(e))if(!(i==null||i==="")&&(n===A||kr(n)===A||kr(n)===r.id))return Fa(r,i)}function mv(r,e={}){const t={};for(const A of r){if(A.value!==void 0){t[A.id]=Fa(A,A.value);continue}const n=fv(A,e);t[A.id]=n!==void 0?n:A.type==="checkbox"?!1:""}return t}const Td="vanira:board_abort";function Ia(r){if(!r)return"";if(typeof r=="string"){if(r.includes("T")||!isNaN(Date.parse(r)))try{return new Date(r).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}catch{}return r}if(typeof r=="object"){const e=r.start||r.startTime||r.time||r.slot,t=r.end||r.endTime;if(e){let A=String(e),n=t?String(t):"";try{(A.includes("T")||!isNaN(Date.parse(A)))&&(A=new Date(A).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})),n&&(n.includes("T")||!isNaN(Date.parse(n)))&&(n=new Date(n).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}))}catch{}return n?`${A} - ${n}`:A}}return String(r)}function wv(r,e,t,A){let n=Date.UTC(r,e,t,0,0,0,0),i=Date.UTC(r,e,t,23,59,59,999);if(A)try{const s=new Date(Date.UTC(r,e,t,12,0,0)),o=new Intl.DateTimeFormat("en-US",{timeZone:A,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(s),l=I=>{var E;return(E=o.find(F=>F.type===I))==null?void 0:E.value},c=parseInt(l("year")||"0",10),d=parseInt(l("month")||"0",10)-1,g=parseInt(l("day")||"0",10),p=parseInt(l("hour")||"0",10),m=parseInt(l("minute")||"0",10),B=parseInt(l("second")||"0",10),y=p===24?0:p,C=Date.UTC(c,d,g,y,m,B,0)-s.getTime();n=Date.UTC(r,e,t,0,0,0,0)-C,i=Date.UTC(r,e,t,23,59,59,999)-C}catch{}return{start:new Date(n),end:new Date(i)}}function Bv(r,e){if(!e){const t=-r.getTimezoneOffset(),A=t>=0?"+":"-",n=s=>String(s).padStart(2,"0"),i=s=>String(s).padStart(3,"0");return r.getFullYear()+"-"+n(r.getMonth()+1)+"-"+n(r.getDate())+"T"+n(r.getHours())+":"+n(r.getMinutes())+":"+n(r.getSeconds())+"."+i(r.getMilliseconds())+A+n(Math.floor(Math.abs(t)/60))+":"+n(Math.abs(t)%60)}try{const A=new Intl.DateTimeFormat("en-US",{timeZone:e,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(r),n=H=>{var L;return((L=A.find(N=>N.type===H))==null?void 0:L.value)||"0"},i=n("year"),s=n("month").padStart(2,"0"),a=n("day").padStart(2,"0");let o=parseInt(n("hour"),10);o===24&&(o=0);const l=String(o).padStart(2,"0"),c=n("minute").padStart(2,"0"),d=n("second").padStart(2,"0"),g=String(r.getMilliseconds()).padStart(3,"0"),p=parseInt(i,10),m=parseInt(s,10)-1,B=parseInt(a,10),x=Date.UTC(p,m,B,o,parseInt(c,10),parseInt(d,10),r.getMilliseconds())-r.getTime(),C=Math.round(x/6e4),I=C>=0?"+":"-",E=Math.abs(C),F=String(Math.floor(E/60)).padStart(2,"0"),M=String(E%60).padStart(2,"0");return`${i}-${s}-${a}T${l}:${c}:${d}.${g}${I}${F}:${M}`}catch{return r.toISOString()}}const vv=`
2541
2765
  .vnr-overlay {
2542
2766
  position: fixed; inset: 0; z-index: 2147483647;
2543
2767
  background: rgba(0,0,0,0.45);
@@ -2558,11 +2782,13 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2558
2782
  pointer-events: auto;
2559
2783
  }
2560
2784
  .vnr-overlay.vnr-whiteboard-overlay-expanded {
2561
- display: flex;
2562
- align-items: center;
2563
- justify-content: center;
2564
- padding: 16px;
2565
- padding-bottom: max(100px, calc(20px + env(safe-area-inset-bottom)));
2785
+ display: flex;
2786
+ align-items: flex-end;
2787
+ justify-content: center;
2788
+ padding: max(48px, calc(24px + env(safe-area-inset-top, 0px))) 16px max(104px, calc(72px + env(safe-area-inset-bottom, 0px)));
2789
+ }
2790
+ .vnr-overlay.vnr-whiteboard-overlay-expanded .vnr-whiteboard-modal {
2791
+ translate: 0 20px;
2566
2792
  }
2567
2793
  .vnr-overlay.vnr-whiteboard-overlay-reduced {
2568
2794
  display: block;
@@ -2680,6 +2906,7 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2680
2906
  flex-shrink: 0;
2681
2907
  box-sizing: border-box;
2682
2908
  transition: width 0.2s ease, max-width 0.2s ease, height 0.2s ease, max-height 0.2s ease;
2909
+ background-color: #0a1810;
2683
2910
  }
2684
2911
  .vnr-overlay.vnr-whiteboard-overlay-reduced .vnr-whiteboard-modal {
2685
2912
  box-shadow: 0 20px 52px rgba(0,0,0,0.6) !important;
@@ -2694,8 +2921,8 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2694
2921
  justify-content: flex-end;
2695
2922
  gap: 6px;
2696
2923
  padding: 8px 10px;
2697
- background: linear-gradient(180deg, #1e1e24 0%, #16161c 100%);
2698
- border-bottom: 1px solid rgba(255,255,255,0.1);
2924
+ background: linear-gradient(180deg, #122a1c 0%, #0a1810 100%);
2925
+ border-bottom: 1px solid rgba(255,255,255,0.06);
2699
2926
  z-index: 30;
2700
2927
  }
2701
2928
  .vnr-overlay.vnr-whiteboard-overlay-reduced .vnr-whiteboard-header {
@@ -2727,9 +2954,63 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2727
2954
  color: #fecaca;
2728
2955
  }
2729
2956
  .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(`
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=`
2957
+ .vnr-whiteboard-action-btn:disabled {
2958
+ opacity: 0.4;
2959
+ cursor: not-allowed;
2960
+ }
2961
+ .vnr-whiteboard-textarea {
2962
+ overflow-y: auto;
2963
+ overflow-x: hidden;
2964
+ }
2965
+ .vnr-whiteboard-textarea:empty::before,
2966
+ .vnr-whiteboard-textarea[data-empty="true"]::before {
2967
+ content: 'Notes appear here…';
2968
+ color: rgba(255,255,255,0.35);
2969
+ font-style: italic;
2970
+ }
2971
+ .vnr-whiteboard-textarea .katex {
2972
+ color: #ffffff;
2973
+ font-size: 1.08em;
2974
+ }
2975
+ .vnr-whiteboard-textarea .katex-display {
2976
+ margin: 0.6em 0;
2977
+ overflow-x: auto;
2978
+ overflow-y: hidden;
2979
+ }
2980
+ .vnr-chalk-board-content {
2981
+ white-space: pre-wrap;
2982
+ word-break: break-word;
2983
+ }
2984
+ .vnr-chalk-segment.vnr-chalk-math-display {
2985
+ display: block;
2986
+ margin: 0.5em 0;
2987
+ }
2988
+ .vnr-chalk-segment.vnr-chalk-revealing {
2989
+ display: inline-block;
2990
+ overflow: hidden;
2991
+ max-width: 100%;
2992
+ vertical-align: bottom;
2993
+ clip-path: inset(0 100% 0 0);
2994
+ animation: vnr-chalk-equation-reveal var(--vnr-chalk-reveal-ms, 600ms) linear forwards;
2995
+ }
2996
+ .vnr-chalk-segment.vnr-chalk-revealing.vnr-chalk-math-display {
2997
+ display: block;
2998
+ }
2999
+ @keyframes vnr-chalk-equation-reveal {
3000
+ from { clip-path: inset(0 100% 0 0); }
3001
+ to { clip-path: inset(0 0 0 0); }
3002
+ }
3003
+ .vnr-chalk-cursor {
3004
+ display: inline-block;
3005
+ color: rgba(255, 255, 255, 0.95);
3006
+ font-weight: 300;
3007
+ margin-left: 1px;
3008
+ animation: vnr-chalk-cursor-blink 1s step-end infinite;
3009
+ }
3010
+ @keyframes vnr-chalk-cursor-blink {
3011
+ 50% { opacity: 0; }
3012
+ }
3013
+ `,yv='<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>',bv='<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>',Ld='<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>',Cv='<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>',Dd="vanira:board-size",Tr=["small","medium","large"],xv=1.2,Qv={small:{maxWidth:"min(440px, 94vw)",height:"min(340px, 52vh)"},medium:{maxWidth:"min(680px, 96vw)",height:"min(520px, 68vh)"},large:{maxWidth:"min(920px, 98vw)",height:"min(680px, 72vh)"}},Ev="#3d2817",Uv=20,Fv=["radial-gradient(ellipse 120% 90% at 50% 8%, rgba(255,255,255,0.035) 0%, transparent 52%)","radial-gradient(ellipse 80% 60% at 50% 100%, rgba(0,0,0,0.35) 0%, transparent 55%)","linear-gradient(168deg, #163222 0%, #0f2418 42%, #0a1810 100%)"].join(", "),Iv=["0 0 0 3px #2a1810","0 28px 64px rgba(0,0,0,0.62)","inset 0 0 72px rgba(0,0,0,0.42)","inset 0 2px 0 rgba(255,255,255,0.04)"].join(", ");function Sa(r){r.style.backgroundColor="#0a1810",r.style.backgroundImage=Fv,r.style.backgroundRepeat="no-repeat",r.style.backgroundSize="cover",r.style.border=`${Uv}px solid ${Ev}`,r.style.boxShadow=Iv}function Sv(){try{const r=localStorage.getItem(Dd);if(r==="small"||r==="medium"||r==="large")return r}catch{}return"medium"}function Mv(r){try{localStorage.setItem(Dd,r)}catch{}}function Pd(r,e){return e===1?r:r.replace(/(\d+(?:\.\d+)?)(px|vw|vh)/g,(t,A,n)=>{const i=Number(A)*e;return`${n==="px"?Math.round(i):i}${n}`})}function Nd(r){r.style.cssText=["position:fixed","left:-2000px","top:0","width:640px","height:480px","opacity:0.01","pointer-events:none","z-index:-1"].join(";")}async function wi(r,e=8e3){return await r.play().catch(()=>{}),r.videoWidth>0&&r.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&await Od(r,1500)?!0:new Promise(t=>{let A=!1;const n=async a=>{if(!A){if(A=!0,r.removeEventListener("loadeddata",i),r.removeEventListener("playing",i),clearTimeout(s),!a){t(!1);return}t(await Od(r,1500))}},i=()=>{r.videoWidth>0&&n(!0)};r.addEventListener("loadeddata",i),r.addEventListener("playing",i);const s=setTimeout(()=>void n(r.videoWidth>0),e);i()})}function Od(r,e){const t=r.requestVideoFrameCallback;return typeof t!="function"?Promise.resolve(r.videoWidth>0):new Promise(A=>{const n=setTimeout(()=>A(!1),e);t.call(r,()=>{clearTimeout(n),A(r.videoWidth>0)})})}function Bi(r,e){if(e){const t=e.querySelector("video");if(t&&t.videoWidth>0)return t}return r}function Rd(r,e,t){const A=Math.min(e,48),n=Math.min(t,48);if(A<=0||n<=0)return!0;const{data:i}=r.getImageData(0,0,A,n);let s=0;const a=i.length/4;for(let o=0;o<i.length;o+=4)s+=i[o]*.299+i[o+1]*.587+i[o+2]*.114;return s/a<14}async function kv(r,e,t=.75){if(!r||r.videoWidth===0)return null;const A=r.videoWidth,n=r.videoHeight,i=Math.min(1,e/A),s=document.createElement("canvas");s.width=Math.round(A*i),s.height=Math.round(n*i);const a=s.getContext("2d",{willReadFrequently:!0});return!a||(a.drawImage(r,0,0,s.width,s.height),Rd(a,s.width,s.height))?null:await new Promise(o=>{s.toBlob(l=>o(l),"image/jpeg",t)})}async function Ma(r,e,t,A=.75){const n=await kv(r,t,A);if(n)return n;const i=e==null?void 0:e.getVideoTracks()[0];if(!i||i.readyState!=="live"||typeof ImageCapture>"u")return null;try{const a=await new ImageCapture(i).grabFrame(),o=Math.min(1,t/a.width),l=Math.round(a.width*o),c=Math.round(a.height*o),d=document.createElement("canvas");d.width=l,d.height=c;const g=d.getContext("2d",{willReadFrequently:!0});return g?(g.drawImage(a,0,0,l,c),a.close(),Rd(g,l,c)?null:await new Promise(p=>{d.toBlob(m=>p(m),"image/jpeg",A)})):(a.close(),null)}catch(s){return Av("[LiveCapture]",`ImageCapture failed: ${s instanceof Error?s.message:String(s)}`),null}}async function Kd(r,e,t,A=20,n=250){for(let i=0;i<A;i++){if(await Ma(r,e,t,.6))return!0;await new Promise(a=>setTimeout(a,n))}return!1}class Hv{constructor(e){v(this,"overlay",null);v(this,"styleInjected",!1);v(this,"chalkboardContent","");v(this,"calViewYear",0);v(this,"calViewMonth",0);v(this,"calSelectedTs",null);v(this,"calSelectedTime",null);v(this,"lvSessionId",null);v(this,"lvStream",null);v(this,"lvCaptureInterval",null);v(this,"lvAutoStopTimeout",null);v(this,"lvFrameSeq",0);v(this,"lvVideo",null);v(this,"lvCanvas",null);v(this,"lvPip",null);v(this,"lvPermissionBanner",null);v(this,"lsSessionId",null);v(this,"lsStream",null);v(this,"lsCaptureInterval",null);v(this,"lsAutoStopTimeout",null);v(this,"lsFrameSeq",0);v(this,"lsVideo",null);v(this,"lsCanvas",null);v(this,"lsPip",null);v(this,"lsPermissionBanner",null);v(this,"captureActive",!1);v(this,"captureStream",null);v(this,"captureLivenessInterval",null);v(this,"activePresetGeneration",0);v(this,"boardQueue",[]);v(this,"boardQueueActive",null);v(this,"boardAnimTimer",null);v(this,"settledBoardToolCallIds",new Set);v(this,"activeNavigate",null);v(this,"settledNavigateToolCallIds",new Set);v(this,"activeModalPreset",null);v(this,"boardClient",null);v(this,"boardTurnMonitor",new ev(()=>this.buildBoardVerification(),()=>this.boardQueueActive!==null||this.boardQueue.length>0||this.activeBoardProgress!==null));v(this,"activeBoardProgress",null);v(this,"boardSizePreset",Sv());v(this,"boardViewMode","expanded");v(this,"boardDragPosition",null);v(this,"boardDragWiredModal",null)}resetChalkboard(){this.chalkboardContent=""}resetBoardSession(){this.boardTurnMonitor.stop(),this.boardDragPosition=null,this.boardDragWiredModal=null,this.activePresetGeneration++,Si(!1),this.clearBoardAnimTimer(),this.boardQueue=[],this.boardQueueActive=null,this.settledBoardToolCallIds.clear(),this.activeBoardProgress=null,this.boardClient=null,this.chalkboardContent="",this.closeBoardUi()}getChalkboardContent(){return this.chalkboardContent}hasActiveBoardSession(){return!!document.querySelector(".vnr-whiteboard-modal")||this.chalkboardContent.length>0||this.boardQueue.length>0||this.boardQueueActive!==null}syncChalkboardNotes(){const e=this.getChalkboardSurface();e&&this.paintChalkboardSurface(e,this.chalkboardContent)}getChalkboardSurface(){return document.querySelector(".vnr-whiteboard-textarea")}paintChalkboardSurface(e,t,A){this.chalkboardContent=t,e.dataset.empty=t.trim().length===0?"true":"false";const n=A!=null&&A.typing?ui(t):t,i=(A==null?void 0:A.showCursor)===!0;Cd(t)||Cd(n)?Qd(e,n,{showCursor:i}):KB(n,e,i),e.scrollTop=e.scrollHeight}buildBoardVerification(){this.syncChalkboardNotes();const e=this.chalkboardContent;return{notes_char_count:e.length,notes_preview:e.slice(0,200)||null,has_notes_on_board:e.length>0,verification_hint:"Do NOT tell the student notes are visible unless has_notes_on_board is true in this tool result."}}getBoardSnapshot(){this.syncChalkboardNotes();const e=this.chalkboardContent;return{board_layout:"notes_full",has_diagram:!1,notes_content:e,notes_char_count:e.length}}getBoardProgressSnapshot(){const e=this.activeBoardProgress;if(!e||e.plannedUnits<=0)return null;const t=this.chalkboardContent,A=e.mode==="type"?t.slice(e.textAtStart.length):t;return{write_progress_pct:Math.min(100,Math.round(e.unitsDone/e.plannedUnits*100)),characters_written:e.unitsDone,characters_planned:e.plannedUnits,partial_text_this_command:A}}getNavigateTerminalResult(e,t,A){return{status:e,reason:t||(e==="interrupted"?"Server interrupted":"Navigation cancelled"),preset_id:k.Navigate,navigated_to:A,target_url:A}}completeNavigate(e={}){const t=this.activeNavigate;if(!t||t.settled)return;const A=t.ctx.toolCallId;A&&this.settledNavigateToolCallIds.has(A)||(t.settled=!0,A&&this.settledNavigateToolCallIds.add(A),this.activeNavigate=null,t.onComplete({status:"success",preset_id:k.Navigate,navigated_to:t.targetUrl,target_url:t.targetUrl,...e}))}cancelNavigate(e,t){const A=this.activeNavigate;if(!A||A.settled)return;const n=A.ctx.toolCallId;n&&this.settledNavigateToolCallIds.has(n)||(A.settled=!0,n&&this.settledNavigateToolCallIds.add(n),this.activeNavigate=null,A.onCancel(e,{status:t}))}bindActiveModalPreset(e,t,A,n){this.activeModalPreset={ctx:e,presetId:t,onComplete:A,onCancel:n}}clearActiveModalPreset(){this.activeModalPreset&&(this.activeModalPreset.settled=!0,this.activeModalPreset=null)}cancelActiveModalPreset(e,t){const A=this.activeModalPreset;!A||A.settled||(A.settled=!0,this.activeModalPreset=null,this.overlay&&(this.overlay.remove(),this.overlay=null),this.stopCaptureCamera(),A.onCancel(e,{status:t}))}getBoardTerminalResult(e,t,A){const n={status:e,reason:t||(e==="interrupted"?"Server interrupted":"User dismissed"),...A?{preset_id:A}:{}};if(!A||!Pa(A))return n;const i=this.chalkboardContent,s=this.getBoardProgressSnapshot();return{...n,text_written:i,whiteboard_content:i,board_snapshot:this.getBoardSnapshot(),...s||{}}}flushBoardContext(e){if(this.boardClient)try{typeof this.boardClient.sendContextUpdate=="function"?this.boardClient.sendContextUpdate(e):typeof this.boardClient.updateContext=="function"&&this.boardClient.updateContext(e)}catch{}}clearActiveBoardProgress(){this.activeBoardProgress=null}syncBoardProgressUnits(e){this.activeBoardProgress&&(this.activeBoardProgress.unitsDone=e)}buildBoardContextPayload(e,t,A){const n=this.activeBoardProgress,i=(n==null?void 0:n.ctx.toolCallId)===e.toolCallId;let s,a,o,l;i&&n&&(a=n.unitsDone,o=n.plannedUnits,s=n.plannedUnits>0?Math.min(100,Math.round(n.unitsDone/n.plannedUnits*100)):100,n.mode==="type"?l=t.slice(n.textAtStart.length):l=t);const c={ui_state:"whiteboard_active",tool_status:"interrupted",visible_preset:e.presetId,tool_call_id:e.toolCallId,interrupted:!0,interrupt_reason:A||"Server interrupted",whiteboard_content:t};if(s!==void 0){c.write_progress_pct=s,c.characters_written=a,c.characters_planned=o,c.partial_text_this_command=l??"";const d=(n==null?void 0:n.mode)==="erase"?"erase":"write",g=(l??"").length>120?`${(l??"").slice(0,120)}…`:l??"",p=(n==null?void 0:n.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 ${s}% (${a}/${o} characters this command). Partial text this turn: "${g}". `+p}return c}sendBoardContextUpdate(e,t,A){this.flushBoardContext(this.buildBoardContextPayload(e,t,A))}handle(e,t,A,n){const i=e.data||e;let s={};const a=i.arguments||i.args;if(typeof a=="string")try{s=JSON.parse(a)}catch{s={}}else a&&typeof a=="object"&&(s=a);const o=i.client_fields||{},l=Lr(o,a,i.name||i.tool_name);if(!l||!Gt(l))return!1;const c={...s,...o},d={toolCallId:i.tool_call_id||i.call_id||"",presetId:l,clientFields:c,args:s,toolCall:i};this.injectStyles();const g=!!document.querySelector(".vnr-whiteboard-modal");switch(Pa(l)?g||this.dismissNonBoardUi():$d(l)||this.dismiss(),l){case k.Calendar:return this.renderCalendar(d,t,A),!0;case k.Form:return this.renderForm(d,t,A),!0;case k.Camera:return this.renderCamera(d,t,A,n),!0;case k.Upload:return this.renderUpload(d,t,A,n),!0;case k.ClipRegion:return this.renderClipRegion(d,t,A,n),!0;case k.ScreenVision:return this.renderScreenVision(d,t,A,n),!0;case k.PointAt:return this.renderPointAt(d,t,A),!0;case k.DrawOnScreen:return this.renderDrawOnScreen(d,t,A),!0;case k.ClearScreenDraw:return this.renderClearScreenDraw(d,t,A),!0;case k.HighlightOnScreen:return this.renderHighlightOnScreen(d,t,A),!0;case k.Navigate:return this.renderNavigate(d,t,A),!0;case k.HighlightElement:return this.renderHighlight(d,t,A),!0;case k.ClickElement:return this.renderClickElement(d,t,A),!0;case k.SelectOption:return this.renderSelectOption(d,t,A),!0;case k.SetDate:return this.renderSetDate(d,t,A),!0;case k.TypeText:return this.enqueueBoardCommand({ctx:d,presetId:k.TypeText,onComplete:t,onCancel:A},n),!0;case k.WriteLatexText:return this.enqueueBoardCommand({ctx:d,presetId:k.WriteLatexText,onComplete:t,onCancel:A},n),!0;case k.EraseText:return this.enqueueBoardCommand({ctx:d,presetId:k.EraseText,onComplete:t,onCancel:A},n),!0;case k.LiveVision:return this.handleOpenLiveCamera(c,n,d.toolCallId),t({status:"success",preset_id:k.LiveVision,message:"Live camera session started"}),!0;case k.CloseLiveCamera:return this.handleCloseLiveCamera(n),t({status:"success",preset_id:k.CloseLiveCamera,message:"Live camera stopped"}),!0;case k.LiveScreen:return this.handleOpenLiveScreen(c,n,d.toolCallId),t({status:"success",preset_id:k.LiveScreen,message:"Live screen share started"}),!0;case k.CloseLiveScreen:return this.handleCloseLiveScreen(n),t({status:"success",preset_id:k.CloseLiveScreen,message:"Live screen share stopped"}),!0;default:return!1}}abortBoardTools(e="Interrupted",t){const A=this.activeNavigate;A&&!A.settled&&(!t||A.ctx.toolCallId===t)&&this.cancelNavigate(e,"interrupted");const n=this.activeModalPreset;n&&!n.settled&&(!t||n.ctx.toolCallId===t)&&this.cancelActiveModalPreset(e,"interrupted");const i=a=>!t||a.ctx.toolCallId===t;if(this.boardQueueActive&&i(this.boardQueueActive)||this.boardQueue.some(i)){if(this.clearBoardAnimTimer(),this.activePresetGeneration++,this.boardQueueActive&&i(this.boardQueueActive)){const a=this.boardQueueActive;this.boardQueueActive=null,this.settleBoardCancel(a,e,"interrupted")}this.boardQueue=this.boardQueue.filter(a=>i(a)?(this.settleBoardCancel(a,e,"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),Ms(),eA().hide(),this.overlay&&(this.overlay.remove(),this.overlay=null)}teardownSession(){this.dismiss()}enqueueBoardCommand(e,t){var n;t&&(this.boardClient=t),this.boardClient&&document.querySelector(".vnr-whiteboard-modal")&&this.ensureBoardTurnMonitor();const A=e.ctx.toolCallId;A&&(this.settledBoardToolCallIds.has(A)||((n=this.boardQueueActive)==null?void 0:n.ctx.toolCallId)===A||this.boardQueue.some(i=>i.ctx.toolCallId===A))||(this.boardQueue.push(e),WA("Board:Queue",`Enqueued ${e.presetId}`,{pending:this.boardQueue.length,toolCallId:e.ctx.toolCallId}),this.processBoardQueue())}processBoardQueue(){if(this.boardQueueActive||this.boardQueue.length===0)return;const e=this.boardQueue.shift();this.boardQueueActive=e,WA("Board:Queue",`Running ${e.presetId}`,{toolCallId:e.ctx.toolCallId});const t=(i,s)=>{if(this.boardQueueActive===e){if(e.settled||e.aborted){this.boardQueueActive=null;return}this.boardQueueActive=null,s!==void 0?this.settleBoardCancel(e,s):this.settleBoardComplete(e,i||{}),this.processBoardQueue()}},A=i=>t(i),n=i=>{this.activePresetGeneration++,t(null,i||"Cancelled"),!this.boardQueueActive&&this.boardQueue.length===0&&this.closeBoardUi()};e.presetId===k.TypeText?this.renderTypeText(e.ctx,A,n):e.presetId===k.WriteLatexText?this.renderWriteLatexText(e.ctx,A,n):this.renderEraseText(e.ctx,A,n)}closeBoardUi(){this.boardTurnMonitor.stop(),this.boardViewMode="expanded",Si(!1),this.dismissWhiteboard(),this.overlay&&(!document.body.contains(this.overlay)||!this.overlay.childElementCount)&&(this.overlay.remove(),this.overlay=null)}getBoardOverlay(){const e=document.querySelector(".vnr-whiteboard-modal");return(e==null?void 0:e.closest(".vnr-overlay"))??this.overlay}applyBoardLayoutMode(e,t){const A=e??this.getBoardOverlay(),n=t??document.querySelector(".vnr-whiteboard-modal");if(!A||!n)return;const i=this.boardViewMode==="reduced";A.classList.remove("vnr-whiteboard-overlay-hidden"),A.classList.add("vnr-whiteboard-overlay"),A.classList.toggle("vnr-whiteboard-overlay-reduced",i),A.classList.toggle("vnr-whiteboard-overlay-expanded",!i),this.syncBoardResizeButton(n.querySelector(".vnr-whiteboard-resize-btn")),this.syncBoardGrowButton(n),Si(!0,i),this.syncBoardDragLayout(n),this.ensureBoardTurnMonitor()}clearBoardDragStyles(e){e.style.removeProperty("position"),e.style.removeProperty("left"),e.style.removeProperty("top"),e.style.removeProperty("right"),e.style.removeProperty("bottom"),e.style.removeProperty("margin"),e.style.removeProperty("transform")}clampBoardDragPosition(e,t,A){const i=Math.max(8,window.innerWidth-e.offsetWidth-8),s=Math.max(8,window.innerHeight-e.offsetHeight-8);return{x:Math.min(i,Math.max(8,t)),y:Math.min(s,Math.max(8,A))}}applyBoardDragPosition(e,t,A){const n=this.clampBoardDragPosition(e,t,A);e.style.setProperty("position","fixed","important"),e.style.setProperty("left",`${n.x}px`,"important"),e.style.setProperty("top",`${n.y}px`,"important"),e.style.setProperty("right","auto","important"),e.style.setProperty("bottom","auto","important"),e.style.setProperty("margin","0","important"),e.style.setProperty("transform","none","important"),this.boardDragPosition=n}defaultReducedBoardPosition(e){const A=Math.max(96,20+(typeof window<"u"?Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue("env(safe-area-inset-bottom)")||"0",10):0));return this.clampBoardDragPosition(e,window.innerWidth-e.offsetWidth-16,window.innerHeight-e.offsetHeight-A)}syncBoardDragLayout(e){if(this.boardViewMode==="reduced"){const t=this.boardDragPosition??this.defaultReducedBoardPosition(e);this.applyBoardDragPosition(e,t.x,t.y)}else this.clearBoardDragStyles(e)}wireBoardDrag(e,t){if(this.boardDragWiredModal===t)return;this.boardDragWiredModal=t;let A=!1,n=0,i=0,s=0,a=0;const o=d=>{if(this.boardViewMode!=="reduced"||d.target.closest("button"))return;A=!0,e.setPointerCapture(d.pointerId);const g=t.getBoundingClientRect();n=d.clientX,i=d.clientY,s=g.left,a=g.top,e.classList.add("is-dragging"),d.preventDefault()},l=d=>{A&&this.applyBoardDragPosition(t,s+(d.clientX-n),a+(d.clientY-i))},c=d=>{A&&(A=!1,e.classList.remove("is-dragging"),e.hasPointerCapture(d.pointerId)&&e.releasePointerCapture(d.pointerId))};e.addEventListener("pointerdown",o),e.addEventListener("pointermove",l),e.addEventListener("pointerup",c),e.addEventListener("pointercancel",c)}ensureBoardTurnMonitor(){this.boardClient&&this.boardTurnMonitor.start(e=>this.flushBoardContext(e))}revealBoardUi(e){this.applyBoardLayoutMode(this.getBoardOverlay(),e)}dismissNonBoardUi(){this.stopCaptureCamera(),this.handleCloseLiveCamera(null),this.handleCloseLiveScreen(null),Ms(),this.overlay&&!this.overlay.querySelector(".vnr-whiteboard-modal")&&(this.overlay.remove(),this.overlay=null)}settleBoardCancel(e,t,A="cancelled"){if(e.settled)return;e.aborted=!0,e.settled=!0;const n=e.ctx.toolCallId;n&&this.settledBoardToolCallIds.add(n);const i=this.chalkboardContent;A==="interrupted"&&this.sendBoardContextUpdate(e.ctx,i,t),e.onCancel(t,{status:A}),this.clearActiveBoardProgress()}settleBoardComplete(e,t){if(e.settled||e.aborted)return;e.settled=!0;const A=e.ctx.toolCallId;A&&this.settledBoardToolCallIds.add(A);const n=this.chalkboardContent;e.onComplete({status:"success",preset_id:e.presetId,tool_call_id:e.ctx.toolCallId,text_written:n,whiteboard_content:n,...this.buildBoardVerification(),...t}),this.clearActiveBoardProgress()}clearBoardAnimTimer(){this.boardAnimTimer&&(clearTimeout(this.boardAnimTimer),this.boardAnimTimer=null)}scheduleBoardAnim(e,t){this.clearBoardAnimTimer(),this.boardAnimTimer=setTimeout(()=>{this.boardAnimTimer=null,e()},t)}dismissWhiteboard(){document.querySelectorAll(".vnr-whiteboard-modal").forEach(e=>{var t;(t=e.closest(".vnr-overlay"))==null||t.remove()}),this.overlay&&!document.body.contains(this.overlay)&&(this.overlay=null)}stopCaptureCamera(){var e;this.captureActive=!1,this.captureLivenessInterval&&(clearInterval(this.captureLivenessInterval),this.captureLivenessInterval=null),(e=this.captureStream)==null||e.getTracks().forEach(t=>t.stop()),this.captureStream=null}getBrowserPermissionHint(){const e=navigator.userAgent;return/iPhone|iPad/i.test(e)?"Open Settings → Safari → Camera and allow access for this site.":/Android/i.test(e)?"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(e,t){e.style.display="flex",e.innerHTML=`
2733
3014
  <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
3015
  <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
3016
  <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"/>
@@ -2741,90 +3022,90 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2741
3022
  </p>
2742
3023
  <div style="display:flex;gap:10px;margin-top:4px;flex-wrap:wrap;justify-content:center">
2743
3024
  <button type="button" id="vnr-cam-perm-retry" class="vnr-confirm-btn" style="padding:10px 18px">Try Again</button>
2744
- ${e.onDismiss?'<button type="button" id="vnr-cam-perm-dismiss" class="vnr-cancel-btn">Cancel</button>':""}
3025
+ ${t.onDismiss?'<button type="button" id="vnr-cam-perm-dismiss" class="vnr-cancel-btn">Cancel</button>':""}
2745
3026
  </div>
2746
3027
  </div>
2747
- `,A.querySelector("#vnr-cam-perm-retry").addEventListener("click",e.onRetry),e.onDismiss&&A.querySelector("#vnr-cam-perm-dismiss").addEventListener("click",e.onDismiss)}notifyCameraPermissionDenied(A,e){const t="Camera permission denied. Please allow camera access in your browser settings.";if(A!=null&&A.sendToolError&&e)try{A.sendToolError(e,t)}catch{}}showLiveCameraPermissionBanner(A,e){var r;(r=this.lvPermissionBanner)==null||r.remove();const t=document.createElement("div");t.id="vnr-live-cam-perm-banner",t.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(248,113,113,0.35)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif"].join(";"),t.innerHTML=`
3028
+ `,e.querySelector("#vnr-cam-perm-retry").addEventListener("click",t.onRetry),t.onDismiss&&e.querySelector("#vnr-cam-perm-dismiss").addEventListener("click",t.onDismiss)}notifyCameraPermissionDenied(e,t){const A="Camera permission denied. Please allow camera access in your browser settings.";if(e!=null&&e.sendToolError&&t)try{e.sendToolError(t,A)}catch{}}showLiveCameraPermissionBanner(e,t){var n;(n=this.lvPermissionBanner)==null||n.remove();const A=document.createElement("div");A.id="vnr-live-cam-perm-banner",A.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(248,113,113,0.35)","box-shadow:0 12px 32px rgba(0,0,0,0.35)","font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif"].join(";"),A.innerHTML=`
2748
3029
  <p style="margin:0 0 6px;font-size:13px;font-weight:700;color:#f87171">Camera access blocked</p>
2749
3030
  <p style="margin:0 0 12px;font-size:12px;color:#94a3b8;line-height:1.5">${this.getBrowserPermissionHint()}</p>
2750
3031
  <div style="display:flex;gap:8px">
2751
3032
  <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
3033
  <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
3034
  </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=`
2755
- <p style="margin:0 0 6px;font-size:13px;font-weight:700;color:#60a5fa">${r}</p>
2756
- <p style="margin:0 0 12px;font-size:12px;color:#94a3b8;line-height:1.5">${s}</p>
3035
+ `,A.querySelector("#vnr-lv-perm-retry").addEventListener("click",e),A.querySelector("#vnr-lv-perm-dismiss").addEventListener("click",t),document.body.appendChild(A),this.lvPermissionBanner=A}async sendClientEvent(e,t,A){if(typeof(e==null?void 0:e.sendEventWhenReady)=="function"){await e.sendEventWhenReady(t,A);return}if(e!=null&&e.sendEvent){e.sendEvent(t,A);return}}handleOpenLiveCamera(e,t,A){this.handleCloseLiveScreen(t),this.handleCloseLiveCamera(t);const n=e.scope??"until_call_end",i=Math.min(Number(e.target_fps??1),Number(e.max_fps??3)),s=Number(e.max_width??640),a=e.reason??"camera_capture",o=Number(e.duration_sec??0),l=e.facing_mode??"environment",c=e.show_preview!==!1&&e.show_preview!=="false",d=`lv_${crypto.randomUUID()}`;this.lvSessionId=d,this.lvFrameSeq=0;const g=document.createElement("video");g.autoplay=!0,g.playsInline=!0,g.muted=!0,Nd(g),document.body.appendChild(g),this.lvVideo=g;const p=document.createElement("canvas");p.style.display="none",document.body.appendChild(p),this.lvCanvas=p,c&&(this.lvPip=this.createLivePip(l,()=>this.handleCloseLiveCamera(t))),(()=>{navigator.mediaDevices.getUserMedia({video:{facingMode:l,width:{ideal:s*2}}}).then(async B=>{var C;if(!this.lvSessionId){B.getTracks().forEach(I=>I.stop());return}if((C=this.lvPermissionBanner)==null||C.remove(),this.lvPermissionBanner=null,this.lvStream=B,g.srcObject=B,this.lvPip){const I=this.lvPip.querySelector("video");I&&(I.srcObject=B,await wi(I))}await wi(g);const y=Bi(g,this.lvPip)??g;await Kd(y,B,s),await this.sendClientEvent(t,"client_live_camera_started",{data:{session_id:d,scope:n,...n==="timed"&&o>0?{duration_sec:o}:{},reason:a,target_fps:i}});const x=Math.round(1e3/i);this.lvCaptureInterval=setInterval(()=>{this.captureAndSendFrame(t,d,s,a)},x),n==="timed"&&o>0&&(this.lvAutoStopTimeout=setTimeout(()=>{this.handleCloseLiveCamera(t)},o*1e3))}).catch(B=>{var y,x;this.lvSessionId=null,(y=this.lvStream)==null||y.getTracks().forEach(C=>C.stop()),this.lvStream=null,(x=this.lvPip)==null||x.remove(),this.lvPip=null,g.remove(),this.lvVideo=null,p.remove(),this.lvCanvas=null,this.notifyCameraPermissionDenied(t,A),this.showLiveCameraPermissionBanner(()=>this.handleOpenLiveCamera(e,t,A),()=>{var C;(C=this.lvPermissionBanner)==null||C.remove(),this.lvPermissionBanner=null})})})()}handleCloseLiveCamera(e){var A,n,i,s,a;const t=this.lvSessionId;this.lvSessionId=null,this.lvCaptureInterval&&(clearInterval(this.lvCaptureInterval),this.lvCaptureInterval=null),this.lvAutoStopTimeout&&(clearTimeout(this.lvAutoStopTimeout),this.lvAutoStopTimeout=null),(A=this.lvStream)==null||A.getTracks().forEach(o=>o.stop()),this.lvStream=null,(n=this.lvVideo)==null||n.remove(),this.lvVideo=null,(i=this.lvCanvas)==null||i.remove(),this.lvCanvas=null,(s=this.lvPip)==null||s.remove(),this.lvPip=null,(a=this.lvPermissionBanner)==null||a.remove(),this.lvPermissionBanner=null,t&&e&&this.sendClientEvent(e,"client_live_camera_stopped",{data:{session_id:t}})}classifyLiveScreenShareFailure(e){if(e instanceof DOMException){if(e.name==="AbortError")return"cancelled";if(e.name==="NotAllowedError"){const A=(e.message||"").toLowerCase();return A.includes("dismiss")||A.includes("cancel")||A.includes("abort")?"cancelled":"denied"}}const t=e instanceof Error?(e.message||"").toLowerCase():"";return t.includes("cancel")||t.includes("dismiss")||t.includes("abort")?"cancelled":"denied"}emitLiveScreenShareFailure(e,t,A,n,i,s){const a=i instanceof DOMException||i instanceof Error?i.name:void 0,o=s??(n==="cancelled"?"User cancelled screen share without selecting a source.":"Screen share permission was not granted."),l=n==="cancelled"?"client_live_screen_cancelled":"client_live_screen_denied";if(e!=null&&e.sendEvent&&e.sendEvent(l,{data:{...t?{session_id:t}:{},...A?{tool_call_id:A}:{},message:o,...a?{error_name:a}:{}}}),e!=null&&e.sendToolError&&A)try{e.sendToolError(A,o)}catch{}}notifyScreenShareUnavailable(e,t){this.emitLiveScreenShareFailure(e,null,t,"denied",void 0,"Screen sharing is not supported in this browser or device.")}showLiveScreenPermissionBanner(e,t,A){var a;(a=this.lsPermissionBanner)==null||a.remove();const n=e==="cancelled"?"Screen share cancelled":"Screen share blocked",i=e==="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.",s=document.createElement("div");s.id="vnr-live-screen-perm-banner",s.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(";"),s.innerHTML=`
3036
+ <p style="margin:0 0 6px;font-size:13px;font-weight:700;color:#60a5fa">${n}</p>
3037
+ <p style="margin:0 0 12px;font-size:12px;color:#94a3b8;line-height:1.5">${i}</p>
2757
3038
  <div style="display:flex;gap:8px">
2758
3039
  <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
3040
  <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
3041
  </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=`
3042
+ `,s.querySelector("#vnr-ls-perm-retry").addEventListener("click",t),s.querySelector("#vnr-ls-perm-dismiss").addEventListener("click",A),document.body.appendChild(s),this.lsPermissionBanner=s}handleOpenLiveScreen(e,t,A){var B;if(this.handleCloseLiveScreen(t),this.handleCloseLiveCamera(t),!((B=navigator.mediaDevices)!=null&&B.getDisplayMedia)){this.notifyScreenShareUnavailable(t,A);return}const n=e.scope??"until_call_end",i=Math.min(Number(e.target_fps??1),Number(e.max_fps??3)),s=Number(e.max_width??1280),a=e.reason??"screen_capture",o=Number(e.duration_sec??0),l=e.prefer_current_tab===!0||e.prefer_current_tab==="true",c=e.show_preview!==!1&&e.show_preview!=="false",d=`ls_${crypto.randomUUID()}`;this.lsSessionId=d,this.lsFrameSeq=0;const g=document.createElement("video");g.autoplay=!0,g.playsInline=!0,g.muted=!0,Nd(g),document.body.appendChild(g),this.lsVideo=g;const p=document.createElement("canvas");p.style.display="none",document.body.appendChild(p),this.lsCanvas=p,c&&(this.lsPip=this.createLiveScreenPip(()=>this.handleCloseLiveScreen(t))),(()=>{const y=l?{displaySurface:"browser"}:!0;navigator.mediaDevices.getDisplayMedia({video:y,audio:!1}).then(async x=>{var M,H;if(!this.lsSessionId){x.getTracks().forEach(L=>L.stop());return}(M=this.lsPermissionBanner)==null||M.remove(),this.lsPermissionBanner=null,this.lsStream=x,g.srcObject=x;const C=x.getVideoTracks()[0];if(C&&(C.onended=()=>{this.handleCloseLiveScreen(t)}),this.lsPip){const L=this.lsPip.querySelector("video");L&&(L.srcObject=x,await wi(L))}await wi(g);const I=Bi(g,this.lsPip)??g;await Kd(I,x,s,12,200);const E=((H=C==null?void 0:C.getSettings)==null?void 0:H.call(C).displaySurface)??"unknown";await this.sendClientEvent(t,"client_live_screen_started",{data:{session_id:d,scope:n,...n==="timed"&&o>0?{duration_sec:o}:{},display_surface:E,reason:a,target_fps:i}});const F=Math.round(1e3/i);this.lsCaptureInterval=setInterval(()=>{this.captureAndSendScreenFrame(t,d,s,a)},F),n==="timed"&&o>0&&(this.lsAutoStopTimeout=setTimeout(()=>{this.handleCloseLiveScreen(t)},o*1e3))}).catch(x=>{var I,E;const C=this.classifyLiveScreenShareFailure(x);this.lsSessionId=null,(I=this.lsStream)==null||I.getTracks().forEach(F=>F.stop()),this.lsStream=null,(E=this.lsPip)==null||E.remove(),this.lsPip=null,g.remove(),this.lsVideo=null,p.remove(),this.lsCanvas=null,this.emitLiveScreenShareFailure(t,d,A,C,x),this.showLiveScreenPermissionBanner(C,()=>this.handleOpenLiveScreen(e,t,A),()=>{var F;(F=this.lsPermissionBanner)==null||F.remove(),this.lsPermissionBanner=null})})})()}handleCloseLiveScreen(e){var A,n,i,s,a;const t=this.lsSessionId;this.lsSessionId=null,this.lsCaptureInterval&&(clearInterval(this.lsCaptureInterval),this.lsCaptureInterval=null),this.lsAutoStopTimeout&&(clearTimeout(this.lsAutoStopTimeout),this.lsAutoStopTimeout=null),(A=this.lsStream)==null||A.getTracks().forEach(o=>o.stop()),this.lsStream=null,(n=this.lsVideo)==null||n.remove(),this.lsVideo=null,(i=this.lsCanvas)==null||i.remove(),this.lsCanvas=null,(s=this.lsPip)==null||s.remove(),this.lsPip=null,(a=this.lsPermissionBanner)==null||a.remove(),this.lsPermissionBanner=null,t&&e&&this.sendClientEvent(e,"client_live_screen_stopped",{data:{session_id:t}})}async uploadLiveStreamFrame(e,t,A,n){const i=`frame_${A}.jpg`;if(typeof e.uploadMediaFrame=="function")return e.uploadMediaFrame(t,n,i);const s=e.serverUrl||"";let a="";try{a=new URL(s).origin}catch{a=s.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}const o=e.callId||"",l=`${a}/media/upload`,c=new FormData;c.append("file",t,i),c.append("call_id",o),c.append("reason",n);const d=await fetch(l,{method:"POST",body:c});if(!d.ok)throw new Error(`Upload HTTP ${d.status}`);const g=await d.json();if(!g.media_id||!g.url)throw new Error("Upload response missing media_id/url");return{media_id:g.media_id,url:g.url,content_type:g.content_type||"image/jpeg"}}async captureAndSendScreenFrame(e,t,A,n){if(!e||!this.lsVideo||!this.lsCanvas||!this.lsSessionId)return;const i=Bi(this.lsVideo,this.lsPip);if(!i||i.readyState<2||i.videoWidth===0)return;let s;try{s=await Ma(i,this.lsStream,A,.75)}catch{return}if(!s)return;const a=this.lsCanvas,o=i.videoWidth||A,l=i.videoHeight||A,c=Math.min(1,A/o);a.width=Math.round(o*c),a.height=Math.round(l*c);try{const{media_id:d,url:g,content_type:p}=await this.uploadLiveStreamFrame(e,s,t,n);if(!this.lsSessionId||this.lsSessionId!==t||!d||!g)return;const m=++this.lsFrameSeq;await this.sendClientEvent(e,"client_media_frame",{data:{session_id:t,source:"screen",frame_seq:m,media_id:d,media_url:g,content_type:p,reason:n,viewport:{width:a.width,height:a.height}}})}catch{}}createLiveScreenPip(e){const t=document.createElement("div");if(t.id="vnr-live-screen-pip",t.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(";"),t.innerHTML=`
2762
3043
  <video autoplay playsinline muted style="width:100%;height:100%;object-fit:contain;display:block;background:#020617"></video>
2763
3044
  <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
3045
  <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>
2765
3046
  SCREEN
2766
3047
  </div>
2767
3048
  <button id="vnr-screen-pip-stop" style="position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;background:rgba(15,23,42,0.8);border:1px solid rgba(255,255,255,0.1);color:#fff;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s,transform 0.2s;">✕</button>
2768
- `,!document.getElementById("vnr-pip-style")){const t=document.createElement("style");t.id="vnr-pip-style",t.textContent=`
3049
+ `,!document.getElementById("vnr-pip-style")){const A=document.createElement("style");A.id="vnr-pip-style",A.textContent=`
2769
3050
  @keyframes vnr-pip-pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.2);}}
2770
3051
  #vnr-live-screen-pip:hover { transform: scale(1.02); }
2771
3052
  #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=`
2773
- <video autoplay playsinline muted style="width:100%;height:100%;object-fit:cover;display:block;${r?"transform:scaleX(-1);":""}"></video>
3053
+ `,document.head.appendChild(A)}return t.querySelector("#vnr-screen-pip-stop").addEventListener("click",()=>e()),document.body.appendChild(t),t}async captureAndSendFrame(e,t,A,n){if(!e||!this.lvVideo||!this.lvCanvas||!this.lvSessionId)return;const i=Bi(this.lvVideo,this.lvPip);if(!i||i.readyState<2||i.videoWidth===0)return;let s;try{s=await Ma(i,this.lvStream,A,.75)}catch{return}if(!s)return;const a=this.lvCanvas,o=i.videoWidth||A,l=i.videoHeight||A,c=Math.min(1,A/o);a.width=Math.round(o*c),a.height=Math.round(l*c);try{const{media_id:d,url:g,content_type:p}=await this.uploadLiveStreamFrame(e,s,t,n);if(!this.lvSessionId||this.lvSessionId!==t||!d||!g)return;const m=++this.lvFrameSeq;await this.sendClientEvent(e,"client_media_frame",{data:{session_id:t,frame_seq:m,media_id:d,media_url:g,content_type:p,reason:n}})}catch{}}createLivePip(e,t){const A=document.createElement("div");A.id="vnr-live-pip";const n=e==="user";if(A.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(";"),A.innerHTML=`
3054
+ <video autoplay playsinline muted style="width:100%;height:100%;object-fit:cover;display:block;${n?"transform:scaleX(-1);":""}"></video>
2774
3055
  <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
3056
  <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>
2776
3057
  REC
2777
3058
  </div>
2778
3059
  <button id="vnr-pip-stop" style="position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;background:rgba(15,23,42,0.8);border:1px solid rgba(255,255,255,0.1);color:#fff;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s,transform 0.2s;">✕</button>
2779
- `,!document.getElementById("vnr-pip-style")){const s=document.createElement("style");s.id="vnr-pip-style",s.textContent=`
3060
+ `,!document.getElementById("vnr-pip-style")){const i=document.createElement("style");i.id="vnr-pip-style",i.textContent=`
2780
3061
  @keyframes vnr-pip-pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.2);}}
2781
3062
  #vnr-live-pip:hover { transform: scale(1.02); }
2782
3063
  #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=`
3064
+ `,document.head.appendChild(i)}return A.querySelector("#vnr-pip-stop").addEventListener("click",()=>t()),document.body.appendChild(A),A}injectStyles(){if(this.styleInjected||document.getElementById("vnr-preset-styles"))return;const e=document.createElement("style");e.id="vnr-preset-styles",e.textContent=vv,document.head.appendChild(e),this.styleInjected=!0}createOverlay(){const e=document.createElement("div");return e.className="vnr-overlay",document.body.appendChild(e),this.overlay=e,e}createModal(e,t,A){const n=document.createElement("div");return n.className="vnr-modal",n.style.position="relative",n.innerHTML=`
2784
3065
  <button class="vnr-close-btn" aria-label="Close">
2785
3066
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
2786
3067
  <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
2787
3068
  </svg>
2788
3069
  </button>
2789
- <h2 class="vnr-title">${e}</h2>
3070
+ <h2 class="vnr-title">${t}</h2>
2790
3071
  <div class="vnr-reason">
2791
3072
  <svg width="14" height="14" style="flex-shrink:0;margin-top:1px" fill="none" stroke="#9ca3af" stroke-width="2" viewBox="0 0 24 24">
2792
3073
  <path stroke-linecap="round" stroke-linejoin="round" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/>
2793
3074
  </svg>
2794
- <span>${t}</span>
3075
+ <span>${A}</span>
2795
3076
  </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=`
3077
+ `,e.appendChild(n),n}renderCalendar(e,t,A){this.bindActiveModalPreset(e,k.Calendar,t,A);const n=y=>{this.clearActiveModalPreset(),t({status:"success",preset_id:k.Calendar,...y})},i=y=>{this.clearActiveModalPreset(),A(y,{status:"cancelled"})},s=new Date;s.setHours(0,0,0,0),this.calViewYear=s.getFullYear(),this.calViewMonth=s.getMonth(),this.calSelectedTs=null,this.calSelectedTime=null;const a=e.clientFields.title||"Select Date & Time",o=e.args.reason||"Please select a preferred time for your appointment.",l=this.createOverlay(),c=this.createModal(l,a,o);c.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed the preset")});const d=document.createElement("div");c.appendChild(d);const g=document.createElement("div");g.style.display="none",c.appendChild(g);const p=document.createElement("div");p.className="vnr-actions",p.innerHTML=`
2797
3078
  <button class="vnr-cancel-btn">Cancel</button>
2798
3079
  <button class="vnr-confirm-btn" disabled>
2799
3080
  <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
3081
  Confirm
2801
3082
  </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=`
3083
+ `,c.appendChild(p);const m=p.querySelector(".vnr-confirm-btn");p.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),i("User cancelled")}),m.addEventListener("click",()=>{if(!this.calSelectedTs||!this.calSelectedTime)return;const y=new Date(this.calSelectedTs),x=Ia(this.calSelectedTime),C=y.getFullYear(),I=String(y.getMonth()+1).padStart(2,"0"),E=String(y.getDate()).padStart(2,"0"),F=`${C}-${I}-${E}`,M=e.clientFields.timezone||"";let H=typeof this.calSelectedTime=="object"?{...this.calSelectedTime}:void 0;if(H){for(const L of["start","startTime","end","endTime"])if(H[L]&&typeof H[L]=="string"&&(H[L].includes("T")||!isNaN(Date.parse(H[L]))))try{H[L]=Bv(new Date(H[L]),M)}catch{}}this.dismiss(),n({date:F,time:x,timestamp:this.calSelectedTs,formatted:`${y.toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"})} at ${x}`,slot_data:H})});const B=()=>{const y=new Date;y.setHours(0,0,0,0);const x=new Date(this.calViewYear,this.calViewMonth,1).getDay(),C=new Date(this.calViewYear,this.calViewMonth+1,0).getDate(),I=new Date(this.calViewYear,this.calViewMonth,1).toLocaleDateString("en-US",{month:"long",year:"numeric"}),E=this.calViewYear===y.getFullYear()&&this.calViewMonth===y.getMonth();d.innerHTML=`
2803
3084
  <div class="vnr-month-nav">
2804
- <button class="vnr-nav-btn" id="vnr-prev" ${C?"disabled":""}>
3085
+ <button class="vnr-nav-btn" id="vnr-prev" ${E?"disabled":""}>
2805
3086
  <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>
2806
3087
  </button>
2807
- <span class="vnr-month-label">${v}</span>
3088
+ <span class="vnr-month-label">${I}</span>
2808
3089
  <button class="vnr-nav-btn" id="vnr-next">
2809
3090
  <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><polyline points="9 18 15 12 9 6"/></svg>
2810
3091
  </button>
2811
3092
  </div>
2812
3093
  <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=`
3094
+ `,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 F=d.querySelector("#vnr-grid");["Su","Mo","Tu","We","Th","Fr","Sa"].forEach(M=>{const H=document.createElement("div");H.className="vnr-wd",H.textContent=M,F.appendChild(H)});for(let M=0;M<x;M++){const H=document.createElement("div");F.appendChild(H)}for(let M=1;M<=C;M++){const H=new Date(this.calViewYear,this.calViewMonth,M).getTime(),L=H<y.getTime(),N=H===y.getTime(),Y=this.calSelectedTs===H,q=document.createElement("div");q.style.textAlign="center";const W=document.createElement("button");W.className="vnr-day-btn",L&&W.classList.add("vnr-day-past"),N&&!Y&&W.classList.add("vnr-day-today"),Y&&W.classList.add("vnr-day-sel"),W.disabled=L,W.textContent=String(M),W.addEventListener("click",()=>{this.calSelectedTs=H,this.calSelectedTime=null,m.disabled=!0,B(),this.loadSlots(e,g,m)}),q.appendChild(W),F.appendChild(q)}};B()}loadSlots(e,t,A){const n=e.clientFields.slots_api_url;if(!this.calSelectedTs||!n){this.renderSlots(t,["09:00 AM","10:30 AM","01:00 PM","02:30 PM","04:00 PM"],A);return}const i=new Date(this.calSelectedTs),s=i.getFullYear(),a=String(i.getMonth()+1).padStart(2,"0"),o=String(i.getDate()).padStart(2,"0"),l=`${s}-${a}-${o}`,c=e.clientFields.timezone||"",d=wv(s,i.getMonth(),i.getDate(),c),g=d.start,p=d.end,m=E=>{if(typeof E!="string")return E;let F=E.replace(/\{\{date\}\}/g,l).replace(/\{\{timezone\}\}/g,c).replace(/\{\{start_of_day\}\}/g,g.toISOString()).replace(/\{\{end_of_day\}\}/g,p.toISOString());return Object.entries(e.clientFields).forEach(([M,H])=>{if(H!=null){const L=M.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),N=new RegExp(`\\{\\{${L}\\}\\}`,"g");F=F.replace(N,String(H))}}),F},B=(e.clientFields.slots_api_method||"GET").toUpperCase();let y={"Content-Type":"application/json"};try{Object.entries(JSON.parse(e.clientFields.slots_api_headers||"{}")).forEach(([E,F])=>{y[E]=m(String(F))})}catch{}let x={};try{Object.entries(JSON.parse(e.clientFields.slots_api_body||"{}")).forEach(([E,F])=>{x[E]=m(String(F))})}catch{}let C=m(n);const I={method:B,headers:y};if(B==="GET"){const E=new URLSearchParams(Object.entries(x).map(([F,M])=>[F,String(M)])).toString();E&&(C+=(C.includes("?")?"&":"?")+E)}else I.body=JSON.stringify(x);t.style.display="block",t.innerHTML='<div class="vnr-divider"></div><div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Loading slots…</div>',fetch(C,I).then(E=>{if(!E.ok)throw new Error(`HTTP ${E.status}`);return E.json()}).then(E=>{let F=[];if(Array.isArray(E))F=E;else if(E&&typeof E=="object"){for(const M of["slots","free_slots","times","data","available_slots"])if(Array.isArray(E[M])){F=E[M];break}}this.renderSlots(t,F,A)}).catch(()=>{t.innerHTML='<div class="vnr-divider"></div><div class="vnr-center" style="color:#ef4444">Failed to load slots. Please try again.</div>'})}renderSlots(e,t,A){const n=this.calSelectedTs?new Date(this.calSelectedTs).toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"}):"Available Times",i=t.some(a=>Ia(a).length>8)?2:3;if(e.style.display="block",e.innerHTML=`
2814
3095
  <div class="vnr-divider"></div>
2815
- <div class="vnr-section-label">${r}</div>
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=`
3096
+ <div class="vnr-section-label">${n}</div>
3097
+ ${t.length===0?'<div class="vnr-center">No slots available for this date.</div>':`<div class="vnr-slots-grid" style="grid-template-columns:repeat(${i},1fr)"></div>`}
3098
+ `,t.length===0)return;const s=e.querySelector(".vnr-slots-grid");t.forEach(a=>{const o=document.createElement("button");o.className="vnr-slot-btn",this.calSelectedTime!==null&&(typeof a=="object"&&typeof this.calSelectedTime=="object"?JSON.stringify(a)===JSON.stringify(this.calSelectedTime):a===this.calSelectedTime)&&o.classList.add("vnr-slot-sel"),o.textContent=Ia(a),o.addEventListener("click",()=>{this.calSelectedTime=a,A.disabled=!1,s.querySelectorAll(".vnr-slot-btn").forEach(c=>c.classList.remove("vnr-slot-sel")),o.classList.add("vnr-slot-sel")}),s.appendChild(o)})}collectFormFieldValues(e,t){const A={};for(const n of t){if(n.type==="checkbox"){const s=e.querySelector(`#vnr_${n.id}`);A[n.id]=!!(s!=null&&s.checked);continue}if(n.type==="radio"){const s=e.querySelector(`input[name="vnr_${n.id}"]:checked`);A[n.id]=(s==null?void 0:s.value)??"";continue}const i=e.querySelector(`#vnr_${n.id}`);A[n.id]=String((i==null?void 0:i.value)??"").trim()}return A}appendFormFieldElement(e,t,A){const n=document.createElement("div");n.className="vnr-field-wrap",n.dataset.fieldId=t.id;const i=t.placeholder||`Enter your ${t.label.toLowerCase()}`,s=l=>typeof l=="string"?l:l.value,a=l=>typeof l=="string"?l:l.label;if(t.type!=="checkbox"){const l=document.createElement("label");l.className="vnr-field-label",l.htmlFor=`vnr_${t.id}`,l.textContent=t.required?`${t.label} *`:t.label,n.appendChild(l)}switch(t.type){case"textarea":{const l=document.createElement("textarea");l.className="vnr-input vnr-textarea",l.id=`vnr_${t.id}`,l.rows=4,l.placeholder=i,typeof A=="string"&&(l.value=A),n.appendChild(l);break}case"select":{const l=document.createElement("select");l.className="vnr-input",l.id=`vnr_${t.id}`;const c=document.createElement("option");c.value="",c.textContent="Select…",l.appendChild(c);for(const d of t.options){const g=document.createElement("option");g.value=s(d),g.textContent=a(d),l.appendChild(g)}typeof A=="string"&&A&&(l.value=A),n.appendChild(l);break}case"radio":{const l=document.createElement("div");l.className="vnr-radio-group";const c=typeof A=="string"?A:"";t.options.forEach((d,g)=>{const p=document.createElement("label");p.className="vnr-radio-row";const m=document.createElement("input");m.type="radio",m.name=`vnr_${t.id}`,m.id=`vnr_${t.id}_${g}`;const B=s(d);m.value=B,c&&c===B&&(m.checked=!0);const y=document.createElement("span");y.textContent=a(d),p.appendChild(m),p.appendChild(y),l.appendChild(p)}),n.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_${t.id}`,c.checked=A===!0||A==="true";const d=document.createElement("span");d.textContent=t.required?`${t.label} *`:t.label,l.appendChild(c),l.appendChild(d),n.appendChild(l);break}default:{const l=document.createElement("input");l.className="vnr-input",l.id=`vnr_${t.id}`,l.placeholder=i,t.type==="phone"?l.type="tel":t.type==="email"||t.type==="number"||t.type==="date"?l.type=t.type:l.type="text",typeof A=="string"&&(l.value=A),n.appendChild(l);break}}const o=document.createElement("p");o.className="vnr-field-error",o.style.display="none",n.appendChild(o),e.appendChild(n)}showFormFieldErrors(e,t){e.querySelectorAll(".vnr-field-wrap").forEach(A=>{var a,o;const n=A.dataset.fieldId;if(!n)return;const i=A.querySelector(".vnr-field-error"),s=t[n];s&&i?(i.textContent=s,i.style.display="block",(a=A.querySelector(".vnr-input, .vnr-textarea"))==null||a.classList.add("vnr-input-error")):i&&(i.style.display="none",(o=A.querySelector(".vnr-input, .vnr-textarea"))==null||o.classList.remove("vnr-input-error"))})}renderForm(e,t,A){this.bindActiveModalPreset(e,k.Form,t,A);const n=y=>{this.clearActiveModalPreset(),t({status:"success",preset_id:k.Form,...y})},i=y=>{this.clearActiveModalPreset(),A(y,{status:"cancelled"})},s=e.args.title||e.clientFields.title||"Please fill out this form",a=e.args.reason||"Please provide the following information.",o=Hr(e.args.fields??e.clientFields.fields),l=mv(o,gv(e.args,e.clientFields)),c=this.createOverlay(),d=this.createModal(c,s,a);d.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed")});const g=document.createElement("div");if(g.className="vnr-fields",o.length===0){const y=document.createElement("p");y.className="vnr-form-error",y.style.color="#dc2626",y.style.fontSize="13px",y.textContent="No form fields configured.",g.appendChild(y)}else o.forEach(y=>this.appendFormFieldElement(g,y,l[y.id]));d.appendChild(g);const p=document.createElement("p");p.className="vnr-form-error",p.style.cssText="display:none;color:#dc2626;font-size:13px;margin:8px 0 0;",d.appendChild(p);const m=document.createElement("div");m.className="vnr-actions",m.style.marginTop="16px",m.innerHTML=`
2818
3099
  <button class="vnr-cancel-btn">Cancel</button>
2819
3100
  <button class="vnr-confirm-btn">
2820
3101
  <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
3102
  Submit
2822
3103
  </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=`
3104
+ `,d.appendChild(m),m.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),i("User cancelled")});const B=m.querySelector(".vnr-confirm-btn");o.length===0&&(B.disabled=!0),B.addEventListener("click",()=>{if(o.length===0){p.textContent="No form fields configured.",p.style.display="block";return}const y=this.collectFormFieldValues(d,o),x=hv(o,y);if(Object.keys(x).length>0){this.showFormFieldErrors(d,x),p.textContent="Please fix the highlighted fields.",p.style.display="block";const I=Object.keys(x)[0],E=d.querySelector(`[data-field-id="${I}"]`),F=E==null?void 0:E.querySelector("input, textarea, select");F==null||F.focus();return}p.style.display="none",this.showFormFieldErrors(d,{}),B.disabled=!0,B.innerHTML='<div class="vnr-spinner"></div>';const C=pv(o,y);setTimeout(()=>{this.dismiss(),n(C)},300)})}renderCamera(e,t,A,n){this.bindActiveModalPreset(e,k.Camera,t,A);const i=Z=>{this.clearActiveModalPreset(),t({status:"success",preset_id:k.Camera,...Z})},s=(Z,ce="cancelled")=>{this.clearActiveModalPreset(),A(Z,{status:ce})},a=this,o=e.clientFields.title||"Take a Photo",l=e.clientFields.description||"Point your camera at the subject, then tap capture.",c=e.clientFields.facing_mode||e.args.facing_mode||"environment",d=e.clientFields.reason||"camera_capture",g=e.clientFields.liveness_check===!0||e.clientFields.liveness_check==="true"||e.args.liveness_check===!0||e.args.liveness_check==="true";let p=null,m=null;this.stopCaptureCamera(),this.captureActive=!0;const B=this.createOverlay(),y=document.createElement("div");y.className="vnr-modal",y.style.cssText="position:relative;max-width:480px;width:100%",y.innerHTML=`
2824
3105
  <button class="vnr-close-btn" aria-label="Close">
2825
3106
  <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
3107
  </button>
2827
- <h2 class="vnr-title" style="padding-right:32px">${a}</h2>
3108
+ <h2 class="vnr-title" style="padding-right:32px">${o}</h2>
2828
3109
  <p style="margin:0 0 14px;font-size:13px;color:#6b7280;line-height:1.5">${l}</p>
2829
3110
 
2830
3111
  <div class="vnr-liveness-toggle-wrap" style="display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:8px 12px">
@@ -2867,20 +3148,15 @@ ${h}`;A({status:"success",preset_id:b.PageScan,viewport:d.viewport,element_count
2867
3148
  Capture & Send
2868
3149
  </button>
2869
3150
  </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=`
3151
+ `,B.appendChild(y);const x=y.querySelector("#vnr-cam-video"),C=y.querySelector("#vnr-cam-canvas"),I=y.querySelector("#vnr-cam-overlay"),E=y.querySelector("#vnr-cam-status"),F=y.querySelector("#vnr-cam-capture"),M=y.querySelector("#vnr-cam-liveness-toggle"),H=y.querySelector("#vnr-liveness-progress-container"),L=y.querySelector("#vnr-liveness-bar"),N=y.querySelector("#vnr-liveness-pct"),Y=y.querySelector("#vnr-cam-guide"),q=y.querySelector("#vnr-cam-guide-text"),W=()=>{m&&(clearInterval(m),m=null),this.captureLivenessInterval=null,p==null||p.getTracks().forEach(Z=>Z.stop()),p=null,a.captureStream=null,x.srcObject=null};y.querySelector(".vnr-close-btn").addEventListener("click",()=>{W(),this.captureActive=!1,this.dismiss(),s("User closed")}),y.querySelector("#vnr-cam-cancel").addEventListener("click",()=>{W(),this.captureActive=!1,this.dismiss(),s("User cancelled")});const re=()=>{this.captureActive&&(I.style.display="flex",I.innerHTML=`
2871
3152
  <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
3153
  <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."}
2874
-
2875
- COORDINATES ARE NORMALIZED VIEWPORT (0–1), NOT JPEG PIXELS. viewport=${c.viewport.width}x${c.viewport.height}
2876
-
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=`
3154
+ `,F.disabled=!0,navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:c}},audio:!1}).then(Z=>{if(!this.captureActive){Z.getTracks().forEach(ce=>ce.stop());return}return p=Z,a.captureStream=Z,x.srcObject=Z,x.play().catch(()=>{})}).then(()=>{if(!(!this.captureActive||!p)){if(I.style.display="none",!y.querySelector(".vnr-live-badge")){const Z=document.createElement("div");Z.className="vnr-live-badge",Z.innerHTML='<span class="vnr-live-dot"></span>LIVE',y.querySelector("#vnr-cam-wrap").appendChild(Z)}M.checked=g,oe()}}).catch(()=>{this.captureActive&&(this.notifyCameraPermissionDenied(n,e.toolCallId),this.fillCameraPermissionPrompt(I,{onRetry:re,onDismiss:()=>{W(),this.captureActive=!1,this.dismiss(),s("Camera permission denied","cancelled")}}))}))};re();function oe(){m&&(clearInterval(m),m=null,a.captureLivenessInterval=null),M.checked?(H.style.display="block",Y.style.display="block",F.disabled=!0,j()):(H.style.display="none",Y.style.display="none",F.disabled=!1)}M.addEventListener("change",oe);function j(){let Z=null;const ce=[];let ve=1,Se=0,Pe=0,$e=0,Ge=!1;const Rt=document.createElement("canvas"),_A=Rt.getContext("2d");Rt.width=80,Rt.height=60,L.style.width="0%",L.style.backgroundColor="#6366f1",N.style.color="#6366f1",N.innerText="0%",Y.style.borderColor="rgba(255,255,255,0.45)",Y.style.boxShadow="0 0 0 9999px rgba(15,23,42,0.6)",q.innerText="Align your face in center",q.style.color="#fff",m=setInterval(()=>{if(!p||x.paused||x.ended)return;_A.drawImage(x,0,0,80,60);const Kt=_A.getImageData(0,0,80,60).data;if(Z){let ut=0;for(let He=0;He<Kt.length;He+=4)ut+=Math.abs(Kt[He]-Z[He]),ut+=Math.abs(Kt[He+1]-Z[He+1]),ut+=Math.abs(Kt[He+2]-Z[He+2]);const pt=ut/(Kt.length/4*3);if(Pe===0){$e++,ce.push(pt);const He=Math.min(100,Math.round($e/15*100));L.style.width=`${He*.3}%`,N.innerText=`${Math.round(He*.3)}%`,q.innerText="Hold still to calibrate…",q.style.color="#a5b4fc",$e>=15&&(ve=ce.reduce((Ha,Ta)=>Ha+Ta,0)/ce.length,ve<.2&&(ve=.2),Pe=1,$e=0,L.style.width="30%",N.innerText="30%")}else if(Pe===1){q.innerText="Now blink or turn head slightly",q.style.color="#ffd2d2";const He=Math.max(3,ve*3.5);if(pt>He&&pt<30){Se+=15,Se>70&&(Se=70,Ge=!0);const aA=30+Se;L.style.width=`${aA}%`,N.innerText=`${aA}%`}else Ge&&pt<=He*1.5&&(Pe=2,L.style.width="100%",L.style.backgroundColor="#10b981",N.innerText="100%",N.style.color="#10b981",q.innerText="✓ Liveness Verified! Click Capture & Send.",q.style.color="#10b981",Y.style.borderColor="#10b981",Y.style.boxShadow="0 0 0 9999px rgba(16,185,129,0.2)",F.disabled=!1,m&&(clearInterval(m),m=null,a.captureLivenessInterval=null))}}Z=Kt},100),a.captureLivenessInterval=m}F.addEventListener("click",async()=>{if(!p||x.videoWidth===0)return;C.width=x.videoWidth,C.height=x.videoHeight,C.getContext("2d").drawImage(x,0,0),W(),y.querySelector("#vnr-cam-wrap").setAttribute("style","display:none"),y.querySelector(".vnr-liveness-toggle-wrap")&&(y.querySelector(".vnr-liveness-toggle-wrap").style.display="none"),H.style.display="none",F.disabled=!0,E.style.display="block",E.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Sending photo…</div>';try{const ce=await new Promise(Se=>C.toBlob(Pe=>Se(Pe),"image/jpeg",.85));if(!ce)throw new Error("Capture failed");const ve=new File([ce],`capture-${Date.now()}.jpg`,{type:"image/jpeg"});if(n&&typeof n.uploadMedia=="function"){const{media_id:Se,url:Pe}=await n.uploadMedia(ve,d,"User captured a photo via camera");E.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ Photo sent!</div>',setTimeout(()=>{this.dismiss(),i({file_name:ve.name,file_type:ve.type,file_size:ve.size,media_id:Se,url:Pe,message:"User captured and sent a photo."})},400)}else{const Se=C.toDataURL("image/jpeg",.85);E.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ Photo ready!</div>',setTimeout(()=>{this.dismiss(),i({file_name:ve.name,data_url:Se,message:"User captured a photo."})},400)}}catch(ce){E.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(ce==null?void 0:ce.message)||"Capture failed"}</div>`}})}renderClipRegion(e,t,A,n){const i=e.args??{},s=String(i.reason??e.clientFields.reason??"page_clip"),a=String(i.prompt??i.message??e.clientFields.default_prompt??"").trim(),o=String(e.clientFields.hint??(a?`Select the area to answer: "${a}"`:"Drag to select an area — release to clip.")),l=Number(e.clientFields.min_region_px??24),c=d=>{Ms(),A(d,{status:"cancelled"})};if(typeof document>"u"){c("Page clip is only available in browser environments");return}E4({hint:o,minSizePx:l}).then(async d=>{if(!d){c("User cancelled region selection");return}const g=new File([d.blob],`clip-${Date.now()}.jpg`,{type:"image/jpeg"}),p=a?`User clipped a page region and asked: ${a}`:"User clipped a region of the page and sent it for analysis.";try{await this.completeBlockingMediaTool(n,g,s,{preset_id:k.ClipRegion,region:d.region,viewport:d.viewport,pixel_size:d.pixelSize,prompt:a||void 0,message:p},t)}catch(m){const B=m instanceof Error?m.message:"Clip upload failed";A(B,{status:"cancelled"})}}).catch(d=>{c(d instanceof Error?d.message:"Region clip failed")})}async completeBlockingMediaTool(e,t,A,n,i,s){const a=e==null?void 0:e.uploadMediaForToolResult;let o,l;if(a&&typeof a=="function")try{const d=await a.call(e,t,A);o=d.media_id,l=d.url}catch{}if(o&&l){if(i({status:"success",media_id:o,url:l,...n}),s!=null&&s.notifyVision){const d=e==null?void 0:e.sendMediaUpdate;typeof d=="function"&&d.call(e,{media_id:o,media_url:l,content_type:s.notifyVision.contentType??t.type??"image/jpeg",reason:A,message:s.notifyVision.message??String(n.message??"")})}return}const c=await new Promise((d,g)=>{const p=new FileReader;p.onload=()=>d(String(p.result)),p.onerror=()=>g(new Error("Failed to read media blob")),p.readAsDataURL(t)});i({status:"success",data_url:c,...n})}renderScreenVision(e,t,A,n){const i=e.args??{},s=String(i.reason??e.clientFields.reason??"screen_vision"),a=String(i.prompt??i.message??e.clientFields.default_prompt??"").trim(),o=z4(i.max_width??e.clientFields.max_width),l=Number(i.jpeg_quality??e.clientFields.jpeg_quality??.72),d=String(i.capture_surface??e.clientFields.capture_surface??"tab").toLowerCase()==="display"?"display":"tab",g=d==="display"&&i.reuse_live_screen!==!1&&e.clientFields.reuse_live_screen!==!1;if(typeof document>"u"){A("Screen vision is only available in browser environments");return}const p=eA();p.setVoiceState("processing"),p.dismissPointing(),p.hide(),(async()=>{let m=()=>{};try{const B=g&&this.lsStream?this.lsStream:null,y=g&&this.lsVideo?this.lsVideo:null,x=Number.isFinite(l)?Math.min(1,Math.max(.4,l)):.72,{capture:C,release:I}=await _4({maxWidth:o,quality:x,mode:B?"display":d,existingStream:B,existingVideo:y});m=I;const E=ks({maxElements:80}),F=Kn(E,C.widthPx,C.heightPx),M=K4(E,C.widthPx,C.heightPx);p.hide(),p.setCaptureContext({widthPx:C.widthPx,heightPx:C.heightPx,viewportWidthCss:C.viewportWidthCss,viewportHeightCss:C.viewportHeightCss,label:C.label,layoutElements:F});const H=gw({prompt:a||void 0,captures:[{label:C.label,widthPx:C.widthPx,heightPx:C.heightPx,viewportWidthCss:C.viewportWidthCss,viewportHeightCss:C.viewportHeightCss,isPrimary:C.isPrimary}],layoutSummary:M});p.setVoiceState("idle"),p.show();const L={preset_id:k.ScreenVision,message:H,prompt:a||void 0,coordinate_system:"screenshot_pixels",capture_surface:d,screenshot_width:C.widthPx,screenshot_height:C.heightPx,viewport_width_css:C.viewportWidthCss,viewport_height_css:C.viewportHeightCss,jpeg_quality:x,display_surface:C.displaySurface,capture_label:C.label,page_layout:F};if(!n){t({status:"success",...L});return}await this.completeBlockingMediaTool(n,C.blob,s,L,t,{notifyVision:{message:H,contentType:"image/jpeg"}})}catch(B){p.setVoiceState("idle");const y=B instanceof Error?B.message:"Screen vision capture failed";A(y,{status:"cancelled"})}finally{m()}})()}renderPointAt(e,t,A){const n=e.args??{},i=e.clientFields??{},s=eA(),a=s.getCaptureContext(),o=String(n.point_tag??i.point_tag??"").trim();if(o){const m=pw(o);if(m.coordinate){const B=Tl({label:m.elementLabel??void 0,modelX:m.coordinate.x,modelY:m.coordinate.y,captureScreenshotWidth:a==null?void 0:a.widthPx,captureScreenshotHeight:a==null?void 0:a.heightPx,captureViewportWidth:a==null?void 0:a.viewportWidthCss,captureViewportHeight:a==null?void 0:a.viewportHeightCss,staleLayoutElements:a==null?void 0:a.layoutElements});s.setVoiceState("responding"),s.pointAtScreenshotPixels(B.x,B.y,{label:B.label||m.elementLabel||void 0,screenshotWidth:B.screenshotWidth,screenshotHeight:B.screenshotHeight,viewportWidthCss:B.viewportWidthCss,viewportHeightCss:B.viewportHeightCss}),t({status:"success",preset_id:k.PointAt,message:B.label?`Buddy pointing at "${B.label}" (${Math.round(B.x)}, ${Math.round(B.y)}) [${B.source}]`:`Buddy pointing at (${Math.round(B.x)}, ${Math.round(B.y)})`}),window.setTimeout(()=>s.setVoiceState("idle"),3200);return}t({status:"success",preset_id:k.PointAt,message:"No pointing coordinate (POINT:none)"});return}const l=Number(n.x??i.x),c=Number(n.y??i.y);if(!Number.isFinite(l)||!Number.isFinite(c)){A("point_at_screen requires x and y in screenshot pixel space");return}const d=String(n.label??i.label??"").trim()||void 0,g=String(n.bubble_text??i.bubble_text??"").trim()||void 0,p=Tl({label:d,modelX:l,modelY:c,captureScreenshotWidth:Number(n.screenshot_width??i.screenshot_width??(a==null?void 0:a.widthPx)),captureScreenshotHeight:Number(n.screenshot_height??i.screenshot_height??(a==null?void 0:a.heightPx)),captureViewportWidth:Number(n.viewport_width_css??i.viewport_width_css??(a==null?void 0:a.viewportWidthCss)),captureViewportHeight:Number(n.viewport_height_css??i.viewport_height_css??(a==null?void 0:a.viewportHeightCss)),staleLayoutElements:a==null?void 0:a.layoutElements});s.setVoiceState("responding"),s.show(),s.pointAtScreenshotPixels(p.x,p.y,{label:p.label||d,bubbleText:g,screenshotWidth:p.screenshotWidth,screenshotHeight:p.screenshotHeight,viewportWidthCss:p.viewportWidthCss,viewportHeightCss:p.viewportHeightCss}),t({status:"success",preset_id:k.PointAt,message:p.label||d?`Buddy pointing at "${p.label||d}" (${Math.round(p.x)}, ${Math.round(p.y)}) [${p.source}]`:`Buddy pointing at (${Math.round(p.x)}, ${Math.round(p.y)})`}),window.setTimeout(()=>s.setVoiceState("idle"),3200)}renderDrawOnScreen(e,t,A){const n=e.args??{},i=e.clientFields??{},s=eA(),a=s.getCaptureContext(),o=n.clear===!0||i.clear===!0||n.clear_existing===!0||i.clear_existing===!0;let l=n.commands??i.commands??n.commands_json??i.commands_json;if(typeof l=="string")try{l=JSON.parse(l)}catch{A("draw_on_screen: commands must be a JSON array");return}const c=Ol(l);if(!c.length){A("draw_on_screen requires a non-empty commands array");return}const d=n.ttl_ms??i.ttl_ms;let g;if(d!=null&&d!==""){const x=Number(d);g=Number.isFinite(x)&&x>0?x:null}const p=n.animate_ms??i.animate_ms,m=Number(p),B=n.allow_overlap===!0||i.allow_overlap===!0,y=s.drawOnScreen(c,{clear:o,ttlMs:g,animateMs:Number.isFinite(m)&&m>0?m:void 0,allowOverlap:B,screenshotWidth:Number(n.screenshot_width??i.screenshot_width??(a==null?void 0:a.widthPx)),screenshotHeight:Number(n.screenshot_height??i.screenshot_height??(a==null?void 0:a.heightPx)),viewportWidthCss:Number(n.viewport_width_css??i.viewport_width_css??(a==null?void 0:a.viewportWidthCss)),viewportHeightCss:Number(n.viewport_height_css??i.viewport_height_css??(a==null?void 0:a.viewportHeightCss))});if(y.rejected||y.overlapDetected){t({status:"error",overlap_detected:!0,preset_id:k.DrawOnScreen,drawn:0,message:y.message??"Draw rejected: overlap detected",conflicts:y.conflicts,hint:"Adjust coordinates, call clear_screen_draw first, or set allow_overlap:true to draw on existing shapes."});return}s.show(),t({status:"success",preset_id:k.DrawOnScreen,drawn:y.drawn,message:`Drew ${y.drawn} shape(s) on screen (${c.map(x=>x.op).join(", ")})`})}renderClearScreenDraw(e,t,A){eA().clearDrawings(),t({status:"success",preset_id:k.ClearScreenDraw,message:"Screen annotations cleared"})}renderHighlightOnScreen(e,t,A){const n=e.args??{},i=e.clientFields??{},s=eA(),a=s.getCaptureContext(),o=String(n.label??i.label??"").trim(),l=String(n.element_id??i.element_id??"").trim(),c=String(n.css_selector??i.css_selector??n.selector??i.selector??"").trim();if(!o&&!l&&!c){A("highlight_on_screen requires label, element_id, or css_selector");return}const d=Kl({label:o||void 0,element_id:l||void 0,css_selector:c||void 0,staleLayoutElements:a==null?void 0:a.layoutElements,captureCtx:a,padding:Number(n.padding??i.padding??8),stroke:String(n.color??n.stroke??i.color??i.stroke??"#3b82f6"),rx:Number(n.rx??i.rx)||void 0});if(!d){A(`Element not found for highlight (${l||o||c})`);return}try{const E=document.querySelector(d.css_selector);E==null||E.scrollIntoView({behavior:"smooth",block:"center"})}catch{}const g=n.clear===!0||i.clear===!0,p=n.ttl_ms??i.ttl_ms;let m;if(p!=null&&p!==""){const E=Number(p);m=Number.isFinite(E)&&E>0?E:null}const B=n.animate_ms??i.animate_ms,y=Number(B),x=n.allow_overlap===!0||i.allow_overlap===!0,C=n.point_at!==!1&&i.point_at!==!1,I=s.drawOnScreen([d.command],{clear:g,ttlMs:m,animateMs:Number.isFinite(y)&&y>0?y:void 0,allowOverlap:x,screenshotWidth:a==null?void 0:a.widthPx,screenshotHeight:a==null?void 0:a.heightPx,viewportWidthCss:a==null?void 0:a.viewportWidthCss,viewportHeightCss:a==null?void 0:a.viewportHeightCss});if(I.rejected||I.overlapDetected){t({status:"error",overlap_detected:!0,preset_id:k.HighlightOnScreen,drawn:0,message:I.message??"Highlight rejected: overlap detected",conflicts:I.conflicts,hint:"Call clear_screen_draw first or set allow_overlap:true."});return}C&&(s.setVoiceState("responding"),s.pointAtScreenshotPixels(d.center_x,d.center_y,{label:d.label,screenshotWidth:a==null?void 0:a.widthPx,screenshotHeight:a==null?void 0:a.heightPx,viewportWidthCss:a==null?void 0:a.viewportWidthCss,viewportHeightCss:a==null?void 0:a.viewportHeightCss}),window.setTimeout(()=>s.setVoiceState("idle"),3200)),s.show(),t({status:"success",preset_id:k.HighlightOnScreen,message:`Highlighted "${d.label}" (${d.bbox.width}x${d.bbox.height}px box)`,element_label:d.label,css_selector:d.css_selector,bbox:d.bbox,center_x:d.center_x,center_y:d.center_y})}renderUpload(e,t,A,n){this.bindActiveModalPreset(e,k.Upload,t,A);const i=E=>{this.clearActiveModalPreset(),t({status:"success",preset_id:k.Upload,...E})},s=E=>{this.clearActiveModalPreset(),A(E,{status:"cancelled"})},a=e.clientFields.title||"Upload a File",o=e.clientFields.description||"Drop or select a file to send to your agent.",l=e.clientFields.reason||"upload",c=e.clientFields.accept||"image/*,application/pdf,text/plain,text/csv";let d=null;const g=this.createOverlay(),p=document.createElement("div");p.className="vnr-modal",p.style.cssText="position:relative;max-width:480px;width:100%",p.innerHTML=`
2879
3155
  <button class="vnr-close-btn" aria-label="Close">
2880
3156
  <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
3157
  </button>
2882
- <h2 class="vnr-title" style="padding-right:32px">${o}</h2>
2883
- <p style="margin:0 0 14px;font-size:13px;color:#6b7280;line-height:1.5">${a}</p>
3158
+ <h2 class="vnr-title" style="padding-right:32px">${a}</h2>
3159
+ <p style="margin:0 0 14px;font-size:13px;color:#6b7280;line-height:1.5">${o}</p>
2884
3160
  <div class="vnr-dropzone" id="vnr-drop-zone">
2885
3161
  <div style="font-size:32px;margin-bottom:8px">📁</div>
2886
3162
  <p style="margin:0 0 4px;font-weight:600;color:#374151;font-size:14px">Drag & drop here</p>
@@ -2898,29 +3174,28 @@ ${d}`,g={layout:c,elements:c.elements,element_count:c.elements.length,layout_sum
2898
3174
  Upload & Send
2899
3175
  </button>
2900
3176
  </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=`
3177
+ `,g.appendChild(p);const m=p.querySelector("#vnr-drop-zone"),B=p.querySelector("#vnr-file-input"),y=p.querySelector("#vnr-file-preview"),x=p.querySelector("#vnr-upload-status"),C=p.querySelector("#vnr-up-submit");p.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),s("User closed")}),p.querySelector("#vnr-up-cancel").addEventListener("click",()=>{this.dismiss(),s("User cancelled")});const I=E=>{d=E,m.style.display="none";const F=E.type.startsWith("image/")?"🖼️":E.type.includes("pdf")?"📄":"📁",M=(E.size/1024).toFixed(1);y.style.display="block",y.innerHTML=`
2902
3178
  <div style="display:flex;align-items:center;gap:10px">
2903
- <span style="font-size:28px">${y}</span>
3179
+ <span style="font-size:28px">${F}</span>
2904
3180
  <div style="flex:1;min-width:0">
2905
- <p style="margin:0;font-weight:600;font-size:13px;color:#111;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">${C.name}</p>
2906
- <p style="margin:3px 0 0;font-size:11px;color:#6b7280">${C.type||"unknown"} · ${Q} KB</p>
3181
+ <p style="margin:0;font-weight:600;font-size:13px;color:#111;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">${E.name}</p>
3182
+ <p style="margin:3px 0 0;font-size:11px;color:#6b7280">${E.type||"unknown"} · ${M} KB</p>
2907
3183
  </div>
2908
3184
  <button id="vnr-remove-file" style="width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;color:#6b7280;flex-shrink:0">
2909
3185
  <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
3186
  </button>
2911
3187
  </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 {
3188
+ `,y.querySelector("#vnr-remove-file").addEventListener("click",()=>{d=null,y.style.display="none",m.style.display="block",C.disabled=!0}),C.disabled=!1};m.addEventListener("click",()=>B.click()),m.addEventListener("dragover",E=>{E.preventDefault(),m.classList.add("drag")}),m.addEventListener("dragleave",()=>m.classList.remove("drag")),m.addEventListener("drop",E=>{var M;E.preventDefault(),m.classList.remove("drag");const F=(M=E.dataTransfer)==null?void 0:M.files[0];F&&I(F)}),B.addEventListener("change",()=>{var F;const E=(F=B.files)==null?void 0:F[0];E&&I(E)}),C.addEventListener("click",async()=>{if(!d)return;const E=d;m.style.display="none",y.style.display="none",x.style.display="block",x.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Uploading…</div>',C.disabled=!0;try{if(n&&typeof n.uploadMedia=="function"){const{media_id:F,url:M}=await n.uploadMedia(E,l,`User uploaded: ${E.name}`);x.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ File sent!</div>',setTimeout(()=>{this.dismiss(),i({file_name:E.name,file_type:E.type,file_size:E.size,media_id:F,url:M,message:`User uploaded: ${E.name}`})},400)}else{const F=new FileReader;F.onload=M=>{x.innerHTML='<div class="vnr-center" style="color:#22c55e">✓ File ready!</div>',setTimeout(()=>{this.dismiss(),i({file_name:E.name,file_type:E.type,file_size:E.size,data_url:M.target.result,message:`User uploaded: ${E.name}`})},400)},F.readAsDataURL(E)}}catch(F){x.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(F==null?void 0:F.message)||"Upload failed. Please try again."}</div>`,C.disabled=!1,this.dismiss(),this.clearActiveModalPreset(),A((F==null?void 0:F.message)||"Upload failed",{status:"cancelled"})}})}extractElementRoute(e){const t=e.args||{},A=e.clientFields||{};return String(t.route||A.route||t.target_route||A.target_route||"").trim()}normalizeRouteForCompare(e){const t=(e.trim()||"/").split("#")[0],A=t.startsWith("/")?t:`/${t}`;try{const n=new URL(A,window.location.origin);return`${n.pathname}${n.search}`||"/"}catch{return A||"/"}}isCurrentRoute(e){const t=this.normalizeRouteForCompare(e);return(`${window.location.pathname}${window.location.search}`||"/")===t}parseDomTarget(e){const t=e.trim();return t?/^[.#\[]/.test(t)||t.includes(" ")||t.includes(">")?{selector:t}:{elementId:t.replace(/^#/,"")}:{}}findDomTarget(e){if(e.selector)try{const t=document.querySelector(e.selector);if(t)return t}catch{}return e.elementId?document.getElementById(e.elementId.replace(/^#/,"")):null}waitForRouteReady(e,t,A=6e3,n=100){return new Promise(i=>{const s=Date.now()+A,a=!!(t.elementId||t.selector),o=()=>{const l=this.isCurrentRoute(e),c=a?!!this.findDomTarget(t):!0;if(l&&c){i(!0);return}if(Date.now()>=s){i(l);return}window.setTimeout(o,n)};window.setTimeout(o,80)})}dispatchAgentNavigate(e,t){dh(e,{presetId:t.presetId,toolName:t.toolName});const A={url:e,path:e,handled:!1,initiated_by:"agent",preset_id:t.presetId};return window.dispatchEvent(new CustomEvent("vanira:navigate",{detail:A,cancelable:!0})),A}async withElementRoute(e,t,A,n,i){if(!e){n({navigated:!1});return}if(this.isCurrentRoute(e)){n({navigated:!1,route:e});return}const s=this.resolveNavigateTarget(e);if("external"in s){A("Element route must be a same-origin path");return}const a=s.internal;if(!this.dispatchAgentNavigate(a,{presetId:i,toolName:"element_route"}).handled){window.location.assign(a);return}if(!await this.waitForRouteReady(a,t)){A(`Timed out navigating to ${a} for element action`);return}n({navigated:!0,route:a})}resolveNavigateTarget(e){const t=e.trim()||"/";if(t.startsWith("http://")||t.startsWith("https://"))try{const A=new URL(t);return A.origin===window.location.origin?{internal:`${A.pathname}${A.search}${A.hash}`||"/"}:{external:t}}catch{return{internal:t}}return{internal:t}}renderNavigate(e,t,A){var l,c;const n=String(((l=e.clientFields)==null?void 0:l.target_url)||((c=e.args)==null?void 0:c.target_url)||"/"),i=e.toolCallId;if(i&&this.settledNavigateToolCallIds.has(i))return;this.activeNavigate={ctx:e,onComplete:t,onCancel:A,targetUrl:n};const s=this.resolveNavigateTarget(n);if("external"in s){window.open(s.external,"_blank","noopener,noreferrer"),this.completeNavigate({navigation_type:"external"});return}const a=s.internal;if(!this.dispatchAgentNavigate(a,{presetId:k.Navigate,toolName:"vanira_navigate"}).handled){this.cancelNavigate("No SPA listener handled vanira:navigate","cancelled");return}this.completeNavigate({path:a,navigation_type:"internal"})}renderHighlight(e,t,A){const n=e.args||{},i=e.clientFields||{};let s=String(n.css_selector||i.css_selector||n.selector||i.selector||"").trim();const a=String(n.label||i.label||"").trim(),o=String(n.element_id||i.element_id||"").trim(),l=String(n.highlight_color||i.highlight_color||n.color||i.color||"#a855f7"),c=Number(n.duration_ms||i.duration_ms||3e3);if(!s&&(a||o)){const x=eA().getCaptureContext(),C=Kl({label:a||void 0,element_id:o||void 0,staleLayoutElements:x==null?void 0:x.layoutElements,captureCtx:x});C&&(s=C.css_selector)}if(!s){A("No css_selector, label, or element_id provided for highlight");return}const d=document.querySelector(s);if(!d){A(`Element not found for selector: "${s}"`);return}const g=d.style.outline,p=d.style.outlineOffset,m=d.style.boxShadow,B=d.style.transition,y=d.style.scrollMarginTop;d.style.transition="outline 0.2s ease, box-shadow 0.2s ease",d.style.outline=`3px solid ${l}`,d.style.outlineOffset="6px",d.style.boxShadow=`0 0 0 8px ${l}33, 0 0 32px ${l}88`,d.style.scrollMarginTop="100px",d.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{d.style.outline=g,d.style.outlineOffset=p,d.style.boxShadow=m,d.style.transition=B,d.style.scrollMarginTop=y},c),t({status:"success",preset_id:k.HighlightElement,message:`Element highlighted: ${s}`})}renderClickElement(e,t,A){const n=e.args||{},i=e.clientFields||{},s=String(n.element_id||i.element_id||n.id||i.id||"").trim().replace(/^#/,""),a=n.scroll_before_click??i.scroll_before_click??!0,o=this.extractElementRoute(e);if(!s){A("No element_id provided for click");return}this.withElementRoute(o,{elementId:s},A,l=>{this.executeClickElement(s,a,l,t,A)},k.ClickElement)}executeClickElement(e,t,A,n,i){const s=document.getElementById(e);if(!s){i(`Element not found for id: "${e}"`);return}if(!this.isElementClickable(s)){i(`Element matched but is not clickable: "#${e}"`);return}t!==!1&&t!=="false"&&s.scrollIntoView({behavior:"smooth",block:"center"}),s.classList.add("vnr-click-pulse"),window.setTimeout(()=>s.classList.remove("vnr-click-pulse"),450),this.programmaticClick(s),n({status:"success",preset_id:k.ClickElement,element_id:e,...A.route?{route:A.route}:{},...A.navigated?{navigated_to_route:A.route}:{},message:`Clicked element: #${e}`,tag_name:s.tagName.toLowerCase(),element_text:(s.textContent||"").trim().slice(0,120)})}renderSelectOption(e,t,A){const n=e.args||{},i=e.clientFields||{},s=String(n.element_id||i.element_id||n.id||i.id||"").trim().replace(/^#/,""),a=this.extractElementRoute(e),o=String(n.option_value||i.option_value||"").trim(),l=String(n.option_label||i.option_label||n.option_text||i.option_text||"").trim();if(!s){A("No element_id provided for select");return}if(!o&&!l){A("Provide option_value or option_label");return}this.withElementRoute(a,{elementId:s},A,c=>{this.executeSelectOption(s,o,l,c,t,A)},k.SelectOption)}async executeSelectOption(e,t,A,n,i,s){var c,d,g,p;const a=document.getElementById(e);if(!a){s(`Element not found for id: "${e}"`);return}a.scrollIntoView({behavior:"smooth",block:"center"});let o="",l="";if(a instanceof HTMLSelectElement){if(!this.setNativeSelectValue(a,t,A)){s(`No matching option in #${e}`);return}o=a.value,l=((d=(c=a.options[a.selectedIndex])==null?void 0:c.text)==null?void 0:d.trim())||o}else{const m=a.querySelector("select");if(m instanceof HTMLSelectElement){if(!this.setNativeSelectValue(m,t,A)){s(`No matching option in #${e} select`);return}o=m.value,l=((p=(g=m.options[m.selectedIndex])==null?void 0:g.text)==null?void 0:p.trim())||o}else{if(!await this.selectCustomDropdownOption(a,t,A)){s(`Could not select option in #${e}`);return}o=t||A,l=A||t}}i({status:"success",preset_id:k.SelectOption,element_id:e,option_value:o||t,option_label:l||A,...n.route?{route:n.route}:{},...n.navigated?{navigated_to_route:n.route}:{},message:`Selected option in #${e}`})}setNativeSelectValue(e,t,A){const n=t.trim();if(n&&this.applyNativeSelectMatch(e,n,{matchValue:!0,matchLabel:!0}))return!0;const i=A.trim();return!!(i&&this.applyNativeSelectMatch(e,i,{matchValue:!0,matchLabel:!0}))}applyNativeSelectMatch(e,t,A){const n=t.trim();if(!n)return!1;const i=n.toLowerCase();for(const s of Array.from(e.options))if(A.matchValue&&s.value===n)return e.value=s.value,this.dispatchInputChange(e),!0;if(A.matchLabel)for(const s of Array.from(e.options)){const a=s.text.trim().toLowerCase();if(a===i||a.includes(i))return e.value=s.value,this.dispatchInputChange(e),!0}return!1}async selectCustomDropdownOption(e,t,A){this.programmaticClick(e),await new Promise(s=>window.setTimeout(s,200));const n=(A||t||"").trim().toLowerCase(),i=Array.from(document.querySelectorAll('[role="option"], [role="menuitem"], [role="menuitemradio"], li, button, a, div'));for(const s of i){if(!s.offsetParent&&s!==document.activeElement)continue;const a=(s.textContent||"").trim().toLowerCase(),o=s.getAttribute("data-value")||s.getAttribute("value")||"";if(t&&o===t)return this.programmaticClick(s),!0;if(n&&a&&(a===n||a.includes(n)))return this.programmaticClick(s),!0}return!1}renderSetDate(e,t,A){const n=e.args||{},i=e.clientFields||{},s=String(n.element_id||i.element_id||n.id||i.id||"").trim().replace(/^#/,""),a=this.extractElementRoute(e),o=String(n.date||i.date||"").trim(),l=String(n.input_kind||i.input_kind||"text").trim().toLowerCase(),c=String(n.text_format||i.text_format||"YYYY-MM-DD").trim();if(!s){A("No element_id provided for set date");return}if(!this.parseIsoDate(o)){A("date must be ISO YYYY-MM-DD");return}this.withElementRoute(a,{elementId:s},A,d=>{this.executeSetDate(s,o,l,c,d,t,A)},k.SetDate)}executeSetDate(e,t,A,n,i,s,a){const o=document.getElementById(e);if(!o){a(`Element not found for id: "${e}"`);return}if(!(o instanceof HTMLInputElement)&&!(o instanceof HTMLTextAreaElement)){a(`Element #${e} is not an input or textarea`);return}o.scrollIntoView({behavior:"smooth",block:"center"}),o.focus({preventScroll:!0});const l=A==="native_date"||o.type==="date",c=l?t:this.formatIsoDate(t,n);this.setNativeInputValue(o,c),s({status:"success",preset_id:k.SetDate,element_id:e,date:t,formatted_value:c,input_kind:l?"native_date":"text",text_format:l?"YYYY-MM-DD":n,...i.route?{route:i.route}:{},...i.navigated?{navigated_to_route:i.route}:{},message:`Set date on #${e}`})}parseIsoDate(e){const t=String(e).trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;const A=parseInt(t[1],10),n=parseInt(t[2],10),i=parseInt(t[3],10);return n<1||n>12||i<1||i>31?null:{y:t[1],mo:t[2],d:t[3],year:A,month:n,day:i}}formatIsoDate(e,t){const A=this.parseIsoDate(e);if(!A)return e;const{y:n,mo:i,d:s,month:a,day:o}=A,l=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];switch(t){case"DD/MM/YYYY":return`${s}/${i}/${n}`;case"MM/DD/YYYY":return`${i}/${s}/${n}`;case"DD-MM-YYYY":return`${s}-${i}-${n}`;case"D MMM YYYY":return`${o} ${l[a-1]} ${n}`;case"YYYY-MM-DD":default:return e}}setNativeInputValue(e,t){var i;const A=e instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,n=(i=Object.getOwnPropertyDescriptor(A,"value"))==null?void 0:i.set;n?n.call(e,t):e.value=t,this.dispatchInputChange(e)}dispatchInputChange(e){e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}isElementClickable(e){if(e.hasAttribute("disabled")||"disabled"in e&&e.disabled)return!1;const t=window.getComputedStyle(e);return!(t.display==="none"||t.visibility==="hidden"||t.pointerEvents==="none")}programmaticClick(e){try{e.focus({preventScroll:!0})}catch{}const t=e.tagName.toLowerCase(),A=t==="input"?e.type.toLowerCase():"";if((t==="button"||t==="a"||["submit","button","checkbox","radio","reset"].includes(A))&&typeof e.click=="function"){e.click();return}const i={bubbles:!0,cancelable:!0,view:window,button:0,buttons:1};e.dispatchEvent(new MouseEvent("mousedown",i)),e.dispatchEvent(new MouseEvent("mouseup",i)),e.dispatchEvent(new MouseEvent("click",i))}applyBoardSizeToModal(e){const t=Qv[this.boardSizePreset],A=this.boardViewMode==="reduced"?.5:1,n=xv*A,i=Pd(t.maxWidth,n),s=Pd(t.height,n);e.style.setProperty("width",i,"important"),e.style.setProperty("max-width",i,"important"),e.style.setProperty("height",s,"important"),e.style.setProperty("max-height",s,"important"),e.classList.toggle("is-reduced",A<1),e.dataset.boardSize=this.boardSizePreset,this.boardViewMode==="reduced"&&this.syncBoardDragLayout(e),this.syncBoardGrowButton(e)}syncBoardGrowButton(e){const t=e.querySelector(".vnr-whiteboard-grow-btn");if(!t)return;const A=this.boardSizePreset===Tr[Tr.length-1];t.disabled=A,t.title=A?"Board is at maximum size":"Increase board size",t.setAttribute("aria-label",A?"Board is at maximum size":"Increase board size")}growBoardSize(e){const t=Tr.indexOf(this.boardSizePreset);t<0||t>=Tr.length-1||(this.boardSizePreset=Tr[t+1],Mv(this.boardSizePreset),this.applyBoardSizeToModal(e),this.applyBoardLayoutMode(this.getBoardOverlay(),e))}syncBoardResizeButton(e){if(!e)return;const t=this.boardViewMode==="reduced";e.innerHTML=t?bv:yv,e.setAttribute("aria-label",t?"Restore board size":"Shrink board to half size"),e.title=t?"Restore board size":"Shrink board to half size"}toggleBoardReduced(e){const t=this.boardViewMode==="reduced";this.boardViewMode=t?"expanded":"reduced",t||(this.boardDragPosition=null),this.applyBoardSizeToModal(e),this.applyBoardLayoutMode(this.getBoardOverlay(),e)}wireChalkboardChrome(e,t){let A=e.querySelector(".vnr-whiteboard-header");if(A){const n=A.querySelector(".vnr-whiteboard-resize-btn");n&&(n.onclick=()=>this.toggleBoardReduced(e));let i=A.querySelector(".vnr-whiteboard-grow-btn");if(!i){i=document.createElement("button"),i.type="button",i.className="vnr-whiteboard-action-btn vnr-whiteboard-grow-btn",i.innerHTML=Ld;const a=A.querySelector(".vnr-whiteboard-close-btn");a?A.insertBefore(i,a):A.appendChild(i)}i.onclick=()=>this.growBoardSize(e);const s=A.querySelector(".vnr-whiteboard-close-btn");s&&(s.onclick=()=>{if(this.activePresetGeneration++,t)try{t()}catch{}this.closeBoardUi()})}else{A=document.createElement("div"),A.className="vnr-whiteboard-header";const n=document.createElement("button");n.type="button",n.className="vnr-whiteboard-action-btn vnr-whiteboard-resize-btn",n.onclick=()=>this.toggleBoardReduced(e);const i=document.createElement("button");i.type="button",i.className="vnr-whiteboard-action-btn vnr-whiteboard-grow-btn",i.innerHTML=Ld,i.title="Increase board size",i.setAttribute("aria-label","Increase board size"),i.onclick=()=>this.growBoardSize(e);const s=document.createElement("button");s.type="button",s.className="vnr-whiteboard-action-btn is-close vnr-whiteboard-close-btn",s.innerHTML=Cv,s.setAttribute("aria-label","Close board"),s.title="Close board",s.onclick=()=>{if(this.activePresetGeneration++,t)try{t()}catch{}this.closeBoardUi()},A.appendChild(n),A.appendChild(i),A.appendChild(s);const a=e.querySelector(".vnr-whiteboard-canvas-wrap");a?e.insertBefore(A,a):e.prepend(A)}Sa(e),this.applyBoardSizeToModal(e),this.applyBoardLayoutMode(this.getBoardOverlay(),e),A&&this.wireBoardDrag(A,e)}wireChalkboardCloseButton(e,t){this.wireChalkboardChrome(e,t)}styleChalkboardSurface(e){e.style.width="100%",e.style.height="100%",e.style.flex="1",e.style.position="relative",e.style.overflowY="auto",e.style.overflowX="hidden",e.style.zIndex="1",e.style.background="transparent",e.style.border="none",e.style.padding="20px 28px 24px",e.style.fontSize="22px",e.style.lineHeight="1.55",e.style.fontFamily="'Architects Daughter', 'Caveat', 'Chalkboard SE', 'Chalkboard', cursive, sans-serif",e.style.color="#ffffff",e.style.textShadow="0 0 3px rgba(255, 255, 255, 0.45), 0 0 8px rgba(255, 255, 255, 0.15)",e.style.outline="none",e.style.boxSizing="border-box",e.style.whiteSpace="pre-wrap",e.style.wordBreak="break-word"}upgradeChalkboardCanvas(e){let t=e.closest(".vnr-whiteboard-canvas-wrap");if(t)return t;const A=e.parentElement;return A?(t=document.createElement("div"),t.className="vnr-whiteboard-canvas-wrap",t.style.display="flex",t.style.flexDirection="column",t.style.flex="1",t.style.height="100%",t.style.position="relative",A.insertBefore(t,e),t.appendChild(e),this.styleChalkboardSurface(e),t):e}ensureChalkboardTextarea(e){let t=this.getChalkboardSurface();if(t){this.syncChalkboardNotes(),this.upgradeChalkboardCanvas(t);const s=t.closest(".vnr-whiteboard-modal");return s&&(Sa(s),this.wireChalkboardChrome(s,e),this.revealBoardUi(s)),t}if(NB(),!document.getElementById("vnr-chalk-font")){const s=document.createElement("link");s.id="vnr-chalk-font",s.rel="stylesheet",s.href="https://fonts.googleapis.com/css2?family=Architects+Daughter&family=Caveat:wght@400;700&display=swap",document.head.appendChild(s)}const A=this.createOverlay();A.classList.add("vnr-whiteboard-overlay","vnr-whiteboard-overlay-expanded");const n=document.createElement("div");n.className="vnr-modal vnr-whiteboard-modal",n.style.position="relative",n.style.display="flex",n.style.flexDirection="column",n.style.borderRadius="16px",n.style.padding="0",n.style.overflow="hidden",Sa(n),this.applyBoardSizeToModal(n);const i=document.createElement("div");return i.className="vnr-whiteboard-canvas-wrap",i.style.display="flex",i.style.flexDirection="column",i.style.flex="1",i.style.minHeight="0",i.style.height="auto",i.style.position="relative",t=document.createElement("div"),t.className="vnr-whiteboard-textarea",t.setAttribute("role","document"),t.setAttribute("aria-label","Chalkboard notes"),t.tabIndex=0,this.paintChalkboardSurface(t,this.chalkboardContent),i.appendChild(t),this.styleChalkboardSurface(t),n.appendChild(i),A.appendChild(n),this.wireChalkboardChrome(n,e),t}eraseChalkboardInMemory(e,t){return e==="words"?this.eraseLastWords(this.chalkboardContent,t):""}extractBoardWriteText(e,t){const A=e.args||{},n=e.clientFields||{};if(t===k.WriteLatexText){const i=String(A.latex_text||n.latex_text||A.text_to_type||n.text_to_type||A.text||n.text||"");return DB(i)}return String(A.text_to_type||n.text_to_type||A.text||n.text||A.value||n.value||A.search_query||n.search_query||A.query||n.query||"")}renderWriteLatexText(e,t,A){this.executeTypeText(e,t,A,"",{navigated:!1},{forceChalkboard:!0,resultPresetId:k.WriteLatexText})}renderTypeText(e,t,A){const n=e.args||{},i=e.clientFields||{},s=String(n.element_id||i.element_id||n.css_selector||i.css_selector||n.selector||i.selector||"").trim(),a=s?this.extractElementRoute(e):"",o=l=>{this.executeTypeText(e,t,A,s,l,{resultPresetId:k.TypeText})};if(!a){o({navigated:!1});return}this.withElementRoute(a,this.parseDomTarget(s),A,o,k.TypeText)}executeTypeText(e,t,A,n,i,s){const a=e.args||{},o=e.clientFields||{},l=(s==null?void 0:s.resultPresetId)??k.TypeText,c=(s==null?void 0:s.forceChalkboard)===!0;let d=this.extractBoardWriteText(e,l);const g=Number(a.delay_ms!==void 0?a.delay_ms:o.delay_ms!==void 0?o.delay_ms:50),p=this.resolveTypingMode(e),m=L=>{const N={...L,...i.route?{route:i.route}:{},...i.navigated?{navigated_to_route:i.route}:{}};document.querySelector(".vnr-whiteboard-modal")&&(N.board_snapshot=this.getBoardSnapshot()),t(N)};if(l===k.WriteLatexText){const L=String(a.latex_text||o.latex_text||a.text_to_type||o.text_to_type||""),N=qB(L);if(!N.ok){WA("Board:LaTeX","Validation failed — board not updated",N.errors),m(jB(N.errors,N.agent_message,this.chalkboardContent.length));return}d=N.normalized}let B=null;n&&(B=this.findDomTarget(this.parseDomTarget(n)));const y=()=>{WA("Board:Type",c?"Writing LaTeX on chalkboard":"Using chalkboard fallback",{toolCallId:e.toolCallId,textPreview:d.slice(0,80),sessionChars:this.chalkboardContent.length});const L=this.ensureChalkboardTextarea(()=>A("User dismissed typing popup"));if(!L){m({status:"error",message:"Could not open chalkboard"});return}L.focus();const N=d;let Y=this.chalkboardContent||"";const q=Y?`
3189
+ ${N}`:N,W=Y+q,re=this.activePresetGeneration,oe=g<=0,j=()=>{this.chalkboardContent=W,this.paintChalkboardSurface(L,W),m({status:"success",preset_id:l,typing_mode:"append",message:l===k.WriteLatexText?"Wrote LaTeX on chalkboard":"Typed on chalkboard",whiteboard_content:this.chalkboardContent,text_written:this.chalkboardContent,latex_written:l===k.WriteLatexText?this.chalkboardContent:void 0,...this.buildBoardVerification()})};this.activeBoardProgress={ctx:e,mode:"type",textAtStart:Y,plannedUnits:q.length,unitsDone:0},oe?(this.paintChalkboardSurface(L,W),this.syncBoardProgressUnits(q.length),WA("Board:Type","Chalkboard typed (instant)",{chars:this.chalkboardContent.length,preview:this.chalkboardContent.slice(0,120)}),j()):YB({surface:L,initialText:Y,appendText:q,delayMs:g,schedule:(Z,ce)=>this.scheduleBoardAnim(Z,ce),shouldContinue:()=>re===this.activePresetGeneration&&document.body.contains(L),onSourceChar:Z=>{this.chalkboardContent=Y+q.slice(0,Z),this.syncBoardProgressUnits(Z)},onComplete:()=>{re===this.activePresetGeneration&&(this.chalkboardContent=W,this.syncBoardProgressUnits(q.length),j())}})};if(c||!B){y();return}if(B.focus(),!(B instanceof HTMLInputElement||B instanceof HTMLTextAreaElement||"value"in B)){B.textContent=d,m({status:"success"});return}const C=B;let I=C.value||"";if(p==="replace"&&I&&(this.setNativeInputValue(C,""),I=""),g<=0){C.value=I+d,this.dispatchInputChange(C),m({status:"success",preset_id:k.TypeText,typing_mode:p,message:`Typed into ${n||"input"}`});return}let E=I,F=0;const M=this.activePresetGeneration,H=()=>{M===this.activePresetGeneration&&document.body.contains(C)&&(F<d.length?(E+=d[F],C.value=E,C.dispatchEvent(new Event("input",{bubbles:!0})),F++,this.scheduleBoardAnim(H,g)):(C.dispatchEvent(new Event("change",{bubbles:!0})),m({status:"success",preset_id:k.TypeText,typing_mode:p,message:`Typed into ${n||"input"}`})))};H()}resolveTypingMode(e){const t=e.args||{},A=e.clientFields||{},n=String(t.typing_mode||A.typing_mode||"append").trim().toLowerCase();return n==="replace"||n==="clear"||n==="clear_first"||n==="erase_and_type"?"replace":"append"}renderEraseText(e,t,A){const n=e.args||{},i=e.clientFields||{},s=String(n.element_id||i.element_id||n.css_selector||i.css_selector||n.selector||i.selector||"").trim(),a=s?this.extractElementRoute(e):"",o=l=>{this.executeEraseText(e,t,A,s,l)};if(!a){o({navigated:!1});return}this.withElementRoute(a,this.parseDomTarget(s),A,o,k.EraseText)}executeEraseText(e,t,A,n,i){const s=e.args||{},a=e.clientFields||{},o=String(s.mode||a.mode||"all").trim().toLowerCase(),l=Number(s.num_words!==void 0?s.num_words:s.words_count!==void 0?s.words_count:s.count!==void 0?s.count:1),c=Number(s.delay_ms!==void 0?s.delay_ms:a.delay_ms!==void 0?a.delay_ms:50),d=E=>{t({...E,...i.route?{route:i.route}:{},...i.navigated?{navigated_to_route:i.route}:{}})};let g=null;if(n&&(g=this.findDomTarget(this.parseDomTarget(n))),g||(g=this.getChalkboardSurface()),!g&&this.chalkboardContent&&(g=this.ensureChalkboardTextarea(()=>A("User dismissed chalkboard"))),!g){if(this.chalkboardContent){const E=this.eraseChalkboardInMemory(o,l);this.chalkboardContent=E;const F=this.getChalkboardSurface();F&&this.paintChalkboardSurface(F,E),d({status:"success",erased_from_memory:!0});return}d({status:"error",message:"Target element not found"});return}if(g.classList.contains("vnr-whiteboard-textarea")){const E=g.closest(".vnr-whiteboard-modal");E&&this.wireChalkboardCloseButton(E,()=>A("User dismissed chalkboard"));const F=g,M=this.chalkboardContent,H=o==="words"?this.eraseLastWords(M,l):"";if(c<=0){this.paintChalkboardSurface(F,H);const W=Math.max(0,M.length-H.length);this.activeBoardProgress={ctx:e,mode:"erase",textAtStart:M,plannedUnits:W,unitsDone:W},d({status:"success"});return}const L=this.activePresetGeneration,N=Math.max(0,M.length-H.length);this.activeBoardProgress={ctx:e,mode:"erase",textAtStart:M,plannedUnits:N,unitsDone:0};let Y=M;const q=()=>{L===this.activePresetGeneration&&document.body.contains(F)&&(Y.length>H.length?(Y=Y.slice(0,-1),this.paintChalkboardSurface(F,Y),this.syncBoardProgressUnits(M.length-Y.length),this.scheduleBoardAnim(q,Math.max(10,c/2))):d({status:"success"}))};q();return}if(!(g instanceof HTMLInputElement)&&!(g instanceof HTMLTextAreaElement)){if(o==="words"){const E=g.textContent||"";g.textContent=this.eraseLastWords(E,l)}else g.textContent="";d({status:"success"});return}const p=g,m=p.value||"";let B="";if(o==="words"?B=this.eraseLastWords(m,l):B="",c<=0){if(p.value=B,p.classList.contains("vnr-whiteboard-textarea")){this.chalkboardContent=B;const E=Math.max(0,m.length-B.length);this.activeBoardProgress={ctx:e,mode:"erase",textAtStart:m,plannedUnits:E,unitsDone:E}}p.dispatchEvent(new Event("input",{bubbles:!0})),p.dispatchEvent(new Event("change",{bubbles:!0})),d({status:"success"});return}const y=this.activePresetGeneration,x=p.classList.contains("vnr-whiteboard-textarea"),C=Math.max(0,m.length-B.length);x&&(this.activeBoardProgress={ctx:e,mode:"erase",textAtStart:m,plannedUnits:C,unitsDone:0});const I=()=>{y===this.activePresetGeneration&&document.body.contains(p)&&(p.value.length>B.length?(p.value=p.value.slice(0,-1),x&&(this.chalkboardContent=p.value,this.syncBoardProgressUnits(m.length-p.value.length)),p.dispatchEvent(new Event("input",{bubbles:!0})),p.classList.contains("vnr-whiteboard-textarea")&&(p.scrollTop=p.scrollHeight),this.scheduleBoardAnim(I,Math.max(10,c/2))):(p.dispatchEvent(new Event("change",{bubbles:!0})),d({status:"success"})))};I()}eraseLastWords(e,t){if(!e)return"";const A=e.trimEnd();if(!A)return"";let n=A;for(let i=0;i<t;i++){const s=n.lastIndexOf(" "),a=n.lastIndexOf(`
3190
+ `),o=Math.max(s,a);if(o===-1){n="";break}else n=n.slice(0,o).trimEnd()}return n}}const JA=class JA extends Wd{constructor(t){super(t);v(this,"vaniraClient",null);v(this,"currentView",null);v(this,"presetRenderer",null);v(this,"boardAbortHandler",null);v(this,"clipRegionHandler",null);v(this,"isPanelOpen",!1);v(this,"callActive",!1);v(this,"callStatus","disconnected");v(this,"micMuted",!1);v(this,"eventSource",null);v(this,"pillAudioCtx",null);v(this,"pillAgentAnalyser",null);v(this,"pillAgentData",null);v(this,"pillActivityRaf",null);v(this,"pillLastTranscriptionAt",0);v(this,"pillActivityState","idle");v(this,"floatingButton",null);v(this,"floatingWelcomeChips",null);v(this,"voiceChatPill",null);v(this,"cleanCardLauncher",null);v(this,"humanPresenceLauncher",null);v(this,"panel",null);v(this,"welcomeChipsData",[]);v(this,"chatAdapter");v(this,"sessionManager",null);v(this,"sessionActive",!1);v(this,"widgetMode","voice_only");v(this,"agentId","");v(this,"prospectGroupId","");v(this,"chatServerUrl","");v(this,"prospectId","");v(this,"chatId",null);v(this,"conversationId",null);v(this,"widgetId","");v(this,"pkKey","");v(this,"chatInitialized",!1);v(this,"primaryColor","#000000");v(this,"secondaryColor","#111111");v(this,"gradient",null);v(this,"positionType","fixed");v(this,"position","bottom-right");v(this,"widgetIcon",null);v(this,"iconConfig",null);v(this,"chatWelcomeMessage",null);this.chatAdapter=new Eh,this.processConfig(t)}initSessionManager(){const t=this.widgetId||this.agentId||"default";this.sessionManager=new Fi(t),this.sessionManager.on("tab_took_over",()=>{this.sessionActive=!1,this.showTabConflictBanner("taken_over")}),this.sessionManager.on("session_cleared",()=>{});const A=this.sessionManager.claimSession();return this.sessionActive=A,A}restoreSessionMessages(){var o,l,c;const t=(o=this.sessionManager)==null?void 0:o.getSession();if(!t)return;const A=(c=(l=this.currentView)==null?void 0:l.getChatWindow)==null?void 0:c.call(l);if(!A)return;const n=t.messages.filter(d=>d.content.trim()!==""),i=`vanira_calls_${this.widgetId||this.agentId}`,s=JSON.parse(localStorage.getItem(i)||"[]");if(n.length===0&&s.length===0)return;A.clearMessages();const a=[...n.map((d,g)=>({type:"msg",role:d.role,content:d.content,ts:d.timestamp??g})),...s.map(d=>({type:"call",durationMs:d.durationMs,startedAt:d.startedAt,ts:d.startedAt}))];a.sort((d,g)=>d.ts-g.ts),a.forEach(d=>{d.type==="msg"?A.addMessage(d.role,d.content,d.ts):A.addCallRecord(d.durationMs,d.startedAt)})}showTabConflictBanner(t){var A,n;this.root&&((A=this.root.querySelector(".vanira-tab-conflict-banner"))==null||A.remove(),t==="conflict"&&((n=this.sessionManager)==null||n.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&this.initializeChatSession(!1)))}playMessageSound(t){try{if(!JA.audioContext){const a=window.AudioContext||window.webkitAudioContext;if(!a)return;JA.audioContext=new a}const A=JA.audioContext;A.state==="suspended"&&A.resume().catch(()=>{});const n=A.createOscillator(),i=A.createGain();n.connect(i),i.connect(A.destination);const s=A.currentTime;t==="send"?(n.type="sine",n.frequency.setValueAtTime(300,s),n.frequency.exponentialRampToValueAtTime(500,s+.05),i.gain.setValueAtTime(0,s),i.gain.linearRampToValueAtTime(.1,s+.01),i.gain.exponentialRampToValueAtTime(.001,s+.1),n.start(s),n.stop(s+.1)):(n.type="sine",n.frequency.setValueAtTime(500,s),n.frequency.exponentialRampToValueAtTime(800,s+.1),i.gain.setValueAtTime(0,s),i.gain.linearRampToValueAtTime(.15,s+.02),i.gain.exponentialRampToValueAtTime(.001,s+.2),n.start(s),n.stop(s+.2))}catch{}}handleWelcomePayload(t,A="assistant"){var s,a,o,l,c,d,g,p;if(!t||this.widgetMode==="voice_only")return;t.buttons&&Array.isArray(t.buttons)?this.welcomeChipsData=t.buttons:((s=t.widget)==null?void 0:s.type)==="button_list"&&((a=t.widget.data)!=null&&a.buttons)&&(this.welcomeChipsData=t.widget.data.buttons),this.updateWelcomeChipsVisibility();const n=(l=(o=this.currentView)==null?void 0:o.getChatWindow)==null?void 0:l.call(o);let i=t.text||t.response||t.content||t.message||"";if(!i&&!this.welcomeChipsData.length&&(i="Hey! how can I help you ?"),!i&&typeof t=="string"&&t.trim().startsWith("{"))try{const m=JSON.parse(t);i=m.text||m.response||m.content||m.message||"",((c=m.widget)==null?void 0:c.type)==="button_list"&&((d=m.widget.data)!=null&&d.buttons)&&(this.welcomeChipsData=m.widget.data.buttons)}catch{}if(n){if(!i&&this.welcomeChipsData.length===0)return;const m=(g=this.sessionManager)==null?void 0:g.getSession();(m==null?void 0:m.messages.some(y=>y.content===i&&y.role===A))||(i&&(n.addMessage(A,i),(p=this.sessionManager)==null||p.pushMessage(A,i)),this.welcomeChipsData.length>0&&n.addButtons(this.welcomeChipsData))}}async initializeChatSession(t=!1){var A,n,i,s,a;if(this.sessionActive&&!this.chatInitialized){this.chatInitialized=!0;try{zt.setChatUrl(this.chatServerUrl);const o=(A=this.sessionManager)==null?void 0:A.getSession();if(!t&&(o!=null&&o.prospectId)){this.prospectId=o.prospectId,this.chatId=o.chatId,this.conversationId=o.conversationId||null,this.restoreSessionMessages(),this.chatId&&!this.eventSource&&(this.eventSource=zt.listenForAdminReplies(this.chatId,this.prospectId,c=>{var d,g,p;(g=(d=this.currentView)==null?void 0:d.getChatWindow)==null||g.call(d).addMessage("assistant",c),(p=this.sessionManager)==null||p.pushMessage("assistant",c),this.playMessageSound("receive")}));return}this.prospectId||(this.prospectGroupId?this.prospectId=await zt.createChatProspect(this.prospectGroupId):this.prospectId=`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`);const l=await zt.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=zt.listenForAdminReplies(this.chatId,this.prospectId,c=>{var d,g,p;(g=(d=this.currentView)==null?void 0:d.getChatWindow)==null||g.call(d).addMessage("assistant",c),(p=this.sessionManager)==null||p.pushMessage("assistant",c),this.playMessageSound("receive")}))),l.conversationId&&(this.conversationId=l.conversationId)),(n=this.sessionManager)==null||n.saveIds(this.prospectId,this.chatId,this.conversationId)}catch{const l="Hey! how can I help you ?";(s=(i=this.currentView)==null?void 0:i.getChatWindow)==null||s.call(i).addMessage("assistant",l),(a=this.sessionManager)==null||a.pushMessage("assistant",l)}}}async initialize(t,A){await super.initialize(t),this.processConfig(t),A&&(this.root=A),this.root&&this.ui_renderer(this.root)}processConfig(t){var A,n;if(this.widgetId=t.widgetId||t.widget_id||this.widgetId||"",this.agentId=t.agentId||t.agent_id||this.agentId||"",this.prospectGroupId=t.prospectGroupId||((A=t.client)==null?void 0:A.base_prospect_group_id)||this.prospectGroupId||"",this.widgetMode=t.widgetMode||t.mode||this.widgetMode||"voice_only",this.pkKey=t.pkKey||t.pk_key||t.publicKey||t.public_key||this.pkKey||"",this.primaryColor=t.primaryColor||t.primary_color||"#000000",this.secondaryColor=t.secondaryColor||t.secondary_color||"#111111",this.gradient=t.gradient||null,this.position=t.position||"bottom-right",this.positionType=t.positionType||"fixed",this.widgetIcon=t.widgetIcon||t.icon||null,this.iconConfig=t.iconConfig||t.icon_config||null,this.chatWelcomeMessage=t.chatWelcomeMessage||t.chat_welcome_message||((n=t.agent)==null?void 0:n.chat_welcome_message)||null,typeof this.chatWelcomeMessage=="string")try{this.chatWelcomeMessage=JSON.parse(this.chatWelcomeMessage)}catch{}this.chatServerUrl=t.serverUrl||t.chatServerUrl||"https://inboxapi.vanira.io",this.updateWelcomeChipsVisibility()}async create_call(t="continue"){var A,n,i,s;if(!(this.callActive||!this.agentId)){this.sessionActive||((A=this.sessionManager)==null||A.forceClaimSession(),this.sessionActive=!0),t==="new"&&((n=this.presetRenderer)==null||n.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 a=((i=this.config)==null?void 0:i.serverUrl)||((s=this.config)==null?void 0:s.chatServerUrl),o=a&&!a.includes("travelr.club")?a:et,l=t==="continue"?Or(this.agentId):null,c=new QA({agentId:this.agentId,apiKey:this.pkKey,sessionBehavior:t,prospectId:this.prospectId||(l==null?void 0:l.prospectId)||void 0,callId:t==="continue"?l==null?void 0:l.callId:void 0,backendUrl:o});c.on("session_started",({prospectId:d,callId:g})=>{var p;d&&(this.prospectId=d,(p=this.sessionManager)==null||p.saveIds(d,this.chatId)),g&&Ya(this.agentId,g,d)}),c.on("connected",()=>this.updateViewStatus("connected")).on("disconnected",()=>this.end_call()).on("error",d=>{this.updateViewStatus("error",d)}).on("transcription",({text:d,isFinal:g})=>{var p,m;d.trim()&&(this.pillLastTranscriptionAt=Date.now()),(m=(p=this.currentView)==null?void 0:p.setTranscription)==null||m.call(p,d,g)}).on("track",({track:d})=>{var g;d.kind==="audio"&&this.setupPillAgentAudio(d),this.widgetMode.includes("avatar")&&d.kind==="video"&&((g=this.currentView)!=null&&g.setVideoTrack)&&this.currentView.setVideoTrack(d)}).on("tool_call",d=>{var m,B,y;if((m=this.presetRenderer)==null?void 0:m.handle(d,x=>{const C=Lr(d.client_fields,d.arguments||d.args,d.name),I=d.tool_call_id;if(Oa(C)&&I){const E=typeof x=="object"&&x!==null?x:{response:x};if(E.status==="cancelled")return;if(C===k.WriteLatexText&&E.latex_render_ok===!1)try{c.triggerActionInterrupt(),c.sendActionTrigger("latex_format_error",E)}catch{}try{c.sendToolResult(I,E)}catch{}return}if(!(x&&(x.media_id||x.url)&&Ci(C))){if(xi(C)&&C){const E=typeof x=="object"&&x!==null?x:{response:x};if(E.status==="cancelled")return;const F=Na(C,d.name,d.client_fields);c.triggerActionInterrupt(),c.sendActionTrigger(F,E);return}if(C){const E=Na(C,d.name,d.client_fields);c.triggerInterrupt(E,x)}}},(x,C)=>{var F,M,H;const I=Lr(d.client_fields,d.arguments||d.args,d.name),E=d.tool_call_id;if(Oa(I)&&E){const L=(C==null?void 0:C.status)??"cancelled",N=String(((F=d.client_fields)==null?void 0:F.target_url)||(d.arguments||d.args||{}).target_url||"");try{const Y=I===k.Navigate?((M=this.presetRenderer)==null?void 0:M.getNavigateTerminalResult(L,x,N||void 0))??{status:L,reason:x||"Navigation cancelled",preset_id:I,target_url:N||void 0}:((H=this.presetRenderer)==null?void 0:H.getBoardTerminalResult(L,x,I))??{status:L,reason:x||"User dismissed",preset_id:I};c.sendToolResult(E,Y)}catch{}return}if(Ci(I)&&E){try{c.sendToolResult(E,{status:"cancelled",reason:x||"User dismissed",preset_id:I})}catch{}return}if(xi(I)&&E){try{c.sendToolResult(E,{status:"cancelled",reason:x||"User dismissed",preset_id:I})}catch{}return}try{c.sendToolResult(E,{status:"cancelled",reason:"User dismissed"})}catch{}},c))return;const p=new CustomEvent("vaniraai:tool_call",{detail:d,bubbles:!0,composed:!0});(y=(B=this.root)==null?void 0:B.host)==null||y.dispatchEvent(p)}),this.vaniraClient=c,await c.start(),this.boardAbortHandler=d=>{var p;const g=d.detail||{};(p=this.presetRenderer)==null||p.abortBoardTools(g.reason||"Server interrupted",g.toolCallId)},window.addEventListener(Td,this.boardAbortHandler)}catch(a){this.updateViewStatus("error",(a==null?void 0:a.message)||String(a))}}}isCallActive(){var t;return this.callActive&&!!((t=this.vaniraClient)!=null&&t.isConnected)}updateContext(t){if(!this.isCallActive()||!this.vaniraClient)return!1;try{return this.vaniraClient.updateContext(t),!0}catch{return!1}}triggerInterrupt(t,A={}){if(!this.isCallActive()||!this.vaniraClient)return!1;try{return this.vaniraClient.triggerInterrupt(t,A),!0}catch{return!1}}sendToolResult(t,A){var n;if(!((n=this.vaniraClient)!=null&&n.isConnected)||!t)return!1;try{return this.vaniraClient.sendToolResult(t,A),!0}catch{return!1}}end_call(){var n,i;this.boardAbortHandler&&(window.removeEventListener(Td,this.boardAbortHandler),this.boardAbortHandler=null),this.clipRegionHandler&&(window.removeEventListener(zr,this.clipRegionHandler),this.clipRegionHandler=null);const t=(n=this.root)==null?void 0:n.host;t==null||t.classList.remove("vanira-clip-suppressed"),this.callActive=!1,this.callStatus="disconnected",this.micMuted=!1,this.syncMicMuteUi(),this.stopPillActivityMonitor();const A=this.vaniraClient;this.vaniraClient=null,A&&A.stop(),(i=this.presetRenderer)==null||i.teardownSession(),this.updateViewCallState(!1),this.updateLauncherVisibility()}updateViewCallState(t){var A;(A=this.currentView)!=null&&A.setCallActive&&this.currentView.setCallActive(t)}toggleMicMute(){return this.vaniraClient?(this.micMuted=this.vaniraClient.toggleMicrophoneMuted(),this.syncMicMuteUi(),this.micMuted):this.micMuted}syncMicMuteUi(){var t,A,n;(t=this.voiceChatPill)==null||t.setMicMuted(this.micMuted),(n=(A=this.currentView)==null?void 0:A.setMicMuted)==null||n.call(A,this.micMuted)}wireMicMuteControls(){var A,n,i;const t=()=>this.toggleMicMute();(A=this.voiceChatPill)==null||A.bindMicMuteToggle(t),(i=(n=this.currentView)==null?void 0:n.bindMicMuteToggle)==null||i.call(n,t)}updateViewStatus(t,A){var n,i,s,a,o;t==="connecting"?this.callStatus="connecting":t==="connected"?this.callStatus="connected":t==="error"?this.callStatus="error":this.callStatus="disconnected",(n=this.currentView)!=null&&n.setStatus&&this.currentView.setStatus(t,A),this.voiceChatPill&&this.callActive&&!this.isPanelOpen?t==="connected"?(this.pillActivityState="listening",this.voiceChatPill.setActivity("listening"),(s=(i=this.currentView)==null?void 0:i.setActivity)==null||s.call(i,"listening"),this.startPillActivityLoop()):this.voiceChatPill.setStatus(this.callStatus):t==="connected"&&(this.pillActivityState="listening",(o=(a=this.currentView)==null?void 0:a.setActivity)==null||o.call(a,"listening"),this.startPillActivityLoop())}setupPillAgentAudio(t){try{this.pillAudioCtx||(this.pillAudioCtx=new AudioContext),this.pillAudioCtx.state==="suspended"&&this.pillAudioCtx.resume();const A=new MediaStream([t]),n=this.pillAudioCtx.createMediaStreamSource(A);this.pillAgentAnalyser=this.pillAudioCtx.createAnalyser(),this.pillAgentAnalyser.fftSize=256,n.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 t=0;const A=Math.min(48,this.pillAgentData.length);for(let n=0;n<A;n++)t+=this.pillAgentData[n];return A>0?t/A/255:0}startPillActivityLoop(){if(this.pillActivityRaf!==null)return;const t=()=>{var a,o;if(this.pillActivityRaf=requestAnimationFrame(t),!this.callActive||this.callStatus!=="connected")return;const A=this.readPillAgentLevel(),n=Date.now()-this.pillLastTranscriptionAt<1200,s=A>.06||n?"speaking":"listening";s!==this.pillActivityState&&(this.pillActivityState=s,this.voiceChatPill&&!this.isPanelOpen&&this.voiceChatPill.setActivity(s),(o=(a=this.currentView)==null?void 0:a.setActivity)==null||o.call(a,s))};this.pillActivityRaf=requestAnimationFrame(t)}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(t){var l,c,d,g,p;this.root=t,this.root.innerHTML="",this.presetRenderer=new Hv(t),this.root.host&&(this.positionType==="fixed"?this.root.host.classList.add("vanira-portal"):this.root.host.classList.remove("vanira-portal")),this.clipRegionHandler&&window.removeEventListener(zr,this.clipRegionHandler),this.clipRegionHandler=m=>{var x,C;const B=!!((x=m.detail)!=null&&x.active),y=(C=this.root)==null?void 0:C.host;y&&y.classList.toggle("vanira-clip-suppressed",B)},window.addEventListener(zr,this.clipRegionHandler);const A=document.createElement("style");A.textContent=`@keyframes vanira-slide-up {
2916
3191
  from { opacity:0; transform:translateY(16px); }
2917
3192
  to { opacity:1; transform:translateY(0); }
2918
- }`,this.root.appendChild(t);const r=document.createElement("style");r.textContent=`
2919
- ${ll}
2920
- :host { ${al(this.primaryColor,this.secondaryColor)} }
2921
- ${Qs.styles}
2922
- ${Fs.styles}
2923
- ${xs.styles}
3193
+ }`,this.root.appendChild(A);const n=document.createElement("style");n.textContent=`
3194
+ ${gh}
3195
+ :host { ${ph(this.primaryColor,this.secondaryColor)} }
3196
+ ${$a.styles}
3197
+ ${ro.styles}
3198
+ ${eo.styles}
2924
3199
  ${this.gradient?`.widget-fab { background: ${this.gradient} !important; }`:""}
2925
3200
  .clean-card-launcher {
2926
3201
  position: fixed;
@@ -2999,20 +3274,20 @@ ${F}`:F,O=this.activePresetGeneration,K=d<=0;if(this.activeBoardProgress={ctx:A,
2999
3274
  height: 12px;
3000
3275
  fill: currentColor;
3001
3276
  }
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=`
3277
+ `,this.root.appendChild(n);const i=`vanira_pos_${this.widgetId||this.agentId}`,s=localStorage.getItem(i);let a=null;if(s)try{a=JSON.parse(s)}catch{}if(this.floatingButton=new $a(()=>this.togglePanel(),(m,B)=>{var y,x;(y=this.floatingWelcomeChips)==null||y.updateCoordinates(m,B,B>window.innerHeight/2),this.isPanelOpen&&((x=this.panel)==null||x.updatePosition({left:`${Math.max(20,Math.min(m-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"}))},(m,B)=>{localStorage.setItem(i,JSON.stringify({x:m,y:B}))}),this.floatingButton.setIcon(this.getFabIcon()),a?this.floatingButton.updateCoordinates(a.x,a.y):this.floatingButton.setPosition(this.getPosStyle()),this.floatingWelcomeChips=new ro(m=>this.handleFloatingChipClick(m)),a?this.floatingWelcomeChips.updateCoordinates(a.x,a.y,a.y>window.innerHeight/2):this.floatingWelcomeChips.setPosition(this.getPosStyle()),this.panel=new eo(()=>this.handlePanelClose(),this.getPanelTitle(),()=>this.minimizePanel()),this.voiceChatPill=new Bh(()=>this.openPanel(),()=>this.end_call(),"Voice chat"),this.root.appendChild(this.voiceChatPill.getElement()),this.root.appendChild(this.floatingWelcomeChips.getElement()),this.widgetIcon==="clean_assistant"){const m=((l=this.iconConfig)==null?void 0:l.logo_text)||"vanira",B=((c=this.iconConfig)==null?void 0:c.title)||"Vanira Voice AI Assistant",y=((d=this.iconConfig)==null?void 0:d.button_text)||"Begin Call",x=Wa(this.agentId);let C=!1;const I=document.createElement("div");I.className="clean-card-launcher",I.innerHTML=`
3003
3278
  <div class="clean-card-header">
3004
- <div class="clean-card-logo">${g}</div>
3279
+ <div class="clean-card-logo">${m}</div>
3005
3280
  <div class="clean-card-title">${B}</div>
3006
3281
  <div class="clean-card-welcome" style="display: none;">Welcome back</div>
3007
3282
  </div>
3008
- ${m?`
3283
+ ${x?`
3009
3284
  <div class="session-selector-container" style="display: none;">
3010
3285
  <div class="session-option active" data-behavior="continue">
3011
- <span class="session-icon" aria-hidden="true">${G.sessionContinue}</span>
3286
+ <span class="session-icon" aria-hidden="true">${ue.sessionContinue}</span>
3012
3287
  <span class="session-title">Continue</span>
3013
3288
  </div>
3014
3289
  <div class="session-option" data-behavior="new">
3015
- <span class="session-icon" aria-hidden="true">${G.sessionRestart}</span>
3290
+ <span class="session-icon" aria-hidden="true">${ue.sessionRestart}</span>
3016
3291
  <span class="session-title">Restart</span>
3017
3292
  </div>
3018
3293
  </div>
@@ -3021,11 +3296,6 @@ ${F}`:F,O=this.activePresetGeneration,K=d<=0;if(this.activeBoardProgress={ctx:A,
3021
3296
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3022
3297
  <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.14 12 19.79 19.79 0 0 1 1.07 3.4 2 2 0 0 1 3 1h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.09 8.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z"/>
3023
3298
  </svg>
3024
- ${f}
3299
+ ${y}
3025
3300
  </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=`{
3027
- content: "" !important;
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"}))})();
3301
+ `;const E=I.querySelector(".session-selector-container"),F=I.querySelector(".clean-card-welcome"),M=I.querySelector(".clean-card-btn"),H=Y=>{I.style.display="none",this.create_call(Y)},L=()=>{C=!0,I.classList.add("has-session-choice"),F&&(F.style.display=""),E&&(E.style.display="flex"),M&&(M.style.display="none")},N=I.querySelectorAll(".session-option");N.forEach(Y=>{Y.addEventListener("click",q=>{if(q.stopPropagation(),!C)return;N.forEach(re=>re.classList.remove("active")),Y.classList.add("active");const W=Y.getAttribute("data-behavior");H(W)})}),M==null||M.addEventListener("click",Y=>{if(Y.stopPropagation(),x&&!C){L();return}x||H("continue")}),this.root.appendChild(I),this.cleanCardLauncher=I}else this.widgetIcon==="human_presence"?(this.humanPresenceLauncher=new vh(()=>this.openPanel(),{greeting:((g=this.iconConfig)==null?void 0:g.greeting)||"Hi there!",subtitle:((p=this.iconConfig)==null?void 0:p.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&&Kr[this.widgetIcon]?Kr[this.widgetIcon]:this.widgetMode.includes("chat")?ue.chat:ue.voice_orb}getPanelTitle(){return"Assistant"}getPosStyle(){const t={"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 t[this.position]||t["bottom-right"]}setupPanelContent(){var A,n;const t=(i,s)=>{var c,d;const a=(d=(c=this.currentView)==null?void 0:c.getChatWindow)==null?void 0:d.call(c);a&&a.addCallRecord(i,s);const o=`vanira_calls_${this.widgetId||this.agentId}`,l=JSON.parse(localStorage.getItem(o)||"[]");l.push({durationMs:i,startedAt:s}),l.length>50&&l.splice(0,l.length-50),localStorage.setItem(o,JSON.stringify(l))};switch(this.widgetMode){case"chat_only":this.currentView=new bh(i=>this.handleChatSend(i));break;case"chat_voice":this.currentView=new Ch(i=>this.handleChatSend(i),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,t);break;case"avatar_only":this.currentView=new xh(()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,t);break;case"chat_avatar":this.currentView=new Qh(i=>this.handleChatSend(i),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,t);break;case"voice_only":default:this.currentView=new yh(i=>this.create_call(i),()=>this.end_call(),this.primaryColor,this.secondaryColor,t,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 i=(n=(A=this.currentView).getChatWindow)==null?void 0:n.call(A);i&&i.setResolveCallback(()=>this.resolveActiveConversation())}this.wireMicMuteControls()}async handleChatSend(t){var n,i,s,a,o;if(!t)return;this.sessionActive||((n=this.sessionManager)==null||n.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&await this.initializeChatSession(!1));const A=(s=(i=this.currentView)==null?void 0:i.getChatWindow)==null?void 0:s.call(i);if(A){this.chatId&&!this.eventSource&&(this.eventSource=zt.listenForAdminReplies(this.chatId,this.prospectId,l=>{var c,d,g;(d=(c=this.currentView)==null?void 0:c.getChatWindow)==null||d.call(c).addMessage("assistant",l),(g=this.sessionManager)==null||g.pushMessage("assistant",l),this.playMessageSound("receive")})),A.addMessage("user",t),(a=this.sessionManager)==null||a.pushMessage("user",t),A.setTyping(!0),(o=this.sessionManager)==null||o.pushMessage("assistant","");try{let l=!1;await this.chatAdapter.sendMessage(t,this.agentId,this.prospectId,this.chatId,c=>{var d;l||(this.playMessageSound("receive"),l=!0),A.setTyping(!1),(c==null?void 0:c.type)==="button_list"&&((d=c.data)!=null&&d.buttons)&&(A.addButtons(c.data.buttons),this.welcomeChipsData=c.data.buttons,this.updateWelcomeChipsVisibility())},c=>{var d;l||(this.playMessageSound("receive"),l=!0),A.setTyping(!1),A.updateLastAssistantMessage(c),(d=this.sessionManager)==null||d.updateLastAssistantMessage(c)},(c,d)=>{var g;c&&(this.chatId=c),d&&(this.conversationId=d),(c||d)&&((g=this.sessionManager)==null||g.saveIds(this.prospectId,this.chatId,this.conversationId))},this.widgetId||void 0,this.pkKey||void 0)}catch{A.setTyping(!1),A.addMessage("assistant","Error sending message.")}}}minimizePanel(){this.closePanel()}handlePanelClose(){if(this.callActive){this.minimizePanel();return}this.closePanel()}updateLauncherVisibility(){var i,s,a;const t=this.callActive&&!this.isPanelOpen,A=!this.isPanelOpen&&!t;this.voiceChatPill&&(t?(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"&&((s=(i=this.currentView)==null?void 0:i.setActivity)==null||s.call(i,this.pillActivityState==="speaking"?"speaking":"listening")))),this.callActive&&this.callStatus==="connected"&&this.startPillActivityLoop();const n=(a=this.floatingButton)==null?void 0:a.getElement();if(n){const o=this.isPanelOpen||t||this.widgetIcon==="clean_assistant"||this.widgetIcon==="human_presence";n.classList.toggle("hidden-launcher",o)}this.cleanCardLauncher&&(this.cleanCardLauncher.style.display=A&&this.widgetIcon==="clean_assistant"?"":"none"),this.humanPresenceLauncher&&(A&&this.widgetIcon==="human_presence"?this.humanPresenceLauncher.show():this.humanPresenceLauncher.hide()),this.updateWelcomeChipsVisibility()}togglePanel(){this.isPanelOpen?this.closePanel():this.openPanel()}openPanel(){var n,i,s,a;this.isPanelOpen=!0,this.updateWelcomeChipsVisibility();const t=(n=this.floatingButton)==null?void 0:n.getElement().getBoundingClientRect();if(t&&t.width>0){const o=t.top>window.innerHeight/2;(i=this.panel)==null||i.open({left:`${Math.max(20,Math.min(t.left-170,window.innerWidth-420))}px`,bottom:o?`${window.innerHeight-t.top+20}px`:void 0,top:o?void 0:`${t.top+80}px`})}else(s=this.panel)==null||s.open({bottom:"90px",right:"20px",left:"auto",top:"auto"});(a=this.root)!=null&&a.host&&this.root.host.classList.add("vanira-panel-open"),this.updateLauncherVisibility()}closePanel(){var t,A;this.isPanelOpen=!1,this.updateWelcomeChipsVisibility(),(t=this.panel)==null||t.close(),(A=this.root)!=null&&A.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(t){this.openPanel(),this.handleChatSend(t)}async resolveActiveConversation(){var A,n,i;if(this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.conversationId)try{await zt.resolveConversation(this.conversationId)}catch{}(A=this.sessionManager)==null||A.clearChatKeepProspect(),this.conversationId=null,this.chatId=null;const t=(i=(n=this.currentView)==null?void 0:n.getChatWindow)==null?void 0:i.call(n);t&&t.clearMessages(),this.chatInitialized=!1,await this.initializeChatSession(!0)}};v(JA,"audioContext",null);let ka=JA;class Tv{static getProvider(e){return new ka(e)}}class zd extends HTMLElement{constructor(){super();v(this,"shadow");v(this,"provider",null);v(this,"widgetId","");v(this,"agentId","");v(this,"pkKey","");v(this,"serverUrl","https://inboxapi.vanira.io");v(this,"position","bottom-right");v(this,"primaryColor","");v(this,"secondaryColor","");v(this,"gradient",null);v(this,"positionType","fixed");v(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=Tv.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 t={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")&&(t.primaryColor=this.primaryColor,t.primary_color=this.primaryColor),this.hasAttribute("secondary-color")&&(t.secondaryColor=this.secondaryColor,t.secondary_color=this.secondaryColor),(this.hasAttribute("icon")||this.hasAttribute("widget-icon"))&&(t.icon=this.widgetIcon,t.widgetIcon=this.widgetIcon),t}buildMergedConfig(t){return{...t,...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 t=await xA.fetchWidgetConfig(this.widgetId,this.pkKey||void 0);this.provider&&await this.provider.initialize(this.buildMergedConfig(t),this.shadow)}catch{this.provider&&await this.provider.initialize(this.buildInitialConfig(),this.shadow)}}isCallActive(){var t;return((t=this.provider)==null?void 0:t.isCallActive())??!1}updateContext(t){var n;const A=((n=this.provider)==null?void 0:n.updateContext(t))??!1;return A&&this.dispatchHostEvent("vaniraai:context_updated",{context:t}),A}triggerInterrupt(t,A={}){var i;const n=((i=this.provider)==null?void 0:i.triggerInterrupt(t,A))??!1;return n&&this.dispatchHostEvent("vaniraai:action_triggered",{actionName:t,data:A}),n}sendToolResult(t,A){var i;return((i=this.provider)==null?void 0:i.sendToolResult(t,A))??!1}dispatchHostEvent(t,A){this.dispatchEvent(new CustomEvent(t,{detail:A,bubbles:!0,composed:!0}))}}if(typeof window<"u")try{new URLSearchParams(window.location.search).has("vanira_debug")&&localStorage.setItem("vanira:debug","1"),tv(),localStorage.getItem("vanira:debug")==="1"&&WA("SDK","Debug logging on — inspect window.__VANIRA_DEBUG_LOG__")}catch{}if(customElements.get("vanira-convai")||customElements.define("vanira-convai",zd),typeof window<"u"){window.VaniraConvAI=zd,window.VaniraClient=QA,window.VaniraAI=QA,window.WebRTCClient=QA;try{localStorage.getItem("vanira:debug")}catch{}}const ke=document.currentScript;if(ke){const r=ke.getAttribute("data-widget-id")||ke.getAttribute("widget-id"),e=ke.getAttribute("data-agent-id")||ke.getAttribute("agent-id");if(r||e){const t=ke.getAttribute("data-position")||ke.getAttribute("position"),A=ke.getAttribute("data-primary-color")||ke.getAttribute("primary-color"),n=ke.getAttribute("data-secondary-color")||ke.getAttribute("secondary-color"),i=ke.getAttribute("data-gradient")||ke.getAttribute("gradient"),s=ke.getAttribute("data-server-url")||ke.getAttribute("server-url"),a=ke.getAttribute("data-pk-key")||ke.getAttribute("pk-key"),o=ke.getAttribute("icon")||ke.getAttribute("widget-icon"),l=document.createElement("vanira-convai");r&&l.setAttribute("widget-id",r),e&&l.setAttribute("agent-id",e),a&&l.setAttribute("pk-key",a),o&&l.setAttribute("icon",o),t&&l.setAttribute("position",t),A&&l.setAttribute("primary-color",A),n&&l.setAttribute("secondary-color",n),i&&l.setAttribute("gradient",i),s&&l.setAttribute("server-url",s),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>document.body.appendChild(l)):document.body.appendChild(l),l.addEventListener("vaniraai:tool_call",c=>{const d=c.detail,g=d==null?void 0:d.tool_call_id;typeof window.__vaniraai_tool_handler=="function"&&window.__vaniraai_tool_handler(d,{sendResult:p=>{g&&l.sendToolResult(g,p)}})})}}})();