@matdata/yasgui-graph-plugin 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,944 @@
1
- var GraphPlugin=(()=>{var h=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var C=(t,e)=>{for(var n in e)h(t,n,{get:e[n],enumerable:!0})},z=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of E(e))!N.call(t,o)&&o!==n&&h(t,o,{get:()=>e[o],enumerable:!(r=k(e,o))||r.enumerable});return t};var $=t=>z(h({},"__esModule",{value:!0}),t);var O={};C(O,{default:()=>V});function m(t){let e=new Map;if(t&&t.getVariables){let r=t.getVariables();r&&r.prefixes&&Object.entries(r.prefixes).forEach(([o,s])=>{e.set(s,o)})}return Object.entries({"http://www.w3.org/1999/02/22-rdf-syntax-ns#":"rdf","http://www.w3.org/2000/01/rdf-schema#":"rdfs","http://www.w3.org/2001/XMLSchema#":"xsd","http://www.w3.org/2002/07/owl#":"owl"}).forEach(([r,o])=>{e.has(r)||e.set(r,o)}),e}function u(t,e){if(!t||typeof t!="string")return t;for(let[n,r]of e.entries())if(t.startsWith(n)){let o=t.substring(n.length);return`${r}:${o}`}return t}function g(t,e=50){return!t||typeof t!="string"||t.length<=e?t:t.substring(0,e-3)+"..."}function j(){return{autoResize:!0,width:"100%",height:"100%",physics:{enabled:!0,stabilization:{enabled:!0,iterations:200,updateInterval:25},barnesHut:{gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09}},interaction:{dragNodes:!0,dragView:!0,zoomView:!0,hover:!0,tooltipDelay:300},nodes:{shape:"dot",size:20,font:{size:14,color:"#000000",align:"center",vadjust:0,multi:!1},borderWidth:2,borderWidthSelected:3,labelHighlightBold:!0,fixed:{x:!1,y:!1}},edges:{arrows:{to:{enabled:!0,scaleFactor:.5}},smooth:{enabled:!0,type:"dynamic"},font:{size:12,align:"middle"}}}}function v(t){let e=[];return!t||!t.getBindings||t.getBindings().forEach(r=>{if(!r.subject||!r.predicate||!r.object)return;let o={subject:r.subject.value,predicate:r.predicate.value,object:{value:r.object.value,type:r.object.type||"uri",datatype:r.object.datatype,lang:r.object["xml:lang"]}};e.push(o)}),e}function w(t,e){return t.uri&&t.uri.startsWith("_:")?"#c5c5c5ff":t.type==="literal"?"#a6c8a6ff":e.some(r=>r.predicate==="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"&&r.object.value===t.uri)?"#e15b13ff":"#97C2FC"}function B(t,e){let n=new Map,r=1;return t.forEach(o=>{if(!n.has(o.subject)){let i=o.subject.startsWith("_:"),c=i?o.subject:g(u(o.subject,e));n.set(o.subject,{id:r++,uri:o.subject,label:c,color:w({uri:o.subject,type:"uri"},t),type:"uri",fullValue:o.subject,title:i?o.subject:u(o.subject,e),font:{vadjust:-30,align:"center"}})}let s=o.object.value;if(!n.has(s)){let i=o.object.type==="literal",c=!i&&s.startsWith("_:"),l,f,p;i?(l=g(s),f=s,p=o.object.datatype?`"${s}"^^${u(o.object.datatype,e)}`:`"${s}"`):c?(l=s,f=s,p=s):(l=g(u(s,e)),f=s,p=u(s,e)),n.set(s,{id:r++,uri:i?null:s,label:l,color:w({uri:s,type:i?"literal":"uri"},t),type:i?"literal":"uri",fullValue:f,title:p,font:{vadjust:-30,align:"center"}})}}),n}function S(t,e,n){let r=[],o=new Set;return t.forEach(s=>{let i=e.get(s.subject),c=e.get(s.object.value);if(!i||!c)return;let l=`${i.id}-${s.predicate}-${c.id}`;o.has(l)||(o.add(l),r.push({id:`edge_${i.id}_${c.id}_${r.length}`,from:i.id,to:c.id,label:g(u(s.predicate,n)),predicate:s.predicate,title:u(s.predicate,n),arrows:"to"}))}),r}function x(t,e){let n=B(t,e),r=S(t,n,e);return{nodes:Array.from(n.values()),edges:r}}function L(){if(typeof window!="undefined"&&window.vis)return window.vis;throw new Error("vis-network not found. Load vis-network before GraphPlugin in dev mode.")}var y=class{constructor(e){this.yasr=e,this.network=null}static get priority(){return 20}static get label(){return"Graph"}canHandleResults(){if(!this.yasr||!this.yasr.results)return!1;let e=this.yasr.results;if(e.getBindings&&typeof e.getBindings=="function"){let n=e.getBindings();if(n&&n.length>0){let r=n[0];return r.subject!==void 0&&r.predicate!==void 0&&r.object!==void 0}}return!1}draw(){this.yasr.resultsEl.innerHTML="";try{let e=v(this.yasr.results);if(!e||e.length===0){this.yasr.resultsEl.innerHTML='<div style="padding: 20px; text-align: center; color: #666;">No graph data to visualize</div>';return}let n=m(this.yasr.results),{nodes:r,edges:o}=x(e,n),s=document.createElement("div");s.style.width="100%",s.style.height="600px",s.style.position="relative",s.style.overflow="hidden",this.yasr.resultsEl.appendChild(s);let{Network:i,DataSet:c}=L(),l=new c(r),f=new c(o),p=j();this.network=new i(s,{nodes:l,edges:f},p),this.networkReady=!1,this.network.on("stabilizationIterationsDone",()=>{this.network.setOptions({physics:{enabled:!0}}),this.networkReady=!0});let d=document.createElement("div");d.style.position="absolute",d.style.top="10px",d.style.right="10px",d.style.zIndex="10000",d.style.display="flex",d.style.gap="10px",d.style.pointerEvents="auto",s.appendChild(d);let a=document.createElement("button");a.textContent="Zoom to Fit",a.style.padding="8px 12px",a.style.background="#4CAF50",a.style.color="white",a.style.border="none",a.style.borderRadius="4px",a.style.cursor="pointer",a.style.fontSize="14px",a.style.boxShadow="0 2px 4px rgba(0,0,0,0.2)",a.onmouseover=()=>a.style.background="#45a049",a.onmouseout=()=>a.style.background="#4CAF50",a.onclick=()=>{this.network&&this.network.fit({animation:{duration:300,easingFunction:"easeInOutQuad"}})},d.appendChild(a),e.length>1e3&&console.warn("Large graph detected (>1000 triples). Rendering may be slow.")}catch(e){console.error("Error rendering graph:",e),this.yasr.resultsEl.innerHTML='<div style="padding: 20px; color: red;">Error rendering graph. See console for details.</div>'}}getIcon(){let e=document.createElement("span");return e.className="fas fa-project-diagram",e.setAttribute("aria-label","Graph visualization"),e}},b=y;typeof window!="undefined"&&window.Yasgui&&window.Yasgui.Yasr&&window.Yasgui.Yasr.registerPlugin("Graph",b);var V=b;return $(O);})();
1
+ var GraphPlugin=(()=>{var oC=Object.defineProperty;var Gh=Object.getOwnPropertyDescriptor;var Vh=Object.getOwnPropertyNames;var jh=Object.prototype.hasOwnProperty;var Wh=(I,g)=>{for(var e in g)oC(I,e,{get:g[e],enumerable:!0})},Yh=(I,g,e,t)=>{if(g&&typeof g=="object"||typeof g=="function")for(let A of Vh(g))!jh.call(I,A)&&A!==e&&oC(I,A,{get:()=>g[A],enumerable:!(t=Gh(g,A))||t.enumerable});return I};var _h=I=>Yh(oC({},"__esModule",{value:!0}),I);var GM={};Wh(GM,{default:()=>LM});function Mo(I){let g=new Map;if(I&&I.getPrefixes){let t=I.getPrefixes();t&&typeof t=="object"&&Object.entries(t).forEach(([A,C])=>{C&&A&&g.set(C,A)})}return Object.entries({"http://www.w3.org/1999/02/22-rdf-syntax-ns#":"rdf","http://www.w3.org/2000/01/rdf-schema#":"rdfs","http://www.w3.org/2001/XMLSchema#":"xsd","http://www.w3.org/2002/07/owl#":"owl"}).forEach(([t,A])=>{g.has(t)||g.set(t,A)}),g}function de(I,g){if(!I||typeof I!="string")return I;for(let[e,t]of g.entries())if(I.startsWith(e)){let A=I.substring(e.length);return`${t}:${A}`}return I}function Pt(I,g=50){return!I||typeof I!="string"||I.length<=g?I:I.substring(0,g-3)+"..."}function Fo(){return{autoResize:!0,width:"100%",height:"100%",physics:{enabled:!0,stabilization:{enabled:!0,iterations:200,updateInterval:25},barnesHut:{gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09}},interaction:{dragNodes:!0,dragView:!0,zoomView:!0,hover:!0,tooltipDelay:300},nodes:{shape:"dot",size:20,font:{size:14,color:"#000000",align:"center",vadjust:0,multi:!1},borderWidth:2,borderWidthSelected:3,labelHighlightBold:!0,fixed:{x:!1,y:!1}},edges:{arrows:{to:{enabled:!0,scaleFactor:.5}},smooth:{enabled:!0,type:"dynamic"},font:{size:12,align:"middle"}}}}function Bo(I){let g=[];return!I||!I.getBindings||I.getBindings().forEach(t=>{if(!t.subject||!t.predicate||!t.object)return;let A={subject:t.subject.value,predicate:t.predicate.value,object:{value:t.object.value,type:t.object.type||"uri",datatype:t.object.datatype,lang:t.object["xml:lang"]}};g.push(A)}),g}function sC(I,g){return I.uri&&I.uri.startsWith("_:")?"#c5c5c5ff":I.type==="literal"?"#a6c8a6ff":g.some(t=>t.predicate==="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"&&t.object.value===I.uri)?"#e15b13ff":"#97C2FC"}function Kh(I,g){let e=new Map,t=1;return I.forEach(A=>{if(!e.has(A.subject)){let i=A.subject.startsWith("_:"),n=i?A.subject:Pt(de(A.subject,g));e.set(A.subject,{id:t++,uri:A.subject,label:n,color:sC({uri:A.subject,type:"uri"},I),type:"uri",fullValue:A.subject,title:i?A.subject:de(A.subject,g),font:{vadjust:-30,align:"center"}})}let C=A.object.value;if(!e.has(C)){let i=A.object.type==="literal",n=!i&&C.startsWith("_:"),o,s,r;i?(o=Pt(C),s=C,r=A.object.datatype?`"${C}"^^${de(A.object.datatype,g)}`:`"${C}"`):n?(o=C,s=C,r=C):(o=Pt(de(C,g)),s=C,r=de(C,g)),e.set(C,{id:t++,uri:i?null:C,label:o,color:sC({uri:C,type:i?"literal":"uri"},I),type:i?"literal":"uri",fullValue:s,title:r,font:{vadjust:-30,align:"center"}})}}),e}function Uh(I,g,e){let t=[],A=new Set;return I.forEach(C=>{let i=g.get(C.subject),n=g.get(C.object.value);if(!i||!n)return;let o=`${i.id}-${C.predicate}-${n.id}`;A.has(o)||(A.add(o),t.push({id:`edge_${i.id}_${n.id}_${t.length}`,from:i.id,to:n.id,label:Pt(de(C.predicate,e)),predicate:C.predicate,title:de(C.predicate,e),arrows:"to"}))}),t}function zo(I,g){let e=Kh(I,g),t=Uh(I,e,g);return{nodes:Array.from(e.values()),edges:t}}var rC=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function D(I){return I&&I.__esModule&&Object.prototype.hasOwnProperty.call(I,"default")?I.default:I}var FA=function(I){return I&&I.Math===Math&&I},X=FA(typeof globalThis=="object"&&globalThis)||FA(typeof window=="object"&&window)||FA(typeof self=="object"&&self)||FA(typeof rC=="object"&&rC)||function(){return this}()||rC||Function("return this")(),z=function(I){try{return!!I()}catch(g){return!0}},Hh=z,eA=!Hh(function(){var I=function(){}.bind();return typeof I!="function"||I.hasOwnProperty("prototype")}),Qh=eA,Ra=Function.prototype,Zo=Ra.apply,Lo=Ra.call,VI=typeof Reflect=="object"&&Reflect.apply||(Qh?Lo.bind(Zo):function(){return Lo.apply(Zo,arguments)}),Na=eA,Sa=Function.prototype,ci=Sa.call,Xh=Na&&Sa.bind.bind(ci,ci),Z=Na?Xh:function(I){return function(){return ci.apply(I,arguments)}},ka=Z,Jh=ka({}.toString),$h=ka("".slice),se=function(I){return $h(Jh(I),8,-1)},qh=se,gc=Z,_n=function(I){if(qh(I)==="Function")return gc(I)},ui=typeof document=="object"&&document.all,ec=typeof ui=="undefined"&&ui!==void 0,Ma={all:ui,IS_HTMLDDA:ec},Fa=Ma,tc=Fa.all,lg=Fa.IS_HTMLDDA?function(I){return typeof I=="function"||I===tc}:function(I){return typeof I=="function"},tA={},Ac=z,ig=!Ac(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),Ic=eA,BA=Function.prototype.call,jg=Ic?BA.bind(BA):function(){return BA.apply(BA,arguments)},AA={},Ba={}.propertyIsEnumerable,za=Object.getOwnPropertyDescriptor,Cc=za&&!Ba.call({1:2},1);AA.f=Cc?function(g){var e=za(this,g);return!!e&&e.enumerable}:Ba;var IA=function(I,g){return{enumerable:!(I&1),configurable:!(I&2),writable:!(I&4),value:g}},ic=Z,nc=z,oc=se,aC=Object,sc=ic("".split),jI=nc(function(){return!aC("z").propertyIsEnumerable(0)})?function(I){return oc(I)==="String"?sc(I,""):aC(I)}:aC,ft=function(I){return I==null},rc=ft,ac=TypeError,CA=function(I){if(rc(I))throw new ac("Can't call method on "+I);return I},dc=jI,lc=CA,Wg=function(I){return dc(lc(I))},Go=lg,Za=Ma,hc=Za.all,cg=Za.IS_HTMLDDA?function(I){return typeof I=="object"?I!==null:Go(I)||I===hc}:function(I){return typeof I=="object"?I!==null:Go(I)},L={},dC=L,lC=X,cc=lg,Vo=function(I){return cc(I)?I:void 0},Yg=function(I,g){return arguments.length<2?Vo(dC[I])||Vo(lC[I]):dC[I]&&dC[I][g]||lC[I]&&lC[I][g]},uc=Z,J=uc({}.isPrototypeOf),iA=typeof navigator!="undefined"&&String(navigator.userAgent)||"",La=X,hC=iA,jo=La.process,Wo=La.Deno,Yo=jo&&jo.versions||Wo&&Wo.version,_o=Yo&&Yo.v8,Bg,lI;_o&&(Bg=_o.split("."),lI=Bg[0]>0&&Bg[0]<4?1:+(Bg[0]+Bg[1]));!lI&&hC&&(Bg=hC.match(/Edge\/(\d+)/),(!Bg||Bg[1]>=74)&&(Bg=hC.match(/Chrome\/(\d+)/),Bg&&(lI=+Bg[1])));var nA=lI,Ko=nA,fc=z,pc=X,mc=pc.String,pt=!!Object.getOwnPropertySymbols&&!fc(function(){var I=Symbol("symbol detection");return!mc(I)||!(Object(I)instanceof Symbol)||!Symbol.sham&&Ko&&Ko<41}),vc=pt,Ga=vc&&!Symbol.sham&&typeof Symbol.iterator=="symbol",bc=Yg,yc=lg,wc=J,Ec=Ga,Tc=Object,oA=Ec?function(I){return typeof I=="symbol"}:function(I){var g=bc("Symbol");return yc(g)&&wc(g.prototype,Tc(I))},xc=String,sA=function(I){try{return xc(I)}catch(g){return"Object"}},Oc=lg,Pc=sA,Dc=TypeError,Ye=function(I){if(Oc(I))return I;throw new Dc(Pc(I)+" is not a function")},Rc=Ye,Nc=ft,Kn=function(I,g){var e=I[g];return Nc(e)?void 0:Rc(e)},cC=jg,uC=lg,fC=cg,Sc=TypeError,kc=function(I,g){var e,t;if(g==="string"&&uC(e=I.toString)&&!fC(t=cC(e,I))||uC(e=I.valueOf)&&!fC(t=cC(e,I))||g!=="string"&&uC(e=I.toString)&&!fC(t=cC(e,I)))return t;throw new Sc("Can't convert object to primitive value")},Va={exports:{}},Uo=X,Mc=Object.defineProperty,Fc=function(I,g){try{Mc(Uo,I,{value:g,configurable:!0,writable:!0})}catch(e){Uo[I]=g}return g},Bc=X,zc=Fc,Ho="__core-js_shared__",Zc=Bc[Ho]||zc(Ho,{}),Un=Zc,Qo=Un;(Va.exports=function(I,g){return Qo[I]||(Qo[I]=g!==void 0?g:{})})("versions",[]).push({version:"3.33.0",mode:"pure",copyright:"\xA9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE",source:"https://github.com/zloirock/core-js"});var mt=Va.exports,Lc=CA,Gc=Object,xg=function(I){return Gc(Lc(I))},Vc=Z,jc=xg,Wc=Vc({}.hasOwnProperty),ng=Object.hasOwn||function(g,e){return Wc(jc(g),e)},Yc=Z,_c=0,Kc=Math.random(),Uc=Yc(1 .toString),WI=function(I){return"Symbol("+(I===void 0?"":I)+")_"+Uc(++_c+Kc,36)},Hc=X,Qc=mt,Xo=ng,Xc=WI,Jc=pt,$c=Ga,It=Hc.Symbol,pC=Qc("wks"),qc=$c?It.for||It:It&&It.withoutSetter||Xc,gg=function(I){return Xo(pC,I)||(pC[I]=Jc&&Xo(It,I)?It[I]:qc("Symbol."+I)),pC[I]},gu=jg,Jo=cg,$o=oA,eu=Kn,tu=kc,Au=gg,Iu=TypeError,Cu=Au("toPrimitive"),iu=function(I,g){if(!Jo(I)||$o(I))return I;var e=eu(I,Cu),t;if(e){if(g===void 0&&(g="default"),t=gu(e,I,g),!Jo(t)||$o(t))return t;throw new Iu("Can't convert object to primitive value")}return g===void 0&&(g="number"),tu(I,g)},nu=iu,ou=oA,YI=function(I){var g=nu(I,"string");return ou(g)?g:g+""},su=X,qo=cg,fi=su.document,ru=qo(fi)&&qo(fi.createElement),ja=function(I){return ru?fi.createElement(I):{}},au=ig,du=z,lu=ja,Wa=!au&&!du(function(){return Object.defineProperty(lu("div"),"a",{get:function(){return 7}}).a!==7}),hu=ig,cu=jg,uu=AA,fu=IA,pu=Wg,mu=YI,vu=ng,bu=Wa,gs=Object.getOwnPropertyDescriptor;tA.f=hu?gs:function(g,e){if(g=pu(g),e=mu(e),bu)try{return gs(g,e)}catch(t){}if(vu(g,e))return fu(!cu(uu.f,g,e),g[e])};var yu=z,wu=lg,Eu=/#|\.prototype\./,rA=function(I,g){var e=xu[Tu(I)];return e===Pu?!0:e===Ou?!1:wu(g)?yu(g):!!g},Tu=rA.normalize=function(I){return String(I).replace(Eu,".").toLowerCase()},xu=rA.data={},Ou=rA.NATIVE="N",Pu=rA.POLYFILL="P",Du=rA,es=_n,Ru=Ye,Nu=eA,Su=es(es.bind),aA=function(I,g){return Ru(I),g===void 0?I:Nu?Su(I,g):function(){return I.apply(g,arguments)}},Og={},ku=ig,Mu=z,Ya=ku&&Mu(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),Fu=cg,Bu=String,zu=TypeError,re=function(I){if(Fu(I))return I;throw new zu(Bu(I)+" is not an object")},Zu=ig,Lu=Wa,Gu=Ya,zA=re,ts=YI,Vu=TypeError,mC=Object.defineProperty,ju=Object.getOwnPropertyDescriptor,vC="enumerable",bC="configurable",yC="writable";Og.f=Zu?Gu?function(g,e,t){if(zA(g),e=ts(e),zA(t),typeof g=="function"&&e==="prototype"&&"value"in t&&yC in t&&!t[yC]){var A=ju(g,e);A&&A[yC]&&(g[e]=t.value,t={configurable:bC in t?t[bC]:A[bC],enumerable:vC in t?t[vC]:A[vC],writable:!1})}return mC(g,e,t)}:mC:function(g,e,t){if(zA(g),e=ts(e),zA(t),Lu)try{return mC(g,e,t)}catch(A){}if("get"in t||"set"in t)throw new Vu("Accessors not supported");return"value"in t&&(g[e]=t.value),g};var Wu=ig,Yu=Og,_u=IA,vt=Wu?function(I,g,e){return Yu.f(I,g,_u(1,e))}:function(I,g,e){return I[g]=e,I},ZA=X,Ku=VI,Uu=_n,Hu=lg,Qu=tA.f,Xu=Du,$e=L,Ju=aA,qe=vt,As=ng,$u=function(I){var g=function(e,t,A){if(this instanceof g){switch(arguments.length){case 0:return new I;case 1:return new I(e);case 2:return new I(e,t)}return new I(e,t,A)}return Ku(I,this,arguments)};return g.prototype=I.prototype,g},R=function(I,g){var e=I.target,t=I.global,A=I.stat,C=I.proto,i=t?ZA:A?ZA[e]:(ZA[e]||{}).prototype,n=t?$e:$e[e]||qe($e,e,{})[e],o=n.prototype,s,r,a,d,l,h,c,p,u;for(d in g)s=Xu(t?d:e+(A?".":"#")+d,I.forced),r=!s&&i&&As(i,d),h=n[d],r&&(I.dontCallGetSet?(u=Qu(i,d),c=u&&u.value):c=i[d]),l=r&&c?c:g[d],!(r&&typeof h==typeof l)&&(I.bind&&r?p=Ju(l,ZA):I.wrap&&r?p=$u(l):C&&Hu(l)?p=Uu(l):p=l,(I.sham||l&&l.sham||h&&h.sham)&&qe(p,"sham",!0),qe(n,d,p),C&&(a=e+"Prototype",As($e,a)||qe($e,a,{}),qe($e[a],d,l),I.real&&o&&(s||!o[d])&&qe(o,d,l)))},qu=Math.ceil,gf=Math.floor,ef=Math.trunc||function(g){var e=+g;return(e>0?gf:qu)(e)},tf=ef,_I=function(I){var g=+I;return g!==g||g===0?0:tf(g)},Af=_I,If=Math.max,Cf=Math.min,dA=function(I,g){var e=Af(I);return e<0?If(e+g,0):Cf(e,g)},nf=_I,of=Math.min,sf=function(I){return I>0?of(nf(I),9007199254740991):0},rf=sf,Sg=function(I){return rf(I.length)},af=Wg,df=dA,lf=Sg,Is=function(I){return function(g,e,t){var A=af(g),C=lf(A),i=df(t,C),n;if(I&&e!==e){for(;C>i;)if(n=A[i++],n!==n)return!0}else for(;C>i;i++)if((I||i in A)&&A[i]===e)return I||i||0;return!I&&-1}},Hn={includes:Is(!0),indexOf:Is(!1)},lA={},hf=Z,wC=ng,cf=Wg,uf=Hn.indexOf,ff=lA,Cs=hf([].push),_a=function(I,g){var e=cf(I),t=0,A=[],C;for(C in e)!wC(ff,C)&&wC(e,C)&&Cs(A,C);for(;g.length>t;)wC(e,C=g[t++])&&(~uf(A,C)||Cs(A,C));return A},Qn=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],pf=_a,mf=Qn,hA=Object.keys||function(g){return pf(g,mf)},cA={};cA.f=Object.getOwnPropertySymbols;var is=ig,vf=Z,bf=jg,yf=z,EC=hA,wf=cA,Ef=AA,Tf=xg,xf=jI,gt=Object.assign,ns=Object.defineProperty,Of=vf([].concat),Pf=!gt||yf(function(){if(is&&gt({b:1},gt(ns({},"a",{enumerable:!0,get:function(){ns(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var I={},g={},e=Symbol("assign detection"),t="abcdefghijklmnopqrst";return I[e]=7,t.split("").forEach(function(A){g[A]=A}),gt({},I)[e]!==7||EC(gt({},g)).join("")!==t})?function(g,e){for(var t=Tf(g),A=arguments.length,C=1,i=wf.f,n=Ef.f;A>C;)for(var o=xf(arguments[C++]),s=i?Of(EC(o),i(o)):EC(o),r=s.length,a=0,d;r>a;)d=s[a++],(!is||bf(n,o,d))&&(t[d]=o[d]);return t}:gt,Df=R,os=Pf;Df({target:"Object",stat:!0,arity:2,forced:Object.assign!==os},{assign:os});var Rf=L,Nf=Rf.Object.assign,Sf=Nf,kf=Sf,Mf=kf,q=D(Mf),Ff=Z,KI=Ff([].slice),Ka=Z,Bf=Ye,zf=cg,Zf=ng,ss=KI,Lf=eA,Ua=Function,Gf=Ka([].concat),Vf=Ka([].join),TC={},jf=function(I,g,e){if(!Zf(TC,g)){for(var t=[],A=0;A<g;A++)t[A]="a["+A+"]";TC[g]=Ua("C,a","return new C("+Vf(t,",")+")")}return TC[g](I,e)},Wf=Lf?Ua.bind:function(g){var e=Bf(this),t=e.prototype,A=ss(arguments,1),C=function(){var n=Gf(A,ss(arguments));return this instanceof C?jf(e,n.length,n):e.apply(g,n)};return zf(t)&&(C.prototype=t),C},Yf=R,rs=Wf;Yf({target:"Function",proto:!0,forced:Function.bind!==rs},{bind:rs});var _f=L,Ig=function(I){return _f[I+"Prototype"]},Kf=Ig,Uf=Kf("Function").bind,Hf=J,Qf=Uf,xC=Function.prototype,Xf=function(I){var g=I.bind;return I===xC||Hf(xC,I)&&g===xC.bind?Qf:g},Jf=Xf,$f=Jf,qf=$f,b=D(qf);function Xn(I,g,e,t){I.beginPath(),I.arc(g,e,t,0,2*Math.PI,!1),I.closePath()}function gp(I,g,e,t){I.beginPath(),I.rect(g-t,e-t,t*2,t*2),I.closePath()}function ep(I,g,e,t){I.beginPath(),t*=1.15,e+=.275*t;let A=t*2,C=A/2,i=Math.sqrt(3)/6*A,n=Math.sqrt(A*A-C*C);I.moveTo(g,e-(n-i)),I.lineTo(g+C,e+i),I.lineTo(g-C,e+i),I.lineTo(g,e-(n-i)),I.closePath()}function tp(I,g,e,t){I.beginPath(),t*=1.15,e-=.275*t;let A=t*2,C=A/2,i=Math.sqrt(3)/6*A,n=Math.sqrt(A*A-C*C);I.moveTo(g,e+(n-i)),I.lineTo(g+C,e-i),I.lineTo(g-C,e-i),I.lineTo(g,e+(n-i)),I.closePath()}function Ap(I,g,e,t){I.beginPath(),t*=.82,e+=.1*t;for(let A=0;A<10;A++){let C=A%2===0?t*1.3:t*.5;I.lineTo(g+C*Math.sin(A*2*Math.PI/10),e-C*Math.cos(A*2*Math.PI/10))}I.closePath()}function Ip(I,g,e,t){I.beginPath(),I.lineTo(g,e+t),I.lineTo(g+t,e),I.lineTo(g,e-t),I.lineTo(g-t,e),I.closePath()}function Ha(I,g,e,t,A,C){let i=Math.PI/180;t-2*C<0&&(C=t/2),A-2*C<0&&(C=A/2),I.beginPath(),I.moveTo(g+C,e),I.lineTo(g+t-C,e),I.arc(g+t-C,e+C,C,i*270,i*360,!1),I.lineTo(g+t,e+A-C),I.arc(g+t-C,e+A-C,C,0,i*90,!1),I.lineTo(g+C,e+A),I.arc(g+C,e+A-C,C,i*90,i*180,!1),I.lineTo(g,e+C),I.arc(g+C,e+C,C,i*180,i*270,!1),I.closePath()}function pi(I,g,e,t,A){let C=.5522848,i=t/2*C,n=A/2*C,o=g+t,s=e+A,r=g+t/2,a=e+A/2;I.beginPath(),I.moveTo(g,a),I.bezierCurveTo(g,a-n,r-i,e,r,e),I.bezierCurveTo(r+i,e,o,a-n,o,a),I.bezierCurveTo(o,a+n,r+i,s,r,s),I.bezierCurveTo(r-i,s,g,a+n,g,a),I.closePath()}function Qa(I,g,e,t,A){let C=.3333333333333333,i=t,n=A*C,o=.5522848,s=i/2*o,r=n/2*o,a=g+i,d=e+n,l=g+i/2,h=e+n/2,c=e+(A-n/2),p=e+A;I.beginPath(),I.moveTo(a,h),I.bezierCurveTo(a,h+r,l+s,d,l,d),I.bezierCurveTo(l-s,d,g,h+r,g,h),I.bezierCurveTo(g,h-r,l-s,e,l,e),I.bezierCurveTo(l+s,e,a,h-r,a,h),I.lineTo(a,c),I.bezierCurveTo(a,c+r,l+s,p,l,p),I.bezierCurveTo(l-s,p,g,c+r,g,c),I.lineTo(g,h)}function Xa(I,g,e,t,A,C){I.beginPath(),I.moveTo(g,e);let i=C.length,n=t-g,o=A-e,s=o/n,r=Math.sqrt(n*n+o*o),a=0,d=!0,l=0,h=+C[0];for(;r>=.1;)h=+C[a++%i],h>r&&(h=r),l=Math.sqrt(h*h/(1+s*s)),l=n<0?-l:l,g+=l,e+=s*l,d===!0?I.lineTo(g,e):I.moveTo(g,e),r-=h,d=!d}function Cp(I,g,e,t){I.beginPath();let A=6,C=Math.PI*2/A;I.moveTo(g+t,e);for(let i=1;i<A;i++)I.lineTo(g+t*Math.cos(C*i),e+t*Math.sin(C*i));I.closePath()}var as={circle:Xn,dashedLine:Xa,database:Qa,diamond:Ip,ellipse:pi,ellipse_vis:pi,hexagon:Cp,roundRect:Ha,square:gp,star:Ap,triangle:ep,triangleDown:tp};function ip(I){return Object.prototype.hasOwnProperty.call(as,I)?as[I]:function(g){for(var e=arguments.length,t=new Array(e>1?e-1:0),A=1;A<e;A++)t[A-1]=arguments[A];CanvasRenderingContext2D.prototype[I].call(g,t)}}function _e(I,g){g===void 0&&(g={});var e=g.insertAt;if(!(!I||typeof document=="undefined")){var t=document.head||document.getElementsByTagName("head")[0],A=document.createElement("style");A.type="text/css",e==="top"&&t.firstChild?t.insertBefore(A,t.firstChild):t.appendChild(A),A.styleSheet?A.styleSheet.cssText=I:A.appendChild(document.createTextNode(I))}}var np=`.vis-overlay {
2
+ position: absolute;
3
+ top: 0px;
4
+ right: 0px;
5
+ bottom: 0px;
6
+ left: 0px;
7
+
8
+ /* Must be displayed above for example selected Timeline items */
9
+ z-index: 10;
10
+ }
11
+
12
+ .vis-active {
13
+ box-shadow: 0 0 10px #86d5f8;
14
+ }
15
+ `;_e(np);var op=`/* override some bootstrap styles screwing up the timelines css */
16
+
17
+ .vis [class*="span"] {
18
+ min-height: 0;
19
+ width: auto;
20
+ }
21
+ `;_e(op);var sp=`div.vis-color-picker {
22
+ position: absolute;
23
+ top: 0px;
24
+ left: 30px;
25
+ margin-top: -140px;
26
+ margin-left: 30px;
27
+ width: 310px;
28
+ height: 444px;
29
+ z-index: 1;
30
+ padding: 10px;
31
+ border-radius: 15px;
32
+ background-color: #ffffff;
33
+ display: none;
34
+ box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 10px 0px;
35
+ }
36
+
37
+ div.vis-color-picker div.vis-arrow {
38
+ position: absolute;
39
+ top: 147px;
40
+ left: 5px;
41
+ }
42
+
43
+ div.vis-color-picker div.vis-arrow::after,
44
+ div.vis-color-picker div.vis-arrow::before {
45
+ right: 100%;
46
+ top: 50%;
47
+ border: solid transparent;
48
+ content: " ";
49
+ height: 0;
50
+ width: 0;
51
+ position: absolute;
52
+ pointer-events: none;
53
+ }
54
+
55
+ div.vis-color-picker div.vis-arrow:after {
56
+ border-color: rgba(255, 255, 255, 0);
57
+ border-right-color: #ffffff;
58
+ border-width: 30px;
59
+ margin-top: -30px;
60
+ }
61
+
62
+ div.vis-color-picker div.vis-color {
63
+ position: absolute;
64
+ width: 289px;
65
+ height: 289px;
66
+ cursor: pointer;
67
+ }
68
+
69
+ div.vis-color-picker div.vis-brightness {
70
+ position: absolute;
71
+ top: 313px;
72
+ }
73
+
74
+ div.vis-color-picker div.vis-opacity {
75
+ position: absolute;
76
+ top: 350px;
77
+ }
78
+
79
+ div.vis-color-picker div.vis-selector {
80
+ position: absolute;
81
+ top: 137px;
82
+ left: 137px;
83
+ width: 15px;
84
+ height: 15px;
85
+ border-radius: 15px;
86
+ border: 1px solid #ffffff;
87
+ background: #4c4c4c; /* Old browsers */
88
+ background: -moz-linear-gradient(
89
+ top,
90
+ #4c4c4c 0%,
91
+ #595959 12%,
92
+ #666666 25%,
93
+ #474747 39%,
94
+ #2c2c2c 50%,
95
+ #000000 51%,
96
+ #111111 60%,
97
+ #2b2b2b 76%,
98
+ #1c1c1c 91%,
99
+ #131313 100%
100
+ ); /* FF3.6+ */
101
+ background: -webkit-gradient(
102
+ linear,
103
+ left top,
104
+ left bottom,
105
+ color-stop(0%, #4c4c4c),
106
+ color-stop(12%, #595959),
107
+ color-stop(25%, #666666),
108
+ color-stop(39%, #474747),
109
+ color-stop(50%, #2c2c2c),
110
+ color-stop(51%, #000000),
111
+ color-stop(60%, #111111),
112
+ color-stop(76%, #2b2b2b),
113
+ color-stop(91%, #1c1c1c),
114
+ color-stop(100%, #131313)
115
+ ); /* Chrome,Safari4+ */
116
+ background: -webkit-linear-gradient(
117
+ top,
118
+ #4c4c4c 0%,
119
+ #595959 12%,
120
+ #666666 25%,
121
+ #474747 39%,
122
+ #2c2c2c 50%,
123
+ #000000 51%,
124
+ #111111 60%,
125
+ #2b2b2b 76%,
126
+ #1c1c1c 91%,
127
+ #131313 100%
128
+ ); /* Chrome10+,Safari5.1+ */
129
+ background: -o-linear-gradient(
130
+ top,
131
+ #4c4c4c 0%,
132
+ #595959 12%,
133
+ #666666 25%,
134
+ #474747 39%,
135
+ #2c2c2c 50%,
136
+ #000000 51%,
137
+ #111111 60%,
138
+ #2b2b2b 76%,
139
+ #1c1c1c 91%,
140
+ #131313 100%
141
+ ); /* Opera 11.10+ */
142
+ background: -ms-linear-gradient(
143
+ top,
144
+ #4c4c4c 0%,
145
+ #595959 12%,
146
+ #666666 25%,
147
+ #474747 39%,
148
+ #2c2c2c 50%,
149
+ #000000 51%,
150
+ #111111 60%,
151
+ #2b2b2b 76%,
152
+ #1c1c1c 91%,
153
+ #131313 100%
154
+ ); /* IE10+ */
155
+ background: linear-gradient(
156
+ to bottom,
157
+ #4c4c4c 0%,
158
+ #595959 12%,
159
+ #666666 25%,
160
+ #474747 39%,
161
+ #2c2c2c 50%,
162
+ #000000 51%,
163
+ #111111 60%,
164
+ #2b2b2b 76%,
165
+ #1c1c1c 91%,
166
+ #131313 100%
167
+ ); /* W3C */
168
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313',GradientType=0 ); /* IE6-9 */
169
+ }
170
+
171
+ div.vis-color-picker div.vis-new-color {
172
+ position: absolute;
173
+ width: 140px;
174
+ height: 20px;
175
+ border: 1px solid rgba(0, 0, 0, 0.1);
176
+ border-radius: 5px;
177
+ top: 380px;
178
+ left: 159px;
179
+ text-align: right;
180
+ padding-right: 2px;
181
+ font-size: 10px;
182
+ color: rgba(0, 0, 0, 0.4);
183
+ vertical-align: middle;
184
+ line-height: 20px;
185
+ }
186
+
187
+ div.vis-color-picker div.vis-initial-color {
188
+ position: absolute;
189
+ width: 140px;
190
+ height: 20px;
191
+ border: 1px solid rgba(0, 0, 0, 0.1);
192
+ border-radius: 5px;
193
+ top: 380px;
194
+ left: 10px;
195
+ text-align: left;
196
+ padding-left: 2px;
197
+ font-size: 10px;
198
+ color: rgba(0, 0, 0, 0.4);
199
+ vertical-align: middle;
200
+ line-height: 20px;
201
+ }
202
+
203
+ div.vis-color-picker div.vis-label {
204
+ position: absolute;
205
+ width: 300px;
206
+ left: 10px;
207
+ }
208
+
209
+ div.vis-color-picker div.vis-label.vis-brightness {
210
+ top: 300px;
211
+ }
212
+
213
+ div.vis-color-picker div.vis-label.vis-opacity {
214
+ top: 338px;
215
+ }
216
+
217
+ div.vis-color-picker div.vis-button {
218
+ position: absolute;
219
+ width: 68px;
220
+ height: 25px;
221
+ border-radius: 10px;
222
+ vertical-align: middle;
223
+ text-align: center;
224
+ line-height: 25px;
225
+ top: 410px;
226
+ border: 2px solid #d9d9d9;
227
+ background-color: #f7f7f7;
228
+ cursor: pointer;
229
+ }
230
+
231
+ div.vis-color-picker div.vis-button.vis-cancel {
232
+ /*border:2px solid #ff4e33;*/
233
+ /*background-color: #ff7761;*/
234
+ left: 5px;
235
+ }
236
+ div.vis-color-picker div.vis-button.vis-load {
237
+ /*border:2px solid #a153e6;*/
238
+ /*background-color: #cb8dff;*/
239
+ left: 82px;
240
+ }
241
+ div.vis-color-picker div.vis-button.vis-apply {
242
+ /*border:2px solid #4588e6;*/
243
+ /*background-color: #82b6ff;*/
244
+ left: 159px;
245
+ }
246
+ div.vis-color-picker div.vis-button.vis-save {
247
+ /*border:2px solid #45e655;*/
248
+ /*background-color: #6dff7c;*/
249
+ left: 236px;
250
+ }
251
+
252
+ div.vis-color-picker input.vis-range {
253
+ width: 290px;
254
+ height: 20px;
255
+ }
256
+
257
+ /* TODO: is this redundant?
258
+ div.vis-color-picker input.vis-range-brightness {
259
+ width: 289px !important;
260
+ }
261
+
262
+
263
+ div.vis-color-picker input.vis-saturation-range {
264
+ width: 289px !important;
265
+ }*/
266
+ `;_e(sp);var rp=`div.vis-configuration {
267
+ position: relative;
268
+ display: block;
269
+ float: left;
270
+ font-size: 12px;
271
+ }
272
+
273
+ div.vis-configuration-wrapper {
274
+ display: block;
275
+ width: 700px;
276
+ }
277
+
278
+ div.vis-configuration-wrapper::after {
279
+ clear: both;
280
+ content: "";
281
+ display: block;
282
+ }
283
+
284
+ div.vis-configuration.vis-config-option-container {
285
+ display: block;
286
+ width: 495px;
287
+ background-color: #ffffff;
288
+ border: 2px solid #f7f8fa;
289
+ border-radius: 4px;
290
+ margin-top: 20px;
291
+ left: 10px;
292
+ padding-left: 5px;
293
+ }
294
+
295
+ div.vis-configuration.vis-config-button {
296
+ display: block;
297
+ width: 495px;
298
+ height: 25px;
299
+ vertical-align: middle;
300
+ line-height: 25px;
301
+ background-color: #f7f8fa;
302
+ border: 2px solid #ceced0;
303
+ border-radius: 4px;
304
+ margin-top: 20px;
305
+ left: 10px;
306
+ padding-left: 5px;
307
+ cursor: pointer;
308
+ margin-bottom: 30px;
309
+ }
310
+
311
+ div.vis-configuration.vis-config-button.hover {
312
+ background-color: #4588e6;
313
+ border: 2px solid #214373;
314
+ color: #ffffff;
315
+ }
316
+
317
+ div.vis-configuration.vis-config-item {
318
+ display: block;
319
+ float: left;
320
+ width: 495px;
321
+ height: 25px;
322
+ vertical-align: middle;
323
+ line-height: 25px;
324
+ }
325
+
326
+ div.vis-configuration.vis-config-item.vis-config-s2 {
327
+ left: 10px;
328
+ background-color: #f7f8fa;
329
+ padding-left: 5px;
330
+ border-radius: 3px;
331
+ }
332
+ div.vis-configuration.vis-config-item.vis-config-s3 {
333
+ left: 20px;
334
+ background-color: #e4e9f0;
335
+ padding-left: 5px;
336
+ border-radius: 3px;
337
+ }
338
+ div.vis-configuration.vis-config-item.vis-config-s4 {
339
+ left: 30px;
340
+ background-color: #cfd8e6;
341
+ padding-left: 5px;
342
+ border-radius: 3px;
343
+ }
344
+
345
+ div.vis-configuration.vis-config-header {
346
+ font-size: 18px;
347
+ font-weight: bold;
348
+ }
349
+
350
+ div.vis-configuration.vis-config-label {
351
+ width: 120px;
352
+ height: 25px;
353
+ line-height: 25px;
354
+ }
355
+
356
+ div.vis-configuration.vis-config-label.vis-config-s3 {
357
+ width: 110px;
358
+ }
359
+ div.vis-configuration.vis-config-label.vis-config-s4 {
360
+ width: 100px;
361
+ }
362
+
363
+ div.vis-configuration.vis-config-colorBlock {
364
+ top: 1px;
365
+ width: 30px;
366
+ height: 19px;
367
+ border: 1px solid #444444;
368
+ border-radius: 2px;
369
+ padding: 0px;
370
+ margin: 0px;
371
+ cursor: pointer;
372
+ }
373
+
374
+ input.vis-configuration.vis-config-checkbox {
375
+ left: -5px;
376
+ }
377
+
378
+ input.vis-configuration.vis-config-rangeinput {
379
+ position: relative;
380
+ top: -5px;
381
+ width: 60px;
382
+ /*height:13px;*/
383
+ padding: 1px;
384
+ margin: 0;
385
+ pointer-events: none;
386
+ }
387
+
388
+ input.vis-configuration.vis-config-range {
389
+ /*removes default webkit styles*/
390
+ -webkit-appearance: none;
391
+
392
+ /*fix for FF unable to apply focus style bug */
393
+ border: 0px solid white;
394
+ background-color: rgba(0, 0, 0, 0);
395
+
396
+ /*required for proper track sizing in FF*/
397
+ width: 300px;
398
+ height: 20px;
399
+ }
400
+ input.vis-configuration.vis-config-range::-webkit-slider-runnable-track {
401
+ width: 300px;
402
+ height: 5px;
403
+ background: #dedede; /* Old browsers */
404
+ background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* FF3.6+ */
405
+ background: -webkit-gradient(
406
+ linear,
407
+ left top,
408
+ left bottom,
409
+ color-stop(0%, #dedede),
410
+ color-stop(99%, #c8c8c8)
411
+ ); /* Chrome,Safari4+ */
412
+ background: -webkit-linear-gradient(
413
+ top,
414
+ #dedede 0%,
415
+ #c8c8c8 99%
416
+ ); /* Chrome10+,Safari5.1+ */
417
+ background: -o-linear-gradient(
418
+ top,
419
+ #dedede 0%,
420
+ #c8c8c8 99%
421
+ ); /* Opera 11.10+ */
422
+ background: -ms-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* IE10+ */
423
+ background: linear-gradient(to bottom, #dedede 0%, #c8c8c8 99%); /* W3C */
424
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */
425
+
426
+ border: 1px solid #999999;
427
+ box-shadow: #aaaaaa 0px 0px 3px 0px;
428
+ border-radius: 3px;
429
+ }
430
+ input.vis-configuration.vis-config-range::-webkit-slider-thumb {
431
+ -webkit-appearance: none;
432
+ border: 1px solid #14334b;
433
+ height: 17px;
434
+ width: 17px;
435
+ border-radius: 50%;
436
+ background: #3876c2; /* Old browsers */
437
+ background: -moz-linear-gradient(top, #3876c2 0%, #385380 100%); /* FF3.6+ */
438
+ background: -webkit-gradient(
439
+ linear,
440
+ left top,
441
+ left bottom,
442
+ color-stop(0%, #3876c2),
443
+ color-stop(100%, #385380)
444
+ ); /* Chrome,Safari4+ */
445
+ background: -webkit-linear-gradient(
446
+ top,
447
+ #3876c2 0%,
448
+ #385380 100%
449
+ ); /* Chrome10+,Safari5.1+ */
450
+ background: -o-linear-gradient(
451
+ top,
452
+ #3876c2 0%,
453
+ #385380 100%
454
+ ); /* Opera 11.10+ */
455
+ background: -ms-linear-gradient(top, #3876c2 0%, #385380 100%); /* IE10+ */
456
+ background: linear-gradient(to bottom, #3876c2 0%, #385380 100%); /* W3C */
457
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380',GradientType=0 ); /* IE6-9 */
458
+ box-shadow: #111927 0px 0px 1px 0px;
459
+ margin-top: -7px;
460
+ }
461
+ input.vis-configuration.vis-config-range:focus {
462
+ outline: none;
463
+ }
464
+ input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track {
465
+ background: #9d9d9d; /* Old browsers */
466
+ background: -moz-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); /* FF3.6+ */
467
+ background: -webkit-gradient(
468
+ linear,
469
+ left top,
470
+ left bottom,
471
+ color-stop(0%, #9d9d9d),
472
+ color-stop(99%, #c8c8c8)
473
+ ); /* Chrome,Safari4+ */
474
+ background: -webkit-linear-gradient(
475
+ top,
476
+ #9d9d9d 0%,
477
+ #c8c8c8 99%
478
+ ); /* Chrome10+,Safari5.1+ */
479
+ background: -o-linear-gradient(
480
+ top,
481
+ #9d9d9d 0%,
482
+ #c8c8c8 99%
483
+ ); /* Opera 11.10+ */
484
+ background: -ms-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); /* IE10+ */
485
+ background: linear-gradient(to bottom, #9d9d9d 0%, #c8c8c8 99%); /* W3C */
486
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */
487
+ }
488
+
489
+ input.vis-configuration.vis-config-range::-moz-range-track {
490
+ width: 300px;
491
+ height: 10px;
492
+ background: #dedede; /* Old browsers */
493
+ background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* FF3.6+ */
494
+ background: -webkit-gradient(
495
+ linear,
496
+ left top,
497
+ left bottom,
498
+ color-stop(0%, #dedede),
499
+ color-stop(99%, #c8c8c8)
500
+ ); /* Chrome,Safari4+ */
501
+ background: -webkit-linear-gradient(
502
+ top,
503
+ #dedede 0%,
504
+ #c8c8c8 99%
505
+ ); /* Chrome10+,Safari5.1+ */
506
+ background: -o-linear-gradient(
507
+ top,
508
+ #dedede 0%,
509
+ #c8c8c8 99%
510
+ ); /* Opera 11.10+ */
511
+ background: -ms-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* IE10+ */
512
+ background: linear-gradient(to bottom, #dedede 0%, #c8c8c8 99%); /* W3C */
513
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */
514
+
515
+ border: 1px solid #999999;
516
+ box-shadow: #aaaaaa 0px 0px 3px 0px;
517
+ border-radius: 3px;
518
+ }
519
+ input.vis-configuration.vis-config-range::-moz-range-thumb {
520
+ border: none;
521
+ height: 16px;
522
+ width: 16px;
523
+
524
+ border-radius: 50%;
525
+ background: #385380;
526
+ }
527
+
528
+ /*hide the outline behind the border*/
529
+ input.vis-configuration.vis-config-range:-moz-focusring {
530
+ outline: 1px solid white;
531
+ outline-offset: -1px;
532
+ }
533
+
534
+ input.vis-configuration.vis-config-range::-ms-track {
535
+ width: 300px;
536
+ height: 5px;
537
+
538
+ /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */
539
+ background: transparent;
540
+
541
+ /*leave room for the larger thumb to overflow with a transparent border */
542
+ border-color: transparent;
543
+ border-width: 6px 0;
544
+
545
+ /*remove default tick marks*/
546
+ color: transparent;
547
+ }
548
+ input.vis-configuration.vis-config-range::-ms-fill-lower {
549
+ background: #777;
550
+ border-radius: 10px;
551
+ }
552
+ input.vis-configuration.vis-config-range::-ms-fill-upper {
553
+ background: #ddd;
554
+ border-radius: 10px;
555
+ }
556
+ input.vis-configuration.vis-config-range::-ms-thumb {
557
+ border: none;
558
+ height: 16px;
559
+ width: 16px;
560
+ border-radius: 50%;
561
+ background: #385380;
562
+ }
563
+ input.vis-configuration.vis-config-range:focus::-ms-fill-lower {
564
+ background: #888;
565
+ }
566
+ input.vis-configuration.vis-config-range:focus::-ms-fill-upper {
567
+ background: #ccc;
568
+ }
569
+
570
+ .vis-configuration-popup {
571
+ position: absolute;
572
+ background: rgba(57, 76, 89, 0.85);
573
+ border: 2px solid #f2faff;
574
+ line-height: 30px;
575
+ height: 30px;
576
+ width: 150px;
577
+ text-align: center;
578
+ color: #ffffff;
579
+ font-size: 14px;
580
+ border-radius: 4px;
581
+ -webkit-transition: opacity 0.3s ease-in-out;
582
+ -moz-transition: opacity 0.3s ease-in-out;
583
+ transition: opacity 0.3s ease-in-out;
584
+ }
585
+ .vis-configuration-popup:after,
586
+ .vis-configuration-popup:before {
587
+ left: 100%;
588
+ top: 50%;
589
+ border: solid transparent;
590
+ content: " ";
591
+ height: 0;
592
+ width: 0;
593
+ position: absolute;
594
+ pointer-events: none;
595
+ }
596
+
597
+ .vis-configuration-popup:after {
598
+ border-color: rgba(136, 183, 213, 0);
599
+ border-left-color: rgba(57, 76, 89, 0.85);
600
+ border-width: 8px;
601
+ margin-top: -8px;
602
+ }
603
+ .vis-configuration-popup:before {
604
+ border-color: rgba(194, 225, 245, 0);
605
+ border-left-color: #f2faff;
606
+ border-width: 12px;
607
+ margin-top: -12px;
608
+ }
609
+ `;_e(rp);var ap=`div.vis-tooltip {
610
+ position: absolute;
611
+ visibility: hidden;
612
+ padding: 5px;
613
+ white-space: nowrap;
614
+
615
+ font-family: verdana;
616
+ font-size: 14px;
617
+ color: #000000;
618
+ background-color: #f5f4ed;
619
+
620
+ -moz-border-radius: 3px;
621
+ -webkit-border-radius: 3px;
622
+ border-radius: 3px;
623
+ border: 1px solid #808074;
624
+
625
+ box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);
626
+ pointer-events: none;
627
+
628
+ z-index: 5;
629
+ }
630
+ `;_e(ap);var Ja={exports:{}};(function(I){I.exports=g;function g(t){if(t)return e(t)}function e(t){for(var A in g.prototype)t[A]=g.prototype[A];return t}g.prototype.on=g.prototype.addEventListener=function(t,A){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(A),this},g.prototype.once=function(t,A){function C(){this.off(t,C),A.apply(this,arguments)}return C.fn=A,this.on(t,C),this},g.prototype.off=g.prototype.removeListener=g.prototype.removeAllListeners=g.prototype.removeEventListener=function(t,A){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var C=this._callbacks["$"+t];if(!C)return this;if(arguments.length==1)return delete this._callbacks["$"+t],this;for(var i,n=0;n<C.length;n++)if(i=C[n],i===A||i.fn===A){C.splice(n,1);break}return C.length===0&&delete this._callbacks["$"+t],this},g.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var A=new Array(arguments.length-1),C=this._callbacks["$"+t],i=1;i<arguments.length;i++)A[i-1]=arguments[i];if(C){C=C.slice(0);for(var i=0,n=C.length;i<n;++i)C[i].apply(this,A)}return this},g.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]},g.prototype.hasListeners=function(t){return!!this.listeners(t).length}})(Ja);var dp=Ja.exports,$a=D(dp),lp=se,De=Array.isArray||function(g){return lp(g)==="Array"},hp=TypeError,cp=9007199254740991,Jn=function(I){if(I>cp)throw hp("Maximum allowed index exceeded");return I},up=YI,fp=Og,pp=IA,uA=function(I,g,e){var t=up(g);t in I?fp.f(I,t,pp(0,e)):I[t]=e},mp=gg,vp=mp("toStringTag"),qa={};qa[vp]="z";var $n=String(qa)==="[object z]",bp=$n,yp=lg,II=se,wp=gg,Ep=wp("toStringTag"),Tp=Object,xp=II(function(){return arguments}())==="Arguments",Op=function(I,g){try{return I[g]}catch(e){}},ae=bp?II:function(I){var g,e,t;return I===void 0?"Undefined":I===null?"Null":typeof(e=Op(g=Tp(I),Ep))=="string"?e:xp?II(g):(t=II(g))==="Object"&&yp(g.callee)?"Arguments":t},Pp=Z,Dp=lg,mi=Un,Rp=Pp(Function.toString);Dp(mi.inspectSource)||(mi.inspectSource=function(I){return Rp(I)});var Np=mi.inspectSource,Sp=Z,kp=z,gd=lg,Mp=ae,Fp=Yg,Bp=Np,ed=function(){},zp=[],td=Fp("Reflect","construct"),qn=/^\s*(?:class|function)\b/,Zp=Sp(qn.exec),Lp=!qn.test(ed),Dt=function(g){if(!gd(g))return!1;try{return td(ed,zp,g),!0}catch(e){return!1}},Ad=function(g){if(!gd(g))return!1;switch(Mp(g)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Lp||!!Zp(qn,Bp(g))}catch(e){return!0}};Ad.sham=!0;var Id=!td||kp(function(){var I;return Dt(Dt.call)||!Dt(Object)||!Dt(function(){I=!0})||I})?Ad:Dt,ds=De,Gp=Id,Vp=cg,jp=gg,Wp=jp("species"),ls=Array,Yp=function(I){var g;return ds(I)&&(g=I.constructor,Gp(g)&&(g===ls||ds(g.prototype))?g=void 0:Vp(g)&&(g=g[Wp],g===null&&(g=void 0))),g===void 0?ls:g},_p=Yp,UI=function(I,g){return new(_p(I))(g===0?0:g)},Kp=z,Up=gg,Hp=nA,Qp=Up("species"),fA=function(I){return Hp>=51||!Kp(function(){var g=[],e=g.constructor={};return e[Qp]=function(){return{foo:1}},g[I](Boolean).foo!==1})},Xp=R,Jp=z,$p=De,qp=cg,gm=xg,em=Sg,hs=Jn,cs=uA,tm=UI,Am=fA,Im=gg,Cm=nA,Cd=Im("isConcatSpreadable"),im=Cm>=51||!Jp(function(){var I=[];return I[Cd]=!1,I.concat()[0]!==I}),nm=function(I){if(!qp(I))return!1;var g=I[Cd];return g!==void 0?!!g:$p(I)},om=!im||!Am("concat");Xp({target:"Array",proto:!0,arity:1,forced:om},{concat:function(g){var e=gm(this),t=tm(e,0),A=0,C,i,n,o,s;for(C=-1,n=arguments.length;C<n;C++)if(s=C===-1?e:arguments[C],nm(s))for(o=em(s),hs(A+o),i=0;i<o;i++,A++)i in s&&cs(t,A,s[i]);else hs(A+1),cs(t,A++,s);return t.length=A,t}});var sm=ae,rm=String,qg=function(I){if(sm(I)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return rm(I)},HI={},am=ig,dm=Ya,lm=Og,hm=re,cm=Wg,um=hA;HI.f=am&&!dm?Object.defineProperties:function(g,e){hm(g);for(var t=cm(e),A=um(e),C=A.length,i=0,n;C>i;)lm.f(g,n=A[i++],t[n]);return g};var fm=Yg,pm=fm("document","documentElement"),mm=mt,vm=WI,us=mm("keys"),QI=function(I){return us[I]||(us[I]=vm(I))},bm=re,ym=HI,fs=Qn,wm=lA,Em=pm,Tm=ja,xm=QI,ps=">",ms="<",vi="prototype",bi="script",id=xm("IE_PROTO"),OC=function(){},nd=function(I){return ms+bi+ps+I+ms+"/"+bi+ps},vs=function(I){I.write(nd("")),I.close();var g=I.parentWindow.Object;return I=null,g},Om=function(){var I=Tm("iframe"),g="java"+bi+":",e;return I.style.display="none",Em.appendChild(I),I.src=String(g),e=I.contentWindow.document,e.open(),e.write(nd("document.F=Object")),e.close(),e.F},LA,CI=function(){try{LA=new ActiveXObject("htmlfile")}catch(g){}CI=typeof document!="undefined"?document.domain&&LA?vs(LA):Om():vs(LA);for(var I=fs.length;I--;)delete CI[vi][fs[I]];return CI()};wm[id]=!0;var pA=Object.create||function(g,e){var t;return g!==null?(OC[vi]=bm(g),t=new OC,OC[vi]=null,t[id]=g):t=CI(),e===void 0?t:ym.f(t,e)},mA={},Pm=_a,Dm=Qn,Rm=Dm.concat("length","prototype");mA.f=Object.getOwnPropertyNames||function(g){return Pm(g,Rm)};var XI={},bs=dA,Nm=Sg,Sm=uA,km=Array,Mm=Math.max,od=function(I,g,e){for(var t=Nm(I),A=bs(g,t),C=bs(e===void 0?t:e,t),i=km(Mm(C-A,0)),n=0;A<C;A++,n++)Sm(i,n,I[A]);return i.length=n,i},Fm=se,Bm=Wg,sd=mA.f,zm=od,rd=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],Zm=function(I){try{return sd(I)}catch(g){return zm(rd)}};XI.f=function(g){return rd&&Fm(g)==="Window"?Zm(g):sd(Bm(g))};var Lm=vt,vA=function(I,g,e,t){return t&&t.enumerable?I[g]=e:Lm(I,g,e),I},Gm=Og,go=function(I,g,e){return Gm.f(I,g,e)},bA={},Vm=gg;bA.f=Vm;var ys=L,jm=ng,Wm=bA,Ym=Og.f,$=function(I){var g=ys.Symbol||(ys.Symbol={});jm(g,I)||Ym(g,I,{value:Wm.f(I)})},_m=jg,Km=Yg,Um=gg,Hm=vA,ad=function(){var I=Km("Symbol"),g=I&&I.prototype,e=g&&g.valueOf,t=Um("toPrimitive");g&&!g[t]&&Hm(g,t,function(A){return _m(e,this)},{arity:1})},Qm=$n,Xm=ae,Jm=Qm?{}.toString:function(){return"[object "+Xm(this)+"]"},$m=$n,qm=Og.f,gv=vt,ev=ng,tv=Jm,Av=gg,ws=Av("toStringTag"),bt=function(I,g,e,t){if(I){var A=e?I:I.prototype;ev(A,ws)||qm(A,ws,{configurable:!0,value:g}),t&&!$m&&gv(A,"toString",tv)}},Iv=X,Cv=lg,Es=Iv.WeakMap,dd=Cv(Es)&&/native code/.test(String(Es)),iv=dd,ld=X,nv=cg,ov=vt,PC=ng,DC=Un,sv=QI,rv=lA,Ts="Object already initialized",yi=ld.TypeError,av=ld.WeakMap,hI,Yt,cI,dv=function(I){return cI(I)?Yt(I):hI(I,{})},lv=function(I){return function(g){var e;if(!nv(g)||(e=Yt(g)).type!==I)throw new yi("Incompatible receiver, "+I+" required");return e}};iv||DC.state?(Fg=DC.state||(DC.state=new av),Fg.get=Fg.get,Fg.has=Fg.has,Fg.set=Fg.set,hI=function(I,g){if(Fg.has(I))throw new yi(Ts);return g.facade=I,Fg.set(I,g),g},Yt=function(I){return Fg.get(I)||{}},cI=function(I){return Fg.has(I)}):(Ne=sv("state"),rv[Ne]=!0,hI=function(I,g){if(PC(I,Ne))throw new yi(Ts);return g.facade=I,ov(I,Ne,g),g},Yt=function(I){return PC(I,Ne)?I[Ne]:{}},cI=function(I){return PC(I,Ne)});var Fg,Ne,Ke={set:hI,get:Yt,has:cI,enforce:dv,getterFor:lv},hv=aA,cv=Z,uv=jI,fv=xg,pv=Sg,mv=UI,xs=cv([].push),le=function(I){var g=I===1,e=I===2,t=I===3,A=I===4,C=I===6,i=I===7,n=I===5||C;return function(o,s,r,a){for(var d=fv(o),l=uv(d),h=hv(s,r),c=pv(l),p=0,u=a||mv,m=g?u(o,c):e||i?u(o,0):void 0,E,w;c>p;p++)if((n||p in l)&&(E=l[p],w=h(E,p,d),I))if(g)m[p]=w;else if(w)switch(I){case 3:return!0;case 5:return E;case 6:return p;case 2:xs(m,E)}else switch(I){case 4:return!1;case 7:xs(m,E)}return C?-1:t||A?A:m}},Re={forEach:le(0),map:le(1),filter:le(2),some:le(3),every:le(4),find:le(5),findIndex:le(6),filterReject:le(7)},JI=R,$I=X,eo=jg,vv=Z,at=ig,dt=pt,bv=z,sg=ng,yv=J,wi=re,qI=Wg,to=YI,wv=qg,Ei=IA,_t=pA,hd=hA,Ev=mA,cd=XI,Tv=cA,ud=tA,fd=Og,xv=HI,pd=AA,Os=vA,Ov=go,Ao=mt,Pv=QI,md=lA,Ps=WI,Dv=gg,Rv=bA,Nv=$,Sv=ad,kv=bt,vd=Ke,gC=Re.forEach,Eg=Pv("hidden"),eC="Symbol",Kt="prototype",Mv=vd.set,Ds=vd.getterFor(eC),Gg=Object[Kt],Fe=$I.Symbol,Ft=Fe&&Fe[Kt],Fv=$I.RangeError,Bv=$I.TypeError,RC=$I.QObject,bd=ud.f,Be=fd.f,yd=cd.f,zv=pd.f,wd=vv([].push),ie=Ao("symbols"),yA=Ao("op-symbols"),Zv=Ao("wks"),Ti=!RC||!RC[Kt]||!RC[Kt].findChild,Ed=function(I,g,e){var t=bd(Gg,g);t&&delete Gg[g],Be(I,g,e),t&&I!==Gg&&Be(Gg,g,t)},xi=at&&bv(function(){return _t(Be({},"a",{get:function(){return Be(this,"a",{value:7}).a}})).a!==7})?Ed:Be,NC=function(I,g){var e=ie[I]=_t(Ft);return Mv(e,{type:eC,tag:I,description:g}),at||(e.description=g),e},tC=function(g,e,t){g===Gg&&tC(yA,e,t),wi(g);var A=to(e);return wi(t),sg(ie,A)?(t.enumerable?(sg(g,Eg)&&g[Eg][A]&&(g[Eg][A]=!1),t=_t(t,{enumerable:Ei(0,!1)})):(sg(g,Eg)||Be(g,Eg,Ei(1,{})),g[Eg][A]=!0),xi(g,A,t)):Be(g,A,t)},Io=function(g,e){wi(g);var t=qI(e),A=hd(t).concat(Pd(t));return gC(A,function(C){(!at||eo(Td,t,C))&&tC(g,C,t[C])}),g},Lv=function(g,e){return e===void 0?_t(g):Io(_t(g),e)},Td=function(g){var e=to(g),t=eo(zv,this,e);return this===Gg&&sg(ie,e)&&!sg(yA,e)?!1:t||!sg(this,e)||!sg(ie,e)||sg(this,Eg)&&this[Eg][e]?t:!0},xd=function(g,e){var t=qI(g),A=to(e);if(!(t===Gg&&sg(ie,A)&&!sg(yA,A))){var C=bd(t,A);return C&&sg(ie,A)&&!(sg(t,Eg)&&t[Eg][A])&&(C.enumerable=!0),C}},Od=function(g){var e=yd(qI(g)),t=[];return gC(e,function(A){!sg(ie,A)&&!sg(md,A)&&wd(t,A)}),t},Pd=function(I){var g=I===Gg,e=yd(g?yA:qI(I)),t=[];return gC(e,function(A){sg(ie,A)&&(!g||sg(Gg,A))&&wd(t,ie[A])}),t};dt||(Fe=function(){if(yv(Ft,this))throw new Bv("Symbol is not a constructor");var g=!arguments.length||arguments[0]===void 0?void 0:wv(arguments[0]),e=Ps(g),t=function(A){this===Gg&&eo(t,yA,A),sg(this,Eg)&&sg(this[Eg],e)&&(this[Eg][e]=!1);var C=Ei(1,A);try{xi(this,e,C)}catch(i){if(!(i instanceof Fv))throw i;Ed(this,e,C)}};return at&&Ti&&xi(Gg,e,{configurable:!0,set:t}),NC(e,g)},Ft=Fe[Kt],Os(Ft,"toString",function(){return Ds(this).tag}),Os(Fe,"withoutSetter",function(I){return NC(Ps(I),I)}),pd.f=Td,fd.f=tC,xv.f=Io,ud.f=xd,Ev.f=cd.f=Od,Tv.f=Pd,Rv.f=function(I){return NC(Dv(I),I)},at&&Ov(Ft,"description",{configurable:!0,get:function(){return Ds(this).description}}));JI({global:!0,constructor:!0,wrap:!0,forced:!dt,sham:!dt},{Symbol:Fe});gC(hd(Zv),function(I){Nv(I)});JI({target:eC,stat:!0,forced:!dt},{useSetter:function(){Ti=!0},useSimple:function(){Ti=!1}});JI({target:"Object",stat:!0,forced:!dt,sham:!at},{create:Lv,defineProperty:tC,defineProperties:Io,getOwnPropertyDescriptor:xd});JI({target:"Object",stat:!0,forced:!dt},{getOwnPropertyNames:Od});Sv();kv(Fe,eC);md[Eg]=!0;var Gv=pt,Dd=Gv&&!!Symbol.for&&!!Symbol.keyFor,Vv=R,jv=Yg,Wv=ng,Yv=qg,Rd=mt,_v=Dd,SC=Rd("string-to-symbol-registry"),Kv=Rd("symbol-to-string-registry");Vv({target:"Symbol",stat:!0,forced:!_v},{for:function(I){var g=Yv(I);if(Wv(SC,g))return SC[g];var e=jv("Symbol")(g);return SC[g]=e,Kv[e]=g,e}});var Uv=R,Hv=ng,Qv=oA,Xv=sA,Jv=mt,$v=Dd,Rs=Jv("symbol-to-string-registry");Uv({target:"Symbol",stat:!0,forced:!$v},{keyFor:function(g){if(!Qv(g))throw new TypeError(Xv(g)+" is not a symbol");if(Hv(Rs,g))return Rs[g]}});var qv=Z,Ns=De,gb=lg,Ss=se,eb=qg,ks=qv([].push),tb=function(I){if(gb(I))return I;if(Ns(I)){for(var g=I.length,e=[],t=0;t<g;t++){var A=I[t];typeof A=="string"?ks(e,A):(typeof A=="number"||Ss(A)==="Number"||Ss(A)==="String")&&ks(e,eb(A))}var C=e.length,i=!0;return function(n,o){if(i)return i=!1,o;if(Ns(this))return o;for(var s=0;s<C;s++)if(e[s]===n)return o}}},Ab=R,Nd=Yg,Sd=VI,Ib=jg,wA=Z,kd=z,Ms=lg,Fs=oA,Md=KI,Cb=tb,ib=pt,nb=String,be=Nd("JSON","stringify"),GA=wA(/./.exec),Bs=wA("".charAt),ob=wA("".charCodeAt),sb=wA("".replace),rb=wA(1 .toString),ab=/[\uD800-\uDFFF]/g,zs=/^[\uD800-\uDBFF]$/,Zs=/^[\uDC00-\uDFFF]$/,Ls=!ib||kd(function(){var I=Nd("Symbol")("stringify detection");return be([I])!=="[null]"||be({a:I})!=="{}"||be(Object(I))!=="{}"}),Gs=kd(function(){return be("\uDF06\uD834")!=='"\\udf06\\ud834"'||be("\uDEAD")!=='"\\udead"'}),db=function(I,g){var e=Md(arguments),t=Cb(g);if(!(!Ms(t)&&(I===void 0||Fs(I))))return e[1]=function(A,C){if(Ms(t)&&(C=Ib(t,this,nb(A),C)),!Fs(C))return C},Sd(be,null,e)},lb=function(I,g,e){var t=Bs(e,g-1),A=Bs(e,g+1);return GA(zs,I)&&!GA(Zs,A)||GA(Zs,I)&&!GA(zs,t)?"\\u"+rb(ob(I,0),16):I};be&&Ab({target:"JSON",stat:!0,arity:3,forced:Ls||Gs},{stringify:function(g,e,t){var A=Md(arguments),C=Sd(Ls?db:be,null,A);return Gs&&typeof C=="string"?sb(C,ab,lb):C}});var hb=R,cb=pt,ub=z,Fd=cA,fb=xg,pb=!cb||ub(function(){Fd.f(1)});hb({target:"Object",stat:!0,forced:pb},{getOwnPropertySymbols:function(g){var e=Fd.f;return e?e(fb(g)):[]}});var mb=$;mb("asyncIterator");var vb=$;vb("hasInstance");var bb=$;bb("isConcatSpreadable");var yb=$;yb("iterator");var wb=$;wb("match");var Eb=$;Eb("matchAll");var Tb=$;Tb("replace");var xb=$;xb("search");var Ob=$;Ob("species");var Pb=$;Pb("split");var Db=$,Rb=ad;Db("toPrimitive");Rb();var Nb=Yg,Sb=$,kb=bt;Sb("toStringTag");kb(Nb("Symbol"),"Symbol");var Mb=$;Mb("unscopables");var Fb=X,Bb=bt;Bb(Fb.JSON,"JSON",!0);var zb=L,Zb=zb.Symbol,yt={},Oi=ig,Lb=ng,Bd=Function.prototype,Gb=Oi&&Object.getOwnPropertyDescriptor,Co=Lb(Bd,"name"),Vb=Co&&function(){}.name==="something",jb=Co&&(!Oi||Oi&&Gb(Bd,"name").configurable),Wb={EXISTS:Co,PROPER:Vb,CONFIGURABLE:jb},Yb=z,zd=!Yb(function(){function I(){}return I.prototype.constructor=null,Object.getPrototypeOf(new I)!==I.prototype}),_b=ng,Kb=lg,Ub=xg,Hb=QI,Qb=zd,Vs=Hb("IE_PROTO"),Pi=Object,Xb=Pi.prototype,AC=Qb?Pi.getPrototypeOf:function(I){var g=Ub(I);if(_b(g,Vs))return g[Vs];var e=g.constructor;return Kb(e)&&g instanceof e?e.prototype:g instanceof Pi?Xb:null},Jb=z,$b=lg,qb=cg,gy=pA,js=AC,ey=vA,ty=gg,Di=ty("iterator"),Zd=!1,ee,kC,MC;[].keys&&(MC=[].keys(),"next"in MC?(kC=js(js(MC)),kC!==Object.prototype&&(ee=kC)):Zd=!0);var Ay=!qb(ee)||Jb(function(){var I={};return ee[Di].call(I)!==I});Ay?ee={}:ee=gy(ee);$b(ee[Di])||ey(ee,Di,function(){return this});var Ld={IteratorPrototype:ee,BUGGY_SAFARI_ITERATORS:Zd},Iy=Ld.IteratorPrototype,Cy=pA,iy=IA,ny=bt,oy=yt,sy=function(){return this},ry=function(I,g,e,t){var A=g+" Iterator";return I.prototype=Cy(Iy,{next:iy(+!t,e)}),ny(I,A,!1,!0),oy[A]=sy,I},ay=R,dy=jg,Gd=Wb,ly=ry,hy=AC,cy=bt,Ws=vA,uy=gg,Ys=yt,Vd=Ld,fy=Gd.PROPER;Gd.CONFIGURABLE;Vd.IteratorPrototype;var VA=Vd.BUGGY_SAFARI_ITERATORS,FC=uy("iterator"),_s="keys",jA="values",Ks="entries",py=function(){return this},io=function(I,g,e,t,A,C,i){ly(e,g,t);var n=function(u){if(u===A&&d)return d;if(!VA&&u&&u in r)return r[u];switch(u){case _s:return function(){return new e(this,u)};case jA:return function(){return new e(this,u)};case Ks:return function(){return new e(this,u)}}return function(){return new e(this)}},o=g+" Iterator",s=!1,r=I.prototype,a=r[FC]||r["@@iterator"]||A&&r[A],d=!VA&&a||n(A),l=g==="Array"&&r.entries||a,h,c,p;if(l&&(h=hy(l.call(new I)),h!==Object.prototype&&h.next&&(cy(h,o,!0,!0),Ys[o]=py)),fy&&A===jA&&a&&a.name!==jA&&(s=!0,d=function(){return dy(a,this)}),A)if(c={values:n(jA),keys:C?d:n(_s),entries:n(Ks)},i)for(p in c)(VA||s||!(p in r))&&Ws(r,p,c[p]);else ay({target:g,proto:!0,forced:VA||s},c);return i&&r[FC]!==d&&Ws(r,FC,d,{name:A}),Ys[g]=d,c},no=function(I,g){return{value:I,done:g}},my=Wg,Us=yt,jd=Ke;Og.f;var vy=io,WA=no,Wd="Array Iterator",by=jd.set,yy=jd.getterFor(Wd);vy(Array,"Array",function(I,g){by(this,{type:Wd,target:my(I),index:0,kind:g})},function(){var I=yy(this),g=I.target,e=I.kind,t=I.index++;if(!g||t>=g.length)return I.target=void 0,WA(void 0,!0);switch(e){case"keys":return WA(t,!1);case"values":return WA(g[t],!1)}return WA([t,g[t]],!1)},"values");Us.Arguments=Us.Array;var wy={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Ey=wy,Ty=X,xy=ae,Oy=vt,Hs=yt,Py=gg,Qs=Py("toStringTag");for(YA in Ey)BC=Ty[YA],_A=BC&&BC.prototype,_A&&xy(_A)!==Qs&&Oy(_A,Qs,YA),Hs[YA]=Hs.Array;var BC,_A,YA,Dy=Zb,Yd=Dy,Ry=Yd,Ny=D(Ry),Sy=R,Xs=De,ky=Id,My=cg,Js=dA,Fy=Sg,By=Wg,zy=uA,Zy=gg,Ly=fA,Gy=KI,Vy=Ly("slice"),jy=Zy("species"),zC=Array,Wy=Math.max;Sy({target:"Array",proto:!0,forced:!Vy},{slice:function(g,e){var t=By(this),A=Fy(t),C=Js(g,A),i=Js(e===void 0?A:e,A),n,o,s;if(Xs(t)&&(n=t.constructor,ky(n)&&(n===zC||Xs(n.prototype))?n=void 0:My(n)&&(n=n[jy],n===null&&(n=void 0)),n===zC||n===void 0))return Gy(t,C,i);for(o=new(n===void 0?zC:n)(Wy(i-C,0)),s=0;C<i;C++,s++)C in t&&zy(o,s,t[C]);return o.length=s,o}});var Yy=Ig,_y=Yy("Array").slice,Ky=J,Uy=_y,ZC=Array.prototype,Hy=function(I){var g=I.slice;return I===ZC||Ky(ZC,I)&&g===ZC.slice?Uy:g},Qy=Hy,Xy=Qy,Jy=Xy,Zg=D(Jy),$y=Yg,qy=Z,g0=mA,e0=cA,t0=re,A0=qy([].concat),_d=$y("Reflect","ownKeys")||function(g){var e=g0.f(t0(g)),t=e0.f;return t?A0(e,t(g)):e},I0=R,C0=_d;I0({target:"Reflect",stat:!0},{ownKeys:C0});var i0=L,n0=i0.Reflect.ownKeys,o0=n0,s0=o0,r0=s0,a0=D(r0),d0=R,l0=De;d0({target:"Array",stat:!0},{isArray:l0});var h0=L,c0=h0.Array.isArray,u0=c0,f0=u0,p0=f0,B=D(p0),m0=R,v0=Re.map,b0=fA,y0=b0("map");m0({target:"Array",proto:!0,forced:!y0},{map:function(g){return v0(this,g,arguments.length>1?arguments[1]:void 0)}});var w0=Ig,E0=w0("Array").map,T0=J,x0=E0,LC=Array.prototype,O0=function(I){var g=I.map;return I===LC||T0(LC,I)&&g===LC.map?x0:g},P0=O0,D0=P0,R0=D0,ag=D(R0),N0=R,S0=xg,Kd=hA,k0=z,M0=k0(function(){Kd(1)});N0({target:"Object",stat:!0,forced:M0},{keys:function(g){return Kd(S0(g))}});var F0=L,B0=F0.Object.keys,z0=B0,Z0=z0,L0=Z0,U=D(L0),G0=R,V0=Z,Ud=Date,j0=V0(Ud.prototype.getTime);G0({target:"Date",stat:!0},{now:function(){return j0(new Ud)}});var W0=L,Y0=W0.Date.now,_0=Y0,K0=_0,U0=K0,uI=D(U0),H0=z,wt=function(I,g){var e=[][I];return!!e&&H0(function(){e.call(null,g||function(){return 1},1)})},Q0=Re.forEach,X0=wt,J0=X0("forEach"),$0=J0?[].forEach:function(g){return Q0(this,g,arguments.length>1?arguments[1]:void 0)},q0=R,$s=$0;q0({target:"Array",proto:!0,forced:[].forEach!==$s},{forEach:$s});var gw=Ig,ew=gw("Array").forEach,tw=ew,Aw=tw,Iw=ae,Cw=ng,iw=J,nw=Aw,GC=Array.prototype,ow={DOMTokenList:!0,NodeList:!0},sw=function(I){var g=I.forEach;return I===GC||iw(GC,I)&&g===GC.forEach||Cw(ow,Iw(I))?nw:g},rw=sw,F=D(rw),aw=R,dw=Z,lw=De,hw=dw([].reverse),qs=[1,2];aw({target:"Array",proto:!0,forced:String(qs)===String(qs.reverse())},{reverse:function(){return lw(this)&&(this.length=this.length),hw(this)}});var cw=Ig,uw=cw("Array").reverse,fw=J,pw=uw,VC=Array.prototype,mw=function(I){var g=I.reverse;return I===VC||fw(VC,I)&&g===VC.reverse?pw:g},vw=mw,bw=vw,yw=bw,ze=D(yw),ww=ig,Ew=De,Tw=TypeError,xw=Object.getOwnPropertyDescriptor,Ow=ww&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(I){return I instanceof TypeError}}(),Pw=Ow?function(I,g){if(Ew(I)&&!xw(I,"length").writable)throw new Tw("Cannot set read only .length");return I.length=g}:function(I,g){return I.length=g},gr=sA,Dw=TypeError,Hd=function(I,g){if(!delete I[g])throw new Dw("Cannot delete property "+gr(g)+" of "+gr(I))},Rw=R,Nw=xg,Sw=dA,kw=_I,Mw=Sg,Fw=Pw,Bw=Jn,zw=UI,Zw=uA,jC=Hd,Lw=fA,Gw=Lw("splice"),Vw=Math.max,jw=Math.min;Rw({target:"Array",proto:!0,forced:!Gw},{splice:function(g,e){var t=Nw(this),A=Mw(t),C=Sw(g,A),i=arguments.length,n,o,s,r,a,d;for(i===0?n=o=0:i===1?(n=0,o=A-C):(n=i-2,o=jw(Vw(kw(e),0),A-C)),Bw(A+n-o),s=zw(t,o),r=0;r<o;r++)a=C+r,a in t&&Zw(s,r,t[a]);if(s.length=o,n<o){for(r=C;r<A-o;r++)a=r+o,d=r+n,a in t?t[d]=t[a]:jC(t,d);for(r=A;r>A-o+n;r--)jC(t,r-1)}else if(n>o)for(r=A-o;r>C;r--)a=r+o-1,d=r+n-1,a in t?t[d]=t[a]:jC(t,d);for(r=0;r<n;r++)t[r+C]=arguments[r+2];return Fw(t,A-o+n),s}});var Ww=Ig,Yw=Ww("Array").splice,_w=J,Kw=Yw,WC=Array.prototype,Uw=function(I){var g=I.splice;return I===WC||_w(WC,I)&&g===WC.splice?Kw:g},Hw=Uw,Qw=Hw,Xw=Qw,Ug=D(Xw),Jw=R,$w=Hn.includes,qw=z,gE=qw(function(){return!Array(1).includes()});Jw({target:"Array",proto:!0,forced:gE},{includes:function(g){return $w(this,g,arguments.length>1?arguments[1]:void 0)}});var eE=Ig,tE=eE("Array").includes,AE=cg,IE=se,CE=gg,iE=CE("match"),nE=function(I){var g;return AE(I)&&((g=I[iE])!==void 0?!!g:IE(I)==="RegExp")},oE=nE,sE=TypeError,rE=function(I){if(oE(I))throw new sE("The method doesn't accept regular expressions");return I},aE=gg,dE=aE("match"),lE=function(I){var g=/./;try{"/./"[I](g)}catch(e){try{return g[dE]=!1,"/./"[I](g)}catch(t){}}return!1},hE=R,cE=Z,uE=rE,fE=CA,er=qg,pE=lE,mE=cE("".indexOf);hE({target:"String",proto:!0,forced:!pE("includes")},{includes:function(g){return!!~mE(er(fE(this)),er(uE(g)),arguments.length>1?arguments[1]:void 0)}});var vE=Ig,bE=vE("String").includes,tr=J,yE=tE,wE=bE,YC=Array.prototype,_C=String.prototype,EE=function(I){var g=I.includes;return I===YC||tr(YC,I)&&g===YC.includes?yE:typeof I=="string"||I===_C||tr(_C,I)&&g===_C.includes?wE:g},TE=EE,xE=TE,OE=xE,ye=D(OE),PE=R,DE=z,RE=xg,Qd=AC,NE=zd,SE=DE(function(){Qd(1)});PE({target:"Object",stat:!0,forced:SE,sham:!NE},{getPrototypeOf:function(g){return Qd(RE(g))}});var kE=L,ME=kE.Object.getPrototypeOf,FE=ME,BE=FE,zE=BE,Ar=D(zE),ZE=Ig,LE=ZE("Array").concat,GE=J,VE=LE,KC=Array.prototype,jE=function(I){var g=I.concat;return I===KC||GE(KC,I)&&g===KC.concat?VE:g},WE=jE,YE=WE,_E=YE,Xd=D(_E),KE=R,UE=Re.filter,HE=fA,QE=HE("filter");KE({target:"Array",proto:!0,forced:!QE},{filter:function(g){return UE(this,g,arguments.length>1?arguments[1]:void 0)}});var XE=Ig,JE=XE("Array").filter,$E=J,qE=JE,UC=Array.prototype,gT=function(I){var g=I.filter;return I===UC||$E(UC,I)&&g===UC.filter?qE:g},eT=gT,tT=eT,AT=tT,tg=D(AT),Jd=ig,IT=z,$d=Z,CT=AC,iT=hA,nT=Wg,oT=AA.f,qd=$d(oT),sT=$d([].push),rT=Jd&&IT(function(){var I=Object.create(null);return I[2]=2,!qd(I,2)}),Ir=function(I){return function(g){for(var e=nT(g),t=iT(e),A=rT&&CT(e)===null,C=t.length,i=0,n=[],o;C>i;)o=t[i++],(!Jd||(A?o in e:qd(e,o)))&&sT(n,I?[o,e[o]]:e[o]);return n}},aT={entries:Ir(!0),values:Ir(!1)},dT=R,lT=aT.values;dT({target:"Object",stat:!0},{values:function(g){return lT(g)}});var hT=L,cT=hT.Object.values,uT=cT,fT=uT,pT=fT,mT=D(pT),oo=`
631
+ \v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`,vT=Z,bT=CA,yT=qg,Ri=oo,Cr=vT("".replace),wT=RegExp("^["+Ri+"]+"),ET=RegExp("(^|[^"+Ri+"])["+Ri+"]+$"),HC=function(I){return function(g){var e=yT(bT(g));return I&1&&(e=Cr(e,wT,"")),I&2&&(e=Cr(e,ET,"$1")),e}},gl={start:HC(1),end:HC(2),trim:HC(3)},el=X,TT=z,xT=Z,OT=qg,PT=gl.trim,ir=oo,Zt=el.parseInt,nr=el.Symbol,or=nr&&nr.iterator,tl=/^[+-]?0x/i,DT=xT(tl.exec),RT=Zt(ir+"08")!==8||Zt(ir+"0x16")!==22||or&&!TT(function(){Zt(Object(or))}),NT=RT?function(g,e){var t=PT(OT(g));return Zt(t,e>>>0||(DT(tl,t)?16:10))}:Zt,ST=R,sr=NT;ST({global:!0,forced:parseInt!==sr},{parseInt:sr});var kT=L,MT=kT.parseInt,FT=MT,BT=FT,zT=BT,zg=D(zT),ZT=R,LT=_n,GT=Hn.indexOf,VT=wt,Ni=LT([].indexOf),Al=!!Ni&&1/Ni([1],1,-0)<0,jT=Al||!VT("indexOf");ZT({target:"Array",proto:!0,forced:jT},{indexOf:function(g){var e=arguments.length>1?arguments[1]:void 0;return Al?Ni(this,g,e)||0:GT(this,g,e)}});var WT=Ig,YT=WT("Array").indexOf,_T=J,KT=YT,QC=Array.prototype,UT=function(I){var g=I.indexOf;return I===QC||_T(QC,I)&&g===QC.indexOf?KT:g},HT=UT,QT=HT,XT=QT,G=D(XT),JT=R,$T=ig,qT=pA;JT({target:"Object",stat:!0,sham:!$T},{create:qT});var gx=L,ex=gx.Object,tx=function(g,e){return ex.create(g,e)},Ax=tx,Ix=Ax,Cx=Ix,we=D(Cx),Si=L,ix=VI;Si.JSON||(Si.JSON={stringify:JSON.stringify});var nx=function(g,e,t){return ix(Si.JSON.stringify,null,arguments)},ox=nx,sx=ox,rx=sx,Et=D(rx),ax=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",dx=TypeError,lx=function(I,g){if(I<g)throw new dx("Not enough arguments");return I},Il=X,hx=VI,cx=lg,ux=ax,fx=iA,px=KI,mx=lx,vx=Il.Function,bx=/MSIE .\./.test(fx)||ux&&function(){var I=Il.Bun.version.split(".");return I.length<3||I[0]==="0"&&(I[1]<3||I[1]==="3"&&I[2]==="0")}(),Cl=function(I,g){var e=g?2:1;return bx?function(t,A){var C=mx(arguments.length,1)>e,i=cx(t)?t:vx(t),n=C?px(arguments,e):[],o=C?function(){hx(i,this,n)}:i;return g?I(o,A):I(o)}:I},yx=R,il=X,wx=Cl,rr=wx(il.setInterval,!0);yx({global:!0,bind:!0,forced:il.setInterval!==rr},{setInterval:rr});var Ex=R,nl=X,Tx=Cl,ar=Tx(nl.setTimeout,!0);Ex({global:!0,bind:!0,forced:nl.setTimeout!==ar},{setTimeout:ar});var xx=L,Ox=xx.setTimeout,Px=Ox,Hg=D(Px),Dx=xg,dr=dA,Rx=Sg,Nx=function(g){for(var e=Dx(this),t=Rx(e),A=arguments.length,C=dr(A>1?arguments[1]:void 0,t),i=A>2?arguments[2]:void 0,n=i===void 0?t:dr(i,t);n>C;)e[C++]=g;return e},Sx=R,kx=Nx;Sx({target:"Array",proto:!0},{fill:kx});var Mx=Ig,Fx=Mx("Array").fill,Bx=J,zx=Fx,XC=Array.prototype,Zx=function(I){var g=I.fill;return I===XC||Bx(XC,I)&&g===XC.fill?zx:g},Lx=Zx,Gx=Lx,Vx=Gx,EA=D(Vx);function Vg(){return Vg=Object.assign||function(I){for(var g=1;g<arguments.length;g++){var e=arguments[g];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(I[t]=e[t])}return I},Vg.apply(this,arguments)}function kg(I,g){I.prototype=Object.create(g.prototype),I.prototype.constructor=I,I.__proto__=g}function KA(I){if(I===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return I}var ki;typeof Object.assign!="function"?ki=function(g){if(g==null)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(g),t=1;t<arguments.length;t++){var A=arguments[t];if(A!=null)for(var C in A)A.hasOwnProperty(C)&&(e[C]=A[C])}return e}:ki=Object.assign;var Ge=ki,lr=["","webkit","Moz","MS","ms","o"],jx=typeof document=="undefined"?{style:{}}:document.createElement("div"),Wx="function",Ct=Math.round,Ve=Math.abs,so=Date.now;function IC(I,g){for(var e,t,A=g[0].toUpperCase()+g.slice(1),C=0;C<lr.length;){if(e=lr[C],t=e?e+A:g,t in I)return t;C++}}var te;typeof window=="undefined"?te={}:te=window;var ol=IC(jx.style,"touchAction"),sl=ol!==void 0;function Yx(){if(!sl)return!1;var I={},g=te.CSS&&te.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(e){return I[e]=g?te.CSS.supports("touch-action",e):!0}),I}var rl="compute",al="auto",Mi="manipulation",Ze="none",Ut="pan-x",Ht="pan-y",UA=Yx(),_x=/mobile|tablet|ip(ad|hone|od)|android/i,dl="ontouchstart"in te,Kx=IC(te,"PointerEvent")!==void 0,Ux=dl&&_x.test(navigator.userAgent),TA="touch",Hx="pen",ro="mouse",Qx="kinect",Xx=25,bg=1,Ue=2,Ag=4,Tg=8,fI=1,xA=2,OA=4,PA=8,lt=16,Qg=xA|OA,Le=PA|lt,ll=Qg|Le,hl=["x","y"],pI=["clientX","clientY"];function Ae(I,g,e){var t;if(I)if(I.forEach)I.forEach(g,e);else if(I.length!==void 0)for(t=0;t<I.length;)g.call(e,I[t],t,I),t++;else for(t in I)I.hasOwnProperty(t)&&g.call(e,I[t],t,I)}function CC(I,g){return typeof I===Wx?I.apply(g&&g[0]||void 0,g):I}function ke(I,g){return I.indexOf(g)>-1}function Jx(I){if(ke(I,Ze))return Ze;var g=ke(I,Ut),e=ke(I,Ht);return g&&e?Ze:g||e?g?Ut:Ht:ke(I,Mi)?Mi:al}var cl=function(){function I(e,t){this.manager=e,this.set(t)}var g=I.prototype;return g.set=function(t){t===rl&&(t=this.compute()),sl&&this.manager.element.style&&UA[t]&&(this.manager.element.style[ol]=t),this.actions=t.toLowerCase().trim()},g.update=function(){this.set(this.manager.options.touchAction)},g.compute=function(){var t=[];return Ae(this.manager.recognizers,function(A){CC(A.options.enable,[A])&&(t=t.concat(A.getTouchAction()))}),Jx(t.join(" "))},g.preventDefaults=function(t){var A=t.srcEvent,C=t.offsetDirection;if(this.manager.session.prevented){A.preventDefault();return}var i=this.actions,n=ke(i,Ze)&&!UA[Ze],o=ke(i,Ht)&&!UA[Ht],s=ke(i,Ut)&&!UA[Ut];if(n){var r=t.pointers.length===1,a=t.distance<2,d=t.deltaTime<250;if(r&&a&&d)return}if(!(s&&o)&&(n||o&&C&Qg||s&&C&Le))return this.preventSrc(A)},g.preventSrc=function(t){this.manager.session.prevented=!0,t.preventDefault()},I}();function ao(I,g){for(;I;){if(I===g)return!0;I=I.parentNode}return!1}function ul(I){var g=I.length;if(g===1)return{x:Ct(I[0].clientX),y:Ct(I[0].clientY)};for(var e=0,t=0,A=0;A<g;)e+=I[A].clientX,t+=I[A].clientY,A++;return{x:Ct(e/g),y:Ct(t/g)}}function hr(I){for(var g=[],e=0;e<I.pointers.length;)g[e]={clientX:Ct(I.pointers[e].clientX),clientY:Ct(I.pointers[e].clientY)},e++;return{timeStamp:so(),pointers:g,center:ul(g),deltaX:I.deltaX,deltaY:I.deltaY}}function mI(I,g,e){e||(e=hl);var t=g[e[0]]-I[e[0]],A=g[e[1]]-I[e[1]];return Math.sqrt(t*t+A*A)}function Fi(I,g,e){e||(e=hl);var t=g[e[0]]-I[e[0]],A=g[e[1]]-I[e[1]];return Math.atan2(A,t)*180/Math.PI}function fl(I,g){return I===g?fI:Ve(I)>=Ve(g)?I<0?xA:OA:g<0?PA:lt}function $x(I,g){var e=g.center,t=I.offsetDelta||{},A=I.prevDelta||{},C=I.prevInput||{};(g.eventType===bg||C.eventType===Ag)&&(A=I.prevDelta={x:C.deltaX||0,y:C.deltaY||0},t=I.offsetDelta={x:e.x,y:e.y}),g.deltaX=A.x+(e.x-t.x),g.deltaY=A.y+(e.y-t.y)}function pl(I,g,e){return{x:g/I||0,y:e/I||0}}function qx(I,g){return mI(g[0],g[1],pI)/mI(I[0],I[1],pI)}function gO(I,g){return Fi(g[1],g[0],pI)+Fi(I[1],I[0],pI)}function eO(I,g){var e=I.lastInterval||g,t=g.timeStamp-e.timeStamp,A,C,i,n;if(g.eventType!==Tg&&(t>Xx||e.velocity===void 0)){var o=g.deltaX-e.deltaX,s=g.deltaY-e.deltaY,r=pl(t,o,s);C=r.x,i=r.y,A=Ve(r.x)>Ve(r.y)?r.x:r.y,n=fl(o,s),I.lastInterval=g}else A=e.velocity,C=e.velocityX,i=e.velocityY,n=e.direction;g.velocity=A,g.velocityX=C,g.velocityY=i,g.direction=n}function tO(I,g){var e=I.session,t=g.pointers,A=t.length;e.firstInput||(e.firstInput=hr(g)),A>1&&!e.firstMultiple?e.firstMultiple=hr(g):A===1&&(e.firstMultiple=!1);var C=e.firstInput,i=e.firstMultiple,n=i?i.center:C.center,o=g.center=ul(t);g.timeStamp=so(),g.deltaTime=g.timeStamp-C.timeStamp,g.angle=Fi(n,o),g.distance=mI(n,o),$x(e,g),g.offsetDirection=fl(g.deltaX,g.deltaY);var s=pl(g.deltaTime,g.deltaX,g.deltaY);g.overallVelocityX=s.x,g.overallVelocityY=s.y,g.overallVelocity=Ve(s.x)>Ve(s.y)?s.x:s.y,g.scale=i?qx(i.pointers,t):1,g.rotation=i?gO(i.pointers,t):0,g.maxPointers=e.prevInput?g.pointers.length>e.prevInput.maxPointers?g.pointers.length:e.prevInput.maxPointers:g.pointers.length,eO(e,g);var r=I.element,a=g.srcEvent,d;a.composedPath?d=a.composedPath()[0]:a.path?d=a.path[0]:d=a.target,ao(d,r)&&(r=d),g.target=r}function AO(I,g,e){var t=e.pointers.length,A=e.changedPointers.length,C=g&bg&&t-A===0,i=g&(Ag|Tg)&&t-A===0;e.isFirst=!!C,e.isFinal=!!i,C&&(I.session={}),e.eventType=g,tO(I,e),I.emit("hammer.input",e),I.recognize(e),I.session.prevInput=e}function Qt(I){return I.trim().split(/\s+/g)}function Lt(I,g,e){Ae(Qt(g),function(t){I.addEventListener(t,e,!1)})}function Gt(I,g,e){Ae(Qt(g),function(t){I.removeEventListener(t,e,!1)})}function cr(I){var g=I.ownerDocument||I;return g.defaultView||g.parentWindow||window}var Tt=function(){function I(e,t){var A=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(C){CC(e.options.enable,[e])&&A.handler(C)},this.init()}var g=I.prototype;return g.handler=function(){},g.init=function(){this.evEl&&Lt(this.element,this.evEl,this.domHandler),this.evTarget&&Lt(this.target,this.evTarget,this.domHandler),this.evWin&&Lt(cr(this.element),this.evWin,this.domHandler)},g.destroy=function(){this.evEl&&Gt(this.element,this.evEl,this.domHandler),this.evTarget&&Gt(this.target,this.evTarget,this.domHandler),this.evWin&&Gt(cr(this.element),this.evWin,this.domHandler)},I}();function je(I,g,e){if(I.indexOf&&!e)return I.indexOf(g);for(var t=0;t<I.length;){if(e&&I[t][e]==g||!e&&I[t]===g)return t;t++}return-1}var IO={pointerdown:bg,pointermove:Ue,pointerup:Ag,pointercancel:Tg,pointerout:Tg},CO={2:TA,3:Hx,4:ro,5:Qx},ml="pointerdown",vl="pointermove pointerup pointercancel";te.MSPointerEvent&&!te.PointerEvent&&(ml="MSPointerDown",vl="MSPointerMove MSPointerUp MSPointerCancel");var bl=function(I){kg(g,I);function g(){var t,A=g.prototype;return A.evEl=ml,A.evWin=vl,t=I.apply(this,arguments)||this,t.store=t.manager.session.pointerEvents=[],t}var e=g.prototype;return e.handler=function(A){var C=this.store,i=!1,n=A.type.toLowerCase().replace("ms",""),o=IO[n],s=CO[A.pointerType]||A.pointerType,r=s===TA,a=je(C,A.pointerId,"pointerId");o&bg&&(A.button===0||r)?a<0&&(C.push(A),a=C.length-1):o&(Ag|Tg)&&(i=!0),!(a<0)&&(C[a]=A,this.callback(this.manager,o,{pointers:C,changedPointers:[A],pointerType:s,srcEvent:A}),i&&C.splice(a,1))},g}(Tt);function Xt(I){return Array.prototype.slice.call(I,0)}function lo(I,g,e){for(var t=[],A=[],C=0;C<I.length;){var i=g?I[C][g]:I[C];je(A,i)<0&&t.push(I[C]),A[C]=i,C++}return e&&(g?t=t.sort(function(n,o){return n[g]>o[g]}):t=t.sort()),t}var iO={touchstart:bg,touchmove:Ue,touchend:Ag,touchcancel:Tg},nO="touchstart touchmove touchend touchcancel",ho=function(I){kg(g,I);function g(){var t;return g.prototype.evTarget=nO,t=I.apply(this,arguments)||this,t.targetIds={},t}var e=g.prototype;return e.handler=function(A){var C=iO[A.type],i=oO.call(this,A,C);i&&this.callback(this.manager,C,{pointers:i[0],changedPointers:i[1],pointerType:TA,srcEvent:A})},g}(Tt);function oO(I,g){var e=Xt(I.touches),t=this.targetIds;if(g&(bg|Ue)&&e.length===1)return t[e[0].identifier]=!0,[e,e];var A,C,i=Xt(I.changedTouches),n=[],o=this.target;if(C=e.filter(function(s){return ao(s.target,o)}),g===bg)for(A=0;A<C.length;)t[C[A].identifier]=!0,A++;for(A=0;A<i.length;)t[i[A].identifier]&&n.push(i[A]),g&(Ag|Tg)&&delete t[i[A].identifier],A++;if(n.length)return[lo(C.concat(n),"identifier",!0),n]}var sO={mousedown:bg,mousemove:Ue,mouseup:Ag},rO="mousedown",aO="mousemove mouseup",co=function(I){kg(g,I);function g(){var t,A=g.prototype;return A.evEl=rO,A.evWin=aO,t=I.apply(this,arguments)||this,t.pressed=!1,t}var e=g.prototype;return e.handler=function(A){var C=sO[A.type];C&bg&&A.button===0&&(this.pressed=!0),C&Ue&&A.which!==1&&(C=Ag),this.pressed&&(C&Ag&&(this.pressed=!1),this.callback(this.manager,C,{pointers:[A],changedPointers:[A],pointerType:ro,srcEvent:A}))},g}(Tt),dO=2500,ur=25;function fr(I){var g=I.changedPointers,e=g[0];if(e.identifier===this.primaryTouch){var t={x:e.clientX,y:e.clientY},A=this.lastTouches;this.lastTouches.push(t);var C=function(){var n=A.indexOf(t);n>-1&&A.splice(n,1)};setTimeout(C,dO)}}function lO(I,g){I&bg?(this.primaryTouch=g.changedPointers[0].identifier,fr.call(this,g)):I&(Ag|Tg)&&fr.call(this,g)}function hO(I){for(var g=I.srcEvent.clientX,e=I.srcEvent.clientY,t=0;t<this.lastTouches.length;t++){var A=this.lastTouches[t],C=Math.abs(g-A.x),i=Math.abs(e-A.y);if(C<=ur&&i<=ur)return!0}return!1}var yl=function(){var I=function(g){kg(e,g);function e(A,C){var i;return i=g.call(this,A,C)||this,i.handler=function(n,o,s){var r=s.pointerType===TA,a=s.pointerType===ro;if(!(a&&s.sourceCapabilities&&s.sourceCapabilities.firesTouchEvents)){if(r)lO.call(KA(KA(i)),o,s);else if(a&&hO.call(KA(KA(i)),s))return;i.callback(n,o,s)}},i.touch=new ho(i.manager,i.handler),i.mouse=new co(i.manager,i.handler),i.primaryTouch=null,i.lastTouches=[],i}var t=e.prototype;return t.destroy=function(){this.touch.destroy(),this.mouse.destroy()},e}(Tt);return I}();function cO(I){var g,e=I.options.inputClass;return e?g=e:Kx?g=bl:Ux?g=ho:dl?g=yl:g=co,new g(I,AO)}function it(I,g,e){return Array.isArray(I)?(Ae(I,e[g],e),!0):!1}var iI=1,Ng=2,ht=4,Ee=8,Ie=Ee,Jt=16,_g=32,uO=1;function fO(){return uO++}function HA(I,g){var e=g.manager;return e?e.get(I):I}function pr(I){return I&Jt?"cancel":I&Ee?"end":I&ht?"move":I&Ng?"start":""}var DA=function(){function I(e){e===void 0&&(e={}),this.options=Vg({enable:!0},e),this.id=fO(),this.manager=null,this.state=iI,this.simultaneous={},this.requireFail=[]}var g=I.prototype;return g.set=function(t){return Ge(this.options,t),this.manager&&this.manager.touchAction.update(),this},g.recognizeWith=function(t){if(it(t,"recognizeWith",this))return this;var A=this.simultaneous;return t=HA(t,this),A[t.id]||(A[t.id]=t,t.recognizeWith(this)),this},g.dropRecognizeWith=function(t){return it(t,"dropRecognizeWith",this)?this:(t=HA(t,this),delete this.simultaneous[t.id],this)},g.requireFailure=function(t){if(it(t,"requireFailure",this))return this;var A=this.requireFail;return t=HA(t,this),je(A,t)===-1&&(A.push(t),t.requireFailure(this)),this},g.dropRequireFailure=function(t){if(it(t,"dropRequireFailure",this))return this;t=HA(t,this);var A=je(this.requireFail,t);return A>-1&&this.requireFail.splice(A,1),this},g.hasRequireFailures=function(){return this.requireFail.length>0},g.canRecognizeWith=function(t){return!!this.simultaneous[t.id]},g.emit=function(t){var A=this,C=this.state;function i(n){A.manager.emit(n,t)}C<Ee&&i(A.options.event+pr(C)),i(A.options.event),t.additionalEvent&&i(t.additionalEvent),C>=Ee&&i(A.options.event+pr(C))},g.tryEmit=function(t){if(this.canEmit())return this.emit(t);this.state=_g},g.canEmit=function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(_g|iI)))return!1;t++}return!0},g.recognize=function(t){var A=Ge({},t);if(!CC(this.options.enable,[this,A])){this.reset(),this.state=_g;return}this.state&(Ie|Jt|_g)&&(this.state=iI),this.state=this.process(A),this.state&(Ng|ht|Ee|Jt)&&this.tryEmit(A)},g.process=function(t){},g.getTouchAction=function(){},g.reset=function(){},I}(),Bi=function(I){kg(g,I);function g(t){var A;return t===void 0&&(t={}),A=I.call(this,Vg({event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},t))||this,A.pTime=!1,A.pCenter=!1,A._timer=null,A._input=null,A.count=0,A}var e=g.prototype;return e.getTouchAction=function(){return[Mi]},e.process=function(A){var C=this,i=this.options,n=A.pointers.length===i.pointers,o=A.distance<i.threshold,s=A.deltaTime<i.time;if(this.reset(),A.eventType&bg&&this.count===0)return this.failTimeout();if(o&&s&&n){if(A.eventType!==Ag)return this.failTimeout();var r=this.pTime?A.timeStamp-this.pTime<i.interval:!0,a=!this.pCenter||mI(this.pCenter,A.center)<i.posThreshold;this.pTime=A.timeStamp,this.pCenter=A.center,!a||!r?this.count=1:this.count+=1,this._input=A;var d=this.count%i.taps;if(d===0)return this.hasRequireFailures()?(this._timer=setTimeout(function(){C.state=Ie,C.tryEmit()},i.interval),Ng):Ie}return _g},e.failTimeout=function(){var A=this;return this._timer=setTimeout(function(){A.state=_g},this.options.interval),_g},e.reset=function(){clearTimeout(this._timer)},e.emit=function(){this.state===Ie&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))},g}(DA),ct=function(I){kg(g,I);function g(t){return t===void 0&&(t={}),I.call(this,Vg({pointers:1},t))||this}var e=g.prototype;return e.attrTest=function(A){var C=this.options.pointers;return C===0||A.pointers.length===C},e.process=function(A){var C=this.state,i=A.eventType,n=C&(Ng|ht),o=this.attrTest(A);return n&&(i&Tg||!o)?C|Jt:n||o?i&Ag?C|Ee:C&Ng?C|ht:Ng:_g},g}(DA);function wl(I){return I===lt?"down":I===PA?"up":I===xA?"left":I===OA?"right":""}var uo=function(I){kg(g,I);function g(t){var A;return t===void 0&&(t={}),A=I.call(this,Vg({event:"pan",threshold:10,pointers:1,direction:ll},t))||this,A.pX=null,A.pY=null,A}var e=g.prototype;return e.getTouchAction=function(){var A=this.options.direction,C=[];return A&Qg&&C.push(Ht),A&Le&&C.push(Ut),C},e.directionTest=function(A){var C=this.options,i=!0,n=A.distance,o=A.direction,s=A.deltaX,r=A.deltaY;return o&C.direction||(C.direction&Qg?(o=s===0?fI:s<0?xA:OA,i=s!==this.pX,n=Math.abs(A.deltaX)):(o=r===0?fI:r<0?PA:lt,i=r!==this.pY,n=Math.abs(A.deltaY))),A.direction=o,i&&n>C.threshold&&o&C.direction},e.attrTest=function(A){return ct.prototype.attrTest.call(this,A)&&(this.state&Ng||!(this.state&Ng)&&this.directionTest(A))},e.emit=function(A){this.pX=A.deltaX,this.pY=A.deltaY;var C=wl(A.direction);C&&(A.additionalEvent=this.options.event+C),I.prototype.emit.call(this,A)},g}(ct),El=function(I){kg(g,I);function g(t){return t===void 0&&(t={}),I.call(this,Vg({event:"swipe",threshold:10,velocity:.3,direction:Qg|Le,pointers:1},t))||this}var e=g.prototype;return e.getTouchAction=function(){return uo.prototype.getTouchAction.call(this)},e.attrTest=function(A){var C=this.options.direction,i;return C&(Qg|Le)?i=A.overallVelocity:C&Qg?i=A.overallVelocityX:C&Le&&(i=A.overallVelocityY),I.prototype.attrTest.call(this,A)&&C&A.offsetDirection&&A.distance>this.options.threshold&&A.maxPointers===this.options.pointers&&Ve(i)>this.options.velocity&&A.eventType&Ag},e.emit=function(A){var C=wl(A.offsetDirection);C&&this.manager.emit(this.options.event+C,A),this.manager.emit(this.options.event,A)},g}(ct),Tl=function(I){kg(g,I);function g(t){return t===void 0&&(t={}),I.call(this,Vg({event:"pinch",threshold:0,pointers:2},t))||this}var e=g.prototype;return e.getTouchAction=function(){return[Ze]},e.attrTest=function(A){return I.prototype.attrTest.call(this,A)&&(Math.abs(A.scale-1)>this.options.threshold||this.state&Ng)},e.emit=function(A){if(A.scale!==1){var C=A.scale<1?"in":"out";A.additionalEvent=this.options.event+C}I.prototype.emit.call(this,A)},g}(ct),xl=function(I){kg(g,I);function g(t){return t===void 0&&(t={}),I.call(this,Vg({event:"rotate",threshold:0,pointers:2},t))||this}var e=g.prototype;return e.getTouchAction=function(){return[Ze]},e.attrTest=function(A){return I.prototype.attrTest.call(this,A)&&(Math.abs(A.rotation)>this.options.threshold||this.state&Ng)},g}(ct),Ol=function(I){kg(g,I);function g(t){var A;return t===void 0&&(t={}),A=I.call(this,Vg({event:"press",pointers:1,time:251,threshold:9},t))||this,A._timer=null,A._input=null,A}var e=g.prototype;return e.getTouchAction=function(){return[al]},e.process=function(A){var C=this,i=this.options,n=A.pointers.length===i.pointers,o=A.distance<i.threshold,s=A.deltaTime>i.time;if(this._input=A,!o||!n||A.eventType&(Ag|Tg)&&!s)this.reset();else if(A.eventType&bg)this.reset(),this._timer=setTimeout(function(){C.state=Ie,C.tryEmit()},i.time);else if(A.eventType&Ag)return Ie;return _g},e.reset=function(){clearTimeout(this._timer)},e.emit=function(A){this.state===Ie&&(A&&A.eventType&Ag?this.manager.emit(this.options.event+"up",A):(this._input.timeStamp=so(),this.manager.emit(this.options.event,this._input)))},g}(DA),Pl={domEvents:!1,touchAction:rl,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},mr=[[xl,{enable:!1}],[Tl,{enable:!1},["rotate"]],[El,{direction:Qg}],[uo,{direction:Qg},["swipe"]],[Bi],[Bi,{event:"doubletap",taps:2},["tap"]],[Ol]],pO=1,vr=2;function br(I,g){var e=I.element;if(e.style){var t;Ae(I.options.cssProps,function(A,C){t=IC(e.style,C),g?(I.oldCssProps[t]=e.style[t],e.style[t]=A):e.style[t]=I.oldCssProps[t]||""}),g||(I.oldCssProps={})}}function mO(I,g){var e=document.createEvent("Event");e.initEvent(I,!0,!0),e.gesture=g,g.target.dispatchEvent(e)}var yr=function(){function I(e,t){var A=this;this.options=Ge({},Pl,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=cO(this),this.touchAction=new cl(this,this.options.touchAction),br(this,!0),Ae(this.options.recognizers,function(C){var i=A.add(new C[0](C[1]));C[2]&&i.recognizeWith(C[2]),C[3]&&i.requireFailure(C[3])},this)}var g=I.prototype;return g.set=function(t){return Ge(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},g.stop=function(t){this.session.stopped=t?vr:pO},g.recognize=function(t){var A=this.session;if(!A.stopped){this.touchAction.preventDefaults(t);var C,i=this.recognizers,n=A.curRecognizer;(!n||n&&n.state&Ie)&&(A.curRecognizer=null,n=null);for(var o=0;o<i.length;)C=i[o],A.stopped!==vr&&(!n||C===n||C.canRecognizeWith(n))?C.recognize(t):C.reset(),!n&&C.state&(Ng|ht|Ee)&&(A.curRecognizer=C,n=C),o++}},g.get=function(t){if(t instanceof DA)return t;for(var A=this.recognizers,C=0;C<A.length;C++)if(A[C].options.event===t)return A[C];return null},g.add=function(t){if(it(t,"add",this))return this;var A=this.get(t.options.event);return A&&this.remove(A),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},g.remove=function(t){if(it(t,"remove",this))return this;var A=this.get(t);if(t){var C=this.recognizers,i=je(C,A);i!==-1&&(C.splice(i,1),this.touchAction.update())}return this},g.on=function(t,A){if(t===void 0||A===void 0)return this;var C=this.handlers;return Ae(Qt(t),function(i){C[i]=C[i]||[],C[i].push(A)}),this},g.off=function(t,A){if(t===void 0)return this;var C=this.handlers;return Ae(Qt(t),function(i){A?C[i]&&C[i].splice(je(C[i],A),1):delete C[i]}),this},g.emit=function(t,A){this.options.domEvents&&mO(t,A);var C=this.handlers[t]&&this.handlers[t].slice();if(!(!C||!C.length)){A.type=t,A.preventDefault=function(){A.srcEvent.preventDefault()};for(var i=0;i<C.length;)C[i](A),i++}},g.destroy=function(){this.element&&br(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null},I}(),vO={touchstart:bg,touchmove:Ue,touchend:Ag,touchcancel:Tg},bO="touchstart",yO="touchstart touchmove touchend touchcancel",wO=function(I){kg(g,I);function g(){var t,A=g.prototype;return A.evTarget=bO,A.evWin=yO,t=I.apply(this,arguments)||this,t.started=!1,t}var e=g.prototype;return e.handler=function(A){var C=vO[A.type];if(C===bg&&(this.started=!0),!!this.started){var i=EO.call(this,A,C);C&(Ag|Tg)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,C,{pointers:i[0],changedPointers:i[1],pointerType:TA,srcEvent:A})}},g}(Tt);function EO(I,g){var e=Xt(I.touches),t=Xt(I.changedTouches);return g&(Ag|Tg)&&(e=lo(e.concat(t),"identifier",!0)),[e,t]}function Dl(I,g,e){var t="DEPRECATED METHOD: "+g+`
632
+ `+e+` AT
633
+ `;return function(){var A=new Error("get-stack-trace"),C=A&&A.stack?A.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",i=window.console&&(window.console.warn||window.console.log);return i&&i.call(window.console,t,C),I.apply(this,arguments)}}var Rl=Dl(function(I,g,e){for(var t=Object.keys(g),A=0;A<t.length;)(!e||e&&I[t[A]]===void 0)&&(I[t[A]]=g[t[A]]),A++;return I},"extend","Use `assign`."),TO=Dl(function(I,g){return Rl(I,g,!0)},"merge","Use `assign`.");function xO(I,g,e){var t=g.prototype,A;A=I.prototype=Object.create(t),A.constructor=I,A._super=t,e&&Ge(A,e)}function wr(I,g){return function(){return I.apply(g,arguments)}}var Nl=function(){var I=function(e,t){return t===void 0&&(t={}),new yr(e,Vg({recognizers:mr.concat()},t))};return I.VERSION="2.0.17-rc",I.DIRECTION_ALL=ll,I.DIRECTION_DOWN=lt,I.DIRECTION_LEFT=xA,I.DIRECTION_RIGHT=OA,I.DIRECTION_UP=PA,I.DIRECTION_HORIZONTAL=Qg,I.DIRECTION_VERTICAL=Le,I.DIRECTION_NONE=fI,I.DIRECTION_DOWN=lt,I.INPUT_START=bg,I.INPUT_MOVE=Ue,I.INPUT_END=Ag,I.INPUT_CANCEL=Tg,I.STATE_POSSIBLE=iI,I.STATE_BEGAN=Ng,I.STATE_CHANGED=ht,I.STATE_ENDED=Ee,I.STATE_RECOGNIZED=Ie,I.STATE_CANCELLED=Jt,I.STATE_FAILED=_g,I.Manager=yr,I.Input=Tt,I.TouchAction=cl,I.TouchInput=ho,I.MouseInput=co,I.PointerEventInput=bl,I.TouchMouseInput=yl,I.SingleTouchInput=wO,I.Recognizer=DA,I.AttrRecognizer=ct,I.Tap=Bi,I.Pan=uo,I.Swipe=El,I.Pinch=Tl,I.Rotate=xl,I.Press=Ol,I.on=Lt,I.off=Gt,I.each=Ae,I.merge=TO,I.extend=Rl,I.bindFn=wr,I.assign=Ge,I.inherit=xO,I.bindFn=wr,I.prefixed=IC,I.toArray=Xt,I.inArray=je,I.uniqueArray=lo,I.splitStr=Qt,I.boolOrFn=CC,I.hasParent=ao,I.addEventListeners=Lt,I.removeEventListeners=Gt,I.defaults=Ge({},Pl,{preset:mr}),I}();Nl.defaults;var OO=Nl,Sl=Ny("DELETE");function PO(I){for(var g=arguments.length,e=new Array(g>1?g-1:0),t=1;t<g;t++)e[t-1]=arguments[t];return kl({},I,...e)}function kl(){let I=vI(...arguments);return Fl(I),I}function vI(){for(var I=arguments.length,g=new Array(I),e=0;e<I;e++)g[e]=arguments[e];if(g.length<2)return g[0];if(g.length>2)return vI(kl(g[0],g[1]),...Zg(g).call(g,2));let t=g[0],A=g[1];if(t instanceof Date&&A instanceof Date)return t.setTime(A.getTime()),t;for(let C of a0(A))Object.prototype.propertyIsEnumerable.call(A,C)&&(A[C]===Sl?delete t[C]:t[C]!==null&&A[C]!==null&&typeof t[C]=="object"&&typeof A[C]=="object"&&!B(t[C])&&!B(A[C])?t[C]=vI(t[C],A[C]):t[C]=Ml(A[C]));return t}function Ml(I){return B(I)?ag(I).call(I,g=>Ml(g)):typeof I=="object"&&I!==null?I instanceof Date?new Date(I.getTime()):vI({},I):I}function Fl(I){for(let g of U(I))I[g]===Sl?delete I[g]:typeof I[g]=="object"&&I[g]!==null&&Fl(I[g])}function iC(){for(var I=arguments.length,g=new Array(I),e=0;e<I;e++)g[e]=arguments[e];return DO(g.length?g:[uI()])}function DO(I){let[g,e,t]=RO(I),A=1,C=()=>{let i=2091639*g+A*23283064365386963e-26;return g=e,e=t,t=i-(A=i|0)};return C.uint32=()=>C()*4294967296,C.fract53=()=>C()+(C()*2097152|0)*11102230246251565e-32,C.algorithm="Alea",C.seed=I,C.version="0.9",C}function RO(){let I=NO(),g=I(" "),e=I(" "),t=I(" ");for(let A=0;A<arguments.length;A++)g-=I(A<0||arguments.length<=A?void 0:arguments[A]),g<0&&(g+=1),e-=I(A<0||arguments.length<=A?void 0:arguments[A]),e<0&&(e+=1),t-=I(A<0||arguments.length<=A?void 0:arguments[A]),t<0&&(t+=1);return[g,e,t]}function NO(){let I=4022871197;return function(g){let e=g.toString();for(let t=0;t<e.length;t++){I+=e.charCodeAt(t);let A=.02519603282416938*I;I=A>>>0,A-=I,A*=I,I=A>>>0,A-=I,I+=A*4294967296}return(I>>>0)*23283064365386963e-26}}function SO(){let I=()=>{};return{on:I,off:I,destroy:I,emit:I,get(){return{set:I}}}}var fo=typeof window!="undefined"?window.Hammer||OO:function(){return SO()};function Kg(I){var g;this._cleanupQueue=[],this.active=!1,this._dom={container:I,overlay:document.createElement("div")},this._dom.overlay.classList.add("vis-overlay"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push(()=>{this._dom.overlay.parentNode.removeChild(this._dom.overlay)});let e=fo(this._dom.overlay);e.on("tap",b(g=this._onTapOverlay).call(g,this)),this._cleanupQueue.push(()=>{e.destroy()});let t=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];F(t).call(t,A=>{e.on(A,C=>{C.srcEvent.stopPropagation()})}),document&&document.body&&(this._onClick=A=>{kO(A.target,I)||this.deactivate()},document.body.addEventListener("click",this._onClick),this._cleanupQueue.push(()=>{document.body.removeEventListener("click",this._onClick)})),this._escListener=A=>{("key"in A?A.key==="Escape":A.keyCode===27)&&this.deactivate()}}$a(Kg.prototype);Kg.current=null;Kg.prototype.destroy=function(){this.deactivate();for(let e of ze(I=Ug(g=this._cleanupQueue).call(g,0)).call(I)){var I,g;e()}};Kg.prototype.activate=function(){Kg.current&&Kg.current.deactivate(),Kg.current=this,this.active=!0,this._dom.overlay.style.display="none",this._dom.container.classList.add("vis-active"),this.emit("change"),this.emit("activate"),document.body.addEventListener("keydown",this._escListener)};Kg.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display="block",this._dom.container.classList.remove("vis-active"),document.body.removeEventListener("keydown",this._escListener),this.emit("change"),this.emit("deactivate")};Kg.prototype._onTapOverlay=function(I){this.activate(),I.srcEvent.stopPropagation()};function kO(I,g){for(;I;){if(I===g)return!0;I=I.parentNode}return!1}var MO=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,FO=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,BO=/^rgb\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *\)$/i,zO=/^rgba\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *([01]|0?\.\d+) *\)$/i;function ue(I){if(I)for(;I.hasChildNodes()===!0;){let g=I.firstChild;g&&(ue(g),I.removeChild(g))}}function pe(I){return I instanceof String||typeof I=="string"}function Er(I){return typeof I=="object"&&I!==null}function We(I,g,e,t){let A=!1;t===!0&&(A=g[e]===null&&I[e]!==void 0),A?delete I[e]:I[e]=g[e]}function Bl(I,g){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;for(let t in I)if(g[t]!==void 0)if(g[t]===null||typeof g[t]!="object")We(I,g,t,e);else{let A=I[t],C=g[t];Er(A)&&Er(C)&&Bl(A,C,e)}}function xt(I,g,e){let t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(B(e))throw new TypeError("Arrays are not supported by deepExtend");for(let A=0;A<I.length;A++){let C=I[A];if(Object.prototype.hasOwnProperty.call(e,C))if(e[C]&&e[C].constructor===Object)g[C]===void 0&&(g[C]={}),g[C].constructor===Object?_(g[C],e[C],!1,t):We(g,e,C,t);else{if(B(e[C]))throw new TypeError("Arrays are not supported by deepExtend");We(g,e,C,t)}}return g}function bI(I,g,e){let t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(B(e))throw new TypeError("Arrays are not supported by deepExtend");for(let A in e)if(Object.prototype.hasOwnProperty.call(e,A)&&!ye(I).call(I,A))if(e[A]&&e[A].constructor===Object)g[A]===void 0&&(g[A]={}),g[A].constructor===Object?_(g[A],e[A]):We(g,e,A,t);else if(B(e[A])){g[A]=[];for(let C=0;C<e[A].length;C++)g[A].push(e[A][C])}else We(g,e,A,t);return g}function _(I,g){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;for(let C in g)if(Object.prototype.hasOwnProperty.call(g,C)||e===!0)if(typeof g[C]=="object"&&g[C]!==null&&Ar(g[C])===Object.prototype)I[C]===void 0?I[C]=_({},g[C],e):typeof I[C]=="object"&&I[C]!==null&&Ar(I[C])===Object.prototype?_(I[C],g[C],e):We(I,g,C,t);else if(B(g[C])){var A;I[C]=Zg(A=g[C]).call(A)}else We(I,g,C,t);return I}function yI(I,g){return[...I,g]}function ZO(I){return Zg(I).call(I)}function LO(I){return I.getBoundingClientRect().left}function GO(I){return I.getBoundingClientRect().top}function S(I,g){if(B(I)){let e=I.length;for(let t=0;t<e;t++)g(I[t],t,I)}else for(let e in I)Object.prototype.hasOwnProperty.call(I,e)&&g(I[e],e,I)}function po(I){let g;switch(I.length){case 3:case 4:return g=FO.exec(I),g?{r:zg(g[1]+g[1],16),g:zg(g[2]+g[2],16),b:zg(g[3]+g[3],16)}:null;case 6:case 7:return g=MO.exec(I),g?{r:zg(g[1],16),g:zg(g[2],16),b:zg(g[3],16)}:null;default:return null}}function Rg(I,g){if(ye(I).call(I,"rgba"))return I;if(ye(I).call(I,"rgb")){let e=I.substr(G(I).call(I,"(")+1).replace(")","").split(",");return"rgba("+e[0]+","+e[1]+","+e[2]+","+g+")"}else{let e=po(I);return e==null?I:"rgba("+e.r+","+e.g+","+e.b+","+g+")"}}function zl(I,g,e){var t;return"#"+Zg(t=((1<<24)+(I<<16)+(g<<8)+e).toString(16)).call(t,1)}function zi(I,g){if(pe(I)){let t=I;if(Ll(t)){var e;let A=ag(e=t.substr(4).substr(0,t.length-5).split(",")).call(e,function(C){return zg(C)});t=zl(A[0],A[1],A[2])}if(Zl(t)===!0){let A=VO(t),C={h:A.h,s:A.s*.8,v:Math.min(1,A.v*1.02)},i={h:A.h,s:Math.min(1,A.s*1.25),v:A.v*.8},n=Zi(i.h,i.s,i.v),o=Zi(C.h,C.s,C.v);return{background:t,border:n,highlight:{background:o,border:n},hover:{background:o,border:n}}}else return{background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else return g?{background:I.background||g.background,border:I.border||g.border,highlight:pe(I.highlight)?{border:I.highlight,background:I.highlight}:{background:I.highlight&&I.highlight.background||g.highlight.background,border:I.highlight&&I.highlight.border||g.highlight.border},hover:pe(I.hover)?{border:I.hover,background:I.hover}:{border:I.hover&&I.hover.border||g.hover.border,background:I.hover&&I.hover.background||g.hover.background}}:{background:I.background||void 0,border:I.border||void 0,highlight:pe(I.highlight)?{border:I.highlight,background:I.highlight}:{background:I.highlight&&I.highlight.background||void 0,border:I.highlight&&I.highlight.border||void 0},hover:pe(I.hover)?{border:I.hover,background:I.hover}:{border:I.hover&&I.hover.border||void 0,background:I.hover&&I.hover.background||void 0}}}function Bt(I,g,e){I=I/255,g=g/255,e=e/255;let t=Math.min(I,Math.min(g,e)),A=Math.max(I,Math.max(g,e));if(t===A)return{h:0,s:0,v:t};let C=I===t?g-e:e===t?I-g:e-I,n=60*((I===t?3:e===t?1:5)-C/(A-t))/360,o=(A-t)/A;return{h:n,s:o,v:A}}function nI(I,g,e){let t,A,C,i=Math.floor(I*6),n=I*6-i,o=e*(1-g),s=e*(1-n*g),r=e*(1-(1-n)*g);switch(i%6){case 0:t=e,A=r,C=o;break;case 1:t=s,A=e,C=o;break;case 2:t=o,A=e,C=r;break;case 3:t=o,A=s,C=e;break;case 4:t=r,A=o,C=e;break;case 5:t=e,A=o,C=s;break}return{r:Math.floor(t*255),g:Math.floor(A*255),b:Math.floor(C*255)}}function Zi(I,g,e){let t=nI(I,g,e);return zl(t.r,t.g,t.b)}function VO(I){let g=po(I);if(!g)throw new TypeError("'".concat(I,"' is not a valid color."));return Bt(g.r,g.g,g.b)}function Zl(I){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(I)}function Ll(I){return BO.test(I)}function jO(I){return zO.test(I)}function Te(I){if(I===null||typeof I!="object")return null;if(I instanceof Element)return I;let g=we(I);for(let e in I)Object.prototype.hasOwnProperty.call(I,e)&&typeof I[e]=="object"&&(g[e]=Te(I[e]));return g}function Dg(I,g,e){let t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},A=function(l){return l!=null},C=function(l){return l!==null&&typeof l=="object"},i=function(l){for(let h in l)if(Object.prototype.hasOwnProperty.call(l,h))return!1;return!0};if(!C(I))throw new Error("Parameter mergeTarget must be an object");if(!C(g))throw new Error("Parameter options must be an object");if(!A(e))throw new Error("Parameter option must have a value");if(!C(t))throw new Error("Parameter globalOptions must be an object");let n=function(l,h,c){C(l[c])||(l[c]={});let p=h[c],u=l[c];for(let m in p)Object.prototype.hasOwnProperty.call(p,m)&&(u[m]=p[m])},o=g[e],r=C(t)&&!i(t)?t[e]:void 0,a=r?r.enabled:void 0;if(o===void 0)return;if(typeof o=="boolean"){C(I[e])||(I[e]={}),I[e].enabled=o;return}if(o===null&&!C(I[e]))if(A(r))I[e]=we(r);else return;if(!C(o))return;let d=!0;o.enabled!==void 0?d=o.enabled:a!==void 0&&(d=r.enabled),n(I,g,e),I[e].enabled=d}var WO={linear(I){return I},easeInQuad(I){return I*I},easeOutQuad(I){return I*(2-I)},easeInOutQuad(I){return I<.5?2*I*I:-1+(4-2*I)*I},easeInCubic(I){return I*I*I},easeOutCubic(I){return--I*I*I+1},easeInOutCubic(I){return I<.5?4*I*I*I:(I-1)*(2*I-2)*(2*I-2)+1},easeInQuart(I){return I*I*I*I},easeOutQuart(I){return 1- --I*I*I*I},easeInOutQuart(I){return I<.5?8*I*I*I*I:1-8*--I*I*I*I},easeInQuint(I){return I*I*I*I*I},easeOutQuint(I){return 1+--I*I*I*I*I},easeInOutQuint(I){return I<.5?16*I*I*I*I*I:1+16*--I*I*I*I*I}};function fe(I,g){let e;B(g)||(g=[g]);for(let t of I)if(t){e=t[g[0]];for(let A=1;A<g.length;A++)e&&(e=e[g[A]]);if(typeof e!="undefined")break}return e}var YO={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"},_O=class{constructor(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.pixelRatio=g,this.generated=!1,this.centerCoordinates={x:289/2,y:289/2},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=()=>{},this.closeCallback=()=>{},this._create()}insertTo(g){this.hammer!==void 0&&(this.hammer.destroy(),this.hammer=void 0),this.container=g,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}setUpdateCallback(g){if(typeof g=="function")this.updateCallback=g;else throw new Error("Function attempted to set as colorPicker update callback is not a function.")}setCloseCallback(g){if(typeof g=="function")this.closeCallback=g;else throw new Error("Function attempted to set as colorPicker closing callback is not a function.")}_isColorString(g){if(typeof g=="string")return YO[g]}setColor(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(g==="none")return;let t,A=this._isColorString(g);if(A!==void 0&&(g=A),pe(g)===!0){if(Ll(g)===!0){let C=g.substr(4).substr(0,g.length-5).split(",");t={r:C[0],g:C[1],b:C[2],a:1}}else if(jO(g)===!0){let C=g.substr(5).substr(0,g.length-6).split(",");t={r:C[0],g:C[1],b:C[2],a:C[3]}}else if(Zl(g)===!0){let C=po(g);t={r:C.r,g:C.g,b:C.b,a:1}}}else if(g instanceof Object&&g.r!==void 0&&g.g!==void 0&&g.b!==void 0){let C=g.a!==void 0?g.a:"1.0";t={r:g.r,g:g.g,b:g.b,a:C}}if(t===void 0)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+Et(g));this._setColor(t,e)}show(){this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}_hide(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)===!0&&(this.previousColor=q({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",Hg(()=>{this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0)},0)}_save(){this.updateCallback(this.color),this.applied=!1,this._hide()}_apply(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}_loadLast(){this.previousColor!==void 0?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}_setColor(g){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!0&&(this.initialColor=q({},g)),this.color=g;let t=Bt(g.r,g.g,g.b),A=2*Math.PI,C=this.r*t.s,i=this.centerCoordinates.x+C*Math.sin(A*t.h),n=this.centerCoordinates.y+C*Math.cos(A*t.h);this.colorPickerSelector.style.left=i-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=n-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(g)}_setOpacity(g){this.color.a=g/100,this._updatePicker(this.color)}_setBrightness(g){let e=Bt(this.color.r,this.color.g,this.color.b);e.v=g/100;let t=nI(e.h,e.s,e.v);t.a=this.color.a,this.color=t,this._updatePicker()}_updatePicker(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.color,e=Bt(g.r,g.g,g.b),t=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);let A=this.colorPickerCanvas.clientWidth,C=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,A,C),t.putImageData(this.hueCircle,0,0),t.fillStyle="rgba(0,0,0,"+(1-e.v)+")",t.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),EA(t).call(t),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*g.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}_setSize(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}_create(){var g,e,t,A;if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){let i=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{let i=document.createElement("DIV");i.style.color="red",i.style.fontWeight="bold",i.style.padding="10px",i.innerText="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(i)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(i){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(i){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);let C=this;this.opacityRange.onchange=function(){C._setOpacity(this.value)},this.opacityRange.oninput=function(){C._setOpacity(this.value)},this.brightnessRange.onchange=function(){C._setBrightness(this.value)},this.brightnessRange.oninput=function(){C._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerText="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerText="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerText="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerText="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerText="cancel",this.cancelButton.onclick=b(g=this._hide).call(g,this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerText="apply",this.applyButton.onclick=b(e=this._apply).call(e,this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerText="save",this.saveButton.onclick=b(t=this._save).call(t,this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerText="load last",this.loadButton.onclick=b(A=this._loadLast).call(A,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}_bindHammer(){this.drag={},this.pinch={},this.hammer=new fo(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("hammer.input",g=>{g.isFirst&&this._moveSelector(g)}),this.hammer.on("tap",g=>{this._moveSelector(g)}),this.hammer.on("panstart",g=>{this._moveSelector(g)}),this.hammer.on("panmove",g=>{this._moveSelector(g)}),this.hammer.on("panend",g=>{this._moveSelector(g)})}_generateHueCircle(){if(this.generated===!1){let g=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(g.webkitBackingStorePixelRatio||g.mozBackingStorePixelRatio||g.msBackingStorePixelRatio||g.oBackingStorePixelRatio||g.backingStorePixelRatio||1)),g.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);let e=this.colorPickerCanvas.clientWidth,t=this.colorPickerCanvas.clientHeight;g.clearRect(0,0,e,t);let A,C,i,n;this.centerCoordinates={x:e*.5,y:t*.5},this.r=.49*e;let o=2*Math.PI/360,s=1/360,r=1/this.r,a;for(i=0;i<360;i++)for(n=0;n<this.r;n++)A=this.centerCoordinates.x+n*Math.sin(o*i),C=this.centerCoordinates.y+n*Math.cos(o*i),a=nI(i*s,n*r,1),g.fillStyle="rgb("+a.r+","+a.g+","+a.b+")",g.fillRect(A-.5,C-.5,2,2);g.strokeStyle="rgba(0,0,0,1)",g.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),g.stroke(),this.hueCircle=g.getImageData(0,0,e,t)}this.generated=!0}_moveSelector(g){let e=this.colorPickerDiv.getBoundingClientRect(),t=g.center.x-e.left,A=g.center.y-e.top,C=.5*this.colorPickerDiv.clientHeight,i=.5*this.colorPickerDiv.clientWidth,n=t-i,o=A-C,s=Math.atan2(n,o),r=.98*Math.min(Math.sqrt(n*n+o*o),i),a=Math.cos(s)*r+C,d=Math.sin(s)*r+i;this.colorPickerSelector.style.top=a-.5*this.colorPickerSelector.clientHeight+"px",this.colorPickerSelector.style.left=d-.5*this.colorPickerSelector.clientWidth+"px";let l=s/(2*Math.PI);l=l<0?l+1:l;let h=r/this.r,c=Bt(this.color.r,this.color.g,this.color.b);c.h=l,c.s=h;let p=nI(c.h,c.s,c.v);p.a=this.color.a,this.color=p,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}};function Li(){for(var I=arguments.length,g=new Array(I),e=0;e<I;e++)g[e]=arguments[e];if(g.length<1)throw new TypeError("Invalid arguments.");if(g.length===1)return document.createTextNode(g[0]);{let t=document.createElement(g[0]);return t.appendChild(Li(...Zg(g).call(g,1))),t}}var KO=class{constructor(g,e,t){let A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:()=>!1;this.parent=g,this.changedOptions=[],this.container=e,this.allowCreation=!1,this.hideOption=C,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},q(this.options,this.defaultOptions),this.configureOptions=t,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new _O(A),this.wrapper=void 0}setOptions(g){if(g!==void 0){this.popupHistory={},this._removePopup();let e=!0;if(typeof g=="string")this.options.filter=g;else if(B(g))this.options.filter=g.join();else if(typeof g=="object"){if(g==null)throw new TypeError("options cannot be null");g.container!==void 0&&(this.options.container=g.container),tg(g)!==void 0&&(this.options.filter=tg(g)),g.showButton!==void 0&&(this.options.showButton=g.showButton),g.enabled!==void 0&&(e=g.enabled)}else typeof g=="boolean"?(this.options.filter=!0,e=g):typeof g=="function"&&(this.options.filter=g,e=!0);tg(this.options)===!1&&(e=!1),this.options.enabled=e}this._clean()}setModuleOptions(g){this.moduleOptions=g,this.options.enabled===!0&&(this._clean(),this.options.container!==void 0&&(this.container=this.options.container),this._create())}_create(){this._clean(),this.changedOptions=[];let g=tg(this.options),e=0,t=!1;for(let A in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,A)&&(this.allowCreation=!1,t=!1,typeof g=="function"?(t=g(A,[]),t=t||this._handleObject(this.configureOptions[A],[A],!0)):(g===!0||G(g).call(g,A)!==-1)&&(t=!0),t!==!1&&(this.allowCreation=!0,e>0&&this._makeItem([]),this._makeHeader(A),this._handleObject(this.configureOptions[A],[A])),e++);this._makeButton(),this._push()}_push(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(let g=0;g<this.domElements.length;g++)this.wrapper.appendChild(this.domElements[g]);this._showPopupIfNeeded()}_clean(){for(let g=0;g<this.domElements.length;g++)this.wrapper.removeChild(this.domElements[g]);this.wrapper!==void 0&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}_getValue(g){let e=this.moduleOptions;for(let t=0;t<g.length;t++)if(e[g[t]]!==void 0)e=e[g[t]];else{e=void 0;break}return e}_makeItem(g){if(this.allowCreation===!0){let C=document.createElement("div");C.className="vis-configuration vis-config-item vis-config-s"+g.length;for(var e=arguments.length,t=new Array(e>1?e-1:0),A=1;A<e;A++)t[A-1]=arguments[A];return F(t).call(t,i=>{C.appendChild(i)}),this.domElements.push(C),this.domElements.length}return 0}_makeHeader(g){let e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerText=g,this._makeItem([],e)}_makeLabel(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,A=document.createElement("div");if(A.className="vis-configuration vis-config-label vis-config-s"+e.length,t===!0){for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(Li("i","b",g))}else A.innerText=g+":";return A}_makeDropdown(g,e,t){let A=document.createElement("select");A.className="vis-configuration vis-config-select";let C=0;e!==void 0&&G(g).call(g,e)!==-1&&(C=G(g).call(g,e));for(let o=0;o<g.length;o++){let s=document.createElement("option");s.value=g[o],o===C&&(s.selected="selected"),s.innerText=g[o],A.appendChild(s)}let i=this;A.onchange=function(){i._update(this.value,t)};let n=this._makeLabel(t[t.length-1],t);this._makeItem(t,n,A)}_makeRange(g,e,t){let A=g[0],C=g[1],i=g[2],n=g[3],o=document.createElement("input");o.className="vis-configuration vis-config-range";try{o.type="range",o.min=C,o.max=i}catch(c){}o.step=n;let s="",r=0;e!==void 0?(e<0&&e*1.2<C?(o.min=Math.ceil(e*1.2),r=o.min,s="range increased"):e/1.2<C&&(o.min=Math.ceil(e/1.2),r=o.min,s="range increased"),e*1.2>i&&i!==1&&(o.max=Math.ceil(e*1.2),r=o.max,s="range increased"),o.value=e):o.value=A;let a=document.createElement("input");a.className="vis-configuration vis-config-rangeinput",a.value=o.value;let d=this;o.onchange=function(){a.value=this.value,d._update(Number(this.value),t)},o.oninput=function(){a.value=this.value};let l=this._makeLabel(t[t.length-1],t),h=this._makeItem(t,l,o,a);s!==""&&this.popupHistory[h]!==r&&(this.popupHistory[h]=r,this._setupPopup(s,h))}_makeButton(){if(this.options.showButton===!0){let g=document.createElement("div");g.className="vis-configuration vis-config-button",g.innerText="generate options",g.onclick=()=>{this._printOptions()},g.onmouseover=()=>{g.className="vis-configuration vis-config-button hover"},g.onmouseout=()=>{g.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(g)}}_setupPopup(g,e){if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter<this.popupLimit){let t=document.createElement("div");t.id="vis-configuration-popup",t.className="vis-configuration-popup",t.innerText=g,t.onclick=()=>{this._removePopup()},this.popupCounter+=1,this.popupDiv={html:t,index:e}}}_removePopup(){this.popupDiv.html!==void 0&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}_showPopupIfNeeded(){if(this.popupDiv.html!==void 0){let e=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=e.left+"px",this.popupDiv.html.style.top=e.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=Hg(()=>{this.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=Hg(()=>{this._removePopup()},1800)}}_makeCheckbox(g,e,t){let A=document.createElement("input");A.type="checkbox",A.className="vis-configuration vis-config-checkbox",A.checked=g,e!==void 0&&(A.checked=e,e!==g&&(typeof g=="object"?e!==g.enabled&&this.changedOptions.push({path:t,value:e}):this.changedOptions.push({path:t,value:e})));let C=this;A.onchange=function(){C._update(this.checked,t)};let i=this._makeLabel(t[t.length-1],t);this._makeItem(t,i,A)}_makeTextInput(g,e,t){let A=document.createElement("input");A.type="text",A.className="vis-configuration vis-config-text",A.value=e,e!==g&&this.changedOptions.push({path:t,value:e});let C=this;A.onchange=function(){C._update(this.value,t)};let i=this._makeLabel(t[t.length-1],t);this._makeItem(t,i,A)}_makeColorField(g,e,t){let A=g[1],C=document.createElement("div");e=e===void 0?A:e,e!=="none"?(C.className="vis-configuration vis-config-colorBlock",C.style.backgroundColor=e):C.className="vis-configuration vis-config-colorBlock none",e=e===void 0?A:e,C.onclick=()=>{this._showColorPicker(e,C,t)};let i=this._makeLabel(t[t.length-1],t);this._makeItem(t,i,C)}_showColorPicker(g,e,t){e.onclick=function(){},this.colorPicker.insertTo(e),this.colorPicker.show(),this.colorPicker.setColor(g),this.colorPicker.setUpdateCallback(A=>{let C="rgba("+A.r+","+A.g+","+A.b+","+A.a+")";e.style.backgroundColor=C,this._update(C,t)}),this.colorPicker.setCloseCallback(()=>{e.onclick=()=>{this._showColorPicker(g,e,t)}})}_handleObject(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,A=!1,C=tg(this.options),i=!1;for(let n in g)if(Object.prototype.hasOwnProperty.call(g,n)){A=!0;let o=g[n],s=yI(e,n);if(typeof C=="function"&&(A=C(n,e),A===!1&&!B(o)&&typeof o!="string"&&typeof o!="boolean"&&o instanceof Object&&(this.allowCreation=!1,A=this._handleObject(o,s,!0),this.allowCreation=t===!1)),A!==!1){i=!0;let r=this._getValue(s);if(B(o))this._handleArray(o,r,s);else if(typeof o=="string")this._makeTextInput(o,r,s);else if(typeof o=="boolean")this._makeCheckbox(o,r,s);else if(o instanceof Object){if(!this.hideOption(e,n,this.moduleOptions))if(o.enabled!==void 0){let a=yI(s,"enabled"),d=this._getValue(a);if(d===!0){let l=this._makeLabel(n,s,!0);this._makeItem(s,l),i=this._handleObject(o,s)||i}else this._makeCheckbox(o,d,s)}else{let a=this._makeLabel(n,s,!0);this._makeItem(s,a),i=this._handleObject(o,s)||i}}else console.error("dont know how to handle",o,n,s)}}return i}_handleArray(g,e,t){typeof g[0]=="string"&&g[0]==="color"?(this._makeColorField(g,e,t),g[1]!==e&&this.changedOptions.push({path:t,value:e})):typeof g[0]=="string"?(this._makeDropdown(g,e,t),g[0]!==e&&this.changedOptions.push({path:t,value:e})):typeof g[0]=="number"&&(this._makeRange(g,e,t),g[0]!==e&&this.changedOptions.push({path:t,value:Number(e)}))}_update(g,e){let t=this._constructOptions(g,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",t),this.initialized=!0,this.parent.setOptions(t)}_constructOptions(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},A=t;g=g==="true"?!0:g,g=g==="false"?!1:g;for(let C=0;C<e.length;C++)e[C]!=="global"&&(A[e[C]]===void 0&&(A[e[C]]={}),C!==e.length-1?A=A[e[C]]:A[e[C]]=g);return t}_printOptions(){let g=this.getOptions();for(;this.optionsContainer.firstChild;)this.optionsContainer.removeChild(this.optionsContainer.firstChild);this.optionsContainer.appendChild(Li("pre","const options = "+Et(g,null,2)))}getOptions(){let g={};for(let e=0;e<this.changedOptions.length;e++)this._constructOptions(this.changedOptions[e].value,this.changedOptions[e].path,g);return g}},UO=class{constructor(g,e){this.container=g,this.overflowMethod=e||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}setPosition(g,e){this.x=zg(g),this.y=zg(e)}setText(g){if(g instanceof Element){for(;this.frame.firstChild;)this.frame.removeChild(this.frame.firstChild);this.frame.appendChild(g)}else this.frame.innerText=g}show(g){if(g===void 0&&(g=!0),g===!0){let e=this.frame.clientHeight,t=this.frame.clientWidth,A=this.frame.parentNode.clientHeight,C=this.frame.parentNode.clientWidth,i=0,n=0;if(this.overflowMethod=="flip"){let o=!1,s=!0;this.y-e<this.padding&&(s=!1),this.x+t>C-this.padding&&(o=!0),o?i=this.x-t:i=this.x,s?n=this.y-e:n=this.y}else n=this.y-e,n+e+this.padding>A&&(n=A-e-this.padding),n<this.padding&&(n=this.padding),i=this.x,i+t+this.padding>C&&(i=C-t-this.padding),i<this.padding&&(i=this.padding);this.frame.style.left=i+"px",this.frame.style.top=n+"px",this.frame.style.visibility="visible",this.hidden=!1}else this.hide()}hide(){this.hidden=!0,this.frame.style.left="0",this.frame.style.top="0",this.frame.style.visibility="hidden"}destroy(){this.frame.parentNode.removeChild(this.frame)}},Rt=!1,Tr,Gi="background: #FFeeee; color: #dd0000",HO=class Q{static validate(g,e,t){Rt=!1,Tr=e;let A=e;return t!==void 0&&(A=e[t]),Q.parse(g,A,[]),Rt}static parse(g,e,t){for(let A in g)Object.prototype.hasOwnProperty.call(g,A)&&Q.check(A,g,e,t)}static check(g,e,t,A){if(t[g]===void 0&&t.__any__===void 0){Q.getSuggestion(g,t,A);return}let C=g,i=!0;t[g]===void 0&&t.__any__!==void 0&&(C="__any__",i=Q.getType(e[g])==="object");let n=t[C];i&&n.__type__!==void 0&&(n=n.__type__),Q.checkFields(g,e,t,C,n,A)}static checkFields(g,e,t,A,C,i){let n=function(r){console.error("%c"+r+Q.printLocation(i,g),Gi)},o=Q.getType(e[g]),s=C[o];s!==void 0?Q.getType(s)==="array"&&G(s).call(s,e[g])===-1?(n('Invalid option detected in "'+g+'". Allowed values are:'+Q.print(s)+' not "'+e[g]+'". '),Rt=!0):o==="object"&&A!=="__any__"&&(i=yI(i,g),Q.parse(e[g],t[A],i)):C.any===void 0&&(n('Invalid type received for "'+g+'". Expected: '+Q.print(U(C))+". Received ["+o+'] "'+e[g]+'"'),Rt=!0)}static getType(g){let e=typeof g;return e==="object"?g===null?"null":g instanceof Boolean?"boolean":g instanceof Number?"number":g instanceof String?"string":B(g)?"array":g instanceof Date?"date":g.nodeType!==void 0?"dom":g._isAMomentObject===!0?"moment":"object":e==="number"?"number":e==="boolean"?"boolean":e==="string"?"string":e===void 0?"undefined":e}static getSuggestion(g,e,t){let A=Q.findInOptions(g,e,t,!1),C=Q.findInOptions(g,Tr,[],!0),i=8,n=4,o;A.indexMatch!==void 0?o=" in "+Q.printLocation(A.path,g,"")+'Perhaps it was incomplete? Did you mean: "'+A.indexMatch+`"?
634
+
635
+ `:C.distance<=n&&A.distance>C.distance?o=" in "+Q.printLocation(A.path,g,"")+"Perhaps it was misplaced? Matching option found at: "+Q.printLocation(C.path,C.closestMatch,""):A.distance<=i?o='. Did you mean "'+A.closestMatch+'"?'+Q.printLocation(A.path,g):o=". Did you mean one of these: "+Q.print(U(e))+Q.printLocation(t,g),console.error('%cUnknown option detected: "'+g+'"'+o,Gi),Rt=!0}static findInOptions(g,e,t){let A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,C=1e9,i="",n=[],o=g.toLowerCase(),s;for(let a in e){let d;if(e[a].__type__!==void 0&&A===!0){let l=Q.findInOptions(g,e[a],yI(t,a));C>l.distance&&(i=l.closestMatch,n=l.path,C=l.distance,s=l.indexMatch)}else{var r;G(r=a.toLowerCase()).call(r,o)!==-1&&(s=a),d=Q.levenshteinDistance(g,a),C>d&&(i=a,n=ZO(t),C=d)}}return{closestMatch:i,path:n,distance:C,indexMatch:s}}static printLocation(g,e){let A=`
636
+
637
+ `+(arguments.length>2&&arguments[2]!==void 0?arguments[2]:`Problem value found at:
638
+ `)+`options = {
639
+ `;for(let C=0;C<g.length;C++){for(let i=0;i<C+1;i++)A+=" ";A+=g[C]+`: {
640
+ `}for(let C=0;C<g.length+1;C++)A+=" ";A+=e+`
641
+ `;for(let C=0;C<g.length+1;C++){for(let i=0;i<g.length-C;i++)A+=" ";A+=`}
642
+ `}return A+`
643
+
644
+ `}static print(g){return Et(g).replace(/(")|(\[)|(\])|(,"__type__")/g,"").replace(/(,)/g,", ")}static levenshteinDistance(g,e){if(g.length===0)return e.length;if(e.length===0)return g.length;let t=[],A;for(A=0;A<=e.length;A++)t[A]=[A];let C;for(C=0;C<=g.length;C++)t[0][C]=C;for(A=1;A<=e.length;A++)for(C=1;C<=g.length;C++)e.charAt(A-1)==g.charAt(C-1)?t[A][C]=t[A-1][C-1]:t[A][C]=Math.min(t[A-1][C-1]+1,Math.min(t[A][C-1]+1,t[A-1][C]+1));return t[e.length][g.length]}},QO=Kg,XO=KO,ot=fo,JO=UO,Gl=Gi,$O=HO;function qO(I){return me=I,A1()}var Vl={fontsize:"font.size",fontcolor:"font.color",labelfontcolor:"font.color",fontname:"font.face",color:["color.border","color.background"],fillcolor:"color.background",tooltip:"title",labeltooltip:"title"},mo=we(Vl);mo.color="color.color";mo.style="dashes";var mg={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},xr={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},me="",ut=0,N="",P="",wg=mg.NULL;function g1(){ut=0,N=me.charAt(0)}function og(){ut++,N=me.charAt(ut)}function et(){return me.charAt(ut+1)}function Or(I){var g=I.charCodeAt(0);return g<47?g===35||g===46:g<59?g>47:g<91?g>64:g<96?g===95:g<123?g>96:!1}function Oe(I,g){if(I||(I={}),g)for(var e in g)g.hasOwnProperty(e)&&(I[e]=g[e]);return I}function e1(I,g,e){for(var t=g.split("."),A=I;t.length;){var C=t.shift();t.length?(A[C]||(A[C]={}),A=A[C]):A[C]=e}}function jl(I,g){for(var e,t,A=null,C=[I],i=I;i.parent;)C.push(i.parent),i=i.parent;if(i.nodes){for(e=0,t=i.nodes.length;e<t;e++)if(g.id===i.nodes[e].id){A=i.nodes[e];break}}for(A||(A={id:g.id},I.node&&(A.attr=Oe(A.attr,I.node))),e=C.length-1;e>=0;e--){var n,o=C[e];o.nodes||(o.nodes=[]),G(n=o.nodes).call(n,A)===-1&&o.nodes.push(A)}g.attr&&(A.attr=Oe(A.attr,g.attr))}function t1(I,g){if(I.edges||(I.edges=[]),I.edges.push(g),I.edge){var e=Oe({},I.edge);g.attr=Oe(e,g.attr)}}function Wl(I,g,e,t,A){var C={from:g,to:e,type:t};return I.edge&&(C.attr=Oe({},I.edge)),C.attr=Oe(C.attr||{},A),A!=null&&A.hasOwnProperty("arrows")&&A.arrows!=null&&(C.arrows={to:{enabled:!0,type:A.arrows.type}},A.arrows=null),C}function K(){for(wg=mg.NULL,P="";N===" "||N===" "||N===`
645
+ `||N==="\r";)og();do{var I=!1;if(N==="#"){for(var g=ut-1;me.charAt(g)===" "||me.charAt(g)===" ";)g--;if(me.charAt(g)===`
646
+ `||me.charAt(g)===""){for(;N!=""&&N!=`
647
+ `;)og();I=!0}}if(N==="/"&&et()==="/"){for(;N!=""&&N!=`
648
+ `;)og();I=!0}if(N==="/"&&et()==="*"){for(;N!="";)if(N==="*"&&et()==="/"){og(),og();break}else og();I=!0}for(;N===" "||N===" "||N===`
649
+ `||N==="\r";)og()}while(I);if(N===""){wg=mg.DELIMITER;return}var e=N+et();if(xr[e]){wg=mg.DELIMITER,P=e,og(),og();return}if(xr[N]){wg=mg.DELIMITER,P=N,og();return}if(Or(N)||N==="-"){for(P+=N,og();Or(N);)P+=N,og();P==="false"?P=!1:P==="true"?P=!0:isNaN(Number(P))||(P=Number(P)),wg=mg.IDENTIFIER;return}if(N==='"'){for(og();N!=""&&(N!='"'||N==='"'&&et()==='"');)N==='"'?(P+=N,og()):N==="\\"&&et()==="n"?(P+=`
650
+ `,og()):P+=N,og();if(N!='"')throw vg('End of string " expected');og(),wg=mg.IDENTIFIER;return}for(wg=mg.UNKNOWN;N!="";)P+=N,og();throw new SyntaxError('Syntax error in part "'+Ul(P,30)+'"')}function A1(){var I={};if(g1(),K(),P==="strict"&&(I.strict=!0,K()),(P==="graph"||P==="digraph")&&(I.type=P,K()),wg===mg.IDENTIFIER&&(I.id=P,K()),P!="{")throw vg("Angle bracket { expected");if(K(),Yl(I),P!="}")throw vg("Angle bracket } expected");if(K(),P!=="")throw vg("End of file expected");return K(),delete I.node,delete I.edge,delete I.graph,I}function Yl(I){for(;P!==""&&P!="}";)I1(I),P===";"&&K()}function I1(I){var g=_l(I);if(g){Kl(I,g);return}var e=C1(I);if(!e){if(wg!=mg.IDENTIFIER)throw vg("Identifier expected");var t=P;if(K(),P==="="){if(K(),wg!=mg.IDENTIFIER)throw vg("Identifier expected");I[t]=P,K()}else i1(I,t)}}function _l(I){var g=null;if(P==="subgraph"&&(g={},g.type="subgraph",K(),wg===mg.IDENTIFIER&&(g.id=P,K())),P==="{"){if(K(),g||(g={}),g.parent=I,g.node=I.node,g.edge=I.edge,g.graph=I.graph,Yl(g),P!="}")throw vg("Angle bracket } expected");K(),delete g.node,delete g.edge,delete g.graph,delete g.parent,I.subgraphs||(I.subgraphs=[]),I.subgraphs.push(g)}return g}function C1(I){return P==="node"?(K(),I.node=Vt(),"node"):P==="edge"?(K(),I.edge=Vt(),"edge"):P==="graph"?(K(),I.graph=Vt(),"graph"):null}function i1(I,g){var e={id:g},t=Vt();t&&(e.attr=t),jl(I,e),Kl(I,g)}function Kl(I,g){for(;P==="->"||P==="--";){var e,t=P;K();var A=_l(I);if(A)e=A;else{if(wg!=mg.IDENTIFIER)throw vg("Identifier or subgraph expected");e=P,jl(I,{id:e}),K()}var C=Vt(),i=Wl(I,g,e,t,C);t1(I,i),g=e}}function Vt(){for(var I,g=null,e={dashed:!0,solid:!1,dotted:[1,5]},t={dot:"circle",box:"box",crow:"crow",curve:"curve",icurve:"inv_curve",normal:"triangle",inv:"inv_triangle",diamond:"diamond",tee:"bar",vee:"vee"},A=new Array,C=new Array;P==="[";){for(K(),g={};P!==""&&P!="]";){if(wg!=mg.IDENTIFIER)throw vg("Attribute name expected");var i=P;if(K(),P!="=")throw vg("Equal sign = expected");if(K(),wg!=mg.IDENTIFIER)throw vg("Attribute value expected");var n=P;i==="style"&&(n=e[n]);var o;i==="arrowhead"&&(o=t[n],i="arrows",n={to:{enabled:!0,type:o}}),i==="arrowtail"&&(o=t[n],i="arrows",n={from:{enabled:!0,type:o}}),A.push({attr:g,name:i,value:n}),C.push(i),K(),P==","&&K()}if(P!="]")throw vg("Bracket ] expected");K()}if(ye(C).call(C,"dir")){var s={};for(s.arrows={},I=0;I<A.length;I++)if(A[I].name==="arrows")if(A[I].value.to!=null)s.arrows.to=I;else if(A[I].value.from!=null)s.arrows.from=I;else throw vg("Invalid value of arrows");else A[I].name==="dir"&&(s.dir=I);var r=A[s.dir].value;if(!ye(C).call(C,"arrows"))if(r==="both")A.push({attr:A[s.dir].attr,name:"arrows",value:{to:{enabled:!0}}}),s.arrows.to=A.length-1,A.push({attr:A[s.dir].attr,name:"arrows",value:{from:{enabled:!0}}}),s.arrows.from=A.length-1;else if(r==="forward")A.push({attr:A[s.dir].attr,name:"arrows",value:{to:{enabled:!0}}}),s.arrows.to=A.length-1;else if(r==="back")A.push({attr:A[s.dir].attr,name:"arrows",value:{from:{enabled:!0}}}),s.arrows.from=A.length-1;else if(r==="none")A.push({attr:A[s.dir].attr,name:"arrows",value:""}),s.arrows.to=A.length-1;else throw vg('Invalid dir type "'+r+'"');var a,d;if(r==="both")s.arrows.to&&s.arrows.from?(d=A[s.arrows.to].value.to.type,a=A[s.arrows.from].value.from.type,A[s.arrows.to]={attr:A[s.arrows.to].attr,name:A[s.arrows.to].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}},Ug(A).call(A,s.arrows.from,1)):s.arrows.to?(d=A[s.arrows.to].value.to.type,a="arrow",A[s.arrows.to]={attr:A[s.arrows.to].attr,name:A[s.arrows.to].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}}):s.arrows.from&&(d="arrow",a=A[s.arrows.from].value.from.type,A[s.arrows.from]={attr:A[s.arrows.from].attr,name:A[s.arrows.from].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}});else if(r==="back")s.arrows.to&&s.arrows.from?(d="",a=A[s.arrows.from].value.from.type,A[s.arrows.from]={attr:A[s.arrows.from].attr,name:A[s.arrows.from].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}}):s.arrows.to?(d="",a="arrow",s.arrows.from=s.arrows.to,A[s.arrows.from]={attr:A[s.arrows.from].attr,name:A[s.arrows.from].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}}):s.arrows.from&&(d="",a=A[s.arrows.from].value.from.type,A[s.arrows.to]={attr:A[s.arrows.from].attr,name:A[s.arrows.from].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}}),A[s.arrows.from]={attr:A[s.arrows.from].attr,name:A[s.arrows.from].name,value:{from:{enabled:!0,type:A[s.arrows.from].value.from.type}}};else if(r==="none"){var l;s.arrows.to?l=s.arrows.to:l=s.arrows.from,A[l]={attr:A[l].attr,name:A[l].name,value:""}}else if(r==="forward")s.arrows.to&&s.arrows.from?(d=A[s.arrows.to].value.to.type,a="",A[s.arrows.to]={attr:A[s.arrows.to].attr,name:A[s.arrows.to].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}}):s.arrows.to?(d=A[s.arrows.to].value.to.type,a="",A[s.arrows.to]={attr:A[s.arrows.to].attr,name:A[s.arrows.to].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}}):s.arrows.from&&(d="arrow",a="",s.arrows.to=s.arrows.from,A[s.arrows.to]={attr:A[s.arrows.to].attr,name:A[s.arrows.to].name,value:{to:{enabled:!0,type:d},from:{enabled:!0,type:a}}}),A[s.arrows.to]={attr:A[s.arrows.to].attr,name:A[s.arrows.to].name,value:{to:{enabled:!0,type:A[s.arrows.to].value.to.type}}};else throw vg('Invalid dir type "'+r+'"');Ug(A).call(A,s.dir,1)}var h;if(ye(C).call(C,"penwidth")){var c=[];for(h=A.length,I=0;I<h;I++)A[I].name!=="width"&&(A[I].name==="penwidth"&&(A[I].name="width"),c.push(A[I]));A=c}for(h=A.length,I=0;I<h;I++)e1(A[I].attr,A[I].name,A[I].value);return g}function vg(I){return new SyntaxError(I+', got "'+Ul(P,30)+'" (char '+ut+")")}function Ul(I,g){return I.length<=g?I:I.substr(0,27)+"..."}function n1(I,g,e){B(I)?F(I).call(I,function(t){B(g)?F(g).call(g,function(A){e(t,A)}):e(t,g)}):B(g)?F(g).call(g,function(t){e(I,t)}):e(I,g)}function JC(I,g,e){for(var t=g.split("."),A=t.pop(),C=I,i=0;i<t.length;i++){var n=t[i];n in C||(C[n]={}),C=C[n]}return C[A]=e,I}function Pr(I,g){var e={};for(var t in I)if(I.hasOwnProperty(t)){var A=g[t];B(A)?F(A).call(A,function(C){JC(e,C,I[t])}):typeof A=="string"?JC(e,A,I[t]):JC(e,t,I[t])}return e}function o1(I){var g=qO(I),e={nodes:[],edges:[],options:{}};if(g.nodes){var t;F(t=g.nodes).call(t,function(i){var n={id:i.id,label:String(i.label||i.id)};Oe(n,Pr(i.attr,Vl)),n.image&&(n.shape="image"),e.nodes.push(n)})}if(g.edges){var A,C=function(i){var n={from:i.from,to:i.to};return Oe(n,Pr(i.attr,mo)),n.arrows==null&&i.type==="->"&&(n.arrows="to"),n};F(A=g.edges).call(A,function(i){var n,o;if(i.from instanceof Object?n=i.from.nodes:n={id:i.from},i.to instanceof Object?o=i.to.nodes:o={id:i.to},i.from instanceof Object&&i.from.edges){var s;F(s=i.from.edges).call(s,function(a){var d=C(a);e.edges.push(d)})}if(n1(n,o,function(a,d){var l=Wl(e,a.id,d.id,i.type,i.attr),h=C(l);e.edges.push(h)}),i.to instanceof Object&&i.to.edges){var r;F(r=i.to.edges).call(r,function(a){var d=C(a);e.edges.push(d)})}})}return g.attr&&(e.options=g.attr),e}function s1(I,g){var e;let t={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};g!=null&&(g.fixed!=null&&(t.nodes.fixed=g.fixed),g.parseColor!=null&&(t.nodes.parseColor=g.parseColor),g.inheritColor!=null&&(t.edges.inheritColor=g.inheritColor));let A=I.edges,C=ag(A).call(A,n=>{let o={from:n.source,id:n.id,to:n.target};return n.attributes!=null&&(o.attributes=n.attributes),n.label!=null&&(o.label=n.label),n.attributes!=null&&n.attributes.title!=null&&(o.title=n.attributes.title),n.type==="Directed"&&(o.arrows="to"),n.color&&t.edges.inheritColor===!1&&(o.color=n.color),o});return{nodes:ag(e=I.nodes).call(e,n=>{let o={id:n.id,fixed:t.nodes.fixed&&n.x!=null&&n.y!=null};return n.attributes!=null&&(o.attributes=n.attributes),n.label!=null&&(o.label=n.label),n.size!=null&&(o.size=n.size),n.attributes!=null&&n.attributes.title!=null&&(o.title=n.attributes.title),n.title!=null&&(o.title=n.title),n.x!=null&&(o.x=n.x),n.y!=null&&(o.y=n.y),n.color!=null&&(t.nodes.parseColor===!0?o.color=n.color:o.color={background:n.color,border:n.color,highlight:{background:n.color,border:n.color},hover:{background:n.color,border:n.color}}),o}),edges:C}}var r1={addDescription:"Click in an empty space to place a new node.",addEdge:"Add Edge",addNode:"Add Node",back:"Back",close:"Close",createEdgeError:"Cannot link edges to a cluster.",del:"Delete selected",deleteClusterError:"Clusters cannot be deleted.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",edit:"Edit",editClusterError:"Clusters cannot be edited.",editEdge:"Edit Edge",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",editNode:"Edit Node"},a1={addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",addEdge:"Kante hinzuf\xFCgen",addNode:"Knoten hinzuf\xFCgen",back:"Zur\xFCck",close:"Schlie\xDFen",createEdgeError:"Es ist nicht m\xF6glich, Kanten mit Clustern zu verbinden.",del:"L\xF6sche Auswahl",deleteClusterError:"Cluster k\xF6nnen nicht gel\xF6scht werden.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",edit:"Editieren",editClusterError:"Cluster k\xF6nnen nicht editiert werden.",editEdge:"Kante editieren",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",editNode:"Knoten editieren"},d1={addDescription:"Haga clic en un lugar vac\xEDo para colocar un nuevo nodo.",addEdge:"A\xF1adir arista",addNode:"A\xF1adir nodo",back:"Atr\xE1s",close:"Cerrar",createEdgeError:"No se puede conectar una arista a un grupo.",del:"Eliminar selecci\xF3n",deleteClusterError:"No es posible eliminar grupos.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",edit:"Editar",editClusterError:"No es posible editar grupos.",editEdge:"Editar arista",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",editNode:"Editar nodo"},l1={addDescription:"Clicca per aggiungere un nuovo nodo",addEdge:"Aggiungi un vertice",addNode:"Aggiungi un nodo",back:"Indietro",close:"Chiudere",createEdgeError:"Non si possono collegare vertici ad un cluster",del:"Cancella la selezione",deleteClusterError:"I cluster non possono essere cancellati",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",edit:"Modifica",editClusterError:"I clusters non possono essere modificati.",editEdge:"Modifica il vertice",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",editNode:"Modifica il nodo"},h1={addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",addEdge:"Link toevoegen",addNode:"Node toevoegen",back:"Terug",close:"Sluiten",createEdgeError:"Kan geen link maken naar een cluster.",del:"Selectie verwijderen",deleteClusterError:"Clusters kunnen niet worden verwijderd.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",edit:"Wijzigen",editClusterError:"Clusters kunnen niet worden aangepast.",editEdge:"Link wijzigen",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",editNode:"Node wijzigen"},c1={addDescription:"Clique em um espa\xE7o em branco para adicionar um novo n\xF3",addEdge:"Adicionar aresta",addNode:"Adicionar n\xF3",back:"Voltar",close:"Fechar",createEdgeError:"N\xE3o foi poss\xEDvel linkar arestas a um cluster.",del:"Remover selecionado",deleteClusterError:"Clusters n\xE3o puderam ser removidos.",edgeDescription:"Clique em um n\xF3 e arraste a aresta at\xE9 outro n\xF3 para conect\xE1-los",edit:"Editar",editClusterError:"Clusters n\xE3o puderam ser editados.",editEdge:"Editar aresta",editEdgeDescription:"Clique nos pontos de controle e os arraste para um n\xF3 para conect\xE1-los",editNode:"Editar n\xF3"},u1={addDescription:"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u0432 \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E\u0435 \u043C\u0435\u0441\u0442\u043E, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0443\u0437\u0435\u043B.",addEdge:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0431\u0440\u043E",addNode:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0437\u0435\u043B",back:"\u041D\u0430\u0437\u0430\u0434",close:"\u0417\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C",createEdgeError:"\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0440\u0435\u0431\u0440\u0430 \u0432 \u043A\u043B\u0430\u0441\u0442\u0435\u0440.",del:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435",deleteClusterError:"\u041A\u043B\u0430\u0441\u0442\u0435\u0440\u044B \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u044B",edgeDescription:"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u043D\u0430 \u0443\u0437\u0435\u043B \u0438 \u043F\u0440\u043E\u0442\u044F\u043D\u0438\u0442\u0435 \u0440\u0435\u0431\u0440\u043E \u043A \u0434\u0440\u0443\u0433\u043E\u043C\u0443 \u0443\u0437\u043B\u0443, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0438\u0445.",edit:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C",editClusterError:"\u041A\u043B\u0430\u0441\u0442\u0435\u0440\u044B \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.",editEdge:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0431\u0440\u043E",editEdgeDescription:"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u044B\u0435 \u0442\u043E\u0447\u043A\u0438 \u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0438\u0445 \u0432 \u0443\u0437\u0435\u043B, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u043D\u0435\u043C\u0443.",editNode:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0443\u0437\u0435\u043B"},f1={addDescription:"\u5355\u51FB\u7A7A\u767D\u5904\u653E\u7F6E\u65B0\u8282\u70B9\u3002",addEdge:"\u6DFB\u52A0\u8FDE\u63A5\u7EBF",addNode:"\u6DFB\u52A0\u8282\u70B9",back:"\u8FD4\u56DE",close:"\u95DC\u9589",createEdgeError:"\u65E0\u6CD5\u5C06\u8FDE\u63A5\u7EBF\u8FDE\u63A5\u5230\u7FA4\u96C6\u3002",del:"\u5220\u9664\u9009\u5B9A",deleteClusterError:"\u65E0\u6CD5\u5220\u9664\u7FA4\u96C6\u3002",edgeDescription:"\u5355\u51FB\u67D0\u4E2A\u8282\u70B9\u5E76\u5C06\u8BE5\u8FDE\u63A5\u7EBF\u62D6\u52A8\u5230\u53E6\u4E00\u4E2A\u8282\u70B9\u4EE5\u8FDE\u63A5\u5B83\u4EEC\u3002",edit:"\u7F16\u8F91",editClusterError:"\u65E0\u6CD5\u7F16\u8F91\u7FA4\u96C6\u3002",editEdge:"\u7F16\u8F91\u8FDE\u63A5\u7EBF",editEdgeDescription:"\u5355\u51FB\u63A7\u5236\u8282\u70B9\u5E76\u5C06\u5B83\u4EEC\u62D6\u5230\u8282\u70B9\u4E0A\u8FDE\u63A5\u3002",editNode:"\u7F16\u8F91\u8282\u70B9"},p1={addDescription:"K\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u0432\u0456\u043B\u044C\u043D\u0435 \u043C\u0456\u0441\u0446\u0435, \u0449\u043E\u0431 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u043E\u0432\u0438\u0439 \u0432\u0443\u0437\u043E\u043B.",addEdge:"\u0414\u043E\u0434\u0430\u0442\u0438 \u043A\u0440\u0430\u0439",addNode:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B",back:"\u041D\u0430\u0437\u0430\u0434",close:"\u0417\u0430\u043A\u0440\u0438\u0442\u0438",createEdgeError:"\u041D\u0435 \u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043E\u0431'\u0454\u0434\u043D\u0430\u0442\u0438 \u043A\u0440\u0430\u0457 \u0432 \u0433\u0440\u0443\u043F\u0443.",del:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u043E\u0431\u0440\u0430\u043D\u0435",deleteClusterError:"\u0413\u0440\u0443\u043F\u0438 \u043D\u0435 \u043C\u043E\u0436\u0443\u0442\u044C \u0431\u0443\u0442\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u0456.",edgeDescription:"\u041A\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u0432\u0443\u0437\u043E\u043B \u0456 \u043F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u043A\u0440\u0430\u0439 \u0434\u043E \u0456\u043D\u0448\u043E\u0433\u043E \u0432\u0443\u0437\u043B\u0430, \u0449\u043E\u0431 \u0457\u0445 \u0437'\u0454\u0434\u043D\u0430\u0442\u0438.",edit:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438",editClusterError:"\u0413\u0440\u0443\u043F\u0438 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0456 \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043D\u043D\u044F.",editEdge:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043A\u0440\u0430\u0439",editEdgeDescription:"\u041A\u043B\u0456\u043A\u043D\u0456\u0442\u044C \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0456 \u0442\u043E\u0447\u043A\u0438 \u0456 \u043F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0457\u0445 \u0443 \u0432\u0443\u0437\u043E\u043B, \u0449\u043E\u0431 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438\u0441\u044F \u0434\u043E \u043D\u044C\u043E\u0433\u043E.",editNode:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B"},m1={addDescription:"Cliquez dans un endroit vide pour placer un n\u0153ud.",addEdge:"Ajouter un lien",addNode:"Ajouter un n\u0153ud",back:"Retour",close:"Fermer",createEdgeError:"Impossible de cr\xE9er un lien vers un cluster.",del:"Effacer la s\xE9lection",deleteClusterError:"Les clusters ne peuvent pas \xEAtre effac\xE9s.",edgeDescription:"Cliquez sur un n\u0153ud et glissez le lien vers un autre n\u0153ud pour les connecter.",edit:"\xC9diter",editClusterError:"Les clusters ne peuvent pas \xEAtre \xE9dit\xE9s.",editEdge:"\xC9diter le lien",editEdgeDescription:"Cliquez sur les points de contr\xF4le et glissez-les pour connecter un n\u0153ud.",editNode:"\xC9diter le n\u0153ud"},v1={addDescription:"Kluknut\xEDm do pr\xE1zdn\xE9ho prostoru m\u016F\u017Eete p\u0159idat nov\xFD vrchol.",addEdge:"P\u0159idat hranu",addNode:"P\u0159idat vrchol",back:"Zp\u011Bt",close:"Zav\u0159\xEDt",createEdgeError:"Nelze p\u0159ipojit hranu ke shluku.",del:"Smazat v\xFDb\u011Br",deleteClusterError:"Nelze mazat shluky.",edgeDescription:"P\u0159eta\u017Een\xEDm z jednoho vrcholu do druh\xE9ho m\u016F\u017Eete spojit tyto vrcholy novou hranou.",edit:"Upravit",editClusterError:"Nelze upravovat shluky.",editEdge:"Upravit hranu",editEdgeDescription:"P\u0159eta\u017Een\xEDm kontroln\xEDho vrcholu hrany ji m\u016F\u017Eete p\u0159ipojit k jin\xE9mu vrcholu.",editNode:"Upravit vrchol"},b1=Object.freeze({__proto__:null,cn:f1,cs:v1,de:a1,en:r1,es:d1,fr:m1,it:l1,nl:h1,pt:c1,ru:u1,uk:p1});function y1(I,g){try{let[t,A]=g.split(/[-_ /]/,2),C=t!=null?t.toLowerCase():null,i=A!=null?A.toUpperCase():null;if(C&&i){let n=C+"-"+i;if(Object.prototype.hasOwnProperty.call(I,n))return n;var e;console.warn(Xd(e="Unknown variant ".concat(i," of language ")).call(e,C,"."))}if(C){let n=C;if(Object.prototype.hasOwnProperty.call(I,n))return n;console.warn("Unknown language ".concat(C))}return console.warn("Unknown locale ".concat(g,", falling back to English.")),"en"}catch(t){return console.error(t),console.warn("Unexpected error while normalizing locale ".concat(g,", falling back to English.")),"en"}}var Vi=class{constructor(){this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}init(){if(this.initialized())return;this.src=this.image.src;let g=this.image.width,e=this.image.height;this.width=g,this.height=e;let t=Math.floor(e/2),A=Math.floor(e/4),C=Math.floor(e/8),i=Math.floor(e/16),n=Math.floor(g/2),o=Math.floor(g/4),s=Math.floor(g/8),r=Math.floor(g/16);this.canvas.width=3*o,this.canvas.height=t,this.coordinates=[[0,0,n,t],[n,0,o,A],[n,A,s,C],[5*s,A,r,i]],this._fillMipMap()}initialized(){return this.coordinates!==void 0}_fillMipMap(){let g=this.canvas.getContext("2d"),e=this.coordinates[0];g.drawImage(this.image,e[0],e[1],e[2],e[3]);for(let t=1;t<this.NUM_ITERATIONS;t++){let A=this.coordinates[t-1],C=this.coordinates[t];g.drawImage(this.canvas,A[0],A[1],A[2],A[3],C[0],C[1],C[2],C[3])}}drawImageAtPosition(g,e,t,A,C,i){if(this.initialized())if(e>2){e*=.5;let n=0;for(;e>2&&n<this.NUM_ITERATIONS;)e*=.5,n+=1;n>=this.NUM_ITERATIONS&&(n=this.NUM_ITERATIONS-1);let o=this.coordinates[n];g.drawImage(this.canvas,o[0],o[1],o[2],o[3],t,A,C,i)}else g.drawImage(this.image,t,A,C,i)}},ji=class{constructor(g){this.images={},this.imageBroken={},this.callback=g}_tryloadBrokenUrl(g,e,t){if(!(g===void 0||t===void 0)){if(e===void 0){console.warn("No broken url image defined");return}t.image.onerror=()=>{console.error("Could not load brokenImage:",e)},t.image.src=e}}_redrawWithImage(g){this.callback&&this.callback(g)}load(g,e){let t=this.images[g];if(t)return t;let A=new Vi;return this.images[g]=A,A.image.onload=()=>{this._fixImageCoordinates(A.image),A.init(),this._redrawWithImage(A)},A.image.onerror=()=>{console.error("Could not load image:",g),this._tryloadBrokenUrl(g,e,A)},A.image.src=g,A}_fixImageCoordinates(g){g.width===0&&(document.body.appendChild(g),g.width=g.offsetWidth,g.height=g.offsetHeight,document.body.removeChild(g))}},Hl={exports:{}},w1=z,E1=w1(function(){if(typeof ArrayBuffer=="function"){var I=new ArrayBuffer(8);Object.isExtensible(I)&&Object.defineProperty(I,"a",{value:8})}}),T1=z,x1=cg,O1=se,Dr=E1,oI=Object.isExtensible,P1=T1(function(){oI(1)}),D1=P1||Dr?function(g){return!x1(g)||Dr&&O1(g)==="ArrayBuffer"?!1:oI?oI(g):!0}:oI,R1=z,Ql=!R1(function(){return Object.isExtensible(Object.preventExtensions({}))}),N1=R,S1=Z,k1=lA,M1=cg,vo=ng,F1=Og.f,Rr=mA,B1=XI,bo=D1,z1=WI,Z1=Ql,Xl=!1,ne=z1("meta"),L1=0,yo=function(I){F1(I,ne,{value:{objectID:"O"+L1++,weakData:{}}})},G1=function(I,g){if(!M1(I))return typeof I=="symbol"?I:(typeof I=="string"?"S":"P")+I;if(!vo(I,ne)){if(!bo(I))return"F";if(!g)return"E";yo(I)}return I[ne].objectID},V1=function(I,g){if(!vo(I,ne)){if(!bo(I))return!0;if(!g)return!1;yo(I)}return I[ne].weakData},j1=function(I){return Z1&&Xl&&bo(I)&&!vo(I,ne)&&yo(I),I},W1=function(){Y1.enable=function(){},Xl=!0;var I=Rr.f,g=S1([].splice),e={};e[ne]=1,I(e).length&&(Rr.f=function(t){for(var A=I(t),C=0,i=A.length;C<i;C++)if(A[C]===ne){g(A,C,1);break}return A},N1({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:B1.f}))},Y1=Hl.exports={enable:W1,fastKey:G1,getWeakData:V1,onFreeze:j1};k1[ne]=!0;var nC=Hl.exports,_1=gg,K1=yt,U1=_1("iterator"),H1=Array.prototype,Q1=function(I){return I!==void 0&&(K1.Array===I||H1[U1]===I)},X1=ae,Nr=Kn,J1=ft,$1=yt,q1=gg,gP=q1("iterator"),Jl=function(I){if(!J1(I))return Nr(I,gP)||Nr(I,"@@iterator")||$1[X1(I)]},eP=jg,tP=Ye,AP=re,IP=sA,CP=Jl,iP=TypeError,$l=function(I,g){var e=arguments.length<2?CP(I):g;if(tP(e))return AP(eP(e,I));throw new iP(IP(I)+" is not iterable")},nP=jg,Sr=re,oP=Kn,sP=function(I,g,e){var t,A;Sr(I);try{if(t=oP(I,"return"),!t){if(g==="throw")throw e;return e}t=nP(t,I)}catch(C){A=!0,t=C}if(g==="throw")throw e;if(A)throw t;return Sr(t),e},rP=aA,aP=jg,dP=re,lP=sA,hP=Q1,cP=Sg,kr=J,uP=$l,fP=Jl,Mr=sP,pP=TypeError,sI=function(I,g){this.stopped=I,this.result=g},Fr=sI.prototype,wo=function(I,g,e){var t=e&&e.that,A=!!(e&&e.AS_ENTRIES),C=!!(e&&e.IS_RECORD),i=!!(e&&e.IS_ITERATOR),n=!!(e&&e.INTERRUPTED),o=rP(g,t),s,r,a,d,l,h,c,p=function(m){return s&&Mr(s,"normal",m),new sI(!0,m)},u=function(m){return A?(dP(m),n?o(m[0],m[1],p):o(m[0],m[1])):n?o(m,p):o(m)};if(C)s=I.iterator;else if(i)s=I;else{if(r=fP(I),!r)throw new pP(lP(I)+" is not iterable");if(hP(r)){for(a=0,d=cP(I);d>a;a++)if(l=u(I[a]),l&&kr(Fr,l))return l;return new sI(!1)}s=uP(I,r)}for(h=C?I.next:s.next;!(c=aP(h,s)).done;){try{l=u(c.value)}catch(m){Mr(s,"throw",m)}if(typeof l=="object"&&l&&kr(Fr,l))return l}return new sI(!1)},mP=J,vP=TypeError,Eo=function(I,g){if(mP(g,I))return I;throw new vP("Incorrect invocation")},bP=R,yP=X,wP=nC,EP=z,TP=vt,xP=wo,OP=Eo,PP=lg,DP=cg,RP=ft,NP=bt,SP=Og.f,kP=Re.forEach,MP=ig,ql=Ke,FP=ql.set,BP=ql.getterFor,To=function(I,g,e){var t=I.indexOf("Map")!==-1,A=I.indexOf("Weak")!==-1,C=t?"set":"add",i=yP[I],n=i&&i.prototype,o={},s;if(!MP||!PP(i)||!(A||n.forEach&&!EP(function(){new i().entries().next()})))s=e.getConstructor(g,I,t,C),wP.enable();else{s=g(function(d,l){FP(OP(d,r),{type:I,collection:new i}),RP(l)||xP(l,d[C],{that:d,AS_ENTRIES:t})});var r=s.prototype,a=BP(I);kP(["add","clear","delete","forEach","get","has","set","keys","values","entries"],function(d){var l=d==="add"||d==="set";d in n&&!(A&&d==="clear")&&TP(r,d,function(h,c){var p=a(this).collection;if(!l&&A&&!DP(h))return d==="get"?void 0:!1;var u=p[d](h===0?0:h,c);return l?this:u})}),A||SP(r,"size",{configurable:!0,get:function(){return a(this).collection.size}})}return NP(s,I,!1,!0),o[I]=s,bP({global:!0,forced:!0},o),A||e.setStrong(s,I,t),s},zP=vA,xo=function(I,g,e){for(var t in g)e&&e.unsafe&&I[t]?I[t]=g[t]:zP(I,t,g[t],e);return I},ZP=Yg,LP=go,GP=gg,VP=ig,Br=GP("species"),jP=function(I){var g=ZP(I);VP&&g&&!g[Br]&&LP(g,Br,{configurable:!0,get:function(){return this}})},WP=pA,YP=go,zr=xo,_P=aA,KP=Eo,UP=ft,HP=wo,QP=io,QA=no,XP=jP,Nt=ig,Zr=nC.fastKey,gh=Ke,Lr=gh.set,$C=gh.getterFor,eh={getConstructor:function(I,g,e,t){var A=I(function(s,r){KP(s,C),Lr(s,{type:g,index:WP(null),first:void 0,last:void 0,size:0}),Nt||(s.size=0),UP(r)||HP(r,s[t],{that:s,AS_ENTRIES:e})}),C=A.prototype,i=$C(g),n=function(s,r,a){var d=i(s),l=o(s,r),h,c;return l?l.value=a:(d.last=l={index:c=Zr(r,!0),key:r,value:a,previous:h=d.last,next:void 0,removed:!1},d.first||(d.first=l),h&&(h.next=l),Nt?d.size++:s.size++,c!=="F"&&(d.index[c]=l)),s},o=function(s,r){var a=i(s),d=Zr(r),l;if(d!=="F")return a.index[d];for(l=a.first;l;l=l.next)if(l.key===r)return l};return zr(C,{clear:function(){for(var r=this,a=i(r),d=a.index,l=a.first;l;)l.removed=!0,l.previous&&(l.previous=l.previous.next=void 0),delete d[l.index],l=l.next;a.first=a.last=void 0,Nt?a.size=0:r.size=0},delete:function(s){var r=this,a=i(r),d=o(r,s);if(d){var l=d.next,h=d.previous;delete a.index[d.index],d.removed=!0,h&&(h.next=l),l&&(l.previous=h),a.first===d&&(a.first=l),a.last===d&&(a.last=h),Nt?a.size--:r.size--}return!!d},forEach:function(r){for(var a=i(this),d=_P(r,arguments.length>1?arguments[1]:void 0),l;l=l?l.next:a.first;)for(d(l.value,l.key,this);l&&l.removed;)l=l.previous},has:function(r){return!!o(this,r)}}),zr(C,e?{get:function(r){var a=o(this,r);return a&&a.value},set:function(r,a){return n(this,r===0?0:r,a)}}:{add:function(r){return n(this,r=r===0?0:r,r)}}),Nt&&YP(C,"size",{configurable:!0,get:function(){return i(this).size}}),A},setStrong:function(I,g,e){var t=g+" Iterator",A=$C(g),C=$C(t);QP(I,g,function(i,n){Lr(this,{type:t,target:i,state:A(i),kind:n,last:void 0})},function(){for(var i=C(this),n=i.kind,o=i.last;o&&o.removed;)o=o.previous;return!i.target||!(i.last=o=o?o.next:i.state.first)?(i.target=void 0,QA(void 0,!0)):QA(n==="keys"?o.key:n==="values"?o.value:[o.key,o.value],!1)},e?"entries":"values",!e,!0),XP(g)}},JP=To,$P=eh;JP("Map",function(I){return function(){return I(this,arguments.length?arguments[0]:void 0)}},$P);var Oo=Z,qP=_I,gD=qg,eD=CA,tD=Oo("".charAt),Gr=Oo("".charCodeAt),AD=Oo("".slice),Vr=function(I){return function(g,e){var t=gD(eD(g)),A=qP(e),C=t.length,i,n;return A<0||A>=C?I?"":void 0:(i=Gr(t,A),i<55296||i>56319||A+1===C||(n=Gr(t,A+1))<56320||n>57343?I?tD(t,A):i:I?AD(t,A,A+2):(i-55296<<10)+(n-56320)+65536)}},ID={codeAt:Vr(!1),charAt:Vr(!0)},CD=ID.charAt,iD=qg,th=Ke,nD=io,jr=no,Ah="String Iterator",oD=th.set,sD=th.getterFor(Ah);nD(String,"String",function(I){oD(this,{type:Ah,string:iD(I),index:0})},function(){var g=sD(this),e=g.string,t=g.index,A;return t>=e.length?jr(void 0,!0):(A=CD(e,t),g.index+=A.length,jr(A,!1))});var rD=L,aD=rD.Map,dD=aD,lD=dD,hD=lD,RA=D(hD),Wi=class{constructor(){this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},q(this.options,this.defaultOptions)}setOptions(g){let e=["useDefaultGroups"];if(g!==void 0){for(let t in g)if(Object.prototype.hasOwnProperty.call(g,t)&&G(e).call(e,t)===-1){let A=g[t];this.add(t,A)}}}clear(){this._groups=new RA,this._groupNames=[]}get(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this._groups.get(g);if(t===void 0&&e)if(this.options.useDefaultGroups===!1&&this._groupNames.length>0){let A=this._groupIndex%this._groupNames.length;++this._groupIndex,t={},t.color=this._groups.get(this._groupNames[A]),this._groups.set(g,t)}else{let A=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,t={},t.color=this._defaultGroups[A],this._groups.set(g,t)}return t}add(g,e){return this._groups.has(g)||this._groupNames.push(g),this._groups.set(g,e),e}},cD=R;cD({target:"Number",stat:!0},{isNaN:function(g){return g!==g}});var uD=L,fD=uD.Number.isNaN,pD=fD,mD=pD,vD=mD,Yi=D(vD),bD=X,yD=bD.isFinite,wD=Number.isFinite||function(g){return typeof g=="number"&&yD(g)},ED=R,TD=wD;ED({target:"Number",stat:!0},{isFinite:TD});var xD=L,OD=xD.Number.isFinite,PD=OD,DD=PD,RD=DD,Me=D(RD),ND=R,SD=Re.some,kD=wt,MD=kD("some");ND({target:"Array",proto:!0,forced:!MD},{some:function(g){return SD(this,g,arguments.length>1?arguments[1]:void 0)}});var FD=Ig,BD=FD("Array").some,zD=J,ZD=BD,qC=Array.prototype,LD=function(I){var g=I.some;return I===qC||zD(qC,I)&&g===qC.some?ZD:g},GD=LD,VD=GD,jD=VD,Ih=D(jD),WD=L,YD=WD.Object.getOwnPropertySymbols,_D=YD,KD=_D,UD=KD,Xg=D(UD),Ch={exports:{}},HD=R,QD=z,XD=Wg,ih=tA.f,nh=ig,JD=!nh||QD(function(){ih(1)});HD({target:"Object",stat:!0,forced:JD,sham:!nh},{getOwnPropertyDescriptor:function(g,e){return ih(XD(g),e)}});var $D=L,oh=$D.Object,qD=Ch.exports=function(g,e){return oh.getOwnPropertyDescriptor(g,e)};oh.getOwnPropertyDescriptor.sham&&(qD.sham=!0);var g2=Ch.exports,e2=g2,t2=e2,A2=t2,ge=D(A2),I2=R,C2=ig,i2=_d,n2=Wg,o2=tA,s2=uA;I2({target:"Object",stat:!0,sham:!C2},{getOwnPropertyDescriptors:function(g){for(var e=n2(g),t=o2.f,A=i2(e),C={},i=0,n,o;A.length>i;)o=t(e,n=A[i++]),o!==void 0&&s2(C,n,o);return C}});var r2=L,a2=r2.Object.getOwnPropertyDescriptors,d2=a2,l2=d2,h2=l2,Jg=D(h2),sh={exports:{}},c2=R,u2=ig,Wr=HI.f;c2({target:"Object",stat:!0,forced:Object.defineProperties!==Wr,sham:!u2},{defineProperties:Wr});var f2=L,rh=f2.Object,p2=sh.exports=function(g,e){return rh.defineProperties(g,e)};rh.defineProperties.sham&&(p2.sham=!0);var m2=sh.exports,v2=m2,b2=v2,y2=b2,NA=D(y2),ah={exports:{}},w2=R,E2=ig,Yr=Og.f;w2({target:"Object",stat:!0,forced:Object.defineProperty!==Yr,sham:!E2},{defineProperty:Yr});var T2=L,dh=T2.Object,x2=ah.exports=function(g,e,t){return dh.defineProperty(g,e,t)};dh.defineProperty.sham&&(x2.sham=!0);var O2=ah.exports,P2=O2,lh=P2,D2=lh,R2=D2,N2=R2,S2=N2,k2=S2,M2=D(k2),F2=gg,B2=Og.f,_r=F2("metadata"),Kr=Function.prototype;Kr[_r]===void 0&&B2(Kr,_r,{value:null});var z2=$;z2("asyncDispose");var Z2=$;Z2("dispose");var L2=$;L2("metadata");var G2=Yd,V2=G2,j2=Yg,W2=Z,Po=j2("Symbol"),Y2=Po.keyFor,_2=W2(Po.prototype.valueOf),hh=Po.isRegisteredSymbol||function(g){try{return Y2(_2(g))!==void 0}catch(e){return!1}},K2=R,U2=hh;K2({target:"Symbol",stat:!0},{isRegisteredSymbol:U2});var H2=mt,ch=Yg,Q2=Z,X2=oA,J2=gg,wI=ch("Symbol"),Ur=wI.isWellKnownSymbol,uh=ch("Object","getOwnPropertyNames"),$2=Q2(wI.prototype.valueOf),Hr=H2("wks");for(XA=0,gi=uh(wI),Qr=gi.length;XA<Qr;XA++)try{ei=gi[XA],X2(wI[ei])&&J2(ei)}catch(I){}var ei,XA,gi,Qr,fh=function(g){if(Ur&&Ur(g))return!0;try{for(var e=$2(g),t=0,A=uh(Hr),C=A.length;t<C;t++)if(Hr[A[t]]==e)return!0}catch(i){}return!1},q2=R,gR=fh;q2({target:"Symbol",stat:!0,forced:!0},{isWellKnownSymbol:gR});var eR=$;eR("matcher");var tR=$;tR("observable");var AR=R,IR=hh;AR({target:"Symbol",stat:!0,name:"isRegisteredSymbol"},{isRegistered:IR});var CR=R,iR=fh;CR({target:"Symbol",stat:!0,name:"isWellKnownSymbol",forced:!0},{isWellKnown:iR});var nR=$;nR("metadataKey");var oR=$;oR("patternMatch");var sR=$;sR("replaceAll");var rR=V2,aR=rR,dR=aR,JA=D(dR),lR=bA,hR=lR.f("iterator"),cR=hR,ph=cR,uR=ph,fR=uR,pR=fR,mR=pR,vR=mR,bR=D(vR);function $t(I){"@babel/helpers - typeof";return $t=typeof JA=="function"&&typeof bR=="symbol"?function(g){return typeof g}:function(g){return g&&typeof JA=="function"&&g.constructor===JA&&g!==JA.prototype?"symbol":typeof g},$t(I)}var yR=bA,wR=yR.f("toPrimitive"),ER=wR,TR=ER,xR=TR,OR=xR,PR=OR,DR=PR,RR=DR,NR=D(RR);function SR(I,g){if($t(I)!=="object"||I===null)return I;var e=I[NR];if(e!==void 0){var t=e.call(I,g||"default");if($t(t)!=="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(I)}function kR(I){var g=SR(I,"string");return $t(g)==="symbol"?g:String(g)}function eg(I,g,e){return g=kR(g),g in I?M2(I,g,{value:e,enumerable:!0,configurable:!0,writable:!0}):I[g]=e,I}var MR=Ye,FR=xg,BR=jI,zR=Sg,ZR=TypeError,Xr=function(I){return function(g,e,t,A){MR(e);var C=FR(g),i=BR(C),n=zR(C),o=I?n-1:0,s=I?-1:1;if(t<2)for(;;){if(o in i){A=i[o],o+=s;break}if(o+=s,I?o<0:n<=o)throw new ZR("Reduce of empty array with no initial value")}for(;I?o>=0:n>o;o+=s)o in i&&(A=e(A,i[o],o,C));return A}},LR={left:Xr(!1),right:Xr(!0)},GR=X,VR=se,jR=VR(GR.process)==="process",WR=R,YR=LR.left,_R=wt,Jr=nA,KR=jR,UR=!KR&&Jr>79&&Jr<83,HR=UR||!_R("reduce");WR({target:"Array",proto:!0,forced:HR},{reduce:function(g){var e=arguments.length;return YR(this,g,e,e>1?arguments[1]:void 0)}});var QR=Ig,XR=QR("Array").reduce,JR=J,$R=XR,ti=Array.prototype,qR=function(I){var g=I.reduce;return I===ti||JR(ti,I)&&g===ti.reduce?$R:g},gN=qR,eN=gN,tN=eN,Do=D(tN),AN=De,IN=Sg,CN=Jn,iN=aA,mh=function(I,g,e,t,A,C,i,n){for(var o=A,s=0,r=i?iN(i,n):!1,a,d;s<t;)s in e&&(a=r?r(e[s],s,g):e[s],C>0&&AN(a)?(d=IN(a),o=mh(I,g,a,d,o,C-1)-1):(CN(o+1),I[o]=a),o++),s++;return o},nN=mh,oN=R,sN=nN,rN=Ye,aN=xg,dN=Sg,lN=UI;oN({target:"Array",proto:!0},{flatMap:function(g){var e=aN(this),t=dN(e),A;return rN(g),A=lN(e,0),A.length=sN(A,e,e,t,0,1,g,arguments.length>1?arguments[1]:void 0),A}});var hN=Ig,$M=hN("Array").flatMap;var qM=Array.prototype;var cN=ph,nt=D(cN),uN=To,fN=eh;uN("Set",function(I){return function(){return I(this,arguments.length?arguments[0]:void 0)}},fN);var pN=L,mN=pN.Set,vN=mN,bN=vN,yN=bN,Lg=D(yN),wN=$l,EN=wN,TN=EN,xN=TN,ON=xN,PN=ON,DN=PN,RN=DN,NN=RN,SN=NN,Ai=D(SN),$r=od,kN=Math.floor,_i=function(I,g){var e=I.length,t=kN(e/2);return e<8?MN(I,g):FN(I,_i($r(I,0,t),g),_i($r(I,t),g),g)},MN=function(I,g){for(var e=I.length,t=1,A,C;t<e;){for(C=t,A=I[t];C&&g(I[C-1],A)>0;)I[C]=I[--C];C!==t++&&(I[C]=A)}return I},FN=function(I,g,e,t){for(var A=g.length,C=e.length,i=0,n=0;i<A||n<C;)I[i+n]=i<A&&n<C?t(g[i],e[n])<=0?g[i++]:e[n++]:i<A?g[i++]:e[n++];return I},BN=_i,zN=iA,qr=zN.match(/firefox\/(\d+)/i),ZN=!!qr&&+qr[1],LN=iA,GN=/MSIE|Trident/.test(LN),VN=iA,ga=VN.match(/AppleWebKit\/(\d+)\./),jN=!!ga&&+ga[1],WN=R,vh=Z,YN=Ye,_N=xg,ea=Sg,KN=Hd,ta=qg,Ro=z,UN=BN,HN=wt,Aa=ZN,QN=GN,Ia=nA,Ca=jN,ve=[],ia=vh(ve.sort),XN=vh(ve.push),JN=Ro(function(){ve.sort(void 0)}),$N=Ro(function(){ve.sort(null)}),qN=HN("sort"),bh=!Ro(function(){if(Ia)return Ia<70;if(!(Aa&&Aa>3)){if(QN)return!0;if(Ca)return Ca<603;var I="",g,e,t,A;for(g=65;g<76;g++){switch(e=String.fromCharCode(g),g){case 66:case 69:case 70:case 72:t=3;break;case 68:case 71:t=4;break;default:t=2}for(A=0;A<47;A++)ve.push({k:e+A,v:t})}for(ve.sort(function(C,i){return i.v-C.v}),A=0;A<ve.length;A++)e=ve[A].k.charAt(0),I.charAt(I.length-1)!==e&&(I+=e);return I!=="DGBEFHACIJK"}}),gS=JN||!$N||!qN||!bh,eS=function(I){return function(g,e){return e===void 0?-1:g===void 0?1:I!==void 0?+I(g,e)||0:ta(g)>ta(e)?1:-1}};WN({target:"Array",proto:!0,forced:gS},{sort:function(g){g!==void 0&&YN(g);var e=_N(this);if(bh)return g===void 0?ia(e):ia(e,g);var t=[],A=ea(e),C,i;for(i=0;i<A;i++)i in e&&XN(t,e[i]);for(UN(t,eS(g)),C=ea(t),i=0;i<C;)e[i]=t[i++];for(;i<A;)KN(e,i++);return e}});var tS=Ig,AS=tS("Array").sort,IS=J,CS=AS,Ii=Array.prototype,iS=function(I){var g=I.sort;return I===Ii||IS(Ii,I)&&g===Ii.sort?CS:g},nS=iS,oS=nS,sS=oS,Ce=D(sS),rS=Ig,aS=rS("Array").keys,dS=aS,lS=dS,hS=ae,cS=ng,uS=J,fS=lS,Ci=Array.prototype,pS={DOMTokenList:!0,NodeList:!0},mS=function(I){var g=I.keys;return I===Ci||uS(Ci,I)&&g===Ci.keys||cS(pS,hS(I))?fS:g},vS=mS,tt=D(vS),bS=Ig,yS=bS("Array").values,wS=yS,ES=wS,TS=ae,xS=ng,OS=J,PS=ES,ii=Array.prototype,DS={DOMTokenList:!0,NodeList:!0},RS=function(I){var g=I.values;return I===ii||OS(ii,I)&&g===ii.values||xS(DS,TS(I))?PS:g},NS=RS,EI=D(NS),SS=Ig,kS=SS("Array").entries,MS=kS,FS=MS,BS=ae,zS=ng,ZS=J,LS=FS,ni=Array.prototype,GS={DOMTokenList:!0,NodeList:!0},VS=function(I){var g=I.entries;return I===ni||ZS(ni,I)&&g===ni.entries||zS(GS,BS(I))?LS:g},jS=VS,WS=D(jS),YS=lh,SA=D(YS),$A,_S=new Uint8Array(16);function KS(){if(!$A&&($A=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!$A))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return $A(_S)}var rg=[];for(let I=0;I<256;++I)rg.push((I+256).toString(16).slice(1));function US(I,g=0){return rg[I[g+0]]+rg[I[g+1]]+rg[I[g+2]]+rg[I[g+3]]+"-"+rg[I[g+4]]+rg[I[g+5]]+"-"+rg[I[g+6]]+rg[I[g+7]]+"-"+rg[I[g+8]]+rg[I[g+9]]+"-"+rg[I[g+10]]+rg[I[g+11]]+rg[I[g+12]]+rg[I[g+13]]+rg[I[g+14]]+rg[I[g+15]]}var HS=typeof crypto!="undefined"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),na={randomUUID:HS};function st(I,g,e){if(na.randomUUID&&!g&&!I)return na.randomUUID();I=I||{};let t=I.random||(I.rng||KS)();if(t[6]=t[6]&15|64,t[8]=t[8]&63|128,g){e=e||0;for(let A=0;A<16;++A)g[e+A]=t[A];return g}return US(t)}function oa(I,g){var e=U(I);if(Xg){var t=Xg(I);g&&(t=tg(t).call(t,function(A){return ge(I,A).enumerable})),e.push.apply(e,t)}return e}function sa(I){for(var g=1;g<arguments.length;g++){var e,t,A=arguments[g]!=null?arguments[g]:{};g%2?F(e=oa(Object(A),!0)).call(e,function(C){eg(I,C,A[C])}):Jg?NA(I,Jg(A)):F(t=oa(Object(A))).call(t,function(C){SA(I,C,ge(A,C))})}return I}function ra(I){return typeof I=="string"||typeof I=="number"}var Ki=class I{constructor(g){eg(this,"delay",void 0),eg(this,"max",void 0),eg(this,"_queue",[]),eg(this,"_timeout",null),eg(this,"_extended",null),this.delay=null,this.max=1/0,this.setOptions(g)}setOptions(g){g&&typeof g.delay!="undefined"&&(this.delay=g.delay),g&&typeof g.max!="undefined"&&(this.max=g.max),this._flushIfNeeded()}static extend(g,e){let t=new I(e);if(g.flush!==void 0)throw new Error("Target object already has a property flush");g.flush=()=>{t.flush()};let A=[{name:"flush",original:void 0}];if(e&&e.replace)for(let C=0;C<e.replace.length;C++){let i=e.replace[C];A.push({name:i,original:g[i]}),t.replace(g,i)}return t._extended={object:g,methods:A},t}destroy(){if(this.flush(),this._extended){let g=this._extended.object,e=this._extended.methods;for(let t=0;t<e.length;t++){let A=e[t];A.original?g[A.name]=A.original:delete g[A.name]}this._extended=null}}replace(g,e){let t=this,A=g[e];if(!A)throw new Error("Method "+e+" undefined");g[e]=function(){for(var C=arguments.length,i=new Array(C),n=0;n<C;n++)i[n]=arguments[n];t.queue({args:i,fn:A,context:this})}}queue(g){typeof g=="function"?this._queue.push({fn:g}):this._queue.push(g),this._flushIfNeeded()}_flushIfNeeded(){this._queue.length>this.max&&this.flush(),this._timeout!=null&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&typeof this.delay=="number"&&(this._timeout=Hg(()=>{this.flush()},this.delay))}flush(){var g,e;F(g=Ug(e=this._queue).call(e,0)).call(g,t=>{t.fn.apply(t.context||t.fn,t.args||[])})}},Ui=class I{constructor(){eg(this,"_subscribers",{"*":[],add:[],remove:[],update:[]}),eg(this,"subscribe",I.prototype.on),eg(this,"unsubscribe",I.prototype.off)}_trigger(g,e,t){var A;if(g==="*")throw new Error("Cannot trigger event *");F(A=[...this._subscribers[g],...this._subscribers["*"]]).call(A,C=>{C(g,e,t!=null?t:null)})}on(g,e){typeof e=="function"&&this._subscribers[g].push(e)}off(g,e){var t;this._subscribers[g]=tg(t=this._subscribers[g]).call(t,A=>A!==e)}},TI=class I{constructor(g){eg(this,"_pairs",void 0),this._pairs=g}*[nt](){for(let[g,e]of this._pairs)yield[g,e]}*entries(){for(let[g,e]of this._pairs)yield[g,e]}*keys(){for(let[g]of this._pairs)yield g}*values(){for(let[,g]of this._pairs)yield g}toIdArray(){var g;return ag(g=[...this._pairs]).call(g,e=>e[0])}toItemArray(){var g;return ag(g=[...this._pairs]).call(g,e=>e[1])}toEntryArray(){return[...this._pairs]}toObjectMap(){let g=we(null);for(let[e,t]of this._pairs)g[e]=t;return g}toMap(){return new RA(this._pairs)}toIdSet(){return new Lg(this.toIdArray())}toItemSet(){return new Lg(this.toItemArray())}cache(){return new I([...this._pairs])}distinct(g){let e=new Lg;for(let[t,A]of this._pairs)e.add(g(A,t));return e}filter(g){let e=this._pairs;return new I({*[nt](){for(let[t,A]of e)g(A,t)&&(yield[t,A])}})}forEach(g){for(let[e,t]of this._pairs)g(t,e)}map(g){let e=this._pairs;return new I({*[nt](){for(let[t,A]of e)yield[t,g(A,t)]}})}max(g){let e=Ai(this._pairs),t=e.next();if(t.done)return null;let A=t.value[1],C=g(t.value[1],t.value[0]);for(;!(t=e.next()).done;){let[i,n]=t.value,o=g(n,i);o>C&&(C=o,A=n)}return A}min(g){let e=Ai(this._pairs),t=e.next();if(t.done)return null;let A=t.value[1],C=g(t.value[1],t.value[0]);for(;!(t=e.next()).done;){let[i,n]=t.value,o=g(n,i);o<C&&(C=o,A=n)}return A}reduce(g,e){for(let[t,A]of this._pairs)e=g(e,A,t);return e}sort(g){return new I({[nt]:()=>{var e;return Ai(Ce(e=[...this._pairs]).call(e,(t,A)=>{let[C,i]=t,[n,o]=A;return g(i,o,C,n)}))}})}};function QS(I,g){return I[g]==null&&(I[g]=st()),I}var Pe=class extends Ui{get idProp(){return this._idProp}constructor(g,e){super(),eg(this,"flush",void 0),eg(this,"length",void 0),eg(this,"_options",void 0),eg(this,"_data",void 0),eg(this,"_idProp",void 0),eg(this,"_queue",null),g&&!B(g)&&(e=g,g=[]),this._options=e||{},this._data=new RA,this.length=0,this._idProp=this._options.fieldId||"id",g&&g.length&&this.add(g),this.setOptions(e)}setOptions(g){g&&g.queue!==void 0&&(g.queue===!1?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=Ki.extend(this,{replace:["add","update","remove"]})),g.queue&&typeof g.queue=="object"&&this._queue.setOptions(g.queue)))}add(g,e){let t=[],A;if(B(g)){let C=ag(g).call(g,i=>i[this._idProp]);if(Ih(C).call(C,i=>this._data.has(i)))throw new Error("A duplicate id was found in the parameter array.");for(let i=0,n=g.length;i<n;i++)A=this._addItem(g[i]),t.push(A)}else if(g&&typeof g=="object")A=this._addItem(g),t.push(A);else throw new Error("Unknown dataType");return t.length&&this._trigger("add",{items:t},e),t}update(g,e){let t=[],A=[],C=[],i=[],n=this._idProp,o=s=>{let r=s[n];if(r!=null&&this._data.has(r)){let a=s,d=q({},this._data.get(r)),l=this._updateItem(a);A.push(l),i.push(a),C.push(d)}else{let a=this._addItem(s);t.push(a)}};if(B(g))for(let s=0,r=g.length;s<r;s++)g[s]&&typeof g[s]=="object"?o(g[s]):console.warn("Ignoring input item, which is not an object at index "+s);else if(g&&typeof g=="object")o(g);else throw new Error("Unknown dataType");if(t.length&&this._trigger("add",{items:t},e),A.length){let s={items:A,oldData:C,data:i};this._trigger("update",s,e)}return Xd(t).call(t,A)}updateOnly(g,e){var t;B(g)||(g=[g]);let A=ag(t=ag(g).call(g,C=>{let i=this._data.get(C[this._idProp]);if(i==null)throw new Error("Updating non-existent items is not allowed.");return{oldData:i,update:C}})).call(t,C=>{let{oldData:i,update:n}=C,o=i[this._idProp],s=PO(i,n);return this._data.set(o,s),{id:o,oldData:i,updatedData:s}});if(A.length){let C={items:ag(A).call(A,i=>i.id),oldData:ag(A).call(A,i=>i.oldData),data:ag(A).call(A,i=>i.updatedData)};return this._trigger("update",C,e),C.items}else return[]}get(g,e){let t,A,C;ra(g)?(t=g,C=e):B(g)?(A=g,C=e):C=g;let i=C&&C.returnType==="Object"?"Object":"Array",n=C&&tg(C),o=[],s,r,a;if(t!=null)s=this._data.get(t),s&&n&&!n(s)&&(s=void 0);else if(A!=null)for(let h=0,c=A.length;h<c;h++)s=this._data.get(A[h]),s!=null&&(!n||n(s))&&o.push(s);else{var d;r=[...tt(d=this._data).call(d)];for(let h=0,c=r.length;h<c;h++)a=r[h],s=this._data.get(a),s!=null&&(!n||n(s))&&o.push(s)}if(C&&C.order&&t==null&&this._sort(o,C.order),C&&C.fields){let h=C.fields;if(t!=null&&s!=null)s=this._filterFields(s,h);else for(let c=0,p=o.length;c<p;c++)o[c]=this._filterFields(o[c],h)}if(i=="Object"){let h={};for(let c=0,p=o.length;c<p;c++){let u=o[c],m=u[this._idProp];h[m]=u}return h}else if(t!=null){var l;return(l=s)!==null&&l!==void 0?l:null}else return o}getIds(g){let e=this._data,t=g&&tg(g),A=g&&g.order,C=[...tt(e).call(e)],i=[];if(t)if(A){let n=[];for(let o=0,s=C.length;o<s;o++){let r=C[o],a=this._data.get(r);a!=null&&t(a)&&n.push(a)}this._sort(n,A);for(let o=0,s=n.length;o<s;o++)i.push(n[o][this._idProp])}else for(let n=0,o=C.length;n<o;n++){let s=C[n],r=this._data.get(s);r!=null&&t(r)&&i.push(r[this._idProp])}else if(A){let n=[];for(let o=0,s=C.length;o<s;o++){let r=C[o];n.push(e.get(r))}this._sort(n,A);for(let o=0,s=n.length;o<s;o++)i.push(n[o][this._idProp])}else for(let n=0,o=C.length;n<o;n++){let s=C[n],r=e.get(s);r!=null&&i.push(r[this._idProp])}return i}getDataSet(){return this}forEach(g,e){let t=e&&tg(e),A=this._data,C=[...tt(A).call(A)];if(e&&e.order){let i=this.get(e);for(let n=0,o=i.length;n<o;n++){let s=i[n],r=s[this._idProp];g(s,r)}}else for(let i=0,n=C.length;i<n;i++){let o=C[i],s=this._data.get(o);s!=null&&(!t||t(s))&&g(s,o)}}map(g,e){let t=e&&tg(e),A=[],C=this._data,i=[...tt(C).call(C)];for(let n=0,o=i.length;n<o;n++){let s=i[n],r=this._data.get(s);r!=null&&(!t||t(r))&&A.push(g(r,s))}return e&&e.order&&this._sort(A,e.order),A}_filterFields(g,e){var t;return g&&Do(t=B(e)?e:U(e)).call(t,(A,C)=>(A[C]=g[C],A),{})}_sort(g,e){if(typeof e=="string"){let t=e;Ce(g).call(g,(A,C)=>{let i=A[t],n=C[t];return i>n?1:i<n?-1:0})}else if(typeof e=="function")Ce(g).call(g,e);else throw new TypeError("Order must be a function or a string")}remove(g,e){let t=[],A=[],C=B(g)?g:[g];for(let i=0,n=C.length;i<n;i++){let o=this._remove(C[i]);if(o){let s=o[this._idProp];s!=null&&(t.push(s),A.push(o))}}return t.length&&this._trigger("remove",{items:t,oldData:A},e),t}_remove(g){let e;if(ra(g)?e=g:g&&typeof g=="object"&&(e=g[this._idProp]),e!=null&&this._data.has(e)){let t=this._data.get(e)||null;return this._data.delete(e),--this.length,t}return null}clear(g){var e;let t=[...tt(e=this._data).call(e)],A=[];for(let C=0,i=t.length;C<i;C++)A.push(this._data.get(t[C]));return this._data.clear(),this.length=0,this._trigger("remove",{items:t,oldData:A},g),t}max(g){let e=null,t=null;for(let C of EI(A=this._data).call(A)){var A;let i=C[g];typeof i=="number"&&(t==null||i>t)&&(e=C,t=i)}return e||null}min(g){let e=null,t=null;for(let C of EI(A=this._data).call(A)){var A;let i=C[g];typeof i=="number"&&(t==null||i<t)&&(e=C,t=i)}return e||null}distinct(g){let e=this._data,t=[...tt(e).call(e)],A=[],C=0;for(let i=0,n=t.length;i<n;i++){let o=t[i],r=e.get(o)[g],a=!1;for(let d=0;d<C;d++)if(A[d]==r){a=!0;break}!a&&r!==void 0&&(A[C]=r,C++)}return A}_addItem(g){let e=QS(g,this._idProp),t=e[this._idProp];if(this._data.has(t))throw new Error("Cannot add item: item with id "+t+" already exists");return this._data.set(t,e),++this.length,t}_updateItem(g){let e=g[this._idProp];if(e==null)throw new Error("Cannot update item: item has no id (item: "+Et(g)+")");let t=this._data.get(e);if(!t)throw new Error("Cannot update item: no item with id "+e+" found");return this._data.set(e,sa(sa({},t),g)),e}stream(g){if(g){let t=this._data;return new TI({*[nt](){for(let A of g){let C=t.get(A);C!=null&&(yield[A,C])}}})}else{var e;return new TI({[nt]:b(e=WS(this._data)).call(e,this._data)})}}};function XS(I,g){return typeof g=="object"&&g!==null&&I===g.idProp&&typeof g.add=="function"&&typeof g.clear=="function"&&typeof g.distinct=="function"&&typeof F(g)=="function"&&typeof g.get=="function"&&typeof g.getDataSet=="function"&&typeof g.getIds=="function"&&typeof g.length=="number"&&typeof ag(g)=="function"&&typeof g.max=="function"&&typeof g.min=="function"&&typeof g.off=="function"&&typeof g.on=="function"&&typeof g.remove=="function"&&typeof g.setOptions=="function"&&typeof g.stream=="function"&&typeof g.update=="function"&&typeof g.updateOnly=="function"}function yh(I,g){return typeof g=="object"&&g!==null&&I===g.idProp&&typeof F(g)=="function"&&typeof g.get=="function"&&typeof g.getDataSet=="function"&&typeof g.getIds=="function"&&typeof g.length=="number"&&typeof ag(g)=="function"&&typeof g.off=="function"&&typeof g.on=="function"&&typeof g.stream=="function"&&XS(I,g.getDataSet())}var wh=X,JS=z,$S=Z,qS=qg,gk=gl.trim,ek=oo,tk=$S("".charAt),xI=wh.parseFloat,aa=wh.Symbol,da=aa&&aa.iterator,Ak=1/xI(ek+"-0")!==-1/0||da&&!JS(function(){xI(Object(da))}),Ik=Ak?function(g){var e=gk(qS(g)),t=xI(e);return t===0&&tk(e,0)==="-"?-0:t}:xI,Ck=R,la=Ik;Ck({global:!0,forced:parseFloat!==la},{parseFloat:la});var ik=L,nk=ik.parseFloat,ok=nk,sk=ok,rk=sk,Eh=D(rk),ak=R,dk=z,lk=XI.f,hk=dk(function(){return!Object.getOwnPropertyNames(1)});ak({target:"Object",stat:!0,forced:hk},{getOwnPropertyNames:lk});var ck=L,uk=ck.Object,fk=function(g){return uk.getOwnPropertyNames(g)},pk=fk,mk=pk,vk=mk,bk=D(vk);function No(I,g){let e=["node","edge","label"],t=!0,A=fe(g,"chosen");if(typeof A=="boolean")t=A;else if(typeof A=="object"){if(G(e).call(e,I)===-1)throw new Error("choosify: subOption '"+I+"' should be one of '"+e.join("', '")+"'");let C=fe(g,["chosen",I]);(typeof C=="boolean"||typeof C=="function")&&(t=C)}return t}function Hi(I,g,e){if(I.width<=0||I.height<=0)return!1;if(e!==void 0){let C={x:g.x-e.x,y:g.y-e.y};if(e.angle!==0){let i=-e.angle;g={x:Math.cos(i)*C.x-Math.sin(i)*C.y,y:Math.sin(i)*C.x+Math.cos(i)*C.y}}else g=C}let t=I.x+I.width,A=I.y+I.width;return I.left<g.x&&t>g.x&&I.top<g.y&&A>g.y}function OI(I){return typeof I=="string"&&I!==""}function Th(I,g,e,t){let A=t.x,C=t.y;if(typeof t.distanceToBorder=="function"){let i=t.distanceToBorder(I,g),n=Math.sin(g)*i,o=Math.cos(g)*i;o===i?(A+=i,C=t.y):n===i?(A=t.x,C-=i):(A+=o,C-=n)}else t.shape.width>t.shape.height?(A=t.x+t.shape.width*.5,C=t.y-e):(A=t.x+e,C=t.y-t.shape.height*.5);return{x:A,y:C}}var Qi=class{constructor(g){this.measureText=g,this.current=0,this.width=0,this.height=0,this.lines=[]}_add(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"normal";this.lines[g]===void 0&&(this.lines[g]={width:0,height:0,blocks:[]});let A=e;(e===void 0||e==="")&&(A=" ");let C=this.measureText(A,t),i=q({},EI(C));i.text=e,i.width=C.width,i.mod=t,(e===void 0||e==="")&&(i.width=0),this.lines[g].blocks.push(i),this.lines[g].width+=i.width}curWidth(){let g=this.lines[this.current];return g===void 0?0:g.width}append(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,g,e)}newLine(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,g,e),this.current++}determineLineHeights(){for(let g=0;g<this.lines.length;g++){let e=this.lines[g],t=0;if(e.blocks!==void 0)for(let A=0;A<e.blocks.length;A++){let C=e.blocks[A];t<C.height&&(t=C.height)}e.height=t}}determineLabelSize(){let g=0,e=0;for(let t=0;t<this.lines.length;t++){let A=this.lines[t];A.width>g&&(g=A.width),e+=A.height}this.width=g,this.height=e}removeEmptyBlocks(){let g=[];for(let e=0;e<this.lines.length;e++){let t=this.lines[e];if(t.blocks.length===0||e===this.lines.length-1&&t.width===0)continue;let A={};q(A,t),A.blocks=[];let C,i=[];for(let n=0;n<t.blocks.length;n++){let o=t.blocks[n];o.width!==0?i.push(o):C===void 0&&(C=o)}i.length===0&&C!==void 0&&i.push(C),A.blocks=i,g.push(A)}return g}finalize(){this.determineLineHeights(),this.determineLabelSize();let g=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:g}}},yk={"<b>":/<b>/,"<i>":/<i>/,"<code>":/<code>/,"</b>":/<\/b>/,"</i>":/<\/i>/,"</code>":/<\/code>/,"*":/\*/,_:/_/,"`":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/},PI=class{constructor(g){this.text=g,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer="",this.modStack=[],this.blocks=[]}mod(){return this.modStack.length===0?"normal":this.modStack[0]}modName(){if(this.modStack.length===0)return"normal";if(this.modStack[0]==="mono")return"mono";if(this.bold&&this.ital)return"boldital";if(this.bold)return"bold";if(this.ital)return"ital"}emitBlock(){this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer="")}add(g){g===" "&&(this.spacing=!0),this.spacing&&(this.buffer+=" ",this.spacing=!1),g!=" "&&(this.buffer+=g)}parseWS(g){return/[ \t]/.test(g)?(this.mono?this.add(g):this.spacing=!0,!0):!1}setTag(g){this.emitBlock(),this[g]=!0,this.modStack.unshift(g)}unsetTag(g){this.emitBlock(),this[g]=!1,this.modStack.shift()}parseStartTag(g,e){return!this.mono&&!this[g]&&this.match(e)?(this.setTag(g),!0):!1}match(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,[t,A]=this.prepareRegExp(g),C=t.test(this.text.substr(this.position,A));return C&&e&&(this.position+=A-1),C}parseEndTag(g,e,t){let A=this.mod()===g;return g==="mono"?A=A&&this.mono:A=A&&!this.mono,A&&this.match(e)?(t!==void 0?(this.position===this.text.length-1||this.match(t,!1))&&this.unsetTag(g):this.unsetTag(g),!0):!1}replace(g,e){return this.match(g)?(this.add(e),this.position+=length-1,!0):!1}prepareRegExp(g){let e,t;if(g instanceof RegExp)t=g,e=1;else{let A=yk[g];A!==void 0?t=A:t=new RegExp(g),e=g.length}return[t,e]}},Xi=class{constructor(g,e,t,A){this.ctx=g,this.parent=e,this.selected=t,this.hover=A;let C=(i,n)=>{if(i===void 0)return 0;let o=this.parent.getFormattingValues(g,t,A,n),s=0;return i!==""&&(s=this.ctx.measureText(i).width),{width:s,values:o}};this.lines=new Qi(C)}process(g){if(!OI(g))return this.lines.finalize();let e=this.parent.fontOptions;g=g.replace(/\r\n/g,`
651
+ `),g=g.replace(/\r/g,`
652
+ `);let t=String(g).split(`
653
+ `),A=t.length;if(e.multi)for(let C=0;C<A;C++){let i=this.splitBlocks(t[C],e.multi);if(i!==void 0){if(i.length===0){this.lines.newLine("");continue}if(e.maxWdt>0)for(let n=0;n<i.length;n++){let o=i[n].mod,s=i[n].text;this.splitStringIntoLines(s,o,!0)}else for(let n=0;n<i.length;n++){let o=i[n].mod,s=i[n].text;this.lines.append(s,o)}this.lines.newLine()}}else if(e.maxWdt>0)for(let C=0;C<A;C++)this.splitStringIntoLines(t[C]);else for(let C=0;C<A;C++)this.lines.newLine(t[C]);return this.lines.finalize()}decodeMarkupSystem(g){let e="none";return g==="markdown"||g==="md"?e="markdown":(g===!0||g==="html")&&(e="html"),e}splitHtmlBlocks(g){let e=new PI(g),t=A=>/&/.test(A)?(e.replace(e.text,"&lt;","<")||e.replace(e.text,"&amp;","&")||e.add("&"),!0):!1;for(;e.position<e.text.length;){let A=e.text.charAt(e.position);e.parseWS(A)||/</.test(A)&&(e.parseStartTag("bold","<b>")||e.parseStartTag("ital","<i>")||e.parseStartTag("mono","<code>")||e.parseEndTag("bold","</b>")||e.parseEndTag("ital","</i>")||e.parseEndTag("mono","</code>"))||t(A)||e.add(A),e.position++}return e.emitBlock(),e.blocks}splitMarkdownBlocks(g){let e=new PI(g),t=!0,A=C=>/\\/.test(C)?(e.position<this.text.length+1&&(e.position++,C=this.text.charAt(e.position),/ \t/.test(C)?e.spacing=!0:(e.add(C),t=!1)),!0):!1;for(;e.position<e.text.length;){let C=e.text.charAt(e.position);e.parseWS(C)||A(C)||(t||e.spacing)&&(e.parseStartTag("bold","*")||e.parseStartTag("ital","_")||e.parseStartTag("mono","`"))||e.parseEndTag("bold","*","afterBold")||e.parseEndTag("ital","_","afterItal")||e.parseEndTag("mono","`","afterMono")||(e.add(C),t=!1),e.position++}return e.emitBlock(),e.blocks}splitBlocks(g,e){let t=this.decodeMarkupSystem(e);if(t==="none")return[{text:g,mod:"normal"}];if(t==="markdown")return this.splitMarkdownBlocks(g);if(t==="html")return this.splitHtmlBlocks(g)}overMaxWidth(g){let e=this.ctx.measureText(g).width;return this.lines.curWidth()+e>this.parent.fontOptions.maxWdt}getLongestFit(g){let e="",t=0;for(;t<g.length;){let C=e+(e===""?"":" ")+g[t];if(this.overMaxWidth(C))break;e=C,t++}return t}getLongestFitWord(g){let e=0;for(;e<g.length&&!this.overMaxWidth(Zg(g).call(g,0,e));)e++;return e}splitStringIntoLines(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal",t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parent.getFormattingValues(this.ctx,this.selected,this.hover,e),g=g.replace(/^( +)/g,"$1\r"),g=g.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");let A=g.split("\r");for(;A.length>0;){let C=this.getLongestFit(A);if(C===0){let i=A[0],n=this.getLongestFitWord(i);this.lines.newLine(Zg(i).call(i,0,n),e),A[0]=Zg(i).call(i,n)}else{let i=C;A[C-1]===" "?C--:A[i]===" "&&i++;let n=Zg(A).call(A,0,C).join("");C==A.length&&t?this.lines.append(n,e):this.lines.newLine(n,e),A=Zg(A).call(A,i)}}}},St=["bold","ital","boldital","mono"],DI=class I{constructor(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.body=g,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(e),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=t}setOptions(g){if(this.elementOptions=g,this.initFontOptions(g.font),OI(g.label)?this.labelDirty=!0:g.label=void 0,g.font!==void 0&&g.font!==null){if(typeof g.font=="string")this.baseSize=this.fontOptions.size;else if(typeof g.font=="object"){let e=g.font.size;e!==void 0&&(this.baseSize=e)}}}initFontOptions(g){if(S(St,e=>{this.fontOptions[e]={}}),I.parseFontString(this.fontOptions,g)){this.fontOptions.vadjust=0;return}S(g,(e,t)=>{e!=null&&typeof e!="object"&&(this.fontOptions[t]=e)})}static parseFontString(g,e){if(!e||typeof e!="string")return!1;let t=e.split(" ");return g.size=+t[0].replace("px",""),g.face=t[1],g.color=t[2],!0}constrain(g){let e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},t=fe(g,"widthConstraint");if(typeof t=="number")e.maxWdt=Number(t),e.minWdt=Number(t);else if(typeof t=="object"){let C=fe(g,["widthConstraint","maximum"]);typeof C=="number"&&(e.maxWdt=Number(C));let i=fe(g,["widthConstraint","minimum"]);typeof i=="number"&&(e.minWdt=Number(i))}let A=fe(g,"heightConstraint");if(typeof A=="number")e.minHgt=Number(A);else if(typeof A=="object"){let C=fe(g,["heightConstraint","minimum"]);typeof C=="number"&&(e.minHgt=Number(C));let i=fe(g,["heightConstraint","valign"]);typeof i=="string"&&(i==="top"||i==="bottom")&&(e.valign=i)}return e}update(g,e){this.setOptions(g,!0),this.propagateFonts(e),_(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=No("label",e)}adjustSizes(g){let e=g?g.right+g.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);let t=g?g.top+g.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=t)}addFontOptionsToPile(g,e){for(let t=0;t<e.length;++t)this.addFontToPile(g,e[t])}addFontToPile(g,e){if(e===void 0||e.font===void 0||e.font===null)return;let t=e.font;g.push(t)}getBasicOptions(g){let e={};for(let t=0;t<g.length;++t){let A=g[t],C={};I.parseFontString(C,A)&&(A=C),S(A,(i,n)=>{i!==void 0&&(Object.prototype.hasOwnProperty.call(e,n)||(G(St).call(St,n)!==-1?e[n]={}:e[n]=i))})}return e}getFontOption(g,e,t){let A;for(let C=0;C<g.length;++C){let i=g[C];if(Object.prototype.hasOwnProperty.call(i,e)){if(A=i[e],A==null)continue;let n={};if(I.parseFontString(n,A)&&(A=n),Object.prototype.hasOwnProperty.call(A,t))return A[t]}}if(Object.prototype.hasOwnProperty.call(this.fontOptions,t))return this.fontOptions[t];throw new Error("Did not find value for multi-font for property: '"+t+"'")}getFontOptions(g,e){let t={},A=["color","size","face","mod","vadjust"];for(let C=0;C<A.length;++C){let i=A[C];t[i]=this.getFontOption(g,e,i)}return t}propagateFonts(g){let e=[];this.addFontOptionsToPile(e,g),this.fontOptions=this.getBasicOptions(e);for(let t=0;t<St.length;++t){let A=St[t],C=this.fontOptions[A],i=this.getFontOptions(e,A);S(i,(n,o)=>{C[o]=n}),C.size=Number(C.size),C.vadjust=Number(C.vadjust)}}draw(g,e,t,A,C){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";if(this.elementOptions.label===void 0)return;let n=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&n<this.elementOptions.scaling.label.drawThreshold-1||(n>=this.elementOptions.scaling.label.maxVisible&&(n=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(g,A,C,e,t,i),this._drawBackground(g),this._drawText(g,e,this.size.yLine,i,n))}_drawBackground(g){if(this.fontOptions.background!==void 0&&this.fontOptions.background!=="none"){g.fillStyle=this.fontOptions.background;let e=this.getSize();g.fillRect(e.left,e.top,e.width,e.height)}}_drawText(g,e,t){let A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle",C=arguments.length>4?arguments[4]:void 0;[e,t]=this._setAlignment(g,e,t,A),g.textAlign="left",e=e-this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&(this.fontOptions.valign==="top"&&(t-=(this.size.height-this.size.labelHeight)/2),this.fontOptions.valign==="bottom"&&(t+=(this.size.height-this.size.labelHeight)/2));for(let i=0;i<this.lineCount;i++){let n=this.lines[i];if(n&&n.blocks){let o=0;this.isEdgeLabel||this.fontOptions.align==="center"?o+=(this.size.width-n.width)/2:this.fontOptions.align==="right"&&(o+=this.size.width-n.width);for(let s=0;s<n.blocks.length;s++){let r=n.blocks[s];g.font=r.font;let[a,d]=this._getColor(r.color,C,r.strokeColor);r.strokeWidth>0&&(g.lineWidth=r.strokeWidth,g.strokeStyle=d,g.lineJoin="round"),g.fillStyle=a,r.strokeWidth>0&&g.strokeText(r.text,e+o,t+r.vadjust),g.fillText(r.text,e+o,t+r.vadjust),o+=r.width}t+=n.height}}}_setAlignment(g,e,t,A){if(this.isEdgeLabel&&this.fontOptions.align!=="horizontal"&&this.pointToSelf===!1){e=0,t=0;let C=2;this.fontOptions.align==="top"?(g.textBaseline="alphabetic",t-=2*C):this.fontOptions.align==="bottom"?(g.textBaseline="hanging",t+=2*C):g.textBaseline="middle"}else g.textBaseline=A;return[e,t]}_getColor(g,e,t){let A=g||"#000000",C=t||"#ffffff";if(e<=this.elementOptions.scaling.label.drawThreshold){let i=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));A=Rg(A,i),C=Rg(C,i)}return[A,C]}getTextSize(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this._processLabel(g,e,t),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}getSize(){let e=this.size.left,t=this.size.top-.5*2;if(this.isEdgeLabel){let C=-this.size.width*.5;switch(this.fontOptions.align){case"middle":e=C,t=-this.size.height*.5;break;case"top":e=C,t=-(this.size.height+2);break;case"bottom":e=C,t=2;break}}return{left:e,top:t,width:this.size.width,height:this.size.height}}calculateLabelSize(g,e,t){let A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";this._processLabel(g,e,t),this.size.left=A-this.size.width*.5,this.size.top=C-this.size.height*.5,this.size.yLine=C+(1-this.lineCount)*.5*this.fontOptions.size,i==="hanging"&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}getFormattingValues(g,e,t,A){let C=function(o,s,r){return s==="normal"?r==="mod"?"":o[r]:o[s][r]!==void 0?o[s][r]:o[r]},i={color:C(this.fontOptions,A,"color"),size:C(this.fontOptions,A,"size"),face:C(this.fontOptions,A,"face"),mod:C(this.fontOptions,A,"mod"),vadjust:C(this.fontOptions,A,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||t)&&(A==="normal"&&this.fontOptions.chooser===!0&&this.elementOptions.labelHighlightBold?i.mod="bold":typeof this.fontOptions.chooser=="function"&&this.fontOptions.chooser(i,this.elementOptions.id,e,t));let n="";return i.mod!==void 0&&i.mod!==""&&(n+=i.mod+" "),n+=i.size+"px "+i.face,g.font=n.replace(/"/g,""),i.font=g.font,i.height=i.size,i}differentState(g,e){return g!==this.selectedState||e!==this.hoverState}_processLabelText(g,e,t,A){return new Xi(g,this,e,t).process(A)}_processLabel(g,e,t){if(this.labelDirty===!1&&!this.differentState(e,t))return;let A=this._processLabelText(g,e,t,this.elementOptions.label);this.fontOptions.minWdt>0&&A.width<this.fontOptions.minWdt&&(A.width=this.fontOptions.minWdt),this.size.labelHeight=A.height,this.fontOptions.minHgt>0&&A.height<this.fontOptions.minHgt&&(A.height=this.fontOptions.minHgt),this.lines=A.lines,this.lineCount=A.lines.length,this.size.width=A.width,this.size.height=A.height,this.selectedState=e,this.hoverState=t,this.labelDirty=!1}visible(){return!(this.size.width===0||this.size.height===0||this.elementOptions.label===void 0||this.fontOptions.size*this.body.view.scale<this.elementOptions.scaling.label.drawThreshold-1)}},oe=class{constructor(g,e,t){this.body=e,this.labelModule=t,this.setOptions(g),this.top=void 0,this.left=void 0,this.height=void 0,this.width=void 0,this.radius=void 0,this.margin=void 0,this.refreshNeeded=!0,this.boundingBox={top:0,left:0,right:0,bottom:0}}setOptions(g){this.options=g}_setMargins(g){this.margin={},this.options.margin&&(typeof this.options.margin=="object"?(this.margin.top=this.options.margin.top,this.margin.right=this.options.margin.right,this.margin.bottom=this.options.margin.bottom,this.margin.left=this.options.margin.left):(this.margin.top=this.options.margin,this.margin.right=this.options.margin,this.margin.bottom=this.options.margin,this.margin.left=this.options.margin)),g.adjustSizes(this.margin)}_distanceToBorder(g,e){let t=this.options.borderWidth;return g&&this.resize(g),Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+t}enableShadow(g,e){e.shadow&&(g.shadowColor=e.shadowColor,g.shadowBlur=e.shadowSize,g.shadowOffsetX=e.shadowX,g.shadowOffsetY=e.shadowY)}disableShadow(g,e){e.shadow&&(g.shadowColor="rgba(0,0,0,0)",g.shadowBlur=0,g.shadowOffsetX=0,g.shadowOffsetY=0)}enableBorderDashes(g,e){if(e.borderDashes!==!1)if(g.setLineDash!==void 0){let t=e.borderDashes;t===!0&&(t=[5,15]),g.setLineDash(t)}else console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1,e.borderDashes=!1}disableBorderDashes(g,e){e.borderDashes!==!1&&(g.setLineDash!==void 0?g.setLineDash([0]):(console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1,e.borderDashes=!1))}needsRefresh(g,e){return this.refreshNeeded===!0?(this.refreshNeeded=!1,!0):this.width===void 0||this.labelModule.differentState(g,e)}initContextForDraw(g,e){let t=e.borderWidth/this.body.view.scale;g.lineWidth=Math.min(this.width,t),g.strokeStyle=e.borderColor,g.fillStyle=e.color}performStroke(g,e){let t=e.borderWidth/this.body.view.scale;g.save(),t>0&&(this.enableBorderDashes(g,e),g.stroke(),this.disableBorderDashes(g,e)),g.restore()}performFill(g,e){g.save(),g.fillStyle=e.color,this.enableShadow(g,e),EA(g).call(g),this.disableShadow(g,e),g.restore(),this.performStroke(g,e)}_addBoundingBoxMargin(g){this.boundingBox.left-=g,this.boundingBox.top-=g,this.boundingBox.bottom+=g,this.boundingBox.right+=g}_updateBoundingBox(g,e,t,A,C){t!==void 0&&this.resize(t,A,C),this.left=g-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}updateBoundingBox(g,e,t,A,C){this._updateBoundingBox(g,e,t,A,C)}getDimensionsFromLabel(g,e,t){this.textSize=this.labelModule.getTextSize(g,e,t);let A=this.textSize.width,C=this.textSize.height,i=14;return A===0&&(A=i,C=i),{width:A,height:C}}},wk=class extends oe{constructor(g,e,t){super(g,e,t),this._setMargins(t)}resize(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(e,t)){let A=this.getDimensionsFromLabel(g,e,t);this.width=A.width+this.margin.right+this.margin.left,this.height=A.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}draw(g,e,t,A,C,i){this.resize(g,A,C),this.left=e-this.width/2,this.top=t-this.height/2,this.initContextForDraw(g,i),Ha(g,this.left,this.top,this.width,this.height,i.borderRadius),this.performFill(g,i),this.updateBoundingBox(e,t,g,A,C),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,A,C)}updateBoundingBox(g,e,t,A,C){this._updateBoundingBox(g,e,t,A,C);let i=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(i)}distanceToBorder(g,e){g&&this.resize(g);let t=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+t}},qt=class extends oe{constructor(g,e,t){super(g,e,t),this.labelOffset=0,this.selected=!1}setOptions(g,e,t){this.options=g,e===void 0&&t===void 0||this.setImages(e,t)}setImages(g,e){e&&this.selected?(this.imageObj=e,this.imageObjAlt=g):(this.imageObj=g,this.imageObjAlt=e)}switchImages(g){let e=g&&!this.selected||!g&&this.selected;if(this.selected=g,this.imageObjAlt!==void 0&&e){let t=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=t}}_getImagePadding(){let g={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){let e=this.options.imagePadding;typeof e=="object"?(g.top=e.top,g.right=e.right,g.bottom=e.bottom,g.left=e.left):(g.top=e,g.right=e,g.bottom=e,g.left=e)}return g}_resizeImage(){let g,e;if(this.options.shapeProperties.useImageSize===!1){let t=1,A=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?t=this.imageObj.width/this.imageObj.height:A=this.imageObj.height/this.imageObj.width),g=this.options.size*2*t,e=this.options.size*2*A}else{let t=this._getImagePadding();g=this.imageObj.width+t.left+t.right,e=this.imageObj.height+t.top+t.bottom}this.width=g,this.height=e,this.radius=.5*this.width}_drawRawCircle(g,e,t,A){this.initContextForDraw(g,A),Xn(g,e,t,A.size),this.performFill(g,A)}_drawImageAtPosition(g,e){if(this.imageObj.width!=0){g.globalAlpha=e.opacity!==void 0?e.opacity:1,this.enableShadow(g,e);let t=1;this.options.shapeProperties.interpolation===!0&&(t=this.imageObj.width/this.width/this.body.view.scale);let A=this._getImagePadding(),C=this.left+A.left,i=this.top+A.top,n=this.width-A.left-A.right,o=this.height-A.top-A.bottom;this.imageObj.drawImageAtPosition(g,t,C,i,n,o),this.disableShadow(g,e)}}_drawImageLabel(g,e,t,A,C){let i=0;if(this.height!==void 0){i=this.height*.5;let o=this.labelModule.getTextSize(g,A,C);o.lineCount>=1&&(i+=o.height/2)}let n=t+i;this.options.label&&(this.labelOffset=i),this.labelModule.draw(g,e,n,A,C,"hanging")}},Ek=class extends qt{constructor(g,e,t){super(g,e,t),this._setMargins(t)}resize(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(e,t)){let A=this.getDimensionsFromLabel(g,e,t),C=Math.max(A.width+this.margin.right+this.margin.left,A.height+this.margin.top+this.margin.bottom);this.options.size=C/2,this.width=C,this.height=C,this.radius=this.width/2}}draw(g,e,t,A,C,i){this.resize(g,A,C),this.left=e-this.width/2,this.top=t-this.height/2,this._drawRawCircle(g,e,t,i),this.updateBoundingBox(e,t),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,t,A,C)}updateBoundingBox(g,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=g-this.options.size,this.boundingBox.right=g+this.options.size,this.boundingBox.bottom=e+this.options.size}distanceToBorder(g){return g&&this.resize(g),this.width*.5}},Ji=class extends qt{constructor(g,e,t,A,C){super(g,e,t),this.setImages(A,C)}resize(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){let C=this.options.size*2;this.width=C,this.height=C,this.radius=.5*this.width;return}this.needsRefresh(e,t)&&this._resizeImage()}draw(g,e,t,A,C,i){this.switchImages(A),this.resize();let n=e,o=t;this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=e,this.top=t,n+=this.width/2,o+=this.height/2):(this.left=e-this.width/2,this.top=t-this.height/2),this._drawRawCircle(g,n,o,i),g.save(),g.clip(),this._drawImageAtPosition(g,i),g.restore(),this._drawImageLabel(g,n,o,A,C),this.updateBoundingBox(e,t)}updateBoundingBox(g,e){this.options.shapeProperties.coordinateOrigin==="top-left"?(this.boundingBox.top=e,this.boundingBox.left=g,this.boundingBox.right=g+this.options.size*2,this.boundingBox.bottom=e+this.options.size*2):(this.boundingBox.top=e-this.options.size,this.boundingBox.left=g-this.options.size,this.boundingBox.right=g+this.options.size,this.boundingBox.bottom=e+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}distanceToBorder(g){return g&&this.resize(g),this.width*.5}},$g=class extends oe{constructor(g,e,t){super(g,e,t)}resize(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover,A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,t)){var C,i;this.labelModule.getTextSize(g,e,t);let n=2*A.size;this.width=(C=this.customSizeWidth)!==null&&C!==void 0?C:n,this.height=(i=this.customSizeHeight)!==null&&i!==void 0?i:n,this.radius=.5*this.width}}_drawShape(g,e,t,A,C,i,n,o){return this.resize(g,i,n,o),this.left=A-this.width/2,this.top=C-this.height/2,this.initContextForDraw(g,o),ip(e)(g,A,C,o.size),this.performFill(g,o),this.options.icon!==void 0&&this.options.icon.code!==void 0&&(g.font=(i?"bold ":"")+this.height/2+"px "+(this.options.icon.face||"FontAwesome"),g.fillStyle=this.options.icon.color||"black",g.textAlign="center",g.textBaseline="middle",g.fillText(this.options.icon.code,A,C)),{drawExternalLabel:()=>{if(this.options.label!==void 0){this.labelModule.calculateLabelSize(g,i,n,A,C,"hanging");let s=C+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(g,A,s,i,n,"hanging")}this.updateBoundingBox(A,C)}}}updateBoundingBox(g,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=g-this.options.size,this.boundingBox.right=g+this.options.size,this.boundingBox.bottom=e+this.options.size,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}};function ha(I,g){var e=U(I);if(Xg){var t=Xg(I);g&&(t=tg(t).call(t,function(A){return ge(I,A).enumerable})),e.push.apply(e,t)}return e}function Tk(I){for(var g=1;g<arguments.length;g++){var e,t,A=arguments[g]!=null?arguments[g]:{};g%2?F(e=ha(Object(A),!0)).call(e,function(C){eg(I,C,A[C])}):Jg?NA(I,Jg(A)):F(t=ha(Object(A))).call(t,function(C){SA(I,C,ge(A,C))})}return I}var $i=class extends $g{constructor(g,e,t,A){super(g,e,t,A),this.ctxRenderer=A}draw(g,e,t,A,C,i){this.resize(g,A,C,i),this.left=e-this.width/2,this.top=t-this.height/2,g.save();let n=this.ctxRenderer({ctx:g,id:this.options.id,x:e,y:t,state:{selected:A,hover:C},style:Tk({},i),label:this.options.label});if(n.drawNode!=null&&n.drawNode(),g.restore(),n.drawExternalLabel){let o=n.drawExternalLabel;n.drawExternalLabel=()=>{g.save(),o(),g.restore()}}return n.nodeDimensions&&(this.customSizeWidth=n.nodeDimensions.width,this.customSizeHeight=n.nodeDimensions.height),n}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},qi=class extends oe{constructor(g,e,t){super(g,e,t),this._setMargins(t)}resize(g,e,t){if(this.needsRefresh(e,t)){let C=this.getDimensionsFromLabel(g,e,t).width+this.margin.right+this.margin.left;this.width=C,this.height=C,this.radius=this.width/2}}draw(g,e,t,A,C,i){this.resize(g,A,C),this.left=e-this.width/2,this.top=t-this.height/2,this.initContextForDraw(g,i),Qa(g,e-this.width/2,t-this.height/2,this.width,this.height),this.performFill(g,i),this.updateBoundingBox(e,t,g,A,C),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,A,C)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},xk=class extends $g{constructor(g,e,t){super(g,e,t)}draw(g,e,t,A,C,i){return this._drawShape(g,"diamond",4,e,t,A,C,i)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},gn=class extends $g{constructor(g,e,t){super(g,e,t)}draw(g,e,t,A,C,i){return this._drawShape(g,"circle",2,e,t,A,C,i)}distanceToBorder(g){return g&&this.resize(g),this.options.size}},RI=class extends oe{constructor(g,e,t){super(g,e,t)}resize(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(e,t)){let A=this.getDimensionsFromLabel(g,e,t);this.height=A.height*2,this.width=A.width+A.height,this.radius=.5*this.width}}draw(g,e,t,A,C,i){this.resize(g,A,C),this.left=e-this.width*.5,this.top=t-this.height*.5,this.initContextForDraw(g,i),pi(g,this.left,this.top,this.width,this.height),this.performFill(g,i),this.updateBoundingBox(e,t,g,A,C),this.labelModule.draw(g,e,t,A,C)}distanceToBorder(g,e){g&&this.resize(g);let t=this.width*.5,A=this.height*.5,C=Math.sin(e)*t,i=Math.cos(e)*A;return t*A/Math.sqrt(C*C+i*i)}},en=class extends oe{constructor(g,e,t){super(g,e,t),this._setMargins(t)}resize(g,e,t){this.needsRefresh(e,t)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(g,e,t,A,C,i){return this.resize(g,A,C),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=t-this.height/2,this._icon(g,e,t,A,C,i),{drawExternalLabel:()=>{this.options.label!==void 0&&this.labelModule.draw(g,this.left+this.iconSize.width/2+this.margin.left,t+this.height/2+5,A),this.updateBoundingBox(e,t)}}}updateBoundingBox(g,e){this.boundingBox.top=e-this.options.icon.size*.5,this.boundingBox.left=g-this.options.icon.size*.5,this.boundingBox.right=g+this.options.icon.size*.5,this.boundingBox.bottom=e+this.options.icon.size*.5,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5))}_icon(g,e,t,A,C,i){let n=Number(this.options.icon.size);this.options.icon.code!==void 0?(g.font=[this.options.icon.weight!=null?this.options.icon.weight:A?"bold":"",(this.options.icon.weight!=null&&A?5:0)+n+"px",this.options.icon.face].join(" "),g.fillStyle=this.options.icon.color||"black",g.textAlign="center",g.textBaseline="middle",this.enableShadow(g,i),g.fillText(this.options.icon.code,e,t),this.disableShadow(g,i)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},Ok=class extends qt{constructor(g,e,t,A,C){super(g,e,t),this.setImages(A,C)}resize(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){let C=this.options.size*2;this.width=C,this.height=C;return}this.needsRefresh(e,t)&&this._resizeImage()}draw(g,e,t,A,C,i){g.save(),this.switchImages(A),this.resize();let n=e,o=t;if(this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=e,this.top=t,n+=this.width/2,o+=this.height/2):(this.left=e-this.width/2,this.top=t-this.height/2),this.options.shapeProperties.useBorderWithImage===!0){let s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth,a=(A?r:s)/this.body.view.scale;g.lineWidth=Math.min(this.width,a),g.beginPath();let d=A?this.options.color.highlight.border:C?this.options.color.hover.border:this.options.color.border,l=A?this.options.color.highlight.background:C?this.options.color.hover.background:this.options.color.background;i.opacity!==void 0&&(d=Rg(d,i.opacity),l=Rg(l,i.opacity)),g.strokeStyle=d,g.fillStyle=l,g.rect(this.left-.5*g.lineWidth,this.top-.5*g.lineWidth,this.width+g.lineWidth,this.height+g.lineWidth),EA(g).call(g),this.performStroke(g,i),g.closePath()}this._drawImageAtPosition(g,i),this._drawImageLabel(g,n,o,A,C),this.updateBoundingBox(e,t),g.restore()}updateBoundingBox(g,e){this.resize(),this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=g,this.top=e):(this.left=g-this.width/2,this.top=e-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},tn=class extends $g{constructor(g,e,t){super(g,e,t)}draw(g,e,t,A,C,i){return this._drawShape(g,"square",2,e,t,A,C,i)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},An=class extends $g{constructor(g,e,t){super(g,e,t)}draw(g,e,t,A,C,i){return this._drawShape(g,"hexagon",4,e,t,A,C,i)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},In=class extends $g{constructor(g,e,t){super(g,e,t)}draw(g,e,t,A,C,i){return this._drawShape(g,"star",4,e,t,A,C,i)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},Cn=class extends oe{constructor(g,e,t){super(g,e,t),this._setMargins(t)}resize(g,e,t){this.needsRefresh(e,t)&&(this.textSize=this.labelModule.getTextSize(g,e,t),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(g,e,t,A,C,i){this.resize(g,A,C),this.left=e-this.width/2,this.top=t-this.height/2,this.enableShadow(g,i),this.labelModule.draw(g,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,A,C),this.disableShadow(g,i),this.updateBoundingBox(e,t,g,A,C)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},Pk=class extends $g{constructor(g,e,t){super(g,e,t)}draw(g,e,t,A,C,i){return this._drawShape(g,"triangle",3,e,t,A,C,i)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}},nn=class extends $g{constructor(g,e,t){super(g,e,t)}draw(g,e,t,A,C,i){return this._drawShape(g,"triangleDown",3,e,t,A,C,i)}distanceToBorder(g,e){return this._distanceToBorder(g,e)}};function ca(I,g){var e=U(I);if(Xg){var t=Xg(I);g&&(t=tg(t).call(t,function(A){return ge(I,A).enumerable})),e.push.apply(e,t)}return e}function ua(I){for(var g=1;g<arguments.length;g++){var e,t,A=arguments[g]!=null?arguments[g]:{};g%2?F(e=ca(Object(A),!0)).call(e,function(C){eg(I,C,A[C])}):Jg?NA(I,Jg(A)):F(t=ca(Object(A))).call(t,function(C){SA(I,C,ge(A,C))})}return I}var pg=class I{constructor(g,e,t,A,C,i){this.options=Te(C),this.globalOptions=C,this.defaultOptions=i,this.body=e,this.edges=[],this.id=void 0,this.imagelist=t,this.grouplist=A,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new DI(this.body,this.options,!1),this.setOptions(g)}attachEdge(g){var e;G(e=this.edges).call(e,g)===-1&&this.edges.push(g)}detachEdge(g){var e;let t=G(e=this.edges).call(e,g);if(t!=-1){var A;Ug(A=this.edges).call(A,t,1)}}setOptions(g){let e=this.options.shape;if(!g)return;if(typeof g.color!="undefined"&&(this._localColor=g.color),g.id!==void 0&&(this.id=g.id),this.id===void 0)throw new Error("Node must have an id");I.checkMass(g,this.id),g.x!==void 0&&(g.x===null?(this.x=void 0,this.predefinedPosition=!1):(this.x=zg(g.x),this.predefinedPosition=!0)),g.y!==void 0&&(g.y===null?(this.y=void 0,this.predefinedPosition=!1):(this.y=zg(g.y),this.predefinedPosition=!0)),g.size!==void 0&&(this.baseSize=g.size),g.value!==void 0&&(g.value=Eh(g.value)),I.parseOptions(this.options,g,!0,this.globalOptions,this.grouplist);let t=[g,this.options,this.defaultOptions];return this.chooser=No("node",t),this._load_images(),this.updateLabelModule(g),g.opacity!==void 0&&I.checkOpacity(g.opacity)&&(this.options.opacity=g.opacity),this.updateShape(e),g.hidden!==void 0||g.physics!==void 0}_load_images(){if((this.options.shape==="circularImage"||this.options.shape==="image")&&this.options.image===void 0)throw new Error("Option image must be defined for node type '"+this.options.shape+"'");if(this.options.image!==void 0){if(this.imagelist===void 0)throw new Error("Internal Error: No images provided");if(typeof this.options.image=="string")this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id);else{if(this.options.image.unselected===void 0)throw new Error("No unselected image provided");this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id),this.options.image.selected!==void 0?this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id):this.imageObjAlt=void 0}}}static checkOpacity(g){return 0<=g&&g<=1}static checkCoordinateOrigin(g){return g===void 0||g==="center"||g==="top-left"}static updateGroupOptions(g,e,t){var A;if(t===void 0)return;let C=g.group;if(e!==void 0&&e.group!==void 0&&C!==e.group)throw new Error("updateGroupOptions: group values in options don't match.");if(!(typeof C=="number"||typeof C=="string"&&C!=""))return;let n=t.get(C);n.opacity!==void 0&&e.opacity===void 0&&(I.checkOpacity(n.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+n.opacity),n.opacity=void 0));let o=tg(A=bk(e)).call(A,s=>e[s]!=null);o.push("font"),bI(o,g,n),g.color=zi(g.color)}static parseOptions(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},C=arguments.length>4?arguments[4]:void 0;if(bI(["color","fixed","shadow"],g,e,t),I.checkMass(e),g.opacity!==void 0&&(I.checkOpacity(g.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+g.opacity),g.opacity=void 0)),e.opacity!==void 0&&(I.checkOpacity(e.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity),e.opacity=void 0)),e.shapeProperties&&!I.checkCoordinateOrigin(e.shapeProperties.coordinateOrigin)&&console.error("Invalid option for node coordinateOrigin, found: "+e.shapeProperties.coordinateOrigin),Dg(g,e,"shadow",A),e.color!==void 0&&e.color!==null){let n=zi(e.color);Bl(g.color,n)}else t===!0&&e.color===null&&(g.color=Te(A.color));e.fixed!==void 0&&e.fixed!==null&&(typeof e.fixed=="boolean"?(g.fixed.x=e.fixed,g.fixed.y=e.fixed):(e.fixed.x!==void 0&&typeof e.fixed.x=="boolean"&&(g.fixed.x=e.fixed.x),e.fixed.y!==void 0&&typeof e.fixed.y=="boolean"&&(g.fixed.y=e.fixed.y))),t===!0&&e.font===null&&(g.font=Te(A.font)),I.updateGroupOptions(g,e,C),e.scaling!==void 0&&Dg(g.scaling,e.scaling,"label",A.scaling)}getFormattingValues(){let g={color:this.options.color.background,opacity:this.options.opacity,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover?this.chooser===!0?this.selected?(this.options.borderWidthSelected!=null?g.borderWidth=this.options.borderWidthSelected:g.borderWidth*=2,g.color=this.options.color.highlight.background,g.borderColor=this.options.color.highlight.border,g.shadow=this.options.shadow.enabled):this.hover&&(g.color=this.options.color.hover.background,g.borderColor=this.options.color.hover.border,g.shadow=this.options.shadow.enabled):typeof this.chooser=="function"&&(this.chooser(g,this.options.id,this.selected,this.hover),g.shadow===!1&&(g.shadowColor!==this.options.shadow.color||g.shadowSize!==this.options.shadow.size||g.shadowX!==this.options.shadow.x||g.shadowY!==this.options.shadow.y)&&(g.shadow=!0)):g.shadow=this.options.shadow.enabled,this.options.opacity!==void 0){let e=this.options.opacity;g.borderColor=Rg(g.borderColor,e),g.color=Rg(g.color,e),g.shadowColor=Rg(g.shadowColor,e)}return g}updateLabelModule(g){(this.options.label===void 0||this.options.label===null)&&(this.options.label=""),I.updateGroupOptions(this.options,ua(ua({},g),{},{color:g&&g.color||this._localColor||void 0}),this.grouplist);let e=this.grouplist.get(this.options.group,!1),t=[g,this.options,e,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,t),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateShape(g){if(g===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case"box":this.shape=new wk(this.options,this.body,this.labelModule);break;case"circle":this.shape=new Ek(this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new Ji(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"custom":this.shape=new $i(this.options,this.body,this.labelModule,this.options.ctxRenderer);break;case"database":this.shape=new qi(this.options,this.body,this.labelModule);break;case"diamond":this.shape=new xk(this.options,this.body,this.labelModule);break;case"dot":this.shape=new gn(this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new RI(this.options,this.body,this.labelModule);break;case"icon":this.shape=new en(this.options,this.body,this.labelModule);break;case"image":this.shape=new Ok(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"square":this.shape=new tn(this.options,this.body,this.labelModule);break;case"hexagon":this.shape=new An(this.options,this.body,this.labelModule);break;case"star":this.shape=new In(this.options,this.body,this.labelModule);break;case"text":this.shape=new Cn(this.options,this.body,this.labelModule);break;case"triangle":this.shape=new Pk(this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new nn(this.options,this.body,this.labelModule);break;default:this.shape=new RI(this.options,this.body,this.labelModule);break}this.needsRefresh()}select(){this.selected=!0,this.needsRefresh()}unselect(){this.selected=!1,this.needsRefresh()}needsRefresh(){this.shape.refreshNeeded=!0}getTitle(){return this.options.title}distanceToBorder(g,e){return this.shape.distanceToBorder(g,e)}isFixed(){return this.options.fixed.x&&this.options.fixed.y}isSelected(){return this.selected}getValue(){return this.options.value}getLabelSize(){return this.labelModule.size()}setValueRange(g,e,t){if(this.options.value!==void 0){let A=this.options.scaling.customScalingFunction(g,e,t,this.options.value),C=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){let i=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+A*i}this.options.size=this.options.scaling.min+A*C}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}draw(g){let e=this.getFormattingValues();return this.shape.draw(g,this.x,this.y,this.selected,this.hover,e)||{}}updateBoundingBox(g){this.shape.updateBoundingBox(this.x,this.y,g)}resize(g){let e=this.getFormattingValues();this.shape.resize(g,this.selected,this.hover,e)}getItemsOnPoint(g){let e=[];return this.labelModule.visible()&&Hi(this.labelModule.getSize(),g)&&e.push({nodeId:this.id,labelId:0}),Hi(this.shape.boundingBox,g)&&e.push({nodeId:this.id}),e}isOverlappingWith(g){return this.shape.left<g.right&&this.shape.left+this.shape.width>g.left&&this.shape.top<g.bottom&&this.shape.top+this.shape.height>g.top}isBoundingBoxOverlappingWith(g){return this.shape.boundingBox.left<g.right&&this.shape.boundingBox.right>g.left&&this.shape.boundingBox.top<g.bottom&&this.shape.boundingBox.bottom>g.top}static checkMass(g,e){if(g.mass!==void 0&&g.mass<=0){let t="";e!==void 0&&(t=" in node id: "+e),console.error("%cNegative or zero mass disallowed"+t+", setting mass to 1.",Gl),g.mass=1}}},on=class{constructor(g,e,t,A){var C;if(this.body=g,this.images=e,this.groups=t,this.layoutEngine=A,this.body.functions.createNode=b(C=this.create).call(C,this),this.nodesListeners={add:(i,n)=>{this.add(n.items)},update:(i,n)=>{this.update(n.items,n.data,n.oldData)},remove:(i,n)=>{this.remove(n.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:void 0,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},opacity:void 0,fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,imagePadding:{top:0,right:0,bottom:0,left:0},label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(i,n,o,s){if(n===i)return .5;{let r=1/(n-i);return Math.max(0,(s-i)*r)}}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1,coordinateOrigin:"center"},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=Te(this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g,e;this.body.emitter.on("refreshNodes",b(g=this.refresh).call(g,this)),this.body.emitter.on("refresh",b(e=this.refresh).call(e,this)),this.body.emitter.on("destroy",()=>{S(this.nodesListeners,(t,A)=>{this.body.data.nodes&&this.body.data.nodes.off(A,t)}),delete this.body.functions.createNode,delete this.nodesListeners.add,delete this.nodesListeners.update,delete this.nodesListeners.remove,delete this.nodesListeners})}setOptions(g){if(g!==void 0){if(pg.parseOptions(this.options,g),g.opacity!==void 0&&(Yi(g.opacity)||!Me(g.opacity)||g.opacity<0||g.opacity>1?console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+g.opacity):this.options.opacity=g.opacity),g.shape!==void 0)for(let e in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,e)&&this.body.nodes[e].updateShape();if(typeof g.font!="undefined"||typeof g.widthConstraint!="undefined"||typeof g.heightConstraint!="undefined")for(let e of U(this.body.nodes))this.body.nodes[e].updateLabelModule(),this.body.nodes[e].needsRefresh();if(g.size!==void 0)for(let e in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,e)&&this.body.nodes[e].needsRefresh();(g.hidden!==void 0||g.physics!==void 0)&&this.body.emitter.emit("_dataChanged")}}setData(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=this.body.data.nodes;if(yh("id",g))this.body.data.nodes=g;else if(B(g))this.body.data.nodes=new Pe,this.body.data.nodes.add(g);else if(!g)this.body.data.nodes=new Pe;else throw new TypeError("Array or DataSet expected");if(t&&S(this.nodesListeners,function(A,C){t.off(C,A)}),this.body.nodes={},this.body.data.nodes){let A=this;S(this.nodesListeners,function(i,n){A.body.data.nodes.on(n,i)});let C=this.body.data.nodes.getIds();this.add(C,!0)}e===!1&&this.body.emitter.emit("_dataChanged")}add(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t,A=[];for(let C=0;C<g.length;C++){t=g[C];let i=this.body.data.nodes.get(t),n=this.create(i);A.push(n),this.body.nodes[t]=n}this.layoutEngine.positionInitially(A),e===!1&&this.body.emitter.emit("_dataChanged")}update(g,e,t){let A=this.body.nodes,C=!1;for(let i=0;i<g.length;i++){let n=g[i],o=A[n],s=e[i];o!==void 0?o.setOptions(s)&&(C=!0):(C=!0,o=this.create(s),A[n]=o)}!C&&t!==void 0&&(C=Ih(e).call(e,function(i,n){let o=t[n];return o&&o.level!==i.level})),C===!0?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}remove(g){let e=this.body.nodes;for(let t=0;t<g.length;t++){let A=g[t];delete e[A]}this.body.emitter.emit("_dataChanged")}create(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:pg;return new e(g,this.body,this.images,this.groups,this.options,this.defaultOptions)}refresh(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;S(this.body.nodes,(e,t)=>{let A=this.body.data.nodes.get(t);A!==void 0&&(g===!0&&e.setOptions({x:null,y:null}),e.setOptions({fixed:!1}),e.setOptions(A))})}getPositions(g){let e={};if(g!==void 0){if(B(g)===!0){for(let t=0;t<g.length;t++)if(this.body.nodes[g[t]]!==void 0){let A=this.body.nodes[g[t]];e[g[t]]={x:Math.round(A.x),y:Math.round(A.y)}}}else if(this.body.nodes[g]!==void 0){let t=this.body.nodes[g];e[g]={x:Math.round(t.x),y:Math.round(t.y)}}}else for(let t=0;t<this.body.nodeIndices.length;t++){let A=this.body.nodes[this.body.nodeIndices[t]];e[this.body.nodeIndices[t]]={x:Math.round(A.x),y:Math.round(A.y)}}return e}getPosition(g){if(g==null)throw new TypeError("No id was specified for getPosition method.");if(this.body.nodes[g]==null)throw new ReferenceError("NodeId provided for getPosition does not exist. Provided: ".concat(g));return{x:Math.round(this.body.nodes[g].x),y:Math.round(this.body.nodes[g].y)}}storePositions(){let g=[],e=this.body.data.nodes.getDataSet();for(let t of e.get()){let A=t.id,C=this.body.nodes[A],i=Math.round(C.x),n=Math.round(C.y);(t.x!==i||t.y!==n)&&g.push({id:A,x:i,y:n})}e.update(g)}getBoundingBox(g){if(this.body.nodes[g]!==void 0)return this.body.nodes[g].shape.boundingBox}getConnectedNodes(g,e){let t=[];if(this.body.nodes[g]!==void 0){let A=this.body.nodes[g],C={};for(let i=0;i<A.edges.length;i++){let n=A.edges[i];e!=="to"&&n.toId==A.id?C[n.fromId]===void 0&&(t.push(n.fromId),C[n.fromId]=!0):e!=="from"&&n.fromId==A.id&&C[n.toId]===void 0&&(t.push(n.toId),C[n.toId]=!0)}}return t}getConnectedEdges(g){let e=[];if(this.body.nodes[g]!==void 0){let t=this.body.nodes[g];for(let A=0;A<t.edges.length;A++)e.push(t.edges[A].id)}else console.error("NodeId provided for getConnectedEdges does not exist. Provided: ",g);return e}moveNode(g,e,t){this.body.nodes[g]!==void 0?(this.body.nodes[g].x=Number(e),this.body.nodes[g].y=Number(t),Hg(()=>{this.body.emitter.emit("startSimulation")},0)):console.error("Node id supplied to moveNode does not exist. Provided: ",g)}},Dk=R,fa=Math.hypot,Rk=Math.abs,Nk=Math.sqrt,Sk=!!fa&&fa(1/0,NaN)!==1/0;Dk({target:"Math",stat:!0,arity:2,forced:Sk},{hypot:function(g,e){for(var t=0,A=0,C=arguments.length,i=0,n,o;A<C;)n=Rk(arguments[A++]),i<n?(o=i/n,t=t*o*o+1,i=n):n>0?(o=n/i,t+=o*o):t+=n;return i===1/0?1/0:i*Nk(t)}});var kk=L,Mk=kk.Math.hypot,Fk=Mk,Bk=Fk,zk=Bk,Zk=D(zk),H=class{static transform(g,e){B(g)||(g=[g]);let t=e.point.x,A=e.point.y,C=e.angle,i=e.length;for(let n=0;n<g.length;++n){let o=g[n],s=o.x*Math.cos(C)-o.y*Math.sin(C),r=o.x*Math.sin(C)+o.y*Math.cos(C);o.x=t+i*s,o.y=A+i*r}}static drawPath(g,e){g.beginPath(),g.moveTo(e[0].x,e[0].y);for(let t=1;t<e.length;++t)g.lineTo(e[t].x,e[t].y);g.closePath()}},Lk=class extends H{static draw(g,e){if(e.image){g.save(),g.translate(e.point.x,e.point.y),g.rotate(Math.PI/2+e.angle);let t=e.imageWidth!=null?e.imageWidth:e.image.width,A=e.imageHeight!=null?e.imageHeight:e.image.height;e.image.drawImageAtPosition(g,1,-t/2,0,t,A),g.restore()}return!1}},sn=class extends H{static draw(g,e){let t=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];return H.transform(t,e),H.drawPath(g,t),!0}},rn=class{static draw(g,e){let t=[{x:-1,y:0},{x:0,y:.3},{x:-.4,y:0},{x:0,y:-.3}];return H.transform(t,e),H.drawPath(g,t),!0}},an=class{static draw(g,e){let t={x:-.4,y:0};H.transform(t,e),g.strokeStyle=g.fillStyle,g.fillStyle="rgba(0, 0, 0, 0)";let A=Math.PI,C=e.angle-A/2,i=e.angle+A/2;return g.beginPath(),g.arc(t.x,t.y,e.length*.4,C,i,!1),g.stroke(),!0}},dn=class{static draw(g,e){let t={x:-.3,y:0};H.transform(t,e),g.strokeStyle=g.fillStyle,g.fillStyle="rgba(0, 0, 0, 0)";let A=Math.PI,C=e.angle+A/2,i=e.angle+3*A/2;return g.beginPath(),g.arc(t.x,t.y,e.length*.4,C,i,!1),g.stroke(),!0}},ln=class{static draw(g,e){let t=[{x:.02,y:0},{x:-1,y:.3},{x:-1,y:-.3}];return H.transform(t,e),H.drawPath(g,t),!0}},hn=class{static draw(g,e){let t=[{x:0,y:.3},{x:0,y:-.3},{x:-1,y:0}];return H.transform(t,e),H.drawPath(g,t),!0}},cn=class{static draw(g,e){let t={x:-.4,y:0};return H.transform(t,e),Xn(g,t.x,t.y,e.length*.4),!0}},un=class{static draw(g,e){let t=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];return H.transform(t,e),H.drawPath(g,t),!0}},fn=class{static draw(g,e){let t=[{x:0,y:.3},{x:0,y:-.3},{x:-.6,y:-.3},{x:-.6,y:.3}];return H.transform(t,e),H.drawPath(g,t),!0}},pn=class{static draw(g,e){let t=[{x:0,y:0},{x:-.5,y:-.3},{x:-1,y:0},{x:-.5,y:.3}];return H.transform(t,e),H.drawPath(g,t),!0}},mn=class{static draw(g,e){let t=[{x:-1,y:.3},{x:-.5,y:0},{x:-1,y:-.3},{x:0,y:0}];return H.transform(t,e),H.drawPath(g,t),!0}},NI=class{static draw(g,e){let t;switch(e.type&&(t=e.type.toLowerCase()),t){case"image":return Lk.draw(g,e);case"circle":return cn.draw(g,e);case"box":return fn.draw(g,e);case"crow":return rn.draw(g,e);case"curve":return an.draw(g,e);case"diamond":return pn.draw(g,e);case"inv_curve":return dn.draw(g,e);case"triangle":return ln.draw(g,e);case"inv_triangle":return hn.draw(g,e);case"bar":return un.draw(g,e);case"vee":return mn.draw(g,e);case"arrow":default:return sn.draw(g,e)}}};function pa(I,g){var e=U(I);if(Xg){var t=Xg(I);g&&(t=tg(t).call(t,function(A){return ge(I,A).enumerable})),e.push.apply(e,t)}return e}function ma(I){for(var g=1;g<arguments.length;g++){var e,t,A=arguments[g]!=null?arguments[g]:{};g%2?F(e=pa(Object(A),!0)).call(e,function(C){eg(I,C,A[C])}):Jg?NA(I,Jg(A)):F(t=pa(Object(A))).call(t,function(C){SA(I,C,ge(A,C))})}return I}var SI=class{constructor(g,e,t){this._body=e,this._labelModule=t,this.color={},this.colorDirty=!0,this.hoverWidth=1.5,this.selectionWidth=2,this.setOptions(g),this.fromPoint=this.from,this.toPoint=this.to}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to]}cleanup(){return!1}setOptions(g){this.options=g,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.id=this.options.id}drawLine(g,e,t,A){let C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.getViaNode();g.strokeStyle=this.getColor(g,e),g.lineWidth=e.width,e.dashes!==!1?this._drawDashedLine(g,e,C):this._drawLine(g,e,C)}_drawLine(g,e,t,A,C){if(this.from!=this.to)this._line(g,e,t,A,C);else{let[i,n,o]=this._getCircleData(g);this._circle(g,e,i,n,o)}}_drawDashedLine(g,e,t,A,C){g.lineCap="round";let i=B(e.dashes)?e.dashes:[5,5];if(g.setLineDash!==void 0){if(g.save(),g.setLineDash(i),g.lineDashOffset=0,this.from!=this.to)this._line(g,e,t);else{let[n,o,s]=this._getCircleData(g);this._circle(g,e,n,o,s)}g.setLineDash([0]),g.lineDashOffset=0,g.restore()}else{if(this.from!=this.to)Xa(g,this.from.x,this.from.y,this.to.x,this.to.y,i);else{let[n,o,s]=this._getCircleData(g);this._circle(g,e,n,o,s)}this.enableShadow(g,e),g.stroke(),this.disableShadow(g,e)}}findBorderPosition(g,e,t){return this.from!=this.to?this._findBorderPosition(g,e,t):this._findBorderPositionCircle(g,e,t)}findBorderPositions(g){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,g),to:this._findBorderPosition(this.to,g)};{var e;let[t,A]=Zg(e=this._getCircleData(g)).call(e,0,2);return{from:this._findBorderPositionCircle(this.from,g,{x:t,y:A,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,g,{x:t,y:A,low:.6,high:.8,direction:1})}}}_getCircleData(g){let e=this.options.selfReference.size;g!==void 0&&this.from.shape.width===void 0&&this.from.shape.resize(g);let t=Th(g,this.options.selfReference.angle,e,this.from);return[t.x,t.y,e]}_pointOnCircle(g,e,t,A){let C=A*2*Math.PI;return{x:g+t*Math.cos(C),y:e-t*Math.sin(C)}}_findBorderPositionCircle(g,e,t){let A=t.x,C=t.y,i=t.low,n=t.high,o=t.direction,s=10,r=this.options.selfReference.size,a=.05,d,l=(i+n)*.5,h=0;this.options.arrowStrikethrough===!0&&(o===-1?h=this.options.endPointOffset.from:o===1&&(h=this.options.endPointOffset.to));let c=0;do{l=(i+n)*.5,d=this._pointOnCircle(A,C,r,l);let p=Math.atan2(g.y-d.y,g.x-d.x),u=g.distanceToBorder(e,p)+h,m=Math.sqrt(Math.pow(d.x-g.x,2)+Math.pow(d.y-g.y,2)),E=u-m;if(Math.abs(E)<a)break;E>0?o>0?i=l:n=l:o>0?n=l:i=l,++c}while(i<=n&&c<s);return ma(ma({},d),{},{t:l})}getLineWidth(g,e){return g===!0?Math.max(this.selectionWidth,.3/this._body.view.scale):e===!0?Math.max(this.hoverWidth,.3/this._body.view.scale):Math.max(this.options.width,.3/this._body.view.scale)}getColor(g,e){if(e.inheritsColor!==!1){if(e.inheritsColor==="both"&&this.from.id!==this.to.id){let t=g.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),A=this.from.options.color.highlight.border,C=this.to.options.color.highlight.border;return this.from.selected===!1&&this.to.selected===!1?(A=Rg(this.from.options.color.border,e.opacity),C=Rg(this.to.options.color.border,e.opacity)):this.from.selected===!0&&this.to.selected===!1?C=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(A=this.from.options.color.border),t.addColorStop(0,A),t.addColorStop(1,C),t}return e.inheritsColor==="to"?Rg(this.to.options.color.border,e.opacity):Rg(this.from.options.color.border,e.opacity)}else return Rg(e.color,e.opacity)}_circle(g,e,t,A,C){this.enableShadow(g,e);let i=0,n=Math.PI*2;if(!this.options.selfReference.renderBehindTheNode){let o=this.options.selfReference.angle,s=this.options.selfReference.angle+Math.PI,r=this._findBorderPositionCircle(this.from,g,{x:t,y:A,low:o,high:s,direction:-1}),a=this._findBorderPositionCircle(this.from,g,{x:t,y:A,low:o,high:s,direction:1});i=Math.atan2(r.y-A,r.x-t),n=Math.atan2(a.y-A,a.x-t)}g.beginPath(),g.arc(t,A,C,i,n,!1),g.stroke(),this.disableShadow(g,e)}getDistanceToEdge(g,e,t,A,C,i){if(this.from!=this.to)return this._getDistanceToEdge(g,e,t,A,C,i);{let[n,o,s]=this._getCircleData(void 0),r=n-C,a=o-i;return Math.abs(Math.sqrt(r*r+a*a)-s)}}_getDistanceToLine(g,e,t,A,C,i){let n=t-g,o=A-e,s=n*n+o*o,r=((C-g)*n+(i-e)*o)/s;r>1?r=1:r<0&&(r=0);let a=g+r*n,d=e+r*o,l=a-C,h=d-i;return Math.sqrt(l*l+h*h)}getArrowData(g,e,t,A,C,i){let n,o,s,r,a,d,l,h=i.width;e==="from"?(s=this.from,r=this.to,a=i.fromArrowScale<0,d=Math.abs(i.fromArrowScale),l=i.fromArrowType):e==="to"?(s=this.to,r=this.from,a=i.toArrowScale<0,d=Math.abs(i.toArrowScale),l=i.toArrowType):(s=this.to,r=this.from,a=i.middleArrowScale<0,d=Math.abs(i.middleArrowScale),l=i.middleArrowType);let c=15*d+3*h;if(s!=r){let E=Zk(s.x-r.x,s.y-r.y),w=c/E;if(e!=="middle")if(this.options.smooth.enabled===!0){let O=this._findBorderPosition(s,g,{via:t}),M=this.getPoint(O.t+w*(e==="from"?1:-1),t);n=Math.atan2(O.y-M.y,O.x-M.x),o=O}else n=Math.atan2(s.y-r.y,s.x-r.x),o=this._findBorderPosition(s,g);else{let O=(a?-w:w)/2,M=this.getPoint(.5+O,t),k=this.getPoint(.5-O,t);n=Math.atan2(M.y-k.y,M.x-k.x),o=this.getPoint(.5,t)}}else{let[E,w,O]=this._getCircleData(g);if(e==="from"){let M=this.options.selfReference.angle,k=this.options.selfReference.angle+Math.PI,V=this._findBorderPositionCircle(this.from,g,{x:E,y:w,low:M,high:k,direction:-1});n=V.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI,o=V}else if(e==="to"){let M=this.options.selfReference.angle,k=this.options.selfReference.angle+Math.PI,V=this._findBorderPositionCircle(this.from,g,{x:E,y:w,low:M,high:k,direction:1});n=V.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI,o=V}else{let M=this.options.selfReference.angle/(2*Math.PI);o=this._pointOnCircle(E,w,O,M),n=M*-2*Math.PI+1.5*Math.PI+.1*Math.PI}}let p=o.x-c*.9*Math.cos(n),u=o.y-c*.9*Math.sin(n);return{point:o,core:{x:p,y:u},angle:n,length:c,type:l}}drawArrowHead(g,e,t,A,C){g.strokeStyle=this.getColor(g,e),g.fillStyle=g.strokeStyle,g.lineWidth=e.width,NI.draw(g,C)&&(this.enableShadow(g,e),EA(g).call(g),this.disableShadow(g,e))}enableShadow(g,e){e.shadow===!0&&(g.shadowColor=e.shadowColor,g.shadowBlur=e.shadowSize,g.shadowOffsetX=e.shadowX,g.shadowOffsetY=e.shadowY)}disableShadow(g,e){e.shadow===!0&&(g.shadowColor="rgba(0,0,0,0)",g.shadowBlur=0,g.shadowOffsetX=0,g.shadowOffsetY=0)}drawBackground(g,e){if(e.background!==!1){let t={strokeStyle:g.strokeStyle,lineWidth:g.lineWidth,dashes:g.dashes};g.strokeStyle=e.backgroundColor,g.lineWidth=e.backgroundSize,this.setStrokeDashed(g,e.backgroundDashes),g.stroke(),g.strokeStyle=t.strokeStyle,g.lineWidth=t.lineWidth,g.dashes=t.dashes,this.setStrokeDashed(g,e.dashes)}}setStrokeDashed(g,e){if(e!==!1)if(g.setLineDash!==void 0){let t=B(e)?e:[5,5];g.setLineDash(t)}else console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.");else g.setLineDash!==void 0?g.setLineDash([]):console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.")}};function va(I,g){var e=U(I);if(Xg){var t=Xg(I);g&&(t=tg(t).call(t,function(A){return ge(I,A).enumerable})),e.push.apply(e,t)}return e}function ba(I){for(var g=1;g<arguments.length;g++){var e,t,A=arguments[g]!=null?arguments[g]:{};g%2?F(e=va(Object(A),!0)).call(e,function(C){eg(I,C,A[C])}):Jg?NA(I,Jg(A)):F(t=va(Object(A))).call(t,function(C){SA(I,C,ge(A,C))})}return I}var gA=class extends SI{constructor(g,e,t){super(g,e,t)}_findBorderPositionBezier(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this._getViaCoordinates(),A=10,C=.2,i=!1,n=1,o=0,s=this.to,r,a,d=this.options.endPointOffset?this.options.endPointOffset.to:0;g.id===this.from.id&&(s=this.from,i=!0,d=this.options.endPointOffset?this.options.endPointOffset.from:0),this.options.arrowStrikethrough===!1&&(d=0);let l=0;do{a=(o+n)*.5,r=this.getPoint(a,t);let h=Math.atan2(s.y-r.y,s.x-r.x),c=s.distanceToBorder(e,h)+d,p=Math.sqrt(Math.pow(r.x-s.x,2)+Math.pow(r.y-s.y,2)),u=c-p;if(Math.abs(u)<C)break;u<0?i===!1?o=a:n=a:i===!1?n=a:o=a,++l}while(o<=n&&l<A);return ba(ba({},r),{},{t:a})}_getDistanceToBezierEdge(g,e,t,A,C,i,n){let o=1e9,s,r,a,d,l,h=g,c=e;for(r=1;r<10;r++)a=.1*r,d=Math.pow(1-a,2)*g+2*a*(1-a)*n.x+Math.pow(a,2)*t,l=Math.pow(1-a,2)*e+2*a*(1-a)*n.y+Math.pow(a,2)*A,r>0&&(s=this._getDistanceToLine(h,c,d,l,C,i),o=s<o?s:o),h=d,c=l;return o}_bezierCurve(g,e,t,A){g.beginPath(),g.moveTo(this.fromPoint.x,this.fromPoint.y),t!=null&&t.x!=null?A!=null&&A.x!=null?g.bezierCurveTo(t.x,t.y,A.x,A.y,this.toPoint.x,this.toPoint.y):g.quadraticCurveTo(t.x,t.y,this.toPoint.x,this.toPoint.y):g.lineTo(this.toPoint.x,this.toPoint.y),this.drawBackground(g,e),this.enableShadow(g,e),g.stroke(),this.disableShadow(g,e)}getViaNode(){return this._getViaCoordinates()}},kI=class extends gA{constructor(g,e,t){super(g,e,t),this.via=this.via,this._boundFunction=()=>{this.positionBezierNode()},this._body.emitter.on("_repositionBezierNodes",this._boundFunction)}setOptions(g){super.setOptions(g);let e=!1;this.options.physics!==g.physics&&(e=!0),this.options=g,this.id=this.options.id,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.setupSupportNode(),this.connect(),e===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.from===void 0||this.to===void 0||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}cleanup(){return this._body.emitter.off("_repositionBezierNodes",this._boundFunction),this.via!==void 0?(delete this._body.nodes[this.via.id],this.via=void 0,!0):!1}setupSupportNode(){if(this.via===void 0){let g="edgeId:"+this.id,e=this._body.functions.createNode({id:g,shape:"circle",physics:!0,hidden:!0});this._body.nodes[g]=e,this.via=e,this.via.parentEdgeId=this.id,this.positionBezierNode()}}positionBezierNode(){this.via!==void 0&&this.from!==void 0&&this.to!==void 0?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):this.via!==void 0&&(this.via.x=0,this.via.y=0)}_line(g,e,t){this._bezierCurve(g,e,t)}_getViaCoordinates(){return this.via}getViaNode(){return this.via}getPoint(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.via;if(this.from===this.to){let[t,A,C]=this._getCircleData(),i=2*Math.PI*(1-g);return{x:t+C*Math.sin(i),y:A+C-C*(1-Math.cos(i))}}else return{x:Math.pow(1-g,2)*this.fromPoint.x+2*g*(1-g)*e.x+Math.pow(g,2)*this.toPoint.x,y:Math.pow(1-g,2)*this.fromPoint.y+2*g*(1-g)*e.y+Math.pow(g,2)*this.toPoint.y}}_findBorderPosition(g,e){return this._findBorderPositionBezier(g,e,this.via)}_getDistanceToEdge(g,e,t,A,C,i){return this._getDistanceToBezierEdge(g,e,t,A,C,i,this.via)}},MI=class extends gA{constructor(g,e,t){super(g,e,t)}_line(g,e,t){this._bezierCurve(g,e,t)}getViaNode(){return this._getViaCoordinates()}_getViaCoordinates(){let g=this.options.smooth.roundness,e=this.options.smooth.type,t=Math.abs(this.from.x-this.to.x),A=Math.abs(this.from.y-this.to.y);if(e==="discrete"||e==="diagonalCross"){let C,i;t<=A?C=i=g*A:C=i=g*t,this.from.x>this.to.x&&(C=-C),this.from.y>=this.to.y&&(i=-i);let n=this.from.x+C,o=this.from.y+i;return e==="discrete"&&(t<=A?n=t<g*A?this.from.x:n:o=A<g*t?this.from.y:o),{x:n,y:o}}else if(e==="straightCross"){let C=(1-g)*t,i=(1-g)*A;return t<=A?(C=0,this.from.y<this.to.y&&(i=-i)):(this.from.x<this.to.x&&(C=-C),i=0),{x:this.to.x+C,y:this.to.y+i}}else if(e==="horizontal"){let C=(1-g)*t;return this.from.x<this.to.x&&(C=-C),{x:this.to.x+C,y:this.from.y}}else if(e==="vertical"){let C=(1-g)*A;return this.from.y<this.to.y&&(C=-C),{x:this.from.x,y:this.to.y+C}}else if(e==="curvedCW"){t=this.to.x-this.from.x,A=this.from.y-this.to.y;let C=Math.sqrt(t*t+A*A),i=Math.PI,o=(Math.atan2(A,t)+(g*.5+.5)*i)%(2*i);return{x:this.from.x+(g*.5+.5)*C*Math.sin(o),y:this.from.y+(g*.5+.5)*C*Math.cos(o)}}else if(e==="curvedCCW"){t=this.to.x-this.from.x,A=this.from.y-this.to.y;let C=Math.sqrt(t*t+A*A),i=Math.PI,o=(Math.atan2(A,t)+(-g*.5+.5)*i)%(2*i);return{x:this.from.x+(g*.5+.5)*C*Math.sin(o),y:this.from.y+(g*.5+.5)*C*Math.cos(o)}}else{let C,i;t<=A?C=i=g*A:C=i=g*t,this.from.x>this.to.x&&(C=-C),this.from.y>=this.to.y&&(i=-i);let n=this.from.x+C,o=this.from.y+i;return t<=A?this.from.x<=this.to.x?n=this.to.x<n?this.to.x:n:n=this.to.x>n?this.to.x:n:this.from.y>=this.to.y?o=this.to.y>o?this.to.y:o:o=this.to.y<o?this.to.y:o,{x:n,y:o}}}_findBorderPosition(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this._findBorderPositionBezier(g,e,t.via)}_getDistanceToEdge(g,e,t,A,C,i){let n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(g,e,t,A,C,i,n)}getPoint(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates(),t=g,A=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*e.x+Math.pow(t,2)*this.toPoint.x,C=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*e.y+Math.pow(t,2)*this.toPoint.y;return{x:A,y:C}}},vn=class extends gA{constructor(g,e,t){super(g,e,t)}_getDistanceToBezierEdge2(g,e,t,A,C,i,n,o){let s=1e9,r=g,a=e,d=[0,0,0,0];for(let l=1;l<10;l++){let h=.1*l;d[0]=Math.pow(1-h,3),d[1]=3*h*Math.pow(1-h,2),d[2]=3*Math.pow(h,2)*(1-h),d[3]=Math.pow(h,3);let c=d[0]*g+d[1]*n.x+d[2]*o.x+d[3]*t,p=d[0]*e+d[1]*n.y+d[2]*o.y+d[3]*A;if(l>0){let u=this._getDistanceToLine(r,a,c,p,C,i);s=u<s?u:s}r=c,a=p}return s}},FI=class extends vn{constructor(g,e,t){super(g,e,t)}_line(g,e,t){let A=t[0],C=t[1];this._bezierCurve(g,e,A,C)}_getViaCoordinates(){let g=this.from.x-this.to.x,e=this.from.y-this.to.y,t,A,C,i,n=this.options.smooth.roundness;return(Math.abs(g)>Math.abs(e)||this.options.smooth.forceDirection===!0||this.options.smooth.forceDirection==="horizontal")&&this.options.smooth.forceDirection!=="vertical"?(A=this.from.y,i=this.to.y,t=this.from.x-n*g,C=this.to.x+n*g):(A=this.from.y-n*e,i=this.to.y+n*e,t=this.from.x,C=this.to.x),[{x:t,y:A},{x:C,y:i}]}getViaNode(){return this._getViaCoordinates()}_findBorderPosition(g,e){return this._findBorderPositionBezier(g,e)}_getDistanceToEdge(g,e,t,A,C,i){let[n,o]=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge2(g,e,t,A,C,i,n,o)}getPoint(g){let[e,t]=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates(),A=g,C=[Math.pow(1-A,3),3*A*Math.pow(1-A,2),3*Math.pow(A,2)*(1-A),Math.pow(A,3)],i=C[0]*this.fromPoint.x+C[1]*e.x+C[2]*t.x+C[3]*this.toPoint.x,n=C[0]*this.fromPoint.y+C[1]*e.y+C[2]*t.y+C[3]*this.toPoint.y;return{x:i,y:n}}},BI=class extends SI{constructor(g,e,t){super(g,e,t)}_line(g,e){g.beginPath(),g.moveTo(this.fromPoint.x,this.fromPoint.y),g.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(g,e),g.stroke(),this.disableShadow(g,e)}getViaNode(){}getPoint(g){return{x:(1-g)*this.fromPoint.x+g*this.toPoint.x,y:(1-g)*this.fromPoint.y+g*this.toPoint.y}}_findBorderPosition(g,e){let t=this.to,A=this.from;g.id===this.from.id&&(t=this.from,A=this.to);let C=Math.atan2(t.y-A.y,t.x-A.x),i=t.x-A.x,n=t.y-A.y,o=Math.sqrt(i*i+n*n),s=g.distanceToBorder(e,C),r=(o-s)/o;return{x:(1-r)*A.x+r*t.x,y:(1-r)*A.y+r*t.y,t:0}}_getDistanceToEdge(g,e,t,A,C,i){return this._getDistanceToLine(g,e,t,A,C,i)}},xe=class I{constructor(g,e,t,A,C){if(e===void 0)throw new Error("No body provided");this.options=Te(A),this.globalOptions=A,this.defaultOptions=C,this.body=e,this.imagelist=t,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new DI(this.body,this.options,!0),this.setOptions(g)}setOptions(g){if(!g)return;let e=typeof g.physics!="undefined"&&this.options.physics!==g.physics||typeof g.hidden!="undefined"&&(this.options.hidden||!1)!==(g.hidden||!1)||typeof g.from!="undefined"&&this.options.from!==g.from||typeof g.to!="undefined"&&this.options.to!==g.to;I.parseOptions(this.options,g,!0,this.globalOptions),g.id!==void 0&&(this.id=g.id),g.from!==void 0&&(this.fromId=g.from),g.to!==void 0&&(this.toId=g.to),g.title!==void 0&&(this.title=g.title),g.value!==void 0&&(g.value=Eh(g.value));let t=[g,this.options,this.defaultOptions];return this.chooser=No("edge",t),this.updateLabelModule(g),e=this.updateEdgeType()||e,this._setInteractionWidths(),this.connect(),e}static parseOptions(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(xt(["endPointOffset","arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","selfReference","to","title","value","width","font","chosen","widthConstraint"],g,e,t),e.endPointOffset!==void 0&&e.endPointOffset.from!==void 0&&(Me(e.endPointOffset.from)?g.endPointOffset.from=e.endPointOffset.from:(g.endPointOffset.from=A.endPointOffset.from!==void 0?A.endPointOffset.from:0,console.error("endPointOffset.from is not a valid number"))),e.endPointOffset!==void 0&&e.endPointOffset.to!==void 0&&(Me(e.endPointOffset.to)?g.endPointOffset.to=e.endPointOffset.to:(g.endPointOffset.to=A.endPointOffset.to!==void 0?A.endPointOffset.to:0,console.error("endPointOffset.to is not a valid number"))),OI(e.label)?g.label=e.label:OI(g.label)||(g.label=void 0),Dg(g,e,"smooth",A),Dg(g,e,"shadow",A),Dg(g,e,"background",A),e.dashes!==void 0&&e.dashes!==null?g.dashes=e.dashes:t===!0&&e.dashes===null&&(g.dashes=we(A.dashes)),e.scaling!==void 0&&e.scaling!==null?(e.scaling.min!==void 0&&(g.scaling.min=e.scaling.min),e.scaling.max!==void 0&&(g.scaling.max=e.scaling.max),Dg(g.scaling,e.scaling,"label",A.scaling)):t===!0&&e.scaling===null&&(g.scaling=we(A.scaling)),e.arrows!==void 0&&e.arrows!==null)if(typeof e.arrows=="string"){let n=e.arrows.toLowerCase();g.arrows.to.enabled=G(n).call(n,"to")!=-1,g.arrows.middle.enabled=G(n).call(n,"middle")!=-1,g.arrows.from.enabled=G(n).call(n,"from")!=-1}else if(typeof e.arrows=="object")Dg(g.arrows,e.arrows,"to",A.arrows),Dg(g.arrows,e.arrows,"middle",A.arrows),Dg(g.arrows,e.arrows,"from",A.arrows);else throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+Et(e.arrows));else t===!0&&e.arrows===null&&(g.arrows=we(A.arrows));if(e.color!==void 0&&e.color!==null){let n=pe(e.color)?{color:e.color,highlight:e.color,hover:e.color,inherit:!1,opacity:1}:e.color,o=g.color;if(C)_(o,A.color,!1,t);else for(let s in o)Object.prototype.hasOwnProperty.call(o,s)&&delete o[s];if(pe(o))o.color=o,o.highlight=o,o.hover=o,o.inherit=!1,n.opacity===void 0&&(o.opacity=1);else{let s=!1;n.color!==void 0&&(o.color=n.color,s=!0),n.highlight!==void 0&&(o.highlight=n.highlight,s=!0),n.hover!==void 0&&(o.hover=n.hover,s=!0),n.inherit!==void 0&&(o.inherit=n.inherit),n.opacity!==void 0&&(o.opacity=Math.min(1,Math.max(0,n.opacity))),s===!0?o.inherit=!1:o.inherit===void 0&&(o.inherit="from")}}else t===!0&&e.color===null&&(g.color=Te(A.color));t===!0&&e.font===null&&(g.font=Te(A.font)),Object.prototype.hasOwnProperty.call(e,"selfReferenceSize")&&(console.warn("The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}"),g.selfReference.size=e.selfReferenceSize)}getFormattingValues(){let g=this.options.arrows.to===!0||this.options.arrows.to.enabled===!0,e=this.options.arrows.from===!0||this.options.arrows.from.enabled===!0,t=this.options.arrows.middle===!0||this.options.arrows.middle.enabled===!0,A=this.options.color.inherit,C={toArrow:g,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:t,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:A?void 0:this.options.color.color,inheritsColor:A,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(this.chooser===!0){if(this.selected){let i=this.options.selectionWidth;typeof i=="function"?C.width=i(C.width):typeof i=="number"&&(C.width+=i),C.width=Math.max(C.width,.3/this.body.view.scale),C.color=this.options.color.highlight,C.shadow=this.options.shadow.enabled}else if(this.hover){let i=this.options.hoverWidth;typeof i=="function"?C.width=i(C.width):typeof i=="number"&&(C.width+=i),C.width=Math.max(C.width,.3/this.body.view.scale),C.color=this.options.color.hover,C.shadow=this.options.shadow.enabled}}else typeof this.chooser=="function"&&(this.chooser(C,this.options.id,this.selected,this.hover),C.color!==void 0&&(C.inheritsColor=!1),C.shadow===!1&&(C.shadowColor!==this.options.shadow.color||C.shadowSize!==this.options.shadow.size||C.shadowX!==this.options.shadow.x||C.shadowY!==this.options.shadow.y)&&(C.shadow=!0));else C.shadow=this.options.shadow.enabled,C.width=Math.max(C.width,.3/this.body.view.scale);return C}updateLabelModule(g){let e=[g,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateEdgeType(){let g=this.options.smooth,e=!1,t=!0;return this.edgeType!==void 0&&((this.edgeType instanceof kI&&g.enabled===!0&&g.type==="dynamic"||this.edgeType instanceof FI&&g.enabled===!0&&g.type==="cubicBezier"||this.edgeType instanceof MI&&g.enabled===!0&&g.type!=="dynamic"&&g.type!=="cubicBezier"||this.edgeType instanceof BI&&g.type.enabled===!1)&&(t=!1),t===!0&&(e=this.cleanup())),t===!0?g.enabled===!0?g.type==="dynamic"?(e=!0,this.edgeType=new kI(this.options,this.body,this.labelModule)):g.type==="cubicBezier"?this.edgeType=new FI(this.options,this.body,this.labelModule):this.edgeType=new MI(this.options,this.body,this.labelModule):this.edgeType=new BI(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}connect(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=this.from!==void 0&&this.to!==void 0,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}disconnect(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}getTitle(){return this.title}isSelected(){return this.selected}getValue(){return this.options.value}setValueRange(g,e,t){if(this.options.value!==void 0){let A=this.options.scaling.customScalingFunction(g,e,t,this.options.value),C=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){let i=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+A*i}this.options.width=this.options.scaling.min+A*C}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}_setInteractionWidths(){typeof this.options.hoverWidth=="function"?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,typeof this.options.selectionWidth=="function"?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}draw(g){let e=this.getFormattingValues();if(e.hidden)return;let t=this.edgeType.getViaNode();this.edgeType.drawLine(g,e,this.selected,this.hover,t),this.drawLabel(g,t)}drawArrows(g){let e=this.getFormattingValues();if(e.hidden)return;let t=this.edgeType.getViaNode(),A={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(A.from=this.edgeType.getArrowData(g,"from",t,this.selected,this.hover,e),e.arrowStrikethrough===!1&&(this.edgeType.fromPoint=A.from.core),e.fromArrowSrc&&(A.from.image=this.imagelist.load(e.fromArrowSrc)),e.fromArrowImageWidth&&(A.from.imageWidth=e.fromArrowImageWidth),e.fromArrowImageHeight&&(A.from.imageHeight=e.fromArrowImageHeight)),e.toArrow&&(A.to=this.edgeType.getArrowData(g,"to",t,this.selected,this.hover,e),e.arrowStrikethrough===!1&&(this.edgeType.toPoint=A.to.core),e.toArrowSrc&&(A.to.image=this.imagelist.load(e.toArrowSrc)),e.toArrowImageWidth&&(A.to.imageWidth=e.toArrowImageWidth),e.toArrowImageHeight&&(A.to.imageHeight=e.toArrowImageHeight)),e.middleArrow&&(A.middle=this.edgeType.getArrowData(g,"middle",t,this.selected,this.hover,e),e.middleArrowSrc&&(A.middle.image=this.imagelist.load(e.middleArrowSrc)),e.middleArrowImageWidth&&(A.middle.imageWidth=e.middleArrowImageWidth),e.middleArrowImageHeight&&(A.middle.imageHeight=e.middleArrowImageHeight)),e.fromArrow&&this.edgeType.drawArrowHead(g,e,this.selected,this.hover,A.from),e.middleArrow&&this.edgeType.drawArrowHead(g,e,this.selected,this.hover,A.middle),e.toArrow&&this.edgeType.drawArrowHead(g,e,this.selected,this.hover,A.to)}drawLabel(g,e){if(this.options.label!==void 0){let t=this.from,A=this.to;this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(g,this.selected,this.hover);let C;if(t.id!=A.id){this.labelModule.pointToSelf=!1,C=this.edgeType.getPoint(.5,e),g.save();let i=this._getRotation(g);i.angle!=0&&(g.translate(i.x,i.y),g.rotate(i.angle)),this.labelModule.draw(g,C.x,C.y,this.selected,this.hover),g.restore()}else{this.labelModule.pointToSelf=!0;let i=Th(g,this.options.selfReference.angle,this.options.selfReference.size,t);C=this._pointOnCircle(i.x,i.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(g,C.x,C.y,this.selected,this.hover)}}}getItemsOnPoint(g){let e=[];if(this.labelModule.visible()){let A=this._getRotation();Hi(this.labelModule.getSize(),g,A)&&e.push({edgeId:this.id,labelId:0})}let t={left:g.x,top:g.y};return this.isOverlappingWith(t)&&e.push({edgeId:this.id}),e}isOverlappingWith(g){if(this.connected){let t=this.from.x,A=this.from.y,C=this.to.x,i=this.to.y,n=g.left,o=g.top;return this.edgeType.getDistanceToEdge(t,A,C,i,n,o)<10}else return!1}_getRotation(g){let e=this.edgeType.getViaNode(),t=this.edgeType.getPoint(.5,e);g!==void 0&&this.labelModule.calculateLabelSize(g,this.selected,this.hover,t.x,t.y);let A={x:t.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()||this.options.font.align==="horizontal")return A;let C=this.from.y-this.to.y,i=this.from.x-this.to.x,n=Math.atan2(C,i);return(n<-1&&i<0||n>0&&i<0)&&(n+=Math.PI),A.angle=n,A}_pointOnCircle(g,e,t,A){return{x:g+t*Math.cos(A),y:e-t*Math.sin(A)}}select(){this.selected=!0}unselect(){this.selected=!1}cleanup(){return this.edgeType.cleanup()}remove(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}endPointsValid(){return this.body.nodes[this.fromId]!==void 0&&this.body.nodes[this.toId]!==void 0}},bn=class{constructor(g,e,t){var A;this.body=g,this.images=e,this.groups=t,this.body.functions.createEdge=b(A=this.create).call(A,this),this.edgesListeners={add:(C,i)=>{this.add(i.items)},update:(C,i)=>{this.update(i.items)},remove:(C,i)=>{this.remove(i.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(C,i,n,o){if(i===C)return .5;{let s=1/(i-C);return Math.max(0,(o-C)*s)}}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},background:{enabled:!1,color:"rgba(111,111,111,1)",size:10,dashes:!1},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},_(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g=this,e,t;this.body.emitter.on("_forceDisableDynamicCurves",function(A){let C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;A==="dynamic"&&(A="continuous");let i=!1;for(let n in g.body.edges)if(Object.prototype.hasOwnProperty.call(g.body.edges,n)){let o=g.body.edges[n],s=g.body.data.edges.get(n);if(s!=null){let r=s.smooth;r!==void 0&&r.enabled===!0&&r.type==="dynamic"&&(A===void 0?o.setOptions({smooth:!1}):o.setOptions({smooth:{type:A}}),i=!0)}}C===!0&&i===!0&&g.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",()=>{this.reconnectEdges()}),this.body.emitter.on("refreshEdges",b(e=this.refresh).call(e,this)),this.body.emitter.on("refresh",b(t=this.refresh).call(t,this)),this.body.emitter.on("destroy",()=>{S(this.edgesListeners,(A,C)=>{this.body.data.edges&&this.body.data.edges.off(C,A)}),delete this.body.functions.createEdge,delete this.edgesListeners.add,delete this.edgesListeners.update,delete this.edgesListeners.remove,delete this.edgesListeners})}setOptions(g){if(g!==void 0){xe.parseOptions(this.options,g,!0,this.defaultOptions,!0);let e=!1;if(g.smooth!==void 0)for(let t in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,t)&&(e=this.body.edges[t].updateEdgeType()||e);if(g.font!==void 0)for(let t in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,t)&&this.body.edges[t].updateLabelModule();(g.hidden!==void 0||g.physics!==void 0||e===!0)&&this.body.emitter.emit("_dataChanged")}}setData(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=this.body.data.edges;if(yh("id",g))this.body.data.edges=g;else if(B(g))this.body.data.edges=new Pe,this.body.data.edges.add(g);else if(!g)this.body.data.edges=new Pe;else throw new TypeError("Array or DataSet expected");if(t&&S(this.edgesListeners,(A,C)=>{t.off(C,A)}),this.body.edges={},this.body.data.edges){S(this.edgesListeners,(C,i)=>{this.body.data.edges.on(i,C)});let A=this.body.data.edges.getIds();this.add(A,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),e===!1&&this.body.emitter.emit("_dataChanged")}add(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=this.body.edges,A=this.body.data.edges;for(let C=0;C<g.length;C++){let i=g[C],n=t[i];n&&n.disconnect();let o=A.get(i,{showInternalIds:!0});t[i]=this.create(o)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),e===!1&&this.body.emitter.emit("_dataChanged")}update(g){let e=this.body.edges,t=this.body.data.edges,A=!1;for(let C=0;C<g.length;C++){let i=g[C],n=t.get(i),o=e[i];o!==void 0?(o.disconnect(),A=o.setOptions(n)||A,o.connect()):(this.body.edges[i]=this.create(n),A=!0)}A===!0?(this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),this.body.emitter.emit("_dataChanged")):this.body.emitter.emit("_dataUpdated")}remove(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(g.length===0)return;let t=this.body.edges;S(g,A=>{let C=t[A];C!==void 0&&C.remove()}),e&&this.body.emitter.emit("_dataChanged")}refresh(){S(this.body.edges,(g,e)=>{let t=this.body.data.edges.get(e);t!==void 0&&g.setOptions(t)})}create(g){return new xe(g,this.body,this.images,this.options,this.defaultOptions)}reconnectEdges(){let g,e=this.body.nodes,t=this.body.edges;for(g in e)Object.prototype.hasOwnProperty.call(e,g)&&(e[g].edges=[]);for(g in t)if(Object.prototype.hasOwnProperty.call(t,g)){let A=t[g];A.from=null,A.to=null,A.connect()}}getConnectedNodes(g){let e=[];if(this.body.edges[g]!==void 0){let t=this.body.edges[g];t.fromId!==void 0&&e.push(t.fromId),t.toId!==void 0&&e.push(t.toId)}return e}_updateState(){this._addMissingEdges(),this._removeInvalidEdges()}_removeInvalidEdges(){let g=[];S(this.body.edges,(e,t)=>{let A=this.body.nodes[e.toId],C=this.body.nodes[e.fromId];A!==void 0&&A.isCluster===!0||C!==void 0&&C.isCluster===!0||(A===void 0||C===void 0)&&g.push(t)}),this.remove(g,!1)}_addMissingEdges(){let g=this.body.data.edges;if(g==null)return;let e=this.body.edges,t=[];F(g).call(g,(A,C)=>{e[C]===void 0&&t.push(C)}),this.add(t,!0)}},zI=class{constructor(g,e,t){this.body=g,this.physicsBody=e,this.barnesHutTree,this.setOptions(t),this._rng=iC("BARNES HUT SOLVER")}setOptions(g){this.options=g,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){let g,e=this.body.nodes,t=this.physicsBody.physicsNodeIndices,A=t.length,C=this._formBarnesHutTree(e,t);this.barnesHutTree=C;for(let i=0;i<A;i++)g=e[t[i]],g.options.mass>0&&this._getForceContributions(C.root,g)}}_getForceContributions(g,e){this._getForceContribution(g.children.NW,e),this._getForceContribution(g.children.NE,e),this._getForceContribution(g.children.SW,e),this._getForceContribution(g.children.SE,e)}_getForceContribution(g,e){if(g.childrenCount>0){let t=g.centerOfMass.x-e.x,A=g.centerOfMass.y-e.y,C=Math.sqrt(t*t+A*A);C*g.calcSize>this.thetaInversed?this._calculateForces(C,t,A,e,g):g.childrenCount===4?this._getForceContributions(g,e):g.children.data.id!=e.id&&this._calculateForces(C,t,A,e,g)}}_calculateForces(g,e,t,A,C){g===0&&(g=.1,e=g),this.overlapAvoidanceFactor<1&&A.shape.radius&&(g=Math.max(.1+this.overlapAvoidanceFactor*A.shape.radius,g-A.shape.radius));let i=this.options.gravitationalConstant*C.mass*A.options.mass/Math.pow(g,3),n=e*i,o=t*i;this.physicsBody.forces[A.id].x+=n,this.physicsBody.forces[A.id].y+=o}_formBarnesHutTree(g,e){let t,A=e.length,C=g[e[0]].x,i=g[e[0]].y,n=g[e[0]].x,o=g[e[0]].y;for(let p=1;p<A;p++){let u=g[e[p]],m=u.x,E=u.y;u.options.mass>0&&(m<C&&(C=m),m>n&&(n=m),E<i&&(i=E),E>o&&(o=E))}let s=Math.abs(n-C)-Math.abs(o-i);s>0?(i-=.5*s,o+=.5*s):(C+=.5*s,n-=.5*s);let a=Math.max(1e-5,Math.abs(n-C)),d=.5*a,l=.5*(C+n),h=.5*(i+o),c={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:l-d,maxX:l+d,minY:h-d,maxY:h+d},size:a,calcSize:1/a,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(c.root);for(let p=0;p<A;p++)t=g[e[p]],t.options.mass>0&&this._placeInTree(c.root,t);return c}_updateBranchMass(g,e){let t=g.centerOfMass,A=g.mass+e.options.mass,C=1/A;t.x=t.x*g.mass+e.x*e.options.mass,t.x*=C,t.y=t.y*g.mass+e.y*e.options.mass,t.y*=C,g.mass=A;let i=Math.max(Math.max(e.height,e.radius),e.width);g.maxWidth=g.maxWidth<i?i:g.maxWidth}_placeInTree(g,e,t){(t!=!0||t===void 0)&&this._updateBranchMass(g,e);let A=g.children.NW.range,C;A.maxX>e.x?A.maxY>e.y?C="NW":C="SW":A.maxY>e.y?C="NE":C="SE",this._placeInRegion(g,e,C)}_placeInRegion(g,e,t){let A=g.children[t];switch(A.childrenCount){case 0:A.children.data=e,A.childrenCount=1,this._updateBranchMass(A,e);break;case 1:A.children.data.x===e.x&&A.children.data.y===e.y?(e.x+=this._rng(),e.y+=this._rng()):(this._splitBranch(A),this._placeInTree(A,e));break;case 4:this._placeInTree(A,e);break}}_splitBranch(g){let e=null;g.childrenCount===1&&(e=g.children.data,g.mass=0,g.centerOfMass.x=0,g.centerOfMass.y=0),g.childrenCount=4,g.children.data=null,this._insertRegion(g,"NW"),this._insertRegion(g,"NE"),this._insertRegion(g,"SW"),this._insertRegion(g,"SE"),e!=null&&this._placeInTree(g,e)}_insertRegion(g,e){let t,A,C,i,n=.5*g.size;switch(e){case"NW":t=g.range.minX,A=g.range.minX+n,C=g.range.minY,i=g.range.minY+n;break;case"NE":t=g.range.minX+n,A=g.range.maxX,C=g.range.minY,i=g.range.minY+n;break;case"SW":t=g.range.minX,A=g.range.minX+n,C=g.range.minY+n,i=g.range.maxY;break;case"SE":t=g.range.minX+n,A=g.range.maxX,C=g.range.minY+n,i=g.range.maxY;break}g.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:t,maxX:A,minY:C,maxY:i},size:.5*g.size,calcSize:2*g.calcSize,children:{data:null},maxWidth:0,level:g.level+1,childrenCount:0}}_debug(g,e){this.barnesHutTree!==void 0&&(g.lineWidth=1,this._drawBranch(this.barnesHutTree.root,g,e))}_drawBranch(g,e,t){t===void 0&&(t="#FF0000"),g.childrenCount===4&&(this._drawBranch(g.children.NW,e),this._drawBranch(g.children.NE,e),this._drawBranch(g.children.SE,e),this._drawBranch(g.children.SW,e)),e.strokeStyle=t,e.beginPath(),e.moveTo(g.range.minX,g.range.minY),e.lineTo(g.range.maxX,g.range.minY),e.stroke(),e.beginPath(),e.moveTo(g.range.maxX,g.range.minY),e.lineTo(g.range.maxX,g.range.maxY),e.stroke(),e.beginPath(),e.moveTo(g.range.maxX,g.range.maxY),e.lineTo(g.range.minX,g.range.maxY),e.stroke(),e.beginPath(),e.moveTo(g.range.minX,g.range.maxY),e.lineTo(g.range.minX,g.range.minY),e.stroke()}},yn=class{constructor(g,e,t){this._rng=iC("REPULSION SOLVER"),this.body=g,this.physicsBody=e,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,e,t,A,C,i,n,o,s=this.body.nodes,r=this.physicsBody.physicsNodeIndices,a=this.physicsBody.forces,d=this.options.nodeDistance,l=-2/3/d,h=4/3;for(let c=0;c<r.length-1;c++){n=s[r[c]];for(let p=c+1;p<r.length;p++)o=s[r[p]],g=o.x-n.x,e=o.y-n.y,t=Math.sqrt(g*g+e*e),t===0&&(t=.1*this._rng(),g=t),t<2*d&&(t<.5*d?i=1:i=l*t+h,i=i/t,A=g*i,C=e*i,a[n.id].x-=A,a[n.id].y-=C,a[o.id].x+=A,a[o.id].y+=C)}}},wn=class{constructor(g,e,t){this.body=g,this.physicsBody=e,this.setOptions(t)}setOptions(g){this.options=g,this.overlapAvoidanceFactor=Math.max(0,Math.min(1,this.options.avoidOverlap||0))}solve(){let g=this.body.nodes,e=this.physicsBody.physicsNodeIndices,t=this.physicsBody.forces,A=this.options.nodeDistance;for(let C=0;C<e.length-1;C++){let i=g[e[C]];for(let n=C+1;n<e.length;n++){let o=g[e[n]];if(i.level===o.level){let s=A+this.overlapAvoidanceFactor*((i.shape.radius||0)/2+(o.shape.radius||0)/2),r=o.x-i.x,a=o.y-i.y,d=Math.sqrt(r*r+a*a),l=.05,h;d<s?h=-Math.pow(l*d,2)+Math.pow(l*s,2):h=0,d!==0&&(h=h/d);let c=r*h,p=a*h;t[i.id].x-=c,t[i.id].y-=p,t[o.id].x+=c,t[o.id].y+=p}}}}},jt=class{constructor(g,e,t){this.body=g,this.physicsBody=e,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,e,t=this.physicsBody.physicsEdgeIndices,A=this.body.edges,C,i,n;for(let o=0;o<t.length;o++)e=A[t[o]],e.connected===!0&&e.toId!==e.fromId&&this.body.nodes[e.toId]!==void 0&&this.body.nodes[e.fromId]!==void 0&&(e.edgeType.via!==void 0?(g=e.options.length===void 0?this.options.springLength:e.options.length,C=e.to,i=e.edgeType.via,n=e.from,this._calculateSpringForce(C,i,.5*g),this._calculateSpringForce(i,n,.5*g)):(g=e.options.length===void 0?this.options.springLength*1.5:e.options.length,this._calculateSpringForce(e.from,e.to,g)))}_calculateSpringForce(g,e,t){let A=g.x-e.x,C=g.y-e.y,i=Math.max(Math.sqrt(A*A+C*C),.01),n=this.options.springConstant*(t-i)/i,o=A*n,s=C*n;this.physicsBody.forces[g.id]!==void 0&&(this.physicsBody.forces[g.id].x+=o,this.physicsBody.forces[g.id].y+=s),this.physicsBody.forces[e.id]!==void 0&&(this.physicsBody.forces[e.id].x-=o,this.physicsBody.forces[e.id].y-=s)}},En=class{constructor(g,e,t){this.body=g,this.physicsBody=e,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,e,t,A,C,i,n,o,s=this.body.edges,r=.5,a=this.physicsBody.physicsEdgeIndices,d=this.physicsBody.physicsNodeIndices,l=this.physicsBody.forces;for(let w=0;w<d.length;w++){let O=d[w];l[O].springFx=0,l[O].springFy=0}for(let w=0;w<a.length;w++)e=s[a[w]],e.connected===!0&&(g=e.options.length===void 0?this.options.springLength:e.options.length,t=e.from.x-e.to.x,A=e.from.y-e.to.y,o=Math.sqrt(t*t+A*A),o=o===0?.01:o,n=this.options.springConstant*(g-o)/o,C=t*n,i=A*n,e.to.level!=e.from.level?(l[e.toId]!==void 0&&(l[e.toId].springFx-=C,l[e.toId].springFy-=i),l[e.fromId]!==void 0&&(l[e.fromId].springFx+=C,l[e.fromId].springFy+=i)):(l[e.toId]!==void 0&&(l[e.toId].x-=r*C,l[e.toId].y-=r*i),l[e.fromId]!==void 0&&(l[e.fromId].x+=r*C,l[e.fromId].y+=r*i)));n=1;let h,c;for(let w=0;w<d.length;w++){let O=d[w];h=Math.min(n,Math.max(-n,l[O].springFx)),c=Math.min(n,Math.max(-n,l[O].springFy)),l[O].x+=h,l[O].y+=c}let p=0,u=0;for(let w=0;w<d.length;w++){let O=d[w];p+=l[O].x,u+=l[O].y}let m=p/d.length,E=u/d.length;for(let w=0;w<d.length;w++){let O=d[w];l[O].x-=m,l[O].y-=E}}},rt=class{constructor(g,e,t){this.body=g,this.physicsBody=e,this.setOptions(t)}setOptions(g){this.options=g}solve(){let g,e,t,A,C=this.body.nodes,i=this.physicsBody.physicsNodeIndices,n=this.physicsBody.forces;for(let o=0;o<i.length;o++){let s=i[o];A=C[s],g=-A.x,e=-A.y,t=Math.sqrt(g*g+e*e),this._calculateForces(t,g,e,n,A)}}_calculateForces(g,e,t,A,C){let i=g===0?0:this.options.centralGravity/g;A[C.id].x=e*i,A[C.id].y=t*i}},Tn=class extends zI{constructor(g,e,t){super(g,e,t),this._rng=iC("FORCE ATLAS 2 BASED REPULSION SOLVER")}_calculateForces(g,e,t,A,C){g===0&&(g=.1*this._rng(),e=g),this.overlapAvoidanceFactor<1&&A.shape.radius&&(g=Math.max(.1+this.overlapAvoidanceFactor*A.shape.radius,g-A.shape.radius));let i=A.edges.length+1,n=this.options.gravitationalConstant*C.mass*A.options.mass*i/Math.pow(g,2),o=e*n,s=t*n;this.physicsBody.forces[A.id].x+=o,this.physicsBody.forces[A.id].y+=s}},xn=class extends rt{constructor(g,e,t){super(g,e,t)}_calculateForces(g,e,t,A,C){if(g>0){let i=C.edges.length+1,n=this.options.centralGravity*i*C.options.mass;A[C.id].x=e*n,A[C.id].y=t*n}}},On=class{constructor(g){this.body=g,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},q(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("initPhysics",()=>{this.initPhysics()}),this.body.emitter.on("_layoutFailed",()=>{this.layoutFailed=!0}),this.body.emitter.on("resetPhysics",()=>{this.stopSimulation(),this.ready=!1}),this.body.emitter.on("disablePhysics",()=>{this.physicsEnabled=!1,this.stopSimulation()}),this.body.emitter.on("restorePhysics",()=>{this.setOptions(this.options),this.ready===!0&&this.startSimulation()}),this.body.emitter.on("startSimulation",()=>{this.ready===!0&&this.startSimulation()}),this.body.emitter.on("stopSimulation",()=>{this.stopSimulation()}),this.body.emitter.on("destroy",()=>{this.stopSimulation(!1),this.body.emitter.off()}),this.body.emitter.on("_dataChanged",()=>{this.updatePhysicsData()})}setOptions(g){if(g!==void 0)if(g===!1)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(g===!0)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,bI(["stabilization"],this.options,g),Dg(this.options,g,"stabilization"),g.enabled===void 0&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation());let e=this.options.wind;e&&((typeof e.x!="number"||Yi(e.x))&&(e.x=0),(typeof e.y!="number"||Yi(e.y))&&(e.y=0)),this.timestep=this.options.timestep}this.init()}init(){let g;this.options.solver==="forceAtlas2Based"?(g=this.options.forceAtlas2Based,this.nodesSolver=new Tn(this.body,this.physicsBody,g),this.edgesSolver=new jt(this.body,this.physicsBody,g),this.gravitySolver=new xn(this.body,this.physicsBody,g)):this.options.solver==="repulsion"?(g=this.options.repulsion,this.nodesSolver=new yn(this.body,this.physicsBody,g),this.edgesSolver=new jt(this.body,this.physicsBody,g),this.gravitySolver=new rt(this.body,this.physicsBody,g)):this.options.solver==="hierarchicalRepulsion"?(g=this.options.hierarchicalRepulsion,this.nodesSolver=new wn(this.body,this.physicsBody,g),this.edgesSolver=new En(this.body,this.physicsBody,g),this.gravitySolver=new rt(this.body,this.physicsBody,g)):(g=this.options.barnesHut,this.nodesSolver=new zI(this.body,this.physicsBody,g),this.edgesSolver=new jt(this.body,this.physicsBody,g),this.gravitySolver=new rt(this.body,this.physicsBody,g)),this.modelOptions=g}initPhysics(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}startSimulation(){if(this.physicsEnabled===!0&&this.options.enabled===!0){if(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),this.viewFunction===void 0){var g;this.viewFunction=b(g=this.simulationStep).call(g,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}else this.body.emitter.emit("_redraw")}stopSimulation(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.stabilized=!0,g===!0&&this._emitStabilized(),this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,g===!0&&this.body.emitter.emit("_stopRendering"))}simulationStep(){let g=uI();this.physicsTick(),(uI()-g<.4*this.simulationInterval||this.runDoubleSpeed===!0)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0&&this.stopSimulation()}_emitStabilized(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||this.startedStabilization===!0)&&Hg(()=>{this.body.emitter.emit("stabilized",{iterations:g}),this.startedStabilization=!1,this.stabilizationIterations=0},0)}physicsStep(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}adjustTimeStep(){this._evaluateStepQuality()===!0?this.timestep=1.2*this.timestep:this.timestep/1.2<this.options.timestep?this.timestep=this.options.timestep:(this.adaptiveCounter=-1,this.timestep=Math.max(this.options.timestep,this.timestep/1.2))}physicsTick(){this._startStabilizing(),this.stabilized!==!0&&(this.adaptiveTimestep===!0&&this.adaptiveTimestepEnabled===!0?(this.adaptiveCounter%this.adaptiveInterval===0?(this.timestep=2*this.timestep,this.physicsStep(),this.revert(),this.timestep=.5*this.timestep,this.physicsStep(),this.physicsStep(),this.adjustTimeStep()):this.physicsStep(),this.adaptiveCounter+=1):(this.timestep=this.options.timestep,this.physicsStep()),this.stabilized===!0&&this.revert(),this.stabilizationIterations++)}updatePhysicsData(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];let g=this.body.nodes,e=this.body.edges;for(let t in g)Object.prototype.hasOwnProperty.call(g,t)&&g[t].options.physics===!0&&this.physicsBody.physicsNodeIndices.push(g[t].id);for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&e[t].options.physics===!0&&this.physicsBody.physicsEdgeIndices.push(e[t].id);for(let t=0;t<this.physicsBody.physicsNodeIndices.length;t++){let A=this.physicsBody.physicsNodeIndices[t];this.physicsBody.forces[A]={x:0,y:0},this.physicsBody.velocities[A]===void 0&&(this.physicsBody.velocities[A]={x:0,y:0})}for(let t in this.physicsBody.velocities)g[t]===void 0&&delete this.physicsBody.velocities[t]}revert(){let g=U(this.previousStates),e=this.body.nodes,t=this.physicsBody.velocities;this.referenceState={};for(let A=0;A<g.length;A++){let C=g[A];e[C]!==void 0?e[C].options.physics===!0&&(this.referenceState[C]={positions:{x:e[C].x,y:e[C].y}},t[C].x=this.previousStates[C].vx,t[C].y=this.previousStates[C].vy,e[C].x=this.previousStates[C].x,e[C].y=this.previousStates[C].y):delete this.previousStates[C]}}_evaluateStepQuality(){let g,e,t,A=this.body.nodes,C=this.referenceState,i=.3;for(let n in this.referenceState)if(Object.prototype.hasOwnProperty.call(this.referenceState,n)&&A[n]!==void 0&&(g=A[n].x-C[n].positions.x,e=A[n].y-C[n].positions.y,t=Math.sqrt(Math.pow(g,2)+Math.pow(e,2)),t>i))return!1;return!0}moveNodes(){let g=this.physicsBody.physicsNodeIndices,e=0,t=0,A=5;for(let C=0;C<g.length;C++){let i=g[C],n=this._performStep(i);e=Math.max(e,n),t+=n}this.adaptiveTimestepEnabled=t/g.length<A,this.stabilized=e<this.options.minVelocity}calculateComponentVelocity(g,e,t){let A=this.modelOptions.damping*g,C=(e-A)/t;g+=C*this.timestep;let i=this.options.maxVelocity||1e9;return Math.abs(g)>i&&(g=g>0?i:-i),g}_performStep(g){let e=this.body.nodes[g],t=this.physicsBody.forces[g];this.options.wind&&(t.x+=this.options.wind.x,t.y+=this.options.wind.y);let A=this.physicsBody.velocities[g];return this.previousStates[g]={x:e.x,y:e.y,vx:A.x,vy:A.y},e.options.fixed.x===!1?(A.x=this.calculateComponentVelocity(A.x,t.x,e.options.mass),e.x+=A.x*this.timestep):(t.x=0,A.x=0),e.options.fixed.y===!1?(A.y=this.calculateComponentVelocity(A.y,t.y,e.options.mass),e.y+=A.y*this.timestep):(t.y=0,A.y=0),Math.sqrt(Math.pow(A.x,2)+Math.pow(A.y,2))}_freezeNodes(){let g=this.body.nodes;for(let e in g)if(Object.prototype.hasOwnProperty.call(g,e)&&g[e].x&&g[e].y){let t=g[e].options.fixed;this.freezeCache[e]={x:t.x,y:t.y},t.x=!0,t.y=!0}}_restoreFrozenNodes(){let g=this.body.nodes;for(let e in g)Object.prototype.hasOwnProperty.call(g,e)&&this.freezeCache[e]!==void 0&&(g[e].options.fixed.x=this.freezeCache[e].x,g[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}stabilize(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.stabilization.iterations;if(typeof g!="number"&&(g=this.options.stabilization.iterations,console.error("The stabilize method needs a numeric amount of iterations. Switching to default: ",g)),this.physicsBody.physicsNodeIndices.length===0){this.ready=!0;return}this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=g,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,Hg(()=>this._stabilizationBatch(),0)}_startStabilizing(){return this.startedStabilization===!0?!1:(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}_stabilizationBatch(){let g=()=>this.stabilized===!1&&this.stabilizationIterations<this.targetIterations,e=()=>{this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations})};this._startStabilizing()&&e();let t=0;for(;g()&&t<this.options.stabilization.updateInterval;)this.physicsTick(),t++;if(e(),g()){var A;Hg(b(A=this._stabilizationBatch).call(A,this),0)}else this._finalizeStabilization()}_finalizeStabilization(){this.body.emitter.emit("_allowRedraw"),this.options.stabilization.fit===!0&&this.body.emitter.emit("fit"),this.options.stabilization.onlyDynamicEdges===!0&&this._restoreFrozenNodes(),this.body.emitter.emit("stabilizationIterationsDone"),this.body.emitter.emit("_requestRedraw"),this.stabilized===!0?this._emitStabilized():this.startSimulation(),this.ready=!0}_drawForces(g){for(let e=0;e<this.physicsBody.physicsNodeIndices.length;e++){let t=this.physicsBody.physicsNodeIndices[e],A=this.body.nodes[t],C=this.physicsBody.forces[t],i=20,n=.03,o=Math.sqrt(Math.pow(C.x,2)+Math.pow(C.x,2)),s=Math.min(Math.max(5,o),15),r=3*s,a=Zi((180-Math.min(1,Math.max(0,n*o))*180)/360,1,1),d={x:A.x+i*C.x,y:A.y+i*C.y};g.lineWidth=s,g.strokeStyle=a,g.beginPath(),g.moveTo(A.x,A.y),g.lineTo(d.x,d.y),g.stroke();let l=Math.atan2(C.y,C.x);g.fillStyle=a,NI.draw(g,{type:"arrow",point:d,angle:l,length:r}),EA(g).call(g)}}},dg=class{constructor(){}static getRange(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],t=1e9,A=-1e9,C=1e9,i=-1e9,n;if(e.length>0)for(let o=0;o<e.length;o++)n=g[e[o]],C>n.shape.boundingBox.left&&(C=n.shape.boundingBox.left),i<n.shape.boundingBox.right&&(i=n.shape.boundingBox.right),t>n.shape.boundingBox.top&&(t=n.shape.boundingBox.top),A<n.shape.boundingBox.bottom&&(A=n.shape.boundingBox.bottom);return C===1e9&&i===-1e9&&t===1e9&&A===-1e9&&(t=0,A=0,C=0,i=0),{minX:C,maxX:i,minY:t,maxY:A}}static getRangeCore(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],t=1e9,A=-1e9,C=1e9,i=-1e9,n;if(e.length>0)for(let o=0;o<e.length;o++)n=g[e[o]],C>n.x&&(C=n.x),i<n.x&&(i=n.x),t>n.y&&(t=n.y),A<n.y&&(A=n.y);return C===1e9&&i===-1e9&&t===1e9&&A===-1e9&&(t=0,A=0,C=0,i=0),{minX:C,maxX:i,minY:t,maxY:A}}static findCenter(g){return{x:.5*(g.maxX+g.minX),y:.5*(g.maxY+g.minY)}}static cloneOptions(g,e){let t={};return e===void 0||e==="node"?(_(t,g.options,!0),t.x=g.x,t.y=g.y,t.amountOfConnections=g.edges.length):_(t,g.options,!0),t}},Pn=class extends pg{constructor(g,e,t,A,C,i){super(g,e,t,A,C,i),this.isCluster=!0,this.containedNodes={},this.containedEdges={}}_openChildCluster(g){let e=this.body.nodes[g];if(this.containedNodes[g]===void 0)throw new Error("node with id: "+g+" not in current cluster");if(!e.isCluster)throw new Error("node with id: "+g+" is not a cluster");delete this.containedNodes[g],S(e.edges,t=>{delete this.containedEdges[t.id]}),S(e.containedNodes,(t,A)=>{this.containedNodes[A]=t}),e.containedNodes={},S(e.containedEdges,(t,A)=>{this.containedEdges[A]=t}),e.containedEdges={},S(e.edges,t=>{S(this.edges,A=>{var C,i;let n=G(C=A.clusteringEdgeReplacingIds).call(C,t.id);n!==-1&&(S(t.clusteringEdgeReplacingIds,o=>{A.clusteringEdgeReplacingIds.push(o),this.body.edges[o].edgeReplacedById=A.id}),Ug(i=A.clusteringEdgeReplacingIds).call(i,n,1))})}),e.edges=[]}},Dn=class{constructor(g){this.body=g,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},q(this.options,this.defaultOptions),this.body.emitter.on("_resetData",()=>{this.clusteredNodes={},this.clusteredEdges={}})}clusterByHubsize(g,e){g===void 0?g=this._getHubSize():typeof g=="object"&&(e=this._checkOptions(g),g=this._getHubSize());let t=[];for(let A=0;A<this.body.nodeIndices.length;A++){let C=this.body.nodes[this.body.nodeIndices[A]];C.edges.length>=g&&t.push(C.id)}for(let A=0;A<t.length;A++)this.clusterByConnection(t[A],e,!0);this.body.emitter.emit("_dataChanged")}cluster(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(g.joinCondition===void 0)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");g=this._checkOptions(g);let t={},A={};S(this.body.nodes,(C,i)=>{C.options&&g.joinCondition(C.options)===!0&&(t[i]=C,S(C.edges,n=>{this.clusteredEdges[n.id]===void 0&&(A[n.id]=n)}))}),this._cluster(t,A,g,e)}clusterByEdgeCount(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;e=this._checkOptions(e);let A=[],C={},i,n,o;for(let s=0;s<this.body.nodeIndices.length;s++){let r={},a={},d=this.body.nodeIndices[s],l=this.body.nodes[d];if(C[d]===void 0){o=0,n=[];for(let h=0;h<l.edges.length;h++)i=l.edges[h],this.clusteredEdges[i.id]===void 0&&(i.toId!==i.fromId&&o++,n.push(i));if(o===g){let h=function(p){if(e.joinCondition===void 0||e.joinCondition===null)return!0;let u=dg.cloneOptions(p);return e.joinCondition(u)},c=!0;for(let p=0;p<n.length;p++){i=n[p];let u=this._getConnectedId(i,d);if(h(l))a[i.id]=i,r[d]=l,r[u]=this.body.nodes[u],C[d]=!0;else{c=!1;break}}if(U(r).length>0&&U(a).length>0&&c===!0){let u=function(){for(let m=0;m<A.length;++m)for(let E in r)if(A[m].nodes[E]!==void 0)return A[m]}();if(u!==void 0){for(let m in r)u.nodes[m]===void 0&&(u.nodes[m]=r[m]);for(let m in a)u.edges[m]===void 0&&(u.edges[m]=a[m])}else A.push({nodes:r,edges:a})}}}}for(let s=0;s<A.length;s++)this._cluster(A[s].nodes,A[s].edges,e,!1);t===!0&&this.body.emitter.emit("_dataChanged")}clusterOutliers(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(1,g,e)}clusterBridges(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(2,g,e)}clusterByConnection(g,e){var t;let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(g===void 0)throw new Error("No nodeId supplied to clusterByConnection!");if(this.body.nodes[g]===void 0)throw new Error("The nodeId given to clusterByConnection does not exist!");let C=this.body.nodes[g];e=this._checkOptions(e,C),e.clusterNodeProperties.x===void 0&&(e.clusterNodeProperties.x=C.x),e.clusterNodeProperties.y===void 0&&(e.clusterNodeProperties.y=C.y),e.clusterNodeProperties.fixed===void 0&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=C.options.fixed.x,e.clusterNodeProperties.fixed.y=C.options.fixed.y);let i={},n={},o=C.id,s=dg.cloneOptions(C);i[o]=C;for(let a=0;a<C.edges.length;a++){let d=C.edges[a];if(this.clusteredEdges[d.id]===void 0){let l=this._getConnectedId(d,o);if(this.clusteredNodes[l]===void 0)if(l!==o)if(e.joinCondition===void 0)n[d.id]=d,i[l]=this.body.nodes[l];else{let h=dg.cloneOptions(this.body.nodes[l]);e.joinCondition(s,h)===!0&&(n[d.id]=d,i[l]=this.body.nodes[l])}else n[d.id]=d}}let r=ag(t=U(i)).call(t,function(a){return i[a].id});for(let a in i){if(!Object.prototype.hasOwnProperty.call(i,a))continue;let d=i[a];for(let l=0;l<d.edges.length;l++){let h=d.edges[l];G(r).call(r,this._getConnectedId(h,d.id))>-1&&(n[h.id]=h)}}this._cluster(i,n,e,A)}_createClusterEdges(g,e,t,A){let C,i,n,o,s,r,a=U(g),d=[];for(let c=0;c<a.length;c++){i=a[c],n=g[i];for(let p=0;p<n.edges.length;p++)C=n.edges[p],this.clusteredEdges[C.id]===void 0&&(C.toId==C.fromId?e[C.id]=C:C.toId==i?(o=t.id,s=C.fromId,r=s):(o=C.toId,s=t.id,r=o),g[r]===void 0&&d.push({edge:C,fromId:s,toId:o}))}let l=[],h=function(c){for(let p=0;p<l.length;p++){let u=l[p],m=c.fromId===u.fromId&&c.toId===u.toId,E=c.fromId===u.toId&&c.toId===u.fromId;if(m||E)return u}return null};for(let c=0;c<d.length;c++){let p=d[c],u=p.edge,m=h(p);m===null?(m=this._createClusteredEdge(p.fromId,p.toId,u,A),l.push(m)):m.clusteringEdgeReplacingIds.push(u.id),this.body.edges[u.id].edgeReplacedById=m.id,this._backupEdgeOptions(u),u.setOptions({physics:!1})}}_checkOptions(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return g.clusterEdgeProperties===void 0&&(g.clusterEdgeProperties={}),g.clusterNodeProperties===void 0&&(g.clusterNodeProperties={}),g}_cluster(g,e,t){let A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,C=[];for(let r in g)Object.prototype.hasOwnProperty.call(g,r)&&this.clusteredNodes[r]!==void 0&&C.push(r);for(let r=0;r<C.length;++r)delete g[C[r]];if(U(g).length==0||U(g).length==1&&t.clusterNodeProperties.allowSingleNodeCluster!=!0)return;let i=_({},t.clusterNodeProperties);if(t.processProperties!==void 0){let r=[];for(let d in g)if(Object.prototype.hasOwnProperty.call(g,d)){let l=dg.cloneOptions(g[d]);r.push(l)}let a=[];for(let d in e)if(Object.prototype.hasOwnProperty.call(e,d)&&d.substr(0,12)!=="clusterEdge:"){let l=dg.cloneOptions(e[d],"edge");a.push(l)}if(i=t.processProperties(i,r,a),!i)throw new Error("The processProperties function does not return properties!")}i.id===void 0&&(i.id="cluster:"+st());let n=i.id;i.label===void 0&&(i.label="cluster");let o;i.x===void 0&&(o=this._getClusterPosition(g),i.x=o.x),i.y===void 0&&(o===void 0&&(o=this._getClusterPosition(g)),i.y=o.y),i.id=n;let s=this.body.functions.createNode(i,Pn);s.containedNodes=g,s.containedEdges=e,s.clusterEdgeProperties=t.clusterEdgeProperties,this.body.nodes[i.id]=s,this._clusterEdges(g,e,i,t.clusterEdgeProperties),i.id=void 0,A===!0&&this.body.emitter.emit("_dataChanged")}_backupEdgeOptions(g){this.clusteredEdges[g.id]===void 0&&(this.clusteredEdges[g.id]={physics:g.options.physics})}_restoreEdge(g){let e=this.clusteredEdges[g.id];e!==void 0&&(g.setOptions({physics:e.physics}),delete this.clusteredEdges[g.id])}isCluster(g){return this.body.nodes[g]!==void 0?this.body.nodes[g].isCluster===!0:(console.error("Node does not exist."),!1)}_getClusterPosition(g){let e=U(g),t=g[e[0]].x,A=g[e[0]].x,C=g[e[0]].y,i=g[e[0]].y,n;for(let o=1;o<e.length;o++)n=g[e[o]],t=n.x<t?n.x:t,A=n.x>A?n.x:A,C=n.y<C?n.y:C,i=n.y>i?n.y:i;return{x:.5*(t+A),y:.5*(C+i)}}openCluster(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(g===void 0)throw new Error("No clusterNodeId supplied to openCluster.");let A=this.body.nodes[g];if(A===void 0)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(A.isCluster!==!0||A.containedNodes===void 0||A.containedEdges===void 0)throw new Error("The node:"+g+" is not a valid cluster.");let C=this.findNode(g),i=G(C).call(C,g)-1;if(i>=0){let r=C[i];this.body.nodes[r]._openChildCluster(g),delete this.body.nodes[g],t===!0&&this.body.emitter.emit("_dataChanged");return}let n=A.containedNodes,o=A.containedEdges;if(e!==void 0&&e.releaseFunction!==void 0&&typeof e.releaseFunction=="function"){let r={},a={x:A.x,y:A.y};for(let l in n)if(Object.prototype.hasOwnProperty.call(n,l)){let h=this.body.nodes[l];r[l]={x:h.x,y:h.y}}let d=e.releaseFunction(a,r);for(let l in n)if(Object.prototype.hasOwnProperty.call(n,l)){let h=this.body.nodes[l];d[l]!==void 0&&(h.x=d[l].x===void 0?A.x:d[l].x,h.y=d[l].y===void 0?A.y:d[l].y)}}else S(n,function(r){r.options.fixed.x===!1&&(r.x=A.x),r.options.fixed.y===!1&&(r.y=A.y)});for(let r in n)if(Object.prototype.hasOwnProperty.call(n,r)){let a=this.body.nodes[r];a.vx=A.vx,a.vy=A.vy,a.setOptions({physics:!0}),delete this.clusteredNodes[r]}let s=[];for(let r=0;r<A.edges.length;r++)s.push(A.edges[r]);for(let r=0;r<s.length;r++){let a=s[r],d=this._getConnectedId(a,g),l=this.clusteredNodes[d];for(let h=0;h<a.clusteringEdgeReplacingIds.length;h++){let c=a.clusteringEdgeReplacingIds[h],p=this.body.edges[c];if(p!==void 0)if(l!==void 0){let u=this.body.nodes[l.clusterId];u.containedEdges[p.id]=p,delete o[p.id];let m=p.fromId,E=p.toId;p.toId==d?E=l.clusterId:m=l.clusterId,this._createClusteredEdge(m,E,p,u.clusterEdgeProperties,{hidden:!1,physics:!0})}else this._restoreEdge(p)}a.remove()}for(let r in o)Object.prototype.hasOwnProperty.call(o,r)&&this._restoreEdge(o[r]);delete this.body.nodes[g],t===!0&&this.body.emitter.emit("_dataChanged")}getNodesInCluster(g){let e=[];if(this.isCluster(g)===!0){let t=this.body.nodes[g].containedNodes;for(let A in t)Object.prototype.hasOwnProperty.call(t,A)&&e.push(this.body.nodes[A].id)}return e}findNode(g){let e=[],A=0,C;for(;this.clusteredNodes[g]!==void 0&&A<100;){if(C=this.body.nodes[g],C===void 0)return[];e.push(C.id),g=this.clusteredNodes[g].clusterId,A++}return C=this.body.nodes[g],C===void 0?[]:(e.push(C.id),ze(e).call(e),e)}updateClusteredNode(g,e){if(g===void 0)throw new Error("No clusteredNodeId supplied to updateClusteredNode.");if(e===void 0)throw new Error("No newOptions supplied to updateClusteredNode.");if(this.body.nodes[g]===void 0)throw new Error("The clusteredNodeId supplied to updateClusteredNode does not exist.");this.body.nodes[g].setOptions(e),this.body.emitter.emit("_dataChanged")}updateEdge(g,e){if(g===void 0)throw new Error("No startEdgeId supplied to updateEdge.");if(e===void 0)throw new Error("No newOptions supplied to updateEdge.");if(this.body.edges[g]===void 0)throw new Error("The startEdgeId supplied to updateEdge does not exist.");let t=this.getClusteredEdges(g);for(let A=0;A<t.length;A++)this.body.edges[t[A]].setOptions(e);this.body.emitter.emit("_dataChanged")}getClusteredEdges(g){let e=[],A=0;for(;g!==void 0&&this.body.edges[g]!==void 0&&A<100;)e.push(this.body.edges[g].id),g=this.body.edges[g].edgeReplacedById,A++;return ze(e).call(e),e}getBaseEdge(g){return this.getBaseEdges(g)[0]}getBaseEdges(g){let e=[g],t=[],A=[],C=100,i=0;for(;e.length>0&&i<C;){let n=e.pop();if(n===void 0)continue;let o=this.body.edges[n];if(o===void 0)continue;i++;let s=o.clusteringEdgeReplacingIds;if(s===void 0)A.push(n);else for(let r=0;r<s.length;++r){let a=s[r];G(e).call(e,s)!==-1||G(t).call(t,s)!==-1||e.push(a)}t.push(n)}return A}_getConnectedId(g,e){return g.toId!=e?g.toId:(g.fromId!=e,g.fromId)}_getHubSize(){let g=0,e=0,t=0,A=0;for(let o=0;o<this.body.nodeIndices.length;o++){let s=this.body.nodes[this.body.nodeIndices[o]];s.edges.length>A&&(A=s.edges.length),g+=s.edges.length,e+=Math.pow(s.edges.length,2),t+=1}g=g/t,e=e/t;let C=e-Math.pow(g,2),i=Math.sqrt(C),n=Math.floor(g+2*i);return n>A&&(n=A),n}_createClusteredEdge(g,e,t,A,C){let i=dg.cloneOptions(t,"edge");_(i,A),i.from=g,i.to=e,i.id="clusterEdge:"+st(),C!==void 0&&_(i,C);let n=this.body.functions.createEdge(i);return n.clusteringEdgeReplacingIds=[t.id],n.connect(),this.body.edges[n.id]=n,n}_clusterEdges(g,e,t,A){if(e instanceof xe){let C=e,i={};i[C.id]=C,e=i}if(g instanceof pg){let C=g,i={};i[C.id]=C,g=i}if(t==null)throw new Error("_clusterEdges: parameter clusterNode required");A===void 0&&(A=t.clusterEdgeProperties),this._createClusterEdges(g,e,t,A);for(let C in e)if(Object.prototype.hasOwnProperty.call(e,C)&&this.body.edges[C]!==void 0){let i=this.body.edges[C];this._backupEdgeOptions(i),i.setOptions({physics:!1})}for(let C in g)Object.prototype.hasOwnProperty.call(g,C)&&(this.clusteredNodes[C]={clusterId:t.id,node:this.body.nodes[C]},this.body.nodes[C].setOptions({physics:!1}))}_getClusterNodeForNode(g){if(g===void 0)return;let e=this.clusteredNodes[g];if(e===void 0)return;let t=e.clusterId;if(t!==void 0)return this.body.nodes[t]}_filter(g,e){let t=[];return S(g,A=>{e(A)&&t.push(A)}),t}_updateState(){let g,e=[],t={},A=o=>{S(this.body.nodes,s=>{s.isCluster===!0&&o(s)})};for(g in this.clusteredNodes){if(!Object.prototype.hasOwnProperty.call(this.clusteredNodes,g))continue;this.body.nodes[g]===void 0&&e.push(g)}A(function(o){for(let s=0;s<e.length;s++)delete o.containedNodes[e[s]]});for(let o=0;o<e.length;o++)delete this.clusteredNodes[e[o]];S(this.clusteredEdges,o=>{let s=this.body.edges[o];(s===void 0||!s.endPointsValid())&&(t[o]=o)}),A(function(o){S(o.containedEdges,(s,r)=>{!s.endPointsValid()&&!t[r]&&(t[r]=r)})}),S(this.body.edges,(o,s)=>{let r=!0,a=o.clusteringEdgeReplacingIds;if(a!==void 0){let d=0;S(a,l=>{let h=this.body.edges[l];h!==void 0&&h.endPointsValid()&&(d+=1)}),r=d>0}(!o.endPointsValid()||!r)&&(t[s]=s)}),A(o=>{S(t,s=>{delete o.containedEdges[s],S(o.edges,(r,a)=>{if(r.id===s){o.edges[a]=null;return}r.clusteringEdgeReplacingIds=this._filter(r.clusteringEdgeReplacingIds,function(d){return!t[d]})}),o.edges=this._filter(o.edges,function(r){return r!==null})})}),S(t,o=>{delete this.clusteredEdges[o]}),S(t,o=>{delete this.body.edges[o]});let C=U(this.body.edges);S(C,o=>{let s=this.body.edges[o],r=this._isClusteredNode(s.fromId)||this._isClusteredNode(s.toId);if(r!==this._isClusteredEdge(s.id))if(r){let a=this._getClusterNodeForNode(s.fromId);a!==void 0&&this._clusterEdges(this.body.nodes[s.fromId],s,a);let d=this._getClusterNodeForNode(s.toId);d!==void 0&&this._clusterEdges(this.body.nodes[s.toId],s,d)}else delete this._clusterEdges[o],this._restoreEdge(s)});let i=!1,n=!0;for(;n;){let o=[];A(function(s){let r=U(s.containedNodes).length,a=s.options.allowSingleNodeCluster===!0;(a&&r<1||!a&&r<2)&&o.push(s.id)});for(let s=0;s<o.length;++s)this.openCluster(o[s],{},!1);n=o.length>0,i=i||n}i&&this._updateState()}_isClusteredNode(g){return this.clusteredNodes[g]!==void 0}_isClusteredEdge(g){return this.clusteredEdges[g]!==void 0}},Rn=class{constructor(g,e){this.body=g,this.canvas=e,this.redrawRequested=!1,this.requestAnimationFrameRequestId=void 0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},q(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g;this.body.emitter.on("dragStart",()=>{this.dragging=!0}),this.body.emitter.on("dragEnd",()=>{this.dragging=!1}),this.body.emitter.on("zoom",()=>{this.zooming=!0,window.clearTimeout(this.zoomTimeoutId),this.zoomTimeoutId=Hg(()=>{var e;this.zooming=!1,b(e=this._requestRedraw).call(e,this)()},250)}),this.body.emitter.on("_resizeNodes",()=>{this._resizeNodes()}),this.body.emitter.on("_redraw",()=>{this.renderingActive===!1&&this._redraw()}),this.body.emitter.on("_blockRedraw",()=>{this.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",()=>{this.allowRedraw=!0,this.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",b(g=this._requestRedraw).call(g,this)),this.body.emitter.on("_startRendering",()=>{this.renderRequests+=1,this.renderingActive=!0,this._startRendering()}),this.body.emitter.on("_stopRendering",()=>{this.renderRequests-=1,this.renderingActive=this.renderRequests>0,this.requestAnimationFrameRequestId=void 0}),this.body.emitter.on("destroy",()=>{this.renderRequests=0,this.allowRedraw=!1,this.renderingActive=!1,window.cancelAnimationFrame(this.requestAnimationFrameRequestId),this.body.emitter.off()})}setOptions(g){g!==void 0&&xt(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag"],this.options,g)}_startRendering(){if(this.renderingActive===!0&&this.requestAnimationFrameRequestId===void 0){var g;this.requestAnimationFrameRequestId=window.requestAnimationFrame(b(g=this._renderStep).call(g,this),this.simulationInterval)}}_renderStep(){this.renderingActive===!0&&(this.requestAnimationFrameRequestId=void 0,this._startRendering(),this._redraw())}redraw(){this.body.emitter.emit("setSize"),this._redraw()}_requestRedraw(){this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,window.requestAnimationFrame(()=>{this._redraw(!1)}))}_redraw(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;let e={drawExternalLabels:null};(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0)&&this.canvas.setSize(),this.canvas.setTransform();let t=this.canvas.getContext(),A=this.canvas.frame.canvas.clientWidth,C=this.canvas.frame.canvas.clientHeight;if(t.clearRect(0,0,A,C),this.canvas.frame.clientWidth===0)return;if(t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale),t.beginPath(),this.body.emitter.emit("beforeDrawing",t),t.closePath(),g===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawEdges(t),this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1){let{drawExternalLabels:i}=this._drawNodes(t,g);e.drawExternalLabels=i}g===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawArrows(t),e.drawExternalLabels!=null&&e.drawExternalLabels(),g===!1&&this._drawSelectionBox(t),t.beginPath(),this.body.emitter.emit("afterDrawing",t),t.closePath(),t.restore(),g===!0&&t.clearRect(0,0,A,C)}}_resizeNodes(){this.canvas.setTransform();let g=this.canvas.getContext();g.save(),g.translate(this.body.view.translation.x,this.body.view.translation.y),g.scale(this.body.view.scale,this.body.view.scale);let e=this.body.nodes,t;for(let A in e)Object.prototype.hasOwnProperty.call(e,A)&&(t=e[A],t.resize(g),t.updateBoundingBox(g,t.selected));g.restore()}_drawNodes(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=this.body.nodes,A=this.body.nodeIndices,C,i=[],n=[],o=20,s=this.canvas.DOMtoCanvas({x:-o,y:-o}),r=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+o,y:this.canvas.frame.canvas.clientHeight+o}),a={top:s.y,left:s.x,bottom:r.y,right:r.x},d=[];for(let p=0;p<A.length;p++)if(C=t[A[p]],C.hover)n.push(A[p]);else if(C.isSelected())i.push(A[p]);else if(e===!0){let u=C.draw(g);u.drawExternalLabel!=null&&d.push(u.drawExternalLabel)}else if(C.isBoundingBoxOverlappingWith(a)===!0){let u=C.draw(g);u.drawExternalLabel!=null&&d.push(u.drawExternalLabel)}else C.updateBoundingBox(g,C.selected);let l,h=i.length,c=n.length;for(l=0;l<h;l++){C=t[i[l]];let p=C.draw(g);p.drawExternalLabel!=null&&d.push(p.drawExternalLabel)}for(l=0;l<c;l++){C=t[n[l]];let p=C.draw(g);p.drawExternalLabel!=null&&d.push(p.drawExternalLabel)}return{drawExternalLabels:()=>{for(let p of d)p()}}}_drawEdges(g){let e=this.body.edges,t=this.body.edgeIndices;for(let A=0;A<t.length;A++){let C=e[t[A]];C.connected===!0&&C.draw(g)}}_drawArrows(g){let e=this.body.edges,t=this.body.edgeIndices;for(let A=0;A<t.length;A++){let C=e[t[A]];C.connected===!0&&C.drawArrows(g)}}_drawSelectionBox(g){if(this.body.selectionBox.show){g.beginPath();let e=this.body.selectionBox.position.end.x-this.body.selectionBox.position.start.x,t=this.body.selectionBox.position.end.y-this.body.selectionBox.position.start.y;g.rect(this.body.selectionBox.position.start.x,this.body.selectionBox.position.start.y,e,t),g.fillStyle="rgba(151, 194, 252, 0.2)",g.fillRect(this.body.selectionBox.position.start.x,this.body.selectionBox.position.start.y,e,t),g.strokeStyle="rgba(151, 194, 252, 1)",g.stroke()}else g.closePath()}},Gk=L,Vk=Gk.setInterval,jk=Vk,Wk=D(jk);function ZI(I,g){g.inputHandler=function(e){e.isFirst&&g(e)},I.on("hammer.input",g.inputHandler)}function xh(I,g){return g.inputHandler=function(e){e.isFinal&&g(e)},I.on("hammer.input",g.inputHandler)}var Nn=class{constructor(g){this.body=g,this.pixelRatio=1,this.cameraState={},this.initialized=!1,this.canvasViewCenter={},this._cleanupCallbacks=[],this.options={},this.defaultOptions={autoResize:!0,height:"100%",width:"100%"},q(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var g;this.body.emitter.once("resize",e=>{e.width!==0&&(this.body.view.translation.x=e.width*.5),e.height!==0&&(this.body.view.translation.y=e.height*.5)}),this.body.emitter.on("setSize",b(g=this.setSize).call(g,this)),this.body.emitter.on("destroy",()=>{this.hammerFrame.destroy(),this.hammer.destroy(),this._cleanUp()})}setOptions(g){if(g!==void 0&&xt(["width","height","autoResize"],this.options,g),this._cleanUp(),this.options.autoResize===!0){var e;if(window.ResizeObserver){let A=new ResizeObserver(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")}),{frame:C}=this;A.observe(C),this._cleanupCallbacks.push(()=>{A.unobserve(C)})}else{let A=Wk(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")},1e3);this._cleanupCallbacks.push(()=>{clearInterval(A)})}let t=b(e=this._onResize).call(e,this);window.addEventListener("resize",t),this._cleanupCallbacks.push(()=>{window.removeEventListener("resize",t)})}}_cleanUp(){var g,e,t;F(g=ze(e=Ug(t=this._cleanupCallbacks).call(t,0)).call(e)).call(g,A=>{try{A()}catch(C){console.error(C)}})}_onResize(){this.setSize(),this.body.emitter.emit("_redraw")}_getCameraState(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.pixelRatio;this.initialized===!0&&(this.cameraState.previousWidth=this.frame.canvas.width/g,this.cameraState.previousHeight=this.frame.canvas.height/g,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/g,y:.5*this.frame.canvas.height/g}))}_setCameraState(){if(this.cameraState.scale!==void 0&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){let g=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,t=this.cameraState.scale;g!=1&&e!=1?t=this.cameraState.scale*.5*(g+e):g!=1?t=this.cameraState.scale*g:e!=1&&(t=this.cameraState.scale*e),this.body.view.scale=t;let A=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),C={x:A.x-this.cameraState.position.x,y:A.y-this.cameraState.position.y};this.body.view.translation.x+=C.x*this.body.view.scale,this.body.view.translation.y+=C.y*this.body.view.scale}}_prepareValue(g){if(typeof g=="number")return g+"px";if(typeof g=="string"){if(G(g).call(g,"%")!==-1||G(g).call(g,"px")!==-1)return g;if(G(g).call(g,"%")===-1)return g+"px"}throw new Error("Could not use the value supplied for width or height:"+g)}_create(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=0,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{let g=document.createElement("DIV");g.style.color="red",g.style.fontWeight="bold",g.style.padding="10px",g.innerText="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(g)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}_bindHammer(){this.hammer!==void 0&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new ot(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:ot.DIRECTION_ALL}),ZI(this.hammer,g=>{this.body.eventListeners.onTouch(g)}),this.hammer.on("tap",g=>{this.body.eventListeners.onTap(g)}),this.hammer.on("doubletap",g=>{this.body.eventListeners.onDoubleTap(g)}),this.hammer.on("press",g=>{this.body.eventListeners.onHold(g)}),this.hammer.on("panstart",g=>{this.body.eventListeners.onDragStart(g)}),this.hammer.on("panmove",g=>{this.body.eventListeners.onDrag(g)}),this.hammer.on("panend",g=>{this.body.eventListeners.onDragEnd(g)}),this.hammer.on("pinch",g=>{this.body.eventListeners.onPinch(g)}),this.frame.canvas.addEventListener("wheel",g=>{this.body.eventListeners.onMouseWheel(g)}),this.frame.canvas.addEventListener("mousemove",g=>{this.body.eventListeners.onMouseMove(g)}),this.frame.canvas.addEventListener("contextmenu",g=>{this.body.eventListeners.onContext(g)}),this.hammerFrame=new ot(this.frame),xh(this.hammerFrame,g=>{this.body.eventListeners.onRelease(g)})}setSize(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.width,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.height;g=this._prepareValue(g),e=this._prepareValue(e);let t=!1,A=this.frame.canvas.width,C=this.frame.canvas.height,i=this.pixelRatio;if(this._setPixelRatio(),g!=this.options.width||e!=this.options.height||this.frame.style.width!=g||this.frame.style.height!=e)this._getCameraState(i),this.frame.style.width=g,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=g,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},t=!0;else{let n=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),o=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);(this.frame.canvas.width!==n||this.frame.canvas.height!==o)&&this._getCameraState(i),this.frame.canvas.width!==n&&(this.frame.canvas.width=n,t=!0),this.frame.canvas.height!==o&&(this.frame.canvas.height=o,t=!0)}return t===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(A/this.pixelRatio),oldHeight:Math.round(C/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,t}getContext(){return this.frame.canvas.getContext("2d")}_determinePixelRatio(){let g=this.getContext();if(g===void 0)throw new Error("Could not get canvax context");let e=1;typeof window!="undefined"&&(e=window.devicePixelRatio||1);let t=g.webkitBackingStorePixelRatio||g.mozBackingStorePixelRatio||g.msBackingStorePixelRatio||g.oBackingStorePixelRatio||g.backingStorePixelRatio||1;return e/t}_setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}setTransform(){let g=this.getContext();if(g===void 0)throw new Error("Could not get canvax context");g.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}_XconvertDOMtoCanvas(g){return(g-this.body.view.translation.x)/this.body.view.scale}_XconvertCanvasToDOM(g){return g*this.body.view.scale+this.body.view.translation.x}_YconvertDOMtoCanvas(g){return(g-this.body.view.translation.y)/this.body.view.scale}_YconvertCanvasToDOM(g){return g*this.body.view.scale+this.body.view.translation.y}canvasToDOM(g){return{x:this._XconvertCanvasToDOM(g.x),y:this._YconvertCanvasToDOM(g.y)}}DOMtoCanvas(g){return{x:this._XconvertDOMtoCanvas(g.x),y:this._YconvertDOMtoCanvas(g.y)}}};function Yk(I,g){let e=q({nodes:g,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},I!=null?I:{});if(!B(e.nodes))throw new TypeError("Nodes has to be an array of ids.");if(e.nodes.length===0&&(e.nodes=g),!(typeof e.minZoomLevel=="number"&&e.minZoomLevel>0))throw new TypeError("Min zoom level has to be a number higher than zero.");if(!(typeof e.maxZoomLevel=="number"&&e.minZoomLevel<=e.maxZoomLevel))throw new TypeError("Max zoom level has to be a number higher than min zoom level.");return e}var Sn=class{constructor(g,e){var t,A;this.body=g,this.canvas=e,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",b(t=this.fit).call(t,this)),this.body.emitter.on("animationFinished",()=>{this.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",b(A=this.releaseNode).call(A,this))}setOptions(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=g}fit(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;g=Yk(g,this.body.nodeIndices);let t=this.canvas.frame.canvas.clientWidth,A=this.canvas.frame.canvas.clientHeight,C,i;if(t===0||A===0)i=1,C=dg.getRange(this.body.nodes,g.nodes);else if(e===!0){let s=0;for(let d in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,d)&&this.body.nodes[d].predefinedPosition===!0&&(s+=1);if(s>.5*this.body.nodeIndices.length){this.fit(g,!1);return}C=dg.getRange(this.body.nodes,g.nodes),i=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;let a=Math.min(t/600,A/600);i*=a}else{this.body.emitter.emit("_resizeNodes"),C=dg.getRange(this.body.nodes,g.nodes);let s=Math.abs(C.maxX-C.minX)*1.1,r=Math.abs(C.maxY-C.minY)*1.1,a=t/s,d=A/r;i=a<=d?a:d}i>g.maxZoomLevel?i=g.maxZoomLevel:i<g.minZoomLevel&&(i=g.minZoomLevel);let o={position:dg.findCenter(C),scale:i,animation:g.animation};this.moveTo(o)}focus(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.body.nodes[g]!==void 0){let t={x:this.body.nodes[g].x,y:this.body.nodes[g].y};e.position=t,e.lockedOnNode=g,this.moveTo(e)}else console.error("Node: "+g+" cannot be found.")}moveTo(g){if(g===void 0){g={};return}if(g.offset!=null){if(g.offset.x!=null){if(g.offset.x=+g.offset.x,!Me(g.offset.x))throw new TypeError('The option "offset.x" has to be a finite number.')}else g.offset.x=0;if(g.offset.y!=null){if(g.offset.y=+g.offset.y,!Me(g.offset.y))throw new TypeError('The option "offset.y" has to be a finite number.')}else g.offset.x=0}else g.offset={x:0,y:0};if(g.position!=null){if(g.position.x!=null){if(g.position.x=+g.position.x,!Me(g.position.x))throw new TypeError('The option "position.x" has to be a finite number.')}else g.position.x=0;if(g.position.y!=null){if(g.position.y=+g.position.y,!Me(g.position.y))throw new TypeError('The option "position.y" has to be a finite number.')}else g.position.x=0}else g.position=this.getViewPosition();if(g.scale!=null){if(g.scale=+g.scale,!(g.scale>0))throw new TypeError('The option "scale" has to be a number greater than zero.')}else g.scale=this.body.view.scale;g.animation===void 0&&(g.animation={duration:0}),g.animation===!1&&(g.animation={duration:0}),g.animation===!0&&(g.animation={}),g.animation.duration===void 0&&(g.animation.duration=1e3),g.animation.easingFunction===void 0&&(g.animation.easingFunction="easeInOutQuad"),this.animateView(g)}animateView(g){if(g===void 0)return;this.animationEasingFunction=g.animation.easingFunction,this.releaseNode(),g.locked===!0&&(this.lockedOnNodeId=g.lockedOnNode,this.lockedOnNodeOffset=g.offset),this.easingTime!=0&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=g.scale,this.body.view.scale=this.targetScale;let e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),t={x:e.x-g.position.x,y:e.y-g.position.y};if(this.targetTranslation={x:this.sourceTranslation.x+t.x*this.targetScale+g.offset.x,y:this.sourceTranslation.y+t.y*this.targetScale+g.offset.y},g.animation.duration===0)if(this.lockedOnNodeId!=null){var A;this.viewFunction=b(A=this._lockedRedraw).call(A,this),this.body.emitter.on("initRedraw",this.viewFunction)}else this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw");else{var C;this.animationSpeed=1/(60*g.animation.duration*.001)||1/60,this.animationEasingFunction=g.animation.easingFunction,this.viewFunction=b(C=this._transitionRedraw).call(C,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}_lockedRedraw(){let g={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),t={x:e.x-g.x,y:e.y-g.y},A=this.body.view.translation,C={x:A.x+t.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:A.y+t.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=C}releaseNode(){this.lockedOnNodeId!==void 0&&this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}_transitionRedraw(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.easingTime+=this.animationSpeed,this.easingTime=g===!0?1:this.easingTime;let e=WO[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1){if(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,this.lockedOnNodeId!=null){var t;this.viewFunction=b(t=this._lockedRedraw).call(t,this),this.body.emitter.on("initRedraw",this.viewFunction)}this.body.emitter.emit("animationFinished")}}getScale(){return this.body.view.scale}getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}},_k=`div.vis-network div.vis-navigation div.vis-button {
654
+ width: 34px;
655
+ height: 34px;
656
+ -moz-border-radius: 17px;
657
+ border-radius: 17px;
658
+ position: absolute;
659
+ display: inline-block;
660
+ background-position: 2px 2px;
661
+ background-repeat: no-repeat;
662
+ cursor: pointer;
663
+ -webkit-touch-callout: none;
664
+ -webkit-user-select: none;
665
+ -khtml-user-select: none;
666
+ -moz-user-select: none;
667
+ -ms-user-select: none;
668
+ user-select: none;
669
+ }
670
+
671
+ div.vis-network div.vis-navigation div.vis-button:hover {
672
+ box-shadow: 0 0 3px 3px rgba(56, 207, 21, 0.3);
673
+ }
674
+
675
+ div.vis-network div.vis-navigation div.vis-button:active {
676
+ box-shadow: 0 0 1px 3px rgba(56, 207, 21, 0.95);
677
+ }
678
+
679
+ div.vis-network div.vis-navigation div.vis-button.vis-up {
680
+ background-image: url('data:image/png;base64,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');
681
+ bottom: 50px;
682
+ left: 55px;
683
+ }
684
+ div.vis-network div.vis-navigation div.vis-button.vis-down {
685
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABpdJREFUeNqcV21QlNcVfp5zX9ikoAvLEsAIIgsoHwpqWAQUNKLNaNv8iZ1JMkNG6/Qj/dDUyCSTtCHpmEkwVk3TToZRMjXj5MOG2KidjIkxQYSAQUAtX6IgIN8su8KCoOzbH4sk4q5g77/33uee555z7rnneYmZDB2MKcJKlyYbqOsZVIgGEOgSHQoy4AKbFFjqAo5dWn/rNAh9OpO852oeJHYxtrmEu4WALhMbxG2ZE9uFAlImDRLY/t/y0b3Ig+u+iWOKsAlgIZSb0OIf15kWtKo1NXh1d5xxiSPEN2wUAHrGOg11jirjWVtJyFnb6YgrzoYwocClu0DI5guPDb43Y2LLp/Iaqf9JCGSErGvIifxd7aqQn/TOJCvFvZ8Hf9haEH+m/6sFQgHBv1Sts/15WmJLkeyl6FuFwFPzny1/ZdE7Nfg/xhv1uUmH2w6kggQp+yqze7d5JbZ8Im+KpucSwI6EN7/cYtlxZarBCts3ptfrtq9odjaGKihE+sV0vRC3u8RqWmmbij149W+Wd5p2rnET6bsqsntyb6+pO3KqkE8FvLxo74lNUX9s9uTJb8/9fG2L81KoogJFYfCm3b9usNq0MXxzw1RsUkDqQICPqf/b/q8sQi3j4WdmtV47OFgNAO6r+DEUFAtFAc9YtpXmRP6hxVsI24cvhyoqnFtrK6jM7isgBa3Dl0O94TeGb255MvzXpUIFjVrhxo/dzgoARBuwFQJkBK9reCnurxfvXX8CRW3yW1G749vT2Br7ysW0oNX1pKDTPG+rm1gHRbibAHLm/7522sKnQCZqFgCUaBCqaS/bEw9vqtWoQROf3dBBiT6KTACImZ3YueqhDdOWjDbFQ4IzIl4elNUX5begU1HD6lPRmULKeghhDcpqnUmZuD3+nkgTH6gZEE9ctlZSoGmG9UIynSCsQVndMyX+IZGiBoHMjHh2SreCglClaSBiSEG8cYnD24bv7CWms/3FocO3hnw13plTggAFb196NdlPM44tC0zrSg5ItXmyEz070UEKCMRqQgkkBQ9NvL2eSJ+revoJTORSpoT6do4/7/7UShBFHQexM+HdfyUHWO8iN/uaRzX3/QjUSLlnqM72F4cCRIY5u9Zf+Y+BAv4AvzpkQ7WAIBRujA/7Vg6cia9xlId6InafVEAAGnQMUCSkb6zTMPdBy8hU3JjrphIq+CrD+Mvxeyumrr+4IH9y7o2GF5eDghuuGx4L2zbWZ9Dc0RoQRbkkFNRdP2/0BH7EtLJLKCjr+zqh2l5u8haZ847vTBW24kRFQXKAtcsT5oqz3igQENIoECkjBJUDZSGewBlBj/ammjLrdX1c/t70ero34gMte9IByLLAjPrUwKweT5jawQshdIuGMiF5XEBU2koivBl9NeEfJeYHwuxtI81zPrn2z6ip60c6DkV1jLTOCTaE2HNjd5Z4s9MwWBOhqEHp/I9cWDtUrJNoHm4KO9P7hdnTBoMYXI8Gb6gVCg63FS53jg9O5tA57tSOdHywnCAygrJrfcTgUe5U2cvNHSPtYYoKCWlrTgsIneB2AfFR+4F4b6f9ZdTzF6P8Ytud407/dy/nL7k9X9i8J9l5y+Ef6RfbnjPvWa8N5suez+KFCgqyPY95Lnd3stv2AcBZ2+mFbze+lui1xc3dXCUUlPafXNx4/aKxcajWWNp/MklRw8/mPFntbd+h1oLE847KhQQxejVg36QQqD0MPTzHv42Ux+uGasJNBnPfwllJd71kkX7RQ3WDNf7dox3BLcNNs6vt34bbbvYHJhlTGp6O+JVHb0/2HJtX1PH+aqECqG/5YN1nlXcokGvvO6vCc4x+QskotxVHB/qa+xbOWuzw8NB3nuo+Ht0z2hHsuGU3GrWAoZfi3jrxgHpw3BPpobaCH7vbqOw6mHI836vYW3Eqcq9AtioqbJy7ufQ3lhfu8sR+s9+3vL8klACsQSu7AnxMY1MxH7YXJp7oPpLulrrj+9575Ni2aeVt1teWfEWfHQLCaspseHzOU7VWU+aM5G2NoyL4i+6j8XWDNQsmGsKu/cv+nTtjQb/mm7hfENyvqEAK5v8opjPJaL26KGBpd5TfguuBvuZRgBgY6zO0jlyZXXe9JqR+8MK8ntHOMHfHIkhu2b/0yIH7/oXJ0yFlxYnPUdRbvuILgO7+y+91l6Ka6M+cnCf4fMSypXvymHf/vzBTD3CuNGUFKT8lmK5Rs5ASqKiBlAGBXFaiSuni0fkp1pJ7Ed4e/xsAqLk46EWsG1EAAAAASUVORK5CYII=');
686
+ bottom: 10px;
687
+ left: 55px;
688
+ }
689
+ div.vis-network div.vis-navigation div.vis-button.vis-left {
690
+ background-image: url('data:image/png;base64,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');
691
+ bottom: 10px;
692
+ left: 15px;
693
+ }
694
+ div.vis-network div.vis-navigation div.vis-button.vis-right {
695
+ background-image: url('data:image/png;base64,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');
696
+ bottom: 10px;
697
+ left: 95px;
698
+ }
699
+ div.vis-network div.vis-navigation div.vis-button.vis-zoomIn {
700
+ background-image: url('data:image/png;base64,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');
701
+ bottom: 10px;
702
+ right: 15px;
703
+ }
704
+ div.vis-network div.vis-navigation div.vis-button.vis-zoomOut {
705
+ background-image: url('data:image/png;base64,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');
706
+ bottom: 10px;
707
+ right: 55px;
708
+ }
709
+ div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends {
710
+ background-image: url('data:image/png;base64,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');
711
+ bottom: 50px;
712
+ right: 15px;
713
+ }
714
+ `;_e(_k);function ya(I){var g=I&&I.preventDefault||!1,e=I&&I.container||window,t={},A={keydown:{},keyup:{}},C={},i;for(i=97;i<=122;i++)C[String.fromCharCode(i)]={code:65+(i-97),shift:!1};for(i=65;i<=90;i++)C[String.fromCharCode(i)]={code:i,shift:!0};for(i=0;i<=9;i++)C[""+i]={code:48+i,shift:!1};for(i=1;i<=12;i++)C["F"+i]={code:111+i,shift:!1};for(i=0;i<=9;i++)C["num"+i]={code:96+i,shift:!1};C["num*"]={code:106,shift:!1},C["num+"]={code:107,shift:!1},C["num-"]={code:109,shift:!1},C["num/"]={code:111,shift:!1},C["num."]={code:110,shift:!1},C.left={code:37,shift:!1},C.up={code:38,shift:!1},C.right={code:39,shift:!1},C.down={code:40,shift:!1},C.space={code:32,shift:!1},C.enter={code:13,shift:!1},C.shift={code:16,shift:void 0},C.esc={code:27,shift:!1},C.backspace={code:8,shift:!1},C.tab={code:9,shift:!1},C.ctrl={code:17,shift:!1},C.alt={code:18,shift:!1},C.delete={code:46,shift:!1},C.pageup={code:33,shift:!1},C.pagedown={code:34,shift:!1},C["="]={code:187,shift:!1},C["-"]={code:189,shift:!1},C["]"]={code:221,shift:!1},C["["]={code:219,shift:!1};var n=function(r){s(r,"keydown")},o=function(r){s(r,"keyup")},s=function(r,a){if(A[a][r.keyCode]!==void 0){for(var d=A[a][r.keyCode],l=0;l<d.length;l++)(d[l].shift===void 0||d[l].shift==!0&&r.shiftKey==!0||d[l].shift==!1&&r.shiftKey==!1)&&d[l].fn(r);g==!0&&r.preventDefault()}};return t.bind=function(r,a,d){if(d===void 0&&(d="keydown"),C[r]===void 0)throw new Error("unsupported key: "+r);A[d][C[r].code]===void 0&&(A[d][C[r].code]=[]),A[d][C[r].code].push({fn:a,shift:C[r].shift})},t.bindAll=function(r,a){a===void 0&&(a="keydown");for(var d in C)C.hasOwnProperty(d)&&t.bind(d,r,a)},t.getKey=function(r){for(var a in C)if(C.hasOwnProperty(a)){if(r.shiftKey==!0&&C[a].shift==!0&&r.keyCode==C[a].code)return a;if(r.shiftKey==!1&&C[a].shift==!1&&r.keyCode==C[a].code)return a;if(r.keyCode==C[a].code&&a=="shift")return a}return"unknown key, currently not supported"},t.unbind=function(r,a,d){if(d===void 0&&(d="keydown"),C[r]===void 0)throw new Error("unsupported key: "+r);if(a!==void 0){var l=[],h=A[d][C[r].code];if(h!==void 0)for(var c=0;c<h.length;c++)h[c].fn==a&&h[c].shift==C[r].shift||l.push(A[d][C[r].code][c]);A[d][C[r].code]=l}else A[d][C[r].code]=[]},t.reset=function(){A={keydown:{},keyup:{}}},t.destroy=function(){A={keydown:{},keyup:{}},e.removeEventListener("keydown",n,!0),e.removeEventListener("keyup",o,!0)},e.addEventListener("keydown",n,!0),e.addEventListener("keyup",o,!0),t}var kn=class{constructor(g,e){this.body=g,this.canvas=e,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",()=>{this.activated=!0,this.configureKeyboardBindings()}),this.body.emitter.on("deactivate",()=>{this.activated=!1,this.configureKeyboardBindings()}),this.body.emitter.on("destroy",()=>{this.keycharm!==void 0&&this.keycharm.destroy()}),this.options={}}setOptions(g){g!==void 0&&(this.options=g,this.create())}create(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}cleanNavigation(){if(this.navigationHammers.length!=0){for(let g=0;g<this.navigationHammers.length;g++)this.navigationHammers[g].destroy();this.navigationHammers=[]}this.navigationDOM&&this.navigationDOM.wrapper&&this.navigationDOM.wrapper.parentNode&&this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper),this.iconsCreated=!1}loadNavigationElements(){this.cleanNavigation(),this.navigationDOM={};let g=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],e=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","_fit"];this.navigationDOM.wrapper=document.createElement("div"),this.navigationDOM.wrapper.className="vis-navigation",this.canvas.frame.appendChild(this.navigationDOM.wrapper);for(let i=0;i<g.length;i++){this.navigationDOM[g[i]]=document.createElement("div"),this.navigationDOM[g[i]].className="vis-button vis-"+g[i],this.navigationDOM.wrapper.appendChild(this.navigationDOM[g[i]]);let n=new ot(this.navigationDOM[g[i]]);if(e[i]==="_fit"){var t;ZI(n,b(t=this._fit).call(t,this))}else{var A;ZI(n,b(A=this.bindToRedraw).call(A,this,e[i]))}this.navigationHammers.push(n)}let C=new ot(this.canvas.frame);xh(C,()=>{this._stopMovement()}),this.navigationHammers.push(C),this.iconsCreated=!0}bindToRedraw(g){if(this.boundFunctions[g]===void 0){var e;this.boundFunctions[g]=b(e=this[g]).call(e,this),this.body.emitter.on("initRedraw",this.boundFunctions[g]),this.body.emitter.emit("_startRendering")}}unbindFromRedraw(g){this.boundFunctions[g]!==void 0&&(this.body.emitter.off("initRedraw",this.boundFunctions[g]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[g])}_fit(){new Date().valueOf()-this.touchTime>700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=new Date().valueOf())}_stopMovement(){for(let g in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,g)&&(this.body.emitter.off("initRedraw",this.boundFunctions[g]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}_moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}_moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}_moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}_moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}_zoomIn(){let g=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),t=this.body.view.translation,A=e/g,C=(1-A)*this.canvas.canvasViewCenter.x+t.x*A,i=(1-A)*this.canvas.canvasViewCenter.y+t.y*A;this.body.view.scale=e,this.body.view.translation={x:C,y:i},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}_zoomOut(){let g=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),t=this.body.view.translation,A=e/g,C=(1-A)*this.canvas.canvasViewCenter.x+t.x*A,i=(1-A)*this.canvas.canvasViewCenter.y+t.y*A;this.body.view.scale=e,this.body.view.translation={x:C,y:i},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}configureKeyboardBindings(){if(this.keycharm!==void 0&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=ya({container:window,preventDefault:!0}):this.keycharm=ya({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0)){var g,e,t,A,C,i,n,o,s,r,a,d,l,h,c,p,u,m,E,w,O,M,k,V;b(g=this.keycharm).call(g,"up",()=>{this.bindToRedraw("_moveUp")},"keydown"),b(e=this.keycharm).call(e,"down",()=>{this.bindToRedraw("_moveDown")},"keydown"),b(t=this.keycharm).call(t,"left",()=>{this.bindToRedraw("_moveLeft")},"keydown"),b(A=this.keycharm).call(A,"right",()=>{this.bindToRedraw("_moveRight")},"keydown"),b(C=this.keycharm).call(C,"=",()=>{this.bindToRedraw("_zoomIn")},"keydown"),b(i=this.keycharm).call(i,"num+",()=>{this.bindToRedraw("_zoomIn")},"keydown"),b(n=this.keycharm).call(n,"num-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),b(o=this.keycharm).call(o,"-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),b(s=this.keycharm).call(s,"[",()=>{this.bindToRedraw("_zoomOut")},"keydown"),b(r=this.keycharm).call(r,"]",()=>{this.bindToRedraw("_zoomIn")},"keydown"),b(a=this.keycharm).call(a,"pageup",()=>{this.bindToRedraw("_zoomIn")},"keydown"),b(d=this.keycharm).call(d,"pagedown",()=>{this.bindToRedraw("_zoomOut")},"keydown"),b(l=this.keycharm).call(l,"up",()=>{this.unbindFromRedraw("_moveUp")},"keyup"),b(h=this.keycharm).call(h,"down",()=>{this.unbindFromRedraw("_moveDown")},"keyup"),b(c=this.keycharm).call(c,"left",()=>{this.unbindFromRedraw("_moveLeft")},"keyup"),b(p=this.keycharm).call(p,"right",()=>{this.unbindFromRedraw("_moveRight")},"keyup"),b(u=this.keycharm).call(u,"=",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),b(m=this.keycharm).call(m,"num+",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),b(E=this.keycharm).call(E,"num-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),b(w=this.keycharm).call(w,"-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),b(O=this.keycharm).call(O,"[",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),b(M=this.keycharm).call(M,"]",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),b(k=this.keycharm).call(k,"pageup",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),b(V=this.keycharm).call(V,"pagedown",()=>{this.unbindFromRedraw("_zoomOut")},"keyup")}}},Mn=class{constructor(g,e,t){var A,C,i,n,o,s,r,a,d,l,h,c,p;this.body=g,this.canvas=e,this.selectionHandler=t,this.navigationHandler=new kn(g,e),this.body.eventListeners.onTap=b(A=this.onTap).call(A,this),this.body.eventListeners.onTouch=b(C=this.onTouch).call(C,this),this.body.eventListeners.onDoubleTap=b(i=this.onDoubleTap).call(i,this),this.body.eventListeners.onHold=b(n=this.onHold).call(n,this),this.body.eventListeners.onDragStart=b(o=this.onDragStart).call(o,this),this.body.eventListeners.onDrag=b(s=this.onDrag).call(s,this),this.body.eventListeners.onDragEnd=b(r=this.onDragEnd).call(r,this),this.body.eventListeners.onMouseWheel=b(a=this.onMouseWheel).call(a,this),this.body.eventListeners.onPinch=b(d=this.onPinch).call(d,this),this.body.eventListeners.onMouseMove=b(l=this.onMouseMove).call(l,this),this.body.eventListeners.onRelease=b(h=this.onRelease).call(h,this),this.body.eventListeners.onContext=b(c=this.onContext).call(c,this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=b(p=this.getPointer).call(p,this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0,autoFocus:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0,zoomSpeed:1},q(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("destroy",()=>{clearTimeout(this.popupTimer),delete this.body.functions.getPointer})}setOptions(g){g!==void 0&&(bI(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"],this.options,g),Dg(this.options,g,"keyboard"),g.tooltip&&(q(this.options.tooltip,g.tooltip),g.tooltip.color&&(this.options.tooltip.color=zi(g.tooltip.color)))),this.navigationHandler.setOptions(this.options)}getPointer(g){return{x:g.x-LO(this.canvas.frame.canvas),y:g.y-GO(this.canvas.frame.canvas)}}onTouch(g){new Date().valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(g.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=new Date().valueOf())}onTap(g){let e=this.getPointer(g.center),t=this.selectionHandler.options.multiselect&&(g.changedPointers[0].ctrlKey||g.changedPointers[0].metaKey);this.checkSelectionChanges(e,t),this.selectionHandler.commitAndEmit(e,g),this.selectionHandler.generateClickEvent("click",g,e)}onDoubleTap(g){let e=this.getPointer(g.center);this.selectionHandler.generateClickEvent("doubleClick",g,e)}onHold(g){let e=this.getPointer(g.center),t=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t),this.selectionHandler.commitAndEmit(e,g),this.selectionHandler.generateClickEvent("click",g,e),this.selectionHandler.generateClickEvent("hold",g,e)}onRelease(g){if(new Date().valueOf()-this.touchTime>10){let e=this.getPointer(g.center);this.selectionHandler.generateClickEvent("release",g,e),this.touchTime=new Date().valueOf()}}onContext(g){let e=this.getPointer({x:g.clientX,y:g.clientY});this.selectionHandler.generateClickEvent("oncontext",g,e)}checkSelectionChanges(g){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)===!0?this.selectionHandler.selectAdditionalOnPoint(g):this.selectionHandler.selectOnPoint(g)}_determineDifference(g,e){let t=function(A,C){let i=[];for(let n=0;n<A.length;n++){let o=A[n];G(C).call(C,o)===-1&&i.push(o)}return i};return{nodes:t(g.nodes,e.nodes),edges:t(g.edges,e.edges)}}onDragStart(g){if(this.drag.dragging)return;this.drag.pointer===void 0&&this.onTouch(g);let e=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=q({},this.body.view.translation),this.drag.nodeId=void 0,g.srcEvent.shiftKey){this.body.selectionBox.show=!0;let t=this.getPointer(g.center);this.body.selectionBox.position.start={x:this.canvas._XconvertDOMtoCanvas(t.x),y:this.canvas._YconvertDOMtoCanvas(t.y)},this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(t.x),y:this.canvas._YconvertDOMtoCanvas(t.y)}}else if(e!==void 0&&this.options.dragNodes===!0){this.drag.nodeId=e.id,e.isSelected()===!1&&this.selectionHandler.setSelection({nodes:[e.id]}),this.selectionHandler.generateClickEvent("dragStart",g,this.drag.pointer);for(let t of this.selectionHandler.getSelectedNodes()){let A={id:t.id,node:t,x:t.x,y:t.y,xFixed:t.options.fixed.x,yFixed:t.options.fixed.y};t.options.fixed.x=!0,t.options.fixed.y=!0,this.drag.selection.push(A)}}else this.selectionHandler.generateClickEvent("dragStart",g,this.drag.pointer,void 0,!0)}onDrag(g){if(this.drag.pinched===!0)return;this.body.emitter.emit("unlockNode");let e=this.getPointer(g.center),t=this.drag.selection;if(t&&t.length&&this.options.dragNodes===!0){this.selectionHandler.generateClickEvent("dragging",g,e);let A=e.x-this.drag.pointer.x,C=e.y-this.drag.pointer.y;F(t).call(t,i=>{let n=i.node;i.xFixed===!1&&(n.x=this.canvas._XconvertDOMtoCanvas(this.canvas._XconvertCanvasToDOM(i.x)+A)),i.yFixed===!1&&(n.y=this.canvas._YconvertDOMtoCanvas(this.canvas._YconvertCanvasToDOM(i.y)+C))}),this.body.emitter.emit("startSimulation")}else{if(g.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",g,e,void 0,!0),this.drag.pointer===void 0){this.onDragStart(g);return}this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(e.x),y:this.canvas._YconvertDOMtoCanvas(e.y)},this.body.emitter.emit("_requestRedraw")}if(this.options.dragView===!0&&!g.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",g,e,void 0,!0),this.drag.pointer===void 0){this.onDragStart(g);return}let A=e.x-this.drag.pointer.x,C=e.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+A,y:this.drag.translation.y+C},this.body.emitter.emit("_requestRedraw")}}}onDragEnd(g){if(this.drag.dragging=!1,this.body.selectionBox.show){var e;this.body.selectionBox.show=!1;let t=this.body.selectionBox.position,A={minX:Math.min(t.start.x,t.end.x),minY:Math.min(t.start.y,t.end.y),maxX:Math.max(t.start.x,t.end.x),maxY:Math.max(t.start.y,t.end.y)},C=tg(e=this.body.nodeIndices).call(e,n=>{let o=this.body.nodes[n];return o.x>=A.minX&&o.x<=A.maxX&&o.y>=A.minY&&o.y<=A.maxY});F(C).call(C,n=>this.selectionHandler.selectObject(this.body.nodes[n]));let i=this.getPointer(g.center);this.selectionHandler.commitAndEmit(i,g),this.selectionHandler.generateClickEvent("dragEnd",g,this.getPointer(g.center),void 0,!0),this.body.emitter.emit("_requestRedraw")}else{let t=this.drag.selection;t&&t.length?(F(t).call(t,function(A){A.node.options.fixed.x=A.xFixed,A.node.options.fixed.y=A.yFixed}),this.selectionHandler.generateClickEvent("dragEnd",g,this.getPointer(g.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler.generateClickEvent("dragEnd",g,this.getPointer(g.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}}onPinch(g){let e=this.getPointer(g.center);this.drag.pinched=!0,this.pinch.scale===void 0&&(this.pinch.scale=1);let t=this.pinch.scale*g.scale;this.zoom(t,e)}zoom(g,e){if(this.options.zoomView===!0){let t=this.body.view.scale;g<1e-5&&(g=1e-5),g>10&&(g=10);let A;this.drag!==void 0&&this.drag.dragging===!0&&(A=this.canvas.DOMtoCanvas(this.drag.pointer));let C=this.body.view.translation,i=g/t,n=(1-i)*e.x+C.x*i,o=(1-i)*e.y+C.y*i;if(this.body.view.scale=g,this.body.view.translation={x:n,y:o},A!=null){let s=this.canvas.canvasToDOM(A);this.drag.pointer.x=s.x,this.drag.pointer.y=s.y}this.body.emitter.emit("_requestRedraw"),t<g?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:e}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:e})}}onMouseWheel(g){if(this.options.zoomView===!0){if(g.deltaY!==0){let e=this.body.view.scale;e*=1+(g.deltaY<0?1:-1)*(this.options.zoomSpeed*.1);let t=this.getPointer({x:g.clientX,y:g.clientY});this.zoom(e,t)}g.preventDefault()}}onMouseMove(g){let e=this.getPointer({x:g.clientX,y:g.clientY}),t=!1;this.popup!==void 0&&(this.popup.hidden===!1&&this._checkHidePopup(e),this.popup.hidden===!1&&(t=!0,this.popup.setPosition(e.x+3,e.y-5),this.popup.show())),this.options.keyboard.autoFocus&&this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),t===!1&&(this.popupTimer!==void 0&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=Hg(()=>this._checkShowPopup(e),this.options.tooltipDelay))),this.options.hover===!0&&this.selectionHandler.hoverObject(g,e)}_checkShowPopup(g){let e=this.canvas._XconvertDOMtoCanvas(g.x),t=this.canvas._YconvertDOMtoCanvas(g.y),A={left:e,top:t,right:e,bottom:t},C=this.popupObj===void 0?void 0:this.popupObj.id,i=!1,n="node";if(this.popupObj===void 0){let o=this.body.nodeIndices,s=this.body.nodes,r,a=[];for(let d=0;d<o.length;d++)r=s[o[d]],r.isOverlappingWith(A)===!0&&(i=!0,r.getTitle()!==void 0&&a.push(o[d]));a.length>0&&(this.popupObj=s[a[a.length-1]],i=!0)}if(this.popupObj===void 0&&i===!1){let o=this.body.edgeIndices,s=this.body.edges,r,a=[];for(let d=0;d<o.length;d++)r=s[o[d]],r.isOverlappingWith(A)===!0&&r.connected===!0&&r.getTitle()!==void 0&&a.push(o[d]);a.length>0&&(this.popupObj=s[a[a.length-1]],n="edge")}this.popupObj!==void 0?this.popupObj.id!==C&&(this.popup===void 0&&(this.popup=new JO(this.canvas.frame)),this.popup.popupTargetType=n,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(g.x+3,g.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):this.popup!==void 0&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}_checkHidePopup(g){let e=this.selectionHandler._pointerToPositionObject(g),t=!1;if(this.popup.popupTargetType==="node"){if(this.body.nodes[this.popup.popupTargetId]!==void 0&&(t=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),t===!0)){let A=this.selectionHandler.getNodeAt(g);t=A===void 0?!1:A.id===this.popup.popupTargetId}}else this.selectionHandler.getNodeAt(g)===void 0&&this.body.edges[this.popup.popupTargetId]!==void 0&&(t=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));t===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}},Kk=Z,wa=xo,qA=nC.getWeakData,Uk=Eo,Hk=re,Qk=ft,oi=cg,Xk=wo,Oh=Re,Ea=ng,Ph=Ke,Jk=Ph.set,$k=Ph.getterFor,qk=Oh.find,gM=Oh.findIndex,eM=Kk([].splice),tM=0,gI=function(I){return I.frozen||(I.frozen=new Dh)},Dh=function(){this.entries=[]},si=function(I,g){return qk(I.entries,function(e){return e[0]===g})};Dh.prototype={get:function(I){var g=si(this,I);if(g)return g[1]},has:function(I){return!!si(this,I)},set:function(I,g){var e=si(this,I);e?e[1]=g:this.entries.push([I,g])},delete:function(I){var g=gM(this.entries,function(e){return e[0]===I});return~g&&eM(this.entries,g,1),!!~g}};var AM={getConstructor:function(I,g,e,t){var A=I(function(o,s){Uk(o,C),Jk(o,{type:g,id:tM++,frozen:void 0}),Qk(s)||Xk(s,o[t],{that:o,AS_ENTRIES:e})}),C=A.prototype,i=$k(g),n=function(o,s,r){var a=i(o),d=qA(Hk(s),!0);return d===!0?gI(a).set(s,r):d[a.id]=r,o};return wa(C,{delete:function(o){var s=i(this);if(!oi(o))return!1;var r=qA(o);return r===!0?gI(s).delete(o):r&&Ea(r,s.id)&&delete r[s.id]},has:function(s){var r=i(this);if(!oi(s))return!1;var a=qA(s);return a===!0?gI(r).has(s):a&&Ea(a,r.id)}}),wa(C,e?{get:function(s){var r=i(this);if(oi(s)){var a=qA(s);return a===!0?gI(r).get(s):a?a[r.id]:void 0}},set:function(s,r){return n(this,s,r)}}:{add:function(s){return n(this,s,!0)}}),A}},IM=Ql,Ta=X,rI=Z,xa=xo,CM=nC,iM=To,Rh=AM,eI=cg,tI=Ke.enforce,nM=z,oM=dd,kA=Object,sM=Array.isArray,AI=kA.isExtensible,Nh=kA.isFrozen,rM=kA.isSealed,Sh=kA.freeze,aM=kA.seal,Oa={},Pa={},dM=!Ta.ActiveXObject&&"ActiveXObject"in Ta,kt,kh=function(I){return function(){return I(this,arguments.length?arguments[0]:void 0)}},Mh=iM("WeakMap",kh,Rh),At=Mh.prototype,aI=rI(At.set),lM=function(){return IM&&nM(function(){var I=Sh([]);return aI(new Mh,I,1),!Nh(I)})};oM&&(dM?(kt=Rh.getConstructor(kh,"WeakMap",!0),CM.enable(),ri=rI(At.delete),Mt=rI(At.has),ai=rI(At.get),xa(At,{delete:function(I){if(eI(I)&&!AI(I)){var g=tI(this);return g.frozen||(g.frozen=new kt),ri(this,I)||g.frozen.delete(I)}return ri(this,I)},has:function(g){if(eI(g)&&!AI(g)){var e=tI(this);return e.frozen||(e.frozen=new kt),Mt(this,g)||e.frozen.has(g)}return Mt(this,g)},get:function(g){if(eI(g)&&!AI(g)){var e=tI(this);return e.frozen||(e.frozen=new kt),Mt(this,g)?ai(this,g):e.frozen.get(g)}return ai(this,g)},set:function(g,e){if(eI(g)&&!AI(g)){var t=tI(this);t.frozen||(t.frozen=new kt),Mt(this,g)?aI(this,g,e):t.frozen.set(g,e)}else aI(this,g,e);return this}})):lM()&&xa(At,{set:function(g,e){var t;return sM(g)&&(Nh(g)?t=Oa:rM(g)&&(t=Pa)),aI(this,g,e),t===Oa&&Sh(g),t===Pa&&aM(g),this}}));var ri,Mt,ai,hM=L,cM=hM.WeakMap,uM=cM,fM=uM,pM=fM,Wt=D(pM);function Y(I,g,e,t){if(e==="a"&&!t)throw new TypeError("Private accessor was defined without a getter");if(typeof g=="function"?I!==g||!t:!g.has(I))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?t:e==="a"?t.call(I):t?t.value:g.get(I)}function Fn(I,g,e,t,A){if(t==="m")throw new TypeError("Private method is not writable");if(t==="a"&&!A)throw new TypeError("Private accessor was defined without a setter");if(typeof g=="function"?I!==g||!A:!g.has(I))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t==="a"?A.call(I,e):A?A.value=e:g.set(I,e),e}var Se,Pg,he,ce,dI;function Da(I,g){let e=new Lg;for(let t of g)I.has(t)||e.add(t);return e}var LI=class{constructor(){Se.set(this,new Lg),Pg.set(this,new Lg)}get size(){return Y(this,Pg,"f").size}add(){for(var g=arguments.length,e=new Array(g),t=0;t<g;t++)e[t]=arguments[t];for(let A of e)Y(this,Pg,"f").add(A)}delete(){for(var g=arguments.length,e=new Array(g),t=0;t<g;t++)e[t]=arguments[t];for(let A of e)Y(this,Pg,"f").delete(A)}clear(){Y(this,Pg,"f").clear()}getSelection(){return[...Y(this,Pg,"f")]}getChanges(){return{added:[...Da(Y(this,Se,"f"),Y(this,Pg,"f"))],deleted:[...Da(Y(this,Pg,"f"),Y(this,Se,"f"))],previous:[...new Lg(Y(this,Se,"f"))],current:[...new Lg(Y(this,Pg,"f"))]}}commit(){let g=this.getChanges();Fn(this,Se,Y(this,Pg,"f"),"f"),Fn(this,Pg,new Lg(Y(this,Se,"f")),"f");for(let e of g.added)e.select();for(let e of g.deleted)e.unselect();return g}};Se=new Wt,Pg=new Wt;var Bn=class{constructor(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:()=>{};he.set(this,new LI),ce.set(this,new LI),dI.set(this,void 0),Fn(this,dI,g,"f")}get sizeNodes(){return Y(this,he,"f").size}get sizeEdges(){return Y(this,ce,"f").size}getNodes(){return Y(this,he,"f").getSelection()}getEdges(){return Y(this,ce,"f").getSelection()}addNodes(){Y(this,he,"f").add(...arguments)}addEdges(){Y(this,ce,"f").add(...arguments)}deleteNodes(g){Y(this,he,"f").delete(g)}deleteEdges(g){Y(this,ce,"f").delete(g)}clear(){Y(this,he,"f").clear(),Y(this,ce,"f").clear()}commit(){let g={nodes:Y(this,he,"f").commit(),edges:Y(this,ce,"f").commit()};for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return Y(this,dI,"f").call(this,g,...t),g}};he=new Wt,ce=new Wt,dI=new Wt;var zn=class{constructor(g,e){this.body=g,this.canvas=e,this._selectionAccumulator=new Bn,this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},q(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",()=>{this.updateSelection()})}setOptions(g){g!==void 0&&xt(["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"],this.options,g)}selectOnPoint(g){let e=!1;if(this.options.selectable===!0){let t=this.getNodeAt(g)||this.getEdgeAt(g);this.unselectAll(),t!==void 0&&(e=this.selectObject(t)),this.body.emitter.emit("_requestRedraw")}return e}selectAdditionalOnPoint(g){let e=!1;if(this.options.selectable===!0){let t=this.getNodeAt(g)||this.getEdgeAt(g);t!==void 0&&(e=!0,t.isSelected()===!0?this.deselectObject(t):this.selectObject(t),this.body.emitter.emit("_requestRedraw"))}return e}_initBaseEvent(g,e){let t={};return t.pointer={DOM:{x:e.x,y:e.y},canvas:this.canvas.DOMtoCanvas(e)},t.event=g,t}generateClickEvent(g,e,t,A){let C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,i=this._initBaseEvent(e,t);if(C===!0)i.nodes=[],i.edges=[];else{let n=this.getSelection();i.nodes=n.nodes,i.edges=n.edges}A!==void 0&&(i.previousSelection=A),g=="click"&&(i.items=this.getClickedItems(t)),e.controlEdge!==void 0&&(i.controlEdge=e.controlEdge),this.body.emitter.emit(g,i)}selectObject(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.selectConnectedEdges;return g!==void 0?(g instanceof pg?(e===!0&&this._selectionAccumulator.addEdges(...g.edges),this._selectionAccumulator.addNodes(g)):this._selectionAccumulator.addEdges(g),!0):!1}deselectObject(g){g.isSelected()===!0&&(g.selected=!1,this._removeFromSelection(g))}_getAllNodesOverlappingWith(g){let e=[],t=this.body.nodes;for(let A=0;A<this.body.nodeIndices.length;A++){let C=this.body.nodeIndices[A];t[C].isOverlappingWith(g)&&e.push(C)}return e}_pointerToPositionObject(g){let e=this.canvas.DOMtoCanvas(g);return{left:e.x-1,top:e.y+1,right:e.x+1,bottom:e.y-1}}getNodeAt(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this._pointerToPositionObject(g),A=this._getAllNodesOverlappingWith(t);if(A.length>0)return e===!0?this.body.nodes[A[A.length-1]]:A[A.length-1]}_getEdgesOverlappingWith(g,e){let t=this.body.edges;for(let A=0;A<this.body.edgeIndices.length;A++){let C=this.body.edgeIndices[A];t[C].isOverlappingWith(g)&&e.push(C)}}_getAllEdgesOverlappingWith(g){let e=[];return this._getEdgesOverlappingWith(g,e),e}getEdgeAt(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this.canvas.DOMtoCanvas(g),A=10,C=null,i=this.body.edges;for(let n=0;n<this.body.edgeIndices.length;n++){let o=this.body.edgeIndices[n],s=i[o];if(s.connected){let r=s.from.x,a=s.from.y,d=s.to.x,l=s.to.y,h=s.edgeType.getDistanceToEdge(r,a,d,l,t.x,t.y);h<A&&(C=o,A=h)}}if(C!==null)return e===!0?this.body.edges[C]:C}_addToHover(g){g instanceof pg?this.hoverObj.nodes[g.id]=g:this.hoverObj.edges[g.id]=g}_removeFromSelection(g){g instanceof pg?(this._selectionAccumulator.deleteNodes(g),this._selectionAccumulator.deleteEdges(...g.edges)):this._selectionAccumulator.deleteEdges(g)}unselectAll(){this._selectionAccumulator.clear()}getSelectedNodeCount(){return this._selectionAccumulator.sizeNodes}getSelectedEdgeCount(){return this._selectionAccumulator.sizeEdges}_hoverConnectedEdges(g){for(let e=0;e<g.edges.length;e++){let t=g.edges[e];t.hover=!0,this._addToHover(t)}}emitBlurEvent(g,e,t){let A=this._initBaseEvent(g,e);t.hover===!0&&(t.hover=!1,t instanceof pg?(A.node=t.id,this.body.emitter.emit("blurNode",A)):(A.edge=t.id,this.body.emitter.emit("blurEdge",A)))}emitHoverEvent(g,e,t){let A=this._initBaseEvent(g,e),C=!1;return t.hover===!1&&(t.hover=!0,this._addToHover(t),C=!0,t instanceof pg?(A.node=t.id,this.body.emitter.emit("hoverNode",A)):(A.edge=t.id,this.body.emitter.emit("hoverEdge",A))),C}hoverObject(g,e){let t=this.getNodeAt(e);t===void 0&&(t=this.getEdgeAt(e));let A=!1;for(let C in this.hoverObj.nodes)Object.prototype.hasOwnProperty.call(this.hoverObj.nodes,C)&&(t===void 0||t instanceof pg&&t.id!=C||t instanceof xe)&&(this.emitBlurEvent(g,e,this.hoverObj.nodes[C]),delete this.hoverObj.nodes[C],A=!0);for(let C in this.hoverObj.edges)Object.prototype.hasOwnProperty.call(this.hoverObj.edges,C)&&(A===!0?(this.hoverObj.edges[C].hover=!1,delete this.hoverObj.edges[C]):(t===void 0||t instanceof xe&&t.id!=C||t instanceof pg&&!t.hover)&&(this.emitBlurEvent(g,e,this.hoverObj.edges[C]),delete this.hoverObj.edges[C],A=!0));if(t!==void 0){let C=U(this.hoverObj.edges).length,i=U(this.hoverObj.nodes).length,n=t instanceof xe&&C===0&&i===0,o=t instanceof pg&&C===0&&i===0;(A||n||o)&&(A=this.emitHoverEvent(g,e,t)),t instanceof pg&&this.options.hoverConnectedEdges===!0&&this._hoverConnectedEdges(t)}A===!0&&this.body.emitter.emit("_requestRedraw")}commitWithoutEmitting(){this._selectionAccumulator.commit()}commitAndEmit(g,e){let t=!1,A=this._selectionAccumulator.commit(),C={nodes:A.nodes.previous,edges:A.edges.previous};A.edges.deleted.length>0&&(this.generateClickEvent("deselectEdge",e,g,C),t=!0),A.nodes.deleted.length>0&&(this.generateClickEvent("deselectNode",e,g,C),t=!0),A.nodes.added.length>0&&(this.generateClickEvent("selectNode",e,g),t=!0),A.edges.added.length>0&&(this.generateClickEvent("selectEdge",e,g),t=!0),t===!0&&this.generateClickEvent("select",e,g)}getSelection(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}getSelectedNodes(){return this._selectionAccumulator.getNodes()}getSelectedEdges(){return this._selectionAccumulator.getEdges()}getSelectedNodeIds(){var g;return ag(g=this._selectionAccumulator.getNodes()).call(g,e=>e.id)}getSelectedEdgeIds(){var g;return ag(g=this._selectionAccumulator.getEdges()).call(g,e=>e.id)}setSelection(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!g||!g.nodes&&!g.edges)throw new TypeError("Selection must be an object with nodes and/or edges properties");if((e.unselectAll||e.unselectAll===void 0)&&this.unselectAll(),g.nodes)for(let t of g.nodes){let A=this.body.nodes[t];if(!A)throw new RangeError('Node with id "'+t+'" not found');this.selectObject(A,e.highlightEdges)}if(g.edges)for(let t of g.edges){let A=this.body.edges[t];if(!A)throw new RangeError('Edge with id "'+t+'" not found');this.selectObject(A)}this.body.emitter.emit("_requestRedraw"),this._selectionAccumulator.commit()}selectNodes(g){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!g||g.length===void 0)throw"Selection must be an array with ids";this.setSelection({nodes:g},{highlightEdges:e})}selectEdges(g){if(!g||g.length===void 0)throw"Selection must be an array with ids";this.setSelection({edges:g})}updateSelection(){for(let g in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,g.id)||this._selectionAccumulator.deleteNodes(g);for(let g in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,g.id)||this._selectionAccumulator.deleteEdges(g)}getClickedItems(g){let e=this.canvas.DOMtoCanvas(g),t=[],A=this.body.nodeIndices,C=this.body.nodes;for(let o=A.length-1;o>=0;o--){let r=C[A[o]].getItemsOnPoint(e);t.push.apply(t,r)}let i=this.body.edgeIndices,n=this.body.edges;for(let o=i.length-1;o>=0;o--){let r=n[i[o]].getItemsOnPoint(e);t.push.apply(t,r)}return t}},GI=class{abstract(){throw new Error("Can't instantiate abstract class!")}fake_use(){}curveType(){return this.abstract()}getPosition(g){return this.fake_use(g),this.abstract()}setPosition(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;this.fake_use(g,e,t),this.abstract()}getTreeSize(g){return this.fake_use(g),this.abstract()}sort(g){this.fake_use(g),this.abstract()}fix(g,e){this.fake_use(g,e),this.abstract()}shift(g,e){this.fake_use(g,e),this.abstract()}},Zn=class extends GI{constructor(g){super(),this.layout=g}curveType(){return"horizontal"}getPosition(g){return g.x}setPosition(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;t!==void 0&&this.layout.hierarchical.addToOrdering(g,t),g.x=e}getTreeSize(g){let e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,g);return{min:e.min_x,max:e.max_x}}sort(g){Ce(g).call(g,function(e,t){return e.x-t.x})}fix(g,e){g.y=this.layout.options.hierarchical.levelSeparation*e,g.options.fixed.y=!0}shift(g,e){this.layout.body.nodes[g].x+=e}},Ln=class extends GI{constructor(g){super(),this.layout=g}curveType(){return"vertical"}getPosition(g){return g.y}setPosition(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;t!==void 0&&this.layout.hierarchical.addToOrdering(g,t),g.y=e}getTreeSize(g){let e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,g);return{min:e.min_y,max:e.max_y}}sort(g){Ce(g).call(g,function(e,t){return e.y-t.y})}fix(g,e){g.x=this.layout.options.hierarchical.levelSeparation*e,g.options.fixed.x=!0}shift(g,e){this.layout.body.nodes[g].y+=e}},mM=R,vM=Re.every,bM=wt,yM=bM("every");mM({target:"Array",proto:!0,forced:!yM},{every:function(g){return vM(this,g,arguments.length>1?arguments[1]:void 0)}});var wM=Ig,EM=wM("Array").every,TM=J,xM=EM,di=Array.prototype,OM=function(I){var g=I.every;return I===di||TM(di,I)&&g===di.every?xM:g},PM=OM,DM=PM,RM=DM,Fh=D(RM);function NM(I,g){let e=new Lg;return F(I).call(I,t=>{var A;F(A=t.edges).call(A,C=>{C.connected&&e.add(C)})}),F(e).call(e,t=>{let A=t.from.id,C=t.to.id;g[A]==null&&(g[A]=0),(g[C]==null||g[A]>=g[C])&&(g[C]=g[A]+1)}),g}function SM(I){return Bh(g=>{var e,t;return Fh(e=tg(t=g.edges).call(t,A=>I.has(A.toId))).call(e,A=>A.to===g)},(g,e)=>e>g,"from",I)}function kM(I){return Bh(g=>{var e,t;return Fh(e=tg(t=g.edges).call(t,A=>I.has(A.toId))).call(e,A=>A.from===g)},(g,e)=>e<g,"to",I)}function Bh(I,g,e,t){var A;let C=we(null),i=Do(A=[...EI(t).call(t)]).call(A,(a,d)=>a+1+d.edges.length,0),n=e+"Id",o=e==="to"?1:-1;for(let[a,d]of t){if(!t.has(a)||!I(d))continue;C[a]=0;let l=[d],h=0,c;for(;c=l.pop();){var s,r;if(!t.has(a))continue;let p=C[c.id]+o;if(F(s=tg(r=c.edges).call(r,u=>u.connected&&u.to!==u.from&&u[e]!==c&&t.has(u.toId)&&t.has(u.fromId))).call(s,u=>{let m=u[n],E=C[m];(E==null||g(p,E))&&(C[m]=p,l.push(u[e]))}),h>i)return NM(t,C);++h}}return C}var Gn=class{constructor(){this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}addRelation(g,e){this.childrenReference[g]===void 0&&(this.childrenReference[g]=[]),this.childrenReference[g].push(e),this.parentReference[e]===void 0&&(this.parentReference[e]=[]),this.parentReference[e].push(g)}checkIfTree(){for(let g in this.parentReference)if(this.parentReference[g].length>1){this.isTree=!1;return}this.isTree=!0}numTrees(){return this.treeIndex+1}setTreeIndex(g,e){e!==void 0&&this.trees[g.id]===void 0&&(this.trees[g.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}ensureLevel(g){this.levels[g]===void 0&&(this.levels[g]=0)}getMaxLevel(g){let e={},t=A=>{if(e[A]!==void 0)return e[A];let C=this.levels[A];if(this.childrenReference[A]){let i=this.childrenReference[A];if(i.length>0)for(let n=0;n<i.length;n++)C=Math.max(C,t(i[n]))}return e[A]=C,C};return t(g)}levelDownstream(g,e){this.levels[e.id]===void 0&&(this.levels[g.id]===void 0&&(this.levels[g.id]=0),this.levels[e.id]=this.levels[g.id]+1)}setMinLevelToZero(){var g;let e=new RA,t=0,A=Ce(g=[...new Lg(mT(this.levels))]).call(g,(C,i)=>C-i);for(let C of A)e.set(C,t++);for(let C in this.levels)Object.prototype.hasOwnProperty.call(this.levels,C)&&(this.levels[C]=e.get(this.levels[C]))}getTreeSize(g,e){let t=1e9,A=-1e9,C=1e9,i=-1e9;for(let n in this.trees)if(Object.prototype.hasOwnProperty.call(this.trees,n)&&this.trees[n]===e){let o=g[n];t=Math.min(o.x,t),A=Math.max(o.x,A),C=Math.min(o.y,C),i=Math.max(o.y,i)}return{min_x:t,max_x:A,min_y:C,max_y:i}}hasSameParent(g,e){let t=this.parentReference[g.id],A=this.parentReference[e.id];if(t===void 0||A===void 0)return!1;for(let C=0;C<t.length;C++)for(let i=0;i<A.length;i++)if(t[C]==A[i])return!0;return!1}inSameSubNetwork(g,e){return this.trees[g.id]===this.trees[e.id]}getLevels(){return U(this.distributionOrdering)}addToOrdering(g,e){this.distributionOrdering[e]===void 0&&(this.distributionOrdering[e]=[]);let t=!1,A=this.distributionOrdering[e];for(let C in A)if(A[C]===g){t=!0;break}t||(this.distributionOrdering[e].push(g),this.distributionIndex[g.id]=this.distributionOrdering[e].length-1)}},Vn=class{constructor(g){this.body=g,this._resetRNG(Math.random()+":"+uI()),this.setPhysics=!1,this.options={},this.optionsBackup={physics:{}},this.defaultOptions={randomSeed:void 0,improvedLayout:!0,clusterThreshold:150,hierarchical:{enabled:!1,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:"UD",sortMethod:"hubsize"}},q(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("_dataChanged",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",()=>{this.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on("_adjustEdgesForHierarchicalLayout",()=>{if(this.options.hierarchical.enabled!==!0)return;let g=this.direction.curveType();this.body.emitter.emit("_forceDisableDynamicCurves",g,!1)})}setOptions(g,e){if(g!==void 0){let t=this.options.hierarchical,A=t.enabled;if(xt(["randomSeed","improvedLayout","clusterThreshold"],this.options,g),Dg(this.options,g,"hierarchical"),g.randomSeed!==void 0&&this._resetRNG(g.randomSeed),t.enabled===!0)return A===!0&&this.body.emitter.emit("refresh",!0),t.direction==="RL"||t.direction==="DU"?t.levelSeparation>0&&(t.levelSeparation*=-1):t.levelSeparation<0&&(t.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(A===!0)return this.body.emitter.emit("refresh"),_(e,this.optionsBackup)}return e}_resetRNG(g){this.initialRandomSeed=g,this._rng=iC(this.initialRandomSeed)}adaptAllOptionsForHierarchicalLayout(g){if(this.options.hierarchical.enabled===!0){let e=this.optionsBackup.physics;g.physics===void 0||g.physics===!0?(g.physics={enabled:e.enabled===void 0?!0:e.enabled,solver:"hierarchicalRepulsion"},e.enabled=e.enabled===void 0?!0:e.enabled,e.solver=e.solver||"barnesHut"):typeof g.physics=="object"?(e.enabled=g.physics.enabled===void 0?!0:g.physics.enabled,e.solver=g.physics.solver||"barnesHut",g.physics.solver="hierarchicalRepulsion"):g.physics!==!1&&(e.solver="barnesHut",g.physics={solver:"hierarchicalRepulsion"});let t=this.direction.curveType();if(g.edges===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},g.edges={smooth:!1};else if(g.edges.smooth===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},g.edges.smooth=!1;else if(typeof g.edges.smooth=="boolean")this.optionsBackup.edges={smooth:g.edges.smooth},g.edges.smooth={enabled:g.edges.smooth,type:t};else{let A=g.edges.smooth;A.type!==void 0&&A.type!=="dynamic"&&(t=A.type),this.optionsBackup.edges={smooth:{enabled:A.enabled===void 0?!0:A.enabled,type:A.type===void 0?"dynamic":A.type,roundness:A.roundness===void 0?.5:A.roundness,forceDirection:A.forceDirection===void 0?!1:A.forceDirection}},g.edges.smooth={enabled:A.enabled===void 0?!0:A.enabled,type:t,roundness:A.roundness===void 0?.5:A.roundness,forceDirection:A.forceDirection===void 0?!1:A.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",t)}return g}positionInitially(g){if(this.options.hierarchical.enabled!==!0){this._resetRNG(this.initialRandomSeed);let e=g.length+50;for(let t=0;t<g.length;t++){let A=g[t],C=2*Math.PI*this._rng();A.x===void 0&&(A.x=e*Math.cos(C)),A.y===void 0&&(A.y=e*Math.sin(C))}}}layoutNetwork(){if(this.options.hierarchical.enabled!==!0&&this.options.improvedLayout===!0){let g=this.body.nodeIndices,e=0;for(let t=0;t<g.length;t++)this.body.nodes[g[t]].predefinedPosition===!0&&(e+=1);if(e<.5*g.length){let A=0,C=this.options.clusterThreshold,i={clusterNodeProperties:{shape:"ellipse",label:"",group:"",font:{multi:!1}},clusterEdgeProperties:{label:"",font:{multi:!1},smooth:{enabled:!1}}};if(g.length>C){let o=g.length;for(;g.length>C&&A<=10;){A+=1;let s=g.length;A%3===0?this.body.modules.clustering.clusterBridges(i):this.body.modules.clustering.clusterOutliers(i);let r=g.length;if(s==r&&A%3!==0){this._declusterAll(),this.body.emitter.emit("_layoutFailed"),console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*o)})}A>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(g,this.body.edgeIndices,!0),this._shiftToCenter();let n=70;for(let o=0;o<g.length;o++){let s=this.body.nodes[g[o]];s.predefinedPosition===!1&&(s.x+=(.5-this._rng())*n,s.y+=(.5-this._rng())*n)}this._declusterAll(),this.body.emitter.emit("_repositionBezierNodes")}}}_shiftToCenter(){let g=dg.getRangeCore(this.body.nodes,this.body.nodeIndices),e=dg.findCenter(g);for(let t=0;t<this.body.nodeIndices.length;t++){let A=this.body.nodes[this.body.nodeIndices[t]];A.x-=e.x,A.y-=e.y}}_declusterAll(){let g=!0;for(;g===!0;){g=!1;for(let e=0;e<this.body.nodeIndices.length;e++)this.body.nodes[this.body.nodeIndices[e]].isCluster===!0&&(g=!0,this.body.modules.clustering.openCluster(this.body.nodeIndices[e],{},!1));g===!0&&this.body.emitter.emit("_dataChanged")}}getSeed(){return this.initialRandomSeed}setupHierarchicalLayout(){if(this.options.hierarchical.enabled===!0&&this.body.nodeIndices.length>0){let g,e,t=!1,A=!1;this.lastNodeOnLevel={},this.hierarchical=new Gn;for(e in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,e)&&(g=this.body.nodes[e],g.options.level!==void 0?(t=!0,this.hierarchical.levels[e]=g.options.level):A=!0);if(A===!0&&t===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");{if(A===!0){let i=this.options.hierarchical.sortMethod;i==="hubsize"?this._determineLevelsByHubsize():i==="directed"?this._determineLevelsDirected():i==="custom"&&this._determineLevelsCustomCallback()}for(let i in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,i)&&this.hierarchical.ensureLevel(i);let C=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(C),this._condenseHierarchy(),this._shiftToCenter()}}}_condenseHierarchy(){var g=this;let e=!1,t={},A=()=>{let u=i(),m=0;for(let E=0;E<u.length-1;E++){let w=u[E].max-u[E+1].min;m+=w+this.options.hierarchical.treeSpacing,C(E+1,m)}},C=(u,m)=>{let E=this.hierarchical.trees;for(let w in E)Object.prototype.hasOwnProperty.call(E,w)&&E[w]===u&&this.direction.shift(w,m)},i=()=>{let u=[];for(let m=0;m<this.hierarchical.numTrees();m++)u.push(this.direction.getTreeSize(m));return u},n=(u,m)=>{if(!m[u.id]&&(m[u.id]=!0,this.hierarchical.childrenReference[u.id])){let E=this.hierarchical.childrenReference[u.id];if(E.length>0)for(let w=0;w<E.length;w++)n(this.body.nodes[E[w]],m)}},o=function(u){let m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e9,E=1e9,w=1e9,O=1e9,M=-1e9;for(let k in u)if(Object.prototype.hasOwnProperty.call(u,k)){let V=g.body.nodes[k],yg=g.hierarchical.levels[V.id],ug=g.direction.getPosition(V),[He,Qe]=g._getSpaceAroundNode(V,u);E=Math.min(He,E),w=Math.min(Qe,w),yg<=m&&(O=Math.min(ug,O),M=Math.max(ug,M))}return[O,M,E,w]},s=(u,m)=>{let E=this.hierarchical.getMaxLevel(u.id),w=this.hierarchical.getMaxLevel(m.id);return Math.min(E,w)},r=(u,m,E)=>{let w=this.hierarchical;for(let O=0;O<m.length;O++){let M=m[O],k=w.distributionOrdering[M];if(k.length>1)for(let V=0;V<k.length-1;V++){let yg=k[V],ug=k[V+1];w.hasSameParent(yg,ug)&&w.inSameSubNetwork(yg,ug)&&u(yg,ug,E)}}},a=function(u,m){let E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,w=g.direction.getPosition(u),O=g.direction.getPosition(m),M=Math.abs(O-w),k=g.options.hierarchical.nodeSpacing;if(M>k){let V={},yg={};n(u,V),n(m,yg);let ug=s(u,m),He=o(V,ug),Qe=o(yg,ug),MA=He[1],Xe=Qe[0],Cg=Qe[2];if(Math.abs(MA-Xe)>k){let W=MA-Xe+k;W<-Cg+k&&(W=-Cg+k),W<0&&(g._shiftBlock(m.id,W),e=!0,E===!0&&g._centerParent(m))}}},d=(u,m)=>{let E=m.id,w=m.edges,O=this.hierarchical.levels[m.id],M=this.options.hierarchical.levelSeparation*this.options.hierarchical.levelSeparation,k={},V=[];for(let Cg=0;Cg<w.length;Cg++){let j=w[Cg];if(j.toId!=j.fromId){let W=j.toId==E?j.from:j.to;k[w[Cg].id]=W,this.hierarchical.levels[W.id]<O&&V.push(j)}}let yg=(Cg,j)=>{let W=0;for(let hg=0;hg<j.length;hg++)if(k[j[hg].id]!==void 0){let fg=this.direction.getPosition(k[j[hg].id])-Cg;W+=fg/Math.sqrt(fg*fg+M)}return W},ug=(Cg,j)=>{let W=0;for(let hg=0;hg<j.length;hg++)if(k[j[hg].id]!==void 0){let fg=this.direction.getPosition(k[j[hg].id])-Cg;W-=M*Math.pow(fg*fg+M,-1.5)}return W},He=(Cg,j)=>{let W=this.direction.getPosition(m),hg={};for(let fg=0;fg<Cg;fg++){let Mg=yg(W,j),Je=ug(W,j),Ot=40,Lh=Math.max(-Ot,Math.min(Ot,Math.round(Mg/Je)));if(W=W-Lh,hg[W]!==void 0)break;hg[W]=fg}return W},Qe=Cg=>{let j=this.direction.getPosition(m);if(t[m.id]===void 0){let Ot={};n(m,Ot),t[m.id]=Ot}let W=o(t[m.id]),hg=W[2],fg=W[3],Mg=Cg-j,Je=0;Mg>0?Je=Math.min(Mg,fg-this.options.hierarchical.nodeSpacing):Mg<0&&(Je=-Math.min(-Mg,hg-this.options.hierarchical.nodeSpacing)),Je!=0&&(this._shiftBlock(m.id,Je),e=!0)},MA=Cg=>{let j=this.direction.getPosition(m),[W,hg]=this._getSpaceAroundNode(m),fg=Cg-j,Mg=j;fg>0?Mg=Math.min(j+(hg-this.options.hierarchical.nodeSpacing),Cg):fg<0&&(Mg=Math.max(j-(W-this.options.hierarchical.nodeSpacing),Cg)),Mg!==j&&(this.direction.setPosition(m,Mg),e=!0)},Xe=He(u,V);Qe(Xe),Xe=He(u,w),MA(Xe)},l=u=>{let m=this.hierarchical.getLevels();m=ze(m).call(m);for(let E=0;E<u;E++){e=!1;for(let w=0;w<m.length;w++){let O=m[w],M=this.hierarchical.distributionOrdering[O];for(let k=0;k<M.length;k++)d(1e3,M[k])}if(e!==!0)break}},h=u=>{let m=this.hierarchical.getLevels();m=ze(m).call(m);for(let E=0;E<u&&(e=!1,r(a,m,!0),e===!0);E++);},c=()=>{for(let u in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,u)&&this._centerParent(this.body.nodes[u])},p=()=>{let u=this.hierarchical.getLevels();u=ze(u).call(u);for(let m=0;m<u.length;m++){let E=u[m],w=this.hierarchical.distributionOrdering[E];for(let O=0;O<w.length;O++)this._centerParent(w[O])}};this.options.hierarchical.blockShifting===!0&&(h(5),c()),this.options.hierarchical.edgeMinimization===!0&&l(20),this.options.hierarchical.parentCentralization===!0&&p(),A()}_getSpaceAroundNode(g,e){let t=!0;e===void 0&&(t=!1);let A=this.hierarchical.levels[g.id];if(A!==void 0){let C=this.hierarchical.distributionIndex[g.id],i=this.direction.getPosition(g),n=this.hierarchical.distributionOrdering[A],o=1e9,s=1e9;if(C!==0){let r=n[C-1];if(t===!0&&e[r.id]===void 0||t===!1){let a=this.direction.getPosition(r);o=i-a}}if(C!=n.length-1){let r=n[C+1];if(t===!0&&e[r.id]===void 0||t===!1){let a=this.direction.getPosition(r);s=Math.min(s,a-i)}}return[o,s]}else return[0,0]}_centerParent(g){if(this.hierarchical.parentReference[g.id]){let e=this.hierarchical.parentReference[g.id];for(let t=0;t<e.length;t++){let A=e[t],C=this.body.nodes[A],i=this.hierarchical.childrenReference[A];if(i!==void 0){let n=this._getCenterPosition(i),o=this.direction.getPosition(C),[s,r]=this._getSpaceAroundNode(C),a=o-n;(a<0&&Math.abs(a)<r-this.options.hierarchical.nodeSpacing||a>0&&Math.abs(a)<s-this.options.hierarchical.nodeSpacing)&&this.direction.setPosition(C,n)}}}}_placeNodesByHierarchy(g){this.positionedNodes={};for(let t in g)if(Object.prototype.hasOwnProperty.call(g,t)){var e;let A=U(g[t]);A=this._indexArrayToNodes(A),Ce(e=this.direction).call(e,A);let C=0;for(let i=0;i<A.length;i++){let n=A[i];if(this.positionedNodes[n.id]===void 0){let o=this.options.hierarchical.nodeSpacing,s=o*C;C>0&&(s=this.direction.getPosition(A[i-1])+o),this.direction.setPosition(n,s,t),this._validatePositionAndContinue(n,t,s),C++}}}}_placeBranchNodes(g,e){var t;let A=this.hierarchical.childrenReference[g];if(A===void 0)return;let C=[];for(let n=0;n<A.length;n++)C.push(this.body.nodes[A[n]]);Ce(t=this.direction).call(t,C);for(let n=0;n<C.length;n++){let o=C[n],s=this.hierarchical.levels[o.id];if(s>e&&this.positionedNodes[o.id]===void 0){let r=this.options.hierarchical.nodeSpacing,a;n===0?a=this.direction.getPosition(this.body.nodes[g]):a=this.direction.getPosition(C[n-1])+r,this.direction.setPosition(o,a,s),this._validatePositionAndContinue(o,s,a)}else return}let i=this._getCenterPosition(C);this.direction.setPosition(this.body.nodes[g],i,e)}_validatePositionAndContinue(g,e,t){if(this.hierarchical.isTree){if(this.lastNodeOnLevel[e]!==void 0){let A=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(t-A<this.options.hierarchical.nodeSpacing){let C=A+this.options.hierarchical.nodeSpacing-t,i=this._findCommonParent(this.lastNodeOnLevel[e],g.id);this._shiftBlock(i.withChild,C)}}this.lastNodeOnLevel[e]=g.id,this.positionedNodes[g.id]=!0,this._placeBranchNodes(g.id,e)}}_indexArrayToNodes(g){let e=[];for(let t=0;t<g.length;t++)e.push(this.body.nodes[g[t]]);return e}_getDistribution(){let g={},e,t;for(e in this.body.nodes)if(Object.prototype.hasOwnProperty.call(this.body.nodes,e)){t=this.body.nodes[e];let A=this.hierarchical.levels[e]===void 0?0:this.hierarchical.levels[e];this.direction.fix(t,A),g[A]===void 0&&(g[A]={}),g[A][e]=t}return g}_getActiveEdges(g){let e=[];return S(g.edges,t=>{var A;G(A=this.body.edgeIndices).call(A,t.id)!==-1&&e.push(t)}),e}_getHubSizes(){let g={},e=this.body.nodeIndices;S(e,A=>{let C=this.body.nodes[A],i=this._getActiveEdges(C).length;g[i]=!0});let t=[];return S(g,A=>{t.push(Number(A))}),Ce(t).call(t,function(A,C){return C-A}),t}_determineLevelsByHubsize(){let g=(t,A)=>{this.hierarchical.levelDownstream(t,A)},e=this._getHubSizes();for(let t=0;t<e.length;++t){let A=e[t];if(A===0)break;S(this.body.nodeIndices,C=>{let i=this.body.nodes[C];A===this._getActiveEdges(i).length&&this._crawlNetwork(g,C)})}}_determineLevelsCustomCallback(){let e=function(A,C,i){},t=(A,C,i)=>{let n=this.hierarchical.levels[A.id];n===void 0&&(n=this.hierarchical.levels[A.id]=1e5);let o=e(dg.cloneOptions(A,"node"),dg.cloneOptions(C,"node"),dg.cloneOptions(i,"edge"));this.hierarchical.levels[C.id]=n+o};this._crawlNetwork(t),this.hierarchical.setMinLevelToZero()}_determineLevelsDirected(){var g;let e=Do(g=this.body.nodeIndices).call(g,(t,A)=>(t.set(A,this.body.nodes[A]),t),new RA);this.options.hierarchical.shakeTowards==="roots"?this.hierarchical.levels=kM(e):this.hierarchical.levels=SM(e),this.hierarchical.setMinLevelToZero()}_generateMap(){let g=(e,t)=>{this.hierarchical.levels[t.id]>this.hierarchical.levels[e.id]&&this.hierarchical.addRelation(e.id,t.id)};this._crawlNetwork(g),this.hierarchical.checkIfTree()}_crawlNetwork(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){},e=arguments.length>1?arguments[1]:void 0,t={},A=(C,i)=>{if(t[C.id]===void 0){this.hierarchical.setTreeIndex(C,i),t[C.id]=!0;let n,o=this._getActiveEdges(C);for(let s=0;s<o.length;s++){let r=o[s];r.connected===!0&&(r.toId==C.id?n=r.from:n=r.to,C.id!=n.id&&(g(C,n,r),A(n,i)))}}};if(e===void 0){let C=0;for(let i=0;i<this.body.nodeIndices.length;i++){let n=this.body.nodeIndices[i];if(t[n]===void 0){let o=this.body.nodes[n];A(o,C),C+=1}}}else{let C=this.body.nodes[e];if(C===void 0){console.error("Node not found:",e);return}A(C)}}_shiftBlock(g,e){let t={},A=C=>{if(t[C])return;t[C]=!0,this.direction.shift(C,e);let i=this.hierarchical.childrenReference[C];if(i!==void 0)for(let n=0;n<i.length;n++)A(i[n])};A(g)}_findCommonParent(g,e){let t={},A=(i,n)=>{let o=this.hierarchical.parentReference[n];if(o!==void 0)for(let s=0;s<o.length;s++){let r=o[s];i[r]=!0,A(i,r)}},C=(i,n)=>{let o=this.hierarchical.parentReference[n];if(o!==void 0)for(let s=0;s<o.length;s++){let r=o[s];if(i[r]!==void 0)return{foundParent:r,withChild:n};let a=C(i,r);if(a.foundParent!==null)return a}return{foundParent:null,withChild:n}};return A(t,g),C(t,e)}setDirectionStrategy(){this.options.hierarchical.direction==="UD"||this.options.hierarchical.direction==="DU"?this.direction=new Zn(this):this.direction=new Ln(this)}_getCenterPosition(g){let e=1e9,t=-1e9;for(let A=0;A<g.length;A++){let C;if(g[A].id!==void 0)C=g[A];else{let n=g[A];C=this.body.nodes[n]}let i=this.direction.getPosition(C);e=Math.min(e,i),t=Math.max(t,i)}return .5*(e+t)}},MM=`div.vis-network div.vis-manipulation {
715
+ box-sizing: content-box;
716
+
717
+ border-width: 0;
718
+ border-bottom: 1px;
719
+ border-style: solid;
720
+ border-color: #d6d9d8;
721
+ background: #ffffff; /* Old browsers */
722
+ background: -moz-linear-gradient(
723
+ top,
724
+ #ffffff 0%,
725
+ #fcfcfc 48%,
726
+ #fafafa 50%,
727
+ #fcfcfc 100%
728
+ ); /* FF3.6+ */
729
+ background: -webkit-gradient(
730
+ linear,
731
+ left top,
732
+ left bottom,
733
+ color-stop(0%, #ffffff),
734
+ color-stop(48%, #fcfcfc),
735
+ color-stop(50%, #fafafa),
736
+ color-stop(100%, #fcfcfc)
737
+ ); /* Chrome,Safari4+ */
738
+ background: -webkit-linear-gradient(
739
+ top,
740
+ #ffffff 0%,
741
+ #fcfcfc 48%,
742
+ #fafafa 50%,
743
+ #fcfcfc 100%
744
+ ); /* Chrome10+,Safari5.1+ */
745
+ background: -o-linear-gradient(
746
+ top,
747
+ #ffffff 0%,
748
+ #fcfcfc 48%,
749
+ #fafafa 50%,
750
+ #fcfcfc 100%
751
+ ); /* Opera 11.10+ */
752
+ background: -ms-linear-gradient(
753
+ top,
754
+ #ffffff 0%,
755
+ #fcfcfc 48%,
756
+ #fafafa 50%,
757
+ #fcfcfc 100%
758
+ ); /* IE10+ */
759
+ background: linear-gradient(
760
+ to bottom,
761
+ #ffffff 0%,
762
+ #fcfcfc 48%,
763
+ #fafafa 50%,
764
+ #fcfcfc 100%
765
+ ); /* W3C */
766
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc',GradientType=0 ); /* IE6-9 */
767
+
768
+ padding-top: 4px;
769
+ position: absolute;
770
+ left: 0;
771
+ top: 0;
772
+ width: 100%;
773
+ height: 28px;
774
+ }
775
+
776
+ div.vis-network div.vis-edit-mode,
777
+ div.vis-network button.vis-edit-mode {
778
+ position: absolute;
779
+ left: 0;
780
+ top: 5px;
781
+ height: 30px;
782
+ }
783
+
784
+ /* FIXME: shouldn't the vis-close button be a child of the vis-manipulation div? */
785
+
786
+ div.vis-network button.vis-close {
787
+ position: absolute;
788
+ right: 0;
789
+ top: 0;
790
+ width: 30px;
791
+ height: 30px;
792
+
793
+ background-color: transparent;
794
+ background-position: 20px 3px;
795
+ background-repeat: no-repeat;
796
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC');
797
+ border: none;
798
+ cursor: pointer;
799
+ -webkit-touch-callout: none;
800
+ -webkit-user-select: none;
801
+ -khtml-user-select: none;
802
+ -moz-user-select: none;
803
+ -ms-user-select: none;
804
+ user-select: none;
805
+ }
806
+
807
+ div.vis-network button.vis-close:hover {
808
+ opacity: 0.6;
809
+ }
810
+
811
+ div.vis-network div.vis-manipulation button.vis-button,
812
+ div.vis-network div.vis-edit-mode button.vis-button {
813
+ float: left;
814
+ font-family: verdana;
815
+ font-size: 12px;
816
+ border: none;
817
+ box-sizing: content-box;
818
+ -moz-border-radius: 15px;
819
+ border-radius: 15px;
820
+ background-color: transparent;
821
+ background-position: 0px 0px;
822
+ background-repeat: no-repeat;
823
+ height: 24px;
824
+ margin-left: 10px;
825
+ cursor: pointer;
826
+ padding: 0px 8px 0px 8px;
827
+ -webkit-touch-callout: none;
828
+ -webkit-user-select: none;
829
+ -khtml-user-select: none;
830
+ -moz-user-select: none;
831
+ -ms-user-select: none;
832
+ user-select: none;
833
+ }
834
+
835
+ div.vis-network div.vis-manipulation button.vis-button:hover {
836
+ box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.2);
837
+ }
838
+
839
+ div.vis-network div.vis-manipulation button.vis-button:active {
840
+ box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.5);
841
+ }
842
+
843
+ div.vis-network div.vis-manipulation button.vis-button.vis-back {
844
+ background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC');
845
+ }
846
+
847
+ div.vis-network div.vis-manipulation div.vis-none:hover {
848
+ box-shadow: 1px 1px 8px rgba(0, 0, 0, 0);
849
+ cursor: default;
850
+ }
851
+ div.vis-network div.vis-manipulation div.vis-none:active {
852
+ box-shadow: 1px 1px 8px rgba(0, 0, 0, 0);
853
+ }
854
+ div.vis-network div.vis-manipulation div.vis-none {
855
+ padding: 0px;
856
+ line-height: 23px;
857
+ }
858
+ div.vis-network div.vis-manipulation div.notification {
859
+ margin: 2px;
860
+ font-weight: bold;
861
+ }
862
+
863
+ div.vis-network div.vis-manipulation button.vis-button.vis-add {
864
+ background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg==');
865
+ }
866
+
867
+ div.vis-network div.vis-manipulation button.vis-button.vis-edit,
868
+ div.vis-network div.vis-edit-mode button.vis-button.vis-edit {
869
+ background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg==');
870
+ }
871
+
872
+ div.vis-network div.vis-edit-mode button.vis-button.vis-edit.vis-edit-mode {
873
+ background-color: #fcfcfc;
874
+ border: 1px solid #cccccc;
875
+ }
876
+
877
+ div.vis-network div.vis-manipulation button.vis-button.vis-connect {
878
+ background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg==');
879
+ }
880
+
881
+ div.vis-network div.vis-manipulation button.vis-button.vis-delete {
882
+ background-image: url('data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII=');
883
+ }
884
+ /* top right bottom left */
885
+ div.vis-network div.vis-manipulation div.vis-label,
886
+ div.vis-network div.vis-edit-mode div.vis-label {
887
+ margin: 0 0 0 23px;
888
+ line-height: 25px;
889
+ }
890
+ div.vis-network div.vis-manipulation div.vis-separator-line {
891
+ float: left;
892
+ display: inline-block;
893
+ width: 1px;
894
+ height: 21px;
895
+ background-color: #bdbdbd;
896
+ margin: 0px 7px 0 15px; /*top right bottom left*/
897
+ }
898
+
899
+ /* TODO: is this redundant?
900
+ div.network-navigation_wrapper {
901
+ position: absolute;
902
+ left: 0;
903
+ top: 0;
904
+ width: 100%;
905
+ height: 100%;
906
+ }
907
+ */
908
+ `;_e(MM);var jn=class{constructor(g,e,t,A){var C,i;this.body=g,this.canvas=e,this.selectionHandler=t,this.interactionHandler=A,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this._domEventListenerCleanupQueue=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},q(this.options,this.defaultOptions),this.body.emitter.on("destroy",()=>{this._clean()}),this.body.emitter.on("_dataChanged",b(C=this._restore).call(C,this)),this.body.emitter.on("_resetData",b(i=this._restore).call(i,this))}_restore(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}setOptions(g,e,t){e!==void 0&&(e.locale!==void 0?this.options.locale=e.locale:this.options.locale=t.locale,e.locales!==void 0?this.options.locales=e.locales:this.options.locales=t.locales),g!==void 0&&(typeof g=="boolean"?this.options.enabled=g:(this.options.enabled=!0,_(this.options,g)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}toggleEditMode(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}enableEditMode(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}disableEditMode(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}showManipulatorToolbar(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){var g,e;this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";let t=this.selectionHandler.getSelectedNodeCount(),A=this.selectionHandler.getSelectedEdgeCount(),C=t+A,i=this.options.locales[this.options.locale],n=!1;this.options.addNode!==!1&&(this._createAddNodeButton(i),n=!0),this.options.addEdge!==!1&&(n===!0?this._createSeperator(1):n=!0,this._createAddEdgeButton(i)),t===1&&typeof this.options.editNode=="function"?(n===!0?this._createSeperator(2):n=!0,this._createEditNodeButton(i)):A===1&&t===0&&this.options.editEdge!==!1&&(n===!0?this._createSeperator(3):n=!0,this._createEditEdgeButton(i)),C!==0&&(t>0&&this.options.deleteNode!==!1?(n===!0&&this._createSeperator(4),this._createDeleteButton(i)):t===0&&this.options.deleteEdge!==!1&&(n===!0&&this._createSeperator(4),this._createDeleteButton(i))),this._bindElementEvents(this.closeDiv,b(g=this.toggleEditMode).call(g,this)),this._temporaryBindEvent("select",b(e=this.showManipulatorToolbar).call(e,this))}this.body.emitter.emit("_redraw")}addNodeMode(){var g;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var e;let t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,b(e=this.toggleEditMode).call(e,this))}this._temporaryBindEvent("click",b(g=this._performAddNode).call(g,this))}editNode(){this.editMode!==!0&&this.enableEditMode(),this._clean();let g=this.selectionHandler.getSelectedNodes()[0];if(g!==void 0)if(this.inMode="editNode",typeof this.options.editNode=="function")if(g.isCluster!==!0){let e=_({},g.options,!1);if(e.x=g.x,e.y=g.y,this.options.editNode.length===2)this.options.editNode(e,t=>{t!=null&&this.inMode==="editNode"&&this.body.data.nodes.getDataSet().update(t),this.showManipulatorToolbar()});else throw new Error("The function for edit does not support two arguments (data, callback)")}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError);else throw new Error("No function has been configured to handle the editing of nodes.");else this.showManipulatorToolbar()}addEdgeMode(){var g,e,t,A,C;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var i;let n=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(n),this._createSeperator(),this._createDescription(n.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,b(i=this.toggleEditMode).call(i,this))}this._temporaryBindUI("onTouch",b(g=this._handleConnect).call(g,this)),this._temporaryBindUI("onDragEnd",b(e=this._finishConnect).call(e,this)),this._temporaryBindUI("onDrag",b(t=this._dragControlNode).call(t,this)),this._temporaryBindUI("onRelease",b(A=this._finishConnect).call(A,this)),this._temporaryBindUI("onDragStart",b(C=this._dragStartEdge).call(C,this)),this._temporaryBindUI("onHold",()=>{})}editEdgeMode(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",typeof this.options.editEdge=="object"&&typeof this.options.editEdge.editWithoutDrag=="function"&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0)){let i=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(i.from.id,i.to.id);return}if(this.guiEnabled===!0){var g;let i=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(i),this._createSeperator(),this._createDescription(i.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,b(g=this.toggleEditMode).call(g,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0){var e,t,A,C;let i=this.body.edges[this.edgeBeingEditedId],n=this._getNewTargetNode(i.from.x,i.from.y),o=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(n.id),this.temporaryIds.nodes.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this._temporaryBindUI("onTouch",b(e=this._controlNodeTouch).call(e,this)),this._temporaryBindUI("onTap",()=>{}),this._temporaryBindUI("onHold",()=>{}),this._temporaryBindUI("onDragStart",b(t=this._controlNodeDragStart).call(t,this)),this._temporaryBindUI("onDrag",b(A=this._controlNodeDrag).call(A,this)),this._temporaryBindUI("onDragEnd",b(C=this._controlNodeDragEnd).call(C,this)),this._temporaryBindUI("onMouseMove",()=>{}),this._temporaryBindEvent("beforeDrawing",s=>{let r=i.edgeType.findBorderPositions(s);n.selected===!1&&(n.x=r.from.x,n.y=r.from.y),o.selected===!1&&(o.x=r.to.x,o.y=r.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}deleteSelected(){this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";let g=this.selectionHandler.getSelectedNodeIds(),e=this.selectionHandler.getSelectedEdgeIds(),t;if(g.length>0){for(let A=0;A<g.length;A++)if(this.body.nodes[g[A]].isCluster===!0){alert(this.options.locales[this.options.locale].deleteClusterError||this.options.locales.en.deleteClusterError);return}typeof this.options.deleteNode=="function"&&(t=this.options.deleteNode)}else e.length>0&&typeof this.options.deleteEdge=="function"&&(t=this.options.deleteEdge);if(typeof t=="function"){let A={nodes:g,edges:e};if(t.length===2)t(A,C=>{C!=null&&this.inMode==="delete"?(this.body.data.edges.getDataSet().remove(C.edges),this.body.data.nodes.getDataSet().remove(C.nodes),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()):(this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar())});else throw new Error("The function for delete does not support two arguments (data, callback)")}else this.body.data.edges.getDataSet().remove(e),this.body.data.nodes.getDataSet().remove(g),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}_setup(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}_createWrappers(){if(this.manipulationDiv===void 0&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),this.editModeDiv===void 0&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),this.closeDiv===void 0){var g,e;this.closeDiv=document.createElement("button"),this.closeDiv.className="vis-close",this.closeDiv.setAttribute("aria-label",(g=(e=this.options.locales[this.options.locale])===null||e===void 0?void 0:e.close)!==null&&g!==void 0?g:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv)}}_getNewTargetNode(g,e){let t=_({},this.options.controlNodeStyle);t.id="targetNode"+st(),t.hidden=!1,t.physics=!1,t.x=g,t.y=e;let A=this.body.functions.createNode(t);return A.shape.boundingBox={left:g,right:g,top:e,bottom:e},A}_createEditButton(){var g;this._clean(),this.manipulationDOM={},ue(this.editModeDiv);let e=this.options.locales[this.options.locale],t=this._createButton("editMode","vis-edit vis-edit-mode",e.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(t),this._bindElementEvents(t,b(g=this.toggleEditMode).call(g,this))}_clean(){this.inMode=!1,this.guiEnabled===!0&&(ue(this.editModeDiv),ue(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}_cleanupDOMEventListeners(){for(let e of Ug(g=this._domEventListenerCleanupQueue).call(g,0)){var g;e()}}_removeManipulationDOM(){this._clean(),ue(this.manipulationDiv),ue(this.editModeDiv),ue(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}_createSeperator(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+g]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+g].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+g])}_createAddNodeButton(g){var e;let t=this._createButton("addNode","vis-add",g.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,b(e=this.addNodeMode).call(e,this))}_createAddEdgeButton(g){var e;let t=this._createButton("addEdge","vis-connect",g.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,b(e=this.addEdgeMode).call(e,this))}_createEditNodeButton(g){var e;let t=this._createButton("editNode","vis-edit",g.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,b(e=this.editNode).call(e,this))}_createEditEdgeButton(g){var e;let t=this._createButton("editEdge","vis-edit",g.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,b(e=this.editEdgeMode).call(e,this))}_createDeleteButton(g){var e;let t;this.options.rtl?t="vis-delete-rtl":t="vis-delete";let A=this._createButton("delete",t,g.del||this.options.locales.en.del);this.manipulationDiv.appendChild(A),this._bindElementEvents(A,b(e=this.deleteSelected).call(e,this))}_createBackButton(g){var e;let t=this._createButton("back","vis-back",g.back||this.options.locales.en.back);this.manipulationDiv.appendChild(t),this._bindElementEvents(t,b(e=this.showManipulatorToolbar).call(e,this))}_createButton(g,e,t){let A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"vis-label";return this.manipulationDOM[g+"Div"]=document.createElement("button"),this.manipulationDOM[g+"Div"].className="vis-button "+e,this.manipulationDOM[g+"Label"]=document.createElement("div"),this.manipulationDOM[g+"Label"].className=A,this.manipulationDOM[g+"Label"].innerText=t,this.manipulationDOM[g+"Div"].appendChild(this.manipulationDOM[g+"Label"]),this.manipulationDOM[g+"Div"]}_createDescription(g){this.manipulationDOM.descriptionLabel=document.createElement("div"),this.manipulationDOM.descriptionLabel.className="vis-none",this.manipulationDOM.descriptionLabel.innerText=g,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}_temporaryBindEvent(g,e){this.temporaryEventFunctions.push({event:g,boundFunction:e}),this.body.emitter.on(g,e)}_temporaryBindUI(g,e){if(this.body.eventListeners[g]!==void 0)this.temporaryUIFunctions[g]=this.body.eventListeners[g],this.body.eventListeners[g]=e;else throw new Error("This UI function does not exist. Typo? You tried: "+g+" possible are: "+Et(U(this.body.eventListeners)))}_unbindTemporaryUIs(){for(let g in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,g)&&(this.body.eventListeners[g]=this.temporaryUIFunctions[g],delete this.temporaryUIFunctions[g]);this.temporaryUIFunctions={}}_unbindTemporaryEvents(){for(let g=0;g<this.temporaryEventFunctions.length;g++){let e=this.temporaryEventFunctions[g].event,t=this.temporaryEventFunctions[g].boundFunction;this.body.emitter.off(e,t)}this.temporaryEventFunctions=[]}_bindElementEvents(g,e){let t=new ot(g,{});ZI(t,e),this._domEventListenerCleanupQueue.push(()=>{t.destroy()});let A=C=>{let{keyCode:i,key:n}=C;(n==="Enter"||n===" "||i===13||i===32)&&e()};g.addEventListener("keyup",A,!1),this._domEventListenerCleanupQueue.push(()=>{g.removeEventListener("keyup",A,!1)})}_cleanupTemporaryNodesAndEdges(){for(let C=0;C<this.temporaryIds.edges.length;C++){var g;this.body.edges[this.temporaryIds.edges[C]].disconnect(),delete this.body.edges[this.temporaryIds.edges[C]];let i=G(g=this.body.edgeIndices).call(g,this.temporaryIds.edges[C]);if(i!==-1){var e;Ug(e=this.body.edgeIndices).call(e,i,1)}}for(let C=0;C<this.temporaryIds.nodes.length;C++){var t;delete this.body.nodes[this.temporaryIds.nodes[C]];let i=G(t=this.body.nodeIndices).call(t,this.temporaryIds.nodes[C]);if(i!==-1){var A;Ug(A=this.body.nodeIndices).call(A,i,1)}}this.temporaryIds={nodes:[],edges:[]}}_controlNodeTouch(g){this.selectionHandler.unselectAll(),this.lastTouch=this.body.functions.getPointer(g.center),this.lastTouch.translation=q({},this.body.view.translation)}_controlNodeDragStart(){let g=this.lastTouch,e=this.selectionHandler._pointerToPositionObject(g),t=this.body.nodes[this.temporaryIds.nodes[0]],A=this.body.nodes[this.temporaryIds.nodes[1]],C=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=void 0;let i=t.isOverlappingWith(e),n=A.isOverlappingWith(e);i===!0?(this.selectedControlNode=t,C.edgeType.from=t):n===!0&&(this.selectedControlNode=A,C.edgeType.to=A),this.selectedControlNode!==void 0&&this.selectionHandler.selectObject(this.selectedControlNode),this.body.emitter.emit("_redraw")}_controlNodeDrag(g){this.body.emitter.emit("disablePhysics");let e=this.body.functions.getPointer(g.center),t=this.canvas.DOMtoCanvas(e);this.selectedControlNode!==void 0?(this.selectedControlNode.x=t.x,this.selectedControlNode.y=t.y):this.interactionHandler.onDrag(g),this.body.emitter.emit("_redraw")}_controlNodeDragEnd(g){let e=this.body.functions.getPointer(g.center),t=this.selectionHandler._pointerToPositionObject(e),A=this.body.edges[this.edgeBeingEditedId];if(this.selectedControlNode===void 0)return;this.selectionHandler.unselectAll();let C=this.selectionHandler._getAllNodesOverlappingWith(t),i;for(let n=C.length-1;n>=0;n--)if(C[n]!==this.selectedControlNode.id){i=this.body.nodes[C[n]];break}if(i!==void 0&&this.selectedControlNode!==void 0)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{let n=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===n.id?this._performEditEdge(i.id,A.to.id):this._performEditEdge(A.from.id,i.id)}else A.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}_handleConnect(g){if(new Date().valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(g.center),this.lastTouch.translation=q({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;let e=this.lastTouch,t=this.selectionHandler.getNodeAt(e);if(t!==void 0)if(t.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{let A=this._getNewTargetNode(t.x,t.y);this.body.nodes[A.id]=A,this.body.nodeIndices.push(A.id);let C=this.body.functions.createEdge({id:"connectionEdge"+st(),from:t.id,to:A.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[C.id]=C,this.body.edgeIndices.push(C.id),this.temporaryIds.nodes.push(A.id),this.temporaryIds.edges.push(C.id)}this.touchTime=new Date().valueOf()}}_dragControlNode(g){let e=this.body.functions.getPointer(g.center),t=this.selectionHandler._pointerToPositionObject(e),A;this.temporaryIds.edges[0]!==void 0&&(A=this.body.edges[this.temporaryIds.edges[0]].fromId);let C=this.selectionHandler._getAllNodesOverlappingWith(t),i;for(let o=C.length-1;o>=0;o--){var n;if(G(n=this.temporaryIds.nodes).call(n,C[o])===-1){i=this.body.nodes[C[o]];break}}if(g.controlEdge={from:A,to:i?i.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragging",g,e),this.temporaryIds.nodes[0]!==void 0){let o=this.body.nodes[this.temporaryIds.nodes[0]];o.x=this.canvas._XconvertDOMtoCanvas(e.x),o.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else this.interactionHandler.onDrag(g)}_finishConnect(g){let e=this.body.functions.getPointer(g.center),t=this.selectionHandler._pointerToPositionObject(e),A;this.temporaryIds.edges[0]!==void 0&&(A=this.body.edges[this.temporaryIds.edges[0]].fromId);let C=this.selectionHandler._getAllNodesOverlappingWith(t),i;for(let o=C.length-1;o>=0;o--){var n;if(G(n=this.temporaryIds.nodes).call(n,C[o])===-1){i=this.body.nodes[C[o]];break}}this._cleanupTemporaryNodesAndEdges(),i!==void 0&&(i.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):this.body.nodes[A]!==void 0&&this.body.nodes[i.id]!==void 0&&this._performAddEdge(A,i.id)),g.controlEdge={from:A,to:i?i.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragEnd",g,e),this.body.emitter.emit("_redraw")}_dragStartEdge(g){let e=this.lastTouch;this.selectionHandler.generateClickEvent("dragStart",g,e,void 0,!0)}_performAddNode(g){let e={id:st(),x:g.pointer.canvas.x,y:g.pointer.canvas.y,label:"new"};if(typeof this.options.addNode=="function")if(this.options.addNode.length===2)this.options.addNode(e,t=>{t!=null&&this.inMode==="addNode"&&this.body.data.nodes.getDataSet().add(t),this.showManipulatorToolbar()});else throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");else this.body.data.nodes.getDataSet().add(e),this.showManipulatorToolbar()}_performAddEdge(g,e){let t={from:g,to:e};if(typeof this.options.addEdge=="function")if(this.options.addEdge.length===2)this.options.addEdge(t,A=>{A!=null&&this.inMode==="addEdge"&&(this.body.data.edges.getDataSet().add(A),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for connect does not support two arguments (data,callback)");else this.body.data.edges.getDataSet().add(t),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}_performEditEdge(g,e){let t={id:this.edgeBeingEditedId,from:g,to:e,label:this.body.data.edges.get(this.edgeBeingEditedId).label},A=this.options.editEdge;if(typeof A=="object"&&(A=A.editWithoutDrag),typeof A=="function")if(A.length===2)A(t,C=>{C==null||this.inMode!=="editEdge"?(this.body.edges[t.id].updateEdgeType(),this.body.emitter.emit("_redraw"),this.showManipulatorToolbar()):(this.body.data.edges.getDataSet().update(C),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for edit does not support two arguments (data, callback)");else this.body.data.edges.getDataSet().update(t),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},y="string",v="boolean",f="number",zt="array",x="object",zh="dom",FM="any",li=["arrow","bar","box","circle","crow","curve","diamond","image","inv_curve","inv_triangle","triangle","vee"],hi={borderWidth:{number:f},borderWidthSelected:{number:f,undefined:"undefined"},brokenImage:{string:y,undefined:"undefined"},chosen:{label:{boolean:v,function:"function"},node:{boolean:v,function:"function"},__type__:{object:x,boolean:v}},color:{border:{string:y},background:{string:y},highlight:{border:{string:y},background:{string:y},__type__:{object:x,string:y}},hover:{border:{string:y},background:{string:y},__type__:{object:x,string:y}},__type__:{object:x,string:y}},opacity:{number:f,undefined:"undefined"},fixed:{x:{boolean:v},y:{boolean:v},__type__:{object:x,boolean:v}},font:{align:{string:y},color:{string:y},size:{number:f},face:{string:y},background:{string:y},strokeWidth:{number:f},strokeColor:{string:y},vadjust:{number:f},multi:{boolean:v,string:y},bold:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},boldital:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},ital:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},mono:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},__type__:{object:x,string:y}},group:{string:y,number:f,undefined:"undefined"},heightConstraint:{minimum:{number:f},valign:{string:y},__type__:{object:x,boolean:v,number:f}},hidden:{boolean:v},icon:{face:{string:y},code:{string:y},size:{number:f},color:{string:y},weight:{string:y,number:f},__type__:{object:x}},id:{string:y,number:f},image:{selected:{string:y,undefined:"undefined"},unselected:{string:y,undefined:"undefined"},__type__:{object:x,string:y}},imagePadding:{top:{number:f},right:{number:f},bottom:{number:f},left:{number:f},__type__:{object:x,number:f}},label:{string:y,undefined:"undefined"},labelHighlightBold:{boolean:v},level:{number:f,undefined:"undefined"},margin:{top:{number:f},right:{number:f},bottom:{number:f},left:{number:f},__type__:{object:x,number:f}},mass:{number:f},physics:{boolean:v},scaling:{min:{number:f},max:{number:f},label:{enabled:{boolean:v},min:{number:f},max:{number:f},maxVisible:{number:f},drawThreshold:{number:f},__type__:{object:x,boolean:v}},customScalingFunction:{function:"function"},__type__:{object:x}},shadow:{enabled:{boolean:v},color:{string:y},size:{number:f},x:{number:f},y:{number:f},__type__:{object:x,boolean:v}},shape:{string:["custom","ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon","hexagon"]},ctxRenderer:{function:"function"},shapeProperties:{borderDashes:{boolean:v,array:zt},borderRadius:{number:f},interpolation:{boolean:v},useImageSize:{boolean:v},useBorderWithImage:{boolean:v},coordinateOrigin:{string:["center","top-left"]},__type__:{object:x}},size:{number:f},title:{string:y,dom:zh,undefined:"undefined"},value:{number:f,undefined:"undefined"},widthConstraint:{minimum:{number:f},maximum:{number:f},__type__:{object:x,boolean:v,number:f}},x:{number:f},y:{number:f},__type__:{object:x}},BM={configure:{enabled:{boolean:v},filter:{boolean:v,string:y,array:zt,function:"function"},container:{dom:zh},showButton:{boolean:v},__type__:{object:x,boolean:v,string:y,array:zt,function:"function"}},edges:{arrows:{to:{enabled:{boolean:v},scaleFactor:{number:f},type:{string:li},imageHeight:{number:f},imageWidth:{number:f},src:{string:y},__type__:{object:x,boolean:v}},middle:{enabled:{boolean:v},scaleFactor:{number:f},type:{string:li},imageWidth:{number:f},imageHeight:{number:f},src:{string:y},__type__:{object:x,boolean:v}},from:{enabled:{boolean:v},scaleFactor:{number:f},type:{string:li},imageWidth:{number:f},imageHeight:{number:f},src:{string:y},__type__:{object:x,boolean:v}},__type__:{string:["from","to","middle"],object:x}},endPointOffset:{from:{number:f},to:{number:f},__type__:{object:x,number:f}},arrowStrikethrough:{boolean:v},background:{enabled:{boolean:v},color:{string:y},size:{number:f},dashes:{boolean:v,array:zt},__type__:{object:x,boolean:v}},chosen:{label:{boolean:v,function:"function"},edge:{boolean:v,function:"function"},__type__:{object:x,boolean:v}},color:{color:{string:y},highlight:{string:y},hover:{string:y},inherit:{string:["from","to","both"],boolean:v},opacity:{number:f},__type__:{object:x,string:y}},dashes:{boolean:v,array:zt},font:{color:{string:y},size:{number:f},face:{string:y},background:{string:y},strokeWidth:{number:f},strokeColor:{string:y},align:{string:["horizontal","top","middle","bottom"]},vadjust:{number:f},multi:{boolean:v,string:y},bold:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},boldital:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},ital:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},mono:{color:{string:y},size:{number:f},face:{string:y},mod:{string:y},vadjust:{number:f},__type__:{object:x,string:y}},__type__:{object:x,string:y}},hidden:{boolean:v},hoverWidth:{function:"function",number:f},label:{string:y,undefined:"undefined"},labelHighlightBold:{boolean:v},length:{number:f,undefined:"undefined"},physics:{boolean:v},scaling:{min:{number:f},max:{number:f},label:{enabled:{boolean:v},min:{number:f},max:{number:f},maxVisible:{number:f},drawThreshold:{number:f},__type__:{object:x,boolean:v}},customScalingFunction:{function:"function"},__type__:{object:x}},selectionWidth:{function:"function",number:f},selfReferenceSize:{number:f},selfReference:{size:{number:f},angle:{number:f},renderBehindTheNode:{boolean:v},__type__:{object:x}},shadow:{enabled:{boolean:v},color:{string:y},size:{number:f},x:{number:f},y:{number:f},__type__:{object:x,boolean:v}},smooth:{enabled:{boolean:v},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:f},forceDirection:{string:["horizontal","vertical","none"],boolean:v},__type__:{object:x,boolean:v}},title:{string:y,undefined:"undefined"},width:{number:f},widthConstraint:{maximum:{number:f},__type__:{object:x,boolean:v,number:f}},value:{number:f,undefined:"undefined"},__type__:{object:x}},groups:{useDefaultGroups:{boolean:v},__any__:hi,__type__:{object:x}},interaction:{dragNodes:{boolean:v},dragView:{boolean:v},hideEdgesOnDrag:{boolean:v},hideEdgesOnZoom:{boolean:v},hideNodesOnDrag:{boolean:v},hover:{boolean:v},keyboard:{enabled:{boolean:v},speed:{x:{number:f},y:{number:f},zoom:{number:f},__type__:{object:x}},bindToWindow:{boolean:v},autoFocus:{boolean:v},__type__:{object:x,boolean:v}},multiselect:{boolean:v},navigationButtons:{boolean:v},selectable:{boolean:v},selectConnectedEdges:{boolean:v},hoverConnectedEdges:{boolean:v},tooltipDelay:{number:f},zoomView:{boolean:v},zoomSpeed:{number:f},__type__:{object:x}},layout:{randomSeed:{undefined:"undefined",number:f,string:y},improvedLayout:{boolean:v},clusterThreshold:{number:f},hierarchical:{enabled:{boolean:v},levelSeparation:{number:f},nodeSpacing:{number:f},treeSpacing:{number:f},blockShifting:{boolean:v},edgeMinimization:{boolean:v},parentCentralization:{boolean:v},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},shakeTowards:{string:["leaves","roots"]},__type__:{object:x,boolean:v}},__type__:{object:x}},manipulation:{enabled:{boolean:v},initiallyActive:{boolean:v},addNode:{boolean:v,function:"function"},addEdge:{boolean:v,function:"function"},editNode:{function:"function"},editEdge:{editWithoutDrag:{function:"function"},__type__:{object:x,boolean:v,function:"function"}},deleteNode:{boolean:v,function:"function"},deleteEdge:{boolean:v,function:"function"},controlNodeStyle:hi,__type__:{object:x,boolean:v}},nodes:hi,physics:{enabled:{boolean:v},barnesHut:{theta:{number:f},gravitationalConstant:{number:f},centralGravity:{number:f},springLength:{number:f},springConstant:{number:f},damping:{number:f},avoidOverlap:{number:f},__type__:{object:x}},forceAtlas2Based:{theta:{number:f},gravitationalConstant:{number:f},centralGravity:{number:f},springLength:{number:f},springConstant:{number:f},damping:{number:f},avoidOverlap:{number:f},__type__:{object:x}},repulsion:{centralGravity:{number:f},springLength:{number:f},springConstant:{number:f},nodeDistance:{number:f},damping:{number:f},__type__:{object:x}},hierarchicalRepulsion:{centralGravity:{number:f},springLength:{number:f},springConstant:{number:f},nodeDistance:{number:f},damping:{number:f},avoidOverlap:{number:f},__type__:{object:x}},maxVelocity:{number:f},minVelocity:{number:f},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{boolean:v},iterations:{number:f},updateInterval:{number:f},onlyDynamicEdges:{boolean:v},fit:{boolean:v},__type__:{object:x,boolean:v}},timestep:{number:f},adaptiveTimestep:{boolean:v},wind:{x:{number:f},y:{number:f},__type__:{object:x}},__type__:{object:x,boolean:v}},autoResize:{boolean:v},clickToUse:{boolean:v},locale:{string:y},locales:{__any__:{any:FM},__type__:{object:x}},height:{string:y},width:{string:y},__type__:{object:x}},Zh={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown","hexagon"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"],shakeTowards:["leaves","roots"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},zM=(I,g,e)=>{var t;return!!(ye(I).call(I,"physics")&&ye(t=Zh.physics.solver).call(t,g)&&e.physics.solver!==g&&g!=="wind")};var Wn=class{constructor(){}getDistances(g,e,t){let A={},C=g.edges;for(let n=0;n<e.length;n++){let o=e[n],s={};A[o]=s;for(let r=0;r<e.length;r++)s[e[r]]=n==r?0:1e9}for(let n=0;n<t.length;n++){let o=C[t[n]];o.connected===!0&&A[o.fromId]!==void 0&&A[o.toId]!==void 0&&(A[o.fromId][o.toId]=1,A[o.toId][o.fromId]=1)}let i=e.length;for(let n=0;n<i;n++){let o=e[n],s=A[o];for(let r=0;r<i-1;r++){let a=e[r],d=A[a];for(let l=r+1;l<i;l++){let h=e[l],c=A[h],p=Math.min(d[h],d[o]+s[h]);d[h]=p,c[a]=p}}}return A}},Yn=class{constructor(g,e,t){this.body=g,this.springLength=e,this.springConstant=t,this.distanceSolver=new Wn}setOptions(g){g&&(g.springLength&&(this.springLength=g.springLength),g.springConstant&&(this.springConstant=g.springConstant))}solve(g,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,A=this.distanceSolver.getDistances(this.body,g,e);this._createL_matrix(A),this._createK_matrix(A),this._createE_matrix();let C=.01,i=1,n=0,o=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),s=5,r=1e9,a=0,d=0,l=0,h=0,c=0;for(;r>C&&n<o;)for(n+=1,[a,r,d,l]=this._getHighestEnergyNode(t),h=r,c=0;h>i&&c<s;)c+=1,this._moveNode(a,d,l),[h,d,l]=this._getEnergy(a)}_getHighestEnergyNode(g){let e=this.body.nodeIndices,t=this.body.nodes,A=0,C=e[0],i=0,n=0;for(let o=0;o<e.length;o++){let s=e[o];if(t[s].predefinedPosition!==!0||t[s].isCluster===!0&&g===!0||t[s].options.fixed.x!==!0||t[s].options.fixed.y!==!0){let[r,a,d]=this._getEnergy(s);A<r&&(A=r,C=s,i=a,n=d)}}return[C,A,i,n]}_getEnergy(g){let[e,t]=this.E_sums[g];return[Math.sqrt(e**2+t**2),e,t]}_moveNode(g,e,t){let A=this.body.nodeIndices,C=this.body.nodes,i=0,n=0,o=0,s=C[g].x,r=C[g].y,a=this.K_matrix[g],d=this.L_matrix[g];for(let w=0;w<A.length;w++){let O=A[w];if(O!==g){let M=C[O].x,k=C[O].y,V=a[O],yg=d[O],ug=1/((s-M)**2+(r-k)**2)**1.5;i+=V*(1-yg*(r-k)**2*ug),n+=V*(yg*(s-M)*(r-k)*ug),o+=V*(1-yg*(s-M)**2*ug)}}let l=i,h=n,c=e,p=o,u=t,m=(c/l+u/h)/(h/l-p/h),E=-(h*m+c)/l;C[g].x+=E,C[g].y+=m,this._updateE_matrix(g)}_createL_matrix(g){let e=this.body.nodeIndices,t=this.springLength;this.L_matrix=[];for(let A=0;A<e.length;A++){this.L_matrix[e[A]]={};for(let C=0;C<e.length;C++)this.L_matrix[e[A]][e[C]]=t*g[e[A]][e[C]]}}_createK_matrix(g){let e=this.body.nodeIndices,t=this.springConstant;this.K_matrix=[];for(let A=0;A<e.length;A++){this.K_matrix[e[A]]={};for(let C=0;C<e.length;C++)this.K_matrix[e[A]][e[C]]=t*g[e[A]][e[C]]**-2}}_createE_matrix(){let g=this.body.nodeIndices,e=this.body.nodes;this.E_matrix={},this.E_sums={};for(let t=0;t<g.length;t++)this.E_matrix[g[t]]=[];for(let t=0;t<g.length;t++){let A=g[t],C=e[A].x,i=e[A].y,n=0,o=0;for(let s=t;s<g.length;s++){let r=g[s];if(r!==A){let a=e[r].x,d=e[r].y,l=1/Math.sqrt((C-a)**2+(i-d)**2);this.E_matrix[A][s]=[this.K_matrix[A][r]*(C-a-this.L_matrix[A][r]*(C-a)*l),this.K_matrix[A][r]*(i-d-this.L_matrix[A][r]*(i-d)*l)],this.E_matrix[r][t]=this.E_matrix[A][s],n+=this.E_matrix[A][s][0],o+=this.E_matrix[A][s][1]}}this.E_sums[A]=[n,o]}}_updateE_matrix(g){let e=this.body.nodeIndices,t=this.body.nodes,A=this.E_matrix[g],C=this.K_matrix[g],i=this.L_matrix[g],n=t[g].x,o=t[g].y,s=0,r=0;for(let a=0;a<e.length;a++){let d=e[a];if(d!==g){let l=A[a],h=l[0],c=l[1],p=t[d].x,u=t[d].y,m=1/Math.sqrt((n-p)**2+(o-u)**2),E=C[d]*(n-p-i[d]*(n-p)*m),w=C[d]*(o-u-i[d]*(o-u)*m);A[a]=[E,w],s+=E,r+=w;let O=this.E_sums[d];O[0]+=E-h,O[1]+=w-c}}this.E_sums[g]=[s,r]}};function T(I,g,e){var t,A,C,i;if(!(this instanceof T))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:b1,clickToUse:!1},q(this.options,this.defaultOptions),this.body={container:I,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:b(t=this.on).call(t,this),off:b(A=this.off).call(A,this),emit:b(C=this.emit).call(C,this),once:b(i=this.once).call(i,this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}},selectionBox:{show:!1,position:{start:{x:0,y:0},end:{x:0,y:0}}}},this.bindEventListeners(),this.images=new ji(()=>this.body.emitter.emit("_requestRedraw")),this.groups=new Wi,this.canvas=new Nn(this.body),this.selectionHandler=new zn(this.body,this.canvas),this.interactionHandler=new Mn(this.body,this.canvas,this.selectionHandler),this.view=new Sn(this.body,this.canvas),this.renderer=new Rn(this.body,this.canvas),this.physics=new On(this.body),this.layoutEngine=new Vn(this.body),this.clustering=new Dn(this.body),this.manipulation=new jn(this.body,this.canvas,this.selectionHandler,this.interactionHandler),this.nodesHandler=new on(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new bn(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new Yn(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(e),this.setData(g)}$a(T.prototype);T.prototype.setOptions=function(I){if(I===null&&(I=void 0),I!==void 0){if($O.validate(I,BM)===!0&&console.error("%cErrors have been found in the supplied options object.",Gl),xt(["locale","locales","clickToUse"],this.options,I),I.locale!==void 0&&(I.locale=y1(I.locales||this.options.locales,I.locale)),I=this.layoutEngine.setOptions(I.layout,I),this.canvas.setOptions(I),this.groups.setOptions(I.groups),this.nodesHandler.setOptions(I.nodes),this.edgesHandler.setOptions(I.edges),this.physics.setOptions(I.physics),this.manipulation.setOptions(I.manipulation,I,this.options),this.interactionHandler.setOptions(I.interaction),this.renderer.setOptions(I.interaction),this.selectionHandler.setOptions(I.interaction),I.groups!==void 0&&this.body.emitter.emit("refreshNodes"),"configure"in I&&(this.configurator||(this.configurator=new XO(this,this.body.container,Zh,this.canvas.pixelRatio,zM)),this.configurator.setOptions(I.configure)),this.configurator&&this.configurator.options.enabled===!0){let t={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};_(t.nodes,this.nodesHandler.options),_(t.edges,this.edgesHandler.options),_(t.layout,this.layoutEngine.options),_(t.interaction,this.selectionHandler.options),_(t.interaction,this.renderer.options),_(t.interaction,this.interactionHandler.options),_(t.manipulation,this.manipulation.options),_(t.physics,this.physics.options),_(t.global,this.canvas.options),_(t.global,this.options),this.configurator.setModuleOptions(t)}I.clickToUse!==void 0?I.clickToUse===!0?this.activator===void 0&&(this.activator=new QO(this.canvas.frame),this.activator.on("change",()=>{this.body.emitter.emit("activate")})):(this.activator!==void 0&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}};T.prototype._updateVisibleIndices=function(){let I=this.body.nodes,g=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(let e in I)Object.prototype.hasOwnProperty.call(I,e)&&!this.clustering._isClusteredNode(e)&&I[e].options.hidden===!1&&this.body.nodeIndices.push(I[e].id);for(let e in g)if(Object.prototype.hasOwnProperty.call(g,e)){let t=g[e],A=I[t.fromId],C=I[t.toId],i=A!==void 0&&C!==void 0;!this.clustering._isClusteredEdge(e)&&t.options.hidden===!1&&i&&A.options.hidden===!1&&C.options.hidden===!1&&this.body.edgeIndices.push(t.id)}};T.prototype.bindEventListeners=function(){this.body.emitter.on("_dataChanged",()=>{this.edgesHandler._updateState(),this.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",()=>{this.clustering._updateState(),this._updateVisibleIndices(),this._updateValueRange(this.body.nodes),this._updateValueRange(this.body.edges),this.body.emitter.emit("startSimulation"),this.body.emitter.emit("_requestRedraw")})};T.prototype.setData=function(I){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),I&&I.dot&&(I.nodes||I.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(I&&I.options),I&&I.dot){console.warn("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");let g=o1(I.dot);this.setData(g);return}else if(I&&I.gephi){console.warn("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");let g=s1(I.gephi);this.setData(g);return}else this.nodesHandler.setData(I&&I.nodes,!0),this.edgesHandler.setData(I&&I.edges,!0);this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")};T.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(let I in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,I)&&delete this.body.nodes[I];for(let I in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,I)&&delete this.body.edges[I];ue(this.body.container)};T.prototype._updateValueRange=function(I){let g,e,t,A=0;for(g in I)if(Object.prototype.hasOwnProperty.call(I,g)){let C=I[g].getValue();C!==void 0&&(e=e===void 0?C:Math.min(C,e),t=t===void 0?C:Math.max(C,t),A+=C)}if(e!==void 0&&t!==void 0)for(g in I)Object.prototype.hasOwnProperty.call(I,g)&&I[g].setValueRange(e,t,A)};T.prototype.isActive=function(){return!this.activator||this.activator.active};T.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)};T.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)};T.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)};T.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)};T.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)};T.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)};T.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)};T.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)};T.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)};T.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)};T.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)};T.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)};T.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)};T.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)};T.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)};T.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)};T.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)};T.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)};T.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)};T.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)};T.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)};T.prototype.editNodeMode=function(){return console.warn("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)};T.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)};T.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)};T.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)};T.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)};T.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)};T.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)};T.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)};T.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)};T.prototype.getConnectedNodes=function(I){return this.body.nodes[I]!==void 0?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)};T.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)};T.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)};T.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)};T.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)};T.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)};T.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)};T.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)};T.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)};T.prototype.getNodeAt=function(){let I=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return I!==void 0&&I.id!==void 0?I.id:I};T.prototype.getEdgeAt=function(){let I=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return I!==void 0&&I.id!==void 0?I.id:I};T.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)};T.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)};T.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()};T.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)};T.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)};T.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)};T.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)};T.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)};T.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)};T.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)};T.prototype.getOptionsFromConfigurator=function(){let I={};return this.configurator&&(I=this.configurator.getOptions.apply(this.configurator)),I};function ZM(){return{Network:T,DataSet:Pe}}var So=class{constructor(g){this.yasr=g,this.network=null}static get priority(){return 20}static get label(){return"Graph"}canHandleResults(){if(!this.yasr||!this.yasr.results)return!1;let g=this.yasr.results;if(g.getBindings&&typeof g.getBindings=="function"){let e=g.getBindings();if(e&&e.length>0){let t=e[0];return t.subject!==void 0&&t.predicate!==void 0&&t.object!==void 0}}return!1}draw(){this.yasr.resultsEl.innerHTML="";try{let g=Bo(this.yasr.results);if(!g||g.length===0){this.yasr.resultsEl.innerHTML='<div style="padding: 20px; text-align: center; color: #666;">No graph data to visualize</div>';return}let e=Mo(this.yasr),{nodes:t,edges:A}=zo(g,e),C=document.createElement("div");C.style.width="100%",C.style.height="600px",C.style.position="relative",C.style.overflow="hidden",this.yasr.resultsEl.appendChild(C);let{Network:i,DataSet:n}=ZM(),o=new n(t),s=new n(A),r=Fo();this.network=new i(C,{nodes:o,edges:s},r),this.networkReady=!1,this.network.on("stabilizationIterationsDone",()=>{this.network.setOptions({physics:{enabled:!0}}),this.networkReady=!0});let a=document.createElement("div");a.style.position="absolute",a.style.top="10px",a.style.right="10px",a.style.zIndex="10000",a.style.display="flex",a.style.gap="10px",a.style.pointerEvents="auto",C.appendChild(a);let d=document.createElement("button");d.textContent="Zoom to Fit",d.style.padding="8px 12px",d.style.background="#4CAF50",d.style.color="white",d.style.border="none",d.style.borderRadius="4px",d.style.cursor="pointer",d.style.fontSize="14px",d.style.boxShadow="0 2px 4px rgba(0,0,0,0.2)",d.onmouseover=()=>d.style.background="#45a049",d.onmouseout=()=>d.style.background="#4CAF50",d.onclick=()=>{this.network&&this.network.fit({animation:{duration:300,easingFunction:"easeInOutQuad"}})},a.appendChild(d),g.length>1e3&&console.warn("Large graph detected (>1000 triples). Rendering may be slow.")}catch(g){console.error("Error rendering graph:",g),this.yasr.resultsEl.innerHTML='<div style="padding: 20px; color: red;">Error rendering graph. See console for details.</div>'}}getIcon(){let g=document.createElement("span");return g.className="fas fa-project-diagram",g.setAttribute("aria-label","Graph visualization"),g}},ko=So;typeof window!="undefined"&&window.Yasgui&&window.Yasgui.Yasr&&window.Yasgui.Yasr.registerPlugin("Graph",ko);var LM=ko;return _h(GM);})();
909
+ /*! Bundled license information:
910
+
911
+ vis-network/standalone/esm/vis-network.js:
912
+ (**
913
+ * vis-network
914
+ * https://visjs.github.io/vis-network/
915
+ *
916
+ * A dynamic, browser-based visualization library.
917
+ *
918
+ * @version 9.1.13
919
+ * @date 2025-06-28T12:43:17.849Z
920
+ *
921
+ * @copyright (c) 2011-2017 Almende B.V, http://almende.com
922
+ * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
923
+ *
924
+ * @license
925
+ * vis.js is dual licensed under both
926
+ *
927
+ * 1. The Apache 2.0 License
928
+ * http://www.apache.org/licenses/LICENSE-2.0
929
+ *
930
+ * and
931
+ *
932
+ * 2. The MIT License
933
+ * http://opensource.org/licenses/MIT
934
+ *
935
+ * vis.js may be distributed under either license.
936
+ *)
937
+ (*! Hammer.JS - v2.0.17-rc - 2019-12-16
938
+ * http://naver.github.io/egjs
939
+ *
940
+ * Forked By Naver egjs
941
+ * Copyright (c) hammerjs
942
+ * Licensed under the MIT license *)
943
+ */
2
944
  //# sourceMappingURL=yasgui-graph-plugin.min.js.map