HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Python311/Lib/site-packages/notebook/static/2409.6091282e2ebffe2ab089.js.map
{"version":3,"file":"2409.6091282e2ebffe2ab089.js?v=6091282e2ebffe2ab089","mappings":";;;;;;;;;;;AAAA;AACkC;AACI;AACtC;AACA;AACA,WAAW,gEAAC,YAAY,gEAAK;AAC7B;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;ACJO;;AAE9B;AAC4B;AAC5B,wCAAwC,qEAAM;AAC9C;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA,6CAA6C,oDAAM,mDAAmD,oDAAM;AAC5G,kCAAkC,GAAG;AACrC;AACA,CAAC;;AAED;AACA,0CAA0C,qEAAM;AAChD;AACA,UAAU,sBAAsB;AAChC,EAAE,+EAAgB;AAClB;AACA;AACA,EAAE,8DAAG,8BAA8B,SAAS,gBAAgB,QAAQ;AACpE,CAAC;AACD,qDAAqD,qEAAM;AAC3D,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oCAAoC,qEAAM;AAC1C,YAAY,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO;AAC1D,CAAC;;AAKC;;;;;;;;;;;;;;;;;;;;;;;;;ACxC4B;AAIA;AAIA;AACA;AACA;AAGA;AACA;AACA;AACA;AAIA;AAeA;;AAE9B;AAC4B;AAC5B;AACA;AACA;AACA;AACA;AACA,kBAAkB,0EAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAW;AAClC,6BAA6B,6EAAiB;AAC9C,2BAA2B,2EAAe;AAC1C,uBAAuB,uEAAW;AAClC,6BAA6B,6EAAiB;AAC9C,2BAA2B,2EAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sEAAM;AACV;AACA;AACA,WAAW,0EAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C,QAAQ;AACR;AACA;AACA,YAAY,kEAAI,aAAa,QAAQ,qEAAW,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0EAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU;AACtD,UAAU,UAAU,2EAAY;AAChC,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+DAAG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,kBAAkB,wEAAS,yBAAyB,yBAAyB;AAC7E,QAAQ;AACR,kBAAkB,wEAAS;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,MAAM,+DAAG;AACT;AACA,MAAM;AACN;AACA,gCAAgC,mBAAmB,gCAAgC,qBAAqB;;AAExG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+DAAG;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK,gFAAgF,sBAAsB;AAClI;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gFAAgF,gCAAgC;AAChH;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,EAAE;AACxD,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA,cAAc,wEAAa;AAC3B,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wEAAa;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAM;AAC5B;AACA,oBAAoB,qDAAM;AAC1B;AACA,gBAAgB,qDAAM;AACtB;AACA;AACA,iBAAiB,qDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA,KAAK;AACL;AACA,iBAAiB,qDAAM;AACvB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0EAAS;AAC3B,IAAI,qEAAK;AACT;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,mBAAmB,uBAAuB,UAAU,aAAa;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM;AACvC,sBAAsB,WAAW,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP,eAAe;AACf,KAAK;AACL,YAAY,gBAAgB;AAC5B;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+DAAG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,QAAQ;AACR;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0EAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAS,+BAA+B,6BAA6B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa,uBAAuB;AACpC;AACA;AACA,WAAW,0EAAa;AACxB;AACA;;AAEA;AACuC;AACvC,iCAAiC,sEAAM;AACvC;AACA,CAAC;AACD,2BAA2B,sEAAM;AACjC,EAAE,+DAAG;AACL,EAAE,+DAAG;AACL,UAAU,yCAAyC,EAAE,0EAAS;AAC9D;AACA;AACA,qBAAqB,qDAAO;AAC5B;AACA;AACA,EAAE,+DAAG;AACL;AACA,EAAE,+DAAG;AACL,cAAc,+EAAiB;AAC/B;AACA;AACA,gCAAgC,2FAA4B;AAC5D;AACA,IAAI,+DAAG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,+DAAG;AACL,QAAQ,qEAAM;AACd;AACA,EAAE,wEAAa;AACf;AACA;AACA;AACA;AACA;AACA,EAAE,iFAAmB;AACrB;AACA,iBAAiB,qDAAO,KAAK,IAAI,OAAO,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,sEAAM;AAChC,sBAAsB,gBAAgB,KAAK;AAC3C;AACA,GAAG;AACH;AACA,2BAA2B,sEAAM;AACjC,KAAK;AACL,UAAU;AACV,gBAAgB,6lEAA6lE;AAC7mE,kBAAkB,82CAA82C;AACh4C;AACA,mCAAmC,sEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL,cAAc,sCAAsC,IAAI,QAAQ,gBAAgB,MAAM,KAAK,gCAAgC,IAAI,gCAAgC,IAAI,yBAAyB,IAAI,gYAAgY,sDAAsD,iDAAiD,oGAAoG,wFAAwF,IAAI,iCAAiC,IAAI,iCAAiC,IAAI,iCAAiC,IAAI,iCAAiC,IAAI,iCAAiC,IAAI,8CAA8C,qBAAqB,aAAa,IAAI,aAAa,qCAAqC,kCAAkC,KAAK,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,mKAAmK,6GAA6G,aAAa,qBAAqB,6RAA6R,gRAAgR,aAAa,oBAAoB,kBAAkB,sBAAsB,qJAAqJ,uEAAuE,qCAAqC,KAAK,wDAAwD,IAAI,4BAA4B,0GAA0G,4QAA4Q,iBAAiB,QAAQ,uDAAuD,UAAU,qBAAqB,4BAA4B,sBAAsB,6HAA6H,IAAI,wCAAwC,IAAI,6HAA6H,IAAI,6HAA6H,sBAAsB,4BAA4B,KAAK,cAAc,sBAAsB,kIAAkI,uBAAuB,cAAc,yOAAyO,6HAA6H,IAAI,iFAAiF,IAAI,iFAAiF,IAAI,+FAA+F,IAAI,iFAAiF,IAAI,iFAAiF,IAAI,iFAAiF,IAAI,eAAe,IAAI,iFAAiF,IAAI,+FAA+F,IAAI,iFAAiF,IAAI,iFAAiF,IAAI,iFAAiF,wEAAwE,oCAAoC,qBAAqB,cAAc,KAAK,cAAc,IAAI,iFAAiF,IAAI,2CAA2C,gGAAgG,wDAAwD,qBAAqB,uRAAuR,qdAAqd,mYAAmY,IAAI,kBAAkB,IAAI,cAAc,qBAAqB,mIAAmI,IAAI,cAAc,IAAI,6BAA6B,uBAAuB,mIAAmI,IAAI,mIAAmI,IAAI,cAAc,sBAAsB,cAAc,uBAAuB,cAAc,KAAK,cAAc,uBAAuB,4BAA4B,oBAAoB,qHAAqH,KAAK,kEAAkE,sIAAsI,kEAAkE,IAAI,iFAAiF,IAAI,kEAAkE,IAAI,kEAAkE,IAAI,kEAAkE,IAAI,kEAAkE,IAAI,cAAc,IAAI,kEAAkE,IAAI,kEAAkE,IAAI,iFAAiF,IAAI,kEAAkE,IAAI,gFAAgF,IAAI,gFAAgF,oBAAoB,4BAA4B,qBAAqB,UAAU,uCAAuC,kEAAkE,uCAAuC,2CAA2C,IAAI,iFAAiF,iBAAiB,QAAQ,yCAAyC,6IAA6I,IAAI,kBAAkB,IAAI,kHAAkH,IAAI,iIAAiI,IAAI,iIAAiI,IAAI,eAAe,IAAI,kHAAkH,IAAI,6HAA6H,uBAAuB,cAAc,IAAI,4BAA4B,yCAAyC,cAAc,4EAA4E,kEAAkE,wEAAwE,eAAe,sCAAsC,kEAAkE,gLAAgL,kEAAkE,IAAI,mYAAmY,qBAAqB,6IAA6I,sBAAsB,WAAW,uBAAuB,+FAA+F,kMAAkM,WAAW,KAAK,cAAc,sBAAsB,WAAW,KAAK,cAAc,yCAAyC,WAAW,uBAAuB,qHAAqH,0CAA0C,cAAc,wBAAwB,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,kCAAkC,sCAAsC,yGAAyG,uBAAuB,6HAA6H,IAAI,6HAA6H,IAAI,cAAc,wCAAwC,iFAAiF,kCAAkC,QAAQ,uBAAuB,+FAA+F,uBAAuB,kIAAkI,uBAAuB,kIAAkI,wBAAwB,kEAAkE,IAAI,mYAAmY,IAAI,kHAAkH,IAAI,kHAAkH,wDAAwD,WAAW,uBAAuB,WAAW;AAC9/a,sBAAsB;AACtB,gCAAgC,sEAAM;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;AACL,2BAA2B,sEAAM;AACjC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sEAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sEAAM;AACZ,iEAAiE;AACjE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kCAAkC,sEAAM;AACxC;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,gCAAgC,sEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,6BAA6B,sEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,6BAA6B,sEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA,OAAO;AACP;AACA,8BAA8B,sEAAM;AACpC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;AACA,4BAA4B,sEAAM;AAClC;AACA,OAAO;AACP;AACA,iCAAiC,sEAAM;AACvC;AACA;AACA,OAAO;AACP;AACA,qCAAqC,sEAAM;AAC3C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,oCAAoC,sEAAM;AAC1C;AACA;AACA;AACA,OAAO;AACP;AACA,kCAAkC,sEAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,2BAA2B,sEAAM;AACjC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,6BAA6B,sEAAM;AACnC;AACA,OAAO;AACP;AACA,gCAAgC,sEAAM;AACtC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,qCAAqC,sEAAM;AAC3C;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP,4DAA4D;AAC5D,gCAAgC,sEAAM;AACtC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,iCAAiC,sEAAM;AACvC;AACA,OAAO;AACP;AACA,sCAAsC,sEAAM;AAC5C;AACA,OAAO;AACP,iBAAiB;AACjB,qCAAqC,sEAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,gIAAgI,eAAe,cAAc,cAAc,mDAAmD,eAAe,g0BAAg0B,uEAAuE,mTAAmT,EAAE,wOAAwO,EAAE,iiJAAiiJ,YAAY,qBAAqB,EAAE;AACvtM,oBAAoB,yBAAyB,2FAA2F,oBAAoB,kGAAkG,iBAAiB,sGAAsG,oBAAoB,mGAAmG,oBAAoB,uGAAuG,YAAY,2FAA2F,aAAa,mGAAmG,sBAAsB,mGAAmG,qBAAqB,mGAAmG,gBAAgB,mGAAmG,gBAAgB,uGAAuG,mBAAmB,mGAAmG,YAAY,oIAAoI,cAAc,2FAA2F,WAAW,uIAAuI,2BAA2B,iGAAiG,iBAAiB,8FAA8F,iBAAiB,8FAA8F,iBAAiB,mGAAmG,cAAc,mGAAmG,eAAe;AACx2E;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,sEAAM;AACR;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;;AAEA;AACiC;AACjC,2BAA2B,sEAAM;AACjC,mBAAmB,wDAAc;AACjC;AACA;AACA;AACA,SAAS,wDAAW;AACpB,CAAC;AACD,gCAAgC,sEAAM;AACtC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA,YAAY;AACZ;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,YAAY,mBAAmB;AAC/B;AACA,cAAc;AACd;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA,YAAY;AACZ,cAAc;AACd;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,kBAAkB;AAClB,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA,MAAM,0EAAS,GAAG,oBAAoB;AACtC;AACA;AACA,IAAI,0EAAS,GAAG,aAAa,gDAAgD;AAC7E,GAAG;AACH;AAGE","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/khroma/dist/methods/channel.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/mermaid/dist/chunks/mermaid.core/chunk-RZ5BOZE2.mjs","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-4HSFHLVR.mjs"],"sourcesContent":["/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n    return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n","import {\n  __name,\n  configureSvgSize,\n  log\n} from \"./chunk-YTJNT7DU.mjs\";\n\n// src/rendering-util/insertElementsForSize.js\nimport { select } from \"d3\";\nvar getDiagramElement = /* @__PURE__ */ __name((id, securityLevel) => {\n  let sandboxElement;\n  if (securityLevel === \"sandbox\") {\n    sandboxElement = select(\"#i\" + id);\n  }\n  const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n  const svg = root.select(`[id=\"${id}\"]`);\n  return svg;\n}, \"getDiagramElement\");\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n  svg.attr(\"class\", cssDiagram);\n  const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n  configureSvgSize(svg, height, width, useMaxWidth);\n  const viewBox = createViewBox(x, y, width, height, padding);\n  svg.attr(\"viewBox\", viewBox);\n  log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n  const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n  return {\n    width: bounds.width + padding * 2,\n    height: bounds.height + padding * 2,\n    x: bounds.x,\n    y: bounds.y\n  };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n  return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n  getDiagramElement,\n  setupViewPortForSVG\n};\n","import {\n  JSON_SCHEMA,\n  load\n} from \"./chunk-6JRP7KZX.mjs\";\nimport {\n  getDiagramElement,\n  setupViewPortForSVG\n} from \"./chunk-RZ5BOZE2.mjs\";\nimport {\n  getRegisteredLayoutAlgorithm,\n  render\n} from \"./chunk-TYCBKAJE.mjs\";\nimport \"./chunk-IIMUDSI4.mjs\";\nimport \"./chunk-VV3M67IP.mjs\";\nimport {\n  isValidShape\n} from \"./chunk-HRU6DDCH.mjs\";\nimport \"./chunk-K557N5IZ.mjs\";\nimport \"./chunk-H2D2JQ3I.mjs\";\nimport \"./chunk-C3MQ5ANM.mjs\";\nimport {\n  getEdgeId,\n  utils_default\n} from \"./chunk-O4NI6UNU.mjs\";\nimport {\n  __name,\n  clear,\n  common_default,\n  defaultConfig2 as defaultConfig,\n  getAccDescription,\n  getAccTitle,\n  getConfig2 as getConfig,\n  getDiagramTitle,\n  log,\n  setAccDescription,\n  setAccTitle,\n  setConfig2 as setConfig,\n  setDiagramTitle\n} from \"./chunk-YTJNT7DU.mjs\";\n\n// src/diagrams/flowchart/flowDb.ts\nimport { select } from \"d3\";\nvar MERMAID_DOM_ID_PREFIX = \"flowchart-\";\nvar FlowDB = class {\n  // cspell:ignore funs\n  constructor() {\n    this.vertexCounter = 0;\n    this.config = getConfig();\n    this.vertices = /* @__PURE__ */ new Map();\n    this.edges = [];\n    this.classes = /* @__PURE__ */ new Map();\n    this.subGraphs = [];\n    this.subGraphLookup = /* @__PURE__ */ new Map();\n    this.tooltips = /* @__PURE__ */ new Map();\n    this.subCount = 0;\n    this.firstGraphFlag = true;\n    // As in graph\n    this.secCount = -1;\n    this.posCrossRef = [];\n    // Functions to be run after graph rendering\n    this.funs = [];\n    this.setAccTitle = setAccTitle;\n    this.setAccDescription = setAccDescription;\n    this.setDiagramTitle = setDiagramTitle;\n    this.getAccTitle = getAccTitle;\n    this.getAccDescription = getAccDescription;\n    this.getDiagramTitle = getDiagramTitle;\n    this.funs.push(this.setupToolTips.bind(this));\n    this.addVertex = this.addVertex.bind(this);\n    this.firstGraph = this.firstGraph.bind(this);\n    this.setDirection = this.setDirection.bind(this);\n    this.addSubGraph = this.addSubGraph.bind(this);\n    this.addLink = this.addLink.bind(this);\n    this.setLink = this.setLink.bind(this);\n    this.updateLink = this.updateLink.bind(this);\n    this.addClass = this.addClass.bind(this);\n    this.setClass = this.setClass.bind(this);\n    this.destructLink = this.destructLink.bind(this);\n    this.setClickEvent = this.setClickEvent.bind(this);\n    this.setTooltip = this.setTooltip.bind(this);\n    this.updateLinkInterpolate = this.updateLinkInterpolate.bind(this);\n    this.setClickFun = this.setClickFun.bind(this);\n    this.bindFunctions = this.bindFunctions.bind(this);\n    this.lex = {\n      firstGraph: this.firstGraph.bind(this)\n    };\n    this.clear();\n    this.setGen(\"gen-2\");\n  }\n  static {\n    __name(this, \"FlowDB\");\n  }\n  sanitizeText(txt) {\n    return common_default.sanitizeText(txt, this.config);\n  }\n  /**\n   * Function to lookup domId from id in the graph definition.\n   *\n   * @param id - id of the node\n   */\n  lookUpDomId(id) {\n    for (const vertex of this.vertices.values()) {\n      if (vertex.id === id) {\n        return vertex.domId;\n      }\n    }\n    return id;\n  }\n  /**\n   * Function called by parser when a node definition has been found\n   */\n  addVertex(id, textObj, type, style, classes, dir, props = {}, metadata) {\n    if (!id || id.trim().length === 0) {\n      return;\n    }\n    let doc;\n    if (metadata !== void 0) {\n      let yamlData;\n      if (!metadata.includes(\"\\n\")) {\n        yamlData = \"{\\n\" + metadata + \"\\n}\";\n      } else {\n        yamlData = metadata + \"\\n\";\n      }\n      doc = load(yamlData, { schema: JSON_SCHEMA });\n    }\n    const edge = this.edges.find((e) => e.id === id);\n    if (edge) {\n      const edgeDoc = doc;\n      if (edgeDoc?.animate !== void 0) {\n        edge.animate = edgeDoc.animate;\n      }\n      if (edgeDoc?.animation !== void 0) {\n        edge.animation = edgeDoc.animation;\n      }\n      return;\n    }\n    let txt;\n    let vertex = this.vertices.get(id);\n    if (vertex === void 0) {\n      vertex = {\n        id,\n        labelType: \"text\",\n        domId: MERMAID_DOM_ID_PREFIX + id + \"-\" + this.vertexCounter,\n        styles: [],\n        classes: []\n      };\n      this.vertices.set(id, vertex);\n    }\n    this.vertexCounter++;\n    if (textObj !== void 0) {\n      this.config = getConfig();\n      txt = this.sanitizeText(textObj.text.trim());\n      vertex.labelType = textObj.type;\n      if (txt.startsWith('\"') && txt.endsWith('\"')) {\n        txt = txt.substring(1, txt.length - 1);\n      }\n      vertex.text = txt;\n    } else {\n      if (vertex.text === void 0) {\n        vertex.text = id;\n      }\n    }\n    if (type !== void 0) {\n      vertex.type = type;\n    }\n    if (style !== void 0 && style !== null) {\n      style.forEach((s) => {\n        vertex.styles.push(s);\n      });\n    }\n    if (classes !== void 0 && classes !== null) {\n      classes.forEach((s) => {\n        vertex.classes.push(s);\n      });\n    }\n    if (dir !== void 0) {\n      vertex.dir = dir;\n    }\n    if (vertex.props === void 0) {\n      vertex.props = props;\n    } else if (props !== void 0) {\n      Object.assign(vertex.props, props);\n    }\n    if (doc !== void 0) {\n      if (doc.shape) {\n        if (doc.shape !== doc.shape.toLowerCase() || doc.shape.includes(\"_\")) {\n          throw new Error(`No such shape: ${doc.shape}. Shape names should be lowercase.`);\n        } else if (!isValidShape(doc.shape)) {\n          throw new Error(`No such shape: ${doc.shape}.`);\n        }\n        vertex.type = doc?.shape;\n      }\n      if (doc?.label) {\n        vertex.text = doc?.label;\n      }\n      if (doc?.icon) {\n        vertex.icon = doc?.icon;\n        if (!doc.label?.trim() && vertex.text === id) {\n          vertex.text = \"\";\n        }\n      }\n      if (doc?.form) {\n        vertex.form = doc?.form;\n      }\n      if (doc?.pos) {\n        vertex.pos = doc?.pos;\n      }\n      if (doc?.img) {\n        vertex.img = doc?.img;\n        if (!doc.label?.trim() && vertex.text === id) {\n          vertex.text = \"\";\n        }\n      }\n      if (doc?.constraint) {\n        vertex.constraint = doc.constraint;\n      }\n      if (doc.w) {\n        vertex.assetWidth = Number(doc.w);\n      }\n      if (doc.h) {\n        vertex.assetHeight = Number(doc.h);\n      }\n    }\n  }\n  /**\n   * Function called by parser when a link/edge definition has been found\n   *\n   */\n  addSingleLink(_start, _end, type, id) {\n    const start = _start;\n    const end = _end;\n    const edge = {\n      start,\n      end,\n      type: void 0,\n      text: \"\",\n      labelType: \"text\",\n      classes: [],\n      isUserDefinedId: false,\n      interpolate: this.edges.defaultInterpolate\n    };\n    log.info(\"abc78 Got edge...\", edge);\n    const linkTextObj = type.text;\n    if (linkTextObj !== void 0) {\n      edge.text = this.sanitizeText(linkTextObj.text.trim());\n      if (edge.text.startsWith('\"') && edge.text.endsWith('\"')) {\n        edge.text = edge.text.substring(1, edge.text.length - 1);\n      }\n      edge.labelType = linkTextObj.type;\n    }\n    if (type !== void 0) {\n      edge.type = type.type;\n      edge.stroke = type.stroke;\n      edge.length = type.length > 10 ? 10 : type.length;\n    }\n    if (id && !this.edges.some((e) => e.id === id)) {\n      edge.id = id;\n      edge.isUserDefinedId = true;\n    } else {\n      const existingLinks = this.edges.filter((e) => e.start === edge.start && e.end === edge.end);\n      if (existingLinks.length === 0) {\n        edge.id = getEdgeId(edge.start, edge.end, { counter: 0, prefix: \"L\" });\n      } else {\n        edge.id = getEdgeId(edge.start, edge.end, {\n          counter: existingLinks.length + 1,\n          prefix: \"L\"\n        });\n      }\n    }\n    if (this.edges.length < (this.config.maxEdges ?? 500)) {\n      log.info(\"Pushing edge...\");\n      this.edges.push(edge);\n    } else {\n      throw new Error(\n        `Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}.\n\nInitialize mermaid with maxEdges set to a higher number to allow more edges.\nYou cannot set this config via configuration inside the diagram as it is a secure config.\nYou have to call mermaid.initialize.`\n      );\n    }\n  }\n  isLinkData(value) {\n    return value !== null && typeof value === \"object\" && \"id\" in value && typeof value.id === \"string\";\n  }\n  addLink(_start, _end, linkData) {\n    const id = this.isLinkData(linkData) ? linkData.id.replace(\"@\", \"\") : void 0;\n    log.info(\"addLink\", _start, _end, id);\n    for (const start of _start) {\n      for (const end of _end) {\n        const isLastStart = start === _start[_start.length - 1];\n        const isFirstEnd = end === _end[0];\n        if (isLastStart && isFirstEnd) {\n          this.addSingleLink(start, end, linkData, id);\n        } else {\n          this.addSingleLink(start, end, linkData, void 0);\n        }\n      }\n    }\n  }\n  /**\n   * Updates a link's line interpolation algorithm\n   */\n  updateLinkInterpolate(positions, interpolate) {\n    positions.forEach((pos) => {\n      if (pos === \"default\") {\n        this.edges.defaultInterpolate = interpolate;\n      } else {\n        this.edges[pos].interpolate = interpolate;\n      }\n    });\n  }\n  /**\n   * Updates a link with a style\n   *\n   */\n  updateLink(positions, style) {\n    positions.forEach((pos) => {\n      if (typeof pos === \"number\" && pos >= this.edges.length) {\n        throw new Error(\n          `The index ${pos} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length - 1}. (Help: Ensure that the index is within the range of existing edges.)`\n        );\n      }\n      if (pos === \"default\") {\n        this.edges.defaultStyle = style;\n      } else {\n        this.edges[pos].style = style;\n        if ((this.edges[pos]?.style?.length ?? 0) > 0 && !this.edges[pos]?.style?.some((s) => s?.startsWith(\"fill\"))) {\n          this.edges[pos]?.style?.push(\"fill:none\");\n        }\n      }\n    });\n  }\n  addClass(ids, _style) {\n    const style = _style.join().replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/ยงยงยง/g, \",\").split(\";\");\n    ids.split(\",\").forEach((id) => {\n      let classNode = this.classes.get(id);\n      if (classNode === void 0) {\n        classNode = { id, styles: [], textStyles: [] };\n        this.classes.set(id, classNode);\n      }\n      if (style !== void 0 && style !== null) {\n        style.forEach((s) => {\n          if (/color/.exec(s)) {\n            const newStyle = s.replace(\"fill\", \"bgFill\");\n            classNode.textStyles.push(newStyle);\n          }\n          classNode.styles.push(s);\n        });\n      }\n    });\n  }\n  /**\n   * Called by parser when a graph definition is found, stores the direction of the chart.\n   *\n   */\n  setDirection(dir) {\n    this.direction = dir;\n    if (/.*</.exec(this.direction)) {\n      this.direction = \"RL\";\n    }\n    if (/.*\\^/.exec(this.direction)) {\n      this.direction = \"BT\";\n    }\n    if (/.*>/.exec(this.direction)) {\n      this.direction = \"LR\";\n    }\n    if (/.*v/.exec(this.direction)) {\n      this.direction = \"TB\";\n    }\n    if (this.direction === \"TD\") {\n      this.direction = \"TB\";\n    }\n  }\n  /**\n   * Called by parser when a special node is found, e.g. a clickable element.\n   *\n   * @param ids - Comma separated list of ids\n   * @param className - Class to add\n   */\n  setClass(ids, className) {\n    for (const id of ids.split(\",\")) {\n      const vertex = this.vertices.get(id);\n      if (vertex) {\n        vertex.classes.push(className);\n      }\n      const edge = this.edges.find((e) => e.id === id);\n      if (edge) {\n        edge.classes.push(className);\n      }\n      const subGraph = this.subGraphLookup.get(id);\n      if (subGraph) {\n        subGraph.classes.push(className);\n      }\n    }\n  }\n  setTooltip(ids, tooltip) {\n    if (tooltip === void 0) {\n      return;\n    }\n    tooltip = this.sanitizeText(tooltip);\n    for (const id of ids.split(\",\")) {\n      this.tooltips.set(this.version === \"gen-1\" ? this.lookUpDomId(id) : id, tooltip);\n    }\n  }\n  setClickFun(id, functionName, functionArgs) {\n    const domId = this.lookUpDomId(id);\n    if (getConfig().securityLevel !== \"loose\") {\n      return;\n    }\n    if (functionName === void 0) {\n      return;\n    }\n    let argList = [];\n    if (typeof functionArgs === \"string\") {\n      argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n      for (let i = 0; i < argList.length; i++) {\n        let item = argList[i].trim();\n        if (item.startsWith('\"') && item.endsWith('\"')) {\n          item = item.substr(1, item.length - 2);\n        }\n        argList[i] = item;\n      }\n    }\n    if (argList.length === 0) {\n      argList.push(id);\n    }\n    const vertex = this.vertices.get(id);\n    if (vertex) {\n      vertex.haveCallback = true;\n      this.funs.push(() => {\n        const elem = document.querySelector(`[id=\"${domId}\"]`);\n        if (elem !== null) {\n          elem.addEventListener(\n            \"click\",\n            () => {\n              utils_default.runFunc(functionName, ...argList);\n            },\n            false\n          );\n        }\n      });\n    }\n  }\n  /**\n   * Called by parser when a link is found. Adds the URL to the vertex data.\n   *\n   * @param ids - Comma separated list of ids\n   * @param linkStr - URL to create a link for\n   * @param target - Target attribute for the link\n   */\n  setLink(ids, linkStr, target) {\n    ids.split(\",\").forEach((id) => {\n      const vertex = this.vertices.get(id);\n      if (vertex !== void 0) {\n        vertex.link = utils_default.formatUrl(linkStr, this.config);\n        vertex.linkTarget = target;\n      }\n    });\n    this.setClass(ids, \"clickable\");\n  }\n  getTooltip(id) {\n    return this.tooltips.get(id);\n  }\n  /**\n   * Called by parser when a click definition is found. Registers an event handler.\n   *\n   * @param ids - Comma separated list of ids\n   * @param functionName - Function to be called on click\n   * @param functionArgs - Arguments to be passed to the function\n   */\n  setClickEvent(ids, functionName, functionArgs) {\n    ids.split(\",\").forEach((id) => {\n      this.setClickFun(id, functionName, functionArgs);\n    });\n    this.setClass(ids, \"clickable\");\n  }\n  bindFunctions(element) {\n    this.funs.forEach((fun) => {\n      fun(element);\n    });\n  }\n  getDirection() {\n    return this.direction?.trim();\n  }\n  /**\n   * Retrieval function for fetching the found nodes after parsing has completed.\n   *\n   */\n  getVertices() {\n    return this.vertices;\n  }\n  /**\n   * Retrieval function for fetching the found links after parsing has completed.\n   *\n   */\n  getEdges() {\n    return this.edges;\n  }\n  /**\n   * Retrieval function for fetching the found class definitions after parsing has completed.\n   *\n   */\n  getClasses() {\n    return this.classes;\n  }\n  setupToolTips(element) {\n    let tooltipElem = select(\".mermaidTooltip\");\n    if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n      tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0);\n    }\n    const svg = select(element).select(\"svg\");\n    const nodes = svg.selectAll(\"g.node\");\n    nodes.on(\"mouseover\", (e) => {\n      const el = select(e.currentTarget);\n      const title = el.attr(\"title\");\n      if (title === null) {\n        return;\n      }\n      const rect = e.currentTarget?.getBoundingClientRect();\n      tooltipElem.transition().duration(200).style(\"opacity\", \".9\");\n      tooltipElem.text(el.attr(\"title\")).style(\"left\", window.scrollX + rect.left + (rect.right - rect.left) / 2 + \"px\").style(\"top\", window.scrollY + rect.bottom + \"px\");\n      tooltipElem.html(tooltipElem.html().replace(/&lt;br\\/&gt;/g, \"<br/>\"));\n      el.classed(\"hover\", true);\n    }).on(\"mouseout\", (e) => {\n      tooltipElem.transition().duration(500).style(\"opacity\", 0);\n      const el = select(e.currentTarget);\n      el.classed(\"hover\", false);\n    });\n  }\n  /**\n   * Clears the internal graph db so that a new graph can be parsed.\n   *\n   */\n  clear(ver = \"gen-2\") {\n    this.vertices = /* @__PURE__ */ new Map();\n    this.classes = /* @__PURE__ */ new Map();\n    this.edges = [];\n    this.funs = [this.setupToolTips.bind(this)];\n    this.subGraphs = [];\n    this.subGraphLookup = /* @__PURE__ */ new Map();\n    this.subCount = 0;\n    this.tooltips = /* @__PURE__ */ new Map();\n    this.firstGraphFlag = true;\n    this.version = ver;\n    this.config = getConfig();\n    clear();\n  }\n  setGen(ver) {\n    this.version = ver || \"gen-2\";\n  }\n  defaultStyle() {\n    return \"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;\";\n  }\n  addSubGraph(_id, list, _title) {\n    let id = _id.text.trim();\n    let title = _title.text;\n    if (_id === _title && /\\s/.exec(_title.text)) {\n      id = void 0;\n    }\n    const uniq = /* @__PURE__ */ __name((a) => {\n      const prims = { boolean: {}, number: {}, string: {} };\n      const objs = [];\n      let dir2;\n      const nodeList2 = a.filter(function(item) {\n        const type = typeof item;\n        if (item.stmt && item.stmt === \"dir\") {\n          dir2 = item.value;\n          return false;\n        }\n        if (item.trim() === \"\") {\n          return false;\n        }\n        if (type in prims) {\n          return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;\n        } else {\n          return objs.includes(item) ? false : objs.push(item);\n        }\n      });\n      return { nodeList: nodeList2, dir: dir2 };\n    }, \"uniq\");\n    const { nodeList, dir } = uniq(list.flat());\n    if (this.version === \"gen-1\") {\n      for (let i = 0; i < nodeList.length; i++) {\n        nodeList[i] = this.lookUpDomId(nodeList[i]);\n      }\n    }\n    id = id ?? \"subGraph\" + this.subCount;\n    title = title || \"\";\n    title = this.sanitizeText(title);\n    this.subCount = this.subCount + 1;\n    const subGraph = {\n      id,\n      nodes: nodeList,\n      title: title.trim(),\n      classes: [],\n      dir,\n      labelType: _title.type\n    };\n    log.info(\"Adding\", subGraph.id, subGraph.nodes, subGraph.dir);\n    subGraph.nodes = this.makeUniq(subGraph, this.subGraphs).nodes;\n    this.subGraphs.push(subGraph);\n    this.subGraphLookup.set(id, subGraph);\n    return id;\n  }\n  getPosForId(id) {\n    for (const [i, subGraph] of this.subGraphs.entries()) {\n      if (subGraph.id === id) {\n        return i;\n      }\n    }\n    return -1;\n  }\n  indexNodes2(id, pos) {\n    const nodes = this.subGraphs[pos].nodes;\n    this.secCount = this.secCount + 1;\n    if (this.secCount > 2e3) {\n      return {\n        result: false,\n        count: 0\n      };\n    }\n    this.posCrossRef[this.secCount] = pos;\n    if (this.subGraphs[pos].id === id) {\n      return {\n        result: true,\n        count: 0\n      };\n    }\n    let count = 0;\n    let posCount = 1;\n    while (count < nodes.length) {\n      const childPos = this.getPosForId(nodes[count]);\n      if (childPos >= 0) {\n        const res = this.indexNodes2(id, childPos);\n        if (res.result) {\n          return {\n            result: true,\n            count: posCount + res.count\n          };\n        } else {\n          posCount = posCount + res.count;\n        }\n      }\n      count = count + 1;\n    }\n    return {\n      result: false,\n      count: posCount\n    };\n  }\n  getDepthFirstPos(pos) {\n    return this.posCrossRef[pos];\n  }\n  indexNodes() {\n    this.secCount = -1;\n    if (this.subGraphs.length > 0) {\n      this.indexNodes2(\"none\", this.subGraphs.length - 1);\n    }\n  }\n  getSubGraphs() {\n    return this.subGraphs;\n  }\n  firstGraph() {\n    if (this.firstGraphFlag) {\n      this.firstGraphFlag = false;\n      return true;\n    }\n    return false;\n  }\n  destructStartLink(_str) {\n    let str = _str.trim();\n    let type = \"arrow_open\";\n    switch (str[0]) {\n      case \"<\":\n        type = \"arrow_point\";\n        str = str.slice(1);\n        break;\n      case \"x\":\n        type = \"arrow_cross\";\n        str = str.slice(1);\n        break;\n      case \"o\":\n        type = \"arrow_circle\";\n        str = str.slice(1);\n        break;\n    }\n    let stroke = \"normal\";\n    if (str.includes(\"=\")) {\n      stroke = \"thick\";\n    }\n    if (str.includes(\".\")) {\n      stroke = \"dotted\";\n    }\n    return { type, stroke };\n  }\n  countChar(char, str) {\n    const length = str.length;\n    let count = 0;\n    for (let i = 0; i < length; ++i) {\n      if (str[i] === char) {\n        ++count;\n      }\n    }\n    return count;\n  }\n  destructEndLink(_str) {\n    const str = _str.trim();\n    let line = str.slice(0, -1);\n    let type = \"arrow_open\";\n    switch (str.slice(-1)) {\n      case \"x\":\n        type = \"arrow_cross\";\n        if (str.startsWith(\"x\")) {\n          type = \"double_\" + type;\n          line = line.slice(1);\n        }\n        break;\n      case \">\":\n        type = \"arrow_point\";\n        if (str.startsWith(\"<\")) {\n          type = \"double_\" + type;\n          line = line.slice(1);\n        }\n        break;\n      case \"o\":\n        type = \"arrow_circle\";\n        if (str.startsWith(\"o\")) {\n          type = \"double_\" + type;\n          line = line.slice(1);\n        }\n        break;\n    }\n    let stroke = \"normal\";\n    let length = line.length - 1;\n    if (line.startsWith(\"=\")) {\n      stroke = \"thick\";\n    }\n    if (line.startsWith(\"~\")) {\n      stroke = \"invisible\";\n    }\n    const dots = this.countChar(\".\", line);\n    if (dots) {\n      stroke = \"dotted\";\n      length = dots;\n    }\n    return { type, stroke, length };\n  }\n  destructLink(_str, _startStr) {\n    const info = this.destructEndLink(_str);\n    let startInfo;\n    if (_startStr) {\n      startInfo = this.destructStartLink(_startStr);\n      if (startInfo.stroke !== info.stroke) {\n        return { type: \"INVALID\", stroke: \"INVALID\" };\n      }\n      if (startInfo.type === \"arrow_open\") {\n        startInfo.type = info.type;\n      } else {\n        if (startInfo.type !== info.type) {\n          return { type: \"INVALID\", stroke: \"INVALID\" };\n        }\n        startInfo.type = \"double_\" + startInfo.type;\n      }\n      if (startInfo.type === \"double_arrow\") {\n        startInfo.type = \"double_arrow_point\";\n      }\n      startInfo.length = info.length;\n      return startInfo;\n    }\n    return info;\n  }\n  // Todo optimizer this by caching existing nodes\n  exists(allSgs, _id) {\n    for (const sg of allSgs) {\n      if (sg.nodes.includes(_id)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  /**\n   * Deletes an id from all subgraphs\n   *\n   */\n  makeUniq(sg, allSubgraphs) {\n    const res = [];\n    sg.nodes.forEach((_id, pos) => {\n      if (!this.exists(allSubgraphs, _id)) {\n        res.push(sg.nodes[pos]);\n      }\n    });\n    return { nodes: res };\n  }\n  getTypeFromVertex(vertex) {\n    if (vertex.img) {\n      return \"imageSquare\";\n    }\n    if (vertex.icon) {\n      if (vertex.form === \"circle\") {\n        return \"iconCircle\";\n      }\n      if (vertex.form === \"square\") {\n        return \"iconSquare\";\n      }\n      if (vertex.form === \"rounded\") {\n        return \"iconRounded\";\n      }\n      return \"icon\";\n    }\n    switch (vertex.type) {\n      case \"square\":\n      case void 0:\n        return \"squareRect\";\n      case \"round\":\n        return \"roundedRect\";\n      case \"ellipse\":\n        return \"ellipse\";\n      default:\n        return vertex.type;\n    }\n  }\n  findNode(nodes, id) {\n    return nodes.find((node) => node.id === id);\n  }\n  destructEdgeType(type) {\n    let arrowTypeStart = \"none\";\n    let arrowTypeEnd = \"arrow_point\";\n    switch (type) {\n      case \"arrow_point\":\n      case \"arrow_circle\":\n      case \"arrow_cross\":\n        arrowTypeEnd = type;\n        break;\n      case \"double_arrow_point\":\n      case \"double_arrow_circle\":\n      case \"double_arrow_cross\":\n        arrowTypeStart = type.replace(\"double_\", \"\");\n        arrowTypeEnd = arrowTypeStart;\n        break;\n    }\n    return { arrowTypeStart, arrowTypeEnd };\n  }\n  addNodeFromVertex(vertex, nodes, parentDB, subGraphDB, config, look) {\n    const parentId = parentDB.get(vertex.id);\n    const isGroup = subGraphDB.get(vertex.id) ?? false;\n    const node = this.findNode(nodes, vertex.id);\n    if (node) {\n      node.cssStyles = vertex.styles;\n      node.cssCompiledStyles = this.getCompiledStyles(vertex.classes);\n      node.cssClasses = vertex.classes.join(\" \");\n    } else {\n      const baseNode = {\n        id: vertex.id,\n        label: vertex.text,\n        labelStyle: \"\",\n        parentId,\n        padding: config.flowchart?.padding || 8,\n        cssStyles: vertex.styles,\n        cssCompiledStyles: this.getCompiledStyles([\"default\", \"node\", ...vertex.classes]),\n        cssClasses: \"default \" + vertex.classes.join(\" \"),\n        dir: vertex.dir,\n        domId: vertex.domId,\n        look,\n        link: vertex.link,\n        linkTarget: vertex.linkTarget,\n        tooltip: this.getTooltip(vertex.id),\n        icon: vertex.icon,\n        pos: vertex.pos,\n        img: vertex.img,\n        assetWidth: vertex.assetWidth,\n        assetHeight: vertex.assetHeight,\n        constraint: vertex.constraint\n      };\n      if (isGroup) {\n        nodes.push({\n          ...baseNode,\n          isGroup: true,\n          shape: \"rect\"\n        });\n      } else {\n        nodes.push({\n          ...baseNode,\n          isGroup: false,\n          shape: this.getTypeFromVertex(vertex)\n        });\n      }\n    }\n  }\n  getCompiledStyles(classDefs) {\n    let compiledStyles = [];\n    for (const customClass of classDefs) {\n      const cssClass = this.classes.get(customClass);\n      if (cssClass?.styles) {\n        compiledStyles = [...compiledStyles, ...cssClass.styles ?? []].map((s) => s.trim());\n      }\n      if (cssClass?.textStyles) {\n        compiledStyles = [...compiledStyles, ...cssClass.textStyles ?? []].map((s) => s.trim());\n      }\n    }\n    return compiledStyles;\n  }\n  getData() {\n    const config = getConfig();\n    const nodes = [];\n    const edges = [];\n    const subGraphs = this.getSubGraphs();\n    const parentDB = /* @__PURE__ */ new Map();\n    const subGraphDB = /* @__PURE__ */ new Map();\n    for (let i = subGraphs.length - 1; i >= 0; i--) {\n      const subGraph = subGraphs[i];\n      if (subGraph.nodes.length > 0) {\n        subGraphDB.set(subGraph.id, true);\n      }\n      for (const id of subGraph.nodes) {\n        parentDB.set(id, subGraph.id);\n      }\n    }\n    for (let i = subGraphs.length - 1; i >= 0; i--) {\n      const subGraph = subGraphs[i];\n      nodes.push({\n        id: subGraph.id,\n        label: subGraph.title,\n        labelStyle: \"\",\n        parentId: parentDB.get(subGraph.id),\n        padding: 8,\n        cssCompiledStyles: this.getCompiledStyles(subGraph.classes),\n        cssClasses: subGraph.classes.join(\" \"),\n        shape: \"rect\",\n        dir: subGraph.dir,\n        isGroup: true,\n        look: config.look\n      });\n    }\n    const n = this.getVertices();\n    n.forEach((vertex) => {\n      this.addNodeFromVertex(vertex, nodes, parentDB, subGraphDB, config, config.look || \"classic\");\n    });\n    const e = this.getEdges();\n    e.forEach((rawEdge, index) => {\n      const { arrowTypeStart, arrowTypeEnd } = this.destructEdgeType(rawEdge.type);\n      const styles = [...e.defaultStyle ?? []];\n      if (rawEdge.style) {\n        styles.push(...rawEdge.style);\n      }\n      const edge = {\n        id: getEdgeId(rawEdge.start, rawEdge.end, { counter: index, prefix: \"L\" }, rawEdge.id),\n        isUserDefinedId: rawEdge.isUserDefinedId,\n        start: rawEdge.start,\n        end: rawEdge.end,\n        type: rawEdge.type ?? \"normal\",\n        label: rawEdge.text,\n        labelpos: \"c\",\n        thickness: rawEdge.stroke,\n        minlen: rawEdge.length,\n        classes: rawEdge?.stroke === \"invisible\" ? \"\" : \"edge-thickness-normal edge-pattern-solid flowchart-link\",\n        arrowTypeStart: rawEdge?.stroke === \"invisible\" || rawEdge?.type === \"arrow_open\" ? \"none\" : arrowTypeStart,\n        arrowTypeEnd: rawEdge?.stroke === \"invisible\" || rawEdge?.type === \"arrow_open\" ? \"none\" : arrowTypeEnd,\n        arrowheadStyle: \"fill: #333\",\n        cssCompiledStyles: this.getCompiledStyles(rawEdge.classes),\n        labelStyle: styles,\n        style: styles,\n        pattern: rawEdge.stroke,\n        look: config.look,\n        animate: rawEdge.animate,\n        animation: rawEdge.animation,\n        curve: rawEdge.interpolate || this.edges.defaultInterpolate || config.flowchart?.curve\n      };\n      edges.push(edge);\n    });\n    return { nodes, edges, other: {}, config };\n  }\n  defaultConfig() {\n    return defaultConfig.flowchart;\n  }\n};\n\n// src/diagrams/flowchart/flowRenderer-v3-unified.ts\nimport { select as select2 } from \"d3\";\nvar getClasses = /* @__PURE__ */ __name(function(text, diagramObj) {\n  return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n  log.info(\"REF0:\");\n  log.info(\"Drawing state diagram (v2)\", id);\n  const { securityLevel, flowchart: conf, layout } = getConfig();\n  let sandboxElement;\n  if (securityLevel === \"sandbox\") {\n    sandboxElement = select2(\"#i\" + id);\n  }\n  const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n  log.debug(\"Before getData: \");\n  const data4Layout = diag.db.getData();\n  log.debug(\"Data: \", data4Layout);\n  const svg = getDiagramElement(id, securityLevel);\n  const direction = diag.db.getDirection();\n  data4Layout.type = diag.type;\n  data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(layout);\n  if (data4Layout.layoutAlgorithm === \"dagre\" && layout === \"elk\") {\n    log.warn(\n      \"flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback.\"\n    );\n  }\n  data4Layout.direction = direction;\n  data4Layout.nodeSpacing = conf?.nodeSpacing || 50;\n  data4Layout.rankSpacing = conf?.rankSpacing || 50;\n  data4Layout.markers = [\"point\", \"circle\", \"cross\"];\n  data4Layout.diagramId = id;\n  log.debug(\"REF1:\", data4Layout);\n  await render(data4Layout, svg);\n  const padding = data4Layout.config.flowchart?.diagramPadding ?? 8;\n  utils_default.insertTitle(\n    svg,\n    \"flowchartTitleText\",\n    conf?.titleTopMargin || 0,\n    diag.db.getDiagramTitle()\n  );\n  setupViewPortForSVG(svg, padding, \"flowchart\", conf?.useMaxWidth || false);\n  for (const vertex of data4Layout.nodes) {\n    const node = select2(`#${id} [id=\"${vertex.id}\"]`);\n    if (!node || !vertex.link) {\n      continue;\n    }\n    const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n    link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.cssClasses);\n    link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n    if (securityLevel === \"sandbox\") {\n      link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n    } else if (vertex.linkTarget) {\n      link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n    }\n    const linkNode = node.insert(function() {\n      return link;\n    }, \":first-child\");\n    const shape = node.select(\".label-container\");\n    if (shape) {\n      linkNode.append(function() {\n        return shape.node();\n      });\n    }\n    const label = node.select(\".label\");\n    if (label) {\n      linkNode.append(function() {\n        return label.node();\n      });\n    }\n  }\n}, \"draw\");\nvar flowRenderer_v3_unified_default = {\n  getClasses,\n  draw\n};\n\n// src/diagrams/flowchart/parser/flow.jison\nvar parser = function() {\n  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n    for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n    return o2;\n  }, \"o\"), $V0 = [1, 4], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 8, 9, 10, 11, 27, 34, 36, 38, 44, 60, 84, 85, 86, 87, 88, 89, 102, 105, 106, 109, 111, 114, 115, 116, 121, 122, 123, 124], $V4 = [2, 2], $V5 = [1, 13], $V6 = [1, 14], $V7 = [1, 15], $V8 = [1, 16], $V9 = [1, 23], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 49], $Ve = [1, 48], $Vf = [1, 29], $Vg = [1, 30], $Vh = [1, 31], $Vi = [1, 32], $Vj = [1, 33], $Vk = [1, 44], $Vl = [1, 46], $Vm = [1, 42], $Vn = [1, 47], $Vo = [1, 43], $Vp = [1, 50], $Vq = [1, 45], $Vr = [1, 51], $Vs = [1, 52], $Vt = [1, 34], $Vu = [1, 35], $Vv = [1, 36], $Vw = [1, 37], $Vx = [1, 57], $Vy = [1, 8, 9, 10, 11, 27, 32, 34, 36, 38, 44, 60, 84, 85, 86, 87, 88, 89, 102, 105, 106, 109, 111, 114, 115, 116, 121, 122, 123, 124], $Vz = [1, 61], $VA = [1, 60], $VB = [1, 62], $VC = [8, 9, 11, 75, 77, 78], $VD = [1, 78], $VE = [1, 91], $VF = [1, 96], $VG = [1, 95], $VH = [1, 92], $VI = [1, 88], $VJ = [1, 94], $VK = [1, 90], $VL = [1, 97], $VM = [1, 93], $VN = [1, 98], $VO = [1, 89], $VP = [8, 9, 10, 11, 40, 75, 77, 78], $VQ = [8, 9, 10, 11, 40, 46, 75, 77, 78], $VR = [8, 9, 10, 11, 29, 40, 44, 46, 48, 50, 52, 54, 56, 58, 60, 63, 65, 67, 68, 70, 75, 77, 78, 89, 102, 105, 106, 109, 111, 114, 115, 116], $VS = [8, 9, 11, 44, 60, 75, 77, 78, 89, 102, 105, 106, 109, 111, 114, 115, 116], $VT = [44, 60, 89, 102, 105, 106, 109, 111, 114, 115, 116], $VU = [1, 121], $VV = [1, 122], $VW = [1, 124], $VX = [1, 123], $VY = [44, 60, 62, 74, 89, 102, 105, 106, 109, 111, 114, 115, 116], $VZ = [1, 133], $V_ = [1, 147], $V$ = [1, 148], $V01 = [1, 149], $V11 = [1, 150], $V21 = [1, 135], $V31 = [1, 137], $V41 = [1, 141], $V51 = [1, 142], $V61 = [1, 143], $V71 = [1, 144], $V81 = [1, 145], $V91 = [1, 146], $Va1 = [1, 151], $Vb1 = [1, 152], $Vc1 = [1, 131], $Vd1 = [1, 132], $Ve1 = [1, 139], $Vf1 = [1, 134], $Vg1 = [1, 138], $Vh1 = [1, 136], $Vi1 = [8, 9, 10, 11, 27, 32, 34, 36, 38, 44, 60, 84, 85, 86, 87, 88, 89, 102, 105, 106, 109, 111, 114, 115, 116, 121, 122, 123, 124], $Vj1 = [1, 154], $Vk1 = [1, 156], $Vl1 = [8, 9, 11], $Vm1 = [8, 9, 10, 11, 14, 44, 60, 89, 105, 106, 109, 111, 114, 115, 116], $Vn1 = [1, 176], $Vo1 = [1, 172], $Vp1 = [1, 173], $Vq1 = [1, 177], $Vr1 = [1, 174], $Vs1 = [1, 175], $Vt1 = [77, 116, 119], $Vu1 = [8, 9, 10, 11, 12, 14, 27, 29, 32, 44, 60, 75, 84, 85, 86, 87, 88, 89, 90, 105, 109, 111, 114, 115, 116], $Vv1 = [10, 106], $Vw1 = [31, 49, 51, 53, 55, 57, 62, 64, 66, 67, 69, 71, 116, 117, 118], $Vx1 = [1, 247], $Vy1 = [1, 245], $Vz1 = [1, 249], $VA1 = [1, 243], $VB1 = [1, 244], $VC1 = [1, 246], $VD1 = [1, 248], $VE1 = [1, 250], $VF1 = [1, 268], $VG1 = [8, 9, 11, 106], $VH1 = [8, 9, 10, 11, 60, 84, 105, 106, 109, 110, 111, 112];\n  var parser2 = {\n    trace: /* @__PURE__ */ __name(function trace() {\n    }, \"trace\"),\n    yy: {},\n    symbols_: { \"error\": 2, \"start\": 3, \"graphConfig\": 4, \"document\": 5, \"line\": 6, \"statement\": 7, \"SEMI\": 8, \"NEWLINE\": 9, \"SPACE\": 10, \"EOF\": 11, \"GRAPH\": 12, \"NODIR\": 13, \"DIR\": 14, \"FirstStmtSeparator\": 15, \"ending\": 16, \"endToken\": 17, \"spaceList\": 18, \"spaceListNewline\": 19, \"vertexStatement\": 20, \"separator\": 21, \"styleStatement\": 22, \"linkStyleStatement\": 23, \"classDefStatement\": 24, \"classStatement\": 25, \"clickStatement\": 26, \"subgraph\": 27, \"textNoTags\": 28, \"SQS\": 29, \"text\": 30, \"SQE\": 31, \"end\": 32, \"direction\": 33, \"acc_title\": 34, \"acc_title_value\": 35, \"acc_descr\": 36, \"acc_descr_value\": 37, \"acc_descr_multiline_value\": 38, \"shapeData\": 39, \"SHAPE_DATA\": 40, \"link\": 41, \"node\": 42, \"styledVertex\": 43, \"AMP\": 44, \"vertex\": 45, \"STYLE_SEPARATOR\": 46, \"idString\": 47, \"DOUBLECIRCLESTART\": 48, \"DOUBLECIRCLEEND\": 49, \"PS\": 50, \"PE\": 51, \"(-\": 52, \"-)\": 53, \"STADIUMSTART\": 54, \"STADIUMEND\": 55, \"SUBROUTINESTART\": 56, \"SUBROUTINEEND\": 57, \"VERTEX_WITH_PROPS_START\": 58, \"NODE_STRING[field]\": 59, \"COLON\": 60, \"NODE_STRING[value]\": 61, \"PIPE\": 62, \"CYLINDERSTART\": 63, \"CYLINDEREND\": 64, \"DIAMOND_START\": 65, \"DIAMOND_STOP\": 66, \"TAGEND\": 67, \"TRAPSTART\": 68, \"TRAPEND\": 69, \"INVTRAPSTART\": 70, \"INVTRAPEND\": 71, \"linkStatement\": 72, \"arrowText\": 73, \"TESTSTR\": 74, \"START_LINK\": 75, \"edgeText\": 76, \"LINK\": 77, \"LINK_ID\": 78, \"edgeTextToken\": 79, \"STR\": 80, \"MD_STR\": 81, \"textToken\": 82, \"keywords\": 83, \"STYLE\": 84, \"LINKSTYLE\": 85, \"CLASSDEF\": 86, \"CLASS\": 87, \"CLICK\": 88, \"DOWN\": 89, \"UP\": 90, \"textNoTagsToken\": 91, \"stylesOpt\": 92, \"idString[vertex]\": 93, \"idString[class]\": 94, \"CALLBACKNAME\": 95, \"CALLBACKARGS\": 96, \"HREF\": 97, \"LINK_TARGET\": 98, \"STR[link]\": 99, \"STR[tooltip]\": 100, \"alphaNum\": 101, \"DEFAULT\": 102, \"numList\": 103, \"INTERPOLATE\": 104, \"NUM\": 105, \"COMMA\": 106, \"style\": 107, \"styleComponent\": 108, \"NODE_STRING\": 109, \"UNIT\": 110, \"BRKT\": 111, \"PCT\": 112, \"idStringToken\": 113, \"MINUS\": 114, \"MULT\": 115, \"UNICODE_TEXT\": 116, \"TEXT\": 117, \"TAGSTART\": 118, \"EDGE_TEXT\": 119, \"alphaNumToken\": 120, \"direction_tb\": 121, \"direction_bt\": 122, \"direction_rl\": 123, \"direction_lr\": 124, \"$accept\": 0, \"$end\": 1 },\n    terminals_: { 2: \"error\", 8: \"SEMI\", 9: \"NEWLINE\", 10: \"SPACE\", 11: \"EOF\", 12: \"GRAPH\", 13: \"NODIR\", 14: \"DIR\", 27: \"subgraph\", 29: \"SQS\", 31: \"SQE\", 32: \"end\", 34: \"acc_title\", 35: \"acc_title_value\", 36: \"acc_descr\", 37: \"acc_descr_value\", 38: \"acc_descr_multiline_value\", 40: \"SHAPE_DATA\", 44: \"AMP\", 46: \"STYLE_SEPARATOR\", 48: \"DOUBLECIRCLESTART\", 49: \"DOUBLECIRCLEEND\", 50: \"PS\", 51: \"PE\", 52: \"(-\", 53: \"-)\", 54: \"STADIUMSTART\", 55: \"STADIUMEND\", 56: \"SUBROUTINESTART\", 57: \"SUBROUTINEEND\", 58: \"VERTEX_WITH_PROPS_START\", 59: \"NODE_STRING[field]\", 60: \"COLON\", 61: \"NODE_STRING[value]\", 62: \"PIPE\", 63: \"CYLINDERSTART\", 64: \"CYLINDEREND\", 65: \"DIAMOND_START\", 66: \"DIAMOND_STOP\", 67: \"TAGEND\", 68: \"TRAPSTART\", 69: \"TRAPEND\", 70: \"INVTRAPSTART\", 71: \"INVTRAPEND\", 74: \"TESTSTR\", 75: \"START_LINK\", 77: \"LINK\", 78: \"LINK_ID\", 80: \"STR\", 81: \"MD_STR\", 84: \"STYLE\", 85: \"LINKSTYLE\", 86: \"CLASSDEF\", 87: \"CLASS\", 88: \"CLICK\", 89: \"DOWN\", 90: \"UP\", 93: \"idString[vertex]\", 94: \"idString[class]\", 95: \"CALLBACKNAME\", 96: \"CALLBACKARGS\", 97: \"HREF\", 98: \"LINK_TARGET\", 99: \"STR[link]\", 100: \"STR[tooltip]\", 102: \"DEFAULT\", 104: \"INTERPOLATE\", 105: \"NUM\", 106: \"COMMA\", 109: \"NODE_STRING\", 110: \"UNIT\", 111: \"BRKT\", 112: \"PCT\", 114: \"MINUS\", 115: \"MULT\", 116: \"UNICODE_TEXT\", 117: \"TEXT\", 118: \"TAGSTART\", 119: \"EDGE_TEXT\", 121: \"direction_tb\", 122: \"direction_bt\", 123: \"direction_rl\", 124: \"direction_lr\" },\n    productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 2], [4, 3], [16, 2], [16, 1], [17, 1], [17, 1], [17, 1], [15, 1], [15, 1], [15, 2], [19, 2], [19, 2], [19, 1], [19, 1], [18, 2], [18, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 4], [7, 1], [7, 2], [7, 2], [7, 1], [21, 1], [21, 1], [21, 1], [39, 2], [39, 1], [20, 4], [20, 3], [20, 4], [20, 2], [20, 2], [20, 1], [42, 1], [42, 6], [42, 5], [43, 1], [43, 3], [45, 4], [45, 4], [45, 6], [45, 4], [45, 4], [45, 4], [45, 8], [45, 4], [45, 4], [45, 4], [45, 6], [45, 4], [45, 4], [45, 4], [45, 4], [45, 4], [45, 1], [41, 2], [41, 3], [41, 3], [41, 1], [41, 3], [41, 4], [76, 1], [76, 2], [76, 1], [76, 1], [72, 1], [72, 2], [73, 3], [30, 1], [30, 2], [30, 1], [30, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [28, 1], [28, 2], [28, 1], [28, 1], [24, 5], [25, 5], [26, 2], [26, 4], [26, 3], [26, 5], [26, 3], [26, 5], [26, 5], [26, 7], [26, 2], [26, 4], [26, 2], [26, 4], [26, 4], [26, 6], [22, 5], [23, 5], [23, 5], [23, 9], [23, 9], [23, 7], [23, 7], [103, 1], [103, 3], [92, 1], [92, 3], [107, 1], [107, 2], [108, 1], [108, 1], [108, 1], [108, 1], [108, 1], [108, 1], [108, 1], [108, 1], [113, 1], [113, 1], [113, 1], [113, 1], [113, 1], [113, 1], [113, 1], [113, 1], [113, 1], [113, 1], [113, 1], [82, 1], [82, 1], [82, 1], [82, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [79, 1], [79, 1], [120, 1], [120, 1], [120, 1], [120, 1], [120, 1], [120, 1], [120, 1], [120, 1], [120, 1], [120, 1], [120, 1], [47, 1], [47, 2], [101, 1], [101, 2], [33, 1], [33, 1], [33, 1], [33, 1]],\n    performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n      var $0 = $$.length - 1;\n      switch (yystate) {\n        case 2:\n          this.$ = [];\n          break;\n        case 3:\n          if (!Array.isArray($$[$0]) || $$[$0].length > 0) {\n            $$[$0 - 1].push($$[$0]);\n          }\n          this.$ = $$[$0 - 1];\n          break;\n        case 4:\n        case 183:\n          this.$ = $$[$0];\n          break;\n        case 11:\n          yy.setDirection(\"TB\");\n          this.$ = \"TB\";\n          break;\n        case 12:\n          yy.setDirection($$[$0 - 1]);\n          this.$ = $$[$0 - 1];\n          break;\n        case 27:\n          this.$ = $$[$0 - 1].nodes;\n          break;\n        case 28:\n        case 29:\n        case 30:\n        case 31:\n        case 32:\n          this.$ = [];\n          break;\n        case 33:\n          this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);\n          break;\n        case 34:\n          this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);\n          break;\n        case 35:\n          this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);\n          break;\n        case 37:\n          this.$ = $$[$0].trim();\n          yy.setAccTitle(this.$);\n          break;\n        case 38:\n        case 39:\n          this.$ = $$[$0].trim();\n          yy.setAccDescription(this.$);\n          break;\n        case 43:\n          this.$ = $$[$0 - 1] + $$[$0];\n          break;\n        case 44:\n          this.$ = $$[$0];\n          break;\n        case 45:\n          yy.addVertex($$[$0 - 1][$$[$0 - 1].length - 1], void 0, void 0, void 0, void 0, void 0, void 0, $$[$0]);\n          yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);\n          this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };\n          break;\n        case 46:\n          yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);\n          this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };\n          break;\n        case 47:\n          yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);\n          this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };\n          break;\n        case 48:\n          this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };\n          break;\n        case 49:\n          yy.addVertex($$[$0 - 1][$$[$0 - 1].length - 1], void 0, void 0, void 0, void 0, void 0, void 0, $$[$0]);\n          this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1], shapeData: $$[$0] };\n          break;\n        case 50:\n          this.$ = { stmt: $$[$0], nodes: $$[$0] };\n          break;\n        case 51:\n          this.$ = [$$[$0]];\n          break;\n        case 52:\n          yy.addVertex($$[$0 - 5][$$[$0 - 5].length - 1], void 0, void 0, void 0, void 0, void 0, void 0, $$[$0 - 4]);\n          this.$ = $$[$0 - 5].concat($$[$0]);\n          break;\n        case 53:\n          this.$ = $$[$0 - 4].concat($$[$0]);\n          break;\n        case 54:\n          this.$ = $$[$0];\n          break;\n        case 55:\n          this.$ = $$[$0 - 2];\n          yy.setClass($$[$0 - 2], $$[$0]);\n          break;\n        case 56:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"square\");\n          break;\n        case 57:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"doublecircle\");\n          break;\n        case 58:\n          this.$ = $$[$0 - 5];\n          yy.addVertex($$[$0 - 5], $$[$0 - 2], \"circle\");\n          break;\n        case 59:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"ellipse\");\n          break;\n        case 60:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"stadium\");\n          break;\n        case 61:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"subroutine\");\n          break;\n        case 62:\n          this.$ = $$[$0 - 7];\n          yy.addVertex($$[$0 - 7], $$[$0 - 1], \"rect\", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));\n          break;\n        case 63:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"cylinder\");\n          break;\n        case 64:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"round\");\n          break;\n        case 65:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"diamond\");\n          break;\n        case 66:\n          this.$ = $$[$0 - 5];\n          yy.addVertex($$[$0 - 5], $$[$0 - 2], \"hexagon\");\n          break;\n        case 67:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"odd\");\n          break;\n        case 68:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"trapezoid\");\n          break;\n        case 69:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"inv_trapezoid\");\n          break;\n        case 70:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"lean_right\");\n          break;\n        case 71:\n          this.$ = $$[$0 - 3];\n          yy.addVertex($$[$0 - 3], $$[$0 - 1], \"lean_left\");\n          break;\n        case 72:\n          this.$ = $$[$0];\n          yy.addVertex($$[$0]);\n          break;\n        case 73:\n          $$[$0 - 1].text = $$[$0];\n          this.$ = $$[$0 - 1];\n          break;\n        case 74:\n        case 75:\n          $$[$0 - 2].text = $$[$0 - 1];\n          this.$ = $$[$0 - 2];\n          break;\n        case 76:\n          this.$ = $$[$0];\n          break;\n        case 77:\n          var inf = yy.destructLink($$[$0], $$[$0 - 2]);\n          this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length, \"text\": $$[$0 - 1] };\n          break;\n        case 78:\n          var inf = yy.destructLink($$[$0], $$[$0 - 2]);\n          this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length, \"text\": $$[$0 - 1], \"id\": $$[$0 - 3] };\n          break;\n        case 79:\n          this.$ = { text: $$[$0], type: \"text\" };\n          break;\n        case 80:\n          this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n          break;\n        case 81:\n          this.$ = { text: $$[$0], type: \"string\" };\n          break;\n        case 82:\n          this.$ = { text: $$[$0], type: \"markdown\" };\n          break;\n        case 83:\n          var inf = yy.destructLink($$[$0]);\n          this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length };\n          break;\n        case 84:\n          var inf = yy.destructLink($$[$0]);\n          this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length, \"id\": $$[$0 - 1] };\n          break;\n        case 85:\n          this.$ = $$[$0 - 1];\n          break;\n        case 86:\n          this.$ = { text: $$[$0], type: \"text\" };\n          break;\n        case 87:\n          this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n          break;\n        case 88:\n          this.$ = { text: $$[$0], type: \"string\" };\n          break;\n        case 89:\n        case 104:\n          this.$ = { text: $$[$0], type: \"markdown\" };\n          break;\n        case 101:\n          this.$ = { text: $$[$0], type: \"text\" };\n          break;\n        case 102:\n          this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n          break;\n        case 103:\n          this.$ = { text: $$[$0], type: \"text\" };\n          break;\n        case 105:\n          this.$ = $$[$0 - 4];\n          yy.addClass($$[$0 - 2], $$[$0]);\n          break;\n        case 106:\n          this.$ = $$[$0 - 4];\n          yy.setClass($$[$0 - 2], $$[$0]);\n          break;\n        case 107:\n        case 115:\n          this.$ = $$[$0 - 1];\n          yy.setClickEvent($$[$0 - 1], $$[$0]);\n          break;\n        case 108:\n        case 116:\n          this.$ = $$[$0 - 3];\n          yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);\n          yy.setTooltip($$[$0 - 3], $$[$0]);\n          break;\n        case 109:\n          this.$ = $$[$0 - 2];\n          yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n          break;\n        case 110:\n          this.$ = $$[$0 - 4];\n          yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);\n          yy.setTooltip($$[$0 - 4], $$[$0]);\n          break;\n        case 111:\n          this.$ = $$[$0 - 2];\n          yy.setLink($$[$0 - 2], $$[$0]);\n          break;\n        case 112:\n          this.$ = $$[$0 - 4];\n          yy.setLink($$[$0 - 4], $$[$0 - 2]);\n          yy.setTooltip($$[$0 - 4], $$[$0]);\n          break;\n        case 113:\n          this.$ = $$[$0 - 4];\n          yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);\n          break;\n        case 114:\n          this.$ = $$[$0 - 6];\n          yy.setLink($$[$0 - 6], $$[$0 - 4], $$[$0]);\n          yy.setTooltip($$[$0 - 6], $$[$0 - 2]);\n          break;\n        case 117:\n          this.$ = $$[$0 - 1];\n          yy.setLink($$[$0 - 1], $$[$0]);\n          break;\n        case 118:\n          this.$ = $$[$0 - 3];\n          yy.setLink($$[$0 - 3], $$[$0 - 2]);\n          yy.setTooltip($$[$0 - 3], $$[$0]);\n          break;\n        case 119:\n          this.$ = $$[$0 - 3];\n          yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);\n          break;\n        case 120:\n          this.$ = $$[$0 - 5];\n          yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);\n          yy.setTooltip($$[$0 - 5], $$[$0 - 2]);\n          break;\n        case 121:\n          this.$ = $$[$0 - 4];\n          yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);\n          break;\n        case 122:\n          this.$ = $$[$0 - 4];\n          yy.updateLink([$$[$0 - 2]], $$[$0]);\n          break;\n        case 123:\n          this.$ = $$[$0 - 4];\n          yy.updateLink($$[$0 - 2], $$[$0]);\n          break;\n        case 124:\n          this.$ = $$[$0 - 8];\n          yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);\n          yy.updateLink([$$[$0 - 6]], $$[$0]);\n          break;\n        case 125:\n          this.$ = $$[$0 - 8];\n          yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);\n          yy.updateLink($$[$0 - 6], $$[$0]);\n          break;\n        case 126:\n          this.$ = $$[$0 - 6];\n          yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);\n          break;\n        case 127:\n          this.$ = $$[$0 - 6];\n          yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);\n          break;\n        case 128:\n        case 130:\n          this.$ = [$$[$0]];\n          break;\n        case 129:\n        case 131:\n          $$[$0 - 2].push($$[$0]);\n          this.$ = $$[$0 - 2];\n          break;\n        case 133:\n          this.$ = $$[$0 - 1] + $$[$0];\n          break;\n        case 181:\n          this.$ = $$[$0];\n          break;\n        case 182:\n          this.$ = $$[$0 - 1] + \"\" + $$[$0];\n          break;\n        case 184:\n          this.$ = $$[$0 - 1] + \"\" + $$[$0];\n          break;\n        case 185:\n          this.$ = { stmt: \"dir\", value: \"TB\" };\n          break;\n        case 186:\n          this.$ = { stmt: \"dir\", value: \"BT\" };\n          break;\n        case 187:\n          this.$ = { stmt: \"dir\", value: \"RL\" };\n          break;\n        case 188:\n          this.$ = { stmt: \"dir\", value: \"LR\" };\n          break;\n      }\n    }, \"anonymous\"),\n    table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 13: [1, 9], 14: [1, 10] }, { 1: [2, 1], 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 42: 28, 43: 38, 44: $Vd, 45: 39, 47: 40, 60: $Ve, 84: $Vf, 85: $Vg, 86: $Vh, 87: $Vi, 88: $Vj, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs, 121: $Vt, 122: $Vu, 123: $Vv, 124: $Vw }, o($V3, [2, 9]), o($V3, [2, 10]), o($V3, [2, 11]), { 8: [1, 54], 9: [1, 55], 10: $Vx, 15: 53, 18: 56 }, o($Vy, [2, 3]), o($Vy, [2, 4]), o($Vy, [2, 5]), o($Vy, [2, 6]), o($Vy, [2, 7]), o($Vy, [2, 8]), { 8: $Vz, 9: $VA, 11: $VB, 21: 58, 41: 59, 72: 63, 75: [1, 64], 77: [1, 66], 78: [1, 65] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 67 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 68 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 69 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 70 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 71 }, { 8: $Vz, 9: $VA, 10: [1, 72], 11: $VB, 21: 73 }, o($Vy, [2, 36]), { 35: [1, 74] }, { 37: [1, 75] }, o($Vy, [2, 39]), o($VC, [2, 50], { 18: 76, 39: 77, 10: $Vx, 40: $VD }), { 10: [1, 79] }, { 10: [1, 80] }, { 10: [1, 81] }, { 10: [1, 82] }, { 14: $VE, 44: $VF, 60: $VG, 80: [1, 86], 89: $VH, 95: [1, 83], 97: [1, 84], 101: 85, 105: $VI, 106: $VJ, 109: $VK, 111: $VL, 114: $VM, 115: $VN, 116: $VO, 120: 87 }, o($Vy, [2, 185]), o($Vy, [2, 186]), o($Vy, [2, 187]), o($Vy, [2, 188]), o($VP, [2, 51]), o($VP, [2, 54], { 46: [1, 99] }), o($VQ, [2, 72], { 113: 112, 29: [1, 100], 44: $Vd, 48: [1, 101], 50: [1, 102], 52: [1, 103], 54: [1, 104], 56: [1, 105], 58: [1, 106], 60: $Ve, 63: [1, 107], 65: [1, 108], 67: [1, 109], 68: [1, 110], 70: [1, 111], 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 114: $Vq, 115: $Vr, 116: $Vs }), o($VR, [2, 181]), o($VR, [2, 142]), o($VR, [2, 143]), o($VR, [2, 144]), o($VR, [2, 145]), o($VR, [2, 146]), o($VR, [2, 147]), o($VR, [2, 148]), o($VR, [2, 149]), o($VR, [2, 150]), o($VR, [2, 151]), o($VR, [2, 152]), o($V3, [2, 12]), o($V3, [2, 18]), o($V3, [2, 19]), { 9: [1, 113] }, o($VS, [2, 26], { 18: 114, 10: $Vx }), o($Vy, [2, 27]), { 42: 115, 43: 38, 44: $Vd, 45: 39, 47: 40, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, o($Vy, [2, 40]), o($Vy, [2, 41]), o($Vy, [2, 42]), o($VT, [2, 76], { 73: 116, 62: [1, 118], 74: [1, 117] }), { 76: 119, 79: 120, 80: $VU, 81: $VV, 116: $VW, 119: $VX }, { 75: [1, 125], 77: [1, 126] }, o($VY, [2, 83]), o($Vy, [2, 28]), o($Vy, [2, 29]), o($Vy, [2, 30]), o($Vy, [2, 31]), o($Vy, [2, 32]), { 10: $VZ, 12: $V_, 14: $V$, 27: $V01, 28: 127, 32: $V11, 44: $V21, 60: $V31, 75: $V41, 80: [1, 129], 81: [1, 130], 83: 140, 84: $V51, 85: $V61, 86: $V71, 87: $V81, 88: $V91, 89: $Va1, 90: $Vb1, 91: 128, 105: $Vc1, 109: $Vd1, 111: $Ve1, 114: $Vf1, 115: $Vg1, 116: $Vh1 }, o($Vi1, $V4, { 5: 153 }), o($Vy, [2, 37]), o($Vy, [2, 38]), o($VC, [2, 48], { 44: $Vj1 }), o($VC, [2, 49], { 18: 155, 10: $Vx, 40: $Vk1 }), o($VP, [2, 44]), { 44: $Vd, 47: 157, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, { 102: [1, 158], 103: 159, 105: [1, 160] }, { 44: $Vd, 47: 161, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, { 44: $Vd, 47: 162, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, o($Vl1, [2, 107], { 10: [1, 163], 96: [1, 164] }), { 80: [1, 165] }, o($Vl1, [2, 115], { 120: 167, 10: [1, 166], 14: $VE, 44: $VF, 60: $VG, 89: $VH, 105: $VI, 106: $VJ, 109: $VK, 111: $VL, 114: $VM, 115: $VN, 116: $VO }), o($Vl1, [2, 117], { 10: [1, 168] }), o($Vm1, [2, 183]), o($Vm1, [2, 170]), o($Vm1, [2, 171]), o($Vm1, [2, 172]), o($Vm1, [2, 173]), o($Vm1, [2, 174]), o($Vm1, [2, 175]), o($Vm1, [2, 176]), o($Vm1, [2, 177]), o($Vm1, [2, 178]), o($Vm1, [2, 179]), o($Vm1, [2, 180]), { 44: $Vd, 47: 169, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, { 30: 170, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 178, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 180, 50: [1, 179], 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 181, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 182, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 183, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 109: [1, 184] }, { 30: 185, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 186, 65: [1, 187], 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 188, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 189, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 190, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($VR, [2, 182]), o($V3, [2, 20]), o($VS, [2, 25]), o($VC, [2, 46], { 39: 191, 18: 192, 10: $Vx, 40: $VD }), o($VT, [2, 73], { 10: [1, 193] }), { 10: [1, 194] }, { 30: 195, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 77: [1, 196], 79: 197, 116: $VW, 119: $VX }, o($Vt1, [2, 79]), o($Vt1, [2, 81]), o($Vt1, [2, 82]), o($Vt1, [2, 168]), o($Vt1, [2, 169]), { 76: 198, 79: 120, 80: $VU, 81: $VV, 116: $VW, 119: $VX }, o($VY, [2, 84]), { 8: $Vz, 9: $VA, 10: $VZ, 11: $VB, 12: $V_, 14: $V$, 21: 200, 27: $V01, 29: [1, 199], 32: $V11, 44: $V21, 60: $V31, 75: $V41, 83: 140, 84: $V51, 85: $V61, 86: $V71, 87: $V81, 88: $V91, 89: $Va1, 90: $Vb1, 91: 201, 105: $Vc1, 109: $Vd1, 111: $Ve1, 114: $Vf1, 115: $Vg1, 116: $Vh1 }, o($Vu1, [2, 101]), o($Vu1, [2, 103]), o($Vu1, [2, 104]), o($Vu1, [2, 157]), o($Vu1, [2, 158]), o($Vu1, [2, 159]), o($Vu1, [2, 160]), o($Vu1, [2, 161]), o($Vu1, [2, 162]), o($Vu1, [2, 163]), o($Vu1, [2, 164]), o($Vu1, [2, 165]), o($Vu1, [2, 166]), o($Vu1, [2, 167]), o($Vu1, [2, 90]), o($Vu1, [2, 91]), o($Vu1, [2, 92]), o($Vu1, [2, 93]), o($Vu1, [2, 94]), o($Vu1, [2, 95]), o($Vu1, [2, 96]), o($Vu1, [2, 97]), o($Vu1, [2, 98]), o($Vu1, [2, 99]), o($Vu1, [2, 100]), { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 202], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 42: 28, 43: 38, 44: $Vd, 45: 39, 47: 40, 60: $Ve, 84: $Vf, 85: $Vg, 86: $Vh, 87: $Vi, 88: $Vj, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs, 121: $Vt, 122: $Vu, 123: $Vv, 124: $Vw }, { 10: $Vx, 18: 203 }, { 44: [1, 204] }, o($VP, [2, 43]), { 10: [1, 205], 44: $Vd, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 112, 114: $Vq, 115: $Vr, 116: $Vs }, { 10: [1, 206] }, { 10: [1, 207], 106: [1, 208] }, o($Vv1, [2, 128]), { 10: [1, 209], 44: $Vd, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 112, 114: $Vq, 115: $Vr, 116: $Vs }, { 10: [1, 210], 44: $Vd, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 112, 114: $Vq, 115: $Vr, 116: $Vs }, { 80: [1, 211] }, o($Vl1, [2, 109], { 10: [1, 212] }), o($Vl1, [2, 111], { 10: [1, 213] }), { 80: [1, 214] }, o($Vm1, [2, 184]), { 80: [1, 215], 98: [1, 216] }, o($VP, [2, 55], { 113: 112, 44: $Vd, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 114: $Vq, 115: $Vr, 116: $Vs }), { 31: [1, 217], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($Vw1, [2, 86]), o($Vw1, [2, 88]), o($Vw1, [2, 89]), o($Vw1, [2, 153]), o($Vw1, [2, 154]), o($Vw1, [2, 155]), o($Vw1, [2, 156]), { 49: [1, 219], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 220, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 51: [1, 221], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 53: [1, 222], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 55: [1, 223], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 57: [1, 224], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 60: [1, 225] }, { 64: [1, 226], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 66: [1, 227], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 30: 228, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 31: [1, 229], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 67: $Vn1, 69: [1, 230], 71: [1, 231], 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 67: $Vn1, 69: [1, 233], 71: [1, 232], 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($VC, [2, 45], { 18: 155, 10: $Vx, 40: $Vk1 }), o($VC, [2, 47], { 44: $Vj1 }), o($VT, [2, 75]), o($VT, [2, 74]), { 62: [1, 234], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($VT, [2, 77]), o($Vt1, [2, 80]), { 77: [1, 235], 79: 197, 116: $VW, 119: $VX }, { 30: 236, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($Vi1, $V4, { 5: 237 }), o($Vu1, [2, 102]), o($Vy, [2, 35]), { 43: 238, 44: $Vd, 45: 39, 47: 40, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, { 10: $Vx, 18: 239 }, { 10: $Vx1, 60: $Vy1, 84: $Vz1, 92: 240, 105: $VA1, 107: 241, 108: 242, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }, { 10: $Vx1, 60: $Vy1, 84: $Vz1, 92: 251, 104: [1, 252], 105: $VA1, 107: 241, 108: 242, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }, { 10: $Vx1, 60: $Vy1, 84: $Vz1, 92: 253, 104: [1, 254], 105: $VA1, 107: 241, 108: 242, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }, { 105: [1, 255] }, { 10: $Vx1, 60: $Vy1, 84: $Vz1, 92: 256, 105: $VA1, 107: 241, 108: 242, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }, { 44: $Vd, 47: 257, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, o($Vl1, [2, 108]), { 80: [1, 258] }, { 80: [1, 259], 98: [1, 260] }, o($Vl1, [2, 116]), o($Vl1, [2, 118], { 10: [1, 261] }), o($Vl1, [2, 119]), o($VQ, [2, 56]), o($Vw1, [2, 87]), o($VQ, [2, 57]), { 51: [1, 262], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($VQ, [2, 64]), o($VQ, [2, 59]), o($VQ, [2, 60]), o($VQ, [2, 61]), { 109: [1, 263] }, o($VQ, [2, 63]), o($VQ, [2, 65]), { 66: [1, 264], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($VQ, [2, 67]), o($VQ, [2, 68]), o($VQ, [2, 70]), o($VQ, [2, 69]), o($VQ, [2, 71]), o([10, 44, 60, 89, 102, 105, 106, 109, 111, 114, 115, 116], [2, 85]), o($VT, [2, 78]), { 31: [1, 265], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 266], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 42: 28, 43: 38, 44: $Vd, 45: 39, 47: 40, 60: $Ve, 84: $Vf, 85: $Vg, 86: $Vh, 87: $Vi, 88: $Vj, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs, 121: $Vt, 122: $Vu, 123: $Vv, 124: $Vw }, o($VP, [2, 53]), { 43: 267, 44: $Vd, 45: 39, 47: 40, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs }, o($Vl1, [2, 121], { 106: $VF1 }), o($VG1, [2, 130], { 108: 269, 10: $Vx1, 60: $Vy1, 84: $Vz1, 105: $VA1, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }), o($VH1, [2, 132]), o($VH1, [2, 134]), o($VH1, [2, 135]), o($VH1, [2, 136]), o($VH1, [2, 137]), o($VH1, [2, 138]), o($VH1, [2, 139]), o($VH1, [2, 140]), o($VH1, [2, 141]), o($Vl1, [2, 122], { 106: $VF1 }), { 10: [1, 270] }, o($Vl1, [2, 123], { 106: $VF1 }), { 10: [1, 271] }, o($Vv1, [2, 129]), o($Vl1, [2, 105], { 106: $VF1 }), o($Vl1, [2, 106], { 113: 112, 44: $Vd, 60: $Ve, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 114: $Vq, 115: $Vr, 116: $Vs }), o($Vl1, [2, 110]), o($Vl1, [2, 112], { 10: [1, 272] }), o($Vl1, [2, 113]), { 98: [1, 273] }, { 51: [1, 274] }, { 62: [1, 275] }, { 66: [1, 276] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 277 }, o($Vy, [2, 34]), o($VP, [2, 52]), { 10: $Vx1, 60: $Vy1, 84: $Vz1, 105: $VA1, 107: 278, 108: 242, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }, o($VH1, [2, 133]), { 14: $VE, 44: $VF, 60: $VG, 89: $VH, 101: 279, 105: $VI, 106: $VJ, 109: $VK, 111: $VL, 114: $VM, 115: $VN, 116: $VO, 120: 87 }, { 14: $VE, 44: $VF, 60: $VG, 89: $VH, 101: 280, 105: $VI, 106: $VJ, 109: $VK, 111: $VL, 114: $VM, 115: $VN, 116: $VO, 120: 87 }, { 98: [1, 281] }, o($Vl1, [2, 120]), o($VQ, [2, 58]), { 30: 282, 67: $Vn1, 80: $Vo1, 81: $Vp1, 82: 171, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, o($VQ, [2, 66]), o($Vi1, $V4, { 5: 283 }), o($VG1, [2, 131], { 108: 269, 10: $Vx1, 60: $Vy1, 84: $Vz1, 105: $VA1, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }), o($Vl1, [2, 126], { 120: 167, 10: [1, 284], 14: $VE, 44: $VF, 60: $VG, 89: $VH, 105: $VI, 106: $VJ, 109: $VK, 111: $VL, 114: $VM, 115: $VN, 116: $VO }), o($Vl1, [2, 127], { 120: 167, 10: [1, 285], 14: $VE, 44: $VF, 60: $VG, 89: $VH, 105: $VI, 106: $VJ, 109: $VK, 111: $VL, 114: $VM, 115: $VN, 116: $VO }), o($Vl1, [2, 114]), { 31: [1, 286], 67: $Vn1, 82: 218, 116: $Vq1, 117: $Vr1, 118: $Vs1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 287], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 42: 28, 43: 38, 44: $Vd, 45: 39, 47: 40, 60: $Ve, 84: $Vf, 85: $Vg, 86: $Vh, 87: $Vi, 88: $Vj, 89: $Vk, 102: $Vl, 105: $Vm, 106: $Vn, 109: $Vo, 111: $Vp, 113: 41, 114: $Vq, 115: $Vr, 116: $Vs, 121: $Vt, 122: $Vu, 123: $Vv, 124: $Vw }, { 10: $Vx1, 60: $Vy1, 84: $Vz1, 92: 288, 105: $VA1, 107: 241, 108: 242, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }, { 10: $Vx1, 60: $Vy1, 84: $Vz1, 92: 289, 105: $VA1, 107: 241, 108: 242, 109: $VB1, 110: $VC1, 111: $VD1, 112: $VE1 }, o($VQ, [2, 62]), o($Vy, [2, 33]), o($Vl1, [2, 124], { 106: $VF1 }), o($Vl1, [2, 125], { 106: $VF1 })],\n    defaultActions: {},\n    parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n      if (hash.recoverable) {\n        this.trace(str);\n      } else {\n        var error = new Error(str);\n        error.hash = hash;\n        throw error;\n      }\n    }, \"parseError\"),\n    parse: /* @__PURE__ */ __name(function parse(input) {\n      var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n      var args = lstack.slice.call(arguments, 1);\n      var lexer2 = Object.create(this.lexer);\n      var sharedState = { yy: {} };\n      for (var k in this.yy) {\n        if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n          sharedState.yy[k] = this.yy[k];\n        }\n      }\n      lexer2.setInput(input, sharedState.yy);\n      sharedState.yy.lexer = lexer2;\n      sharedState.yy.parser = this;\n      if (typeof lexer2.yylloc == \"undefined\") {\n        lexer2.yylloc = {};\n      }\n      var yyloc = lexer2.yylloc;\n      lstack.push(yyloc);\n      var ranges = lexer2.options && lexer2.options.ranges;\n      if (typeof sharedState.yy.parseError === \"function\") {\n        this.parseError = sharedState.yy.parseError;\n      } else {\n        this.parseError = Object.getPrototypeOf(this).parseError;\n      }\n      function popStack(n) {\n        stack.length = stack.length - 2 * n;\n        vstack.length = vstack.length - n;\n        lstack.length = lstack.length - n;\n      }\n      __name(popStack, \"popStack\");\n      function lex() {\n        var token;\n        token = tstack.pop() || lexer2.lex() || EOF;\n        if (typeof token !== \"number\") {\n          if (token instanceof Array) {\n            tstack = token;\n            token = tstack.pop();\n          }\n          token = self.symbols_[token] || token;\n        }\n        return token;\n      }\n      __name(lex, \"lex\");\n      var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n      while (true) {\n        state = stack[stack.length - 1];\n        if (this.defaultActions[state]) {\n          action = this.defaultActions[state];\n        } else {\n          if (symbol === null || typeof symbol == \"undefined\") {\n            symbol = lex();\n          }\n          action = table[state] && table[state][symbol];\n        }\n        if (typeof action === \"undefined\" || !action.length || !action[0]) {\n          var errStr = \"\";\n          expected = [];\n          for (p in table[state]) {\n            if (this.terminals_[p] && p > TERROR) {\n              expected.push(\"'\" + this.terminals_[p] + \"'\");\n            }\n          }\n          if (lexer2.showPosition) {\n            errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n          } else {\n            errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n          }\n          this.parseError(errStr, {\n            text: lexer2.match,\n            token: this.terminals_[symbol] || symbol,\n            line: lexer2.yylineno,\n            loc: yyloc,\n            expected\n          });\n        }\n        if (action[0] instanceof Array && action.length > 1) {\n          throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n        }\n        switch (action[0]) {\n          case 1:\n            stack.push(symbol);\n            vstack.push(lexer2.yytext);\n            lstack.push(lexer2.yylloc);\n            stack.push(action[1]);\n            symbol = null;\n            if (!preErrorSymbol) {\n              yyleng = lexer2.yyleng;\n              yytext = lexer2.yytext;\n              yylineno = lexer2.yylineno;\n              yyloc = lexer2.yylloc;\n              if (recovering > 0) {\n                recovering--;\n              }\n            } else {\n              symbol = preErrorSymbol;\n              preErrorSymbol = null;\n            }\n            break;\n          case 2:\n            len = this.productions_[action[1]][1];\n            yyval.$ = vstack[vstack.length - len];\n            yyval._$ = {\n              first_line: lstack[lstack.length - (len || 1)].first_line,\n              last_line: lstack[lstack.length - 1].last_line,\n              first_column: lstack[lstack.length - (len || 1)].first_column,\n              last_column: lstack[lstack.length - 1].last_column\n            };\n            if (ranges) {\n              yyval._$.range = [\n                lstack[lstack.length - (len || 1)].range[0],\n                lstack[lstack.length - 1].range[1]\n              ];\n            }\n            r = this.performAction.apply(yyval, [\n              yytext,\n              yyleng,\n              yylineno,\n              sharedState.yy,\n              action[1],\n              vstack,\n              lstack\n            ].concat(args));\n            if (typeof r !== \"undefined\") {\n              return r;\n            }\n            if (len) {\n              stack = stack.slice(0, -1 * len * 2);\n              vstack = vstack.slice(0, -1 * len);\n              lstack = lstack.slice(0, -1 * len);\n            }\n            stack.push(this.productions_[action[1]][0]);\n            vstack.push(yyval.$);\n            lstack.push(yyval._$);\n            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n            stack.push(newState);\n            break;\n          case 3:\n            return true;\n        }\n      }\n      return true;\n    }, \"parse\")\n  };\n  var lexer = /* @__PURE__ */ function() {\n    var lexer2 = {\n      EOF: 1,\n      parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n        if (this.yy.parser) {\n          this.yy.parser.parseError(str, hash);\n        } else {\n          throw new Error(str);\n        }\n      }, \"parseError\"),\n      // resets the lexer, sets new input\n      setInput: /* @__PURE__ */ __name(function(input, yy) {\n        this.yy = yy || this.yy || {};\n        this._input = input;\n        this._more = this._backtrack = this.done = false;\n        this.yylineno = this.yyleng = 0;\n        this.yytext = this.matched = this.match = \"\";\n        this.conditionStack = [\"INITIAL\"];\n        this.yylloc = {\n          first_line: 1,\n          first_column: 0,\n          last_line: 1,\n          last_column: 0\n        };\n        if (this.options.ranges) {\n          this.yylloc.range = [0, 0];\n        }\n        this.offset = 0;\n        return this;\n      }, \"setInput\"),\n      // consumes and returns one char from the input\n      input: /* @__PURE__ */ __name(function() {\n        var ch = this._input[0];\n        this.yytext += ch;\n        this.yyleng++;\n        this.offset++;\n        this.match += ch;\n        this.matched += ch;\n        var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n          this.yylineno++;\n          this.yylloc.last_line++;\n        } else {\n          this.yylloc.last_column++;\n        }\n        if (this.options.ranges) {\n          this.yylloc.range[1]++;\n        }\n        this._input = this._input.slice(1);\n        return ch;\n      }, \"input\"),\n      // unshifts one char (or a string) into the input\n      unput: /* @__PURE__ */ __name(function(ch) {\n        var len = ch.length;\n        var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n        this._input = ch + this._input;\n        this.yytext = this.yytext.substr(0, this.yytext.length - len);\n        this.offset -= len;\n        var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n        this.match = this.match.substr(0, this.match.length - 1);\n        this.matched = this.matched.substr(0, this.matched.length - 1);\n        if (lines.length - 1) {\n          this.yylineno -= lines.length - 1;\n        }\n        var r = this.yylloc.range;\n        this.yylloc = {\n          first_line: this.yylloc.first_line,\n          last_line: this.yylineno + 1,\n          first_column: this.yylloc.first_column,\n          last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n        };\n        if (this.options.ranges) {\n          this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n        }\n        this.yyleng = this.yytext.length;\n        return this;\n      }, \"unput\"),\n      // When called from action, caches matched text and appends it on next action\n      more: /* @__PURE__ */ __name(function() {\n        this._more = true;\n        return this;\n      }, \"more\"),\n      // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n      reject: /* @__PURE__ */ __name(function() {\n        if (this.options.backtrack_lexer) {\n          this._backtrack = true;\n        } else {\n          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).\\n\" + this.showPosition(), {\n            text: \"\",\n            token: null,\n            line: this.yylineno\n          });\n        }\n        return this;\n      }, \"reject\"),\n      // retain first n characters of the match\n      less: /* @__PURE__ */ __name(function(n) {\n        this.unput(this.match.slice(n));\n      }, \"less\"),\n      // displays already matched input, i.e. for error messages\n      pastInput: /* @__PURE__ */ __name(function() {\n        var past = this.matched.substr(0, this.matched.length - this.match.length);\n        return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n      }, \"pastInput\"),\n      // displays upcoming input, i.e. for error messages\n      upcomingInput: /* @__PURE__ */ __name(function() {\n        var next = this.match;\n        if (next.length < 20) {\n          next += this._input.substr(0, 20 - next.length);\n        }\n        return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n      }, \"upcomingInput\"),\n      // displays the character position where the lexing error occurred, i.e. for error messages\n      showPosition: /* @__PURE__ */ __name(function() {\n        var pre = this.pastInput();\n        var c = new Array(pre.length + 1).join(\"-\");\n        return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n      }, \"showPosition\"),\n      // test the lexed token: return FALSE when not a match, otherwise return token\n      test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n        var token, lines, backup;\n        if (this.options.backtrack_lexer) {\n          backup = {\n            yylineno: this.yylineno,\n            yylloc: {\n              first_line: this.yylloc.first_line,\n              last_line: this.last_line,\n              first_column: this.yylloc.first_column,\n              last_column: this.yylloc.last_column\n            },\n            yytext: this.yytext,\n            match: this.match,\n            matches: this.matches,\n            matched: this.matched,\n            yyleng: this.yyleng,\n            offset: this.offset,\n            _more: this._more,\n            _input: this._input,\n            yy: this.yy,\n            conditionStack: this.conditionStack.slice(0),\n            done: this.done\n          };\n          if (this.options.ranges) {\n            backup.yylloc.range = this.yylloc.range.slice(0);\n          }\n        }\n        lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n          this.yylineno += lines.length;\n        }\n        this.yylloc = {\n          first_line: this.yylloc.last_line,\n          last_line: this.yylineno + 1,\n          first_column: this.yylloc.last_column,\n          last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n        };\n        this.yytext += match[0];\n        this.match += match[0];\n        this.matches = match;\n        this.yyleng = this.yytext.length;\n        if (this.options.ranges) {\n          this.yylloc.range = [this.offset, this.offset += this.yyleng];\n        }\n        this._more = false;\n        this._backtrack = false;\n        this._input = this._input.slice(match[0].length);\n        this.matched += match[0];\n        token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n        if (this.done && this._input) {\n          this.done = false;\n        }\n        if (token) {\n          return token;\n        } else if (this._backtrack) {\n          for (var k in backup) {\n            this[k] = backup[k];\n          }\n          return false;\n        }\n        return false;\n      }, \"test_match\"),\n      // return next match in input\n      next: /* @__PURE__ */ __name(function() {\n        if (this.done) {\n          return this.EOF;\n        }\n        if (!this._input) {\n          this.done = true;\n        }\n        var token, match, tempMatch, index;\n        if (!this._more) {\n          this.yytext = \"\";\n          this.match = \"\";\n        }\n        var rules = this._currentRules();\n        for (var i = 0; i < rules.length; i++) {\n          tempMatch = this._input.match(this.rules[rules[i]]);\n          if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n            match = tempMatch;\n            index = i;\n            if (this.options.backtrack_lexer) {\n              token = this.test_match(tempMatch, rules[i]);\n              if (token !== false) {\n                return token;\n              } else if (this._backtrack) {\n                match = false;\n                continue;\n              } else {\n                return false;\n              }\n            } else if (!this.options.flex) {\n              break;\n            }\n          }\n        }\n        if (match) {\n          token = this.test_match(match, rules[index]);\n          if (token !== false) {\n            return token;\n          }\n          return false;\n        }\n        if (this._input === \"\") {\n          return this.EOF;\n        } else {\n          return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n            text: \"\",\n            token: null,\n            line: this.yylineno\n          });\n        }\n      }, \"next\"),\n      // return next match that has a token\n      lex: /* @__PURE__ */ __name(function lex() {\n        var r = this.next();\n        if (r) {\n          return r;\n        } else {\n          return this.lex();\n        }\n      }, \"lex\"),\n      // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n      begin: /* @__PURE__ */ __name(function begin(condition) {\n        this.conditionStack.push(condition);\n      }, \"begin\"),\n      // pop the previously active lexer condition state off the condition stack\n      popState: /* @__PURE__ */ __name(function popState() {\n        var n = this.conditionStack.length - 1;\n        if (n > 0) {\n          return this.conditionStack.pop();\n        } else {\n          return this.conditionStack[0];\n        }\n      }, \"popState\"),\n      // produce the lexer rule set which is active for the currently active lexer condition state\n      _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n        if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n          return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n        } else {\n          return this.conditions[\"INITIAL\"].rules;\n        }\n      }, \"_currentRules\"),\n      // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n      topState: /* @__PURE__ */ __name(function topState(n) {\n        n = this.conditionStack.length - 1 - Math.abs(n || 0);\n        if (n >= 0) {\n          return this.conditionStack[n];\n        } else {\n          return \"INITIAL\";\n        }\n      }, \"topState\"),\n      // alias for begin(condition)\n      pushState: /* @__PURE__ */ __name(function pushState(condition) {\n        this.begin(condition);\n      }, \"pushState\"),\n      // return the number of states currently on the stack\n      stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n        return this.conditionStack.length;\n      }, \"stateStackSize\"),\n      options: {},\n      performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n        var YYSTATE = YY_START;\n        switch ($avoiding_name_collisions) {\n          case 0:\n            this.begin(\"acc_title\");\n            return 34;\n            break;\n          case 1:\n            this.popState();\n            return \"acc_title_value\";\n            break;\n          case 2:\n            this.begin(\"acc_descr\");\n            return 36;\n            break;\n          case 3:\n            this.popState();\n            return \"acc_descr_value\";\n            break;\n          case 4:\n            this.begin(\"acc_descr_multiline\");\n            break;\n          case 5:\n            this.popState();\n            break;\n          case 6:\n            return \"acc_descr_multiline_value\";\n            break;\n          case 7:\n            this.pushState(\"shapeData\");\n            yy_.yytext = \"\";\n            return 40;\n            break;\n          case 8:\n            this.pushState(\"shapeDataStr\");\n            return 40;\n            break;\n          case 9:\n            this.popState();\n            return 40;\n            break;\n          case 10:\n            const re = /\\n\\s*/g;\n            yy_.yytext = yy_.yytext.replace(re, \"<br/>\");\n            return 40;\n            break;\n          case 11:\n            return 40;\n            break;\n          case 12:\n            this.popState();\n            break;\n          case 13:\n            this.begin(\"callbackname\");\n            break;\n          case 14:\n            this.popState();\n            break;\n          case 15:\n            this.popState();\n            this.begin(\"callbackargs\");\n            break;\n          case 16:\n            return 95;\n            break;\n          case 17:\n            this.popState();\n            break;\n          case 18:\n            return 96;\n            break;\n          case 19:\n            return \"MD_STR\";\n            break;\n          case 20:\n            this.popState();\n            break;\n          case 21:\n            this.begin(\"md_string\");\n            break;\n          case 22:\n            return \"STR\";\n            break;\n          case 23:\n            this.popState();\n            break;\n          case 24:\n            this.pushState(\"string\");\n            break;\n          case 25:\n            return 84;\n            break;\n          case 26:\n            return 102;\n            break;\n          case 27:\n            return 85;\n            break;\n          case 28:\n            return 104;\n            break;\n          case 29:\n            return 86;\n            break;\n          case 30:\n            return 87;\n            break;\n          case 31:\n            return 97;\n            break;\n          case 32:\n            this.begin(\"click\");\n            break;\n          case 33:\n            this.popState();\n            break;\n          case 34:\n            return 88;\n            break;\n          case 35:\n            if (yy.lex.firstGraph()) {\n              this.begin(\"dir\");\n            }\n            return 12;\n            break;\n          case 36:\n            if (yy.lex.firstGraph()) {\n              this.begin(\"dir\");\n            }\n            return 12;\n            break;\n          case 37:\n            if (yy.lex.firstGraph()) {\n              this.begin(\"dir\");\n            }\n            return 12;\n            break;\n          case 38:\n            return 27;\n            break;\n          case 39:\n            return 32;\n            break;\n          case 40:\n            return 98;\n            break;\n          case 41:\n            return 98;\n            break;\n          case 42:\n            return 98;\n            break;\n          case 43:\n            return 98;\n            break;\n          case 44:\n            this.popState();\n            return 13;\n            break;\n          case 45:\n            this.popState();\n            return 14;\n            break;\n          case 46:\n            this.popState();\n            return 14;\n            break;\n          case 47:\n            this.popState();\n            return 14;\n            break;\n          case 48:\n            this.popState();\n            return 14;\n            break;\n          case 49:\n            this.popState();\n            return 14;\n            break;\n          case 50:\n            this.popState();\n            return 14;\n            break;\n          case 51:\n            this.popState();\n            return 14;\n            break;\n          case 52:\n            this.popState();\n            return 14;\n            break;\n          case 53:\n            this.popState();\n            return 14;\n            break;\n          case 54:\n            this.popState();\n            return 14;\n            break;\n          case 55:\n            return 121;\n            break;\n          case 56:\n            return 122;\n            break;\n          case 57:\n            return 123;\n            break;\n          case 58:\n            return 124;\n            break;\n          case 59:\n            return 78;\n            break;\n          case 60:\n            return 105;\n            break;\n          case 61:\n            return 111;\n            break;\n          case 62:\n            return 46;\n            break;\n          case 63:\n            return 60;\n            break;\n          case 64:\n            return 44;\n            break;\n          case 65:\n            return 8;\n            break;\n          case 66:\n            return 106;\n            break;\n          case 67:\n            return 115;\n            break;\n          case 68:\n            this.popState();\n            return 77;\n            break;\n          case 69:\n            this.pushState(\"edgeText\");\n            return 75;\n            break;\n          case 70:\n            return 119;\n            break;\n          case 71:\n            this.popState();\n            return 77;\n            break;\n          case 72:\n            this.pushState(\"thickEdgeText\");\n            return 75;\n            break;\n          case 73:\n            return 119;\n            break;\n          case 74:\n            this.popState();\n            return 77;\n            break;\n          case 75:\n            this.pushState(\"dottedEdgeText\");\n            return 75;\n            break;\n          case 76:\n            return 119;\n            break;\n          case 77:\n            return 77;\n            break;\n          case 78:\n            this.popState();\n            return 53;\n            break;\n          case 79:\n            return \"TEXT\";\n            break;\n          case 80:\n            this.pushState(\"ellipseText\");\n            return 52;\n            break;\n          case 81:\n            this.popState();\n            return 55;\n            break;\n          case 82:\n            this.pushState(\"text\");\n            return 54;\n            break;\n          case 83:\n            this.popState();\n            return 57;\n            break;\n          case 84:\n            this.pushState(\"text\");\n            return 56;\n            break;\n          case 85:\n            return 58;\n            break;\n          case 86:\n            this.pushState(\"text\");\n            return 67;\n            break;\n          case 87:\n            this.popState();\n            return 64;\n            break;\n          case 88:\n            this.pushState(\"text\");\n            return 63;\n            break;\n          case 89:\n            this.popState();\n            return 49;\n            break;\n          case 90:\n            this.pushState(\"text\");\n            return 48;\n            break;\n          case 91:\n            this.popState();\n            return 69;\n            break;\n          case 92:\n            this.popState();\n            return 71;\n            break;\n          case 93:\n            return 117;\n            break;\n          case 94:\n            this.pushState(\"trapText\");\n            return 68;\n            break;\n          case 95:\n            this.pushState(\"trapText\");\n            return 70;\n            break;\n          case 96:\n            return 118;\n            break;\n          case 97:\n            return 67;\n            break;\n          case 98:\n            return 90;\n            break;\n          case 99:\n            return \"SEP\";\n            break;\n          case 100:\n            return 89;\n            break;\n          case 101:\n            return 115;\n            break;\n          case 102:\n            return 111;\n            break;\n          case 103:\n            return 44;\n            break;\n          case 104:\n            return 109;\n            break;\n          case 105:\n            return 114;\n            break;\n          case 106:\n            return 116;\n            break;\n          case 107:\n            this.popState();\n            return 62;\n            break;\n          case 108:\n            this.pushState(\"text\");\n            return 62;\n            break;\n          case 109:\n            this.popState();\n            return 51;\n            break;\n          case 110:\n            this.pushState(\"text\");\n            return 50;\n            break;\n          case 111:\n            this.popState();\n            return 31;\n            break;\n          case 112:\n            this.pushState(\"text\");\n            return 29;\n            break;\n          case 113:\n            this.popState();\n            return 66;\n            break;\n          case 114:\n            this.pushState(\"text\");\n            return 65;\n            break;\n          case 115:\n            return \"TEXT\";\n            break;\n          case 116:\n            return \"QUOTE\";\n            break;\n          case 117:\n            return 9;\n            break;\n          case 118:\n            return 10;\n            break;\n          case 119:\n            return 11;\n            break;\n        }\n      }, \"anonymous\"),\n      rules: [/^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:@\\{)/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\\\"]+)/, /^(?:[^}^\"]+)/, /^(?:\\})/, /^(?:call[\\s]+)/, /^(?:\\([\\s]*\\))/, /^(?:\\()/, /^(?:[^(]*)/, /^(?:\\))/, /^(?:[^)]*)/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"][`])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:[\"])/, /^(?:style\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\b)/, /^(?:class\\b)/, /^(?:href[\\s])/, /^(?:click[\\s]+)/, /^(?:[\\s\\n])/, /^(?:[^\\s\\n]*)/, /^(?:flowchart-elk\\b)/, /^(?:graph\\b)/, /^(?:flowchart\\b)/, /^(?:subgraph\\b)/, /^(?:end\\b\\s*)/, /^(?:_self\\b)/, /^(?:_blank\\b)/, /^(?:_parent\\b)/, /^(?:_top\\b)/, /^(?:(\\r?\\n)*\\s*\\n)/, /^(?:\\s*LR\\b)/, /^(?:\\s*RL\\b)/, /^(?:\\s*TB\\b)/, /^(?:\\s*BT\\b)/, /^(?:\\s*TD\\b)/, /^(?:\\s*BR\\b)/, /^(?:\\s*<)/, /^(?:\\s*>)/, /^(?:\\s*\\^)/, /^(?:\\s*v\\b)/, /^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:[^\\s\\\"]+@(?=[^\\{\\\"]))/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\\*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:[^-]|-(?!-)+)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:[^=]|=(?!))/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:[^\\.]|\\.(?!))/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:[-/\\)][\\)])/, /^(?:[^\\(\\)\\[\\]\\{\\}]|!\\)+)/, /^(?:\\(-)/, /^(?:\\]\\))/, /^(?:\\(\\[)/, /^(?:\\]\\])/, /^(?:\\[\\[)/, /^(?:\\[\\|)/, /^(?:>)/, /^(?:\\)\\])/, /^(?:\\[\\()/, /^(?:\\)\\)\\))/, /^(?:\\(\\(\\()/, /^(?:[\\\\(?=\\])][\\]])/, /^(?:\\/(?=\\])\\])/, /^(?:\\/(?!\\])|\\\\(?!\\])|[^\\\\\\[\\]\\(\\)\\{\\}\\/]+)/, /^(?:\\[\\/)/, /^(?:\\[\\\\)/, /^(?:<)/, /^(?:>)/, /^(?:\\^)/, /^(?:\\\\\\|)/, /^(?:v\\b)/, /^(?:\\*)/, /^(?:#)/, /^(?:&)/, /^(?:([A-Za-z0-9!\"\\#$%&'*+\\.`?\\\\_\\/]|-(?=[^\\>\\-\\.])|(?!))+)/, /^(?:-)/, /^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/, /^(?:\\|)/, /^(?:\\|)/, /^(?:\\))/, /^(?:\\()/, /^(?:\\])/, /^(?:\\[)/, /^(?:(\\}))/, /^(?:\\{)/, /^(?:[^\\[\\]\\(\\)\\{\\}\\|\\\"]+)/, /^(?:\")/, /^(?:(\\r?\\n)+)/, /^(?:\\s)/, /^(?:$)/],\n      conditions: { \"shapeDataEndBracket\": { \"rules\": [21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"shapeDataStr\": { \"rules\": [9, 10, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"shapeData\": { \"rules\": [8, 11, 12, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"callbackargs\": { \"rules\": [17, 18, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"callbackname\": { \"rules\": [14, 15, 16, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"href\": { \"rules\": [21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"click\": { \"rules\": [21, 24, 33, 34, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"dottedEdgeText\": { \"rules\": [21, 24, 74, 76, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"thickEdgeText\": { \"rules\": [21, 24, 71, 73, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"edgeText\": { \"rules\": [21, 24, 68, 70, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"trapText\": { \"rules\": [21, 24, 77, 80, 82, 84, 88, 90, 91, 92, 93, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"ellipseText\": { \"rules\": [21, 24, 77, 78, 79, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"text\": { \"rules\": [21, 24, 77, 80, 81, 82, 83, 84, 87, 88, 89, 90, 94, 95, 107, 108, 109, 110, 111, 112, 113, 114, 115], \"inclusive\": false }, \"vertex\": { \"rules\": [21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"dir\": { \"rules\": [21, 24, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [5, 6, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"acc_title\": { \"rules\": [1, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"md_string\": { \"rules\": [19, 20, 21, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"string\": { \"rules\": [21, 22, 23, 24, 77, 80, 82, 84, 88, 90, 94, 95, 108, 110, 112, 114], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 13, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, 43, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 74, 75, 77, 80, 82, 84, 85, 86, 88, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 110, 112, 114, 116, 117, 118, 119], \"inclusive\": true } }\n    };\n    return lexer2;\n  }();\n  parser2.lexer = lexer;\n  function Parser() {\n    this.yy = {};\n  }\n  __name(Parser, \"Parser\");\n  Parser.prototype = parser2;\n  parser2.Parser = Parser;\n  return new Parser();\n}();\nparser.parser = parser;\nvar flow_default = parser;\n\n// src/diagrams/flowchart/parser/flowParser.ts\nvar newParser = Object.assign({}, flow_default);\nnewParser.parse = (src) => {\n  const newSrc = src.replace(/}\\s*\\n/g, \"}\\n\");\n  return flow_default.parse(newSrc);\n};\nvar flowParser_default = newParser;\n\n// src/diagrams/flowchart/styles.ts\nimport * as khroma from \"khroma\";\nvar fade = /* @__PURE__ */ __name((color, opacity) => {\n  const channel2 = khroma.channel;\n  const r = channel2(color, \"r\");\n  const g = channel2(color, \"g\");\n  const b = channel2(color, \"b\");\n  return khroma.rgba(r, g, b, opacity);\n}, \"fade\");\nvar getStyles = /* @__PURE__ */ __name((options) => `.label {\n    font-family: ${options.fontFamily};\n    color: ${options.nodeTextColor || options.textColor};\n  }\n  .cluster-label text {\n    fill: ${options.titleColor};\n  }\n  .cluster-label span {\n    color: ${options.titleColor};\n  }\n  .cluster-label span p {\n    background-color: transparent;\n  }\n\n  .label text,span {\n    fill: ${options.nodeTextColor || options.textColor};\n    color: ${options.nodeTextColor || options.textColor};\n  }\n\n  .node rect,\n  .node circle,\n  .node ellipse,\n  .node polygon,\n  .node path {\n    fill: ${options.mainBkg};\n    stroke: ${options.nodeBorder};\n    stroke-width: 1px;\n  }\n  .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label {\n    text-anchor: middle;\n  }\n  // .flowchart-label .text-outer-tspan {\n  //   text-anchor: middle;\n  // }\n  // .flowchart-label .text-inner-tspan {\n  //   text-anchor: start;\n  // }\n\n  .node .katex path {\n    fill: #000;\n    stroke: #000;\n    stroke-width: 1px;\n  }\n\n  .rough-node .label,.node .label, .image-shape .label, .icon-shape .label {\n    text-align: center;\n  }\n  .node.clickable {\n    cursor: pointer;\n  }\n\n\n  .root .anchor path {\n    fill: ${options.lineColor} !important;\n    stroke-width: 0;\n    stroke: ${options.lineColor};\n  }\n\n  .arrowheadPath {\n    fill: ${options.arrowheadColor};\n  }\n\n  .edgePath .path {\n    stroke: ${options.lineColor};\n    stroke-width: 2.0px;\n  }\n\n  .flowchart-link {\n    stroke: ${options.lineColor};\n    fill: none;\n  }\n\n  .edgeLabel {\n    background-color: ${options.edgeLabelBackground};\n    p {\n      background-color: ${options.edgeLabelBackground};\n    }\n    rect {\n      opacity: 0.5;\n      background-color: ${options.edgeLabelBackground};\n      fill: ${options.edgeLabelBackground};\n    }\n    text-align: center;\n  }\n\n  /* For html labels only */\n  .labelBkg {\n    background-color: ${fade(options.edgeLabelBackground, 0.5)};\n    // background-color:\n  }\n\n  .cluster rect {\n    fill: ${options.clusterBkg};\n    stroke: ${options.clusterBorder};\n    stroke-width: 1px;\n  }\n\n  .cluster text {\n    fill: ${options.titleColor};\n  }\n\n  .cluster span {\n    color: ${options.titleColor};\n  }\n  /* .cluster div {\n    color: ${options.titleColor};\n  } */\n\n  div.mermaidTooltip {\n    position: absolute;\n    text-align: center;\n    max-width: 200px;\n    padding: 2px;\n    font-family: ${options.fontFamily};\n    font-size: 12px;\n    background: ${options.tertiaryColor};\n    border: 1px solid ${options.border2};\n    border-radius: 2px;\n    pointer-events: none;\n    z-index: 100;\n  }\n\n  .flowchartTitleText {\n    text-anchor: middle;\n    font-size: 18px;\n    fill: ${options.textColor};\n  }\n\n  rect.text {\n    fill: none;\n    stroke-width: 0;\n  }\n\n  .icon-shape, .image-shape {\n    background-color: ${options.edgeLabelBackground};\n    p {\n      background-color: ${options.edgeLabelBackground};\n      padding: 2px;\n    }\n    rect {\n      opacity: 0.5;\n      background-color: ${options.edgeLabelBackground};\n      fill: ${options.edgeLabelBackground};\n    }\n    text-align: center;\n  }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/flowchart/flowDiagram.ts\nvar diagram = {\n  parser: flowParser_default,\n  get db() {\n    return new FlowDB();\n  },\n  renderer: flowRenderer_v3_unified_default,\n  styles: styles_default,\n  init: /* @__PURE__ */ __name((cnf) => {\n    if (!cnf.flowchart) {\n      cnf.flowchart = {};\n    }\n    if (cnf.layout) {\n      setConfig({ layout: cnf.layout });\n    }\n    cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n    setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });\n  }, \"init\")\n};\nexport {\n  diagram\n};\n"],"names":[],"sourceRoot":""}