@canonry/canonry 4.152.0 → 4.153.0
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.
- package/assets/assets/{AuditHistoryPanel-DK52bxkQ.js → AuditHistoryPanel-CcoXjMxm.js} +1 -1
- package/assets/assets/{BacklinksPage-DYApSbsM.js → BacklinksPage-Cij_A80K.js} +1 -1
- package/assets/assets/{HistoryPage-CksKbEHx.js → HistoryPage-CdxhPEHF.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-Ds5A7BiY.js → MeasurementPropertyPage-CJaqCeMr.js} +1 -1
- package/assets/assets/{ProjectPage-LzCmnrO2.js → ProjectPage-BJPVmD_-.js} +11 -11
- package/assets/assets/{RunRow-C0oX3797.js → RunRow-xfuUNQ2O.js} +1 -1
- package/assets/assets/{RunsPage-0qr4V3pn.js → RunsPage-BirDqVe_.js} +1 -1
- package/assets/assets/{SettingsPage-BLMy_cfR.js → SettingsPage-BzMoD-42.js} +1 -1
- package/assets/assets/{TrafficPage-CZj9XGfC.js → TrafficPage-Du-7BL_j.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-BfQAuIQM.js → TrafficSourceDetailPage-Dk6-TuNw.js} +1 -1
- package/assets/assets/{arrow-left-DdovB6GZ.js → arrow-left-HyrLx9li.js} +1 -1
- package/assets/assets/{extract-error-message-yI0U8t_A.js → extract-error-message-Db0s9Qon.js} +1 -1
- package/assets/assets/{index-DP74nMja.js → index-Bio0Z1kJ.js} +42 -42
- package/assets/assets/{index-CiidhUL0.css → index-CaYn5phz.css} +1 -1
- package/assets/assets/{refresh-cw-SR8k0mBu.js → refresh-cw-BFnkrZE9.js} +1 -1
- package/assets/assets/{trash-2-DQF9iFSX.js → trash-2-CQtsaJ-3.js} +1 -1
- package/assets/assets/{v2-overview-adapter-Dz0UmhmS.js → v2-overview-adapter-D81QVAhK.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-TS3AHKZG.js → chunk-LNJF7LL5.js} +1 -1
- package/dist/{chunk-BUAVO37B.js → chunk-SKTXCZZD.js} +10 -0
- package/dist/{chunk-JWTFZG7Q.js → chunk-VTL2WOIO.js} +45 -14
- package/dist/{chunk-G7P5CJJS.js → chunk-YV4VKT4M.js} +4 -4
- package/dist/cli.js +4 -4
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-KBFVQOPO.js → intelligence-service-APPDGUH6.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +10 -10
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ProjectPage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ProjectPage-BJPVmD_-.js","./vendor-tanstack-BjS7iY3g.js","./RunRow-xfuUNQ2O.js","./refresh-cw-BFnkrZE9.js","./ChartPrimitives-DXVLCdBi.js","./extract-error-message-Db0s9Qon.js","./vendor-recharts-33ACLxsD.js","./trash-2-CQtsaJ-3.js","./AuditHistoryPanel-CcoXjMxm.js","./v2-overview-adapter-D81QVAhK.js","./vendor-radix-DnzzbllM.js","./vendor-markdown-CpDJch4G.js","./RunsPage-BirDqVe_.js","./HistoryPage-CdxhPEHF.js","./SettingsPage-BzMoD-42.js","./BacklinksPage-Cij_A80K.js","./TrafficPage-Du-7BL_j.js","./arrow-left-HyrLx9li.js","./TrafficSourceDetailPage-Dk6-TuNw.js","./MeasurementPropertyPage-CJaqCeMr.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{c as e4,d as t4,r as B,j as m,Q as n4,M as a4,q as Ae,e as x2,L as We,a as i4,f as po,u as mn,h as s4,k as Iu,l as o4,m as r4,n as S2,O as mf,o as Mi,p as xs,s as l4,t as St,v as j2,x as Bi,y as c4,z as u4,A as d4}from"./vendor-tanstack-BjS7iY3g.js";import{S as m4,O as Qf,P as A2,C as Zf,a as N2,T as Ff,D as _2,R as C2}from"./vendor-radix-DnzzbllM.js";import{c as z2}from"./vendor-recharts-33ACLxsD.js";import{M as p4}from"./vendor-markdown-CpDJch4G.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const u of r)if(u.type==="childList")for(const d of u.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&s(d)}).observe(document,{childList:!0,subtree:!0});function i(r){const u={};return r.integrity&&(u.integrity=r.integrity),r.referrerPolicy&&(u.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?u.credentials="include":r.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function s(r){if(r.ep)return;r.ep=!0;const u=i(r);fetch(r.href,u)}})();var Op={exports:{}},Yr={},Rp={exports:{}},Mp={};var ub;function f4(){return ub||(ub=1,(function(e){function t(Q,oe){var me=Q.length;Q.push(oe);e:for(;0<me;){var Ce=me-1>>>1,ce=Q[Ce];if(0<r(ce,oe))Q[Ce]=oe,Q[me]=ce,me=Ce;else break e}}function i(Q){return Q.length===0?null:Q[0]}function s(Q){if(Q.length===0)return null;var oe=Q[0],me=Q.pop();if(me!==oe){Q[0]=me;e:for(var Ce=0,ce=Q.length,He=ce>>>1;Ce<He;){var ne=2*(Ce+1)-1,H=Q[ne],X=ne+1,ie=Q[X];if(0>r(H,me))X<ce&&0>r(ie,H)?(Q[Ce]=ie,Q[X]=me,Ce=X):(Q[Ce]=H,Q[ne]=me,Ce=ne);else if(X<ce&&0>r(ie,me))Q[Ce]=ie,Q[X]=me,Ce=X;else break e}}return oe}function r(Q,oe){var me=Q.sortIndex-oe.sortIndex;return me!==0?me:Q.id-oe.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var d=Date,g=d.now();e.unstable_now=function(){return d.now()-g}}var b=[],v=[],x=1,S=null,j=3,_=!1,T=!1,N=!1,C=!1,O=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,$=typeof setImmediate<"u"?setImmediate:null;function K(Q){for(var oe=i(v);oe!==null;){if(oe.callback===null)s(v);else if(oe.startTime<=Q)s(v),oe.sortIndex=oe.expirationTime,t(b,oe);else break;oe=i(v)}}function Z(Q){if(N=!1,K(Q),!T)if(i(b)!==null)T=!0,se||(se=!0,we());else{var oe=i(v);oe!==null&&ge(Z,oe.startTime-Q)}}var se=!1,R=-1,q=5,pe=-1;function ue(){return C?!0:!(e.unstable_now()-pe<q)}function fe(){if(C=!1,se){var Q=e.unstable_now();pe=Q;var oe=!0;try{e:{T=!1,N&&(N=!1,I(R),R=-1),_=!0;var me=j;try{t:{for(K(Q),S=i(b);S!==null&&!(S.expirationTime>Q&&ue());){var Ce=S.callback;if(typeof Ce=="function"){S.callback=null,j=S.priorityLevel;var ce=Ce(S.expirationTime<=Q);if(Q=e.unstable_now(),typeof ce=="function"){S.callback=ce,K(Q),oe=!0;break t}S===i(b)&&s(b),K(Q)}else s(b);S=i(b)}if(S!==null)oe=!0;else{var He=i(v);He!==null&&ge(Z,He.startTime-Q),oe=!1}}break e}finally{S=null,j=me,_=!1}oe=void 0}}finally{oe?we():se=!1}}}var we;if(typeof $=="function")we=function(){$(fe)};else if(typeof MessageChannel<"u"){var Te=new MessageChannel,it=Te.port2;Te.port1.onmessage=fe,we=function(){it.postMessage(null)}}else we=function(){O(fe,0)};function ge(Q,oe){R=O(function(){Q(e.unstable_now())},oe)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(Q){Q.callback=null},e.unstable_forceFrameRate=function(Q){0>Q||125<Q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):q=0<Q?Math.floor(1e3/Q):5},e.unstable_getCurrentPriorityLevel=function(){return j},e.unstable_next=function(Q){switch(j){case 1:case 2:case 3:var oe=3;break;default:oe=j}var me=j;j=oe;try{return Q()}finally{j=me}},e.unstable_requestPaint=function(){C=!0},e.unstable_runWithPriority=function(Q,oe){switch(Q){case 1:case 2:case 3:case 4:case 5:break;default:Q=3}var me=j;j=Q;try{return oe()}finally{j=me}},e.unstable_scheduleCallback=function(Q,oe,me){var Ce=e.unstable_now();switch(typeof me=="object"&&me!==null?(me=me.delay,me=typeof me=="number"&&0<me?Ce+me:Ce):me=Ce,Q){case 1:var ce=-1;break;case 2:ce=250;break;case 5:ce=1073741823;break;case 4:ce=1e4;break;default:ce=5e3}return ce=me+ce,Q={id:x++,callback:oe,priorityLevel:Q,startTime:me,expirationTime:ce,sortIndex:-1},me>Ce?(Q.sortIndex=me,t(v,Q),i(b)===null&&Q===i(v)&&(N?(I(R),R=-1):N=!0,ge(Z,me-Ce))):(Q.sortIndex=ce,t(b,Q),T||_||(T=!0,se||(se=!0,we()))),Q},e.unstable_shouldYield=ue,e.unstable_wrapCallback=function(Q){var oe=j;return function(){var me=j;j=oe;try{return Q.apply(this,arguments)}finally{j=me}}}})(Mp)),Mp}var db;function h4(){return db||(db=1,Rp.exports=f4()),Rp.exports}var mb;function g4(){if(mb)return Yr;mb=1;var e=h4(),t=e4(),i=t4();function s(n){var a="https://react.dev/errors/"+n;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var o=2;o<arguments.length;o++)a+="&args[]="+encodeURIComponent(arguments[o])}return"Minified React error #"+n+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11)}function u(n){var a=n,o=n;if(n.alternate)for(;a.return;)a=a.return;else{n=a;do a=n,(a.flags&4098)!==0&&(o=a.return),n=a.return;while(n)}return a.tag===3?o:null}function d(n){if(n.tag===13){var a=n.memoizedState;if(a===null&&(n=n.alternate,n!==null&&(a=n.memoizedState)),a!==null)return a.dehydrated}return null}function g(n){if(n.tag===31){var a=n.memoizedState;if(a===null&&(n=n.alternate,n!==null&&(a=n.memoizedState)),a!==null)return a.dehydrated}return null}function b(n){if(u(n)!==n)throw Error(s(188))}function v(n){var a=n.alternate;if(!a){if(a=u(n),a===null)throw Error(s(188));return a!==n?null:n}for(var o=n,l=a;;){var p=o.return;if(p===null)break;var f=p.alternate;if(f===null){if(l=p.return,l!==null){o=l;continue}break}if(p.child===f.child){for(f=p.child;f;){if(f===o)return b(p),n;if(f===l)return b(p),a;f=f.sibling}throw Error(s(188))}if(o.return!==l.return)o=p,l=f;else{for(var w=!1,A=p.child;A;){if(A===o){w=!0,o=p,l=f;break}if(A===l){w=!0,l=p,o=f;break}A=A.sibling}if(!w){for(A=f.child;A;){if(A===o){w=!0,o=f,l=p;break}if(A===l){w=!0,l=f,o=p;break}A=A.sibling}if(!w)throw Error(s(189))}}if(o.alternate!==l)throw Error(s(190))}if(o.tag!==3)throw Error(s(188));return o.stateNode.current===o?n:a}function x(n){var a=n.tag;if(a===5||a===26||a===27||a===6)return n;for(n=n.child;n!==null;){if(a=x(n),a!==null)return a;n=n.sibling}return null}var S=Object.assign,j=Symbol.for("react.element"),_=Symbol.for("react.transitional.element"),T=Symbol.for("react.portal"),N=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),O=Symbol.for("react.profiler"),I=Symbol.for("react.consumer"),$=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),se=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),pe=Symbol.for("react.activity"),ue=Symbol.for("react.memo_cache_sentinel"),fe=Symbol.iterator;function we(n){return n===null||typeof n!="object"?null:(n=fe&&n[fe]||n["@@iterator"],typeof n=="function"?n:null)}var Te=Symbol.for("react.client.reference");function it(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===Te?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case N:return"Fragment";case O:return"Profiler";case C:return"StrictMode";case Z:return"Suspense";case se:return"SuspenseList";case pe:return"Activity"}if(typeof n=="object")switch(n.$$typeof){case T:return"Portal";case $:return n.displayName||"Context";case I:return(n._context.displayName||"Context")+".Consumer";case K:var a=n.render;return n=n.displayName,n||(n=a.displayName||a.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case R:return a=n.displayName||null,a!==null?a:it(n.type)||"Memo";case q:a=n._payload,n=n._init;try{return it(n(a))}catch{}}return null}var ge=Array.isArray,Q=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,oe=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,me={pending:!1,data:null,method:null,action:null},Ce=[],ce=-1;function He(n){return{current:n}}function ne(n){0>ce||(n.current=Ce[ce],Ce[ce]=null,ce--)}function H(n,a){ce++,Ce[ce]=n.current,n.current=a}var X=He(null),ie=He(null),re=He(null),ze=He(null);function ct(n,a){switch(H(re,a),H(ie,n),H(X,null),a.nodeType){case 9:case 11:n=(n=a.documentElement)&&(n=n.namespaceURI)?Oy(n):0;break;default:if(n=a.tagName,a=a.namespaceURI)a=Oy(a),n=Ry(a,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}ne(X),H(X,n)}function _e(){ne(X),ne(ie),ne(re)}function Qe(n){n.memoizedState!==null&&H(ze,n);var a=X.current,o=Ry(a,n.type);a!==o&&(H(ie,n),H(X,o))}function Xe(n){ie.current===n&&(ne(X),ne(ie)),ze.current===n&&(ne(ze),Hr._currentValue=me)}var Gt,In;function Qt(n){if(Gt===void 0)try{throw Error()}catch(o){var a=o.stack.trim().match(/\n( *(at )?)/);Gt=a&&a[1]||"",In=-1<o.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<o.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+Gt+n+In}var Cs=!1;function zs(n,a){if(!n||Cs)return"";Cs=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(a){var te=function(){throw Error()};if(Object.defineProperty(te.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(te,[])}catch(F){var G=F}Reflect.construct(n,[],te)}else{try{te.call()}catch(F){G=F}n.call(te.prototype)}}else{try{throw Error()}catch(F){G=F}(te=n())&&typeof te.catch=="function"&&te.catch(function(){})}}catch(F){if(F&&G&&typeof F.stack=="string")return[F.stack,G.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var p=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");p&&p.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var f=l.DetermineComponentFrameRoot(),w=f[0],A=f[1];if(w&&A){var z=w.split(`
|
|
@@ -11,7 +11,7 @@ Error generating stack: `+l.message+`
|
|
|
11
11
|
|
|
12
12
|
`);q=we.pop()??"";for(const Te of we){const it=Te.split(`
|
|
13
13
|
`),ge=[];let Q;for(const Ce of it)if(Ce.startsWith("data:"))ge.push(Ce.replace(/^data:\s*/,""));else if(Ce.startsWith("event:"))Q=Ce.replace(/^event:\s*/,"");else if(Ce.startsWith("id:"))S=Ce.replace(/^id:\s*/,"");else if(Ce.startsWith("retry:")){const ce=Number.parseInt(Ce.replace(/^retry:\s*/,""),10);Number.isNaN(ce)||(N=ce)}let oe,me=!1;if(ge.length){const Ce=ge.join(`
|
|
14
|
-
`);try{oe=JSON.parse(Ce),me=!0}catch{oe=Ce}}me&&(r&&await r(oe),s&&(oe=await s(oe))),i?.({data:oe,event:Q,id:S,retry:N}),ge.length&&(yield oe)}}}finally{O.removeEventListener("abort",pe),R.releaseLock()}break}catch($){if(t?.($),d!==void 0&&C>=d)break;const K=Math.min(N*2**(C-1),g??3e4);await j(K)}}}()}},w4=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},x4=e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},S4=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},E2=({allowReserved:e,explode:t,name:i,style:s,value:r})=>{if(!t){const g=(e?r:r.map(b=>encodeURIComponent(b))).join(x4(s));switch(s){case"label":return`.${g}`;case"matrix":return`;${i}=${g}`;case"simple":return g;default:return`${i}=${g}`}}const u=w4(s),d=r.map(g=>s==="label"||s==="simple"?e?g:encodeURIComponent(g):Lu({allowReserved:e,name:i,value:g})).join(u);return s==="label"||s==="matrix"?u+d:d},Lu=({allowReserved:e,name:t,value:i})=>{if(i==null)return"";if(typeof i=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?i:encodeURIComponent(i)}`},T2=({allowReserved:e,explode:t,name:i,style:s,value:r,valueOnly:u})=>{if(r instanceof Date)return u?r.toISOString():`${i}=${r.toISOString()}`;if(s!=="deepObject"&&!t){let b=[];Object.entries(r).forEach(([x,S])=>{b=[...b,x,e?S:encodeURIComponent(S)]});const v=b.join(",");switch(s){case"form":return`${i}=${v}`;case"label":return`.${v}`;case"matrix":return`;${i}=${v}`;default:return v}}const d=S4(s),g=Object.entries(r).map(([b,v])=>Lu({allowReserved:e,name:s==="deepObject"?`${i}[${b}]`:b,value:v})).join(d);return s==="label"||s==="matrix"?d+g:g},j4=/\{[^{}]+\}/g,A4=({path:e,url:t})=>{let i=t;const s=t.match(j4);if(s)for(const r of s){let u=!1,d=r.substring(1,r.length-1),g="simple";d.endsWith("*")&&(u=!0,d=d.substring(0,d.length-1)),d.startsWith(".")?(d=d.substring(1),g="label"):d.startsWith(";")&&(d=d.substring(1),g="matrix");const b=e[d];if(b==null)continue;if(Array.isArray(b)){i=i.replace(r,E2({explode:u,name:d,style:g,value:b}));continue}if(typeof b=="object"){i=i.replace(r,T2({explode:u,name:d,style:g,value:b,valueOnly:!0}));continue}if(g==="matrix"){i=i.replace(r,`;${Lu({name:d,value:b})}`);continue}const v=encodeURIComponent(g==="label"?`.${b}`:b);i=i.replace(r,v)}return i},N4=({baseUrl:e,path:t,query:i,querySerializer:s,url:r})=>{const u=r.startsWith("/")?r:`/${r}`;let d=(e??"")+u;t&&(d=A4({path:t,url:d}));let g=i?s(i):"";return g.startsWith("?")&&(g=g.substring(1)),g&&(d+=`?${g}`),d};function _4(e){const t=e.body!==void 0;if(t&&e.bodySerializer)return"serializedBody"in e?e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null:e.body!==""?e.body:null;if(t)return e.body}const C4=async(e,t)=>{const i=typeof t=="function"?await t(e):t;if(i)return e.scheme==="bearer"?`Bearer ${i}`:e.scheme==="basic"?`Basic ${btoa(i)}`:i},D2=({allowReserved:e,array:t,object:i}={})=>r=>{const u=[];if(r&&typeof r=="object")for(const d in r){const g=r[d];if(g!=null)if(Array.isArray(g)){const b=E2({allowReserved:e,explode:!0,name:d,style:"form",value:g,...t});b&&u.push(b)}else if(typeof g=="object"){const b=T2({allowReserved:e,explode:!0,name:d,style:"deepObject",value:g,...i});b&&u.push(b)}else{const b=Lu({allowReserved:e,name:d,value:g});b&&u.push(b)}}return u.join("&")},z4=e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return"json";if(t==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some(i=>t.startsWith(i)))return"blob";if(t.startsWith("text/"))return"text"}},E4=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):!1,T4=async({security:e,...t})=>{for(const i of e){if(E4(t,i.name))continue;const s=await C4(i,t.auth);if(!s)continue;const r=i.name??"Authorization";switch(i.in){case"query":t.query||(t.query={}),t.query[r]=s;break;case"cookie":t.headers.append("Cookie",`${r}=${s}`);break;default:t.headers.set(r,s);break}}},fb=e=>N4({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:D2(e.querySerializer),url:e.url}),hb=(e,t)=>{const i={...e,...t};return i.baseUrl?.endsWith("/")&&(i.baseUrl=i.baseUrl.substring(0,i.baseUrl.length-1)),i.headers=O2(e.headers,t.headers),i},D4=e=>{const t=[];return e.forEach((i,s)=>{t.push([s,i])}),t},O2=(...e)=>{const t=new Headers;for(const i of e){if(!i)continue;const s=i instanceof Headers?D4(i):Object.entries(i);for(const[r,u]of s)if(u===null)t.delete(r);else if(Array.isArray(u))for(const d of u)t.append(r,d);else u!==void 0&&t.set(r,typeof u=="object"?JSON.stringify(u):u)}return t};class Bp{fns=[];clear(){this.fns=[]}eject(t){const i=this.getInterceptorIndex(t);this.fns[i]&&(this.fns[i]=null)}exists(t){const i=this.getInterceptorIndex(t);return!!this.fns[i]}getInterceptorIndex(t){return typeof t=="number"?this.fns[t]?t:-1:this.fns.indexOf(t)}update(t,i){const s=this.getInterceptorIndex(t);return this.fns[s]?(this.fns[s]=i,t):!1}use(t){return this.fns.push(t),this.fns.length-1}}const O4=()=>({error:new Bp,request:new Bp,response:new Bp}),R4=D2({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),M4={"Content-Type":"application/json"},R2=(e={})=>({...v4,headers:M4,parseAs:"auto",querySerializer:R4,...e}),M2=(e={})=>{let t=hb(R2(),e);const i=()=>({...t}),s=v=>(t=hb(t,v),i()),r=O4(),u=async v=>{const x={...t,...v,fetch:v.fetch??t.fetch??globalThis.fetch,headers:O2(t.headers,v.headers),serializedBody:void 0};x.security&&await T4({...x,security:x.security}),x.requestValidator&&await x.requestValidator(x),x.body!==void 0&&x.bodySerializer&&(x.serializedBody=x.bodySerializer(x.body)),(x.body===void 0||x.serializedBody==="")&&x.headers.delete("Content-Type");const S=fb(x);return{opts:x,url:S}},d=async v=>{const{opts:x,url:S}=await u(v),j={redirect:"follow",...x,body:_4(x)};let _=new Request(S,j);for(const Z of r.request.fns)Z&&(_=await Z(_,x));const T=x.fetch;let N=await T(_);for(const Z of r.response.fns)Z&&(N=await Z(N,_,x));const C={request:_,response:N};if(N.ok){const Z=(x.parseAs==="auto"?z4(N.headers.get("Content-Type")):x.parseAs)??"json";if(N.status===204||N.headers.get("Content-Length")==="0"){let R;switch(Z){case"arrayBuffer":case"blob":case"text":R=await N[Z]();break;case"formData":R=new FormData;break;case"stream":R=N.body;break;default:R={};break}return x.responseStyle==="data"?R:{data:R,...C}}let se;switch(Z){case"arrayBuffer":case"blob":case"formData":case"json":case"text":se=await N[Z]();break;case"stream":return x.responseStyle==="data"?N.body:{data:N.body,...C}}return Z==="json"&&(x.responseValidator&&await x.responseValidator(se),x.responseTransformer&&(se=await x.responseTransformer(se))),x.responseStyle==="data"?se:{data:se,...C}}const O=await N.text();let I;try{I=JSON.parse(O)}catch{}const $=I??O;let K=$;for(const Z of r.error.fns)Z&&(K=await Z($,N,_,x));if(K=K||{},x.throwOnError)throw K;return x.responseStyle==="data"?void 0:{error:K,...C}},g=v=>x=>d({...x,method:v}),b=v=>async x=>{const{opts:S,url:j}=await u(x);return k4({...S,body:S.body,headers:S.headers,method:v,onRequest:async(_,T)=>{let N=new Request(_,T);for(const C of r.request.fns)C&&(N=await C(N,S));return N},url:j})};return{buildUrl:fb,connect:g("CONNECT"),delete:g("DELETE"),get:g("GET"),getConfig:i,head:g("HEAD"),interceptors:r,options:g("OPTIONS"),patch:g("PATCH"),post:g("POST"),put:g("PUT"),request:d,setConfig:s,sse:{connect:b("CONNECT"),delete:b("DELETE"),get:b("GET"),head:b("HEAD"),options:b("OPTIONS"),patch:b("PATCH"),post:b("POST"),put:b("PUT"),trace:b("TRACE")},trace:g("TRACE")}},V=M2(R2()),B4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps/submit",...e,headers:{"Content-Type":"application/json",...e.headers}}),q4=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),B2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),I4=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),L4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan",...e}),P4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-report",...e}),$4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-setup",...e}),TU=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft",...e}),DU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/create",...e,headers:{"Content-Type":"application/json",...e.headers}}),OU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/import-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),RU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-sitemap-selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),MU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/upsert-target",...e,headers:{"Content-Type":"application/json",...e.headers}}),BU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/exclude-target",...e,headers:{"Content-Type":"application/json",...e.headers}}),qU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),IU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/preview-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),LU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/replace-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),PU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-paired-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),$U=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/remove-assignment",...e,headers:{"Content-Type":"application/json",...e.headers}}),UU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/upsert-group",...e,headers:{"Content-Type":"application/json",...e.headers}}),VU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/remove-group",...e,headers:{"Content-Type":"application/json",...e.headers}}),KU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/preview-group-membership",...e,headers:{"Content-Type":"application/json",...e.headers}}),GU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-group-membership",...e,headers:{"Content-Type":"application/json",...e.headers}}),HU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/upsert-competitor",...e,headers:{"Content-Type":"application/json",...e.headers}}),QU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/remove-competitor",...e,headers:{"Content-Type":"application/json",...e.headers}}),ZU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/compile-preview",...e}),FU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/diff-preview",...e}),YU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/publish",...e,headers:{"Content-Type":"application/json",...e.headers}}),XU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/discard",...e}),q2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-overview",...e}),U4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-property-evidence",...e}),V4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-question-result",...e}),K4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-property-competitors",...e}),G4=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects",...e}),H4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/research/runs",...e}),Q4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/research/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),Z4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/research/runs/{runId}",...e}),F4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations",...e,headers:{"Content-Type":"application/json",...e.headers}}),Y4=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/{label}",...e}),X4=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/default",...e,headers:{"Content-Type":"application/json",...e.headers}}),J4=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),I2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e}),W4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),e5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),t5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries/generate",...e,headers:{"Content-Type":"application/json",...e.headers}}),n5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e}),a5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),i5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),s5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors/{id}",...e}),L2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e}),o5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),r5=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e}),l5=e=>(e?.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),P2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs/{id}",...e}),c5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/apply",...e,headers:{"Content-Type":"application/json",...e.headers}}),u5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/history",...e}),d5=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/history",...e}),m5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/timeline",...e}),p5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/analytics/metrics",...e}),f5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/snapshots/diff",...e}),$2=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings",...e}),h5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/providers/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),g5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/google",...e,headers:{"Content-Type":"application/json",...e.headers}}),y5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/bing",...e,headers:{"Content-Type":"application/json",...e.headers}}),b5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/cdp",...e,headers:{"Content-Type":"application/json",...e.headers}}),v5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),U2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),k5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e,headers:{"Content-Type":"application/json",...e.headers}}),w5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e}),x5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e,headers:{"Content-Type":"application/json",...e.headers}}),S5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}",...e}),j5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}/test",...e}),A5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/telemetry/onboarding",...e,headers:{"Content-Type":"application/json",...e.headers}}),N5=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/cdp/status",...e}),_5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections",...e}),C5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),z5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}",...e}),E5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/properties",...e}),T5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/property",...e,headers:{"Content-Type":"application/json",...e.headers}}),D5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),O5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),R5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance",...e}),M5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance/daily",...e}),B5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect",...e,headers:{"Content-Type":"application/json",...e.headers}}),q5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspections",...e}),I5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/deindexed",...e}),V2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage",...e}),L5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage/history",...e}),P5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps",...e}),$5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),U5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/indexing/request",...e,headers:{"Content-Type":"application/json",...e.headers}}),V5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations",...e}),K5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations/{locationName}/selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),G5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),H5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/keywords",...e}),Q5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/place-actions",...e}),Z5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/lodging",...e}),F5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/places",...e}),Y5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/summary",...e}),X5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),J5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/disconnect",...e}),W5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/status",...e}),e6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/sites",...e}),t6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/set-site",...e,headers:{"Content-Type":"application/json",...e.headers}}),K2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/coverage",...e}),n6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspections",...e}),a6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-url",...e,headers:{"Content-Type":"application/json",...e.headers}}),i6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),s6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/request-indexing",...e,headers:{"Content-Type":"application/json",...e.headers}}),o6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/performance",...e}),r6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),l6=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/disconnect",...e}),c6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/status",...e}),u6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),d6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/traffic",...e}),m6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/ai-referral-daily",...e}),p6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/social-referral-history",...e}),f6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/session-history",...e}),h6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/insights",...e}),g6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/report",...e}),y6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/health/history",...e}),b6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/citations/visibility",...e}),v6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/content/dismissals",...e,headers:{"Content-Type":"application/json",...e.headers}}),k6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/overview",...e}),w6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/status",...e}),x6=e=>(e?.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/install",...e}),S6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e}),j6=e=>(e?.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),A6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs/latest",...e}),N6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/releases",...e}),_6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/latest-release",...e}),C6=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/cache/{release}",...e}),z6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/extract",...e,headers:{"Content-Type":"application/json",...e.headers}}),E6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/summary",...e}),T6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/domains",...e}),D6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/history",...e}),O6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/cloud-run",...e,headers:{"Content-Type":"application/json",...e.headers}}),R6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/wordpress",...e,headers:{"Content-Type":"application/json",...e.headers}}),M6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/vercel",...e,headers:{"Content-Type":"application/json",...e.headers}}),B6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),q6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/backfill",...e,headers:{"Content-Type":"application/json",...e.headers}}),I6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources",...e}),L6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/status",...e}),P6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}",...e}),$6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/events",...e}),U6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/run",...e,headers:{"Content-Type":"application/json",...e.headers}}),V6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions",...e}),K6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}",...e}),G6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e}),H6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e,headers:{"Content-Type":"application/json",...e.headers}}),Q6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo",...e}),Z6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/pages",...e}),F6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/trend",...e}),Y6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),X6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/agent/providers",...e});function J6(e){const t={baseUrl:e.baseUrl,fetch:e.fetch,headers:{...e.headers??{}}};return M2(t)}class Mn extends Error{code;statusCode;details;constructor(t,i,s,r){super(t),this.name="ApiError",this.code=s??"UNKNOWN",this.statusCode=i,this.details=r}}function W6(){if(typeof window>"u")return;const e=window.__CANONRY_CONFIG__?.embed?.renderToken;return typeof e=="string"&&e.length>0?e:void 0}function Yf(e){const t=W6();if(!t)return e;let i;const s=typeof window<"u"&&window.location?window.location.href:"http://localhost/";try{i=new URL(e,s)}catch{return e}const r=new URL(s).origin;if(i.origin!==r)return e;const d=`${Jf().replace(/\/$/,"")}/api/v1`;return i.pathname!==d&&!i.pathname.startsWith(`${d}/`)?e:(i.searchParams.set("token",t),/^[a-z][a-z\d+.-]*:/i.test(e)?i.toString():`${i.pathname}${i.search}${i.hash}`)}function eA(e,t){const i={method:e.method,headers:e.headers,cache:e.cache,credentials:e.credentials,integrity:e.integrity,keepalive:e.keepalive,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal};return e.body&&(i.body=e.body,i.duplex="half"),new Request(t,i)}function G2(){if(typeof window>"u")return null;const e=window.__CANONRY_CONFIG__?.embed;return e?.enabled?e:null}function tA(){return typeof window>"u"?!0:window.__CANONRY_CONFIG__?.dashboard?.showResourceLinks!==!1}function nA(){return typeof window>"u"?!0:window.__CANONRY_CONFIG__?.dashboard?.showAgentBar!==!1}function aA(){return typeof window>"u"?!0:window.__CANONRY_CONFIG__?.dashboard?.showUpdateNotification!==!1}function iA(){return G2()!==null}function sA(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const Xf=sA();function oA(){const e=typeof window<"u"&&window.location?window.location.origin:"";return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?e+window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):e}function Jf(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):""}function rA(e){const t=e.trim().toLowerCase().replace(/^\[|\]$/g,"");return t==="localhost"||t==="::1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(t)}function lA(e,t){if(e.protocol!=="http:"&&e.protocol!=="https:"||!rA(e.hostname))return;const i=e.port?`:${e.port}`:"",s=t?t.replace(/\/$/,""):"";return`${e.protocol}//localhost${i}${s}`}function JU(e){return`${e.replace(/\/$/,"")}/api/v1/google/callback`}function cA(){if(!(typeof window>"u"))return lA(window.location,Jf())}function uA(e){return`${Jf()}${e}`}function dA(e,t){if(t===404)return"Health endpoint returned 404. Check basePath or reverse-proxy configuration and make sure the dashboard reaches /health instead of an API-prefixed route."}function mA(){return""}function qp(){return!!mA()}let H2=null;function gb(e){H2=e}function Wf(){H2?.()}const le=J6({baseUrl:oA()});le.interceptors.response.use((e,t)=>(e.status===401&&!t.url.includes("/api/v1/session")&&Wf(),e));le.interceptors.request.use(e=>{const t=Yf(e.url);return t===e.url?e:eA(e,t)});async function de(e){const t=await e();if(t.error!==void 0&&t.error!==null){const i=t.response.status;let s=`API ${i}: ${t.response.statusText}`,r,u;if(typeof t.error=="object"&&t.error!==null){const d=t.error.error;if(typeof d=="string")s=d;else if(d&&typeof d=="object"){const g=d;g.message&&(s=g.message),g.code&&(r=g.code),g.details&&(u=g.details)}else{const g=t.error;g.message&&(s=g.message),g.code&&(r=g.code),g.details&&(u=g.details)}}else typeof t.error=="string"&&(s=t.error);throw new Mn(s,i,r,u)}if(t.response.status!==204)return t.data}async function Po(e,t){const i=t?.body!=null,s=await fetch(Yf(`${Xf}${e}`),{...t,credentials:t?.credentials??"same-origin",headers:{...i?{"Content-Type":"application/json"}:{},...t?.headers}});if(!s.ok){const r=await s.text();let u=`API ${s.status}: ${s.statusText}`,d,g;if(r)try{const b=JSON.parse(r);typeof b.error=="string"?u=b.error:b.error?.message?(u=b.error.message,d=b.error.code,g=b.error.details):b.message&&(u=b.message)}catch{u=r}throw s.status===401&&!e.startsWith("/session")&&!e.startsWith("/auth/")&&Wf(),new Mn(u,s.status,d,g)}if(s.status!==204)return s.json()}function pA(e){return de(()=>B2({client:le,path:{name:e}}))}function WU(e){return de(()=>L2({client:le,path:{name:e}}))}function ku(e){return de(()=>P2({client:le,path:{id:e}}))}function Q2(e){return de(()=>I2({client:le,path:{name:e}}))}function fA(e){return de(()=>n5({client:le,path:{name:e}}))}function hA(e,t,i){return de(()=>m5({client:le,path:{name:e},query:{location:t,limit:i}}))}function Z2(e,t){return de(()=>k6({client:le,path:{name:e},query:{location:t?.location,since:t?.since}}))}function e0(e,t){return de(()=>I4({client:le,path:{name:e},body:t}))}function gA(e,t){return de(()=>e5({client:le,path:{name:e},body:{queries:t}}))}function yA(e,t){return de(()=>W4({client:le,path:{name:e},body:{queries:t}}))}function eV(e,t){return de(()=>J4({client:le,path:{name:e},body:{queries:t}}))}function bA(e,t){return de(()=>v6({client:le,path:{name:e},body:t}))}function vA(e,t){return de(()=>i5({client:le,path:{name:e},body:{competitors:t}}))}function tV(e,t){return de(()=>a5({client:le,path:{name:e},body:{competitors:t}}))}function nV(e,t){return de(()=>s5({client:le,path:{name:e,id:t}}))}async function aV(e,t){const i=await pA(e);return e0(e,{displayName:t.displayName??i.displayName??i.name,canonicalDomain:t.canonicalDomain??i.canonicalDomain,ownedDomains:t.ownedDomains??i.ownedDomains,aliases:t.aliases??i.aliases,country:t.country??i.country,language:t.language??i.language,tags:i.tags,labels:i.labels,providers:t.providers??i.providers,providerModels:t.providerModels??i.providerModels??{},locations:t.locations??i.locations,defaultLocation:t.defaultLocation!==void 0?t.defaultLocation:i.defaultLocation,autoExtractBacklinks:i.autoExtractBacklinks})}function kA(e,t){const i={};return t?.location&&(i.location=t.location),t?.allLocations&&(i.allLocations=!0),t?.noLocation&&(i.noLocation=!0),de(()=>o5({client:le,path:{name:e},body:i}))}function iV(e,t){return de(()=>F4({client:le,path:{name:e},body:t}))}async function sV(e,t){await de(()=>Y4({client:le,path:{name:e,label:t}}))}function oV(e,t){return de(()=>X4({client:le,path:{name:e},body:{label:t}}))}async function rV(e){await de(()=>q4({client:le,path:{name:e}}))}function lV(){return de(()=>$2({client:le}))}function yb(){return Po("/session")}function wA(e){return Po("/session/setup",{method:"POST",body:JSON.stringify({password:e})})}function xA(e){return Po("/session",{method:"POST",body:JSON.stringify({password:e})})}function bb(){return Po("/auth/session")}function SA(e,t){return Po("/auth/login",{method:"POST",body:JSON.stringify({name:e,password:t})})}function vb(){return Po("/auth/logout",{method:"POST"})}function jA(e,t){return de(()=>h5({client:le,path:{name:e},body:t}))}async function AA(e){for(let t=0;t<2;t+=1)try{await de(()=>A5({client:le,body:e}));return}catch(i){if(!(!(i instanceof Mn)||i.statusCode>=500)||t===1)return}}function cV(e){return de(()=>g5({client:le,body:e}))}async function uV(e){try{return await de(()=>U2({client:le,path:{name:e}}))}catch(t){if(t instanceof Mn&&t.statusCode===404)return null;throw t}}function dV(e,t){return de(()=>k5({client:le,path:{name:e},body:t}))}async function mV(e){await de(()=>v5({client:le,path:{name:e}}))}function pV(e){return de(()=>w5({client:le,path:{name:e}}))}function fV(e,t){return de(()=>x5({client:le,path:{name:e},body:t}))}async function hV(e,t){await de(()=>S5({client:le,path:{name:e,id:t}}))}function gV(e,t){return de(()=>j5({client:le,path:{name:e,id:t}}))}function NA(e,t,i){return de(()=>t5({client:le,path:{name:e},body:{provider:t,count:i}}))}function _A(e){return de(()=>c5({client:le,body:e}))}function CA(e){return de(()=>l5({client:le,body:e??{}}))}function yV(e,t){const i=cA();return de(()=>C5({client:le,path:{name:e},body:{type:t,...i?{publicUrl:i}:{}}}))}function bV(e,t){return de(()=>z5({client:le,path:{name:e,type:t}}))}function vV(e,t,i){return de(()=>T5({client:le,path:{name:e,type:t},body:{propertyId:i}}))}function kV(e,t,i){return de(()=>D5({client:le,path:{name:e,type:t},body:{sitemapUrl:i}}))}function zA(e,t){return de(()=>O5({client:le,path:{name:e},body:t??{}}))}function wV(e,t){const i={};return t&&t!=="all"&&(i.window=t),de(()=>p5({client:le,path:{name:e},query:i}))}function xV(e,t){return de(()=>B5({client:le,path:{name:e},body:{url:t}}))}function EA(e){return de(()=>V2({client:le,path:{name:e}}))}function TA(e,t){return de(()=>$5({client:le,path:{name:e},body:t??{}}))}function SV(e,t){return de(()=>P5({client:le,path:{name:e},query:t?{sitemapIndex:t}:void 0}))}function jV(e,t){return de(()=>B4({client:le,path:{name:e},body:{sitemapUrls:t}}))}function DA(e,t){return de(()=>Y6({client:le,path:{name:e},body:t??{}}))}function AV(e,t){return de(()=>U6({client:le,path:{name:e},body:t??{}}))}function NV(e,t,i){return de(()=>H6({client:le,path:{name:e,id:t},body:i??{}}))}function _V(){return de(()=>N5({client:le}))}function CV(e,t){return de(()=>b5({client:le,body:{host:e,port:t}}))}function zV(e,t){return de(()=>U5({client:le,path:{name:e},body:t}))}function EV(e,t){return de(()=>X5({client:le,path:{name:e},body:{apiKey:t}}))}function TV(e){return de(()=>J5({client:le,path:{name:e}}))}function DV(e,t){return de(()=>t6({client:le,path:{name:e},body:{siteUrl:t}}))}function OA(e){return de(()=>K2({client:le,path:{name:e}}))}function OV(e,t){return de(()=>a6({client:le,path:{name:e},body:{url:t}}))}function RV(e,t){return de(()=>i6({client:le,path:{name:e},body:{}}))}function MV(e,t){return de(()=>s6({client:le,path:{name:e},body:t}))}function BV(e){return de(()=>y5({client:le,body:{apiKey:e}}))}function F2(e){return e?/filename\s*=\s*"?([^";]+)"?/i.exec(e)?.[1]??null:null}async function qV(e,t="agency",i){const s=new URLSearchParams({audience:t});i!==void 0&&s.set("period",String(i));const r=await fetch(Yf(`${Xf}/projects/${encodeURIComponent(e)}/report.html?${s.toString()}`),{credentials:"same-origin",headers:{}});if(!r.ok)throw new Mn(`Failed to download report: ${r.status}`,r.status);const u=await r.blob(),d=URL.createObjectURL(u),g=F2(r.headers.get("Content-Disposition"))??`canonry-report-${e}.html`,b=document.createElement("a");b.href=d,b.download=g,document.body.appendChild(b),b.click(),document.body.removeChild(b),URL.revokeObjectURL(d)}async function IV(e,t){const i=await fetch(`${Xf}/projects/${encodeURIComponent(e)}/results/export?format=${t}`,{credentials:"same-origin",headers:{}});if(!i.ok)throw new Mn(`Failed to download results: ${i.status}`,i.status);const s=await i.blob(),r=URL.createObjectURL(s),u=F2(i.headers.get("Content-Disposition"))??`canonry-results-${e}.${t}`,d=document.createElement("a");d.href=r,d.download=u,document.body.appendChild(d),d.click(),document.body.removeChild(d),URL.revokeObjectURL(r)}function LV(e,t){return de(()=>u6({client:le,path:{name:e},body:{}}))}function PV(e,t){return de(()=>r6({client:le,path:{name:e},body:t}))}function $V(e){return de(()=>l6({client:le,path:{name:e}}))}function UV(e,t){return de(()=>O6({client:le,path:{name:e},body:t}))}function VV(e,t){return de(()=>R6({client:le,path:{name:e},body:t}))}function KV(e,t){return de(()=>M6({client:le,path:{name:e},body:t}))}function GV(e,t,i){return de(()=>B6({client:le,path:{name:e,id:t},body:i??{}}))}function HV(e,t,i){return de(()=>q6({client:le,path:{name:e,id:t},body:{}}))}function RA(e,t){return de(()=>h6({client:le,path:{name:e},query:{runId:t}}))}function MA(e){if(!e||typeof e!="object")return;const t=e;if(!(typeof t.current!="string"||typeof t.latest!="string"||typeof t.url!="string"||typeof t.upgradeCommand!="string"))return{current:t.current,latest:t.latest,url:t.url,upgradeCommand:t.upgradeCommand}}async function BA(e,t){const i=uA(e);try{const s=await fetch(i,{credentials:"same-origin"});if(!s.ok)return{label:t,state:"error",detail:`${t} ${s.status}: ${s.statusText}`,statusCode:s.status,hint:dA(e,s.status)};const r=await s.json(),u=typeof r.version=="string"?r.version:"unknown",d=typeof r.databaseUrlConfigured=="boolean"?r.databaseUrlConfigured:void 0,g=typeof r.lastHeartbeatAt=="string"?r.lastHeartbeatAt:void 0,b=MA(r.updateAvailable),v=[u,d===!1?"database not configured":"database configured",g?`heartbeat ${g}`:void 0].filter(Boolean).join(" · ");return{label:t,state:"ok",detail:v,version:u,databaseConfigured:d,lastHeartbeatAt:g,...b?{updateAvailable:b}:{}}}catch(s){return{label:t,state:"error",detail:s instanceof Error?s.message:"unreachable",hint:e==="/health"?`Request failed while checking ${i}. If this instance is served behind a sub-path, verify the dashboard basePath and reverse-proxy rewrites.`:void 0}}}function QV(){return de(()=>w6({client:le}))}function ZV(){return de(()=>x6({client:le}))}function FV(){return de(()=>A6({client:le}))}function YV(){return de(()=>S6({client:le}))}function XV(e){return de(()=>j6({client:le,body:e?{release:e}:{}}))}function JV(){return de(()=>N6({client:le}))}function WV(){return de(()=>_6({client:le}))}function eK(e){return de(()=>C6({client:le,path:{release:e}}))}function tK(e,t={}){return de(()=>E6({client:le,path:{name:e},query:{release:t.release,excludeCrawlers:t.excludeCrawlers?"1":void 0,source:t.source}}))}function nK(e,t={}){return de(()=>T6({client:le,path:{name:e},query:{limit:t.limit!==void 0?String(t.limit):void 0,offset:t.offset!==void 0?String(t.offset):void 0,release:t.release,excludeCrawlers:t.excludeCrawlers?"1":void 0,source:t.source}}))}function aK(e,t={}){return de(()=>D6({client:le,path:{name:e},query:{source:t.source}}))}function iK(e,t){return de(()=>z6({client:le,path:{name:e},body:{release:void 0}}))}const Y2={account:null,canWrite:!0,isAdmin:!0},X2=B.createContext(Y2);function qA({account:e,children:t}){const i=e?{account:e,canWrite:e.role==="admin",isAdmin:e.role==="admin"}:Y2;return m.jsx(X2.Provider,{value:i,children:t})}function xl(){return B.useContext(X2)}const J2="View only — your account cannot change this.";function nn(e){return(...t)=>{e(...t)}}const IA=6e3,LA=5,PA=180;let an=[],$A=0;const pf=new Set,ff=new Map,hf=new Map;function wu(){const e=[...an];for(const t of pf)t(e)}function t0(e){const t=ff.get(e);t&&(clearTimeout(t),ff.delete(e));const i=hf.get(e);i&&(clearTimeout(i),hf.delete(e))}function W2(e){t0(e);const t=an.length;an=an.filter(i=>i.id!==e),an.length!==t&&wu()}function kb(e){t0(e.id),ff.set(e.id,setTimeout(()=>{gf(e.id)},e.durationMs))}function UA(e,t,i){return typeof e=="string"?{title:e,tone:t,durationMs:i}:e}function pn(e,t="negative",i=IA){const s=UA(e,t,i),r={id:String(++$A),title:s.title,detail:s.detail,tone:s.tone??t,durationMs:s.durationMs??i,dedupeKey:s.dedupeKey,cta:s.cta,state:"open"};if(s.dedupeKey){const u=an.find(d=>d.dedupeKey===s.dedupeKey);if(u){if((s.dedupeMode??"drop")==="drop")return u.id;const d={...u,title:r.title,detail:r.detail,tone:r.tone,durationMs:r.durationMs,cta:r.cta,state:"open"};return an=an.map(g=>g.id===u.id?d:g),wu(),kb(d),u.id}}return an.length>=LA&&W2(an[0].id),an=[...an,r],wu(),kb(r),r.id}function gf(e){const t=an.find(i=>i.id===e);!t||t.state==="closing"||(t0(e),an=an.map(i=>i.id===e?{...i,state:"closing"}:i),wu(),hf.set(e,setTimeout(()=>{W2(e)},PA)))}function VA(e){return pf.add(e),()=>{pf.delete(e)}}function wb(){return an}const KA=5*6e4,yf=30*6e4,sK=3e4,oK=6e4,zo=3e4,GA=2e3;function HA(){return new n4({defaultOptions:{queries:{staleTime:KA,retry:1,refetchOnWindowFocus:!1}},mutationCache:new a4({onError:(t,i,s,r)=>{r.meta?.skipGlobalErrorToast||pn({title:t instanceof Error?t.message:"An unexpected error occurred",tone:"negative"})}})})}const QA="modulepreload",ZA=function(e,t){return new URL(e,t).href},xb={},qi=function(t,i,s){let r=Promise.resolve();if(i&&i.length>0){let v=function(x){return Promise.all(x.map(S=>Promise.resolve(S).then(j=>({status:"fulfilled",value:j}),j=>({status:"rejected",reason:j}))))};const d=document.getElementsByTagName("link"),g=document.querySelector("meta[property=csp-nonce]"),b=g?.nonce||g?.getAttribute("nonce");r=v(i.map(x=>{if(x=ZA(x,s),x in xb)return;xb[x]=!0;const S=x.endsWith(".css"),j=S?'[rel="stylesheet"]':"";if(s)for(let T=d.length-1;T>=0;T--){const N=d[T];if(N.href===x&&(!S||N.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${x}"]${j}`))return;const _=document.createElement("link");if(_.rel=S?"stylesheet":QA,S||(_.as="script"),_.crossOrigin="",_.href=x,b&&_.setAttribute("nonce",b),document.head.appendChild(_),S)return new Promise((T,N)=>{_.addEventListener("load",T),_.addEventListener("error",()=>N(new Error(`Unable to preload CSS for ${x}`)))})}))}function u(d){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=d,window.dispatchEvent(g),!g.defaultPrevented)throw d}return r.then(d=>{for(const g of d||[])g.status==="rejected"&&u(g.reason);return t().catch(u)})};const FA=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),YA=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,i,s)=>s?s.toUpperCase():i.toLowerCase()),Sb=e=>{const t=YA(e);return t.charAt(0).toUpperCase()+t.slice(1)},ek=(...e)=>e.filter((t,i,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===i).join(" ").trim(),XA=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var JA={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const WA=B.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:i=2,absoluteStrokeWidth:s,className:r="",children:u,iconNode:d,...g},b)=>B.createElement("svg",{ref:b,...JA,width:t,height:t,stroke:e,strokeWidth:s?Number(i)*24/Number(t):i,className:ek("lucide",r),...!u&&!XA(g)&&{"aria-hidden":"true"},...g},[...d.map(([v,x])=>B.createElement(v,x)),...Array.isArray(u)?u:[u]]));const tt=(e,t)=>{const i=B.forwardRef(({className:s,...r},u)=>B.createElement(WA,{ref:u,iconNode:t,className:ek(`lucide-${FA(Sb(e))}`,`lucide-${e}`,s),...r}));return i.displayName=Sb(e),i};const eN=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],tN=tt("arrow-right",eN);const nN=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],aN=tt("arrow-up",nN);const iN=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],sN=tt("book-open",iN);const oN=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],tk=tt("check",oN);const rN=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],nk=tt("chevron-down",rN);const lN=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],n0=tt("chevron-right",lN);const cN=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],uN=tt("copy",cN);const dN=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],mN=tt("file-text",dN);const pN=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],fN=tt("github",pN);const hN=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],gN=tt("globe",hN);const yN=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],bN=tt("history",yN);const vN=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],kN=tt("layout-dashboard",vN);const wN=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],xN=tt("link-2",wN);const SN=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],ak=tt("loader-circle",SN);const jN=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],AN=tt("maximize-2",jN);const NN=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],_N=tt("menu",NN);const CN=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],zN=tt("minimize-2",CN);const EN=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],TN=tt("panel-left-close",EN);const DN=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],ON=tt("panel-left-open",DN);const RN=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],MN=tt("play",RN);const BN=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],jb=tt("plus",BN);const qN=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],IN=tt("radar",qN);const LN=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Ab=tt("radio",LN);const PN=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],$N=tt("rocket",PN);const UN=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],ik=tt("rotate-ccw",UN);const VN=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],KN=tt("search",VN);const GN=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],HN=tt("settings",GN);const QN=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],sk=tt("triangle-alert",QN);const ZN=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],FN=tt("wrench",ZN);const YN=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],$o=tt("x",YN);function J(e,t,i){function s(g,b){if(g._zod||Object.defineProperty(g,"_zod",{value:{def:b,constr:d,traits:new Set},enumerable:!1}),g._zod.traits.has(e))return;g._zod.traits.add(e),t(g,b);const v=d.prototype,x=Object.keys(v);for(let S=0;S<x.length;S++){const j=x[S];j in g||(g[j]=v[j].bind(g))}}const r=i?.Parent??Object;class u extends r{}Object.defineProperty(u,"name",{value:e});function d(g){var b;const v=i?.Parent?new u:this;s(v,g),(b=v._zod).deferred??(b.deferred=[]);for(const x of v._zod.deferred)x();return v}return Object.defineProperty(d,"init",{value:s}),Object.defineProperty(d,Symbol.hasInstance,{value:g=>i?.Parent&&g instanceof i.Parent?!0:g?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}class jo extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class ok extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const rk={};function Oi(e){return rk}function lk(e){const t=Object.values(e).filter(s=>typeof s=="number");return Object.entries(e).filter(([s,r])=>t.indexOf(+s)===-1).map(([s,r])=>r)}function bf(e,t){return typeof t=="bigint"?t.toString():t}function Pu(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function a0(e){return e==null}function i0(e){const t=e.startsWith("^")?1:0,i=e.endsWith("$")?e.length-1:e.length;return e.slice(t,i)}function XN(e,t){const i=(e.toString().split(".")[1]||"").length,s=t.toString();let r=(s.split(".")[1]||"").length;if(r===0&&/\d?e-\d?/.test(s)){const b=s.match(/\d?e-(\d?)/);b?.[1]&&(r=Number.parseInt(b[1]))}const u=i>r?i:r,d=Number.parseInt(e.toFixed(u).replace(".","")),g=Number.parseInt(t.toFixed(u).replace(".",""));return d%g/10**u}const Nb=Symbol("evaluating");function et(e,t,i){let s;Object.defineProperty(e,t,{get(){if(s!==Nb)return s===void 0&&(s=Nb,s=i()),s},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function Ss(e,t,i){Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!0,configurable:!0})}function Ii(...e){const t={};for(const i of e){const s=Object.getOwnPropertyDescriptors(i);Object.assign(t,s)}return Object.defineProperties({},t)}function _b(e){return JSON.stringify(e)}function JN(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const ck="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function hl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const WN=Pu(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function Eo(e){if(hl(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const i=t.prototype;return!(hl(i)===!1||Object.prototype.hasOwnProperty.call(i,"isPrototypeOf")===!1)}function uk(e){return Eo(e)?{...e}:Array.isArray(e)?[...e]:e}const e8=new Set(["string","number","symbol"]);function To(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Li(e,t,i){const s=new e._zod.constr(t??e._zod.def);return(!t||i?.parent)&&(s._zod.parent=e),s}function je(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function t8(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const n8={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function a8(e,t){const i=e._zod.def,s=i.checks;if(s&&s.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const u=Ii(e._zod.def,{get shape(){const d={};for(const g in t){if(!(g in i.shape))throw new Error(`Unrecognized key: "${g}"`);t[g]&&(d[g]=i.shape[g])}return Ss(this,"shape",d),d},checks:[]});return Li(e,u)}function i8(e,t){const i=e._zod.def,s=i.checks;if(s&&s.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const u=Ii(e._zod.def,{get shape(){const d={...e._zod.def.shape};for(const g in t){if(!(g in i.shape))throw new Error(`Unrecognized key: "${g}"`);t[g]&&delete d[g]}return Ss(this,"shape",d),d},checks:[]});return Li(e,u)}function s8(e,t){if(!Eo(t))throw new Error("Invalid input to extend: expected a plain object");const i=e._zod.def.checks;if(i&&i.length>0){const u=e._zod.def.shape;for(const d in t)if(Object.getOwnPropertyDescriptor(u,d)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const r=Ii(e._zod.def,{get shape(){const u={...e._zod.def.shape,...t};return Ss(this,"shape",u),u}});return Li(e,r)}function o8(e,t){if(!Eo(t))throw new Error("Invalid input to safeExtend: expected a plain object");const i=Ii(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return Ss(this,"shape",s),s}});return Li(e,i)}function r8(e,t){const i=Ii(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t._zod.def.shape};return Ss(this,"shape",s),s},get catchall(){return t._zod.def.catchall},checks:[]});return Li(e,i)}function l8(e,t,i){const r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const d=Ii(t._zod.def,{get shape(){const g=t._zod.def.shape,b={...g};if(i)for(const v in i){if(!(v in g))throw new Error(`Unrecognized key: "${v}"`);i[v]&&(b[v]=e?new e({type:"optional",innerType:g[v]}):g[v])}else for(const v in g)b[v]=e?new e({type:"optional",innerType:g[v]}):g[v];return Ss(this,"shape",b),b},checks:[]});return Li(t,d)}function c8(e,t,i){const s=Ii(t._zod.def,{get shape(){const r=t._zod.def.shape,u={...r};if(i)for(const d in i){if(!(d in u))throw new Error(`Unrecognized key: "${d}"`);i[d]&&(u[d]=new e({type:"nonoptional",innerType:r[d]}))}else for(const d in r)u[d]=new e({type:"nonoptional",innerType:r[d]});return Ss(this,"shape",u),u}});return Li(t,s)}function bo(e,t=0){if(e.aborted===!0)return!0;for(let i=t;i<e.issues.length;i++)if(e.issues[i]?.continue!==!0)return!0;return!1}function vo(e,t){return t.map(i=>{var s;return(s=i).path??(s.path=[]),i.path.unshift(e),i})}function eu(e){return typeof e=="string"?e:e?.message}function Ri(e,t,i){const s={...e,path:e.path??[]};if(!e.message){const r=eu(e.inst?._zod.def?.error?.(e))??eu(t?.error?.(e))??eu(i.customError?.(e))??eu(i.localeError?.(e))??"Invalid input";s.message=r}return delete s.inst,delete s.continue,t?.reportInput||delete s.input,s}function s0(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function gl(...e){const[t,i,s]=e;return typeof t=="string"?{message:t,code:"custom",input:i,inst:s}:{...t}}const dk=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,bf,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mk=J("$ZodError",dk),pk=J("$ZodError",dk,{Parent:Error});function u8(e,t=i=>i.message){const i={},s=[];for(const r of e.issues)r.path.length>0?(i[r.path[0]]=i[r.path[0]]||[],i[r.path[0]].push(t(r))):s.push(t(r));return{formErrors:s,fieldErrors:i}}function d8(e,t=i=>i.message){const i={_errors:[]},s=r=>{for(const u of r.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(d=>s({issues:d}));else if(u.code==="invalid_key")s({issues:u.issues});else if(u.code==="invalid_element")s({issues:u.issues});else if(u.path.length===0)i._errors.push(t(u));else{let d=i,g=0;for(;g<u.path.length;){const b=u.path[g];g===u.path.length-1?(d[b]=d[b]||{_errors:[]},d[b]._errors.push(t(u))):d[b]=d[b]||{_errors:[]},d=d[b],g++}}};return s(e),i}const o0=e=>(t,i,s,r)=>{const u=s?Object.assign(s,{async:!1}):{async:!1},d=t._zod.run({value:i,issues:[]},u);if(d instanceof Promise)throw new jo;if(d.issues.length){const g=new(r?.Err??e)(d.issues.map(b=>Ri(b,u,Oi())));throw ck(g,r?.callee),g}return d.value},r0=e=>async(t,i,s,r)=>{const u=s?Object.assign(s,{async:!0}):{async:!0};let d=t._zod.run({value:i,issues:[]},u);if(d instanceof Promise&&(d=await d),d.issues.length){const g=new(r?.Err??e)(d.issues.map(b=>Ri(b,u,Oi())));throw ck(g,r?.callee),g}return d.value},$u=e=>(t,i,s)=>{const r=s?{...s,async:!1}:{async:!1},u=t._zod.run({value:i,issues:[]},r);if(u instanceof Promise)throw new jo;return u.issues.length?{success:!1,error:new(e??mk)(u.issues.map(d=>Ri(d,r,Oi())))}:{success:!0,data:u.value}},m8=$u(pk),Uu=e=>async(t,i,s)=>{const r=s?Object.assign(s,{async:!0}):{async:!0};let u=t._zod.run({value:i,issues:[]},r);return u instanceof Promise&&(u=await u),u.issues.length?{success:!1,error:new e(u.issues.map(d=>Ri(d,r,Oi())))}:{success:!0,data:u.value}},p8=Uu(pk),f8=e=>(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return o0(e)(t,i,r)},h8=e=>(t,i,s)=>o0(e)(t,i,s),g8=e=>async(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return r0(e)(t,i,r)},y8=e=>async(t,i,s)=>r0(e)(t,i,s),b8=e=>(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return $u(e)(t,i,r)},v8=e=>(t,i,s)=>$u(e)(t,i,s),k8=e=>async(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return Uu(e)(t,i,r)},w8=e=>async(t,i,s)=>Uu(e)(t,i,s),x8=/^[cC][^\s-]{8,}$/,S8=/^[0-9a-z]+$/,j8=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,A8=/^[0-9a-vA-V]{20}$/,N8=/^[A-Za-z0-9]{27}$/,_8=/^[a-zA-Z0-9_-]{21}$/,C8=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,z8=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Cb=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,E8=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,T8="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function D8(){return new RegExp(T8,"u")}const O8=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,R8=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,M8=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,B8=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,q8=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,fk=/^[A-Za-z0-9_-]*$/,I8=/^\+[1-9]\d{6,14}$/,hk="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",L8=new RegExp(`^${hk}$`);function gk(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function P8(e){return new RegExp(`^${gk(e)}$`)}function $8(e){const t=gk({precision:e.precision}),i=["Z"];e.local&&i.push(""),e.offset&&i.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const s=`${t}(?:${i.join("|")})`;return new RegExp(`^${hk}T(?:${s})$`)}const U8=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},V8=/^-?\d+$/,yk=/^-?\d+(?:\.\d+)?$/,K8=/^(?:true|false)$/i,G8=/^null$/i,H8=/^[^A-Z]*$/,Q8=/^[^a-z]*$/,Nn=J("$ZodCheck",(e,t)=>{var i;e._zod??(e._zod={}),e._zod.def=t,(i=e._zod).onattach??(i.onattach=[])}),bk={number:"number",bigint:"bigint",object:"date"},vk=J("$ZodCheckLessThan",(e,t)=>{Nn.init(e,t);const i=bk[typeof t.value];e._zod.onattach.push(s=>{const r=s._zod.bag,u=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<u&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=s=>{(t.inclusive?s.value<=t.value:s.value<t.value)||s.issues.push({origin:i,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:s.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),kk=J("$ZodCheckGreaterThan",(e,t)=>{Nn.init(e,t);const i=bk[typeof t.value];e._zod.onattach.push(s=>{const r=s._zod.bag,u=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>u&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=s=>{(t.inclusive?s.value>=t.value:s.value>t.value)||s.issues.push({origin:i,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:s.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Z8=J("$ZodCheckMultipleOf",(e,t)=>{Nn.init(e,t),e._zod.onattach.push(i=>{var s;(s=i._zod.bag).multipleOf??(s.multipleOf=t.value)}),e._zod.check=i=>{if(typeof i.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof i.value=="bigint"?i.value%t.value===BigInt(0):XN(i.value,t.value)===0)||i.issues.push({origin:typeof i.value,code:"not_multiple_of",divisor:t.value,input:i.value,inst:e,continue:!t.abort})}}),F8=J("$ZodCheckNumberFormat",(e,t)=>{Nn.init(e,t),t.format=t.format||"float64";const i=t.format?.includes("int"),s=i?"int":"number",[r,u]=n8[t.format];e._zod.onattach.push(d=>{const g=d._zod.bag;g.format=t.format,g.minimum=r,g.maximum=u,i&&(g.pattern=V8)}),e._zod.check=d=>{const g=d.value;if(i){if(!Number.isInteger(g)){d.issues.push({expected:s,format:t.format,code:"invalid_type",continue:!1,input:g,inst:e});return}if(!Number.isSafeInteger(g)){g>0?d.issues.push({input:g,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:s,inclusive:!0,continue:!t.abort}):d.issues.push({input:g,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:s,inclusive:!0,continue:!t.abort});return}}g<r&&d.issues.push({origin:"number",input:g,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),g>u&&d.issues.push({origin:"number",input:g,code:"too_big",maximum:u,inclusive:!0,inst:e,continue:!t.abort})}}),Y8=J("$ZodCheckMaxLength",(e,t)=>{var i;Nn.init(e,t),(i=e._zod.def).when??(i.when=s=>{const r=s.value;return!a0(r)&&r.length!==void 0}),e._zod.onattach.push(s=>{const r=s._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(s._zod.bag.maximum=t.maximum)}),e._zod.check=s=>{const r=s.value;if(r.length<=t.maximum)return;const d=s0(r);s.issues.push({origin:d,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),X8=J("$ZodCheckMinLength",(e,t)=>{var i;Nn.init(e,t),(i=e._zod.def).when??(i.when=s=>{const r=s.value;return!a0(r)&&r.length!==void 0}),e._zod.onattach.push(s=>{const r=s._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(s._zod.bag.minimum=t.minimum)}),e._zod.check=s=>{const r=s.value;if(r.length>=t.minimum)return;const d=s0(r);s.issues.push({origin:d,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),J8=J("$ZodCheckLengthEquals",(e,t)=>{var i;Nn.init(e,t),(i=e._zod.def).when??(i.when=s=>{const r=s.value;return!a0(r)&&r.length!==void 0}),e._zod.onattach.push(s=>{const r=s._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=s=>{const r=s.value,u=r.length;if(u===t.length)return;const d=s0(r),g=u>t.length;s.issues.push({origin:d,...g?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:s.value,inst:e,continue:!t.abort})}}),Vu=J("$ZodCheckStringFormat",(e,t)=>{var i,s;Nn.init(e,t),e._zod.onattach.push(r=>{const u=r._zod.bag;u.format=t.format,t.pattern&&(u.patterns??(u.patterns=new Set),u.patterns.add(t.pattern))}),t.pattern?(i=e._zod).check??(i.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(s=e._zod).check??(s.check=()=>{})}),W8=J("$ZodCheckRegex",(e,t)=>{Vu.init(e,t),e._zod.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:"regex",input:i.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),e_=J("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=H8),Vu.init(e,t)}),t_=J("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Q8),Vu.init(e,t)}),n_=J("$ZodCheckIncludes",(e,t)=>{Nn.init(e,t);const i=To(t.includes),s=new RegExp(typeof t.position=="number"?`^.{${t.position}}${i}`:i);t.pattern=s,e._zod.onattach.push(r=>{const u=r._zod.bag;u.patterns??(u.patterns=new Set),u.patterns.add(s)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),a_=J("$ZodCheckStartsWith",(e,t)=>{Nn.init(e,t);const i=new RegExp(`^${To(t.prefix)}.*`);t.pattern??(t.pattern=i),e._zod.onattach.push(s=>{const r=s._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(i)}),e._zod.check=s=>{s.value.startsWith(t.prefix)||s.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:s.value,inst:e,continue:!t.abort})}}),i_=J("$ZodCheckEndsWith",(e,t)=>{Nn.init(e,t);const i=new RegExp(`.*${To(t.suffix)}$`);t.pattern??(t.pattern=i),e._zod.onattach.push(s=>{const r=s._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(i)}),e._zod.check=s=>{s.value.endsWith(t.suffix)||s.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:s.value,inst:e,continue:!t.abort})}}),s_=J("$ZodCheckOverwrite",(e,t)=>{Nn.init(e,t),e._zod.check=i=>{i.value=t.tx(i.value)}});class o_{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const s=t.split(`
|
|
14
|
+
`);try{oe=JSON.parse(Ce),me=!0}catch{oe=Ce}}me&&(r&&await r(oe),s&&(oe=await s(oe))),i?.({data:oe,event:Q,id:S,retry:N}),ge.length&&(yield oe)}}}finally{O.removeEventListener("abort",pe),R.releaseLock()}break}catch($){if(t?.($),d!==void 0&&C>=d)break;const K=Math.min(N*2**(C-1),g??3e4);await j(K)}}}()}},w4=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},x4=e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},S4=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},E2=({allowReserved:e,explode:t,name:i,style:s,value:r})=>{if(!t){const g=(e?r:r.map(b=>encodeURIComponent(b))).join(x4(s));switch(s){case"label":return`.${g}`;case"matrix":return`;${i}=${g}`;case"simple":return g;default:return`${i}=${g}`}}const u=w4(s),d=r.map(g=>s==="label"||s==="simple"?e?g:encodeURIComponent(g):Lu({allowReserved:e,name:i,value:g})).join(u);return s==="label"||s==="matrix"?u+d:d},Lu=({allowReserved:e,name:t,value:i})=>{if(i==null)return"";if(typeof i=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?i:encodeURIComponent(i)}`},T2=({allowReserved:e,explode:t,name:i,style:s,value:r,valueOnly:u})=>{if(r instanceof Date)return u?r.toISOString():`${i}=${r.toISOString()}`;if(s!=="deepObject"&&!t){let b=[];Object.entries(r).forEach(([x,S])=>{b=[...b,x,e?S:encodeURIComponent(S)]});const v=b.join(",");switch(s){case"form":return`${i}=${v}`;case"label":return`.${v}`;case"matrix":return`;${i}=${v}`;default:return v}}const d=S4(s),g=Object.entries(r).map(([b,v])=>Lu({allowReserved:e,name:s==="deepObject"?`${i}[${b}]`:b,value:v})).join(d);return s==="label"||s==="matrix"?d+g:g},j4=/\{[^{}]+\}/g,A4=({path:e,url:t})=>{let i=t;const s=t.match(j4);if(s)for(const r of s){let u=!1,d=r.substring(1,r.length-1),g="simple";d.endsWith("*")&&(u=!0,d=d.substring(0,d.length-1)),d.startsWith(".")?(d=d.substring(1),g="label"):d.startsWith(";")&&(d=d.substring(1),g="matrix");const b=e[d];if(b==null)continue;if(Array.isArray(b)){i=i.replace(r,E2({explode:u,name:d,style:g,value:b}));continue}if(typeof b=="object"){i=i.replace(r,T2({explode:u,name:d,style:g,value:b,valueOnly:!0}));continue}if(g==="matrix"){i=i.replace(r,`;${Lu({name:d,value:b})}`);continue}const v=encodeURIComponent(g==="label"?`.${b}`:b);i=i.replace(r,v)}return i},N4=({baseUrl:e,path:t,query:i,querySerializer:s,url:r})=>{const u=r.startsWith("/")?r:`/${r}`;let d=(e??"")+u;t&&(d=A4({path:t,url:d}));let g=i?s(i):"";return g.startsWith("?")&&(g=g.substring(1)),g&&(d+=`?${g}`),d};function _4(e){const t=e.body!==void 0;if(t&&e.bodySerializer)return"serializedBody"in e?e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null:e.body!==""?e.body:null;if(t)return e.body}const C4=async(e,t)=>{const i=typeof t=="function"?await t(e):t;if(i)return e.scheme==="bearer"?`Bearer ${i}`:e.scheme==="basic"?`Basic ${btoa(i)}`:i},D2=({allowReserved:e,array:t,object:i}={})=>r=>{const u=[];if(r&&typeof r=="object")for(const d in r){const g=r[d];if(g!=null)if(Array.isArray(g)){const b=E2({allowReserved:e,explode:!0,name:d,style:"form",value:g,...t});b&&u.push(b)}else if(typeof g=="object"){const b=T2({allowReserved:e,explode:!0,name:d,style:"deepObject",value:g,...i});b&&u.push(b)}else{const b=Lu({allowReserved:e,name:d,value:g});b&&u.push(b)}}return u.join("&")},z4=e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return"json";if(t==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some(i=>t.startsWith(i)))return"blob";if(t.startsWith("text/"))return"text"}},E4=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):!1,T4=async({security:e,...t})=>{for(const i of e){if(E4(t,i.name))continue;const s=await C4(i,t.auth);if(!s)continue;const r=i.name??"Authorization";switch(i.in){case"query":t.query||(t.query={}),t.query[r]=s;break;case"cookie":t.headers.append("Cookie",`${r}=${s}`);break;default:t.headers.set(r,s);break}}},fb=e=>N4({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:D2(e.querySerializer),url:e.url}),hb=(e,t)=>{const i={...e,...t};return i.baseUrl?.endsWith("/")&&(i.baseUrl=i.baseUrl.substring(0,i.baseUrl.length-1)),i.headers=O2(e.headers,t.headers),i},D4=e=>{const t=[];return e.forEach((i,s)=>{t.push([s,i])}),t},O2=(...e)=>{const t=new Headers;for(const i of e){if(!i)continue;const s=i instanceof Headers?D4(i):Object.entries(i);for(const[r,u]of s)if(u===null)t.delete(r);else if(Array.isArray(u))for(const d of u)t.append(r,d);else u!==void 0&&t.set(r,typeof u=="object"?JSON.stringify(u):u)}return t};class Bp{fns=[];clear(){this.fns=[]}eject(t){const i=this.getInterceptorIndex(t);this.fns[i]&&(this.fns[i]=null)}exists(t){const i=this.getInterceptorIndex(t);return!!this.fns[i]}getInterceptorIndex(t){return typeof t=="number"?this.fns[t]?t:-1:this.fns.indexOf(t)}update(t,i){const s=this.getInterceptorIndex(t);return this.fns[s]?(this.fns[s]=i,t):!1}use(t){return this.fns.push(t),this.fns.length-1}}const O4=()=>({error:new Bp,request:new Bp,response:new Bp}),R4=D2({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),M4={"Content-Type":"application/json"},R2=(e={})=>({...v4,headers:M4,parseAs:"auto",querySerializer:R4,...e}),M2=(e={})=>{let t=hb(R2(),e);const i=()=>({...t}),s=v=>(t=hb(t,v),i()),r=O4(),u=async v=>{const x={...t,...v,fetch:v.fetch??t.fetch??globalThis.fetch,headers:O2(t.headers,v.headers),serializedBody:void 0};x.security&&await T4({...x,security:x.security}),x.requestValidator&&await x.requestValidator(x),x.body!==void 0&&x.bodySerializer&&(x.serializedBody=x.bodySerializer(x.body)),(x.body===void 0||x.serializedBody==="")&&x.headers.delete("Content-Type");const S=fb(x);return{opts:x,url:S}},d=async v=>{const{opts:x,url:S}=await u(v),j={redirect:"follow",...x,body:_4(x)};let _=new Request(S,j);for(const Z of r.request.fns)Z&&(_=await Z(_,x));const T=x.fetch;let N=await T(_);for(const Z of r.response.fns)Z&&(N=await Z(N,_,x));const C={request:_,response:N};if(N.ok){const Z=(x.parseAs==="auto"?z4(N.headers.get("Content-Type")):x.parseAs)??"json";if(N.status===204||N.headers.get("Content-Length")==="0"){let R;switch(Z){case"arrayBuffer":case"blob":case"text":R=await N[Z]();break;case"formData":R=new FormData;break;case"stream":R=N.body;break;default:R={};break}return x.responseStyle==="data"?R:{data:R,...C}}let se;switch(Z){case"arrayBuffer":case"blob":case"formData":case"json":case"text":se=await N[Z]();break;case"stream":return x.responseStyle==="data"?N.body:{data:N.body,...C}}return Z==="json"&&(x.responseValidator&&await x.responseValidator(se),x.responseTransformer&&(se=await x.responseTransformer(se))),x.responseStyle==="data"?se:{data:se,...C}}const O=await N.text();let I;try{I=JSON.parse(O)}catch{}const $=I??O;let K=$;for(const Z of r.error.fns)Z&&(K=await Z($,N,_,x));if(K=K||{},x.throwOnError)throw K;return x.responseStyle==="data"?void 0:{error:K,...C}},g=v=>x=>d({...x,method:v}),b=v=>async x=>{const{opts:S,url:j}=await u(x);return k4({...S,body:S.body,headers:S.headers,method:v,onRequest:async(_,T)=>{let N=new Request(_,T);for(const C of r.request.fns)C&&(N=await C(N,S));return N},url:j})};return{buildUrl:fb,connect:g("CONNECT"),delete:g("DELETE"),get:g("GET"),getConfig:i,head:g("HEAD"),interceptors:r,options:g("OPTIONS"),patch:g("PATCH"),post:g("POST"),put:g("PUT"),request:d,setConfig:s,sse:{connect:b("CONNECT"),delete:b("DELETE"),get:b("GET"),head:b("HEAD"),options:b("OPTIONS"),patch:b("PATCH"),post:b("POST"),put:b("PUT"),trace:b("TRACE")},trace:g("TRACE")}},V=M2(R2()),B4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps/submit",...e,headers:{"Content-Type":"application/json",...e.headers}}),q4=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),B2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),I4=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),L4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan",...e}),P4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-report",...e}),$4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-setup",...e}),DU=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft",...e}),OU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/create",...e,headers:{"Content-Type":"application/json",...e.headers}}),RU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/import-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),MU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-sitemap-selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),BU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/upsert-target",...e,headers:{"Content-Type":"application/json",...e.headers}}),qU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/exclude-target",...e,headers:{"Content-Type":"application/json",...e.headers}}),IU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),LU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/preview-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),PU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/replace-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),$U=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-paired-assignments",...e,headers:{"Content-Type":"application/json",...e.headers}}),UU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/remove-assignment",...e,headers:{"Content-Type":"application/json",...e.headers}}),VU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/upsert-group",...e,headers:{"Content-Type":"application/json",...e.headers}}),KU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/remove-group",...e,headers:{"Content-Type":"application/json",...e.headers}}),GU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/preview-group-membership",...e,headers:{"Content-Type":"application/json",...e.headers}}),HU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/apply-group-membership",...e,headers:{"Content-Type":"application/json",...e.headers}}),QU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/upsert-competitor",...e,headers:{"Content-Type":"application/json",...e.headers}}),ZU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/remove-competitor",...e,headers:{"Content-Type":"application/json",...e.headers}}),FU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/compile-preview",...e}),YU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/diff-preview",...e}),XU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/publish",...e,headers:{"Content-Type":"application/json",...e.headers}}),JU=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-plan/draft/actions/discard",...e}),q2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-overview",...e}),U4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-property-evidence",...e}),V4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-question-result",...e}),K4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/measurement-property-competitors",...e}),G4=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects",...e}),H4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/research/runs",...e}),Q4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/research/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),Z4=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/research/runs/{runId}",...e}),F4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations",...e,headers:{"Content-Type":"application/json",...e.headers}}),Y4=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/{label}",...e}),X4=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/default",...e,headers:{"Content-Type":"application/json",...e.headers}}),J4=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),I2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e}),W4=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),e5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),t5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries/generate",...e,headers:{"Content-Type":"application/json",...e.headers}}),n5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e}),a5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),i5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),s5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors/{id}",...e}),L2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e}),o5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),r5=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e}),l5=e=>(e?.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),P2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs/{id}",...e}),c5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/apply",...e,headers:{"Content-Type":"application/json",...e.headers}}),u5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/history",...e}),d5=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/history",...e}),m5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/timeline",...e}),p5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/analytics/metrics",...e}),f5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/snapshots/diff",...e}),$2=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings",...e}),h5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/providers/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),g5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/google",...e,headers:{"Content-Type":"application/json",...e.headers}}),y5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/bing",...e,headers:{"Content-Type":"application/json",...e.headers}}),b5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/cdp",...e,headers:{"Content-Type":"application/json",...e.headers}}),v5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),U2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),k5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e,headers:{"Content-Type":"application/json",...e.headers}}),w5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e}),x5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e,headers:{"Content-Type":"application/json",...e.headers}}),S5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}",...e}),j5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}/test",...e}),A5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/telemetry/onboarding",...e,headers:{"Content-Type":"application/json",...e.headers}}),N5=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/cdp/status",...e}),_5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections",...e}),C5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),z5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}",...e}),E5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/properties",...e}),T5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/property",...e,headers:{"Content-Type":"application/json",...e.headers}}),D5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),O5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),R5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance",...e}),M5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance/daily",...e}),B5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect",...e,headers:{"Content-Type":"application/json",...e.headers}}),q5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspections",...e}),I5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/deindexed",...e}),V2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage",...e}),L5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage/history",...e}),P5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps",...e}),$5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),U5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/indexing/request",...e,headers:{"Content-Type":"application/json",...e.headers}}),V5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations",...e}),K5=e=>(e.client??V).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations/{locationName}/selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),G5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),H5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/keywords",...e}),Q5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/place-actions",...e}),Z5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/lodging",...e}),F5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/places",...e}),Y5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/summary",...e}),X5=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),J5=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/disconnect",...e}),W5=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/status",...e}),e6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/sites",...e}),t6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/set-site",...e,headers:{"Content-Type":"application/json",...e.headers}}),K2=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/coverage",...e}),n6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspections",...e}),a6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-url",...e,headers:{"Content-Type":"application/json",...e.headers}}),i6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),s6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/request-indexing",...e,headers:{"Content-Type":"application/json",...e.headers}}),o6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/performance",...e}),r6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),l6=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/disconnect",...e}),c6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/status",...e}),u6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),d6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/traffic",...e}),m6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/ai-referral-daily",...e}),p6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/social-referral-history",...e}),f6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/session-history",...e}),h6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/insights",...e}),g6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/report",...e}),y6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/health/history",...e}),b6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/citations/visibility",...e}),v6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/content/dismissals",...e,headers:{"Content-Type":"application/json",...e.headers}}),k6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/overview",...e}),w6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/status",...e}),x6=e=>(e?.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/install",...e}),S6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e}),j6=e=>(e?.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),A6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs/latest",...e}),N6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/releases",...e}),_6=e=>(e?.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/latest-release",...e}),C6=e=>(e.client??V).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/cache/{release}",...e}),z6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/extract",...e,headers:{"Content-Type":"application/json",...e.headers}}),E6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/summary",...e}),T6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/domains",...e}),D6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/history",...e}),O6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/cloud-run",...e,headers:{"Content-Type":"application/json",...e.headers}}),R6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/wordpress",...e,headers:{"Content-Type":"application/json",...e.headers}}),M6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/vercel",...e,headers:{"Content-Type":"application/json",...e.headers}}),B6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),q6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/backfill",...e,headers:{"Content-Type":"application/json",...e.headers}}),I6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources",...e}),L6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/status",...e}),P6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}",...e}),$6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/events",...e}),U6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/run",...e,headers:{"Content-Type":"application/json",...e.headers}}),V6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions",...e}),K6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}",...e}),G6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e}),H6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e,headers:{"Content-Type":"application/json",...e.headers}}),Q6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo",...e}),Z6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/pages",...e}),F6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/trend",...e}),Y6=e=>(e.client??V).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),X6=e=>(e.client??V).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/agent/providers",...e});function J6(e){const t={baseUrl:e.baseUrl,fetch:e.fetch,headers:{...e.headers??{}}};return M2(t)}class Mn extends Error{code;statusCode;details;constructor(t,i,s,r){super(t),this.name="ApiError",this.code=s??"UNKNOWN",this.statusCode=i,this.details=r}}function W6(){if(typeof window>"u")return;const e=window.__CANONRY_CONFIG__?.embed?.renderToken;return typeof e=="string"&&e.length>0?e:void 0}function Yf(e){const t=W6();if(!t)return e;let i;const s=typeof window<"u"&&window.location?window.location.href:"http://localhost/";try{i=new URL(e,s)}catch{return e}const r=new URL(s).origin;if(i.origin!==r)return e;const d=`${Jf().replace(/\/$/,"")}/api/v1`;return i.pathname!==d&&!i.pathname.startsWith(`${d}/`)?e:(i.searchParams.set("token",t),/^[a-z][a-z\d+.-]*:/i.test(e)?i.toString():`${i.pathname}${i.search}${i.hash}`)}function eA(e,t){const i={method:e.method,headers:e.headers,cache:e.cache,credentials:e.credentials,integrity:e.integrity,keepalive:e.keepalive,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal};return e.body&&(i.body=e.body,i.duplex="half"),new Request(t,i)}function G2(){if(typeof window>"u")return null;const e=window.__CANONRY_CONFIG__?.embed;return e?.enabled?e:null}function tA(){return typeof window>"u"?!0:window.__CANONRY_CONFIG__?.dashboard?.showResourceLinks!==!1}function nA(){return typeof window>"u"?!0:window.__CANONRY_CONFIG__?.dashboard?.showAgentBar!==!1}function aA(){return typeof window>"u"?!0:window.__CANONRY_CONFIG__?.dashboard?.showUpdateNotification!==!1}function iA(){return G2()!==null}function sA(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const Xf=sA();function oA(){const e=typeof window<"u"&&window.location?window.location.origin:"";return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?e+window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):e}function Jf(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):""}function rA(e){const t=e.trim().toLowerCase().replace(/^\[|\]$/g,"");return t==="localhost"||t==="::1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(t)}function lA(e,t){if(e.protocol!=="http:"&&e.protocol!=="https:"||!rA(e.hostname))return;const i=e.port?`:${e.port}`:"",s=t?t.replace(/\/$/,""):"";return`${e.protocol}//localhost${i}${s}`}function WU(e){return`${e.replace(/\/$/,"")}/api/v1/google/callback`}function cA(){if(!(typeof window>"u"))return lA(window.location,Jf())}function uA(e){return`${Jf()}${e}`}function dA(e,t){if(t===404)return"Health endpoint returned 404. Check basePath or reverse-proxy configuration and make sure the dashboard reaches /health instead of an API-prefixed route."}function mA(){return""}function qp(){return!!mA()}let H2=null;function gb(e){H2=e}function Wf(){H2?.()}const le=J6({baseUrl:oA()});le.interceptors.response.use((e,t)=>(e.status===401&&!t.url.includes("/api/v1/session")&&Wf(),e));le.interceptors.request.use(e=>{const t=Yf(e.url);return t===e.url?e:eA(e,t)});async function de(e){const t=await e();if(t.error!==void 0&&t.error!==null){const i=t.response.status;let s=`API ${i}: ${t.response.statusText}`,r,u;if(typeof t.error=="object"&&t.error!==null){const d=t.error.error;if(typeof d=="string")s=d;else if(d&&typeof d=="object"){const g=d;g.message&&(s=g.message),g.code&&(r=g.code),g.details&&(u=g.details)}else{const g=t.error;g.message&&(s=g.message),g.code&&(r=g.code),g.details&&(u=g.details)}}else typeof t.error=="string"&&(s=t.error);throw new Mn(s,i,r,u)}if(t.response.status!==204)return t.data}async function Po(e,t){const i=t?.body!=null,s=await fetch(Yf(`${Xf}${e}`),{...t,credentials:t?.credentials??"same-origin",headers:{...i?{"Content-Type":"application/json"}:{},...t?.headers}});if(!s.ok){const r=await s.text();let u=`API ${s.status}: ${s.statusText}`,d,g;if(r)try{const b=JSON.parse(r);typeof b.error=="string"?u=b.error:b.error?.message?(u=b.error.message,d=b.error.code,g=b.error.details):b.message&&(u=b.message)}catch{u=r}throw s.status===401&&!e.startsWith("/session")&&!e.startsWith("/auth/")&&Wf(),new Mn(u,s.status,d,g)}if(s.status!==204)return s.json()}function pA(e){return de(()=>B2({client:le,path:{name:e}}))}function eV(e){return de(()=>L2({client:le,path:{name:e}}))}function ku(e){return de(()=>P2({client:le,path:{id:e}}))}function Q2(e){return de(()=>I2({client:le,path:{name:e}}))}function fA(e){return de(()=>n5({client:le,path:{name:e}}))}function hA(e,t,i){return de(()=>m5({client:le,path:{name:e},query:{location:t,limit:i}}))}function Z2(e,t){return de(()=>k6({client:le,path:{name:e},query:{location:t?.location,since:t?.since}}))}function e0(e,t){return de(()=>I4({client:le,path:{name:e},body:t}))}function gA(e,t){return de(()=>e5({client:le,path:{name:e},body:{queries:t}}))}function yA(e,t){return de(()=>W4({client:le,path:{name:e},body:{queries:t}}))}function tV(e,t){return de(()=>J4({client:le,path:{name:e},body:{queries:t}}))}function bA(e,t){return de(()=>v6({client:le,path:{name:e},body:t}))}function vA(e,t){return de(()=>i5({client:le,path:{name:e},body:{competitors:t}}))}function nV(e,t){return de(()=>a5({client:le,path:{name:e},body:{competitors:t}}))}function aV(e,t){return de(()=>s5({client:le,path:{name:e,id:t}}))}async function iV(e,t){const i=await pA(e);return e0(e,{displayName:t.displayName??i.displayName??i.name,canonicalDomain:t.canonicalDomain??i.canonicalDomain,ownedDomains:t.ownedDomains??i.ownedDomains,aliases:t.aliases??i.aliases,country:t.country??i.country,language:t.language??i.language,tags:i.tags,labels:i.labels,providers:t.providers??i.providers,providerModels:t.providerModels??i.providerModels??{},locations:t.locations??i.locations,defaultLocation:t.defaultLocation!==void 0?t.defaultLocation:i.defaultLocation,autoExtractBacklinks:i.autoExtractBacklinks})}function kA(e,t){const i={};return t?.location&&(i.location=t.location),t?.allLocations&&(i.allLocations=!0),t?.noLocation&&(i.noLocation=!0),de(()=>o5({client:le,path:{name:e},body:i}))}function sV(e,t){return de(()=>F4({client:le,path:{name:e},body:t}))}async function oV(e,t){await de(()=>Y4({client:le,path:{name:e,label:t}}))}function rV(e,t){return de(()=>X4({client:le,path:{name:e},body:{label:t}}))}async function lV(e){await de(()=>q4({client:le,path:{name:e}}))}function cV(){return de(()=>$2({client:le}))}function yb(){return Po("/session")}function wA(e){return Po("/session/setup",{method:"POST",body:JSON.stringify({password:e})})}function xA(e){return Po("/session",{method:"POST",body:JSON.stringify({password:e})})}function bb(){return Po("/auth/session")}function SA(e,t){return Po("/auth/login",{method:"POST",body:JSON.stringify({name:e,password:t})})}function vb(){return Po("/auth/logout",{method:"POST"})}function jA(e,t){return de(()=>h5({client:le,path:{name:e},body:t}))}async function AA(e){for(let t=0;t<2;t+=1)try{await de(()=>A5({client:le,body:e}));return}catch(i){if(!(!(i instanceof Mn)||i.statusCode>=500)||t===1)return}}function uV(e){return de(()=>g5({client:le,body:e}))}async function dV(e){try{return await de(()=>U2({client:le,path:{name:e}}))}catch(t){if(t instanceof Mn&&t.statusCode===404)return null;throw t}}function mV(e,t){return de(()=>k5({client:le,path:{name:e},body:t}))}async function pV(e){await de(()=>v5({client:le,path:{name:e}}))}function fV(e){return de(()=>w5({client:le,path:{name:e}}))}function hV(e,t){return de(()=>x5({client:le,path:{name:e},body:t}))}async function gV(e,t){await de(()=>S5({client:le,path:{name:e,id:t}}))}function yV(e,t){return de(()=>j5({client:le,path:{name:e,id:t}}))}function NA(e,t,i){return de(()=>t5({client:le,path:{name:e},body:{provider:t,count:i}}))}function _A(e){return de(()=>c5({client:le,body:e}))}function CA(e){return de(()=>l5({client:le,body:e??{}}))}function bV(e,t){const i=cA();return de(()=>C5({client:le,path:{name:e},body:{type:t,...i?{publicUrl:i}:{}}}))}function vV(e,t){return de(()=>z5({client:le,path:{name:e,type:t}}))}function kV(e,t,i){return de(()=>T5({client:le,path:{name:e,type:t},body:{propertyId:i}}))}function wV(e,t,i){return de(()=>D5({client:le,path:{name:e,type:t},body:{sitemapUrl:i}}))}function zA(e,t){return de(()=>O5({client:le,path:{name:e},body:t??{}}))}function xV(e,t){const i={};return t&&t!=="all"&&(i.window=t),de(()=>p5({client:le,path:{name:e},query:i}))}function SV(e,t){return de(()=>B5({client:le,path:{name:e},body:{url:t}}))}function EA(e){return de(()=>V2({client:le,path:{name:e}}))}function TA(e,t){return de(()=>$5({client:le,path:{name:e},body:t??{}}))}function jV(e,t){return de(()=>P5({client:le,path:{name:e},query:t?{sitemapIndex:t}:void 0}))}function AV(e,t){return de(()=>B4({client:le,path:{name:e},body:{sitemapUrls:t}}))}function DA(e,t){return de(()=>Y6({client:le,path:{name:e},body:t??{}}))}function NV(e,t){return de(()=>U6({client:le,path:{name:e},body:t??{}}))}function _V(e,t,i){return de(()=>H6({client:le,path:{name:e,id:t},body:i??{}}))}function CV(){return de(()=>N5({client:le}))}function zV(e,t){return de(()=>b5({client:le,body:{host:e,port:t}}))}function EV(e,t){return de(()=>U5({client:le,path:{name:e},body:t}))}function TV(e,t){return de(()=>X5({client:le,path:{name:e},body:{apiKey:t}}))}function DV(e){return de(()=>J5({client:le,path:{name:e}}))}function OV(e,t){return de(()=>t6({client:le,path:{name:e},body:{siteUrl:t}}))}function OA(e){return de(()=>K2({client:le,path:{name:e}}))}function RV(e,t){return de(()=>a6({client:le,path:{name:e},body:{url:t}}))}function MV(e,t){return de(()=>i6({client:le,path:{name:e},body:{}}))}function BV(e,t){return de(()=>s6({client:le,path:{name:e},body:t}))}function qV(e){return de(()=>y5({client:le,body:{apiKey:e}}))}function F2(e){return e?/filename\s*=\s*"?([^";]+)"?/i.exec(e)?.[1]??null:null}async function IV(e,t="agency",i){const s=new URLSearchParams({audience:t});i!==void 0&&s.set("period",String(i));const r=await fetch(Yf(`${Xf}/projects/${encodeURIComponent(e)}/report.html?${s.toString()}`),{credentials:"same-origin",headers:{}});if(!r.ok)throw new Mn(`Failed to download report: ${r.status}`,r.status);const u=await r.blob(),d=URL.createObjectURL(u),g=F2(r.headers.get("Content-Disposition"))??`canonry-report-${e}.html`,b=document.createElement("a");b.href=d,b.download=g,document.body.appendChild(b),b.click(),document.body.removeChild(b),URL.revokeObjectURL(d)}async function LV(e,t){const i=await fetch(`${Xf}/projects/${encodeURIComponent(e)}/results/export?format=${t}`,{credentials:"same-origin",headers:{}});if(!i.ok)throw new Mn(`Failed to download results: ${i.status}`,i.status);const s=await i.blob(),r=URL.createObjectURL(s),u=F2(i.headers.get("Content-Disposition"))??`canonry-results-${e}.${t}`,d=document.createElement("a");d.href=r,d.download=u,document.body.appendChild(d),d.click(),document.body.removeChild(d),URL.revokeObjectURL(r)}function PV(e,t){return de(()=>u6({client:le,path:{name:e},body:{}}))}function $V(e,t){return de(()=>r6({client:le,path:{name:e},body:t}))}function UV(e){return de(()=>l6({client:le,path:{name:e}}))}function VV(e,t){return de(()=>O6({client:le,path:{name:e},body:t}))}function KV(e,t){return de(()=>R6({client:le,path:{name:e},body:t}))}function GV(e,t){return de(()=>M6({client:le,path:{name:e},body:t}))}function HV(e,t,i){return de(()=>B6({client:le,path:{name:e,id:t},body:i??{}}))}function QV(e,t,i){return de(()=>q6({client:le,path:{name:e,id:t},body:{}}))}function RA(e,t){return de(()=>h6({client:le,path:{name:e},query:{runId:t}}))}function MA(e){if(!e||typeof e!="object")return;const t=e;if(!(typeof t.current!="string"||typeof t.latest!="string"||typeof t.url!="string"||typeof t.upgradeCommand!="string"))return{current:t.current,latest:t.latest,url:t.url,upgradeCommand:t.upgradeCommand}}async function BA(e,t){const i=uA(e);try{const s=await fetch(i,{credentials:"same-origin"});if(!s.ok)return{label:t,state:"error",detail:`${t} ${s.status}: ${s.statusText}`,statusCode:s.status,hint:dA(e,s.status)};const r=await s.json(),u=typeof r.version=="string"?r.version:"unknown",d=typeof r.databaseUrlConfigured=="boolean"?r.databaseUrlConfigured:void 0,g=typeof r.lastHeartbeatAt=="string"?r.lastHeartbeatAt:void 0,b=MA(r.updateAvailable),v=[u,d===!1?"database not configured":"database configured",g?`heartbeat ${g}`:void 0].filter(Boolean).join(" · ");return{label:t,state:"ok",detail:v,version:u,databaseConfigured:d,lastHeartbeatAt:g,...b?{updateAvailable:b}:{}}}catch(s){return{label:t,state:"error",detail:s instanceof Error?s.message:"unreachable",hint:e==="/health"?`Request failed while checking ${i}. If this instance is served behind a sub-path, verify the dashboard basePath and reverse-proxy rewrites.`:void 0}}}function ZV(){return de(()=>w6({client:le}))}function FV(){return de(()=>x6({client:le}))}function YV(){return de(()=>A6({client:le}))}function XV(){return de(()=>S6({client:le}))}function JV(e){return de(()=>j6({client:le,body:e?{release:e}:{}}))}function WV(){return de(()=>N6({client:le}))}function eK(){return de(()=>_6({client:le}))}function tK(e){return de(()=>C6({client:le,path:{release:e}}))}function nK(e,t={}){return de(()=>E6({client:le,path:{name:e},query:{release:t.release,excludeCrawlers:t.excludeCrawlers?"1":void 0,source:t.source}}))}function aK(e,t={}){return de(()=>T6({client:le,path:{name:e},query:{limit:t.limit!==void 0?String(t.limit):void 0,offset:t.offset!==void 0?String(t.offset):void 0,release:t.release,excludeCrawlers:t.excludeCrawlers?"1":void 0,source:t.source}}))}function iK(e,t={}){return de(()=>D6({client:le,path:{name:e},query:{source:t.source}}))}function sK(e,t){return de(()=>z6({client:le,path:{name:e},body:{release:void 0}}))}const Y2={account:null,canWrite:!0,isAdmin:!0},X2=B.createContext(Y2);function qA({account:e,children:t}){const i=e?{account:e,canWrite:e.role==="admin",isAdmin:e.role==="admin"}:Y2;return m.jsx(X2.Provider,{value:i,children:t})}function xl(){return B.useContext(X2)}const J2="View only — your account cannot change this.";function nn(e){return(...t)=>{e(...t)}}const IA=6e3,LA=5,PA=180;let an=[],$A=0;const pf=new Set,ff=new Map,hf=new Map;function wu(){const e=[...an];for(const t of pf)t(e)}function t0(e){const t=ff.get(e);t&&(clearTimeout(t),ff.delete(e));const i=hf.get(e);i&&(clearTimeout(i),hf.delete(e))}function W2(e){t0(e);const t=an.length;an=an.filter(i=>i.id!==e),an.length!==t&&wu()}function kb(e){t0(e.id),ff.set(e.id,setTimeout(()=>{gf(e.id)},e.durationMs))}function UA(e,t,i){return typeof e=="string"?{title:e,tone:t,durationMs:i}:e}function pn(e,t="negative",i=IA){const s=UA(e,t,i),r={id:String(++$A),title:s.title,detail:s.detail,tone:s.tone??t,durationMs:s.durationMs??i,dedupeKey:s.dedupeKey,cta:s.cta,state:"open"};if(s.dedupeKey){const u=an.find(d=>d.dedupeKey===s.dedupeKey);if(u){if((s.dedupeMode??"drop")==="drop")return u.id;const d={...u,title:r.title,detail:r.detail,tone:r.tone,durationMs:r.durationMs,cta:r.cta,state:"open"};return an=an.map(g=>g.id===u.id?d:g),wu(),kb(d),u.id}}return an.length>=LA&&W2(an[0].id),an=[...an,r],wu(),kb(r),r.id}function gf(e){const t=an.find(i=>i.id===e);!t||t.state==="closing"||(t0(e),an=an.map(i=>i.id===e?{...i,state:"closing"}:i),wu(),hf.set(e,setTimeout(()=>{W2(e)},PA)))}function VA(e){return pf.add(e),()=>{pf.delete(e)}}function wb(){return an}const KA=5*6e4,yf=30*6e4,oK=3e4,rK=6e4,zo=3e4,GA=2e3;function HA(){return new n4({defaultOptions:{queries:{staleTime:KA,retry:1,refetchOnWindowFocus:!1}},mutationCache:new a4({onError:(t,i,s,r)=>{r.meta?.skipGlobalErrorToast||pn({title:t instanceof Error?t.message:"An unexpected error occurred",tone:"negative"})}})})}const QA="modulepreload",ZA=function(e,t){return new URL(e,t).href},xb={},qi=function(t,i,s){let r=Promise.resolve();if(i&&i.length>0){let v=function(x){return Promise.all(x.map(S=>Promise.resolve(S).then(j=>({status:"fulfilled",value:j}),j=>({status:"rejected",reason:j}))))};const d=document.getElementsByTagName("link"),g=document.querySelector("meta[property=csp-nonce]"),b=g?.nonce||g?.getAttribute("nonce");r=v(i.map(x=>{if(x=ZA(x,s),x in xb)return;xb[x]=!0;const S=x.endsWith(".css"),j=S?'[rel="stylesheet"]':"";if(s)for(let T=d.length-1;T>=0;T--){const N=d[T];if(N.href===x&&(!S||N.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${x}"]${j}`))return;const _=document.createElement("link");if(_.rel=S?"stylesheet":QA,S||(_.as="script"),_.crossOrigin="",_.href=x,b&&_.setAttribute("nonce",b),document.head.appendChild(_),S)return new Promise((T,N)=>{_.addEventListener("load",T),_.addEventListener("error",()=>N(new Error(`Unable to preload CSS for ${x}`)))})}))}function u(d){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=d,window.dispatchEvent(g),!g.defaultPrevented)throw d}return r.then(d=>{for(const g of d||[])g.status==="rejected"&&u(g.reason);return t().catch(u)})};const FA=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),YA=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,i,s)=>s?s.toUpperCase():i.toLowerCase()),Sb=e=>{const t=YA(e);return t.charAt(0).toUpperCase()+t.slice(1)},ek=(...e)=>e.filter((t,i,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===i).join(" ").trim(),XA=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var JA={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const WA=B.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:i=2,absoluteStrokeWidth:s,className:r="",children:u,iconNode:d,...g},b)=>B.createElement("svg",{ref:b,...JA,width:t,height:t,stroke:e,strokeWidth:s?Number(i)*24/Number(t):i,className:ek("lucide",r),...!u&&!XA(g)&&{"aria-hidden":"true"},...g},[...d.map(([v,x])=>B.createElement(v,x)),...Array.isArray(u)?u:[u]]));const tt=(e,t)=>{const i=B.forwardRef(({className:s,...r},u)=>B.createElement(WA,{ref:u,iconNode:t,className:ek(`lucide-${FA(Sb(e))}`,`lucide-${e}`,s),...r}));return i.displayName=Sb(e),i};const eN=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],tN=tt("arrow-right",eN);const nN=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],aN=tt("arrow-up",nN);const iN=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],sN=tt("book-open",iN);const oN=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],tk=tt("check",oN);const rN=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],nk=tt("chevron-down",rN);const lN=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],n0=tt("chevron-right",lN);const cN=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],uN=tt("copy",cN);const dN=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],mN=tt("file-text",dN);const pN=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],fN=tt("github",pN);const hN=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],gN=tt("globe",hN);const yN=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],bN=tt("history",yN);const vN=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],kN=tt("layout-dashboard",vN);const wN=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],xN=tt("link-2",wN);const SN=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],ak=tt("loader-circle",SN);const jN=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],AN=tt("maximize-2",jN);const NN=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],_N=tt("menu",NN);const CN=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],zN=tt("minimize-2",CN);const EN=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],TN=tt("panel-left-close",EN);const DN=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],ON=tt("panel-left-open",DN);const RN=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],MN=tt("play",RN);const BN=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],jb=tt("plus",BN);const qN=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],IN=tt("radar",qN);const LN=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Ab=tt("radio",LN);const PN=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],$N=tt("rocket",PN);const UN=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],ik=tt("rotate-ccw",UN);const VN=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],KN=tt("search",VN);const GN=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],HN=tt("settings",GN);const QN=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],sk=tt("triangle-alert",QN);const ZN=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],FN=tt("wrench",ZN);const YN=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],$o=tt("x",YN);function J(e,t,i){function s(g,b){if(g._zod||Object.defineProperty(g,"_zod",{value:{def:b,constr:d,traits:new Set},enumerable:!1}),g._zod.traits.has(e))return;g._zod.traits.add(e),t(g,b);const v=d.prototype,x=Object.keys(v);for(let S=0;S<x.length;S++){const j=x[S];j in g||(g[j]=v[j].bind(g))}}const r=i?.Parent??Object;class u extends r{}Object.defineProperty(u,"name",{value:e});function d(g){var b;const v=i?.Parent?new u:this;s(v,g),(b=v._zod).deferred??(b.deferred=[]);for(const x of v._zod.deferred)x();return v}return Object.defineProperty(d,"init",{value:s}),Object.defineProperty(d,Symbol.hasInstance,{value:g=>i?.Parent&&g instanceof i.Parent?!0:g?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}class jo extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class ok extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const rk={};function Oi(e){return rk}function lk(e){const t=Object.values(e).filter(s=>typeof s=="number");return Object.entries(e).filter(([s,r])=>t.indexOf(+s)===-1).map(([s,r])=>r)}function bf(e,t){return typeof t=="bigint"?t.toString():t}function Pu(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function a0(e){return e==null}function i0(e){const t=e.startsWith("^")?1:0,i=e.endsWith("$")?e.length-1:e.length;return e.slice(t,i)}function XN(e,t){const i=(e.toString().split(".")[1]||"").length,s=t.toString();let r=(s.split(".")[1]||"").length;if(r===0&&/\d?e-\d?/.test(s)){const b=s.match(/\d?e-(\d?)/);b?.[1]&&(r=Number.parseInt(b[1]))}const u=i>r?i:r,d=Number.parseInt(e.toFixed(u).replace(".","")),g=Number.parseInt(t.toFixed(u).replace(".",""));return d%g/10**u}const Nb=Symbol("evaluating");function et(e,t,i){let s;Object.defineProperty(e,t,{get(){if(s!==Nb)return s===void 0&&(s=Nb,s=i()),s},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function Ss(e,t,i){Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!0,configurable:!0})}function Ii(...e){const t={};for(const i of e){const s=Object.getOwnPropertyDescriptors(i);Object.assign(t,s)}return Object.defineProperties({},t)}function _b(e){return JSON.stringify(e)}function JN(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const ck="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function hl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const WN=Pu(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function Eo(e){if(hl(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const i=t.prototype;return!(hl(i)===!1||Object.prototype.hasOwnProperty.call(i,"isPrototypeOf")===!1)}function uk(e){return Eo(e)?{...e}:Array.isArray(e)?[...e]:e}const e8=new Set(["string","number","symbol"]);function To(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Li(e,t,i){const s=new e._zod.constr(t??e._zod.def);return(!t||i?.parent)&&(s._zod.parent=e),s}function je(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function t8(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const n8={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function a8(e,t){const i=e._zod.def,s=i.checks;if(s&&s.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const u=Ii(e._zod.def,{get shape(){const d={};for(const g in t){if(!(g in i.shape))throw new Error(`Unrecognized key: "${g}"`);t[g]&&(d[g]=i.shape[g])}return Ss(this,"shape",d),d},checks:[]});return Li(e,u)}function i8(e,t){const i=e._zod.def,s=i.checks;if(s&&s.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const u=Ii(e._zod.def,{get shape(){const d={...e._zod.def.shape};for(const g in t){if(!(g in i.shape))throw new Error(`Unrecognized key: "${g}"`);t[g]&&delete d[g]}return Ss(this,"shape",d),d},checks:[]});return Li(e,u)}function s8(e,t){if(!Eo(t))throw new Error("Invalid input to extend: expected a plain object");const i=e._zod.def.checks;if(i&&i.length>0){const u=e._zod.def.shape;for(const d in t)if(Object.getOwnPropertyDescriptor(u,d)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const r=Ii(e._zod.def,{get shape(){const u={...e._zod.def.shape,...t};return Ss(this,"shape",u),u}});return Li(e,r)}function o8(e,t){if(!Eo(t))throw new Error("Invalid input to safeExtend: expected a plain object");const i=Ii(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return Ss(this,"shape",s),s}});return Li(e,i)}function r8(e,t){const i=Ii(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t._zod.def.shape};return Ss(this,"shape",s),s},get catchall(){return t._zod.def.catchall},checks:[]});return Li(e,i)}function l8(e,t,i){const r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const d=Ii(t._zod.def,{get shape(){const g=t._zod.def.shape,b={...g};if(i)for(const v in i){if(!(v in g))throw new Error(`Unrecognized key: "${v}"`);i[v]&&(b[v]=e?new e({type:"optional",innerType:g[v]}):g[v])}else for(const v in g)b[v]=e?new e({type:"optional",innerType:g[v]}):g[v];return Ss(this,"shape",b),b},checks:[]});return Li(t,d)}function c8(e,t,i){const s=Ii(t._zod.def,{get shape(){const r=t._zod.def.shape,u={...r};if(i)for(const d in i){if(!(d in u))throw new Error(`Unrecognized key: "${d}"`);i[d]&&(u[d]=new e({type:"nonoptional",innerType:r[d]}))}else for(const d in r)u[d]=new e({type:"nonoptional",innerType:r[d]});return Ss(this,"shape",u),u}});return Li(t,s)}function bo(e,t=0){if(e.aborted===!0)return!0;for(let i=t;i<e.issues.length;i++)if(e.issues[i]?.continue!==!0)return!0;return!1}function vo(e,t){return t.map(i=>{var s;return(s=i).path??(s.path=[]),i.path.unshift(e),i})}function eu(e){return typeof e=="string"?e:e?.message}function Ri(e,t,i){const s={...e,path:e.path??[]};if(!e.message){const r=eu(e.inst?._zod.def?.error?.(e))??eu(t?.error?.(e))??eu(i.customError?.(e))??eu(i.localeError?.(e))??"Invalid input";s.message=r}return delete s.inst,delete s.continue,t?.reportInput||delete s.input,s}function s0(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function gl(...e){const[t,i,s]=e;return typeof t=="string"?{message:t,code:"custom",input:i,inst:s}:{...t}}const dk=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,bf,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mk=J("$ZodError",dk),pk=J("$ZodError",dk,{Parent:Error});function u8(e,t=i=>i.message){const i={},s=[];for(const r of e.issues)r.path.length>0?(i[r.path[0]]=i[r.path[0]]||[],i[r.path[0]].push(t(r))):s.push(t(r));return{formErrors:s,fieldErrors:i}}function d8(e,t=i=>i.message){const i={_errors:[]},s=r=>{for(const u of r.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(d=>s({issues:d}));else if(u.code==="invalid_key")s({issues:u.issues});else if(u.code==="invalid_element")s({issues:u.issues});else if(u.path.length===0)i._errors.push(t(u));else{let d=i,g=0;for(;g<u.path.length;){const b=u.path[g];g===u.path.length-1?(d[b]=d[b]||{_errors:[]},d[b]._errors.push(t(u))):d[b]=d[b]||{_errors:[]},d=d[b],g++}}};return s(e),i}const o0=e=>(t,i,s,r)=>{const u=s?Object.assign(s,{async:!1}):{async:!1},d=t._zod.run({value:i,issues:[]},u);if(d instanceof Promise)throw new jo;if(d.issues.length){const g=new(r?.Err??e)(d.issues.map(b=>Ri(b,u,Oi())));throw ck(g,r?.callee),g}return d.value},r0=e=>async(t,i,s,r)=>{const u=s?Object.assign(s,{async:!0}):{async:!0};let d=t._zod.run({value:i,issues:[]},u);if(d instanceof Promise&&(d=await d),d.issues.length){const g=new(r?.Err??e)(d.issues.map(b=>Ri(b,u,Oi())));throw ck(g,r?.callee),g}return d.value},$u=e=>(t,i,s)=>{const r=s?{...s,async:!1}:{async:!1},u=t._zod.run({value:i,issues:[]},r);if(u instanceof Promise)throw new jo;return u.issues.length?{success:!1,error:new(e??mk)(u.issues.map(d=>Ri(d,r,Oi())))}:{success:!0,data:u.value}},m8=$u(pk),Uu=e=>async(t,i,s)=>{const r=s?Object.assign(s,{async:!0}):{async:!0};let u=t._zod.run({value:i,issues:[]},r);return u instanceof Promise&&(u=await u),u.issues.length?{success:!1,error:new e(u.issues.map(d=>Ri(d,r,Oi())))}:{success:!0,data:u.value}},p8=Uu(pk),f8=e=>(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return o0(e)(t,i,r)},h8=e=>(t,i,s)=>o0(e)(t,i,s),g8=e=>async(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return r0(e)(t,i,r)},y8=e=>async(t,i,s)=>r0(e)(t,i,s),b8=e=>(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return $u(e)(t,i,r)},v8=e=>(t,i,s)=>$u(e)(t,i,s),k8=e=>async(t,i,s)=>{const r=s?Object.assign(s,{direction:"backward"}):{direction:"backward"};return Uu(e)(t,i,r)},w8=e=>async(t,i,s)=>Uu(e)(t,i,s),x8=/^[cC][^\s-]{8,}$/,S8=/^[0-9a-z]+$/,j8=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,A8=/^[0-9a-vA-V]{20}$/,N8=/^[A-Za-z0-9]{27}$/,_8=/^[a-zA-Z0-9_-]{21}$/,C8=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,z8=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Cb=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,E8=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,T8="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function D8(){return new RegExp(T8,"u")}const O8=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,R8=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,M8=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,B8=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,q8=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,fk=/^[A-Za-z0-9_-]*$/,I8=/^\+[1-9]\d{6,14}$/,hk="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",L8=new RegExp(`^${hk}$`);function gk(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function P8(e){return new RegExp(`^${gk(e)}$`)}function $8(e){const t=gk({precision:e.precision}),i=["Z"];e.local&&i.push(""),e.offset&&i.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const s=`${t}(?:${i.join("|")})`;return new RegExp(`^${hk}T(?:${s})$`)}const U8=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},V8=/^-?\d+$/,yk=/^-?\d+(?:\.\d+)?$/,K8=/^(?:true|false)$/i,G8=/^null$/i,H8=/^[^A-Z]*$/,Q8=/^[^a-z]*$/,Nn=J("$ZodCheck",(e,t)=>{var i;e._zod??(e._zod={}),e._zod.def=t,(i=e._zod).onattach??(i.onattach=[])}),bk={number:"number",bigint:"bigint",object:"date"},vk=J("$ZodCheckLessThan",(e,t)=>{Nn.init(e,t);const i=bk[typeof t.value];e._zod.onattach.push(s=>{const r=s._zod.bag,u=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<u&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=s=>{(t.inclusive?s.value<=t.value:s.value<t.value)||s.issues.push({origin:i,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:s.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),kk=J("$ZodCheckGreaterThan",(e,t)=>{Nn.init(e,t);const i=bk[typeof t.value];e._zod.onattach.push(s=>{const r=s._zod.bag,u=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>u&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=s=>{(t.inclusive?s.value>=t.value:s.value>t.value)||s.issues.push({origin:i,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:s.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Z8=J("$ZodCheckMultipleOf",(e,t)=>{Nn.init(e,t),e._zod.onattach.push(i=>{var s;(s=i._zod.bag).multipleOf??(s.multipleOf=t.value)}),e._zod.check=i=>{if(typeof i.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof i.value=="bigint"?i.value%t.value===BigInt(0):XN(i.value,t.value)===0)||i.issues.push({origin:typeof i.value,code:"not_multiple_of",divisor:t.value,input:i.value,inst:e,continue:!t.abort})}}),F8=J("$ZodCheckNumberFormat",(e,t)=>{Nn.init(e,t),t.format=t.format||"float64";const i=t.format?.includes("int"),s=i?"int":"number",[r,u]=n8[t.format];e._zod.onattach.push(d=>{const g=d._zod.bag;g.format=t.format,g.minimum=r,g.maximum=u,i&&(g.pattern=V8)}),e._zod.check=d=>{const g=d.value;if(i){if(!Number.isInteger(g)){d.issues.push({expected:s,format:t.format,code:"invalid_type",continue:!1,input:g,inst:e});return}if(!Number.isSafeInteger(g)){g>0?d.issues.push({input:g,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:s,inclusive:!0,continue:!t.abort}):d.issues.push({input:g,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:s,inclusive:!0,continue:!t.abort});return}}g<r&&d.issues.push({origin:"number",input:g,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),g>u&&d.issues.push({origin:"number",input:g,code:"too_big",maximum:u,inclusive:!0,inst:e,continue:!t.abort})}}),Y8=J("$ZodCheckMaxLength",(e,t)=>{var i;Nn.init(e,t),(i=e._zod.def).when??(i.when=s=>{const r=s.value;return!a0(r)&&r.length!==void 0}),e._zod.onattach.push(s=>{const r=s._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(s._zod.bag.maximum=t.maximum)}),e._zod.check=s=>{const r=s.value;if(r.length<=t.maximum)return;const d=s0(r);s.issues.push({origin:d,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),X8=J("$ZodCheckMinLength",(e,t)=>{var i;Nn.init(e,t),(i=e._zod.def).when??(i.when=s=>{const r=s.value;return!a0(r)&&r.length!==void 0}),e._zod.onattach.push(s=>{const r=s._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(s._zod.bag.minimum=t.minimum)}),e._zod.check=s=>{const r=s.value;if(r.length>=t.minimum)return;const d=s0(r);s.issues.push({origin:d,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),J8=J("$ZodCheckLengthEquals",(e,t)=>{var i;Nn.init(e,t),(i=e._zod.def).when??(i.when=s=>{const r=s.value;return!a0(r)&&r.length!==void 0}),e._zod.onattach.push(s=>{const r=s._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=s=>{const r=s.value,u=r.length;if(u===t.length)return;const d=s0(r),g=u>t.length;s.issues.push({origin:d,...g?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:s.value,inst:e,continue:!t.abort})}}),Vu=J("$ZodCheckStringFormat",(e,t)=>{var i,s;Nn.init(e,t),e._zod.onattach.push(r=>{const u=r._zod.bag;u.format=t.format,t.pattern&&(u.patterns??(u.patterns=new Set),u.patterns.add(t.pattern))}),t.pattern?(i=e._zod).check??(i.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(s=e._zod).check??(s.check=()=>{})}),W8=J("$ZodCheckRegex",(e,t)=>{Vu.init(e,t),e._zod.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:"regex",input:i.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),e_=J("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=H8),Vu.init(e,t)}),t_=J("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Q8),Vu.init(e,t)}),n_=J("$ZodCheckIncludes",(e,t)=>{Nn.init(e,t);const i=To(t.includes),s=new RegExp(typeof t.position=="number"?`^.{${t.position}}${i}`:i);t.pattern=s,e._zod.onattach.push(r=>{const u=r._zod.bag;u.patterns??(u.patterns=new Set),u.patterns.add(s)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),a_=J("$ZodCheckStartsWith",(e,t)=>{Nn.init(e,t);const i=new RegExp(`^${To(t.prefix)}.*`);t.pattern??(t.pattern=i),e._zod.onattach.push(s=>{const r=s._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(i)}),e._zod.check=s=>{s.value.startsWith(t.prefix)||s.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:s.value,inst:e,continue:!t.abort})}}),i_=J("$ZodCheckEndsWith",(e,t)=>{Nn.init(e,t);const i=new RegExp(`.*${To(t.suffix)}$`);t.pattern??(t.pattern=i),e._zod.onattach.push(s=>{const r=s._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(i)}),e._zod.check=s=>{s.value.endsWith(t.suffix)||s.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:s.value,inst:e,continue:!t.abort})}}),s_=J("$ZodCheckOverwrite",(e,t)=>{Nn.init(e,t),e._zod.check=i=>{i.value=t.tx(i.value)}});class o_{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const s=t.split(`
|
|
15
15
|
`).filter(d=>d),r=Math.min(...s.map(d=>d.length-d.trimStart().length)),u=s.map(d=>d.slice(r)).map(d=>" ".repeat(this.indent*2)+d);for(const d of u)this.content.push(d)}compile(){const t=Function,i=this?.args,r=[...(this?.content??[""]).map(u=>` ${u}`)];return new t(...i,r.join(`
|
|
16
16
|
`))}}const r_={major:4,minor:3,patch:6},kt=J("$ZodType",(e,t)=>{var i;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=r_;const s=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&s.unshift(e);for(const r of s)for(const u of r._zod.onattach)u(e);if(s.length===0)(i=e._zod).deferred??(i.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const r=(d,g,b)=>{let v=bo(d),x;for(const S of g){if(S._zod.def.when){if(!S._zod.def.when(d))continue}else if(v)continue;const j=d.issues.length,_=S._zod.check(d);if(_ instanceof Promise&&b?.async===!1)throw new jo;if(x||_ instanceof Promise)x=(x??Promise.resolve()).then(async()=>{await _,d.issues.length!==j&&(v||(v=bo(d,j)))});else{if(d.issues.length===j)continue;v||(v=bo(d,j))}}return x?x.then(()=>d):d},u=(d,g,b)=>{if(bo(d))return d.aborted=!0,d;const v=r(g,s,b);if(v instanceof Promise){if(b.async===!1)throw new jo;return v.then(x=>e._zod.parse(x,b))}return e._zod.parse(v,b)};e._zod.run=(d,g)=>{if(g.skipChecks)return e._zod.parse(d,g);if(g.direction==="backward"){const v=e._zod.parse({value:d.value,issues:[]},{...g,skipChecks:!0});return v instanceof Promise?v.then(x=>u(x,d,g)):u(v,d,g)}const b=e._zod.parse(d,g);if(b instanceof Promise){if(g.async===!1)throw new jo;return b.then(v=>r(v,s,g))}return r(b,s,g)}}et(e,"~standard",()=>({validate:r=>{try{const u=m8(e,r);return u.success?{value:u.data}:{issues:u.error?.issues}}catch{return p8(e,r).then(d=>d.success?{value:d.data}:{issues:d.error?.issues})}},vendor:"zod",version:1}))}),l0=J("$ZodString",(e,t)=>{kt.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??U8(e._zod.bag),e._zod.parse=(i,s)=>{if(t.coerce)try{i.value=String(i.value)}catch{}return typeof i.value=="string"||i.issues.push({expected:"string",code:"invalid_type",input:i.value,inst:e}),i}}),wt=J("$ZodStringFormat",(e,t)=>{Vu.init(e,t),l0.init(e,t)}),l_=J("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=z8),wt.init(e,t)}),c_=J("$ZodUUID",(e,t)=>{if(t.version){const s={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(s===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Cb(s))}else t.pattern??(t.pattern=Cb());wt.init(e,t)}),u_=J("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=E8),wt.init(e,t)}),d_=J("$ZodURL",(e,t)=>{wt.init(e,t),e._zod.check=i=>{try{const s=i.value.trim(),r=new URL(s);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(r.hostname)||i.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:i.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(r.protocol.endsWith(":")?r.protocol.slice(0,-1):r.protocol)||i.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:i.value,inst:e,continue:!t.abort})),t.normalize?i.value=r.href:i.value=s;return}catch{i.issues.push({code:"invalid_format",format:"url",input:i.value,inst:e,continue:!t.abort})}}}),m_=J("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=D8()),wt.init(e,t)}),p_=J("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=_8),wt.init(e,t)}),f_=J("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=x8),wt.init(e,t)}),h_=J("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=S8),wt.init(e,t)}),g_=J("$ZodULID",(e,t)=>{t.pattern??(t.pattern=j8),wt.init(e,t)}),y_=J("$ZodXID",(e,t)=>{t.pattern??(t.pattern=A8),wt.init(e,t)}),b_=J("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=N8),wt.init(e,t)}),v_=J("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=$8(t)),wt.init(e,t)}),k_=J("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=L8),wt.init(e,t)}),w_=J("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=P8(t)),wt.init(e,t)}),x_=J("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=C8),wt.init(e,t)}),S_=J("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=O8),wt.init(e,t),e._zod.bag.format="ipv4"}),j_=J("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=R8),wt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=i=>{try{new URL(`http://[${i.value}]`)}catch{i.issues.push({code:"invalid_format",format:"ipv6",input:i.value,inst:e,continue:!t.abort})}}}),A_=J("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=M8),wt.init(e,t)}),N_=J("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=B8),wt.init(e,t),e._zod.check=i=>{const s=i.value.split("/");try{if(s.length!==2)throw new Error;const[r,u]=s;if(!u)throw new Error;const d=Number(u);if(`${d}`!==u)throw new Error;if(d<0||d>128)throw new Error;new URL(`http://[${r}]`)}catch{i.issues.push({code:"invalid_format",format:"cidrv6",input:i.value,inst:e,continue:!t.abort})}}});function wk(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const __=J("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=q8),wt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=i=>{wk(i.value)||i.issues.push({code:"invalid_format",format:"base64",input:i.value,inst:e,continue:!t.abort})}});function C_(e){if(!fk.test(e))return!1;const t=e.replace(/[-_]/g,s=>s==="-"?"+":"/"),i=t.padEnd(Math.ceil(t.length/4)*4,"=");return wk(i)}const z_=J("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=fk),wt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=i=>{C_(i.value)||i.issues.push({code:"invalid_format",format:"base64url",input:i.value,inst:e,continue:!t.abort})}}),E_=J("$ZodE164",(e,t)=>{t.pattern??(t.pattern=I8),wt.init(e,t)});function T_(e,t=null){try{const i=e.split(".");if(i.length!==3)return!1;const[s]=i;if(!s)return!1;const r=JSON.parse(atob(s));return!("typ"in r&&r?.typ!=="JWT"||!r.alg||t&&(!("alg"in r)||r.alg!==t))}catch{return!1}}const D_=J("$ZodJWT",(e,t)=>{wt.init(e,t),e._zod.check=i=>{T_(i.value,t.alg)||i.issues.push({code:"invalid_format",format:"jwt",input:i.value,inst:e,continue:!t.abort})}}),xk=J("$ZodNumber",(e,t)=>{kt.init(e,t),e._zod.pattern=e._zod.bag.pattern??yk,e._zod.parse=(i,s)=>{if(t.coerce)try{i.value=Number(i.value)}catch{}const r=i.value;if(typeof r=="number"&&!Number.isNaN(r)&&Number.isFinite(r))return i;const u=typeof r=="number"?Number.isNaN(r)?"NaN":Number.isFinite(r)?void 0:"Infinity":void 0;return i.issues.push({expected:"number",code:"invalid_type",input:r,inst:e,...u?{received:u}:{}}),i}}),O_=J("$ZodNumberFormat",(e,t)=>{F8.init(e,t),xk.init(e,t)}),R_=J("$ZodBoolean",(e,t)=>{kt.init(e,t),e._zod.pattern=K8,e._zod.parse=(i,s)=>{if(t.coerce)try{i.value=!!i.value}catch{}const r=i.value;return typeof r=="boolean"||i.issues.push({expected:"boolean",code:"invalid_type",input:r,inst:e}),i}}),M_=J("$ZodNull",(e,t)=>{kt.init(e,t),e._zod.pattern=G8,e._zod.values=new Set([null]),e._zod.parse=(i,s)=>{const r=i.value;return r===null||i.issues.push({expected:"null",code:"invalid_type",input:r,inst:e}),i}}),B_=J("$ZodUnknown",(e,t)=>{kt.init(e,t),e._zod.parse=i=>i}),q_=J("$ZodNever",(e,t)=>{kt.init(e,t),e._zod.parse=(i,s)=>(i.issues.push({expected:"never",code:"invalid_type",input:i.value,inst:e}),i)});function zb(e,t,i){e.issues.length&&t.issues.push(...vo(i,e.issues)),t.value[i]=e.value}const I_=J("$ZodArray",(e,t)=>{kt.init(e,t),e._zod.parse=(i,s)=>{const r=i.value;if(!Array.isArray(r))return i.issues.push({expected:"array",code:"invalid_type",input:r,inst:e}),i;i.value=Array(r.length);const u=[];for(let d=0;d<r.length;d++){const g=r[d],b=t.element._zod.run({value:g,issues:[]},s);b instanceof Promise?u.push(b.then(v=>zb(v,i,d))):zb(b,i,d)}return u.length?Promise.all(u).then(()=>i):i}});function xu(e,t,i,s,r){if(e.issues.length){if(r&&!(i in s))return;t.issues.push(...vo(i,e.issues))}e.value===void 0?i in s&&(t.value[i]=void 0):t.value[i]=e.value}function Sk(e){const t=Object.keys(e.shape);for(const s of t)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const i=t8(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function jk(e,t,i,s,r,u){const d=[],g=r.keySet,b=r.catchall._zod,v=b.def.type,x=b.optout==="optional";for(const S in t){if(g.has(S))continue;if(v==="never"){d.push(S);continue}const j=b.run({value:t[S],issues:[]},s);j instanceof Promise?e.push(j.then(_=>xu(_,i,S,t,x))):xu(j,i,S,t,x)}return d.length&&i.issues.push({code:"unrecognized_keys",keys:d,input:t,inst:u}),e.length?Promise.all(e).then(()=>i):i}const L_=J("$ZodObject",(e,t)=>{if(kt.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const g=t.shape;Object.defineProperty(t,"shape",{get:()=>{const b={...g};return Object.defineProperty(t,"shape",{value:b}),b}})}const s=Pu(()=>Sk(t));et(e._zod,"propValues",()=>{const g=t.shape,b={};for(const v in g){const x=g[v]._zod;if(x.values){b[v]??(b[v]=new Set);for(const S of x.values)b[v].add(S)}}return b});const r=hl,u=t.catchall;let d;e._zod.parse=(g,b)=>{d??(d=s.value);const v=g.value;if(!r(v))return g.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),g;g.value={};const x=[],S=d.shape;for(const j of d.keys){const _=S[j],T=_._zod.optout==="optional",N=_._zod.run({value:v[j],issues:[]},b);N instanceof Promise?x.push(N.then(C=>xu(C,g,j,v,T))):xu(N,g,j,v,T)}return u?jk(x,v,g,b,s.value,e):x.length?Promise.all(x).then(()=>g):g}}),P_=J("$ZodObjectJIT",(e,t)=>{L_.init(e,t);const i=e._zod.parse,s=Pu(()=>Sk(t)),r=j=>{const _=new o_(["shape","payload","ctx"]),T=s.value,N=$=>{const K=_b($);return`shape[${K}]._zod.run({ value: input[${K}], issues: [] }, ctx)`};_.write("const input = payload.value;");const C=Object.create(null);let O=0;for(const $ of T.keys)C[$]=`key_${O++}`;_.write("const newResult = {};");for(const $ of T.keys){const K=C[$],Z=_b($),R=j[$]?._zod?.optout==="optional";_.write(`const ${K} = ${N($)};`),R?_.write(`
|
|
17
17
|
if (${K}.issues.length) {
|
|
@@ -49,20 +49,20 @@ Error generating stack: `+l.message+`
|
|
|
49
49
|
|
|
50
50
|
`)}_.write("payload.value = newResult;"),_.write("return payload;");const I=_.compile();return($,K)=>I(j,$,K)};let u;const d=hl,g=!rk.jitless,v=g&&WN.value,x=t.catchall;let S;e._zod.parse=(j,_)=>{S??(S=s.value);const T=j.value;return d(T)?g&&v&&_?.async===!1&&_.jitless!==!0?(u||(u=r(t.shape)),j=u(j,_),x?jk([],T,j,_,S,e):j):i(j,_):(j.issues.push({expected:"object",code:"invalid_type",input:T,inst:e}),j)}});function Eb(e,t,i,s){for(const u of e)if(u.issues.length===0)return t.value=u.value,t;const r=e.filter(u=>!bo(u));return r.length===1?(t.value=r[0].value,r[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:i,errors:e.map(u=>u.issues.map(d=>Ri(d,s,Oi())))}),t)}const Ak=J("$ZodUnion",(e,t)=>{kt.init(e,t),et(e._zod,"optin",()=>t.options.some(r=>r._zod.optin==="optional")?"optional":void 0),et(e._zod,"optout",()=>t.options.some(r=>r._zod.optout==="optional")?"optional":void 0),et(e._zod,"values",()=>{if(t.options.every(r=>r._zod.values))return new Set(t.options.flatMap(r=>Array.from(r._zod.values)))}),et(e._zod,"pattern",()=>{if(t.options.every(r=>r._zod.pattern)){const r=t.options.map(u=>u._zod.pattern);return new RegExp(`^(${r.map(u=>i0(u.source)).join("|")})$`)}});const i=t.options.length===1,s=t.options[0]._zod.run;e._zod.parse=(r,u)=>{if(i)return s(r,u);let d=!1;const g=[];for(const b of t.options){const v=b._zod.run({value:r.value,issues:[]},u);if(v instanceof Promise)g.push(v),d=!0;else{if(v.issues.length===0)return v;g.push(v)}}return d?Promise.all(g).then(b=>Eb(b,r,e,u)):Eb(g,r,e,u)}}),$_=J("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ak.init(e,t);const i=e._zod.parse;et(e._zod,"propValues",()=>{const r={};for(const u of t.options){const d=u._zod.propValues;if(!d||Object.keys(d).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(u)}"`);for(const[g,b]of Object.entries(d)){r[g]||(r[g]=new Set);for(const v of b)r[g].add(v)}}return r});const s=Pu(()=>{const r=t.options,u=new Map;for(const d of r){const g=d._zod.propValues?.[t.discriminator];if(!g||g.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(d)}"`);for(const b of g){if(u.has(b))throw new Error(`Duplicate discriminator value "${String(b)}"`);u.set(b,d)}}return u});e._zod.parse=(r,u)=>{const d=r.value;if(!hl(d))return r.issues.push({code:"invalid_type",expected:"object",input:d,inst:e}),r;const g=s.value.get(d?.[t.discriminator]);return g?g._zod.run(r,u):t.unionFallback?i(r,u):(r.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:d,path:[t.discriminator],inst:e}),r)}}),U_=J("$ZodIntersection",(e,t)=>{kt.init(e,t),e._zod.parse=(i,s)=>{const r=i.value,u=t.left._zod.run({value:r,issues:[]},s),d=t.right._zod.run({value:r,issues:[]},s);return u instanceof Promise||d instanceof Promise?Promise.all([u,d]).then(([b,v])=>Tb(i,b,v)):Tb(i,u,d)}});function vf(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Eo(e)&&Eo(t)){const i=Object.keys(t),s=Object.keys(e).filter(u=>i.indexOf(u)!==-1),r={...e,...t};for(const u of s){const d=vf(e[u],t[u]);if(!d.valid)return{valid:!1,mergeErrorPath:[u,...d.mergeErrorPath]};r[u]=d.data}return{valid:!0,data:r}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const i=[];for(let s=0;s<e.length;s++){const r=e[s],u=t[s],d=vf(r,u);if(!d.valid)return{valid:!1,mergeErrorPath:[s,...d.mergeErrorPath]};i.push(d.data)}return{valid:!0,data:i}}return{valid:!1,mergeErrorPath:[]}}function Tb(e,t,i){const s=new Map;let r;for(const g of t.issues)if(g.code==="unrecognized_keys"){r??(r=g);for(const b of g.keys)s.has(b)||s.set(b,{}),s.get(b).l=!0}else e.issues.push(g);for(const g of i.issues)if(g.code==="unrecognized_keys")for(const b of g.keys)s.has(b)||s.set(b,{}),s.get(b).r=!0;else e.issues.push(g);const u=[...s].filter(([,g])=>g.l&&g.r).map(([g])=>g);if(u.length&&r&&e.issues.push({...r,keys:u}),bo(e))return e;const d=vf(t.value,i.value);if(!d.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(d.mergeErrorPath)}`);return e.value=d.data,e}const V_=J("$ZodRecord",(e,t)=>{kt.init(e,t),e._zod.parse=(i,s)=>{const r=i.value;if(!Eo(r))return i.issues.push({expected:"record",code:"invalid_type",input:r,inst:e}),i;const u=[],d=t.keyType._zod.values;if(d){i.value={};const g=new Set;for(const v of d)if(typeof v=="string"||typeof v=="number"||typeof v=="symbol"){g.add(typeof v=="number"?v.toString():v);const x=t.valueType._zod.run({value:r[v],issues:[]},s);x instanceof Promise?u.push(x.then(S=>{S.issues.length&&i.issues.push(...vo(v,S.issues)),i.value[v]=S.value})):(x.issues.length&&i.issues.push(...vo(v,x.issues)),i.value[v]=x.value)}let b;for(const v in r)g.has(v)||(b=b??[],b.push(v));b&&b.length>0&&i.issues.push({code:"unrecognized_keys",input:r,inst:e,keys:b})}else{i.value={};for(const g of Reflect.ownKeys(r)){if(g==="__proto__")continue;let b=t.keyType._zod.run({value:g,issues:[]},s);if(b instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof g=="string"&&yk.test(g)&&b.issues.length){const S=t.keyType._zod.run({value:Number(g),issues:[]},s);if(S instanceof Promise)throw new Error("Async schemas not supported in object keys currently");S.issues.length===0&&(b=S)}if(b.issues.length){t.mode==="loose"?i.value[g]=r[g]:i.issues.push({code:"invalid_key",origin:"record",issues:b.issues.map(S=>Ri(S,s,Oi())),input:g,path:[g],inst:e});continue}const x=t.valueType._zod.run({value:r[g],issues:[]},s);x instanceof Promise?u.push(x.then(S=>{S.issues.length&&i.issues.push(...vo(g,S.issues)),i.value[b.value]=S.value})):(x.issues.length&&i.issues.push(...vo(g,x.issues)),i.value[b.value]=x.value)}}return u.length?Promise.all(u).then(()=>i):i}}),K_=J("$ZodEnum",(e,t)=>{kt.init(e,t);const i=lk(t.entries),s=new Set(i);e._zod.values=s,e._zod.pattern=new RegExp(`^(${i.filter(r=>e8.has(typeof r)).map(r=>typeof r=="string"?To(r):r.toString()).join("|")})$`),e._zod.parse=(r,u)=>{const d=r.value;return s.has(d)||r.issues.push({code:"invalid_value",values:i,input:d,inst:e}),r}}),G_=J("$ZodLiteral",(e,t)=>{if(kt.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const i=new Set(t.values);e._zod.values=i,e._zod.pattern=new RegExp(`^(${t.values.map(s=>typeof s=="string"?To(s):s?To(s.toString()):String(s)).join("|")})$`),e._zod.parse=(s,r)=>{const u=s.value;return i.has(u)||s.issues.push({code:"invalid_value",values:t.values,input:u,inst:e}),s}}),H_=J("$ZodTransform",(e,t)=>{kt.init(e,t),e._zod.parse=(i,s)=>{if(s.direction==="backward")throw new ok(e.constructor.name);const r=t.transform(i.value,i);if(s.async)return(r instanceof Promise?r:Promise.resolve(r)).then(d=>(i.value=d,i));if(r instanceof Promise)throw new jo;return i.value=r,i}});function Db(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Nk=J("$ZodOptional",(e,t)=>{kt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",et(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),et(e._zod,"pattern",()=>{const i=t.innerType._zod.pattern;return i?new RegExp(`^(${i0(i.source)})?$`):void 0}),e._zod.parse=(i,s)=>{if(t.innerType._zod.optin==="optional"){const r=t.innerType._zod.run(i,s);return r instanceof Promise?r.then(u=>Db(u,i.value)):Db(r,i.value)}return i.value===void 0?i:t.innerType._zod.run(i,s)}}),Q_=J("$ZodExactOptional",(e,t)=>{Nk.init(e,t),et(e._zod,"values",()=>t.innerType._zod.values),et(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(i,s)=>t.innerType._zod.run(i,s)}),Z_=J("$ZodNullable",(e,t)=>{kt.init(e,t),et(e._zod,"optin",()=>t.innerType._zod.optin),et(e._zod,"optout",()=>t.innerType._zod.optout),et(e._zod,"pattern",()=>{const i=t.innerType._zod.pattern;return i?new RegExp(`^(${i0(i.source)}|null)$`):void 0}),et(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(i,s)=>i.value===null?i:t.innerType._zod.run(i,s)}),F_=J("$ZodDefault",(e,t)=>{kt.init(e,t),e._zod.optin="optional",et(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(i,s)=>{if(s.direction==="backward")return t.innerType._zod.run(i,s);if(i.value===void 0)return i.value=t.defaultValue,i;const r=t.innerType._zod.run(i,s);return r instanceof Promise?r.then(u=>Ob(u,t)):Ob(r,t)}});function Ob(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Y_=J("$ZodPrefault",(e,t)=>{kt.init(e,t),e._zod.optin="optional",et(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(i,s)=>(s.direction==="backward"||i.value===void 0&&(i.value=t.defaultValue),t.innerType._zod.run(i,s))}),X_=J("$ZodNonOptional",(e,t)=>{kt.init(e,t),et(e._zod,"values",()=>{const i=t.innerType._zod.values;return i?new Set([...i].filter(s=>s!==void 0)):void 0}),e._zod.parse=(i,s)=>{const r=t.innerType._zod.run(i,s);return r instanceof Promise?r.then(u=>Rb(u,e)):Rb(r,e)}});function Rb(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const J_=J("$ZodCatch",(e,t)=>{kt.init(e,t),et(e._zod,"optin",()=>t.innerType._zod.optin),et(e._zod,"optout",()=>t.innerType._zod.optout),et(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(i,s)=>{if(s.direction==="backward")return t.innerType._zod.run(i,s);const r=t.innerType._zod.run(i,s);return r instanceof Promise?r.then(u=>(i.value=u.value,u.issues.length&&(i.value=t.catchValue({...i,error:{issues:u.issues.map(d=>Ri(d,s,Oi()))},input:i.value}),i.issues=[]),i)):(i.value=r.value,r.issues.length&&(i.value=t.catchValue({...i,error:{issues:r.issues.map(u=>Ri(u,s,Oi()))},input:i.value}),i.issues=[]),i)}}),W_=J("$ZodPipe",(e,t)=>{kt.init(e,t),et(e._zod,"values",()=>t.in._zod.values),et(e._zod,"optin",()=>t.in._zod.optin),et(e._zod,"optout",()=>t.out._zod.optout),et(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(i,s)=>{if(s.direction==="backward"){const u=t.out._zod.run(i,s);return u instanceof Promise?u.then(d=>tu(d,t.in,s)):tu(u,t.in,s)}const r=t.in._zod.run(i,s);return r instanceof Promise?r.then(u=>tu(u,t.out,s)):tu(r,t.out,s)}});function tu(e,t,i){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},i)}const e7=J("$ZodReadonly",(e,t)=>{kt.init(e,t),et(e._zod,"propValues",()=>t.innerType._zod.propValues),et(e._zod,"values",()=>t.innerType._zod.values),et(e._zod,"optin",()=>t.innerType?._zod?.optin),et(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(i,s)=>{if(s.direction==="backward")return t.innerType._zod.run(i,s);const r=t.innerType._zod.run(i,s);return r instanceof Promise?r.then(Mb):Mb(r)}});function Mb(e){return e.value=Object.freeze(e.value),e}const t7=J("$ZodCustom",(e,t)=>{Nn.init(e,t),kt.init(e,t),e._zod.parse=(i,s)=>i,e._zod.check=i=>{const s=i.value,r=t.fn(s);if(r instanceof Promise)return r.then(u=>Bb(u,i,s,e));Bb(r,i,s,e)}});function Bb(e,t,i,s){if(!e){const r={code:"custom",input:i,inst:s,path:[...s._zod.def.path??[]],continue:!s._zod.def.abort};s._zod.def.params&&(r.params=s._zod.def.params),t.issues.push(gl(r))}}var qb;class n7{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...i){const s=i[0];return this._map.set(t,s),s&&typeof s=="object"&&"id"in s&&this._idmap.set(s.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const i=this._map.get(t);return i&&typeof i=="object"&&"id"in i&&this._idmap.delete(i.id),this._map.delete(t),this}get(t){const i=t._zod.parent;if(i){const s={...this.get(i)??{}};delete s.id;const r={...s,...this._map.get(t)};return Object.keys(r).length?r:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function a7(){return new n7}(qb=globalThis).__zod_globalRegistry??(qb.__zod_globalRegistry=a7());const sl=globalThis.__zod_globalRegistry;function i7(e,t){return new e({type:"string",...je(t)})}function s7(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...je(t)})}function Ib(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...je(t)})}function o7(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...je(t)})}function r7(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...je(t)})}function l7(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...je(t)})}function c7(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...je(t)})}function u7(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...je(t)})}function d7(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...je(t)})}function m7(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...je(t)})}function p7(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...je(t)})}function f7(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...je(t)})}function h7(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...je(t)})}function g7(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...je(t)})}function y7(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...je(t)})}function b7(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...je(t)})}function v7(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...je(t)})}function k7(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...je(t)})}function w7(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...je(t)})}function x7(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...je(t)})}function S7(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...je(t)})}function j7(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...je(t)})}function A7(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...je(t)})}function N7(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...je(t)})}function _7(e,t){return new e({type:"string",format:"date",check:"string_format",...je(t)})}function C7(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...je(t)})}function z7(e,t){return new e({type:"string",format:"duration",check:"string_format",...je(t)})}function E7(e,t){return new e({type:"number",checks:[],...je(t)})}function T7(e,t){return new e({type:"number",coerce:!0,checks:[],...je(t)})}function D7(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...je(t)})}function O7(e,t){return new e({type:"boolean",...je(t)})}function R7(e,t){return new e({type:"null",...je(t)})}function M7(e){return new e({type:"unknown"})}function B7(e,t){return new e({type:"never",...je(t)})}function Lb(e,t){return new vk({check:"less_than",...je(t),value:e,inclusive:!1})}function Ip(e,t){return new vk({check:"less_than",...je(t),value:e,inclusive:!0})}function Pb(e,t){return new kk({check:"greater_than",...je(t),value:e,inclusive:!1})}function Lp(e,t){return new kk({check:"greater_than",...je(t),value:e,inclusive:!0})}function $b(e,t){return new Z8({check:"multiple_of",...je(t),value:e})}function _k(e,t){return new Y8({check:"max_length",...je(t),maximum:e})}function Su(e,t){return new X8({check:"min_length",...je(t),minimum:e})}function Ck(e,t){return new J8({check:"length_equals",...je(t),length:e})}function q7(e,t){return new W8({check:"string_format",format:"regex",...je(t),pattern:e})}function I7(e){return new e_({check:"string_format",format:"lowercase",...je(e)})}function L7(e){return new t_({check:"string_format",format:"uppercase",...je(e)})}function P7(e,t){return new n_({check:"string_format",format:"includes",...je(t),includes:e})}function $7(e,t){return new a_({check:"string_format",format:"starts_with",...je(t),prefix:e})}function U7(e,t){return new i_({check:"string_format",format:"ends_with",...je(t),suffix:e})}function Uo(e){return new s_({check:"overwrite",tx:e})}function V7(e){return Uo(t=>t.normalize(e))}function K7(){return Uo(e=>e.trim())}function G7(){return Uo(e=>e.toLowerCase())}function H7(){return Uo(e=>e.toUpperCase())}function Q7(){return Uo(e=>JN(e))}function Z7(e,t,i){return new e({type:"array",element:t,...je(i)})}function F7(e,t,i){return new e({type:"custom",check:"custom",fn:t,...je(i)})}function Y7(e){const t=X7(i=>(i.addIssue=s=>{if(typeof s=="string")i.issues.push(gl(s,i.value,t._zod.def));else{const r=s;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=i.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),i.issues.push(gl(r))}},e(i.value,i)));return t}function X7(e,t){const i=new Nn({check:"custom",...je(t)});return i._zod.check=e,i}function zk(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??sl,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function Pt(e,t,i={path:[],schemaPath:[]}){var s;const r=e._zod.def,u=t.seen.get(e);if(u)return u.count++,i.schemaPath.includes(e)&&(u.cycle=i.path),u.schema;const d={schema:{},count:1,cycle:void 0,path:i.path};t.seen.set(e,d);const g=e._zod.toJSONSchema?.();if(g)d.schema=g;else{const x={...i,schemaPath:[...i.schemaPath,e],path:i.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,d.schema,x);else{const j=d.schema,_=t.processors[r.type];if(!_)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${r.type}`);_(e,t,j,x)}const S=e._zod.parent;S&&(d.ref||(d.ref=S),Pt(S,t,x),t.seen.get(S).isParent=!0)}const b=t.metadataRegistry.get(e);return b&&Object.assign(d.schema,b),t.io==="input"&&cn(e)&&(delete d.schema.examples,delete d.schema.default),t.io==="input"&&d.schema._prefault&&((s=d.schema).default??(s.default=d.schema._prefault)),delete d.schema._prefault,t.seen.get(e).schema}function Ek(e,t){const i=e.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const s=new Map;for(const d of e.seen.entries()){const g=e.metadataRegistry.get(d[0])?.id;if(g){const b=s.get(g);if(b&&b!==d[0])throw new Error(`Duplicate schema id "${g}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);s.set(g,d[0])}}const r=d=>{const g=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const S=e.external.registry.get(d[0])?.id,j=e.external.uri??(T=>T);if(S)return{ref:j(S)};const _=d[1].defId??d[1].schema.id??`schema${e.counter++}`;return d[1].defId=_,{defId:_,ref:`${j("__shared")}#/${g}/${_}`}}if(d[1]===i)return{ref:"#"};const v=`#/${g}/`,x=d[1].schema.id??`__schema${e.counter++}`;return{defId:x,ref:v+x}},u=d=>{if(d[1].schema.$ref)return;const g=d[1],{ref:b,defId:v}=r(d);g.def={...g.schema},v&&(g.defId=v);const x=g.schema;for(const S in x)delete x[S];x.$ref=b};if(e.cycles==="throw")for(const d of e.seen.entries()){const g=d[1];if(g.cycle)throw new Error(`Cycle detected: #/${g.cycle?.join("/")}/<root>
|
|
51
51
|
|
|
52
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const d of e.seen.entries()){const g=d[1];if(t===d[0]){u(d);continue}if(e.external){const v=e.external.registry.get(d[0])?.id;if(t!==d[0]&&v){u(d);continue}}if(e.metadataRegistry.get(d[0])?.id){u(d);continue}if(g.cycle){u(d);continue}if(g.count>1&&e.reused==="ref"){u(d);continue}}}function Tk(e,t){const i=e.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const s=d=>{const g=e.seen.get(d);if(g.ref===null)return;const b=g.def??g.schema,v={...b},x=g.ref;if(g.ref=null,x){s(x);const j=e.seen.get(x),_=j.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(b.allOf=b.allOf??[],b.allOf.push(_)):Object.assign(b,_),Object.assign(b,v),d._zod.parent===x)for(const N in b)N==="$ref"||N==="allOf"||N in v||delete b[N];if(_.$ref&&j.def)for(const N in b)N==="$ref"||N==="allOf"||N in j.def&&JSON.stringify(b[N])===JSON.stringify(j.def[N])&&delete b[N]}const S=d._zod.parent;if(S&&S!==x){s(S);const j=e.seen.get(S);if(j?.schema.$ref&&(b.$ref=j.schema.$ref,j.def))for(const _ in b)_==="$ref"||_==="allOf"||_ in j.def&&JSON.stringify(b[_])===JSON.stringify(j.def[_])&&delete b[_]}e.override({zodSchema:d,jsonSchema:b,path:g.path??[]})};for(const d of[...e.seen.entries()].reverse())s(d[0]);const r={};if(e.target==="draft-2020-12"?r.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?r.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?r.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const d=e.external.registry.get(t)?.id;if(!d)throw new Error("Schema is missing an `id` property");r.$id=e.external.uri(d)}Object.assign(r,i.def??i.schema);const u=e.external?.defs??{};for(const d of e.seen.entries()){const g=d[1];g.def&&g.defId&&(u[g.defId]=g.def)}e.external||Object.keys(u).length>0&&(e.target==="draft-2020-12"?r.$defs=u:r.definitions=u);try{const d=JSON.parse(JSON.stringify(r));return Object.defineProperty(d,"~standard",{value:{...t["~standard"],jsonSchema:{input:ju(t,"input",e.processors),output:ju(t,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function cn(e,t){const i=t??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);const s=e._zod.def;if(s.type==="transform")return!0;if(s.type==="array")return cn(s.element,i);if(s.type==="set")return cn(s.valueType,i);if(s.type==="lazy")return cn(s.getter(),i);if(s.type==="promise"||s.type==="optional"||s.type==="nonoptional"||s.type==="nullable"||s.type==="readonly"||s.type==="default"||s.type==="prefault")return cn(s.innerType,i);if(s.type==="intersection")return cn(s.left,i)||cn(s.right,i);if(s.type==="record"||s.type==="map")return cn(s.keyType,i)||cn(s.valueType,i);if(s.type==="pipe")return cn(s.in,i)||cn(s.out,i);if(s.type==="object"){for(const r in s.shape)if(cn(s.shape[r],i))return!0;return!1}if(s.type==="union"){for(const r of s.options)if(cn(r,i))return!0;return!1}if(s.type==="tuple"){for(const r of s.items)if(cn(r,i))return!0;return!!(s.rest&&cn(s.rest,i))}return!1}const J7=(e,t={})=>i=>{const s=zk({...i,processors:t});return Pt(e,s),Ek(s,e),Tk(s,e)},ju=(e,t,i={})=>s=>{const{libraryOptions:r,target:u}=s??{},d=zk({...r??{},target:u,io:t,processors:i});return Pt(e,d),Ek(d,e),Tk(d,e)},W7={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},eC=(e,t,i,s)=>{const r=i;r.type="string";const{minimum:u,maximum:d,format:g,patterns:b,contentEncoding:v}=e._zod.bag;if(typeof u=="number"&&(r.minLength=u),typeof d=="number"&&(r.maxLength=d),g&&(r.format=W7[g]??g,r.format===""&&delete r.format,g==="time"&&delete r.format),v&&(r.contentEncoding=v),b&&b.size>0){const x=[...b];x.length===1?r.pattern=x[0].source:x.length>1&&(r.allOf=[...x.map(S=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:S.source}))])}},tC=(e,t,i,s)=>{const r=i,{minimum:u,maximum:d,format:g,multipleOf:b,exclusiveMaximum:v,exclusiveMinimum:x}=e._zod.bag;typeof g=="string"&&g.includes("int")?r.type="integer":r.type="number",typeof x=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.minimum=x,r.exclusiveMinimum=!0):r.exclusiveMinimum=x),typeof u=="number"&&(r.minimum=u,typeof x=="number"&&t.target!=="draft-04"&&(x>=u?delete r.minimum:delete r.exclusiveMinimum)),typeof v=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.maximum=v,r.exclusiveMaximum=!0):r.exclusiveMaximum=v),typeof d=="number"&&(r.maximum=d,typeof v=="number"&&t.target!=="draft-04"&&(v<=d?delete r.maximum:delete r.exclusiveMaximum)),typeof b=="number"&&(r.multipleOf=b)},nC=(e,t,i,s)=>{i.type="boolean"},aC=(e,t,i,s)=>{t.target==="openapi-3.0"?(i.type="string",i.nullable=!0,i.enum=[null]):i.type="null"},iC=(e,t,i,s)=>{i.not={}},sC=(e,t,i,s)=>{},oC=(e,t,i,s)=>{const r=e._zod.def,u=lk(r.entries);u.every(d=>typeof d=="number")&&(i.type="number"),u.every(d=>typeof d=="string")&&(i.type="string"),i.enum=u},rC=(e,t,i,s)=>{const r=e._zod.def,u=[];for(const d of r.values)if(d===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof d=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");u.push(Number(d))}else u.push(d);if(u.length!==0)if(u.length===1){const d=u[0];i.type=d===null?"null":typeof d,t.target==="draft-04"||t.target==="openapi-3.0"?i.enum=[d]:i.const=d}else u.every(d=>typeof d=="number")&&(i.type="number"),u.every(d=>typeof d=="string")&&(i.type="string"),u.every(d=>typeof d=="boolean")&&(i.type="boolean"),u.every(d=>d===null)&&(i.type="null"),i.enum=u},lC=(e,t,i,s)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},cC=(e,t,i,s)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},uC=(e,t,i,s)=>{const r=i,u=e._zod.def,{minimum:d,maximum:g}=e._zod.bag;typeof d=="number"&&(r.minItems=d),typeof g=="number"&&(r.maxItems=g),r.type="array",r.items=Pt(u.element,t,{...s,path:[...s.path,"items"]})},dC=(e,t,i,s)=>{const r=i,u=e._zod.def;r.type="object",r.properties={};const d=u.shape;for(const v in d)r.properties[v]=Pt(d[v],t,{...s,path:[...s.path,"properties",v]});const g=new Set(Object.keys(d)),b=new Set([...g].filter(v=>{const x=u.shape[v]._zod;return t.io==="input"?x.optin===void 0:x.optout===void 0}));b.size>0&&(r.required=Array.from(b)),u.catchall?._zod.def.type==="never"?r.additionalProperties=!1:u.catchall?u.catchall&&(r.additionalProperties=Pt(u.catchall,t,{...s,path:[...s.path,"additionalProperties"]})):t.io==="output"&&(r.additionalProperties=!1)},mC=(e,t,i,s)=>{const r=e._zod.def,u=r.inclusive===!1,d=r.options.map((g,b)=>Pt(g,t,{...s,path:[...s.path,u?"oneOf":"anyOf",b]}));u?i.oneOf=d:i.anyOf=d},pC=(e,t,i,s)=>{const r=e._zod.def,u=Pt(r.left,t,{...s,path:[...s.path,"allOf",0]}),d=Pt(r.right,t,{...s,path:[...s.path,"allOf",1]}),g=v=>"allOf"in v&&Object.keys(v).length===1,b=[...g(u)?u.allOf:[u],...g(d)?d.allOf:[d]];i.allOf=b},fC=(e,t,i,s)=>{const r=i,u=e._zod.def;r.type="object";const d=u.keyType,b=d._zod.bag?.patterns;if(u.mode==="loose"&&b&&b.size>0){const x=Pt(u.valueType,t,{...s,path:[...s.path,"patternProperties","*"]});r.patternProperties={};for(const S of b)r.patternProperties[S.source]=x}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(r.propertyNames=Pt(u.keyType,t,{...s,path:[...s.path,"propertyNames"]})),r.additionalProperties=Pt(u.valueType,t,{...s,path:[...s.path,"additionalProperties"]});const v=d._zod.values;if(v){const x=[...v].filter(S=>typeof S=="string"||typeof S=="number");x.length>0&&(r.required=x)}},hC=(e,t,i,s)=>{const r=e._zod.def,u=Pt(r.innerType,t,s),d=t.seen.get(e);t.target==="openapi-3.0"?(d.ref=r.innerType,i.nullable=!0):i.anyOf=[u,{type:"null"}]},gC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType},yC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType,i.default=JSON.parse(JSON.stringify(r.defaultValue))},bC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType,t.io==="input"&&(i._prefault=JSON.parse(JSON.stringify(r.defaultValue)))},vC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType;let d;try{d=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}i.default=d},kC=(e,t,i,s)=>{const r=e._zod.def,u=t.io==="input"?r.in._zod.def.type==="transform"?r.out:r.in:r.out;Pt(u,t,s);const d=t.seen.get(e);d.ref=u},wC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType,i.readOnly=!0},Dk=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType},xC=J("ZodISODateTime",(e,t)=>{v_.init(e,t),jt.init(e,t)});function Ok(e){return N7(xC,e)}const SC=J("ZodISODate",(e,t)=>{k_.init(e,t),jt.init(e,t)});function Rk(e){return _7(SC,e)}const jC=J("ZodISOTime",(e,t)=>{w_.init(e,t),jt.init(e,t)});function AC(e){return C7(jC,e)}const NC=J("ZodISODuration",(e,t)=>{x_.init(e,t),jt.init(e,t)});function _C(e){return z7(NC,e)}const CC=(e,t)=>{mk.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>d8(e,i)},flatten:{value:i=>u8(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,bf,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,bf,2)}},isEmpty:{get(){return e.issues.length===0}}})},Wn=J("ZodError",CC,{Parent:Error}),zC=o0(Wn),EC=r0(Wn),TC=$u(Wn),DC=Uu(Wn),OC=f8(Wn),RC=h8(Wn),MC=g8(Wn),BC=y8(Wn),qC=b8(Wn),IC=v8(Wn),LC=k8(Wn),PC=w8(Wn),xt=J("ZodType",(e,t)=>(kt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:ju(e,"input"),output:ju(e,"output")}}),e.toJSONSchema=J7(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...i)=>e.clone(Ii(t,{checks:[...t.checks??[],...i.map(s=>typeof s=="function"?{_zod:{check:s,def:{check:"custom"},onattach:[]}}:s)]}),{parent:!0}),e.with=e.check,e.clone=(i,s)=>Li(e,i,s),e.brand=()=>e,e.register=((i,s)=>(i.add(e,s),e)),e.parse=(i,s)=>zC(e,i,s,{callee:e.parse}),e.safeParse=(i,s)=>TC(e,i,s),e.parseAsync=async(i,s)=>EC(e,i,s,{callee:e.parseAsync}),e.safeParseAsync=async(i,s)=>DC(e,i,s),e.spa=e.safeParseAsync,e.encode=(i,s)=>OC(e,i,s),e.decode=(i,s)=>RC(e,i,s),e.encodeAsync=async(i,s)=>MC(e,i,s),e.decodeAsync=async(i,s)=>BC(e,i,s),e.safeEncode=(i,s)=>qC(e,i,s),e.safeDecode=(i,s)=>IC(e,i,s),e.safeEncodeAsync=async(i,s)=>LC(e,i,s),e.safeDecodeAsync=async(i,s)=>PC(e,i,s),e.refine=(i,s)=>e.check(O9(i,s)),e.superRefine=i=>e.check(R9(i)),e.overwrite=i=>e.check(Uo(i)),e.optional=()=>Kb(e),e.exactOptional=()=>k9(e),e.nullable=()=>Gb(e),e.nullish=()=>Kb(Gb(e)),e.nonoptional=i=>N9(e,i),e.array=()=>k(e),e.or=i=>Ge([e,i]),e.and=i=>h9(e,i),e.transform=i=>wf(e,qk(i)),e.default=i=>S9(e,i),e.prefault=i=>A9(e,i),e.catch=i=>C9(e,i),e.pipe=i=>wf(e,i),e.readonly=()=>T9(e),e.describe=i=>{const s=e.clone();return sl.add(s,{description:i}),s},Object.defineProperty(e,"description",{get(){return sl.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return sl.get(e);const s=e.clone();return sl.add(s,i[0]),s},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),Mk=J("_ZodString",(e,t)=>{l0.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(s,r,u)=>eC(e,s,r);const i=e._zod.bag;e.format=i.format??null,e.minLength=i.minimum??null,e.maxLength=i.maximum??null,e.regex=(...s)=>e.check(q7(...s)),e.includes=(...s)=>e.check(P7(...s)),e.startsWith=(...s)=>e.check($7(...s)),e.endsWith=(...s)=>e.check(U7(...s)),e.min=(...s)=>e.check(Su(...s)),e.max=(...s)=>e.check(_k(...s)),e.length=(...s)=>e.check(Ck(...s)),e.nonempty=(...s)=>e.check(Su(1,...s)),e.lowercase=s=>e.check(I7(s)),e.uppercase=s=>e.check(L7(s)),e.trim=()=>e.check(K7()),e.normalize=(...s)=>e.check(V7(...s)),e.toLowerCase=()=>e.check(G7()),e.toUpperCase=()=>e.check(H7()),e.slugify=()=>e.check(Q7())}),$C=J("ZodString",(e,t)=>{l0.init(e,t),Mk.init(e,t),e.email=i=>e.check(s7(UC,i)),e.url=i=>e.check(u7(VC,i)),e.jwt=i=>e.check(A7(i9,i)),e.emoji=i=>e.check(d7(KC,i)),e.guid=i=>e.check(Ib(Ub,i)),e.uuid=i=>e.check(o7(nu,i)),e.uuidv4=i=>e.check(r7(nu,i)),e.uuidv6=i=>e.check(l7(nu,i)),e.uuidv7=i=>e.check(c7(nu,i)),e.nanoid=i=>e.check(m7(GC,i)),e.guid=i=>e.check(Ib(Ub,i)),e.cuid=i=>e.check(p7(HC,i)),e.cuid2=i=>e.check(f7(QC,i)),e.ulid=i=>e.check(h7(ZC,i)),e.base64=i=>e.check(x7(t9,i)),e.base64url=i=>e.check(S7(n9,i)),e.xid=i=>e.check(g7(FC,i)),e.ksuid=i=>e.check(y7(YC,i)),e.ipv4=i=>e.check(b7(XC,i)),e.ipv6=i=>e.check(v7(JC,i)),e.cidrv4=i=>e.check(k7(WC,i)),e.cidrv6=i=>e.check(w7(e9,i)),e.e164=i=>e.check(j7(a9,i)),e.datetime=i=>e.check(Ok(i)),e.date=i=>e.check(Rk(i)),e.time=i=>e.check(AC(i)),e.duration=i=>e.check(_C(i))});function c(e){return i7($C,e)}const jt=J("ZodStringFormat",(e,t)=>{wt.init(e,t),Mk.init(e,t)}),UC=J("ZodEmail",(e,t)=>{u_.init(e,t),jt.init(e,t)}),Ub=J("ZodGUID",(e,t)=>{l_.init(e,t),jt.init(e,t)}),nu=J("ZodUUID",(e,t)=>{c_.init(e,t),jt.init(e,t)}),VC=J("ZodURL",(e,t)=>{d_.init(e,t),jt.init(e,t)}),KC=J("ZodEmoji",(e,t)=>{m_.init(e,t),jt.init(e,t)}),GC=J("ZodNanoID",(e,t)=>{p_.init(e,t),jt.init(e,t)}),HC=J("ZodCUID",(e,t)=>{f_.init(e,t),jt.init(e,t)}),QC=J("ZodCUID2",(e,t)=>{h_.init(e,t),jt.init(e,t)}),ZC=J("ZodULID",(e,t)=>{g_.init(e,t),jt.init(e,t)}),FC=J("ZodXID",(e,t)=>{y_.init(e,t),jt.init(e,t)}),YC=J("ZodKSUID",(e,t)=>{b_.init(e,t),jt.init(e,t)}),XC=J("ZodIPv4",(e,t)=>{S_.init(e,t),jt.init(e,t)}),JC=J("ZodIPv6",(e,t)=>{j_.init(e,t),jt.init(e,t)}),WC=J("ZodCIDRv4",(e,t)=>{A_.init(e,t),jt.init(e,t)}),e9=J("ZodCIDRv6",(e,t)=>{N_.init(e,t),jt.init(e,t)}),t9=J("ZodBase64",(e,t)=>{__.init(e,t),jt.init(e,t)}),n9=J("ZodBase64URL",(e,t)=>{z_.init(e,t),jt.init(e,t)}),a9=J("ZodE164",(e,t)=>{E_.init(e,t),jt.init(e,t)}),i9=J("ZodJWT",(e,t)=>{D_.init(e,t),jt.init(e,t)}),c0=J("ZodNumber",(e,t)=>{xk.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(s,r,u)=>tC(e,s,r),e.gt=(s,r)=>e.check(Pb(s,r)),e.gte=(s,r)=>e.check(Lp(s,r)),e.min=(s,r)=>e.check(Lp(s,r)),e.lt=(s,r)=>e.check(Lb(s,r)),e.lte=(s,r)=>e.check(Ip(s,r)),e.max=(s,r)=>e.check(Ip(s,r)),e.int=s=>e.check(Vb(s)),e.safe=s=>e.check(Vb(s)),e.positive=s=>e.check(Pb(0,s)),e.nonnegative=s=>e.check(Lp(0,s)),e.negative=s=>e.check(Lb(0,s)),e.nonpositive=s=>e.check(Ip(0,s)),e.multipleOf=(s,r)=>e.check($b(s,r)),e.step=(s,r)=>e.check($b(s,r)),e.finite=()=>e;const i=e._zod.bag;e.minValue=Math.max(i.minimum??Number.NEGATIVE_INFINITY,i.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(i.maximum??Number.POSITIVE_INFINITY,i.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(i.format??"").includes("int")||Number.isSafeInteger(i.multipleOf??.5),e.isFinite=!0,e.format=i.format??null});function h(e){return E7(c0,e)}const s9=J("ZodNumberFormat",(e,t)=>{O_.init(e,t),c0.init(e,t)});function Vb(e){return D7(s9,e)}const o9=J("ZodBoolean",(e,t)=>{R_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>nC(e,i,s)});function P(e){return O7(o9,e)}const r9=J("ZodNull",(e,t)=>{M_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>aC(e,i,s)});function he(e){return R7(r9,e)}const l9=J("ZodUnknown",(e,t)=>{B_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>sC()});function Xn(){return M7(l9)}const c9=J("ZodNever",(e,t)=>{q_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>iC(e,i,s)});function u9(e){return B7(c9,e)}const d9=J("ZodArray",(e,t)=>{I_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>uC(e,i,s,r),e.element=t.element,e.min=(i,s)=>e.check(Su(i,s)),e.nonempty=i=>e.check(Su(1,i)),e.max=(i,s)=>e.check(_k(i,s)),e.length=(i,s)=>e.check(Ck(i,s)),e.unwrap=()=>e.element});function k(e,t){return Z7(d9,e,t)}const m9=J("ZodObject",(e,t)=>{P_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>dC(e,i,s,r),et(e,"shape",()=>t.shape),e.keyof=()=>E(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Xn()}),e.loose=()=>e.clone({...e._zod.def,catchall:Xn()}),e.strict=()=>e.clone({...e._zod.def,catchall:u9()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>s8(e,i),e.safeExtend=i=>o8(e,i),e.merge=i=>r8(e,i),e.pick=i=>a8(e,i),e.omit=i=>i8(e,i),e.partial=(...i)=>l8(Ik,e,i[0]),e.required=(...i)=>c8(Lk,e,i[0])});function y(e,t){const i={type:"object",shape:e??{},...je(t)};return new m9(i)}const Bk=J("ZodUnion",(e,t)=>{Ak.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>mC(e,i,s,r),e.options=t.options});function Ge(e,t){return new Bk({type:"union",options:e,...je(t)})}const p9=J("ZodDiscriminatedUnion",(e,t)=>{Bk.init(e,t),$_.init(e,t)});function gt(e,t,i){return new p9({type:"union",options:t,discriminator:e,...je(i)})}const f9=J("ZodIntersection",(e,t)=>{U_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>pC(e,i,s,r)});function h9(e,t){return new f9({type:"intersection",left:e,right:t})}const g9=J("ZodRecord",(e,t)=>{V_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>fC(e,i,s,r),e.keyType=t.keyType,e.valueType=t.valueType});function Le(e,t,i){return new g9({type:"record",keyType:e,valueType:t,...je(i)})}const kf=J("ZodEnum",(e,t)=>{K_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(s,r,u)=>oC(e,s,r),e.enum=t.entries,e.options=Object.values(t.entries);const i=new Set(Object.keys(t.entries));e.extract=(s,r)=>{const u={};for(const d of s)if(i.has(d))u[d]=t.entries[d];else throw new Error(`Key ${d} not found in enum`);return new kf({...t,checks:[],...je(r),entries:u})},e.exclude=(s,r)=>{const u={...t.entries};for(const d of s)if(i.has(d))delete u[d];else throw new Error(`Key ${d} not found in enum`);return new kf({...t,checks:[],...je(r),entries:u})}});function E(e,t){const i=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new kf({type:"enum",entries:i,...je(t)})}const y9=J("ZodLiteral",(e,t)=>{G_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>rC(e,i,s),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ae(e,t){return new y9({type:"literal",values:Array.isArray(e)?e:[e],...je(t)})}const b9=J("ZodTransform",(e,t)=>{H_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>cC(e,i),e._zod.parse=(i,s)=>{if(s.direction==="backward")throw new ok(e.constructor.name);i.addIssue=u=>{if(typeof u=="string")i.issues.push(gl(u,i.value,t));else{const d=u;d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=i.value),d.inst??(d.inst=e),i.issues.push(gl(d))}};const r=t.transform(i.value,i);return r instanceof Promise?r.then(u=>(i.value=u,i)):(i.value=r,i)}});function qk(e){return new b9({type:"transform",transform:e})}const Ik=J("ZodOptional",(e,t)=>{Nk.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>Dk(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function Kb(e){return new Ik({type:"optional",innerType:e})}const v9=J("ZodExactOptional",(e,t)=>{Q_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>Dk(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function k9(e){return new v9({type:"optional",innerType:e})}const w9=J("ZodNullable",(e,t)=>{Z_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>hC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function Gb(e){return new w9({type:"nullable",innerType:e})}const x9=J("ZodDefault",(e,t)=>{F_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>yC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function S9(e,t){return new x9({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():uk(t)}})}const j9=J("ZodPrefault",(e,t)=>{Y_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>bC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function A9(e,t){return new j9({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():uk(t)}})}const Lk=J("ZodNonOptional",(e,t)=>{X_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>gC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function N9(e,t){return new Lk({type:"nonoptional",innerType:e,...je(t)})}const _9=J("ZodCatch",(e,t)=>{J_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>vC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function C9(e,t){return new _9({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const z9=J("ZodPipe",(e,t)=>{W_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>kC(e,i,s,r),e.in=t.in,e.out=t.out});function wf(e,t){return new z9({type:"pipe",in:e,out:t})}const E9=J("ZodReadonly",(e,t)=>{e7.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>wC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function T9(e){return new E9({type:"readonly",innerType:e})}const D9=J("ZodCustom",(e,t)=>{t7.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>lC(e,i)});function O9(e,t={}){return F7(D9,e,t)}function R9(e){return Y7(e)}function M9(e,t){return wf(qk(e),t)}const ht={custom:"custom"};function Pk(e){return T7(c0,e)}const $k=y({id:c(),name:c(),keyPrefix:c(),scopes:k(c()),projectId:c().nullable(),projectName:c().nullable(),readOnly:P(),createdAt:c(),lastUsedAt:c().nullable(),revokedAt:c().nullable()});y({keys:k($k)});y({name:c().min(1).max(100),scopes:k(c()).min(1).optional(),projectId:c().optional()});$k.extend({key:c()});const B9=y({maxConcurrency:h().int().positive(),maxRequestsPerMinute:h().int().positive(),maxRequestsPerDay:h().int().positive()}),dt=c().min(1),u0=Le(c(),c().trim().min(1));c().min(1);const gn=y({label:c().min(1),city:c().min(1),region:c().min(1),country:c().length(2),timezone:c().optional()}),d0=E(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high","health.degraded","health.recovered"]);y({id:c(),projectId:c(),channel:ae("webhook"),url:c().url(),urlDisplay:c(),urlHost:c(),events:k(d0),enabled:P().default(!0),source:c().optional(),webhookSecret:c().optional(),createdAt:c(),updatedAt:c()});y({channel:ae("webhook"),url:c().url(),events:k(d0).min(1),source:c().optional()});function Pp(e,t=!1){const i=new Set,s=[];for(const r of e){const u=t?r.toLowerCase():r;i.has(u)||(i.add(u),s.push(r))}return s}function Hb(e){try{const t=e.includes("://"),i=new URL(t?e:`https://${e}`);if(!t&&(i.pathname!=="/"||i.search||i.hash)||i.username||i.password||i.port)return null;const s=i.hostname.trim().toLowerCase().replace(/^www\./,"");return!s||s.includes("/")||s.includes("?")||s.includes("#")?null:s}catch{return null}}const q9=c().trim().min(1).refine(e=>Hb(e)!==null,{message:"Marketing hosts must be valid hostnames without credentials or ports"}).overwrite(e=>Hb(e)??e),I9=c().trim().min(1),L9=c().trim().regex(/^[a-z]\w{0,39}$/i,{message:"GA4 event names must start with a letter and contain only letters, numbers, or underscores"}),m0=y({marketingHosts:k(q9).overwrite(e=>Pp(e,!0)),brandTerms:k(I9).overwrite(e=>Pp(e,!0)),leadEventNames:k(L9).overwrite(e=>Pp(e))});function P9(){return{marketingHosts:[],brandTerms:[],leadEventNames:["generate_lead"]}}const $p=Object.freeze({marketingHosts:Object.freeze([]),brandTerms:Object.freeze([]),leadEventNames:Object.freeze(["generate_lead"])}),Uk=()=>P9(),Qb=E(["never-synced","ready","error"]),$9=E(["landing-page","channel"]),U9=E(["30d","60d","90d"]),V9=E(["marketing","all"]),rl=Rk(),Sl=y({label:E(["earliest","middle","previous","latest"]),startDate:rl,endDate:rl}),Up=Sl.extend({sessions:h().int().nonnegative()}),Zb=Sl.extend({eventCount:h().int().nonnegative()}),Fb=Sl.extend({clicks:h().int().nonnegative(),impressions:h().int().nonnegative()}),K9=Sl.extend({propertyClicks:h().int().nonnegative(),propertyImpressions:h().int().nonnegative(),reportedQueryClicks:h().int().nonnegative(),reportedQueryImpressions:h().int().nonnegative(),brandedClicks:h().int().nonnegative(),brandedImpressions:h().int().nonnegative(),nonBrandedClicks:h().int().nonnegative(),nonBrandedImpressions:h().int().nonnegative(),unreportedClicks:h().int().nonnegative(),unreportedImpressions:h().int().nonnegative()}),G9=Sl.extend({sessions:h().int().nonnegative(),engagementRate:h().min(0).max(1).nullable(),dailyTotalUsers:h().int().nonnegative().nullable(),dailyNewUsers:h().int().nonnegative().nullable(),metricsAvailable:P(),daysInPeriod:h().int().nonnegative(),daysWithEngagementRate:h().int().nonnegative(),daysWithUserSplit:h().int().nonnegative()}),H9=y({window:U9,bucketDays:ae(30),filters:y({hostScope:V9,marketingHosts:k(c()),pathPrefix:c().nullable(),brandTerms:k(c()),queryMixScope:ae("property")}),acquisition:y({status:Qb,error:c().nullable(),syncedAt:c().datetime().nullable(),periods:k(Up),channels:k(y({channelGroup:c(),periods:k(Up)})),pages:k(y({hostName:c(),landingPage:c(),periods:k(Up)}))}),leads:y({status:Qb,error:c().nullable(),syncedAt:c().datetime().nullable(),attributionScope:$9.nullable(),hostAndPathFiltersApplied:P(),periods:k(Zb),channels:k(y({channelGroup:c(),periods:k(Zb)}))}),engagement:y({status:E(["ready","unavailable"]),availableFromDate:rl.nullable(),latestDate:rl.nullable(),periods:k(G9)}),searchDemand:y({status:E(["ready","unavailable"]),periods:k(K9),queries:k(y({query:c(),classification:E(["branded","non-branded"]),periods:k(Fb)})),pages:k(y({hostName:c(),landingPage:c(),periods:k(Fb)})),latestDate:rl.nullable()})}),Q9=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Z9=/[\0-\x1F\x7F-\x9F]/,F9=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,Y9=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var X9=class{src_Any=Q9.source;src_Cc=Z9.source;src_Z=Y9.source;src_P=F9.source;src_ZPCc=[this.src_Z,this.src_P,this.src_Cc].join("|");src_ZCc=[this.src_Z,this.src_Cc].join("|");cache={};opts={maxLength:1e4,urlAuth:!1,schema_names:[]};constructor(e={}){this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,t,i=4){const s=this.escapeRE(e),r=this.escapeRE(t),u=`(?:(?!${this.src_ZCc}|${s}|${r}).)`;let d=`${s}${u}{0,1000}${r}`;for(let g=2;g<=i;g++)d=`${s}(?:${u}|${d}){0,1000}${r}`;return d}get_text_separators(){return this.cache.text_separators??=/[><\uff5c]/}get_pseudo_letter(){return this.cache.src_pseudo_letter??=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`)}get_ipv4_addr(){return this.cache.src_ip4??=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])")}get_ipv6_addr(){const e="[0-9A-Fa-f]{1,4}",t=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return this.cache.src_ip6_addr??=new RegExp(`(?:(?:${e}:){6}${t}|::(?:${e}:){5}${t}|(?:${e})?::(?:${e}:){4}${t}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${t}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${t}|(?:(?:${e}:){0,3}${e})?::${e}:${t}|(?:(?:${e}:){0,4}${e})?::${t}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`)}get_ipv6_url_host(){return this.cache.src_ip6_host??=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`)}get_ipv6_mail_host(){return this.cache.src_ipv6_mail_host??=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`)}get_auth(){return this.cache.src_auth??=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`)}get_port(){return this.cache.src_port??=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?")}get_host_terminator(){return this.cache.src_host_terminator??=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`)}get_path_terminator(){return this.cache.src_path_terminator??=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`)}get_path(){return this.cache.src_path??=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`)}get_mail_name(){return this.cache.src_mail_name??=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}")}get_xn(){return this.cache.src_xn??=new RegExp("xn--[a-z0-9\\-]{1,59}")}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){return this.cache.src_domain_root??=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`)}get_domain(){return this.cache.src_domain??=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`)}get_url_host_port(){return this.cache.url_host_port??=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source)}get_fuzzy_url_host_port(){return this.cache.fuzzy_url_host_port??=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source)}get_mail_host(){return this.cache.src_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source)}get_fuzzy_mail_host(){return this.cache.src_fuzzy_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source)}get_path_extra(){return this.cache.src_path_extra??=new RegExp("")}get_fuzzy_mail_host_search(){return this.cache.mail_fuzzy_host_search??=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig")}get_fuzzy_link_search(){return this.cache.link_fuzzy_search??=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig")}get_http_validator(){return this.cache.http_validator??=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy")}get_relative_proto_validator(){return this.cache.relative_proto_validator??=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy")}get_mail_name_validator(){return this.cache.mail_name_validator??=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`)}get_mailto_validator(){return this.cache.mailto_validator??=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy")}get_schema_names(){return this.cache.schema_names??=new RegExp((this.opts.schema_names||[]).map(e=>this.escapeRE(e)).join("|"))}get_schema_search(){return this.cache.schema_search??=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig")}get_schema_at_start(){return this.cache.schema_at_start??=new RegExp(`^${this.get_schema_search().source}`,"i")}},Vp={validate:(e,t,i)=>{const s=i.re.get_http_validator();s.lastIndex=t;const r=s.exec(e);return r?r[0].length:0},normalize:(e,t)=>t.normalize(e)},J9={"http:":Vp,"https:":Vp,"ftp:":Vp,"//":{validate:function(e,t,i){const s=i.re.get_relative_proto_validator();s.lastIndex=t;const r=s.exec(e);return r?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r[0].length:0},normalize:(e,t)=>t.normalize(e)},"mailto:":{validate:function(e,t,i){const s=i.re.get_mailto_validator();s.lastIndex=t;const r=s.exec(e);return r?r[0].length:0},normalize:(e,t)=>t.normalize(e)}},W9="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",ez="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function tz(){const e=ez.split("|");return W9.split("|").forEach(t=>{const i=t.indexOf(":"),s=t.slice(0,i);for(const r of t.slice(i+1))e.push(s+r)}),e}var nz={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:tz(),urlAuth:!1,maxLength:1e4},Yb=class{schema;index;lastIndex;raw;text;url;constructor(e,t,i,s){const r=e.slice(i,s);this.schema=t.toLowerCase(),this.index=i,this.lastIndex=s,this.raw=r,this.text=r,this.url=r}},az=class{__opts__;__schemas__;re;constructor(e={}){const{rebuilder:t,...i}=e;this.__opts__={...nz,...i},this.__schemas__={...J9},this.re=t||new X9,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,t=null){if(!t)delete this.__schemas__[e];else{const i={normalize:(s,r)=>r.normalize(s),...t};this.__schemas__[e]=i}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let t,i;for(i=this.re.get_schema_search(),i.lastIndex=0;(t=i.exec(e))!==null;)if(this.testSchemaAt(e,t[2],i.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(i=this.re.get_fuzzy_link_search(),i.lastIndex=0,i.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const s=this.re.get_fuzzy_mail_host_search(),r=this.re.get_mail_name_validator();for(s.lastIndex=0;(t=s.exec(e))!==null;){const u=e.slice(Math.max(0,t.index-65),t.index);if(r.test(u))return!0}}return!1}testSchemaAt(e,t,i){return this.__schemas__[t.toLowerCase()]?this.__schemas__[t.toLowerCase()].validate(e.slice(0,i+this.__opts__.maxLength),i,this):0}match(e){const t=[],i=this.re.get_schema_search();let s,r,u,d,g,b,v=!1,x=!1,S=!1,j=0;if(!e.length)return null;for(i.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(s=this.re.get_fuzzy_link_search(),s.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(r=this.re.get_fuzzy_mail_host_search(),r.lastIndex=0,u=this.re.get_mail_name_validator());;){const _=Math.max(j-1,0);if(r&&u&&!S&&(!g||g.index<j))for(r.lastIndex<_&&(r.lastIndex=_);;){const I=r.exec(e);if(!I){S=!0,g=void 0;break}const $=u.exec(e.slice(Math.max(0,I.index-65),I.index));if($){if(g={schema:"mailto:",index:I.index-$[1].length,lastIndex:I.index+I[0].length},g.index>=j)break;r.lastIndex<_&&(r.lastIndex=_)}}if(s&&!x&&(!d||d.index<j))for(s.lastIndex<_&&(s.lastIndex=_);;){const I=s.exec(e);if(!I){x=!0,d=void 0;break}if(d={schema:"",index:I.index+I[1].length,lastIndex:I.index+I[0].length},d.index>=j)break;s.lastIndex<_&&(s.lastIndex=_)}let T=g;(!T||d&&(d.index<T.index||d.index===T.index&&d.lastIndex>T.lastIndex))&&(T=d);let N;if(!v)for(;;){if(!b){i.lastIndex<_&&(i.lastIndex=_);const K=i.exec(e);if(!K){v=!0;break}b={schema:K[2],index:K.index+K[1].length,lastIndex:K.index+K[0].length}}if(b.index<j){b=void 0;continue}if(T&&b.index>T.index)break;const I=b;b=void 0;const $=this.testSchemaAt(e,I.schema,I.lastIndex);if($){N={schema:I.schema,index:I.index,lastIndex:I.lastIndex+$};break}}let C=N;if((!C||g&&(g.index<C.index||g.index===C.index&&g.lastIndex>C.lastIndex))&&(C=g),(!C||d&&(d.index<C.index||d.index===C.index&&d.lastIndex>C.lastIndex))&&(C=d),!C)break;C===g?g=void 0:C===d&&(d=void 0);const O=new Yb(e,C.schema,C.index,C.lastIndex);O.schema?this.__schemas__[O.schema].normalize(O,this):this.normalize(O),t.push(O),j=C.lastIndex}return t.length?t:null}matchAtStart(e){if(!e.length)return null;const t=this.re.get_schema_at_start().exec(e);if(!t)return null;const i=this.testSchemaAt(e,t[2],t[0].length);if(!i)return null;const s=new Yb(e,t[2],t.index+t[1].length,t.index+t[0].length+i);return this.__schemas__[s.schema].normalize(s,this),s}tlds(e,t=!1){return e=Array.isArray(e)?e:[e],t?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}};const iz=JSON.parse('["aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mv","mw","mx","my","mz","na","nab","nagoya","name","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","vermögensberater","vermögensberatung","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volvo","vote","voting","voto","voyage","vu","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xihuan","xin","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw","ελ","ευ","бг","бел","дети","ею","католик","ком","мкд","мон","москва","онлайн","орг","рус","рф","сайт","срб","укр","қаз","հայ","ישראל","קום","ابوظبي","ارامكو","الاردن","البحرين","الجزائر","السعودية","العليان","المغرب","امارات","ایران","بارت","بازار","بيتك","بھارت","تونس","سودان","سورية","شبكة","عراق","عرب","عمان","فلسطين","قطر","كاثوليك","كوم","مصر","مليسيا","موريتانيا","موقع","همراه","پاکستان","ڀارت","कॉम","नेट","भारत","भारतम्","भारोत","संगठन","বাংলা","ভারত","ভাৰত","ਭਾਰਤ","ભારત","ଭାରତ","இந்தியா","இலங்கை","சிங்கப்பூர்","భారత్","ಭಾರತ","ഭാരതം","ලංකා","คอม","ไทย","ລາວ","გე","みんな","アマゾン","クラウド","グーグル","コム","ストア","セール","ファッション","ポイント","世界","中信","中国","中國","中文网","亚马逊","企业","佛山","信息","健康","八卦","公司","公益","台湾","台灣","商城","商店","商标","嘉里","嘉里大酒店","在线","大拿","天主教","娱乐","家電","广东","微博","慈善","我爱你","手机","招聘","政务","政府","新加坡","新闻","时尚","書籍","机构","淡马锡","游戏","澳門","点看","移动","组织机构","网址","网店","网站","网络","联通","谷歌","购物","通販","集团","電訊盈科","飞利浦","食品","餐厅","香格里拉","香港","닷넷","닷컴","삼성","한국"]');function sz(e,t){return e.endsWith(t)?e.length===t.length||e[e.length-t.length-1]===".":!1}function oz(e,t){const i=e.length-t.length-2,s=e.lastIndexOf(".",i);return s===-1?e:e.slice(s+1)}function rz(e,t,i){if(i.validHosts!==null){const r=i.validHosts;for(const u of r)if(sz(t,u))return u}let s=0;if(t.startsWith("."))for(;s<t.length&&t[s]===".";)s+=1;return e.length===t.length-s?null:oz(t,e)}function lz(e,t){return e.slice(0,-t.length-1)}const Kp=/[\t\n\r]/g;let xf=!1;function Xb(e){return e>=97&&e<=122||e>=48&&e<=57||e>127||e>=65&&e<=90||e===45||e===95}function Jb(e,t,i){const s=i-t,r=e.charCodeAt(t)|32;if(s===2)return r===119&&(e.charCodeAt(t+1)|32)===115?1:0;if(s===3){const u=e.charCodeAt(t+1)|32,d=e.charCodeAt(t+2)|32;return r===119&&u===115&&d===115||r===102&&u===116&&d===112?1:0}else if(s===4){const u=e.charCodeAt(t+1)|32,d=e.charCodeAt(t+2)|32,g=e.charCodeAt(t+3)|32;return r===104&&u===116&&d===116&&g===112?1:r===102&&u===105&&d===108&&g===101?2:0}else if(s===5)return r===104&&(e.charCodeAt(t+1)|32)===116&&(e.charCodeAt(t+2)|32)===116&&(e.charCodeAt(t+3)|32)===112&&(e.charCodeAt(t+4)|32)===115?1:0;return 0}function ll(e,t,i=!1){let s=0,r=e.length,u=!1,d=!1;if(xf=!1,!t){if(e.startsWith("data:"))return null;for(;s<e.length&&e.charCodeAt(s)<=32;)s+=1;for(;r>s+1&&e.charCodeAt(r-1)<=32;)r-=1;if(e.charCodeAt(s)===47&&e.charCodeAt(s+1)===47)s+=2;else{const C=e.indexOf(":/",s);if(C!==-1){const O=Jb(e,s,C);if(O===1)for(d=!0,s=C+2;e.charCodeAt(s)===47||e.charCodeAt(s)===92;)s+=1;else if(O===2){d=!0,s=C+1;let I=0;for(;(e.charCodeAt(s)===47||e.charCodeAt(s)===92)&&I<2;)s+=1,I+=1;if(I<2)return null}else{for(let I=s;I<C;I+=1){const $=e.charCodeAt(I)|32;if(!($>=97&&$<=122||$>=48&&$<=57||$===46||$===45||$===43)){const K=e.charCodeAt(I);return K===9||K===10||K===13?ll(e.replace(Kp,""),t,i):null}}if(e.charCodeAt(C+2)===47)s=C+3;else return null}}else if(e.charCodeAt(s)!==91){let O=-1;for(let I=s;I<r;I+=1){const $=e.charCodeAt(I);if($===9||$===10||$===13)return ll(e.replace(Kp,""),t,i);if($===58){O=I;break}if($===47||$===92||$===63||$===35)break}if(O!==-1){let I=!1;for(let $=O+1;$<r;$+=1){const K=e.charCodeAt($);if(K===47||K===92||K===63||K===35)break;if(K===64){I=!0;break}}if(!I){let $=!0,K=O+1;for(;K<r;K+=1){const Z=e.charCodeAt(K);if(Z===47||Z===92||Z===63||Z===35)break;if(Z<48||Z>57){$=!1;break}}if(K===O+1&&($=!1),!$){const Z=Jb(e,s,O);if(Z===0){let se=!1;for(let R=O+1;R<r;R+=1){const q=e.charCodeAt(R);if(q===47||q===92||q===63||q===35)break;if(q===58){se=!0;break}}if(!se)return null}else if(d=!0,s=O+1,Z===2){let se=0;for(;(e.charCodeAt(s)===47||e.charCodeAt(s)===92)&&se<2;)s+=1,se+=1;if(se<2)return null}else for(;e.charCodeAt(s)===47||e.charCodeAt(s)===92;)s+=1}}}}}let b=-1,v=-1,x=-1,S=-1,j=!1,_=i,T=s-1,N=-1;if(i&&s<r){const C=e.charCodeAt(s);(!(Xb(C)||C===46||C===95)||C===45)&&(_=!1)}for(let C=s;C<r;C+=1){const O=e.charCodeAt(C);if(O<64)if(O===47||O===35||O===63){r=C;break}else O===58?(S===-1&&(S=C),x=C):O===9||O===10||O===13?j=!0:i&&(O===46?((C-T>64||N===46||N===45)&&(_=!1),T=C):(O<48||O>57)&&(O!==45||N===46)&&(_=!1));else if(d&&O===92){r=C;break}else O===64?(b=C,S=-1):O===93?v=C:O>=65&&O<=90?u=!0:i&&!Xb(O)&&(_=!1);i&&(N=O)}if(j)return ll(e.replace(Kp,""),t,i);if(b!==-1&&b>=s&&b<r&&(s=b+1),e.charCodeAt(s)===91)return v!==-1?e.slice(s+1,v).toLowerCase():null;if(x!==-1&&x>s&&x<r&&S===x&&(r=x),s>=r)return null;i&&_&&b===-1&&x===-1&&v===-1&&e.charCodeAt(r-1)!==46&&r-s<=255&&r-T-1<=63&&N!==45&&(xf=!0)}for(;r>s+1&&e.charCodeAt(r-1)===46;)r-=1;const g=s!==0||r!==e.length?e.slice(s,r):e;return u?g.toLowerCase():g}function cz(e){if(e.length<7||e.length>15)return!1;let t=0;for(let i=0;i<e.length;i+=1){const s=e.charCodeAt(i);if(s===46)t+=1;else if(s<48||s>57)return!1}return t===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function uz(e){if(e.length<3)return!1;let t=e.startsWith("[")?1:0,i=e.length;if(e[i-1]==="]"&&(i-=1),i-t>39)return!1;let s=!1;for(;t<i;t+=1){const r=e.charCodeAt(t);if(r===58)s=!0;else if(!(r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70))return!1}return s}function dz(e){return uz(e)||cz(e)}const mz=["test","localhost","invalid","example","example.com","example.net","example.org","local","onion","alt","home.arpa","ipv4only.arpa","resolver.arpa","service.arpa","6tisch.arpa","eap.arpa"];function pz(e){for(const t of mz)if(e.endsWith(t)&&(e.length===t.length||e.charCodeAt(e.length-t.length-1)===46))return!0;return!1}function Wb(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function ev(e){if(e.length>255||e.length===0||!Wb(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let t=-1,i=-1;const s=e.length;for(let r=0;r<s;r+=1){const u=e.charCodeAt(r);if(u===46){if(r-t>64||i===46||i===45)return!1;t=r}else if(!(Wb(u)||u===45||u===95)||u===45&&i===46)return!1;i=u}return s-t-1<=63&&i!==45}function Vk({allowIcannDomains:e=!0,allowPrivateDomains:t=!1,detectIp:i=!0,detectSpecialUse:s=!1,extractHostname:r=!0,mixedInputs:u=!0,validHosts:d=null,validateHostname:g=!0}){return{allowIcannDomains:e,allowPrivateDomains:t,detectIp:i,detectSpecialUse:s,extractHostname:r,mixedInputs:u,validHosts:d,validateHostname:g}}const fz=Vk({});function hz(e){return e===void 0?fz:Vk(e)}function gz(e,t){return t.length===e.length?"":e.slice(0,-t.length-1)}function yz(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null}}function Kk(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.isSpecialUse=null,e.publicSuffix=null,e.subdomain=null}function Gk(e,t,i,s,r){const u=hz(s);if(typeof e!="string")return r;let d=!1;return u.extractHostname?u.mixedInputs?(d=ev(e),r.hostname=ll(e,d,u.validateHostname)):r.hostname=ll(e,!1,u.validateHostname):r.hostname=e,u.detectIp&&r.hostname!==null&&(r.isIp=dz(r.hostname),r.isIp)?r:u.validateHostname&&u.extractHostname&&r.hostname!==null&&!(d&&r.hostname===e)&&!xf&&!ev(r.hostname)?(r.hostname=null,r):(t===0||r.hostname===null||(t===5&&u.detectSpecialUse&&(r.isSpecialUse=pz(r.hostname)),i(r.hostname,u,r),t===2||r.publicSuffix===null)||(r.domain=rz(r.publicSuffix,r.hostname,u),t===3||r.domain===null)||(r.subdomain=gz(r.hostname,r.domain),t===4)||(r.domainWithoutSuffix=lz(r.domain,r.publicSuffix)),r)}function bz(e,t,i){if(!t.allowPrivateDomains&&e.length>3){const s=e.length-1,r=e.charCodeAt(s),u=e.charCodeAt(s-1),d=e.charCodeAt(s-2),g=e.charCodeAt(s-3);if(r===109&&u===111&&d===99&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="com",!0;if(r===103&&u===114&&d===111&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="org",!0;if(r===117&&u===100&&d===101&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="edu",!0;if(r===118&&u===111&&d===103&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="gov",!0;if(r===116&&u===101&&d===110&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="net",!0;if(r===101&&u===100&&d===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="de",!0}return!1}const gs=new Uint8Array([1,2,1,1,1,1,1,1,1,1,1,1,0,2,2,2,0,2,2,0,2,0,0,1,0,0,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,2,0,0,0,0,0,0,0,2,0,2,2,0,0,2,2,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,2,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,2,2,0,0,0,2,0,1,1,0,2,0,2,2,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,2,2,0,2,2,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,2,0,2,2,2,2,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,2,2,1,1,1,1,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,2,2,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,1,2,1,1,1,2,1,1,1,1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0]),Au=new Uint16Array([0,0,0,10,11,18,106,111,117,124,130,136,145,146,147,148,149,150,151,153,154,155,157,159,226,239,241,242,243,258,265,266,269,270,271,274,276,295,296,298,307,312,313,331,332,335,337,338,340,374,375,377,380,381,385,387,391,394,426,429,442,443,451,452,454,464,478,479,480,489,490,527,532,548,568,574,615,616,643,670,671,819,825,828,829,830,835,840,849,871,872,873,874,875,876,877,895,897,898,901,903,904,906,908,923,938,943,944,946,947,948,949,950,952,955,960,961,962,964,965,968,971,972,973,986,988,1e3,1011,1019,1021,1061,1064,1068,1069,1071,1074,1085,1087,1097,1099,1105,1107,1108,1110,1113,1114,1115,1167,1169,1171,1191,1192,1193,1194,1196,1207,1238,1249,1261,1270,1277,1282,1295,1306,1319,1320,1331,1365,1366,1367,1382,1397,1469,1470,1472,1473,1507,1508,1509,1512,1516,1518,1547,1548,1556,1557,1558,1560,1562,1563,1565,1566,1567,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1594,1595,1596,1598,2053,2056,2057,2059,2066,2073,2083,2087,2098,2099,2100,2112,2113,2115,2117,2118,2125,2126,2128,2129,2131,2132,2133,2134,2135,2209,2211,2232,2233,2234,2236,2262,2263,2314,2315,2317,2324,2330,2340,2350,2403,2404,2405,2415,2429,2430,2433,2440,2441,2449,2450,2451,2452,2453,2464,2465,2466,2468,2469,2470,2471,2473,2483,2495,2501,2533,2537,2539,2540,2542,2543,2554,2555,2557,2565,2572,2578,2583,2584,2590,2593,2599,2606,2607,2614,2622,2623,2624,2662,2668,2683,2684,2689,2707,2738,2756,2758,2761,2769,2771,2778,2830,2854,2855,2856,2857,2858,2859,2860,2861,2868,2869,2870,2871,2872,2873,2875,2876,2880,2964,2977,2978,3414,3418,3432,3484,3512,3534,3592,3614,3629,3692,3743,3781,3817,3842,3984,4030,4081,4100,4134,4149,4169,4199,4230,4253,4284,4314,4346,4373,4448,4470,4508,4518,4552,4571,4597,4639,4689,4715,4784,4785,4787,4810,4833,4869,4900,4917,4974,4987,5011,5040,5042,5076,5092,5120,5425,5434,5443,5450,5467,5471,5477,5516,5518,5525,5532,5541,5548,5549,5560,5563,5578,5579,5588,5589,5598,5607,5613,5615,5616,5617,5653,5654,5656,5664,5671,5684,5688,5690,5691,5697,5704,5718,5728,5733,5741,5749,5755,5756,5760,5762,5763,5775,5776,5777,5778,5780,5781,5784,5786,5789,5793,5794,5800,5801,5802,5804,5806,5808,5809,5810,5813,5815,5818,5819,5821,6019,6026,6027,6037,6042,6059,6073,6082,6083,6084,6088,6089,6091,6093,6099,6100,6103,6104,6106,6107,6108,7008,7009,7013,7031,7040,7043,7050,7051,7053,7054,7055,7057,7109,7110,7113,7114,7231,7232,7243,7254,7261,7264,7273,7274,7275,7290,7345,7536,7538,7539,7541,7546,7559,7574,7581,7590,7593,7596,7603,7611,7615,7616,7617,7631,7635,7644,7645,7646,7650,7685,7686,7703,7710,7718,7719,7724,7732,7776,7777,7783,7786,7797,7802,7803,7806,7839,7840,7846,7853,7854,7863,7872,7887,7891,7943,7944,7949,7951,7954,7956,7957,7958,7967,7981,7989,8003,8015,8016,8018,8020,8042,8053,8059,8060,8072,8084,8171,8183,8185,8194,8197,8203,8228,8231,8232,8233,8235,8238,8241,8252,8254,8256,8284,8358,8365,8369,8370,8379,8401,8402,8407,8408,8487,8489,8491,8500,8504,8510,8516,8522,8532,8537,8538,8556,8567,8572,8577,8587,8593,8597,8603,8609,10217,10218,10219,10226,10228]),Nu=new Uint8Array([3,3,3,3,3,3,3,3,5,8,8,2,2,3,3,3,3,3,8,5,5,5,5,5,3,3,5,5,9,12,19,8,19,8,11,9,9,8,7,7,6,8,9,16,10,7,7,11,8,6,6,9,7,11,7,14,4,4,4,4,4,4,10,7,6,6,6,6,10,10,6,10,10,22,11,9,10,10,10,9,10,8,7,7,7,8,21,13,11,11,9,10,9,13,10,8,8,9,12,9,7,10,7,7,13,7,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,8,6,3,3,3,3,3,3,2,5,3,3,3,7,2,2,2,2,2,2,3,3,3,1,1,7,8,5,2,2,7,2,2,1,4,1,11,9,9,5,5,8,5,5,5,5,5,5,5,3,3,3,3,3,5,11,9,9,13,7,14,7,6,6,6,7,6,6,6,6,6,10,7,11,9,4,4,4,4,4,4,6,6,6,6,6,8,7,10,9,9,9,8,9,8,10,6,9,9,8,10,10,7,8,1,9,10,12,12,12,10,9,9,10,10,9,9,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,4,3,3,3,7,4,4,4,3,3,6,7,3,4,1,2,2,2,6,1,2,2,2,2,2,12,5,3,8,9,13,4,4,13,9,9,11,7,3,12,9,2,2,2,3,3,3,3,3,8,2,2,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,3,7,10,15,7,15,15,20,15,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,7,8,6,8,8,6,8,13,8,8,6,13,8,11,13,8,6,13,8,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,9,9,9,10,14,14,11,13,13,9,9,9,9,9,9,2,6,9,2,2,3,3,3,3,3,3,3,3,3,4,4,4,2,3,3,3,3,3,3,7,7,2,3,2,2,5,3,3,3,3,3,3,4,2,2,2,2,2,2,3,3,3,3,3,3,3,4,5,7,2,2,12,8,10,8,10,7,18,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,2,3,3,3,5,5,3,8,8,6,8,6,6,4,6,7,7,7,10,11,2,5,5,3,3,3,3,3,3,5,5,6,11,10,7,7,7,4,4,4,2,3,3,3,3,3,2,7,5,5,3,3,3,3,3,3,3,3,7,7,7,11,7,6,9,6,6,8,10,8,6,8,13,4,4,4,4,4,10,8,11,8,8,8,10,10,7,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,10,13,7,8,7,11,8,8,6,9,8,8,6,6,6,8,8,6,6,6,6,6,9,7,6,4,4,4,4,4,4,4,6,6,6,9,7,8,10,8,8,2,3,3,3,3,3,2,8,9,9,2,2,2,3,3,3,2,3,3,3,9,2,2,3,3,3,3,3,3,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,5,5,3,5,4,2,3,2,4,3,9,2,2,2,2,2,5,5,3,8,8,13,6,10,9,4,7,9,11,2,3,7,3,3,4,1,3,4,2,9,3,3,12,5,3,7,10,10,7,4,4,6,14,7,9,7,13,2,2,2,2,2,2,3,3,3,3,3,8,15,4,4,2,3,3,3,7,4,9,9,2,3,3,3,5,3,2,2,7,2,7,6,6,7,2,4,2,2,2,2,2,2,8,8,8,9,5,2,3,3,3,3,3,3,10,7,4,4,4,4,3,4,2,3,3,3,3,3,10,7,4,4,4,4,2,3,3,3,3,10,7,4,4,4,4,3,9,6,6,6,9,13,9,2,2,2,8,7,9,5,3,3,3,5,5,12,9,10,7,8,7,6,8,6,11,12,7,9,10,4,4,7,8,11,6,7,9,8,7,10,8,9,15,7,8,5,4,7,2,3,3,3,2,14,10,2,14,10,2,14,3,9,13,13,10,14,16,17,11,2,14,2,14,3,9,13,10,14,16,17,11,14,10,14,2,7,3,10,7,14,10,2,14,10,9,9,17,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,10,10,10,12,9,4,10,11,8,8,8,7,9,5,3,3,3,3,3,3,3,3,5,8,4,4,4,4,4,4,6,16,3,3,14,3,14,2,14,9,13,10,10,14,16,17,11,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,9,9,9,9,9,9,2,14,9,13,10,10,14,16,17,11,6,2,14,9,17,13,10,10,14,16,17,11,6,2,14,9,13,10,14,16,17,11,2,14,9,13,10,16,11,2,14,10,19,7,2,14,9,13,10,19,10,7,14,16,17,11,6,2,14,9,13,10,19,7,14,16,17,11,2,14,9,13,17,13,10,10,14,16,17,11,6,3,2,14,9,13,10,10,14,16,17,11,6,9,10,12,14,14,14,12,12,12,12,12,14,14,14,10,10,10,14,9,9,9,9,14,14,14,13,13,14,9,9,9,9,9,9,4,11,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,9,10,10,7,17,3,3,12,12,16,15,15,12,14,14,14,20,20,13,12,12,12,12,12,12,20,25,14,14,12,12,10,10,10,10,9,9,9,25,4,9,17,10,7,14,16,21,13,13,14,20,14,13,17,24,9,12,13,25,13,21,20,17,9,9,9,9,9,9,12,17,4,4,9,9,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,1,8,7,11,11,1,3,3,3,4,8,9,10,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,7,4,4,4,4,4,4,4,4,4,4,9,12,6,14,4,12,7,2,2,1,2,7,6,4,4,4,6,8,8,7,4,5,6,3,3,3,3,4,16,8,3,5,4,3,3,3,5,2,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,12,7,7,13,9,10,12,8,9,7,8,5,12,10,13,14,5,5,5,13,5,5,5,3,3,3,5,16,5,5,5,5,5,7,12,14,8,12,8,10,12,9,11,7,9,7,10,7,13,9,7,12,8,17,7,7,16,10,13,13,8,10,10,14,17,7,16,16,15,8,10,10,12,17,7,17,14,7,10,17,8,7,7,7,8,15,15,7,14,10,10,10,11,11,7,7,13,8,10,7,16,7,8,7,14,17,12,10,11,21,8,9,7,13,9,8,13,6,12,7,6,13,10,10,10,8,18,9,17,13,10,12,6,13,6,11,8,13,10,13,18,13,11,13,8,16,7,10,8,16,12,10,8,8,6,14,11,8,15,8,8,7,7,12,7,8,9,14,15,8,9,10,9,15,7,8,8,12,13,9,10,15,15,13,7,10,10,20,7,6,9,6,6,14,11,14,11,12,9,10,16,16,12,7,11,28,8,11,10,7,21,8,7,9,4,4,4,17,7,8,6,9,6,6,13,6,6,6,6,18,20,14,8,11,12,9,10,13,15,19,8,9,12,7,10,16,12,9,9,9,14,12,11,9,12,11,18,9,9,9,10,7,7,16,8,9,7,13,12,10,18,7,8,11,7,7,8,8,13,7,7,7,11,15,13,11,7,8,15,11,7,8,18,14,13,18,15,10,12,12,9,7,11,11,8,7,10,8,14,12,10,18,7,10,9,7,8,13,10,14,9,10,8,8,23,7,7,11,12,12,17,7,7,11,11,17,16,16,7,8,11,14,14,8,10,7,7,16,16,13,9,11,9,15,15,11,11,7,7,14,7,9,7,7,16,10,13,10,11,14,7,11,10,11,7,11,10,11,15,11,15,10,12,17,10,14,13,11,11,12,13,10,7,13,10,16,12,21,9,10,10,7,11,14,17,7,7,8,11,12,8,15,14,14,8,17,12,10,10,7,9,11,7,10,7,11,18,7,11,7,12,11,8,8,14,12,7,8,15,3,7,7,5,2,9,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,5,3,3,3,3,3,3,4,4,3,3,3,3,3,3,5,11,6,4,7,10,7,7,11,1,10,2,2,3,3,3,3,3,3,3,3,5,7,3,5,6,3,3,5,2,2,5,3,4,13,11,3,3,6,3,5,14,2,2,3,8,2,2,12,5,18,5,3,3,3,16,5,5,5,10,7,13,12,13,9,12,14,19,9,9,21,9,9,10,6,9,6,15,10,6,12,8,6,10,15,4,4,6,6,9,9,12,16,14,23,7,7,7,14,9,7,7,11,14,10,7,10,10,10,12,6,11,10,13,11,15,11,7,12,10,3,7,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,3,7,2,5,5,3,3,5,5,5,5,7,6,6,6,4,4,4,4,4,4,6,6,6,6,6,7,10,2,2,2,5,5,5,5,3,3,3,3,3,5,5,10,9,11,8,7,12,8,9,7,6,13,11,6,13,7,9,9,4,4,4,4,4,4,6,10,7,8,13,8,8,9,14,8,10,7,7,7,9,6,9,7,2,12,5,3,3,13,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,4,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,4,4,4,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,4,2,2,2,5,3,3,3,3,3,3,3,3,4,4,1,7,6,4,12,3,3,3,3,3,8,7,3,3,3,3,3,3,4,4,11,14,2,8,3,5,5,8,10,8,6,4,7,17,7,4,5,2,6,3,5,2,4,4,2,12,5,5,3,15,13,10,8,11,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,4,18,2,12,5,3,3,3,3,3,5,16,8,8,9,6,6,4,4,4,4,31,6,6,10,11,21,10,9,7,10,7,7,2,4,4,4,4,6,5,3,3,4,3,3,3,3,3,3,3,3,3,6,6,6,2,2,2,5,3,3,3,7,7,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,8,2,3,3,3,3,3,5,9,11,3,3,3,3,4,4,3,3,3,3,3,5,10,9,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,11,10,10,10,10,10,11,10,11,10,11,10,9,9,11,3,3,3,3,3,3,5,3,7,8,8,7,6,6,11,4,4,4,7,8,9,9,2,3,7,4,4,2,5,5,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,5,5,5,5,5,3,3,5,5,5,7,7,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,8,8,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,6,9,12,3,7,10,7,2,2,3,3,3,3,3,4,3,3,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,6,6,8,6,7,4,4,4,4,4,4,6,7,5,5,20,19,8,10,9,7,10,6,8,11,6,6,6,6,13,12,8,6,7,14,11,9,2,5,3,3,6,2,3,2,2,2,2,2,2,2,5,4,3,7,6,4,7,4,3,6,4,7,2,7,7,7,5,5,5,5,3,3,3,3,3,3,3,3,3,3,5,9,10,10,8,11,7,8,20,7,8,9,8,12,6,6,6,8,9,8,12,6,6,8,13,10,12,6,6,7,7,8,9,6,4,4,4,4,4,4,4,10,6,6,6,7,14,11,10,7,8,10,8,11,14,11,11,9,7,9,8,11,9,17,10,9,2,2,2,9,3,3,3,3,15,14,9,5,5,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,15,12,22,19,17,18,18,19,21,7,16,16,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,7,16,11,11,7,7,7,7,17,7,8,12,15,9,19,7,19,8,16,21,11,12,19,14,22,7,7,7,7,7,7,7,7,7,7,7,16,16,19,24,12,7,14,7,12,7,8,10,10,13,7,12,12,7,7,10,18,15,12,16,7,14,12,17,10,16,17,12,17,25,7,7,7,13,6,9,6,9,18,6,6,11,20,10,6,6,6,6,6,6,6,17,6,6,6,15,6,6,6,6,6,8,14,11,12,15,13,19,17,21,7,18,8,13,13,8,12,8,6,6,13,6,15,15,16,6,6,16,6,6,6,14,6,18,6,6,6,17,18,9,13,15,8,19,8,15,15,18,14,16,4,4,4,4,4,4,4,4,4,4,4,4,6,11,10,11,6,21,23,12,17,12,11,14,13,22,15,15,11,12,14,12,7,12,8,14,12,18,10,8,16,19,17,12,14,15,8,9,19,17,12,13,13,15,18,13,23,24,23,21,17,24,8,21,8,14,14,16,14,8,8,15,20,8,19,21,9,8,13,12,13,15,11,8,11,9,9,8,11,8,21,14,21,15,15,13,7,19,7,7,7,7,7,7,16,12,17,18,7,7,11,11,7,9,9,2,2,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,4,5,5,5,5,5,5,5,5,3,3,10,10,7,9,7,7,7,6,8,6,6,6,6,6,6,6,7,6,8,6,6,9,7,7,7,4,4,4,4,4,4,4,4,8,9,8,7,8,7,8,10,7,5,5,5,5,5,5,3,9,7,7,8,6,6,6,6,6,6,6,6,9,6,6,9,11,13,7,8,9,9,5,5,5,7,8,6,6,6,6,6,6,6,7,8,9,7,10,9,10,7,8,5,5,5,5,5,5,7,7,9,8,7,7,6,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,6,9,10,4,4,4,4,8,7,7,10,10,9,8,8,15,9,8,8,8,8,8,9,10,9,10,7,8,13,5,5,5,5,5,3,3,7,7,8,6,6,6,4,4,11,9,7,8,9,10,7,5,5,5,5,5,3,3,7,6,6,13,7,9,8,7,5,5,5,5,5,5,5,5,3,3,3,3,7,8,7,8,13,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,6,6,6,6,7,6,7,6,6,9,7,4,4,4,4,4,4,4,7,8,7,8,9,8,8,8,7,10,7,8,5,5,5,5,5,5,5,5,3,7,7,7,7,9,7,10,9,6,6,6,6,6,8,8,6,6,6,7,6,6,6,9,9,4,4,13,7,10,9,9,12,7,8,8,10,8,8,8,8,8,8,5,5,5,5,3,7,7,11,7,9,8,8,6,6,10,6,8,8,8,6,7,6,6,12,4,4,4,4,4,4,4,4,4,9,8,8,16,8,9,8,7,5,5,5,5,5,3,3,7,7,7,10,15,8,9,8,9,9,6,6,6,6,6,6,7,4,8,7,8,8,7,8,11,8,5,5,5,5,5,3,7,7,6,11,16,7,6,4,4,4,4,9,9,8,8,8,13,12,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,7,8,8,9,13,7,7,7,9,8,8,9,12,7,12,7,12,8,7,10,12,9,9,6,6,8,8,6,6,6,6,6,6,6,9,8,9,11,8,6,6,6,6,6,12,7,6,6,6,9,7,7,6,6,6,6,6,11,9,6,6,6,6,6,7,9,4,4,4,4,4,4,4,4,9,9,9,9,7,7,7,7,7,11,7,7,8,8,8,8,8,8,9,8,9,9,7,7,11,11,7,12,8,8,8,8,8,7,8,8,8,8,8,13,12,8,8,8,8,7,7,7,9,5,5,5,5,5,5,5,3,3,7,7,11,7,8,8,8,6,6,6,6,6,6,6,6,6,6,6,10,11,6,7,9,4,4,4,4,4,4,9,9,8,9,8,8,8,7,7,5,5,5,5,5,5,5,5,5,5,3,3,11,7,7,7,9,6,6,11,8,10,6,6,6,12,8,8,7,6,6,8,7,4,4,4,4,4,4,4,4,9,10,9,9,8,10,9,11,8,5,5,5,7,6,6,8,7,4,4,4,4,8,7,7,8,7,8,8,5,5,5,5,7,7,8,8,8,6,6,6,6,6,10,8,9,13,6,7,6,6,8,7,8,4,4,4,4,11,8,8,8,10,5,5,8,7,8,13,8,7,6,8,6,9,7,8,7,5,5,5,5,5,5,3,3,7,8,9,6,4,8,10,10,8,12,9,13,2,7,5,5,5,5,5,7,7,10,6,6,6,6,6,6,6,8,4,4,9,8,8,8,14,8,8,8,9,8,5,5,5,5,5,3,3,9,6,6,6,6,10,12,6,6,6,6,6,6,6,4,4,4,4,11,8,7,8,8,8,5,5,3,3,3,3,7,7,6,8,6,8,11,7,6,6,6,7,4,8,11,9,10,5,5,5,3,3,3,7,7,8,9,8,15,9,6,6,6,6,6,6,11,11,4,4,4,4,4,7,9,9,10,8,7,5,5,5,5,5,5,3,3,8,6,6,6,6,6,6,6,6,6,9,7,4,4,4,4,4,9,9,8,8,10,13,5,5,5,3,17,7,7,7,7,7,8,6,8,13,6,6,6,6,6,6,6,6,4,4,4,9,10,8,8,8,5,5,5,5,3,7,7,7,8,8,6,6,6,8,8,8,9,10,8,4,8,10,9,8,8,8,9,13,10,5,5,5,5,5,5,5,5,5,5,3,3,7,8,9,9,7,7,7,10,9,9,8,9,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,6,8,12,6,6,6,6,6,6,6,6,6,12,4,4,4,4,4,4,4,4,4,4,4,11,8,8,9,9,10,8,9,7,7,5,5,5,5,5,5,3,7,8,7,6,6,8,6,6,10,4,7,8,9,12,8,7,7,5,5,5,5,5,5,3,3,7,14,7,9,8,8,6,6,8,12,12,6,6,7,7,10,4,4,4,4,4,9,9,14,9,13,8,7,5,5,5,6,6,6,7,4,8,7,5,5,5,5,5,5,5,5,3,3,7,7,7,8,6,6,6,6,6,6,12,6,6,6,6,4,4,9,9,8,8,11,7,7,7,5,5,5,3,9,8,6,6,7,4,4,4,4,4,4,8,8,11,5,5,5,7,7,7,9,6,6,6,6,6,6,9,8,4,4,4,4,7,12,9,8,8,8,7,10,10,5,5,5,5,5,5,5,3,11,14,8,7,8,8,6,6,6,6,6,8,7,6,6,6,7,6,8,9,4,4,4,7,8,9,7,9,7,7,9,8,5,5,5,5,5,5,5,5,5,11,3,9,7,7,12,14,8,6,6,12,11,8,6,6,6,6,6,6,6,6,6,15,7,4,4,4,16,9,9,9,8,9,9,9,9,9,8,8,8,13,11,8,5,5,5,5,3,7,6,6,8,8,8,6,6,7,10,7,4,4,4,4,9,7,8,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,7,7,9,6,6,6,6,6,8,8,7,7,9,6,6,6,7,6,6,6,6,6,15,4,4,4,4,4,8,8,7,8,12,9,8,8,8,8,8,9,8,8,10,8,8,8,8,16,9,10,2,5,5,5,5,5,5,5,9,7,6,8,9,4,4,4,4,4,7,8,8,8,9,8,11,10,5,5,5,5,3,7,8,6,6,6,6,6,8,6,6,6,6,4,12,10,12,7,7,7,7,7,7,7,5,5,5,5,3,3,7,7,10,8,9,7,6,10,7,6,6,4,4,8,9,7,9,9,9,9,8,8,8,8,10,5,5,5,5,5,5,8,7,6,6,6,10,6,7,10,7,4,4,4,4,4,4,4,12,9,10,7,7,10,8,10,5,12,9,6,6,6,6,6,7,6,4,4,4,10,9,9,8,7,7,5,5,5,5,5,5,3,3,13,7,7,9,7,7,7,8,9,9,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,15,15,4,4,4,4,4,10,10,9,8,9,8,8,9,7,8,7,8,5,5,7,6,6,6,4,4,4,7,8,11,8,5,5,5,5,5,5,5,7,6,6,6,6,6,6,9,11,10,7,4,4,4,9,8,8,5,5,5,5,5,9,9,6,6,6,6,6,6,6,9,9,4,4,4,4,8,8,8,9,9,8,8,8,13,2,4,2,7,5,5,5,5,5,5,9,9,6,6,6,6,10,8,8,8,6,6,6,4,4,9,8,10,8,9,8,8,8,9,8,8,5,3,3,3,11,6,6,6,7,6,6,6,4,4,9,8,5,5,5,5,5,3,11,8,6,6,6,6,6,9,7,4,4,14,10,9,8,12,8,8,8,11,15,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,11,11,10,10,7,7,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,3,3,3,7,11,7,7,11,11,7,8,9,10,7,7,9,9,9,9,7,7,10,8,13,8,8,8,8,11,10,6,6,8,10,11,14,14,6,6,6,6,6,6,9,11,7,7,6,8,12,11,11,6,6,10,6,6,6,6,6,10,7,7,6,6,11,6,6,6,11,8,9,7,6,10,11,9,10,11,7,11,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,6,6,8,9,10,9,6,6,6,10,6,6,6,6,11,10,11,10,9,8,7,7,7,7,11,14,8,10,9,9,8,8,7,11,8,8,8,11,11,10,10,9,10,8,11,10,8,11,9,12,8,10,8,11,8,9,9,11,11,10,11,13,8,7,8,8,9,7,8,8,8,8,7,8,2,2,2,2,2,2,2,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,8,6,4,4,4,11,7,11,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,3,3,3,3,8,7,7,8,8,4,8,7,7,7,9,7,8,9,8,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,4,5,5,3,8,8,6,9,4,4,10,7,3,3,3,2,5,3,3,3,3,3,3,3,3,3,3,3,3,4,3,2,2,2,3,3,3,3,3,4,10,2,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,2,2,3,3,3,5,2,4,2,6,2,2,9,5,5,3,3,3,3,3,3,3,5,5,5,9,8,7,6,6,11,4,4,4,4,4,4,4,4,6,6,7,7,11,8,8,6,5,11,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,6,4,4,4,4,3,3,3,3,5,7,2,3,3,3,3,3,8,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,2,2,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,2,3,3,3,3,3,6,3,3,8,10,3,4,4,1,1,1,1,1,1,1,8,9,10,7,7,1,1,3,8,7,7,8,8,8,1,6,1,1,6,3,3,4,7,3,5,5,4,4,4,4,4,2,7,7,8,12,3,4,5,1,3,4,4,10,4,3,3,3,8,7,7,2,2,2,2,2,2,2,2,2,12,9,20,7,5,5,5,9,13,5,5,5,5,5,3,3,3,16,5,5,5,13,7,8,8,11,8,7,9,7,11,12,9,9,8,8,11,10,14,7,12,10,11,13,7,9,11,17,17,14,13,7,8,7,10,10,7,16,13,7,8,17,12,9,8,6,7,10,6,6,12,6,8,10,8,8,8,6,8,6,14,6,6,6,13,6,10,6,6,7,14,8,6,6,10,11,10,9,9,7,7,6,6,6,9,9,7,9,10,9,13,12,4,4,4,4,4,4,4,4,4,6,6,6,8,8,6,8,9,10,9,7,10,10,8,7,8,7,10,12,9,8,15,8,7,8,8,7,7,15,13,7,10,9,14,18,16,7,24,7,8,10,11,16,8,14,7,9,9,9,11,13,19,14,15,14,11,7,13,9,10,7,13,9,10,11,12,8,9,2,3,5,8,7,4,4,10,5,3,3,3,3,3,5,4,4,4,2,2,2,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,4,2,12,5,3,8,10,15,6,7,2,3,2,5,5,12,2,5,5,5,5,2,2,5,5,12,9,5,2,2,9,5,5,12,12,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,12,5,8,8,9,5,5,5,8,19,7,16,15,14,9,9,9,9,7,11,11,11,7,14,10,10,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,12,9,9,12,12,12,15,7,11,7,14,11,18,13,8,18,15,18,12,14,12,8,8,8,8,9,9,9,12,7,10,10,8,8,12,12,12,7,12,12,9,7,7,7,7,7,8,15,12,9,10,10,7,10,10,13,11,10,9,22,11,9,8,8,8,8,8,13,18,13,9,15,19,9,7,7,10,7,7,7,11,8,13,17,7,7,10,10,10,7,20,16,7,7,7,7,7,7,11,21,12,12,13,11,14,16,8,8,13,11,7,7,13,7,7,14,15,15,6,6,6,6,6,6,6,6,6,6,13,10,18,6,6,6,6,6,6,6,6,6,11,8,8,12,12,11,11,8,12,9,9,9,13,13,9,9,9,9,9,9,6,10,12,6,6,6,6,17,11,7,7,7,7,14,14,12,6,7,7,6,6,15,10,13,10,6,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,9,15,13,6,12,12,6,19,11,10,7,7,16,8,19,17,9,9,9,9,9,6,6,6,10,8,16,8,6,6,9,6,6,6,6,6,6,6,6,8,8,8,6,7,6,6,6,6,6,6,6,6,6,6,6,14,6,6,6,6,20,6,9,6,14,9,9,9,6,9,8,8,12,9,8,8,8,8,7,8,12,7,8,8,8,6,8,6,6,6,6,6,6,6,9,8,8,6,6,13,9,12,13,12,14,13,12,11,11,6,8,8,8,6,13,12,11,11,12,6,11,12,11,13,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,6,6,6,6,6,6,6,13,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,6,18,6,12,13,13,13,9,10,15,9,12,6,6,6,6,6,6,6,6,9,15,10,9,10,13,9,19,8,18,17,10,10,8,8,6,6,6,6,6,6,10,14,8,16,16,9,8,15,8,8,10,12,14,7,7,8,8,7,7,7,7,8,13,13,11,9,9,9,12,10,17,8,11,9,7,7,14,8,14,14,7,7,7,7,7,7,14,7,7,7,7,7,10,10,8,14,7,7,7,7,8,8,8,8,8,17,9,7,15,7,8,12,7,9,14,7,7,7,9,13,8,14,7,16,18,13,15,14,12,13,10,15,9,7,7,7,10,13,15,15,9,9,9,9,19,11,7,11,11,13,8,8,8,8,7,12,19,17,9,9,13,7,7,7,9,7,7,7,12,13,15,10,8,8,14,15,12,13,13,8,12,14,7,11,7,14,15,13,12,8,8,8,8,11,13,15,15,8,13,12,8,8,8,13,10,16,14,11,8,8,12,12,9,15,15,12,12,13,8,8,9,12,13,9,8,8,8,8,8,8,8,8,8,8,8,11,12,11,7,14,7,13,13,13,12,18,16,7,12,11,10,10,15,9,9,9,21,7,7,7,11,16,8,8,11,11,7,7,7,7,7,19,7,7,7,7,7,7,7,7,7,12,8,9,12,14,11,9,9,9,22,12,3,8,8,15,4,2,2,5,5,3,3,3,3,3,3,6,6,4,4,4,12,7,10,2,3,3,3,3,3,3,3,6,7,3,7,5,14,4,4,7,8,10,4,1,3,3,6,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,2,2,5,3,4,2,2,2,2,2,2,11,5,5,5,11,5,5,3,5,5,5,5,11,14,13,9,11,9,12,8,11,11,8,11,16,9,9,7,10,9,12,8,15,6,7,6,6,13,10,8,11,8,6,6,6,12,16,6,11,7,8,9,18,6,6,9,4,4,6,13,6,6,6,6,8,8,9,16,7,7,14,7,8,8,8,7,7,7,7,7,7,15,13,7,10,7,7,10,12,16,15,7,9,9,14,11,11,10,9,10,8,12,7,8,7,7,10,12,7,12,8,7,2,3,3,3,3,3,3,3,3,3,3,5,3,3,5,5,5,10,4,8,7,10,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,7,4,5,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,8,2,2,2,8,12,7,7,5,5,5,5,5,5,5,5,5,5,5,5,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,7,11,9,8,8,8,7,8,9,7,7,9,7,7,7,10,7,7,10,9,10,6,6,6,6,6,6,15,7,8,9,9,8,6,6,10,9,6,8,13,9,7,6,6,6,6,6,6,12,6,6,7,6,7,6,6,6,10,10,7,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,14,6,6,7,7,9,6,6,6,6,9,9,8,9,10,9,8,9,12,7,7,7,8,7,10,12,11,9,10,7,7,7,9,10,10,8,12,9,7,7,9,8,8,8,10,7,7,8,9,9,7,7,7,8,2,4,6,3,4,2,3,3,3,3,2,3,3,3,3,3,3,3,3,4,4,4,4,5,5,3,3,3,3,3,3,3,3,5,8,6,4,7,3,3,3,3,3,3,3,12,3,3,3,3,3,3,4,4,2,3,5,3,4,7,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,6,4,3,4,2,2,2,5,3,3,3,3,3,5,4,4,4,4,7,6,8,9,2,2,2,2,3,3,3,5,7,2,3,3,8,7,7,2,2,8,5,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,7,7,6,10,6,9,7,11,4,6,8,8,7,8,4,5,5,5,3,3,11,8,9,6,6,8,7,4,4,7,8,7,2,2,3,3,3,3,4,3,3,3,3,3,3,3,3,7,2,2,5,3,3,2,3,3,3,3,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,12,5,5,3,3,3,5,10,12,6,15,4,6,6,7,14,9,3,3,3,3,3,8,2,2,3,5,3,3,3,3,3,3,8,8,8,7,5,8,4,6,11,2,2,6,7,2,9,8,5,5,3,3,5,5,7,7,6,6,10,6,6,8,9,7,4,4,4,4,7,6,6,7,7,10,9,8,11,8,3,3,3,3,3,4,4,2,3,3,3,3,3,7,6,2,5,6,7,6,4,8,9,11,2,2,3,3,3,3,3,3,3,2,2,5,3,3,3,3,3,9,9,6,4,8,7,7,5,9,8,6,8,7,8,5,5,5,5,5,3,3,3,16,8,7,7,7,8,7,7,7,7,9,6,9,6,10,7,7,7,6,10,8,9,11,11,8,4,4,10,8,8,6,9,6,11,8,8,8,15,7,8,9,5,3,3,3,3,3,5,11,2,2,3,8,9,10,3,2,2,2,2,2,2,3,6,4,2,2,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,11,5,3,3,3,3,3,3,3,3,6,7,4,4,2,3,3,3,3,3,3,3,3,12,7,4,12,4,6,5,4,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,3,4,4,11,10,6,4,6,10,8,3,3,3,3,3,3,3,3,5,4,4,4,2,2,2,2,2,2,2,2,5,3,4,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,5,5,5,5,5,5,3,3,3,3,3,3,3,3,7,8,8,7,13,12,10,10,8,8,7,7,9,12,11,6,6,8,8,9,7,7,7,10,15,10,4,4,4,4,4,11,8,8,9,7,9,14,14,12,2,2,2,2,2,2,2,3,3,3,3,3,2,2,12,5,5,5,8,11,10,7,9,3,8,7,3,15,13,11,4,4,2,2,2,19,7,5,5,3,3,3,3,3,3,3,5,22,18,6,14,17,4,4,19,16,18,2,3,3,2,3,2,3,3,6,4,2,3,3,2,5,3,3,3,3,3,3,3,9,9,2,3,2,2,2,3,3,3,5,7,14,7,7,12,9,13,6,11,6,10,9,7,7,8,12,12,8,8,8,10,7,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,5,8,10,7,8,11,8,12,9,4,7,7,9,13,2,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,3,3,3,3,5,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,3,2,3,3,3,3,5,2,2,2,2,5,5,5,5,3,3,3,3,3,3,3,3,3,7,7,7,7,7,8,8,8,8,8,12,9,8,8,9,8,6,17,6,6,6,8,8,6,6,6,6,6,6,6,6,6,6,6,7,4,4,8,8,9,9,9,7,7,7,7,7,7,7,9,9,9,7,8,8,8,10,7,13,10,8,9,3,3,5,13,3,3,3,3,3,7,7,6,6,10,13,11,11,8,8,9,8,9,9,10,10,10,11,10,10,13,13,16,15,11,12,9,9,10,9,11,10,9,9,14,7,8,3,10,7,7,3,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,6,7,2,2,3,3,3,3,3,3,3,3,4,11,6,7,4,6,2,2,3,3,3,1,3,3,3,3,3,3,6,4,4,2,2,2,3,3,3,3,4,4,6,6,6,6,5,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,11,6,10,9,12,7,7,11,14,9,7,12,3,3,7,12,11,12,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,5,5,5,5,5,5,5,5,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,3,10,3,3,3,11,3,5,9,11,8,12,14,9,7,8,7,7,11,11,7,7,10,9,8,10,9,7,7,7,7,7,7,8,8,7,11,8,8,8,7,7,10,8,7,13,12,7,17,10,8,8,11,7,11,11,14,7,11,7,8,6,9,20,8,7,9,16,7,10,6,11,10,8,9,7,16,11,11,9,8,9,8,8,8,11,8,15,8,8,9,7,8,8,11,10,7,5,7,10,10,15,7,7,7,8,7,8,8,10,11,10,10,10,11,11,7,8,6,8,8,8,10,6,8,6,6,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,16,6,15,6,7,11,11,7,9,10,11,13,10,6,16,8,10,12,11,6,6,6,6,6,6,6,10,6,10,7,7,7,7,11,7,11,6,6,6,6,6,6,17,7,7,6,6,12,22,6,6,6,6,6,8,6,6,6,6,7,6,6,5,6,6,8,11,6,9,14,11,9,11,7,7,8,6,6,6,8,10,9,6,6,6,6,9,7,6,6,6,6,6,15,6,4,4,4,6,4,17,8,11,6,6,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,6,6,10,6,10,6,6,6,6,12,8,6,6,6,6,6,6,6,6,6,9,6,6,6,6,18,6,6,6,8,9,10,7,8,9,10,11,7,13,6,8,8,6,6,14,7,7,7,7,10,7,14,9,6,6,9,15,9,7,14,6,11,14,13,7,12,8,7,7,7,7,7,12,7,10,9,16,6,8,6,5,17,6,8,10,4,6,4,10,15,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,4,4,11,7,4,4,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,19,17,6,10,11,6,6,6,6,18,6,6,11,4,4,4,5,6,6,6,9,5,6,4,6,6,4,6,6,6,6,10,6,6,4,6,6,10,6,10,6,6,6,6,11,6,6,10,6,6,8,6,6,6,8,6,11,4,11,9,10,9,11,4,8,4,11,12,7,9,8,6,7,7,8,12,12,11,13,10,11,7,7,7,9,7,11,10,7,7,7,16,11,10,11,17,9,9,8,8,7,7,7,9,7,7,7,14,7,13,9,11,10,14,10,10,12,11,10,7,10,5,14,8,8,8,9,7,8,7,7,9,8,7,8,7,7,7,7,7,7,7,11,8,10,8,7,8,14,11,8,9,9,9,8,24,10,10,12,7,7,15,11,8,8,12,11,8,9,9,7,8,9,10,11,10,11,7,12,7,7,11,9,8,14,13,12,8,11,10,8,8,7,7,14,9,10,8,9,11,7,14,8,8,13,8,8,12,7,10,14,14,11,9,10,9,9,7,7,11,11,13,9,13,5,5,5,7,9,5,11,12,14,8,7,7,11,10,9,7,8,8,7,10,11,11,5,5,7,5,5,5,7,7,15,7,7,8,7,15,12,12,10,7,8,7,11,7,7,7,23,11,8,8,11,10,7,8,11,7,19,7,7,6,9,9,9,11,3,4,7,8,6,6,4,10,8,2,2]),tv=new Uint16Array([0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,17,1,1,1,12,1,12,1,12,13,1,1,1,1,12,1,12,1,1,1,1,1,14,21,1,1,1,1,1,1,1,19,12,1,1,1,1,1,1,1,20,1,1,1,16,1,18,1,1,15,1,1,1,1,12,1,1,1,1,1,1,22,1,1,1,12,1,1,1,1,1,1,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,1,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,12,12,12,12,1,32,0,0,0,1,1,1,1,35,34,1,1,1,1,1,33,1,1,1,1,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,38,0,0,0,0,39,40,0,0,0,41,0,12,1,1,12,1,1,1,1,44,45,45,45,44,45,44,44,46,45,44,45,44,44,44,44,44,44,46,44,44,44,44,44,44,45,47,47,45,44,44,44,44,44,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,50,52,50,50,50,52,50,51,50,53,50,51,51,50,50,50,51,53,51,53,50,51,51,12,55,55,54,56,51,53,50,50,48,49,57,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,60,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,67,1,12,1,1,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,76,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,12,1,1,1,1,89,1,91,1,1,1,1,1,1,1,1,94,1,1,1,1,1,1,1,1,1,1,1,1,0,1,97,97,1,1,12,1,100,1,1,1,1,1,1,1,98,1,99,1,101,1,1,1,1,1,102,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,110,111,1,1,1,1,1,1,113,113,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,121,122,1,1,1,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,126,123,125,120,1,124,1,1,114,1,1,1,1,117,1,127,1,1,1,1,1,119,1,108,1,109,1,12,128,106,1,112,1,1,1,1,1,107,115,1,12,12,12,118,116,1,1,1,1,1,1,0,0,0,0,1,12,12,1,1,1,1,1,12,134,1,1,1,1,1,1,1,1,1,1,1,12,136,1,1,1,1,1,1,1,1,137,138,12,12,135,133,45,45,140,50,50,139,142,141,1,1,0,0,0,0,0,0,0,0,0,0,0,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0,0,0,1,0,144,132,1,0,1,12,12,1,1,1,1,1,0,0,0,0,0,0,0,1,148,147,20,1,1,12,12,1,20,12,12,1,1,1,1,1,134,1,1,152,1,1,1,1,153,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,1,136,1,1,152,1,1,1,1,153,1,1,134,1,1,1,152,1,1,1,1,153,1,1,134,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,160,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,1,1,1,1,1,134,1,1,1,1,152,1,1,1,1,153,1,1,1,134,1,1,152,1,1,1,1,164,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,167,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,154,158,158,12,1,12,166,1,1,1,1,1,158,158,158,154,1,1,1,157,158,161,165,1,1,1,1,157,157,1,1,156,154,154,157,170,156,170,1,1,168,1,156,155,157,1,1,1,1,157,1,159,1,1,1,12,1,162,1,162,1,1,1,162,161,163,169,156,154,1,1,1,1,1,1,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,172,172,172,174,174,172,173,172,173,172,172,12,12,12,12,12,1,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,193,1,1,1,1,12,199,200,201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,1,1,1,1,1,1,1,1,1,1,1,196,1,1,1,184,1,210,1,1,1,208,1,1,205,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,12,1,1,1,1,1,1,1,1,190,1,1,1,186,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,182,1,1,1,1,1,1,1,191,1,1,1,1,195,1,1,1,1,171,1,1,189,1,1,1,192,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,180,1,12,1,1,12,1,1,1,1,183,1,1,1,188,1,203,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,209,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,194,1,1,1,1,1,12,1,1,1,1,1,1,1,1,176,12,1,1,1,178,12,1,1,1,1,1,1,1,198,1,1,1,1,1,1,1,1,1,1,177,1,1,1,1,1,1,204,1,1,1,181,1,1,1,187,1,12,1,1,12,1,1,1,1,1,1,1,1,1,1,191,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,175,1,1,1,1,1,1,1,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,206,1,1,1,1,1,1,1,1,1,1,1,1,1,207,1,1,12,1,1,1,1,179,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,197,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,12,1,1,1,1,1,1,1,1,1,202,1,1,12,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,220,0,0,0,0,0,221,0,0,0,0,0,0,1,12,1,1,1,225,1,1,1,0,226,223,224,1,1,1,1,1,1,231,1,233,1,1,1,1,1,1,1,1,1,1,1,229,1,1,1,1,1,235,1,1,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,234,1,1,1,12,1,1,1,1,230,1,1,1,228,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,232,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,241,13,1,1,1,12,12,238,239,1,1,1,1,240,1,1,12,1,1,1,1,1,1,1,242,1,1,12,16,1,1,1,1,1,1,1,243,1,1,1,12,12,1,1,1,1,1,243,12,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,256,256,1,0,0,0,0,0,1,12,0,0,0,0,0,0,0,0,172,261,262,1,12,1,1,1,1,12,264,1,1,263,1,1,266,1,1,1,1,1,1,1,1,1,0,1,1,1,271,272,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,12,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,12,0,283,0,0,284,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,12,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,60,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,308,0,0,0,0,0,0,0,0,0,310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,327,327,328,327,0,185,1,1,13,323,1,321,0,0,0,0,1,0,0,0,324,1,1,329,1,205,1,1,1,1,1,322,1,319,1,325,1,317,1,326,1,318,1,1,1,1,1,1,1,12,1,1,1,12,1,12,320,320,1,1,1,316,184,1,1,12,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,12,1,1,1,1,315,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,332,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,266,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,372,372,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,340,351,1,1,339,374,1,345,1,1,337,369,1,1,355,336,341,1,1,1,348,379,357,1,1,1,1,1,1,358,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,367,371,0,0,79,1,1,0,365,342,378,343,346,353,1,368,0,1,0,79,362,360,1,0,0,1,1,1,0,0,0,0,381,1,1,352,1,79,1,0,1,1,1,384,1,0,0,79,359,0,1,338,1,1,1,0,1,1,361,1,0,1,1,1,0,1,386,349,1,1,0,1,0,0,377,0,1,1,1,79,370,1,1,366,363,1,1,1,1,1,1,1,1,1,1,1,344,1,1,1,1,1,1,1,1,1,1,1,376,0,79,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,380,1,1,1,0,0,383,0,0,0,1,356,1,0,79,382,1,0,0,0,0,385,1,1,0,0,1,0,1,0,354,0,350,0,1,1,1,0,1,1,0,373,347,375,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,400,400,1,1,12,12,1,400,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,412,1,1,0,1,1,1,1,205,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,430,430,1,1,0,0,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,442,1,441,1,1,1,1,1,1,1,1,445,1,12,12,1,1,1,1,1,12,1,1,1,1,453,1,1,1,455,1,1,1,1,1,1,1,1,1,1,452,1,447,1,1,1,1,435,1,1,1,1,1,1,1,1,448,12,1,1,1,1,454,1,1,1,449,444,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,317,1,433,1,1,12,451,1,1,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,437,1,1,1,1,1,1,1,1,1,1,1,454,1,1,1,1,317,1,450,1,1,1,439,1,1,1,1,1,440,1,456,443,1,1,1,1,1,438,1,1,1,1,1,1,1,1,1,434,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,446,1,1,1,1,1,1,1,12,1,1,1,1,1,436,1,1,1,1,1,1,1,220,457,1,1,1,1,1,12,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,462,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,466,466,466,466,466,466,466,0,466,466,466,466,466,1,466,466,466,0,466,466,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,471,470,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,478,473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,476,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,1,1,1,1,1,1,1,488,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,198,198,1,492,1,1,1,491,1,1,1,1,487,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,489,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,493,1,1,490,1,1,1,1,1,1,1,1,372,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,494,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,505,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,12,1,507,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,12,12,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,60,1,1,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,526,1,1,1,1,1,1,1,527,1,1,1,1,1,1,1,525,1,1,12,1,529,239,1,1,12,12,1,1,12,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,539,1,1,1,1,1,1,1,1,1,1,1,1,1,1,132,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,107,1,1,12,1,1,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,548,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,144,1,1,1,228,1,1,12,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,572,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,577,1,220,1,328,1,1,1,1,1,1,1,1,1,0,0,578,1,1,1,1,0,580,0,79,0,579,0,1,1,1,0,1,1,1,1,1,1,12,0,0,0,0,1,0,0,0,0,0,0,586,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,582,582,0,585,583,582,582,582,582,582,587,582,582,591,582,582,582,582,582,582,582,582,582,582,588,585,582,582,585,582,582,582,582,582,582,582,582,582,582,582,582,582,583,582,582,582,582,582,589,582,582,582,582,582,582,0,0,0,1,590,1,1,1,1,584,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,12,595,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,12,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,12,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,65,280,306,411,535,0,4,68,236,254,282,307,334,388,413,0,499,519,536,597,9,0,61,88,398,409,429,575,0,497,518,532,612,0,30,6,0,461,500,602,560,70,0,7,285,255,389,463,416,538,79,598,0,576,309,418,465,9,105,288,506,6,30,0,311,79,391,79,483,10,6,131,248,275,0,613,509,0,563,0,64,6,6,251,95,2,432,399,410,596,0,6,0,6,286,103,6,561,501,540,0,464,390,273,287,8,71,104,599,543,392,312,300,419,146,74,290,546,510,601,564,335,330,479,6,75,149,11,0,249,522,547,565,514,551,570,611,36,6,260,295,333,304,218,30,528,553,218,42,216,265,296,305,406,423,481,274,0,73,562,0,403,417,299,79,247,79,0,581,545,504,292,421,79,393,387,0,0,0,9,555,571,217,0,424,407,531,516,573,615,85,218,43,297,396,425,569,0,511,293,276,79,215,80,28,390,30,6,394,331,303,604,592,524,550,513,0,258,81,30,405,422,0,30,426,0,219,593,517,9,408,427,218,248,86,222,594,574,557,482,428,397,250,227,87,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,620,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,82,0,129,0,0,84,549,0,0,0,0,0,0,0,27,0,552,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,503,0,257,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,617,0,0,0,0,0,616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,395,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,495,0,0,0,0,0,0,404,0,0,0,0,0,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,515,0,0,0,0,0,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,269,281,0,0,0,0,0,530,277,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,458,0,0,0,314,0,0,0,0,0,0,253,0,0,0,0,0,0,23,0,0,0,0,568,0,0,0,0,600,521,0,0,0,0,244,0,0,0,0,0,0,0,0,0,480,0,0,0,0,0,62,0,0,0,267,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,279,610,0,72,0,0,0,0,0,0,0,0,0,619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,0,278,0,0,0,0,0,0,567,0,0,0,0,0,0,523,0,0,0,0,0,0,0,0,0,566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,213,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,502,0,0,0,0,0,554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,83,0,0,0,0,0,0,0,0,0,0,0,0,486,0,485,0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,537,0,0,0,0,0,0,0,0,298,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,237,0,0,0,0,0,0,0,0,0,0,84,0,606,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,609,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,520,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,498,0,614,0,0,431,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,544,0,93,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,29,92,0,0,0,0,0,0,0,0,0,0,0,0,291,0,0,0,214,0,0,0,0,0,0,558,0,270,0,0,130,0,0,0,0,0,559,0,0,0,0,0,0,0,414,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,313,0,0,0,0,0,5,0,0,0,0,0,0,0,301,0,0,0,0,0,0,0,0,0,0,0,0,0,534,0,0,0,415,0,0,401,0,0,0,0,0,0,603,0,0,0,541,0,0,90,0,542,0,0,0,0,0,0,0,0,0,0,508,460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,607,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,618,0,0,0,0,0,556,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,605,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,623,623,623,623,623,623,623,622,624]),Sf="orgmilcomschnetedugovdrrformsfeedbackofficialaccoorgmilschnetgovmagazinemediaunioncargopilotgroupcaarespressworksaerodromeworkinggroupair-traffic-controlaircraftaccident-preventioneducatormarketplaceambulanceinsurancecateringairportrepbodyenginesoftwaremodellingair-surveillanceconsultingchartertrainermaintenanceservicesdesignflightskydivingfreightassociationstudentgroundhandlingdgcafuelclubtaxicrewshowballooningexpresstraderbrokerauthoragentsairtrafficjournalistsafetyconsultantmicrolightaccident-investigationparachutingequipmentproductionfederationrecreationscientistnavigationengineertradingglidingleasingresearchpassenger-associationentertainmentparaglidinghangglidingaerobaticrotorcraftemergencycertificationgovernmentaeroclubexchangelogisticschampionshiphomebuiltcouncilconferencecontrolairlinecivilaviationjournalorgcomnetedugovcoorgcomnomnetobjofforgcomnetuwukiloappsframerorgmilcomnetedugovcoradioorgcomnetcommuneedogpbcoitgvorgedugov*spreviewfrontendrelayononstagingupid*mtls*privatelinktypedreamdeveloperbravemochawindsurfaivenmirenupsunwnextbegetngrokclerkwale2bwebcsbrunputerflutterflowspawnbaseshiptodaymagicpatternsnetlifyondigitaloceanrailwayhostedclaudehasurabotdashvercelgithubluyanigadgetreplitcloudflaretelebitedgecomputeevervaultdetaexponyatnoopencrpplxzeaburwasmerframerzeropsconvexmedusajsspritesonherculeseasypanelstreamlitsnowflakemesserliloginlinehackclubnorthflankbase44corespeedadaptableleapcellngrok-freeclerkstagelovableon-fleek*us-west-3ap-south-2us-central-2us-central-1eu-central-1ap-south-1us-west-2us-east-2eu-north-1ap-north-1us-west-1us-east-1*rcloudintsegorgmilcomgobbetnetintedugovturmusicasenasamutualcoopip6uriurnin-addre164homeirisgovdixdaemoncloudnssthwien*inexexkunden4accogvormymyspreadshop4lima2ixortsinfofuturecmsfuturehosting12hpprivfuturemailinglima-cityfunkfeuer123webseitednshomemelmyspreadshopcloudletswasantqldvicactnswtascatholicwasaqldvictasvpsidwasantozqldorgcomvicasnactnetedugovnswtasconfhrsncomairflowlambda-urltransfer-webappairflowtransfer-webapptransfer-webapptransfer-webapp-fipstransfer-webappeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1privatenotebookstudiolabelingnotebookstudionotebooknotebook-fipslabelingnotebookstudionotebook-fipsnotebookstudio-fipsnotebook-fipsnotebookstudionotebook-fipsnotebookstudioeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2experimentsus-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1onrepostsagemakercopporgmilcompronetintedugovbiznameinfoshoprsorgmilcomnetedugovbrendlyresolvenzauscotvstoreorgcomnetedugovbizinfoidacaicoittvorgmilcomschnetedugovinfocloudezproxyacmymyspreadshopkuleuvenwebhostingtransurl123websitecloudnsinterhostsolutionsddns5476103298edgfacbmlonihkjutwvqpsryxzbarsycoororgcomedumyftpno-iporxcloud-ipfor-somemmafanfor-morewebhopselfipjozidyndnscloudnsdscloudfor-thefor-betteractivetrailcoeconorestooteorgcomeconeteduassurmoneyafricaarchitectesrestaurantloisirstourismavocatsinfoagrounivcoorgcomnetedugovtvdeportesaludtksatorgmilcomwebgobnetinteducienciaboliviarevistacooperativaempresanombreindustriamusicapatriamedicinademocraciapoliticapuebloindigenaplurinacionalarteblogwikiinfoagrotransportenoticiasprofesionalacademiaeconomiaecologiamovimientotecnologianaturalsimplesitecepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesmscepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesms*biaamfmtcmptvfeirasampajampanatalbelemananiradiog12medindfndbmdtrdthepoaggfjdfdefinfenflegsegongengcngorgzlgslglogppgmillelqslcimcomnomadmjabimbbibbsbabcrectecsjcetcpscpvhudieticriapipsiecnbiorioecogeoteoodoproatoartfstmatvetdetbetnetcntnotfotgrueduajuespappreptmpemparqsrvadvdevgovntrturagrjorfarjusmusdesvixxyzcozfozslzbhzmaringasantamariacampinagrandegoianiasorocabafloripasaobernardocuritibaboavistarecifeaparecidasaogoncasalvadorcuiabamorenamacapalondrinacontagemsocialfortalmaceioleilaoosascoriobranconiteroi9guacutcheblogflogvlogwikitaxicoopmanauspalmascaxiasjoinvillebaruericampinassantoandreribeiraoriopretoweorgcomnetedugovv0windsurfshiptodaycloudsitecoaccoorgnetgovofmilcomgovmediatechzacoorgcomnetedugsjgovmydnspenfnlabnbmbgcbcqconcontnuyksknsmyspreadshopno-ipawdevboxbarsyonidatemfuinabusavinstanceseceuguukussryzespawncsxcloud-ipmyphotosfantasyleaguetwmailcleverappsscrappingccwucloudnsftpaccessgame-serverccgovobjectsrmalpgcust*svcalp1aeappenginermalpgmyspreadshop4lima2ixsquare7cloudscale123websitefirenet12hpflowgotdnslinkyard-cloudcloudnslima-citydnskingobjectstorageedaccogoorusorgcomnetinteduaéroportxn--aroport-byaassogouvcomilgobgovcloudnses-1eu-west-1us-east-1euvipit1eurarubait1s3lbwebsites3websiteru-spbru-mskelasticcsrunstnukukcaukusnl-ams-1fr-par-1fr-par-2functionsnodess3ddlwhmrdbfnck8sifrs3-websitecockpitscblmgdbdtwhkafkpubprivs3ddlwhmrdbk8sifrs3-websitecockpitscblmgdbdtwhkafks3ddlrdbk8sifrs3-websitecockpitscblmgdbdtwhkafkk8sscalebookpl-wawfr-parnl-amsbaremetalsmartlabelinginstancesdechk2kuleuvenlaravelvoorloperurownoxazapscwhstgrvaporobservablehqelementorantagonistreclaimjoteluluencowaydiademjelasticmatlabmagentositetrendhostingaxarnetperspectajenv-arubajelejoteravendbemergenttrafficplexconvexkeliwebserveboltbegetcdnstaticson-rancherprimetelonstackitunison-servicesdnshomelinkyardbarsyjelecloudnscocomnetgovmycn-northwest-1cn-north-1s3s3-accesspoints3-websites3s3-accesspointrdsdualstacks3-deprecatedemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspoints3s3-accesspointrdsdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicn-northwest-1cn-north-1cn-northwest-1ebcomputeelbcn-north-1airflowcn-northwest-1cn-north-1oncn-northwest-1cn-north-1amazonawssagemakeramazonwebservicesdirectasgdsdhehahljlnmhbacscahqhshhihnlnynsnmofjbjzjxjtjhkcqtwgsjssxnxjxgxxzgz網絡网络公司orgmilcomnetedugovxn--55qx5dcanva-appsxn--io0a7iquickconnectcanvasitekhsjxn--od0algmyqnapcloudsrvrlessclustersrealtimestorageleadpagescarrdcrdorgmilcomnomnetedugovhidnssupabaserdpareplmypiumsoxmitotaplpagesfirewalledreplitowodevwebview-assetsvfswebview-assetss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecateds3-websites3-object-lambdaexecute-apis3s3-accesspoints3-websites3-accesspoint-fipss3-fipss3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipss3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9vfss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1us-northeast-1ap-southeast-1me-south-1af-south-1ap-south-1ap-southeast-7us-west-2eu-west-2ap-east-2us-east-2ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ap-southeast-6ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1mrapaccesspoints3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3eu-west-3ap-south-2eu-south-2computes3-ap-northeast-2elbrdss3-ap-east-1s3-sa-east-1s3-us-gov-west-1s3-eu-central-1s3-ca-central-1eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3s3-website-us-west-2s3-website-eu-west-1s3-external-1eu-central-1me-central-1ca-central-1il-central-1s3-us-west-1s3-eu-west-1s3-website-sa-east-1s3-website-ap-southeast-2ap-northeast-1ap-southeast-1s3-us-west-2s3-eu-west-2me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2s3-website-ap-southeast-1s3-1s3-globals3-ap-northeast-3eu-north-1airflowap-southeast-2s3-us-gov-east-1s3-fips-us-gov-east-1s3-me-south-1s3-ap-south-1ap-northeast-2s3-website-us-west-1ap-southeast-5s3-eu-north-1s3-ap-southeast-1s3-website-us-gov-west-1compute-1s3-eu-west-3us-gov-west-1s3-website-ap-northeast-1us-gov-east-1s3-fips-us-gov-west-1s3-website-us-east-1s3-ap-southeast-2ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3-us-east-2s3-ap-northeast-1authauthauth-fipsauth-fipseu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1rservicesbuilderstg-builderdev-builder*ociocpocsdemoinstanceeu-west-3eu-south-2ap-southeast-3ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1previeweu-4us-4us-1eu-1us-2eu-2us-3eu-3appspaasrag-cloudrag-cloud-chjcloudjcloud-ver-jpcdemonodebalancermembersipeuxvsoncillaocelotonzayalilynxsphinxfentigercustomercaracalo365cloudstaticxendevapp001testcode-builder-stgplatformapimediasiteprojedrydpagesjsu2u2-localx0desazacncoitrueu4uhkukgrbrushatenadiarymyspreadshopfrom-flfrom-wvwebspace-hosttheworkpchatenablogservesarcasmapplinzisakuratanwixsiteappchizigiizeis-into-carsdnsiskinkyadobeaemcloudis-a-therapistpgfogmyvncdojinis-an-actress1kappfldrvkozowqa2jpnmexprgmrfirewall-gatewaydynnscafjsfbsbxooguyxnbayfrom-gawoltlab-demois-a-anarchistwiardwebteaches-yogadattowebtb-hostinglive-websiteservegamegotpantheonfrom-nhsubsc-payfrom-ohvipsinaappfrom-cadyndns-officehomelinuxfrom-mahercules-appservebbsstreakusercontentfrom-okfrom-wyfastly-terrariumis-a-llamaqualyhqportalserveexchangeon-vaporvivenushopciscofreakgrayjayleaguesmetaaiusercontentfrom-iais-a-libertariansaves-the-whalestaveusercontentyolasiteoperaunitepoint2thisis-a-catererlinodeusercontentfrom-vagithubusercontentsells-for-lesshosteurcanva-appsplaystation-cloudddnsfreefrom-pafrom-prfrom-waddnskingoutsystemscloudhotelwithflightmydattois-a-nascarfanmydbserverminiserverdamnserverservehumouris-a-playerfrom-nvfrom-nmemergentagentgentappsamplifyappfrom-kyis-an-accountantnfshostserveircfrom-akpythonanywherestackhero-networkpostman-echolikescandydyndns-mailobservableusercontentserveftpfreeboxosfrom-utcdn77-storageamazonawsneat-urldyndns-serverlinodeis-a-teacherfrom-vtgleezemythic-beastsus1-pleniteu1-plenitla1-plenitpaywhirlservecounterstrikejdevcloudhealth-carereformis-into-animegoogleapisis-a-painterafricaisa-hockeynutatmetais-an-actora2hostedis-a-democratdatadetectest-le-patrondigitaloceanspacesis-a-designeris-a-hunterlinodeobjectstemp-dnsissmarterthanyoufrom-arsimplesiteevennodetownnews-stagingis-a-liberalgooglecodejelasticservemp3stdlibqualyhqpartnerdyndns-free1cooldnsest-a-la-masiondrayddnsdynuddnsfrom-orfrom-miis-a-bloggerfrom-himydobisscanvacodeis-an-engineerest-a-la-maisonupsunappdevinappswafflecellmyasustorwpenginepoweredfrom-ctservep2psame-appmyshopblocksthingdustdatalikes-piediscordsezis-with-thebanddev-myqnapcloudlpusercontentis-leetshopitsite3utilitiesis-a-personaltrainersinaappladeskis-a-cheflogoipselfipbase44-sandboxnospamproxyalibabacloudcsmesswithdnsauthgearappsiamallamawithgooglelutrausercontentmochausercontentframercanvasmytabitdyndns-homew-credentialless-staticblitzcpserverdiscordsaysis-a-nurseappspotatlassian-isolated-3premotewdfrom-mtwixstudiocode0emm180rmyactivedirectoryawsappsmytuleapdnsabrpolyspaceqbuserrenderbuiltwithdarkboutirgotdnsabrdnsdopaascanva-hosted-embedawsglobalacceleratorhomesecuritypcmyiphostditchyouripclever-clouddyndns-ipon-aptibleis-a-musiciansecuritytacticsappspaceusercontenthomeunixstrapiappsame-previewcf-ipfsmycloudnaselasticbeanstalkis-certifieddontexistkasserverik-serverdrive-platformatlassian-3pfirebaseappherokuappawsapprunnerbarsycenteris-a-cubicle-slaveservehttpmyshopifyis-a-guruquicksytessiiitesorsitesmagicpatternsappis-a-cpameteorappfrom-wiis-a-rockstarbumbleshrimpdattolocalreadthedocs-hostedfrom-rifamilydsdyndns-picsplesknsbplaceddnsaliasdynaliasdyndns-remotedoomdnsip-ddnsblogdnsis-a-doctorroutingthecloudamazoncognitobarsyonlinedsmynasddnsgurucloudflare-ipfsdeus-canvasfrom-idsmushcdnpagespeedmobilizerdyndns-at-homeunusualpersonhosted-by-previderis-a-republicandyn-o-saurstreamlitappworkisboringonthewificprapidqualifioappis-uberleetis-slickgetmyipwpdevcloudtypeformdyndns-at-workgentlentapismynascloudw-corp-staticblitzfrom-ingeekgalaxyservebeerfrom-mdonrenderspace-to-rentaivencloudappspacehostedonfabricawafaicloudcodespotblogspotatlassian-3p-us-gov-modfrom-ndfrom-msis-a-techieis-a-studentcustomer-ociis-a-photographerdurumisfrom-ksmassivegriddyndns-wikiis-an-entertaineris-a-hard-workermysecuritycamerafrom-mnrackmazedyndns-blogis-a-bulls-fanwritesthisblogfreemyipsimple-urlfrom-sdreservdauthgear-stagingest-mon-blogueuris-into-gamesrice-labsxtooldevicesakurawebis-an-anarchistoraclecloudappsdyndns-worksells-for-urhcloudfrom-dcfastvps-serverwpmucdnis-a-geekscrysecfrom-txis-into-cartoonsmodelscapetrycloudflarelocaltonetstreak-linkbalena-devicesfrom-njforgeblocksfreebox-oswebadorsitefrom-ncdoesntexisthobby-sitestreaklinkshomesecuritymacownprovidertuleap-partnersdattorelaywphostedmailalpha-myqnapcloudservequakeis-a-socialistservehalflifepivohostingdynuhostingquipelementsw-staticblitzdyndns-webfrom-deproject-studyaliases121is-not-certifiedhercules-devis-a-financialadvisorservepicsis-a-greenloseyouripfrom-ilwithyoutubemwcloudnonprodwiredbladehostingdnsdojofrom-tnpixolinomyqnapcloudis-an-artisthostedpiis-a-landscaperauiusercontentoaiusercontenton-forgeis-a-conservativedreamhostersnet-freaksapps-1and1is-goneencoreapifastly-edgefrom-nesalesforcefrom-scdeployagentoraclegovcloudappsfrom-alis-a-lawyercechirevultrobjectsstufftoreadisa-geekddnsgeeklovableprojecttry-snowplowfrom-moblogsyteis-a-bookkeepernogmyforumravendbmyboxdeelementoredsaacficogoorinforgcomgobnatneteduidstoreorgcomnetintedudevnomepublorgcomneteduathgovtestscalculatorspaynowinfoquizzesresearchedcloudnsfunnelsassessmentsjscaleforcetmacltdorgmilcompronetgovbizpresseklogesrsccloudcustomfltusrcloude4corealmgovmunicontentproxy9metacentrumdyndyndyndnsdynpagespages-researchitionoccustomercomymyspreadshopipv64diskussionsbereich4limacomrub2ixfirewall-gatewayddnssspdnsbarsykeymachinesquare7myhome-serverspeedpartnercommunity-proschuldockxenonconnectgünstigliefernbwcloud-os-instancedyndnssecmy-routerxn--gnstigliefern-wobin-butterl-o-g-i-nisteingeekin-dslin-berlinin-brbfuettertdasnetzleitungsenin-vpnlcube-serverdyn-ip24logoipdyn-berlinruhr-uni-bochum12hpgoipsrvdnsfruskygit-repossvn-reposinternet-dnsgünstigbestellenhome-webserverxn--gnstigbestellen-zvbbplacedheimdnscosidnswebspaceconfiglima-citydyndns1istmeinvirtualuserschulplattformmy-gatewayddnsseclebtimnetztest-iservmein-iservvirtual-userhome64iservschuletaifun-dnstraeumtgeradeschulserverdynamisches-dns123webseitednshomehs-heilbronndnsupdaterbssgraphicdwadpdwdaepeweaawapaafpfwfabwbpbacwcpcciwebuserapiobjectsidsiskospockkimodorikerbonesteamsparisjanewaypicardglobaltarpitreedpikekiraworfsulukirkarchertuckerhackercanarywesleystagingprereleaset3r2lpbravepanelngrokiservstglclcrmerpflypagesbarsyvivenushoplocalcertlocalplayerbearbloggatewaydeno-stagingis-not-ais-a-goodbotdashvercelmocha-sandboxplatter-appreplitgithubpreviewworkersinbrowserevervaultdetais-ahrsndenoxmitmodxmyaddrstorageapipayloadgrebedocruncontainersstgstagelclstageloginlineis-a-fullstackleapcellngrok-freeis-coolstoragewebharemediatechlibp2pdiscourseimaginecomyspreadshopstoreregbiz123hjemmesidefirmcoorgcomnetedugovsldorgmilcomwebgobartnetedugovtmorgpolcomsocartnetedugovassoagrondiscoodontk12medcuegyecpaabgengorgmilgalsaltulcomadmesmgobpubdocmonfindgnriouioproartlatvetnetfotedulojgovntrturibrbarxxxofficialbasechefprofmktgpsictechinfoarqtcontdentrrpppsiqgit-pagesritmedfieorgcomlibprieduaipgovriikmeactvsportorgmilcomscieunnetedugovnameinfopintouchtawktotawkmyspreadshoporgcomnomgobedu123miwebcomputeorgcomnetedugovbiznameinfocognito-idpeusc-de-east-1onjelasticnxaspdnsbarsydirectwpdeuxfleurstransurldogadoprvwcloudnsamazonwebservicesdnshomeuserpartycokoobinmkmstorjfidemopaasdymyspreadshopalandkapsiikixn--hkkinen-5wacloudplatformdatacenterhäkkinen123kotisivuidacorgmilcompronetedugovbiznameinforadioorgcomneteduuserexperts-comptablestmmyspreadshopgretaprdcomnomynhccifbxoshuissier-justicenotairesaeroportfreeboxoson-webavocatassoportgouvkdnschirurgiens-dentistes-en-franceavouesfbx-os123sitewebveterinairechirurgiens-dentistespharmacienchambagrimedecinfreebox-osdediboxgoupilemszicpyicpvicppleysheezypagesedugovcnpyorgcomcybllcpvtnetedugovtnxonlineschooldaemond6atcopanelorgnetplybotdashstackitkaasorgmilcomnetedugovbizmodltdorgcomedugovcoorgcomneteduappwriteacorgcomnetedugovcloudtranslateusercontentorgcomnetedumobiassoorgcomnetedugovbarsysimplesitediscourseindorgmilcomgobneteduorgcomwebnetedugovguaminfonxhra教育敎育網絡网絡组織組織网络網络组织組织公司政府個人个人箇人ltdorgcomincneteduidvgovxn--uc0ay4axn--55qx5dxn--mk0axixn--io0a7ixn--uc0atvxn--zf0avxxn--lcvr32dxn--od0algxn--wcvs22dxn--gmqw5axn--od0aq3bxn--mxtq1mxn--ciqpnxn--tn0agxn--gmq050iorgmilcomgobneteduiservwp2tempurlmircloudfreesitewpmudevmyfastgadgetcloudaccessjelehalfboltfastvpsemergenteasypanelopencraftizcombrendlynamefromrtpersoadultmedorgpolrelcomproartnetedufirminfoassoshopcoopgouvtmcomediahotelforumvideosportorgsexagrargameslakaseroticaerotikatozsdereklamcasino2000filmsuliinfoboltshopprivnewsszexcityutazasjogaszkonyveloingatlaneacaicogoormyᬩᬮᬶmilwebschnetkopbizzonedesaponpesxn--9tfkymyspreadshopgovmytabittabitorderravpageaccok12idforgnetgovmuniltdplcaccotttvorgcomnetmeca6g5gpgamubacaicniocoukuptverdruscsdelhiindorgmilcomwebnicfingenpronetintedugovresbizbiharbarsyinternetbusinessschooltravelsupabasealumnigujaratfirminfoaeropostbankcoopindevscloudnsno-ipbarsybarrell-of-knowledgebarrel-of-knowledgensupdategroks-thisdnsupdatefor-ourknowsitalldvrcammittwalddynamic-dnsv-infowebhopselfipdyndnshere-for-moreilovecollegemayfirstforumzcloudnsmittwaldservertypo3servergroks-theeusekd1uk0cdndyndnsidrawsainaueuapjpusstagemocksysdevicesclientcustreservdcustdevdisrecprodtestingcobeebyteutwenteboxfusebravepstmndedynngrokorgmilcomnomhzcnetedugovqcxqzzbarsythingdustmo-siemensrb-hostingprotonetfh-muenstergitbookbluebitecloudbeesusercontentnodeartkiloappsforgerockdarklangresinstagingapigeebubbleb-datascryptedhypernodedappnodepantheonsitegitlabgithubkeeneticvirtualservercleverappshostyhostingon-rioedugitticketstelebiton-acornwixstudioon-k3sicp0icp12038jeleqotobigvlairbubbleappsmyaddrstolosmyrdbxwebflowdrive-platformbeagleboardhasura-applolipopdefinimavaporcloudmusicianwebflowtestazurecontainerresindevicereadthedocsloginlineeditorxmoonscalesandcatsbasicserverwebthingsbrowsersafetymarkbeebyteappbitbucketidaccovistablogorgschnetgovxn--mgba3a4f16axn--mgba3a4fraarvanedgeايرانایرانjclaspeziapdudcefegelemeperetevebacanatavaparasabgagfgogrgpgalclblimfmrmcbmbvbfclcmcvcrcpcchlimifibicivipirisimncnbnanenrnpntnnolomobocoaogorosopotoptvtatctbtmtltotpulunutpspapaqsvpvvvtvavvrtrsrprgrfrcrbrarorkrvstsssbscsmsispzczbzbozen-suedtirolmyspreadshopxn--bulsan-sdtirol-nsbxn--valledaoste-ebbtrentinoaltoadigetrentin-sued-tirolxn--forlcesena-c8axn--forl-cesena-fcbxn--bozen-sdtirol-2obtriestetrentinsuedtiroltrentino-s-tirollecceudineaostesienaparmaluccapaviagenoapaduaaostamonzaabruzzoternirietiturinmilanbozenlaziofermoleccocuneonuoropratola-speziavdataaligfvgpugmolcalcamlomumbsicpmnvenvaoedugovabrsarmaremrbastoslazibxosfirenzetrentinosüdtirolval-d-aostavalle-aostamessinacremonaravennatoscanatrentin-suedtirolbolognacalabriaurbinopesarofriuli-v-giuliaogliastraxn--valle-aoste-ebblaquilaandriatranibarlettasyncloudtrentinosudtirolxn--valle-d-aoste-ehbaostavalleyvalled-aostatrentino-alto-adigevallee-d-aostexn--balsan-sdtirol-nsbpistoiasicilialucaniacataniaiserniaperugiabresciaveneziagorizialiguriaimperiabulsan-suedtirolbalsan-suedtirolbarlettatraniandriaxn--trentino-sdtirol-szbforlì-cesenatuscanyvallée-d-aostemantovavallée-aostecasertapiemontevalleaostaval-daostafriulivgiuliatrevisoforli-cesenavalléedaosteferrarapescaravald-aostatrentino-altoadigefriuli-vegiuliavallee-aostecarboniaiglesiastarantomediocampidanovalleedaostetrentinosud-tirolcampobassotrentinsüd-tiroltrentinosüd-tirolmonzabrianzatrentino-südtirolxn--trentino-sd-tirol-c3bpotenzacosenzavicenzaemiliaromagnavenicefrosinonemarchepordenonetrentinosued-tirolvaresemolisevalléeaostefriuli-veneziagiuliabasilicatalatinaanconasavonaveronamodenaaquilabiellabolzano-altoadigepugliafoggiaumbriatrentino-stirolgenovapadovamateranovararagusapiacenzatrentinostirolvalleeaostetempio-olbiatrentinsudtirolmassa-carrarafriuliveneziagiuliatrentinosuedtirolandria-barletta-tranitrapanixn--cesenaforl-i8amaceratacaltanissettaascoli-picenobrindisicarraramassacagliaririmininapolivibo-valentiachietibulsan-sudtirolbalsan-sudtiroltrentino-a-adigebulsanbalsaniglesiascarboniamilanotorinoteramodell-ogliastraarezzotrentinoalto-adigerovigotrentovenetoiglesias-carboniatrentino-sud-tirolaltoadigereggio-emiliareggio-calabriasardegnatranibarlettaandriapiedmontxn--sdtirol-n2amedio-campidanotrentino-süd-tirolfriuli-vgiuliafriuli-ve-giuliaromeennaromapisa32-b16-b64-blodiastibarineencomonaplesforlicesenailiadboxosalessandriasicilytrani-barletta-andriaxn--trentin-sdtirol-7vbpesarourbinotrentinsued-tirolcesena-forliforlìcesenaemilia-romagnamonzaebrianzaxn--trentinsdtirol-nsbtrentinos-tiroltrentinsüdtirolvalledaostaolbia-tempiocampidanomediovibovalentiasassarivalle-daostalombardyfriulivegiuliareggioemiliamonzaedellabrianzaalto-adigevercellitrentin-sudtiroltraniandriabarlettatrentino-sudtirolascolipicenobozen-südtirolfriulive-giuliaflorencevaldaostaxn--cesena-forl-mcbcarbonia-iglesiasaosta-valleycarrara-massadellogliastratrentinoa-adigexn--valleaoste-e7apesaro-urbinoxn--trentinosdtirol-7vbxn--trentin-sd-tirol-rzbxn--trentinsd-tirol-6vbtrani-andria-barlettatrentin-süd-tirolxn--trentinosd-tirol-rzbgrossetomonza-e-della-brianzasüdtirolreggiocalabriatrentinoaadigetrentin-südtirolfriuliv-giuliaverbaniacampaniatrentino-aadigefriulivenezia-giuliasardiniaandriabarlettatranibarletta-trani-andriacatanzarooristanourbino-pesarocesena-forlìvalle-d-aostacampidano-medio123homepagesiracusatempioolbiasuedtirollombardiaavellinocesenaforlìtrentinofriuli-venezia-giuliabozen-sudtirolandria-trani-barlettabulsan-südtirolbalsan-südtirolmonza-brianzabolzanotrentino-sued-tirolbellunosalernolivornocrotonesondriodnshometrentinsud-tirolmassacarraratrentin-sud-tiroltrentino-suedtirolviterbobergamocesenaforliolbiatempiopalermobeneventoagrigentoofcoorgnetfmaitvphdengorgmilcomschnetedugovperagrikanieasukehandachitatokaiaisaikonanoharuamaobuhigashiuraowariasahiinuyamatobishimaiwakurashitarainazawatoyonegamagorimihamatoyotataharakariyayatomioguchikomakimiyoshinishiotokonamekiyosuchiryutoyohashiokazakiisshikikasugaikotakiratoeianjotogofusosetohazutsushimashinshirotakahamanisshinshikatsuhekinantoyokawaichinomiyatoyoakeodateogataakitaikawakyowahonjoogayurihonjonoshirokamiokakatagamimitanegojomeyokotekosakadaisenkazunonikahohonjyomoriyoshimisatohappoukamikoanihachirogatahigashinarusesembokufujisatokitaakitaitayanagiowanitakkomutsutsurutahirosakigonoheoirasetowadamisawanohejiaomorishingohiranairokunohehashikamitsugarushichinohehachinohenakadomarisannohekuroishisakaeisumiasahiotakiinzaiabikomatsudoyachiyomutsuzawakujukuriomigawakashiwatoganemihamanaritasakuranagaramobarahanamigawachoshishiroichoseikozakishisuikatorimidorichonankyonanfuttsuonjukufunabashinagareyamanodasosatakochuotohnoshourayasukimitsuyokaichibayotsukaidosodegauratateyamakamagayayokoshibahikariyachimatakatsuuratomisatokisarazukamogawaichikawanarashinoichinomiyashimofusaminamibososhirakoichiharaoamishirasatoikatahonaiainansaijoseiyoiyoozuuwajimaniihamanamikatamasakiuchikokihokutobetoonshikokuchuomatsuyamaimabarikamijimakumakogenyawatahamamatsunosabaeikedaobamasakaifukuiohionotsurugamihamawakasaminamiechizeneiheijikatsuyamatakahamaechizensoedaukihaomutaokawanishiogoribuzenonojosueumiokiotochikugosasagurisaigawamizumakishinyoshitomikurumekurateyamadakasuganakamamiyamanogatatakatahakataiizukakawaratagawakasuyaashiyainatsukimunakataminamitsuikishonaikurogifukuchikeisenhigashimiyakoshinguyukuhashiokagakiyamekogaongausuikahotohochuotoyotsumiyawakadazaifuhisayamatachiaraiyanagawanakagawahirokawachikujochikushinochikuhochikuzennamieotamaokumashowateneiiwakikoorinangoononishigoshimogoomotegomishimafukushimaasakawakagamiishishirakawaiitatefutabahiratayugawahanawakitakatakawamatakunimiyabukibandaihigashihironoyamatomiharuyamatsuriaizubangedatesomaaizuwakamatsuyanaizuaizumisatonishiaizuizumizakikitashiobarataishinkaneyamakoriyamainawashirotanagurafurudonosamegawasukagawaishikawatamakawaikedaogakitaruiginanenahashimahichisonakatsugawaibigawashirakawamizunamiminokamomitakekawauesekigaharatomikasakahogikitagatayamagatatajimianpachimotosuyaotsukakamigaharahidakanisekitokigujominogodoyorogifukasamatsutakayamawanouchihigashishirakawakasaharashimonitatsumagoichiyodakannakanrashowameiwakiryuotaoratomiokafujiokaitakuranaganoharahigashiagatsumatakasakishibukawaminakamikatashinatsukiyonokawabanumataannakaoizumimidorishintoisesakiuenoyoshiokakusatsutakayamanakanojonanmokutamamuratatebayashimaebashiotakekaitadaiwahongofuchukuietajimashobaramiharahatsukaichihigashihiroshimamiyoshikumanokurenakasakaseraseranishiasaminamifukuyamashinichionomichiosakikamijimajinsekikogentakeharaotobenanaeikedatohmaozoraobiraabirakyowaeniwataikibibaisharirebunerimohiroooketootarupippunishiokoppechitosefurubirahakodateshiranukakitahiroshimakushiroobihironanporoiwamizawaniikappukunneppufukushimanakasatsunaitoyourakuromatsunaiakabirakamisunagawashibechaurakawakamifuranonakatombetsuasahikawashimokawakayabeokoppebiratoriabashirisaromaatsumanumatahidakabifukamukawamikasahorokanaitoyotomisarufutsuhigashikawaishikarikitamiyoichiesashiiwanaitomariminamifuranoakkeshifuranotoyakoyakumootoineppushikaoishiraoinemuronayorohaboroashorobihororishirifujiutashinaihokutotakasuebetsuurausuassabukikonaishimamakinaiedatetoyabieinikiesanuryuoumuteshikagarikubetsuashibetsukimobetsuaibetsutobetsusobetsuembetsushimizuchippubetsurishirihokuryuhoronobeshintokutsubetsushibetsuhonbetsumombetsutsukigatakuriyamakoshimizushiriuchikutchanmurorannoboribetsukamishihorowassamushinshinotsukembuchiwakkanaikamoenaikiyosatotakinoueshikabesunagawafukagawanakagawatakikawakamikawahigashikagurahamatonbetsumatsumaemoseushirankoshishakotanimakanemashikeotofuketomakomaisandatambaitamiawajikasaiasagoshisoonoakoyashirotoyookaminamiawajiinagawafukusakitakasagokamigorikasugaharimayokawaashiyahimejiakashitaishiaogakisannantakinosumototakarazukanishinomiyashingugoshikinishiwakiyokatakaaioimikisayoyabukawanishiamagasakisasayamashinonsenkakogawaichikawakamikawatatsunotsukubaiwamaogawaasahisakaitokaioaraiitakobandodaigosuifuinaamikasumigaurakashimaomitamayachiyoshimodatetomobetoridehitachinakainashikisakuragawakasamayawaramoriyahitachiomiyanamegatayamagatahitachikamisuushikutakahagiibarakitonekoganakasowayukimihojosomitoryugasakishimotsumafujishirotsuchiurachikuseihitachiotashirosatotamatsukuriuchiharashikahakuinanaotsubatawajimakahokukawakitatsurugikaganominotosuzuuchinadakomatsuanamizunakanotohakusannonoichikanazawaiwateshiwafudaikawaimoriokaofunatohanamakikuzumakikitakamininohekunoheyamadayahabasumitaichinosekitanohatahiraizumirikuzentakatajobojiotsuchihironomiyakoiwaizumikarumaiichinohenodakujitonooshushizukuishifujisawamizusawakamaishikanegasakimannoutazukotohiraayagawazentsujihigashikagawauchinomikanonjisanukimarugamemitoyotakamatsutadotsunaoshimatonoshoakuneamamiizumihiokiyusuikinkoisasookouyamanakatanekagoshimakanoyaisenkawanabeminamitanemakurazakitarumizunishinoomotematsumotosatsumasendaioimatsudaayaseebinamiurazushinakaiodawaraiseharasagamiharahakoneaikawakaiseiatsugitsukuihadanoyamatoyamakitazamaoisochigasakininomiyayokosukakamakuraminamiashigarafujisawasamukawakiyokawahiratsukayugawaraokawaumajikochitsunootoyoakiinonishitosayasudahidakamiharasakawaniyodogawahigashitsunokagamigeiseisusakiotsukinaharisukumomurototosakamiochitoyotosashimizumotoyamanankokunakamurakitagawayusuharaogunichoyoukiasoutoozugyokutoamakusamifunetakamoriyamagaminamataminamiogunikikuchisumotoyamatonagasumashikiaraokumamotokamiamakusanishiharayatsushiroayabeseikasakyoideineujinakagyokameokakyotangokyotanabekyotambaminamiyamashiroyamashinatanabeyawatawazukaminaminantanmiyazuhigashiyamafukuchiyamakitamukokamojoyokizumaizuruujitawaraoyamazakinagaokakyokumiyamakawagoeinabeshimameiwaasahitaikiudonoisetsukisosakikuwanamihamamiyamasuzukatamakimisuginabarikumanokomonominamiisewataraitobakiwatakikihotadomatsusakayokkaichikameyamaureshinoishinomakishichikashukuohirataiwaosakizaohigashimatsushimashikamaiwanumashibataogawaraonagawakawasakiseminemarumoriminamisanrikukakudamuratawakuyatomiyanatoriwataritagajomisatotomekamirifushiroishimatsushimayamamotoshiogamafurukawahyugaebinotsunosaitoayakushimanobeokakitauramiyazakitakazakigokaseshiibamimatashintomikunitomikitakatakobayashikawaminamitakaharukijotakanabemiyakonojonishimeranichinankitagawakadogawamorotsukakisofukushimaminamimakisakaeobuseikedaogawamiasaokayaasahiotakiotarichinoinaomichikumakomaganechikuhokukaruizawayasuokaooshikaikusakaminamiaikitogakushimatsukawakawakamitateshinatakamorikitaaikishiojirimiyadahakubaiizunaiijimaiiyamamiyotasuzakayasakatoguraookuwanagawaminowahirayayamagataminamiminowafujimiomachisakakitakaginaganonakanosakuhokomoronagisoshinanomachiwadauedaiidaharasuwatomiachiaokianankisosakunozawaonsenagematsutakayamashimosuwamatsumotoyamanouchinakagawamochizukiazuminotatsunoobamaomuraseihiunzenosetofutsuikichijiwanagasakiisahayahasamisaikaikawatanasasebohiradokuchinotsugototogitsutsushimashimabarashinkamigotomatsuurayamazoekashibaikomakawaitenrioyodosangokoryoudaojiikarugayamatokoriyamatenkawakatsuragikurotakikawakamimiyakemitsuetakatorikamikitayamayamatotakadahegurishinjokanmakisakuraitawaramotogoseoudanarasoniandokawanishishimoichihigashiyoshinokashiharashimokitayamanosegawayoshinomintsivorytopazsakuragehirnsumomoaseinetopalmail-boxmokurenyoitamuikaojiyagosensanjoaganomyokoseiroagaomishibataniigatanagaokamurakamiuonumayuzawakariwatagamitainaitsunanminamiuonumatochioyahikojoetsuseiroukamosadoizumozakitokamachiitoigawasekikawakashiwazakitsubamemitsukekokonoesaikiusukibeppuusahimeshimakunisakihasamataketatsukumihitaoitahijikusuyufukujukamitsuebungoonobungotakadaibaraniimibizentsuyamaokayamakasaokahayashimayakagemaniwaakaiwamisakishinjotamanotakahashikibichuowakesojanagishookumenannishiawakurakurashikiasakuchisetouchikagaminosatoshotomigusukunakagusukuyaeseizenaurumaiheyaaguniogiminanjokinminamidaitokitanakagusukuyonaguniokinawaishigakikunigamiurasoekadenataramahiraraginozataketomishimojizamamitonakiitomanhigashimotobuyonabarugushikamionnanahanagohaebarukumejimakitadaitonakijinnishiharayomitanginowantokashikiishikawaikedasuitaminohizuminishisakaikananabenodaitoosakasayamayaokishiwadatadaokakaizukatondabayashichihayaakasakakumatorikadomasayamahigashiosakashijonawatehirakatataishimisakitajirihannansennankatanotoyonominatosettsuhigashiyodogawaibarakinosekitachuohigashisumiyoshifujiiderakashiwaraizumiotsutoyonakamatsubaramoriguchiizumisanoshimamototakatsukineyagawahabikinotakaishikawachinaganoyoshinogarikamiminearitaouchiimarihizenogikashimaariakekiyamafukudomikitagatakitahataomachigenkaikanzakinishiaritakyuragisagataratosutakushiroishikaratsuhamatamakouhokukawagoeyoshidasatteogoseirumaasakaurawaogawaniizaomiyayoriiotakishikihonjooganohannohanyuinasaitamaokegawaarakawayoshikawayokozehasudasayamahidakafukayachichibuiwatsukiryokamiyoshimikamiizumifujimiwarabiranzanmiyoshiminanoyashiosakadosugitomisatohigashichichibutodasokakukiyonokazoshiraokakasukabekounosukawajimatsurugashimamiyashirokitamotohatoyamamoroyamahatogayakumagayakawaguchinagatorokamisatomatsubushinamegawatokigawakamikawafujiminohigashimatsuyamakoshigayatokorozawas3isk01isk02ryuohkoseikonanaishorittotakashimamaibarahikonetorahimenishiazaikokagamokotoyasuotsukusatsunagahamamoriyamatoyosatotakatsukinotogawaomihachimanhigashiomiakagiunnanizumogotsuamayatsukakakinokimatsuehamadamasudahikawahikimiokuizumoyasugiyakumomisatotamayuohdahigashiizumookinoshimanishinoshimatsuwanoshimaneshimadafujiedayoshidashimodagotembaiwataatamikosaiyaizuitoizumishimahaibaramakinoharaomaezakikawanehonkannamisusonohigashiizufukuroinumazukawazufujiaraishizuokahamamatsushimizuizunokunimatsuzakimorimachiminamiizunishiizukikugawakakegawafujikawafujinomiyaujiietsugaoyamayaitaohiranikkoashikagakuroisokanumasakurashioyakarasuyamamotegiichikaikaminokawatochigihagamokanogisanobatonasumibunasushiobaranishikatautsunomiyaiwafunemashikoshimotsukeohtawaratakanezawaitanokomatsushimatokushimaichibaminamiaizumiwajikikainanmiyoshinarutomimamugiananmatsushigesanagochishishikuinakagawamachidachiyodakomaefussainagitaitochofufuchuomeotahigashiyamatotoshimaokutamaaogashimakodairaedogawaarakawahachiojishinagawatachikawashibuyasuginamihinodekiyosesumidaoshimanerimamitakahamuraadachinakanomizuhobunkyomegurominatokoganeihigashikurumekokubunjihigashimurayamamusashimurayamatamakitahinochuokotokatsushikakouzushimaogasawaraakishimakunitachishinjukusetagayamusashinohachijoitabashiakirunohinoharachizunanbukotouramisasawakasayonagokogehinoyazutottorinichinansakaiminatokawaharaoyabetairainamiasahinantoimizufuchutakaokakurobeyamadajohanatoyamatonaminyuzenfunahashinakaniikawanamerikawaunazukitogahimiuozufukumitsutateyamakamiichiiwadearidayuasainamitaijikatsuragiaridagawatanabemihamahidakakainankiminomisatoshingushirahamakamitondayurakozakoyagobokitayamawakayamakudoyamahashimotokushimotokozagawahirogawakinokawanachikatsuurarsuseroeoishidasagaeoguniasahinagaitendonanyoobanazawanishikawasakataohkuratozawamikawamamurogawayamagatafunagatatakahatashonaishinjokahokuiideyuzakawanishitsuruokakaminoyamayamanobeshiratakamurayamanakayamakaneyamahigashineyonezawasakegawamitouubeyuuabushimonosekitabuseoshimatoyotaiwakunihikarishunannagatohagihofukudamatsutokuyamashowadoshitsurunanbukoshukaiminami-alpsnirasakikosugeotsukioshinohokutominobuyamanashifuefukichuokofuichikawamisatoyamanakakonakamichitabayamanishikatsuranarusawafujikawahayakawafujiyoshidafujikawaguchikouenohara長野京都岐阜大阪三重群馬千葉滋賀佐賀奈良adednelgaccogogror秋田愛知高知埼玉沖縄栃木熊本岩手青森山梨新潟島根鳥取長崎香川宮城石川大分宮崎茨城山口兵庫山形徳島広島福島福岡岡山富山静岡愛媛福井東京xn--4it168dhatenadiaryxn--vgu402ckawaiishophatenablogcocottenamaste北海道penneehimeiwateversestabachibashigagonnagunmapermahaccaakitaosakauh-ohblushkochiaichifukuikuroncapooitigohyogotokyokyotopunyuthickcheap0t00g00j0mie2-ddaapyawjg0amfemsubxiiboomoobutchueekpgwrgrherskrboyrdyupperunderflierchipsmydnsheavyangryhippygirlyrulez神奈川鹿児島和歌山bambinaxn--nit225kokayamasaitamaxn--k7yn95exn--1lqs03nsapporoparasitelolipopmcxn--efvn9sniigatafukuokatokushimafukushimahiroshimakagoshimafakefurokinawaxn--8pvr4ucoolblogxn--0trq7p7nnkawasakinagasakimiyazakichilloutxn--8ltr62kxn--klty5xpeeweezombiecutegirlxn--rny31hxn--uuwu58axn--ntso0iqx3axn--djrs72d6uytoyamanikitanyantakagawamimozanagoyaboyfriendxn--2m4a15egreaterchowderegoismyamagatafashionstorexn--elqq16hxn--pssu33lsendaimiyagixn--rht27zpecoriaomorisaloonwatsonvivianxn--djty4knobushipigboatnaganopinokoxn--f6qx53asadistvelvetsecretxn--5js045dchicappayamanashiibarakidigickgirlfriendxn--1lqs71dmongolianxn--c3s14mxn--qqqt11mtochigixn--5rtq34kparallelo0o0mondkobesagabonadecaoitanarafoolkilldecimainhiholomosblokilociaoundopupugifutankcrapflopnooroopsmodsholyjeezstripperpepperbittershizuokaxn--rht3dkitakyushureadymadeicurusversusmatrixxn--rht61ehungryfloppygloomycrankyhandcraftedlittlestarxn--klt787dxn--kltx9awhitesnowsunnydaytottorilovepoptheshopbuyshopxn--5rtp49cxn--d5qv7z876cwebaccelxn--kbrq7oxn--4pvxsxn--1ctwolovesickkumamotocatfoodxn--tor131oyokohamawakayamatonkotsuxn--ehqz56nxn--uist22hxn--6btw5axn--kltp7dyamaguchifrenchkisspussycatxn--4it797kxn--uisz3gbabybluexn--zbx025dnetgamersxn--7t0a264ckanagawaxn--6orx2rishikawaxn--ntsq17ghalfmoonschoolbusjellybeanxn--mkru45iusercontentlolitapunkxn--32vp30hsakurastoragehokkaidoshimanecandypopbabymilksupersaleweblikeraindropbackdropwebsozaikikirarahateblodaynightmeneacsccogoormobiinfoaeusxxorgmilcomnetedugovorgcomnetedugovbizinfotmprdorgmilcomnomedugovassnotairespresseassocoopgouvveterinairemedecinpharmaciensorgnetedugovtraorgcomedurepgovmeneperekgacscaiiocogoitoresmshsseoulbusanulsandaeguc01milvkimmvchungnamjeonnamjeonbukeliv-dnsgyeonggijejueliv-cdnincheondaejeongangwongyeongbukgwangjuchungbukgyeongnameliv-apicoeduindorgcomembnetedugovorgmilcomnetedugovjcloudorgcomnetintedugovperbnrinfocooyorgcomnetedugovipfscanvamypepw3sstorachakeeneticjoinmcinbrowserdwebcyonnftstoragemyfritzaemewphlxachotelltdorgcomwebsocschngonetintedugrpgovassnomgacsccoorgnetedugovbizinfo123websiteidorgmilcomasnnetedugovconfidmedorgcomplcschnetedugovaccoorgnetgovpresstmassoirseproxaccosoundcasthoptocraftvp4c66orgnetedugovitsmcdirmyboxbarsyedgestacksynologylogintonohostwebhopdiskstationi234tcp4hoocgroknoipprivmydsddnsdnsforlohmustransipdscloudfilegear-sgbrasiliafilegearframerbarsybarsyonlinecoprdorgmilcomnomedugovinforgcomnetedugovnameacprorgcomartnetedugovpresseinfoassoinstgouvorgnycedugovbarsydscloudjuorgcomnetedugovminisiteaccoororgcomnetgovorgmilcompronetintedugovbizmuseumnameinfoaerocoopaccoorgcomnetintedugovbizcooporgcomgobneteduorgmilcomnetedugovbiznameaccoorgmilneteduadvgovcoorgcomnetaltgovforgotherhiskeeneticispmanagernomassoprod5476132eastasiacentraluswesteuropewestus2eastus2rucdnwest1-usfra1-desandboxjls-sto1jls-sto3jls-sto2aglobalabglobalsslmapprodfreetlsmaplon-1lon-2ny-1fr-1sg-1ny-2paassnwebpaashostingjelasticnordeste-idcsocuserpagescwebfileblobservicebuscoreatlricnjsjelasticwebsitestoragesezagbinruhuukjptsmyspreadshopmynetnameakamaiorigin-stagingfrom-coipv64dynv6cdn77serveblogadobeaemcloudhicamsprytdnsupno-ipownipde5ovhicpfirewall-gatewaysytesmypsxbarsyusgovcloudapimyamazemyradwebakamaihdsaveincloudfastlylbfrom-lasubsc-paysquare7in-the-bandblackbaudcdnhomelinuxoninfernoctfcloudservebbsdns-dynamiccloudfrontakamai-stagingipifonyham-radio-opsenseeringclickrisingcommunity-profrom-nylocalcertgrafana-devedgesuite-stagingcloudflareanycasteating-organicatlassian-devmydattofeste-iplocaltotorprojectknx-serveredgekeycloudflareglobalcloudyclustercasacamserveftpakamaized-stagingakamaiorigindns-cloudmyeffectboomlabotdashbuyshousestwmailhetemlazure-mobilein-dslthruhereredirectmedynuddnsbouncemesupabaseluyanicloudappakamaicloudfunctionsdebiannhlfanpgafanstatic-accessin-vpnmysynologymafeloappudohomeftptrafficmanagersiteleafseidatmemsetcloudflarecloudaccesskeyword-onazure-apiis-a-chefdoes-itgets-itwebhopselfiphomeipkicks-assedgesuitewindowsserver-ontunnelmolemydissentscrapper-sitecloudflarecnuni5srcfggffiobbzabcdenodynuopikddnsvpndnsakadnselastxkinghostvps-hostfastlyhomeunixazureedgeshopselectdontexistmyfritzcloudjiffyalwaysdatasells-itsquaresbroke-itazurefddattolocalat-band-campmeinforumfamilydsazurestaticappsdefinimabplaceddnsaliasdynaliasnow-dnsblogdnsroutingthecloudendofinternetdsmynasakamaiedgemymediapcadobeio-staticakamaiedge-stagingakamaihd-stagingddns-ipprivatizehealthinsurancelive-onkrellianschokokeksmassivegridmysecuritycamerarackmazeserveminecraftfrom-azis-a-geekakamaizedmoonscalecryptonomicoffice-on-theusgovtrafficmanageradobeioruntimeedgekey-stagingreserve-onlinechannelsdvrdnsdojousgovcloudappcdn77-sslapps-1and1podzoneazurewebsitesdynathomescaleforceyandexcloudvusercontentisa-geekcdn-edgescoaemalcesappwriteazimuthtlonarvonoticeablestorecomwebrecnetperotherfirminfoartslgdloncogoiltdorgmilcolcomplcschgenngonetedugovbiznamefirmmobiacincoorgmilcomnomwebgobnetintedubizinfocomyspreadshopdemongovtransurl123websitehosting-clusterkhplaycistrongsnesosvalervålerxn--vler-qoaossandeheroysandeherøybøboheroyherøyxn--hery-iraxn--b-5gavalerbøboxn--b-5gasandesandexn--hery-iraxn--vler-qoavålerhåreålaahavaofsfvfhlolnlalrlhmfmtmahcostntbuåstrmreigersundmyspreadshopgálsáeidsvolltingvollgildeskalflorøvadsøvardøvanylvenxn--bhccavuotna-k7astrandaxn--kvnangen-k0axn--sknland-fxaxn--mosjen-eyarakkestadhyllestadnannestadvevelstadvaapstenordre-landsondre-landsøndre-landtjieltexn--vrggt-xqadsør-aurdalsor-aurdalheradstordmoldefordeførdeseljefedjeryggehemnexn--krehamn-dxasognegranesøgnebrynetjomevallebykletokkegiskedovretjømehobølvoldasaudatolgasømnaviknadønnasomnadonnatranafrananesnaraumasmolatrænafrænalesjasmølaørstaorstahitrafloraaukraloppafrøyarissasnasahalsagalsaromsaraisaráisafroyasnåsagronghobolfjelltydalårdalardalaskimharamkraanghkekråanghkesorumbarumhurumbærumsørummodumsálátbálátfrognbjugnvåganvagangulenskienløtenlotenstrynvefsnxn--merker-kuaskaunsveiobømlobomloskjåkvardoflorovadsosalatbalatsálatklæbuklabuselbubarduulvikskjakklepprisørxn--nttery-byaeflåeidflahofmilgolholsellomskifetvikdepvgsfhsaskerrisorhamarasnesåsnesrørosrorosxn--slat-5namasoynaroyvaroyluroydyroyaskoyradoyandoyrodoymeloyradøyandøyrødøymeløyaskøylurøydyrøymåsøyværøynærøyhoylandethøylandetdivtasvuodnalørenskoglorenskognesoddtangenxn--tjme-hraxn--smla-hraxn--stjrdal-s1aunjargalillehammerunjárgaxn--hamary-fyadavvenjargaxn--bearalvhki-y4a123hjemmesidegjerdrumxn--brnnysund-m8acxn--tnsberg-q1axn--mlatvuopmi-s4axn--snsa-roaxn--skierv-utaxn--brum-voatysfjordkvafjordeidfjordkvæfjordsongdalenmjondalenmjøndalenxn--gls-elackragerogáŋgaviikagangaviikasørreisasorreisasør-varangersor-varangerxn--risr-iraskiervaxn--frna-woaxn--trna-woakvinesdalleksvikleirvikrøyrvikroyrviksvelvikvenneslaevje-og-hornnessandnessjøenmarnardalvindafjordsandefjordenebakksnillfjordullensvangxn--trany-yuabrønnøysundnamsskoganaustevollxn--stjrdalshalsen-sqbnord-aurdalnord-frontrøgstadtrogstadgrimstadflakstadgjerstadxn--sandy-yuaxn--leagaviika-52bnore-og-uvdalvegarsheixn--rlingen-mxaxn--ggaviika-8ya47hvegårsheikarlsoykvitsoymasfjordenhamaroyinderoyosteroydavvenjárgasauheradguovdageaidnuxn--vre-eiker-k8abronnoysiellakkrødsheradkrodsheradkvinnheradbrønnøyxn--mtta-vrjjat-k7afxn--lrenskog-54akvitsøyvárggátkarlsøyosterøyinderøyhamarøybronnoysundxn--aurskog-hland-jnbbahccavuotnabáhccavuotnagiehtavuoatnastor-elvdalmidtre-gauldalxn--gildeskl-g0akarasjokevenassixn--bievt-0qaxn--yer-znalebesbynessebyxn--hbmer-xqamalselvmålselvxn--unjrga-rtamøre-og-romsdalmore-og-romsdalhareidmelandørlandorlandstrandålgårdsolundalgardafjordåfjorddielddanuorrikautokeinoxn--stre-toten-zcbskodjeaejriestangeliernebamblestokkefauskesnåasesnaasekongsvingerlangevagberlevagxn--flor-jrahattfjelldalostre-totenøstre-totenvestfoldxn--mely-iraálaheadjualaheadjunordreisaxn--troms-zuaxn--lgrd-poacporsangerflatangerstavangerleikangerbremangersamnangergieldakarasjohkaxn--rdy-0nabfrostautsirasnoasatromsaxn--sr-aurdal-l8aflekkefjordjølsterjolsteraremarkhedmarknååmesjevuemienaamesjevuemiexn--vard-jrarollagmeråkermerakerorskogørskogxn--bdddj-mrabdákŋoluoktaxn--osyro-wuaaknoluoktatrysilskjervøymandaljondalbindalrindalmeldalsuldalorkdalsigdalalvdallærdalhurdalsirdalverdallerdallardaloppdalåseralaseralhadselkragerødivttasvuotnaoverhallasteinkjerxn--hnefoss-q1askedsmokorsettromsøxn--dyry-iravestre-totenmuseumxn--sandnessjen-ogbrahkkeravjufylkesbiblbájddarbajddarxn--laheadju-7yarennesøyxn--koluokta-7ya57hxn--hgebostad-g3aleirfjordstorfjordbalsfjordbåtsfjordbatsfjordmuosátbievátloabátkárášjohkanøtterøyxn--mjndalen-64anordkappláhppilahppialstahaugsiljanverranrøykenroykenhaldenlyngenbergenhortenhønefosshonefosstroandinbeiarnvarggatosoyroosøyrotromsoidrettmuosatbievatruovatloabatvoagattynsetnessetxn--indery-fyaskánitskanitraholtråholtxn--ystre-slidre-ujbandebusarpsborgbearduxn--karlsy-fyahordalandjorpelandjørpelanddeatnuringsakersør-odalsor-odalxn--slt-elabringerikeaudnedalnittedalnissedalhemsedalslattumsurnadalxn--blt-elabelverumstjørdalnaustdalhjartdalgjøvikfyresdalhasviknarviklarvikgjovikmalvikgamviklenvikporsgrunnstjordalengerdaldrobakdrøbakxn--msy-ula0hvestvagoyxn--vgan-qoaxn--ryken-vuaxn--lten-graxn--stfold-9xaxn--hpmir-xqaxn--lury-iramálatvuopmimalatvuopmitysværkirkenesbirkenesmoskenesbáidárxn--fjord-lraxn--rdal-poabahcavuotnabáhcavuotnaxn--frde-gralindåsbearalvahkixn--hobl-iraráhkkerávjuxn--loabt-0qavågåáltábodøsundlundraderådeetnetimeholeauregrueoddavagavegaranatanaarnasolasulaaltalekafusavangbergkvamåmliamlibokntinnroangranosenoslobodorøstroststatåmotamotivguprivøyeroyerliermossvossxn--nvuotna-hwalusterlunnermarkerhábmerhabmerhvalerfjalerxn--rholt-mratysvarbaidarfitjargaularhápmirhapmirmelhusfosnesøksnesoksnestysneshemnesevenesflesbergeidsbergtonsbergtønsberglindasxn--sndre-land-0cbnamsosxn--srum-graøystre-slidreoystre-slidrevestre-slidretrondheimbalestrandxn--langevg-jxaaustrheimxn--skjk-soavagsoyaveroysandoykarmoyfinnoytranoyvestbytranbysykkylvenxn--hyanger-q1aspjelkavikandasuoloxn--fl-ziaxn--drbak-wuastathellexn--sr-varanger-ggbtelemarkxn--bhcavuotna-s4axn--porsgu-sta26fčáhcesuolocahcesuoloakrehamnåkrehamnsandøykarmøyfinnøytranøyvågsøyaverøynamdalseidxn--lesund-huabadaddjaxn--vegrshei-c0axn--btsfjord-9zagildeskålporsanguxn--trgstad-r1anávuotnanavuotnahammerfestxn--sgne-graxn--brnny-wuacibestadharstadnarviikaevenáššivestnesgjemnessandnesagdenesrennesoyxn--avery-yuaxn--tysvr-vrabearalváhkikongsbergspydebergrandabergxn--andy-iradavvesiidaxn--krdsherad-m8aporsáŋgufredrikstadbjerkreimringeburennebuaurskog-holandnotteroyxn--vgsy-qoa0jxn--rmskog-byaskierváivelandbyglandfrolandaurlandforsandxn--bjddar-ptamidsundålesundalesundfetsundfarsundovre-eikerøvre-eikerakershusxn--moreke-juasørfoldøstfoldostfoldsorfoldhøyangerhoyangerlevangerorkangertanangerxn--vestvgy-ixa6olillesandulsteinxn--rennesy-v1agranvinskjervoyxn--klbu-woalavagisxn--h-2faxn--ryrvik-byakafjordkåfjordseljordfolkebiblxn--gjvik-wuajevnakerxn--kfjord-iuabudejjuxn--kranghke-b0axn--davvenjrga-y4axn--rland-uuaxn--ldingen-q1axn--mlselv-iuaxn--rady-iraxn--linds-prabrumunddalxn--ygarden-p1amo-i-ranaeidskogrømskogromskoghjelmelandxn--finny-yuaxn--sr-odal-q1axn--skjervy-v1aballangenkvanangenkvænangengratangenxn--hmmrfeasta-s4acvossevangensuohkanxn--rde-ulaxn--mli-tlaxn--ksnes-uuanordlandskanlandskånlandsortlandfuoiskuxn--rros-graxn--hcesuolo-7ya35bxn--eveni-0qa01gagaivuotnagáivuotnaxn--seral-lradrammenmodalenmosjoenjan-mayentorskensteigengloppenxn--snes-poamatta-varjjatxn--sr-fron-q1aomasvuotnajessheimbådåddjåxn--krager-gyaxn--kvfjord-nxaxn--asky-iraxn--snase-nraxn--bidr-5nacholtålenxn--vads-jraxn--jlster-byamosjøenxn--rst-0nastavernxn--ostery-fyaxn--oppegrd-ixaxn--sknit-yqaxn--risa-5naoppegårdskiptvetrendalenholtalenxn--mot-tlaxn--lhppi-xqaxn--holtlen-hxaxn--srreisa-q1akopervikxn--muost-0qaxn--bmlo-grahokksundkvalsundegersundxn--karmy-yuaullensakerxn--hylandet-54axn--kvitsy-fyaxn--bod-2nalangevågberlevågkristiansandxn--rsta-frahornindalstjørdalshalsenstjordalshalsensandnessjoenhámmárfeastaxn--lrdal-srasør-fronsor-fronnord-odalkristiansundmátta-várjjatvestvågøynesoddennotoddenbuskerudøygardenoygardensalangenlavangenralingenrælingenlodingenlødingenleaŋgaviikalaakesvuemieleangaviikauenorgexn--srfold-byaaskvollxn--rskog-uuaxn--nry-yla5gxn--vry-yla5ghammarfeastaxn--rhkkervju-01afxn--givuotna-8yakommunekrokstadelvanedre-eikerhagebostadhægebostadxn--berlevg-jxakviteseidxn--s-1faxn--l-1faxn--nmesjevuemie-tcbafuosskomoårekemoarekexn--lt-liacxn--jrpeland-54asvalbardoppegardholmestrandtvedestrandsogndalsokndalarendalsunndalfolldalxn--krjohka-hwab49jlyngdaletnedalnorddalsaltdalgausdalskedsmovaksdalgjesdalstordalxn--frya-hraaarbortedrangedalxn--smna-graaurskog-hølandxn--vg-yiabtjeldsundhaugesundlindesnesxn--mre-og-romsdal-qqbxn--dnna-gradynmerseineshacknetenterprisecloudmineaccomaorimāoriorgmilcriiwigennetschoolhealthkiwigovtgeekxn--mori-qsacloudnsparliamentcomedorgcompronetedugovmuseumwebsitekinservicebarsywebsitebuildereerobookheimdnsleapcelleero-stagetechcrscsslorigingohomecdbedeeeiemesecabgngilnlalplchfisiincnnoroptatitmtltruauhulumkdkukskjplvtrgrfrkrhrusesismycynzcznetinteduassoososcloudstgbetaaezaeuhkusjshatenadiarycdn77hoptozaptois-a-knightmyftpno-ipjpnddnssdpdnsspdnsbarsysweetpepperis-a-bruinsfanis-very-sweetservegameis-a-soxfanhomelinuxcdn77-secureservebbsmisconfusedwebredirectblogsitefreedesktopcouchpotatofriestoolforgeaccesscamis-lostreadmyblogsmall-webfedorapeopleserveftpis-a-celticsfanmywirepotagertwmailin-dslsellsyourhomeread-booksfreeddnscable-modemis-savednflfanufcfanmlbfanstuff-4-saleendoftheinternetin-vpnmy-firewallhomeftpis-localis-a-chefboldlygoingnowherewebhopselfipkicks-assroxatunkcamdvrfedoraprojectgotdnsdvrdnsdyndnspubtlspimientahomeunixdontexistfedorainfracloudwmflabsfspagesbmoattachmentsteckidsfamilydsdnsaliasdynaliasnow-dnscloudnsdoomdnsduckdnsblogdnshomednsroutingthecloudendofinternetdsmynasip-dynamicpoivronhttpbinmyfirewallis-very-evilmysecuritycamerais-a-linux-userwmcloudis-a-geektuxfamilyis-a-candidatedoesntexistis-very-badhobby-sitegame-hostaltervistais-foundis-a-patsfandnsdojohepforgepodzonedynservcollegefanis-very-goodfrom-meis-very-niceisa-geeknerdpolacmedsldingorgcomnomgobabonetedupleskaemhlxmyboxrockyprvcydeuxfleurspdnscodebergheyflowstatichostorgmilcomnomgobneteduorgcomeduiorgmilcomngonetedugovcloudns1337ngrokacorggogfamcomwebgobnetedugokgopgkpgovgosbizpasaugumicsopozpapuwmwsrprusiskwpspkppspkmpspokeoiawsawifoumsdnskokwpmuppuppsppiwwiwoowuzswkzoschrzpisdnwzmiuwwitdpssewsseumigugimoirmpinbwinbwiihupporzgwgriwupowwskrwioswuozstarostwokonsulattmpccopruszkowmyspreadshopostrodakartuzyopolegminamediaustkazgorajgoraolawailawalomzawloclradombytomjaworznotargilubinkoninzagantorunkutnokepnonakloczestsopotsanokturekplockslasksklepzarowlukowmedaidgdaorgmilrelcomnomatmgsmartneteduelkgovwawsossexbiztgorysejnytychypomorzeboleslawiechomesklepsdscloudunicloudzakopanelegnicarawa-mazbydgoszczswidnikkrasnikwloclawekbielawamragowograjeworealestatebeskidykaszubymalopolskaprzeworskswiebodzinlecznadfirmaszkolawarmiagdyniamiastakazimierz-dolnymalborkswidnicadlugolekaostrolekapodlasieelblagtravelsimplesitezachpomormielecszczecinnieruchomosciwalbrzychlezajsklublinbedzinpoznanwielunmielnooleckostarachowicedkontopowiatwroclawrybniksuwalkileborkslupskgdanskostrowwlkptarnobrzegtourismwegrowkrakowglogowyou2pilanysamailwrocinfoagroautobeepshopprivlapypiszlodzcfolksecommerce-shopmazurypulawyskoczowrzeszowpomorskiezgierzkaliszolkuszlowiczostrowiecsosnowiecmazowszewodzislawbialowiezazgorzeleckatowicepabianicejelenia-gorawolominkarpaczsieradznowarudaczeladzkonskowolaskierniewiceswinoujscieturystykabieszczadycieszynketrzynolsztynbialystokbabia-goraprochowicewarszawastalowa-wolapolkowicegorlicegliwiceponiatowalimanowalubartowaugustowkobierzyceopocznognieznoszczytnokolobrzegshoparenapodhalebielskoklodzkostargardatwithplayitownnamecoorgnetedugovacorgcomproestnetedugovbiznameislaprofinforechtngrokmedaaaacacpaenglawjurbarbarsykeeneticavocatacctcloudnsorgcomsecplonetedugov123paginaweborgcomnetintedugovnomepublidkinbarsygovx443cloudnsorgmilcomnetedugovcooporgmilcomschnetedugovnamecomcannetlibassoaemclantmcontstoreorgcomnomrecwwwbarsyfirminfoshopartsstackitmyddnswebspacelima-cityacincooxorgedugovbarsybrendlyhbvpsvpsspectrumlandinghostingacppmordoviamcprecbgorgmilcomspbnetintedumsknovgovbirrasmcdirmytismircloudvladimirnalchikadygeyamarinepyatigorskmyjinobashkiriaeurodirvladikavkazna4ugroznykustanaikalmykiacldmaildagestaniranbuildcanvaliaravalwixdevelopmentappwritemigrationneedleverceldatabasestackitcodereplravendbonporterlovableaccoorgmilnetgovcoopmedorgcompubschnetedugovservicemecomygovorggovtvmedorgcomnetedugovinfoedgfacbmlonihkutwpsryxzbdtmacfhppmyspreadshopbrandpartiorgcomfhvpress123minsidaitcouldbeworlanbibkommunalforbundfhskiopsyskomvuxkomforbnaturbruksgymnloginlineorgcomnetedugovenscaledeuusentbotdaorgmilcomnetgovnowteleporthashbangplatformlovablebarsyshopwarebasehoplixbarsyonlinemsf5gitappgitpagecofigma-govcaffeinefigmacanvasoltstputerbarsysupportchatgptsquareomniweopensocialcpanelnotionnovecorewpsquaredpreviewjelecyonbyensrhtfastvpspieboxconvexjouwwebheyflowplatformshloginlinemadethissourcecraftclouderaorgorgcomartedugouvunivmeorgcomnetedugovsurveysstatichfheiyuxs4allprojectmyfastubervibehostapp-ionosdeployagentmecoorgcomschnetedugovbizcncostoreorgmilcomneteduembaixadaconsuladokiraranohoprincipesaotomeheliohobarsystorebaseshopwaresellfyabkhaziavologdamordoviapenzalenugsochinavoiexnetspbmsknovnorth-kazakhstanashgabadkareliaarmeniageorgiavladimirnalchikivanovobukharaadygeyakhakassiakalugakrasnodarjambylaktyubinsktroitskbryanskobninskkurganazerbaijanpokrovskbashkiriatselinogradvladikavkazmurmansktulatuvamangyshlaktashkentchimkentgroznykaragandatermezarkhangelskkustanaikalmykiabalashoveast-kazakhstankaracoldagestantogliattibarsyredorgcomgobedumirenknightpointaccoorgjelasticdiscoursecleverappsschacmiincogoornetonlineshopcogoorgmilcomwebnicnetintedugovbiznametestcoorgmilcomnomnetedugovorangecloudpersoindorgcomfinnatnetgovensmincomtourismintlinfox0611oyaorgmilcomnetedugovquickconnectvpnplusnettprequalifymeaddrmyaddrntdllwadlnctvavdrk12orgmilpolbeltelcomwebgennetedutskkepgovbbsbiznameinfocoorgmilcompronetedugovbiznameinfobetter-thanworse-thansakurafromdyndnson-the-webmymailerorgmilurlcomneteduidvgovmydnsgameclubebizmeneacsccogotvorhotelmilmobiinfovodteiflgplkmsmsbcckhincndnvncoztltmkckppzpdprvcvkvlvcrkrkscxuzchernovtsyrivneyaltaodesavolynrovnolutskltdinforgcomnetedugovbizvinnicazhitomirternopilpoltavakropyvnytskyizaporizhzhiasevastopolsebastopoluzhgoroduzhhorodkharkovkharkivvinnytsiakhmelnytskyizaporizhzhecrimeaodessazhytomyrnikolaevcherkassydonetskluganskluhanskkirovogradivano-frankivskchernivtsikrymkievkyivlvivsumyzakarpattiamykolaivcherkasychernigovkhersonchernihivdnipropetrovskdnepropetrovskkhmelnitskiyneacsccogoorusorgmilcomedugovvmdhmyspreadshopadimono-ipbarsybytemarkbarsyonlinelayershiftnh-servretrosnubapicampaignservicelugaffinitylotteryweeklylotteryraffleentrygluglugsmeaccoindependent-inquestnimsitecopropymntltdorgplcschnetgovnhsbarsyindependent-commissionindependent-reviewpolicepublic-inquiryindependent-panelconnhospindependent-inquiryroyal-commissionoraclegovcloudappscck12libccphxcclibpvtparochchtrcck12libcceatonk12coglibtecgendstmusann-arborwashtenawcck12glghcck12sealibforksolympiabainbridge-islkeyporthoquiamyarrow-pointcentraliaport-townsendsequimport-ludlowrentonsilverdalebremertonredmondsheltonbellevueport-orchardport-angeleskingstonchehalisaberdeengig-harborseattlepoulsboidmdndsddemenegacalamaiavawapailalflnmdcncscohnhmihiviwiriinmntnmocoutvtctmtgunjokakwvnvprarorasmskstxwynykyazisadninsnngosrvis-bymircloudservernamepointtoenscaledland-4-salefreeddnsstuff-4-saleazure-apinoipcloudnsgolffanheliohostazurewebsitesgvorgmilcomgubneteducoorgcomnetd0egvorgmilcomnetedugovmydnsiacostoree12orgmilcomnomwebgobbibrectecnetintedugovraremprendefirminfoartseducok12orgcomnethidnsidacaiiosonlahanamhanoicamauhueorgcompronetintedugovbizbacninhtayninhhoabinhnamdinhtravinhhaiphongvinhlonghaiduongquangnamquangtrithuathienhuequangninhbacgianghaugiangquangbinhsoctrangbentrethanhphohochiminhdanangkontumhatinhkhanhhoathanhhoahealthgialailaocaiyenbaibackanngheanlonganphuyenphuthocanthodaklakdongnainameinfovinhphucdongthapkiengiangtiengiangquangngailaichaulangsonlamdongdaknonghagiangangiangcaobangbinhduongninhthuanbinhthuanbaclieuthaibinhninhbinhbinhdinhtuyenquanghungyenbaria-vungtauthainguyendienbienbinhphuocschbizputerimagine-proxyorgcomnetedugovcloud66advisormypetsdyndnsxn--8dbq2axn--4dbgdty6cxn--5dbhl8dxn--hebda8bxn--80auxn--d1atxn--c1avgxn--o1acxn--o1achxn--90azhxn--55qx5dxn--uc0atvxn--od0algxn--wcvs22dxn--gmqw5axn--mxtq1mxn--12c1fe0brxn--h3cuzk1dixn--12co0c3b4evaxn--12cfi8ixb8lxn--o3cyx2axn--m3ch0j3axn--j1adpxn--90amcxn--90a1afxn--h1ahnxn--j1ael8bxn--h1alizxn--c1avgxn--j1aefxn--80aaa0cvacxn--41acaffeineexeopentunnelbotdashtelebitorgtmaccoagricorgmilnomwebnicngonetaltedugovlawnisschoolgrondaraccoorgmilcomschnetedugovbizinfoprg1-zeropstritonstackitlimazeropsaccoorgmilgovяспборгкоммскбизмирсамаракрымсочиакодпроргобрупрצהלממשלישובאקדמיהองค์กรธุรกิจรัฐบาลศึกษาทหารเน็ต教育網絡組織公司政府個人닷넷한국澳门新闻澳門联通家電嘉里招聘通販닷컴삼성コムგეбгрфеюadcdbdgdidmdsdtdaebedeeegeiejekemenepereseveyegabacalamanauavapaqasazacfbfafgfnfpfwftfbgcgagggegkgngmgsgpgvgtgugilmlnlalclglplsltlhmimjmkmmmomambmcmdmfmgmzmpmsmtmgbbblbsbecccacnclcmcvctcscmhkhghchbhthphshlinikifigiaibicivisikninhnmncnbngnsnpnvntnjoionomobocoaofodorosotoptstttytatbtetgtithtmtltrusuvuaucueuguhulumunufjdjbjtjsjlkmkhkfkdkcktkukskpkgpmpnpkpjpgqaqmqiqsvtvcvbvmvlvrwpwtwzwbwcwawgwkwmwtrsrprgrfrercrbrarnrmrlrkrirhrwsusrssspsgsesbsaslsmsissxmxaxcxuypysylymykygybycyuztzsznzmzkzdzczbzazελευ世界台灣购物公益点看臺灣网络書籍在线网站手机机构大拿游戏信息台湾谷歌慈善商标香港中国餐厅网址中國商城食品微博政务移动集团公司八卦商店健康网店政府时尚佛山中信娱乐广东企业homedepotengineeringاماراتrepublicankuokgroupversicherungchannelcitadelxn--pgbs0dhxn--b4w605ferdstatebankwebsitexn--mgb9awbf亚马逊淡马锡alibabaxn--ngbc5azdxn--mgbbh1axn--45br5cyltoshibabuildworldcloudtradeguideplacespacedancemoviephoneprimesmilebiblestyleappleazurestoreskypegripexn--l1accdrivelottehorsehouseleasechasereisestadahondaomegaaetnaamicaninjanokiamediadeltavodkaedekaosakapizzaslingemailgmailtirolshelltmallfinallegaltotalhotelamfamforumrehabmusicciticricohcoachwatchboschearthfaithirishmiamiarchidubaiguccipraxiみんなストアセールcanonsalononionnikonepsonkoelngreensevencrownikanoradioaudioweiboglobopromogalloyahoociscorodeovideomangobingotokyovolvolottokyotophotosmartsportquesttrusthyattjetztadultcymrubaidutushuxn--kprw13dubankclickblackmerckgroupsharpcheapnowtvxn--h2brj9cקוםհայоргсрбмонкомбелмкдқазрусукрمصرقطرعربكومdadcfdmedwedredphdthdbidpidkrdmsdltdiceonewmeglemoerwecfageacbanbambaaaammakianraspacpaaxawtfbcgaegongingaigvigorgdogdhlmilrilonlaolloluoljllcalgalnflafltelsrlfrllplkimibmcamcombommomifmabbjcbscbcabnabtabmlbpubabcbbcnecincpncllcstcwtcpwcnyckfhbzhovhmoiskiobisbitcifyituipinvinwinxincbnbcnmanfangdnmenrenkpnmtnyunrunfununobiojioriohbogmofooboooooacoecoceongoproartistottnttbbtcateatlatvetpetbetnethktmitfitintjothotgotdotbotprueduicujnjyouinknhktdkappsapgapmapdnptopgopllpjmpzipvipripesqtrvdtvitvdevmovgovhivnrwlawsewnewbmwwownowhowdvrftrmtrsfrbarcartvscrseusawsupsubssbsadsddsldssasbmsmlsxxxboxfoxgmxtjxsextaxbuyflydiysoyjoyskypaydaygayxyzanzbizwebersenerpokerlameractortatarsolarລາວคอมไทยtourslocusnexuslexusgiftsbeatsboatspartspressglassswissकॉमनेटtiresgivescodeshomesgamestunesshoescardswalesloansvegastoolsdealsautosparisファッションworkssucksrocksxeroxforexfedexpartylillymoneystudyrugbytoraytoday中文网xn--unup4y天主教飞利浦新加坡enterprises我爱你嘉里大酒店christmasxn--fct429kholdingsxn--8y0a063axn--mgbx4cd0ablifestyleabogadoallstatenetbankكاثوليكxn--s9brj9cxn--gk3at1ebestbuycharityxn--55qx5dmicrosoftpropertybasketballhomegoodscorsicajewelrygallerygrocerysurgerycountrybrusselsverisignferreroxn--czr694bhdfcbankcommbanksoftbankپاكستانپاکستانnextdirectالسعوديهالعليانxn--h2brj9c8cxn--80adxhksshikshaxn--mgbai9azgqp6jcuisinellabarclayscatholicxn--kpry57dcompanyxn--xhq521bblackfridayxn--mgba3a3ejtsandvikxn--d1acj3bacademydownloadمليسياxn--j1amhxn--w4r85el8fhu5dnraipirangaathletaxn--fhbeixn--mgbqly7cvafrzuerichxn--c2br7gஇலங்கைcontractorsxn--io0a7igraphicsinsurancetemasekxn--xkc2al3hye2amotorcyclesphotographydirectoryplumbingxn--vhquvclothingtrainingcleaningwilliamhilllightingxn--mgba3a4f16ashoppingcateringeducationokinawapicturesventuresproductionsxn--9et52uwalmartഭാരതംsupportrealestatecapitalonexn--nqv7fs00emaauspostfloristdentistxn--qxamgodaddybradescobargainsmitsubishikerryhotelsxn--9dbq2axn--3pxu8kimmobilienxn--fjq720axn--mgbtx2bholidaymckinseymadridbusinessbuildershelsinkixn--4gbrimмоскваالسعودیةcoffeedegreelacaixapartnersalsaceofficeabbvievoyageorangegeorgeonlinechromemobilekindlegoogleoraclecircleschulesecureinsurexn--mgba7c0bbn0aestatexn--mgbc0a9azcgcruisehangoutxn--vuq861bxn--42c2d9arexrothfirestoneuniversityxn--nnx388alifeinsuranceextraspaceонлайнvermögensberatersoftwarexn--fiqs8sxn--mgbab2bdxn--w4rs40ltiendaभारतम्africatoyotaotsukasakuracameracreditcardnagoyaconsultingnetworkjunipertheatermonsterprogressivepioneerxn--55qw42gracingdatingvotingvikinglivinggivingxn--bck1b9a5dre4cbrotherweatherjoburgفلسطينlplfinancialxn--clchc0ea0b2g2a9gcdfutbolschoolsocialglobaldentalwoodsidechanelairtelmatteltravelrealtorwebcamstreamభారత్unicomalstomxn--nodexn--6frz82gmuseumfurniturexn--rvc1e0am3exn--mix891faccenturexn--11b4c3dismailineustardiscountquebeccomsecclinicservicesxn--y9a3aqxn--c1avgswatchchurchsearchالاردنmarketingcontacthealthmonashshoujisanofitaipeiamericanexpresssuzukiアマゾンクラウドポイントbhartiグーグルxn--mgberp4a5d4armemorialxn--1qqw23alondonmormoninstitutevisionbostonnortoncouponmaisonamazonvirginberlindesigndurbanolayannissananquanxihuanhitachikaufengardenreisenbayerntechnologydatsunxn--90a3aclatinocasinostudiophysioxn--ngbe9e0apharmacytattootaobaoaramcoexpertreportabbottdirectselectimamatfairwindspictettargetmarketintuittravelersinsurancecreditdupontryukyusuppliesxn--tckwebnpparibasschmidtmerckmsdyodobashirestaurantbridgestonecricketxn--fpcrj9c3dbostikbroadwayattorneylefrakemerckxn--fiq228c5hscareersfarmerswinnersflowersxn--wgbh1cguitarsxn--54b7fta0ccxn--p1acfmakeupgalluplandroverxn--kcrx77d1x4agoldpointbauhausxn--mgbayh7gpahiphopplaystationxn--mgba3a4fraxn--eckvdtc9dhyundaixn--gckr3f0fistanbulticketsmarketsflightschintaireviewsxn--3e0b707ewindowsxn--fiqz9sfinancialxn--fzys8d69uvgmابوظبيdiscoverreviewবাংলাxn--5su34j936bgsgmoscowobserverapartmentsдетиارامكوсайтeurovisionxn--i1b6b1a6a2exn--xkc2dl3a5ee0hتونسموقعبارتڀارتشبكةعمانبيتكعراقreadkredbondlandbandfundfoodprodgoldfordtubecafesafelifeggeeieeefreefagepagegugezonewinememenamegamesaleablebikenikelikecarecbreherefiresaveloveliveblueartedatesitevotecaseluxebofamodaltdaasdatiaayogasinavanashiaasiajavabbvatevavivadatazaraarpacasavisasncfprofmaifsurfgolfdvagsongbingpingwangkpmggoogblogpohlfailcooldellcalldeallidlsarlfilmteamroomfarmimdbarabclubhdfcicbchsbcgmbhrichtechfishdishcashminiernikddiaudiwikimobitaxicitikiwidesiqponskinloanakdnwienopenporncerntownimmolimoolloinfonicofidolegosaxozeroaerovivoautovotomotofastbestresthostpostnextlgbtchatseatgiftmeetdietreitmintrentgentspotscotguruitausohumenucyoubanklinkpinkdclktalksilkbookseekworkrsvpaarpjeepshopcoophelpcamppccwshowbeerstarruhrflirweirhaircarsparsjprshausplusnewstipstoysjobskidsfanspicsdocsxboxamexsexynavycitysonyarmyallybabyplaydeliverybuzzgbizlamborghiniphilipsලංකාಭಾರತfitnessexpresslanxesspfizercenterwalterlawyersoccercareerkosherbrokerlockerdealerdoctorauthorxn--mgbqly7c0a67fbcvermögensberatungjaguarxn--pssy2uxn--hxt814eflickrrepairrogersairbusxn--mgbai9a5eva00beventsyachtsxn--t60b56aভাৰতভারতभारतभारोतviajeshermeshughesxn--j1aefसंगठनvillasଭାରତclaimshotelsભારતzapposphotosjuegoscondostatamotorsgratistennisਭਾਰਤtkmaxxtjmaxxschaeffleryandexxn--80aswgrealtysafetybeautyluxuryxn--3ds443gsupplyfamilyxn--o3cw4hhockeysydneyxn--90aenissayalipayenergycomputeragencyxn--rovu88b電訊盈科xn--gecrj9cstatefarmaccountantaquarelleolayangroup香格里拉xn--p1ai组织机构xn--1ck2e1bxn--mgbt3dhdschwarzموريتانياabudhabinowruzkomatsufujitsuhospitalxn--80asehdbxn--mgbtf8flxn--j6w193gxn--yfro4i67oprudentialxn--flw351ecruisescoursesrecipesxn--e1a4cferrarixn--ses554gxn--wgbl6awatchesstaplessinglesxn--mgbcpq6gpa1axn--otu796dpropertiescreditunionxn--mgbah1a3hjkrdstockholmhisamitsuالسعوديةstcgroupdomainsoriginscouponsbloombergclubmedfroganslimitedxn--80aqecdr1aexposedinternationalequipmentbarclaycardxn--q7ce6axn--mgbi4ecexpprotectionassociatesconstructionxn--cck2b3bxn--45q11candroidfoundationישראלxn--mgbca7dzdocliniqueboutiqueengineerxn--qxa6asystemsfirmdalefashionauctionxn--nqv7finfinitirentalsreliancetradingweddingfishinghostinggentingbookingcookingxn--3hcrj9cgraingerxn--czrs0tdemocratsamsungyokohamaxn--h2breg3evexn--nyqy26alundbeckmelbournevacationssolutionsfrontierxn--vermgensberatung-pwbmanagementxn--cg4bkixn--mgb2ddeslincolnhamburgsandvikcoromantblockbusterairforcebarefootxn--4dbrk0ceinvestmentsfeedbackcommunityxn--ngbrxالبحرينdiamondsamsterdamhealthcareredumbrellaxn--mxtq1mxn--2scrj9cagakhanxn--mgbpl2fhкатоликcaravanசிங்கப்பூர்richardlimortgageamericanfamilyxn--fzc2c9e2cscholarshipssaarlandxn--imr513nvlaanderensamsclubgoodyearkitchenஇந்தியாweatherchannelallfinanzxn--kput3iالسعودیۃxn--90aisxn--efvy88hالجزائرxn--mgbaam7a8hexchangejpmorganxn--tiq49xqyjfidelitysecurityxn--mk1bu44cwanggouxn--fiq64bxn--6qq986b3xlxn--mgbbh1a71exn--80ao21amarshallsxn--5tzm5gtravelerspanasoniclatrobeyoutubeaccountantsxn--rhqv96gxn--cckwcxetdanalyticsxn--ygbi2ammxبازاربھارتسوريةorganicfreseniusسورياxn--9krt00axn--qcka1pmcxn--jlq480n2rgdeloittesciencefinancexn--jvr189mxn--30rr7yhomesensehotmailbaseballfootballleclercboehringerxn--q9jyb4cxn--mix082fاليمنهمراهpolitieسودانايرانایرانnetflixyamaxunxn--lgbbat1ad8jcollegestoragecapetowncolognekerrypropertiesxn--mgbgu82axn--ogbpf8flxn--czru2dwhoswhociprianilasallexn--g2xx48cforsalebanamexaudiblexn--vermgensberater-ctbxn--zfr164bericssonvanguardxn--45brj9cindustriestheatremarriottxn--3bst00mcomparexn--mgberp4a5d4a87gcapitaldigitalالمغربbarcelonashangrilaxn--d1alfcalvinkleinwwwcitysapporokawasakinagoyasendaikobekitakyushuyokohamackjp",vz=621,kz=625,Hk=gs.length,Qk=Nu.length,Zk=new Uint32Array(Qk),hu=new Uint32Array(Qk),jf=new Int32Array(Hk).fill(-1);for(let e=0,t=0;e<Hk;e+=1)for(let i=Au[e];i<Au[e+1];i+=1){Zk[i]=t;const s=t+Nu[i];let r=5381;for(let u=s-1;u>=t;u-=1)r=r*33^Sf.charCodeAt(u);hu[i]=r>>>0,Nu[i]===1&&Sf.charCodeAt(t)===42&&(jf[e]=i),t=s}let Ga=-1,Af=0,Nf=0;function nv(e,t,i,s){if(Nu[e]!==s)return!1;const r=Zk[e];for(let u=0;u<s;u+=1)if(Sf.charCodeAt(r+u)!==t.charCodeAt(i+u))return!1;return!0}function av(e,t,i,s,r){let u=Au[e],d=Au[e+1];for(;u<d;){const g=u+d>>>1,b=hu[g];if(b<t)u=g+1;else if(b>t)d=g;else{for(let v=g;v>=u&&hu[v]===t;v-=1)if(nv(v,i,s,r))return v;for(let v=g+1;v<d&&hu[v]===t;v+=1)if(nv(v,i,s,r))return v;return-1}}return-1}function iv(e,t,i){let s=t,r=e.length,u=5381;Ga=-1;for(let g=e.length-1;g>=0;g-=1){const b=e.charCodeAt(g);if(b===46){const v=g+1;let x=av(s,u>>>0,e,v,r-v);if(x===-1&&(x=jf[s]),x===-1)return Ga!==-1;s=tv[x],(gs[s]&i)!==0&&(Ga=s,Af=v,Nf=r),r=g,u=5381}else u=u*33^b}let d=av(s,u>>>0,e,0,r);return d===-1&&(d=jf[s]),d!==-1&&(s=tv[d],(gs[s]&i)!==0&&(Ga=s,Af=0,Nf=r)),Ga!==-1}function Fk(e,t,i){if(bz(e,t,i))return;const s=(t.allowPrivateDomains?2:0)|(t.allowIcannDomains?1:0);if(iv(e,kz,s)){i.isIcann=(gs[Ga]&1)!==0,i.isPrivate=(gs[Ga]&2)!==0,i.publicSuffix=e.slice(Nf+1);return}if(iv(e,vz,s)){i.isIcann=(gs[Ga]&1)!==0,i.isPrivate=(gs[Ga]&2)!==0,i.publicSuffix=e.slice(Af);return}i.isIcann=!1,i.isPrivate=!1;const r=e.lastIndexOf(".");i.publicSuffix=r===-1?e:e.slice(r+1)}const _u=yz();function wz(e,t){return Kk(_u),Gk(e,0,Fk,t,_u).hostname}function xz(e,t){return Kk(_u),Gk(e,5,Fk,t,_u).domainWithoutSuffix}const Sz={allowPrivateDomains:!0};new az({fuzzyLink:!0,fuzzyEmail:!1}).tlds(iz);function p0(e){if(e==null)return null;const t=e.trim();if(!t)return null;const i=wz(t);return i?i.replace(/^www\./i,"").toLowerCase():null}function jz(e){return e==null||e.trim()===""?"":xz(e,Sz)?.toLowerCase()??""}const Az=new Intl.Segmenter("en",{granularity:"word"}),Nz=/[\p{L}\p{N}]+/gu;function _z(e){return e.normalize("NFKC").toLocaleLowerCase("en")}function Cz(e){const t=[];for(const i of Az.segment(e))if(i.isWordLike)for(const s of i.segment.match(Nz)??[])t.push(s);return t}function zz(e){return Cz(_z(e))}function vs(e){return zz(e).join("")}const Yk=E(["cli","api","config-file"]);function Ez(e){const t=new Set,i=new Set;for(const s of e){if(t.has(s.label)){i.add(s.label);continue}t.add(s.label)}return[...i]}function Tz(e,t){return t?e.some(i=>i.label===t):!0}y({displayName:c().min(1),canonicalDomain:c().min(1),ownedDomains:k(c().min(1)).optional(),aliases:k(c()).optional(),country:c().length(2),language:c().min(2),tags:k(c()).optional(),labels:Le(c(),c()).optional(),providers:k(dt).optional(),providerModels:u0.optional(),locations:k(gn).optional(),defaultLocation:c().nullable().optional(),measurement:m0.optional(),autoExtractBacklinks:P().optional(),configSource:Yk.optional()});const Dz=y({id:c(),name:c(),displayName:c().optional(),canonicalDomain:c(),ownedDomains:k(c()).default([]),aliases:k(c()).default([]),country:c().length(2),language:c().min(2),tags:k(c()).default([]),labels:Le(c(),c()).default({}),providers:k(c()).default([]),providerModels:u0.default({}),locations:k(gn).default([]),defaultLocation:c().nullable().optional(),measurement:m0.default(Uk),autoExtractBacklinks:P().default(!1),configSource:Yk.default("cli"),configRevision:h().int().positive().default(1),createdAt:c().optional(),updatedAt:c().optional()});y({id:c(),query:c(),createdAt:c()});y({id:c(),keyword:c(),createdAt:c()});y({queries:k(c().trim().min(1)).min(1)});y({keywords:k(c().trim().min(1)).min(1)});y({provider:dt,count:h().int().min(1).max(20).optional()});y({id:c(),domain:c(),createdAt:c()});y({competitors:k(c().trim().min(1)).min(1)});function _f(e){return p0(e)??e.trim().toLowerCase().replace(/^www\./,"")}function Oz(e){const t=[e.canonicalDomain,...e.ownedDomains??[]],i=new Set,s=[];for(const r of t){const u=r.trim();if(!u)continue;const d=_f(u);i.has(d)||(i.add(d),s.push(u))}return s}const Rz=y({name:c().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:Le(c(),c()).optional().default({})}),Mz=y({preset:c().optional(),cron:c().optional(),timezone:c().optional().default("UTC"),providers:k(dt).optional().default([]),enabled:P().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),Bz=y({channel:ae("webhook"),url:c().url(),events:k(d0).min(1)}),qz=y({gsc:y({propertyUrl:c()}).optional(),syncSchedule:y({preset:c().optional(),cron:c().optional()}).optional()}).optional(),sv=k(c().min(1)),Iz=y({displayName:c().min(1),canonicalDomain:c().min(1),ownedDomains:k(c().min(1)).optional().default([]),aliases:k(c().min(1)).optional().default([]),country:c().length(2),language:c().min(2),queries:sv.optional(),keywords:sv.optional(),competitors:k(c().min(1)).optional().default([]),providers:k(dt).optional().default([]),providerModels:u0.optional().default({}),locations:k(gn).optional().default([]),defaultLocation:c().optional(),measurement:m0.optional().default(Uk),schedule:Mz,notifications:k(Bz).optional().default([]),google:qz,autoExtractBacklinks:P().optional().default(!1)}).superRefine((e,t)=>{e.queries!==void 0&&e.keywords!==void 0&&t.addIssue({code:"custom",message:"Use spec.queries; spec.keywords is accepted only as a legacy alias when spec.queries is omitted",path:["keywords"]});const i=Ez(e.locations);i.length>0&&t.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),Tz(e.locations,e.defaultLocation)||t.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});y({apiVersion:ae("canonry/v1"),kind:ae("Project"),metadata:Rz,spec:Iz});const Lz=2,Pz=c().regex(/^[a-f0-9]{64}$/),Ku=c().trim().min(1).max(256),ov=E(["sensitive","insensitive"]),ve=c().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),$z=c().trim().min(1).refine(e=>p0(e)!==null,"A competitor domain must be a valid hostname"),Uz=gt("kind",[y({kind:ae("exact"),url:c().min(1),pathCase:ov}).strict(),y({kind:ae("prefix"),host:c().min(1),pathPrefix:c().min(1),pathCase:ov}).strict(),y({kind:ae("host"),host:c().min(1)}).strict()]),Vz=y({canonicalHost:c().min(1),ownedHosts:k(c().min(1)),names:k(c().min(1))}).strict(),Kz=y({projectBrand:Vz}).strict(),Gz=y({stableKey:ve,label:c().trim().min(1),aliases:k(c().min(1)),urlMatchers:k(Uz),mentionNotApplicable:P(),discoveryIdentity:c().min(1).nullable()}).strict(),Xk=y({stableKey:ve,label:c().trim().min(1),domain:$z,aliases:k(c().min(1))}).strict(),Hz=y({stableKey:ve,label:c().trim().min(1),targetKeys:k(ve),competitors:k(Xk)}).strict(),Qz=E(["manual","query-set","template","discovery"]),Zz=y({source:Qz,sourceId:c().min(1).nullable(),capturedAt:c().datetime()}).strict(),Fz=y({queryId:Ku,queryText:c().min(1),provenance:Zz}).strict(),Yz=y({providers:k(dt).min(1),models:Le(dt,c().min(1)),location:gn.nullable()}).strict(),Xz=y({stableKey:c().min(1),queryId:Ku,queryText:c().min(1),context:Yz,expectedSnapshots:h().int().nonnegative()}).strict(),f0=E(["branded","non-brand"]),Jz=y({targetKey:ve,queryId:Ku,queryClass:f0,executionNodeKey:c().min(1)}).strict(),Wz=y({executionNodeKey:c().min(1),targetKey:ve,queryId:Ku}).strict(),Gu=y({schemaVersion:ae(Lz),identities:Kz,targets:k(Gz),groups:k(Hz),querySnapshots:k(Fz),assignments:k(Jz),executionNodes:k(Xz),usageEdges:k(Wz),compiledChecksum:Pz}).strict().superRefine((e,t)=>{const i=new Set;for(const r of e.executionNodes)i.has(r.stableKey)&&t.addIssue({code:ht.custom,path:["executionNodes"],message:`Duplicate execution node key "${r.stableKey}"`}),i.add(r.stableKey);const s=new Set(e.targets.map(r=>r.stableKey));e.usageEdges.forEach((r,u)=>{i.has(r.executionNodeKey)||t.addIssue({code:ht.custom,path:["usageEdges",u,"executionNodeKey"],message:`Usage edge references unknown execution node "${r.executionNodeKey}"`}),s.has(r.targetKey)||t.addIssue({code:ht.custom,path:["usageEdges",u,"targetKey"],message:`Usage edge references unknown Target "${r.targetKey}"`})}),e.assignments.forEach((r,u)=>{s.has(r.targetKey)||t.addIssue({code:ht.custom,path:["assignments",u,"targetKey"],message:`Assignment references unknown Target "${r.targetKey}"`})});for(const r of e.groups)for(const u of r.targetKeys)s.has(u)||t.addIssue({code:ht.custom,path:["groups"],message:`Group "${r.stableKey}" references unknown Target "${u}"`})}),h0=100;function Do(e){return y({items:k(e),nextCursor:c().min(1).nullable(),totalEstimate:h().int().nonnegative().optional()}).strict()}const g0=E(["no_completed_run","plan_v1","no_population","evidence_incomplete","not_applicable"]),Vt=gt("state",[y({state:ae("available"),value:h(),numerator:h().int().nonnegative().optional(),denominator:h().int().positive().optional()}).strict(),y({state:ae("unavailable"),reason:g0}).strict()]),y0=E(["all","group","property"]),ma=E(["all","branded","non-brand"]),eE=E(["label-asc","label-desc","citationCoverage-asc","citationCoverage-desc","mentionCoverage-asc","mentionCoverage-desc"]),b0=E(["not_measured","queued","running","complete","partial","failed"]),tE=E(["run_measurement","review_flags","complete_setup","republish_setup","none"]);y({scope:y0,groupKey:ve.optional(),targetKey:ve.optional(),queryClass:ma.optional(),provider:dt.optional(),location:c().trim().min(1).optional(),from:c().trim().min(1).optional(),to:c().trim().min(1).optional(),runId:c().trim().min(1).optional(),search:c().optional(),sort:eE.optional(),cursor:c().trim().min(1).optional(),limit:h().int().positive().max(h0).optional()}).strict();const nE=y({provider:dt,mentionCoverage:Vt,citationCoverage:Vt}).strict(),aE=y({targetKey:ve,label:c().min(1),mentionCoverage:Vt,citationCoverage:Vt,providers:k(nE),flags:h().int().nonnegative()}).strict(),iE=y({kind:E(["project","competitor"]),stableKey:c().min(1),label:c().min(1),domain:c().min(1),credits:h().int().nonnegative(),share:h().min(0).max(1)}).strict(),sE=y({groupKey:ve,queryClass:ae("non-brand"),denominator:h().int().positive(),entries:k(iE)}).strict();y({mode:E(["active-v1","active-v2"]),scope:y({kind:y0,key:c().min(1).optional(),label:c().min(1)}).strict(),queryClass:ma,measurement:y({state:b0,currentRunId:c().min(1).optional(),displayedRunId:c().min(1).optional(),completed:h().int().nonnegative(),expected:h().int().nonnegative(),completedAt:c().datetime().optional(),includesHistoricalData:P().optional()}).strict(),nextAction:y({kind:tE,count:h().int().nonnegative().optional()}).strict(),metrics:y({propertiesMentioned:Vt,mentionCoverage:Vt,citationCoverage:Vt,brandPresence:Vt,sov:Vt.describe("Deprecated alias of brandPresence carrying the identical value. Remove once the browser migrates.")}).strict(),properties:Do(aE),flags:y({total:h().int().nonnegative()}).strict(),namedShareOfVoice:sE.optional()}).strict();const Jk=E(["sources","answers"]),oE=Jk.enum;oE.sources;y({targetKey:ve,queryClass:ma.optional(),provider:dt.optional(),location:c().trim().min(1).optional(),runId:c().trim().min(1).optional(),shape:Jk.optional(),cursor:c().trim().min(1).optional(),limit:h().int().positive().max(h0).optional()}).strict();const Wk=1,jl=h().int().positive(),Kt=c().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),Al=c().trim().min(1).max(256),rv=E(["sensitive","insensitive"]);function Cu(e){const t=p0(e);if(!t)throw new Error(`Invalid measurement host: ${e}`);return t}function rE(e){const t=[];let i=!1;for(let s=0;s<e.length;s++){const r=e[s];r==="/"?(i||t.push(r),i=!0):(t.push(r),i=!1)}for(;t.length>1&&t.at(-1)==="/";)t.pop();return t.length?t.join(""):"/"}function lv(e){try{return decodeURI(e).normalize("NFC").toLowerCase()}catch{return e.normalize("NFC").toLowerCase()}}function ew(e){const t=new URL(`https://measurement.invalid${e}`).pathname;return rE(t.replace(/%[0-9a-f]{2}/gi,i=>i.toUpperCase()))}function Cf(e){const t=e.trim();if(!t||t.includes("?")||t.includes("#")||t.includes("://")||t.includes("\\"))throw new Error(`Invalid measurement path prefix: ${e}`);const i=t.startsWith("/")?t:`/${t}`;for(const s of i.split("/")){let r;try{r=decodeURIComponent(s)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}if(r==="."||r==="..")throw new Error(`Invalid measurement path prefix: ${e}`)}try{return ew(i)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}}function lE(e){const t=/^[a-z][a-z0-9+.-]*:\/\/[^/?#]*/i.exec(e);if(!t)throw new Error(`Invalid exact measurement URL: ${e}`);return e.slice(t[0].length).split(/[?#]/,1)[0]||"/"}function cv(e){const t=e.trim();if(!t||t.includes("\\"))throw new Error(`Invalid exact measurement URL: ${e}`);let i;try{i=new URL(t)}catch{throw new Error(`Invalid exact measurement URL: ${e}`)}if(i.protocol!=="http:"&&i.protocol!=="https:"||i.username||i.password||i.port||i.search||i.hash)throw new Error(`Invalid exact measurement URL: ${e}`);const s=Cu(i.hostname),r=Cf(lE(t));return`https://${s}${r}`}const yl=c().trim().min(1).refine(e=>{try{return Cu(e),!0}catch{return!1}},"A target URL matcher host must be a valid hostname").overwrite(e=>Cu(e)),cE=c().trim().min(1).refine(e=>{try{return Cf(e),!0}catch{return!1}},"A target URL matcher pathPrefix must be an absolute path without query or fragment").overwrite(e=>Cf(e)),uE=c().trim().min(1).refine(e=>{try{return cv(e),!0}catch{return!1}},"A target exact matcher must be an HTTP(S) URL without credentials, port, query, or fragment").overwrite(e=>cv(e)),dE=gt("kind",[y({kind:ae("exact"),url:uE,pathCase:rv}).strict(),y({kind:ae("prefix"),host:yl,pathPrefix:cE,pathCase:rv}).strict(),y({kind:ae("host"),host:yl}).strict()]),tw=c().trim().min(1).max(256).refine(e=>vs(e).length>0,"A target alias must contain mention text"),mE=Le(c().trim().min(1),c()),pE=yl,nw=y({stableKey:Kt,label:c().trim().min(1),urls:k(dE).min(1),aliases:k(tw),metadata:mE.optional()}).strict(),v0=y({stableKey:Kt,label:c().trim().min(1),targetKeys:k(Kt).min(1),competitors:k(pE).optional()}).strict(),aw=y({targetKey:Kt,queryIds:k(Al).min(1),context:gn.nullable().optional()}).strict();function fE(e,t){return e<t?-1:e>t?1:0}function hE(e,t=i=>i){const i=new Set,s=new Set;for(const r of e){const u=t(r);i.has(u)&&s.add(u),i.add(u)}return s}function Gp(e,t,i,s,r){for(const u of hE(t,r))e.addIssue({code:"custom",path:[...i],message:`Duplicate ${s}: ${u}`})}function uv(e){if(e.kind==="host")return{host:e.host,pathname:null};if(e.kind==="prefix")return{host:e.host,pathname:e.pathPrefix};const t=new URL(e.url);return{host:Cu(t.hostname),pathname:ew(t.pathname||"/")}}function gE(e,t,i,s){return e===i||(t==="insensitive"||s==="insensitive")&&lv(e)===lv(i)}function yE(e,t){if(e.kind!==t.kind)return!1;const i=uv(e),s=uv(t);return i.host!==s.host?!1:e.kind==="host"||t.kind==="host"?!0:gE(i.pathname,e.pathCase,s.pathname,t.pathCase)}function bE(e){const t=new Set;return[...e].sort(fE).filter(i=>{const s=vs(i);return t.has(s)?!1:(t.add(s),!0)})}const iw=y({schemaVersion:ae(Wk),targets:k(nw).min(1),groups:k(v0).optional(),targetQuerySelections:k(aw).optional()}).strict().superRefine((e,t)=>{const i=e.groups??[],s=e.targetQuerySelections??[];Gp(t,e.targets.map(b=>b.stableKey),["targets"],"target stable key"),Gp(t,i.map(b=>b.stableKey),["groups"],"group stable key");const r=new Set(e.targets.map(b=>b.stableKey)),u=new Set(i.map(b=>b.stableKey));for(const b of r)u.has(b)&&t.addIssue({code:"custom",path:["groups"],message:`Target and group stable keys must be globally unique: ${b}`});const d=new Map,g=[];e.targets.forEach((b,v)=>{for(const x of bE(b.aliases)){const S=vs(x),j=d.get(S);j&&j!==b.stableKey&&t.addIssue({code:"custom",path:["targets",v,"aliases"],message:`Target alias is already assigned to target ${j}: ${x}`}),d.set(S,b.stableKey)}b.urls.forEach((x,S)=>{g.find(_=>_.targetKey!==b.stableKey&&yE(_.matcher,x))&&t.addIssue({code:"custom",path:["targets",v,"urls",S],message:"Target URL matcher has an equal-specificity cross-target tie"}),g.push({targetKey:b.stableKey,matcher:x})})}),i.forEach((b,v)=>{Gp(t,b.targetKeys,["groups",v,"targetKeys"],"group target key");for(let x=0;x<b.targetKeys.length;x++){const S=b.targetKeys[x];r.has(S)||t.addIssue({code:"custom",path:["groups",v,"targetKeys",x],message:`Unknown target: ${S}`})}}),s.forEach((b,v)=>{r.has(b.targetKey)||t.addIssue({code:"custom",path:["targetQuerySelections",v,"targetKey"],message:`Unknown target: ${b.targetKey}`})})});iw.transform(e=>({...e,groups:e.groups??[],targetQuerySelections:e.targetQuerySelections??[]}));y({expectedActiveRevision:jl.nullable(),plan:iw}).strict();const vE=y({queryId:Al,queryText:c().min(1)}).strict(),k0=y({stableKey:c().min(1),queryText:c().min(1),context:gn.nullable(),expectedSnapshots:h().int().nonnegative()}).strict(),kE=y({kind:ae("baseline"),executionNodeKey:c().min(1),queryId:Al}).strict(),wE=y({kind:ae("target"),executionNodeKey:c().min(1),queryId:Al,targetKey:Kt}).strict(),zf=gt("kind",[kE,wE]),sw=y({code:ae("target-alias-prefix-overlap"),message:c().min(1),targetKeys:k(Kt).min(1),aliases:k(c().min(1)).min(1)}).strict(),ow=nw.extend({mentionNotApplicable:P()}),rw=y({schemaVersion:ae(Wk),defaultContext:gn.nullable(),effectiveOwnedHosts:k(yl),projectCanonicalHost:yl,projectBrandNames:k(tw),targets:k(ow),groups:k(v0),targetQuerySelections:k(aw),querySnapshots:k(vE),executionNodes:k(k0),usageEdges:k(zf),warnings:k(sw)}).strict(),xE=rw,lw=gt("schemaVersion",[rw,Gu]),w0=c().regex(/^[a-f0-9]{64}$/),x0=c().datetime(),cw=y({schemaVersion:ae(1),providers:k(c().min(1)).min(1),models:Le(c().min(1),c().min(1)),checksum:c().regex(/^[a-f0-9]{64}$/)}).strict(),SE=y({groups:k(Kt).optional(),targets:k(Kt).optional()}).strict(),jE=y({groups:k(Kt),targets:k(Kt),queries:k(c().min(1)),resolvedTargets:k(Kt)}).strict().superRefine((e,t)=>{e.resolvedTargets.length===0&&e.queries.length===0&&t.addIssue({code:"custom",path:["resolvedTargets"],message:"A recorded scope must name something it measured"})});y({stableKey:Kt,retiredAt:c().datetime()});y({active:y({revision:jl,checksum:w0,createdAt:x0,plan:lw}).nullable()});y({versions:k(y({revision:jl,checksum:w0,createdAt:x0,active:P()}))});y({version:y({revision:jl,checksum:w0,createdAt:x0,active:P(),plan:lw})});const gu=y({targets:h().int(),groups:h().int(),queries:h().int(),executionNodes:h().int(),usageEdges:h().int(),baselineEdges:h().int(),targetEdges:h().int(),dedupSavings:h().int()}).strict(),AE=E(["invalid-authoring","duplicate-identity","unknown-target","unknown-query","invalid-project-context","unowned-target-url","owned-competitor","target-query-context-conflict","target-url-ownership-tie","target-alias-cross-target-collision","target-alias-project-brand-collision","target-alias-prefix-overlap"]),uw=y({id:AE,severity:E(["fail","warn"]),message:c().min(1),path:k(Ge([c(),h().int()]))}).strict(),NE=y({baseline:h().int().nonnegative(),target:h().int().nonnegative()}).strict(),dw=y({ok:ae(!0),checks:k(uw),executionNodes:k(k0),dedupSaved:h().int().nonnegative(),usageEdges:NE,estCostUsd:he(),plan:xE,warnings:k(sw),counts:gu}).strict(),mw=y({ok:ae(!1),checks:k(uw).min(1),executionNodes:k(k0).length(0),dedupSaved:ae(0),usageEdges:y({baseline:ae(0),target:ae(0)}).strict(),estCostUsd:he()}).strict();gt("ok",[dw,mw]);const au=y({targetKey:Kt,context:gn.nullable(),queryIds:k(Al)}).strict();function dv(e){return y({added:k(e),removed:k(e),changed:k(y({stableKey:Kt,before:e,after:e}).strict()),unchanged:k(Kt)}).strict()}const _E=dw.extend({diff:y({activeRevision:jl.nullable(),targets:dv(ow),groups:dv(v0),querySelections:y({added:k(au),removed:k(au),changed:k(y({targetKey:Kt,before:au,after:au}).strict()),unchanged:k(y({targetKey:Kt,context:gn.nullable()}).strict())}).strict(),execution:y({addedNodeKeys:k(c().min(1)),removedNodeKeys:k(c().min(1)),addedUsageEdges:k(zf),removedUsageEdges:k(zf),counts:y({before:gu.nullable(),after:gu,delta:gu.nullable()}).strict()}).strict()}).strict()}).strict(),CE=mw.extend({diff:he()}).strict();gt("ok",[_E,CE]);const Hu=E(["complete","partial","failed","unsupported"]);Hu.enum;E(["proposed","alias","shared","unmatched","excluded"]);E(["primary-match","exact-slug-match","excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"]);const zE=E(["invalid-url","unowned-host","duplicate-url","url-cap-reached"]),EE=y({kind:E(["exact","prefix","suffix","contains"]),value:c().trim().min(1)}).strict(),mv=y({host:c().trim().min(1),pathTemplate:c().trim().min(1)}).strict(),S0=y({primary:mv,aliases:k(mv).optional(),excludedSlugSuffixes:k(c().trim().min(1)).optional(),excludedSlugPatterns:k(EE).optional()}).strict();y({sitemapUrl:c().url().refine(e=>{try{const t=new URL(e).protocol;return t==="http:"||t==="https:"}catch{return!1}},"Sitemap URL must use http or https"),rule:S0,maxUrls:h().int().positive().max(1e4).optional()}).strict();const Hp=y({url:c(),canonicalUrl:c().nullable(),classification:E(["shared","unmatched","excluded"]),reason:E(["excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"])}).strict().superRefine((e,t)=>{({shared:["shared-path"],unmatched:["unmatched-path","alias-without-primary","unsupported-slug"],excluded:["excluded-slug"]})[e.classification].includes(e.reason)||t.addIssue({code:"custom",message:"Discovery classification and reason do not match"})}),TE=y({classification:ae("proposed"),reason:ae("primary-match"),stableKey:Kt,slug:c().trim().min(1),label:c().trim().min(1),primaryUrl:c().url(),aliasCoverageUrls:k(c().url())}).strict(),DE=y({classification:ae("alias"),reason:ae("exact-slug-match"),slug:c().trim().min(1),url:c().url(),targetStableKey:Kt}).strict(),OE=y({kind:zE,url:c(),canonicalUrl:c().nullable(),duplicateOf:c().optional()}).strict();y({proposed:k(TE),aliases:k(DE),shared:k(Hp),unmatched:k(Hp),excluded:k(Hp),diagnostics:k(OE)}).strict().superRefine((e,t)=>{const i=[["shared",["shared"]],["unmatched",["unmatched"]],["excluded",["excluded"]]];for(const[s,r]of i)for(const u of e[s])r.includes(u.classification)||t.addIssue({code:"custom",path:[s],message:"Discovery item is in the wrong result bucket"})});const j0=E(["assigned","sibling","ownedUnmapped","external","ambiguous","invalid"]),pw=E(["baseline","target"]),fw=E(["incomplete","evidence-incomplete","no-population","aliasless","no-competitors","no-project-aliases"]),ks=Ge([y({numerator:h().int().nonnegative(),denominator:h().int().positive(),rate:h().min(0).max(1)}).strict(),y({numerator:he(),denominator:he(),rate:he(),reason:fw}).strict()]).superRefine((e,t)=>{e.numerator!==null&&e.numerator>e.denominator&&t.addIssue({code:"custom",path:["numerator"],message:"Rate numerator cannot exceed denominator"})}),RE=c().trim().min(1).overwrite(e=>e.toLocaleLowerCase("en")),ME=y({executionId:c().trim().min(1),queryText:c().trim().min(1),provider:RE,context:gn.nullable(),requestedModel:c().trim().min(1).optional()}).strict();y({schemaVersion:ae(1),expectedSlots:k(ME)}).strict().superRefine((e,t)=>{const i=new Set;for(const[s,r]of e.expectedSlots.entries()){const u=[r.executionId,r.provider].join("\0");i.has(u)&&t.addIssue({code:"custom",path:["expectedSlots",s],message:"Duplicate expected provider slot"}),i.add(u)}});const Qu=y({executed:h().int().nonnegative(),expected:h().int().nonnegative(),complete:P(),sourceComplete:P(),sourceCompleteObservations:h().int().nonnegative(),answerComplete:P()}).strict(),pv=Ge([y({domain:c().trim().min(1),own:P(),presentIn:h().int().nonnegative(),of:h().int().positive()}).strict(),y({domain:c().trim().min(1),own:P(),presentIn:he(),of:he(),reason:fw}).strict()]),BE=y({domains:k(pv),providers:k(y({provider:dt,domains:k(pv)}).strict())}).strict(),qE=y({provider:dt,completeness:Qu,answerCoverage:ks}).strict(),IE=y({id:c().trim().min(1),label:c().trim().min(1),targetIds:k(c().trim().min(1)),completeness:Qu,answerCoverage:ks,targetCoverage:ks,sov:BE,providers:k(qE)}).strict(),LE=y({provider:dt,completeness:Qu,citationCoverage:ks,mentionCoverage:ks}).strict(),PE=y({id:c().trim().min(1),label:c().trim().min(1),completeness:Qu,citationCoverage:ks,mentionCoverage:ks,providers:k(LE)}).strict(),hw=y({observationId:c().trim().min(1),expectedSlotId:c().trim().min(1),executionId:c().trim().min(1),usageEdgeId:c().trim().min(1),usageEdgeType:pw,provider:dt,queryText:c().trim().min(1),location:c().nullable(),sourceUrl:c(),bridged:P(),historical:P(),evidenceComplete:P(),classification:j0,normalizedUrl:c().nullable(),matchedTargetIds:k(c().trim().min(1)),matchedUrlIds:k(c().trim().min(1))}).strict(),$E=y({sourceUrl:c(),normalizedUrl:c().nullable(),classification:j0,matchedTargetIds:k(c().trim().min(1)),matchedUrlIds:k(c().trim().min(1))}).strict(),UE=y({observationId:c().trim().min(1),expectedSlotId:c().trim().min(1),executionId:c().trim().min(1),usageEdgeId:c().trim().min(1),usageEdgeType:pw,provider:dt,queryText:c().trim().min(1),location:c().nullable(),queryClass:Ge([E(["branded","non-brand"]),he()]),mentioned:P().nullable(),cited:P().nullable(),sources:k($E),sourceCount:h().int().nonnegative(),sourcesTruncated:P(),bridged:P(),historical:P(),evidenceComplete:P()}).strict(),VE=y({bridgedObservationIds:k(c()),historicalObservationIds:k(c()),evidenceIncompleteObservationIds:k(c()),ambiguousObservationIds:k(c()),unmatchedObservationIds:k(c())}).strict(),KE=y({id:c().trim().min(1),status:E(["completed","partial"]),createdAt:c().datetime(),startedAt:c().datetime().nullable(),finishedAt:c().datetime().nullable()}).strict();y({revision:h().int().positive(),run:KE.nullable(),groups:k(IE),targets:k(PE),evidence:k(hw),diagnostics:VE}).strict();y({property:y({targetKey:ve,label:c().min(1)}).strict(),queryClass:ma,measurement:y({state:b0,displayedRunId:c().min(1).optional(),completedAt:c().datetime().optional()}).strict(),evidence:Do(hw).optional(),answers:Do(UE).optional()}).strict().refine(e=>e.evidence===void 0!=(e.answers===void 0),{message:"Exactly one of evidence or answers is present, naming the shape that was served."});const A0=E(["used","not-used","unknown","not-applicable"]);A0.enum;const N0=E(["native-auto-v1","search-required-v1"]);N0.enum;const ua=c().trim().min(1),Nl=c().trim().min(1),GE=c().trim().min(1),Ye=h().int().nonnegative(),_l=y({state:b0,displayedRunId:ua.nullable(),planRevision:h().int().positive(),completedAt:c().datetime().nullable()}).strict(),Cl=y({targetKey:ve,label:Nl}).strict(),Bn={runId:ua.optional(),provider:dt.optional(),location:GE.optional()},bl=c().trim().min(1);y({runId:Bn.runId,groupKey:ve.optional(),queryClass:ma.default("non-brand"),provider:Bn.provider,location:Bn.location,limit:h().int().positive().max(50).optional()}).strict();const HE=Cl.extend({mentionCoverage:Vt,citationCoverage:Vt,flags:Ye,recommendedInstead:k(y({name:bl,occurrences:Ye}).strict()).max(5),recommendedInsteadTotal:Ye,recommendedInsteadTruncated:P()}).strict().superRefine((e,t)=>{e.recommendedInstead.length>e.recommendedInsteadTotal&&t.addIssue({code:ht.custom,path:["recommendedInsteadTotal"],message:"Total cannot be smaller than the returned replacements"}),e.recommendedInsteadTruncated!==e.recommendedInstead.length<e.recommendedInsteadTotal&&t.addIssue({code:ht.custom,path:["recommendedInsteadTruncated"],message:"Truncation must agree with the replacement total"})}),QE=y({groupKey:ve,label:Nl,propertyCount:Ye,propertiesMentioned:Vt,mentionCoverage:Vt,citationCoverage:Vt}).strict();y({portfolio:y({groupKey:ve.nullable(),label:Nl.nullable(),measurementScope:Ge([E(["full","spot_check"]),he()])}).strict(),measurement:_l,queryClass:ma,metrics:y({propertiesMentioned:Vt,mentionCoverage:Vt,citationCoverage:Vt}).strict(),weakestProperties:k(HE),markets:k(QE),totalProperties:Ye,truncated:P()}).strict();y({targetKey:ve,runId:Bn.runId,provider:Bn.provider,location:Bn.location,queryClass:ma.optional(),offset:h().int().nonnegative().optional(),limit:h().int().positive().max(100).optional()}).strict();E(["answered","missing"]);const Ef={queryId:ua,text:Nl,class:f0,provider:dt,requestedModel:c().nullable(),servedModel:c().nullable(),location:c().nullable()},ZE=gt("status",[y({resultId:ua,...Ef,status:ae("answered"),mentioned:P().nullable(),cited:P().nullable(),recommendedInstead:k(bl),answerExcerpt:c().nullable()}).strict(),y({resultId:he(),...Ef,status:ae("missing"),mentioned:he(),cited:he(),recommendedInstead:k(bl).length(0),answerExcerpt:he()}).strict()]);y({property:Cl,measurement:_l,queryClass:ma,questions:k(ZE),total:Ye,truncated:P()}).strict();y({targetKey:ve,resultId:ua}).strict();const FE=y({url:ua,classification:j0,matchedTargetKeys:k(ve),assigned:P(),historical:P(),evidenceComplete:P()}).strict().superRefine((e,t)=>{e.assigned!==(e.classification==="assigned")&&t.addIssue({code:ht.custom,path:["assigned"],message:"Assigned must agree with the source attribution classification"})});y({property:Cl,measurement:_l,question:y({resultId:ua,...Ef,status:ae("answered")}).strict(),mentioned:P().nullable(),cited:P().nullable(),recommendedInstead:k(bl),answer:c().nullable(),sources:k(FE),captureStatus:Ge([Hu,he()]),retrievalStatus:Ge([A0,he()]),retrievalContract:Ge([N0,he()])}).strict();y({targetKey:ve,runId:Bn.runId,provider:Bn.provider,location:Bn.location,queryClass:ma.optional(),limit:h().int().positive().max(50).optional()}).strict();const YE=gt("state",[y({state:ae("available"),answeredResults:Ye,targetMissResults:Ye,recommendationOccurrences:Ye}).strict(),y({state:ae("unavailable"),reason:g0}).strict()]),XE=y({name:bl,occurrences:Ye,providers:k(dt).max(5),providerTotal:Ye,providersTruncated:P(),questions:k(Nl).max(5),questionTotal:Ye,questionsTruncated:P()}).strict().superRefine((e,t)=>{(e.providers.length>e.providerTotal||e.questions.length>e.questionTotal)&&t.addIssue({code:ht.custom,message:"Evidence totals cannot be smaller than returned evidence"}),e.providersTruncated!==e.providers.length<e.providerTotal&&t.addIssue({code:ht.custom,path:["providersTruncated"],message:"Provider truncation must agree with its total"}),e.questionsTruncated!==e.questions.length<e.questionTotal&&t.addIssue({code:ht.custom,path:["questionsTruncated"],message:"Question truncation must agree with its total"})});y({property:Cl,measurement:_l,queryClass:ma,basis:YE,competitors:k(XE),total:Ye,truncated:P()}).strict();y({runId:Bn.runId,scope:y0.default("all"),groupKey:ve.optional(),targetKey:ve.optional(),queryClass:ma.default("all"),provider:Bn.provider,location:Bn.location,limit:h().int().positive().max(50).optional()}).strict().superRefine((e,t)=>{e.scope==="all"&&(e.groupKey!==void 0||e.targetKey!==void 0)&&t.addIssue({code:ht.custom,path:["scope"],message:"All scope cannot name a group or Property"}),e.scope==="group"&&(e.groupKey===void 0||e.targetKey!==void 0)&&t.addIssue({code:ht.custom,path:["groupKey"],message:"Group scope requires groupKey only"}),e.scope==="property"&&(e.targetKey===void 0||e.groupKey!==void 0)&&t.addIssue({code:ht.custom,path:["targetKey"],message:"Property scope requires targetKey only"})});const gw=E(["no_previous_run","execution_identity_changed","incomplete","not_comparable"]),yw=_l.extend({executionIdentity:ua.nullable(),measurementScope:Ge([E(["full","spot_check"]),he()])}).strict(),Xr=gt("state",[y({state:ae("available"),previous:Vt,current:Vt,delta:h()}).strict().superRefine((e,t)=>{if(e.previous.state!=="available"||e.current.state!=="available"){t.addIssue({code:ht.custom,message:"Available deltas require two available metrics"});return}Math.abs(e.delta-(e.current.value-e.previous.value))>Number.EPSILON&&t.addIssue({code:ht.custom,path:["delta"],message:"Delta must equal current minus previous"})}),y({state:ae("unavailable"),reason:g0}).strict()]);y({current:yw,comparison:gt("state",[y({state:ae("available"),previous:y({displayedRunId:ua,planRevision:h().int().positive(),completedAt:c().datetime().nullable(),executionIdentity:ua,measurementScope:E(["full","spot_check"])}).strict(),metrics:y({propertiesMentioned:Xr,mentionCoverage:Xr,citationCoverage:Xr}).strict(),changedProperties:k(Cl.extend({mentionCoverage:Xr,citationCoverage:Xr,flags:Ye}).strict()),totalProperties:Ye,truncated:P()}).strict(),y({state:ae("unavailable"),reason:gw}).strict()])}).strict().superRefine((e,t)=>{if(e.comparison.state==="available"){if(e.current.displayedRunId===null||e.current.executionIdentity===null){t.addIssue({code:ht.custom,path:["current"],message:"A comparison requires an identified current run"});return}e.comparison.previous.planRevision!==e.current.planRevision&&t.addIssue({code:ht.custom,path:["comparison","previous","planRevision"],message:"Comparisons cannot cross plan revisions"}),e.comparison.previous.executionIdentity!==e.current.executionIdentity&&t.addIssue({code:ht.custom,path:["comparison","previous","executionIdentity"],message:"Comparisons cannot cross execution identities"})}});y({runId:Bn.runId}).strict();const JE=E(["no_completed_run","incomplete","evidence_incomplete","no_population","not_applicable"]),Zu=y({state:ae("unavailable"),reason:JE}).strict(),WE=y({state:ae("available"),expected:Ye,executed:Ye,answered:Ye,missing:Ye}).strict(),eT=gt("state",[WE,Zu]).superRefine((e,t)=>{e.state==="available"&&(e.executed+e.missing!==e.expected&&t.addIssue({code:ht.custom,message:"Expected must equal executed plus missing"}),e.answered>e.executed&&t.addIssue({code:ht.custom,path:["answered"],message:"Answered cannot exceed executed"}))}),tT=y({state:ae("available"),complete:Ye,partial:Ye,failed:Ye,unsupported:Ye,notRecorded:Ye}).strict(),nT=gt("state",[tT,Zu]),aT=y({state:ae("available"),used:Ye,notUsed:Ye,unknown:Ye,notApplicable:Ye,notRecorded:Ye}).strict(),iT=gt("state",[aT,Zu]),sT=y({state:ae("available"),expectedQuestions:Ye,answeredQuestions:Ye,missingQuestions:Ye}).strict(),oT=gt("state",[sT,Zu]).superRefine((e,t)=>{e.state==="available"&&e.answeredQuestions+e.missingQuestions!==e.expectedQuestions&&t.addIssue({code:ht.custom,message:"Expected questions must equal answered plus missing"})});y({run:yw,completeness:eT,capture:nT,retrieval:iT,population:oT,comparison:gt("state",[y({state:ae("available"),previousDisplayedRunId:ua}).strict(),y({state:ae("unavailable"),reason:gw}).strict()])}).strict().superRefine((e,t)=>{if(e.completeness.state!=="available")return;const i=e.completeness.executed;e.capture.state==="available"&&e.capture.complete+e.capture.partial+e.capture.failed+e.capture.unsupported+e.capture.notRecorded!==i&&t.addIssue({code:ht.custom,path:["capture"],message:"Capture counts must total executed snapshots"}),e.retrieval.state==="available"&&e.retrieval.used+e.retrieval.notUsed+e.retrieval.unknown+e.retrieval.notApplicable+e.retrieval.notRecorded!==i&&t.addIssue({code:ht.custom,path:["retrieval"],message:"Retrieval counts must total executed snapshots"})});const Oo=c().regex(/^[a-f0-9]{64}$/),da=c().trim().min(1).max(256),Pi=h().int().positive(),fv=y({kind:E(["user","api-key","system"]),id:c().trim().min(1),label:c().trim().min(1)}).strict(),rT=E(["proposed","included","excluded"]),lT=E(["manual","sitemap"]),_0=y({stableKey:ve,label:c().trim().min(1),status:rT,aliases:k(c().trim().min(1)),urlMatchers:k(c().trim().min(1)),source:lT,discoveredUrl:c().trim().min(1).optional(),discoveryIdentity:c().trim().min(1).optional()}).strict(),Fu=y({providers:k(dt).optional(),models:Le(dt,c().trim().min(1)).optional(),locations:k(c().trim().min(1)).optional()}).strict(),cT=E(["branded","non-brand","unclassified"]),uT=E(["rule","operator"]),bw=y({targetKey:ve,queryId:da,contextOverride:Fu.optional(),queryClass:cT,classificationSource:uT}).strict(),C0=Xk,vw=y({stableKey:ve,label:c().trim().min(1),targetKeys:k(ve),competitors:k(C0)}).strict(),dT=y({sitemapUrl:c().url(),rule:S0,exclusions:k(c().trim().min(1)),inputChecksum:Oo,reviewedAt:c().datetime().optional()}).strict(),mT=y({providers:k(dt),models:Le(dt,c().trim().min(1)).optional(),locations:k(c().trim().min(1))}).strict(),pT=y({defaultContext:mT,targets:k(_0),assignments:k(bw),groups:k(vw),discovery:dT.optional()}).strict(),fT=y({id:c().trim().min(1),projectId:c().trim().min(1),schemaVersion:ae(2),baseActiveVersionId:c().trim().min(1).nullable(),baseActiveRevision:Pi.nullable(),authoring:pT,createdBy:fv,updatedBy:fv,createdAt:c().datetime(),updatedAt:c().datetime()}).strict(),z0=y({targets:h().int().nonnegative(),includedTargets:h().int().nonnegative(),assignments:h().int().nonnegative(),unclassifiedAssignments:h().int().nonnegative(),groups:h().int().nonnegative(),competitors:h().int().nonnegative()}).strict(),hT=y({code:c().trim().min(1),message:c().trim().min(1),path:k(Ge([c(),h().int()]))}).strict(),gT=y({etag:c().trim().min(1),changed:P(),warnings:k(hT),counts:z0}).strict();y({draft:fT.nullable(),etag:c().trim().min(1).nullable()}).strict();Do(_0);Do(bw);Do(vw);y({search:c().optional(),cursor:c().trim().min(1).optional(),limit:h().int().positive().max(h0).optional()}).strict();y({expectedActiveRevision:Pi.nullable()}).strict();y({sitemapUrl:c().url(),rule:S0,exclusions:k(c().trim().min(1)).optional()}).strict();const yT=y({discoveryIdentity:c().trim().min(1),action:E(["create","rebind","ignore"]),targetKey:ve.optional(),label:c().trim().min(1).optional()}).strict();y({selections:k(yT),selectedTargetKeys:k(ve).optional()}).strict().superRefine((e,t)=>{e.selections.length===0&&e.selectedTargetKeys===void 0&&t.addIssue({code:"custom",message:"A proposal or reviewed Property selection is required."}),e.selectedTargetKeys&&new Set(e.selectedTargetKeys).size!==e.selectedTargetKeys.length&&t.addIssue({code:"custom",path:["selectedTargetKeys"],message:"Property keys must be unique."})});y({target:_0}).strict();y({targetKey:ve,label:c().trim().min(1)}).strict();y({targetKey:ve,mergedKeys:k(ve).min(1)}).strict();y({targetKey:ve,cleanup:ae("assignments-and-group-memberships").optional()}).strict();y({targetKey:ve,discoveryIdentity:c().trim().min(1),discoveredUrl:c().url()}).strict();const kw={targetKeys:k(ve).optional(),groupKeys:k(ve).optional()};function ww(e,t){(e.targetKeys?.length??0)===0&&(e.groupKeys?.length??0)===0&&t.addIssue({code:"custom",message:"At least one Target or group selector is required."})}y(kw).strict().superRefine(ww);const bT=y({...kw,queryIds:k(da).min(1),contextOverride:Fu.optional()}).strict().superRefine(ww);Ge([y({targetKey:ve,queryIds:k(da).min(1),contextOverride:Fu.optional()}).strict(),bT]);const vT=y({groupKey:ve,label:c().trim().min(1),memberCount:h().int().positive()}).strict();y({draftEtag:c().trim().min(1),groups:k(vT),resolvedTargetKeys:k(ve),overlapCount:h().int().nonnegative(),assignments:y({requested:h().int().nonnegative(),added:h().int().nonnegative(),alreadyPresent:h().int().nonnegative()}).strict(),execution:y({addedNodes:h().int().nonnegative(),addedProviderCalls:h().int().nonnegative(),fullRunNodes:h().int().nonnegative(),fullRunProviderCalls:h().int().nonnegative()}).strict()}).strict();y({pairs:k(y({targetKey:ve,queryId:da}).strict()).min(1),contextOverride:Fu.optional()}).strict();Ge([y({targetKey:ve,queryId:da}).strict(),y({targetKeys:k(ve).min(1),queryId:da}).strict()]);y({targetKey:ve}).strict();y({queryClass:f0,assignments:k(y({targetKey:ve,queryId:da}).strict()).min(1)}).strict();y({group:y({stableKey:ve,label:c().trim().min(1),targetKeys:k(ve),competitors:k(C0).optional()}).strict()}).strict();y({groupKey:ve}).strict();y({groupKey:ve,competitor:C0}).strict();y({groupKey:ve,competitorKey:ve}).strict();const zu=y({ruleId:c().trim().min(1),severity:E(["fail","warn"]),message:c().trim().min(1),path:k(Ge([c(),h().int()]))}).strict();gt("ok",[y({ok:ae(!0),compiledChecksum:Oo,checks:k(zu),counts:z0,plan:Gu}).strict(),y({ok:ae(!1),compiledChecksum:he(),checks:k(zu).min(1)}).strict()]);const hv=y({added:k(c().trim().min(1)),removed:k(c().trim().min(1)),changed:k(c().trim().min(1)),unchanged:k(c().trim().min(1))}).strict(),kT=y({activeRevision:Pi.nullable(),targets:hv,groups:hv,assignments:y({added:h().int().nonnegative(),removed:h().int().nonnegative(),reclassified:h().int().nonnegative()}).strict(),execution:y({addedNodeKeys:k(c().trim().min(1)),removedNodeKeys:k(c().trim().min(1))}).strict()}).strict();gt("ok",[y({ok:ae(!0),compiledChecksum:Oo,checks:k(zu),counts:z0,plan:Gu,diff:kT}).strict(),y({ok:ae(!1),compiledChecksum:he(),checks:k(zu).min(1),diff:he()}).strict()]);y({expectedActiveRevision:Pi.nullable(),expectedCompiledChecksum:Oo}).strict();y({published:P(),active:y({revision:Pi,checksum:Oo,compiledChecksum:Oo,createdAt:c().datetime(),plan:Gu}).strict()}).strict();y({discarded:P()}).strict();y({expectedActiveRevision:Pi}).strict();y({deactivated:P(),previousRevision:Pi.nullable()}).strict();const wT=E(["republish_required","setup_in_progress","awaiting_first_run","operational","simple"]),xT=E(["republish_setup","continue_setup","run_measurement","view_measurement","start_setup"]),ST=E(["simple","draft-only","active-v1","active-v2"]);y({state:wT,nextAction:xT,mode:ST,activeRevision:Pi.nullable(),activeSchemaVersion:Ge([ae(1),ae(2)]).nullable(),draft:y({etag:c().trim().min(1),updatedAt:c().datetime()}).strict().nullable()}).strict();const xw=y({id:c().trim().min(1),projectId:c().trim().min(1),name:c().trim().min(1),description:c().nullable(),itemCount:h().int().nonnegative(),createdAt:c().datetime(),updatedAt:c().datetime()}).strict(),jT=y({queryId:da,queryText:c().min(1),position:h().int().nonnegative()}).strict();xw.extend({items:k(jT)}).strict();y({querySets:k(xw)}).strict();y({name:c().trim().min(1),description:c().nullable().optional(),queryIds:k(da)}).strict();const AT=y({id:c().trim().min(1),projectId:c().trim().min(1),name:c().trim().min(1),description:c().nullable(),pattern:c().trim().min(1),variables:k(c().trim().min(1)),createdAt:c().datetime(),updatedAt:c().datetime()}).strict();y({templates:k(AT)}).strict();y({name:c().trim().min(1),description:c().nullable().optional(),pattern:c().trim().min(1),variables:k(c().trim().min(1))}).strict();y({bindings:k(Le(c().trim().min(1),c().trim().min(1))).min(1),querySetId:c().trim().min(1).optional()}).strict();y({created:k(y({queryId:da,queryText:c().min(1)}).strict()),existing:k(y({queryId:da,queryText:c().min(1)}).strict())}).strict();const Eu=c().regex(/^[a-f0-9]{64}$/),Yu=h().int().positive();y({stableKey:ve,kind:E(["target","group"]),retiredAt:c().datetime().nullable()}).strict();y({csv:c()}).strict();E(["matched","ambiguous","unmatched","invalid","duplicate","proposed","excluded"]);const NT=E(["column-count","missing-property","missing-group","invalid-url","property-not-found","property-label-ambiguous","url-not-exact-match","target-proposed","target-excluded","group-label-ambiguous","group-key-conflict"]),Tf=y({dataRow:Yu,property:c(),group:c(),url:c().nullable(),normalizedProperty:c(),normalizedGroupLabel:c()}).strict(),Jr=Tf.extend({reason:NT}),_T=y({source:E(["draft-target","draft-group","persisted-segment","retired-segment","proposed-group"]),stableKey:ve,kind:E(["target","group"]).optional(),retiredAt:c().datetime().nullable().optional(),normalizedGroupLabel:c().optional()}).strict(),CT=y({proposedGroupKey:ve,evidence:k(_T).min(1)}).strict(),zT=gt("status",[Tf.extend({status:ae("matched"),targetKey:ve,groupKey:ve}).strict(),Jr.extend({status:ae("ambiguous"),candidateTargetKeys:k(ve).min(1).optional(),candidateGroupKeys:k(ve).min(1).optional()}).strict(),Jr.extend({status:ae("unmatched")}).strict(),Jr.extend({status:ae("invalid"),groupKeyConflict:CT.optional()}).strict(),Tf.extend({status:ae("duplicate"),duplicateOfRow:Yu,targetKey:ve,groupKey:ve}).strict(),Jr.extend({status:ae("proposed"),targetKey:ve}).strict(),Jr.extend({status:ae("excluded"),targetKey:ve}).strict()]),ET=y({normalizedGroupLabel:c(),groupKey:ve,label:c().trim().min(1),action:E(["create","extend"]),matchedRows:k(Yu),targetKeys:k(ve),addedTargetKeys:k(ve),unchangedTargetKeys:k(ve)}).strict(),TT=y({dataRows:h().int().nonnegative(),matchedRows:h().int().nonnegative(),ambiguousRows:h().int().nonnegative(),unmatchedRows:h().int().nonnegative(),invalidRows:h().int().nonnegative(),duplicateRows:h().int().nonnegative(),proposedRows:h().int().nonnegative(),excludedRows:h().int().nonnegative(),needsAttention:h().int().nonnegative(),groupsReady:h().int().nonnegative(),groupsToCreate:h().int().nonnegative(),groupsToExtend:h().int().nonnegative(),membershipsReady:h().int().nonnegative(),addedMemberships:h().int().nonnegative(),unchangedMemberships:h().int().nonnegative()}).strict();y({draftEtag:c().trim().min(1),sourceChecksum:Eu,previewChecksum:Eu,rows:k(zT),groupChanges:k(ET),counts:TT}).strict();y({csv:c(),sourceChecksum:Eu,previewChecksum:Eu,acceptedRows:k(Yu).min(1)}).strict().superRefine((e,t)=>{new Set(e.acceptedRows).size!==e.acceptedRows.length&&t.addIssue({code:"custom",path:["acceptedRows"],message:"Accepted CSV data rows must be unique."})});gT.extend({appliedRows:h().int().nonnegative(),addedMemberships:h().int().nonnegative(),unchangedMemberships:h().int().nonnegative()}).strict();const Sw=E(["introduced","repointed","retired"]),DT=Sw.enum;y({modelId:c().trim().min(1),date:c().regex(/^\d{4}-\d{2}-\d{2}$/,"date must be YYYY-MM-DD"),kind:Sw,confirmed:P(),sourceUrl:c().url(),note:c().min(1)});const OT=[{modelId:"chatgpt-4o-latest",date:"2024-08-15",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released dynamic model for chatgpt-4o-latest—this model will point to the latest GPT-4o model used by ChatGPT." First moving id in the lineage.'},{modelId:"chatgpt-4o-latest",date:"2026-02-17",kind:"retired",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/deprecations.md",note:'Shutdown 2026-02-17, replacement gpt-5.1-chat-latest. Announced under the heading "2025-11-18: chatgpt-4o-latest snapshot".'},{modelId:"gpt-5.1-chat-latest",date:"2025-11-13",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.1 launch entry, not as a standalone entry."},{modelId:"gpt-5.2-chat-latest",date:"2025-12-11",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.2 launch entry."},{modelId:"gpt-5.2-chat-latest",date:"2026-02-10",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.2-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-03",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released gpt-5.3-chat-latest to the Chat Completions and Responses API. This model points to the GPT-5.3 Instant snapshot currently used in ChatGPT."'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-16",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.3-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"chat-latest",date:"2026-05-05",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released chat-latest snapshot which points to the latest Instant model currently used in ChatGPT... The underlying model snapshot will be regularly updated."'},{modelId:"chat-latest",date:"2026-05-28",kind:"repointed",confirmed:!1,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'UNCONFIRMED. The entry reads "Released chat-latest snapshot..." — the verb is "Released", the same boilerplate as the 2026-05-05 entry, not "Updated" as used on 2026-06-24. Only "the latest improvements" vs "our latest improvements" differs. Either a real change logged with copy-pasted text, or a duplicated entry; the record does not disambiguate.'},{modelId:"chat-latest",date:"2026-06-24",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim (re-read at source 2026-07-20): "Updated the chat-latest snapshot, which points to the latest Instant model currently used in ChatGPT." The verb is "Updated", unlike the "Released" boilerplate of 2026-05-05 and 2026-05-28, which is the wording the changelog reserves for a real change. Target model NOT named. The only unambiguous chat-latest change on record.'}];DT.repointed;new Set(OT.map(e=>e.modelId.toLowerCase()));const RT=E(["not-exposed","no-known-change","known-change"]);RT.enum;const MT=y({modelId:c().trim().min(1),date:c().regex(/^\d{4}-\d{2}-\d{2}$/),confirmed:P(),sourceUrl:c().url()}),BT=y({status:E(["no-known-change","known-change"]),modelIds:k(c().trim().min(1)).min(1),changes:k(MT),changeCount:h().int().nonnegative(),unverifiedChangeCount:h().int().nonnegative(),firstChangeDate:c().optional(),lastChangeDate:c().optional(),knownGoodAsOf:c(),checkedThroughPeriodEnd:P()}),qT={openai:"ChatGPT",chatgpt:"ChatGPT",anthropic:"Claude",claude:"Claude",google:"Gemini",gemini:"Gemini",perplexity:"Perplexity"};function IT(e){const t=e.trim().toLowerCase();return qT[t]??e.charAt(0).toUpperCase()+e.slice(1)}function Qp(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):0}function Wr(e){return typeof e=="string"&&e.trim().length>=10?e.trim().slice(0,10):null}function Zp(e){return[...new Set(e.filter(t=>t!==null))].sort()}function LT(e,t){const i=IT(e),s=Array.isArray(t.changes)?t.changes:[],r=Qp(t.changeCount)||s.length,u=Math.min(r,Qp(t.unverifiedChangeCount)||Qp(t.unconfirmedChangeCount)||s.filter(x=>x.confirmed===!1).length),d=Wr(t.knownGoodAsOf),g=t.checkedThroughPeriodEnd!==!1,b={engine:i,confirmedCount:r-u,unconfirmedCount:u,knownGoodAsOf:d,checkedThroughPeriodEnd:g};if(s.length>0)return{...b,confirmedDates:Zp(s.filter(x=>x.confirmed!==!1).map(x=>Wr(x.date))),unconfirmedDates:Zp(s.filter(x=>x.confirmed===!1).map(x=>Wr(x.date)))};const v=Zp([Wr(t.firstChangeDate),Wr(t.lastChangeDate)]);return r===0?{...b,confirmedDates:[],unconfirmedDates:[]}:u===0?{...b,confirmedDates:v,unconfirmedDates:[]}:b.confirmedCount===0?{...b,confirmedDates:[],unconfirmedDates:v}:{...b,confirmedDates:[],unconfirmedDates:[]}}function PT(e){return e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function gv(e,t){return e.length===0?null:e.length===1&&t<=1?`on ${e[0]}`:`more than once between ${e[0]} and ${e[e.length-1]}`}function $T(e){const t=gv(e.confirmedDates,e.confirmedCount),i=gv(e.unconfirmedDates,e.unconfirmedCount),s=`The model behind ${e.engine}`;if(e.confirmedCount>0&&e.unconfirmedCount===0)return t?`${s} was updated ${t}, inside this period.`:`${s} was updated inside this period.`;if(e.confirmedCount===0)return i?`${s} may have been updated ${i}, inside this period, though that is not confirmed.`:`${s} may have been updated inside this period, though that is not confirmed.`;if(t&&i)return`${s} was updated ${t}, inside this period, and may also have been updated ${i}.`;const r=e.unconfirmedCount>1?"more times":"once more";return`${s} was updated inside this period, and may have been updated ${r}, though that is not confirmed.`}function yv(e){const t=e.filter(s=>!s.checkedThroughPeriodEnd&&s.knownGoodAsOf!==null);return t.length===0?null:`We last checked for model updates on ${t.map(s=>s.knownGoodAsOf).sort()[0]}, and this period runs past that date, so there may be later updates we do not know about.`}function rK(e){const t=Object.entries(e??{}).map(([b,v])=>LT(b,v??{})).sort((b,v)=>b.engine.localeCompare(v.engine));if(t.length===0)return null;const i=t.filter(b=>b.confirmedCount+b.unconfirmedCount>0);if(i.length===0){const b=[...new Set(t.map(_=>_.engine))],v=b.length>1,x=yv(t),S=[...new Set(t.map(_=>_.knownGoodAsOf).filter(_=>_!==null))].sort(),j=x??(S.length>0?`We last checked for model updates on ${S[0]}.`:null);return{kind:"no-known-change",text:`No model updates are on record for ${PT(b)} in this period.`,detail:`${v?"These engines":"This engine"} can be moved onto a different underlying model without the data ever showing a different model name, so we check each period against a record of known updates. Nothing is listed inside this one.${j?` ${j}`:""}`}}const s=i.reduce((b,v)=>b+v.confirmedCount+v.unconfirmedCount,0),r=i.some(b=>b.confirmedCount>0),u=s===1?"this update":"these updates",d=r?`Some of the movement in these numbers may come from ${u} rather than from a real change in how AI answers about you, so compare periods carefully.`:`If so, some of the movement in these numbers may come from ${u} rather than from a real change in how AI answers about you, so compare periods carefully.`,g=yv(t);return{kind:"change",text:`${i.map($T).join(" ")} ${d}${g?` ${g}`:""}`}}const UT=E(["gsc","ga4","gbp"]);y({id:c(),domain:c(),connectionType:UT,propertyId:c().nullable().optional(),sitemapUrl:c().nullable().optional(),scopes:k(c()).default([]),createdAt:c(),updatedAt:c()});const VT=y({date:c(),query:c(),page:c(),country:c().nullable().optional(),device:c().nullable().optional(),clicks:h(),impressions:h(),ctr:h(),position:h()});E(["clicks","impressions","date"]);y({rows:k(VT),totalMatching:h(),truncated:P(),latestAvailableDate:c().nullable()});const KT=y({date:c(),clicks:h(),impressions:h(),ctr:h()});y({totals:y({clicks:h(),impressions:h(),ctr:h(),days:h()}),daily:k(KT)});const GT=y({page:c(),clicks:h(),impressions:h(),ctr:h()});y({rows:k(GT),totals:y({clicks:h(),impressions:h(),ctr:h(),days:h(),coveredFrom:c().nullable(),coveredThrough:c().nullable(),complete:P()}).nullable(),totalsSource:ae("property-daily"),rankedFrom:c().nullable(),rankedThrough:c().nullable()});const Df=y({id:c(),url:c(),indexingState:c().nullable().optional(),verdict:c().nullable().optional(),coverageState:c().nullable().optional(),pageFetchState:c().nullable().optional(),robotsTxtState:c().nullable().optional(),crawlTime:c().nullable().optional(),lastCrawlResult:c().nullable().optional(),isMobileFriendly:P().nullable().optional(),richResults:k(c()).default([]),referringUrls:k(c()).default([]),inspectedAt:c()});E(["stable","reindexed","deindexed","still-missing","new"]);const HT=y({url:c(),previousState:c().nullable(),currentState:c().nullable(),transitionDate:c()}),QT=y({reason:c(),count:h(),urls:k(Df).default([])});y({summary:y({total:h(),indexed:h(),notIndexed:h(),deindexed:h(),percentage:h()}),lastInspectedAt:c().nullable(),lastSyncedAt:c().nullable(),indexed:k(Df).default([]),notIndexed:k(Df).default([]),deindexed:k(HT).default([]),reasonGroups:k(QT).default([])});y({url:c(),type:E(["URL_UPDATED","URL_DELETED"]),notifiedAt:c()});const ZT=y({url:c(),type:E(["URL_UPDATED","URL_DELETED"]),notifiedAt:c(),status:E(["success","error"]),error:c().optional()});y({summary:y({total:h().int().nonnegative(),succeeded:h().int().nonnegative(),failed:h().int().nonnegative()}),results:k(ZT).default([])});y({date:c(),indexed:h(),notIndexed:h(),unknownPages:h().default(0),verifiedByInspection:h().default(0),derivedFromImpressions:h().default(0),reasonBreakdown:Le(c(),h()).default({})});const FT=y({siteUrl:c(),permissionLevel:c()});y({sites:k(FT).default([])});const YT=y({type:c(),submitted:c(),indexed:c().optional().describe("Deprecated compatibility field.")}),jw=y({path:c(),parentSitemapUrl:c().optional(),lastSubmitted:c().optional(),isPending:P().optional(),isSitemapsIndex:P().optional(),type:c().optional(),lastDownloaded:c().optional(),warnings:c().optional(),errors:c().optional(),contents:k(YT).optional()});y({sitemaps:k(jw).default([]),summary:y({total:h().int().nonnegative(),indexes:h().int().nonnegative(),files:h().int().nonnegative()}),preferredSubmissionUrls:k(c()).default([])});y({sitemapUrls:k(c().url().refine(e=>{const t=new URL(e).protocol;return t==="http:"||t==="https:"},{message:"Sitemap URL must use http or https."})).min(1).max(50)});const XT=y({sitemapUrl:c(),status:E(["accepted","error"]),submittedAt:c().optional(),error:c().optional()});y({summary:y({total:h().int().nonnegative(),accepted:h().int().nonnegative(),failed:h().int().nonnegative()}),results:k(XT)});y({sitemaps:k(jw),primarySitemapUrl:c(),run:y({id:c(),projectId:c(),kind:c(),status:c(),trigger:c(),createdAt:c()}).nullable()});const JT=y({name:c(),accountName:c().nullable(),type:c().nullable(),role:c().nullable()});y({accounts:k(JT),total:h().int().nonnegative()});const WT=y({id:c(),projectId:c(),accountName:c(),locationName:c(),displayName:c(),primaryCategoryDisplayName:c().nullable(),storefrontAddress:c().nullable(),websiteUri:c().nullable(),placeId:c().nullable(),mapsUri:c().nullable(),additionalCategories:k(c()),description:c().nullable(),serviceArea:Le(c(),Xn()).nullable(),regularHours:Le(c(),Xn()).nullable(),primaryPhone:c().nullable(),openStatus:c().nullable(),openingDate:c().nullable(),selected:P(),syncedAt:c().nullable(),createdAt:c(),updatedAt:c()});y({locations:k(WT),totalDiscovered:h().int().nonnegative(),totalSelected:h().int().nonnegative()});y({selectAllNew:P().default(!0),accountName:c().optional(),switchAccount:P().default(!1)});y({selected:P()});y({locationNames:k(c()).optional(),daysOfMetrics:h().int().positive().max(540).optional(),monthsOfKeywords:h().int().positive().max(18).optional()});y({runId:c(),status:c()});const eD=y({locationName:c(),date:c(),metric:c(),value:h().int()});y({metrics:k(eD),total:h().int().nonnegative()});const tD=y({locationName:c(),periodStart:c(),periodEnd:c(),keyword:c(),valueCount:h().int().nullable(),valueThreshold:h().int().nullable()});y({keywords:k(tD),total:h().int().nonnegative(),thresholdedPct:h().int().min(0).max(100)});const nD=y({locationName:c(),placeActionLinkName:c(),placeActionType:c(),uri:c().nullable(),isPreferred:P(),providerType:c().nullable()});y({placeActions:k(nD),total:h().int().nonnegative()});const aD=y({locationName:c(),populatedGroupCount:h().int().nonnegative(),syncedAt:c(),attributes:Le(c(),Xn())});y({lodging:k(aD),total:h().int().nonnegative()});const iD=y({name:c(),valueType:c(),values:k(Ge([P(),c()])),unsetValues:k(c()),uris:k(c())}),sD=y({locationName:c(),attributeCount:h().int().nonnegative(),syncedAt:c(),attributes:k(iD)});y({attributes:k(sD),total:h().int().nonnegative()});const oD=y({locationName:c(),placeId:c(),tier:c(),amenities:k(c()),syncedAt:c(),place:Le(c(),Xn())});y({places:k(oD),total:h().int().nonnegative()});y({scope:y({locationName:c().nullable(),locationCount:h().int().nonnegative()}),performance:y({totals:Le(c(),h()),recent7d:Le(c(),h()),prior7d:Le(c(),h()),deltaPct:Le(c(),h().nullable())}),freshness:y({dataThroughDate:c().nullable(),latestStoredDate:c().nullable(),pendingDays:h().int().nonnegative()}),timeseries:k(y({date:c(),pending:P(),metrics:Le(c(),h())})),keywords:y({total:h().int().nonnegative(),thresholdedCount:h().int().nonnegative(),thresholdedPct:h().int().min(0).max(100)}),placeActions:y({total:h().int().nonnegative(),hasReservationCta:P(),hasBookingCta:P(),hasDirectMerchantCta:P()}),lodging:y({lodgingLocationCount:h().int().nonnegative(),populatedLodgingCount:h().int().nonnegative(),emptyLodgingCount:h().int().nonnegative()}),profileCompleteness:y({locationCount:h().int().nonnegative(),withSecondaryCategories:h().int().nonnegative(),secondaryCategoryTotal:h().int().nonnegative(),withDescription:h().int().nonnegative(),withServiceArea:h().int().nonnegative(),withHours:h().int().nonnegative(),withPrimaryPhone:h().int().nonnegative(),permanentlyClosed:h().int().nonnegative(),temporarilyClosed:h().int().nonnegative()})});const rD={BUSINESS_DIRECTION_REQUESTS:"Direction requests",WEBSITE_CLICKS:"Website clicks",CALL_CLICKS:"Call clicks",BUSINESS_BOOKINGS:"Bookings",BUSINESS_CONVERSATIONS:"Conversations",BUSINESS_FOOD_ORDERS:"Food orders",BUSINESS_FOOD_MENU_CLICKS:"Food menu clicks",BUSINESS_IMPRESSIONS_DESKTOP_SEARCH:"Search impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_SEARCH:"Search impressions (mobile)",BUSINESS_IMPRESSIONS_DESKTOP_MAPS:"Maps impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_MAPS:"Maps impressions (mobile)"};function lD(e){const t=e.replace(/^BUSINESS_/,"").split("_").filter(Boolean).map(s=>s.toLowerCase());if(t.length===0)return e;const i=t.join(" ");return i.charAt(0).toUpperCase()+i.slice(1)}function lK(e){return rD[e]??lD(e)}const cD=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],uD=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function cK(e){return cD.includes(e)?"conversion":uD.includes(e)?"reach":"other"}y({id:c(),domain:c(),siteUrl:c().nullable().optional(),createdAt:c(),updatedAt:c()});const Fp=y({id:c(),url:c(),httpCode:h().nullable().optional(),inIndex:P().nullable().optional(),lastCrawledDate:c().nullable().optional(),inIndexDate:c().nullable().optional(),inspectedAt:c(),documentSize:h().nullable().optional(),anchorCount:h().nullable().optional(),discoveryDate:c().nullable().optional()});y({summary:y({total:h(),indexed:h(),notIndexed:h(),unknown:h().optional(),percentage:h()}),lastInspectedAt:c().nullable(),indexed:k(Fp).default([]),notIndexed:k(Fp).default([]),unknown:k(Fp).default([]).optional()});y({query:c(),impressions:h(),clicks:h(),ctr:h(),averagePosition:h()});y({date:c(),indexed:h(),notIndexed:h(),unknown:h()});const dD=y({url:c(),status:E(["success","error"]),submittedAt:c(),error:c().optional()});y({summary:y({total:h().int().nonnegative(),succeeded:h().int().nonnegative(),failed:h().int().nonnegative()}),results:k(dD).default([])});const Aw=y({url:c(),verified:P()});y({sites:k(Aw).default([])});y({connected:P(),domain:c(),siteUrl:c().nullable(),createdAt:c().nullable(),updatedAt:c().nullable()});y({connected:P(),domain:c(),siteUrl:c().nullable(),availableSites:k(Aw).default([])});y({siteUrl:c()});const mD=y({name:c(),alive:P(),lastUsed:c().nullable()});y({connected:P(),endpoint:c(),version:c().optional(),browserVersion:c().optional(),targets:k(mD).default([])});const Vo=E(["live","staging"]);y({projectName:c(),url:c(),stagingUrl:c().optional(),username:c(),defaultEnv:Vo,createdAt:c(),updatedAt:c()});const bv=y({url:c(),reachable:P(),pageCount:h().nullable().optional(),version:c().nullable().optional(),error:c().nullable().optional(),plugins:k(c()).optional(),authenticatedUser:y({id:h(),slug:c()}).nullable().optional()});y({connected:P(),projectName:c(),defaultEnv:Vo,live:bv.nullable(),staging:bv.nullable(),adminUrl:c().nullable().optional()});const pD=y({id:h(),slug:c(),title:c(),status:c(),modifiedAt:c().nullable().optional(),link:c().nullable().optional()}),Nw=y({title:c().nullable(),description:c().nullable(),noindex:P().nullable(),writable:P().default(!1),writeTargets:k(c()).default([])}),fD=y({type:c(),json:Le(c(),Xn())}),hD=pD.extend({env:Vo,content:c(),seo:Nw,schemaBlocks:k(fD).default([])}),vv=hD.extend({contentHash:c(),contentSnippet:c()}),_w=y({manualRequired:ae(!0),targetUrl:c(),adminUrl:c().nullable().optional(),content:c(),nextSteps:k(c()).default([])}),gD=y({slug:c(),severity:E(["high","medium","low"]),code:E(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:c()});y({slug:c(),title:c(),status:c(),wordCount:h(),seo:Nw,schemaPresent:P(),issues:k(gD).default([])});const yD=y({slug:c(),status:E(["applied","skipped","manual"]),error:c().optional(),manualAssist:_w.optional()});y({env:Vo,strategy:E(["plugin","manual"]),results:k(yD)});const bD=y({slug:c(),status:E(["deployed","stripped","skipped","failed"]),schemasInjected:k(c()).optional(),manualAssist:_w.optional(),error:c().optional()});y({env:Vo,results:k(bD)});const vD=y({slug:c(),title:c(),canonrySchemas:k(c()),thirdPartySchemas:k(c()),hasCanonrySchema:P()});y({env:Vo,pages:k(vD)});const kD=y({name:c(),status:E(["completed","skipped","failed"]),summary:c().optional(),error:c().optional()});y({projectName:c(),steps:k(kD)});y({slug:c(),live:vv,staging:vv,hasDifferences:P(),differences:y({title:P(),slug:P(),content:P(),seoTitle:P(),seoDescription:P(),noindex:P(),schema:P()})});const wD=y({name:c(),displayName:c().optional(),keyUrl:c().optional(),modelHint:c().optional(),model:c().optional(),defaultModel:c().optional(),configured:P(),quota:B9.optional(),vertexConfigured:P().optional()}),xD=y({name:c(),displayName:c(),mode:E(["api","browser"]),modelConfigurable:P(),defaultModel:c(),knownModels:k(y({id:c(),displayName:c(),tier:E(["flagship","standard","fast","economy"])})).default([]),modelValidationPattern:y({source:c(),flags:c()}),modelValidationHint:c()}),kv=y({configured:P()});y({providers:k(wD).default([]),providerCatalog:k(xD).default([]),google:kv,bing:kv});const $i=E(["queued","running","completed","partial","failed","cancelled"]),dn=$i.enum,Cw=E(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),Oe=Cw.enum,E0=E(["manual","scheduled","config-apply","backfill","probe"]),Ao=E0.enum,Fa=E(["cited","not-cited"]),Tu=Fa.enum,Du=E(["visible","not-visible"]);Du.enum;const vl=E(["mentioned","not-mentioned"]);vl.enum;const zw=E(["new","cited","lost","emerging","not-cited"]);zw.enum;const SD=E(["new","mentioned","lost","emerging","not-mentioned"]);SD.enum;const jD=E([Ao.manual,Ao.probe]);y({kind:ae(Oe["answer-visibility"]).optional(),trigger:jD.optional(),providers:k(dt).optional(),queries:k(c().min(1)).min(1).optional(),measurementScope:SE.optional(),location:c().min(1).optional(),allLocations:P().optional(),noLocation:P().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const AD=y({message:c(),raw:Xn().optional()}),ND=y({message:c().optional(),providers:Le(c(),AD).optional()}),_D=y({id:c(),projectId:c(),kind:Cw,status:$i,trigger:E0.default("manual"),measurementPlanVersionId:c().nullable().optional(),measurementManifest:Le(c(),Xn()).nullable().optional(),measurementScope:jE.nullable().optional(),measurementExecutionIdentity:cw.nullable().optional(),location:c().nullable().optional(),queries:k(c()).nullable().optional(),startedAt:c().nullable().optional(),finishedAt:c().nullable().optional(),error:ND.nullable().optional(),queryBasketRevision:h().int().nullable().optional(),createdAt:c()});function T0(e){if(e.providers){const t=Object.entries(e.providers);if(t.length===1){const[i,s]=t[0];return`${i}: ${s.message}`}if(t.length>1)return t.map(([i,s])=>`${i}: ${s.message}`).join(" • ")}return e.message??"Run failed."}const Xu=y({uri:c(),title:c()}),CD=y({status:E(["applied","ignored","browser-implicit","unknown"]),resolved:gn.nullable().optional()}),Ew=y({id:c(),runId:c(),queryId:c(),query:c().optional(),provider:dt,citationState:Fa,answerMentioned:P().optional(),visibilityState:Du.optional(),mentionState:vl.optional(),transition:zw.optional(),answerText:c().nullable().optional(),citedDomains:k(c()).default([]),citedUrls:k(c()).nullable().default(null),captureStatus:Ge([Hu,he()]).default(null),sourceCount:h().int().nonnegative().nullable().default(null),resolvedCount:h().int().nonnegative().nullable().default(null),captureVersion:h().int().positive().nullable().default(null),retrievalStatus:Ge([A0,he()]).default(null),retrievalContract:Ge([N0,he()]).default(null),competitorOverlap:k(c()).default([]),recommendedCompetitors:k(c()).default([]),matchedTerms:k(c()).default([]),groundingSources:k(Xu).default([]),searchQueries:k(c()).default([]),model:c().nullable().optional(),servedModel:c().nullable().optional(),location:c().nullable().optional(),requestedContext:gn.nullable().optional(),supportedContext:CD.nullable().optional(),createdAt:c()});y({snapshots:k(Ew),total:h().int().nonnegative()});const zD=y({queryId:c().nullable(),query:c().nullable(),run1State:Fa.nullable(),run2State:Fa.nullable(),run1AnswerMentioned:P().nullable(),run2AnswerMentioned:P().nullable(),run1VisibilityState:Du.nullable(),run2VisibilityState:Du.nullable(),run1MentionState:vl.nullable().optional(),run2MentionState:vl.nullable().optional(),changed:P(),visibilityChanged:P()});y({run1:c(),run2:c(),diff:k(zD)});const ED=_D.extend({snapshots:k(Ew).optional()}),TD=y({totalRuns:h().int().nonnegative(),run:ED.nullable()});y({id:c(),projectId:c().nullable().optional(),actor:c(),action:c(),entityType:c(),entityId:c().nullable().optional(),diff:Xn().optional(),userAgent:c().nullable().optional(),actorSession:c().nullable().optional(),createdAt:c()});const DD=E(["yes","no","unknown","not-mentioned"]),wv=k(c().min(1));y({companyName:c().min(1),domain:c().min(1),queries:wv.optional(),phrases:wv.optional(),competitors:k(c().min(1)).optional().default([])}).superRefine((e,t)=>{e.queries!==void 0&&e.phrases!==void 0&&t.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const OD=y({name:c(),count:h().int().nonnegative()}),RD=y({id:c(),name:c(),weight:h(),score:h(),findings:k(y({type:c(),message:c()})).default([]),recommendations:k(c()).default([])}),MD=y({url:c(),finalUrl:c(),auditedAt:c(),overallScore:h(),summary:c(),factors:k(RD).default([])}),BD=y({industry:c(),summary:c(),services:k(c()).default([]),categoryTerms:k(c()).default([])}),qD=y({provider:c(),displayName:c(),model:c().nullable().optional(),mentioned:P(),cited:P(),describedAccurately:DD,accuracyNotes:c().nullable().optional(),incorrectClaims:k(c()).default([]),recommendedCompetitors:k(c()).default([]),citedDomains:k(c()).default([]),groundingSources:k(Xu).default([]),searchQueries:k(c()).default([]),answerText:c(),error:c().nullable().optional()}),ID=y({query:c(),providerResults:k(qD).default([])}),LD=y({totalQueries:h().int().nonnegative(),totalProviders:h().int().nonnegative(),totalComparisons:h().int().nonnegative(),mentionCount:h().int().nonnegative(),citationCount:h().int().nonnegative(),topCompetitors:k(OD).default([]),visibilityGap:c(),whatThisMeans:k(c()).default([]),recommendedActions:k(c()).default([])});y({companyName:c(),domain:c(),homepageUrl:c(),generatedAt:c(),queries:k(c()).default([]),competitors:k(c()).default([]),profile:BD,audit:MD,queryResults:k(ID).default([]),summary:LD});const Tw=E(["pass","partial","fail"]);Tw.enum;const Dw=E(["up","down","flat"]);Dw.enum;const PD=y({id:c(),name:c(),weight:h(),avgScore:h(),status:Tw,pagesPassing:h().int().nonnegative(),pagesPartial:h().int().nonnegative(),pagesFailing:h().int().nonnegative()}),$D=y({factorId:c(),factorName:c(),avgScore:h(),affectedPages:h().int().nonnegative(),totalPages:h().int().nonnegative(),affectedPct:h().int().nonnegative(),topRecommendations:k(c()).default([])});y({project:c(),hasData:P(),runId:c().nullable(),runStatus:$i.nullable(),sitemapUrl:c().nullable(),auditedAt:c().nullable(),aggregateScore:h(),pagesDiscovered:h().int().nonnegative(),pagesAudited:h().int().nonnegative(),pagesSkipped:h().int().nonnegative(),pagesErrored:h().int().nonnegative(),deltaScore:h().nullable(),trend:Dw.nullable(),previousScore:h().nullable(),previousAuditedAt:c().nullable(),factors:k(PD).default([]),crossCuttingIssues:k($D).default([]),prioritizedFixes:k(c()).default([])});const UD=y({id:c(),name:c(),weight:h(),score:h()}),VD=y({url:c(),overallScore:h(),status:E(["success","error"]),error:c().nullable().optional(),factors:k(UD).default([])});y({project:c(),runId:c().nullable(),auditedAt:c().nullable(),total:h().int().nonnegative(),pages:k(VD).default([])});const KD=y({runId:c(),auditedAt:c(),aggregateScore:h(),pagesAudited:h().int().nonnegative()});y({project:c(),points:k(KD).default([])});y({sitemapUrl:c().url().optional(),limit:h().int().positive().max(2e3).optional()});y({runId:c(),status:$i});const D0=E(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync","doctor"]);D0.enum;y({id:c(),projectId:c(),kind:D0,cronExpr:c(),preset:c().nullable().optional(),timezone:c().default("UTC"),enabled:P().default(!0),providers:k(dt).default([]),sourceId:c().nullable().optional(),lastRunAt:c().nullable().optional(),nextRunAt:c().nullable().optional(),createdAt:c(),updatedAt:c()});y({kind:D0.optional(),preset:c().optional(),cron:c().optional(),timezone:c().optional().default("UTC"),enabled:P().optional().default(!0),providers:k(dt).optional().default([]),sourceId:c().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const O0=E(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);O0.enum;const R0=E(["cited","aspirational","wasted-surface"]),xv=R0.enum;xv.cited,xv.aspirational;const Ju=E(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),GD=Ju.enum;GD["direct-competitor"];const Wu=E(["queued","seeding","probing","completed","failed"]);Wu.enum;const Ow=y({domain:c().min(1),hits:h().int().positive(),competitorType:Ju.default("unknown")}),HD=y({id:c(),sessionId:c(),projectId:c(),query:c(),bucket:R0.nullable().default(null),citationState:Fa,citedDomains:k(c()).default([]),answerMentioned:P().nullable().default(null),createdAt:c()}),QD=y({id:c(),projectId:c(),status:Wu,icpDescription:c().nullable().optional(),seedProvider:c().nullable().optional(),seedCountRaw:h().int().nullable().optional(),seedCount:h().int().nullable().optional(),seedFromAnswerCount:h().int().nullable().optional(),seedFromGroundingCount:h().int().nullable().optional(),seedBrandFilteredCount:h().int().nullable().optional(),buyerDescription:c().nullable().optional(),locations:k(gn).nullable().optional(),seedRawCandidates:k(c()).nullable().optional(),dedupClusterMinSims:k(h()).nullable().optional(),dedupBandPairFraction:h().nullable().optional(),dedupPairsTotal:h().int().nullable().optional(),seedProviders:k(c()).nullable().optional(),seedProviderCounts:Le(c(),h().int()).nullable().optional(),canonicalCount:h().int().nullable().optional(),dedupThreshold:h().nullable().optional(),probeCount:h().int().nullable().optional(),citedCount:h().int().nullable().default(null),aspirationalCount:h().int().nullable().default(null),wastedCount:h().int().nullable().default(null),competitorMap:k(Ow).default([]),warning:c().nullable().optional(),error:c().nullable().optional(),startedAt:c().nullable().optional(),finishedAt:c().nullable().optional(),createdAt:c()});QD.extend({probes:k(HD).default([])});const ZD=500,FD=8,YD=["gemini","openai"],XD=E(YD);y({icpDescription:c().min(1).optional(),buyerDescription:c().min(1).optional(),seedProviders:k(XD).min(1).transform(e=>[...new Set(e)].sort()).optional(),dedupThreshold:h().min(0).max(1).optional(),maxProbes:h().int().positive().max(ZD).optional(),probeConcurrency:h().int().min(1).max(FD).optional(),locations:k(c().min(1)).optional()});y({buckets:k(R0).min(1).optional(),includeCompetitors:P().optional(),competitorTypes:k(Ju).min(1).optional()});y({sessionId:c(),projectId:c(),status:Wu,queriesByBucket:y({cited:k(c()),aspirational:k(c()),"wasted-surface":k(c())}),suggestedCompetitors:k(Ow)});y({sessionId:c(),projectId:c(),promoted:y({queries:k(c()),competitors:k(c())}),skipped:y({queries:k(c()),competitors:k(c())})});Ge([ae("cli"),c().regex(/^discovery:.+$/)]);const JD=y({query:c().min(1),probeHits:h().int().positive()}),WD=y({rawCandidates:h().int().nonnegative(),admitted:h().int().nonnegative(),rejected:y({belowFloor:h().int().nonnegative(),length:h().int().nonnegative(),navigational:h().int().nonnegative(),duplicate:h().int().nonnegative(),offAnchor:h().int().nonnegative(),semanticDuplicate:h().int().nonnegative()})});y({sessionId:c(),projectId:c(),provider:c(),status:Wu,minProbeHits:h().int().positive(),anchorApplied:P(),semanticNoveltyApplied:P(),candidates:k(JD),stats:WD});const M0=E(["own","direct-competitor","ota-aggregator","editorial-media","other"]);M0.enum;const Rw=E(["7d","30d","90d","all"]),Sv=E(["improving","declining","stable"]),eO=E(["mentioned","cited"]);eO.enum;const Of=y({citationRate:h(),cited:h().int(),total:h().int(),mentionRate:h(),mentionedCount:h().int()}),B0=c().trim().min(1),tO=k(B0).min(1).superRefine((e,t)=>{for(let i=1;i<e.length;i+=1)e[i-1]>=e[i]&&t.addIssue({code:"custom",message:"mixed model IDs must be sorted and unique",path:[i]})}),Ro=gt("status",[y({status:ae("known"),model:B0}),y({status:ae("unknown")}),y({status:ae("mixed"),models:tO,includesUnknown:P()})]),nO=y({observedAt:c(),bucketStartDate:c(),from:Ro,to:Ro,fromPreWindowAnchor:P().optional(),anchorObservedAt:c().optional()}),Mw=y({latestObservation:y({observedAt:c(),state:Ro}),events:k(nO),eventTotal:h().int().nonnegative().optional(),anchorUnavailable:P().optional()}),aO=Le(c(),Mw),iO=Mw.extend({latestServedModelIds:k(B0).default([])}),sO=Le(c(),iO),oO=y({observedAt:c(),configured:Ro,served:Ro}),rO=y({rate:h().nullable(),projectMentionSnapshots:h().int().nonnegative(),competitorMentionSnapshots:h().int().nonnegative()}),lO=y({startDate:c(),endDate:c(),dataStartDate:c(),dataEndDate:c(),sweepCount:h().int().nonnegative(),citationRate:h(),cited:h().int(),total:h().int(),queryCount:h().int(),mentionRate:h(),mentionedCount:h().int(),mentionShare:rO,byProvider:Le(c(),Of),modelEvidenceByProvider:Le(c(),Ro).default({}),basketRevision:h().int().nullable().default(null)}),cO=y({revision:h().int(),at:c(),added:k(c()),removed:k(c())}),uO=y({date:c(),delta:h().int(),label:c()}),dO=y({at:c(),identity:cw});y({window:Rw,buckets:k(lO),overall:Of,byProvider:Le(c(),Of),trend:Sv,mentionTrend:Sv,queryChanges:k(uO),basketChanges:k(cO).default([]),executionIdentityChanges:k(dO).default([]),referenceBasketRevision:h().int().nullable().default(null),modelAttribution:aO.default({}),servedModelAttribution:sO.default({}),modelServiceMismatch:Le(c(),oO).default({}),modelPointerChanges:Le(c(),BT).default({})});const jv=y({category:O0,label:c(),count:h().int(),percentage:h(),topDomains:k(y({domain:c(),count:h().int()}))}),mO=y({domain:c(),count:h().int(),percentage:h(),category:O0,label:c(),surfaceClass:M0}),pO=y({surfaceClass:M0,label:c(),count:h().int(),percentage:h(),domainCount:h().int()}),Av=y({totalCitedSlots:h().int(),domainTotal:h().int(),entries:k(mO),truncatedDomainCount:h().int(),truncatedCitedSlots:h().int(),bySurfaceClass:k(pO)});y({overall:k(jv),byQuery:Le(c(),k(jv)),ranked:Av,byProvider:Le(c(),Av),runId:c(),window:Rw,limit:h().int().nullable()});const q0=y({total:h().int(),checked:h().int(),mentioned:h().int(),cited:h().int(),mentionRate:h().nullable(),citedRate:h().nullable()}),Bw=q0.extend({provider:c(),firstObserved:c(),lastObserved:c()}),fO=q0.extend({queryId:c().nullable(),query:c(),firstObserved:c(),lastObserved:c(),providers:k(Bw).optional()}),hO=y({since:c().nullable(),until:c().nullable(),lastRuns:h().int().nullable(),runCount:h().int()}),gO=E(["provider"]),Rf=y({domain:c(),mentions:h().int()}),yO=y({percent:h().nullable(),projectMentions:h().int(),competitorMentions:h().int(),snapshotsWithAnswerText:h().int(),perCompetitor:k(Rf)});y({project:c(),groupBy:gO.optional(),window:hO,totals:q0,byProvider:k(Bw).optional(),queries:k(fO),shareOfVoice:yO.optional()});const bO=E(["within-noise","moved","insufficient-data","model-discontinuous","model-unknown"]),vO=E(["up","down","flat"]),Nv=y({point:h().nullable(),ciLow:h().nullable(),ciHigh:h().nullable(),numerator:h().int(),denominator:h().int()}),kO=E(["mention-share-of-voice","cited-share-of-voice","mention-rate","cited-rate"]),wO=y({key:kO,label:c(),driftRobust:P(),from:Nv,to:Nv,rateRatio:h().nullable(),direction:Ge([vO,he()]),verdict:bO}),_v=y({month:c(),since:c(),until:c(),runCount:h().int(),lowRunCount:P()}),xO=y({queryCount:h().int(),excludedFromOnly:h().int(),excludedToOnly:h().int(),providers:k(c()),excludedProviders:k(c())}),SO=y({provider:c(),fromModels:k(c()),toModels:k(c())}),jO=E(["included","model-discontinuous","model-unknown"]),AO=y({provider:c(),status:jO,fromModels:k(c()),toModels:k(c())}),NO=E(["comparable","model-discontinuous","model-unknown","insufficient-data"]),_O=y({status:NO,comparedProviders:k(c()),providers:k(AO)}),CO=y({provider:c(),from:y({checked:h().int(),mentioned:h().int(),cited:h().int()}),to:y({checked:h().int(),mentioned:h().int(),cited:h().int()})}),zO=y({from:y({count:h().int(),of:h().int()}),to:y({count:h().int(),of:h().int()})});y({project:c(),from:_v,to:_v,basket:xO,metrics:k(wO),queriesMentioned:zO,byProvider:k(CO),modelChanges:k(SO),continuity:_O,competitors:y({from:k(Rf),to:k(Rf)})});E(["json","csv"]);const EO=y({runId:c(),runKind:ae("answer-visibility"),runStatus:$i,runTrigger:E0,runCreatedAt:c(),runStartedAt:c().nullable(),runFinishedAt:c().nullable(),snapshotId:c(),snapshotCreatedAt:c(),queryId:c().nullable(),query:c().nullable(),provider:c(),model:c().nullable(),location:c().nullable(),citationState:Fa,cited:P(),answerMentioned:P().nullable(),mentionState:Ge([vl,he()]),citedDomains:k(c()),citedUrls:k(c()).nullable(),captureStatus:Ge([Hu,he()]),sourceCount:h().int().nonnegative().nullable(),resolvedCount:h().int().nonnegative().nullable(),captureVersion:h().int().positive().nullable(),competitorOverlap:k(c()),recommendedCompetitors:k(c()),answerText:c().nullable(),groundingSources:k(Xu),searchQueries:k(c())}),TO=y({since:c().nullable(),until:c().nullable(),includeProbes:P()});y({schemaVersion:ae("canonry.results-export/v1"),generatedAt:c(),project:y({id:c(),name:c(),displayName:c(),canonicalDomain:c(),country:c(),language:c()}),filters:TO,recordCount:h().int().nonnegative(),records:k(EO)});const ed=E(["organic","paid"]);ed.enum;y({id:c(),projectId:c(),propertyId:c(),clientEmail:c(),connected:P(),createdAt:c(),updatedAt:c()});y({date:c(),landingPage:c(),sessions:h(),organicSessions:h(),users:h()});const I0=E(["session","first_user","manual_utm"]),DO=y({source:c(),medium:c(),trafficClass:ed,sessions:h(),users:h().optional(),sourceDimension:I0}),OO=y({source:c(),medium:c(),trafficClass:ed,sourceDimension:I0,landingPage:c(),sessions:h(),users:h().optional()}),RO=y({source:c(),medium:c(),sessions:h(),users:h(),channelGroup:c()}),el=y({sessions:h(),sharePct:h(),sharePctDisplay:c()}),MO=y({organic:el,social:el,direct:el,ai:el,other:el});y({totalSessions:h(),totalOrganicSessions:h(),totalDirectSessions:h(),totalUsers:h().nullable(),topPages:k(y({landingPage:c(),sessions:h(),organicSessions:h(),directSessions:h(),users:h()})),aiReferrals:k(DO),aiReferralLandingPages:k(OO),aiSessionsDeduped:h(),aiUsersDeduped:h().optional(),paidAiSessionsDeduped:h(),paidAiUsersDeduped:h().optional(),organicAiSessionsDeduped:h(),organicAiUsersDeduped:h().optional(),aiSessionsBySession:h(),aiUsersBySession:h().optional(),paidAiSessionsBySession:h(),paidAiUsersBySession:h().optional(),organicAiSessionsBySession:h(),organicAiUsersBySession:h().optional(),socialReferrals:k(RO),socialSessions:h(),socialUsers:h(),channelBreakdown:MO,organicSharePct:h(),aiSharePct:h(),aiSharePctBySession:h(),paidAiSharePct:h(),paidAiSharePctBySession:h(),organicAiSharePct:h(),organicAiSharePctBySession:h(),directSharePct:h(),socialSharePct:h(),organicSharePctDisplay:c(),aiSharePctDisplay:c(),aiSharePctBySessionDisplay:c(),paidAiSharePctDisplay:c(),paidAiSharePctBySessionDisplay:c(),organicAiSharePctDisplay:c(),organicAiSharePctBySessionDisplay:c(),directSharePctDisplay:c(),socialSharePctDisplay:c(),otherSessions:h(),otherSharePct:h(),otherSharePctDisplay:c(),lastSyncedAt:c().nullable()});y({connected:P(),propertyId:c().nullable(),clientEmail:c().nullable(),authMethod:E(["service-account","oauth"]).nullable(),lastSyncedAt:c().nullable(),createdAt:c().nullable().optional(),updatedAt:c().nullable().optional()});y({synced:P(),rowCount:h().int().nonnegative(),aiReferralCount:h().int().nonnegative(),socialReferralCount:h().int().nonnegative(),days:h().int().nonnegative(),syncedAt:c(),measurement:y({acquisition:y({days:h().int().nonnegative(),status:E(["ready","error"]),rowCount:h().int().nonnegative(),error:c().optional()}),leads:y({days:h().int().nonnegative(),status:E(["ready","error","not-configured"]),rowCount:h().int().nonnegative(),attributionScope:E(["landing-page","channel"]).optional(),error:c().optional()})}),syncedComponents:k(c()).optional()});y({date:c(),source:c(),medium:c(),trafficClass:ed,landingPage:c(),sessions:h(),users:h(),sourceDimension:I0});const BO=y({source:c(),sessions:h(),paidSessions:h(),organicSessions:h()}),qO=y({date:c(),sessions:h(),paidSessions:h(),organicSessions:h(),bySource:k(BO)});y({days:k(qO),sources:k(c()),totalSessions:h(),totalPaidSessions:h(),totalOrganicSessions:h()});y({date:c(),source:c(),medium:c(),sessions:h(),users:h(),channelGroup:c()});y({date:c(),sessions:h(),organicSessions:h(),users:h(),usersSource:E(["deduplicated","landing-page-sum"])});y({id:c(),projectId:c(),runId:c().nullable(),overallCitedRate:h(),overallMentionRate:h(),totalPairs:h().int().nonnegative(),citedPairs:h().int().nonnegative(),mentionedPairs:h().int().nonnegative(),providerBreakdown:Le(c(),y({citedRate:h(),mentionRate:h(),cited:h().int().nonnegative(),mentioned:h().int().nonnegative(),total:h().int().nonnegative()})),createdAt:c(),status:E(["ready","no-data"]),reason:ae("no-runs-yet").optional()});const qw=E(["claude","openai","gemini","zai","deepinfra"]),IO=y({id:qw,label:c(),defaultModel:c(),configured:P(),keySource:E(["config","env"]).nullable()});y({providers:k(IO).default([]),defaultProvider:qw.nullable()});const LO=E(["aero","user","compaction"]);LO.enum;const Iw=128;y({key:c().min(1).max(Iw),value:c().min(1)});y({key:c().min(1).max(Iw)});const Ko=E(["commoncrawl","bing-webmaster"]);Ko.enum;const L0=E(["queued","downloading","querying","ready","failed"]);L0.enum;y({id:c(),release:c(),status:L0,phaseDetail:c().nullable().optional(),vertexPath:c().nullable().optional(),edgesPath:c().nullable().optional(),vertexSha256:c().nullable().optional(),edgesSha256:c().nullable().optional(),vertexBytes:h().int().nullable().optional(),edgesBytes:h().int().nullable().optional(),projectsProcessed:h().int().nullable().optional(),domainsDiscovered:h().int().nullable().optional(),downloadStartedAt:c().nullable().optional(),downloadFinishedAt:c().nullable().optional(),queryStartedAt:c().nullable().optional(),queryFinishedAt:c().nullable().optional(),error:c().nullable().optional(),createdAt:c(),updatedAt:c()});const PO=y({linkingDomain:c(),numHosts:h().int(),source:Ko}),$O=y({projectId:c(),release:c(),targetDomain:c(),totalLinkingDomains:h().int(),totalHosts:h().int(),top10HostsShare:c(),queriedAt:c(),source:Ko,excludedLinkingDomains:h().int().optional(),excludedHosts:h().int().optional()});y({source:Ko,summary:$O.nullable(),total:h().int(),rows:k(PO)});y({release:c(),totalLinkingDomains:h().int(),totalHosts:h().int(),top10HostsShare:c(),queriedAt:c(),source:Ko});const UO=y({source:Ko,connected:P(),hasData:P(),latestRelease:c().nullable(),totalLinkingDomains:h().int(),lastSyncedAt:c().nullable()});y({projectId:c(),targetDomain:c(),sources:k(UO),anyConnected:P(),anyData:P()});y({duckdbInstalled:P(),duckdbVersion:c().nullable().optional(),duckdbSpec:c(),pluginDir:c()});y({installed:P(),version:c(),path:c(),alreadyPresent:P()});y({release:c(),vertexUrl:c(),edgesUrl:c(),vertexBytes:h().int().nullable(),edgesBytes:h().int().nullable(),lastModified:c().nullable()});y({release:c(),syncStatus:L0.nullable(),bytes:h().int(),lastUsedAt:c().nullable()});const P0=E(["positive","caution","negative","neutral"]),Ei=y({label:c(),value:c(),delta:c(),tone:P0,description:c(),tooltip:c().optional(),trend:k(h()),progress:h().optional(),providerCoverage:c().optional()}),VO=Ei.extend({breakdown:y({projectMentionSnapshots:h().int().nonnegative(),competitorMentionSnapshots:h().int().nonnegative(),perCompetitor:k(y({domain:c(),mentionSnapshots:h().int().nonnegative(),shareOfCompetitiveTotal:h()})),snapshotsWithAnswerText:h().int().nonnegative(),snapshotsTotal:h().int().nonnegative()})}),Yp=y({gained:h().int().nonnegative(),lost:h().int().nonnegative(),tone:P0,hasPreviousRun:P(),gainedQueries:k(c()).optional(),lostQueries:k(c()).optional()}),KO=y({hasPreviousRun:P(),comparable:P(),querySetChanged:P(),previousRunAt:c().nullable(),currentQueryCount:h().int().nonnegative(),previousQueryCount:h().int().nonnegative(),comparableQueryCount:h().int().nonnegative(),addedQueryCount:h().int().nonnegative(),removedQueryCount:h().int().nonnegative(),addedQueries:k(c()),removedQueries:k(c())}),GO=y({id:c(),projectId:c(),runId:c().nullable(),type:E(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:E(["critical","high","medium","low"]),title:c(),query:c(),provider:c(),recommendation:y({action:c(),target:c().optional(),reason:c()}).optional(),cause:y({cause:c(),competitorDomain:c().optional(),details:c().optional()}).optional(),dismissed:P(),createdAt:c()}),HO=y({id:c(),projectId:c(),runId:c().nullable(),overallCitedRate:h(),overallMentionRate:h(),totalPairs:h().int().nonnegative(),citedPairs:h().int().nonnegative(),mentionedPairs:h().int().nonnegative(),providerBreakdown:Le(c(),y({citedRate:h(),mentionRate:h(),cited:h().int().nonnegative(),mentioned:h().int().nonnegative(),total:h().int().nonnegative()})),createdAt:c(),status:E(["ready","no-data"]),reason:ae("no-runs-yet").optional()});y({project:Dz,latestRun:TD,health:HO.nullable(),topInsights:k(GO),queryCounts:y({totalQueries:h().int().nonnegative(),citedQueries:h().int().nonnegative(),notCitedQueries:h().int().nonnegative(),citedRate:h(),mentionedQueries:h().int().nonnegative(),notMentionedQueries:h().int().nonnegative(),mentionRate:h()}),providers:k(y({provider:c(),citedRate:h(),cited:h().int().nonnegative(),total:h().int().nonnegative()})),transitions:y({since:c().nullable(),gained:h().int().nonnegative(),lost:h().int().nonnegative(),emerging:h().int().nonnegative()}),scores:y({mention:Ei,visibility:Ei,mentionShare:VO,gapQueries:Ei,mentionGaps:Ei,indexCoverage:Ei,competitorPressure:Ei,runStatus:Ei}),movementSummary:Yp,citationMovement:Yp,mentionMovement:Yp,movementComparison:KO,competitors:k(y({id:c(),domain:c(),citationCount:h().int().nonnegative(),totalQueries:h().int().nonnegative(),pressureLabel:E(["None","Low","Moderate","High"]),citedQueries:k(c())})),providerScores:k(y({provider:c(),model:c().nullable(),score:h(),cited:h().int().nonnegative(),total:h().int().nonnegative(),trend:k(h()).optional()})),attentionItems:k(y({id:c(),tone:P0,title:c(),detail:c(),actionLabel:c(),href:c()})),runHistory:k(y({runId:c(),createdAt:c(),citedCount:h().int().nonnegative(),totalCount:h().int().nonnegative(),citationRate:h(),mentionedCount:h().int().nonnegative(),mentionRate:h(),status:c()})),suggestedQueries:y({rows:k(y({query:c(),impressions:h(),clicks:h(),avgPosition:h(),reason:c()})),totalCandidates:h().int().nonnegative(),skippedAlreadyTracked:h().int().nonnegative()}),dateRangeLabel:c(),contextLabel:c()});E(["snapshot","insight"]);const QO=y({kind:ae("snapshot"),id:c(),runId:c(),query:c(),provider:c(),model:c().nullable(),citationState:Fa,matchedField:E(["answerText","citedDomains","citedUrls","searchQueries","query"]),snippet:c(),createdAt:c()}),ZO=y({kind:ae("insight"),id:c(),runId:c().nullable(),type:E(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:E(["critical","high","medium","low"]),title:c(),query:c(),provider:c(),matchedField:E(["title","query","recommendation","cause"]),snippet:c(),dismissed:P(),createdAt:c()}),FO=gt("kind",[QO,ZO]);y({query:c(),totalHits:h().int().nonnegative(),truncated:P(),hits:k(FO)});const Lw=E(["create","expand","refresh","add-schema"]);Lw.enum;function uK(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const Pw=E(["gsc","competitor-evidence","both"]);Pw.enum;const $w=E(["high","medium","low"]);$w.enum;const YO=E(["blog-post","comparison","listicle","how-to","guide","glossary"]);YO.enum;const Uw=E(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);Uw.enum;const $0=E(["ownable","ceded"]);$0.enum;const XO=y({url:c(),gscImpressions:h().nonnegative(),gscClicks:h().nonnegative(),gscAvgPosition:h().nonnegative().nullable(),organicSessions:h().nonnegative()}),JO=y({domain:c(),url:c(),title:c(),citationCount:h().int().nonnegative()}),WO=y({demand:h(),competitor:h(),absence:h(),gapSeverity:h()}),eR=y({actionId:c(),state:Uw,lastUpdated:c()}),Vw=y({targetRef:c(),query:c(),action:Lw,ourBestPage:XO.nullable(),winningCompetitor:JO.nullable(),score:h(),scoreBreakdown:WO,drivers:k(c()),demandSource:Pw,actionConfidence:$w,existingAction:eR.nullable(),winnabilityClass:$0,winnability:h().min(0).max(1).nullable()});y({targets:k(Vw),contextMetrics:y({totalAiReferralSessions:h().int().nonnegative(),latestRunId:c(),runTimestamp:c()})});const tR=y({targetRef:c(),addressedUrl:c().nullable(),note:c().nullable(),dismissedAt:c()});y({dismissals:k(tR)});y({targetRef:c().min(1),addressedUrl:c().url().optional(),note:c().max(500).optional()});y({targetRef:c(),promptVersion:c(),provider:c(),model:c(),responseText:c(),costMillicents:h().int().nonnegative(),generatedAt:c()});y({provider:c().optional(),model:c().optional(),forceRefresh:P().optional()});const nR=y({targetQuery:c().trim().min(1),winnabilityClass:$0,angle:c().trim().min(1),whyWinnable:c().trim().min(1),schemaHookup:c().trim().min(1),controllableSurfaceRationale:c().trim().min(1)});y({targetRef:c(),promptVersion:c(),provider:c(),model:c(),brief:nR,costMillicents:h().int().nonnegative(),generatedAt:c()});const aR=y({domain:c(),competitorType:Ju,hits:h().int().nonnegative(),updatedAt:c()});y({classifications:k(aR)});const iR=y({uri:c(),title:c(),domain:c(),isOurDomain:P(),isCompetitor:P(),citationCount:h().int().nonnegative(),providers:k(dt)}),Kw=y({query:c(),groundingSources:k(iR)});y({sources:k(Kw),latestRunId:c()});const Gw=y({query:c(),competitorDomains:k(c()),competitorCount:h().int().nonnegative(),missRate:h().min(0).max(1),lastSeenInRunId:c()});y({gaps:k(Gw),latestRunId:c()});const Hw=E(["ok","warn","fail","skipped"]);Hw.enum;const U0=E(["global","project"]);U0.enum;const Qw=E(["auth","config","providers","integrations","database","schedules","agent"]);Qw.enum;const sR=y({id:c(),category:Qw,scope:U0,title:c(),status:Hw,code:c().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:c(),remediation:c().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:Le(c(),Xn()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:h().int().nonnegative().describe("How long the check took to execute.")});y({scope:U0,project:c().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:c().describe("ISO-8601 timestamp when this doctor run started."),durationMs:h().int().nonnegative(),summary:y({total:h().int().nonnegative(),ok:h().int().nonnegative(),warn:h().int().nonnegative(),fail:h().int().nonnegative(),skipped:h().int().nonnegative()}),checks:k(sR)});const oR=y({provider:c(),citationState:Fa,cited:P(),mentioned:P(),runId:c(),runCreatedAt:c()}),rR=y({queryId:c(),query:c(),providers:k(oR),citedCount:h().int().nonnegative(),mentionedCount:h().int().nonnegative(),totalProviders:h().int().nonnegative()}),lR=y({queryId:c(),query:c(),provider:c(),citingCompetitors:k(c()),runId:c(),runCreatedAt:c()}),cR=y({providersConfigured:h().int().nonnegative(),providersCiting:h().int().nonnegative(),providersMentioning:h().int().nonnegative(),totalQueries:h().int().nonnegative(),queriesCitedAndMentioned:h().int().nonnegative(),queriesCitedOnly:h().int().nonnegative(),queriesMentionedOnly:h().int().nonnegative(),queriesInvisible:h().int().nonnegative(),latestRunId:c().nullable(),latestRunAt:c().nullable()});y({summary:cR,byQuery:k(rR),competitorGaps:k(lR),status:E(["ready","no-data"]),reason:E(["no-runs-yet","no-queries"]).optional()});const dK=[7,14,30,90],mK=30;Ge([ae(7),ae(14),ae(30),ae(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const uR=E(["prompt","request-param","browser-geo","ignored"]),dR=y({label:c(),city:c(),region:c(),country:c(),otherConfiguredLabels:k(c())}),mR=y({provider:c(),treatment:uR,description:c()}),pR=y({generatedAt:c(),project:y({id:c(),name:c(),displayName:c(),canonicalDomain:c(),country:c(),language:c()}),location:dR.nullable(),providerLocationHandling:k(mR),periodStart:c().nullable(),periodEnd:c().nullable(),periodDays:h().int().positive()}),fR=y({citationRate:h(),citedQueryCount:h(),totalQueryCount:h(),mentionRate:h(),mentionedQueryCount:h(),trend:E(["up","down","flat","unknown"]),queryCount:h(),competitorCount:h(),providerCount:h(),gsc:y({clicks:h(),impressions:h(),ctr:h(),avgPosition:h(),periodStart:c(),periodEnd:c()}).nullable(),ga:y({sessions:h(),users:h(),periodStart:c(),periodEnd:c()}).nullable(),findings:k(y({title:c(),detail:c(),tone:E(["positive","caution","negative","neutral"])}))}),hR=y({citationState:E(["cited","not-cited","pending"]),answerMentioned:P().nullable(),model:c().nullable()}),gR=y({queries:k(c()),providers:k(c()),matrix:k(k(hR.nullable())),providerRates:k(y({provider:c(),citedCount:h(),mentionedCount:h(),totalCount:h(),citationRate:h(),mentionRate:h()}))}),yR=y({domain:c(),citationCount:h(),totalCount:h(),pressureLabel:E(["High","Moderate","Low","None"]),citedQueries:k(c()),sharePct:h(),theirCitedPages:k(y({url:c(),citedFor:k(c())}))}),bR=y({projectCitationCount:h(),competitors:k(yR)}),vR=y({domain:c(),mentionCount:h(),totalCount:h(),pressureLabel:E(["High","Moderate","Low","None"]),mentionedQueries:k(c()),sharePct:h()}),kR=y({projectMentionCount:h(),totalAnswerSnapshots:h(),competitors:k(vR)}),wR=y({category:c(),label:c(),count:h(),sharePct:h()}),xR=y({categories:k(wR),topDomains:k(y({domain:c(),count:h(),isCompetitor:P()}))}),SR=y({query:c(),clicks:h(),impressions:h(),ctr:h(),avgPosition:h(),category:E(["brand","lead-gen","industry","other"])}),jR=y({periodStart:c(),periodEnd:c(),totalClicks:h(),totalImpressions:h(),ctr:h(),avgPosition:h(),topQueries:k(SR),categoryBreakdown:k(y({category:E(["brand","lead-gen","industry","other"]),clicks:h(),impressions:h(),sharePct:h()})),trend:k(y({date:c(),clicks:h(),impressions:h()})),trackedButNoGsc:k(c()),gscButNotTracked:k(c())}),AR=y({totalSessions:h(),totalUsers:h(),totalOrganicSessions:h(),periodStart:c(),periodEnd:c(),topLandingPages:k(y({page:c(),sessions:h(),users:h(),organicSessions:h()})),channelBreakdown:k(y({channel:c(),sessions:h(),sharePct:h()}))}),NR=y({totalSessions:h(),organicSessions:h(),paidSessions:h(),channels:k(y({channelGroup:c(),sessions:h(),sharePct:h()})),topCampaigns:k(y({source:c(),medium:c(),sessions:h()}))}),_R=y({totalSessions:h(),paidSessions:h(),organicSessions:h(),totalUsers:h().optional(),paidUsers:h().optional(),organicUsers:h().optional(),bySource:k(y({source:c(),sessions:h(),users:h().optional(),paidSessions:h(),organicSessions:h(),sharePct:h()})),trend:k(y({date:c(),sessions:h()})),topLandingPages:k(y({page:c(),sessions:h(),users:h().optional()}))}),CR=y({windowStart:c(),windowEnd:c(),hasData:P(),verifiedCrawlerHits:y({current:h(),prior:h(),deltaPct:h().nullable()}),unverifiedCrawlerHits:y({current:h(),prior:h(),deltaPct:h().nullable()}),aiUserFetchHits:y({current:h(),prior:h(),deltaPct:h().nullable()}),referralArrivals:y({current:h(),prior:h(),deltaPct:h().nullable()}),referralArrivalsByClass:y({paid:y({current:h(),prior:h(),deltaPct:h().nullable()}),organic:y({current:h(),prior:h(),deltaPct:h().nullable()}),unclassified:y({current:h(),prior:h(),deltaPct:h().nullable()})}),referralArrivalsClassSummary:c(),byOperator:k(y({operator:c(),verifiedHits:h(),unverifiedHits:h(),userFetchHits:h(),referralArrivals:h(),deltaPct:h().nullable()})),topCrawledPaths:k(y({path:c(),verifiedHits:h(),distinctOperators:h()})),referralProducts:k(y({product:c(),arrivals:h(),distinctLandingPaths:h()})),dailyTrend:k(y({date:c(),verifiedCrawlerHits:h(),userFetchHits:h(),referralArrivals:h()})),topReferralLandingPaths:k(y({path:c(),arrivals:h(),distinctProducts:h()}))}),zR=y({provider:E(["google","bing"]).nullable(),total:h(),indexed:h(),notIndexed:h(),deindexed:h(),unknown:h(),indexedPct:h()}),ER=y({runId:c(),date:c(),citationRate:h(),citedQueryCount:h(),totalQueryCount:h(),mentionRate:h(),mentionedQueryCount:h(),providerRates:k(y({provider:c(),citationRate:h(),mentionRate:h()}))}),Mf=y({id:c(),type:E(["regression","gain","opportunity"]),severity:E(["critical","high","medium","low"]),title:c(),query:c(),provider:c(),recommendation:c().nullable(),createdAt:c(),instanceCount:h()}),TR=y({horizon:E(["immediate","short-term","medium-term"]),title:c(),rationale:c()}),fo=y({current:h(),prior:h(),deltaAbs:h(),deltaPct:h().nullable(),direction:E(["up","down","flat"]),window:h().optional()}),DR=y({provider:c(),current:h(),prior:h(),deltaAbs:h(),direction:E(["up","down","flat"])}),OR=y({enoughHistory:P(),headline:c(),citationRate:fo.nullable(),mentionRate:fo.nullable(),citedQueryCount:fo.nullable(),mentionedQueryCount:fo.nullable(),gscClicksDelta:fo.nullable(),aiReferralsDelta:fo.nullable(),comparisonWindowDays:h().int().positive(),providerMovements:k(DR),wins:k(Mf),regressions:k(Mf)});E(["agency","client"]);const RR=E(["agency","client","both"]),MR=E(["immediate","short-term","medium-term"]),BR=E(["high","medium","low"]);E(["positive","caution","negative","neutral"]);const qR=E(["content","competitors","provider","search-demand","indexing","location","monitoring"]),V0=y({audience:RR,priority:h(),horizon:MR,category:qR,title:c(),action:c(),why:k(c()),evidence:k(c()),successMetric:c(),confidence:BR,targetRef:c().optional()}),IR=y({headline:c(),overview:c(),actionItems:k(V0),confidenceNotes:k(c())}),LR=y({title:c(),detail:c(),severity:E(["positive","caution","negative","neutral"]),evidence:k(c())}),PR=y({priorities:k(V0),diagnostics:k(LR)});function pK(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function fK(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function hK(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function gK(e){switch(e){case"content":return"Content";case"competitors":return"Competitors";case"provider":return"Provider";case"search-demand":return"Search demand";case"indexing":return"Indexing";case"location":return"Location";case"monitoring":return"Monitoring"}}function yK(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}y({meta:pR,executiveSummary:fR,citationScorecard:gR,competitorLandscape:bR,mentionLandscape:kR,aiSourceOrigin:xR,gsc:jR.nullable(),ga:AR.nullable(),socialReferrals:NR.nullable(),aiReferrals:_R.nullable(),serverActivity:CR.nullable(),indexingHealth:zR.nullable(),citationsTrend:k(ER),whatsChanged:OR,insights:k(Mf),recommendedNextSteps:k(TR),actionPlan:k(V0),clientSummary:IR,agencyDiagnostics:PR,contentOpportunities:k(Vw),contentGaps:k(Gw),groundingSources:k(Kw)});const $R=Ge([ae(60),ae(90)]),UR=E(["earliest","middle","prior","latest"]),yo=y({clicks:h().int().nonnegative(),impressions:h().int().nonnegative()}),Zw=y({name:UR,startDate:c(),endDate:c()}),VR=Zw.extend({totals:yo}),KR=Zw.extend({organicSessions:h().int().nonnegative()}),Xp=y({startDate:c(),endDate:c(),observedDays:h().int().nonnegative()}),iu=y({verified:h().int().nonnegative(),claimedUnverified:h().int().nonnegative(),unknownAiLike:h().int().nonnegative()}),Cv=y({total:h().int().nonnegative(),paid:h().int().nonnegative(),organic:h().int().nonnegative(),unknown:h().int().nonnegative()});y({contractVersion:ae("organic-evidence/v1"),periodDays:$R,asOfDate:c().nullable(),coverage:y({gsc:P(),ga4:P(),server:P(),visibility:P()}),sourceCoverage:y({gsc:Xp.nullable(),ga4:Xp.nullable(),server:Xp.nullable(),visibility:y({completedAt:c(),ageDays:h().nonnegative()}).nullable()}),gsc:y({propertyTotals:yo,namedBrand:yo,namedNonBrand:yo,suppressedOrUnreportedResidual:yo,cohorts:k(VR)}).nullable(),ga4:y({organicSessions:h().int().nonnegative(),cohorts:k(KR)}).nullable(),gaAiReferrals:y({paidSessions:h().int().nonnegative(),organicSessions:h().int().nonnegative()}).nullable(),server:y({crawlerHits:iu,userFetchHits:iu,referralSessions:Cv}).nullable(),visibility:y({runId:c(),completedAt:c(),ageDays:h().nonnegative(),answerPairs:h().int().nonnegative(),mentionedPairs:h().int().nonnegative(),citedPairs:h().int().nonnegative()}).nullable(),measurement:H9,pages:k(y({path:c(),gsc:yo,ga4OrganicSessions:h().int().nonnegative(),server:y({crawlerHits:iu,userFetchHits:iu,referralSessions:Cv})})),findings:k(y({tone:E(["positive","caution","neutral"]),title:c(),detail:c()})),limitations:k(y({code:c(),detail:c()}))});const GR=E(["claude","codex"]);GR.enum;const HR=E(["claude","codex","all"]);HR.enum;const Fw=y({content:h().int().nonnegative(),sitemap:h().int().nonnegative(),robots:h().int().nonnegative(),asset:h().int().nonnegative(),other:h().int().nonnegative()}),QR=E(["content","sitemap","robots","asset","other"]),K0=E(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);K0.enum;const ZR=E(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);ZR.enum;const FR=E(["raw-request","aggregate-bucket"]),YR=FR.enum,XR=E(["observed","provider-aggregated","inferred"]),JR=XR.enum,WR=y({type:c().nullable(),labels:Le(c(),c())}),eM=y({sourceType:K0,evidenceKind:ae(YR["raw-request"]),confidence:ae(JR.observed),eventId:c().min(1),observedAt:c().min(1),method:c().nullable(),requestUrl:c().nullable(),host:c().nullable(),path:c().min(1),queryString:c().nullable(),status:h().int().nullable(),userAgent:c().nullable(),remoteIp:c().nullable(),referer:c().nullable(),latencyMs:h().nullable(),requestSizeBytes:h().int().nullable(),responseSizeBytes:h().int().nullable(),providerResource:WR,providerLabels:Le(c(),c())});y({events:k(eM),rawEntryCount:h().int().nonnegative(),skippedEntryCount:h().int().nonnegative(),nextPageToken:c().optional(),filter:c()});const Yw=E(["connected","paused","error","archived"]),bK=Yw.enum,Xw=E(["oauth","service-account"]);Xw.enum;const tM=E(["verified","claimed_unverified","unknown_ai_like"]),vK=tM.enum;y({gcpProjectId:c().min(1),serviceName:c().nullable().optional(),location:c().nullable().optional(),authMode:Xw});y({baseUrl:c().url(),username:c().min(1)});const G0=E(["production","preview"]);G0.enum;y({projectId:c().min(1),teamId:c().min(1),environment:G0});const Jw=y({id:c(),projectId:c(),sourceType:K0,displayName:c(),status:Yw,lastSyncedAt:c().nullable(),lastCursor:c().nullable(),lastError:c().nullable(),skippedThroughAt:c().nullable(),archivedAt:c().nullable(),config:Le(c(),Xn()),createdAt:c(),updatedAt:c()});y({gcpProjectId:c().min(1),serviceName:c().min(1).optional(),location:c().min(1).optional(),displayName:c().min(1).optional(),keyJson:c().optional()});y({baseUrl:c().url(),username:c().min(1),applicationPassword:c().min(1),displayName:c().min(1).optional()});y({projectId:c().min(1),teamId:c().min(1),token:c().min(1),environment:G0.optional(),displayName:c().min(1).optional()});y({sourceId:c(),runId:c(),syncedAt:c(),pulledEvents:h().int().nonnegative(),selfTrafficExcluded:h().int().nonnegative(),crawlerHits:h().int().nonnegative(),aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative(),unknownHits:h().int().nonnegative(),crawlerBucketRows:h().int().nonnegative(),aiUserFetchBucketRows:h().int().nonnegative(),aiReferralBucketRows:h().int().nonnegative(),sampleRows:h().int().nonnegative(),windowStart:c(),windowEnd:c()});y({days:h().int().positive().optional()});y({advanceToNow:ae(!0)});y({sourceId:c(),runId:c(),status:$i,windowStart:c(),windowEnd:c(),daysRequested:h().int().positive(),daysApplied:h().int().positive()});const nM=y({crawlerHits:h().int().nonnegative(),crawlerContentHits:h().int().nonnegative(),crawlerInfraHits:h().int().nonnegative(),crawlerSegments:Fw,aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative(),sampleCount:h().int().nonnegative()});y({sources:k(Jw)});const aM=Jw.extend({totals24h:nM,latestRun:y({runId:c(),status:$i,startedAt:c().nullable(),finishedAt:c().nullable(),error:c().nullable()}).nullable()});y({sources:k(aM)});const iM=E(["crawler","ai-user-fetch","ai-referral"]),H0=iM.enum,Ww=E(["hour","day"]);Ww.enum;const sM=y({bucket:c(),crawlerHits:h().int().nonnegative(),aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative()}),oM=y({kind:ae(H0.crawler),sourceId:c(),tsHour:c(),botId:c(),operator:c(),verificationStatus:c(),pathNormalized:c(),pathClass:QR,status:h().int(),hits:h().int().nonnegative()}),rM=y({kind:ae(H0["ai-user-fetch"]),sourceId:c(),tsHour:c(),botId:c(),operator:c(),verificationStatus:c(),pathNormalized:c(),status:h().int(),hits:h().int().nonnegative()}),lM=y({kind:ae(H0["ai-referral"]),sourceId:c(),tsHour:c(),product:c(),operator:c(),sourceDomain:c(),evidenceType:c(),landingPathNormalized:c(),status:h().int(),hits:h().int().nonnegative(),paidHits:h().int().nonnegative(),organicHits:h().int().nonnegative(),unknownHits:h().int().nonnegative()}),cM=gt("kind",[oM,rM,lM]);y({windowStart:c(),windowEnd:c(),series:y({granularity:Ww,points:k(sM)}),totals:y({crawlerHits:h().int().nonnegative(),crawlerContentHits:h().int().nonnegative(),crawlerInfraHits:h().int().nonnegative(),crawlerSegments:Fw,aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative(),aiReferralPaidHits:h().int().nonnegative(),aiReferralOrganicHits:h().int().nonnegative(),aiReferralUnknownHits:h().int().nonnegative()}),eventRows:y({total:h().int().nonnegative(),returned:h().int().nonnegative(),truncated:P()}),events:k(cM)});const ex=E(["queued","running","completed","partial","failed"]),kK=ex.enum,tx=E(["queued","running","completed","failed"]),wK=tx.enum;y({queries:k(c().trim().min(1).max(4e3)).min(1).max(50),provider:c().trim().min(1).optional(),model:c().trim().min(1).max(200).optional(),location:gn.nullable().optional(),idempotencyKey:c().trim().min(1).max(128).optional()}).superRefine((e,t)=>{e.model&&!e.provider&&t.addIssue({code:ht.custom,path:["provider"],message:"provider is required when model is supplied"})});const nx=y({id:c(),projectId:c(),status:ex,provider:c(),requestedModel:c().nullable(),resolvedModel:c(),location:gn.nullable(),totalQueries:h().int(),completedQueries:h().int(),failedQueries:h().int(),error:c().nullable(),startedAt:c().nullable(),finishedAt:c().nullable(),createdAt:c()}),uM=y({id:c(),position:h().int(),query:c(),status:tx,requestedModel:c().nullable(),resolvedModel:c(),servedModel:c().nullable(),answerText:c().nullable(),groundingSources:k(Xu),citedDomains:k(c()),searchQueries:k(c()),namedCompetitors:k(c()).default([]),citedCompetitorDomains:k(c()).default([]),answerMentioned:P().nullable(),citationState:Fa.nullable(),error:c().nullable(),startedAt:c().nullable(),finishedAt:c().nullable(),createdAt:c()});nx.extend({queries:k(uM)});y({runs:k(nx)});y({apiKey:c().min(1)});y({id:c(),name:c(),status:c(),currencyCode:c().nullable(),timezone:c().nullable(),url:c().nullable(),reviewStatus:c().nullable(),integrityReviewStatus:c().nullable(),integrityDecision:c().nullable()});y({q:c().trim().min(1).max(200),limit:h().int().min(1).max(100).default(20)});const dM=y({id:c(),type:c(),canonicalName:c(),countryCode:c(),name:c(),regionCode:c().nullable()});y({count:h().int().nonnegative(),query:c(),results:k(dM)});const mM=y({id:c(),clientType:c().optional(),name:c().optional(),pixelId:c().optional()});y({pixels:k(mM)});const pM=y({id:c(),name:c().optional()}),fM=y({id:c(),name:c().optional(),eventType:c().optional(),customEventName:c().nullable().optional(),attributionWindowDays:h().int().positive().optional(),adAccountId:c().optional(),sourceIds:k(c()).optional(),sources:k(pM).optional(),archived:P().optional(),version:h().int().nonnegative().optional()});y({eventSettings:k(fM)});y({connected:P(),adAccountId:c().nullable().optional(),displayName:c().nullable().optional(),currencyCode:c().nullable().optional(),timezone:c().nullable().optional(),status:c().nullable().optional(),reviewStatus:c().nullable().optional(),integrityReviewStatus:c().nullable().optional(),integrityDecision:c().nullable().optional(),lastSyncedAt:c().nullable().optional(),conversionTrackingConfigured:P().optional()});y({disconnected:P()});y({runId:c(),status:c()});const hM=y({type:c().nullable().optional(),title:c().nullable().optional(),body:c().nullable().optional(),targetUrl:c().nullable().optional(),fileId:c().nullable().optional()}),zl=E(["impressions","clicks"]),gM=zl.enum,El=E(["impression","click"]);El.enum;const yM=y({id:c(),adGroupId:c(),name:c(),status:c(),reviewStatus:c().nullable().optional(),creative:hM.nullable().optional(),upstreamUpdatedAt:h().int().nullable().optional(),syncedAt:c().optional()}),bM=y({id:c(),campaignId:c(),name:c(),description:c().nullable().optional(),status:c(),billingEventType:Ge([El,he()]).optional(),maxBidMicros:h().int().nullable().optional(),contextHints:k(c()).default([]),ads:k(yM).default([]),upstreamUpdatedAt:h().int().nullable().optional(),syncedAt:c().optional()}),vM=y({id:c(),name:c(),description:c().nullable().optional(),status:c(),startTime:h().int().nullable().optional(),endTime:h().int().nullable().optional(),biddingType:Ge([zl,he()]).optional(),dailySpendLimitMicros:h().int().nullable().optional(),lifetimeSpendLimitMicros:h().int().nullable().optional(),conversionEventSettingIds:k(c()).default([]),locationIds:k(c()).optional(),adGroups:k(bM).default([]),upstreamUpdatedAt:h().int().nullable().optional(),syncedAt:c().optional()});y({campaigns:k(vM)});const ax=E(["campaign","ad_group"]);ax.enum;const kM=y({level:ax,entityId:c(),date:c(),impressions:h().int(),clicks:h().int(),spendMicros:h().int(),conversions:h().int(),ctr:h().nullable(),cpcMicros:h().int().nullable(),inProgress:P()});y({rows:k(kM),currencyCode:c().nullable().optional()});const ix=y({from:c().nullable(),to:c().nullable(),inProgressDate:c().nullable()}),sx=y({impressions:h().int(),clicks:h().int(),spendMicros:h().int(),conversions:h().int(),ctr:h().nullable(),cpcMicros:h().int().nullable()});y({connected:P(),displayName:c().nullable().optional(),currencyCode:c().nullable().optional(),lastSyncedAt:c().nullable().optional(),campaignCount:h().int(),adGroupCount:h().int(),adCount:h().int(),window:ix,totals:sx});const ox=E(["unavailable","partial","complete"]);ox.enum;const rx=E(["no_ads_connection","connection_not_synced","no_ads_sync","entity_rows_missing_sync_run_id","entity_rows_span_multiple_sync_runs","source_sync_missing","source_sync_not_ads_sync","source_sync_not_completed"]);rx.enum;const lx=E(["unavailable","reported"]);lx.enum;const wM={storedSnapshot:"stored_ads_snapshot"},cx=E(["unavailable","partial_snapshot","metrics_unavailable","observed_activity","no_observed_activity"]);cx.enum;const xM=y({id:c(),name:c(),status:c(),reviewStatus:c().nullable()}),SM=y({id:c(),name:c(),status:c(),billingEventType:Ge([El,he()]),maxBidMicros:h().int().nullable(),contextHints:k(c()),ads:k(xM)}),jM=y({id:c(),name:c(),status:c(),biddingType:Ge([zl,he()]),dailySpendLimitMicros:h().int().nullable(),lifetimeSpendLimitMicros:h().int().nullable(),conversionEventSettingIds:k(c()),adGroups:k(SM)});y({snapshot:y({status:ox,issue:Ge([rx,he()]),lastSyncedAt:c().nullable(),campaignCount:h().int().nonnegative(),adGroupCount:h().int().nonnegative(),adCount:h().int().nonnegative(),sourceSync:y({runId:c(),status:$i}).nullable()}),historicalCampaignRollups:y({status:lx,window:ix,totals:sx.nullable()}),storedConfiguration:y({basis:ae(wM.storedSnapshot),connection:y({status:c().nullable(),reviewStatus:c().nullable(),integrityReviewStatus:c().nullable(),integrityDecision:c().nullable(),conversionTrackingConfigured:P()}).nullable(),campaigns:k(jM)}),assessment:y({state:cx})});const Xa=c().min(8).max(128).regex(/^[\w.:-]+$/,"operationKey may contain letters, numbers, dot, underscore, colon, and hyphen"),vt=c().min(1).max(200),js=c().min(3).max(1e3).refine(e=>e.trim().length>0),Mo=h().int().min(946684800).max(4102444800),Bo=h().int().positive().max(Number.MAX_SAFE_INTEGER),Q0=c().regex(/^[a-f0-9]{64}$/),ux=k(vt).max(100).refine(e=>new Set(e).size===e.length,"conversionEventSettingIds must be unique"),dx=c().url().refine(e=>new URL(e).protocol==="https:",{message:"URL must use https"}),mx=E(["image_upload","campaign_create","campaign_update","campaign_pause","campaign_tree_activate","ad_group_create","ad_group_update","ad_group_pause","ad_create","ad_update","ad_pause"]);mx.enum;const px=E(["pending","reconciling","succeeded","failed","unknown"]),No=px.enum,fx=E(["known_entity","create_fingerprint","manual_only"]);fx.enum;const hx=E([No.pending,No.unknown,No.reconciling]);hx.enum;const gx=E(["active","paused","archived"]);gx.enum;const yx=E(["file","campaign","ad_group","ad"]);yx.enum;const bx=E(["campaign","ad_group","ad"]);bx.enum;const Z0=y({id:vt,expectedUpdatedAt:h().int().nonnegative()}).strict(),AM=Z0,Ou=100,NM=Z0.extend({ads:k(AM).min(1).max(Ou-1)}).strict(),_M=Z0.extend({adGroups:k(NM).min(1).max(Ou-1)}).strict();function CM(e,t){return e<t?-1:e>t?1:0}function zv(e,t,i){for(let s=1;s<e.length;s+=1)if(CM(e[s-1].id,e[s].id)>=0){i.addIssue({code:"custom",path:t,message:"Activation manifest entities must be uniquely sorted by id"});return}}const vx=y({campaign:_M}).strict().superRefine((e,t)=>{1+e.campaign.adGroups.reduce((r,u)=>r+1+u.ads.length,0)>Ou&&t.addIssue({code:"custom",path:["campaign"],message:`Activation manifests may contain at most ${Ou} entities`}),zv(e.campaign.adGroups,["campaign","adGroups"],t);const s=new Set;for(let r=0;r<e.campaign.adGroups.length;r+=1){const u=e.campaign.adGroups[r];zv(u.ads,["campaign","adGroups",r,"ads"],t);for(let d=0;d<u.ads.length;d+=1){const g=u.ads[d];s.has(g.id)&&t.addIssue({code:"custom",path:["campaign","adGroups",r,"ads",d,"id"],message:"An ad may appear only once in an activation manifest"}),s.add(g.id)}}}),kx=Q0,zM=E(["approved","executing","consumed","revoked","expired","unknown"]),Qa=zM.enum,EM=E(["pending","executing","active","failed","rollback_executing","rolled_back","rollback_failed","unknown"]),Ui=EM.enum,TM=y({name:js.optional(),description:c().max(4e3).nullable().optional(),status:gx.optional(),startTime:Mo.nullable().optional(),endTime:Mo.nullable().optional(),lifetimeSpendLimitMicros:Bo.min(1e6).optional(),locationIds:k(vt).max(100).optional(),biddingType:zl.optional(),conversionEventSettingIds:ux.optional(),campaignId:vt.optional(),contextHints:k(c().min(1).max(1e3)).max(100).optional(),maxBidMicros:Bo.max(1e8).optional(),billingEventType:El.optional(),adGroupId:vt.optional(),creativeFingerprint:Q0.optional()}).strict();y({operationKey:Xa,imageUrl:dx});y({operationKey:Xa,name:js,description:c().max(4e3).optional(),startTime:Mo.optional(),endTime:Mo.optional(),lifetimeSpendLimitMicros:Bo.min(1e6),locationIds:k(vt).min(1).max(100),biddingType:zl.optional(),conversionEventSettingIds:ux.optional()}).superRefine((e,t)=>{e.startTime!==void 0&&e.endTime!==void 0&&e.endTime<=e.startTime&&t.addIssue({code:"custom",path:["endTime"],message:"endTime must be after startTime"}),e.biddingType===gM.clicks&&(e.conversionEventSettingIds===void 0||e.conversionEventSettingIds.length===0)&&t.addIssue({code:"custom",path:["conversionEventSettingIds"],message:"conversionEventSettingIds must be non-empty when biddingType is clicks"})});y({operationKey:Xa,campaignId:vt,name:js,description:c().max(4e3).optional(),contextHints:k(c().min(1).max(1e3)).min(1).max(100),maxBidMicros:Bo.max(1e8),billingEventType:El.optional()});const wx=y({title:c().min(3).max(50),body:c().min(1).max(100),targetUrl:dx,fileId:vt});y({operationKey:Xa,adGroupId:vt,name:js,creative:wx});function F0(e){return Object.keys(e).some(t=>t!=="operationKey"&&t!=="expectedUpdatedAt")}y({operationKey:Xa,expectedUpdatedAt:h().int().nonnegative(),name:js.optional(),description:c().max(4e3).nullable().optional(),startTime:Mo.nullable().optional(),endTime:Mo.nullable().optional(),lifetimeSpendLimitMicros:Bo.min(1e6).optional(),locationIds:k(vt).min(1).max(100).optional()}).refine(F0,{message:"At least one campaign field must be updated"});y({operationKey:Xa,expectedUpdatedAt:h().int().nonnegative(),name:js.optional(),description:c().max(4e3).nullable().optional(),contextHints:k(c().min(1).max(1e3)).min(1).max(100).optional(),maxBidMicros:Bo.max(1e8).optional()}).refine(F0,{message:"At least one ad group field must be updated"});y({operationKey:Xa,expectedUpdatedAt:h().int().nonnegative(),name:js.optional(),creative:wx.optional()}).refine(F0,{message:"At least one ad field must be updated"});y({operationKey:Xa});const td=y({id:c(),adAccountId:c().nullable(),operationKey:c(),kind:mx,state:px,entityType:Ge([yx,he()]),entityId:c().nullable(),upstreamUpdatedAt:h().int().nullable(),errorCode:c().nullable(),errorMessage:c().nullable(),reconcileStrategy:Ge([fx,he()]),reconcileParentId:vt.nullable(),reconcileFingerprint:Q0.nullable(),reconcileFields:TM.nullable(),reconcileAttempts:h().int().nonnegative(),lastReconciledAt:c().nullable(),createdAt:c(),updatedAt:c()});y({operation:td,replayed:P()});const ut=Ok({offset:!0}),Go={id:vt,projectId:vt,adAccountId:vt,manifestHash:kx,manifest:vx,executorApiKeyId:vt,approverApiKeyId:vt,expiresAt:ut,approvedAt:ut,createdAt:ut,updatedAt:ut,revocationRequestedAt:ut.nullable()},DM=y({...Go,state:ae(Qa.approved),operationId:he(),executionStartedAt:he(),consumedAt:he(),revokedAt:he(),expiredAt:he()}).strict(),OM=y({...Go,state:ae(Qa.executing),operationId:vt,executionStartedAt:ut,consumedAt:he(),revokedAt:he(),expiredAt:he()}).strict(),RM=y({...Go,state:ae(Qa.consumed),operationId:vt,executionStartedAt:ut,consumedAt:ut,revokedAt:he(),expiredAt:he()}).strict(),MM=y({...Go,state:ae(Qa.revoked),operationId:he(),executionStartedAt:he(),consumedAt:he(),revokedAt:ut,expiredAt:he()}).strict(),BM=y({...Go,state:ae(Qa.expired),operationId:he(),executionStartedAt:he(),consumedAt:he(),revokedAt:he(),expiredAt:ut}).strict(),qM=y({...Go,state:ae(Qa.unknown),operationId:vt,executionStartedAt:ut,consumedAt:he(),revokedAt:he(),expiredAt:he()}).strict(),xx=gt("state",[DM,OM,RM,MM,BM,qM]).superRefine((e,t)=>{e.executorApiKeyId===e.approverApiKeyId&&t.addIssue({code:"custom",path:["executorApiKeyId"],message:"The activation executor must use a different API key from the approver"}),e.revocationRequestedAt!==null&&e.state!==Qa.executing&&e.state!==Qa.unknown&&e.state!==Qa.consumed&&t.addIssue({code:"custom",path:["revocationRequestedAt"],message:"Only an executing, cancelled, or unresolved activation can carry a cancellation request"})}),Vi={id:vt,operationId:vt,ordinal:h().int().nonnegative(),entityType:bx,entityId:vt,expectedUpdatedAt:h().int().nonnegative(),createdAt:ut,updatedAt:ut},Tl={errorCode:he(),errorMessage:he()},Y0={errorCode:c().min(1).max(100),errorMessage:c().min(1).max(500),remediation:c().min(1).max(500)},IM=y({...Vi,...Tl,state:ae(Ui.pending),providerUpdatedAt:he(),remediation:he(),startedAt:he(),finishedAt:he()}).strict(),LM=y({...Vi,...Tl,state:ae(Ui.executing),providerUpdatedAt:he(),remediation:he(),startedAt:ut,finishedAt:he()}).strict(),PM=y({...Vi,...Tl,state:ae(Ui.active),providerUpdatedAt:h().int().nonnegative(),remediation:he(),startedAt:ut,finishedAt:ut}).strict(),$M=y({...Vi,...Y0,state:ae(Ui.failed),providerUpdatedAt:Ge([h().int().nonnegative(),he()]),startedAt:ut,finishedAt:ut}).strict(),UM=y({...Vi,...Tl,state:ae(Ui.rollback_executing),providerUpdatedAt:h().int().nonnegative(),remediation:c().min(1).max(500),startedAt:ut,finishedAt:he()}).strict(),VM=y({...Vi,...Tl,state:ae(Ui.rolled_back),providerUpdatedAt:h().int().nonnegative(),remediation:c().min(1).max(500),startedAt:ut,finishedAt:ut}).strict(),KM=y({...Vi,...Y0,state:ae(Ui.rollback_failed),providerUpdatedAt:h().int().nonnegative(),startedAt:ut,finishedAt:ut}).strict(),GM=y({...Vi,...Y0,state:ae(Ui.unknown),providerUpdatedAt:Ge([h().int().nonnegative(),he()]),startedAt:ut,finishedAt:ut}).strict(),HM=gt("state",[IM,LM,PM,$M,UM,VM,KM,GM]),Bf={exact:"exact",refreshSemanticallyUnchanged:"refresh_semantically_unchanged"},QM=E([Bf.exact,Bf.refreshSemanticallyUnchanged]);y({manifest:vx,executorApiKeyId:vt,expiresAt:ut,versionPolicy:QM.default(Bf.exact)}).strict();y({grant:xx}).strict();y({}).strict();y({operationKey:Xa,grantId:vt,manifestHash:kx}).strict();y({grant:xx,operation:td,steps:k(HM)}).strict();const ZM=[No.pending,No.unknown,No.reconciling];function FM(e){if(e===void 0||e==="")return ZM;if(Array.isArray(e)){const t=[];for(const i of e)typeof i=="string"?t.push(...i.split(",")):t.push(i);return t}return typeof e=="string"?e.split(",").filter(Boolean):e}y({state:M9(FM,k(hx).min(1).max(3).refine(e=>new Set(e).size===e.length,"state values must be unique")),limit:Pk().int().min(1).max(200).default(100),cursor:c().min(1).max(1e3).optional()});y({operations:k(td),count:h().int().nonnegative(),nextCursor:c().nullable()});y({}).strict();y({operation:td,resolved:P()});y({campaignId:c().min(1).max(200).optional(),lookbackDays:Pk().int().min(1).max(30).default(7)});const Sx=E(["campaign","ad_group","ad"]);Sx.enum;const jx=E(["both","live-only","stored-only"]);jx.enum;const YM=ae("live-provider-read"),XM=y({date:c().nullable(),startTime:h().nullable(),endTime:h().nullable(),impressions:h().nullable(),clicks:h().nullable(),spend:h().nullable(),conversions:h().nullable(),ctr:h().nullable(),cpc:h().nullable(),cpm:h().nullable()}),Ev=y({impressions:h().int(),clicks:h().int(),spendMicros:h().int(),conversions:h().int()}),JM=y({date:c(),live:Ev.nullable(),stored:Ev.nullable(),drifted:P()}),WM=y({field:c(),live:c().nullable(),stored:c().nullable()}),eB=y({name:c().nullable(),status:c(),reviewStatus:c().nullable(),mode:c().nullable(),updatedAt:h().nullable()}),tB=y({name:c(),status:c(),reviewStatus:c().nullable(),upstreamUpdatedAt:h().nullable(),syncedAt:c()}),nB=y({entityType:Sx,id:c(),parentId:c().nullable(),presence:jx,live:eB.nullable(),stored:tB.nullable(),fieldDeltas:k(WM),liveMetrics:k(XM).nullable(),metricDeltas:k(JM).nullable(),drifted:P()}),aB=y({surface:c(),entityId:c().nullable(),upstreamStatus:h().int().nullable()});y({basis:YM,fetchedAt:c(),adAccountId:c(),storedSnapshotSyncedAt:c().nullable(),metricsWindow:y({lookbackDays:h().int().positive()}),bounds:y({maxCampaigns:h().int().positive(),maxAdGroupsPerCampaign:h().int().positive(),maxAdsPerAdGroup:h().int().positive(),maxReaderCalls:h().int().positive(),readerCalls:h().int().nonnegative(),maxPagesPerReaderCall:h().int().positive(),maxUpstreamHttpRequests:h().int().positive(),truncated:P()}),entities:k(nB),drift:y({entitiesCompared:h().int().nonnegative(),driftedEntities:h().int().nonnegative(),statusDrifted:h().int().nonnegative(),metricsDrifted:h().int().nonnegative()}),errors:k(aB)});const Ax=E(["admin","viewer"]),iB=/^[a-z\d][\w.-]{0,63}$/i,sB=c().regex(iB,"A name may use letters, digits, dots, dashes and underscores, and must start with a letter or digit."),Tv=12,oB=c().min(Tv,`A password must be at least ${Tv} characters.`),Nx=y({id:c(),name:c(),role:Ax,createdAt:c(),lastLoginAt:c().nullable()});y({users:k(Nx)});y({name:sB,password:oB,role:Ax});y({name:c().min(1),password:c().min(1)});y({authRequired:P(),user:Nx.pick({name:!0,role:!0}).nullable()});const Ct=1,Jp=E(["system","project","queries","competitors","run"]),Wp=E(["0","1","2-3","4-5","6-10","11+"]);function xa(e){return!Number.isFinite(e)||e<=0?"0":e<2?"1":e<4?"2-3":e<6?"4-5":e<11?"6-10":"11+"}const Dv=E(["api_unavailable","database_unavailable","worker_unavailable","no_provider","no_queries","provider_save_failed","project_create_failed","query_save_failed","run_rejected","run_failed","run_cancelled","unknown"]),su=y({eventId:c().uuid(),flowVersion:ae(Ct),onboardingSessionId:c().uuid()});gt("event",[su.extend({event:ae("onboarding.started"),step:Jp,resumed:P()}).strict(),su.extend({event:ae("onboarding.step_completed"),step:Jp,method:E(["existing","inline","manual","generated","skipped","automatic"]),countBucket:Wp.optional()}).strict(),su.extend({event:ae("onboarding.blocked"),step:Jp,action:E(["continue","configure_provider","generate_queries","save","launch_run","retry_run"]),reasonCode:Dv}).strict(),su.extend({event:ae("run.requested"),origin:ae("dashboard_setup"),result:E(["queued","rejected"]),providerCountBucket:Wp,queryCountBucket:Wp,reasonCode:Dv.optional()}).strict()]);y({accepted:P()});const rB=4;function lB(e){return e.length<rB}var cB=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(cB||{});const xK={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},SK={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},uB=T0;function dB(e){const t=[];if(e.message&&t.push(e.message),e.providers)for(const[i,s]of Object.entries(e.providers)){const r=`[${i}] ${s.message}`;s.raw!==void 0?t.push(`${r}
|
|
52
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const d of e.seen.entries()){const g=d[1];if(t===d[0]){u(d);continue}if(e.external){const v=e.external.registry.get(d[0])?.id;if(t!==d[0]&&v){u(d);continue}}if(e.metadataRegistry.get(d[0])?.id){u(d);continue}if(g.cycle){u(d);continue}if(g.count>1&&e.reused==="ref"){u(d);continue}}}function Tk(e,t){const i=e.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const s=d=>{const g=e.seen.get(d);if(g.ref===null)return;const b=g.def??g.schema,v={...b},x=g.ref;if(g.ref=null,x){s(x);const j=e.seen.get(x),_=j.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(b.allOf=b.allOf??[],b.allOf.push(_)):Object.assign(b,_),Object.assign(b,v),d._zod.parent===x)for(const N in b)N==="$ref"||N==="allOf"||N in v||delete b[N];if(_.$ref&&j.def)for(const N in b)N==="$ref"||N==="allOf"||N in j.def&&JSON.stringify(b[N])===JSON.stringify(j.def[N])&&delete b[N]}const S=d._zod.parent;if(S&&S!==x){s(S);const j=e.seen.get(S);if(j?.schema.$ref&&(b.$ref=j.schema.$ref,j.def))for(const _ in b)_==="$ref"||_==="allOf"||_ in j.def&&JSON.stringify(b[_])===JSON.stringify(j.def[_])&&delete b[_]}e.override({zodSchema:d,jsonSchema:b,path:g.path??[]})};for(const d of[...e.seen.entries()].reverse())s(d[0]);const r={};if(e.target==="draft-2020-12"?r.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?r.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?r.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const d=e.external.registry.get(t)?.id;if(!d)throw new Error("Schema is missing an `id` property");r.$id=e.external.uri(d)}Object.assign(r,i.def??i.schema);const u=e.external?.defs??{};for(const d of e.seen.entries()){const g=d[1];g.def&&g.defId&&(u[g.defId]=g.def)}e.external||Object.keys(u).length>0&&(e.target==="draft-2020-12"?r.$defs=u:r.definitions=u);try{const d=JSON.parse(JSON.stringify(r));return Object.defineProperty(d,"~standard",{value:{...t["~standard"],jsonSchema:{input:ju(t,"input",e.processors),output:ju(t,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function cn(e,t){const i=t??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);const s=e._zod.def;if(s.type==="transform")return!0;if(s.type==="array")return cn(s.element,i);if(s.type==="set")return cn(s.valueType,i);if(s.type==="lazy")return cn(s.getter(),i);if(s.type==="promise"||s.type==="optional"||s.type==="nonoptional"||s.type==="nullable"||s.type==="readonly"||s.type==="default"||s.type==="prefault")return cn(s.innerType,i);if(s.type==="intersection")return cn(s.left,i)||cn(s.right,i);if(s.type==="record"||s.type==="map")return cn(s.keyType,i)||cn(s.valueType,i);if(s.type==="pipe")return cn(s.in,i)||cn(s.out,i);if(s.type==="object"){for(const r in s.shape)if(cn(s.shape[r],i))return!0;return!1}if(s.type==="union"){for(const r of s.options)if(cn(r,i))return!0;return!1}if(s.type==="tuple"){for(const r of s.items)if(cn(r,i))return!0;return!!(s.rest&&cn(s.rest,i))}return!1}const J7=(e,t={})=>i=>{const s=zk({...i,processors:t});return Pt(e,s),Ek(s,e),Tk(s,e)},ju=(e,t,i={})=>s=>{const{libraryOptions:r,target:u}=s??{},d=zk({...r??{},target:u,io:t,processors:i});return Pt(e,d),Ek(d,e),Tk(d,e)},W7={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},eC=(e,t,i,s)=>{const r=i;r.type="string";const{minimum:u,maximum:d,format:g,patterns:b,contentEncoding:v}=e._zod.bag;if(typeof u=="number"&&(r.minLength=u),typeof d=="number"&&(r.maxLength=d),g&&(r.format=W7[g]??g,r.format===""&&delete r.format,g==="time"&&delete r.format),v&&(r.contentEncoding=v),b&&b.size>0){const x=[...b];x.length===1?r.pattern=x[0].source:x.length>1&&(r.allOf=[...x.map(S=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:S.source}))])}},tC=(e,t,i,s)=>{const r=i,{minimum:u,maximum:d,format:g,multipleOf:b,exclusiveMaximum:v,exclusiveMinimum:x}=e._zod.bag;typeof g=="string"&&g.includes("int")?r.type="integer":r.type="number",typeof x=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.minimum=x,r.exclusiveMinimum=!0):r.exclusiveMinimum=x),typeof u=="number"&&(r.minimum=u,typeof x=="number"&&t.target!=="draft-04"&&(x>=u?delete r.minimum:delete r.exclusiveMinimum)),typeof v=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.maximum=v,r.exclusiveMaximum=!0):r.exclusiveMaximum=v),typeof d=="number"&&(r.maximum=d,typeof v=="number"&&t.target!=="draft-04"&&(v<=d?delete r.maximum:delete r.exclusiveMaximum)),typeof b=="number"&&(r.multipleOf=b)},nC=(e,t,i,s)=>{i.type="boolean"},aC=(e,t,i,s)=>{t.target==="openapi-3.0"?(i.type="string",i.nullable=!0,i.enum=[null]):i.type="null"},iC=(e,t,i,s)=>{i.not={}},sC=(e,t,i,s)=>{},oC=(e,t,i,s)=>{const r=e._zod.def,u=lk(r.entries);u.every(d=>typeof d=="number")&&(i.type="number"),u.every(d=>typeof d=="string")&&(i.type="string"),i.enum=u},rC=(e,t,i,s)=>{const r=e._zod.def,u=[];for(const d of r.values)if(d===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof d=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");u.push(Number(d))}else u.push(d);if(u.length!==0)if(u.length===1){const d=u[0];i.type=d===null?"null":typeof d,t.target==="draft-04"||t.target==="openapi-3.0"?i.enum=[d]:i.const=d}else u.every(d=>typeof d=="number")&&(i.type="number"),u.every(d=>typeof d=="string")&&(i.type="string"),u.every(d=>typeof d=="boolean")&&(i.type="boolean"),u.every(d=>d===null)&&(i.type="null"),i.enum=u},lC=(e,t,i,s)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},cC=(e,t,i,s)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},uC=(e,t,i,s)=>{const r=i,u=e._zod.def,{minimum:d,maximum:g}=e._zod.bag;typeof d=="number"&&(r.minItems=d),typeof g=="number"&&(r.maxItems=g),r.type="array",r.items=Pt(u.element,t,{...s,path:[...s.path,"items"]})},dC=(e,t,i,s)=>{const r=i,u=e._zod.def;r.type="object",r.properties={};const d=u.shape;for(const v in d)r.properties[v]=Pt(d[v],t,{...s,path:[...s.path,"properties",v]});const g=new Set(Object.keys(d)),b=new Set([...g].filter(v=>{const x=u.shape[v]._zod;return t.io==="input"?x.optin===void 0:x.optout===void 0}));b.size>0&&(r.required=Array.from(b)),u.catchall?._zod.def.type==="never"?r.additionalProperties=!1:u.catchall?u.catchall&&(r.additionalProperties=Pt(u.catchall,t,{...s,path:[...s.path,"additionalProperties"]})):t.io==="output"&&(r.additionalProperties=!1)},mC=(e,t,i,s)=>{const r=e._zod.def,u=r.inclusive===!1,d=r.options.map((g,b)=>Pt(g,t,{...s,path:[...s.path,u?"oneOf":"anyOf",b]}));u?i.oneOf=d:i.anyOf=d},pC=(e,t,i,s)=>{const r=e._zod.def,u=Pt(r.left,t,{...s,path:[...s.path,"allOf",0]}),d=Pt(r.right,t,{...s,path:[...s.path,"allOf",1]}),g=v=>"allOf"in v&&Object.keys(v).length===1,b=[...g(u)?u.allOf:[u],...g(d)?d.allOf:[d]];i.allOf=b},fC=(e,t,i,s)=>{const r=i,u=e._zod.def;r.type="object";const d=u.keyType,b=d._zod.bag?.patterns;if(u.mode==="loose"&&b&&b.size>0){const x=Pt(u.valueType,t,{...s,path:[...s.path,"patternProperties","*"]});r.patternProperties={};for(const S of b)r.patternProperties[S.source]=x}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(r.propertyNames=Pt(u.keyType,t,{...s,path:[...s.path,"propertyNames"]})),r.additionalProperties=Pt(u.valueType,t,{...s,path:[...s.path,"additionalProperties"]});const v=d._zod.values;if(v){const x=[...v].filter(S=>typeof S=="string"||typeof S=="number");x.length>0&&(r.required=x)}},hC=(e,t,i,s)=>{const r=e._zod.def,u=Pt(r.innerType,t,s),d=t.seen.get(e);t.target==="openapi-3.0"?(d.ref=r.innerType,i.nullable=!0):i.anyOf=[u,{type:"null"}]},gC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType},yC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType,i.default=JSON.parse(JSON.stringify(r.defaultValue))},bC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType,t.io==="input"&&(i._prefault=JSON.parse(JSON.stringify(r.defaultValue)))},vC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType;let d;try{d=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}i.default=d},kC=(e,t,i,s)=>{const r=e._zod.def,u=t.io==="input"?r.in._zod.def.type==="transform"?r.out:r.in:r.out;Pt(u,t,s);const d=t.seen.get(e);d.ref=u},wC=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType,i.readOnly=!0},Dk=(e,t,i,s)=>{const r=e._zod.def;Pt(r.innerType,t,s);const u=t.seen.get(e);u.ref=r.innerType},xC=J("ZodISODateTime",(e,t)=>{v_.init(e,t),jt.init(e,t)});function Ok(e){return N7(xC,e)}const SC=J("ZodISODate",(e,t)=>{k_.init(e,t),jt.init(e,t)});function Rk(e){return _7(SC,e)}const jC=J("ZodISOTime",(e,t)=>{w_.init(e,t),jt.init(e,t)});function AC(e){return C7(jC,e)}const NC=J("ZodISODuration",(e,t)=>{x_.init(e,t),jt.init(e,t)});function _C(e){return z7(NC,e)}const CC=(e,t)=>{mk.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>d8(e,i)},flatten:{value:i=>u8(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,bf,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,bf,2)}},isEmpty:{get(){return e.issues.length===0}}})},Wn=J("ZodError",CC,{Parent:Error}),zC=o0(Wn),EC=r0(Wn),TC=$u(Wn),DC=Uu(Wn),OC=f8(Wn),RC=h8(Wn),MC=g8(Wn),BC=y8(Wn),qC=b8(Wn),IC=v8(Wn),LC=k8(Wn),PC=w8(Wn),xt=J("ZodType",(e,t)=>(kt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:ju(e,"input"),output:ju(e,"output")}}),e.toJSONSchema=J7(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...i)=>e.clone(Ii(t,{checks:[...t.checks??[],...i.map(s=>typeof s=="function"?{_zod:{check:s,def:{check:"custom"},onattach:[]}}:s)]}),{parent:!0}),e.with=e.check,e.clone=(i,s)=>Li(e,i,s),e.brand=()=>e,e.register=((i,s)=>(i.add(e,s),e)),e.parse=(i,s)=>zC(e,i,s,{callee:e.parse}),e.safeParse=(i,s)=>TC(e,i,s),e.parseAsync=async(i,s)=>EC(e,i,s,{callee:e.parseAsync}),e.safeParseAsync=async(i,s)=>DC(e,i,s),e.spa=e.safeParseAsync,e.encode=(i,s)=>OC(e,i,s),e.decode=(i,s)=>RC(e,i,s),e.encodeAsync=async(i,s)=>MC(e,i,s),e.decodeAsync=async(i,s)=>BC(e,i,s),e.safeEncode=(i,s)=>qC(e,i,s),e.safeDecode=(i,s)=>IC(e,i,s),e.safeEncodeAsync=async(i,s)=>LC(e,i,s),e.safeDecodeAsync=async(i,s)=>PC(e,i,s),e.refine=(i,s)=>e.check(O9(i,s)),e.superRefine=i=>e.check(R9(i)),e.overwrite=i=>e.check(Uo(i)),e.optional=()=>Kb(e),e.exactOptional=()=>k9(e),e.nullable=()=>Gb(e),e.nullish=()=>Kb(Gb(e)),e.nonoptional=i=>N9(e,i),e.array=()=>k(e),e.or=i=>Ge([e,i]),e.and=i=>h9(e,i),e.transform=i=>wf(e,qk(i)),e.default=i=>S9(e,i),e.prefault=i=>A9(e,i),e.catch=i=>C9(e,i),e.pipe=i=>wf(e,i),e.readonly=()=>T9(e),e.describe=i=>{const s=e.clone();return sl.add(s,{description:i}),s},Object.defineProperty(e,"description",{get(){return sl.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return sl.get(e);const s=e.clone();return sl.add(s,i[0]),s},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),Mk=J("_ZodString",(e,t)=>{l0.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(s,r,u)=>eC(e,s,r);const i=e._zod.bag;e.format=i.format??null,e.minLength=i.minimum??null,e.maxLength=i.maximum??null,e.regex=(...s)=>e.check(q7(...s)),e.includes=(...s)=>e.check(P7(...s)),e.startsWith=(...s)=>e.check($7(...s)),e.endsWith=(...s)=>e.check(U7(...s)),e.min=(...s)=>e.check(Su(...s)),e.max=(...s)=>e.check(_k(...s)),e.length=(...s)=>e.check(Ck(...s)),e.nonempty=(...s)=>e.check(Su(1,...s)),e.lowercase=s=>e.check(I7(s)),e.uppercase=s=>e.check(L7(s)),e.trim=()=>e.check(K7()),e.normalize=(...s)=>e.check(V7(...s)),e.toLowerCase=()=>e.check(G7()),e.toUpperCase=()=>e.check(H7()),e.slugify=()=>e.check(Q7())}),$C=J("ZodString",(e,t)=>{l0.init(e,t),Mk.init(e,t),e.email=i=>e.check(s7(UC,i)),e.url=i=>e.check(u7(VC,i)),e.jwt=i=>e.check(A7(i9,i)),e.emoji=i=>e.check(d7(KC,i)),e.guid=i=>e.check(Ib(Ub,i)),e.uuid=i=>e.check(o7(nu,i)),e.uuidv4=i=>e.check(r7(nu,i)),e.uuidv6=i=>e.check(l7(nu,i)),e.uuidv7=i=>e.check(c7(nu,i)),e.nanoid=i=>e.check(m7(GC,i)),e.guid=i=>e.check(Ib(Ub,i)),e.cuid=i=>e.check(p7(HC,i)),e.cuid2=i=>e.check(f7(QC,i)),e.ulid=i=>e.check(h7(ZC,i)),e.base64=i=>e.check(x7(t9,i)),e.base64url=i=>e.check(S7(n9,i)),e.xid=i=>e.check(g7(FC,i)),e.ksuid=i=>e.check(y7(YC,i)),e.ipv4=i=>e.check(b7(XC,i)),e.ipv6=i=>e.check(v7(JC,i)),e.cidrv4=i=>e.check(k7(WC,i)),e.cidrv6=i=>e.check(w7(e9,i)),e.e164=i=>e.check(j7(a9,i)),e.datetime=i=>e.check(Ok(i)),e.date=i=>e.check(Rk(i)),e.time=i=>e.check(AC(i)),e.duration=i=>e.check(_C(i))});function c(e){return i7($C,e)}const jt=J("ZodStringFormat",(e,t)=>{wt.init(e,t),Mk.init(e,t)}),UC=J("ZodEmail",(e,t)=>{u_.init(e,t),jt.init(e,t)}),Ub=J("ZodGUID",(e,t)=>{l_.init(e,t),jt.init(e,t)}),nu=J("ZodUUID",(e,t)=>{c_.init(e,t),jt.init(e,t)}),VC=J("ZodURL",(e,t)=>{d_.init(e,t),jt.init(e,t)}),KC=J("ZodEmoji",(e,t)=>{m_.init(e,t),jt.init(e,t)}),GC=J("ZodNanoID",(e,t)=>{p_.init(e,t),jt.init(e,t)}),HC=J("ZodCUID",(e,t)=>{f_.init(e,t),jt.init(e,t)}),QC=J("ZodCUID2",(e,t)=>{h_.init(e,t),jt.init(e,t)}),ZC=J("ZodULID",(e,t)=>{g_.init(e,t),jt.init(e,t)}),FC=J("ZodXID",(e,t)=>{y_.init(e,t),jt.init(e,t)}),YC=J("ZodKSUID",(e,t)=>{b_.init(e,t),jt.init(e,t)}),XC=J("ZodIPv4",(e,t)=>{S_.init(e,t),jt.init(e,t)}),JC=J("ZodIPv6",(e,t)=>{j_.init(e,t),jt.init(e,t)}),WC=J("ZodCIDRv4",(e,t)=>{A_.init(e,t),jt.init(e,t)}),e9=J("ZodCIDRv6",(e,t)=>{N_.init(e,t),jt.init(e,t)}),t9=J("ZodBase64",(e,t)=>{__.init(e,t),jt.init(e,t)}),n9=J("ZodBase64URL",(e,t)=>{z_.init(e,t),jt.init(e,t)}),a9=J("ZodE164",(e,t)=>{E_.init(e,t),jt.init(e,t)}),i9=J("ZodJWT",(e,t)=>{D_.init(e,t),jt.init(e,t)}),c0=J("ZodNumber",(e,t)=>{xk.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(s,r,u)=>tC(e,s,r),e.gt=(s,r)=>e.check(Pb(s,r)),e.gte=(s,r)=>e.check(Lp(s,r)),e.min=(s,r)=>e.check(Lp(s,r)),e.lt=(s,r)=>e.check(Lb(s,r)),e.lte=(s,r)=>e.check(Ip(s,r)),e.max=(s,r)=>e.check(Ip(s,r)),e.int=s=>e.check(Vb(s)),e.safe=s=>e.check(Vb(s)),e.positive=s=>e.check(Pb(0,s)),e.nonnegative=s=>e.check(Lp(0,s)),e.negative=s=>e.check(Lb(0,s)),e.nonpositive=s=>e.check(Ip(0,s)),e.multipleOf=(s,r)=>e.check($b(s,r)),e.step=(s,r)=>e.check($b(s,r)),e.finite=()=>e;const i=e._zod.bag;e.minValue=Math.max(i.minimum??Number.NEGATIVE_INFINITY,i.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(i.maximum??Number.POSITIVE_INFINITY,i.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(i.format??"").includes("int")||Number.isSafeInteger(i.multipleOf??.5),e.isFinite=!0,e.format=i.format??null});function h(e){return E7(c0,e)}const s9=J("ZodNumberFormat",(e,t)=>{O_.init(e,t),c0.init(e,t)});function Vb(e){return D7(s9,e)}const o9=J("ZodBoolean",(e,t)=>{R_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>nC(e,i,s)});function P(e){return O7(o9,e)}const r9=J("ZodNull",(e,t)=>{M_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>aC(e,i,s)});function he(e){return R7(r9,e)}const l9=J("ZodUnknown",(e,t)=>{B_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>sC()});function Xn(){return M7(l9)}const c9=J("ZodNever",(e,t)=>{q_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>iC(e,i,s)});function u9(e){return B7(c9,e)}const d9=J("ZodArray",(e,t)=>{I_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>uC(e,i,s,r),e.element=t.element,e.min=(i,s)=>e.check(Su(i,s)),e.nonempty=i=>e.check(Su(1,i)),e.max=(i,s)=>e.check(_k(i,s)),e.length=(i,s)=>e.check(Ck(i,s)),e.unwrap=()=>e.element});function k(e,t){return Z7(d9,e,t)}const m9=J("ZodObject",(e,t)=>{P_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>dC(e,i,s,r),et(e,"shape",()=>t.shape),e.keyof=()=>E(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Xn()}),e.loose=()=>e.clone({...e._zod.def,catchall:Xn()}),e.strict=()=>e.clone({...e._zod.def,catchall:u9()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>s8(e,i),e.safeExtend=i=>o8(e,i),e.merge=i=>r8(e,i),e.pick=i=>a8(e,i),e.omit=i=>i8(e,i),e.partial=(...i)=>l8(Ik,e,i[0]),e.required=(...i)=>c8(Lk,e,i[0])});function y(e,t){const i={type:"object",shape:e??{},...je(t)};return new m9(i)}const Bk=J("ZodUnion",(e,t)=>{Ak.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>mC(e,i,s,r),e.options=t.options});function Ge(e,t){return new Bk({type:"union",options:e,...je(t)})}const p9=J("ZodDiscriminatedUnion",(e,t)=>{Bk.init(e,t),$_.init(e,t)});function gt(e,t,i){return new p9({type:"union",options:t,discriminator:e,...je(i)})}const f9=J("ZodIntersection",(e,t)=>{U_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>pC(e,i,s,r)});function h9(e,t){return new f9({type:"intersection",left:e,right:t})}const g9=J("ZodRecord",(e,t)=>{V_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>fC(e,i,s,r),e.keyType=t.keyType,e.valueType=t.valueType});function Le(e,t,i){return new g9({type:"record",keyType:e,valueType:t,...je(i)})}const kf=J("ZodEnum",(e,t)=>{K_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(s,r,u)=>oC(e,s,r),e.enum=t.entries,e.options=Object.values(t.entries);const i=new Set(Object.keys(t.entries));e.extract=(s,r)=>{const u={};for(const d of s)if(i.has(d))u[d]=t.entries[d];else throw new Error(`Key ${d} not found in enum`);return new kf({...t,checks:[],...je(r),entries:u})},e.exclude=(s,r)=>{const u={...t.entries};for(const d of s)if(i.has(d))delete u[d];else throw new Error(`Key ${d} not found in enum`);return new kf({...t,checks:[],...je(r),entries:u})}});function E(e,t){const i=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new kf({type:"enum",entries:i,...je(t)})}const y9=J("ZodLiteral",(e,t)=>{G_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>rC(e,i,s),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ae(e,t){return new y9({type:"literal",values:Array.isArray(e)?e:[e],...je(t)})}const b9=J("ZodTransform",(e,t)=>{H_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>cC(e,i),e._zod.parse=(i,s)=>{if(s.direction==="backward")throw new ok(e.constructor.name);i.addIssue=u=>{if(typeof u=="string")i.issues.push(gl(u,i.value,t));else{const d=u;d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=i.value),d.inst??(d.inst=e),i.issues.push(gl(d))}};const r=t.transform(i.value,i);return r instanceof Promise?r.then(u=>(i.value=u,i)):(i.value=r,i)}});function qk(e){return new b9({type:"transform",transform:e})}const Ik=J("ZodOptional",(e,t)=>{Nk.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>Dk(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function Kb(e){return new Ik({type:"optional",innerType:e})}const v9=J("ZodExactOptional",(e,t)=>{Q_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>Dk(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function k9(e){return new v9({type:"optional",innerType:e})}const w9=J("ZodNullable",(e,t)=>{Z_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>hC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function Gb(e){return new w9({type:"nullable",innerType:e})}const x9=J("ZodDefault",(e,t)=>{F_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>yC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function S9(e,t){return new x9({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():uk(t)}})}const j9=J("ZodPrefault",(e,t)=>{Y_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>bC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function A9(e,t){return new j9({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():uk(t)}})}const Lk=J("ZodNonOptional",(e,t)=>{X_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>gC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function N9(e,t){return new Lk({type:"nonoptional",innerType:e,...je(t)})}const _9=J("ZodCatch",(e,t)=>{J_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>vC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function C9(e,t){return new _9({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const z9=J("ZodPipe",(e,t)=>{W_.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>kC(e,i,s,r),e.in=t.in,e.out=t.out});function wf(e,t){return new z9({type:"pipe",in:e,out:t})}const E9=J("ZodReadonly",(e,t)=>{e7.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>wC(e,i,s,r),e.unwrap=()=>e._zod.def.innerType});function T9(e){return new E9({type:"readonly",innerType:e})}const D9=J("ZodCustom",(e,t)=>{t7.init(e,t),xt.init(e,t),e._zod.processJSONSchema=(i,s,r)=>lC(e,i)});function O9(e,t={}){return F7(D9,e,t)}function R9(e){return Y7(e)}function M9(e,t){return wf(qk(e),t)}const ht={custom:"custom"};function Pk(e){return T7(c0,e)}const $k=y({id:c(),name:c(),keyPrefix:c(),scopes:k(c()),projectId:c().nullable(),projectName:c().nullable(),readOnly:P(),createdAt:c(),lastUsedAt:c().nullable(),revokedAt:c().nullable()});y({keys:k($k)});y({name:c().min(1).max(100),scopes:k(c()).min(1).optional(),projectId:c().optional()});$k.extend({key:c()});const B9=y({maxConcurrency:h().int().positive(),maxRequestsPerMinute:h().int().positive(),maxRequestsPerDay:h().int().positive()}),dt=c().min(1),u0=Le(c(),c().trim().min(1));c().min(1);const gn=y({label:c().min(1),city:c().min(1),region:c().min(1),country:c().length(2),timezone:c().optional()}),d0=E(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high","health.degraded","health.recovered"]);y({id:c(),projectId:c(),channel:ae("webhook"),url:c().url(),urlDisplay:c(),urlHost:c(),events:k(d0),enabled:P().default(!0),source:c().optional(),webhookSecret:c().optional(),createdAt:c(),updatedAt:c()});y({channel:ae("webhook"),url:c().url(),events:k(d0).min(1),source:c().optional()});function Pp(e,t=!1){const i=new Set,s=[];for(const r of e){const u=t?r.toLowerCase():r;i.has(u)||(i.add(u),s.push(r))}return s}function Hb(e){try{const t=e.includes("://"),i=new URL(t?e:`https://${e}`);if(!t&&(i.pathname!=="/"||i.search||i.hash)||i.username||i.password||i.port)return null;const s=i.hostname.trim().toLowerCase().replace(/^www\./,"");return!s||s.includes("/")||s.includes("?")||s.includes("#")?null:s}catch{return null}}const q9=c().trim().min(1).refine(e=>Hb(e)!==null,{message:"Marketing hosts must be valid hostnames without credentials or ports"}).overwrite(e=>Hb(e)??e),I9=c().trim().min(1),L9=c().trim().regex(/^[a-z]\w{0,39}$/i,{message:"GA4 event names must start with a letter and contain only letters, numbers, or underscores"}),m0=y({marketingHosts:k(q9).overwrite(e=>Pp(e,!0)),brandTerms:k(I9).overwrite(e=>Pp(e,!0)),leadEventNames:k(L9).overwrite(e=>Pp(e))});function P9(){return{marketingHosts:[],brandTerms:[],leadEventNames:["generate_lead"]}}const $p=Object.freeze({marketingHosts:Object.freeze([]),brandTerms:Object.freeze([]),leadEventNames:Object.freeze(["generate_lead"])}),Uk=()=>P9(),Qb=E(["never-synced","ready","error"]),$9=E(["landing-page","channel"]),U9=E(["30d","60d","90d"]),V9=E(["marketing","all"]),rl=Rk(),Sl=y({label:E(["earliest","middle","previous","latest"]),startDate:rl,endDate:rl}),Up=Sl.extend({sessions:h().int().nonnegative()}),Zb=Sl.extend({eventCount:h().int().nonnegative()}),Fb=Sl.extend({clicks:h().int().nonnegative(),impressions:h().int().nonnegative()}),K9=Sl.extend({propertyClicks:h().int().nonnegative(),propertyImpressions:h().int().nonnegative(),reportedQueryClicks:h().int().nonnegative(),reportedQueryImpressions:h().int().nonnegative(),brandedClicks:h().int().nonnegative(),brandedImpressions:h().int().nonnegative(),nonBrandedClicks:h().int().nonnegative(),nonBrandedImpressions:h().int().nonnegative(),unreportedClicks:h().int().nonnegative(),unreportedImpressions:h().int().nonnegative()}),G9=Sl.extend({sessions:h().int().nonnegative(),engagementRate:h().min(0).max(1).nullable(),dailyTotalUsers:h().int().nonnegative().nullable(),dailyNewUsers:h().int().nonnegative().nullable(),metricsAvailable:P(),daysInPeriod:h().int().nonnegative(),daysWithEngagementRate:h().int().nonnegative(),daysWithUserSplit:h().int().nonnegative()}),H9=y({window:U9,bucketDays:ae(30),filters:y({hostScope:V9,marketingHosts:k(c()),pathPrefix:c().nullable(),brandTerms:k(c()),queryMixScope:ae("property")}),acquisition:y({status:Qb,error:c().nullable(),syncedAt:c().datetime().nullable(),periods:k(Up),channels:k(y({channelGroup:c(),periods:k(Up)})),pages:k(y({hostName:c(),landingPage:c(),periods:k(Up)}))}),leads:y({status:Qb,error:c().nullable(),syncedAt:c().datetime().nullable(),attributionScope:$9.nullable(),hostAndPathFiltersApplied:P(),periods:k(Zb),channels:k(y({channelGroup:c(),periods:k(Zb)}))}),engagement:y({status:E(["ready","unavailable"]),availableFromDate:rl.nullable(),latestDate:rl.nullable(),periods:k(G9)}),searchDemand:y({status:E(["ready","unavailable"]),periods:k(K9),queries:k(y({query:c(),classification:E(["branded","non-branded"]),periods:k(Fb)})),pages:k(y({hostName:c(),landingPage:c(),periods:k(Fb)})),latestDate:rl.nullable()})}),Q9=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Z9=/[\0-\x1F\x7F-\x9F]/,F9=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,Y9=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var X9=class{src_Any=Q9.source;src_Cc=Z9.source;src_Z=Y9.source;src_P=F9.source;src_ZPCc=[this.src_Z,this.src_P,this.src_Cc].join("|");src_ZCc=[this.src_Z,this.src_Cc].join("|");cache={};opts={maxLength:1e4,urlAuth:!1,schema_names:[]};constructor(e={}){this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,t,i=4){const s=this.escapeRE(e),r=this.escapeRE(t),u=`(?:(?!${this.src_ZCc}|${s}|${r}).)`;let d=`${s}${u}{0,1000}${r}`;for(let g=2;g<=i;g++)d=`${s}(?:${u}|${d}){0,1000}${r}`;return d}get_text_separators(){return this.cache.text_separators??=/[><\uff5c]/}get_pseudo_letter(){return this.cache.src_pseudo_letter??=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`)}get_ipv4_addr(){return this.cache.src_ip4??=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])")}get_ipv6_addr(){const e="[0-9A-Fa-f]{1,4}",t=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return this.cache.src_ip6_addr??=new RegExp(`(?:(?:${e}:){6}${t}|::(?:${e}:){5}${t}|(?:${e})?::(?:${e}:){4}${t}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${t}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${t}|(?:(?:${e}:){0,3}${e})?::${e}:${t}|(?:(?:${e}:){0,4}${e})?::${t}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`)}get_ipv6_url_host(){return this.cache.src_ip6_host??=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`)}get_ipv6_mail_host(){return this.cache.src_ipv6_mail_host??=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`)}get_auth(){return this.cache.src_auth??=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`)}get_port(){return this.cache.src_port??=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?")}get_host_terminator(){return this.cache.src_host_terminator??=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`)}get_path_terminator(){return this.cache.src_path_terminator??=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`)}get_path(){return this.cache.src_path??=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`)}get_mail_name(){return this.cache.src_mail_name??=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}")}get_xn(){return this.cache.src_xn??=new RegExp("xn--[a-z0-9\\-]{1,59}")}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){return this.cache.src_domain_root??=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`)}get_domain(){return this.cache.src_domain??=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`)}get_url_host_port(){return this.cache.url_host_port??=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source)}get_fuzzy_url_host_port(){return this.cache.fuzzy_url_host_port??=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source)}get_mail_host(){return this.cache.src_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source)}get_fuzzy_mail_host(){return this.cache.src_fuzzy_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source)}get_path_extra(){return this.cache.src_path_extra??=new RegExp("")}get_fuzzy_mail_host_search(){return this.cache.mail_fuzzy_host_search??=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig")}get_fuzzy_link_search(){return this.cache.link_fuzzy_search??=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig")}get_http_validator(){return this.cache.http_validator??=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy")}get_relative_proto_validator(){return this.cache.relative_proto_validator??=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy")}get_mail_name_validator(){return this.cache.mail_name_validator??=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`)}get_mailto_validator(){return this.cache.mailto_validator??=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy")}get_schema_names(){return this.cache.schema_names??=new RegExp((this.opts.schema_names||[]).map(e=>this.escapeRE(e)).join("|"))}get_schema_search(){return this.cache.schema_search??=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig")}get_schema_at_start(){return this.cache.schema_at_start??=new RegExp(`^${this.get_schema_search().source}`,"i")}},Vp={validate:(e,t,i)=>{const s=i.re.get_http_validator();s.lastIndex=t;const r=s.exec(e);return r?r[0].length:0},normalize:(e,t)=>t.normalize(e)},J9={"http:":Vp,"https:":Vp,"ftp:":Vp,"//":{validate:function(e,t,i){const s=i.re.get_relative_proto_validator();s.lastIndex=t;const r=s.exec(e);return r?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r[0].length:0},normalize:(e,t)=>t.normalize(e)},"mailto:":{validate:function(e,t,i){const s=i.re.get_mailto_validator();s.lastIndex=t;const r=s.exec(e);return r?r[0].length:0},normalize:(e,t)=>t.normalize(e)}},W9="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",ez="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function tz(){const e=ez.split("|");return W9.split("|").forEach(t=>{const i=t.indexOf(":"),s=t.slice(0,i);for(const r of t.slice(i+1))e.push(s+r)}),e}var nz={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:tz(),urlAuth:!1,maxLength:1e4},Yb=class{schema;index;lastIndex;raw;text;url;constructor(e,t,i,s){const r=e.slice(i,s);this.schema=t.toLowerCase(),this.index=i,this.lastIndex=s,this.raw=r,this.text=r,this.url=r}},az=class{__opts__;__schemas__;re;constructor(e={}){const{rebuilder:t,...i}=e;this.__opts__={...nz,...i},this.__schemas__={...J9},this.re=t||new X9,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,t=null){if(!t)delete this.__schemas__[e];else{const i={normalize:(s,r)=>r.normalize(s),...t};this.__schemas__[e]=i}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let t,i;for(i=this.re.get_schema_search(),i.lastIndex=0;(t=i.exec(e))!==null;)if(this.testSchemaAt(e,t[2],i.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(i=this.re.get_fuzzy_link_search(),i.lastIndex=0,i.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const s=this.re.get_fuzzy_mail_host_search(),r=this.re.get_mail_name_validator();for(s.lastIndex=0;(t=s.exec(e))!==null;){const u=e.slice(Math.max(0,t.index-65),t.index);if(r.test(u))return!0}}return!1}testSchemaAt(e,t,i){return this.__schemas__[t.toLowerCase()]?this.__schemas__[t.toLowerCase()].validate(e.slice(0,i+this.__opts__.maxLength),i,this):0}match(e){const t=[],i=this.re.get_schema_search();let s,r,u,d,g,b,v=!1,x=!1,S=!1,j=0;if(!e.length)return null;for(i.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(s=this.re.get_fuzzy_link_search(),s.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(r=this.re.get_fuzzy_mail_host_search(),r.lastIndex=0,u=this.re.get_mail_name_validator());;){const _=Math.max(j-1,0);if(r&&u&&!S&&(!g||g.index<j))for(r.lastIndex<_&&(r.lastIndex=_);;){const I=r.exec(e);if(!I){S=!0,g=void 0;break}const $=u.exec(e.slice(Math.max(0,I.index-65),I.index));if($){if(g={schema:"mailto:",index:I.index-$[1].length,lastIndex:I.index+I[0].length},g.index>=j)break;r.lastIndex<_&&(r.lastIndex=_)}}if(s&&!x&&(!d||d.index<j))for(s.lastIndex<_&&(s.lastIndex=_);;){const I=s.exec(e);if(!I){x=!0,d=void 0;break}if(d={schema:"",index:I.index+I[1].length,lastIndex:I.index+I[0].length},d.index>=j)break;s.lastIndex<_&&(s.lastIndex=_)}let T=g;(!T||d&&(d.index<T.index||d.index===T.index&&d.lastIndex>T.lastIndex))&&(T=d);let N;if(!v)for(;;){if(!b){i.lastIndex<_&&(i.lastIndex=_);const K=i.exec(e);if(!K){v=!0;break}b={schema:K[2],index:K.index+K[1].length,lastIndex:K.index+K[0].length}}if(b.index<j){b=void 0;continue}if(T&&b.index>T.index)break;const I=b;b=void 0;const $=this.testSchemaAt(e,I.schema,I.lastIndex);if($){N={schema:I.schema,index:I.index,lastIndex:I.lastIndex+$};break}}let C=N;if((!C||g&&(g.index<C.index||g.index===C.index&&g.lastIndex>C.lastIndex))&&(C=g),(!C||d&&(d.index<C.index||d.index===C.index&&d.lastIndex>C.lastIndex))&&(C=d),!C)break;C===g?g=void 0:C===d&&(d=void 0);const O=new Yb(e,C.schema,C.index,C.lastIndex);O.schema?this.__schemas__[O.schema].normalize(O,this):this.normalize(O),t.push(O),j=C.lastIndex}return t.length?t:null}matchAtStart(e){if(!e.length)return null;const t=this.re.get_schema_at_start().exec(e);if(!t)return null;const i=this.testSchemaAt(e,t[2],t[0].length);if(!i)return null;const s=new Yb(e,t[2],t.index+t[1].length,t.index+t[0].length+i);return this.__schemas__[s.schema].normalize(s,this),s}tlds(e,t=!1){return e=Array.isArray(e)?e:[e],t?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}};const iz=JSON.parse('["aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mv","mw","mx","my","mz","na","nab","nagoya","name","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","vermögensberater","vermögensberatung","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volvo","vote","voting","voto","voyage","vu","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xihuan","xin","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw","ελ","ευ","бг","бел","дети","ею","католик","ком","мкд","мон","москва","онлайн","орг","рус","рф","сайт","срб","укр","қаз","հայ","ישראל","קום","ابوظبي","ارامكو","الاردن","البحرين","الجزائر","السعودية","العليان","المغرب","امارات","ایران","بارت","بازار","بيتك","بھارت","تونس","سودان","سورية","شبكة","عراق","عرب","عمان","فلسطين","قطر","كاثوليك","كوم","مصر","مليسيا","موريتانيا","موقع","همراه","پاکستان","ڀارت","कॉम","नेट","भारत","भारतम्","भारोत","संगठन","বাংলা","ভারত","ভাৰত","ਭਾਰਤ","ભારત","ଭାରତ","இந்தியா","இலங்கை","சிங்கப்பூர்","భారత్","ಭಾರತ","ഭാരതം","ලංකා","คอม","ไทย","ລາວ","გე","みんな","アマゾン","クラウド","グーグル","コム","ストア","セール","ファッション","ポイント","世界","中信","中国","中國","中文网","亚马逊","企业","佛山","信息","健康","八卦","公司","公益","台湾","台灣","商城","商店","商标","嘉里","嘉里大酒店","在线","大拿","天主教","娱乐","家電","广东","微博","慈善","我爱你","手机","招聘","政务","政府","新加坡","新闻","时尚","書籍","机构","淡马锡","游戏","澳門","点看","移动","组织机构","网址","网店","网站","网络","联通","谷歌","购物","通販","集团","電訊盈科","飞利浦","食品","餐厅","香格里拉","香港","닷넷","닷컴","삼성","한국"]');function sz(e,t){return e.endsWith(t)?e.length===t.length||e[e.length-t.length-1]===".":!1}function oz(e,t){const i=e.length-t.length-2,s=e.lastIndexOf(".",i);return s===-1?e:e.slice(s+1)}function rz(e,t,i){if(i.validHosts!==null){const r=i.validHosts;for(const u of r)if(sz(t,u))return u}let s=0;if(t.startsWith("."))for(;s<t.length&&t[s]===".";)s+=1;return e.length===t.length-s?null:oz(t,e)}function lz(e,t){return e.slice(0,-t.length-1)}const Kp=/[\t\n\r]/g;let xf=!1;function Xb(e){return e>=97&&e<=122||e>=48&&e<=57||e>127||e>=65&&e<=90||e===45||e===95}function Jb(e,t,i){const s=i-t,r=e.charCodeAt(t)|32;if(s===2)return r===119&&(e.charCodeAt(t+1)|32)===115?1:0;if(s===3){const u=e.charCodeAt(t+1)|32,d=e.charCodeAt(t+2)|32;return r===119&&u===115&&d===115||r===102&&u===116&&d===112?1:0}else if(s===4){const u=e.charCodeAt(t+1)|32,d=e.charCodeAt(t+2)|32,g=e.charCodeAt(t+3)|32;return r===104&&u===116&&d===116&&g===112?1:r===102&&u===105&&d===108&&g===101?2:0}else if(s===5)return r===104&&(e.charCodeAt(t+1)|32)===116&&(e.charCodeAt(t+2)|32)===116&&(e.charCodeAt(t+3)|32)===112&&(e.charCodeAt(t+4)|32)===115?1:0;return 0}function ll(e,t,i=!1){let s=0,r=e.length,u=!1,d=!1;if(xf=!1,!t){if(e.startsWith("data:"))return null;for(;s<e.length&&e.charCodeAt(s)<=32;)s+=1;for(;r>s+1&&e.charCodeAt(r-1)<=32;)r-=1;if(e.charCodeAt(s)===47&&e.charCodeAt(s+1)===47)s+=2;else{const C=e.indexOf(":/",s);if(C!==-1){const O=Jb(e,s,C);if(O===1)for(d=!0,s=C+2;e.charCodeAt(s)===47||e.charCodeAt(s)===92;)s+=1;else if(O===2){d=!0,s=C+1;let I=0;for(;(e.charCodeAt(s)===47||e.charCodeAt(s)===92)&&I<2;)s+=1,I+=1;if(I<2)return null}else{for(let I=s;I<C;I+=1){const $=e.charCodeAt(I)|32;if(!($>=97&&$<=122||$>=48&&$<=57||$===46||$===45||$===43)){const K=e.charCodeAt(I);return K===9||K===10||K===13?ll(e.replace(Kp,""),t,i):null}}if(e.charCodeAt(C+2)===47)s=C+3;else return null}}else if(e.charCodeAt(s)!==91){let O=-1;for(let I=s;I<r;I+=1){const $=e.charCodeAt(I);if($===9||$===10||$===13)return ll(e.replace(Kp,""),t,i);if($===58){O=I;break}if($===47||$===92||$===63||$===35)break}if(O!==-1){let I=!1;for(let $=O+1;$<r;$+=1){const K=e.charCodeAt($);if(K===47||K===92||K===63||K===35)break;if(K===64){I=!0;break}}if(!I){let $=!0,K=O+1;for(;K<r;K+=1){const Z=e.charCodeAt(K);if(Z===47||Z===92||Z===63||Z===35)break;if(Z<48||Z>57){$=!1;break}}if(K===O+1&&($=!1),!$){const Z=Jb(e,s,O);if(Z===0){let se=!1;for(let R=O+1;R<r;R+=1){const q=e.charCodeAt(R);if(q===47||q===92||q===63||q===35)break;if(q===58){se=!0;break}}if(!se)return null}else if(d=!0,s=O+1,Z===2){let se=0;for(;(e.charCodeAt(s)===47||e.charCodeAt(s)===92)&&se<2;)s+=1,se+=1;if(se<2)return null}else for(;e.charCodeAt(s)===47||e.charCodeAt(s)===92;)s+=1}}}}}let b=-1,v=-1,x=-1,S=-1,j=!1,_=i,T=s-1,N=-1;if(i&&s<r){const C=e.charCodeAt(s);(!(Xb(C)||C===46||C===95)||C===45)&&(_=!1)}for(let C=s;C<r;C+=1){const O=e.charCodeAt(C);if(O<64)if(O===47||O===35||O===63){r=C;break}else O===58?(S===-1&&(S=C),x=C):O===9||O===10||O===13?j=!0:i&&(O===46?((C-T>64||N===46||N===45)&&(_=!1),T=C):(O<48||O>57)&&(O!==45||N===46)&&(_=!1));else if(d&&O===92){r=C;break}else O===64?(b=C,S=-1):O===93?v=C:O>=65&&O<=90?u=!0:i&&!Xb(O)&&(_=!1);i&&(N=O)}if(j)return ll(e.replace(Kp,""),t,i);if(b!==-1&&b>=s&&b<r&&(s=b+1),e.charCodeAt(s)===91)return v!==-1?e.slice(s+1,v).toLowerCase():null;if(x!==-1&&x>s&&x<r&&S===x&&(r=x),s>=r)return null;i&&_&&b===-1&&x===-1&&v===-1&&e.charCodeAt(r-1)!==46&&r-s<=255&&r-T-1<=63&&N!==45&&(xf=!0)}for(;r>s+1&&e.charCodeAt(r-1)===46;)r-=1;const g=s!==0||r!==e.length?e.slice(s,r):e;return u?g.toLowerCase():g}function cz(e){if(e.length<7||e.length>15)return!1;let t=0;for(let i=0;i<e.length;i+=1){const s=e.charCodeAt(i);if(s===46)t+=1;else if(s<48||s>57)return!1}return t===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function uz(e){if(e.length<3)return!1;let t=e.startsWith("[")?1:0,i=e.length;if(e[i-1]==="]"&&(i-=1),i-t>39)return!1;let s=!1;for(;t<i;t+=1){const r=e.charCodeAt(t);if(r===58)s=!0;else if(!(r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70))return!1}return s}function dz(e){return uz(e)||cz(e)}const mz=["test","localhost","invalid","example","example.com","example.net","example.org","local","onion","alt","home.arpa","ipv4only.arpa","resolver.arpa","service.arpa","6tisch.arpa","eap.arpa"];function pz(e){for(const t of mz)if(e.endsWith(t)&&(e.length===t.length||e.charCodeAt(e.length-t.length-1)===46))return!0;return!1}function Wb(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function ev(e){if(e.length>255||e.length===0||!Wb(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let t=-1,i=-1;const s=e.length;for(let r=0;r<s;r+=1){const u=e.charCodeAt(r);if(u===46){if(r-t>64||i===46||i===45)return!1;t=r}else if(!(Wb(u)||u===45||u===95)||u===45&&i===46)return!1;i=u}return s-t-1<=63&&i!==45}function Vk({allowIcannDomains:e=!0,allowPrivateDomains:t=!1,detectIp:i=!0,detectSpecialUse:s=!1,extractHostname:r=!0,mixedInputs:u=!0,validHosts:d=null,validateHostname:g=!0}){return{allowIcannDomains:e,allowPrivateDomains:t,detectIp:i,detectSpecialUse:s,extractHostname:r,mixedInputs:u,validHosts:d,validateHostname:g}}const fz=Vk({});function hz(e){return e===void 0?fz:Vk(e)}function gz(e,t){return t.length===e.length?"":e.slice(0,-t.length-1)}function yz(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null}}function Kk(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.isSpecialUse=null,e.publicSuffix=null,e.subdomain=null}function Gk(e,t,i,s,r){const u=hz(s);if(typeof e!="string")return r;let d=!1;return u.extractHostname?u.mixedInputs?(d=ev(e),r.hostname=ll(e,d,u.validateHostname)):r.hostname=ll(e,!1,u.validateHostname):r.hostname=e,u.detectIp&&r.hostname!==null&&(r.isIp=dz(r.hostname),r.isIp)?r:u.validateHostname&&u.extractHostname&&r.hostname!==null&&!(d&&r.hostname===e)&&!xf&&!ev(r.hostname)?(r.hostname=null,r):(t===0||r.hostname===null||(t===5&&u.detectSpecialUse&&(r.isSpecialUse=pz(r.hostname)),i(r.hostname,u,r),t===2||r.publicSuffix===null)||(r.domain=rz(r.publicSuffix,r.hostname,u),t===3||r.domain===null)||(r.subdomain=gz(r.hostname,r.domain),t===4)||(r.domainWithoutSuffix=lz(r.domain,r.publicSuffix)),r)}function bz(e,t,i){if(!t.allowPrivateDomains&&e.length>3){const s=e.length-1,r=e.charCodeAt(s),u=e.charCodeAt(s-1),d=e.charCodeAt(s-2),g=e.charCodeAt(s-3);if(r===109&&u===111&&d===99&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="com",!0;if(r===103&&u===114&&d===111&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="org",!0;if(r===117&&u===100&&d===101&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="edu",!0;if(r===118&&u===111&&d===103&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="gov",!0;if(r===116&&u===101&&d===110&&g===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="net",!0;if(r===101&&u===100&&d===46)return i.isIcann=!0,i.isPrivate=!1,i.publicSuffix="de",!0}return!1}const gs=new Uint8Array([1,2,1,1,1,1,1,1,1,1,1,1,0,2,2,2,0,2,2,0,2,0,0,1,0,0,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,2,0,0,0,0,0,0,0,2,0,2,2,0,0,2,2,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,2,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,2,2,0,0,0,2,0,1,1,0,2,0,2,2,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,2,2,0,2,2,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,2,0,2,2,2,2,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,2,2,1,1,1,1,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,2,2,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,1,2,1,1,1,2,1,1,1,1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0]),Au=new Uint16Array([0,0,0,10,11,18,106,111,117,124,130,136,145,146,147,148,149,150,151,153,154,155,157,159,226,239,241,242,243,258,265,266,269,270,271,274,276,295,296,298,307,312,313,331,332,335,337,338,340,374,375,377,380,381,385,387,391,394,426,429,442,443,451,452,454,464,478,479,480,489,490,527,532,548,568,574,615,616,643,670,671,819,825,828,829,830,835,840,849,871,872,873,874,875,876,877,895,897,898,901,903,904,906,908,923,938,943,944,946,947,948,949,950,952,955,960,961,962,964,965,968,971,972,973,986,988,1e3,1011,1019,1021,1061,1064,1068,1069,1071,1074,1085,1087,1097,1099,1105,1107,1108,1110,1113,1114,1115,1167,1169,1171,1191,1192,1193,1194,1196,1207,1238,1249,1261,1270,1277,1282,1295,1306,1319,1320,1331,1365,1366,1367,1382,1397,1469,1470,1472,1473,1507,1508,1509,1512,1516,1518,1547,1548,1556,1557,1558,1560,1562,1563,1565,1566,1567,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1594,1595,1596,1598,2053,2056,2057,2059,2066,2073,2083,2087,2098,2099,2100,2112,2113,2115,2117,2118,2125,2126,2128,2129,2131,2132,2133,2134,2135,2209,2211,2232,2233,2234,2236,2262,2263,2314,2315,2317,2324,2330,2340,2350,2403,2404,2405,2415,2429,2430,2433,2440,2441,2449,2450,2451,2452,2453,2464,2465,2466,2468,2469,2470,2471,2473,2483,2495,2501,2533,2537,2539,2540,2542,2543,2554,2555,2557,2565,2572,2578,2583,2584,2590,2593,2599,2606,2607,2614,2622,2623,2624,2662,2668,2683,2684,2689,2707,2738,2756,2758,2761,2769,2771,2778,2830,2854,2855,2856,2857,2858,2859,2860,2861,2868,2869,2870,2871,2872,2873,2875,2876,2880,2964,2977,2978,3414,3418,3432,3484,3512,3534,3592,3614,3629,3692,3743,3781,3817,3842,3984,4030,4081,4100,4134,4149,4169,4199,4230,4253,4284,4314,4346,4373,4448,4470,4508,4518,4552,4571,4597,4639,4689,4715,4784,4785,4787,4810,4833,4869,4900,4917,4974,4987,5011,5040,5042,5076,5092,5120,5425,5434,5443,5450,5467,5471,5477,5516,5518,5525,5532,5541,5548,5549,5560,5563,5578,5579,5588,5589,5598,5607,5613,5615,5616,5617,5653,5654,5656,5664,5671,5684,5688,5690,5691,5697,5704,5718,5728,5733,5741,5749,5755,5756,5760,5762,5763,5775,5776,5777,5778,5780,5781,5784,5786,5789,5793,5794,5800,5801,5802,5804,5806,5808,5809,5810,5813,5815,5818,5819,5821,6019,6026,6027,6037,6042,6059,6073,6082,6083,6084,6088,6089,6091,6093,6099,6100,6103,6104,6106,6107,6108,7008,7009,7013,7031,7040,7043,7050,7051,7053,7054,7055,7057,7109,7110,7113,7114,7231,7232,7243,7254,7261,7264,7273,7274,7275,7290,7345,7536,7538,7539,7541,7546,7559,7574,7581,7590,7593,7596,7603,7611,7615,7616,7617,7631,7635,7644,7645,7646,7650,7685,7686,7703,7710,7718,7719,7724,7732,7776,7777,7783,7786,7797,7802,7803,7806,7839,7840,7846,7853,7854,7863,7872,7887,7891,7943,7944,7949,7951,7954,7956,7957,7958,7967,7981,7989,8003,8015,8016,8018,8020,8042,8053,8059,8060,8072,8084,8171,8183,8185,8194,8197,8203,8228,8231,8232,8233,8235,8238,8241,8252,8254,8256,8284,8358,8365,8369,8370,8379,8401,8402,8407,8408,8487,8489,8491,8500,8504,8510,8516,8522,8532,8537,8538,8556,8567,8572,8577,8587,8593,8597,8603,8609,10217,10218,10219,10226,10228]),Nu=new Uint8Array([3,3,3,3,3,3,3,3,5,8,8,2,2,3,3,3,3,3,8,5,5,5,5,5,3,3,5,5,9,12,19,8,19,8,11,9,9,8,7,7,6,8,9,16,10,7,7,11,8,6,6,9,7,11,7,14,4,4,4,4,4,4,10,7,6,6,6,6,10,10,6,10,10,22,11,9,10,10,10,9,10,8,7,7,7,8,21,13,11,11,9,10,9,13,10,8,8,9,12,9,7,10,7,7,13,7,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,8,6,3,3,3,3,3,3,2,5,3,3,3,7,2,2,2,2,2,2,3,3,3,1,1,7,8,5,2,2,7,2,2,1,4,1,11,9,9,5,5,8,5,5,5,5,5,5,5,3,3,3,3,3,5,11,9,9,13,7,14,7,6,6,6,7,6,6,6,6,6,10,7,11,9,4,4,4,4,4,4,6,6,6,6,6,8,7,10,9,9,9,8,9,8,10,6,9,9,8,10,10,7,8,1,9,10,12,12,12,10,9,9,10,10,9,9,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,4,3,3,3,7,4,4,4,3,3,6,7,3,4,1,2,2,2,6,1,2,2,2,2,2,12,5,3,8,9,13,4,4,13,9,9,11,7,3,12,9,2,2,2,3,3,3,3,3,8,2,2,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,3,7,10,15,7,15,15,20,15,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,7,8,6,8,8,6,8,13,8,8,6,13,8,11,13,8,6,13,8,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,9,9,9,10,14,14,11,13,13,9,9,9,9,9,9,2,6,9,2,2,3,3,3,3,3,3,3,3,3,4,4,4,2,3,3,3,3,3,3,7,7,2,3,2,2,5,3,3,3,3,3,3,4,2,2,2,2,2,2,3,3,3,3,3,3,3,4,5,7,2,2,12,8,10,8,10,7,18,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,2,3,3,3,5,5,3,8,8,6,8,6,6,4,6,7,7,7,10,11,2,5,5,3,3,3,3,3,3,5,5,6,11,10,7,7,7,4,4,4,2,3,3,3,3,3,2,7,5,5,3,3,3,3,3,3,3,3,7,7,7,11,7,6,9,6,6,8,10,8,6,8,13,4,4,4,4,4,10,8,11,8,8,8,10,10,7,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,10,13,7,8,7,11,8,8,6,9,8,8,6,6,6,8,8,6,6,6,6,6,9,7,6,4,4,4,4,4,4,4,6,6,6,9,7,8,10,8,8,2,3,3,3,3,3,2,8,9,9,2,2,2,3,3,3,2,3,3,3,9,2,2,3,3,3,3,3,3,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,5,5,3,5,4,2,3,2,4,3,9,2,2,2,2,2,5,5,3,8,8,13,6,10,9,4,7,9,11,2,3,7,3,3,4,1,3,4,2,9,3,3,12,5,3,7,10,10,7,4,4,6,14,7,9,7,13,2,2,2,2,2,2,3,3,3,3,3,8,15,4,4,2,3,3,3,7,4,9,9,2,3,3,3,5,3,2,2,7,2,7,6,6,7,2,4,2,2,2,2,2,2,8,8,8,9,5,2,3,3,3,3,3,3,10,7,4,4,4,4,3,4,2,3,3,3,3,3,10,7,4,4,4,4,2,3,3,3,3,10,7,4,4,4,4,3,9,6,6,6,9,13,9,2,2,2,8,7,9,5,3,3,3,5,5,12,9,10,7,8,7,6,8,6,11,12,7,9,10,4,4,7,8,11,6,7,9,8,7,10,8,9,15,7,8,5,4,7,2,3,3,3,2,14,10,2,14,10,2,14,3,9,13,13,10,14,16,17,11,2,14,2,14,3,9,13,10,14,16,17,11,14,10,14,2,7,3,10,7,14,10,2,14,10,9,9,17,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,10,10,10,12,9,4,10,11,8,8,8,7,9,5,3,3,3,3,3,3,3,3,5,8,4,4,4,4,4,4,6,16,3,3,14,3,14,2,14,9,13,10,10,14,16,17,11,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,9,9,9,9,9,9,2,14,9,13,10,10,14,16,17,11,6,2,14,9,17,13,10,10,14,16,17,11,6,2,14,9,13,10,14,16,17,11,2,14,9,13,10,16,11,2,14,10,19,7,2,14,9,13,10,19,10,7,14,16,17,11,6,2,14,9,13,10,19,7,14,16,17,11,2,14,9,13,17,13,10,10,14,16,17,11,6,3,2,14,9,13,10,10,14,16,17,11,6,9,10,12,14,14,14,12,12,12,12,12,14,14,14,10,10,10,14,9,9,9,9,14,14,14,13,13,14,9,9,9,9,9,9,4,11,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,9,10,10,7,17,3,3,12,12,16,15,15,12,14,14,14,20,20,13,12,12,12,12,12,12,20,25,14,14,12,12,10,10,10,10,9,9,9,25,4,9,17,10,7,14,16,21,13,13,14,20,14,13,17,24,9,12,13,25,13,21,20,17,9,9,9,9,9,9,12,17,4,4,9,9,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,1,8,7,11,11,1,3,3,3,4,8,9,10,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,7,4,4,4,4,4,4,4,4,4,4,9,12,6,14,4,12,7,2,2,1,2,7,6,4,4,4,6,8,8,7,4,5,6,3,3,3,3,4,16,8,3,5,4,3,3,3,5,2,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,12,7,7,13,9,10,12,8,9,7,8,5,12,10,13,14,5,5,5,13,5,5,5,3,3,3,5,16,5,5,5,5,5,7,12,14,8,12,8,10,12,9,11,7,9,7,10,7,13,9,7,12,8,17,7,7,16,10,13,13,8,10,10,14,17,7,16,16,15,8,10,10,12,17,7,17,14,7,10,17,8,7,7,7,8,15,15,7,14,10,10,10,11,11,7,7,13,8,10,7,16,7,8,7,14,17,12,10,11,21,8,9,7,13,9,8,13,6,12,7,6,13,10,10,10,8,18,9,17,13,10,12,6,13,6,11,8,13,10,13,18,13,11,13,8,16,7,10,8,16,12,10,8,8,6,14,11,8,15,8,8,7,7,12,7,8,9,14,15,8,9,10,9,15,7,8,8,12,13,9,10,15,15,13,7,10,10,20,7,6,9,6,6,14,11,14,11,12,9,10,16,16,12,7,11,28,8,11,10,7,21,8,7,9,4,4,4,17,7,8,6,9,6,6,13,6,6,6,6,18,20,14,8,11,12,9,10,13,15,19,8,9,12,7,10,16,12,9,9,9,14,12,11,9,12,11,18,9,9,9,10,7,7,16,8,9,7,13,12,10,18,7,8,11,7,7,8,8,13,7,7,7,11,15,13,11,7,8,15,11,7,8,18,14,13,18,15,10,12,12,9,7,11,11,8,7,10,8,14,12,10,18,7,10,9,7,8,13,10,14,9,10,8,8,23,7,7,11,12,12,17,7,7,11,11,17,16,16,7,8,11,14,14,8,10,7,7,16,16,13,9,11,9,15,15,11,11,7,7,14,7,9,7,7,16,10,13,10,11,14,7,11,10,11,7,11,10,11,15,11,15,10,12,17,10,14,13,11,11,12,13,10,7,13,10,16,12,21,9,10,10,7,11,14,17,7,7,8,11,12,8,15,14,14,8,17,12,10,10,7,9,11,7,10,7,11,18,7,11,7,12,11,8,8,14,12,7,8,15,3,7,7,5,2,9,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,5,3,3,3,3,3,3,4,4,3,3,3,3,3,3,5,11,6,4,7,10,7,7,11,1,10,2,2,3,3,3,3,3,3,3,3,5,7,3,5,6,3,3,5,2,2,5,3,4,13,11,3,3,6,3,5,14,2,2,3,8,2,2,12,5,18,5,3,3,3,16,5,5,5,10,7,13,12,13,9,12,14,19,9,9,21,9,9,10,6,9,6,15,10,6,12,8,6,10,15,4,4,6,6,9,9,12,16,14,23,7,7,7,14,9,7,7,11,14,10,7,10,10,10,12,6,11,10,13,11,15,11,7,12,10,3,7,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,3,7,2,5,5,3,3,5,5,5,5,7,6,6,6,4,4,4,4,4,4,6,6,6,6,6,7,10,2,2,2,5,5,5,5,3,3,3,3,3,5,5,10,9,11,8,7,12,8,9,7,6,13,11,6,13,7,9,9,4,4,4,4,4,4,6,10,7,8,13,8,8,9,14,8,10,7,7,7,9,6,9,7,2,12,5,3,3,13,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,4,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,4,4,4,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,4,2,2,2,5,3,3,3,3,3,3,3,3,4,4,1,7,6,4,12,3,3,3,3,3,8,7,3,3,3,3,3,3,4,4,11,14,2,8,3,5,5,8,10,8,6,4,7,17,7,4,5,2,6,3,5,2,4,4,2,12,5,5,3,15,13,10,8,11,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,4,18,2,12,5,3,3,3,3,3,5,16,8,8,9,6,6,4,4,4,4,31,6,6,10,11,21,10,9,7,10,7,7,2,4,4,4,4,6,5,3,3,4,3,3,3,3,3,3,3,3,3,6,6,6,2,2,2,5,3,3,3,7,7,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,8,2,3,3,3,3,3,5,9,11,3,3,3,3,4,4,3,3,3,3,3,5,10,9,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,11,10,10,10,10,10,11,10,11,10,11,10,9,9,11,3,3,3,3,3,3,5,3,7,8,8,7,6,6,11,4,4,4,7,8,9,9,2,3,7,4,4,2,5,5,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,5,5,5,5,5,3,3,5,5,5,7,7,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,8,8,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,6,9,12,3,7,10,7,2,2,3,3,3,3,3,4,3,3,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,6,6,8,6,7,4,4,4,4,4,4,6,7,5,5,20,19,8,10,9,7,10,6,8,11,6,6,6,6,13,12,8,6,7,14,11,9,2,5,3,3,6,2,3,2,2,2,2,2,2,2,5,4,3,7,6,4,7,4,3,6,4,7,2,7,7,7,5,5,5,5,3,3,3,3,3,3,3,3,3,3,5,9,10,10,8,11,7,8,20,7,8,9,8,12,6,6,6,8,9,8,12,6,6,8,13,10,12,6,6,7,7,8,9,6,4,4,4,4,4,4,4,10,6,6,6,7,14,11,10,7,8,10,8,11,14,11,11,9,7,9,8,11,9,17,10,9,2,2,2,9,3,3,3,3,15,14,9,5,5,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,15,12,22,19,17,18,18,19,21,7,16,16,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,7,16,11,11,7,7,7,7,17,7,8,12,15,9,19,7,19,8,16,21,11,12,19,14,22,7,7,7,7,7,7,7,7,7,7,7,16,16,19,24,12,7,14,7,12,7,8,10,10,13,7,12,12,7,7,10,18,15,12,16,7,14,12,17,10,16,17,12,17,25,7,7,7,13,6,9,6,9,18,6,6,11,20,10,6,6,6,6,6,6,6,17,6,6,6,15,6,6,6,6,6,8,14,11,12,15,13,19,17,21,7,18,8,13,13,8,12,8,6,6,13,6,15,15,16,6,6,16,6,6,6,14,6,18,6,6,6,17,18,9,13,15,8,19,8,15,15,18,14,16,4,4,4,4,4,4,4,4,4,4,4,4,6,11,10,11,6,21,23,12,17,12,11,14,13,22,15,15,11,12,14,12,7,12,8,14,12,18,10,8,16,19,17,12,14,15,8,9,19,17,12,13,13,15,18,13,23,24,23,21,17,24,8,21,8,14,14,16,14,8,8,15,20,8,19,21,9,8,13,12,13,15,11,8,11,9,9,8,11,8,21,14,21,15,15,13,7,19,7,7,7,7,7,7,16,12,17,18,7,7,11,11,7,9,9,2,2,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,4,5,5,5,5,5,5,5,5,3,3,10,10,7,9,7,7,7,6,8,6,6,6,6,6,6,6,7,6,8,6,6,9,7,7,7,4,4,4,4,4,4,4,4,8,9,8,7,8,7,8,10,7,5,5,5,5,5,5,3,9,7,7,8,6,6,6,6,6,6,6,6,9,6,6,9,11,13,7,8,9,9,5,5,5,7,8,6,6,6,6,6,6,6,7,8,9,7,10,9,10,7,8,5,5,5,5,5,5,7,7,9,8,7,7,6,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,6,9,10,4,4,4,4,8,7,7,10,10,9,8,8,15,9,8,8,8,8,8,9,10,9,10,7,8,13,5,5,5,5,5,3,3,7,7,8,6,6,6,4,4,11,9,7,8,9,10,7,5,5,5,5,5,3,3,7,6,6,13,7,9,8,7,5,5,5,5,5,5,5,5,3,3,3,3,7,8,7,8,13,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,6,6,6,6,7,6,7,6,6,9,7,4,4,4,4,4,4,4,7,8,7,8,9,8,8,8,7,10,7,8,5,5,5,5,5,5,5,5,3,7,7,7,7,9,7,10,9,6,6,6,6,6,8,8,6,6,6,7,6,6,6,9,9,4,4,13,7,10,9,9,12,7,8,8,10,8,8,8,8,8,8,5,5,5,5,3,7,7,11,7,9,8,8,6,6,10,6,8,8,8,6,7,6,6,12,4,4,4,4,4,4,4,4,4,9,8,8,16,8,9,8,7,5,5,5,5,5,3,3,7,7,7,10,15,8,9,8,9,9,6,6,6,6,6,6,7,4,8,7,8,8,7,8,11,8,5,5,5,5,5,3,7,7,6,11,16,7,6,4,4,4,4,9,9,8,8,8,13,12,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,7,8,8,9,13,7,7,7,9,8,8,9,12,7,12,7,12,8,7,10,12,9,9,6,6,8,8,6,6,6,6,6,6,6,9,8,9,11,8,6,6,6,6,6,12,7,6,6,6,9,7,7,6,6,6,6,6,11,9,6,6,6,6,6,7,9,4,4,4,4,4,4,4,4,9,9,9,9,7,7,7,7,7,11,7,7,8,8,8,8,8,8,9,8,9,9,7,7,11,11,7,12,8,8,8,8,8,7,8,8,8,8,8,13,12,8,8,8,8,7,7,7,9,5,5,5,5,5,5,5,3,3,7,7,11,7,8,8,8,6,6,6,6,6,6,6,6,6,6,6,10,11,6,7,9,4,4,4,4,4,4,9,9,8,9,8,8,8,7,7,5,5,5,5,5,5,5,5,5,5,3,3,11,7,7,7,9,6,6,11,8,10,6,6,6,12,8,8,7,6,6,8,7,4,4,4,4,4,4,4,4,9,10,9,9,8,10,9,11,8,5,5,5,7,6,6,8,7,4,4,4,4,8,7,7,8,7,8,8,5,5,5,5,7,7,8,8,8,6,6,6,6,6,10,8,9,13,6,7,6,6,8,7,8,4,4,4,4,11,8,8,8,10,5,5,8,7,8,13,8,7,6,8,6,9,7,8,7,5,5,5,5,5,5,3,3,7,8,9,6,4,8,10,10,8,12,9,13,2,7,5,5,5,5,5,7,7,10,6,6,6,6,6,6,6,8,4,4,9,8,8,8,14,8,8,8,9,8,5,5,5,5,5,3,3,9,6,6,6,6,10,12,6,6,6,6,6,6,6,4,4,4,4,11,8,7,8,8,8,5,5,3,3,3,3,7,7,6,8,6,8,11,7,6,6,6,7,4,8,11,9,10,5,5,5,3,3,3,7,7,8,9,8,15,9,6,6,6,6,6,6,11,11,4,4,4,4,4,7,9,9,10,8,7,5,5,5,5,5,5,3,3,8,6,6,6,6,6,6,6,6,6,9,7,4,4,4,4,4,9,9,8,8,10,13,5,5,5,3,17,7,7,7,7,7,8,6,8,13,6,6,6,6,6,6,6,6,4,4,4,9,10,8,8,8,5,5,5,5,3,7,7,7,8,8,6,6,6,8,8,8,9,10,8,4,8,10,9,8,8,8,9,13,10,5,5,5,5,5,5,5,5,5,5,3,3,7,8,9,9,7,7,7,10,9,9,8,9,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,6,8,12,6,6,6,6,6,6,6,6,6,12,4,4,4,4,4,4,4,4,4,4,4,11,8,8,9,9,10,8,9,7,7,5,5,5,5,5,5,3,7,8,7,6,6,8,6,6,10,4,7,8,9,12,8,7,7,5,5,5,5,5,5,3,3,7,14,7,9,8,8,6,6,8,12,12,6,6,7,7,10,4,4,4,4,4,9,9,14,9,13,8,7,5,5,5,6,6,6,7,4,8,7,5,5,5,5,5,5,5,5,3,3,7,7,7,8,6,6,6,6,6,6,12,6,6,6,6,4,4,9,9,8,8,11,7,7,7,5,5,5,3,9,8,6,6,7,4,4,4,4,4,4,8,8,11,5,5,5,7,7,7,9,6,6,6,6,6,6,9,8,4,4,4,4,7,12,9,8,8,8,7,10,10,5,5,5,5,5,5,5,3,11,14,8,7,8,8,6,6,6,6,6,8,7,6,6,6,7,6,8,9,4,4,4,7,8,9,7,9,7,7,9,8,5,5,5,5,5,5,5,5,5,11,3,9,7,7,12,14,8,6,6,12,11,8,6,6,6,6,6,6,6,6,6,15,7,4,4,4,16,9,9,9,8,9,9,9,9,9,8,8,8,13,11,8,5,5,5,5,3,7,6,6,8,8,8,6,6,7,10,7,4,4,4,4,9,7,8,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,7,7,9,6,6,6,6,6,8,8,7,7,9,6,6,6,7,6,6,6,6,6,15,4,4,4,4,4,8,8,7,8,12,9,8,8,8,8,8,9,8,8,10,8,8,8,8,16,9,10,2,5,5,5,5,5,5,5,9,7,6,8,9,4,4,4,4,4,7,8,8,8,9,8,11,10,5,5,5,5,3,7,8,6,6,6,6,6,8,6,6,6,6,4,12,10,12,7,7,7,7,7,7,7,5,5,5,5,3,3,7,7,10,8,9,7,6,10,7,6,6,4,4,8,9,7,9,9,9,9,8,8,8,8,10,5,5,5,5,5,5,8,7,6,6,6,10,6,7,10,7,4,4,4,4,4,4,4,12,9,10,7,7,10,8,10,5,12,9,6,6,6,6,6,7,6,4,4,4,10,9,9,8,7,7,5,5,5,5,5,5,3,3,13,7,7,9,7,7,7,8,9,9,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,15,15,4,4,4,4,4,10,10,9,8,9,8,8,9,7,8,7,8,5,5,7,6,6,6,4,4,4,7,8,11,8,5,5,5,5,5,5,5,7,6,6,6,6,6,6,9,11,10,7,4,4,4,9,8,8,5,5,5,5,5,9,9,6,6,6,6,6,6,6,9,9,4,4,4,4,8,8,8,9,9,8,8,8,13,2,4,2,7,5,5,5,5,5,5,9,9,6,6,6,6,10,8,8,8,6,6,6,4,4,9,8,10,8,9,8,8,8,9,8,8,5,3,3,3,11,6,6,6,7,6,6,6,4,4,9,8,5,5,5,5,5,3,11,8,6,6,6,6,6,9,7,4,4,14,10,9,8,12,8,8,8,11,15,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,11,11,10,10,7,7,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,3,3,3,7,11,7,7,11,11,7,8,9,10,7,7,9,9,9,9,7,7,10,8,13,8,8,8,8,11,10,6,6,8,10,11,14,14,6,6,6,6,6,6,9,11,7,7,6,8,12,11,11,6,6,10,6,6,6,6,6,10,7,7,6,6,11,6,6,6,11,8,9,7,6,10,11,9,10,11,7,11,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,6,6,8,9,10,9,6,6,6,10,6,6,6,6,11,10,11,10,9,8,7,7,7,7,11,14,8,10,9,9,8,8,7,11,8,8,8,11,11,10,10,9,10,8,11,10,8,11,9,12,8,10,8,11,8,9,9,11,11,10,11,13,8,7,8,8,9,7,8,8,8,8,7,8,2,2,2,2,2,2,2,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,8,6,4,4,4,11,7,11,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,3,3,3,3,8,7,7,8,8,4,8,7,7,7,9,7,8,9,8,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,4,5,5,3,8,8,6,9,4,4,10,7,3,3,3,2,5,3,3,3,3,3,3,3,3,3,3,3,3,4,3,2,2,2,3,3,3,3,3,4,10,2,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,2,2,3,3,3,5,2,4,2,6,2,2,9,5,5,3,3,3,3,3,3,3,5,5,5,9,8,7,6,6,11,4,4,4,4,4,4,4,4,6,6,7,7,11,8,8,6,5,11,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,6,4,4,4,4,3,3,3,3,5,7,2,3,3,3,3,3,8,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,2,2,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,2,3,3,3,3,3,6,3,3,8,10,3,4,4,1,1,1,1,1,1,1,8,9,10,7,7,1,1,3,8,7,7,8,8,8,1,6,1,1,6,3,3,4,7,3,5,5,4,4,4,4,4,2,7,7,8,12,3,4,5,1,3,4,4,10,4,3,3,3,8,7,7,2,2,2,2,2,2,2,2,2,12,9,20,7,5,5,5,9,13,5,5,5,5,5,3,3,3,16,5,5,5,13,7,8,8,11,8,7,9,7,11,12,9,9,8,8,11,10,14,7,12,10,11,13,7,9,11,17,17,14,13,7,8,7,10,10,7,16,13,7,8,17,12,9,8,6,7,10,6,6,12,6,8,10,8,8,8,6,8,6,14,6,6,6,13,6,10,6,6,7,14,8,6,6,10,11,10,9,9,7,7,6,6,6,9,9,7,9,10,9,13,12,4,4,4,4,4,4,4,4,4,6,6,6,8,8,6,8,9,10,9,7,10,10,8,7,8,7,10,12,9,8,15,8,7,8,8,7,7,15,13,7,10,9,14,18,16,7,24,7,8,10,11,16,8,14,7,9,9,9,11,13,19,14,15,14,11,7,13,9,10,7,13,9,10,11,12,8,9,2,3,5,8,7,4,4,10,5,3,3,3,3,3,5,4,4,4,2,2,2,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,4,2,12,5,3,8,10,15,6,7,2,3,2,5,5,12,2,5,5,5,5,2,2,5,5,12,9,5,2,2,9,5,5,12,12,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,12,5,8,8,9,5,5,5,8,19,7,16,15,14,9,9,9,9,7,11,11,11,7,14,10,10,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,12,9,9,12,12,12,15,7,11,7,14,11,18,13,8,18,15,18,12,14,12,8,8,8,8,9,9,9,12,7,10,10,8,8,12,12,12,7,12,12,9,7,7,7,7,7,8,15,12,9,10,10,7,10,10,13,11,10,9,22,11,9,8,8,8,8,8,13,18,13,9,15,19,9,7,7,10,7,7,7,11,8,13,17,7,7,10,10,10,7,20,16,7,7,7,7,7,7,11,21,12,12,13,11,14,16,8,8,13,11,7,7,13,7,7,14,15,15,6,6,6,6,6,6,6,6,6,6,13,10,18,6,6,6,6,6,6,6,6,6,11,8,8,12,12,11,11,8,12,9,9,9,13,13,9,9,9,9,9,9,6,10,12,6,6,6,6,17,11,7,7,7,7,14,14,12,6,7,7,6,6,15,10,13,10,6,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,9,15,13,6,12,12,6,19,11,10,7,7,16,8,19,17,9,9,9,9,9,6,6,6,10,8,16,8,6,6,9,6,6,6,6,6,6,6,6,8,8,8,6,7,6,6,6,6,6,6,6,6,6,6,6,14,6,6,6,6,20,6,9,6,14,9,9,9,6,9,8,8,12,9,8,8,8,8,7,8,12,7,8,8,8,6,8,6,6,6,6,6,6,6,9,8,8,6,6,13,9,12,13,12,14,13,12,11,11,6,8,8,8,6,13,12,11,11,12,6,11,12,11,13,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,6,6,6,6,6,6,6,13,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,6,18,6,12,13,13,13,9,10,15,9,12,6,6,6,6,6,6,6,6,9,15,10,9,10,13,9,19,8,18,17,10,10,8,8,6,6,6,6,6,6,10,14,8,16,16,9,8,15,8,8,10,12,14,7,7,8,8,7,7,7,7,8,13,13,11,9,9,9,12,10,17,8,11,9,7,7,14,8,14,14,7,7,7,7,7,7,14,7,7,7,7,7,10,10,8,14,7,7,7,7,8,8,8,8,8,17,9,7,15,7,8,12,7,9,14,7,7,7,9,13,8,14,7,16,18,13,15,14,12,13,10,15,9,7,7,7,10,13,15,15,9,9,9,9,19,11,7,11,11,13,8,8,8,8,7,12,19,17,9,9,13,7,7,7,9,7,7,7,12,13,15,10,8,8,14,15,12,13,13,8,12,14,7,11,7,14,15,13,12,8,8,8,8,11,13,15,15,8,13,12,8,8,8,13,10,16,14,11,8,8,12,12,9,15,15,12,12,13,8,8,9,12,13,9,8,8,8,8,8,8,8,8,8,8,8,11,12,11,7,14,7,13,13,13,12,18,16,7,12,11,10,10,15,9,9,9,21,7,7,7,11,16,8,8,11,11,7,7,7,7,7,19,7,7,7,7,7,7,7,7,7,12,8,9,12,14,11,9,9,9,22,12,3,8,8,15,4,2,2,5,5,3,3,3,3,3,3,6,6,4,4,4,12,7,10,2,3,3,3,3,3,3,3,6,7,3,7,5,14,4,4,7,8,10,4,1,3,3,6,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,2,2,5,3,4,2,2,2,2,2,2,11,5,5,5,11,5,5,3,5,5,5,5,11,14,13,9,11,9,12,8,11,11,8,11,16,9,9,7,10,9,12,8,15,6,7,6,6,13,10,8,11,8,6,6,6,12,16,6,11,7,8,9,18,6,6,9,4,4,6,13,6,6,6,6,8,8,9,16,7,7,14,7,8,8,8,7,7,7,7,7,7,15,13,7,10,7,7,10,12,16,15,7,9,9,14,11,11,10,9,10,8,12,7,8,7,7,10,12,7,12,8,7,2,3,3,3,3,3,3,3,3,3,3,5,3,3,5,5,5,10,4,8,7,10,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,7,4,5,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,8,2,2,2,8,12,7,7,5,5,5,5,5,5,5,5,5,5,5,5,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,7,11,9,8,8,8,7,8,9,7,7,9,7,7,7,10,7,7,10,9,10,6,6,6,6,6,6,15,7,8,9,9,8,6,6,10,9,6,8,13,9,7,6,6,6,6,6,6,12,6,6,7,6,7,6,6,6,10,10,7,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,14,6,6,7,7,9,6,6,6,6,9,9,8,9,10,9,8,9,12,7,7,7,8,7,10,12,11,9,10,7,7,7,9,10,10,8,12,9,7,7,9,8,8,8,10,7,7,8,9,9,7,7,7,8,2,4,6,3,4,2,3,3,3,3,2,3,3,3,3,3,3,3,3,4,4,4,4,5,5,3,3,3,3,3,3,3,3,5,8,6,4,7,3,3,3,3,3,3,3,12,3,3,3,3,3,3,4,4,2,3,5,3,4,7,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,6,4,3,4,2,2,2,5,3,3,3,3,3,5,4,4,4,4,7,6,8,9,2,2,2,2,3,3,3,5,7,2,3,3,8,7,7,2,2,8,5,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,7,7,6,10,6,9,7,11,4,6,8,8,7,8,4,5,5,5,3,3,11,8,9,6,6,8,7,4,4,7,8,7,2,2,3,3,3,3,4,3,3,3,3,3,3,3,3,7,2,2,5,3,3,2,3,3,3,3,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,12,5,5,3,3,3,5,10,12,6,15,4,6,6,7,14,9,3,3,3,3,3,8,2,2,3,5,3,3,3,3,3,3,8,8,8,7,5,8,4,6,11,2,2,6,7,2,9,8,5,5,3,3,5,5,7,7,6,6,10,6,6,8,9,7,4,4,4,4,7,6,6,7,7,10,9,8,11,8,3,3,3,3,3,4,4,2,3,3,3,3,3,7,6,2,5,6,7,6,4,8,9,11,2,2,3,3,3,3,3,3,3,2,2,5,3,3,3,3,3,9,9,6,4,8,7,7,5,9,8,6,8,7,8,5,5,5,5,5,3,3,3,16,8,7,7,7,8,7,7,7,7,9,6,9,6,10,7,7,7,6,10,8,9,11,11,8,4,4,10,8,8,6,9,6,11,8,8,8,15,7,8,9,5,3,3,3,3,3,5,11,2,2,3,8,9,10,3,2,2,2,2,2,2,3,6,4,2,2,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,11,5,3,3,3,3,3,3,3,3,6,7,4,4,2,3,3,3,3,3,3,3,3,12,7,4,12,4,6,5,4,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,3,4,4,11,10,6,4,6,10,8,3,3,3,3,3,3,3,3,5,4,4,4,2,2,2,2,2,2,2,2,5,3,4,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,5,5,5,5,5,5,3,3,3,3,3,3,3,3,7,8,8,7,13,12,10,10,8,8,7,7,9,12,11,6,6,8,8,9,7,7,7,10,15,10,4,4,4,4,4,11,8,8,9,7,9,14,14,12,2,2,2,2,2,2,2,3,3,3,3,3,2,2,12,5,5,5,8,11,10,7,9,3,8,7,3,15,13,11,4,4,2,2,2,19,7,5,5,3,3,3,3,3,3,3,5,22,18,6,14,17,4,4,19,16,18,2,3,3,2,3,2,3,3,6,4,2,3,3,2,5,3,3,3,3,3,3,3,9,9,2,3,2,2,2,3,3,3,5,7,14,7,7,12,9,13,6,11,6,10,9,7,7,8,12,12,8,8,8,10,7,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,5,8,10,7,8,11,8,12,9,4,7,7,9,13,2,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,3,3,3,3,5,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,3,2,3,3,3,3,5,2,2,2,2,5,5,5,5,3,3,3,3,3,3,3,3,3,7,7,7,7,7,8,8,8,8,8,12,9,8,8,9,8,6,17,6,6,6,8,8,6,6,6,6,6,6,6,6,6,6,6,7,4,4,8,8,9,9,9,7,7,7,7,7,7,7,9,9,9,7,8,8,8,10,7,13,10,8,9,3,3,5,13,3,3,3,3,3,7,7,6,6,10,13,11,11,8,8,9,8,9,9,10,10,10,11,10,10,13,13,16,15,11,12,9,9,10,9,11,10,9,9,14,7,8,3,10,7,7,3,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,6,7,2,2,3,3,3,3,3,3,3,3,4,11,6,7,4,6,2,2,3,3,3,1,3,3,3,3,3,3,6,4,4,2,2,2,3,3,3,3,4,4,6,6,6,6,5,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,11,6,10,9,12,7,7,11,14,9,7,12,3,3,7,12,11,12,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,5,5,5,5,5,5,5,5,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,3,10,3,3,3,11,3,5,9,11,8,12,14,9,7,8,7,7,11,11,7,7,10,9,8,10,9,7,7,7,7,7,7,8,8,7,11,8,8,8,7,7,10,8,7,13,12,7,17,10,8,8,11,7,11,11,14,7,11,7,8,6,9,20,8,7,9,16,7,10,6,11,10,8,9,7,16,11,11,9,8,9,8,8,8,11,8,15,8,8,9,7,8,8,11,10,7,5,7,10,10,15,7,7,7,8,7,8,8,10,11,10,10,10,11,11,7,8,6,8,8,8,10,6,8,6,6,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,16,6,15,6,7,11,11,7,9,10,11,13,10,6,16,8,10,12,11,6,6,6,6,6,6,6,10,6,10,7,7,7,7,11,7,11,6,6,6,6,6,6,17,7,7,6,6,12,22,6,6,6,6,6,8,6,6,6,6,7,6,6,5,6,6,8,11,6,9,14,11,9,11,7,7,8,6,6,6,8,10,9,6,6,6,6,9,7,6,6,6,6,6,15,6,4,4,4,6,4,17,8,11,6,6,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,6,6,10,6,10,6,6,6,6,12,8,6,6,6,6,6,6,6,6,6,9,6,6,6,6,18,6,6,6,8,9,10,7,8,9,10,11,7,13,6,8,8,6,6,14,7,7,7,7,10,7,14,9,6,6,9,15,9,7,14,6,11,14,13,7,12,8,7,7,7,7,7,12,7,10,9,16,6,8,6,5,17,6,8,10,4,6,4,10,15,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,4,4,11,7,4,4,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,19,17,6,10,11,6,6,6,6,18,6,6,11,4,4,4,5,6,6,6,9,5,6,4,6,6,4,6,6,6,6,10,6,6,4,6,6,10,6,10,6,6,6,6,11,6,6,10,6,6,8,6,6,6,8,6,11,4,11,9,10,9,11,4,8,4,11,12,7,9,8,6,7,7,8,12,12,11,13,10,11,7,7,7,9,7,11,10,7,7,7,16,11,10,11,17,9,9,8,8,7,7,7,9,7,7,7,14,7,13,9,11,10,14,10,10,12,11,10,7,10,5,14,8,8,8,9,7,8,7,7,9,8,7,8,7,7,7,7,7,7,7,11,8,10,8,7,8,14,11,8,9,9,9,8,24,10,10,12,7,7,15,11,8,8,12,11,8,9,9,7,8,9,10,11,10,11,7,12,7,7,11,9,8,14,13,12,8,11,10,8,8,7,7,14,9,10,8,9,11,7,14,8,8,13,8,8,12,7,10,14,14,11,9,10,9,9,7,7,11,11,13,9,13,5,5,5,7,9,5,11,12,14,8,7,7,11,10,9,7,8,8,7,10,11,11,5,5,7,5,5,5,7,7,15,7,7,8,7,15,12,12,10,7,8,7,11,7,7,7,23,11,8,8,11,10,7,8,11,7,19,7,7,6,9,9,9,11,3,4,7,8,6,6,4,10,8,2,2]),tv=new Uint16Array([0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,17,1,1,1,12,1,12,1,12,13,1,1,1,1,12,1,12,1,1,1,1,1,14,21,1,1,1,1,1,1,1,19,12,1,1,1,1,1,1,1,20,1,1,1,16,1,18,1,1,15,1,1,1,1,12,1,1,1,1,1,1,22,1,1,1,12,1,1,1,1,1,1,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,1,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,12,12,12,12,1,32,0,0,0,1,1,1,1,35,34,1,1,1,1,1,33,1,1,1,1,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,38,0,0,0,0,39,40,0,0,0,41,0,12,1,1,12,1,1,1,1,44,45,45,45,44,45,44,44,46,45,44,45,44,44,44,44,44,44,46,44,44,44,44,44,44,45,47,47,45,44,44,44,44,44,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,50,52,50,50,50,52,50,51,50,53,50,51,51,50,50,50,51,53,51,53,50,51,51,12,55,55,54,56,51,53,50,50,48,49,57,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,60,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,67,1,12,1,1,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,76,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,12,1,1,1,1,89,1,91,1,1,1,1,1,1,1,1,94,1,1,1,1,1,1,1,1,1,1,1,1,0,1,97,97,1,1,12,1,100,1,1,1,1,1,1,1,98,1,99,1,101,1,1,1,1,1,102,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,110,111,1,1,1,1,1,1,113,113,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,121,122,1,1,1,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,126,123,125,120,1,124,1,1,114,1,1,1,1,117,1,127,1,1,1,1,1,119,1,108,1,109,1,12,128,106,1,112,1,1,1,1,1,107,115,1,12,12,12,118,116,1,1,1,1,1,1,0,0,0,0,1,12,12,1,1,1,1,1,12,134,1,1,1,1,1,1,1,1,1,1,1,12,136,1,1,1,1,1,1,1,1,137,138,12,12,135,133,45,45,140,50,50,139,142,141,1,1,0,0,0,0,0,0,0,0,0,0,0,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0,0,0,1,0,144,132,1,0,1,12,12,1,1,1,1,1,0,0,0,0,0,0,0,1,148,147,20,1,1,12,12,1,20,12,12,1,1,1,1,1,134,1,1,152,1,1,1,1,153,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,1,136,1,1,152,1,1,1,1,153,1,1,134,1,1,1,152,1,1,1,1,153,1,1,134,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,160,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,1,1,1,1,1,134,1,1,1,1,152,1,1,1,1,153,1,1,1,134,1,1,152,1,1,1,1,164,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,167,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,154,158,158,12,1,12,166,1,1,1,1,1,158,158,158,154,1,1,1,157,158,161,165,1,1,1,1,157,157,1,1,156,154,154,157,170,156,170,1,1,168,1,156,155,157,1,1,1,1,157,1,159,1,1,1,12,1,162,1,162,1,1,1,162,161,163,169,156,154,1,1,1,1,1,1,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,172,172,172,174,174,172,173,172,173,172,172,12,12,12,12,12,1,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,193,1,1,1,1,12,199,200,201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,1,1,1,1,1,1,1,1,1,1,1,196,1,1,1,184,1,210,1,1,1,208,1,1,205,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,12,1,1,1,1,1,1,1,1,190,1,1,1,186,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,182,1,1,1,1,1,1,1,191,1,1,1,1,195,1,1,1,1,171,1,1,189,1,1,1,192,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,180,1,12,1,1,12,1,1,1,1,183,1,1,1,188,1,203,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,209,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,194,1,1,1,1,1,12,1,1,1,1,1,1,1,1,176,12,1,1,1,178,12,1,1,1,1,1,1,1,198,1,1,1,1,1,1,1,1,1,1,177,1,1,1,1,1,1,204,1,1,1,181,1,1,1,187,1,12,1,1,12,1,1,1,1,1,1,1,1,1,1,191,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,175,1,1,1,1,1,1,1,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,206,1,1,1,1,1,1,1,1,1,1,1,1,1,207,1,1,12,1,1,1,1,179,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,197,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,12,1,1,1,1,1,1,1,1,1,202,1,1,12,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,220,0,0,0,0,0,221,0,0,0,0,0,0,1,12,1,1,1,225,1,1,1,0,226,223,224,1,1,1,1,1,1,231,1,233,1,1,1,1,1,1,1,1,1,1,1,229,1,1,1,1,1,235,1,1,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,234,1,1,1,12,1,1,1,1,230,1,1,1,228,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,232,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,241,13,1,1,1,12,12,238,239,1,1,1,1,240,1,1,12,1,1,1,1,1,1,1,242,1,1,12,16,1,1,1,1,1,1,1,243,1,1,1,12,12,1,1,1,1,1,243,12,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,256,256,1,0,0,0,0,0,1,12,0,0,0,0,0,0,0,0,172,261,262,1,12,1,1,1,1,12,264,1,1,263,1,1,266,1,1,1,1,1,1,1,1,1,0,1,1,1,271,272,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,12,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,12,0,283,0,0,284,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,12,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,60,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,308,0,0,0,0,0,0,0,0,0,310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,327,327,328,327,0,185,1,1,13,323,1,321,0,0,0,0,1,0,0,0,324,1,1,329,1,205,1,1,1,1,1,322,1,319,1,325,1,317,1,326,1,318,1,1,1,1,1,1,1,12,1,1,1,12,1,12,320,320,1,1,1,316,184,1,1,12,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,12,1,1,1,1,315,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,332,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,266,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,372,372,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,340,351,1,1,339,374,1,345,1,1,337,369,1,1,355,336,341,1,1,1,348,379,357,1,1,1,1,1,1,358,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,367,371,0,0,79,1,1,0,365,342,378,343,346,353,1,368,0,1,0,79,362,360,1,0,0,1,1,1,0,0,0,0,381,1,1,352,1,79,1,0,1,1,1,384,1,0,0,79,359,0,1,338,1,1,1,0,1,1,361,1,0,1,1,1,0,1,386,349,1,1,0,1,0,0,377,0,1,1,1,79,370,1,1,366,363,1,1,1,1,1,1,1,1,1,1,1,344,1,1,1,1,1,1,1,1,1,1,1,376,0,79,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,380,1,1,1,0,0,383,0,0,0,1,356,1,0,79,382,1,0,0,0,0,385,1,1,0,0,1,0,1,0,354,0,350,0,1,1,1,0,1,1,0,373,347,375,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,400,400,1,1,12,12,1,400,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,412,1,1,0,1,1,1,1,205,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,430,430,1,1,0,0,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,442,1,441,1,1,1,1,1,1,1,1,445,1,12,12,1,1,1,1,1,12,1,1,1,1,453,1,1,1,455,1,1,1,1,1,1,1,1,1,1,452,1,447,1,1,1,1,435,1,1,1,1,1,1,1,1,448,12,1,1,1,1,454,1,1,1,449,444,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,317,1,433,1,1,12,451,1,1,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,437,1,1,1,1,1,1,1,1,1,1,1,454,1,1,1,1,317,1,450,1,1,1,439,1,1,1,1,1,440,1,456,443,1,1,1,1,1,438,1,1,1,1,1,1,1,1,1,434,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,446,1,1,1,1,1,1,1,12,1,1,1,1,1,436,1,1,1,1,1,1,1,220,457,1,1,1,1,1,12,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,462,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,466,466,466,466,466,466,466,0,466,466,466,466,466,1,466,466,466,0,466,466,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,471,470,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,478,473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,476,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,1,1,1,1,1,1,1,488,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,198,198,1,492,1,1,1,491,1,1,1,1,487,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,489,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,493,1,1,490,1,1,1,1,1,1,1,1,372,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,494,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,505,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,12,1,507,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,12,12,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,60,1,1,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,526,1,1,1,1,1,1,1,527,1,1,1,1,1,1,1,525,1,1,12,1,529,239,1,1,12,12,1,1,12,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,539,1,1,1,1,1,1,1,1,1,1,1,1,1,1,132,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,107,1,1,12,1,1,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,548,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,144,1,1,1,228,1,1,12,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,572,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,577,1,220,1,328,1,1,1,1,1,1,1,1,1,0,0,578,1,1,1,1,0,580,0,79,0,579,0,1,1,1,0,1,1,1,1,1,1,12,0,0,0,0,1,0,0,0,0,0,0,586,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,582,582,0,585,583,582,582,582,582,582,587,582,582,591,582,582,582,582,582,582,582,582,582,582,588,585,582,582,585,582,582,582,582,582,582,582,582,582,582,582,582,582,583,582,582,582,582,582,589,582,582,582,582,582,582,0,0,0,1,590,1,1,1,1,584,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,12,595,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,12,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,12,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,65,280,306,411,535,0,4,68,236,254,282,307,334,388,413,0,499,519,536,597,9,0,61,88,398,409,429,575,0,497,518,532,612,0,30,6,0,461,500,602,560,70,0,7,285,255,389,463,416,538,79,598,0,576,309,418,465,9,105,288,506,6,30,0,311,79,391,79,483,10,6,131,248,275,0,613,509,0,563,0,64,6,6,251,95,2,432,399,410,596,0,6,0,6,286,103,6,561,501,540,0,464,390,273,287,8,71,104,599,543,392,312,300,419,146,74,290,546,510,601,564,335,330,479,6,75,149,11,0,249,522,547,565,514,551,570,611,36,6,260,295,333,304,218,30,528,553,218,42,216,265,296,305,406,423,481,274,0,73,562,0,403,417,299,79,247,79,0,581,545,504,292,421,79,393,387,0,0,0,9,555,571,217,0,424,407,531,516,573,615,85,218,43,297,396,425,569,0,511,293,276,79,215,80,28,390,30,6,394,331,303,604,592,524,550,513,0,258,81,30,405,422,0,30,426,0,219,593,517,9,408,427,218,248,86,222,594,574,557,482,428,397,250,227,87,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,620,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,82,0,129,0,0,84,549,0,0,0,0,0,0,0,27,0,552,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,503,0,257,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,617,0,0,0,0,0,616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,395,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,495,0,0,0,0,0,0,404,0,0,0,0,0,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,515,0,0,0,0,0,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,269,281,0,0,0,0,0,530,277,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,458,0,0,0,314,0,0,0,0,0,0,253,0,0,0,0,0,0,23,0,0,0,0,568,0,0,0,0,600,521,0,0,0,0,244,0,0,0,0,0,0,0,0,0,480,0,0,0,0,0,62,0,0,0,267,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,279,610,0,72,0,0,0,0,0,0,0,0,0,619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,0,278,0,0,0,0,0,0,567,0,0,0,0,0,0,523,0,0,0,0,0,0,0,0,0,566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,213,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,502,0,0,0,0,0,554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,83,0,0,0,0,0,0,0,0,0,0,0,0,486,0,485,0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,537,0,0,0,0,0,0,0,0,298,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,237,0,0,0,0,0,0,0,0,0,0,84,0,606,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,609,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,520,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,498,0,614,0,0,431,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,544,0,93,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,29,92,0,0,0,0,0,0,0,0,0,0,0,0,291,0,0,0,214,0,0,0,0,0,0,558,0,270,0,0,130,0,0,0,0,0,559,0,0,0,0,0,0,0,414,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,313,0,0,0,0,0,5,0,0,0,0,0,0,0,301,0,0,0,0,0,0,0,0,0,0,0,0,0,534,0,0,0,415,0,0,401,0,0,0,0,0,0,603,0,0,0,541,0,0,90,0,542,0,0,0,0,0,0,0,0,0,0,508,460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,607,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,618,0,0,0,0,0,556,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,605,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,623,623,623,623,623,623,623,622,624]),Sf="orgmilcomschnetedugovdrrformsfeedbackofficialaccoorgmilschnetgovmagazinemediaunioncargopilotgroupcaarespressworksaerodromeworkinggroupair-traffic-controlaircraftaccident-preventioneducatormarketplaceambulanceinsurancecateringairportrepbodyenginesoftwaremodellingair-surveillanceconsultingchartertrainermaintenanceservicesdesignflightskydivingfreightassociationstudentgroundhandlingdgcafuelclubtaxicrewshowballooningexpresstraderbrokerauthoragentsairtrafficjournalistsafetyconsultantmicrolightaccident-investigationparachutingequipmentproductionfederationrecreationscientistnavigationengineertradingglidingleasingresearchpassenger-associationentertainmentparaglidinghangglidingaerobaticrotorcraftemergencycertificationgovernmentaeroclubexchangelogisticschampionshiphomebuiltcouncilconferencecontrolairlinecivilaviationjournalorgcomnetedugovcoorgcomnomnetobjofforgcomnetuwukiloappsframerorgmilcomnetedugovcoradioorgcomnetcommuneedogpbcoitgvorgedugov*spreviewfrontendrelayononstagingupid*mtls*privatelinktypedreamdeveloperbravemochawindsurfaivenmirenupsunwnextbegetngrokclerkwale2bwebcsbrunputerflutterflowspawnbaseshiptodaymagicpatternsnetlifyondigitaloceanrailwayhostedclaudehasurabotdashvercelgithubluyanigadgetreplitcloudflaretelebitedgecomputeevervaultdetaexponyatnoopencrpplxzeaburwasmerframerzeropsconvexmedusajsspritesonherculeseasypanelstreamlitsnowflakemesserliloginlinehackclubnorthflankbase44corespeedadaptableleapcellngrok-freeclerkstagelovableon-fleek*us-west-3ap-south-2us-central-2us-central-1eu-central-1ap-south-1us-west-2us-east-2eu-north-1ap-north-1us-west-1us-east-1*rcloudintsegorgmilcomgobbetnetintedugovturmusicasenasamutualcoopip6uriurnin-addre164homeirisgovdixdaemoncloudnssthwien*inexexkunden4accogvormymyspreadshop4lima2ixortsinfofuturecmsfuturehosting12hpprivfuturemailinglima-cityfunkfeuer123webseitednshomemelmyspreadshopcloudletswasantqldvicactnswtascatholicwasaqldvictasvpsidwasantozqldorgcomvicasnactnetedugovnswtasconfhrsncomairflowlambda-urltransfer-webappairflowtransfer-webapptransfer-webapptransfer-webapp-fipstransfer-webappeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1privatenotebookstudiolabelingnotebookstudionotebooknotebook-fipslabelingnotebookstudionotebook-fipsnotebookstudio-fipsnotebook-fipsnotebookstudionotebook-fipsnotebookstudioeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2experimentsus-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1onrepostsagemakercopporgmilcompronetintedugovbiznameinfoshoprsorgmilcomnetedugovbrendlyresolvenzauscotvstoreorgcomnetedugovbizinfoidacaicoittvorgmilcomschnetedugovinfocloudezproxyacmymyspreadshopkuleuvenwebhostingtransurl123websitecloudnsinterhostsolutionsddns5476103298edgfacbmlonihkjutwvqpsryxzbarsycoororgcomedumyftpno-iporxcloud-ipfor-somemmafanfor-morewebhopselfipjozidyndnscloudnsdscloudfor-thefor-betteractivetrailcoeconorestooteorgcomeconeteduassurmoneyafricaarchitectesrestaurantloisirstourismavocatsinfoagrounivcoorgcomnetedugovtvdeportesaludtksatorgmilcomwebgobnetinteducienciaboliviarevistacooperativaempresanombreindustriamusicapatriamedicinademocraciapoliticapuebloindigenaplurinacionalarteblogwikiinfoagrotransportenoticiasprofesionalacademiaeconomiaecologiamovimientotecnologianaturalsimplesitecepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesmscepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesms*biaamfmtcmptvfeirasampajampanatalbelemananiradiog12medindfndbmdtrdthepoaggfjdfdefinfenflegsegongengcngorgzlgslglogppgmillelqslcimcomnomadmjabimbbibbsbabcrectecsjcetcpscpvhudieticriapipsiecnbiorioecogeoteoodoproatoartfstmatvetdetbetnetcntnotfotgrueduajuespappreptmpemparqsrvadvdevgovntrturagrjorfarjusmusdesvixxyzcozfozslzbhzmaringasantamariacampinagrandegoianiasorocabafloripasaobernardocuritibaboavistarecifeaparecidasaogoncasalvadorcuiabamorenamacapalondrinacontagemsocialfortalmaceioleilaoosascoriobranconiteroi9guacutcheblogflogvlogwikitaxicoopmanauspalmascaxiasjoinvillebaruericampinassantoandreribeiraoriopretoweorgcomnetedugovv0windsurfshiptodaycloudsitecoaccoorgnetgovofmilcomgovmediatechzacoorgcomnetedugsjgovmydnspenfnlabnbmbgcbcqconcontnuyksknsmyspreadshopno-ipawdevboxbarsyonidatemfuinabusavinstanceseceuguukussryzespawncsxcloud-ipmyphotosfantasyleaguetwmailcleverappsscrappingccwucloudnsftpaccessgame-serverccgovobjectsrmalpgcust*svcalp1aeappenginermalpgmyspreadshop4lima2ixsquare7cloudscale123websitefirenet12hpflowgotdnslinkyard-cloudcloudnslima-citydnskingobjectstorageedaccogoorusorgcomnetinteduaéroportxn--aroport-byaassogouvcomilgobgovcloudnses-1eu-west-1us-east-1euvipit1eurarubait1s3lbwebsites3websiteru-spbru-mskelasticcsrunstnukukcaukusnl-ams-1fr-par-1fr-par-2functionsnodess3ddlwhmrdbfnck8sifrs3-websitecockpitscblmgdbdtwhkafkpubprivs3ddlwhmrdbk8sifrs3-websitecockpitscblmgdbdtwhkafks3ddlrdbk8sifrs3-websitecockpitscblmgdbdtwhkafkk8sscalebookpl-wawfr-parnl-amsbaremetalsmartlabelinginstancesdechk2kuleuvenlaravelvoorloperurownoxazapscwhstgrvaporobservablehqelementorantagonistreclaimjoteluluencowaydiademjelasticmatlabmagentositetrendhostingaxarnetperspectajenv-arubajelejoteravendbemergenttrafficplexconvexkeliwebserveboltbegetcdnstaticson-rancherprimetelonstackitunison-servicesdnshomelinkyardbarsyjelecloudnscocomnetgovmycn-northwest-1cn-north-1s3s3-accesspoints3-websites3s3-accesspointrdsdualstacks3-deprecatedemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspoints3s3-accesspointrdsdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicn-northwest-1cn-north-1cn-northwest-1ebcomputeelbcn-north-1airflowcn-northwest-1cn-north-1oncn-northwest-1cn-north-1amazonawssagemakeramazonwebservicesdirectasgdsdhehahljlnmhbacscahqhshhihnlnynsnmofjbjzjxjtjhkcqtwgsjssxnxjxgxxzgz網絡网络公司orgmilcomnetedugovxn--55qx5dcanva-appsxn--io0a7iquickconnectcanvasitekhsjxn--od0algmyqnapcloudsrvrlessclustersrealtimestorageleadpagescarrdcrdorgmilcomnomnetedugovhidnssupabaserdpareplmypiumsoxmitotaplpagesfirewalledreplitowodevwebview-assetsvfswebview-assetss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecateds3-websites3-object-lambdaexecute-apis3s3-accesspoints3-websites3-accesspoint-fipss3-fipss3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipss3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9vfss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1us-northeast-1ap-southeast-1me-south-1af-south-1ap-south-1ap-southeast-7us-west-2eu-west-2ap-east-2us-east-2ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ap-southeast-6ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1mrapaccesspoints3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3eu-west-3ap-south-2eu-south-2computes3-ap-northeast-2elbrdss3-ap-east-1s3-sa-east-1s3-us-gov-west-1s3-eu-central-1s3-ca-central-1eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3s3-website-us-west-2s3-website-eu-west-1s3-external-1eu-central-1me-central-1ca-central-1il-central-1s3-us-west-1s3-eu-west-1s3-website-sa-east-1s3-website-ap-southeast-2ap-northeast-1ap-southeast-1s3-us-west-2s3-eu-west-2me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2s3-website-ap-southeast-1s3-1s3-globals3-ap-northeast-3eu-north-1airflowap-southeast-2s3-us-gov-east-1s3-fips-us-gov-east-1s3-me-south-1s3-ap-south-1ap-northeast-2s3-website-us-west-1ap-southeast-5s3-eu-north-1s3-ap-southeast-1s3-website-us-gov-west-1compute-1s3-eu-west-3us-gov-west-1s3-website-ap-northeast-1us-gov-east-1s3-fips-us-gov-west-1s3-website-us-east-1s3-ap-southeast-2ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3-us-east-2s3-ap-northeast-1authauthauth-fipsauth-fipseu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1rservicesbuilderstg-builderdev-builder*ociocpocsdemoinstanceeu-west-3eu-south-2ap-southeast-3ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1previeweu-4us-4us-1eu-1us-2eu-2us-3eu-3appspaasrag-cloudrag-cloud-chjcloudjcloud-ver-jpcdemonodebalancermembersipeuxvsoncillaocelotonzayalilynxsphinxfentigercustomercaracalo365cloudstaticxendevapp001testcode-builder-stgplatformapimediasiteprojedrydpagesjsu2u2-localx0desazacncoitrueu4uhkukgrbrushatenadiarymyspreadshopfrom-flfrom-wvwebspace-hosttheworkpchatenablogservesarcasmapplinzisakuratanwixsiteappchizigiizeis-into-carsdnsiskinkyadobeaemcloudis-a-therapistpgfogmyvncdojinis-an-actress1kappfldrvkozowqa2jpnmexprgmrfirewall-gatewaydynnscafjsfbsbxooguyxnbayfrom-gawoltlab-demois-a-anarchistwiardwebteaches-yogadattowebtb-hostinglive-websiteservegamegotpantheonfrom-nhsubsc-payfrom-ohvipsinaappfrom-cadyndns-officehomelinuxfrom-mahercules-appservebbsstreakusercontentfrom-okfrom-wyfastly-terrariumis-a-llamaqualyhqportalserveexchangeon-vaporvivenushopciscofreakgrayjayleaguesmetaaiusercontentfrom-iais-a-libertariansaves-the-whalestaveusercontentyolasiteoperaunitepoint2thisis-a-catererlinodeusercontentfrom-vagithubusercontentsells-for-lesshosteurcanva-appsplaystation-cloudddnsfreefrom-pafrom-prfrom-waddnskingoutsystemscloudhotelwithflightmydattois-a-nascarfanmydbserverminiserverdamnserverservehumouris-a-playerfrom-nvfrom-nmemergentagentgentappsamplifyappfrom-kyis-an-accountantnfshostserveircfrom-akpythonanywherestackhero-networkpostman-echolikescandydyndns-mailobservableusercontentserveftpfreeboxosfrom-utcdn77-storageamazonawsneat-urldyndns-serverlinodeis-a-teacherfrom-vtgleezemythic-beastsus1-pleniteu1-plenitla1-plenitpaywhirlservecounterstrikejdevcloudhealth-carereformis-into-animegoogleapisis-a-painterafricaisa-hockeynutatmetais-an-actora2hostedis-a-democratdatadetectest-le-patrondigitaloceanspacesis-a-designeris-a-hunterlinodeobjectstemp-dnsissmarterthanyoufrom-arsimplesiteevennodetownnews-stagingis-a-liberalgooglecodejelasticservemp3stdlibqualyhqpartnerdyndns-free1cooldnsest-a-la-masiondrayddnsdynuddnsfrom-orfrom-miis-a-bloggerfrom-himydobisscanvacodeis-an-engineerest-a-la-maisonupsunappdevinappswafflecellmyasustorwpenginepoweredfrom-ctservep2psame-appmyshopblocksthingdustdatalikes-piediscordsezis-with-thebanddev-myqnapcloudlpusercontentis-leetshopitsite3utilitiesis-a-personaltrainersinaappladeskis-a-cheflogoipselfipbase44-sandboxnospamproxyalibabacloudcsmesswithdnsauthgearappsiamallamawithgooglelutrausercontentmochausercontentframercanvasmytabitdyndns-homew-credentialless-staticblitzcpserverdiscordsaysis-a-nurseappspotatlassian-isolated-3premotewdfrom-mtwixstudiocode0emm180rmyactivedirectoryawsappsmytuleapdnsabrpolyspaceqbuserrenderbuiltwithdarkboutirgotdnsabrdnsdopaascanva-hosted-embedawsglobalacceleratorhomesecuritypcmyiphostditchyouripclever-clouddyndns-ipon-aptibleis-a-musiciansecuritytacticsappspaceusercontenthomeunixstrapiappsame-previewcf-ipfsmycloudnaselasticbeanstalkis-certifieddontexistkasserverik-serverdrive-platformatlassian-3pfirebaseappherokuappawsapprunnerbarsycenteris-a-cubicle-slaveservehttpmyshopifyis-a-guruquicksytessiiitesorsitesmagicpatternsappis-a-cpameteorappfrom-wiis-a-rockstarbumbleshrimpdattolocalreadthedocs-hostedfrom-rifamilydsdyndns-picsplesknsbplaceddnsaliasdynaliasdyndns-remotedoomdnsip-ddnsblogdnsis-a-doctorroutingthecloudamazoncognitobarsyonlinedsmynasddnsgurucloudflare-ipfsdeus-canvasfrom-idsmushcdnpagespeedmobilizerdyndns-at-homeunusualpersonhosted-by-previderis-a-republicandyn-o-saurstreamlitappworkisboringonthewificprapidqualifioappis-uberleetis-slickgetmyipwpdevcloudtypeformdyndns-at-workgentlentapismynascloudw-corp-staticblitzfrom-ingeekgalaxyservebeerfrom-mdonrenderspace-to-rentaivencloudappspacehostedonfabricawafaicloudcodespotblogspotatlassian-3p-us-gov-modfrom-ndfrom-msis-a-techieis-a-studentcustomer-ociis-a-photographerdurumisfrom-ksmassivegriddyndns-wikiis-an-entertaineris-a-hard-workermysecuritycamerafrom-mnrackmazedyndns-blogis-a-bulls-fanwritesthisblogfreemyipsimple-urlfrom-sdreservdauthgear-stagingest-mon-blogueuris-into-gamesrice-labsxtooldevicesakurawebis-an-anarchistoraclecloudappsdyndns-worksells-for-urhcloudfrom-dcfastvps-serverwpmucdnis-a-geekscrysecfrom-txis-into-cartoonsmodelscapetrycloudflarelocaltonetstreak-linkbalena-devicesfrom-njforgeblocksfreebox-oswebadorsitefrom-ncdoesntexisthobby-sitestreaklinkshomesecuritymacownprovidertuleap-partnersdattorelaywphostedmailalpha-myqnapcloudservequakeis-a-socialistservehalflifepivohostingdynuhostingquipelementsw-staticblitzdyndns-webfrom-deproject-studyaliases121is-not-certifiedhercules-devis-a-financialadvisorservepicsis-a-greenloseyouripfrom-ilwithyoutubemwcloudnonprodwiredbladehostingdnsdojofrom-tnpixolinomyqnapcloudis-an-artisthostedpiis-a-landscaperauiusercontentoaiusercontenton-forgeis-a-conservativedreamhostersnet-freaksapps-1and1is-goneencoreapifastly-edgefrom-nesalesforcefrom-scdeployagentoraclegovcloudappsfrom-alis-a-lawyercechirevultrobjectsstufftoreadisa-geekddnsgeeklovableprojecttry-snowplowfrom-moblogsyteis-a-bookkeepernogmyforumravendbmyboxdeelementoredsaacficogoorinforgcomgobnatneteduidstoreorgcomnetintedudevnomepublorgcomneteduathgovtestscalculatorspaynowinfoquizzesresearchedcloudnsfunnelsassessmentsjscaleforcetmacltdorgmilcompronetgovbizpresseklogesrsccloudcustomfltusrcloude4corealmgovmunicontentproxy9metacentrumdyndyndyndnsdynpagespages-researchitionoccustomercomymyspreadshopipv64diskussionsbereich4limacomrub2ixfirewall-gatewayddnssspdnsbarsykeymachinesquare7myhome-serverspeedpartnercommunity-proschuldockxenonconnectgünstigliefernbwcloud-os-instancedyndnssecmy-routerxn--gnstigliefern-wobin-butterl-o-g-i-nisteingeekin-dslin-berlinin-brbfuettertdasnetzleitungsenin-vpnlcube-serverdyn-ip24logoipdyn-berlinruhr-uni-bochum12hpgoipsrvdnsfruskygit-repossvn-reposinternet-dnsgünstigbestellenhome-webserverxn--gnstigbestellen-zvbbplacedheimdnscosidnswebspaceconfiglima-citydyndns1istmeinvirtualuserschulplattformmy-gatewayddnsseclebtimnetztest-iservmein-iservvirtual-userhome64iservschuletaifun-dnstraeumtgeradeschulserverdynamisches-dns123webseitednshomehs-heilbronndnsupdaterbssgraphicdwadpdwdaepeweaawapaafpfwfabwbpbacwcpcciwebuserapiobjectsidsiskospockkimodorikerbonesteamsparisjanewaypicardglobaltarpitreedpikekiraworfsulukirkarchertuckerhackercanarywesleystagingprereleaset3r2lpbravepanelngrokiservstglclcrmerpflypagesbarsyvivenushoplocalcertlocalplayerbearbloggatewaydeno-stagingis-not-ais-a-goodbotdashvercelmocha-sandboxplatter-appreplitgithubpreviewworkersinbrowserevervaultdetais-ahrsndenoxmitmodxmyaddrstorageapipayloadgrebedocruncontainersstgstagelclstageloginlineis-a-fullstackleapcellngrok-freeis-coolstoragewebharemediatechlibp2pdiscourseimaginecomyspreadshopstoreregbiz123hjemmesidefirmcoorgcomnetedugovsldorgmilcomwebgobartnetedugovtmorgpolcomsocartnetedugovassoagrondiscoodontk12medcuegyecpaabgengorgmilgalsaltulcomadmesmgobpubdocmonfindgnriouioproartlatvetnetfotedulojgovntrturibrbarxxxofficialbasechefprofmktgpsictechinfoarqtcontdentrrpppsiqgit-pagesritmedfieorgcomlibprieduaipgovriikmeactvsportorgmilcomscieunnetedugovnameinfopintouchtawktotawkmyspreadshoporgcomnomgobedu123miwebcomputeorgcomnetedugovbiznameinfocognito-idpeusc-de-east-1onjelasticnxaspdnsbarsydirectwpdeuxfleurstransurldogadoprvwcloudnsamazonwebservicesdnshomeuserpartycokoobinmkmstorjfidemopaasdymyspreadshopalandkapsiikixn--hkkinen-5wacloudplatformdatacenterhäkkinen123kotisivuidacorgmilcompronetedugovbiznameinforadioorgcomneteduuserexperts-comptablestmmyspreadshopgretaprdcomnomynhccifbxoshuissier-justicenotairesaeroportfreeboxoson-webavocatassoportgouvkdnschirurgiens-dentistes-en-franceavouesfbx-os123sitewebveterinairechirurgiens-dentistespharmacienchambagrimedecinfreebox-osdediboxgoupilemszicpyicpvicppleysheezypagesedugovcnpyorgcomcybllcpvtnetedugovtnxonlineschooldaemond6atcopanelorgnetplybotdashstackitkaasorgmilcomnetedugovbizmodltdorgcomedugovcoorgcomneteduappwriteacorgcomnetedugovcloudtranslateusercontentorgcomnetedumobiassoorgcomnetedugovbarsysimplesitediscourseindorgmilcomgobneteduorgcomwebnetedugovguaminfonxhra教育敎育網絡网絡组織組織网络網络组织組织公司政府個人个人箇人ltdorgcomincneteduidvgovxn--uc0ay4axn--55qx5dxn--mk0axixn--io0a7ixn--uc0atvxn--zf0avxxn--lcvr32dxn--od0algxn--wcvs22dxn--gmqw5axn--od0aq3bxn--mxtq1mxn--ciqpnxn--tn0agxn--gmq050iorgmilcomgobneteduiservwp2tempurlmircloudfreesitewpmudevmyfastgadgetcloudaccessjelehalfboltfastvpsemergenteasypanelopencraftizcombrendlynamefromrtpersoadultmedorgpolrelcomproartnetedufirminfoassoshopcoopgouvtmcomediahotelforumvideosportorgsexagrargameslakaseroticaerotikatozsdereklamcasino2000filmsuliinfoboltshopprivnewsszexcityutazasjogaszkonyveloingatlaneacaicogoormyᬩᬮᬶmilwebschnetkopbizzonedesaponpesxn--9tfkymyspreadshopgovmytabittabitorderravpageaccok12idforgnetgovmuniltdplcaccotttvorgcomnetmeca6g5gpgamubacaicniocoukuptverdruscsdelhiindorgmilcomwebnicfingenpronetintedugovresbizbiharbarsyinternetbusinessschooltravelsupabasealumnigujaratfirminfoaeropostbankcoopindevscloudnsno-ipbarsybarrell-of-knowledgebarrel-of-knowledgensupdategroks-thisdnsupdatefor-ourknowsitalldvrcammittwalddynamic-dnsv-infowebhopselfipdyndnshere-for-moreilovecollegemayfirstforumzcloudnsmittwaldservertypo3servergroks-theeusekd1uk0cdndyndnsidrawsainaueuapjpusstagemocksysdevicesclientcustreservdcustdevdisrecprodtestingcobeebyteutwenteboxfusebravepstmndedynngrokorgmilcomnomhzcnetedugovqcxqzzbarsythingdustmo-siemensrb-hostingprotonetfh-muenstergitbookbluebitecloudbeesusercontentnodeartkiloappsforgerockdarklangresinstagingapigeebubbleb-datascryptedhypernodedappnodepantheonsitegitlabgithubkeeneticvirtualservercleverappshostyhostingon-rioedugitticketstelebiton-acornwixstudioon-k3sicp0icp12038jeleqotobigvlairbubbleappsmyaddrstolosmyrdbxwebflowdrive-platformbeagleboardhasura-applolipopdefinimavaporcloudmusicianwebflowtestazurecontainerresindevicereadthedocsloginlineeditorxmoonscalesandcatsbasicserverwebthingsbrowsersafetymarkbeebyteappbitbucketidaccovistablogorgschnetgovxn--mgba3a4f16axn--mgba3a4fraarvanedgeايرانایرانjclaspeziapdudcefegelemeperetevebacanatavaparasabgagfgogrgpgalclblimfmrmcbmbvbfclcmcvcrcpcchlimifibicivipirisimncnbnanenrnpntnnolomobocoaogorosopotoptvtatctbtmtltotpulunutpspapaqsvpvvvtvavvrtrsrprgrfrcrbrarorkrvstsssbscsmsispzczbzbozen-suedtirolmyspreadshopxn--bulsan-sdtirol-nsbxn--valledaoste-ebbtrentinoaltoadigetrentin-sued-tirolxn--forlcesena-c8axn--forl-cesena-fcbxn--bozen-sdtirol-2obtriestetrentinsuedtiroltrentino-s-tirollecceudineaostesienaparmaluccapaviagenoapaduaaostamonzaabruzzoternirietiturinmilanbozenlaziofermoleccocuneonuoropratola-speziavdataaligfvgpugmolcalcamlomumbsicpmnvenvaoedugovabrsarmaremrbastoslazibxosfirenzetrentinosüdtirolval-d-aostavalle-aostamessinacremonaravennatoscanatrentin-suedtirolbolognacalabriaurbinopesarofriuli-v-giuliaogliastraxn--valle-aoste-ebblaquilaandriatranibarlettasyncloudtrentinosudtirolxn--valle-d-aoste-ehbaostavalleyvalled-aostatrentino-alto-adigevallee-d-aostexn--balsan-sdtirol-nsbpistoiasicilialucaniacataniaiserniaperugiabresciaveneziagorizialiguriaimperiabulsan-suedtirolbalsan-suedtirolbarlettatraniandriaxn--trentino-sdtirol-szbforlì-cesenatuscanyvallée-d-aostemantovavallée-aostecasertapiemontevalleaostaval-daostafriulivgiuliatrevisoforli-cesenavalléedaosteferrarapescaravald-aostatrentino-altoadigefriuli-vegiuliavallee-aostecarboniaiglesiastarantomediocampidanovalleedaostetrentinosud-tirolcampobassotrentinsüd-tiroltrentinosüd-tirolmonzabrianzatrentino-südtirolxn--trentino-sd-tirol-c3bpotenzacosenzavicenzaemiliaromagnavenicefrosinonemarchepordenonetrentinosued-tirolvaresemolisevalléeaostefriuli-veneziagiuliabasilicatalatinaanconasavonaveronamodenaaquilabiellabolzano-altoadigepugliafoggiaumbriatrentino-stirolgenovapadovamateranovararagusapiacenzatrentinostirolvalleeaostetempio-olbiatrentinsudtirolmassa-carrarafriuliveneziagiuliatrentinosuedtirolandria-barletta-tranitrapanixn--cesenaforl-i8amaceratacaltanissettaascoli-picenobrindisicarraramassacagliaririmininapolivibo-valentiachietibulsan-sudtirolbalsan-sudtiroltrentino-a-adigebulsanbalsaniglesiascarboniamilanotorinoteramodell-ogliastraarezzotrentinoalto-adigerovigotrentovenetoiglesias-carboniatrentino-sud-tirolaltoadigereggio-emiliareggio-calabriasardegnatranibarlettaandriapiedmontxn--sdtirol-n2amedio-campidanotrentino-süd-tirolfriuli-vgiuliafriuli-ve-giuliaromeennaromapisa32-b16-b64-blodiastibarineencomonaplesforlicesenailiadboxosalessandriasicilytrani-barletta-andriaxn--trentin-sdtirol-7vbpesarourbinotrentinsued-tirolcesena-forliforlìcesenaemilia-romagnamonzaebrianzaxn--trentinsdtirol-nsbtrentinos-tiroltrentinsüdtirolvalledaostaolbia-tempiocampidanomediovibovalentiasassarivalle-daostalombardyfriulivegiuliareggioemiliamonzaedellabrianzaalto-adigevercellitrentin-sudtiroltraniandriabarlettatrentino-sudtirolascolipicenobozen-südtirolfriulive-giuliaflorencevaldaostaxn--cesena-forl-mcbcarbonia-iglesiasaosta-valleycarrara-massadellogliastratrentinoa-adigexn--valleaoste-e7apesaro-urbinoxn--trentinosdtirol-7vbxn--trentin-sd-tirol-rzbxn--trentinsd-tirol-6vbtrani-andria-barlettatrentin-süd-tirolxn--trentinosd-tirol-rzbgrossetomonza-e-della-brianzasüdtirolreggiocalabriatrentinoaadigetrentin-südtirolfriuliv-giuliaverbaniacampaniatrentino-aadigefriulivenezia-giuliasardiniaandriabarlettatranibarletta-trani-andriacatanzarooristanourbino-pesarocesena-forlìvalle-d-aostacampidano-medio123homepagesiracusatempioolbiasuedtirollombardiaavellinocesenaforlìtrentinofriuli-venezia-giuliabozen-sudtirolandria-trani-barlettabulsan-südtirolbalsan-südtirolmonza-brianzabolzanotrentino-sued-tirolbellunosalernolivornocrotonesondriodnshometrentinsud-tirolmassacarraratrentin-sud-tiroltrentino-suedtirolviterbobergamocesenaforliolbiatempiopalermobeneventoagrigentoofcoorgnetfmaitvphdengorgmilcomschnetedugovperagrikanieasukehandachitatokaiaisaikonanoharuamaobuhigashiuraowariasahiinuyamatobishimaiwakurashitarainazawatoyonegamagorimihamatoyotataharakariyayatomioguchikomakimiyoshinishiotokonamekiyosuchiryutoyohashiokazakiisshikikasugaikotakiratoeianjotogofusosetohazutsushimashinshirotakahamanisshinshikatsuhekinantoyokawaichinomiyatoyoakeodateogataakitaikawakyowahonjoogayurihonjonoshirokamiokakatagamimitanegojomeyokotekosakadaisenkazunonikahohonjyomoriyoshimisatohappoukamikoanihachirogatahigashinarusesembokufujisatokitaakitaitayanagiowanitakkomutsutsurutahirosakigonoheoirasetowadamisawanohejiaomorishingohiranairokunohehashikamitsugarushichinohehachinohenakadomarisannohekuroishisakaeisumiasahiotakiinzaiabikomatsudoyachiyomutsuzawakujukuriomigawakashiwatoganemihamanaritasakuranagaramobarahanamigawachoshishiroichoseikozakishisuikatorimidorichonankyonanfuttsuonjukufunabashinagareyamanodasosatakochuotohnoshourayasukimitsuyokaichibayotsukaidosodegauratateyamakamagayayokoshibahikariyachimatakatsuuratomisatokisarazukamogawaichikawanarashinoichinomiyashimofusaminamibososhirakoichiharaoamishirasatoikatahonaiainansaijoseiyoiyoozuuwajimaniihamanamikatamasakiuchikokihokutobetoonshikokuchuomatsuyamaimabarikamijimakumakogenyawatahamamatsunosabaeikedaobamasakaifukuiohionotsurugamihamawakasaminamiechizeneiheijikatsuyamatakahamaechizensoedaukihaomutaokawanishiogoribuzenonojosueumiokiotochikugosasagurisaigawamizumakishinyoshitomikurumekurateyamadakasuganakamamiyamanogatatakatahakataiizukakawaratagawakasuyaashiyainatsukimunakataminamitsuikishonaikurogifukuchikeisenhigashimiyakoshinguyukuhashiokagakiyamekogaongausuikahotohochuotoyotsumiyawakadazaifuhisayamatachiaraiyanagawanakagawahirokawachikujochikushinochikuhochikuzennamieotamaokumashowateneiiwakikoorinangoononishigoshimogoomotegomishimafukushimaasakawakagamiishishirakawaiitatefutabahiratayugawahanawakitakatakawamatakunimiyabukibandaihigashihironoyamatomiharuyamatsuriaizubangedatesomaaizuwakamatsuyanaizuaizumisatonishiaizuizumizakikitashiobarataishinkaneyamakoriyamainawashirotanagurafurudonosamegawasukagawaishikawatamakawaikedaogakitaruiginanenahashimahichisonakatsugawaibigawashirakawamizunamiminokamomitakekawauesekigaharatomikasakahogikitagatayamagatatajimianpachimotosuyaotsukakamigaharahidakanisekitokigujominogodoyorogifukasamatsutakayamawanouchihigashishirakawakasaharashimonitatsumagoichiyodakannakanrashowameiwakiryuotaoratomiokafujiokaitakuranaganoharahigashiagatsumatakasakishibukawaminakamikatashinatsukiyonokawabanumataannakaoizumimidorishintoisesakiuenoyoshiokakusatsutakayamanakanojonanmokutamamuratatebayashimaebashiotakekaitadaiwahongofuchukuietajimashobaramiharahatsukaichihigashihiroshimamiyoshikumanokurenakasakaseraseranishiasaminamifukuyamashinichionomichiosakikamijimajinsekikogentakeharaotobenanaeikedatohmaozoraobiraabirakyowaeniwataikibibaisharirebunerimohiroooketootarupippunishiokoppechitosefurubirahakodateshiranukakitahiroshimakushiroobihironanporoiwamizawaniikappukunneppufukushimanakasatsunaitoyourakuromatsunaiakabirakamisunagawashibechaurakawakamifuranonakatombetsuasahikawashimokawakayabeokoppebiratoriabashirisaromaatsumanumatahidakabifukamukawamikasahorokanaitoyotomisarufutsuhigashikawaishikarikitamiyoichiesashiiwanaitomariminamifuranoakkeshifuranotoyakoyakumootoineppushikaoishiraoinemuronayorohaboroashorobihororishirifujiutashinaihokutotakasuebetsuurausuassabukikonaishimamakinaiedatetoyabieinikiesanuryuoumuteshikagarikubetsuashibetsukimobetsuaibetsutobetsusobetsuembetsushimizuchippubetsurishirihokuryuhoronobeshintokutsubetsushibetsuhonbetsumombetsutsukigatakuriyamakoshimizushiriuchikutchanmurorannoboribetsukamishihorowassamushinshinotsukembuchiwakkanaikamoenaikiyosatotakinoueshikabesunagawafukagawanakagawatakikawakamikawahigashikagurahamatonbetsumatsumaemoseushirankoshishakotanimakanemashikeotofuketomakomaisandatambaitamiawajikasaiasagoshisoonoakoyashirotoyookaminamiawajiinagawafukusakitakasagokamigorikasugaharimayokawaashiyahimejiakashitaishiaogakisannantakinosumototakarazukanishinomiyashingugoshikinishiwakiyokatakaaioimikisayoyabukawanishiamagasakisasayamashinonsenkakogawaichikawakamikawatatsunotsukubaiwamaogawaasahisakaitokaioaraiitakobandodaigosuifuinaamikasumigaurakashimaomitamayachiyoshimodatetomobetoridehitachinakainashikisakuragawakasamayawaramoriyahitachiomiyanamegatayamagatahitachikamisuushikutakahagiibarakitonekoganakasowayukimihojosomitoryugasakishimotsumafujishirotsuchiurachikuseihitachiotashirosatotamatsukuriuchiharashikahakuinanaotsubatawajimakahokukawakitatsurugikaganominotosuzuuchinadakomatsuanamizunakanotohakusannonoichikanazawaiwateshiwafudaikawaimoriokaofunatohanamakikuzumakikitakamininohekunoheyamadayahabasumitaichinosekitanohatahiraizumirikuzentakatajobojiotsuchihironomiyakoiwaizumikarumaiichinohenodakujitonooshushizukuishifujisawamizusawakamaishikanegasakimannoutazukotohiraayagawazentsujihigashikagawauchinomikanonjisanukimarugamemitoyotakamatsutadotsunaoshimatonoshoakuneamamiizumihiokiyusuikinkoisasookouyamanakatanekagoshimakanoyaisenkawanabeminamitanemakurazakitarumizunishinoomotematsumotosatsumasendaioimatsudaayaseebinamiurazushinakaiodawaraiseharasagamiharahakoneaikawakaiseiatsugitsukuihadanoyamatoyamakitazamaoisochigasakininomiyayokosukakamakuraminamiashigarafujisawasamukawakiyokawahiratsukayugawaraokawaumajikochitsunootoyoakiinonishitosayasudahidakamiharasakawaniyodogawahigashitsunokagamigeiseisusakiotsukinaharisukumomurototosakamiochitoyotosashimizumotoyamanankokunakamurakitagawayusuharaogunichoyoukiasoutoozugyokutoamakusamifunetakamoriyamagaminamataminamiogunikikuchisumotoyamatonagasumashikiaraokumamotokamiamakusanishiharayatsushiroayabeseikasakyoideineujinakagyokameokakyotangokyotanabekyotambaminamiyamashiroyamashinatanabeyawatawazukaminaminantanmiyazuhigashiyamafukuchiyamakitamukokamojoyokizumaizuruujitawaraoyamazakinagaokakyokumiyamakawagoeinabeshimameiwaasahitaikiudonoisetsukisosakikuwanamihamamiyamasuzukatamakimisuginabarikumanokomonominamiisewataraitobakiwatakikihotadomatsusakayokkaichikameyamaureshinoishinomakishichikashukuohirataiwaosakizaohigashimatsushimashikamaiwanumashibataogawaraonagawakawasakiseminemarumoriminamisanrikukakudamuratawakuyatomiyanatoriwataritagajomisatotomekamirifushiroishimatsushimayamamotoshiogamafurukawahyugaebinotsunosaitoayakushimanobeokakitauramiyazakitakazakigokaseshiibamimatashintomikunitomikitakatakobayashikawaminamitakaharukijotakanabemiyakonojonishimeranichinankitagawakadogawamorotsukakisofukushimaminamimakisakaeobuseikedaogawamiasaokayaasahiotakiotarichinoinaomichikumakomaganechikuhokukaruizawayasuokaooshikaikusakaminamiaikitogakushimatsukawakawakamitateshinatakamorikitaaikishiojirimiyadahakubaiizunaiijimaiiyamamiyotasuzakayasakatoguraookuwanagawaminowahirayayamagataminamiminowafujimiomachisakakitakaginaganonakanosakuhokomoronagisoshinanomachiwadauedaiidaharasuwatomiachiaokianankisosakunozawaonsenagematsutakayamashimosuwamatsumotoyamanouchinakagawamochizukiazuminotatsunoobamaomuraseihiunzenosetofutsuikichijiwanagasakiisahayahasamisaikaikawatanasasebohiradokuchinotsugototogitsutsushimashimabarashinkamigotomatsuurayamazoekashibaikomakawaitenrioyodosangokoryoudaojiikarugayamatokoriyamatenkawakatsuragikurotakikawakamimiyakemitsuetakatorikamikitayamayamatotakadahegurishinjokanmakisakuraitawaramotogoseoudanarasoniandokawanishishimoichihigashiyoshinokashiharashimokitayamanosegawayoshinomintsivorytopazsakuragehirnsumomoaseinetopalmail-boxmokurenyoitamuikaojiyagosensanjoaganomyokoseiroagaomishibataniigatanagaokamurakamiuonumayuzawakariwatagamitainaitsunanminamiuonumatochioyahikojoetsuseiroukamosadoizumozakitokamachiitoigawasekikawakashiwazakitsubamemitsukekokonoesaikiusukibeppuusahimeshimakunisakihasamataketatsukumihitaoitahijikusuyufukujukamitsuebungoonobungotakadaibaraniimibizentsuyamaokayamakasaokahayashimayakagemaniwaakaiwamisakishinjotamanotakahashikibichuowakesojanagishookumenannishiawakurakurashikiasakuchisetouchikagaminosatoshotomigusukunakagusukuyaeseizenaurumaiheyaaguniogiminanjokinminamidaitokitanakagusukuyonaguniokinawaishigakikunigamiurasoekadenataramahiraraginozataketomishimojizamamitonakiitomanhigashimotobuyonabarugushikamionnanahanagohaebarukumejimakitadaitonakijinnishiharayomitanginowantokashikiishikawaikedasuitaminohizuminishisakaikananabenodaitoosakasayamayaokishiwadatadaokakaizukatondabayashichihayaakasakakumatorikadomasayamahigashiosakashijonawatehirakatataishimisakitajirihannansennankatanotoyonominatosettsuhigashiyodogawaibarakinosekitachuohigashisumiyoshifujiiderakashiwaraizumiotsutoyonakamatsubaramoriguchiizumisanoshimamototakatsukineyagawahabikinotakaishikawachinaganoyoshinogarikamiminearitaouchiimarihizenogikashimaariakekiyamafukudomikitagatakitahataomachigenkaikanzakinishiaritakyuragisagataratosutakushiroishikaratsuhamatamakouhokukawagoeyoshidasatteogoseirumaasakaurawaogawaniizaomiyayoriiotakishikihonjooganohannohanyuinasaitamaokegawaarakawayoshikawayokozehasudasayamahidakafukayachichibuiwatsukiryokamiyoshimikamiizumifujimiwarabiranzanmiyoshiminanoyashiosakadosugitomisatohigashichichibutodasokakukiyonokazoshiraokakasukabekounosukawajimatsurugashimamiyashirokitamotohatoyamamoroyamahatogayakumagayakawaguchinagatorokamisatomatsubushinamegawatokigawakamikawafujiminohigashimatsuyamakoshigayatokorozawas3isk01isk02ryuohkoseikonanaishorittotakashimamaibarahikonetorahimenishiazaikokagamokotoyasuotsukusatsunagahamamoriyamatoyosatotakatsukinotogawaomihachimanhigashiomiakagiunnanizumogotsuamayatsukakakinokimatsuehamadamasudahikawahikimiokuizumoyasugiyakumomisatotamayuohdahigashiizumookinoshimanishinoshimatsuwanoshimaneshimadafujiedayoshidashimodagotembaiwataatamikosaiyaizuitoizumishimahaibaramakinoharaomaezakikawanehonkannamisusonohigashiizufukuroinumazukawazufujiaraishizuokahamamatsushimizuizunokunimatsuzakimorimachiminamiizunishiizukikugawakakegawafujikawafujinomiyaujiietsugaoyamayaitaohiranikkoashikagakuroisokanumasakurashioyakarasuyamamotegiichikaikaminokawatochigihagamokanogisanobatonasumibunasushiobaranishikatautsunomiyaiwafunemashikoshimotsukeohtawaratakanezawaitanokomatsushimatokushimaichibaminamiaizumiwajikikainanmiyoshinarutomimamugiananmatsushigesanagochishishikuinakagawamachidachiyodakomaefussainagitaitochofufuchuomeotahigashiyamatotoshimaokutamaaogashimakodairaedogawaarakawahachiojishinagawatachikawashibuyasuginamihinodekiyosesumidaoshimanerimamitakahamuraadachinakanomizuhobunkyomegurominatokoganeihigashikurumekokubunjihigashimurayamamusashimurayamatamakitahinochuokotokatsushikakouzushimaogasawaraakishimakunitachishinjukusetagayamusashinohachijoitabashiakirunohinoharachizunanbukotouramisasawakasayonagokogehinoyazutottorinichinansakaiminatokawaharaoyabetairainamiasahinantoimizufuchutakaokakurobeyamadajohanatoyamatonaminyuzenfunahashinakaniikawanamerikawaunazukitogahimiuozufukumitsutateyamakamiichiiwadearidayuasainamitaijikatsuragiaridagawatanabemihamahidakakainankiminomisatoshingushirahamakamitondayurakozakoyagobokitayamawakayamakudoyamahashimotokushimotokozagawahirogawakinokawanachikatsuurarsuseroeoishidasagaeoguniasahinagaitendonanyoobanazawanishikawasakataohkuratozawamikawamamurogawayamagatafunagatatakahatashonaishinjokahokuiideyuzakawanishitsuruokakaminoyamayamanobeshiratakamurayamanakayamakaneyamahigashineyonezawasakegawamitouubeyuuabushimonosekitabuseoshimatoyotaiwakunihikarishunannagatohagihofukudamatsutokuyamashowadoshitsurunanbukoshukaiminami-alpsnirasakikosugeotsukioshinohokutominobuyamanashifuefukichuokofuichikawamisatoyamanakakonakamichitabayamanishikatsuranarusawafujikawahayakawafujiyoshidafujikawaguchikouenohara長野京都岐阜大阪三重群馬千葉滋賀佐賀奈良adednelgaccogogror秋田愛知高知埼玉沖縄栃木熊本岩手青森山梨新潟島根鳥取長崎香川宮城石川大分宮崎茨城山口兵庫山形徳島広島福島福岡岡山富山静岡愛媛福井東京xn--4it168dhatenadiaryxn--vgu402ckawaiishophatenablogcocottenamaste北海道penneehimeiwateversestabachibashigagonnagunmapermahaccaakitaosakauh-ohblushkochiaichifukuikuroncapooitigohyogotokyokyotopunyuthickcheap0t00g00j0mie2-ddaapyawjg0amfemsubxiiboomoobutchueekpgwrgrherskrboyrdyupperunderflierchipsmydnsheavyangryhippygirlyrulez神奈川鹿児島和歌山bambinaxn--nit225kokayamasaitamaxn--k7yn95exn--1lqs03nsapporoparasitelolipopmcxn--efvn9sniigatafukuokatokushimafukushimahiroshimakagoshimafakefurokinawaxn--8pvr4ucoolblogxn--0trq7p7nnkawasakinagasakimiyazakichilloutxn--8ltr62kxn--klty5xpeeweezombiecutegirlxn--rny31hxn--uuwu58axn--ntso0iqx3axn--djrs72d6uytoyamanikitanyantakagawamimozanagoyaboyfriendxn--2m4a15egreaterchowderegoismyamagatafashionstorexn--elqq16hxn--pssu33lsendaimiyagixn--rht27zpecoriaomorisaloonwatsonvivianxn--djty4knobushipigboatnaganopinokoxn--f6qx53asadistvelvetsecretxn--5js045dchicappayamanashiibarakidigickgirlfriendxn--1lqs71dmongolianxn--c3s14mxn--qqqt11mtochigixn--5rtq34kparallelo0o0mondkobesagabonadecaoitanarafoolkilldecimainhiholomosblokilociaoundopupugifutankcrapflopnooroopsmodsholyjeezstripperpepperbittershizuokaxn--rht3dkitakyushureadymadeicurusversusmatrixxn--rht61ehungryfloppygloomycrankyhandcraftedlittlestarxn--klt787dxn--kltx9awhitesnowsunnydaytottorilovepoptheshopbuyshopxn--5rtp49cxn--d5qv7z876cwebaccelxn--kbrq7oxn--4pvxsxn--1ctwolovesickkumamotocatfoodxn--tor131oyokohamawakayamatonkotsuxn--ehqz56nxn--uist22hxn--6btw5axn--kltp7dyamaguchifrenchkisspussycatxn--4it797kxn--uisz3gbabybluexn--zbx025dnetgamersxn--7t0a264ckanagawaxn--6orx2rishikawaxn--ntsq17ghalfmoonschoolbusjellybeanxn--mkru45iusercontentlolitapunkxn--32vp30hsakurastoragehokkaidoshimanecandypopbabymilksupersaleweblikeraindropbackdropwebsozaikikirarahateblodaynightmeneacsccogoormobiinfoaeusxxorgmilcomnetedugovorgcomnetedugovbizinfotmprdorgmilcomnomedugovassnotairespresseassocoopgouvveterinairemedecinpharmaciensorgnetedugovtraorgcomedurepgovmeneperekgacscaiiocogoitoresmshsseoulbusanulsandaeguc01milvkimmvchungnamjeonnamjeonbukeliv-dnsgyeonggijejueliv-cdnincheondaejeongangwongyeongbukgwangjuchungbukgyeongnameliv-apicoeduindorgcomembnetedugovorgmilcomnetedugovjcloudorgcomnetintedugovperbnrinfocooyorgcomnetedugovipfscanvamypepw3sstorachakeeneticjoinmcinbrowserdwebcyonnftstoragemyfritzaemewphlxachotelltdorgcomwebsocschngonetintedugrpgovassnomgacsccoorgnetedugovbizinfo123websiteidorgmilcomasnnetedugovconfidmedorgcomplcschnetedugovaccoorgnetgovpresstmassoirseproxaccosoundcasthoptocraftvp4c66orgnetedugovitsmcdirmyboxbarsyedgestacksynologylogintonohostwebhopdiskstationi234tcp4hoocgroknoipprivmydsddnsdnsforlohmustransipdscloudfilegear-sgbrasiliafilegearframerbarsybarsyonlinecoprdorgmilcomnomedugovinforgcomnetedugovnameacprorgcomartnetedugovpresseinfoassoinstgouvorgnycedugovbarsydscloudjuorgcomnetedugovminisiteaccoororgcomnetgovorgmilcompronetintedugovbizmuseumnameinfoaerocoopaccoorgcomnetintedugovbizcooporgcomgobneteduorgmilcomnetedugovbiznameaccoorgmilneteduadvgovcoorgcomnetaltgovforgotherhiskeeneticispmanagernomassoprod5476132eastasiacentraluswesteuropewestus2eastus2rucdnwest1-usfra1-desandboxjls-sto1jls-sto3jls-sto2aglobalabglobalsslmapprodfreetlsmaplon-1lon-2ny-1fr-1sg-1ny-2paassnwebpaashostingjelasticnordeste-idcsocuserpagescwebfileblobservicebuscoreatlricnjsjelasticwebsitestoragesezagbinruhuukjptsmyspreadshopmynetnameakamaiorigin-stagingfrom-coipv64dynv6cdn77serveblogadobeaemcloudhicamsprytdnsupno-ipownipde5ovhicpfirewall-gatewaysytesmypsxbarsyusgovcloudapimyamazemyradwebakamaihdsaveincloudfastlylbfrom-lasubsc-paysquare7in-the-bandblackbaudcdnhomelinuxoninfernoctfcloudservebbsdns-dynamiccloudfrontakamai-stagingipifonyham-radio-opsenseeringclickrisingcommunity-profrom-nylocalcertgrafana-devedgesuite-stagingcloudflareanycasteating-organicatlassian-devmydattofeste-iplocaltotorprojectknx-serveredgekeycloudflareglobalcloudyclustercasacamserveftpakamaized-stagingakamaiorigindns-cloudmyeffectboomlabotdashbuyshousestwmailhetemlazure-mobilein-dslthruhereredirectmedynuddnsbouncemesupabaseluyanicloudappakamaicloudfunctionsdebiannhlfanpgafanstatic-accessin-vpnmysynologymafeloappudohomeftptrafficmanagersiteleafseidatmemsetcloudflarecloudaccesskeyword-onazure-apiis-a-chefdoes-itgets-itwebhopselfiphomeipkicks-assedgesuitewindowsserver-ontunnelmolemydissentscrapper-sitecloudflarecnuni5srcfggffiobbzabcdenodynuopikddnsvpndnsakadnselastxkinghostvps-hostfastlyhomeunixazureedgeshopselectdontexistmyfritzcloudjiffyalwaysdatasells-itsquaresbroke-itazurefddattolocalat-band-campmeinforumfamilydsazurestaticappsdefinimabplaceddnsaliasdynaliasnow-dnsblogdnsroutingthecloudendofinternetdsmynasakamaiedgemymediapcadobeio-staticakamaiedge-stagingakamaihd-stagingddns-ipprivatizehealthinsurancelive-onkrellianschokokeksmassivegridmysecuritycamerarackmazeserveminecraftfrom-azis-a-geekakamaizedmoonscalecryptonomicoffice-on-theusgovtrafficmanageradobeioruntimeedgekey-stagingreserve-onlinechannelsdvrdnsdojousgovcloudappcdn77-sslapps-1and1podzoneazurewebsitesdynathomescaleforceyandexcloudvusercontentisa-geekcdn-edgescoaemalcesappwriteazimuthtlonarvonoticeablestorecomwebrecnetperotherfirminfoartslgdloncogoiltdorgmilcolcomplcschgenngonetedugovbiznamefirmmobiacincoorgmilcomnomwebgobnetintedubizinfocomyspreadshopdemongovtransurl123websitehosting-clusterkhplaycistrongsnesosvalervålerxn--vler-qoaossandeheroysandeherøybøboheroyherøyxn--hery-iraxn--b-5gavalerbøboxn--b-5gasandesandexn--hery-iraxn--vler-qoavålerhåreålaahavaofsfvfhlolnlalrlhmfmtmahcostntbuåstrmreigersundmyspreadshopgálsáeidsvolltingvollgildeskalflorøvadsøvardøvanylvenxn--bhccavuotna-k7astrandaxn--kvnangen-k0axn--sknland-fxaxn--mosjen-eyarakkestadhyllestadnannestadvevelstadvaapstenordre-landsondre-landsøndre-landtjieltexn--vrggt-xqadsør-aurdalsor-aurdalheradstordmoldefordeførdeseljefedjeryggehemnexn--krehamn-dxasognegranesøgnebrynetjomevallebykletokkegiskedovretjømehobølvoldasaudatolgasømnaviknadønnasomnadonnatranafrananesnaraumasmolatrænafrænalesjasmølaørstaorstahitrafloraaukraloppafrøyarissasnasahalsagalsaromsaraisaráisafroyasnåsagronghobolfjelltydalårdalardalaskimharamkraanghkekråanghkesorumbarumhurumbærumsørummodumsálátbálátfrognbjugnvåganvagangulenskienløtenlotenstrynvefsnxn--merker-kuaskaunsveiobømlobomloskjåkvardoflorovadsosalatbalatsálatklæbuklabuselbubarduulvikskjakklepprisørxn--nttery-byaeflåeidflahofmilgolholsellomskifetvikdepvgsfhsaskerrisorhamarasnesåsnesrørosrorosxn--slat-5namasoynaroyvaroyluroydyroyaskoyradoyandoyrodoymeloyradøyandøyrødøymeløyaskøylurøydyrøymåsøyværøynærøyhoylandethøylandetdivtasvuodnalørenskoglorenskognesoddtangenxn--tjme-hraxn--smla-hraxn--stjrdal-s1aunjargalillehammerunjárgaxn--hamary-fyadavvenjargaxn--bearalvhki-y4a123hjemmesidegjerdrumxn--brnnysund-m8acxn--tnsberg-q1axn--mlatvuopmi-s4axn--snsa-roaxn--skierv-utaxn--brum-voatysfjordkvafjordeidfjordkvæfjordsongdalenmjondalenmjøndalenxn--gls-elackragerogáŋgaviikagangaviikasørreisasorreisasør-varangersor-varangerxn--risr-iraskiervaxn--frna-woaxn--trna-woakvinesdalleksvikleirvikrøyrvikroyrviksvelvikvenneslaevje-og-hornnessandnessjøenmarnardalvindafjordsandefjordenebakksnillfjordullensvangxn--trany-yuabrønnøysundnamsskoganaustevollxn--stjrdalshalsen-sqbnord-aurdalnord-frontrøgstadtrogstadgrimstadflakstadgjerstadxn--sandy-yuaxn--leagaviika-52bnore-og-uvdalvegarsheixn--rlingen-mxaxn--ggaviika-8ya47hvegårsheikarlsoykvitsoymasfjordenhamaroyinderoyosteroydavvenjárgasauheradguovdageaidnuxn--vre-eiker-k8abronnoysiellakkrødsheradkrodsheradkvinnheradbrønnøyxn--mtta-vrjjat-k7afxn--lrenskog-54akvitsøyvárggátkarlsøyosterøyinderøyhamarøybronnoysundxn--aurskog-hland-jnbbahccavuotnabáhccavuotnagiehtavuoatnastor-elvdalmidtre-gauldalxn--gildeskl-g0akarasjokevenassixn--bievt-0qaxn--yer-znalebesbynessebyxn--hbmer-xqamalselvmålselvxn--unjrga-rtamøre-og-romsdalmore-og-romsdalhareidmelandørlandorlandstrandålgårdsolundalgardafjordåfjorddielddanuorrikautokeinoxn--stre-toten-zcbskodjeaejriestangeliernebamblestokkefauskesnåasesnaasekongsvingerlangevagberlevagxn--flor-jrahattfjelldalostre-totenøstre-totenvestfoldxn--mely-iraálaheadjualaheadjunordreisaxn--troms-zuaxn--lgrd-poacporsangerflatangerstavangerleikangerbremangersamnangergieldakarasjohkaxn--rdy-0nabfrostautsirasnoasatromsaxn--sr-aurdal-l8aflekkefjordjølsterjolsteraremarkhedmarknååmesjevuemienaamesjevuemiexn--vard-jrarollagmeråkermerakerorskogørskogxn--bdddj-mrabdákŋoluoktaxn--osyro-wuaaknoluoktatrysilskjervøymandaljondalbindalrindalmeldalsuldalorkdalsigdalalvdallærdalhurdalsirdalverdallerdallardaloppdalåseralaseralhadselkragerødivttasvuotnaoverhallasteinkjerxn--hnefoss-q1askedsmokorsettromsøxn--dyry-iravestre-totenmuseumxn--sandnessjen-ogbrahkkeravjufylkesbiblbájddarbajddarxn--laheadju-7yarennesøyxn--koluokta-7ya57hxn--hgebostad-g3aleirfjordstorfjordbalsfjordbåtsfjordbatsfjordmuosátbievátloabátkárášjohkanøtterøyxn--mjndalen-64anordkappláhppilahppialstahaugsiljanverranrøykenroykenhaldenlyngenbergenhortenhønefosshonefosstroandinbeiarnvarggatosoyroosøyrotromsoidrettmuosatbievatruovatloabatvoagattynsetnessetxn--indery-fyaskánitskanitraholtråholtxn--ystre-slidre-ujbandebusarpsborgbearduxn--karlsy-fyahordalandjorpelandjørpelanddeatnuringsakersør-odalsor-odalxn--slt-elabringerikeaudnedalnittedalnissedalhemsedalslattumsurnadalxn--blt-elabelverumstjørdalnaustdalhjartdalgjøvikfyresdalhasviknarviklarvikgjovikmalvikgamviklenvikporsgrunnstjordalengerdaldrobakdrøbakxn--msy-ula0hvestvagoyxn--vgan-qoaxn--ryken-vuaxn--lten-graxn--stfold-9xaxn--hpmir-xqaxn--lury-iramálatvuopmimalatvuopmitysværkirkenesbirkenesmoskenesbáidárxn--fjord-lraxn--rdal-poabahcavuotnabáhcavuotnaxn--frde-gralindåsbearalvahkixn--hobl-iraráhkkerávjuxn--loabt-0qavågåáltábodøsundlundraderådeetnetimeholeauregrueoddavagavegaranatanaarnasolasulaaltalekafusavangbergkvamåmliamlibokntinnroangranosenoslobodorøstroststatåmotamotivguprivøyeroyerliermossvossxn--nvuotna-hwalusterlunnermarkerhábmerhabmerhvalerfjalerxn--rholt-mratysvarbaidarfitjargaularhápmirhapmirmelhusfosnesøksnesoksnestysneshemnesevenesflesbergeidsbergtonsbergtønsberglindasxn--sndre-land-0cbnamsosxn--srum-graøystre-slidreoystre-slidrevestre-slidretrondheimbalestrandxn--langevg-jxaaustrheimxn--skjk-soavagsoyaveroysandoykarmoyfinnoytranoyvestbytranbysykkylvenxn--hyanger-q1aspjelkavikandasuoloxn--fl-ziaxn--drbak-wuastathellexn--sr-varanger-ggbtelemarkxn--bhcavuotna-s4axn--porsgu-sta26fčáhcesuolocahcesuoloakrehamnåkrehamnsandøykarmøyfinnøytranøyvågsøyaverøynamdalseidxn--lesund-huabadaddjaxn--vegrshei-c0axn--btsfjord-9zagildeskålporsanguxn--trgstad-r1anávuotnanavuotnahammerfestxn--sgne-graxn--brnny-wuacibestadharstadnarviikaevenáššivestnesgjemnessandnesagdenesrennesoyxn--avery-yuaxn--tysvr-vrabearalváhkikongsbergspydebergrandabergxn--andy-iradavvesiidaxn--krdsherad-m8aporsáŋgufredrikstadbjerkreimringeburennebuaurskog-holandnotteroyxn--vgsy-qoa0jxn--rmskog-byaskierváivelandbyglandfrolandaurlandforsandxn--bjddar-ptamidsundålesundalesundfetsundfarsundovre-eikerøvre-eikerakershusxn--moreke-juasørfoldøstfoldostfoldsorfoldhøyangerhoyangerlevangerorkangertanangerxn--vestvgy-ixa6olillesandulsteinxn--rennesy-v1agranvinskjervoyxn--klbu-woalavagisxn--h-2faxn--ryrvik-byakafjordkåfjordseljordfolkebiblxn--gjvik-wuajevnakerxn--kfjord-iuabudejjuxn--kranghke-b0axn--davvenjrga-y4axn--rland-uuaxn--ldingen-q1axn--mlselv-iuaxn--rady-iraxn--linds-prabrumunddalxn--ygarden-p1amo-i-ranaeidskogrømskogromskoghjelmelandxn--finny-yuaxn--sr-odal-q1axn--skjervy-v1aballangenkvanangenkvænangengratangenxn--hmmrfeasta-s4acvossevangensuohkanxn--rde-ulaxn--mli-tlaxn--ksnes-uuanordlandskanlandskånlandsortlandfuoiskuxn--rros-graxn--hcesuolo-7ya35bxn--eveni-0qa01gagaivuotnagáivuotnaxn--seral-lradrammenmodalenmosjoenjan-mayentorskensteigengloppenxn--snes-poamatta-varjjatxn--sr-fron-q1aomasvuotnajessheimbådåddjåxn--krager-gyaxn--kvfjord-nxaxn--asky-iraxn--snase-nraxn--bidr-5nacholtålenxn--vads-jraxn--jlster-byamosjøenxn--rst-0nastavernxn--ostery-fyaxn--oppegrd-ixaxn--sknit-yqaxn--risa-5naoppegårdskiptvetrendalenholtalenxn--mot-tlaxn--lhppi-xqaxn--holtlen-hxaxn--srreisa-q1akopervikxn--muost-0qaxn--bmlo-grahokksundkvalsundegersundxn--karmy-yuaullensakerxn--hylandet-54axn--kvitsy-fyaxn--bod-2nalangevågberlevågkristiansandxn--rsta-frahornindalstjørdalshalsenstjordalshalsensandnessjoenhámmárfeastaxn--lrdal-srasør-fronsor-fronnord-odalkristiansundmátta-várjjatvestvågøynesoddennotoddenbuskerudøygardenoygardensalangenlavangenralingenrælingenlodingenlødingenleaŋgaviikalaakesvuemieleangaviikauenorgexn--srfold-byaaskvollxn--rskog-uuaxn--nry-yla5gxn--vry-yla5ghammarfeastaxn--rhkkervju-01afxn--givuotna-8yakommunekrokstadelvanedre-eikerhagebostadhægebostadxn--berlevg-jxakviteseidxn--s-1faxn--l-1faxn--nmesjevuemie-tcbafuosskomoårekemoarekexn--lt-liacxn--jrpeland-54asvalbardoppegardholmestrandtvedestrandsogndalsokndalarendalsunndalfolldalxn--krjohka-hwab49jlyngdaletnedalnorddalsaltdalgausdalskedsmovaksdalgjesdalstordalxn--frya-hraaarbortedrangedalxn--smna-graaurskog-hølandxn--vg-yiabtjeldsundhaugesundlindesnesxn--mre-og-romsdal-qqbxn--dnna-gradynmerseineshacknetenterprisecloudmineaccomaorimāoriorgmilcriiwigennetschoolhealthkiwigovtgeekxn--mori-qsacloudnsparliamentcomedorgcompronetedugovmuseumwebsitekinservicebarsywebsitebuildereerobookheimdnsleapcelleero-stagetechcrscsslorigingohomecdbedeeeiemesecabgngilnlalplchfisiincnnoroptatitmtltruauhulumkdkukskjplvtrgrfrkrhrusesismycynzcznetinteduassoososcloudstgbetaaezaeuhkusjshatenadiarycdn77hoptozaptois-a-knightmyftpno-ipjpnddnssdpdnsspdnsbarsysweetpepperis-a-bruinsfanis-very-sweetservegameis-a-soxfanhomelinuxcdn77-secureservebbsmisconfusedwebredirectblogsitefreedesktopcouchpotatofriestoolforgeaccesscamis-lostreadmyblogsmall-webfedorapeopleserveftpis-a-celticsfanmywirepotagertwmailin-dslsellsyourhomeread-booksfreeddnscable-modemis-savednflfanufcfanmlbfanstuff-4-saleendoftheinternetin-vpnmy-firewallhomeftpis-localis-a-chefboldlygoingnowherewebhopselfipkicks-assroxatunkcamdvrfedoraprojectgotdnsdvrdnsdyndnspubtlspimientahomeunixdontexistfedorainfracloudwmflabsfspagesbmoattachmentsteckidsfamilydsdnsaliasdynaliasnow-dnscloudnsdoomdnsduckdnsblogdnshomednsroutingthecloudendofinternetdsmynasip-dynamicpoivronhttpbinmyfirewallis-very-evilmysecuritycamerais-a-linux-userwmcloudis-a-geektuxfamilyis-a-candidatedoesntexistis-very-badhobby-sitegame-hostaltervistais-foundis-a-patsfandnsdojohepforgepodzonedynservcollegefanis-very-goodfrom-meis-very-niceisa-geeknerdpolacmedsldingorgcomnomgobabonetedupleskaemhlxmyboxrockyprvcydeuxfleurspdnscodebergheyflowstatichostorgmilcomnomgobneteduorgcomeduiorgmilcomngonetedugovcloudns1337ngrokacorggogfamcomwebgobnetedugokgopgkpgovgosbizpasaugumicsopozpapuwmwsrprusiskwpspkppspkmpspokeoiawsawifoumsdnskokwpmuppuppsppiwwiwoowuzswkzoschrzpisdnwzmiuwwitdpssewsseumigugimoirmpinbwinbwiihupporzgwgriwupowwskrwioswuozstarostwokonsulattmpccopruszkowmyspreadshopostrodakartuzyopolegminamediaustkazgorajgoraolawailawalomzawloclradombytomjaworznotargilubinkoninzagantorunkutnokepnonakloczestsopotsanokturekplockslasksklepzarowlukowmedaidgdaorgmilrelcomnomatmgsmartneteduelkgovwawsossexbiztgorysejnytychypomorzeboleslawiechomesklepsdscloudunicloudzakopanelegnicarawa-mazbydgoszczswidnikkrasnikwloclawekbielawamragowograjeworealestatebeskidykaszubymalopolskaprzeworskswiebodzinlecznadfirmaszkolawarmiagdyniamiastakazimierz-dolnymalborkswidnicadlugolekaostrolekapodlasieelblagtravelsimplesitezachpomormielecszczecinnieruchomosciwalbrzychlezajsklublinbedzinpoznanwielunmielnooleckostarachowicedkontopowiatwroclawrybniksuwalkileborkslupskgdanskostrowwlkptarnobrzegtourismwegrowkrakowglogowyou2pilanysamailwrocinfoagroautobeepshopprivlapypiszlodzcfolksecommerce-shopmazurypulawyskoczowrzeszowpomorskiezgierzkaliszolkuszlowiczostrowiecsosnowiecmazowszewodzislawbialowiezazgorzeleckatowicepabianicejelenia-gorawolominkarpaczsieradznowarudaczeladzkonskowolaskierniewiceswinoujscieturystykabieszczadycieszynketrzynolsztynbialystokbabia-goraprochowicewarszawastalowa-wolapolkowicegorlicegliwiceponiatowalimanowalubartowaugustowkobierzyceopocznognieznoszczytnokolobrzegshoparenapodhalebielskoklodzkostargardatwithplayitownnamecoorgnetedugovacorgcomproestnetedugovbiznameislaprofinforechtngrokmedaaaacacpaenglawjurbarbarsykeeneticavocatacctcloudnsorgcomsecplonetedugov123paginaweborgcomnetintedugovnomepublidkinbarsygovx443cloudnsorgmilcomnetedugovcooporgmilcomschnetedugovnamecomcannetlibassoaemclantmcontstoreorgcomnomrecwwwbarsyfirminfoshopartsstackitmyddnswebspacelima-cityacincooxorgedugovbarsybrendlyhbvpsvpsspectrumlandinghostingacppmordoviamcprecbgorgmilcomspbnetintedumsknovgovbirrasmcdirmytismircloudvladimirnalchikadygeyamarinepyatigorskmyjinobashkiriaeurodirvladikavkazna4ugroznykustanaikalmykiacldmaildagestaniranbuildcanvaliaravalwixdevelopmentappwritemigrationneedleverceldatabasestackitcodereplravendbonporterlovableaccoorgmilnetgovcoopmedorgcompubschnetedugovservicemecomygovorggovtvmedorgcomnetedugovinfoedgfacbmlonihkutwpsryxzbdtmacfhppmyspreadshopbrandpartiorgcomfhvpress123minsidaitcouldbeworlanbibkommunalforbundfhskiopsyskomvuxkomforbnaturbruksgymnloginlineorgcomnetedugovenscaledeuusentbotdaorgmilcomnetgovnowteleporthashbangplatformlovablebarsyshopwarebasehoplixbarsyonlinemsf5gitappgitpagecofigma-govcaffeinefigmacanvasoltstputerbarsysupportchatgptsquareomniweopensocialcpanelnotionnovecorewpsquaredpreviewjelecyonbyensrhtfastvpspieboxconvexjouwwebheyflowplatformshloginlinemadethissourcecraftclouderaorgorgcomartedugouvunivmeorgcomnetedugovsurveysstatichfheiyuxs4allprojectmyfastubervibehostapp-ionosdeployagentmecoorgcomschnetedugovbizcncostoreorgmilcomneteduembaixadaconsuladokiraranohoprincipesaotomeheliohobarsystorebaseshopwaresellfyabkhaziavologdamordoviapenzalenugsochinavoiexnetspbmsknovnorth-kazakhstanashgabadkareliaarmeniageorgiavladimirnalchikivanovobukharaadygeyakhakassiakalugakrasnodarjambylaktyubinsktroitskbryanskobninskkurganazerbaijanpokrovskbashkiriatselinogradvladikavkazmurmansktulatuvamangyshlaktashkentchimkentgroznykaragandatermezarkhangelskkustanaikalmykiabalashoveast-kazakhstankaracoldagestantogliattibarsyredorgcomgobedumirenknightpointaccoorgjelasticdiscoursecleverappsschacmiincogoornetonlineshopcogoorgmilcomwebnicnetintedugovbiznametestcoorgmilcomnomnetedugovorangecloudpersoindorgcomfinnatnetgovensmincomtourismintlinfox0611oyaorgmilcomnetedugovquickconnectvpnplusnettprequalifymeaddrmyaddrntdllwadlnctvavdrk12orgmilpolbeltelcomwebgennetedutskkepgovbbsbiznameinfocoorgmilcompronetedugovbiznameinfobetter-thanworse-thansakurafromdyndnson-the-webmymailerorgmilurlcomneteduidvgovmydnsgameclubebizmeneacsccogotvorhotelmilmobiinfovodteiflgplkmsmsbcckhincndnvncoztltmkckppzpdprvcvkvlvcrkrkscxuzchernovtsyrivneyaltaodesavolynrovnolutskltdinforgcomnetedugovbizvinnicazhitomirternopilpoltavakropyvnytskyizaporizhzhiasevastopolsebastopoluzhgoroduzhhorodkharkovkharkivvinnytsiakhmelnytskyizaporizhzhecrimeaodessazhytomyrnikolaevcherkassydonetskluganskluhanskkirovogradivano-frankivskchernivtsikrymkievkyivlvivsumyzakarpattiamykolaivcherkasychernigovkhersonchernihivdnipropetrovskdnepropetrovskkhmelnitskiyneacsccogoorusorgmilcomedugovvmdhmyspreadshopadimono-ipbarsybytemarkbarsyonlinelayershiftnh-servretrosnubapicampaignservicelugaffinitylotteryweeklylotteryraffleentrygluglugsmeaccoindependent-inquestnimsitecopropymntltdorgplcschnetgovnhsbarsyindependent-commissionindependent-reviewpolicepublic-inquiryindependent-panelconnhospindependent-inquiryroyal-commissionoraclegovcloudappscck12libccphxcclibpvtparochchtrcck12libcceatonk12coglibtecgendstmusann-arborwashtenawcck12glghcck12sealibforksolympiabainbridge-islkeyporthoquiamyarrow-pointcentraliaport-townsendsequimport-ludlowrentonsilverdalebremertonredmondsheltonbellevueport-orchardport-angeleskingstonchehalisaberdeengig-harborseattlepoulsboidmdndsddemenegacalamaiavawapailalflnmdcncscohnhmihiviwiriinmntnmocoutvtctmtgunjokakwvnvprarorasmskstxwynykyazisadninsnngosrvis-bymircloudservernamepointtoenscaledland-4-salefreeddnsstuff-4-saleazure-apinoipcloudnsgolffanheliohostazurewebsitesgvorgmilcomgubneteducoorgcomnetd0egvorgmilcomnetedugovmydnsiacostoree12orgmilcomnomwebgobbibrectecnetintedugovraremprendefirminfoartseducok12orgcomnethidnsidacaiiosonlahanamhanoicamauhueorgcompronetintedugovbizbacninhtayninhhoabinhnamdinhtravinhhaiphongvinhlonghaiduongquangnamquangtrithuathienhuequangninhbacgianghaugiangquangbinhsoctrangbentrethanhphohochiminhdanangkontumhatinhkhanhhoathanhhoahealthgialailaocaiyenbaibackanngheanlonganphuyenphuthocanthodaklakdongnainameinfovinhphucdongthapkiengiangtiengiangquangngailaichaulangsonlamdongdaknonghagiangangiangcaobangbinhduongninhthuanbinhthuanbaclieuthaibinhninhbinhbinhdinhtuyenquanghungyenbaria-vungtauthainguyendienbienbinhphuocschbizputerimagine-proxyorgcomnetedugovcloud66advisormypetsdyndnsxn--8dbq2axn--4dbgdty6cxn--5dbhl8dxn--hebda8bxn--80auxn--d1atxn--c1avgxn--o1acxn--o1achxn--90azhxn--55qx5dxn--uc0atvxn--od0algxn--wcvs22dxn--gmqw5axn--mxtq1mxn--12c1fe0brxn--h3cuzk1dixn--12co0c3b4evaxn--12cfi8ixb8lxn--o3cyx2axn--m3ch0j3axn--j1adpxn--90amcxn--90a1afxn--h1ahnxn--j1ael8bxn--h1alizxn--c1avgxn--j1aefxn--80aaa0cvacxn--41acaffeineexeopentunnelbotdashtelebitorgtmaccoagricorgmilnomwebnicngonetaltedugovlawnisschoolgrondaraccoorgmilcomschnetedugovbizinfoprg1-zeropstritonstackitlimazeropsaccoorgmilgovяспборгкоммскбизмирсамаракрымсочиакодпроргобрупрצהלממשלישובאקדמיהองค์กรธุรกิจรัฐบาลศึกษาทหารเน็ต教育網絡組織公司政府個人닷넷한국澳门新闻澳門联通家電嘉里招聘通販닷컴삼성コムგეбгрфеюadcdbdgdidmdsdtdaebedeeegeiejekemenepereseveyegabacalamanauavapaqasazacfbfafgfnfpfwftfbgcgagggegkgngmgsgpgvgtgugilmlnlalclglplsltlhmimjmkmmmomambmcmdmfmgmzmpmsmtmgbbblbsbecccacnclcmcvctcscmhkhghchbhthphshlinikifigiaibicivisikninhnmncnbngnsnpnvntnjoionomobocoaofodorosotoptstttytatbtetgtithtmtltrusuvuaucueuguhulumunufjdjbjtjsjlkmkhkfkdkcktkukskpkgpmpnpkpjpgqaqmqiqsvtvcvbvmvlvrwpwtwzwbwcwawgwkwmwtrsrprgrfrercrbrarnrmrlrkrirhrwsusrssspsgsesbsaslsmsissxmxaxcxuypysylymykygybycyuztzsznzmzkzdzczbzazελευ世界台灣购物公益点看臺灣网络書籍在线网站手机机构大拿游戏信息台湾谷歌慈善商标香港中国餐厅网址中國商城食品微博政务移动集团公司八卦商店健康网店政府时尚佛山中信娱乐广东企业homedepotengineeringاماراتrepublicankuokgroupversicherungchannelcitadelxn--pgbs0dhxn--b4w605ferdstatebankwebsitexn--mgb9awbf亚马逊淡马锡alibabaxn--ngbc5azdxn--mgbbh1axn--45br5cyltoshibabuildworldcloudtradeguideplacespacedancemoviephoneprimesmilebiblestyleappleazurestoreskypegripexn--l1accdrivelottehorsehouseleasechasereisestadahondaomegaaetnaamicaninjanokiamediadeltavodkaedekaosakapizzaslingemailgmailtirolshelltmallfinallegaltotalhotelamfamforumrehabmusicciticricohcoachwatchboschearthfaithirishmiamiarchidubaiguccipraxiみんなストアセールcanonsalononionnikonepsonkoelngreensevencrownikanoradioaudioweiboglobopromogalloyahoociscorodeovideomangobingotokyovolvolottokyotophotosmartsportquesttrusthyattjetztadultcymrubaidutushuxn--kprw13dubankclickblackmerckgroupsharpcheapnowtvxn--h2brj9cקוםհայоргсрбмонкомбелмкдқазрусукрمصرقطرعربكومdadcfdmedwedredphdthdbidpidkrdmsdltdiceonewmeglemoerwecfageacbanbambaaaammakianraspacpaaxawtfbcgaegongingaigvigorgdogdhlmilrilonlaolloluoljllcalgalnflafltelsrlfrllplkimibmcamcombommomifmabbjcbscbcabnabtabmlbpubabcbbcnecincpncllcstcwtcpwcnyckfhbzhovhmoiskiobisbitcifyituipinvinwinxincbnbcnmanfangdnmenrenkpnmtnyunrunfununobiojioriohbogmofooboooooacoecoceongoproartistottnttbbtcateatlatvetpetbetnethktmitfitintjothotgotdotbotprueduicujnjyouinknhktdkappsapgapmapdnptopgopllpjmpzipvipripesqtrvdtvitvdevmovgovhivnrwlawsewnewbmwwownowhowdvrftrmtrsfrbarcartvscrseusawsupsubssbsadsddsldssasbmsmlsxxxboxfoxgmxtjxsextaxbuyflydiysoyjoyskypaydaygayxyzanzbizwebersenerpokerlameractortatarsolarລາວคอมไทยtourslocusnexuslexusgiftsbeatsboatspartspressglassswissकॉमनेटtiresgivescodeshomesgamestunesshoescardswalesloansvegastoolsdealsautosparisファッションworkssucksrocksxeroxforexfedexpartylillymoneystudyrugbytoraytoday中文网xn--unup4y天主教飞利浦新加坡enterprises我爱你嘉里大酒店christmasxn--fct429kholdingsxn--8y0a063axn--mgbx4cd0ablifestyleabogadoallstatenetbankكاثوليكxn--s9brj9cxn--gk3at1ebestbuycharityxn--55qx5dmicrosoftpropertybasketballhomegoodscorsicajewelrygallerygrocerysurgerycountrybrusselsverisignferreroxn--czr694bhdfcbankcommbanksoftbankپاكستانپاکستانnextdirectالسعوديهالعليانxn--h2brj9c8cxn--80adxhksshikshaxn--mgbai9azgqp6jcuisinellabarclayscatholicxn--kpry57dcompanyxn--xhq521bblackfridayxn--mgba3a3ejtsandvikxn--d1acj3bacademydownloadمليسياxn--j1amhxn--w4r85el8fhu5dnraipirangaathletaxn--fhbeixn--mgbqly7cvafrzuerichxn--c2br7gஇலங்கைcontractorsxn--io0a7igraphicsinsurancetemasekxn--xkc2al3hye2amotorcyclesphotographydirectoryplumbingxn--vhquvclothingtrainingcleaningwilliamhilllightingxn--mgba3a4f16ashoppingcateringeducationokinawapicturesventuresproductionsxn--9et52uwalmartഭാരതംsupportrealestatecapitalonexn--nqv7fs00emaauspostfloristdentistxn--qxamgodaddybradescobargainsmitsubishikerryhotelsxn--9dbq2axn--3pxu8kimmobilienxn--fjq720axn--mgbtx2bholidaymckinseymadridbusinessbuildershelsinkixn--4gbrimмоскваالسعودیةcoffeedegreelacaixapartnersalsaceofficeabbvievoyageorangegeorgeonlinechromemobilekindlegoogleoraclecircleschulesecureinsurexn--mgba7c0bbn0aestatexn--mgbc0a9azcgcruisehangoutxn--vuq861bxn--42c2d9arexrothfirestoneuniversityxn--nnx388alifeinsuranceextraspaceонлайнvermögensberatersoftwarexn--fiqs8sxn--mgbab2bdxn--w4rs40ltiendaभारतम्africatoyotaotsukasakuracameracreditcardnagoyaconsultingnetworkjunipertheatermonsterprogressivepioneerxn--55qw42gracingdatingvotingvikinglivinggivingxn--bck1b9a5dre4cbrotherweatherjoburgفلسطينlplfinancialxn--clchc0ea0b2g2a9gcdfutbolschoolsocialglobaldentalwoodsidechanelairtelmatteltravelrealtorwebcamstreamభారత్unicomalstomxn--nodexn--6frz82gmuseumfurniturexn--rvc1e0am3exn--mix891faccenturexn--11b4c3dismailineustardiscountquebeccomsecclinicservicesxn--y9a3aqxn--c1avgswatchchurchsearchالاردنmarketingcontacthealthmonashshoujisanofitaipeiamericanexpresssuzukiアマゾンクラウドポイントbhartiグーグルxn--mgberp4a5d4armemorialxn--1qqw23alondonmormoninstitutevisionbostonnortoncouponmaisonamazonvirginberlindesigndurbanolayannissananquanxihuanhitachikaufengardenreisenbayerntechnologydatsunxn--90a3aclatinocasinostudiophysioxn--ngbe9e0apharmacytattootaobaoaramcoexpertreportabbottdirectselectimamatfairwindspictettargetmarketintuittravelersinsurancecreditdupontryukyusuppliesxn--tckwebnpparibasschmidtmerckmsdyodobashirestaurantbridgestonecricketxn--fpcrj9c3dbostikbroadwayattorneylefrakemerckxn--fiq228c5hscareersfarmerswinnersflowersxn--wgbh1cguitarsxn--54b7fta0ccxn--p1acfmakeupgalluplandroverxn--kcrx77d1x4agoldpointbauhausxn--mgbayh7gpahiphopplaystationxn--mgba3a4fraxn--eckvdtc9dhyundaixn--gckr3f0fistanbulticketsmarketsflightschintaireviewsxn--3e0b707ewindowsxn--fiqz9sfinancialxn--fzys8d69uvgmابوظبيdiscoverreviewবাংলাxn--5su34j936bgsgmoscowobserverapartmentsдетиارامكوсайтeurovisionxn--i1b6b1a6a2exn--xkc2dl3a5ee0hتونسموقعبارتڀارتشبكةعمانبيتكعراقreadkredbondlandbandfundfoodprodgoldfordtubecafesafelifeggeeieeefreefagepagegugezonewinememenamegamesaleablebikenikelikecarecbreherefiresaveloveliveblueartedatesitevotecaseluxebofamodaltdaasdatiaayogasinavanashiaasiajavabbvatevavivadatazaraarpacasavisasncfprofmaifsurfgolfdvagsongbingpingwangkpmggoogblogpohlfailcooldellcalldeallidlsarlfilmteamroomfarmimdbarabclubhdfcicbchsbcgmbhrichtechfishdishcashminiernikddiaudiwikimobitaxicitikiwidesiqponskinloanakdnwienopenporncerntownimmolimoolloinfonicofidolegosaxozeroaerovivoautovotomotofastbestresthostpostnextlgbtchatseatgiftmeetdietreitmintrentgentspotscotguruitausohumenucyoubanklinkpinkdclktalksilkbookseekworkrsvpaarpjeepshopcoophelpcamppccwshowbeerstarruhrflirweirhaircarsparsjprshausplusnewstipstoysjobskidsfanspicsdocsxboxamexsexynavycitysonyarmyallybabyplaydeliverybuzzgbizlamborghiniphilipsලංකාಭಾರತfitnessexpresslanxesspfizercenterwalterlawyersoccercareerkosherbrokerlockerdealerdoctorauthorxn--mgbqly7c0a67fbcvermögensberatungjaguarxn--pssy2uxn--hxt814eflickrrepairrogersairbusxn--mgbai9a5eva00beventsyachtsxn--t60b56aভাৰতভারতभारतभारोतviajeshermeshughesxn--j1aefसंगठनvillasଭାରତclaimshotelsભારતzapposphotosjuegoscondostatamotorsgratistennisਭਾਰਤtkmaxxtjmaxxschaeffleryandexxn--80aswgrealtysafetybeautyluxuryxn--3ds443gsupplyfamilyxn--o3cw4hhockeysydneyxn--90aenissayalipayenergycomputeragencyxn--rovu88b電訊盈科xn--gecrj9cstatefarmaccountantaquarelleolayangroup香格里拉xn--p1ai组织机构xn--1ck2e1bxn--mgbt3dhdschwarzموريتانياabudhabinowruzkomatsufujitsuhospitalxn--80asehdbxn--mgbtf8flxn--j6w193gxn--yfro4i67oprudentialxn--flw351ecruisescoursesrecipesxn--e1a4cferrarixn--ses554gxn--wgbl6awatchesstaplessinglesxn--mgbcpq6gpa1axn--otu796dpropertiescreditunionxn--mgbah1a3hjkrdstockholmhisamitsuالسعوديةstcgroupdomainsoriginscouponsbloombergclubmedfroganslimitedxn--80aqecdr1aexposedinternationalequipmentbarclaycardxn--q7ce6axn--mgbi4ecexpprotectionassociatesconstructionxn--cck2b3bxn--45q11candroidfoundationישראלxn--mgbca7dzdocliniqueboutiqueengineerxn--qxa6asystemsfirmdalefashionauctionxn--nqv7finfinitirentalsreliancetradingweddingfishinghostinggentingbookingcookingxn--3hcrj9cgraingerxn--czrs0tdemocratsamsungyokohamaxn--h2breg3evexn--nyqy26alundbeckmelbournevacationssolutionsfrontierxn--vermgensberatung-pwbmanagementxn--cg4bkixn--mgb2ddeslincolnhamburgsandvikcoromantblockbusterairforcebarefootxn--4dbrk0ceinvestmentsfeedbackcommunityxn--ngbrxالبحرينdiamondsamsterdamhealthcareredumbrellaxn--mxtq1mxn--2scrj9cagakhanxn--mgbpl2fhкатоликcaravanசிங்கப்பூர்richardlimortgageamericanfamilyxn--fzc2c9e2cscholarshipssaarlandxn--imr513nvlaanderensamsclubgoodyearkitchenஇந்தியாweatherchannelallfinanzxn--kput3iالسعودیۃxn--90aisxn--efvy88hالجزائرxn--mgbaam7a8hexchangejpmorganxn--tiq49xqyjfidelitysecurityxn--mk1bu44cwanggouxn--fiq64bxn--6qq986b3xlxn--mgbbh1a71exn--80ao21amarshallsxn--5tzm5gtravelerspanasoniclatrobeyoutubeaccountantsxn--rhqv96gxn--cckwcxetdanalyticsxn--ygbi2ammxبازاربھارتسوريةorganicfreseniusسورياxn--9krt00axn--qcka1pmcxn--jlq480n2rgdeloittesciencefinancexn--jvr189mxn--30rr7yhomesensehotmailbaseballfootballleclercboehringerxn--q9jyb4cxn--mix082fاليمنهمراهpolitieسودانايرانایرانnetflixyamaxunxn--lgbbat1ad8jcollegestoragecapetowncolognekerrypropertiesxn--mgbgu82axn--ogbpf8flxn--czru2dwhoswhociprianilasallexn--g2xx48cforsalebanamexaudiblexn--vermgensberater-ctbxn--zfr164bericssonvanguardxn--45brj9cindustriestheatremarriottxn--3bst00mcomparexn--mgberp4a5d4a87gcapitaldigitalالمغربbarcelonashangrilaxn--d1alfcalvinkleinwwwcitysapporokawasakinagoyasendaikobekitakyushuyokohamackjp",vz=621,kz=625,Hk=gs.length,Qk=Nu.length,Zk=new Uint32Array(Qk),hu=new Uint32Array(Qk),jf=new Int32Array(Hk).fill(-1);for(let e=0,t=0;e<Hk;e+=1)for(let i=Au[e];i<Au[e+1];i+=1){Zk[i]=t;const s=t+Nu[i];let r=5381;for(let u=s-1;u>=t;u-=1)r=r*33^Sf.charCodeAt(u);hu[i]=r>>>0,Nu[i]===1&&Sf.charCodeAt(t)===42&&(jf[e]=i),t=s}let Ga=-1,Af=0,Nf=0;function nv(e,t,i,s){if(Nu[e]!==s)return!1;const r=Zk[e];for(let u=0;u<s;u+=1)if(Sf.charCodeAt(r+u)!==t.charCodeAt(i+u))return!1;return!0}function av(e,t,i,s,r){let u=Au[e],d=Au[e+1];for(;u<d;){const g=u+d>>>1,b=hu[g];if(b<t)u=g+1;else if(b>t)d=g;else{for(let v=g;v>=u&&hu[v]===t;v-=1)if(nv(v,i,s,r))return v;for(let v=g+1;v<d&&hu[v]===t;v+=1)if(nv(v,i,s,r))return v;return-1}}return-1}function iv(e,t,i){let s=t,r=e.length,u=5381;Ga=-1;for(let g=e.length-1;g>=0;g-=1){const b=e.charCodeAt(g);if(b===46){const v=g+1;let x=av(s,u>>>0,e,v,r-v);if(x===-1&&(x=jf[s]),x===-1)return Ga!==-1;s=tv[x],(gs[s]&i)!==0&&(Ga=s,Af=v,Nf=r),r=g,u=5381}else u=u*33^b}let d=av(s,u>>>0,e,0,r);return d===-1&&(d=jf[s]),d!==-1&&(s=tv[d],(gs[s]&i)!==0&&(Ga=s,Af=0,Nf=r)),Ga!==-1}function Fk(e,t,i){if(bz(e,t,i))return;const s=(t.allowPrivateDomains?2:0)|(t.allowIcannDomains?1:0);if(iv(e,kz,s)){i.isIcann=(gs[Ga]&1)!==0,i.isPrivate=(gs[Ga]&2)!==0,i.publicSuffix=e.slice(Nf+1);return}if(iv(e,vz,s)){i.isIcann=(gs[Ga]&1)!==0,i.isPrivate=(gs[Ga]&2)!==0,i.publicSuffix=e.slice(Af);return}i.isIcann=!1,i.isPrivate=!1;const r=e.lastIndexOf(".");i.publicSuffix=r===-1?e:e.slice(r+1)}const _u=yz();function wz(e,t){return Kk(_u),Gk(e,0,Fk,t,_u).hostname}function xz(e,t){return Kk(_u),Gk(e,5,Fk,t,_u).domainWithoutSuffix}const Sz={allowPrivateDomains:!0};new az({fuzzyLink:!0,fuzzyEmail:!1}).tlds(iz);function p0(e){if(e==null)return null;const t=e.trim();if(!t)return null;const i=wz(t);return i?i.replace(/^www\./i,"").toLowerCase():null}function jz(e){return e==null||e.trim()===""?"":xz(e,Sz)?.toLowerCase()??""}const Az=new Intl.Segmenter("en",{granularity:"word"}),Nz=/[\p{L}\p{N}]+/gu;function _z(e){return e.normalize("NFKC").toLocaleLowerCase("en")}function Cz(e){const t=[];for(const i of Az.segment(e))if(i.isWordLike)for(const s of i.segment.match(Nz)??[])t.push(s);return t}function zz(e){return Cz(_z(e))}function vs(e){return zz(e).join("")}const Yk=E(["cli","api","config-file"]);function Ez(e){const t=new Set,i=new Set;for(const s of e){if(t.has(s.label)){i.add(s.label);continue}t.add(s.label)}return[...i]}function Tz(e,t){return t?e.some(i=>i.label===t):!0}y({displayName:c().min(1),canonicalDomain:c().min(1),ownedDomains:k(c().min(1)).optional(),aliases:k(c()).optional(),country:c().length(2),language:c().min(2),tags:k(c()).optional(),labels:Le(c(),c()).optional(),providers:k(dt).optional(),providerModels:u0.optional(),locations:k(gn).optional(),defaultLocation:c().nullable().optional(),measurement:m0.optional(),autoExtractBacklinks:P().optional(),configSource:Yk.optional()});const Dz=y({id:c(),name:c(),displayName:c().optional(),canonicalDomain:c(),ownedDomains:k(c()).default([]),aliases:k(c()).default([]),country:c().length(2),language:c().min(2),tags:k(c()).default([]),labels:Le(c(),c()).default({}),providers:k(c()).default([]),providerModels:u0.default({}),locations:k(gn).default([]),defaultLocation:c().nullable().optional(),measurement:m0.default(Uk),autoExtractBacklinks:P().default(!1),configSource:Yk.default("cli"),configRevision:h().int().positive().default(1),createdAt:c().optional(),updatedAt:c().optional()});y({id:c(),query:c(),createdAt:c()});y({id:c(),keyword:c(),createdAt:c()});y({queries:k(c().trim().min(1)).min(1)});y({keywords:k(c().trim().min(1)).min(1)});y({provider:dt,count:h().int().min(1).max(20).optional()});y({id:c(),domain:c(),createdAt:c()});y({competitors:k(c().trim().min(1)).min(1)});function _f(e){return p0(e)??e.trim().toLowerCase().replace(/^www\./,"")}function Oz(e){const t=[e.canonicalDomain,...e.ownedDomains??[]],i=new Set,s=[];for(const r of t){const u=r.trim();if(!u)continue;const d=_f(u);i.has(d)||(i.add(d),s.push(u))}return s}const Rz=y({name:c().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:Le(c(),c()).optional().default({})}),Mz=y({preset:c().optional(),cron:c().optional(),timezone:c().optional().default("UTC"),providers:k(dt).optional().default([]),enabled:P().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),Bz=y({channel:ae("webhook"),url:c().url(),events:k(d0).min(1)}),qz=y({gsc:y({propertyUrl:c()}).optional(),syncSchedule:y({preset:c().optional(),cron:c().optional()}).optional()}).optional(),sv=k(c().min(1)),Iz=y({displayName:c().min(1),canonicalDomain:c().min(1),ownedDomains:k(c().min(1)).optional().default([]),aliases:k(c().min(1)).optional().default([]),country:c().length(2),language:c().min(2),queries:sv.optional(),keywords:sv.optional(),competitors:k(c().min(1)).optional().default([]),providers:k(dt).optional().default([]),providerModels:u0.optional().default({}),locations:k(gn).optional().default([]),defaultLocation:c().optional(),measurement:m0.optional().default(Uk),schedule:Mz,notifications:k(Bz).optional().default([]),google:qz,autoExtractBacklinks:P().optional().default(!1)}).superRefine((e,t)=>{e.queries!==void 0&&e.keywords!==void 0&&t.addIssue({code:"custom",message:"Use spec.queries; spec.keywords is accepted only as a legacy alias when spec.queries is omitted",path:["keywords"]});const i=Ez(e.locations);i.length>0&&t.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),Tz(e.locations,e.defaultLocation)||t.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});y({apiVersion:ae("canonry/v1"),kind:ae("Project"),metadata:Rz,spec:Iz});const Lz=2,Pz=c().regex(/^[a-f0-9]{64}$/),Ku=c().trim().min(1).max(256),ov=E(["sensitive","insensitive"]),ve=c().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),$z=c().trim().min(1).refine(e=>p0(e)!==null,"A competitor domain must be a valid hostname"),Uz=gt("kind",[y({kind:ae("exact"),url:c().min(1),pathCase:ov}).strict(),y({kind:ae("prefix"),host:c().min(1),pathPrefix:c().min(1),pathCase:ov}).strict(),y({kind:ae("host"),host:c().min(1)}).strict()]),Vz=y({canonicalHost:c().min(1),ownedHosts:k(c().min(1)),names:k(c().min(1))}).strict(),Kz=y({projectBrand:Vz}).strict(),Gz=y({stableKey:ve,label:c().trim().min(1),aliases:k(c().min(1)),urlMatchers:k(Uz),mentionNotApplicable:P(),discoveryIdentity:c().min(1).nullable()}).strict(),Xk=y({stableKey:ve,label:c().trim().min(1),domain:$z,aliases:k(c().min(1))}).strict(),Hz=y({stableKey:ve,label:c().trim().min(1),targetKeys:k(ve),competitors:k(Xk)}).strict(),Qz=E(["manual","query-set","template","discovery"]),Zz=y({source:Qz,sourceId:c().min(1).nullable(),capturedAt:c().datetime()}).strict(),Fz=y({queryId:Ku,queryText:c().min(1),provenance:Zz}).strict(),Yz=y({providers:k(dt).min(1),models:Le(dt,c().min(1)),location:gn.nullable()}).strict(),Xz=y({stableKey:c().min(1),queryId:Ku,queryText:c().min(1),context:Yz,expectedSnapshots:h().int().nonnegative()}).strict(),f0=E(["branded","non-brand"]),Jz=y({targetKey:ve,queryId:Ku,queryClass:f0,executionNodeKey:c().min(1)}).strict(),Wz=y({executionNodeKey:c().min(1),targetKey:ve,queryId:Ku}).strict(),Gu=y({schemaVersion:ae(Lz),identities:Kz,targets:k(Gz),groups:k(Hz),querySnapshots:k(Fz),assignments:k(Jz),executionNodes:k(Xz),usageEdges:k(Wz),compiledChecksum:Pz}).strict().superRefine((e,t)=>{const i=new Set;for(const r of e.executionNodes)i.has(r.stableKey)&&t.addIssue({code:ht.custom,path:["executionNodes"],message:`Duplicate execution node key "${r.stableKey}"`}),i.add(r.stableKey);const s=new Set(e.targets.map(r=>r.stableKey));e.usageEdges.forEach((r,u)=>{i.has(r.executionNodeKey)||t.addIssue({code:ht.custom,path:["usageEdges",u,"executionNodeKey"],message:`Usage edge references unknown execution node "${r.executionNodeKey}"`}),s.has(r.targetKey)||t.addIssue({code:ht.custom,path:["usageEdges",u,"targetKey"],message:`Usage edge references unknown Target "${r.targetKey}"`})}),e.assignments.forEach((r,u)=>{s.has(r.targetKey)||t.addIssue({code:ht.custom,path:["assignments",u,"targetKey"],message:`Assignment references unknown Target "${r.targetKey}"`})});for(const r of e.groups)for(const u of r.targetKeys)s.has(u)||t.addIssue({code:ht.custom,path:["groups"],message:`Group "${r.stableKey}" references unknown Target "${u}"`})}),h0=100;function Do(e){return y({items:k(e),nextCursor:c().min(1).nullable(),totalEstimate:h().int().nonnegative().optional()}).strict()}const g0=E(["no_completed_run","plan_v1","no_population","evidence_incomplete","not_applicable"]),Vt=gt("state",[y({state:ae("available"),value:h(),numerator:h().int().nonnegative().optional(),denominator:h().int().positive().optional()}).strict(),y({state:ae("unavailable"),reason:g0}).strict()]),y0=E(["all","group","property"]),ma=E(["all","branded","non-brand"]),eE=E(["label-asc","label-desc","citationCoverage-asc","citationCoverage-desc","mentionCoverage-asc","mentionCoverage-desc"]),b0=E(["not_measured","queued","running","complete","partial","failed"]),tE=E(["run_measurement","review_flags","complete_setup","republish_setup","none"]);y({scope:y0,groupKey:ve.optional(),targetKey:ve.optional(),queryClass:ma.optional(),provider:dt.optional(),location:c().trim().min(1).optional(),from:c().trim().min(1).optional(),to:c().trim().min(1).optional(),runId:c().trim().min(1).optional(),search:c().optional(),sort:eE.optional(),cursor:c().trim().min(1).optional(),limit:h().int().positive().max(h0).optional()}).strict();const nE=y({provider:dt,mentionCoverage:Vt,citationCoverage:Vt}).strict(),aE=y({bothSignals:h().int().nonnegative(),mentionedOnly:h().int().nonnegative(),citedOnly:h().int().nonnegative(),neither:h().int().nonnegative(),notMeasured:h().int().nonnegative(),total:h().int().nonnegative()}).strict(),iE=y({targetKey:ve,label:c().min(1),mentionCoverage:Vt,citationCoverage:Vt,providers:k(nE),flags:h().int().nonnegative()}).strict(),sE=y({kind:E(["project","competitor"]),stableKey:c().min(1),label:c().min(1),domain:c().min(1),credits:h().int().nonnegative(),share:h().min(0).max(1)}).strict(),oE=y({groupKey:ve,queryClass:ae("non-brand"),denominator:h().int().positive(),entries:k(sE)}).strict();y({mode:E(["active-v1","active-v2"]),scope:y({kind:y0,key:c().min(1).optional(),label:c().min(1)}).strict(),queryClass:ma,measurement:y({state:b0,currentRunId:c().min(1).optional(),displayedRunId:c().min(1).optional(),completed:h().int().nonnegative(),expected:h().int().nonnegative(),completedAt:c().datetime().optional(),includesHistoricalData:P().optional()}).strict(),nextAction:y({kind:tE,count:h().int().nonnegative().optional()}).strict(),metrics:y({propertiesMentioned:Vt,mentionCoverage:Vt,citationCoverage:Vt,brandPresence:Vt,sov:Vt.describe("Deprecated alias of brandPresence carrying the identical value. Remove once the browser migrates.")}).strict(),properties:Do(iE),outcomes:aE,flags:y({total:h().int().nonnegative()}).strict(),namedShareOfVoice:oE.optional()}).strict();const Jk=E(["sources","answers"]),rE=Jk.enum;rE.sources;y({targetKey:ve,queryClass:ma.optional(),provider:dt.optional(),location:c().trim().min(1).optional(),runId:c().trim().min(1).optional(),shape:Jk.optional(),cursor:c().trim().min(1).optional(),limit:h().int().positive().max(h0).optional()}).strict();const Wk=1,jl=h().int().positive(),Kt=c().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),Al=c().trim().min(1).max(256),rv=E(["sensitive","insensitive"]);function Cu(e){const t=p0(e);if(!t)throw new Error(`Invalid measurement host: ${e}`);return t}function lE(e){const t=[];let i=!1;for(let s=0;s<e.length;s++){const r=e[s];r==="/"?(i||t.push(r),i=!0):(t.push(r),i=!1)}for(;t.length>1&&t.at(-1)==="/";)t.pop();return t.length?t.join(""):"/"}function lv(e){try{return decodeURI(e).normalize("NFC").toLowerCase()}catch{return e.normalize("NFC").toLowerCase()}}function ew(e){const t=new URL(`https://measurement.invalid${e}`).pathname;return lE(t.replace(/%[0-9a-f]{2}/gi,i=>i.toUpperCase()))}function Cf(e){const t=e.trim();if(!t||t.includes("?")||t.includes("#")||t.includes("://")||t.includes("\\"))throw new Error(`Invalid measurement path prefix: ${e}`);const i=t.startsWith("/")?t:`/${t}`;for(const s of i.split("/")){let r;try{r=decodeURIComponent(s)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}if(r==="."||r==="..")throw new Error(`Invalid measurement path prefix: ${e}`)}try{return ew(i)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}}function cE(e){const t=/^[a-z][a-z0-9+.-]*:\/\/[^/?#]*/i.exec(e);if(!t)throw new Error(`Invalid exact measurement URL: ${e}`);return e.slice(t[0].length).split(/[?#]/,1)[0]||"/"}function cv(e){const t=e.trim();if(!t||t.includes("\\"))throw new Error(`Invalid exact measurement URL: ${e}`);let i;try{i=new URL(t)}catch{throw new Error(`Invalid exact measurement URL: ${e}`)}if(i.protocol!=="http:"&&i.protocol!=="https:"||i.username||i.password||i.port||i.search||i.hash)throw new Error(`Invalid exact measurement URL: ${e}`);const s=Cu(i.hostname),r=Cf(cE(t));return`https://${s}${r}`}const yl=c().trim().min(1).refine(e=>{try{return Cu(e),!0}catch{return!1}},"A target URL matcher host must be a valid hostname").overwrite(e=>Cu(e)),uE=c().trim().min(1).refine(e=>{try{return Cf(e),!0}catch{return!1}},"A target URL matcher pathPrefix must be an absolute path without query or fragment").overwrite(e=>Cf(e)),dE=c().trim().min(1).refine(e=>{try{return cv(e),!0}catch{return!1}},"A target exact matcher must be an HTTP(S) URL without credentials, port, query, or fragment").overwrite(e=>cv(e)),mE=gt("kind",[y({kind:ae("exact"),url:dE,pathCase:rv}).strict(),y({kind:ae("prefix"),host:yl,pathPrefix:uE,pathCase:rv}).strict(),y({kind:ae("host"),host:yl}).strict()]),tw=c().trim().min(1).max(256).refine(e=>vs(e).length>0,"A target alias must contain mention text"),pE=Le(c().trim().min(1),c()),fE=yl,nw=y({stableKey:Kt,label:c().trim().min(1),urls:k(mE).min(1),aliases:k(tw),metadata:pE.optional()}).strict(),v0=y({stableKey:Kt,label:c().trim().min(1),targetKeys:k(Kt).min(1),competitors:k(fE).optional()}).strict(),aw=y({targetKey:Kt,queryIds:k(Al).min(1),context:gn.nullable().optional()}).strict();function hE(e,t){return e<t?-1:e>t?1:0}function gE(e,t=i=>i){const i=new Set,s=new Set;for(const r of e){const u=t(r);i.has(u)&&s.add(u),i.add(u)}return s}function Gp(e,t,i,s,r){for(const u of gE(t,r))e.addIssue({code:"custom",path:[...i],message:`Duplicate ${s}: ${u}`})}function uv(e){if(e.kind==="host")return{host:e.host,pathname:null};if(e.kind==="prefix")return{host:e.host,pathname:e.pathPrefix};const t=new URL(e.url);return{host:Cu(t.hostname),pathname:ew(t.pathname||"/")}}function yE(e,t,i,s){return e===i||(t==="insensitive"||s==="insensitive")&&lv(e)===lv(i)}function bE(e,t){if(e.kind!==t.kind)return!1;const i=uv(e),s=uv(t);return i.host!==s.host?!1:e.kind==="host"||t.kind==="host"?!0:yE(i.pathname,e.pathCase,s.pathname,t.pathCase)}function vE(e){const t=new Set;return[...e].sort(hE).filter(i=>{const s=vs(i);return t.has(s)?!1:(t.add(s),!0)})}const iw=y({schemaVersion:ae(Wk),targets:k(nw).min(1),groups:k(v0).optional(),targetQuerySelections:k(aw).optional()}).strict().superRefine((e,t)=>{const i=e.groups??[],s=e.targetQuerySelections??[];Gp(t,e.targets.map(b=>b.stableKey),["targets"],"target stable key"),Gp(t,i.map(b=>b.stableKey),["groups"],"group stable key");const r=new Set(e.targets.map(b=>b.stableKey)),u=new Set(i.map(b=>b.stableKey));for(const b of r)u.has(b)&&t.addIssue({code:"custom",path:["groups"],message:`Target and group stable keys must be globally unique: ${b}`});const d=new Map,g=[];e.targets.forEach((b,v)=>{for(const x of vE(b.aliases)){const S=vs(x),j=d.get(S);j&&j!==b.stableKey&&t.addIssue({code:"custom",path:["targets",v,"aliases"],message:`Target alias is already assigned to target ${j}: ${x}`}),d.set(S,b.stableKey)}b.urls.forEach((x,S)=>{g.find(_=>_.targetKey!==b.stableKey&&bE(_.matcher,x))&&t.addIssue({code:"custom",path:["targets",v,"urls",S],message:"Target URL matcher has an equal-specificity cross-target tie"}),g.push({targetKey:b.stableKey,matcher:x})})}),i.forEach((b,v)=>{Gp(t,b.targetKeys,["groups",v,"targetKeys"],"group target key");for(let x=0;x<b.targetKeys.length;x++){const S=b.targetKeys[x];r.has(S)||t.addIssue({code:"custom",path:["groups",v,"targetKeys",x],message:`Unknown target: ${S}`})}}),s.forEach((b,v)=>{r.has(b.targetKey)||t.addIssue({code:"custom",path:["targetQuerySelections",v,"targetKey"],message:`Unknown target: ${b.targetKey}`})})});iw.transform(e=>({...e,groups:e.groups??[],targetQuerySelections:e.targetQuerySelections??[]}));y({expectedActiveRevision:jl.nullable(),plan:iw}).strict();const kE=y({queryId:Al,queryText:c().min(1)}).strict(),k0=y({stableKey:c().min(1),queryText:c().min(1),context:gn.nullable(),expectedSnapshots:h().int().nonnegative()}).strict(),wE=y({kind:ae("baseline"),executionNodeKey:c().min(1),queryId:Al}).strict(),xE=y({kind:ae("target"),executionNodeKey:c().min(1),queryId:Al,targetKey:Kt}).strict(),zf=gt("kind",[wE,xE]),sw=y({code:ae("target-alias-prefix-overlap"),message:c().min(1),targetKeys:k(Kt).min(1),aliases:k(c().min(1)).min(1)}).strict(),ow=nw.extend({mentionNotApplicable:P()}),rw=y({schemaVersion:ae(Wk),defaultContext:gn.nullable(),effectiveOwnedHosts:k(yl),projectCanonicalHost:yl,projectBrandNames:k(tw),targets:k(ow),groups:k(v0),targetQuerySelections:k(aw),querySnapshots:k(kE),executionNodes:k(k0),usageEdges:k(zf),warnings:k(sw)}).strict(),SE=rw,lw=gt("schemaVersion",[rw,Gu]),w0=c().regex(/^[a-f0-9]{64}$/),x0=c().datetime(),cw=y({schemaVersion:ae(1),providers:k(c().min(1)).min(1),models:Le(c().min(1),c().min(1)),checksum:c().regex(/^[a-f0-9]{64}$/)}).strict(),jE=y({groups:k(Kt).optional(),targets:k(Kt).optional()}).strict(),AE=y({groups:k(Kt),targets:k(Kt),queries:k(c().min(1)),resolvedTargets:k(Kt)}).strict().superRefine((e,t)=>{e.resolvedTargets.length===0&&e.queries.length===0&&t.addIssue({code:"custom",path:["resolvedTargets"],message:"A recorded scope must name something it measured"})});y({stableKey:Kt,retiredAt:c().datetime()});y({active:y({revision:jl,checksum:w0,createdAt:x0,plan:lw}).nullable()});y({versions:k(y({revision:jl,checksum:w0,createdAt:x0,active:P()}))});y({version:y({revision:jl,checksum:w0,createdAt:x0,active:P(),plan:lw})});const gu=y({targets:h().int(),groups:h().int(),queries:h().int(),executionNodes:h().int(),usageEdges:h().int(),baselineEdges:h().int(),targetEdges:h().int(),dedupSavings:h().int()}).strict(),NE=E(["invalid-authoring","duplicate-identity","unknown-target","unknown-query","invalid-project-context","unowned-target-url","owned-competitor","target-query-context-conflict","target-url-ownership-tie","target-alias-cross-target-collision","target-alias-project-brand-collision","target-alias-prefix-overlap"]),uw=y({id:NE,severity:E(["fail","warn"]),message:c().min(1),path:k(Ge([c(),h().int()]))}).strict(),_E=y({baseline:h().int().nonnegative(),target:h().int().nonnegative()}).strict(),dw=y({ok:ae(!0),checks:k(uw),executionNodes:k(k0),dedupSaved:h().int().nonnegative(),usageEdges:_E,estCostUsd:he(),plan:SE,warnings:k(sw),counts:gu}).strict(),mw=y({ok:ae(!1),checks:k(uw).min(1),executionNodes:k(k0).length(0),dedupSaved:ae(0),usageEdges:y({baseline:ae(0),target:ae(0)}).strict(),estCostUsd:he()}).strict();gt("ok",[dw,mw]);const au=y({targetKey:Kt,context:gn.nullable(),queryIds:k(Al)}).strict();function dv(e){return y({added:k(e),removed:k(e),changed:k(y({stableKey:Kt,before:e,after:e}).strict()),unchanged:k(Kt)}).strict()}const CE=dw.extend({diff:y({activeRevision:jl.nullable(),targets:dv(ow),groups:dv(v0),querySelections:y({added:k(au),removed:k(au),changed:k(y({targetKey:Kt,before:au,after:au}).strict()),unchanged:k(y({targetKey:Kt,context:gn.nullable()}).strict())}).strict(),execution:y({addedNodeKeys:k(c().min(1)),removedNodeKeys:k(c().min(1)),addedUsageEdges:k(zf),removedUsageEdges:k(zf),counts:y({before:gu.nullable(),after:gu,delta:gu.nullable()}).strict()}).strict()}).strict()}).strict(),zE=mw.extend({diff:he()}).strict();gt("ok",[CE,zE]);const Hu=E(["complete","partial","failed","unsupported"]);Hu.enum;E(["proposed","alias","shared","unmatched","excluded"]);E(["primary-match","exact-slug-match","excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"]);const EE=E(["invalid-url","unowned-host","duplicate-url","url-cap-reached"]),TE=y({kind:E(["exact","prefix","suffix","contains"]),value:c().trim().min(1)}).strict(),mv=y({host:c().trim().min(1),pathTemplate:c().trim().min(1)}).strict(),S0=y({primary:mv,aliases:k(mv).optional(),excludedSlugSuffixes:k(c().trim().min(1)).optional(),excludedSlugPatterns:k(TE).optional()}).strict();y({sitemapUrl:c().url().refine(e=>{try{const t=new URL(e).protocol;return t==="http:"||t==="https:"}catch{return!1}},"Sitemap URL must use http or https"),rule:S0,maxUrls:h().int().positive().max(1e4).optional()}).strict();const Hp=y({url:c(),canonicalUrl:c().nullable(),classification:E(["shared","unmatched","excluded"]),reason:E(["excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"])}).strict().superRefine((e,t)=>{({shared:["shared-path"],unmatched:["unmatched-path","alias-without-primary","unsupported-slug"],excluded:["excluded-slug"]})[e.classification].includes(e.reason)||t.addIssue({code:"custom",message:"Discovery classification and reason do not match"})}),DE=y({classification:ae("proposed"),reason:ae("primary-match"),stableKey:Kt,slug:c().trim().min(1),label:c().trim().min(1),primaryUrl:c().url(),aliasCoverageUrls:k(c().url())}).strict(),OE=y({classification:ae("alias"),reason:ae("exact-slug-match"),slug:c().trim().min(1),url:c().url(),targetStableKey:Kt}).strict(),RE=y({kind:EE,url:c(),canonicalUrl:c().nullable(),duplicateOf:c().optional()}).strict();y({proposed:k(DE),aliases:k(OE),shared:k(Hp),unmatched:k(Hp),excluded:k(Hp),diagnostics:k(RE)}).strict().superRefine((e,t)=>{const i=[["shared",["shared"]],["unmatched",["unmatched"]],["excluded",["excluded"]]];for(const[s,r]of i)for(const u of e[s])r.includes(u.classification)||t.addIssue({code:"custom",path:[s],message:"Discovery item is in the wrong result bucket"})});const j0=E(["assigned","sibling","ownedUnmapped","external","ambiguous","invalid"]),pw=E(["baseline","target"]),fw=E(["incomplete","evidence-incomplete","no-population","aliasless","no-competitors","no-project-aliases"]),ks=Ge([y({numerator:h().int().nonnegative(),denominator:h().int().positive(),rate:h().min(0).max(1)}).strict(),y({numerator:he(),denominator:he(),rate:he(),reason:fw}).strict()]).superRefine((e,t)=>{e.numerator!==null&&e.numerator>e.denominator&&t.addIssue({code:"custom",path:["numerator"],message:"Rate numerator cannot exceed denominator"})}),ME=c().trim().min(1).overwrite(e=>e.toLocaleLowerCase("en")),BE=y({executionId:c().trim().min(1),queryText:c().trim().min(1),provider:ME,context:gn.nullable(),requestedModel:c().trim().min(1).optional()}).strict();y({schemaVersion:ae(1),expectedSlots:k(BE)}).strict().superRefine((e,t)=>{const i=new Set;for(const[s,r]of e.expectedSlots.entries()){const u=[r.executionId,r.provider].join("\0");i.has(u)&&t.addIssue({code:"custom",path:["expectedSlots",s],message:"Duplicate expected provider slot"}),i.add(u)}});const Qu=y({executed:h().int().nonnegative(),expected:h().int().nonnegative(),complete:P(),sourceComplete:P(),sourceCompleteObservations:h().int().nonnegative(),answerComplete:P()}).strict(),pv=Ge([y({domain:c().trim().min(1),own:P(),presentIn:h().int().nonnegative(),of:h().int().positive()}).strict(),y({domain:c().trim().min(1),own:P(),presentIn:he(),of:he(),reason:fw}).strict()]),qE=y({domains:k(pv),providers:k(y({provider:dt,domains:k(pv)}).strict())}).strict(),IE=y({provider:dt,completeness:Qu,answerCoverage:ks}).strict(),LE=y({id:c().trim().min(1),label:c().trim().min(1),targetIds:k(c().trim().min(1)),completeness:Qu,answerCoverage:ks,targetCoverage:ks,sov:qE,providers:k(IE)}).strict(),PE=y({provider:dt,completeness:Qu,citationCoverage:ks,mentionCoverage:ks}).strict(),$E=y({id:c().trim().min(1),label:c().trim().min(1),completeness:Qu,citationCoverage:ks,mentionCoverage:ks,providers:k(PE)}).strict(),hw=y({observationId:c().trim().min(1),expectedSlotId:c().trim().min(1),executionId:c().trim().min(1),usageEdgeId:c().trim().min(1),usageEdgeType:pw,provider:dt,queryText:c().trim().min(1),location:c().nullable(),sourceUrl:c(),bridged:P(),historical:P(),evidenceComplete:P(),classification:j0,normalizedUrl:c().nullable(),matchedTargetIds:k(c().trim().min(1)),matchedUrlIds:k(c().trim().min(1))}).strict(),UE=y({sourceUrl:c(),normalizedUrl:c().nullable(),classification:j0,matchedTargetIds:k(c().trim().min(1)),matchedUrlIds:k(c().trim().min(1))}).strict(),VE=y({observationId:c().trim().min(1),expectedSlotId:c().trim().min(1),executionId:c().trim().min(1),usageEdgeId:c().trim().min(1),usageEdgeType:pw,provider:dt,queryText:c().trim().min(1),location:c().nullable(),queryClass:Ge([E(["branded","non-brand"]),he()]),mentioned:P().nullable(),cited:P().nullable(),sources:k(UE),sourceCount:h().int().nonnegative(),sourcesTruncated:P(),bridged:P(),historical:P(),evidenceComplete:P()}).strict(),KE=y({bridgedObservationIds:k(c()),historicalObservationIds:k(c()),evidenceIncompleteObservationIds:k(c()),ambiguousObservationIds:k(c()),unmatchedObservationIds:k(c())}).strict(),GE=y({id:c().trim().min(1),status:E(["completed","partial"]),createdAt:c().datetime(),startedAt:c().datetime().nullable(),finishedAt:c().datetime().nullable()}).strict();y({revision:h().int().positive(),run:GE.nullable(),groups:k(LE),targets:k($E),evidence:k(hw),diagnostics:KE}).strict();y({property:y({targetKey:ve,label:c().min(1)}).strict(),queryClass:ma,measurement:y({state:b0,displayedRunId:c().min(1).optional(),completedAt:c().datetime().optional()}).strict(),evidence:Do(hw).optional(),answers:Do(VE).optional()}).strict().refine(e=>e.evidence===void 0!=(e.answers===void 0),{message:"Exactly one of evidence or answers is present, naming the shape that was served."});const A0=E(["used","not-used","unknown","not-applicable"]);A0.enum;const N0=E(["native-auto-v1","search-required-v1"]);N0.enum;const ua=c().trim().min(1),Nl=c().trim().min(1),HE=c().trim().min(1),Ye=h().int().nonnegative(),_l=y({state:b0,displayedRunId:ua.nullable(),planRevision:h().int().positive(),completedAt:c().datetime().nullable()}).strict(),Cl=y({targetKey:ve,label:Nl}).strict(),Bn={runId:ua.optional(),provider:dt.optional(),location:HE.optional()},bl=c().trim().min(1);y({runId:Bn.runId,groupKey:ve.optional(),queryClass:ma.default("non-brand"),provider:Bn.provider,location:Bn.location,limit:h().int().positive().max(50).optional()}).strict();const QE=Cl.extend({mentionCoverage:Vt,citationCoverage:Vt,flags:Ye,recommendedInstead:k(y({name:bl,occurrences:Ye}).strict()).max(5),recommendedInsteadTotal:Ye,recommendedInsteadTruncated:P()}).strict().superRefine((e,t)=>{e.recommendedInstead.length>e.recommendedInsteadTotal&&t.addIssue({code:ht.custom,path:["recommendedInsteadTotal"],message:"Total cannot be smaller than the returned replacements"}),e.recommendedInsteadTruncated!==e.recommendedInstead.length<e.recommendedInsteadTotal&&t.addIssue({code:ht.custom,path:["recommendedInsteadTruncated"],message:"Truncation must agree with the replacement total"})}),ZE=y({groupKey:ve,label:Nl,propertyCount:Ye,propertiesMentioned:Vt,mentionCoverage:Vt,citationCoverage:Vt}).strict();y({portfolio:y({groupKey:ve.nullable(),label:Nl.nullable(),measurementScope:Ge([E(["full","spot_check"]),he()])}).strict(),measurement:_l,queryClass:ma,metrics:y({propertiesMentioned:Vt,mentionCoverage:Vt,citationCoverage:Vt}).strict(),weakestProperties:k(QE),markets:k(ZE),totalProperties:Ye,truncated:P()}).strict();y({targetKey:ve,runId:Bn.runId,provider:Bn.provider,location:Bn.location,queryClass:ma.optional(),offset:h().int().nonnegative().optional(),limit:h().int().positive().max(100).optional()}).strict();E(["answered","missing"]);const Ef={queryId:ua,text:Nl,class:f0,provider:dt,requestedModel:c().nullable(),servedModel:c().nullable(),location:c().nullable()},FE=gt("status",[y({resultId:ua,...Ef,status:ae("answered"),mentioned:P().nullable(),cited:P().nullable(),recommendedInstead:k(bl),answerExcerpt:c().nullable()}).strict(),y({resultId:he(),...Ef,status:ae("missing"),mentioned:he(),cited:he(),recommendedInstead:k(bl).length(0),answerExcerpt:he()}).strict()]);y({property:Cl,measurement:_l,queryClass:ma,questions:k(FE),total:Ye,truncated:P()}).strict();y({targetKey:ve,resultId:ua}).strict();const YE=y({url:ua,classification:j0,matchedTargetKeys:k(ve),assigned:P(),historical:P(),evidenceComplete:P()}).strict().superRefine((e,t)=>{e.assigned!==(e.classification==="assigned")&&t.addIssue({code:ht.custom,path:["assigned"],message:"Assigned must agree with the source attribution classification"})});y({property:Cl,measurement:_l,question:y({resultId:ua,...Ef,status:ae("answered")}).strict(),mentioned:P().nullable(),cited:P().nullable(),recommendedInstead:k(bl),answer:c().nullable(),sources:k(YE),captureStatus:Ge([Hu,he()]),retrievalStatus:Ge([A0,he()]),retrievalContract:Ge([N0,he()])}).strict();y({targetKey:ve,runId:Bn.runId,provider:Bn.provider,location:Bn.location,queryClass:ma.optional(),limit:h().int().positive().max(50).optional()}).strict();const XE=gt("state",[y({state:ae("available"),answeredResults:Ye,targetMissResults:Ye,recommendationOccurrences:Ye}).strict(),y({state:ae("unavailable"),reason:g0}).strict()]),JE=y({name:bl,occurrences:Ye,providers:k(dt).max(5),providerTotal:Ye,providersTruncated:P(),questions:k(Nl).max(5),questionTotal:Ye,questionsTruncated:P()}).strict().superRefine((e,t)=>{(e.providers.length>e.providerTotal||e.questions.length>e.questionTotal)&&t.addIssue({code:ht.custom,message:"Evidence totals cannot be smaller than returned evidence"}),e.providersTruncated!==e.providers.length<e.providerTotal&&t.addIssue({code:ht.custom,path:["providersTruncated"],message:"Provider truncation must agree with its total"}),e.questionsTruncated!==e.questions.length<e.questionTotal&&t.addIssue({code:ht.custom,path:["questionsTruncated"],message:"Question truncation must agree with its total"})});y({property:Cl,measurement:_l,queryClass:ma,basis:XE,competitors:k(JE),total:Ye,truncated:P()}).strict();y({runId:Bn.runId,scope:y0.default("all"),groupKey:ve.optional(),targetKey:ve.optional(),queryClass:ma.default("all"),provider:Bn.provider,location:Bn.location,limit:h().int().positive().max(50).optional()}).strict().superRefine((e,t)=>{e.scope==="all"&&(e.groupKey!==void 0||e.targetKey!==void 0)&&t.addIssue({code:ht.custom,path:["scope"],message:"All scope cannot name a group or Property"}),e.scope==="group"&&(e.groupKey===void 0||e.targetKey!==void 0)&&t.addIssue({code:ht.custom,path:["groupKey"],message:"Group scope requires groupKey only"}),e.scope==="property"&&(e.targetKey===void 0||e.groupKey!==void 0)&&t.addIssue({code:ht.custom,path:["targetKey"],message:"Property scope requires targetKey only"})});const gw=E(["no_previous_run","execution_identity_changed","incomplete","not_comparable"]),yw=_l.extend({executionIdentity:ua.nullable(),measurementScope:Ge([E(["full","spot_check"]),he()])}).strict(),Xr=gt("state",[y({state:ae("available"),previous:Vt,current:Vt,delta:h()}).strict().superRefine((e,t)=>{if(e.previous.state!=="available"||e.current.state!=="available"){t.addIssue({code:ht.custom,message:"Available deltas require two available metrics"});return}Math.abs(e.delta-(e.current.value-e.previous.value))>Number.EPSILON&&t.addIssue({code:ht.custom,path:["delta"],message:"Delta must equal current minus previous"})}),y({state:ae("unavailable"),reason:g0}).strict()]);y({current:yw,comparison:gt("state",[y({state:ae("available"),previous:y({displayedRunId:ua,planRevision:h().int().positive(),completedAt:c().datetime().nullable(),executionIdentity:ua,measurementScope:E(["full","spot_check"])}).strict(),metrics:y({propertiesMentioned:Xr,mentionCoverage:Xr,citationCoverage:Xr}).strict(),changedProperties:k(Cl.extend({mentionCoverage:Xr,citationCoverage:Xr,flags:Ye}).strict()),totalProperties:Ye,truncated:P()}).strict(),y({state:ae("unavailable"),reason:gw}).strict()])}).strict().superRefine((e,t)=>{if(e.comparison.state==="available"){if(e.current.displayedRunId===null||e.current.executionIdentity===null){t.addIssue({code:ht.custom,path:["current"],message:"A comparison requires an identified current run"});return}e.comparison.previous.planRevision!==e.current.planRevision&&t.addIssue({code:ht.custom,path:["comparison","previous","planRevision"],message:"Comparisons cannot cross plan revisions"}),e.comparison.previous.executionIdentity!==e.current.executionIdentity&&t.addIssue({code:ht.custom,path:["comparison","previous","executionIdentity"],message:"Comparisons cannot cross execution identities"})}});y({runId:Bn.runId}).strict();const WE=E(["no_completed_run","incomplete","evidence_incomplete","no_population","not_applicable"]),Zu=y({state:ae("unavailable"),reason:WE}).strict(),eT=y({state:ae("available"),expected:Ye,executed:Ye,answered:Ye,missing:Ye}).strict(),tT=gt("state",[eT,Zu]).superRefine((e,t)=>{e.state==="available"&&(e.executed+e.missing!==e.expected&&t.addIssue({code:ht.custom,message:"Expected must equal executed plus missing"}),e.answered>e.executed&&t.addIssue({code:ht.custom,path:["answered"],message:"Answered cannot exceed executed"}))}),nT=y({state:ae("available"),complete:Ye,partial:Ye,failed:Ye,unsupported:Ye,notRecorded:Ye}).strict(),aT=gt("state",[nT,Zu]),iT=y({state:ae("available"),used:Ye,notUsed:Ye,unknown:Ye,notApplicable:Ye,notRecorded:Ye}).strict(),sT=gt("state",[iT,Zu]),oT=y({state:ae("available"),expectedQuestions:Ye,answeredQuestions:Ye,missingQuestions:Ye}).strict(),rT=gt("state",[oT,Zu]).superRefine((e,t)=>{e.state==="available"&&e.answeredQuestions+e.missingQuestions!==e.expectedQuestions&&t.addIssue({code:ht.custom,message:"Expected questions must equal answered plus missing"})});y({run:yw,completeness:tT,capture:aT,retrieval:sT,population:rT,comparison:gt("state",[y({state:ae("available"),previousDisplayedRunId:ua}).strict(),y({state:ae("unavailable"),reason:gw}).strict()])}).strict().superRefine((e,t)=>{if(e.completeness.state!=="available")return;const i=e.completeness.executed;e.capture.state==="available"&&e.capture.complete+e.capture.partial+e.capture.failed+e.capture.unsupported+e.capture.notRecorded!==i&&t.addIssue({code:ht.custom,path:["capture"],message:"Capture counts must total executed snapshots"}),e.retrieval.state==="available"&&e.retrieval.used+e.retrieval.notUsed+e.retrieval.unknown+e.retrieval.notApplicable+e.retrieval.notRecorded!==i&&t.addIssue({code:ht.custom,path:["retrieval"],message:"Retrieval counts must total executed snapshots"})});const Oo=c().regex(/^[a-f0-9]{64}$/),da=c().trim().min(1).max(256),Pi=h().int().positive(),fv=y({kind:E(["user","api-key","system"]),id:c().trim().min(1),label:c().trim().min(1)}).strict(),lT=E(["proposed","included","excluded"]),cT=E(["manual","sitemap"]),_0=y({stableKey:ve,label:c().trim().min(1),status:lT,aliases:k(c().trim().min(1)),urlMatchers:k(c().trim().min(1)),source:cT,discoveredUrl:c().trim().min(1).optional(),discoveryIdentity:c().trim().min(1).optional()}).strict(),Fu=y({providers:k(dt).optional(),models:Le(dt,c().trim().min(1)).optional(),locations:k(c().trim().min(1)).optional()}).strict(),uT=E(["branded","non-brand","unclassified"]),dT=E(["rule","operator"]),bw=y({targetKey:ve,queryId:da,contextOverride:Fu.optional(),queryClass:uT,classificationSource:dT}).strict(),C0=Xk,vw=y({stableKey:ve,label:c().trim().min(1),targetKeys:k(ve),competitors:k(C0)}).strict(),mT=y({sitemapUrl:c().url(),rule:S0,exclusions:k(c().trim().min(1)),inputChecksum:Oo,reviewedAt:c().datetime().optional()}).strict(),pT=y({providers:k(dt),models:Le(dt,c().trim().min(1)).optional(),locations:k(c().trim().min(1))}).strict(),fT=y({defaultContext:pT,targets:k(_0),assignments:k(bw),groups:k(vw),discovery:mT.optional()}).strict(),hT=y({id:c().trim().min(1),projectId:c().trim().min(1),schemaVersion:ae(2),baseActiveVersionId:c().trim().min(1).nullable(),baseActiveRevision:Pi.nullable(),authoring:fT,createdBy:fv,updatedBy:fv,createdAt:c().datetime(),updatedAt:c().datetime()}).strict(),z0=y({targets:h().int().nonnegative(),includedTargets:h().int().nonnegative(),assignments:h().int().nonnegative(),unclassifiedAssignments:h().int().nonnegative(),groups:h().int().nonnegative(),competitors:h().int().nonnegative()}).strict(),gT=y({code:c().trim().min(1),message:c().trim().min(1),path:k(Ge([c(),h().int()]))}).strict(),yT=y({etag:c().trim().min(1),changed:P(),warnings:k(gT),counts:z0}).strict();y({draft:hT.nullable(),etag:c().trim().min(1).nullable()}).strict();Do(_0);Do(bw);Do(vw);y({search:c().optional(),cursor:c().trim().min(1).optional(),limit:h().int().positive().max(h0).optional()}).strict();y({expectedActiveRevision:Pi.nullable()}).strict();y({sitemapUrl:c().url(),rule:S0,exclusions:k(c().trim().min(1)).optional()}).strict();const bT=y({discoveryIdentity:c().trim().min(1),action:E(["create","rebind","ignore"]),targetKey:ve.optional(),label:c().trim().min(1).optional()}).strict();y({selections:k(bT),selectedTargetKeys:k(ve).optional()}).strict().superRefine((e,t)=>{e.selections.length===0&&e.selectedTargetKeys===void 0&&t.addIssue({code:"custom",message:"A proposal or reviewed Property selection is required."}),e.selectedTargetKeys&&new Set(e.selectedTargetKeys).size!==e.selectedTargetKeys.length&&t.addIssue({code:"custom",path:["selectedTargetKeys"],message:"Property keys must be unique."})});y({target:_0}).strict();y({targetKey:ve,label:c().trim().min(1)}).strict();y({targetKey:ve,mergedKeys:k(ve).min(1)}).strict();y({targetKey:ve,cleanup:ae("assignments-and-group-memberships").optional()}).strict();y({targetKey:ve,discoveryIdentity:c().trim().min(1),discoveredUrl:c().url()}).strict();const kw={targetKeys:k(ve).optional(),groupKeys:k(ve).optional()};function ww(e,t){(e.targetKeys?.length??0)===0&&(e.groupKeys?.length??0)===0&&t.addIssue({code:"custom",message:"At least one Target or group selector is required."})}y(kw).strict().superRefine(ww);const vT=y({...kw,queryIds:k(da).min(1),contextOverride:Fu.optional()}).strict().superRefine(ww);Ge([y({targetKey:ve,queryIds:k(da).min(1),contextOverride:Fu.optional()}).strict(),vT]);const kT=y({groupKey:ve,label:c().trim().min(1),memberCount:h().int().positive()}).strict();y({draftEtag:c().trim().min(1),groups:k(kT),resolvedTargetKeys:k(ve),overlapCount:h().int().nonnegative(),assignments:y({requested:h().int().nonnegative(),added:h().int().nonnegative(),alreadyPresent:h().int().nonnegative()}).strict(),execution:y({addedNodes:h().int().nonnegative(),addedProviderCalls:h().int().nonnegative(),fullRunNodes:h().int().nonnegative(),fullRunProviderCalls:h().int().nonnegative()}).strict()}).strict();y({pairs:k(y({targetKey:ve,queryId:da}).strict()).min(1),contextOverride:Fu.optional()}).strict();Ge([y({targetKey:ve,queryId:da}).strict(),y({targetKeys:k(ve).min(1),queryId:da}).strict()]);y({targetKey:ve}).strict();y({queryClass:f0,assignments:k(y({targetKey:ve,queryId:da}).strict()).min(1)}).strict();y({group:y({stableKey:ve,label:c().trim().min(1),targetKeys:k(ve),competitors:k(C0).optional()}).strict()}).strict();y({groupKey:ve}).strict();y({groupKey:ve,competitor:C0}).strict();y({groupKey:ve,competitorKey:ve}).strict();const zu=y({ruleId:c().trim().min(1),severity:E(["fail","warn"]),message:c().trim().min(1),path:k(Ge([c(),h().int()]))}).strict();gt("ok",[y({ok:ae(!0),compiledChecksum:Oo,checks:k(zu),counts:z0,plan:Gu}).strict(),y({ok:ae(!1),compiledChecksum:he(),checks:k(zu).min(1)}).strict()]);const hv=y({added:k(c().trim().min(1)),removed:k(c().trim().min(1)),changed:k(c().trim().min(1)),unchanged:k(c().trim().min(1))}).strict(),wT=y({activeRevision:Pi.nullable(),targets:hv,groups:hv,assignments:y({added:h().int().nonnegative(),removed:h().int().nonnegative(),reclassified:h().int().nonnegative()}).strict(),execution:y({addedNodeKeys:k(c().trim().min(1)),removedNodeKeys:k(c().trim().min(1))}).strict()}).strict();gt("ok",[y({ok:ae(!0),compiledChecksum:Oo,checks:k(zu),counts:z0,plan:Gu,diff:wT}).strict(),y({ok:ae(!1),compiledChecksum:he(),checks:k(zu).min(1),diff:he()}).strict()]);y({expectedActiveRevision:Pi.nullable(),expectedCompiledChecksum:Oo}).strict();y({published:P(),active:y({revision:Pi,checksum:Oo,compiledChecksum:Oo,createdAt:c().datetime(),plan:Gu}).strict()}).strict();y({discarded:P()}).strict();y({expectedActiveRevision:Pi}).strict();y({deactivated:P(),previousRevision:Pi.nullable()}).strict();const xT=E(["republish_required","setup_in_progress","awaiting_first_run","operational","simple"]),ST=E(["republish_setup","continue_setup","run_measurement","view_measurement","start_setup"]),jT=E(["simple","draft-only","active-v1","active-v2"]);y({state:xT,nextAction:ST,mode:jT,activeRevision:Pi.nullable(),activeSchemaVersion:Ge([ae(1),ae(2)]).nullable(),draft:y({etag:c().trim().min(1),updatedAt:c().datetime()}).strict().nullable()}).strict();const xw=y({id:c().trim().min(1),projectId:c().trim().min(1),name:c().trim().min(1),description:c().nullable(),itemCount:h().int().nonnegative(),createdAt:c().datetime(),updatedAt:c().datetime()}).strict(),AT=y({queryId:da,queryText:c().min(1),position:h().int().nonnegative()}).strict();xw.extend({items:k(AT)}).strict();y({querySets:k(xw)}).strict();y({name:c().trim().min(1),description:c().nullable().optional(),queryIds:k(da)}).strict();const NT=y({id:c().trim().min(1),projectId:c().trim().min(1),name:c().trim().min(1),description:c().nullable(),pattern:c().trim().min(1),variables:k(c().trim().min(1)),createdAt:c().datetime(),updatedAt:c().datetime()}).strict();y({templates:k(NT)}).strict();y({name:c().trim().min(1),description:c().nullable().optional(),pattern:c().trim().min(1),variables:k(c().trim().min(1))}).strict();y({bindings:k(Le(c().trim().min(1),c().trim().min(1))).min(1),querySetId:c().trim().min(1).optional()}).strict();y({created:k(y({queryId:da,queryText:c().min(1)}).strict()),existing:k(y({queryId:da,queryText:c().min(1)}).strict())}).strict();const Eu=c().regex(/^[a-f0-9]{64}$/),Yu=h().int().positive();y({stableKey:ve,kind:E(["target","group"]),retiredAt:c().datetime().nullable()}).strict();y({csv:c()}).strict();E(["matched","ambiguous","unmatched","invalid","duplicate","proposed","excluded"]);const _T=E(["column-count","missing-property","missing-group","invalid-url","property-not-found","property-label-ambiguous","url-not-exact-match","target-proposed","target-excluded","group-label-ambiguous","group-key-conflict"]),Tf=y({dataRow:Yu,property:c(),group:c(),url:c().nullable(),normalizedProperty:c(),normalizedGroupLabel:c()}).strict(),Jr=Tf.extend({reason:_T}),CT=y({source:E(["draft-target","draft-group","persisted-segment","retired-segment","proposed-group"]),stableKey:ve,kind:E(["target","group"]).optional(),retiredAt:c().datetime().nullable().optional(),normalizedGroupLabel:c().optional()}).strict(),zT=y({proposedGroupKey:ve,evidence:k(CT).min(1)}).strict(),ET=gt("status",[Tf.extend({status:ae("matched"),targetKey:ve,groupKey:ve}).strict(),Jr.extend({status:ae("ambiguous"),candidateTargetKeys:k(ve).min(1).optional(),candidateGroupKeys:k(ve).min(1).optional()}).strict(),Jr.extend({status:ae("unmatched")}).strict(),Jr.extend({status:ae("invalid"),groupKeyConflict:zT.optional()}).strict(),Tf.extend({status:ae("duplicate"),duplicateOfRow:Yu,targetKey:ve,groupKey:ve}).strict(),Jr.extend({status:ae("proposed"),targetKey:ve}).strict(),Jr.extend({status:ae("excluded"),targetKey:ve}).strict()]),TT=y({normalizedGroupLabel:c(),groupKey:ve,label:c().trim().min(1),action:E(["create","extend"]),matchedRows:k(Yu),targetKeys:k(ve),addedTargetKeys:k(ve),unchangedTargetKeys:k(ve)}).strict(),DT=y({dataRows:h().int().nonnegative(),matchedRows:h().int().nonnegative(),ambiguousRows:h().int().nonnegative(),unmatchedRows:h().int().nonnegative(),invalidRows:h().int().nonnegative(),duplicateRows:h().int().nonnegative(),proposedRows:h().int().nonnegative(),excludedRows:h().int().nonnegative(),needsAttention:h().int().nonnegative(),groupsReady:h().int().nonnegative(),groupsToCreate:h().int().nonnegative(),groupsToExtend:h().int().nonnegative(),membershipsReady:h().int().nonnegative(),addedMemberships:h().int().nonnegative(),unchangedMemberships:h().int().nonnegative()}).strict();y({draftEtag:c().trim().min(1),sourceChecksum:Eu,previewChecksum:Eu,rows:k(ET),groupChanges:k(TT),counts:DT}).strict();y({csv:c(),sourceChecksum:Eu,previewChecksum:Eu,acceptedRows:k(Yu).min(1)}).strict().superRefine((e,t)=>{new Set(e.acceptedRows).size!==e.acceptedRows.length&&t.addIssue({code:"custom",path:["acceptedRows"],message:"Accepted CSV data rows must be unique."})});yT.extend({appliedRows:h().int().nonnegative(),addedMemberships:h().int().nonnegative(),unchangedMemberships:h().int().nonnegative()}).strict();const Sw=E(["introduced","repointed","retired"]),OT=Sw.enum;y({modelId:c().trim().min(1),date:c().regex(/^\d{4}-\d{2}-\d{2}$/,"date must be YYYY-MM-DD"),kind:Sw,confirmed:P(),sourceUrl:c().url(),note:c().min(1)});const RT=[{modelId:"chatgpt-4o-latest",date:"2024-08-15",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released dynamic model for chatgpt-4o-latest—this model will point to the latest GPT-4o model used by ChatGPT." First moving id in the lineage.'},{modelId:"chatgpt-4o-latest",date:"2026-02-17",kind:"retired",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/deprecations.md",note:'Shutdown 2026-02-17, replacement gpt-5.1-chat-latest. Announced under the heading "2025-11-18: chatgpt-4o-latest snapshot".'},{modelId:"gpt-5.1-chat-latest",date:"2025-11-13",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.1 launch entry, not as a standalone entry."},{modelId:"gpt-5.2-chat-latest",date:"2025-12-11",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.2 launch entry."},{modelId:"gpt-5.2-chat-latest",date:"2026-02-10",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.2-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-03",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released gpt-5.3-chat-latest to the Chat Completions and Responses API. This model points to the GPT-5.3 Instant snapshot currently used in ChatGPT."'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-16",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.3-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"chat-latest",date:"2026-05-05",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released chat-latest snapshot which points to the latest Instant model currently used in ChatGPT... The underlying model snapshot will be regularly updated."'},{modelId:"chat-latest",date:"2026-05-28",kind:"repointed",confirmed:!1,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'UNCONFIRMED. The entry reads "Released chat-latest snapshot..." — the verb is "Released", the same boilerplate as the 2026-05-05 entry, not "Updated" as used on 2026-06-24. Only "the latest improvements" vs "our latest improvements" differs. Either a real change logged with copy-pasted text, or a duplicated entry; the record does not disambiguate.'},{modelId:"chat-latest",date:"2026-06-24",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim (re-read at source 2026-07-20): "Updated the chat-latest snapshot, which points to the latest Instant model currently used in ChatGPT." The verb is "Updated", unlike the "Released" boilerplate of 2026-05-05 and 2026-05-28, which is the wording the changelog reserves for a real change. Target model NOT named. The only unambiguous chat-latest change on record.'}];OT.repointed;new Set(RT.map(e=>e.modelId.toLowerCase()));const MT=E(["not-exposed","no-known-change","known-change"]);MT.enum;const BT=y({modelId:c().trim().min(1),date:c().regex(/^\d{4}-\d{2}-\d{2}$/),confirmed:P(),sourceUrl:c().url()}),qT=y({status:E(["no-known-change","known-change"]),modelIds:k(c().trim().min(1)).min(1),changes:k(BT),changeCount:h().int().nonnegative(),unverifiedChangeCount:h().int().nonnegative(),firstChangeDate:c().optional(),lastChangeDate:c().optional(),knownGoodAsOf:c(),checkedThroughPeriodEnd:P()}),IT={openai:"ChatGPT",chatgpt:"ChatGPT",anthropic:"Claude",claude:"Claude",google:"Gemini",gemini:"Gemini",perplexity:"Perplexity"};function LT(e){const t=e.trim().toLowerCase();return IT[t]??e.charAt(0).toUpperCase()+e.slice(1)}function Qp(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):0}function Wr(e){return typeof e=="string"&&e.trim().length>=10?e.trim().slice(0,10):null}function Zp(e){return[...new Set(e.filter(t=>t!==null))].sort()}function PT(e,t){const i=LT(e),s=Array.isArray(t.changes)?t.changes:[],r=Qp(t.changeCount)||s.length,u=Math.min(r,Qp(t.unverifiedChangeCount)||Qp(t.unconfirmedChangeCount)||s.filter(x=>x.confirmed===!1).length),d=Wr(t.knownGoodAsOf),g=t.checkedThroughPeriodEnd!==!1,b={engine:i,confirmedCount:r-u,unconfirmedCount:u,knownGoodAsOf:d,checkedThroughPeriodEnd:g};if(s.length>0)return{...b,confirmedDates:Zp(s.filter(x=>x.confirmed!==!1).map(x=>Wr(x.date))),unconfirmedDates:Zp(s.filter(x=>x.confirmed===!1).map(x=>Wr(x.date)))};const v=Zp([Wr(t.firstChangeDate),Wr(t.lastChangeDate)]);return r===0?{...b,confirmedDates:[],unconfirmedDates:[]}:u===0?{...b,confirmedDates:v,unconfirmedDates:[]}:b.confirmedCount===0?{...b,confirmedDates:[],unconfirmedDates:v}:{...b,confirmedDates:[],unconfirmedDates:[]}}function $T(e){return e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function gv(e,t){return e.length===0?null:e.length===1&&t<=1?`on ${e[0]}`:`more than once between ${e[0]} and ${e[e.length-1]}`}function UT(e){const t=gv(e.confirmedDates,e.confirmedCount),i=gv(e.unconfirmedDates,e.unconfirmedCount),s=`The model behind ${e.engine}`;if(e.confirmedCount>0&&e.unconfirmedCount===0)return t?`${s} was updated ${t}, inside this period.`:`${s} was updated inside this period.`;if(e.confirmedCount===0)return i?`${s} may have been updated ${i}, inside this period, though that is not confirmed.`:`${s} may have been updated inside this period, though that is not confirmed.`;if(t&&i)return`${s} was updated ${t}, inside this period, and may also have been updated ${i}.`;const r=e.unconfirmedCount>1?"more times":"once more";return`${s} was updated inside this period, and may have been updated ${r}, though that is not confirmed.`}function yv(e){const t=e.filter(s=>!s.checkedThroughPeriodEnd&&s.knownGoodAsOf!==null);return t.length===0?null:`We last checked for model updates on ${t.map(s=>s.knownGoodAsOf).sort()[0]}, and this period runs past that date, so there may be later updates we do not know about.`}function lK(e){const t=Object.entries(e??{}).map(([b,v])=>PT(b,v??{})).sort((b,v)=>b.engine.localeCompare(v.engine));if(t.length===0)return null;const i=t.filter(b=>b.confirmedCount+b.unconfirmedCount>0);if(i.length===0){const b=[...new Set(t.map(_=>_.engine))],v=b.length>1,x=yv(t),S=[...new Set(t.map(_=>_.knownGoodAsOf).filter(_=>_!==null))].sort(),j=x??(S.length>0?`We last checked for model updates on ${S[0]}.`:null);return{kind:"no-known-change",text:`No model updates are on record for ${$T(b)} in this period.`,detail:`${v?"These engines":"This engine"} can be moved onto a different underlying model without the data ever showing a different model name, so we check each period against a record of known updates. Nothing is listed inside this one.${j?` ${j}`:""}`}}const s=i.reduce((b,v)=>b+v.confirmedCount+v.unconfirmedCount,0),r=i.some(b=>b.confirmedCount>0),u=s===1?"this update":"these updates",d=r?`Some of the movement in these numbers may come from ${u} rather than from a real change in how AI answers about you, so compare periods carefully.`:`If so, some of the movement in these numbers may come from ${u} rather than from a real change in how AI answers about you, so compare periods carefully.`,g=yv(t);return{kind:"change",text:`${i.map(UT).join(" ")} ${d}${g?` ${g}`:""}`}}const VT=E(["gsc","ga4","gbp"]);y({id:c(),domain:c(),connectionType:VT,propertyId:c().nullable().optional(),sitemapUrl:c().nullable().optional(),scopes:k(c()).default([]),createdAt:c(),updatedAt:c()});const KT=y({date:c(),query:c(),page:c(),country:c().nullable().optional(),device:c().nullable().optional(),clicks:h(),impressions:h(),ctr:h(),position:h()});E(["clicks","impressions","date"]);y({rows:k(KT),totalMatching:h(),truncated:P(),latestAvailableDate:c().nullable()});const GT=y({date:c(),clicks:h(),impressions:h(),ctr:h()});y({totals:y({clicks:h(),impressions:h(),ctr:h(),days:h()}),daily:k(GT)});const HT=y({page:c(),clicks:h(),impressions:h(),ctr:h()});y({rows:k(HT),totals:y({clicks:h(),impressions:h(),ctr:h(),days:h(),coveredFrom:c().nullable(),coveredThrough:c().nullable(),complete:P()}).nullable(),totalsSource:ae("property-daily"),rankedFrom:c().nullable(),rankedThrough:c().nullable()});const Df=y({id:c(),url:c(),indexingState:c().nullable().optional(),verdict:c().nullable().optional(),coverageState:c().nullable().optional(),pageFetchState:c().nullable().optional(),robotsTxtState:c().nullable().optional(),crawlTime:c().nullable().optional(),lastCrawlResult:c().nullable().optional(),isMobileFriendly:P().nullable().optional(),richResults:k(c()).default([]),referringUrls:k(c()).default([]),inspectedAt:c()});E(["stable","reindexed","deindexed","still-missing","new"]);const QT=y({url:c(),previousState:c().nullable(),currentState:c().nullable(),transitionDate:c()}),ZT=y({reason:c(),count:h(),urls:k(Df).default([])});y({summary:y({total:h(),indexed:h(),notIndexed:h(),deindexed:h(),percentage:h()}),lastInspectedAt:c().nullable(),lastSyncedAt:c().nullable(),indexed:k(Df).default([]),notIndexed:k(Df).default([]),deindexed:k(QT).default([]),reasonGroups:k(ZT).default([])});y({url:c(),type:E(["URL_UPDATED","URL_DELETED"]),notifiedAt:c()});const FT=y({url:c(),type:E(["URL_UPDATED","URL_DELETED"]),notifiedAt:c(),status:E(["success","error"]),error:c().optional()});y({summary:y({total:h().int().nonnegative(),succeeded:h().int().nonnegative(),failed:h().int().nonnegative()}),results:k(FT).default([])});y({date:c(),indexed:h(),notIndexed:h(),unknownPages:h().default(0),verifiedByInspection:h().default(0),derivedFromImpressions:h().default(0),reasonBreakdown:Le(c(),h()).default({})});const YT=y({siteUrl:c(),permissionLevel:c()});y({sites:k(YT).default([])});const XT=y({type:c(),submitted:c(),indexed:c().optional().describe("Deprecated compatibility field.")}),jw=y({path:c(),parentSitemapUrl:c().optional(),lastSubmitted:c().optional(),isPending:P().optional(),isSitemapsIndex:P().optional(),type:c().optional(),lastDownloaded:c().optional(),warnings:c().optional(),errors:c().optional(),contents:k(XT).optional()});y({sitemaps:k(jw).default([]),summary:y({total:h().int().nonnegative(),indexes:h().int().nonnegative(),files:h().int().nonnegative()}),preferredSubmissionUrls:k(c()).default([])});y({sitemapUrls:k(c().url().refine(e=>{const t=new URL(e).protocol;return t==="http:"||t==="https:"},{message:"Sitemap URL must use http or https."})).min(1).max(50)});const JT=y({sitemapUrl:c(),status:E(["accepted","error"]),submittedAt:c().optional(),error:c().optional()});y({summary:y({total:h().int().nonnegative(),accepted:h().int().nonnegative(),failed:h().int().nonnegative()}),results:k(JT)});y({sitemaps:k(jw),primarySitemapUrl:c(),run:y({id:c(),projectId:c(),kind:c(),status:c(),trigger:c(),createdAt:c()}).nullable()});const WT=y({name:c(),accountName:c().nullable(),type:c().nullable(),role:c().nullable()});y({accounts:k(WT),total:h().int().nonnegative()});const eD=y({id:c(),projectId:c(),accountName:c(),locationName:c(),displayName:c(),primaryCategoryDisplayName:c().nullable(),storefrontAddress:c().nullable(),websiteUri:c().nullable(),placeId:c().nullable(),mapsUri:c().nullable(),additionalCategories:k(c()),description:c().nullable(),serviceArea:Le(c(),Xn()).nullable(),regularHours:Le(c(),Xn()).nullable(),primaryPhone:c().nullable(),openStatus:c().nullable(),openingDate:c().nullable(),selected:P(),syncedAt:c().nullable(),createdAt:c(),updatedAt:c()});y({locations:k(eD),totalDiscovered:h().int().nonnegative(),totalSelected:h().int().nonnegative()});y({selectAllNew:P().default(!0),accountName:c().optional(),switchAccount:P().default(!1)});y({selected:P()});y({locationNames:k(c()).optional(),daysOfMetrics:h().int().positive().max(540).optional(),monthsOfKeywords:h().int().positive().max(18).optional()});y({runId:c(),status:c()});const tD=y({locationName:c(),date:c(),metric:c(),value:h().int()});y({metrics:k(tD),total:h().int().nonnegative()});const nD=y({locationName:c(),periodStart:c(),periodEnd:c(),keyword:c(),valueCount:h().int().nullable(),valueThreshold:h().int().nullable()});y({keywords:k(nD),total:h().int().nonnegative(),thresholdedPct:h().int().min(0).max(100)});const aD=y({locationName:c(),placeActionLinkName:c(),placeActionType:c(),uri:c().nullable(),isPreferred:P(),providerType:c().nullable()});y({placeActions:k(aD),total:h().int().nonnegative()});const iD=y({locationName:c(),populatedGroupCount:h().int().nonnegative(),syncedAt:c(),attributes:Le(c(),Xn())});y({lodging:k(iD),total:h().int().nonnegative()});const sD=y({name:c(),valueType:c(),values:k(Ge([P(),c()])),unsetValues:k(c()),uris:k(c())}),oD=y({locationName:c(),attributeCount:h().int().nonnegative(),syncedAt:c(),attributes:k(sD)});y({attributes:k(oD),total:h().int().nonnegative()});const rD=y({locationName:c(),placeId:c(),tier:c(),amenities:k(c()),syncedAt:c(),place:Le(c(),Xn())});y({places:k(rD),total:h().int().nonnegative()});y({scope:y({locationName:c().nullable(),locationCount:h().int().nonnegative()}),performance:y({totals:Le(c(),h()),recent7d:Le(c(),h()),prior7d:Le(c(),h()),deltaPct:Le(c(),h().nullable())}),freshness:y({dataThroughDate:c().nullable(),latestStoredDate:c().nullable(),pendingDays:h().int().nonnegative()}),timeseries:k(y({date:c(),pending:P(),metrics:Le(c(),h())})),keywords:y({total:h().int().nonnegative(),thresholdedCount:h().int().nonnegative(),thresholdedPct:h().int().min(0).max(100)}),placeActions:y({total:h().int().nonnegative(),hasReservationCta:P(),hasBookingCta:P(),hasDirectMerchantCta:P()}),lodging:y({lodgingLocationCount:h().int().nonnegative(),populatedLodgingCount:h().int().nonnegative(),emptyLodgingCount:h().int().nonnegative()}),profileCompleteness:y({locationCount:h().int().nonnegative(),withSecondaryCategories:h().int().nonnegative(),secondaryCategoryTotal:h().int().nonnegative(),withDescription:h().int().nonnegative(),withServiceArea:h().int().nonnegative(),withHours:h().int().nonnegative(),withPrimaryPhone:h().int().nonnegative(),permanentlyClosed:h().int().nonnegative(),temporarilyClosed:h().int().nonnegative()})});const lD={BUSINESS_DIRECTION_REQUESTS:"Direction requests",WEBSITE_CLICKS:"Website clicks",CALL_CLICKS:"Call clicks",BUSINESS_BOOKINGS:"Bookings",BUSINESS_CONVERSATIONS:"Conversations",BUSINESS_FOOD_ORDERS:"Food orders",BUSINESS_FOOD_MENU_CLICKS:"Food menu clicks",BUSINESS_IMPRESSIONS_DESKTOP_SEARCH:"Search impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_SEARCH:"Search impressions (mobile)",BUSINESS_IMPRESSIONS_DESKTOP_MAPS:"Maps impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_MAPS:"Maps impressions (mobile)"};function cD(e){const t=e.replace(/^BUSINESS_/,"").split("_").filter(Boolean).map(s=>s.toLowerCase());if(t.length===0)return e;const i=t.join(" ");return i.charAt(0).toUpperCase()+i.slice(1)}function cK(e){return lD[e]??cD(e)}const uD=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],dD=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function uK(e){return uD.includes(e)?"conversion":dD.includes(e)?"reach":"other"}y({id:c(),domain:c(),siteUrl:c().nullable().optional(),createdAt:c(),updatedAt:c()});const Fp=y({id:c(),url:c(),httpCode:h().nullable().optional(),inIndex:P().nullable().optional(),lastCrawledDate:c().nullable().optional(),inIndexDate:c().nullable().optional(),inspectedAt:c(),documentSize:h().nullable().optional(),anchorCount:h().nullable().optional(),discoveryDate:c().nullable().optional()});y({summary:y({total:h(),indexed:h(),notIndexed:h(),unknown:h().optional(),percentage:h()}),lastInspectedAt:c().nullable(),indexed:k(Fp).default([]),notIndexed:k(Fp).default([]),unknown:k(Fp).default([]).optional()});y({query:c(),impressions:h(),clicks:h(),ctr:h(),averagePosition:h()});y({date:c(),indexed:h(),notIndexed:h(),unknown:h()});const mD=y({url:c(),status:E(["success","error"]),submittedAt:c(),error:c().optional()});y({summary:y({total:h().int().nonnegative(),succeeded:h().int().nonnegative(),failed:h().int().nonnegative()}),results:k(mD).default([])});const Aw=y({url:c(),verified:P()});y({sites:k(Aw).default([])});y({connected:P(),domain:c(),siteUrl:c().nullable(),createdAt:c().nullable(),updatedAt:c().nullable()});y({connected:P(),domain:c(),siteUrl:c().nullable(),availableSites:k(Aw).default([])});y({siteUrl:c()});const pD=y({name:c(),alive:P(),lastUsed:c().nullable()});y({connected:P(),endpoint:c(),version:c().optional(),browserVersion:c().optional(),targets:k(pD).default([])});const Vo=E(["live","staging"]);y({projectName:c(),url:c(),stagingUrl:c().optional(),username:c(),defaultEnv:Vo,createdAt:c(),updatedAt:c()});const bv=y({url:c(),reachable:P(),pageCount:h().nullable().optional(),version:c().nullable().optional(),error:c().nullable().optional(),plugins:k(c()).optional(),authenticatedUser:y({id:h(),slug:c()}).nullable().optional()});y({connected:P(),projectName:c(),defaultEnv:Vo,live:bv.nullable(),staging:bv.nullable(),adminUrl:c().nullable().optional()});const fD=y({id:h(),slug:c(),title:c(),status:c(),modifiedAt:c().nullable().optional(),link:c().nullable().optional()}),Nw=y({title:c().nullable(),description:c().nullable(),noindex:P().nullable(),writable:P().default(!1),writeTargets:k(c()).default([])}),hD=y({type:c(),json:Le(c(),Xn())}),gD=fD.extend({env:Vo,content:c(),seo:Nw,schemaBlocks:k(hD).default([])}),vv=gD.extend({contentHash:c(),contentSnippet:c()}),_w=y({manualRequired:ae(!0),targetUrl:c(),adminUrl:c().nullable().optional(),content:c(),nextSteps:k(c()).default([])}),yD=y({slug:c(),severity:E(["high","medium","low"]),code:E(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:c()});y({slug:c(),title:c(),status:c(),wordCount:h(),seo:Nw,schemaPresent:P(),issues:k(yD).default([])});const bD=y({slug:c(),status:E(["applied","skipped","manual"]),error:c().optional(),manualAssist:_w.optional()});y({env:Vo,strategy:E(["plugin","manual"]),results:k(bD)});const vD=y({slug:c(),status:E(["deployed","stripped","skipped","failed"]),schemasInjected:k(c()).optional(),manualAssist:_w.optional(),error:c().optional()});y({env:Vo,results:k(vD)});const kD=y({slug:c(),title:c(),canonrySchemas:k(c()),thirdPartySchemas:k(c()),hasCanonrySchema:P()});y({env:Vo,pages:k(kD)});const wD=y({name:c(),status:E(["completed","skipped","failed"]),summary:c().optional(),error:c().optional()});y({projectName:c(),steps:k(wD)});y({slug:c(),live:vv,staging:vv,hasDifferences:P(),differences:y({title:P(),slug:P(),content:P(),seoTitle:P(),seoDescription:P(),noindex:P(),schema:P()})});const xD=y({name:c(),displayName:c().optional(),keyUrl:c().optional(),modelHint:c().optional(),model:c().optional(),defaultModel:c().optional(),configured:P(),quota:B9.optional(),vertexConfigured:P().optional()}),SD=y({name:c(),displayName:c(),mode:E(["api","browser"]),modelConfigurable:P(),defaultModel:c(),knownModels:k(y({id:c(),displayName:c(),tier:E(["flagship","standard","fast","economy"])})).default([]),modelValidationPattern:y({source:c(),flags:c()}),modelValidationHint:c()}),kv=y({configured:P()});y({providers:k(xD).default([]),providerCatalog:k(SD).default([]),google:kv,bing:kv});const $i=E(["queued","running","completed","partial","failed","cancelled"]),dn=$i.enum,Cw=E(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),Oe=Cw.enum,E0=E(["manual","scheduled","config-apply","backfill","probe"]),Ao=E0.enum,Fa=E(["cited","not-cited"]),Tu=Fa.enum,Du=E(["visible","not-visible"]);Du.enum;const vl=E(["mentioned","not-mentioned"]);vl.enum;const zw=E(["new","cited","lost","emerging","not-cited"]);zw.enum;const jD=E(["new","mentioned","lost","emerging","not-mentioned"]);jD.enum;const AD=E([Ao.manual,Ao.probe]);y({kind:ae(Oe["answer-visibility"]).optional(),trigger:AD.optional(),providers:k(dt).optional(),queries:k(c().min(1)).min(1).optional(),measurementScope:jE.optional(),location:c().min(1).optional(),allLocations:P().optional(),noLocation:P().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const ND=y({message:c(),raw:Xn().optional()}),_D=y({message:c().optional(),providers:Le(c(),ND).optional()}),CD=y({id:c(),projectId:c(),kind:Cw,status:$i,trigger:E0.default("manual"),measurementPlanVersionId:c().nullable().optional(),measurementManifest:Le(c(),Xn()).nullable().optional(),measurementScope:AE.nullable().optional(),measurementExecutionIdentity:cw.nullable().optional(),location:c().nullable().optional(),queries:k(c()).nullable().optional(),startedAt:c().nullable().optional(),finishedAt:c().nullable().optional(),error:_D.nullable().optional(),queryBasketRevision:h().int().nullable().optional(),createdAt:c()});function T0(e){if(e.providers){const t=Object.entries(e.providers);if(t.length===1){const[i,s]=t[0];return`${i}: ${s.message}`}if(t.length>1)return t.map(([i,s])=>`${i}: ${s.message}`).join(" • ")}return e.message??"Run failed."}const Xu=y({uri:c(),title:c()}),zD=y({status:E(["applied","ignored","browser-implicit","unknown"]),resolved:gn.nullable().optional()}),Ew=y({id:c(),runId:c(),queryId:c(),query:c().optional(),provider:dt,citationState:Fa,answerMentioned:P().optional(),visibilityState:Du.optional(),mentionState:vl.optional(),transition:zw.optional(),answerText:c().nullable().optional(),citedDomains:k(c()).default([]),citedUrls:k(c()).nullable().default(null),captureStatus:Ge([Hu,he()]).default(null),sourceCount:h().int().nonnegative().nullable().default(null),resolvedCount:h().int().nonnegative().nullable().default(null),captureVersion:h().int().positive().nullable().default(null),retrievalStatus:Ge([A0,he()]).default(null),retrievalContract:Ge([N0,he()]).default(null),competitorOverlap:k(c()).default([]),recommendedCompetitors:k(c()).default([]),matchedTerms:k(c()).default([]),groundingSources:k(Xu).default([]),searchQueries:k(c()).default([]),model:c().nullable().optional(),servedModel:c().nullable().optional(),location:c().nullable().optional(),requestedContext:gn.nullable().optional(),supportedContext:zD.nullable().optional(),createdAt:c()});y({snapshots:k(Ew),total:h().int().nonnegative()});const ED=y({queryId:c().nullable(),query:c().nullable(),run1State:Fa.nullable(),run2State:Fa.nullable(),run1AnswerMentioned:P().nullable(),run2AnswerMentioned:P().nullable(),run1VisibilityState:Du.nullable(),run2VisibilityState:Du.nullable(),run1MentionState:vl.nullable().optional(),run2MentionState:vl.nullable().optional(),changed:P(),visibilityChanged:P()});y({run1:c(),run2:c(),diff:k(ED)});const TD=CD.extend({snapshots:k(Ew).optional()}),DD=y({totalRuns:h().int().nonnegative(),run:TD.nullable()});y({id:c(),projectId:c().nullable().optional(),actor:c(),action:c(),entityType:c(),entityId:c().nullable().optional(),diff:Xn().optional(),userAgent:c().nullable().optional(),actorSession:c().nullable().optional(),createdAt:c()});const OD=E(["yes","no","unknown","not-mentioned"]),wv=k(c().min(1));y({companyName:c().min(1),domain:c().min(1),queries:wv.optional(),phrases:wv.optional(),competitors:k(c().min(1)).optional().default([])}).superRefine((e,t)=>{e.queries!==void 0&&e.phrases!==void 0&&t.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const RD=y({name:c(),count:h().int().nonnegative()}),MD=y({id:c(),name:c(),weight:h(),score:h(),findings:k(y({type:c(),message:c()})).default([]),recommendations:k(c()).default([])}),BD=y({url:c(),finalUrl:c(),auditedAt:c(),overallScore:h(),summary:c(),factors:k(MD).default([])}),qD=y({industry:c(),summary:c(),services:k(c()).default([]),categoryTerms:k(c()).default([])}),ID=y({provider:c(),displayName:c(),model:c().nullable().optional(),mentioned:P(),cited:P(),describedAccurately:OD,accuracyNotes:c().nullable().optional(),incorrectClaims:k(c()).default([]),recommendedCompetitors:k(c()).default([]),citedDomains:k(c()).default([]),groundingSources:k(Xu).default([]),searchQueries:k(c()).default([]),answerText:c(),error:c().nullable().optional()}),LD=y({query:c(),providerResults:k(ID).default([])}),PD=y({totalQueries:h().int().nonnegative(),totalProviders:h().int().nonnegative(),totalComparisons:h().int().nonnegative(),mentionCount:h().int().nonnegative(),citationCount:h().int().nonnegative(),topCompetitors:k(RD).default([]),visibilityGap:c(),whatThisMeans:k(c()).default([]),recommendedActions:k(c()).default([])});y({companyName:c(),domain:c(),homepageUrl:c(),generatedAt:c(),queries:k(c()).default([]),competitors:k(c()).default([]),profile:qD,audit:BD,queryResults:k(LD).default([]),summary:PD});const Tw=E(["pass","partial","fail"]);Tw.enum;const Dw=E(["up","down","flat"]);Dw.enum;const $D=y({id:c(),name:c(),weight:h(),avgScore:h(),status:Tw,pagesPassing:h().int().nonnegative(),pagesPartial:h().int().nonnegative(),pagesFailing:h().int().nonnegative()}),UD=y({factorId:c(),factorName:c(),avgScore:h(),affectedPages:h().int().nonnegative(),totalPages:h().int().nonnegative(),affectedPct:h().int().nonnegative(),topRecommendations:k(c()).default([])});y({project:c(),hasData:P(),runId:c().nullable(),runStatus:$i.nullable(),sitemapUrl:c().nullable(),auditedAt:c().nullable(),aggregateScore:h(),pagesDiscovered:h().int().nonnegative(),pagesAudited:h().int().nonnegative(),pagesSkipped:h().int().nonnegative(),pagesErrored:h().int().nonnegative(),deltaScore:h().nullable(),trend:Dw.nullable(),previousScore:h().nullable(),previousAuditedAt:c().nullable(),factors:k($D).default([]),crossCuttingIssues:k(UD).default([]),prioritizedFixes:k(c()).default([])});const VD=y({id:c(),name:c(),weight:h(),score:h()}),KD=y({url:c(),overallScore:h(),status:E(["success","error"]),error:c().nullable().optional(),factors:k(VD).default([])});y({project:c(),runId:c().nullable(),auditedAt:c().nullable(),total:h().int().nonnegative(),pages:k(KD).default([])});const GD=y({runId:c(),auditedAt:c(),aggregateScore:h(),pagesAudited:h().int().nonnegative()});y({project:c(),points:k(GD).default([])});y({sitemapUrl:c().url().optional(),limit:h().int().positive().max(2e3).optional()});y({runId:c(),status:$i});const D0=E(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync","doctor"]);D0.enum;y({id:c(),projectId:c(),kind:D0,cronExpr:c(),preset:c().nullable().optional(),timezone:c().default("UTC"),enabled:P().default(!0),providers:k(dt).default([]),sourceId:c().nullable().optional(),lastRunAt:c().nullable().optional(),nextRunAt:c().nullable().optional(),createdAt:c(),updatedAt:c()});y({kind:D0.optional(),preset:c().optional(),cron:c().optional(),timezone:c().optional().default("UTC"),enabled:P().optional().default(!0),providers:k(dt).optional().default([]),sourceId:c().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const O0=E(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);O0.enum;const R0=E(["cited","aspirational","wasted-surface"]),xv=R0.enum;xv.cited,xv.aspirational;const Ju=E(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),HD=Ju.enum;HD["direct-competitor"];const Wu=E(["queued","seeding","probing","completed","failed"]);Wu.enum;const Ow=y({domain:c().min(1),hits:h().int().positive(),competitorType:Ju.default("unknown")}),QD=y({id:c(),sessionId:c(),projectId:c(),query:c(),bucket:R0.nullable().default(null),citationState:Fa,citedDomains:k(c()).default([]),answerMentioned:P().nullable().default(null),createdAt:c()}),ZD=y({id:c(),projectId:c(),status:Wu,icpDescription:c().nullable().optional(),seedProvider:c().nullable().optional(),seedCountRaw:h().int().nullable().optional(),seedCount:h().int().nullable().optional(),seedFromAnswerCount:h().int().nullable().optional(),seedFromGroundingCount:h().int().nullable().optional(),seedBrandFilteredCount:h().int().nullable().optional(),buyerDescription:c().nullable().optional(),locations:k(gn).nullable().optional(),seedRawCandidates:k(c()).nullable().optional(),dedupClusterMinSims:k(h()).nullable().optional(),dedupBandPairFraction:h().nullable().optional(),dedupPairsTotal:h().int().nullable().optional(),seedProviders:k(c()).nullable().optional(),seedProviderCounts:Le(c(),h().int()).nullable().optional(),canonicalCount:h().int().nullable().optional(),dedupThreshold:h().nullable().optional(),probeCount:h().int().nullable().optional(),citedCount:h().int().nullable().default(null),aspirationalCount:h().int().nullable().default(null),wastedCount:h().int().nullable().default(null),competitorMap:k(Ow).default([]),warning:c().nullable().optional(),error:c().nullable().optional(),startedAt:c().nullable().optional(),finishedAt:c().nullable().optional(),createdAt:c()});ZD.extend({probes:k(QD).default([])});const FD=500,YD=8,XD=["gemini","openai"],JD=E(XD);y({icpDescription:c().min(1).optional(),buyerDescription:c().min(1).optional(),seedProviders:k(JD).min(1).transform(e=>[...new Set(e)].sort()).optional(),dedupThreshold:h().min(0).max(1).optional(),maxProbes:h().int().positive().max(FD).optional(),probeConcurrency:h().int().min(1).max(YD).optional(),locations:k(c().min(1)).optional()});y({buckets:k(R0).min(1).optional(),includeCompetitors:P().optional(),competitorTypes:k(Ju).min(1).optional()});y({sessionId:c(),projectId:c(),status:Wu,queriesByBucket:y({cited:k(c()),aspirational:k(c()),"wasted-surface":k(c())}),suggestedCompetitors:k(Ow)});y({sessionId:c(),projectId:c(),promoted:y({queries:k(c()),competitors:k(c())}),skipped:y({queries:k(c()),competitors:k(c())})});Ge([ae("cli"),c().regex(/^discovery:.+$/)]);const WD=y({query:c().min(1),probeHits:h().int().positive()}),eO=y({rawCandidates:h().int().nonnegative(),admitted:h().int().nonnegative(),rejected:y({belowFloor:h().int().nonnegative(),length:h().int().nonnegative(),navigational:h().int().nonnegative(),duplicate:h().int().nonnegative(),offAnchor:h().int().nonnegative(),semanticDuplicate:h().int().nonnegative()})});y({sessionId:c(),projectId:c(),provider:c(),status:Wu,minProbeHits:h().int().positive(),anchorApplied:P(),semanticNoveltyApplied:P(),candidates:k(WD),stats:eO});const M0=E(["own","direct-competitor","ota-aggregator","editorial-media","other"]);M0.enum;const Rw=E(["7d","30d","90d","all"]),Sv=E(["improving","declining","stable"]),tO=E(["mentioned","cited"]);tO.enum;const Of=y({citationRate:h(),cited:h().int(),total:h().int(),mentionRate:h(),mentionedCount:h().int()}),B0=c().trim().min(1),nO=k(B0).min(1).superRefine((e,t)=>{for(let i=1;i<e.length;i+=1)e[i-1]>=e[i]&&t.addIssue({code:"custom",message:"mixed model IDs must be sorted and unique",path:[i]})}),Ro=gt("status",[y({status:ae("known"),model:B0}),y({status:ae("unknown")}),y({status:ae("mixed"),models:nO,includesUnknown:P()})]),aO=y({observedAt:c(),bucketStartDate:c(),from:Ro,to:Ro,fromPreWindowAnchor:P().optional(),anchorObservedAt:c().optional()}),Mw=y({latestObservation:y({observedAt:c(),state:Ro}),events:k(aO),eventTotal:h().int().nonnegative().optional(),anchorUnavailable:P().optional()}),iO=Le(c(),Mw),sO=Mw.extend({latestServedModelIds:k(B0).default([])}),oO=Le(c(),sO),rO=y({observedAt:c(),configured:Ro,served:Ro}),lO=y({rate:h().nullable(),projectMentionSnapshots:h().int().nonnegative(),competitorMentionSnapshots:h().int().nonnegative()}),cO=y({startDate:c(),endDate:c(),dataStartDate:c(),dataEndDate:c(),sweepCount:h().int().nonnegative(),citationRate:h(),cited:h().int(),total:h().int(),queryCount:h().int(),mentionRate:h(),mentionedCount:h().int(),mentionShare:lO,byProvider:Le(c(),Of),modelEvidenceByProvider:Le(c(),Ro).default({}),basketRevision:h().int().nullable().default(null)}),uO=y({revision:h().int(),at:c(),added:k(c()),removed:k(c())}),dO=y({date:c(),delta:h().int(),label:c()}),mO=y({at:c(),identity:cw});y({window:Rw,buckets:k(cO),overall:Of,byProvider:Le(c(),Of),trend:Sv,mentionTrend:Sv,queryChanges:k(dO),basketChanges:k(uO).default([]),executionIdentityChanges:k(mO).default([]),referenceBasketRevision:h().int().nullable().default(null),modelAttribution:iO.default({}),servedModelAttribution:oO.default({}),modelServiceMismatch:Le(c(),rO).default({}),modelPointerChanges:Le(c(),qT).default({})});const jv=y({category:O0,label:c(),count:h().int(),percentage:h(),topDomains:k(y({domain:c(),count:h().int()}))}),pO=y({domain:c(),count:h().int(),percentage:h(),category:O0,label:c(),surfaceClass:M0}),fO=y({surfaceClass:M0,label:c(),count:h().int(),percentage:h(),domainCount:h().int()}),Av=y({totalCitedSlots:h().int(),domainTotal:h().int(),entries:k(pO),truncatedDomainCount:h().int(),truncatedCitedSlots:h().int(),bySurfaceClass:k(fO)});y({overall:k(jv),byQuery:Le(c(),k(jv)),ranked:Av,byProvider:Le(c(),Av),runId:c(),window:Rw,limit:h().int().nullable()});const q0=y({total:h().int(),checked:h().int(),mentioned:h().int(),cited:h().int(),mentionRate:h().nullable(),citedRate:h().nullable()}),Bw=q0.extend({provider:c(),firstObserved:c(),lastObserved:c()}),hO=q0.extend({queryId:c().nullable(),query:c(),firstObserved:c(),lastObserved:c(),providers:k(Bw).optional()}),gO=y({since:c().nullable(),until:c().nullable(),lastRuns:h().int().nullable(),runCount:h().int()}),yO=E(["provider"]),Rf=y({domain:c(),mentions:h().int()}),bO=y({percent:h().nullable(),projectMentions:h().int(),competitorMentions:h().int(),snapshotsWithAnswerText:h().int(),perCompetitor:k(Rf)});y({project:c(),groupBy:yO.optional(),window:gO,totals:q0,byProvider:k(Bw).optional(),queries:k(hO),shareOfVoice:bO.optional()});const vO=E(["within-noise","moved","insufficient-data","model-discontinuous","model-unknown"]),kO=E(["up","down","flat"]),Nv=y({point:h().nullable(),ciLow:h().nullable(),ciHigh:h().nullable(),numerator:h().int(),denominator:h().int()}),wO=E(["mention-share-of-voice","cited-share-of-voice","mention-rate","cited-rate"]),xO=y({key:wO,label:c(),driftRobust:P(),from:Nv,to:Nv,rateRatio:h().nullable(),direction:Ge([kO,he()]),verdict:vO}),_v=y({month:c(),since:c(),until:c(),runCount:h().int(),lowRunCount:P()}),SO=y({queryCount:h().int(),excludedFromOnly:h().int(),excludedToOnly:h().int(),providers:k(c()),excludedProviders:k(c())}),jO=y({provider:c(),fromModels:k(c()),toModels:k(c())}),AO=E(["included","model-discontinuous","model-unknown"]),NO=y({provider:c(),status:AO,fromModels:k(c()),toModels:k(c())}),_O=E(["comparable","model-discontinuous","model-unknown","insufficient-data"]),CO=y({status:_O,comparedProviders:k(c()),providers:k(NO)}),zO=y({provider:c(),from:y({checked:h().int(),mentioned:h().int(),cited:h().int()}),to:y({checked:h().int(),mentioned:h().int(),cited:h().int()})}),EO=y({from:y({count:h().int(),of:h().int()}),to:y({count:h().int(),of:h().int()})});y({project:c(),from:_v,to:_v,basket:SO,metrics:k(xO),queriesMentioned:EO,byProvider:k(zO),modelChanges:k(jO),continuity:CO,competitors:y({from:k(Rf),to:k(Rf)})});E(["json","csv"]);const TO=y({runId:c(),runKind:ae("answer-visibility"),runStatus:$i,runTrigger:E0,runCreatedAt:c(),runStartedAt:c().nullable(),runFinishedAt:c().nullable(),snapshotId:c(),snapshotCreatedAt:c(),queryId:c().nullable(),query:c().nullable(),provider:c(),model:c().nullable(),location:c().nullable(),citationState:Fa,cited:P(),answerMentioned:P().nullable(),mentionState:Ge([vl,he()]),citedDomains:k(c()),citedUrls:k(c()).nullable(),captureStatus:Ge([Hu,he()]),sourceCount:h().int().nonnegative().nullable(),resolvedCount:h().int().nonnegative().nullable(),captureVersion:h().int().positive().nullable(),competitorOverlap:k(c()),recommendedCompetitors:k(c()),answerText:c().nullable(),groundingSources:k(Xu),searchQueries:k(c())}),DO=y({since:c().nullable(),until:c().nullable(),includeProbes:P()});y({schemaVersion:ae("canonry.results-export/v1"),generatedAt:c(),project:y({id:c(),name:c(),displayName:c(),canonicalDomain:c(),country:c(),language:c()}),filters:DO,recordCount:h().int().nonnegative(),records:k(TO)});const ed=E(["organic","paid"]);ed.enum;y({id:c(),projectId:c(),propertyId:c(),clientEmail:c(),connected:P(),createdAt:c(),updatedAt:c()});y({date:c(),landingPage:c(),sessions:h(),organicSessions:h(),users:h()});const I0=E(["session","first_user","manual_utm"]),OO=y({source:c(),medium:c(),trafficClass:ed,sessions:h(),users:h().optional(),sourceDimension:I0}),RO=y({source:c(),medium:c(),trafficClass:ed,sourceDimension:I0,landingPage:c(),sessions:h(),users:h().optional()}),MO=y({source:c(),medium:c(),sessions:h(),users:h(),channelGroup:c()}),el=y({sessions:h(),sharePct:h(),sharePctDisplay:c()}),BO=y({organic:el,social:el,direct:el,ai:el,other:el});y({totalSessions:h(),totalOrganicSessions:h(),totalDirectSessions:h(),totalUsers:h().nullable(),topPages:k(y({landingPage:c(),sessions:h(),organicSessions:h(),directSessions:h(),users:h()})),aiReferrals:k(OO),aiReferralLandingPages:k(RO),aiSessionsDeduped:h(),aiUsersDeduped:h().optional(),paidAiSessionsDeduped:h(),paidAiUsersDeduped:h().optional(),organicAiSessionsDeduped:h(),organicAiUsersDeduped:h().optional(),aiSessionsBySession:h(),aiUsersBySession:h().optional(),paidAiSessionsBySession:h(),paidAiUsersBySession:h().optional(),organicAiSessionsBySession:h(),organicAiUsersBySession:h().optional(),socialReferrals:k(MO),socialSessions:h(),socialUsers:h(),channelBreakdown:BO,organicSharePct:h(),aiSharePct:h(),aiSharePctBySession:h(),paidAiSharePct:h(),paidAiSharePctBySession:h(),organicAiSharePct:h(),organicAiSharePctBySession:h(),directSharePct:h(),socialSharePct:h(),organicSharePctDisplay:c(),aiSharePctDisplay:c(),aiSharePctBySessionDisplay:c(),paidAiSharePctDisplay:c(),paidAiSharePctBySessionDisplay:c(),organicAiSharePctDisplay:c(),organicAiSharePctBySessionDisplay:c(),directSharePctDisplay:c(),socialSharePctDisplay:c(),otherSessions:h(),otherSharePct:h(),otherSharePctDisplay:c(),lastSyncedAt:c().nullable()});y({connected:P(),propertyId:c().nullable(),clientEmail:c().nullable(),authMethod:E(["service-account","oauth"]).nullable(),lastSyncedAt:c().nullable(),createdAt:c().nullable().optional(),updatedAt:c().nullable().optional()});y({synced:P(),rowCount:h().int().nonnegative(),aiReferralCount:h().int().nonnegative(),socialReferralCount:h().int().nonnegative(),days:h().int().nonnegative(),syncedAt:c(),measurement:y({acquisition:y({days:h().int().nonnegative(),status:E(["ready","error"]),rowCount:h().int().nonnegative(),error:c().optional()}),leads:y({days:h().int().nonnegative(),status:E(["ready","error","not-configured"]),rowCount:h().int().nonnegative(),attributionScope:E(["landing-page","channel"]).optional(),error:c().optional()})}),syncedComponents:k(c()).optional()});y({date:c(),source:c(),medium:c(),trafficClass:ed,landingPage:c(),sessions:h(),users:h(),sourceDimension:I0});const qO=y({source:c(),sessions:h(),paidSessions:h(),organicSessions:h()}),IO=y({date:c(),sessions:h(),paidSessions:h(),organicSessions:h(),bySource:k(qO)});y({days:k(IO),sources:k(c()),totalSessions:h(),totalPaidSessions:h(),totalOrganicSessions:h()});y({date:c(),source:c(),medium:c(),sessions:h(),users:h(),channelGroup:c()});y({date:c(),sessions:h(),organicSessions:h(),users:h(),usersSource:E(["deduplicated","landing-page-sum"])});y({id:c(),projectId:c(),runId:c().nullable(),overallCitedRate:h(),overallMentionRate:h(),totalPairs:h().int().nonnegative(),citedPairs:h().int().nonnegative(),mentionedPairs:h().int().nonnegative(),providerBreakdown:Le(c(),y({citedRate:h(),mentionRate:h(),cited:h().int().nonnegative(),mentioned:h().int().nonnegative(),total:h().int().nonnegative()})),createdAt:c(),status:E(["ready","no-data"]),reason:ae("no-runs-yet").optional()});const qw=E(["claude","openai","gemini","zai","deepinfra"]),LO=y({id:qw,label:c(),defaultModel:c(),configured:P(),keySource:E(["config","env"]).nullable()});y({providers:k(LO).default([]),defaultProvider:qw.nullable()});const PO=E(["aero","user","compaction"]);PO.enum;const Iw=128;y({key:c().min(1).max(Iw),value:c().min(1)});y({key:c().min(1).max(Iw)});const Ko=E(["commoncrawl","bing-webmaster"]);Ko.enum;const L0=E(["queued","downloading","querying","ready","failed"]);L0.enum;y({id:c(),release:c(),status:L0,phaseDetail:c().nullable().optional(),vertexPath:c().nullable().optional(),edgesPath:c().nullable().optional(),vertexSha256:c().nullable().optional(),edgesSha256:c().nullable().optional(),vertexBytes:h().int().nullable().optional(),edgesBytes:h().int().nullable().optional(),projectsProcessed:h().int().nullable().optional(),domainsDiscovered:h().int().nullable().optional(),downloadStartedAt:c().nullable().optional(),downloadFinishedAt:c().nullable().optional(),queryStartedAt:c().nullable().optional(),queryFinishedAt:c().nullable().optional(),error:c().nullable().optional(),createdAt:c(),updatedAt:c()});const $O=y({linkingDomain:c(),numHosts:h().int(),source:Ko}),UO=y({projectId:c(),release:c(),targetDomain:c(),totalLinkingDomains:h().int(),totalHosts:h().int(),top10HostsShare:c(),queriedAt:c(),source:Ko,excludedLinkingDomains:h().int().optional(),excludedHosts:h().int().optional()});y({source:Ko,summary:UO.nullable(),total:h().int(),rows:k($O)});y({release:c(),totalLinkingDomains:h().int(),totalHosts:h().int(),top10HostsShare:c(),queriedAt:c(),source:Ko});const VO=y({source:Ko,connected:P(),hasData:P(),latestRelease:c().nullable(),totalLinkingDomains:h().int(),lastSyncedAt:c().nullable()});y({projectId:c(),targetDomain:c(),sources:k(VO),anyConnected:P(),anyData:P()});y({duckdbInstalled:P(),duckdbVersion:c().nullable().optional(),duckdbSpec:c(),pluginDir:c()});y({installed:P(),version:c(),path:c(),alreadyPresent:P()});y({release:c(),vertexUrl:c(),edgesUrl:c(),vertexBytes:h().int().nullable(),edgesBytes:h().int().nullable(),lastModified:c().nullable()});y({release:c(),syncStatus:L0.nullable(),bytes:h().int(),lastUsedAt:c().nullable()});const P0=E(["positive","caution","negative","neutral"]),Ei=y({label:c(),value:c(),delta:c(),tone:P0,description:c(),tooltip:c().optional(),trend:k(h()),progress:h().optional(),providerCoverage:c().optional()}),KO=Ei.extend({breakdown:y({projectMentionSnapshots:h().int().nonnegative(),competitorMentionSnapshots:h().int().nonnegative(),perCompetitor:k(y({domain:c(),mentionSnapshots:h().int().nonnegative(),shareOfCompetitiveTotal:h()})),snapshotsWithAnswerText:h().int().nonnegative(),snapshotsTotal:h().int().nonnegative()})}),Yp=y({gained:h().int().nonnegative(),lost:h().int().nonnegative(),tone:P0,hasPreviousRun:P(),gainedQueries:k(c()).optional(),lostQueries:k(c()).optional()}),GO=y({hasPreviousRun:P(),comparable:P(),querySetChanged:P(),previousRunAt:c().nullable(),currentQueryCount:h().int().nonnegative(),previousQueryCount:h().int().nonnegative(),comparableQueryCount:h().int().nonnegative(),addedQueryCount:h().int().nonnegative(),removedQueryCount:h().int().nonnegative(),addedQueries:k(c()),removedQueries:k(c())}),HO=y({id:c(),projectId:c(),runId:c().nullable(),type:E(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:E(["critical","high","medium","low"]),title:c(),query:c(),provider:c(),recommendation:y({action:c(),target:c().optional(),reason:c()}).optional(),cause:y({cause:c(),competitorDomain:c().optional(),details:c().optional()}).optional(),dismissed:P(),createdAt:c()}),QO=y({id:c(),projectId:c(),runId:c().nullable(),overallCitedRate:h(),overallMentionRate:h(),totalPairs:h().int().nonnegative(),citedPairs:h().int().nonnegative(),mentionedPairs:h().int().nonnegative(),providerBreakdown:Le(c(),y({citedRate:h(),mentionRate:h(),cited:h().int().nonnegative(),mentioned:h().int().nonnegative(),total:h().int().nonnegative()})),createdAt:c(),status:E(["ready","no-data"]),reason:ae("no-runs-yet").optional()});y({project:Dz,latestRun:DD,health:QO.nullable(),topInsights:k(HO),queryCounts:y({totalQueries:h().int().nonnegative(),citedQueries:h().int().nonnegative(),notCitedQueries:h().int().nonnegative(),citedRate:h(),mentionedQueries:h().int().nonnegative(),notMentionedQueries:h().int().nonnegative(),mentionRate:h()}),providers:k(y({provider:c(),citedRate:h(),cited:h().int().nonnegative(),total:h().int().nonnegative()})),transitions:y({since:c().nullable(),gained:h().int().nonnegative(),lost:h().int().nonnegative(),emerging:h().int().nonnegative()}),scores:y({mention:Ei,visibility:Ei,mentionShare:KO,gapQueries:Ei,mentionGaps:Ei,indexCoverage:Ei,competitorPressure:Ei,runStatus:Ei}),movementSummary:Yp,citationMovement:Yp,mentionMovement:Yp,movementComparison:GO,competitors:k(y({id:c(),domain:c(),citationCount:h().int().nonnegative(),totalQueries:h().int().nonnegative(),pressureLabel:E(["None","Low","Moderate","High"]),citedQueries:k(c())})),providerScores:k(y({provider:c(),model:c().nullable(),score:h(),cited:h().int().nonnegative(),total:h().int().nonnegative(),trend:k(h()).optional()})),attentionItems:k(y({id:c(),tone:P0,title:c(),detail:c(),actionLabel:c(),href:c()})),runHistory:k(y({runId:c(),createdAt:c(),citedCount:h().int().nonnegative(),totalCount:h().int().nonnegative(),citationRate:h(),mentionedCount:h().int().nonnegative(),mentionRate:h(),status:c()})),suggestedQueries:y({rows:k(y({query:c(),impressions:h(),clicks:h(),avgPosition:h(),reason:c()})),totalCandidates:h().int().nonnegative(),skippedAlreadyTracked:h().int().nonnegative()}),dateRangeLabel:c(),contextLabel:c()});E(["snapshot","insight"]);const ZO=y({kind:ae("snapshot"),id:c(),runId:c(),query:c(),provider:c(),model:c().nullable(),citationState:Fa,matchedField:E(["answerText","citedDomains","citedUrls","searchQueries","query"]),snippet:c(),createdAt:c()}),FO=y({kind:ae("insight"),id:c(),runId:c().nullable(),type:E(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:E(["critical","high","medium","low"]),title:c(),query:c(),provider:c(),matchedField:E(["title","query","recommendation","cause"]),snippet:c(),dismissed:P(),createdAt:c()}),YO=gt("kind",[ZO,FO]);y({query:c(),totalHits:h().int().nonnegative(),truncated:P(),hits:k(YO)});const Lw=E(["create","expand","refresh","add-schema"]);Lw.enum;function dK(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const Pw=E(["gsc","competitor-evidence","both"]);Pw.enum;const $w=E(["high","medium","low"]);$w.enum;const XO=E(["blog-post","comparison","listicle","how-to","guide","glossary"]);XO.enum;const Uw=E(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);Uw.enum;const $0=E(["ownable","ceded"]);$0.enum;const JO=y({url:c(),gscImpressions:h().nonnegative(),gscClicks:h().nonnegative(),gscAvgPosition:h().nonnegative().nullable(),organicSessions:h().nonnegative()}),WO=y({domain:c(),url:c(),title:c(),citationCount:h().int().nonnegative()}),eR=y({demand:h(),competitor:h(),absence:h(),gapSeverity:h()}),tR=y({actionId:c(),state:Uw,lastUpdated:c()}),Vw=y({targetRef:c(),query:c(),action:Lw,ourBestPage:JO.nullable(),winningCompetitor:WO.nullable(),score:h(),scoreBreakdown:eR,drivers:k(c()),demandSource:Pw,actionConfidence:$w,existingAction:tR.nullable(),winnabilityClass:$0,winnability:h().min(0).max(1).nullable()});y({targets:k(Vw),contextMetrics:y({totalAiReferralSessions:h().int().nonnegative(),latestRunId:c(),runTimestamp:c()})});const nR=y({targetRef:c(),addressedUrl:c().nullable(),note:c().nullable(),dismissedAt:c()});y({dismissals:k(nR)});y({targetRef:c().min(1),addressedUrl:c().url().optional(),note:c().max(500).optional()});y({targetRef:c(),promptVersion:c(),provider:c(),model:c(),responseText:c(),costMillicents:h().int().nonnegative(),generatedAt:c()});y({provider:c().optional(),model:c().optional(),forceRefresh:P().optional()});const aR=y({targetQuery:c().trim().min(1),winnabilityClass:$0,angle:c().trim().min(1),whyWinnable:c().trim().min(1),schemaHookup:c().trim().min(1),controllableSurfaceRationale:c().trim().min(1)});y({targetRef:c(),promptVersion:c(),provider:c(),model:c(),brief:aR,costMillicents:h().int().nonnegative(),generatedAt:c()});const iR=y({domain:c(),competitorType:Ju,hits:h().int().nonnegative(),updatedAt:c()});y({classifications:k(iR)});const sR=y({uri:c(),title:c(),domain:c(),isOurDomain:P(),isCompetitor:P(),citationCount:h().int().nonnegative(),providers:k(dt)}),Kw=y({query:c(),groundingSources:k(sR)});y({sources:k(Kw),latestRunId:c()});const Gw=y({query:c(),competitorDomains:k(c()),competitorCount:h().int().nonnegative(),missRate:h().min(0).max(1),lastSeenInRunId:c()});y({gaps:k(Gw),latestRunId:c()});const Hw=E(["ok","warn","fail","skipped"]);Hw.enum;const U0=E(["global","project"]);U0.enum;const Qw=E(["auth","config","providers","integrations","database","schedules","agent"]);Qw.enum;const oR=y({id:c(),category:Qw,scope:U0,title:c(),status:Hw,code:c().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:c(),remediation:c().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:Le(c(),Xn()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:h().int().nonnegative().describe("How long the check took to execute.")});y({scope:U0,project:c().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:c().describe("ISO-8601 timestamp when this doctor run started."),durationMs:h().int().nonnegative(),summary:y({total:h().int().nonnegative(),ok:h().int().nonnegative(),warn:h().int().nonnegative(),fail:h().int().nonnegative(),skipped:h().int().nonnegative()}),checks:k(oR)});const rR=y({provider:c(),citationState:Fa,cited:P(),mentioned:P(),runId:c(),runCreatedAt:c()}),lR=y({queryId:c(),query:c(),providers:k(rR),citedCount:h().int().nonnegative(),mentionedCount:h().int().nonnegative(),totalProviders:h().int().nonnegative()}),cR=y({queryId:c(),query:c(),provider:c(),citingCompetitors:k(c()),runId:c(),runCreatedAt:c()}),uR=y({providersConfigured:h().int().nonnegative(),providersCiting:h().int().nonnegative(),providersMentioning:h().int().nonnegative(),totalQueries:h().int().nonnegative(),queriesCitedAndMentioned:h().int().nonnegative(),queriesCitedOnly:h().int().nonnegative(),queriesMentionedOnly:h().int().nonnegative(),queriesInvisible:h().int().nonnegative(),latestRunId:c().nullable(),latestRunAt:c().nullable()});y({summary:uR,byQuery:k(lR),competitorGaps:k(cR),status:E(["ready","no-data"]),reason:E(["no-runs-yet","no-queries"]).optional()});const mK=[7,14,30,90],pK=30;Ge([ae(7),ae(14),ae(30),ae(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const dR=E(["prompt","request-param","browser-geo","ignored"]),mR=y({label:c(),city:c(),region:c(),country:c(),otherConfiguredLabels:k(c())}),pR=y({provider:c(),treatment:dR,description:c()}),fR=y({generatedAt:c(),project:y({id:c(),name:c(),displayName:c(),canonicalDomain:c(),country:c(),language:c()}),location:mR.nullable(),providerLocationHandling:k(pR),periodStart:c().nullable(),periodEnd:c().nullable(),periodDays:h().int().positive()}),hR=y({citationRate:h(),citedQueryCount:h(),totalQueryCount:h(),mentionRate:h(),mentionedQueryCount:h(),trend:E(["up","down","flat","unknown"]),queryCount:h(),competitorCount:h(),providerCount:h(),gsc:y({clicks:h(),impressions:h(),ctr:h(),avgPosition:h(),periodStart:c(),periodEnd:c()}).nullable(),ga:y({sessions:h(),users:h(),periodStart:c(),periodEnd:c()}).nullable(),findings:k(y({title:c(),detail:c(),tone:E(["positive","caution","negative","neutral"])}))}),gR=y({citationState:E(["cited","not-cited","pending"]),answerMentioned:P().nullable(),model:c().nullable()}),yR=y({queries:k(c()),providers:k(c()),matrix:k(k(gR.nullable())),providerRates:k(y({provider:c(),citedCount:h(),mentionedCount:h(),totalCount:h(),citationRate:h(),mentionRate:h()}))}),bR=y({domain:c(),citationCount:h(),totalCount:h(),pressureLabel:E(["High","Moderate","Low","None"]),citedQueries:k(c()),sharePct:h(),theirCitedPages:k(y({url:c(),citedFor:k(c())}))}),vR=y({projectCitationCount:h(),competitors:k(bR)}),kR=y({domain:c(),mentionCount:h(),totalCount:h(),pressureLabel:E(["High","Moderate","Low","None"]),mentionedQueries:k(c()),sharePct:h()}),wR=y({projectMentionCount:h(),totalAnswerSnapshots:h(),competitors:k(kR)}),xR=y({category:c(),label:c(),count:h(),sharePct:h()}),SR=y({categories:k(xR),topDomains:k(y({domain:c(),count:h(),isCompetitor:P()}))}),jR=y({query:c(),clicks:h(),impressions:h(),ctr:h(),avgPosition:h(),category:E(["brand","lead-gen","industry","other"])}),AR=y({periodStart:c(),periodEnd:c(),totalClicks:h(),totalImpressions:h(),ctr:h(),avgPosition:h(),topQueries:k(jR),categoryBreakdown:k(y({category:E(["brand","lead-gen","industry","other"]),clicks:h(),impressions:h(),sharePct:h()})),trend:k(y({date:c(),clicks:h(),impressions:h()})),trackedButNoGsc:k(c()),gscButNotTracked:k(c())}),NR=y({totalSessions:h(),totalUsers:h(),totalOrganicSessions:h(),periodStart:c(),periodEnd:c(),topLandingPages:k(y({page:c(),sessions:h(),users:h(),organicSessions:h()})),channelBreakdown:k(y({channel:c(),sessions:h(),sharePct:h()}))}),_R=y({totalSessions:h(),organicSessions:h(),paidSessions:h(),channels:k(y({channelGroup:c(),sessions:h(),sharePct:h()})),topCampaigns:k(y({source:c(),medium:c(),sessions:h()}))}),CR=y({totalSessions:h(),paidSessions:h(),organicSessions:h(),totalUsers:h().optional(),paidUsers:h().optional(),organicUsers:h().optional(),bySource:k(y({source:c(),sessions:h(),users:h().optional(),paidSessions:h(),organicSessions:h(),sharePct:h()})),trend:k(y({date:c(),sessions:h()})),topLandingPages:k(y({page:c(),sessions:h(),users:h().optional()}))}),zR=y({windowStart:c(),windowEnd:c(),hasData:P(),verifiedCrawlerHits:y({current:h(),prior:h(),deltaPct:h().nullable()}),unverifiedCrawlerHits:y({current:h(),prior:h(),deltaPct:h().nullable()}),aiUserFetchHits:y({current:h(),prior:h(),deltaPct:h().nullable()}),referralArrivals:y({current:h(),prior:h(),deltaPct:h().nullable()}),referralArrivalsByClass:y({paid:y({current:h(),prior:h(),deltaPct:h().nullable()}),organic:y({current:h(),prior:h(),deltaPct:h().nullable()}),unclassified:y({current:h(),prior:h(),deltaPct:h().nullable()})}),referralArrivalsClassSummary:c(),byOperator:k(y({operator:c(),verifiedHits:h(),unverifiedHits:h(),userFetchHits:h(),referralArrivals:h(),deltaPct:h().nullable()})),topCrawledPaths:k(y({path:c(),verifiedHits:h(),distinctOperators:h()})),referralProducts:k(y({product:c(),arrivals:h(),distinctLandingPaths:h()})),dailyTrend:k(y({date:c(),verifiedCrawlerHits:h(),userFetchHits:h(),referralArrivals:h()})),topReferralLandingPaths:k(y({path:c(),arrivals:h(),distinctProducts:h()}))}),ER=y({provider:E(["google","bing"]).nullable(),total:h(),indexed:h(),notIndexed:h(),deindexed:h(),unknown:h(),indexedPct:h()}),TR=y({runId:c(),date:c(),citationRate:h(),citedQueryCount:h(),totalQueryCount:h(),mentionRate:h(),mentionedQueryCount:h(),providerRates:k(y({provider:c(),citationRate:h(),mentionRate:h()}))}),Mf=y({id:c(),type:E(["regression","gain","opportunity"]),severity:E(["critical","high","medium","low"]),title:c(),query:c(),provider:c(),recommendation:c().nullable(),createdAt:c(),instanceCount:h()}),DR=y({horizon:E(["immediate","short-term","medium-term"]),title:c(),rationale:c()}),fo=y({current:h(),prior:h(),deltaAbs:h(),deltaPct:h().nullable(),direction:E(["up","down","flat"]),window:h().optional()}),OR=y({provider:c(),current:h(),prior:h(),deltaAbs:h(),direction:E(["up","down","flat"])}),RR=y({enoughHistory:P(),headline:c(),citationRate:fo.nullable(),mentionRate:fo.nullable(),citedQueryCount:fo.nullable(),mentionedQueryCount:fo.nullable(),gscClicksDelta:fo.nullable(),aiReferralsDelta:fo.nullable(),comparisonWindowDays:h().int().positive(),providerMovements:k(OR),wins:k(Mf),regressions:k(Mf)});E(["agency","client"]);const MR=E(["agency","client","both"]),BR=E(["immediate","short-term","medium-term"]),qR=E(["high","medium","low"]);E(["positive","caution","negative","neutral"]);const IR=E(["content","competitors","provider","search-demand","indexing","location","monitoring"]),V0=y({audience:MR,priority:h(),horizon:BR,category:IR,title:c(),action:c(),why:k(c()),evidence:k(c()),successMetric:c(),confidence:qR,targetRef:c().optional()}),LR=y({headline:c(),overview:c(),actionItems:k(V0),confidenceNotes:k(c())}),PR=y({title:c(),detail:c(),severity:E(["positive","caution","negative","neutral"]),evidence:k(c())}),$R=y({priorities:k(V0),diagnostics:k(PR)});function fK(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function hK(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function gK(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function yK(e){switch(e){case"content":return"Content";case"competitors":return"Competitors";case"provider":return"Provider";case"search-demand":return"Search demand";case"indexing":return"Indexing";case"location":return"Location";case"monitoring":return"Monitoring"}}function bK(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}y({meta:fR,executiveSummary:hR,citationScorecard:yR,competitorLandscape:vR,mentionLandscape:wR,aiSourceOrigin:SR,gsc:AR.nullable(),ga:NR.nullable(),socialReferrals:_R.nullable(),aiReferrals:CR.nullable(),serverActivity:zR.nullable(),indexingHealth:ER.nullable(),citationsTrend:k(TR),whatsChanged:RR,insights:k(Mf),recommendedNextSteps:k(DR),actionPlan:k(V0),clientSummary:LR,agencyDiagnostics:$R,contentOpportunities:k(Vw),contentGaps:k(Gw),groundingSources:k(Kw)});const UR=Ge([ae(60),ae(90)]),VR=E(["earliest","middle","prior","latest"]),yo=y({clicks:h().int().nonnegative(),impressions:h().int().nonnegative()}),Zw=y({name:VR,startDate:c(),endDate:c()}),KR=Zw.extend({totals:yo}),GR=Zw.extend({organicSessions:h().int().nonnegative()}),Xp=y({startDate:c(),endDate:c(),observedDays:h().int().nonnegative()}),iu=y({verified:h().int().nonnegative(),claimedUnverified:h().int().nonnegative(),unknownAiLike:h().int().nonnegative()}),Cv=y({total:h().int().nonnegative(),paid:h().int().nonnegative(),organic:h().int().nonnegative(),unknown:h().int().nonnegative()});y({contractVersion:ae("organic-evidence/v1"),periodDays:UR,asOfDate:c().nullable(),coverage:y({gsc:P(),ga4:P(),server:P(),visibility:P()}),sourceCoverage:y({gsc:Xp.nullable(),ga4:Xp.nullable(),server:Xp.nullable(),visibility:y({completedAt:c(),ageDays:h().nonnegative()}).nullable()}),gsc:y({propertyTotals:yo,namedBrand:yo,namedNonBrand:yo,suppressedOrUnreportedResidual:yo,cohorts:k(KR)}).nullable(),ga4:y({organicSessions:h().int().nonnegative(),cohorts:k(GR)}).nullable(),gaAiReferrals:y({paidSessions:h().int().nonnegative(),organicSessions:h().int().nonnegative()}).nullable(),server:y({crawlerHits:iu,userFetchHits:iu,referralSessions:Cv}).nullable(),visibility:y({runId:c(),completedAt:c(),ageDays:h().nonnegative(),answerPairs:h().int().nonnegative(),mentionedPairs:h().int().nonnegative(),citedPairs:h().int().nonnegative()}).nullable(),measurement:H9,pages:k(y({path:c(),gsc:yo,ga4OrganicSessions:h().int().nonnegative(),server:y({crawlerHits:iu,userFetchHits:iu,referralSessions:Cv})})),findings:k(y({tone:E(["positive","caution","neutral"]),title:c(),detail:c()})),limitations:k(y({code:c(),detail:c()}))});const HR=E(["claude","codex"]);HR.enum;const QR=E(["claude","codex","all"]);QR.enum;const Fw=y({content:h().int().nonnegative(),sitemap:h().int().nonnegative(),robots:h().int().nonnegative(),asset:h().int().nonnegative(),other:h().int().nonnegative()}),ZR=E(["content","sitemap","robots","asset","other"]),K0=E(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);K0.enum;const FR=E(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);FR.enum;const YR=E(["raw-request","aggregate-bucket"]),XR=YR.enum,JR=E(["observed","provider-aggregated","inferred"]),WR=JR.enum,eM=y({type:c().nullable(),labels:Le(c(),c())}),tM=y({sourceType:K0,evidenceKind:ae(XR["raw-request"]),confidence:ae(WR.observed),eventId:c().min(1),observedAt:c().min(1),method:c().nullable(),requestUrl:c().nullable(),host:c().nullable(),path:c().min(1),queryString:c().nullable(),status:h().int().nullable(),userAgent:c().nullable(),remoteIp:c().nullable(),referer:c().nullable(),latencyMs:h().nullable(),requestSizeBytes:h().int().nullable(),responseSizeBytes:h().int().nullable(),providerResource:eM,providerLabels:Le(c(),c())});y({events:k(tM),rawEntryCount:h().int().nonnegative(),skippedEntryCount:h().int().nonnegative(),nextPageToken:c().optional(),filter:c()});const Yw=E(["connected","paused","error","archived"]),vK=Yw.enum,Xw=E(["oauth","service-account"]);Xw.enum;const nM=E(["verified","claimed_unverified","unknown_ai_like"]),kK=nM.enum;y({gcpProjectId:c().min(1),serviceName:c().nullable().optional(),location:c().nullable().optional(),authMode:Xw});y({baseUrl:c().url(),username:c().min(1)});const G0=E(["production","preview"]);G0.enum;y({projectId:c().min(1),teamId:c().min(1),environment:G0});const Jw=y({id:c(),projectId:c(),sourceType:K0,displayName:c(),status:Yw,lastSyncedAt:c().nullable(),lastCursor:c().nullable(),lastError:c().nullable(),skippedThroughAt:c().nullable(),archivedAt:c().nullable(),config:Le(c(),Xn()),createdAt:c(),updatedAt:c()});y({gcpProjectId:c().min(1),serviceName:c().min(1).optional(),location:c().min(1).optional(),displayName:c().min(1).optional(),keyJson:c().optional()});y({baseUrl:c().url(),username:c().min(1),applicationPassword:c().min(1),displayName:c().min(1).optional()});y({projectId:c().min(1),teamId:c().min(1),token:c().min(1),environment:G0.optional(),displayName:c().min(1).optional()});y({sourceId:c(),runId:c(),syncedAt:c(),pulledEvents:h().int().nonnegative(),selfTrafficExcluded:h().int().nonnegative(),crawlerHits:h().int().nonnegative(),aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative(),unknownHits:h().int().nonnegative(),crawlerBucketRows:h().int().nonnegative(),aiUserFetchBucketRows:h().int().nonnegative(),aiReferralBucketRows:h().int().nonnegative(),sampleRows:h().int().nonnegative(),windowStart:c(),windowEnd:c()});y({days:h().int().positive().optional()});y({advanceToNow:ae(!0)});y({sourceId:c(),runId:c(),status:$i,windowStart:c(),windowEnd:c(),daysRequested:h().int().positive(),daysApplied:h().int().positive()});const aM=y({crawlerHits:h().int().nonnegative(),crawlerContentHits:h().int().nonnegative(),crawlerInfraHits:h().int().nonnegative(),crawlerSegments:Fw,aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative(),sampleCount:h().int().nonnegative()});y({sources:k(Jw)});const iM=Jw.extend({totals24h:aM,latestRun:y({runId:c(),status:$i,startedAt:c().nullable(),finishedAt:c().nullable(),error:c().nullable()}).nullable()});y({sources:k(iM)});const sM=E(["crawler","ai-user-fetch","ai-referral"]),H0=sM.enum,Ww=E(["hour","day"]);Ww.enum;const oM=y({bucket:c(),crawlerHits:h().int().nonnegative(),aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative()}),rM=y({kind:ae(H0.crawler),sourceId:c(),tsHour:c(),botId:c(),operator:c(),verificationStatus:c(),pathNormalized:c(),pathClass:ZR,status:h().int(),hits:h().int().nonnegative()}),lM=y({kind:ae(H0["ai-user-fetch"]),sourceId:c(),tsHour:c(),botId:c(),operator:c(),verificationStatus:c(),pathNormalized:c(),status:h().int(),hits:h().int().nonnegative()}),cM=y({kind:ae(H0["ai-referral"]),sourceId:c(),tsHour:c(),product:c(),operator:c(),sourceDomain:c(),evidenceType:c(),landingPathNormalized:c(),status:h().int(),hits:h().int().nonnegative(),paidHits:h().int().nonnegative(),organicHits:h().int().nonnegative(),unknownHits:h().int().nonnegative()}),uM=gt("kind",[rM,lM,cM]);y({windowStart:c(),windowEnd:c(),series:y({granularity:Ww,points:k(oM)}),totals:y({crawlerHits:h().int().nonnegative(),crawlerContentHits:h().int().nonnegative(),crawlerInfraHits:h().int().nonnegative(),crawlerSegments:Fw,aiUserFetchHits:h().int().nonnegative(),aiReferralHits:h().int().nonnegative(),aiReferralPaidHits:h().int().nonnegative(),aiReferralOrganicHits:h().int().nonnegative(),aiReferralUnknownHits:h().int().nonnegative()}),eventRows:y({total:h().int().nonnegative(),returned:h().int().nonnegative(),truncated:P()}),events:k(uM)});const ex=E(["queued","running","completed","partial","failed"]),wK=ex.enum,tx=E(["queued","running","completed","failed"]),xK=tx.enum;y({queries:k(c().trim().min(1).max(4e3)).min(1).max(50),provider:c().trim().min(1).optional(),model:c().trim().min(1).max(200).optional(),location:gn.nullable().optional(),idempotencyKey:c().trim().min(1).max(128).optional()}).superRefine((e,t)=>{e.model&&!e.provider&&t.addIssue({code:ht.custom,path:["provider"],message:"provider is required when model is supplied"})});const nx=y({id:c(),projectId:c(),status:ex,provider:c(),requestedModel:c().nullable(),resolvedModel:c(),location:gn.nullable(),totalQueries:h().int(),completedQueries:h().int(),failedQueries:h().int(),error:c().nullable(),startedAt:c().nullable(),finishedAt:c().nullable(),createdAt:c()}),dM=y({id:c(),position:h().int(),query:c(),status:tx,requestedModel:c().nullable(),resolvedModel:c(),servedModel:c().nullable(),answerText:c().nullable(),groundingSources:k(Xu),citedDomains:k(c()),searchQueries:k(c()),namedCompetitors:k(c()).default([]),citedCompetitorDomains:k(c()).default([]),answerMentioned:P().nullable(),citationState:Fa.nullable(),error:c().nullable(),startedAt:c().nullable(),finishedAt:c().nullable(),createdAt:c()});nx.extend({queries:k(dM)});y({runs:k(nx)});y({apiKey:c().min(1)});y({id:c(),name:c(),status:c(),currencyCode:c().nullable(),timezone:c().nullable(),url:c().nullable(),reviewStatus:c().nullable(),integrityReviewStatus:c().nullable(),integrityDecision:c().nullable()});y({q:c().trim().min(1).max(200),limit:h().int().min(1).max(100).default(20)});const mM=y({id:c(),type:c(),canonicalName:c(),countryCode:c(),name:c(),regionCode:c().nullable()});y({count:h().int().nonnegative(),query:c(),results:k(mM)});const pM=y({id:c(),clientType:c().optional(),name:c().optional(),pixelId:c().optional()});y({pixels:k(pM)});const fM=y({id:c(),name:c().optional()}),hM=y({id:c(),name:c().optional(),eventType:c().optional(),customEventName:c().nullable().optional(),attributionWindowDays:h().int().positive().optional(),adAccountId:c().optional(),sourceIds:k(c()).optional(),sources:k(fM).optional(),archived:P().optional(),version:h().int().nonnegative().optional()});y({eventSettings:k(hM)});y({connected:P(),adAccountId:c().nullable().optional(),displayName:c().nullable().optional(),currencyCode:c().nullable().optional(),timezone:c().nullable().optional(),status:c().nullable().optional(),reviewStatus:c().nullable().optional(),integrityReviewStatus:c().nullable().optional(),integrityDecision:c().nullable().optional(),lastSyncedAt:c().nullable().optional(),conversionTrackingConfigured:P().optional()});y({disconnected:P()});y({runId:c(),status:c()});const gM=y({type:c().nullable().optional(),title:c().nullable().optional(),body:c().nullable().optional(),targetUrl:c().nullable().optional(),fileId:c().nullable().optional()}),zl=E(["impressions","clicks"]),yM=zl.enum,El=E(["impression","click"]);El.enum;const bM=y({id:c(),adGroupId:c(),name:c(),status:c(),reviewStatus:c().nullable().optional(),creative:gM.nullable().optional(),upstreamUpdatedAt:h().int().nullable().optional(),syncedAt:c().optional()}),vM=y({id:c(),campaignId:c(),name:c(),description:c().nullable().optional(),status:c(),billingEventType:Ge([El,he()]).optional(),maxBidMicros:h().int().nullable().optional(),contextHints:k(c()).default([]),ads:k(bM).default([]),upstreamUpdatedAt:h().int().nullable().optional(),syncedAt:c().optional()}),kM=y({id:c(),name:c(),description:c().nullable().optional(),status:c(),startTime:h().int().nullable().optional(),endTime:h().int().nullable().optional(),biddingType:Ge([zl,he()]).optional(),dailySpendLimitMicros:h().int().nullable().optional(),lifetimeSpendLimitMicros:h().int().nullable().optional(),conversionEventSettingIds:k(c()).default([]),locationIds:k(c()).optional(),adGroups:k(vM).default([]),upstreamUpdatedAt:h().int().nullable().optional(),syncedAt:c().optional()});y({campaigns:k(kM)});const ax=E(["campaign","ad_group"]);ax.enum;const wM=y({level:ax,entityId:c(),date:c(),impressions:h().int(),clicks:h().int(),spendMicros:h().int(),conversions:h().int(),ctr:h().nullable(),cpcMicros:h().int().nullable(),inProgress:P()});y({rows:k(wM),currencyCode:c().nullable().optional()});const ix=y({from:c().nullable(),to:c().nullable(),inProgressDate:c().nullable()}),sx=y({impressions:h().int(),clicks:h().int(),spendMicros:h().int(),conversions:h().int(),ctr:h().nullable(),cpcMicros:h().int().nullable()});y({connected:P(),displayName:c().nullable().optional(),currencyCode:c().nullable().optional(),lastSyncedAt:c().nullable().optional(),campaignCount:h().int(),adGroupCount:h().int(),adCount:h().int(),window:ix,totals:sx});const ox=E(["unavailable","partial","complete"]);ox.enum;const rx=E(["no_ads_connection","connection_not_synced","no_ads_sync","entity_rows_missing_sync_run_id","entity_rows_span_multiple_sync_runs","source_sync_missing","source_sync_not_ads_sync","source_sync_not_completed"]);rx.enum;const lx=E(["unavailable","reported"]);lx.enum;const xM={storedSnapshot:"stored_ads_snapshot"},cx=E(["unavailable","partial_snapshot","metrics_unavailable","observed_activity","no_observed_activity"]);cx.enum;const SM=y({id:c(),name:c(),status:c(),reviewStatus:c().nullable()}),jM=y({id:c(),name:c(),status:c(),billingEventType:Ge([El,he()]),maxBidMicros:h().int().nullable(),contextHints:k(c()),ads:k(SM)}),AM=y({id:c(),name:c(),status:c(),biddingType:Ge([zl,he()]),dailySpendLimitMicros:h().int().nullable(),lifetimeSpendLimitMicros:h().int().nullable(),conversionEventSettingIds:k(c()),adGroups:k(jM)});y({snapshot:y({status:ox,issue:Ge([rx,he()]),lastSyncedAt:c().nullable(),campaignCount:h().int().nonnegative(),adGroupCount:h().int().nonnegative(),adCount:h().int().nonnegative(),sourceSync:y({runId:c(),status:$i}).nullable()}),historicalCampaignRollups:y({status:lx,window:ix,totals:sx.nullable()}),storedConfiguration:y({basis:ae(xM.storedSnapshot),connection:y({status:c().nullable(),reviewStatus:c().nullable(),integrityReviewStatus:c().nullable(),integrityDecision:c().nullable(),conversionTrackingConfigured:P()}).nullable(),campaigns:k(AM)}),assessment:y({state:cx})});const Xa=c().min(8).max(128).regex(/^[\w.:-]+$/,"operationKey may contain letters, numbers, dot, underscore, colon, and hyphen"),vt=c().min(1).max(200),js=c().min(3).max(1e3).refine(e=>e.trim().length>0),Mo=h().int().min(946684800).max(4102444800),Bo=h().int().positive().max(Number.MAX_SAFE_INTEGER),Q0=c().regex(/^[a-f0-9]{64}$/),ux=k(vt).max(100).refine(e=>new Set(e).size===e.length,"conversionEventSettingIds must be unique"),dx=c().url().refine(e=>new URL(e).protocol==="https:",{message:"URL must use https"}),mx=E(["image_upload","campaign_create","campaign_update","campaign_pause","campaign_tree_activate","ad_group_create","ad_group_update","ad_group_pause","ad_create","ad_update","ad_pause"]);mx.enum;const px=E(["pending","reconciling","succeeded","failed","unknown"]),No=px.enum,fx=E(["known_entity","create_fingerprint","manual_only"]);fx.enum;const hx=E([No.pending,No.unknown,No.reconciling]);hx.enum;const gx=E(["active","paused","archived"]);gx.enum;const yx=E(["file","campaign","ad_group","ad"]);yx.enum;const bx=E(["campaign","ad_group","ad"]);bx.enum;const Z0=y({id:vt,expectedUpdatedAt:h().int().nonnegative()}).strict(),NM=Z0,Ou=100,_M=Z0.extend({ads:k(NM).min(1).max(Ou-1)}).strict(),CM=Z0.extend({adGroups:k(_M).min(1).max(Ou-1)}).strict();function zM(e,t){return e<t?-1:e>t?1:0}function zv(e,t,i){for(let s=1;s<e.length;s+=1)if(zM(e[s-1].id,e[s].id)>=0){i.addIssue({code:"custom",path:t,message:"Activation manifest entities must be uniquely sorted by id"});return}}const vx=y({campaign:CM}).strict().superRefine((e,t)=>{1+e.campaign.adGroups.reduce((r,u)=>r+1+u.ads.length,0)>Ou&&t.addIssue({code:"custom",path:["campaign"],message:`Activation manifests may contain at most ${Ou} entities`}),zv(e.campaign.adGroups,["campaign","adGroups"],t);const s=new Set;for(let r=0;r<e.campaign.adGroups.length;r+=1){const u=e.campaign.adGroups[r];zv(u.ads,["campaign","adGroups",r,"ads"],t);for(let d=0;d<u.ads.length;d+=1){const g=u.ads[d];s.has(g.id)&&t.addIssue({code:"custom",path:["campaign","adGroups",r,"ads",d,"id"],message:"An ad may appear only once in an activation manifest"}),s.add(g.id)}}}),kx=Q0,EM=E(["approved","executing","consumed","revoked","expired","unknown"]),Qa=EM.enum,TM=E(["pending","executing","active","failed","rollback_executing","rolled_back","rollback_failed","unknown"]),Ui=TM.enum,DM=y({name:js.optional(),description:c().max(4e3).nullable().optional(),status:gx.optional(),startTime:Mo.nullable().optional(),endTime:Mo.nullable().optional(),lifetimeSpendLimitMicros:Bo.min(1e6).optional(),locationIds:k(vt).max(100).optional(),biddingType:zl.optional(),conversionEventSettingIds:ux.optional(),campaignId:vt.optional(),contextHints:k(c().min(1).max(1e3)).max(100).optional(),maxBidMicros:Bo.max(1e8).optional(),billingEventType:El.optional(),adGroupId:vt.optional(),creativeFingerprint:Q0.optional()}).strict();y({operationKey:Xa,imageUrl:dx});y({operationKey:Xa,name:js,description:c().max(4e3).optional(),startTime:Mo.optional(),endTime:Mo.optional(),lifetimeSpendLimitMicros:Bo.min(1e6),locationIds:k(vt).min(1).max(100),biddingType:zl.optional(),conversionEventSettingIds:ux.optional()}).superRefine((e,t)=>{e.startTime!==void 0&&e.endTime!==void 0&&e.endTime<=e.startTime&&t.addIssue({code:"custom",path:["endTime"],message:"endTime must be after startTime"}),e.biddingType===yM.clicks&&(e.conversionEventSettingIds===void 0||e.conversionEventSettingIds.length===0)&&t.addIssue({code:"custom",path:["conversionEventSettingIds"],message:"conversionEventSettingIds must be non-empty when biddingType is clicks"})});y({operationKey:Xa,campaignId:vt,name:js,description:c().max(4e3).optional(),contextHints:k(c().min(1).max(1e3)).min(1).max(100),maxBidMicros:Bo.max(1e8),billingEventType:El.optional()});const wx=y({title:c().min(3).max(50),body:c().min(1).max(100),targetUrl:dx,fileId:vt});y({operationKey:Xa,adGroupId:vt,name:js,creative:wx});function F0(e){return Object.keys(e).some(t=>t!=="operationKey"&&t!=="expectedUpdatedAt")}y({operationKey:Xa,expectedUpdatedAt:h().int().nonnegative(),name:js.optional(),description:c().max(4e3).nullable().optional(),startTime:Mo.nullable().optional(),endTime:Mo.nullable().optional(),lifetimeSpendLimitMicros:Bo.min(1e6).optional(),locationIds:k(vt).min(1).max(100).optional()}).refine(F0,{message:"At least one campaign field must be updated"});y({operationKey:Xa,expectedUpdatedAt:h().int().nonnegative(),name:js.optional(),description:c().max(4e3).nullable().optional(),contextHints:k(c().min(1).max(1e3)).min(1).max(100).optional(),maxBidMicros:Bo.max(1e8).optional()}).refine(F0,{message:"At least one ad group field must be updated"});y({operationKey:Xa,expectedUpdatedAt:h().int().nonnegative(),name:js.optional(),creative:wx.optional()}).refine(F0,{message:"At least one ad field must be updated"});y({operationKey:Xa});const td=y({id:c(),adAccountId:c().nullable(),operationKey:c(),kind:mx,state:px,entityType:Ge([yx,he()]),entityId:c().nullable(),upstreamUpdatedAt:h().int().nullable(),errorCode:c().nullable(),errorMessage:c().nullable(),reconcileStrategy:Ge([fx,he()]),reconcileParentId:vt.nullable(),reconcileFingerprint:Q0.nullable(),reconcileFields:DM.nullable(),reconcileAttempts:h().int().nonnegative(),lastReconciledAt:c().nullable(),createdAt:c(),updatedAt:c()});y({operation:td,replayed:P()});const ut=Ok({offset:!0}),Go={id:vt,projectId:vt,adAccountId:vt,manifestHash:kx,manifest:vx,executorApiKeyId:vt,approverApiKeyId:vt,expiresAt:ut,approvedAt:ut,createdAt:ut,updatedAt:ut,revocationRequestedAt:ut.nullable()},OM=y({...Go,state:ae(Qa.approved),operationId:he(),executionStartedAt:he(),consumedAt:he(),revokedAt:he(),expiredAt:he()}).strict(),RM=y({...Go,state:ae(Qa.executing),operationId:vt,executionStartedAt:ut,consumedAt:he(),revokedAt:he(),expiredAt:he()}).strict(),MM=y({...Go,state:ae(Qa.consumed),operationId:vt,executionStartedAt:ut,consumedAt:ut,revokedAt:he(),expiredAt:he()}).strict(),BM=y({...Go,state:ae(Qa.revoked),operationId:he(),executionStartedAt:he(),consumedAt:he(),revokedAt:ut,expiredAt:he()}).strict(),qM=y({...Go,state:ae(Qa.expired),operationId:he(),executionStartedAt:he(),consumedAt:he(),revokedAt:he(),expiredAt:ut}).strict(),IM=y({...Go,state:ae(Qa.unknown),operationId:vt,executionStartedAt:ut,consumedAt:he(),revokedAt:he(),expiredAt:he()}).strict(),xx=gt("state",[OM,RM,MM,BM,qM,IM]).superRefine((e,t)=>{e.executorApiKeyId===e.approverApiKeyId&&t.addIssue({code:"custom",path:["executorApiKeyId"],message:"The activation executor must use a different API key from the approver"}),e.revocationRequestedAt!==null&&e.state!==Qa.executing&&e.state!==Qa.unknown&&e.state!==Qa.consumed&&t.addIssue({code:"custom",path:["revocationRequestedAt"],message:"Only an executing, cancelled, or unresolved activation can carry a cancellation request"})}),Vi={id:vt,operationId:vt,ordinal:h().int().nonnegative(),entityType:bx,entityId:vt,expectedUpdatedAt:h().int().nonnegative(),createdAt:ut,updatedAt:ut},Tl={errorCode:he(),errorMessage:he()},Y0={errorCode:c().min(1).max(100),errorMessage:c().min(1).max(500),remediation:c().min(1).max(500)},LM=y({...Vi,...Tl,state:ae(Ui.pending),providerUpdatedAt:he(),remediation:he(),startedAt:he(),finishedAt:he()}).strict(),PM=y({...Vi,...Tl,state:ae(Ui.executing),providerUpdatedAt:he(),remediation:he(),startedAt:ut,finishedAt:he()}).strict(),$M=y({...Vi,...Tl,state:ae(Ui.active),providerUpdatedAt:h().int().nonnegative(),remediation:he(),startedAt:ut,finishedAt:ut}).strict(),UM=y({...Vi,...Y0,state:ae(Ui.failed),providerUpdatedAt:Ge([h().int().nonnegative(),he()]),startedAt:ut,finishedAt:ut}).strict(),VM=y({...Vi,...Tl,state:ae(Ui.rollback_executing),providerUpdatedAt:h().int().nonnegative(),remediation:c().min(1).max(500),startedAt:ut,finishedAt:he()}).strict(),KM=y({...Vi,...Tl,state:ae(Ui.rolled_back),providerUpdatedAt:h().int().nonnegative(),remediation:c().min(1).max(500),startedAt:ut,finishedAt:ut}).strict(),GM=y({...Vi,...Y0,state:ae(Ui.rollback_failed),providerUpdatedAt:h().int().nonnegative(),startedAt:ut,finishedAt:ut}).strict(),HM=y({...Vi,...Y0,state:ae(Ui.unknown),providerUpdatedAt:Ge([h().int().nonnegative(),he()]),startedAt:ut,finishedAt:ut}).strict(),QM=gt("state",[LM,PM,$M,UM,VM,KM,GM,HM]),Bf={exact:"exact",refreshSemanticallyUnchanged:"refresh_semantically_unchanged"},ZM=E([Bf.exact,Bf.refreshSemanticallyUnchanged]);y({manifest:vx,executorApiKeyId:vt,expiresAt:ut,versionPolicy:ZM.default(Bf.exact)}).strict();y({grant:xx}).strict();y({}).strict();y({operationKey:Xa,grantId:vt,manifestHash:kx}).strict();y({grant:xx,operation:td,steps:k(QM)}).strict();const FM=[No.pending,No.unknown,No.reconciling];function YM(e){if(e===void 0||e==="")return FM;if(Array.isArray(e)){const t=[];for(const i of e)typeof i=="string"?t.push(...i.split(",")):t.push(i);return t}return typeof e=="string"?e.split(",").filter(Boolean):e}y({state:M9(YM,k(hx).min(1).max(3).refine(e=>new Set(e).size===e.length,"state values must be unique")),limit:Pk().int().min(1).max(200).default(100),cursor:c().min(1).max(1e3).optional()});y({operations:k(td),count:h().int().nonnegative(),nextCursor:c().nullable()});y({}).strict();y({operation:td,resolved:P()});y({campaignId:c().min(1).max(200).optional(),lookbackDays:Pk().int().min(1).max(30).default(7)});const Sx=E(["campaign","ad_group","ad"]);Sx.enum;const jx=E(["both","live-only","stored-only"]);jx.enum;const XM=ae("live-provider-read"),JM=y({date:c().nullable(),startTime:h().nullable(),endTime:h().nullable(),impressions:h().nullable(),clicks:h().nullable(),spend:h().nullable(),conversions:h().nullable(),ctr:h().nullable(),cpc:h().nullable(),cpm:h().nullable()}),Ev=y({impressions:h().int(),clicks:h().int(),spendMicros:h().int(),conversions:h().int()}),WM=y({date:c(),live:Ev.nullable(),stored:Ev.nullable(),drifted:P()}),eB=y({field:c(),live:c().nullable(),stored:c().nullable()}),tB=y({name:c().nullable(),status:c(),reviewStatus:c().nullable(),mode:c().nullable(),updatedAt:h().nullable()}),nB=y({name:c(),status:c(),reviewStatus:c().nullable(),upstreamUpdatedAt:h().nullable(),syncedAt:c()}),aB=y({entityType:Sx,id:c(),parentId:c().nullable(),presence:jx,live:tB.nullable(),stored:nB.nullable(),fieldDeltas:k(eB),liveMetrics:k(JM).nullable(),metricDeltas:k(WM).nullable(),drifted:P()}),iB=y({surface:c(),entityId:c().nullable(),upstreamStatus:h().int().nullable()});y({basis:XM,fetchedAt:c(),adAccountId:c(),storedSnapshotSyncedAt:c().nullable(),metricsWindow:y({lookbackDays:h().int().positive()}),bounds:y({maxCampaigns:h().int().positive(),maxAdGroupsPerCampaign:h().int().positive(),maxAdsPerAdGroup:h().int().positive(),maxReaderCalls:h().int().positive(),readerCalls:h().int().nonnegative(),maxPagesPerReaderCall:h().int().positive(),maxUpstreamHttpRequests:h().int().positive(),truncated:P()}),entities:k(aB),drift:y({entitiesCompared:h().int().nonnegative(),driftedEntities:h().int().nonnegative(),statusDrifted:h().int().nonnegative(),metricsDrifted:h().int().nonnegative()}),errors:k(iB)});const Ax=E(["admin","viewer"]),sB=/^[a-z\d][\w.-]{0,63}$/i,oB=c().regex(sB,"A name may use letters, digits, dots, dashes and underscores, and must start with a letter or digit."),Tv=12,rB=c().min(Tv,`A password must be at least ${Tv} characters.`),Nx=y({id:c(),name:c(),role:Ax,createdAt:c(),lastLoginAt:c().nullable()});y({users:k(Nx)});y({name:oB,password:rB,role:Ax});y({name:c().min(1),password:c().min(1)});y({authRequired:P(),user:Nx.pick({name:!0,role:!0}).nullable()});const Ct=1,Jp=E(["system","project","queries","competitors","run"]),Wp=E(["0","1","2-3","4-5","6-10","11+"]);function xa(e){return!Number.isFinite(e)||e<=0?"0":e<2?"1":e<4?"2-3":e<6?"4-5":e<11?"6-10":"11+"}const Dv=E(["api_unavailable","database_unavailable","worker_unavailable","no_provider","no_queries","provider_save_failed","project_create_failed","query_save_failed","run_rejected","run_failed","run_cancelled","unknown"]),su=y({eventId:c().uuid(),flowVersion:ae(Ct),onboardingSessionId:c().uuid()});gt("event",[su.extend({event:ae("onboarding.started"),step:Jp,resumed:P()}).strict(),su.extend({event:ae("onboarding.step_completed"),step:Jp,method:E(["existing","inline","manual","generated","skipped","automatic"]),countBucket:Wp.optional()}).strict(),su.extend({event:ae("onboarding.blocked"),step:Jp,action:E(["continue","configure_provider","generate_queries","save","launch_run","retry_run"]),reasonCode:Dv}).strict(),su.extend({event:ae("run.requested"),origin:ae("dashboard_setup"),result:E(["queued","rejected"]),providerCountBucket:Wp,queryCountBucket:Wp,reasonCode:Dv.optional()}).strict()]);y({accepted:P()});const lB=4;function cB(e){return e.length<lB}var uB=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(uB||{});const SK={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},jK={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},dB=T0;function mB(e){const t=[];if(e.message&&t.push(e.message),e.providers)for(const[i,s]of Object.entries(e.providers)){const r=`[${i}] ${s.message}`;s.raw!==void 0?t.push(`${r}
|
|
53
53
|
|
|
54
54
|
${JSON.stringify(s.raw,null,2)}`):t.push(r)}return t.length>0?t.join(`
|
|
55
55
|
|
|
56
|
-
`):"Run failed."}function mB(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function jK(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function AK(e){return e===null?"Unknown":e?"Pass":"Fail"}function Ov(e){return e===0?"12:00 AM":e<12?`${e}:00 AM`:e===12?"12:00 PM":`${e-12}:00 PM`}function NK(e,t){return e==="twice-daily"?"twice-daily":e.startsWith("weekly@")?`${e}@${t}`:`daily@${t}`}function _K(e,t){if(!e)return{freq:"custom",hour:6,customCron:t};if(e==="twice-daily")return{freq:"twice-daily",hour:6,customCron:""};const i=e.match(/^daily(?:@(\d+))?$/);if(i)return{freq:"daily",hour:i[1]?parseInt(i[1]):6,customCron:""};const s=e.match(/^(weekly@(?:mon|tue|wed|thu|fri|sat|sun))(?:@(\d+))?$/);return s?{freq:s[1],hour:s[2]?parseInt(s[2]):6,customCron:""}:{freq:"custom",hour:6,customCron:t}}function CK(e,t,i){const s=i==="UTC"?"UTC":i.split("/").pop()?.replace(/_/g," ")??i;if(!e)return`Custom: ${t} · ${s}`;if(e==="twice-daily")return`Twice a day (6am & 6pm) · ${s}`;const r=e.match(/^daily(?:@(\d+))?$/);if(r){const d=r[1]?parseInt(r[1]):6;return`Every day at ${Ov(d)} · ${s}`}const u=e.match(/^weekly@(mon|tue|wed|thu|fri|sat|sun)(?:@(\d+))?$/);if(u){const d={mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday",sun:"Sunday"},g=u[2]?parseInt(u[2]):6;return`Every ${d[u[1]]} at ${Ov(g)} · ${s}`}return`${e} · ${s}`}function pB(e,t){return t&&t!==e?`${e} · ${t}`:e}function zK(){const e=Intl.DateTimeFormat().resolvedOptions().timeZone,t=new Intl.DateTimeFormat("en-US",{timeZoneName:"short"}).formatToParts().find(i=>i.type==="timeZoneName")?.value;return pB(e,t)}function fB(e){const t=e.replace(/\/+$/,"")||"/";return t==="/"?"overview":t==="/projects"?"projects":t.startsWith("/projects/")?"project":t==="/runs"?"runs":t==="/traffic"||t.startsWith("/traffic/")?"traffic":t==="/backlinks"?"backlinks":t==="/settings"?"settings":t==="/setup"?"setup":"other"}function hB(e,t){return!t||t.includes(e)}const _x=["overview","search-console","local","discovery","report","activity","backlinks","technical-aeo","history","settings"],gB=new Set(_x);function EK(e){const t=e??_x,i=[...new Set(t.filter(s=>gB.has(s)))];return i.length>0?i:["overview"]}function TK(e,t){return hB(e,t)||!t?e:t.includes("overview")?"overview":t[0]??"overview"}const Rv={bg:"--canonry-embed-bg",fg:"--canonry-embed-fg",accent:"--color-link"},yB=/^(?:#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|rgba?\([0-9.,%\s/]+\)|hsla?\([0-9.,%\s/a-z]+\))$/i,bB=/^[a-z0-9][a-z0-9 -]{0,48}$/i;function Cx(e){const t=e?.font?.trim();return t&&bB.test(t)?t:void 0}function vB(e){const t=e?.mode?.trim();return t==="light"||t==="dark"?t:void 0}function kB(e){if(!e)return{};const t={};for(const[s,r]of Object.entries(e)){const u=Object.hasOwn(Rv,s)?Rv[s]:void 0;if(!u||typeof r!="string")continue;const d=r.trim();yB.test(d)&&(t[u]=d)}const i=Cx(e);return i&&(t["--font-sans"]=`"${i}", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`),t}function wB(e){const t=Cx(e);if(t)return`https://fonts.googleapis.com/css2?family=${t.replace(/ /g,"+")}:wght@400;500;600;700&display=swap`}const Se=(e,t,i,s)=>{const r={_id:e,baseUrl:t?.baseUrl||(t?.client??V).getConfig().baseUrl};return i&&(r._infinite=i),t?.body&&(r.body=t.body),t?.headers&&(r.headers=t.headers),t?.path&&(r.path=t.path),t?.query&&(r.query=t.query),[r]},xB=e=>Se("getApiV1ProjectsByName",e),SB=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await B2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:xB(e)}),jB=e=>Se("getApiV1ProjectsByNameMeasurementPlan",e),DK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:jB(e)}),AB=e=>Se("getApiV1ProjectsByNameMeasurementReport",e),OK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await P4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:AB(e)}),NB=e=>Se("getApiV1ProjectsByNameMeasurementSetup",e),RK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await $4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:NB(e)}),zx=(e,t)=>{const i={...e[0]};return t.body&&(i.body={...e[0].body,...t.body}),t.headers&&(i.headers={...e[0].headers,...t.headers}),t.path&&(i.path={...e[0].path,...t.path}),t.query&&(i.query={...e[0].query,...t.query}),i},_B=e=>Se("getApiV1ProjectsByNameMeasurementOverview",e),MK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await q2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:_B(e)}),CB=e=>Se("getApiV1ProjectsByNameMeasurementOverview",e,!0),BK=e=>x2({queryFn:async({pageParam:t,queryKey:i,signal:s})=>{const u=zx(i,typeof t=="object"?t:{query:{cursor:t}}),{data:d}=await q2({...e,...u,signal:s,throwOnError:!0});return d},queryKey:CB(e)}),zB=e=>Se("getApiV1ProjectsByNameMeasurementPropertyEvidence",e,!0),qK=e=>x2({queryFn:async({pageParam:t,queryKey:i,signal:s})=>{const u=zx(i,typeof t=="object"?t:{query:{cursor:t}}),{data:d}=await U4({...e,...u,signal:s,throwOnError:!0});return d},queryKey:zB(e)}),EB=e=>Se("getApiV1ProjectsByNameMeasurementQuestionResult",e),IK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:EB(e)}),TB=e=>Se("getApiV1ProjectsByNameMeasurementPropertyCompetitors",e),LK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await K4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:TB(e)}),Ho=e=>Se("getApiV1Projects",e),nd=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await G4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Ho(e)}),DB=e=>Se("getApiV1ProjectsByNameResearchRuns",e),PK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await H4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:DB(e)}),$K=e=>({mutationFn:async i=>{const{data:s}=await Q4({...e,...i,throwOnError:!0});return s}}),OB=e=>Se("getApiV1ProjectsByNameResearchRunsByRunId",e),UK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Z4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:OB(e)}),RB=e=>Se("getApiV1ProjectsByNameQueries",e),VK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await I2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:RB(e)}),MB=e=>Se("getApiV1ProjectsByNameRuns",e),BB=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:MB(e)}),X0=e=>Se("getApiV1Runs",e),J0=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await r5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:X0(e)}),qB=e=>Se("getApiV1RunsById",e),Ex=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await P2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:qB(e)}),IB=e=>Se("getApiV1ProjectsByNameHistory",e),KK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await u5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:IB(e)}),LB=e=>Se("getApiV1History",e),GK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await d5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:LB(e)}),PB=e=>Se("getApiV1ProjectsByNameSnapshotsDiff",e),HK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await f5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:PB(e)}),$B=e=>Se("getApiV1Settings",e),UB=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await $2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:$B(e)}),VB=e=>Se("getApiV1ProjectsByNameSchedule",e),QK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await U2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:VB(e)}),KB=e=>Se("getApiV1ProjectsByNameGoogleConnections",e),ZK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await _5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:KB(e)}),GB=e=>Se("getApiV1ProjectsByNameGoogleProperties",e),FK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await E5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:GB(e)}),HB=e=>Se("getApiV1ProjectsByNameGoogleGscPerformance",e),YK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await R5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:HB(e)}),QB=e=>Se("getApiV1ProjectsByNameGoogleGscPerformanceDaily",e),XK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await M5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:QB(e)}),ZB=e=>Se("getApiV1ProjectsByNameGoogleGscInspections",e),JK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await q5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:ZB(e)}),FB=e=>Se("getApiV1ProjectsByNameGoogleGscDeindexed",e),WK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await I5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:FB(e)}),YB=e=>Se("getApiV1ProjectsByNameGoogleGscCoverage",e),eG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:YB(e)}),XB=e=>Se("getApiV1ProjectsByNameGoogleGscCoverageHistory",e),tG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:XB(e)}),nG=e=>Se("getApiV1ProjectsByNameGoogleGscSitemaps",e),JB=e=>Se("getApiV1ProjectsByNameGbpLocations",e),aG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:JB(e)}),iG=e=>({mutationFn:async i=>{const{data:s}=await K5({...e,...i,throwOnError:!0});return s}}),sG=e=>({mutationFn:async i=>{const{data:s}=await G5({...e,...i,throwOnError:!0});return s}}),WB=e=>Se("getApiV1ProjectsByNameGbpKeywords",e),oG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await H5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:WB(e)}),eq=e=>Se("getApiV1ProjectsByNameGbpPlaceActions",e),rG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Q5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:eq(e)}),tq=e=>Se("getApiV1ProjectsByNameGbpLodging",e),lG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Z5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:tq(e)}),nq=e=>Se("getApiV1ProjectsByNameGbpPlaces",e),cG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await F5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:nq(e)}),aq=e=>Se("getApiV1ProjectsByNameGbpSummary",e),uG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Y5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:aq(e)}),iq=e=>Se("getApiV1ProjectsByNameBingStatus",e),dG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await W5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:iq(e)}),sq=e=>Se("getApiV1ProjectsByNameBingSites",e),mG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await e6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:sq(e)}),oq=e=>Se("getApiV1ProjectsByNameBingCoverage",e),pG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await K2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:oq(e)}),rq=e=>Se("getApiV1ProjectsByNameBingInspections",e),fG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await n6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:rq(e)}),lq=e=>Se("getApiV1ProjectsByNameBingPerformance",e),hG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await o6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:lq(e)}),cq=e=>Se("getApiV1ProjectsByNameGaStatus",e),gG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await c6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:cq(e)}),uq=e=>Se("getApiV1ProjectsByNameGaTraffic",e),yG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await d6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:uq(e)}),dq=e=>Se("getApiV1ProjectsByNameGaAiReferralDaily",e),bG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await m6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:dq(e)}),mq=e=>Se("getApiV1ProjectsByNameGaSocialReferralHistory",e),vG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await p6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:mq(e)}),pq=e=>Se("getApiV1ProjectsByNameGaSessionHistory",e),kG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await f6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:pq(e)}),fq=e=>Se("getApiV1ProjectsByNameReport",e),wG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await g6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:fq(e)}),hq=e=>Se("getApiV1ProjectsByNameHealthHistory",e),xG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await y6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:hq(e)}),gq=e=>Se("getApiV1ProjectsByNameCitationsVisibility",e),SG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await b6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:gq(e)}),yq=e=>Se("getApiV1ProjectsByNameTrafficSources",e),jG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await I6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:yq(e)}),bq=e=>Se("getApiV1ProjectsByNameTrafficStatus",e),AG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:bq(e)}),vq=e=>Se("getApiV1ProjectsByNameTrafficSourcesById",e),NG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await P6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:vq(e)}),kq=e=>Se("getApiV1ProjectsByNameTrafficEvents",e),_G=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await $6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:kq(e)}),wq=e=>Se("getApiV1ProjectsByNameDiscoverSessions",e),CG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:wq(e)}),xq=e=>Se("getApiV1ProjectsByNameDiscoverSessionsById",e),zG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await K6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:xq(e)}),Sq=e=>Se("getApiV1ProjectsByNameDiscoverSessionsByIdPromote",e),EG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await G6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Sq(e)}),jq=e=>Se("getApiV1ProjectsByNameTechnicalAeo",e),TG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Q6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:jq(e)}),Aq=e=>Se("getApiV1ProjectsByNameTechnicalAeoPages",e),DG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Z6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Aq(e)}),Nq=e=>Se("getApiV1ProjectsByNameTechnicalAeoTrend",e),OG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await F6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Nq(e)}),_q=e=>Se("getApiV1ProjectsByNameAgentProviders",e),Cq=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await X6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:_q(e)});function Mv(e){return e.state==="ok"?"positive":e.state==="checking"?"neutral":"negative"}function Tx(e){switch(e){case"completed":return"positive";case"partial":return"caution";case"failed":return"negative";case"cancelled":return"caution";case"queued":case"running":return"neutral";default:return"neutral"}}function RG(e){switch(e){case"cited":return"positive";case"emerging":return"caution";case"not-cited":return"caution";case"lost":return"negative";case"pending":return"neutral";default:return"neutral"}}function MG(e){return e==="High"?"negative":e==="Moderate"?"caution":"neutral"}const BG={positive:"text-positive-400",caution:"text-caution-400",negative:"text-negative-400",neutral:"text-secondary"};function zq(e){return e.displayName??e.name.charAt(0).toUpperCase()+e.name.slice(1)}function qo(e){const t=[e.detail,e.hint].filter(Boolean);return t.length>0?t.join(`
|
|
57
|
-
`):void 0}function Eq(e,t,i){return e.map(s=>{if(s.id==="api")return{...s,tone:Mv(t.apiStatus),detail:t.apiStatus.state==="ok"?"Healthy":"Needs attention",meta:t.apiStatus.detail};if(s.id==="worker")return{...s,tone:Mv(t.workerStatus),detail:t.workerStatus.state==="ok"?"Healthy":"Needs attention",meta:t.workerStatus.detail};const r=i.providerStatuses.filter(b=>b.state==="ready").length,u=i.providerStatuses.length,d=r>0,g=i.providerStatuses.filter(b=>b.state==="ready").map(b=>zq(b)).join(" · ");return{...s,label:"Providers",tone:d?"positive":"caution",detail:`${r} of ${u} configured`,meta:g||"None configured"}})}function Tq(e,t){if(e.apiStatus.state!=="ok")return"Launch is blocked until the API responds cleanly.";if(e.apiStatus.databaseConfigured===!1)return"Launch is blocked until the API has a database connection configured.";if(e.workerStatus.state!=="ok")return"Launch is blocked until the worker is healthy and heartbeats are current.";if(!t.providerStatuses.some(i=>i.state==="ready"))return"Launch is blocked until at least one provider is configured."}function Dq(e,t,i){const s=Tq(t,i),r=structuredClone(e);return r.healthChecks=r.healthChecks.map(u=>{if(u.id==="api")return{...u,detail:t.apiStatus.detail,state:t.apiStatus.state==="ok"?"ready":"attention"};if(u.id==="worker")return{...u,detail:t.workerStatus.detail,state:t.workerStatus.state==="ok"?"ready":"attention"};const d=i.providerStatuses.some(g=>g.state==="ready");return{...u,detail:d?"At least one provider configured.":"No providers configured.",state:d?"ready":"attention"}}),r.launchState.enabled=s===void 0,r.launchState.blockedReason=s,r.launchState.summary=s??"Queue a visibility sweep first, then follow with a site audit to explain movement.",r}const Dx="canonry.run-tracker",qf=new Set;let Bv=!1,Oq=0,ad={runs:{},batches:{}};function Rq(){const e=Ya();for(const t of qf)t(e)}function Mq(e){if(!e)return{runs:{},batches:{}};try{const t=JSON.parse(e);return{runs:t.runs??{},batches:t.batches??{}}}catch{return{runs:{},batches:{}}}}function Bq(){typeof window>"u"||window.sessionStorage.setItem(Dx,JSON.stringify(ad))}function Ox(){Bv||(Bv=!0,!(typeof window>"u")&&(ad=Mq(window.sessionStorage.getItem(Dx))))}function id(e){ad=e,Bq(),Rq()}function Ya(){return Ox(),ad}function Rx(e){return Ox(),qf.add(e),()=>{qf.delete(e)}}function W0(e){const t=Ya();id({...t,runs:{...t.runs,[e.id]:{runId:e.id,projectId:e.projectId,projectLabel:e.projectLabel,kind:e.kind,sourceAction:e.sourceAction,lastAnnouncedStatus:e.lastAnnouncedStatus??"queued",trackedAt:e.trackedAt??Date.now()}}})}function ef(e){const t=Ya();if(!t.runs[e])return;const{[e]:i,...s}=t.runs;id({...t,runs:s})}function qq(e){const t=Ya(),i=`batch_${Date.now()}_${++Oq}`;return id({...t,batches:{...t.batches,[i]:{batchId:i,runIds:e.runIds,queuedCount:e.queuedCount,skippedCount:e.skippedCount}}}),i}function Iq(e){const t=Ya();if(!t.batches[e])return;const{[e]:i,...s}=t.batches;id({...t,batches:s})}function Lq(e){return e==="completed"||e==="partial"||e==="failed"||e==="cancelled"}const Pq=10*6e4;function $q(e,t,i,s){return e.filter(r=>!t.has(r.runId)&&i-(r.trackedAt??0)>=s)}function Uq(e,t){let i=0,s=0,r=0,u=0,d=0;for(const g of e){const b=t[g]?.status;b==="completed"?i+=1:b==="partial"?s+=1:b==="failed"?r+=1:b==="cancelled"?u+=1:d+=1}return{completed:i,partial:s,failed:r,cancelled:u,pending:d,finished:d===0}}const qv=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Iv=z2,Mx=(e,t)=>i=>{var s;if(t?.variants==null)return Iv(e,i?.class,i?.className);const{variants:r,defaultVariants:u}=t,d=Object.keys(r).map(v=>{const x=i?.[v],S=u?.[v];if(x===null)return null;const j=qv(x)||qv(S);return r[v][j]}),g=i&&Object.entries(i).reduce((v,x)=>{let[S,j]=x;return j===void 0||(v[S]=j),v},{}),b=t==null||(s=t.compoundVariants)===null||s===void 0?void 0:s.reduce((v,x)=>{let{class:S,className:j,..._}=x;return Object.entries(_).every(T=>{let[N,C]=T;return Array.isArray(C)?C.includes({...u,...g}[N]):{...u,...g}[N]===C})?[...v,S,j]:v},[]);return Iv(e,d,b,i?.class,i?.className)},Vq=(e,t)=>{const i=new Array(e.length+t.length);for(let s=0;s<e.length;s++)i[s]=e[s];for(let s=0;s<t.length;s++)i[e.length+s]=t[s];return i},Kq=(e,t)=>({classGroupId:e,validator:t}),Bx=(e=new Map,t=null,i)=>({nextPart:e,validators:t,classGroupId:i}),Ru="-",Lv=[],Gq="arbitrary..",Hq=e=>{const t=Zq(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return Qq(d);const g=d.split(Ru),b=g[0]===""&&g.length>1?1:0;return qx(g,b,t)},getConflictingClassGroupIds:(d,g)=>{if(g){const b=s[d],v=i[d];return b?v?Vq(v,b):b:v||Lv}return i[d]||Lv}}},qx=(e,t,i)=>{if(e.length-t===0)return i.classGroupId;const r=e[t],u=i.nextPart.get(r);if(u){const v=qx(e,t+1,u);if(v)return v}const d=i.validators;if(d===null)return;const g=t===0?e.join(Ru):e.slice(t).join(Ru),b=d.length;for(let v=0;v<b;v++){const x=d[v];if(x.validator(g))return x.classGroupId}},Qq=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),i=t.indexOf(":"),s=t.slice(0,i);return s?Gq+s:void 0})(),Zq=e=>{const{theme:t,classGroups:i}=e;return Fq(i,t)},Fq=(e,t)=>{const i=Bx();for(const s in e){const r=e[s];eh(r,i,s,t)}return i},eh=(e,t,i,s)=>{const r=e.length;for(let u=0;u<r;u++){const d=e[u];Yq(d,t,i,s)}},Yq=(e,t,i,s)=>{if(typeof e=="string"){Xq(e,t,i);return}if(typeof e=="function"){Jq(e,t,i,s);return}Wq(e,t,i,s)},Xq=(e,t,i)=>{const s=e===""?t:Ix(t,e);s.classGroupId=i},Jq=(e,t,i,s)=>{if(eI(e)){eh(e(s),t,i,s);return}t.validators===null&&(t.validators=[]),t.validators.push(Kq(i,e))},Wq=(e,t,i,s)=>{const r=Object.entries(e),u=r.length;for(let d=0;d<u;d++){const[g,b]=r[d];eh(b,Ix(t,g),i,s)}},Ix=(e,t)=>{let i=e;const s=t.split(Ru),r=s.length;for(let u=0;u<r;u++){const d=s[u];let g=i.nextPart.get(d);g||(g=Bx(),i.nextPart.set(d,g)),i=g}return i},eI=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,tI=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,i=Object.create(null),s=Object.create(null);const r=(u,d)=>{i[u]=d,t++,t>e&&(t=0,s=i,i=Object.create(null))};return{get(u){let d=i[u];if(d!==void 0)return d;if((d=s[u])!==void 0)return r(u,d),d},set(u,d){u in i?i[u]=d:r(u,d)}}},If="!",Pv=":",nI=[],$v=(e,t,i,s,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:i,maybePostfixModifierPosition:s,isExternal:r}),aI=e=>{const{prefix:t,experimentalParseClassName:i}=e;let s=r=>{const u=[];let d=0,g=0,b=0,v;const x=r.length;for(let N=0;N<x;N++){const C=r[N];if(d===0&&g===0){if(C===Pv){u.push(r.slice(b,N)),b=N+1;continue}if(C==="/"){v=N;continue}}C==="["?d++:C==="]"?d--:C==="("?g++:C===")"&&g--}const S=u.length===0?r:r.slice(b);let j=S,_=!1;S.endsWith(If)?(j=S.slice(0,-1),_=!0):S.startsWith(If)&&(j=S.slice(1),_=!0);const T=v&&v>b?v-b:void 0;return $v(u,_,j,T)};if(t){const r=t+Pv,u=s;s=d=>d.startsWith(r)?u(d.slice(r.length)):$v(nI,!1,d,void 0,!0)}if(i){const r=s;s=u=>i({className:u,parseClassName:r})}return s},iI=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((i,s)=>{t.set(i,1e6+s)}),i=>{const s=[];let r=[];for(let u=0;u<i.length;u++){const d=i[u],g=d[0]==="[",b=t.has(d);g||b?(r.length>0&&(r.sort(),s.push(...r),r=[]),s.push(d)):r.push(d)}return r.length>0&&(r.sort(),s.push(...r)),s}},sI=e=>({cache:tI(e.cacheSize),parseClassName:aI(e),sortModifiers:iI(e),...Hq(e)}),oI=/\s+/,rI=(e,t)=>{const{parseClassName:i,getClassGroupId:s,getConflictingClassGroupIds:r,sortModifiers:u}=t,d=[],g=e.trim().split(oI);let b="";for(let v=g.length-1;v>=0;v-=1){const x=g[v],{isExternal:S,modifiers:j,hasImportantModifier:_,baseClassName:T,maybePostfixModifierPosition:N}=i(x);if(S){b=x+(b.length>0?" "+b:b);continue}let C=!!N,O=s(C?T.substring(0,N):T);if(!O){if(!C){b=x+(b.length>0?" "+b:b);continue}if(O=s(T),!O){b=x+(b.length>0?" "+b:b);continue}C=!1}const I=j.length===0?"":j.length===1?j[0]:u(j).join(":"),$=_?I+If:I,K=$+O;if(d.indexOf(K)>-1)continue;d.push(K);const Z=r(O,C);for(let se=0;se<Z.length;++se){const R=Z[se];d.push($+R)}b=x+(b.length>0?" "+b:b)}return b},lI=(...e)=>{let t=0,i,s,r="";for(;t<e.length;)(i=e[t++])&&(s=Lx(i))&&(r&&(r+=" "),r+=s);return r},Lx=e=>{if(typeof e=="string")return e;let t,i="";for(let s=0;s<e.length;s++)e[s]&&(t=Lx(e[s]))&&(i&&(i+=" "),i+=t);return i},cI=(e,...t)=>{let i,s,r,u;const d=b=>{const v=t.reduce((x,S)=>S(x),e());return i=sI(v),s=i.cache.get,r=i.cache.set,u=g,g(b)},g=b=>{const v=s(b);if(v)return v;const x=rI(b,i);return r(b,x),x};return u=d,(...b)=>u(lI(...b))},uI=[],Ut=e=>{const t=i=>i[e]||uI;return t.isThemeGetter=!0,t},Px=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,$x=/^\((?:(\w[\w-]*):)?(.+)\)$/i,dI=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,mI=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,pI=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,fI=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,hI=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,gI=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ci=e=>dI.test(e),Ie=e=>!!e&&!Number.isNaN(Number(e)),zi=e=>!!e&&Number.isInteger(Number(e)),tf=e=>e.endsWith("%")&&Ie(e.slice(0,-1)),Ka=e=>mI.test(e),Ux=()=>!0,yI=e=>pI.test(e)&&!fI.test(e),th=()=>!1,bI=e=>hI.test(e),vI=e=>gI.test(e),kI=e=>!be(e)&&!ke(e),wI=e=>Ki(e,Gx,th),be=e=>Px.test(e),fs=e=>Ki(e,Hx,yI),Uv=e=>Ki(e,zI,Ie),xI=e=>Ki(e,Zx,Ux),SI=e=>Ki(e,Qx,th),Vv=e=>Ki(e,Vx,th),jI=e=>Ki(e,Kx,vI),ou=e=>Ki(e,Fx,bI),ke=e=>$x.test(e),tl=e=>As(e,Hx),AI=e=>As(e,Qx),Kv=e=>As(e,Vx),NI=e=>As(e,Gx),_I=e=>As(e,Kx),ru=e=>As(e,Fx,!0),CI=e=>As(e,Zx,!0),Ki=(e,t,i)=>{const s=Px.exec(e);return s?s[1]?t(s[1]):i(s[2]):!1},As=(e,t,i=!1)=>{const s=$x.exec(e);return s?s[1]?t(s[1]):i:!1},Vx=e=>e==="position"||e==="percentage",Kx=e=>e==="image"||e==="url",Gx=e=>e==="length"||e==="size"||e==="bg-size",Hx=e=>e==="length",zI=e=>e==="number",Qx=e=>e==="family-name",Zx=e=>e==="number"||e==="weight",Fx=e=>e==="shadow",EI=()=>{const e=Ut("color"),t=Ut("font"),i=Ut("text"),s=Ut("font-weight"),r=Ut("tracking"),u=Ut("leading"),d=Ut("breakpoint"),g=Ut("container"),b=Ut("spacing"),v=Ut("radius"),x=Ut("shadow"),S=Ut("inset-shadow"),j=Ut("text-shadow"),_=Ut("drop-shadow"),T=Ut("blur"),N=Ut("perspective"),C=Ut("aspect"),O=Ut("ease"),I=Ut("animate"),$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],K=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Z=()=>[...K(),ke,be],se=()=>["auto","hidden","clip","visible","scroll"],R=()=>["auto","contain","none"],q=()=>[ke,be,b],pe=()=>[Ci,"full","auto",...q()],ue=()=>[zi,"none","subgrid",ke,be],fe=()=>["auto",{span:["full",zi,ke,be]},zi,ke,be],we=()=>[zi,"auto",ke,be],Te=()=>["auto","min","max","fr",ke,be],it=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ge=()=>["start","end","center","stretch","center-safe","end-safe"],Q=()=>["auto",...q()],oe=()=>[Ci,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...q()],me=()=>[Ci,"screen","full","dvw","lvw","svw","min","max","fit",...q()],Ce=()=>[Ci,"screen","full","lh","dvh","lvh","svh","min","max","fit",...q()],ce=()=>[e,ke,be],He=()=>[...K(),Kv,Vv,{position:[ke,be]}],ne=()=>["no-repeat",{repeat:["","x","y","space","round"]}],H=()=>["auto","cover","contain",NI,wI,{size:[ke,be]}],X=()=>[tf,tl,fs],ie=()=>["","none","full",v,ke,be],re=()=>["",Ie,tl,fs],ze=()=>["solid","dashed","dotted","double"],ct=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],_e=()=>[Ie,tf,Kv,Vv],Qe=()=>["","none",T,ke,be],Xe=()=>["none",Ie,ke,be],Gt=()=>["none",Ie,ke,be],In=()=>[Ie,ke,be],Qt=()=>[Ci,"full",...q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ka],breakpoint:[Ka],color:[Ux],container:[Ka],"drop-shadow":[Ka],ease:["in","out","in-out"],font:[kI],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ka],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ka],shadow:[Ka],spacing:["px",Ie],text:[Ka],"text-shadow":[Ka],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ci,be,ke,C]}],container:["container"],columns:[{columns:[Ie,be,ke,g]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Z()}],overflow:[{overflow:se()}],"overflow-x":[{"overflow-x":se()}],"overflow-y":[{"overflow-y":se()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:pe()}],"inset-x":[{"inset-x":pe()}],"inset-y":[{"inset-y":pe()}],start:[{"inset-s":pe(),start:pe()}],end:[{"inset-e":pe(),end:pe()}],"inset-bs":[{"inset-bs":pe()}],"inset-be":[{"inset-be":pe()}],top:[{top:pe()}],right:[{right:pe()}],bottom:[{bottom:pe()}],left:[{left:pe()}],visibility:["visible","invisible","collapse"],z:[{z:[zi,"auto",ke,be]}],basis:[{basis:[Ci,"full","auto",g,...q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ie,Ci,"auto","initial","none",be]}],grow:[{grow:["",Ie,ke,be]}],shrink:[{shrink:["",Ie,ke,be]}],order:[{order:[zi,"first","last","none",ke,be]}],"grid-cols":[{"grid-cols":ue()}],"col-start-end":[{col:fe()}],"col-start":[{"col-start":we()}],"col-end":[{"col-end":we()}],"grid-rows":[{"grid-rows":ue()}],"row-start-end":[{row:fe()}],"row-start":[{"row-start":we()}],"row-end":[{"row-end":we()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Te()}],"auto-rows":[{"auto-rows":Te()}],gap:[{gap:q()}],"gap-x":[{"gap-x":q()}],"gap-y":[{"gap-y":q()}],"justify-content":[{justify:[...it(),"normal"]}],"justify-items":[{"justify-items":[...ge(),"normal"]}],"justify-self":[{"justify-self":["auto",...ge()]}],"align-content":[{content:["normal",...it()]}],"align-items":[{items:[...ge(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ge(),{baseline:["","last"]}]}],"place-content":[{"place-content":it()}],"place-items":[{"place-items":[...ge(),"baseline"]}],"place-self":[{"place-self":["auto",...ge()]}],p:[{p:q()}],px:[{px:q()}],py:[{py:q()}],ps:[{ps:q()}],pe:[{pe:q()}],pbs:[{pbs:q()}],pbe:[{pbe:q()}],pt:[{pt:q()}],pr:[{pr:q()}],pb:[{pb:q()}],pl:[{pl:q()}],m:[{m:Q()}],mx:[{mx:Q()}],my:[{my:Q()}],ms:[{ms:Q()}],me:[{me:Q()}],mbs:[{mbs:Q()}],mbe:[{mbe:Q()}],mt:[{mt:Q()}],mr:[{mr:Q()}],mb:[{mb:Q()}],ml:[{ml:Q()}],"space-x":[{"space-x":q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":q()}],"space-y-reverse":["space-y-reverse"],size:[{size:oe()}],"inline-size":[{inline:["auto",...me()]}],"min-inline-size":[{"min-inline":["auto",...me()]}],"max-inline-size":[{"max-inline":["none",...me()]}],"block-size":[{block:["auto",...Ce()]}],"min-block-size":[{"min-block":["auto",...Ce()]}],"max-block-size":[{"max-block":["none",...Ce()]}],w:[{w:[g,"screen",...oe()]}],"min-w":[{"min-w":[g,"screen","none",...oe()]}],"max-w":[{"max-w":[g,"screen","none","prose",{screen:[d]},...oe()]}],h:[{h:["screen","lh",...oe()]}],"min-h":[{"min-h":["screen","lh","none",...oe()]}],"max-h":[{"max-h":["screen","lh",...oe()]}],"font-size":[{text:["base",i,tl,fs]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,CI,xI]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",tf,be]}],"font-family":[{font:[AI,SI,t]}],"font-features":[{"font-features":[be]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,ke,be]}],"line-clamp":[{"line-clamp":[Ie,"none",ke,Uv]}],leading:[{leading:[u,...q()]}],"list-image":[{"list-image":["none",ke,be]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ke,be]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ce()}],"text-color":[{text:ce()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ze(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ie,"from-font","auto",ke,fs]}],"text-decoration-color":[{decoration:ce()}],"underline-offset":[{"underline-offset":[Ie,"auto",ke,be]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ke,be]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ke,be]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:He()}],"bg-repeat":[{bg:ne()}],"bg-size":[{bg:H()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},zi,ke,be],radial:["",ke,be],conic:[zi,ke,be]},_I,jI]}],"bg-color":[{bg:ce()}],"gradient-from-pos":[{from:X()}],"gradient-via-pos":[{via:X()}],"gradient-to-pos":[{to:X()}],"gradient-from":[{from:ce()}],"gradient-via":[{via:ce()}],"gradient-to":[{to:ce()}],rounded:[{rounded:ie()}],"rounded-s":[{"rounded-s":ie()}],"rounded-e":[{"rounded-e":ie()}],"rounded-t":[{"rounded-t":ie()}],"rounded-r":[{"rounded-r":ie()}],"rounded-b":[{"rounded-b":ie()}],"rounded-l":[{"rounded-l":ie()}],"rounded-ss":[{"rounded-ss":ie()}],"rounded-se":[{"rounded-se":ie()}],"rounded-ee":[{"rounded-ee":ie()}],"rounded-es":[{"rounded-es":ie()}],"rounded-tl":[{"rounded-tl":ie()}],"rounded-tr":[{"rounded-tr":ie()}],"rounded-br":[{"rounded-br":ie()}],"rounded-bl":[{"rounded-bl":ie()}],"border-w":[{border:re()}],"border-w-x":[{"border-x":re()}],"border-w-y":[{"border-y":re()}],"border-w-s":[{"border-s":re()}],"border-w-e":[{"border-e":re()}],"border-w-bs":[{"border-bs":re()}],"border-w-be":[{"border-be":re()}],"border-w-t":[{"border-t":re()}],"border-w-r":[{"border-r":re()}],"border-w-b":[{"border-b":re()}],"border-w-l":[{"border-l":re()}],"divide-x":[{"divide-x":re()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":re()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ze(),"hidden","none"]}],"divide-style":[{divide:[...ze(),"hidden","none"]}],"border-color":[{border:ce()}],"border-color-x":[{"border-x":ce()}],"border-color-y":[{"border-y":ce()}],"border-color-s":[{"border-s":ce()}],"border-color-e":[{"border-e":ce()}],"border-color-bs":[{"border-bs":ce()}],"border-color-be":[{"border-be":ce()}],"border-color-t":[{"border-t":ce()}],"border-color-r":[{"border-r":ce()}],"border-color-b":[{"border-b":ce()}],"border-color-l":[{"border-l":ce()}],"divide-color":[{divide:ce()}],"outline-style":[{outline:[...ze(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ie,ke,be]}],"outline-w":[{outline:["",Ie,tl,fs]}],"outline-color":[{outline:ce()}],shadow:[{shadow:["","none",x,ru,ou]}],"shadow-color":[{shadow:ce()}],"inset-shadow":[{"inset-shadow":["none",S,ru,ou]}],"inset-shadow-color":[{"inset-shadow":ce()}],"ring-w":[{ring:re()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ce()}],"ring-offset-w":[{"ring-offset":[Ie,fs]}],"ring-offset-color":[{"ring-offset":ce()}],"inset-ring-w":[{"inset-ring":re()}],"inset-ring-color":[{"inset-ring":ce()}],"text-shadow":[{"text-shadow":["none",j,ru,ou]}],"text-shadow-color":[{"text-shadow":ce()}],opacity:[{opacity:[Ie,ke,be]}],"mix-blend":[{"mix-blend":[...ct(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ct()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ie]}],"mask-image-linear-from-pos":[{"mask-linear-from":_e()}],"mask-image-linear-to-pos":[{"mask-linear-to":_e()}],"mask-image-linear-from-color":[{"mask-linear-from":ce()}],"mask-image-linear-to-color":[{"mask-linear-to":ce()}],"mask-image-t-from-pos":[{"mask-t-from":_e()}],"mask-image-t-to-pos":[{"mask-t-to":_e()}],"mask-image-t-from-color":[{"mask-t-from":ce()}],"mask-image-t-to-color":[{"mask-t-to":ce()}],"mask-image-r-from-pos":[{"mask-r-from":_e()}],"mask-image-r-to-pos":[{"mask-r-to":_e()}],"mask-image-r-from-color":[{"mask-r-from":ce()}],"mask-image-r-to-color":[{"mask-r-to":ce()}],"mask-image-b-from-pos":[{"mask-b-from":_e()}],"mask-image-b-to-pos":[{"mask-b-to":_e()}],"mask-image-b-from-color":[{"mask-b-from":ce()}],"mask-image-b-to-color":[{"mask-b-to":ce()}],"mask-image-l-from-pos":[{"mask-l-from":_e()}],"mask-image-l-to-pos":[{"mask-l-to":_e()}],"mask-image-l-from-color":[{"mask-l-from":ce()}],"mask-image-l-to-color":[{"mask-l-to":ce()}],"mask-image-x-from-pos":[{"mask-x-from":_e()}],"mask-image-x-to-pos":[{"mask-x-to":_e()}],"mask-image-x-from-color":[{"mask-x-from":ce()}],"mask-image-x-to-color":[{"mask-x-to":ce()}],"mask-image-y-from-pos":[{"mask-y-from":_e()}],"mask-image-y-to-pos":[{"mask-y-to":_e()}],"mask-image-y-from-color":[{"mask-y-from":ce()}],"mask-image-y-to-color":[{"mask-y-to":ce()}],"mask-image-radial":[{"mask-radial":[ke,be]}],"mask-image-radial-from-pos":[{"mask-radial-from":_e()}],"mask-image-radial-to-pos":[{"mask-radial-to":_e()}],"mask-image-radial-from-color":[{"mask-radial-from":ce()}],"mask-image-radial-to-color":[{"mask-radial-to":ce()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":K()}],"mask-image-conic-pos":[{"mask-conic":[Ie]}],"mask-image-conic-from-pos":[{"mask-conic-from":_e()}],"mask-image-conic-to-pos":[{"mask-conic-to":_e()}],"mask-image-conic-from-color":[{"mask-conic-from":ce()}],"mask-image-conic-to-color":[{"mask-conic-to":ce()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:He()}],"mask-repeat":[{mask:ne()}],"mask-size":[{mask:H()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ke,be]}],filter:[{filter:["","none",ke,be]}],blur:[{blur:Qe()}],brightness:[{brightness:[Ie,ke,be]}],contrast:[{contrast:[Ie,ke,be]}],"drop-shadow":[{"drop-shadow":["","none",_,ru,ou]}],"drop-shadow-color":[{"drop-shadow":ce()}],grayscale:[{grayscale:["",Ie,ke,be]}],"hue-rotate":[{"hue-rotate":[Ie,ke,be]}],invert:[{invert:["",Ie,ke,be]}],saturate:[{saturate:[Ie,ke,be]}],sepia:[{sepia:["",Ie,ke,be]}],"backdrop-filter":[{"backdrop-filter":["","none",ke,be]}],"backdrop-blur":[{"backdrop-blur":Qe()}],"backdrop-brightness":[{"backdrop-brightness":[Ie,ke,be]}],"backdrop-contrast":[{"backdrop-contrast":[Ie,ke,be]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ie,ke,be]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ie,ke,be]}],"backdrop-invert":[{"backdrop-invert":["",Ie,ke,be]}],"backdrop-opacity":[{"backdrop-opacity":[Ie,ke,be]}],"backdrop-saturate":[{"backdrop-saturate":[Ie,ke,be]}],"backdrop-sepia":[{"backdrop-sepia":["",Ie,ke,be]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":q()}],"border-spacing-x":[{"border-spacing-x":q()}],"border-spacing-y":[{"border-spacing-y":q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ke,be]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ie,"initial",ke,be]}],ease:[{ease:["linear","initial",O,ke,be]}],delay:[{delay:[Ie,ke,be]}],animate:[{animate:["none",I,ke,be]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[N,ke,be]}],"perspective-origin":[{"perspective-origin":Z()}],rotate:[{rotate:Xe()}],"rotate-x":[{"rotate-x":Xe()}],"rotate-y":[{"rotate-y":Xe()}],"rotate-z":[{"rotate-z":Xe()}],scale:[{scale:Gt()}],"scale-x":[{"scale-x":Gt()}],"scale-y":[{"scale-y":Gt()}],"scale-z":[{"scale-z":Gt()}],"scale-3d":["scale-3d"],skew:[{skew:In()}],"skew-x":[{"skew-x":In()}],"skew-y":[{"skew-y":In()}],transform:[{transform:[ke,be,"","none","gpu","cpu"]}],"transform-origin":[{origin:Z()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Qt()}],"translate-x":[{"translate-x":Qt()}],"translate-y":[{"translate-y":Qt()}],"translate-z":[{"translate-z":Qt()}],"translate-none":["translate-none"],accent:[{accent:ce()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ce()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ke,be]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mbs":[{"scroll-mbs":q()}],"scroll-mbe":[{"scroll-mbe":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pbs":[{"scroll-pbs":q()}],"scroll-pbe":[{"scroll-pbe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ke,be]}],fill:[{fill:["none",...ce()]}],"stroke-w":[{stroke:[Ie,tl,fs,Uv]}],stroke:[{stroke:["none",...ce()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},TI=cI(EI);function ea(...e){return TI(z2(e))}const DI=Mx("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 focus-visible:ring-offset-2 focus-visible:ring-offset-overlay-scrim disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-accent text-on-inverse hover:bg-mono-200",secondary:"border border-base bg-bg text-heading hover:bg-bg-elevated",ghost:"text-secondary hover:bg-bg-elevated hover:text-primary",outline:"border border-base bg-transparent text-heading hover:bg-bg-elevated",destructive:"bg-negative-600 text-on-emphasis hover:bg-negative-700"},size:{default:"h-10 px-4 md:h-9",sm:"h-9 px-3 text-xs md:h-8",icon:"size-10 md:size-9"}},defaultVariants:{variant:"default",size:"default"}}),De=B.forwardRef(({className:e,variant:t,size:i,asChild:s=!1,...r},u)=>{const d=s?m4:"button";return m.jsx(d,{ref:u,className:ea(DI({variant:t,size:i,className:e})),...r})});De.displayName="Button";const OI=Mx("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium tracking-wide",{variants:{variant:{neutral:"border-base bg-bg text-neutral",success:"border-positive bg-positive-soft text-positive",warning:"border-caution-500/25 bg-caution-soft text-caution",destructive:"border-negative bg-negative-soft text-negative"}},defaultVariants:{variant:"neutral"}});function Yx({className:e,variant:t,...i}){return m.jsx("div",{className:ea(OI({variant:t}),e),...i})}const RI=220;function Gv({compact:e=!1,version:t,updateAvailable:i,onDismissUpdate:s}){const r=!e&&t&&t!=="unknown",[u,d]=B.useState(!1),g=!e&&i&&s,b=()=>{d(!0),window.setTimeout(()=>{s?.(),d(!1)},RI)};return e?m.jsxs(We,{to:"/",className:"brand-lockup brand-lockup-compact","aria-label":"Canonry home",children:[m.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"}),m.jsx("span",{className:"brand-copy",children:m.jsx("span",{className:"brand-mark",children:"Canonry"})})]}):m.jsxs("div",{className:"brand-lockup brand-lockup-wrapper",children:[m.jsx(We,{to:"/",className:"brand-icon-link","aria-label":"Canonry home",tabIndex:-1,children:m.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"})}),m.jsxs("div",{className:"brand-copy",children:[m.jsx(We,{to:"/",className:"brand-mark",children:"Canonry"}),!g&&r?m.jsxs("span",{className:"brand-version",children:["v",t]}):null]}),g?m.jsxs("span",{className:`brand-update-bubble ${u?"brand-update-bubble-closing":""}`,role:"status","aria-live":"polite",children:[m.jsxs("a",{className:"brand-update-bubble-link",href:i.url,target:"_blank",rel:"noopener noreferrer",title:`Open release: ${i.upgradeCommand}`,"aria-label":`New version v${i.latest} available — open release page`,children:[m.jsxs("span",{className:"brand-update-bubble-from",children:["v",i.current]}),m.jsx(tN,{className:"brand-update-bubble-arrow size-3","aria-hidden":"true"}),m.jsxs("span",{className:"brand-update-bubble-to",children:["v",i.latest]})]}),m.jsx("button",{type:"button",className:"brand-update-bubble-dismiss",onClick:b,"aria-label":`Dismiss update notification for v${i.latest}`,children:m.jsx($o,{className:"size-3","aria-hidden":"true"})})]}):null]})}function MI({provider:e}){const t={gemini:"border-blue-800/50 bg-blue-950/40 text-blue-300",openai:"border-green-800/50 bg-green-950/40 text-green-300",claude:"border-amber-800/50 bg-amber-950/40 text-amber-300",perplexity:"border-teal-800/50 bg-teal-950/40 text-teal-300",local:"border-purple-800/50 bg-purple-950/40 text-purple-300"},s=Object.hasOwn(t,e)?`provider-badge--${e} ${t[e]}`:"border-zinc-700 bg-zinc-800 text-zinc-300";return m.jsx("span",{className:`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide ${s}`,children:e})}function An({tone:e,children:t,...i}){const s=e==="positive"?"success":e==="caution"?"warning":e==="negative"?"destructive":"neutral";return m.jsx(Yx,{variant:s,...i,children:t})}function nh({status:e}){return m.jsx(An,{tone:Tx(e),children:mB(e)})}const BI=C2,qI=A2,Xx=B.forwardRef(({className:e,...t},i)=>m.jsx(Qf,{ref:i,className:ea("fixed inset-0 z-50 bg-overlay-scrim/70 backdrop-blur-sm",e),...t}));Xx.displayName=Qf.displayName;const II=400,LI=1200,PI=720,Jx=B.forwardRef(({className:e,children:t,...i},s)=>{const[r,u]=B.useState(PI),d=B.useRef(!1),g=B.useRef(0),b=B.useRef(0),v=B.useCallback(j=>{d.current=!0,g.current=j.clientX,b.current=r,j.target.setPointerCapture(j.pointerId),j.preventDefault()},[r]),x=B.useCallback(j=>{if(!d.current)return;const _=g.current-j.clientX,T=Math.min(LI,Math.max(II,b.current+_));u(T)},[]),S=B.useCallback(()=>{d.current=!1},[]);return m.jsxs(qI,{children:[m.jsx(Xx,{}),m.jsxs(Zf,{ref:s,className:ea("fixed z-50 flex flex-col bg-bg px-5 py-4 shadow-2xl overflow-hidden","max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:max-h-[88vh] max-md:rounded-t-2xl max-md:border-t","md:inset-y-0 md:right-0 md:h-full md:border-l","border-base",e),style:{width:`min(${r}px, 100vw)`},...i,children:[m.jsx("div",{className:"absolute inset-y-0 left-0 w-1.5 cursor-col-resize hover:bg-mono-700/50 active:bg-mono-600/50 transition-colors max-md:hidden",onPointerDown:v,onPointerMove:x,onPointerUp:S}),t,m.jsxs(N2,{className:"absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-bg-elevated hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",children:[m.jsx($o,{className:"size-4"}),m.jsx("span",{className:"sr-only",children:"Close"})]})]})]})});Jx.displayName=Zf.displayName;const $I=({className:e,...t})=>m.jsx("div",{className:ea("flex flex-col gap-1.5 pr-10",e),...t}),Wx=B.forwardRef(({className:e,...t},i)=>m.jsx(Ff,{ref:i,className:ea("text-lg font-medium text-primary",e),...t}));Wx.displayName=Ff.displayName;const e3=B.forwardRef(({className:e,...t},i)=>m.jsx(_2,{ref:i,className:ea("text-sm text-muted",e),...t}));e3.displayName=_2.displayName;function nf({title:e,subtitle:t,children:i,open:s,onClose:r}){return m.jsx(BI,{open:s,onOpenChange:u=>u?void 0:r(),children:m.jsxs(Jx,{children:[m.jsxs($I,{className:"drawer-head",children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:t}),m.jsx(Wx,{id:"drawer-title",children:e}),m.jsx(e3,{className:"sr-only",children:t})]}),m.jsx("div",{className:"drawer-body",children:i})]})})}function nl({text:e}){const[t,i]=B.useState(null),s=B.useRef(null),r=B.useCallback(()=>{if(!s.current)return;const g=s.current.getBoundingClientRect();i({top:g.top,left:g.left+g.width/2})},[]),u=B.useCallback(()=>i(null),[]),d=B.useCallback(()=>{t===null?r():u()},[t,r,u]);return m.jsxs("span",{className:"info-tooltip-wrapper",onMouseEnter:r,onMouseLeave:u,children:[m.jsx("button",{ref:s,type:"button",className:"info-tooltip-trigger","aria-label":e,"aria-expanded":t!==null,onFocus:r,onBlur:u,onClick:d,onKeyDown:g=>{g.key==="Escape"&&u()},children:m.jsxs("svg",{className:"info-tooltip-icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[m.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M8 7v4M8 5.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),t!==null&&i4.createPortal(m.jsx("span",{"aria-hidden":"true",style:{position:"fixed",top:t.top,left:t.left,transform:"translateX(-50%) translateY(calc(-100% - 8px))",zIndex:9999,pointerEvents:"none",width:"14rem",padding:"0.5rem 0.75rem",fontSize:"11px",fontWeight:400,textTransform:"none",letterSpacing:"normal",lineHeight:"1rem",color:"var(--color-neutral-text)",backgroundColor:"var(--color-bg-elevated)",border:"1px solid color-mix(in oklab, var(--color-border-strong) 60%, transparent)",borderRadius:"0.5rem",boxShadow:"0 10px 15px -3px var(--color-shadow-tooltip), 0 4px 6px -4px var(--color-shadow-tooltip)"},children:e}),document.body)]})}const UI=/[\s\-_]+/;function VI(e){const t=e.split(UI).filter(Boolean);return t.length===0?null:t.map(i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\s\\-_]*")}function Hv(e,t){const i=KI(t),s=e.split(/(\*\*[^*]+\*\*)/).filter(Boolean).map(v=>v.startsWith("**")&&v.endsWith("**")?{type:"bold",value:v.slice(2,-2)}:{type:"text",value:v}),r=i.flatMap(v=>v.terms).filter(v=>v.trim().length>1);if(r.length===0)return s.map((v,x)=>v.type==="bold"?po.createElement("strong",{key:`b-${x}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const d=[...r].sort((v,x)=>x.length-v.length).map(VI).filter(v=>!!v);if(d.length===0)return s.map((v,x)=>v.type==="bold"?po.createElement("strong",{key:`b-${x}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const g=new RegExp(`(${d.join("|")})`,"gi"),b=new Map;for(const v of i)for(const x of v.terms){const S=vs(x);S&&!b.has(S)&&b.set(S,v.className)}return s.flatMap((v,x)=>v.value.split(g).map((j,_)=>{if(!j)return null;if(_%2===1){const N=b.get(vs(j))??"answer-highlight";return v.type==="bold"?po.createElement("mark",{key:`hl-${x}-${_}`,className:N},po.createElement("strong",{className:"text-strong font-semibold"},j)):po.createElement("mark",{key:`hl-${x}-${_}`,className:N},j)}return v.type==="bold"?po.createElement("strong",{key:`b-${x}-${_}`,className:"text-strong font-semibold"},j):j})).filter(Boolean)}function KI(e){return e.length===0?[]:typeof e[0]=="string"?[{terms:e,className:"answer-highlight"}]:e}function Lf(e){const t=(e??"").trim();return t&&(t.startsWith("/")||/^https?:\/\//i.test(t)||/^mailto:/i.test(t))?t:null}function af(e,t){switch(e){case"new":return"First observation";case"emerging":return"First mention";case"lost":return"Lost since last run";default:return t==="mentioned"||t==="visible"?"Mentioned in latest run":t==="pending"?"Awaiting first run":"Not mentioned in latest run"}}function GI({evidence:e,project:t,onClose:i}){const[s,r]=B.useState(!1),[u,d]=B.useState("mentions"),[g,b]=B.useState(-1),[v,x]=B.useState(null),[S,j]=B.useState(!1),[_,T]=B.useState({}),N=Oz(t.project),C=new Set(N.map(_f)),O=e.runHistory,I=O.length>1,[$,K]=B.useState(null),Z=B.useRef(!1);B.useEffect(()=>{if(Z.current||e.answerSnippet&&(e.visibilityState!=null||e.answerMentioned!=null))return;const X=O.at(-1);X&&(Z.current=!0,ku(X.runId).then(ie=>{const re=ie.snapshots?.find(ze=>ze.query===e.query&&ze.provider===e.provider);re&&K({citationState:re.citationState,answerMentioned:re.answerMentioned,visibilityState:re.visibilityState,visibilityTransition:X.visibilityTransition,provider:re.provider,model:re.model??e.model,answerSnippet:re.answerText??e.answerSnippet,citedDomains:re.citedDomains??e.citedDomains,competitorDomains:re.competitorOverlap??e.competitorDomains,recommendedCompetitors:re.recommendedCompetitors??e.recommendedCompetitors??[],matchedTerms:re.matchedTerms??e.matchedTerms??[],groundingSources:re.groundingSources??e.groundingSources,searchQueries:re.searchQueries,evidenceUrls:[],changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary})}).catch(()=>{}))},[e,O]);const se=g>=0&&v!==null,R=se?v:$||{citationState:e.citationState,answerMentioned:e.answerMentioned,visibilityState:e.visibilityState,visibilityTransition:O.at(-1)?.visibilityTransition,provider:e.provider,model:e.model,answerSnippet:e.answerSnippet,citedDomains:e.citedDomains,competitorDomains:e.competitorDomains,recommendedCompetitors:e.recommendedCompetitors??[],matchedTerms:e.matchedTerms??[],groundingSources:e.groundingSources,searchQueries:e.searchQueries??[],evidenceUrls:e.evidenceUrls,changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary},q=R.visibilityState==="pending"||R.citationState==="pending",pe=q?!1:R.visibilityState!=null?R.visibilityState==="visible":R.answerMentioned!=null?R.answerMentioned:R.citationState===Tu.cited||R.citationState==="emerging",ue=R.answerMentioned!=null||R.visibilityState!=null||R.recommendedCompetitors.length>0,fe=R.citedDomains.length>0||R.groundingSources.length>0||R.evidenceUrls.length>0,we=t.project.displayName||t.project.name,Te=[...N.map(_f),we,we.split(" ").slice(0,2).join(" "),...R.matchedTerms].filter(X=>X.trim().length>2),it=[...R.competitorDomains.flatMap(X=>{const ie=jz(X);return ie.length>=4?[ie]:[]}),...R.recommendedCompetitors].filter(X=>X.trim().length>2),ge=[{terms:Te,className:"answer-highlight-brand"},...it.length>0?[{terms:it,className:"answer-highlight-competitor"}]:[]],Q=q?"pending":R.visibilityTransition==="lost"?"lost":pe?"mentioned":"not-mentioned",oe=B.useRef(0),me=B.useCallback(async X=>{const ie=++oe.current;if(X===-1||X===O.length-1){b(-1),x(null),r(!1);return}b(X),r(!1);const re=O[X],ze=`${re.runId}::${e.query}::${e.provider}`;if(_[ze]){x(_[ze]);return}j(!0);try{const ct=await ku(re.runId);if(ie!==oe.current)return;const _e=ct.snapshots?.find(Xe=>Xe.query===e.query&&Xe.provider===e.provider)??ct.snapshots?.find(Xe=>Xe.query===e.query),Qe=_e?{citationState:_e.citationState,answerMentioned:_e.answerMentioned,visibilityState:_e.visibilityState,visibilityTransition:re.visibilityTransition,provider:_e.provider,model:_e.model??null,answerSnippet:_e.answerText??"",citedDomains:_e.citedDomains,competitorDomains:_e.competitorOverlap,recommendedCompetitors:_e.recommendedCompetitors??[],matchedTerms:_e.matchedTerms??[],groundingSources:_e.groundingSources,searchQueries:_e.searchQueries,evidenceUrls:[],changeLabel:af(re.mentionTransition??re.visibilityTransition,re.mentionState??re.visibilityState),summary:""}:{citationState:re.citationState,answerMentioned:re.answerMentioned,visibilityState:re.visibilityState,visibilityTransition:re.visibilityTransition,provider:e.provider,model:re.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:af(re.mentionTransition??re.visibilityTransition,re.mentionState??re.visibilityState),summary:"Snapshot data not available for this run."};T(Xe=>({...Xe,[ze]:Qe})),x(Qe)}catch{if(ie!==oe.current)return;x({citationState:re.citationState,answerMentioned:re.answerMentioned,visibilityState:re.visibilityState,visibilityTransition:re.visibilityTransition,provider:e.provider,model:re.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:af(re.mentionTransition??re.visibilityTransition,re.mentionState??re.visibilityState),summary:"Failed to load historical run data."})}finally{ie===oe.current&&j(!1)}},[O,e.query,e.provider,_]),ce=(se||e.historyScope!=="provider")&&R.model?`${R.provider} (${R.model}) · ${R.changeLabel.toLowerCase()}`:`${R.provider} · ${R.changeLabel.toLowerCase()}`,He=!se&&e.historyScope==="provider"?[e.model?`Current model: ${e.model}`:null,e.modelsSeen&&e.modelsSeen.length>1?`History spans ${e.modelsSeen.length} models`:null].filter(Boolean).join(" · "):"",ne=pe?{label:"Mentioned in answer",title:"Your brand or domain is mentioned in this answer",meta:ce}:R.visibilityTransition==="lost"?{label:"Mention lost",title:"Your brand no longer appears in this answer",meta:ce}:q?{label:"Pending",title:"Awaiting first run",meta:"No provider data yet"}:{label:"Not mentioned in answer",title:"Your brand or domain was not mentioned in this answer",meta:ce},H=()=>{if(!R.answerSnippet)return null;const X=R.answerSnippet.split(`
|
|
58
|
-
`),ie=[];let re=[],ze=0;const ct=()=>{if(re.length===0)return;const _e=re.join(" ").trim();_e&&ie.push(m.jsx("p",{className:ie.length>0?"mt-2.5":"",children:Hv(_e,ge)},ze++)),re=[]};for(const _e of X){const Qe=_e.trim();if(/^[-\u2013\u2014]{3,}$/.test(Qe)){ct(),ie.push(m.jsx("hr",{className:"border-default my-3"},ze++));continue}const Xe=Qe.match(/^(#{1,3})\s+(\S.*)$/);if(Xe){ct();const Gt=Xe[1].length,In=Xe[2].replace(/^[\p{Emoji}\p{Emoji_Component}\s]+/u,"").trim()||Xe[2],Qt=Gt===1?"text-[13px] font-semibold text-heading mt-4 mb-1":Gt===2?"text-xs font-semibold text-strong mt-3 mb-0.5":"text-xs font-medium text-neutral mt-2";ie.push(m.jsx("p",{className:Qt,children:Hv(In,ge)},ze++));continue}if(Qe===""){ct();continue}re.push(Qe)}return ct(),ie};return m.jsx(C2,{open:!0,onOpenChange:X=>{X||i()},children:m.jsxs(A2,{children:[m.jsx(Qf,{className:"fixed inset-0 z-50 bg-overlay-scrim/80 backdrop-blur-sm"}),m.jsxs(Zf,{className:"evidence-modal","aria-describedby":void 0,children:[m.jsxs("div",{className:"evidence-modal-header",children:[m.jsxs("div",{className:"min-w-0 flex-1",children:[m.jsxs("p",{className:"eyebrow eyebrow-soft",children:[t.project.name," ","·"," ",R.provider||"All providers"]}),m.jsx(Ff,{className:"text-lg font-semibold text-primary truncate",children:e.query})]}),m.jsxs(N2,{className:"inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-mono-800 hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 shrink-0",children:[m.jsx($o,{className:"size-4"}),m.jsx("span",{className:"sr-only",children:"Close"})]})]}),I&&m.jsxs("div",{className:"evidence-modal-timeline",children:[m.jsx("p",{className:"drawer-section-label mb-1.5",children:"Run history"}),m.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-1",children:O.map((X,ie)=>{const re=g===-1&&ie===O.length-1||g===ie,ze=X.visibilityState??(X.answerMentioned?"visible":"not-visible"),ct=X.visibilityTransition??ze,_e=ze==="visible"?"bg-positive-400":ct==="emerging"?"bg-caution-400":ct==="lost"?"bg-negative-400":"bg-mono-600",Xe=new Date(X.createdAt).toLocaleDateString(void 0,{month:"short",day:"numeric"}),Gt=!!(X.model&&ie>0&&O[ie-1]?.model&&O[ie-1].model!==X.model);return m.jsxs("button",{type:"button",className:`evidence-run-dot ${re?"evidence-run-dot--selected":""}`,onClick:()=>{me(ie===O.length-1?-1:ie)},"aria-label":[`Run ${Xe}: ${ze}`,X.model?`model ${X.model}`:null,Gt?"model changed":null].filter(Boolean).join(" — "),"aria-pressed":re,children:[m.jsx("span",{className:`size-2 rounded-full ${_e} ${Gt?"ring-1 ring-caution-300/80 ring-offset-2 ring-offset-bg":""}`,"aria-hidden":"true"}),m.jsx("span",{className:"text-[10px] text-muted",children:Xe})]},ie)})}),g>=0&&g<O.length&&m.jsxs("p",{className:"text-[11px] text-muted mt-1",children:["Viewing run from ",new Date(O[g].createdAt).toLocaleString()," ","—"," ",m.jsx("span",{className:"capitalize",children:O[g].visibilityState??(O[g].answerMentioned?"visible":"not-visible")}),m.jsxs("button",{type:"button",className:"text-secondary hover:text-strong ml-2",onClick:()=>{me(-1)},children:["←"," Back to latest"]})]}),!se&&(e.modelTransitions?.length??0)>0&&m.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.modelTransitions.map(X=>m.jsx("span",{className:"inline-flex items-center rounded-full border border-caution-400/30 bg-caution-400/10 px-2 py-1 text-[10px] text-caution-100",children:`${X.fromModel??"unknown"} -> ${X.toModel??"unknown"} on ${new Date(X.createdAt).toLocaleDateString()}`},`${X.runId}:${X.toModel??"unknown"}`))})]}),m.jsxs("div",{className:"evidence-modal-body",children:[S&&m.jsxs("div",{className:"md:col-span-2 flex items-center justify-center py-12 text-muted text-sm",children:["Loading historical run data","…"]}),!S&&m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"evidence-modal-main",children:[m.jsxs("div",{className:`evidence-position-hero evidence-position-hero--${Q}`,children:[m.jsx("p",{className:`evidence-position-label evidence-position-label--${Q}`,children:ne.label}),m.jsx("p",{className:`evidence-position-title evidence-position-title--${Q}`,children:ne.title}),m.jsx("p",{className:"evidence-position-meta",children:ne.meta}),He&&m.jsx("p",{className:"mt-1 text-[11px] text-muted",children:He})]}),R.answerSnippet&&m.jsxs("div",{children:[m.jsx("p",{className:"drawer-section-label",children:"What the AI said"}),m.jsx("div",{className:`answer-snippet-block ${s?"evidence-answer-expanded":"evidence-answer-collapsed"}`,children:H()}),R.answerSnippet.length>280&&m.jsx("button",{type:"button",className:"mt-1.5 text-xs text-muted hover:text-neutral transition-colors",onClick:()=>r(!s),children:s?"↑ Collapse":"↓ Show full answer"})]}),!R.answerSnippet&&!S&&m.jsx("div",{className:"rounded-lg border border-subtle bg-surface-subtle px-4 py-8 text-center text-faint text-sm",children:"No answer text recorded for this run"}),R.searchQueries.length>0&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Web searches the model ran"}),m.jsx(nl,{text:"The search queries this AI model issued while researching your prompt. They reveal how the model reformulated your query — the phrasings worth optimizing your content for. Distinct from grounding sources (what it found) and citations (what it linked)."})]}),m.jsx("ul",{className:"grid gap-1",children:R.searchQueries.map((X,ie)=>m.jsxs("li",{className:"flex items-start gap-2 text-sm text-neutral",children:[m.jsx(KN,{className:"size-3.5 mt-0.5 shrink-0 text-faint","aria-hidden":"true"}),m.jsx("span",{className:"break-words",children:X})]},`${ie}-${X}`))})]}),!se&&e.relatedTechnicalSignals.length>0&&m.jsxs("div",{children:[m.jsx("p",{className:"drawer-section-label",children:pe?"Why you're visible":"What to fix"}),m.jsx("div",{className:"action-items-list",children:e.relatedTechnicalSignals.map((X,ie)=>m.jsxs("div",{className:"action-item",children:[m.jsx("svg",{className:`action-item-icon ${pe?"text-positive-400":"text-caution-400"}`,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:pe?m.jsx("path",{d:"M3 8l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}):m.jsxs(m.Fragment,{children:[m.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M8 5v3.5M8 10.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),m.jsx("span",{className:"action-item-text",children:X})]},ie))})]}),R.summary&&m.jsx("p",{className:"text-xs text-faint border-t border-subtle pt-3 mt-1",children:R.summary})]}),m.jsxs("div",{className:"evidence-modal-sidebar",children:[(ue||fe)&&m.jsxs("div",{className:"sidebar-tabs",children:[m.jsx("button",{className:`sidebar-tab ${u==="mentions"?"sidebar-tab--active":""}`,onClick:()=>d("mentions"),type:"button",title:"Canonry's answer-level visibility assessment and any company names extracted from the answer text.",children:"Mentions"}),m.jsx("button",{className:`sidebar-tab ${u==="sources"?"sidebar-tab--active":""}`,onClick:()=>d("sources"),type:"button",title:"Grounding links the model used to build the answer. These are supporting sources, not the primary visibility signal.",children:"Sources"})]}),u==="mentions"&&m.jsxs(m.Fragment,{children:[m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Mention in answer"}),m.jsx(nl,{text:"Canonry scans the AI answer for your owned domains and project name. This is independent from grounding or citation sources."})]}),m.jsxs("div",{className:`mention-status mention-status--${pe?"mentioned":"not-mentioned"}`,children:[m.jsx("span",{className:"mention-status-icon",children:q?"…":pe?"✓":"—"}),m.jsx("span",{className:"mention-status-label",children:q?"Pending":pe?"Mentioned":"Not mentioned"})]}),R.matchedTerms.length>0&&m.jsxs("div",{className:"mt-2",children:[m.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Matched in answer"}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:R.matchedTerms.map(X=>m.jsx("span",{className:"mention-chip mention-chip--brand",children:X},X))})]}),!q&&!pe&&R.matchedTerms.length===0&&m.jsxs("div",{className:"mt-2",children:[m.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Searched for"}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:Te.map(X=>m.jsx("span",{className:"mention-chip mention-chip--muted",children:X},X))}),m.jsx("p",{className:"text-[11px] text-faint mt-1.5",children:"None of these appear in the answer text."})]})]}),(R.recommendedCompetitors.length>0||R.competitorDomains.length>0)&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Competitors in answer"}),m.jsx(nl,{text:"Competitors detected in the answer text or cited source links. Includes both tracked competitors and names extracted by Canonry."})]}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:(()=>{const X=R.competitorDomains.map(ze=>ze.replace(/^www\./,"")),ie=new Set(X.map(ze=>vs(ze.replace(/\.[^.]+$/,""))));return[...R.recommendedCompetitors.filter(ze=>!ie.has(vs(ze))),...X].map(ze=>m.jsx("span",{className:"mention-chip mention-chip--competitor",children:ze},ze))})()})]})]}),u==="sources"&&m.jsxs(m.Fragment,{children:[R.citedDomains.length>0&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Domains from source links"}),m.jsx(nl,{text:"These domains were extracted from grounding or citation URLs. They are supporting-source metadata, not proof that the answer text mentioned them."})]}),m.jsx("div",{className:"citation-leaderboard",children:R.citedDomains.map((X,ie)=>{const re=X.toLowerCase().replace(/^www\./,""),ze=C.has(re),ct=!ze&&R.competitorDomains.some(Qe=>Qe.toLowerCase().replace(/^www\./,"")===re),_e=ze?"you":ct?"competitor":"other";return m.jsxs("div",{className:`citation-leaderboard-item citation-leaderboard-item--${_e}`,children:[m.jsxs("span",{className:"citation-leaderboard-rank",children:["#",ie+1]}),m.jsx("span",{className:"citation-leaderboard-domain",children:X}),ze&&m.jsx("span",{className:"citation-leaderboard-tag",children:"You"}),ct&&m.jsx("span",{className:"citation-leaderboard-tag",children:"Competitor"})]},X)})})]}),R.groundingSources.length>0&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsxs("span",{children:["Grounding source links (",R.groundingSources.length,")"]}),m.jsx(nl,{text:"Links the model used as grounding or supporting context while producing the answer. These are not the same thing as answer visibility."})]}),m.jsx("ul",{className:"grid gap-0.5",children:R.groundingSources.map((X,ie)=>{const re=Lf(X.uri),ze=X.title||X.uri;return m.jsx("li",{className:"truncate text-sm",children:re?m.jsx("a",{href:re,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:ze}):m.jsx("span",{className:"text-secondary",children:ze})},ie)})})]}),R.evidenceUrls.length>0&&m.jsxs("div",{children:[m.jsx("p",{className:"drawer-section-label",children:"Evidence URLs"}),m.jsx("ul",{className:"grid gap-1",children:R.evidenceUrls.map(X=>{const ie=Lf(X);return m.jsx("li",{className:"truncate text-sm",children:ie?m.jsx("a",{href:ie,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:X}):m.jsx("span",{className:"text-secondary",children:X})},X)})})]}),R.citedDomains.length===0&&R.groundingSources.length===0&&R.evidenceUrls.length===0&&m.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No source data ",se?"for this run":"yet"]})]}),!ue&&!fe&&m.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No answer visibility data ",se?"for this run":"yet"]})]})]})]})]})]})})}function HI(e){const t=e.match(/^\/projects\/([^/]+)/);if(!t)return null;try{return decodeURIComponent(t[1])}catch{return t[1]}}function QI(e,t){return e?t?.projects.find(s=>s.project.name===e||s.project.id===e)?.project.name??e:null}function ZI(e,t){return QI(HI(e),t)}function ca(e){const t=new Date("2026-02-20");return e.map((i,s)=>({runId:`run_mock_${s+1}`,citationState:i,createdAt:new Date(t.getTime()+s*2*24*60*60*1e3).toISOString()}))}const sf=[{id:"project_citypoint",name:"Citypoint Dental NYC",canonicalDomain:"citypointdental.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["local intent","priority"],labels:{},providers:[],providerModels:{},measurement:$p,locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_harbor",name:"Harbor Legal Group",canonicalDomain:"harborlegal.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["lead gen"],labels:{},providers:[],providerModels:{},measurement:$p,locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_northstar",name:"Northstar Orthopedics",canonicalDomain:"northstarortho.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["multi-location"],labels:{},providers:[],providerModels:{},measurement:$p,locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1}];function sd(e){return{id:e.id,projectId:e.projectId,projectName:e.projectName,kind:e.kind,kindLabel:e.kindLabel,status:e.status,trigger:e.trigger??"manual",createdAt:e.createdAt,startedAt:e.startedAt,duration:e.duration,statusDetail:e.statusDetail,summary:e.summary,triggerLabel:e.triggerLabel}}const FI=sd({id:"run_citypoint_visibility_20260308",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T12:15:00.000Z",startedAt:"Mar 8, 12:15 PM",duration:"6m 12s",statusDetail:"18 tracked queries checked; 3 citation losses detected on emergency-intent prompts.",summary:"Citation losses on emergency-intent prompts",triggerLabel:"Scheduled"}),YI=sd({id:"run_citypoint_queued_20260309",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"queued",createdAt:"2026-03-09T08:05:00.000Z",startedAt:"Mar 9, 8:05 AM",duration:"Waiting for slot",statusDetail:"Ready to enqueue after the next provider rate window clears.",summary:"Queued follow-up after local ranking movement",triggerLabel:"Manual"}),XI=sd({id:"run_harbor_visibility_20260308",projectId:"project_harbor",projectName:"Harbor Legal Group",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T11:05:00.000Z",startedAt:"Mar 8, 11:05 AM",duration:"5m 07s",statusDetail:"12 tracked queries checked; local-intent visibility held steady across branded prompts.",summary:"Branded prompts remain stable",triggerLabel:"Scheduled"}),JI=sd({id:"run_northstar_visibility_20260308",projectId:"project_northstar",projectName:"Northstar Orthopedics",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"running",createdAt:"2026-03-08T13:40:00.000Z",startedAt:"Mar 8, 1:40 PM",duration:"3m 10s",statusDetail:"Provider responses still in flight for 9 multi-location prompts.",summary:"Mid-run on treatment-location prompts",triggerLabel:"Manual"}),WI=[{id:"evidence_citypoint_emergency_gemini",query:"emergency dentist brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"lost",changeLabel:"Lost since Mar 5",answerSnippet:"For urgent dental care in Brooklyn, Downtown Smiles and Harbor Dental are now cited first for emergency availability and same-day booking.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:["https://downtownsmiles.com/emergency-dentist-brooklyn","https://harbordental.com/same-day-emergency-care"],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing on the emergency service page","llms.txt not found during latest site audit","Location pages link weakly into the emergency care hub"],summary:"AI answers now cite two competitors while your emergency page is no longer grounded.",runHistory:ca(["cited","cited","cited","cited","cited","cited","cited","not-cited","not-cited"])},{id:"evidence_citypoint_emergency_openai",query:"emergency dentist brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"Cited for 6 runs",answerSnippet:"Citypoint Dental is listed as a top emergency dentist in Brooklyn for same-day appointments and walk-in availability.",citedDomains:["citypointdental.com","downtownsmiles.com"],evidenceUrls:["https://citypointdental.com/emergency-dentist-brooklyn"],competitorDomains:["downtownsmiles.com"],groundingSources:[],relatedTechnicalSignals:["Emergency page indexed with structured data"],summary:"OpenAI cites your emergency page consistently alongside one competitor.",runHistory:ca(["not-cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_emergency_claude",query:"emergency dentist brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"Based on the search results, top-rated emergency dental practices in Brooklyn include Downtown Smiles and Harbor Dental.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:[],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing","llms.txt not found"],summary:"Claude does not cite your domain for this emergency query.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_invisalign_openai",query:"best invisalign dentist downtown brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"emerging",changeLabel:"First citation in 7 days",answerSnippet:"Citypoint Dental appears as an emerging recommendation for Invisalign in Downtown Brooklyn, supported by recent before-and-after case pages.",citedDomains:["citypointdental.com","clearlineortho.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn","https://citypointdental.com/case-studies/invisalign-open-bite"],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["Structured data now present on two case-study pages","Internal links from service pages to case studies improved crawl depth"],summary:"Fresh case-study content is starting to earn citations on Invisalign prompts.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","cited"])},{id:"evidence_citypoint_invisalign_gemini",query:"best invisalign dentist downtown brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"cited",changeLabel:"Cited for 8 runs",answerSnippet:"Citypoint Dental in Downtown Brooklyn is highlighted for its Invisalign expertise and patient outcomes.",citedDomains:["citypointdental.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn"],competitorDomains:[],groundingSources:[],relatedTechnicalSignals:["Case study pages well-indexed"],summary:"Gemini consistently cites your Invisalign page with no competitor overlap.",runHistory:ca(["cited","cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_invisalign_claude",query:"best invisalign dentist downtown brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For Invisalign in Downtown Brooklyn, Clear Line Ortho and Brooklyn Smiles are frequently recommended for their experienced orthodontists.",citedDomains:["clearlineortho.com","brooklynsmiles.com"],evidenceUrls:[],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["No before/after schema on case study pages"],summary:"Claude does not surface your Invisalign content despite strong page quality.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_claude",query:"pediatric dentist brooklyn heights",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 4 runs",answerSnippet:"Answers cite neighborhood-specific pediatric practices with stronger family-focused FAQ content and clearer insurance details.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:["https://brightkidsdental.com/pediatric-dentist-brooklyn-heights","https://parkpediatricdental.com/insurance"],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric service page exists for Brooklyn Heights","Insurance content is buried three clicks deep"],summary:"Coverage gap is content-driven, not purely technical.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_gemini",query:"pediatric dentist brooklyn heights",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For pediatric dentistry in Brooklyn Heights, Bright Kids Dental and Park Pediatric Dental are cited for family-friendly care.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:[],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric page for Brooklyn Heights"],summary:"Gemini does not surface your domain for pediatric queries in this area.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_openai",query:"pediatric dentist brooklyn heights",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"First citation this month",answerSnippet:"Citypoint Dental is mentioned as offering pediatric services in Brooklyn, though specialized pediatric-only practices are also highlighted.",citedDomains:["citypointdental.com","brightkidsdental.com"],evidenceUrls:["https://citypointdental.com/family-dentistry"],competitorDomains:["brightkidsdental.com"],groundingSources:[],relatedTechnicalSignals:["Family dentistry page recently updated"],summary:"OpenAI recently started citing your family dentistry page for this query.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","cited"])}];sf[0],Math.round(1/9*100),Math.round(2/9*100),sf[1],ca(["cited","cited","cited","cited","cited"]),sf[2],Math.round(2/7*100),Math.round(3/7*100),ca(["not-cited","not-cited","not-cited","cited"]);function eL(e,t){return e.runs.find(i=>i.id===t)}function tL(e,t){for(const i of e.projects){const s=i.visibilityEvidence.find(r=>r.id===t);if(s)return{project:i,evidence:s}}}function nL(e,t,i){if(e){const s=e.visibilityEvidence.find(r=>r.id===i);if(s)return{project:e,evidence:s}}if(t)return tL(t,i)}const aL={regression:"negative",gain:"positive",opportunity:"caution","first-citation":"positive","provider-pickup":"positive","persistent-gap":"caution","competitor-gained":"negative","competitor-lost":"neutral","gbp-lodging-gap":"negative","gbp-listing-discrepancy":"negative","gbp-cta-gap":"caution","gbp-description-missing":"caution","gbp-metric-drop":"negative","gbp-keyword-drop":"negative"},iL={opportunity:"write","persistent-gap":"write","competitor-gained":"write","competitor-lost":"write",regression:"investigate",gain:"monitor","first-citation":"monitor","provider-pickup":"monitor","gbp-lodging-gap":"write","gbp-listing-discrepancy":"write","gbp-cta-gap":"write","gbp-description-missing":"write","gbp-metric-drop":"investigate","gbp-keyword-drop":"investigate"},sL={regression:"lost",gain:"emerging",opportunity:"not-cited","first-citation":"emerging","provider-pickup":"emerging","persistent-gap":"not-cited","competitor-gained":"cited","competitor-lost":"not-cited","gbp-lodging-gap":"not-cited","gbp-listing-discrepancy":"not-cited","gbp-cta-gap":"not-cited","gbp-description-missing":"not-cited","gbp-metric-drop":"lost","gbp-keyword-drop":"lost"},oL={regression:"Regression",gain:"Gain",opportunity:"Opportunity","first-citation":"First citation","provider-pickup":"Pickup","persistent-gap":"Gap","competitor-gained":"Competitor","competitor-lost":"Competitor","gbp-lodging-gap":"Lodging gap","gbp-listing-discrepancy":"Listing gap","gbp-cta-gap":"Booking CTA","gbp-description-missing":"Description gap","gbp-metric-drop":"Metric drop","gbp-keyword-drop":"Keyword drop"};function rL(e){return{id:e.id,tone:aL[e.type],title:e.title,detail:e.cause?.details??e.cause?.cause??"",actionLabel:e.recommendation?.action??oL[e.type],actionGroup:iL[e.type],affectedPhrases:[{query:e.query,evidenceId:"",provider:e.provider,citationState:sL[e.type]}]}}function lL(e){return e.filter(t=>!t.dismissed).map(rL)}function t3(e){return{id:e.id,name:e.name,displayName:e.displayName,canonicalDomain:e.canonicalDomain,ownedDomains:e.ownedDomains??[],aliases:e.aliases??[],country:e.country,language:e.language,tags:e.tags,labels:e.labels,providers:e.providers??[],providerModels:e.providerModels??{},measurement:e.measurement,locations:e.locations??[],defaultLocation:e.defaultLocation??null,autoExtractBacklinks:e.autoExtractBacklinks??!1,configSource:e.configSource,configRevision:e.configRevision,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Qv(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}function cL(e,t){if(!e)return"Waiting";if(!t)return"Running";const i=new Date(t).getTime()-new Date(e).getTime();if(i<1e3)return"<1s";const s=Math.floor(i/1e3);if(s<60)return`${s}s`;const r=Math.floor(s/60),u=s%60;return`${r}m ${u}s`}function n3(e){switch(e){case Oe["answer-visibility"]:return"Answer visibility sweep";case Oe["gsc-sync"]:return"GSC sync";case Oe["inspect-sitemap"]:return"Sitemap inspection";case Oe["ga-sync"]:return"GA sync";case Oe["traffic-sync"]:return"Traffic sync";case Oe["bing-inspect"]:return"Bing URL inspection";case Oe["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Oe["site-audit"]:return"Site audit";case Oe["backlink-extract"]:return"Backlink extract";case Oe["aeo-discover-seed"]:return"Discovery (seed phase)";case Oe["aeo-discover-probe"]:return"Discovery (probe phase)";case Oe["gbp-sync"]:return"Business Profile sync";case Oe["ads-sync"]:return"ChatGPT ads sync"}}function uL(e){return e===Ao.manual?"Manual":e===Ao.scheduled?"Scheduled":e===Ao["config-apply"]?"Config apply":e}function od(e,t){return{id:e.id,projectId:e.projectId,projectName:t,kind:e.kind,kindLabel:n3(e.kind),status:e.status,trigger:e.trigger??"manual",location:e.location??null,createdAt:e.createdAt,startedAt:e.startedAt?Qv(e.startedAt):Qv(e.createdAt),duration:cL(e.startedAt??null,e.finishedAt??null),statusDetail:e.error?a3(e.error):dL(e),summary:mL(e),triggerLabel:uL(e.trigger)}}function a3(e){const t=T0(e);return t.length>200?t.slice(0,200)+"…":t}function dL(e){switch(e.status){case dn.queued:return"Waiting for execution slot.";case dn.running:return"Provider queries in progress.";case dn.completed:return"All queries checked.";case dn.partial:return"Run completed with some queries skipped.";case dn.failed:return e.error?a3(e.error):"Run failed.";case dn.cancelled:return"Run was cancelled.";default:return""}}function mL(e){const t=n3(e.kind);switch(e.status){case dn.queued:return`${t} queued`;case dn.running:return`${t} in progress`;case dn.completed:return`${t} completed`;case dn.partial:return`${t} partially completed`;case dn.failed:return`${t} failed`;case dn.cancelled:return`${t} cancelled`;default:return e.status}}function pL(e,t,i,s){const r=[];let u=0;const d=new Set;if(i.length>0){const g=i.flatMap(T=>T.snapshots??[]),b=new Map;for(const T of g)if(T.query){const N=`${T.query}::${T.provider}::${T.location??""}`;b.set(N,T)}const v=new Set(g.map(T=>T.location??null));v.size===0&&v.add(null);const x=new Set(g.map(T=>T.provider)),S=new Set(t.flatMap(T=>Object.keys(T.providerRuns??{}))),j=[...new Set([...x,...S])].sort(),_=j.length>0?j:["gemini"];for(const T of t){if(T.runs.length===0)continue;d.add(T.query);const N=T.runs.at(-1),C=N?.transition??"not-cited";for(const O of _){const I=[...v].filter(Z=>b.has(`${T.query}::${O}::${Z??""}`)),$=(T.providerRuns?.[O]?.length??0)>0,K=I.length>0?I:$?[null]:[];for(const Z of K){const se=Z??"",R=b.get(`${T.query}::${O}::${se}`),q=R?.model??null,pe=q?`${O}:${q}`:null,ue=T.providerRuns?.[O],fe=pe?T.modelRuns?.[pe]:void 0,we=Qe=>Qe?.filter(Xe=>(Xe.location??null)===Z),Te=I.length>0?we(ue):ue,it=I.length>0?we(fe):fe,ge=(Te?.length?Te:null)??(it?.length?it:null),Q=Te?.length?"provider":it?.length?"model":"query",oe=ge?ge.at(-1).transition:C,me=ge?ge.at(-1).visibilityTransition??(ge.at(-1).visibilityState==="visible"?"visible":"not-visible"):N?.visibilityTransition??(N?.visibilityState==="visible"?"visible":"not-visible"),Ce=ge?.at(-1)?.citationState,ce=ge?.at(-1)?.visibilityState,He=R?oe==="lost"?"lost":oe==="emerging"?"emerging":R.citationState===Tu.cited?"cited":"not-cited":Ce===Tu.cited?"cited":"not-cited",ne=R?.visibilityState??(ce==="visible"?"visible":ce==="pending"?"pending":"not-visible"),H=Zv(ge||T.runs),X=Fv(ge||T.runs),ie=fL(T,O),re=(ge??T.runs).map(Qe=>({runId:Qe.runId,citationState:Qe.citationState,createdAt:Qe.createdAt,model:ie.get(Qe.runId)??null,answerMentioned:Qe.answerMentioned,visibilityState:Qe.visibilityState,visibilityTransition:Qe.visibilityTransition,mentionState:Qe.mentionState,mentionTransition:Qe.mentionTransition})),ze=hL(re),ct=Q==="provider"&&ze.length<=1?"model":Q,_e=gL(re);r.push({id:`evidence_${e}_${u++}`,query:T.query,provider:R?.provider??O,model:R?.model??null,location:R?.location??Z,citationState:He,answerMentioned:R?.answerMentioned,visibilityState:ne,visibilityChangeLabel:Yv(me,X,{positive:"visible",negative:"not visible",first:"first visibility"}),changeLabel:Yv(oe,H),answerSnippet:R?.answerText??"",citedDomains:R?.citedDomains??[],evidenceUrls:[],competitorDomains:R?.competitorOverlap??[],recommendedCompetitors:R?.recommendedCompetitors??[],matchedTerms:R?.matchedTerms??[],relatedTechnicalSignals:[],groundingSources:R?.groundingSources??[],searchQueries:R?.searchQueries??[],summary:yL(ne,me,T.query),runHistory:re,historyScope:ct,modelsSeen:ze,modelTransitions:_e})}}}}for(const g of s)d.has(g.query)||r.push({id:`evidence_${e}_${u++}`,query:g.query,provider:"",model:null,location:null,citationState:"pending",visibilityState:"pending",visibilityChangeLabel:"Awaiting first run",changeLabel:"Awaiting first run",answerSnippet:"",citedDomains:[],evidenceUrls:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],relatedTechnicalSignals:[],groundingSources:[],searchQueries:[],summary:`"${g.query}" has been added but no visibility run has been triggered yet.`,runHistory:[],historyScope:"query",modelsSeen:[],modelTransitions:[]});return r}function fL(e,t){const i=new Map,s=`${t}:`;for(const[r,u]of Object.entries(e.modelRuns??{})){if(!r.startsWith(s))continue;const d=r.slice(s.length),g=d==="unknown"?null:d;for(const b of u)i.set(b.runId,g)}return i}function hL(e){const t=new Set;for(const i of e)i.model&&t.add(i.model);return[...t]}function gL(e){const t=[];let i=null;for(const s of e){const r=s.model??null;r!==i&&i!==null&&t.push({runId:s.runId,createdAt:s.createdAt,fromModel:i,toModel:r}),i=r}return t}function Zv(e){if(e.length===0)return 0;const t=e[e.length-1].citationState;let i=0;for(let s=e.length-1;s>=0&&e[s].citationState===t;s--)i++;return i}function Fv(e){if(e.length===0)return 0;const t=e[e.length-1].visibilityState??"not-visible";let i=0;for(let s=e.length-1;s>=0&&(e[s].visibilityState??"not-visible")===t;s--)i++;return i}function Yv(e,t,i){const s={positive:i?.positive??"cited",negative:i?.negative??"not cited",first:i?.first??"first citation"};switch(e){case"new":return"First observation";case"cited":case"visible":return t<=1?`${al(s.positive)} in latest run`:`${al(s.positive)} for ${t} runs`;case"lost":return"Lost since last run";case"emerging":return al(s.first);case"not-cited":case"not-visible":return t<=1?`${al(s.negative)} in latest run`:`${al(s.negative)} across ${t} runs`;default:return e}}function al(e){return e.charAt(0).toUpperCase()+e.slice(1)}function yL(e,t,i){switch(t){case"lost":return`Mention was lost for "${i}". Your brand no longer appeared in the latest answer.`;case"emerging":return`Your brand started appearing in AI answers for "${i}".`}switch(e){case"visible":return`Your brand or domain is mentioned in AI answers for "${i}".`;case"pending":return`"${i}" has been added but no run has been triggered yet.`;default:return`Your brand or domain was not mentioned in AI answers for "${i}".`}}function i3(e){const t=t3(e.project),i=pL(t.name,e.timeline,e.latestRunDetails,e.queries),r=[...e.runs].sort((u,d)=>d.createdAt.localeCompare(u.createdAt)).map(u=>od(u,e.project.displayName||e.project.name));return e.overview?bL(t,e.overview,i,r):vL(t,i,r)}function bL(e,t,i,s){const r=lL(t.topInsights);for(const u of t.attentionItems)u.id.startsWith("insight_")||r.push({id:u.id,tone:u.tone,title:u.title,detail:u.detail,actionLabel:u.actionLabel,actionGroup:"investigate",affectedPhrases:[]});return{project:e,dateRangeLabel:t.dateRangeLabel,contextLabel:t.contextLabel,mentionSummary:t.scores.mention,visibilitySummary:t.scores.visibility,mentionShareSummary:t.scores.mentionShare,queryCounts:{cited:t.queryCounts.citedQueries,total:t.queryCounts.totalQueries},gapQueries:t.scores.gapQueries,mentionGaps:t.scores.mentionGaps,indexCoverage:t.scores.indexCoverage,providerScores:t.providerScores,competitorPressure:t.scores.competitorPressure,runStatus:t.scores.runStatus,citationMovement:t.citationMovement,mentionMovement:t.mentionMovement,movementComparison:t.movementComparison,insights:r,visibilityEvidence:i,competitors:t.competitors.map(u=>({id:u.id,domain:u.domain,citationCount:u.citationCount,totalQueries:u.totalQueries,pressureLabel:u.pressureLabel,citedQueries:u.citedQueries,movement:"",notes:""})),recentRuns:s.slice(0,5),suggestedQueries:t.suggestedQueries}}function vL(e,t,i){const s={label:"",value:"No data",delta:"Loading…",tone:"neutral",description:"",tooltip:"",trend:[]};return{project:e,dateRangeLabel:"All time",contextLabel:`${e.country} / ${e.language.toUpperCase()}`,mentionSummary:{...s,label:"Mention Coverage"},visibilitySummary:{...s,label:"Citation Coverage"},mentionShareSummary:{...s,label:"Mention Share",breakdown:{projectMentionSnapshots:0,competitorMentionSnapshots:0,perCompetitor:[],snapshotsWithAnswerText:0,snapshotsTotal:0}},queryCounts:{cited:0,total:0},gapQueries:{...s,label:"Citation Gaps"},mentionGaps:{...s,label:"Mention Gaps"},indexCoverage:{...s,label:"Index Coverage"},providerScores:[],competitorPressure:{...s,label:"Competitor Pressure"},runStatus:{...s,label:"Run Status"},citationMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},mentionMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},movementComparison:{hasPreviousRun:!1,comparable:!1,querySetChanged:!1,previousRunAt:null,currentQueryCount:0,previousQueryCount:0,comparableQueryCount:0,addedQueryCount:0,removedQueryCount:0,addedQueries:[],removedQueries:[]},insights:[],visibilityEvidence:t,competitors:[],recentRuns:i.slice(0,5),suggestedQueries:{rows:[],totalCandidates:0,skippedAlreadyTracked:0}}}function kL(e){const t=t3(e.project),i=[...e.runs].sort((j,_)=>_.createdAt.localeCompare(j.createdAt)),s=i.find(j=>j.kind===Oe["answer-visibility"])??i[0]??e.overview?.latestRun?.run??void 0,r=e.project.displayName||e.project.name,u=s?od(s,r):wL(e.project.id,r),d=e.overview;if(!d)return{project:t,mentionScore:0,mentionDelta:"No data",mentionTone:"neutral",lastRun:u,insight:"No runs completed yet.",trend:[],competitorPressureLabel:"None"};const g=d.scores.mention,b=g.progress??0,v=d.queryCounts.mentionedQueries,x=d.queryCounts.totalQueries,S=d.providers.length;return{project:t,mentionScore:b,mentionDelta:x>0?`${v} of ${x} queries`:"No data",mentionTone:g.tone,providerCoverage:g.providerCoverage,lastRun:u,insight:x>0?`${v} of ${x} queries mentioned across ${S} provider${S===1?"":"s"}.`:"No runs completed yet.",trend:g.trend??[],competitorPressureLabel:d.scores.competitorPressure.value}}function wL(e,t){return{id:"none",projectId:e,projectName:t,kind:Oe["answer-visibility"],kindLabel:"No runs yet",status:dn.queued,trigger:Ao.manual,createdAt:"",startedAt:"",duration:"",statusDetail:"",summary:"No runs yet",triggerLabel:""}}function xL(e,t){const i=[],s=[],r=[];for(const d of e){s.push(i3(d)),r.push(kL(d));const g=[...d.runs].sort((b,v)=>v.createdAt.localeCompare(b.createdAt));for(const b of g)i.push(od(b,d.project.displayName||d.project.name))}i.sort((d,g)=>g.createdAt.localeCompare(d.createdAt));const u=e.length>0;return{portfolioOverview:{projects:r,attentionItems:u?SL(s):[{id:"attention_setup",tone:"neutral",title:"No projects yet",detail:"Create your first project using the setup wizard, CLI, or API.",actionLabel:"Open setup",href:"/setup"}],recentRuns:i.slice(0,5),systemHealth:[{id:"api",label:"API",tone:"positive",detail:"Connected",meta:"Real-time data"},{id:"provider",label:"Gemini",tone:"positive",detail:"Configured",meta:"Provider active"}],...u?{}:{emptyState:{title:"No projects yet",detail:"Canonry becomes useful after one project, a small query set, and one competitor list are in place.",ctaLabel:"Launch setup",ctaHref:"/setup"}}},projects:s,runs:i,setup:{healthChecks:[{id:"api",label:"API reachable",detail:"API is responding.",state:"ready",guidance:"Required for project creation and run history."},{id:"provider",label:"Provider configured",detail:"Gemini key is configured.",state:"ready",guidance:"Required for answer-visibility sweeps."}],projectDraft:{name:"",canonicalDomain:"",country:"US",language:"en"},queryImportState:{mode:"paste",queryCount:0,preview:[]},competitorDraft:{domains:[],notes:"Use the CLI to add competitors."},launchState:{enabled:u,ctaLabel:u?"Trigger run":"Create a project first",summary:u?"Ready to run.":"Create a project first to launch a run."}},settings:{providerStatuses:(t?.providers??[]).map(d=>({name:d.name,displayName:d.displayName,keyUrl:d.keyUrl,modelHint:d.modelHint,model:d.model,defaultModel:d.defaultModel,state:d.configured?"ready":"needs-config",detail:d.configured?"Provider is configured.":"API key is missing.",quota:d.quota})),google:{state:t?.google?.configured?"ready":"needs-config",detail:t?.google?.configured?"Google OAuth app credentials are configured. Project-level GSC connections can be created from the dashboard.":"Google OAuth client ID and client secret are not configured yet."},bing:{state:t?.bing?.configured?"ready":"needs-config",detail:t?.bing?.configured?"Bing Webmaster Tools API key is configured. Project-level Bing connections can be created from the dashboard.":"Bing Webmaster Tools API key is not configured yet."},selfHostNotes:["Configuration is stored in ~/.canonry/config.yaml.","The local config file is the source of truth for authentication credentials.","Google OAuth app credentials and per-domain Google tokens are stored in local config, not the database.","Database is SQLite at ~/.canonry/data.db.","API key was auto-generated during canonry init."],bootstrapNote:"Use the UI, CLI, or ~/.canonry/config.yaml to manage settings. Authentication credentials persist to local config."}}}function SL(e){const t=[];for(const i of e){const s=i.visibilityEvidence.filter(u=>u.citationState==="lost");s.length>0&&t.push({id:`attention_${i.project.id}_lost`,tone:"negative",title:`${i.project.displayName||i.project.name} lost citations`,detail:`${s.length} quer${s.length>1?"ies":"y"} lost citation.`,actionLabel:"Open project",href:`/projects/${encodeURIComponent(i.project.name)}`});const r=i.recentRuns.filter(u=>u.status===dn.running||u.status===dn.queued);r.length>0&&t.push({id:`attention_${i.project.id}_active`,tone:"neutral",title:`${i.project.displayName||i.project.name} has active runs`,detail:`${r.length} run${r.length>1?"s":""} in progress.`,actionLabel:"View runs",href:"/runs"})}return t.length===0&&t.push({id:"attention_stable",tone:"positive",title:"All projects stable",detail:"No citation losses or active runs to flag."}),t}const s3=B.createContext(null);s3.Provider;function Dl(){return B.useContext(s3)}function rd(e,t={}){const s=Dl()?.dashboard??null,r=t.includeSettings??!0,{isAdmin:u}=xl(),d=mn({...nd({client:le}),enabled:!s,refetchInterval:GA}),g=mn({...J0({client:le,query:{kind:"answer-visibility"}}),enabled:!s,staleTime:zo,refetchInterval:O=>O.state.data?.some(K=>K.status==="running"||K.status==="queued")?3e3:zo}),b=mn({...UB({client:le}),enabled:!s&&r&&u}),v=d.data??[],x=g.data??[],S=s4({queries:v.map(O=>{const I=x.filter(Z=>Z.projectId===O.id),$=I.filter(Z=>(Z.status==="completed"||Z.status==="partial")&&Z.kind==="answer-visibility"&&Z.trigger!=="probe").sort((Z,se)=>se.createdAt.localeCompare(Z.createdAt)),K=$.length>0?$[0].id:"no-run";return{queryKey:["project-overview-slim",O.id,K],queryFn:async()=>{const Z=await Z2(O.name).catch(()=>null);return{project:O,runs:I,queries:[],competitors:[],timeline:[],latestRunDetails:[],previousRunDetails:[],gscCoverage:null,bingCoverage:null,dbInsights:null,overview:Z}},enabled:!s&&d.isSuccess&&g.isSuccess,staleTime:yf}})}),j=S.every(O=>O.isSuccess),_=B.useMemo(()=>{if(s)return s;if(!d.data||!g.data||v.length>0&&!j)return null;const O=S.map(I=>I.data?{...I.data,runs:x.filter($=>$.projectId===I.data.project.id)}:null).filter(I=>I!=null);return xL(O,b.data??null)},[s,d.data,g.data,b.data,j,S,v.length,x]),T=!s&&(d.isError||g.isError),N=!s&&!_&&!T,C=B.useCallback(async()=>{const O=[d.refetch(),g.refetch(),...S.map(I=>I.refetch())];r&&O.push(b.refetch()),await Promise.all(O)},[r,S,d.refetch,g.refetch,b.refetch]);return{dashboard:_,isLoading:N,isError:T,refetch:C}}const jL=20;function AL(e){const t=Dl(),i=B.useMemo(()=>!t||!e?null:t.dashboard.projects.find(N=>N.project.name===e)??null,[t,e]),s=mn({...SB({client:le,path:{name:e??""}}),enabled:!!e&&!i,staleTime:yf,refetchOnWindowFocus:"always"}),r=mn({...BB({client:le,path:{name:e??""},query:{kind:"answer-visibility"}}),enabled:!!e,staleTime:zo,refetchOnWindowFocus:"always",refetchInterval:N=>N.state.data?.some(I=>I.projectId===s.data?.id&&(I.status==="running"||I.status==="queued"))?3e3:zo}),u=s.data??null,d=B.useMemo(()=>u?(r.data??[]).filter(N=>N.projectId===u.id):[],[u,r.data]),{latestRunIds:g,previousRunIds:b,latestRunIdsKey:v,latestVisibilityRevision:x}=B.useMemo(()=>{const N=d.filter(K=>(K.status==="completed"||K.status==="partial")&&K.kind==="answer-visibility"&&K.trigger!=="probe").sort((K,Z)=>Z.createdAt.localeCompare(K.createdAt)),C=N[0]?.createdAt??null,O=C?N.filter(K=>K.createdAt===C).map(K=>K.id):[],I=N.find(K=>K.createdAt!==C)?.createdAt??null,$=I?N.filter(K=>K.createdAt===I).map(K=>K.id):[];return{latestRunIds:O,previousRunIds:$,latestRunIdsKey:[...O].sort().join(","),latestVisibilityRevision:C?`${C}:${[...O].sort().join(",")}`:"none"}},[d]),S=mn({queryKey:["project-dashboard-full",u?.id??null,v||"none"],queryFn:async()=>{if(!u||!e)return null;const[N,C,O,I,$,K,Z,se,R]=await Promise.all([Q2(e).catch(()=>[]),fA(e).catch(()=>[]),hA(e,void 0,jL).catch(()=>[]),g.length?Promise.all(g.map(q=>ku(q).catch(()=>null))).then(q=>q.filter(pe=>pe!=null)):Promise.resolve([]),b.length?Promise.all(b.map(q=>ku(q).catch(()=>null))).then(q=>q.filter(pe=>pe!=null)):Promise.resolve([]),EA(e).catch(()=>null),OA(e).catch(()=>null),RA(e).catch(()=>null),Z2(e).catch(()=>null)]);return{project:u,runs:d,queries:N,competitors:C,timeline:O,latestRunDetails:I,previousRunDetails:$,gscCoverage:K,bingCoverage:Z,dbInsights:se,overview:R}},enabled:!!u&&!!e&&r.isSuccess,staleTime:yf,refetchOnWindowFocus:"always"}),j=B.useMemo(()=>S.data?i3({...S.data,runs:d}):i||null,[S.data,d,i]),_=B.useCallback(async()=>{await Promise.all([s.refetch(),r.refetch(),S.refetch()])},[s.refetch,r.refetch,S.refetch]),T=!j&&(s.isLoading||r.isLoading||S.isLoading);return{commandCenter:j,project:u,isLoading:T,isError:s.isError||r.isError||S.isError,latestVisibilityRevision:x,refetch:_}}const NL=["health"];async function _L(){const e=await BA("/health","API"),t=e.state==="ok"?{label:"Worker",state:"ok",detail:"In-process job runner"}:{label:"Worker",state:e.state,detail:`Depends on API health check · ${e.detail}`,statusCode:e.statusCode,hint:e.hint?`Worker status is inferred from API health in this deployment mode. ${e.hint}`:"Worker status is inferred from API health in this deployment mode."};return{apiStatus:e,workerStatus:t}}function ah(e,t){return mn({queryKey:NL,queryFn:_L,enabled:e,refetchInterval:15e3,initialData:t})}function CL(e){return mn({...Ex({client:le,path:{id:e??""}}),enabled:!!e,refetchInterval:t=>{const i=t.state.data?.status;return i==="running"||i==="queued"?3e3:!1}})}function ih(){const e=Iu(),t=o4({strict:!1}),i=r4({select:b=>b.location.pathname}),s=t.runId??null,r=t.evidenceId??null;return{runId:s,evidenceId:r,openRun:b=>{e({to:i,from:hn.to,search:v=>({...v,runId:b,evidenceId:void 0})})},openEvidence:b=>{e({to:i,from:hn.to,search:v=>({...v,evidenceId:b,runId:void 0})})},closeDrawer:()=>{e({to:i,from:hn.to,search:b=>({...b,runId:void 0,evidenceId:void 0})})}}}const zL={negative:"toast-card-negative",caution:"toast-card-caution",positive:"toast-card-positive",neutral:"toast-card-neutral"};function EL(e){if(e.cta)return`${e.cta.label}: ${e.title}`}function TL(){const e=B.useSyncExternalStore(VA,wb,wb),t=Iu(),{openRun:i}=ih(),s=B.useCallback(u=>{gf(u)},[]),r=B.useCallback(u=>{u.cta&&(u.cta.intent==="open-run-drawer"?i(u.cta.runId):t({to:"/runs"}),gf(u.id))},[t,i]);return e.length===0?null:m.jsx("div",{className:"toast-viewport","aria-label":"Notifications",children:e.map(u=>m.jsxs("section",{role:u.tone==="negative"?"alert":"status","aria-live":u.tone==="negative"?"assertive":"polite","data-state":u.state,className:`toast-card ${zL[u.tone]}`,children:[m.jsxs("div",{className:"toast-copy",children:[m.jsx("p",{className:"toast-title",children:u.title}),u.detail?m.jsx("p",{className:"toast-detail",children:u.detail}):null,u.cta?m.jsx("button",{type:"button",className:"toast-action",onClick:()=>r(u),"aria-label":EL(u),children:u.cta.label}):null]}),m.jsx("button",{type:"button",onClick:()=>s(u.id),className:"toast-dismiss","aria-label":"Dismiss",children:m.jsx($o,{className:"size-3.5"})})]},u.id))})}function cl(e){switch(e){case Oe["answer-visibility"]:return"Visibility sweep";case Oe["gsc-sync"]:return"GSC sync";case Oe["inspect-sitemap"]:return"Sitemap inspection";case Oe["ga-sync"]:return"GA sync";case Oe["traffic-sync"]:return"Traffic sync";case Oe["bing-inspect"]:return"Bing URL inspection";case Oe["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Oe["site-audit"]:return"Technical audit";case Oe["backlink-extract"]:return"Backlink extract";case Oe["aeo-discover-seed"]:return"Discovery (seed phase)";case Oe["aeo-discover-probe"]:return"Discovery (probe phase)";case Oe["gbp-sync"]:return"Business Profile sync";case Oe["ads-sync"]:return"ChatGPT ads sync"}}function Xv(e){return e==="running"?"Running":e==="queued"?"Queued":e==="partial"?"Partial":e==="completed"?"Completed":e==="failed"?"Failed":e==="cancelled"?"Cancelled":"Starting"}function DL(){const e=B.useSyncExternalStore(Rx,Ya,Ya),t=B.useMemo(()=>Object.values(e.runs),[e.runs]),i=t.length>0,s=mn({...J0({client:le}),enabled:i,staleTime:zo}),r=B.useMemo(()=>new Map((s.data??[]).map(g=>[g.id,g.status])),[s.data]);if(!i)return null;const u=t.map(g=>({...g,status:r.get(g.runId)??g.lastAnnouncedStatus})),d=u.length===1?cl(u[0].kind):`${u.length} active tasks`;return m.jsxs("div",{className:"task-center",children:[m.jsxs("p",{className:"sr-only",role:"status","aria-live":"polite",children:[u.length," active ",u.length===1?"task":"tasks","."," ",u.map(g=>`${cl(g.kind)} ${Xv(g.status)}`).join(". "),"."]}),m.jsxs("details",{className:"task-center-details",children:[m.jsxs("summary",{className:"task-center-trigger",children:[m.jsx(ak,{className:"size-3.5 shrink-0 motion-safe:animate-spin","aria-hidden":"true"}),m.jsx("span",{className:"task-center-summary",children:d}),m.jsx("span",{className:"task-center-count","aria-hidden":"true",children:u.length}),m.jsx(nk,{className:"task-center-chevron size-3.5 shrink-0","aria-hidden":"true"})]}),m.jsxs("div",{className:"task-center-panel",children:[m.jsxs("div",{className:"task-center-heading",children:[m.jsx("span",{children:"Active tasks"}),m.jsx("span",{className:"tabular-nums text-faint",children:u.length})]}),m.jsx("ul",{className:"task-center-list",children:u.map(g=>m.jsxs("li",{className:"task-center-item",children:[m.jsxs("div",{className:"min-w-0",children:[m.jsx("p",{className:"truncate text-[13px] font-medium text-strong",children:cl(g.kind)}),m.jsx("p",{className:"mt-0.5 truncate text-xs text-muted",children:g.projectLabel??g.projectId})]}),m.jsx(An,{tone:g.status==="failed"?"negative":g.status==="partial"?"caution":"neutral",children:Xv(g.status)})]},g.runId))}),m.jsx(We,{to:"/runs",className:"task-center-footer-link",children:"View all runs"})]})]})]})}function OL(e,t={}){const{threshold:i=80}=t,s=B.useRef(null),r=B.useRef({scrollHeight:0,wasAtEnd:!0});function u(b){return b.scrollHeight-b.scrollTop-b.clientHeight}function d(){const b=s.current;return b?u(b)<=i:!0}function g(){const b=s.current;b&&(b.scrollTop=b.scrollHeight,r.current.wasAtEnd=!0,r.current.scrollHeight=b.scrollHeight)}return B.useEffect(()=>{const b=s.current;if(!b)return;const v=()=>{r.current.wasAtEnd=u(b)<=i};return b.addEventListener("scroll",v,{passive:!0}),()=>b.removeEventListener("scroll",v)},[i]),B.useLayoutEffect(()=>{const b=s.current;if(!b)return;const v=b.scrollHeight;v>r.current.scrollHeight&&r.current.wasAtEnd&&(b.scrollTop=v),r.current.scrollHeight=v},e),B.useEffect(()=>{const b=s.current;if(!b||typeof ResizeObserver>"u")return;const v=new ResizeObserver(()=>{const x=b.scrollHeight;x>r.current.scrollHeight&&r.current.wasAtEnd&&(b.scrollTop=x),r.current.scrollHeight=x});return v.observe(b),b.firstElementChild&&v.observe(b.firstElementChild),()=>v.disconnect()},[]),{ref:s,scrollToEnd:g,isAtEnd:d}}async function sh(e){try{return await e.json()}catch{return{}}}function RL(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const oh=RL();function rh(e){e===401&&Wf()}async function Jv(e){const t=await fetch(`${oh}/projects/${encodeURIComponent(e)}/agent/transcript`,{credentials:"include"});if(!t.ok){rh(t.status);const i=await sh(t);throw new Mn(i.error?.message??`transcript fetch failed: ${t.status}`,t.status,i.error?.code)}return await t.json()}async function ML(e){const t=await fetch(`${oh}/projects/${encodeURIComponent(e)}/agent/transcript`,{method:"DELETE",credentials:"include"});if(!t.ok){rh(t.status);const i=await sh(t);throw new Mn(i.error?.message??`reset failed: ${t.status}`,t.status,i.error?.code)}}async function BL({project:e,prompt:t,provider:i,modelId:s,scope:r,profile:u,signal:d,onEvent:g}){const b={prompt:t};i&&(b.provider=i),s&&(b.modelId=s),r&&(b.scope=r),u&&(b.profile=u);const v=await fetch(`${oh}/projects/${encodeURIComponent(e)}/agent/prompt`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(b),signal:d});if(!v.ok||!v.body){rh(v.status);const T=await sh(v);throw new Mn(T.error?.message??`prompt failed: ${v.status}`,v.status,T.error?.code)}const x=v.body.getReader(),S=new TextDecoder;let j="";const _=()=>{x.cancel().catch(()=>{})};d?.addEventListener("abort",_,{once:!0});try{for(;;){const{value:T,done:N}=await x.read();if(N)break;j+=S.decode(T,{stream:!0});let C=j.indexOf(`
|
|
56
|
+
`):"Run failed."}function pB(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function AK(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function NK(e){return e===null?"Unknown":e?"Pass":"Fail"}function Ov(e){return e===0?"12:00 AM":e<12?`${e}:00 AM`:e===12?"12:00 PM":`${e-12}:00 PM`}function _K(e,t){return e==="twice-daily"?"twice-daily":e.startsWith("weekly@")?`${e}@${t}`:`daily@${t}`}function CK(e,t){if(!e)return{freq:"custom",hour:6,customCron:t};if(e==="twice-daily")return{freq:"twice-daily",hour:6,customCron:""};const i=e.match(/^daily(?:@(\d+))?$/);if(i)return{freq:"daily",hour:i[1]?parseInt(i[1]):6,customCron:""};const s=e.match(/^(weekly@(?:mon|tue|wed|thu|fri|sat|sun))(?:@(\d+))?$/);return s?{freq:s[1],hour:s[2]?parseInt(s[2]):6,customCron:""}:{freq:"custom",hour:6,customCron:t}}function zK(e,t,i){const s=i==="UTC"?"UTC":i.split("/").pop()?.replace(/_/g," ")??i;if(!e)return`Custom: ${t} · ${s}`;if(e==="twice-daily")return`Twice a day (6am & 6pm) · ${s}`;const r=e.match(/^daily(?:@(\d+))?$/);if(r){const d=r[1]?parseInt(r[1]):6;return`Every day at ${Ov(d)} · ${s}`}const u=e.match(/^weekly@(mon|tue|wed|thu|fri|sat|sun)(?:@(\d+))?$/);if(u){const d={mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday",sun:"Sunday"},g=u[2]?parseInt(u[2]):6;return`Every ${d[u[1]]} at ${Ov(g)} · ${s}`}return`${e} · ${s}`}function fB(e,t){return t&&t!==e?`${e} · ${t}`:e}function EK(){const e=Intl.DateTimeFormat().resolvedOptions().timeZone,t=new Intl.DateTimeFormat("en-US",{timeZoneName:"short"}).formatToParts().find(i=>i.type==="timeZoneName")?.value;return fB(e,t)}function hB(e){const t=e.replace(/\/+$/,"")||"/";return t==="/"?"overview":t==="/projects"?"projects":t.startsWith("/projects/")?"project":t==="/runs"?"runs":t==="/traffic"||t.startsWith("/traffic/")?"traffic":t==="/backlinks"?"backlinks":t==="/settings"?"settings":t==="/setup"?"setup":"other"}function gB(e,t){return!t||t.includes(e)}const _x=["overview","search-console","local","discovery","report","activity","backlinks","technical-aeo","history","settings"],yB=new Set(_x);function TK(e){const t=e??_x,i=[...new Set(t.filter(s=>yB.has(s)))];return i.length>0?i:["overview"]}function DK(e,t){return gB(e,t)||!t?e:t.includes("overview")?"overview":t[0]??"overview"}const Rv={bg:"--canonry-embed-bg",fg:"--canonry-embed-fg",accent:"--color-link"},bB=/^(?:#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|rgba?\([0-9.,%\s/]+\)|hsla?\([0-9.,%\s/a-z]+\))$/i,vB=/^[a-z0-9][a-z0-9 -]{0,48}$/i;function Cx(e){const t=e?.font?.trim();return t&&vB.test(t)?t:void 0}function kB(e){const t=e?.mode?.trim();return t==="light"||t==="dark"?t:void 0}function wB(e){if(!e)return{};const t={};for(const[s,r]of Object.entries(e)){const u=Object.hasOwn(Rv,s)?Rv[s]:void 0;if(!u||typeof r!="string")continue;const d=r.trim();bB.test(d)&&(t[u]=d)}const i=Cx(e);return i&&(t["--font-sans"]=`"${i}", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`),t}function xB(e){const t=Cx(e);if(t)return`https://fonts.googleapis.com/css2?family=${t.replace(/ /g,"+")}:wght@400;500;600;700&display=swap`}const Se=(e,t,i,s)=>{const r={_id:e,baseUrl:t?.baseUrl||(t?.client??V).getConfig().baseUrl};return i&&(r._infinite=i),t?.body&&(r.body=t.body),t?.headers&&(r.headers=t.headers),t?.path&&(r.path=t.path),t?.query&&(r.query=t.query),[r]},SB=e=>Se("getApiV1ProjectsByName",e),jB=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await B2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:SB(e)}),AB=e=>Se("getApiV1ProjectsByNameMeasurementPlan",e),OK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:AB(e)}),NB=e=>Se("getApiV1ProjectsByNameMeasurementReport",e),RK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await P4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:NB(e)}),_B=e=>Se("getApiV1ProjectsByNameMeasurementSetup",e),MK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await $4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:_B(e)}),zx=(e,t)=>{const i={...e[0]};return t.body&&(i.body={...e[0].body,...t.body}),t.headers&&(i.headers={...e[0].headers,...t.headers}),t.path&&(i.path={...e[0].path,...t.path}),t.query&&(i.query={...e[0].query,...t.query}),i},CB=e=>Se("getApiV1ProjectsByNameMeasurementOverview",e),BK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await q2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:CB(e)}),zB=e=>Se("getApiV1ProjectsByNameMeasurementOverview",e,!0),qK=e=>x2({queryFn:async({pageParam:t,queryKey:i,signal:s})=>{const u=zx(i,typeof t=="object"?t:{query:{cursor:t}}),{data:d}=await q2({...e,...u,signal:s,throwOnError:!0});return d},queryKey:zB(e)}),EB=e=>Se("getApiV1ProjectsByNameMeasurementPropertyEvidence",e,!0),IK=e=>x2({queryFn:async({pageParam:t,queryKey:i,signal:s})=>{const u=zx(i,typeof t=="object"?t:{query:{cursor:t}}),{data:d}=await U4({...e,...u,signal:s,throwOnError:!0});return d},queryKey:EB(e)}),TB=e=>Se("getApiV1ProjectsByNameMeasurementQuestionResult",e),LK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:TB(e)}),DB=e=>Se("getApiV1ProjectsByNameMeasurementPropertyCompetitors",e),PK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await K4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:DB(e)}),Ho=e=>Se("getApiV1Projects",e),nd=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await G4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Ho(e)}),OB=e=>Se("getApiV1ProjectsByNameResearchRuns",e),$K=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await H4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:OB(e)}),UK=e=>({mutationFn:async i=>{const{data:s}=await Q4({...e,...i,throwOnError:!0});return s}}),RB=e=>Se("getApiV1ProjectsByNameResearchRunsByRunId",e),VK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Z4({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:RB(e)}),MB=e=>Se("getApiV1ProjectsByNameQueries",e),KK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await I2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:MB(e)}),BB=e=>Se("getApiV1ProjectsByNameRuns",e),qB=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:BB(e)}),X0=e=>Se("getApiV1Runs",e),J0=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await r5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:X0(e)}),IB=e=>Se("getApiV1RunsById",e),Ex=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await P2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:IB(e)}),LB=e=>Se("getApiV1ProjectsByNameHistory",e),GK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await u5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:LB(e)}),PB=e=>Se("getApiV1History",e),HK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await d5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:PB(e)}),$B=e=>Se("getApiV1ProjectsByNameSnapshotsDiff",e),QK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await f5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:$B(e)}),UB=e=>Se("getApiV1Settings",e),VB=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await $2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:UB(e)}),KB=e=>Se("getApiV1ProjectsByNameSchedule",e),ZK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await U2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:KB(e)}),GB=e=>Se("getApiV1ProjectsByNameGoogleConnections",e),FK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await _5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:GB(e)}),HB=e=>Se("getApiV1ProjectsByNameGoogleProperties",e),YK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await E5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:HB(e)}),QB=e=>Se("getApiV1ProjectsByNameGoogleGscPerformance",e),XK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await R5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:QB(e)}),ZB=e=>Se("getApiV1ProjectsByNameGoogleGscPerformanceDaily",e),JK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await M5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:ZB(e)}),FB=e=>Se("getApiV1ProjectsByNameGoogleGscInspections",e),WK=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await q5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:FB(e)}),YB=e=>Se("getApiV1ProjectsByNameGoogleGscDeindexed",e),eG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await I5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:YB(e)}),XB=e=>Se("getApiV1ProjectsByNameGoogleGscCoverage",e),tG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:XB(e)}),JB=e=>Se("getApiV1ProjectsByNameGoogleGscCoverageHistory",e),nG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:JB(e)}),aG=e=>Se("getApiV1ProjectsByNameGoogleGscSitemaps",e),WB=e=>Se("getApiV1ProjectsByNameGbpLocations",e),iG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:WB(e)}),sG=e=>({mutationFn:async i=>{const{data:s}=await K5({...e,...i,throwOnError:!0});return s}}),oG=e=>({mutationFn:async i=>{const{data:s}=await G5({...e,...i,throwOnError:!0});return s}}),eq=e=>Se("getApiV1ProjectsByNameGbpKeywords",e),rG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await H5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:eq(e)}),tq=e=>Se("getApiV1ProjectsByNameGbpPlaceActions",e),lG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Q5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:tq(e)}),nq=e=>Se("getApiV1ProjectsByNameGbpLodging",e),cG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Z5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:nq(e)}),aq=e=>Se("getApiV1ProjectsByNameGbpPlaces",e),uG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await F5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:aq(e)}),iq=e=>Se("getApiV1ProjectsByNameGbpSummary",e),dG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Y5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:iq(e)}),sq=e=>Se("getApiV1ProjectsByNameBingStatus",e),mG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await W5({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:sq(e)}),oq=e=>Se("getApiV1ProjectsByNameBingSites",e),pG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await e6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:oq(e)}),rq=e=>Se("getApiV1ProjectsByNameBingCoverage",e),fG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await K2({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:rq(e)}),lq=e=>Se("getApiV1ProjectsByNameBingInspections",e),hG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await n6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:lq(e)}),cq=e=>Se("getApiV1ProjectsByNameBingPerformance",e),gG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await o6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:cq(e)}),uq=e=>Se("getApiV1ProjectsByNameGaStatus",e),yG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await c6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:uq(e)}),dq=e=>Se("getApiV1ProjectsByNameGaTraffic",e),bG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await d6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:dq(e)}),mq=e=>Se("getApiV1ProjectsByNameGaAiReferralDaily",e),vG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await m6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:mq(e)}),pq=e=>Se("getApiV1ProjectsByNameGaSocialReferralHistory",e),kG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await p6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:pq(e)}),fq=e=>Se("getApiV1ProjectsByNameGaSessionHistory",e),wG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await f6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:fq(e)}),hq=e=>Se("getApiV1ProjectsByNameReport",e),xG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await g6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:hq(e)}),gq=e=>Se("getApiV1ProjectsByNameHealthHistory",e),SG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await y6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:gq(e)}),yq=e=>Se("getApiV1ProjectsByNameCitationsVisibility",e),jG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await b6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:yq(e)}),bq=e=>Se("getApiV1ProjectsByNameTrafficSources",e),AG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await I6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:bq(e)}),vq=e=>Se("getApiV1ProjectsByNameTrafficStatus",e),NG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await L6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:vq(e)}),kq=e=>Se("getApiV1ProjectsByNameTrafficSourcesById",e),_G=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await P6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:kq(e)}),wq=e=>Se("getApiV1ProjectsByNameTrafficEvents",e),CG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await $6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:wq(e)}),xq=e=>Se("getApiV1ProjectsByNameDiscoverSessions",e),zG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await V6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:xq(e)}),Sq=e=>Se("getApiV1ProjectsByNameDiscoverSessionsById",e),EG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await K6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Sq(e)}),jq=e=>Se("getApiV1ProjectsByNameDiscoverSessionsByIdPromote",e),TG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await G6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:jq(e)}),Aq=e=>Se("getApiV1ProjectsByNameTechnicalAeo",e),DG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Q6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Aq(e)}),Nq=e=>Se("getApiV1ProjectsByNameTechnicalAeoPages",e),OG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await Z6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Nq(e)}),_q=e=>Se("getApiV1ProjectsByNameTechnicalAeoTrend",e),RG=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await F6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:_q(e)}),Cq=e=>Se("getApiV1ProjectsByNameAgentProviders",e),zq=e=>Ae({queryFn:async({queryKey:t,signal:i})=>{const{data:s}=await X6({...e,...t[0],signal:i,throwOnError:!0});return s},queryKey:Cq(e)});function Mv(e){return e.state==="ok"?"positive":e.state==="checking"?"neutral":"negative"}function Tx(e){switch(e){case"completed":return"positive";case"partial":return"caution";case"failed":return"negative";case"cancelled":return"caution";case"queued":case"running":return"neutral";default:return"neutral"}}function MG(e){switch(e){case"cited":return"positive";case"emerging":return"caution";case"not-cited":return"caution";case"lost":return"negative";case"pending":return"neutral";default:return"neutral"}}function BG(e){return e==="High"?"negative":e==="Moderate"?"caution":"neutral"}const qG={positive:"text-positive-400",caution:"text-caution-400",negative:"text-negative-400",neutral:"text-secondary"};function Eq(e){return e.displayName??e.name.charAt(0).toUpperCase()+e.name.slice(1)}function qo(e){const t=[e.detail,e.hint].filter(Boolean);return t.length>0?t.join(`
|
|
57
|
+
`):void 0}function Tq(e,t,i){return e.map(s=>{if(s.id==="api")return{...s,tone:Mv(t.apiStatus),detail:t.apiStatus.state==="ok"?"Healthy":"Needs attention",meta:t.apiStatus.detail};if(s.id==="worker")return{...s,tone:Mv(t.workerStatus),detail:t.workerStatus.state==="ok"?"Healthy":"Needs attention",meta:t.workerStatus.detail};const r=i.providerStatuses.filter(b=>b.state==="ready").length,u=i.providerStatuses.length,d=r>0,g=i.providerStatuses.filter(b=>b.state==="ready").map(b=>Eq(b)).join(" · ");return{...s,label:"Providers",tone:d?"positive":"caution",detail:`${r} of ${u} configured`,meta:g||"None configured"}})}function Dq(e,t){if(e.apiStatus.state!=="ok")return"Launch is blocked until the API responds cleanly.";if(e.apiStatus.databaseConfigured===!1)return"Launch is blocked until the API has a database connection configured.";if(e.workerStatus.state!=="ok")return"Launch is blocked until the worker is healthy and heartbeats are current.";if(!t.providerStatuses.some(i=>i.state==="ready"))return"Launch is blocked until at least one provider is configured."}function Oq(e,t,i){const s=Dq(t,i),r=structuredClone(e);return r.healthChecks=r.healthChecks.map(u=>{if(u.id==="api")return{...u,detail:t.apiStatus.detail,state:t.apiStatus.state==="ok"?"ready":"attention"};if(u.id==="worker")return{...u,detail:t.workerStatus.detail,state:t.workerStatus.state==="ok"?"ready":"attention"};const d=i.providerStatuses.some(g=>g.state==="ready");return{...u,detail:d?"At least one provider configured.":"No providers configured.",state:d?"ready":"attention"}}),r.launchState.enabled=s===void 0,r.launchState.blockedReason=s,r.launchState.summary=s??"Queue a visibility sweep first, then follow with a site audit to explain movement.",r}const Dx="canonry.run-tracker",qf=new Set;let Bv=!1,Rq=0,ad={runs:{},batches:{}};function Mq(){const e=Ya();for(const t of qf)t(e)}function Bq(e){if(!e)return{runs:{},batches:{}};try{const t=JSON.parse(e);return{runs:t.runs??{},batches:t.batches??{}}}catch{return{runs:{},batches:{}}}}function qq(){typeof window>"u"||window.sessionStorage.setItem(Dx,JSON.stringify(ad))}function Ox(){Bv||(Bv=!0,!(typeof window>"u")&&(ad=Bq(window.sessionStorage.getItem(Dx))))}function id(e){ad=e,qq(),Mq()}function Ya(){return Ox(),ad}function Rx(e){return Ox(),qf.add(e),()=>{qf.delete(e)}}function W0(e){const t=Ya();id({...t,runs:{...t.runs,[e.id]:{runId:e.id,projectId:e.projectId,projectLabel:e.projectLabel,kind:e.kind,sourceAction:e.sourceAction,lastAnnouncedStatus:e.lastAnnouncedStatus??"queued",trackedAt:e.trackedAt??Date.now()}}})}function ef(e){const t=Ya();if(!t.runs[e])return;const{[e]:i,...s}=t.runs;id({...t,runs:s})}function Iq(e){const t=Ya(),i=`batch_${Date.now()}_${++Rq}`;return id({...t,batches:{...t.batches,[i]:{batchId:i,runIds:e.runIds,queuedCount:e.queuedCount,skippedCount:e.skippedCount}}}),i}function Lq(e){const t=Ya();if(!t.batches[e])return;const{[e]:i,...s}=t.batches;id({...t,batches:s})}function Pq(e){return e==="completed"||e==="partial"||e==="failed"||e==="cancelled"}const $q=10*6e4;function Uq(e,t,i,s){return e.filter(r=>!t.has(r.runId)&&i-(r.trackedAt??0)>=s)}function Vq(e,t){let i=0,s=0,r=0,u=0,d=0;for(const g of e){const b=t[g]?.status;b==="completed"?i+=1:b==="partial"?s+=1:b==="failed"?r+=1:b==="cancelled"?u+=1:d+=1}return{completed:i,partial:s,failed:r,cancelled:u,pending:d,finished:d===0}}const qv=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Iv=z2,Mx=(e,t)=>i=>{var s;if(t?.variants==null)return Iv(e,i?.class,i?.className);const{variants:r,defaultVariants:u}=t,d=Object.keys(r).map(v=>{const x=i?.[v],S=u?.[v];if(x===null)return null;const j=qv(x)||qv(S);return r[v][j]}),g=i&&Object.entries(i).reduce((v,x)=>{let[S,j]=x;return j===void 0||(v[S]=j),v},{}),b=t==null||(s=t.compoundVariants)===null||s===void 0?void 0:s.reduce((v,x)=>{let{class:S,className:j,..._}=x;return Object.entries(_).every(T=>{let[N,C]=T;return Array.isArray(C)?C.includes({...u,...g}[N]):{...u,...g}[N]===C})?[...v,S,j]:v},[]);return Iv(e,d,b,i?.class,i?.className)},Kq=(e,t)=>{const i=new Array(e.length+t.length);for(let s=0;s<e.length;s++)i[s]=e[s];for(let s=0;s<t.length;s++)i[e.length+s]=t[s];return i},Gq=(e,t)=>({classGroupId:e,validator:t}),Bx=(e=new Map,t=null,i)=>({nextPart:e,validators:t,classGroupId:i}),Ru="-",Lv=[],Hq="arbitrary..",Qq=e=>{const t=Fq(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return Zq(d);const g=d.split(Ru),b=g[0]===""&&g.length>1?1:0;return qx(g,b,t)},getConflictingClassGroupIds:(d,g)=>{if(g){const b=s[d],v=i[d];return b?v?Kq(v,b):b:v||Lv}return i[d]||Lv}}},qx=(e,t,i)=>{if(e.length-t===0)return i.classGroupId;const r=e[t],u=i.nextPart.get(r);if(u){const v=qx(e,t+1,u);if(v)return v}const d=i.validators;if(d===null)return;const g=t===0?e.join(Ru):e.slice(t).join(Ru),b=d.length;for(let v=0;v<b;v++){const x=d[v];if(x.validator(g))return x.classGroupId}},Zq=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),i=t.indexOf(":"),s=t.slice(0,i);return s?Hq+s:void 0})(),Fq=e=>{const{theme:t,classGroups:i}=e;return Yq(i,t)},Yq=(e,t)=>{const i=Bx();for(const s in e){const r=e[s];eh(r,i,s,t)}return i},eh=(e,t,i,s)=>{const r=e.length;for(let u=0;u<r;u++){const d=e[u];Xq(d,t,i,s)}},Xq=(e,t,i,s)=>{if(typeof e=="string"){Jq(e,t,i);return}if(typeof e=="function"){Wq(e,t,i,s);return}eI(e,t,i,s)},Jq=(e,t,i)=>{const s=e===""?t:Ix(t,e);s.classGroupId=i},Wq=(e,t,i,s)=>{if(tI(e)){eh(e(s),t,i,s);return}t.validators===null&&(t.validators=[]),t.validators.push(Gq(i,e))},eI=(e,t,i,s)=>{const r=Object.entries(e),u=r.length;for(let d=0;d<u;d++){const[g,b]=r[d];eh(b,Ix(t,g),i,s)}},Ix=(e,t)=>{let i=e;const s=t.split(Ru),r=s.length;for(let u=0;u<r;u++){const d=s[u];let g=i.nextPart.get(d);g||(g=Bx(),i.nextPart.set(d,g)),i=g}return i},tI=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,nI=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,i=Object.create(null),s=Object.create(null);const r=(u,d)=>{i[u]=d,t++,t>e&&(t=0,s=i,i=Object.create(null))};return{get(u){let d=i[u];if(d!==void 0)return d;if((d=s[u])!==void 0)return r(u,d),d},set(u,d){u in i?i[u]=d:r(u,d)}}},If="!",Pv=":",aI=[],$v=(e,t,i,s,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:i,maybePostfixModifierPosition:s,isExternal:r}),iI=e=>{const{prefix:t,experimentalParseClassName:i}=e;let s=r=>{const u=[];let d=0,g=0,b=0,v;const x=r.length;for(let N=0;N<x;N++){const C=r[N];if(d===0&&g===0){if(C===Pv){u.push(r.slice(b,N)),b=N+1;continue}if(C==="/"){v=N;continue}}C==="["?d++:C==="]"?d--:C==="("?g++:C===")"&&g--}const S=u.length===0?r:r.slice(b);let j=S,_=!1;S.endsWith(If)?(j=S.slice(0,-1),_=!0):S.startsWith(If)&&(j=S.slice(1),_=!0);const T=v&&v>b?v-b:void 0;return $v(u,_,j,T)};if(t){const r=t+Pv,u=s;s=d=>d.startsWith(r)?u(d.slice(r.length)):$v(aI,!1,d,void 0,!0)}if(i){const r=s;s=u=>i({className:u,parseClassName:r})}return s},sI=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((i,s)=>{t.set(i,1e6+s)}),i=>{const s=[];let r=[];for(let u=0;u<i.length;u++){const d=i[u],g=d[0]==="[",b=t.has(d);g||b?(r.length>0&&(r.sort(),s.push(...r),r=[]),s.push(d)):r.push(d)}return r.length>0&&(r.sort(),s.push(...r)),s}},oI=e=>({cache:nI(e.cacheSize),parseClassName:iI(e),sortModifiers:sI(e),...Qq(e)}),rI=/\s+/,lI=(e,t)=>{const{parseClassName:i,getClassGroupId:s,getConflictingClassGroupIds:r,sortModifiers:u}=t,d=[],g=e.trim().split(rI);let b="";for(let v=g.length-1;v>=0;v-=1){const x=g[v],{isExternal:S,modifiers:j,hasImportantModifier:_,baseClassName:T,maybePostfixModifierPosition:N}=i(x);if(S){b=x+(b.length>0?" "+b:b);continue}let C=!!N,O=s(C?T.substring(0,N):T);if(!O){if(!C){b=x+(b.length>0?" "+b:b);continue}if(O=s(T),!O){b=x+(b.length>0?" "+b:b);continue}C=!1}const I=j.length===0?"":j.length===1?j[0]:u(j).join(":"),$=_?I+If:I,K=$+O;if(d.indexOf(K)>-1)continue;d.push(K);const Z=r(O,C);for(let se=0;se<Z.length;++se){const R=Z[se];d.push($+R)}b=x+(b.length>0?" "+b:b)}return b},cI=(...e)=>{let t=0,i,s,r="";for(;t<e.length;)(i=e[t++])&&(s=Lx(i))&&(r&&(r+=" "),r+=s);return r},Lx=e=>{if(typeof e=="string")return e;let t,i="";for(let s=0;s<e.length;s++)e[s]&&(t=Lx(e[s]))&&(i&&(i+=" "),i+=t);return i},uI=(e,...t)=>{let i,s,r,u;const d=b=>{const v=t.reduce((x,S)=>S(x),e());return i=oI(v),s=i.cache.get,r=i.cache.set,u=g,g(b)},g=b=>{const v=s(b);if(v)return v;const x=lI(b,i);return r(b,x),x};return u=d,(...b)=>u(cI(...b))},dI=[],Ut=e=>{const t=i=>i[e]||dI;return t.isThemeGetter=!0,t},Px=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,$x=/^\((?:(\w[\w-]*):)?(.+)\)$/i,mI=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,pI=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,fI=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,hI=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,gI=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,yI=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ci=e=>mI.test(e),Ie=e=>!!e&&!Number.isNaN(Number(e)),zi=e=>!!e&&Number.isInteger(Number(e)),tf=e=>e.endsWith("%")&&Ie(e.slice(0,-1)),Ka=e=>pI.test(e),Ux=()=>!0,bI=e=>fI.test(e)&&!hI.test(e),th=()=>!1,vI=e=>gI.test(e),kI=e=>yI.test(e),wI=e=>!be(e)&&!ke(e),xI=e=>Ki(e,Gx,th),be=e=>Px.test(e),fs=e=>Ki(e,Hx,bI),Uv=e=>Ki(e,EI,Ie),SI=e=>Ki(e,Zx,Ux),jI=e=>Ki(e,Qx,th),Vv=e=>Ki(e,Vx,th),AI=e=>Ki(e,Kx,kI),ou=e=>Ki(e,Fx,vI),ke=e=>$x.test(e),tl=e=>As(e,Hx),NI=e=>As(e,Qx),Kv=e=>As(e,Vx),_I=e=>As(e,Gx),CI=e=>As(e,Kx),ru=e=>As(e,Fx,!0),zI=e=>As(e,Zx,!0),Ki=(e,t,i)=>{const s=Px.exec(e);return s?s[1]?t(s[1]):i(s[2]):!1},As=(e,t,i=!1)=>{const s=$x.exec(e);return s?s[1]?t(s[1]):i:!1},Vx=e=>e==="position"||e==="percentage",Kx=e=>e==="image"||e==="url",Gx=e=>e==="length"||e==="size"||e==="bg-size",Hx=e=>e==="length",EI=e=>e==="number",Qx=e=>e==="family-name",Zx=e=>e==="number"||e==="weight",Fx=e=>e==="shadow",TI=()=>{const e=Ut("color"),t=Ut("font"),i=Ut("text"),s=Ut("font-weight"),r=Ut("tracking"),u=Ut("leading"),d=Ut("breakpoint"),g=Ut("container"),b=Ut("spacing"),v=Ut("radius"),x=Ut("shadow"),S=Ut("inset-shadow"),j=Ut("text-shadow"),_=Ut("drop-shadow"),T=Ut("blur"),N=Ut("perspective"),C=Ut("aspect"),O=Ut("ease"),I=Ut("animate"),$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],K=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Z=()=>[...K(),ke,be],se=()=>["auto","hidden","clip","visible","scroll"],R=()=>["auto","contain","none"],q=()=>[ke,be,b],pe=()=>[Ci,"full","auto",...q()],ue=()=>[zi,"none","subgrid",ke,be],fe=()=>["auto",{span:["full",zi,ke,be]},zi,ke,be],we=()=>[zi,"auto",ke,be],Te=()=>["auto","min","max","fr",ke,be],it=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ge=()=>["start","end","center","stretch","center-safe","end-safe"],Q=()=>["auto",...q()],oe=()=>[Ci,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...q()],me=()=>[Ci,"screen","full","dvw","lvw","svw","min","max","fit",...q()],Ce=()=>[Ci,"screen","full","lh","dvh","lvh","svh","min","max","fit",...q()],ce=()=>[e,ke,be],He=()=>[...K(),Kv,Vv,{position:[ke,be]}],ne=()=>["no-repeat",{repeat:["","x","y","space","round"]}],H=()=>["auto","cover","contain",_I,xI,{size:[ke,be]}],X=()=>[tf,tl,fs],ie=()=>["","none","full",v,ke,be],re=()=>["",Ie,tl,fs],ze=()=>["solid","dashed","dotted","double"],ct=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],_e=()=>[Ie,tf,Kv,Vv],Qe=()=>["","none",T,ke,be],Xe=()=>["none",Ie,ke,be],Gt=()=>["none",Ie,ke,be],In=()=>[Ie,ke,be],Qt=()=>[Ci,"full",...q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ka],breakpoint:[Ka],color:[Ux],container:[Ka],"drop-shadow":[Ka],ease:["in","out","in-out"],font:[wI],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ka],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ka],shadow:[Ka],spacing:["px",Ie],text:[Ka],"text-shadow":[Ka],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ci,be,ke,C]}],container:["container"],columns:[{columns:[Ie,be,ke,g]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Z()}],overflow:[{overflow:se()}],"overflow-x":[{"overflow-x":se()}],"overflow-y":[{"overflow-y":se()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:pe()}],"inset-x":[{"inset-x":pe()}],"inset-y":[{"inset-y":pe()}],start:[{"inset-s":pe(),start:pe()}],end:[{"inset-e":pe(),end:pe()}],"inset-bs":[{"inset-bs":pe()}],"inset-be":[{"inset-be":pe()}],top:[{top:pe()}],right:[{right:pe()}],bottom:[{bottom:pe()}],left:[{left:pe()}],visibility:["visible","invisible","collapse"],z:[{z:[zi,"auto",ke,be]}],basis:[{basis:[Ci,"full","auto",g,...q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ie,Ci,"auto","initial","none",be]}],grow:[{grow:["",Ie,ke,be]}],shrink:[{shrink:["",Ie,ke,be]}],order:[{order:[zi,"first","last","none",ke,be]}],"grid-cols":[{"grid-cols":ue()}],"col-start-end":[{col:fe()}],"col-start":[{"col-start":we()}],"col-end":[{"col-end":we()}],"grid-rows":[{"grid-rows":ue()}],"row-start-end":[{row:fe()}],"row-start":[{"row-start":we()}],"row-end":[{"row-end":we()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Te()}],"auto-rows":[{"auto-rows":Te()}],gap:[{gap:q()}],"gap-x":[{"gap-x":q()}],"gap-y":[{"gap-y":q()}],"justify-content":[{justify:[...it(),"normal"]}],"justify-items":[{"justify-items":[...ge(),"normal"]}],"justify-self":[{"justify-self":["auto",...ge()]}],"align-content":[{content:["normal",...it()]}],"align-items":[{items:[...ge(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ge(),{baseline:["","last"]}]}],"place-content":[{"place-content":it()}],"place-items":[{"place-items":[...ge(),"baseline"]}],"place-self":[{"place-self":["auto",...ge()]}],p:[{p:q()}],px:[{px:q()}],py:[{py:q()}],ps:[{ps:q()}],pe:[{pe:q()}],pbs:[{pbs:q()}],pbe:[{pbe:q()}],pt:[{pt:q()}],pr:[{pr:q()}],pb:[{pb:q()}],pl:[{pl:q()}],m:[{m:Q()}],mx:[{mx:Q()}],my:[{my:Q()}],ms:[{ms:Q()}],me:[{me:Q()}],mbs:[{mbs:Q()}],mbe:[{mbe:Q()}],mt:[{mt:Q()}],mr:[{mr:Q()}],mb:[{mb:Q()}],ml:[{ml:Q()}],"space-x":[{"space-x":q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":q()}],"space-y-reverse":["space-y-reverse"],size:[{size:oe()}],"inline-size":[{inline:["auto",...me()]}],"min-inline-size":[{"min-inline":["auto",...me()]}],"max-inline-size":[{"max-inline":["none",...me()]}],"block-size":[{block:["auto",...Ce()]}],"min-block-size":[{"min-block":["auto",...Ce()]}],"max-block-size":[{"max-block":["none",...Ce()]}],w:[{w:[g,"screen",...oe()]}],"min-w":[{"min-w":[g,"screen","none",...oe()]}],"max-w":[{"max-w":[g,"screen","none","prose",{screen:[d]},...oe()]}],h:[{h:["screen","lh",...oe()]}],"min-h":[{"min-h":["screen","lh","none",...oe()]}],"max-h":[{"max-h":["screen","lh",...oe()]}],"font-size":[{text:["base",i,tl,fs]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,zI,SI]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",tf,be]}],"font-family":[{font:[NI,jI,t]}],"font-features":[{"font-features":[be]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,ke,be]}],"line-clamp":[{"line-clamp":[Ie,"none",ke,Uv]}],leading:[{leading:[u,...q()]}],"list-image":[{"list-image":["none",ke,be]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ke,be]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ce()}],"text-color":[{text:ce()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ze(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ie,"from-font","auto",ke,fs]}],"text-decoration-color":[{decoration:ce()}],"underline-offset":[{"underline-offset":[Ie,"auto",ke,be]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ke,be]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ke,be]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:He()}],"bg-repeat":[{bg:ne()}],"bg-size":[{bg:H()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},zi,ke,be],radial:["",ke,be],conic:[zi,ke,be]},CI,AI]}],"bg-color":[{bg:ce()}],"gradient-from-pos":[{from:X()}],"gradient-via-pos":[{via:X()}],"gradient-to-pos":[{to:X()}],"gradient-from":[{from:ce()}],"gradient-via":[{via:ce()}],"gradient-to":[{to:ce()}],rounded:[{rounded:ie()}],"rounded-s":[{"rounded-s":ie()}],"rounded-e":[{"rounded-e":ie()}],"rounded-t":[{"rounded-t":ie()}],"rounded-r":[{"rounded-r":ie()}],"rounded-b":[{"rounded-b":ie()}],"rounded-l":[{"rounded-l":ie()}],"rounded-ss":[{"rounded-ss":ie()}],"rounded-se":[{"rounded-se":ie()}],"rounded-ee":[{"rounded-ee":ie()}],"rounded-es":[{"rounded-es":ie()}],"rounded-tl":[{"rounded-tl":ie()}],"rounded-tr":[{"rounded-tr":ie()}],"rounded-br":[{"rounded-br":ie()}],"rounded-bl":[{"rounded-bl":ie()}],"border-w":[{border:re()}],"border-w-x":[{"border-x":re()}],"border-w-y":[{"border-y":re()}],"border-w-s":[{"border-s":re()}],"border-w-e":[{"border-e":re()}],"border-w-bs":[{"border-bs":re()}],"border-w-be":[{"border-be":re()}],"border-w-t":[{"border-t":re()}],"border-w-r":[{"border-r":re()}],"border-w-b":[{"border-b":re()}],"border-w-l":[{"border-l":re()}],"divide-x":[{"divide-x":re()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":re()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ze(),"hidden","none"]}],"divide-style":[{divide:[...ze(),"hidden","none"]}],"border-color":[{border:ce()}],"border-color-x":[{"border-x":ce()}],"border-color-y":[{"border-y":ce()}],"border-color-s":[{"border-s":ce()}],"border-color-e":[{"border-e":ce()}],"border-color-bs":[{"border-bs":ce()}],"border-color-be":[{"border-be":ce()}],"border-color-t":[{"border-t":ce()}],"border-color-r":[{"border-r":ce()}],"border-color-b":[{"border-b":ce()}],"border-color-l":[{"border-l":ce()}],"divide-color":[{divide:ce()}],"outline-style":[{outline:[...ze(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ie,ke,be]}],"outline-w":[{outline:["",Ie,tl,fs]}],"outline-color":[{outline:ce()}],shadow:[{shadow:["","none",x,ru,ou]}],"shadow-color":[{shadow:ce()}],"inset-shadow":[{"inset-shadow":["none",S,ru,ou]}],"inset-shadow-color":[{"inset-shadow":ce()}],"ring-w":[{ring:re()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ce()}],"ring-offset-w":[{"ring-offset":[Ie,fs]}],"ring-offset-color":[{"ring-offset":ce()}],"inset-ring-w":[{"inset-ring":re()}],"inset-ring-color":[{"inset-ring":ce()}],"text-shadow":[{"text-shadow":["none",j,ru,ou]}],"text-shadow-color":[{"text-shadow":ce()}],opacity:[{opacity:[Ie,ke,be]}],"mix-blend":[{"mix-blend":[...ct(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ct()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ie]}],"mask-image-linear-from-pos":[{"mask-linear-from":_e()}],"mask-image-linear-to-pos":[{"mask-linear-to":_e()}],"mask-image-linear-from-color":[{"mask-linear-from":ce()}],"mask-image-linear-to-color":[{"mask-linear-to":ce()}],"mask-image-t-from-pos":[{"mask-t-from":_e()}],"mask-image-t-to-pos":[{"mask-t-to":_e()}],"mask-image-t-from-color":[{"mask-t-from":ce()}],"mask-image-t-to-color":[{"mask-t-to":ce()}],"mask-image-r-from-pos":[{"mask-r-from":_e()}],"mask-image-r-to-pos":[{"mask-r-to":_e()}],"mask-image-r-from-color":[{"mask-r-from":ce()}],"mask-image-r-to-color":[{"mask-r-to":ce()}],"mask-image-b-from-pos":[{"mask-b-from":_e()}],"mask-image-b-to-pos":[{"mask-b-to":_e()}],"mask-image-b-from-color":[{"mask-b-from":ce()}],"mask-image-b-to-color":[{"mask-b-to":ce()}],"mask-image-l-from-pos":[{"mask-l-from":_e()}],"mask-image-l-to-pos":[{"mask-l-to":_e()}],"mask-image-l-from-color":[{"mask-l-from":ce()}],"mask-image-l-to-color":[{"mask-l-to":ce()}],"mask-image-x-from-pos":[{"mask-x-from":_e()}],"mask-image-x-to-pos":[{"mask-x-to":_e()}],"mask-image-x-from-color":[{"mask-x-from":ce()}],"mask-image-x-to-color":[{"mask-x-to":ce()}],"mask-image-y-from-pos":[{"mask-y-from":_e()}],"mask-image-y-to-pos":[{"mask-y-to":_e()}],"mask-image-y-from-color":[{"mask-y-from":ce()}],"mask-image-y-to-color":[{"mask-y-to":ce()}],"mask-image-radial":[{"mask-radial":[ke,be]}],"mask-image-radial-from-pos":[{"mask-radial-from":_e()}],"mask-image-radial-to-pos":[{"mask-radial-to":_e()}],"mask-image-radial-from-color":[{"mask-radial-from":ce()}],"mask-image-radial-to-color":[{"mask-radial-to":ce()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":K()}],"mask-image-conic-pos":[{"mask-conic":[Ie]}],"mask-image-conic-from-pos":[{"mask-conic-from":_e()}],"mask-image-conic-to-pos":[{"mask-conic-to":_e()}],"mask-image-conic-from-color":[{"mask-conic-from":ce()}],"mask-image-conic-to-color":[{"mask-conic-to":ce()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:He()}],"mask-repeat":[{mask:ne()}],"mask-size":[{mask:H()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ke,be]}],filter:[{filter:["","none",ke,be]}],blur:[{blur:Qe()}],brightness:[{brightness:[Ie,ke,be]}],contrast:[{contrast:[Ie,ke,be]}],"drop-shadow":[{"drop-shadow":["","none",_,ru,ou]}],"drop-shadow-color":[{"drop-shadow":ce()}],grayscale:[{grayscale:["",Ie,ke,be]}],"hue-rotate":[{"hue-rotate":[Ie,ke,be]}],invert:[{invert:["",Ie,ke,be]}],saturate:[{saturate:[Ie,ke,be]}],sepia:[{sepia:["",Ie,ke,be]}],"backdrop-filter":[{"backdrop-filter":["","none",ke,be]}],"backdrop-blur":[{"backdrop-blur":Qe()}],"backdrop-brightness":[{"backdrop-brightness":[Ie,ke,be]}],"backdrop-contrast":[{"backdrop-contrast":[Ie,ke,be]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ie,ke,be]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ie,ke,be]}],"backdrop-invert":[{"backdrop-invert":["",Ie,ke,be]}],"backdrop-opacity":[{"backdrop-opacity":[Ie,ke,be]}],"backdrop-saturate":[{"backdrop-saturate":[Ie,ke,be]}],"backdrop-sepia":[{"backdrop-sepia":["",Ie,ke,be]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":q()}],"border-spacing-x":[{"border-spacing-x":q()}],"border-spacing-y":[{"border-spacing-y":q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ke,be]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ie,"initial",ke,be]}],ease:[{ease:["linear","initial",O,ke,be]}],delay:[{delay:[Ie,ke,be]}],animate:[{animate:["none",I,ke,be]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[N,ke,be]}],"perspective-origin":[{"perspective-origin":Z()}],rotate:[{rotate:Xe()}],"rotate-x":[{"rotate-x":Xe()}],"rotate-y":[{"rotate-y":Xe()}],"rotate-z":[{"rotate-z":Xe()}],scale:[{scale:Gt()}],"scale-x":[{"scale-x":Gt()}],"scale-y":[{"scale-y":Gt()}],"scale-z":[{"scale-z":Gt()}],"scale-3d":["scale-3d"],skew:[{skew:In()}],"skew-x":[{"skew-x":In()}],"skew-y":[{"skew-y":In()}],transform:[{transform:[ke,be,"","none","gpu","cpu"]}],"transform-origin":[{origin:Z()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Qt()}],"translate-x":[{"translate-x":Qt()}],"translate-y":[{"translate-y":Qt()}],"translate-z":[{"translate-z":Qt()}],"translate-none":["translate-none"],accent:[{accent:ce()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ce()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ke,be]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mbs":[{"scroll-mbs":q()}],"scroll-mbe":[{"scroll-mbe":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pbs":[{"scroll-pbs":q()}],"scroll-pbe":[{"scroll-pbe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ke,be]}],fill:[{fill:["none",...ce()]}],"stroke-w":[{stroke:[Ie,tl,fs,Uv]}],stroke:[{stroke:["none",...ce()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},DI=uI(TI);function ea(...e){return DI(z2(e))}const OI=Mx("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 focus-visible:ring-offset-2 focus-visible:ring-offset-overlay-scrim disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-accent text-on-inverse hover:bg-mono-200",secondary:"border border-base bg-bg text-heading hover:bg-bg-elevated",ghost:"text-secondary hover:bg-bg-elevated hover:text-primary",outline:"border border-base bg-transparent text-heading hover:bg-bg-elevated",destructive:"bg-negative-600 text-on-emphasis hover:bg-negative-700"},size:{default:"h-10 px-4 md:h-9",sm:"h-9 px-3 text-xs md:h-8",icon:"size-10 md:size-9"}},defaultVariants:{variant:"default",size:"default"}}),De=B.forwardRef(({className:e,variant:t,size:i,asChild:s=!1,...r},u)=>{const d=s?m4:"button";return m.jsx(d,{ref:u,className:ea(OI({variant:t,size:i,className:e})),...r})});De.displayName="Button";const RI=Mx("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium tracking-wide",{variants:{variant:{neutral:"border-base bg-bg text-neutral",success:"border-positive bg-positive-soft text-positive",warning:"border-caution-500/25 bg-caution-soft text-caution",destructive:"border-negative bg-negative-soft text-negative"}},defaultVariants:{variant:"neutral"}});function Yx({className:e,variant:t,...i}){return m.jsx("div",{className:ea(RI({variant:t}),e),...i})}const MI=220;function Gv({compact:e=!1,version:t,updateAvailable:i,onDismissUpdate:s}){const r=!e&&t&&t!=="unknown",[u,d]=B.useState(!1),g=!e&&i&&s,b=()=>{d(!0),window.setTimeout(()=>{s?.(),d(!1)},MI)};return e?m.jsxs(We,{to:"/",className:"brand-lockup brand-lockup-compact","aria-label":"Canonry home",children:[m.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"}),m.jsx("span",{className:"brand-copy",children:m.jsx("span",{className:"brand-mark",children:"Canonry"})})]}):m.jsxs("div",{className:"brand-lockup brand-lockup-wrapper",children:[m.jsx(We,{to:"/",className:"brand-icon-link","aria-label":"Canonry home",tabIndex:-1,children:m.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"})}),m.jsxs("div",{className:"brand-copy",children:[m.jsx(We,{to:"/",className:"brand-mark",children:"Canonry"}),!g&&r?m.jsxs("span",{className:"brand-version",children:["v",t]}):null]}),g?m.jsxs("span",{className:`brand-update-bubble ${u?"brand-update-bubble-closing":""}`,role:"status","aria-live":"polite",children:[m.jsxs("a",{className:"brand-update-bubble-link",href:i.url,target:"_blank",rel:"noopener noreferrer",title:`Open release: ${i.upgradeCommand}`,"aria-label":`New version v${i.latest} available — open release page`,children:[m.jsxs("span",{className:"brand-update-bubble-from",children:["v",i.current]}),m.jsx(tN,{className:"brand-update-bubble-arrow size-3","aria-hidden":"true"}),m.jsxs("span",{className:"brand-update-bubble-to",children:["v",i.latest]})]}),m.jsx("button",{type:"button",className:"brand-update-bubble-dismiss",onClick:b,"aria-label":`Dismiss update notification for v${i.latest}`,children:m.jsx($o,{className:"size-3","aria-hidden":"true"})})]}):null]})}function BI({provider:e}){const t={gemini:"border-blue-800/50 bg-blue-950/40 text-blue-300",openai:"border-green-800/50 bg-green-950/40 text-green-300",claude:"border-amber-800/50 bg-amber-950/40 text-amber-300",perplexity:"border-teal-800/50 bg-teal-950/40 text-teal-300",local:"border-purple-800/50 bg-purple-950/40 text-purple-300"},s=Object.hasOwn(t,e)?`provider-badge--${e} ${t[e]}`:"border-zinc-700 bg-zinc-800 text-zinc-300";return m.jsx("span",{className:`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide ${s}`,children:e})}function An({tone:e,children:t,...i}){const s=e==="positive"?"success":e==="caution"?"warning":e==="negative"?"destructive":"neutral";return m.jsx(Yx,{variant:s,...i,children:t})}function nh({status:e}){return m.jsx(An,{tone:Tx(e),children:pB(e)})}const qI=C2,II=A2,Xx=B.forwardRef(({className:e,...t},i)=>m.jsx(Qf,{ref:i,className:ea("fixed inset-0 z-50 bg-overlay-scrim/70 backdrop-blur-sm",e),...t}));Xx.displayName=Qf.displayName;const LI=400,PI=1200,$I=720,Jx=B.forwardRef(({className:e,children:t,...i},s)=>{const[r,u]=B.useState($I),d=B.useRef(!1),g=B.useRef(0),b=B.useRef(0),v=B.useCallback(j=>{d.current=!0,g.current=j.clientX,b.current=r,j.target.setPointerCapture(j.pointerId),j.preventDefault()},[r]),x=B.useCallback(j=>{if(!d.current)return;const _=g.current-j.clientX,T=Math.min(PI,Math.max(LI,b.current+_));u(T)},[]),S=B.useCallback(()=>{d.current=!1},[]);return m.jsxs(II,{children:[m.jsx(Xx,{}),m.jsxs(Zf,{ref:s,className:ea("fixed z-50 flex flex-col bg-bg px-5 py-4 shadow-2xl overflow-hidden","max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:max-h-[88vh] max-md:rounded-t-2xl max-md:border-t","md:inset-y-0 md:right-0 md:h-full md:border-l","border-base",e),style:{width:`min(${r}px, 100vw)`},...i,children:[m.jsx("div",{className:"absolute inset-y-0 left-0 w-1.5 cursor-col-resize hover:bg-mono-700/50 active:bg-mono-600/50 transition-colors max-md:hidden",onPointerDown:v,onPointerMove:x,onPointerUp:S}),t,m.jsxs(N2,{className:"absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-bg-elevated hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",children:[m.jsx($o,{className:"size-4"}),m.jsx("span",{className:"sr-only",children:"Close"})]})]})]})});Jx.displayName=Zf.displayName;const UI=({className:e,...t})=>m.jsx("div",{className:ea("flex flex-col gap-1.5 pr-10",e),...t}),Wx=B.forwardRef(({className:e,...t},i)=>m.jsx(Ff,{ref:i,className:ea("text-lg font-medium text-primary",e),...t}));Wx.displayName=Ff.displayName;const e3=B.forwardRef(({className:e,...t},i)=>m.jsx(_2,{ref:i,className:ea("text-sm text-muted",e),...t}));e3.displayName=_2.displayName;function nf({title:e,subtitle:t,children:i,open:s,onClose:r}){return m.jsx(qI,{open:s,onOpenChange:u=>u?void 0:r(),children:m.jsxs(Jx,{children:[m.jsxs(UI,{className:"drawer-head",children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:t}),m.jsx(Wx,{id:"drawer-title",children:e}),m.jsx(e3,{className:"sr-only",children:t})]}),m.jsx("div",{className:"drawer-body",children:i})]})})}function nl({text:e}){const[t,i]=B.useState(null),s=B.useRef(null),r=B.useCallback(()=>{if(!s.current)return;const g=s.current.getBoundingClientRect();i({top:g.top,left:g.left+g.width/2})},[]),u=B.useCallback(()=>i(null),[]),d=B.useCallback(()=>{t===null?r():u()},[t,r,u]);return m.jsxs("span",{className:"info-tooltip-wrapper",onMouseEnter:r,onMouseLeave:u,children:[m.jsx("button",{ref:s,type:"button",className:"info-tooltip-trigger","aria-label":e,"aria-expanded":t!==null,onFocus:r,onBlur:u,onClick:d,onKeyDown:g=>{g.key==="Escape"&&u()},children:m.jsxs("svg",{className:"info-tooltip-icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[m.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M8 7v4M8 5.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),t!==null&&i4.createPortal(m.jsx("span",{"aria-hidden":"true",style:{position:"fixed",top:t.top,left:t.left,transform:"translateX(-50%) translateY(calc(-100% - 8px))",zIndex:9999,pointerEvents:"none",width:"14rem",padding:"0.5rem 0.75rem",fontSize:"11px",fontWeight:400,textTransform:"none",letterSpacing:"normal",lineHeight:"1rem",color:"var(--color-neutral-text)",backgroundColor:"var(--color-bg-elevated)",border:"1px solid color-mix(in oklab, var(--color-border-strong) 60%, transparent)",borderRadius:"0.5rem",boxShadow:"0 10px 15px -3px var(--color-shadow-tooltip), 0 4px 6px -4px var(--color-shadow-tooltip)"},children:e}),document.body)]})}const VI=/[\s\-_]+/;function KI(e){const t=e.split(VI).filter(Boolean);return t.length===0?null:t.map(i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\s\\-_]*")}function Hv(e,t){const i=GI(t),s=e.split(/(\*\*[^*]+\*\*)/).filter(Boolean).map(v=>v.startsWith("**")&&v.endsWith("**")?{type:"bold",value:v.slice(2,-2)}:{type:"text",value:v}),r=i.flatMap(v=>v.terms).filter(v=>v.trim().length>1);if(r.length===0)return s.map((v,x)=>v.type==="bold"?po.createElement("strong",{key:`b-${x}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const d=[...r].sort((v,x)=>x.length-v.length).map(KI).filter(v=>!!v);if(d.length===0)return s.map((v,x)=>v.type==="bold"?po.createElement("strong",{key:`b-${x}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const g=new RegExp(`(${d.join("|")})`,"gi"),b=new Map;for(const v of i)for(const x of v.terms){const S=vs(x);S&&!b.has(S)&&b.set(S,v.className)}return s.flatMap((v,x)=>v.value.split(g).map((j,_)=>{if(!j)return null;if(_%2===1){const N=b.get(vs(j))??"answer-highlight";return v.type==="bold"?po.createElement("mark",{key:`hl-${x}-${_}`,className:N},po.createElement("strong",{className:"text-strong font-semibold"},j)):po.createElement("mark",{key:`hl-${x}-${_}`,className:N},j)}return v.type==="bold"?po.createElement("strong",{key:`b-${x}-${_}`,className:"text-strong font-semibold"},j):j})).filter(Boolean)}function GI(e){return e.length===0?[]:typeof e[0]=="string"?[{terms:e,className:"answer-highlight"}]:e}function Lf(e){const t=(e??"").trim();return t&&(t.startsWith("/")||/^https?:\/\//i.test(t)||/^mailto:/i.test(t))?t:null}function af(e,t){switch(e){case"new":return"First observation";case"emerging":return"First mention";case"lost":return"Lost since last run";default:return t==="mentioned"||t==="visible"?"Mentioned in latest run":t==="pending"?"Awaiting first run":"Not mentioned in latest run"}}function HI({evidence:e,project:t,onClose:i}){const[s,r]=B.useState(!1),[u,d]=B.useState("mentions"),[g,b]=B.useState(-1),[v,x]=B.useState(null),[S,j]=B.useState(!1),[_,T]=B.useState({}),N=Oz(t.project),C=new Set(N.map(_f)),O=e.runHistory,I=O.length>1,[$,K]=B.useState(null),Z=B.useRef(!1);B.useEffect(()=>{if(Z.current||e.answerSnippet&&(e.visibilityState!=null||e.answerMentioned!=null))return;const X=O.at(-1);X&&(Z.current=!0,ku(X.runId).then(ie=>{const re=ie.snapshots?.find(ze=>ze.query===e.query&&ze.provider===e.provider);re&&K({citationState:re.citationState,answerMentioned:re.answerMentioned,visibilityState:re.visibilityState,visibilityTransition:X.visibilityTransition,provider:re.provider,model:re.model??e.model,answerSnippet:re.answerText??e.answerSnippet,citedDomains:re.citedDomains??e.citedDomains,competitorDomains:re.competitorOverlap??e.competitorDomains,recommendedCompetitors:re.recommendedCompetitors??e.recommendedCompetitors??[],matchedTerms:re.matchedTerms??e.matchedTerms??[],groundingSources:re.groundingSources??e.groundingSources,searchQueries:re.searchQueries,evidenceUrls:[],changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary})}).catch(()=>{}))},[e,O]);const se=g>=0&&v!==null,R=se?v:$||{citationState:e.citationState,answerMentioned:e.answerMentioned,visibilityState:e.visibilityState,visibilityTransition:O.at(-1)?.visibilityTransition,provider:e.provider,model:e.model,answerSnippet:e.answerSnippet,citedDomains:e.citedDomains,competitorDomains:e.competitorDomains,recommendedCompetitors:e.recommendedCompetitors??[],matchedTerms:e.matchedTerms??[],groundingSources:e.groundingSources,searchQueries:e.searchQueries??[],evidenceUrls:e.evidenceUrls,changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary},q=R.visibilityState==="pending"||R.citationState==="pending",pe=q?!1:R.visibilityState!=null?R.visibilityState==="visible":R.answerMentioned!=null?R.answerMentioned:R.citationState===Tu.cited||R.citationState==="emerging",ue=R.answerMentioned!=null||R.visibilityState!=null||R.recommendedCompetitors.length>0,fe=R.citedDomains.length>0||R.groundingSources.length>0||R.evidenceUrls.length>0,we=t.project.displayName||t.project.name,Te=[...N.map(_f),we,we.split(" ").slice(0,2).join(" "),...R.matchedTerms].filter(X=>X.trim().length>2),it=[...R.competitorDomains.flatMap(X=>{const ie=jz(X);return ie.length>=4?[ie]:[]}),...R.recommendedCompetitors].filter(X=>X.trim().length>2),ge=[{terms:Te,className:"answer-highlight-brand"},...it.length>0?[{terms:it,className:"answer-highlight-competitor"}]:[]],Q=q?"pending":R.visibilityTransition==="lost"?"lost":pe?"mentioned":"not-mentioned",oe=B.useRef(0),me=B.useCallback(async X=>{const ie=++oe.current;if(X===-1||X===O.length-1){b(-1),x(null),r(!1);return}b(X),r(!1);const re=O[X],ze=`${re.runId}::${e.query}::${e.provider}`;if(_[ze]){x(_[ze]);return}j(!0);try{const ct=await ku(re.runId);if(ie!==oe.current)return;const _e=ct.snapshots?.find(Xe=>Xe.query===e.query&&Xe.provider===e.provider)??ct.snapshots?.find(Xe=>Xe.query===e.query),Qe=_e?{citationState:_e.citationState,answerMentioned:_e.answerMentioned,visibilityState:_e.visibilityState,visibilityTransition:re.visibilityTransition,provider:_e.provider,model:_e.model??null,answerSnippet:_e.answerText??"",citedDomains:_e.citedDomains,competitorDomains:_e.competitorOverlap,recommendedCompetitors:_e.recommendedCompetitors??[],matchedTerms:_e.matchedTerms??[],groundingSources:_e.groundingSources,searchQueries:_e.searchQueries,evidenceUrls:[],changeLabel:af(re.mentionTransition??re.visibilityTransition,re.mentionState??re.visibilityState),summary:""}:{citationState:re.citationState,answerMentioned:re.answerMentioned,visibilityState:re.visibilityState,visibilityTransition:re.visibilityTransition,provider:e.provider,model:re.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:af(re.mentionTransition??re.visibilityTransition,re.mentionState??re.visibilityState),summary:"Snapshot data not available for this run."};T(Xe=>({...Xe,[ze]:Qe})),x(Qe)}catch{if(ie!==oe.current)return;x({citationState:re.citationState,answerMentioned:re.answerMentioned,visibilityState:re.visibilityState,visibilityTransition:re.visibilityTransition,provider:e.provider,model:re.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:af(re.mentionTransition??re.visibilityTransition,re.mentionState??re.visibilityState),summary:"Failed to load historical run data."})}finally{ie===oe.current&&j(!1)}},[O,e.query,e.provider,_]),ce=(se||e.historyScope!=="provider")&&R.model?`${R.provider} (${R.model}) · ${R.changeLabel.toLowerCase()}`:`${R.provider} · ${R.changeLabel.toLowerCase()}`,He=!se&&e.historyScope==="provider"?[e.model?`Current model: ${e.model}`:null,e.modelsSeen&&e.modelsSeen.length>1?`History spans ${e.modelsSeen.length} models`:null].filter(Boolean).join(" · "):"",ne=pe?{label:"Mentioned in answer",title:"Your brand or domain is mentioned in this answer",meta:ce}:R.visibilityTransition==="lost"?{label:"Mention lost",title:"Your brand no longer appears in this answer",meta:ce}:q?{label:"Pending",title:"Awaiting first run",meta:"No provider data yet"}:{label:"Not mentioned in answer",title:"Your brand or domain was not mentioned in this answer",meta:ce},H=()=>{if(!R.answerSnippet)return null;const X=R.answerSnippet.split(`
|
|
58
|
+
`),ie=[];let re=[],ze=0;const ct=()=>{if(re.length===0)return;const _e=re.join(" ").trim();_e&&ie.push(m.jsx("p",{className:ie.length>0?"mt-2.5":"",children:Hv(_e,ge)},ze++)),re=[]};for(const _e of X){const Qe=_e.trim();if(/^[-\u2013\u2014]{3,}$/.test(Qe)){ct(),ie.push(m.jsx("hr",{className:"border-default my-3"},ze++));continue}const Xe=Qe.match(/^(#{1,3})\s+(\S.*)$/);if(Xe){ct();const Gt=Xe[1].length,In=Xe[2].replace(/^[\p{Emoji}\p{Emoji_Component}\s]+/u,"").trim()||Xe[2],Qt=Gt===1?"text-[13px] font-semibold text-heading mt-4 mb-1":Gt===2?"text-xs font-semibold text-strong mt-3 mb-0.5":"text-xs font-medium text-neutral mt-2";ie.push(m.jsx("p",{className:Qt,children:Hv(In,ge)},ze++));continue}if(Qe===""){ct();continue}re.push(Qe)}return ct(),ie};return m.jsx(C2,{open:!0,onOpenChange:X=>{X||i()},children:m.jsxs(A2,{children:[m.jsx(Qf,{className:"fixed inset-0 z-50 bg-overlay-scrim/80 backdrop-blur-sm"}),m.jsxs(Zf,{className:"evidence-modal","aria-describedby":void 0,children:[m.jsxs("div",{className:"evidence-modal-header",children:[m.jsxs("div",{className:"min-w-0 flex-1",children:[m.jsxs("p",{className:"eyebrow eyebrow-soft",children:[t.project.name," ","·"," ",R.provider||"All providers"]}),m.jsx(Ff,{className:"text-lg font-semibold text-primary truncate",children:e.query})]}),m.jsxs(N2,{className:"inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-mono-800 hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 shrink-0",children:[m.jsx($o,{className:"size-4"}),m.jsx("span",{className:"sr-only",children:"Close"})]})]}),I&&m.jsxs("div",{className:"evidence-modal-timeline",children:[m.jsx("p",{className:"drawer-section-label mb-1.5",children:"Run history"}),m.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-1",children:O.map((X,ie)=>{const re=g===-1&&ie===O.length-1||g===ie,ze=X.visibilityState??(X.answerMentioned?"visible":"not-visible"),ct=X.visibilityTransition??ze,_e=ze==="visible"?"bg-positive-400":ct==="emerging"?"bg-caution-400":ct==="lost"?"bg-negative-400":"bg-mono-600",Xe=new Date(X.createdAt).toLocaleDateString(void 0,{month:"short",day:"numeric"}),Gt=!!(X.model&&ie>0&&O[ie-1]?.model&&O[ie-1].model!==X.model);return m.jsxs("button",{type:"button",className:`evidence-run-dot ${re?"evidence-run-dot--selected":""}`,onClick:()=>{me(ie===O.length-1?-1:ie)},"aria-label":[`Run ${Xe}: ${ze}`,X.model?`model ${X.model}`:null,Gt?"model changed":null].filter(Boolean).join(" — "),"aria-pressed":re,children:[m.jsx("span",{className:`size-2 rounded-full ${_e} ${Gt?"ring-1 ring-caution-300/80 ring-offset-2 ring-offset-bg":""}`,"aria-hidden":"true"}),m.jsx("span",{className:"text-[10px] text-muted",children:Xe})]},ie)})}),g>=0&&g<O.length&&m.jsxs("p",{className:"text-[11px] text-muted mt-1",children:["Viewing run from ",new Date(O[g].createdAt).toLocaleString()," ","—"," ",m.jsx("span",{className:"capitalize",children:O[g].visibilityState??(O[g].answerMentioned?"visible":"not-visible")}),m.jsxs("button",{type:"button",className:"text-secondary hover:text-strong ml-2",onClick:()=>{me(-1)},children:["←"," Back to latest"]})]}),!se&&(e.modelTransitions?.length??0)>0&&m.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.modelTransitions.map(X=>m.jsx("span",{className:"inline-flex items-center rounded-full border border-caution-400/30 bg-caution-400/10 px-2 py-1 text-[10px] text-caution-100",children:`${X.fromModel??"unknown"} -> ${X.toModel??"unknown"} on ${new Date(X.createdAt).toLocaleDateString()}`},`${X.runId}:${X.toModel??"unknown"}`))})]}),m.jsxs("div",{className:"evidence-modal-body",children:[S&&m.jsxs("div",{className:"md:col-span-2 flex items-center justify-center py-12 text-muted text-sm",children:["Loading historical run data","…"]}),!S&&m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"evidence-modal-main",children:[m.jsxs("div",{className:`evidence-position-hero evidence-position-hero--${Q}`,children:[m.jsx("p",{className:`evidence-position-label evidence-position-label--${Q}`,children:ne.label}),m.jsx("p",{className:`evidence-position-title evidence-position-title--${Q}`,children:ne.title}),m.jsx("p",{className:"evidence-position-meta",children:ne.meta}),He&&m.jsx("p",{className:"mt-1 text-[11px] text-muted",children:He})]}),R.answerSnippet&&m.jsxs("div",{children:[m.jsx("p",{className:"drawer-section-label",children:"What the AI said"}),m.jsx("div",{className:`answer-snippet-block ${s?"evidence-answer-expanded":"evidence-answer-collapsed"}`,children:H()}),R.answerSnippet.length>280&&m.jsx("button",{type:"button",className:"mt-1.5 text-xs text-muted hover:text-neutral transition-colors",onClick:()=>r(!s),children:s?"↑ Collapse":"↓ Show full answer"})]}),!R.answerSnippet&&!S&&m.jsx("div",{className:"rounded-lg border border-subtle bg-surface-subtle px-4 py-8 text-center text-faint text-sm",children:"No answer text recorded for this run"}),R.searchQueries.length>0&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Web searches the model ran"}),m.jsx(nl,{text:"The search queries this AI model issued while researching your prompt. They reveal how the model reformulated your query — the phrasings worth optimizing your content for. Distinct from grounding sources (what it found) and citations (what it linked)."})]}),m.jsx("ul",{className:"grid gap-1",children:R.searchQueries.map((X,ie)=>m.jsxs("li",{className:"flex items-start gap-2 text-sm text-neutral",children:[m.jsx(KN,{className:"size-3.5 mt-0.5 shrink-0 text-faint","aria-hidden":"true"}),m.jsx("span",{className:"break-words",children:X})]},`${ie}-${X}`))})]}),!se&&e.relatedTechnicalSignals.length>0&&m.jsxs("div",{children:[m.jsx("p",{className:"drawer-section-label",children:pe?"Why you're visible":"What to fix"}),m.jsx("div",{className:"action-items-list",children:e.relatedTechnicalSignals.map((X,ie)=>m.jsxs("div",{className:"action-item",children:[m.jsx("svg",{className:`action-item-icon ${pe?"text-positive-400":"text-caution-400"}`,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:pe?m.jsx("path",{d:"M3 8l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}):m.jsxs(m.Fragment,{children:[m.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M8 5v3.5M8 10.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),m.jsx("span",{className:"action-item-text",children:X})]},ie))})]}),R.summary&&m.jsx("p",{className:"text-xs text-faint border-t border-subtle pt-3 mt-1",children:R.summary})]}),m.jsxs("div",{className:"evidence-modal-sidebar",children:[(ue||fe)&&m.jsxs("div",{className:"sidebar-tabs",children:[m.jsx("button",{className:`sidebar-tab ${u==="mentions"?"sidebar-tab--active":""}`,onClick:()=>d("mentions"),type:"button",title:"Canonry's answer-level visibility assessment and any company names extracted from the answer text.",children:"Mentions"}),m.jsx("button",{className:`sidebar-tab ${u==="sources"?"sidebar-tab--active":""}`,onClick:()=>d("sources"),type:"button",title:"Grounding links the model used to build the answer. These are supporting sources, not the primary visibility signal.",children:"Sources"})]}),u==="mentions"&&m.jsxs(m.Fragment,{children:[m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Mention in answer"}),m.jsx(nl,{text:"Canonry scans the AI answer for your owned domains and project name. This is independent from grounding or citation sources."})]}),m.jsxs("div",{className:`mention-status mention-status--${pe?"mentioned":"not-mentioned"}`,children:[m.jsx("span",{className:"mention-status-icon",children:q?"…":pe?"✓":"—"}),m.jsx("span",{className:"mention-status-label",children:q?"Pending":pe?"Mentioned":"Not mentioned"})]}),R.matchedTerms.length>0&&m.jsxs("div",{className:"mt-2",children:[m.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Matched in answer"}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:R.matchedTerms.map(X=>m.jsx("span",{className:"mention-chip mention-chip--brand",children:X},X))})]}),!q&&!pe&&R.matchedTerms.length===0&&m.jsxs("div",{className:"mt-2",children:[m.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Searched for"}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:Te.map(X=>m.jsx("span",{className:"mention-chip mention-chip--muted",children:X},X))}),m.jsx("p",{className:"text-[11px] text-faint mt-1.5",children:"None of these appear in the answer text."})]})]}),(R.recommendedCompetitors.length>0||R.competitorDomains.length>0)&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Competitors in answer"}),m.jsx(nl,{text:"Competitors detected in the answer text or cited source links. Includes both tracked competitors and names extracted by Canonry."})]}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:(()=>{const X=R.competitorDomains.map(ze=>ze.replace(/^www\./,"")),ie=new Set(X.map(ze=>vs(ze.replace(/\.[^.]+$/,""))));return[...R.recommendedCompetitors.filter(ze=>!ie.has(vs(ze))),...X].map(ze=>m.jsx("span",{className:"mention-chip mention-chip--competitor",children:ze},ze))})()})]})]}),u==="sources"&&m.jsxs(m.Fragment,{children:[R.citedDomains.length>0&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsx("span",{children:"Domains from source links"}),m.jsx(nl,{text:"These domains were extracted from grounding or citation URLs. They are supporting-source metadata, not proof that the answer text mentioned them."})]}),m.jsx("div",{className:"citation-leaderboard",children:R.citedDomains.map((X,ie)=>{const re=X.toLowerCase().replace(/^www\./,""),ze=C.has(re),ct=!ze&&R.competitorDomains.some(Qe=>Qe.toLowerCase().replace(/^www\./,"")===re),_e=ze?"you":ct?"competitor":"other";return m.jsxs("div",{className:`citation-leaderboard-item citation-leaderboard-item--${_e}`,children:[m.jsxs("span",{className:"citation-leaderboard-rank",children:["#",ie+1]}),m.jsx("span",{className:"citation-leaderboard-domain",children:X}),ze&&m.jsx("span",{className:"citation-leaderboard-tag",children:"You"}),ct&&m.jsx("span",{className:"citation-leaderboard-tag",children:"Competitor"})]},X)})})]}),R.groundingSources.length>0&&m.jsxs("div",{children:[m.jsxs("div",{className:"drawer-section-label flex items-center",children:[m.jsxs("span",{children:["Grounding source links (",R.groundingSources.length,")"]}),m.jsx(nl,{text:"Links the model used as grounding or supporting context while producing the answer. These are not the same thing as answer visibility."})]}),m.jsx("ul",{className:"grid gap-0.5",children:R.groundingSources.map((X,ie)=>{const re=Lf(X.uri),ze=X.title||X.uri;return m.jsx("li",{className:"truncate text-sm",children:re?m.jsx("a",{href:re,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:ze}):m.jsx("span",{className:"text-secondary",children:ze})},ie)})})]}),R.evidenceUrls.length>0&&m.jsxs("div",{children:[m.jsx("p",{className:"drawer-section-label",children:"Evidence URLs"}),m.jsx("ul",{className:"grid gap-1",children:R.evidenceUrls.map(X=>{const ie=Lf(X);return m.jsx("li",{className:"truncate text-sm",children:ie?m.jsx("a",{href:ie,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:X}):m.jsx("span",{className:"text-secondary",children:X})},X)})})]}),R.citedDomains.length===0&&R.groundingSources.length===0&&R.evidenceUrls.length===0&&m.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No source data ",se?"for this run":"yet"]})]}),!ue&&!fe&&m.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No answer visibility data ",se?"for this run":"yet"]})]})]})]})]})]})})}function QI(e){const t=e.match(/^\/projects\/([^/]+)/);if(!t)return null;try{return decodeURIComponent(t[1])}catch{return t[1]}}function ZI(e,t){return e?t?.projects.find(s=>s.project.name===e||s.project.id===e)?.project.name??e:null}function FI(e,t){return ZI(QI(e),t)}function ca(e){const t=new Date("2026-02-20");return e.map((i,s)=>({runId:`run_mock_${s+1}`,citationState:i,createdAt:new Date(t.getTime()+s*2*24*60*60*1e3).toISOString()}))}const sf=[{id:"project_citypoint",name:"Citypoint Dental NYC",canonicalDomain:"citypointdental.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["local intent","priority"],labels:{},providers:[],providerModels:{},measurement:$p,locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_harbor",name:"Harbor Legal Group",canonicalDomain:"harborlegal.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["lead gen"],labels:{},providers:[],providerModels:{},measurement:$p,locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_northstar",name:"Northstar Orthopedics",canonicalDomain:"northstarortho.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["multi-location"],labels:{},providers:[],providerModels:{},measurement:$p,locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1}];function sd(e){return{id:e.id,projectId:e.projectId,projectName:e.projectName,kind:e.kind,kindLabel:e.kindLabel,status:e.status,trigger:e.trigger??"manual",createdAt:e.createdAt,startedAt:e.startedAt,duration:e.duration,statusDetail:e.statusDetail,summary:e.summary,triggerLabel:e.triggerLabel}}const YI=sd({id:"run_citypoint_visibility_20260308",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T12:15:00.000Z",startedAt:"Mar 8, 12:15 PM",duration:"6m 12s",statusDetail:"18 tracked queries checked; 3 citation losses detected on emergency-intent prompts.",summary:"Citation losses on emergency-intent prompts",triggerLabel:"Scheduled"}),XI=sd({id:"run_citypoint_queued_20260309",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"queued",createdAt:"2026-03-09T08:05:00.000Z",startedAt:"Mar 9, 8:05 AM",duration:"Waiting for slot",statusDetail:"Ready to enqueue after the next provider rate window clears.",summary:"Queued follow-up after local ranking movement",triggerLabel:"Manual"}),JI=sd({id:"run_harbor_visibility_20260308",projectId:"project_harbor",projectName:"Harbor Legal Group",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T11:05:00.000Z",startedAt:"Mar 8, 11:05 AM",duration:"5m 07s",statusDetail:"12 tracked queries checked; local-intent visibility held steady across branded prompts.",summary:"Branded prompts remain stable",triggerLabel:"Scheduled"}),WI=sd({id:"run_northstar_visibility_20260308",projectId:"project_northstar",projectName:"Northstar Orthopedics",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"running",createdAt:"2026-03-08T13:40:00.000Z",startedAt:"Mar 8, 1:40 PM",duration:"3m 10s",statusDetail:"Provider responses still in flight for 9 multi-location prompts.",summary:"Mid-run on treatment-location prompts",triggerLabel:"Manual"}),eL=[{id:"evidence_citypoint_emergency_gemini",query:"emergency dentist brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"lost",changeLabel:"Lost since Mar 5",answerSnippet:"For urgent dental care in Brooklyn, Downtown Smiles and Harbor Dental are now cited first for emergency availability and same-day booking.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:["https://downtownsmiles.com/emergency-dentist-brooklyn","https://harbordental.com/same-day-emergency-care"],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing on the emergency service page","llms.txt not found during latest site audit","Location pages link weakly into the emergency care hub"],summary:"AI answers now cite two competitors while your emergency page is no longer grounded.",runHistory:ca(["cited","cited","cited","cited","cited","cited","cited","not-cited","not-cited"])},{id:"evidence_citypoint_emergency_openai",query:"emergency dentist brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"Cited for 6 runs",answerSnippet:"Citypoint Dental is listed as a top emergency dentist in Brooklyn for same-day appointments and walk-in availability.",citedDomains:["citypointdental.com","downtownsmiles.com"],evidenceUrls:["https://citypointdental.com/emergency-dentist-brooklyn"],competitorDomains:["downtownsmiles.com"],groundingSources:[],relatedTechnicalSignals:["Emergency page indexed with structured data"],summary:"OpenAI cites your emergency page consistently alongside one competitor.",runHistory:ca(["not-cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_emergency_claude",query:"emergency dentist brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"Based on the search results, top-rated emergency dental practices in Brooklyn include Downtown Smiles and Harbor Dental.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:[],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing","llms.txt not found"],summary:"Claude does not cite your domain for this emergency query.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_invisalign_openai",query:"best invisalign dentist downtown brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"emerging",changeLabel:"First citation in 7 days",answerSnippet:"Citypoint Dental appears as an emerging recommendation for Invisalign in Downtown Brooklyn, supported by recent before-and-after case pages.",citedDomains:["citypointdental.com","clearlineortho.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn","https://citypointdental.com/case-studies/invisalign-open-bite"],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["Structured data now present on two case-study pages","Internal links from service pages to case studies improved crawl depth"],summary:"Fresh case-study content is starting to earn citations on Invisalign prompts.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","cited"])},{id:"evidence_citypoint_invisalign_gemini",query:"best invisalign dentist downtown brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"cited",changeLabel:"Cited for 8 runs",answerSnippet:"Citypoint Dental in Downtown Brooklyn is highlighted for its Invisalign expertise and patient outcomes.",citedDomains:["citypointdental.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn"],competitorDomains:[],groundingSources:[],relatedTechnicalSignals:["Case study pages well-indexed"],summary:"Gemini consistently cites your Invisalign page with no competitor overlap.",runHistory:ca(["cited","cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_invisalign_claude",query:"best invisalign dentist downtown brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For Invisalign in Downtown Brooklyn, Clear Line Ortho and Brooklyn Smiles are frequently recommended for their experienced orthodontists.",citedDomains:["clearlineortho.com","brooklynsmiles.com"],evidenceUrls:[],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["No before/after schema on case study pages"],summary:"Claude does not surface your Invisalign content despite strong page quality.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_claude",query:"pediatric dentist brooklyn heights",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 4 runs",answerSnippet:"Answers cite neighborhood-specific pediatric practices with stronger family-focused FAQ content and clearer insurance details.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:["https://brightkidsdental.com/pediatric-dentist-brooklyn-heights","https://parkpediatricdental.com/insurance"],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric service page exists for Brooklyn Heights","Insurance content is buried three clicks deep"],summary:"Coverage gap is content-driven, not purely technical.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_gemini",query:"pediatric dentist brooklyn heights",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For pediatric dentistry in Brooklyn Heights, Bright Kids Dental and Park Pediatric Dental are cited for family-friendly care.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:[],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric page for Brooklyn Heights"],summary:"Gemini does not surface your domain for pediatric queries in this area.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_openai",query:"pediatric dentist brooklyn heights",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"First citation this month",answerSnippet:"Citypoint Dental is mentioned as offering pediatric services in Brooklyn, though specialized pediatric-only practices are also highlighted.",citedDomains:["citypointdental.com","brightkidsdental.com"],evidenceUrls:["https://citypointdental.com/family-dentistry"],competitorDomains:["brightkidsdental.com"],groundingSources:[],relatedTechnicalSignals:["Family dentistry page recently updated"],summary:"OpenAI recently started citing your family dentistry page for this query.",runHistory:ca(["not-cited","not-cited","not-cited","not-cited","not-cited","cited"])}];sf[0],Math.round(1/9*100),Math.round(2/9*100),sf[1],ca(["cited","cited","cited","cited","cited"]),sf[2],Math.round(2/7*100),Math.round(3/7*100),ca(["not-cited","not-cited","not-cited","cited"]);function tL(e,t){return e.runs.find(i=>i.id===t)}function nL(e,t){for(const i of e.projects){const s=i.visibilityEvidence.find(r=>r.id===t);if(s)return{project:i,evidence:s}}}function aL(e,t,i){if(e){const s=e.visibilityEvidence.find(r=>r.id===i);if(s)return{project:e,evidence:s}}if(t)return nL(t,i)}const iL={regression:"negative",gain:"positive",opportunity:"caution","first-citation":"positive","provider-pickup":"positive","persistent-gap":"caution","competitor-gained":"negative","competitor-lost":"neutral","gbp-lodging-gap":"negative","gbp-listing-discrepancy":"negative","gbp-cta-gap":"caution","gbp-description-missing":"caution","gbp-metric-drop":"negative","gbp-keyword-drop":"negative"},sL={opportunity:"write","persistent-gap":"write","competitor-gained":"write","competitor-lost":"write",regression:"investigate",gain:"monitor","first-citation":"monitor","provider-pickup":"monitor","gbp-lodging-gap":"write","gbp-listing-discrepancy":"write","gbp-cta-gap":"write","gbp-description-missing":"write","gbp-metric-drop":"investigate","gbp-keyword-drop":"investigate"},oL={regression:"lost",gain:"emerging",opportunity:"not-cited","first-citation":"emerging","provider-pickup":"emerging","persistent-gap":"not-cited","competitor-gained":"cited","competitor-lost":"not-cited","gbp-lodging-gap":"not-cited","gbp-listing-discrepancy":"not-cited","gbp-cta-gap":"not-cited","gbp-description-missing":"not-cited","gbp-metric-drop":"lost","gbp-keyword-drop":"lost"},rL={regression:"Regression",gain:"Gain",opportunity:"Opportunity","first-citation":"First citation","provider-pickup":"Pickup","persistent-gap":"Gap","competitor-gained":"Competitor","competitor-lost":"Competitor","gbp-lodging-gap":"Lodging gap","gbp-listing-discrepancy":"Listing gap","gbp-cta-gap":"Booking CTA","gbp-description-missing":"Description gap","gbp-metric-drop":"Metric drop","gbp-keyword-drop":"Keyword drop"};function lL(e){return{id:e.id,tone:iL[e.type],title:e.title,detail:e.cause?.details??e.cause?.cause??"",actionLabel:e.recommendation?.action??rL[e.type],actionGroup:sL[e.type],affectedPhrases:[{query:e.query,evidenceId:"",provider:e.provider,citationState:oL[e.type]}]}}function cL(e){return e.filter(t=>!t.dismissed).map(lL)}function t3(e){return{id:e.id,name:e.name,displayName:e.displayName,canonicalDomain:e.canonicalDomain,ownedDomains:e.ownedDomains??[],aliases:e.aliases??[],country:e.country,language:e.language,tags:e.tags,labels:e.labels,providers:e.providers??[],providerModels:e.providerModels??{},measurement:e.measurement,locations:e.locations??[],defaultLocation:e.defaultLocation??null,autoExtractBacklinks:e.autoExtractBacklinks??!1,configSource:e.configSource,configRevision:e.configRevision,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Qv(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}function uL(e,t){if(!e)return"Waiting";if(!t)return"Running";const i=new Date(t).getTime()-new Date(e).getTime();if(i<1e3)return"<1s";const s=Math.floor(i/1e3);if(s<60)return`${s}s`;const r=Math.floor(s/60),u=s%60;return`${r}m ${u}s`}function n3(e){switch(e){case Oe["answer-visibility"]:return"Answer visibility sweep";case Oe["gsc-sync"]:return"GSC sync";case Oe["inspect-sitemap"]:return"Sitemap inspection";case Oe["ga-sync"]:return"GA sync";case Oe["traffic-sync"]:return"Traffic sync";case Oe["bing-inspect"]:return"Bing URL inspection";case Oe["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Oe["site-audit"]:return"Site audit";case Oe["backlink-extract"]:return"Backlink extract";case Oe["aeo-discover-seed"]:return"Discovery (seed phase)";case Oe["aeo-discover-probe"]:return"Discovery (probe phase)";case Oe["gbp-sync"]:return"Business Profile sync";case Oe["ads-sync"]:return"ChatGPT ads sync"}}function dL(e){return e===Ao.manual?"Manual":e===Ao.scheduled?"Scheduled":e===Ao["config-apply"]?"Config apply":e}function od(e,t){return{id:e.id,projectId:e.projectId,projectName:t,kind:e.kind,kindLabel:n3(e.kind),status:e.status,trigger:e.trigger??"manual",location:e.location??null,createdAt:e.createdAt,startedAt:e.startedAt?Qv(e.startedAt):Qv(e.createdAt),duration:uL(e.startedAt??null,e.finishedAt??null),statusDetail:e.error?a3(e.error):mL(e),summary:pL(e),triggerLabel:dL(e.trigger)}}function a3(e){const t=T0(e);return t.length>200?t.slice(0,200)+"…":t}function mL(e){switch(e.status){case dn.queued:return"Waiting for execution slot.";case dn.running:return"Provider queries in progress.";case dn.completed:return"All queries checked.";case dn.partial:return"Run completed with some queries skipped.";case dn.failed:return e.error?a3(e.error):"Run failed.";case dn.cancelled:return"Run was cancelled.";default:return""}}function pL(e){const t=n3(e.kind);switch(e.status){case dn.queued:return`${t} queued`;case dn.running:return`${t} in progress`;case dn.completed:return`${t} completed`;case dn.partial:return`${t} partially completed`;case dn.failed:return`${t} failed`;case dn.cancelled:return`${t} cancelled`;default:return e.status}}function fL(e,t,i,s){const r=[];let u=0;const d=new Set;if(i.length>0){const g=i.flatMap(T=>T.snapshots??[]),b=new Map;for(const T of g)if(T.query){const N=`${T.query}::${T.provider}::${T.location??""}`;b.set(N,T)}const v=new Set(g.map(T=>T.location??null));v.size===0&&v.add(null);const x=new Set(g.map(T=>T.provider)),S=new Set(t.flatMap(T=>Object.keys(T.providerRuns??{}))),j=[...new Set([...x,...S])].sort(),_=j.length>0?j:["gemini"];for(const T of t){if(T.runs.length===0)continue;d.add(T.query);const N=T.runs.at(-1),C=N?.transition??"not-cited";for(const O of _){const I=[...v].filter(Z=>b.has(`${T.query}::${O}::${Z??""}`)),$=(T.providerRuns?.[O]?.length??0)>0,K=I.length>0?I:$?[null]:[];for(const Z of K){const se=Z??"",R=b.get(`${T.query}::${O}::${se}`),q=R?.model??null,pe=q?`${O}:${q}`:null,ue=T.providerRuns?.[O],fe=pe?T.modelRuns?.[pe]:void 0,we=Qe=>Qe?.filter(Xe=>(Xe.location??null)===Z),Te=I.length>0?we(ue):ue,it=I.length>0?we(fe):fe,ge=(Te?.length?Te:null)??(it?.length?it:null),Q=Te?.length?"provider":it?.length?"model":"query",oe=ge?ge.at(-1).transition:C,me=ge?ge.at(-1).visibilityTransition??(ge.at(-1).visibilityState==="visible"?"visible":"not-visible"):N?.visibilityTransition??(N?.visibilityState==="visible"?"visible":"not-visible"),Ce=ge?.at(-1)?.citationState,ce=ge?.at(-1)?.visibilityState,He=R?oe==="lost"?"lost":oe==="emerging"?"emerging":R.citationState===Tu.cited?"cited":"not-cited":Ce===Tu.cited?"cited":"not-cited",ne=R?.visibilityState??(ce==="visible"?"visible":ce==="pending"?"pending":"not-visible"),H=Zv(ge||T.runs),X=Fv(ge||T.runs),ie=hL(T,O),re=(ge??T.runs).map(Qe=>({runId:Qe.runId,citationState:Qe.citationState,createdAt:Qe.createdAt,model:ie.get(Qe.runId)??null,answerMentioned:Qe.answerMentioned,visibilityState:Qe.visibilityState,visibilityTransition:Qe.visibilityTransition,mentionState:Qe.mentionState,mentionTransition:Qe.mentionTransition})),ze=gL(re),ct=Q==="provider"&&ze.length<=1?"model":Q,_e=yL(re);r.push({id:`evidence_${e}_${u++}`,query:T.query,provider:R?.provider??O,model:R?.model??null,location:R?.location??Z,citationState:He,answerMentioned:R?.answerMentioned,visibilityState:ne,visibilityChangeLabel:Yv(me,X,{positive:"visible",negative:"not visible",first:"first visibility"}),changeLabel:Yv(oe,H),answerSnippet:R?.answerText??"",citedDomains:R?.citedDomains??[],evidenceUrls:[],competitorDomains:R?.competitorOverlap??[],recommendedCompetitors:R?.recommendedCompetitors??[],matchedTerms:R?.matchedTerms??[],relatedTechnicalSignals:[],groundingSources:R?.groundingSources??[],searchQueries:R?.searchQueries??[],summary:bL(ne,me,T.query),runHistory:re,historyScope:ct,modelsSeen:ze,modelTransitions:_e})}}}}for(const g of s)d.has(g.query)||r.push({id:`evidence_${e}_${u++}`,query:g.query,provider:"",model:null,location:null,citationState:"pending",visibilityState:"pending",visibilityChangeLabel:"Awaiting first run",changeLabel:"Awaiting first run",answerSnippet:"",citedDomains:[],evidenceUrls:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],relatedTechnicalSignals:[],groundingSources:[],searchQueries:[],summary:`"${g.query}" has been added but no visibility run has been triggered yet.`,runHistory:[],historyScope:"query",modelsSeen:[],modelTransitions:[]});return r}function hL(e,t){const i=new Map,s=`${t}:`;for(const[r,u]of Object.entries(e.modelRuns??{})){if(!r.startsWith(s))continue;const d=r.slice(s.length),g=d==="unknown"?null:d;for(const b of u)i.set(b.runId,g)}return i}function gL(e){const t=new Set;for(const i of e)i.model&&t.add(i.model);return[...t]}function yL(e){const t=[];let i=null;for(const s of e){const r=s.model??null;r!==i&&i!==null&&t.push({runId:s.runId,createdAt:s.createdAt,fromModel:i,toModel:r}),i=r}return t}function Zv(e){if(e.length===0)return 0;const t=e[e.length-1].citationState;let i=0;for(let s=e.length-1;s>=0&&e[s].citationState===t;s--)i++;return i}function Fv(e){if(e.length===0)return 0;const t=e[e.length-1].visibilityState??"not-visible";let i=0;for(let s=e.length-1;s>=0&&(e[s].visibilityState??"not-visible")===t;s--)i++;return i}function Yv(e,t,i){const s={positive:i?.positive??"cited",negative:i?.negative??"not cited",first:i?.first??"first citation"};switch(e){case"new":return"First observation";case"cited":case"visible":return t<=1?`${al(s.positive)} in latest run`:`${al(s.positive)} for ${t} runs`;case"lost":return"Lost since last run";case"emerging":return al(s.first);case"not-cited":case"not-visible":return t<=1?`${al(s.negative)} in latest run`:`${al(s.negative)} across ${t} runs`;default:return e}}function al(e){return e.charAt(0).toUpperCase()+e.slice(1)}function bL(e,t,i){switch(t){case"lost":return`Mention was lost for "${i}". Your brand no longer appeared in the latest answer.`;case"emerging":return`Your brand started appearing in AI answers for "${i}".`}switch(e){case"visible":return`Your brand or domain is mentioned in AI answers for "${i}".`;case"pending":return`"${i}" has been added but no run has been triggered yet.`;default:return`Your brand or domain was not mentioned in AI answers for "${i}".`}}function i3(e){const t=t3(e.project),i=fL(t.name,e.timeline,e.latestRunDetails,e.queries),r=[...e.runs].sort((u,d)=>d.createdAt.localeCompare(u.createdAt)).map(u=>od(u,e.project.displayName||e.project.name));return e.overview?vL(t,e.overview,i,r):kL(t,i,r)}function vL(e,t,i,s){const r=cL(t.topInsights);for(const u of t.attentionItems)u.id.startsWith("insight_")||r.push({id:u.id,tone:u.tone,title:u.title,detail:u.detail,actionLabel:u.actionLabel,actionGroup:"investigate",affectedPhrases:[]});return{project:e,dateRangeLabel:t.dateRangeLabel,contextLabel:t.contextLabel,mentionSummary:t.scores.mention,visibilitySummary:t.scores.visibility,mentionShareSummary:t.scores.mentionShare,queryCounts:{cited:t.queryCounts.citedQueries,total:t.queryCounts.totalQueries},gapQueries:t.scores.gapQueries,mentionGaps:t.scores.mentionGaps,indexCoverage:t.scores.indexCoverage,providerScores:t.providerScores,competitorPressure:t.scores.competitorPressure,runStatus:t.scores.runStatus,citationMovement:t.citationMovement,mentionMovement:t.mentionMovement,movementComparison:t.movementComparison,insights:r,visibilityEvidence:i,competitors:t.competitors.map(u=>({id:u.id,domain:u.domain,citationCount:u.citationCount,totalQueries:u.totalQueries,pressureLabel:u.pressureLabel,citedQueries:u.citedQueries,movement:"",notes:""})),recentRuns:s.slice(0,5),suggestedQueries:t.suggestedQueries}}function kL(e,t,i){const s={label:"",value:"No data",delta:"Loading…",tone:"neutral",description:"",tooltip:"",trend:[]};return{project:e,dateRangeLabel:"All time",contextLabel:`${e.country} / ${e.language.toUpperCase()}`,mentionSummary:{...s,label:"Mention Coverage"},visibilitySummary:{...s,label:"Citation Coverage"},mentionShareSummary:{...s,label:"Mention Share",breakdown:{projectMentionSnapshots:0,competitorMentionSnapshots:0,perCompetitor:[],snapshotsWithAnswerText:0,snapshotsTotal:0}},queryCounts:{cited:0,total:0},gapQueries:{...s,label:"Citation Gaps"},mentionGaps:{...s,label:"Mention Gaps"},indexCoverage:{...s,label:"Index Coverage"},providerScores:[],competitorPressure:{...s,label:"Competitor Pressure"},runStatus:{...s,label:"Run Status"},citationMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},mentionMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},movementComparison:{hasPreviousRun:!1,comparable:!1,querySetChanged:!1,previousRunAt:null,currentQueryCount:0,previousQueryCount:0,comparableQueryCount:0,addedQueryCount:0,removedQueryCount:0,addedQueries:[],removedQueries:[]},insights:[],visibilityEvidence:t,competitors:[],recentRuns:i.slice(0,5),suggestedQueries:{rows:[],totalCandidates:0,skippedAlreadyTracked:0}}}function wL(e){const t=t3(e.project),i=[...e.runs].sort((j,_)=>_.createdAt.localeCompare(j.createdAt)),s=i.find(j=>j.kind===Oe["answer-visibility"])??i[0]??e.overview?.latestRun?.run??void 0,r=e.project.displayName||e.project.name,u=s?od(s,r):xL(e.project.id,r),d=e.overview;if(!d)return{project:t,mentionScore:0,mentionDelta:"No data",mentionTone:"neutral",lastRun:u,insight:"No runs completed yet.",trend:[],competitorPressureLabel:"None"};const g=d.scores.mention,b=g.progress??0,v=d.queryCounts.mentionedQueries,x=d.queryCounts.totalQueries,S=d.providers.length;return{project:t,mentionScore:b,mentionDelta:x>0?`${v} of ${x} queries`:"No data",mentionTone:g.tone,providerCoverage:g.providerCoverage,lastRun:u,insight:x>0?`${v} of ${x} queries mentioned across ${S} provider${S===1?"":"s"}.`:"No runs completed yet.",trend:g.trend??[],competitorPressureLabel:d.scores.competitorPressure.value}}function xL(e,t){return{id:"none",projectId:e,projectName:t,kind:Oe["answer-visibility"],kindLabel:"No runs yet",status:dn.queued,trigger:Ao.manual,createdAt:"",startedAt:"",duration:"",statusDetail:"",summary:"No runs yet",triggerLabel:""}}function SL(e,t){const i=[],s=[],r=[];for(const d of e){s.push(i3(d)),r.push(wL(d));const g=[...d.runs].sort((b,v)=>v.createdAt.localeCompare(b.createdAt));for(const b of g)i.push(od(b,d.project.displayName||d.project.name))}i.sort((d,g)=>g.createdAt.localeCompare(d.createdAt));const u=e.length>0;return{portfolioOverview:{projects:r,attentionItems:u?jL(s):[{id:"attention_setup",tone:"neutral",title:"No projects yet",detail:"Create your first project using the setup wizard, CLI, or API.",actionLabel:"Open setup",href:"/setup"}],recentRuns:i.slice(0,5),systemHealth:[{id:"api",label:"API",tone:"positive",detail:"Connected",meta:"Real-time data"},{id:"provider",label:"Gemini",tone:"positive",detail:"Configured",meta:"Provider active"}],...u?{}:{emptyState:{title:"No projects yet",detail:"Canonry becomes useful after one project, a small query set, and one competitor list are in place.",ctaLabel:"Launch setup",ctaHref:"/setup"}}},projects:s,runs:i,setup:{healthChecks:[{id:"api",label:"API reachable",detail:"API is responding.",state:"ready",guidance:"Required for project creation and run history."},{id:"provider",label:"Provider configured",detail:"Gemini key is configured.",state:"ready",guidance:"Required for answer-visibility sweeps."}],projectDraft:{name:"",canonicalDomain:"",country:"US",language:"en"},queryImportState:{mode:"paste",queryCount:0,preview:[]},competitorDraft:{domains:[],notes:"Use the CLI to add competitors."},launchState:{enabled:u,ctaLabel:u?"Trigger run":"Create a project first",summary:u?"Ready to run.":"Create a project first to launch a run."}},settings:{providerStatuses:(t?.providers??[]).map(d=>({name:d.name,displayName:d.displayName,keyUrl:d.keyUrl,modelHint:d.modelHint,model:d.model,defaultModel:d.defaultModel,state:d.configured?"ready":"needs-config",detail:d.configured?"Provider is configured.":"API key is missing.",quota:d.quota})),google:{state:t?.google?.configured?"ready":"needs-config",detail:t?.google?.configured?"Google OAuth app credentials are configured. Project-level GSC connections can be created from the dashboard.":"Google OAuth client ID and client secret are not configured yet."},bing:{state:t?.bing?.configured?"ready":"needs-config",detail:t?.bing?.configured?"Bing Webmaster Tools API key is configured. Project-level Bing connections can be created from the dashboard.":"Bing Webmaster Tools API key is not configured yet."},selfHostNotes:["Configuration is stored in ~/.canonry/config.yaml.","The local config file is the source of truth for authentication credentials.","Google OAuth app credentials and per-domain Google tokens are stored in local config, not the database.","Database is SQLite at ~/.canonry/data.db.","API key was auto-generated during canonry init."],bootstrapNote:"Use the UI, CLI, or ~/.canonry/config.yaml to manage settings. Authentication credentials persist to local config."}}}function jL(e){const t=[];for(const i of e){const s=i.visibilityEvidence.filter(u=>u.citationState==="lost");s.length>0&&t.push({id:`attention_${i.project.id}_lost`,tone:"negative",title:`${i.project.displayName||i.project.name} lost citations`,detail:`${s.length} quer${s.length>1?"ies":"y"} lost citation.`,actionLabel:"Open project",href:`/projects/${encodeURIComponent(i.project.name)}`});const r=i.recentRuns.filter(u=>u.status===dn.running||u.status===dn.queued);r.length>0&&t.push({id:`attention_${i.project.id}_active`,tone:"neutral",title:`${i.project.displayName||i.project.name} has active runs`,detail:`${r.length} run${r.length>1?"s":""} in progress.`,actionLabel:"View runs",href:"/runs"})}return t.length===0&&t.push({id:"attention_stable",tone:"positive",title:"All projects stable",detail:"No citation losses or active runs to flag."}),t}const s3=B.createContext(null);s3.Provider;function Dl(){return B.useContext(s3)}function rd(e,t={}){const s=Dl()?.dashboard??null,r=t.includeSettings??!0,{isAdmin:u}=xl(),d=mn({...nd({client:le}),enabled:!s,refetchInterval:GA}),g=mn({...J0({client:le,query:{kind:"answer-visibility"}}),enabled:!s,staleTime:zo,refetchInterval:O=>O.state.data?.some(K=>K.status==="running"||K.status==="queued")?3e3:zo}),b=mn({...VB({client:le}),enabled:!s&&r&&u}),v=d.data??[],x=g.data??[],S=s4({queries:v.map(O=>{const I=x.filter(Z=>Z.projectId===O.id),$=I.filter(Z=>(Z.status==="completed"||Z.status==="partial")&&Z.kind==="answer-visibility"&&Z.trigger!=="probe").sort((Z,se)=>se.createdAt.localeCompare(Z.createdAt)),K=$.length>0?$[0].id:"no-run";return{queryKey:["project-overview-slim",O.id,K],queryFn:async()=>{const Z=await Z2(O.name).catch(()=>null);return{project:O,runs:I,queries:[],competitors:[],timeline:[],latestRunDetails:[],previousRunDetails:[],gscCoverage:null,bingCoverage:null,dbInsights:null,overview:Z}},enabled:!s&&d.isSuccess&&g.isSuccess,staleTime:yf}})}),j=S.every(O=>O.isSuccess),_=B.useMemo(()=>{if(s)return s;if(!d.data||!g.data||v.length>0&&!j)return null;const O=S.map(I=>I.data?{...I.data,runs:x.filter($=>$.projectId===I.data.project.id)}:null).filter(I=>I!=null);return SL(O,b.data??null)},[s,d.data,g.data,b.data,j,S,v.length,x]),T=!s&&(d.isError||g.isError),N=!s&&!_&&!T,C=B.useCallback(async()=>{const O=[d.refetch(),g.refetch(),...S.map(I=>I.refetch())];r&&O.push(b.refetch()),await Promise.all(O)},[r,S,d.refetch,g.refetch,b.refetch]);return{dashboard:_,isLoading:N,isError:T,refetch:C}}const AL=20;function NL(e){const t=Dl(),i=B.useMemo(()=>!t||!e?null:t.dashboard.projects.find(N=>N.project.name===e)??null,[t,e]),s=mn({...jB({client:le,path:{name:e??""}}),enabled:!!e&&!i,staleTime:yf,refetchOnWindowFocus:"always"}),r=mn({...qB({client:le,path:{name:e??""},query:{kind:"answer-visibility"}}),enabled:!!e,staleTime:zo,refetchOnWindowFocus:"always",refetchInterval:N=>N.state.data?.some(I=>I.projectId===s.data?.id&&(I.status==="running"||I.status==="queued"))?3e3:zo}),u=s.data??null,d=B.useMemo(()=>u?(r.data??[]).filter(N=>N.projectId===u.id):[],[u,r.data]),{latestRunIds:g,previousRunIds:b,latestRunIdsKey:v,latestVisibilityRevision:x}=B.useMemo(()=>{const N=d.filter(K=>(K.status==="completed"||K.status==="partial")&&K.kind==="answer-visibility"&&K.trigger!=="probe").sort((K,Z)=>Z.createdAt.localeCompare(K.createdAt)),C=N[0]?.createdAt??null,O=C?N.filter(K=>K.createdAt===C).map(K=>K.id):[],I=N.find(K=>K.createdAt!==C)?.createdAt??null,$=I?N.filter(K=>K.createdAt===I).map(K=>K.id):[];return{latestRunIds:O,previousRunIds:$,latestRunIdsKey:[...O].sort().join(","),latestVisibilityRevision:C?`${C}:${[...O].sort().join(",")}`:"none"}},[d]),S=mn({queryKey:["project-dashboard-full",u?.id??null,v||"none"],queryFn:async()=>{if(!u||!e)return null;const[N,C,O,I,$,K,Z,se,R]=await Promise.all([Q2(e).catch(()=>[]),fA(e).catch(()=>[]),hA(e,void 0,AL).catch(()=>[]),g.length?Promise.all(g.map(q=>ku(q).catch(()=>null))).then(q=>q.filter(pe=>pe!=null)):Promise.resolve([]),b.length?Promise.all(b.map(q=>ku(q).catch(()=>null))).then(q=>q.filter(pe=>pe!=null)):Promise.resolve([]),EA(e).catch(()=>null),OA(e).catch(()=>null),RA(e).catch(()=>null),Z2(e).catch(()=>null)]);return{project:u,runs:d,queries:N,competitors:C,timeline:O,latestRunDetails:I,previousRunDetails:$,gscCoverage:K,bingCoverage:Z,dbInsights:se,overview:R}},enabled:!!u&&!!e&&r.isSuccess,staleTime:yf,refetchOnWindowFocus:"always"}),j=B.useMemo(()=>S.data?i3({...S.data,runs:d}):i||null,[S.data,d,i]),_=B.useCallback(async()=>{await Promise.all([s.refetch(),r.refetch(),S.refetch()])},[s.refetch,r.refetch,S.refetch]),T=!j&&(s.isLoading||r.isLoading||S.isLoading);return{commandCenter:j,project:u,isLoading:T,isError:s.isError||r.isError||S.isError,latestVisibilityRevision:x,refetch:_}}const _L=["health"];async function CL(){const e=await BA("/health","API"),t=e.state==="ok"?{label:"Worker",state:"ok",detail:"In-process job runner"}:{label:"Worker",state:e.state,detail:`Depends on API health check · ${e.detail}`,statusCode:e.statusCode,hint:e.hint?`Worker status is inferred from API health in this deployment mode. ${e.hint}`:"Worker status is inferred from API health in this deployment mode."};return{apiStatus:e,workerStatus:t}}function ah(e,t){return mn({queryKey:_L,queryFn:CL,enabled:e,refetchInterval:15e3,initialData:t})}function zL(e){return mn({...Ex({client:le,path:{id:e??""}}),enabled:!!e,refetchInterval:t=>{const i=t.state.data?.status;return i==="running"||i==="queued"?3e3:!1}})}function ih(){const e=Iu(),t=o4({strict:!1}),i=r4({select:b=>b.location.pathname}),s=t.runId??null,r=t.evidenceId??null;return{runId:s,evidenceId:r,openRun:b=>{e({to:i,from:hn.to,search:v=>({...v,runId:b,evidenceId:void 0})})},openEvidence:b=>{e({to:i,from:hn.to,search:v=>({...v,evidenceId:b,runId:void 0})})},closeDrawer:()=>{e({to:i,from:hn.to,search:b=>({...b,runId:void 0,evidenceId:void 0})})}}}const EL={negative:"toast-card-negative",caution:"toast-card-caution",positive:"toast-card-positive",neutral:"toast-card-neutral"};function TL(e){if(e.cta)return`${e.cta.label}: ${e.title}`}function DL(){const e=B.useSyncExternalStore(VA,wb,wb),t=Iu(),{openRun:i}=ih(),s=B.useCallback(u=>{gf(u)},[]),r=B.useCallback(u=>{u.cta&&(u.cta.intent==="open-run-drawer"?i(u.cta.runId):t({to:"/runs"}),gf(u.id))},[t,i]);return e.length===0?null:m.jsx("div",{className:"toast-viewport","aria-label":"Notifications",children:e.map(u=>m.jsxs("section",{role:u.tone==="negative"?"alert":"status","aria-live":u.tone==="negative"?"assertive":"polite","data-state":u.state,className:`toast-card ${EL[u.tone]}`,children:[m.jsxs("div",{className:"toast-copy",children:[m.jsx("p",{className:"toast-title",children:u.title}),u.detail?m.jsx("p",{className:"toast-detail",children:u.detail}):null,u.cta?m.jsx("button",{type:"button",className:"toast-action",onClick:()=>r(u),"aria-label":TL(u),children:u.cta.label}):null]}),m.jsx("button",{type:"button",onClick:()=>s(u.id),className:"toast-dismiss","aria-label":"Dismiss",children:m.jsx($o,{className:"size-3.5"})})]},u.id))})}function cl(e){switch(e){case Oe["answer-visibility"]:return"Visibility sweep";case Oe["gsc-sync"]:return"GSC sync";case Oe["inspect-sitemap"]:return"Sitemap inspection";case Oe["ga-sync"]:return"GA sync";case Oe["traffic-sync"]:return"Traffic sync";case Oe["bing-inspect"]:return"Bing URL inspection";case Oe["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Oe["site-audit"]:return"Technical audit";case Oe["backlink-extract"]:return"Backlink extract";case Oe["aeo-discover-seed"]:return"Discovery (seed phase)";case Oe["aeo-discover-probe"]:return"Discovery (probe phase)";case Oe["gbp-sync"]:return"Business Profile sync";case Oe["ads-sync"]:return"ChatGPT ads sync"}}function Xv(e){return e==="running"?"Running":e==="queued"?"Queued":e==="partial"?"Partial":e==="completed"?"Completed":e==="failed"?"Failed":e==="cancelled"?"Cancelled":"Starting"}function OL(){const e=B.useSyncExternalStore(Rx,Ya,Ya),t=B.useMemo(()=>Object.values(e.runs),[e.runs]),i=t.length>0,s=mn({...J0({client:le}),enabled:i,staleTime:zo}),r=B.useMemo(()=>new Map((s.data??[]).map(g=>[g.id,g.status])),[s.data]);if(!i)return null;const u=t.map(g=>({...g,status:r.get(g.runId)??g.lastAnnouncedStatus})),d=u.length===1?cl(u[0].kind):`${u.length} active tasks`;return m.jsxs("div",{className:"task-center",children:[m.jsxs("p",{className:"sr-only",role:"status","aria-live":"polite",children:[u.length," active ",u.length===1?"task":"tasks","."," ",u.map(g=>`${cl(g.kind)} ${Xv(g.status)}`).join(". "),"."]}),m.jsxs("details",{className:"task-center-details",children:[m.jsxs("summary",{className:"task-center-trigger",children:[m.jsx(ak,{className:"size-3.5 shrink-0 motion-safe:animate-spin","aria-hidden":"true"}),m.jsx("span",{className:"task-center-summary",children:d}),m.jsx("span",{className:"task-center-count","aria-hidden":"true",children:u.length}),m.jsx(nk,{className:"task-center-chevron size-3.5 shrink-0","aria-hidden":"true"})]}),m.jsxs("div",{className:"task-center-panel",children:[m.jsxs("div",{className:"task-center-heading",children:[m.jsx("span",{children:"Active tasks"}),m.jsx("span",{className:"tabular-nums text-faint",children:u.length})]}),m.jsx("ul",{className:"task-center-list",children:u.map(g=>m.jsxs("li",{className:"task-center-item",children:[m.jsxs("div",{className:"min-w-0",children:[m.jsx("p",{className:"truncate text-[13px] font-medium text-strong",children:cl(g.kind)}),m.jsx("p",{className:"mt-0.5 truncate text-xs text-muted",children:g.projectLabel??g.projectId})]}),m.jsx(An,{tone:g.status==="failed"?"negative":g.status==="partial"?"caution":"neutral",children:Xv(g.status)})]},g.runId))}),m.jsx(We,{to:"/runs",className:"task-center-footer-link",children:"View all runs"})]})]})]})}function RL(e,t={}){const{threshold:i=80}=t,s=B.useRef(null),r=B.useRef({scrollHeight:0,wasAtEnd:!0});function u(b){return b.scrollHeight-b.scrollTop-b.clientHeight}function d(){const b=s.current;return b?u(b)<=i:!0}function g(){const b=s.current;b&&(b.scrollTop=b.scrollHeight,r.current.wasAtEnd=!0,r.current.scrollHeight=b.scrollHeight)}return B.useEffect(()=>{const b=s.current;if(!b)return;const v=()=>{r.current.wasAtEnd=u(b)<=i};return b.addEventListener("scroll",v,{passive:!0}),()=>b.removeEventListener("scroll",v)},[i]),B.useLayoutEffect(()=>{const b=s.current;if(!b)return;const v=b.scrollHeight;v>r.current.scrollHeight&&r.current.wasAtEnd&&(b.scrollTop=v),r.current.scrollHeight=v},e),B.useEffect(()=>{const b=s.current;if(!b||typeof ResizeObserver>"u")return;const v=new ResizeObserver(()=>{const x=b.scrollHeight;x>r.current.scrollHeight&&r.current.wasAtEnd&&(b.scrollTop=x),r.current.scrollHeight=x});return v.observe(b),b.firstElementChild&&v.observe(b.firstElementChild),()=>v.disconnect()},[]),{ref:s,scrollToEnd:g,isAtEnd:d}}async function sh(e){try{return await e.json()}catch{return{}}}function ML(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const oh=ML();function rh(e){e===401&&Wf()}async function Jv(e){const t=await fetch(`${oh}/projects/${encodeURIComponent(e)}/agent/transcript`,{credentials:"include"});if(!t.ok){rh(t.status);const i=await sh(t);throw new Mn(i.error?.message??`transcript fetch failed: ${t.status}`,t.status,i.error?.code)}return await t.json()}async function BL(e){const t=await fetch(`${oh}/projects/${encodeURIComponent(e)}/agent/transcript`,{method:"DELETE",credentials:"include"});if(!t.ok){rh(t.status);const i=await sh(t);throw new Mn(i.error?.message??`reset failed: ${t.status}`,t.status,i.error?.code)}}async function qL({project:e,prompt:t,provider:i,modelId:s,scope:r,profile:u,signal:d,onEvent:g}){const b={prompt:t};i&&(b.provider=i),s&&(b.modelId=s),r&&(b.scope=r),u&&(b.profile=u);const v=await fetch(`${oh}/projects/${encodeURIComponent(e)}/agent/prompt`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(b),signal:d});if(!v.ok||!v.body){rh(v.status);const T=await sh(v);throw new Mn(T.error?.message??`prompt failed: ${v.status}`,v.status,T.error?.code)}const x=v.body.getReader(),S=new TextDecoder;let j="";const _=()=>{x.cancel().catch(()=>{})};d?.addEventListener("abort",_,{once:!0});try{for(;;){const{value:T,done:N}=await x.read();if(N)break;j+=S.decode(T,{stream:!0});let C=j.indexOf(`
|
|
59
59
|
|
|
60
60
|
`);for(;C!==-1;){const O=j.slice(0,C);j=j.slice(C+2);for(const I of O.split(`
|
|
61
61
|
`)){if(!I.startsWith("data:"))continue;const $=I.slice(5).trim();if($)try{g(JSON.parse($))}catch{}}C=j.indexOf(`
|
|
62
62
|
|
|
63
|
-
`)}}}finally{d?.removeEventListener("abort",_);try{x.releaseLock()}catch{}}}function o3(e){return!e||e.role!=="assistant"?"":e.content.filter(t=>t.type==="text").map(t=>t.text).join("")}const qL=[{label:"Status",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{label:"Top insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{label:"Last failed run",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{label:"Schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"}],IL=[{command:"/status",label:"Status",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{command:"/insights",label:"Top insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{command:"/last-run",label:"Last run",prompt:"Summarize the latest run for this project — provider mix, visibility changes, and anything that moved."},{command:"/last-failed",label:"Last failed run",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{command:"/run-sweep",label:"Run sweep now",prompt:"Run a new answer-visibility sweep for this project now and tell me when it lands."},{command:"/schedule",label:"Schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"},{command:"/queries",label:"Queries",prompt:"List the tracked queries for this project and flag any that are obvious duplicates or underperformers."},{command:"/competitors",label:"Competitors",prompt:"List this project's tracked competitors and call out which ones are showing up in answer citations."},{command:"/clear",label:"Clear conversation",action:"clear"}],lu=e=>`canonry:aero:provider:${e}`,Wv=e=>`canonry:aero:scope:${e}`;function LL({projectName:e}){const[t,i]=B.useState(!1),[s,r]=B.useState(!1),[u,d]=B.useState([]),[g,b]=B.useState(""),[v,x]=B.useState(!1),[S,j]=B.useState([]),[_,T]=B.useState(""),[N,C]=B.useState(null),[O,I]=B.useState(()=>typeof window>"u"?null:window.localStorage.getItem(lu(e))??null),[$,K]=B.useState(()=>typeof window>"u"?"read-only":window.localStorage.getItem(Wv(e))==="all"?"all":"read-only"),Z=B.useRef(null),{ref:se}=OL([u,_,S]),R=B.useRef(null),[q,pe]=B.useState(0),ue=B.useMemo(()=>{const ne=g.trimStart();if(!ne.startsWith("/"))return[];if(/\s/.test(ne))return[];const H=ne.toLowerCase();return IL.filter(X=>X.command.startsWith(H)||X.label.toLowerCase().includes(H.slice(1)))},[g]);B.useEffect(()=>{pe(ne=>ue.length===0?0:Math.min(ne,ue.length-1))},[ue.length]);const fe=mn({...Cq({client:le,path:{name:e}}),enabled:t,staleTime:6e4}),we=B.useMemo(()=>{const ne=fe.data?.providers??[];if(O){const X=ne.find(ie=>ie.id===O&&ie.configured);if(X)return X}const H=fe.data?.defaultProvider;return H?ne.find(X=>X.id===H)??null:null},[O,fe.data]);B.useEffect(()=>{if(!fe.data||!O)return;fe.data.providers.find(H=>H.id===O&&H.configured)||(I(null),window.localStorage.removeItem(lu(e)))},[fe.data,O,e]);const Te=B.useCallback(ne=>{I(ne),!(typeof window>"u")&&(ne?window.localStorage.setItem(lu(e),ne):window.localStorage.removeItem(lu(e)))},[e]),it=B.useCallback(()=>{K(ne=>{const H=ne==="all"?"read-only":"all";return typeof window<"u"&&window.localStorage.setItem(Wv(e),H),H})},[e]);B.useEffect(()=>{if(!t)return;const ne=H=>{H.key==="Escape"&&(s?r(!1):i(!1))};return window.addEventListener("keydown",ne),()=>window.removeEventListener("keydown",ne)},[t,s]),B.useEffect(()=>{if(!t)return;let ne=!1;C(null);const H=()=>{ne||v||Jv(e).then(re=>{ne||d(re.messages)}).catch(re=>{ne||C(re instanceof Error?re.message:"Failed to load transcript")})};H();const ie=window.setInterval(H,15e3);return()=>{ne=!0,window.clearInterval(ie)}},[t,e,v]),B.useEffect(()=>()=>{Z.current?.abort()},[e]);async function ge(ne){const H=ne.trim();if(!H||v)return;C(null),b(""),x(!0),T(""),j([]);const X={role:"user",content:H,timestamp:Date.now()};d(re=>[...re,X]);const ie=new AbortController;Z.current=ie;try{await BL({project:e,prompt:H,provider:O??void 0,scope:$,signal:ie.signal,onEvent:Q});const re=await Jv(e);d(re.messages)}catch(re){re.name!=="AbortError"&&C(re instanceof Error?re.message:"Prompt failed")}finally{x(!1),T(""),Z.current=null}}function Q(ne){switch(ne.type){case"message_update":T(o3(ne.message));break;case"message_end":ne.message.role==="assistant"&&T("");break;case"tool_execution_start":j(H=>[...H,{id:ne.toolCallId,name:ne.toolName,args:ne.args,startedAt:Date.now()}]);break;case"tool_execution_end":j(H=>H.map(X=>X.id===ne.toolCallId?{...X,endedAt:Date.now(),isError:ne.isError,result:ne.result}:X));break;case"error":C(ne.message);break}}async function oe(){Z.current?.abort();try{await ML(e),d([]),C(null)}catch(ne){C(ne instanceof Error?ne.message:"Reset failed")}}const me=u.length===0,Ce=t&&s?"pointer-events-auto fixed inset-0 z-40 flex items-stretch justify-center bg-bg/70 p-4 sm:p-8 backdrop-blur-sm":"pointer-events-none fixed inset-x-0 bottom-0 z-40 flex justify-center p-3",ce=s?"pointer-events-auto flex h-full w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-2xl":"pointer-events-auto w-full max-w-3xl",He=s?"flex-1 overflow-y-auto px-6 py-5 text-sm text-strong":"max-h-[40vh] min-h-[120px] overflow-y-auto px-4 py-3 text-sm text-strong";return m.jsx("div",{className:Ce,onClick:ne=>{s&&ne.target===ne.currentTarget&&r(!1)},children:m.jsx("div",{className:ce,children:t?m.jsxs("div",{className:s?"flex h-full flex-col":"flex flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-xl backdrop-blur",children:[m.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-mono-800/70 px-4 py-2.5",children:[m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(Ab,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),m.jsx("span",{className:"text-sm font-medium text-heading",children:"Aero"}),m.jsx("span",{className:"text-[10px] uppercase tracking-wider text-muted",children:v?"working…":e})]}),m.jsxs("div",{className:"flex items-center gap-1",children:[m.jsx(PL,{providers:fe.data?.providers??[],active:we,override:O,onPick:Te,disabled:v}),m.jsx("button",{type:"button",onClick:nn(oe),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Reset conversation",title:"Reset conversation",children:m.jsx(ik,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),m.jsx("button",{type:"button",onClick:()=>r(ne=>!ne),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":s?"Collapse":"Expand",title:s?"Collapse":"Expand",children:s?m.jsx(zN,{className:"h-3.5 w-3.5","aria-hidden":"true"}):m.jsx(AN,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),m.jsx("button",{type:"button",onClick:()=>{r(!1),i(!1)},className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Close Aero",children:m.jsx($o,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),m.jsxs("div",{ref:se,className:He,children:[N&&m.jsx("div",{className:"mb-2 rounded-md border border-negative-700/40 bg-negative-950/40 px-3 py-2 text-xs text-negative-200",children:N}),me&&!v&&m.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[m.jsxs("p",{className:"text-sm text-secondary",children:["Ask about ",m.jsx("span",{className:"text-strong",children:e})," or choose a starting point."]}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:qL.map(ne=>m.jsx("button",{type:"button",onClick:()=>{ge(ne.prompt)},className:"rounded-md border border-base bg-bg-elevated/70 px-3 py-1.5 text-sm text-neutral transition hover:border-strong hover:bg-mono-800/70 hover:text-heading",children:ne.label},ne.label))})]}),GL(u,e,O,$),S.length>0&&m.jsx("div",{className:"mt-3 space-y-1.5",children:S.map(ne=>m.jsx(r3,{trail:ne},ne.id))}),v&&_&&m.jsxs("div",{className:"mt-3",children:[m.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),m.jsx(l3,{content:_})]}),v&&!_&&S.every(ne=>ne.endedAt!==void 0)&&m.jsx(FL,{})]}),m.jsx($L,{projectName:e,activeProvider:we,scope:$,onToggleScope:it,disabled:v}),m.jsxs("div",{className:"relative",children:[ue.length>0&&m.jsx(UL,{matches:ue,selectedIndex:q,onHover:pe,onPick:ne=>{b(""),R.current?.focus(),ne.action==="clear"?oe():ge(ne.prompt)}}),m.jsxs("form",{className:"flex items-end gap-2 border-t border-mono-800/70 bg-bg/80 px-3 py-2.5",onSubmit:ne=>{if(ne.preventDefault(),ue.length>0){const H=ue[q];b(""),H.action==="clear"?oe():ge(H.prompt);return}ge(g)},children:[m.jsx("textarea",{ref:R,value:g,onChange:ne=>b(ne.target.value),onKeyDown:ne=>{if(ue.length>0){if(ne.key==="ArrowDown"){ne.preventDefault(),pe(H=>(H+1)%ue.length);return}if(ne.key==="ArrowUp"){ne.preventDefault(),pe(H=>(H-1+ue.length)%ue.length);return}if(ne.key==="Tab"){ne.preventDefault();const H=ue[q];b(`${H.command} `);return}if(ne.key==="Escape"){ne.preventDefault(),b("");return}}if(ne.key==="Enter"&&!ne.shiftKey)if(ne.preventDefault(),ue.length>0){const H=ue[q];b(""),H.action==="clear"?oe():ge(H.prompt)}else ge(g)},placeholder:"Ask Aero, or / for commands…",disabled:v,rows:s?3:1,className:"flex-1 resize-none bg-transparent text-sm text-heading placeholder:text-mono-600 focus:outline-none disabled:opacity-60"}),m.jsx("button",{type:"submit",disabled:v||!g.trim(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-positive-500 text-accent-fg transition hover:bg-positive-400 disabled:opacity-40","aria-label":"Send",children:m.jsx(aN,{className:"h-3.5 w-3.5","aria-hidden":"true"})})]})]})]}):m.jsx("button",{type:"button",onClick:()=>i(!0),className:"flex w-full items-center justify-between rounded-lg border border-mono-800/80 bg-bg/95 px-4 py-2 text-left text-sm text-secondary shadow-lg transition hover:border-strong hover:bg-bg-elevated/90 hover:text-strong",children:m.jsxs("span",{className:"flex items-center gap-2",children:[m.jsx(Ab,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),"Ask Aero about ",e,"…"]})})})})}function PL({providers:e,active:t,override:i,onPick:s,disabled:r}){const[u,d]=B.useState(!1),g=B.useRef(null);if(B.useEffect(()=>{if(!u)return;const v=S=>{g.current?.contains(S.target)||d(!1)},x=S=>{S.key==="Escape"&&d(!1)};return window.addEventListener("mousedown",v),window.addEventListener("keydown",x),()=>{window.removeEventListener("mousedown",v),window.removeEventListener("keydown",x)}},[u]),e.length===0)return null;const b=t?.label.replace(/\s+\(.+\)$/,"")??"No provider";return m.jsxs("div",{ref:g,className:"relative",children:[m.jsxs("button",{type:"button",onClick:()=>d(v=>!v),disabled:r,className:"flex items-center gap-1 rounded-md px-2 py-1 text-sm text-secondary transition hover:bg-surface-inset hover:text-strong disabled:opacity-50","aria-label":"Switch agent model","aria-haspopup":"listbox","aria-expanded":u,title:t?`${t.label} · ${t.defaultModel}`:"Pick a provider",children:[m.jsx("span",{className:"font-medium text-strong",children:b}),m.jsx(nk,{className:"h-3 w-3","aria-hidden":"true"})]}),u&&m.jsxs("div",{role:"listbox",className:"absolute right-0 top-full z-50 mt-1 w-64 overflow-hidden rounded-lg border border-base bg-bg shadow-xl",children:[m.jsx("div",{className:"border-b border-default px-3 py-2 text-sm font-medium text-secondary",children:"Answer engine"}),m.jsx("ul",{className:"max-h-72 overflow-y-auto py-1",children:e.map(v=>{const x=t?.id===v.id,S=i===v.id;return m.jsx("li",{children:m.jsxs("button",{type:"button",role:"option","aria-selected":x,disabled:!v.configured,onClick:()=>{v.configured&&(s(S?null:v.id),d(!1))},className:"flex w-full items-center gap-2 px-3 py-2.5 text-left text-sm transition enabled:hover:bg-bg-elevated disabled:cursor-not-allowed disabled:opacity-60",title:v.configured?v.defaultModel:`Add ${VL(v.id)} in Settings or your environment`,children:[m.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center",children:x?m.jsx(tk,{className:"h-3 w-3 text-positive-400","aria-hidden":"true"}):null}),m.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-heading",children:v.label.replace(/\s+\(.+\)$/,"")}),S&&m.jsx("span",{className:"rounded-md border border-positive-800/60 bg-positive-950/60 px-2 py-0.5 text-[11px] text-positive",children:"Pinned"}),!v.configured&&m.jsx("span",{className:"rounded-md border border-base px-2 py-0.5 text-[11px] text-secondary",children:"Needs setup"})]})},v.id)})}),i&&m.jsx("button",{type:"button",onClick:()=>{s(null),d(!1)},className:"w-full border-t border-default px-3 py-2 text-left text-[11px] text-secondary transition hover:bg-bg-elevated hover:text-heading",children:"Reset to auto-detected default"})]})]})}function $L({projectName:e,activeProvider:t,scope:i,onToggleScope:s,disabled:r}){const u=t?.label.replace(/\s+\(.+\)$/,"")??null,d=i==="all";return m.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-t border-mono-800/70 bg-bg/80 px-3 pt-2 text-sm text-secondary",children:[m.jsx("span",{className:"font-medium text-strong",children:e}),u&&m.jsxs(m.Fragment,{children:[m.jsx("span",{"aria-hidden":"true",children:"·"}),m.jsx("span",{children:u})]}),m.jsx("button",{type:"button",onClick:s,disabled:r,className:`ml-auto inline-flex items-center rounded-md border px-2 py-1 text-sm font-medium transition disabled:opacity-50 ${d?"border-caution-800/60 bg-caution-950/40 text-caution hover:border-caution-700 hover:text-caution-200":"border-base bg-bg-elevated/70 text-secondary hover:border-strong hover:text-strong"}`,title:d?"Aero can invoke write tools (run sweep, dismiss insight, etc). Click to restrict.":"Aero is restricted to read-only tools. Click to allow writes.",children:d?"Can make changes":"Read only"})]})}function UL({matches:e,selectedIndex:t,onHover:i,onPick:s}){return m.jsxs("div",{className:"absolute inset-x-3 bottom-full mb-2 overflow-hidden rounded-lg border border-base bg-bg/98 shadow-2xl",children:[m.jsx("div",{className:"border-b border-default px-3 py-1.5 text-[10px] uppercase tracking-wider text-muted",children:"Commands"}),m.jsx("ul",{role:"listbox",className:"max-h-72 overflow-y-auto py-1",children:e.map((r,u)=>{const d=u===t;return m.jsx("li",{children:m.jsxs("button",{type:"button",role:"option","aria-selected":d,onMouseEnter:()=>i(u),onClick:()=>s(r),className:`flex w-full items-center gap-3 px-3 py-2 text-left text-sm transition ${d?"bg-bg-elevated text-heading":"text-neutral hover:bg-bg-elevated/60"}`,children:[m.jsx("span",{className:"font-medium",children:r.label}),m.jsx("span",{className:"ml-auto font-mono text-[11px] text-secondary",children:r.command})]})},r.command)})})]})}function VL(e){switch(e){case"claude":return"ANTHROPIC_API_KEY";case"openai":return"OPENAI_API_KEY";case"gemini":return"GOOGLE_API_KEY";case"zai":return"ZAI_API_KEY";case"deepinfra":return"DEEPINFRA_TOKEN"}}function KL(e,t){const i=e.timestamp??0;return`${e.role}:${i}:${t}`}function GL(e,t,i,s){const r=[];for(let u=0;u<e.length;u++){const d=e[u],g=KL(d,u);if(d.role==="user"){const b=typeof d.content=="string"?d.content:JSON.stringify(d.content);if(b.startsWith("[system]"))continue;r.push(m.jsx(HL,{text:b,projectName:t,providerOverride:i,scope:s},g));continue}if(d.role==="assistant"){const b=new Map;let v=u+1;for(;v<e.length&&e[v].role==="toolResult";){const j=e[v];b.set(j.toolCallId,j),v++}const x=ZL(d,b,d.timestamp??0),S=o3(d);r.push(m.jsxs(B.Fragment,{children:[x.length>0&&m.jsx("div",{className:"mt-3 space-y-1.5",children:x.map(j=>m.jsx(r3,{trail:j},j.id))}),S.trim()&&m.jsxs("div",{className:"mt-3",children:[m.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),m.jsx(l3,{content:S})]})]},g)),u=v-1;continue}}return r}function HL({text:e,projectName:t,providerOverride:i,scope:s}){const[r,u]=B.useState(!1),d=B.useMemo(()=>QL(t,e,i,s),[t,e,i,s]);async function g(){try{await navigator.clipboard.writeText(d),u(!0),window.setTimeout(()=>u(!1),1500)}catch{}}return m.jsxs("div",{className:"group relative mt-3 rounded-md bg-bg-elevated/60 px-3 py-2 text-strong",children:[m.jsxs("div",{className:"flex items-center justify-between gap-2",children:[m.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted",children:"You"}),m.jsx("button",{type:"button",onClick:nn(g),className:"inline-flex items-center gap-1 rounded border border-mono-800/70 bg-bg/60 px-1.5 py-0.5 text-[10px] text-secondary opacity-0 transition hover:border-strong hover:text-heading group-hover:opacity-100 focus:opacity-100","aria-label":"Copy as CLI command",title:d,children:r?m.jsxs(m.Fragment,{children:[m.jsx(tk,{className:"h-2.5 w-2.5 text-positive-400","aria-hidden":"true"}),"Copied"]}):m.jsxs(m.Fragment,{children:[m.jsx(uN,{className:"h-2.5 w-2.5","aria-hidden":"true"}),"Copy as CLI"]})})]}),m.jsx("div",{className:"whitespace-pre-wrap",children:e})]})}function QL(e,t,i,s){const r=["canonry","agent","ask",e2(e),e2(t)];return i&&r.push("--provider",i),s==="read-only"&&r.push("--scope","read-only"),r.join(" ")}function e2(e){return`'${e.replace(/'/g,"'\\''")}'`}function ZL(e,t,i){const s=[];for(const r of e.content){if(r.type!=="toolCall")continue;const u=r,d=t.get(u.id);s.push({id:u.id,name:u.name,args:u.arguments,startedAt:i,endedAt:d?.timestamp,isError:d?.isError,result:d?.content})}return s}function r3({trail:e}){const[t,i]=B.useState(!1),s=e.endedAt===void 0,r=!s&&e.isError===!0,u=e.endedAt!=null?e.endedAt-e.startedAt:null,d=u==null||u<0?null:u<1e3?`${u}ms`:`${(u/1e3).toFixed(1)}s`,g=r?"border-negative-800/50":s?"border-positive-800/50":"border-mono-800/70",b=r?"bg-negative-950/20":s?"bg-positive-950/20":"bg-surface-hover";return m.jsxs("div",{className:`rounded-md border ${g} ${b} font-mono`,children:[m.jsxs("button",{type:"button",onClick:()=>i(v=>!v),className:"flex w-full items-center gap-2 px-2.5 py-1.5 text-left","aria-expanded":t,children:[m.jsx("span",{className:"flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:s?m.jsx(ak,{className:"h-3 w-3 animate-spin text-positive-400","aria-hidden":"true"}):r?m.jsx(sk,{className:"h-3 w-3 text-negative-400","aria-hidden":"true"}):m.jsx(FN,{className:"h-3 w-3 text-muted","aria-hidden":"true"})}),m.jsx("span",{className:"text-[11px] font-semibold text-heading",children:e.name}),m.jsxs("span",{className:"ml-auto flex items-center gap-2 text-[10px] text-muted",children:[s?m.jsx("span",{className:"text-positive-400",children:"running…"}):m.jsxs(m.Fragment,{children:[m.jsx("span",{children:r?"failed":"ok"}),d&&m.jsx("span",{children:d})]}),m.jsx(n0,{className:`h-3 w-3 transition-transform ${t?"rotate-90":""}`,"aria-hidden":"true"})]})]}),t&&m.jsxs("div",{className:"border-t border-default px-2.5 py-2 text-[11px] text-secondary",children:[m.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:"Args"}),m.jsx("pre",{className:"mb-2 overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:t2(e.args)}),!s&&e.result!==void 0&&m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:r?"Error":"Result"}),m.jsx("pre",{className:"overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:t2(e.result)})]})]})]})}function t2(e){try{const t=typeof e=="string"?e:JSON.stringify(e,null,2);return t.length>2e3?`${t.slice(0,2e3)}
|
|
64
|
-
… (${t.length-2e3} more chars)`:t}catch{return String(e)}}function l3({content:e}){return m.jsx("div",{className:"text-heading",children:m.jsx(p4,{components:{h1:t=>m.jsx("h1",{...t,className:"mt-3 mb-2 text-base font-semibold text-primary"}),h2:t=>m.jsx("h2",{...t,className:"mt-3 mb-2 text-sm font-semibold text-primary"}),h3:t=>m.jsx("h3",{...t,className:"mt-3 mb-1.5 text-sm font-semibold text-heading"}),h4:t=>m.jsx("h4",{...t,className:"mt-2 mb-1 text-xs font-semibold uppercase tracking-wide text-neutral"}),p:t=>m.jsx("p",{...t,className:"mb-2 leading-relaxed"}),ul:t=>m.jsx("ul",{...t,className:"mb-2 ml-4 list-disc space-y-1"}),ol:t=>m.jsx("ol",{...t,className:"mb-2 ml-4 list-decimal space-y-1"}),li:t=>m.jsx("li",{...t,className:"marker:text-mono-600"}),strong:t=>m.jsx("strong",{...t,className:"font-semibold text-primary"}),em:t=>m.jsx("em",{...t,className:"text-strong"}),code:({children:t,...i})=>m.jsx("code",{...i,className:"rounded bg-mono-800/70 px-1 py-0.5 font-mono text-[12px] text-positive-200",children:t}),pre:t=>m.jsx("pre",{...t,className:"mb-2 overflow-x-auto rounded-md border border-base bg-bg-elevated/70 p-3 font-mono text-xs text-strong"}),a:t=>m.jsx("a",{...t,className:"text-positive-400 underline decoration-positive-700 hover:decoration-positive-400",target:"_blank",rel:"noopener noreferrer"}),table:t=>m.jsx("div",{className:"mb-2 overflow-x-auto",children:m.jsx("table",{...t,className:"w-full border-collapse text-xs"})}),thead:t=>m.jsx("thead",{...t,className:"border-b border-base"}),th:t=>m.jsx("th",{...t,className:"px-2 py-1 text-left font-semibold text-neutral"}),tr:t=>m.jsx("tr",{...t,className:"border-b border-mono-900"}),td:t=>m.jsx("td",{...t,className:"px-2 py-1 text-strong"}),blockquote:t=>m.jsx("blockquote",{...t,className:"mb-2 border-l-2 border-strong pl-3 italic text-secondary"}),hr:()=>m.jsx("hr",{className:"my-3 border-base"})},children:e})})}function FL(){return m.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[m.jsx("div",{className:"text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),m.jsxs("div",{className:"flex items-center gap-1","aria-label":"Aero is thinking",children:[m.jsx("span",{className:"aero-dot h-1.5 w-1.5 rounded-full bg-positive-400/80"}),m.jsx("span",{className:"aero-dot aero-dot-2 h-1.5 w-1.5 rounded-full bg-positive-400/60"}),m.jsx("span",{className:"aero-dot aero-dot-3 h-1.5 w-1.5 rounded-full bg-positive-400/40"})]})]})}function YL(){const e=S2(),t=/^\/projects\/([^/]+)/.exec(e.pathname),i=t?decodeURIComponent(t[1]):null,s=mn({...nd({client:le}),enabled:i!==null,staleTime:6e4});if(!i)return null;const r=s.data??[],u=r.find(d=>d.id===i)??r.find(d=>d.name===i);return u?m.jsx(LL,{projectName:u.name},u.name):null}const XL={project:"getApiV1ProjectsByName",google:"getApiV1ProjectsByNameGoogle",gsc:"getApiV1ProjectsByNameGoogleGsc",bing:"getApiV1ProjectsByNameBing",ga:"getApiV1ProjectsByNameGa",gbp:"getApiV1ProjectsByNameGbp",ads:"getApiV1ProjectsByNameAds",traffic:"getApiV1ProjectsByNameTraffic",discovery:"getApiV1ProjectsByNameDiscover",researchRuns:"getApiV1ProjectsByNameResearchRuns",technicalAeo:"getApiV1ProjectsByNameTechnicalAeo",runs:"getApiV1ProjectsByNameRuns"};function Sa(e,t){const i=XL[t];return e.invalidateQueries({predicate:s=>{const r=s.queryKey[0];return typeof r?._id=="string"&&r._id.startsWith(i)}})}function Mu(e,t,i){switch(e.invalidateQueries({queryKey:X0({client:le})}),e.invalidateQueries({queryKey:Ho({client:le})}),Sa(e,"runs"),t){case Oe["answer-visibility"]:return;case Oe["backlink-extract"]:return;case Oe["site-audit"]:Sa(e,"technicalAeo");return;case Oe["gsc-sync"]:case Oe["inspect-sitemap"]:Sa(e,"gsc");return;case Oe["ga-sync"]:Sa(e,"ga");return;case Oe["traffic-sync"]:Sa(e,"ga"),Sa(e,"traffic");return;case Oe["bing-inspect"]:case Oe["bing-inspect-sitemap"]:Sa(e,"bing");return;case Oe["aeo-discover-seed"]:case Oe["aeo-discover-probe"]:return;case Oe["gbp-sync"]:Sa(e,"gbp");return;case Oe["ads-sync"]:Sa(e,"ads");return;default:return t}}const n2=[{label:"GitHub",href:"https://github.com/Canonry/canonry",Icon:fN},{label:"Docs",href:"https://github.com/Canonry/canonry/tree/main/docs",Icon:sN},{label:"Changelog",href:"https://github.com/Canonry/canonry/releases",Icon:mN}],a2=e=>({label:e,state:"checking",detail:"Checking service health"}),JL={apiStatus:a2("API"),workerStatus:a2("Worker")};function WL(e){return e==="completed"?"positive":e==="partial"?"caution":"negative"}function eP(e){const t=cl(e.kind);return e.status==="completed"?`${t} completed`:e.status==="partial"?`${t} completed with partial results`:e.status==="cancelled"?`${t} cancelled`:`${t} failed`}function tP(e,t){return e.error?`${t}: ${T0(e.error)}`:e.location?`${t} · ${e.location}`:t}function i2(e,t,i){if(t)return t;const s=i.find(r=>r.id===e);return s?.displayName||s?.name||e}function nP(e,t){return[e.completed>0?`${e.completed} completed`:null,e.partial>0?`${e.partial} partial`:null,e.failed>0?`${e.failed} failed`:null,e.cancelled>0?`${e.cancelled} cancelled`:null,t>0?`${t} skipped at queue time`:null].filter(Boolean).join(", ")}function aP(e){return e.failed>0||e.cancelled>0?"negative":e.partial>0?"caution":"positive"}function iP(){const e=Mi(),t=B.useSyncExternalStore(Rx,Ya,Ya),i=Object.keys(t.runs).length>0||Object.keys(t.batches).length>0,s=mn({...J0({client:le}),enabled:i,staleTime:zo,refetchInterval:3e3}),r=mn({...nd({client:le}),enabled:i}),u=B.useRef({}),d=B.useCallback(()=>{s.refetch()},[s.refetch]);return B.useEffect(()=>{i&&d()},[i,d]),B.useEffect(()=>{if(!i||typeof window>"u")return;const g=()=>{document.visibilityState==="visible"&&d()};return window.addEventListener("focus",d),document.addEventListener("visibilitychange",g),()=>{window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",g)}},[i,d]),B.useEffect(()=>{const g=s.data??[],b=r.data??[],v=Object.fromEntries(g.map(S=>[S.id,S])),x=Object.fromEntries(g.map(S=>[S.id,S.status]));for(const S of Object.values(t.runs)){const j=v[S.runId];if(!j||!Lq(j.status)||(u.current[j.id]??S.lastAnnouncedStatus)===j.status)continue;const T=b.find(C=>C.id===j.projectId);if(T&&Mu(e,j.kind,T.name),S.sourceAction==="run-all"){ef(j.id);continue}const N=i2(j.projectId,S.projectLabel,b);pn({title:eP(j),detail:tP(j,N),tone:WL(j.status),dedupeKey:`run:${j.id}`,dedupeMode:"replace",cta:{label:"View run",intent:"open-run-drawer",runId:j.id}}),ef(j.id)}if(s.data!==void 0){const S=new Set(g.map(_=>_.id)),j=$q(Object.values(t.runs),S,Date.now(),Pq);for(const _ of j){const T=b.find(N=>N.id===_.projectId);T&&Mu(e,_.kind,T.name),_.sourceAction!=="run-all"&&pn({title:`${cl(_.kind)} status unavailable`,detail:i2(_.projectId,_.projectLabel,b),tone:"neutral",dedupeKey:`run-stale:${_.runId}`,dedupeMode:"replace"}),ef(_.runId)}}for(const S of Object.values(t.batches)){const j=Uq(S.runIds,v);j.finished&&(pn({title:"Run-all batch finished",detail:nP(j,S.skippedCount),tone:aP(j),dedupeKey:`batch:${S.batchId}`,dedupeMode:"replace",cta:{label:"View runs",intent:"go-to-runs"}}),Iq(S.batchId))}u.current=x},[r.data,s.data,t,e]),null}function sP(){const{account:e,isAdmin:t}=xl(),i=Dl(),s=B.useMemo(()=>G2(),[]),r=B.useMemo(tA,[]),u=B.useMemo(nA,[]),d=B.useMemo(aA,[]),{dashboard:g,isLoading:b,refetch:v}=rd(void 0,{includeSettings:!s}),j=ah(!i,i?.health).data??i?.health??JL,_=S2(),{runId:T,evidenceId:N,closeDrawer:C}=ih(),[O,I]=B.useState(!1),[$,K]=B.useState(()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem("canonry:sidebarHidden")==="true"}catch{return!1}}),[Z,se]=B.useState(()=>{if(typeof window>"u")return null;try{return window.localStorage.getItem("canonry:dismissedUpdateVersion")}catch{return null}}),[R]=B.useState(()=>typeof window>"u"?null:new URLSearchParams(window.location.search).get("force-update")),q=R?{current:j.apiStatus.version??"0.0.0",latest:R,url:"https://www.npmjs.com/package/@canonry/canonry",upgradeCommand:"npm install -g @canonry/canonry"}:j.apiStatus.updateAvailable,pe=d&&q&&q.latest!==Z,ue=()=>{if(q){try{window.localStorage.setItem("canonry:dismissedUpdateVersion",q.latest)}catch{}se(q.latest)}},fe=()=>{const H=!$;try{H?window.localStorage.setItem("canonry:sidebarHidden","true"):window.localStorage.removeItem("canonry:sidebarHidden")}catch{}K(H)},we=CL(T),Te=we.data??null,it=we.isLoading;B.useEffect(()=>{Te&&Te.status!=="running"&&Te.status!=="queued"&&v()},[Te?.status,v]),B.useEffect(()=>{I(!1)},[_.pathname]),B.useEffect(()=>{if(typeof window>"u"||!T&&!N)return;const H=X=>{X.key==="Escape"&&C()};return window.addEventListener("keydown",H),()=>{window.removeEventListener("keydown",H)}},[T,N,C]);const ge=g??i?.dashboard??null,Q=_.pathname==="/setup"&&ge!==null&&ge.portfolioOverview.projects.length===0,oe=Q?"app-shell-focus":$?"app-shell-sidebar-hidden":"",me=T?(ge?eL(ge,T):void 0)??(Te?od(Te,ge?.projects.find(H=>H.project.id===Te.projectId)?.project.displayName??ge?.projects.find(H=>H.project.id===Te.projectId)?.project.name??"Unknown project"):void 0):void 0,Ce=B.useMemo(()=>ZI(_.pathname,ge),[_.pathname,ge]),{commandCenter:ce}=AL(Ce),He=B.useMemo(()=>{if(N)return nL(ce,ge,N)},[N,ce,ge]),ne=(()=>{const H=_.pathname;if(H==="/")return"Portfolio";if(H==="/projects")return"Projects";if(H==="/runs")return"Runs";if(H==="/history")return"History";if(H==="/settings")return"Settings";if(H==="/setup")return"Setup";if(H==="/backlinks")return"Backlink data";if(H==="/traffic"||H.startsWith("/traffic/"))return"Traffic sources";if(H.startsWith("/projects/")){const ie=H.split("/").filter(Boolean)[1];if(ie&&ge){const re=ge.projects.find(ze=>ze.project.id===ie);if(re)return re.project.name}return"Project"}return"Not found"})();if(B.useEffect(()=>{const H=wB(s?.theme);if(!H)return;const X=document.createElement("link");return X.rel="stylesheet",X.href=H,document.head.appendChild(X),()=>{document.head.removeChild(X)}},[s]),s){const H=!s.views||s.views.includes(fB(_.pathname));return m.jsxs("div",{className:"app-shell app-shell-embed","data-theme":vB(s.theme),style:kB(s.theme),children:[m.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),m.jsx("main",{id:"content",className:"page-shell",children:H?m.jsx(mf,{}):m.jsx("div",{className:"embed-view-unavailable",role:"status",children:"This view is not available in embed mode."})})]})}return m.jsxs("div",{className:`app-shell ${oe}`,children:[m.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),!Q&&!$&&m.jsxs("aside",{id:"desktop-sidebar",className:"sidebar","aria-label":"Primary navigation",children:[m.jsx("div",{className:"sidebar-brand",children:m.jsx(Gv,{version:j.apiStatus.version,updateAvailable:pe?q:null,onDismissUpdate:ue})}),m.jsxs("nav",{className:"sidebar-nav",children:[m.jsxs(We,{to:"/",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(kN,{className:"sidebar-icon"}),m.jsx("span",{children:"Portfolio"})]}),m.jsxs(We,{to:"/projects",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[m.jsx(gN,{className:"sidebar-icon"}),m.jsx("span",{children:"Projects"})]}),m.jsxs(We,{to:"/runs",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(MN,{className:"sidebar-icon"}),m.jsx("span",{children:"Runs"})]}),m.jsxs(We,{to:"/history",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(bN,{className:"sidebar-icon"}),m.jsx("span",{children:"History"})]}),m.jsxs(We,{to:"/traffic",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[m.jsx(IN,{className:"sidebar-icon"}),m.jsx("span",{children:"Traffic sources"})]}),m.jsxs(We,{to:"/backlinks",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(xN,{className:"sidebar-icon"}),m.jsx("span",{children:"Backlink data"})]}),t&&m.jsxs(We,{to:"/settings",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(HN,{className:"sidebar-icon"}),m.jsx("span",{children:"Settings"})]}),b?m.jsxs(m.Fragment,{children:[m.jsx("p",{className:"sidebar-section-title",children:"Tracked projects"}),[1,2,3].map(H=>m.jsxs("div",{className:"sidebar-skeleton-item",children:[m.jsx("span",{className:"skeleton-circle size-2"}),m.jsx("span",{className:"skeleton-text flex-1",style:{width:`${50+H*15}%`}})]},H))]}):ge&&ge.projects.length>0?m.jsxs(m.Fragment,{children:[m.jsx("p",{className:"sidebar-section-title",children:"Tracked projects"}),ge.projects.map(H=>{const X=H.visibilitySummary.tone;return m.jsxs(We,{to:"/projects/$projectName",params:{projectName:H.project.name},className:"sidebar-project",activeProps:{className:"sidebar-project sidebar-project-active"},children:[m.jsx("span",{className:`sidebar-dot sidebar-dot-${X}`}),m.jsx("span",{children:H.project.displayName||H.project.name})]},H.project.id)})]}):b?null:m.jsxs(m.Fragment,{children:[m.jsx("p",{className:"sidebar-section-title",children:"Resources"}),t&&m.jsxs(We,{to:"/setup",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx($N,{className:"sidebar-icon"}),m.jsx("span",{children:"Setup"})]})]})]}),e&&m.jsxs("div",{className:"sidebar-account",children:[m.jsxs("div",{className:"sidebar-account-identity",children:[m.jsx("span",{className:"sidebar-account-name",children:e.name}),e.role==="viewer"?m.jsx("span",{className:"sidebar-account-role",children:"View only"}):null]}),m.jsx(De,{type:"button",variant:"ghost",size:"sm",onClick:nn(async()=>{await vb(),window.location.reload()}),children:"Sign out"})]}),r?m.jsx("div",{className:"sidebar-footer",children:n2.map(({label:H,href:X,Icon:ie})=>m.jsx("a",{className:"sidebar-footer-icon",href:X,target:"_blank",rel:"noopener noreferrer",title:H,"aria-label":H,children:m.jsx(ie,{className:"size-4"})},X))}):null]}),m.jsxs("div",{className:"main-area",children:[m.jsxs("header",{className:"topbar",children:[m.jsxs("div",{className:"topbar-left",children:[!Q&&m.jsx(De,{className:"sidebar-privacy-toggle",variant:"ghost",size:"icon",type:"button","aria-label":$?"Show sidebar":"Hide sidebar","aria-controls":$?void 0:"desktop-sidebar","aria-expanded":!$,title:$?"Show sidebar":"Hide sidebar",onClick:fe,children:$?m.jsx(ON,{className:"size-4"}):m.jsx(TN,{className:"size-4"})}),m.jsx("div",{className:"topbar-brand-mobile",children:m.jsx(Gv,{compact:!0})}),m.jsxs("nav",{className:"breadcrumb","aria-label":"Breadcrumb",children:[m.jsx(We,{to:"/",children:"Home"}),m.jsx(n0,{className:"breadcrumb-sep size-3"}),m.jsx("span",{className:"breadcrumb-current",children:ne})]})]}),m.jsxs("div",{className:"topbar-actions",children:[m.jsx(DL,{}),m.jsxs("div",{className:"health-pill-row",children:[m.jsxs("span",{className:`health-pill health-pill-${j.apiStatus.state}`,title:qo(j.apiStatus),children:["API ",j.apiStatus.state==="ok"?"ok":j.apiStatus.state]}),m.jsxs("span",{className:`health-pill health-pill-${j.workerStatus.state}`,title:qo(j.workerStatus),children:["Worker ",j.workerStatus.state==="ok"?"ok":j.workerStatus.state]})]}),m.jsxs(De,{className:"nav-toggle",variant:"secondary",size:"icon",type:"button","aria-expanded":O,"aria-controls":"mobile-nav",onClick:()=>I(H=>!H),children:[m.jsx(_N,{className:"size-4"}),m.jsx("span",{className:"sr-only",children:"Open navigation"})]})]})]}),m.jsxs("div",{id:"mobile-nav",className:`mobile-nav ${O?"mobile-nav-open":""}`,children:[m.jsxs(De,{className:"mobile-nav-close",variant:"ghost",size:"icon",type:"button",onClick:()=>I(!1),children:[m.jsx($o,{className:"size-5"}),m.jsx("span",{className:"sr-only",children:"Close navigation"})]}),m.jsx(We,{to:"/",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Portfolio"}),m.jsx(We,{to:"/projects",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Projects"}),m.jsx(We,{to:"/runs",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Runs"}),m.jsx(We,{to:"/history",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"History"}),m.jsx(We,{to:"/traffic",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Traffic sources"}),m.jsx(We,{to:"/backlinks",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Backlink data"}),t&&m.jsx(We,{to:"/settings",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Settings"}),ge&&ge.projects.length>0?m.jsxs("div",{className:"mobile-nav-section",children:[m.jsx("p",{className:"mobile-nav-section-title",children:"Tracked projects"}),ge.projects.map(H=>m.jsx(We,{to:"/projects/$projectName",params:{projectName:H.project.name},className:"mobile-nav-link",children:H.project.name},H.project.id))]}):null,e&&m.jsxs("div",{className:"mobile-nav-section",children:[m.jsx("p",{className:"mobile-nav-section-title",children:"Signed in"}),m.jsxs("div",{className:"sidebar-account",children:[m.jsxs("div",{className:"sidebar-account-identity",children:[m.jsx("span",{className:"sidebar-account-name",children:e.name}),e.role==="viewer"?m.jsx("span",{className:"sidebar-account-role",children:"View only"}):null]}),m.jsx(De,{type:"button",variant:"ghost",size:"sm","data-testid":"mobile-sign-out",onClick:nn(async()=>{await vb(),window.location.reload()}),children:"Sign out"})]})]})]}),m.jsx("main",{id:"content",className:"page-shell",children:b&&!i?m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-40"}),m.jsx("div",{className:"skeleton-text-sm w-72"})]}),m.jsx("div",{className:"page-skeleton-grid",children:[1,2,3].map(H=>m.jsxs("div",{className:"page-skeleton-card",children:[m.jsx("div",{className:"skeleton-text w-24"}),m.jsx("div",{className:"skeleton-text w-full"}),m.jsx("div",{className:"skeleton-text-sm w-3/4"})]},H))}),m.jsx("div",{className:"page-skeleton-grid",style:{gridTemplateColumns:"1fr 1fr"},children:[1,2].map(H=>m.jsxs("div",{className:"page-skeleton-card",children:[m.jsx("div",{className:"skeleton-text w-20"}),m.jsx("div",{className:"space-y-2",children:[1,2,3].map(X=>m.jsx("div",{className:"skeleton-text-sm w-full"},X))})]},H))})]}):m.jsx(mf,{})}),m.jsxs("footer",{className:"footer",children:[m.jsxs("span",{className:"footer-brand",children:[m.jsx("span",{children:m.jsx("a",{href:"https://canonry.ai",children:"Canonry"})}),j.apiStatus.version&&j.apiStatus.version!=="unknown"?m.jsxs("span",{className:"footer-version",children:["v",j.apiStatus.version]}):null]}),r?m.jsx("div",{className:"footer-links",children:n2.map(({label:H,href:X,Icon:ie})=>m.jsx("a",{href:X,target:"_blank",rel:"noopener noreferrer",title:H,"aria-label":H,className:"footer-icon",children:m.jsx(ie,{className:"size-3.5"})},X))}):null]})]}),T&&!me&&it?m.jsx(nf,{open:!0,title:"Loading run details",subtitle:"Fetching the durable run record",onClose:C,children:m.jsx("p",{className:"text-sm text-muted",role:"status",children:"Loading run details…"})}):null,T&&!me&&we.isError?m.jsx(nf,{open:!0,title:"Run unavailable",subtitle:"The run could not be loaded",onClose:C,children:m.jsx("p",{className:"text-sm text-negative",children:we.error instanceof Error?we.error.message:"Run details are unavailable."})}):null,me?m.jsxs(nf,{open:!0,title:me.summary,subtitle:`${me.projectName} · ${me.kindLabel}`,onClose:C,children:[m.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-1 text-sm",children:[m.jsx(nh,{status:me.status}),m.jsx("span",{className:"text-secondary",children:me.startedAt}),m.jsx("span",{className:"text-muted",children:me.duration}),m.jsx("span",{className:"text-faint",children:me.triggerLabel})]}),me.status==="failed"&&me.statusDetail&&m.jsx("p",{className:"mt-2 text-sm text-negative",children:me.statusDetail}),m.jsxs("div",{className:"mt-4",children:[m.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted mb-2",children:"Activity Log"}),it?m.jsx("p",{className:"text-sm text-muted",children:"Loading run details..."}):Te?.snapshots&&Te.snapshots.length>0?m.jsxs("div",{className:"space-y-2",children:[Te.snapshots.map(H=>m.jsxs("div",{className:"rounded-lg border border-default bg-surface p-3",children:[m.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[m.jsx("p",{className:"text-sm font-medium text-strong truncate",children:H.query??"Unknown query"}),m.jsxs("div",{className:"flex items-center gap-1.5",children:[m.jsx(MI,{provider:H.provider}),m.jsx(Yx,{variant:H.citationState===Tu.cited?"success":"neutral",children:H.citationState})]})]}),H.model&&m.jsx("p",{className:"text-[11px] text-muted font-mono",children:H.model}),H.citedDomains.length>0&&m.jsxs("p",{className:"text-xs text-muted mt-1",children:[m.jsx("span",{className:"text-secondary",children:"Sources:"})," ",H.citedDomains.join(", ")]}),H.competitorOverlap.length>0&&m.jsxs("p",{className:"text-xs text-negative-400/80 mt-0.5",children:["Competitor cited: ",H.competitorOverlap.join(", ")]}),H.groundingSources&&H.groundingSources.length>0&&m.jsxs("details",{className:"mt-2",children:[m.jsxs("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:[H.groundingSources.length," grounding source",H.groundingSources.length!==1?"s":""]}),m.jsx("ul",{className:"mt-1 space-y-0.5",children:H.groundingSources.map((X,ie)=>{const re=Lf(X.uri),ze=X.title||X.uri;return m.jsx("li",{className:"text-xs text-muted truncate",children:re?m.jsx("a",{href:re,target:"_blank",rel:"noopener noreferrer",className:"hover:text-neutral",children:ze}):m.jsx("span",{children:ze})},ie)})})]}),H.answerText&&m.jsxs("details",{className:"mt-1",children:[m.jsx("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:"Answer preview"}),m.jsx("p",{className:"mt-1 text-xs text-secondary leading-relaxed whitespace-pre-wrap",children:H.answerText})]})]},H.id)),Te.status==="running"&&m.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[m.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Running remaining queries..."]})]}):Te&&Te.status==="running"?m.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[m.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Waiting for first query result..."]}):Te&&Te.status==="queued"?m.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[m.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-mono-500 animate-pulse"}),"Run queued, waiting for execution slot..."]}):Te&&Te.error?m.jsxs("div",{className:"rounded-lg border border-negative-800/40 bg-negative-950/20 p-3",children:[m.jsx("p",{className:"text-sm font-medium text-negative mb-2",children:"Run failed"}),m.jsx("pre",{className:"max-h-48 overflow-y-auto whitespace-pre-wrap break-words font-mono text-xs leading-5 text-negative",children:dB(Te.error)})]}):m.jsx("p",{className:"text-sm text-muted",children:"No snapshot data available."})]})]}):null,He?m.jsx(GI,{evidence:He.evidence,project:He.project,onClose:C}):null,m.jsx(iP,{}),m.jsx(TL,{}),u?m.jsx(YL,{}):null]})}class oP extends B.Component{state={error:null};static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,i){console.error("[ErrorBoundary]",t,i.componentStack)}handleReset=()=>{this.setState({error:null})};render(){return this.state.error?m.jsx("div",{className:"page-container",children:m.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 py-20 text-center",children:[m.jsx("div",{className:"rounded-full bg-negative-950/40 p-3",children:m.jsx(sk,{className:"size-6 text-negative-400"})}),m.jsx("h2",{className:"text-lg font-semibold text-heading",children:"Something went wrong"}),m.jsx("p",{className:"text-sm text-secondary max-w-md",children:this.state.error.message||"An unexpected error occurred while rendering this page."}),m.jsxs("div",{className:"flex gap-3 mt-2",children:[m.jsxs(De,{variant:"secondary",size:"sm",onClick:this.handleReset,children:[m.jsx(ik,{className:"size-3.5 mr-1.5"}),"Try again"]}),m.jsx(De,{variant:"secondary",size:"sm",onClick:()=>{const t=window.__CANONRY_CONFIG__?.basePath?.replace(/\/$/,"")??"";window.location.href=t||"/"},children:"Go home"})]})]})}):this.props.children}}const Zn=B.forwardRef(({className:e,...t},i)=>m.jsx("div",{ref:i,className:ea("rounded-xl border border-base bg-bg/75 shadow-[0_0_0_1px_var(--color-shadow-hairline)]",e),...t}));Zn.displayName="Card";const ul=B.forwardRef(({className:e,...t},i)=>m.jsx("div",{ref:i,className:ea("flex flex-col gap-1.5 p-5",e),...t}));ul.displayName="CardHeader";const dl=B.forwardRef(({className:e,...t},i)=>m.jsx("h3",{ref:i,className:ea("font-medium tracking-tight text-primary",e),...t}));dl.displayName="CardTitle";const ml=B.forwardRef(({className:e,...t},i)=>m.jsx("p",{ref:i,className:ea("text-sm text-muted",e),...t}));ml.displayName="CardDescription";const ko=B.forwardRef(({className:e,...t},i)=>m.jsx("div",{ref:i,className:ea("p-5 pt-0",e),...t}));ko.displayName="CardContent";const rP=20,lP=6;function cP({points:e,tone:t}){const i=B.useId();if(e.length===0)return null;const s=42,r=132,u=5,d=r-u*2,g=s-u*2,b=g-lP,v=C=>u+C/Math.max(e.length-1,1)*d,x=lB(e),S=Math.min(...e),j=Math.max(...e),_=Math.max(j-S,rP),T=(j+S)/2-_/2,N=e.map((C,O)=>`${v(O)},${u+(1-(C-T)/_)*b}`).join(" ");return m.jsxs("svg",{className:`sparkline sparkline-${t}${x?" sparkline-provisional":""}`,viewBox:`0 0 ${r} ${s}`,"aria-hidden":"true",children:[m.jsx("defs",{children:m.jsx("clipPath",{id:i,children:m.jsx("rect",{x:u,y:u,width:d,height:g,rx:"8"})})}),m.jsx("line",{className:"sparkline-guide",x1:u,x2:r-u,y1:s-u,y2:s-u}),m.jsx("polyline",{clipPath:`url(#${i})`,points:N,vectorEffect:"non-scaling-stroke"})]})}function uP({project:e}){return m.jsxs(We,{to:"/projects/$projectName",params:{projectName:e.project.name},className:"project-row cursor-pointer",children:[m.jsx("div",{className:"project-row-chart",children:m.jsx(cP,{points:e.trend,tone:Tx(e.lastRun.status)})}),m.jsxs("div",{className:"project-row-primary",children:[m.jsxs("div",{children:[m.jsx("p",{className:"project-name",children:e.project.name}),m.jsx("p",{className:"project-domain",children:e.project.canonicalDomain})]}),m.jsx("p",{className:"project-insight",children:e.insight})]}),m.jsx("div",{className:"project-row-stat",children:m.jsxs("div",{className:"metric-inline-block",children:[m.jsx("p",{className:"metric-inline-label",children:"Mentioned"}),m.jsx("p",{className:`metric-inline-value ${e.mentionTone==="caution"?"text-caution-400":""}`,children:e.mentionScore}),m.jsx("p",{className:`metric-inline-caption${e.providerCoverage?" text-caution":""}`,title:e.providerCoverage,children:e.providerCoverage?m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"sr-only",children:"Partial sweep: "}),e.providerCoverage]}):e.mentionDelta})]})}),m.jsx("div",{className:"project-row-stat",children:m.jsxs("div",{className:"metric-inline-block",children:[m.jsxs("p",{className:"metric-inline-label",children:[m.jsx("span",{"aria-hidden":"true",children:"Pressure"}),m.jsx("span",{className:"sr-only",children:"Competitor pressure"})]}),m.jsx("p",{className:"metric-inline-value",children:e.competitorPressureLabel}),m.jsx("p",{className:"metric-inline-caption","aria-hidden":"true"})]})}),m.jsx("span",{className:"project-row-link",children:m.jsx(n0,{className:"h-4 w-4 text-muted"})})]})}function dP(){const e=Dl(),{dashboard:t,isLoading:i}=rd(),s=t??e?.dashboard,u=ah(!e,e?.health),{openRun:d}=ih();if(!s||i)return m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-32"}),m.jsx("div",{className:"skeleton-text-sm w-64"})]}),m.jsx("div",{className:"space-y-3",children:[1,2,3].map(x=>m.jsxs("div",{className:"rounded-xl border border-default bg-surface p-4 flex items-center gap-4",children:[m.jsxs("div",{className:"flex-1 space-y-2",children:[m.jsx("div",{className:"skeleton-text w-36"}),m.jsx("div",{className:"skeleton-text-sm w-48"})]}),m.jsx("div",{className:"skeleton-text w-16"}),m.jsx("div",{className:"skeleton-text w-16"}),m.jsx("div",{className:"skeleton h-8 w-20 rounded"})]},x))})]});const g=s.portfolioOverview,b=u.data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},v=Eq(g.systemHealth,b,s.settings);return m.jsxs("div",{className:"page-container",children:[m.jsx("div",{className:"page-header",children:m.jsxs("div",{className:"page-header-left",children:[m.jsx("h1",{className:"page-title",children:"Portfolio"}),m.jsx("p",{className:"page-subtitle",children:"Visibility across all projects."})]})}),g.projects.length>0?m.jsx("div",{className:"project-list project-list-scrollable",children:g.projects.map(x=>m.jsx(uP,{project:x},x.project.id))}):m.jsxs(Zn,{className:"surface-card empty-card",children:[m.jsx("h3",{children:g.emptyState?.title??"No projects yet"}),m.jsx("p",{className:"supporting-copy",children:g.emptyState?.detail}),m.jsx(De,{size:"sm",asChild:!0,children:m.jsx(We,{to:g.emptyState?.ctaHref==="/setup"||!g.emptyState?.ctaHref?"/setup":"/",children:g.emptyState?.ctaLabel??"Launch setup"})})]}),m.jsxs("div",{className:"overview-secondary-grid",children:[g.attentionItems.length>0&&m.jsxs("section",{className:"overview-secondary-section",children:[m.jsx("div",{className:"section-head section-head-inline",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Needs attention"}),m.jsx("h2",{className:"section-title-sm",children:"What changed"})]})}),m.jsx("div",{className:"attention-list attention-list-scrollable",children:g.attentionItems.map(x=>x.href?m.jsxs(We,{to:x.href,className:`attention-item attention-item-${x.tone}`,children:[m.jsxs("div",{children:[m.jsx("p",{className:"attention-title",children:x.title}),m.jsx("p",{className:"attention-detail",children:x.detail})]}),x.actionLabel&&m.jsx("span",{className:"attention-action",children:x.actionLabel})]},x.id):m.jsxs("div",{className:`attention-item attention-item-static attention-item-${x.tone}`,children:[m.jsxs("div",{children:[m.jsx("p",{className:"attention-title",children:x.title}),m.jsx("p",{className:"attention-detail",children:x.detail})]}),x.actionLabel&&m.jsx("span",{className:"attention-action",children:x.actionLabel})]},x.id))})]}),m.jsxs("section",{className:"overview-secondary-section",children:[m.jsx("div",{className:"section-head section-head-inline",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Recent runs"}),m.jsx("h2",{className:"section-title-sm",children:"Activity"})]})}),m.jsx("div",{className:"compact-stack compact-stack-scrollable",children:g.recentRuns.length>0?g.recentRuns.map(x=>m.jsxs("button",{className:"compact-run",type:"button",onClick:()=>d(x.id),children:[m.jsxs("div",{children:[m.jsx("p",{className:"compact-run-title",children:x.projectName}),m.jsx("p",{className:"compact-run-detail",children:x.summary})]}),m.jsx(nh,{status:x.status})]},x.id)):m.jsx("p",{className:"supporting-copy",children:"Run history appears here after the first launch."})})]})]}),m.jsxs("section",{className:"page-section",children:[m.jsx("div",{className:"section-head section-head-inline",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"System health"}),m.jsx("h2",{className:"section-title-sm",children:"Infrastructure"})]})}),m.jsx("div",{className:"divide-y divide-default border-y border-default",children:v.map(x=>{const S=x.id==="api"?b.apiStatus:x.id==="worker"?b.workerStatus:void 0,j=S?S.state==="ok"?void 0:qo(S):x.tone==="positive"?void 0:x.meta;return m.jsxs("div",{className:"flex items-start justify-between gap-4 py-3",children:[m.jsxs("div",{children:[m.jsx("p",{className:"text-sm font-medium text-heading",children:x.label}),j&&m.jsx("p",{className:"mt-1 text-sm text-secondary",children:j})]}),m.jsx(An,{tone:x.tone,title:S?qo(S):x.meta,children:x.detail})]},x.id)})})]})]})}const lh=Symbol.for("yaml.alias"),Pf=Symbol.for("yaml.document"),Di=Symbol.for("yaml.map"),c3=Symbol.for("yaml.pair"),ja=Symbol.for("yaml.scalar"),Qo=Symbol.for("yaml.seq"),Jn=Symbol.for("yaml.node.type"),Ns=e=>!!e&&typeof e=="object"&&e[Jn]===lh,ld=e=>!!e&&typeof e=="object"&&e[Jn]===Pf,Ol=e=>!!e&&typeof e=="object"&&e[Jn]===Di,Ot=e=>!!e&&typeof e=="object"&&e[Jn]===c3,mt=e=>!!e&&typeof e=="object"&&e[Jn]===ja,Rl=e=>!!e&&typeof e=="object"&&e[Jn]===Qo;function Tt(e){if(e&&typeof e=="object")switch(e[Jn]){case Di:case Qo:return!0}return!1}function Dt(e){if(e&&typeof e=="object")switch(e[Jn]){case lh:case Di:case ja:case Qo:return!0}return!1}const u3=e=>(mt(e)||Tt(e))&&!!e.anchor,hs=Symbol("break visit"),mP=Symbol("skip children"),pl=Symbol("remove node");function Zo(e,t){const i=pP(t);ld(e)?wo(null,e.contents,i,Object.freeze([e]))===pl&&(e.contents=null):wo(null,e,i,Object.freeze([]))}Zo.BREAK=hs;Zo.SKIP=mP;Zo.REMOVE=pl;function wo(e,t,i,s){const r=fP(e,t,i,s);if(Dt(r)||Ot(r))return hP(e,s,r),wo(e,r,i,s);if(typeof r!="symbol"){if(Tt(t)){s=Object.freeze(s.concat(t));for(let u=0;u<t.items.length;++u){const d=wo(u,t.items[u],i,s);if(typeof d=="number")u=d-1;else{if(d===hs)return hs;d===pl&&(t.items.splice(u,1),u-=1)}}}else if(Ot(t)){s=Object.freeze(s.concat(t));const u=wo("key",t.key,i,s);if(u===hs)return hs;u===pl&&(t.key=null);const d=wo("value",t.value,i,s);if(d===hs)return hs;d===pl&&(t.value=null)}}return r}function pP(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function fP(e,t,i,s){if(typeof i=="function")return i(e,t,s);if(Ol(t))return i.Map?.(e,t,s);if(Rl(t))return i.Seq?.(e,t,s);if(Ot(t))return i.Pair?.(e,t,s);if(mt(t))return i.Scalar?.(e,t,s);if(Ns(t))return i.Alias?.(e,t,s)}function hP(e,t,i){const s=t[t.length-1];if(Tt(s))s.items[e]=i;else if(Ot(s))e==="key"?s.key=i:s.value=i;else if(ld(s))s.contents=i;else{const r=Ns(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${r} parent`)}}const gP={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},yP=e=>e.replace(/[!,[\]{}]/g,t=>gP[t]);class un{constructor(t,i){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},un.defaultYaml,t),this.tags=Object.assign({},un.defaultTags,i)}clone(){const t=new un(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new un(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:un.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},un.defaultTags);break}return t}add(t,i){this.atNextDocument&&(this.yaml={explicit:un.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},un.defaultTags),this.atNextDocument=!1);const s=t.trim().split(/[ \t]+/),r=s.shift();switch(r){case"%TAG":{if(s.length!==2&&(i(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;const[u,d]=s;return this.tags[u]=d,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return i(0,"%YAML directive should contain exactly one part"),!1;const[u]=s;if(u==="1.1"||u==="1.2")return this.yaml.version=u,!0;{const d=/^\d+\.\d+$/.test(u);return i(6,`Unsupported YAML version ${u}`,d),!1}}default:return i(0,`Unknown directive ${r}`,!0),!1}}tagName(t,i){if(t==="!")return"!";if(t[0]!=="!")return i(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const d=t.slice(2,-1);return d==="!"||d==="!!"?(i(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&i("Verbatim tags must end with a >"),d)}const[,s,r]=t.match(/^(.*!)([^!]*)$/s);r||i(`The ${t} tag has no suffix`);const u=this.tags[s];if(u)try{return u+decodeURIComponent(r)}catch(d){return i(String(d)),null}return s==="!"?t:(i(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[i,s]of Object.entries(this.tags))if(t.startsWith(s))return i+yP(t.substring(s.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const i=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags);let r;if(t&&s.length>0&&Dt(t.contents)){const u={};Zo(t.contents,(d,g)=>{Dt(g)&&g.tag&&(u[g.tag]=!0)}),r=Object.keys(u)}else r=[];for(const[u,d]of s)u==="!!"&&d==="tag:yaml.org,2002:"||(!t||r.some(g=>g.startsWith(d)))&&i.push(`%TAG ${u} ${d}`);return i.join(`
|
|
65
|
-
`)}}un.defaultYaml={explicit:!1,version:"1.2"};un.defaultTags={"!!":"tag:yaml.org,2002:"};function d3(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const i=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(i)}return!0}function m3(e){const t=new Set;return Zo(e,{Value(i,s){s.anchor&&t.add(s.anchor)}}),t}function p3(e,t){for(let i=1;;++i){const s=`${e}${i}`;if(!t.has(s))return s}}function
|
|
63
|
+
`)}}}finally{d?.removeEventListener("abort",_);try{x.releaseLock()}catch{}}}function o3(e){return!e||e.role!=="assistant"?"":e.content.filter(t=>t.type==="text").map(t=>t.text).join("")}const IL=[{label:"Status",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{label:"Top insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{label:"Last failed run",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{label:"Schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"}],LL=[{command:"/status",label:"Status",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{command:"/insights",label:"Top insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{command:"/last-run",label:"Last run",prompt:"Summarize the latest run for this project — provider mix, visibility changes, and anything that moved."},{command:"/last-failed",label:"Last failed run",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{command:"/run-sweep",label:"Run sweep now",prompt:"Run a new answer-visibility sweep for this project now and tell me when it lands."},{command:"/schedule",label:"Schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"},{command:"/queries",label:"Queries",prompt:"List the tracked queries for this project and flag any that are obvious duplicates or underperformers."},{command:"/competitors",label:"Competitors",prompt:"List this project's tracked competitors and call out which ones are showing up in answer citations."},{command:"/clear",label:"Clear conversation",action:"clear"}],lu=e=>`canonry:aero:provider:${e}`,Wv=e=>`canonry:aero:scope:${e}`;function PL({projectName:e}){const[t,i]=B.useState(!1),[s,r]=B.useState(!1),[u,d]=B.useState([]),[g,b]=B.useState(""),[v,x]=B.useState(!1),[S,j]=B.useState([]),[_,T]=B.useState(""),[N,C]=B.useState(null),[O,I]=B.useState(()=>typeof window>"u"?null:window.localStorage.getItem(lu(e))??null),[$,K]=B.useState(()=>typeof window>"u"?"read-only":window.localStorage.getItem(Wv(e))==="all"?"all":"read-only"),Z=B.useRef(null),{ref:se}=RL([u,_,S]),R=B.useRef(null),[q,pe]=B.useState(0),ue=B.useMemo(()=>{const ne=g.trimStart();if(!ne.startsWith("/"))return[];if(/\s/.test(ne))return[];const H=ne.toLowerCase();return LL.filter(X=>X.command.startsWith(H)||X.label.toLowerCase().includes(H.slice(1)))},[g]);B.useEffect(()=>{pe(ne=>ue.length===0?0:Math.min(ne,ue.length-1))},[ue.length]);const fe=mn({...zq({client:le,path:{name:e}}),enabled:t,staleTime:6e4}),we=B.useMemo(()=>{const ne=fe.data?.providers??[];if(O){const X=ne.find(ie=>ie.id===O&&ie.configured);if(X)return X}const H=fe.data?.defaultProvider;return H?ne.find(X=>X.id===H)??null:null},[O,fe.data]);B.useEffect(()=>{if(!fe.data||!O)return;fe.data.providers.find(H=>H.id===O&&H.configured)||(I(null),window.localStorage.removeItem(lu(e)))},[fe.data,O,e]);const Te=B.useCallback(ne=>{I(ne),!(typeof window>"u")&&(ne?window.localStorage.setItem(lu(e),ne):window.localStorage.removeItem(lu(e)))},[e]),it=B.useCallback(()=>{K(ne=>{const H=ne==="all"?"read-only":"all";return typeof window<"u"&&window.localStorage.setItem(Wv(e),H),H})},[e]);B.useEffect(()=>{if(!t)return;const ne=H=>{H.key==="Escape"&&(s?r(!1):i(!1))};return window.addEventListener("keydown",ne),()=>window.removeEventListener("keydown",ne)},[t,s]),B.useEffect(()=>{if(!t)return;let ne=!1;C(null);const H=()=>{ne||v||Jv(e).then(re=>{ne||d(re.messages)}).catch(re=>{ne||C(re instanceof Error?re.message:"Failed to load transcript")})};H();const ie=window.setInterval(H,15e3);return()=>{ne=!0,window.clearInterval(ie)}},[t,e,v]),B.useEffect(()=>()=>{Z.current?.abort()},[e]);async function ge(ne){const H=ne.trim();if(!H||v)return;C(null),b(""),x(!0),T(""),j([]);const X={role:"user",content:H,timestamp:Date.now()};d(re=>[...re,X]);const ie=new AbortController;Z.current=ie;try{await qL({project:e,prompt:H,provider:O??void 0,scope:$,signal:ie.signal,onEvent:Q});const re=await Jv(e);d(re.messages)}catch(re){re.name!=="AbortError"&&C(re instanceof Error?re.message:"Prompt failed")}finally{x(!1),T(""),Z.current=null}}function Q(ne){switch(ne.type){case"message_update":T(o3(ne.message));break;case"message_end":ne.message.role==="assistant"&&T("");break;case"tool_execution_start":j(H=>[...H,{id:ne.toolCallId,name:ne.toolName,args:ne.args,startedAt:Date.now()}]);break;case"tool_execution_end":j(H=>H.map(X=>X.id===ne.toolCallId?{...X,endedAt:Date.now(),isError:ne.isError,result:ne.result}:X));break;case"error":C(ne.message);break}}async function oe(){Z.current?.abort();try{await BL(e),d([]),C(null)}catch(ne){C(ne instanceof Error?ne.message:"Reset failed")}}const me=u.length===0,Ce=t&&s?"pointer-events-auto fixed inset-0 z-40 flex items-stretch justify-center bg-bg/70 p-4 sm:p-8 backdrop-blur-sm":"pointer-events-none fixed inset-x-0 bottom-0 z-40 flex justify-center p-3",ce=s?"pointer-events-auto flex h-full w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-2xl":"pointer-events-auto w-full max-w-3xl",He=s?"flex-1 overflow-y-auto px-6 py-5 text-sm text-strong":"max-h-[40vh] min-h-[120px] overflow-y-auto px-4 py-3 text-sm text-strong";return m.jsx("div",{className:Ce,onClick:ne=>{s&&ne.target===ne.currentTarget&&r(!1)},children:m.jsx("div",{className:ce,children:t?m.jsxs("div",{className:s?"flex h-full flex-col":"flex flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-xl backdrop-blur",children:[m.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-mono-800/70 px-4 py-2.5",children:[m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(Ab,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),m.jsx("span",{className:"text-sm font-medium text-heading",children:"Aero"}),m.jsx("span",{className:"text-[10px] uppercase tracking-wider text-muted",children:v?"working…":e})]}),m.jsxs("div",{className:"flex items-center gap-1",children:[m.jsx($L,{providers:fe.data?.providers??[],active:we,override:O,onPick:Te,disabled:v}),m.jsx("button",{type:"button",onClick:nn(oe),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Reset conversation",title:"Reset conversation",children:m.jsx(ik,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),m.jsx("button",{type:"button",onClick:()=>r(ne=>!ne),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":s?"Collapse":"Expand",title:s?"Collapse":"Expand",children:s?m.jsx(zN,{className:"h-3.5 w-3.5","aria-hidden":"true"}):m.jsx(AN,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),m.jsx("button",{type:"button",onClick:()=>{r(!1),i(!1)},className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Close Aero",children:m.jsx($o,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),m.jsxs("div",{ref:se,className:He,children:[N&&m.jsx("div",{className:"mb-2 rounded-md border border-negative-700/40 bg-negative-950/40 px-3 py-2 text-xs text-negative-200",children:N}),me&&!v&&m.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[m.jsxs("p",{className:"text-sm text-secondary",children:["Ask about ",m.jsx("span",{className:"text-strong",children:e})," or choose a starting point."]}),m.jsx("div",{className:"flex flex-wrap gap-1.5",children:IL.map(ne=>m.jsx("button",{type:"button",onClick:()=>{ge(ne.prompt)},className:"rounded-md border border-base bg-bg-elevated/70 px-3 py-1.5 text-sm text-neutral transition hover:border-strong hover:bg-mono-800/70 hover:text-heading",children:ne.label},ne.label))})]}),HL(u,e,O,$),S.length>0&&m.jsx("div",{className:"mt-3 space-y-1.5",children:S.map(ne=>m.jsx(r3,{trail:ne},ne.id))}),v&&_&&m.jsxs("div",{className:"mt-3",children:[m.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),m.jsx(l3,{content:_})]}),v&&!_&&S.every(ne=>ne.endedAt!==void 0)&&m.jsx(YL,{})]}),m.jsx(UL,{projectName:e,activeProvider:we,scope:$,onToggleScope:it,disabled:v}),m.jsxs("div",{className:"relative",children:[ue.length>0&&m.jsx(VL,{matches:ue,selectedIndex:q,onHover:pe,onPick:ne=>{b(""),R.current?.focus(),ne.action==="clear"?oe():ge(ne.prompt)}}),m.jsxs("form",{className:"flex items-end gap-2 border-t border-mono-800/70 bg-bg/80 px-3 py-2.5",onSubmit:ne=>{if(ne.preventDefault(),ue.length>0){const H=ue[q];b(""),H.action==="clear"?oe():ge(H.prompt);return}ge(g)},children:[m.jsx("textarea",{ref:R,value:g,onChange:ne=>b(ne.target.value),onKeyDown:ne=>{if(ue.length>0){if(ne.key==="ArrowDown"){ne.preventDefault(),pe(H=>(H+1)%ue.length);return}if(ne.key==="ArrowUp"){ne.preventDefault(),pe(H=>(H-1+ue.length)%ue.length);return}if(ne.key==="Tab"){ne.preventDefault();const H=ue[q];b(`${H.command} `);return}if(ne.key==="Escape"){ne.preventDefault(),b("");return}}if(ne.key==="Enter"&&!ne.shiftKey)if(ne.preventDefault(),ue.length>0){const H=ue[q];b(""),H.action==="clear"?oe():ge(H.prompt)}else ge(g)},placeholder:"Ask Aero, or / for commands…",disabled:v,rows:s?3:1,className:"flex-1 resize-none bg-transparent text-sm text-heading placeholder:text-mono-600 focus:outline-none disabled:opacity-60"}),m.jsx("button",{type:"submit",disabled:v||!g.trim(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-positive-500 text-accent-fg transition hover:bg-positive-400 disabled:opacity-40","aria-label":"Send",children:m.jsx(aN,{className:"h-3.5 w-3.5","aria-hidden":"true"})})]})]})]}):m.jsx("button",{type:"button",onClick:()=>i(!0),className:"flex w-full items-center justify-between rounded-lg border border-mono-800/80 bg-bg/95 px-4 py-2 text-left text-sm text-secondary shadow-lg transition hover:border-strong hover:bg-bg-elevated/90 hover:text-strong",children:m.jsxs("span",{className:"flex items-center gap-2",children:[m.jsx(Ab,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),"Ask Aero about ",e,"…"]})})})})}function $L({providers:e,active:t,override:i,onPick:s,disabled:r}){const[u,d]=B.useState(!1),g=B.useRef(null);if(B.useEffect(()=>{if(!u)return;const v=S=>{g.current?.contains(S.target)||d(!1)},x=S=>{S.key==="Escape"&&d(!1)};return window.addEventListener("mousedown",v),window.addEventListener("keydown",x),()=>{window.removeEventListener("mousedown",v),window.removeEventListener("keydown",x)}},[u]),e.length===0)return null;const b=t?.label.replace(/\s+\(.+\)$/,"")??"No provider";return m.jsxs("div",{ref:g,className:"relative",children:[m.jsxs("button",{type:"button",onClick:()=>d(v=>!v),disabled:r,className:"flex items-center gap-1 rounded-md px-2 py-1 text-sm text-secondary transition hover:bg-surface-inset hover:text-strong disabled:opacity-50","aria-label":"Switch agent model","aria-haspopup":"listbox","aria-expanded":u,title:t?`${t.label} · ${t.defaultModel}`:"Pick a provider",children:[m.jsx("span",{className:"font-medium text-strong",children:b}),m.jsx(nk,{className:"h-3 w-3","aria-hidden":"true"})]}),u&&m.jsxs("div",{role:"listbox",className:"absolute right-0 top-full z-50 mt-1 w-64 overflow-hidden rounded-lg border border-base bg-bg shadow-xl",children:[m.jsx("div",{className:"border-b border-default px-3 py-2 text-sm font-medium text-secondary",children:"Answer engine"}),m.jsx("ul",{className:"max-h-72 overflow-y-auto py-1",children:e.map(v=>{const x=t?.id===v.id,S=i===v.id;return m.jsx("li",{children:m.jsxs("button",{type:"button",role:"option","aria-selected":x,disabled:!v.configured,onClick:()=>{v.configured&&(s(S?null:v.id),d(!1))},className:"flex w-full items-center gap-2 px-3 py-2.5 text-left text-sm transition enabled:hover:bg-bg-elevated disabled:cursor-not-allowed disabled:opacity-60",title:v.configured?v.defaultModel:`Add ${KL(v.id)} in Settings or your environment`,children:[m.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center",children:x?m.jsx(tk,{className:"h-3 w-3 text-positive-400","aria-hidden":"true"}):null}),m.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-heading",children:v.label.replace(/\s+\(.+\)$/,"")}),S&&m.jsx("span",{className:"rounded-md border border-positive-800/60 bg-positive-950/60 px-2 py-0.5 text-[11px] text-positive",children:"Pinned"}),!v.configured&&m.jsx("span",{className:"rounded-md border border-base px-2 py-0.5 text-[11px] text-secondary",children:"Needs setup"})]})},v.id)})}),i&&m.jsx("button",{type:"button",onClick:()=>{s(null),d(!1)},className:"w-full border-t border-default px-3 py-2 text-left text-[11px] text-secondary transition hover:bg-bg-elevated hover:text-heading",children:"Reset to auto-detected default"})]})]})}function UL({projectName:e,activeProvider:t,scope:i,onToggleScope:s,disabled:r}){const u=t?.label.replace(/\s+\(.+\)$/,"")??null,d=i==="all";return m.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-t border-mono-800/70 bg-bg/80 px-3 pt-2 text-sm text-secondary",children:[m.jsx("span",{className:"font-medium text-strong",children:e}),u&&m.jsxs(m.Fragment,{children:[m.jsx("span",{"aria-hidden":"true",children:"·"}),m.jsx("span",{children:u})]}),m.jsx("button",{type:"button",onClick:s,disabled:r,className:`ml-auto inline-flex items-center rounded-md border px-2 py-1 text-sm font-medium transition disabled:opacity-50 ${d?"border-caution-800/60 bg-caution-950/40 text-caution hover:border-caution-700 hover:text-caution-200":"border-base bg-bg-elevated/70 text-secondary hover:border-strong hover:text-strong"}`,title:d?"Aero can invoke write tools (run sweep, dismiss insight, etc). Click to restrict.":"Aero is restricted to read-only tools. Click to allow writes.",children:d?"Can make changes":"Read only"})]})}function VL({matches:e,selectedIndex:t,onHover:i,onPick:s}){return m.jsxs("div",{className:"absolute inset-x-3 bottom-full mb-2 overflow-hidden rounded-lg border border-base bg-bg/98 shadow-2xl",children:[m.jsx("div",{className:"border-b border-default px-3 py-1.5 text-[10px] uppercase tracking-wider text-muted",children:"Commands"}),m.jsx("ul",{role:"listbox",className:"max-h-72 overflow-y-auto py-1",children:e.map((r,u)=>{const d=u===t;return m.jsx("li",{children:m.jsxs("button",{type:"button",role:"option","aria-selected":d,onMouseEnter:()=>i(u),onClick:()=>s(r),className:`flex w-full items-center gap-3 px-3 py-2 text-left text-sm transition ${d?"bg-bg-elevated text-heading":"text-neutral hover:bg-bg-elevated/60"}`,children:[m.jsx("span",{className:"font-medium",children:r.label}),m.jsx("span",{className:"ml-auto font-mono text-[11px] text-secondary",children:r.command})]})},r.command)})})]})}function KL(e){switch(e){case"claude":return"ANTHROPIC_API_KEY";case"openai":return"OPENAI_API_KEY";case"gemini":return"GOOGLE_API_KEY";case"zai":return"ZAI_API_KEY";case"deepinfra":return"DEEPINFRA_TOKEN"}}function GL(e,t){const i=e.timestamp??0;return`${e.role}:${i}:${t}`}function HL(e,t,i,s){const r=[];for(let u=0;u<e.length;u++){const d=e[u],g=GL(d,u);if(d.role==="user"){const b=typeof d.content=="string"?d.content:JSON.stringify(d.content);if(b.startsWith("[system]"))continue;r.push(m.jsx(QL,{text:b,projectName:t,providerOverride:i,scope:s},g));continue}if(d.role==="assistant"){const b=new Map;let v=u+1;for(;v<e.length&&e[v].role==="toolResult";){const j=e[v];b.set(j.toolCallId,j),v++}const x=FL(d,b,d.timestamp??0),S=o3(d);r.push(m.jsxs(B.Fragment,{children:[x.length>0&&m.jsx("div",{className:"mt-3 space-y-1.5",children:x.map(j=>m.jsx(r3,{trail:j},j.id))}),S.trim()&&m.jsxs("div",{className:"mt-3",children:[m.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),m.jsx(l3,{content:S})]})]},g)),u=v-1;continue}}return r}function QL({text:e,projectName:t,providerOverride:i,scope:s}){const[r,u]=B.useState(!1),d=B.useMemo(()=>ZL(t,e,i,s),[t,e,i,s]);async function g(){try{await navigator.clipboard.writeText(d),u(!0),window.setTimeout(()=>u(!1),1500)}catch{}}return m.jsxs("div",{className:"group relative mt-3 rounded-md bg-bg-elevated/60 px-3 py-2 text-strong",children:[m.jsxs("div",{className:"flex items-center justify-between gap-2",children:[m.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted",children:"You"}),m.jsx("button",{type:"button",onClick:nn(g),className:"inline-flex items-center gap-1 rounded border border-mono-800/70 bg-bg/60 px-1.5 py-0.5 text-[10px] text-secondary opacity-0 transition hover:border-strong hover:text-heading group-hover:opacity-100 focus:opacity-100","aria-label":"Copy as CLI command",title:d,children:r?m.jsxs(m.Fragment,{children:[m.jsx(tk,{className:"h-2.5 w-2.5 text-positive-400","aria-hidden":"true"}),"Copied"]}):m.jsxs(m.Fragment,{children:[m.jsx(uN,{className:"h-2.5 w-2.5","aria-hidden":"true"}),"Copy as CLI"]})})]}),m.jsx("div",{className:"whitespace-pre-wrap",children:e})]})}function ZL(e,t,i,s){const r=["canonry","agent","ask",e2(e),e2(t)];return i&&r.push("--provider",i),s==="read-only"&&r.push("--scope","read-only"),r.join(" ")}function e2(e){return`'${e.replace(/'/g,"'\\''")}'`}function FL(e,t,i){const s=[];for(const r of e.content){if(r.type!=="toolCall")continue;const u=r,d=t.get(u.id);s.push({id:u.id,name:u.name,args:u.arguments,startedAt:i,endedAt:d?.timestamp,isError:d?.isError,result:d?.content})}return s}function r3({trail:e}){const[t,i]=B.useState(!1),s=e.endedAt===void 0,r=!s&&e.isError===!0,u=e.endedAt!=null?e.endedAt-e.startedAt:null,d=u==null||u<0?null:u<1e3?`${u}ms`:`${(u/1e3).toFixed(1)}s`,g=r?"border-negative-800/50":s?"border-positive-800/50":"border-mono-800/70",b=r?"bg-negative-950/20":s?"bg-positive-950/20":"bg-surface-hover";return m.jsxs("div",{className:`rounded-md border ${g} ${b} font-mono`,children:[m.jsxs("button",{type:"button",onClick:()=>i(v=>!v),className:"flex w-full items-center gap-2 px-2.5 py-1.5 text-left","aria-expanded":t,children:[m.jsx("span",{className:"flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:s?m.jsx(ak,{className:"h-3 w-3 animate-spin text-positive-400","aria-hidden":"true"}):r?m.jsx(sk,{className:"h-3 w-3 text-negative-400","aria-hidden":"true"}):m.jsx(FN,{className:"h-3 w-3 text-muted","aria-hidden":"true"})}),m.jsx("span",{className:"text-[11px] font-semibold text-heading",children:e.name}),m.jsxs("span",{className:"ml-auto flex items-center gap-2 text-[10px] text-muted",children:[s?m.jsx("span",{className:"text-positive-400",children:"running…"}):m.jsxs(m.Fragment,{children:[m.jsx("span",{children:r?"failed":"ok"}),d&&m.jsx("span",{children:d})]}),m.jsx(n0,{className:`h-3 w-3 transition-transform ${t?"rotate-90":""}`,"aria-hidden":"true"})]})]}),t&&m.jsxs("div",{className:"border-t border-default px-2.5 py-2 text-[11px] text-secondary",children:[m.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:"Args"}),m.jsx("pre",{className:"mb-2 overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:t2(e.args)}),!s&&e.result!==void 0&&m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:r?"Error":"Result"}),m.jsx("pre",{className:"overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:t2(e.result)})]})]})]})}function t2(e){try{const t=typeof e=="string"?e:JSON.stringify(e,null,2);return t.length>2e3?`${t.slice(0,2e3)}
|
|
64
|
+
… (${t.length-2e3} more chars)`:t}catch{return String(e)}}function l3({content:e}){return m.jsx("div",{className:"text-heading",children:m.jsx(p4,{components:{h1:t=>m.jsx("h1",{...t,className:"mt-3 mb-2 text-base font-semibold text-primary"}),h2:t=>m.jsx("h2",{...t,className:"mt-3 mb-2 text-sm font-semibold text-primary"}),h3:t=>m.jsx("h3",{...t,className:"mt-3 mb-1.5 text-sm font-semibold text-heading"}),h4:t=>m.jsx("h4",{...t,className:"mt-2 mb-1 text-xs font-semibold uppercase tracking-wide text-neutral"}),p:t=>m.jsx("p",{...t,className:"mb-2 leading-relaxed"}),ul:t=>m.jsx("ul",{...t,className:"mb-2 ml-4 list-disc space-y-1"}),ol:t=>m.jsx("ol",{...t,className:"mb-2 ml-4 list-decimal space-y-1"}),li:t=>m.jsx("li",{...t,className:"marker:text-mono-600"}),strong:t=>m.jsx("strong",{...t,className:"font-semibold text-primary"}),em:t=>m.jsx("em",{...t,className:"text-strong"}),code:({children:t,...i})=>m.jsx("code",{...i,className:"rounded bg-mono-800/70 px-1 py-0.5 font-mono text-[12px] text-positive-200",children:t}),pre:t=>m.jsx("pre",{...t,className:"mb-2 overflow-x-auto rounded-md border border-base bg-bg-elevated/70 p-3 font-mono text-xs text-strong"}),a:t=>m.jsx("a",{...t,className:"text-positive-400 underline decoration-positive-700 hover:decoration-positive-400",target:"_blank",rel:"noopener noreferrer"}),table:t=>m.jsx("div",{className:"mb-2 overflow-x-auto",children:m.jsx("table",{...t,className:"w-full border-collapse text-xs"})}),thead:t=>m.jsx("thead",{...t,className:"border-b border-base"}),th:t=>m.jsx("th",{...t,className:"px-2 py-1 text-left font-semibold text-neutral"}),tr:t=>m.jsx("tr",{...t,className:"border-b border-mono-900"}),td:t=>m.jsx("td",{...t,className:"px-2 py-1 text-strong"}),blockquote:t=>m.jsx("blockquote",{...t,className:"mb-2 border-l-2 border-strong pl-3 italic text-secondary"}),hr:()=>m.jsx("hr",{className:"my-3 border-base"})},children:e})})}function YL(){return m.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[m.jsx("div",{className:"text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),m.jsxs("div",{className:"flex items-center gap-1","aria-label":"Aero is thinking",children:[m.jsx("span",{className:"aero-dot h-1.5 w-1.5 rounded-full bg-positive-400/80"}),m.jsx("span",{className:"aero-dot aero-dot-2 h-1.5 w-1.5 rounded-full bg-positive-400/60"}),m.jsx("span",{className:"aero-dot aero-dot-3 h-1.5 w-1.5 rounded-full bg-positive-400/40"})]})]})}function XL(){const e=S2(),t=/^\/projects\/([^/]+)/.exec(e.pathname),i=t?decodeURIComponent(t[1]):null,s=mn({...nd({client:le}),enabled:i!==null,staleTime:6e4});if(!i)return null;const r=s.data??[],u=r.find(d=>d.id===i)??r.find(d=>d.name===i);return u?m.jsx(PL,{projectName:u.name},u.name):null}const JL={project:"getApiV1ProjectsByName",google:"getApiV1ProjectsByNameGoogle",gsc:"getApiV1ProjectsByNameGoogleGsc",bing:"getApiV1ProjectsByNameBing",ga:"getApiV1ProjectsByNameGa",gbp:"getApiV1ProjectsByNameGbp",ads:"getApiV1ProjectsByNameAds",traffic:"getApiV1ProjectsByNameTraffic",discovery:"getApiV1ProjectsByNameDiscover",researchRuns:"getApiV1ProjectsByNameResearchRuns",technicalAeo:"getApiV1ProjectsByNameTechnicalAeo",runs:"getApiV1ProjectsByNameRuns"};function Sa(e,t){const i=JL[t];return e.invalidateQueries({predicate:s=>{const r=s.queryKey[0];return typeof r?._id=="string"&&r._id.startsWith(i)}})}function Mu(e,t,i){switch(e.invalidateQueries({queryKey:X0({client:le})}),e.invalidateQueries({queryKey:Ho({client:le})}),Sa(e,"runs"),t){case Oe["answer-visibility"]:return;case Oe["backlink-extract"]:return;case Oe["site-audit"]:Sa(e,"technicalAeo");return;case Oe["gsc-sync"]:case Oe["inspect-sitemap"]:Sa(e,"gsc");return;case Oe["ga-sync"]:Sa(e,"ga");return;case Oe["traffic-sync"]:Sa(e,"ga"),Sa(e,"traffic");return;case Oe["bing-inspect"]:case Oe["bing-inspect-sitemap"]:Sa(e,"bing");return;case Oe["aeo-discover-seed"]:case Oe["aeo-discover-probe"]:return;case Oe["gbp-sync"]:Sa(e,"gbp");return;case Oe["ads-sync"]:Sa(e,"ads");return;default:return t}}const n2=[{label:"GitHub",href:"https://github.com/Canonry/canonry",Icon:fN},{label:"Docs",href:"https://github.com/Canonry/canonry/tree/main/docs",Icon:sN},{label:"Changelog",href:"https://github.com/Canonry/canonry/releases",Icon:mN}],a2=e=>({label:e,state:"checking",detail:"Checking service health"}),WL={apiStatus:a2("API"),workerStatus:a2("Worker")};function eP(e){return e==="completed"?"positive":e==="partial"?"caution":"negative"}function tP(e){const t=cl(e.kind);return e.status==="completed"?`${t} completed`:e.status==="partial"?`${t} completed with partial results`:e.status==="cancelled"?`${t} cancelled`:`${t} failed`}function nP(e,t){return e.error?`${t}: ${T0(e.error)}`:e.location?`${t} · ${e.location}`:t}function i2(e,t,i){if(t)return t;const s=i.find(r=>r.id===e);return s?.displayName||s?.name||e}function aP(e,t){return[e.completed>0?`${e.completed} completed`:null,e.partial>0?`${e.partial} partial`:null,e.failed>0?`${e.failed} failed`:null,e.cancelled>0?`${e.cancelled} cancelled`:null,t>0?`${t} skipped at queue time`:null].filter(Boolean).join(", ")}function iP(e){return e.failed>0||e.cancelled>0?"negative":e.partial>0?"caution":"positive"}function sP(){const e=Mi(),t=B.useSyncExternalStore(Rx,Ya,Ya),i=Object.keys(t.runs).length>0||Object.keys(t.batches).length>0,s=mn({...J0({client:le}),enabled:i,staleTime:zo,refetchInterval:3e3}),r=mn({...nd({client:le}),enabled:i}),u=B.useRef({}),d=B.useCallback(()=>{s.refetch()},[s.refetch]);return B.useEffect(()=>{i&&d()},[i,d]),B.useEffect(()=>{if(!i||typeof window>"u")return;const g=()=>{document.visibilityState==="visible"&&d()};return window.addEventListener("focus",d),document.addEventListener("visibilitychange",g),()=>{window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",g)}},[i,d]),B.useEffect(()=>{const g=s.data??[],b=r.data??[],v=Object.fromEntries(g.map(S=>[S.id,S])),x=Object.fromEntries(g.map(S=>[S.id,S.status]));for(const S of Object.values(t.runs)){const j=v[S.runId];if(!j||!Pq(j.status)||(u.current[j.id]??S.lastAnnouncedStatus)===j.status)continue;const T=b.find(C=>C.id===j.projectId);if(T&&Mu(e,j.kind,T.name),S.sourceAction==="run-all"){ef(j.id);continue}const N=i2(j.projectId,S.projectLabel,b);pn({title:tP(j),detail:nP(j,N),tone:eP(j.status),dedupeKey:`run:${j.id}`,dedupeMode:"replace",cta:{label:"View run",intent:"open-run-drawer",runId:j.id}}),ef(j.id)}if(s.data!==void 0){const S=new Set(g.map(_=>_.id)),j=Uq(Object.values(t.runs),S,Date.now(),$q);for(const _ of j){const T=b.find(N=>N.id===_.projectId);T&&Mu(e,_.kind,T.name),_.sourceAction!=="run-all"&&pn({title:`${cl(_.kind)} status unavailable`,detail:i2(_.projectId,_.projectLabel,b),tone:"neutral",dedupeKey:`run-stale:${_.runId}`,dedupeMode:"replace"}),ef(_.runId)}}for(const S of Object.values(t.batches)){const j=Vq(S.runIds,v);j.finished&&(pn({title:"Run-all batch finished",detail:aP(j,S.skippedCount),tone:iP(j),dedupeKey:`batch:${S.batchId}`,dedupeMode:"replace",cta:{label:"View runs",intent:"go-to-runs"}}),Lq(S.batchId))}u.current=x},[r.data,s.data,t,e]),null}function oP(){const{account:e,isAdmin:t}=xl(),i=Dl(),s=B.useMemo(()=>G2(),[]),r=B.useMemo(tA,[]),u=B.useMemo(nA,[]),d=B.useMemo(aA,[]),{dashboard:g,isLoading:b,refetch:v}=rd(void 0,{includeSettings:!s}),j=ah(!i,i?.health).data??i?.health??WL,_=S2(),{runId:T,evidenceId:N,closeDrawer:C}=ih(),[O,I]=B.useState(!1),[$,K]=B.useState(()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem("canonry:sidebarHidden")==="true"}catch{return!1}}),[Z,se]=B.useState(()=>{if(typeof window>"u")return null;try{return window.localStorage.getItem("canonry:dismissedUpdateVersion")}catch{return null}}),[R]=B.useState(()=>typeof window>"u"?null:new URLSearchParams(window.location.search).get("force-update")),q=R?{current:j.apiStatus.version??"0.0.0",latest:R,url:"https://www.npmjs.com/package/@canonry/canonry",upgradeCommand:"npm install -g @canonry/canonry"}:j.apiStatus.updateAvailable,pe=d&&q&&q.latest!==Z,ue=()=>{if(q){try{window.localStorage.setItem("canonry:dismissedUpdateVersion",q.latest)}catch{}se(q.latest)}},fe=()=>{const H=!$;try{H?window.localStorage.setItem("canonry:sidebarHidden","true"):window.localStorage.removeItem("canonry:sidebarHidden")}catch{}K(H)},we=zL(T),Te=we.data??null,it=we.isLoading;B.useEffect(()=>{Te&&Te.status!=="running"&&Te.status!=="queued"&&v()},[Te?.status,v]),B.useEffect(()=>{I(!1)},[_.pathname]),B.useEffect(()=>{if(typeof window>"u"||!T&&!N)return;const H=X=>{X.key==="Escape"&&C()};return window.addEventListener("keydown",H),()=>{window.removeEventListener("keydown",H)}},[T,N,C]);const ge=g??i?.dashboard??null,Q=_.pathname==="/setup"&&ge!==null&&ge.portfolioOverview.projects.length===0,oe=Q?"app-shell-focus":$?"app-shell-sidebar-hidden":"",me=T?(ge?tL(ge,T):void 0)??(Te?od(Te,ge?.projects.find(H=>H.project.id===Te.projectId)?.project.displayName??ge?.projects.find(H=>H.project.id===Te.projectId)?.project.name??"Unknown project"):void 0):void 0,Ce=B.useMemo(()=>FI(_.pathname,ge),[_.pathname,ge]),{commandCenter:ce}=NL(Ce),He=B.useMemo(()=>{if(N)return aL(ce,ge,N)},[N,ce,ge]),ne=(()=>{const H=_.pathname;if(H==="/")return"Portfolio";if(H==="/projects")return"Projects";if(H==="/runs")return"Runs";if(H==="/history")return"History";if(H==="/settings")return"Settings";if(H==="/setup")return"Setup";if(H==="/backlinks")return"Backlink data";if(H==="/traffic"||H.startsWith("/traffic/"))return"Traffic sources";if(H.startsWith("/projects/")){const ie=H.split("/").filter(Boolean)[1];if(ie&&ge){const re=ge.projects.find(ze=>ze.project.id===ie);if(re)return re.project.name}return"Project"}return"Not found"})();if(B.useEffect(()=>{const H=xB(s?.theme);if(!H)return;const X=document.createElement("link");return X.rel="stylesheet",X.href=H,document.head.appendChild(X),()=>{document.head.removeChild(X)}},[s]),s){const H=!s.views||s.views.includes(hB(_.pathname));return m.jsxs("div",{className:"app-shell app-shell-embed","data-theme":kB(s.theme),style:wB(s.theme),children:[m.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),m.jsx("main",{id:"content",className:"page-shell",children:H?m.jsx(mf,{}):m.jsx("div",{className:"embed-view-unavailable",role:"status",children:"This view is not available in embed mode."})})]})}return m.jsxs("div",{className:`app-shell ${oe}`,children:[m.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),!Q&&!$&&m.jsxs("aside",{id:"desktop-sidebar",className:"sidebar","aria-label":"Primary navigation",children:[m.jsx("div",{className:"sidebar-brand",children:m.jsx(Gv,{version:j.apiStatus.version,updateAvailable:pe?q:null,onDismissUpdate:ue})}),m.jsxs("nav",{className:"sidebar-nav",children:[m.jsxs(We,{to:"/",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(kN,{className:"sidebar-icon"}),m.jsx("span",{children:"Portfolio"})]}),m.jsxs(We,{to:"/projects",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[m.jsx(gN,{className:"sidebar-icon"}),m.jsx("span",{children:"Projects"})]}),m.jsxs(We,{to:"/runs",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(MN,{className:"sidebar-icon"}),m.jsx("span",{children:"Runs"})]}),m.jsxs(We,{to:"/history",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(bN,{className:"sidebar-icon"}),m.jsx("span",{children:"History"})]}),m.jsxs(We,{to:"/traffic",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[m.jsx(IN,{className:"sidebar-icon"}),m.jsx("span",{children:"Traffic sources"})]}),m.jsxs(We,{to:"/backlinks",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(xN,{className:"sidebar-icon"}),m.jsx("span",{children:"Backlink data"})]}),t&&m.jsxs(We,{to:"/settings",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx(HN,{className:"sidebar-icon"}),m.jsx("span",{children:"Settings"})]}),b?m.jsxs(m.Fragment,{children:[m.jsx("p",{className:"sidebar-section-title",children:"Tracked projects"}),[1,2,3].map(H=>m.jsxs("div",{className:"sidebar-skeleton-item",children:[m.jsx("span",{className:"skeleton-circle size-2"}),m.jsx("span",{className:"skeleton-text flex-1",style:{width:`${50+H*15}%`}})]},H))]}):ge&&ge.projects.length>0?m.jsxs(m.Fragment,{children:[m.jsx("p",{className:"sidebar-section-title",children:"Tracked projects"}),ge.projects.map(H=>{const X=H.visibilitySummary.tone;return m.jsxs(We,{to:"/projects/$projectName",params:{projectName:H.project.name},className:"sidebar-project",activeProps:{className:"sidebar-project sidebar-project-active"},children:[m.jsx("span",{className:`sidebar-dot sidebar-dot-${X}`}),m.jsx("span",{children:H.project.displayName||H.project.name})]},H.project.id)})]}):b?null:m.jsxs(m.Fragment,{children:[m.jsx("p",{className:"sidebar-section-title",children:"Resources"}),t&&m.jsxs(We,{to:"/setup",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[m.jsx($N,{className:"sidebar-icon"}),m.jsx("span",{children:"Setup"})]})]})]}),e&&m.jsxs("div",{className:"sidebar-account",children:[m.jsxs("div",{className:"sidebar-account-identity",children:[m.jsx("span",{className:"sidebar-account-name",children:e.name}),e.role==="viewer"?m.jsx("span",{className:"sidebar-account-role",children:"View only"}):null]}),m.jsx(De,{type:"button",variant:"ghost",size:"sm",onClick:nn(async()=>{await vb(),window.location.reload()}),children:"Sign out"})]}),r?m.jsx("div",{className:"sidebar-footer",children:n2.map(({label:H,href:X,Icon:ie})=>m.jsx("a",{className:"sidebar-footer-icon",href:X,target:"_blank",rel:"noopener noreferrer",title:H,"aria-label":H,children:m.jsx(ie,{className:"size-4"})},X))}):null]}),m.jsxs("div",{className:"main-area",children:[m.jsxs("header",{className:"topbar",children:[m.jsxs("div",{className:"topbar-left",children:[!Q&&m.jsx(De,{className:"sidebar-privacy-toggle",variant:"ghost",size:"icon",type:"button","aria-label":$?"Show sidebar":"Hide sidebar","aria-controls":$?void 0:"desktop-sidebar","aria-expanded":!$,title:$?"Show sidebar":"Hide sidebar",onClick:fe,children:$?m.jsx(ON,{className:"size-4"}):m.jsx(TN,{className:"size-4"})}),m.jsx("div",{className:"topbar-brand-mobile",children:m.jsx(Gv,{compact:!0})}),m.jsxs("nav",{className:"breadcrumb","aria-label":"Breadcrumb",children:[m.jsx(We,{to:"/",children:"Home"}),m.jsx(n0,{className:"breadcrumb-sep size-3"}),m.jsx("span",{className:"breadcrumb-current",children:ne})]})]}),m.jsxs("div",{className:"topbar-actions",children:[m.jsx(OL,{}),m.jsxs("div",{className:"health-pill-row",children:[m.jsxs("span",{className:`health-pill health-pill-${j.apiStatus.state}`,title:qo(j.apiStatus),children:["API ",j.apiStatus.state==="ok"?"ok":j.apiStatus.state]}),m.jsxs("span",{className:`health-pill health-pill-${j.workerStatus.state}`,title:qo(j.workerStatus),children:["Worker ",j.workerStatus.state==="ok"?"ok":j.workerStatus.state]})]}),m.jsxs(De,{className:"nav-toggle",variant:"secondary",size:"icon",type:"button","aria-expanded":O,"aria-controls":"mobile-nav",onClick:()=>I(H=>!H),children:[m.jsx(_N,{className:"size-4"}),m.jsx("span",{className:"sr-only",children:"Open navigation"})]})]})]}),m.jsxs("div",{id:"mobile-nav",className:`mobile-nav ${O?"mobile-nav-open":""}`,children:[m.jsxs(De,{className:"mobile-nav-close",variant:"ghost",size:"icon",type:"button",onClick:()=>I(!1),children:[m.jsx($o,{className:"size-5"}),m.jsx("span",{className:"sr-only",children:"Close navigation"})]}),m.jsx(We,{to:"/",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Portfolio"}),m.jsx(We,{to:"/projects",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Projects"}),m.jsx(We,{to:"/runs",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Runs"}),m.jsx(We,{to:"/history",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"History"}),m.jsx(We,{to:"/traffic",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Traffic sources"}),m.jsx(We,{to:"/backlinks",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Backlink data"}),t&&m.jsx(We,{to:"/settings",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Settings"}),ge&&ge.projects.length>0?m.jsxs("div",{className:"mobile-nav-section",children:[m.jsx("p",{className:"mobile-nav-section-title",children:"Tracked projects"}),ge.projects.map(H=>m.jsx(We,{to:"/projects/$projectName",params:{projectName:H.project.name},className:"mobile-nav-link",children:H.project.name},H.project.id))]}):null,e&&m.jsxs("div",{className:"mobile-nav-section",children:[m.jsx("p",{className:"mobile-nav-section-title",children:"Signed in"}),m.jsxs("div",{className:"sidebar-account",children:[m.jsxs("div",{className:"sidebar-account-identity",children:[m.jsx("span",{className:"sidebar-account-name",children:e.name}),e.role==="viewer"?m.jsx("span",{className:"sidebar-account-role",children:"View only"}):null]}),m.jsx(De,{type:"button",variant:"ghost",size:"sm","data-testid":"mobile-sign-out",onClick:nn(async()=>{await vb(),window.location.reload()}),children:"Sign out"})]})]})]}),m.jsx("main",{id:"content",className:"page-shell",children:b&&!i?m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-40"}),m.jsx("div",{className:"skeleton-text-sm w-72"})]}),m.jsx("div",{className:"page-skeleton-grid",children:[1,2,3].map(H=>m.jsxs("div",{className:"page-skeleton-card",children:[m.jsx("div",{className:"skeleton-text w-24"}),m.jsx("div",{className:"skeleton-text w-full"}),m.jsx("div",{className:"skeleton-text-sm w-3/4"})]},H))}),m.jsx("div",{className:"page-skeleton-grid",style:{gridTemplateColumns:"1fr 1fr"},children:[1,2].map(H=>m.jsxs("div",{className:"page-skeleton-card",children:[m.jsx("div",{className:"skeleton-text w-20"}),m.jsx("div",{className:"space-y-2",children:[1,2,3].map(X=>m.jsx("div",{className:"skeleton-text-sm w-full"},X))})]},H))})]}):m.jsx(mf,{})}),m.jsxs("footer",{className:"footer",children:[m.jsxs("span",{className:"footer-brand",children:[m.jsx("span",{children:m.jsx("a",{href:"https://canonry.ai",children:"Canonry"})}),j.apiStatus.version&&j.apiStatus.version!=="unknown"?m.jsxs("span",{className:"footer-version",children:["v",j.apiStatus.version]}):null]}),r?m.jsx("div",{className:"footer-links",children:n2.map(({label:H,href:X,Icon:ie})=>m.jsx("a",{href:X,target:"_blank",rel:"noopener noreferrer",title:H,"aria-label":H,className:"footer-icon",children:m.jsx(ie,{className:"size-3.5"})},X))}):null]})]}),T&&!me&&it?m.jsx(nf,{open:!0,title:"Loading run details",subtitle:"Fetching the durable run record",onClose:C,children:m.jsx("p",{className:"text-sm text-muted",role:"status",children:"Loading run details…"})}):null,T&&!me&&we.isError?m.jsx(nf,{open:!0,title:"Run unavailable",subtitle:"The run could not be loaded",onClose:C,children:m.jsx("p",{className:"text-sm text-negative",children:we.error instanceof Error?we.error.message:"Run details are unavailable."})}):null,me?m.jsxs(nf,{open:!0,title:me.summary,subtitle:`${me.projectName} · ${me.kindLabel}`,onClose:C,children:[m.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-1 text-sm",children:[m.jsx(nh,{status:me.status}),m.jsx("span",{className:"text-secondary",children:me.startedAt}),m.jsx("span",{className:"text-muted",children:me.duration}),m.jsx("span",{className:"text-faint",children:me.triggerLabel})]}),me.status==="failed"&&me.statusDetail&&m.jsx("p",{className:"mt-2 text-sm text-negative",children:me.statusDetail}),m.jsxs("div",{className:"mt-4",children:[m.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted mb-2",children:"Activity Log"}),it?m.jsx("p",{className:"text-sm text-muted",children:"Loading run details..."}):Te?.snapshots&&Te.snapshots.length>0?m.jsxs("div",{className:"space-y-2",children:[Te.snapshots.map(H=>m.jsxs("div",{className:"rounded-lg border border-default bg-surface p-3",children:[m.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[m.jsx("p",{className:"text-sm font-medium text-strong truncate",children:H.query??"Unknown query"}),m.jsxs("div",{className:"flex items-center gap-1.5",children:[m.jsx(BI,{provider:H.provider}),m.jsx(Yx,{variant:H.citationState===Tu.cited?"success":"neutral",children:H.citationState})]})]}),H.model&&m.jsx("p",{className:"text-[11px] text-muted font-mono",children:H.model}),H.citedDomains.length>0&&m.jsxs("p",{className:"text-xs text-muted mt-1",children:[m.jsx("span",{className:"text-secondary",children:"Sources:"})," ",H.citedDomains.join(", ")]}),H.competitorOverlap.length>0&&m.jsxs("p",{className:"text-xs text-negative-400/80 mt-0.5",children:["Competitor cited: ",H.competitorOverlap.join(", ")]}),H.groundingSources&&H.groundingSources.length>0&&m.jsxs("details",{className:"mt-2",children:[m.jsxs("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:[H.groundingSources.length," grounding source",H.groundingSources.length!==1?"s":""]}),m.jsx("ul",{className:"mt-1 space-y-0.5",children:H.groundingSources.map((X,ie)=>{const re=Lf(X.uri),ze=X.title||X.uri;return m.jsx("li",{className:"text-xs text-muted truncate",children:re?m.jsx("a",{href:re,target:"_blank",rel:"noopener noreferrer",className:"hover:text-neutral",children:ze}):m.jsx("span",{children:ze})},ie)})})]}),H.answerText&&m.jsxs("details",{className:"mt-1",children:[m.jsx("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:"Answer preview"}),m.jsx("p",{className:"mt-1 text-xs text-secondary leading-relaxed whitespace-pre-wrap",children:H.answerText})]})]},H.id)),Te.status==="running"&&m.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[m.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Running remaining queries..."]})]}):Te&&Te.status==="running"?m.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[m.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Waiting for first query result..."]}):Te&&Te.status==="queued"?m.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[m.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-mono-500 animate-pulse"}),"Run queued, waiting for execution slot..."]}):Te&&Te.error?m.jsxs("div",{className:"rounded-lg border border-negative-800/40 bg-negative-950/20 p-3",children:[m.jsx("p",{className:"text-sm font-medium text-negative mb-2",children:"Run failed"}),m.jsx("pre",{className:"max-h-48 overflow-y-auto whitespace-pre-wrap break-words font-mono text-xs leading-5 text-negative",children:mB(Te.error)})]}):m.jsx("p",{className:"text-sm text-muted",children:"No snapshot data available."})]})]}):null,He?m.jsx(HI,{evidence:He.evidence,project:He.project,onClose:C}):null,m.jsx(sP,{}),m.jsx(DL,{}),u?m.jsx(XL,{}):null]})}class rP extends B.Component{state={error:null};static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,i){console.error("[ErrorBoundary]",t,i.componentStack)}handleReset=()=>{this.setState({error:null})};render(){return this.state.error?m.jsx("div",{className:"page-container",children:m.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 py-20 text-center",children:[m.jsx("div",{className:"rounded-full bg-negative-950/40 p-3",children:m.jsx(sk,{className:"size-6 text-negative-400"})}),m.jsx("h2",{className:"text-lg font-semibold text-heading",children:"Something went wrong"}),m.jsx("p",{className:"text-sm text-secondary max-w-md",children:this.state.error.message||"An unexpected error occurred while rendering this page."}),m.jsxs("div",{className:"flex gap-3 mt-2",children:[m.jsxs(De,{variant:"secondary",size:"sm",onClick:this.handleReset,children:[m.jsx(ik,{className:"size-3.5 mr-1.5"}),"Try again"]}),m.jsx(De,{variant:"secondary",size:"sm",onClick:()=>{const t=window.__CANONRY_CONFIG__?.basePath?.replace(/\/$/,"")??"";window.location.href=t||"/"},children:"Go home"})]})]})}):this.props.children}}const Zn=B.forwardRef(({className:e,...t},i)=>m.jsx("div",{ref:i,className:ea("rounded-xl border border-base bg-bg/75 shadow-[0_0_0_1px_var(--color-shadow-hairline)]",e),...t}));Zn.displayName="Card";const ul=B.forwardRef(({className:e,...t},i)=>m.jsx("div",{ref:i,className:ea("flex flex-col gap-1.5 p-5",e),...t}));ul.displayName="CardHeader";const dl=B.forwardRef(({className:e,...t},i)=>m.jsx("h3",{ref:i,className:ea("font-medium tracking-tight text-primary",e),...t}));dl.displayName="CardTitle";const ml=B.forwardRef(({className:e,...t},i)=>m.jsx("p",{ref:i,className:ea("text-sm text-muted",e),...t}));ml.displayName="CardDescription";const ko=B.forwardRef(({className:e,...t},i)=>m.jsx("div",{ref:i,className:ea("p-5 pt-0",e),...t}));ko.displayName="CardContent";const lP=20,cP=6;function uP({points:e,tone:t}){const i=B.useId();if(e.length===0)return null;const s=42,r=132,u=5,d=r-u*2,g=s-u*2,b=g-cP,v=C=>u+C/Math.max(e.length-1,1)*d,x=cB(e),S=Math.min(...e),j=Math.max(...e),_=Math.max(j-S,lP),T=(j+S)/2-_/2,N=e.map((C,O)=>`${v(O)},${u+(1-(C-T)/_)*b}`).join(" ");return m.jsxs("svg",{className:`sparkline sparkline-${t}${x?" sparkline-provisional":""}`,viewBox:`0 0 ${r} ${s}`,"aria-hidden":"true",children:[m.jsx("defs",{children:m.jsx("clipPath",{id:i,children:m.jsx("rect",{x:u,y:u,width:d,height:g,rx:"8"})})}),m.jsx("line",{className:"sparkline-guide",x1:u,x2:r-u,y1:s-u,y2:s-u}),m.jsx("polyline",{clipPath:`url(#${i})`,points:N,vectorEffect:"non-scaling-stroke"})]})}function dP({project:e}){return m.jsxs(We,{to:"/projects/$projectName",params:{projectName:e.project.name},className:"project-row cursor-pointer",children:[m.jsx("div",{className:"project-row-chart",children:m.jsx(uP,{points:e.trend,tone:Tx(e.lastRun.status)})}),m.jsxs("div",{className:"project-row-primary",children:[m.jsxs("div",{children:[m.jsx("p",{className:"project-name",children:e.project.name}),m.jsx("p",{className:"project-domain",children:e.project.canonicalDomain})]}),m.jsx("p",{className:"project-insight",children:e.insight})]}),m.jsx("div",{className:"project-row-stat",children:m.jsxs("div",{className:"metric-inline-block",children:[m.jsx("p",{className:"metric-inline-label",children:"Mentioned"}),m.jsx("p",{className:`metric-inline-value ${e.mentionTone==="caution"?"text-caution-400":""}`,children:e.mentionScore}),m.jsx("p",{className:`metric-inline-caption${e.providerCoverage?" text-caution":""}`,title:e.providerCoverage,children:e.providerCoverage?m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"sr-only",children:"Partial sweep: "}),e.providerCoverage]}):e.mentionDelta})]})}),m.jsx("div",{className:"project-row-stat",children:m.jsxs("div",{className:"metric-inline-block",children:[m.jsxs("p",{className:"metric-inline-label",children:[m.jsx("span",{"aria-hidden":"true",children:"Pressure"}),m.jsx("span",{className:"sr-only",children:"Competitor pressure"})]}),m.jsx("p",{className:"metric-inline-value",children:e.competitorPressureLabel}),m.jsx("p",{className:"metric-inline-caption","aria-hidden":"true"})]})}),m.jsx("span",{className:"project-row-link",children:m.jsx(n0,{className:"h-4 w-4 text-muted"})})]})}function mP(){const e=Dl(),{dashboard:t,isLoading:i}=rd(),s=t??e?.dashboard,u=ah(!e,e?.health),{openRun:d}=ih();if(!s||i)return m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-32"}),m.jsx("div",{className:"skeleton-text-sm w-64"})]}),m.jsx("div",{className:"space-y-3",children:[1,2,3].map(x=>m.jsxs("div",{className:"rounded-xl border border-default bg-surface p-4 flex items-center gap-4",children:[m.jsxs("div",{className:"flex-1 space-y-2",children:[m.jsx("div",{className:"skeleton-text w-36"}),m.jsx("div",{className:"skeleton-text-sm w-48"})]}),m.jsx("div",{className:"skeleton-text w-16"}),m.jsx("div",{className:"skeleton-text w-16"}),m.jsx("div",{className:"skeleton h-8 w-20 rounded"})]},x))})]});const g=s.portfolioOverview,b=u.data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},v=Tq(g.systemHealth,b,s.settings);return m.jsxs("div",{className:"page-container",children:[m.jsx("div",{className:"page-header",children:m.jsxs("div",{className:"page-header-left",children:[m.jsx("h1",{className:"page-title",children:"Portfolio"}),m.jsx("p",{className:"page-subtitle",children:"Visibility across all projects."})]})}),g.projects.length>0?m.jsx("div",{className:"project-list project-list-scrollable",children:g.projects.map(x=>m.jsx(dP,{project:x},x.project.id))}):m.jsxs(Zn,{className:"surface-card empty-card",children:[m.jsx("h3",{children:g.emptyState?.title??"No projects yet"}),m.jsx("p",{className:"supporting-copy",children:g.emptyState?.detail}),m.jsx(De,{size:"sm",asChild:!0,children:m.jsx(We,{to:g.emptyState?.ctaHref==="/setup"||!g.emptyState?.ctaHref?"/setup":"/",children:g.emptyState?.ctaLabel??"Launch setup"})})]}),m.jsxs("div",{className:"overview-secondary-grid",children:[g.attentionItems.length>0&&m.jsxs("section",{className:"overview-secondary-section",children:[m.jsx("div",{className:"section-head section-head-inline",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Needs attention"}),m.jsx("h2",{className:"section-title-sm",children:"What changed"})]})}),m.jsx("div",{className:"attention-list attention-list-scrollable",children:g.attentionItems.map(x=>x.href?m.jsxs(We,{to:x.href,className:`attention-item attention-item-${x.tone}`,children:[m.jsxs("div",{children:[m.jsx("p",{className:"attention-title",children:x.title}),m.jsx("p",{className:"attention-detail",children:x.detail})]}),x.actionLabel&&m.jsx("span",{className:"attention-action",children:x.actionLabel})]},x.id):m.jsxs("div",{className:`attention-item attention-item-static attention-item-${x.tone}`,children:[m.jsxs("div",{children:[m.jsx("p",{className:"attention-title",children:x.title}),m.jsx("p",{className:"attention-detail",children:x.detail})]}),x.actionLabel&&m.jsx("span",{className:"attention-action",children:x.actionLabel})]},x.id))})]}),m.jsxs("section",{className:"overview-secondary-section",children:[m.jsx("div",{className:"section-head section-head-inline",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Recent runs"}),m.jsx("h2",{className:"section-title-sm",children:"Activity"})]})}),m.jsx("div",{className:"compact-stack compact-stack-scrollable",children:g.recentRuns.length>0?g.recentRuns.map(x=>m.jsxs("button",{className:"compact-run",type:"button",onClick:()=>d(x.id),children:[m.jsxs("div",{children:[m.jsx("p",{className:"compact-run-title",children:x.projectName}),m.jsx("p",{className:"compact-run-detail",children:x.summary})]}),m.jsx(nh,{status:x.status})]},x.id)):m.jsx("p",{className:"supporting-copy",children:"Run history appears here after the first launch."})})]})]}),m.jsxs("section",{className:"page-section",children:[m.jsx("div",{className:"section-head section-head-inline",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"System health"}),m.jsx("h2",{className:"section-title-sm",children:"Infrastructure"})]})}),m.jsx("div",{className:"divide-y divide-default border-y border-default",children:v.map(x=>{const S=x.id==="api"?b.apiStatus:x.id==="worker"?b.workerStatus:void 0,j=S?S.state==="ok"?void 0:qo(S):x.tone==="positive"?void 0:x.meta;return m.jsxs("div",{className:"flex items-start justify-between gap-4 py-3",children:[m.jsxs("div",{children:[m.jsx("p",{className:"text-sm font-medium text-heading",children:x.label}),j&&m.jsx("p",{className:"mt-1 text-sm text-secondary",children:j})]}),m.jsx(An,{tone:x.tone,title:S?qo(S):x.meta,children:x.detail})]},x.id)})})]})]})}const lh=Symbol.for("yaml.alias"),Pf=Symbol.for("yaml.document"),Di=Symbol.for("yaml.map"),c3=Symbol.for("yaml.pair"),ja=Symbol.for("yaml.scalar"),Qo=Symbol.for("yaml.seq"),Jn=Symbol.for("yaml.node.type"),Ns=e=>!!e&&typeof e=="object"&&e[Jn]===lh,ld=e=>!!e&&typeof e=="object"&&e[Jn]===Pf,Ol=e=>!!e&&typeof e=="object"&&e[Jn]===Di,Ot=e=>!!e&&typeof e=="object"&&e[Jn]===c3,mt=e=>!!e&&typeof e=="object"&&e[Jn]===ja,Rl=e=>!!e&&typeof e=="object"&&e[Jn]===Qo;function Tt(e){if(e&&typeof e=="object")switch(e[Jn]){case Di:case Qo:return!0}return!1}function Dt(e){if(e&&typeof e=="object")switch(e[Jn]){case lh:case Di:case ja:case Qo:return!0}return!1}const u3=e=>(mt(e)||Tt(e))&&!!e.anchor,hs=Symbol("break visit"),pP=Symbol("skip children"),pl=Symbol("remove node");function Zo(e,t){const i=fP(t);ld(e)?wo(null,e.contents,i,Object.freeze([e]))===pl&&(e.contents=null):wo(null,e,i,Object.freeze([]))}Zo.BREAK=hs;Zo.SKIP=pP;Zo.REMOVE=pl;function wo(e,t,i,s){const r=hP(e,t,i,s);if(Dt(r)||Ot(r))return gP(e,s,r),wo(e,r,i,s);if(typeof r!="symbol"){if(Tt(t)){s=Object.freeze(s.concat(t));for(let u=0;u<t.items.length;++u){const d=wo(u,t.items[u],i,s);if(typeof d=="number")u=d-1;else{if(d===hs)return hs;d===pl&&(t.items.splice(u,1),u-=1)}}}else if(Ot(t)){s=Object.freeze(s.concat(t));const u=wo("key",t.key,i,s);if(u===hs)return hs;u===pl&&(t.key=null);const d=wo("value",t.value,i,s);if(d===hs)return hs;d===pl&&(t.value=null)}}return r}function fP(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function hP(e,t,i,s){if(typeof i=="function")return i(e,t,s);if(Ol(t))return i.Map?.(e,t,s);if(Rl(t))return i.Seq?.(e,t,s);if(Ot(t))return i.Pair?.(e,t,s);if(mt(t))return i.Scalar?.(e,t,s);if(Ns(t))return i.Alias?.(e,t,s)}function gP(e,t,i){const s=t[t.length-1];if(Tt(s))s.items[e]=i;else if(Ot(s))e==="key"?s.key=i:s.value=i;else if(ld(s))s.contents=i;else{const r=Ns(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${r} parent`)}}const yP={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},bP=e=>e.replace(/[!,[\]{}]/g,t=>yP[t]);class un{constructor(t,i){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},un.defaultYaml,t),this.tags=Object.assign({},un.defaultTags,i)}clone(){const t=new un(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new un(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:un.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},un.defaultTags);break}return t}add(t,i){this.atNextDocument&&(this.yaml={explicit:un.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},un.defaultTags),this.atNextDocument=!1);const s=t.trim().split(/[ \t]+/),r=s.shift();switch(r){case"%TAG":{if(s.length!==2&&(i(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;const[u,d]=s;return this.tags[u]=d,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return i(0,"%YAML directive should contain exactly one part"),!1;const[u]=s;if(u==="1.1"||u==="1.2")return this.yaml.version=u,!0;{const d=/^\d+\.\d+$/.test(u);return i(6,`Unsupported YAML version ${u}`,d),!1}}default:return i(0,`Unknown directive ${r}`,!0),!1}}tagName(t,i){if(t==="!")return"!";if(t[0]!=="!")return i(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const d=t.slice(2,-1);return d==="!"||d==="!!"?(i(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&i("Verbatim tags must end with a >"),d)}const[,s,r]=t.match(/^(.*!)([^!]*)$/s);r||i(`The ${t} tag has no suffix`);const u=this.tags[s];if(u)try{return u+decodeURIComponent(r)}catch(d){return i(String(d)),null}return s==="!"?t:(i(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[i,s]of Object.entries(this.tags))if(t.startsWith(s))return i+bP(t.substring(s.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const i=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags);let r;if(t&&s.length>0&&Dt(t.contents)){const u={};Zo(t.contents,(d,g)=>{Dt(g)&&g.tag&&(u[g.tag]=!0)}),r=Object.keys(u)}else r=[];for(const[u,d]of s)u==="!!"&&d==="tag:yaml.org,2002:"||(!t||r.some(g=>g.startsWith(d)))&&i.push(`%TAG ${u} ${d}`);return i.join(`
|
|
65
|
+
`)}}un.defaultYaml={explicit:!1,version:"1.2"};un.defaultTags={"!!":"tag:yaml.org,2002:"};function d3(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const i=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(i)}return!0}function m3(e){const t=new Set;return Zo(e,{Value(i,s){s.anchor&&t.add(s.anchor)}}),t}function p3(e,t){for(let i=1;;++i){const s=`${e}${i}`;if(!t.has(s))return s}}function vP(e,t){const i=[],s=new Map;let r=null;return{onAnchor:u=>{i.push(u),r??(r=m3(e));const d=p3(t,r);return r.add(d),d},setAnchors:()=>{for(const u of i){const d=s.get(u);if(typeof d=="object"&&d.anchor&&(mt(d.node)||Tt(d.node)))d.node.anchor=d.anchor;else{const g=new Error("Failed to resolve repeated object (this should not happen)");throw g.source=u,g}}},sourceObjects:s}}function xo(e,t,i,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let r=0,u=s.length;r<u;++r){const d=s[r],g=xo(e,s,String(r),d);g===void 0?delete s[r]:g!==d&&(s[r]=g)}else if(s instanceof Map)for(const r of Array.from(s.keys())){const u=s.get(r),d=xo(e,s,r,u);d===void 0?s.delete(r):d!==u&&s.set(r,d)}else if(s instanceof Set)for(const r of Array.from(s)){const u=xo(e,s,r,r);u===void 0?s.delete(r):u!==r&&(s.delete(r),s.add(u))}else for(const[r,u]of Object.entries(s)){const d=xo(e,s,r,u);d===void 0?delete s[r]:d!==u&&(s[r]=d)}return e.call(t,i,s)}function Yn(e,t,i){if(Array.isArray(e))return e.map((s,r)=>Yn(s,String(r),i));if(e&&typeof e.toJSON=="function"){if(!i||!u3(e))return e.toJSON(t,i);const s={aliasCount:0,count:1,res:void 0};i.anchors.set(e,s),i.onCreate=u=>{s.res=u,delete i.onCreate};const r=e.toJSON(t,i);return i.onCreate&&i.onCreate(r),r}return typeof e=="bigint"&&!i?.keep?Number(e):e}class ch{constructor(t){Object.defineProperty(this,Jn,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:i,maxAliasCount:s,onAnchor:r,reviver:u}={}){if(!ld(t))throw new TypeError("A document argument is required");const d={anchors:new Map,doc:t,keep:!0,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},g=Yn(this,"",d);if(typeof r=="function")for(const{count:b,res:v}of d.anchors.values())r(v,b);return typeof u=="function"?xo(u,{"":g},"",g):g}}class uh extends ch{constructor(t){super(lh),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,i){let s;i?.aliasResolveCache?s=i.aliasResolveCache:(s=[],Zo(t,{Node:(u,d)=>{(Ns(d)||u3(d))&&s.push(d)}}),i&&(i.aliasResolveCache=s));let r;for(const u of s){if(u===this)break;u.anchor===this.source&&(r=u)}return r}toJSON(t,i){if(!i)return{source:this.source};const{anchors:s,doc:r,maxAliasCount:u}=i,d=this.resolve(r,i);if(!d){const b=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(b)}let g=s.get(d);if(g||(Yn(d,null,i),g=s.get(d)),g?.res===void 0){const b="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(b)}if(u>=0&&(g.count+=1,g.aliasCount===0&&(g.aliasCount=yu(r,d,s)),g.count*g.aliasCount>u)){const b="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(b)}return g.res}toString(t,i,s){const r=`*${this.source}`;if(t){if(d3(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(u)}if(t.implicitKey)return`${r} `}return r}}function yu(e,t,i){if(Ns(t)){const s=t.resolve(e),r=i&&s&&i.get(s);return r?r.count*r.aliasCount:0}else if(Tt(t)){let s=0;for(const r of t.items){const u=yu(e,r,i);u>s&&(s=u)}return s}else if(Ot(t)){const s=yu(e,t.key,i),r=yu(e,t.value,i);return Math.max(s,r)}return 1}const f3=e=>!e||typeof e!="function"&&typeof e!="object";class Re extends ch{constructor(t){super(ja),this.value=t}toJSON(t,i){return i?.keep?this.value:Yn(this.value,t,i)}toString(){return String(this.value)}}Re.BLOCK_FOLDED="BLOCK_FOLDED";Re.BLOCK_LITERAL="BLOCK_LITERAL";Re.PLAIN="PLAIN";Re.QUOTE_DOUBLE="QUOTE_DOUBLE";Re.QUOTE_SINGLE="QUOTE_SINGLE";const kP="tag:yaml.org,2002:";function wP(e,t,i){if(t){const s=i.filter(u=>u.tag===t),r=s.find(u=>!u.format)??s[0];if(!r)throw new Error(`Tag ${t} not found`);return r}return i.find(s=>s.identify?.(e)&&!s.format)}function kl(e,t,i){if(ld(e)&&(e=e.contents),Dt(e))return e;if(Ot(e)){const S=i.schema[Di].createNode?.(i.schema,null,i);return S.items.push(e),S}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:s,onAnchor:r,onTagObj:u,schema:d,sourceObjects:g}=i;let b;if(s&&e&&typeof e=="object"){if(b=g.get(e),b)return b.anchor??(b.anchor=r(e)),new uh(b.anchor);b={anchor:null,node:null},g.set(e,b)}t?.startsWith("!!")&&(t=kP+t.slice(2));let v=wP(e,t,d.tags);if(!v){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const S=new Re(e);return b&&(b.node=S),S}v=e instanceof Map?d[Di]:Symbol.iterator in Object(e)?d[Qo]:d[Di]}u&&(u(v),delete i.onTagObj);const x=v?.createNode?v.createNode(i.schema,e,i):typeof v?.nodeClass?.from=="function"?v.nodeClass.from(i.schema,e,i):new Re(e);return t?x.tag=t:v.default||(x.tag=v.tag),b&&(b.node=x),x}function Bu(e,t,i){let s=i;for(let r=t.length-1;r>=0;--r){const u=t[r];if(typeof u=="number"&&Number.isInteger(u)&&u>=0){const d=[];d[u]=s,s=d}else s=new Map([[u,s]])}return kl(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const ol=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class h3 extends ch{constructor(t,i){super(t),Object.defineProperty(this,"schema",{value:i,configurable:!0,enumerable:!1,writable:!0})}clone(t){const i=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(i.schema=t),i.items=i.items.map(s=>Dt(s)||Ot(s)?s.clone(t):s),this.range&&(i.range=this.range.slice()),i}addIn(t,i){if(ol(t))this.add(i);else{const[s,...r]=t,u=this.get(s,!0);if(Tt(u))u.addIn(r,i);else if(u===void 0&&this.schema)this.set(s,Bu(this.schema,r,i));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${r}`)}}deleteIn(t){const[i,...s]=t;if(s.length===0)return this.delete(i);const r=this.get(i,!0);if(Tt(r))return r.deleteIn(s);throw new Error(`Expected YAML collection at ${i}. Remaining path: ${s}`)}getIn(t,i){const[s,...r]=t,u=this.get(s,!0);return r.length===0?!i&&mt(u)?u.value:u:Tt(u)?u.getIn(r,i):void 0}hasAllNullValues(t){return this.items.every(i=>{if(!Ot(i))return!1;const s=i.value;return s==null||t&&mt(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(t){const[i,...s]=t;if(s.length===0)return this.has(i);const r=this.get(i,!0);return Tt(r)?r.hasIn(s):!1}setIn(t,i){const[s,...r]=t;if(r.length===0)this.set(s,i);else{const u=this.get(s,!0);if(Tt(u))u.setIn(r,i);else if(u===void 0&&this.schema)this.set(s,Bu(this.schema,r,i));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${r}`)}}}const xP=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function Ha(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const ys=(e,t,i)=>e.endsWith(`
|
|
66
66
|
`)?Ha(i,t):i.includes(`
|
|
67
67
|
`)?`
|
|
68
68
|
`+Ha(i,t):(e.endsWith(" ")?"":" ")+i,g3="flow",$f="block",bu="quoted";function cd(e,t,i="flow",{indentAtStart:s,lineWidth:r=80,minContentWidth:u=20,onFold:d,onOverflow:g}={}){if(!r||r<0)return e;r<u&&(u=0);const b=Math.max(1+u,1+r-t.length);if(e.length<=b)return e;const v=[],x={};let S=r-t.length;typeof s=="number"&&(s>r-Math.max(2,u)?v.push(0):S=r-s);let j,_,T=!1,N=-1,C=-1,O=-1;i===$f&&(N=s2(e,N,t.length),N!==-1&&(S=N+b));for(let $;$=e[N+=1];){if(i===bu&&$==="\\"){switch(C=N,e[N+1]){case"x":N+=3;break;case"u":N+=5;break;case"U":N+=9;break;default:N+=1}O=N}if($===`
|
|
@@ -71,7 +71,7 @@ ${JSON.stringify(s.raw,null,2)}`):t.push(r)}return t.length>0?t.join(`
|
|
|
71
71
|
`&&K!==" "&&(j=N)}if(N>=S)if(j)v.push(j),S=j+b,j=void 0;else if(i===bu){for(;_===" "||_===" ";)_=$,$=e[N+=1],T=!0;const K=N>O+1?N-2:C-1;if(x[K])return e;v.push(K),x[K]=!0,S=K+b,j=void 0}else T=!0}_=$}if(T&&g&&g(),v.length===0)return e;d&&d();let I=e.slice(0,v[0]);for(let $=0;$<v.length;++$){const K=v[$],Z=v[$+1]||e.length;K===0?I=`
|
|
72
72
|
${t}${e.slice(0,Z)}`:(i===bu&&x[K]&&(I+=`${e[K]}\\`),I+=`
|
|
73
73
|
${t}${e.slice(K+1,Z)}`)}return I}function s2(e,t,i){let s=t,r=t+1,u=e[r];for(;u===" "||u===" ";)if(t<r+i)u=e[++t];else{do u=e[++t];while(u&&u!==`
|
|
74
|
-
`);s=t,r=t+1,u=e[r]}return s}const ud=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),dd=e=>/^(%|---|\.\.\.)/m.test(e);function
|
|
74
|
+
`);s=t,r=t+1,u=e[r]}return s}const ud=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),dd=e=>/^(%|---|\.\.\.)/m.test(e);function SP(e,t,i){if(!t||t<0)return!1;const s=t-i,r=e.length;if(r<=s)return!1;for(let u=0,d=0;u<r;++u)if(e[u]===`
|
|
75
75
|
`){if(u-d>s)return!0;if(d=u+1,r-d<=s)return!1}return!0}function fl(e,t){const i=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return i;const{implicitKey:s}=t,r=t.options.doubleQuotedMinMultiLineLength,u=t.indent||(dd(e)?" ":"");let d="",g=0;for(let b=0,v=i[b];v;v=i[++b])if(v===" "&&i[b+1]==="\\"&&i[b+2]==="n"&&(d+=i.slice(g,b)+"\\ ",b+=1,g=b,v="\\"),v==="\\")switch(i[b+1]){case"u":{d+=i.slice(g,b);const x=i.substr(b+2,4);switch(x){case"0000":d+="\\0";break;case"0007":d+="\\a";break;case"000b":d+="\\v";break;case"001b":d+="\\e";break;case"0085":d+="\\N";break;case"00a0":d+="\\_";break;case"2028":d+="\\L";break;case"2029":d+="\\P";break;default:x.substr(0,2)==="00"?d+="\\x"+x.substr(2):d+=i.substr(b,6)}b+=5,g=b+1}break;case"n":if(s||i[b+2]==='"'||i.length<r)b+=1;else{for(d+=i.slice(g,b)+`
|
|
76
76
|
|
|
77
77
|
`;i[b+2]==="\\"&&i[b+3]==="n"&&i[b+4]!=='"';)d+=`
|
|
@@ -80,7 +80,7 @@ ${t}${e.slice(K+1,Z)}`)}return I}function s2(e,t,i){let s=t,r=t+1,u=e[r];for(;u=
|
|
|
80
80
|
${i}`)+"'";return t.implicitKey?s:cd(s,i,g3,ud(t,!1))}function So(e,t){const{singleQuote:i}=t.options;let s;if(i===!1)s=fl;else{const r=e.includes('"'),u=e.includes("'");r&&!u?s=Uf:u&&!r?s=fl:s=i?Uf:fl}return s(e,t)}let Vf;try{Vf=new RegExp(`(^|(?<!
|
|
81
81
|
))
|
|
82
82
|
+(?!
|
|
83
|
-
|$)`,"g")}catch{Vf=/\n+(?!\n|$)/g}function vu({comment:e,type:t,value:i},s,r,u){const{blockQuote:d,commentString:g,lineWidth:b}=s.options;if(!d||/\n[\t ]+$/.test(i))return So(i,s);const v=s.indent||(s.forceBlockIndent||dd(i)?" ":""),x=d==="literal"?!0:d==="folded"||t===Re.BLOCK_FOLDED?!1:t===Re.BLOCK_LITERAL?!0:!
|
|
83
|
+
|$)`,"g")}catch{Vf=/\n+(?!\n|$)/g}function vu({comment:e,type:t,value:i},s,r,u){const{blockQuote:d,commentString:g,lineWidth:b}=s.options;if(!d||/\n[\t ]+$/.test(i))return So(i,s);const v=s.indent||(s.forceBlockIndent||dd(i)?" ":""),x=d==="literal"?!0:d==="folded"||t===Re.BLOCK_FOLDED?!1:t===Re.BLOCK_LITERAL?!0:!SP(i,b,v.length);if(!i)return x?`|
|
|
84
84
|
`:`>
|
|
85
85
|
`;let S,j;for(j=i.length;j>0;--j){const Z=i[j-1];if(Z!==`
|
|
86
86
|
`&&Z!==" "&&Z!==" ")break}let _=i.substring(j);const T=_.indexOf(`
|
|
@@ -89,12 +89,12 @@ ${i}`)+"'";return t.implicitKey?s:cd(s,i,g3,ud(t,!1))}function So(e,t){const{sin
|
|
|
89
89
|
`)O=C;else break}let I=i.substring(0,O<C?O+1:C);I&&(i=i.substring(I.length),I=I.replace(/\n+/g,`$&${v}`));let K=(N?v?"2":"1":"")+S;if(e&&(K+=" "+g(e.replace(/ ?[\r\n]+/g," ")),r&&r()),!x){const Z=i.replace(/\n+/g,`
|
|
90
90
|
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${v}`);let se=!1;const R=ud(s,!0);d!=="folded"&&t!==Re.BLOCK_FOLDED&&(R.onOverflow=()=>{se=!0});const q=cd(`${I}${Z}${_}`,v,$f,R);if(!se)return`>${K}
|
|
91
91
|
${v}${q}`}return i=i.replace(/\n+/g,`$&${v}`),`|${K}
|
|
92
|
-
${v}${I}${i}${_}`}function
|
|
92
|
+
${v}${I}${i}${_}`}function jP(e,t,i,s){const{type:r,value:u}=e,{actualString:d,implicitKey:g,indent:b,indentStep:v,inFlow:x}=t;if(g&&u.includes(`
|
|
93
93
|
`)||x&&/[[\]{},]/.test(u))return So(u,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(u))return g||x||!u.includes(`
|
|
94
94
|
`)?So(u,t):vu(e,t,i,s);if(!g&&!x&&r!==Re.PLAIN&&u.includes(`
|
|
95
95
|
`))return vu(e,t,i,s);if(dd(u)){if(b==="")return t.forceBlockIndent=!0,vu(e,t,i,s);if(g&&b===v)return So(u,t)}const S=u.replace(/\n+/g,`$&
|
|
96
|
-
${b}`);if(d){const j=N=>N.default&&N.tag!=="tag:yaml.org,2002:str"&&N.test?.test(S),{compat:_,tags:T}=t.doc.schema;if(T.some(j)||_?.some(j))return So(u,t)}return g?S:cd(S,b,g3,ud(t,!1))}function dh(e,t,i,s){const{implicitKey:r,inFlow:u}=t,d=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:g}=e;g!==Re.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(d.value)&&(g=Re.QUOTE_DOUBLE);const b=x=>{switch(x){case Re.BLOCK_FOLDED:case Re.BLOCK_LITERAL:return r||u?So(d.value,t):vu(d,t,i,s);case Re.QUOTE_DOUBLE:return fl(d.value,t);case Re.QUOTE_SINGLE:return Uf(d.value,t);case Re.PLAIN:return
|
|
97
|
-
${t.indent}${g}`:g}function
|
|
96
|
+
${b}`);if(d){const j=N=>N.default&&N.tag!=="tag:yaml.org,2002:str"&&N.test?.test(S),{compat:_,tags:T}=t.doc.schema;if(T.some(j)||_?.some(j))return So(u,t)}return g?S:cd(S,b,g3,ud(t,!1))}function dh(e,t,i,s){const{implicitKey:r,inFlow:u}=t,d=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:g}=e;g!==Re.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(d.value)&&(g=Re.QUOTE_DOUBLE);const b=x=>{switch(x){case Re.BLOCK_FOLDED:case Re.BLOCK_LITERAL:return r||u?So(d.value,t):vu(d,t,i,s);case Re.QUOTE_DOUBLE:return fl(d.value,t);case Re.QUOTE_SINGLE:return Uf(d.value,t);case Re.PLAIN:return jP(d,t,i,s);default:return null}};let v=b(g);if(v===null){const{defaultKeyType:x,defaultStringType:S}=t.options,j=r&&x||S;if(v=b(j),v===null)throw new Error(`Unsupported default string type ${j}`)}return v}function y3(e,t){const i=Object.assign({blockQuote:!0,commentString:xP,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let s;switch(i.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:e,flowCollectionPadding:i.flowCollectionPadding?" ":"",indent:"",indentStep:typeof i.indent=="number"?" ".repeat(i.indent):" ",inFlow:s,options:i}}function AP(e,t){if(t.tag){const r=e.filter(u=>u.tag===t.tag);if(r.length>0)return r.find(u=>u.format===t.format)??r[0]}let i,s;if(mt(t)){s=t.value;let r=e.filter(u=>u.identify?.(s));if(r.length>1){const u=r.filter(d=>d.test);u.length>0&&(r=u)}i=r.find(u=>u.format===t.format)??r.find(u=>!u.format)}else s=t,i=e.find(r=>r.nodeClass&&s instanceof r.nodeClass);if(!i){const r=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${r} value`)}return i}function NP(e,t,{anchors:i,doc:s}){if(!s.directives)return"";const r=[],u=(mt(e)||Tt(e))&&e.anchor;u&&d3(u)&&(i.add(u),r.push(`&${u}`));const d=e.tag??(t.default?null:t.tag);return d&&r.push(s.directives.tagString(d)),r.join(" ")}function Io(e,t,i,s){if(Ot(e))return e.toString(t,i,s);if(Ns(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let r;const u=Dt(e)?e:t.doc.createNode(e,{onTagObj:b=>r=b});r??(r=AP(t.doc.schema.tags,u));const d=NP(u,r,t);d.length>0&&(t.indentAtStart=(t.indentAtStart??0)+d.length+1);const g=typeof r.stringify=="function"?r.stringify(u,t,i,s):mt(u)?dh(u,t,i,s):u.toString(t,i,s);return d?mt(u)||g[0]==="{"||g[0]==="["?`${d} ${g}`:`${d}
|
|
97
|
+
${t.indent}${g}`:g}function _P({key:e,value:t},i,s,r){const{allNullValues:u,doc:d,indent:g,indentStep:b,options:{commentString:v,indentSeq:x,simpleKeys:S}}=i;let j=Dt(e)&&e.comment||null;if(S){if(j)throw new Error("With simple keys, key nodes cannot have comments");if(Tt(e)||!Dt(e)&&typeof e=="object"){const R="With simple keys, collection cannot be used as a key value";throw new Error(R)}}let _=!S&&(!e||j&&t==null&&!i.inFlow||Tt(e)||(mt(e)?e.type===Re.BLOCK_FOLDED||e.type===Re.BLOCK_LITERAL:typeof e=="object"));i=Object.assign({},i,{allNullValues:!1,implicitKey:!_&&(S||!u),indent:g+b});let T=!1,N=!1,C=Io(e,i,()=>T=!0,()=>N=!0);if(!_&&!i.inFlow&&C.length>1024){if(S)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");_=!0}if(i.inFlow){if(u||t==null)return T&&s&&s(),C===""?"?":_?`? ${C}`:C}else if(u&&!S||t==null&&_)return C=`? ${C}`,j&&!T?C+=ys(C,i.indent,v(j)):N&&r&&r(),C;T&&(j=null),_?(j&&(C+=ys(C,i.indent,v(j))),C=`? ${C}
|
|
98
98
|
${g}:`):(C=`${C}:`,j&&(C+=ys(C,i.indent,v(j))));let O,I,$;Dt(t)?(O=!!t.spaceBefore,I=t.commentBefore,$=t.comment):(O=!1,I=null,$=null,t&&typeof t=="object"&&(t=d.createNode(t))),i.implicitKey=!1,!_&&!j&&mt(t)&&(i.indentAtStart=C.length+1),N=!1,!x&&b.length>=2&&!i.inFlow&&!_&&Rl(t)&&!t.flow&&!t.tag&&!t.anchor&&(i.indent=i.indent.substring(2));let K=!1;const Z=Io(t,i,()=>K=!0,()=>N=!0);let se=" ";if(j||O||I){if(se=O?`
|
|
99
99
|
`:"",I){const R=v(I);se+=`
|
|
100
100
|
${Ha(R,i.indent)}`}Z===""&&!i.inFlow?se===`
|
|
@@ -104,32 +104,32 @@ ${Ha(R,i.indent)}`}Z===""&&!i.inFlow?se===`
|
|
|
104
104
|
${i.indent}`}else if(!_&&Tt(t)){const R=Z[0],q=Z.indexOf(`
|
|
105
105
|
`),pe=q!==-1,ue=i.inFlow??t.flow??t.items.length===0;if(pe||!ue){let fe=!1;if(pe&&(R==="&"||R==="!")){let we=Z.indexOf(" ");R==="&"&&we!==-1&&we<q&&Z[we+1]==="!"&&(we=Z.indexOf(" ",we+1)),(we===-1||q<we)&&(fe=!0)}fe||(se=`
|
|
106
106
|
${i.indent}`)}}else(Z===""||Z[0]===`
|
|
107
|
-
`)&&(se="");return C+=se+Z,i.inFlow?K&&s&&s():$&&!K?C+=ys(C,i.indent,v($)):N&&r&&r(),C}function
|
|
107
|
+
`)&&(se="");return C+=se+Z,i.inFlow?K&&s&&s():$&&!K?C+=ys(C,i.indent,v($)):N&&r&&r(),C}function CP(e,t){(e==="debug"||e==="warn")&&console.warn(t)}const cu="<<",Za={identify:e=>e===cu||typeof e=="symbol"&&e.description===cu,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Re(Symbol(cu)),{addToJSMap:b3}),stringify:()=>cu},zP=(e,t)=>(Za.identify(t)||mt(t)&&(!t.type||t.type===Re.PLAIN)&&Za.identify(t.value))&&e?.doc.schema.tags.some(i=>i.tag===Za.tag&&i.default);function b3(e,t,i){if(i=e&&Ns(i)?i.resolve(e.doc):i,Rl(i))for(const s of i.items)of(e,t,s);else if(Array.isArray(i))for(const s of i)of(e,t,s);else of(e,t,i)}function of(e,t,i){const s=e&&Ns(i)?i.resolve(e.doc):i;if(!Ol(s))throw new Error("Merge sources must be maps or map aliases");const r=s.toJSON(null,e,Map);for(const[u,d]of r)t instanceof Map?t.has(u)||t.set(u,d):t instanceof Set?t.add(u):Object.prototype.hasOwnProperty.call(t,u)||Object.defineProperty(t,u,{value:d,writable:!0,enumerable:!0,configurable:!0});return t}function v3(e,t,{key:i,value:s}){if(Dt(i)&&i.addToJSMap)i.addToJSMap(e,t,s);else if(zP(e,i))b3(e,t,s);else{const r=Yn(i,"",e);if(t instanceof Map)t.set(r,Yn(s,r,e));else if(t instanceof Set)t.add(r);else{const u=EP(i,r,e),d=Yn(s,u,e);u in t?Object.defineProperty(t,u,{value:d,writable:!0,enumerable:!0,configurable:!0}):t[u]=d}}return t}function EP(e,t,i){if(t===null)return"";if(typeof t!="object")return String(t);if(Dt(e)&&i?.doc){const s=y3(i.doc,{});s.anchors=new Set;for(const u of i.anchors.keys())s.anchors.add(u.anchor);s.inFlow=!0,s.inStringifyKey=!0;const r=e.toString(s);if(!i.mapKeyWarned){let u=JSON.stringify(r);u.length>40&&(u=u.substring(0,36)+'..."'),CP(i.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${u}. Set mapAsMap: true to use object keys.`),i.mapKeyWarned=!0}return r}return JSON.stringify(t)}function mh(e,t,i){const s=kl(e,void 0,i),r=kl(t,void 0,i);return new fn(s,r)}class fn{constructor(t,i=null){Object.defineProperty(this,Jn,{value:c3}),this.key=t,this.value=i}clone(t){let{key:i,value:s}=this;return Dt(i)&&(i=i.clone(t)),Dt(s)&&(s=s.clone(t)),new fn(i,s)}toJSON(t,i){const s=i?.mapAsMap?new Map:{};return v3(i,s,this)}toString(t,i,s){return t?.doc?_P(this,t,i,s):JSON.stringify(this)}}function k3(e,t,i){return(t.inFlow??e.flow?DP:TP)(e,t,i)}function TP({comment:e,items:t},i,{blockItemPrefix:s,flowChars:r,itemIndent:u,onChompKeep:d,onComment:g}){const{indent:b,options:{commentString:v}}=i,x=Object.assign({},i,{indent:u,type:null});let S=!1;const j=[];for(let T=0;T<t.length;++T){const N=t[T];let C=null;if(Dt(N))!S&&N.spaceBefore&&j.push(""),qu(i,j,N.commentBefore,S),N.comment&&(C=N.comment);else if(Ot(N)){const I=Dt(N.key)?N.key:null;I&&(!S&&I.spaceBefore&&j.push(""),qu(i,j,I.commentBefore,S))}S=!1;let O=Io(N,x,()=>C=null,()=>S=!0);C&&(O+=ys(O,u,v(C))),S&&C&&(S=!1),j.push(s+O)}let _;if(j.length===0)_=r.start+r.end;else{_=j[0];for(let T=1;T<j.length;++T){const N=j[T];_+=N?`
|
|
108
108
|
${b}${N}`:`
|
|
109
109
|
`}}return e?(_+=`
|
|
110
|
-
`+Ha(v(e),b),g&&g()):S&&d&&d(),_}function
|
|
110
|
+
`+Ha(v(e),b),g&&g()):S&&d&&d(),_}function DP({items:e},t,{flowChars:i,itemIndent:s}){const{indent:r,indentStep:u,flowCollectionPadding:d,options:{commentString:g}}=t;s+=u;const b=Object.assign({},t,{indent:s,inFlow:!0,type:null});let v=!1,x=0;const S=[];for(let T=0;T<e.length;++T){const N=e[T];let C=null;if(Dt(N))N.spaceBefore&&S.push(""),qu(t,S,N.commentBefore,!1),N.comment&&(C=N.comment);else if(Ot(N)){const I=Dt(N.key)?N.key:null;I&&(I.spaceBefore&&S.push(""),qu(t,S,I.commentBefore,!1),I.comment&&(v=!0));const $=Dt(N.value)?N.value:null;$?($.comment&&(C=$.comment),$.commentBefore&&(v=!0)):N.value==null&&I?.comment&&(C=I.comment)}C&&(v=!0);let O=Io(N,b,()=>C=null);T<e.length-1&&(O+=","),C&&(O+=ys(O,s,g(C))),!v&&(S.length>x||O.includes(`
|
|
111
111
|
`))&&(v=!0),S.push(O),x=S.length}const{start:j,end:_}=i;if(S.length===0)return j+_;if(!v){const T=S.reduce((N,C)=>N+C.length+2,2);v=t.options.lineWidth>0&&T>t.options.lineWidth}if(v){let T=j;for(const N of S)T+=N?`
|
|
112
112
|
${u}${r}${N}`:`
|
|
113
113
|
`;return`${T}
|
|
114
|
-
${r}${_}`}else return`${j}${d}${S.join(" ")}${d}${_}`}function qu({indent:e,options:{commentString:t}},i,s,r){if(s&&r&&(s=s.replace(/^\n+/,"")),s){const u=Ha(t(s),e);i.push(u.trimStart())}}function bs(e,t){const i=mt(t)?t.value:t;for(const s of e)if(Ot(s)&&(s.key===t||s.key===i||mt(s.key)&&s.key.value===i))return s}class Fn extends h3{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(Di,t),this.items=[]}static from(t,i,s){const{keepUndefined:r,replacer:u}=s,d=new this(t),g=(b,v)=>{if(typeof u=="function")v=u.call(i,b,v);else if(Array.isArray(u)&&!u.includes(b))return;(v!==void 0||r)&&d.items.push(mh(b,v,s))};if(i instanceof Map)for(const[b,v]of i)g(b,v);else if(i&&typeof i=="object")for(const b of Object.keys(i))g(b,i[b]);return typeof t.sortMapEntries=="function"&&d.items.sort(t.sortMapEntries),d}add(t,i){let s;Ot(t)?s=t:!t||typeof t!="object"||!("key"in t)?s=new fn(t,t?.value):s=new fn(t.key,t.value);const r=bs(this.items,s.key),u=this.schema?.sortMapEntries;if(r){if(!i)throw new Error(`Key ${s.key} already set`);mt(r.value)&&f3(s.value)?r.value.value=s.value:r.value=s.value}else if(u){const d=this.items.findIndex(g=>u(s,g)<0);d===-1?this.items.push(s):this.items.splice(d,0,s)}else this.items.push(s)}delete(t){const i=bs(this.items,t);return i?this.items.splice(this.items.indexOf(i),1).length>0:!1}get(t,i){const r=bs(this.items,t)?.value;return(!i&&mt(r)?r.value:r)??void 0}has(t){return!!bs(this.items,t)}set(t,i){this.add(new fn(t,i),!0)}toJSON(t,i,s){const r=s?new s:i?.mapAsMap?new Map:{};i?.onCreate&&i.onCreate(r);for(const u of this.items)v3(i,r,u);return r}toString(t,i,s){if(!t)return JSON.stringify(this);for(const r of this.items)if(!Ot(r))throw new Error(`Map items must all be pairs; found ${JSON.stringify(r)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),k3(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:s,onComment:i})}}const Fo={collection:"map",default:!0,nodeClass:Fn,tag:"tag:yaml.org,2002:map",resolve(e,t){return Ol(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,i)=>Fn.from(e,t,i)};class ws extends h3{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(Qo,t),this.items=[]}add(t){this.items.push(t)}delete(t){const i=uu(t);return typeof i!="number"?!1:this.items.splice(i,1).length>0}get(t,i){const s=uu(t);if(typeof s!="number")return;const r=this.items[s];return!i&&mt(r)?r.value:r}has(t){const i=uu(t);return typeof i=="number"&&i<this.items.length}set(t,i){const s=uu(t);if(typeof s!="number")throw new Error(`Expected a valid index, not ${t}.`);const r=this.items[s];mt(r)&&f3(i)?r.value=i:this.items[s]=i}toJSON(t,i){const s=[];i?.onCreate&&i.onCreate(s);let r=0;for(const u of this.items)s.push(Yn(u,String(r++),i));return s}toString(t,i,s){return t?k3(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:s,onComment:i}):JSON.stringify(this)}static from(t,i,s){const{replacer:r}=s,u=new this(t);if(i&&Symbol.iterator in Object(i)){let d=0;for(let g of i){if(typeof r=="function"){const b=i instanceof Set?g:String(d++);g=r.call(i,b,g)}u.items.push(kl(g,void 0,s))}}return u}}function uu(e){let t=mt(e)?e.value:e;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}const Yo={collection:"seq",default:!0,nodeClass:ws,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Rl(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,i)=>ws.from(e,t,i)},md={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,i,s){return t=Object.assign({actualString:!0},t),dh(e,t,i,s)}},pd={identify:e=>e==null,createNode:()=>new Re(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Re(null),stringify:({source:e},t)=>typeof e=="string"&&pd.test.test(e)?e:t.options.nullStr},ph={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Re(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},i){if(e&&ph.test.test(e)){const s=e[0]==="t"||e[0]==="T";if(t===s)return e}return t?i.options.trueStr:i.options.falseStr}};function pa({format:e,minFractionDigits:t,tag:i,value:s}){if(typeof s=="bigint")return String(s);const r=typeof s=="number"?s:Number(s);if(!isFinite(r))return isNaN(r)?".nan":r<0?"-.inf":".inf";let u=Object.is(s,-0)?"-0":JSON.stringify(s);if(!e&&t&&(!i||i==="tag:yaml.org,2002:float")&&/^\d/.test(u)){let d=u.indexOf(".");d<0&&(d=u.length,u+=".");let g=t-(u.length-d-1);for(;g-- >0;)u+="0"}return u}const w3={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:pa},x3={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():pa(e)}},S3={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new Re(parseFloat(e)),i=e.indexOf(".");return i!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-i-1),t},stringify:pa},fd=e=>typeof e=="bigint"||Number.isInteger(e),fh=(e,t,i,{intAsBigInt:s})=>s?BigInt(e):parseInt(e.substring(t),i);function j3(e,t,i){const{value:s}=e;return fd(s)&&s>=0?i+s.toString(t):pa(e)}const A3={identify:e=>fd(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,i)=>fh(e,2,8,i),stringify:e=>j3(e,8,"0o")},N3={identify:fd,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,i)=>fh(e,0,10,i),stringify:pa},_3={identify:e=>fd(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,i)=>fh(e,2,16,i),stringify:e=>j3(e,16,"0x")},
|
|
114
|
+
${r}${_}`}else return`${j}${d}${S.join(" ")}${d}${_}`}function qu({indent:e,options:{commentString:t}},i,s,r){if(s&&r&&(s=s.replace(/^\n+/,"")),s){const u=Ha(t(s),e);i.push(u.trimStart())}}function bs(e,t){const i=mt(t)?t.value:t;for(const s of e)if(Ot(s)&&(s.key===t||s.key===i||mt(s.key)&&s.key.value===i))return s}class Fn extends h3{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(Di,t),this.items=[]}static from(t,i,s){const{keepUndefined:r,replacer:u}=s,d=new this(t),g=(b,v)=>{if(typeof u=="function")v=u.call(i,b,v);else if(Array.isArray(u)&&!u.includes(b))return;(v!==void 0||r)&&d.items.push(mh(b,v,s))};if(i instanceof Map)for(const[b,v]of i)g(b,v);else if(i&&typeof i=="object")for(const b of Object.keys(i))g(b,i[b]);return typeof t.sortMapEntries=="function"&&d.items.sort(t.sortMapEntries),d}add(t,i){let s;Ot(t)?s=t:!t||typeof t!="object"||!("key"in t)?s=new fn(t,t?.value):s=new fn(t.key,t.value);const r=bs(this.items,s.key),u=this.schema?.sortMapEntries;if(r){if(!i)throw new Error(`Key ${s.key} already set`);mt(r.value)&&f3(s.value)?r.value.value=s.value:r.value=s.value}else if(u){const d=this.items.findIndex(g=>u(s,g)<0);d===-1?this.items.push(s):this.items.splice(d,0,s)}else this.items.push(s)}delete(t){const i=bs(this.items,t);return i?this.items.splice(this.items.indexOf(i),1).length>0:!1}get(t,i){const r=bs(this.items,t)?.value;return(!i&&mt(r)?r.value:r)??void 0}has(t){return!!bs(this.items,t)}set(t,i){this.add(new fn(t,i),!0)}toJSON(t,i,s){const r=s?new s:i?.mapAsMap?new Map:{};i?.onCreate&&i.onCreate(r);for(const u of this.items)v3(i,r,u);return r}toString(t,i,s){if(!t)return JSON.stringify(this);for(const r of this.items)if(!Ot(r))throw new Error(`Map items must all be pairs; found ${JSON.stringify(r)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),k3(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:s,onComment:i})}}const Fo={collection:"map",default:!0,nodeClass:Fn,tag:"tag:yaml.org,2002:map",resolve(e,t){return Ol(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,i)=>Fn.from(e,t,i)};class ws extends h3{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(Qo,t),this.items=[]}add(t){this.items.push(t)}delete(t){const i=uu(t);return typeof i!="number"?!1:this.items.splice(i,1).length>0}get(t,i){const s=uu(t);if(typeof s!="number")return;const r=this.items[s];return!i&&mt(r)?r.value:r}has(t){const i=uu(t);return typeof i=="number"&&i<this.items.length}set(t,i){const s=uu(t);if(typeof s!="number")throw new Error(`Expected a valid index, not ${t}.`);const r=this.items[s];mt(r)&&f3(i)?r.value=i:this.items[s]=i}toJSON(t,i){const s=[];i?.onCreate&&i.onCreate(s);let r=0;for(const u of this.items)s.push(Yn(u,String(r++),i));return s}toString(t,i,s){return t?k3(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:s,onComment:i}):JSON.stringify(this)}static from(t,i,s){const{replacer:r}=s,u=new this(t);if(i&&Symbol.iterator in Object(i)){let d=0;for(let g of i){if(typeof r=="function"){const b=i instanceof Set?g:String(d++);g=r.call(i,b,g)}u.items.push(kl(g,void 0,s))}}return u}}function uu(e){let t=mt(e)?e.value:e;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}const Yo={collection:"seq",default:!0,nodeClass:ws,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Rl(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,i)=>ws.from(e,t,i)},md={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,i,s){return t=Object.assign({actualString:!0},t),dh(e,t,i,s)}},pd={identify:e=>e==null,createNode:()=>new Re(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Re(null),stringify:({source:e},t)=>typeof e=="string"&&pd.test.test(e)?e:t.options.nullStr},ph={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Re(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},i){if(e&&ph.test.test(e)){const s=e[0]==="t"||e[0]==="T";if(t===s)return e}return t?i.options.trueStr:i.options.falseStr}};function pa({format:e,minFractionDigits:t,tag:i,value:s}){if(typeof s=="bigint")return String(s);const r=typeof s=="number"?s:Number(s);if(!isFinite(r))return isNaN(r)?".nan":r<0?"-.inf":".inf";let u=Object.is(s,-0)?"-0":JSON.stringify(s);if(!e&&t&&(!i||i==="tag:yaml.org,2002:float")&&/^\d/.test(u)){let d=u.indexOf(".");d<0&&(d=u.length,u+=".");let g=t-(u.length-d-1);for(;g-- >0;)u+="0"}return u}const w3={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:pa},x3={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():pa(e)}},S3={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new Re(parseFloat(e)),i=e.indexOf(".");return i!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-i-1),t},stringify:pa},fd=e=>typeof e=="bigint"||Number.isInteger(e),fh=(e,t,i,{intAsBigInt:s})=>s?BigInt(e):parseInt(e.substring(t),i);function j3(e,t,i){const{value:s}=e;return fd(s)&&s>=0?i+s.toString(t):pa(e)}const A3={identify:e=>fd(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,i)=>fh(e,2,8,i),stringify:e=>j3(e,8,"0o")},N3={identify:fd,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,i)=>fh(e,0,10,i),stringify:pa},_3={identify:e=>fd(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,i)=>fh(e,2,16,i),stringify:e=>j3(e,16,"0x")},OP=[Fo,Yo,md,pd,ph,A3,N3,_3,w3,x3,S3];function o2(e){return typeof e=="bigint"||Number.isInteger(e)}const du=({value:e})=>JSON.stringify(e),RP=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:du},{identify:e=>e==null,createNode:()=>new Re(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:du},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:du},{identify:o2,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:i})=>i?BigInt(e):parseInt(e,10),stringify:({value:e})=>o2(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:du}],MP={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},BP=[Fo,Yo].concat(RP,MP),hh={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const i=atob(e.replace(/[\n\r]/g,"")),s=new Uint8Array(i.length);for(let r=0;r<i.length;++r)s[r]=i.charCodeAt(r);return s}else return t("This environment does not support reading binary tags; either Buffer or atob is required"),e},stringify({comment:e,type:t,value:i},s,r,u){if(!i)return"";const d=i;let g;if(typeof btoa=="function"){let b="";for(let v=0;v<d.length;++v)b+=String.fromCharCode(d[v]);g=btoa(b)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(t??(t=Re.BLOCK_LITERAL),t!==Re.QUOTE_DOUBLE){const b=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),v=Math.ceil(g.length/b),x=new Array(v);for(let S=0,j=0;S<v;++S,j+=b)x[S]=g.substr(j,b);g=x.join(t===Re.BLOCK_LITERAL?`
|
|
115
115
|
`:" ")}return dh({comment:e,type:t,value:g},s,r,u)}};function C3(e,t){if(Rl(e))for(let i=0;i<e.items.length;++i){let s=e.items[i];if(!Ot(s)){if(Ol(s)){s.items.length>1&&t("Each pair must have its own sequence indicator");const r=s.items[0]||new fn(new Re(null));if(s.commentBefore&&(r.key.commentBefore=r.key.commentBefore?`${s.commentBefore}
|
|
116
116
|
${r.key.commentBefore}`:s.commentBefore),s.comment){const u=r.value??r.key;u.comment=u.comment?`${s.comment}
|
|
117
|
-
${u.comment}`:s.comment}s=r}e.items[i]=Ot(s)?s:new fn(s)}}else t("Expected a sequence for this tag");return e}function z3(e,t,i){const{replacer:s}=i,r=new ws(e);r.tag="tag:yaml.org,2002:pairs";let u=0;if(t&&Symbol.iterator in Object(t))for(let d of t){typeof s=="function"&&(d=s.call(t,String(u++),d));let g,b;if(Array.isArray(d))if(d.length===2)g=d[0],b=d[1];else throw new TypeError(`Expected [key, value] tuple: ${d}`);else if(d&&d instanceof Object){const v=Object.keys(d);if(v.length===1)g=v[0],b=d[g];else throw new TypeError(`Expected tuple with one key, not ${v.length} keys`)}else g=d;r.items.push(mh(g,b,i))}return r}const gh={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:C3,createNode:z3};class _o extends ws{constructor(){super(),this.add=Fn.prototype.add.bind(this),this.delete=Fn.prototype.delete.bind(this),this.get=Fn.prototype.get.bind(this),this.has=Fn.prototype.has.bind(this),this.set=Fn.prototype.set.bind(this),this.tag=_o.tag}toJSON(t,i){if(!i)return super.toJSON(t);const s=new Map;i?.onCreate&&i.onCreate(s);for(const r of this.items){let u,d;if(Ot(r)?(u=Yn(r.key,"",i),d=Yn(r.value,u,i)):u=Yn(r,"",i),s.has(u))throw new Error("Ordered maps must not include duplicate keys");s.set(u,d)}return s}static from(t,i,s){const r=z3(t,i,s),u=new this;return u.items=r.items,u}}_o.tag="tag:yaml.org,2002:omap";const yh={collection:"seq",identify:e=>e instanceof Map,nodeClass:_o,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const i=C3(e,t),s=[];for(const{key:r}of i.items)mt(r)&&(s.includes(r.value)?t(`Ordered maps must not include duplicate keys: ${r.value}`):s.push(r.value));return Object.assign(new _o,i)},createNode:(e,t,i)=>_o.from(e,t,i)};function E3({value:e,source:t},i){return t&&(e?T3:D3).test.test(t)?t:e?i.options.trueStr:i.options.falseStr}const T3={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Re(!0),stringify:E3},D3={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Re(!1),stringify:E3},
|
|
117
|
+
${u.comment}`:s.comment}s=r}e.items[i]=Ot(s)?s:new fn(s)}}else t("Expected a sequence for this tag");return e}function z3(e,t,i){const{replacer:s}=i,r=new ws(e);r.tag="tag:yaml.org,2002:pairs";let u=0;if(t&&Symbol.iterator in Object(t))for(let d of t){typeof s=="function"&&(d=s.call(t,String(u++),d));let g,b;if(Array.isArray(d))if(d.length===2)g=d[0],b=d[1];else throw new TypeError(`Expected [key, value] tuple: ${d}`);else if(d&&d instanceof Object){const v=Object.keys(d);if(v.length===1)g=v[0],b=d[g];else throw new TypeError(`Expected tuple with one key, not ${v.length} keys`)}else g=d;r.items.push(mh(g,b,i))}return r}const gh={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:C3,createNode:z3};class _o extends ws{constructor(){super(),this.add=Fn.prototype.add.bind(this),this.delete=Fn.prototype.delete.bind(this),this.get=Fn.prototype.get.bind(this),this.has=Fn.prototype.has.bind(this),this.set=Fn.prototype.set.bind(this),this.tag=_o.tag}toJSON(t,i){if(!i)return super.toJSON(t);const s=new Map;i?.onCreate&&i.onCreate(s);for(const r of this.items){let u,d;if(Ot(r)?(u=Yn(r.key,"",i),d=Yn(r.value,u,i)):u=Yn(r,"",i),s.has(u))throw new Error("Ordered maps must not include duplicate keys");s.set(u,d)}return s}static from(t,i,s){const r=z3(t,i,s),u=new this;return u.items=r.items,u}}_o.tag="tag:yaml.org,2002:omap";const yh={collection:"seq",identify:e=>e instanceof Map,nodeClass:_o,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const i=C3(e,t),s=[];for(const{key:r}of i.items)mt(r)&&(s.includes(r.value)?t(`Ordered maps must not include duplicate keys: ${r.value}`):s.push(r.value));return Object.assign(new _o,i)},createNode:(e,t,i)=>_o.from(e,t,i)};function E3({value:e,source:t},i){return t&&(e?T3:D3).test.test(t)?t:e?i.options.trueStr:i.options.falseStr}const T3={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Re(!0),stringify:E3},D3={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Re(!1),stringify:E3},qP={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:pa},IP={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():pa(e)}},LP={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new Re(parseFloat(e.replace(/_/g,""))),i=e.indexOf(".");if(i!==-1){const s=e.substring(i+1).replace(/_/g,"");s[s.length-1]==="0"&&(t.minFractionDigits=s.length)}return t},stringify:pa},Ml=e=>typeof e=="bigint"||Number.isInteger(e);function hd(e,t,i,{intAsBigInt:s}){const r=e[0];if((r==="-"||r==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),s){switch(i){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const d=BigInt(e);return r==="-"?BigInt(-1)*d:d}const u=parseInt(e,i);return r==="-"?-1*u:u}function bh(e,t,i){const{value:s}=e;if(Ml(s)){const r=s.toString(t);return s<0?"-"+i+r.substr(1):i+r}return pa(e)}const PP={identify:Ml,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,i)=>hd(e,2,2,i),stringify:e=>bh(e,2,"0b")},$P={identify:Ml,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,i)=>hd(e,1,8,i),stringify:e=>bh(e,8,"0")},UP={identify:Ml,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,i)=>hd(e,0,10,i),stringify:pa},VP={identify:Ml,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,i)=>hd(e,2,16,i),stringify:e=>bh(e,16,"0x")};class Co extends Fn{constructor(t){super(t),this.tag=Co.tag}add(t){let i;Ot(t)?i=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?i=new fn(t.key,null):i=new fn(t,null),bs(this.items,i.key)||this.items.push(i)}get(t,i){const s=bs(this.items,t);return!i&&Ot(s)?mt(s.key)?s.key.value:s.key:s}set(t,i){if(typeof i!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof i}`);const s=bs(this.items,t);s&&!i?this.items.splice(this.items.indexOf(s),1):!s&&i&&this.items.push(new fn(t))}toJSON(t,i){return super.toJSON(t,i,Set)}toString(t,i,s){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),i,s);throw new Error("Set items must all have null values")}static from(t,i,s){const{replacer:r}=s,u=new this(t);if(i&&Symbol.iterator in Object(i))for(let d of i)typeof r=="function"&&(d=r.call(i,d,d)),u.items.push(mh(d,null,s));return u}}Co.tag="tag:yaml.org,2002:set";const vh={collection:"map",identify:e=>e instanceof Set,nodeClass:Co,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,i)=>Co.from(e,t,i),resolve(e,t){if(Ol(e)){if(e.hasAllNullValues(!0))return Object.assign(new Co,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function kh(e,t){const i=e[0],s=i==="-"||i==="+"?e.substring(1):e,r=d=>t?BigInt(d):Number(d),u=s.replace(/_/g,"").split(":").reduce((d,g)=>d*r(60)+r(g),r(0));return i==="-"?r(-1)*u:u}function O3(e){let{value:t}=e,i=d=>d;if(typeof t=="bigint")i=d=>BigInt(d);else if(isNaN(t)||!isFinite(t))return pa(e);let s="";t<0&&(s="-",t*=i(-1));const r=i(60),u=[t%r];return t<60?u.unshift(0):(t=(t-u[0])/r,u.unshift(t%r),t>=60&&(t=(t-u[0])/r,u.unshift(t))),s+u.map(d=>String(d).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const R3={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:i})=>kh(e,i),stringify:O3},M3={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>kh(e,!1),stringify:O3},gd={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(gd.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,i,s,r,u,d,g]=t.map(Number),b=t[7]?Number((t[7]+"00").substr(1,3)):0;let v=Date.UTC(i,s-1,r,u||0,d||0,g||0,b);const x=t[8];if(x&&x!=="Z"){let S=kh(x,!1);Math.abs(S)<30&&(S*=60),v-=6e4*S}return new Date(v)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""},r2=[Fo,Yo,md,pd,T3,D3,PP,$P,UP,VP,qP,IP,LP,hh,Za,yh,gh,vh,R3,M3,gd],l2=new Map([["core",OP],["failsafe",[Fo,Yo,md]],["json",BP],["yaml11",r2],["yaml-1.1",r2]]),c2={binary:hh,bool:ph,float:S3,floatExp:x3,floatNaN:w3,floatTime:M3,int:N3,intHex:_3,intOct:A3,intTime:R3,map:Fo,merge:Za,null:pd,omap:yh,pairs:gh,seq:Yo,set:vh,timestamp:gd},KP={"tag:yaml.org,2002:binary":hh,"tag:yaml.org,2002:merge":Za,"tag:yaml.org,2002:omap":yh,"tag:yaml.org,2002:pairs":gh,"tag:yaml.org,2002:set":vh,"tag:yaml.org,2002:timestamp":gd};function rf(e,t,i){const s=l2.get(t);if(s&&!e)return i&&!s.includes(Za)?s.concat(Za):s.slice();let r=s;if(!r)if(Array.isArray(e))r=[];else{const u=Array.from(l2.keys()).filter(d=>d!=="yaml11").map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${u} or define customTags array`)}if(Array.isArray(e))for(const u of e)r=r.concat(u);else typeof e=="function"&&(r=e(r.slice()));return i&&(r=r.concat(Za)),r.reduce((u,d)=>{const g=typeof d=="string"?c2[d]:d;if(!g){const b=JSON.stringify(d),v=Object.keys(c2).map(x=>JSON.stringify(x)).join(", ");throw new Error(`Unknown custom tag ${b}; use one of ${v}`)}return u.includes(g)||u.push(g),u},[])}const GP=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0;class wh{constructor({compat:t,customTags:i,merge:s,resolveKnownTags:r,schema:u,sortMapEntries:d,toStringDefaults:g}){this.compat=Array.isArray(t)?rf(t,"compat"):t?rf(null,t):null,this.name=typeof u=="string"&&u||"core",this.knownTags=r?KP:{},this.tags=rf(i,this.name,s),this.toStringOptions=g??null,Object.defineProperty(this,Di,{value:Fo}),Object.defineProperty(this,ja,{value:md}),Object.defineProperty(this,Qo,{value:Yo}),this.sortMapEntries=typeof d=="function"?d:d===!0?GP:null}clone(){const t=Object.create(wh.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function HP(e,t){const i=[];let s=t.directives===!0;if(t.directives!==!1&&e.directives){const b=e.directives.toString(e);b?(i.push(b),s=!0):e.directives.docStart&&(s=!0)}s&&i.push("---");const r=y3(e,t),{commentString:u}=r.options;if(e.commentBefore){i.length!==1&&i.unshift("");const b=u(e.commentBefore);i.unshift(Ha(b,""))}let d=!1,g=null;if(e.contents){if(Dt(e.contents)){if(e.contents.spaceBefore&&s&&i.push(""),e.contents.commentBefore){const x=u(e.contents.commentBefore);i.push(Ha(x,""))}r.forceBlockIndent=!!e.comment,g=e.contents.comment}const b=g?void 0:()=>d=!0;let v=Io(e.contents,r,()=>g=null,b);g&&(v+=ys(v,"",u(g))),(v[0]==="|"||v[0]===">")&&i[i.length-1]==="---"?i[i.length-1]=`--- ${v}`:i.push(v)}else i.push(Io(e.contents,r));if(e.directives?.docEnd)if(e.comment){const b=u(e.comment);b.includes(`
|
|
118
118
|
`)?(i.push("..."),i.push(Ha(b,""))):i.push(`... ${b}`)}else i.push("...");else{let b=e.comment;b&&d&&(b=b.replace(/^\n+/,"")),b&&((!d||g)&&i[i.length-1]!==""&&i.push(""),i.push(Ha(u(b),"")))}return i.join(`
|
|
119
119
|
`)+`
|
|
120
|
-
`}class yd{constructor(t,i,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Jn,{value:Pf});let r=null;typeof i=="function"||Array.isArray(i)?r=i:s===void 0&&i&&(s=i,i=void 0);const u=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=u;let{version:d}=u;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(d=this.directives.yaml.version)):this.directives=new un({version:d}),this.setSchema(d,s),this.contents=t===void 0?null:this.createNode(t,r,s)}clone(){const t=Object.create(yd.prototype,{[Jn]:{value:Pf}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Dt(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ho(this.contents)&&this.contents.add(t)}addIn(t,i){ho(this.contents)&&this.contents.addIn(t,i)}createAlias(t,i){if(!t.anchor){const s=m3(this);t.anchor=!i||s.has(i)?p3(i||"a",s):i}return new uh(t.anchor)}createNode(t,i,s){let r;if(typeof i=="function")t=i.call({"":t},"",t),r=i;else if(Array.isArray(i)){const C=I=>typeof I=="number"||I instanceof String||I instanceof Number,O=i.filter(C).map(String);O.length>0&&(i=i.concat(O)),r=i}else s===void 0&&i&&(s=i,i=void 0);const{aliasDuplicateObjects:u,anchorPrefix:d,flow:g,keepUndefined:b,onTagObj:v,tag:x}=s??{},{onAnchor:S,setAnchors:j,sourceObjects:_}=
|
|
120
|
+
`}class yd{constructor(t,i,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Jn,{value:Pf});let r=null;typeof i=="function"||Array.isArray(i)?r=i:s===void 0&&i&&(s=i,i=void 0);const u=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=u;let{version:d}=u;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(d=this.directives.yaml.version)):this.directives=new un({version:d}),this.setSchema(d,s),this.contents=t===void 0?null:this.createNode(t,r,s)}clone(){const t=Object.create(yd.prototype,{[Jn]:{value:Pf}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Dt(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ho(this.contents)&&this.contents.add(t)}addIn(t,i){ho(this.contents)&&this.contents.addIn(t,i)}createAlias(t,i){if(!t.anchor){const s=m3(this);t.anchor=!i||s.has(i)?p3(i||"a",s):i}return new uh(t.anchor)}createNode(t,i,s){let r;if(typeof i=="function")t=i.call({"":t},"",t),r=i;else if(Array.isArray(i)){const C=I=>typeof I=="number"||I instanceof String||I instanceof Number,O=i.filter(C).map(String);O.length>0&&(i=i.concat(O)),r=i}else s===void 0&&i&&(s=i,i=void 0);const{aliasDuplicateObjects:u,anchorPrefix:d,flow:g,keepUndefined:b,onTagObj:v,tag:x}=s??{},{onAnchor:S,setAnchors:j,sourceObjects:_}=vP(this,d||"a"),T={aliasDuplicateObjects:u??!0,keepUndefined:b??!1,onAnchor:S,onTagObj:v,replacer:r,schema:this.schema,sourceObjects:_},N=kl(t,x,T);return g&&Tt(N)&&(N.flow=!0),j(),N}createPair(t,i,s={}){const r=this.createNode(t,null,s),u=this.createNode(i,null,s);return new fn(r,u)}delete(t){return ho(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ol(t)?this.contents==null?!1:(this.contents=null,!0):ho(this.contents)?this.contents.deleteIn(t):!1}get(t,i){return Tt(this.contents)?this.contents.get(t,i):void 0}getIn(t,i){return ol(t)?!i&&mt(this.contents)?this.contents.value:this.contents:Tt(this.contents)?this.contents.getIn(t,i):void 0}has(t){return Tt(this.contents)?this.contents.has(t):!1}hasIn(t){return ol(t)?this.contents!==void 0:Tt(this.contents)?this.contents.hasIn(t):!1}set(t,i){this.contents==null?this.contents=Bu(this.schema,[t],i):ho(this.contents)&&this.contents.set(t,i)}setIn(t,i){ol(t)?this.contents=i:this.contents==null?this.contents=Bu(this.schema,Array.from(t),i):ho(this.contents)&&this.contents.setIn(t,i)}setSchema(t,i={}){typeof t=="number"&&(t=String(t));let s;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new un({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new un({version:t}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{const r=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${r}`)}}if(i.schema instanceof Object)this.schema=i.schema;else if(s)this.schema=new wh(Object.assign(s,i));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:i,mapAsMap:s,maxAliasCount:r,onAnchor:u,reviver:d}={}){const g={anchors:new Map,doc:this,keep:!t,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},b=Yn(this.contents,i??"",g);if(typeof u=="function")for(const{count:v,res:x}of g.anchors.values())u(x,v);return typeof d=="function"?xo(d,{"":b},"",b):b}toJSON(t,i){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:i})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const i=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${i}`)}return HP(this,t)}}function ho(e){if(Tt(e))return!0;throw new Error("Expected a YAML collection as document contents")}class B3 extends Error{constructor(t,i,s,r){super(),this.name=t,this.code=s,this.message=r,this.pos=i}}class mu extends B3{constructor(t,i,s){super("YAMLParseError",t,i,s)}}class QP extends B3{constructor(t,i,s){super("YAMLWarning",t,i,s)}}const u2=(e,t)=>i=>{if(i.pos[0]===-1)return;i.linePos=i.pos.map(g=>t.linePos(g));const{line:s,col:r}=i.linePos[0];i.message+=` at line ${s}, column ${r}`;let u=r-1,d=e.substring(t.lineStarts[s-1],t.lineStarts[s]).replace(/[\n\r]+$/,"");if(u>=60&&d.length>80){const g=Math.min(u-39,d.length-79);d="…"+d.substring(g),u-=g-1}if(d.length>80&&(d=d.substring(0,79)+"…"),s>1&&/^ *$/.test(d.substring(0,u))){let g=e.substring(t.lineStarts[s-2],t.lineStarts[s-1]);g.length>80&&(g=g.substring(0,79)+`…
|
|
121
121
|
`),d=g+d}if(/[^ ]/.test(d)){let g=1;const b=i.linePos[1];b?.line===s&&b.col>r&&(g=Math.max(1,Math.min(b.col-r,80-u)));const v=" ".repeat(u)+"^".repeat(g);i.message+=`:
|
|
122
122
|
|
|
123
123
|
${d}
|
|
124
124
|
${v}
|
|
125
125
|
`}};function Lo(e,{flow:t,indicator:i,next:s,offset:r,onError:u,parentIndent:d,startOnNewline:g}){let b=!1,v=g,x=g,S="",j="",_=!1,T=!1,N=null,C=null,O=null,I=null,$=null,K=null,Z=null;for(const q of e)switch(T&&(q.type!=="space"&&q.type!=="newline"&&q.type!=="comma"&&u(q.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),T=!1),N&&(v&&q.type!=="comment"&&q.type!=="newline"&&u(N,"TAB_AS_INDENT","Tabs are not allowed as indentation"),N=null),q.type){case"space":!t&&(i!=="doc-start"||s?.type!=="flow-collection")&&q.source.includes(" ")&&(N=q),x=!0;break;case"comment":{x||u(q,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const pe=q.source.substring(1)||" ";S?S+=j+pe:S=pe,j="",v=!1;break}case"newline":v?S?S+=q.source:(!K||i!=="seq-item-ind")&&(b=!0):j+=q.source,v=!0,_=!0,(C||O)&&(I=q),x=!0;break;case"anchor":C&&u(q,"MULTIPLE_ANCHORS","A node can have at most one anchor"),q.source.endsWith(":")&&u(q.offset+q.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),C=q,Z??(Z=q.offset),v=!1,x=!1,T=!0;break;case"tag":{O&&u(q,"MULTIPLE_TAGS","A node can have at most one tag"),O=q,Z??(Z=q.offset),v=!1,x=!1,T=!0;break}case i:(C||O)&&u(q,"BAD_PROP_ORDER",`Anchors and tags must be after the ${q.source} indicator`),K&&u(q,"UNEXPECTED_TOKEN",`Unexpected ${q.source} in ${t??"collection"}`),K=q,v=i==="seq-item-ind"||i==="explicit-key-ind",x=!1;break;case"comma":if(t){$&&u(q,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),$=q,v=!1,x=!1;break}default:u(q,"UNEXPECTED_TOKEN",`Unexpected ${q.type} token`),v=!1,x=!1}const se=e[e.length-1],R=se?se.offset+se.source.length:r;return T&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&u(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),N&&(v&&N.indent<=d||s?.type==="block-map"||s?.type==="block-seq")&&u(N,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:$,found:K,spaceBefore:b,comment:S,hasNewline:_,anchor:C,tag:O,newlineAfterProp:I,end:R,start:Z??R}}function wl(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(`
|
|
126
|
-
`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const i of t.start)if(i.type==="newline")return!0;if(t.sep){for(const i of t.sep)if(i.type==="newline")return!0}if(wl(t.key)||wl(t.value))return!0}return!1;default:return!0}}function Kf(e,t,i){if(t?.type==="flow-collection"){const s=t.end[0];s.indent===e&&(s.source==="]"||s.source==="}")&&wl(t)&&i(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function q3(e,t,i){const{uniqueKeys:s}=e.options;if(s===!1)return!1;const r=typeof s=="function"?s:(u,d)=>u===d||mt(u)&&mt(d)&&u.value===d.value;return t.some(u=>r(u.key,i))}const d2="All mapping items must start at the same column";function
|
|
126
|
+
`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const i of t.start)if(i.type==="newline")return!0;if(t.sep){for(const i of t.sep)if(i.type==="newline")return!0}if(wl(t.key)||wl(t.value))return!0}return!1;default:return!0}}function Kf(e,t,i){if(t?.type==="flow-collection"){const s=t.end[0];s.indent===e&&(s.source==="]"||s.source==="}")&&wl(t)&&i(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function q3(e,t,i){const{uniqueKeys:s}=e.options;if(s===!1)return!1;const r=typeof s=="function"?s:(u,d)=>u===d||mt(u)&&mt(d)&&u.value===d.value;return t.some(u=>r(u.key,i))}const d2="All mapping items must start at the same column";function ZP({composeNode:e,composeEmptyNode:t},i,s,r,u){const d=u?.nodeClass??Fn,g=new d(i.schema);i.atRoot&&(i.atRoot=!1);let b=s.offset,v=null;for(const x of s.items){const{start:S,key:j,sep:_,value:T}=x,N=Lo(S,{indicator:"explicit-key-ind",next:j??_?.[0],offset:b,onError:r,parentIndent:s.indent,startOnNewline:!0}),C=!N.found;if(C){if(j&&(j.type==="block-seq"?r(b,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in j&&j.indent!==s.indent&&r(b,"BAD_INDENT",d2)),!N.anchor&&!N.tag&&!_){v=N.end,N.comment&&(g.comment?g.comment+=`
|
|
127
127
|
`+N.comment:g.comment=N.comment);continue}(N.newlineAfterProp||wl(j))&&r(j??S[S.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else N.found?.indent!==s.indent&&r(b,"BAD_INDENT",d2);i.atKey=!0;const O=N.end,I=j?e(i,j,N,r):t(i,O,S,null,N,r);i.schema.compat&&Kf(s.indent,j,r),i.atKey=!1,q3(i,g.items,I)&&r(O,"DUPLICATE_KEY","Map keys must be unique");const $=Lo(_??[],{indicator:"map-value-ind",next:T,offset:I.range[2],onError:r,parentIndent:s.indent,startOnNewline:!j||j.type==="block-scalar"});if(b=$.end,$.found){C&&(T?.type==="block-map"&&!$.hasNewline&&r(b,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),i.options.strict&&N.start<$.found.offset-1024&&r(I.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));const K=T?e(i,T,$,r):t(i,b,_,null,$,r);i.schema.compat&&Kf(s.indent,T,r),b=K.range[2];const Z=new fn(I,K);i.options.keepSourceTokens&&(Z.srcToken=x),g.items.push(Z)}else{C&&r(I.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),$.comment&&(I.comment?I.comment+=`
|
|
128
|
-
`+$.comment:I.comment=$.comment);const K=new fn(I);i.options.keepSourceTokens&&(K.srcToken=x),g.items.push(K)}}return v&&v<b&&r(v,"IMPOSSIBLE","Map comment with trailing content"),g.range=[s.offset,b,v??b],g}function
|
|
128
|
+
`+$.comment:I.comment=$.comment);const K=new fn(I);i.options.keepSourceTokens&&(K.srcToken=x),g.items.push(K)}}return v&&v<b&&r(v,"IMPOSSIBLE","Map comment with trailing content"),g.range=[s.offset,b,v??b],g}function FP({composeNode:e,composeEmptyNode:t},i,s,r,u){const d=u?.nodeClass??ws,g=new d(i.schema);i.atRoot&&(i.atRoot=!1),i.atKey&&(i.atKey=!1);let b=s.offset,v=null;for(const{start:x,value:S}of s.items){const j=Lo(x,{indicator:"seq-item-ind",next:S,offset:b,onError:r,parentIndent:s.indent,startOnNewline:!0});if(!j.found)if(j.anchor||j.tag||S)S?.type==="block-seq"?r(j.end,"BAD_INDENT","All sequence items must start at the same column"):r(b,"MISSING_CHAR","Sequence item without - indicator");else{v=j.end,j.comment&&(g.comment=j.comment);continue}const _=S?e(i,S,j,r):t(i,j.end,x,null,j,r);i.schema.compat&&Kf(s.indent,S,r),b=_.range[2],g.items.push(_)}return g.range=[s.offset,b,v??b],g}function Bl(e,t,i,s){let r="";if(e){let u=!1,d="";for(const g of e){const{source:b,type:v}=g;switch(v){case"space":u=!0;break;case"comment":{i&&!u&&s(g,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const x=b.substring(1)||" ";r?r+=d+x:r=x,d="";break}case"newline":r&&(d+=b),u=!0;break;default:s(g,"UNEXPECTED_TOKEN",`Unexpected ${v} at node end`)}t+=b.length}}return{comment:r,offset:t}}const lf="Block collections are not allowed within flow collections",cf=e=>e&&(e.type==="block-map"||e.type==="block-seq");function YP({composeNode:e,composeEmptyNode:t},i,s,r,u){const d=s.start.source==="{",g=d?"flow map":"flow sequence",b=u?.nodeClass??(d?Fn:ws),v=new b(i.schema);v.flow=!0;const x=i.atRoot;x&&(i.atRoot=!1),i.atKey&&(i.atKey=!1);let S=s.offset+s.start.source.length;for(let C=0;C<s.items.length;++C){const O=s.items[C],{start:I,key:$,sep:K,value:Z}=O,se=Lo(I,{flow:g,indicator:"explicit-key-ind",next:$??K?.[0],offset:S,onError:r,parentIndent:s.indent,startOnNewline:!1});if(!se.found){if(!se.anchor&&!se.tag&&!K&&!Z){C===0&&se.comma?r(se.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${g}`):C<s.items.length-1&&r(se.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${g}`),se.comment&&(v.comment?v.comment+=`
|
|
129
129
|
`+se.comment:v.comment=se.comment),S=se.end;continue}!d&&i.options.strict&&wl($)&&r($,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(C===0)se.comma&&r(se.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${g}`);else if(se.comma||r(se.start,"MISSING_CHAR",`Missing , between ${g} items`),se.comment){let R="";e:for(const q of I)switch(q.type){case"comma":case"space":break;case"comment":R=q.source.substring(1);break e;default:break e}if(R){let q=v.items[v.items.length-1];Ot(q)&&(q=q.value??q.key),q.comment?q.comment+=`
|
|
130
130
|
`+R:q.comment=R,se.comment=se.comment.substring(R.length+1)}}if(!d&&!K&&!se.found){const R=Z?e(i,Z,se,r):t(i,se.end,K,null,se,r);v.items.push(R),S=R.range[2],cf(Z)&&r(R.range,"BLOCK_IN_FLOW",lf)}else{i.atKey=!0;const R=se.end,q=$?e(i,$,se,r):t(i,R,I,null,se,r);cf($)&&r(q.range,"BLOCK_IN_FLOW",lf),i.atKey=!1;const pe=Lo(K??[],{flow:g,indicator:"map-value-ind",next:Z,offset:q.range[2],onError:r,parentIndent:s.indent,startOnNewline:!1});if(pe.found){if(!d&&!se.found&&i.options.strict){if(K)for(const we of K){if(we===pe.found)break;if(we.type==="newline"){r(we,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}se.start<pe.found.offset-1024&&r(pe.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else Z&&("source"in Z&&Z.source?.[0]===":"?r(Z,"MISSING_CHAR",`Missing space after : in ${g}`):r(pe.start,"MISSING_CHAR",`Missing , or : between ${g} items`));const ue=Z?e(i,Z,pe,r):pe.found?t(i,pe.end,K,null,pe,r):null;ue?cf(Z)&&r(ue.range,"BLOCK_IN_FLOW",lf):pe.comment&&(q.comment?q.comment+=`
|
|
131
131
|
`+pe.comment:q.comment=pe.comment);const fe=new fn(q,ue);if(i.options.keepSourceTokens&&(fe.srcToken=O),d){const we=v;q3(i,we.items,q)&&r(R,"DUPLICATE_KEY","Map keys must be unique"),we.items.push(fe)}else{const we=new Fn(i.schema);we.flow=!0,we.items.push(fe);const Te=(ue??q).range;we.range=[q.range[0],Te[1],Te[2]],v.items.push(we)}S=ue?ue.range[2]:pe.end}}const j=d?"}":"]",[_,...T]=s.end;let N=S;if(_?.source===j)N=_.offset+_.source.length;else{const C=g[0].toUpperCase()+g.substring(1),O=x?`${C} must end with a ${j}`:`${C} in block collection must be sufficiently indented and end with a ${j}`;r(S,x?"MISSING_CHAR":"BAD_INDENT",O),_&&_.source.length!==1&&T.unshift(_)}if(T.length>0){const C=Bl(T,N,i.options.strict,r);C.comment&&(v.comment?v.comment+=`
|
|
132
|
-
`+C.comment:v.comment=C.comment),v.range=[s.offset,N,C.offset]}else v.range=[s.offset,N,N];return v}function uf(e,t,i,s,r,u){const d=i.type==="block-map"?
|
|
132
|
+
`+C.comment:v.comment=C.comment),v.range=[s.offset,N,C.offset]}else v.range=[s.offset,N,N];return v}function uf(e,t,i,s,r,u){const d=i.type==="block-map"?ZP(e,t,i,s,u):i.type==="block-seq"?FP(e,t,i,s,u):YP(e,t,i,s,u),g=d.constructor;return r==="!"||r===g.tagName?(d.tag=g.tagName,d):(r&&(d.tag=r),d)}function XP(e,t,i,s,r){const u=s.tag,d=u?t.directives.tagName(u.source,j=>r(u,"TAG_RESOLVE_FAILED",j)):null;if(i.type==="block-seq"){const{anchor:j,newlineAfterProp:_}=s,T=j&&u?j.offset>u.offset?j:u:j??u;T&&(!_||_.offset<T.offset)&&r(T,"MISSING_CHAR","Missing newline after block sequence props")}const g=i.type==="block-map"?"map":i.type==="block-seq"?"seq":i.start.source==="{"?"map":"seq";if(!u||!d||d==="!"||d===Fn.tagName&&g==="map"||d===ws.tagName&&g==="seq")return uf(e,t,i,r,d);let b=t.schema.tags.find(j=>j.tag===d&&j.collection===g);if(!b){const j=t.schema.knownTags[d];if(j?.collection===g)t.schema.tags.push(Object.assign({},j,{default:!1})),b=j;else return j?r(u,"BAD_COLLECTION_TYPE",`${j.tag} used for ${g} collection, but expects ${j.collection??"scalar"}`,!0):r(u,"TAG_RESOLVE_FAILED",`Unresolved tag: ${d}`,!0),uf(e,t,i,r,d)}const v=uf(e,t,i,r,d,b),x=b.resolve?.(v,j=>r(u,"TAG_RESOLVE_FAILED",j),t.options)??v,S=Dt(x)?x:new Re(x);return S.range=v.range,S.tag=d,b?.format&&(S.format=b.format),S}function JP(e,t,i){const s=t.offset,r=WP(t,e.options.strict,i);if(!r)return{value:"",type:null,comment:"",range:[s,s,s]};const u=r.mode===">"?Re.BLOCK_FOLDED:Re.BLOCK_LITERAL,d=t.source?e$(t.source):[];let g=d.length;for(let N=d.length-1;N>=0;--N){const C=d[N][1];if(C===""||C==="\r")g=N;else break}if(g===0){const N=r.chomp==="+"&&d.length>0?`
|
|
133
133
|
`.repeat(Math.max(1,d.length-1)):"";let C=s+r.length;return t.source&&(C+=t.source.length),{value:N,type:u,comment:r.comment,range:[s,C,C]}}let b=t.indent+r.indent,v=t.offset+r.length,x=0;for(let N=0;N<g;++N){const[C,O]=d[N];if(O===""||O==="\r")r.indent===0&&C.length>b&&(b=C.length);else{C.length<b&&i(v+C.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),r.indent===0&&(b=C.length),x=N,b===0&&!e.atRoot&&i(v,"BAD_INDENT","Block scalar values in collections must be indented");break}v+=C.length+O.length+1}for(let N=d.length-1;N>=g;--N)d[N][0].length>b&&(g=N+1);let S="",j="",_=!1;for(let N=0;N<x;++N)S+=d[N][0].slice(b)+`
|
|
134
134
|
`;for(let N=x;N<g;++N){let[C,O]=d[N];v+=C.length+O.length+1;const I=O[O.length-1]==="\r";if(I&&(O=O.slice(0,-1)),O&&C.length<b){const K=`Block scalar lines must not be less indented than their ${r.indent?"explicit indentation indicator":"first line"}`;i(v-O.length-(I?2:1),"BAD_INDENT",K),C=""}u===Re.BLOCK_LITERAL?(S+=j+C.slice(b)+O,j=`
|
|
135
135
|
`):C.length>b||O[0]===" "?(j===" "?j=`
|
|
@@ -144,33 +144,33 @@ ${v}
|
|
|
144
144
|
`+d[N][0].slice(b);S[S.length-1]!==`
|
|
145
145
|
`&&(S+=`
|
|
146
146
|
`);break;default:S+=`
|
|
147
|
-
`}const T=s+r.length+t.source.length;return{value:S,type:u,comment:r.comment,range:[s,T,T]}}function
|
|
147
|
+
`}const T=s+r.length+t.source.length;return{value:S,type:u,comment:r.comment,range:[s,T,T]}}function WP({offset:e,props:t},i,s){if(t[0].type!=="block-scalar-header")return s(t[0],"IMPOSSIBLE","Block scalar header not found"),null;const{source:r}=t[0],u=r[0];let d=0,g="",b=-1;for(let j=1;j<r.length;++j){const _=r[j];if(!g&&(_==="-"||_==="+"))g=_;else{const T=Number(_);!d&&T?d=T:b===-1&&(b=e+j)}}b!==-1&&s(b,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${r}`);let v=!1,x="",S=r.length;for(let j=1;j<t.length;++j){const _=t[j];switch(_.type){case"space":v=!0;case"newline":S+=_.source.length;break;case"comment":i&&!v&&s(_,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),S+=_.source.length,x=_.source.substring(1);break;case"error":s(_,"UNEXPECTED_TOKEN",_.message),S+=_.source.length;break;default:{const T=`Unexpected token in block scalar header: ${_.type}`;s(_,"UNEXPECTED_TOKEN",T);const N=_.source;N&&typeof N=="string"&&(S+=N.length)}}}return{mode:u,indent:d,chomp:g,comment:x,length:S}}function e$(e){const t=e.split(/\n( *)/),i=t[0],s=i.match(/^( *)/),u=[s?.[1]?[s[1],i.slice(s[1].length)]:["",i]];for(let d=1;d<t.length;d+=2)u.push([t[d],t[d+1]]);return u}function t$(e,t,i){const{offset:s,type:r,source:u,end:d}=e;let g,b;const v=(j,_,T)=>i(s+j,_,T);switch(r){case"scalar":g=Re.PLAIN,b=n$(u,v);break;case"single-quoted-scalar":g=Re.QUOTE_SINGLE,b=a$(u,v);break;case"double-quoted-scalar":g=Re.QUOTE_DOUBLE,b=i$(u,v);break;default:return i(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${r}`),{value:"",type:null,comment:"",range:[s,s+u.length,s+u.length]}}const x=s+u.length,S=Bl(d,x,t,i);return{value:b,type:g,comment:S.comment,range:[s,x,S.offset]}}function n$(e,t){let i="";switch(e[0]){case" ":i="a tab character";break;case",":i="flow indicator character ,";break;case"%":i="directive indicator character %";break;case"|":case">":{i=`block scalar indicator ${e[0]}`;break}case"@":case"`":{i=`reserved character ${e[0]}`;break}}return i&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${i}`),I3(e)}function a$(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),I3(e.slice(1,-1)).replace(/''/g,"'")}function I3(e){let t,i;try{t=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
148
148
|
`,"sy"),i=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
149
149
|
`,"sy")}catch{t=/(.*?)[ \t]*\r?\n/sy,i=/[ \t]*(.*?)[ \t]*\r?\n/sy}let s=t.exec(e);if(!s)return e;let r=s[1],u=" ",d=t.lastIndex;for(i.lastIndex=d;s=i.exec(e);)s[1]===""?u===`
|
|
150
150
|
`?r+=u:u=`
|
|
151
|
-
`:(r+=u+s[1],u=" "),d=i.lastIndex;const g=/[ \t]*(.*)/sy;return g.lastIndex=d,s=g.exec(e),r+u+(s?.[1]??"")}function
|
|
151
|
+
`:(r+=u+s[1],u=" "),d=i.lastIndex;const g=/[ \t]*(.*)/sy;return g.lastIndex=d,s=g.exec(e),r+u+(s?.[1]??"")}function i$(e,t){let i="";for(let s=1;s<e.length-1;++s){const r=e[s];if(!(r==="\r"&&e[s+1]===`
|
|
152
152
|
`))if(r===`
|
|
153
|
-
`){const{fold:u,offset:d}=
|
|
153
|
+
`){const{fold:u,offset:d}=s$(e,s);i+=u,s=d}else if(r==="\\"){let u=e[++s];const d=o$[u];if(d)i+=d;else if(u===`
|
|
154
154
|
`)for(u=e[s+1];u===" "||u===" ";)u=e[++s+1];else if(u==="\r"&&e[s+1]===`
|
|
155
|
-
`)for(u=e[++s+1];u===" "||u===" ";)u=e[++s+1];else if(u==="x"||u==="u"||u==="U"){const g={x:2,u:4,U:8}[u];i+=
|
|
155
|
+
`)for(u=e[++s+1];u===" "||u===" ";)u=e[++s+1];else if(u==="x"||u==="u"||u==="U"){const g={x:2,u:4,U:8}[u];i+=r$(e,s+1,g,t),s+=g}else{const g=e.substr(s-1,2);t(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${g}`),i+=g}}else if(r===" "||r===" "){const u=s;let d=e[s+1];for(;d===" "||d===" ";)d=e[++s+1];d!==`
|
|
156
156
|
`&&!(d==="\r"&&e[s+2]===`
|
|
157
|
-
`)&&(i+=s>u?e.slice(u,s+1):r)}else i+=r}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),i}function
|
|
157
|
+
`)&&(i+=s>u?e.slice(u,s+1):r)}else i+=r}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),i}function s$(e,t){let i="",s=e[t+1];for(;(s===" "||s===" "||s===`
|
|
158
158
|
`||s==="\r")&&!(s==="\r"&&e[t+2]!==`
|
|
159
159
|
`);)s===`
|
|
160
160
|
`&&(i+=`
|
|
161
|
-
`),t+=1,s=e[t+1];return i||(i=" "),{fold:i,offset:t}}const
|
|
162
|
-
`,r:"\r",t:" ",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
161
|
+
`),t+=1,s=e[t+1];return i||(i=" "),{fold:i,offset:t}}const o$={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
162
|
+
`,r:"\r",t:" ",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function r$(e,t,i,s){const r=e.substr(t,i),d=r.length===i&&/^[0-9a-fA-F]+$/.test(r)?parseInt(r,16):NaN;if(isNaN(d)){const g=e.substr(t-2,i+2);return s(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${g}`),g}return String.fromCodePoint(d)}function L3(e,t,i,s){const{value:r,type:u,comment:d,range:g}=t.type==="block-scalar"?JP(e,t,s):t$(t,e.options.strict,s),b=i?e.directives.tagName(i.source,S=>s(i,"TAG_RESOLVE_FAILED",S)):null;let v;e.options.stringKeys&&e.atKey?v=e.schema[ja]:b?v=l$(e.schema,r,b,i,s):t.type==="scalar"?v=c$(e,r,t,s):v=e.schema[ja];let x;try{const S=v.resolve(r,j=>s(i??t,"TAG_RESOLVE_FAILED",j),e.options);x=mt(S)?S:new Re(S)}catch(S){const j=S instanceof Error?S.message:String(S);s(i??t,"TAG_RESOLVE_FAILED",j),x=new Re(r)}return x.range=g,x.source=r,u&&(x.type=u),b&&(x.tag=b),v.format&&(x.format=v.format),d&&(x.comment=d),x}function l$(e,t,i,s,r){if(i==="!")return e[ja];const u=[];for(const g of e.tags)if(!g.collection&&g.tag===i)if(g.default&&g.test)u.push(g);else return g;for(const g of u)if(g.test?.test(t))return g;const d=e.knownTags[i];return d&&!d.collection?(e.tags.push(Object.assign({},d,{default:!1,test:void 0})),d):(r(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${i}`,i!=="tag:yaml.org,2002:str"),e[ja])}function c$({atKey:e,directives:t,schema:i},s,r,u){const d=i.tags.find(g=>(g.default===!0||e&&g.default==="key")&&g.test?.test(s))||i[ja];if(i.compat){const g=i.compat.find(b=>b.default&&b.test?.test(s))??i[ja];if(d.tag!==g.tag){const b=t.tagString(d.tag),v=t.tagString(g.tag),x=`Value may be parsed as either ${b} or ${v}`;u(r,"TAG_RESOLVE_FAILED",x,!0)}}return d}function u$(e,t,i){if(t){i??(i=t.length);for(let s=i-1;s>=0;--s){let r=t[s];switch(r.type){case"space":case"comment":case"newline":e-=r.source.length;continue}for(r=t[++s];r?.type==="space";)e+=r.source.length,r=t[++s];break}}return e}const d$={composeNode:P3,composeEmptyNode:xh};function P3(e,t,i,s){const r=e.atKey,{spaceBefore:u,comment:d,anchor:g,tag:b}=i;let v,x=!0;switch(t.type){case"alias":v=m$(e,t,s),(g||b)&&s(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":v=L3(e,t,b,s),g&&(v.anchor=g.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":v=XP(d$,e,t,i,s),g&&(v.anchor=g.source.substring(1));break;default:{const S=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;s(t,"UNEXPECTED_TOKEN",S),v=xh(e,t.offset,void 0,null,i,s),x=!1}}return g&&v.anchor===""&&s(g,"BAD_ALIAS","Anchor cannot be an empty string"),r&&e.options.stringKeys&&(!mt(v)||typeof v.value!="string"||v.tag&&v.tag!=="tag:yaml.org,2002:str")&&s(b??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),u&&(v.spaceBefore=!0),d&&(t.type==="scalar"&&t.source===""?v.comment=d:v.commentBefore=d),e.options.keepSourceTokens&&x&&(v.srcToken=t),v}function xh(e,t,i,s,{spaceBefore:r,comment:u,anchor:d,tag:g,end:b},v){const x={type:"scalar",offset:u$(t,i,s),indent:-1,source:""},S=L3(e,x,g,v);return d&&(S.anchor=d.source.substring(1),S.anchor===""&&v(d,"BAD_ALIAS","Anchor cannot be an empty string")),r&&(S.spaceBefore=!0),u&&(S.comment=u,S.range[2]=b),S}function m$({options:e},{offset:t,source:i,end:s},r){const u=new uh(i.substring(1));u.source===""&&r(t,"BAD_ALIAS","Alias cannot be an empty string"),u.source.endsWith(":")&&r(t+i.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const d=t+i.length,g=Bl(s,d,e.strict,r);return u.range=[t,d,g.offset],g.comment&&(u.comment=g.comment),u}function p$(e,t,{offset:i,start:s,value:r,end:u},d){const g=Object.assign({_directives:t},e),b=new yd(void 0,g),v={atKey:!1,atRoot:!0,directives:b.directives,options:b.options,schema:b.schema},x=Lo(s,{indicator:"doc-start",next:r??u?.[0],offset:i,onError:d,parentIndent:0,startOnNewline:!0});x.found&&(b.directives.docStart=!0,r&&(r.type==="block-map"||r.type==="block-seq")&&!x.hasNewline&&d(x.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),b.contents=r?P3(v,r,x,d):xh(v,x.end,s,null,x,d);const S=b.contents.range[2],j=Bl(u,S,!1,d);return j.comment&&(b.comment=j.comment),b.range=[i,S,j.offset],b}function il(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:i}=e;return[t,t+(typeof i=="string"?i.length:1)]}function m2(e){let t="",i=!1,s=!1;for(let r=0;r<e.length;++r){const u=e[r];switch(u[0]){case"#":t+=(t===""?"":s?`
|
|
163
163
|
|
|
164
164
|
`:`
|
|
165
|
-
`)+(u.substring(1)||" "),i=!0,s=!1;break;case"%":e[r+1]?.[0]!=="#"&&(r+=1),i=!1;break;default:i||(s=!0),i=!1}}return{comment:t,afterEmptyLine:s}}class
|
|
165
|
+
`)+(u.substring(1)||" "),i=!0,s=!1;break;case"%":e[r+1]?.[0]!=="#"&&(r+=1),i=!1;break;default:i||(s=!0),i=!1}}return{comment:t,afterEmptyLine:s}}class f${constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(i,s,r,u)=>{const d=il(i);u?this.warnings.push(new QP(d,s,r)):this.errors.push(new mu(d,s,r))},this.directives=new un({version:t.version||"1.2"}),this.options=t}decorate(t,i){const{comment:s,afterEmptyLine:r}=m2(this.prelude);if(s){const u=t.contents;if(i)t.comment=t.comment?`${t.comment}
|
|
166
166
|
${s}`:s;else if(r||t.directives.docStart||!u)t.commentBefore=s;else if(Tt(u)&&!u.flow&&u.items.length>0){let d=u.items[0];Ot(d)&&(d=d.key);const g=d.commentBefore;d.commentBefore=g?`${s}
|
|
167
167
|
${g}`:s}else{const d=u.commentBefore;u.commentBefore=d?`${s}
|
|
168
|
-
${d}`:s}}i?(Array.prototype.push.apply(t.errors,this.errors),Array.prototype.push.apply(t.warnings,this.warnings)):(t.errors=this.errors,t.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:m2(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,i=!1,s=-1){for(const r of t)yield*this.next(r);yield*this.end(i,s)}*next(t){switch(t.type){case"directive":this.directives.add(t.source,(i,s,r)=>{const u=il(t);u[0]+=i,this.onError(u,"BAD_DIRECTIVE",s,r)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const i=
|
|
169
|
-
${i.comment}`:i.comment}this.doc.range[2]=i.offset;break}default:this.errors.push(new mu(il(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,i=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const s=Object.assign({_directives:this.directives},this.options),r=new yd(void 0,s);this.atDirectives&&this.onError(i,"MISSING_CHAR","Missing directives-end indicator line"),r.range=[0,i,i],this.decorate(r,!1),yield r}}}const $3="\uFEFF",U3="",V3="",Gf="";function
|
|
168
|
+
${d}`:s}}i?(Array.prototype.push.apply(t.errors,this.errors),Array.prototype.push.apply(t.warnings,this.warnings)):(t.errors=this.errors,t.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:m2(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,i=!1,s=-1){for(const r of t)yield*this.next(r);yield*this.end(i,s)}*next(t){switch(t.type){case"directive":this.directives.add(t.source,(i,s,r)=>{const u=il(t);u[0]+=i,this.onError(u,"BAD_DIRECTIVE",s,r)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const i=p$(this.options,this.directives,t,this.onError);this.atDirectives&&!i.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(i,!1),this.doc&&(yield this.doc),this.doc=i,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{const i=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,s=new mu(il(t),"UNEXPECTED_TOKEN",i);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){const s="Unexpected doc-end without preceding document";this.errors.push(new mu(il(t),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;const i=Bl(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),i.comment){const s=this.doc.comment;this.doc.comment=s?`${s}
|
|
169
|
+
${i.comment}`:i.comment}this.doc.range[2]=i.offset;break}default:this.errors.push(new mu(il(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,i=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const s=Object.assign({_directives:this.directives},this.options),r=new yd(void 0,s);this.atDirectives&&this.onError(i,"MISSING_CHAR","Missing directives-end indicator line"),r.range=[0,i,i],this.decorate(r,!1),yield r}}}const $3="\uFEFF",U3="",V3="",Gf="";function h$(e){switch(e){case $3:return"byte-order-mark";case U3:return"doc-mode";case V3:return"flow-error-end";case Gf:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
170
170
|
`:case`\r
|
|
171
171
|
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function la(e){switch(e){case void 0:case" ":case`
|
|
172
|
-
`:case"\r":case" ":return!0;default:return!1}}const p2=new Set("0123456789ABCDEFabcdef"),
|
|
173
|
-
\r `),df=e=>!e||
|
|
172
|
+
`:case"\r":case" ":return!0;default:return!1}}const p2=new Set("0123456789ABCDEFabcdef"),g$=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),pu=new Set(",[]{}"),y$=new Set(` ,[]{}
|
|
173
|
+
\r `),df=e=>!e||y$.has(e);class b${constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,i=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!i;let s=this.next??"stream";for(;s&&(i||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let t=this.pos,i=this.buffer[t];for(;i===" "||i===" ";)i=this.buffer[++t];return!i||i==="#"||i===`
|
|
174
174
|
`?!0:i==="\r"?this.buffer[t+1]===`
|
|
175
175
|
`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let i=this.buffer[t];if(this.indentNext>0){let s=0;for(;i===" ";)i=this.buffer[++s+t];if(i==="\r"){const r=this.buffer[s+t+1];if(r===`
|
|
176
176
|
`||!r&&!this.atEnd)return t+s+1}return i===`
|
|
@@ -185,13 +185,13 @@ ${i.comment}`:i.comment}this.doc.range[2]=i.offset;break}default:this.errors.pus
|
|
|
185
185
|
`&&u>=this.pos&&u+1+i>g)t=u;else break}while(!0);return yield Gf,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const t=this.flowLevel>0;let i=this.pos-1,s=this.pos-1,r;for(;r=this.buffer[++s];)if(r===":"){const u=this.buffer[s+1];if(la(u)||t&&pu.has(u))break;i=s}else if(la(r)){let u=this.buffer[s+1];if(r==="\r"&&(u===`
|
|
186
186
|
`?(s+=1,r=`
|
|
187
187
|
`,u=this.buffer[s+1]):i=s),u==="#"||t&&pu.has(u))break;if(r===`
|
|
188
|
-
`){const d=this.continueScalar(s+1);if(d===-1)break;s=Math.max(s,d-2)}}else{if(t&&pu.has(r))break;i=s}return!r&&!this.atEnd?this.setNext("plain-scalar"):(yield Gf,yield*this.pushToIndex(i+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,i){const s=this.buffer.slice(this.pos,t);return s?(yield s,this.pos+=s.length,s.length):(i&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(df))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const t=this.flowLevel>0,i=this.charAt(1);if(la(i)||t&&pu.has(i))return t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,i=this.buffer[t];for(;!la(i)&&i!==">";)i=this.buffer[++t];return yield*this.pushToIndex(i===">"?t+1:t,!1)}else{let t=this.pos+1,i=this.buffer[t];for(;i;)if(
|
|
188
|
+
`){const d=this.continueScalar(s+1);if(d===-1)break;s=Math.max(s,d-2)}}else{if(t&&pu.has(r))break;i=s}return!r&&!this.atEnd?this.setNext("plain-scalar"):(yield Gf,yield*this.pushToIndex(i+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,i){const s=this.buffer.slice(this.pos,t);return s?(yield s,this.pos+=s.length,s.length):(i&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(df))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const t=this.flowLevel>0,i=this.charAt(1);if(la(i)||t&&pu.has(i))return t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,i=this.buffer[t];for(;!la(i)&&i!==">";)i=this.buffer[++t];return yield*this.pushToIndex(i===">"?t+1:t,!1)}else{let t=this.pos+1,i=this.buffer[t];for(;i;)if(g$.has(i))i=this.buffer[++t];else if(i==="%"&&p2.has(this.buffer[t+1])&&p2.has(this.buffer[t+2]))i=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){const t=this.buffer[this.pos];return t===`
|
|
189
189
|
`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===`
|
|
190
|
-
`?yield*this.pushCount(2):0}*pushSpaces(t){let i=this.pos-1,s;do s=this.buffer[++i];while(s===" "||t&&s===" ");const r=i-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=i),r}*pushUntil(t){let i=this.pos,s=this.buffer[i];for(;!t(s);)s=this.buffer[++i];return yield*this.pushToIndex(i,!1)}}class
|
|
190
|
+
`?yield*this.pushCount(2):0}*pushSpaces(t){let i=this.pos-1,s;do s=this.buffer[++i];while(s===" "||t&&s===" ");const r=i-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=i),r}*pushUntil(t){let i=this.pos,s=this.buffer[i];for(;!t(s);)s=this.buffer[++i];return yield*this.pushToIndex(i,!1)}}class v${constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let i=0,s=this.lineStarts.length;for(;i<s;){const u=i+s>>1;this.lineStarts[u]<t?i=u+1:s=u}if(this.lineStarts[i]===t)return{line:i+1,col:1};if(i===0)return{line:0,col:t};const r=this.lineStarts[i-1];return{line:i,col:t-r+1}}}}function Ti(e,t){for(let i=0;i<e.length;++i)if(e[i].type===t)return!0;return!1}function f2(e){for(let t=0;t<e.length;++t)switch(e[t].type){case"space":case"comment":case"newline":break;default:return t}return-1}function K3(e){switch(e?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function fu(e){switch(e.type){case"document":return e.start;case"block-map":{const t=e.items[e.items.length-1];return t.sep??t.start}case"block-seq":return e.items[e.items.length-1].start;default:return[]}}function go(e){if(e.length===0)return[];let t=e.length;e:for(;--t>=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;e[++t]?.type==="space";);return e.splice(t,e.length)}function h2(e){if(e.start.type==="flow-seq-start")for(const t of e.items)t.sep&&!t.value&&!Ti(t.start,"explicit-key-ind")&&!Ti(t.sep,"map-value-ind")&&(t.key&&(t.value=t.key),delete t.key,K3(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep)}class k${constructor(t){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new b$,this.onNewLine=t}*parse(t,i=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(const s of this.lexer.lex(t,i))yield*this.next(s);i||(yield*this.end())}*next(t){if(this.source=t,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=t.length;return}const i=h$(t);if(i)if(i==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=i,yield*this.step(),i){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+t.length);break;case"space":this.atNewLine&&t[0]===" "&&(this.indent+=t.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=t.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=t.length}else{const s=`Not a YAML token: ${t}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:t}),this.offset+=t.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const t=this.peek(1);if(this.type==="doc-end"&&t?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){const i=t??this.stack.pop();if(!i)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield i;else{const s=this.peek(1);switch(i.type==="block-scalar"?i.indent="indent"in s?s.indent:0:i.type==="flow-collection"&&s.type==="document"&&(i.indent=0),i.type==="flow-collection"&&h2(i),s.type){case"document":s.value=i;break;case"block-scalar":s.props.push(i);break;case"block-map":{const r=s.items[s.items.length-1];if(r.value){s.items.push({start:[],key:i,sep:[]}),this.onKeyLine=!0;return}else if(r.sep)r.value=i;else{Object.assign(r,{key:i,sep:[]}),this.onKeyLine=!r.explicitKey;return}break}case"block-seq":{const r=s.items[s.items.length-1];r.value?s.items.push({start:[],value:i}):r.value=i;break}case"flow-collection":{const r=s.items[s.items.length-1];!r||r.value?s.items.push({start:[],key:i,sep:[]}):r.sep?r.value=i:Object.assign(r,{key:i,sep:[]});return}default:yield*this.pop(),yield*this.pop(i)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(i.type==="block-map"||i.type==="block-seq")){const r=i.items[i.items.length-1];r&&!r.sep&&!r.value&&r.start.length>0&&f2(r.start)===-1&&(i.indent===0||r.start.every(u=>u.type!=="comment"||u.indent<i.indent))&&(s.type==="document"?s.end=r.start:s.items.push({start:r.start}),i.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{const t={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&t.start.push(this.sourceToken),this.stack.push(t);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(t){if(t.value)return yield*this.lineEnd(t);switch(this.type){case"doc-start":{f2(t.start)!==-1?(yield*this.pop(),yield*this.step()):t.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":t.start.push(this.sourceToken);return}const i=this.startBlockValue(t);i?this.stack.push(i):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(t){if(this.type==="map-value-ind"){const i=fu(this.peek(2)),s=go(i);let r;t.end?(r=t.end,r.push(this.sourceToken),delete t.end):r=[this.sourceToken];const u={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=u}else yield*this.lineEnd(t)}*blockScalar(t){switch(this.type){case"space":case"comment":case"newline":t.props.push(this.sourceToken);return;case"scalar":if(t.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let i=this.source.indexOf(`
|
|
191
191
|
`)+1;for(;i!==0;)this.onNewLine(this.offset+i),i=this.source.indexOf(`
|
|
192
192
|
`,i)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){const i=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,i.value){const s="end"in i.value?i.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else i.sep?i.sep.push(this.sourceToken):i.start.push(this.sourceToken);return;case"space":case"comment":if(i.value)t.items.push({start:[this.sourceToken]});else if(i.sep)i.sep.push(this.sourceToken);else{if(this.atIndentedComment(i.start,t.indent)){const r=t.items[t.items.length-2]?.value?.end;if(Array.isArray(r)){Array.prototype.push.apply(r,i.start),r.push(this.sourceToken),t.items.pop();return}}i.start.push(this.sourceToken)}return}if(this.indent>=t.indent){const s=!this.onKeyLine&&this.indent===t.indent,r=s&&(i.sep||i.explicitKey)&&this.type!=="seq-item-ind";let u=[];if(r&&i.sep&&!i.value){const d=[];for(let g=0;g<i.sep.length;++g){const b=i.sep[g];switch(b.type){case"newline":d.push(g);break;case"space":break;case"comment":b.indent>t.indent&&(d.length=0);break;default:d.length=0}}d.length>=2&&(u=i.sep.splice(d[1]))}switch(this.type){case"anchor":case"tag":r||i.value?(u.push(this.sourceToken),t.items.push({start:u}),this.onKeyLine=!0):i.sep?i.sep.push(this.sourceToken):i.start.push(this.sourceToken);return;case"explicit-key-ind":!i.sep&&!i.explicitKey?(i.start.push(this.sourceToken),i.explicitKey=!0):r||i.value?(u.push(this.sourceToken),t.items.push({start:u,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(i.explicitKey)if(i.sep)if(i.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ti(i.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:u,key:null,sep:[this.sourceToken]}]});else if(K3(i.key)&&!Ti(i.sep,"newline")){const d=go(i.start),g=i.key,b=i.sep;b.push(this.sourceToken),delete i.key,delete i.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:d,key:g,sep:b}]})}else u.length>0?i.sep=i.sep.concat(u,this.sourceToken):i.sep.push(this.sourceToken);else if(Ti(i.start,"newline"))Object.assign(i,{key:null,sep:[this.sourceToken]});else{const d=go(i.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:d,key:null,sep:[this.sourceToken]}]})}else i.sep?i.value||r?t.items.push({start:u,key:null,sep:[this.sourceToken]}):Ti(i.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):i.sep.push(this.sourceToken):Object.assign(i,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const d=this.flowScalar(this.type);r||i.value?(t.items.push({start:u,key:d,sep:[]}),this.onKeyLine=!0):i.sep?this.stack.push(d):(Object.assign(i,{key:d,sep:[]}),this.onKeyLine=!0);return}default:{const d=this.startBlockValue(t);if(d){if(d.type==="block-seq"){if(!i.explicitKey&&i.sep&&!Ti(i.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else s&&t.items.push({start:u});this.stack.push(d);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){const i=t.items[t.items.length-1];switch(this.type){case"newline":if(i.value){const s="end"in i.value?i.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else i.start.push(this.sourceToken);return;case"space":case"comment":if(i.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(i.start,t.indent)){const r=t.items[t.items.length-2]?.value?.end;if(Array.isArray(r)){Array.prototype.push.apply(r,i.start),r.push(this.sourceToken),t.items.pop();return}}i.start.push(this.sourceToken)}return;case"anchor":case"tag":if(i.value||this.indent<=t.indent)break;i.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;i.value||Ti(i.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):i.start.push(this.sourceToken);return}if(this.indent>t.indent){const s=this.startBlockValue(t);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const i=t.items[t.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!i||i.sep?t.items.push({start:[this.sourceToken]}):i.start.push(this.sourceToken);return;case"map-value-ind":!i||i.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):i.sep?i.sep.push(this.sourceToken):Object.assign(i,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!i||i.value?t.items.push({start:[this.sourceToken]}):i.sep?i.sep.push(this.sourceToken):i.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);!i||i.value?t.items.push({start:[],key:r,sep:[]}):i.sep?this.stack.push(r):Object.assign(i,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const s=this.startBlockValue(t);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{const s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===t.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){const r=fu(s),u=go(r);h2(t);const d=t.end.splice(1,t.end.length);d.push(this.sourceToken);const g={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:u,key:t,sep:d}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=g}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let i=this.source.indexOf(`
|
|
193
193
|
`)+1;for(;i!==0;)this.onNewLine(this.offset+i),i=this.source.indexOf(`
|
|
194
|
-
`,i)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const i=fu(t),s=go(i);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const i=fu(t),s=go(i);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,i){return this.type!=="comment"||this.indent<=i?!1:t.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function
|
|
194
|
+
`,i)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const i=fu(t),s=go(i);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const i=fu(t),s=go(i);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,i){return this.type!=="comment"||this.indent<=i?!1:t.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function w$(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new v$||null,prettyErrors:t}}function x$(e,t={}){const{lineCounter:i,prettyErrors:s}=w$(t),r=new k$(i?.addNewLine),u=new f$(t),d=Array.from(u.compose(r.parse(e)));if(s&&i)for(const g of d)g.errors.forEach(u2(e,i)),g.warnings.forEach(u2(e,i));return d.length>0?d:Object.assign([],{empty:!0},u.streamInfo())}function S$({onApplied:e}){const[t,i]=B.useState(""),[s,r]=B.useState(!1),[u,d]=B.useState([]),[g,b]=B.useState([]);if(iA())return null;const v=async()=>{if(!t.trim())return;r(!0),d([]),b([]);const x=x$(t),S=[],j=[];for(let _=0;_<x.length;_++){const T=x[_];if(T.errors.length>0){S.push(`Document ${_+1}: ${T.errors[0]?.message}`);continue}const N=T.toJSON();if(!(!N||typeof N!="object"))try{const C=await _A(N);j.push(`Applied "${C.displayName||C.name}" (revision ${C.configRevision})`)}catch(C){S.push(`Document ${_+1}: ${C instanceof Error?C.message:String(C)}`)}}d(j),b(S),r(!1),j.length>0&&(pn({title:"YAML applied",detail:`Applied ${j.length} document${j.length===1?"":"s"} successfully.`,tone:S.length>0?"caution":"positive",dedupeKey:"yaml:apply",dedupeMode:"replace"}),e())};return m.jsxs("section",{className:"mt-8",children:[m.jsx("div",{className:"page-section-divider"}),m.jsx("div",{className:"section-head mt-6",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Config as code"}),m.jsx("h2",{className:"text-sm font-medium text-strong",children:"Apply YAML"})]})}),m.jsxs("p",{className:"text-muted text-sm mb-3",children:["Paste a ",m.jsx("code",{className:"text-secondary",children:"canonry.yaml"})," config (multi-document YAML with ",m.jsx("code",{className:"text-secondary",children:"---"})," separators supported)."]}),m.jsx("textarea",{className:"setup-input w-full font-mono text-xs",rows:10,placeholder:`apiVersion: canonry/v1
|
|
195
195
|
kind: Project
|
|
196
196
|
metadata:
|
|
197
197
|
name: my-project
|
|
@@ -199,15 +199,15 @@ spec:
|
|
|
199
199
|
canonicalDomain: example.com
|
|
200
200
|
country: US
|
|
201
201
|
language: en
|
|
202
|
-
queries: []`,value:t,onChange:x=>i(x.target.value)}),u.length>0&&m.jsx("ul",{className:"mt-2 space-y-1",children:u.map((x,S)=>m.jsx("li",{className:"text-positive-400 text-sm",children:x},S))}),g.length>0&&m.jsx("ul",{className:"mt-2 space-y-1",children:g.map((x,S)=>m.jsx("li",{className:"text-negative-400 text-sm",children:x},S))}),m.jsx("div",{className:"mt-3",children:m.jsx(De,{type:"button",disabled:!t.trim()||s,onClick:nn(v),children:s?"Applying...":"Apply"})})]})}function S$(){const{dashboard:e,isLoading:t,refetch:i}=rd(),s=Iu(),[r,u]=B.useState(!1),[d,g]=B.useState(""),[b,v]=B.useState(""),[x,S]=B.useState(""),[j,_]=B.useState("US"),[T,N]=B.useState("en"),[C,O]=B.useState(!1),[I,$]=B.useState(null);if(!e||t)return m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-28"}),m.jsx("div",{className:"skeleton-text-sm w-40"})]}),m.jsxs("div",{className:"rounded-xl border border-default bg-surface overflow-hidden",children:[m.jsx("div",{className:"p-3 border-b border-default flex gap-8",children:["Name","Domain","Mentions","Last run","Country"].map(R=>m.jsx("div",{className:"skeleton-text-sm w-16"},R))}),[1,2,3].map(R=>m.jsxs("div",{className:"p-3 border-b border-subtle flex gap-8 items-center",children:[m.jsxs("div",{className:"flex-1 space-y-1",children:[m.jsx("div",{className:"skeleton-text w-28"}),m.jsx("div",{className:"skeleton-text-sm w-16"})]}),m.jsx("div",{className:"skeleton-text w-24"}),m.jsx("div",{className:"skeleton h-5 w-14 rounded-full"}),m.jsx("div",{className:"skeleton h-5 w-16 rounded-full"}),m.jsx("div",{className:"skeleton-text-sm w-8"})]},R))]})]});const K=e.projects,Z=d.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),se=async()=>{if(!(!Z||!x)){O(!0),$(null);try{const R=await e0(Z,{displayName:b||d,canonicalDomain:x,country:j,language:T});pn({title:"Project created",detail:`${R.displayName||R.name} is ready to configure.`,tone:"positive",dedupeKey:`project:create:${R.name}`,dedupeMode:"drop"}),i(),g(""),v(""),S(""),_("US"),N("en"),u(!1),s({to:"/projects/$projectName",params:{projectName:R.name}})}catch(R){$(R instanceof Error?R.message:"Failed to create project")}finally{O(!1)}}};return m.jsxs("div",{className:"page-container",children:[m.jsxs("div",{className:"page-header",children:[m.jsxs("div",{className:"page-header-left",children:[m.jsx("h1",{className:"page-title",children:"Projects"}),m.jsxs("p",{className:"page-subtitle",children:[K.length," project",K.length!==1?"s":""," tracked"]})]}),m.jsx("div",{className:"page-header-right",children:m.jsxs(De,{type:"button",onClick:()=>u(R=>!R),children:[m.jsx(jb,{className:"size-4 mr-1.5"}),"Add project"]})})]}),r?m.jsxs(Zn,{className:"surface-card mb-6",children:[m.jsx("div",{className:"section-head",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"New project"}),m.jsx("h2",{className:"text-sm font-medium text-strong",children:"Create a new monitoring project"})]})}),m.jsxs("div",{className:"compact-stack mt-4",children:[m.jsxs("div",{className:"setup-field-row",children:[m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-project-name",children:"Project name"}),m.jsx("input",{id:"new-project-name",className:"setup-input",type:"text",placeholder:"my-project",value:d,onChange:R=>g(R.target.value)}),Z&&Z!==d?m.jsxs("p",{className:"supporting-copy",children:["Slug: ",Z]}):null]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-display-name",children:"Display name"}),m.jsx("input",{id:"new-display-name",className:"setup-input",type:"text",placeholder:"My Project",value:b,onChange:R=>v(R.target.value)})]})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-domain",children:"Canonical domain"}),m.jsx("input",{id:"new-domain",className:"setup-input",type:"text",placeholder:"example.com",value:x,onChange:R=>S(R.target.value)})]}),m.jsxs("div",{className:"setup-field-row",children:[m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-country",children:"Country"}),m.jsx("input",{id:"new-country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:j,onChange:R=>_(R.target.value.toUpperCase())})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-language",children:"Language"}),m.jsx("input",{id:"new-language",className:"setup-input",type:"text",placeholder:"en",maxLength:5,value:T,onChange:R=>N(R.target.value.toLowerCase())})]})]})]}),I?m.jsx("p",{className:"text-negative-400 text-sm mt-3",children:I}):null,m.jsxs("div",{className:"flex items-center gap-3 mt-4",children:[m.jsx(De,{type:"button",disabled:!Z||!x||C,onClick:nn(se),children:C?"Creating...":"Create project"}),m.jsx(De,{type:"button",variant:"ghost",onClick:()=>u(!1),children:"Cancel"})]})]}):null,K.length>0?m.jsx("div",{className:"data-table-wrapper",children:m.jsxs("table",{className:"data-table",children:[m.jsx("thead",{children:m.jsxs("tr",{children:[m.jsx("th",{children:"Name"}),m.jsx("th",{children:"Domain"}),m.jsx("th",{children:"Mentions"}),m.jsx("th",{children:"Last run"}),m.jsx("th",{className:"text-right",children:"Country"})]})}),m.jsx("tbody",{children:K.map(R=>{const q=R.recentRuns[0];return m.jsxs("tr",{className:"cursor-pointer",onClick:()=>{s({to:"/projects/$projectName",params:{projectName:R.project.name}})},children:[m.jsxs("td",{children:[m.jsx(We,{to:"/projects/$projectName",params:{projectName:R.project.name},className:"text-heading font-medium hover:underline",onClick:pe=>pe.stopPropagation(),children:R.project.displayName||R.project.name}),m.jsx("p",{className:"text-[11px] text-muted",children:R.project.name})]}),m.jsx("td",{className:"text-secondary",children:R.project.canonicalDomain}),m.jsx("td",{children:m.jsx(An,{tone:R.mentionSummary.tone,children:R.mentionSummary.value})}),m.jsx("td",{className:"text-muted text-sm",children:q?m.jsx(nh,{status:q.status}):m.jsx("span",{className:"text-faint",children:"No runs"})}),m.jsx("td",{className:"text-right text-muted",children:R.project.country})]},R.project.id)})})]})}):r?null:m.jsxs(Zn,{className:"surface-card empty-card",children:[m.jsx("h3",{children:"No projects yet"}),m.jsx("p",{className:"supporting-copy",children:"Create your first monitoring project to start tracking AI visibility."}),m.jsxs(De,{type:"button",onClick:()=>u(!0),children:[m.jsx(jb,{className:"size-4 mr-1.5"}),"Add project"]})]}),m.jsx(x$,{onApplied:()=>{i()}})]})}function qG({disabled:e,title:t,...i}){const{canWrite:s}=xl();return s?m.jsx(De,{disabled:e,title:t,...i}):m.jsx(De,{...i,disabled:!0,title:J2})}function j$({title:e,children:t}){const{isAdmin:i}=xl();return i?m.jsx(m.Fragment,{children:t}):m.jsxs(Zn,{className:"surface-card mx-auto mt-8 max-w-lg",children:[m.jsxs(ul,{children:[m.jsxs(dl,{children:[e," is for administrators"]}),m.jsx(ml,{children:"Your account has view-only access. You can read everything this install has measured; changing how it is set up needs an administrator account."})]}),m.jsx(ko,{children:m.jsx("p",{className:"supporting-copy",children:"If you need to make a change here, ask an administrator on this install."})})]})}class A$ extends Error{constructor(){super(J2),this.name="ViewOnlyError"}}function N$(e){if(!e.canWrite)throw new A$}function Sh(e){e.invalidateQueries({queryKey:X0({client:le})}),e.invalidateQueries({queryKey:Ho({client:le})})}function _s(){const e=xl();return()=>{N$(e)}}function _$(e){return e==="gsc-sync"?"GSC sync queued":e==="inspect-sitemap"?"Sitemap inspection queued":"Visibility sweep queued"}function C$(e,t){const i=e??"Project";return t==="gsc-sync"?`${i} will refresh after the sync completes.`:t==="inspect-sitemap"?`${i} will notify you when sitemap inspection finishes.`:`${i} will notify you when the run finishes.`}function jh(e,t){W0({id:e.id,projectId:e.projectId,kind:e.kind,projectLabel:t.projectLabel,sourceAction:t.sourceAction,lastAnnouncedStatus:"queued"}),pn({title:_$(e.kind),detail:C$(t.projectLabel,e.kind),tone:"neutral",dedupeKey:`run:${e.id}`,dedupeMode:"replace"})}function z$(e){const t=e.filter(d=>d.status!=="conflict"&&d.status!=="error"),i=e.filter(d=>d.status==="conflict"),s=e.filter(d=>d.status==="error"),r=i.length+s.length;if(t.length===0){const d=[s.length>0?`${s.length} need provider or query setup`:null,i.length>0?`${i.length} already have an active run`:null].filter(g=>g!==null);pn({title:"No runs queued",detail:d.length>0?`${d.join("; ")}.`:"No projects were available to queue.",tone:"caution",durationMs:8e3,dedupeKey:"run-all:conflict",dedupeMode:"replace"});return}for(const d of t)W0({id:d.id,projectId:d.projectId,kind:d.kind,projectLabel:d.projectName,sourceAction:"run-all",lastAnnouncedStatus:"queued"});const u=qq({runIds:t.map(d=>d.id),queuedCount:t.length,skippedCount:r});pn({title:"Run-all batch queued",detail:r>0?`${t.length} project${t.length===1?"":"s"} queued; ${r} need attention or already have an active run.`:`${t.length} project${t.length===1?"":"s"} queued.`,tone:r>0?"caution":"neutral",dedupeKey:`batch:${u}`,dedupeMode:"replace"})}function bd(e,t){if(e instanceof Mn&&e.code==="RUN_IN_PROGRESS"){pn({title:"Run already in progress",detail:t?.projectLabel?`${t.projectLabel} already has an active run. Wait for it to finish, then retry.`:"This project already has an active run. Wait for it to finish, then retry.",tone:"caution",durationMs:8e3,dedupeKey:`run-in-progress:${t?.projectKey??"project"}:${t?.sourceAction??"run"}`,dedupeMode:"replace"});return}pn({title:e instanceof Error?e.message:"Failed to queue run",tone:"negative"})}function E$(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,opts:s})=>kA(i,s),onSuccess:(i,s)=>{Sh(t),jh(i,{projectLabel:s.projectLabel??s.projectName,sourceAction:s.sourceAction})},onError:(i,s)=>{s.sourceAction!=="setup-launch"&&bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:s.sourceAction})}})}function IG(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:i=>CA(i),onSuccess:i=>{Sh(t),z$(i)},onError:i=>{pn({title:i instanceof Error?i.message:"Failed to queue runs",tone:"negative"})}})}function LG(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,body:s})=>DA(i,s),onSuccess:(i,s)=>{Sh(t),W0({id:i.runId,projectId:s.projectId,kind:Oe["site-audit"],projectLabel:s.projectLabel??s.projectName,sourceAction:"site-audit",lastAnnouncedStatus:i.status}),pn({title:i.status==="running"?"Technical audit already running":"Technical audit queued",detail:`${s.projectLabel??s.projectName} will refresh automatically when the audit finishes.`,tone:"neutral",dedupeKey:`run:${i.runId}`,dedupeMode:"replace"})},onError:(i,s)=>{bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:"site-audit"})}})}function PG(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,opts:s})=>zA(i,s),onSuccess:(i,s)=>{Mu(t,Oe["gsc-sync"],s.projectName),jh(i,{projectLabel:s.projectLabel??s.projectName,sourceAction:"gsc-sync"})},onError:(i,s)=>{bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:"gsc-sync"})}})}function $G(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,opts:s})=>TA(i,s),onSuccess:(i,s)=>{Mu(t,Oe["inspect-sitemap"],s.projectName),jh(i,{projectLabel:s.projectLabel??s.projectName,sourceAction:"inspect-sitemap"})},onError:(i,s)=>{bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:"inspect-sitemap"})}})}function G3(e){if(!Array.isArray(e.queryKey)||e.queryKey.length<=1)return!1;const t=e.queryKey[0];return t==="projects"||t==="project-dashboard-full"}function UG(){const e=_s(),t=Mi();return xs({onMutate:e,mutationFn:({projectName:i,queries:s})=>yA(i,s),onSuccess:()=>{t.invalidateQueries({queryKey:Ho({client:le})}),t.invalidateQueries({predicate:G3})}})}function VG(){const e=_s(),t=Mi();return xs({onMutate:e,mutationFn:({projectName:i,body:s})=>bA(i,s),onSuccess:()=>{Sa(t,"project"),t.invalidateQueries({predicate:G3})}})}const g2="canonry.onboarding-session.v1",T$=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,D$=["system","project","queries","competitors","run"];function O$(e){return D$[e]??"system"}function R$(e){if(!e.apiReady)return"api_unavailable";if(e.databaseConfigured===!1)return"database_unavailable";if(!e.workerReady)return"worker_unavailable";if(!e.providerReady)return"no_provider"}function M$(e){return e.apiStatus.state!=="checking"&&e.workerStatus.state!=="checking"}function y2(e,t){const i=e&&typeof e=="object"&&"code"in e?String(e.code):"";return i==="NO_PROVIDER"?"no_provider":i==="NO_QUERIES"?"no_queries":t}function B$(){try{const e=typeof window<"u"?window.sessionStorage.getItem(g2):null;if(e&&T$.test(e))return e;const t=Hf();return typeof window<"u"&&window.sessionStorage.setItem(g2,t),t}catch{return Hf()}}function q$(){return Hf()}function Hf(){const e=globalThis.crypto;if(e.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if(e.getRandomValues)e.getRandomValues(t);else for(let s=0;s<t.length;s+=1)t[s]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;const i=[...t].map(s=>s.toString(16).padStart(2,"0")).join("");return`${i.slice(0,8)}-${i.slice(8,12)}-${i.slice(12,16)}-${i.slice(16,20)}-${i.slice(20)}`}const I$=[{label:"System check",description:"Verify your instance is ready"},{label:"Create project",description:"Name, domain, and locale"},{label:"Queries",description:"Add queries to track"},{label:"Competitors",description:"Add competitor domains"},{label:"Launch",description:"Start your first visibility sweep"}];function b2(e,t){return(e==="completed"||e==="partial")&&t>0}function v2(e){return e.launchReady?e.hasProject?e.queryCount===0?2:e.competitorCount===0&&!e.hasRunAttempt?3:4:1:0}function k2(e){return e.queryCounts.total>0}function L$({current:e,labels:t}){return m.jsx("div",{className:"setup-steps",role:"list","aria-label":"Setup progress",children:t.map((i,s)=>{const r=s<e,u=s===e;return m.jsxs("div",{className:`setup-step ${r?"setup-step-done":""} ${u?"setup-step-active":""}`,role:"listitem","aria-current":u?"step":void 0,children:[m.jsx("span",{className:"setup-step-number",children:r?"✓":s+1}),m.jsx("span",{children:i.label})]},i.label)})})}function P$(){return m.jsx(j$,{title:"Setup",children:m.jsx($$,{})})}function $$(){const e=Dl(),{dashboard:t,isLoading:i,refetch:s}=rd(),r=t??e?.dashboard;return!r||i?m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-24"}),m.jsx("div",{className:"skeleton-text-sm w-80"})]}),m.jsxs("div",{className:"page-skeleton-card",children:[m.jsx("div",{className:"skeleton-text w-32"}),m.jsx("div",{className:"space-y-3 mt-3",children:[1,2,3].map(u=>m.jsxs("div",{className:"flex items-center justify-between",children:[m.jsxs("div",{className:"space-y-1 flex-1",children:[m.jsx("div",{className:"skeleton-text w-24"}),m.jsx("div",{className:"skeleton-text-sm w-48"})]}),m.jsx("div",{className:"skeleton h-6 w-16 rounded-full"})]},u))})]})]}):m.jsx(U$,{dashboard:r,initialHealth:e?.health,enableLiveStatus:!e,refetch:s})}function U$({dashboard:e,initialHealth:t,enableLiveStatus:i,refetch:s}){const r=e.settings,d=ah(i,t).data??t??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},g=Dq(e.setup,d,r),b=Iu(),v=B.useRef(B$()).current,x=B.useRef(new Set),S=B.useCallback((W,Me)=>{if(Me){if(x.current.has(Me))return;x.current.add(Me)}AA({...W,eventId:q$()})},[]),j=e.projects.find(W=>!k2(W))??e.projects.at(0)??null,_=j?e.runs.filter(W=>W.projectId===j.project.id).sort((W,Me)=>Me.createdAt.localeCompare(W.createdAt)):[],T=j?.queryCounts.total??0,N=j?.project.name,C=mn({queryKey:["setup","resume-queries",N],queryFn:()=>N?Q2(N):Promise.resolve([]),enabled:!!N}),O=C.data??[],I=C.data?.length??T,$=j?.competitors.map(W=>W.domain)??[],K=_.at(0)??null,Z=!!j&&k2(j),se=!!j&&C.isPending,R=v2({launchReady:g.launchState.enabled,hasProject:!!j,queryCount:I,competitorCount:$.length,hasRunAttempt:_.length>0||Z}),q=v2({launchReady:!0,hasProject:!!j,queryCount:I,competitorCount:$.length,hasRunAttempt:_.length>0||Z}),[pe,ue]=B.useState(R),[fe,we]=B.useState(!se),[Te,it]=B.useState(j?.project.name??""),[ge,Q]=B.useState(j?.project.displayName??""),[oe,me]=B.useState(j?.project.canonicalDomain??""),[Ce,ce]=B.useState(j?.project.country??"US"),[He,ne]=B.useState(j?.project.language??"en"),[H,X]=B.useState(j?.project.autoExtractBacklinks??!1),[ie,re]=B.useState(j?.project.name??null),[ze,ct]=B.useState(null),[_e,Qe]=B.useState(!1),[Xe,Gt]=B.useState(O.map(W=>W.query).join(`
|
|
202
|
+
queries: []`,value:t,onChange:x=>i(x.target.value)}),u.length>0&&m.jsx("ul",{className:"mt-2 space-y-1",children:u.map((x,S)=>m.jsx("li",{className:"text-positive-400 text-sm",children:x},S))}),g.length>0&&m.jsx("ul",{className:"mt-2 space-y-1",children:g.map((x,S)=>m.jsx("li",{className:"text-negative-400 text-sm",children:x},S))}),m.jsx("div",{className:"mt-3",children:m.jsx(De,{type:"button",disabled:!t.trim()||s,onClick:nn(v),children:s?"Applying...":"Apply"})})]})}function j$(){const{dashboard:e,isLoading:t,refetch:i}=rd(),s=Iu(),[r,u]=B.useState(!1),[d,g]=B.useState(""),[b,v]=B.useState(""),[x,S]=B.useState(""),[j,_]=B.useState("US"),[T,N]=B.useState("en"),[C,O]=B.useState(!1),[I,$]=B.useState(null);if(!e||t)return m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-28"}),m.jsx("div",{className:"skeleton-text-sm w-40"})]}),m.jsxs("div",{className:"rounded-xl border border-default bg-surface overflow-hidden",children:[m.jsx("div",{className:"p-3 border-b border-default flex gap-8",children:["Name","Domain","Mentions","Last run","Country"].map(R=>m.jsx("div",{className:"skeleton-text-sm w-16"},R))}),[1,2,3].map(R=>m.jsxs("div",{className:"p-3 border-b border-subtle flex gap-8 items-center",children:[m.jsxs("div",{className:"flex-1 space-y-1",children:[m.jsx("div",{className:"skeleton-text w-28"}),m.jsx("div",{className:"skeleton-text-sm w-16"})]}),m.jsx("div",{className:"skeleton-text w-24"}),m.jsx("div",{className:"skeleton h-5 w-14 rounded-full"}),m.jsx("div",{className:"skeleton h-5 w-16 rounded-full"}),m.jsx("div",{className:"skeleton-text-sm w-8"})]},R))]})]});const K=e.projects,Z=d.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),se=async()=>{if(!(!Z||!x)){O(!0),$(null);try{const R=await e0(Z,{displayName:b||d,canonicalDomain:x,country:j,language:T});pn({title:"Project created",detail:`${R.displayName||R.name} is ready to configure.`,tone:"positive",dedupeKey:`project:create:${R.name}`,dedupeMode:"drop"}),i(),g(""),v(""),S(""),_("US"),N("en"),u(!1),s({to:"/projects/$projectName",params:{projectName:R.name}})}catch(R){$(R instanceof Error?R.message:"Failed to create project")}finally{O(!1)}}};return m.jsxs("div",{className:"page-container",children:[m.jsxs("div",{className:"page-header",children:[m.jsxs("div",{className:"page-header-left",children:[m.jsx("h1",{className:"page-title",children:"Projects"}),m.jsxs("p",{className:"page-subtitle",children:[K.length," project",K.length!==1?"s":""," tracked"]})]}),m.jsx("div",{className:"page-header-right",children:m.jsxs(De,{type:"button",onClick:()=>u(R=>!R),children:[m.jsx(jb,{className:"size-4 mr-1.5"}),"Add project"]})})]}),r?m.jsxs(Zn,{className:"surface-card mb-6",children:[m.jsx("div",{className:"section-head",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"New project"}),m.jsx("h2",{className:"text-sm font-medium text-strong",children:"Create a new monitoring project"})]})}),m.jsxs("div",{className:"compact-stack mt-4",children:[m.jsxs("div",{className:"setup-field-row",children:[m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-project-name",children:"Project name"}),m.jsx("input",{id:"new-project-name",className:"setup-input",type:"text",placeholder:"my-project",value:d,onChange:R=>g(R.target.value)}),Z&&Z!==d?m.jsxs("p",{className:"supporting-copy",children:["Slug: ",Z]}):null]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-display-name",children:"Display name"}),m.jsx("input",{id:"new-display-name",className:"setup-input",type:"text",placeholder:"My Project",value:b,onChange:R=>v(R.target.value)})]})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-domain",children:"Canonical domain"}),m.jsx("input",{id:"new-domain",className:"setup-input",type:"text",placeholder:"example.com",value:x,onChange:R=>S(R.target.value)})]}),m.jsxs("div",{className:"setup-field-row",children:[m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-country",children:"Country"}),m.jsx("input",{id:"new-country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:j,onChange:R=>_(R.target.value.toUpperCase())})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"new-language",children:"Language"}),m.jsx("input",{id:"new-language",className:"setup-input",type:"text",placeholder:"en",maxLength:5,value:T,onChange:R=>N(R.target.value.toLowerCase())})]})]})]}),I?m.jsx("p",{className:"text-negative-400 text-sm mt-3",children:I}):null,m.jsxs("div",{className:"flex items-center gap-3 mt-4",children:[m.jsx(De,{type:"button",disabled:!Z||!x||C,onClick:nn(se),children:C?"Creating...":"Create project"}),m.jsx(De,{type:"button",variant:"ghost",onClick:()=>u(!1),children:"Cancel"})]})]}):null,K.length>0?m.jsx("div",{className:"data-table-wrapper",children:m.jsxs("table",{className:"data-table",children:[m.jsx("thead",{children:m.jsxs("tr",{children:[m.jsx("th",{children:"Name"}),m.jsx("th",{children:"Domain"}),m.jsx("th",{children:"Mentions"}),m.jsx("th",{children:"Last run"}),m.jsx("th",{className:"text-right",children:"Country"})]})}),m.jsx("tbody",{children:K.map(R=>{const q=R.recentRuns[0];return m.jsxs("tr",{className:"cursor-pointer",onClick:()=>{s({to:"/projects/$projectName",params:{projectName:R.project.name}})},children:[m.jsxs("td",{children:[m.jsx(We,{to:"/projects/$projectName",params:{projectName:R.project.name},className:"text-heading font-medium hover:underline",onClick:pe=>pe.stopPropagation(),children:R.project.displayName||R.project.name}),m.jsx("p",{className:"text-[11px] text-muted",children:R.project.name})]}),m.jsx("td",{className:"text-secondary",children:R.project.canonicalDomain}),m.jsx("td",{children:m.jsx(An,{tone:R.mentionSummary.tone,children:R.mentionSummary.value})}),m.jsx("td",{className:"text-muted text-sm",children:q?m.jsx(nh,{status:q.status}):m.jsx("span",{className:"text-faint",children:"No runs"})}),m.jsx("td",{className:"text-right text-muted",children:R.project.country})]},R.project.id)})})]})}):r?null:m.jsxs(Zn,{className:"surface-card empty-card",children:[m.jsx("h3",{children:"No projects yet"}),m.jsx("p",{className:"supporting-copy",children:"Create your first monitoring project to start tracking AI visibility."}),m.jsxs(De,{type:"button",onClick:()=>u(!0),children:[m.jsx(jb,{className:"size-4 mr-1.5"}),"Add project"]})]}),m.jsx(S$,{onApplied:()=>{i()}})]})}function IG({disabled:e,title:t,...i}){const{canWrite:s}=xl();return s?m.jsx(De,{disabled:e,title:t,...i}):m.jsx(De,{...i,disabled:!0,title:J2})}function A$({title:e,children:t}){const{isAdmin:i}=xl();return i?m.jsx(m.Fragment,{children:t}):m.jsxs(Zn,{className:"surface-card mx-auto mt-8 max-w-lg",children:[m.jsxs(ul,{children:[m.jsxs(dl,{children:[e," is for administrators"]}),m.jsx(ml,{children:"Your account has view-only access. You can read everything this install has measured; changing how it is set up needs an administrator account."})]}),m.jsx(ko,{children:m.jsx("p",{className:"supporting-copy",children:"If you need to make a change here, ask an administrator on this install."})})]})}class N$ extends Error{constructor(){super(J2),this.name="ViewOnlyError"}}function _$(e){if(!e.canWrite)throw new N$}function Sh(e){e.invalidateQueries({queryKey:X0({client:le})}),e.invalidateQueries({queryKey:Ho({client:le})})}function _s(){const e=xl();return()=>{_$(e)}}function C$(e){return e==="gsc-sync"?"GSC sync queued":e==="inspect-sitemap"?"Sitemap inspection queued":"Visibility sweep queued"}function z$(e,t){const i=e??"Project";return t==="gsc-sync"?`${i} will refresh after the sync completes.`:t==="inspect-sitemap"?`${i} will notify you when sitemap inspection finishes.`:`${i} will notify you when the run finishes.`}function jh(e,t){W0({id:e.id,projectId:e.projectId,kind:e.kind,projectLabel:t.projectLabel,sourceAction:t.sourceAction,lastAnnouncedStatus:"queued"}),pn({title:C$(e.kind),detail:z$(t.projectLabel,e.kind),tone:"neutral",dedupeKey:`run:${e.id}`,dedupeMode:"replace"})}function E$(e){const t=e.filter(d=>d.status!=="conflict"&&d.status!=="error"),i=e.filter(d=>d.status==="conflict"),s=e.filter(d=>d.status==="error"),r=i.length+s.length;if(t.length===0){const d=[s.length>0?`${s.length} need provider or query setup`:null,i.length>0?`${i.length} already have an active run`:null].filter(g=>g!==null);pn({title:"No runs queued",detail:d.length>0?`${d.join("; ")}.`:"No projects were available to queue.",tone:"caution",durationMs:8e3,dedupeKey:"run-all:conflict",dedupeMode:"replace"});return}for(const d of t)W0({id:d.id,projectId:d.projectId,kind:d.kind,projectLabel:d.projectName,sourceAction:"run-all",lastAnnouncedStatus:"queued"});const u=Iq({runIds:t.map(d=>d.id),queuedCount:t.length,skippedCount:r});pn({title:"Run-all batch queued",detail:r>0?`${t.length} project${t.length===1?"":"s"} queued; ${r} need attention or already have an active run.`:`${t.length} project${t.length===1?"":"s"} queued.`,tone:r>0?"caution":"neutral",dedupeKey:`batch:${u}`,dedupeMode:"replace"})}function bd(e,t){if(e instanceof Mn&&e.code==="RUN_IN_PROGRESS"){pn({title:"Run already in progress",detail:t?.projectLabel?`${t.projectLabel} already has an active run. Wait for it to finish, then retry.`:"This project already has an active run. Wait for it to finish, then retry.",tone:"caution",durationMs:8e3,dedupeKey:`run-in-progress:${t?.projectKey??"project"}:${t?.sourceAction??"run"}`,dedupeMode:"replace"});return}pn({title:e instanceof Error?e.message:"Failed to queue run",tone:"negative"})}function T$(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,opts:s})=>kA(i,s),onSuccess:(i,s)=>{Sh(t),jh(i,{projectLabel:s.projectLabel??s.projectName,sourceAction:s.sourceAction})},onError:(i,s)=>{s.sourceAction!=="setup-launch"&&bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:s.sourceAction})}})}function LG(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:i=>CA(i),onSuccess:i=>{Sh(t),E$(i)},onError:i=>{pn({title:i instanceof Error?i.message:"Failed to queue runs",tone:"negative"})}})}function PG(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,body:s})=>DA(i,s),onSuccess:(i,s)=>{Sh(t),W0({id:i.runId,projectId:s.projectId,kind:Oe["site-audit"],projectLabel:s.projectLabel??s.projectName,sourceAction:"site-audit",lastAnnouncedStatus:i.status}),pn({title:i.status==="running"?"Technical audit already running":"Technical audit queued",detail:`${s.projectLabel??s.projectName} will refresh automatically when the audit finishes.`,tone:"neutral",dedupeKey:`run:${i.runId}`,dedupeMode:"replace"})},onError:(i,s)=>{bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:"site-audit"})}})}function $G(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,opts:s})=>zA(i,s),onSuccess:(i,s)=>{Mu(t,Oe["gsc-sync"],s.projectName),jh(i,{projectLabel:s.projectLabel??s.projectName,sourceAction:"gsc-sync"})},onError:(i,s)=>{bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:"gsc-sync"})}})}function UG(){const e=_s(),t=Mi();return xs({onMutate:e,meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:i,opts:s})=>TA(i,s),onSuccess:(i,s)=>{Mu(t,Oe["inspect-sitemap"],s.projectName),jh(i,{projectLabel:s.projectLabel??s.projectName,sourceAction:"inspect-sitemap"})},onError:(i,s)=>{bd(i,{projectKey:s.projectName,projectLabel:s.projectLabel??s.projectName,sourceAction:"inspect-sitemap"})}})}function G3(e){if(!Array.isArray(e.queryKey)||e.queryKey.length<=1)return!1;const t=e.queryKey[0];return t==="projects"||t==="project-dashboard-full"}function VG(){const e=_s(),t=Mi();return xs({onMutate:e,mutationFn:({projectName:i,queries:s})=>yA(i,s),onSuccess:()=>{t.invalidateQueries({queryKey:Ho({client:le})}),t.invalidateQueries({predicate:G3})}})}function KG(){const e=_s(),t=Mi();return xs({onMutate:e,mutationFn:({projectName:i,body:s})=>bA(i,s),onSuccess:()=>{Sa(t,"project"),t.invalidateQueries({predicate:G3})}})}const g2="canonry.onboarding-session.v1",D$=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,O$=["system","project","queries","competitors","run"];function R$(e){return O$[e]??"system"}function M$(e){if(!e.apiReady)return"api_unavailable";if(e.databaseConfigured===!1)return"database_unavailable";if(!e.workerReady)return"worker_unavailable";if(!e.providerReady)return"no_provider"}function B$(e){return e.apiStatus.state!=="checking"&&e.workerStatus.state!=="checking"}function y2(e,t){const i=e&&typeof e=="object"&&"code"in e?String(e.code):"";return i==="NO_PROVIDER"?"no_provider":i==="NO_QUERIES"?"no_queries":t}function q$(){try{const e=typeof window<"u"?window.sessionStorage.getItem(g2):null;if(e&&D$.test(e))return e;const t=Hf();return typeof window<"u"&&window.sessionStorage.setItem(g2,t),t}catch{return Hf()}}function I$(){return Hf()}function Hf(){const e=globalThis.crypto;if(e.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if(e.getRandomValues)e.getRandomValues(t);else for(let s=0;s<t.length;s+=1)t[s]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;const i=[...t].map(s=>s.toString(16).padStart(2,"0")).join("");return`${i.slice(0,8)}-${i.slice(8,12)}-${i.slice(12,16)}-${i.slice(16,20)}-${i.slice(20)}`}const L$=[{label:"System check",description:"Verify your instance is ready"},{label:"Create project",description:"Name, domain, and locale"},{label:"Queries",description:"Add queries to track"},{label:"Competitors",description:"Add competitor domains"},{label:"Launch",description:"Start your first visibility sweep"}];function b2(e,t){return(e==="completed"||e==="partial")&&t>0}function v2(e){return e.launchReady?e.hasProject?e.queryCount===0?2:e.competitorCount===0&&!e.hasRunAttempt?3:4:1:0}function k2(e){return e.queryCounts.total>0}function P$({current:e,labels:t}){return m.jsx("div",{className:"setup-steps",role:"list","aria-label":"Setup progress",children:t.map((i,s)=>{const r=s<e,u=s===e;return m.jsxs("div",{className:`setup-step ${r?"setup-step-done":""} ${u?"setup-step-active":""}`,role:"listitem","aria-current":u?"step":void 0,children:[m.jsx("span",{className:"setup-step-number",children:r?"✓":s+1}),m.jsx("span",{children:i.label})]},i.label)})})}function $$(){return m.jsx(A$,{title:"Setup",children:m.jsx(U$,{})})}function U$(){const e=Dl(),{dashboard:t,isLoading:i,refetch:s}=rd(),r=t??e?.dashboard;return!r||i?m.jsxs("div",{className:"page-skeleton",children:[m.jsxs("div",{className:"page-skeleton-header",children:[m.jsx("div",{className:"skeleton-text h-6 w-24"}),m.jsx("div",{className:"skeleton-text-sm w-80"})]}),m.jsxs("div",{className:"page-skeleton-card",children:[m.jsx("div",{className:"skeleton-text w-32"}),m.jsx("div",{className:"space-y-3 mt-3",children:[1,2,3].map(u=>m.jsxs("div",{className:"flex items-center justify-between",children:[m.jsxs("div",{className:"space-y-1 flex-1",children:[m.jsx("div",{className:"skeleton-text w-24"}),m.jsx("div",{className:"skeleton-text-sm w-48"})]}),m.jsx("div",{className:"skeleton h-6 w-16 rounded-full"})]},u))})]})]}):m.jsx(V$,{dashboard:r,initialHealth:e?.health,enableLiveStatus:!e,refetch:s})}function V$({dashboard:e,initialHealth:t,enableLiveStatus:i,refetch:s}){const r=e.settings,d=ah(i,t).data??t??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},g=Oq(e.setup,d,r),b=Iu(),v=B.useRef(q$()).current,x=B.useRef(new Set),S=B.useCallback((W,Me)=>{if(Me){if(x.current.has(Me))return;x.current.add(Me)}AA({...W,eventId:I$()})},[]),j=e.projects.find(W=>!k2(W))??e.projects.at(0)??null,_=j?e.runs.filter(W=>W.projectId===j.project.id).sort((W,Me)=>Me.createdAt.localeCompare(W.createdAt)):[],T=j?.queryCounts.total??0,N=j?.project.name,C=mn({queryKey:["setup","resume-queries",N],queryFn:()=>N?Q2(N):Promise.resolve([]),enabled:!!N}),O=C.data??[],I=C.data?.length??T,$=j?.competitors.map(W=>W.domain)??[],K=_.at(0)??null,Z=!!j&&k2(j),se=!!j&&C.isPending,R=v2({launchReady:g.launchState.enabled,hasProject:!!j,queryCount:I,competitorCount:$.length,hasRunAttempt:_.length>0||Z}),q=v2({launchReady:!0,hasProject:!!j,queryCount:I,competitorCount:$.length,hasRunAttempt:_.length>0||Z}),[pe,ue]=B.useState(R),[fe,we]=B.useState(!se),[Te,it]=B.useState(j?.project.name??""),[ge,Q]=B.useState(j?.project.displayName??""),[oe,me]=B.useState(j?.project.canonicalDomain??""),[Ce,ce]=B.useState(j?.project.country??"US"),[He,ne]=B.useState(j?.project.language??"en"),[H,X]=B.useState(j?.project.autoExtractBacklinks??!1),[ie,re]=B.useState(j?.project.name??null),[ze,ct]=B.useState(null),[_e,Qe]=B.useState(!1),[Xe,Gt]=B.useState(O.map(W=>W.query).join(`
|
|
203
203
|
`)),[In,Qt]=B.useState(I>0),[Cs,zs]=B.useState(null),[ql,Xo]=B.useState(!1),[Jo,Wo]=B.useState(!1),sn=r.providerStatuses.filter(W=>W.state==="ready"),[Ja,Es]=B.useState(sn[0]?.name??""),[Jt,vd]=B.useState(5),[er,tr]=B.useState(!1),[Gi,Il]=B.useState(null),[nr,kd]=B.useState($.join(`
|
|
204
|
-
`)),[Ll,Hi]=B.useState($.length>0),[Wt,ta]=B.useState(null),[en,Pl]=B.useState(!1),[Wa,wd]=B.useState(!!K&&!Z),[Aa,Qi]=B.useState(!1),[ha,na]=B.useState(null),[ei,Zi]=B.useState(Z?null:K?.id??null),xd=
|
|
204
|
+
`)),[Ll,Hi]=B.useState($.length>0),[Wt,ta]=B.useState(null),[en,Pl]=B.useState(!1),[Wa,wd]=B.useState(!!K&&!Z),[Aa,Qi]=B.useState(!1),[ha,na]=B.useState(null),[ei,Zi]=B.useState(Z?null:K?.id??null),xd=T$(),ga=mn({...Ex({client:le,path:{id:ei??""}}),enabled:!!ei,refetchInterval:({state:W})=>{const Me=W.data?.status;return Me==="completed"||Me==="partial"||Me==="failed"||Me==="cancelled"?!1:2e3},refetchIntervalInBackground:!0}),[Fi,ti]=B.useState(""),[ar,ir]=B.useState(!1),[sr,or]=B.useState(null),aa=Te.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),yn=Xe.split(`
|
|
205
205
|
`).map(W=>W.trim()).filter(Boolean),Na=nr.split(`
|
|
206
|
-
`).map(W=>W.trim()).filter(Boolean),ni=Math.max(I,In?yn.length:0),tn=g.launchState.blockedReason??(ie?ni===0?"Add at least one query before launching the first sweep.":void 0:"Create a project before launching the first sweep."),yt=
|
|
207
|
-
`)),Qt(!0)),we(!0))},[O,R,fe,se]),B.useEffect(()=>{if(sn.length===0){Es("");return}sn.some(W=>W.name===Ja)||Es(sn[0].name)},[sn,Ja]),B.useEffect(()=>{fe&&(S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.started",step:
|
|
206
|
+
`).map(W=>W.trim()).filter(Boolean),ni=Math.max(I,In?yn.length:0),tn=g.launchState.blockedReason??(ie?ni===0?"Add at least one query before launching the first sweep.":void 0:"Create a project before launching the first sweep."),yt=M$({apiReady:d.apiStatus.state==="ok",databaseConfigured:d.apiStatus.databaseConfigured,workerReady:d.workerStatus.state==="ok",providerReady:sn.length>0});B.useEffect(()=>{fe||se||(ue(R),O.length>0&&(Gt(O.map(W=>W.query).join(`
|
|
207
|
+
`)),Qt(!0)),we(!0))},[O,R,fe,se]),B.useEffect(()=>{if(sn.length===0){Es("");return}sn.some(W=>W.name===Ja)||Es(sn[0].name)},[sn,Ja]),B.useEffect(()=>{fe&&(S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.started",step:R$(R),resumed:!!j},"onboarding.started"),!j&&R>0&&S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"system",method:"automatic"},"onboarding.step_completed:system"))},[S,R,v,fe,j]),B.useEffect(()=>{!B$(d)||!yt||S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.blocked",step:"system",action:yt==="no_provider"?"configure_provider":"continue",reasonCode:yt},`onboarding.blocked:system:${yt}`)},[S,d,v,yt]);const At=ga.data?.status,ia=ga.data?.snapshots?.length??0;B.useEffect(()=>{if(!Wa||!At)return;if(b2(At,ia)){S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"run",method:"automatic",countBucket:xa(ia)},"onboarding.step_completed:run");return}const W=At==="cancelled"?"run_cancelled":At==="failed"||(At==="completed"||At==="partial")&&ia===0?"run_failed":void 0;W&&S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.blocked",step:"run",action:"retry_run",reasonCode:W},`onboarding.blocked:run:${W}`)},[S,v,At,ia,Wa]);const rr=async()=>{if(!(!aa||!oe)){Qe(!0),ct(null);try{const W=await e0(aa,{displayName:ge||Te,canonicalDomain:oe,country:Ce,language:He,autoExtractBacklinks:H});re(aa),pn({title:"Project created",detail:`${W.displayName||W.name} is ready for setup.`,tone:"positive",dedupeKey:`project:create:${W.name}`,dedupeMode:"drop"}),await s(),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"project",method:"manual"},"onboarding.step_completed:project"),ue(2)}catch(W){ct(W instanceof Error?W.message:"Failed to create project"),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.blocked",step:"project",action:"save",reasonCode:"project_create_failed"},"onboarding.blocked:project:project_create_failed")}finally{Qe(!1)}}},Sd=async()=>{if(!ie)return;const W=yn;if(W.length!==0){Xo(!0),zs(null);try{await gA(ie,W),Qt(!0),await s(),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"queries",method:Jo?"generated":"manual",countBucket:xa(W.length)},"onboarding.step_completed:queries"),ue(3)}catch(Me){zs(Me instanceof Error?Me.message:"Failed to save queries"),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.blocked",step:"queries",action:"save",reasonCode:"query_save_failed"},"onboarding.blocked:queries:query_save_failed")}finally{Xo(!1)}}},jd=async()=>{if(!(!ie||!Ja)){tr(!0),Il(null);try{const W=await NA(ie,Ja,Jt);if(W.queries.length>0){const Me=Xe?Xe.trimEnd()+`
|
|
208
208
|
`+W.queries.join(`
|
|
209
209
|
`):W.queries.join(`
|
|
210
210
|
`);Gt(Me),Wo(!0)}}catch(W){Il(W instanceof Error?W.message:"Failed to generate queries"),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.blocked",step:"queries",action:"generate_queries",reasonCode:y2(W,"unknown")},"onboarding.blocked:queries:generate")}finally{tr(!1)}}},$l=async()=>{if(!ie)return;const W=Na;if(W.length!==0){Pl(!0),ta(null);try{await vA(ie,W),Hi(!0),await s(),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"competitors",method:"manual",countBucket:xa(W.length)},"onboarding.step_completed:competitors"),ue(4)}catch(Me){ta(Me instanceof Error?Me.message:"Failed to save competitors"),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.blocked",step:"competitors",action:"save",reasonCode:"unknown"},"onboarding.blocked:competitors:save")}finally{Pl(!1)}}},Yi=async()=>{const W=Fi.trim();if(W){ir(!0),or(null);try{await jA("gemini",{apiKey:W}),pn({title:"Gemini configured",detail:"Provider is ready — continuing setup.",tone:"positive",dedupeKey:"setup:gemini:configured",dedupeMode:"drop"}),ti(""),await s(),Es(r.providerStatuses.find(Me=>Me.name.toLowerCase()==="gemini")?.name??"gemini"),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"system",method:"inline"},"onboarding.step_completed:system")}catch(Me){or(Me instanceof Error?Me.message:"Failed to save Gemini key"),S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.blocked",step:"system",action:"configure_provider",reasonCode:"provider_save_failed"},"onboarding.blocked:system:provider_save_failed")}finally{ir(!1)}}},Ts=async()=>{if(!ie||tn){na(tn??"Complete setup before launching the first sweep.");const W=yt??(ie?ni===0?"no_queries":"run_rejected":"unknown");S({flowVersion:Ct,onboardingSessionId:v,event:"run.requested",origin:"dashboard_setup",result:"rejected",providerCountBucket:xa(sn.length),queryCountBucket:xa(ni),reasonCode:W});return}Qi(!0),na(null);try{const W=await xd.mutateAsync({projectName:ie,projectLabel:ge||Te||ie,sourceAction:"setup-launch"});Zi(W.id),wd(!0),S({flowVersion:Ct,onboardingSessionId:v,event:"run.requested",origin:"dashboard_setup",result:"queued",providerCountBucket:xa(sn.length),queryCountBucket:xa(ni)}),await s()}catch(W){na(W instanceof Error?W.message:"Failed to queue the visibility sweep. Retry when the instance is ready."),S({flowVersion:Ct,onboardingSessionId:v,event:"run.requested",origin:"dashboard_setup",result:"rejected",providerCountBucket:xa(sn.length),queryCountBucket:xa(ni),reasonCode:y2(W,"run_rejected")})}finally{Qi(!1)}},on=()=>ue(W=>Math.max(0,W-1)),ya=(W,Me,bn)=>{S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:W,method:"existing",...bn===void 0?{}:{countBucket:xa(bn)}},`onboarding.step_completed:${W}`),ue(Me)},ai=()=>{S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"queries",method:"skipped",countBucket:"0"},"onboarding.step_completed:queries"),ue(3)},ii=()=>{S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"competitors",method:"skipped",countBucket:"0"},"onboarding.step_completed:competitors"),ue(4)},Rt=(()=>{switch(pe){case 0:return m.jsxs(Zn,{className:"surface-card step-card",children:[m.jsx("div",{className:"section-head",children:m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 1 of 5"}),m.jsx("h2",{children:"System check"})]})}),m.jsx("p",{className:"supporting-copy",children:"Checking that your Canonry instance is configured and reachable."}),m.jsx("div",{className:"compact-stack",children:g.healthChecks.map(W=>m.jsxs("div",{className:"health-check-row",children:[m.jsxs("div",{children:[m.jsx("p",{className:"run-row-title",children:W.label}),m.jsx("p",{className:"supporting-copy",children:W.detail}),W.id==="provider"&&W.state!=="ready"&&m.jsxs("div",{className:"mt-3 rounded-md border border-default bg-bg-elevated/40 p-3 space-y-2",children:[m.jsxs("p",{className:"text-xs text-secondary",children:["Paste a Gemini key to enable visibility checks (free at"," ",m.jsx("a",{href:"https://aistudio.google.com/apikey",target:"_blank",rel:"noreferrer",className:"text-positive-400 hover:text-positive underline underline-offset-2",children:"aistudio.google.com"}),")."]}),m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("input",{type:"password",value:Fi,onChange:Me=>ti(Me.target.value),placeholder:"AI... (paste here)",className:"flex-1 rounded-md border border-base bg-bg px-2.5 py-1.5 text-sm text-heading placeholder:text-faint focus:border-mono-600 focus:outline-none font-mono",disabled:ar}),m.jsx(De,{type:"button",size:"sm",disabled:ar||!Fi.trim(),onClick:nn(Yi),children:ar?"Saving...":"Save"})]}),sr&&m.jsxs("div",{role:"alert",className:"space-y-1 text-xs text-negative",children:[m.jsx("p",{children:sr}),m.jsx("p",{children:"Check that the key is complete, then retry Save."})]}),m.jsxs("p",{className:"text-sm text-secondary",children:["Connect more answer engines later in"," ",m.jsx(We,{to:"/settings",className:"text-link hover:underline",children:"Settings"}),"."]})]})]}),m.jsx(An,{tone:W.state==="ready"?"positive":"caution",title:W.id==="api"?qo(d.apiStatus):W.id==="worker"?qo(d.workerStatus):W.detail,children:W.state==="ready"?"Ready":"Attention"})]},W.id))}),m.jsxs("div",{className:"setup-nav",children:[g.launchState.blockedReason?m.jsx("p",{role:"status",className:"supporting-copy text-negative",children:g.launchState.blockedReason}):m.jsx("span",{}),m.jsx(De,{type:"button",disabled:!g.launchState.enabled,title:g.launchState.blockedReason,onClick:()=>{S({flowVersion:Ct,onboardingSessionId:v,event:"onboarding.step_completed",step:"system",method:"automatic"},"onboarding.step_completed:system"),ue(q)},children:"Continue"})]})]});case 1:return m.jsxs(Zn,{className:"surface-card step-card",children:[m.jsxs("div",{className:"section-head",children:[m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 2 of 5"}),m.jsx("h2",{children:"Create project"})]}),ie?m.jsx(An,{tone:"positive",children:"Created"}):null]}),ie?m.jsxs("div",{className:"compact-stack",children:[m.jsxs("p",{className:"text-neutral",children:["Project ",m.jsx("span",{className:"text-heading font-medium",children:ie})," created successfully."]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",onClick:()=>ya("project",2),children:"Continue"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"project-name",children:"Project name"}),m.jsx("input",{id:"project-name",className:"setup-input",type:"text",placeholder:"my-website",value:Te,onChange:W=>it(W.target.value)}),aa&&aa!==Te?m.jsxs("p",{className:"supporting-copy",children:["Slug: ",aa]}):null]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"display-name",children:"Display name (optional)"}),m.jsx("input",{id:"display-name",className:"setup-input",type:"text",placeholder:"My Website",value:ge,onChange:W=>Q(W.target.value)})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"domain",children:"Canonical domain"}),m.jsx("input",{id:"domain",className:"setup-input",type:"text",placeholder:"example.com",value:oe,onChange:W=>me(W.target.value)})]}),m.jsxs("div",{className:"setup-field-row",children:[m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"country",children:"Country"}),m.jsx("input",{id:"country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:Ce,onChange:W=>ce(W.target.value.toUpperCase())})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"language",children:"Language"}),m.jsx("input",{id:"language",className:"setup-input",type:"text",placeholder:"en",maxLength:5,value:He,onChange:W=>ne(W.target.value.toLowerCase())})]})]}),m.jsxs("label",{className:"flex items-start gap-3 rounded-md border border-default bg-surface p-3 cursor-pointer hover:border-strong",children:[m.jsx("input",{type:"checkbox",className:"mt-0.5 h-4 w-4 rounded border-strong bg-bg",checked:H,onChange:W=>X(W.target.checked)}),m.jsxs("span",{className:"flex-1",children:[m.jsx("span",{className:"block text-sm text-heading",children:"Auto-extract backlinks"}),m.jsxs("span",{className:"block text-xs text-muted mt-0.5",children:["When a new Common Crawl release syncs, automatically extract backlinks for this project."," ",m.jsx(We,{to:"/backlinks",className:"text-positive-400 hover:text-positive underline underline-offset-2",children:"Manage backlinks"})]})]})]}),ze?m.jsx("p",{className:"text-negative-400 text-sm",children:ze}):null,m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",disabled:!aa||!oe||_e,onClick:nn(rr),children:_e?"Creating...":"Create project"})]})]})]});case 2:return m.jsxs(Zn,{className:"surface-card step-card",children:[m.jsxs("div",{className:"section-head",children:[m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 3 of 5"}),m.jsx("h2",{children:"Add queries"})]}),C.isError?m.jsx(An,{tone:"negative",children:"Load failed"}):In?m.jsxs(An,{tone:"positive",children:[yn.length," saved"]}):m.jsxs(An,{tone:"neutral",children:[yn.length," quer",yn.length!==1?"ies":"y"]})]}),m.jsx("p",{className:"supporting-copy",children:"Enter the queries you want to track, one per line. A rough first list is fine: you can edit them, research more, and add to them at any time from the project."}),m.jsxs("div",{className:"rounded-md border border-base bg-bg-elevated p-3 text-sm",children:[m.jsx("p",{className:"m-0 font-medium text-heading",children:"Tracking more than one location or property?"}),m.jsx("p",{className:"mt-1 mb-2 text-secondary",children:"Queries attach to each property separately in Advanced measurement, so there is nothing useful to add here. Skip this and set it up on the project."}),m.jsx(De,{type:"button",variant:"outline",size:"sm",onClick:()=>{ai(),b({to:ie?`/projects/${encodeURIComponent(ie)}/portfolio`:"/"})},children:"Set up Advanced measurement instead"})]}),C.isError?m.jsxs("div",{className:"compact-stack",children:[m.jsx("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:"Saved queries could not be loaded. Retry before changing the query basket."}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",onClick:()=>{C.refetch()},children:"Retry loading queries"})]})]}):In?m.jsxs("div",{className:"compact-stack",children:[m.jsx("ul",{className:"detail-list",children:yn.map(W=>m.jsx("li",{children:W},W))}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",onClick:()=>ya("queries",3,yn.length),children:"Continue"})]})]}):m.jsxs("div",{className:"compact-stack",children:[sn.length>0?m.jsxs("div",{className:"compact-stack",children:[m.jsxs("div",{className:"flex items-center gap-2 text-muted text-xs uppercase tracking-wide",children:[m.jsx("span",{className:"flex-1 border-t border-base"}),"auto-generate",m.jsx("span",{className:"flex-1 border-t border-base"})]}),m.jsxs("div",{className:"flex items-end gap-2",children:[m.jsxs("div",{className:"setup-field flex-1",children:[m.jsx("label",{className:"setup-label",htmlFor:"gen-provider",children:"Provider"}),m.jsx("select",{id:"gen-provider",className:"setup-input",value:Ja,onChange:W=>Es(W.target.value),children:sn.map(W=>m.jsxs("option",{value:W.name,children:[W.displayName??W.name,W.model?` (${W.model})`:""]},W.name))})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"gen-count",children:"Count"}),m.jsx("select",{id:"gen-count",className:"setup-input",value:Jt,onChange:W=>vd(Number(W.target.value)),children:[3,5,10,15,20].map(W=>m.jsx("option",{value:W,children:W},W))})]}),m.jsx(De,{type:"button",variant:"outline",disabled:er||!Ja,onClick:nn(jd),children:er?"Analyzing site...":"Generate"})]}),Gi?m.jsx("p",{className:"text-negative-400 text-sm",children:Gi}):null]}):null,m.jsxs("div",{className:"flex items-center gap-2 text-muted text-xs uppercase tracking-wide",children:[m.jsx("span",{className:"flex-1 border-t border-base"}),"or type manually",m.jsx("span",{className:"flex-1 border-t border-base"})]}),m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"queries",children:"Queries (one per line)"}),m.jsx("textarea",{id:"queries",className:"setup-textarea",rows:6,placeholder:`emergency dentist brooklyn
|
|
211
211
|
best invisalign downtown brooklyn
|
|
212
212
|
pediatric dentist brooklyn heights`,value:Xe,onChange:W=>Gt(W.target.value)})]}),Cs?m.jsx("p",{className:"text-negative-400 text-sm",children:Cs}):null,m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",variant:"ghost",onClick:ai,children:"Skip for now"}),m.jsx(De,{type:"button",disabled:yn.length===0||ql,onClick:nn(Sd),children:ql?"Saving...":`Save ${yn.length} quer${yn.length!==1?"ies":"y"}`})]})]})]});case 3:return m.jsxs(Zn,{className:"surface-card step-card",children:[m.jsxs("div",{className:"section-head",children:[m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 4 of 5"}),m.jsx("h2",{children:"Add competitors"})]}),Ll?m.jsx(An,{tone:"positive",children:"Saved"}):null]}),m.jsx("p",{className:"supporting-copy",children:"Domains that compete for the same queries. One per line."}),Ll?m.jsxs("div",{className:"compact-stack",children:[m.jsx("ul",{className:"detail-list",children:Na.map(W=>m.jsx("li",{children:W},W))}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",onClick:()=>ya("competitors",4,Na.length),children:"Continue"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsxs("div",{className:"setup-field",children:[m.jsx("label",{className:"setup-label",htmlFor:"competitors",children:"Competitor domains (one per line)"}),m.jsx("textarea",{id:"competitors",className:"setup-textarea",rows:4,placeholder:`competitor1.com
|
|
213
|
-
competitor2.com`,value:nr,onChange:W=>kd(W.target.value)})]}),Wt?m.jsx("p",{className:"text-negative-400 text-sm",children:Wt}):null,m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsxs("div",{className:"flex gap-2",children:[m.jsx(De,{type:"button",variant:"outline",onClick:ii,children:"Skip"}),m.jsx(De,{type:"button",disabled:Na.length===0||en,onClick:nn($l),children:en?"Saving...":`Save ${Na.length} competitor${Na.length!==1?"s":""}`})]})]})]})]});case 4:{const W=ga.data,Me=W?.status??(ei===K?.id?K.status:void 0),bn=Me==="completed"||Me==="partial"||Me==="failed"||Me==="cancelled",_n=W?.snapshots??[],Ad=_n.filter(Mt=>Mt.citationState==="cited").length,Ul=_n.filter(Mt=>Mt.answerMentioned===!0).length,lr=new Set(_n.map(Mt=>Mt.query).filter(Mt=>!!Mt)).size,Vl=Me?b2(Me,_n.length):!1,Xi=Z&&!Wa,Ds=ha??(W?.error?uB(W.error):Me==="cancelled"?"The sweep was cancelled before it produced a baseline.":(Me==="completed"||Me==="partial")&&_n.length===0?"The sweep finished without producing any snapshots. Confirm the query set and provider configuration, then retry.":K?.statusDetail||"The sweep did not produce a baseline. Review provider configuration, then retry.");let rn=null;return Xi||Vl?rn=m.jsx(An,{tone:"positive",children:"Complete"}):ha&&!Wa?rn=m.jsx(An,{tone:"negative",children:"Failed"}):bn?rn=m.jsx(An,{tone:"negative",children:Me==="cancelled"?"Cancelled":"Failed"}):Wa&&(rn=m.jsx(An,{tone:"caution",children:"Running"})),m.jsxs(Zn,{className:"surface-card step-card",children:[m.jsxs("div",{className:"section-head",children:[m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),m.jsx("h2",{children:"Launch first run"})]}),rn]}),Xi?m.jsxs("div",{className:"compact-stack",children:[m.jsxs("p",{className:"text-secondary",children:["Setup is complete. ",m.jsx("span",{className:"text-strong font-medium",children:ie})," already has a successful answer-visibility baseline."]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx("span",{}),m.jsx(De,{type:"button",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project dashboard →"})]})]}):Wa?bn?Vl?m.jsxs("div",{className:"compact-stack",children:[m.jsxs("p",{className:"text-neutral",children:["Sweep complete. Your first answer-visibility snapshot for"," ",m.jsx("span",{className:"text-heading font-medium",children:ie}),":"]}),m.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[m.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[m.jsx("p",{className:"text-xs font-medium text-secondary",children:"Mentioned"}),m.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Ul,m.jsxs("span",{className:"text-faint text-lg",children:[" / ",lr]})]}),m.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries naming your brand"})]}),m.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[m.jsx("p",{className:"text-xs font-medium text-secondary",children:"Cited"}),m.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Ad,m.jsxs("span",{className:"text-faint text-lg",children:[" / ",lr]})]}),m.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries citing your site"})]}),m.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[m.jsx("p",{className:"text-xs font-medium text-secondary",children:"Results"}),m.jsx("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:_n.length}),m.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"completed engine checks"})]})]}),m.jsx("p",{className:"mt-1 text-sm text-secondary",children:"Open the project to review the evidence."}),m.jsxs("div",{className:"setup-nav",children:[m.jsx("span",{}),m.jsx(De,{type:"button",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project dashboard →"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[m.jsx("p",{children:Ds}),m.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Fix provider or query configuration if needed, then retry without leaving setup."})]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",asChild:!0,children:m.jsx(We,{to:"/settings",children:"Configure providers"})}),m.jsx(De,{type:"button",disabled:Aa||!!tn,onClick:nn(Ts),children:Aa?"Retrying...":"Retry visibility sweep"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsx("p",{className:"text-neutral",children:"Sweep running — typically 30-60s. Polling every 2s…"}),m.jsx("div",{className:"rounded-md border border-default bg-surface p-3 text-xs text-muted",children:m.jsxs("p",{children:["Status: ",m.jsx("span",{className:"text-neutral",children:Me??"queued"})]})}),ga.isError&&m.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[m.jsx("p",{children:ga.error instanceof Error?ga.error.message:"Could not refresh the sweep status."}),m.jsx(De,{type:"button",variant:"outline",size:"sm",className:"mt-2",onClick:()=>{ga.refetch()},children:"Retry status check"})]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx("span",{}),m.jsx(De,{type:"button",variant:"outline",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Watch on project page"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsxs("p",{className:"supporting-copy",children:["Setup is done. You can run a first sweep now to get a baseline for"," ",m.jsx("span",{className:"text-heading font-medium",children:ie}),", or finish and run it later from the project. A sweep calls the answer engines, so it costs provider usage."]}),(tn||ha)&&m.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[m.jsx("p",{children:ha??tn}),m.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Resolve the blocker above, then retry the sweep here."})]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",variant:"ghost",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Finish without running"}),m.jsx(De,{type:"button",disabled:Aa||!!tn,title:tn,onClick:nn(Ts),children:Aa?"Launching...":ha?"Retry visibility sweep":"Launch visibility sweep"})]})]})]})}default:return null}})();return m.jsxs("div",{className:"page-container",children:[m.jsx("div",{className:"page-header",children:m.jsxs("div",{className:"page-header-left",children:[m.jsx("h1",{className:"page-title",children:"Setup"}),m.jsx("p",{className:"page-subtitle",children:"Create a project and run its first visibility check."})]})}),m.jsx(L$,{current:pe,labels:I$}),m.jsx("section",{className:"setup-wizard",children:Rt})]})}function V$(){return m.jsx("div",{className:"page-container",children:m.jsx("section",{className:"page-section",children:m.jsxs(Zn,{className:"surface-card empty-card",children:[m.jsx("h1",{children:"Route not found"}),m.jsx("p",{children:"The current path does not map to a dashboard view."}),m.jsx(De,{asChild:!0,children:m.jsx(We,{to:"/",children:"Return to overview"})})]})})})}const fa=Bi(()=>qi(()=>import("./ProjectPage-LzCmnrO2.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),"ProjectPage"),K$=Bi(()=>qi(()=>import("./RunsPage-0qr4V3pn.js"),__vite__mapDeps([12,1,2,10,6,11]),import.meta.url),"RunsPage"),G$=Bi(()=>qi(()=>import("./HistoryPage-CksKbEHx.js"),__vite__mapDeps([13,1,8,10,6,11]),import.meta.url),"HistoryPage"),H$=Bi(()=>qi(()=>import("./SettingsPage-BLMy_cfR.js"),__vite__mapDeps([14,1,10,6,11]),import.meta.url),"SettingsPage"),Q$=Bi(()=>qi(()=>import("./BacklinksPage-DYApSbsM.js"),__vite__mapDeps([15,1,7,10,6,11]),import.meta.url),"BacklinksPage"),Z$=Bi(()=>qi(()=>import("./TrafficPage-CZj9XGfC.js"),__vite__mapDeps([16,1,5,17,10,6,11]),import.meta.url),"TrafficPage"),F$=Bi(()=>qi(()=>import("./TrafficSourceDetailPage-BfQAuIQM.js"),__vite__mapDeps([18,1,5,4,3,6,17,10,11]),import.meta.url),"TrafficSourceDetailPage"),Y$=Bi(()=>qi(()=>import("./MeasurementPropertyPage-Ds5A7BiY.js"),__vite__mapDeps([19,1,4,9,17,10,6,11]),import.meta.url),"MeasurementPropertyPage");function X$(){return m.jsx(oP,{children:m.jsx(sP,{})})}const hn=l4()({component:X$,validateSearch:e=>({manageQueries:e.manageQueries===!0||e.manageQueries==="true"?!0:void 0,runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0,runStatus:typeof e.runStatus=="string"?e.runStatus:void 0,runKind:typeof e.runKind=="string"?e.runKind:void 0,runProject:typeof e.runProject=="string"?e.runProject:void 0,runWindow:typeof e.runWindow=="string"?e.runWindow:void 0,runQuery:typeof e.runQuery=="string"?e.runQuery:void 0,scope:typeof e.scope=="string"?e.scope:void 0,class:typeof e.class=="string"?e.class:void 0})}),J$=St({getParentRoute:()=>hn,path:"/",component:dP,beforeLoad:({context:e})=>{const t=e.queryClient.getQueryData(Ho({client:le}));if(t&&t.length===0)throw j2({to:"/setup"})}}),W$=St({getParentRoute:()=>hn,path:"/projects",component:S$}),eU=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,qn=St({getParentRoute:()=>hn,path:"/projects/$projectName",component:()=>m.jsx(mf,{}),beforeLoad:async({context:e,params:t,location:i})=>{const s=t.projectName;if(!eU.test(s))return;let r=e.queryClient.getQueryData(Ho({client:le}));if(!r)try{r=await e.queryClient.ensureQueryData(nd({client:le}))}catch{return}const u=r.find(d=>d.id===s);if(u)throw j2({to:i.pathname.replace(`/projects/${s}`,`/projects/${encodeURIComponent(u.name)}`),replace:!0})}}),tU=St({getParentRoute:()=>qn,path:"/",component:()=>m.jsx(fa,{tab:"overview"})}),nU=St({getParentRoute:()=>qn,path:"/portfolio",component:()=>m.jsx(fa,{tab:"portfolio"})}),aU=St({getParentRoute:()=>qn,path:"/search-console",component:()=>m.jsx(fa,{tab:"search-console"})}),iU=St({getParentRoute:()=>qn,path:"/local",component:()=>m.jsx(fa,{tab:"local"})}),sU=St({getParentRoute:()=>qn,path:"/discovery",component:()=>m.jsx(fa,{tab:"discovery"})}),oU=St({getParentRoute:()=>qn,path:"/properties/$targetKey",component:()=>m.jsx(Y$,{})}),rU=St({getParentRoute:()=>qn,path:"/report",component:()=>m.jsx(fa,{tab:"report"})}),lU=St({getParentRoute:()=>qn,path:"/activity",component:()=>m.jsx(fa,{tab:"activity"})}),cU=St({getParentRoute:()=>qn,path:"/backlinks",component:()=>m.jsx(fa,{tab:"backlinks"})}),uU=St({getParentRoute:()=>qn,path:"/technical-aeo",component:()=>m.jsx(fa,{tab:"technical-aeo"})}),dU=St({getParentRoute:()=>qn,path:"/history",component:()=>m.jsx(fa,{tab:"history"})}),mU=St({getParentRoute:()=>qn,path:"/settings",component:()=>m.jsx(fa,{tab:"settings"})}),pU=St({getParentRoute:()=>hn,path:"/runs",component:K$}),fU=St({getParentRoute:()=>hn,path:"/history",component:G$}),hU=St({getParentRoute:()=>hn,path:"/settings",component:H$,beforeLoad:({context:e})=>{}}),gU=St({getParentRoute:()=>hn,path:"/setup",component:P$}),yU=St({getParentRoute:()=>hn,path:"/backlinks",component:Q$}),bU=St({getParentRoute:()=>hn,path:"/traffic",component:Z$}),vU=St({getParentRoute:()=>hn,path:"/traffic/$projectName/$sourceId",component:F$}),kU=St({getParentRoute:()=>hn,path:"*",component:V$}),wU=hn.addChildren([J$,W$,qn.addChildren([tU,nU,aU,iU,sU,oU,rU,lU,cU,uU,dU,mU]),pU,fU,hU,gU,yU,bU,vU,kU]);function xU(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const w2=xU(),SU=w2==="/"?"":w2.replace(/\/$/,"");function jU(e,t){return c4({routeTree:wU,basepath:SU||"/",context:{queryClient:e},...t?.initialEntries})}const AU=6e4;function NU(){const[e,t]=B.useState(qp()?"ready":"checking"),[i,s]=B.useState(null),[r,u]=B.useState(!1),[d,g]=B.useState(""),[b,v]=B.useState(""),[x,S]=B.useState(""),[j,_]=B.useState(null),[T,N]=B.useState(!1),[C,O]=B.useState(!1),I=B.useRef(null),$=B.useRef(null),K=B.useRef(null),Z=()=>{const ue=i?`${i.name}:${i.role}`:"no-accounts";if(!I.current||K.current!==ue){$.current?.clear();const fe=HA();$.current=fe,I.current=jU(fe),K.current=ue}return{queryClient:$.current,router:I.current}},se=ue=>ue.authRequired?(u(!0),s(ue.user),t(ue.user?"ready":"account-login"),!0):!1;B.useEffect(()=>{if(qp())return;let ue=!1;return Promise.allSettled([bb(),yb()]).then(([fe,we])=>{if(ue||fe.status==="fulfilled"&&se(fe.value))return;if(we.status==="rejected"){const it=we.reason;_(it instanceof Error?it.message:"Failed to reach the Canonry API"),t("login");return}const Te=we.value;Te.authenticated?t("ready"):t(Te.setupRequired?"setup":"login")}),()=>{ue=!0}},[]),B.useEffect(()=>{if(e!=="ready"||qp())return;const ue=setInterval(()=>{if(r){bb().then(fe=>{fe.authRequired&&!fe.user&&(O(!0),s(null),t("account-login"))}).catch(()=>{});return}yb().then(fe=>{fe.authenticated||(O(!0),t(fe.setupRequired?"setup":"login"))}).catch(()=>{})},AU);return gb(()=>{O(!0),s(null),t(r?"account-login":"login")}),()=>{clearInterval(ue),gb(null)}},[e,r]);const R=async ue=>{if(ue.preventDefault(),!b.trim()||b.trim().length<8){_("Password must be at least 8 characters");return}if(b!==x){_("Passwords do not match");return}N(!0),_(null);try{if(!(await wA(b.trim())).authenticated){_("Setup failed");return}v(""),S(""),O(!1),t("ready")}catch(fe){_(fe instanceof Mn||fe instanceof Error?fe.message:"Setup failed")}finally{N(!1)}},q=async ue=>{if(ue.preventDefault(),!!b.trim()){N(!0),_(null);try{if(!(await xA(b.trim())).authenticated){_("Incorrect password");return}v(""),O(!1),t("ready")}catch(fe){_(fe instanceof Mn||fe instanceof Error?fe.message:"Authentication failed")}finally{N(!1)}}},pe=async ue=>{if(ue.preventDefault(),!(!d.trim()||!b)){N(!0),_(null);try{const fe=await SA(d.trim(),b);if(!fe.user){_("Incorrect name or password.");return}v(""),O(!1),s(fe.user),t("ready")}catch(fe){_(fe instanceof Mn?fe.message:"Incorrect name or password.")}finally{N(!1)}}};if(e==="ready"){const{queryClient:ue,router:fe}=Z();return m.jsx(qA,{account:i,children:m.jsx(u4,{client:ue,children:m.jsx(d4,{router:fe})})})}return m.jsx("div",{className:"min-h-screen bg-bg px-4 py-8",children:m.jsx("div",{className:"mx-auto flex min-h-[calc(100vh-4rem)] max-w-md items-center justify-center",children:m.jsx(Zn,{className:"surface-card w-full",children:e==="checking"?m.jsx(ko,{className:"py-8",children:m.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="account-login"?m.jsxs(m.Fragment,{children:[m.jsxs(ul,{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),m.jsx(dl,{children:"Sign in to Canonry"}),m.jsx(ml,{children:"Enter the name and password for your account."})]}),m.jsxs(ko,{children:[C?m.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"You were signed out — please sign in again."}):null,m.jsxs("form",{className:"space-y-4",onSubmit:nn(pe),children:[m.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-name",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Name"}),m.jsx("input",{autoFocus:!0,id:"account-name",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"text",autoComplete:"username",value:d,onChange:ue=>g(ue.target.value)})]}),m.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-password",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),m.jsx("input",{id:"account-password",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",autoComplete:"current-password",value:b,onChange:ue=>v(ue.target.value)})]}),j?m.jsx("p",{className:"text-sm text-negative-400",children:j}):null,m.jsx(De,{type:"submit",disabled:T||!d.trim()||!b,children:T?"Signing in…":"Sign in"})]})]})]}):e==="setup"?m.jsxs(m.Fragment,{children:[m.jsxs(ul,{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),m.jsx(dl,{children:"Create a dashboard password"}),m.jsx(ml,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),m.jsx(ko,{children:m.jsxs("form",{className:"space-y-4",onSubmit:nn(R),children:[m.jsxs("label",{className:"block space-y-1.5",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),m.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:b,onChange:ue=>v(ue.target.value),placeholder:"At least 8 characters"})]}),m.jsxs("label",{className:"block space-y-1.5",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Confirm password"}),m.jsx("input",{className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:x,onChange:ue=>S(ue.target.value),placeholder:"Re-enter password"})]}),j?m.jsx("p",{className:"text-sm text-negative-400",children:j}):null,m.jsx(De,{type:"submit",disabled:T||!b.trim()||!x.trim(),children:T?"Setting up…":"Create password & open dashboard"})]})})]}):m.jsxs(m.Fragment,{children:[m.jsxs(ul,{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),m.jsx(dl,{children:"Sign in to Canonry"}),m.jsx(ml,{children:"Enter your dashboard password to continue."})]}),m.jsxs(ko,{children:[C?m.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"Your session expired — please sign in again."}):null,m.jsxs("form",{className:"space-y-4",onSubmit:nn(q),children:[m.jsxs("label",{className:"block space-y-1.5",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),m.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:b,onChange:ue=>v(ue.target.value),placeholder:"Dashboard password"})]}),j?m.jsx("p",{className:"text-sm text-negative-400",children:j}):null,m.jsx(De,{type:"submit",disabled:T||!b.trim(),children:T?"Signing in…":"Open dashboard"})]})]})]})})})})}const H3=document.getElementById("root");if(!H3)throw new Error("Expected #root element for web app bootstrap.");b4.createRoot(H3).render(m.jsx(B.StrictMode,{children:m.jsx(NU,{})}));export{WK as $,jK as A,De as B,n0 as C,xK as D,AK as E,lV as F,oK as G,ZK as H,nl as I,YK as J,XK as K,bV as L,yV as M,zV as N,pn as O,MI as P,eG as Q,tG as R,KN as S,An as T,SV as U,nG as V,jV as W,$o as X,kV as Y,xV as Z,JK as _,RG as a,ZU as a$,FK as a0,vV as a1,aG as a2,uG as a3,oG as a4,lG as a5,rG as a6,cG as a7,RA as a8,W0 as a9,SB as aA,UB as aB,PK as aC,UK as aD,$K as aE,kK as aF,wK as aG,CG as aH,zG as aI,EG as aJ,AV as aK,Ho as aL,NV as aM,X0 as aN,TG as aO,OG as aP,DG as aQ,BB as aR,LG as aS,nk as aT,sk as aU,xG as aV,HK as aW,de as aX,XU as aY,YU as aZ,FU as a_,Oe as aa,sG as ab,Rx as ac,Ya as ad,iG as ae,cD as af,uD as ag,cK as ah,lK as ai,FV as aj,tK as ak,nK as al,Mn as am,aK as an,WU as ao,ak as ap,uB as aq,xN as ar,MN as as,Lq as at,ku as au,iK as av,yf as aw,SG as ax,wV as ay,rK as az,Tu as b,BG as b$,GU as b0,KU as b1,QU as b2,HU as b3,VU as b4,UU as b5,MU as b6,BU as b7,$U as b8,PU as b9,_K as bA,dV as bB,mV as bC,NK as bD,pV as bE,fV as bF,gV as bG,hV as bH,Dl as bI,nd as bJ,AL as bK,xl as bL,G2 as bM,EK as bN,TK as bO,UG as bP,E$ as bQ,VK as bR,QK as bS,DK as bT,RK as bU,BK as bV,OK as bW,dn as bX,hA as bY,hB as bZ,qG as b_,LU as ba,qU as bb,IU as bc,RU as bd,OU as be,DU as bf,TU as bg,$4 as bh,mK as bi,wG as bj,dK as bk,qV as bl,VG as bm,hK as bn,pK as bo,gK as bp,yK as bq,uK as br,fK as bs,oV as bt,sV as bu,iV as bv,IV as bw,uV as bx,CK as by,Ov as bz,tt as c,VV as c$,tV as c0,nV as c1,eV as c2,yA as c3,aV as c4,xB as c5,rV as c6,dG as c7,pG as c8,zA as c9,BV as cA,qo as cB,Mv as cC,QV as cD,YV as cE,JV as cF,WV as cG,ZV as cH,XV as cI,eK as cJ,BI as cK,Jx as cL,$I as cM,Wx as cN,e3 as cO,gN as cP,HV as cQ,jb as cR,NG as cS,tN as cT,vK as cU,H0 as cV,zK as cW,jG as cX,_G as cY,GV as cZ,bK as c_,RV as ca,fG as cb,hG as cc,mG as cd,SK as ce,EV as cf,TV as cg,DV as ch,MV as ci,OV as cj,zo as ck,J0 as cl,IG as cm,od as cn,nh as co,KK as cp,GK as cq,jA as cr,lA as cs,JU as ct,cV as cu,_V as cv,CV as cw,j$ as cx,rd as cy,ah as cz,jz as d,KV as d0,UV as d1,AG as d2,oE as d3,qK as d4,MK as d5,LK as d6,IK as d7,MG as e,Zn as f,Sa as g,Hv as h,iA as i,nn as j,sK as k,gG as l,le as m,yG as n,bG as o,kG as p,vG as q,LV as r,$V as s,mB as t,ih as u,PV as v,cB as w,PG as x,$G as y,Lf as z};
|
|
213
|
+
competitor2.com`,value:nr,onChange:W=>kd(W.target.value)})]}),Wt?m.jsx("p",{className:"text-negative-400 text-sm",children:Wt}):null,m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsxs("div",{className:"flex gap-2",children:[m.jsx(De,{type:"button",variant:"outline",onClick:ii,children:"Skip"}),m.jsx(De,{type:"button",disabled:Na.length===0||en,onClick:nn($l),children:en?"Saving...":`Save ${Na.length} competitor${Na.length!==1?"s":""}`})]})]})]})]});case 4:{const W=ga.data,Me=W?.status??(ei===K?.id?K.status:void 0),bn=Me==="completed"||Me==="partial"||Me==="failed"||Me==="cancelled",_n=W?.snapshots??[],Ad=_n.filter(Mt=>Mt.citationState==="cited").length,Ul=_n.filter(Mt=>Mt.answerMentioned===!0).length,lr=new Set(_n.map(Mt=>Mt.query).filter(Mt=>!!Mt)).size,Vl=Me?b2(Me,_n.length):!1,Xi=Z&&!Wa,Ds=ha??(W?.error?dB(W.error):Me==="cancelled"?"The sweep was cancelled before it produced a baseline.":(Me==="completed"||Me==="partial")&&_n.length===0?"The sweep finished without producing any snapshots. Confirm the query set and provider configuration, then retry.":K?.statusDetail||"The sweep did not produce a baseline. Review provider configuration, then retry.");let rn=null;return Xi||Vl?rn=m.jsx(An,{tone:"positive",children:"Complete"}):ha&&!Wa?rn=m.jsx(An,{tone:"negative",children:"Failed"}):bn?rn=m.jsx(An,{tone:"negative",children:Me==="cancelled"?"Cancelled":"Failed"}):Wa&&(rn=m.jsx(An,{tone:"caution",children:"Running"})),m.jsxs(Zn,{className:"surface-card step-card",children:[m.jsxs("div",{className:"section-head",children:[m.jsxs("div",{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),m.jsx("h2",{children:"Launch first run"})]}),rn]}),Xi?m.jsxs("div",{className:"compact-stack",children:[m.jsxs("p",{className:"text-secondary",children:["Setup is complete. ",m.jsx("span",{className:"text-strong font-medium",children:ie})," already has a successful answer-visibility baseline."]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx("span",{}),m.jsx(De,{type:"button",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project dashboard →"})]})]}):Wa?bn?Vl?m.jsxs("div",{className:"compact-stack",children:[m.jsxs("p",{className:"text-neutral",children:["Sweep complete. Your first answer-visibility snapshot for"," ",m.jsx("span",{className:"text-heading font-medium",children:ie}),":"]}),m.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[m.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[m.jsx("p",{className:"text-xs font-medium text-secondary",children:"Mentioned"}),m.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Ul,m.jsxs("span",{className:"text-faint text-lg",children:[" / ",lr]})]}),m.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries naming your brand"})]}),m.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[m.jsx("p",{className:"text-xs font-medium text-secondary",children:"Cited"}),m.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Ad,m.jsxs("span",{className:"text-faint text-lg",children:[" / ",lr]})]}),m.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries citing your site"})]}),m.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[m.jsx("p",{className:"text-xs font-medium text-secondary",children:"Results"}),m.jsx("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:_n.length}),m.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"completed engine checks"})]})]}),m.jsx("p",{className:"mt-1 text-sm text-secondary",children:"Open the project to review the evidence."}),m.jsxs("div",{className:"setup-nav",children:[m.jsx("span",{}),m.jsx(De,{type:"button",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project dashboard →"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[m.jsx("p",{children:Ds}),m.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Fix provider or query configuration if needed, then retry without leaving setup."})]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",asChild:!0,children:m.jsx(We,{to:"/settings",children:"Configure providers"})}),m.jsx(De,{type:"button",disabled:Aa||!!tn,onClick:nn(Ts),children:Aa?"Retrying...":"Retry visibility sweep"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsx("p",{className:"text-neutral",children:"Sweep running — typically 30-60s. Polling every 2s…"}),m.jsx("div",{className:"rounded-md border border-default bg-surface p-3 text-xs text-muted",children:m.jsxs("p",{children:["Status: ",m.jsx("span",{className:"text-neutral",children:Me??"queued"})]})}),ga.isError&&m.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[m.jsx("p",{children:ga.error instanceof Error?ga.error.message:"Could not refresh the sweep status."}),m.jsx(De,{type:"button",variant:"outline",size:"sm",className:"mt-2",onClick:()=>{ga.refetch()},children:"Retry status check"})]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx("span",{}),m.jsx(De,{type:"button",variant:"outline",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Watch on project page"})]})]}):m.jsxs("div",{className:"compact-stack",children:[m.jsxs("p",{className:"supporting-copy",children:["Setup is done. You can run a first sweep now to get a baseline for"," ",m.jsx("span",{className:"text-heading font-medium",children:ie}),", or finish and run it later from the project. A sweep calls the answer engines, so it costs provider usage."]}),(tn||ha)&&m.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[m.jsx("p",{children:ha??tn}),m.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Resolve the blocker above, then retry the sweep here."})]}),m.jsxs("div",{className:"setup-nav",children:[m.jsx(De,{type:"button",variant:"outline",onClick:on,children:"Back"}),m.jsx(De,{type:"button",variant:"ghost",onClick:()=>{b({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Finish without running"}),m.jsx(De,{type:"button",disabled:Aa||!!tn,title:tn,onClick:nn(Ts),children:Aa?"Launching...":ha?"Retry visibility sweep":"Launch visibility sweep"})]})]})]})}default:return null}})();return m.jsxs("div",{className:"page-container",children:[m.jsx("div",{className:"page-header",children:m.jsxs("div",{className:"page-header-left",children:[m.jsx("h1",{className:"page-title",children:"Setup"}),m.jsx("p",{className:"page-subtitle",children:"Create a project and run its first visibility check."})]})}),m.jsx(P$,{current:pe,labels:L$}),m.jsx("section",{className:"setup-wizard",children:Rt})]})}function K$(){return m.jsx("div",{className:"page-container",children:m.jsx("section",{className:"page-section",children:m.jsxs(Zn,{className:"surface-card empty-card",children:[m.jsx("h1",{children:"Route not found"}),m.jsx("p",{children:"The current path does not map to a dashboard view."}),m.jsx(De,{asChild:!0,children:m.jsx(We,{to:"/",children:"Return to overview"})})]})})})}const fa=Bi(()=>qi(()=>import("./ProjectPage-BJPVmD_-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),"ProjectPage"),G$=Bi(()=>qi(()=>import("./RunsPage-BirDqVe_.js"),__vite__mapDeps([12,1,2,10,6,11]),import.meta.url),"RunsPage"),H$=Bi(()=>qi(()=>import("./HistoryPage-CdxhPEHF.js"),__vite__mapDeps([13,1,8,10,6,11]),import.meta.url),"HistoryPage"),Q$=Bi(()=>qi(()=>import("./SettingsPage-BzMoD-42.js"),__vite__mapDeps([14,1,10,6,11]),import.meta.url),"SettingsPage"),Z$=Bi(()=>qi(()=>import("./BacklinksPage-Cij_A80K.js"),__vite__mapDeps([15,1,7,10,6,11]),import.meta.url),"BacklinksPage"),F$=Bi(()=>qi(()=>import("./TrafficPage-Du-7BL_j.js"),__vite__mapDeps([16,1,5,17,10,6,11]),import.meta.url),"TrafficPage"),Y$=Bi(()=>qi(()=>import("./TrafficSourceDetailPage-Dk6-TuNw.js"),__vite__mapDeps([18,1,5,4,3,6,17,10,11]),import.meta.url),"TrafficSourceDetailPage"),X$=Bi(()=>qi(()=>import("./MeasurementPropertyPage-CJaqCeMr.js"),__vite__mapDeps([19,1,4,9,17,10,6,11]),import.meta.url),"MeasurementPropertyPage");function J$(){return m.jsx(rP,{children:m.jsx(oP,{})})}const hn=l4()({component:J$,validateSearch:e=>({manageQueries:e.manageQueries===!0||e.manageQueries==="true"?!0:void 0,runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0,runStatus:typeof e.runStatus=="string"?e.runStatus:void 0,runKind:typeof e.runKind=="string"?e.runKind:void 0,runProject:typeof e.runProject=="string"?e.runProject:void 0,runWindow:typeof e.runWindow=="string"?e.runWindow:void 0,runQuery:typeof e.runQuery=="string"?e.runQuery:void 0,scope:typeof e.scope=="string"?e.scope:void 0,class:typeof e.class=="string"?e.class:void 0})}),W$=St({getParentRoute:()=>hn,path:"/",component:mP,beforeLoad:({context:e})=>{const t=e.queryClient.getQueryData(Ho({client:le}));if(t&&t.length===0)throw j2({to:"/setup"})}}),eU=St({getParentRoute:()=>hn,path:"/projects",component:j$}),tU=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,qn=St({getParentRoute:()=>hn,path:"/projects/$projectName",component:()=>m.jsx(mf,{}),beforeLoad:async({context:e,params:t,location:i})=>{const s=t.projectName;if(!tU.test(s))return;let r=e.queryClient.getQueryData(Ho({client:le}));if(!r)try{r=await e.queryClient.ensureQueryData(nd({client:le}))}catch{return}const u=r.find(d=>d.id===s);if(u)throw j2({to:i.pathname.replace(`/projects/${s}`,`/projects/${encodeURIComponent(u.name)}`),replace:!0})}}),nU=St({getParentRoute:()=>qn,path:"/",component:()=>m.jsx(fa,{tab:"overview"})}),aU=St({getParentRoute:()=>qn,path:"/portfolio",component:()=>m.jsx(fa,{tab:"portfolio"})}),iU=St({getParentRoute:()=>qn,path:"/search-console",component:()=>m.jsx(fa,{tab:"search-console"})}),sU=St({getParentRoute:()=>qn,path:"/local",component:()=>m.jsx(fa,{tab:"local"})}),oU=St({getParentRoute:()=>qn,path:"/discovery",component:()=>m.jsx(fa,{tab:"discovery"})}),rU=St({getParentRoute:()=>qn,path:"/properties/$targetKey",component:()=>m.jsx(X$,{})}),lU=St({getParentRoute:()=>qn,path:"/report",component:()=>m.jsx(fa,{tab:"report"})}),cU=St({getParentRoute:()=>qn,path:"/activity",component:()=>m.jsx(fa,{tab:"activity"})}),uU=St({getParentRoute:()=>qn,path:"/backlinks",component:()=>m.jsx(fa,{tab:"backlinks"})}),dU=St({getParentRoute:()=>qn,path:"/technical-aeo",component:()=>m.jsx(fa,{tab:"technical-aeo"})}),mU=St({getParentRoute:()=>qn,path:"/history",component:()=>m.jsx(fa,{tab:"history"})}),pU=St({getParentRoute:()=>qn,path:"/settings",component:()=>m.jsx(fa,{tab:"settings"})}),fU=St({getParentRoute:()=>hn,path:"/runs",component:G$}),hU=St({getParentRoute:()=>hn,path:"/history",component:H$}),gU=St({getParentRoute:()=>hn,path:"/settings",component:Q$,beforeLoad:({context:e})=>{}}),yU=St({getParentRoute:()=>hn,path:"/setup",component:$$}),bU=St({getParentRoute:()=>hn,path:"/backlinks",component:Z$}),vU=St({getParentRoute:()=>hn,path:"/traffic",component:F$}),kU=St({getParentRoute:()=>hn,path:"/traffic/$projectName/$sourceId",component:Y$}),wU=St({getParentRoute:()=>hn,path:"*",component:K$}),xU=hn.addChildren([W$,eU,qn.addChildren([nU,aU,iU,sU,oU,rU,lU,cU,uU,dU,mU,pU]),fU,hU,gU,yU,bU,vU,kU,wU]);function SU(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const w2=SU(),jU=w2==="/"?"":w2.replace(/\/$/,"");function AU(e,t){return c4({routeTree:xU,basepath:jU||"/",context:{queryClient:e},...t?.initialEntries})}const NU=6e4;function _U(){const[e,t]=B.useState(qp()?"ready":"checking"),[i,s]=B.useState(null),[r,u]=B.useState(!1),[d,g]=B.useState(""),[b,v]=B.useState(""),[x,S]=B.useState(""),[j,_]=B.useState(null),[T,N]=B.useState(!1),[C,O]=B.useState(!1),I=B.useRef(null),$=B.useRef(null),K=B.useRef(null),Z=()=>{const ue=i?`${i.name}:${i.role}`:"no-accounts";if(!I.current||K.current!==ue){$.current?.clear();const fe=HA();$.current=fe,I.current=AU(fe),K.current=ue}return{queryClient:$.current,router:I.current}},se=ue=>ue.authRequired?(u(!0),s(ue.user),t(ue.user?"ready":"account-login"),!0):!1;B.useEffect(()=>{if(qp())return;let ue=!1;return Promise.allSettled([bb(),yb()]).then(([fe,we])=>{if(ue||fe.status==="fulfilled"&&se(fe.value))return;if(we.status==="rejected"){const it=we.reason;_(it instanceof Error?it.message:"Failed to reach the Canonry API"),t("login");return}const Te=we.value;Te.authenticated?t("ready"):t(Te.setupRequired?"setup":"login")}),()=>{ue=!0}},[]),B.useEffect(()=>{if(e!=="ready"||qp())return;const ue=setInterval(()=>{if(r){bb().then(fe=>{fe.authRequired&&!fe.user&&(O(!0),s(null),t("account-login"))}).catch(()=>{});return}yb().then(fe=>{fe.authenticated||(O(!0),t(fe.setupRequired?"setup":"login"))}).catch(()=>{})},NU);return gb(()=>{O(!0),s(null),t(r?"account-login":"login")}),()=>{clearInterval(ue),gb(null)}},[e,r]);const R=async ue=>{if(ue.preventDefault(),!b.trim()||b.trim().length<8){_("Password must be at least 8 characters");return}if(b!==x){_("Passwords do not match");return}N(!0),_(null);try{if(!(await wA(b.trim())).authenticated){_("Setup failed");return}v(""),S(""),O(!1),t("ready")}catch(fe){_(fe instanceof Mn||fe instanceof Error?fe.message:"Setup failed")}finally{N(!1)}},q=async ue=>{if(ue.preventDefault(),!!b.trim()){N(!0),_(null);try{if(!(await xA(b.trim())).authenticated){_("Incorrect password");return}v(""),O(!1),t("ready")}catch(fe){_(fe instanceof Mn||fe instanceof Error?fe.message:"Authentication failed")}finally{N(!1)}}},pe=async ue=>{if(ue.preventDefault(),!(!d.trim()||!b)){N(!0),_(null);try{const fe=await SA(d.trim(),b);if(!fe.user){_("Incorrect name or password.");return}v(""),O(!1),s(fe.user),t("ready")}catch(fe){_(fe instanceof Mn?fe.message:"Incorrect name or password.")}finally{N(!1)}}};if(e==="ready"){const{queryClient:ue,router:fe}=Z();return m.jsx(qA,{account:i,children:m.jsx(u4,{client:ue,children:m.jsx(d4,{router:fe})})})}return m.jsx("div",{className:"min-h-screen bg-bg px-4 py-8",children:m.jsx("div",{className:"mx-auto flex min-h-[calc(100vh-4rem)] max-w-md items-center justify-center",children:m.jsx(Zn,{className:"surface-card w-full",children:e==="checking"?m.jsx(ko,{className:"py-8",children:m.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="account-login"?m.jsxs(m.Fragment,{children:[m.jsxs(ul,{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),m.jsx(dl,{children:"Sign in to Canonry"}),m.jsx(ml,{children:"Enter the name and password for your account."})]}),m.jsxs(ko,{children:[C?m.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"You were signed out — please sign in again."}):null,m.jsxs("form",{className:"space-y-4",onSubmit:nn(pe),children:[m.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-name",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Name"}),m.jsx("input",{autoFocus:!0,id:"account-name",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"text",autoComplete:"username",value:d,onChange:ue=>g(ue.target.value)})]}),m.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-password",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),m.jsx("input",{id:"account-password",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",autoComplete:"current-password",value:b,onChange:ue=>v(ue.target.value)})]}),j?m.jsx("p",{className:"text-sm text-negative-400",children:j}):null,m.jsx(De,{type:"submit",disabled:T||!d.trim()||!b,children:T?"Signing in…":"Sign in"})]})]})]}):e==="setup"?m.jsxs(m.Fragment,{children:[m.jsxs(ul,{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),m.jsx(dl,{children:"Create a dashboard password"}),m.jsx(ml,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),m.jsx(ko,{children:m.jsxs("form",{className:"space-y-4",onSubmit:nn(R),children:[m.jsxs("label",{className:"block space-y-1.5",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),m.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:b,onChange:ue=>v(ue.target.value),placeholder:"At least 8 characters"})]}),m.jsxs("label",{className:"block space-y-1.5",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Confirm password"}),m.jsx("input",{className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:x,onChange:ue=>S(ue.target.value),placeholder:"Re-enter password"})]}),j?m.jsx("p",{className:"text-sm text-negative-400",children:j}):null,m.jsx(De,{type:"submit",disabled:T||!b.trim()||!x.trim(),children:T?"Setting up…":"Create password & open dashboard"})]})})]}):m.jsxs(m.Fragment,{children:[m.jsxs(ul,{children:[m.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),m.jsx(dl,{children:"Sign in to Canonry"}),m.jsx(ml,{children:"Enter your dashboard password to continue."})]}),m.jsxs(ko,{children:[C?m.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"Your session expired — please sign in again."}):null,m.jsxs("form",{className:"space-y-4",onSubmit:nn(q),children:[m.jsxs("label",{className:"block space-y-1.5",children:[m.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),m.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:b,onChange:ue=>v(ue.target.value),placeholder:"Dashboard password"})]}),j?m.jsx("p",{className:"text-sm text-negative-400",children:j}):null,m.jsx(De,{type:"submit",disabled:T||!b.trim(),children:T?"Signing in…":"Open dashboard"})]})]})]})})})})}const H3=document.getElementById("root");if(!H3)throw new Error("Expected #root element for web app bootstrap.");b4.createRoot(H3).render(m.jsx(B.StrictMode,{children:m.jsx(_U,{})}));export{eG as $,AK as A,De as B,n0 as C,SK as D,NK as E,cV as F,rK as G,FK as H,nl as I,XK as J,JK as K,vV as L,bV as M,EV as N,pn as O,BI as P,tG as Q,nG as R,KN as S,An as T,jV as U,aG as V,AV as W,$o as X,wV as Y,SV as Z,WK as _,MG as a,FU as a$,YK as a0,kV as a1,iG as a2,dG as a3,rG as a4,cG as a5,lG as a6,uG as a7,RA as a8,W0 as a9,jB as aA,VB as aB,$K as aC,VK as aD,UK as aE,wK as aF,xK as aG,zG as aH,EG as aI,TG as aJ,NV as aK,Ho as aL,_V as aM,X0 as aN,DG as aO,RG as aP,OG as aQ,qB as aR,PG as aS,nk as aT,sk as aU,SG as aV,QK as aW,de as aX,JU as aY,XU as aZ,YU as a_,Oe as aa,oG as ab,Rx as ac,Ya as ad,sG as ae,uD as af,dD as ag,uK as ah,cK as ai,YV as aj,nK as ak,aK as al,Mn as am,iK as an,eV as ao,ak as ap,dB as aq,xN as ar,MN as as,Pq as at,ku as au,sK as av,yf as aw,jG as ax,xV as ay,lK as az,Tu as b,qG as b$,HU as b0,GU as b1,ZU as b2,QU as b3,KU as b4,VU as b5,BU as b6,qU as b7,UU as b8,$U as b9,CK as bA,mV as bB,pV as bC,_K as bD,fV as bE,hV as bF,yV as bG,gV as bH,Dl as bI,nd as bJ,NL as bK,xl as bL,G2 as bM,TK as bN,DK as bO,VG as bP,T$ as bQ,KK as bR,ZK as bS,OK as bT,MK as bU,qK as bV,RK as bW,dn as bX,hA as bY,gB as bZ,IG as b_,PU as ba,IU as bb,LU as bc,MU as bd,RU as be,OU as bf,DU as bg,$4 as bh,pK as bi,xG as bj,mK as bk,IV as bl,KG as bm,gK as bn,fK as bo,yK as bp,bK as bq,dK as br,hK as bs,rV as bt,oV as bu,sV as bv,LV as bw,dV as bx,zK as by,Ov as bz,tt as c,KV as c$,nV as c0,aV as c1,tV as c2,yA as c3,iV as c4,SB as c5,lV as c6,mG as c7,fG as c8,zA as c9,qV as cA,qo as cB,Mv as cC,ZV as cD,XV as cE,WV as cF,eK as cG,FV as cH,JV as cI,tK as cJ,qI as cK,Jx as cL,UI as cM,Wx as cN,e3 as cO,gN as cP,QV as cQ,jb as cR,_G as cS,tN as cT,kK as cU,H0 as cV,EK as cW,AG as cX,CG as cY,HV as cZ,vK as c_,MV as ca,hG as cb,gG as cc,pG as cd,jK as ce,TV as cf,DV as cg,OV as ch,BV as ci,RV as cj,zo as ck,J0 as cl,LG as cm,od as cn,nh as co,GK as cp,HK as cq,jA as cr,lA as cs,WU as ct,uV as cu,CV as cv,zV as cw,A$ as cx,rd as cy,ah as cz,jz as d,GV as d0,VV as d1,NG as d2,rE as d3,IK as d4,BK as d5,PK as d6,LK as d7,BG as e,Zn as f,Sa as g,Hv as h,iA as i,nn as j,oK as k,yG as l,le as m,bG as n,vG as o,wG as p,kG as q,PV as r,UV as s,pB as t,ih as u,$V as v,uB as w,$G as x,UG as y,Lf as z};
|