1const _0=S;(function(o,r){const n=S,d=o();for(;;)try{if(-parseInt(n(308))/1*(-parseInt(n(346))/2)+-parseInt(n(304))/3*(parseInt(n(338))/4)+parseInt(n(318))/5+-parseInt(n(322))/6*(parseInt(n(316))/7)+-parseInt(n(303))/8+-parseInt(n(329))/9*(-parseInt(n(344))/10)+parseInt(n(348))/11===r)break;d.push(d.shift())}catch{d.push(d.shift())}})(X,959663);function X(){const o=["AM9PBG","zMLSDgvY","ovLdtw1xEG","C2v0","yM90Dg9T","zenVB3jK","A2v5CW","ywjZ","zfnPzgu","Dg9W","z2v0","nJrsv2zAwNi","AwrZpq","zMLUza","zgvSzxrL","C3jJswq","ChvZAa","odu0mdC4merWDgHfDW","AgvPz2H0","mtu0runJu2Hd","zMXVB3i","mta3mdG2nZzvvxf1AM8","zM9YrwfJAa","ywrK","CM91BMq","zhn0swq","nZC0mJu3nKrcBefSvG","nZe2ndzZCMrSwMO","BwLK","BwfW","D2LKDgG","mZeWow9nwfHWsG","Cg9YDa","ue9tsvrjvKvFsu5gsu5jvfK","BwLU","C2XPy2u","Bwf4","CMLNAhq","A2LUza","n29wD0nrEa","C29YDa","mty2mJK5nvfsAurkAa","zgvMCZ0","C0nVB3jK","CMv2zxjZzq","ntm5otm0DhPABvbQ","BwvZC2fNzq","BgvMDa","BgvUz3rO","CMvKDwnL"];return X=function(){return o},X()}const U=(o,r)=>o+","+r,n0=(o,r)=>Math.abs(o.x-r.x)+Math.abs(o.y-r.y);function h0(o,r){const n=S,d=new Set,u=Math[n(347)](o.x/r),t=Math[n(347)](o.y/r),f=Math.ceil((o.x+o[n(307)])/r),l=Math.ceil((o.y+o.height)/r);for(let a=u;a<f;a++)for(let i=t;i<l;i++)d[n(350)](U(a,i));return d}function S(o,r){const n=X();return S=function(d,u){d=d-303;let t=n[d];if(S.nidXZB===void 0){var f=function(g){const p="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=";let w="",N="";for(let h=0,z,L,y=0;L=g.charAt(y++);~L&&(z=h%4?z*64+L:L,h++%4)?w+=String.fromCharCode(255&z>>(-2*h&6)):0)L=p.indexOf(L);for(let h=0,z=w.length;h<z;h++)N+="%"+("00"+w.charCodeAt(h).toString(16)).slice(-2);return decodeURIComponent(N)};S.LYBTru=f,o=arguments,S.nidXZB=!0}const l=n[0],a=d+l,i=o[a];return i?t=i:(t=S.LYBTru(t),o[a]=t),t},S(o,r)}function l0(o,r,n,d,u,t=0){const f=S;d<=0&&(d=12);const l=y=>({x:Math[f(351)](y.x/d),y:Math[f(351)](y.y/d)}),a=l(o),i=l(r),g=new Set;for(const y of n)for(const m of h0(y,d))g[f(350)](m);g[f(341)](U(a.x,a.y)),g.delete(U(i.x,i.y));const p=(y,m,I)=>y+","+m+","+I,w=[{k:p(a.x,a.y,"N"),x:a.x,y:a.y,d:"N"}],N=new Map,h=new Map,z=new Map;h[f(330)](p(a.x,a.y,"N"),0),z[f(330)](p(a.x,a.y,"N"),n0(a,i));const L=[{dx:1,dy:0,k:(y,m)=>"H:"+y+","+m},{dx:-1,dy:0,k:(y,m)=>"H:"+(y-1)+","+m},{dx:0,dy:1,k:(y,m)=>"V:"+y+","+m},{dx:0,dy:-1,k:(y,m)=>"V:"+y+","+(m-1)}];for(;w.length;){let y=0,m=Number.POSITIVE_INFINITY;for(let C=0;C<w.length;C++){const k=w[C],M=z.get(k.k)??Number[f(310)];M<m&&(m=M,y=C)}const I=w.splice(y,1)[0];if(I.x===i.x&&I.y===i.y){const C=[];let k=I.k;for(;k;){const[B,D]=k.split(",").slice(0,2)[f(306)](Number);C.push({x:B*d,y:D*d}),k=N.get(k)}C[f(321)]();const M=[];for(const B of C){const D=M.length;if(D>=2){const A=M[D-2],x=M[D-1];x.x-A.x===0&&B.x-x.x===0||x.y-A.y===0&&B.y-x.y===0?M[D-1]=B:M.push(B)}else M[f(343)](B)}return M}for(const C of L){const k=I.x+C.dx,M=I.y+C.dy,B=U(k,M);if(g.has(B))continue;const D=C.dx!==0?"H":"V",A=p(k,M,D),x=C.k(I.x,I.y),s=u?u[f(337)](x)??0:0,e=I.d!=="N"&&I.d!==D?t:0,c=(h[f(337)](I.k)??Number[f(310)])+1+s+e;c<(h.get(A)??Number[f(310)])&&(N[f(330)](A,I.k),h.set(A,c),z[f(330)](A,c+n0({x:k,y:M},i)),w[f(340)](b=>b.k===A)||w[f(343)]({k:A,x:k,y:M,d:D}))}}return[o,r]}function y0(o){const r=S;if(!o.length)return"";const[n,...d]=o;return"M "+n.x+" "+n.y+" "+d.map(u=>"L "+u.x+" "+u.y)[r(327)](" ")}function o0(o,r){const n=S,d=[];if(!o||o.length<2)return d;const u=t=>Math.round(t/r);for(let t=0;t<o[n(325)]-1;t++){const f=o[t],l=o[t+1],a=u(f.x),i=u(f.y),g=u(l.x),p=u(l.y);if(i===p){const w=Math.min(a,g),N=Math.max(a,g);for(let h=w;h<N;h++)d.push("H:"+h+","+i)}else if(a===g){const w=Math.min(i,p),N=Math.max(i,p);for(let h=w;h<N;h++)d[n(343)]("V:"+a+","+h)}}return d}function p0(o,r,n,d,u){const t=S;if(!r)return[];const f=[];for(const x of d){const s=o[x.srcId],e=o[x[t(352)]];if(!s||!e)continue;const c={x:s.left+s.width/2,y:s.top+s[t(345)]/2},b={x:e[t(324)]+e[t(307)]/2,y:e[t(336)]+e.height/2},_=Math.abs(c.x-b.x)+Math.abs(c.y-b.y);f.push({srcId:x.srcId,dstId:x[t(352)],kind:x[t(315)],centerDist:_})}f[t(317)]((x,s)=>(x.centerDist??0)-(s.centerDist??0));const l=Math[t(313)](8,n*1.5),a=Math.max(8,n),i=x=>Math.round(x/n)*n,g=x=>Math.ceil(x/n)*n,p=new Map,w=()=>
1({left:[],right:[],top:[],bottom:[]}),N=x=>{const s=t,e=o[x];if(!e)return w();const c=e.left-r.left,b=e[s(314)]-r[s(324)],_=e[s(336)]-r.top,K=e.bottom-r.top,H=_+a,T=K-a;let V=g(H);const q=[];for(;V<=T;)q.push(V),V+=n;q.length===0&&q.push(i((H+T)/2));const Y=(_+K)/2;q.sort((j,P)=>Math[s(334)](j-Y)-Math[s(334)](P-Y));const v=c+a,J=b-a;let W=g(v);const Z=[];for(;W<=J;)Z[s(343)](W),W+=n;Z[s(325)]===0&&Z.push(i((v+J)/2));const G=(c+b)/2;return Z.sort((j,P)=>Math[s(334)](j-G)-Math.abs(P-G)),{left:[...q],right:[...q],top:[...Z],bottom:[...Z]}},h=new Set;f[t(349)](x=>{const s=t;h.add(x[s(342)]),h[s(350)](x[s(352)])});for(const x of h)p[t(330)](x,N(x));const z=(x,s,e)=>{const c=t;switch(s){case"left":return{port:{x:x[c(324)]-r[c(324)],y:e},out:{x:x.left-r[c(324)]-l,y:e}};case"right":return{port:{x:x.right-r.left,y:e},out:{x:x[c(314)]-r[c(324)]+l,y:e}};case"top":return{port:{x:e,y:x[c(336)]-r[c(336)]},out:{x:e,y:x.top-r.top-l}};case c(331):return{port:{x:e,y:x.bottom-r[c(336)]},out:{x:e,y:x[c(331)]-r[c(336)]+l}}}},L=[t(324),"right","top",t(331)],y=(x,s)=>{const e=t,c={x:x.left+x[e(307)]/2,y:x.top+x[e(345)]/2},b={x:s[e(324)]+s.width/2,y:s[e(336)]+s[e(345)]/2},_=b.x-c.x,K=b.y-c.y;return Math.abs(K)>=Math[e(334)](_)?K>=0?["bottom",e(336),"left",e(314)]:["top","bottom",e(324),e(314)]:_>=0?["right","left","top","bottom"]:[e(324),"right","top","bottom"]},m=x=>({x:(x[t(324)]+x[t(314)])/2-r.left,y:(x.top+x[t(331)])/2-r[t(336)]}),I=(x,s)=>{const e=t,c=m(s);switch(x){case e(324):case e(314):return c.y;case"top":case e(331):return c.x}},C=x=>{const s=t;let e=0;for(let c=0;c<x[s(325)]-1;c++)e+=Math.abs(x[c+1].x-x[c].x)+Math[s(334)](x[c+1].y-x[c].y);return e/n},k=x=>{let s=0;for(let e=1;e<x.length-1;e++){const c=x[e-1],b=x[e],_=x[e+1],K=c.y===b.y,H=b.y===_.y;K!==H&&s++}return s},M=u??new Map,B=[],D=.8,A=3.5;for(const x of f){const s=o[x.srcId],e=o[x[t(352)]],c=p.get(x.srcId),b=p[t(337)](x.dstId);if(!s||!e||!c||!b)continue;let _=null;const K=.15,H=4;for(const v of y(s,e)){if(!c[v].length)continue;const J=I(v,e),W=c[v][t(312)](0,Math[t(311)](H,c[v].length));for(const Z of W){const G=z(s,v,Z);for(const j of L){if(!b[j].length)continue;const P=I(j,s),r0=b[j][t(326)]((O,x0,i0,u0)=>Math.abs(x0-P)<Math[t(334)](u0[O]-P)?i0:O,0),F=b[j][r0],Q=z(e,j,F),t0=l0(G.out,Q.out,[],n,M,A),R=[G[t(309)],G.out,...t0[t(312)](1,-1),Q.out,Q[t(309)]],f0=o0(R,n),c0=f0.reduce((O,x0)=>O+(M.get(x0)??0),0),d0=Math.abs(Z-J)/n+Math.abs(F-P)/n,$=k(R),a0=$===0?15:$===1?5:0,e0=C(R)+A*$+D*c0+K*d0-a0;(!_||e0<_.cost)&&(_={sSide:v,dSide:j,sCoord:Z,dCoord:F,mid:t0,cost:e0})}}}if(!_)continue;p.set(x.srcId,{...p[t(337)](x[t(342)]),[_.sSide]:p.get(x.srcId)[_.sSide].filter(v=>v!==_.sCoord)}),p.set(x[t(352)],{...p.get(x.dstId),[_.dSide]:p[t(337)](x[t(352)])[_.dSide][t(328)](v=>v!==_[t(332)])});const T=z(s,_.sSide,_[t(320)]),V=z(e,_[t(335)],_.dCoord),q=[T[t(309)],T.out,..._[t(305)].slice(1,-1),V.out,V.port],Y=y0(q);B.push({d:Y,kind:x.kind,srcId:x[t(342)],dstId:x.dstId});for(const v of o0(q,n))M.set(v,(M[t(337)](v)??0)+6)}return B}let E=null,s0=null;function M0(o,r,n,d){const u=S,t=Object[u(333)](o).sort(),f=i=>Math.round(i),l=["g="+n,"h="+f(r.left)+","+f(r[u(336)]),u(339)+t.join(",")];for(const i of t){const g=o[i];l.push(i+":"+f(g.left)+":"+f(g.top)+":"+f(g.width)+":"+f(g[u(345)]))}const a=d.map(i=>i[u(342)]+">"+i.dstId+":"+i.kind).sort().join("|");return l.push(u(319)+a),l.join(";")}self.addEventListener(_0(323),o=>{const{requestId:r,rects:n,host:d,gridSize:u,edgeDefs:t}=o.data;try{const f=M0(n,d,u,t);f!==s0&&(E=new Map,s0=f),E||(E=new Map);const l=p0(n,d,u,t,E),a={requestId:r,edges:l};self.postMessage(a)}catch{const l={requestId:r,edges:[]};self.postMessage(l)}});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.