2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								( function ( dA , b0 ) { typeof  exports == "object" && typeof  module < "u" ? module . exports = b0 ( ) : typeof  define == "function" && define . amd ? define ( b0 ) : ( dA = typeof  globalThis < "u" ? globalThis : dA || self , dA . mermaid = b0 ( ) ) } ) ( this , function ( ) { "use strict" ; function  dA ( i ) { for ( var  a = [ ] , f = 1 ; f < arguments . length ; f ++ ) a [ f - 1 ] = arguments [ f ] ; var  p = Array . from ( typeof  i == "string" ? [ i ] : i ) ; p [ p . length - 1 ] = p [ p . length - 1 ] . replace ( /\r?\n([\t ]*)$/ , "" ) ; var  v = p . reduce ( function ( E , C ) { var  D = C . match ( /\n([\t ]+|(?!\s).)/g ) ; return  D ? E . concat ( D . map ( function ( P ) { var  B , j ; return ( j = ( B = P . match ( /[\t ]/g ) ) === null || B === void  0 ? void  0 : B . length ) !== null && j !== void  0 ? j : 0 } ) ) : E } , [ ] ) ; if ( v . length ) { var  m = new  RegExp ( ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								[ 	 ] { ` +Math.min.apply(Math,v)+"}","g");p=p.map(function(E){return E.replace(m, `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )})}p[0]=p[0].replace(/^ \r ? \n /,"");var b=p[0];return a.forEach(function(E,C){var D=b.match(/(?:^| \n )( *) $ /),P=D?D[1]:"",B=E;typeof E=="string"&&E.includes( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )&&(B=String(E).split( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ).map(function(j,R){return R===0?j:""+P+j}).join( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )),b+=B+p[C+1]}),b}var b0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function B9(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var sLt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(b0,function(){var f=1e3,p=6e4,v=36e5,m="millisecond",b="second",E="minute",C="hour",D="day",P="week",B="month",j="quarter",R="year",H="date",Y="Invalid Date",it=/^( \d {4})[-/]?( \d {1,2})?[-/]?( \d {0,2})[Tt \s ]*( \d {1,2})?:?( \d {1,2})?:?( \d {1,2})?[.:]?( \d +)? $ /,nt=/ \[ ([^ \] ]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,st={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(_t){var X=["th","st","nd","rd"],Rt=_t%100;return"["+_t+(X[(Rt-20)%10]||X[Rt]||X[0])+"]"}},pt=function(_t,X,Rt){var ft=String(_t);return!ft||ft.length>=X?_t:""+Array(X+1-ft.length).join(Rt)+_t},Tt={s:pt,z:function(_t){var X=-_t.utcOffset(),Rt=Math.abs(X),ft=Math.floor(Rt/60),de=Rt%60;return(X<=0?"+":"-")+pt(ft,2,"0")+":"+pt(de,2,"0")},m:function _t(X,Rt){if(X.date()<Rt.date())return-_t(Rt,X);var ft=12*(Rt.year()-X.year())+(Rt.month()-X.month()),de=X.clone().add(ft,B),J=Rt-de<0,ae=X.clone().add(ft+(J?-1:1),B);return+(-(ft+(Rt-de)/(J?de-ae:ae-de))||0)},a:function(_t){return _t<0?Math.ceil(_t)||0:Math.floor(_t)},p:function(_t){return{M:B,y:R,w:P,d:D,D:H,h:C,m:E,s:b,ms:m,Q:j}[_t]||String(_t||"").toLowerCase().replace(/s $ /,"")},u:function(_t){return _t===void 0}},kt="en",yt={};yt[kt]=st;var ht=function(_t){return _t instanceof gt},mt=function _t(X,Rt,ft){var de;if(!X)return kt;if(typeof X=="string"){var J=X.toLowerCase();yt[J]&&(de=J),Rt&&(yt[J]=Rt,de=J);var ae=X.split("-");if(!de&&ae.length>1)return _t(ae[0])}else{var Wt=X.name;yt[Wt]=X,de=Wt}return!ft&&de&&(kt=de),de||!ft&&kt},rt=function(_t,X){if(ht(_t))return _t.clone();var Rt=typeof X=="object"?X:{};return Rt.date=_t,Rt.args=arguments,new gt(Rt)},wt=Tt;wt.l=mt,wt.i=ht,wt.w=function(_t,X){return rt(_t,{locale:X. $ L,utc:X. $ u,x:X. $ x, $ offset:X. $ offset})};var gt=function(){function _t(Rt){this. $ L=mt(Rt.locale,null,!0),this.parse(Rt)}var X=_t.prototype;return X.parse=function(Rt){this. $ d=function(ft){var de=ft.date,J=ft.utc;if(de===null)return new Date(NaN);if(wt.u(de))return new Date;if(de instanceof Date)return new Date(de);if(typeof de=="string"&&!/Z $ /i.test(de)){var ae=de.match(it);if(ae){var Wt=ae[2]-1||0,It=(ae[7]||"0").substring(0,3);return J?new Date(Date.UTC(ae[1],Wt,ae[3]||1,ae[4]||0,ae[5]||0,ae[6]||0,It)):new Date(ae[1],Wt,ae[3]||1,ae[4]||0,ae[5]||0,ae[6]||0,It)}}return new Date(de)}(Rt),this. $ x=Rt.x||{},this.init()},X.init=function(){var Rt=this. $ d;this. $ y=Rt.getFullYear(),this. $ M=Rt.getMonth(),this. $ D=Rt.getDate(),this. $ W=Rt.getDay(),this. $ H=Rt.getHours(),this. $ m=Rt.getMinutes(),this. $ s=Rt.getSeconds(),this. $ ms=Rt.getMilliseconds()},X. $ utils=function(){return wt},X.isValid=function(){return this. $ d.toString()!==Y},X.isSame=function(Rt,ft){var de=rt(Rt);return this.startOf(ft)<=de&&de<=this.endOf(ft)},X.isAfter=function(Rt,ft){return rt(Rt)<this.startOf(ft)},X.isBefore=function(Rt,ft){return this.endOf(ft)<rt(Rt)},X. $ g=function(Rt,ft,de){return wt.u(Rt)?this[ft]:this.set(de,Rt)},X.unix=function(){return Math.floor(this.valueOf()/1e3)},X.valueOf=function(){return this. $ d.getTime()},X.startOf=function(Rt,ft){var de=this,J=!!wt.u(ft)||ft,ae=wt.p(Rt),Wt=function(Te,ne){var Ee=wt.w(de. $ u?Date.UTC(de. $ y,ne,Te):new Date(de. $ y,ne,Te),de);return J?Ee:Ee.endOf(D)},It=function(Te,ne){return wt.w(de.toDate()[Te].apply(de.toDate("s"),(J?[0,0,0,0]:[23,59,59,999]).slice(ne)),de)},Nt=this. $ W,me=this. $ M,Ue=this. $ D,_n="set"+(this. $ u?"UTC":"");switch(ae){case R:return J?Wt(1,0):Wt(31,11);case B:return J?Wt(1,me):Wt(0,me+1);case P:var _e=this. $ locale().weekStart||0,rr=(Nt<_e?Nt+7:Nt)-_e;return Wt(J?Ue-rr:Ue+(6-rr),me);case D:case H:return It(_n+"Hours",0);case C:return It(_n+"Minutes",1);case E:return It(_n+"Seconds",2);case b:return It(_n+"
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +mo),Ee&&(mo=Kw(mo,gt," "),mo=Kw(mo,lt," "),mo=Kw(mo,_t," ")),pt&&jt?pt.createHTML(mo):mo},a.setConfig=function(Gi){qn(Gi),Vt=!0},a.clearConfig=function(){xi=null,Vt=!1},a.isValidAttribute=function(Gi,He,Er){xi||qn({});const ci=On(Gi),Xa=On(He);return gp(ci,Xa,Er)},a.addHook=function(Gi,He){typeof He=="function"&&(wt[Gi]=wt[Gi]||[],FN(wt[Gi],He))},a.removeHook=function(Gi){if(wt[Gi])return uDt(wt[Gi])},a.removeHooks=function(Gi){wt[Gi]&&(wt[Gi]=[])},a.removeAllHooks=function(){wt={}},a}var KU=vDt();const YU=/<br \s * \/ ?>/gi,B9e=i=>i?yDt(i).replace(/ \\ n/g,"#br#").split("#br#"):[""],wDt=i=>KU.sanitize(i),mDt=(i,a)=>{var f;if(((f=a.flowchart)==null?void 0:f.htmlLabels)!==!1){const p=a.securityLevel;p==="antiscript"||p==="strict"?i=wDt(i):p!=="loose"&&(i=yDt(i),i=i.replace(/</g,"<").replace(/>/g,">"),i=i.replace(/=/g,"="),i=z9e(i))}return i},sg=(i,a)=>i&&(a.dompurifyConfig?i=KU.sanitize(mDt(i,a),a.dompurifyConfig).toString():i=KU.sanitize(mDt(i,a),{FORBID_TAGS:["style"]}).toString(),i),R9e=(i,a)=>typeof i=="string"?sg(i,a):i.flat().map(f=>sg(f,a)),j9e=i=>YU.test(i), $ 9e=i=>i.split(YU),z9e=i=>i.replace(/#br#/g,"<br/>"),yDt=i=>i.replace(YU,"#br#"),q9e=i=>{let a="";return i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replaceAll(/ \( /g," \\ ("),a=a.replaceAll(/ \) /g," \\ )")),a},h1=i=>!(i===!1||["false","null","0"].includes(String(i).trim().toLowerCase())),H9e=function(...i){const a=i.filter(f=>!isNaN(f));return Math.max(...a)},V9e=function(...i){const a=i.filter(f=>!isNaN(f));return Math.min(...a)},RN=function(i){let a=i;if(i.split("~").length-1>=2){let f=a;do a=f,f=a.replace(/~([^ \s ,:;]+)~/,"< $ 1>");while(f!=a);return RN(f)}else return a},yi={getRows:B9e,sanitizeText:sg,sanitizeTextOrArray:R9e,hasBreaks:j9e,splitBreaks: $ 9e,lineBreakRegex:YU,removeScript:wDt,getUrl:q9e,evaluate:h1,getMax:H9e,getMin:V9e},XU={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:i=>i>=255?255:i<0?0:i,g:i=>i>=255?255:i<0?0:i,b:i=>i>=255?255:i<0?0:i,h:i=>i%360,s:i=>i>=100?100:i<0?0:i,l:i=>i>=100?100:i<0?0:i,a:i=>i>=1?1:i<0?0:i},toLinear:i=>{const a=i/255;return i>.03928?Math.pow((a+.055)/1.055,2.4):a/12.92},hue2rgb:(i,a,f)=>(f<0&&(f+=1),f>1&&(f-=1),f<1/6?i+(a-i)*6*f:f<1/2?a:f<2/3?i+(a-i)*(2/3-f)*6:i),hsl2rgb:({h:i,s:a,l:f},p)=>{if(!a)return f*2.55;i/=360,a/=100,f/=100;const v=f<.5?f*(1+a):f+a-f*a,m=2*f-v;switch(p){case"r":return XU.hue2rgb(m,v,i+1/3)*255;case"g":return XU.hue2rgb(m,v,i)*255;case"b":return XU.hue2rgb(m,v,i-1/3)*255}},rgb2hsl:({r:i,g:a,b:f},p)=>{i/=255,a/=255,f/=255;const v=Math.max(i,a,f),m=Math.min(i,a,f),b=(v+m)/2;if(p==="l")return b*100;if(v===m)return 0;const E=v-m,C=b>.5?E/(2-v-m):E/(v+m);if(p==="s")return C*100;switch(v){case i:return((a-f)/E+(a<f?6:0))*60;case a:return((f-i)/E+2)*60;case f:return((i-a)/E+4)*60;default:return-1}}},Sa={channel:XU,lang:{clamp:(i,a,f)=>a>f?Math.min(a,Math.max(f,i)):Math.min(f,Math.max(a,i)),round:i=>Math.round(i*1e10)/1e10},unit:{dec2hex:i=>{const a=Math.round(i).toString(16);return a.length>1?a: ` 0 $ { a } ` }}},Zx={};for(let i=0;i<=255;i++)Zx[i]=Sa.unit.dec2hex(i);const y0={ALL:0,RGB:1,HSL:2};class G9e{constructor(){this.type=y0.ALL}get(){return this.type}set(a){if(this.type&&this.type!==a)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=a}reset(){this.type=y0.ALL}is(a){return this.type===a}}const U9e=G9e;class W9e{constructor(a,f){this.color=f,this.changed=!1,this.data=a,this.type=new U9e}set(a,f){return this.color=f,this.changed=!1,this.data=a,this.type.type=y0.ALL,this}_ensureHSL(){const a=this.data,{h:f,s:p,l:v}=a;f===void 0&&(a.h=Sa.channel.rgb2hsl(a,"h")),p===void 0&&(a.s=Sa.channel.rgb2hsl(a,"s")),v===void 0&&(a.l=Sa.channel.rgb2hsl(a,"l"))}_ensureRGB(){const a=this.data,{r:f,g:p,b:v}=a;f===void 0&&(a.r=Sa.channel.hsl2rgb(a,"r")),p===void 0&&(a.g=Sa.channel.hsl2rgb(a,"g")),v===void 0&&(a.b=Sa.channel.hsl2rgb(a,"b"))}get r(){const a=this.data,f=a.r;return!this.type.is(y0.HSL)&&f!==void 0?f:(this._ensureHSL(),Sa.channel.hsl2rgb(a,"r"))}get g(){const a=this.data,f
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i.mark.snippet),p+" "+f):p}function  $ N(i,a){Error.call(this),this.name="YAMLException",this.reason=i,this.mark=a,this.message=LDt(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""} $ N.prototype=Object.create(Error.prototype), $ N.prototype.constructor= $ N, $ N.prototype.toString=function(a){return this.name+": "+LDt(this,a)};var m5= $ N;function D1t(i,a,f,p,v){var m="",b="",E=Math.floor(v/2)-1;return p-a>E&&(m=" ... ",a=p-E+m.length),f-p>E&&(b=" ...",f=p+E-b.length),{str:m+i.slice(a,f).replace(/ \t /g,"→")+b,pos:p-a+m.length}}function I1t(i,a){return og.repeat(" ",a-i.length)+i}function mEe(i,a){if(a=Object.create(a||null),!i.buffer)return null;a.maxLength||(a.maxLength=79),typeof a.indent!="number"&&(a.indent=1),typeof a.linesBefore!="number"&&(a.linesBefore=3),typeof a.linesAfter!="number"&&(a.linesAfter=2);for(var f=/ \r ? \n | \r | \0 /g,p=[0],v=[],m,b=-1;m=f.exec(i.buffer);)v.push(m.index),p.push(m.index+m[0].length),i.position<=m.index&&b<0&&(b=p.length-2);b<0&&(b=p.length-1);var E="",C,D,P=Math.min(i.line+a.linesAfter,v.length).toString().length,B=a.maxLength-(a.indent+P+3);for(C=1;C<=a.linesBefore&&!(b-C<0);C++)D=D1t(i.buffer,p[b-C],v[b-C],i.position-(p[b]-p[b-C]),B),E=og.repeat(" ",a.indent)+I1t((i.line-C+1).toString(),P)+" | "+D.str+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +E;for(D=D1t(i.buffer,p[b],v[b],i.position,B),E+=og.repeat(" ",a.indent)+I1t((i.line+1).toString(),P)+" | "+D.str+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,E+=og.repeat("-",a.indent+P+3+D.pos)+ ` ^  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,C=1;C<=a.linesAfter&&!(b+C>=v.length);C++)D=D1t(i.buffer,p[b+C],v[b+C],i.position-(p[b]-p[b+C]),B),E+=og.repeat(" ",a.indent)+I1t((i.line+C+1).toString(),P)+" | "+D.str+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;return E.replace(/ \n $ /,"")}var yEe=mEe,xEe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],kEe=["scalar","sequence","mapping"];function EEe(i){var a={};return i!==null&&Object.keys(i).forEach(function(f){i[f].forEach(function(p){a[String(p)]=f})}),a}function TEe(i,a){if(a=a||{},Object.keys(a).forEach(function(f){if(xEe.indexOf(f)===-1)throw new m5('Unknown option "'+f+'" is met in definition of "'+i+'" YAML type.')}),this.options=a,this.tag=i,this.kind=a.kind||null,this.resolve=a.resolve||function(){return!0},this.construct=a.construct||function(f){return f},this.instanceOf=a.instanceOf||null,this.predicate=a.predicate||null,this.represent=a.represent||null,this.representName=a.representName||null,this.defaultStyle=a.defaultStyle||null,this.multi=a.multi||!1,this.styleAliases=EEe(a.styleAliases||null),kEe.indexOf(this.kind)===-1)throw new m5('Unknown kind "'+this.kind+'" is specified for "'+i+'" YAML type.')}var x0=TEe;function MDt(i,a){var f=[];return i[a].forEach(function(p){var v=f.length;f.forEach(function(m,b){m.tag===p.tag&&m.kind===p.kind&&m.multi===p.multi&&(v=b)}),f[v]=p}),f}function _Ee(){var i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},a,f;function p(v){v.multi?(i.multi[v.kind].push(v),i.multi.fallback.push(v)):i[v.kind][v.tag]=i.fallback[v.tag]=v}for(a=0,f=arguments.length;a<f;a+=1)arguments[a].forEach(p);return i}function O1t(i){return this.extend(i)}O1t.prototype.extend=function(a){var f=[],p=[];if(a instanceof x0)p.push(a);else if(Array.isArray(a))p=p.concat(a);else if(a&&(Array.isArray(a.implicit)||Array.isArray(a.explicit)))a.implicit&&(f=f.concat(a.implicit)),a.explicit&&(p=p.concat(a.explicit));else throw new m5("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");f.forEach(function(m){if(!(m instanceof x0))throw new m5("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(m.loadKind&&m.loadKind!=="scalar")throw new m5("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(m.multi)throw new m5("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),p.forEach(function(m){if(!(m instanceof x0))throw new m5("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var v=Object.create(O1t.prototype);return v.implicit=(this.implicit||[]).concat(f),v.explicit=(this.explicit||[]).concat(p),v.compiledImplicit=MDt(v,"implicit"),v.compiledExplicit=MDt(v,"explicit"),v.compiledTypeMap=_Ee(v.compiledImplicit,v.compiledExplicit),v};var CEe=O1t,SEe=new x0("tag:yaml.org,2002:str",{kind:"scalar",construct:function(i){return i!==null?i:""}}),AEe=new x0("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(i){return i!==null?i:[]}}),LEe=new x0("tag:yaml.org,2002:map",{kind:"mapping",construct:function(i){return i!==null?i:{}}}),DDt=new CEe({explicit:[SEe,AEe,LEe]});function MEe(i){if(i===null)return!0;var a=i.length;return a===1&&i==="~"||a===4&&(i==="null"||i==="Null"||i==="NULL")}function DEe(){return null}function IEe(i){return i===null}var OEe=new x0("tag:yaml.org,2002:null",{kind:"scalar",resolve:MEe,construct:DEe,predicate:IEe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function NEe(i){if(i===null)return!1;var a=i.length;return a===4&&(i==="true"||i==="True"||i==="TRUE")||a===5&&(i==="false"||i==="False"||i==="FALSE")}function PEe(i){return i==="true"||i==="True"||i==="TRUE"}function FEe(i){return Object.prototype.toString.call(i)==="[object Boolean]"}var BEe=new x0("tag:yaml.org,2002:bool",{kind:"scalar",resolve:NEe,construct:PEe,predicate:FEe,represent:{lowercase:function(i){return i?"true":"false"},uppercase:function(i){return i?"TRUE":"FALSE"},camelcase:function(i){return i?"True":"F
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								\ r ` ;function aTe(i){if(i===null)return!1;var a,f,p=0,v=i.length,m=N1t;for(f=0;f<v;f++)if(a=m.indexOf(i.charAt(f)),!(a>64)){if(a<0)return!1;p+=6}return p%8===0}function oTe(i){var a,f,p=i.replace(/[ \r \n =]/g,""),v=p.length,m=N1t,b=0,E=[];for(a=0;a<v;a++)a%4===0&&a&&(E.push(b>>16&255),E.push(b>>8&255),E.push(b&255)),b=b<<6|m.indexOf(p.charAt(a));return f=v%4*6,f===0?(E.push(b>>16&255),E.push(b>>8&255),E.push(b&255)):f===18?(E.push(b>>10&255),E.push(b>>2&255)):f===12&&E.push(b>>4&255),new Uint8Array(E)}function cTe(i){var a="",f=0,p,v,m=i.length,b=N1t;for(p=0;p<m;p++)p%3===0&&p&&(a+=b[f>>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]),f=(f<<8)+i[p];return v=m%3,v===0?(a+=b[f>>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]):v===2?(a+=b[f>>10&63],a+=b[f>>4&63],a+=b[f<<2&63],a+=b[64]):v===1&&(a+=b[f>>2&63],a+=b[f<<4&63],a+=b[64],a+=b[64]),a}function uTe(i){return Object.prototype.toString.call(i)==="[object Uint8Array]"}var lTe=new x0("tag:yaml.org,2002:binary",{kind:"scalar",resolve:aTe,construct:oTe,predicate:uTe,represent:cTe}),hTe=Object.prototype.hasOwnProperty,fTe=Object.prototype.toString;function dTe(i){if(i===null)return!0;var a=[],f,p,v,m,b,E=i;for(f=0,p=E.length;f<p;f+=1){if(v=E[f],b=!1,fTe.call(v)!=="[object Object]")return!1;for(m in v)if(hTe.call(v,m))if(!b)b=!0;else return!1;if(!b)return!1;if(a.indexOf(m)===-1)a.push(m);else return!1}return!0}function gTe(i){return i!==null?i:[]}var pTe=new x0("tag:yaml.org,2002:omap",{kind:"sequence",resolve:dTe,construct:gTe}),bTe=Object.prototype.toString;function vTe(i){if(i===null)return!0;var a,f,p,v,m,b=i;for(m=new Array(b.length),a=0,f=b.length;a<f;a+=1){if(p=b[a],bTe.call(p)!=="[object Object]"||(v=Object.keys(p),v.length!==1))return!1;m[a]=[v[0],p[v[0]]]}return!0}function wTe(i){if(i===null)return[];var a,f,p,v,m,b=i;for(m=new Array(b.length),a=0,f=b.length;a<f;a+=1)p=b[a],v=Object.keys(p),m[a]=[v[0],p[v[0]]];return m}var mTe=new x0("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:vTe,construct:wTe}),yTe=Object.prototype.hasOwnProperty;function xTe(i){if(i===null)return!0;var a,f=i;for(a in f)if(yTe.call(f,a)&&f[a]!==null)return!1;return!0}function kTe(i){return i!==null?i:{}}var ETe=new x0("tag:yaml.org,2002:set",{kind:"mapping",resolve:xTe,construct:kTe}),TTe=JEe.extend({implicit:[rTe,sTe],explicit:[lTe,pTe,mTe,ETe]}),tk=Object.prototype.hasOwnProperty,iW=1,NDt=2,PDt=3,sW=4,P1t=1,_Te=2,FDt=3,CTe=/[ \x 00- \x 08 \x 0B \x 0C \x 0E- \x 1F \x 7F- \x 84 \x 86- \x 9F \u FFFE \u FFFF]|[ \u D800- \u DBFF](?![ \u DC00- \u DFFF])|(?:[^ \u D800- \u DBFF]|^)[ \u DC00- \u DFFF]/,STe=/[ \x 85 \u 2028 \u 2029]/,ATe=/[, \[ \] \{ \} ]/,BDt=/^(?:!|!!|![a-z \- ]+!) $ /i,RDt=/^(?:!|[^, \[ \] \{ \} ])(?:%[0-9a-f]{2}|[0-9a-z \- #; \/ \? :@&= \+ \$ ,_ \. !~ \* ' \( \) \[ \] ])* $ /i;function jDt(i){return Object.prototype.toString.call(i)}function c3(i){return i===10||i===13}function Z9(i){return i===9||i===32}function ip(i){return i===9||i===32||i===10||i===13}function MA(i){return i===44||i===91||i===93||i===123||i===125}function LTe(i){var a;return 48<=i&&i<=57?i-48:(a=i|32,97<=a&&a<=102?a-97+10:-1)}function MTe(i){return i===120?2:i===117?4:i===85?8:0}function DTe(i){return 48<=i&&i<=57?i-48:-1}function  $ Dt(i){return i===48?" \0 ":i===97?" \x 07":i===98?" \b ":i===116||i===9?"	":i===110? `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
										 
							
							
								` :i===118?" \v ":i===102?" \f ":i===114?" \r ":i===101?" \x 1B":i===32?" ":i===34?'"':i===47?"/":i===92?" \\ ":i===78?"
    \u 2028":i===80?" \u 2029":""}function ITe(i){return i<=65535?String.fromCharCode(i):String.fromCharCode((i-65536>>10)+55296,(i-65536&1023)+56320)}for(var zDt=new Array(256),qDt=new Array(256),DA=0;DA<256;DA++)zDt[DA]= $ Dt(DA)?1:0,qDt[DA]= $ Dt(DA);function OTe(i,a){this.input=i,this.filename=a.filename||null,this.schema=a.schema||TTe,this.onWarning=a.onWarning||null,this.legacy=a.legacy||!1,this.json=a.json||!1,this.listener=a.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=i.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function HDt(i,a){var f={name:i.filename,buffer:i.input.slice(0,-1),position:i.position,line:i.line,column:i.position-i.lineStart};return f.snippet=yEe(f),new m5(a,f)}function  $ s(i,a){throw HDt(i,a)}function aW(i,a){i.onWarning&&i.onWarning.call(null,HDt(i,a))}var VDt={YAML:function(a,f,p){var v,m,b;a.version!==null&& $ s(a,"duplication of %YAML directive"),p.length!==1&& $ s(a,"YAML directive accepts exactly one argument"),v=/^([0-9]+) \. ([0-9]+) $ /.exec(p[0]),v===null&& $ s(a,"ill-formed argument of the YAML directive"),m=parseInt(v[1],10),b=parseInt(v[2],10),m!==1&& $ s(a,"unacceptable YAML version of the document"),a.version=p[0],a.checkLineBreaks=b<2,b!==1&&b!==2&&aW(a,"unsupported YAML version of the document")},TAG:function(a,f,p){var v,m;p.length!==2&& $ s(a,"TAG directive accepts exactly two arguments"),v=p[0],m=p[1],BDt.test(v)|| $ s(a,"ill-formed tag handle (first argument) of the TAG directive"),tk.call(a.tagMap,v)&& $ s(a,'there is a previously declared suffix for "'+v+'" tag handle'),RDt.test(m)|| $ s(a,"ill-formed tag prefix (second argument) of the TAG directive");try{m=decodeURIComponent(m)}catch{ $ s(a,"tag prefix is malformed: "+m)}a.tagMap[v]=m}};function ek(i,a,f,p){var v,m,b,E;if(a<f){if(E=i.input.slice(a,f),p)for(v=0,m=E.length;v<m;v+=1)b=E.charCodeAt(v),b===9||32<=b&&b<=1114111|| $ s(i,"expected valid JSON character");else CTe.test(E)&& $ s(i,"the stream contains non-printable characters");i.result+=E}}function GDt(i,a,f,p){var v,m,b,E;for(og.isObject(f)|| $ s(i,"cannot merge mappings; the provided source object is unacceptable"),v=Object.keys(f),b=0,E=v.length;b<E;b+=1)m=v[b],tk.call(a,m)||(a[m]=f[m],p[m]=!0)}function IA(i,a,f,p,v,m,b,E,C){var D,P;if(Array.isArray(v))for(v=Array.prototype.slice.call(v),D=0,P=v.length;D<P;D+=1)Array.isArray(v[D])&& $ s(i,"nested arrays are not supported inside keys"),typeof v=="object"&&jDt(v[D])==="[object Object]"&&(v[D]="[object Object]");if(typeof v=="object"&&jDt(v)==="[object Object]"&&(v="[object Object]"),v=String(v),a===null&&(a={}),p==="tag:yaml.org,2002:merge")if(Array.isArray(m))for(D=0,P=m.length;D<P;D+=1)GDt(i,a,m[D],f);else GDt(i,a,m,f);else!i.json&&!tk.call(f,v)&&tk.call(a,v)&&(i.line=b||i.line,i.lineStart=E||i.lineStart,i.position=C||i.position, $ s(i,"duplicated mapping key")),v==="__proto__"?Object.defineProperty(a,v,{configurable:!0,enumerable:!0,writable:!0,value:m}):a[v]=m,delete f[v];return a}function F1t(i){var a;a=i.input.charCodeAt(i.position),a===10?i.position++:a===13?(i.position++,i.input.charCodeAt(i.position)===10&&i.position++): $ s(i,"a line break is expected"),i.line+=1,i.lineStart=i.position,i.firstTabInLine=-1}function Pf(i,a,f){for(var p=0,v=i.input.charCodeAt(i.position);v!==0;){for(;Z9(v);)v===9&&i.firstTabInLine===-1&&(i.firstTabInLine=i.position),v=i.input.charCodeAt(++i.position);if(a&&v===35)do v=i.input.charCodeAt(++i.position);while(v!==10&&v!==13&&v!==0);if(c3(v))for(F1t(i),v=i.input.charCodeAt(i.position),p++,i.lineIndent=0;v===32;)i.lineIndent++,v=i.input.charCodeAt(++i.position);else break}return f!==-1&&p!==0&&i.lineIndent<f&&aW(i,"deficient indentation"),p}function oW(i){var a=i.position,f;return f=i.input.charCodeAt(a),!!((f===45||f===46)&&f===i.input.charCodeAt(a+1)&&f===i.input.charCodeAt(a+2)&&(a+=3,f=i.input.charCodeAt(a),f===0||ip(f)))}function B1t(i,a){a===1?i.resu
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,a-1))}function NTe(i,a,f){var p,v,m,b,E,C,D,P,B=i.kind,j=i.result,R;if(R=i.input.charCodeAt(i.position),ip(R)||MA(R)||R===35||R===38||R===42||R===33||R===124||R===62||R===39||R===34||R===37||R===64||R===96||(R===63||R===45)&&(v=i.input.charCodeAt(i.position+1),ip(v)||f&&MA(v)))return!1;for(i.kind="scalar",i.result="",m=b=i.position,E=!1;R!==0;){if(R===58){if(v=i.input.charCodeAt(i.position+1),ip(v)||f&&MA(v))break}else if(R===35){if(p=i.input.charCodeAt(i.position-1),ip(p))break}else{if(i.position===i.lineStart&&oW(i)||f&&MA(R))break;if(c3(R))if(C=i.line,D=i.lineStart,P=i.lineIndent,Pf(i,!1,-1),i.lineIndent>=a){E=!0,R=i.input.charCodeAt(i.position);continue}else{i.position=b,i.line=C,i.lineStart=D,i.lineIndent=P;break}}E&&(ek(i,m,b,!1),B1t(i,i.line-C),m=b=i.position,E=!1),Z9(R)||(b=i.position+1),R=i.input.charCodeAt(++i.position)}return ek(i,m,b,!1),i.result?!0:(i.kind=B,i.result=j,!1)}function PTe(i,a){var f,p,v;if(f=i.input.charCodeAt(i.position),f!==39)return!1;for(i.kind="scalar",i.result="",i.position++,p=v=i.position;(f=i.input.charCodeAt(i.position))!==0;)if(f===39)if(ek(i,p,i.position,!0),f=i.input.charCodeAt(++i.position),f===39)p=i.position,i.position++,v=i.position;else return!0;else c3(f)?(ek(i,p,v,!0),B1t(i,Pf(i,!1,a)),p=v=i.position):i.position===i.lineStart&&oW(i)? $ s(i,"unexpected end of the document within a single quoted scalar"):(i.position++,v=i.position); $ s(i,"unexpected end of the stream within a single quoted scalar")}function FTe(i,a){var f,p,v,m,b,E;if(E=i.input.charCodeAt(i.position),E!==34)return!1;for(i.kind="scalar",i.result="",i.position++,f=p=i.position;(E=i.input.charCodeAt(i.position))!==0;){if(E===34)return ek(i,f,i.position,!0),i.position++,!0;if(E===92){if(ek(i,f,i.position,!0),E=i.input.charCodeAt(++i.position),c3(E))Pf(i,!1,a);else if(E<256&&zDt[E])i.result+=qDt[E],i.position++;else if((b=MTe(E))>0){for(v=b,m=0;v>0;v--)E=i.input.charCodeAt(++i.position),(b=LTe(E))>=0?m=(m<<4)+b: $ s(i,"expected hexadecimal character");i.result+=ITe(m),i.position++}else  $ s(i,"unknown escape sequence");f=p=i.position}else c3(E)?(ek(i,f,p,!0),B1t(i,Pf(i,!1,a)),f=p=i.position):i.position===i.lineStart&&oW(i)? $ s(i,"unexpected end of the document within a double quoted scalar"):(i.position++,p=i.position)} $ s(i,"unexpected end of the stream within a double quoted scalar")}function BTe(i,a){var f=!0,p,v,m,b=i.tag,E,C=i.anchor,D,P,B,j,R,H=Object.create(null),Y,it,nt,st;if(st=i.input.charCodeAt(i.position),st===91)P=93,R=!1,E=[];else if(st===123)P=125,R=!0,E={};else return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=E),st=i.input.charCodeAt(++i.position);st!==0;){if(Pf(i,!0,a),st=i.input.charCodeAt(i.position),st===P)return i.position++,i.tag=b,i.anchor=C,i.kind=R?"mapping":"sequence",i.result=E,!0;f?st===44&& $ s(i,"expected the node content, but found ','"): $ s(i,"missed comma between flow collection entries"),it=Y=nt=null,B=j=!1,st===63&&(D=i.input.charCodeAt(i.position+1),ip(D)&&(B=j=!0,i.position++,Pf(i,!0,a))),p=i.line,v=i.lineStart,m=i.position,OA(i,a,iW,!1,!0),it=i.tag,Y=i.result,Pf(i,!0,a),st=i.input.charCodeAt(i.position),(j||i.line===p)&&st===58&&(B=!0,st=i.input.charCodeAt(++i.position),Pf(i,!0,a),OA(i,a,iW,!1,!0),nt=i.result),R?IA(i,E,H,it,Y,nt,p,v,m):B?E.push(IA(i,null,H,it,Y,nt,p,v,m)):E.push(Y),Pf(i,!0,a),st=i.input.charCodeAt(i.position),st===44?(f=!0,st=i.input.charCodeAt(++i.position)):f=!1} $ s(i,"unexpected end of the stream within a flow collection")}function RTe(i,a){var f,p,v=P1t,m=!1,b=!1,E=a,C=0,D=!1,P,B;if(B=i.input.charCodeAt(i.position),B===124)p=!1;else if(B===62)p=!0;else return!1;for(i.kind="scalar",i.result="";B!==0;)if(B=i.input.charCodeAt(++i.position),B===43||B===45)P1t===v?v=B===43?FDt:_Te: $ s(i,"repeat of a chomping mode identifier");else if((P=DTe(B))>=0)P===0? $ s(i,"bad explicit indentation width of a block scalar; it cannot be less than one"):b? $ s(i,"repeat of an indentation width identifier"):(E=a+P-1,b=!0);else break;if(Z9(B)){do B=i.input.charCodeAt(++i.position);while(Z9(B));if(B===35)do B=i.input.charCodeAt(++i.position);while(!c3(B)&&B!==0)}for(;B!==0;){for(F1t(i),i.li
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,m?1+C:C):v===P1t&&m&&(i.result+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );break}for(p?Z9(B)?(D=!0,i.result+=og.repeat( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,m?1+C:C)):D?(D=!1,i.result+=og.repeat( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,C+1)):C===0?m&&(i.result+=" "):i.result+=og.repeat( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,C):i.result+=og.repeat( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,m?1+C:C),m=!0,b=!0,C=0,f=i.position;!c3(B)&&B!==0;)B=i.input.charCodeAt(++i.position);ek(i,f,i.position,!1)}return!0}function UDt(i,a){var f,p=i.tag,v=i.anchor,m=[],b,E=!1,C;if(i.firstTabInLine!==-1)return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=m),C=i.input.charCodeAt(i.position);C!==0&&(i.firstTabInLine!==-1&&(i.position=i.firstTabInLine, $ s(i,"tab characters must not be used in indentation")),!(C!==45||(b=i.input.charCodeAt(i.position+1),!ip(b))));){if(E=!0,i.position++,Pf(i,!0,-1)&&i.lineIndent<=a){m.push(null),C=i.input.charCodeAt(i.position);continue}if(f=i.line,OA(i,a,PDt,!1,!0),m.push(i.result),Pf(i,!0,-1),C=i.input.charCodeAt(i.position),(i.line===f||i.lineIndent>a)&&C!==0) $ s(i,"bad indentation of a sequence entry");else if(i.lineIndent<a)break}return E?(i.tag=p,i.anchor=v,i.kind="sequence",i.result=m,!0):!1}function jTe(i,a,f){var p,v,m,b,E,C,D=i.tag,P=i.anchor,B={},j=Object.create(null),R=null,H=null,Y=null,it=!1,nt=!1,st;if(i.firstTabInLine!==-1)return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=B),st=i.input.charCodeAt(i.position);st!==0;){if(!it&&i.firstTabInLine!==-1&&(i.position=i.firstTabInLine, $ s(i,"tab characters must not be used in indentation")),p=i.input.charCodeAt(i.position+1),m=i.line,(st===63||st===58)&&ip(p))st===63?(it&&(IA(i,B,j,R,H,null,b,E,C),R=H=Y=null),nt=!0,it=!0,v=!0):it?(it=!1,v=!0): $ s(i,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),i.position+=1,st=p;else{if(b=i.line,E=i.lineStart,C=i.position,!OA(i,f,NDt,!1,!0))break;if(i.line===m){for(st=i.input.charCodeAt(i.position);Z9(st);)st=i.input.charCodeAt(++i.position);if(st===58)st=i.input.charCodeAt(++i.position),ip(st)|| $ s(i,"a whitespace character is expected after the key-value separator within a block mapping"),it&&(IA(i,B,j,R,H,null,b,E,C),R=H=Y=null),nt=!0,it=!1,v=!1,R=i.tag,H=i.result;else if(nt) $ s(i,"can not read an implicit mapping pair; a colon is missed");else return i.tag=D,i.anchor=P,!0}else if(nt) $ s(i,"can not read a block mapping entry; a multiline key may not be an implicit key");else return i.tag=D,i.anchor=P,!0}if((i.line===m||i.lineIndent>a)&&(it&&(b=i.line,E=i.lineStart,C=i.position),OA(i,a,sW,!0,v)&&(it?H=i.result:Y=i.result),it||(IA(i,B,j,R,H,Y,b,E,C),R=H=Y=null),Pf(i,!0,-1),st=i.input.charCodeAt(i.position)),(i.line===m||i.lineIndent>a)&&st!==0) $ s(i,"bad indentation of a mapping entry");else if(i.lineIndent<a)break}return it&&IA(i,B,j,R,H,null,b,E,C),nt&&(i.tag=D,i.anchor=P,i.kind="mapping",i.result=B),nt}function  $ Te(i){var a,f=!1,p=!1,v,m,b;if(b=i.input.charCodeAt(i.position),b!==33)return!1;if(i.tag!==null&& $ s(i,"duplication of a tag property"),b=i.input.charCodeAt(++i.position),b===60?(f=!0,b=i.input.charCodeAt(++i.position)):b===33?(p=!0,v="!!",b=i.input.charCodeAt(++i.position)):v="!",a=i.position,f){do b=i.input.charCodeAt(++i.position);while(b!==0&&b!==62);i.position<i.length?(m=i.input.slice(a,i.position),b=i.input.charCodeAt(++i.position)): $ s(i,"unexpected end of the stream within a verbatim tag")}else{for(;b!==0&&!ip(b);)b===33&&(p? $ s(i,"tag suffix cannot contain exclamation marks"):(v=i.input.slice(a-1,i.position+1),BDt.test(v)|| $ s(i,"named tag handle cannot contain such characters"),p=!0,a=i.position+1)),b=i.input.charCodeAt(++i.position);m=i.input.slice(a,i.position),ATe.test(m)&& $ s(i,"tag suffix cannot contain flow indicator characters")}m&&!RDt.test(m)&& $ s(i,"tag name cannot contain such characters: "+m);try{m=decodeURIComponent(m)}catch{ $ s(i,"tag name is malformed: "+m)}return f?i.tag=m:tk.call(i.tagMap,v)?i.tag=i.tagMap[v]+m:v==="!"?i.tag="!"+m:v==="!!"?i.tag="tag:yaml.org,2002:"+m: $ s(i,'undeclared tag handle "'+v+'"'),!0}function zTe(i){var a,f;if(f=i.input.charCodeAt(i.position),f!==38)return!1;for(i.anchor!==null&& $ s(i,"duplication of an anchor property"),f=i.input.charCodeAt(++i.position),a=i.position;f!==0&&!ip(f)&&!MA(f);)f=i.input.charCodeAt(++i.position);return i.position===a&& $ s(i,"name of an anchor node must contain at least one character"),i.anchor=i.input.slice(a,i.position),!0}function qTe(i){var a,f,p;if(p=i.input.charCo
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),i.charCodeAt(0)===65279&&(i=i.slice(1)));var f=new OTe(i,a),p=i.indexOf(" \0 ");for(p!==-1&&(f.position=p, $ s(f,"null byte is not allowed in input")),f.input+=" \0 ";f.input.charCodeAt(f.position)===32;)f.lineIndent+=1,f.position+=1;for(;f.position<f.length-1;)HTe(f);return f.documents}function VTe(i,a,f){a!==null&&typeof a=="object"&&typeof f>"u"&&(f=a,a=null);var p=WDt(i,f);if(typeof a!="function")return p;for(var v=0,m=p.length;v<m;v+=1)a(p[v])}function GTe(i,a){var f=WDt(i,a);if(f.length!==0){if(f.length===1)return f[0];throw new m5("expected a single document in the stream, but found more")}}var UTe=VTe,WTe=GTe,KTe={loadAll:UTe,load:WTe},YTe=DDt,XTe=KTe.load;const KDt=/^-{3} \s *[ \n \r ](.*?)[ \n \r ]-{3} \s *[ \n \r ]+/s;function QTe(i,a){var p,v;const f=i.match(KDt);if(f){const m=XTe(f[1],{schema:YTe});return m!=null&&m.title&&((p=a.setDiagramTitle)==null||p.call(a,m.title)),m!=null&&m.displayMode&&((v=a.setDisplayMode)==null||v.call(a,m.displayMode)),i.slice(f[0].length)}else return i}const R1t=function(i,a,f){const{depth:p,clobber:v}=Object.assign({depth:2,clobber:!1},f);return Array.isArray(a)&&!Array.isArray(i)?(a.forEach(m=>R1t(i,m,f)),i):Array.isArray(a)&&Array.isArray(i)?(a.forEach(m=>{i.includes(m)||i.push(m)}),i):i===void 0||p<=0?i!=null&&typeof i=="object"&&typeof a=="object"?Object.assign(i,a):a:(a!==void 0&&typeof i=="object"&&typeof a=="object"&&Object.keys(a).forEach(m=>{typeof a[m]=="object"&&(i[m]===void 0||typeof i[m]=="object")?(i[m]===void 0&&(i[m]=Array.isArray(a[m])?[]:{}),i[m]=R1t(i[m],a[m],{depth:p-1,clobber:v})):(v||typeof i[m]!="object"&&typeof a[m]!="object")&&(i[m]=a[m])}),i)},rd=R1t,NA=Object.freeze(f1);let sp=rd({},NA),YDt,PA=[],zN=rd({},NA);const cW=(i,a)=>{let f=rd({},i),p={};for(const v of a)ZDt(v),p=rd(p,v);if(f=rd(f,p),p.theme&&p.theme in w5){const v=rd({},YDt),m=rd(v.themeVariables||{},p.themeVariables);f.theme&&f.theme in w5&&(f.themeVariables=w5[f.theme].getThemeVariables(m))}return zN=f,nIt(zN),zN},ZTe=i=>(sp=rd({},NA),sp=rd(sp,i),i.theme&&w5[i.theme]&&(sp.themeVariables=w5[i.theme].getThemeVariables(i.themeVariables)),cW(sp,PA),sp),JTe=i=>{YDt=rd({},i)},t_e=i=>(sp=rd(sp,i),cW(sp,PA),sp),XDt=()=>rd({},sp),QDt=i=>(nIt(i),rd(zN,i),Oe()),Oe=()=>rd({},zN),ZDt=i=>{["secure",...sp.secure??[]].forEach(a=>{i[a]!==void 0&&(zt.debug( ` Denied  attempt  to  modify  a  secure  key  $ { a } ` ,i[a]),delete i[a])}),Object.keys(i).forEach(a=>{a.indexOf("__")===0&&delete i[a]}),Object.keys(i).forEach(a=>{typeof i[a]=="string"&&(i[a].includes("<")||i[a].includes(">")||i[a].includes("url(data:"))&&delete i[a],typeof i[a]=="object"&&ZDt(i[a])})},JDt=i=>{i.fontFamily&&(i.themeVariables?i.themeVariables.fontFamily||(i.themeVariables={fontFamily:i.fontFamily}):i.themeVariables={fontFamily:i.fontFamily}),PA.push(i),cW(sp,PA)},uW=(i=sp)=>{PA=[],cW(i,PA)};var tIt=(i=>(i.LAZY_LOAD_DEPRECATED="The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",i))(tIt||{});const eIt={},e_e=i=>{eIt[i]||(zt.warn(tIt[i]),eIt[i]=!0)},nIt=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&e_e("LAZY_LOAD_DEPRECATED")},n_e=function(i,a){for(let f of a)i.attr(f[0],f[1])},r_e=function(i,a,f){let p=new Map;return f?(p.set("width","100%"),p.set("style", ` max - width :  $ { a } px ; ` )):(p.set("height",i),p.set("width",a)),p},Wb=function(i,a,f,p){const v=r_e(a,f,p);n_e(i,v)},J9=function(i,a,f,p){const v=a.node().getBBox(),m=v.width,b=v.height;zt.info( ` SVG  bounds :  $ { m } x$ { b } ` ,v);let E=0,C=0;zt.info( ` Graph  bounds :  $ { E } x$ { C } ` ,i),E=m+f*2,C=b+f*2,zt.info( ` Calculated  bounds :  $ { E } x$ { C } ` ),Wb(a,C,E,p);const D= ` $ { v . x - f }  $ { v . y - f }  $ { v . width + 2 * f }  $ { v . height + 2 * f } ` ;a.attr("viewBox",D)},lW={},i_e=(i,a,f)=>{let p="";return i in lW&&lW[i]?p=lW[i](f):zt.warn( ` No  theme  found  for  $ { i } ` ), `  &  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { f . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { f . fontSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . textColor } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  /* Classes common for multiple diagrams */ 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . error - icon  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . errorBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . error - text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . errorTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { f . errorTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - thickness - normal  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - thickness - thick  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3.5 px 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - pattern - solid  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - pattern - dashed { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edge - pattern - dotted  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . marker  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { f . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  &  . marker . cross  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { f . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  svg  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { f . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { f . fontSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { p } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { a } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` },s_e=(i,a)=>{a!==void 0&&(lW[i]=a)},a_e=i_e;let j1t="",hW="", $ 1t="";const z1t=i=>sg(i,Oe()),ap=function(){j1t="", $ 1t="",hW=""},cg=function(i){j1t=z1t(i).replace(/^ \s +/g,"")},op=function(){return j1t||hW},cp=function(i){ $ 1t=z1t(i).replace(/ \n \s +/g, `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )},up=function(){return  $ 1t},Kb=function(i){hW=z1t(i)},O2=function(){return hW},rIt=Object.freeze(Object.defineProperty({__proto__:null,clear:ap,default:{getAccTitle:op,setAccTitle:cg,getDiagramTitle:O2,setDiagramTitle:Kb,getAccDescription:up,setAccDescription:cp,clear:ap},getAccDescription:up,getAccTitle:op,getDiagramTitle:O2,setAccDescription:cp,setAccTitle:cg,setDiagramTitle:Kb},Symbol.toStringTag,{value:"Module"}));let tE={};const q1t=function(i,a,f,p){zt.debug("parseDirective is being called",a,f,p);try{if(a!==void 0)switch(a=a.trim(),f){case"open_directive":tE={};break;case"type_directive":if(!tE)throw new Error("currentDirective is undefined");tE.type=a.toLowerCase();break;case"arg_directive":if(!tE)throw new Error("currentDirective is undefined");tE.args=JSON.parse(a);break;case"close_directive":o_e(i,tE,p),tE=void 0;break}}catch(v){zt.error( ` Error  while  rendering  sequenceDiagram  directive :  $ { a }  jison  context :  $ { f } ` ),zt.error(v.message)}},o_e=function(i,a,f){switch(zt.info( ` Directive  type = $ { a . type }  with  args : ` ,a.args),a.type){case"init":case"initialize":{["config"].forEach(p=>{a.args[p]!==void 0&&(f==="flowchart-v2"&&(f="flowchart"),a.args[f]=a.args[p],delete a.args[p])}),zt.info("sanitize in handleDirective",a.args), $ A(a.args),zt.info("sanitize in handleDirective (done)",a.args),JDt(a.args);break}case"wrap":case"nowrap":i&&i.setWrap&&i.setWrap(a.type==="wrap");break;case"themeCss":zt.warn("themeCss encountered");break;default:zt.warn( ` Unhandled  directive :  source :  ' % % { $ { a . type } :  $ { JSON . stringify ( a . args ? a . args : { } ) } } % % ` ,a);break}},c_e=zt,u_e=Cft,qN=Oe,l_e=i=>sg(i,qN()),iIt=J9,h_e=()=>rIt,f_e=(i,a,f,p)=>q1t(i,a,f,p),fW={},dW=(i,a,f)=>{if(fW[i])throw new Error( ` Diagram  $ { i }  already  registered . ` );fW[i]=a,f&&oIt(i,f),s_e(i,a.styles),a.injectUtils&&a.injectUtils(c_e,u_e,qN,l_e,iIt,h_e(),f_e)},H1t=i=>{if(i in fW)return fW[i];throw new Error( ` Diagram  $ { i }  not  found . ` )};class sIt extends Error{constructor(a){super(a),this.name="UnknownDiagramError"}}const d_e=/%{2}{ \s *(?:( \w +) \s *:|( \w +)) \s *(?:( \w +)|((?:(?!}%{2}).| \r ? \n )*))? \s *(?:}%{2})?/gi,g_e=/ \s *%%.* \n /gm,FA={},gW=function(i,a){i=i.replace(KDt,"").replace(d_e,"").replace(g_e, `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );for(const[f,{detector:p}]of Object.entries(FA))if(p(i,a))return f;throw new sIt( ` No  diagram  type  detected  matching  given  configuration  for  text :  $ { i } ` )},aIt=(...i)=>{for(const{id:a,detector:f,loader:p}of i)oIt(a,f,p)},p_e=async()=>{zt.debug("Loading registered diagrams");const a=(await Promise.allSettled(Object.entries(FA).map(async([f,{detector:p,loader:v}])=>{if(v)try{H1t(f)}catch{try{const{diagram:b,id:E}=await v();dW(E,b,p)}catch(b){throw zt.error( ` Failed  to  load  external  diagram  with  key  $ { f } .  Removing  from  detectors . ` ),delete FA[f],b}}}))).filter(f=>f.status==="rejected");if(a.length>0){zt.error( ` Failed  to  load  $ { a . length }  external  diagrams ` );for(const f of a)zt.error(f);throw new Error( ` Failed  to  load  $ { a . length }  external  diagrams ` )}},oIt=(i,a,f)=>{FA[i]?zt.error( ` Detector  with  key  $ { i }  already  exists ` ):FA[i]={detector:a,loader:f},zt.debug( ` Detector  with  key  $ { i }  added$ { f ? " with loader" : "" } ` )},b_e=i=>FA[i].loader;var v_e=typeof global=="object"&&global&&global.Object===Object&&global;const cIt=v_e;var w_e=typeof self=="object"&&self&&self.Object===Object&&self,m_e=cIt||w_e||Function("return this")();const Xw=m_e;var y_e=Xw.Symbol;const Yb=y_e;var uIt=Object.prototype,x_e=uIt.hasOwnProperty,k_e=uIt.toString,HN=Yb?Yb.toStringTag:void 0;function E_e(i){var a=x_e.call(i,HN),f=i[HN];try{i[HN]=void 0;var p=!0}catch{}var v=k_e.call(i);return p&&(a?i[HN]=f:delete i[HN]),v}var T_e=Object.prototype,__e=T_e.toString;function C_e(i){return __e.call(i)}var S_e="[object Null]",A_e="[object Undefined]",lIt=Yb?Yb.toStringTag:void 0;function eE(i){return i==null?i===void 0?A_e:S_e:lIt&&lIt in Object(i)?E_e(i):C_e(i)}function N2(i){var a=typeof i;return i!=null&&(a=="object"||a=="function")}var L_e="[object AsyncFunction]",M_e="[object Function]",D_e="[object GeneratorFunction]",I_e="[object Proxy]";function BA(i){if(!N2(i))return!1;var a=eE(i);return a==M_e||a==D_e||a==L_e||a==I_e}var O_e=Xw["__core-js_shared__"];const V1t=O_e;var hIt=function(){var i=/[^.]+ $ /.exec(V1t&&V1t.keys&&V1t.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function N_e(i){return!!hIt&&hIt in i}var P_e=Function.prototype,F_e=P_e.toString;function nE(i){if(i!=null){try{return F_e.call(i)}catch{}try{return i+""}catch{}}return""}var B_e=/[ \\ ^ $ .*+?()[ \] {}|]/g,R_e=/^ \[ object .+?Constructor \] $ /,j_e=Function.prototype, $ _e=Object.prototype,z_e=j_e.toString,q_e= $ _e.hasOwnProperty,H_e=RegExp("^"+z_e.call(q_e).replace(B_e," \\ $ &").replace(/hasOwnProperty|(function).*?(?= \\ \( )| for .+?(?= \\ \] )/g," $ 1.*?")+" $ ");function V_e(i){if(!N2(i)||N_e(i))return!1;var a=BA(i)?H_e:R_e;return a.test(nE(i))}function G_e(i,a){return i==null?void 0:i[a]}function rE(i,a){var f=G_e(i,a);return V_e(f)?f:void 0}var U_e=rE(Object,"create");const VN=U_e;function W_e(){this.__data__=VN?VN(null):{},this.size=0}function K_e(i){var a=this.has(i)&&delete this.__data__[i];return this.size-=a?1:0,a}var Y_e="__lodash_hash_undefined__",X_e=Object.prototype,Q_e=X_e.hasOwnProperty;function Z_e(i){var a=this.__data__;if(VN){var f=a[i];return f===Y_e?void 0:f}return Q_e.call(a,i)?a[i]:void 0}var J_e=Object.prototype,tCe=J_e.hasOwnProperty;function eCe(i){var a=this.__data__;return VN?a[i]!==void 0:tCe.call(a,i)}var nCe="__lodash_hash_undefined__";function rCe(i,a){var f=this.__data__;return this.size+=this.has(i)?0:1,f[i]=VN&&a===void 0?nCe:a,this}function iE(i){var a=-1,f=i==null?0:i.length;for(this.clear();++a<f;){var p=i[a];this.set(p[0],p[1])}}iE.prototype.clear=W_e,iE.prototype.delete=K_e,iE.prototype.get=Z_e,iE.prototype.has=eCe,iE.prototype.set=rCe;function iCe(){this.__data__=[],this.size=0}function RA(i,a){return i===a||i!==i&&a!==a}function pW(i,a){for(var f=i.length;f--;)if(RA(i[f][0],a))return f;return-1}var sCe=Array.prototype,aCe=sCe.splice;function oCe(i){var a=this.__data__,f=pW(a,i);if(f<0)return!1;var p=a.length-1;return f==p?a.pop():aCe.call(a,f,1),--this.size,!0}function cCe(i){var a=this.__data__,f=pW(a,i);return f<0?void 0:a[f][1]}function uCe(i){return pW(this.__data__,i)>-1}function lCe(i,a){var f=this.__data__,p=pW(f,i);return p<0?(++this.size,f.push([i,a])):f[p][1]=a,this
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,"ig");i=i.trim().replace(f,"").replace(/'/gm,'"'),zt.debug( ` Detecting  diagram  directive$ { a !== null ? " type:" + a : "" }  based  on  the  text : $ { i } ` );let p;const v=[];for(;(p=G1t.exec(i))!==null;)if(p.index===G1t.lastIndex&&G1t.lastIndex++,p&&!a||a&&p[1]&&p[1].match(a)||a&&p[2]&&p[2].match(a)){const m=p[1]?p[1]:p[2],b=p[3]?p[3].trim():p[4]?JSON.parse(p[4].trim()):null;v.push({type:m,args:b})}return v.length===0&&v.push({type:i,args:null}),v.length===1?v[0]:v}catch(f){return zt.error( ` ERROR :  $ { f . message }  -  Unable  to  parse  directive  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      $ { a !== null ? " type:" + a : "" }  based  on  the  text : $ { i } ` ),{type:null,args:null}}},kCe=function(i,a){for(const[f,p]of a.entries())if(p.match(i))return f;return-1};function Xb(i,a){if(!i)return a;const f= ` curve$ { i . charAt ( 0 ) . toUpperCase ( ) + i . slice ( 1 ) } ` ;return mCe[f]||a}function ECe(i,a){const f=i.trim();if(f)return a.securityLevel!=="loose"?Xx(f):f}const TCe=(i,...a)=>{const f=i.split("."),p=f.length-1,v=f[p];let m=window;for(let b=0;b<p;b++)if(m=m[f[b]],!m)return;m[v](...a)};function vW(i,a){return i&&a?Math.sqrt(Math.pow(a.x-i.x,2)+Math.pow(a.y-i.y,2)):0}function _Ce(i){let a,f=0;i.forEach(m=>{f+=vW(m,a),a=m});let p=f/2,v;return a=void 0,i.forEach(m=>{if(a&&!v){const b=vW(m,a);if(b<p)p-=b;else{const E=p/b;E<=0&&(v=a),E>=1&&(v={x:m.x,y:m.y}),E>0&&E<1&&(v={x:(1-E)*a.x+E*m.x,y:(1-E)*a.y+E*m.y})}}a=m}),v}function CCe(i){return i.length===1?i[0]:_Ce(i)}const SCe=(i,a,f)=>{let p;zt.info( ` our  points  $ { JSON . stringify ( a ) } ` ),a[0]!==f&&(a=a.reverse());let m=25,b;p=void 0,a.forEach(P=>{if(p&&!b){const B=vW(P,p);if(B<m)m-=B;else{const j=m/B;j<=0&&(b=p),j>=1&&(b={x:P.x,y:P.y}),j>0&&j<1&&(b={x:(1-j)*p.x+j*P.x,y:(1-j)*p.y+j*P.y})}}p=P});const E=i?10:5,C=Math.atan2(a[0].y-b.y,a[0].x-b.x),D={x:0,y:0};return D.x=Math.sin(C)*E+(a[0].x+b.x)/2,D.y=-Math.cos(C)*E+(a[0].y+b.y)/2,D};function ACe(i,a,f){let p=JSON.parse(JSON.stringify(f)),v;zt.info("our points",p),a!=="start_left"&&a!=="start_right"&&(p=p.reverse()),p.forEach(B=>{v=B});let b=25+i,E;v=void 0,p.forEach(B=>{if(v&&!E){const j=vW(B,v);if(j<b)b-=j;else{const R=b/j;R<=0&&(E=v),R>=1&&(E={x:B.x,y:B.y}),R>0&&R<1&&(E={x:(1-R)*v.x+R*B.x,y:(1-R)*v.y+R*B.y})}}v=B});const C=10+i*.5,D=Math.atan2(p[0].y-E.y,p[0].x-E.x),P={x:0,y:0};return P.x=Math.sin(D)*C+(p[0].x+E.x)/2,P.y=-Math.cos(D)*C+(p[0].y+E.y)/2,a==="start_left"&&(P.x=Math.sin(D+Math.PI)*C+(p[0].x+E.x)/2,P.y=-Math.cos(D+Math.PI)*C+(p[0].y+E.y)/2),a==="end_right"&&(P.x=Math.sin(D-Math.PI)*C+(p[0].x+E.x)/2-5,P.y=-Math.cos(D-Math.PI)*C+(p[0].y+E.y)/2-5),a==="end_left"&&(P.x=Math.sin(D)*C+(p[0].x+E.x)/2-5,P.y=-Math.cos(D)*C+(p[0].y+E.y)/2-5),P}function Qw(i){let a="",f="";for(const p of i)p!==void 0&&(p.startsWith("color:")||p.startsWith("text-align:")?f=f+p+";":a=a+p+";");return{style:a,labelStyle:f}}let gIt=0;const pIt=()=>(gIt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+gIt);function LCe(i){let a="";const f="0123456789abcdef",p=f.length;for(let v=0;v<i;v++)a+=f.charAt(Math.floor(Math.random()*p));return a}const bIt=i=>LCe(i.length),MCe=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0}},DCe=function(i,a){const f=a.text.replace(yi.lineBreakRegex," "),[,p]=zA(a.fontSize),v=i.append("text");v.attr("x",a.x),v.attr("y",a.y),v.style("text-anchor",a.anchor),v.style("font-family",a.fontFamily),v.style("font-size",p),v.style("font-weight",a.fontWeight),v.attr("fill",a.fill),a.class!==void 0&&v.attr("class",a.class);const m=v.append("tspan");return m.attr("x",a.x+a.textMargin*2),m.attr("fill",a.fill),m.text(f),v},vIt=jA((i,a,f)=>{if(!i||(f=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},f),yi.lineBreakRegex.test(i)))return i;const p=i.split(" "),v=[];let m="";return p.forEach((b,E)=>{const C=u3( ` $ { b }  ` ,f),D=u3(m,f);if(C>a){const{hyphenatedStrings:j,remainingWord:R}=ICe(b,a,"-",f);v.push(m,...j),m=R}else D+C>=a?(v.push(m),m=b):m=[m,b].filter(Boolean).join(" ");E+1===p.length&&v.push(m)}),v.filter(b=>b!=="").join(f.joinWith)},(i,a,f)=> ` $ { i } $ { a } $ { f . fontSize } $ { f . fontWeight } $ { f . fontFamily } $ { f . joinWith } ` ),ICe=jA((i,a,f="-",p)=>{p=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},p);const v=[...i],m=[];let b="";return v.forEach((E,C)=>{const D= ` $ { b } $ { E } ` ;if(u3(D,p)>=a){const B=C+1,j=v.length===B,R= ` $ { D } $ { f } ` ;m.push(j?D:R),b=""}else b=D}),{hyphenatedStrings:m,remainingWord:b}},(i,a,f="-",p)=> ` $ { i } $ { a } $ { f } $ { p . fontSize } $ { p . fontWeight } $ { p . fontFamily } ` );function U1t(i,a){return a=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},a),W1t(i,a).height}function u3(i,a){return a=Object.assign({fontSize:12,fontWeight
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );const p=Mr("#"+a),v=p.append("g");v.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),v.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),v.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),v.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),v.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),v.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),v.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),v.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+f),p.attr("height",100),p.attr("width",500),p.attr("viewBox","768 0 912 512")}catch(p){zt.error("Error while rendering info diagram"),zt.error(PCe(p))}}},pSe={db:{clear:()=>{}},styles:gSe,renderer:VIt,parser:{parser:{yy:{}},parse:()=>{}},init:()=>{}},GIt="flowchart-elk",bSe={id:GIt,detector:(i,a)=>{var f;return!!(/^ \s *flowchart-elk/.test(i)||/^ \s *flowchart|graph/.test(i)&&((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>EGe);return{id:GIt,diagram:i}}},UIt="timeline",vSe={id:UIt,detector:i=>/^ \s *timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>qGe);return{id:UIt,diagram:i}}},WIt="mindmap",wSe={id:WIt,detector:i=>/^ \s *mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>wUe);return{id:WIt,diagram:i}}};let KIt=!1;const edt=()=>{KIt||(KIt=!0,dW("error",pSe,i=>i.toLowerCase().trim()==="error"),dW("---",{db:{clear:()=>{}},styles:{},renderer:{},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented  ` -- - `  blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),aIt(ZCe,lSe,uSe,eSe,rSe,iSe,sSe,oSe,cSe,bSe,tSe,JCe,wSe,vSe,nSe,fSe,hSe,dSe,aSe))},mSe=i=>i.trimStart().replace(/^ \s *%%(?!{)[^ \n ]+ \n ?/gm,"");class YIt{constructor(a){var m,b;this.text=a,this.type="graph",this.text+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;const f=Oe();try{this.type=gW(a,f)}catch(E){this.type="error",this.detectError=E}const p=H1t(this.type);zt.debug("Type "+this.type),this.db=p.db,(b=(m=this.db).clear)==null||b.call(m),this.renderer=p.renderer,this.parser=p.parser;const v=this.parser.parse.bind(this.parser);this.parser.parse=E=>v(mSe(QTe(E,this.db))),this.parser.parser.yy=this.db,p.init&&(p.init(f),zt.info("Initialized diagram "+this.type,f)),this.parse()}parse(){var a,f;if(this.detectError)throw this.detectError;(f=(a=this.db).clear)==null||f.call(a),this.parser.parse(this.text)}async render(a,f){await this.renderer.draw(this.text,a,f,this)}getParser(){return this.parser}getType(){return this.type}}const ndt=async i=>{const a=gW(i,Oe());try{H1t(a)}catch{const p=b_e(a);if(!p)throw new sIt( ` Diagram  $ { a }  not  found . ` );const{id:v,diagram:m}=await p();dW(v,m)}return new YIt(i)};let rdt=[];const ySe=i=>{rdt.push(i)},xSe=()=>{rdt.forEach(i=>{i()}),rdt=[]};var kSe=Object.prototype;function _W(i){var a=i&&i.constructor,f=typeof a=="function"&&a.prototype||kSe;return i===f}function XIt(i,a){return function(f){return i(a(f))}}var ESe=XIt(Object.keys,Object);const TSe=ESe;var _Se=Object.prototype,CSe=_Se.hasOwnProperty;function QIt(i){if(!_W(i))return TSe(i);var a=[];for(var f in Object(i))CSe.call(i,f)&&f!="constructor"&&a.push(f);return a}var SSe=rE(Xw,"DataView");const idt=SSe;var ASe=rE(Xw,"Promise");const sdt=ASe;var LSe=rE(Xw,"Set");const VA=LSe;var MSe=rE(Xw,"WeakMap");const adt=MSe;var ZIt="[object Map]",DSe="[object Object]",JIt="[object Promise]",tOt="[object Set]",eOt="[object WeakMap]",nOt="[object DataView]",ISe=nE(idt),OSe=nE(GN),NSe=nE(sdt),PSe=nE(VA),FSe=nE(adt),aE=eE;(idt&&aE(new idt(new ArrayBuffer(1)))!=nOt||GN&&aE(new GN)!=ZIt||sdt&&aE(sdt.resolve())!=JIt||VA&&aE(new VA)!=tOt||adt&&aE(new adt)!=eOt)&&(aE=function(i){var a=eE(i),f=a==DSe?i.constructor:void 0,p=f?nE(f):"";if(p)switch(p){case ISe:return nOt;case OSe:return ZIt;case NSe:return JIt;case PSe:return tOt;case FSe:return eOt}return a});const GA=aE;function l3(i){return i!=null&&typeof i=="object"}var BSe="[object Arguments]";function rOt(i){return l3(i)&&eE(i)==BSe}var iOt=Object.prototype,RSe=iOt.hasOwnProperty,jSe=iOt.propertyIsEnumerable, $ Se=rOt(function(){return arguments}())?rOt:function(i){return l3(i)&&RSe.call(i,"callee")&&!jSe.call(i,"callee")};const UA= $ Se;var zSe=Array.isArray;const Bf=zSe;var qSe=9007199254740991;function odt(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=qSe}function rk(i){return i!=null&&odt(i.length)&&!BA(i)}function HSe(){return!1}var sOt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,aOt=sOt&&typeof module=="object"&&module&&!module.nodeType&&module,VSe=aOt&&aOt.exports===sOt,oOt=VSe?Xw.Buffer:void 0,GSe=oOt?oOt.isBuffer:void 0,USe=GSe||HSe;const WA=USe;var WSe="[object Arguments]",KSe="[object Array]",YSe="[object Boolean]",XSe="[object Date]",QSe="[object Error]",ZSe="[object Function]",JSe="[object Map]",tAe="[object Number]",eAe="[object Object]",nAe="[object RegExp]",rAe="[object Set]",iAe="[object String]",sAe="[object WeakMap]",aAe="[object ArrayBuffer]",oAe="[object DataView]",cAe="[object Float32Array]",uAe="[object Float64Array]",lAe="[object Int8Array]",hAe="[object Int16Array]",fAe="[object Int32Array]",dAe="[object Uint8Array]",gAe="[object Uint8ClampedArray]",pAe="[object Uint16Array]",bAe="[object Uint32Array]",_l={};_l[cAe]=_l[uAe]=_l[lAe]=_l[hAe]=_l[fAe]=_l[dAe]=_l[gAe]=_l[pAe]=_l[bAe]=!0,_l[WSe]=_l[KSe]=_l[aAe]=_l[YSe]=_l[oAe]=_l[XSe]=_l[QSe]=_l[ZSe]=_l[JSe]=_l[tAe]=_l[eAe]=_l[nAe]=_l[rAe]=_l[iAe]=_l[sAe]=!1;function vAe(i){return l3(i)&&odt(i.length)&&!!_l[eE(i)]}function CW(i){return function(a){return i(a)}}var cOt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,KN=cOt&&typeof module=="object"&&module&&!module.nodeType&&module,wAe=KN&&KN.exports===cOt,cdt=wAe&&cIt.process,mAe=function(){try{var i=KN&&KN.require&&KN.require("util").types;return i||cdt&&cdt.binding&&cdt.binding("util")}catch{}}();const KA=mAe;var uOt=KA&&KA.isTypedArray,yAe=uOt?CW(uOt):vAe;const SW=yAe;var xAe="[object Map]",kAe="[object S
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. $ { i }  $ { a }  {  $ { f . join ( " !important; " ) }  ! important ;  } ` ,GAe=(i,a,f={})=>{var v;let p="";if(i.themeCSS!==void 0&&(p+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								$ { i . themeCSS } ` ),i.fontFamily!==void 0&&(p+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								: root  {  -- mermaid - font - family :  $ { i . fontFamily } } ` ),i.altFontFamily!==void 0&&(p+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								: root  {  -- mermaid - alt - font - family :  $ { i . altFontFamily } } ` ),!YA(f)&&lOt.includes(a)){const C=i.htmlLabels||((v=i.flowchart)==null?void 0:v.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const D in f){const P=f[D];YA(P.styles)||C.forEach(B=>{p+=hOt(P.id,B,P.styles)}),YA(P.textStyles)||(p+=hOt(P.id,"tspan",P.textStyles))}}return p},UAe=(i,a,f,p)=>{const v=GAe(i,a,f),m=a_e(a,v,i.themeVariables);return tdt(YCe( ` $ { p } { $ { m } } ` ),QCe)},WAe=(i="",a,f)=>{let p=i;return!f&&!a&&(p=p.replace(/marker-end="url \( [ \d +./:=?A-Za-z-]*?#/g,'marker-end="url(#')),p=YN(p),p=p.replace(/<br>/g,"<br/>"),p},KAe=(i="",a)=>{const f=a?a.viewBox.baseVal.height+"px":FAe,p=btoa('<body style="'+RAe+'">'+i+"</body>");return ` < iframe  style = "width:${PAe};height:${f};${BAe}"  src = "data:text/html;base64,${p}"  sandbox = "${jAe}" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { $Ae } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								< /iframe>`},fOt=(i,a,f,p,v)=>{const m=i.append("div");m.attr("id",f),p&&m.attr("style",p);const b=m.append("svg").attr("id",a).attr("width","100%").attr("xmlns",IAe);return v&&b.attr("xmlns:xlink",v),b.append("g"),i};function dOt(i,a){return i.append("iframe").attr("id",a).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const YAe=(i,a,f,p)=>{var v,m,b;(v=i.getElementById(a))==null||v.remove(),(m=i.getElementById(f))==null||m.remove(),(b=i.getElementById(p))==null||b.remove()},XAe=async function(i,a,f){var _t,X,Rt,ft;edt(),uW();const p=lo.detectInit(a);p&&($A(p),JDt(p));const v=Oe();zt.debug(v),a.length>((v==null?void 0:v.maxTextSize)??AAe)&&(a=LAe),a=a.replace(/ \ r \ n ? / g , `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),a=a.replace(/<( \w +)([^>]*)>/g,(de,J,ae)=>"<"+J+ae.replace(/="([^"]*)"/g,"=' $ 1'")+">");const m="#"+i,b="i"+i,E="#"+b,C="d"+i,D="#"+C;let P=Mr("body");const B=v.securityLevel===MAe,j=v.securityLevel===DAe,R=v.fontFamily;if(f!==void 0){if(f&&(f.innerHTML=""),B){const de=dOt(Mr(f),b);P=Mr(de.nodes()[0].contentDocument.body),P.node().style.margin=0}else P=Mr(f);fOt(P,i,C, ` font - family :  $ { R } ` ,OAe)}else{if(YAe(document,i,C,b),B){const de=dOt(Mr("body"),b);P=Mr(de.nodes()[0].contentDocument.body),P.node().style.margin=0}else P=Mr("body");fOt(P,i,C)}a=VAe(a);let H,Y;try{H=await ndt(a)}catch(de){H=new YIt("error"),Y=de}const it=P.select(D).node(),nt=H.type,st=it.firstChild,pt=st.firstChild,Tt=lOt.includes(nt)?H.renderer.getClasses(a,H):{},kt=UAe(v,nt,Tt,m),yt=document.createElement("style");yt.innerHTML=kt,st.insertBefore(yt,pt);try{await H.renderer.draw(a,i,SIt,H)}catch(de){throw VIt.draw(a,i,SIt),de}const ht=P.select( ` $ { D }  svg ` ),mt=(X=(_t=H.db).getAccTitle)==null?void 0:X.call(_t),rt=(ft=(Rt=H.db).getAccDescription)==null?void 0:ft.call(Rt);ZAe(nt,ht,mt,rt),P.select( ` [ id = "${i}" ] ` ).selectAll("foreignobject > *").attr("xmlns",NAe);let wt=P.select(D).node().innerHTML;if(zt.debug("config.arrowMarkerAbsolute",v.arrowMarkerAbsolute),wt=WAe(wt,B,h1(v.arrowMarkerAbsolute)),B){const de=P.select(D+" svg").node();wt=KAe(wt,de)}else j||(wt=KU.sanitize(wt,{ADD_TAGS:zAe,ADD_ATTR:qAe}));if(xSe(),Y)throw Y;const lt=Mr(B?E:D).node();return lt&&"remove"in lt&<.remove(),{svg:wt,bindFunctions:H.db.bindFunctions}};function QAe(i={}){var f;i!=null&&i.fontFamily&&!((f=i.themeVariables)!=null&&f.fontFamily)&&(i.themeVariables||(i.themeVariables={}),i.themeVariables.fontFamily=i.fontFamily),JTe(i),i!=null&&i.theme&&i.theme in w5?i.themeVariables=w5[i.theme].getThemeVariables(i.themeVariables):i&&(i.themeVariables=w5.default.getThemeVariables(i.themeVariables));const a=typeof i=="object"?ZTe(i):XDt();Cft(a.logLevel),edt()}function ZAe(i,a,f,p){CAe(a,i),SAe(a,f,p,a.attr("id"))}const d1=Object.freeze({render:XAe,parse:HAe,parseDirective:q1t,getDiagramFromText:ndt,initialize:QAe,getConfig:Oe,setConfig:QDt,getSiteConfig:XDt,updateSiteConfig:t_e,reset:()=>{uW()},globalReset:()=>{uW(NA)},defaultConfig:NA});Cft(Oe().logLevel),uW(Oe());const JAe=(i,a,f)=>{zt.warn(i),wIt(i)?(f&&f(i.str,i.hash),a.push({...i,message:i.str,error:i})):(f&&f(i),i instanceof Error&&a.push({str:i.message,message:i.message,hash:i.name,error:i}))},gOt=async function(i={querySelector:".mermaid"}){try{await tLe(i)}catch(a){if(wIt(a)&&zt.error(a.str),P2.parseError&&P2.parseError(a),!i.suppressErrors)throw zt.error("Use the suppressErrors option to suppress these errors"),a}},tLe=async function({postRenderCallback:i,querySelector:a,nodes:f}={querySelector:".mermaid"}){const p=d1.getConfig();zt.debug( ` $ { i ? "" : "No " } Callback  function  found ` );let v;if(f)v=f;else if(a)v=document.querySelectorAll(a);else throw new Error("Nodes and querySelector are both undefined");zt.debug( ` Found  $ { v . length }  diagrams ` ),(p==null?void 0:p.startOnLoad)!==void 0&&(zt.debug("Start On Load: "+(p==null?void 0:p.startOnLoad)),d1.updateSiteConfig({startOnLoad:p==null?void 0:p.startOnLoad}));const m=new lo.initIdGenerator(p.deterministicIds,p.deterministicIDSeed);let b;const E=[];for(const C of Array.from(v)){zt.info("Rendering diagram: "+C.id);/*! Check if previously processed */if(C.getAttribute("data-processed"))continue;C.setAttribute("data-processed","true");const D= ` mermaid - $ { m . next ( ) } ` ;b=C.innerHTML,b=dA(lo.entityDecode(b)).trim().replace(/<br \s * \/ ?>/gi,"<br/>");const P=lo.detectInit(b);P&&zt.debug("Detected early reinit: ",P);try{const{svg:B,bindFunctions:j}=await wOt(D,b,C);C.innerHTML=B,i&&await i(D),j&&j(C)}catch(B){JAe(B,E,P2.parseError)}}if(E.length>0)throw E[0]},pOt=function(i){d1.initialize(i)},eLe=async function(i,a,f){zt.warn("mermaid.init is deprecated. Please use run instead."),i&&pOt(i);const p={postRenderCallback:f,querySelector:".mermaid"};typeof a=="string"?p.querySelector=a:a&&(a instanceof HTMLElement?p.nodes=[a]:p.nodes=a),await gOt(p)},nLe=async(i,{lazyLoad:a=!0}={})=>{aIt(...i),a===!1&&await
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								 *  Wait  for  document  loaded  before  starting  the  execution 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								 * / w i n d o w . a d d E v e n t L i s t e n e r ( " l o a d " , b O t , ! 1 ) } c o n s t   r L e = f u n c t i o n ( i ) { P 2 . p a r s e E r r o r = i } , A W = [ ] ; l e t   u d t = ! 1 ; c o n s t   v O t = a s y n c ( ) = > { i f ( ! u d t ) { f o r ( u d t = ! 0 ; A W . l e n g t h > 0 ; ) { c o n s t   i = A W . s h i f t ( ) ; i f ( i ) t r y { a w a i t   i ( ) } c a t c h ( a ) { z t . e r r o r ( " E r r o r   e x e c u t i n g   q u e u e " , a ) } } u d t = ! 1 } } , i L e = a s y n c ( i , a ) = > n e w   P r o m i s e ( ( f , p ) = > { c o n s t   v = ( ) = > n e w   P r o m i s e ( ( m , b ) = > { d 1 . p a r s e ( i , a ) . t h e n ( E = > { m ( E ) , f ( E ) } , E = > { v a r   C ; z t . e r r o r ( " E r r o r   p a r s i n g " , E ) , ( C = P 2 . p a r s e E r r o r ) = = n u l l | | C . c a l l ( P 2 , E ) , b ( E ) , p ( E ) } ) } ) ; A W . p u s h ( v ) , v O t ( ) . c a t c h ( p ) } ) , w O t = ( i , a , f ) = > n e w   P r o m i s e ( ( p , v ) = > { c o n s t   m = ( ) = > n e w   P r o m i s e ( ( b , E ) = > { d 1 . r e n d e r ( i , a , f ) . t h e n ( C = > { b ( C ) , p ( C ) } , C = > { v a r   D ; z t . e r r o r ( " E r r o r   p a r s i n g " , C ) , ( D = P 2 . p a r s e E r r o r ) = = n u l l | | D . c a l l ( P 2 , C ) , E ( C ) , v ( C ) } ) } ) ; A W . p u s h ( m ) , v O t ( ) . c a t c h ( v ) } ) , P 2 = { s t a r t O n L o a d : ! 0 , m e r m a i d A P I : d 1 , p a r s e : i L e , r e n d e r : w O t , i n i t : e L e , r u n : g O t , r e g i s t e r E x t e r n a l D i a g r a m s : n L e , i n i t i a l i z e : p O t , p a r s e E r r o r : v o i d   0 , c o n t e n t L o a d e d : b O t , s e t P a r s e E r r o r H a n d l e r : r L e , d e t e c t T y p e : g W } ; v a r   L W = f u n c t i o n ( ) { v a r   i = f u n c t i o n ( q i , z n , Z n , P r ) { f o r ( Z n = Z n | | { } , P r = q i . l e n g t h ; P r - - ; Z n [ q i [ P r ] ] = z n ) ; r e t u r n   Z n } , a = [ 1 , 6 ] , f = [ 1 , 7 ] , p = [ 1 , 8 ] , v = [ 1 , 9 ] , m = [ 1 , 1 6 ] , b = [ 1 , 1 1 ] , E = [ 1 , 1 2 ] , C = [ 1 , 1 3 ] , D = [ 1 , 1 4 ] , P = [ 1 , 1 5 ] , B = [ 1 , 2 7 ] , j = [ 1 , 3 3 ] , R = [ 1 , 3 4 ] , H = [ 1 , 3 5 ] , Y = [ 1 , 3 6 ] , i t = [ 1 , 3 7 ] , n t = [ 1 , 7 2 ] , s t = [ 1 , 7 3 ] , p t = [ 1 , 7 4 ] , T t = [ 1 , 7 5 ] , k t = [ 1 , 7 6 ] , y t = [ 1 , 7 7 ] , h t = [ 1 , 7 8 ] , m t = [ 1 , 3 8 ] , r t = [ 1 , 3 9 ] , w t = [ 1 , 4 0 ] , g t = [ 1 , 4 1 ] , l t = [ 1 , 4 2 ] , _ t = [ 1 , 4 3 ] , X = [ 1 , 4 4 ] , R t = [ 1 , 4 5 ] , f t = [ 1 , 4 6 ] , d e = [ 1 , 4 7 ] , J = [ 1 , 4 8 ] , a e = [ 1 , 4 9 ] , W t = [ 1 , 5 0 ] , I t = [ 1 , 5 1 ] , N t = [ 1 , 5 2 ] , m e = [ 1 , 5 3 ] , U e = [ 1 , 5 4 ] , _ n = [ 1 , 5 5 ] , _ e = [ 1 , 5 6 ] , r r = [ 1 , 5 7 ] , T e = [ 1 , 5 9 ] , n e = [ 1 , 6 0 ] , E e = [ 1 , 6 1 ] , y e = [ 1 , 6 2 ] , V t = [ 1 , 6 3 ] , A e = [ 1 , 6 4 ] , G t = [ 1 , 6 5 ] , u n = [ 1 , 6 6 ] , j t = [ 1 , 6 7 ] , K e = [ 1 , 6 8 ] , o e = [ 1 , 6 9 ] , O r = [ 2 4 , 5 2 ] , L e = [ 2 4 , 4 4 , 4 6 , 4 7 , 4 8 , 4 9 , 5 0 , 5 1 , 5 2 , 5 4 , 5 5 , 5 6 , 5 7 , 5 8 , 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 , 7 1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7 8 , 7 9 , 8 0 , 8 1 , 8 2 , 8 3 , 8 4 ] , N r = [ 1 5 , 2 4 , 4 4 , 4 6 , 4 7 , 4 8 , 4 9 , 5 0 , 5 1 , 5 2 , 5 4 , 5 5 , 5 6 , 5 7 , 5 8 , 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 , 7 1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7 8 , 7 9 , 8 0 , 8 1 , 8 2 , 8 3 , 8 4 ] , f e = [ 1 , 9 4 ] , s r = [ 1 , 9 5 ] , Y n = [ 1 , 9 6 ] , t r = [ 1 , 9 7 ] , u r = [ 1 5 , 2 4 , 5 2 ] , f n = [ 7 , 8 , 9 , 1 0 , 1 8 , 2 2 , 2 5 , 2 6 , 2 7 , 2 8 ] , E n = [ 1 5 , 2 4 , 4 3 , 5 2 ] , D r = [ 1 5 , 2 4 , 4 3 , 5 2 , 8 6 , 8 7 , 8 9 , 9 0 ] , h r = [ 1 5 , 4 3 ] , K i = [ 4 4 , 4 6 , 4 7 , 4 8 , 4 9 , 5 0 , 5 1 , 5 4 , 5 5 , 5 6 , 5 7 , 5 8 , 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 , 7 1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7 8 , 7 9 , 8 0 , 8 1 , 8 2 , 8 3 , 8 4 ] , I s = { t r a c e : f u n c t i o n ( ) { } , y y : { } , s y m b o l s _ : { e r r o r : 2 , s t a r t : 3 , m e r m a i d D o c : 4 , d i r e c t i o n : 5 , d i r e c t i v e : 6 , d i r e c t i o n _ t b : 7 , d i r e c t i o n _ b t : 8 , d i r e c t i o n _ r l : 9 , d i r e c t i o n _ l r : 1 0 , g r a p h C o n f i g : 1 1 , o p e n D i r e c t i v e : 1 2 , t y p e D i r e c t i v e : 1 3 , c l o s e D i r e c t i v e : 1 4 , N E W L I N E : 1 5 , " : " : 1 6 , a r g D i r e c t i v e : 1 7 , o p e n _ d i r e c t i v e : 1 8 , t y p e _ d i r e c t i v e : 1 9 , a r g _ d i r e c t i v e : 2 0 , c l o s e _ d i r e c t i v e : 2 1 , C 4 _ C O N T E X T : 2 2 , s t a t e m e n t s : 2 3 , E O F : 2 4 , C 4 _ C O N T A I N E R : 2 5 , C 4 _ C O M P O N E N T : 2 6 , C 4 _ D Y N A M I C : 2 7 , C 4 _ D E P L O Y M E N T : 2 8 , o t h e r S t a t e m e n t s : 2 9 , d i a g r a m S t a t e m e n t s : 3 0 , o t h e r S t a t e m e n t : 3 1 , t i t l e : 3 2 , a c c D e s c r i p t i o n : 3 3 , a c c _ t i t l e : 3 4 , a c c _ t i t l e _ v a l u e : 3 5 , a c c _ d e s c r : 3 6 , a c c _ d e s c r _ v a l u e : 3 7 , a c c _ d e s c r _ m u l t i l i n e _ v a l u e : 3 8 , b o u n d a r y S t a t e m e n t : 3 9 , b o u n d a r y S t a r t S t a t e m e n t : 4 0 , b o u n d a r y S t o p S t a t e m e n t : 4 1 , b o u n d a r y S t a r t : 4 2 , L B R A C E : 4 3 , E N T E R P R I S E _ B O U N D A R Y : 4 4 , a t t r i b u t e s : 4 5 , S Y S T E M _ B O U N D A R Y : 4 6 , B O U N D A R Y : 4 7 , C O N T A I N E R _ B O U N D A R Y : 4 8 , N O D E : 4 9 , N O D E _ L : 5 0 , N O D E _ R : 5 1 , R B R A C E : 5 2 , d i a g r a m S t a t e m e n t : 5 3 , P E R S O N : 5 4 , P E R S O N _ E X T : 5 5 , S Y S T E M : 5 6 , S Y S T E M _ D B : 5 7 , S Y S T E M _ Q U E U E : 5 8 , S Y S T E M _ E X T : 5 9 , S Y S T E M _ E X T _ D B : 6 0 , S Y S T E M _ E X T _ Q U E U E : 6 1 , C O N T A I N E R : 6 2 , C O N T A I N E R _ D B : 6 3 , C O N T A I N E R _ Q U E U E : 6 4 , C O N T A I N E R _ E X T : 6 5 , C O N T A I N E R _ E X T _ D B : 6 6 , C O N T A I N E R _ E X T _ Q U E U E : 6 7 , C O M P O N E N T : 6 8 , C O M P O N E N T _ D B : 6 9 , C O M P O N E N T _ Q U E U E : 7 0 , C O M P O N E N T _ E X T : 7 1 , C O M P O N E N T _ E X T _ D B : 7 2 , C O M P O N E N T _ E X T _ Q U E U E : 7 3 , R E L : 7 4 , B I R E L : 7 5 , R E L _ U : 7 6 , R E L _ D : 7 7 , R E L _ L : 7 8 , R E L _ R : 7 9 , R E L _ B : 8 0 , R E L _ I N D E X : 8 1 , U P D A T E _ E L _ S T Y L E : 8 2 , U P D A T E _ R E L _ S T Y L E : 8 3 , U P D A T E _ L A Y O U T _ C O N F I G : 8 4 , a t t r i b u t e : 8 5 , S T R : 8 6 , S T R _ K E Y : 8 7 , S T R _ V A L U E : 8 8 , A T T R I B U T E : 8 9 , A T T R I B U T E _ E M P T Y : 9 0 , $ a c c e p t : 0 , $ e n d : 1 } , t e r m i n a l s _ : { 2 : " e r r o r " , 7 : " d i r e c t i o n _ t b " , 8 : " d i r e c t i o n _ b t " , 9 : " d i r e c t i o n _ r l " , 1 0 : " d i r e c t i o n _ l r " , 1 5 : " N E W L I N E " , 1 6 : " : " , 1 8 : " o p e n _ d i r e c t i v e " , 1 9 : " t y p e _ d i r e c t i v e " , 2 0 : " a r g _ d i r e c t i v e " , 2 1 : " c l o s e _ d i r e c t i v e " , 2 2 : " C 4 _ C O N T E X T " , 2 4 : " E O F " , 2 5 : " C 4 _ C O N T A I N E R " , 2 6 : " C 4 _ C O M P O N E N T " , 2 7 : " C 4 _ D Y N A M I C " , 2 8 : " C 4 _ D E P L O Y M E N T " , 3 2 : " t i t l e " , 3 3 : " a c c D e s c r i p t i o n " , 3 4 : " a c c _ t i t l e " , 3 5 : " a c c _ t i t l e _ v a l u e " , 3 6 : " a c c _ d e s c r " , 3 7 : " a c c _ d e s c r _ v a l u e " , 3 8 : " a c c _ d e s c r _ m u l t i l i n e _ v a l u e " , 4 3 : " L B R A C E " , 4 4 : " E N T E R P R I S E _ B O U N D A R Y " , 4 6 : " S Y S T E M _ B O U N D A R Y " , 4 7 : " B O U N D A R Y " , 4 8 : " C O N T A I N E R _ B O U N D A R Y " , 4 9 : " N O D E " , 5 0 : " N O D E _ L " , 5 1 : " N O D E _ R " , 5 2 : " R B R A C E " , 5 4 : " P E R S O N " , 5 5 : " P E R S O N _ E X T " , 5 6 : " S Y S T E M " , 5 7 : " S Y S T E M _ D B " , 5 8 : " S Y S T E M _ Q U E U E " , 5 9 : " S Y S T E M _ E X T " , 6 0 : " S Y S T 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Es.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +He.join(", ")+", got '"+(this.terminals_[rl]||rl)+"'":Er="Parse error on line "+(ss+1)+": Unexpected "+(rl==Ea?"end of input":"'"+(this.terminals_[rl]||rl)+"'"),this.parseError(Er,{text:Es.match,token:this.terminals_[rl]||rl,line:Es.yylineno,loc:La,expected:He})}if(As[0]instanceof Array&&As.length>1)throw new Error("Parse Error: multiple actions possible at state: "+mu+", token: "+rl);switch(As[0]){case 1:Pr.push(rl),xi.push(Es.yytext),In.push(Es.yylloc),Pr.push(As[1]),rl=null,Aa=Es.yyleng,qn=Es.yytext,ss=Es.yylineno,La=Es.yylloc;break;case 2:if( $ u=this.productions_[As[1]][1],sd. $ =xi[xi.length- $ u],sd._ $ ={first_line:In[In.length-( $ u||1)].first_line,last_line:In[In.length-1].last_line,first_column:In[In.length-( $ u||1)].first_column,last_column:In[In.length-1].last_column},Va&&(sd._ $ .range=[In[In.length-( $ u||1)].range[0],In[In.length-1].range[1]]),gp=this.performAction.apply(sd,[qn,Aa,ss,Bs.yy,As[1],xi,In].concat(ga)),typeof gp<"u")return gp; $ u&&(Pr=Pr.slice(0,-1* $ u*2),xi=xi.slice(0,-1* $ u),In=In.slice(0,-1* $ u)),Pr.push(this.productions_[As[1]][0]),xi.push(sd. $ ),In.push(sd._ $ ),Gi=rc[Pr[Pr.length-2]][Pr[Pr.length-1]],Pr.push(Gi);break;case 3:return!0}}return!0}},Ha=function(){var qi={EOF:1,parseError:function(Zn,Pr){if(this.yy.parser)this.yy.parser.parseError(Zn,Pr);else throw new Error(Zn)},setInput:function(zn,Zn){return this.yy=Zn||this.yy||{},this._input=zn,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var zn=this._input[0];this.yytext+=zn,this.yyleng++,this.offset++,this.match+=zn,this.matched+=zn;var Zn=zn.match(/(?: \r \n ?| \n ).*/g);return Zn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),zn},unput:function(zn){var Zn=zn.length,Pr=zn.split(/(?: \r \n ?| \n )/g);this._input=zn+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Zn),this.offset-=Zn;var On=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Pr.length-1&&(this.yylineno-=Pr.length-1);var xi=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Pr?(Pr.length===On.length?this.yylloc.first_column:0)+On[On.length-Pr.length].length-Pr[0].length:this.yylloc.first_column-Zn},this.options.ranges&&(this.yylloc.range=[xi[0],xi[0]+this.yyleng-Zn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(zn){this.unput(this.match.slice(zn))},pastInput:function(){var zn=this.matched.substr(0,this.matched.length-this.match.length);return(zn.length>20?"...":"")+zn.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var zn=this.match;return zn.length<20&&(zn+=this._input.substr(0,20-zn.length)),(zn.substr(0,20)+(zn.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var zn=this.pastInput(),Zn=new Array(zn.length+1).join("-");return zn+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Zn+"^"},test_match:function(zn,Zn){var Pr,On,xi;if(this.options.backtrack_lexer&&(xi={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(xi.yylloc.range=this.yylloc.range.slice(0))),On=zn[0].match(/(?: \r \n ?| \n ).*/g),On&&(this.yylineno+=On.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:On?On[On.length-1].length-On[On.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+zn[0].length},this.yytext+=zn[0],this.match+=zn[0],this.matches=zn,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(zn[0].length),this.matched+=zn[0],Pr=this.performAction.call(this,this.yy,this,Zn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Pr)return Pr;if(this._backtrack){for(var In in xi)this[In]=xi[In];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var zn,Zn,Pr,On;this._more||(this.yytext="",this.match="");for(var xi=this._currentRules(),In=0;In<xi.length;In++)if(Pr=this._input.match(this.rules[xi[In]]),Pr&&(!Zn||Pr[0].length>Zn[0].length)){if(Zn=Pr,On=In,this.options.backtrack_lexer){if(zn=this.test_match(Pr,xi[In]),zn!==!1)return zn;if(this._backtrack){Zn=!1;continue}else return!1}else if(!this.options.flex)break}return Zn?(zn=this.test_match(Zn,xi[On]),zn!==!1?zn:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Zn=this.next();return Zn||this.lex()},begin:function(Zn){this.conditionStack.push(Zn)},popState:function(){var Zn=this.conditionStack.length-1;return Zn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Zn){return Zn=this.conditionStack.length-1-Math.abs(Zn||0),Zn>=0?this.conditionStack[Zn]:"INITIAL"},pushState:function(Zn){this.begin(Zn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Zn,Pr,On,xi){switch(On){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:break;case 19:c;break;case 20:return 15;case 21:break;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:return this.begin("node"),49;case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:return this.begin("rel_u"),76;case 58:return this.begin("rel_u"),76;case 59:return this.begin("rel_d"),77;case 60:return this.begin("rel_d"),77;case 61:return this.begin("rel_l"),78;case 62:return this.begin("rel_l"),78;case 63:return this.begin("rel_r"),79;case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:this.popState(),this.popState();break;case 74:return 90;case 75:break;case 76:return 90;case 77:this.begin("string");break;case 78:this.popState();break;case 79:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 84:this.popState(),this.popState();break;case 85:return"STR";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%% \{ )/,/^(?:.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . personBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . personBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,init:i=>{MOt.setConf(i.c4)}}},Symbol.toStringTag,{value:"Module"}));var bdt=function(){var i=function(fg,cs,zs,Ma){for(zs=zs||{},Ma=fg.length;Ma--;zs[fg[Ma]]=cs);return zs},a=[1,9],f=[1,7],p=[1,6],v=[1,8],m=[1,20,21,22,23,38,44,46,48,52,67,68,88,89,90,91,92,93,97,107,108,111,113,114,120,121,122,123,124,125,126,127,128,129],b=[2,10],E=[1,20],C=[1,21],D=[1,22],P=[1,23],B=[1,30],j=[1,32],R=[1,33],H=[1,34],Y=[1,63],it=[1,49],nt=[1,53],st=[1,36],pt=[1,37],Tt=[1,38],kt=[1,39],yt=[1,40],ht=[1,57],mt=[1,64],rt=[1,52],wt=[1,54],gt=[1,56],lt=[1,60],_t=[1,61],X=[1,41],Rt=[1,42],ft=[1,43],de=[1,44],J=[1,62],ae=[1,51],Wt=[1,55],It=[1,58],Nt=[1,59],me=[1,50],Ue=[1,67],_n=[1,72],_e=[1,20,21,22,23,38,42,44,46,48,52,67,68,88,89,90,91,92,93,97,107,108,111,113,114,120,121,122,123,124,125,126,127,128,129],rr=[1,76],Te=[1,75],ne=[1,77],Ee=[20,21,23,82,83],ye=[1,100],Vt=[1,105],Ae=[1,108],Gt=[1,109],un=[1,102],jt=[1,107],Ke=[1,110],oe=[1,103],Or=[1,115],Le=[1,114],Nr=[1,104],fe=[1,106],sr=[1,111],Yn=[1,112],tr=[1,113],ur=[1,116],fn=[20,21,22,23,82,83],En=[20,21,22,23,54,82,83],Dr=[20,21,22,23,40,52,54,56,58,60,62,64,66,67,68,70,72,74,75,77,82,83,93,97,107,108,111,113,114,124,125,126,127,128,129],hr=[20,21,23],Ki=[20,21,23,52,67,68,82,83,93,97,107,108,111,113,114,124,125,126,127,128,129],Is=[1,12,20,21,22,23,24,38,42,44,46,48,52,67,68,88,89,90,91,92,93,97,107,108,111,113,114,120,121,122,123,124,125,126,127,128,129],Ha=[52,67,68,93,97,107,108,111,113,114,124,125,126,127,128,129],hi=[1,151],qi=[1,159],zn=[1,160],Zn=[1,161],Pr=[1,162],On=[1,146],xi=[1,147],In=[1,142],rc=[1,143],qn=[1,154],ss=[1,155],Aa=[1,156],Ya=[1,157],Ea=[1,158],ga=[1,163],Es=[1,164],Bs=[1,149],Ta=[1,152],La=[1,148],Va=[1,145],sv=[20,21,22,23,38,42,44,46,48,52,67,68,88,89,90,91,92,93,97,107,108,111,113,114,120,121,122,123,124,125,126,127,128,129],rl=[1,167],mu=[20,21,22,23,26,52,67,68,93,107,108,111,113,114,124,125,126,127,128,129],As=[20,21,22,23,24,26,38,40,41,42,52,57,59,61,63,65,67,68,69,71,73,74,76,78,82,83,88,89,90,91,92,93,94,97,107,108,111,113,114,115,116,124,125,126,127,128,129],gp=[12,21,22,24],sd=[22,108],Rl=[1,252], $ u=[1,247],Gi=[1,248],He=[1,256],Er=[1,253],ci=[1,250],Xa=[1,249],kc=[1,251],yu=[1,254],mo=[1,255],xu=[1,257],cf=[1,275],x3=[20,21,23,108],v1=[20,21,22,23,67,68,88,104,107,108,111,112,113,114,115],k3={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,styledVertex:51,AMP:52,vertex:53,STYLE_SEPARATOR:54,idString:55,DOUBLECIRCLESTART:56,DOUBLECIRCLEEND:57,PS:58,PE:59,"(-":60,"-)":61,STADIUMSTART:62,STADIUMEND:63,SUBROUTINESTART:64,SUBROUTINEEND:65,VERTEX_WITH_PROPS_START:66,ALPHA:67,COLON:68,PIPE:69,CYLINDERSTART:70,CYLINDEREND:71,DIAMOND_START:72,DIAMOND_STOP:73,TAGEND:74,TRAPSTART:75,TRAPEND:76,INVTRAPSTART:77,INVTRAPEND:78,linkStatement:79,arrowText:80,TESTSTR:81,START_LINK:82,LINK:83,textToken:84,STR:85,MD_STR:86,keywords:87,STYLE:88,LINKSTYLE:89,CLASSDEF:90,CLASS:91,CLICK:92,DOWN:93,UP:94,textNoTags:95,textNoTagsToken:96,DEFAULT:97,stylesOpt:98,alphaNum:99,CALLBACKNAME:100,CALLBACKARGS:101,HREF:102,LINK_TARGET:103,HEX:104,numList:105,INTERPOLATE:106,NUM:107,COMMA:108,style:109,styleComponent:110,MINUS:111,UNIT:112,BRKT:113,DOT:114,PCT:115,TAGSTART:116,alphaNumToken:117,idStringToken:118,alphaNumStatement:119,direction_tb:120,direction_bt:121,direction_rl:122,direction_lr:123,PUNCTUATION:124,UNICODE_TEXT:125,PLUS:126,EQUALS:127,MULT:128,UNDERSCORE:129,graphCodeTokens:130,ARROW_CROSS:131,ARROW_POINT:132,ARROW_CIRCLE:
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +ah.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Wo.join(", ")+", got '"+(this.terminals_[w1]||w1)+"'":pk="Parse error on line "+(uf+1)+": Unexpected "+(w1==bp?"end of input":"'"+(this.terminals_[w1]||w1)+"'"),this.parseError(pk,{text:ah.match,token:this.terminals_[w1]||w1,line:ah.yylineno,loc:j5,expected:Wo})}if(od[0]instanceof Array&&od.length>1)throw new Error("Parse Error: multiple actions possible at state: "+vp+", token: "+w1);switch(od[0]){case 1:Ma.push(w1),Rc.push(ah.yytext),Ne.push(ah.yylloc),Ma.push(od[1]),w1=null,lm=ah.yyleng,We=ah.yytext,uf=ah.yylineno,j5=ah.yylloc;break;case 2:if(Ec=this.productions_[od[1]][1],av. $ =Rc[Rc.length-Ec],av._ $ ={first_line:Ne[Ne.length-(Ec||1)].first_line,last_line:Ne[Ne.length-1].last_line,first_column:Ne[Ne.length-(Ec||1)].first_column,last_column:Ne[Ne.length-1].last_column},_E&&(av._ $ .range=[Ne[Ne.length-(Ec||1)].range[0],Ne[Ne.length-1].range[1]]),hm=this.performAction.apply(av,[We,lm,uf,ad.yy,od[1],Rc,Ne].concat(B5)),typeof hm<"u")return hm;Ec&&(Ma=Ma.slice(0,-1*Ec*2),Rc=Rc.slice(0,-1*Ec),Ne=Ne.slice(0,-1*Ec)),Ma.push(this.productions_[od[1]][0]),Rc.push(av. $ ),Ne.push(av._ $ ),gk=pp[Ma[Ma.length-2]][Ma[Ma.length-1]],Ma.push(gk);break;case 3:return!0}}return!0}},vL=function(){var fg={EOF:1,parseError:function(zs,Ma){if(this.yy.parser)this.yy.parser.parseError(zs,Ma);else throw new Error(zs)},setInput:function(cs,zs){return this.yy=zs||this.yy||{},this._input=cs,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var cs=this._input[0];this.yytext+=cs,this.yyleng++,this.offset++,this.match+=cs,this.matched+=cs;var zs=cs.match(/(?: \r \n ?| \n ).*/g);return zs?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),cs},unput:function(cs){var zs=cs.length,Ma=cs.split(/(?: \r \n ?| \n )/g);this._input=cs+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-zs),this.offset-=zs;var Ei=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ma.length-1&&(this.yylineno-=Ma.length-1);var Rc=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ma?(Ma.length===Ei.length?this.yylloc.first_column:0)+Ei[Ei.length-Ma.length].length-Ma[0].length:this.yylloc.first_column-zs},this.options.ranges&&(this.yylloc.range=[Rc[0],Rc[0]+this.yyleng-zs]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(cs){this.unput(this.match.slice(cs))},pastInput:function(){var cs=this.matched.substr(0,this.matched.length-this.match.length);return(cs.length>20?"...":"")+cs.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var cs=this.match;return cs.length<20&&(cs+=this._input.substr(0,20-cs.length)),(cs.substr(0,20)+(cs.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var cs=this.pastInput(),zs=new Array(cs.length+1).join("-");return cs+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +zs+"^"},test_match:function(cs,zs){var Ma,Ei,Rc;if(this.options.backtrack_lexer&&(Rc={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Rc.yylloc.range=this.yylloc.range.slice(0))),Ei=cs[0].match(/(?: \r \n ?| \n ).*/g),Ei&&(this.yylineno+=Ei.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ei?Ei[Ei.length-1].length-Ei[Ei.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+cs[0].length},this.yytext+=cs[0],this.match+=cs[0],this.matches=cs,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(cs[0].length),this.matched+=cs[0],Ma=this.performAction.call(this,this.yy,this,zs,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ma)return Ma;if(this._backtrack){for(var Ne in Rc)this[Ne]=Rc[Ne];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var cs,zs,Ma,Ei;this._more||(this.yytext="",this.match="");for(var Rc=this._currentRules(),Ne=0;Ne<Rc.length;Ne++)if(Ma=this._input.match(this.rules[Rc[Ne]]),Ma&&(!zs||Ma[0].length>zs[0].length)){if(zs=Ma,Ei=Ne,this.options.backtrack_lexer){if(cs=this.test_match(Ma,Rc[Ne]),cs!==!1)return cs;if(this._backtrack){zs=!1;continue}else return!1}else if(!this.options.flex)break}return zs?(cs=this.test_match(zs,Rc[Ei]),cs!==!1?cs:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var zs=this.next();return zs||this.lex()},begin:function(zs){this.conditionStack.push(zs)},popState:function(){var zs=this.conditionStack.length-1;return zs>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(zs){return zs=this.conditionStack.length-1-Math.abs(zs||0),zs>=0?this.conditionStack[zs]:"INITIAL"},pushState:function(zs){this.begin(zs)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(zs,Ma,Ei,Rc){switch(Ei){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:return this.begin("acc_title"),44;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),46;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:this.begin("md_string");break;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("string");break;case 16:this.popState();break;case 17:return"STR";case 18:return 88;case 19:return 97;case 20:return 89;case 21:return 106;case 22:return 90;case 23:return 91;case 24:this.begin("href");break;case 25:this.popState();break;case 26:return 102;case 27:this.begin("callbackname");break;case 28:this.popState();break;case 29:this.popState(),this.begin("callbackargs");break;case 30:return 100;case 31:this.popState();break;case 32:return 101;case 33:this.begin("click");break;case 34:this.popState();break;case 35:return 92;case 36:return zs.lex.firstGraph()&&this.begin("dir"),24;case 37:return zs.lex.firstGraph()&&this.begin("dir"),24;case 38:return zs.lex.firstGraph()&&this.begin("dir"),24;case 39:return 38;case 40:return 42;case 41:return 103;case 42:return 103;case 43:return 103;case 44:return 103;case 45:return this.popState(),25;case 46:return this.popState(),26;case 47:return this.popState(),26;case 48:return this.popState(),26;case 49:return this.popState(),26;case 50:return this.popState(),26;case 51:return this.popState(),26;case 52:return this.popState(),26;case 53:return this.popState(),26;case 54:return this.popState(),26;case 55:return this.popState(),26;case 56:return 120;case 57:return 121;case 58:return 122;case 59:return 123;case 60:return 107;case 61:return 113;case 62:return 54;case 63:return 68;case 64:return 52;case 65:return 20;case 66:return 108;case 67:return 128;case 68:return 83;case 69:return 83;case 70:return 83;case 71:return 83;case 72:return 82;case 73:return 82;case 74:return 82;case 75:return 60;case 76:return 61;case 77:return 62;case 78:return 63;case 79:return 64;case 80:return 65;case 81:return 66;case 82:return 70;case 83:return 71;case 84:return 56;case 85:return 57;case 86:return 111;case 87:return 114;case 88:return 129;case 89:return 126;case 90:return 115;case 91:return 127;case 92:return 127;case 93:return 116;case 94:return 74;case 95:return 94;case 96:return"SEP";case 97:return 93;case 98:return 67;case 99:return 76;case 100:return 75;case 101:return 78;case 102:return 77;case 103:return 124;case 104:return 125;case 105:return 69;case 106:return 58;case 107:return 59;case 108:return 40;case 109:return 41;case 110:return 72;case 111:return 73;case 112:return 135;case 113:return 21;case 114:return 22;case 115:return 23}},rules:[/^(?:%% \{ )/,/^(?:((?:(?! \} %%)[^:.])*))/,/^(?::)/,/^(?: \} %%)/,/^(?:((?:(?! \} %%).| \n )*))/,/^(?:accTitle \s *: \s *)/,/^(?:(?! \n ||)*[^ \n ]*)/,/^(?:accDescr \s *: \s *)/,/^(?:(?! \n ||)*[^ \n ]*)/,/^(?:accDescr \s * \{ \s *)/,/^(?:[ \} ])/,/^(?:[^ \} ]*)/,/^(?:["][ ` ] ) / , /^(?:[^`"]+)/ , /^(?:[`]["])/ , /^(?:["])/ , /^(?:["])/ , /^(?:[^"]*)/ , /^(?:style\b)/ , /^(?:default\b)/ , /^(?:linkStyle\b)/ , / ^ ( ? : i n t e r p o l a t  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),v=0;v<p.length;v++)f.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(p[v]);return d3(f,a.labelStyle),f}function pFe(i){for(var a="",f=!1,p,v=0;v<i.length;++v)if(p=i[v],f){switch(p){case"n":a+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;break;default:a+=p}f=!1}else p===" \\ "?f=!0:a+=p;return a}function Zdt(i,a,f){var p=a.label,v=i.append("g");a.labelType==="svg"?dFe(v,a):typeof p!="string"||a.labelType==="html"?Qdt(v,a):gFe(v,a);var m=v.node().getBBox(),b;switch(f){case"top":b=-a.height/2;break;case"bottom":b=a.height/2-m.height;break;default:b=-m.height/2}return v.attr("transform","translate("+-m.width/2+","+b+")"),v}var Jdt=function(i,a){var f=a.nodes().filter(function(m){return NPt(a,m)}),p=i.selectAll("g.cluster").data(f,function(m){return m});rm(p.exit(),a).style("opacity",0).remove();var v=p.enter().append("g").attr("class","cluster").attr("id",function(m){var b=a.node(m);return b.id}).style("opacity",0).each(function(m){var b=a.node(m),E=Mr(this);Mr(this).append("rect");var C=E.append("g").attr("class","label");Zdt(C,b,b.clusterLabelPos)});return p=p.merge(v),p=rm(p,a).style("opacity",1),p.selectAll("rect").each(function(m){var b=a.node(m),E=Mr(this);d3(E,b.style)}),p};function bFe(i){Jdt=i}let t0t=function(i,a){var f=i.selectAll("g.edgeLabel").data(a.edges(),function(v){return PPt(v)}).classed("update",!0);f.exit().remove(),f.enter().append("g").classed("edgeLabel",!0).style("opacity",0),f=i.selectAll("g.edgeLabel"),f.each(function(v){var m=Mr(this);m.select(".label").remove();var b=a.edge(v),E=Zdt(m,a.edge(v),0).classed("label",!0),C=E.node().getBBox();b.labelId&&E.attr("id",b.labelId),eo(b,"width")||(b.width=C.width),eo(b,"height")||(b.height=C.height)});var p;return f.exit?p=f.exit():p=f.selectAll(null),rm(p,a).style("opacity",0).remove(),f};function vFe(i){t0t=i}function BPt(i,a){return i.intersect(a)}var e0t=function(i,a,f){var p=i.selectAll("g.edgePath").data(a.edges(),function(b){return PPt(b)}).classed("update",!0),v=kFe(p,a);EFe(p,a);var m=p.merge!==void 0?p.merge(v):p;return rm(m,a).style("opacity",1),m.each(function(b){var E=Mr(this),C=a.edge(b);C.elem=this,C.id&&E.attr("id",C.id),FPt(E,C.class,(E.classed("update")?"update ":"")+"edgePath")}),m.selectAll("path.path").each(function(b){var E=a.edge(b);E.arrowheadId=nK("arrowhead");var C=Mr(this).attr("marker-end",function(){return"url("+mFe(location.href,E.arrowheadId)+")"}).style("fill","none");rm(C,a).attr("d",function(D){return yFe(a,D)}),d3(C,E.style)}),m.selectAll("defs *").remove(),m.selectAll("defs").each(function(b){var E=a.edge(b),C=f[E.arrowhead];C(Mr(this),E.arrowheadId,E,"arrowhead")}),m};function wFe(i){e0t=i}function mFe(i,a){var f=i.split("#")[0];return f+"#"+a}function yFe(i,a){var f=i.edge(a),p=i.node(a.v),v=i.node(a.w),m=f.points.slice(1,f.points.length-1);return m.unshift(BPt(p,m[0])),m.push(BPt(v,m[m.length-1])),RPt(f,m)}function RPt(i,a){var f=(X9||r8e.line)().x(function(p){return p.x}).y(function(p){return p.y});return(f.curve||f.interpolate)(i.curve),f(a)}function xFe(i){var a=i.getBBox(),f=i.ownerSVGElement.getScreenCTM().inverse().multiply(i.getScreenCTM()).translate(a.width/2,a.height/2);return{x:f.e,y:f.f}}function kFe(i,a){var f=i.enter().append("g").attr("class","edgePath").style("opacity",0);return f.append("path").attr("class","path").attr("d",function(p){var v=a.edge(p),m=a.node(p.v).elem,b=dE(v.points.length).map(function(){return xFe(m)});return RPt(v,b)}),f.append("defs"),f}function EFe(i,a){var f=i.exit();rm(f,a).style("opacity",0).remove()}var n0t=function(i,a,f){var p=a.nodes().filter(function(b){return!NPt(a,b)}),v=i.selectAll("g.node").data(p,function(b){return b}).classed("update",!0);v.exit().remove(),v.enter().append("g").attr("class","node").style("opacity",0),v=i.selectAll("g.node"),v.each(function(b){var E=a.node(b),C=Mr(this);FPt(C,E.class,(C.classed("update")?"update ":"")+"node"),C.select("g.label").remove();var D=C.append("g").attr("class","label"),P=Zdt(D,E),B=f[E.shape],j=aP(P.node().getBBox(),"width","height");E.elem=this,E.id&&C.attr("id",E.id),E.labelId&&D.attr("id",E.labelId),eo(E,"width")&&(j.width=E.width),eo(E,"height")&&(j.height=E.height),j.width+=E.paddingLeft+E.paddingRight,j.height+=E.paddingTop+E.paddingBottom,D.attr("transform","translate("+(E.paddingLeft-E.paddingRight)/2+","+(E.paddingTop-E.paddingBottom)/2+")");var R
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),b.style===void 0&&(P.style=P.style||"stroke: #333; stroke-width: 1.5px;fill:none"),P.labelStyle=P.labelStyle.replace("color:","fill:"))),P.id=E,P.class=C+" "+D,P.minlen=b.length||1,a.setEdge(f.db.lookUpDomId(b.start),f.db.lookUpDomId(b.end),P,p)})},VFe={setConf:HFe,addVertices:JPt,addEdges:tFt,getClasses:function(i,a){zt.info("Extracting classes"),a.db.clear();try{return a.parse(i),a.db.getClasses()}catch(f){return zt.error(f),{}}},draw:function(i,a,f,p){zt.info("Drawing flowchart"),p.db.clear();const{securityLevel:v,flowchart:m}=Oe();let b;v==="sandbox"&&(b=Mr("#i"+a));const E=Mr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),C=v==="sandbox"?b.nodes()[0].contentDocument:document;try{p.parser.parse(i)}catch{zt.debug("Parsing failed")}let D=p.db.getDirection();D===void 0&&(D="TD");const P=m.nodeSpacing||50,B=m.rankSpacing||50,j=new jf({multigraph:!0,compound:!0}).setGraph({rankdir:D,nodesep:P,ranksep:B,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let R;const H=p.db.getSubGraphs();for(let yt=H.length-1;yt>=0;yt--)R=H[yt],p.db.addVertex(R.id,R.title,"group",void 0,R.classes);const Y=p.db.getVertices();zt.warn("Get vertices",Y);const it=p.db.getEdges();let nt=0;for(nt=H.length-1;nt>=0;nt--){R=H[nt],jft("cluster").append("text");for(let yt=0;yt<R.nodes.length;yt++)zt.warn("Setting subgraph",R.nodes[yt],p.db.lookUpDomId(R.nodes[yt]),p.db.lookUpDomId(R.id)),j.setParent(p.db.lookUpDomId(R.nodes[yt]),p.db.lookUpDomId(R.id))}JPt(Y,j,a,E,C,p),tFt(it,j,p);const st=new PFe;qFe.addToRender(st),st.arrows().none=function(ht,mt,rt,wt){const lt=ht.append("marker").attr("id",mt).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 0 0 L 0 0 z");d3(lt,rt[wt+"Style"])},st.arrows().normal=function(ht,mt){ht.append("marker").attr("id",mt).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowheadPath").style("stroke-width",1).style("stroke-dasharray","1,0")};const pt=E.select( ` [ id = "${a}" ] ` ),Tt=E.select("#"+a+" g");for(st(Tt,j),Tt.selectAll("g.node").attr("title",function(){return p.db.getTooltip(this.id)}),p.db.indexNodes("subGraph"+nt),nt=0;nt<H.length;nt++)if(R=H[nt],R.title!=="undefined"){const yt=C.querySelectorAll("#"+a+' [id="'+p.db.lookUpDomId(R.id)+'"] rect'),ht=C.querySelectorAll("#"+a+' [id="'+p.db.lookUpDomId(R.id)+'"]'),mt=yt[0].x.baseVal.value,rt=yt[0].y.baseVal.value,wt=yt[0].width.baseVal.value,lt=Mr(ht[0]).select(".label");lt.attr("transform", ` translate ( $ { mt + wt / 2 } ,  $ { rt + 14 } ) ` ),lt.attr("id",a+"Text");for(let _t=0;_t<R.classes.length;_t++)ht[0].classList.add(R.classes[_t])}if(!m.htmlLabels){const yt=C.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const ht of yt){const mt=ht.getBBox(),rt=C.createElementNS("http://www.w3.org/2000/svg","rect");rt.setAttribute("rx",0),rt.setAttribute("ry",0),rt.setAttribute("width",mt.width),rt.setAttribute("height",mt.height),ht.insertBefore(rt,ht.firstChild)}}J9(j,pt,m.diagramPadding,m.useMaxWidth),Object.keys(Y).forEach(function(yt){const ht=Y[yt];if(ht.link){const mt=E.select("#"+a+' [id="'+p.db.lookUpDomId(yt)+'"]');if(mt){const rt=C.createElementNS("http://www.w3.org/2000/svg","a");rt.setAttributeNS("http://www.w3.org/2000/svg","class",ht.classes.join(" ")),rt.setAttributeNS("http://www.w3.org/2000/svg","href",ht.link),rt.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),v==="sandbox"?rt.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):ht.linkTarget&&rt.setAttributeNS("http://www.w3.org/2000/svg","target",ht.linkTarget);const wt=mt.insert(function(){return rt},":first-child"),gt=mt.select(".label-container");gt&&wt.append(function(){return gt.node()});const lt=mt.select(".label");lt&&wt.append(function(){return lt.node()})}}})}};function S5(i){var a={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isC
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;break}case-3:{b= ` \ r  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
										 
							
							
								` ;break}case-2:{b=a?" ":"	";break}case-1:{if(!a&&v)continue;b=" ";break}default:b=String.fromCharCode(m)}v=m===-2,p.push(b)}return p.join("")}const DRe={[42]:hp,[43]:hp,[45]:hp,[48]:hp,[49]:hp,[50]:hp,[51]:hp,[52]:hp,[53]:hp,[54]:hp,[55]:hp,[56]:hp,[57]:hp,[62]:uFt},IRe={[91]:PBe},ORe={[-2]:l0t,[-1]:l0t,[32]:l0t},NRe=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:{null:[42,95]},contentInitial:IRe,disable:{null:[]},document:DRe,flow:{[35]:zBe,[42]:sK,[45]:[mFt,sK],[60]:GBe,[61]:mFt,[95]:sK,[96]:dFt,[126]:dFt},flowInitial:ORe,insideSpan:{null:[c0t,TRe]},string:{[38]:fFt,[92]:lFt},text:{[-5]:f0t,[-4]:f0t,[-3]:f0t,[33]:oRe,[38]:fFt,[42]:c0t,[60]:[dBe,XBe],[91]:uRe,[92]:[jBe,lFt],[93]:h0t,[95]:c0t,[96]:_Be}},Symbol.toStringTag,{value:"Module"}));function PRe(i={}){const a=ZFe([NRe].concat(i.extensions||[])),f={defined:[],lazy:{},constructs:a,content:p(aBe),document:p(cBe),flow:p(kRe),string:p(_Re),text:p(CRe)};return f;function p(v){return m;function m(b){return ARe(f,v,b)}}}const kFt=/[ \0 \t \n \r ]/g;function FRe(){let i=1,a="",f=!0,p;return v;function v(m,b,E){const C=[];let D,P,B,j,R;for(m=a+m.toString(b),B=0,a="",f&&(m.charCodeAt(0)===65279&&B++,f=void 0);B<m.length;){if(kFt.lastIndex=B,D=kFt.exec(m),j=D&&D.index!==void 0?D.index:m.length,R=m.charCodeAt(j),!D){a=m.slice(B);break}if(R===10&&B===j&&p)C.push(-3),p=void 0;else switch(p&&(C.push(-5),p=void 0),B<j&&(C.push(m.slice(B,j)),i+=j-B),R){case 0:{C.push(65533),i++;break}case 9:{for(P=Math.ceil(i/4)*4,C.push(-2);i++<P;)C.push(-1);break}case 10:{C.push(-4),i=1;break}default:p=!0,i=1}B=j+1}return E&&(p&&C.push(-5),a&&C.push(a),C.push(null)),C}}function BRe(i){for(;!gFt(i););return i}function EFt(i,a){const f=Number.parseInt(i,a);return f<9||f===11||f>13&&f<32||f>126&&f<160||f>55295&&f<57344||f>64975&&f<65008||(f&65535)===65535||(f&65535)===65534||f>1114111?"<22> ":String.fromCharCode(f)}const RRe=/ \\ ([!-/:-@[- ` { - ~ ] ) | & ( # ( ? : \ d { 1 , 7 } | x [ \ da - f ] { 1 , 6 } ) | [ \ da - z ] { 1 , 31 } ) ; / g i ; f u n c t i o n   j R e ( i ) { r e t u r n   i . r e p l a c e ( R R e , $ R e ) } f u n c t i o n   $ R e ( i , a , f ) { i f ( a ) r e t u r n   a ; i f ( f . c h a r C o d e A t ( 0 ) = = = 3 5 ) { c o n s t   v = f . c h a r C o d e A t ( 1 ) , m = v = = = 1 2 0 | | v = = = 8 8 ; r e t u r n   E F t ( f . s l i c e ( m ? 2 : 1 ) , m ? 1 6 : 1 0 ) } r e t u r n   u 0 t ( f ) | | i } f u n c t i o n   a K ( i ) { r e t u r n ! i | | t y p e o f   i ! = " o b j e c t " ? " " : " p o s i t i o n " i n   i | | " t y p e " i n   i ? T F t ( i . p o s i t i o n ) : " s t a r t " i n   i | | " e n d " i n   i ? T F t ( i ) : " l i n e " i n   i | | " c o l u m n " i n   i ? d 0 t ( i ) : " " } f u n c t i o n   d 0 t ( i ) { r e t u r n   _ F t ( i & & i . l i n e ) + " : " + _ F t ( i & & i . c o l u m n ) } f u n c t i o n   T F t ( i ) { r e t u r n   d 0 t ( i & & i . s t a r t ) + " - " + d 0 t ( i & & i . e n d ) } f u n c t i o n   _ F t ( i ) { r e t u r n   i & & t y p e o f   i = = " n u m b e r " ? i : 1 } c o n s t   C F t = { } . h a s O w n P r o p e r t y , S F t = f u n c t i o n ( i , a , f ) { r e t u r n   t y p e o f   a ! = " s t r i n g " & & ( f = a , a = v o i d   0 ) , z R e ( f ) ( B R e ( P R e ( f ) . d o c u m e n t ( ) . w r i t e ( F R e ( ) ( i , a , ! 0 ) ) ) ) } ; f u n c t i o n   z R e ( i ) { c o n s t   a = { t r a n s f o r m s : [ ] , c a n C o n t a i n E o l s : [ " e m p h a s i s " , " f r a g m e n t " , " h e a d i n g " , " p a r a g r a p h " , " s t r o n g " ] , e n t e r : { a u t o l i n k : E ( L e ) , a u t o l i n k P r o t o c o l : g t , a u t o l i n k E m a i l : g t , a t x H e a d i n g : E ( j t ) , b l o c k Q u o t e : E ( y e ) , c h a r a c t e r E s c a p e : g t , c h a r a c t e r R e f e r e n c e : g t , c o d e F e n c e d : E ( V t ) , c o d e F e n c e d F e n c e I n f o : C , c o d e F e n c e d F e n c e M e t a : C , c o d e I n d e n t e d : E ( V t , C ) , c o d e T e x t : E ( A e , C ) , c o d e T e x t D a t a : g t , d a t a : g t , c o d e F l o w V a l u e : g t , d e f i n i t i o n : E ( G t ) , d e f i n i t i o n D e s t i n a t i o n S t r i n g : C , d e f i n i t i o n L a b e l S t r i n g : C , d e f i n i t i o n T i t l e S t r i n g : C , e m p h a s i s : E ( u n ) , h a r d B r e a k E s c a p e : E ( K e ) , h a r d B r e a k T r a i l i n g : E ( K e ) , h t m l F l o w : E ( o e , C ) , h t m l F l o w D a t a : g t , h t m l T e x t : E ( o e , C ) , h t m l T e x t D a t a : g t , i m a g e : E ( O r ) , l a b e l : C , l i n k : E ( L e ) , l i s t I t e m : E ( f e ) , l i s t I t e m V a l u e : H , l i s t O r d e r e d : E ( N r , R ) , l i s t U n o r d e r e d : E ( N r ) , p a r a g r a p h : E ( s r ) , r e f e r e n c e : _ n , r e f e r e n c e S t r i n g : C , r e s o u r c e D e s t i n a t i o n S t r i n g : C , r e s o u r c e T i t l e S t r i n g : C , s e t e x t H e a d i n g : E ( j t ) , s t r o n g : E ( Y n ) , t h e m a t i c B r e a k : E ( u r ) } , e x i t : { a t x H e a d i n g : P ( ) , a t x H e a d i n g S e q u e n c e : h t , a u t o l i n k : P ( ) , a u t o l i n k E m a i l : E e , a u t o l i n k P r o t o c o l : n e , b l o c k Q u o t e : P ( ) , c h a r a c t e r E s c a p e V a l u e : l t , c h a r a c t e r R e f e r e n c e M a r k e r H e x a d e c i m a l : r r , c h a r a c t e r R e f e r e n c e M a r k e r N u m e r i c : r r , c h a r a c t e r R e f e r e n c e V a l u e : T e , c o d e F e n c e d : P ( s t ) , c o d e F e n c e d F e n c e : n t , c o d e F e n c e d F e n c e I n f o : Y , c o d e F e n c e d F e n c e M e t a : i t , c o d e F l o w V a l u e : l t , c o d e I n d e n t e d : P ( p t ) , c o d e T e x t : P ( d e ) , c o d e T e x t D a t a : l t , d a t a : l t , d e f i n i t i o n : P ( ) , d e f i n i t i o n D e s t i n a t i o n S t r i n g : y t , d e f i n i t i o n L a b e l S t r i n g : T t , d e f i n i t i o n T i t l e S t r i n g : k t , e m p h a s i s : P ( ) , h a r d B r e a k E s c a p e : P ( X ) , h a r d B r e a k T r a i l i n g : P ( X ) , h t m l F l o w : P ( R t ) , h t m l F l o w D a t a : l t , h t m l T e x t : P ( f t ) , h t m l T e x t D a t a : l t , i m a g e : P ( a e ) ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );return dA(a)}function VRe(i){const a=HRe(i),{children:f}=SFt(a),p=[[]];let v=0;function m(b,E="normal"){b.type==="text"?b.value.split( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ).forEach((D,P)=>{P!==0&&(v++,p.push([])),D.split(" ").forEach(B=>{B&&p[v].push({content:B,type:E})})}):(b.type==="strong"||b.type==="emphasis")&&b.children.forEach(C=>{m(C,b.type)})}return f.forEach(b=>{b.type==="paragraph"&&b.children.forEach(E=>{m(E)})}),p}function GRe(i){const{children:a}=SFt(i);function f(p){return p.type==="text"?p.value.replace(/ \n /g,"<br/>"):p.type==="strong"? ` < strong > $ { p . children . map ( f ) . join ( "" ) } < / s t r o n g > ` : p . t y p e = = = " e m p h a s i s " ? ` < e m > $ { p . c h i l d r e n . m a p ( f ) . j o i n ( " " ) } < / e m > ` : p . t y p e = = = " p a r a g r a p h " ? ` < p > $ { p . c h i l d r e n . m a p ( f ) . j o i n ( " " ) } < / p > ` : ` U n s u p p o r t e d   m a r k d o w n :   $ { p . t y p e } ` } r e t u r n   a . m a p ( f ) . j o i n ( " " ) } f u n c t i o n   U R e ( i , a ) { a & & i . a t t r ( " s t y l e " , a ) } f u n c t i o n   W R e ( i , a , f , p , v = ! 1 ) { c o n s t   m = i . a p p e n d ( " f o r e i g n O b j e c t " ) , b = m . a p p e n d ( " x h t m l : d i v " ) , E = a . l a b e l , C = a . i s N o d e ? " n o d e L a b e l " : " e d g e L a b e l " ; b . h t m l ( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    < span  class = "${C} ${p}"  ` +(a.labelStyle?'style="'+a.labelStyle+'"':"")+">"+E+"</span>"),URe(b,a.labelStyle),b.style("display","table-cell"),b.style("white-space","nowrap"),b.style("max-width",f+"px"),b.attr("xmlns","http://www.w3.org/1999/xhtml"),v&&b.attr("class","labelBkg");let D=b.node().getBoundingClientRect();return D.width===f&&(b.style("display","table"),b.style("white-space","break-spaces"),b.style("width",f+"px"),D=b.node().getBoundingClientRect()),m.style("width",D.width),m.style("height",D.height),m.node()}function MFt(i,a,f){return i.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",a*f-.1+"em").attr("dy",f+"em")}function DFt(i,a,f){const p=i.append("text"),v=MFt(p,1,a);IFt(v,[{content:f,type:"normal"}]);const m=v.node().getComputedTextLength();return p.remove(),m}function KRe(i,a,f,p=!1){const m=a.append("g");let b=m.insert("rect").attr("class","background");const E=m.append("text").attr("y","-10.1");let C=0;if(f.forEach(D=>{let P=D.map(Y=>Y.content).join(" "),B="",j=[],R=0;if(DFt(m,1.1,P)<=i)j.push(P);else{for(let Y=0;Y<=P.length;Y++)if(B=P.slice(R,Y),zt.info(B,R,Y),DFt(m,1.1,B)>i){const nt=P.slice(R,Y).lastIndexOf(" ");nt>-1&&(Y=R+nt+1),j.push(P.slice(R,Y).trim()),R=Y,B=null}B!=null&&j.push(B)}const H=j.map(Y=>({content:Y,type:D.type}));for(const Y of H){let it=MFt(E,C,1.1);IFt(it,[Y]),C++}}),p){const D=E.node().getBBox(),P=2;return b.attr("x",-P).attr("y",-P).attr("width",D.width+2*P).attr("height",D.height+2*P),m.node()}else return E.node()}function IFt(i,a){i.text(""),a.forEach((f,p)=>{const v=i.append("tspan").attr("font-style",f.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",f.type==="strong"?"bold":"normal");p===0?v.text(f.content):v.text(" "+f.content)})}const oK=(i,a="",{style:f="",isTitle:p=!1,classes:v="",useHtmlLabels:m=!0,isNode:b=!0,width:E,addSvgBackground:C=!1}={})=>{if(zt.info("createText",a,f,p,v,m,b,C),m){const D=GRe(a),P={isNode:b,label:YN(D).replace(/fa[blrs]?:fa-[ \w -]+/g,j=> ` < i  class = '${j.replace(":"," ")}' > < / i > ` ) , l a b e l S t y l e : f . r e p l a c e ( " f i l l : " , " c o l o r : " ) } ; r e t u r n   W R e ( i , P , E , v , C ) } e l s e { c o n s t   D = V R e ( a ) ; r e t u r n   K R e ( E , i , D , C ) } } , R d = a s y n c ( i , a , f , p ) = > { l e t   v ; c o n s t   m = a . u s e H t m l L a b e l s | | h 1 ( O e ( ) . f l o w c h a r t . h t m l L a b e l s ) ; f ? v = f : v = " n o d e   d e f a u l t " ; c o n s t   b = i . i n s e r t ( " g " ) . a t t r ( " c l a s s " , v ) . a t t r ( " i d " , a . d o m I d | | a . i d ) , E = b . i n s e r t ( " g " ) . a t t r ( " c l a s s " , " l a b e l " ) . a t t r ( " s t y l e " , a . l a b e l S t y l e ) ; l e t   C ; a . l a b e l T e x t = = = v o i d   0 ? C = " " : C = t y p e o f   a . l a b e l T e x t = = " s t r i n g " ? a . l a b e l T e x t : a . l a b e l T e x t [ 0 ] ; c o n s t   D = E . n o d e ( ) ; l e t   P ; a . l a b e l T y p e = = = " m a r k d o w n " ? P = o K ( E , s g ( Y N ( C ) , O e ( ) ) , { u s e H t m l L a b e l s : m , w i d t h : a . w i d t h | | O e ( ) . f l o w c h a r t . w r a p p i n g W i d t h , c l a s s e s : " m a r k d o w n - n o d e - l a b e l " } ) : P = D . a p p e n d C h i l d ( l p ( s g ( Y N ( C ) , O e ( ) ) , a . l a b e l S t y l e , ! 1 , p ) ) ; l e t   B = P . g e t B B o x ( ) ; c o n s t   j = a . p a d d i n g / 2 ; i f ( h 1 ( O e ( ) . f l o w c h a r t . h t m l L a b e l s ) ) { c o n s t   R = P . c h i l d r e n [ 0 ] , H = M r ( P ) , Y = R . g e t E l e m e n t s B y T a g N a m e ( " i m g " ) ; i f ( Y ) { c o n s t   i t = C . r e p l a c e ( / < i m g [ ^ > ] * > / g , " " ) . t r i m ( ) = = = " " ; a w a i t   P r o m i s e . a l l ( [ . . . Y ] . m a p ( n t = > n e w   P r o m i s e ( s t = > n t . a d d E v e n t L i s t e n e r ( " l o a d " , f u n c t i o n ( ) { i f ( n t . s t y l e . d i s p l a y = " f l e x " , n t . s t y l e . f l e x D i r e c t i o n = " c o l u m n " , i t ) { c o n s t   p t = O e ( ) . f o n t S i z e ? O e ( ) . f o n t S i z e : w i n d o w . g e t C o m p u t e d S t y l e ( d o c u m e n t . b o d y ) . f o n t S i z e , T t = 5 ; n t . s t y l e . w i d t h = p a r s e I n t ( p t , 1 0 ) * T t + " p x " } e l s e   n t . s t y l e . w i d t h = " 1 0 0 % " ; s t ( n t ) } ) ) ) ) } B = R . g e t B o u n d i n g C l i e n t R e c t ( ) , H . a t t r ( " w i d t h " , B . w i d t h ) , H . a t t r ( " h e i g h t " , B . h e i g h t ) } r e t u r n   m ? E . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( " + - B . w i d t h / 2 + " ,   " + - B . h e i g h t / 2 + " ) " ) : E . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( 0 ,   " + - B . h e i g h t / 2 + " ) " ) , a . c e n t e r L a b e l & & E . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( " + - B . w i d t h / 2 + " ,   " + - B . h e i g h t / 2 + " ) " ) , E . i n s e r t ( " r e c t " , " : f i r s t - c h i l d " ) , { s h a p e S v g : b , b b o x : B , h a l f P a d d i n g : j , l a b e l : E } } , a f = ( i , a ) = > { c o n s t   f = a . n o d e ( ) . g e t B B o x ( ) ; i . w i d t h = f . w i d t h , i . h e i g h t = f . h e i g h t } ; f u n c t i o n   A 5 ( i , a , f , p ) { r e t u r n   i . i n s e r t ( " p o l y g o n " , " : f i r s t - c h i l d " ) . a t t r ( " p o i n t s " , p . m a p ( f u n c t i o n ( v ) { r e t u r n   v . x + " , " + v . y } ) . j o i n ( "   " ) ) . a t t r ( " c l a s s " , " l a b e l - c o n t a i n e r " ) . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( " + - a / 2 + " , " + f / 2 + " ) " ) } l e t   n c = { } , s m = { } , O F t = { } ; c o n s t   Y R e = ( ) = > { s m = { } , O F t = { } , n c = { } } , c K = ( i , a ) = > ( z t . t r a c e ( " I n   i s D e c e n d a n t " , a , "   " , i , "   =   " , s m [ a ] . i n c l u d e s ( i ) ) , ! ! s m [ a ] . i n c l u d e s ( i ) ) , X R e = ( i , a ) = > ( z t . i n f o ( " D e c e n d a n t s   o f   " , a , "   i s   " , s m [ a ] ) , z t . i n f o ( " E d g e   i s   " , i ) , i . v = = = a | | i . w = = = a ? ! 1 : s m [ a ] ? s m [ a ] . i n c l u d 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );C.forEach(function(j){zt.debug( ` Adding  line :  $ { j } ` ),E.append("tspan").text(j).attr("class","title").attr("dy",f.textHeight)});const D=b.node().getBBox(),B=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",D.width+2*f.padding).attr("height",D.height+C.length*f.textHeight+f.padding+.5*f.dividerMargin).node().getBBox().width;return E.node().childNodes.forEach(function(j){j.setAttribute("x",(B-j.getBBox().width)/2)}),m.width=B,m.height=D.height+C.length*f.textHeight+f.padding+.5*f.dividerMargin,m},lK=function(i){let a="",f="",p="",v="",m=i.substring(0,1),b=i.substring(i.length-1,i.length);m.match(/[#+~-]/)&&(v=m);let E=/[ \s \w )~]/;b.match(E)||(f=HFt(b));const C=v===""?0:1;let D=f===""?i.length:i.length-1;i=i.substring(C,D);const P=i.indexOf("("),B=i.indexOf(")");if(P>1&&B>P&&B<=i.length){let R=i.substring(0,P).trim();const H=i.substring(P+1,B);if(a=v+R+"("+RN(H.trim())+")",B<i.length){let Y=i.substring(B+1,B+2);f===""&&!Y.match(E)?(f=HFt(Y),p=i.substring(B+2).trim()):p=i.substring(B+1).trim(),p!==""&&(p.charAt(0)===":"&&(p=p.substring(1).trim()),p=" : "+RN(p),a+=p)}}else a=v+RN(i);return{displayText:a,cssStyle:f}},qFt=function(i,a,f,p){let v=lK(a);const m=i.append("tspan").attr("x",p.padding).text(v.displayText);v.cssStyle!==""&&m.attr("style",v.cssStyle),f||m.attr("dy",p.textHeight)},HFt=function(i){switch(i){case"*":return"font-style:italic;";case" $ ":return"text-decoration:underline;";default:return""}},g0t={getClassTitleString:zFt,drawClass:sje,drawEdge:ije,drawNote:aje,parseMember:lK},VFt=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=p.width+a.padding,m=p.height+a.padding,b=v+m,E=[{x:b/2,y:0},{x:b,y:-b/2},{x:b/2,y:-b},{x:0,y:-b/2}];zt.info("Question main (Circle)");const C=A5(f,b,b,E);return C.attr("style",a.style),af(a,C),a.intersect=function(D){return zt.warn("Intersect called"),Ah.polygon(a,E,D)},f},oje=(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),p=28,v=[{x:0,y:p/2},{x:p/2,y:0},{x:0,y:-p/2},{x:-p/2,y:0}];return f.insert("polygon",":first-child").attr("points",v.map(function(b){return b.x+","+b.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),a.width=28,a.height=28,a.intersect=function(b){return Ah.circle(a,14,b)},f},cje=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=4,m=p.height+a.padding,b=m/v,E=p.width+2*b+a.padding,C=[{x:b,y:0},{x:E-b,y:0},{x:E,y:-m/2},{x:E-b,y:-m},{x:b,y:-m},{x:0,y:-m/2}],D=A5(f,E,m,C);return D.attr("style",a.style),af(a,D),a.intersect=function(P){return Ah.polygon(a,C,P)},f},uje=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:-m/2,y:0},{x:v,y:0},{x:v,y:-m},{x:-m/2,y:-m},{x:0,y:-m/2}];return A5(f,v,m,b).attr("style",a.style),a.width=v+m,a.height=m,a.intersect=function(C){return Ah.polygon(a,b,C)},f},lje=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:-2*m/6,y:0},{x:v-m/6,y:0},{x:v+2*m/6,y:-m},{x:m/6,y:-m}],E=A5(f,v,m,b);return E.attr("style",a.style),af(a,E),a.intersect=function(C){return Ah.polygon(a,b,C)},f},hje=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:2*m/6,y:0},{x:v+m/6,y:0},{x:v-2*m/6,y:-m},{x:-m/6,y:-m}],E=A5(f,v,m,b);return E.attr("style",a.style),af(a,E),a.intersect=function(C){return Ah.polygon(a,b,C)},f},fje=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:-2*m/6,y:0},{x:v+2*m/6,y:0},{x:v-m/6,y:-m},{x:m/6,y:-m}],E=A5(f,v,m,b);return E.attr("style",a.style),af(a,E),a.intersect=function(C){return Ah.polygon(a,b,C)},f},dje=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:m/6,y:0},{x:v-m/6,y:0},{x:v+2*m/6,y:-m},{x:-2*m/6,y:-m}],E=A5(f,v,m,b);return E.attr("style",a.style),af(a,E),a.intersect=function(C){return Ah.polygon(a,b,C)},f},gje=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Rd(i,a,void 0,!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:0,y:0},{x
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  outsidePoint :  $ { JSON . stringify ( a ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  insidePoint  :  $ { JSON . stringify ( f ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  node         :  x : $ { i . x }  y : $ { i . y }  w : $ { i . width }  h : $ { i . height } ` );const p=i.x,v=i.y,m=Math.abs(p-f.x),b=i.width/2;let E=f.x<a.x?b-m:b+m;const C=i.height/2,D=Math.abs(a.y-f.y),P=Math.abs(a.x-f.x);if(Math.abs(v-a.y)*b>Math.abs(p-a.x)*C){let B=f.y<a.y?a.y-C-v:v-C-a.y;E=P*B/D;const j={x:f.x<a.x?f.x+E:f.x-P+E,y:f.y<a.y?f.y+D-B:f.y-D+B};return E===0&&(j.x=a.x,j.y=a.y),P===0&&(j.x=a.x),D===0&&(j.y=a.y),zt.warn( ` abc89  topp / bott  calc ,  Q  $ { D } ,  q  $ { B } ,  R  $ { P } ,  r  $ { E } ` ,j),j}else{f.x<a.x?E=a.x-b-p:E=p-b-a.x;let B=D*E/P,j=f.x<a.x?f.x+P-E:f.x-P+E,R=f.y<a.y?f.y+B:f.y-B;return zt.warn( ` sides  calc  abc89 ,  Q  $ { D } ,  q  $ { B } ,  R  $ { P } ,  r  $ { E } ` ,{_x:j,_y:R}),E===0&&(j=a.x,R=a.y),P===0&&(j=a.x),D===0&&(R=a.y),{x:j,y:R}}},ZFt=(i,a)=>{zt.warn("abc88 cutPathAtIntersect",i,a);let f=[],p=i[0],v=!1;return i.forEach(m=>{if(zt.info("abc88 checking point",m,a),!Dje(a,m)&&!v){const b=Ije(a,p,m);zt.warn("abc88 inside",m,p,b),zt.warn("abc88 intersection",b);let E=!1;f.forEach(C=>{E=E||C.x===b.x&&C.y===b.y}),f.some(C=>C.x===b.x&&C.y===b.y)?zt.warn("abc88 no intersect",b,f):f.push(b),v=!0}else zt.warn("abc88 outside",m,p),p=m,v||f.push(m)}),zt.warn("abc88 returning points",f),f},Oje=function(i,a,f,p,v,m){let b=f.points,E=!1;const C=m.node(a.v);var D=m.node(a.w);zt.info("abc88 InsertEdge: ",f),D.intersect&&C.intersect&&(b=b.slice(1,f.points.length-1),b.unshift(C.intersect(b[0])),zt.info("Last point",b[b.length-1],D,D.intersect(b[b.length-1])),b.push(D.intersect(b[b.length-1]))),f.toCluster&&(zt.info("to cluster abc88",p[f.toCluster]),b=ZFt(f.points,p[f.toCluster].node),E=!0),f.fromCluster&&(zt.info("from cluster abc88",p[f.fromCluster]),b=ZFt(b.reverse(),p[f.fromCluster].node).reverse(),E=!0);const P=b.filter(nt=>!Number.isNaN(nt.y));let B;v==="graph"||v==="flowchart"?B=f.curve||SA:B=SA;const j=X9().x(function(nt){return nt.x}).y(function(nt){return nt.y}).curve(B);let R;switch(f.thickness){case"normal":R="edge-thickness-normal";break;case"thick":R="edge-thickness-thick";break;case"invisible":R="edge-thickness-thick";break;default:R=""}switch(f.pattern){case"solid":R+=" edge-pattern-solid";break;case"dotted":R+=" edge-pattern-dotted";break;case"dashed":R+=" edge-pattern-dashed";break}const H=i.append("path").attr("d",j(P)).attr("id",f.id).attr("class"," "+R+(f.classes?" "+f.classes:"")).attr("style",f.style);let Y="";switch((Oe().flowchart.arrowMarkerAbsolute||Oe().state.arrowMarkerAbsolute)&&(Y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,Y=Y.replace(/ \( /g," \\ ("),Y=Y.replace(/ \) /g," \\ )")),zt.info("arrowTypeStart",f.arrowTypeStart),zt.info("arrowTypeEnd",f.arrowTypeEnd),f.arrowTypeStart){case"arrow_cross":H.attr("marker-start","url("+Y+"#"+v+"-crossStart)");break;case"arrow_point":H.attr("marker-start","url("+Y+"#"+v+"-pointStart)");break;case"arrow_barb":H.attr("marker-start","url("+Y+"#"+v+"-barbStart)");break;case"arrow_circle":H.attr("marker-start","url("+Y+"#"+v+"-circleStart)");break;case"aggregation":H.attr("marker-start","url("+Y+"#"+v+"-aggregationStart)");break;case"extension":H.attr("marker-start","url("+Y+"#"+v+"-extensionStart)");break;case"composition":H.attr("marker-start","url("+Y+"#"+v+"-compositionStart)");break;case"dependency":H.attr("marker-start","url("+Y+"#"+v+"-dependencyStart)");break;case"lollipop":H.attr("marker-start","url("+Y+"#"+v+"-lollipopStart)");break}switch(f.arrowTypeEnd){case"arrow_cross":H.attr("marker-end","url("+Y+"#"+v+"-crossEnd)");break;case"arrow_point":H.attr("marker-end","url("+Y+"#"+v+"-pointEnd)");break;case"arrow_barb":H.attr("marker-end","url("+Y+"#"+v+"-barbEnd)");break;case"arrow_circle":H.attr("marker-end","url("+Y+"#"+v+"-circleEnd)");break;case"aggregation":H.attr("marker-end","url("+Y+"#"+v+"-aggregationEnd)");break;case"extension":H.attr("marker-end","url("+Y+"#"+v+"-extensionEnd)");break;case"composition":H.attr("marker-end","url("+Y+"#"+v+"-compositionEnd)");break;case"dependency":H.attr("marker-end","url("+Y+"#"+v+"-dependencyEnd)");break;case"lollipop":H.attr("marker-end","url("+Y+"#"+v+"-lollipopEnd)");break}let it={};return E&&(it.updatedPath=b),it.or
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),E.style===void 0&&(j.style=j.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),j.labelStyle=j.labelStyle.replace("color:","fill:"),j.id=D,j.classes="flowchart-link "+P+" "+B,a.setEdge(E.start,E.end,j,p)})},b0t={setConf:Nje,addVertices:eBt,addEdges:nBt,getClasses:function(i,a){zt.info("Extracting classes"),a.db.clear();try{return a.parse(i),a.db.getClasses()}catch{return}},draw:async function(i,a,f,p){zt.info("Drawing flowchart"),p.db.clear(),ak.setGen("gen-2"),p.parser.parse(i);let v=p.db.getDirection();v===void 0&&(v="TD");const{securityLevel:m,flowchart:b}=Oe(),E=b.nodeSpacing||50,C=b.rankSpacing||50;let D;m==="sandbox"&&(D=Mr("#i"+a));const P=Mr(m==="sandbox"?D.nodes()[0].contentDocument.body:"body"),B=m==="sandbox"?D.nodes()[0].contentDocument:document,j=new jf({multigraph:!0,compound:!0}).setGraph({rankdir:v,nodesep:E,ranksep:C,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let R;const H=p.db.getSubGraphs();zt.info("Subgraphs - ",H);for(let kt=H.length-1;kt>=0;kt--)R=H[kt],zt.info("Subgraph - ",R),p.db.addVertex(R.id,{text:R.title,type:R.labelType},"group",void 0,R.classes,R.dir);const Y=p.db.getVertices(),it=p.db.getEdges();zt.info("Edges",it);let nt=0;for(nt=H.length-1;nt>=0;nt--){R=H[nt],jft("cluster").append("text");for(let kt=0;kt<R.nodes.length;kt++)zt.info("Setting up subgraphs",R.nodes[kt],R.id),j.setParent(R.nodes[kt],R.id)}eBt(Y,j,a,P,B,p),nBt(it,j);const st=P.select( ` [ id = "${a}" ] ` ),pt=P.select("#"+a+" g");if(await p0t(pt,j,["point","circle","cross"],"flowchart",a),lo.insertTitle(st,"flowchartTitleText",b.titleTopMargin,p.db.getDiagramTitle()),J9(j,st,b.diagramPadding,b.useMaxWidth),p.db.indexNodes("subGraph"+nt),!b.htmlLabels){const kt=B.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const yt of kt){const ht=yt.getBBox(),mt=B.createElementNS("http://www.w3.org/2000/svg","rect");mt.setAttribute("rx",0),mt.setAttribute("ry",0),mt.setAttribute("width",ht.width),mt.setAttribute("height",ht.height),yt.insertBefore(mt,yt.firstChild)}}Object.keys(Y).forEach(function(kt){const yt=Y[kt];if(yt.link){const ht=Mr("#"+a+' [id="'+kt+'"]');if(ht){const mt=B.createElementNS("http://www.w3.org/2000/svg","a");mt.setAttributeNS("http://www.w3.org/2000/svg","class",yt.classes.join(" ")),mt.setAttributeNS("http://www.w3.org/2000/svg","href",yt.link),mt.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),m==="sandbox"?mt.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):yt.linkTarget&&mt.setAttributeNS("http://www.w3.org/2000/svg","target",yt.linkTarget);const rt=ht.insert(function(){return mt},":first-child"),wt=ht.select(".label-container");wt&&rt.append(function(){return wt.node()});const gt=ht.select(".label");gt&&rt.append(function(){return gt.node()})}}})}},Pje=(i,a)=>{const f=Y9e,p=f(i,"r"),v=f(i,"g"),m=f(i,"b");return LA(p,v,m,a)},rBt=i=> ` . label  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  span , p  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . label  text , span , p  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  rect , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .flowchart-label .text-outer-tspan {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   text-anchor: middle;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .flowchart-label .text-inner-tspan {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   text-anchor: start;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  . label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . arrowheadPath  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . arrowheadColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgePath  . path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2.0 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - link  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgeLabel  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      opacity :  0.5 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  /* For html labels only */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . labelBkg  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { Pje ( i . edgeLabelBackground , . 5 ) } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    // background-color: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  rect  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . clusterBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . clusterBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  span , p  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  / *   . c l u s t e r   d i v   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  }  * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  div . mermaidTooltip  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    max - width :  200 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    padding :  2 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  12 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border :  1 px  solid  $ { i . border2 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    border - radius :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    pointer - events :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    z - index :  100 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchartTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,Fje=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:vdt,db:ak,renderer:b0t,styles:rBt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,VFe.setConf(i.flowchart),ak.clear(),ak.setGen("gen-1")}}},Symbol.toStringTag,{value:"Module"})),Bje=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:vdt,db:ak,renderer:b0t,styles:rBt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,QDt({flowchart:{arrowMarkerAbsolute:i.arrowMarkerAbsolute}}),b0t.setConf(i.flowchart),ak.clear(),ak.setGen("gen-2")}}},Symbol.toStringTag,{value:"Module"}));var v0t=function(){var i=function(lt,_t,X,Rt){for(X=X||{},Rt=lt.length;Rt--;X[lt[Rt]]=_t);return X},a=[1,2],f=[1,5],p=[6,9,11,23,25,27,29,30,31,52],v=[1,17],m=[1,18],b=[1,19],E=[1,20],C=[1,21],D=[1,22],P=[1,25],B=[1,30],j=[1,31],R=[1,32],H=[1,33],Y=[1,34],it=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,48,52],nt=[1,46],st=[30,31,49,50],pt=[4,6,9,11,23,25,27,29,30,31,52],Tt=[44,45,46,47,48],kt=[22,37],yt=[1,66],ht=[1,65],mt=[22,37,39,41],rt={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,MD_PARENT:48,NON_IDENTIFYING:49,IDENTIFYING:50,WORD:51,open_directive:52,type_directive:53,arg_directive:54,close_directive:55, $ accept:0, $ end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"MD_PARENT",49:"NON_IDENTIFYING",50:"IDENTIFYING",51:"WORD",52:"open_directive",53:"type_directive",54:"arg_directive",55:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(_t,X,Rt,ft,de,J,ae){var Wt=J.length-1;switch(de){case 1:break;case 3:this. $ =[];break;case 4:J[Wt-1].push(J[Wt]),this. $ =J[Wt-1];break;case 5:case 6:this. $ =J[Wt];break;case 7:case 8:this. $ =[];break;case 12:ft.addEntity(J[Wt-4]),ft.addEntity(J[Wt-2]),ft.addRelationship(J[Wt-4],J[Wt],J[Wt-2],J[Wt-3]);break;case 13:ft.addEntity(J[Wt-3]),ft.addAttributes(J[Wt-3],J[Wt-1]);break;case 14:ft.addEntity(J[Wt-2]);break;case 15:ft.addEntity(J[Wt]);break;case 16:case 17:this. $ =J[Wt].trim(),ft.setAccTitle(this. $ );break;case 18:case 19:this. $ =J[Wt].trim(),ft.setAccDescription(this. $ );break;case 20:case 44:this. $ =J[Wt];break;case 21:case 42:case 43:this. $ =J[Wt].replace(/"/g,"");break;case 22:case 30:this. $ =[J[Wt]];break;case 23:J[Wt].push(J[Wt-1]),this. $ =J[Wt];break;case 24:this. $ ={attributeType:J[Wt-1],attributeName:J[Wt]};break;case 25:this. $ ={attributeType:J[Wt-2],attributeName:J[Wt-1],attributeKeyTypeList:J[Wt]};break;case 26:this. $ ={attributeType:J[Wt-2],attributeName:J[Wt-1],attributeComment:J[Wt]};break;case 27:this. $ ={attributeType:J[Wt-3],attributeName:J[Wt-2],attributeKeyTypeList:J[Wt-1],attributeComment:J[Wt]};break;case 28:case 29:case 32:this. $ =J[Wt];break;case 31:J[Wt-2].push(J[Wt]),this. $ =J[Wt-2];break;case 33:this. $ =J[Wt].replace(/"/g,"");break;case
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +_e.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Le.join(", ")+", got '"+(this.terminals_[Vt]||Vt)+"'":Nr="Parse error on line "+(It+1)+": Unexpected "+(Vt==Ue?"end of input":"'"+(this.terminals_[Vt]||Vt)+"'"),this.parseError(Nr,{text:_e.match,token:this.terminals_[Vt]||Vt,line:_e.yylineno,loc:ne,expected:Le})}if(Gt[0]instanceof Array&&Gt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ae+", token: "+Vt);switch(Gt[0]){case 1:Rt.push(Vt),de.push(_e.yytext),J.push(_e.yylloc),Rt.push(Gt[1]),Vt=null,Nt=_e.yyleng,Wt=_e.yytext,It=_e.yylineno,ne=_e.yylloc;break;case 2:if(oe=this.productions_[Gt[1]][1],jt. $ =de[de.length-oe],jt._ $ ={first_line:J[J.length-(oe||1)].first_line,last_line:J[J.length-1].last_line,first_column:J[J.length-(oe||1)].first_column,last_column:J[J.length-1].last_column},Ee&&(jt._ $ .range=[J[J.length-(oe||1)].range[0],J[J.length-1].range[1]]),un=this.performAction.apply(jt,[Wt,Nt,It,rr.yy,Gt[1],de,J].concat(_n)),typeof un<"u")return un;oe&&(Rt=Rt.slice(0,-1*oe*2),de=de.slice(0,-1*oe),J=J.slice(0,-1*oe)),Rt.push(this.productions_[Gt[1]][0]),de.push(jt. $ ),J.push(jt._ $ ),Or=ae[Rt[Rt.length-2]][Rt[Rt.length-1]],Rt.push(Or);break;case 3:return!0}}return!0}},wt=function(){var lt={EOF:1,parseError:function(X,Rt){if(this.yy.parser)this.yy.parser.parseError(X,Rt);else throw new Error(X)},setInput:function(_t,X){return this.yy=X||this.yy||{},this._input=_t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _t=this._input[0];this.yytext+=_t,this.yyleng++,this.offset++,this.match+=_t,this.matched+=_t;var X=_t.match(/(?: \r \n ?| \n ).*/g);return X?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_t},unput:function(_t){var X=_t.length,Rt=_t.split(/(?: \r \n ?| \n )/g);this._input=_t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-X),this.offset-=X;var ft=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Rt.length-1&&(this.yylineno-=Rt.length-1);var de=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Rt?(Rt.length===ft.length?this.yylloc.first_column:0)+ft[ft.length-Rt.length].length-Rt[0].length:this.yylloc.first_column-X},this.options.ranges&&(this.yylloc.range=[de[0],de[0]+this.yyleng-X]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_t){this.unput(this.match.slice(_t))},pastInput:function(){var _t=this.matched.substr(0,this.matched.length-this.match.length);return(_t.length>20?"...":"")+_t.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var _t=this.match;return _t.length<20&&(_t+=this._input.substr(0,20-_t.length)),(_t.substr(0,20)+(_t.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var _t=this.pastInput(),X=new Array(_t.length+1).join("-");return _t+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +X+"^"},test_match:function(_t,X){var Rt,ft,de;if(this.options.backtrack_lexer&&(de={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(de.yylloc.range=this.yylloc.range.slice(0))),ft=_t[0].match(/(?: \r \n ?| \n ).*/g),ft&&(this.yylineno+=ft.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ft?ft[ft.length-1].length-ft[ft.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+_t[0].length},this.yytext+=_t[0],this.match+=_t[0],this.matches=_t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_t[0].length),this.matched+=_t[0],Rt=this.performAction.call(this,this.yy,this,X,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Rt)return Rt;if(this._backtrack){for(var J in de)this[J]=de[J];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _t,X,Rt,ft;this._more||(this.yytext="",this.match="");for(var de=this._currentRules(),J=0;J<de.length;J++)if(Rt=this._input.match(this.rules[de[J]]),Rt&&(!X||Rt[0].length>X[0].length)){if(X=Rt,ft=J,this.options.backtrack_lexer){if(_t=this.test_match(Rt,de[J]),_t!==!1)return _t;if(this._backtrack){X=!1;continue}else return!1}else if(!this.options.flex)break}return X?(_t=this.test_match(X,de[ft]),_t!==!1?_t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var X=this.next();return X||this.lex()},begin:function(X){this.conditionStack.push(X)},popState:function(){var X=this.conditionStack.length-1;return X>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(X){return X=this.conditionStack.length-1-Math.abs(X||0),X>=0?this.conditionStack[X]:"INITIAL"},pushState:function(X){this.begin(X)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(X,Rt,ft,de){switch(ft){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),52;case 8:return this.begin("type_directive"),53;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),55;case 11:return 54;case 12:return 11;case 13:break;case 14:return 9;case 15:return 31;case 16:return 51;case 17:return 4;case 18:return this.begin("block"),20;case 19:return 39;case 20:break;case 21:return 40;case 22:return 37;case 23:return 37;case 24:return 41;case 25:break;case 26:return this.popState(),22;case 27:return Rt.yytext[0];case 28:return 44;case 29:return 46;case 30:return 46;case 31:return 46;case 32:return 44;case 33:return 44;case 34:return 45;case 35:return 45;case 36:return 45;case 37:return 45;case 38:return 45;case 39:return 46;case 40:return 45;case 41:return 46;case 42:return 47;case 43:return 47;case 44:return 47;case 45:return 47;case 46:return 44;case 47:return 45;case 48:return 46;case 49:return 48;case 50:return 49;case 51:return 50;case 52:return 50;case 53:return 49;case 54:return 49;case 55:return 49;case 56:return 30;case 57:return Rt.yytext[0];case 58:return 6}},rules:[/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:[ \s ]+)/i,/^(?:"[^"% \r \n \v \b \\ ]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram \b )/i,/^(?: \{ )/i,/^(?:,)/i,/^(?: \s +)/i,/^(?: \b ((?:PK)|(?:FK)|(?:UK)) \b )/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[A-Za-z_][A-Za-z0-9 \- _ \[ \] \( \) ]*)/i,/^(?:"[^"]*")/i,/^(?:[ \n ]+)/i,/^(?: \} )/i,/^(?:.)/i,/^(?:one or zero \b )/i,/^(?:one or more \b )/i,/^(?:one or many \b )/i,/^(?:1 \+ )/i,/^(?: \| o \b )/i,/^(?:zero or one \b )/i,/^(?:zero or more \b )/i,/^(?:zero or many \b )/i,/^(?:0 \+ )/i,/^(?: \} o \b )/i,/^(?:many \( 0 \) )/i,/^(?:many \( 1 \) )/i,/^(?:many \b )/i,/^(?: \} \| )/i,/^(?:one \b )/i,/^(?:only one \b )/i,/^(?:1 \b )/i,/^(?: \| \| )/i,/^(?:o \| )/i,/^(?:o \{ )/i,/^(?: \| \{ )/i,/^(?: \s *u \b )/i,/^(?: \. \. )/i,/^(?:--)/i,/^(?:to \b )/i,/^(?:optionally to \b )/i,/^(?: \. -)/i,/^(?:- \. )/i,/^(?:[A-Za-z][A-Za-z0-9 \- _]*)/i,/^(?:.)/i,/^(?: $ )/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[19,20,21,22,23,24,25,26,27],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],inclusive:!0}}};return lt}();rt.lexer=wt;function gt(){this.yy={}}return gt.prototype=rt,rt.Parser=gt,new gt}();v0t.parser=v0t;const Rje=v0t;let pP={},w0t=[];const jje={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"}, $ je={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},zje=function(i,a,f){d1.parseDirective(this,i,a,f)},iBt=functi
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . entityBox  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . attributeBoxOdd  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . attributeBackgroundColorOdd } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . attributeBoxEven  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :   $ { i . attributeBackgroundColorEven } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . relationshipLabelBox  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.7 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . relationshipLine  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . entityTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  }     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # MD _PARENT _START  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  # f5f5f5  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # MD _PARENT _END  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  # f5f5f5  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var y0t=function(){var i=function(mt,rt,wt,gt){for(wt=wt||{},gt=mt.length;gt--;wt[mt[gt]]=rt);return wt},a=[1,4],f=[1,7],p=[1,5],v=[1,9],m=[1,6],b=[2,6],E=[1,16],C=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],D=[8,14,20,22,24,25,27,29,32,37,40],P=[8,13,14,20,22,24,25,27,29,32,37,40],B=[1,26],j=[6,8,14,50,55],R=[8,14,55],H=[1,53],Y=[1,52],it=[8,14,30,33,35,38,55],nt=[1,67],st=[1,68],pt=[1,69],Tt=[8,14,33,35,42,55],kt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55, $ accept:0, $ end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(rt,wt,gt,lt,_t,X,Rt){var ft=X.length-1;switch(_t){case 3:return X[ft];case 4:return X[ft-1];case 5:return lt.setDirection(X[ft-3]),X[ft-1];case 7:lt.setOptions(X[ft-1]),this. $ =X[ft];break;case 8:X[ft-1]+=X[ft],this. $ =X[ft-1];break;case 10:this. $ =[];break;case 11:X[ft-1].push(X[ft]),this. $ =X[ft-1];break;case 12:this. $ =X[ft-1];break;case 17:this. $ =X[ft].trim(),lt.setAccTitle(this. $ );break;case 18:case 19:this. $ =X[ft].trim(),lt.setAccDescription(this. $ );break;case 20:lt.addSection(X[ft].substr(8)),this. $ =X[ft].substr(8);break;case 22:lt.checkout(X[ft]);break;case 23:lt.branch(X[ft]);break;case 24:lt.branch(X[ft-2],X[ft]);break;case 25:lt.cherryPick(X[ft],"",void 0);break;case 26:lt.cherryPick(X[ft-2],"",X[ft]);break;case 27:case 29:lt.cherryPick(X[ft-2],"","");break;case 28:lt.cherryPick(X[ft],"",X[ft-2]);break;case 30:lt.merge(X[ft],"","","");break;case 31:lt.merge(X[ft-2],X[ft],"","");break;case 32:lt.merge(X[ft-2],"",X[ft],"");break;case 33:lt.merge(X[ft-2],"","",X[ft]);break;case 34:lt.merge(X[ft-4],X[ft],"",X[ft-2]);break;case 35:lt.merge(X[ft-4],"",X[ft],X[ft-2]);break;case 36:lt.merge(X[ft-4],"",X[ft-2],X[ft]);break;case 37:lt.merge(X[ft-4],X[ft-2],X[ft],"");break;case 38:lt.merge(X[ft-4],X[ft-2],"",X[ft]);break;case 39:lt.merge(X[ft-4],X[ft],X[ft-2],"");break;case 40:lt.merge(X[ft-6],X[ft-4],X[ft-2],X[ft]);break;case 41:lt.merge(X[ft-6],X[ft],X[ft-4],X[ft-2]);break;case 42:lt.merge(X[ft-6],X[ft-4],X[ft],X[ft-2]);break;case 43:lt.merge(X[ft-6],X[ft-2],X[ft-4],X[ft]);break;cas
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Nt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +jt.join(", ")+", got '"+(this.terminals_[Te]||Te)+"'":Ke="Parse error on line "+(de+1)+": Unexpected "+(Te==Wt?"end of input":"'"+(this.terminals_[Te]||Te)+"'"),this.parseError(Ke,{text:Nt.match,token:this.terminals_[Te]||Te,line:Nt.yylineno,loc:_n,expected:jt})}if(Ee[0]instanceof Array&&Ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ne+", token: "+Te);switch(Ee[0]){case 1:gt.push(Te),_t.push(Nt.yytext),X.push(Nt.yylloc),gt.push(Ee[1]),Te=null,J=Nt.yyleng,ft=Nt.yytext,de=Nt.yylineno,_n=Nt.yylloc;break;case 2:if(Gt=this.productions_[Ee[1]][1],Vt. $ =_t[_t.length-Gt],Vt._ $ ={first_line:X[X.length-(Gt||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(Gt||1)].first_column,last_column:X[X.length-1].last_column},_e&&(Vt._ $ .range=[X[X.length-(Gt||1)].range[0],X[X.length-1].range[1]]),ye=this.performAction.apply(Vt,[ft,J,de,me.yy,Ee[1],_t,X].concat(It)),typeof ye<"u")return ye;Gt&&(gt=gt.slice(0,-1*Gt*2),_t=_t.slice(0,-1*Gt),X=X.slice(0,-1*Gt)),gt.push(this.productions_[Ee[1]][0]),_t.push(Vt. $ ),X.push(Vt._ $ ),un=Rt[gt[gt.length-2]][gt[gt.length-1]],gt.push(un);break;case 3:return!0}}return!0}},yt=function(){var mt={EOF:1,parseError:function(wt,gt){if(this.yy.parser)this.yy.parser.parseError(wt,gt);else throw new Error(wt)},setInput:function(rt,wt){return this.yy=wt||this.yy||{},this._input=rt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var rt=this._input[0];this.yytext+=rt,this.yyleng++,this.offset++,this.match+=rt,this.matched+=rt;var wt=rt.match(/(?: \r \n ?| \n ).*/g);return wt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),rt},unput:function(rt){var wt=rt.length,gt=rt.split(/(?: \r \n ?| \n )/g);this._input=rt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-wt),this.offset-=wt;var lt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),gt.length-1&&(this.yylineno-=gt.length-1);var _t=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:gt?(gt.length===lt.length?this.yylloc.first_column:0)+lt[lt.length-gt.length].length-gt[0].length:this.yylloc.first_column-wt},this.options.ranges&&(this.yylloc.range=[_t[0],_t[0]+this.yyleng-wt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(rt){this.unput(this.match.slice(rt))},pastInput:function(){var rt=this.matched.substr(0,this.matched.length-this.match.length);return(rt.length>20?"...":"")+rt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var rt=this.match;return rt.length<20&&(rt+=this._input.substr(0,20-rt.length)),(rt.substr(0,20)+(rt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var rt=this.pastInput(),wt=new Array(rt.length+1).join("-");return rt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +wt+"^"},test_match:function(rt,wt){var gt,lt,_t;if(this.options.backtrack_lexer&&(_t={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_t.yylloc.range=this.yylloc.range.slice(0))),lt=rt[0].match(/(?: \r \n ?| \n ).*/g),lt&&(this.yylineno+=lt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lt?lt[lt.length-1].length-lt[lt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+rt[0].length},this.yytext+=rt[0],this.match+=rt[0],this.matches=rt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(rt[0].length),this.matched+=rt[0],gt=this.performAction.call(this,this.yy,this,wt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),gt)return gt;if(this._backtrack){for(var X in _t)this[X]=_t[X];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var rt,wt,gt,lt;this._more||(this.yytext="",this.match="");for(var _t=this._currentRules(),X=0;X<_t.length;X++)if(gt=this._input.match(this.rules[_t[X]]),gt&&(!wt||gt[0].length>wt[0].length)){if(wt=gt,lt=X,this.options.backtrack_lexer){if(rt=this.test_match(gt,_t[X]),rt!==!1)return rt;if(this._backtrack){wt=!1;continue}else return!1}else if(!this.options.flex)break}return wt?(rt=this.test_match(wt,_t[lt]),rt!==!1?rt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var wt=this.next();return wt||this.lex()},begin:function(wt){this.conditionStack.push(wt)},popState:function(){var wt=this.conditionStack.length-1;return wt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(wt){return wt=this.conditionStack.length-1-Math.abs(wt||0),wt>=0?this.conditionStack[wt]:"INITIAL"},pushState:function(wt){this.begin(wt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(wt,gt,lt,_t){switch(lt){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:break;case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:return 10;case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 34:this.popState();break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 38:this.popState();break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:( \r ? \n )+)/i,/^(?:#[^ \n ]*)/i,/^(?:%[^ \n ]*)/i,/^(?:gitGraph \b )/i,/^(?:commit(?= \s | $ ))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL \b )/i,/^(?:REVERSE \b )/i,/^(?:HIGHLIGHT \b )/i,/^(?:tag:)/i,/^(?:branch(?= \s | $ ))/i,/^(?:order:)/i,/^(?:merge(?= \s | $ ))/i,/^(?:cherry-pick(?= \s | $ ))/i,/^(?:checkout(?= \s | $ ))/i,/^(?:LR \b )/i,/^(?:BT \b )/i,/^(?::)/i,/^(?: \^ )/i,/^(?:options \r ? \n )/i,/^(?:[  \r \n \t ]+end \b )/i,/^(?:[ \s \S ]+(?=[  \r \n \t ]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?= \s | $ ))/i,/^(?: \w ([- \. / \w ]*[- \w ])?)/i,/^(?: $ )/i,/^(?: \s +)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}};return mt}();kt.lexer=yt;function ht(){this.yy={}}return ht.prototype=kt,kt.Parser=ht,new ht}();y0t.parser=y0t;const h $ e=y0t;let dK=Oe().gitGraph.mainBranchName,f $ e=Oe().gitGraph.mainBranchOrder,p1={},lg=null,vP={};vP[dK]={name:dK,order:f $ e};let zf={};zf[dK]=lg;let id=dK,cBt="LR",bE=0;function x0t(){return bIt({length:7})}const d $ e=function(i,a,f){d1.parseDirective(this,i,a,f)};function g $ e(i,a){const f=Object.create(null);return i.reduce((p,v)=>{const m=a(v);return f[m]||(f[m]=!0,p.push(v)),p},[])}const p $ e=function(i){cBt=i};let uBt={};const b $ e=function(i){zt.debug("options str",i),i=i&&i.trim(),i=i||"{}";try{uBt=JSON.parse(i)}catch(a){zt.error("error while parsing gitGraph options",a.message)}},v $ e=function(){return uBt},w $ e=function(i,a,f,p){zt.debug("Entering commit:",i,a,f,p),a=yi.sanitizeText(a,Oe()),i=yi.sanitizeText(i,Oe()),p=yi.sanitizeText(p
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b - st . width / 2 - 4 / 2 } , $ { Tt + 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b - st . width / 2 - 4 / 2 } , $ { Tt - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 - st . width / 2 - 4 } , $ { Tt - pt - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 + st . width / 2 + 4 } , $ { Tt - pt - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 + st . width / 2 + 4 } , $ { Tt + pt + 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 - st . width / 2 - 4 } , $ { Tt + pt + 2 } ` ),it.attr("cx",b-st.width/2+4/2).attr("cy",Tt).attr("r",1.5).attr("class","tag-hole")}}b+=50,b>bK&&(bK=b)})},O $ e=(i,a,f)=>Object.keys(f).filter(m=>f[m].branch===a.branch&&f[m].seq>i.seq&&f[m].seq<a.seq).length>0,k0t=(i,a,f=0)=>{const p=i+Math.abs(i-a)/2;if(f>5)return p;if(pK.every(b=>Math.abs(b-p)>=10))return pK.push(p),p;const m=Math.abs(i-a);return k0t(i,a-m/5,f+1)},N $ e=(i,a,f,p)=>{const v=gK[a.id],m=gK[f.id],b=O $ e(a,f,p);let E="",C="",D=0,P=0,B=fp[f.branch].index,j;if(b){E="A 10 10, 0, 0, 0,",C="A 10 10, 0, 0, 1,",D=10,P=10,B=fp[f.branch].index;const R=v.y<m.y?k0t(v.y,m.y):k0t(m.y,v.y);v.y<m.y?j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { R - D }  $ { E }  $ { v . x + P }  $ { R }  L  $ { m . x - D }  $ { R }  $ { C }  $ { m . x }  $ { R + P }  L  $ { m . x }  $ { m . y } ` :j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { R + D }  $ { C }  $ { v . x + P }  $ { R }  L  $ { m . x - D }  $ { R }  $ { E }  $ { m . x }  $ { R - P }  L  $ { m . x }  $ { m . y } ` }else v.y<m.y&&(E="A 20 20, 0, 0, 0,",D=20,P=20,B=fp[f.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { m . y - D }  $ { E }  $ { v . x + P }  $ { m . y }  L  $ { m . x }  $ { m . y } ` ),v.y>m.y&&(E="A 20 20, 0, 0, 0,",D=20,P=20,B=fp[a.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { m . x - D }  $ { v . y }  $ { E }  $ { m . x }  $ { v . y - P }  L  $ { m . x }  $ { m . y } ` ),v.y===m.y&&(B=fp[a.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { m . y - D }  $ { E }  $ { v . x + P }  $ { m . y }  L  $ { m . x }  $ { m . y } ` );i.append("path").attr("d",j).attr("class","arrow arrow"+B%vE)},P $ e=(i,a)=>{const f=i.append("g").attr("class","commit-arrows");Object.keys(a).forEach(p=>{const v=a[p];v.parents&&v.parents.length>0&&v.parents.forEach(m=>{N $ e(f,a[m],v,a)})})},F $ e=(i,a)=>{const f=qN().gitGraph,p=i.append("g");a.forEach((v,m)=>{const b=m%vE,E=fp[v.name].pos,C=p.append("line");C.attr("x1",0),C.attr("y1",E),C.attr("x2",bK),C.attr("y2",E),C.attr("class","branch branch"+b),pK.push(E);let D=v.name;const P=I $ e(D),B=p.insert("rect"),R=p.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+b);R.node().appendChild(P);let H=P.getBBox();B.attr("class","branchLabelBkg label"+b).attr("rx",4).attr("ry",4).attr("x",-H.width-4-(f.rotateCommitLabel===!0?30:0)).attr("y",-H.height/2+8).attr("width",H.width+18).attr("height",H.height+4),R.attr("transform","translate("+(-H.width-14-(f.rotateCommitLabel===!0?30:0))+", "+(E-H.height/2-1)+")"),B.attr("transform","translate(-19, "+(E-H.height/2)+")")})},B $ e=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:h $ e,db:M $ e,renderer:{draw:function(i,a,f,p){D $ e();const v=qN(),m=v.gitGraph;zt.debug("in gitgraph renderer",i+ ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,"id:",a,f),mP=p.db.getCommits();const b=p.db.getBranchesAsObjArray();let E=0;b.forEach((D,P)=>{fp[D.name]={pos:E,index:P},E+=50+(m.rotateCommitLabel?40:0)});const C=Mr( ` [ id = "${a}" ] ` );gBt(C,mP,!1),m.showBranches&&F $ e(C,b),P $ e(C,mP),gBt(C,mP,!0),lo.insertTitle(C,"gitTitleText",m.titleTopMargin,p.db.getDiagramTitle()),iIt(void 0,C,m.diagramPadding,m.useMaxWidth??v.useMaxWidth)}},styles:i=> `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - msg , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . branch - label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  lightgrey ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  lightgrey ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] . map ( a => ` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . branch - label$ { a }  {  fill :  $ { i [ "gitBranchLabel" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . commit$ { a }  {  stroke :  $ { i [ "git" + a ] } ;  fill :  $ { i [ "git" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . commit - highlight$ { a }  {  stroke :  $ { i [ "gitInv" + a ] } ;  fill :  $ { i [ "gitInv" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . label$ { a }   {  fill :  $ { i [ "git" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . arrow$ { a }  {  stroke :  $ { i [ "git" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        ` ).join( ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )}
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . branch  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - label  {  font - size :  $ { i . commitLabelFontSize } ;  fill :  $ { i . commitLabelColor } ; } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - label - bkg  {  font - size :  $ { i . commitLabelFontSize } ;  fill :  $ { i . commitLabelBackground } ;  opacity :  0.5 ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . tag - label  {  font - size :  $ { i . tagLabelFontSize } ;  fill :  $ { i . tagLabelColor } ; } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . tag - label - bkg  {  fill :  $ { i . tagLabelBackground } ;  stroke :  $ { i . tagLabelBorder } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . tag - hole  {  fill :  $ { i . textColor } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - merge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - reverse  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - highlight - outer  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - highlight - inner  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . arrow  {  stroke - width :  8 ;  stroke - linecap :  round ;  fill :  none } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . gitTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var E0t=function(){var i=function(mt,rt,wt,gt){for(wt=wt||{},gt=mt.length;gt--;wt[mt[gt]]=rt);return wt},a=[1,3],f=[1,5],p=[7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],v=[1,15],m=[1,16],b=[1,17],E=[1,18],C=[1,19],D=[1,20],P=[1,21],B=[1,22],j=[1,23],R=[1,24],H=[1,25],Y=[1,26],it=[1,27],nt=[1,29],st=[1,31],pt=[1,34],Tt=[5,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],kt={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,tickInterval:16,excludes:17,includes:18,todayMarker:19,title:20,acc_title:21,acc_title_value:22,acc_descr:23,acc_descr_value:24,acc_descr_multiline_value:25,section:26,clickStatement:27,taskTxt:28,taskData:29,openDirective:30,typeDirective:31,closeDirective:32,":":33,argDirective:34,click:35,callbackname:36,callbackargs:37,href:38,clickStatementDebug:39,open_directive:40,type_directive:41,arg_directive:42,close_directive:43, $ accept:0, $ end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"tickInterval",17:"excludes",18:"includes",19:"todayMarker",20:"title",21:"acc_title",22:"acc_title_value",23:"acc_descr",24:"acc_descr_value",25:"acc_descr_multiline_value",26:"section",28:"taskTxt",29:"taskData",33:":",35:"click",36:"callbackname",37:"callbackargs",38:"href",40:"open_directive",41:"type_directive",42:"arg_directive",43:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[27,2],[27,3],[27,3],[27,4],[27,3],[27,4],[27,2],[39,2],[39,3],[39,3],[39,4],[39,3],[39,4],[39,2],[30,1],[31,1],[34,1],[32,1]],performAction:function(rt,wt,gt,lt,_t,X,Rt){var ft=X.length-1;switch(_t){case 2:return X[ft-1];case 3:this. $ =[];break;case 4:X[ft-1].push(X[ft]),this. $ =X[ft-1];break;case 5:case 6:this. $ =X[ft];break;case 7:case 8:this. $ =[];break;case 9:lt.setDateFormat(X[ft].substr(11)),this. $ =X[ft].substr(11);break;case 10:lt.enableInclusiveEndDates(),this. $ =X[ft].substr(18);break;case 11:lt.TopAxis(),this. $ =X[ft].substr(8);break;case 12:lt.setAxisFormat(X[ft].substr(11)),this. $ =X[ft].substr(11);break;case 13:lt.setTickInterval(X[ft].substr(13)),this. $ =X[ft].substr(13);break;case 14:lt.setExcludes(X[ft].substr(9)),this. $ =X[ft].substr(9);break;case 15:lt.setIncludes(X[ft].substr(9)),this. $ =X[ft].substr(9);break;case 16:lt.setTodayMarker(X[ft].substr(12)),this. $ =X[ft].substr(12);break;case 17:lt.setDiagramTitle(X[ft].substr(6)),this. $ =X[ft].substr(6);break;case 18:this. $ =X[ft].trim(),lt.setAccTitle(this. $ );break;case 19:case 20:this. $ =X[ft].trim(),lt.setAccDescription(this. $ );break;case 21:lt.addSection(X[ft].substr(8)),this. $ =X[ft].substr(8);break;case 23:lt.addTask(X[ft-1],X[ft]),this. $ ="task";break;case 27:this. $ =X[ft-1],lt.setClickEvent(X[ft-1],X[ft],null);break;case 28:this. $ =X[ft-2],lt.setClickEvent(X[ft-2],X[ft-1],X[ft]);break;case 29:this. $ =X[ft-2],lt.setClickEvent(X[ft-2],X[ft-1],null),lt.setLink(X[ft-2],X[ft]);break;case 30:this. $ =X[ft-3],lt.setClickEvent(X[ft-3],X[ft-2],X[ft-1]),lt.setLink(X[ft-3],X[ft]);break;case 31:this. $ =X[ft-2],lt.setClickEvent(X[ft-2],X[ft],null),lt.setLink(X[ft-2],X[ft-1]);break;case 32:this. $ =X[ft-3],lt.setClickEvent(X[ft-3],X[ft-1],X[ft]),lt.setLink(X[ft-3],X[ft-2]);break;case 33:this. $ =X[ft-1],lt.setLink(X[ft-1],X[ft]);break;case 34:case 40:this. $ =X[ft-1]+" "+X[ft];break;case 35:case 36:case 38:this. $ =X[ft-2]+" "+X[ft-1]+" "+X[ft];break;case 37:case 39:this. $ =X[ft-3]+" "+X[ft-2]+" "+X[ft-1]+" "+X[ft];break;case 41:lt.parseDirective("%%{","open_directive");break;case 42:lt.parseDirective(X[ft],"type_directive");break;case 43:X[ft]=X[ft].trim().replace(/'/g,'"'),lt.parseDirective(X[ft],"arg_directive");break;case 44:lt.parseDirective("}%%","close_directive","gantt");break}},table:[{3:1,4:2,5:a,30:4,40:f},{1:[3]},{3:6,4:2,5:a,30:4,40:f},i(p,[2,3],{6:7}),{31:8,41:[1,9]},{41
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Nt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +jt.join(", ")+", got '"+(this.terminals_[Te]||Te)+"'":Ke="Parse error on line "+(de+1)+": Unexpected "+(Te==Wt?"end of input":"'"+(this.terminals_[Te]||Te)+"'"),this.parseError(Ke,{text:Nt.match,token:this.terminals_[Te]||Te,line:Nt.yylineno,loc:_n,expected:jt})}if(Ee[0]instanceof Array&&Ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ne+", token: "+Te);switch(Ee[0]){case 1:gt.push(Te),_t.push(Nt.yytext),X.push(Nt.yylloc),gt.push(Ee[1]),Te=null,J=Nt.yyleng,ft=Nt.yytext,de=Nt.yylineno,_n=Nt.yylloc;break;case 2:if(Gt=this.productions_[Ee[1]][1],Vt. $ =_t[_t.length-Gt],Vt._ $ ={first_line:X[X.length-(Gt||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(Gt||1)].first_column,last_column:X[X.length-1].last_column},_e&&(Vt._ $ .range=[X[X.length-(Gt||1)].range[0],X[X.length-1].range[1]]),ye=this.performAction.apply(Vt,[ft,J,de,me.yy,Ee[1],_t,X].concat(It)),typeof ye<"u")return ye;Gt&&(gt=gt.slice(0,-1*Gt*2),_t=_t.slice(0,-1*Gt),X=X.slice(0,-1*Gt)),gt.push(this.productions_[Ee[1]][0]),_t.push(Vt. $ ),X.push(Vt._ $ ),un=Rt[gt[gt.length-2]][gt[gt.length-1]],gt.push(un);break;case 3:return!0}}return!0}},yt=function(){var mt={EOF:1,parseError:function(wt,gt){if(this.yy.parser)this.yy.parser.parseError(wt,gt);else throw new Error(wt)},setInput:function(rt,wt){return this.yy=wt||this.yy||{},this._input=rt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var rt=this._input[0];this.yytext+=rt,this.yyleng++,this.offset++,this.match+=rt,this.matched+=rt;var wt=rt.match(/(?: \r \n ?| \n ).*/g);return wt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),rt},unput:function(rt){var wt=rt.length,gt=rt.split(/(?: \r \n ?| \n )/g);this._input=rt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-wt),this.offset-=wt;var lt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),gt.length-1&&(this.yylineno-=gt.length-1);var _t=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:gt?(gt.length===lt.length?this.yylloc.first_column:0)+lt[lt.length-gt.length].length-gt[0].length:this.yylloc.first_column-wt},this.options.ranges&&(this.yylloc.range=[_t[0],_t[0]+this.yyleng-wt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(rt){this.unput(this.match.slice(rt))},pastInput:function(){var rt=this.matched.substr(0,this.matched.length-this.match.length);return(rt.length>20?"...":"")+rt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var rt=this.match;return rt.length<20&&(rt+=this._input.substr(0,20-rt.length)),(rt.substr(0,20)+(rt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var rt=this.pastInput(),wt=new Array(rt.length+1).join("-");return rt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +wt+"^"},test_match:function(rt,wt){var gt,lt,_t;if(this.options.backtrack_lexer&&(_t={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_t.yylloc.range=this.yylloc.range.slice(0))),lt=rt[0].match(/(?: \r \n ?| \n ).*/g),lt&&(this.yylineno+=lt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lt?lt[lt.length-1].length-lt[lt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+rt[0].length},this.yytext+=rt[0],this.match+=rt[0],this.matches=rt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(rt[0].length),this.matched+=rt[0],gt=this.performAction.call(this,this.yy,this,wt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),gt)return gt;if(this._backtrack){for(var X in _t)this[X]=_t[X];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var rt,wt,gt,lt;this._more||(this.yytext="",this.match="");for(var _t=this._currentRules(),X=0;X<_t.length;X++)if(gt=this._input.match(this.rules[_t[X]]),gt&&(!wt||gt[0].length>wt[0].length)){if(wt=gt,lt=X,this.options.backtrack_lexer){if(rt=this.test_match(gt,_t[X]),rt!==!1)return rt;if(this._backtrack){wt=!1;continue}else return!1}else if(!this.options.flex)break}return wt?(rt=this.test_match(wt,_t[lt]),rt!==!1?rt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var wt=this.next();return wt||this.lex()},begin:function(wt){this.conditionStack.push(wt)},popState:function(){var wt=this.conditionStack.length-1;return wt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(wt){return wt=this.conditionStack.length-1-Math.abs(wt||0),wt>=0?this.conditionStack[wt]:"INITIAL"},pushState:function(wt){this.begin(wt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(wt,gt,lt,_t){switch(lt){case 0:return this.begin("open_directive"),40;case 1:return this.begin("type_directive"),41;case 2:return this.popState(),this.begin("arg_directive"),33;case 3:return this.popState(),this.popState(),43;case 4:return 42;case 5:return this.begin("acc_title"),21;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),23;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:break;case 13:break;case 14:break;case 15:return 11;case 16:break;case 17:break;case 18:break;case 19:this.begin("href");break;case 20:this.popState();break;case 21:return 38;case 22:this.begin("callbackname");break;case 23:this.popState();break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 36;case 26:this.popState();break;case 27:return 37;case 28:this.begin("click");break;case 29:this.popState();break;case 30:return 35;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 16;case 37:return 18;case 38:return 17;case 39:return 19;case 40:return"date";case 41:return 20;case 42:return"accDescription";case 43:return 26;case 44:return 28;case 45:return 29;case 46:return 33;case 47:return 7;case 48:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:%%(?! \{ )*[^ \n ]*)/i,/^(?:[^ \} ]%%*[^ \n ]*)/i,/^(?:%%*[^ \n ]*[ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:%[^ \n ]*)/i,/^(?:href[ \s ]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[ \s ]+)/i,/^(?: \( [ \s ]* \) )/i,/^(?: \( )/i,/^(?:[^(]*)/i,/^(?: \) )/i,/^(?:[^)]*)/i,/^(?:click[ \s ]+)/i,/^(?:[ \s \n ])/i,/^(?:[^ \s \n ]*)/i,/^(?:gantt \b )/i,/^(?:dateFormat \s [^# \n ;]+)/i,/^(?:inclusiveEndDates \b )/i,/^(?:topAxis \b )/i,/^(?:axisFormat \s [^# \n ;]+)/i,/^(?:tickInterval \s [^# \n ;]+)/i,/^(?:includes \s [^# \n ;]+)/i,/^(?:excludes \s [^# \n ;]+)/i,/^(?:todayMarker \s [^ \n ;]+)/i,/^(?: \d \d \d \d - \d \d - \d \d \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accDescription \s [^# \n ;]+)/i,/^(?:section \s [^#: \n ;]+)/i,/^(?:[^#: \n ;]+)/i,/^(?::[^# \n ;]+)/i,/^(?::)/i,/^(?: $ )/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return mt}();kt.lexer=yt;function ht(){this.yy={}}return ht.prototype=kt,kt.Parser=ht,new ht}();E0t.parser=E0t;const R $ e=E0t;var pBt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(b0,function(){var f="day";return function(p,v,m){var b=function(D){return D.add(4-D.isoWeekday(),f)},E=v.prototype;E.isoWeekYear=function(){return b(this).year()},E.isoWeek=function(D){if(!this. $ utils().u(D))return this.add(7*(D-this
  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . mermaid - main - font  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  "trebuchet ms" ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . exclude - range  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . excludeBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . sectionBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . sectionBkgColor2 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . altSectionBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle1  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  start ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // text-height: 14px;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Grid and axis */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . grid  . tick  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . gridColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.8 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    shape - rendering :  crispEdges ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . grid  path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Today line */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . today  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . todayLineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Task styling */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Default task */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .taskText:not([font-size]) {
 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  //   font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideRight  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  start ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideLeft  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  end ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Special case clickable */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextClickableColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideLeft . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextClickableColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideRight . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextClickableColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Specific task settings for the sections*/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . taskBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextOutsideColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextOutsideColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Active task */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activeTaskBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activeTaskBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Completed task */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . doneTaskBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . doneTaskBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Tasks on the critical line */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . critBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . critBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . critBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activeTaskBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . critBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . doneTaskBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    shape - rendering :  crispEdges ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . milestone  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    transform :  rotate ( 45 deg )  scale ( 0.8 , 0.8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . milestoneText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - style :  italic ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . titleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor }     ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var P0t=function(){var i=function(m,b,E,C){for(E=E||{},C=m.length;C--;E[m[C]]=b);return E},a=[6,9,10],f={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10, $ accept:0, $ end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(b,E,C,D,P,B,j){switch(B.length-1,P){case 1:return D;case 4:break;case 6:D.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},i(a,[2,3]),i(a,[2,4]),i(a,[2,5]),i(a,[2,6])],defaultActions:{4:[2,1]},parseError:function(b,E){if(E.recoverable)this.trace(b);else{var C=new Error(b);throw C.hash=E,C}},parse:function(b){var E=this,C=[0],D=[],P=[null],B=[],j=this.table,R="",H=0,Y=0,it=2,nt=1,st=B.slice.call(arguments,1),pt=Object.create(this.lexer),Tt={yy:{}};for(var kt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,kt)&&(Tt.yy[kt]=this.yy[kt]);pt.setInput(b,Tt.yy),Tt.yy.lexer=pt,Tt.yy.parser=this,typeof pt.yylloc>"u"&&(pt.yylloc={});var yt=pt.yylloc;B.push(yt);var ht=pt.options&&pt.options.ranges;typeof Tt.yy.parseError=="function"?this.parseError=Tt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function mt(){var ae;return ae=D.pop()||pt.lex()||nt,typeof ae!="number"&&(ae instanceof Array&&(D=ae,ae=D.pop()),ae=E.symbols_[ae]||ae),ae}for(var rt,wt,gt,lt,_t={},X,Rt,ft,de;;){if(wt=C[C.length-1],this.defaultActions[wt]?gt=this.defaultActions[wt]:((rt===null||typeof rt>"u")&&(rt=mt()),gt=j[wt]&&j[wt][rt]),typeof gt>"u"||!gt.length||!gt[0]){var J="";de=[];for(X in j[wt])this.terminals_[X]&&X>it&&de.push("'"+this.terminals_[X]+"'");pt.showPosition?J="Parse error on line "+(H+1)+ ` :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +pt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +de.join(", ")+", got '"+(this.terminals_[rt]||rt)+"'":J="Parse error on line "+(H+1)+": Unexpected "+(rt==nt?"end of input":"'"+(this.terminals_[rt]||rt)+"'"),this.parseError(J,{text:pt.match,token:this.terminals_[rt]||rt,line:pt.yylineno,loc:yt,expected:de})}if(gt[0]instanceof Array&>.length>1)throw new Error("Parse Error: multiple actions possible at state: "+wt+", token: "+rt);switch(gt[0]){case 1:C.push(rt),P.push(pt.yytext),B.push(pt.yylloc),C.push(gt[1]),rt=null,Y=pt.yyleng,R=pt.yytext,H=pt.yylineno,yt=pt.yylloc;break;case 2:if(Rt=this.productions_[gt[1]][1],_t. $ =P[P.length-Rt],_t._ $ ={first_line:B[B.length-(Rt||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(Rt||1)].first_column,last_column:B[B.length-1].last_column},ht&&(_t._ $ .range=[B[B.length-(Rt||1)].range[0],B[B.length-1].range[1]]),lt=this.performAction.apply(_t,[R,Y,H,Tt.yy,gt[1],P,B].concat(st)),typeof lt<"u")return lt;Rt&&(C=C.slice(0,-1*Rt*2),P=P.slice(0,-1*Rt),B=B.slice(0,-1*Rt)),C.push(this.productions_[gt[1]][0]),P.push(_t. $ ),B.push(_t._ $ ),ft=j[C[C.length-2]][C[C.length-1]],C.push(ft);break;case 3:return!0}}return!0}},p=function(){var m={EOF:1,parseError:function(E,C){if(this.yy.parser)this.yy.parser.parseError(E,C);else throw new Error(E)},setInput:function(b,E){return this.yy=E||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var E=b.match(/(?: \r \n ?| \n ).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},unput:function(b){var E=b.length,C=b.split(/(?: \r \n ?| \n )/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var D=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),C.length-1&&(this.yylineno-=C.length-1);var P=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:C?(C.length===D.length?this.yylloc.first_column:0)+D[D.length-C.length].length-C[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[P[0],P[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(b){this.unput(this.match.slice(b))},pastInput:function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var b=this.pastInput(),E=new Array(b.length+1).join("-");return b+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +E+"^"},test_match:function(b,E){var C,D,P;if(this.options.backtrack_lexer&&(P={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(P.yylloc.range=this.yylloc.range.slice(0))),D=b[0].match(/(?: \r \n ?| \n ).*/g),D&&(this.yylineno+=D.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:D?D[D.length-1].length-D[D.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],C=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),C)return C;if(this._backtrack){for(var B in P)this[B]=P[B];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,E,C,D;this._more||(this.yytext="",this.match="");for(var P=this._currentRules(),B=0;B<P.length;B++)if(C=this._input.match(this.rules[P[B]]),C&&(!E||C[0].length>E[0].length)){if(E=C,D=B,this.options.backtrack_lexer){if(b=this.test_match(C,P[B]),b!==!1)return b;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(b=this.test_match(E,P[D]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var E=this.next();return E||this.lex()},begin:function(E){this.conditionStack.push(E)},popState:function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},pushState:function(E){this.begin(E)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(E,C,D,P){switch(D){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info \b )/i,/^(?:[ \s \n \r ]+)/i,/^(?:[ \s ]+)/i,/^(?:showInfo \b )/i,/^(?: $ )/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return m}();f.lexer=p;function v(){this.yy={}}return v.prototype=f,f.Parser=v,new v}();P0t.parser=P0t;const Cze=P0t,ABt={info:!1};let F0t=ABt.info;const Sze=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Cze,db:{clear:()=>{F0t=ABt.info},setInfo:i=>{F0t=i},getInfo:()=>F0t},renderer:{draw:(i,a,f)=>{try{zt.debug( ` rendering  info  diagram  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i);const{securityLevel:p}=Oe();let v,m;p==="sandbox"&&(v=Mr("#i"+a),m=v.nodes()[0].contentDocument);const E=Mr(v!==void 0&&m!==void 0&&m!==null?m:"body").select("#"+a);E.attr("height",100),E.attr("width",400),E.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+f)}catch(p){zt.error("error while rendering info diagram",p)}}}}},Symbol.toStringTag,{value:"Module"}));var B0t=function(){var i=function(yt,ht,mt,rt){for(mt=mt||{},rt=yt.length;rt--;mt[yt[rt]]=ht);return mt},a=[1,4],f=[1,5],p=[1,6],v=[1,7],m=[1,9],b=[1,11,13,15,17,19,20,26,27,28,29],E=[2,5],C=[1,6,11,13,15,17,19,20,26,27,28,29],D=[26,27,28],P=[2,8],B=[1,18],j=[1,19],R=[1,20],H=[1,21],Y=[1,22],it=[1,23],nt=[1,28],st=[6,26,27,28,29],pt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32, $ accept:0, $ end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(ht,mt,rt,wt,gt,lt,_t){var X=lt.length-1;switch(gt){case 4:wt.setShowData(!0);break;case 7:this. $ =lt[X-1];break;case 9:wt.addSection(lt[X-1],wt.cleanupValue(lt[X]));break;case 10:this. $ =lt[X].trim(),wt.setDiagramTitle(this. $ );break;case 11:this. $ =lt[X].trim(),wt.setAccTitle(this. $ );break;case 12:case 13:this. $ =lt[X].trim(),wt.setAccDescription(this. $ );break;case 14:wt.addSection(lt[X].substr(8)),this. $ =lt[X].substr(8);break;case 21:wt.parseDirective("%%{","open_directive");break;case 22:wt.parseDirective(lt[X],"type_directive");break;case 23:lt[X]=lt[X].trim().replace(/'/g,'"'),wt.parseDirective(lt[X],"arg_directive");break;case 24:wt.parseDirective("}%%","close_directive","pie");break}},table:[{3:1,4:2,5:3,6:a,21:8,26:f,27:p,28:v,29:m},{1:[3]},{3:10,4:2,5:3,6:a,21:8,26:f,27:p,28:v,29:m},{3:11,4:2,5:3,6:a,21:8,26:f,27:p,28:v,29:m},i(b,E,{7:12,8:[1,13]}),i(C,[2,18]),i(C,[2,19]),i(C,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},i(D,P,{21:8,9:16,10:17,5:24,1:[2,3],11:B,13:j,15:R,17:H,19:Y,20:it,29:m}),i(b,E,{7:25}),{23:26,24:[1,27],32:nt},i([24,32],[2,22]),i(b,[2,6]),{4:29,26:f,27:p,28:v},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},i(D,[2,13]),i(D,[2,14]),i(D,[2,15]),i(D,P,{21:8,9:16,10:17,5:24,1:[2,4],11:B,13:j,15:R,17:H,19:Y,20:it,29:m}),i(st,[2,16]),{25:34,31:[1,35]},i(st,[2,24]),i(b,[2,7]),i(D,[2,9]),i(D,[2,10]),i(D,[2,11]),i(D,[2,12]),{23:36,32:nt},{32:[2,23]},i(st,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(ht,mt){if(mt.recoverable)this.trace(ht);else{var rt=new Error(ht);throw rt.hash=mt,rt}},parse:function(ht){var mt=this,rt=[0],wt=[],gt=[null],lt=[],_t=this.table,X="",Rt=0,ft=0,de=2,J=1,ae=lt.slice.call(arguments,1),Wt=Object.create(this.lexer),It={yy:{}};for(var Nt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Nt)&&(It.yy[Nt]=this.yy[Nt]);Wt.setInput(ht,It.yy),It.yy.lexer=Wt,It.yy.parser=this,typeof Wt.yylloc>"u"&&(Wt.yylloc={});var me=Wt.yylloc;lt.push(me);var Ue=Wt.options&&Wt.options.ranges;typeof It.yy.parseError=="function"?this.parseError=It.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _n(){var jt;return jt=wt.pop()||Wt.lex()||J,typeof jt!="number"&&(jt instanceof Array&&(wt=jt,jt=wt.pop()),jt=mt.symbols_[jt]||jt),jt}for(var _e,rr,Te,ne,Ee={},ye,Vt,Ae,Gt;;){if(rr=rt[rt.length-1],
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Wt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Gt.join(", ")+", got '"+(this.terminals_[_e]||_e)+"'":un="Parse error on line "+(Rt+1)+": Unexpected "+(_e==J?"end of input":"'"+(this.terminals_[_e]||_e)+"'"),this.parseError(un,{text:Wt.match,token:this.terminals_[_e]||_e,line:Wt.yylineno,loc:me,expected:Gt})}if(Te[0]instanceof Array&&Te.length>1)throw new Error("Parse Error: multiple actions possible at state: "+rr+", token: "+_e);switch(Te[0]){case 1:rt.push(_e),gt.push(Wt.yytext),lt.push(Wt.yylloc),rt.push(Te[1]),_e=null,ft=Wt.yyleng,X=Wt.yytext,Rt=Wt.yylineno,me=Wt.yylloc;break;case 2:if(Vt=this.productions_[Te[1]][1],Ee. $ =gt[gt.length-Vt],Ee._ $ ={first_line:lt[lt.length-(Vt||1)].first_line,last_line:lt[lt.length-1].last_line,first_column:lt[lt.length-(Vt||1)].first_column,last_column:lt[lt.length-1].last_column},Ue&&(Ee._ $ .range=[lt[lt.length-(Vt||1)].range[0],lt[lt.length-1].range[1]]),ne=this.performAction.apply(Ee,[X,ft,Rt,It.yy,Te[1],gt,lt].concat(ae)),typeof ne<"u")return ne;Vt&&(rt=rt.slice(0,-1*Vt*2),gt=gt.slice(0,-1*Vt),lt=lt.slice(0,-1*Vt)),rt.push(this.productions_[Te[1]][0]),gt.push(Ee. $ ),lt.push(Ee._ $ ),Ae=_t[rt[rt.length-2]][rt[rt.length-1]],rt.push(Ae);break;case 3:return!0}}return!0}},Tt=function(){var yt={EOF:1,parseError:function(mt,rt){if(this.yy.parser)this.yy.parser.parseError(mt,rt);else throw new Error(mt)},setInput:function(ht,mt){return this.yy=mt||this.yy||{},this._input=ht,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ht=this._input[0];this.yytext+=ht,this.yyleng++,this.offset++,this.match+=ht,this.matched+=ht;var mt=ht.match(/(?: \r \n ?| \n ).*/g);return mt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ht},unput:function(ht){var mt=ht.length,rt=ht.split(/(?: \r \n ?| \n )/g);this._input=ht+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-mt),this.offset-=mt;var wt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),rt.length-1&&(this.yylineno-=rt.length-1);var gt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:rt?(rt.length===wt.length?this.yylloc.first_column:0)+wt[wt.length-rt.length].length-rt[0].length:this.yylloc.first_column-mt},this.options.ranges&&(this.yylloc.range=[gt[0],gt[0]+this.yyleng-mt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ht){this.unput(this.match.slice(ht))},pastInput:function(){var ht=this.matched.substr(0,this.matched.length-this.match.length);return(ht.length>20?"...":"")+ht.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var ht=this.match;return ht.length<20&&(ht+=this._input.substr(0,20-ht.length)),(ht.substr(0,20)+(ht.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var ht=this.pastInput(),mt=new Array(ht.length+1).join("-");return ht+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +mt+"^"},test_match:function(ht,mt){var rt,wt,gt;if(this.options.backtrack_lexer&&(gt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(gt.yylloc.range=this.yylloc.range.slice(0))),wt=ht[0].match(/(?: \r \n ?| \n ).*/g),wt&&(this.yylineno+=wt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:wt?wt[wt.length-1].length-wt[wt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+ht[0].length},this.yytext+=ht[0],this.match+=ht[0],this.matches=ht,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ht[0].length),this.matched+=ht[0],rt=this.performAction.call(this,this.yy,this,mt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),rt)return rt;if(this._backtrack){for(var lt in gt)this[lt]=gt[lt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ht,mt,rt,wt;this._more||(this.yytext="",this.match="");for(var gt=this._currentRules(),lt=0;lt<gt.length;lt++)if(rt=this._input.match(this.rules[gt[lt]]),rt&&(!mt||rt[0].length>mt[0].length)){if(mt=rt,wt=lt,this.options.backtrack_lexer){if(ht=this.test_match(rt,gt[lt]),ht!==!1)return ht;if(this._backtrack){mt=!1;continue}else return!1}else if(!this.options.flex)break}return mt?(ht=this.test_match(mt,gt[wt]),ht!==!1?ht:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var mt=this.next();return mt||this.lex()},begin:function(mt){this.conditionStack.push(mt)},popState:function(){var mt=this.conditionStack.length-1;return mt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(mt){return mt=this.conditionStack.length-1-Math.abs(mt||0),mt>=0?this.conditionStack[mt]:"INITIAL"},pushState:function(mt){this.begin(mt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(mt,rt,wt,gt){switch(wt){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:break;case 6:break;case 7:return 26;case 8:break;case 9:break;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 20:this.popState();break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n \r ]+)/i,/^(?:%%[^ \n ]*)/i,/^(?:[ \s ]+)/i,/^(?:title \b )/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie \b )/i,/^(?:showData \b )/i,/^(?::[ \s ]*[ \d ]+(?: \. [ \d ]+)?)/i,/^(?: $ )/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};return yt}();pt.lexer=Tt;function kt(){this.yy={}}return kt.prototype=pt,pt.Parser=kt,new kt}();B0t.parser=B0t;const Aze=B0t;let yK={},R0t=!1;const Lze={parseDirective:function(i,a,f){d1.parseDirective(this,i,a,f)},getConfig:()=>Oe().pie,addSection:function(i,a){i=yi.sanitizeText(i,Oe()),yK[i]===void 0&&(yK[i]=a,zt.debug("Added new section :",i))},getSections:()=>yK,cleanupValue:function(i){return i.substring(0,1)===":"&&(i=i.substring(1).trim()),Number(i.trim())},clear:function(){yK={},R0t=!1,ap()},setAccTitle:cg,getAccTitle:op,setDiagramTitle:Kb,getDiagramTitle:O2,setShowData:function(i){R0t=i},getShowData:function(){return R0t},getAccDescription:up,setAccDescription:cp},Mze=i=> `  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . pieCircle { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . pieStrokeColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width  :  $ { i . pieStrokeWidth } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    opacity  :  $ { i . pieOpacity } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . pieOuterCircle { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . pieOuterStrokeColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  $ { i . pieOuterStrokeWidth } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . pieTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { i . pieTitleTextSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . pieTitleTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . slice  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . pieSectionTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size : $ { i . pieSectionTextSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // fill: white;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . legend  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . pieLegendTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { i . pieLegendTextSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;let w3=Oe(),M5;const EP=450,Dze=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Aze,db:Lze,renderer:{draw:(i,a,f,p)=>{var pt;try{w3=Oe(),zt.debug( ` Rendering  info  diagram  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i);const Tt=Oe().securityLevel;let kt;Tt==="sandbox"&&(kt=Mr("#i"+a));const yt=Mr(Tt==="sandbox"?kt.nodes()[0].contentDocument.body:"body"),ht=Tt==="sandbox"?kt.nodes()[0].contentDocument:document;p.db.clear(),p.parser.parse(i),zt.debug("Parsed info diagram");const mt=ht.getElementById(a);M5=mt.parentElement.offsetWidth,M5===void 0&&(M5=1200),w3.useWidth!==void 0&&(M5=w3.useWidth),w3.pie.useWidth!==void 0&&(M5=w3.pie.useWidth);const rt=yt.select("#"+a);Wb(rt,EP,M5,w3.pie.useMaxWidth),mt.setAttribute("viewBox","0 0 "+M5+" "+EP);var v=40,m=18,b=4,E=Math.min(M5,EP)/2-v,C=rt.append("g").attr("transform","translate("+M5/2+","+EP/2+")"),D=p.db.getSections(),P=0;Object.keys(D).forEach(function(_t){P+=D[_t]});const wt=w3.themeVariables;var B=[wt.pie1,wt.pie2,wt.pie3,wt.pie4,wt.pie5,wt.pie6,wt.pie7,wt.pie8,wt.pie9,wt.pie10,wt.pie11,wt.pie12];const gt=((pt=w3.pie)==null?void 0:pt.textPosition)??.75;let[lt]=zA(wt.pieOuterStrokeWidth);lt??(lt=2);var j=gMt().range(B),R=Object.entries(D).map(function(_t,X){return{order:X,name:_t[0],value:_t[1]}}),H=Z7e().value(function(_t){return _t.value}).sort(function(_t,X){return _t.order-X.order}),Y=H(R),it=CA().innerRadius(0).outerRadius(E),nt=CA().innerRadius(E*gt).outerRadius(E*gt);C.append("circle").attr("cx",0).attr("cy",0).attr("r",E+lt/2).attr("class","pieOuterCircle"),C.selectAll("mySlices").data(Y).enter().append("path").attr("d",it).attr("fill",function(_t){return j(_t.data.name)}).attr("class","pieCircle"),C.selectAll("mySlices").data(Y).enter().append("text").text(function(_t){return(_t.data.value/P*100).toFixed(0)+"%"}).attr("transform",function(_t){return"translate("+nt.centroid(_t)+")"}).style("text-anchor","middle").attr("class","slice"),C.append("text").text(p.db.getDiagramTitle()).attr("x",0).attr("y",-(EP-50)/2).attr("class","pieTitleText");var st=C.selectAll(".legend").data(j.domain()).enter().append("g").attr("class","legend").attr("transform",function(_t,X){const Rt=m+b,ft=Rt*j.domain().length/2,de=12*m,J=X*Rt-ft;return"translate("+de+","+J+")"});st.append("rect").attr("width",m).attr("height",m).style("fill",j).style("stroke",j),st.data(Y).append("text").attr("x",m+b).attr("y",m-b).text(function(_t){return p.db.getShowData()||w3.showData||w3.pie.showData?_t.data.name+" ["+_t.data.value+"]":_t.data.name})}catch(Tt){zt.error("Error while rendering info diagram"),zt.error(Tt)}}},styles:Mze}},Symbol.toStringTag,{value:"Module"}));var j0t=function(){var i=function(Te,ne,Ee,ye){for(Ee=Ee||{},ye=Te.length;ye--;Ee[Te[ye]]=ne);return Ee},a=[1,3],f=[1,5],p=[1,6],v=[1,7],m=[1,8],b=[1,10],E=[1,5,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],C=[1,5,7,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],D=[38,39,40],P=[2,8],B=[1,19],j=[1,23],R=[1,24],H=[1,25],Y=[1,26],it=[1,27],nt=[1,29],st=[1,30],pt=[1,31],Tt=[1,32],kt=[1,33],yt=[1,34],ht=[1,37],mt=[1,38],rt=[1,39],wt=[1,40],gt=[1,41],lt=[1,42],_t=[1,43],X=[1,44],Rt=[1,45],ft=[1,46],de=[1,47],J=[1,48],ae=[1,49],Wt=[1,52],It=[1,67],Nt=[1,68],me=[5,23,27,38,39,40,50,51,52,53,54,55,56,57,58,59,60,61],Ue=[5,7,38,39,40,41],_n={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,directive:6,QUADRANT:7,document:8,line:9,statement:10,axisDetails:11,quadrantDetails:12,points:13,title:14,title_value:15,acc_title:16,acc_title_value:17,acc_descr:18,acc_descr_value:19,acc_descr_multiline_value:20,section:21,text:22,point_start:23,point_x:24,point_y:25,"X-AXIS":26,"AXIS-TEXT-DELIMITER":27,"Y-AXIS":28,QUADRANT_1:29,QUADRANT_2:30,QUADRANT_3:31,QUADRANT_4:32,openDirective:33,typeDirective:34,closeDirective:35,":":36,argDirective:37,NEWLINE:38,SEMI:39,EOF:40,open_directive:41,type_directive:42,arg_directive:43,close_directive:44,alphaNumToken:45,textNoTagsToken:46,STR:47,MD_STR:48,alphaNum:49,PUNCTUATION:50,AMP:51,NUM:52,ALPHA:53,COMMA:54,PLUS:55,EQUALS:56,MULT:57,DOT:58,BRKT:59,UNDERSCORE:60,MINUS:61, $ accept:0, $ end:1},terminals_:{2:"error",5:"SPACE",7:"QUADRANT",14:"title",15:"title_value",16:"acc_title",17:"acc_title_value",18:"acc_descr",19:"acc_descr_value",20:"acc
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +fe.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +zn.join(", ")+", got '"+(this.terminals_[En]||En)+"'":Zn="Parse error on line "+(Ke+1)+": Unexpected "+(En==Le?"end of input":"'"+(this.terminals_[En]||En)+"'"),this.parseError(Zn,{text:fe.match,token:this.terminals_[En]||En,line:fe.yylineno,loc:tr,expected:zn})}if(hr[0]instanceof Array&&hr.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Dr+", token: "+En);switch(hr[0]){case 1:ye.push(En),Ae.push(fe.yytext),Gt.push(fe.yylloc),ye.push(hr[1]),En=null,oe=fe.yyleng,jt=fe.yytext,Ke=fe.yylineno,tr=fe.yylloc;break;case 2:if(hi=this.productions_[hr[1]][1],Is. $ =Ae[Ae.length-hi],Is._ $ ={first_line:Gt[Gt.length-(hi||1)].first_line,last_line:Gt[Gt.length-1].last_line,first_column:Gt[Gt.length-(hi||1)].first_column,last_column:Gt[Gt.length-1].last_column},ur&&(Is._ $ .range=[Gt[Gt.length-(hi||1)].range[0],Gt[Gt.length-1].range[1]]),Ki=this.performAction.apply(Is,[jt,oe,Ke,sr.yy,hr[1],Ae,Gt].concat(Nr)),typeof Ki<"u")return Ki;hi&&(ye=ye.slice(0,-1*hi*2),Ae=Ae.slice(0,-1*hi),Gt=Gt.slice(0,-1*hi)),ye.push(this.productions_[hr[1]][0]),Ae.push(Is. $ ),Gt.push(Is._ $ ),qi=un[ye[ye.length-2]][ye[ye.length-1]],ye.push(qi);break;case 3:return!0}}return!0}},_e=function(){var Te={EOF:1,parseError:function(Ee,ye){if(this.yy.parser)this.yy.parser.parseError(Ee,ye);else throw new Error(Ee)},setInput:function(ne,Ee){return this.yy=Ee||this.yy||{},this._input=ne,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ne=this._input[0];this.yytext+=ne,this.yyleng++,this.offset++,this.match+=ne,this.matched+=ne;var Ee=ne.match(/(?: \r \n ?| \n ).*/g);return Ee?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ne},unput:function(ne){var Ee=ne.length,ye=ne.split(/(?: \r \n ?| \n )/g);this._input=ne+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ee),this.offset-=Ee;var Vt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ye.length-1&&(this.yylineno-=ye.length-1);var Ae=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ye?(ye.length===Vt.length?this.yylloc.first_column:0)+Vt[Vt.length-ye.length].length-ye[0].length:this.yylloc.first_column-Ee},this.options.ranges&&(this.yylloc.range=[Ae[0],Ae[0]+this.yyleng-Ee]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ne){this.unput(this.match.slice(ne))},pastInput:function(){var ne=this.matched.substr(0,this.matched.length-this.match.length);return(ne.length>20?"...":"")+ne.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var ne=this.match;return ne.length<20&&(ne+=this._input.substr(0,20-ne.length)),(ne.substr(0,20)+(ne.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var ne=this.pastInput(),Ee=new Array(ne.length+1).join("-");return ne+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Ee+"^"},test_match:function(ne,Ee){var ye,Vt,Ae;if(this.options.backtrack_lexer&&(Ae={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ae.yylloc.range=this.yylloc.range.slice(0))),Vt=ne[0].match(/(?: \r \n ?| \n ).*/g),Vt&&(this.yylineno+=Vt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Vt?Vt[Vt.length-1].length-Vt[Vt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+ne[0].length},this.yytext+=ne[0],this.match+=ne[0],this.matches=ne,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ne[0].length),this.matched+=ne[0],ye=this.performAction.call(this,this.yy,this,Ee,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ye)return ye;if(this._backtrack){for(var Gt in Ae)this[Gt]=Ae[Gt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ne,Ee,ye,Vt;this._more||(this.yytext="",this.match="");for(var Ae=this._currentRules(),Gt=0;Gt<Ae.length;Gt++)if(ye=this._input.match(this.rules[Ae[Gt]]),ye&&(!Ee||ye[0].length>Ee[0].length)){if(Ee=ye,Vt=Gt,this.options.backtrack_lexer){if(ne=this.test_match(ye,Ae[Gt]),ne!==!1)return ne;if(this._backtrack){Ee=!1;continue}else return!1}else if(!this.options.flex)break}return Ee?(ne=this.test_match(Ee,Ae[Vt]),ne!==!1?ne:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ee=this.next();return Ee||this.lex()},begin:function(Ee){this.conditionStack.push(Ee)},popState:function(){var Ee=this.conditionStack.length-1;return Ee>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ee){return Ee=this.conditionStack.length-1-Math.abs(Ee||0),Ee>=0?this.conditionStack[Ee]:"INITIAL"},pushState:function(Ee){this.begin(Ee)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ee,ye,Vt,Ae){switch(Vt){case 0:return this.begin("open_directive"),41;case 1:return this.begin("type_directive"),42;case 2:return this.popState(),this.begin("arg_directive"),36;case 3:return this.popState(),this.popState(),44;case 4:return 43;case 5:break;case 6:break;case 7:return 38;case 8:break;case 9:return this.begin("title"),14;case 10:return this.popState(),"title_value";case 11:return this.begin("acc_title"),16;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),18;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 26;case 19:return 28;case 20:return 27;case 21:return 29;case 22:return 30;case 23:return 31;case 24:return 32;case 25:this.begin("md_string");break;case 26:return"MD_STR";case 27:this.popState();break;case 28:this.begin("string");break;case 29:this.popState();break;case 30:return"STR";case 31:return this.begin("point_start"),23;case 32:return this.begin("point_x"),24;case 33:this.popState();break;case 34:this.popState(),this.begin("point_y");break;case 35:return this.popState(),25;case 36:return 7;case 37:return 53;case 38:return"COLON";case 39:return 55;case 40:return 54;case 41:return 56;case 42:return 56;case 43:return 57;case 44:return 59;case 45:return 60;case 46:return 58;case 47:return 51;case 48:return 61;case 49:return 52;case 50:return 5;case 51:return 39;case 52:return 50;case 53:return 40}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n \r ]+)/i,/^(?:%%[^ \n ]*)/i,/^(?:title \b )/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][ ` ] ) / i , /^(?:[^`"]+)/i , /^(?:[`]["])/i , /^(?:["])/i , /^(?:["])/i , /^(?:[^"]*)/i , /^(?:\s*:\s*\[\s*)/i , /^(?:(1)|(0(.\d+)?))/i , /^(?:\s*\] *)/i , /^(?:\s*,\s*)/i , /^(?:(1)|(0(.\d+)?))/i , /^(?: *quadrantChart *)/i , /^(?:[A-Za-z]+)/i , /^(?::)/i , /^(?:\+)/i , /^(?:,)/i , /^(?:=)/i , /^(?:=)/i , /^(?:\*)/i , /^(?:#)/i , /^(?:[\_])/i , /^(?:\.)/i , /^(?:&)/i , /^(?:-)/i , /^(?:[0-9]+)/i , /^(?:\s)/i , /^(?:;)/i , /^(?:[!"#$%&'*+,-.`?\\_/])/i , /^(?:$)/i ] , conditions : { point _y : { rules : [ 35 ] , inclusive : ! 1 } , point _x : { rules : [ 34 ] , inclusive : ! 1 } , point _start : { rules : [ 32 , 33 ] , inclusive : ! 1 } , acc _descr _multiline : { rules : [ 16 , 17 ] , inclusive : ! 1 } , acc _descr : { rules : [ 14 ] , inclusive : ! 1 } , acc _title : { rules : [ 12 ] , inclusive : ! 1 } , close _directive : { rules : [ ] , inclusive : ! 1 } , arg _directive : { rules : [ 3 , 4 ] , inclusive : ! 1 } , type _directive : { rules : [ 2 , 3 ] , inclusive : ! 1 } , open _directive : { rules : [ 1 ] , inclusive : ! 1 } , title : { rules : [ 10 ] , inclusive : ! 1 } , md _string : { rules : [ 26 , 27 ] , inclusive : ! 1 } , string : { rules : [ 29 , 30 ] , inclusive : ! 1 } , INITIAL : { rules : [ 0 , 5 , 6 , 7 , 8 , 9 , 11 , 13 , 15 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 28 , 31 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 52 , 53 ] , inclusive : ! 0 } } } ; return  Te } ( ) ; _n . lexer = _e ; function  rr ( ) { this . yy = { } } return  rr . prototype = _n , _n . Parser = rr , new  rr } ( ) ; j0t . parser = j0t ; const  Ize = j0t , hg = CDt ( ) ; class  Oze { constructor ( ) { this . config = this . getDefaultConfig ( ) , this . themeConfig = this . getDefaul  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i);const C=E.securityLevel;let D;C==="sandbox"&&(D=Mr("#i"+a));const B=Mr(C==="sandbox"?D.nodes()[0].contentDocument.body:"body").select( ` [ id = "${a}" ] ` ),j=B.append("g").attr("class","main"),R=((mt=E.quadrantChart)==null?void 0:mt.chartWidth)||500,H=((rt=E.quadrantChart)==null?void 0:rt.chartHeight)||500;Wb(B,H,R,((wt=E.quadrantChart)==null?void 0:wt.useMaxWidth)||!0),B.attr("viewBox","0 0 "+R+" "+H),p.db.setHeight(H),p.db.setWidth(R);const Y=p.db.getQuadrantData(),it=j.append("g").attr("class","quadrants"),nt=j.append("g").attr("class","border"),st=j.append("g").attr("class","data-points"),pt=j.append("g").attr("class","labels"),Tt=j.append("g").attr("class","title");Y.title&&Tt.append("text").attr("x",0).attr("y",0).attr("fill",Y.title.fill).attr("font-size",Y.title.fontSize).attr("dominant-baseline",v(Y.title.horizontalPos)).attr("text-anchor",m(Y.title.verticalPos)).attr("transform",b(Y.title)).text(Y.title.text),Y.borderLines&&nt.selectAll("line").data(Y.borderLines).enter().append("line").attr("x1",gt=>gt.x1).attr("y1",gt=>gt.y1).attr("x2",gt=>gt.x2).attr("y2",gt=>gt.y2).style("stroke",gt=>gt.strokeFill).style("stroke-width",gt=>gt.strokeWidth);const kt=it.selectAll("g.quadrant").data(Y.quadrants).enter().append("g").attr("class","quadrant");kt.append("rect").attr("x",gt=>gt.x).attr("y",gt=>gt.y).attr("width",gt=>gt.width).attr("height",gt=>gt.height).attr("fill",gt=>gt.fill),kt.append("text").attr("x",0).attr("y",0).attr("fill",gt=>gt.text.fill).attr("font-size",gt=>gt.text.fontSize).attr("dominant-baseline",gt=>v(gt.text.horizontalPos)).attr("text-anchor",gt=>m(gt.text.verticalPos)).attr("transform",gt=>b(gt.text)).text(gt=>gt.text.text),pt.selectAll("g.label").data(Y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(gt=>gt.text).attr("fill",gt=>gt.fill).attr("font-size",gt=>gt.fontSize).attr("dominant-baseline",gt=>v(gt.horizontalPos)).attr("text-anchor",gt=>m(gt.verticalPos)).attr("transform",gt=>b(gt));const ht=st.selectAll("g.data-point").data(Y.points).enter().append("g").attr("class","data-point");ht.append("circle").attr("cx",gt=>gt.x).attr("cy",gt=>gt.y).attr("r",gt=>gt.radius).attr("fill",gt=>gt.fill),ht.append("text").attr("x",0).attr("y",0).text(gt=>gt.text.text).attr("fill",gt=>gt.text.fill).attr("font-size",gt=>gt.text.fontSize).attr("dominant-baseline",gt=>v(gt.text.horizontalPos)).attr("text-anchor",gt=>m(gt.text.verticalPos)).attr("transform",gt=>b(gt.text))}},styles:()=>""}},Symbol.toStringTag,{value:"Module"}));var  $ 0t=function(){var i=function(rr,Te,ne,Ee){for(ne=ne||{},Ee=rr.length;Ee--;ne[rr[Ee]]=Te);return ne},a=[1,3],f=[1,5],p=[1,6],v=[1,7],m=[1,8],b=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],E=[1,22],C=[2,13],D=[1,26],P=[1,27],B=[1,28],j=[1,29],R=[1,30],H=[1,31],Y=[1,24],it=[1,32],nt=[1,33],st=[1,36],pt=[71,72],Tt=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],kt=[1,56],yt=[1,57],ht=[1,58],mt=[1,59],rt=[1,60],wt=[1,61],gt=[1,62],lt=[62,63],_t=[1,74],X=[1,70],Rt=[1,71],ft=[1,72],de=[1,73],J=[1,75],ae=[1,79],Wt=[1,80],It=[1,77],Nt=[1,78],me=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],Ue={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Nr.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +qi.join(", ")+", got '"+(this.terminals_[fn]||fn)+"'":zn="Parse error on line "+(jt+1)+": Unexpected "+(fn==Or?"end of input":"'"+(this.terminals_[fn]||fn)+"'"),this.parseError(zn,{text:Nr.match,token:this.terminals_[fn]||fn,line:Nr.yylineno,loc:Yn,expected:qi})}if(Dr[0]instanceof Array&&Dr.length>1)throw new Error("Parse Error: multiple actions possible at state: "+En+", token: "+fn);switch(Dr[0]){case 1:Ee.push(fn),Vt.push(Nr.yytext),Ae.push(Nr.yylloc),Ee.push(Dr[1]),fn=null,Ke=Nr.yyleng,un=Nr.yytext,jt=Nr.yylineno,Yn=Nr.yylloc;break;case 2:if(Ha=this.productions_[Dr[1]][1],Ki. $ =Vt[Vt.length-Ha],Ki._ $ ={first_line:Ae[Ae.length-(Ha||1)].first_line,last_line:Ae[Ae.length-1].last_line,first_column:Ae[Ae.length-(Ha||1)].first_column,last_column:Ae[Ae.length-1].last_column},tr&&(Ki._ $ .range=[Ae[Ae.length-(Ha||1)].range[0],Ae[Ae.length-1].range[1]]),hr=this.performAction.apply(Ki,[un,Ke,jt,fe.yy,Dr[1],Vt,Ae].concat(Le)),typeof hr<"u")return hr;Ha&&(Ee=Ee.slice(0,-1*Ha*2),Vt=Vt.slice(0,-1*Ha),Ae=Ae.slice(0,-1*Ha)),Ee.push(this.productions_[Dr[1]][0]),Vt.push(Ki. $ ),Ae.push(Ki._ $ ),hi=Gt[Ee[Ee.length-2]][Ee[Ee.length-1]],Ee.push(hi);break;case 3:return!0}}return!0}},_n=function(){var rr={EOF:1,parseError:function(ne,Ee){if(this.yy.parser)this.yy.parser.parseError(ne,Ee);else throw new Error(ne)},setInput:function(Te,ne){return this.yy=ne||this.yy||{},this._input=Te,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Te=this._input[0];this.yytext+=Te,this.yyleng++,this.offset++,this.match+=Te,this.matched+=Te;var ne=Te.match(/(?: \r \n ?| \n ).*/g);return ne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Te},unput:function(Te){var ne=Te.length,Ee=Te.split(/(?: \r \n ?| \n )/g);this._input=Te+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ne),this.offset-=ne;var ye=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ee.length-1&&(this.yylineno-=Ee.length-1);var Vt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ee?(Ee.length===ye.length?this.yylloc.first_column:0)+ye[ye.length-Ee.length].length-Ee[0].length:this.yylloc.first_column-ne},this.options.ranges&&(this.yylloc.range=[Vt[0],Vt[0]+this.yyleng-ne]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Te){this.unput(this.match.slice(Te))},pastInput:function(){var Te=this.matched.substr(0,this.matched.length-this.match.length);return(Te.length>20?"...":"")+Te.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var Te=this.match;return Te.length<20&&(Te+=this._input.substr(0,20-Te.length)),(Te.substr(0,20)+(Te.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var Te=this.pastInput(),ne=new Array(Te.length+1).join("-");return Te+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +ne+"^"},test_match:function(Te,ne){var Ee,ye,Vt;if(this.options.backtrack_lexer&&(Vt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Vt.yylloc.range=this.yylloc.range.slice(0))),ye=Te[0].match(/(?: \r \n ?| \n ).*/g),ye&&(this.yylineno+=ye.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ye?ye[ye.length-1].length-ye[ye.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+Te[0].length},this.yytext+=Te[0],this.match+=Te[0],this.matches=Te,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Te[0].length),this.matched+=Te[0],Ee=this.performAction.call(this,this.yy,this,ne,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ee)return Ee;if(this._backtrack){for(var Ae in Vt)this[Ae]=Vt[Ae];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Te,ne,Ee,ye;this._more||(this.yytext="",this.match="");for(var Vt=this._currentRules(),Ae=0;Ae<Vt.length;Ae++)if(Ee=this._input.match(this.rules[Vt[Ae]]),Ee&&(!ne||Ee[0].length>ne[0].length)){if(ne=Ee,ye=Ae,this.options.backtrack_lexer){if(Te=this.test_match(Ee,Vt[Ae]),Te!==!1)return Te;if(this._backtrack){ne=!1;continue}else return!1}else if(!this.options.flex)break}return ne?(Te=this.test_match(ne,Vt[ye]),Te!==!1?Te:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ne=this.next();return ne||this.lex()},begin:function(ne){this.conditionStack.push(ne)},popState:function(){var ne=this.conditionStack.length-1;return ne>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ne){return ne=this.conditionStack.length-1-Math.abs(ne||0),ne>=0?this.conditionStack[ne]:"INITIAL"},pushState:function(ne){this.begin(ne)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ne,Ee,ye,Vt){switch(ye){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:break;case 15:break;case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 53:this.popState();break;case 54:return"qString";case 55:return Ee.yytext=Ee.yytext.trim(),71}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:( \r ? \n )+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:%[^ \n ]*)/i,/^(?: $ )/i,/^(?:requirementDiagram \b )/i,/^(?: \{ )/i,/^(?: \} )/i,/^(?::)/i,/^(?:id \b )/i,/^(?:text \b )/i,/^(?:risk \b )/i,/^(?:verifyMethod \b )/i,/^(?:requirement \b )/i,/^(?:functionalRequirement \b )/i,/^(?:interfaceRequirement \b )/i,/^(?:performanceRequirement \b )/i,/^(?:physicalRequirement \b )/i,/^(?:designConstraint \b )/i,/^(?:low \b )/i,/^(?:medium \b )/i,/^(?:high \b )/i,/^(?:analysis \b )/i,/^(?:demonstration \b )/i,/^(?:inspection \b )/i,/^(?:test \b )/i,/^(?:element \b )/i,/^(?:contains \b )/i,/^(?:copies \b )/i,/^(?:derives \b )/i,/^(?:satisfies \b )/i,/^(?:verifies \b )/i,/^(?:refines \b )/i,/^(?:traces \b )/i,/^(?:type \b )/i,/^(?:docref \b )/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[ \w ][^ \r \n \{ \< \> \- \= ]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}};return rr}();Ue.lexer=_n;function _e(){this.yy={}}return _e.prototype=Ue,Ue.Parser=_e,new _e}(); $ 0t.parser= $ 0t;const Kze= $ 0t;let z0t=[],dp={},TP={},lk={},_P={};const Yze={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQ
  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  marker  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . relationColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . relationColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  marker . cross  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  svg  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { i . fontSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . reqBox  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . requirementBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill - opacity :  1.0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . requirementBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  $ { i . requirementBorderSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . reqTitle ,  . reqLabel { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :   $ { i . requirementTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . reqLabelBox  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . relationLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill - opacity :  1.0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . req - title - line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . requirementBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  $ { i . requirementBorderSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . relationshipLine  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . relationColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . relationshipLabel  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . relationLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,q0t={CONTAINS:"contains",ARROW:"arrow"},LBt={ReqMarkers:q0t,insertLineEndings:(i,a)=>{let f=i.append("defs").append("marker").attr("id",q0t.CONTAINS+"_line_ending").attr("refX",0).attr("refY",a.line_height/2).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("g");f.append("circle").attr("cx",a.line_height/2).attr("cy",a.line_height/2).attr("r",a.line_height/2).attr("fill","none"),f.append("line").attr("x1",0).attr("x2",a.line_height).attr("y1",a.line_height/2).attr("y2",a.line_height/2).attr("stroke-width",1),f.append("line").attr("y1",0).attr("y2",a.line_height).attr("x1",a.line_height/2).attr("x2",a.line_height/2).attr("stroke-width",1),i.append("defs").append("marker").attr("id",q0t.ARROW+"_line_ending").attr("refX",a.line_height).attr("refY",.5*a.line_height).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("path").attr("d", ` M0 , 0  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      L$ { a . line _height } , $ { a . line _height / 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      M$ { a . line _height } , $ { a . line _height / 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      L0 , $ { a . line _height } ` ).attr("stroke-width",1)}};let Lh={},MBt=0;const DBt=(i,a)=>i.insert("rect","#"+a).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Lh.rect_min_width+"px").attr("height",Lh.rect_min_height+"px"),IBt=(i,a,f)=>{let p=Lh.rect_min_width/2,v=i.append("text").attr("class","req reqLabel reqTitle").attr("id",a).attr("x",p).attr("y",Lh.rect_padding).attr("dominant-baseline","hanging"),m=0;f.forEach(D=>{m==0?v.append("tspan").attr("text-anchor","middle").attr("x",Lh.rect_min_width/2).attr("dy",0).text(D):v.append("tspan").attr("text-anchor","middle").attr("x",Lh.rect_min_width/2).attr("dy",Lh.line_height*.75).text(D),m++});let b=1.5*Lh.rect_padding,E=m*Lh.line_height*.75,C=b+E;return i.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Lh.rect_min_width).attr("y1",C).attr("y2",C),{titleNode:v,y:C}},OBt=(i,a,f,p)=>{let v=i.append("text").attr("class","req reqLabel").attr("id",a).attr("x",Lh.rect_padding).attr("y",p).attr("dominant-baseline","hanging"),m=0;const b=30;let E=[];return f.forEach(C=>{let D=C.length;for(;D>b&&m<3;){let P=C.substring(0,b);C=C.substring(b,C.length),D=C.length,E[E.length]=P,m++}if(m==3){let P=E[E.length-1];E[E.length-1]=P.substring(0,P.length-4)+"..."}else E[E.length]=C;m=0}),E.forEach(C=>{v.append("tspan").attr("x",Lh.rect_padding).attr("dy",Lh.line_height).text(C)}),v},Qze=(i,a,f,p)=>{const v=a.node().getTotalLength(),m=a.node().getPointAtLength(v*.5),b="rel"+MBt;MBt++;const C=i.append("text").attr("class","req relationshipLabel").attr("id",b).attr("x",m.x).attr("y",m.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(p).node().getBBox();i.insert("rect","#"+b).attr("class","req reqLabelBox").attr("x",m.x-C.width/2).attr("y",m.y-C.height/2).attr("width",C.width).attr("height",C.height).attr("fill","white").attr("fill-opacity","85%")},Zze=function(i,a,f,p,v){const m=f.edge(cL(a.src),cL(a.dst)),b=X9().x(function(C){return C.x}).y(function(C){return C.y}),E=i.insert("path","#"+p).attr("class","er relationshipLine").attr("d",b(m.points)).attr("fill","none");a.type==v.db.Relationships.CONTAINS?E.attr("marker-start","url("+yi.getUrl(Lh.arrowMarkerAbsolute)+"#"+a.type+"_line_ending)"):(E.attr("stroke-dasharray","10,7"),E.attr("marker-end","url("+yi.getUrl(Lh.arrowMarkerAbsolute)+"#"+LBt.ReqMarkers.ARROW+"_line_ending)")),Qze(i,E,Lh, ` << $ { a . type } >> ` )},Jze=(i,a,f)=>{Object.keys(i).forEach(p=>{let v=i[p];p=cL(p),zt.info("Added new requirement: ",p);const m=f.append("g").attr("id",p),b="req-"+p,E=DBt(m,b);let C=IBt(m,p+"_title",[ ` << $ { v . type } >> ` , ` $ { v . name } ` ]);OBt(m,p+"_body",[ ` Id :  $ { v . id } ` , ` Text :  $ { v . text } ` , ` Risk :  $ { v . risk } ` , ` Verification :  $ { v . verifyMethod } ` ],C.y);const D=E.node().getBBox();a.setNode(p,{width:D.width,height:D.height,shape:"rect",id:p})})},tqe=(i,a,f)=>{Object.keys(i).forEach(p=>{let v=i[p];const m=cL(p),b=f.append("g").attr("id",m),E="element-"+m,C=DBt(b,E);let D=IBt(b,E+"_title",["<<Element>>", ` $ { p } ` ]);OBt(b,E+"_body",[ ` Type :  $ { v . type || "Not Specified" } ` , ` Doc  Ref :  $ { v . docRef || "None" } ` ],D.y);const P=C.node().getBBox();a.setNode(m,{width:P.width,height:P.height,shape:"rect",id:m})})},eqe=(i,a)=>(i.forEach(function(f){let p=cL(f.src),v=cL(f.dst);a.setEdge(p,v,{relationship:f})}),i),nqe=function(i,a){a.nodes().forEach(function(f){f!==void 0&&a.node(f)!==void 0&&(i.select("#"+f),i.select("#"+f).attr("transform","translate("+(a.node(f).x-a.node(f).width/2)+","+(a.node(f).y-a.node(f).height/2)+" )"))})},cL=i=>i.replace(/ \s /g,"").replace(/ \. /g,"_"),rqe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Kze,db:Yze,renderer:{draw:(i,a,f,p)=>{Lh=Oe().requirement,p.db.clear(),p.parser.parse(i);const v=Lh.securityLevel;let m;v==="sandbox"&&(m=Mr("#i"+a));const E=Mr(v==="sandbox"?m.nodes()[0].contentDocument.body:"body").select( ` [ id = '${a}' ] ` );LBt.insertLineEndings(E,Lh);const C=new jf({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Lh.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let D=p.db.getRequirements(),P=p.db.getElements(),B=p.db.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Yn.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Pr.join(", ")+", got '"+(this.terminals_[hr]||hr)+"'":On="Parse error on line "+(Or+1)+": Unexpected "+(hr==fe?"end of input":"'"+(this.terminals_[hr]||hr)+"'"),this.parseError(On,{text:Yn.match,token:this.terminals_[hr]||hr,line:Yn.yylineno,loc:fn,expected:Pr})}if(Is[0]instanceof Array&&Is.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ki+", token: "+hr);switch(Is[0]){case 1:Ae.push(hr),un.push(Yn.yytext),jt.push(Yn.yylloc),Ae.push(Is[1]),hr=null,Le=Yn.yyleng,oe=Yn.yytext,Or=Yn.yylineno,fn=Yn.yylloc;break;case 2:if(zn=this.productions_[Is[1]][1],hi. $ =un[un.length-zn],hi._ $ ={first_line:jt[jt.length-(zn||1)].first_line,last_line:jt[jt.length-1].last_line,first_column:jt[jt.length-(zn||1)].first_column,last_column:jt[jt.length-1].last_column},En&&(hi._ $ .range=[jt[jt.length-(zn||1)].range[0],jt[jt.length-1].range[1]]),Ha=this.performAction.apply(hi,[oe,Le,Or,tr.yy,Is[1],un,jt].concat(sr)),typeof Ha<"u")return Ha;zn&&(Ae=Ae.slice(0,-1*zn*2),un=un.slice(0,-1*zn),jt=jt.slice(0,-1*zn)),Ae.push(this.productions_[Is[1]][0]),un.push(hi. $ ),jt.push(hi._ $ ),Zn=Ke[Ae[Ae.length-2]][Ae[Ae.length-1]],Ae.push(Zn);break;case 3:return!0}}return!0}},Te=function(){var Ee={EOF:1,parseError:function(Vt,Ae){if(this.yy.parser)this.yy.parser.parseError(Vt,Ae);else throw new Error(Vt)},setInput:function(ye,Vt){return this.yy=Vt||this.yy||{},this._input=ye,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ye=this._input[0];this.yytext+=ye,this.yyleng++,this.offset++,this.match+=ye,this.matched+=ye;var Vt=ye.match(/(?: \r \n ?| \n ).*/g);return Vt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ye},unput:function(ye){var Vt=ye.length,Ae=ye.split(/(?: \r \n ?| \n )/g);this._input=ye+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Vt),this.offset-=Vt;var Gt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ae.length-1&&(this.yylineno-=Ae.length-1);var un=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ae?(Ae.length===Gt.length?this.yylloc.first_column:0)+Gt[Gt.length-Ae.length].length-Ae[0].length:this.yylloc.first_column-Vt},this.options.ranges&&(this.yylloc.range=[un[0],un[0]+this.yyleng-Vt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ye){this.unput(this.match.slice(ye))},pastInput:function(){var ye=this.matched.substr(0,this.matched.length-this.match.length);return(ye.length>20?"...":"")+ye.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var ye=this.match;return ye.length<20&&(ye+=this._input.substr(0,20-ye.length)),(ye.substr(0,20)+(ye.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var ye=this.pastInput(),Vt=new Array(ye.length+1).join("-");return ye+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Vt+"^"},test_match:function(ye,Vt){var Ae,Gt,un;if(this.options.backtrack_lexer&&(un={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(un.yylloc.range=this.yylloc.range.slice(0))),Gt=ye[0].match(/(?: \r \n ?| \n ).*/g),Gt&&(this.yylineno+=Gt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Gt?Gt[Gt.length-1].length-Gt[Gt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+ye[0].length},this.yytext+=ye[0],this.match+=ye[0],this.matches=ye,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ye[0].length),this.matched+=ye[0],Ae=this.performAction.call(this,this.yy,this,Vt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ae)return Ae;if(this._backtrack){for(var jt in un)this[jt]=un[jt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ye,Vt,Ae,Gt;this._more||(this.yytext="",this.match="");for(var un=this._currentRules(),jt=0;jt<un.length;jt++)if(Ae=this._input.match(this.rules[un[jt]]),Ae&&(!Vt||Ae[0].length>Vt[0].length)){if(Vt=Ae,Gt=jt,this.options.backtrack_lexer){if(ye=this.test_match(Ae,un[jt]),ye!==!1)return ye;if(this._backtrack){Vt=!1;continue}else return!1}else if(!this.options.flex)break}return Vt?(ye=this.test_match(Vt,un[Gt]),ye!==!1?ye:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Vt=this.next();return Vt||this.lex()},begin:function(Vt){this.conditionStack.push(Vt)},popState:function(){var Vt=this.conditionStack.length-1;return Vt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Vt){return Vt=this.conditionStack.length-1-Math.abs(Vt||0),Vt>=0?this.conditionStack[Vt]:"INITIAL"},pushState:function(Vt){this.begin(Vt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Vt,Ae,Gt,un){switch(Gt){case 0:return this.begin("open_directive"),84;case 1:return this.begin("type_directive"),85;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),87;case 4:return 86;case 5:return 5;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:return 24;case 12:return this.begin("LINE"),19;case 13:return this.begin("ID"),55;case 14:return this.begin("ID"),57;case 15:return Ae.yytext=Ae.yytext.trim(),this.begin("ALIAS"),74;case 16:return this.popState(),this.popState(),this.begin("LINE"),56;case 17:return this.popState(),this.popState(),5;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),44;case 22:return this.begin("LINE"),54;case 23:return this.begin("LINE"),46;case 24:return this.begin("LINE"),48;case 25:return this.begin("LINE"),53;case 26:return this.begin("LINE"),49;case 27:return this.begin("LINE"),52;case 28:return this.begin("LINE"),51;case 29:return this.popState(),20;case 30:return 21;case 31:return 69;case 32:return 70;case 33:return 63;case 34:return 64;case 35:return 65;case 36:return 66;case 37:return 61;case 38:return 58;case 39:return this.begin("ID"),26;case 40:return this.begin("ID"),28;case 41:return 34;case 42:return 35;case 43:return this.begin("acc_title"),36;case 44:return this.popState(),"acc_title_value";case 45:return this.begin("acc_descr"),38;case 46:return this.popState(),"acc_descr_value";case 47:this.begin("acc_descr_multiline");break;case 48:this.popState();break;case 49:return"acc_descr_multiline_value";case 50:return 7;case 51:return 23;case 52:return 25;case 53:return 68;case 54:return 5;case 55:return Ae.yytext=Ae.yytext.trim(),74;case 56:return 77;case 57:return 78;case 58:return 75;case 59:return 76;case 60:return 79;case 61:return 80;case 62:return 81;case 63:return 82;case 64:return 83;case 65:return 72;case 66:return 73;case 67:return 5;case 68:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:((?! \n ) \s )+)/i,/^(?:#[^ \n ]*)/i,/^(?:%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[0-9]+(?=[  \n ]+))/i,/^(?:box \b )/i,/^(?:participant \b )/i,/^(?:actor \b )/i,/^(?:[^ \- >: \n ,;]+?([ \- ]*[^ \- >: \n ,;]+?)*?(?=((?! \n ) \s )+as(?! \n ) \s |[# \n ;]| $ ))/i,/^(?:as \b )/i,/^(?:(?:))/i,/^(?:loop \b )/i,/^(?:rect \b )/i,/^(?:opt \b )/i,/^(?:alt \b )/i,/^(?:else \b )/i,/^(?:par \b )/i,/^(?:par_over \b )/i,/^(?:and \b )/i,/^(?:critical \b )/i,/^(?:option \b )/i,/^(?:break \b )/i,/^(?:(?:[:]?(?:no)?wrap)?[^# \n ;]*)/i,/^(?:end \b )/i,/^(?:left of \b )/i,/^(?:right of \b )/i,/^(?:links \b )/i,/^(?:link \b )/i,/^(?:properties \b )/i,/^(?:details \b )/i,/^(?:over \b )/i,/^(?:note \b )/i,/^(?:activate \b )/i,/^(?:deactivate \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:title: \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:sequenceDiagram \b )/i,/^(?:autonumber \b )/i,/^(?:off \b )/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^ \+ \- >: \n ,;]+((?!(-x|--x|- \) |-- \) ))[ \- ]*[^ \+ \- >: \n ,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[ \) ])/i,/^(?:--[ \) ])/i,/^(?::(?:(?:no)?wrap)?[^# \n ;]+)/i,/^(?: \+ )/i,/^(?:-)/i,/^(?: $ )/i,/
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text . actor  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorLineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . messageLine0  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . messageLine1  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ,  2 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # arrowhead  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sequenceNumber  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . sequenceNumberColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # sequencenumber  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # crosshead  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . messageText  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . labelBox  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . labelBoxBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . labelBoxBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . labelText ,  . labelText  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . labelTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . loopText ,  . loopText  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . loopTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . loopLine  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ,  2 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . labelBoxBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . labelBoxBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . note  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    //stroke: #decc93;
 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . noteText ,  . noteText  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activation0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activationBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activationBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activation1  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activationBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activationBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activation2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activationBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activationBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actorPopupMenu  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actorPopupMenuPanel  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    box - shadow :  0 px  8 px  16 px  0 px  rgba ( 0 , 0 , 0 , 0.2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    filter :  drop - shadow ( 3 px  5 px  2 px  rgb ( 0  0  0  /  0.4 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - man  line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - man  circle ,  line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,W0t=function(i,a){return IW(i,a)}, $ Bt=(i,a)=>{ySe(()=>{const f=document.querySelectorAll(i);f.length!==0&&(f[0].addEventListener("mouseover",function(){Iqe("actor"+a+"_popup")}),f[0].addEventListener("mouseout",function(){Oqe("actor"+a+"_popup")}))})},Lqe=function(i,a,f,p,v){if(a.links===void 0||a.links===null||Object.keys(a.links).length===0)return{height:0,width:0};const m=a.links,b=a.actorCnt,E=a.rectData;var C="none";v&&(C="block !important");const D=i.append("g");D.attr("id","actor"+b+"_popup"),D.attr("class","actorPopupMenu"),D.attr("display",C), $ Bt("#actor"+b+"_popup",b);var P="";E.class!==void 0&&(P=" "+E.class);let B=E.width>f?E.width:f;const j=D.append("rect");if(j.attr("class","actorPopupMenuPanel"+P),j.attr("x",E.x),j.attr("y",E.height),j.attr("fill",E.fill),j.attr("stroke",E.stroke),j.attr("width",B),j.attr("height",E.height),j.attr("rx",E.rx),j.attr("ry",E.ry),m!=null){var R=20;for(let it in m){var H=D.append("a"),Y=Xx(m[it]);H.attr("xlink:href",Y),H.attr("target","_blank"),Yqe(p)(it,H,E.x+10,E.height+R,B,20,{class:"actor"},p),R+=30}}return j.attr("height",R),{height:E.height+R,width:B}},Mqe=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = 'block'; }"},Dqe=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = 'none'; }"},Iqe=function(i){var a=document.getElementById(i);a!=null&&(a.style.display="block")},Oqe=function(i){var a=document.getElementById(i);a!=null&&(a.style.display="none")},lL=function(i,a){let f=0,p=0;const v=a.text.split(yi.lineBreakRegex),[m,b]=zA(a.fontSize);let E=[],C=0,D=()=>a.y;if(a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0)switch(a.valign){case"top":case"start":D=()=>Math.round(a.y+a.textMargin);break;case"middle":case"center":D=()=>Math.round(a.y+(f+p+a.textMargin)/2);break;case"bottom":case"end":D=()=>Math.round(a.y+(f+p+2*a.textMargin)-a.textMargin);break}if(a.anchor!==void 0&&a.textMargin!==void 0&&a.width!==void 0)switch(a.anchor){case"left":case"start":a.x=Math.round(a.x+a.textMargin),a.anchor="start",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"middle":case"center":a.x=Math.round(a.x+a.width/2),a.anchor="middle",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"right":case"end":a.x=Math.round(a.x+a.width-a.textMargin),a.anchor="end",a.dominantBaseline="middle",a.alignmentBaseline="middle";break}for(let[P,B]of v.entries()){a.textMargin!==void 0&&a.textMargin===0&&m!==void 0&&(C=P*m);const j=i.append("text");j.attr("x",a.x),j.attr("y",D()),a.anchor!==void 0&&j.attr("text-anchor",a.anchor).attr("dominant-baseline",a.dominantBaseline).attr("alignment-baseline",a.alignmentBaseline),a.fontFamily!==void 0&&j.style("font-family",a.fontFamily),b!==void 0&&j.style("font-size",b),a.fontWeight!==void 0&&j.style("font-weight",a.fontWeight),a.fill!==void 0&&j.attr("fill",a.fill),a.class!==void 0&&j.attr("class",a.class),a.dy!==void 0?j.attr("dy",a.dy):C!==0&&j.attr("dy",C);const R=B||fIt;if(a.tspan){const H=j.append("tspan");H.attr("x",a.x),a.fill!==void 0&&H.attr("fill",a.fill),H.text(R)}else j.text(R);a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0&&(p+=(j._groups||j)[0][0].getBBox().height,f=p),E.push(j)}return E},zBt=function(i,a){function f(v,m,b,E,C){return v+","+m+" "+(v+b)+","+m+" "+(v+b)+","+(m+E-C)+" "+(v+b-C*1.2)+","+(m+E)+" "+v+","+(m+E)}const p=i.append("polygon");return p.attr("points",f(a.x,a.y,a.width,a.height,7)),p.attr("class","labelBox"),a.y=a.y+a.height/2,lL(i,a),p};let m3=-1;const qBt=(i,a)=>{i.selectAll&&i.selectAll(".actor-line").attr("class","200").attr("y2",a-55)},Nqe=function(i,a,f,p){const v=a.x+a.width/2,m=a.y+5,b=i.append("g");var E=b;p||(m3++,E.append("line").attr("id","actor"+m3).attr("x1",v).attr("y1",m).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"),E=b.append("g"),a.actorCnt=m3,a.links!=null&&(E.attr("id","root-"+m3), $ Bt("#root-"+m3,m3)));const C=oE();var D="actor";a.properties!=null&&a.properties.class?D=a.properties.class:C.fill="#eaeaea",C.x
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +En.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +rc.join(", ")+", got '"+(this.terminals_[hi]||hi)+"'":qn="Parse error on line "+(sr+1)+": Unexpected "+(hi==ur?"end of input":"'"+(this.terminals_[hi]||hi)+"'"),this.parseError(qn,{text:En.match,token:this.terminals_[hi]||hi,line:En.yylineno,loc:Ki,expected:rc})}if(zn[0]instanceof Array&&zn.length>1)throw new Error("Parse Error: multiple actions possible at state: "+qi+", token: "+hi);switch(zn[0]){case 1:Ke.push(hi),Or.push(En.yytext),Le.push(En.yylloc),Ke.push(zn[1]),hi=null,Yn=En.yyleng,fe=En.yytext,sr=En.yylineno,Ki=En.yylloc;break;case 2:if(xi=this.productions_[zn[1]][1],Pr. $ =Or[Or.length-xi],Pr._ $ ={first_line:Le[Le.length-(xi||1)].first_line,last_line:Le[Le.length-1].last_line,first_column:Le[Le.length-(xi||1)].first_column,last_column:Le[Le.length-1].last_column},Is&&(Pr._ $ .range=[Le[Le.length-(xi||1)].range[0],Le[Le.length-1].range[1]]),Zn=this.performAction.apply(Pr,[fe,Yn,sr,Dr.yy,zn[1],Or,Le].concat(fn)),typeof Zn<"u")return Zn;xi&&(Ke=Ke.slice(0,-1*xi*2),Or=Or.slice(0,-1*xi),Le=Le.slice(0,-1*xi)),Ke.push(this.productions_[zn[1]][0]),Or.push(Pr. $ ),Le.push(Pr._ $ ),In=Nr[Ke[Ke.length-2]][Ke[Ke.length-1]],Ke.push(In);break;case 3:return!0}}return!0}},Vt=function(){var Gt={EOF:1,parseError:function(jt,Ke){if(this.yy.parser)this.yy.parser.parseError(jt,Ke);else throw new Error(jt)},setInput:function(un,jt){return this.yy=jt||this.yy||{},this._input=un,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var un=this._input[0];this.yytext+=un,this.yyleng++,this.offset++,this.match+=un,this.matched+=un;var jt=un.match(/(?: \r \n ?| \n ).*/g);return jt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),un},unput:function(un){var jt=un.length,Ke=un.split(/(?: \r \n ?| \n )/g);this._input=un+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-jt),this.offset-=jt;var oe=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ke.length-1&&(this.yylineno-=Ke.length-1);var Or=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ke?(Ke.length===oe.length?this.yylloc.first_column:0)+oe[oe.length-Ke.length].length-Ke[0].length:this.yylloc.first_column-jt},this.options.ranges&&(this.yylloc.range=[Or[0],Or[0]+this.yyleng-jt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(un){this.unput(this.match.slice(un))},pastInput:function(){var un=this.matched.substr(0,this.matched.length-this.match.length);return(un.length>20?"...":"")+un.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var un=this.match;return un.length<20&&(un+=this._input.substr(0,20-un.length)),(un.substr(0,20)+(un.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var un=this.pastInput(),jt=new Array(un.length+1).join("-");return un+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +jt+"^"},test_match:function(un,jt){var Ke,oe,Or;if(this.options.backtrack_lexer&&(Or={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Or.yylloc.range=this.yylloc.range.slice(0))),oe=un[0].match(/(?: \r \n ?| \n ).*/g),oe&&(this.yylineno+=oe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:oe?oe[oe.length-1].length-oe[oe.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+un[0].length},this.yytext+=un[0],this.match+=un[0],this.matches=un,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(un[0].length),this.matched+=un[0],Ke=this.performAction.call(this,this.yy,this,jt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ke)return Ke;if(this._backtrack){for(var Le in Or)this[Le]=Or[Le];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var un,jt,Ke,oe;this._more||(this.yytext="",this.match="");for(var Or=this._currentRules(),Le=0;Le<Or.length;Le++)if(Ke=this._input.match(this.rules[Or[Le]]),Ke&&(!jt||Ke[0].length>jt[0].length)){if(jt=Ke,oe=Le,this.options.backtrack_lexer){if(un=this.test_match(Ke,Or[Le]),un!==!1)return un;if(this._backtrack){jt=!1;continue}else return!1}else if(!this.options.flex)break}return jt?(un=this.test_match(jt,Or[oe]),un!==!1?un:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var jt=this.next();return jt||this.lex()},begin:function(jt){this.conditionStack.push(jt)},popState:function(){var jt=this.conditionStack.length-1;return jt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(jt){return jt=this.conditionStack.length-1-Math.abs(jt||0),jt>=0?this.conditionStack[jt]:"INITIAL"},pushState:function(jt){this.begin(jt)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(jt,Ke,oe,Or){switch(oe){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:break;case 10:break;case 11:return this.begin("acc_title"),44;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),46;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 19:break;case 20:return 23;case 21:return 23;case 22:return"EDGE_STATE";case 23:return this.begin("namespace"),53;case 24:return this.popState(),16;case 25:break;case 26:return this.begin("namespace-body"),50;case 27:return this.popState(),52;case 28:return"EOF_IN_STRUCT";case 29:return 16;case 30:break;case 31:return"EDGE_STATE";case 32:return this.begin("class"),57;case 33:return this.popState(),16;case 34:break;case 35:return this.popState(),this.popState(),52;case 36:return this.begin("class-body"),50;case 37:return this.popState(),52;case 38:return"EOF_IN_STRUCT";case 39:return"EDGE_STATE";case 40:return"OPEN_IN_STRUCT";case 41:break;case 42:return"MEMBER";case 43:return 82;case 44:return 75;case 45:return 76;case 46:return 78;case 47:return 63;case 48:return 65;case 49:return 58;case 50:return 59;case 51:this.begin("href");break;case 52:this.popState();break;case 53:return 81;case 54:this.begin("callback_name");break;case 55:this.popState();break;case 56:this.popState(),this.begin("callback_args");break;case 57:return 79;case 58:this.popState();break;case 59:return 80;case 60:this.popState();break;case 61:return"GENERICTYPE";case 62:this.begin("generic");break;case 63:this.popState();break;case 64:return"STR";case 65:this.begin("string");break;case 66:this.popState();break;case 67:return"BQUOTE_STR";case 68:this.begin("bqstring");break;case 69:return 77;case 70:return 77;case 71:return 77;case 72:return 77;case 73:return 69;case 74:return 69;case 75:return 71;case 76:return 71;case 77:return 70;case 78:return 68;case 79:return 72;case 80:return 73;case 81:return 74;case 82:return 36;case 83:return 55;case 84:return 94;case 85:return"DOT";case 86:return"PLUS";case 87:return 91;case 88:return"EQUALS";case 89:return"EQUALS";case 90:return 98;case 91:return 27;case 92:return 29;case 93:return"PUNCTUATION";case 94:return 97;case 95:return 96;case 96:return 93;case 97:return 24}},rules:[/^(?:%% \{ )/,/^(?:.*direction \s +TB[^ \n ]*)/,/^(?:.*direction \s +BT[^ \n ]*)/,/^(?:.*direction \s +RL[^ \n ]*)/,/^(?:.*direction \s +LR[^ \n ]*)/,/^(?:((?:(?! \} %%)[^:.])*))/,/^(?::)/,/^(?: \} %%)/,/^(?:((?:(?! \} %%).| \n )*))/,/^(?:%%(?! \{ )*[^ \n ]*( \r ? \n ?)+)/,/^(?:%%[^ \n ]*( \r ? \n )*)/,/^(?:accTitle \s *: \s *)/,/^(?:(?! \n ||)*[^ \n ]*)/,/^(?:accDescr \s *: \s *)/,/^(?:(?! \n ||)*[^ \n ]*)/,/^(?:accDescr \s * \{ \s *)/,/^(?:[ \} ])/,/^(?:[^ \} ]*)/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?:classDiagram-v2 \b )/,/^(?:classDiagram \b )/,/^(?: \[ \* \] )/,/^(?:namespace \b )/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?:[{])/,/^(?:[}])/,/^(?: $ )/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?: \[ \* \] )/,/^(?:class \b )/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?: $ )/,/^(?: \[ \* \] )/,/^(?:[{])/,/^(?:[ \n ])/,/^(?:[^{} \n ]*)/
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . classText } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . title  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bolder ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. nodeLabel ,  . edgeLabel  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . classText } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  rect  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. label  text  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . classText } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  span  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  background :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classTitle  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - weight :  bolder ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  rect ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. divider  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . clickable  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . classGroup  rect  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . classGroup  line  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classLabel  . box  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classLabel  . label  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. relation  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. dashed - line {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. dotted - line {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  1  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# compositionStart ,  . composition  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# compositionEnd ,  . composition  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# dependencyStart ,  . dependency  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# dependencyStart ,  . dependency  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# extensionStart ,  . extension  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# extensionEnd ,  . extension  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# aggregationStart ,  . aggregation  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# aggregationEnd ,  . aggregation  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# lollipopStart ,  . lollipop  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# lollipopEnd ,  . lollipop  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeTerminals  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  11 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classTitleText  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;let CK={};const SK=20,MP=function(i){const a=Object.entries(CK).find(f=>f[1].label===i);if(a)return a[0]},SHe=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},AHe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:KBt,db:_K,renderer:{draw:function(i,a,f,p){const v=Oe().class;CK={},zt.info("Rendering diagram "+i);const m=Oe().securityLevel;let b;m==="sandbox"&&(b=Mr("#i"+a));const E=Mr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body"),C=E.select( ` [ id = '${a}' ] ` );SHe(C);const D=new jf({multigraph:!0});D.setGraph({isMultiGraph:!0}),D.setDefaultEdgeLabel(function(){return{}});const P=p.db.getClasses(),B=Object.keys(P);for(const st of B){const pt=P[st],Tt=g0t.drawClass(C,pt,v,p);CK[Tt.id]=Tt,D.setNode(Tt.id,Tt),zt.info("Org height: "+Tt.height)}p.db.getRelations().forEach(function(st){zt.info("tjoho"+MP(st.id1)+MP(st.id2)+JSON.stringify(st)),D.setEdge(MP(st.id1),MP(st.id2),{relation:st},st.title||"DEFAULT")}),p.db.getNotes().forEach(function(st){zt.debug( ` Adding  note :  $ { JSON . stringify ( st ) } ` );const pt=g0t.drawNote(C,st,v,p);CK[pt.id]=pt,D.setNode(pt.id,pt),st.class&&st.class in P&&D.setEdge(st.id,MP(st.class),{relation:{id1:st.id,id2:st.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),nL(D),D.nodes().forEach(function(st){st!==void 0&&D.node(st)!==void 0&&(zt.debug("Node "+st+": "+JSON.stringify(D.node(st))),E.select("#"+(p.db.lookUpDomId(st)||st)).attr("transform","translate("+(D.node(st).x-D.node(st).width/2)+","+(D.node(st).y-D.node(st).height/2)+" )"))}),D.edges().forEach(function(st){st!==void 0&&D.edge(st)!==void 0&&(zt.debug("Edge "+st.v+" -> "+st.w+": "+JSON.stringify(D.edge(st))),g0t.drawEdge(C,D.edge(st),D.edge(st).relation,v,p))});const H=C.node().getBBox(),Y=H.width+SK*2,it=H.height+SK*2;Wb(C,it,Y,v.useMaxWidth);const nt= ` $ { H . x - SK }  $ { H . y - SK }  $ { Y }  $ { it } ` ;zt.debug( ` viewBox  $ { nt } ` ),C.attr("viewBox",nt)}},styles:tRt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,_K.clear()}}},Symbol.toStringTag,{value:"Module"})),ngt=i=>yi.sanitizeText(i,Oe());let rgt={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const LHe=function(i,a,f,p){const v=Object.keys(i);zt.info("keys:",v),zt.info(i),v.forEach(function(m){var D,P;const b=i[m],C={shape:"rect",id:b.id,domId:b.domId,labelText:ngt(b.id),labelStyle:"",styl
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),v.style===void 0&&(m.style=m.style||"stroke: #333; stroke-width: 1.5px;fill:none"),m.labelStyle=m.labelStyle.replace("color:","fill:"))),a.setEdge(v.id1,v.id2,m,p)})},IHe=function(i){rgt={...rgt,...i}},OHe=async function(i,a,f,p){zt.info("Drawing class - ",a);const v=Oe().flowchart??Oe().class,m=Oe().securityLevel;zt.info("config:",v);const b=(v==null?void 0:v.nodeSpacing)??50,E=(v==null?void 0:v.rankSpacing)??50,C=new jf({multigraph:!0,compound:!0}).setGraph({rankdir:p.db.getDirection(),nodesep:b,ranksep:E,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),D=p.db.getNamespaces(),P=p.db.getClasses(),B=p.db.getRelations(),j=p.db.getNotes();zt.info(B),LHe(D,C,a,p),eRt(P,C,a,p),DHe(B,C),MHe(j,C,B.length+1,P);let R;m==="sandbox"&&(R=Mr("#i"+a));const H=Mr(m==="sandbox"?R.nodes()[0].contentDocument.body:"body"),Y=H.select( ` [ id = "${a}" ] ` ),it=H.select("#"+a+" g");if(await p0t(it,C,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",a),lo.insertTitle(Y,"classTitleText",(v==null?void 0:v.titleTopMargin)??5,p.db.getDiagramTitle()),J9(C,Y,v==null?void 0:v.diagramPadding,v==null?void 0:v.useMaxWidth),!(v!=null&&v.htmlLabels)){const nt=m==="sandbox"?R.nodes()[0].contentDocument:document,st=nt.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const pt of st){const Tt=pt.getBBox(),kt=nt.createElementNS("http://www.w3.org/2000/svg","rect");kt.setAttribute("rx",0),kt.setAttribute("ry",0),kt.setAttribute("width",Tt.width),kt.setAttribute("height",Tt.height),pt.insertBefore(kt,pt.firstChild)}}};function nRt(i){let a;switch(i){case 0:a="aggregation";break;case 1:a="extension";break;case 2:a="composition";break;case 3:a="dependency";break;case 4:a="lollipop";break;default:a="none"}return a}const NHe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:KBt,db:_K,renderer:{setConf:IHe,draw:OHe},styles:tRt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,_K.clear()}}},Symbol.toStringTag,{value:"Module"}));var igt=function(){var i=function(Wt,It,Nt,me){for(Nt=Nt||{},me=Wt.length;me--;Nt[Wt[me]]=It);return Nt},a=[1,2],f=[1,3],p=[1,5],v=[1,7],m=[2,5],b=[1,15],E=[1,17],C=[1,21],D=[1,22],P=[1,23],B=[1,24],j=[1,37],R=[1,25],H=[1,26],Y=[1,27],it=[1,28],nt=[1,29],st=[1,32],pt=[1,33],Tt=[1,34],kt=[1,35],yt=[1,36],ht=[1,39],mt=[1,40],rt=[1,41],wt=[1,42],gt=[1,38],lt=[1,45],_t=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],X=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],Rt=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],ft=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],de={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,class:42,CLASSENTITY_IDS:43,STYLECLASS:44,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63, $ accept:0, $ end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Gt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +En.join(", ")+", got '"+(this.terminals_[Le]||Le)+"'":Dr="Parse error on line "+(ne+1)+": Unexpected "+(Le==Vt?"end of input":"'"+(this.terminals_[Le]||Le)+"'"),this.parseError(Dr,{text:Gt.match,token:this.terminals_[Le]||Le,line:Gt.yylineno,loc:Ke,expected:En})}if(fe[0]instanceof Array&&fe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Nr+", token: "+Le);switch(fe[0]){case 1:me.push(Le),_n.push(Gt.yytext),_e.push(Gt.yylloc),me.push(fe[1]),Le=null,Ee=Gt.yyleng,Te=Gt.yytext,ne=Gt.yylineno,Ke=Gt.yylloc;break;case 2:if(ur=this.productions_[fe[1]][1],Yn. $ =_n[_n.length-ur],Yn._ $ ={first_line:_e[_e.length-(ur||1)].first_line,last_line:_e[_e.length-1].last_line,first_column:_e[_e.length-(ur||1)].first_column,last_column:_e[_e.length-1].last_column},oe&&(Yn._ $ .range=[_e[_e.length-(ur||1)].range[0],_e[_e.length-1].range[1]]),sr=this.performAction.apply(Yn,[Te,Ee,ne,un.yy,fe[1],_n,_e].concat(Ae)),typeof sr<"u")return sr;ur&&(me=me.slice(0,-1*ur*2),_n=_n.slice(0,-1*ur),_e=_e.slice(0,-1*ur)),me.push(this.productions_[fe[1]][0]),_n.push(Yn. $ ),_e.push(Yn._ $ ),fn=rr[me[me.length-2]][me[me.length-1]],me.push(fn);break;case 3:return!0}}return!0}},J=function(){var Wt={EOF:1,parseError:function(Nt,me){if(this.yy.parser)this.yy.parser.parseError(Nt,me);else throw new Error(Nt)},setInput:function(It,Nt){return this.yy=Nt||this.yy||{},this._input=It,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var It=this._input[0];this.yytext+=It,this.yyleng++,this.offset++,this.match+=It,this.matched+=It;var Nt=It.match(/(?: \r \n ?| \n ).*/g);return Nt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),It},unput:function(It){var Nt=It.length,me=It.split(/(?: \r \n ?| \n )/g);this._input=It+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Nt),this.offset-=Nt;var Ue=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),me.length-1&&(this.yylineno-=me.length-1);var _n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:me?(me.length===Ue.length?this.yylloc.first_column:0)+Ue[Ue.length-me.length].length-me[0].length:this.yylloc.first_column-Nt},this.options.ranges&&(this.yylloc.range=[_n[0],_n[0]+this.yyleng-Nt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(It){this.unput(this.match.slice(It))},pastInput:function(){var It=this.matched.substr(0,this.matched.length-this.match.length);return(It.length>20?"...":"")+It.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var It=this.match;return It.length<20&&(It+=this._input.substr(0,20-It.length)),(It.substr(0,20)+(It.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var It=this.pastInput(),Nt=new Array(It.length+1).join("-");return It+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Nt+"^"},test_match:function(It,Nt){var me,Ue,_n;if(this.options.backtrack_lexer&&(_n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_n.yylloc.range=this.yylloc.range.slice(0))),Ue=It[0].match(/(?: \r \n ?| \n ).*/g),Ue&&(this.yylineno+=Ue.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ue?Ue[Ue.length-1].length-Ue[Ue.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+It[0].length},this.yytext+=It[0],this.match+=It[0],this.matches=It,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(It[0].length),this.matched+=It[0],me=this.performAction.call(this,this.yy,this,Nt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),me)return me;if(this._backtrack){for(var _e in _n)this[_e]=_n[_e];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var It,Nt,me,Ue;this._more||(this.yytext="",this.match="");for(var _n=this._currentRules(),_e=0;_e<_n.length;_e++)if(me=this._input.match(this.rules[_n[_e]]),me&&(!Nt||me[0].length>Nt[0].length)){if(Nt=me,Ue=_e,this.options.backtrack_lexer){if(It=this.test_match(me,_n[_e]),It!==!1)return It;if(this._backtrack){Nt=!1;continue}else return!1}else if(!this.options.flex)break}return Nt?(It=this.test_match(Nt,_n[Ue]),It!==!1?It:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Nt=this.next();return Nt||this.lex()},begin:function(Nt){this.conditionStack.push(Nt)},popState:function(){var Nt=this.conditionStack.length-1;return Nt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Nt){return Nt=this.conditionStack.length-1-Math.abs(Nt||0),Nt>=0?this.conditionStack[Nt]:"INITIAL"},pushState:function(Nt){this.begin(Nt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Nt,me,Ue,_n){switch(Ue){case 0:return 41;case 1:return 50;case 2:return 51;case 3:return 52;case 4:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:break;case 11:break;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:break;case 17:return this.pushState("SCALE"),17;case 18:return 18;case 19:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 25:this.popState();break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 34:return this.pushState("SCALE"),17;case 35:return 18;case 36:this.popState();break;case 37:this.pushState("STATE");break;case 38:return this.popState(),me.yytext=me.yytext.slice(0,-8).trim(),25;case 39:return this.popState(),me.yytext=me.yytext.slice(0,-8).trim(),26;case 40:return this.popState(),me.yytext=me.yytext.slice(0,-10).trim(),27;case 41:return this.popState(),me.yytext=me.yytext.slice(0,-8).trim(),25;case 42:return this.popState(),me.yytext=me.yytext.slice(0,-8).trim(),26;case 43:return this.popState(),me.yytext=me.yytext.slice(0,-10).trim(),27;case 44:return 50;case 45:return 51;case 46:return 52;case 47:return 53;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:return this.popState(),"ID";case 51:this.popState();break;case 52:return"STATE_DESCR";case 53:return 19;case 54:this.popState();break;case 55:return this.popState(),this.pushState("struct"),20;case 56:break;case 57:return this.popState(),21;case 58:break;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 64:break;case 65:return"NOTE_TEXT";case 66:return this.popState(),"ID";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),me.yytext=me.yytext.substr(2).trim(),31;case 69:return this.popState(),me.yytext=me.yytext.slice(0,-8).trim(),31;case 70:return 7;case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return me.yytext=me.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 79:return 5;case 80:return"INVALID"}},rules:[/^(?:default \b )/i,/^(?:.*direction \s +TB[^ \n ]*)/i,/^(?:.*direction \s +BT[^ \n ]*)/i,/^(?:.*direction \s +RL[^ \n ]*)/i,/^(?:.*direction \s +LR[^ \n ]*)/i,/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?:[ \s ]+)/i,/^(?:((?! \n ) \s )+)/i,/^(
  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								defs  # statediagram - barbEnd  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . transitionColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . transitionColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  . state - title  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - weight :  bolder ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . stateLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  line  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. transition  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . transitionColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateGroup  . composit  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . background } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  border - bottom :  1 px 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateGroup  . alt - composit  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  # e0e0e0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  border - bottom :  1 px 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. state - note  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateLabel  . box  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . labelBackgroundColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . transitionLabelColor || i . tertiaryTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. label  div  . edgeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . transitionLabelColor || i . tertiaryTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateLabel  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . stateLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  circle . state - start  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  . fork - join  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  circle . state - end  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . innerEndBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . background } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1.5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. end - state - inner  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . compositeBackground || i . background } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // stroke: ${i.background};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1.5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . stateBkg || i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  polygon  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# statediagram - barbEnd  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . compositeTitleBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. cluster - label ,  . nodeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . stateLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster  rect . outer  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  . divider  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  . title - state  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster . statediagram - cluster  . inner  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . compositeBackground || i . background } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster . statediagram - cluster - alt  . inner  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . altBackground ? i . altBackground : "#efefef" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster  . inner  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx : 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry : 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  rect . basic  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  rect . divider  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  10 , 10 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . altBackground ? i . altBackground : "#efefef" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. note - edge  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  . nodeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram  . edgeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  red ;  // ${i.noteTextColor};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# dependencyStart ,  # dependencyEnd  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagramTitleText  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  18 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,hgt={},sVe=(i,a)=>{hgt[i]=a},aVe=i=>hgt[i],wRt=()=>Object.keys(hgt),oVe={get:aVe,set:sVe,keys:wRt,size:()=>wRt().length},cVe=i=>i.append("circle").attr("class","start-state").attr("r",Oe().state.sizeUnit).attr("cx",Oe().state.padding+Oe().state.sizeUnit).attr("cy",Oe().state.padding+Oe().state.sizeUnit),uVe=i=>i.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",Oe().state.textHeight).attr("class","divider").attr("x2",Oe().state.textHeight*2).attr("y1",0).attr("y2",0),lVe=(i,a)=>{const f=i.append("text").attr("x",2*Oe().state.padding).attr("y",Oe().state.textHeight+2*Oe().state.padding).attr("font-size",Oe().state.fontSize).attr("class","state-title").text(a.id),p=f.node().getBBox();return i.insert("rect",":first-child").attr("x",Oe().state.padding).attr("y",Oe().state.padding).attr("width",p.width+2*Oe().state.padding).attr("height",p.height+2*Oe().state.padding).attr("rx",Oe().state.radius),f},hVe=(i,a)=>{const f=function(j,R,H){const Y=j.append("tspan").attr("x",2*Oe().state.padding).text(R);H||Y.attr("dy",Oe().state.textHeight)},v=i.append("text").attr("x",2*Oe().state.padding).attr("y",Oe().state.textHeight+1.3*Oe().state.padding).attr("font-size",Oe().state.fontSize).attr("class","state-title").text(a.descriptions[0]).node().getBBox(),m=v.height,b=i.append("text").attr("x",Oe().state.padding).attr("y",m+Oe().state.padding*.4+Oe().state.dividerMargin+Oe().state.textHeight).attr("class","state-description");let E=!0,C=!0;a.descriptions.forEach(function(j){E||(f(b,j,C),C=!1),E=!1});const D=i.append("line").attr("x1",Oe().state.padding).attr("y1",Oe().state.padding+m+Oe().state.dividerMargin/2).attr("y2",Oe().state.padding+m+Oe().state.dividerMargin/2).attr("class","descr-divider"),P=b.node().getBBox(),B=Math.max(P.width,v.width);return D.attr("x2",B+3*Oe().state.padding),i.insert("rect",":first-child").attr("x",Oe().state.padding).attr("y",Oe().state.padding).attr("width",B+2*Oe().state.padding).attr("height",P.height+m+2*Oe().state.padding).attr("rx",Oe().state.radius),i},fVe=(i,a,f)=>{const p=Oe().state.padding,v=2*Oe().state.padding,m=i.node().getBBox(),b=m.width,E=m.x,C=i.append("text").attr("x",0).attr("y",Oe().state.titleShift).attr("font-size",Oe().state.fontSize).attr("class","state-title").text(a.id),P=C.node().getBBox().width+v;let B=Math.max(P,b);B===b&&(B=B+v);let j;const R=i.node().getBBox();a.doc,j=E-p,P>b&&(j=(b-B)/2+p),Math.abs(E-R.x)<p&&P>b&&(j=E-(P-b)/2);const H=1-Oe().state.textHeight;return i.insert("rect",":first-child").attr("x",j).attr("y",H).attr("class",f?"alt-composit":"composit").attr("width",B).attr("height",R.height+Oe().state.textHeight+Oe().state.titleShift+1).attr("rx","0"),C.attr("x",j+p),P<=b&&C.attr("x",E+(B-v)/2-P/2+p),i.insert("rect",":first-child").attr("x",j).attr("y",Oe().state.titleShift-Oe().state.textHeight-Oe().state.padding).attr("width",B).attr("height",Oe().state.textHeight*3).attr("rx",Oe().state.radius),i.insert("rect",":first-child").attr("x",j).attr("y",Oe().state.titleShift-Oe().state.textHeight-Oe().state.padding).attr("width",B).attr("height",R.height+3+2*Oe().state.textHeight).attr("rx",Oe().state.radius),i},dVe=i=>(i.append("circle").attr("class","end-state-outer").attr("r",Oe().state.sizeUnit+Oe().state.miniPadding).attr("cx",Oe().state.padding+Oe().state.sizeUnit+Oe().state.miniPadding).attr("cy",Oe().state.padding+Oe().state.sizeUnit+Oe().state.miniPadding),i.append("circle").attr("class","end-state-inner").attr("r",Oe().state.sizeUnit).attr("cx",Oe().state.padding+Oe().state.sizeUnit+2).attr("cy",Oe().state.padding+Oe().state.sizeUnit+2)),gVe=(i,a)=>{let f=Oe().state.forkWidth,p=Oe().state.forkHeight;if(a.parentId){let v=f;f=p,p=v}return i.append("rect").style("stroke","black").style("fill","black").attr("width",f).attr("height",p).attr("x",Oe().state.padding).attr("y",Oe().state.padding)},pVe=(i,a,f,p)=>{let v=0;const m=p.append("text");m.style("text-anchor","start"),m.attr("class","noteText");let b=i.replace(/ \r \n /g,"<br/>");b=b.replace(/ \n /g,"<br/>");const E=b.split(yi.lineBreakRegex);let C=1.25*Oe().state.noteMargin;for(const
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +_t.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +rr.join(", ")+", got '"+(this.terminals_[ae]||ae)+"'":Te="Parse error on line "+(mt+1)+": Unexpected "+(ae==gt?"end of input":"'"+(this.terminals_[ae]||ae)+"'"),this.parseError(Te,{text:_t.match,token:this.terminals_[ae]||ae,line:_t.yylineno,loc:ft,expected:rr})}if(It[0]instanceof Array&&It.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Wt+", token: "+ae);switch(It[0]){case 1:st.push(ae),Tt.push(_t.yytext),kt.push(_t.yylloc),st.push(It[1]),ae=null,rt=_t.yyleng,ht=_t.yytext,mt=_t.yylineno,ft=_t.yylloc;break;case 2:if(_n=this.productions_[It[1]][1],me. $ =Tt[Tt.length-_n],me._ $ ={first_line:kt[kt.length-(_n||1)].first_line,last_line:kt[kt.length-1].last_line,first_column:kt[kt.length-(_n||1)].first_column,last_column:kt[kt.length-1].last_column},de&&(me._ $ .range=[kt[kt.length-(_n||1)].range[0],kt[kt.length-1].range[1]]),Nt=this.performAction.apply(me,[ht,rt,mt,X.yy,It[1],Tt,kt].concat(lt)),typeof Nt<"u")return Nt;_n&&(st=st.slice(0,-1*_n*2),Tt=Tt.slice(0,-1*_n),kt=kt.slice(0,-1*_n)),st.push(this.productions_[It[1]][0]),Tt.push(me. $ ),kt.push(me._ $ ),_e=yt[st[st.length-2]][st[st.length-1]],st.push(_e);break;case 3:return!0}}return!0}},R=function(){var Y={EOF:1,parseError:function(nt,st){if(this.yy.parser)this.yy.parser.parseError(nt,st);else throw new Error(nt)},setInput:function(it,nt){return this.yy=nt||this.yy||{},this._input=it,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var it=this._input[0];this.yytext+=it,this.yyleng++,this.offset++,this.match+=it,this.matched+=it;var nt=it.match(/(?: \r \n ?| \n ).*/g);return nt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),it},unput:function(it){var nt=it.length,st=it.split(/(?: \r \n ?| \n )/g);this._input=it+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-nt),this.offset-=nt;var pt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),st.length-1&&(this.yylineno-=st.length-1);var Tt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:st?(st.length===pt.length?this.yylloc.first_column:0)+pt[pt.length-st.length].length-st[0].length:this.yylloc.first_column-nt},this.options.ranges&&(this.yylloc.range=[Tt[0],Tt[0]+this.yyleng-nt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(it){this.unput(this.match.slice(it))},pastInput:function(){var it=this.matched.substr(0,this.matched.length-this.match.length);return(it.length>20?"...":"")+it.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var it=this.match;return it.length<20&&(it+=this._input.substr(0,20-it.length)),(it.substr(0,20)+(it.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var it=this.pastInput(),nt=new Array(it.length+1).join("-");return it+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +nt+"^"},test_match:function(it,nt){var st,pt,Tt;if(this.options.backtrack_lexer&&(Tt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Tt.yylloc.range=this.yylloc.range.slice(0))),pt=it[0].match(/(?: \r \n ?| \n ).*/g),pt&&(this.yylineno+=pt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:pt?pt[pt.length-1].length-pt[pt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+it[0].length},this.yytext+=it[0],this.match+=it[0],this.matches=it,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(it[0].length),this.matched+=it[0],st=this.performAction.call(this,this.yy,this,nt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),st)return st;if(this._backtrack){for(var kt in Tt)this[kt]=Tt[kt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var it,nt,st,pt;this._more||(this.yytext="",this.match="");for(var Tt=this._currentRules(),kt=0;kt<Tt.length;kt++)if(st=this._input.match(this.rules[Tt[kt]]),st&&(!nt||st[0].length>nt[0].length)){if(nt=st,pt=kt,this.options.backtrack_lexer){if(it=this.test_match(st,Tt[kt]),it!==!1)return it;if(this._backtrack){nt=!1;continue}else return!1}else if(!this.options.flex)break}return nt?(it=this.test_match(nt,Tt[pt]),it!==!1?it:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var nt=this.next();return nt||this.lex()},begin:function(nt){this.conditionStack.push(nt)},popState:function(){var nt=this.conditionStack.length-1;return nt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(nt){return nt=this.conditionStack.length-1-Math.abs(nt||0),nt>=0?this.conditionStack[nt]:"INITIAL"},pushState:function(nt){this.begin(nt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(nt,st,pt,Tt){switch(pt){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:break;case 6:break;case 7:return 11;case 8:break;case 9:break;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:journey \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:section \s [^#: \n ;]+)/i,/^(?:[^#: \n ;]+)/i,/^(?::[^# \n ;]+)/i,/^(?::)/i,/^(?: $ )/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};return Y}();j.lexer=R;function H(){this.yy={}}return H.prototype=j,j.Parser=H,new H}();vgt.parser=vgt;const qVe=vgt;let gL="";const wgt=[],FP=[],BP=[],HVe=function(i,a,f){d1.parseDirective(this,i,a,f)},VVe=function(){wgt.length=0,FP.length=0,gL="",BP.length=0,ap()},GVe=function(i){gL=i,wgt.push(i)},UVe=function(){return wgt},WVe=function(){let i=DRt();const a=100;let f=0;for(;!i&&f<a;)i=DRt(),f++;return FP.push(...BP),FP},KVe=function(){const i=[];return FP.forEach(f=>{f.people&&i.push(...f.people)}),[...new Set(i)].sort()},YVe=function(i,a){const f=a.substr(1).split(":");let p=0,v=[];f.length===1?(p=Number(f[0]),v=[]):(p=Number(f[0]),v=f[1].split(","));const m=v.map(E=>E.trim()),b={section:gL,type:gL,people:m,task:i,score:p};BP.push(b)},XVe=function(i){const a={section:gL,type:gL,description:i,task:i,classes:[]};FP.push(a)},DRt=function(){const i=function(f){return BP[f].processed};let a=!0;for(const[f,p]of BP.entries())i(f),a=a&&p.processed;return a},IRt={parseDirective:HVe,getConfig:()=>Oe().journey,clear:VVe,setDiagramTitle:Kb,getDiagramTitle:O2,setAccTitle:cg,getAccTitle:op,setAccDescription:cp,getAccDescription:up,addSection:GVe,getSections:UVe,getTasks:WVe,addTask:YVe,addTaskOrg:XVe,getActors:function(){return KVe()}},QVe=i=> ` . label  {  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . mouth  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  # 666 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . textColor } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . legend  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  # 333 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . label  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . textColor } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . face  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . faceColor ? ` fill:  ${ i . faceColor } ` : "fill: #FFF8DC" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  # 999 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  rect , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  . label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . arrowheadPath  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . arrowheadColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgePath  . path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1.5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - link  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgeLabel  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  div . mermaidTooltip  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    max - width :  200 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    padding :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  12 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border :  1 px  solid  $ { i . border2 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    border - radius :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    pointer - events :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    z - index :  100 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 0 ,  . section - type - 0   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType0 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 1 ,  . section - type - 1   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType1 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 2 ,  . section - type - 2   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType2 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 3 ,  . section - type - 3   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType3 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 4 ,  . section - type - 4   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType4 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 5 ,  . section - type - 5   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType5 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 6 ,  . section - type - 6   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType6 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 7 ,  . section - type - 7   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType7 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor0 ? ` fill:  ${ i . actor0 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 1  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor1 ? ` fill:  ${ i . actor1 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor2 ? ` fill:  ${ i . actor2 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor3 ? ` fill:  ${ i . actor3 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 4  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor4 ? ` fill:  ${ i . actor4 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 5  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor5 ? ` fill:  ${ i . actor5 } ` : "" } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,mgt=function(i,a){return IW(i,a)},ZVe=function(i,a){const p=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),v=i.append("g");v.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),v.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function m(C){const D=CA().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);C.append("path").attr("class","mouth").attr("d",D).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(C){const D=CA().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);C.append("path").attr("class","mouth").attr("d",D).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function E(C){C.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?m(v):a.score<3?b(v):E(v),p},ORt=function(i,a){const f=i.append("circle");return f.attr("cx",a.cx),f.attr("cy",a.cy),f.attr("class","actor-"+a.pos),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("r",a.r),f.class!==void 0&&f.attr("class",f.class),a.title!==void 0&&f.append("title").text(a.title),f},NRt=function(i,a){return MLe(i,a)},JVe=function(i,a){function f(v,m,b,E,C){return v+","+m+" "+(v+b)+","+m+" "+(v+b)+","+(m+E-C)+" "+(v+b-C*1.2)+","+(m+E)+" "+v+","+(m+E)}const p=i.append("polygon");p.attr("points",f(a.x,a.y,50,20,7)),p.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,NRt(i,a)},tGe=function(i,a,f){const p=i.append("g"),v=oE();v.x=a.x,v.y=a.y,v.fill=a.fill,v.width=f.width*a.taskCount+f.diagramMarginX*(a.taskCount-1),v.height=f.height,v.class="journey-section section-type-"+a.num,v.rx=3,v.ry=3,mgt(p,v),FRt(f)(a.text,p,v.x,v.y,v.width,v.height,{class:"journey-section section-type-"+a.num},f,a.colour)};let PRt=-1;const eGe=function(i,a,f){const p=a.x+f.width/2,v=i.append("g");PRt++;const m=300+5*30;v.append("line").attr("id","task"+PRt).attr("x1",p).attr("y1",a.y).attr("x2",p).attr("y2",m).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),ZVe(v,{cx:p,cy:300+(5-a.score)*30,score:a.score});const b=oE();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=f.width,b.height=f.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,mgt(v,b);let E=a.x+14;a.people.forEach(C=>{const D=a.actors[C].color,P={cx:E,cy:a.y,r:7,fill:D,stroke:"#000",title:C,pos:a.actors[C].position};ORt(v,P),E+=10}),FRt(f)(a.task,v,b.x,b.y,b.width,b.height,{class:"task"},f,a.colour)},nGe=function(i,a){kOt(i,a)},FRt=function(){function i(v,m,b,E,C,D,P,B){const j=m.append("text").attr("x",b+C/2).attr("y",E+D/2+5).style("font-color",B).style("text-anchor","middle").text(v);p(j,P)}function a(v,m,b,E,C,D,P,B,j){const{taskFontSize:R,taskFontFamily:H}=B,Y=v.split(/<br \s * \/ ?>/gi);for(let it=0;it<Y.length;it++){const nt=it*R-R*(Y.length-1)/2,st=m.append("text").attr("x",b+C/2).attr("y",E).attr("fill",j).style("text-anchor","middle").style("font-size",R).style("font-family",H);st.append("tspan").attr("x",b+C/2).attr("dy",nt).text(Y[it]),st.attr("y",E+D/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),p(st,P)}}function f(v,m,b,E,C,D,P,B){const j=m.append("switch"),H=j.append("foreignObject").attr("x",b).attr("y",E).attr("width",C).attr("height",D).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");H.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(v),a(v,j,b,E,C,D,P,B),p(H,P)}function p(v,m){for(const b in m)b in m&&v.attr(b,m[b])}return function(v){return v.textPlacement==="fo"?f:v.textPlacement==="old"?i:a}}(),RP={drawRect:mgt,drawCircle:ORt,drawSection:tGe,drawTex
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );const m=Oe().securityLevel;let b;m==="sandbox"&&(b=Mr("#i"+a));const E=Mr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body");nv.init();const C=E.select("#"+a);RP.initGraphics(C);const D=p.db.getTasks(),P=p.db.getDiagramTitle(),B=p.db.getActors();for(const nt in P5)delete P5[nt];let j=0;B.forEach(nt=>{P5[nt]={color:v.actorColours[j%v.actorColours.length],position:j},j++}),iGe(C),nv.insert(0,0,xE,Object.keys(P5).length*50),aGe(C,D,0);const R=nv.getBounds();P&&C.append("text").text(P).attr("x",xE).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const H=R.stopy-R.starty+2*v.diagramMarginY,Y=xE+R.stopx+2*v.diagramMarginX;Wb(C,H,Y,v.useMaxWidth),C.append("line").attr("x1",xE).attr("y1",v.height*4).attr("x2",Y-xE-4).attr("y2",v.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const it=P?70:0;C.attr("viewBox", ` $ { R . startx }  - 25  $ { Y }  $ { H + it } ` ),C.attr("preserveAspectRatio","xMinYMin meet"),C.attr("height",H+it+25)},nv={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(i,a,f,p){i[a]===void 0?i[a]=f:i[a]=p(f,i[a])},updateBounds:function(i,a,f,p){const v=Oe().journey,m=this;let b=0;function E(C){return function(P){b++;const B=m.sequenceItems.length-b+1;m.updateVal(P,"starty",a-B*v.boxMargin,Math.min),m.updateVal(P,"stopy",p+B*v.boxMargin,Math.max),m.updateVal(nv.data,"startx",i-B*v.boxMargin,Math.min),m.updateVal(nv.data,"stopx",f+B*v.boxMargin,Math.max),C!=="activation"&&(m.updateVal(P,"startx",i-B*v.boxMargin,Math.min),m.updateVal(P,"stopx",f+B*v.boxMargin,Math.max),m.updateVal(nv.data,"starty",a-B*v.boxMargin,Math.min),m.updateVal(nv.data,"stopy",p+B*v.boxMargin,Math.max))}}this.sequenceItems.forEach(E())},insert:function(i,a,f,p){const v=Math.min(i,f),m=Math.max(i,f),b=Math.min(a,p),E=Math.max(a,p);this.updateVal(nv.data,"startx",v,Math.min),this.updateVal(nv.data,"starty",b,Math.min),this.updateVal(nv.data,"stopx",m,Math.max),this.updateVal(nv.data,"stopy",E,Math.max),this.updateBounds(v,b,m,E)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},ygt=PK.sectionFills,BRt=PK.sectionColours,aGe=function(i,a,f){const p=Oe().journey;let v="";const m=p.height*2+p.diagramMarginY,b=f+m;let E=0,C="#CCC",D="black",P=0;for(const[B,j]of a.entries()){if(v!==j.section){C=ygt[E%ygt.length],P=E%ygt.length,D=BRt[E%BRt.length];let H=0;const Y=j.section;for(let nt=B;nt<a.length&&a[nt].section==Y;nt++)H=H+1;const it={x:B*p.taskMargin+B*p.width+xE,y:50,text:j.section,fill:C,num:P,colour:D,taskCount:H};RP.drawSection(i,it,p),v=j.section,E++}const R=j.people.reduce((H,Y)=>(P5[Y]&&(H[Y]=P5[Y]),H),{});j.x=B*p.taskMargin+B*p.width+xE,j.y=b,j.width=p.diagramMarginX,j.height=p.diagramMarginY,j.colour=D,j.fill=C,j.num=P,j.actors=R,RP.drawTask(i,j,p),nv.insert(j.x,j.y,j.x+j.width+p.taskMargin,300+5*30)}},RRt={setConf:rGe,draw:sGe},oGe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:qVe,db:IRt,renderer:RRt,styles:QVe,init:i=>{RRt.setConf(i.journey),IRt.clear()}}},Symbol.toStringTag,{value:"Module"})),cGe=(i,a,f)=>{const{parentById:p}=f,v=new Set;let m=i;for(;m;){if(v.add(m),m===a)return m;m=p[m]}for(m=a;m;){if(v.has(m))return m;m=p[m]}return"root"};function FK(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var jRt={exports:{}};(function(i,a){(function(f){i.exports=f()})(function(){return function(){function f(p,v,m){function b(D,P){if(!v[D]){if(!p[D]){var B=typeof FK=="function"&&FK;if(!P&&B)return B(D,!0);if(E)return E(D,!0);var j=new Error("Cannot find module '"+D+"'");throw j.code="MODULE_NOT_FOUND",j}var R=v[D]={exports:{}};p[D][0].call(R.exports,function(H){var Y=p[D][1][H];return b(Y||H)},R
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,Nu(Ia(t,e[0])))>=0;)++e[0]}function kD(t,e){this.e=e,this.a=Gee(t),this.a<54?this.f=qv(t):this.c=KD(t)}function JJt(t,e,n,r){Ai(),gv.call(this,26),this.c=t,this.a=e,this.d=n,this.b=r}function Jd(t,e,n){var r,s;for(r=10,s=0;s<n-1;s++)e<r&&(t.a+="0"),r*=10;t.a+=e}function nsn(t,e){var n;for(n=0;t.e!=t.i.gc();)XZe(e,kr(t),pe(n)),n!=Di&&++n}function lmt(t,e){var n;for(++t.d,++t.c[e],n=e+1;n<t.a.length;)++t.a[n],n+=n&-n}function rsn(t,e){var n,r,s;s=e.c.i,n=u(or(t.f,s),57),r=n.d.c-n.e.c,Nmt(e.a,r,0)}function ED(t){var e,n;return e=t+128,n=(iKt(),M8t)[e],!n&&(n=M8t[e]=new wtt(t)),n}function ri(t,e){var n;return Pn(e),n=t[":"+e],csn(!!n,ct(ot(nr,1),De,1,5,[e])),n}function isn(t){var e,n;if(t.b){n=null;do e=t.b,t.b=null,n=Xse(e,n);while(t.b);t.b=n}}function ssn(t){var e,n;if(t.a){n=null;do e=t.a,t.a=null,n=Xse(e,n);while(t.a);t.a=n}}function tte(t){var e;for(++t.a,e=t.c.a.length;t.a<e;++t.a)if(t.c.b[t.a])return}function asn(t,e){var n,r;for(r=e.c,n=r+1;n<=e.f;n++)t.a[n]>t.a[r]&&(r=n);return r}function osn(t,e){var n;return n=tw(t.e.c,e.e.c),n==0?Vs(t.e.d,e.e.d):n}function J3(t,e){return e.e==0||t.e==0?Q7:(b7(),jst(t,e))}function csn(t,e){if(!t)throw et(new Bn(h2n("Enum constant undefined: %s",e)))}function P_(){P_=J,Bpe=new av,Rpe=new od,Ppe=new pk,Fpe=new oh,jpe=new jK}function I $ (){I $ =J,u7t=new t2t("BY_SIZE",0),mut=new t2t("BY_SIZE_AND_SHAPE",1)}function O $ (){O $ =J,Mut=new e2t("EADES",0),YH=new e2t("FRUCHTERMAN_REINGOLD",1)}function TD(){TD=J,CV=new s2t("READING_DIRECTION",0),rEt=new s2t("ROTATION",1)}function ete(){ete=J,x2e=ii((pb(),ct(ot(nEt,1),se,335,0,[alt,eEt,olt,lS,uS])))}function nte(){nte=J,Zve=ii((eC(),ct(ot(r_t,1),se,315,0,[n_t,Qlt,Zlt,ES,TS])))}function rte(){rte=J,l2e=ii((g4(),ct(ot(u2e,1),se,363,0,[xV,EV,TV,kV,yV])))}function ite(){ite=J,N2e=ii((mh(),ct(ot(OEt,1),se,163,0,[_O,pS,g2,bS,Ny])))}function ste(){ste=J,mye=ii((iI(),ct(ot(SCt,1),se,316,0,[TCt,Iht,CCt,Oht,_Ct])))}function ate(){ate=J,qye=ii((n1(),ct(ot(Yg,1),se,175,0,[Un,fa,Bd,Rb,Kg])))}function ote(){ote=J,dye=ii((y7(),ct(ot(fye,1),se,355,0,[n5,Bx,BS,FS,RS])))}function cte(){cte=J,Lpe=ii((so(),ct(ot(J7t,1),se,356,0,[Nd,f2,pu,Zc,Go])))}function ute(){ute=J,f3e=ii((xo(),ct(ot(qS,1),se,103,0,[h0,Af,Wh,X0,Q0])))}function lte(){lte=J,x3e=ii((c4(),ct(ot(US,1),se,249,0,[x2,JO,JSt,GS,tAt])))}function hte(){hte=J,T3e=ii((we(),ct(ot(co,1),Nc,61,0,[fc,Fn,Wn,Lr,jn])))}function jrt(t,e){var n;return n=u(or(t.a,e),134),n||(n=new k3,Pi(t.a,e,n)),n}function fte(t){var e;return e=u(K(t,(ie(),Cw)),305),e?e.a==t:!1}function dte(t){var e;return e=u(K(t,(ie(),Cw)),305),e?e.i==t:!1}function gte(t,e){return Pn(e),Mvt(t),t.d.Ob()?(e.td(t.d.Pb()),!0):!1}function N $ (t){return Oc(t,Di)>0?Di:Oc(t, $ a)<0? $ a: $ r(t)}function Ym(t){return t<3?(Gl(t,che),t+1):t<EC?Ms(t/.75+1):Di}function wn(t,e){var n;return n=(t.i==null&&xd(t),t.i),e>=0&&e<n.length?n[e]:null}function Jf(t,e,n){var r;if(e==null)throw et(new TT);return r=D0(t,e),Mrn(t,e,n),r}function pte(t){return t.a>=-.01&&t.a<=H1&&(t.a=0),t.b>=-.01&&t.b<=H1&&(t.b=0),t}function bte(t,e){return e==(int(),int(), $ 0e)?t.toLocaleLowerCase():t.toLowerCase()}function hmt(t){return(t.i&2?"interface ":t.i&1?"":"class ")+(A0(t),t.o)}function Ro(t){var e,n;n=(e=new Ntt,e),Hr((!t.q&&(t.q=new he(Jh,t,11,10)),t.q),n)}function usn(t,e){var n;return n=e>0?e-1:e,fqt(EWe(zte(uvt(new Yk,n),t.n),t.j),t.k)}function lsn(t,e,n,r){var s;t.j=-1,N4t(t,g4t(t,e,n),(go(),s=u(e,66).Mj(),s.Ok(r)))}function vte(t){this.g=t,this.f=new le,this.a=b.Math.min(this.g.c.c,this.g.d.c)}function wte(t){this.b=new le,this.a=new le,this.c=new le,this.d=new le,this.e=t}function mte(t,e){this.a=new Rr,this.e=new Rr,this.b=(V_(),eG),this.c=t,this.b=e}function yte(t,e,n){dj.call(this),fmt(this),this.a=t,this.c=n,this.b=e.d,this.f=e.e}function xte(t){this.d=t,this.c=t.c.vc().Kc(),this.b=null,this.a=null,this.e=(sR(),aut)}function Gv(t){if(t<0)throw et(new Bn("Illegal Capacity: "+t));this.g=this.ri(t)}function hsn(t,e){if(0>t||t>e)throw et(new _pt("fromIndex: 0, toIndex: "+t+d6t+e))}function fsn(t){var e;if(t.a==t.b.a)throw et(new _c);return e=t.a,t.c=e,t.a=t.a.e,e}function P $ (t){var 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									` )}return e&&(e.stack||n(t[Cat]))}function Vyt(t){qm();var e;switch(e=t.Pc(),e.length){case 0:return iut;case 1:return new gnt(zr(e[0]));default:return new Knt(Icn(e))}}function ew(t,e){switch(e.g){case 1:return I6(t.j,(Ku(),a9t));case 2:return I6(t.j,(Ku(),c9t));default:return pn(),pn(),wo}}function Gyt(t,e){switch(e){case 3:Wv(t,0);return;case 4:Kv(t,0);return;case 5:Du(t,0);return;case 6:Iu(t,0);return}myt(t,e)}function Iit(){Iit=J,TR(),JV=(Ce(),Nw),Kve=N1(ct(ot(Rht,1),ckt,146,0,[AO,Sf,Fx,Ow,qy,zlt,m9,y9,qlt,xS,Q4,Fb,Z4]))}function vre(t){var e,n;e=t.d==(rx(),a9),n=V3t(t),e&&!n||!e&&n?Jt(t.a,(Ce(),Pd),(t0(),zO)):Jt(t.a,(Ce(),Pd),(t0(), $ O))}function hun(t,e){var n;return n=u(Hl(t,nb(new Ee,new ne,new tr,ct(ot(xl,1),se,132,0,[(j1(),Zl)]))),15),n.Qc(zWt(n.gc()))}function yz(){yz=J,sft=new HR("SIMPLE",0),iAt=new HR("GROUP_DEC",1),aAt=new HR("GROUP_MIXED",2),sAt=new HR("GROUP_INC",3)}function Oit(){Oit=J,pft=new WF,LAt=new KF,MAt=new YF,DAt=new Ak,IAt=new XF,OAt=new QF,NAt=new PZ,PAt=new Lk,FAt=new Mk}function wre(t,e,n){Cte(),wzt.call(this),this.a=K2(sge,[te,k6t],[595,212],0,[HH,xut],2),this.c=new S6,this.g=t,this.f=e,this.d=n}function Uyt(t,e){this.n=K2(D2,[te,Wat],[364,25],14,[e,Ms(b.Math.ceil(t/32))],2),this.o=t,this.p=e,this.j=t-1>>1,this.k=e-1>>1}function fun(t,e){Ar(e,"End label post-processing",1),Ts(Qi(oc(new kn(null,new Cn(t.b,16)),new ZK),new JK),new tY),br(e)}function dun(t,e,n){var r,s;return r=Xt(t.p[e.i.p])+Xt(t.d[e.i.p])+e.n.b+e.a.b,s=Xt(t.p[n.i.p])+Xt(t.d[n.i.p])+n.n.b+n.a.b,s-r}function gun(t,e,n){var r,s;for(r=Xs(n,Eo),s=0;Oc(r,0)!=0&&s<e;s++)r=Wa(r,Xs(t[s],Eo)),t[s]= $ r(r),r=Rp(r,32);return  $ r(r)}function xz(t){var e,n,r,s;for(s=0,n=0,r=t.length;n<r;n++)e=(Yr(n,t.length),t.charCodeAt(n)),e<64&&(s=O1(s,L0(1,e)));return s}function pun(t){var e;return t==null?null:new Fp((e=Xc(t,!0),e.length>0&&(Yr(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function bun(t){var e;return t==null?null:new Fp((e=Xc(t,!0),e.length>0&&(Yr(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function Wyt(t,e){var n;return t.i>0&&(e.length<t.i&&(n=_D(bl(e).c,t.i),e=n),qc(t.g,0,e,0,t.i)),e.length>t.i&&ds(e,t.i,null),e}function au(t,e,n){var r,s,o;return t.ej()?(r=t.i,o=t.fj(),zD(t,r,e),s=t.Zi(3,null,e,r,o),n?n.Ei(s):n=s):zD(t,t.i,e),n}function vun(t,e,n){var r,s;return r=new P0(t.e,4,10,(s=e.c,Et(s,88)?u(s,26):(hn(),ef)),null,Ng(t,e),!1),n?n.Ei(r):n=r,n}function wun(t,e,n){var r,s;return r=new P0(t.e,3,10,null,(s=e.c,Et(s,88)?u(s,26):(hn(),ef)),Ng(t,e),!1),n?n.Ei(r):n=r,n}function mre(t){Pm();var e;return e=new No(u(t.e.We((Ti(),a5)),8)),t.B.Hc((ml(),M9))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function yre(t){ry();var e;return(t.q?t.q:(pn(),pn(),u0))._b((Ce(),Dw))?e=u(K(t,Dw),197):e=u(K(Qa(t),yS),197),e}function ny(t,e){var n,r;return r=null,ia(t,(Ce(),QV))&&(n=u(K(t,QV),94),n.Xe(e)&&(r=n.We(e))),r==null&&(r=K(Qa(t),e)),r}function xre(t,e){var n,r,s;return Et(e,42)?(n=u(e,42),r=n.cd(),s=ty(t.Rc(),r),wd(s,n.dd())&&(s!=null||t.Rc()._b(r))):!1}function Nit(t,e){var n,r,s;return t.f>0?(t.qj(),r=e==null?0:ns(e),s=(r&Di)%t.d.length,n=xoe(t,s,r,e),n!=-1):!1}function e1(t,e){var n,r,s;return t.f>0&&(t.qj(),r=e==null?0:ns(e),s=(r&Di)%t.d.length,n=D4t(t,s,r,e),n)?n.dd():null}function GD(t,e){var n,r,s,o;for(o=gu(t.e.Tg(),e),n=u(t.g,119),s=0;s<t.i;++s)if(r=n[s],o.rl(r.ak()))return!1;return!0}function kre(t){if(t.b==null){for(;t.a.Ob();)if(t.b=t.a.Pb(),!u(t.b,49).Zg())return!0;return t.b=null,!1}else return!0}function Ere(t,e){t.mj();try{t.d.Vc(t.e++,e),t.f=t.d.j,t.g=-1}catch(n){throw n=os(n),Et(n,73)?et(new uh):et(n)}}function kz(t,e){P2t();var n,r;return n=zM((cR(),cR(),tS)),r=null,e==n&&(r=u(Uc(_8t,t),615)),r||(r=new oYt(t),e==n&&Po(_8t,t,r)),r}function Tre(t,e){var n,r;t.a=Wa(t.a,1),t.c=b.Math.min(t.c,e),t.b=b.Math.max(t.b,e),t.d+=e,n=e-t.f,r=t.e+n,t.f=r-t.e-n,t.e=r}function mun(t,e){var n;t.c=e,t.a=nun(e),t.a<54&&(t.f=(n=e.d>1?O1(L0(e.a[1],32),Xs(e.a[0],Eo)):Xs(e.a[0],Eo),qv(ja(e.e,n))))}function UD(t,e){var n;return Xo(t)&&Xo(e)&&(n=t%e,II<n&&n<mb)?n:Wp((z5t(Xo(t)?Ph(t):t,Xo(e)?Ph(e):e,!0),u2))}function Q_(t,e){var n;jyn(e),n=u(K(t,(C
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )}return[]}function ohn(t){var e;return e=(Qte(),D0e),e[t>>>28]|e[t>>24&15]<<4|e[t>>20&15]<<8|e[t>>16&15]<<12|e[t>>12&15]<<16|e[t>>8&15]<<20|e[t>>4&15]<<24|e[t&15]<<28}function Bie(t){var e,n,r;t.b==t.c&&(r=t.a.length,n=Zmt(b.Math.max(8,r))<<1,t.b!=0?(e=pf(t.a,n),see(t,e,r),t.a=e,t.b=0):izt(t.a,n),t.c=r)}function chn(t,e){var n;return n=t.b,n.Xe((Ti(),kl))?n.Hf()==(we(),jn)?-n.rf().a-Xt(xe(n.We(kl))):e+Xt(xe(n.We(kl))):n.Hf()==(we(),jn)?-n.rf().a:e}function ZD(t){var e;return t.b.c.length!=0&&u(Fe(t.b,0),70).a?u(Fe(t.b,0),70).a:(e=Vnt(t),e??""+(t.c?Qo(t.c.a,t,0):-1))}function jz(t){var e;return t.f.c.length!=0&&u(Fe(t.f,0),70).a?u(Fe(t.f,0),70).a:(e=Vnt(t),e??""+(t.i?Qo(t.i.j,t,0):-1))}function uhn(t,e){var n,r;if(e<0||e>=t.gc())return null;for(n=e;n<t.gc();++n)if(r=u(t.Xb(n),128),n==t.gc()-1||!r.o)return new _a(pe(n),r);return null}function lhn(t,e,n){var r,s,o,h,d;for(o=t.c,d=n?e:t,r=n?t:e,s=d.p+1;s<r.p;++s)if(h=u(Fe(o.a,s),10),!(h.k==(Kn(),W1)||Rhn(h)))return!1;return!0}function w3t(t){var e,n,r,s,o;for(o=0,s=Rs,r=0,n=new S(t.a);n.a<n.c.c.length;)e=u(Q(n),187),o+=e.r+(r>0?t.c:0),s=b.Math.max(s,e.d),++r;t.e=o,t.b=s}function hhn(t){var e,n;if(!t.b)for(t.b=f $ (u(t.f,118).Ag().i),n=new lr(u(t.f,118).Ag());n.e!=n.i.gc();)e=u(kr(n),137),ue(t.b,new Htt(e));return t.b}function fhn(t,e){var n,r,s;if(e.dc())return f8(),f8(),lN;for(n=new  $ Ut(t,e.gc()),s=new lr(t);s.e!=s.i.gc();)r=kr(s),e.Hc(r)&&Hr(n,r);return n}function m3t(t,e,n,r){return e==0?r?(!t.o&&(t.o=new Nl((ou(),_2),Bw,t,0)),t.o):(!t.o&&(t.o=new Nl((ou(),_2),Bw,t,0)),fD(t.o)):Dz(t,e,n,r)}function ast(t){var e,n;if(t.rb)for(e=0,n=t.rb.i;e<n;++e)FM(St(t.rb,e));if(t.vb)for(e=0,n=t.vb.i;e<n;++e)FM(St(t.vb,e));v_((Yu(),Pa),t),t.Bb|=1}function Xi(t,e,n,r,s,o,h,d,w,k,_,L,F,q){return dae(t,e,r,null,s,o,h,d,w,k,F,!0,q),Lyt(t,_),Et(t.Cb,88)&&uy(gl(u(t.Cb,88)),2),n&&Lmt(t,n),Myt(t,L),t}function dhn(t){var e,n;if(t==null)return null;n=0;try{n=Kl(t, $ a,Di)&Ns}catch(r){if(r=os(r),Et(r,127))e=M $ (t),n=e[0];else throw et(r)}return ID(n)}function ghn(t){var e,n;if(t==null)return null;n=0;try{n=Kl(t, $ a,Di)&Ns}catch(r){if(r=os(r),Et(r,127))e=M $ (t),n=e[0];else throw et(r)}return ID(n)}function phn(t,e){var n,r,s;return s=t.h-e.h,s<0||(n=t.l-e.l,r=t.m-e.m+(n>>22),s+=r>>22,s<0)?!1:(t.l=n&yl,t.m=r&yl,t.h=s&U0,!0)}function bhn(t,e,n,r,s,o,h){var d,w;return!(e.Ae()&&(w=t.a.ue(n,r),w<0||!s&&w==0)||e.Be()&&(d=t.a.ue(n,o),d>0||!h&&d==0))}function vhn(t,e){J8();var n;if(n=t.j.g-e.j.g,n!=0)return 0;switch(t.j.g){case 2:return Lit(e,W9t)-Lit(t,W9t);case 4:return Lit(t,U9t)-Lit(e,U9t)}return 0}function whn(t){switch(t.g){case 0:return ult;case 1:return llt;case 2:return hlt;case 3:return flt;case 4:return SV;case 5:return dlt;default:return null}}function jo(t,e,n){var r,s;return r=(s=new Ptt,lb(s,e),su(s,n),Hr((!t.c&&(t.c=new he(Rw,t,12,10)),t.c),s),s),Lg(r,0),Zm(r,1),Og(r,!0),Ig(r,!0),r}function nx(t,e){var n,r;if(e>=t.i)throw et(new Iet(e,t.i));return++t.j,n=t.g[e],r=t.i-e-1,r>0&&qc(t.g,e+1,t.g,e,r),ds(t.g,--t.i,null),t.fi(e,n),t.ci(),n}function Rie(t,e){var n,r;return t.Db>>16==17?t.Cb.ih(t,21,Zh,e):(r=bo(u(wn((n=u(Dn(t,16),26),n||t.zh()),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function mhn(t){var e,n,r,s;for(pn(),ua(t.c,t.a),s=new S(t.c);s.a<s.c.c.length;)for(r=Q(s),n=new S(t.b);n.a<n.c.c.length;)e=u(Q(n),679),e.Ke(r)}function yhn(t){var e,n,r,s;for(pn(),ua(t.c,t.a),s=new S(t.c);s.a<s.c.c.length;)for(r=Q(s),n=new S(t.b);n.a<n.c.c.length;)e=u(Q(n),369),e.Ke(r)}function xhn(t){var e,n,r,s,o;for(s=Di,o=null,r=new S(t.d);r.a<r.c.c.length;)n=u(Q(r),213),n.d.j^n.e.j&&(e=n.e.e-n.d.e-n.a,e<s&&(s=e,o=n));return o}function y3t(){y3t=J,wpe=new vn(j6t,(Rn(),!1)),ppe=new vn( $ 6t,100),G7t=(N_(),Nut),bpe=new vn(z6t,G7t),vpe=new vn(q6t,Cd),mpe=new vn(H6t,pe(Di))}function jie(t,e,n){var r,s,o,h,d,w,k,_;for(k=0,s=t.a[e],o=0,h=s.length;o<h;++o)for(r=s[o],_=U_(r,n),w=_.Kc();w.Ob();)d=u(w.Pb(),11),Pi(t.f,d,pe(k++))}function khn(t,e,n){var r,s,o,h;if(n)for(s=n.a.length,r=new Y2(s),h=(r.b-r.a)*r.c<0?(Op(),M2):new Bp(r);h.Ob();)o=u(h.Pb(),19),cn(t,e,ix(Km(n,o.a)))}function Ehn(t,e,n){var r,s,o,h;if(n)for(s=n.a.length,r=new Y
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								\ r \ f ] + ` );try{ZS=ct(ot(W4n,1),De,2015,0,[new oM((P2t(),kz("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",zM((cR(),cR(),tS))))),new oM(kz("yyyy-MM-dd'T'HH:mm:ss'.'SSS",zM(tS))),new oM(kz("yyyy-MM-dd'T'HH:mm:ss",zM(tS))),new oM(kz("yyyy-MM-dd'T'HH:mm",zM(tS))),new oM(kz("yyyy-MM-dd",zM(tS)))])}catch(t){if(t=os(t),!Et(t,78))throw et(t)}}function Lwn(t){var e,n,r,s;if(r=mat((!t.c&&(t.c=jD(t.f)),t.c),0),t.e==0||t.a==0&&t.f!=-1&&t.e<0)return r;if(e=ymt(t)<0?1:0,n=t.e,s=(r.length+1+b.Math.abs(Ms(t.e)),new Sm),e==1&&(s.a+="-"),t.e>0)if(n-=r.length-e,n>=0){for(s.a+="0.";n>Mb.length;n-=Mb.length)uKt(s,Mb);GUt(s,Mb,Ms(n)),ni(s,r.substr(e))}else n=e-n,ni(s, $ l(r,e,Ms(n))),s.a+=".",ni(s,OM(r,Ms(n)));else{for(ni(s,r.substr(e));n<-Mb.length;n+=Mb.length)uKt(s,Mb);GUt(s,Mb,Ms(-n))}return s.a}function F5t(t,e,n,r){var s,o,h,d,w,k,_,L,F;return w=ba(new je(n.a,n.b),t),k=w.a*e.b-w.b*e.a,_=e.a*r.b-e.b*r.a,L=(w.a*r.b-w.b*r.a)/_,F=k/_,_==0?k==0?(s= $ i(new je(n.a,n.b),pd(new je(r.a,r.b),.5)),o=Gp(t,s),h=Gp( $ i(new je(t.a,t.b),e),s),d=b.Math.sqrt(r.a*r.a+r.b*r.b)*.5,o<h&&o<=d?new je(t.a,t.b):h<=d? $ i(new je(t.a,t.b),e):null):null:L>=0&&L<=1&&F>=0&&F<=1? $ i(new je(t.a,t.b),pd(new je(e.a,e.b),L)):null}function Mwn(t,e,n){var r,s,o,h,d;if(r=u(K(t,(Ce(),Mlt)),21),n.a>e.a&&(r.Hc((ay(),qO))?t.c.a+=(n.a-e.a)/2:r.Hc(HO)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((ay(),GO))?t.c.b+=(n.b-e.b)/2:r.Hc(VO)&&(t.c.b+=n.b-e.b)),u(K(t,(ie(),tu)),21).Hc((ko(),Th))&&(n.a>e.a||n.b>e.b))for(d=new S(t.a);d.a<d.c.c.length;)h=u(Q(d),10),h.k==(Kn(),Fs)&&(s=u(K(h,yc),61),s==(we(),Wn)?h.n.a+=n.a-e.a:s==Lr&&(h.n.b+=n.b-e.b));o=t.d,t.f.a=n.a-o.b-o.c,t.f.b=n.b-o.d-o.a}function Dwn(t,e,n){var r,s,o,h,d;if(r=u(K(t,(Ce(),Mlt)),21),n.a>e.a&&(r.Hc((ay(),qO))?t.c.a+=(n.a-e.a)/2:r.Hc(HO)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((ay(),GO))?t.c.b+=(n.b-e.b)/2:r.Hc(VO)&&(t.c.b+=n.b-e.b)),u(K(t,(ie(),tu)),21).Hc((ko(),Th))&&(n.a>e.a||n.b>e.b))for(h=new S(t.a);h.a<h.c.c.length;)o=u(Q(h),10),o.k==(Kn(),Fs)&&(s=u(K(o,yc),61),s==(we(),Wn)?o.n.a+=n.a-e.a:s==Lr&&(o.n.b+=n.b-e.b));d=t.d,t.f.a=n.a-d.b-d.c,t.f.b=n.b-d.d-d.a}function Iwn(t){var e,n,r,s,o,h,d,w,k,_,L,F;for(e=Xae(t),_=(d=new km(e).a.vc().Kc(),new rM(d));_.a.Ob();){for(k=(s=u(_.a.Pb(),42),u(s.cd(),10)),L=0,F=0,L=k.d.d,F=k.o.b+k.d.a,t.d[k.p]=0,n=k;(o=t.a[n.p])!=k;)r=Vun(n,o),w=0,t.c==(md(),Ug)?w=r.d.n.b+r.d.a.b-r.c.n.b-r.c.a.b:w=r.c.n.b+r.c.a.b-r.d.n.b-r.d.a.b,h=Xt(t.d[n.p])+w,t.d[o.p]=h,L=b.Math.max(L,o.d.d-h),F=b.Math.max(F,h+o.o.b+o.d.a),n=o;n=k;do t.d[n.p]=Xt(t.d[n.p])+L,n=t.a[n.p];while(n!=k);t.b[k.p]=L+F}}function rat(t){var e,n,r,s,o,h,d,w,k,_,L,F;for(t.b=!1,L=ms,w=Rs,F=ms,k=Rs,r=t.e.a.ec().Kc();r.Ob();)for(n=u(r.Pb(),266),s=n.a,L=b.Math.min(L,s.c),w=b.Math.max(w,s.c+s.b),F=b.Math.min(F,s.d),k=b.Math.max(k,s.d+s.a),h=new S(n.c);h.a<h.c.c.length;)o=u(Q(h),395),e=o.a,e.a?(_=s.d+o.b.b,d=_+o.c,F=b.Math.min(F,_),k=b.Math.max(k,d)):(_=s.c+o.b.a,d=_+o.c,L=b.Math.min(L,_),w=b.Math.max(w,d));t.a=new je(w-L,k-F),t.c=new je(L+t.d.a,F+t.d.b)}function Own(t,e,n){var r,s,o,h,d,w,k,_,L;for(L=new le,_=new mwt(0,n),o=0,z $ (_,new cit(0,0,_,n)),s=0,k=new lr(t);k.e!=k.i.gc();)w=u(kr(k),33),r=u(Fe(_.a,_.a.c.length-1),187),d=s+w.g+(u(Fe(_.a,0),187).b.c.length==0?0:n),d>e&&(s=0,o+=_.b+n,L.c[L.c.length]=_,_=new mwt(o,n),r=new cit(0,_.f,_,n),z $ (_,r),s=0),r.b.c.length==0||w.f>=r.o&&w.f<=r.f||r.a*.5<=w.f&&r.a*1.5>=w.f?Iyt(r,w):(h=new cit(r.s+r.r+n,_.f,_,n),z $ (_,h),Iyt(h,w)),s=w.i+w.g;return L.c[L.c.length]=_,L}function k4(t){var e,n,r,s,o,h,d,w;if(!t.a){if(t.o=null,w=new j $ t(t),e=new xp,n=eA,d=n.a.zc(t,n),d==null){for(h=new lr(zo(t));h.e!=h.i.gc();)o=u(kr(h),26),vs(w,k4(o));n.a.Bc(t)!=null,n.a.gc()==0}for(s=(!t.s&&(t.s=new he(ju,t,21,17)),new lr(t.s));s.e!=s.i.gc();)r=u(kr(s),170),Et(r,322)&&Hr(e,u(r,34));Jm(e),t.k=new HWt(t,(u(St(Ut((zp(),Ln).o),7),18),e.i),e.g),vs(w,t.k),Jm(w),t.a=new q3((u(St(Ut(Ln.o),4),18),w.i),w.g),gl(t).b&=-2}return t.a}function Nwn(t,e,n,r,s,o,h){var d,w,k,_,L,F;return L=!1,w=joe(n.q,e.f+e.b-n.q.f),F=s-(n.q.e+w-h),F<r.g||(k=o==t.c.length-1&&F>=(An(o,t.c.length),u(t.c[o],200)).e,_=(d=wC(r,F,!1),d.a),_>e.b&&!k)?!1:((k||_<=e.b)&&(k&&_>e.b?(n.d=_,dD(n,Hse(n,_))):(cse(n.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
										 
							
							
								\ r \ r   ` ),Po(h5,Yct,r),Po(I9,Yct,gy(r)),r=new ql(4),WD(r,l0e),Po(h5,JC,r),Po(I9,JC,gy(r)),r=new ql(4),WD(r,l0e),Po(h5,JC,r),Po(I9,JC,gy(r)),r=new ql(4),WD(r,h0e),py(r,u(Uc(h5,JC),117)),Po(h5,Kct,r),Po(I9,Kct,gy(r)),r=new ql(4),WD(r,"-.0:AZ__az··ÀÖØöøı ǃ ʻ ː Ρ Ϝ Ϝ ϳ ա ٠ ھ ە ۰ ः ० ০ ੦ ઃ ૦ ଃ ୦ ౦ ಂ ೦ ം ൦ ๐ ໐ ᅟ ι ι K ℮ ℮ 〇 〇   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,sfe= ` ) ] } " '  	\ r  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,afe="The given string contains parts that cannot be parsed as numbers.",qI="org.eclipse.elk.core.math",ofe={3:1,4:1,142:1,207:1,414:1},cfe={3:1,4:1,116:1,207:1,414:1},Xn="org.eclipse.elk.layered", $ g="org.eclipse.elk.alg.layered.graph.transform",ufe="ElkGraphImporter",lfe="ElkGraphImporter/lambda $ 0 $ Type",hfe="ElkGraphImporter/lambda $ 1 $ Type",ffe="ElkGraphImporter/lambda $ 2 $ Type",dfe="ElkGraphImporter/lambda $ 4 $ Type",gfe="Node margin calculation",Vn="org.eclipse.elk.alg.layered.intermediate",pfe="ONE_SIDED_GREEDY_SWITCH",bfe="TWO_SIDED_GREEDY_SWITCH",Tot="No implementation is available for the layout processor ",G6t="IntermediateProcessorStrategy",_ot="Node '",vfe="FIRST_SEPARATE",wfe="LAST_SEPARATE",mfe="Odd port side processing",js="org.eclipse.elk.alg.layered.intermediate.compaction",OC="org.eclipse.elk.alg.layered.intermediate.greedyswitch",c0="org.eclipse.elk.alg.layered.p3order.counting",HI={225:1},mx="org.eclipse.elk.alg.layered.intermediate.loops",Ql="org.eclipse.elk.alg.layered.intermediate.loops.ordering",a2="org.eclipse.elk.alg.layered.intermediate.loops.routing",NC="org.eclipse.elk.alg.layered.intermediate.preserveorder",Ad="org.eclipse.elk.alg.layered.intermediate.wrapping",Pc="org.eclipse.elk.alg.layered.options",Cot="INTERACTIVE",yfe="DEPTH_FIRST",xfe="EDGE_LENGTH",kfe="SELF_LOOPS",Efe="firstTryWithInitialOrder",U6t="org.eclipse.elk.layered.directionCongruency",W6t="org.eclipse.elk.layered.feedbackEdges", $ q="org.eclipse.elk.layered.interactiveReferencePoint",K6t="org.eclipse.elk.layered.mergeEdges",Y6t="org.eclipse.elk.layered.mergeHierarchyEdges",X6t="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",Q6t="org.eclipse.elk.layered.portSortingStrategy",Z6t="org.eclipse.elk.layered.thoroughness",J6t="org.eclipse.elk.layered.unnecessaryBendpoints",txt="org.eclipse.elk.layered.generatePositionAndLayerIds",Sot="org.eclipse.elk.layered.cycleBreaking.strategy",VI="org.eclipse.elk.layered.layering.strategy",ext="org.eclipse.elk.layered.layering.layerConstraint",nxt="org.eclipse.elk.layered.layering.layerChoiceConstraint",rxt="org.eclipse.elk.layered.layering.layerId",Aot="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",Lot="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",Mot="org.eclipse.elk.layered.layering.nodePromotion.strategy",Dot="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",Iot="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",PC="org.eclipse.elk.layered.crossingMinimization.strategy",ixt="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",Oot="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",Not="org.eclipse.elk.layered.crossingMinimization.semiInteractive",sxt="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",axt="org.eclipse.elk.layered.crossingMinimization.positionId",oxt="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",Pot="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",zq="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",M4="org.eclipse.elk.layered.nodePlacement.strategy",qq="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",Fot="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",Bot="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",Rot="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",jot="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", $ ot="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",cxt="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",uxt="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",Hq="org.eclipse.elk.layered.edgeRouting.splines.mode",Vq="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",zot="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",lxt="org.eclipse.elk.layered.spacing.baseValue",hxt="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",fxt="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",dxt="org.eclipse.elk.layered.sp
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,e=pe(0),h=0;h<this.p;h++){for(r+=""+e.a,e=pe(VUt(e.a)),s=0;s<this.o;s++)n=Wrt(this,s,h),Oc(n,0)==0?r+="_":Oc(n,1)==0?r+="X":r+="0";r+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }return  $ l(r,0,r.length-1)},l.o=0,l.p=0,N(Dq,"TwoBitGrid",1298),M(321,1298,{321:1},Uyt),l.j=0,l.k=0,N(Dq,"PlanarGrid",321),M(167,321,{321:1,167:1}),l.g=0,l.i=0,N(Dq,"Polyomino",167);var I4n=ls(BI,Hhe);M(134,1,C6t,k3),l.Ye=function(e,n){return FD(this,e,n)},l.Ve=function(){return fKt(this)},l.We=function(e){return K(this,e)},l.Xe=function(e){return ia(this,e)},N(BI,"MapPropertyHolder",134),M(1299,134,C6t,Goe),N(Dq,"Polyominoes",1299);var Rge=!1,rS,L7t;M(1766,1,Qn,vL),l.td=function(e){Hue(u(e,221))},N(gx,"DepthFirstCompaction/0methodref $ compactTree $ Type",1766),M(810,1,Qn,fi),l.td=function(e){ptn(this.a,u(e,221))},N(gx,"DepthFirstCompaction/lambda $ 1 $ Type",810),M(1767,1,Qn,_Wt),l.td=function(e){jun(this.a,this.b,this.c,u(e,221))},N(gx,"DepthFirstCompaction/lambda $ 2 $ Type",1767);var iS,M7t;M(65,1,{65:1},IXt),N(gx,"Node",65),M(1250,1,{},OGt),N(gx,"ScanlineOverlapCheck",1250),M(1251,1,{679:1},ZYt),l.Ke=function(e){ZYe(this,u(e,440))},N(gx,"ScanlineOverlapCheck/OverlapsScanlineHandler",1251),M(1252,1,Ui,um),l.ue=function(e,n){return xcn(u(e,65),u(n,65))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},N(gx,"ScanlineOverlapCheck/OverlapsScanlineHandler/lambda $ 0 $ Type",1252),M(440,1,{440:1},Zpt),l.a=!1,N(gx,"ScanlineOverlapCheck/Timestamp",440),M(1253,1,Ui,fg),l.ue=function(e,n){return Qhn(u(e,440),u(n,440))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},N(gx,"ScanlineOverlapCheck/lambda $ 0 $ Type",1253),M(550,1,{},cs),N(Vhe,"SVGImage",550),M(324,1,{324:1},Gbt),l.Ib=function(){return"("+this.a+ao+this.b+ao+this.c+")"},N(Vhe,"UniqueTriple",324),M(209,1,xb),N(S4,"AbstractLayoutProvider",209),M(1132,209,xb,zs),l.Ze=function(e,n){var r,s,o,h;switch(Ar(n,Ghe,1),this.a=Xt(xe(ze(e,(J_(),F7t)))),eb(e,Cut)&&(o=Kr(ze(e,Cut)),r=Ust(z8(),o),r&&(s=u(Qnt(r.f),209),s.Ze(e,Kc(n,1)))),h=new KQt(this.a),this.b= $ yn(h,e),u(ze(e,(git(),I7t)),481).g){case 0:ngn(new Ma,this.b),Mo(e,WH,K(this.b,WH));break;default:Gd()}Kyn(h),Mo(e,N7t,this.b),br(n)},l.a=0,N(Uhe,"DisCoLayoutProvider",1132),M(1244,1,{},Ma),l.c=!1,l.e=0,l.f=0,N(Uhe,"DisCoPolyominoCompactor",1244),M(561,1,{561:1},vKt),l.b=!0,N(Oq,"DCComponent",561),M(394,22,{3:1,35:1,22:1,394:1},DR),l.a=!1;var GH,hO,UH,fO,jge=Xr(Oq,"DCDirection",394,ti,trn,zXe), $ ge;M(266,134,{3:1,266:1,94:1,134:1},Ist),N(Oq,"DCElement",266),M(395,1,{395:1},b3t),l.c=0,N(Oq,"DCExtension",395),M(755,134,C6t,gqt),N(Oq,"DCGraph",755),M(481,22,{3:1,35:1,22:1,481:1},wUt);var _ut,D7t=Xr(got,S6t,481,ti,Mtn,qXe),zge;M(854,1,jh,wJ),l.Qe=function(e){an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,A6t),Whe),"Connected Components Compaction Strategy"),"Strategy for packing different connected components in order to save space and enhance readability of a graph."),O7t),(Bg(),ks)),D7t),on((n1(),Un))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ve,L6t),Whe),"Connected Components Layout Algorithm"),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),T9),Me),on(Un)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ve,M6t),"debug"),"DCGraph"),"Access to the DCGraph is intended for the debug view,"),X1),nr),on(Un)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ve,D6t),"debug"),"List of Polyominoes"),"Access to the polyominoes is intended for the debug view,"),X1),nr),on(Un)))),Due((new xB,e))};var qge,I7t,O7t,Hge,Vge;N(got,"DisCoMetaDataProvider",854),M(998,1,jh,xB),l.Qe=function(e){Due(e)};var Gge,Cut,Uge,N7t,WH,Sut,P7t,Wge,Kge,Yge,Xge,F7t;N(got,"DisCoOptions",998),M(999,1,{},Ei),l. $ e=function(){var e;return e=new zs,e},l._e=function(e){},N(got,"DisCoOptions/DiscoFactory",999),M(562,167,{321:1,167:1,562:1},Aoe),l.a=0,l.b=0,l.c=0,l.d=0,N("org.eclipse.elk.alg.disco.structures","DCPolyomino",562);var Aut,Lut,KH;M(1268,1,_i,Rc),l.Mb=function(e){return S2t(e)},N(A4,"ElkGraphComponentsProcessor/lambda $ 0 $ Type",1268),M(1269,1,{},Ne),l.Kb=function(e){return R6(),e0(u(e,79))},N(A4,"ElkGraphComponentsProcessor/lambda $ 1 $ Type",1269),M(1270,1,_i,pp),l.Mb=function(e){return zZe(u(e,79))},N(A4,"ElkGraphCom
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									start = ` ,Cc(e,this.i),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									end = ` ,Cc(e,this.a),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									nodeStartEdge = ` ,Cc(e,this.e),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									startEndEdge = ` ,Cc(e,this.j),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									originalEdge = ` ,Cc(e,this.f),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									startInLayerDummy = ` ,Cc(e,this.k),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									startInLayerEdge = ` ,Cc(e,this.n),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									endInLayerDummy = ` ,Cc(e,this.b),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									endInLayerEdge = ` ,Cc(e,this.c),e.a},N(Ad,"BreakingPointInserter/BPInfo",305),M(652,1,{652:1},Cp),l.a=!1,l.b=0,l.c=0,N(Ad,"BreakingPointInserter/Cut",652),M(1480,1,ys,NX),l.pf=function(e,n){ppn(u(e,37),n)},N(Ad,"BreakingPointProcessor",1480),M(1481,1,_i,PX),l.Mb=function(e){return fte(u(e,10))},N(Ad,"BreakingPointProcessor/0methodref $ isEnd $ Type",1481),M(1482,1,_i,FX),l.Mb=function(e){return dte(u(e,10))},N(Ad,"BreakingPointProcessor/1methodref $ isStart $ Type",1482),M(1483,1,ys,BX),l.pf=function(e,n){Rpn(this,u(e,37),n)},N(Ad,"BreakingPointRemover",1483),M(1484,1,Qn,RX),l.td=function(e){u(e,128).k=!0},N(Ad,"BreakingPointRemover/lambda $ 0 $ Type",1484),M(797,1,{}, $ 4t),l.b=0,l.e=0,l.f=0,l.j=0,N(Ad,"GraphStats",797),M(798,1,{},_F),l.Ce=function(e,n){return b.Math.max(Xt(xe(e)),Xt(xe(n)))},N(Ad,"GraphStats/0methodref $ max $ Type",798),M(799,1,{},CF),l.Ce=function(e,n){return b.Math.max(Xt(xe(e)),Xt(xe(n)))},N(Ad,"GraphStats/2methodref $ max $ Type",799),M(1660,1,{},jX),l.Ce=function(e,n){return EZe(xe(e),xe(n))},N(Ad,"GraphStats/lambda $ 1 $ Type",1660),M(1661,1,{},xT),l.Kb=function(e){return eie(this.a,u(e,29))},N(Ad,"GraphStats/lambda $ 2 $ Type",1661),M(1662,1,{},YB),l.Kb=function(e){return Foe(this.a,u(e,29))},N(Ad,"GraphStats/lambda $ 6 $ Type",1662),M(800,1,{},SF),l.Vf=function(e,n){var r;return r=u(K(e,(Ce(),VTt)),15),r||(pn(),pn(),wo)},l.Wf=function(){return!1},N(Ad,"ICutIndexCalculator/ManualCutIndexCalculator",800),M(802,1,{},AF),l.Vf=function(e,n){var r,s,o,h,d,w,k,_,L,F,q,G,W,Z,bt,Lt,Ct,Pt,Yt;for(Yt=(n.n==null&&_ie(n),n.n),k=(n.d==null&&_ie(n),n.d),Pt=Ot(wa,Do,25,Yt.length,15,1),Pt[0]=Yt[0],Lt=Yt[0],_=1;_<Yt.length;_++)Pt[_]=Pt[_-1]+Yt[_],Lt+=Yt[_];for(o=zse(n)-1,d=u(K(e,(Ce(),GTt)),19).a,s=Rs,r=new le,q=b.Math.max(0,o-d);q<=b.Math.min(n.f-1,o+d);q++){if(Z=Lt/(q+1),bt=0,L=1,h=new le,Ct=Rs,F=0,w=0,W=k[0],q==0)Ct=Lt,w=(n.g==null&&(n.g=wee(n,new CF)),Xt(n.g));else{for(;L<n.f;)Pt[L-1]-bt>=Z&&(ue(h,pe(L)),Ct=b.Math.max(Ct,Pt[L-1]-F),w+=W,bt+=Pt[L-1]-bt,F=Pt[L-1],W=k[L]),W=b.Math.max(W,k[L]),++L;w+=W}G=b.Math.min(1/Ct,1/n.b/w),G>s&&(s=G,r=h)}return r},l.Wf=function(){return!1},N(Ad,"MSDCutIndexHeuristic",802),M(1617,1,ys, $ X),l.pf=function(e,n){lwn(u(e,37),n)},N(Ad,"SingleEdgeGraphWrapper",1617),M(227,22,{3:1,35:1,22:1,227:1},VT);var q4,a9,o9,Dy,cS,H4,c9=Xr(Pc,"CenterEdgeLabelPlacementStrategy",227,ti,xin,JXe),v2e;M(422,22,{3:1,35:1,22:1,422:1},i2t);var Y9t,ilt,X9t=Xr(Pc,"ConstraintCalculationStrategy",422,ti,hen,tQe),w2e;M(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},cet),l.Kf=function(){return Aae(this)},l.Xf=function(){return Aae(this)};var wO,Cx,Q9t,Z9t=Xr(Pc,"CrossingMinimizationStrategy",314,ti,rnn,eQe),m2e;M(337,22,{3:1,35:1,22:1,337:1},uet);var J9t,slt,_V,tEt=Xr(Pc,"CuttingStrategy",337,ti,inn,iQe),y2e;M(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},EM),l.Kf=function(){return goe(this)},l.Xf=function(){return goe(this)};var eEt,alt,uS,olt,lS,nEt=Xr(Pc,"CycleBreakingStrategy",335,ti,Wrn,sQe),x2e;M(419,22,{3:1,35:1,22:1,419:1},s2t);var CV,rEt,iEt=Xr(Pc,"DirectionCongruency",419,ti,len,aQe),k2e;M(450,22,{3:1,35:1,22:1,450:1},het);var u9,clt,V4,E2e=Xr(Pc,"EdgeConstraint",450,ti,snn,oQe),T2e;M(276,22,{3:1,35:1,22:1,276:1},GT);var ult,llt,hlt,flt,SV,dlt,sEt=Xr(Pc,"EdgeLabelSideSelection",276,ti,_in,cQe),_2e;M(479,22,{3:1,35:1,22:1,479:1},a2t);var AV,aEt,oEt=Xr(Pc,"EdgeStraighteningStrategy",479,ti,uen,uQe),C2e;M(274,22,{3:1,35:1,22:1,274:1},UT);var glt,cEt,uEt,LV,lEt,hEt,fEt=Xr(Pc,"FixedAlignment",274,ti,Ein,lQe),S2e;M(275,22,{3:1,35:1,22:1,275:1},WT);var dEt,gEt,pEt,bEt,hS,vEt,wEt=Xr(Pc,"GraphCompactionStrategy",275,ti,kin,hQe),A2e;M(256,22,{3:1,35:1,22:1,256:1},Mm);var l9,MV,h9,Th,fS,DV,f9,G4,IV,dS,plt=Xr(Pc,"GraphProperties",256,ti,lan,fQe),L2e;M(292,22,{3:1,35:1,22:1,292:1},fet);var mO,blt,vlt,wlt=Xr(Pc,"GreedySwitchType",292,ti,cnn,dQe),M2e;M(303,22,{3:1,35:1,22:1,303:1},det);var Sx,yO,U4,D2e=Xr(Pc,"InLayerConstraint",303,ti,onn,gQe),I2e;M(420,22,{3:1,35:1,22:1,420:1},o2t);var mlt,mEt,yEt=Xr(Pc,"InteractiveReferencePoint",420,ti,fen,pQe),O2e,xEt,Ax,Cw,OV,kEt,EEt,NV,TEt,xO,PV,gS,Lx,Iy,ylt,FV,yc,_Et,Sw,tu,xlt,klt,kO,Db,Aw,Mx,CEt,Dx,EO,Oy,c1,Uh,Elt,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;for(n=gi(this.a,0);n.b!=n.d.c;)e=u(di(n),188),o+=(e.b&&e.c?c $ (e.b)+"->"+c $ (e.c):"e_"+ns(e))+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;return o};var  $ 4n=N(RC,"TGraph",135);M(633,502,{3:1,502:1,633:1,94:1,134:1}),N(RC,"TShape",633),M(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},oit),l.Ib=function(){return c $ (this)};var z4n=N(RC,"TNode",86);M(255,1,r0,Sp),l.Jc=function(e){Oa(this,e)},l.Kc=function(){var e;return e=gi(this.a.d,0),new p6(e)},N(RC,"TNode/2",255),M(358,1,va,p6),l.Nb=function(e){Da(this,e)},l.Pb=function(){return u(di(this.a),188).c},l.Ob=function(){return gR(this.a)},l.Qb=function(){P $ (this.a)},N(RC,"TNode/2/1",358),M(1840,1,ys,JUt),l.pf=function(e,n){Zvn(this,u(e,135),n)},N(yx,"FanProcessor",1840),M(327,22,{3:1,35:1,22:1,327:1,234:1},YT),l.Kf=function(){switch(this.g){case 0:return new jzt;case 1:return new JUt;case 2:return new X5;case 3:return new OQ;case 4:return new PQ;case 5:return new OL;default:throw et(new Bn(Tot+(this.f!=null?this.f:""+this.g)))}};var cht,uht,lht,hht,fht,lG,sme=Xr(yx,G6t,327,ti,Cin,BQe),ame;M(1843,1,ys,OQ),l.pf=function(e,n){Ngn(this,u(e,135),n)},l.a=0,N(yx,"LevelHeightProcessor",1843),M(1844,1,r0,NQ),l.Jc=function(e){Oa(this,e)},l.Kc=function(){return pn(),r8(),Z7},N(yx,"LevelHeightProcessor/1",1844),M(1841,1,ys,X5),l.pf=function(e,n){zdn(this,u(e,135),n)},l.a=0,N(yx,"NeighborsProcessor",1841),M(1842,1,r0,IF),l.Jc=function(e){Oa(this,e)},l.Kc=function(){return pn(),r8(),Z7},N(yx,"NeighborsProcessor/1",1842),M(1845,1,ys,PQ),l.pf=function(e,n){Ogn(this,u(e,135),n)},l.a=0,N(yx,"NodePositionProcessor",1845),M(1839,1,ys,jzt),l.pf=function(e,n){smn(this,u(e,135))},N(yx,"RootProcessor",1839),M(1846,1,ys,OL),l.pf=function(e,n){gcn(u(e,135))},N(yx,"Untreeifyer",1846);var FO,IS,ome,dht,hG,OS,ght,fG,dG,k9,NS,gG,Wg,S_t,cme,pht,Gy,bht,A_t;M(851,1,jh,L3),l.Qe=function(e){an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,lkt),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),M_t),(Bg(),ks)),B_t),on((n1(),Un))))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,hkt),""),"Search Order"),"Which search order to use when computing a spanning tree."),L_t),ks),j_t),on(Un)))),ole((new KL,e))};var ume,L_t,lme,M_t;N(iH,"MrTreeMetaDataProvider",851),M(994,1,jh,KL),l.Qe=function(e){ole(e)};var hme,D_t,fme,dme,gme,pme,I_t,bme,O_t,vme,pG,N_t,wme,P_t,mme;N(iH,"MrTreeOptions",994),M(995,1,{},FQ),l. $ e=function(){var e;return e=new tWt,e},l._e=function(e){},N(iH,"MrTreeOptions/MrtreeFactory",995),M(480,22,{3:1,35:1,22:1,480:1},p2t);var vht,F_t,B_t=Xr(iH,"OrderWeighting",480,ti,yen,RQe),yme;M(425,22,{3:1,35:1,22:1,425:1},b2t);var R_t,wht,j_t=Xr(iH,"TreeifyingOrder",425,ti,men, $ Qe),xme;M(1459,1,Qc,WL),l.Yf=function(e){return u(e,135),kme},l.pf=function(e,n){dan(this,u(e,135),n)};var kme;N("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),M(1460,1,Qc,RJ),l.Yf=function(e){return u(e,135),Eme},l.pf=function(e,n){Qdn(this,u(e,135),n)};var Eme;N("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),M(1461,1,Qc,BJ),l.Yf=function(e){return u(e,135),Tme},l.pf=function(e,n){gbn(this,u(e,135),n)},l.a=0;var Tme;N("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),M(1462,1,Qc,CB),l.Yf=function(e){return u(e,135),_me},l.pf=function(e,n){ $ hn(u(e,135),n)};var _me;N("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462);var PS;M(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},v2t),l.Kf=function(){return dre(this)},l.Xf=function(){return dre(this)};var bG,E9, $ _t=Xr(fkt,"RadialLayoutPhases",495,ti,xen,jQe),Cme;M(1131,209,xb,Oqt),l.Ze=function(e,n){var r,s,o,h,d,w;if(r=bae(this,e),Ar(n,"Radial layout",r.c.length),Re(Be(ze(e,(iy(),X_t))))||e $ ((s=new fr((Lm(),new _m(e))),s)),w=r1n(e),Mo(e,(h_(),PS),w),!w)throw et(new Bn("The given graph is not a tree!"));for(o=Xt(xe(ze(e,mG))),o==0&&(o=Mae(e)),Mo(e,mG,o),d=new S(bae(this,e));d.a<d.c.c.length;)h=u(Q(d),51),h.pf(e,Kc(n,1));br(n)},N(fkt,"RadialLayoutProvider",1131),M(549,1,Ui,pR),l.ue=function(e,n){return Lbn(this.a,this.b,u(e,33),u(n,33))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},l.a=0,l.b=0,N(fkt,"RadialUtil/lambda $ 0 $ Type",549),M(1375,1,ys,RQ),l.pf=function(e,n){Kmn(u(e,33),n)},N(qfe,"CalculateGraphSize",1375),M(442,22,{3:1,35:1,22:1,442:1,234:1},ket),l.Kf=functi
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),o.length!=2)throw et(new Bn("Exactly two numbers are expected, "+o.length+" were found."));try{this.a=cy(oy(o[0])),this.b=cy(oy(o[1]))}catch(h){throw h=os(h),Et(h,127)?(r=h,et(new Bn(afe+r))):et(h)}},l.Ib=function(){return"("+this.a+","+this.b+")"},l.a=0,l.b=0;var sa=N(qI,"KVector",8);M(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},Hu,fR,kUt),l.Pc=function(){return Con(this)},l.Jf=function(e){var n,r,s,o,h,d;s=dy(e, ` , | ; | \ \ ( | \ \ ) | \ \ [ | \ \ ] | \ \ { | \ \ } |  | 	|  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),Nh(this);try{for(r=0,h=0,o=0,d=0;r<s.length;)s[r]!=null&&oy(s[r]).length>0&&(h%2==0?o=cy(s[r]):d=cy(s[r]),h>0&&h%2!=0&&pi(this,new je(o,d)),++h),++r}catch(w){throw w=os(w),Et(w,127)?(n=w,et(new Bn("The given string does not match the expected format for vectors."+n))):et(w)}},l.Ib=function(){var e,n,r;for(e=new jl("("),n=gi(this,0);n.b!=n.d.c;)r=u(di(n),8),ni(e,r.a+","+r.b),n.b!=n.d.c&&(e.a+="; ");return(e.a+=")",e).a};var YCt=N(qI,"KVectorChain",74);M(248,22,{3:1,35:1,22:1,248:1},XT);var jht,CG,SG, $ O,zO,AG,XCt=Xr(zh,"Alignment",248,ti,yin,rZe),Gye;M(979,1,jh,zJ),l.Qe=function(e){nue(e)};var QCt, $ ht,Uye,ZCt,JCt,Wye,tSt,Kye,Yye,eSt,nSt,Xye;N(zh,"BoxLayouterOptions",979),M(980,1,{},wZ),l. $ e=function(){var e;return e=new TZ,e},l._e=function(e){},N(zh,"BoxLayouterOptions/BoxFactory",980),M(291,22,{3:1,35:1,22:1,291:1},QT);var qO,zht,HO,VO,GO,qht,Hht=Xr(zh,"ContentAlignment",291,ti,min,iZe),Qye;M(684,1,jh,kp),l.Qe=function(e){an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ve,e1e),""),"Layout Algorithm"),"Select a specific layout algorithm."),(Bg(),T9)),Me),on((n1(),Un))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ve,n1e),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),X1),V4n),on(Un)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,qxt),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),rSt),ks),XCt),on(fa)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ve,px),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),Uo),ka),on(Un)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ve,Fkt),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),X1),YCt),on(Bd)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,tH),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),sSt),Rx),Hht),on(Un)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,KI),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Rn(),!1)),qa),Zs),on(Un)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,Gxt),""),_6t),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),aSt),ks),qS),on(Un)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,UI),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),uSt),ks),nft),on(Un)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,aH),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),qa),Zs),on(Un)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,Jq),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to  ` INCLUDE _CHILDREN `  will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to  ` SEPARATE _CHILDREN ` . In general,  ` SEPARATE _CHILDREN `  will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to  ` INHERIT `  (or not set at all), the default behavior is  ` SEPARATE _CHILDREN ` ."),dSt),ks),ZSt),Zi(Un,ct(ot(Yg,1),se,175,0,[fa]))))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ve,pw),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output op
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Consider  installing  the  package  or  pass  your  own  'workerFactory'  to  ELK ' s  constructor .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								...  Falling  back  to  non - web  worker  version . ` );if(!R.workerFactory){var it=f("./elk-worker.min.js"),nt=it.Worker;R.workerFactory=function(st){return new nt(st)}}return b(this,(B.__proto__||Object.getPrototypeOf(B)).call(this,R))}return B}(C);Object.defineProperty(p.exports,"__esModule",{value:!0}),p.exports=D,D.default=D},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(f,p,v){p.exports=Worker},{}]},{},[3])(3)})})(jRt);var uGe=jRt.exports;const lGe=B9(uGe), $ Rt=new lGe;let rv={};const hGe={};let F5={};const fGe=async function(i,a,f,p,v,m,b){const C=f.select( ` [ id = "${a}" ] ` ).insert("g").attr("class","nodes"),D=Object.keys(i);return await Promise.all(D.map(async function(P){const B=i[P];let j="default";B.classes.length>0&&(j=B.classes.join(" ")),j=j+" flowchart-label";const R=Qw(B.styles);let H=B.text!==void 0?B.text:B.id;const Y={width:0,height:0},it=[{id:B.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:B.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:B.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:B.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let nt=0,st="",pt={};switch(B.type){case"round":nt=5,st="rect";break;case"square":st="rect";break;case"diamond":st="question",pt={portConstraints:"FIXED_SIDE"};break;case"hexagon":st="hexagon";break;case"odd":st="rect_left_inv_arrow";break;case"lean_right":st="lean_right";break;case"lean_left":st="lean_left";break;case"trapezoid":st="trapezoid";break;case"inv_trapezoid":st="inv_trapezoid";break;case"odd_right":st="rect_left_inv_arrow";break;case"circle":st="circle";break;case"ellipse":st="ellipse";break;case"stadium":st="stadium";break;case"subroutine":st="subroutine";break;case"cylinder":st="cylinder";break;case"group":st="rect";break;case"doublecircle":st="doublecircle";break;default:st="rect"}const Tt={labelStyle:R.labelStyle,shape:st,labelText:H,labelType:B.labelType,rx:nt,ry:nt,class:j,style:R.style,id:B.id,link:B.link,linkTarget:B.linkTarget,tooltip:v.db.getTooltip(B.id)||"",domId:v.db.lookUpDomId(B.id),haveCallback:B.haveCallback,width:B.type==="group"?500:void 0,dir:B.dir,type:B.type,props:B.props,padding:Oe().flowchart.padding};let kt,yt;if(Tt.type!=="group")yt=await KFt(C,Tt,B.dir),kt=yt.node().getBBox();else{p.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:mt,bbox:rt}=await Rd(C,Tt,void 0,!0);Y.width=rt.width,Y.wrappingWidth=Oe().flowchart.wrappingWidth,Y.height=rt.height,Y.labelNode=mt.node(),Tt.labelData=Y}const ht={id:B.id,ports:B.type==="diamond"?it:[],layoutOptions:pt,labelText:H,labelData:Y,domId:v.db.lookUpDomId(B.id),width:kt==null?void 0:kt.width,height:kt==null?void 0:kt.height,type:B.type,el:yt,parent:m.parentById[B.id]};F5[Tt.id]=ht})),b},zRt=(i,a,f)=>{const p={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return p.TD=p.TB,zt.info("abc88",f,a,i),p[f][a][i]},qRt=(i,a,f)=>{if(zt.info("getNextPort abc88",{node:i,edgeDirection:a,graphDirection:f}),!rv[i])switch(f){case"TB":case"TD":rv[i]={inPosition:"north",outPosition:"south"};break;case"BT":rv[i]={inPosition:"south",outPosition:"north"};break;case"RL":rv[i]={inPosition:"east",outPosition:"west"};break;case"LR":rv[i]={inPosition:"west",outPosition:"east"};break}const p=a==="in"?rv[i].inPosition:rv[i].outPosition;return a==="in"?rv[i].inPosition=zRt(rv[i].inPosition,a,f):rv[i].outPosition=zRt(rv[i].outPosition,a,f),p},dGe=(i,a)=>{let f=i.start,p=i.end;const v=f,m=p,b=F5[f],E=F5[p];return!b||!E?{source:f,target:p}:(b.type==="diamond"&&(f= ` $ { f } - $ { qRt ( f , "out" , a ) } ` ),E.type==="diamond"&&(p= ` $ { p } - $ { qRt ( p , "in" , a ) } ` ),{source:f,target:p,sourceId:v,targetId:m})},gGe=function(i,a,f,p){zt.info("abc78 edges = ",i);const v=p.insert("g").attr("class","edgeLabels");let m={},b=a.db.getDirection(),E,C;if(i.defaultStyle!==void 0){const D=Qw(i.defaultStyle);E=D.style,C=D.labelStyle}return i.forEach(function(D){const P="L-"+D.start+"-"+D.end;m[P]===voi
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),D.style===void 0&&(H.style=H.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),H.labelStyle=H.labelStyle.replace("color:","fill:"),H.id=B,H.classes="flowchart-link "+j+" "+R;const nt=QFt(v,H),{source:st,target:pt,sourceId:Tt,targetId:kt}=dGe(D,b);zt.debug("abc78 source and target",st,pt),f.edges.push({id:"e"+D.start+D.end,sources:[st],targets:[pt],sourceId:Tt,targetId:kt,labelEl:nt,labels:[{width:H.width,height:H.height,orgWidth:H.width,orgHeight:H.height,text:H.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:H})}),f},pGe=function(i,a,f,p){let v="";switch(p&&(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,v=v.replace(/ \( /g," \\ ("),v=v.replace(/ \) /g," \\ )")),a.arrowTypeStart){case"arrow_cross":i.attr("marker-start","url("+v+"#"+f+"-crossStart)");break;case"arrow_point":i.attr("marker-start","url("+v+"#"+f+"-pointStart)");break;case"arrow_barb":i.attr("marker-start","url("+v+"#"+f+"-barbStart)");break;case"arrow_circle":i.attr("marker-start","url("+v+"#"+f+"-circleStart)");break;case"aggregation":i.attr("marker-start","url("+v+"#"+f+"-aggregationStart)");break;case"extension":i.attr("marker-start","url("+v+"#"+f+"-extensionStart)");break;case"composition":i.attr("marker-start","url("+v+"#"+f+"-compositionStart)");break;case"dependency":i.attr("marker-start","url("+v+"#"+f+"-dependencyStart)");break;case"lollipop":i.attr("marker-start","url("+v+"#"+f+"-lollipopStart)");break}switch(a.arrowTypeEnd){case"arrow_cross":i.attr("marker-end","url("+v+"#"+f+"-crossEnd)");break;case"arrow_point":i.attr("marker-end","url("+v+"#"+f+"-pointEnd)");break;case"arrow_barb":i.attr("marker-end","url("+v+"#"+f+"-barbEnd)");break;case"arrow_circle":i.attr("marker-end","url("+v+"#"+f+"-circleEnd)");break;case"aggregation":i.attr("marker-end","url("+v+"#"+f+"-aggregationEnd)");break;case"extension":i.attr("marker-end","url("+v+"#"+f+"-extensionEnd)");break;case"composition":i.attr("marker-end","url("+v+"#"+f+"-compositionEnd)");break;case"dependency":i.attr("marker-end","url("+v+"#"+f+"-dependencyEnd)");break;case"lollipop":i.attr("marker-end","url("+v+"#"+f+"-lollipopEnd)");break}},bGe=function(i,a){zt.info("Extracting classes"),a.db.clear("ver-2");try{return a.parse(i),a.db.getClasses()}catch{return{}}},vGe=function(i){const a={parentById:{},childrenById:{}},f=i.getSubGraphs();return zt.info("Subgraphs - ",f),f.forEach(function(p){p.nodes.forEach(function(v){a.parentById[v]=p.id,a.childrenById[p.id]===void 0&&(a.childrenById[p.id]=[]),a.childrenById[p.id].push(v)})}),f.forEach(function(p){p.id,a.parentById[p.id]!==void 0&&a.parentById[p.id]}),a},wGe=function(i,a,f){const p=cGe(i,a,f);if(p===void 0||p==="root")return{x:0,y:0};const v=F5[p].offset;return{x:v.posX,y:v.posY}},mGe=function(i,a,f,p,v){const m=wGe(a.sourceId,a.targetId,v),b=a.sections[0].startPoint,E=a.sections[0].endPoint,D=(a.sections[0].bendPoints?a.sections[0].bendPoints:[]).map(it=>[it.x+m.x,it.y+m.y]),P=[[b.x+m.x,b.y+m.y],...D,[E.x+m.x,E.y+m.y]],B=X9().curve(rg),j=i.insert("path").attr("d",B(P)).attr("class","path "+f.classes).attr("fill","none"),R=i.insert("g").attr("class","edgeLabel"),H=Mr(R.node().appendChild(a.labelEl)),Y=H.node().firstChild.getBoundingClientRect();H.attr("width",Y.width),H.attr("height",Y.height),R.attr("transform", ` translate ( $ { a . labels [ 0 ] . x + m . x } ,  $ { a . labels [ 0 ] . y + m . y } ) ` ),pGe(j,f,p.type,p.arrowMarkerAbsolute)},HRt=(i,a)=>{i.forEach(f=>{f.children||(f.children=[]);const p=a.childrenById[f.id];p&&p.forEach(v=>{f.children.push(F5[v])}),HRt(f.children,a)})},yGe=async function(i,a,f,p){var ht;p.db.clear(),F5={},rv={},p.db.setGen("gen-2"),p.parser.parse(i);const v=Mr("body").append("div").attr("style","height:400px").attr("id","cy");let m={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(zt.info("Drawing flowchart using v3 renderer", $ Rt),p.db.getDirection()){case"BT":m.l
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      . subgraph - lvl - $ { f }  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        fill :  $ { i [ ` surface ${ f } ` ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        stroke :  $ { i [ ` surfacePeer ${ f } ` ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    ` ;return a},EGe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:nMe,renderer:xGe,parser:vdt,styles:i=> ` . label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  span  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . label  text , span  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . node  rect , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  . label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . arrowheadPath  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . arrowheadColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgePath  . path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2.0 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - link  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . edgeLabel  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      opacity :  0.85 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . clusterBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . clusterBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  span  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  / *   . c l u s t e r   d i v   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  }  * / 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  div . mermaidTooltip  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    max - width :  200 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    padding :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  12 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    background :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border :  1 px  solid  $ { i . border2 } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border - radius :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    pointer - events :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    z - index :  100 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchartTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . subgraph  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width : 2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    rx : 3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .subgraph-lvl-1 {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   fill:#ccc;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   // stroke:black;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { kGe ( i ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var xgt=function(){var i=function(it,nt,st,pt){for(st=st||{},pt=it.length;pt--;st[it[pt]]=nt);return st},a=[1,2],f=[1,5],p=[6,9,11,17,18,20,22,23,26,27,28],v=[1,15],m=[1,16],b=[1,17],E=[1,18],C=[1,19],D=[1,23],P=[1,24],B=[1,27],j=[4,6,9,11,17,18,20,22,23,26,27,28],R={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31, $ accept:0, $ end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(nt,st,pt,Tt,kt,yt,ht){var mt=yt.length-1;switch(kt){case 1:return yt[mt-1];case 3:this. $ =[];break;case 4:yt[mt-1].push(yt[mt]),this. $ =yt[mt-1];break;case 5:case 6:this. $ =yt[mt];break;case 7:case 8:this. $ =[];break;case 11:Tt.getCommonDb().setDiagramTitle(yt[mt].substr(6)),this. $ =yt[mt].substr(6);break;case 12:this. $ =yt[mt].trim(),Tt.getCommonDb().setAccTitle(this. $ );break;case 13:case 14:this. $ =yt[mt].trim(),Tt.getCommonDb().setAccDescription(this. $ );break;case 15:Tt.addSection(yt[mt].substr(8)),this. $ =yt[mt].substr(8);break;case 19:Tt.addTask(yt[mt],0,""),this. $ =yt[mt];break;case 20:Tt.addEvent(yt[mt].substr(2)),this. $ =yt[mt];break;case 21:Tt.parseDirective("%%{","open_directive");break;case 22:Tt.parseDirective(yt[mt],"type_directive");break;case 23:yt[mt]=yt[mt].trim().replace(/'/g,'"'),Tt.parseDirective(yt[mt],"arg_directive");break;case 24:Tt.parseDirective("}%%","close_directive","timeline");break}},table:[{3:1,4:a,7:3,12:4,28:f},{1:[3]},i(p,[2,3],{5:6}),{3:7,4:a,7:3,12:4,28:f},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:v,18:m,20:b,22:E,23:C,24:20,25:21,26:D,27:P,28:f},{1:[2,2]},{14:25,15:[1,26],31:B},i([15,31],[2,22]),i(p,[2,8],{1:[2,1]}),i(p,[2,4]),{7:22,10:28,12:4,17:v,18:m,20:b,22:E,23:C,24:20,25:21,26:D,27:P,28:f},i(p,[2,6]),i(p,[2,7]),i(p,[2,11]),{19:[1,29]},{21:[1,30]},i(p,[2,14]),i(p,[2,15]),i(p,[2,16]),i(p,[2,17]),i(p,[2,18]),i(p,[2,19]),i(p,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},i(p,[2,5]),i(p,[2,12]),i(p,[2,13]),i(j,[2,9]),{14:34,31:B},{31:[2,23]},{11:[1,35]},i(j,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(nt,st){if(st.recoverable)this.trace(nt);else{var pt=new Error(nt);throw pt.hash=st,pt}},parse:function(nt){var st=this,pt=[0],Tt=[],kt=[null],yt=[],ht=this.table,mt="",rt=0,wt=0,gt=2,lt=1,_t=yt.slice.call(arguments,1),X=Object.create(this.lexer),Rt={yy:{}};for(var ft in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ft)&&(Rt.yy[ft]=this.yy[ft]);X.setInput(nt,Rt.yy),Rt.yy.lexer=X,Rt.yy.parser=this,typeof X.yylloc>"u"&&(X.yylloc={});var de=X.yylloc;yt.push(de);var J=X.options&&X.options.ranges;typeof Rt.yy.parseError=="function"?this.parseError=Rt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ae(){var Ee;return Ee=Tt.pop()||X.lex()||lt,typeof Ee!="number"&&(Ee instanceof Array&&(Tt=Ee,Ee=Tt.pop()),Ee=st.symbols_[Ee]||Ee),Ee}for(var Wt,It,Nt,me,Ue={},_n,_e,rr,Te;;){if(It=pt[pt.length-1],this.defaultActions[It]?Nt=this.defaultActions[It]:((Wt===null||typeof Wt>"u")&&(Wt=ae()),Nt=ht[It]&&ht[It][Wt]),typeof Nt>"u"||!Nt.length||!Nt[0]){var ne="";Te=[];for(_n in ht[It])this.terminals_[_n]&&_n>gt&&Te.push("'"+this.terminals_[_n]+"'");X.showPosition?ne="Parse error on line "+(rt+1)+ ` :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +X.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Te.join(", ")+", got '"+(this.terminals_[Wt]||Wt)+"'":ne="Parse error on line "+(rt+1)+": Unexpected "+(Wt==lt?"end of input":"'"+(this.terminals_[Wt]||Wt)+"'"),this.parseError(ne,{text:X.match,token:this.terminals_[Wt]||Wt,line:X.yylineno,loc:de,expected:Te})}if(Nt[0]instanceof Array&&Nt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+It+", token: "+Wt);switch(Nt[0]){case 1:pt.push(Wt),kt.push(X.yytext),yt.push(X.yylloc),pt.push(Nt[1]),Wt=null,wt=X.yyleng,mt=X.yytext,rt=X.yylineno,de=X.yylloc;break;case 2:if(_e=this.productions_[Nt[1]][1],Ue. $ =kt[kt.length-_e],Ue._ $ ={first_line:yt[yt.length-(_e||1)].first_line,last_line:yt[yt.length-1].last_line,first_column:yt[yt.length-(_e||1)].first_column,last_column:yt[yt.length-1].last_column},J&&(Ue._ $ .range=[yt[yt.length-(_e||1)].range[0],yt[yt.length-1].range[1]]),me=this.performAction.apply(Ue,[mt,wt,rt,Rt.yy,Nt[1],kt,yt].concat(_t)),typeof me<"u")return me;_e&&(pt=pt.slice(0,-1*_e*2),kt=kt.slice(0,-1*_e),yt=yt.slice(0,-1*_e)),pt.push(this.productions_[Nt[1]][0]),kt.push(Ue. $ ),yt.push(Ue._ $ ),rr=ht[pt[pt.length-2]][pt[pt.length-1]],pt.push(rr);break;case 3:return!0}}return!0}},H=function(){var it={EOF:1,parseError:function(st,pt){if(this.yy.parser)this.yy.parser.parseError(st,pt);else throw new Error(st)},setInput:function(nt,st){return this.yy=st||this.yy||{},this._input=nt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var nt=this._input[0];this.yytext+=nt,this.yyleng++,this.offset++,this.match+=nt,this.matched+=nt;var st=nt.match(/(?: \r \n ?| \n ).*/g);return st?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),nt},unput:function(nt){var st=nt.length,pt=nt.split(/(?: \r \n ?| \n )/g);this._input=nt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-st),this.offset-=st;var Tt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),pt.length-1&&(this.yylineno-=pt.length-1);var kt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:pt?(pt.length===Tt.length?this.yylloc.first_column:0)+Tt[Tt.length-pt.length].length-pt[0].length:this.yylloc.first_column-st},this.options.ranges&&(this.yylloc.range=[kt[0],kt[0]+this.yyleng-st]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(nt){this.unput(this.match.slice(nt))},pastInput:function(){var nt=this.matched.substr(0,this.matched.length-this.match.length);return(nt.length>20?"...":"")+nt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var nt=this.match;return nt.length<20&&(nt+=this._input.substr(0,20-nt.length)),(nt.substr(0,20)+(nt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var nt=this.pastInput(),st=new Array(nt.length+1).join("-");return nt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +st+"^"},test_match:function(nt,st){var pt,Tt,kt;if(this.options.backtrack_lexer&&(kt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(kt.yylloc.range=this.yylloc.range.slice(0))),Tt=nt[0].match(/(?: \r \n ?| \n ).*/g),Tt&&(this.yylineno+=Tt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Tt?Tt[Tt.length-1].length-Tt[Tt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+nt[0].length},this.yytext+=nt[0],this.match+=nt[0],this.matches=nt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(nt[0].length),this.matched+=nt[0],pt=this.performAction.call(this,this.yy,this,st,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),pt)return pt;if(this._backtrack){for(var yt in kt)this[yt]=kt[yt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var nt,st,pt,Tt;this._more||(this.yytext="",this.match="");for(var kt=this._currentRules(),yt=0;yt<kt.length;yt++)if(pt=this._input.match(this.rules[kt[yt]]),pt&&(!st||pt[0].length>st[0].length)){if(st=pt,Tt=yt,this.options.backtrack_lexer){if(nt=this.test_match(pt,kt[yt]),nt!==!1)return nt;if(this._backtrack){st=!1;continue}else return!1}else if(!this.options.flex)break}return st?(nt=this.test_match(st,kt[Tt]),nt!==!1?nt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var st=this.next();return st||this.lex()},begin:function(st){this.conditionStack.push(st)},popState:function(){var st=this.conditionStack.length-1;return st>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(st){return st=this.conditionStack.length-1-Math.abs(st||0),st>=0?this.conditionStack[st]:"INITIAL"},pushState:function(st){this.begin(st)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(st,pt,Tt,kt){switch(Tt){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:break;case 6:break;case 7:return 11;case 8:break;case 9:break;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:timeline \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:section \s [^#: \n ;]+)/i,/^(?:: \s [^#: \n ;]+)/i,/^(?:[^#: \n ;]+)/i,/^(?: $ )/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}};return it}();R.lexer=H;function Y(){this.yy={}}return Y.prototype=R,R.Parser=Y,new Y}();xgt.parser=xgt;const TGe=xgt;let pL="",GRt=0;const kgt=[],BK=[],bL=[],URt=()=>rIt,WRt=(i,a,f)=>{q1t(globalThis,i,a,f)},KRt=function(){kgt.length=0,BK.length=0,pL="",bL.length=0,ap()},YRt=function(i){pL=i,kgt.push(i)},XRt=function(){return kgt},QRt=function(){let i=ejt();const a=100;let f=0;for(;!i&&f<a;)i=ejt(),f++;return BK.push(...bL),BK},ZRt=function(i,a,f){const p={id:GRt++,section:pL,type:pL,task:i,score:a||0,events:f?[f]:[]};bL.push(p)},JRt=function(i){bL.find(f=>f.id===GRt-1).events.push(i)},tjt=function(i){const a={section:pL,type:pL,description:i,task:i,classes:[]};BK.push(a)},ejt=function(){const i=function(f){return bL[f].processed};let a=!0;for(const[f,p]of bL.entries())i(f),a=a&&p.processed;return a},_Ge=Object.freeze(Object.defineProperty({__proto__:null,addEvent:JRt,addSection:YRt,addTask:ZRt,addTaskOrg:tjt,clear:KRt,default:{clear:KRt,getCommonDb:URt,addSection:YRt,getSections:XRt,getTasks:QRt,addTask:ZRt,addTaskOrg:tjt,addEvent:JRt,parseDirective:WRt},getCommonDb:URt,getSections:XRt,getTasks:QRt,parseDirective:WRt},Symbol.toStringTag,{value:"Module"})),CGe=12,RK=function(i,a){const f=i.append("rect");return f.attr("x",a.x),f.attr("y",a.y),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("width",a.width),f.attr("height",a.height),f.attr("rx",a.rx),f.attr("ry",a.ry),a.class!==void 0&&f.attr("class",a.class),f},SGe=function(i,a){const p=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),v=i.append("g");v.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),v.append("circle").a
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),zt.debug("timeline",p.db);const b=v.securityLevel;let E;b==="sandbox"&&(E=Mr("#i"+a));const D=Mr(b==="sandbox"?E.nodes()[0].contentDocument.body:"body").select("#"+a);D.append("g");const P=p.db.getTasks(),B=p.db.getCommonDb().getDiagramTitle();zt.debug("task",P),kE.initGraphics(D);const j=p.db.getSections();zt.debug("sections",j);let R=0,H=0,Y=0,it=0,nt=50+m,st=50;it=50;let pt=0,Tt=!0;j.forEach(function(_t){const X={number:pt,descr:_t,section:pt,width:150,padding:20,maxHeight:R},Rt=kE.getVirtualNodeHeight(D,X,v);zt.debug("sectionHeight before draw",Rt),R=Math.max(R,Rt+20)});let kt=0,yt=0;zt.debug("tasks.length",P.length);for(const[_t,X]of P.entries()){const Rt={number:_t,descr:X,section:X.section,width:150,padding:20,maxHeight:H},ft=kE.getVirtualNodeHeight(D,Rt,v);zt.debug("taskHeight before draw",ft),H=Math.max(H,ft+20),kt=Math.max(kt,X.events.length);let de=0;for(let J=0;J<X.events.length;J++){const Wt={descr:X.events[J],section:X.section,number:X.section,width:150,padding:20,maxHeight:50};de+=kE.getVirtualNodeHeight(D,Wt,v)}yt=Math.max(yt,de)}zt.debug("maxSectionHeight before draw",R),zt.debug("maxTaskHeight before draw",H),j&&j.length>0?j.forEach(_t=>{const X=P.filter(J=>J.section===_t),Rt={number:pt,descr:_t,section:pt,width:200*Math.max(X.length,1)-50,padding:20,maxHeight:R};zt.debug("sectionNode",Rt);const ft=D.append("g"),de=kE.drawNode(ft,Rt,pt,v);zt.debug("sectionNode output",de),ft.attr("transform", ` translate ( $ { nt } ,  $ { it } ) ` ),st+=R+50,X.length>0&&ajt(D,X,pt,nt,st,H,v,kt,yt,R,!1),nt+=200*Math.max(X.length,1),st=it,pt++}):(Tt=!1,ajt(D,P,pt,nt,st,H,v,kt,yt,R,!0));const ht=D.node().getBBox();zt.debug("bounds",ht),B&&D.append("text").text(B).attr("x",ht.width/2-m).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),Y=Tt?R+H+150:H+100,D.append("g").attr("class","lineWrapper").append("line").attr("x1",m).attr("y1",Y).attr("x2",ht.width+3*m).attr("y2",Y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),J9(void 0,D,((gt=v.timeline)==null?void 0:gt.padding)??50,((lt=v.timeline)==null?void 0:lt.useMaxWidth)??!1)},ajt=function(i,a,f,p,v,m,b,E,C,D,P){var B;for(const j of a){const R={descr:j.task,section:f,number:f,width:150,padding:20,maxHeight:m};zt.debug("taskNode",R);const H=i.append("g").attr("class","taskWrapper"),it=kE.drawNode(H,R,f,b).height;if(zt.debug("taskHeight after draw",it),H.attr("transform", ` translate ( $ { p } ,  $ { v } ) ` ),m=Math.max(m,it),j.events){const nt=i.append("g").attr("class","lineWrapper");let st=m;v+=100,st=st+jGe(i,j.events,f,p,v,b),v-=100,nt.append("line").attr("x1",p+190/2).attr("y1",v+m).attr("x2",p+190/2).attr("y2",v+m+(P?m:D)+C+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}p=p+200,P&&!((B=b.timeline)!=null&&B.disableMulticolor)&&f++}v=v-10},jGe=function(i,a,f,p,v,m){let b=0;const E=v;v=v+100;for(const C of a){const D={descr:C,section:f,number:f,width:150,padding:20,maxHeight:50};zt.debug("eventNode",D);const P=i.append("g").attr("class","eventWrapper"),j=kE.drawNode(P,D,f,m).height;b=b+j,P.attr("transform", ` translate ( $ { p } ,  $ { v } ) ` ),v=v+10+j}return v=E,b}, $ Ge={setConf:()=>{},draw:RGe},zGe=i=>{let a="";for(let f=0;f<i.THEME_COLOR_LIMIT;f++)i["lineColor"+f]=i["lineColor"+f]||i["cScaleInv"+f],Q9(i["lineColor"+f])?i["lineColor"+f]=Ds(i["lineColor"+f],20):i["lineColor"+f]=ta(i["lineColor"+f],20);for(let f=0;f<i.THEME_COLOR_LIMIT;f++){const p=""+(17-3*f);a+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  rect ,  . section - $ { f - 1 }  path ,  . section - $ { f - 1 }  circle ,  . section - $ { f - 1 }  path   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								     fill :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . node - icon - $ { f - 1 }  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      font - size :  40 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      color :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - edge - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . edge - depth - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  $ { p } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  line  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScaleInv" + f ] }  ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . lineWrapper  line { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScaleLabel" + f ] }  ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled ,  . disabled  circle ,  . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  lightgray ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  # efefef ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    ` }return a},qGe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:_Ge,renderer: $ Ge,parser:TGe,styles:i=> ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  $ { zGe ( i ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  rect ,  . section - root  path ,  . section - root  circle   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . git0 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . gitBranchLabel0 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . icon - container  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    height : 100 % ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    display :  flex ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    justify - content :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    align - items :  center ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . eventWrapper   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								   filter :  brightness ( 120 % ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var Tgt=function(){var i=function(Tt,kt,yt,ht){for(yt=yt||{},ht=Tt.length;ht--;yt[Tt[ht]]=kt);return yt},a=[1,4],f=[1,13],p=[1,12],v=[1,15],m=[1,16],b=[1,20],E=[1,19],C=[6,7,8],D=[1,26],P=[1,24],B=[1,25],j=[6,7,11],R=[1,6,13,15,16,19,22],H=[1,33],Y=[1,34],it=[1,6,7,11,13,15,16,19,22],nt={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22, $ accept:0, $ end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(kt,yt,ht,mt,rt,wt,gt){var lt=wt.length-1;switch(rt){case 6:case 7:return mt;case 8:mt.getLogger().trace("Stop NL ");break;case 9:mt.getLogger().trace("Stop EOF ");break;case 11:mt.getLogger().trace("Stop NL2 ");break;case 12:mt.getLogger().trace("Stop EOF2 ");break;case 15:mt.getLogger().info("Node: ",wt[lt].id),mt.addNode(wt[lt-1].length,wt[lt].id,wt[lt].descr,wt[lt].type);break;case 16:mt.getLogger().trace("Icon: ",wt[lt]),mt.decorateNode({icon:wt[lt]});break;case 17:case 21:mt.decorateNode({class:wt[lt]});break;case 18:mt.getLogger().trace("SPACELIST");break;case 19:mt.getLogger().trace("Node: ",wt[lt].id),mt.addNode(0,wt[lt].id,wt[lt].descr,wt[lt].type);break;case 20:mt.decorateNode({icon:wt[lt]});break;case 25:mt.getLogger().trace("node found ..",wt[lt-2]),this. $ ={id:wt[lt-1],descr:wt[lt-1],type:mt.getType(wt[lt-2],wt[lt])};break;case 26:this. $ ={id:wt[lt],descr:wt[lt],type:mt.nodeType.DEFAULT};break;case 27:mt.getLogger().trace("node found ..",wt[lt-3]),this. $ ={id:wt[lt-3],descr:wt[lt-1],type:mt.getType(wt[lt-2],wt[lt])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:a},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:a},{6:f,7:[1,10],9:9,12:11,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},i(C,[2,3]),{1:[2,2]},i(C,[2,4]),i(C,[2,5]),{1:[2,6],6:f,12:21,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},{6:f,9:22,12:11,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},{6:D,7:P,10:23,11:B},i(j,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:b,22:E}),i(j,[2,18]),i(j,[2,19]),i(j,[2,20]),i(j,[2,21]),i(j,[2,23]),i(j,[2,24]),i(j,[2,26],{19:[1,30]}),{20:[1,31]},{6:D,7:P,10:32,11:B},{1:[2,7],6:f,12:21,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},i(R,[2,14],{7:H,11:Y}),i(it,[2,8]),i(it,[2,9]),i(it,[2,10]),i(j,[2,15]),i(j,[2,16]),i(j,[2,17]),{20:[1,35]},{21:[1,36]},i(R,[2,13],{7:H,11:Y}),i(it,[2,11]),i(it,[2,12]),{21:[1,37]},i(j,[2,25]),i(j,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(kt,yt){if(yt.recoverable)this.trace(kt);else{var ht=new Error(kt);throw ht.hash=yt,ht}},parse:function(kt){var yt=this,ht=[0],mt=[],rt=[null],wt=[],gt=this.table,lt="",_t=0,X=0,Rt=2,ft=1,de=wt.slice.call(arguments,1),J=Object.create(this.lexer),ae={yy:{}};for(var Wt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Wt)&&(ae.yy[Wt]=this.yy[Wt]);J.setInput(kt,ae.yy),ae.yy.lexer=J,ae.yy.parser=this,typeof J.yylloc>"u"&&(J.yylloc={});var It=J.yylloc;wt.push(It);var Nt=J.options&&J.options.ranges;typeof ae.yy.parseError=="function"?this.parseError=ae.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var Gt;return Gt=mt.pop()||J.lex()||ft,typeof Gt!="number"&&(Gt instanceof Array&&(mt=Gt,Gt=mt.pop()),Gt=yt.symbols_[Gt]||Gt),Gt}for(var Ue,_n,_e,rr,Te={},ne,Ee,ye,Vt;;){if(_n=ht[ht.length-1],this.defaultActions[_n]?_e=this.defaultActions[_n]:((Ue===null||typeof Ue>"u")&&(Ue=me()),_e=gt[_n]&>[_n][Ue]),typeof _e>"u"||!_e.length||!_e[0]){var Ae="";Vt=[];for(ne in gt[_n])this.terminals_[ne]&&ne>Rt&&Vt.push("'"+this.terminals_[ne]+"'");J.showPosition?Ae="Parse error on line "+(_t+1)+ ` :  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` +J.showPosition()+ `  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Vt.join(", ")+", got '"+(this.terminals_[Ue]||Ue)+"'":Ae="Parse error on line "+(_t+1)+": Unexpected "+(Ue==ft?"end of input":"'"+(this.terminals_[Ue]||Ue)+"'"),this.parseError(Ae,{text:J.match,token:this.terminals_[Ue]||Ue,line:J.yylineno,loc:It,expected:Vt})}if(_e[0]instanceof Array&&_e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_n+", token: "+Ue);switch(_e[0]){case 1:ht.push(Ue),rt.push(J.yytext),wt.push(J.yylloc),ht.push(_e[1]),Ue=null,X=J.yyleng,lt=J.yytext,_t=J.yylineno,It=J.yylloc;break;case 2:if(Ee=this.productions_[_e[1]][1],Te. $ =rt[rt.length-Ee],Te._ $ ={first_line:wt[wt.length-(Ee||1)].first_line,last_line:wt[wt.length-1].last_line,first_column:wt[wt.length-(Ee||1)].first_column,last_column:wt[wt.length-1].last_column},Nt&&(Te._ $ .range=[wt[wt.length-(Ee||1)].range[0],wt[wt.length-1].range[1]]),rr=this.performAction.apply(Te,[lt,X,_t,ae.yy,_e[1],rt,wt].concat(de)),typeof rr<"u")return rr;Ee&&(ht=ht.slice(0,-1*Ee*2),rt=rt.slice(0,-1*Ee),wt=wt.slice(0,-1*Ee)),ht.push(this.productions_[_e[1]][0]),rt.push(Te. $ ),wt.push(Te._ $ ),ye=gt[ht[ht.length-2]][ht[ht.length-1]],ht.push(ye);break;case 3:return!0}}return!0}},st=function(){var Tt={EOF:1,parseError:function(yt,ht){if(this.yy.parser)this.yy.parser.parseError(yt,ht);else throw new Error(yt)},setInput:function(kt,yt){return this.yy=yt||this.yy||{},this._input=kt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var kt=this._input[0];this.yytext+=kt,this.yyleng++,this.offset++,this.match+=kt,this.matched+=kt;var yt=kt.match(/(?: \r \n ?| \n ).*/g);return yt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),kt},unput:function(kt){var yt=kt.length,ht=kt.split(/(?: \r \n ?| \n )/g);this._input=kt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-yt),this.offset-=yt;var mt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ht.length-1&&(this.yylineno-=ht.length-1);var rt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ht?(ht.length===mt.length?this.yylloc.first_column:0)+mt[mt.length-ht.length].length-ht[0].length:this.yylloc.first_column-yt},this.options.ranges&&(this.yylloc.range=[rt[0],rt[0]+this.yyleng-yt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(kt){this.unput(this.match.slice(kt))},pastInput:function(){var kt=this.matched.substr(0,this.matched.length-this.match.length);return(kt.length>20?"...":"")+kt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var kt=this.match;return kt.length<20&&(kt+=this._input.substr(0,20-kt.length)),(kt.substr(0,20)+(kt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var kt=this.pastInput(),yt=new Array(kt.length+1).join("-");return kt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +yt+"^"},test_match:function(kt,yt){var ht,mt,rt;if(this.options.backtrack_lexer&&(rt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(rt.yylloc.range=this.yylloc.range.slice(0))),mt=kt[0].match(/(?: \r \n ?| \n ).*/g),mt&&(this.yylineno+=mt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:mt?mt[mt.length-1].length-mt[mt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+kt[0].length},this.yytext+=kt[0],this.match+=kt[0],this.matches=kt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(kt[0].length),this.matched+=kt[0],ht=this.performAction.call(this,this.yy,this,yt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ht)return ht;if(this._backtrack){for(var wt in rt)this[wt]=rt[wt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var kt,yt,ht,mt;this._more||(this.yytext="",this.match="");for(var rt=this._currentRules(),wt=0;wt<rt.length;wt++)if(ht=this._input.match(this.rules[rt[wt]]),ht&&(!yt||ht[0].length>yt[0].length)){if(yt=ht,mt=wt,this.options.backtrack_lexer){if(kt=this.test_match(ht,rt[wt]),kt!==!1)return kt;if(this._backtrack){yt=!1;continue}else return!1}else if(!this.options.flex)break}return yt?(kt=this.test_match(yt,rt[mt]),kt!==!1?kt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var yt=this.next();return yt||this.lex()},begin:function(yt){this.conditionStack.push(yt)},popState:function(){var yt=this.conditionStack.length-1;return yt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(yt){return yt=this.conditionStack.length-1-Math.abs(yt||0),yt>=0?this.conditionStack[yt]:"INITIAL"},pushState:function(yt){this.begin(yt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yt,ht,mt,rt){switch(mt){case 0:return yt.getLogger().trace("Found comment",ht.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:yt.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return yt.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:yt.getLogger().trace("end icon"),this.popState();break;case 10:return yt.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return yt.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return yt.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return yt.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:yt.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return yt.getLogger().trace("description:",ht.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),yt.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),yt.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),yt.getLogger().trace("node end ...",ht.yytext),"NODE_DEND";case 30:return this.popState(),yt.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),yt.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),yt.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),yt.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),yt.getLogger().trace("node end (("),"NODE_DEND";case 35:return yt.getLogger().trace("Long description:",ht.yytext),20;case 36:return yt.getLogger().trace("Long description:",ht.yytext),20}},rules:[/^(?: \s *%%.*)/i,/^(?:mindmap \b )/i,/^(?::::)/i,/^(?:.+)/i,/^(?: \n )/i,/^(?:::icon \( )/i,/^(?:[ \s ]+[ \n ])/i,/^(?:[ \n ]+)/i,/^(?:[^ \) ]+)/i,/^(?: \) )/i,/^(?:- \) )/i,/^(?: \( -)/i,/^(?: \) \) )/i,/^(?: \) )/i,/^(?: \( \( )/i,/^(?: \{ \{ )/i,/^(?: \( )/i,/^(?: \[ )/i,/^(?:[ \s ]+)/i,/^(?:[^ \( \[ \n \- \) \{ \} ]+)/i,/^(?: $ )/i,/^(?:["][ ` ] ) / i , /^(?:[^`"]+)/i , /^(?:[`]["])/i , /^(?:["])/i , /^(?:[^"]+)/i , /^(?:["])/i , /^(?:[\)]\))/i , /^(?:[\)])/i , /^(?:[\]])/i , /^(?:\}\})/i , /^(?:\(-)/i , /^(?:-\))/i , /^(?:\(\()/i , /^(?:\()/i , /^(?:[^\)\]\(\}]+)/i , /^(?:.+(?!\(\())/i ] , conditions : { CLASS : { rules : [ 3 , 4 ] , inclusive : ! 1 } , ICON : { rules : [ 8 , 9 ] , inclusive : ! 1 } , NSTR2 : { rules : [ 22 , 23 ] , inclusive : ! 1 } , NSTR : { rules : [ 25 , 26 ] , inclusive : ! 1 } , NODE : { rules : [ 21 , 24 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 ] , inclusive : ! 1 } , INITIAL : { rules : [ 0 , 1 , 2 , 5 , 6 , 7 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 ] , inclusive : ! 0 } } } ; return  Tt } ( ) ; nt . lexer = st ; function  pt ( ) { this . yy = { } } return  pt . prototype = nt , nt . Parser = pt , new  pt } ( ) ; Tgt . parser = Tgt ; const  HGe = Tgt , jP = i => sg ( i , Oe ( ) ) ; let  iv = [ ] , ojt = 0 , _gt = { } ; const  VGe = ( ) => { iv = [ ] , ojt = 0 , _gt = { } } , GGe = function ( i ) { for ( let  a = iv . length - 1 ; a >= 0 ; a -- ) if ( iv [ a ] . level < i ) return  iv [ a ] ; return  null } , UGe = ( ) => iv . length > 0 ? iv [ 0 ] : null , WGe = ( i , a , f , p ) => { zt . info ( "addNode" , i , a , f , p ) ; const  v = Oe ( ) , m = { id : ojt ++ , nodeId : jP ( a ) , level : i , descr : jP ( f ) , type : p , children : [ ] , width : Oe ( ) . mindmap . maxNodeWidth } ; switch ( m . type ) { case  nl . ROUNDED _RECT : m . padding = 2 * v . mindmap . padding ; break ; case  nl .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { b } , $ { b }  1  0 , 1  $ { f * . 4 } , $ { - 1 * f * . 1 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { m } , $ { m }  1  0 , 1  $ { f * . 35 } , $ { 1 * f * . 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 1  $ { f * . 15 } , $ { 1 * p * . 35 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { E } , $ { E }  1  0 , 1  $ { - 1 * f * . 15 } , $ { 1 * p * . 65 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { m } , $ { v }  1  0 , 1  $ { - 1 * f * . 25 } , $ { f * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { b } , $ { b }  1  0 , 1  $ { - 1 * f * . 5 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 1  $ { - 1 * f * . 25 } , $ { - 1 * f * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 1  $ { - 1 * f * . 1 } , $ { - 1 * p * . 35 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { E } , $ { E }  1  0 , 1  $ { f * . 1 } , $ { - 1 * p * . 65 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    H0  V0  Z ` )},rUe=function(i,a){const f=a.width,p=a.height,v=.15*f;i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+EE(a.type)).attr("d", ` M0  0  a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , $ { - 1 * p * . 1 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , $ { 1 * p * . 1 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 15 } , $ { 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v * . 8 } , $ { v * . 8 }  1  0 , 0  0 , $ { 1 * p * . 34 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 15 } , $ { 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , $ { p * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , $ { - 1 * p * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 1 } , $ { - 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v * . 8 } , $ { v * . 8 }  1  0 , 0  0 , $ { - 1 * p * . 34 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 1 } , $ { - 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    H0  V0  Z ` )},iUe=function(i,a){i.append("circle").attr("id","node-"+a.id).attr("class","node-bkg node-"+EE(a.type)).attr("r",a.width/2)};function sUe(i,a,f,p,v){return i.insert("polygon",":first-child").attr("points",p.map(function(m){return m.x+","+m.y}).join(" ")).attr("transform","translate("+(v.width-a)/2+", "+f+")")}const aUe=function(i,a){const f=a.height,v=f/4,m=a.width-a.padding+2*v,b=[{x:v,y:0},{x:m-v,y:0},{x:m,y:-f/2},{x:m-v,y:-f},{x:v,y:-f},{x:0,y:-f/2}];sUe(i,m,f,b,a)},oUe=function(i,a){i.append("rect").attr("id","node-"+a.id).attr("class","node-bkg node-"+EE(a.type)).attr("height",a.height).attr("rx",a.padding).attr("ry",a.padding).attr("width",a.width)},hjt={drawNode:function(i,a,f,p){const v=p.htmlLabels,m=f%(ljt-1),b=i.append("g");a.section=m;let E="section-"+m;m<0&&(E+=" section-root"),b.attr("class",(a.class?a.class+" ":"")+"mindmap-node "+E);const C=b.append("g"),D=b.append("g"),P=a.descr.replace(/(<br \/ *>)/g, ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );oK(D,P,{useHtmlLabels:v,width:a.width,classes:"mindmap-node-label"}),v||D.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const B=D.node().getBBox(),j=p.fontSize.replace?p.fontSize.replace("px",""):p.fontSize;if(a.height=B.height+j*1.1*.5+a.padding,a.width=B.width+2*a.padding,a.icon)if(a.type===nl.CIRCLE)a.height+=50,a.width+=50,b.append("foreignObject").attr("height","50px").attr("width",a.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+m+" "+a.icon),D.attr("transform","translate("+a.width/2+", "+(a.height/2-1.5*a.padding)+")");else{a.width+=50;const R=a.height;a.height=Math.max(R,60);const H=Math.abs(a.height-R);b.append("foreignObject").attr("width","60px").attr("height",a.height).attr("style","text-align: center;margin-top:"+H/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+m+" "+a.icon),D.attr("transform","translate("+(25+a.width/2)+", "+(H/2+a.padding/2)+")")}else if(v){const R=(a.width-B.width)/2,H=(a.height-B.height)/2;D.attr("transform","translate("+R+", "+H+")")}else{const R=a.width/2,H=a.padding/2;D.attr("transform","translate("+R+", "+H+")")}switch(a.type){case nl.DEFAULT:tUe(C,a,m);break;case nl.ROUNDED_RECT:oUe(C,a);break;case nl.RECT:eUe(C,a);break;case nl.CIRCLE:C.attr("transform","translate("+a.width/2+", "+ +a.height/2+")"),iUe(C,a);break;case nl.CLOUD:nUe(C,a);break;case nl.BANG:rUe(C,a);break;case nl.HEXAGON:aUe(C,a);break}return cjt(a.id,b),a.height},positionNode:function(i){const a=Cgt(i.id),f=i.x||0,p=i.y||0;a.attr("transform","translate("+f+","+p+")")},drawEdge:function(a,f,p,v,m){const b=m%(ljt-1),E=p.x+p.width/2,C=p.y+p.height/2,D=f.x+f.width/2,P=f.y+f.height/2,B=D>E?E+Math.abs(E-D)/2:E-Math.abs(E-D)/2,j=P>C?C+Math.abs(C-P)/2:C-Math.abs(C-P)/2,R=D>E?Math.abs(E-B)/2+E:-Math.abs(E-B)/2+E,H=P>C?Math.abs(C-j)/2+C:-Math.abs(C-j)/2+C;a.append("path").attr("d",p.direction==="TB"||p.direction==="BT"? ` M$ { E } , $ { C }  Q$ { E } , $ { H }  $ { B } , $ { j }  T$ { D } , $ { P } ` : ` M$ { E } , $ { C }  Q$ { R } , $ { C }  $ { B } , $ { j }  T$ { D } , $ { P } ` ).attr("class","edge section-edge-"+b+" edge-depth-"+v)}};var fjt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(b0,function(){function f(y){return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},f(y)}function p(y,g){if(!(y instanceof g))throw new TypeError("Cannot call a class as a function")}function v(y,g){for(var x=0;x<g.length;x++){var T=g[x];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(y,T.key,T)}}function m(y,g,x){return g&&v(y.prototype,g),x&&v(y,x),Object.defineProperty(y,"prototype",{writable:!1}),y}function b(y,g,x){return g in y?Object.defineProperty(y,g,{value:x,enumerable:!0,configurable:!0,writable:!0}):y[g]=x,y}function E(y,g){return C(y)||D(y,g)||P(y,g)||j()}function C(y){if(Array.isArray(y))return y}function D(y,g){var x=y==null?null:typeof Symbol<"u"&&y[Symbol.iterator]||y["@@iterator"];if(x!=null){var T=[],A=!0,I=!1,O, $ ;try{for(x=x.call(y);!(A=(O=x.next()).done)&&(T.push(O.value),!(g&&T.length===g));A=!0);}catch(z){I=!0, $ =z}finally{try{!A&&x.return!=null&&x.return()}finally{if(I)throw  $ }}return T}}function P(y,g){if(y){if(typeof y=="string")return B(y,g);var x=Object.prototype.toString.call(y).slice(8,-1);if(x==="Object"&&y.constructor&&(x=y.constructor.name),x==="Map"||x==="Set")return Array.from(y);if(x==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array $ /.test(x))return B(y,g)}}function B(y,g){(g==null||g>y.length)&&(g=y.length);for(var x=0,T=new Array(g);x<g;x++)T[x]=y[x];return T}function j(){throw new TypeError( ` Invalid  attempt  to  destructure  non - iterable  instance .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								In  order  to  be  iterable ,  non - array  objects  must  have  a  [ Symbol . iterator ] ( )  method . ` )}var R=typeof window>"u"?null:window,H=R?R.navigator:null;R&&R.document;var Y=f(""),it=f({}),nt=f(function(){}),st=typeof HTMLElement>"u"?"undefined":f(HTMLElement),pt=function(g){return g&&g.instanceString&&kt(g.instanceString)?g.instanceString():null},Tt=function(g){return g!=null&&f(g)==Y},kt=function(g){return g!=null&&f(g)===nt},yt=function(g){return!lt(g)&&(Array.isArray?Array.isArray(g):g!=null&&g instanceof Array)},ht=function(g){return g!=null&&f(g)===it&&!yt(g)&&g.constructor===Object},mt=function(g){return g!=null&&f(g)===it},rt=function(g){return g!=null&&f(g)===f(1)&&!isNaN(g)},wt=function(g){return rt(g)&&Math.floor(g)===g},gt=function(g){if(st!=="undefined")return g!=null&&g instanceof HTMLElement},lt=function(g){return _t(g)||X(g)},_t=function(g){return pt(g)==="collection"&&g._private.single},X=function(g){return pt(g)==="collection"&&!g._private.single},Rt=function(g){return pt(g)==="core"},ft=function(g){return pt(g)==="stylesheet"},de=function(g){return pt(g)==="event"},J=function(g){return g==null?!0:!!(g===""||g.match(/^ \s + $ /))},ae=function(g){return typeof HTMLElement>"u"?!1:g instanceof HTMLElement},Wt=function(g){return ht(g)&&rt(g.x1)&&rt(g.x2)&&rt(g.y1)&&rt(g.y2)},It=function(g){return mt(g)&&kt(g.then)},Nt=function(){return H&&H.userAgent.match(/msie|trident|edge/i)},me=function(g,x){x||(x=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var I=[],O=0;O<arguments.length;O++)I.push(arguments[O]);return I.join(" $ ")});var T=function A(){var I=this,O=arguments, $ ,z=x.apply(I,O),S=A.cache;return( $ =S[z])||( $ =S[z]=g.apply(I,O)), $ };return T.cache={},T},Ue=me(function(y){return y.replace(/([A-Z])/g,function(g){return"-"+g.toLowerCase()})}),_n=me(function(y){return y.replace(/(- \w )/g,function(g){return g[1].toUpperCase()})}),_e=me(function(y,g){return y+g[0].toUpperCase()+g.substring(1)},function(y,g){return y+" $ "+g}),rr=function(g){return J(g)?g:g.charAt(0).toUpperCase()+g.substring(1)},Te="(?:[-+]?(?:(?: \\ d+| \\ d* \\ . \\ d+)(?:[Ee][+-]? \\ d+)?))",ne="rgb[a]? \\ (("+Te+"[%]?) \\ s*, \\ s*("+Te+"[%]?) \\ s*, \\ s*("+Te+"[%]?)(?: \\ s*, \\ s*("+Te+"))? \\ )",Ee="rgb[a]? \\ ((?:"+Te+"[%]?) \\ s*, \\ s*(?:"+Te+"[%]?) \\ s*, \\ s*(?:"+Te+"[%]?)(?: \\ s*, \\ s*(?:"+Te+"))? \\ )",ye="hsl[a]? \\ (("+Te+") \\ s*, \\ s*("+Te+"[%]) \\ s*, \\ s*("+Te+"[%])(?: \\ s*, \\ s*("+Te+"))? \\ )",Vt="hsl[a]? \\ ((?:"+Te+") \\ s*, \\ s*(?:"+Te+"[%]) \\ s*, \\ s*(?:"+Te+"[%])(?: \\ s*, \\ s*(?:"+Te+"))? \\ )",Ae=" \\ #[0-9a-fA-F]{3}",Gt=" \\ #[0-9a-fA-F]{6}",un=function(g,x){return g<x?-1:g>x?1:0},jt=function(g,x){return-1*un(g,x)},Ke=Object.assign!=null?Object.assign.bind(Object):function(y){for(var g=arguments,x=1;x<g.length;x++){var T=g[x];if(T!=null)for(var A=Object.keys(T),I=0;I<A.length;I++){var O=A[I];y[O]=T[O]}}return y},oe=function(g){if(!(!(g.length===4||g.length===7)||g[0]!=="#")){var x=g.length===4,T,A,I,O=16;return x?(T=parseInt(g[1]+g[1],O),A=parseInt(g[2]+g[2],O),I=parseInt(g[3]+g[3],O)):(T=parseInt(g[1]+g[2],O),A=parseInt(g[3]+g[4],O),I=parseInt(g[5]+g[6],O)),[T,A,I]}},Or=function(g){var x,T,A,I,O, $ ,z,S;function V(ut,dt,At){return At<0&&(At+=1),At>1&&(At-=1),At<1/6?ut+(dt-ut)*6*At:At<1/2?dt:At<2/3?ut+(dt-ut)*(2/3-At)*6:ut}var U=new RegExp("^"+ye+" $ ").exec(g);if(U){if(T=parseInt(U[1]),T<0?T=(360- -1*T%360)%360:T>360&&(T=T%360),T/=360,A=parseFloat(U[2]),A<0||A>100||(A=A/100,I=parseFloat(U[3]),I<0||I>100)||(I=I/100,O=U[4],O!==void 0&&(O=parseFloat(O),O<0||O>1)))return;if(A===0) $ =z=S=Math.round(I*255);else{var tt=I<.5?I*(1+A):I+A-I*A,at=2*I-tt; $ =Math.round(255*V(at,tt,T+1/3)),z=Math.round(255*V(at,tt,T)),S=Math.round(255*V(at,tt,T-1/3))}x=[ $ ,z,S,O]}return x},Le=function(g){var x,T=new RegExp("^"+ne+" $ ").exec(g);if(T){x=[];for(var A=[],I=1;I<=3;I++){var O=T[I];if(O[O.length-1]==="%"&&(A[I]=!0),O=parseFloat(O),A[I]&&(O=O/100*255),O<0||O>255)return;x.push(Math.floor(O))}var  $ =A[1]||A[2]||A[3],z=A[1]&&A[2]&&A[3];if( $ &&!z)return;var S=T[4];if(S!==void 0){if(S=parseFloat(S),S<0||S>1)return;x.push(S)}}return x},Nr=function(g){return sr[g.toLowerCase()]},fe=fu
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Embeddable  Minimum  Strictly - Compliant  Promises / A +  1.1 . 1  Thenable  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Copyright  ( c )  2013 - 2014  Ralf  S .  Engelschall  ( http : //engelschall.com)
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Licensed  under  The  MIT  License  ( http : //opensource.org/licenses/MIT)
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								* / v a r   b F = 0 , v F = 1 , w F = 2 , c v = f u n c t i o n   y ( g ) { i f ( ! ( t h i s   i n s t a n c e o f   y ) ) r e t u r n   n e w   y ( g ) ; t h i s . i d = " T h e n a b l e / 1 . 0 . 7 " , t h i s . s t a t e = b F , t h i s . f u l f i l l V a l u e = v o i d   0 , t h i s . r e j e c t R e a s o n = v o i d   0 , t h i s . o n F u l f i l l e d = [ ] , t h i s . o n R e j e c t e d = [ ] , t h i s . p r o x y = { t h e n : t h i s . t h e n . b i n d ( t h i s ) } , t y p e o f   g = = " f u n c t i o n " & & g . c a l l ( t h i s , t h i s . f u l f i l l . b i n d ( t h i s ) , t h i s . r e j e c t . b i n d ( t h i s ) ) } ; c v . p r o t o t y p e = { f u l f i l l : f u n c t i o n ( g ) { r e t u r n   m F ( t h i s , v F , " f u l f i l l V a l u e " , g ) } , r e j e c t : f u n c t i o n ( g ) { r e t u r n   m F ( t h i s , w F , " r e j e c t R e a s o n " , g ) } , t h e n : f u n c t i o n ( g , x ) { v a r   T = t h i s , A = n e w   c v ; r e t u r n   T . o n F u l f i l l e d . p u s h ( k F ( g , A , " f u l f i l l " ) ) , T . o n R e j e c t e d . p u s h ( k F ( x , A , " r e j e c t " ) ) , y F ( T ) , A . p r o x y } } ; v a r   m F = f u n c t i o n ( g , x , T , A ) { r e t u r n   g . s t a t e = = = b F & & ( g . s t a t e = x , g [ T ] = A , y F ( g ) ) , g } , y F = f u n c t i o n ( g ) { g . s t a t e = = = v F ? x F ( g , " o n F u l f i l l e d " , g . f u l f i l l V a l u e ) : g . s t a t e = = = w F & & x F ( g , " o n R e j e c t e d " , g . r e j e c t R e a s o n ) } , x F = f u n c t i o n ( g , x , T ) { i f ( g [ x ] . l e n g t h ! = = 0 ) { v a r   A = g [ x ] ; g [ x ] = [ ] ; v a r   I = f u n c t i o n ( ) { f o r ( v a r   $ = 0 ; $ < A . l e n g t h ; $ + + ) A [ $ ] ( T ) } ; t y p e o f   s e t I m m e d i a t e = = " f u n c t i o n " ? s e t I m m e d i a t e ( I ) : s e t T i m e o u t ( I , 0 ) } } , k F = f u n c t i o n ( g , x , T ) { r e t u r n   f u n c t i o n ( A ) { i f ( t y p e o f   g ! = " f u n c t i o n " ) x [ T ] . c a l l ( x , A ) ; e l s e { v a r   I ; t r y { I = g ( A ) } c a t c h ( O ) { x . r e j e c t ( O ) ; r e t u r n } b X ( x , I ) } } } , b X = f u n c t i o n   y ( g , x ) { i f ( g = = = x | | g . p r o x y = = = x ) { g . r e j e c t ( n e w   T y p e E r r o r ( " c a n n o t   r e s o l v e   p r o m i s e   w i t h   i t s e l f " ) ) ; r e t u r n } v a r   T ; i f ( f ( x ) = = = " o b j e c t " & & x ! = = n u l l | | t y p e o f   x = = " f u n c t i o n " ) t r y { T = x . t h e n } c a t c h ( I ) { g . r e j e c t ( I ) ; r e t u r n } i f ( t y p e o f   T = = " f u n c t i o n " ) { v a r   A = ! 1 ; t r y { T . c a l l ( x , f u n c t i o n ( I ) { A | | ( A = ! 0 , I = = = x ? g . r e j e c t ( n e w   T y p e E r r o r ( " c i r c u l a r   t h e n a b l e   c h a i n " ) ) : y ( g , I ) ) } , f u n c t i o n ( I ) { A | | ( A = ! 0 , g . r e j e c t ( I ) ) } ) } c a t c h ( I ) { A | | g . r e j e c t ( I ) } r e t u r n } g . f u l f i l l ( x ) } ; c v . a l l = f u n c t i o n ( y ) { r e t u r n   n e w   c v ( f u n c t i o n ( g , x ) { f o r ( v a r   T = n e w   A r r a y ( y . l e n g t h ) , A = 0 , I = f u n c t i o n ( z , S ) { T [ z ] = S , A + + , A = = = y . l e n g t h & & g ( T ) } , O = 0 ; O < y . l e n g t h ; O + + ) ( f u n c t i o n ( $ ) { v a r   z = y [ $ ] , S = z ! = n u l l & & z . t h e n ! = n u l l ; i f ( S ) z . t h e n ( f u n c t i o n ( U ) { I ( $ , U ) } , f u n c t i o n ( U ) { x ( U ) } ) ; e l s e { v a r   V = z ; I ( $ , V ) } } ) ( O ) } ) } , c v . r e s o l v e = f u n c t i o n ( y ) { r e t u r n   n e w   c v ( f u n c t i o n ( g , x ) { g ( y ) } ) } , c v . r e j e c t = f u n c t i o n ( y ) { r e t u r n   n e w   c v ( f u n c t i o n ( g , x ) { x ( y ) } ) } ; v a r   W 5 = t y p e o f   P r o m i s e < " u " ? P r o m i s e : c v , B E = f u n c t i o n ( g , x , T ) { v a r   A = R t ( g ) , I = ! A , O = t h i s . _ p r i v a t e = K e ( { d u r a t i o n : 1 e 3 } , x , T ) ; i f ( O . t a r g e t = g , O . s t y l e = O . s t y l e | | O . c s s , O . s t a r t e d = ! 1 , O . p l a y i n g = ! 1 , O . h o o k e d = ! 1 , O . a p p l y i n g = ! 1 , O . p r o g r e s s = 0 , O . c o m p l e t e s = [ ] , O . f r a m e s = [ ] , O . c o m p l e t e & & k t ( O . c o m p l e t e ) & & O . c o m p l e t e s . p u s h ( O . c o m p l e t e ) , I ) { v a r   $ = g . p o s i t i o n ( ) ; O . s t a r t P o s i t i o n = O . s t a r t P o s i t i o n | | { x : $ . x , y : $ . y } , O . s t a r t S t y l e = O . s t a r t S t y l e | | g . c y ( ) . s t y l e ( ) . g e t A n i m a t i o n S t a r t S t y l e ( g , O . s t y l e ) } i f ( A ) { v a r   z = g . p a n ( ) ; O . s t a r t P a n = { x : z . x , y : z . y } , O . s t a r t Z o o m = g . z o o m ( ) } t h i s . l e n g t h = 1 , t h i s [ 0 ] = t h i s } , C 3 = B E . p r o t o t y p e ; K e ( C 3 , { i n s t a n c e S t r i n g : f u n c t i o n ( ) { r e t u r n " a n i m a t i o n " } , h o o k : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; i f ( ! g . h o o k e d ) { v a r   x , T = g . t a r g e t . _ p r i v a t e . a n i m a t i o n ; g . q u e u e ? x = T . q u e u e : x = T . c u r r e n t , x . p u s h ( t h i s ) , l t ( g . t a r g e t ) & & g . t a r g e t . c y ( ) . a d d T o A n i m a t i o n P o o l ( g . t a r g e t ) , g . h o o k e d = ! 0 } r e t u r n   t h i s } , p l a y : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . p r o g r e s s = = = 1 & & ( g . p r o g r e s s = 0 ) , g . p l a y i n g = ! 0 , g . s t a r t e d = ! 1 , g . s t o p p e d = ! 1 , t h i s . h o o k ( ) , t h i s } , p l a y i n g : f u n c t i o n ( ) { r e t u r n   t h i s . _ p r i v a t e . p l a y i n g } , a p p l y : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . a p p l y i n g = ! 0 , g . s t a r t e d = ! 1 , g . s t o p p e d = ! 1 , t h i s . h o o k ( ) , t h i s } , a p p l y i n g : f u n c t i o n ( ) { r e t u r n   t h i s . _ p r i v a t e . a p p l y i n g } , p a u s e : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . p l a y i n g = ! 1 , g . s t a r t e d = ! 1 , t h i s } , s t o p : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . p l a y i n g = ! 1 , g . s t a r t e d = ! 1 , g . s t o p p e d = ! 0 , t h i s } , r e w i n d : f u n c t i o n ( ) { r e t u r n   t h i s . p r o g r e s s ( 0 ) } , f a s t f o r w a r d : f u n c t i o n ( ) { r e t u r n   t h i s . p r o g r e s s ( 1 ) } , t i m e : f u n c t i o n ( g ) { v a r   x = t h i s . _ p r i v a t e ; r e t u r n   g = = = v o i d   0 ? x . p r o g r e s s * x . d u r a t i o n : t h i s . p r o g r e s s ( g / x . d u r a t i o n ) } , p r o g r e s s : f u n c t i o n ( g ) { v a r   x = t h i s . _ p r i v a t e , T = x . p l a y i n g ; r e t u r n   g = = = v o i d   0 ? x . p r o g r e s s : ( T & & t h i s . p a u s e ( ) , x . p r o g r e s s = g , x . s t a r t e d = ! 1 , T & & t h i s . p l a y ( ) , t h i s ) } , c o m p l e t e d : f u n c t i o n ( ) { r e t u r n   t h i s . _ p r i v a t e . p r o g r e s s = = = 1 } , r e v e r s e : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e , x = g . p l a y i n g ; x & & t h i s . p a u s e ( ) , g . p r o g r e s s = 1 - g . p r o g r e s s , g . s t a r t e d = ! 1 ; v a r   T = f u n c t i o n ( S , V ) { v a r   U = g [ S ] ; U ! = n u l l & & ( g [ S ] = g [ V ] , g [ V ] = U ) } ; i f ( T ( " z o o m " , " s t a r t Z o o m " ) , T ( " p a n " , " s t a r t P a n " ) , T ( " p o s i t i o n " , " s t a r t P o s i t i o n " ) , g . s t y l e ) f o r ( v a r   A = 0 ; A < g . s t y l e . l e n g t h ; A + + ) { v a r   I = g . s t y l e [ A ] , O = I . n a m e , $ = g . s t a r t S t y l e [ O ] ; g . s t a r t S t y l e [ O ] = I , g . s t y l e [ A ] = $ } r e t u r n   x & & t h i s . p l a y ( ) , t h i s } , p r o m i s e : f u n c t i o n ( g ) { v a r   x = t h i s . _ p r i v a t e , T ; s w i t c h ( g ) { c a s e " f r a m e " : T = x . f r a m e s ; b r e a k ; d e f a u l t : c  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  Event  object  based  on  jQuery  events ,  MIT  license 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  https : //jquery.org/license/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  https : //tldrlegal.com/license/mit-license
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  https : //github.com/jquery/jquery/blob/master/src/event.js
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  * /var JF=function(g,x){this.recycle(g,x)};function Dk(){return!1}function WE(){return!0}JF.prototype={instanceString:function(){return"event"},recycle:function(g,x){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Dk,g!=null&&g.preventDefault?(this.type=g.type,this.isDefaultPrevented=g.defaultPrevented?WE:Dk):g!=null&&g.type?x=g:this.type=g,x!=null&&(this.originalEvent=x.originalEvent,this.type=x.type!=null?x.type:this.type,this.cy=x.cy,this.target=x.target,this.position=x.position,this.renderedPosition=x.renderedPosition,this.namespace=x.namespace,this.layout=x.layout),this.cy!=null&&this.position!=null&&this.renderedPosition==null){var T=this.position,A=this.cy.zoom(),I=this.cy.pan();this.renderedPosition={x:T.x*A+I.x,y:T.y*A+I.y}}this.timeStamp=g&&g.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=WE;var g=this.originalEvent;g&&g.preventDefault&&g.preventDefault()},stopPropagation:function(){this.isPropagationStopped=WE;var g=this.originalEvent;g&&g.stopPropagation&&g.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=WE,this.stopPropagation()},isDefaultPrevented:Dk,isPropagationStopped:Dk,isImmediatePropagationStopped:Dk};var tB=/ ^ ( [ ^ . ] + ) ( \ . ( ? : [ ^ . ] + ) ) ? $ / , WZ = ".*" , eB = { qualifierCompare : function ( g , x ) { return  g === x } , eventMatches : function ( ) { return ! 0 } , addEventFields : function ( ) { } , callbackContext : function ( g ) { return  g } , beforeEmit : function ( ) { } , afterEmit : function ( ) { } , bubble : function ( ) { return ! 1 } , parent : function ( ) { return  null } , context : null } , nB = Object . keys ( eB ) , KZ = { } ; function  KE ( ) { for ( var  y = arguments . length > 0 && arguments [ 0 ] !== void  0 ? arguments [ 0 ] : KZ , g = arguments . length > 1 ? arguments [ 1 ] : void  0 , x = 0 ; x < nB . length ; x ++ ) { var  T = nB [ x ] ; this [ T ] = y [ T ] || eB [ T ] } this . context = g || this . context , this . listeners = [ ] , this . emitting = 0 } var  ym = KE . prototype , rB = function ( g , x , T , A , I , O , $ ) { kt ( A ) && ( I = A , A = null ) , $ && ( O == null ? O = $ : O = Ke ( { } , O , $ ) ) ; for ( var  z = yt ( T ) ? T : T . split ( /\s+/ ) , S = 0 ; S < z . length ; S ++ ) { var  V = z [ S ] ; if ( ! J ( V ) ) { var  U = V . match ( tB ) ; if ( U ) { var  tt = U [ 1 ] , at = U [ 2 ] ? U [ 2 ] : null , ut = x ( g , V , tt , at , A , I , O ) ; if ( ut === ! 1 ) break } } } } , iB = function ( g , x ) { return  g . addEventFields ( g . context , x ) , new  JF ( x . type , x ) } , YZ = function ( g , x , T ) { if ( de ( T ) ) { x ( g , T ) ; return } else  if ( ht ( T ) ) { x ( g , iB ( g , T ) ) ; return } for ( var  A = yt ( T ) ? T : T . split ( /\s+/ ) , I = 0 ; I < A . length ; I ++ ) { var  O = A [ I ] ; if ( ! J ( O ) ) { var  $ = O . match ( tB ) ; if ( $ ) { var  z = $ [ 1 ] , S = $ [ 2 ] ? $ [ 2 ] : null , V = iB ( g , { type : z , namespace : S , target : g . context } ) ; x ( g , V ) } } } } ; ym . on = ym . addListener = function ( y , g , x , T , A ) { return  rB ( this , function ( I , O , $ , z , S , V , U ) { kt ( V ) && I . listeners . push ( { event : O , callback : V , type : $ , namespace : z , qualifier : S , conf : U } ) } , y , g , x , T , A ) , this } , ym . one = function ( y , g , x , T ) { return  this . on ( y , g , x , T , { one : ! 0 } ) } , ym . removeListener = ym . off = function ( y , g , x , T ) { var  A = this ; this . emitting !== 0 && ( this . listeners = jK ( this . listeners ) ) ; for ( var  I = this . listeners , O = function ( S ) { var  V = I [ S ] ; rB ( A , function ( U , tt , at , ut , dt , At ) { if ( ( V . type === at || y === "*" ) && ( ! ut && V . namespace !== ".*" || V . namespace === ut ) && ( ! dt || U . qualifierCompare ( V . qualifier , dt ) ) && ( ! At || V . callback === At ) ) return  I . splice ( S , 1 ) , ! 1 } , y , g , x , T ) } , $ = I . length - 1 ; $ >= 0 ; $ -- ) O ( $ ) ; return  this } , ym . removeAllListeners = function ( ) { return  this . removeListener ( "*" ) } , ym . emit = ym . trigger = function ( y , g , x ) { var  T = this . listeners , A = T . length ; return  this . emitting ++ , yt ( g ) || ( g = [ g ] ) , YZ ( this , function ( I , O ) { x != null && ( T = [ { event : O . event , type : O . type , namespace : O . namespace , callback : x } ] , A = T . length ) ; for ( var  $ = function ( V ) { var  U = T [ V ] ; if ( U . type === O . type && ( ! U . namespace || U . namespace === O . namespace || U . namespace === WZ ) && I . eventMatches ( I . context , U , O ) ) { var  tt = [ O ] ; g != null && zP ( tt , g ) , I . beforeEmit ( I . context , U , O ) , U . conf && U . conf . one && ( I . listeners = I . listeners . filter ( function ( dt ) { return  dt !== U } ) ) ; var  at = I . callbackContext ( I . context , U , O ) , ut = U . callback . apply ( at , tt ) ; I . afterEmit ( I . context , U , O ) , ut === ! 1 && ( O . stopPropagation ( ) , O . preventDefault ( ) ) } } , z = 0 ; z < A ; z ++ ) $ ( z ) ; I . bubble ( I . context ) && ! O . isPropagationStopped ( ) && I . parent ( I . context ) . emit ( O , g ) } , y ) , this . emitting -- , this } ; var  XZ = { qualifierCompare : function ( g , x ) { return  g == null || x == null ? g == null && x == null : g . sameText ( x ) } , eventMatches : function ( g , x , T ) { var  A = x . qualifier ; return  A != null ? g !== T . target && _t ( T . target ) && A . matc 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),U=y.pstyle("text-max-width").pfValue,tt=y.pstyle("text-overflow-wrap").value,at=tt==="anywhere",ut=[],dt=/[ \s \u 200b]+/,At=at?"":" ",xt=0;xt<V.length;xt++){var Mt=V[xt],Dt=this.calculateLabelDimensions(y,Mt),Bt=Dt.width;if(at){var Zt=Mt.split("").join(S);Mt=Zt}if(Bt>U){for(var Kt=Mt.split(dt), $ t="",ee=0;ee<Kt.length;ee++){var Ht=Kt[ee],ge= $ t.length===0?Ht: $ t+At+Ht,be=this.calculateLabelDimensions(y,ge),re=be.width;re<=U? $ t+=Ht+At:( $ t&&ut.push( $ t), $ t=Ht+At)} $ t.match(/^[ \s \u 200b]+ $ /)||ut.push( $ t)}else ut.push(Mt)}O("labelWrapCachedLines",ut),A=O("labelWrapCachedText",ut.join( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )),O("labelWrapKey",z)}else if( $ ==="ellipsis"){var Pe=y.pstyle("text-max-width").pfValue,ve="",dn="…", $ e=!1;if(this.calculateLabelDimensions(y,A).width<Pe)return A;for(var qe=0;qe<A.length;qe++){var xn=this.calculateLabelDimensions(y,ve+A[qe]+dn).width;if(xn>Pe)break;ve+=A[qe],qe===A.length-1&&( $ e=!0)}return  $ e||(ve+=dn),ve}return A},kp.getLabelJustification=function(y){var g=y.pstyle("text-justification").strValue,x=y.pstyle("text-halign").strValue;if(g==="auto")if(y.isNode())switch(x){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return g},kp.calculateLabelDimensions=function(y,g){var x=this,T=ad(g,y._private.labelDimsKey),A=x.labelDimCache||(x.labelDimCache=[]),I=A[T];if(I!=null)return I;var O=0, $ =y.pstyle("font-style").strValue,z=y.pstyle("font-size").pfValue,S=y.pstyle("font-family").strValue,V=y.pstyle("font-weight").strValue,U=this.labelCalcCanvas,tt=this.labelCalcCanvasContext;if(!U){U=this.labelCalcCanvas=document.createElement("canvas"),tt=this.labelCalcCanvasContext=U.getContext("2d");var at=U.style;at.position="absolute",at.left="-9999px",at.top="-9999px",at.zIndex="-1",at.visibility="hidden",at.pointerEvents="none"}tt.font="".concat( $ ," ").concat(V," ").concat(z,"px ").concat(S);for(var ut=0,dt=0,At=g.split( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),xt=0;xt<At.length;xt++){var Mt=At[xt],Dt=tt.measureText(Mt),Bt=Math.ceil(Dt.width),Zt=z;ut=Math.max(Bt,ut),dt+=Zt}return ut+=O,dt+=O,A[T]={width:ut,height:dt}},kp.calculateLabelAngle=function(y,g){var x=y._private,T=x.rscratch,A=y.isEdge(),I=g?g+"-":"",O=y.pstyle(I+"text-rotation"), $ =O.strValue;return  $ ==="none"?0:A&& $ ==="autorotate"?T.labelAutoAngle: $ ==="autorotate"?0:O.pfValue},kp.calculateLabelAngles=function(y){var g=this,x=y.isEdge(),T=y._private,A=T.rscratch;A.labelAngle=g.calculateLabelAngle(y),x&&(A.sourceLabelAngle=g.calculateLabelAngle(y,"source"),A.targetLabelAngle=g.calculateLabelAngle(y,"target"))};var ch={},XL=28,PB=!1;ch.getNodeShape=function(y){var g=this,x=y.pstyle("shape").value;if(x==="cutrectangle"&&(y.width()<XL||y.height()<XL))return PB||(Wo("The  ` cutrectangle `  node shape can not be used at small sizes so  ` rectangle `  is used instead"),PB=!0),"rectangle";if(y.isParent())return x==="rectangle"||x==="roundrectangle"||x==="round-rectangle"||x==="cutrectangle"||x==="cut-rectangle"||x==="barrel"?x:"rectangle";if(x==="polygon"){var T=y.pstyle("shape-polygon-points").value;return g.nodeShapes.makePolygon(T).name}return x};var Rk={};Rk.registerCalculationListeners=function(){var y=this.cy,g=y.collection(),x=this,T=function(O){var  $ =arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(g.merge(O), $ )for(var z=0;z<O.length;z++){var S=O[z],V=S._private,U=V.rstyle;U.clean=!1,U.cleanConnected=!1}};x.binder(y).on("bounds.* dirty.*",function(O){var  $ =O.target;T( $ )}).on("style.* background.*",function(O){var  $ =O.target;T( $ ,!1)});var A=function(O){if(O){var  $ =x.onUpdateEleCalcsFns;g.cleanStyle();for(var z=0;z<g.length;z++){var S=g[z],V=S._private.rstyle;S.isNode()&&!V.cleanConnected&&(T(S.connectedEdges()),V.cleanConnected=!0)}if( $ )for(var U=0;U< $ .length;U++){var tt= $ [U];tt(O,g)}x.recalculateRenderedStyle(g),g=y.collection()}};x.flushRenderedStyleQueue=function(){A(!0)},x.beforeRender(A,x.beforeRenderPriorities.eleCalcs)},Rk.onUpdateEleCalcs=function(y){var g=this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[];g.push(y)},Rk.recalculateRenderedStyle=function(y,g){var x=function(Bt){return Bt._private.rstyle.cleanConnected},T=[],A=[];if(!this.destroyed){g===void 0&&(g=!0);for(var I=0;I<y.length;I++){var O=y[I], $ =O._private,z= $ .rstyle;O.isEdge()&&(!x(O.source())||!x(O.target()))&&(z.clean=!1),!(g&&z.clean||O.removed())&&O.pstyle("display").value!=="none"&&( $ .group==="nodes"?A.push(O):T.push(O),z.clean=!0)}for(var S=0;S<A.length;S++){var V=A[S],U=V._private,tt=U.rstyle,at=V.position();this.recalculateNodeLabelProjection(V),tt.nodeX=at.x,tt.nodeY=at.y,tt.nodeW=V.pstyle("width").pfValue,tt.nodeH=V.pstyle("height").pfValue}this.recalculateEdgeProjections(T);for(var ut=0;ut<T.length;ut++){var dt=T[ut],At=dt._private,xt=At.rstyle,Mt=At.rscratch;xt.srcX=Mt.arrowStartX,xt.srcY=Mt.arrowStartY,xt.tgtX=Mt.arrowEndX,xt.tgtY=Mt.arrowEndY,xt.midX=Mt.midX,xt.midY=Mt.midY,xt.labelAngle=Mt.labelAngle,xt.sourceLabelAngle=Mt.sourceLabelAngle,xt.targetLabelAngle=Mt.targetLabelAngle}}};var hT={};hT.updateCachedGrabbedEles=function(){var y=this.cachedZSortedEles;if(y){y.drag=[],y.nondrag=[];for(var g=[],x=0;x<y.length;x++){var T=y[x],A=T._private.rscratch;T.grabbed()&&!T.isParent()?g.push(T):A.inDragLayer?y.drag.push(T):y.nondrag.push(T)}for(var x=0;x<g.length;x++){var T=g[x];y.drag.push(T)}}},hT.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null},hT.getCachedZSortedEles=function(y){if(y||!this.cachedZSortedEles){var g=this.cy.mutableElements().toArray();g.sort(oB),g.interactive=g.filter(function(x){return x.interactive()}),this.cachedZSortedEles=g,this.updateCachedGrabbedEles()}else g=this.cachedZSortedEles;return g};var jk={};[L3,lT,ld,Bk,YL,kp,ch,Rk,hT].forEach(function(y){Ke(jk,y)});var FB={};FB.getCachedImage=function(y,g,x){var T=this,A=T.imageCache=T.imageCache||{},I=A[y];if(I)return I.image.complete||I.image.addEventListener("load",x),I.image;I=A[y]=A[y]||{};var O=I.image=new Image;O.addEventListener("load",x),O.addEventListener("error",function(){O.error=!0});var  $ ="data:",z=y.substring(0, $ .length).toLowe
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i,p.parser);const m=Oe().securityLevel;let b;m==="sandbox"&&(b=Mr("#i"+a));const C=Mr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body").select("#"+a);C.append("g");const D=p.db.getMindmap(),P=C.append("g");P.attr("class","mindmap-edges");const B=C.append("g");B.attr("class","mindmap-nodes"),vjt(B,D,-1,v);const j=await gUe(D,v);dUe(P,j),pUe(j),J9(void 0,C,v.mindmap.padding,v.mindmap.useMaxWidth)}},vUe=i=>{let a="";for(let f=0;f<i.THEME_COLOR_LIMIT;f++)i["lineColor"+f]=i["lineColor"+f]||i["cScaleInv"+f],Q9(i["lineColor"+f])?i["lineColor"+f]=Ds(i["lineColor"+f],20):i["lineColor"+f]=ta(i["lineColor"+f],20);for(let f=0;f<i.THEME_COLOR_LIMIT;f++){const p=""+(17-3*f);a+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  rect ,  . section - $ { f - 1 }  path ,  . section - $ { f - 1 }  circle ,  . section - $ { f - 1 }  polygon ,  . section - $ { f - 1 }  path   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								     fill :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . node - icon - $ { f - 1 }  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      font - size :  40 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      color :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - edge - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . edge - depth - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  $ { p } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  line  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScaleInv" + f ] }  ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled ,  . disabled  circle ,  . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  lightgray ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  # efefef ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    ` }return a},wUe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:JGe,renderer:bUe,parser:HGe,styles:i=> ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { vUe ( i ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  rect ,  . section - root  path ,  . section - root  circle ,  . section - root  polygon   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . git0 } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . gitBranchLabel0 } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . icon - container  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    height : 100 % ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    display :  flex ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    justify - content :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    align - items :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . mindmap - node - label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    dy :  1 em ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    alignment - baseline :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    dominant - baseline :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));return P2});